diff --git a/examples/go.mod b/examples/go.mod index 77023f60bc4..9bd4ab5eab2 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -5,10 +5,10 @@ go 1.21 require ( github.com/aws/aws-sdk-go v1.45.24 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/pf v0.18.2 github.com/pulumi/pulumi-terraform-bridge/testing v0.0.2-0.20230927165309-e3fd9503f2d3 - github.com/pulumi/pulumi/pkg/v3 v3.81.0 - github.com/pulumi/pulumi/sdk/v3 v3.81.0 + github.com/pulumi/pulumi/pkg/v3 v3.90.1 + github.com/pulumi/pulumi/sdk/v3 v3.90.1 github.com/stretchr/testify v1.8.4 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v2 v2.4.0 @@ -34,12 +34,7 @@ require ( cloud.google.com/go/longrunning v0.5.1 // indirect cloud.google.com/go/storage v1.30.1 // indirect dario.cat/mergo v1.0.0 // indirect - github.com/AlecAivazis/survey/v2 v2.0.5 // indirect github.com/Azure/azure-sdk-for-go v66.0.0+incompatible // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest v0.11.28 // indirect github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect @@ -50,7 +45,6 @@ require ( github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 // indirect github.com/Masterminds/semver v1.5.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 // indirect @@ -162,7 +156,6 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/djherbis/times v1.5.0 // indirect - github.com/dustin/go-humanize v1.0.1 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/fatih/color v1.15.0 // indirect @@ -174,7 +167,6 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt v3.2.1+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.4.3 // indirect github.com/golang/glog v1.1.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -217,7 +209,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.1 // indirect + github.com/hashicorp/terraform-plugin-framework v1.4.2 // 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 @@ -231,21 +223,17 @@ require ( github.com/hashicorp/vault/api v1.8.2 // indirect github.com/hashicorp/vault/sdk v0.6.1 // indirect github.com/hashicorp/yamux v0.1.1 // indirect - github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattbaird/jsonpatch v0.0.0-20230413205102-771768614e91 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect - github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect @@ -266,11 +254,11 @@ require ( github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/pulumi/pulumi-terraform-bridge/v3 v3.60.2-0.20230927165309-e3fd9503f2d3 // indirect + github.com/pulumi/esc v0.5.6 // indirect + github.com/pulumi/pulumi-terraform-bridge/v3 v3.63.1 // indirect github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7-0.20230801203955-5d215c892096 // indirect github.com/pulumi/terraform-diff-reader v0.0.2 // indirect github.com/rivo/uniseg v0.4.4 // indirect diff --git a/examples/go.sum b/examples/go.sum index c436d8145be..ebc344cb7af 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -629,8 +629,6 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= -github.com/AlecAivazis/survey/v2 v2.0.5 h1:xpZp+Q55wi5C7Iaze+40onHnEkex1jSc34CltJjOoPM= -github.com/AlecAivazis/survey/v2 v2.0.5/go.mod h1:WYBhg6f0y/fNYUuesWQc0PKbJcEliGcYHB9sNT3Bg74= github.com/Azure/azure-amqp-common-go/v3 v3.2.3/go.mod h1:7rPmbSfszeovxGfc5fSAXE4ehlXQZHpMja2OtxC2Tas= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v63.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= @@ -639,16 +637,12 @@ github.com/Azure/azure-sdk-for-go v66.0.0+incompatible h1:bmmC38SlE8/E81nNADlgmV github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1 h1:tz19qLF65vuu2ibfTqGVJxG/zZAI27NEIIbvAOQwYbw= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 h1:Yoicul8bnVdQrhDMTHxdEckRGX01XvwXDHUT9zYZ3k0= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus v1.0.2/go.mod h1:LH9XQnMr2ZYxQdVdCrzLO9mxeDyrDFa6wbSI3x5zCZk= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1 h1:QSdcrd/UFJv6Bp/CfoVf2SrENpFn9P6Yh8yb+xNhYMM= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA= github.com/Azure/go-amqp v0.17.0/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg= github.com/Azure/go-amqp v0.17.5/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg= @@ -693,7 +687,6 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c= github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -740,9 +733,6 @@ github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5 github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8/go.mod h1:oX5x61PbNXchhh0oikYAH+4Pcfw5LKv21+Jnpr6r6Pc= -github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= -github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 h1:KLq8BE0KwCL+mmXnjLWEAOYO+2l2AE4YMmqG1ZpZHBs= github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= @@ -1249,8 +1239,6 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI= -github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= @@ -1276,7 +1264,6 @@ github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= -github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= @@ -1298,8 +1285,6 @@ github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -1517,7 +1502,6 @@ github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= @@ -1819,8 +1803,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.1 h1:ZC29MoB3Nbov6axHdgPbMz7799pT5H8kIrM8YAsaVrs= -github.com/hashicorp/terraform-plugin-framework v1.4.1/go.mod h1:XC0hPcQbBvlbxwmjxuV/8sn8SbZRg4XwGMs22f+kqV0= +github.com/hashicorp/terraform-plugin-framework v1.4.2 h1:P7a7VP1GZbjc4rv921Xy5OckzhoiO3ig6SGxwelD2sI= +github.com/hashicorp/terraform-plugin-framework v1.4.2/go.mod h1:GWl3InPFZi2wVQmdVnINPKys09s9mLmTZr95/ngLnbY= 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= @@ -1854,9 +1838,6 @@ github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hetznercloud/hcloud-go v1.33.1/go.mod h1:XX/TQub3ge0yWR2yHWmnDVIrB+MQbda1pHxkUmDlUME= github.com/hetznercloud/hcloud-go v1.35.0/go.mod h1:mepQwR6va27S3UQthaEPGS86jtzSY9xWL1e9dyxXpgA= -github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= -github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02 h1:AgcIVYPa6XJnU3phs104wLj8l5GEththEw6+F79YsIY= -github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= @@ -1868,8 +1849,6 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= -github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd h1:anPrsicrIi2ColgWTVPk+TrN42hJIWlfPHSBP9S0ZkM= -github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= @@ -1965,7 +1944,6 @@ github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+ github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= @@ -1997,7 +1975,6 @@ github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NB github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -2040,7 +2017,6 @@ github.com/mattbaird/jsonpatch v0.0.0-20230413205102-771768614e91 h1:JnZSkFP1/GL github.com/mattbaird/jsonpatch v0.0.0-20230413205102-771768614e91/go.mod h1:M1qoD/MqPgTZIk0EWKB38wE28ACRfVcn+cU08jyArI0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -2074,8 +2050,6 @@ github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/microsoft/ApplicationInsights-Go v0.4.4/go.mod h1:fKRUseBqkw6bDiXTs3ESTiU/4YTIHsQS4W3fP2ieF4U= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= @@ -2266,7 +2240,6 @@ github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFu github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -2345,18 +2318,20 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/prometheus v0.35.0/go.mod h1:7HaLx5kEPKJ0GDgbODG0fZgXbQ8K/XjZNJXQmbmgQlY= github.com/prometheus/prometheus v0.37.0/go.mod h1:egARUgz+K93zwqsVIAneFlLZefyGOON44WyAp4Xqbbk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/pulumi/pulumi-terraform-bridge/pf v0.16.2-0.20230927165309-e3fd9503f2d3 h1:yzYF58gLZ2aSzI/gPtBMniXZjsXl+ADyqxraI58Pq1A= -github.com/pulumi/pulumi-terraform-bridge/pf v0.16.2-0.20230927165309-e3fd9503f2d3/go.mod h1:NptD1F0yCzgtLptN9OoDQGcejAHSI9LcX1NW2GrxIS0= +github.com/pulumi/esc v0.5.6 h1:4WV3X7OEVcChIwbSG+JxhZDdmq/q7lFPaSjHRYlPwmI= +github.com/pulumi/esc v0.5.6/go.mod h1:wpwNfVS5fV7Kd51j4dJ6FWYlKfxdqyppgp0gtkzqH04= +github.com/pulumi/pulumi-terraform-bridge/pf v0.18.2 h1:lSm5nbZETkeVNJQTcGOmuHCSXPhDj72dFC2Wan08Wpg= +github.com/pulumi/pulumi-terraform-bridge/pf v0.18.2/go.mod h1:4ii0lFkIQMhCZg5du0xEtAB36Kk0WuLtDVO/ntTxRIs= github.com/pulumi/pulumi-terraform-bridge/testing v0.0.2-0.20230927165309-e3fd9503f2d3 h1:bBWWeAtSPPYpKYlPZr2h0BiYgWQpHRIk0HO/MQmB+jc= github.com/pulumi/pulumi-terraform-bridge/testing v0.0.2-0.20230927165309-e3fd9503f2d3/go.mod h1:vAQ7DeddebQ7FHdRaSG6ijuS28FS9PC4j8Y9wUuue0c= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.60.2-0.20230927165309-e3fd9503f2d3 h1:tMkrGh9mfSyYi7Ncwo/79ivqLqgzwVf/G93lcMSP4iM= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.60.2-0.20230927165309-e3fd9503f2d3/go.mod h1:o0Vfch2UXtHOnGYpNElzGg4htT6B8X8hS9fa5AguP7g= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.63.1 h1:hBgediyT2LdS5yfD5AMiCmBJ/TYP94Xxv6a4TcAfV0g= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.63.1/go.mod h1:6YVbDo019OeHkQWo9MnUbBy6cCgCQeoXZDjmR9SYmUA= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7-0.20230801203955-5d215c892096 h1:1nzT9XuyTHdcWJboYNMPPdW0B0mQdXYg8Az5tF96MXY= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7-0.20230801203955-5d215c892096/go.mod h1:1pLAP9kryYta3Xrw99oh7BmxY6PYb+z2m7ENNCJMIRQ= -github.com/pulumi/pulumi/pkg/v3 v3.81.0 h1:6rf2farQLszi8inHCu9YdJtDvK0fqNguix51b3FEDRQ= -github.com/pulumi/pulumi/pkg/v3 v3.81.0/go.mod h1:URXozJB/abhxb2yOwa5ywHjT2dqt9SmAX2iLkdcOOl0= -github.com/pulumi/pulumi/sdk/v3 v3.81.0 h1:d711GUpjZK1beNpIKFReC1LBmHXYE684sYWntJWQ4Q0= -github.com/pulumi/pulumi/sdk/v3 v3.81.0/go.mod h1:RMilNNVMlmK1h4Nl/qylb9vzbgh4F3mufZoUOnPy98o= +github.com/pulumi/pulumi/pkg/v3 v3.90.1 h1:RFC/eqTbDfIvfeVQL8WaPmyQr1KzZhAGIIDGr9jj9y8= +github.com/pulumi/pulumi/pkg/v3 v3.90.1/go.mod h1:J+WbfN30g3FfQifpLjQPI0UhPsC9ASEePLK8Nix06A8= +github.com/pulumi/pulumi/sdk/v3 v3.90.1 h1:iT4t57N92WGhEQtg+KVDEmYzgfEyri39eihQzcNmtrM= +github.com/pulumi/pulumi/sdk/v3 v3.90.1/go.mod h1:zYaQQibB2pYKy/uG4c4YkX7lQIBpZ0KsuMaq/3HsIBQ= github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI= github.com/pulumi/terraform-diff-reader v0.0.2/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20230912190043-e6d96b3b8f7e h1:blSirnXqvm8JXLxwxelsBroUNRhOHakDO7cgJUYTdpQ= @@ -2480,7 +2455,6 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -2705,7 +2679,6 @@ golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaE golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -2983,7 +2956,6 @@ golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/provider/cmd/pulumi-resource-aws/bridge-metadata.json b/provider/cmd/pulumi-resource-aws/bridge-metadata.json index cfb42133780..3cf678596ad 100644 --- a/provider/cmd/pulumi-resource-aws/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/bridge-metadata.json @@ -217845,8 +217845,13 @@ } }, "aws_vpc_ipam_pool": { - "current": "aws:ec2/getVpcIamPool:getVpcIamPool", + "current": "aws:ec2/getVpcIpamPool:getVpcIpamPool", "past": [ + { + "name": "aws:ec2/getVpcIamPool:getVpcIamPool", + "inCodegen": false, + "majorVersion": 6 + }, { "name": "aws:ec2/getVpcIamPool:getVpcIamPool", "inCodegen": false, @@ -217868,8 +217873,13 @@ } }, "aws_vpc_ipam_pool_cidrs": { - "current": "aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs", + "current": "aws:ec2/getVpcIpamPoolCidrs:getVpcIpamPoolCidrs", "past": [ + { + "name": "aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs", + "inCodegen": false, + "majorVersion": 6 + }, { "name": "aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs", "inCodegen": false, @@ -217894,8 +217904,13 @@ } }, "aws_vpc_ipam_pools": { - "current": "aws:ec2/getVpcIamPools:getVpcIamPools", + "current": "aws:ec2/getVpcIpamPools:getVpcIpamPools", "past": [ + { + "name": "aws:ec2/getVpcIamPools:getVpcIamPools", + "inCodegen": false, + "majorVersion": 6 + }, { "name": "aws:ec2/getVpcIamPools:getVpcIamPools", "inCodegen": false, diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json index 425cfcfb976..27bdc27f4a1 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -1412,7 +1412,7 @@ "items": { "type": "string" }, - "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n\n\nQuery String Value Blocks (for `query_string.values`) support the following:\n" + "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n" } }, "type": "object", @@ -1447,7 +1447,7 @@ "items": { "type": "string" }, - "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n\n\nQuery String Value Blocks (for `query_string.values`) support the following:\n" + "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n" } }, "type": "object", @@ -1462,7 +1462,7 @@ "items": { "type": "string" }, - "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n\n\nQuery String Value Blocks (for `query_string.values`) support the following:\n" + "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n" } }, "type": "object", @@ -1493,7 +1493,7 @@ "items": { "type": "string" }, - "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n\n\nQuery String Value Blocks (for `query_string.values`) support the following:\n" + "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n" } }, "type": "object", @@ -2976,7 +2976,7 @@ "items": { "$ref": "#/types/aws:appautoscaling/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimension:PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimension" }, - "description": "Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below.\n" + "description": "Dimensions of the metric.\n" }, "metricName": { "type": "string", @@ -2999,7 +2999,7 @@ }, "unit": { "type": "string", - "description": "Unit of the metric.\n" + "description": "Unit of the metrics to return.\n" } }, "type": "object" @@ -3061,7 +3061,7 @@ }, "unit": { "type": "string", - "description": "Unit of the metric.\n" + "description": "Unit of the metrics to return.\n" } }, "type": "object", @@ -3077,7 +3077,7 @@ "items": { "$ref": "#/types/aws:appautoscaling/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension:PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension" }, - "description": "Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below.\n" + "description": "Dimensions of the metric.\n" }, "metricName": { "type": "string", @@ -4464,7 +4464,7 @@ }, "errorHandlingConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig", - "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details.\n" + "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details.\n" }, "idFieldNames": { "type": "array", @@ -4520,7 +4520,7 @@ "properties": { "errorHandlingConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig", - "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details.\n" + "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details.\n" }, "object": { "type": "string", @@ -4553,7 +4553,7 @@ "properties": { "errorHandlingConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig", - "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details.\n" + "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details.\n" }, "object": { "type": "string", @@ -4589,7 +4589,7 @@ "properties": { "errorHandlingConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig", - "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details.\n" + "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details.\n" }, "object": { "type": "string", @@ -4622,11 +4622,11 @@ "properties": { "bucketPrefix": { "type": "string", - "description": "Object key for the bucket in which Amazon AppFlow places the destination files.\n" + "description": "Amazon S3 bucket prefix.\n" }, "errorHandlingConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig", - "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details.\n" + "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details.\n" }, "intermediateBucketName": { "type": "string", @@ -4664,11 +4664,11 @@ "properties": { "bucketName": { "type": "string", - "description": "Amazon S3 bucket name in which Amazon AppFlow places the transferred data.\n" + "description": "Name of the Amazon S3 bucket.\n" }, "bucketPrefix": { "type": "string", - "description": "Object key for the bucket in which Amazon AppFlow places the destination files.\n" + "description": "Amazon S3 bucket prefix.\n" }, "s3OutputFormatConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfig", @@ -4727,7 +4727,7 @@ "properties": { "errorHandlingConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig", - "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details.\n" + "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details.\n" }, "idFieldNames": { "type": "array", @@ -4771,7 +4771,7 @@ "properties": { "errorHandlingConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig", - "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details.\n" + "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details.\n" }, "idFieldNames": { "type": "array", @@ -4832,11 +4832,11 @@ "properties": { "bucketPrefix": { "type": "string", - "description": "Object key for the bucket in which Amazon AppFlow places the destination files.\n" + "description": "Amazon S3 bucket prefix.\n" }, "errorHandlingConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig", - "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details.\n" + "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details.\n" }, "intermediateBucketName": { "type": "string", @@ -4874,11 +4874,11 @@ "properties": { "bucketName": { "type": "string", - "description": "Amazon S3 bucket name in which Amazon AppFlow places the transferred data.\n" + "description": "Name of the Amazon S3 bucket.\n" }, "bucketPrefix": { "type": "string", - "description": "Object key for the bucket in which Amazon AppFlow places the destination files.\n" + "description": "Amazon S3 bucket prefix.\n" }, "s3OutputFormatConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfig", @@ -4940,7 +4940,7 @@ "properties": { "errorHandlingConfig": { "$ref": "#/types/aws:appflow/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig:FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig", - "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details.\n" + "description": "Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details.\n" }, "idFieldNames": { "type": "array", @@ -5182,11 +5182,11 @@ "properties": { "bucketName": { "type": "string", - "description": "Amazon S3 bucket name in which Amazon AppFlow places the transferred data.\n" + "description": "Name of the Amazon S3 bucket.\n" }, "bucketPrefix": { "type": "string", - "description": "Object key for the bucket in which Amazon AppFlow places the destination files.\n" + "description": "Amazon S3 bucket prefix.\n" }, "s3InputFormatConfig": { "$ref": "#/types/aws:appflow/FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfig:FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfig", @@ -5652,7 +5652,7 @@ "properties": { "port": { "type": "integer", - "description": "The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners.\n" + "description": "The port number to match from the request.\n" }, "serviceName": { "type": "string", @@ -5790,19 +5790,19 @@ }, "hostname": { "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttp2RouteMatchHostname:GatewayRouteSpecHttp2RouteMatchHostname", - "description": "Host name to rewrite.\n" + "description": "Host name to match on.\n" }, "path": { "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttp2RouteMatchPath:GatewayRouteSpecHttp2RouteMatchPath", - "description": "Exact path to rewrite.\n" + "description": "Client request path to match on.\n" }, "port": { "type": "integer", - "description": "The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners.\n" + "description": "The port number to match from the request.\n" }, "prefix": { "type": "string", - "description": "Specified beginning characters to rewrite.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "queryParameters": { "type": "array", @@ -5838,11 +5838,11 @@ "properties": { "exact": { "type": "string", - "description": "Value used to replace matched path.\n" + "description": "Header value sent by the client must match the specified value exactly.\n" }, "prefix": { "type": "string", - "description": "Specified beginning characters to rewrite.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "range": { "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttp2RouteMatchHeaderMatchRange:GatewayRouteSpecHttp2RouteMatchHeaderMatchRange", @@ -5922,7 +5922,7 @@ "properties": { "exact": { "type": "string", - "description": "Value used to replace matched path.\n" + "description": "Header value sent by the client must match the specified value exactly.\n" } }, "type": "object" @@ -6053,19 +6053,19 @@ }, "hostname": { "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttpRouteMatchHostname:GatewayRouteSpecHttpRouteMatchHostname", - "description": "Host name to rewrite.\n" + "description": "Host name to match on.\n" }, "path": { "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttpRouteMatchPath:GatewayRouteSpecHttpRouteMatchPath", - "description": "Exact path to rewrite.\n" + "description": "Client request path to match on.\n" }, "port": { "type": "integer", - "description": "The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners.\n" + "description": "The port number to match from the request.\n" }, "prefix": { "type": "string", - "description": "Specified beginning characters to rewrite.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "queryParameters": { "type": "array", @@ -6101,11 +6101,11 @@ "properties": { "exact": { "type": "string", - "description": "Value used to replace matched path.\n" + "description": "Header value sent by the client must match the specified value exactly.\n" }, "prefix": { "type": "string", - "description": "Specified beginning characters to rewrite.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "range": { "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttpRouteMatchHeaderMatchRange:GatewayRouteSpecHttpRouteMatchHeaderMatchRange", @@ -6185,7 +6185,7 @@ "properties": { "exact": { "type": "string", - "description": "Value used to replace matched path.\n" + "description": "Header value sent by the client must match the specified value exactly.\n" } }, "type": "object" @@ -6312,7 +6312,7 @@ }, "prefix": { "type": "string", - "description": "Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length.\nThis parameter must always start with /, which by itself matches all requests to the virtual router service name.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "serviceName": { "type": "string", @@ -6349,11 +6349,11 @@ }, "prefix": { "type": "string", - "description": "Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length.\nThis parameter must always start with /, which by itself matches all requests to the virtual router service name.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "range": { "$ref": "#/types/aws:appmesh/RouteSpecGrpcRouteMatchMetadataMatchRange:RouteSpecGrpcRouteMatchMetadataMatchRange", - "description": "Object that specifies the range of numbers that the value sent by the client must be included in.\n" + "description": "Object that specifies the range of numbers that the header value sent by the client must be included in.\n" }, "regex": { "type": "string", @@ -6361,7 +6361,7 @@ }, "suffix": { "type": "string", - "description": "Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length.\n" + "description": "Header value sent by the client must end with the specified characters.\n" } }, "type": "object" @@ -6397,7 +6397,7 @@ "items": { "type": "string" }, - "description": "List of HTTP retry events.\nValid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream).\nValid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream).\n" + "description": "List of HTTP retry events.\nValid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream).\n" }, "maxRetries": { "type": "integer", @@ -6412,7 +6412,7 @@ "items": { "type": "string" }, - "description": "List of TCP retry events. The only valid value is `connection-error`.\n\n\nYou must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`.\n" + "description": "List of TCP retry events. The only valid value is `connection-error`.\n" } }, "type": "object", @@ -6569,7 +6569,7 @@ }, "prefix": { "type": "string", - "description": "Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length.\nThis parameter must always start with /, which by itself matches all requests to the virtual router service name.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "queryParameters": { "type": "array", @@ -6613,11 +6613,11 @@ }, "prefix": { "type": "string", - "description": "Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length.\nThis parameter must always start with /, which by itself matches all requests to the virtual router service name.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "range": { "$ref": "#/types/aws:appmesh/RouteSpecHttp2RouteMatchHeaderMatchRange:RouteSpecHttp2RouteMatchHeaderMatchRange", - "description": "Object that specifies the range of numbers that the value sent by the client must be included in.\n" + "description": "Object that specifies the range of numbers that the header value sent by the client must be included in.\n" }, "regex": { "type": "string", @@ -6625,7 +6625,7 @@ }, "suffix": { "type": "string", - "description": "Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length.\n" + "description": "Header value sent by the client must end with the specified characters.\n" } }, "type": "object" @@ -6651,11 +6651,11 @@ "properties": { "exact": { "type": "string", - "description": "Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length.\n" + "description": "Header value sent by the client must match the specified value exactly.\n" }, "regex": { "type": "string", - "description": "Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length.\n" + "description": "Header value sent by the client must include the specified characters.\n" } }, "type": "object" @@ -6692,7 +6692,7 @@ "items": { "type": "string" }, - "description": "List of HTTP retry events.\nValid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream).\nValid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream).\n" + "description": "List of HTTP retry events.\nValid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream).\n" }, "maxRetries": { "type": "integer", @@ -6707,7 +6707,7 @@ "items": { "type": "string" }, - "description": "List of TCP retry events. The only valid value is `connection-error`.\n\n\nYou must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`.\n" + "description": "List of TCP retry events. The only valid value is `connection-error`.\n" } }, "type": "object", @@ -6864,7 +6864,7 @@ }, "prefix": { "type": "string", - "description": "Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length.\nThis parameter must always start with /, which by itself matches all requests to the virtual router service name.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "queryParameters": { "type": "array", @@ -6908,11 +6908,11 @@ }, "prefix": { "type": "string", - "description": "Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length.\nThis parameter must always start with /, which by itself matches all requests to the virtual router service name.\n" + "description": "Header value sent by the client must begin with the specified characters.\n" }, "range": { "$ref": "#/types/aws:appmesh/RouteSpecHttpRouteMatchHeaderMatchRange:RouteSpecHttpRouteMatchHeaderMatchRange", - "description": "Object that specifies the range of numbers that the value sent by the client must be included in.\n" + "description": "Object that specifies the range of numbers that the header value sent by the client must be included in.\n" }, "regex": { "type": "string", @@ -6920,7 +6920,7 @@ }, "suffix": { "type": "string", - "description": "Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length.\n" + "description": "Header value sent by the client must end with the specified characters.\n" } }, "type": "object" @@ -6946,11 +6946,11 @@ "properties": { "exact": { "type": "string", - "description": "Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length.\n" + "description": "Header value sent by the client must match the specified value exactly.\n" }, "regex": { "type": "string", - "description": "Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length.\n" + "description": "Header value sent by the client must include the specified characters.\n" } }, "type": "object" @@ -6987,7 +6987,7 @@ "items": { "type": "string" }, - "description": "List of HTTP retry events.\nValid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream).\nValid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream).\n" + "description": "List of HTTP retry events.\nValid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream).\n" }, "maxRetries": { "type": "integer", @@ -7002,7 +7002,7 @@ "items": { "type": "string" }, - "description": "List of TCP retry events. The only valid value is `connection-error`.\n\n\nYou must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`.\n" + "description": "List of TCP retry events. The only valid value is `connection-error`.\n" } }, "type": "object", @@ -8391,7 +8391,7 @@ }, "value": { "type": "integer", - "description": "The specified value for the JSON. Must be between 1 and 100 characters in length.\n" + "description": "Number of time units. Minimum value of `0`.\n" } }, "type": "object", @@ -8476,7 +8476,7 @@ }, "value": { "type": "integer", - "description": "The specified value for the JSON. Must be between 1 and 100 characters in length.\n" + "description": "Number of time units. Minimum value of `0`.\n" } }, "type": "object", @@ -8523,7 +8523,7 @@ }, "value": { "type": "integer", - "description": "The specified value for the JSON. Must be between 1 and 100 characters in length.\n" + "description": "Number of time units. Minimum value of `0`.\n" } }, "type": "object", @@ -8570,7 +8570,7 @@ }, "value": { "type": "integer", - "description": "The specified value for the JSON. Must be between 1 and 100 characters in length.\n" + "description": "Number of time units. Minimum value of `0`.\n" } }, "type": "object", @@ -15624,7 +15624,7 @@ "properties": { "launchTemplateSpecification": { "$ref": "#/types/aws:autoscaling/GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification:GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification", - "description": "Nested argument defines the Launch Template. Defined below.\n" + "description": "Override the instance launch template specification in the Launch Template.\n" }, "overrides": { "type": "array", @@ -15676,7 +15676,7 @@ }, "launchTemplateSpecification": { "$ref": "#/types/aws:autoscaling/GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification:GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification", - "description": "Nested argument defines the Launch Template. Defined below.\n" + "description": "Override the instance launch template specification in the Launch Template.\n" }, "weightedCapacity": { "type": "string", @@ -15810,7 +15810,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -15823,7 +15823,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -15836,7 +15836,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -15849,7 +15849,7 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "number", @@ -15862,7 +15862,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -15875,7 +15875,7 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "number", @@ -15888,7 +15888,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -15901,7 +15901,7 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "number", @@ -15914,7 +15914,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -19697,15 +19697,15 @@ }, "contentIdentificationType": { "type": "string", - "description": "Labels all personally identifiable information (PII) identified in Utterance events.\n" + "description": "Labels all personally identifiable information (PII) identified in Transcript events.\n" }, "contentRedactionType": { "type": "string", - "description": "Redacts all personally identifiable information (PII) identified in Utterance events.\n" + "description": "Redacts all personally identifiable information (PII) identified in Transcript events.\n" }, "enablePartialResultsStabilization": { "type": "boolean", - "description": "Enables partial result stabilization in Utterance events.\n" + "description": "Enables partial result stabilization in Transcript events.\n" }, "filterPartialResults": { "type": "boolean", @@ -19725,7 +19725,7 @@ }, "piiEntityTypes": { "type": "string", - "description": "Types of personally identifiable information (PII) to redact from an Utterance event.\n" + "description": "Types of personally identifiable information (PII) to redact from a Transcript event.\n" }, "postCallAnalyticsSettings": { "$ref": "#/types/aws:chimesdkmediapipelines/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettings:MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettings", @@ -19733,15 +19733,15 @@ }, "vocabularyFilterMethod": { "type": "string", - "description": "Method for applying a vocabulary filter to Utterance events.\n" + "description": "Method for applying a vocabulary filter to Transcript events.\n" }, "vocabularyFilterName": { "type": "string", - "description": "Name of the custom vocabulary filter to use when processing Utterance events.\n" + "description": "Name of the custom vocabulary filter to use when processing Transcript events.\n" }, "vocabularyName": { "type": "string", - "description": "Name of the custom vocabulary to use when processing Utterance events.\n" + "description": "Name of the custom vocabulary to use when processing Transcript events.\n" } }, "type": "object", @@ -19778,15 +19778,15 @@ "properties": { "contentIdentificationType": { "type": "string", - "description": "Labels all personally identifiable information (PII) identified in Utterance events.\n" + "description": "Labels all personally identifiable information (PII) identified in Transcript events.\n" }, "contentRedactionType": { "type": "string", - "description": "Redacts all personally identifiable information (PII) identified in Utterance events.\n" + "description": "Redacts all personally identifiable information (PII) identified in Transcript events.\n" }, "enablePartialResultsStabilization": { "type": "boolean", - "description": "Enables partial result stabilization in Utterance events.\n" + "description": "Enables partial result stabilization in Transcript events.\n" }, "filterPartialResults": { "type": "boolean", @@ -19806,7 +19806,7 @@ }, "piiEntityTypes": { "type": "string", - "description": "Types of personally identifiable information (PII) to redact from an Utterance event.\n" + "description": "Types of personally identifiable information (PII) to redact from a Transcript event.\n" }, "showSpeakerLabel": { "type": "boolean", @@ -19814,15 +19814,15 @@ }, "vocabularyFilterMethod": { "type": "string", - "description": "Method for applying a vocabulary filter to Utterance events.\n" + "description": "Method for applying a vocabulary filter to Transcript events.\n" }, "vocabularyFilterName": { "type": "string", - "description": "Name of the custom vocabulary filter to use when processing Utterance events.\n" + "description": "Name of the custom vocabulary filter to use when processing Transcript events.\n" }, "vocabularyName": { "type": "string", - "description": "Name of the custom vocabulary to use when processing Utterance events.\n" + "description": "Name of the custom vocabulary to use when processing Transcript events.\n" } }, "type": "object", @@ -19834,7 +19834,7 @@ "properties": { "insightsTarget": { "type": "string", - "description": "Kinesis Data Stream to deliver results.\n" + "description": "SQS queue to deliver results.\n" } }, "type": "object", @@ -19846,7 +19846,7 @@ "properties": { "insightsTarget": { "type": "string", - "description": "Kinesis Data Stream to deliver results.\n" + "description": "SQS queue to deliver results.\n" } }, "type": "object", @@ -19867,7 +19867,7 @@ "properties": { "insightsTarget": { "type": "string", - "description": "Kinesis Data Stream to deliver results.\n" + "description": "SQS queue to deliver results.\n" } }, "type": "object", @@ -19879,7 +19879,7 @@ "properties": { "insightsTarget": { "type": "string", - "description": "Kinesis Data Stream to deliver results.\n" + "description": "SQS queue to deliver results.\n" } }, "type": "object", @@ -20321,7 +20321,8 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "List of item names, such as cookies, headers, or query strings.\n" } }, "type": "object" @@ -20345,7 +20346,8 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "List of item names, such as cookies, headers, or query strings.\n" } }, "type": "object" @@ -20372,7 +20374,8 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "List of item names, such as cookies, headers, or query strings.\n" } }, "type": "object" @@ -20987,7 +20990,7 @@ }, "originId": { "type": "string", - "description": "Unique identifier for the origin.\n" + "description": "Unique identifier of the member origin.\n" }, "originPath": { "type": "string", @@ -21076,7 +21079,7 @@ }, "originId": { "type": "string", - "description": "Unique identifier for the origin.\n" + "description": "Unique identifier of the member origin.\n" } }, "type": "object", @@ -21105,7 +21108,7 @@ "properties": { "originId": { "type": "string", - "description": "Unique identifier for the origin.\n" + "description": "Unique identifier of the member origin.\n" } }, "type": "object", @@ -21117,7 +21120,7 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether the distribution is enabled to accept end user requests for content.\n" + "description": "Whether Origin Shield is enabled.\n" }, "originShieldRegion": { "type": "string", @@ -21183,7 +21186,7 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether the distribution is enabled to accept end user requests for content.\n" + "description": "Whether Origin Shield is enabled.\n" }, "items": { "type": "array", @@ -21231,7 +21234,7 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether the distribution is enabled to accept end user requests for content.\n" + "description": "Whether Origin Shield is enabled.\n" }, "items": { "type": "array", @@ -21673,7 +21676,7 @@ }, "override": { "type": "boolean", - "description": "Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here.\n" + "description": "Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy.\n" }, "value": { "type": "string", @@ -24380,7 +24383,7 @@ }, "status": { "type": "string", - "description": "Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`.\n" + "description": "Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`.\n" }, "streamName": { "type": "string", @@ -24405,7 +24408,7 @@ }, "status": { "type": "string", - "description": "Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`.\n" + "description": "Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`.\n" } }, "type": "object" @@ -25920,7 +25923,8 @@ "description": "The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`.\n" }, "notify": { - "type": "boolean" + "type": "boolean", + "description": "Whether to send a notification.\n" } }, "type": "object", @@ -25936,7 +25940,8 @@ "description": "The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`.\n" }, "notify": { - "type": "boolean" + "type": "boolean", + "description": "Whether to send a notification.\n" } }, "type": "object", @@ -25952,7 +25957,8 @@ "description": "The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`.\n" }, "notify": { - "type": "boolean" + "type": "boolean", + "description": "Whether to send a notification.\n" } }, "type": "object", @@ -32397,7 +32403,7 @@ }, "parameters": { "$ref": "#/types/aws:dlm/LifecyclePolicyPolicyDetailsParameters:LifecyclePolicyPolicyDetailsParameters", - "description": "A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block.\n" + "description": "Information about the event. See the `parameters` configuration block.\n" }, "policyType": { "type": "string", @@ -32483,11 +32489,11 @@ "properties": { "cmkArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used.\n" + "description": "The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used.\n" }, "encrypted": { "type": "boolean", - "description": "To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled.\n" + "description": "To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled.\n" } }, "type": "object" @@ -32513,7 +32519,7 @@ "properties": { "parameters": { "$ref": "#/types/aws:dlm/LifecyclePolicyPolicyDetailsEventSourceParameters:LifecyclePolicyPolicyDetailsEventSourceParameters", - "description": "A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block.\n" + "description": "Information about the event. See the `parameters` configuration block.\n" }, "type": { "type": "string", @@ -32568,7 +32574,7 @@ "properties": { "copyTags": { "type": "boolean", - "description": "Copy all user-defined tags on a source volume to snapshots of the volume created by this policy.\n", + "description": "Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy.\n", "willReplaceOnChanges": true }, "createRule": { @@ -32584,7 +32590,7 @@ }, "deprecateRule": { "$ref": "#/types/aws:dlm/LifecyclePolicyPolicyDetailsScheduleDeprecateRule:LifecyclePolicyPolicyDetailsScheduleDeprecateRule", - "description": "See the `deprecate_rule` block. Max of 1 per schedule.\n" + "description": "The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block.\n" }, "fastRestoreRule": { "$ref": "#/types/aws:dlm/LifecyclePolicyPolicyDetailsScheduleFastRestoreRule:LifecyclePolicyPolicyDetailsScheduleFastRestoreRule", @@ -32672,19 +32678,19 @@ "properties": { "cmkArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used.\n" + "description": "The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used.\n" }, "copyTags": { "type": "boolean", - "description": "Copy all user-defined tags on a source volume to snapshots of the volume created by this policy.\n" + "description": "Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy.\n" }, "deprecateRule": { "$ref": "#/types/aws:dlm/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule:LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule", - "description": "See the `deprecate_rule` block. Max of 1 per schedule.\n" + "description": "The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block.\n" }, "encrypted": { "type": "boolean", - "description": "To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled.\n" + "description": "To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled.\n" }, "retainRule": { "$ref": "#/types/aws:dlm/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRule:LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRule", @@ -35088,11 +35094,11 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.\n" }, "min": { "type": "integer", - "description": "Minimum.\n" + "description": "The minimum number of vCPUs. To specify no minimum limit, specify `0`.\n" } }, "type": "object" @@ -35101,11 +35107,11 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.\n" }, "min": { "type": "integer", - "description": "Minimum.\n" + "description": "The minimum number of vCPUs. To specify no minimum limit, specify `0`.\n" } }, "type": "object" @@ -35114,11 +35120,11 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.\n" }, "min": { "type": "integer", - "description": "Minimum.\n" + "description": "The minimum number of vCPUs. To specify no minimum limit, specify `0`.\n" } }, "type": "object" @@ -35127,11 +35133,11 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.\n" }, "min": { "type": "number", - "description": "Minimum.\n" + "description": "The minimum number of vCPUs. To specify no minimum limit, specify `0`.\n" } }, "type": "object" @@ -35140,11 +35146,11 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.\n" }, "min": { "type": "integer", - "description": "Minimum.\n" + "description": "The minimum number of vCPUs. To specify no minimum limit, specify `0`.\n" } }, "type": "object", @@ -35156,11 +35162,11 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.\n" }, "min": { "type": "number", - "description": "Minimum.\n" + "description": "The minimum number of vCPUs. To specify no minimum limit, specify `0`.\n" } }, "type": "object" @@ -35169,11 +35175,11 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.\n" }, "min": { "type": "integer", - "description": "Minimum.\n" + "description": "The minimum number of vCPUs. To specify no minimum limit, specify `0`.\n" } }, "type": "object" @@ -35182,11 +35188,11 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.\n" }, "min": { "type": "number", - "description": "Minimum.\n" + "description": "The minimum number of vCPUs. To specify no minimum limit, specify `0`.\n" } }, "type": "object" @@ -35195,11 +35201,11 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.\n" }, "min": { "type": "integer", - "description": "Minimum.\n" + "description": "The minimum number of vCPUs. To specify no minimum limit, specify `0`.\n" } }, "type": "object", @@ -38146,7 +38152,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -38159,7 +38165,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -38172,7 +38178,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -38185,7 +38191,7 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "number", @@ -38198,7 +38204,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -38214,7 +38220,7 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "number", @@ -38227,7 +38233,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -38240,7 +38246,7 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "number", @@ -38253,7 +38259,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n" + "description": "Maximum.\n" }, "min": { "type": "integer", @@ -41974,7 +41980,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n", + "description": "Maximum.\n", "willReplaceOnChanges": true }, "min": { @@ -41989,7 +41995,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n", + "description": "Maximum.\n", "willReplaceOnChanges": true }, "min": { @@ -42004,7 +42010,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n", + "description": "Maximum.\n", "willReplaceOnChanges": true }, "min": { @@ -42019,7 +42025,7 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n", + "description": "Maximum.\n", "willReplaceOnChanges": true }, "min": { @@ -42034,7 +42040,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n", + "description": "Maximum.\n", "willReplaceOnChanges": true }, "min": { @@ -42049,7 +42055,7 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n", + "description": "Maximum.\n", "willReplaceOnChanges": true }, "min": { @@ -42064,7 +42070,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n", + "description": "Maximum.\n", "willReplaceOnChanges": true }, "min": { @@ -42079,7 +42085,7 @@ "properties": { "max": { "type": "number", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n", + "description": "Maximum.\n", "willReplaceOnChanges": true }, "min": { @@ -42094,7 +42100,7 @@ "properties": { "max": { "type": "integer", - "description": "Maximum. Set to `0` to exclude instance types with accelerators.\n", + "description": "Maximum.\n", "willReplaceOnChanges": true }, "min": { @@ -58616,15 +58622,15 @@ "properties": { "connectionName": { "type": "string", - "description": "The name of the connection to use to connect to the JDBC target.\n" + "description": "The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type.\n" }, "dlqEventQueueArn": { "type": "string", - "description": "The ARN of the dead-letter SQS queue.\n\n\u003e **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`.\n\n\u003e **Note:** `configuration` for catalog target crawlers will have `{ ... \"Grouping\": { \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"} }` by default.\n" + "description": "A valid Amazon SQS ARN.\n\n\u003e **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`.\n\n\u003e **Note:** `configuration` for catalog target crawlers will have `{ ... \"Grouping\": { \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"} }` by default.\n" }, "eventQueueArn": { "type": "string", - "description": "The ARN of the SQS queue to receive S3 notifications from.\n" + "description": "A valid Amazon SQS ARN.\n" }, "exclusions": { "type": "array", @@ -68519,7 +68525,7 @@ "properties": { "tableName": { "type": "string", - "description": "The name of the DynamoDB table.\n\nThe `dynamodbv2` object takes the following arguments:\n" + "description": "The name of the DynamoDB table.\n" } }, "type": "object", @@ -68772,7 +68778,7 @@ "properties": { "tableName": { "type": "string", - "description": "The name of the DynamoDB table.\n\nThe `dynamodbv2` object takes the following arguments:\n" + "description": "The name of the DynamoDB table.\n" } }, "type": "object", @@ -71950,7 +71956,7 @@ }, "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" + "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/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptions", @@ -71974,7 +71980,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + "description": "The ARN of the role used to access the Amazon MSK cluster.\n" } }, "type": "object", @@ -72065,7 +72071,7 @@ }, "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" + "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/FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptions", @@ -72102,7 +72108,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + "description": "The ARN of the role used to access the Amazon MSK cluster.\n" }, "s3BackupConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration:FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration", @@ -72110,7 +72116,7 @@ }, "s3BackupMode": { "type": "string", - "description": "The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`.\n" + "description": "Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`.\n" } }, "type": "object", @@ -72453,7 +72459,7 @@ }, "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" + "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/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptions", @@ -72477,7 +72483,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + "description": "The ARN of the role used to access the Amazon MSK cluster.\n" } }, "type": "object", @@ -72694,7 +72700,7 @@ }, "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" + "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/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptions", @@ -72718,7 +72724,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + "description": "The ARN of the role used to access the Amazon MSK cluster.\n" } }, "type": "object", @@ -72975,7 +72981,7 @@ }, "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" + "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/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptions", @@ -72999,7 +73005,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + "description": "The ARN of the role used to access the Amazon MSK cluster.\n" } }, "type": "object", @@ -73227,7 +73233,7 @@ }, "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" + "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/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions", @@ -73251,7 +73257,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + "description": "The ARN of the role used to access the Amazon MSK cluster.\n" } }, "type": "object", @@ -73490,7 +73496,7 @@ }, "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" + "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/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptions", @@ -73514,7 +73520,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + "description": "The ARN of the role used to access the Amazon MSK cluster.\n" } }, "type": "object", @@ -73561,7 +73567,7 @@ }, "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" + "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/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptions", @@ -73585,7 +73591,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + "description": "The ARN of the role used to access the Amazon MSK cluster.\n" } }, "type": "object", @@ -73774,7 +73780,7 @@ }, "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" + "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/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptions", @@ -73798,7 +73804,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of the role that provides access to the source Kinesis stream.\n" + "description": "The ARN of the role used to access the Amazon MSK cluster.\n" } }, "type": "object", @@ -76979,7 +76985,7 @@ "items": { "type": "string" }, - "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n\n\nQuery String Value Blocks (for `query_string.values`) support the following:\n" + "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n" } }, "type": "object", @@ -77014,7 +77020,7 @@ "items": { "type": "string" }, - "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n\n\nQuery String Value Blocks (for `query_string.values`) support the following:\n" + "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n" } }, "type": "object", @@ -77029,7 +77035,7 @@ "items": { "type": "string" }, - "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n\n\nQuery String Value Blocks (for `query_string.values`) support the following:\n" + "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n" } }, "type": "object", @@ -77060,7 +77066,7 @@ "items": { "type": "string" }, - "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n\n\nQuery String Value Blocks (for `query_string.values`) support the following:\n" + "description": "List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string.\n" } }, "type": "object", @@ -77650,11 +77656,12 @@ "type": "array", "items": { "$ref": "#/types/aws:lex/BotAbortStatementMessage:BotAbortStatementMessage" - } + }, + "description": "A set of messages, each of which provides a message string and its type.\nYou can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).\nAttributes are documented under message.\n" }, "responseCard": { "type": "string", - "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html).\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html).\n" + "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html).\n" } }, "type": "object", @@ -77752,11 +77759,12 @@ "type": "array", "items": { "$ref": "#/types/aws:lex/BotClarificationPromptMessage:BotClarificationPromptMessage" - } + }, + "description": "A set of messages, each of which provides a message string and its type.\nYou can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).\nAttributes are documented under message.\n" }, "responseCard": { "type": "string", - "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html).\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html).\n" + "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html).\n" } }, "type": "object", @@ -77809,11 +77817,12 @@ "type": "array", "items": { "$ref": "#/types/aws:lex/IntentConclusionStatementMessage:IntentConclusionStatementMessage" - } + }, + "description": "A set of messages, each of which provides a message string and its type.\nYou can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).\nAttributes are documented under message. Must contain between 1 and 15 messages.\n" }, "responseCard": { "type": "string", - "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" + "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" } }, "type": "object", @@ -77852,11 +77861,12 @@ "type": "array", "items": { "$ref": "#/types/aws:lex/IntentConfirmationPromptMessage:IntentConfirmationPromptMessage" - } + }, + "description": "A set of messages, each of which provides a message string and its type.\nYou can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).\nAttributes are documented under message. Must contain between 1 and 15 messages.\n" }, "responseCard": { "type": "string", - "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" + "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" } }, "type": "object", @@ -77971,11 +77981,12 @@ "type": "array", "items": { "$ref": "#/types/aws:lex/IntentFollowUpPromptRejectionStatementMessage:IntentFollowUpPromptRejectionStatementMessage" - } + }, + "description": "A set of messages, each of which provides a message string and its type.\nYou can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).\nAttributes are documented under message. Must contain between 1 and 15 messages.\n" }, "responseCard": { "type": "string", - "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" + "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" } }, "type": "object", @@ -78043,11 +78054,12 @@ "type": "array", "items": { "$ref": "#/types/aws:lex/IntentRejectionStatementMessage:IntentRejectionStatementMessage" - } + }, + "description": "A set of messages, each of which provides a message string and its type.\nYou can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).\nAttributes are documented under message. Must contain between 1 and 15 messages.\n" }, "responseCard": { "type": "string", - "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" + "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" } }, "type": "object", @@ -78135,11 +78147,12 @@ "type": "array", "items": { "$ref": "#/types/aws:lex/IntentSlotValueElicitationPromptMessage:IntentSlotValueElicitationPromptMessage" - } + }, + "description": "A set of messages, each of which provides a message string and its type.\nYou can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).\nAttributes are documented under message. Must contain between 1 and 15 messages.\n" }, "responseCard": { "type": "string", - "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" + "description": "The response card. Amazon Lex will substitute session attributes and\nslot values into the response card. For more information, see\n[Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length.\n" } }, "type": "object", @@ -79295,7 +79308,7 @@ "items": { "$ref": "#/types/aws:macie2/ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd:ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd" }, - "description": "An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below)\n" + "description": "An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below)\n" } }, "type": "object", @@ -79573,7 +79586,7 @@ "items": { "$ref": "#/types/aws:macie2/ClassificationJobS3JobDefinitionScopingIncludesAnd:ClassificationJobS3JobDefinitionScopingIncludesAnd" }, - "description": "An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below)\n" + "description": "An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below)\n" } }, "type": "object", @@ -80976,7 +80989,7 @@ }, "username": { "type": "string", - "description": "Username for destination.\n" + "description": ". Username to be used.\n" } }, "type": "object", @@ -81670,7 +81683,7 @@ }, "username": { "type": "string", - "description": "Username for destination.\n" + "description": ". Username to be used.\n" } }, "type": "object", @@ -82270,7 +82283,7 @@ }, "username": { "type": "string", - "description": "Username for destination.\n" + "description": ". Username to be used.\n" } }, "type": "object", @@ -82938,7 +82951,7 @@ }, "filterSettings": { "$ref": "#/types/aws:medialive/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings:ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings", - "description": "Filters to apply to an encode. See H264 Filter Settings for more details.\n" + "description": "Filters to apply to an encode. See H265 Filter Settings for more details.\n" }, "fixedAfd": { "type": "string", @@ -82985,7 +82998,7 @@ }, "level": { "type": "string", - "description": "H264 level.\n" + "description": "H265 level.\n" }, "lookAheadRateControl": { "type": "string", @@ -83168,7 +83181,7 @@ }, "filterSettings": { "$ref": "#/types/aws:medialive/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings:ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings", - "description": "Filters to apply to an encode. See H264 Filter Settings for more details.\n" + "description": "Filters to apply to an encode. See H265 Filter Settings for more details.\n" }, "fixedAfd": { "type": "string", @@ -83199,7 +83212,7 @@ }, "level": { "type": "string", - "description": "H264 level.\n" + "description": "H265 level.\n" }, "lookAheadRateControl": { "type": "string", @@ -83476,7 +83489,7 @@ "properties": { "audioSelectorName": { "type": "string", - "description": "The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank.\n" + "description": "The name of the audio selector used as the source for this AudioDescription.\n" }, "audioSilenceThresholdMsec": { "type": "integer", @@ -85314,11 +85327,11 @@ "properties": { "iam": { "type": "boolean", - "description": "Enables SASL/IAM authentication for VPC connectivity.\n" + "description": "Enables IAM client authentication. Defaults to `false`.\n" }, "scram": { "type": "boolean", - "description": "Enables SASL/SCRAM authentication for VPC connectivity.\n" + "description": "Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`.\n" } }, "type": "object", @@ -85387,11 +85400,11 @@ "properties": { "iam": { "type": "boolean", - "description": "Enables SASL/IAM authentication for VPC connectivity.\n" + "description": "Enables IAM client authentication. Defaults to `false`.\n" }, "scram": { "type": "boolean", - "description": "Enables SASL/SCRAM authentication for VPC connectivity.\n" + "description": "Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`.\n" } }, "type": "object" @@ -85567,7 +85580,7 @@ "properties": { "enabledInBroker": { "type": "boolean", - "description": "Indicates whether you want to enable or disable the JMX Exporter.\n" + "description": "Indicates whether you want to enable or disable the Node Exporter.\n" } }, "type": "object", @@ -85579,7 +85592,7 @@ "properties": { "enabledInBroker": { "type": "boolean", - "description": "Indicates whether you want to enable or disable the JMX Exporter.\n" + "description": "Indicates whether you want to enable or disable the Node Exporter.\n" } }, "type": "object", @@ -92283,7 +92296,7 @@ "properties": { "basicAuth": { "type": "string", - "description": "The ARN of the Secrets Manager secret containing the basic auth credentials.\n" + "description": "The ARN of the Secrets Manager secret containing the credentials.\n" } }, "type": "object", @@ -92543,7 +92556,7 @@ "properties": { "basicAuth": { "type": "string", - "description": "The ARN of the Secrets Manager secret containing the basic auth credentials.\n" + "description": "The ARN of the Secrets Manager secret containing the credentials.\n" } }, "type": "object", @@ -92615,7 +92628,7 @@ "properties": { "basicAuth": { "type": "string", - "description": "The ARN of the Secrets Manager secret containing the basic auth credentials.\n" + "description": "The ARN of the Secrets Manager secret containing the credentials.\n" }, "clientCertificateTlsAuth": { "type": "string", @@ -92787,14 +92800,14 @@ "items": { "type": "string" }, - "description": "List of commands to send to the container that overrides the default command from the Docker image or the task definition.\n" + "description": "List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.\n" }, "environments": { "type": "array", "items": { "$ref": "#/types/aws:pipes/PipeTargetParametersBatchJobParametersContainerOverridesEnvironment:PipeTargetParametersBatchJobParametersContainerOverridesEnvironment" }, - "description": "The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with \" AWS Batch \". This naming convention is reserved for variables that AWS Batch sets. Detailed below.\n" + "description": "The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.\n" }, "instanceType": { "type": "string", @@ -92805,7 +92818,7 @@ "items": { "$ref": "#/types/aws:pipes/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement:PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement" }, - "description": "The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below.\n" + "description": "The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.\n" } }, "type": "object" @@ -92818,7 +92831,7 @@ }, "value": { "type": "string", - "description": "The value of the key-value pair. For environment variables, this is the value of the environment variable.\n" + "description": "Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024.\n" } }, "type": "object" @@ -92827,11 +92840,11 @@ "properties": { "type": { "type": "string", - "description": "The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU.\n" + "description": "The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack.\n" }, "value": { "type": "string", - "description": "The value of the key-value pair. For environment variables, this is the value of the environment variable.\n" + "description": "Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024.\n" } }, "type": "object", @@ -92848,7 +92861,7 @@ }, "type": { "type": "string", - "description": "The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU.\n" + "description": "The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack.\n" } }, "type": "object" @@ -93018,7 +93031,7 @@ }, "cpu": { "type": "string", - "description": "The cpu override for the task.\n" + "description": "The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name.\n" }, "ephemeralStorage": { "$ref": "#/types/aws:pipes/PipeTargetParametersEcsTaskParametersOverridesEphemeralStorage:PipeTargetParametersEcsTaskParametersOverridesEphemeralStorage", @@ -93037,7 +93050,7 @@ }, "memory": { "type": "string", - "description": "The memory override for the task.\n" + "description": "The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name.\n" }, "taskRoleArn": { "type": "string", @@ -93053,11 +93066,11 @@ "items": { "type": "string" }, - "description": "List of commands to send to the container that overrides the default command from the Docker image or the task definition.\n" + "description": "List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.\n" }, "cpu": { "type": "integer", - "description": "The cpu override for the task.\n" + "description": "The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name.\n" }, "environmentFiles": { "type": "array", @@ -93071,11 +93084,11 @@ "items": { "$ref": "#/types/aws:pipes/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment:PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment" }, - "description": "The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with \" AWS Batch \". This naming convention is reserved for variables that AWS Batch sets. Detailed below.\n" + "description": "The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.\n" }, "memory": { "type": "integer", - "description": "The memory override for the task.\n" + "description": "The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name.\n" }, "memoryReservation": { "type": "integer", @@ -93090,7 +93103,7 @@ "items": { "$ref": "#/types/aws:pipes/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement:PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement" }, - "description": "The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below.\n" + "description": "The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.\n" } }, "type": "object" @@ -93103,7 +93116,7 @@ }, "value": { "type": "string", - "description": "The value of the key-value pair. For environment variables, this is the value of the environment variable.\n" + "description": "Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024.\n" } }, "type": "object" @@ -93112,11 +93125,11 @@ "properties": { "type": { "type": "string", - "description": "The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU.\n" + "description": "The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack.\n" }, "value": { "type": "string", - "description": "The value of the key-value pair. For environment variables, this is the value of the environment variable.\n" + "description": "Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024.\n" } }, "type": "object", @@ -93129,11 +93142,11 @@ "properties": { "type": { "type": "string", - "description": "The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU.\n" + "description": "The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack.\n" }, "value": { "type": "string", - "description": "The value of the key-value pair. For environment variables, this is the value of the environment variable.\n" + "description": "Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024.\n" } }, "type": "object", @@ -93175,7 +93188,7 @@ }, "type": { "type": "string", - "description": "The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU.\n" + "description": "The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack.\n" } }, "type": "object" @@ -93188,7 +93201,7 @@ }, "type": { "type": "string", - "description": "The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU.\n" + "description": "The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack.\n" } }, "type": "object" @@ -93324,7 +93337,7 @@ }, "value": { "type": "string", - "description": "The value of the key-value pair. For environment variables, this is the value of the environment variable.\n" + "description": "Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024.\n" } }, "type": "object", @@ -99858,7 +99871,7 @@ }, "prefix": { "type": "string", - "description": "Object prefix for filtering.\n" + "description": "Prefix to append to exported analytics data.\n" } }, "type": "object", @@ -109983,7 +109996,7 @@ "items": { "$ref": "#/types/aws:signer/SigningJobSignedObjectS3:SigningJobSignedObjectS3" }, - "description": "A configuration block describing the S3 Source object: See S3 Source below for details.\n" + "description": "A configuration block describing the S3 Destination object: See S3 Destination below for details.\n" } }, "type": "object", @@ -112270,7 +112283,7 @@ }, "type": { "type": "string", - "description": "One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`.\n", + "description": "The type of encryption used. Currently, this value must be `\"PGP\"`.\n", "willReplaceOnChanges": true } }, @@ -112343,7 +112356,7 @@ }, "key": { "type": "string", - "description": "The name assigned to the file when it was created in S3. You use the object key to retrieve the object.\n", + "description": "The name assigned to the tag that you create.\n", "willReplaceOnChanges": true } }, @@ -112445,7 +112458,7 @@ }, "key": { "type": "string", - "description": "The name assigned to the file when it was created in S3. You use the object key to retrieve the object.\n", + "description": "The name assigned to the tag that you create.\n", "willReplaceOnChanges": true } }, @@ -112493,7 +112506,7 @@ "properties": { "key": { "type": "string", - "description": "The name assigned to the file when it was created in S3. You use the object key to retrieve the object.\n", + "description": "The name assigned to the tag that you create.\n", "willReplaceOnChanges": true }, "value": { @@ -112537,7 +112550,7 @@ }, "type": { "type": "string", - "description": "One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`.\n", + "description": "The type of encryption used. Currently, this value must be `\"PGP\"`.\n", "willReplaceOnChanges": true } }, @@ -112610,7 +112623,7 @@ }, "key": { "type": "string", - "description": "The name assigned to the file when it was created in S3. You use the object key to retrieve the object.\n", + "description": "The name assigned to the tag that you create.\n", "willReplaceOnChanges": true } }, @@ -112713,7 +112726,7 @@ }, "key": { "type": "string", - "description": "The name assigned to the file when it was created in S3. You use the object key to retrieve the object.\n", + "description": "The name assigned to the tag that you create.\n", "willReplaceOnChanges": true } }, @@ -112761,7 +112774,7 @@ "properties": { "key": { "type": "string", - "description": "The name assigned to the file when it was created in S3. You use the object key to retrieve the object.\n", + "description": "The name assigned to the tag that you create.\n", "willReplaceOnChanges": true }, "value": { @@ -113624,7 +113637,7 @@ }, "type": { "type": "string", - "description": "e.g., `BLOCK`, `ALLOW`, or `COUNT`\n" + "description": "The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`.\n" } }, "type": "object", @@ -113638,7 +113651,7 @@ "properties": { "type": { "type": "string", - "description": "e.g., `BLOCK`, `ALLOW`, or `COUNT`\n" + "description": "The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`.\n" } }, "type": "object", @@ -114041,7 +114054,7 @@ }, "type": { "type": "string", - "description": "e.g., `BLOCK`, `ALLOW`, or `COUNT`\n" + "description": "The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`.\n" } }, "type": "object", @@ -114055,7 +114068,7 @@ "properties": { "type": { "type": "string", - "description": "e.g., `BLOCK`, `ALLOW`, or `COUNT`\n" + "description": "The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`.\n" } }, "type": "object", @@ -114262,7 +114275,7 @@ "properties": { "type": { "type": "string", - "description": "Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT`\n" + "description": "Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`.\n" } }, "type": "object", @@ -114804,7 +114817,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -115203,7 +115216,7 @@ "items": { "$ref": "#/types/aws:wafv2/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformation:RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformation" }, - "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\n" + "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\n" } }, "type": "object", @@ -115243,7 +115256,7 @@ "items": { "$ref": "#/types/aws:wafv2/RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation:RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation" }, - "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\n" + "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\n" } }, "type": "object", @@ -115298,7 +115311,7 @@ "items": { "$ref": "#/types/aws:wafv2/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation:RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation" }, - "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\n" + "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\n" } }, "type": "object", @@ -115331,7 +115344,7 @@ "items": { "$ref": "#/types/aws:wafv2/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation:RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation" }, - "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\n" + "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\n" } }, "type": "object", @@ -115363,7 +115376,7 @@ "items": { "$ref": "#/types/aws:wafv2/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation:RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation" }, - "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\nAt least one required.\nSee Text Transformation below for details.\n" + "description": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.\nAt least one required.\nSee Text Transformation below for details.\n" } }, "type": "object", @@ -115557,7 +115570,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -115952,7 +115965,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -116226,7 +116239,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -116505,7 +116518,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -116774,7 +116787,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -117043,7 +117056,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -117317,7 +117330,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -117591,7 +117604,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -117870,7 +117883,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -118139,7 +118152,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -118408,7 +118421,7 @@ "properties": { "oversizeHandling": { "type": "string", - "description": "Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information.\n" + "description": "What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`\n" } }, "type": "object" @@ -119862,7 +119875,7 @@ "properties": { "identifier": { "type": "string", - "description": "The name of the password field.\n" + "description": "The identifier for the value to match against in the JSON.\n" } }, "type": "object", @@ -120267,11 +120280,11 @@ "properties": { "allow": { "$ref": "#/types/aws:wafv2/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow:WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow", - "description": "Specifies that AWS WAF should allow requests by default. See `allow` below for details.\n" + "description": "Instructs AWS WAF to allow the web request. See `allow` below for details.\n" }, "block": { "$ref": "#/types/aws:wafv2/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock:WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock", - "description": "Specifies that AWS WAF should block requests by default. See `block` below for details.\n" + "description": "Instructs AWS WAF to block the web request. See `block` below for details.\n" }, "captcha": { "$ref": "#/types/aws:wafv2/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptcha:WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptcha", @@ -125070,11 +125083,11 @@ "properties": { "allow": { "$ref": "#/types/aws:wafv2/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow:WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow", - "description": "Specifies that AWS WAF should allow requests by default. See `allow` below for details.\n" + "description": "Instructs AWS WAF to allow the web request. See `allow` below for details.\n" }, "block": { "$ref": "#/types/aws:wafv2/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock:WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock", - "description": "Specifies that AWS WAF should block requests by default. See `block` below for details.\n" + "description": "Instructs AWS WAF to block the web request. See `block` below for details.\n" }, "captcha": { "$ref": "#/types/aws:wafv2/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptcha:WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptcha", @@ -127352,7 +127365,7 @@ } }, "aws:acm/certificate:Certificate": { - "description": "The ACM certificate resource allows requesting and management of certificates\nfrom the Amazon Certificate Manager.\n\nACM certificates can be created in three ways:\nAmazon-issued, where AWS provides the certificate authority and automatically manages renewal;\nimported certificates, issued by another certificate authority;\nand private certificates, issued using an ACM Private Certificate Authority.\n\n## Amazon-Issued Certificates\n\nFor Amazon-issued certificates, this resource deals with requesting certificates and managing their attributes and life-cycle.\nThis resource does not deal with validation of a certificate but can provide inputs\nfor other resources implementing the validation.\nIt does not wait for a certificate to be issued.\nUse a `aws.acm.CertificateValidation` resource for this.\n\nMost commonly, this resource is used together with `aws.route53.Record` and\n`aws.acm.CertificateValidation` to request a DNS validated certificate,\ndeploy the required validation records and wait for validation to complete.\n\nDomain validation through email is also supported but should be avoided as it requires a manual step outside of this provider.\n\n\n## Certificates Imported from Other Certificate Authority\n\nImported certificates can be used to make certificates created with an external certificate authority available for AWS services.\n\nAs they are not managed by AWS, imported certificates are not eligible for automatic renewal.\nNew certificate materials can be supplied to an existing imported certificate to update it in place.\n\n## Private Certificates\n\nPrivate certificates are issued by an ACM Private Cerificate Authority, which can be created using the resource type `aws.acmpca.CertificateAuthority`.\n\nPrivate certificates created using this resource are eligible for managed renewal if they have been exported or associated with another AWS service.\nSee [managed renewal documentation](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html) for more information.\nBy default, a certificate is valid for 395 days and the managed renewal process will start 60 days before expiration.\nTo renew the certificate earlier than 60 days before expiration, configure `early_renewal_duration`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Create Certificate\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst cert = new aws.acm.Certificate(\"cert\", {\n domainName: \"example.com\",\n tags: {\n Environment: \"test\",\n },\n validationMethod: \"DNS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncert = aws.acm.Certificate(\"cert\",\n domain_name=\"example.com\",\n tags={\n \"Environment\": \"test\",\n },\n validation_method=\"DNS\")\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 cert = new Aws.Acm.Certificate(\"cert\", new()\n {\n DomainName = \"example.com\",\n Tags = \n {\n { \"Environment\", \"test\" },\n },\n ValidationMethod = \"DNS\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm\"\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 := acm.NewCertificate(ctx, \"cert\", \u0026acm.CertificateArgs{\n\t\t\tDomainName: pulumi.String(\"example.com\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t\tValidationMethod: pulumi.String(\"DNS\"),\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.acm.Certificate;\nimport com.pulumi.aws.acm.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cert = new Certificate(\"cert\", CertificateArgs.builder() \n .domainName(\"example.com\")\n .tags(Map.of(\"Environment\", \"test\"))\n .validationMethod(\"DNS\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cert:\n type: aws:acm:Certificate\n properties:\n domainName: example.com\n tags:\n Environment: test\n validationMethod: DNS\n```\n{{% /example %}}\n{{% example %}}\n### Custom Domain Validation Options\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst cert = new aws.acm.Certificate(\"cert\", {\n domainName: \"testing.example.com\",\n validationMethod: \"EMAIL\",\n validationOptions: [{\n domainName: \"testing.example.com\",\n validationDomain: \"example.com\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncert = aws.acm.Certificate(\"cert\",\n domain_name=\"testing.example.com\",\n validation_method=\"EMAIL\",\n validation_options=[aws.acm.CertificateValidationOptionArgs(\n domain_name=\"testing.example.com\",\n validation_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 cert = new Aws.Acm.Certificate(\"cert\", new()\n {\n DomainName = \"testing.example.com\",\n ValidationMethod = \"EMAIL\",\n ValidationOptions = new[]\n {\n new Aws.Acm.Inputs.CertificateValidationOptionArgs\n {\n DomainName = \"testing.example.com\",\n ValidationDomain = \"example.com\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm\"\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 := acm.NewCertificate(ctx, \"cert\", \u0026acm.CertificateArgs{\n\t\t\tDomainName: pulumi.String(\"testing.example.com\"),\n\t\t\tValidationMethod: pulumi.String(\"EMAIL\"),\n\t\t\tValidationOptions: acm.CertificateValidationOptionArray{\n\t\t\t\t\u0026acm.CertificateValidationOptionArgs{\n\t\t\t\t\tDomainName: pulumi.String(\"testing.example.com\"),\n\t\t\t\t\tValidationDomain: pulumi.String(\"example.com\"),\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.acm.Certificate;\nimport com.pulumi.aws.acm.CertificateArgs;\nimport com.pulumi.aws.acm.inputs.CertificateValidationOptionArgs;\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 cert = new Certificate(\"cert\", CertificateArgs.builder() \n .domainName(\"testing.example.com\")\n .validationMethod(\"EMAIL\")\n .validationOptions(CertificateValidationOptionArgs.builder()\n .domainName(\"testing.example.com\")\n .validationDomain(\"example.com\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cert:\n type: aws:acm:Certificate\n properties:\n domainName: testing.example.com\n validationMethod: EMAIL\n validationOptions:\n - domainName: testing.example.com\n validationDomain: example.com\n```\n{{% /example %}}\n{{% example %}}\n### Existing Certificate Body Import\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as tls from \"@pulumi/tls\";\n\nconst examplePrivateKey = new tls.PrivateKey(\"examplePrivateKey\", {algorithm: \"RSA\"});\nconst exampleSelfSignedCert = new tls.SelfSignedCert(\"exampleSelfSignedCert\", {\n keyAlgorithm: \"RSA\",\n privateKeyPem: examplePrivateKey.privateKeyPem,\n subject: {\n commonName: \"example.com\",\n organization: \"ACME Examples, Inc\",\n },\n validityPeriodHours: 12,\n allowedUses: [\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n});\nconst cert = new aws.acm.Certificate(\"cert\", {\n privateKey: examplePrivateKey.privateKeyPem,\n certificateBody: exampleSelfSignedCert.certPem,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_tls as tls\n\nexample_private_key = tls.PrivateKey(\"examplePrivateKey\", algorithm=\"RSA\")\nexample_self_signed_cert = tls.SelfSignedCert(\"exampleSelfSignedCert\",\n key_algorithm=\"RSA\",\n private_key_pem=example_private_key.private_key_pem,\n subject=tls.SelfSignedCertSubjectArgs(\n common_name=\"example.com\",\n organization=\"ACME Examples, Inc\",\n ),\n validity_period_hours=12,\n allowed_uses=[\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ])\ncert = aws.acm.Certificate(\"cert\",\n private_key=example_private_key.private_key_pem,\n certificate_body=example_self_signed_cert.cert_pem)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Tls = Pulumi.Tls;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var examplePrivateKey = new Tls.PrivateKey(\"examplePrivateKey\", new()\n {\n Algorithm = \"RSA\",\n });\n\n var exampleSelfSignedCert = new Tls.SelfSignedCert(\"exampleSelfSignedCert\", new()\n {\n KeyAlgorithm = \"RSA\",\n PrivateKeyPem = examplePrivateKey.PrivateKeyPem,\n Subject = new Tls.Inputs.SelfSignedCertSubjectArgs\n {\n CommonName = \"example.com\",\n Organization = \"ACME Examples, Inc\",\n },\n ValidityPeriodHours = 12,\n AllowedUses = new[]\n {\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n },\n });\n\n var cert = new Aws.Acm.Certificate(\"cert\", new()\n {\n PrivateKey = examplePrivateKey.PrivateKeyPem,\n CertificateBody = exampleSelfSignedCert.CertPem,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm\"\n\t\"github.com/pulumi/pulumi-tls/sdk/v4/go/tls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplePrivateKey, err := tls.NewPrivateKey(ctx, \"examplePrivateKey\", \u0026tls.PrivateKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RSA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSelfSignedCert, err := tls.NewSelfSignedCert(ctx, \"exampleSelfSignedCert\", \u0026tls.SelfSignedCertArgs{\n\t\t\tKeyAlgorithm: pulumi.String(\"RSA\"),\n\t\t\tPrivateKeyPem: examplePrivateKey.PrivateKeyPem,\n\t\t\tSubject: \u0026tls.SelfSignedCertSubjectArgs{\n\t\t\t\tCommonName: pulumi.String(\"example.com\"),\n\t\t\t\tOrganization: pulumi.String(\"ACME Examples, Inc\"),\n\t\t\t},\n\t\t\tValidityPeriodHours: pulumi.Int(12),\n\t\t\tAllowedUses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key_encipherment\"),\n\t\t\t\tpulumi.String(\"digital_signature\"),\n\t\t\t\tpulumi.String(\"server_auth\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = acm.NewCertificate(ctx, \"cert\", \u0026acm.CertificateArgs{\n\t\t\tPrivateKey: examplePrivateKey.PrivateKeyPem,\n\t\t\tCertificateBody: exampleSelfSignedCert.CertPem,\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.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.SelfSignedCert;\nimport com.pulumi.tls.SelfSignedCertArgs;\nimport com.pulumi.tls.inputs.SelfSignedCertSubjectArgs;\nimport com.pulumi.aws.acm.Certificate;\nimport com.pulumi.aws.acm.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var examplePrivateKey = new PrivateKey(\"examplePrivateKey\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .build());\n\n var exampleSelfSignedCert = new SelfSignedCert(\"exampleSelfSignedCert\", SelfSignedCertArgs.builder() \n .keyAlgorithm(\"RSA\")\n .privateKeyPem(examplePrivateKey.privateKeyPem())\n .subject(SelfSignedCertSubjectArgs.builder()\n .commonName(\"example.com\")\n .organization(\"ACME Examples, Inc\")\n .build())\n .validityPeriodHours(12)\n .allowedUses( \n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\")\n .build());\n\n var cert = new Certificate(\"cert\", CertificateArgs.builder() \n .privateKey(examplePrivateKey.privateKeyPem())\n .certificateBody(exampleSelfSignedCert.certPem())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n examplePrivateKey:\n type: tls:PrivateKey\n properties:\n algorithm: RSA\n exampleSelfSignedCert:\n type: tls:SelfSignedCert\n properties:\n keyAlgorithm: RSA\n privateKeyPem: ${examplePrivateKey.privateKeyPem}\n subject:\n commonName: example.com\n organization: ACME Examples, Inc\n validityPeriodHours: 12\n allowedUses:\n - key_encipherment\n - digital_signature\n - server_auth\n cert:\n type: aws:acm:Certificate\n properties:\n privateKey: ${examplePrivateKey.privateKeyPem}\n certificateBody: ${exampleSelfSignedCert.certPem}\n```\n{{% /example %}}\n{{% example %}}\n### Referencing domain_validation_options With for_each Based Resources\n\nSee the `aws.acm.CertificateValidation` resource for a full example of performing DNS validation.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example: aws.route53.Record[] = [];\nfor (const range of Object.entries(.reduce((__obj, dvo) =\u003e ({ ...__obj, [dvo.domainName]: {\n name: dvo.resourceRecordName,\n record: dvo.resourceRecordValue,\n type: dvo.resourceRecordType,\n} }))).map(([k, v]) =\u003e ({key: k, value: v}))) {\n example.push(new aws.route53.Record(`example-${range.key}`, {\n allowOverwrite: true,\n name: range.value.name,\n records: [range.value.record],\n ttl: 60,\n type: aws.route53.recordtype.RecordType[range.value.type],\n zoneId: aws_route53_zone.example.zone_id,\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate({dvo.domain_name: {\n name: dvo.resource_record_name,\n record: dvo.resource_record_value,\n type: dvo.resource_record_type,\n} for dvo in aws_acm_certificate.example.domain_validation_options})]:\n example.append(aws.route53.Record(f\"example-{range['key']}\",\n allow_overwrite=True,\n name=range[\"value\"][\"name\"],\n records=[range[\"value\"][\"record\"]],\n ttl=60,\n type=aws.route53/recordtype.RecordType(range[\"value\"][\"type\"]),\n zone_id=aws_route53_zone[\"example\"][\"zone_id\"]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new List\u003cAws.Route53.Record\u003e();\n foreach (var range in .ToDictionary(item =\u003e {\n var dvo = item.Value;\n return dvo.DomainName;\n }, item =\u003e {\n var dvo = item.Value;\n return \n {\n { \"name\", dvo.ResourceRecordName },\n { \"record\", dvo.ResourceRecordValue },\n { \"type\", dvo.ResourceRecordType },\n };\n }).Select(pair =\u003e new { pair.Key, pair.Value }))\n {\n example.Add(new Aws.Route53.Record($\"example-{range.Key}\", new()\n {\n AllowOverwrite = true,\n Name = range.Value.Name,\n Records = new[]\n {\n range.Value.Record,\n },\n Ttl = 60,\n Type = System.Enum.Parse\u003cAws.Route53/RecordType.RecordType\u003e(range.Value.Type),\n ZoneId = aws_route53_zone.Example.Zone_id,\n }));\n }\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvar example []*route53.Record\n\t\tfor key0, val0 := range \"TODO: For expression\" {\n\t\t\t__res, err := route53.NewRecord(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026route53.RecordArgs{\n\t\t\t\tAllowOverwrite: pulumi.Bool(true),\n\t\t\t\tName: pulumi.Any(val0),\n\t\t\t\tRecords: pulumi.StringArray{\n\t\t\t\t\tval0,\n\t\t\t\t},\n\t\t\t\tTtl: pulumi.Int(60),\n\t\t\t\tType: route53.RecordType(val0),\n\t\t\t\tZoneId: pulumi.Any(aws_route53_zone.Example.Zone_id),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texample = append(example, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```yaml\nresources:\n example:\n type: aws:route53:Record\n properties:\n allowOverwrite: true\n name: ${range.value.name}\n records:\n - ${range.value.record}\n ttl: 60\n type: ${range.value.type}\n zoneId: ${aws_route53_zone.example.zone_id}\n options: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import certificates using their ARN. For example:\n\n```sh\n $ pulumi import aws:acm/certificate:Certificate cert arn:aws:acm:eu-central-1:123456789012:certificate/7e7a28d2-163f-4b8f-b9cd-822f96c08d6a\n```\n ", + "description": "The ACM certificate resource allows requesting and management of certificates\nfrom the Amazon Certificate Manager.\n\nACM certificates can be created in three ways:\nAmazon-issued, where AWS provides the certificate authority and automatically manages renewal;\nimported certificates, issued by another certificate authority;\nand private certificates, issued using an ACM Private Certificate Authority.\n\n## Amazon-Issued Certificates\n\nFor Amazon-issued certificates, this resource deals with requesting certificates and managing their attributes and life-cycle.\nThis resource does not deal with validation of a certificate but can provide inputs\nfor other resources implementing the validation.\nIt does not wait for a certificate to be issued.\nUse a `aws.acm.CertificateValidation` resource for this.\n\nMost commonly, this resource is used together with `aws.route53.Record` and\n`aws.acm.CertificateValidation` to request a DNS validated certificate,\ndeploy the required validation records and wait for validation to complete.\n\nDomain validation through email is also supported but should be avoided as it requires a manual step outside of this provider.\n\n\n## Certificates Imported from Other Certificate Authority\n\nImported certificates can be used to make certificates created with an external certificate authority available for AWS services.\n\nAs they are not managed by AWS, imported certificates are not eligible for automatic renewal.\nNew certificate materials can be supplied to an existing imported certificate to update it in place.\n\n## Private Certificates\n\nPrivate certificates are issued by an ACM Private Cerificate Authority, which can be created using the resource type `aws.acmpca.CertificateAuthority`.\n\nPrivate certificates created using this resource are eligible for managed renewal if they have been exported or associated with another AWS service.\nSee [managed renewal documentation](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html) for more information.\nBy default, a certificate is valid for 395 days and the managed renewal process will start 60 days before expiration.\nTo renew the certificate earlier than 60 days before expiration, configure `early_renewal_duration`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Create Certificate\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst cert = new aws.acm.Certificate(\"cert\", {\n domainName: \"example.com\",\n tags: {\n Environment: \"test\",\n },\n validationMethod: \"DNS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncert = aws.acm.Certificate(\"cert\",\n domain_name=\"example.com\",\n tags={\n \"Environment\": \"test\",\n },\n validation_method=\"DNS\")\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 cert = new Aws.Acm.Certificate(\"cert\", new()\n {\n DomainName = \"example.com\",\n Tags = \n {\n { \"Environment\", \"test\" },\n },\n ValidationMethod = \"DNS\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm\"\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 := acm.NewCertificate(ctx, \"cert\", \u0026acm.CertificateArgs{\n\t\t\tDomainName: pulumi.String(\"example.com\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t\tValidationMethod: pulumi.String(\"DNS\"),\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.acm.Certificate;\nimport com.pulumi.aws.acm.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cert = new Certificate(\"cert\", CertificateArgs.builder() \n .domainName(\"example.com\")\n .tags(Map.of(\"Environment\", \"test\"))\n .validationMethod(\"DNS\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cert:\n type: aws:acm:Certificate\n properties:\n domainName: example.com\n tags:\n Environment: test\n validationMethod: DNS\n```\n{{% /example %}}\n{{% example %}}\n### Custom Domain Validation Options\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst cert = new aws.acm.Certificate(\"cert\", {\n domainName: \"testing.example.com\",\n validationMethod: \"EMAIL\",\n validationOptions: [{\n domainName: \"testing.example.com\",\n validationDomain: \"example.com\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncert = aws.acm.Certificate(\"cert\",\n domain_name=\"testing.example.com\",\n validation_method=\"EMAIL\",\n validation_options=[aws.acm.CertificateValidationOptionArgs(\n domain_name=\"testing.example.com\",\n validation_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 cert = new Aws.Acm.Certificate(\"cert\", new()\n {\n DomainName = \"testing.example.com\",\n ValidationMethod = \"EMAIL\",\n ValidationOptions = new[]\n {\n new Aws.Acm.Inputs.CertificateValidationOptionArgs\n {\n DomainName = \"testing.example.com\",\n ValidationDomain = \"example.com\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm\"\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 := acm.NewCertificate(ctx, \"cert\", \u0026acm.CertificateArgs{\n\t\t\tDomainName: pulumi.String(\"testing.example.com\"),\n\t\t\tValidationMethod: pulumi.String(\"EMAIL\"),\n\t\t\tValidationOptions: acm.CertificateValidationOptionArray{\n\t\t\t\t\u0026acm.CertificateValidationOptionArgs{\n\t\t\t\t\tDomainName: pulumi.String(\"testing.example.com\"),\n\t\t\t\t\tValidationDomain: pulumi.String(\"example.com\"),\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.acm.Certificate;\nimport com.pulumi.aws.acm.CertificateArgs;\nimport com.pulumi.aws.acm.inputs.CertificateValidationOptionArgs;\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 cert = new Certificate(\"cert\", CertificateArgs.builder() \n .domainName(\"testing.example.com\")\n .validationMethod(\"EMAIL\")\n .validationOptions(CertificateValidationOptionArgs.builder()\n .domainName(\"testing.example.com\")\n .validationDomain(\"example.com\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cert:\n type: aws:acm:Certificate\n properties:\n domainName: testing.example.com\n validationMethod: EMAIL\n validationOptions:\n - domainName: testing.example.com\n validationDomain: example.com\n```\n{{% /example %}}\n{{% example %}}\n### Existing Certificate Body Import\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as tls from \"@pulumi/tls\";\n\nconst examplePrivateKey = new tls.PrivateKey(\"examplePrivateKey\", {algorithm: \"RSA\"});\nconst exampleSelfSignedCert = new tls.SelfSignedCert(\"exampleSelfSignedCert\", {\n keyAlgorithm: \"RSA\",\n privateKeyPem: examplePrivateKey.privateKeyPem,\n subject: {\n commonName: \"example.com\",\n organization: \"ACME Examples, Inc\",\n },\n validityPeriodHours: 12,\n allowedUses: [\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ],\n});\nconst cert = new aws.acm.Certificate(\"cert\", {\n privateKey: examplePrivateKey.privateKeyPem,\n certificateBody: exampleSelfSignedCert.certPem,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_tls as tls\n\nexample_private_key = tls.PrivateKey(\"examplePrivateKey\", algorithm=\"RSA\")\nexample_self_signed_cert = tls.SelfSignedCert(\"exampleSelfSignedCert\",\n key_algorithm=\"RSA\",\n private_key_pem=example_private_key.private_key_pem,\n subject=tls.SelfSignedCertSubjectArgs(\n common_name=\"example.com\",\n organization=\"ACME Examples, Inc\",\n ),\n validity_period_hours=12,\n allowed_uses=[\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n ])\ncert = aws.acm.Certificate(\"cert\",\n private_key=example_private_key.private_key_pem,\n certificate_body=example_self_signed_cert.cert_pem)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Tls = Pulumi.Tls;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var examplePrivateKey = new Tls.PrivateKey(\"examplePrivateKey\", new()\n {\n Algorithm = \"RSA\",\n });\n\n var exampleSelfSignedCert = new Tls.SelfSignedCert(\"exampleSelfSignedCert\", new()\n {\n KeyAlgorithm = \"RSA\",\n PrivateKeyPem = examplePrivateKey.PrivateKeyPem,\n Subject = new Tls.Inputs.SelfSignedCertSubjectArgs\n {\n CommonName = \"example.com\",\n Organization = \"ACME Examples, Inc\",\n },\n ValidityPeriodHours = 12,\n AllowedUses = new[]\n {\n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\",\n },\n });\n\n var cert = new Aws.Acm.Certificate(\"cert\", new()\n {\n PrivateKey = examplePrivateKey.PrivateKeyPem,\n CertificateBody = exampleSelfSignedCert.CertPem,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm\"\n\t\"github.com/pulumi/pulumi-tls/sdk/v4/go/tls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplePrivateKey, err := tls.NewPrivateKey(ctx, \"examplePrivateKey\", \u0026tls.PrivateKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RSA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSelfSignedCert, err := tls.NewSelfSignedCert(ctx, \"exampleSelfSignedCert\", \u0026tls.SelfSignedCertArgs{\n\t\t\tKeyAlgorithm: pulumi.String(\"RSA\"),\n\t\t\tPrivateKeyPem: examplePrivateKey.PrivateKeyPem,\n\t\t\tSubject: \u0026tls.SelfSignedCertSubjectArgs{\n\t\t\t\tCommonName: pulumi.String(\"example.com\"),\n\t\t\t\tOrganization: pulumi.String(\"ACME Examples, Inc\"),\n\t\t\t},\n\t\t\tValidityPeriodHours: pulumi.Int(12),\n\t\t\tAllowedUses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key_encipherment\"),\n\t\t\t\tpulumi.String(\"digital_signature\"),\n\t\t\t\tpulumi.String(\"server_auth\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = acm.NewCertificate(ctx, \"cert\", \u0026acm.CertificateArgs{\n\t\t\tPrivateKey: examplePrivateKey.PrivateKeyPem,\n\t\t\tCertificateBody: exampleSelfSignedCert.CertPem,\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.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.SelfSignedCert;\nimport com.pulumi.tls.SelfSignedCertArgs;\nimport com.pulumi.tls.inputs.SelfSignedCertSubjectArgs;\nimport com.pulumi.aws.acm.Certificate;\nimport com.pulumi.aws.acm.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var examplePrivateKey = new PrivateKey(\"examplePrivateKey\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .build());\n\n var exampleSelfSignedCert = new SelfSignedCert(\"exampleSelfSignedCert\", SelfSignedCertArgs.builder() \n .keyAlgorithm(\"RSA\")\n .privateKeyPem(examplePrivateKey.privateKeyPem())\n .subject(SelfSignedCertSubjectArgs.builder()\n .commonName(\"example.com\")\n .organization(\"ACME Examples, Inc\")\n .build())\n .validityPeriodHours(12)\n .allowedUses( \n \"key_encipherment\",\n \"digital_signature\",\n \"server_auth\")\n .build());\n\n var cert = new Certificate(\"cert\", CertificateArgs.builder() \n .privateKey(examplePrivateKey.privateKeyPem())\n .certificateBody(exampleSelfSignedCert.certPem())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n examplePrivateKey:\n type: tls:PrivateKey\n properties:\n algorithm: RSA\n exampleSelfSignedCert:\n type: tls:SelfSignedCert\n properties:\n keyAlgorithm: RSA\n privateKeyPem: ${examplePrivateKey.privateKeyPem}\n subject:\n commonName: example.com\n organization: ACME Examples, Inc\n validityPeriodHours: 12\n allowedUses:\n - key_encipherment\n - digital_signature\n - server_auth\n cert:\n type: aws:acm:Certificate\n properties:\n privateKey: ${examplePrivateKey.privateKeyPem}\n certificateBody: ${exampleSelfSignedCert.certPem}\n```\n{{% /example %}}\n{{% example %}}\n### Referencing domain_validation_options With for_each Based Resources\n\nSee the `aws.acm.CertificateValidation` resource for a full example of performing DNS validation.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example: aws.route53.Record[] = [];\nfor (const range of Object.entries(.reduce((__obj, dvo) =\u003e ({ ...__obj, [dvo.domainName]: {\n name: dvo.resourceRecordName,\n record: dvo.resourceRecordValue,\n type: dvo.resourceRecordType,\n} }))).map(([k, v]) =\u003e ({key: k, value: v}))) {\n example.push(new aws.route53.Record(`example-${range.key}`, {\n allowOverwrite: true,\n name: range.value.name,\n records: [range.value.record],\n ttl: 60,\n type: aws.route53.recordtype.RecordType[range.value.type],\n zoneId: aws_route53_zone.example.zone_id,\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate({dvo.domain_name: {\n name: dvo.resource_record_name,\n record: dvo.resource_record_value,\n type: dvo.resource_record_type,\n} for dvo in aws_acm_certificate.example.domain_validation_options})]:\n example.append(aws.route53.Record(f\"example-{range['key']}\",\n allow_overwrite=True,\n name=range[\"value\"][\"name\"],\n records=[range[\"value\"][\"record\"]],\n ttl=60,\n type=aws.route53/recordtype.RecordType(range[\"value\"][\"type\"]),\n zone_id=aws_route53_zone[\"example\"][\"zone_id\"]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new List\u003cAws.Route53.Record\u003e();\n foreach (var range in .ToDictionary(item =\u003e {\n var dvo = item.Value;\n return dvo.DomainName;\n }, item =\u003e {\n var dvo = item.Value;\n return \n {\n { \"name\", dvo.ResourceRecordName },\n { \"record\", dvo.ResourceRecordValue },\n { \"type\", dvo.ResourceRecordType },\n };\n }).Select(pair =\u003e new { pair.Key, pair.Value }))\n {\n example.Add(new Aws.Route53.Record($\"example-{range.Key}\", new()\n {\n AllowOverwrite = true,\n Name = range.Value.Name,\n Records = new[]\n {\n range.Value.Record,\n },\n Ttl = 60,\n Type = System.Enum.Parse\u003cAws.Route53.RecordType.RecordType\u003e(range.Value.Type),\n ZoneId = aws_route53_zone.Example.Zone_id,\n }));\n }\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvar example []*route53.Record\n\t\tfor key0, val0 := range \"TODO: For expression\" {\n\t\t\t__res, err := route53.NewRecord(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026route53.RecordArgs{\n\t\t\t\tAllowOverwrite: pulumi.Bool(true),\n\t\t\t\tName: pulumi.Any(val0),\n\t\t\t\tRecords: pulumi.StringArray{\n\t\t\t\t\tval0,\n\t\t\t\t},\n\t\t\t\tTtl: pulumi.Int(60),\n\t\t\t\tType: route53.RecordType(val0),\n\t\t\t\tZoneId: pulumi.Any(aws_route53_zone.Example.Zone_id),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texample = append(example, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```yaml\nresources:\n example:\n type: aws:route53:Record\n properties:\n allowOverwrite: true\n name: ${range.value.name}\n records:\n - ${range.value.record}\n ttl: 60\n type: ${range.value.type}\n zoneId: ${aws_route53_zone.example.zone_id}\n options: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import certificates using their ARN. For example:\n\n```sh\n $ pulumi import aws:acm/certificate:Certificate cert arn:aws:acm:eu-central-1:123456789012:certificate/7e7a28d2-163f-4b8f-b9cd-822f96c08d6a\n```\n ", "properties": { "arn": { "type": "string", @@ -149848,7 +149861,7 @@ } }, "aws:cleanrooms/collaboration:Collaboration": { - "description": "Provides a AWS Clean Rooms collaboration. All members included in the definition will be invited to\njoin the collaboration and can create memberships.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Collaboration with tags\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCollaboration = new aws.cleanrooms.Collaboration(\"testCollaboration\", {\n creatorDisplayName: \"Creator \",\n creatorMemberAbilities: [\n \"CAN_QUERY\",\n \"CAN_RECEIVE_RESULTS\",\n ],\n dataEncryptionMetadata: {\n allowClearText: true,\n allowDuplicates: true,\n allowJoinsOnColumnsWithDifferentNames: true,\n preserveNulls: false,\n },\n description: \"I made this collaboration with Pulumi!\",\n members: [{\n accountId: \"123456789012\",\n displayName: \"Other member\",\n memberAbilities: [],\n }],\n queryLogStatus: \"DISABLED\",\n tags: {\n Project: \"Pulumi\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_collaboration = aws.cleanrooms.Collaboration(\"testCollaboration\",\n creator_display_name=\"Creator \",\n creator_member_abilities=[\n \"CAN_QUERY\",\n \"CAN_RECEIVE_RESULTS\",\n ],\n data_encryption_metadata=aws.cleanrooms.CollaborationDataEncryptionMetadataArgs(\n allow_clear_text=True,\n allow_duplicates=True,\n allow_joins_on_columns_with_different_names=True,\n preserve_nulls=False,\n ),\n description=\"I made this collaboration with Pulumi!\",\n members=[aws.cleanrooms.CollaborationMemberArgs(\n account_id=\"123456789012\",\n display_name=\"Other member\",\n member_abilities=[],\n )],\n query_log_status=\"DISABLED\",\n tags={\n \"Project\": \"Pulumi\",\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 testCollaboration = new Aws.CleanRooms.Collaboration(\"testCollaboration\", new()\n {\n CreatorDisplayName = \"Creator \",\n CreatorMemberAbilities = new[]\n {\n \"CAN_QUERY\",\n \"CAN_RECEIVE_RESULTS\",\n },\n DataEncryptionMetadata = new Aws.CleanRooms.Inputs.CollaborationDataEncryptionMetadataArgs\n {\n AllowClearText = true,\n AllowDuplicates = true,\n AllowJoinsOnColumnsWithDifferentNames = true,\n PreserveNulls = false,\n },\n Description = \"I made this collaboration with Pulumi!\",\n Members = new[]\n {\n new Aws.CleanRooms.Inputs.CollaborationMemberArgs\n {\n AccountId = \"123456789012\",\n DisplayName = \"Other member\",\n MemberAbilities = new[] {},\n },\n },\n QueryLogStatus = \"DISABLED\",\n Tags = \n {\n { \"Project\", \"Pulumi\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cleanrooms\"\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 := cleanrooms.NewCollaboration(ctx, \"testCollaboration\", \u0026cleanrooms.CollaborationArgs{\n\t\t\tCreatorDisplayName: pulumi.String(\"Creator \"),\n\t\t\tCreatorMemberAbilities: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CAN_QUERY\"),\n\t\t\t\tpulumi.String(\"CAN_RECEIVE_RESULTS\"),\n\t\t\t},\n\t\t\tDataEncryptionMetadata: \u0026cleanrooms.CollaborationDataEncryptionMetadataArgs{\n\t\t\t\tAllowClearText: pulumi.Bool(true),\n\t\t\t\tAllowDuplicates: pulumi.Bool(true),\n\t\t\t\tAllowJoinsOnColumnsWithDifferentNames: pulumi.Bool(true),\n\t\t\t\tPreserveNulls: pulumi.Bool(false),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"I made this collaboration with Pulumi!\"),\n\t\t\tMembers: cleanrooms.CollaborationMemberArray{\n\t\t\t\t\u0026cleanrooms.CollaborationMemberArgs{\n\t\t\t\t\tAccountId: pulumi.String(\"123456789012\"),\n\t\t\t\t\tDisplayName: pulumi.String(\"Other member\"),\n\t\t\t\t\tMemberAbilities: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tQueryLogStatus: pulumi.String(\"DISABLED\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Project\": pulumi.String(\"Pulumi\"),\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.cleanrooms.Collaboration;\nimport com.pulumi.aws.cleanrooms.CollaborationArgs;\nimport com.pulumi.aws.cleanrooms.inputs.CollaborationDataEncryptionMetadataArgs;\nimport com.pulumi.aws.cleanrooms.inputs.CollaborationMemberArgs;\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 testCollaboration = new Collaboration(\"testCollaboration\", CollaborationArgs.builder() \n .creatorDisplayName(\"Creator \")\n .creatorMemberAbilities( \n \"CAN_QUERY\",\n \"CAN_RECEIVE_RESULTS\")\n .dataEncryptionMetadata(CollaborationDataEncryptionMetadataArgs.builder()\n .allowClearText(true)\n .allowDuplicates(true)\n .allowJoinsOnColumnsWithDifferentNames(true)\n .preserveNulls(false)\n .build())\n .description(\"I made this collaboration with Pulumi!\")\n .members(CollaborationMemberArgs.builder()\n .accountId(123456789012)\n .displayName(\"Other member\")\n .memberAbilities()\n .build())\n .queryLogStatus(\"DISABLED\")\n .tags(Map.of(\"Project\", \"Pulumi\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCollaboration:\n type: aws:cleanrooms:Collaboration\n properties:\n creatorDisplayName: 'Creator '\n creatorMemberAbilities:\n - CAN_QUERY\n - CAN_RECEIVE_RESULTS\n dataEncryptionMetadata:\n allowClearText: true\n allowDuplicates: true\n allowJoinsOnColumnsWithDifferentNames: true\n preserveNulls: false\n description: I made this collaboration with Pulumi!\n members:\n - accountId: 1.23456789012e+11\n displayName: Other member\n memberAbilities: []\n queryLogStatus: DISABLED\n tags:\n Project: Pulumi\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import `aws_cleanrooms_collaboration` using the `id`. For example:\n\n```sh\n $ pulumi import aws:cleanrooms/collaboration:Collaboration collaboration 1234abcd-12ab-34cd-56ef-1234567890ab\n```\n ", + "description": "Provides a AWS Clean Rooms collaboration. All members included in the definition will be invited to\njoin the collaboration and can create memberships.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Collaboration with tags\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCollaboration = new aws.cleanrooms.Collaboration(\"testCollaboration\", {\n creatorDisplayName: \"Creator \",\n creatorMemberAbilities: [\n \"CAN_QUERY\",\n \"CAN_RECEIVE_RESULTS\",\n ],\n dataEncryptionMetadata: {\n allowClearText: true,\n allowDuplicates: true,\n allowJoinsOnColumnsWithDifferentNames: true,\n preserveNulls: false,\n },\n description: \"I made this collaboration with Pulumi!\",\n members: [{\n accountId: \"123456789012\",\n displayName: \"Other member\",\n memberAbilities: [],\n }],\n queryLogStatus: \"DISABLED\",\n tags: {\n Project: \"Pulumi\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_collaboration = aws.cleanrooms.Collaboration(\"testCollaboration\",\n creator_display_name=\"Creator \",\n creator_member_abilities=[\n \"CAN_QUERY\",\n \"CAN_RECEIVE_RESULTS\",\n ],\n data_encryption_metadata=aws.cleanrooms.CollaborationDataEncryptionMetadataArgs(\n allow_clear_text=True,\n allow_duplicates=True,\n allow_joins_on_columns_with_different_names=True,\n preserve_nulls=False,\n ),\n description=\"I made this collaboration with Pulumi!\",\n members=[aws.cleanrooms.CollaborationMemberArgs(\n account_id=\"123456789012\",\n display_name=\"Other member\",\n member_abilities=[],\n )],\n query_log_status=\"DISABLED\",\n tags={\n \"Project\": \"Pulumi\",\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 testCollaboration = new Aws.CleanRooms.Collaboration(\"testCollaboration\", new()\n {\n CreatorDisplayName = \"Creator \",\n CreatorMemberAbilities = new[]\n {\n \"CAN_QUERY\",\n \"CAN_RECEIVE_RESULTS\",\n },\n DataEncryptionMetadata = new Aws.CleanRooms.Inputs.CollaborationDataEncryptionMetadataArgs\n {\n AllowClearText = true,\n AllowDuplicates = true,\n AllowJoinsOnColumnsWithDifferentNames = true,\n PreserveNulls = false,\n },\n Description = \"I made this collaboration with Pulumi!\",\n Members = new[]\n {\n new Aws.CleanRooms.Inputs.CollaborationMemberArgs\n {\n AccountId = \"123456789012\",\n DisplayName = \"Other member\",\n MemberAbilities = new() { },\n },\n },\n QueryLogStatus = \"DISABLED\",\n Tags = \n {\n { \"Project\", \"Pulumi\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cleanrooms\"\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 := cleanrooms.NewCollaboration(ctx, \"testCollaboration\", \u0026cleanrooms.CollaborationArgs{\n\t\t\tCreatorDisplayName: pulumi.String(\"Creator \"),\n\t\t\tCreatorMemberAbilities: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CAN_QUERY\"),\n\t\t\t\tpulumi.String(\"CAN_RECEIVE_RESULTS\"),\n\t\t\t},\n\t\t\tDataEncryptionMetadata: \u0026cleanrooms.CollaborationDataEncryptionMetadataArgs{\n\t\t\t\tAllowClearText: pulumi.Bool(true),\n\t\t\t\tAllowDuplicates: pulumi.Bool(true),\n\t\t\t\tAllowJoinsOnColumnsWithDifferentNames: pulumi.Bool(true),\n\t\t\t\tPreserveNulls: pulumi.Bool(false),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"I made this collaboration with Pulumi!\"),\n\t\t\tMembers: cleanrooms.CollaborationMemberArray{\n\t\t\t\t\u0026cleanrooms.CollaborationMemberArgs{\n\t\t\t\t\tAccountId: pulumi.String(\"123456789012\"),\n\t\t\t\t\tDisplayName: pulumi.String(\"Other member\"),\n\t\t\t\t\tMemberAbilities: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tQueryLogStatus: pulumi.String(\"DISABLED\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Project\": pulumi.String(\"Pulumi\"),\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.cleanrooms.Collaboration;\nimport com.pulumi.aws.cleanrooms.CollaborationArgs;\nimport com.pulumi.aws.cleanrooms.inputs.CollaborationDataEncryptionMetadataArgs;\nimport com.pulumi.aws.cleanrooms.inputs.CollaborationMemberArgs;\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 testCollaboration = new Collaboration(\"testCollaboration\", CollaborationArgs.builder() \n .creatorDisplayName(\"Creator \")\n .creatorMemberAbilities( \n \"CAN_QUERY\",\n \"CAN_RECEIVE_RESULTS\")\n .dataEncryptionMetadata(CollaborationDataEncryptionMetadataArgs.builder()\n .allowClearText(true)\n .allowDuplicates(true)\n .allowJoinsOnColumnsWithDifferentNames(true)\n .preserveNulls(false)\n .build())\n .description(\"I made this collaboration with Pulumi!\")\n .members(CollaborationMemberArgs.builder()\n .accountId(123456789012)\n .displayName(\"Other member\")\n .memberAbilities()\n .build())\n .queryLogStatus(\"DISABLED\")\n .tags(Map.of(\"Project\", \"Pulumi\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCollaboration:\n type: aws:cleanrooms:Collaboration\n properties:\n creatorDisplayName: 'Creator '\n creatorMemberAbilities:\n - CAN_QUERY\n - CAN_RECEIVE_RESULTS\n dataEncryptionMetadata:\n allowClearText: true\n allowDuplicates: true\n allowJoinsOnColumnsWithDifferentNames: true\n preserveNulls: false\n description: I made this collaboration with Pulumi!\n members:\n - accountId: 1.23456789012e+11\n displayName: Other member\n memberAbilities: []\n queryLogStatus: DISABLED\n tags:\n Project: Pulumi\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import `aws_cleanrooms_collaboration` using the `id`. For example:\n\n```sh\n $ pulumi import aws:cleanrooms/collaboration:Collaboration collaboration 1234abcd-12ab-34cd-56ef-1234567890ab\n```\n ", "properties": { "arn": { "type": "string", @@ -151660,7 +151673,7 @@ }, "enabled": { "type": "boolean", - "description": "Whether the distribution is enabled to accept end user requests for content.\n" + "description": "Whether Origin Shield is enabled.\n" }, "etag": { "type": "string", @@ -151826,7 +151839,7 @@ }, "enabled": { "type": "boolean", - "description": "Whether the distribution is enabled to accept end user requests for content.\n" + "description": "Whether Origin Shield is enabled.\n" }, "httpVersion": { "type": "string", @@ -151952,7 +151965,7 @@ }, "enabled": { "type": "boolean", - "description": "Whether the distribution is enabled to accept end user requests for content.\n" + "description": "Whether Origin Shield is enabled.\n" }, "etag": { "type": "string", @@ -156060,7 +156073,7 @@ } }, "aws:cloudwatch/metricAlarm:MetricAlarm": { - "description": "Provides a CloudWatch Metric Alarm 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 foobar = new aws.cloudwatch.MetricAlarm(\"foobar\", {\n alarmDescription: \"This metric monitors ec2 cpu utilization\",\n comparisonOperator: \"GreaterThanOrEqualToThreshold\",\n evaluationPeriods: 2,\n insufficientDataActions: [],\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n period: 120,\n statistic: \"Average\",\n threshold: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoobar = aws.cloudwatch.MetricAlarm(\"foobar\",\n alarm_description=\"This metric monitors ec2 cpu utilization\",\n comparison_operator=\"GreaterThanOrEqualToThreshold\",\n evaluation_periods=2,\n insufficient_data_actions=[],\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\n period=120,\n statistic=\"Average\",\n threshold=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 foobar = new Aws.CloudWatch.MetricAlarm(\"foobar\", new()\n {\n AlarmDescription = \"This metric monitors ec2 cpu utilization\",\n ComparisonOperator = \"GreaterThanOrEqualToThreshold\",\n EvaluationPeriods = 2,\n InsufficientDataActions = new[] {},\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\n Period = 120,\n Statistic = \"Average\",\n Threshold = 80,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewMetricAlarm(ctx, \"foobar\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tAlarmDescription: pulumi.String(\"This metric monitors ec2 cpu utilization\"),\n\t\t\tComparisonOperator: pulumi.String(\"GreaterThanOrEqualToThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(2),\n\t\t\tInsufficientDataActions: pulumi.AnyArray{},\n\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\tPeriod: pulumi.Int(120),\n\t\t\tStatistic: pulumi.String(\"Average\"),\n\t\t\tThreshold: 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.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\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 foobar = new MetricAlarm(\"foobar\", MetricAlarmArgs.builder() \n .alarmDescription(\"This metric monitors ec2 cpu utilization\")\n .comparisonOperator(\"GreaterThanOrEqualToThreshold\")\n .evaluationPeriods(2)\n .insufficientDataActions()\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .period(120)\n .statistic(\"Average\")\n .threshold(80)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: aws:cloudwatch:MetricAlarm\n properties:\n alarmDescription: This metric monitors ec2 cpu utilization\n comparisonOperator: GreaterThanOrEqualToThreshold\n evaluationPeriods: 2\n insufficientDataActions: []\n metricName: CPUUtilization\n namespace: AWS/EC2\n period: 120\n statistic: Average\n threshold: 80\n```\n{{% /example %}}\n{{% /examples %}}\n## Example in Conjunction with Scaling Policies\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst batPolicy = new aws.autoscaling.Policy(\"batPolicy\", {\n scalingAdjustment: 4,\n adjustmentType: \"ChangeInCapacity\",\n cooldown: 300,\n autoscalingGroupName: aws_autoscaling_group.bar.name,\n});\nconst batMetricAlarm = new aws.cloudwatch.MetricAlarm(\"batMetricAlarm\", {\n comparisonOperator: \"GreaterThanOrEqualToThreshold\",\n evaluationPeriods: 2,\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n period: 120,\n statistic: \"Average\",\n threshold: 80,\n dimensions: {\n AutoScalingGroupName: aws_autoscaling_group.bar.name,\n },\n alarmDescription: \"This metric monitors ec2 cpu utilization\",\n alarmActions: [batPolicy.arn],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbat_policy = aws.autoscaling.Policy(\"batPolicy\",\n scaling_adjustment=4,\n adjustment_type=\"ChangeInCapacity\",\n cooldown=300,\n autoscaling_group_name=aws_autoscaling_group[\"bar\"][\"name\"])\nbat_metric_alarm = aws.cloudwatch.MetricAlarm(\"batMetricAlarm\",\n comparison_operator=\"GreaterThanOrEqualToThreshold\",\n evaluation_periods=2,\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\n period=120,\n statistic=\"Average\",\n threshold=80,\n dimensions={\n \"AutoScalingGroupName\": aws_autoscaling_group[\"bar\"][\"name\"],\n },\n alarm_description=\"This metric monitors ec2 cpu utilization\",\n alarm_actions=[bat_policy.arn])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var batPolicy = new Aws.AutoScaling.Policy(\"batPolicy\", new()\n {\n ScalingAdjustment = 4,\n AdjustmentType = \"ChangeInCapacity\",\n Cooldown = 300,\n AutoscalingGroupName = aws_autoscaling_group.Bar.Name,\n });\n\n var batMetricAlarm = new Aws.CloudWatch.MetricAlarm(\"batMetricAlarm\", new()\n {\n ComparisonOperator = \"GreaterThanOrEqualToThreshold\",\n EvaluationPeriods = 2,\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\n Period = 120,\n Statistic = \"Average\",\n Threshold = 80,\n Dimensions = \n {\n { \"AutoScalingGroupName\", aws_autoscaling_group.Bar.Name },\n },\n AlarmDescription = \"This metric monitors ec2 cpu utilization\",\n AlarmActions = new[]\n {\n batPolicy.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbatPolicy, err := autoscaling.NewPolicy(ctx, \"batPolicy\", \u0026autoscaling.PolicyArgs{\n\t\t\tScalingAdjustment: pulumi.Int(4),\n\t\t\tAdjustmentType: pulumi.String(\"ChangeInCapacity\"),\n\t\t\tCooldown: pulumi.Int(300),\n\t\t\tAutoscalingGroupName: pulumi.Any(aws_autoscaling_group.Bar.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewMetricAlarm(ctx, \"batMetricAlarm\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tComparisonOperator: pulumi.String(\"GreaterThanOrEqualToThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(2),\n\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\tPeriod: pulumi.Int(120),\n\t\t\tStatistic: pulumi.String(\"Average\"),\n\t\t\tThreshold: pulumi.Float64(80),\n\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\"AutoScalingGroupName\": pulumi.Any(aws_autoscaling_group.Bar.Name),\n\t\t\t},\n\t\t\tAlarmDescription: pulumi.String(\"This metric monitors ec2 cpu utilization\"),\n\t\t\tAlarmActions: pulumi.AnyArray{\n\t\t\t\tbatPolicy.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.autoscaling.Policy;\nimport com.pulumi.aws.autoscaling.PolicyArgs;\nimport com.pulumi.aws.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\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 batPolicy = new Policy(\"batPolicy\", PolicyArgs.builder() \n .scalingAdjustment(4)\n .adjustmentType(\"ChangeInCapacity\")\n .cooldown(300)\n .autoscalingGroupName(aws_autoscaling_group.bar().name())\n .build());\n\n var batMetricAlarm = new MetricAlarm(\"batMetricAlarm\", MetricAlarmArgs.builder() \n .comparisonOperator(\"GreaterThanOrEqualToThreshold\")\n .evaluationPeriods(2)\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .period(120)\n .statistic(\"Average\")\n .threshold(80)\n .dimensions(Map.of(\"AutoScalingGroupName\", aws_autoscaling_group.bar().name()))\n .alarmDescription(\"This metric monitors ec2 cpu utilization\")\n .alarmActions(batPolicy.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n batPolicy:\n type: aws:autoscaling:Policy\n properties:\n scalingAdjustment: 4\n adjustmentType: ChangeInCapacity\n cooldown: 300\n autoscalingGroupName: ${aws_autoscaling_group.bar.name}\n batMetricAlarm:\n type: aws:cloudwatch:MetricAlarm\n properties:\n comparisonOperator: GreaterThanOrEqualToThreshold\n evaluationPeriods: 2\n metricName: CPUUtilization\n namespace: AWS/EC2\n period: 120\n statistic: Average\n threshold: 80\n dimensions:\n AutoScalingGroupName: ${aws_autoscaling_group.bar.name}\n alarmDescription: This metric monitors ec2 cpu utilization\n alarmActions:\n - ${batPolicy.arn}\n```\n\n## Example with an Expression\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst foobar = new aws.cloudwatch.MetricAlarm(\"foobar\", {\n alarmDescription: \"Request error rate has exceeded 10%\",\n comparisonOperator: \"GreaterThanOrEqualToThreshold\",\n evaluationPeriods: 2,\n insufficientDataActions: [],\n metricQueries: [\n {\n expression: \"m2/m1*100\",\n id: \"e1\",\n label: \"Error Rate\",\n returnData: true,\n },\n {\n id: \"m1\",\n metric: {\n dimensions: {\n LoadBalancer: \"app/web\",\n },\n metricName: \"RequestCount\",\n namespace: \"AWS/ApplicationELB\",\n period: 120,\n stat: \"Sum\",\n unit: \"Count\",\n },\n },\n {\n id: \"m2\",\n metric: {\n dimensions: {\n LoadBalancer: \"app/web\",\n },\n metricName: \"HTTPCode_ELB_5XX_Count\",\n namespace: \"AWS/ApplicationELB\",\n period: 120,\n stat: \"Sum\",\n unit: \"Count\",\n },\n },\n ],\n threshold: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoobar = aws.cloudwatch.MetricAlarm(\"foobar\",\n alarm_description=\"Request error rate has exceeded 10%\",\n comparison_operator=\"GreaterThanOrEqualToThreshold\",\n evaluation_periods=2,\n insufficient_data_actions=[],\n metric_queries=[\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n expression=\"m2/m1*100\",\n id=\"e1\",\n label=\"Error Rate\",\n return_data=True,\n ),\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n id=\"m1\",\n metric=aws.cloudwatch.MetricAlarmMetricQueryMetricArgs(\n dimensions={\n \"LoadBalancer\": \"app/web\",\n },\n metric_name=\"RequestCount\",\n namespace=\"AWS/ApplicationELB\",\n period=120,\n stat=\"Sum\",\n unit=\"Count\",\n ),\n ),\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n id=\"m2\",\n metric=aws.cloudwatch.MetricAlarmMetricQueryMetricArgs(\n dimensions={\n \"LoadBalancer\": \"app/web\",\n },\n metric_name=\"HTTPCode_ELB_5XX_Count\",\n namespace=\"AWS/ApplicationELB\",\n period=120,\n stat=\"Sum\",\n unit=\"Count\",\n ),\n ),\n ],\n threshold=10)\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 foobar = new Aws.CloudWatch.MetricAlarm(\"foobar\", new()\n {\n AlarmDescription = \"Request error rate has exceeded 10%\",\n ComparisonOperator = \"GreaterThanOrEqualToThreshold\",\n EvaluationPeriods = 2,\n InsufficientDataActions = new[] {},\n MetricQueries = new[]\n {\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Expression = \"m2/m1*100\",\n Id = \"e1\",\n Label = \"Error Rate\",\n ReturnData = true,\n },\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Id = \"m1\",\n Metric = new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryMetricArgs\n {\n Dimensions = \n {\n { \"LoadBalancer\", \"app/web\" },\n },\n MetricName = \"RequestCount\",\n Namespace = \"AWS/ApplicationELB\",\n Period = 120,\n Stat = \"Sum\",\n Unit = \"Count\",\n },\n },\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Id = \"m2\",\n Metric = new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryMetricArgs\n {\n Dimensions = \n {\n { \"LoadBalancer\", \"app/web\" },\n },\n MetricName = \"HTTPCode_ELB_5XX_Count\",\n Namespace = \"AWS/ApplicationELB\",\n Period = 120,\n Stat = \"Sum\",\n Unit = \"Count\",\n },\n },\n },\n Threshold = 10,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewMetricAlarm(ctx, \"foobar\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tAlarmDescription: pulumi.String(\"Request error rate has exceeded 10%\"),\n\t\t\tComparisonOperator: pulumi.String(\"GreaterThanOrEqualToThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(2),\n\t\t\tInsufficientDataActions: pulumi.AnyArray{},\n\t\t\tMetricQueries: cloudwatch.MetricAlarmMetricQueryArray{\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tExpression: pulumi.String(\"m2/m1*100\"),\n\t\t\t\t\tId: pulumi.String(\"e1\"),\n\t\t\t\t\tLabel: pulumi.String(\"Error Rate\"),\n\t\t\t\t\tReturnData: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tId: pulumi.String(\"m1\"),\n\t\t\t\t\tMetric: \u0026cloudwatch.MetricAlarmMetricQueryMetricArgs{\n\t\t\t\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\t\t\t\"LoadBalancer\": pulumi.String(\"app/web\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMetricName: pulumi.String(\"RequestCount\"),\n\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/ApplicationELB\"),\n\t\t\t\t\t\tPeriod: pulumi.Int(120),\n\t\t\t\t\t\tStat: pulumi.String(\"Sum\"),\n\t\t\t\t\t\tUnit: pulumi.String(\"Count\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tId: pulumi.String(\"m2\"),\n\t\t\t\t\tMetric: \u0026cloudwatch.MetricAlarmMetricQueryMetricArgs{\n\t\t\t\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\t\t\t\"LoadBalancer\": pulumi.String(\"app/web\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMetricName: pulumi.String(\"HTTPCode_ELB_5XX_Count\"),\n\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/ApplicationELB\"),\n\t\t\t\t\t\tPeriod: pulumi.Int(120),\n\t\t\t\t\t\tStat: pulumi.String(\"Sum\"),\n\t\t\t\t\t\tUnit: pulumi.String(\"Count\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tThreshold: pulumi.Float64(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricAlarmMetricQueryArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricAlarmMetricQueryMetricArgs;\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 foobar = new MetricAlarm(\"foobar\", MetricAlarmArgs.builder() \n .alarmDescription(\"Request error rate has exceeded 10%\")\n .comparisonOperator(\"GreaterThanOrEqualToThreshold\")\n .evaluationPeriods(2)\n .insufficientDataActions()\n .metricQueries( \n MetricAlarmMetricQueryArgs.builder()\n .expression(\"m2/m1*100\")\n .id(\"e1\")\n .label(\"Error Rate\")\n .returnData(\"true\")\n .build(),\n MetricAlarmMetricQueryArgs.builder()\n .id(\"m1\")\n .metric(MetricAlarmMetricQueryMetricArgs.builder()\n .dimensions(Map.of(\"LoadBalancer\", \"app/web\"))\n .metricName(\"RequestCount\")\n .namespace(\"AWS/ApplicationELB\")\n .period(120)\n .stat(\"Sum\")\n .unit(\"Count\")\n .build())\n .build(),\n MetricAlarmMetricQueryArgs.builder()\n .id(\"m2\")\n .metric(MetricAlarmMetricQueryMetricArgs.builder()\n .dimensions(Map.of(\"LoadBalancer\", \"app/web\"))\n .metricName(\"HTTPCode_ELB_5XX_Count\")\n .namespace(\"AWS/ApplicationELB\")\n .period(120)\n .stat(\"Sum\")\n .unit(\"Count\")\n .build())\n .build())\n .threshold(10)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: aws:cloudwatch:MetricAlarm\n properties:\n alarmDescription: Request error rate has exceeded 10%\n comparisonOperator: GreaterThanOrEqualToThreshold\n evaluationPeriods: 2\n insufficientDataActions: []\n metricQueries:\n - expression: m2/m1*100\n id: e1\n label: Error Rate\n returnData: 'true'\n - id: m1\n metric:\n dimensions:\n LoadBalancer: app/web\n metricName: RequestCount\n namespace: AWS/ApplicationELB\n period: 120\n stat: Sum\n unit: Count\n - id: m2\n metric:\n dimensions:\n LoadBalancer: app/web\n metricName: HTTPCode_ELB_5XX_Count\n namespace: AWS/ApplicationELB\n period: 120\n stat: Sum\n unit: Count\n threshold: 10\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst xxAnomalyDetection = new aws.cloudwatch.MetricAlarm(\"xxAnomalyDetection\", {\n alarmDescription: \"This metric monitors ec2 cpu utilization\",\n comparisonOperator: \"GreaterThanUpperThreshold\",\n evaluationPeriods: 2,\n insufficientDataActions: [],\n metricQueries: [\n {\n expression: \"ANOMALY_DETECTION_BAND(m1)\",\n id: \"e1\",\n label: \"CPUUtilization (Expected)\",\n returnData: true,\n },\n {\n id: \"m1\",\n metric: {\n dimensions: {\n InstanceId: \"i-abc123\",\n },\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n period: 120,\n stat: \"Average\",\n unit: \"Count\",\n },\n returnData: true,\n },\n ],\n thresholdMetricId: \"e1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nxx_anomaly_detection = aws.cloudwatch.MetricAlarm(\"xxAnomalyDetection\",\n alarm_description=\"This metric monitors ec2 cpu utilization\",\n comparison_operator=\"GreaterThanUpperThreshold\",\n evaluation_periods=2,\n insufficient_data_actions=[],\n metric_queries=[\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n expression=\"ANOMALY_DETECTION_BAND(m1)\",\n id=\"e1\",\n label=\"CPUUtilization (Expected)\",\n return_data=True,\n ),\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n id=\"m1\",\n metric=aws.cloudwatch.MetricAlarmMetricQueryMetricArgs(\n dimensions={\n \"InstanceId\": \"i-abc123\",\n },\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\n period=120,\n stat=\"Average\",\n unit=\"Count\",\n ),\n return_data=True,\n ),\n ],\n threshold_metric_id=\"e1\")\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 xxAnomalyDetection = new Aws.CloudWatch.MetricAlarm(\"xxAnomalyDetection\", new()\n {\n AlarmDescription = \"This metric monitors ec2 cpu utilization\",\n ComparisonOperator = \"GreaterThanUpperThreshold\",\n EvaluationPeriods = 2,\n InsufficientDataActions = new[] {},\n MetricQueries = new[]\n {\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Expression = \"ANOMALY_DETECTION_BAND(m1)\",\n Id = \"e1\",\n Label = \"CPUUtilization (Expected)\",\n ReturnData = true,\n },\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Id = \"m1\",\n Metric = new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryMetricArgs\n {\n Dimensions = \n {\n { \"InstanceId\", \"i-abc123\" },\n },\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\n Period = 120,\n Stat = \"Average\",\n Unit = \"Count\",\n },\n ReturnData = true,\n },\n },\n ThresholdMetricId = \"e1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewMetricAlarm(ctx, \"xxAnomalyDetection\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tAlarmDescription: pulumi.String(\"This metric monitors ec2 cpu utilization\"),\n\t\t\tComparisonOperator: pulumi.String(\"GreaterThanUpperThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(2),\n\t\t\tInsufficientDataActions: pulumi.AnyArray{},\n\t\t\tMetricQueries: cloudwatch.MetricAlarmMetricQueryArray{\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tExpression: pulumi.String(\"ANOMALY_DETECTION_BAND(m1)\"),\n\t\t\t\t\tId: pulumi.String(\"e1\"),\n\t\t\t\t\tLabel: pulumi.String(\"CPUUtilization (Expected)\"),\n\t\t\t\t\tReturnData: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tId: pulumi.String(\"m1\"),\n\t\t\t\t\tMetric: \u0026cloudwatch.MetricAlarmMetricQueryMetricArgs{\n\t\t\t\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\t\t\t\"InstanceId\": pulumi.String(\"i-abc123\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\t\t\t\tPeriod: pulumi.Int(120),\n\t\t\t\t\t\tStat: pulumi.String(\"Average\"),\n\t\t\t\t\t\tUnit: pulumi.String(\"Count\"),\n\t\t\t\t\t},\n\t\t\t\t\tReturnData: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tThresholdMetricId: pulumi.String(\"e1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricAlarmMetricQueryArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricAlarmMetricQueryMetricArgs;\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 xxAnomalyDetection = new MetricAlarm(\"xxAnomalyDetection\", MetricAlarmArgs.builder() \n .alarmDescription(\"This metric monitors ec2 cpu utilization\")\n .comparisonOperator(\"GreaterThanUpperThreshold\")\n .evaluationPeriods(2)\n .insufficientDataActions()\n .metricQueries( \n MetricAlarmMetricQueryArgs.builder()\n .expression(\"ANOMALY_DETECTION_BAND(m1)\")\n .id(\"e1\")\n .label(\"CPUUtilization (Expected)\")\n .returnData(\"true\")\n .build(),\n MetricAlarmMetricQueryArgs.builder()\n .id(\"m1\")\n .metric(MetricAlarmMetricQueryMetricArgs.builder()\n .dimensions(Map.of(\"InstanceId\", \"i-abc123\"))\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .period(120)\n .stat(\"Average\")\n .unit(\"Count\")\n .build())\n .returnData(\"true\")\n .build())\n .thresholdMetricId(\"e1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n xxAnomalyDetection:\n type: aws:cloudwatch:MetricAlarm\n properties:\n alarmDescription: This metric monitors ec2 cpu utilization\n comparisonOperator: GreaterThanUpperThreshold\n evaluationPeriods: 2\n insufficientDataActions: []\n metricQueries:\n - expression: ANOMALY_DETECTION_BAND(m1)\n id: e1\n label: CPUUtilization (Expected)\n returnData: 'true'\n - id: m1\n metric:\n dimensions:\n InstanceId: i-abc123\n metricName: CPUUtilization\n namespace: AWS/EC2\n period: 120\n stat: Average\n unit: Count\n returnData: 'true'\n thresholdMetricId: e1\n```\n\n## Example of monitoring Healthy Hosts on NLB using Target Group and NLB\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst nlbHealthyhosts = new aws.cloudwatch.MetricAlarm(\"nlbHealthyhosts\", {\n comparisonOperator: \"LessThanThreshold\",\n evaluationPeriods: 1,\n metricName: \"HealthyHostCount\",\n namespace: \"AWS/NetworkELB\",\n period: 60,\n statistic: \"Average\",\n threshold: _var.logstash_servers_count,\n alarmDescription: \"Number of healthy nodes in Target Group\",\n actionsEnabled: true,\n alarmActions: [aws_sns_topic.sns.arn],\n okActions: [aws_sns_topic.sns.arn],\n dimensions: {\n TargetGroup: aws_lb_target_group[\"lb-tg\"].arn_suffix,\n LoadBalancer: aws_lb.lb.arn_suffix,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nnlb_healthyhosts = aws.cloudwatch.MetricAlarm(\"nlbHealthyhosts\",\n comparison_operator=\"LessThanThreshold\",\n evaluation_periods=1,\n metric_name=\"HealthyHostCount\",\n namespace=\"AWS/NetworkELB\",\n period=60,\n statistic=\"Average\",\n threshold=var[\"logstash_servers_count\"],\n alarm_description=\"Number of healthy nodes in Target Group\",\n actions_enabled=True,\n alarm_actions=[aws_sns_topic[\"sns\"][\"arn\"]],\n ok_actions=[aws_sns_topic[\"sns\"][\"arn\"]],\n dimensions={\n \"TargetGroup\": aws_lb_target_group[\"lb-tg\"][\"arn_suffix\"],\n \"LoadBalancer\": aws_lb[\"lb\"][\"arn_suffix\"],\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 nlbHealthyhosts = new Aws.CloudWatch.MetricAlarm(\"nlbHealthyhosts\", new()\n {\n ComparisonOperator = \"LessThanThreshold\",\n EvaluationPeriods = 1,\n MetricName = \"HealthyHostCount\",\n Namespace = \"AWS/NetworkELB\",\n Period = 60,\n Statistic = \"Average\",\n Threshold = @var.Logstash_servers_count,\n AlarmDescription = \"Number of healthy nodes in Target Group\",\n ActionsEnabled = true,\n AlarmActions = new[]\n {\n aws_sns_topic.Sns.Arn,\n },\n OkActions = new[]\n {\n aws_sns_topic.Sns.Arn,\n },\n Dimensions = \n {\n { \"TargetGroup\", aws_lb_target_group.Lb_tg.Arn_suffix },\n { \"LoadBalancer\", aws_lb.Lb.Arn_suffix },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewMetricAlarm(ctx, \"nlbHealthyhosts\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tComparisonOperator: pulumi.String(\"LessThanThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(1),\n\t\t\tMetricName: pulumi.String(\"HealthyHostCount\"),\n\t\t\tNamespace: pulumi.String(\"AWS/NetworkELB\"),\n\t\t\tPeriod: pulumi.Int(60),\n\t\t\tStatistic: pulumi.String(\"Average\"),\n\t\t\tThreshold: pulumi.Any(_var.Logstash_servers_count),\n\t\t\tAlarmDescription: pulumi.String(\"Number of healthy nodes in Target Group\"),\n\t\t\tActionsEnabled: pulumi.Bool(true),\n\t\t\tAlarmActions: pulumi.AnyArray{\n\t\t\t\taws_sns_topic.Sns.Arn,\n\t\t\t},\n\t\t\tOkActions: pulumi.AnyArray{\n\t\t\t\taws_sns_topic.Sns.Arn,\n\t\t\t},\n\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\"TargetGroup\": pulumi.Any(aws_lb_target_group.LbTg.Arn_suffix),\n\t\t\t\t\"LoadBalancer\": pulumi.Any(aws_lb.Lb.Arn_suffix),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\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 nlbHealthyhosts = new MetricAlarm(\"nlbHealthyhosts\", MetricAlarmArgs.builder() \n .comparisonOperator(\"LessThanThreshold\")\n .evaluationPeriods(1)\n .metricName(\"HealthyHostCount\")\n .namespace(\"AWS/NetworkELB\")\n .period(60)\n .statistic(\"Average\")\n .threshold(var_.logstash_servers_count())\n .alarmDescription(\"Number of healthy nodes in Target Group\")\n .actionsEnabled(\"true\")\n .alarmActions(aws_sns_topic.sns().arn())\n .okActions(aws_sns_topic.sns().arn())\n .dimensions(Map.ofEntries(\n Map.entry(\"TargetGroup\", aws_lb_target_group.lb-tg().arn_suffix()),\n Map.entry(\"LoadBalancer\", aws_lb.lb().arn_suffix())\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n nlbHealthyhosts:\n type: aws:cloudwatch:MetricAlarm\n properties:\n comparisonOperator: LessThanThreshold\n evaluationPeriods: 1\n metricName: HealthyHostCount\n namespace: AWS/NetworkELB\n period: 60\n statistic: Average\n threshold: ${var.logstash_servers_count}\n alarmDescription: Number of healthy nodes in Target Group\n actionsEnabled: 'true'\n alarmActions:\n - ${aws_sns_topic.sns.arn}\n okActions:\n - ${aws_sns_topic.sns.arn}\n dimensions:\n TargetGroup: ${aws_lb_target_group\"lb-tg\"[%!s(MISSING)].arn_suffix}\n LoadBalancer: ${aws_lb.lb.arn_suffix}\n```\n\n\u003e **NOTE:** You cannot create a metric alarm consisting of both `statistic` and `extended_statistic` parameters.\nYou must choose one or the other\n\n\n## Import\n\nUsing `pulumi import`, import CloudWatch Metric Alarm using the `alarm_name`. For example:\n\n```sh\n $ pulumi import aws:cloudwatch/metricAlarm:MetricAlarm test alarm-12345\n```\n ", + "description": "Provides a CloudWatch Metric Alarm 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 foobar = new aws.cloudwatch.MetricAlarm(\"foobar\", {\n alarmDescription: \"This metric monitors ec2 cpu utilization\",\n comparisonOperator: \"GreaterThanOrEqualToThreshold\",\n evaluationPeriods: 2,\n insufficientDataActions: [],\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n period: 120,\n statistic: \"Average\",\n threshold: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoobar = aws.cloudwatch.MetricAlarm(\"foobar\",\n alarm_description=\"This metric monitors ec2 cpu utilization\",\n comparison_operator=\"GreaterThanOrEqualToThreshold\",\n evaluation_periods=2,\n insufficient_data_actions=[],\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\n period=120,\n statistic=\"Average\",\n threshold=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 foobar = new Aws.CloudWatch.MetricAlarm(\"foobar\", new()\n {\n AlarmDescription = \"This metric monitors ec2 cpu utilization\",\n ComparisonOperator = \"GreaterThanOrEqualToThreshold\",\n EvaluationPeriods = 2,\n InsufficientDataActions = new[] {},\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\n Period = 120,\n Statistic = \"Average\",\n Threshold = 80,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewMetricAlarm(ctx, \"foobar\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tAlarmDescription: pulumi.String(\"This metric monitors ec2 cpu utilization\"),\n\t\t\tComparisonOperator: pulumi.String(\"GreaterThanOrEqualToThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(2),\n\t\t\tInsufficientDataActions: pulumi.Array{},\n\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\tPeriod: pulumi.Int(120),\n\t\t\tStatistic: pulumi.String(\"Average\"),\n\t\t\tThreshold: 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.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\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 foobar = new MetricAlarm(\"foobar\", MetricAlarmArgs.builder() \n .alarmDescription(\"This metric monitors ec2 cpu utilization\")\n .comparisonOperator(\"GreaterThanOrEqualToThreshold\")\n .evaluationPeriods(2)\n .insufficientDataActions()\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .period(120)\n .statistic(\"Average\")\n .threshold(80)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: aws:cloudwatch:MetricAlarm\n properties:\n alarmDescription: This metric monitors ec2 cpu utilization\n comparisonOperator: GreaterThanOrEqualToThreshold\n evaluationPeriods: 2\n insufficientDataActions: []\n metricName: CPUUtilization\n namespace: AWS/EC2\n period: 120\n statistic: Average\n threshold: 80\n```\n{{% /example %}}\n{{% /examples %}}\n## Example in Conjunction with Scaling Policies\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst batPolicy = new aws.autoscaling.Policy(\"batPolicy\", {\n scalingAdjustment: 4,\n adjustmentType: \"ChangeInCapacity\",\n cooldown: 300,\n autoscalingGroupName: aws_autoscaling_group.bar.name,\n});\nconst batMetricAlarm = new aws.cloudwatch.MetricAlarm(\"batMetricAlarm\", {\n comparisonOperator: \"GreaterThanOrEqualToThreshold\",\n evaluationPeriods: 2,\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n period: 120,\n statistic: \"Average\",\n threshold: 80,\n dimensions: {\n AutoScalingGroupName: aws_autoscaling_group.bar.name,\n },\n alarmDescription: \"This metric monitors ec2 cpu utilization\",\n alarmActions: [batPolicy.arn],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbat_policy = aws.autoscaling.Policy(\"batPolicy\",\n scaling_adjustment=4,\n adjustment_type=\"ChangeInCapacity\",\n cooldown=300,\n autoscaling_group_name=aws_autoscaling_group[\"bar\"][\"name\"])\nbat_metric_alarm = aws.cloudwatch.MetricAlarm(\"batMetricAlarm\",\n comparison_operator=\"GreaterThanOrEqualToThreshold\",\n evaluation_periods=2,\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\n period=120,\n statistic=\"Average\",\n threshold=80,\n dimensions={\n \"AutoScalingGroupName\": aws_autoscaling_group[\"bar\"][\"name\"],\n },\n alarm_description=\"This metric monitors ec2 cpu utilization\",\n alarm_actions=[bat_policy.arn])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var batPolicy = new Aws.AutoScaling.Policy(\"batPolicy\", new()\n {\n ScalingAdjustment = 4,\n AdjustmentType = \"ChangeInCapacity\",\n Cooldown = 300,\n AutoscalingGroupName = aws_autoscaling_group.Bar.Name,\n });\n\n var batMetricAlarm = new Aws.CloudWatch.MetricAlarm(\"batMetricAlarm\", new()\n {\n ComparisonOperator = \"GreaterThanOrEqualToThreshold\",\n EvaluationPeriods = 2,\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\n Period = 120,\n Statistic = \"Average\",\n Threshold = 80,\n Dimensions = \n {\n { \"AutoScalingGroupName\", aws_autoscaling_group.Bar.Name },\n },\n AlarmDescription = \"This metric monitors ec2 cpu utilization\",\n AlarmActions = new[]\n {\n batPolicy.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbatPolicy, err := autoscaling.NewPolicy(ctx, \"batPolicy\", \u0026autoscaling.PolicyArgs{\n\t\t\tScalingAdjustment: pulumi.Int(4),\n\t\t\tAdjustmentType: pulumi.String(\"ChangeInCapacity\"),\n\t\t\tCooldown: pulumi.Int(300),\n\t\t\tAutoscalingGroupName: pulumi.Any(aws_autoscaling_group.Bar.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewMetricAlarm(ctx, \"batMetricAlarm\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tComparisonOperator: pulumi.String(\"GreaterThanOrEqualToThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(2),\n\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\tPeriod: pulumi.Int(120),\n\t\t\tStatistic: pulumi.String(\"Average\"),\n\t\t\tThreshold: pulumi.Float64(80),\n\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\"AutoScalingGroupName\": pulumi.Any(aws_autoscaling_group.Bar.Name),\n\t\t\t},\n\t\t\tAlarmDescription: pulumi.String(\"This metric monitors ec2 cpu utilization\"),\n\t\t\tAlarmActions: pulumi.Array{\n\t\t\t\tbatPolicy.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.autoscaling.Policy;\nimport com.pulumi.aws.autoscaling.PolicyArgs;\nimport com.pulumi.aws.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\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 batPolicy = new Policy(\"batPolicy\", PolicyArgs.builder() \n .scalingAdjustment(4)\n .adjustmentType(\"ChangeInCapacity\")\n .cooldown(300)\n .autoscalingGroupName(aws_autoscaling_group.bar().name())\n .build());\n\n var batMetricAlarm = new MetricAlarm(\"batMetricAlarm\", MetricAlarmArgs.builder() \n .comparisonOperator(\"GreaterThanOrEqualToThreshold\")\n .evaluationPeriods(2)\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .period(120)\n .statistic(\"Average\")\n .threshold(80)\n .dimensions(Map.of(\"AutoScalingGroupName\", aws_autoscaling_group.bar().name()))\n .alarmDescription(\"This metric monitors ec2 cpu utilization\")\n .alarmActions(batPolicy.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n batPolicy:\n type: aws:autoscaling:Policy\n properties:\n scalingAdjustment: 4\n adjustmentType: ChangeInCapacity\n cooldown: 300\n autoscalingGroupName: ${aws_autoscaling_group.bar.name}\n batMetricAlarm:\n type: aws:cloudwatch:MetricAlarm\n properties:\n comparisonOperator: GreaterThanOrEqualToThreshold\n evaluationPeriods: 2\n metricName: CPUUtilization\n namespace: AWS/EC2\n period: 120\n statistic: Average\n threshold: 80\n dimensions:\n AutoScalingGroupName: ${aws_autoscaling_group.bar.name}\n alarmDescription: This metric monitors ec2 cpu utilization\n alarmActions:\n - ${batPolicy.arn}\n```\n\n## Example with an Expression\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst foobar = new aws.cloudwatch.MetricAlarm(\"foobar\", {\n alarmDescription: \"Request error rate has exceeded 10%\",\n comparisonOperator: \"GreaterThanOrEqualToThreshold\",\n evaluationPeriods: 2,\n insufficientDataActions: [],\n metricQueries: [\n {\n expression: \"m2/m1*100\",\n id: \"e1\",\n label: \"Error Rate\",\n returnData: true,\n },\n {\n id: \"m1\",\n metric: {\n dimensions: {\n LoadBalancer: \"app/web\",\n },\n metricName: \"RequestCount\",\n namespace: \"AWS/ApplicationELB\",\n period: 120,\n stat: \"Sum\",\n unit: \"Count\",\n },\n },\n {\n id: \"m2\",\n metric: {\n dimensions: {\n LoadBalancer: \"app/web\",\n },\n metricName: \"HTTPCode_ELB_5XX_Count\",\n namespace: \"AWS/ApplicationELB\",\n period: 120,\n stat: \"Sum\",\n unit: \"Count\",\n },\n },\n ],\n threshold: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoobar = aws.cloudwatch.MetricAlarm(\"foobar\",\n alarm_description=\"Request error rate has exceeded 10%\",\n comparison_operator=\"GreaterThanOrEqualToThreshold\",\n evaluation_periods=2,\n insufficient_data_actions=[],\n metric_queries=[\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n expression=\"m2/m1*100\",\n id=\"e1\",\n label=\"Error Rate\",\n return_data=True,\n ),\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n id=\"m1\",\n metric=aws.cloudwatch.MetricAlarmMetricQueryMetricArgs(\n dimensions={\n \"LoadBalancer\": \"app/web\",\n },\n metric_name=\"RequestCount\",\n namespace=\"AWS/ApplicationELB\",\n period=120,\n stat=\"Sum\",\n unit=\"Count\",\n ),\n ),\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n id=\"m2\",\n metric=aws.cloudwatch.MetricAlarmMetricQueryMetricArgs(\n dimensions={\n \"LoadBalancer\": \"app/web\",\n },\n metric_name=\"HTTPCode_ELB_5XX_Count\",\n namespace=\"AWS/ApplicationELB\",\n period=120,\n stat=\"Sum\",\n unit=\"Count\",\n ),\n ),\n ],\n threshold=10)\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 foobar = new Aws.CloudWatch.MetricAlarm(\"foobar\", new()\n {\n AlarmDescription = \"Request error rate has exceeded 10%\",\n ComparisonOperator = \"GreaterThanOrEqualToThreshold\",\n EvaluationPeriods = 2,\n InsufficientDataActions = new[] {},\n MetricQueries = new[]\n {\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Expression = \"m2/m1*100\",\n Id = \"e1\",\n Label = \"Error Rate\",\n ReturnData = true,\n },\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Id = \"m1\",\n Metric = new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryMetricArgs\n {\n Dimensions = \n {\n { \"LoadBalancer\", \"app/web\" },\n },\n MetricName = \"RequestCount\",\n Namespace = \"AWS/ApplicationELB\",\n Period = 120,\n Stat = \"Sum\",\n Unit = \"Count\",\n },\n },\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Id = \"m2\",\n Metric = new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryMetricArgs\n {\n Dimensions = \n {\n { \"LoadBalancer\", \"app/web\" },\n },\n MetricName = \"HTTPCode_ELB_5XX_Count\",\n Namespace = \"AWS/ApplicationELB\",\n Period = 120,\n Stat = \"Sum\",\n Unit = \"Count\",\n },\n },\n },\n Threshold = 10,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewMetricAlarm(ctx, \"foobar\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tAlarmDescription: pulumi.String(\"Request error rate has exceeded 10%\"),\n\t\t\tComparisonOperator: pulumi.String(\"GreaterThanOrEqualToThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(2),\n\t\t\tInsufficientDataActions: pulumi.Array{},\n\t\t\tMetricQueries: cloudwatch.MetricAlarmMetricQueryArray{\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tExpression: pulumi.String(\"m2/m1*100\"),\n\t\t\t\t\tId: pulumi.String(\"e1\"),\n\t\t\t\t\tLabel: pulumi.String(\"Error Rate\"),\n\t\t\t\t\tReturnData: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tId: pulumi.String(\"m1\"),\n\t\t\t\t\tMetric: \u0026cloudwatch.MetricAlarmMetricQueryMetricArgs{\n\t\t\t\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\t\t\t\"LoadBalancer\": pulumi.String(\"app/web\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMetricName: pulumi.String(\"RequestCount\"),\n\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/ApplicationELB\"),\n\t\t\t\t\t\tPeriod: pulumi.Int(120),\n\t\t\t\t\t\tStat: pulumi.String(\"Sum\"),\n\t\t\t\t\t\tUnit: pulumi.String(\"Count\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tId: pulumi.String(\"m2\"),\n\t\t\t\t\tMetric: \u0026cloudwatch.MetricAlarmMetricQueryMetricArgs{\n\t\t\t\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\t\t\t\"LoadBalancer\": pulumi.String(\"app/web\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMetricName: pulumi.String(\"HTTPCode_ELB_5XX_Count\"),\n\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/ApplicationELB\"),\n\t\t\t\t\t\tPeriod: pulumi.Int(120),\n\t\t\t\t\t\tStat: pulumi.String(\"Sum\"),\n\t\t\t\t\t\tUnit: pulumi.String(\"Count\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tThreshold: pulumi.Float64(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricAlarmMetricQueryArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricAlarmMetricQueryMetricArgs;\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 foobar = new MetricAlarm(\"foobar\", MetricAlarmArgs.builder() \n .alarmDescription(\"Request error rate has exceeded 10%\")\n .comparisonOperator(\"GreaterThanOrEqualToThreshold\")\n .evaluationPeriods(2)\n .insufficientDataActions()\n .metricQueries( \n MetricAlarmMetricQueryArgs.builder()\n .expression(\"m2/m1*100\")\n .id(\"e1\")\n .label(\"Error Rate\")\n .returnData(\"true\")\n .build(),\n MetricAlarmMetricQueryArgs.builder()\n .id(\"m1\")\n .metric(MetricAlarmMetricQueryMetricArgs.builder()\n .dimensions(Map.of(\"LoadBalancer\", \"app/web\"))\n .metricName(\"RequestCount\")\n .namespace(\"AWS/ApplicationELB\")\n .period(120)\n .stat(\"Sum\")\n .unit(\"Count\")\n .build())\n .build(),\n MetricAlarmMetricQueryArgs.builder()\n .id(\"m2\")\n .metric(MetricAlarmMetricQueryMetricArgs.builder()\n .dimensions(Map.of(\"LoadBalancer\", \"app/web\"))\n .metricName(\"HTTPCode_ELB_5XX_Count\")\n .namespace(\"AWS/ApplicationELB\")\n .period(120)\n .stat(\"Sum\")\n .unit(\"Count\")\n .build())\n .build())\n .threshold(10)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: aws:cloudwatch:MetricAlarm\n properties:\n alarmDescription: Request error rate has exceeded 10%\n comparisonOperator: GreaterThanOrEqualToThreshold\n evaluationPeriods: 2\n insufficientDataActions: []\n metricQueries:\n - expression: m2/m1*100\n id: e1\n label: Error Rate\n returnData: 'true'\n - id: m1\n metric:\n dimensions:\n LoadBalancer: app/web\n metricName: RequestCount\n namespace: AWS/ApplicationELB\n period: 120\n stat: Sum\n unit: Count\n - id: m2\n metric:\n dimensions:\n LoadBalancer: app/web\n metricName: HTTPCode_ELB_5XX_Count\n namespace: AWS/ApplicationELB\n period: 120\n stat: Sum\n unit: Count\n threshold: 10\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst xxAnomalyDetection = new aws.cloudwatch.MetricAlarm(\"xxAnomalyDetection\", {\n alarmDescription: \"This metric monitors ec2 cpu utilization\",\n comparisonOperator: \"GreaterThanUpperThreshold\",\n evaluationPeriods: 2,\n insufficientDataActions: [],\n metricQueries: [\n {\n expression: \"ANOMALY_DETECTION_BAND(m1)\",\n id: \"e1\",\n label: \"CPUUtilization (Expected)\",\n returnData: true,\n },\n {\n id: \"m1\",\n metric: {\n dimensions: {\n InstanceId: \"i-abc123\",\n },\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n period: 120,\n stat: \"Average\",\n unit: \"Count\",\n },\n returnData: true,\n },\n ],\n thresholdMetricId: \"e1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nxx_anomaly_detection = aws.cloudwatch.MetricAlarm(\"xxAnomalyDetection\",\n alarm_description=\"This metric monitors ec2 cpu utilization\",\n comparison_operator=\"GreaterThanUpperThreshold\",\n evaluation_periods=2,\n insufficient_data_actions=[],\n metric_queries=[\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n expression=\"ANOMALY_DETECTION_BAND(m1)\",\n id=\"e1\",\n label=\"CPUUtilization (Expected)\",\n return_data=True,\n ),\n aws.cloudwatch.MetricAlarmMetricQueryArgs(\n id=\"m1\",\n metric=aws.cloudwatch.MetricAlarmMetricQueryMetricArgs(\n dimensions={\n \"InstanceId\": \"i-abc123\",\n },\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\n period=120,\n stat=\"Average\",\n unit=\"Count\",\n ),\n return_data=True,\n ),\n ],\n threshold_metric_id=\"e1\")\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 xxAnomalyDetection = new Aws.CloudWatch.MetricAlarm(\"xxAnomalyDetection\", new()\n {\n AlarmDescription = \"This metric monitors ec2 cpu utilization\",\n ComparisonOperator = \"GreaterThanUpperThreshold\",\n EvaluationPeriods = 2,\n InsufficientDataActions = new[] {},\n MetricQueries = new[]\n {\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Expression = \"ANOMALY_DETECTION_BAND(m1)\",\n Id = \"e1\",\n Label = \"CPUUtilization (Expected)\",\n ReturnData = true,\n },\n new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryArgs\n {\n Id = \"m1\",\n Metric = new Aws.CloudWatch.Inputs.MetricAlarmMetricQueryMetricArgs\n {\n Dimensions = \n {\n { \"InstanceId\", \"i-abc123\" },\n },\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\n Period = 120,\n Stat = \"Average\",\n Unit = \"Count\",\n },\n ReturnData = true,\n },\n },\n ThresholdMetricId = \"e1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewMetricAlarm(ctx, \"xxAnomalyDetection\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tAlarmDescription: pulumi.String(\"This metric monitors ec2 cpu utilization\"),\n\t\t\tComparisonOperator: pulumi.String(\"GreaterThanUpperThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(2),\n\t\t\tInsufficientDataActions: pulumi.Array{},\n\t\t\tMetricQueries: cloudwatch.MetricAlarmMetricQueryArray{\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tExpression: pulumi.String(\"ANOMALY_DETECTION_BAND(m1)\"),\n\t\t\t\t\tId: pulumi.String(\"e1\"),\n\t\t\t\t\tLabel: pulumi.String(\"CPUUtilization (Expected)\"),\n\t\t\t\t\tReturnData: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricAlarmMetricQueryArgs{\n\t\t\t\t\tId: pulumi.String(\"m1\"),\n\t\t\t\t\tMetric: \u0026cloudwatch.MetricAlarmMetricQueryMetricArgs{\n\t\t\t\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\t\t\t\"InstanceId\": pulumi.String(\"i-abc123\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\t\t\t\tPeriod: pulumi.Int(120),\n\t\t\t\t\t\tStat: pulumi.String(\"Average\"),\n\t\t\t\t\t\tUnit: pulumi.String(\"Count\"),\n\t\t\t\t\t},\n\t\t\t\t\tReturnData: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tThresholdMetricId: pulumi.String(\"e1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricAlarmMetricQueryArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricAlarmMetricQueryMetricArgs;\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 xxAnomalyDetection = new MetricAlarm(\"xxAnomalyDetection\", MetricAlarmArgs.builder() \n .alarmDescription(\"This metric monitors ec2 cpu utilization\")\n .comparisonOperator(\"GreaterThanUpperThreshold\")\n .evaluationPeriods(2)\n .insufficientDataActions()\n .metricQueries( \n MetricAlarmMetricQueryArgs.builder()\n .expression(\"ANOMALY_DETECTION_BAND(m1)\")\n .id(\"e1\")\n .label(\"CPUUtilization (Expected)\")\n .returnData(\"true\")\n .build(),\n MetricAlarmMetricQueryArgs.builder()\n .id(\"m1\")\n .metric(MetricAlarmMetricQueryMetricArgs.builder()\n .dimensions(Map.of(\"InstanceId\", \"i-abc123\"))\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .period(120)\n .stat(\"Average\")\n .unit(\"Count\")\n .build())\n .returnData(\"true\")\n .build())\n .thresholdMetricId(\"e1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n xxAnomalyDetection:\n type: aws:cloudwatch:MetricAlarm\n properties:\n alarmDescription: This metric monitors ec2 cpu utilization\n comparisonOperator: GreaterThanUpperThreshold\n evaluationPeriods: 2\n insufficientDataActions: []\n metricQueries:\n - expression: ANOMALY_DETECTION_BAND(m1)\n id: e1\n label: CPUUtilization (Expected)\n returnData: 'true'\n - id: m1\n metric:\n dimensions:\n InstanceId: i-abc123\n metricName: CPUUtilization\n namespace: AWS/EC2\n period: 120\n stat: Average\n unit: Count\n returnData: 'true'\n thresholdMetricId: e1\n```\n\n## Example of monitoring Healthy Hosts on NLB using Target Group and NLB\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst nlbHealthyhosts = new aws.cloudwatch.MetricAlarm(\"nlbHealthyhosts\", {\n comparisonOperator: \"LessThanThreshold\",\n evaluationPeriods: 1,\n metricName: \"HealthyHostCount\",\n namespace: \"AWS/NetworkELB\",\n period: 60,\n statistic: \"Average\",\n threshold: _var.logstash_servers_count,\n alarmDescription: \"Number of healthy nodes in Target Group\",\n actionsEnabled: true,\n alarmActions: [aws_sns_topic.sns.arn],\n okActions: [aws_sns_topic.sns.arn],\n dimensions: {\n TargetGroup: aws_lb_target_group[\"lb-tg\"].arn_suffix,\n LoadBalancer: aws_lb.lb.arn_suffix,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nnlb_healthyhosts = aws.cloudwatch.MetricAlarm(\"nlbHealthyhosts\",\n comparison_operator=\"LessThanThreshold\",\n evaluation_periods=1,\n metric_name=\"HealthyHostCount\",\n namespace=\"AWS/NetworkELB\",\n period=60,\n statistic=\"Average\",\n threshold=var[\"logstash_servers_count\"],\n alarm_description=\"Number of healthy nodes in Target Group\",\n actions_enabled=True,\n alarm_actions=[aws_sns_topic[\"sns\"][\"arn\"]],\n ok_actions=[aws_sns_topic[\"sns\"][\"arn\"]],\n dimensions={\n \"TargetGroup\": aws_lb_target_group[\"lb-tg\"][\"arn_suffix\"],\n \"LoadBalancer\": aws_lb[\"lb\"][\"arn_suffix\"],\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 nlbHealthyhosts = new Aws.CloudWatch.MetricAlarm(\"nlbHealthyhosts\", new()\n {\n ComparisonOperator = \"LessThanThreshold\",\n EvaluationPeriods = 1,\n MetricName = \"HealthyHostCount\",\n Namespace = \"AWS/NetworkELB\",\n Period = 60,\n Statistic = \"Average\",\n Threshold = @var.Logstash_servers_count,\n AlarmDescription = \"Number of healthy nodes in Target Group\",\n ActionsEnabled = true,\n AlarmActions = new[]\n {\n aws_sns_topic.Sns.Arn,\n },\n OkActions = new[]\n {\n aws_sns_topic.Sns.Arn,\n },\n Dimensions = \n {\n { \"TargetGroup\", aws_lb_target_group.Lb_tg.Arn_suffix },\n { \"LoadBalancer\", aws_lb.Lb.Arn_suffix },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewMetricAlarm(ctx, \"nlbHealthyhosts\", \u0026cloudwatch.MetricAlarmArgs{\n\t\t\tComparisonOperator: pulumi.String(\"LessThanThreshold\"),\n\t\t\tEvaluationPeriods: pulumi.Int(1),\n\t\t\tMetricName: pulumi.String(\"HealthyHostCount\"),\n\t\t\tNamespace: pulumi.String(\"AWS/NetworkELB\"),\n\t\t\tPeriod: pulumi.Int(60),\n\t\t\tStatistic: pulumi.String(\"Average\"),\n\t\t\tThreshold: pulumi.Any(_var.Logstash_servers_count),\n\t\t\tAlarmDescription: pulumi.String(\"Number of healthy nodes in Target Group\"),\n\t\t\tActionsEnabled: pulumi.Bool(true),\n\t\t\tAlarmActions: pulumi.Array{\n\t\t\t\taws_sns_topic.Sns.Arn,\n\t\t\t},\n\t\t\tOkActions: pulumi.Array{\n\t\t\t\taws_sns_topic.Sns.Arn,\n\t\t\t},\n\t\t\tDimensions: pulumi.StringMap{\n\t\t\t\t\"TargetGroup\": pulumi.Any(aws_lb_target_group.LbTg.Arn_suffix),\n\t\t\t\t\"LoadBalancer\": pulumi.Any(aws_lb.Lb.Arn_suffix),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.MetricAlarm;\nimport com.pulumi.aws.cloudwatch.MetricAlarmArgs;\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 nlbHealthyhosts = new MetricAlarm(\"nlbHealthyhosts\", MetricAlarmArgs.builder() \n .comparisonOperator(\"LessThanThreshold\")\n .evaluationPeriods(1)\n .metricName(\"HealthyHostCount\")\n .namespace(\"AWS/NetworkELB\")\n .period(60)\n .statistic(\"Average\")\n .threshold(var_.logstash_servers_count())\n .alarmDescription(\"Number of healthy nodes in Target Group\")\n .actionsEnabled(\"true\")\n .alarmActions(aws_sns_topic.sns().arn())\n .okActions(aws_sns_topic.sns().arn())\n .dimensions(Map.ofEntries(\n Map.entry(\"TargetGroup\", aws_lb_target_group.lb-tg().arn_suffix()),\n Map.entry(\"LoadBalancer\", aws_lb.lb().arn_suffix())\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n nlbHealthyhosts:\n type: aws:cloudwatch:MetricAlarm\n properties:\n comparisonOperator: LessThanThreshold\n evaluationPeriods: 1\n metricName: HealthyHostCount\n namespace: AWS/NetworkELB\n period: 60\n statistic: Average\n threshold: ${var.logstash_servers_count}\n alarmDescription: Number of healthy nodes in Target Group\n actionsEnabled: 'true'\n alarmActions:\n - ${aws_sns_topic.sns.arn}\n okActions:\n - ${aws_sns_topic.sns.arn}\n dimensions:\n TargetGroup: ${aws_lb_target_group\"lb-tg\"[%!s(MISSING)].arn_suffix}\n LoadBalancer: ${aws_lb.lb.arn_suffix}\n```\n\n\u003e **NOTE:** You cannot create a metric alarm consisting of both `statistic` and `extended_statistic` parameters.\nYou must choose one or the other\n\n\n## Import\n\nUsing `pulumi import`, import CloudWatch Metric Alarm using the `alarm_name`. For example:\n\n```sh\n $ pulumi import aws:cloudwatch/metricAlarm:MetricAlarm test alarm-12345\n```\n ", "properties": { "actionsEnabled": { "type": "boolean", @@ -156485,7 +156498,7 @@ } }, "aws:cloudwatch/metricStream:MetricStream": { - "description": "Provides a CloudWatch Metric Stream resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Filters\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst streamsAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"streams.metrics.cloudwatch.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst metricStreamToFirehoseRole = new aws.iam.Role(\"metricStreamToFirehoseRole\", {assumeRolePolicy: streamsAssumeRole.then(streamsAssumeRole =\u003e streamsAssumeRole.json)});\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 firehoseToS3Role = new aws.iam.Role(\"firehoseToS3Role\", {assumeRolePolicy: firehoseAssumeRole.then(firehoseAssumeRole =\u003e firehoseAssumeRole.json)});\nconst s3Stream = new aws.kinesis.FirehoseDeliveryStream(\"s3Stream\", {\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseToS3Role.arn,\n bucketArn: bucket.arn,\n },\n});\nconst main = new aws.cloudwatch.MetricStream(\"main\", {\n roleArn: metricStreamToFirehoseRole.arn,\n firehoseArn: s3Stream.arn,\n outputFormat: \"json\",\n includeFilters: [\n {\n namespace: \"AWS/EC2\",\n metricNames: [\n \"CPUUtilization\",\n \"NetworkOut\",\n ],\n },\n {\n namespace: \"AWS/EBS\",\n metricNames: [],\n },\n ],\n});\nconst metricStreamToFirehosePolicyDocument = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n actions: [\n \"firehose:PutRecord\",\n \"firehose:PutRecordBatch\",\n ],\n resources: [s3Stream.arn],\n }],\n});\nconst metricStreamToFirehoseRolePolicy = new aws.iam.RolePolicy(\"metricStreamToFirehoseRolePolicy\", {\n role: metricStreamToFirehoseRole.id,\n policy: metricStreamToFirehosePolicyDocument.apply(metricStreamToFirehosePolicyDocument =\u003e metricStreamToFirehosePolicyDocument.json),\n});\nconst bucketAcl = new aws.s3.BucketAclV2(\"bucketAcl\", {\n bucket: bucket.id,\n acl: \"private\",\n});\nconst firehoseToS3PolicyDocument = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n actions: [\n \"s3:AbortMultipartUpload\",\n \"s3:GetBucketLocation\",\n \"s3:GetObject\",\n \"s3:ListBucket\",\n \"s3:ListBucketMultipartUploads\",\n \"s3:PutObject\",\n ],\n resources: [\n bucket.arn,\n pulumi.interpolate`${bucket.arn}/*`,\n ],\n }],\n});\nconst firehoseToS3RolePolicy = new aws.iam.RolePolicy(\"firehoseToS3RolePolicy\", {\n role: firehoseToS3Role.id,\n policy: firehoseToS3PolicyDocument.apply(firehoseToS3PolicyDocument =\u003e firehoseToS3PolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nstreams_assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"streams.metrics.cloudwatch.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nmetric_stream_to_firehose_role = aws.iam.Role(\"metricStreamToFirehoseRole\", assume_role_policy=streams_assume_role.json)\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_to_s3_role = aws.iam.Role(\"firehoseToS3Role\", assume_role_policy=firehose_assume_role.json)\ns3_stream = aws.kinesis.FirehoseDeliveryStream(\"s3Stream\",\n destination=\"extended_s3\",\n extended_s3_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs(\n role_arn=firehose_to_s3_role.arn,\n bucket_arn=bucket.arn,\n ))\nmain = aws.cloudwatch.MetricStream(\"main\",\n role_arn=metric_stream_to_firehose_role.arn,\n firehose_arn=s3_stream.arn,\n output_format=\"json\",\n include_filters=[\n aws.cloudwatch.MetricStreamIncludeFilterArgs(\n namespace=\"AWS/EC2\",\n metric_names=[\n \"CPUUtilization\",\n \"NetworkOut\",\n ],\n ),\n aws.cloudwatch.MetricStreamIncludeFilterArgs(\n namespace=\"AWS/EBS\",\n metric_names=[],\n ),\n ])\nmetric_stream_to_firehose_policy_document = aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\n \"firehose:PutRecord\",\n \"firehose:PutRecordBatch\",\n ],\n resources=[s3_stream.arn],\n)])\nmetric_stream_to_firehose_role_policy = aws.iam.RolePolicy(\"metricStreamToFirehoseRolePolicy\",\n role=metric_stream_to_firehose_role.id,\n policy=metric_stream_to_firehose_policy_document.json)\nbucket_acl = aws.s3.BucketAclV2(\"bucketAcl\",\n bucket=bucket.id,\n acl=\"private\")\nfirehose_to_s3_policy_document = aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\n \"s3:AbortMultipartUpload\",\n \"s3:GetBucketLocation\",\n \"s3:GetObject\",\n \"s3:ListBucket\",\n \"s3:ListBucketMultipartUploads\",\n \"s3:PutObject\",\n ],\n resources=[\n bucket.arn,\n bucket.arn.apply(lambda arn: f\"{arn}/*\"),\n ],\n)])\nfirehose_to_s3_role_policy = aws.iam.RolePolicy(\"firehoseToS3RolePolicy\",\n role=firehose_to_s3_role.id,\n policy=firehose_to_s3_policy_document.json)\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 streamsAssumeRole = 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 \"streams.metrics.cloudwatch.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var metricStreamToFirehoseRole = new Aws.Iam.Role(\"metricStreamToFirehoseRole\", new()\n {\n AssumeRolePolicy = streamsAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\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 firehoseToS3Role = new Aws.Iam.Role(\"firehoseToS3Role\", new()\n {\n AssumeRolePolicy = firehoseAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var s3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"s3Stream\", new()\n {\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseToS3Role.Arn,\n BucketArn = bucket.Arn,\n },\n });\n\n var main = new Aws.CloudWatch.MetricStream(\"main\", new()\n {\n RoleArn = metricStreamToFirehoseRole.Arn,\n FirehoseArn = s3Stream.Arn,\n OutputFormat = \"json\",\n IncludeFilters = new[]\n {\n new Aws.CloudWatch.Inputs.MetricStreamIncludeFilterArgs\n {\n Namespace = \"AWS/EC2\",\n MetricNames = new[]\n {\n \"CPUUtilization\",\n \"NetworkOut\",\n },\n },\n new Aws.CloudWatch.Inputs.MetricStreamIncludeFilterArgs\n {\n Namespace = \"AWS/EBS\",\n MetricNames = new[] {},\n },\n },\n });\n\n var metricStreamToFirehosePolicyDocument = 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 \"firehose:PutRecord\",\n \"firehose:PutRecordBatch\",\n },\n Resources = new[]\n {\n s3Stream.Arn,\n },\n },\n },\n });\n\n var metricStreamToFirehoseRolePolicy = new Aws.Iam.RolePolicy(\"metricStreamToFirehoseRolePolicy\", new()\n {\n Role = metricStreamToFirehoseRole.Id,\n Policy = metricStreamToFirehosePolicyDocument.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var bucketAcl = new Aws.S3.BucketAclV2(\"bucketAcl\", new()\n {\n Bucket = bucket.Id,\n Acl = \"private\",\n });\n\n var firehoseToS3PolicyDocument = 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 \"s3:AbortMultipartUpload\",\n \"s3:GetBucketLocation\",\n \"s3:GetObject\",\n \"s3:ListBucket\",\n \"s3:ListBucketMultipartUploads\",\n \"s3:PutObject\",\n },\n Resources = new[]\n {\n bucket.Arn,\n $\"{bucket.Arn}/*\",\n },\n },\n },\n });\n\n var firehoseToS3RolePolicy = new Aws.Iam.RolePolicy(\"firehoseToS3RolePolicy\", new()\n {\n Role = firehoseToS3Role.Id,\n Policy = firehoseToS3PolicyDocument.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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\tstreamsAssumeRole, 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\"streams.metrics.cloudwatch.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\tmetricStreamToFirehoseRole, err := iam.NewRole(ctx, \"metricStreamToFirehoseRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: *pulumi.String(streamsAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\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\tfirehoseToS3Role, err := iam.NewRole(ctx, \"firehoseToS3Role\", \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\ts3Stream, err := kinesis.NewFirehoseDeliveryStream(ctx, \"s3Stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: firehoseToS3Role.Arn,\n\t\t\t\tBucketArn: bucket.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewMetricStream(ctx, \"main\", \u0026cloudwatch.MetricStreamArgs{\n\t\t\tRoleArn: metricStreamToFirehoseRole.Arn,\n\t\t\tFirehoseArn: s3Stream.Arn,\n\t\t\tOutputFormat: pulumi.String(\"json\"),\n\t\t\tIncludeFilters: cloudwatch.MetricStreamIncludeFilterArray{\n\t\t\t\t\u0026cloudwatch.MetricStreamIncludeFilterArgs{\n\t\t\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\t\t\tMetricNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"CPUUtilization\"),\n\t\t\t\t\t\tpulumi.String(\"NetworkOut\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricStreamIncludeFilterArgs{\n\t\t\t\t\tNamespace: pulumi.String(\"AWS/EBS\"),\n\t\t\t\t\tMetricNames: pulumi.StringArray{},\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\tmetricStreamToFirehosePolicyDocument := 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(\"firehose:PutRecord\"),\n\t\t\t\t\t\tpulumi.String(\"firehose:PutRecordBatch\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\ts3Stream.Arn,\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, \"metricStreamToFirehoseRolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: metricStreamToFirehoseRole.ID(),\n\t\t\tPolicy: metricStreamToFirehosePolicyDocument.ApplyT(func(metricStreamToFirehosePolicyDocument iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026metricStreamToFirehosePolicyDocument.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 = 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\tfirehoseToS3PolicyDocument := 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(\"s3:AbortMultipartUpload\"),\n\t\t\t\t\t\tpulumi.String(\"s3:GetBucketLocation\"),\n\t\t\t\t\t\tpulumi.String(\"s3:GetObject\"),\n\t\t\t\t\t\tpulumi.String(\"s3:ListBucket\"),\n\t\t\t\t\t\tpulumi.String(\"s3:ListBucketMultipartUploads\"),\n\t\t\t\t\t\tpulumi.String(\"s3:PutObject\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tbucket.Arn,\n\t\t\t\t\t\tbucket.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},\n\t\t}, nil)\n\t\t_, err = iam.NewRolePolicy(ctx, \"firehoseToS3RolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: firehoseToS3Role.ID(),\n\t\t\tPolicy: firehoseToS3PolicyDocument.ApplyT(func(firehoseToS3PolicyDocument iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026firehoseToS3PolicyDocument.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\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.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.s3.BucketV2;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.cloudwatch.MetricStream;\nimport com.pulumi.aws.cloudwatch.MetricStreamArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricStreamIncludeFilterArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\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 streamsAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"streams.metrics.cloudwatch.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var metricStreamToFirehoseRole = new Role(\"metricStreamToFirehoseRole\", RoleArgs.builder() \n .assumeRolePolicy(streamsAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\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 firehoseToS3Role = new Role(\"firehoseToS3Role\", RoleArgs.builder() \n .assumeRolePolicy(firehoseAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var s3Stream = new FirehoseDeliveryStream(\"s3Stream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseToS3Role.arn())\n .bucketArn(bucket.arn())\n .build())\n .build());\n\n var main = new MetricStream(\"main\", MetricStreamArgs.builder() \n .roleArn(metricStreamToFirehoseRole.arn())\n .firehoseArn(s3Stream.arn())\n .outputFormat(\"json\")\n .includeFilters( \n MetricStreamIncludeFilterArgs.builder()\n .namespace(\"AWS/EC2\")\n .metricNames( \n \"CPUUtilization\",\n \"NetworkOut\")\n .build(),\n MetricStreamIncludeFilterArgs.builder()\n .namespace(\"AWS/EBS\")\n .metricNames()\n .build())\n .build());\n\n final var metricStreamToFirehosePolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions( \n \"firehose:PutRecord\",\n \"firehose:PutRecordBatch\")\n .resources(s3Stream.arn())\n .build())\n .build());\n\n var metricStreamToFirehoseRolePolicy = new RolePolicy(\"metricStreamToFirehoseRolePolicy\", RolePolicyArgs.builder() \n .role(metricStreamToFirehoseRole.id())\n .policy(metricStreamToFirehosePolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(metricStreamToFirehosePolicyDocument -\u003e metricStreamToFirehosePolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var bucketAcl = new BucketAclV2(\"bucketAcl\", BucketAclV2Args.builder() \n .bucket(bucket.id())\n .acl(\"private\")\n .build());\n\n final var firehoseToS3PolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions( \n \"s3:AbortMultipartUpload\",\n \"s3:GetBucketLocation\",\n \"s3:GetObject\",\n \"s3:ListBucket\",\n \"s3:ListBucketMultipartUploads\",\n \"s3:PutObject\")\n .resources( \n bucket.arn(),\n bucket.arn().applyValue(arn -\u003e String.format(\"%s/*\", arn)))\n .build())\n .build());\n\n var firehoseToS3RolePolicy = new RolePolicy(\"firehoseToS3RolePolicy\", RolePolicyArgs.builder() \n .role(firehoseToS3Role.id())\n .policy(firehoseToS3PolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(firehoseToS3PolicyDocument -\u003e firehoseToS3PolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: aws:cloudwatch:MetricStream\n properties:\n roleArn: ${metricStreamToFirehoseRole.arn}\n firehoseArn: ${s3Stream.arn}\n outputFormat: json\n includeFilters:\n - namespace: AWS/EC2\n metricNames:\n - CPUUtilization\n - NetworkOut\n - namespace: AWS/EBS\n metricNames: []\n metricStreamToFirehoseRole:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${streamsAssumeRole.json}\n metricStreamToFirehoseRolePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${metricStreamToFirehoseRole.id}\n policy: ${metricStreamToFirehosePolicyDocument.json}\n bucket:\n type: aws:s3:BucketV2\n bucketAcl:\n type: aws:s3:BucketAclV2\n properties:\n bucket: ${bucket.id}\n acl: private\n firehoseToS3Role:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${firehoseAssumeRole.json}\n firehoseToS3RolePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${firehoseToS3Role.id}\n policy: ${firehoseToS3PolicyDocument.json}\n s3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseToS3Role.arn}\n bucketArn: ${bucket.arn}\nvariables:\n streamsAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - streams.metrics.cloudwatch.amazonaws.com\n actions:\n - sts:AssumeRole\n metricStreamToFirehosePolicyDocument:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - firehose:PutRecord\n - firehose:PutRecordBatch\n resources:\n - ${s3Stream.arn}\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 firehoseToS3PolicyDocument:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - s3:AbortMultipartUpload\n - s3:GetBucketLocation\n - s3:GetObject\n - s3:ListBucket\n - s3:ListBucketMultipartUploads\n - s3:PutObject\n resources:\n - ${bucket.arn}\n - ${bucket.arn}/*\n```\n{{% /example %}}\n{{% example %}}\n### Additional Statistics\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.cloudwatch.MetricStream(\"main\", {\n roleArn: aws_iam_role.metric_stream_to_firehose.arn,\n firehoseArn: aws_kinesis_firehose_delivery_stream.s3_stream.arn,\n outputFormat: \"json\",\n statisticsConfigurations: [\n {\n additionalStatistics: [\n \"p1\",\n \"tm99\",\n ],\n includeMetrics: [{\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n }],\n },\n {\n additionalStatistics: [\"TS(50.5:)\"],\n includeMetrics: [{\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n }],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.cloudwatch.MetricStream(\"main\",\n role_arn=aws_iam_role[\"metric_stream_to_firehose\"][\"arn\"],\n firehose_arn=aws_kinesis_firehose_delivery_stream[\"s3_stream\"][\"arn\"],\n output_format=\"json\",\n statistics_configurations=[\n aws.cloudwatch.MetricStreamStatisticsConfigurationArgs(\n additional_statistics=[\n \"p1\",\n \"tm99\",\n ],\n include_metrics=[aws.cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs(\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\n )],\n ),\n aws.cloudwatch.MetricStreamStatisticsConfigurationArgs(\n additional_statistics=[\"TS(50.5:)\"],\n include_metrics=[aws.cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs(\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\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 main = new Aws.CloudWatch.MetricStream(\"main\", new()\n {\n RoleArn = aws_iam_role.Metric_stream_to_firehose.Arn,\n FirehoseArn = aws_kinesis_firehose_delivery_stream.S3_stream.Arn,\n OutputFormat = \"json\",\n StatisticsConfigurations = new[]\n {\n new Aws.CloudWatch.Inputs.MetricStreamStatisticsConfigurationArgs\n {\n AdditionalStatistics = new[]\n {\n \"p1\",\n \"tm99\",\n },\n IncludeMetrics = new[]\n {\n new Aws.CloudWatch.Inputs.MetricStreamStatisticsConfigurationIncludeMetricArgs\n {\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\n },\n },\n },\n new Aws.CloudWatch.Inputs.MetricStreamStatisticsConfigurationArgs\n {\n AdditionalStatistics = new[]\n {\n \"TS(50.5:)\",\n },\n IncludeMetrics = new[]\n {\n new Aws.CloudWatch.Inputs.MetricStreamStatisticsConfigurationIncludeMetricArgs\n {\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\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/cloudwatch\"\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 := cloudwatch.NewMetricStream(ctx, \"main\", \u0026cloudwatch.MetricStreamArgs{\n\t\t\tRoleArn: pulumi.Any(aws_iam_role.Metric_stream_to_firehose.Arn),\n\t\t\tFirehoseArn: pulumi.Any(aws_kinesis_firehose_delivery_stream.S3_stream.Arn),\n\t\t\tOutputFormat: pulumi.String(\"json\"),\n\t\t\tStatisticsConfigurations: cloudwatch.MetricStreamStatisticsConfigurationArray{\n\t\t\t\t\u0026cloudwatch.MetricStreamStatisticsConfigurationArgs{\n\t\t\t\t\tAdditionalStatistics: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"p1\"),\n\t\t\t\t\t\tpulumi.String(\"tm99\"),\n\t\t\t\t\t},\n\t\t\t\t\tIncludeMetrics: cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArray{\n\t\t\t\t\t\t\u0026cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs{\n\t\t\t\t\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricStreamStatisticsConfigurationArgs{\n\t\t\t\t\tAdditionalStatistics: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"TS(50.5:)\"),\n\t\t\t\t\t},\n\t\t\t\t\tIncludeMetrics: cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArray{\n\t\t\t\t\t\t\u0026cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs{\n\t\t\t\t\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\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.cloudwatch.MetricStream;\nimport com.pulumi.aws.cloudwatch.MetricStreamArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricStreamStatisticsConfigurationArgs;\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 MetricStream(\"main\", MetricStreamArgs.builder() \n .roleArn(aws_iam_role.metric_stream_to_firehose().arn())\n .firehoseArn(aws_kinesis_firehose_delivery_stream.s3_stream().arn())\n .outputFormat(\"json\")\n .statisticsConfigurations( \n MetricStreamStatisticsConfigurationArgs.builder()\n .additionalStatistics( \n \"p1\",\n \"tm99\")\n .includeMetrics(MetricStreamStatisticsConfigurationIncludeMetricArgs.builder()\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .build())\n .build(),\n MetricStreamStatisticsConfigurationArgs.builder()\n .additionalStatistics(\"TS(50.5:)\")\n .includeMetrics(MetricStreamStatisticsConfigurationIncludeMetricArgs.builder()\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: aws:cloudwatch:MetricStream\n properties:\n roleArn: ${aws_iam_role.metric_stream_to_firehose.arn}\n firehoseArn: ${aws_kinesis_firehose_delivery_stream.s3_stream.arn}\n outputFormat: json\n statisticsConfigurations:\n - additionalStatistics:\n - p1\n - tm99\n includeMetrics:\n - metricName: CPUUtilization\n namespace: AWS/EC2\n - additionalStatistics:\n - TS(50.5:)\n includeMetrics:\n - metricName: CPUUtilization\n namespace: AWS/EC2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import CloudWatch metric streams using the `name`. For example:\n\n```sh\n $ pulumi import aws:cloudwatch/metricStream:MetricStream sample sample-stream-name\n```\n ", + "description": "Provides a CloudWatch Metric Stream resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Filters\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst streamsAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"streams.metrics.cloudwatch.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst metricStreamToFirehoseRole = new aws.iam.Role(\"metricStreamToFirehoseRole\", {assumeRolePolicy: streamsAssumeRole.then(streamsAssumeRole =\u003e streamsAssumeRole.json)});\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 firehoseToS3Role = new aws.iam.Role(\"firehoseToS3Role\", {assumeRolePolicy: firehoseAssumeRole.then(firehoseAssumeRole =\u003e firehoseAssumeRole.json)});\nconst s3Stream = new aws.kinesis.FirehoseDeliveryStream(\"s3Stream\", {\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseToS3Role.arn,\n bucketArn: bucket.arn,\n },\n});\nconst main = new aws.cloudwatch.MetricStream(\"main\", {\n roleArn: metricStreamToFirehoseRole.arn,\n firehoseArn: s3Stream.arn,\n outputFormat: \"json\",\n includeFilters: [\n {\n namespace: \"AWS/EC2\",\n metricNames: [\n \"CPUUtilization\",\n \"NetworkOut\",\n ],\n },\n {\n namespace: \"AWS/EBS\",\n metricNames: [],\n },\n ],\n});\nconst metricStreamToFirehosePolicyDocument = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n actions: [\n \"firehose:PutRecord\",\n \"firehose:PutRecordBatch\",\n ],\n resources: [s3Stream.arn],\n }],\n});\nconst metricStreamToFirehoseRolePolicy = new aws.iam.RolePolicy(\"metricStreamToFirehoseRolePolicy\", {\n role: metricStreamToFirehoseRole.id,\n policy: metricStreamToFirehosePolicyDocument.apply(metricStreamToFirehosePolicyDocument =\u003e metricStreamToFirehosePolicyDocument.json),\n});\nconst bucketAcl = new aws.s3.BucketAclV2(\"bucketAcl\", {\n bucket: bucket.id,\n acl: \"private\",\n});\nconst firehoseToS3PolicyDocument = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n actions: [\n \"s3:AbortMultipartUpload\",\n \"s3:GetBucketLocation\",\n \"s3:GetObject\",\n \"s3:ListBucket\",\n \"s3:ListBucketMultipartUploads\",\n \"s3:PutObject\",\n ],\n resources: [\n bucket.arn,\n pulumi.interpolate`${bucket.arn}/*`,\n ],\n }],\n});\nconst firehoseToS3RolePolicy = new aws.iam.RolePolicy(\"firehoseToS3RolePolicy\", {\n role: firehoseToS3Role.id,\n policy: firehoseToS3PolicyDocument.apply(firehoseToS3PolicyDocument =\u003e firehoseToS3PolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nstreams_assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"streams.metrics.cloudwatch.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nmetric_stream_to_firehose_role = aws.iam.Role(\"metricStreamToFirehoseRole\", assume_role_policy=streams_assume_role.json)\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_to_s3_role = aws.iam.Role(\"firehoseToS3Role\", assume_role_policy=firehose_assume_role.json)\ns3_stream = aws.kinesis.FirehoseDeliveryStream(\"s3Stream\",\n destination=\"extended_s3\",\n extended_s3_configuration=aws.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs(\n role_arn=firehose_to_s3_role.arn,\n bucket_arn=bucket.arn,\n ))\nmain = aws.cloudwatch.MetricStream(\"main\",\n role_arn=metric_stream_to_firehose_role.arn,\n firehose_arn=s3_stream.arn,\n output_format=\"json\",\n include_filters=[\n aws.cloudwatch.MetricStreamIncludeFilterArgs(\n namespace=\"AWS/EC2\",\n metric_names=[\n \"CPUUtilization\",\n \"NetworkOut\",\n ],\n ),\n aws.cloudwatch.MetricStreamIncludeFilterArgs(\n namespace=\"AWS/EBS\",\n metric_names=[],\n ),\n ])\nmetric_stream_to_firehose_policy_document = aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\n \"firehose:PutRecord\",\n \"firehose:PutRecordBatch\",\n ],\n resources=[s3_stream.arn],\n)])\nmetric_stream_to_firehose_role_policy = aws.iam.RolePolicy(\"metricStreamToFirehoseRolePolicy\",\n role=metric_stream_to_firehose_role.id,\n policy=metric_stream_to_firehose_policy_document.json)\nbucket_acl = aws.s3.BucketAclV2(\"bucketAcl\",\n bucket=bucket.id,\n acl=\"private\")\nfirehose_to_s3_policy_document = aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\n \"s3:AbortMultipartUpload\",\n \"s3:GetBucketLocation\",\n \"s3:GetObject\",\n \"s3:ListBucket\",\n \"s3:ListBucketMultipartUploads\",\n \"s3:PutObject\",\n ],\n resources=[\n bucket.arn,\n bucket.arn.apply(lambda arn: f\"{arn}/*\"),\n ],\n)])\nfirehose_to_s3_role_policy = aws.iam.RolePolicy(\"firehoseToS3RolePolicy\",\n role=firehose_to_s3_role.id,\n policy=firehose_to_s3_policy_document.json)\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 streamsAssumeRole = 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 \"streams.metrics.cloudwatch.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var metricStreamToFirehoseRole = new Aws.Iam.Role(\"metricStreamToFirehoseRole\", new()\n {\n AssumeRolePolicy = streamsAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\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 firehoseToS3Role = new Aws.Iam.Role(\"firehoseToS3Role\", new()\n {\n AssumeRolePolicy = firehoseAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var s3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"s3Stream\", new()\n {\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseToS3Role.Arn,\n BucketArn = bucket.Arn,\n },\n });\n\n var main = new Aws.CloudWatch.MetricStream(\"main\", new()\n {\n RoleArn = metricStreamToFirehoseRole.Arn,\n FirehoseArn = s3Stream.Arn,\n OutputFormat = \"json\",\n IncludeFilters = new[]\n {\n new Aws.CloudWatch.Inputs.MetricStreamIncludeFilterArgs\n {\n Namespace = \"AWS/EC2\",\n MetricNames = new[]\n {\n \"CPUUtilization\",\n \"NetworkOut\",\n },\n },\n new Aws.CloudWatch.Inputs.MetricStreamIncludeFilterArgs\n {\n Namespace = \"AWS/EBS\",\n MetricNames = new() { },\n },\n },\n });\n\n var metricStreamToFirehosePolicyDocument = 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 \"firehose:PutRecord\",\n \"firehose:PutRecordBatch\",\n },\n Resources = new[]\n {\n s3Stream.Arn,\n },\n },\n },\n });\n\n var metricStreamToFirehoseRolePolicy = new Aws.Iam.RolePolicy(\"metricStreamToFirehoseRolePolicy\", new()\n {\n Role = metricStreamToFirehoseRole.Id,\n Policy = metricStreamToFirehosePolicyDocument.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var bucketAcl = new Aws.S3.BucketAclV2(\"bucketAcl\", new()\n {\n Bucket = bucket.Id,\n Acl = \"private\",\n });\n\n var firehoseToS3PolicyDocument = 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 \"s3:AbortMultipartUpload\",\n \"s3:GetBucketLocation\",\n \"s3:GetObject\",\n \"s3:ListBucket\",\n \"s3:ListBucketMultipartUploads\",\n \"s3:PutObject\",\n },\n Resources = new[]\n {\n bucket.Arn,\n $\"{bucket.Arn}/*\",\n },\n },\n },\n });\n\n var firehoseToS3RolePolicy = new Aws.Iam.RolePolicy(\"firehoseToS3RolePolicy\", new()\n {\n Role = firehoseToS3Role.Id,\n Policy = firehoseToS3PolicyDocument.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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\tstreamsAssumeRole, 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\"streams.metrics.cloudwatch.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\tmetricStreamToFirehoseRole, err := iam.NewRole(ctx, \"metricStreamToFirehoseRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: *pulumi.String(streamsAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\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\tfirehoseToS3Role, err := iam.NewRole(ctx, \"firehoseToS3Role\", \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\ts3Stream, err := kinesis.NewFirehoseDeliveryStream(ctx, \"s3Stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: firehoseToS3Role.Arn,\n\t\t\t\tBucketArn: bucket.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewMetricStream(ctx, \"main\", \u0026cloudwatch.MetricStreamArgs{\n\t\t\tRoleArn: metricStreamToFirehoseRole.Arn,\n\t\t\tFirehoseArn: s3Stream.Arn,\n\t\t\tOutputFormat: pulumi.String(\"json\"),\n\t\t\tIncludeFilters: cloudwatch.MetricStreamIncludeFilterArray{\n\t\t\t\t\u0026cloudwatch.MetricStreamIncludeFilterArgs{\n\t\t\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\t\t\tMetricNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"CPUUtilization\"),\n\t\t\t\t\t\tpulumi.String(\"NetworkOut\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricStreamIncludeFilterArgs{\n\t\t\t\t\tNamespace: pulumi.String(\"AWS/EBS\"),\n\t\t\t\t\tMetricNames: pulumi.StringArray{},\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\tmetricStreamToFirehosePolicyDocument := 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(\"firehose:PutRecord\"),\n\t\t\t\t\t\tpulumi.String(\"firehose:PutRecordBatch\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\ts3Stream.Arn,\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, \"metricStreamToFirehoseRolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: metricStreamToFirehoseRole.ID(),\n\t\t\tPolicy: metricStreamToFirehosePolicyDocument.ApplyT(func(metricStreamToFirehosePolicyDocument iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026metricStreamToFirehosePolicyDocument.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 = 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\tfirehoseToS3PolicyDocument := 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(\"s3:AbortMultipartUpload\"),\n\t\t\t\t\t\tpulumi.String(\"s3:GetBucketLocation\"),\n\t\t\t\t\t\tpulumi.String(\"s3:GetObject\"),\n\t\t\t\t\t\tpulumi.String(\"s3:ListBucket\"),\n\t\t\t\t\t\tpulumi.String(\"s3:ListBucketMultipartUploads\"),\n\t\t\t\t\t\tpulumi.String(\"s3:PutObject\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tbucket.Arn,\n\t\t\t\t\t\tbucket.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},\n\t\t}, nil)\n\t\t_, err = iam.NewRolePolicy(ctx, \"firehoseToS3RolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: firehoseToS3Role.ID(),\n\t\t\tPolicy: firehoseToS3PolicyDocument.ApplyT(func(firehoseToS3PolicyDocument iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026firehoseToS3PolicyDocument.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\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.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.s3.BucketV2;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.cloudwatch.MetricStream;\nimport com.pulumi.aws.cloudwatch.MetricStreamArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricStreamIncludeFilterArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\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 streamsAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"streams.metrics.cloudwatch.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var metricStreamToFirehoseRole = new Role(\"metricStreamToFirehoseRole\", RoleArgs.builder() \n .assumeRolePolicy(streamsAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\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 firehoseToS3Role = new Role(\"firehoseToS3Role\", RoleArgs.builder() \n .assumeRolePolicy(firehoseAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var s3Stream = new FirehoseDeliveryStream(\"s3Stream\", FirehoseDeliveryStreamArgs.builder() \n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseToS3Role.arn())\n .bucketArn(bucket.arn())\n .build())\n .build());\n\n var main = new MetricStream(\"main\", MetricStreamArgs.builder() \n .roleArn(metricStreamToFirehoseRole.arn())\n .firehoseArn(s3Stream.arn())\n .outputFormat(\"json\")\n .includeFilters( \n MetricStreamIncludeFilterArgs.builder()\n .namespace(\"AWS/EC2\")\n .metricNames( \n \"CPUUtilization\",\n \"NetworkOut\")\n .build(),\n MetricStreamIncludeFilterArgs.builder()\n .namespace(\"AWS/EBS\")\n .metricNames()\n .build())\n .build());\n\n final var metricStreamToFirehosePolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions( \n \"firehose:PutRecord\",\n \"firehose:PutRecordBatch\")\n .resources(s3Stream.arn())\n .build())\n .build());\n\n var metricStreamToFirehoseRolePolicy = new RolePolicy(\"metricStreamToFirehoseRolePolicy\", RolePolicyArgs.builder() \n .role(metricStreamToFirehoseRole.id())\n .policy(metricStreamToFirehosePolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(metricStreamToFirehosePolicyDocument -\u003e metricStreamToFirehosePolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var bucketAcl = new BucketAclV2(\"bucketAcl\", BucketAclV2Args.builder() \n .bucket(bucket.id())\n .acl(\"private\")\n .build());\n\n final var firehoseToS3PolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions( \n \"s3:AbortMultipartUpload\",\n \"s3:GetBucketLocation\",\n \"s3:GetObject\",\n \"s3:ListBucket\",\n \"s3:ListBucketMultipartUploads\",\n \"s3:PutObject\")\n .resources( \n bucket.arn(),\n bucket.arn().applyValue(arn -\u003e String.format(\"%s/*\", arn)))\n .build())\n .build());\n\n var firehoseToS3RolePolicy = new RolePolicy(\"firehoseToS3RolePolicy\", RolePolicyArgs.builder() \n .role(firehoseToS3Role.id())\n .policy(firehoseToS3PolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(firehoseToS3PolicyDocument -\u003e firehoseToS3PolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: aws:cloudwatch:MetricStream\n properties:\n roleArn: ${metricStreamToFirehoseRole.arn}\n firehoseArn: ${s3Stream.arn}\n outputFormat: json\n includeFilters:\n - namespace: AWS/EC2\n metricNames:\n - CPUUtilization\n - NetworkOut\n - namespace: AWS/EBS\n metricNames: []\n metricStreamToFirehoseRole:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${streamsAssumeRole.json}\n metricStreamToFirehoseRolePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${metricStreamToFirehoseRole.id}\n policy: ${metricStreamToFirehosePolicyDocument.json}\n bucket:\n type: aws:s3:BucketV2\n bucketAcl:\n type: aws:s3:BucketAclV2\n properties:\n bucket: ${bucket.id}\n acl: private\n firehoseToS3Role:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${firehoseAssumeRole.json}\n firehoseToS3RolePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${firehoseToS3Role.id}\n policy: ${firehoseToS3PolicyDocument.json}\n s3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseToS3Role.arn}\n bucketArn: ${bucket.arn}\nvariables:\n streamsAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - streams.metrics.cloudwatch.amazonaws.com\n actions:\n - sts:AssumeRole\n metricStreamToFirehosePolicyDocument:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - firehose:PutRecord\n - firehose:PutRecordBatch\n resources:\n - ${s3Stream.arn}\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 firehoseToS3PolicyDocument:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - s3:AbortMultipartUpload\n - s3:GetBucketLocation\n - s3:GetObject\n - s3:ListBucket\n - s3:ListBucketMultipartUploads\n - s3:PutObject\n resources:\n - ${bucket.arn}\n - ${bucket.arn}/*\n```\n{{% /example %}}\n{{% example %}}\n### Additional Statistics\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.cloudwatch.MetricStream(\"main\", {\n roleArn: aws_iam_role.metric_stream_to_firehose.arn,\n firehoseArn: aws_kinesis_firehose_delivery_stream.s3_stream.arn,\n outputFormat: \"json\",\n statisticsConfigurations: [\n {\n additionalStatistics: [\n \"p1\",\n \"tm99\",\n ],\n includeMetrics: [{\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n }],\n },\n {\n additionalStatistics: [\"TS(50.5:)\"],\n includeMetrics: [{\n metricName: \"CPUUtilization\",\n namespace: \"AWS/EC2\",\n }],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.cloudwatch.MetricStream(\"main\",\n role_arn=aws_iam_role[\"metric_stream_to_firehose\"][\"arn\"],\n firehose_arn=aws_kinesis_firehose_delivery_stream[\"s3_stream\"][\"arn\"],\n output_format=\"json\",\n statistics_configurations=[\n aws.cloudwatch.MetricStreamStatisticsConfigurationArgs(\n additional_statistics=[\n \"p1\",\n \"tm99\",\n ],\n include_metrics=[aws.cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs(\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\n )],\n ),\n aws.cloudwatch.MetricStreamStatisticsConfigurationArgs(\n additional_statistics=[\"TS(50.5:)\"],\n include_metrics=[aws.cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs(\n metric_name=\"CPUUtilization\",\n namespace=\"AWS/EC2\",\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 main = new Aws.CloudWatch.MetricStream(\"main\", new()\n {\n RoleArn = aws_iam_role.Metric_stream_to_firehose.Arn,\n FirehoseArn = aws_kinesis_firehose_delivery_stream.S3_stream.Arn,\n OutputFormat = \"json\",\n StatisticsConfigurations = new[]\n {\n new Aws.CloudWatch.Inputs.MetricStreamStatisticsConfigurationArgs\n {\n AdditionalStatistics = new[]\n {\n \"p1\",\n \"tm99\",\n },\n IncludeMetrics = new[]\n {\n new Aws.CloudWatch.Inputs.MetricStreamStatisticsConfigurationIncludeMetricArgs\n {\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\n },\n },\n },\n new Aws.CloudWatch.Inputs.MetricStreamStatisticsConfigurationArgs\n {\n AdditionalStatistics = new[]\n {\n \"TS(50.5:)\",\n },\n IncludeMetrics = new[]\n {\n new Aws.CloudWatch.Inputs.MetricStreamStatisticsConfigurationIncludeMetricArgs\n {\n MetricName = \"CPUUtilization\",\n Namespace = \"AWS/EC2\",\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/cloudwatch\"\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 := cloudwatch.NewMetricStream(ctx, \"main\", \u0026cloudwatch.MetricStreamArgs{\n\t\t\tRoleArn: pulumi.Any(aws_iam_role.Metric_stream_to_firehose.Arn),\n\t\t\tFirehoseArn: pulumi.Any(aws_kinesis_firehose_delivery_stream.S3_stream.Arn),\n\t\t\tOutputFormat: pulumi.String(\"json\"),\n\t\t\tStatisticsConfigurations: cloudwatch.MetricStreamStatisticsConfigurationArray{\n\t\t\t\t\u0026cloudwatch.MetricStreamStatisticsConfigurationArgs{\n\t\t\t\t\tAdditionalStatistics: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"p1\"),\n\t\t\t\t\t\tpulumi.String(\"tm99\"),\n\t\t\t\t\t},\n\t\t\t\t\tIncludeMetrics: cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArray{\n\t\t\t\t\t\t\u0026cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs{\n\t\t\t\t\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026cloudwatch.MetricStreamStatisticsConfigurationArgs{\n\t\t\t\t\tAdditionalStatistics: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"TS(50.5:)\"),\n\t\t\t\t\t},\n\t\t\t\t\tIncludeMetrics: cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArray{\n\t\t\t\t\t\t\u0026cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs{\n\t\t\t\t\t\t\tMetricName: pulumi.String(\"CPUUtilization\"),\n\t\t\t\t\t\t\tNamespace: pulumi.String(\"AWS/EC2\"),\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.cloudwatch.MetricStream;\nimport com.pulumi.aws.cloudwatch.MetricStreamArgs;\nimport com.pulumi.aws.cloudwatch.inputs.MetricStreamStatisticsConfigurationArgs;\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 MetricStream(\"main\", MetricStreamArgs.builder() \n .roleArn(aws_iam_role.metric_stream_to_firehose().arn())\n .firehoseArn(aws_kinesis_firehose_delivery_stream.s3_stream().arn())\n .outputFormat(\"json\")\n .statisticsConfigurations( \n MetricStreamStatisticsConfigurationArgs.builder()\n .additionalStatistics( \n \"p1\",\n \"tm99\")\n .includeMetrics(MetricStreamStatisticsConfigurationIncludeMetricArgs.builder()\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .build())\n .build(),\n MetricStreamStatisticsConfigurationArgs.builder()\n .additionalStatistics(\"TS(50.5:)\")\n .includeMetrics(MetricStreamStatisticsConfigurationIncludeMetricArgs.builder()\n .metricName(\"CPUUtilization\")\n .namespace(\"AWS/EC2\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: aws:cloudwatch:MetricStream\n properties:\n roleArn: ${aws_iam_role.metric_stream_to_firehose.arn}\n firehoseArn: ${aws_kinesis_firehose_delivery_stream.s3_stream.arn}\n outputFormat: json\n statisticsConfigurations:\n - additionalStatistics:\n - p1\n - tm99\n includeMetrics:\n - metricName: CPUUtilization\n namespace: AWS/EC2\n - additionalStatistics:\n - TS(50.5:)\n includeMetrics:\n - metricName: CPUUtilization\n namespace: AWS/EC2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import CloudWatch metric streams using the `name`. For example:\n\n```sh\n $ pulumi import aws:cloudwatch/metricStream:MetricStream sample sample-stream-name\n```\n ", "properties": { "arn": { "type": "string", @@ -180217,7 +180230,7 @@ }, "encrypted": { "type": "boolean", - "description": "Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`.\n" + "description": "Whether the destination snapshots of the copied image should be encrypted. Defaults to `false`\n" }, "ephemeralBlockDevices": { "type": "array", @@ -180373,7 +180386,7 @@ }, "encrypted": { "type": "boolean", - "description": "Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`.\n", + "description": "Whether the destination snapshots of the copied image should be encrypted. Defaults to `false`\n", "willReplaceOnChanges": true }, "ephemeralBlockDevices": { @@ -180456,7 +180469,7 @@ }, "encrypted": { "type": "boolean", - "description": "Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`.\n", + "description": "Whether the destination snapshots of the copied image should be encrypted. Defaults to `false`\n", "willReplaceOnChanges": true }, "ephemeralBlockDevices": { @@ -189724,7 +189737,7 @@ }, "instanceInterruptionBehavior": { "type": "string", - "description": "The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`.\n" + "description": "Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`.\n" }, "instanceState": { "type": "string" @@ -189896,7 +189909,7 @@ }, "validUntil": { "type": "string", - "description": "The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests.\n" + "description": "The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.\n" }, "volumeTags": { "type": "object", @@ -190087,7 +190100,7 @@ }, "instanceInterruptionBehavior": { "type": "string", - "description": "The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`.\n", + "description": "Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`.\n", "willReplaceOnChanges": true }, "instanceType": { @@ -190240,7 +190253,7 @@ }, "validUntil": { "type": "string", - "description": "The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests.\n", + "description": "The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.\n", "willReplaceOnChanges": true }, "volumeTags": { @@ -190384,7 +190397,7 @@ }, "instanceInterruptionBehavior": { "type": "string", - "description": "The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`.\n", + "description": "Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`.\n", "willReplaceOnChanges": true }, "instanceState": { @@ -190582,7 +190595,7 @@ }, "validUntil": { "type": "string", - "description": "The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests.\n", + "description": "The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.\n", "willReplaceOnChanges": true }, "volumeTags": { @@ -202380,7 +202393,7 @@ } }, "aws:eks/fargateProfile:FargateProfile": { - "description": "Manages an EKS Fargate Profile.\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.eks.FargateProfile(\"example\", {\n clusterName: aws_eks_cluster.example.name,\n podExecutionRoleArn: aws_iam_role.example.arn,\n subnetIds: aws_subnet.example.map(__item =\u003e __item.id),\n selectors: [{\n namespace: \"example\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.eks.FargateProfile(\"example\",\n cluster_name=aws_eks_cluster[\"example\"][\"name\"],\n pod_execution_role_arn=aws_iam_role[\"example\"][\"arn\"],\n subnet_ids=[__item[\"id\"] for __item in aws_subnet[\"example\"]],\n selectors=[aws.eks.FargateProfileSelectorArgs(\n namespace=\"example\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Eks.FargateProfile(\"example\", new()\n {\n ClusterName = aws_eks_cluster.Example.Name,\n PodExecutionRoleArn = aws_iam_role.Example.Arn,\n SubnetIds = aws_subnet.Example.Select(__item =\u003e __item.Id).ToList(),\n Selectors = new[]\n {\n new Aws.Eks.Inputs.FargateProfileSelectorArgs\n {\n Namespace = \"example\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example {\n\t\t\tsplat0 = append(splat0, val0.Id)\n\t\t}\n\t\t_, err := eks.NewFargateProfile(ctx, \"example\", \u0026eks.FargateProfileArgs{\n\t\t\tClusterName: pulumi.Any(aws_eks_cluster.Example.Name),\n\t\t\tPodExecutionRoleArn: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tSubnetIds: toPulumiAnyArray(splat0),\n\t\t\tSelectors: eks.FargateProfileSelectorArray{\n\t\t\t\t\u0026eks.FargateProfileSelectorArgs{\n\t\t\t\t\tNamespace: pulumi.String(\"example\"),\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}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.eks.FargateProfile;\nimport com.pulumi.aws.eks.FargateProfileArgs;\nimport com.pulumi.aws.eks.inputs.FargateProfileSelectorArgs;\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 FargateProfile(\"example\", FargateProfileArgs.builder() \n .clusterName(aws_eks_cluster.example().name())\n .podExecutionRoleArn(aws_iam_role.example().arn())\n .subnetIds(aws_subnet.example().stream().map(element -\u003e element.id()).collect(toList()))\n .selectors(FargateProfileSelectorArgs.builder()\n .namespace(\"example\")\n .build())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Example IAM Role for EKS Fargate Profile\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.iam.Role(\"example\", {assumeRolePolicy: JSON.stringify({\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Principal: {\n Service: \"eks-fargate-pods.amazonaws.com\",\n },\n }],\n Version: \"2012-10-17\",\n})});\nconst example_AmazonEKSFargatePodExecutionRolePolicy = new aws.iam.RolePolicyAttachment(\"example-AmazonEKSFargatePodExecutionRolePolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\",\n role: example.name,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\", assume_role_policy=json.dumps({\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"eks-fargate-pods.amazonaws.com\",\n },\n }],\n \"Version\": \"2012-10-17\",\n}))\nexample__amazon_eks_fargate_pod_execution_role_policy = aws.iam.RolePolicyAttachment(\"example-AmazonEKSFargatePodExecutionRolePolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\",\n role=example.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"eks-fargate-pods.amazonaws.com\",\n },\n },\n },\n [\"Version\"] = \"2012-10-17\",\n }),\n });\n\n var example_AmazonEKSFargatePodExecutionRolePolicy = new Aws.Iam.RolePolicyAttachment(\"example-AmazonEKSFargatePodExecutionRolePolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\",\n Role = example.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"eks-fargate-pods.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example-AmazonEKSFargatePodExecutionRolePolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\"),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"eks-fargate-pods.amazonaws.com\")\n ))\n ))),\n jsonProperty(\"Version\", \"2012-10-17\")\n )))\n .build());\n\n var example_AmazonEKSFargatePodExecutionRolePolicy = new RolePolicyAttachment(\"example-AmazonEKSFargatePodExecutionRolePolicy\", RolePolicyAttachmentArgs.builder() \n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\")\n .role(example.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n fn::toJSON:\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Principal:\n Service: eks-fargate-pods.amazonaws.com\n Version: 2012-10-17\n example-AmazonEKSFargatePodExecutionRolePolicy:\n type: aws:iam:RolePolicyAttachment\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\n role: ${example.name}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import EKS Fargate Profiles using the `cluster_name` and `fargate_profile_name` separated by a colon (`:`). For example:\n\n```sh\n $ pulumi import aws:eks/fargateProfile:FargateProfile my_fargate_profile my_cluster:my_fargate_profile\n```\n ", + "description": "Manages an EKS Fargate Profile.\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.eks.FargateProfile(\"example\", {\n clusterName: aws_eks_cluster.example.name,\n podExecutionRoleArn: aws_iam_role.example.arn,\n subnetIds: aws_subnet.example.map(__item =\u003e __item.id),\n selectors: [{\n namespace: \"example\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.eks.FargateProfile(\"example\",\n cluster_name=aws_eks_cluster[\"example\"][\"name\"],\n pod_execution_role_arn=aws_iam_role[\"example\"][\"arn\"],\n subnet_ids=[__item[\"id\"] for __item in aws_subnet[\"example\"]],\n selectors=[aws.eks.FargateProfileSelectorArgs(\n namespace=\"example\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Eks.FargateProfile(\"example\", new()\n {\n ClusterName = aws_eks_cluster.Example.Name,\n PodExecutionRoleArn = aws_iam_role.Example.Arn,\n SubnetIds = aws_subnet.Example.Select(__item =\u003e __item.Id).ToList(),\n Selectors = new[]\n {\n new Aws.Eks.Inputs.FargateProfileSelectorArgs\n {\n Namespace = \"example\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := eks.NewFargateProfile(ctx, \"example\", \u0026eks.FargateProfileArgs{\nClusterName: pulumi.Any(aws_eks_cluster.Example.Name),\nPodExecutionRoleArn: pulumi.Any(aws_iam_role.Example.Arn),\nSubnetIds: toPulumiArray(splat0),\nSelectors: eks.FargateProfileSelectorArray{\n\u0026eks.FargateProfileSelectorArgs{\nNamespace: pulumi.String(\"example\"),\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.eks.FargateProfile;\nimport com.pulumi.aws.eks.FargateProfileArgs;\nimport com.pulumi.aws.eks.inputs.FargateProfileSelectorArgs;\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 FargateProfile(\"example\", FargateProfileArgs.builder() \n .clusterName(aws_eks_cluster.example().name())\n .podExecutionRoleArn(aws_iam_role.example().arn())\n .subnetIds(aws_subnet.example().stream().map(element -\u003e element.id()).collect(toList()))\n .selectors(FargateProfileSelectorArgs.builder()\n .namespace(\"example\")\n .build())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Example IAM Role for EKS Fargate Profile\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.iam.Role(\"example\", {assumeRolePolicy: JSON.stringify({\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Principal: {\n Service: \"eks-fargate-pods.amazonaws.com\",\n },\n }],\n Version: \"2012-10-17\",\n})});\nconst example_AmazonEKSFargatePodExecutionRolePolicy = new aws.iam.RolePolicyAttachment(\"example-AmazonEKSFargatePodExecutionRolePolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\",\n role: example.name,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\", assume_role_policy=json.dumps({\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"eks-fargate-pods.amazonaws.com\",\n },\n }],\n \"Version\": \"2012-10-17\",\n}))\nexample__amazon_eks_fargate_pod_execution_role_policy = aws.iam.RolePolicyAttachment(\"example-AmazonEKSFargatePodExecutionRolePolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\",\n role=example.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"eks-fargate-pods.amazonaws.com\",\n },\n },\n },\n [\"Version\"] = \"2012-10-17\",\n }),\n });\n\n var example_AmazonEKSFargatePodExecutionRolePolicy = new Aws.Iam.RolePolicyAttachment(\"example-AmazonEKSFargatePodExecutionRolePolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\",\n Role = example.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"eks-fargate-pods.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example-AmazonEKSFargatePodExecutionRolePolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\"),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"eks-fargate-pods.amazonaws.com\")\n ))\n ))),\n jsonProperty(\"Version\", \"2012-10-17\")\n )))\n .build());\n\n var example_AmazonEKSFargatePodExecutionRolePolicy = new RolePolicyAttachment(\"example-AmazonEKSFargatePodExecutionRolePolicy\", RolePolicyAttachmentArgs.builder() \n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\")\n .role(example.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n fn::toJSON:\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Principal:\n Service: eks-fargate-pods.amazonaws.com\n Version: 2012-10-17\n example-AmazonEKSFargatePodExecutionRolePolicy:\n type: aws:iam:RolePolicyAttachment\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy\n role: ${example.name}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import EKS Fargate Profiles using the `cluster_name` and `fargate_profile_name` separated by a colon (`:`). For example:\n\n```sh\n $ pulumi import aws:eks/fargateProfile:FargateProfile my_fargate_profile my_cluster:my_fargate_profile\n```\n ", "properties": { "arn": { "type": "string", @@ -202657,7 +202670,7 @@ } }, "aws:eks/nodeGroup:NodeGroup": { - "description": "Manages an EKS Node Group, which can provision and optionally update an Auto Scaling Group of Kubernetes worker nodes compatible with EKS. Additional documentation about this functionality can be found in the [EKS User Guide](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html).\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.eks.NodeGroup(\"example\", {\n clusterName: aws_eks_cluster.example.name,\n nodeRoleArn: aws_iam_role.example.arn,\n subnetIds: aws_subnet.example.map(__item =\u003e __item.id),\n scalingConfig: {\n desiredSize: 1,\n maxSize: 2,\n minSize: 1,\n },\n updateConfig: {\n maxUnavailable: 1,\n },\n}, {\n dependsOn: [\n aws_iam_role_policy_attachment[\"example-AmazonEKSWorkerNodePolicy\"],\n aws_iam_role_policy_attachment[\"example-AmazonEKS_CNI_Policy\"],\n aws_iam_role_policy_attachment[\"example-AmazonEC2ContainerRegistryReadOnly\"],\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.eks.NodeGroup(\"example\",\n cluster_name=aws_eks_cluster[\"example\"][\"name\"],\n node_role_arn=aws_iam_role[\"example\"][\"arn\"],\n subnet_ids=[__item[\"id\"] for __item in aws_subnet[\"example\"]],\n scaling_config=aws.eks.NodeGroupScalingConfigArgs(\n desired_size=1,\n max_size=2,\n min_size=1,\n ),\n update_config=aws.eks.NodeGroupUpdateConfigArgs(\n max_unavailable=1,\n ),\n opts=pulumi.ResourceOptions(depends_on=[\n aws_iam_role_policy_attachment[\"example-AmazonEKSWorkerNodePolicy\"],\n aws_iam_role_policy_attachment[\"example-AmazonEKS_CNI_Policy\"],\n aws_iam_role_policy_attachment[\"example-AmazonEC2ContainerRegistryReadOnly\"],\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.Eks.NodeGroup(\"example\", new()\n {\n ClusterName = aws_eks_cluster.Example.Name,\n NodeRoleArn = aws_iam_role.Example.Arn,\n SubnetIds = aws_subnet.Example.Select(__item =\u003e __item.Id).ToList(),\n ScalingConfig = new Aws.Eks.Inputs.NodeGroupScalingConfigArgs\n {\n DesiredSize = 1,\n MaxSize = 2,\n MinSize = 1,\n },\n UpdateConfig = new Aws.Eks.Inputs.NodeGroupUpdateConfigArgs\n {\n MaxUnavailable = 1,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n aws_iam_role_policy_attachment.Example_AmazonEKSWorkerNodePolicy,\n aws_iam_role_policy_attachment.Example_AmazonEKS_CNI_Policy,\n aws_iam_role_policy_attachment.Example_AmazonEC2ContainerRegistryReadOnly,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example {\n\t\t\tsplat0 = append(splat0, val0.Id)\n\t\t}\n\t\t_, err := eks.NewNodeGroup(ctx, \"example\", \u0026eks.NodeGroupArgs{\n\t\t\tClusterName: pulumi.Any(aws_eks_cluster.Example.Name),\n\t\t\tNodeRoleArn: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tSubnetIds: toPulumiAnyArray(splat0),\n\t\t\tScalingConfig: \u0026eks.NodeGroupScalingConfigArgs{\n\t\t\t\tDesiredSize: pulumi.Int(1),\n\t\t\t\tMaxSize: pulumi.Int(2),\n\t\t\t\tMinSize: pulumi.Int(1),\n\t\t\t},\n\t\t\tUpdateConfig: \u0026eks.NodeGroupUpdateConfigArgs{\n\t\t\t\tMaxUnavailable: pulumi.Int(1),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\taws_iam_role_policy_attachment.ExampleAmazonEKSWorkerNodePolicy,\n\t\t\taws_iam_role_policy_attachment.ExampleAmazonEKS_CNI_Policy,\n\t\t\taws_iam_role_policy_attachment.ExampleAmazonEC2ContainerRegistryReadOnly,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.eks.NodeGroup;\nimport com.pulumi.aws.eks.NodeGroupArgs;\nimport com.pulumi.aws.eks.inputs.NodeGroupScalingConfigArgs;\nimport com.pulumi.aws.eks.inputs.NodeGroupUpdateConfigArgs;\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 example = new NodeGroup(\"example\", NodeGroupArgs.builder() \n .clusterName(aws_eks_cluster.example().name())\n .nodeRoleArn(aws_iam_role.example().arn())\n .subnetIds(aws_subnet.example().stream().map(element -\u003e element.id()).collect(toList()))\n .scalingConfig(NodeGroupScalingConfigArgs.builder()\n .desiredSize(1)\n .maxSize(2)\n .minSize(1)\n .build())\n .updateConfig(NodeGroupUpdateConfigArgs.builder()\n .maxUnavailable(1)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n aws_iam_role_policy_attachment.example-AmazonEKSWorkerNodePolicy(),\n aws_iam_role_policy_attachment.example-AmazonEKS_CNI_Policy(),\n aws_iam_role_policy_attachment.example-AmazonEC2ContainerRegistryReadOnly())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Ignoring Changes to Desired Size\n\nYou can utilize [ignoreChanges](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) create an EKS Node Group with an initial size of running instances, then ignore any changes to that count caused externally (e.g. Application Autoscaling).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// ... other configurations ...\nconst example = new aws.eks.NodeGroup(\"example\", {scalingConfig: {\n desiredSize: 2,\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# ... other configurations ...\nexample = aws.eks.NodeGroup(\"example\", scaling_config=aws.eks.NodeGroupScalingConfigArgs(\n desired_size=2,\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 // ... other configurations ...\n var example = new Aws.Eks.NodeGroup(\"example\", new()\n {\n ScalingConfig = new Aws.Eks.Inputs.NodeGroupScalingConfigArgs\n {\n DesiredSize = 2,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\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 := eks.NewNodeGroup(ctx, \"example\", \u0026eks.NodeGroupArgs{\n\t\t\tScalingConfig: \u0026eks.NodeGroupScalingConfigArgs{\n\t\t\t\tDesiredSize: pulumi.Int(2),\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.eks.NodeGroup;\nimport com.pulumi.aws.eks.NodeGroupArgs;\nimport com.pulumi.aws.eks.inputs.NodeGroupScalingConfigArgs;\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 NodeGroup(\"example\", NodeGroupArgs.builder() \n .scalingConfig(NodeGroupScalingConfigArgs.builder()\n .desiredSize(2)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:eks:NodeGroup\n properties:\n scalingConfig:\n desiredSize: 2\n```\n{{% /example %}}\n{{% example %}}\n### Example IAM Role for EKS Node Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.iam.Role(\"example\", {assumeRolePolicy: JSON.stringify({\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Principal: {\n Service: \"ec2.amazonaws.com\",\n },\n }],\n Version: \"2012-10-17\",\n})});\nconst example_AmazonEKSWorkerNodePolicy = new aws.iam.RolePolicyAttachment(\"example-AmazonEKSWorkerNodePolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\",\n role: example.name,\n});\nconst example_AmazonEKSCNIPolicy = new aws.iam.RolePolicyAttachment(\"example-AmazonEKSCNIPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\",\n role: example.name,\n});\nconst example_AmazonEC2ContainerRegistryReadOnly = new aws.iam.RolePolicyAttachment(\"example-AmazonEC2ContainerRegistryReadOnly\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\",\n role: example.name,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\", assume_role_policy=json.dumps({\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"ec2.amazonaws.com\",\n },\n }],\n \"Version\": \"2012-10-17\",\n}))\nexample__amazon_eks_worker_node_policy = aws.iam.RolePolicyAttachment(\"example-AmazonEKSWorkerNodePolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\",\n role=example.name)\nexample__amazon_ekscni_policy = aws.iam.RolePolicyAttachment(\"example-AmazonEKSCNIPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\",\n role=example.name)\nexample__amazon_ec2_container_registry_read_only = aws.iam.RolePolicyAttachment(\"example-AmazonEC2ContainerRegistryReadOnly\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\",\n role=example.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n [\"Version\"] = \"2012-10-17\",\n }),\n });\n\n var example_AmazonEKSWorkerNodePolicy = new Aws.Iam.RolePolicyAttachment(\"example-AmazonEKSWorkerNodePolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\",\n Role = example.Name,\n });\n\n var example_AmazonEKSCNIPolicy = new Aws.Iam.RolePolicyAttachment(\"example-AmazonEKSCNIPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\",\n Role = example.Name,\n });\n\n var example_AmazonEC2ContainerRegistryReadOnly = new Aws.Iam.RolePolicyAttachment(\"example-AmazonEC2ContainerRegistryReadOnly\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\",\n Role = example.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"ec2.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example-AmazonEKSWorkerNodePolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\"),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example-AmazonEKSCNIPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\"),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example-AmazonEC2ContainerRegistryReadOnly\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\"),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"ec2.amazonaws.com\")\n ))\n ))),\n jsonProperty(\"Version\", \"2012-10-17\")\n )))\n .build());\n\n var example_AmazonEKSWorkerNodePolicy = new RolePolicyAttachment(\"example-AmazonEKSWorkerNodePolicy\", RolePolicyAttachmentArgs.builder() \n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\")\n .role(example.name())\n .build());\n\n var example_AmazonEKSCNIPolicy = new RolePolicyAttachment(\"example-AmazonEKSCNIPolicy\", RolePolicyAttachmentArgs.builder() \n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\")\n .role(example.name())\n .build());\n\n var example_AmazonEC2ContainerRegistryReadOnly = new RolePolicyAttachment(\"example-AmazonEC2ContainerRegistryReadOnly\", RolePolicyAttachmentArgs.builder() \n .policyArn(\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\")\n .role(example.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n fn::toJSON:\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Principal:\n Service: ec2.amazonaws.com\n Version: 2012-10-17\n example-AmazonEKSWorkerNodePolicy:\n type: aws:iam:RolePolicyAttachment\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\n role: ${example.name}\n example-AmazonEKSCNIPolicy:\n type: aws:iam:RolePolicyAttachment\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\n role: ${example.name}\n example-AmazonEC2ContainerRegistryReadOnly:\n type: aws:iam:RolePolicyAttachment\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\n role: ${example.name}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import EKS Node Groups using the `cluster_name` and `node_group_name` separated by a colon (`:`). For example:\n\n```sh\n $ pulumi import aws:eks/nodeGroup:NodeGroup my_node_group my_cluster:my_node_group\n```\n ", + "description": "Manages an EKS Node Group, which can provision and optionally update an Auto Scaling Group of Kubernetes worker nodes compatible with EKS. Additional documentation about this functionality can be found in the [EKS User Guide](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html).\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.eks.NodeGroup(\"example\", {\n clusterName: aws_eks_cluster.example.name,\n nodeRoleArn: aws_iam_role.example.arn,\n subnetIds: aws_subnet.example.map(__item =\u003e __item.id),\n scalingConfig: {\n desiredSize: 1,\n maxSize: 2,\n minSize: 1,\n },\n updateConfig: {\n maxUnavailable: 1,\n },\n}, {\n dependsOn: [\n aws_iam_role_policy_attachment[\"example-AmazonEKSWorkerNodePolicy\"],\n aws_iam_role_policy_attachment[\"example-AmazonEKS_CNI_Policy\"],\n aws_iam_role_policy_attachment[\"example-AmazonEC2ContainerRegistryReadOnly\"],\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.eks.NodeGroup(\"example\",\n cluster_name=aws_eks_cluster[\"example\"][\"name\"],\n node_role_arn=aws_iam_role[\"example\"][\"arn\"],\n subnet_ids=[__item[\"id\"] for __item in aws_subnet[\"example\"]],\n scaling_config=aws.eks.NodeGroupScalingConfigArgs(\n desired_size=1,\n max_size=2,\n min_size=1,\n ),\n update_config=aws.eks.NodeGroupUpdateConfigArgs(\n max_unavailable=1,\n ),\n opts=pulumi.ResourceOptions(depends_on=[\n aws_iam_role_policy_attachment[\"example-AmazonEKSWorkerNodePolicy\"],\n aws_iam_role_policy_attachment[\"example-AmazonEKS_CNI_Policy\"],\n aws_iam_role_policy_attachment[\"example-AmazonEC2ContainerRegistryReadOnly\"],\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.Eks.NodeGroup(\"example\", new()\n {\n ClusterName = aws_eks_cluster.Example.Name,\n NodeRoleArn = aws_iam_role.Example.Arn,\n SubnetIds = aws_subnet.Example.Select(__item =\u003e __item.Id).ToList(),\n ScalingConfig = new Aws.Eks.Inputs.NodeGroupScalingConfigArgs\n {\n DesiredSize = 1,\n MaxSize = 2,\n MinSize = 1,\n },\n UpdateConfig = new Aws.Eks.Inputs.NodeGroupUpdateConfigArgs\n {\n MaxUnavailable = 1,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n aws_iam_role_policy_attachment.Example_AmazonEKSWorkerNodePolicy,\n aws_iam_role_policy_attachment.Example_AmazonEKS_CNI_Policy,\n aws_iam_role_policy_attachment.Example_AmazonEC2ContainerRegistryReadOnly,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := eks.NewNodeGroup(ctx, \"example\", \u0026eks.NodeGroupArgs{\nClusterName: pulumi.Any(aws_eks_cluster.Example.Name),\nNodeRoleArn: pulumi.Any(aws_iam_role.Example.Arn),\nSubnetIds: toPulumiArray(splat0),\nScalingConfig: \u0026eks.NodeGroupScalingConfigArgs{\nDesiredSize: pulumi.Int(1),\nMaxSize: pulumi.Int(2),\nMinSize: pulumi.Int(1),\n},\nUpdateConfig: \u0026eks.NodeGroupUpdateConfigArgs{\nMaxUnavailable: pulumi.Int(1),\n},\n}, pulumi.DependsOn([]pulumi.Resource{\naws_iam_role_policy_attachment.ExampleAmazonEKSWorkerNodePolicy,\naws_iam_role_policy_attachment.ExampleAmazonEKS_CNI_Policy,\naws_iam_role_policy_attachment.ExampleAmazonEC2ContainerRegistryReadOnly,\n}))\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.eks.NodeGroup;\nimport com.pulumi.aws.eks.NodeGroupArgs;\nimport com.pulumi.aws.eks.inputs.NodeGroupScalingConfigArgs;\nimport com.pulumi.aws.eks.inputs.NodeGroupUpdateConfigArgs;\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 example = new NodeGroup(\"example\", NodeGroupArgs.builder() \n .clusterName(aws_eks_cluster.example().name())\n .nodeRoleArn(aws_iam_role.example().arn())\n .subnetIds(aws_subnet.example().stream().map(element -\u003e element.id()).collect(toList()))\n .scalingConfig(NodeGroupScalingConfigArgs.builder()\n .desiredSize(1)\n .maxSize(2)\n .minSize(1)\n .build())\n .updateConfig(NodeGroupUpdateConfigArgs.builder()\n .maxUnavailable(1)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n aws_iam_role_policy_attachment.example-AmazonEKSWorkerNodePolicy(),\n aws_iam_role_policy_attachment.example-AmazonEKS_CNI_Policy(),\n aws_iam_role_policy_attachment.example-AmazonEC2ContainerRegistryReadOnly())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Ignoring Changes to Desired Size\n\nYou can utilize [ignoreChanges](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) create an EKS Node Group with an initial size of running instances, then ignore any changes to that count caused externally (e.g. Application Autoscaling).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// ... other configurations ...\nconst example = new aws.eks.NodeGroup(\"example\", {scalingConfig: {\n desiredSize: 2,\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# ... other configurations ...\nexample = aws.eks.NodeGroup(\"example\", scaling_config=aws.eks.NodeGroupScalingConfigArgs(\n desired_size=2,\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 // ... other configurations ...\n var example = new Aws.Eks.NodeGroup(\"example\", new()\n {\n ScalingConfig = new Aws.Eks.Inputs.NodeGroupScalingConfigArgs\n {\n DesiredSize = 2,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\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 := eks.NewNodeGroup(ctx, \"example\", \u0026eks.NodeGroupArgs{\n\t\t\tScalingConfig: \u0026eks.NodeGroupScalingConfigArgs{\n\t\t\t\tDesiredSize: pulumi.Int(2),\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.eks.NodeGroup;\nimport com.pulumi.aws.eks.NodeGroupArgs;\nimport com.pulumi.aws.eks.inputs.NodeGroupScalingConfigArgs;\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 NodeGroup(\"example\", NodeGroupArgs.builder() \n .scalingConfig(NodeGroupScalingConfigArgs.builder()\n .desiredSize(2)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:eks:NodeGroup\n properties:\n scalingConfig:\n desiredSize: 2\n```\n{{% /example %}}\n{{% example %}}\n### Example IAM Role for EKS Node Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.iam.Role(\"example\", {assumeRolePolicy: JSON.stringify({\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Principal: {\n Service: \"ec2.amazonaws.com\",\n },\n }],\n Version: \"2012-10-17\",\n})});\nconst example_AmazonEKSWorkerNodePolicy = new aws.iam.RolePolicyAttachment(\"example-AmazonEKSWorkerNodePolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\",\n role: example.name,\n});\nconst example_AmazonEKSCNIPolicy = new aws.iam.RolePolicyAttachment(\"example-AmazonEKSCNIPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\",\n role: example.name,\n});\nconst example_AmazonEC2ContainerRegistryReadOnly = new aws.iam.RolePolicyAttachment(\"example-AmazonEC2ContainerRegistryReadOnly\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\",\n role: example.name,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\", assume_role_policy=json.dumps({\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"ec2.amazonaws.com\",\n },\n }],\n \"Version\": \"2012-10-17\",\n}))\nexample__amazon_eks_worker_node_policy = aws.iam.RolePolicyAttachment(\"example-AmazonEKSWorkerNodePolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\",\n role=example.name)\nexample__amazon_ekscni_policy = aws.iam.RolePolicyAttachment(\"example-AmazonEKSCNIPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\",\n role=example.name)\nexample__amazon_ec2_container_registry_read_only = aws.iam.RolePolicyAttachment(\"example-AmazonEC2ContainerRegistryReadOnly\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\",\n role=example.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n [\"Version\"] = \"2012-10-17\",\n }),\n });\n\n var example_AmazonEKSWorkerNodePolicy = new Aws.Iam.RolePolicyAttachment(\"example-AmazonEKSWorkerNodePolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\",\n Role = example.Name,\n });\n\n var example_AmazonEKSCNIPolicy = new Aws.Iam.RolePolicyAttachment(\"example-AmazonEKSCNIPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\",\n Role = example.Name,\n });\n\n var example_AmazonEC2ContainerRegistryReadOnly = new Aws.Iam.RolePolicyAttachment(\"example-AmazonEC2ContainerRegistryReadOnly\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\",\n Role = example.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"ec2.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example-AmazonEKSWorkerNodePolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\"),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example-AmazonEKSCNIPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\"),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example-AmazonEC2ContainerRegistryReadOnly\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\"),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"ec2.amazonaws.com\")\n ))\n ))),\n jsonProperty(\"Version\", \"2012-10-17\")\n )))\n .build());\n\n var example_AmazonEKSWorkerNodePolicy = new RolePolicyAttachment(\"example-AmazonEKSWorkerNodePolicy\", RolePolicyAttachmentArgs.builder() \n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\")\n .role(example.name())\n .build());\n\n var example_AmazonEKSCNIPolicy = new RolePolicyAttachment(\"example-AmazonEKSCNIPolicy\", RolePolicyAttachmentArgs.builder() \n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\")\n .role(example.name())\n .build());\n\n var example_AmazonEC2ContainerRegistryReadOnly = new RolePolicyAttachment(\"example-AmazonEC2ContainerRegistryReadOnly\", RolePolicyAttachmentArgs.builder() \n .policyArn(\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\")\n .role(example.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n fn::toJSON:\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Principal:\n Service: ec2.amazonaws.com\n Version: 2012-10-17\n example-AmazonEKSWorkerNodePolicy:\n type: aws:iam:RolePolicyAttachment\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy\n role: ${example.name}\n example-AmazonEKSCNIPolicy:\n type: aws:iam:RolePolicyAttachment\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy\n role: ${example.name}\n example-AmazonEC2ContainerRegistryReadOnly:\n type: aws:iam:RolePolicyAttachment\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly\n role: ${example.name}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import EKS Node Groups using the `cluster_name` and `node_group_name` separated by a colon (`:`). For example:\n\n```sh\n $ pulumi import aws:eks/nodeGroup:NodeGroup my_node_group my_cluster:my_node_group\n```\n ", "properties": { "amiType": { "type": "string", @@ -222760,7 +222773,7 @@ } }, "aws:iam/policyAttachment:PolicyAttachment": { - "description": "Attaches a Managed IAM Policy to user(s), role(s), and/or group(s)\n\n!\u003e **WARNING:** The aws.iam.PolicyAttachment resource creates **exclusive** attachments of IAM policies. Across the entire AWS account, all of the users/roles/groups to which a single policy is attached must be declared by a single aws.iam.PolicyAttachment resource. This means that even any users/roles/groups that have the attached policy via any other mechanism (including other resources managed by this provider) will have that attached policy revoked by this resource. Consider `aws.iam.RolePolicyAttachment`, `aws.iam.UserPolicyAttachment`, or `aws.iam.GroupPolicyAttachment` instead. These resources do not enforce exclusive attachment of an IAM policy.\n\n\u003e **NOTE:** The usage of this resource conflicts with the `aws.iam.GroupPolicyAttachment`, `aws.iam.RolePolicyAttachment`, and `aws.iam.UserPolicyAttachment` resources and will permanently show a difference if both are defined.\n\n\u003e **NOTE:** For a given role, this resource is incompatible with using the `aws.iam.Role` resource `managed_policy_arns` argument. When using that argument and this resource, both will attempt to manage the role's managed policy attachments and the provider will show a permanent difference.\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 user = new aws.iam.User(\"user\", {});\nconst assumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"ec2.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst role = new aws.iam.Role(\"role\", {assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json)});\nconst group = new aws.iam.Group(\"group\", {});\nconst policyPolicyDocument = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n actions: [\"ec2:Describe*\"],\n resources: [\"*\"],\n }],\n});\nconst policyPolicy = new aws.iam.Policy(\"policyPolicy\", {\n description: \"A test policy\",\n policy: policyPolicyDocument.then(policyPolicyDocument =\u003e policyPolicyDocument.json),\n});\nconst test_attach = new aws.iam.PolicyAttachment(\"test-attach\", {\n users: [user.name],\n roles: [role.name],\n groups: [group.name],\n policyArn: policyPolicy.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nuser = aws.iam.User(\"user\")\nassume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"ec2.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nrole = aws.iam.Role(\"role\", assume_role_policy=assume_role.json)\ngroup = aws.iam.Group(\"group\")\npolicy_policy_document = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\"ec2:Describe*\"],\n resources=[\"*\"],\n)])\npolicy_policy = aws.iam.Policy(\"policyPolicy\",\n description=\"A test policy\",\n policy=policy_policy_document.json)\ntest_attach = aws.iam.PolicyAttachment(\"test-attach\",\n users=[user.name],\n roles=[role.name],\n groups=[group.name],\n policy_arn=policy_policy.arn)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var user = new Aws.Iam.User(\"user\");\n\n var assumeRole = 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 \"ec2.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var role = new Aws.Iam.Role(\"role\", new()\n {\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var @group = new Aws.Iam.Group(\"group\");\n\n var policyPolicyDocument = 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 \"ec2:Describe*\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var policyPolicy = new Aws.Iam.Policy(\"policyPolicy\", new()\n {\n Description = \"A test policy\",\n PolicyDocument = policyPolicyDocument.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var test_attach = new Aws.Iam.PolicyAttachment(\"test-attach\", new()\n {\n Users = new[]\n {\n user.Name,\n },\n Roles = new[]\n {\n role.Name,\n },\n Groups = new[]\n {\n @group.Name,\n },\n PolicyArn = policyPolicy.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser, err := iam.NewUser(ctx, \"user\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tassumeRole, 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\"ec2.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\trole, err := iam.NewRole(ctx, \"role\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: *pulumi.String(assumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup, err := iam.NewGroup(ctx, \"group\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicyPolicyDocument, 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\tActions: []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\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}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicyPolicy, err := iam.NewPolicy(ctx, \"policyPolicy\", \u0026iam.PolicyArgs{\n\t\t\tDescription: pulumi.String(\"A test policy\"),\n\t\t\tPolicy: *pulumi.String(policyPolicyDocument.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicyAttachment(ctx, \"test-attach\", \u0026iam.PolicyAttachmentArgs{\n\t\t\tUsers: pulumi.AnyArray{\n\t\t\t\tuser.Name,\n\t\t\t},\n\t\t\tRoles: pulumi.AnyArray{\n\t\t\t\trole.Name,\n\t\t\t},\n\t\t\tGroups: pulumi.AnyArray{\n\t\t\t\tgroup.Name,\n\t\t\t},\n\t\t\tPolicyArn: policyPolicy.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.User;\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.iam.Group;\nimport com.pulumi.aws.iam.Policy;\nimport com.pulumi.aws.iam.PolicyArgs;\nimport com.pulumi.aws.iam.PolicyAttachment;\nimport com.pulumi.aws.iam.PolicyAttachmentArgs;\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 user = new User(\"user\");\n\n final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"ec2.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var role = new Role(\"role\", RoleArgs.builder() \n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var group = new Group(\"group\");\n\n final var policyPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions(\"ec2:Describe*\")\n .resources(\"*\")\n .build())\n .build());\n\n var policyPolicy = new Policy(\"policyPolicy\", PolicyArgs.builder() \n .description(\"A test policy\")\n .policy(policyPolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var test_attach = new PolicyAttachment(\"test-attach\", PolicyAttachmentArgs.builder() \n .users(user.name())\n .roles(role.name())\n .groups(group.name())\n .policyArn(policyPolicy.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n user:\n type: aws:iam:User\n role:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${assumeRole.json}\n group:\n type: aws:iam:Group\n policyPolicy:\n type: aws:iam:Policy\n properties:\n description: A test policy\n policy: ${policyPolicyDocument.json}\n test-attach:\n type: aws:iam:PolicyAttachment\n properties:\n users:\n - ${user.name}\n roles:\n - ${role.name}\n groups:\n - ${group.name}\n policyArn: ${policyPolicy.arn}\nvariables:\n assumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - ec2.amazonaws.com\n actions:\n - sts:AssumeRole\n policyPolicyDocument:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - ec2:Describe*\n resources:\n - '*'\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "Attaches a Managed IAM Policy to user(s), role(s), and/or group(s)\n\n!\u003e **WARNING:** The aws.iam.PolicyAttachment resource creates **exclusive** attachments of IAM policies. Across the entire AWS account, all of the users/roles/groups to which a single policy is attached must be declared by a single aws.iam.PolicyAttachment resource. This means that even any users/roles/groups that have the attached policy via any other mechanism (including other resources managed by this provider) will have that attached policy revoked by this resource. Consider `aws.iam.RolePolicyAttachment`, `aws.iam.UserPolicyAttachment`, or `aws.iam.GroupPolicyAttachment` instead. These resources do not enforce exclusive attachment of an IAM policy.\n\n\u003e **NOTE:** The usage of this resource conflicts with the `aws.iam.GroupPolicyAttachment`, `aws.iam.RolePolicyAttachment`, and `aws.iam.UserPolicyAttachment` resources and will permanently show a difference if both are defined.\n\n\u003e **NOTE:** For a given role, this resource is incompatible with using the `aws.iam.Role` resource `managed_policy_arns` argument. When using that argument and this resource, both will attempt to manage the role's managed policy attachments and the provider will show a permanent difference.\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 user = new aws.iam.User(\"user\", {});\nconst assumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"ec2.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst role = new aws.iam.Role(\"role\", {assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json)});\nconst group = new aws.iam.Group(\"group\", {});\nconst policyPolicyDocument = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n actions: [\"ec2:Describe*\"],\n resources: [\"*\"],\n }],\n});\nconst policyPolicy = new aws.iam.Policy(\"policyPolicy\", {\n description: \"A test policy\",\n policy: policyPolicyDocument.then(policyPolicyDocument =\u003e policyPolicyDocument.json),\n});\nconst test_attach = new aws.iam.PolicyAttachment(\"test-attach\", {\n users: [user.name],\n roles: [role.name],\n groups: [group.name],\n policyArn: policyPolicy.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nuser = aws.iam.User(\"user\")\nassume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"ec2.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nrole = aws.iam.Role(\"role\", assume_role_policy=assume_role.json)\ngroup = aws.iam.Group(\"group\")\npolicy_policy_document = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n actions=[\"ec2:Describe*\"],\n resources=[\"*\"],\n)])\npolicy_policy = aws.iam.Policy(\"policyPolicy\",\n description=\"A test policy\",\n policy=policy_policy_document.json)\ntest_attach = aws.iam.PolicyAttachment(\"test-attach\",\n users=[user.name],\n roles=[role.name],\n groups=[group.name],\n policy_arn=policy_policy.arn)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var user = new Aws.Iam.User(\"user\");\n\n var assumeRole = 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 \"ec2.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var role = new Aws.Iam.Role(\"role\", new()\n {\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var @group = new Aws.Iam.Group(\"group\");\n\n var policyPolicyDocument = 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 \"ec2:Describe*\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var policyPolicy = new Aws.Iam.Policy(\"policyPolicy\", new()\n {\n Description = \"A test policy\",\n PolicyDocument = policyPolicyDocument.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var test_attach = new Aws.Iam.PolicyAttachment(\"test-attach\", new()\n {\n Users = new[]\n {\n user.Name,\n },\n Roles = new[]\n {\n role.Name,\n },\n Groups = new[]\n {\n @group.Name,\n },\n PolicyArn = policyPolicy.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser, err := iam.NewUser(ctx, \"user\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tassumeRole, 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\"ec2.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\trole, err := iam.NewRole(ctx, \"role\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: *pulumi.String(assumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup, err := iam.NewGroup(ctx, \"group\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicyPolicyDocument, 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\tActions: []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\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}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicyPolicy, err := iam.NewPolicy(ctx, \"policyPolicy\", \u0026iam.PolicyArgs{\n\t\t\tDescription: pulumi.String(\"A test policy\"),\n\t\t\tPolicy: *pulumi.String(policyPolicyDocument.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicyAttachment(ctx, \"test-attach\", \u0026iam.PolicyAttachmentArgs{\n\t\t\tUsers: pulumi.Array{\n\t\t\t\tuser.Name,\n\t\t\t},\n\t\t\tRoles: pulumi.Array{\n\t\t\t\trole.Name,\n\t\t\t},\n\t\t\tGroups: pulumi.Array{\n\t\t\t\tgroup.Name,\n\t\t\t},\n\t\t\tPolicyArn: policyPolicy.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.User;\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.iam.Group;\nimport com.pulumi.aws.iam.Policy;\nimport com.pulumi.aws.iam.PolicyArgs;\nimport com.pulumi.aws.iam.PolicyAttachment;\nimport com.pulumi.aws.iam.PolicyAttachmentArgs;\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 user = new User(\"user\");\n\n final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"ec2.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var role = new Role(\"role\", RoleArgs.builder() \n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var group = new Group(\"group\");\n\n final var policyPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions(\"ec2:Describe*\")\n .resources(\"*\")\n .build())\n .build());\n\n var policyPolicy = new Policy(\"policyPolicy\", PolicyArgs.builder() \n .description(\"A test policy\")\n .policy(policyPolicyDocument.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var test_attach = new PolicyAttachment(\"test-attach\", PolicyAttachmentArgs.builder() \n .users(user.name())\n .roles(role.name())\n .groups(group.name())\n .policyArn(policyPolicy.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n user:\n type: aws:iam:User\n role:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${assumeRole.json}\n group:\n type: aws:iam:Group\n policyPolicy:\n type: aws:iam:Policy\n properties:\n description: A test policy\n policy: ${policyPolicyDocument.json}\n test-attach:\n type: aws:iam:PolicyAttachment\n properties:\n users:\n - ${user.name}\n roles:\n - ${role.name}\n groups:\n - ${group.name}\n policyArn: ${policyPolicy.arn}\nvariables:\n assumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - ec2.amazonaws.com\n actions:\n - sts:AssumeRole\n policyPolicyDocument:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - ec2:Describe*\n resources:\n - '*'\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "groups": { "type": "array", @@ -239270,7 +239283,7 @@ } }, "aws:lightsail/containerServiceDeploymentVersion:ContainerServiceDeploymentVersion": { - "description": "Provides a resource to manage a deployment version for your Amazon Lightsail container service.\n\n\u003e **NOTE:** The Amazon Lightsail container service must be enabled to create a deployment.\n\n\u003e **NOTE:** This resource allows you to manage an Amazon Lightsail container service deployment version but the provider cannot destroy it. Removing this resource from your configuration will remove it from your statefile.\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.lightsail.ContainerServiceDeploymentVersion(\"example\", {\n containers: [{\n containerName: \"hello-world\",\n image: \"amazon/amazon-lightsail:hello-world\",\n commands: [],\n environment: {\n MY_ENVIRONMENT_VARIABLE: \"my_value\",\n },\n ports: {\n \"80\": \"HTTP\",\n },\n }],\n publicEndpoint: {\n containerName: \"hello-world\",\n containerPort: 80,\n healthCheck: {\n healthyThreshold: 2,\n unhealthyThreshold: 2,\n timeoutSeconds: 2,\n intervalSeconds: 5,\n path: \"/\",\n successCodes: \"200-499\",\n },\n },\n serviceName: aws_lightsail_container_service.example.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lightsail.ContainerServiceDeploymentVersion(\"example\",\n containers=[aws.lightsail.ContainerServiceDeploymentVersionContainerArgs(\n container_name=\"hello-world\",\n image=\"amazon/amazon-lightsail:hello-world\",\n commands=[],\n environment={\n \"MY_ENVIRONMENT_VARIABLE\": \"my_value\",\n },\n ports={\n \"80\": \"HTTP\",\n },\n )],\n public_endpoint=aws.lightsail.ContainerServiceDeploymentVersionPublicEndpointArgs(\n container_name=\"hello-world\",\n container_port=80,\n health_check=aws.lightsail.ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs(\n healthy_threshold=2,\n unhealthy_threshold=2,\n timeout_seconds=2,\n interval_seconds=5,\n path=\"/\",\n success_codes=\"200-499\",\n ),\n ),\n service_name=aws_lightsail_container_service[\"example\"][\"name\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LightSail.ContainerServiceDeploymentVersion(\"example\", new()\n {\n Containers = new[]\n {\n new Aws.LightSail.Inputs.ContainerServiceDeploymentVersionContainerArgs\n {\n ContainerName = \"hello-world\",\n Image = \"amazon/amazon-lightsail:hello-world\",\n Commands = new[] {},\n Environment = \n {\n { \"MY_ENVIRONMENT_VARIABLE\", \"my_value\" },\n },\n Ports = \n {\n { \"80\", \"HTTP\" },\n },\n },\n },\n PublicEndpoint = new Aws.LightSail.Inputs.ContainerServiceDeploymentVersionPublicEndpointArgs\n {\n ContainerName = \"hello-world\",\n ContainerPort = 80,\n HealthCheck = new Aws.LightSail.Inputs.ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs\n {\n HealthyThreshold = 2,\n UnhealthyThreshold = 2,\n TimeoutSeconds = 2,\n IntervalSeconds = 5,\n Path = \"/\",\n SuccessCodes = \"200-499\",\n },\n },\n ServiceName = aws_lightsail_container_service.Example.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail\"\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 := lightsail.NewContainerServiceDeploymentVersion(ctx, \"example\", \u0026lightsail.ContainerServiceDeploymentVersionArgs{\n\t\t\tContainers: lightsail.ContainerServiceDeploymentVersionContainerArray{\n\t\t\t\t\u0026lightsail.ContainerServiceDeploymentVersionContainerArgs{\n\t\t\t\t\tContainerName: pulumi.String(\"hello-world\"),\n\t\t\t\t\tImage: pulumi.String(\"amazon/amazon-lightsail:hello-world\"),\n\t\t\t\t\tCommands: pulumi.StringArray{},\n\t\t\t\t\tEnvironment: pulumi.StringMap{\n\t\t\t\t\t\t\"MY_ENVIRONMENT_VARIABLE\": pulumi.String(\"my_value\"),\n\t\t\t\t\t},\n\t\t\t\t\tPorts: pulumi.StringMap{\n\t\t\t\t\t\t\"80\": pulumi.String(\"HTTP\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPublicEndpoint: \u0026lightsail.ContainerServiceDeploymentVersionPublicEndpointArgs{\n\t\t\t\tContainerName: pulumi.String(\"hello-world\"),\n\t\t\t\tContainerPort: pulumi.Int(80),\n\t\t\t\tHealthCheck: \u0026lightsail.ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs{\n\t\t\t\t\tHealthyThreshold: pulumi.Int(2),\n\t\t\t\t\tUnhealthyThreshold: pulumi.Int(2),\n\t\t\t\t\tTimeoutSeconds: pulumi.Int(2),\n\t\t\t\t\tIntervalSeconds: pulumi.Int(5),\n\t\t\t\t\tPath: pulumi.String(\"/\"),\n\t\t\t\t\tSuccessCodes: pulumi.String(\"200-499\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceName: pulumi.Any(aws_lightsail_container_service.Example.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.ContainerServiceDeploymentVersion;\nimport com.pulumi.aws.lightsail.ContainerServiceDeploymentVersionArgs;\nimport com.pulumi.aws.lightsail.inputs.ContainerServiceDeploymentVersionContainerArgs;\nimport com.pulumi.aws.lightsail.inputs.ContainerServiceDeploymentVersionPublicEndpointArgs;\nimport com.pulumi.aws.lightsail.inputs.ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs;\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 ContainerServiceDeploymentVersion(\"example\", ContainerServiceDeploymentVersionArgs.builder() \n .containers(ContainerServiceDeploymentVersionContainerArgs.builder()\n .containerName(\"hello-world\")\n .image(\"amazon/amazon-lightsail:hello-world\")\n .commands()\n .environment(Map.of(\"MY_ENVIRONMENT_VARIABLE\", \"my_value\"))\n .ports(Map.of(\"80\", \"HTTP\"))\n .build())\n .publicEndpoint(ContainerServiceDeploymentVersionPublicEndpointArgs.builder()\n .containerName(\"hello-world\")\n .containerPort(80)\n .healthCheck(ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs.builder()\n .healthyThreshold(2)\n .unhealthyThreshold(2)\n .timeoutSeconds(2)\n .intervalSeconds(5)\n .path(\"/\")\n .successCodes(\"200-499\")\n .build())\n .build())\n .serviceName(aws_lightsail_container_service.example().name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lightsail:ContainerServiceDeploymentVersion\n properties:\n containers:\n - containerName: hello-world\n image: amazon/amazon-lightsail:hello-world\n commands: []\n environment:\n MY_ENVIRONMENT_VARIABLE: my_value\n ports:\n '80': HTTP\n publicEndpoint:\n containerName: hello-world\n containerPort: 80\n healthCheck:\n healthyThreshold: 2\n unhealthyThreshold: 2\n timeoutSeconds: 2\n intervalSeconds: 5\n path: /\n successCodes: 200-499\n serviceName: ${aws_lightsail_container_service.example.name}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import Lightsail Container Service Deployment Version using the `service_name` and `version` separated by a slash (`/`). For example:\n\n```sh\n $ pulumi import aws:lightsail/containerServiceDeploymentVersion:ContainerServiceDeploymentVersion example container-service-1/1\n```\n ", + "description": "Provides a resource to manage a deployment version for your Amazon Lightsail container service.\n\n\u003e **NOTE:** The Amazon Lightsail container service must be enabled to create a deployment.\n\n\u003e **NOTE:** This resource allows you to manage an Amazon Lightsail container service deployment version but the provider cannot destroy it. Removing this resource from your configuration will remove it from your statefile.\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.lightsail.ContainerServiceDeploymentVersion(\"example\", {\n containers: [{\n containerName: \"hello-world\",\n image: \"amazon/amazon-lightsail:hello-world\",\n commands: [],\n environment: {\n MY_ENVIRONMENT_VARIABLE: \"my_value\",\n },\n ports: {\n \"80\": \"HTTP\",\n },\n }],\n publicEndpoint: {\n containerName: \"hello-world\",\n containerPort: 80,\n healthCheck: {\n healthyThreshold: 2,\n unhealthyThreshold: 2,\n timeoutSeconds: 2,\n intervalSeconds: 5,\n path: \"/\",\n successCodes: \"200-499\",\n },\n },\n serviceName: aws_lightsail_container_service.example.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lightsail.ContainerServiceDeploymentVersion(\"example\",\n containers=[aws.lightsail.ContainerServiceDeploymentVersionContainerArgs(\n container_name=\"hello-world\",\n image=\"amazon/amazon-lightsail:hello-world\",\n commands=[],\n environment={\n \"MY_ENVIRONMENT_VARIABLE\": \"my_value\",\n },\n ports={\n \"80\": \"HTTP\",\n },\n )],\n public_endpoint=aws.lightsail.ContainerServiceDeploymentVersionPublicEndpointArgs(\n container_name=\"hello-world\",\n container_port=80,\n health_check=aws.lightsail.ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs(\n healthy_threshold=2,\n unhealthy_threshold=2,\n timeout_seconds=2,\n interval_seconds=5,\n path=\"/\",\n success_codes=\"200-499\",\n ),\n ),\n service_name=aws_lightsail_container_service[\"example\"][\"name\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LightSail.ContainerServiceDeploymentVersion(\"example\", new()\n {\n Containers = new[]\n {\n new Aws.LightSail.Inputs.ContainerServiceDeploymentVersionContainerArgs\n {\n ContainerName = \"hello-world\",\n Image = \"amazon/amazon-lightsail:hello-world\",\n Commands = new() { },\n Environment = \n {\n { \"MY_ENVIRONMENT_VARIABLE\", \"my_value\" },\n },\n Ports = \n {\n { \"80\", \"HTTP\" },\n },\n },\n },\n PublicEndpoint = new Aws.LightSail.Inputs.ContainerServiceDeploymentVersionPublicEndpointArgs\n {\n ContainerName = \"hello-world\",\n ContainerPort = 80,\n HealthCheck = new Aws.LightSail.Inputs.ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs\n {\n HealthyThreshold = 2,\n UnhealthyThreshold = 2,\n TimeoutSeconds = 2,\n IntervalSeconds = 5,\n Path = \"/\",\n SuccessCodes = \"200-499\",\n },\n },\n ServiceName = aws_lightsail_container_service.Example.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail\"\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 := lightsail.NewContainerServiceDeploymentVersion(ctx, \"example\", \u0026lightsail.ContainerServiceDeploymentVersionArgs{\n\t\t\tContainers: lightsail.ContainerServiceDeploymentVersionContainerArray{\n\t\t\t\t\u0026lightsail.ContainerServiceDeploymentVersionContainerArgs{\n\t\t\t\t\tContainerName: pulumi.String(\"hello-world\"),\n\t\t\t\t\tImage: pulumi.String(\"amazon/amazon-lightsail:hello-world\"),\n\t\t\t\t\tCommands: pulumi.StringArray{},\n\t\t\t\t\tEnvironment: pulumi.StringMap{\n\t\t\t\t\t\t\"MY_ENVIRONMENT_VARIABLE\": pulumi.String(\"my_value\"),\n\t\t\t\t\t},\n\t\t\t\t\tPorts: pulumi.StringMap{\n\t\t\t\t\t\t\"80\": pulumi.String(\"HTTP\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPublicEndpoint: \u0026lightsail.ContainerServiceDeploymentVersionPublicEndpointArgs{\n\t\t\t\tContainerName: pulumi.String(\"hello-world\"),\n\t\t\t\tContainerPort: pulumi.Int(80),\n\t\t\t\tHealthCheck: \u0026lightsail.ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs{\n\t\t\t\t\tHealthyThreshold: pulumi.Int(2),\n\t\t\t\t\tUnhealthyThreshold: pulumi.Int(2),\n\t\t\t\t\tTimeoutSeconds: pulumi.Int(2),\n\t\t\t\t\tIntervalSeconds: pulumi.Int(5),\n\t\t\t\t\tPath: pulumi.String(\"/\"),\n\t\t\t\t\tSuccessCodes: pulumi.String(\"200-499\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceName: pulumi.Any(aws_lightsail_container_service.Example.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.ContainerServiceDeploymentVersion;\nimport com.pulumi.aws.lightsail.ContainerServiceDeploymentVersionArgs;\nimport com.pulumi.aws.lightsail.inputs.ContainerServiceDeploymentVersionContainerArgs;\nimport com.pulumi.aws.lightsail.inputs.ContainerServiceDeploymentVersionPublicEndpointArgs;\nimport com.pulumi.aws.lightsail.inputs.ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs;\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 ContainerServiceDeploymentVersion(\"example\", ContainerServiceDeploymentVersionArgs.builder() \n .containers(ContainerServiceDeploymentVersionContainerArgs.builder()\n .containerName(\"hello-world\")\n .image(\"amazon/amazon-lightsail:hello-world\")\n .commands()\n .environment(Map.of(\"MY_ENVIRONMENT_VARIABLE\", \"my_value\"))\n .ports(Map.of(\"80\", \"HTTP\"))\n .build())\n .publicEndpoint(ContainerServiceDeploymentVersionPublicEndpointArgs.builder()\n .containerName(\"hello-world\")\n .containerPort(80)\n .healthCheck(ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs.builder()\n .healthyThreshold(2)\n .unhealthyThreshold(2)\n .timeoutSeconds(2)\n .intervalSeconds(5)\n .path(\"/\")\n .successCodes(\"200-499\")\n .build())\n .build())\n .serviceName(aws_lightsail_container_service.example().name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lightsail:ContainerServiceDeploymentVersion\n properties:\n containers:\n - containerName: hello-world\n image: amazon/amazon-lightsail:hello-world\n commands: []\n environment:\n MY_ENVIRONMENT_VARIABLE: my_value\n ports:\n '80': HTTP\n publicEndpoint:\n containerName: hello-world\n containerPort: 80\n healthCheck:\n healthyThreshold: 2\n unhealthyThreshold: 2\n timeoutSeconds: 2\n intervalSeconds: 5\n path: /\n successCodes: 200-499\n serviceName: ${aws_lightsail_container_service.example.name}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import Lightsail Container Service Deployment Version using the `service_name` and `version` separated by a slash (`/`). For example:\n\n```sh\n $ pulumi import aws:lightsail/containerServiceDeploymentVersion:ContainerServiceDeploymentVersion example container-service-1/1\n```\n ", "properties": { "containers": { "type": "array", @@ -246567,7 +246580,7 @@ } }, "aws:msk/vpcConnection:VpcConnection": { - "description": "Resource for managing an AWS Managed Streaming for Kafka VPC Connection.\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.msk.VpcConnection(\"test\", {\n authentication: \"SASL_IAM\",\n targetClusterArn: \"aws_msk_cluster.arn\",\n vpcId: aws_vpc.test.id,\n clientSubnets: aws_subnet.test.map(__item =\u003e __item.id),\n securityGroups: [aws_security_group.test.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.msk.VpcConnection(\"test\",\n authentication=\"SASL_IAM\",\n target_cluster_arn=\"aws_msk_cluster.arn\",\n vpc_id=aws_vpc[\"test\"][\"id\"],\n client_subnets=[__item[\"id\"] for __item in aws_subnet[\"test\"]],\n security_groups=[aws_security_group[\"test\"][\"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 test = new Aws.Msk.VpcConnection(\"test\", new()\n {\n Authentication = \"SASL_IAM\",\n TargetClusterArn = \"aws_msk_cluster.arn\",\n VpcId = aws_vpc.Test.Id,\n ClientSubnets = aws_subnet.Test.Select(__item =\u003e __item.Id).ToList(),\n SecurityGroups = new[]\n {\n aws_security_group.Test.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/msk\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Test {\n\t\t\tsplat0 = append(splat0, val0.Id)\n\t\t}\n\t\t_, err := msk.NewVpcConnection(ctx, \"test\", \u0026msk.VpcConnectionArgs{\n\t\t\tAuthentication: pulumi.String(\"SASL_IAM\"),\n\t\t\tTargetClusterArn: pulumi.String(\"aws_msk_cluster.arn\"),\n\t\t\tVpcId: pulumi.Any(aws_vpc.Test.Id),\n\t\t\tClientSubnets: toPulumiAnyArray(splat0),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\taws_security_group.Test.Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.msk.VpcConnection;\nimport com.pulumi.aws.msk.VpcConnectionArgs;\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 VpcConnection(\"test\", VpcConnectionArgs.builder() \n .authentication(\"SASL_IAM\")\n .targetClusterArn(\"aws_msk_cluster.arn\")\n .vpcId(aws_vpc.test().id())\n .clientSubnets(aws_subnet.test().stream().map(element -\u003e element.id()).collect(toList()))\n .securityGroups(aws_security_group.test().id())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import MSK configurations using the configuration ARN. For example:\n\n```sh\n $ pulumi import aws:msk/vpcConnection:VpcConnection example arn:aws:kafka:eu-west-2:123456789012:vpc-connection/123456789012/example/38173259-79cd-4ee8-87f3-682ea6023f48-2\n```\n ", + "description": "Resource for managing an AWS Managed Streaming for Kafka VPC Connection.\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.msk.VpcConnection(\"test\", {\n authentication: \"SASL_IAM\",\n targetClusterArn: \"aws_msk_cluster.arn\",\n vpcId: aws_vpc.test.id,\n clientSubnets: aws_subnet.test.map(__item =\u003e __item.id),\n securityGroups: [aws_security_group.test.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.msk.VpcConnection(\"test\",\n authentication=\"SASL_IAM\",\n target_cluster_arn=\"aws_msk_cluster.arn\",\n vpc_id=aws_vpc[\"test\"][\"id\"],\n client_subnets=[__item[\"id\"] for __item in aws_subnet[\"test\"]],\n security_groups=[aws_security_group[\"test\"][\"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 test = new Aws.Msk.VpcConnection(\"test\", new()\n {\n Authentication = \"SASL_IAM\",\n TargetClusterArn = \"aws_msk_cluster.arn\",\n VpcId = aws_vpc.Test.Id,\n ClientSubnets = aws_subnet.Test.Select(__item =\u003e __item.Id).ToList(),\n SecurityGroups = new[]\n {\n aws_security_group.Test.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/msk\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Test {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := msk.NewVpcConnection(ctx, \"test\", \u0026msk.VpcConnectionArgs{\nAuthentication: pulumi.String(\"SASL_IAM\"),\nTargetClusterArn: pulumi.String(\"aws_msk_cluster.arn\"),\nVpcId: pulumi.Any(aws_vpc.Test.Id),\nClientSubnets: toPulumiArray(splat0),\nSecurityGroups: pulumi.StringArray{\naws_security_group.Test.Id,\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.msk.VpcConnection;\nimport com.pulumi.aws.msk.VpcConnectionArgs;\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 VpcConnection(\"test\", VpcConnectionArgs.builder() \n .authentication(\"SASL_IAM\")\n .targetClusterArn(\"aws_msk_cluster.arn\")\n .vpcId(aws_vpc.test().id())\n .clientSubnets(aws_subnet.test().stream().map(element -\u003e element.id()).collect(toList()))\n .securityGroups(aws_security_group.test().id())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import MSK configurations using the configuration ARN. For example:\n\n```sh\n $ pulumi import aws:msk/vpcConnection:VpcConnection example arn:aws:kafka:eu-west-2:123456789012:vpc-connection/123456789012/example/38173259-79cd-4ee8-87f3-682ea6023f48-2\n```\n ", "properties": { "arn": { "type": "string", @@ -250818,7 +250831,7 @@ } }, "aws:networkmanager/coreNetwork:CoreNetwork": { - "description": "Provides a core network resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkmanager.CoreNetwork(\"example\", {globalNetworkId: aws_networkmanager_global_network.example.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkmanager.CoreNetwork(\"example\", global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkManager.CoreNetwork(\"example\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\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 := networkmanager.NewCoreNetwork(ctx, \"example\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.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.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\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 CoreNetwork(\"example\", CoreNetworkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkmanager:CoreNetwork\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n```\n{{% /example %}}\n{{% example %}}\n### With description\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkmanager.CoreNetwork(\"example\", {\n globalNetworkId: aws_networkmanager_global_network.example.id,\n description: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkmanager.CoreNetwork(\"example\",\n global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"],\n description=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkManager.CoreNetwork(\"example\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n Description = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\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 := networkmanager.NewCoreNetwork(ctx, \"example\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.Id),\n\t\t\tDescription: pulumi.String(\"example\"),\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.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\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 CoreNetwork(\"example\", CoreNetworkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .description(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkmanager:CoreNetwork\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n description: example\n```\n{{% /example %}}\n{{% example %}}\n### With tags\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkmanager.CoreNetwork(\"example\", {\n globalNetworkId: aws_networkmanager_global_network.example.id,\n tags: {\n hello: \"world\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkmanager.CoreNetwork(\"example\",\n global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"],\n tags={\n \"hello\": \"world\",\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.NetworkManager.CoreNetwork(\"example\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n Tags = \n {\n { \"hello\", \"world\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\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 := networkmanager.NewCoreNetwork(ctx, \"example\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.Id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"hello\": pulumi.String(\"world\"),\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.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\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 CoreNetwork(\"example\", CoreNetworkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .tags(Map.of(\"hello\", \"world\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkmanager:CoreNetwork\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n tags:\n hello: world\n```\n{{% /example %}}\n### With VPC Attachment (Single Region)\n\nThe example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the `create_base_policy` argument to `true` if your core network does not currently have any `LIVE` policies (e.g. this is the first `pulumi up` with the core network resource), since a `LIVE` policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a `LIVE` policy, you may exclude the `create_base_policy` argument. There are 2 options to implement this:\n\n- Option 1: Use the `base_policy_document` argument that allows the most customizations to a base policy. Use this to customize the `edge_locations` `asn`. In the example below, `us-west-2` and ASN `65500` are used in the base policy.\n- Option 2: Use the `create_base_policy` argument only. This creates a base policy in the region specified in the `provider` block.\n{{% example %}}\n### Option 1 - using base_policy_document\n\nIf you require a custom ASN for the edge location, please use the `base_policy_document` argument to pass a specific ASN. For example:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst base = aws.networkmanager.getCoreNetworkPolicyDocument({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n asn: \"65500\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyDocument: base.then(base =\u003e base.json),\n createBasePolicy: true,\n});\nconst exampleVpcAttachment = new aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example.arn,\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n asn: \"65500\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n segmentActions: [{\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"0.0.0.0/0\"],\n destinations: [exampleVpcAttachment.id],\n }],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nbase = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )])\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_document=base.json,\n create_base_policy=True)\nexample_vpc_attachment = aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example\"]],\n vpc_arn=aws_vpc[\"example\"][\"arn\"])\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )],\n segment_actions=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"0.0.0.0/0\"],\n destinations=[example_vpc_attachment.id],\n )])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n });\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyDocument = @base.Apply(@base =\u003e @base.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json)),\n CreateBasePolicy = true,\n });\n\n var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment(\"exampleVpcAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example.Arn,\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"0.0.0.0/0\",\n },\n Destinations = new[]\n {\n exampleVpcAttachment.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbase, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, \u0026networkmanager.GetCoreNetworkPolicyDocumentArgs{\n\t\t\tCoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{\n\t\t\t\t{\n\t\t\t\t\tAsnRanges: []string{\n\t\t\t\t\t\t\"65022-65534\",\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLocation: \"us-west-2\",\n\t\t\t\t\t\t\tAsn: pulumi.StringRef(\"65500\"),\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\tSegments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{\n\t\t\t\t{\n\t\t\t\t\tName: \"segment\",\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\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: exampleGlobalNetwork.ID(),\n\t\t\tBasePolicyDocument: *pulumi.String(base.Json),\n\t\t\tCreateBasePolicy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example {\n\t\t\tsplat0 = append(splat0, val0.Arn)\n\t\t}\n\t\texampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, \"exampleVpcAttachment\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat0),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\n\t\t\tCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\n\t\t\t\t\tAsnRanges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"65022-65534\"),\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-west-2\"),\n\t\t\t\t\t\t\tAsn: pulumi.String(\"65500\"),\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\tSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleVpcAttachment.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026exampleCoreNetworkPolicyDocument.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\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .build());\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyDocument(base.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json()))\n .createBasePolicy(true)\n .build());\n\n var exampleVpcAttachment = new VpcAttachment(\"exampleVpcAttachment\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example().arn())\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"0.0.0.0/0\")\n .destinations(exampleVpcAttachment.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Option 2 - create_base_policy only\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n createBasePolicy: true,\n});\nconst exampleVpcAttachment = new aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example.arn,\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n segmentActions: [{\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"0.0.0.0/0\"],\n destinations: [exampleVpcAttachment.id],\n }],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n create_base_policy=True)\nexample_vpc_attachment = aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example\"]],\n vpc_arn=aws_vpc[\"example\"][\"arn\"])\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )],\n segment_actions=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"0.0.0.0/0\"],\n destinations=[example_vpc_attachment.id],\n )])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n CreateBasePolicy = true,\n });\n\n var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment(\"exampleVpcAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example.Arn,\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"0.0.0.0/0\",\n },\n Destinations = new[]\n {\n exampleVpcAttachment.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: exampleGlobalNetwork.ID(),\n\t\t\tCreateBasePolicy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example {\n\t\t\tsplat0 = append(splat0, val0.Arn)\n\t\t}\n\t\texampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, \"exampleVpcAttachment\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat0),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\n\t\t\tCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\n\t\t\t\t\tAsnRanges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"65022-65534\"),\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-west-2\"),\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\tSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleVpcAttachment.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026exampleCoreNetworkPolicyDocument.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\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .createBasePolicy(true)\n .build());\n\n var exampleVpcAttachment = new VpcAttachment(\"exampleVpcAttachment\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example().arn())\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"0.0.0.0/0\")\n .destinations(exampleVpcAttachment.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n### With VPC Attachment (Multi-Region)\n\nThe example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the `create_base_policy` argument of the `aws.networkmanager.CoreNetwork` resource to `true` if your core network does not currently have any `LIVE` policies (e.g. this is the first `pulumi up` with the core network resource), since a `LIVE` policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a `LIVE` policy, you may exclude the `create_base_policy` argument. For multi-region in a core network that does not yet have a `LIVE` policy, there are 2 options:\n\n- Option 1: Use the `base_policy_document` argument that allows the most customizations to a base policy. Use this to customize the `edge_locations` `asn`. In the example below, `us-west-2`, `us-east-1` and specific ASNs are used in the base policy.\n- Option 2: Pass a list of regions to the `aws.networkmanager.CoreNetwork` `base_policy_regions` argument. In the example below, `us-west-2` and `us-east-1` are specified in the base policy.\n{{% example %}}\n### Option 1 - using base_policy_document\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst base = aws.networkmanager.getCoreNetworkPolicyDocument({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n asn: \"65500\",\n },\n {\n location: \"us-east-1\",\n asn: \"65501\",\n },\n ],\n }],\n segments: [{\n name: \"segment\",\n }],\n});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyDocument: base.then(base =\u003e base.json),\n createBasePolicy: true,\n});\nconst exampleUsWest2 = new aws.networkmanager.VpcAttachment(\"exampleUsWest2\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_west_2.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_west_2.arn,\n});\nconst exampleUsEast1 = new aws.networkmanager.VpcAttachment(\"exampleUsEast1\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_east_1.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_east_1.arn,\n}, {\n provider: \"alternate\",\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n asn: \"65500\",\n },\n {\n location: \"us-east-1\",\n asn: \"65501\",\n },\n ],\n }],\n segments: [\n {\n name: \"segment\",\n },\n {\n name: \"segment2\",\n },\n ],\n segmentActions: [\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.0.0.0/16\"],\n destinations: [exampleUsWest2.id],\n },\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.1.0.0/16\"],\n destinations: [exampleUsEast1.id],\n },\n ],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nbase = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n asn=\"65501\",\n ),\n ],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )])\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_document=base.json,\n create_base_policy=True)\nexample_us_west2 = aws.networkmanager.VpcAttachment(\"exampleUsWest2\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_west_2\"]],\n vpc_arn=aws_vpc[\"example_us_west_2\"][\"arn\"])\nexample_us_east1 = aws.networkmanager.VpcAttachment(\"exampleUsEast1\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_east_1\"]],\n vpc_arn=aws_vpc[\"example_us_east_1\"][\"arn\"],\n opts=pulumi.ResourceOptions(provider=\"alternate\"))\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n asn=\"65501\",\n ),\n ],\n )],\n segments=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment2\",\n ),\n ],\n segment_actions=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.0.0.0/16\"],\n destinations=[example_us_west2.id],\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.1.0.0/16\"],\n destinations=[example_us_east1.id],\n ),\n ])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n Asn = \"65501\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n });\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyDocument = @base.Apply(@base =\u003e @base.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json)),\n CreateBasePolicy = true,\n });\n\n var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment(\"exampleUsWest2\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_west_2.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_west_2.Arn,\n });\n\n var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment(\"exampleUsEast1\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_east_1.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_east_1.Arn,\n }, new CustomResourceOptions\n {\n Provider = \"alternate\",\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n Asn = \"65501\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment2\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.0.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsWest2.Id,\n },\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.1.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsEast1.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbase, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, \u0026networkmanager.GetCoreNetworkPolicyDocumentArgs{\n\t\t\tCoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{\n\t\t\t\t{\n\t\t\t\t\tAsnRanges: []string{\n\t\t\t\t\t\t\"65022-65534\",\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLocation: \"us-west-2\",\n\t\t\t\t\t\t\tAsn: pulumi.StringRef(\"65500\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLocation: \"us-east-1\",\n\t\t\t\t\t\t\tAsn: pulumi.StringRef(\"65501\"),\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\tSegments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{\n\t\t\t\t{\n\t\t\t\t\tName: \"segment\",\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\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: exampleGlobalNetwork.ID(),\n\t\t\tBasePolicyDocument: *pulumi.String(base.Json),\n\t\t\tCreateBasePolicy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example_us_west_2 {\n\t\t\tsplat0 = append(splat0, val0.Arn)\n\t\t}\n\t\texampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsWest2\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat0),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat1 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example_us_east_1 {\n\t\t\tsplat1 = append(splat1, val0.Arn)\n\t\t}\n\t\texampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsEast1\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat1),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn),\n\t\t}, pulumi.Provider(\"alternate\"))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\n\t\t\tCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\n\t\t\t\t\tAsnRanges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"65022-65534\"),\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-west-2\"),\n\t\t\t\t\t\t\tAsn: pulumi.String(\"65500\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-east-1\"),\n\t\t\t\t\t\t\tAsn: pulumi.String(\"65501\"),\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\tSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment\"),\n\t\t\t\t},\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleUsWest2.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleUsEast1.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026exampleCoreNetworkPolicyDocument.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\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .asn(\"65501\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .build());\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyDocument(base.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json()))\n .createBasePolicy(true)\n .build());\n\n var exampleUsWest2 = new VpcAttachment(\"exampleUsWest2\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_west_2().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_west_2().arn())\n .build());\n\n var exampleUsEast1 = new VpcAttachment(\"exampleUsEast1\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_east_1().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_east_1().arn())\n .build(), CustomResourceOptions.builder()\n .provider(\"alternate\")\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .asn(\"65501\")\n .build())\n .build())\n .segments( \n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build(),\n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment2\")\n .build())\n .segmentActions( \n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.0.0.0/16\")\n .destinations(exampleUsWest2.id())\n .build(),\n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.1.0.0/16\")\n .destinations(exampleUsEast1.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Option 2 - using base_policy_regions\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyRegions: [\n \"us-west-2\",\n \"us-east-1\",\n ],\n createBasePolicy: true,\n});\nconst exampleUsWest2 = new aws.networkmanager.VpcAttachment(\"exampleUsWest2\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_west_2.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_west_2.arn,\n});\nconst exampleUsEast1 = new aws.networkmanager.VpcAttachment(\"exampleUsEast1\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_east_1.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_east_1.arn,\n}, {\n provider: \"alternate\",\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n },\n {\n location: \"us-east-1\",\n },\n ],\n }],\n segments: [\n {\n name: \"segment\",\n },\n {\n name: \"segment2\",\n },\n ],\n segmentActions: [\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.0.0.0/16\"],\n destinations: [exampleUsWest2.id],\n },\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.1.0.0/16\"],\n destinations: [exampleUsEast1.id],\n },\n ],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_regions=[\n \"us-west-2\",\n \"us-east-1\",\n ],\n create_base_policy=True)\nexample_us_west2 = aws.networkmanager.VpcAttachment(\"exampleUsWest2\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_west_2\"]],\n vpc_arn=aws_vpc[\"example_us_west_2\"][\"arn\"])\nexample_us_east1 = aws.networkmanager.VpcAttachment(\"exampleUsEast1\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_east_1\"]],\n vpc_arn=aws_vpc[\"example_us_east_1\"][\"arn\"],\n opts=pulumi.ResourceOptions(provider=\"alternate\"))\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n ),\n ],\n )],\n segments=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment2\",\n ),\n ],\n segment_actions=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.0.0.0/16\"],\n destinations=[example_us_west2.id],\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.1.0.0/16\"],\n destinations=[example_us_east1.id],\n ),\n ])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyRegions = new[]\n {\n \"us-west-2\",\n \"us-east-1\",\n },\n CreateBasePolicy = true,\n });\n\n var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment(\"exampleUsWest2\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_west_2.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_west_2.Arn,\n });\n\n var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment(\"exampleUsEast1\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_east_1.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_east_1.Arn,\n }, new CustomResourceOptions\n {\n Provider = \"alternate\",\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment2\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.0.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsWest2.Id,\n },\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.1.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsEast1.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: exampleGlobalNetwork.ID(),\n\t\t\tBasePolicyRegions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2\"),\n\t\t\t\tpulumi.String(\"us-east-1\"),\n\t\t\t},\n\t\t\tCreateBasePolicy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example_us_west_2 {\n\t\t\tsplat0 = append(splat0, val0.Arn)\n\t\t}\n\t\texampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsWest2\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat0),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat1 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example_us_east_1 {\n\t\t\tsplat1 = append(splat1, val0.Arn)\n\t\t}\n\t\texampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsEast1\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat1),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn),\n\t\t}, pulumi.Provider(\"alternate\"))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\n\t\t\tCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\n\t\t\t\t\tAsnRanges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"65022-65534\"),\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-west-2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-east-1\"),\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\tSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment\"),\n\t\t\t\t},\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleUsWest2.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleUsEast1.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026exampleCoreNetworkPolicyDocument.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\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyRegions( \n \"us-west-2\",\n \"us-east-1\")\n .createBasePolicy(true)\n .build());\n\n var exampleUsWest2 = new VpcAttachment(\"exampleUsWest2\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_west_2().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_west_2().arn())\n .build());\n\n var exampleUsEast1 = new VpcAttachment(\"exampleUsEast1\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_east_1().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_east_1().arn())\n .build(), CustomResourceOptions.builder()\n .provider(\"alternate\")\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .build())\n .build())\n .segments( \n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build(),\n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment2\")\n .build())\n .segmentActions( \n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.0.0.0/16\")\n .destinations(exampleUsWest2.id())\n .build(),\n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.1.0.0/16\")\n .destinations(exampleUsEast1.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import `aws_networkmanager_core_network` using the core network ID. For example:\n\n```sh\n $ pulumi import aws:networkmanager/coreNetwork:CoreNetwork example core-network-0d47f6t230mz46dy4\n```\n ", + "description": "Provides a core network resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkmanager.CoreNetwork(\"example\", {globalNetworkId: aws_networkmanager_global_network.example.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkmanager.CoreNetwork(\"example\", global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkManager.CoreNetwork(\"example\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\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 := networkmanager.NewCoreNetwork(ctx, \"example\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.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.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\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 CoreNetwork(\"example\", CoreNetworkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkmanager:CoreNetwork\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n```\n{{% /example %}}\n{{% example %}}\n### With description\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkmanager.CoreNetwork(\"example\", {\n globalNetworkId: aws_networkmanager_global_network.example.id,\n description: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkmanager.CoreNetwork(\"example\",\n global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"],\n description=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkManager.CoreNetwork(\"example\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n Description = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\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 := networkmanager.NewCoreNetwork(ctx, \"example\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.Id),\n\t\t\tDescription: pulumi.String(\"example\"),\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.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\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 CoreNetwork(\"example\", CoreNetworkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .description(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkmanager:CoreNetwork\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n description: example\n```\n{{% /example %}}\n{{% example %}}\n### With tags\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkmanager.CoreNetwork(\"example\", {\n globalNetworkId: aws_networkmanager_global_network.example.id,\n tags: {\n hello: \"world\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkmanager.CoreNetwork(\"example\",\n global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"],\n tags={\n \"hello\": \"world\",\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.NetworkManager.CoreNetwork(\"example\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n Tags = \n {\n { \"hello\", \"world\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\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 := networkmanager.NewCoreNetwork(ctx, \"example\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.Id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"hello\": pulumi.String(\"world\"),\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.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\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 CoreNetwork(\"example\", CoreNetworkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .tags(Map.of(\"hello\", \"world\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkmanager:CoreNetwork\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n tags:\n hello: world\n```\n{{% /example %}}\n### With VPC Attachment (Single Region)\n\nThe example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the `create_base_policy` argument to `true` if your core network does not currently have any `LIVE` policies (e.g. this is the first `pulumi up` with the core network resource), since a `LIVE` policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a `LIVE` policy, you may exclude the `create_base_policy` argument. There are 2 options to implement this:\n\n- Option 1: Use the `base_policy_document` argument that allows the most customizations to a base policy. Use this to customize the `edge_locations` `asn`. In the example below, `us-west-2` and ASN `65500` are used in the base policy.\n- Option 2: Use the `create_base_policy` argument only. This creates a base policy in the region specified in the `provider` block.\n{{% example %}}\n### Option 1 - using base_policy_document\n\nIf you require a custom ASN for the edge location, please use the `base_policy_document` argument to pass a specific ASN. For example:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst base = aws.networkmanager.getCoreNetworkPolicyDocument({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n asn: \"65500\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyDocument: base.then(base =\u003e base.json),\n createBasePolicy: true,\n});\nconst exampleVpcAttachment = new aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example.arn,\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n asn: \"65500\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n segmentActions: [{\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"0.0.0.0/0\"],\n destinations: [exampleVpcAttachment.id],\n }],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nbase = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )])\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_document=base.json,\n create_base_policy=True)\nexample_vpc_attachment = aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example\"]],\n vpc_arn=aws_vpc[\"example\"][\"arn\"])\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )],\n segment_actions=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"0.0.0.0/0\"],\n destinations=[example_vpc_attachment.id],\n )])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n });\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyDocument = @base.Apply(@base =\u003e @base.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json)),\n CreateBasePolicy = true,\n });\n\n var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment(\"exampleVpcAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example.Arn,\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"0.0.0.0/0\",\n },\n Destinations = new[]\n {\n exampleVpcAttachment.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\nif err != nil {\nreturn err\n}\nbase, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, \u0026networkmanager.GetCoreNetworkPolicyDocumentArgs{\nCoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{\n{\nAsnRanges: []string{\n\"65022-65534\",\n},\nEdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{\n{\nLocation: \"us-west-2\",\nAsn: pulumi.StringRef(\"65500\"),\n},\n},\n},\n},\nSegments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{\n{\nName: \"segment\",\n},\n},\n}, nil);\nif err != nil {\nreturn err\n}\nexampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\nGlobalNetworkId: exampleGlobalNetwork.ID(),\nBasePolicyDocument: *pulumi.String(base.Json),\nCreateBasePolicy: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example {\nsplat0 = append(splat0, val0.Arn)\n}\nexampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, \"exampleVpcAttachment\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat0),\nVpcArn: pulumi.Any(aws_vpc.Example.Arn),\n})\nif err != nil {\nreturn err\n}\nexampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\nCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\nAsnRanges: pulumi.StringArray{\npulumi.String(\"65022-65534\"),\n},\nEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-west-2\"),\nAsn: pulumi.String(\"65500\"),\n},\n},\n},\n},\nSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment\"),\n},\n},\nSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"0.0.0.0/0\"),\n},\nDestinations: pulumi.StringArray{\nexampleVpcAttachment.ID(),\n},\n},\n},\n}, nil);\n_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\nreturn \u0026exampleCoreNetworkPolicyDocument.Json, nil\n}).(pulumi.StringPtrOutput),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .build());\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyDocument(base.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json()))\n .createBasePolicy(true)\n .build());\n\n var exampleVpcAttachment = new VpcAttachment(\"exampleVpcAttachment\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example().arn())\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"0.0.0.0/0\")\n .destinations(exampleVpcAttachment.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Option 2 - create_base_policy only\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n createBasePolicy: true,\n});\nconst exampleVpcAttachment = new aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example.arn,\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n segmentActions: [{\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"0.0.0.0/0\"],\n destinations: [exampleVpcAttachment.id],\n }],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n create_base_policy=True)\nexample_vpc_attachment = aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example\"]],\n vpc_arn=aws_vpc[\"example\"][\"arn\"])\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )],\n segment_actions=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"0.0.0.0/0\"],\n destinations=[example_vpc_attachment.id],\n )])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n CreateBasePolicy = true,\n });\n\n var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment(\"exampleVpcAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example.Arn,\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"0.0.0.0/0\",\n },\n Destinations = new[]\n {\n exampleVpcAttachment.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\nif err != nil {\nreturn err\n}\nexampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\nGlobalNetworkId: exampleGlobalNetwork.ID(),\nCreateBasePolicy: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example {\nsplat0 = append(splat0, val0.Arn)\n}\nexampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, \"exampleVpcAttachment\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat0),\nVpcArn: pulumi.Any(aws_vpc.Example.Arn),\n})\nif err != nil {\nreturn err\n}\nexampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\nCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\nAsnRanges: pulumi.StringArray{\npulumi.String(\"65022-65534\"),\n},\nEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-west-2\"),\n},\n},\n},\n},\nSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment\"),\n},\n},\nSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"0.0.0.0/0\"),\n},\nDestinations: pulumi.StringArray{\nexampleVpcAttachment.ID(),\n},\n},\n},\n}, nil);\n_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\nreturn \u0026exampleCoreNetworkPolicyDocument.Json, nil\n}).(pulumi.StringPtrOutput),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .createBasePolicy(true)\n .build());\n\n var exampleVpcAttachment = new VpcAttachment(\"exampleVpcAttachment\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example().arn())\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"0.0.0.0/0\")\n .destinations(exampleVpcAttachment.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n### With VPC Attachment (Multi-Region)\n\nThe example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the `create_base_policy` argument of the `aws.networkmanager.CoreNetwork` resource to `true` if your core network does not currently have any `LIVE` policies (e.g. this is the first `pulumi up` with the core network resource), since a `LIVE` policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a `LIVE` policy, you may exclude the `create_base_policy` argument. For multi-region in a core network that does not yet have a `LIVE` policy, there are 2 options:\n\n- Option 1: Use the `base_policy_document` argument that allows the most customizations to a base policy. Use this to customize the `edge_locations` `asn`. In the example below, `us-west-2`, `us-east-1` and specific ASNs are used in the base policy.\n- Option 2: Pass a list of regions to the `aws.networkmanager.CoreNetwork` `base_policy_regions` argument. In the example below, `us-west-2` and `us-east-1` are specified in the base policy.\n{{% example %}}\n### Option 1 - using base_policy_document\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst base = aws.networkmanager.getCoreNetworkPolicyDocument({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n asn: \"65500\",\n },\n {\n location: \"us-east-1\",\n asn: \"65501\",\n },\n ],\n }],\n segments: [{\n name: \"segment\",\n }],\n});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyDocument: base.then(base =\u003e base.json),\n createBasePolicy: true,\n});\nconst exampleUsWest2 = new aws.networkmanager.VpcAttachment(\"exampleUsWest2\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_west_2.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_west_2.arn,\n});\nconst exampleUsEast1 = new aws.networkmanager.VpcAttachment(\"exampleUsEast1\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_east_1.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_east_1.arn,\n}, {\n provider: \"alternate\",\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n asn: \"65500\",\n },\n {\n location: \"us-east-1\",\n asn: \"65501\",\n },\n ],\n }],\n segments: [\n {\n name: \"segment\",\n },\n {\n name: \"segment2\",\n },\n ],\n segmentActions: [\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.0.0.0/16\"],\n destinations: [exampleUsWest2.id],\n },\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.1.0.0/16\"],\n destinations: [exampleUsEast1.id],\n },\n ],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nbase = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n asn=\"65501\",\n ),\n ],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )])\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_document=base.json,\n create_base_policy=True)\nexample_us_west2 = aws.networkmanager.VpcAttachment(\"exampleUsWest2\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_west_2\"]],\n vpc_arn=aws_vpc[\"example_us_west_2\"][\"arn\"])\nexample_us_east1 = aws.networkmanager.VpcAttachment(\"exampleUsEast1\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_east_1\"]],\n vpc_arn=aws_vpc[\"example_us_east_1\"][\"arn\"],\n opts=pulumi.ResourceOptions(provider=\"alternate\"))\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n asn=\"65501\",\n ),\n ],\n )],\n segments=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment2\",\n ),\n ],\n segment_actions=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.0.0.0/16\"],\n destinations=[example_us_west2.id],\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.1.0.0/16\"],\n destinations=[example_us_east1.id],\n ),\n ])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n Asn = \"65501\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n });\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyDocument = @base.Apply(@base =\u003e @base.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json)),\n CreateBasePolicy = true,\n });\n\n var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment(\"exampleUsWest2\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_west_2.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_west_2.Arn,\n });\n\n var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment(\"exampleUsEast1\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_east_1.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_east_1.Arn,\n }, new CustomResourceOptions\n {\n Provider = \"alternate\",\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n Asn = \"65501\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment2\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.0.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsWest2.Id,\n },\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.1.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsEast1.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\nif err != nil {\nreturn err\n}\nbase, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, \u0026networkmanager.GetCoreNetworkPolicyDocumentArgs{\nCoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{\n{\nAsnRanges: []string{\n\"65022-65534\",\n},\nEdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{\n{\nLocation: \"us-west-2\",\nAsn: pulumi.StringRef(\"65500\"),\n},\n{\nLocation: \"us-east-1\",\nAsn: pulumi.StringRef(\"65501\"),\n},\n},\n},\n},\nSegments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{\n{\nName: \"segment\",\n},\n},\n}, nil);\nif err != nil {\nreturn err\n}\nexampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\nGlobalNetworkId: exampleGlobalNetwork.ID(),\nBasePolicyDocument: *pulumi.String(base.Json),\nCreateBasePolicy: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example_us_west_2 {\nsplat0 = append(splat0, val0.Arn)\n}\nexampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsWest2\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat0),\nVpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn),\n})\nif err != nil {\nreturn err\n}\nvar splat1 []interface{}\nfor _, val0 := range aws_subnet.Example_us_east_1 {\nsplat1 = append(splat1, val0.Arn)\n}\nexampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsEast1\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat1),\nVpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn),\n}, pulumi.Provider(\"alternate\"))\nif err != nil {\nreturn err\n}\nexampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\nCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\nAsnRanges: pulumi.StringArray{\npulumi.String(\"65022-65534\"),\n},\nEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-west-2\"),\nAsn: pulumi.String(\"65500\"),\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-east-1\"),\nAsn: pulumi.String(\"65501\"),\n},\n},\n},\n},\nSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment\"),\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment2\"),\n},\n},\nSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"10.0.0.0/16\"),\n},\nDestinations: pulumi.StringArray{\nexampleUsWest2.ID(),\n},\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"10.1.0.0/16\"),\n},\nDestinations: pulumi.StringArray{\nexampleUsEast1.ID(),\n},\n},\n},\n}, nil);\n_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\nreturn \u0026exampleCoreNetworkPolicyDocument.Json, nil\n}).(pulumi.StringPtrOutput),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .asn(\"65501\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .build());\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyDocument(base.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json()))\n .createBasePolicy(true)\n .build());\n\n var exampleUsWest2 = new VpcAttachment(\"exampleUsWest2\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_west_2().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_west_2().arn())\n .build());\n\n var exampleUsEast1 = new VpcAttachment(\"exampleUsEast1\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_east_1().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_east_1().arn())\n .build(), CustomResourceOptions.builder()\n .provider(\"alternate\")\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .asn(\"65501\")\n .build())\n .build())\n .segments( \n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build(),\n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment2\")\n .build())\n .segmentActions( \n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.0.0.0/16\")\n .destinations(exampleUsWest2.id())\n .build(),\n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.1.0.0/16\")\n .destinations(exampleUsEast1.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Option 2 - using base_policy_regions\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyRegions: [\n \"us-west-2\",\n \"us-east-1\",\n ],\n createBasePolicy: true,\n});\nconst exampleUsWest2 = new aws.networkmanager.VpcAttachment(\"exampleUsWest2\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_west_2.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_west_2.arn,\n});\nconst exampleUsEast1 = new aws.networkmanager.VpcAttachment(\"exampleUsEast1\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_east_1.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_east_1.arn,\n}, {\n provider: \"alternate\",\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n },\n {\n location: \"us-east-1\",\n },\n ],\n }],\n segments: [\n {\n name: \"segment\",\n },\n {\n name: \"segment2\",\n },\n ],\n segmentActions: [\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.0.0.0/16\"],\n destinations: [exampleUsWest2.id],\n },\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.1.0.0/16\"],\n destinations: [exampleUsEast1.id],\n },\n ],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_regions=[\n \"us-west-2\",\n \"us-east-1\",\n ],\n create_base_policy=True)\nexample_us_west2 = aws.networkmanager.VpcAttachment(\"exampleUsWest2\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_west_2\"]],\n vpc_arn=aws_vpc[\"example_us_west_2\"][\"arn\"])\nexample_us_east1 = aws.networkmanager.VpcAttachment(\"exampleUsEast1\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_east_1\"]],\n vpc_arn=aws_vpc[\"example_us_east_1\"][\"arn\"],\n opts=pulumi.ResourceOptions(provider=\"alternate\"))\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n ),\n ],\n )],\n segments=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment2\",\n ),\n ],\n segment_actions=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.0.0.0/16\"],\n destinations=[example_us_west2.id],\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.1.0.0/16\"],\n destinations=[example_us_east1.id],\n ),\n ])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyRegions = new[]\n {\n \"us-west-2\",\n \"us-east-1\",\n },\n CreateBasePolicy = true,\n });\n\n var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment(\"exampleUsWest2\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_west_2.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_west_2.Arn,\n });\n\n var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment(\"exampleUsEast1\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_east_1.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_east_1.Arn,\n }, new CustomResourceOptions\n {\n Provider = \"alternate\",\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment2\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.0.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsWest2.Id,\n },\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.1.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsEast1.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\nif err != nil {\nreturn err\n}\nexampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\nGlobalNetworkId: exampleGlobalNetwork.ID(),\nBasePolicyRegions: pulumi.StringArray{\npulumi.String(\"us-west-2\"),\npulumi.String(\"us-east-1\"),\n},\nCreateBasePolicy: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example_us_west_2 {\nsplat0 = append(splat0, val0.Arn)\n}\nexampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsWest2\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat0),\nVpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn),\n})\nif err != nil {\nreturn err\n}\nvar splat1 []interface{}\nfor _, val0 := range aws_subnet.Example_us_east_1 {\nsplat1 = append(splat1, val0.Arn)\n}\nexampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsEast1\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat1),\nVpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn),\n}, pulumi.Provider(\"alternate\"))\nif err != nil {\nreturn err\n}\nexampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\nCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\nAsnRanges: pulumi.StringArray{\npulumi.String(\"65022-65534\"),\n},\nEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-west-2\"),\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-east-1\"),\n},\n},\n},\n},\nSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment\"),\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment2\"),\n},\n},\nSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"10.0.0.0/16\"),\n},\nDestinations: pulumi.StringArray{\nexampleUsWest2.ID(),\n},\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"10.1.0.0/16\"),\n},\nDestinations: pulumi.StringArray{\nexampleUsEast1.ID(),\n},\n},\n},\n}, nil);\n_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\nreturn \u0026exampleCoreNetworkPolicyDocument.Json, nil\n}).(pulumi.StringPtrOutput),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyRegions( \n \"us-west-2\",\n \"us-east-1\")\n .createBasePolicy(true)\n .build());\n\n var exampleUsWest2 = new VpcAttachment(\"exampleUsWest2\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_west_2().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_west_2().arn())\n .build());\n\n var exampleUsEast1 = new VpcAttachment(\"exampleUsEast1\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_east_1().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_east_1().arn())\n .build(), CustomResourceOptions.builder()\n .provider(\"alternate\")\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .build())\n .build())\n .segments( \n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build(),\n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment2\")\n .build())\n .segmentActions( \n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.0.0.0/16\")\n .destinations(exampleUsWest2.id())\n .build(),\n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.1.0.0/16\")\n .destinations(exampleUsEast1.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import `aws_networkmanager_core_network` using the core network ID. For example:\n\n```sh\n $ pulumi import aws:networkmanager/coreNetwork:CoreNetwork example core-network-0d47f6t230mz46dy4\n```\n ", "properties": { "arn": { "type": "string", @@ -251020,7 +251033,7 @@ } }, "aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment": { - "description": "Provides a Core Network Policy Attachment resource. This puts a Core Network Policy to an existing Core Network and executes the change set, which deploys changes globally based on the policy submitted (Sets the policy to `LIVE`).\n\n\u003e **NOTE:** Deleting this resource will not delete the current policy defined in this resource. Deleting this resource will also not revert the current `LIVE` policy to the previous version.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {globalNetworkId: aws_networkmanager_global_network.example.id});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: data.aws_networkmanager_core_network_policy_document.example.json,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=data[\"aws_networkmanager_core_network_policy_document\"][\"example\"][\"json\"])\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 exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = data.Aws_networkmanager_core_network_policy_document.Example.Json,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: pulumi.Any(data.Aws_networkmanager_core_network_policy_document.Example.Json),\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.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(data.aws_networkmanager_core_network_policy_document().example().json())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleCoreNetwork:\n type: aws:networkmanager:CoreNetwork\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n exampleCoreNetworkPolicyAttachment:\n type: aws:networkmanager:CoreNetworkPolicyAttachment\n properties:\n coreNetworkId: ${exampleCoreNetwork.id}\n policyDocument: ${data.aws_networkmanager_core_network_policy_document.example.json}\n```\n{{% /example %}}\n### With VPC Attachment (Single Region)\n\nThe example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the `create_base_policy` argument of the `aws.networkmanager.CoreNetwork` resource to `true` if your core network does not currently have any `LIVE` policies (e.g. this is the first `pulumi up` with the core network resource), since a `LIVE` policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a `LIVE` policy, you may exclude the `create_base_policy` argument. There are 2 options to implement this:\n\n- Option 1: Use the `base_policy_document` argument in the `aws.networkmanager.CoreNetwork` resource that allows the most customizations to a base policy. Use this to customize the `edge_locations` `asn`. In the example below, `us-west-2` and ASN `65500` are used in the base policy.\n- Option 2: Use the `create_base_policy` argument only. This creates a base policy in the region specified in the `provider` block.\n{{% example %}}\n### Option 1 - using base_policy_document\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst base = aws.networkmanager.getCoreNetworkPolicyDocument({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n asn: \"65500\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyDocument: base.then(base =\u003e base.json),\n createBasePolicy: true,\n});\nconst exampleVpcAttachment = new aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example.arn,\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n asn: \"65500\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n segmentActions: [{\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"0.0.0.0/0\"],\n destinations: [exampleVpcAttachment.id],\n }],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nbase = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )])\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_document=base.json,\n create_base_policy=True)\nexample_vpc_attachment = aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example\"]],\n vpc_arn=aws_vpc[\"example\"][\"arn\"])\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )],\n segment_actions=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"0.0.0.0/0\"],\n destinations=[example_vpc_attachment.id],\n )])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n });\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyDocument = @base.Apply(@base =\u003e @base.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json)),\n CreateBasePolicy = true,\n });\n\n var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment(\"exampleVpcAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example.Arn,\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"0.0.0.0/0\",\n },\n Destinations = new[]\n {\n exampleVpcAttachment.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbase, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, \u0026networkmanager.GetCoreNetworkPolicyDocumentArgs{\n\t\t\tCoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{\n\t\t\t\t{\n\t\t\t\t\tAsnRanges: []string{\n\t\t\t\t\t\t\"65022-65534\",\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLocation: \"us-west-2\",\n\t\t\t\t\t\t\tAsn: pulumi.StringRef(\"65500\"),\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\tSegments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{\n\t\t\t\t{\n\t\t\t\t\tName: \"segment\",\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\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: exampleGlobalNetwork.ID(),\n\t\t\tBasePolicyDocument: *pulumi.String(base.Json),\n\t\t\tCreateBasePolicy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example {\n\t\t\tsplat0 = append(splat0, val0.Arn)\n\t\t}\n\t\texampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, \"exampleVpcAttachment\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat0),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\n\t\t\tCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\n\t\t\t\t\tAsnRanges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"65022-65534\"),\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-west-2\"),\n\t\t\t\t\t\t\tAsn: pulumi.String(\"65500\"),\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\tSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleVpcAttachment.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026exampleCoreNetworkPolicyDocument.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\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .build());\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyDocument(base.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json()))\n .createBasePolicy(true)\n .build());\n\n var exampleVpcAttachment = new VpcAttachment(\"exampleVpcAttachment\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example().arn())\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"0.0.0.0/0\")\n .destinations(exampleVpcAttachment.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Option 2 - create_base_policy only\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n createBasePolicy: true,\n});\nconst exampleVpcAttachment = new aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example.arn,\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n segmentActions: [{\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"0.0.0.0/0\"],\n destinations: [exampleVpcAttachment.id],\n }],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n create_base_policy=True)\nexample_vpc_attachment = aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example\"]],\n vpc_arn=aws_vpc[\"example\"][\"arn\"])\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )],\n segment_actions=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"0.0.0.0/0\"],\n destinations=[example_vpc_attachment.id],\n )])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n CreateBasePolicy = true,\n });\n\n var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment(\"exampleVpcAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example.Arn,\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"0.0.0.0/0\",\n },\n Destinations = new[]\n {\n exampleVpcAttachment.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: exampleGlobalNetwork.ID(),\n\t\t\tCreateBasePolicy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example {\n\t\t\tsplat0 = append(splat0, val0.Arn)\n\t\t}\n\t\texampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, \"exampleVpcAttachment\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat0),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\n\t\t\tCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\n\t\t\t\t\tAsnRanges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"65022-65534\"),\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-west-2\"),\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\tSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleVpcAttachment.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026exampleCoreNetworkPolicyDocument.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\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .createBasePolicy(true)\n .build());\n\n var exampleVpcAttachment = new VpcAttachment(\"exampleVpcAttachment\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example().arn())\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"0.0.0.0/0\")\n .destinations(exampleVpcAttachment.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n### With VPC Attachment (Multi-Region)\n\nThe example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the `create_base_policy` argument of the `aws.networkmanager.CoreNetwork` resource to `true` if your core network does not currently have any `LIVE` policies (e.g. this is the first `pulumi up` with the core network resource), since a `LIVE` policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a `LIVE` policy, you may exclude the `create_base_policy` argument. For multi-region in a core network that does not yet have a `LIVE` policy, there are 2 options:\n\n- Option 1: Use the `base_policy_document` argument that allows the most customizations to a base policy. Use this to customize the `edge_locations` `asn`. In the example below, `us-west-2`, `us-east-1` and specific ASNs are used in the base policy.\n- Option 2: Pass a list of regions to the `aws.networkmanager.CoreNetwork` resource `base_policy_regions` argument. In the example below, `us-west-2` and `us-east-1` are specified in the base policy.\n{{% example %}}\n### Option 1 - using base_policy_document\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst base = aws.networkmanager.getCoreNetworkPolicyDocument({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n asn: \"65500\",\n },\n {\n location: \"us-east-1\",\n asn: \"65501\",\n },\n ],\n }],\n segments: [{\n name: \"segment\",\n }],\n});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyDocument: base.then(base =\u003e base.json),\n createBasePolicy: true,\n});\nconst exampleUsWest2 = new aws.networkmanager.VpcAttachment(\"exampleUsWest2\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_west_2.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_west_2.arn,\n});\nconst exampleUsEast1 = new aws.networkmanager.VpcAttachment(\"exampleUsEast1\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_east_1.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_east_1.arn,\n}, {\n provider: \"alternate\",\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n asn: \"65500\",\n },\n {\n location: \"us-east-1\",\n asn: \"65501\",\n },\n ],\n }],\n segments: [\n {\n name: \"segment\",\n },\n {\n name: \"segment2\",\n },\n ],\n segmentActions: [\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.0.0.0/16\"],\n destinations: [exampleUsWest2.id],\n },\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.1.0.0/16\"],\n destinations: [exampleUsEast1.id],\n },\n ],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nbase = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n asn=\"65501\",\n ),\n ],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )])\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_document=base.json,\n create_base_policy=True)\nexample_us_west2 = aws.networkmanager.VpcAttachment(\"exampleUsWest2\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_west_2\"]],\n vpc_arn=aws_vpc[\"example_us_west_2\"][\"arn\"])\nexample_us_east1 = aws.networkmanager.VpcAttachment(\"exampleUsEast1\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_east_1\"]],\n vpc_arn=aws_vpc[\"example_us_east_1\"][\"arn\"],\n opts=pulumi.ResourceOptions(provider=\"alternate\"))\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n asn=\"65501\",\n ),\n ],\n )],\n segments=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment2\",\n ),\n ],\n segment_actions=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.0.0.0/16\"],\n destinations=[example_us_west2.id],\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.1.0.0/16\"],\n destinations=[example_us_east1.id],\n ),\n ])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n Asn = \"65501\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n });\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyDocument = @base.Apply(@base =\u003e @base.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json)),\n CreateBasePolicy = true,\n });\n\n var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment(\"exampleUsWest2\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_west_2.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_west_2.Arn,\n });\n\n var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment(\"exampleUsEast1\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_east_1.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_east_1.Arn,\n }, new CustomResourceOptions\n {\n Provider = \"alternate\",\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n Asn = \"65501\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment2\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.0.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsWest2.Id,\n },\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.1.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsEast1.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbase, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, \u0026networkmanager.GetCoreNetworkPolicyDocumentArgs{\n\t\t\tCoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{\n\t\t\t\t{\n\t\t\t\t\tAsnRanges: []string{\n\t\t\t\t\t\t\"65022-65534\",\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLocation: \"us-west-2\",\n\t\t\t\t\t\t\tAsn: pulumi.StringRef(\"65500\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLocation: \"us-east-1\",\n\t\t\t\t\t\t\tAsn: pulumi.StringRef(\"65501\"),\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\tSegments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{\n\t\t\t\t{\n\t\t\t\t\tName: \"segment\",\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\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: exampleGlobalNetwork.ID(),\n\t\t\tBasePolicyDocument: *pulumi.String(base.Json),\n\t\t\tCreateBasePolicy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example_us_west_2 {\n\t\t\tsplat0 = append(splat0, val0.Arn)\n\t\t}\n\t\texampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsWest2\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat0),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat1 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example_us_east_1 {\n\t\t\tsplat1 = append(splat1, val0.Arn)\n\t\t}\n\t\texampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsEast1\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat1),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn),\n\t\t}, pulumi.Provider(\"alternate\"))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\n\t\t\tCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\n\t\t\t\t\tAsnRanges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"65022-65534\"),\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-west-2\"),\n\t\t\t\t\t\t\tAsn: pulumi.String(\"65500\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-east-1\"),\n\t\t\t\t\t\t\tAsn: pulumi.String(\"65501\"),\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\tSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment\"),\n\t\t\t\t},\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleUsWest2.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleUsEast1.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026exampleCoreNetworkPolicyDocument.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\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .asn(\"65501\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .build());\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyDocument(base.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json()))\n .createBasePolicy(true)\n .build());\n\n var exampleUsWest2 = new VpcAttachment(\"exampleUsWest2\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_west_2().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_west_2().arn())\n .build());\n\n var exampleUsEast1 = new VpcAttachment(\"exampleUsEast1\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_east_1().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_east_1().arn())\n .build(), CustomResourceOptions.builder()\n .provider(\"alternate\")\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .asn(\"65501\")\n .build())\n .build())\n .segments( \n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build(),\n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment2\")\n .build())\n .segmentActions( \n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.0.0.0/16\")\n .destinations(exampleUsWest2.id())\n .build(),\n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.1.0.0/16\")\n .destinations(exampleUsEast1.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Option 2 - using base_policy_regions\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyRegions: [\n \"us-west-2\",\n \"us-east-1\",\n ],\n createBasePolicy: true,\n});\nconst exampleUsWest2 = new aws.networkmanager.VpcAttachment(\"exampleUsWest2\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_west_2.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_west_2.arn,\n});\nconst exampleUsEast1 = new aws.networkmanager.VpcAttachment(\"exampleUsEast1\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_east_1.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_east_1.arn,\n}, {\n provider: \"alternate\",\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n },\n {\n location: \"us-east-1\",\n },\n ],\n }],\n segments: [\n {\n name: \"segment\",\n },\n {\n name: \"segment2\",\n },\n ],\n segmentActions: [\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.0.0.0/16\"],\n destinations: [exampleUsWest2.id],\n },\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.1.0.0/16\"],\n destinations: [exampleUsEast1.id],\n },\n ],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_regions=[\n \"us-west-2\",\n \"us-east-1\",\n ],\n create_base_policy=True)\nexample_us_west2 = aws.networkmanager.VpcAttachment(\"exampleUsWest2\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_west_2\"]],\n vpc_arn=aws_vpc[\"example_us_west_2\"][\"arn\"])\nexample_us_east1 = aws.networkmanager.VpcAttachment(\"exampleUsEast1\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_east_1\"]],\n vpc_arn=aws_vpc[\"example_us_east_1\"][\"arn\"],\n opts=pulumi.ResourceOptions(provider=\"alternate\"))\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n ),\n ],\n )],\n segments=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment2\",\n ),\n ],\n segment_actions=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.0.0.0/16\"],\n destinations=[example_us_west2.id],\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.1.0.0/16\"],\n destinations=[example_us_east1.id],\n ),\n ])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyRegions = new[]\n {\n \"us-west-2\",\n \"us-east-1\",\n },\n CreateBasePolicy = true,\n });\n\n var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment(\"exampleUsWest2\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_west_2.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_west_2.Arn,\n });\n\n var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment(\"exampleUsEast1\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_east_1.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_east_1.Arn,\n }, new CustomResourceOptions\n {\n Provider = \"alternate\",\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment2\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.0.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsWest2.Id,\n },\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.1.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsEast1.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: exampleGlobalNetwork.ID(),\n\t\t\tBasePolicyRegions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2\"),\n\t\t\t\tpulumi.String(\"us-east-1\"),\n\t\t\t},\n\t\t\tCreateBasePolicy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example_us_west_2 {\n\t\t\tsplat0 = append(splat0, val0.Arn)\n\t\t}\n\t\texampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsWest2\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat0),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat1 []interface{}\n\t\tfor _, val0 := range aws_subnet.Example_us_east_1 {\n\t\t\tsplat1 = append(splat1, val0.Arn)\n\t\t}\n\t\texampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsEast1\", \u0026networkmanager.VpcAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tSubnetArns: toPulumiAnyArray(splat1),\n\t\t\tVpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn),\n\t\t}, pulumi.Provider(\"alternate\"))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\n\t\t\tCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\n\t\t\t\t\tAsnRanges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"65022-65534\"),\n\t\t\t\t\t},\n\t\t\t\t\tEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-west-2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-east-1\"),\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\tSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment\"),\n\t\t\t\t},\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\n\t\t\t\t\tName: pulumi.String(\"segment2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleUsWest2.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"create-route\"),\n\t\t\t\t\tSegment: pulumi.String(\"segment\"),\n\t\t\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\texampleUsEast1.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026exampleCoreNetworkPolicyDocument.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\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyRegions( \n \"us-west-2\",\n \"us-east-1\")\n .createBasePolicy(true)\n .build());\n\n var exampleUsWest2 = new VpcAttachment(\"exampleUsWest2\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_west_2().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_west_2().arn())\n .build());\n\n var exampleUsEast1 = new VpcAttachment(\"exampleUsEast1\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_east_1().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_east_1().arn())\n .build(), CustomResourceOptions.builder()\n .provider(\"alternate\")\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .build())\n .build())\n .segments( \n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build(),\n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment2\")\n .build())\n .segmentActions( \n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.0.0.0/16\")\n .destinations(exampleUsWest2.id())\n .build(),\n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.1.0.0/16\")\n .destinations(exampleUsEast1.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import `aws_networkmanager_core_network_policy_attachment` using the core network ID. For example:\n\n```sh\n $ pulumi import aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment example core-network-0d47f6t230mz46dy4\n```\n ", + "description": "Provides a Core Network Policy Attachment resource. This puts a Core Network Policy to an existing Core Network and executes the change set, which deploys changes globally based on the policy submitted (Sets the policy to `LIVE`).\n\n\u003e **NOTE:** Deleting this resource will not delete the current policy defined in this resource. Deleting this resource will also not revert the current `LIVE` policy to the previous version.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {globalNetworkId: aws_networkmanager_global_network.example.id});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: data.aws_networkmanager_core_network_policy_document.example.json,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=data[\"aws_networkmanager_core_network_policy_document\"][\"example\"][\"json\"])\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 exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = data.Aws_networkmanager_core_network_policy_document.Example.Json,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\n\t\t\tCoreNetworkId: exampleCoreNetwork.ID(),\n\t\t\tPolicyDocument: pulumi.Any(data.Aws_networkmanager_core_network_policy_document.Example.Json),\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.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(data.aws_networkmanager_core_network_policy_document().example().json())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleCoreNetwork:\n type: aws:networkmanager:CoreNetwork\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n exampleCoreNetworkPolicyAttachment:\n type: aws:networkmanager:CoreNetworkPolicyAttachment\n properties:\n coreNetworkId: ${exampleCoreNetwork.id}\n policyDocument: ${data.aws_networkmanager_core_network_policy_document.example.json}\n```\n{{% /example %}}\n### With VPC Attachment (Single Region)\n\nThe example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the `create_base_policy` argument of the `aws.networkmanager.CoreNetwork` resource to `true` if your core network does not currently have any `LIVE` policies (e.g. this is the first `pulumi up` with the core network resource), since a `LIVE` policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a `LIVE` policy, you may exclude the `create_base_policy` argument. There are 2 options to implement this:\n\n- Option 1: Use the `base_policy_document` argument in the `aws.networkmanager.CoreNetwork` resource that allows the most customizations to a base policy. Use this to customize the `edge_locations` `asn`. In the example below, `us-west-2` and ASN `65500` are used in the base policy.\n- Option 2: Use the `create_base_policy` argument only. This creates a base policy in the region specified in the `provider` block.\n{{% example %}}\n### Option 1 - using base_policy_document\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst base = aws.networkmanager.getCoreNetworkPolicyDocument({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n asn: \"65500\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyDocument: base.then(base =\u003e base.json),\n createBasePolicy: true,\n});\nconst exampleVpcAttachment = new aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example.arn,\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n asn: \"65500\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n segmentActions: [{\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"0.0.0.0/0\"],\n destinations: [exampleVpcAttachment.id],\n }],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nbase = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )])\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_document=base.json,\n create_base_policy=True)\nexample_vpc_attachment = aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example\"]],\n vpc_arn=aws_vpc[\"example\"][\"arn\"])\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )],\n segment_actions=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"0.0.0.0/0\"],\n destinations=[example_vpc_attachment.id],\n )])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n });\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyDocument = @base.Apply(@base =\u003e @base.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json)),\n CreateBasePolicy = true,\n });\n\n var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment(\"exampleVpcAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example.Arn,\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"0.0.0.0/0\",\n },\n Destinations = new[]\n {\n exampleVpcAttachment.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\nif err != nil {\nreturn err\n}\nbase, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, \u0026networkmanager.GetCoreNetworkPolicyDocumentArgs{\nCoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{\n{\nAsnRanges: []string{\n\"65022-65534\",\n},\nEdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{\n{\nLocation: \"us-west-2\",\nAsn: pulumi.StringRef(\"65500\"),\n},\n},\n},\n},\nSegments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{\n{\nName: \"segment\",\n},\n},\n}, nil);\nif err != nil {\nreturn err\n}\nexampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\nGlobalNetworkId: exampleGlobalNetwork.ID(),\nBasePolicyDocument: *pulumi.String(base.Json),\nCreateBasePolicy: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example {\nsplat0 = append(splat0, val0.Arn)\n}\nexampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, \"exampleVpcAttachment\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat0),\nVpcArn: pulumi.Any(aws_vpc.Example.Arn),\n})\nif err != nil {\nreturn err\n}\nexampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\nCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\nAsnRanges: pulumi.StringArray{\npulumi.String(\"65022-65534\"),\n},\nEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-west-2\"),\nAsn: pulumi.String(\"65500\"),\n},\n},\n},\n},\nSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment\"),\n},\n},\nSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"0.0.0.0/0\"),\n},\nDestinations: pulumi.StringArray{\nexampleVpcAttachment.ID(),\n},\n},\n},\n}, nil);\n_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\nreturn \u0026exampleCoreNetworkPolicyDocument.Json, nil\n}).(pulumi.StringPtrOutput),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .build());\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyDocument(base.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json()))\n .createBasePolicy(true)\n .build());\n\n var exampleVpcAttachment = new VpcAttachment(\"exampleVpcAttachment\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example().arn())\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"0.0.0.0/0\")\n .destinations(exampleVpcAttachment.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Option 2 - create_base_policy only\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n createBasePolicy: true,\n});\nconst exampleVpcAttachment = new aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example.arn,\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [{\n location: \"us-west-2\",\n }],\n }],\n segments: [{\n name: \"segment\",\n }],\n segmentActions: [{\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"0.0.0.0/0\"],\n destinations: [exampleVpcAttachment.id],\n }],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n create_base_policy=True)\nexample_vpc_attachment = aws.networkmanager.VpcAttachment(\"exampleVpcAttachment\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example\"]],\n vpc_arn=aws_vpc[\"example\"][\"arn\"])\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n )],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )],\n segment_actions=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"0.0.0.0/0\"],\n destinations=[example_vpc_attachment.id],\n )])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n CreateBasePolicy = true,\n });\n\n var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment(\"exampleVpcAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example.Arn,\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"0.0.0.0/0\",\n },\n Destinations = new[]\n {\n exampleVpcAttachment.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\nif err != nil {\nreturn err\n}\nexampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\nGlobalNetworkId: exampleGlobalNetwork.ID(),\nCreateBasePolicy: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example {\nsplat0 = append(splat0, val0.Arn)\n}\nexampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, \"exampleVpcAttachment\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat0),\nVpcArn: pulumi.Any(aws_vpc.Example.Arn),\n})\nif err != nil {\nreturn err\n}\nexampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\nCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\nAsnRanges: pulumi.StringArray{\npulumi.String(\"65022-65534\"),\n},\nEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-west-2\"),\n},\n},\n},\n},\nSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment\"),\n},\n},\nSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"0.0.0.0/0\"),\n},\nDestinations: pulumi.StringArray{\nexampleVpcAttachment.ID(),\n},\n},\n},\n}, nil);\n_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\nreturn \u0026exampleCoreNetworkPolicyDocument.Json, nil\n}).(pulumi.StringPtrOutput),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .createBasePolicy(true)\n .build());\n\n var exampleVpcAttachment = new VpcAttachment(\"exampleVpcAttachment\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example().arn())\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"0.0.0.0/0\")\n .destinations(exampleVpcAttachment.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n### With VPC Attachment (Multi-Region)\n\nThe example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the `create_base_policy` argument of the `aws.networkmanager.CoreNetwork` resource to `true` if your core network does not currently have any `LIVE` policies (e.g. this is the first `pulumi up` with the core network resource), since a `LIVE` policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a `LIVE` policy, you may exclude the `create_base_policy` argument. For multi-region in a core network that does not yet have a `LIVE` policy, there are 2 options:\n\n- Option 1: Use the `base_policy_document` argument that allows the most customizations to a base policy. Use this to customize the `edge_locations` `asn`. In the example below, `us-west-2`, `us-east-1` and specific ASNs are used in the base policy.\n- Option 2: Pass a list of regions to the `aws.networkmanager.CoreNetwork` resource `base_policy_regions` argument. In the example below, `us-west-2` and `us-east-1` are specified in the base policy.\n{{% example %}}\n### Option 1 - using base_policy_document\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst base = aws.networkmanager.getCoreNetworkPolicyDocument({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n asn: \"65500\",\n },\n {\n location: \"us-east-1\",\n asn: \"65501\",\n },\n ],\n }],\n segments: [{\n name: \"segment\",\n }],\n});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyDocument: base.then(base =\u003e base.json),\n createBasePolicy: true,\n});\nconst exampleUsWest2 = new aws.networkmanager.VpcAttachment(\"exampleUsWest2\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_west_2.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_west_2.arn,\n});\nconst exampleUsEast1 = new aws.networkmanager.VpcAttachment(\"exampleUsEast1\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_east_1.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_east_1.arn,\n}, {\n provider: \"alternate\",\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n asn: \"65500\",\n },\n {\n location: \"us-east-1\",\n asn: \"65501\",\n },\n ],\n }],\n segments: [\n {\n name: \"segment\",\n },\n {\n name: \"segment2\",\n },\n ],\n segmentActions: [\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.0.0.0/16\"],\n destinations: [exampleUsWest2.id],\n },\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.1.0.0/16\"],\n destinations: [exampleUsEast1.id],\n },\n ],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nbase = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n asn=\"65501\",\n ),\n ],\n )],\n segments=[aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n )])\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_document=base.json,\n create_base_policy=True)\nexample_us_west2 = aws.networkmanager.VpcAttachment(\"exampleUsWest2\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_west_2\"]],\n vpc_arn=aws_vpc[\"example_us_west_2\"][\"arn\"])\nexample_us_east1 = aws.networkmanager.VpcAttachment(\"exampleUsEast1\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_east_1\"]],\n vpc_arn=aws_vpc[\"example_us_east_1\"][\"arn\"],\n opts=pulumi.ResourceOptions(provider=\"alternate\"))\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n asn=\"65500\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n asn=\"65501\",\n ),\n ],\n )],\n segments=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment2\",\n ),\n ],\n segment_actions=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.0.0.0/16\"],\n destinations=[example_us_west2.id],\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.1.0.0/16\"],\n destinations=[example_us_east1.id],\n ),\n ])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n Asn = \"65501\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n },\n });\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyDocument = @base.Apply(@base =\u003e @base.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json)),\n CreateBasePolicy = true,\n });\n\n var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment(\"exampleUsWest2\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_west_2.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_west_2.Arn,\n });\n\n var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment(\"exampleUsEast1\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_east_1.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_east_1.Arn,\n }, new CustomResourceOptions\n {\n Provider = \"alternate\",\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n Asn = \"65500\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n Asn = \"65501\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment2\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.0.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsWest2.Id,\n },\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.1.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsEast1.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\nif err != nil {\nreturn err\n}\nbase, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, \u0026networkmanager.GetCoreNetworkPolicyDocumentArgs{\nCoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{\n{\nAsnRanges: []string{\n\"65022-65534\",\n},\nEdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{\n{\nLocation: \"us-west-2\",\nAsn: pulumi.StringRef(\"65500\"),\n},\n{\nLocation: \"us-east-1\",\nAsn: pulumi.StringRef(\"65501\"),\n},\n},\n},\n},\nSegments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{\n{\nName: \"segment\",\n},\n},\n}, nil);\nif err != nil {\nreturn err\n}\nexampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\nGlobalNetworkId: exampleGlobalNetwork.ID(),\nBasePolicyDocument: *pulumi.String(base.Json),\nCreateBasePolicy: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example_us_west_2 {\nsplat0 = append(splat0, val0.Arn)\n}\nexampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsWest2\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat0),\nVpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn),\n})\nif err != nil {\nreturn err\n}\nvar splat1 []interface{}\nfor _, val0 := range aws_subnet.Example_us_east_1 {\nsplat1 = append(splat1, val0.Arn)\n}\nexampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsEast1\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat1),\nVpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn),\n}, pulumi.Provider(\"alternate\"))\nif err != nil {\nreturn err\n}\nexampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\nCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\nAsnRanges: pulumi.StringArray{\npulumi.String(\"65022-65534\"),\n},\nEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-west-2\"),\nAsn: pulumi.String(\"65500\"),\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-east-1\"),\nAsn: pulumi.String(\"65501\"),\n},\n},\n},\n},\nSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment\"),\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment2\"),\n},\n},\nSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"10.0.0.0/16\"),\n},\nDestinations: pulumi.StringArray{\nexampleUsWest2.ID(),\n},\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"10.1.0.0/16\"),\n},\nDestinations: pulumi.StringArray{\nexampleUsEast1.ID(),\n},\n},\n},\n}, nil);\n_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\nreturn \u0026exampleCoreNetworkPolicyDocument.Json, nil\n}).(pulumi.StringPtrOutput),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .asn(\"65501\")\n .build())\n .build())\n .segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build())\n .build());\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyDocument(base.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json()))\n .createBasePolicy(true)\n .build());\n\n var exampleUsWest2 = new VpcAttachment(\"exampleUsWest2\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_west_2().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_west_2().arn())\n .build());\n\n var exampleUsEast1 = new VpcAttachment(\"exampleUsEast1\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_east_1().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_east_1().arn())\n .build(), CustomResourceOptions.builder()\n .provider(\"alternate\")\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .asn(\"65500\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .asn(\"65501\")\n .build())\n .build())\n .segments( \n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build(),\n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment2\")\n .build())\n .segmentActions( \n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.0.0.0/16\")\n .destinations(exampleUsWest2.id())\n .build(),\n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.1.0.0/16\")\n .destinations(exampleUsEast1.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Option 2 - using base_policy_regions\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\", {});\nconst exampleCoreNetwork = new aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\", {\n globalNetworkId: exampleGlobalNetwork.id,\n basePolicyRegions: [\n \"us-west-2\",\n \"us-east-1\",\n ],\n createBasePolicy: true,\n});\nconst exampleUsWest2 = new aws.networkmanager.VpcAttachment(\"exampleUsWest2\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_west_2.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_west_2.arn,\n});\nconst exampleUsEast1 = new aws.networkmanager.VpcAttachment(\"exampleUsEast1\", {\n coreNetworkId: exampleCoreNetwork.id,\n subnetArns: aws_subnet.example_us_east_1.map(__item =\u003e __item.arn),\n vpcArn: aws_vpc.example_us_east_1.arn,\n}, {\n provider: \"alternate\",\n});\nconst exampleCoreNetworkPolicyDocument = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({\n coreNetworkConfigurations: [{\n asnRanges: [\"65022-65534\"],\n edgeLocations: [\n {\n location: \"us-west-2\",\n },\n {\n location: \"us-east-1\",\n },\n ],\n }],\n segments: [\n {\n name: \"segment\",\n },\n {\n name: \"segment2\",\n },\n ],\n segmentActions: [\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.0.0.0/16\"],\n destinations: [exampleUsWest2.id],\n },\n {\n action: \"create-route\",\n segment: \"segment\",\n destinationCidrBlocks: [\"10.1.0.0/16\"],\n destinations: [exampleUsEast1.id],\n },\n ],\n});\nconst exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", {\n coreNetworkId: exampleCoreNetwork.id,\n policyDocument: exampleCoreNetworkPolicyDocument.apply(exampleCoreNetworkPolicyDocument =\u003e exampleCoreNetworkPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_global_network = aws.networkmanager.GlobalNetwork(\"exampleGlobalNetwork\")\nexample_core_network = aws.networkmanager.CoreNetwork(\"exampleCoreNetwork\",\n global_network_id=example_global_network.id,\n base_policy_regions=[\n \"us-west-2\",\n \"us-east-1\",\n ],\n create_base_policy=True)\nexample_us_west2 = aws.networkmanager.VpcAttachment(\"exampleUsWest2\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_west_2\"]],\n vpc_arn=aws_vpc[\"example_us_west_2\"][\"arn\"])\nexample_us_east1 = aws.networkmanager.VpcAttachment(\"exampleUsEast1\",\n core_network_id=example_core_network.id,\n subnet_arns=[__item[\"arn\"] for __item in aws_subnet[\"example_us_east_1\"]],\n vpc_arn=aws_vpc[\"example_us_east_1\"][\"arn\"],\n opts=pulumi.ResourceOptions(provider=\"alternate\"))\nexample_core_network_policy_document = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs(\n asn_ranges=[\"65022-65534\"],\n edge_locations=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-west-2\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs(\n location=\"us-east-1\",\n ),\n ],\n )],\n segments=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment\",\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs(\n name=\"segment2\",\n ),\n ],\n segment_actions=[\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.0.0.0/16\"],\n destinations=[example_us_west2.id],\n ),\n aws.networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs(\n action=\"create-route\",\n segment=\"segment\",\n destination_cidr_blocks=[\"10.1.0.0/16\"],\n destinations=[example_us_east1.id],\n ),\n ])\nexample_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\",\n core_network_id=example_core_network.id,\n policy_document=example_core_network_policy_document.json)\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 exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork(\"exampleCoreNetwork\", new()\n {\n GlobalNetworkId = exampleGlobalNetwork.Id,\n BasePolicyRegions = new[]\n {\n \"us-west-2\",\n \"us-east-1\",\n },\n CreateBasePolicy = true,\n });\n\n var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment(\"exampleUsWest2\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_west_2.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_west_2.Arn,\n });\n\n var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment(\"exampleUsEast1\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n SubnetArns = aws_subnet.Example_us_east_1.Select(__item =\u003e __item.Arn).ToList(),\n VpcArn = aws_vpc.Example_us_east_1.Arn,\n }, new CustomResourceOptions\n {\n Provider = \"alternate\",\n });\n\n var exampleCoreNetworkPolicyDocument = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()\n {\n CoreNetworkConfigurations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs\n {\n AsnRanges = new[]\n {\n \"65022-65534\",\n },\n EdgeLocations = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-west-2\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs\n {\n Location = \"us-east-1\",\n },\n },\n },\n },\n Segments = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment\",\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs\n {\n Name = \"segment2\",\n },\n },\n SegmentActions = new[]\n {\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.0.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsWest2.Id,\n },\n },\n new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs\n {\n Action = \"create-route\",\n Segment = \"segment\",\n DestinationCidrBlocks = new[]\n {\n \"10.1.0.0/16\",\n },\n Destinations = new[]\n {\n exampleUsEast1.Id,\n },\n },\n },\n });\n\n var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", new()\n {\n CoreNetworkId = exampleCoreNetwork.Id,\n PolicyDocument = exampleCoreNetworkPolicyDocument.Apply(getCoreNetworkPolicyDocumentResult =\u003e getCoreNetworkPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, \"exampleGlobalNetwork\", nil)\nif err != nil {\nreturn err\n}\nexampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, \"exampleCoreNetwork\", \u0026networkmanager.CoreNetworkArgs{\nGlobalNetworkId: exampleGlobalNetwork.ID(),\nBasePolicyRegions: pulumi.StringArray{\npulumi.String(\"us-west-2\"),\npulumi.String(\"us-east-1\"),\n},\nCreateBasePolicy: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Example_us_west_2 {\nsplat0 = append(splat0, val0.Arn)\n}\nexampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsWest2\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat0),\nVpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn),\n})\nif err != nil {\nreturn err\n}\nvar splat1 []interface{}\nfor _, val0 := range aws_subnet.Example_us_east_1 {\nsplat1 = append(splat1, val0.Arn)\n}\nexampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, \"exampleUsEast1\", \u0026networkmanager.VpcAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nSubnetArns: toPulumiArray(splat1),\nVpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn),\n}, pulumi.Provider(\"alternate\"))\nif err != nil {\nreturn err\n}\nexampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{\nCoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{\nAsnRanges: pulumi.StringArray{\npulumi.String(\"65022-65534\"),\n},\nEdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-west-2\"),\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{\nLocation: pulumi.String(\"us-east-1\"),\n},\n},\n},\n},\nSegments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment\"),\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{\nName: pulumi.String(\"segment2\"),\n},\n},\nSegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"10.0.0.0/16\"),\n},\nDestinations: pulumi.StringArray{\nexampleUsWest2.ID(),\n},\n},\n\u0026networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{\nAction: pulumi.String(\"create-route\"),\nSegment: pulumi.String(\"segment\"),\nDestinationCidrBlocks: pulumi.StringArray{\npulumi.String(\"10.1.0.0/16\"),\n},\nDestinations: pulumi.StringArray{\nexampleUsEast1.ID(),\n},\n},\n},\n}, nil);\n_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, \"exampleCoreNetworkPolicyAttachment\", \u0026networkmanager.CoreNetworkPolicyAttachmentArgs{\nCoreNetworkId: exampleCoreNetwork.ID(),\nPolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) {\nreturn \u0026exampleCoreNetworkPolicyDocument.Json, nil\n}).(pulumi.StringPtrOutput),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetwork;\nimport com.pulumi.aws.networkmanager.CoreNetworkArgs;\nimport com.pulumi.aws.networkmanager.VpcAttachment;\nimport com.pulumi.aws.networkmanager.VpcAttachmentArgs;\nimport com.pulumi.aws.networkmanager.NetworkmanagerFunctions;\nimport com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;\nimport com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;\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 exampleGlobalNetwork = new GlobalNetwork(\"exampleGlobalNetwork\");\n\n var exampleCoreNetwork = new CoreNetwork(\"exampleCoreNetwork\", CoreNetworkArgs.builder() \n .globalNetworkId(exampleGlobalNetwork.id())\n .basePolicyRegions( \n \"us-west-2\",\n \"us-east-1\")\n .createBasePolicy(true)\n .build());\n\n var exampleUsWest2 = new VpcAttachment(\"exampleUsWest2\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_west_2().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_west_2().arn())\n .build());\n\n var exampleUsEast1 = new VpcAttachment(\"exampleUsEast1\", VpcAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .subnetArns(aws_subnet.example_us_east_1().stream().map(element -\u003e element.arn()).collect(toList()))\n .vpcArn(aws_vpc.example_us_east_1().arn())\n .build(), CustomResourceOptions.builder()\n .provider(\"alternate\")\n .build());\n\n final var exampleCoreNetworkPolicyDocument = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()\n .coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()\n .asnRanges(\"65022-65534\")\n .edgeLocations( \n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-west-2\")\n .build(),\n GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()\n .location(\"us-east-1\")\n .build())\n .build())\n .segments( \n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment\")\n .build(),\n GetCoreNetworkPolicyDocumentSegmentArgs.builder()\n .name(\"segment2\")\n .build())\n .segmentActions( \n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.0.0.0/16\")\n .destinations(exampleUsWest2.id())\n .build(),\n GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()\n .action(\"create-route\")\n .segment(\"segment\")\n .destinationCidrBlocks(\"10.1.0.0/16\")\n .destinations(exampleUsEast1.id())\n .build())\n .build());\n\n var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment(\"exampleCoreNetworkPolicyAttachment\", CoreNetworkPolicyAttachmentArgs.builder() \n .coreNetworkId(exampleCoreNetwork.id())\n .policyDocument(exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult).applyValue(exampleCoreNetworkPolicyDocument -\u003e exampleCoreNetworkPolicyDocument.applyValue(getCoreNetworkPolicyDocumentResult -\u003e getCoreNetworkPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import `aws_networkmanager_core_network_policy_attachment` using the core network ID. For example:\n\n```sh\n $ pulumi import aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment example core-network-0d47f6t230mz46dy4\n```\n ", "properties": { "coreNetworkId": { "type": "string", @@ -270623,7 +270636,7 @@ } }, "aws:rds/proxyEndpoint:ProxyEndpoint": { - "description": "Provides an RDS DB proxy endpoint resource. For additional information, see the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy-endpoints.html).\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.rds.ProxyEndpoint(\"example\", {\n dbProxyName: aws_db_proxy.test.name,\n dbProxyEndpointName: \"example\",\n vpcSubnetIds: aws_subnet.test.map(__item =\u003e __item.id),\n targetRole: \"READ_ONLY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.ProxyEndpoint(\"example\",\n db_proxy_name=aws_db_proxy[\"test\"][\"name\"],\n db_proxy_endpoint_name=\"example\",\n vpc_subnet_ids=[__item[\"id\"] for __item in aws_subnet[\"test\"]],\n target_role=\"READ_ONLY\")\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.ProxyEndpoint(\"example\", new()\n {\n DbProxyName = aws_db_proxy.Test.Name,\n DbProxyEndpointName = \"example\",\n VpcSubnetIds = aws_subnet.Test.Select(__item =\u003e __item.Id).ToList(),\n TargetRole = \"READ_ONLY\",\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\tvar splat0 []interface{}\n\t\tfor _, val0 := range aws_subnet.Test {\n\t\t\tsplat0 = append(splat0, val0.Id)\n\t\t}\n\t\t_, err := rds.NewProxyEndpoint(ctx, \"example\", \u0026rds.ProxyEndpointArgs{\n\t\t\tDbProxyName: pulumi.Any(aws_db_proxy.Test.Name),\n\t\t\tDbProxyEndpointName: pulumi.String(\"example\"),\n\t\t\tVpcSubnetIds: toPulumiAnyArray(splat0),\n\t\t\tTargetRole: pulumi.String(\"READ_ONLY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\nfunc toPulumiAnyArray(arr []Any) pulumi.AnyArray {\n\tvar pulumiArr pulumi.AnyArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.Any(v))\n\t}\n\treturn pulumiArr\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.ProxyEndpoint;\nimport com.pulumi.aws.rds.ProxyEndpointArgs;\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 ProxyEndpoint(\"example\", ProxyEndpointArgs.builder() \n .dbProxyName(aws_db_proxy.test().name())\n .dbProxyEndpointName(\"example\")\n .vpcSubnetIds(aws_subnet.test().stream().map(element -\u003e element.id()).collect(toList()))\n .targetRole(\"READ_ONLY\")\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import DB proxy endpoints using the `DB-PROXY-NAME/DB-PROXY-ENDPOINT-NAME`. For example:\n\n```sh\n $ pulumi import aws:rds/proxyEndpoint:ProxyEndpoint example example/example\n```\n ", + "description": "Provides an RDS DB proxy endpoint resource. For additional information, see the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy-endpoints.html).\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.rds.ProxyEndpoint(\"example\", {\n dbProxyName: aws_db_proxy.test.name,\n dbProxyEndpointName: \"example\",\n vpcSubnetIds: aws_subnet.test.map(__item =\u003e __item.id),\n targetRole: \"READ_ONLY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.ProxyEndpoint(\"example\",\n db_proxy_name=aws_db_proxy[\"test\"][\"name\"],\n db_proxy_endpoint_name=\"example\",\n vpc_subnet_ids=[__item[\"id\"] for __item in aws_subnet[\"test\"]],\n target_role=\"READ_ONLY\")\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.ProxyEndpoint(\"example\", new()\n {\n DbProxyName = aws_db_proxy.Test.Name,\n DbProxyEndpointName = \"example\",\n VpcSubnetIds = aws_subnet.Test.Select(__item =\u003e __item.Id).ToList(),\n TargetRole = \"READ_ONLY\",\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)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range aws_subnet.Test {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := rds.NewProxyEndpoint(ctx, \"example\", \u0026rds.ProxyEndpointArgs{\nDbProxyName: pulumi.Any(aws_db_proxy.Test.Name),\nDbProxyEndpointName: pulumi.String(\"example\"),\nVpcSubnetIds: toPulumiArray(splat0),\nTargetRole: pulumi.String(\"READ_ONLY\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.ProxyEndpoint;\nimport com.pulumi.aws.rds.ProxyEndpointArgs;\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 ProxyEndpoint(\"example\", ProxyEndpointArgs.builder() \n .dbProxyName(aws_db_proxy.test().name())\n .dbProxyEndpointName(\"example\")\n .vpcSubnetIds(aws_subnet.test().stream().map(element -\u003e element.id()).collect(toList()))\n .targetRole(\"READ_ONLY\")\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import DB proxy endpoints using the `DB-PROXY-NAME/DB-PROXY-ENDPOINT-NAME`. For example:\n\n```sh\n $ pulumi import aws:rds/proxyEndpoint:ProxyEndpoint example example/example\n```\n ", "properties": { "arn": { "type": "string", @@ -288855,7 +288868,7 @@ "properties": { "arn": { "type": "string", - "description": "ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets).\n" + "description": "ARN of the SQS queue specified as the destination for the dead-letter queue.\n" }, "description": { "type": "string", @@ -288978,7 +288991,7 @@ "properties": { "arn": { "type": "string", - "description": "ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets).\n" + "description": "ARN of the SQS queue specified as the destination for the dead-letter queue.\n" }, "description": { "type": "string", @@ -301278,7 +301291,7 @@ } }, "aws:storagegateway/fileSystemAssociation:FileSystemAssociation": { - "description": "Associate an Amazon FSx file system with the FSx File Gateway. After the association process is complete, the file shares on the Amazon FSx file system are available for access through the gateway. This operation only supports the FSx File Gateway type.\n\n[FSx File Gateway requirements](https://docs.aws.amazon.com/filegateway/latest/filefsxw/Requirements.html).\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.storagegateway.FileSystemAssociation(\"example\", {\n gatewayArn: aws_storagegateway_gateway.example.arn,\n locationArn: aws_fsx_windows_file_system.example.arn,\n username: \"Admin\",\n password: \"avoid-plaintext-passwords\",\n auditDestinationArn: aws_s3_bucket.example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.FileSystemAssociation(\"example\",\n gateway_arn=aws_storagegateway_gateway[\"example\"][\"arn\"],\n location_arn=aws_fsx_windows_file_system[\"example\"][\"arn\"],\n username=\"Admin\",\n password=\"avoid-plaintext-passwords\",\n audit_destination_arn=aws_s3_bucket[\"example\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.FileSystemAssociation(\"example\", new()\n {\n GatewayArn = aws_storagegateway_gateway.Example.Arn,\n LocationArn = aws_fsx_windows_file_system.Example.Arn,\n Username = \"Admin\",\n Password = \"avoid-plaintext-passwords\",\n AuditDestinationArn = aws_s3_bucket.Example.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway\"\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 := storagegateway.NewFileSystemAssociation(ctx, \"example\", \u0026storagegateway.FileSystemAssociationArgs{\n\t\t\tGatewayArn: pulumi.Any(aws_storagegateway_gateway.Example.Arn),\n\t\t\tLocationArn: pulumi.Any(aws_fsx_windows_file_system.Example.Arn),\n\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\tPassword: pulumi.String(\"avoid-plaintext-passwords\"),\n\t\t\tAuditDestinationArn: pulumi.Any(aws_s3_bucket.Example.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.FileSystemAssociation;\nimport com.pulumi.aws.storagegateway.FileSystemAssociationArgs;\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 FileSystemAssociation(\"example\", FileSystemAssociationArgs.builder() \n .gatewayArn(aws_storagegateway_gateway.example().arn())\n .locationArn(aws_fsx_windows_file_system.example().arn())\n .username(\"Admin\")\n .password(\"avoid-plaintext-passwords\")\n .auditDestinationArn(aws_s3_bucket.example().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:FileSystemAssociation\n properties:\n gatewayArn: ${aws_storagegateway_gateway.example.arn}\n locationArn: ${aws_fsx_windows_file_system.example.arn}\n username: Admin\n password: avoid-plaintext-passwords\n auditDestinationArn: ${aws_s3_bucket.example.arn}\n```\n{{% /example %}}\n{{% /examples %}}\n## Required Services Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst awsServiceStoragegatewayAmiFILES3Latest = aws.ssm.getParameter({\n name: \"/aws/service/storagegateway/ami/FILE_S3/latest\",\n});\nconst testInstance = new aws.ec2.Instance(\"testInstance\", {\n ami: awsServiceStoragegatewayAmiFILES3Latest.then(awsServiceStoragegatewayAmiFILES3Latest =\u003e awsServiceStoragegatewayAmiFILES3Latest.value),\n associatePublicIpAddress: true,\n instanceType: aws.ec2.instancetype.InstanceType[data.aws_ec2_instance_type_offering.available.instance_type],\n vpcSecurityGroupIds: [aws_security_group.test.id],\n subnetId: aws_subnet.test[0].id,\n}, {\n dependsOn: [\n aws_route.test,\n aws_vpc_dhcp_options_association.test,\n ],\n});\nconst testGateway = new aws.storagegateway.Gateway(\"testGateway\", {\n gatewayIpAddress: testInstance.publicIp,\n gatewayName: \"test-sgw\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"FILE_FSX_SMB\",\n smbActiveDirectorySettings: {\n domainName: aws_directory_service_directory.test.name,\n password: aws_directory_service_directory.test.password,\n username: \"Admin\",\n },\n});\nconst testWindowsFileSystem = new aws.fsx.WindowsFileSystem(\"testWindowsFileSystem\", {\n activeDirectoryId: aws_directory_service_directory.test.id,\n securityGroupIds: [aws_security_group.test.id],\n skipFinalBackup: true,\n storageCapacity: 32,\n subnetIds: [aws_subnet.test[0].id],\n throughputCapacity: 8,\n});\nconst fsx = new aws.storagegateway.FileSystemAssociation(\"fsx\", {\n gatewayArn: testGateway.arn,\n locationArn: testWindowsFileSystem.arn,\n username: \"Admin\",\n password: aws_directory_service_directory.test.password,\n cacheAttributes: {\n cacheStaleTimeoutInSeconds: 400,\n },\n auditDestinationArn: aws_cloudwatch_log_group.test.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\naws_service_storagegateway_ami_files3_latest = aws.ssm.get_parameter(name=\"/aws/service/storagegateway/ami/FILE_S3/latest\")\ntest_instance = aws.ec2.Instance(\"testInstance\",\n ami=aws_service_storagegateway_ami_files3_latest.value,\n associate_public_ip_address=True,\n instance_type=aws.ec2/instancetype.InstanceType(data[\"aws_ec2_instance_type_offering\"][\"available\"][\"instance_type\"]),\n vpc_security_group_ids=[aws_security_group[\"test\"][\"id\"]],\n subnet_id=aws_subnet[\"test\"][0][\"id\"],\n opts=pulumi.ResourceOptions(depends_on=[\n aws_route[\"test\"],\n aws_vpc_dhcp_options_association[\"test\"],\n ]))\ntest_gateway = aws.storagegateway.Gateway(\"testGateway\",\n gateway_ip_address=test_instance.public_ip,\n gateway_name=\"test-sgw\",\n gateway_timezone=\"GMT\",\n gateway_type=\"FILE_FSX_SMB\",\n smb_active_directory_settings=aws.storagegateway.GatewaySmbActiveDirectorySettingsArgs(\n domain_name=aws_directory_service_directory[\"test\"][\"name\"],\n password=aws_directory_service_directory[\"test\"][\"password\"],\n username=\"Admin\",\n ))\ntest_windows_file_system = aws.fsx.WindowsFileSystem(\"testWindowsFileSystem\",\n active_directory_id=aws_directory_service_directory[\"test\"][\"id\"],\n security_group_ids=[aws_security_group[\"test\"][\"id\"]],\n skip_final_backup=True,\n storage_capacity=32,\n subnet_ids=[aws_subnet[\"test\"][0][\"id\"]],\n throughput_capacity=8)\nfsx = aws.storagegateway.FileSystemAssociation(\"fsx\",\n gateway_arn=test_gateway.arn,\n location_arn=test_windows_file_system.arn,\n username=\"Admin\",\n password=aws_directory_service_directory[\"test\"][\"password\"],\n cache_attributes=aws.storagegateway.FileSystemAssociationCacheAttributesArgs(\n cache_stale_timeout_in_seconds=400,\n ),\n audit_destination_arn=aws_cloudwatch_log_group[\"test\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var awsServiceStoragegatewayAmiFILES3Latest = Aws.Ssm.GetParameter.Invoke(new()\n {\n Name = \"/aws/service/storagegateway/ami/FILE_S3/latest\",\n });\n\n var testInstance = new Aws.Ec2.Instance(\"testInstance\", new()\n {\n Ami = awsServiceStoragegatewayAmiFILES3Latest.Apply(getParameterResult =\u003e getParameterResult.Value),\n AssociatePublicIpAddress = true,\n InstanceType = System.Enum.Parse\u003cAws.Ec2/InstanceType.InstanceType\u003e(data.Aws_ec2_instance_type_offering.Available.Instance_type),\n VpcSecurityGroupIds = new[]\n {\n aws_security_group.Test.Id,\n },\n SubnetId = aws_subnet.Test[0].Id,\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n aws_route.Test,\n aws_vpc_dhcp_options_association.Test,\n },\n });\n\n var testGateway = new Aws.StorageGateway.Gateway(\"testGateway\", new()\n {\n GatewayIpAddress = testInstance.PublicIp,\n GatewayName = \"test-sgw\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"FILE_FSX_SMB\",\n SmbActiveDirectorySettings = new Aws.StorageGateway.Inputs.GatewaySmbActiveDirectorySettingsArgs\n {\n DomainName = aws_directory_service_directory.Test.Name,\n Password = aws_directory_service_directory.Test.Password,\n Username = \"Admin\",\n },\n });\n\n var testWindowsFileSystem = new Aws.Fsx.WindowsFileSystem(\"testWindowsFileSystem\", new()\n {\n ActiveDirectoryId = aws_directory_service_directory.Test.Id,\n SecurityGroupIds = new[]\n {\n aws_security_group.Test.Id,\n },\n SkipFinalBackup = true,\n StorageCapacity = 32,\n SubnetIds = new[]\n {\n aws_subnet.Test[0].Id,\n },\n ThroughputCapacity = 8,\n });\n\n var fsx = new Aws.StorageGateway.FileSystemAssociation(\"fsx\", new()\n {\n GatewayArn = testGateway.Arn,\n LocationArn = testWindowsFileSystem.Arn,\n Username = \"Admin\",\n Password = aws_directory_service_directory.Test.Password,\n CacheAttributes = new Aws.StorageGateway.Inputs.FileSystemAssociationCacheAttributesArgs\n {\n CacheStaleTimeoutInSeconds = 400,\n },\n AuditDestinationArn = aws_cloudwatch_log_group.Test.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tawsServiceStoragegatewayAmiFILES3Latest, err := ssm.LookupParameter(ctx, \u0026ssm.LookupParameterArgs{\n\t\t\tName: \"/aws/service/storagegateway/ami/FILE_S3/latest\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestInstance, err := ec2.NewInstance(ctx, \"testInstance\", \u0026ec2.InstanceArgs{\n\t\t\tAmi: *pulumi.String(awsServiceStoragegatewayAmiFILES3Latest.Value),\n\t\t\tAssociatePublicIpAddress: pulumi.Bool(true),\n\t\t\tInstanceType: ec2.InstanceType(data.Aws_ec2_instance_type_offering.Available.Instance_type),\n\t\t\tVpcSecurityGroupIds: pulumi.StringArray{\n\t\t\t\taws_security_group.Test.Id,\n\t\t\t},\n\t\t\tSubnetId: pulumi.Any(aws_subnet.Test[0].Id),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\taws_route.Test,\n\t\t\taws_vpc_dhcp_options_association.Test,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestGateway, err := storagegateway.NewGateway(ctx, \"testGateway\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: testInstance.PublicIp,\n\t\t\tGatewayName: pulumi.String(\"test-sgw\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"FILE_FSX_SMB\"),\n\t\t\tSmbActiveDirectorySettings: \u0026storagegateway.GatewaySmbActiveDirectorySettingsArgs{\n\t\t\t\tDomainName: pulumi.Any(aws_directory_service_directory.Test.Name),\n\t\t\t\tPassword: pulumi.Any(aws_directory_service_directory.Test.Password),\n\t\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestWindowsFileSystem, err := fsx.NewWindowsFileSystem(ctx, \"testWindowsFileSystem\", \u0026fsx.WindowsFileSystemArgs{\n\t\t\tActiveDirectoryId: pulumi.Any(aws_directory_service_directory.Test.Id),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\taws_security_group.Test.Id,\n\t\t\t},\n\t\t\tSkipFinalBackup: pulumi.Bool(true),\n\t\t\tStorageCapacity: pulumi.Int(32),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\taws_subnet.Test[0].Id,\n\t\t\t},\n\t\t\tThroughputCapacity: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storagegateway.NewFileSystemAssociation(ctx, \"fsx\", \u0026storagegateway.FileSystemAssociationArgs{\n\t\t\tGatewayArn: testGateway.Arn,\n\t\t\tLocationArn: testWindowsFileSystem.Arn,\n\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\tPassword: pulumi.Any(aws_directory_service_directory.Test.Password),\n\t\t\tCacheAttributes: \u0026storagegateway.FileSystemAssociationCacheAttributesArgs{\n\t\t\t\tCacheStaleTimeoutInSeconds: pulumi.Int(400),\n\t\t\t},\n\t\t\tAuditDestinationArn: pulumi.Any(aws_cloudwatch_log_group.Test.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ssm.SsmFunctions;\nimport com.pulumi.aws.ssm.inputs.GetParameterArgs;\nimport com.pulumi.aws.ec2.Instance;\nimport com.pulumi.aws.ec2.InstanceArgs;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport com.pulumi.aws.storagegateway.inputs.GatewaySmbActiveDirectorySettingsArgs;\nimport com.pulumi.aws.fsx.WindowsFileSystem;\nimport com.pulumi.aws.fsx.WindowsFileSystemArgs;\nimport com.pulumi.aws.storagegateway.FileSystemAssociation;\nimport com.pulumi.aws.storagegateway.FileSystemAssociationArgs;\nimport com.pulumi.aws.storagegateway.inputs.FileSystemAssociationCacheAttributesArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var awsServiceStoragegatewayAmiFILES3Latest = SsmFunctions.getParameter(GetParameterArgs.builder()\n .name(\"/aws/service/storagegateway/ami/FILE_S3/latest\")\n .build());\n\n var testInstance = new Instance(\"testInstance\", InstanceArgs.builder() \n .ami(awsServiceStoragegatewayAmiFILES3Latest.applyValue(getParameterResult -\u003e getParameterResult.value()))\n .associatePublicIpAddress(true)\n .instanceType(data.aws_ec2_instance_type_offering().available().instance_type())\n .vpcSecurityGroupIds(aws_security_group.test().id())\n .subnetId(aws_subnet.test()[0].id())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n aws_route.test(),\n aws_vpc_dhcp_options_association.test())\n .build());\n\n var testGateway = new Gateway(\"testGateway\", GatewayArgs.builder() \n .gatewayIpAddress(testInstance.publicIp())\n .gatewayName(\"test-sgw\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"FILE_FSX_SMB\")\n .smbActiveDirectorySettings(GatewaySmbActiveDirectorySettingsArgs.builder()\n .domainName(aws_directory_service_directory.test().name())\n .password(aws_directory_service_directory.test().password())\n .username(\"Admin\")\n .build())\n .build());\n\n var testWindowsFileSystem = new WindowsFileSystem(\"testWindowsFileSystem\", WindowsFileSystemArgs.builder() \n .activeDirectoryId(aws_directory_service_directory.test().id())\n .securityGroupIds(aws_security_group.test().id())\n .skipFinalBackup(true)\n .storageCapacity(32)\n .subnetIds(aws_subnet.test()[0].id())\n .throughputCapacity(8)\n .build());\n\n var fsx = new FileSystemAssociation(\"fsx\", FileSystemAssociationArgs.builder() \n .gatewayArn(testGateway.arn())\n .locationArn(testWindowsFileSystem.arn())\n .username(\"Admin\")\n .password(aws_directory_service_directory.test().password())\n .cacheAttributes(FileSystemAssociationCacheAttributesArgs.builder()\n .cacheStaleTimeoutInSeconds(400)\n .build())\n .auditDestinationArn(aws_cloudwatch_log_group.test().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testInstance:\n type: aws:ec2:Instance\n properties:\n ami: ${awsServiceStoragegatewayAmiFILES3Latest.value}\n associatePublicIpAddress: true\n instanceType: ${data.aws_ec2_instance_type_offering.available.instance_type}\n vpcSecurityGroupIds:\n - ${aws_security_group.test.id}\n subnetId: ${aws_subnet.test[0].id}\n options:\n dependson:\n - ${aws_route.test}\n - ${aws_vpc_dhcp_options_association.test}\n testGateway:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: ${testInstance.publicIp}\n gatewayName: test-sgw\n gatewayTimezone: GMT\n gatewayType: FILE_FSX_SMB\n smbActiveDirectorySettings:\n domainName: ${aws_directory_service_directory.test.name}\n password: ${aws_directory_service_directory.test.password}\n username: Admin\n testWindowsFileSystem:\n type: aws:fsx:WindowsFileSystem\n properties:\n activeDirectoryId: ${aws_directory_service_directory.test.id}\n securityGroupIds:\n - ${aws_security_group.test.id}\n skipFinalBackup: true\n storageCapacity: 32\n subnetIds:\n - ${aws_subnet.test[0].id}\n throughputCapacity: 8\n fsx:\n type: aws:storagegateway:FileSystemAssociation\n properties:\n gatewayArn: ${testGateway.arn}\n locationArn: ${testWindowsFileSystem.arn}\n username: Admin\n password: ${aws_directory_service_directory.test.password}\n cacheAttributes:\n cacheStaleTimeoutInSeconds: 400\n auditDestinationArn: ${aws_cloudwatch_log_group.test.arn}\nvariables:\n awsServiceStoragegatewayAmiFILES3Latest:\n fn::invoke:\n Function: aws:ssm:getParameter\n Arguments:\n name: /aws/service/storagegateway/ami/FILE_S3/latest\n```\n\n\n## Import\n\nUsing `pulumi import`, import `aws_storagegateway_file_system_association` using the FSx file system association Amazon Resource Name (ARN). For example:\n\n```sh\n $ pulumi import aws:storagegateway/fileSystemAssociation:FileSystemAssociation example arn:aws:storagegateway:us-east-1:123456789012:fs-association/fsa-0DA347732FDB40125\n```\n ", + "description": "Associate an Amazon FSx file system with the FSx File Gateway. After the association process is complete, the file shares on the Amazon FSx file system are available for access through the gateway. This operation only supports the FSx File Gateway type.\n\n[FSx File Gateway requirements](https://docs.aws.amazon.com/filegateway/latest/filefsxw/Requirements.html).\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.storagegateway.FileSystemAssociation(\"example\", {\n gatewayArn: aws_storagegateway_gateway.example.arn,\n locationArn: aws_fsx_windows_file_system.example.arn,\n username: \"Admin\",\n password: \"avoid-plaintext-passwords\",\n auditDestinationArn: aws_s3_bucket.example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.FileSystemAssociation(\"example\",\n gateway_arn=aws_storagegateway_gateway[\"example\"][\"arn\"],\n location_arn=aws_fsx_windows_file_system[\"example\"][\"arn\"],\n username=\"Admin\",\n password=\"avoid-plaintext-passwords\",\n audit_destination_arn=aws_s3_bucket[\"example\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.FileSystemAssociation(\"example\", new()\n {\n GatewayArn = aws_storagegateway_gateway.Example.Arn,\n LocationArn = aws_fsx_windows_file_system.Example.Arn,\n Username = \"Admin\",\n Password = \"avoid-plaintext-passwords\",\n AuditDestinationArn = aws_s3_bucket.Example.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway\"\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 := storagegateway.NewFileSystemAssociation(ctx, \"example\", \u0026storagegateway.FileSystemAssociationArgs{\n\t\t\tGatewayArn: pulumi.Any(aws_storagegateway_gateway.Example.Arn),\n\t\t\tLocationArn: pulumi.Any(aws_fsx_windows_file_system.Example.Arn),\n\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\tPassword: pulumi.String(\"avoid-plaintext-passwords\"),\n\t\t\tAuditDestinationArn: pulumi.Any(aws_s3_bucket.Example.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.FileSystemAssociation;\nimport com.pulumi.aws.storagegateway.FileSystemAssociationArgs;\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 FileSystemAssociation(\"example\", FileSystemAssociationArgs.builder() \n .gatewayArn(aws_storagegateway_gateway.example().arn())\n .locationArn(aws_fsx_windows_file_system.example().arn())\n .username(\"Admin\")\n .password(\"avoid-plaintext-passwords\")\n .auditDestinationArn(aws_s3_bucket.example().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:FileSystemAssociation\n properties:\n gatewayArn: ${aws_storagegateway_gateway.example.arn}\n locationArn: ${aws_fsx_windows_file_system.example.arn}\n username: Admin\n password: avoid-plaintext-passwords\n auditDestinationArn: ${aws_s3_bucket.example.arn}\n```\n{{% /example %}}\n{{% /examples %}}\n## Required Services Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst awsServiceStoragegatewayAmiFILES3Latest = aws.ssm.getParameter({\n name: \"/aws/service/storagegateway/ami/FILE_S3/latest\",\n});\nconst testInstance = new aws.ec2.Instance(\"testInstance\", {\n ami: awsServiceStoragegatewayAmiFILES3Latest.then(awsServiceStoragegatewayAmiFILES3Latest =\u003e awsServiceStoragegatewayAmiFILES3Latest.value),\n associatePublicIpAddress: true,\n instanceType: aws.ec2.instancetype.InstanceType[data.aws_ec2_instance_type_offering.available.instance_type],\n vpcSecurityGroupIds: [aws_security_group.test.id],\n subnetId: aws_subnet.test[0].id,\n}, {\n dependsOn: [\n aws_route.test,\n aws_vpc_dhcp_options_association.test,\n ],\n});\nconst testGateway = new aws.storagegateway.Gateway(\"testGateway\", {\n gatewayIpAddress: testInstance.publicIp,\n gatewayName: \"test-sgw\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"FILE_FSX_SMB\",\n smbActiveDirectorySettings: {\n domainName: aws_directory_service_directory.test.name,\n password: aws_directory_service_directory.test.password,\n username: \"Admin\",\n },\n});\nconst testWindowsFileSystem = new aws.fsx.WindowsFileSystem(\"testWindowsFileSystem\", {\n activeDirectoryId: aws_directory_service_directory.test.id,\n securityGroupIds: [aws_security_group.test.id],\n skipFinalBackup: true,\n storageCapacity: 32,\n subnetIds: [aws_subnet.test[0].id],\n throughputCapacity: 8,\n});\nconst fsx = new aws.storagegateway.FileSystemAssociation(\"fsx\", {\n gatewayArn: testGateway.arn,\n locationArn: testWindowsFileSystem.arn,\n username: \"Admin\",\n password: aws_directory_service_directory.test.password,\n cacheAttributes: {\n cacheStaleTimeoutInSeconds: 400,\n },\n auditDestinationArn: aws_cloudwatch_log_group.test.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\naws_service_storagegateway_ami_files3_latest = aws.ssm.get_parameter(name=\"/aws/service/storagegateway/ami/FILE_S3/latest\")\ntest_instance = aws.ec2.Instance(\"testInstance\",\n ami=aws_service_storagegateway_ami_files3_latest.value,\n associate_public_ip_address=True,\n instance_type=aws.ec2/instancetype.InstanceType(data[\"aws_ec2_instance_type_offering\"][\"available\"][\"instance_type\"]),\n vpc_security_group_ids=[aws_security_group[\"test\"][\"id\"]],\n subnet_id=aws_subnet[\"test\"][0][\"id\"],\n opts=pulumi.ResourceOptions(depends_on=[\n aws_route[\"test\"],\n aws_vpc_dhcp_options_association[\"test\"],\n ]))\ntest_gateway = aws.storagegateway.Gateway(\"testGateway\",\n gateway_ip_address=test_instance.public_ip,\n gateway_name=\"test-sgw\",\n gateway_timezone=\"GMT\",\n gateway_type=\"FILE_FSX_SMB\",\n smb_active_directory_settings=aws.storagegateway.GatewaySmbActiveDirectorySettingsArgs(\n domain_name=aws_directory_service_directory[\"test\"][\"name\"],\n password=aws_directory_service_directory[\"test\"][\"password\"],\n username=\"Admin\",\n ))\ntest_windows_file_system = aws.fsx.WindowsFileSystem(\"testWindowsFileSystem\",\n active_directory_id=aws_directory_service_directory[\"test\"][\"id\"],\n security_group_ids=[aws_security_group[\"test\"][\"id\"]],\n skip_final_backup=True,\n storage_capacity=32,\n subnet_ids=[aws_subnet[\"test\"][0][\"id\"]],\n throughput_capacity=8)\nfsx = aws.storagegateway.FileSystemAssociation(\"fsx\",\n gateway_arn=test_gateway.arn,\n location_arn=test_windows_file_system.arn,\n username=\"Admin\",\n password=aws_directory_service_directory[\"test\"][\"password\"],\n cache_attributes=aws.storagegateway.FileSystemAssociationCacheAttributesArgs(\n cache_stale_timeout_in_seconds=400,\n ),\n audit_destination_arn=aws_cloudwatch_log_group[\"test\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var awsServiceStoragegatewayAmiFILES3Latest = Aws.Ssm.GetParameter.Invoke(new()\n {\n Name = \"/aws/service/storagegateway/ami/FILE_S3/latest\",\n });\n\n var testInstance = new Aws.Ec2.Instance(\"testInstance\", new()\n {\n Ami = awsServiceStoragegatewayAmiFILES3Latest.Apply(getParameterResult =\u003e getParameterResult.Value),\n AssociatePublicIpAddress = true,\n InstanceType = System.Enum.Parse\u003cAws.Ec2.InstanceType.InstanceType\u003e(data.Aws_ec2_instance_type_offering.Available.Instance_type),\n VpcSecurityGroupIds = new[]\n {\n aws_security_group.Test.Id,\n },\n SubnetId = aws_subnet.Test[0].Id,\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n aws_route.Test,\n aws_vpc_dhcp_options_association.Test,\n },\n });\n\n var testGateway = new Aws.StorageGateway.Gateway(\"testGateway\", new()\n {\n GatewayIpAddress = testInstance.PublicIp,\n GatewayName = \"test-sgw\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"FILE_FSX_SMB\",\n SmbActiveDirectorySettings = new Aws.StorageGateway.Inputs.GatewaySmbActiveDirectorySettingsArgs\n {\n DomainName = aws_directory_service_directory.Test.Name,\n Password = aws_directory_service_directory.Test.Password,\n Username = \"Admin\",\n },\n });\n\n var testWindowsFileSystem = new Aws.Fsx.WindowsFileSystem(\"testWindowsFileSystem\", new()\n {\n ActiveDirectoryId = aws_directory_service_directory.Test.Id,\n SecurityGroupIds = new[]\n {\n aws_security_group.Test.Id,\n },\n SkipFinalBackup = true,\n StorageCapacity = 32,\n SubnetIds = new[]\n {\n aws_subnet.Test[0].Id,\n },\n ThroughputCapacity = 8,\n });\n\n var fsx = new Aws.StorageGateway.FileSystemAssociation(\"fsx\", new()\n {\n GatewayArn = testGateway.Arn,\n LocationArn = testWindowsFileSystem.Arn,\n Username = \"Admin\",\n Password = aws_directory_service_directory.Test.Password,\n CacheAttributes = new Aws.StorageGateway.Inputs.FileSystemAssociationCacheAttributesArgs\n {\n CacheStaleTimeoutInSeconds = 400,\n },\n AuditDestinationArn = aws_cloudwatch_log_group.Test.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tawsServiceStoragegatewayAmiFILES3Latest, err := ssm.LookupParameter(ctx, \u0026ssm.LookupParameterArgs{\n\t\t\tName: \"/aws/service/storagegateway/ami/FILE_S3/latest\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestInstance, err := ec2.NewInstance(ctx, \"testInstance\", \u0026ec2.InstanceArgs{\n\t\t\tAmi: *pulumi.String(awsServiceStoragegatewayAmiFILES3Latest.Value),\n\t\t\tAssociatePublicIpAddress: pulumi.Bool(true),\n\t\t\tInstanceType: ec2.InstanceType(data.Aws_ec2_instance_type_offering.Available.Instance_type),\n\t\t\tVpcSecurityGroupIds: pulumi.StringArray{\n\t\t\t\taws_security_group.Test.Id,\n\t\t\t},\n\t\t\tSubnetId: pulumi.Any(aws_subnet.Test[0].Id),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\taws_route.Test,\n\t\t\taws_vpc_dhcp_options_association.Test,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestGateway, err := storagegateway.NewGateway(ctx, \"testGateway\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: testInstance.PublicIp,\n\t\t\tGatewayName: pulumi.String(\"test-sgw\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"FILE_FSX_SMB\"),\n\t\t\tSmbActiveDirectorySettings: \u0026storagegateway.GatewaySmbActiveDirectorySettingsArgs{\n\t\t\t\tDomainName: pulumi.Any(aws_directory_service_directory.Test.Name),\n\t\t\t\tPassword: pulumi.Any(aws_directory_service_directory.Test.Password),\n\t\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestWindowsFileSystem, err := fsx.NewWindowsFileSystem(ctx, \"testWindowsFileSystem\", \u0026fsx.WindowsFileSystemArgs{\n\t\t\tActiveDirectoryId: pulumi.Any(aws_directory_service_directory.Test.Id),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\taws_security_group.Test.Id,\n\t\t\t},\n\t\t\tSkipFinalBackup: pulumi.Bool(true),\n\t\t\tStorageCapacity: pulumi.Int(32),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\taws_subnet.Test[0].Id,\n\t\t\t},\n\t\t\tThroughputCapacity: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storagegateway.NewFileSystemAssociation(ctx, \"fsx\", \u0026storagegateway.FileSystemAssociationArgs{\n\t\t\tGatewayArn: testGateway.Arn,\n\t\t\tLocationArn: testWindowsFileSystem.Arn,\n\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\tPassword: pulumi.Any(aws_directory_service_directory.Test.Password),\n\t\t\tCacheAttributes: \u0026storagegateway.FileSystemAssociationCacheAttributesArgs{\n\t\t\t\tCacheStaleTimeoutInSeconds: pulumi.Int(400),\n\t\t\t},\n\t\t\tAuditDestinationArn: pulumi.Any(aws_cloudwatch_log_group.Test.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ssm.SsmFunctions;\nimport com.pulumi.aws.ssm.inputs.GetParameterArgs;\nimport com.pulumi.aws.ec2.Instance;\nimport com.pulumi.aws.ec2.InstanceArgs;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport com.pulumi.aws.storagegateway.inputs.GatewaySmbActiveDirectorySettingsArgs;\nimport com.pulumi.aws.fsx.WindowsFileSystem;\nimport com.pulumi.aws.fsx.WindowsFileSystemArgs;\nimport com.pulumi.aws.storagegateway.FileSystemAssociation;\nimport com.pulumi.aws.storagegateway.FileSystemAssociationArgs;\nimport com.pulumi.aws.storagegateway.inputs.FileSystemAssociationCacheAttributesArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var awsServiceStoragegatewayAmiFILES3Latest = SsmFunctions.getParameter(GetParameterArgs.builder()\n .name(\"/aws/service/storagegateway/ami/FILE_S3/latest\")\n .build());\n\n var testInstance = new Instance(\"testInstance\", InstanceArgs.builder() \n .ami(awsServiceStoragegatewayAmiFILES3Latest.applyValue(getParameterResult -\u003e getParameterResult.value()))\n .associatePublicIpAddress(true)\n .instanceType(data.aws_ec2_instance_type_offering().available().instance_type())\n .vpcSecurityGroupIds(aws_security_group.test().id())\n .subnetId(aws_subnet.test()[0].id())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n aws_route.test(),\n aws_vpc_dhcp_options_association.test())\n .build());\n\n var testGateway = new Gateway(\"testGateway\", GatewayArgs.builder() \n .gatewayIpAddress(testInstance.publicIp())\n .gatewayName(\"test-sgw\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"FILE_FSX_SMB\")\n .smbActiveDirectorySettings(GatewaySmbActiveDirectorySettingsArgs.builder()\n .domainName(aws_directory_service_directory.test().name())\n .password(aws_directory_service_directory.test().password())\n .username(\"Admin\")\n .build())\n .build());\n\n var testWindowsFileSystem = new WindowsFileSystem(\"testWindowsFileSystem\", WindowsFileSystemArgs.builder() \n .activeDirectoryId(aws_directory_service_directory.test().id())\n .securityGroupIds(aws_security_group.test().id())\n .skipFinalBackup(true)\n .storageCapacity(32)\n .subnetIds(aws_subnet.test()[0].id())\n .throughputCapacity(8)\n .build());\n\n var fsx = new FileSystemAssociation(\"fsx\", FileSystemAssociationArgs.builder() \n .gatewayArn(testGateway.arn())\n .locationArn(testWindowsFileSystem.arn())\n .username(\"Admin\")\n .password(aws_directory_service_directory.test().password())\n .cacheAttributes(FileSystemAssociationCacheAttributesArgs.builder()\n .cacheStaleTimeoutInSeconds(400)\n .build())\n .auditDestinationArn(aws_cloudwatch_log_group.test().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testInstance:\n type: aws:ec2:Instance\n properties:\n ami: ${awsServiceStoragegatewayAmiFILES3Latest.value}\n associatePublicIpAddress: true\n instanceType: ${data.aws_ec2_instance_type_offering.available.instance_type}\n vpcSecurityGroupIds:\n - ${aws_security_group.test.id}\n subnetId: ${aws_subnet.test[0].id}\n options:\n dependson:\n - ${aws_route.test}\n - ${aws_vpc_dhcp_options_association.test}\n testGateway:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: ${testInstance.publicIp}\n gatewayName: test-sgw\n gatewayTimezone: GMT\n gatewayType: FILE_FSX_SMB\n smbActiveDirectorySettings:\n domainName: ${aws_directory_service_directory.test.name}\n password: ${aws_directory_service_directory.test.password}\n username: Admin\n testWindowsFileSystem:\n type: aws:fsx:WindowsFileSystem\n properties:\n activeDirectoryId: ${aws_directory_service_directory.test.id}\n securityGroupIds:\n - ${aws_security_group.test.id}\n skipFinalBackup: true\n storageCapacity: 32\n subnetIds:\n - ${aws_subnet.test[0].id}\n throughputCapacity: 8\n fsx:\n type: aws:storagegateway:FileSystemAssociation\n properties:\n gatewayArn: ${testGateway.arn}\n locationArn: ${testWindowsFileSystem.arn}\n username: Admin\n password: ${aws_directory_service_directory.test.password}\n cacheAttributes:\n cacheStaleTimeoutInSeconds: 400\n auditDestinationArn: ${aws_cloudwatch_log_group.test.arn}\nvariables:\n awsServiceStoragegatewayAmiFILES3Latest:\n fn::invoke:\n Function: aws:ssm:getParameter\n Arguments:\n name: /aws/service/storagegateway/ami/FILE_S3/latest\n```\n\n\n## Import\n\nUsing `pulumi import`, import `aws_storagegateway_file_system_association` using the FSx file system association Amazon Resource Name (ARN). For example:\n\n```sh\n $ pulumi import aws:storagegateway/fileSystemAssociation:FileSystemAssociation example arn:aws:storagegateway:us-east-1:123456789012:fs-association/fsa-0DA347732FDB40125\n```\n ", "properties": { "arn": { "type": "string", diff --git a/provider/go.mod b/provider/go.mod index eeed32a50b5..90306d4b00a 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -8,10 +8,10 @@ require ( github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0 github.com/hashicorp/terraform-provider-aws v1.60.1-0.20220923175450-ca71523cdc36 github.com/mitchellh/go-homedir v1.1.0 - github.com/pulumi/pulumi-terraform-bridge/pf v0.16.2-0.20230927165309-e3fd9503f2d3 - github.com/pulumi/pulumi-terraform-bridge/v3 v3.60.2-0.20230927165309-e3fd9503f2d3 - github.com/pulumi/pulumi/pkg/v3 v3.81.0 - github.com/pulumi/pulumi/sdk/v3 v3.81.0 + github.com/pulumi/pulumi-terraform-bridge/pf v0.18.2 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.63.1 + github.com/pulumi/pulumi/pkg/v3 v3.90.1 + github.com/pulumi/pulumi/sdk/v3 v3.90.1 github.com/stretchr/testify v1.8.4 pgregory.net/rapid v0.6.1 ) @@ -36,12 +36,7 @@ require ( cloud.google.com/go/longrunning v0.5.1 // indirect cloud.google.com/go/storage v1.30.1 // indirect dario.cat/mergo v1.0.0 // indirect - github.com/AlecAivazis/survey/v2 v2.0.5 // indirect github.com/Azure/azure-sdk-for-go v66.0.0+incompatible // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest v0.11.28 // indirect github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect @@ -52,7 +47,6 @@ require ( github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver v1.5.0 // indirect @@ -171,7 +165,6 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/djherbis/times v1.5.0 // indirect - github.com/dustin/go-humanize v1.0.1 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ettle/strcase v0.1.1 // indirect @@ -184,7 +177,6 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt v3.2.1+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.4.3 // indirect github.com/golang/glog v1.1.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -230,7 +222,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.1 // indirect + github.com/hashicorp/terraform-plugin-framework v1.4.2 // 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 @@ -244,23 +236,19 @@ require ( github.com/hashicorp/yamux v0.1.1 // indirect github.com/huandu/xstrings v1.4.0 // indirect github.com/iancoleman/strcase v0.2.0 // indirect - github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd // indirect github.com/imdario/mergo v0.3.15 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/klauspost/compress v1.15.11 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattbaird/jsonpatch v0.0.0-20230413205102-771768614e91 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect - github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect github.com/mitchellh/cli v1.1.5 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect @@ -282,12 +270,12 @@ require ( github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/posener/complete v1.2.3 // indirect - github.com/pulumi/pulumi-java/pkg v0.9.6 // indirect + github.com/pulumi/esc v0.5.6 // indirect + github.com/pulumi/pulumi-java/pkg v0.9.8 // indirect github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7-0.20230801203955-5d215c892096 // indirect github.com/pulumi/pulumi-yaml v1.2.2 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect diff --git a/provider/go.sum b/provider/go.sum index 33ac76f0185..5e7c6b52f91 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -629,8 +629,6 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= -github.com/AlecAivazis/survey/v2 v2.0.5 h1:xpZp+Q55wi5C7Iaze+40onHnEkex1jSc34CltJjOoPM= -github.com/AlecAivazis/survey/v2 v2.0.5/go.mod h1:WYBhg6f0y/fNYUuesWQc0PKbJcEliGcYHB9sNT3Bg74= github.com/Azure/azure-amqp-common-go/v3 v3.2.3/go.mod h1:7rPmbSfszeovxGfc5fSAXE4ehlXQZHpMja2OtxC2Tas= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v63.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= @@ -639,16 +637,12 @@ github.com/Azure/azure-sdk-for-go v66.0.0+incompatible h1:bmmC38SlE8/E81nNADlgmV github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1 h1:tz19qLF65vuu2ibfTqGVJxG/zZAI27NEIIbvAOQwYbw= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 h1:Yoicul8bnVdQrhDMTHxdEckRGX01XvwXDHUT9zYZ3k0= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus v1.0.2/go.mod h1:LH9XQnMr2ZYxQdVdCrzLO9mxeDyrDFa6wbSI3x5zCZk= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1 h1:QSdcrd/UFJv6Bp/CfoVf2SrENpFn9P6Yh8yb+xNhYMM= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA= github.com/Azure/go-amqp v0.17.0/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg= github.com/Azure/go-amqp v0.17.5/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg= @@ -693,7 +687,6 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c= github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= @@ -743,9 +736,6 @@ github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5 github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8/go.mod h1:oX5x61PbNXchhh0oikYAH+4Pcfw5LKv21+Jnpr6r6Pc= -github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= -github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 h1:KLq8BE0KwCL+mmXnjLWEAOYO+2l2AE4YMmqG1ZpZHBs= github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= @@ -1253,8 +1243,6 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI= -github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= @@ -1280,7 +1268,6 @@ github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= -github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= @@ -1302,8 +1289,6 @@ github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -1523,7 +1508,6 @@ github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= @@ -1868,9 +1852,6 @@ github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUq github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hexops/valast v1.4.0 h1:sFzyxPDP0riFQUzSBXTCCrAbbIndHPWMndxuEjXdZlc= github.com/hexops/valast v1.4.0/go.mod h1:uVjKZ0smVuYlgCSPz9NRi5A04sl7lp6GtFWsROKDgEs= -github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= -github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02 h1:AgcIVYPa6XJnU3phs104wLj8l5GEththEw6+F79YsIY= -github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= @@ -1884,8 +1865,6 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= -github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd h1:anPrsicrIi2ColgWTVPk+TrN42hJIWlfPHSBP9S0ZkM= -github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= @@ -1981,7 +1960,6 @@ github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+ github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= @@ -2013,7 +1991,6 @@ github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NB github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -2056,7 +2033,6 @@ github.com/mattbaird/jsonpatch v0.0.0-20230413205102-771768614e91 h1:JnZSkFP1/GL github.com/mattbaird/jsonpatch v0.0.0-20230413205102-771768614e91/go.mod h1:M1qoD/MqPgTZIk0EWKB38wE28ACRfVcn+cU08jyArI0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -2090,8 +2066,6 @@ github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/microsoft/ApplicationInsights-Go v0.4.4/go.mod h1:fKRUseBqkw6bDiXTs3ESTiU/4YTIHsQS4W3fP2ieF4U= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= @@ -2286,7 +2260,6 @@ github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFu github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -2365,22 +2338,24 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/prometheus v0.35.0/go.mod h1:7HaLx5kEPKJ0GDgbODG0fZgXbQ8K/XjZNJXQmbmgQlY= github.com/prometheus/prometheus v0.37.0/go.mod h1:egARUgz+K93zwqsVIAneFlLZefyGOON44WyAp4Xqbbk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/pulumi/pulumi-java/pkg v0.9.6 h1:UJrOAsYHRchwb4QlfI9Q224qg1TOI3rIsI6DDTUnn30= -github.com/pulumi/pulumi-java/pkg v0.9.6/go.mod h1:c6rSw/+q4O0IImgJ9axxoC6QesbPYWBaG5gimbHouUQ= -github.com/pulumi/pulumi-terraform-bridge/pf v0.16.2-0.20230927165309-e3fd9503f2d3 h1:yzYF58gLZ2aSzI/gPtBMniXZjsXl+ADyqxraI58Pq1A= -github.com/pulumi/pulumi-terraform-bridge/pf v0.16.2-0.20230927165309-e3fd9503f2d3/go.mod h1:NptD1F0yCzgtLptN9OoDQGcejAHSI9LcX1NW2GrxIS0= +github.com/pulumi/esc v0.5.6 h1:4WV3X7OEVcChIwbSG+JxhZDdmq/q7lFPaSjHRYlPwmI= +github.com/pulumi/esc v0.5.6/go.mod h1:wpwNfVS5fV7Kd51j4dJ6FWYlKfxdqyppgp0gtkzqH04= +github.com/pulumi/pulumi-java/pkg v0.9.8 h1:c8mYsalnRXA2Ibgvv6scefOn6mW1Vb0UT0mcDqjsivQ= +github.com/pulumi/pulumi-java/pkg v0.9.8/go.mod h1:c6rSw/+q4O0IImgJ9axxoC6QesbPYWBaG5gimbHouUQ= +github.com/pulumi/pulumi-terraform-bridge/pf v0.18.2 h1:lSm5nbZETkeVNJQTcGOmuHCSXPhDj72dFC2Wan08Wpg= +github.com/pulumi/pulumi-terraform-bridge/pf v0.18.2/go.mod h1:4ii0lFkIQMhCZg5du0xEtAB36Kk0WuLtDVO/ntTxRIs= github.com/pulumi/pulumi-terraform-bridge/testing v0.0.1 h1:SCg1gjfY9N4yn8U8peIUYATifjoDABkyR7H9lmefsfc= github.com/pulumi/pulumi-terraform-bridge/testing v0.0.1/go.mod h1:7OeUPH8rpt5ipyj9EFcnXpuzQ8SHL0dyqdfa8nOacdk= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.60.2-0.20230927165309-e3fd9503f2d3 h1:tMkrGh9mfSyYi7Ncwo/79ivqLqgzwVf/G93lcMSP4iM= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.60.2-0.20230927165309-e3fd9503f2d3/go.mod h1:o0Vfch2UXtHOnGYpNElzGg4htT6B8X8hS9fa5AguP7g= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.63.1 h1:hBgediyT2LdS5yfD5AMiCmBJ/TYP94Xxv6a4TcAfV0g= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.63.1/go.mod h1:6YVbDo019OeHkQWo9MnUbBy6cCgCQeoXZDjmR9SYmUA= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7-0.20230801203955-5d215c892096 h1:1nzT9XuyTHdcWJboYNMPPdW0B0mQdXYg8Az5tF96MXY= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7-0.20230801203955-5d215c892096/go.mod h1:1pLAP9kryYta3Xrw99oh7BmxY6PYb+z2m7ENNCJMIRQ= github.com/pulumi/pulumi-yaml v1.2.2 h1:W6BeUBLhDrJ2GSU0em1AUVelG9PBI4ABY61DdhJOO3E= github.com/pulumi/pulumi-yaml v1.2.2/go.mod h1:EgakC7b/4+VBNnlgM1RZIea2gUstV8s/7bdFJZt0P64= -github.com/pulumi/pulumi/pkg/v3 v3.81.0 h1:6rf2farQLszi8inHCu9YdJtDvK0fqNguix51b3FEDRQ= -github.com/pulumi/pulumi/pkg/v3 v3.81.0/go.mod h1:URXozJB/abhxb2yOwa5ywHjT2dqt9SmAX2iLkdcOOl0= -github.com/pulumi/pulumi/sdk/v3 v3.81.0 h1:d711GUpjZK1beNpIKFReC1LBmHXYE684sYWntJWQ4Q0= -github.com/pulumi/pulumi/sdk/v3 v3.81.0/go.mod h1:RMilNNVMlmK1h4Nl/qylb9vzbgh4F3mufZoUOnPy98o= +github.com/pulumi/pulumi/pkg/v3 v3.90.1 h1:RFC/eqTbDfIvfeVQL8WaPmyQr1KzZhAGIIDGr9jj9y8= +github.com/pulumi/pulumi/pkg/v3 v3.90.1/go.mod h1:J+WbfN30g3FfQifpLjQPI0UhPsC9ASEePLK8Nix06A8= +github.com/pulumi/pulumi/sdk/v3 v3.90.1 h1:iT4t57N92WGhEQtg+KVDEmYzgfEyri39eihQzcNmtrM= +github.com/pulumi/pulumi/sdk/v3 v3.90.1/go.mod h1:zYaQQibB2pYKy/uG4c4YkX7lQIBpZ0KsuMaq/3HsIBQ= github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo= github.com/pulumi/schema-tools v0.1.2/go.mod h1:62lgj52Tzq11eqWTIaKd+EVyYAu5dEcDJxMhTjvMO/k= github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI= @@ -2511,7 +2486,6 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -2736,7 +2710,6 @@ golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaE golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -3016,7 +2989,6 @@ golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/sdk/dotnet/Acm/Certificate.cs b/sdk/dotnet/Acm/Certificate.cs index 53ee53b70d7..e1cce632ca3 100644 --- a/sdk/dotnet/Acm/Certificate.cs +++ b/sdk/dotnet/Acm/Certificate.cs @@ -174,7 +174,7 @@ namespace Pulumi.Aws.Acm /// range.Value.Record, /// }, /// Ttl = 60, - /// Type = System.Enum.Parse<Aws.Route53/RecordType.RecordType>(range.Value.Type), + /// Type = System.Enum.Parse<Aws.Route53.RecordType.RecordType>(range.Value.Type), /// ZoneId = aws_route53_zone.Example.Zone_id, /// })); /// } diff --git a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHostHeaderArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHostHeaderArgs.cs index 3d487f78179..8433e01cb9c 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHostHeaderArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHostHeaderArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionHostHeaderArgs : global::Pulumi.Resourc /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHostHeaderGetArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHostHeaderGetArgs.cs index 1f0ffc5008c..2d58c96338e 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHostHeaderGetArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHostHeaderGetArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionHostHeaderGetArgs : global::Pulumi.Reso /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHttpRequestMethodArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHttpRequestMethodArgs.cs index e01ef5d524c..1d88fa21ac0 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHttpRequestMethodArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHttpRequestMethodArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionHttpRequestMethodArgs : global::Pulumi. /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHttpRequestMethodGetArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHttpRequestMethodGetArgs.cs index 07511a335ad..672c0d19cbd 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHttpRequestMethodGetArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionHttpRequestMethodGetArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionHttpRequestMethodGetArgs : global::Pulu /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionPathPatternArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionPathPatternArgs.cs index b03b8250542..3575ecd5c9f 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionPathPatternArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionPathPatternArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionPathPatternArgs : global::Pulumi.Resour /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionPathPatternGetArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionPathPatternGetArgs.cs index 688c3c5182a..da8b3aa703f 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionPathPatternGetArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionPathPatternGetArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionPathPatternGetArgs : global::Pulumi.Res /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionSourceIpArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionSourceIpArgs.cs index a090c2cba79..f591ca62147 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionSourceIpArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionSourceIpArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionSourceIpArgs : global::Pulumi.ResourceA /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionSourceIpGetArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionSourceIpGetArgs.cs index 25362b7ebd0..810074927f1 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerRuleConditionSourceIpGetArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerRuleConditionSourceIpGetArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionSourceIpGetArgs : global::Pulumi.Resour /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/Alb/Outputs/ListenerRuleConditionHostHeader.cs b/sdk/dotnet/Alb/Outputs/ListenerRuleConditionHostHeader.cs index 263dafd68ca..a2bea019783 100644 --- a/sdk/dotnet/Alb/Outputs/ListenerRuleConditionHostHeader.cs +++ b/sdk/dotnet/Alb/Outputs/ListenerRuleConditionHostHeader.cs @@ -15,9 +15,6 @@ public sealed class ListenerRuleConditionHostHeader { /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public readonly ImmutableArray Values; diff --git a/sdk/dotnet/Alb/Outputs/ListenerRuleConditionHttpRequestMethod.cs b/sdk/dotnet/Alb/Outputs/ListenerRuleConditionHttpRequestMethod.cs index 555f70a3cd5..aa51d18b7f3 100644 --- a/sdk/dotnet/Alb/Outputs/ListenerRuleConditionHttpRequestMethod.cs +++ b/sdk/dotnet/Alb/Outputs/ListenerRuleConditionHttpRequestMethod.cs @@ -15,9 +15,6 @@ public sealed class ListenerRuleConditionHttpRequestMethod { /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public readonly ImmutableArray Values; diff --git a/sdk/dotnet/Alb/Outputs/ListenerRuleConditionPathPattern.cs b/sdk/dotnet/Alb/Outputs/ListenerRuleConditionPathPattern.cs index 65f877eb0fd..cf36113c366 100644 --- a/sdk/dotnet/Alb/Outputs/ListenerRuleConditionPathPattern.cs +++ b/sdk/dotnet/Alb/Outputs/ListenerRuleConditionPathPattern.cs @@ -15,9 +15,6 @@ public sealed class ListenerRuleConditionPathPattern { /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public readonly ImmutableArray Values; diff --git a/sdk/dotnet/Alb/Outputs/ListenerRuleConditionSourceIp.cs b/sdk/dotnet/Alb/Outputs/ListenerRuleConditionSourceIp.cs index d91edde7ce0..e7cead9597f 100644 --- a/sdk/dotnet/Alb/Outputs/ListenerRuleConditionSourceIp.cs +++ b/sdk/dotnet/Alb/Outputs/ListenerRuleConditionSourceIp.cs @@ -15,9 +15,6 @@ public sealed class ListenerRuleConditionSourceIp { /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public readonly ImmutableArray Values; diff --git a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs.cs b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs.cs index d261c0bb568..1397b4ec431 100644 --- a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs.cs +++ b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs.cs @@ -16,7 +16,7 @@ public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetr private InputList? _dimensions; /// - /// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + /// Dimensions of the metric. /// public InputList Dimensions { @@ -55,7 +55,7 @@ public InputList? Statistic { get; set; } /// - /// Unit of the metric. + /// Unit of the metrics to return. /// [Input("unit")] public Input? Unit { get; set; } diff --git a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationGetArgs.cs b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationGetArgs.cs index 4cba6454455..f42ea22fef0 100644 --- a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationGetArgs.cs +++ b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationGetArgs.cs @@ -16,7 +16,7 @@ public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetr private InputList? _dimensions; /// - /// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + /// Dimensions of the metric. /// public InputList Dimensions { @@ -55,7 +55,7 @@ public InputList? Statistic { get; set; } /// - /// Unit of the metric. + /// Unit of the metrics to return. /// [Input("unit")] public Input? Unit { get; set; } diff --git a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.cs b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.cs index aa009cfe35b..e96f3094045 100644 --- a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.cs +++ b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.cs @@ -25,7 +25,7 @@ public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetr public Input Stat { get; set; } = null!; /// - /// Unit of the metric. + /// Unit of the metrics to return. /// [Input("unit")] public Input? Unit { get; set; } diff --git a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatGetArgs.cs b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatGetArgs.cs index 9bea44a4cb3..d411df172e5 100644 --- a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatGetArgs.cs +++ b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatGetArgs.cs @@ -25,7 +25,7 @@ public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetr public Input Stat { get; set; } = null!; /// - /// Unit of the metric. + /// Unit of the metrics to return. /// [Input("unit")] public Input? Unit { get; set; } diff --git a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.cs b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.cs index 273467448b3..8f7ceb5fd0c 100644 --- a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.cs +++ b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.cs @@ -16,7 +16,7 @@ public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetr private InputList? _dimensions; /// - /// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + /// Dimensions of the metric. /// public InputList Dimensions { diff --git a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricGetArgs.cs b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricGetArgs.cs index 5bd6980f482..1f20dc5358b 100644 --- a/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricGetArgs.cs +++ b/sdk/dotnet/AppAutoScaling/Inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricGetArgs.cs @@ -16,7 +16,7 @@ public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetr private InputList? _dimensions; /// - /// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + /// Dimensions of the metric. /// public InputList Dimensions { diff --git a/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification.cs b/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification.cs index 49ac639caf1..fa481b9d744 100644 --- a/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification.cs +++ b/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppAutoScaling.Outputs public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification { /// - /// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + /// Dimensions of the metric. /// public readonly ImmutableArray Dimensions; /// @@ -34,7 +34,7 @@ public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetr /// public readonly string? Statistic; /// - /// Unit of the metric. + /// Unit of the metrics to return. /// public readonly string? Unit; diff --git a/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat.cs b/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat.cs index b1cb64683b8..d171f8907f6 100644 --- a/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat.cs +++ b/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat.cs @@ -22,7 +22,7 @@ public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetr /// public readonly string Stat; /// - /// Unit of the metric. + /// Unit of the metrics to return. /// public readonly string? Unit; diff --git a/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric.cs b/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric.cs index bba793373cb..0250894c736 100644 --- a/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric.cs +++ b/sdk/dotnet/AppAutoScaling/Outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppAutoScaling.Outputs public sealed class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric { /// - /// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + /// Dimensions of the metric. /// public readonly ImmutableArray Dimensions; /// diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs.cs index ce598080bc3..c8a3b127e33 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs.cs @@ -31,7 +31,7 @@ public InputMap CustomProperties public Input EntityName { get; set; } = null!; /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorGetArgs.cs index d01f1e36f57..6841bff0cb2 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorGetArgs.cs @@ -31,7 +31,7 @@ public InputMap CustomProperties public Input EntityName { get; set; } = null!; /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeArgs.cs index 302997be7d7..f52bac3137b 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeGetArgs.cs index e96b8ca1a0b..9120f850f63 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeGetArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeArgs.cs index adcfba014b3..00cb1fe931b 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeGetArgs.cs index ccb55f9b71d..fa12c39d490 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeGetArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoArgs.cs index 5ac6c9e5d15..f403e3cad1f 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoGetArgs.cs index 525717d2d16..90636dae50d 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoGetArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftArgs.cs index 93c57830e6b..996d6658fab 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftArgs : global::Pulumi.ResourceArgs { /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftGetArgs.cs index d9a6abe878d..7b1d6a0b848 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftGetArgs : global::Pulumi.ResourceArgs { /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args.cs index 565542c45ab..cc399b35c3a 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args : global::Pulumi.ResourceArgs { /// - /// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + /// Name of the Amazon S3 bucket. /// [Input("bucketName", required: true)] public Input BucketName { get; set; } = null!; /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3GetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3GetArgs.cs index 2ba133001f2..f0367631726 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3GetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3GetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesS3GetArgs : global::Pulumi.ResourceArgs { /// - /// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + /// Name of the Amazon S3 bucket. /// [Input("bucketName", required: true)] public Input BucketName { get; set; } = null!; /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs.cs index cb28c2f293e..6ca237c6054 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceGetArgs.cs index b74878f046f..8508e65cc4e 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceGetArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataArgs.cs index b7f6ee2bcbc..b452d8df75f 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataGetArgs.cs index 18b3614f78d..0eadf31237b 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataGetArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeArgs.cs index 3e73c24ee71..e7565bb9f87 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeArgs : global::Pulumi.ResourceArgs { /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeGetArgs.cs index e75099e5b2d..7ba2dbcf62b 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeGetArgs : global::Pulumi.ResourceArgs { /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs.cs index b5358438045..28d130b54b1 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs : global::Pulumi.ResourceArgs { /// - /// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + /// Name of the Amazon S3 bucket. /// [Input("bucketName", required: true)] public Input BucketName { get; set; } = null!; /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverGetArgs.cs index 1e648af500c..f1845e6290f 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverGetArgs : global::Pulumi.ResourceArgs { /// - /// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + /// Name of the Amazon S3 bucket. /// [Input("bucketName", required: true)] public Input BucketName { get; set; } = null!; /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs.cs index e4c1fa27094..e5580492111 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskGetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskGetArgs.cs index f8b3002f84c..cd6dbea492c 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskGetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskGetArgs : global::Pulumi.ResourceArgs { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// [Input("errorHandlingConfig")] public Input? ErrorHandlingConfig { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowSourceFlowConfigSourceConnectorPropertiesS3Args.cs b/sdk/dotnet/AppFlow/Inputs/FlowSourceFlowConfigSourceConnectorPropertiesS3Args.cs index 3d46c3477c6..6242a651e17 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowSourceFlowConfigSourceConnectorPropertiesS3Args.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowSourceFlowConfigSourceConnectorPropertiesS3Args.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowSourceFlowConfigSourceConnectorPropertiesS3Args : global::Pulumi.ResourceArgs { /// - /// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + /// Name of the Amazon S3 bucket. /// [Input("bucketName", required: true)] public Input BucketName { get; set; } = null!; /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } diff --git a/sdk/dotnet/AppFlow/Inputs/FlowSourceFlowConfigSourceConnectorPropertiesS3GetArgs.cs b/sdk/dotnet/AppFlow/Inputs/FlowSourceFlowConfigSourceConnectorPropertiesS3GetArgs.cs index 24217d927d5..d883134c50f 100644 --- a/sdk/dotnet/AppFlow/Inputs/FlowSourceFlowConfigSourceConnectorPropertiesS3GetArgs.cs +++ b/sdk/dotnet/AppFlow/Inputs/FlowSourceFlowConfigSourceConnectorPropertiesS3GetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppFlow.Inputs public sealed class FlowSourceFlowConfigSourceConnectorPropertiesS3GetArgs : global::Pulumi.ResourceArgs { /// - /// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + /// Name of the Amazon S3 bucket. /// [Input("bucketName", required: true)] public Input BucketName { get; set; } = null!; /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// [Input("bucketPrefix")] public Input? BucketPrefix { get; set; } diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector.cs index 8c0f53fa379..1b333e49701 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector.cs @@ -22,7 +22,7 @@ public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesCusto /// public readonly string EntityName; /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// public readonly Outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig? ErrorHandlingConfig; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge.cs index 2f31a81081b..88c7067a372 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// public readonly Outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig? ErrorHandlingConfig; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode.cs index c9e8e592454..933e23d98fc 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// public readonly Outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig? ErrorHandlingConfig; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo.cs index 058ada63b0d..d27d1e908ba 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// public readonly Outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig? ErrorHandlingConfig; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift.cs index 27ba8b9dcc5..411e8093df3 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift { /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// public readonly string? BucketPrefix; /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// public readonly Outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig? ErrorHandlingConfig; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3.cs index a8364f2a6d6..781093762ae 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesS3 { /// - /// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + /// Name of the Amazon S3 bucket. /// public readonly string BucketName; /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// public readonly string? BucketPrefix; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce.cs index 37139b2f903..08c876dfc03 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// public readonly Outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig? ErrorHandlingConfig; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData.cs index 9bc51693cbf..5141d749628 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// public readonly Outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig? ErrorHandlingConfig; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake.cs index 974555622c1..654409ce41d 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake { /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// public readonly string? BucketPrefix; /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// public readonly Outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig? ErrorHandlingConfig; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver.cs index c055f920ec9..4852def4d10 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver { /// - /// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + /// Name of the Amazon S3 bucket. /// public readonly string BucketName; /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// public readonly string? BucketPrefix; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk.cs b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk.cs index 5162519263e..4ab05d9bf7a 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk { /// - /// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + /// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. /// public readonly Outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig? ErrorHandlingConfig; /// diff --git a/sdk/dotnet/AppFlow/Outputs/FlowSourceFlowConfigSourceConnectorPropertiesS3.cs b/sdk/dotnet/AppFlow/Outputs/FlowSourceFlowConfigSourceConnectorPropertiesS3.cs index b18310b40ed..23346088a54 100644 --- a/sdk/dotnet/AppFlow/Outputs/FlowSourceFlowConfigSourceConnectorPropertiesS3.cs +++ b/sdk/dotnet/AppFlow/Outputs/FlowSourceFlowConfigSourceConnectorPropertiesS3.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.AppFlow.Outputs public sealed class FlowSourceFlowConfigSourceConnectorPropertiesS3 { /// - /// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + /// Name of the Amazon S3 bucket. /// public readonly string BucketName; /// - /// Object key for the bucket in which Amazon AppFlow places the destination files. + /// Amazon S3 bucket prefix. /// public readonly string? BucketPrefix; /// diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchArgs.cs index 8af803502a6..c37cd520e69 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecGrpcRouteMatchArgs : global::Pulumi.ResourceArgs { /// - /// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + /// The port number to match from the request. /// [Input("port")] public Input? Port { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchGetArgs.cs index d629366e781..55692b3d088 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecGrpcRouteMatchGetArgs : global::Pulumi.ResourceArgs { /// - /// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + /// The port number to match from the request. /// [Input("port")] public Input? Port { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchArgs.cs index 68c523b9463..fbde040ffb1 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchArgs.cs @@ -25,25 +25,25 @@ public InputList Headers } /// - /// Host name to rewrite. + /// Host name to match on. /// [Input("hostname")] public Input? Hostname { get; set; } /// - /// Exact path to rewrite. + /// Client request path to match on. /// [Input("path")] public Input? Path { get; set; } /// - /// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + /// The port number to match from the request. /// [Input("port")] public Input? Port { get; set; } /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchGetArgs.cs index 14d46d0f128..919898965bd 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchGetArgs.cs @@ -25,25 +25,25 @@ public InputList Headers } /// - /// Host name to rewrite. + /// Host name to match on. /// [Input("hostname")] public Input? Hostname { get; set; } /// - /// Exact path to rewrite. + /// Client request path to match on. /// [Input("path")] public Input? Path { get; set; } /// - /// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + /// The port number to match from the request. /// [Input("port")] public Input? Port { get; set; } /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs.cs index 4c9aadc643a..9be2c651a6d 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs : global::Pulumi.ResourceArgs { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchGetArgs.cs index e1a0b936f42..35076cf9903 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecHttp2RouteMatchHeaderMatchGetArgs : global::Pulumi.ResourceArgs { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs.cs index fe0c4f76c65..f89b550ab24 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs : global::Pulumi.ResourceArgs { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchGetArgs.cs index ecd93a39403..3cf6d42b8b4 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecHttp2RouteMatchQueryParameterMatchGetArgs : global::Pulumi.ResourceArgs { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchArgs.cs index afb15b5475f..3866987f779 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchArgs.cs @@ -25,25 +25,25 @@ public InputList Headers } /// - /// Host name to rewrite. + /// Host name to match on. /// [Input("hostname")] public Input? Hostname { get; set; } /// - /// Exact path to rewrite. + /// Client request path to match on. /// [Input("path")] public Input? Path { get; set; } /// - /// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + /// The port number to match from the request. /// [Input("port")] public Input? Port { get; set; } /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchGetArgs.cs index 22a5a255c86..a5875a15698 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchGetArgs.cs @@ -25,25 +25,25 @@ public InputList Headers } /// - /// Host name to rewrite. + /// Host name to match on. /// [Input("hostname")] public Input? Hostname { get; set; } /// - /// Exact path to rewrite. + /// Client request path to match on. /// [Input("path")] public Input? Path { get; set; } /// - /// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + /// The port number to match from the request. /// [Input("port")] public Input? Port { get; set; } /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchArgs.cs index 183af78bc7e..bbbe7d01791 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecHttpRouteMatchHeaderMatchArgs : global::Pulumi.ResourceArgs { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchGetArgs.cs index 3fb41aed243..c91f47280c0 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecHttpRouteMatchHeaderMatchGetArgs : global::Pulumi.ResourceArgs { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs.cs index b12c2f1f4fd..496c2609eaf 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs : global::Pulumi.ResourceArgs { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchGetArgs.cs index 9bf2df4a1ab..61165c606fa 100644 --- a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class GatewayRouteSpecHttpRouteMatchQueryParameterMatchGetArgs : global::Pulumi.ResourceArgs { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchArgs.cs index be03abeffa5..7baaeb5be0b 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchArgs.cs @@ -37,8 +37,7 @@ public InputList Metadatas public Input? Port { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchGetArgs.cs index 062882c8163..01d5818c4ca 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchGetArgs.cs @@ -37,8 +37,7 @@ public InputList Metadatas public Input? Port { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchMetadataMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchMetadataMatchArgs.cs index ef6b42e2d0b..865fc355482 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchMetadataMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchMetadataMatchArgs.cs @@ -19,14 +19,13 @@ public sealed class RouteSpecGrpcRouteMatchMetadataMatchArgs : global::Pulumi.Re public Input? Exact { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } /// - /// Object that specifies the range of numbers that the value sent by the client must be included in. + /// Object that specifies the range of numbers that the header value sent by the client must be included in. /// [Input("range")] public Input? Range { get; set; } @@ -38,7 +37,7 @@ public sealed class RouteSpecGrpcRouteMatchMetadataMatchArgs : global::Pulumi.Re public Input? Regex { get; set; } /// - /// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must end with the specified characters. /// [Input("suffix")] public Input? Suffix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchMetadataMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchMetadataMatchGetArgs.cs index c98025b4b83..f33484b119e 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchMetadataMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteMatchMetadataMatchGetArgs.cs @@ -19,14 +19,13 @@ public sealed class RouteSpecGrpcRouteMatchMetadataMatchGetArgs : global::Pulumi public Input? Exact { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } /// - /// Object that specifies the range of numbers that the value sent by the client must be included in. + /// Object that specifies the range of numbers that the header value sent by the client must be included in. /// [Input("range")] public Input? Range { get; set; } @@ -38,7 +37,7 @@ public sealed class RouteSpecGrpcRouteMatchMetadataMatchGetArgs : global::Pulumi public Input? Regex { get; set; } /// - /// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must end with the specified characters. /// [Input("suffix")] public Input? Suffix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteRetryPolicyArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteRetryPolicyArgs.cs index 4e8164f1567..2cd00b9ebd8 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteRetryPolicyArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteRetryPolicyArgs.cs @@ -31,7 +31,6 @@ public InputList GrpcRetryEvents /// /// List of HTTP retry events. /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). /// public InputList HttpRetryEvents { @@ -56,9 +55,6 @@ public InputList HttpRetryEvents /// /// List of TCP retry events. The only valid value is `connection-error`. - /// - /// - /// You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. /// public InputList TcpRetryEvents { diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteRetryPolicyGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteRetryPolicyGetArgs.cs index 99d048bf144..66c25b47f24 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteRetryPolicyGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteRetryPolicyGetArgs.cs @@ -31,7 +31,6 @@ public InputList GrpcRetryEvents /// /// List of HTTP retry events. /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). /// public InputList HttpRetryEvents { @@ -56,9 +55,6 @@ public InputList HttpRetryEvents /// /// List of TCP retry events. The only valid value is `connection-error`. - /// - /// - /// You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. /// public InputList TcpRetryEvents { diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchArgs.cs index 222c66c4844..f49c6cba85e 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchArgs.cs @@ -43,8 +43,7 @@ public InputList Headers public Input? Port { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchGetArgs.cs index 9ec7b423f57..d9b4bc9fe7a 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchGetArgs.cs @@ -43,8 +43,7 @@ public InputList Headers public Input? Port { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchHeaderMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchHeaderMatchArgs.cs index a42addae512..9fd77beb907 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchHeaderMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchHeaderMatchArgs.cs @@ -19,14 +19,13 @@ public sealed class RouteSpecHttp2RouteMatchHeaderMatchArgs : global::Pulumi.Res public Input? Exact { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } /// - /// Object that specifies the range of numbers that the value sent by the client must be included in. + /// Object that specifies the range of numbers that the header value sent by the client must be included in. /// [Input("range")] public Input? Range { get; set; } @@ -38,7 +37,7 @@ public sealed class RouteSpecHttp2RouteMatchHeaderMatchArgs : global::Pulumi.Res public Input? Regex { get; set; } /// - /// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must end with the specified characters. /// [Input("suffix")] public Input? Suffix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchHeaderMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchHeaderMatchGetArgs.cs index a84e6f5c127..c7805c47fb7 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchHeaderMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchHeaderMatchGetArgs.cs @@ -19,14 +19,13 @@ public sealed class RouteSpecHttp2RouteMatchHeaderMatchGetArgs : global::Pulumi. public Input? Exact { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } /// - /// Object that specifies the range of numbers that the value sent by the client must be included in. + /// Object that specifies the range of numbers that the header value sent by the client must be included in. /// [Input("range")] public Input? Range { get; set; } @@ -38,7 +37,7 @@ public sealed class RouteSpecHttp2RouteMatchHeaderMatchGetArgs : global::Pulumi. public Input? Regex { get; set; } /// - /// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must end with the specified characters. /// [Input("suffix")] public Input? Suffix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchPathArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchPathArgs.cs index 125cb87a22c..e1539e53c9d 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchPathArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchPathArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class RouteSpecHttp2RouteMatchPathArgs : global::Pulumi.ResourceArgs { /// - /// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } /// - /// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must include the specified characters. /// [Input("regex")] public Input? Regex { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchPathGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchPathGetArgs.cs index c61ca8574dd..211d38563a7 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchPathGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteMatchPathGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class RouteSpecHttp2RouteMatchPathGetArgs : global::Pulumi.ResourceArgs { /// - /// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } /// - /// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must include the specified characters. /// [Input("regex")] public Input? Regex { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteRetryPolicyArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteRetryPolicyArgs.cs index f91d8b27337..d1b86fd39de 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteRetryPolicyArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteRetryPolicyArgs.cs @@ -18,7 +18,6 @@ public sealed class RouteSpecHttp2RouteRetryPolicyArgs : global::Pulumi.Resource /// /// List of HTTP retry events. /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). /// public InputList HttpRetryEvents { @@ -43,9 +42,6 @@ public InputList HttpRetryEvents /// /// List of TCP retry events. The only valid value is `connection-error`. - /// - /// - /// You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. /// public InputList TcpRetryEvents { diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteRetryPolicyGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteRetryPolicyGetArgs.cs index 3fa04ae00f3..4683d06102a 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteRetryPolicyGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttp2RouteRetryPolicyGetArgs.cs @@ -18,7 +18,6 @@ public sealed class RouteSpecHttp2RouteRetryPolicyGetArgs : global::Pulumi.Resou /// /// List of HTTP retry events. /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). /// public InputList HttpRetryEvents { @@ -43,9 +42,6 @@ public InputList HttpRetryEvents /// /// List of TCP retry events. The only valid value is `connection-error`. - /// - /// - /// You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. /// public InputList TcpRetryEvents { diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchArgs.cs index fbaf4136d32..3e91d88c052 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchArgs.cs @@ -43,8 +43,7 @@ public InputList Headers public Input? Port { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchGetArgs.cs index 2da48f12ca1..03bace5ebf1 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchGetArgs.cs @@ -43,8 +43,7 @@ public InputList Headers public Input? Port { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchHeaderMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchHeaderMatchArgs.cs index 7aad4589753..23f970ff1e8 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchHeaderMatchArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchHeaderMatchArgs.cs @@ -19,14 +19,13 @@ public sealed class RouteSpecHttpRouteMatchHeaderMatchArgs : global::Pulumi.Reso public Input? Exact { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } /// - /// Object that specifies the range of numbers that the value sent by the client must be included in. + /// Object that specifies the range of numbers that the header value sent by the client must be included in. /// [Input("range")] public Input? Range { get; set; } @@ -38,7 +37,7 @@ public sealed class RouteSpecHttpRouteMatchHeaderMatchArgs : global::Pulumi.Reso public Input? Regex { get; set; } /// - /// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must end with the specified characters. /// [Input("suffix")] public Input? Suffix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchHeaderMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchHeaderMatchGetArgs.cs index d890595b3d5..01961c3429e 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchHeaderMatchGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchHeaderMatchGetArgs.cs @@ -19,14 +19,13 @@ public sealed class RouteSpecHttpRouteMatchHeaderMatchGetArgs : global::Pulumi.R public Input? Exact { get; set; } /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// [Input("prefix")] public Input? Prefix { get; set; } /// - /// Object that specifies the range of numbers that the value sent by the client must be included in. + /// Object that specifies the range of numbers that the header value sent by the client must be included in. /// [Input("range")] public Input? Range { get; set; } @@ -38,7 +37,7 @@ public sealed class RouteSpecHttpRouteMatchHeaderMatchGetArgs : global::Pulumi.R public Input? Regex { get; set; } /// - /// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must end with the specified characters. /// [Input("suffix")] public Input? Suffix { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchPathArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchPathArgs.cs index bf4e6cddab0..a26220f48ba 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchPathArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchPathArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class RouteSpecHttpRouteMatchPathArgs : global::Pulumi.ResourceArgs { /// - /// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } /// - /// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must include the specified characters. /// [Input("regex")] public Input? Regex { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchPathGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchPathGetArgs.cs index 50a9b326811..2bf49d0e1b6 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchPathGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteMatchPathGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.AppMesh.Inputs public sealed class RouteSpecHttpRouteMatchPathGetArgs : global::Pulumi.ResourceArgs { /// - /// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + /// Header value sent by the client must match the specified value exactly. /// [Input("exact")] public Input? Exact { get; set; } /// - /// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must include the specified characters. /// [Input("regex")] public Input? Regex { get; set; } diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteRetryPolicyArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteRetryPolicyArgs.cs index 45d9e9735a5..89f9385e326 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteRetryPolicyArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteRetryPolicyArgs.cs @@ -18,7 +18,6 @@ public sealed class RouteSpecHttpRouteRetryPolicyArgs : global::Pulumi.ResourceA /// /// List of HTTP retry events. /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). /// public InputList HttpRetryEvents { @@ -43,9 +42,6 @@ public InputList HttpRetryEvents /// /// List of TCP retry events. The only valid value is `connection-error`. - /// - /// - /// You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. /// public InputList TcpRetryEvents { diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteRetryPolicyGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteRetryPolicyGetArgs.cs index 3f2e4906a2a..fcdbc790d4b 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteRetryPolicyGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecHttpRouteRetryPolicyGetArgs.cs @@ -18,7 +18,6 @@ public sealed class RouteSpecHttpRouteRetryPolicyGetArgs : global::Pulumi.Resour /// /// List of HTTP retry events. /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). /// public InputList HttpRetryEvents { @@ -43,9 +42,6 @@ public InputList HttpRetryEvents /// /// List of TCP retry events. The only valid value is `connection-error`. - /// - /// - /// You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. /// public InputList TcpRetryEvents { diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerOutlierDetectionIntervalArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerOutlierDetectionIntervalArgs.cs index eaeecd2fae7..fbd69fd4168 100644 --- a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerOutlierDetectionIntervalArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerOutlierDetectionIntervalArgs.cs @@ -19,7 +19,7 @@ public sealed class VirtualNodeSpecListenerOutlierDetectionIntervalArgs : global public Input Unit { get; set; } = null!; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerOutlierDetectionIntervalGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerOutlierDetectionIntervalGetArgs.cs index cb727922f31..c6d048da155 100644 --- a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerOutlierDetectionIntervalGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerOutlierDetectionIntervalGetArgs.cs @@ -19,7 +19,7 @@ public sealed class VirtualNodeSpecListenerOutlierDetectionIntervalGetArgs : glo public Input Unit { get; set; } = null!; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs.cs index 7cfb15d76ea..63de3e7e30c 100644 --- a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs.cs @@ -19,7 +19,7 @@ public sealed class VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs : global::P public Input Unit { get; set; } = null!; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestGetArgs.cs index 3f0b4f40357..f92c1fef078 100644 --- a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestGetArgs.cs @@ -19,7 +19,7 @@ public sealed class VirtualNodeSpecListenerTimeoutGrpcPerRequestGetArgs : global public Input Unit { get; set; } = null!; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs.cs index ef42729a4e7..9187a401499 100644 --- a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs.cs @@ -19,7 +19,7 @@ public sealed class VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs : global:: public Input Unit { get; set; } = null!; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestGetArgs.cs index 882bb11e18c..17c6c4347cd 100644 --- a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestGetArgs.cs @@ -19,7 +19,7 @@ public sealed class VirtualNodeSpecListenerTimeoutHttp2PerRequestGetArgs : globa public Input Unit { get; set; } = null!; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestArgs.cs index 47bde9bc0f3..522a5af633f 100644 --- a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestArgs.cs @@ -19,7 +19,7 @@ public sealed class VirtualNodeSpecListenerTimeoutHttpPerRequestArgs : global::P public Input Unit { get; set; } = null!; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestGetArgs.cs index 804a0fffd44..7c1cdb7e327 100644 --- a/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestGetArgs.cs @@ -19,7 +19,7 @@ public sealed class VirtualNodeSpecListenerTimeoutHttpPerRequestGetArgs : global public Input Unit { get; set; } = null!; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteMatch.cs index 40d19aadce1..8a4c94b6d52 100644 --- a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteMatch.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppMesh.Outputs public sealed class GatewayRouteSpecGrpcRouteMatch { /// - /// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + /// The port number to match from the request. /// public readonly int? Port; /// diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatch.cs index 1d0c33f55d7..9289eb5ce41 100644 --- a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatch.cs @@ -18,19 +18,19 @@ public sealed class GatewayRouteSpecHttp2RouteMatch /// public readonly ImmutableArray Headers; /// - /// Host name to rewrite. + /// Host name to match on. /// public readonly Outputs.GatewayRouteSpecHttp2RouteMatchHostname? Hostname; /// - /// Exact path to rewrite. + /// Client request path to match on. /// public readonly Outputs.GatewayRouteSpecHttp2RouteMatchPath? Path; /// - /// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + /// The port number to match from the request. /// public readonly int? Port; /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatchHeaderMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatchHeaderMatch.cs index 770b2888c2a..c64e39fd808 100644 --- a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatchHeaderMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatchHeaderMatch.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.AppMesh.Outputs public sealed class GatewayRouteSpecHttp2RouteMatchHeaderMatch { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// public readonly string? Exact; /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatch.cs index a856d515ad9..ff455b284f8 100644 --- a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatch.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppMesh.Outputs public sealed class GatewayRouteSpecHttp2RouteMatchQueryParameterMatch { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// public readonly string? Exact; diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatch.cs index d8d01b78552..1720be4989e 100644 --- a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatch.cs @@ -18,19 +18,19 @@ public sealed class GatewayRouteSpecHttpRouteMatch /// public readonly ImmutableArray Headers; /// - /// Host name to rewrite. + /// Host name to match on. /// public readonly Outputs.GatewayRouteSpecHttpRouteMatchHostname? Hostname; /// - /// Exact path to rewrite. + /// Client request path to match on. /// public readonly Outputs.GatewayRouteSpecHttpRouteMatchPath? Path; /// - /// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + /// The port number to match from the request. /// public readonly int? Port; /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatchHeaderMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatchHeaderMatch.cs index b17523b4cc8..e735d84d7ba 100644 --- a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatchHeaderMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatchHeaderMatch.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.AppMesh.Outputs public sealed class GatewayRouteSpecHttpRouteMatchHeaderMatch { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// public readonly string? Exact; /// - /// Specified beginning characters to rewrite. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatch.cs index 0d557c3ce35..b7d3db567a4 100644 --- a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatch.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AppMesh.Outputs public sealed class GatewayRouteSpecHttpRouteMatchQueryParameterMatch { /// - /// Value used to replace matched path. + /// Header value sent by the client must match the specified value exactly. /// public readonly string? Exact; diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteMatch.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteMatch.cs index 8e48ef1ddee..4d48246a32c 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteMatch.cs @@ -26,8 +26,7 @@ public sealed class RouteSpecGrpcRouteMatch /// public readonly int? Port; /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteMatchMetadataMatch.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteMatchMetadataMatch.cs index 830f2815a23..cf3069b5796 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteMatchMetadataMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteMatchMetadataMatch.cs @@ -18,12 +18,11 @@ public sealed class RouteSpecGrpcRouteMatchMetadataMatch /// public readonly string? Exact; /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// - /// Object that specifies the range of numbers that the value sent by the client must be included in. + /// Object that specifies the range of numbers that the header value sent by the client must be included in. /// public readonly Outputs.RouteSpecGrpcRouteMatchMetadataMatchRange? Range; /// @@ -31,7 +30,7 @@ public sealed class RouteSpecGrpcRouteMatchMetadataMatch /// public readonly string? Regex; /// - /// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must end with the specified characters. /// public readonly string? Suffix; diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteRetryPolicy.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteRetryPolicy.cs index b5c9c37daa5..98ec68f7cea 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteRetryPolicy.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRouteRetryPolicy.cs @@ -21,7 +21,6 @@ public sealed class RouteSpecGrpcRouteRetryPolicy /// /// List of HTTP retry events. /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). /// public readonly ImmutableArray HttpRetryEvents; /// @@ -34,9 +33,6 @@ public sealed class RouteSpecGrpcRouteRetryPolicy public readonly Outputs.RouteSpecGrpcRouteRetryPolicyPerRetryTimeout PerRetryTimeout; /// /// List of TCP retry events. The only valid value is `connection-error`. - /// - /// - /// You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. /// public readonly ImmutableArray TcpRetryEvents; diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatch.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatch.cs index dec21218d54..b63325745f5 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatch.cs @@ -30,8 +30,7 @@ public sealed class RouteSpecHttp2RouteMatch /// public readonly int? Port; /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatchHeaderMatch.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatchHeaderMatch.cs index b23565e8a00..f6a4cd65464 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatchHeaderMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatchHeaderMatch.cs @@ -18,12 +18,11 @@ public sealed class RouteSpecHttp2RouteMatchHeaderMatch /// public readonly string? Exact; /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// - /// Object that specifies the range of numbers that the value sent by the client must be included in. + /// Object that specifies the range of numbers that the header value sent by the client must be included in. /// public readonly Outputs.RouteSpecHttp2RouteMatchHeaderMatchRange? Range; /// @@ -31,7 +30,7 @@ public sealed class RouteSpecHttp2RouteMatchHeaderMatch /// public readonly string? Regex; /// - /// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must end with the specified characters. /// public readonly string? Suffix; diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatchPath.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatchPath.cs index 59c4d4ee247..7dc8989477c 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatchPath.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteMatchPath.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.AppMesh.Outputs public sealed class RouteSpecHttp2RouteMatchPath { /// - /// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + /// Header value sent by the client must match the specified value exactly. /// public readonly string? Exact; /// - /// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must include the specified characters. /// public readonly string? Regex; diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteRetryPolicy.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteRetryPolicy.cs index 59b0e12235c..13202f6ea1d 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteRetryPolicy.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttp2RouteRetryPolicy.cs @@ -16,7 +16,6 @@ public sealed class RouteSpecHttp2RouteRetryPolicy /// /// List of HTTP retry events. /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). /// public readonly ImmutableArray HttpRetryEvents; /// @@ -29,9 +28,6 @@ public sealed class RouteSpecHttp2RouteRetryPolicy public readonly Outputs.RouteSpecHttp2RouteRetryPolicyPerRetryTimeout PerRetryTimeout; /// /// List of TCP retry events. The only valid value is `connection-error`. - /// - /// - /// You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. /// public readonly ImmutableArray TcpRetryEvents; diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatch.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatch.cs index 45b398fd283..b8a3fd9b6a3 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatch.cs @@ -30,8 +30,7 @@ public sealed class RouteSpecHttpRouteMatch /// public readonly int? Port; /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatchHeaderMatch.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatchHeaderMatch.cs index a492f277c18..e5140ce5aa9 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatchHeaderMatch.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatchHeaderMatch.cs @@ -18,12 +18,11 @@ public sealed class RouteSpecHttpRouteMatchHeaderMatch /// public readonly string? Exact; /// - /// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - /// This parameter must always start with /, which by itself matches all requests to the virtual router service name. + /// Header value sent by the client must begin with the specified characters. /// public readonly string? Prefix; /// - /// Object that specifies the range of numbers that the value sent by the client must be included in. + /// Object that specifies the range of numbers that the header value sent by the client must be included in. /// public readonly Outputs.RouteSpecHttpRouteMatchHeaderMatchRange? Range; /// @@ -31,7 +30,7 @@ public sealed class RouteSpecHttpRouteMatchHeaderMatch /// public readonly string? Regex; /// - /// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must end with the specified characters. /// public readonly string? Suffix; diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatchPath.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatchPath.cs index bda5879d903..dc5cc7a3a6b 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatchPath.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteMatchPath.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.AppMesh.Outputs public sealed class RouteSpecHttpRouteMatchPath { /// - /// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + /// Header value sent by the client must match the specified value exactly. /// public readonly string? Exact; /// - /// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + /// Header value sent by the client must include the specified characters. /// public readonly string? Regex; diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteRetryPolicy.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteRetryPolicy.cs index 1fa631f6058..883d5d1ecd9 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteRetryPolicy.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecHttpRouteRetryPolicy.cs @@ -16,7 +16,6 @@ public sealed class RouteSpecHttpRouteRetryPolicy /// /// List of HTTP retry events. /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - /// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). /// public readonly ImmutableArray HttpRetryEvents; /// @@ -29,9 +28,6 @@ public sealed class RouteSpecHttpRouteRetryPolicy public readonly Outputs.RouteSpecHttpRouteRetryPolicyPerRetryTimeout PerRetryTimeout; /// /// List of TCP retry events. The only valid value is `connection-error`. - /// - /// - /// You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. /// public readonly ImmutableArray TcpRetryEvents; diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerOutlierDetectionInterval.cs b/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerOutlierDetectionInterval.cs index 9984f947987..5a5cf3739eb 100644 --- a/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerOutlierDetectionInterval.cs +++ b/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerOutlierDetectionInterval.cs @@ -18,7 +18,7 @@ public sealed class VirtualNodeSpecListenerOutlierDetectionInterval /// public readonly string Unit; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// public readonly int Value; diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutGrpcPerRequest.cs b/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutGrpcPerRequest.cs index 8a3c352191d..a8d25ef8e42 100644 --- a/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutGrpcPerRequest.cs +++ b/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutGrpcPerRequest.cs @@ -18,7 +18,7 @@ public sealed class VirtualNodeSpecListenerTimeoutGrpcPerRequest /// public readonly string Unit; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// public readonly int Value; diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutHttp2PerRequest.cs b/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutHttp2PerRequest.cs index b1788475099..3c6e93af1d6 100644 --- a/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutHttp2PerRequest.cs +++ b/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutHttp2PerRequest.cs @@ -18,7 +18,7 @@ public sealed class VirtualNodeSpecListenerTimeoutHttp2PerRequest /// public readonly string Unit; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// public readonly int Value; diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutHttpPerRequest.cs b/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutHttpPerRequest.cs index 8de13e9556f..0cdbb249e81 100644 --- a/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutHttpPerRequest.cs +++ b/sdk/dotnet/AppMesh/Outputs/VirtualNodeSpecListenerTimeoutHttpPerRequest.cs @@ -18,7 +18,7 @@ public sealed class VirtualNodeSpecListenerTimeoutHttpPerRequest /// public readonly string Unit; /// - /// The specified value for the JSON. Must be between 1 and 100 characters in length. + /// Number of time units. Minimum value of `0`. /// public readonly int Value; diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateArgs.cs index 815ed9a0dd5..0fd54ae90c4 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateArgs : global::Pulumi.ResourceArgs { /// - /// Nested argument defines the Launch Template. Defined below. + /// Override the instance launch template specification in the Launch Template. /// [Input("launchTemplateSpecification", required: true)] public Input LaunchTemplateSpecification { get; set; } = null!; diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateGetArgs.cs index b258b73193b..b8af74bed67 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateGetArgs : global::Pulumi.ResourceArgs { /// - /// Nested argument defines the Launch Template. Defined below. + /// Override the instance launch template specification in the Launch Template. /// [Input("launchTemplateSpecification", required: true)] public Input LaunchTemplateSpecification { get; set; } = null!; diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.cs index 459a212d9c7..f9341fb1bae 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.cs @@ -25,7 +25,7 @@ public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideArgs : global public Input? InstanceType { get; set; } /// - /// Nested argument defines the Launch Template. Defined below. + /// Override the instance launch template specification in the Launch Template. /// [Input("launchTemplateSpecification")] public Input? LaunchTemplateSpecification { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideGetArgs.cs index 4af4d5b3697..3f35ca155e9 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideGetArgs.cs @@ -25,7 +25,7 @@ public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideGetArgs : glo public Input? InstanceType { get; set; } /// - /// Nested argument defines the Launch Template. Defined below. + /// Override the instance launch template specification in the Launch Template. /// [Input("launchTemplateSpecification")] public Input? LaunchTemplateSpecification { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs.cs index 89b2e1f599a..20b633c6a4d 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountGetArgs.cs index 0baec3290aa..83e5136a7b4 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs index 0ad04fb561a..8a25c042f46 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs index c24420db8f2..f3b42af041f 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs index 63a72df4072..44b2bee4e5b 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs index 4d974e5efb1..fd060713c70 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs index 540678eded6..ee00e2fde4c 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs index b6fe557e575..aec2115e7bc 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.cs index 919d2c52fde..3ff692b1f97 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibGetArgs.cs index 9905d60c530..2ecd6befa69 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs index e14554ef3c3..390dbc22f03 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs index 4eb38c0877c..7a0791e1f83 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs index 4cdefc1612b..c70516b34b9 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs index 3fd98efd047..8308e8a2018 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs index 44e17680a0d..2ed25e608d2 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs index bf418e6fb14..cf382832ed5 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.cs index a92302bdd75..8aa7a16a316 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountGetArgs.cs index 431e12920ce..c03eb572475 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplate.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplate.cs index 26085e933d3..15a16ac6f82 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplate.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplate.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplate { /// - /// Nested argument defines the Launch Template. Defined below. + /// Override the instance launch template specification in the Launch Template. /// public readonly Outputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification LaunchTemplateSpecification; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverride.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverride.cs index b5d51a1c253..b9309d39712 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverride.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverride.cs @@ -22,7 +22,7 @@ public sealed class GroupMixedInstancesPolicyLaunchTemplateOverride /// public readonly string? InstanceType; /// - /// Nested argument defines the Launch Template. Defined below. + /// Override the instance launch template specification in the Launch Template. /// public readonly Outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification? LaunchTemplateSpecification; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount.cs index 748397e0494..22ea34c3fbf 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs index 4a6cb5fd5b7..064ab9349b3 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs index 60dfbc145bf..88d79b3547c 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu.cs index 2969659c46b..41ba9a95e78 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly double? Max; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib.cs index e3c61175a54..ab71256c508 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps.cs index 9416fdbb946..27fdb951cd4 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly double? Max; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount.cs index 5bbdda832dd..0b9bc0d68fe 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb.cs index cd5a03b51fa..42ed0023cff 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly double? Max; /// diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount.cs b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount.cs index 7312f7f8bb5..886d059f904 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.AutoScaling.Outputs public sealed class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.cs index cf4d107218b..1e3d129a688 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.cs @@ -25,19 +25,19 @@ public InputList CallAnalyticsStreamCategories } /// - /// Labels all personally identifiable information (PII) identified in Utterance events. + /// Labels all personally identifiable information (PII) identified in Transcript events. /// [Input("contentIdentificationType")] public Input? ContentIdentificationType { get; set; } /// - /// Redacts all personally identifiable information (PII) identified in Utterance events. + /// Redacts all personally identifiable information (PII) identified in Transcript events. /// [Input("contentRedactionType")] public Input? ContentRedactionType { get; set; } /// - /// Enables partial result stabilization in Utterance events. + /// Enables partial result stabilization in Transcript events. /// [Input("enablePartialResultsStabilization")] public Input? EnablePartialResultsStabilization { get; set; } @@ -67,7 +67,7 @@ public InputList CallAnalyticsStreamCategories public Input? PartialResultsStability { get; set; } /// - /// Types of personally identifiable information (PII) to redact from an Utterance event. + /// Types of personally identifiable information (PII) to redact from a Transcript event. /// [Input("piiEntityTypes")] public Input? PiiEntityTypes { get; set; } @@ -79,19 +79,19 @@ public InputList CallAnalyticsStreamCategories public Input? PostCallAnalyticsSettings { get; set; } /// - /// Method for applying a vocabulary filter to Utterance events. + /// Method for applying a vocabulary filter to Transcript events. /// [Input("vocabularyFilterMethod")] public Input? VocabularyFilterMethod { get; set; } /// - /// Name of the custom vocabulary filter to use when processing Utterance events. + /// Name of the custom vocabulary filter to use when processing Transcript events. /// [Input("vocabularyFilterName")] public Input? VocabularyFilterName { get; set; } /// - /// Name of the custom vocabulary to use when processing Utterance events. + /// Name of the custom vocabulary to use when processing Transcript events. /// [Input("vocabularyName")] public Input? VocabularyName { get; set; } diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationGetArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationGetArgs.cs index 15fbec80c0b..3430f2c9d37 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationGetArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationGetArgs.cs @@ -25,19 +25,19 @@ public InputList CallAnalyticsStreamCategories } /// - /// Labels all personally identifiable information (PII) identified in Utterance events. + /// Labels all personally identifiable information (PII) identified in Transcript events. /// [Input("contentIdentificationType")] public Input? ContentIdentificationType { get; set; } /// - /// Redacts all personally identifiable information (PII) identified in Utterance events. + /// Redacts all personally identifiable information (PII) identified in Transcript events. /// [Input("contentRedactionType")] public Input? ContentRedactionType { get; set; } /// - /// Enables partial result stabilization in Utterance events. + /// Enables partial result stabilization in Transcript events. /// [Input("enablePartialResultsStabilization")] public Input? EnablePartialResultsStabilization { get; set; } @@ -67,7 +67,7 @@ public InputList CallAnalyticsStreamCategories public Input? PartialResultsStability { get; set; } /// - /// Types of personally identifiable information (PII) to redact from an Utterance event. + /// Types of personally identifiable information (PII) to redact from a Transcript event. /// [Input("piiEntityTypes")] public Input? PiiEntityTypes { get; set; } @@ -79,19 +79,19 @@ public InputList CallAnalyticsStreamCategories public Input? PostCallAnalyticsSettings { get; set; } /// - /// Method for applying a vocabulary filter to Utterance events. + /// Method for applying a vocabulary filter to Transcript events. /// [Input("vocabularyFilterMethod")] public Input? VocabularyFilterMethod { get; set; } /// - /// Name of the custom vocabulary filter to use when processing Utterance events. + /// Name of the custom vocabulary filter to use when processing Transcript events. /// [Input("vocabularyFilterName")] public Input? VocabularyFilterName { get; set; } /// - /// Name of the custom vocabulary to use when processing Utterance events. + /// Name of the custom vocabulary to use when processing Transcript events. /// [Input("vocabularyName")] public Input? VocabularyName { get; set; } diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs.cs index 935f1ef8098..02ab9e7f14b 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// Labels all personally identifiable information (PII) identified in Utterance events. + /// Labels all personally identifiable information (PII) identified in Transcript events. /// [Input("contentIdentificationType")] public Input? ContentIdentificationType { get; set; } /// - /// Redacts all personally identifiable information (PII) identified in Utterance events. + /// Redacts all personally identifiable information (PII) identified in Transcript events. /// [Input("contentRedactionType")] public Input? ContentRedactionType { get; set; } /// - /// Enables partial result stabilization in Utterance events. + /// Enables partial result stabilization in Transcript events. /// [Input("enablePartialResultsStabilization")] public Input? EnablePartialResultsStabilization { get; set; } @@ -55,7 +55,7 @@ public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribePro public Input? PartialResultsStability { get; set; } /// - /// Types of personally identifiable information (PII) to redact from an Utterance event. + /// Types of personally identifiable information (PII) to redact from a Transcript event. /// [Input("piiEntityTypes")] public Input? PiiEntityTypes { get; set; } @@ -67,19 +67,19 @@ public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribePro public Input? ShowSpeakerLabel { get; set; } /// - /// Method for applying a vocabulary filter to Utterance events. + /// Method for applying a vocabulary filter to Transcript events. /// [Input("vocabularyFilterMethod")] public Input? VocabularyFilterMethod { get; set; } /// - /// Name of the custom vocabulary filter to use when processing Utterance events. + /// Name of the custom vocabulary filter to use when processing Transcript events. /// [Input("vocabularyFilterName")] public Input? VocabularyFilterName { get; set; } /// - /// Name of the custom vocabulary to use when processing Utterance events. + /// Name of the custom vocabulary to use when processing Transcript events. /// [Input("vocabularyName")] public Input? VocabularyName { get; set; } diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationGetArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationGetArgs.cs index bdec136f701..2d312a42c47 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationGetArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationGetArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// Labels all personally identifiable information (PII) identified in Utterance events. + /// Labels all personally identifiable information (PII) identified in Transcript events. /// [Input("contentIdentificationType")] public Input? ContentIdentificationType { get; set; } /// - /// Redacts all personally identifiable information (PII) identified in Utterance events. + /// Redacts all personally identifiable information (PII) identified in Transcript events. /// [Input("contentRedactionType")] public Input? ContentRedactionType { get; set; } /// - /// Enables partial result stabilization in Utterance events. + /// Enables partial result stabilization in Transcript events. /// [Input("enablePartialResultsStabilization")] public Input? EnablePartialResultsStabilization { get; set; } @@ -55,7 +55,7 @@ public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribePro public Input? PartialResultsStability { get; set; } /// - /// Types of personally identifiable information (PII) to redact from an Utterance event. + /// Types of personally identifiable information (PII) to redact from a Transcript event. /// [Input("piiEntityTypes")] public Input? PiiEntityTypes { get; set; } @@ -67,19 +67,19 @@ public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribePro public Input? ShowSpeakerLabel { get; set; } /// - /// Method for applying a vocabulary filter to Utterance events. + /// Method for applying a vocabulary filter to Transcript events. /// [Input("vocabularyFilterMethod")] public Input? VocabularyFilterMethod { get; set; } /// - /// Name of the custom vocabulary filter to use when processing Utterance events. + /// Name of the custom vocabulary filter to use when processing Transcript events. /// [Input("vocabularyFilterName")] public Input? VocabularyFilterName { get; set; } /// - /// Name of the custom vocabulary to use when processing Utterance events. + /// Name of the custom vocabulary to use when processing Transcript events. /// [Input("vocabularyName")] public Input? VocabularyName { get; set; } diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.cs index fea76190cdd..419df782a9c 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// [Input("insightsTarget", required: true)] public Input InsightsTarget { get; set; } = null!; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationGetArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationGetArgs.cs index bae0e2affaa..6ecefb74c9d 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationGetArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// [Input("insightsTarget", required: true)] public Input InsightsTarget { get; set; } = null!; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs.cs index ef472030614..689a83dc090 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// [Input("insightsTarget", required: true)] public Input InsightsTarget { get; set; } = null!; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationGetArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationGetArgs.cs index 414044d1e60..aa7744237a7 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationGetArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// [Input("insightsTarget", required: true)] public Input InsightsTarget { get; set; } = null!; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs.cs index 068d1fea76c..ce131df9ee6 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// [Input("insightsTarget", required: true)] public Input InsightsTarget { get; set; } = null!; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationGetArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationGetArgs.cs index a12aa581d68..6a7c63c689f 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationGetArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// [Input("insightsTarget", required: true)] public Input InsightsTarget { get; set; } = null!; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs.cs index 139358d948b..e744eac63c0 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// [Input("insightsTarget", required: true)] public Input InsightsTarget { get; set; } = null!; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationGetArgs.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationGetArgs.cs index e6e84a8908b..5229f603e39 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationGetArgs.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Inputs public sealed class MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// [Input("insightsTarget", required: true)] public Input InsightsTarget { get; set; } = null!; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration.cs index a18172c371b..71df433d036 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration.cs @@ -18,15 +18,15 @@ public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribeCal /// public readonly ImmutableArray CallAnalyticsStreamCategories; /// - /// Labels all personally identifiable information (PII) identified in Utterance events. + /// Labels all personally identifiable information (PII) identified in Transcript events. /// public readonly string? ContentIdentificationType; /// - /// Redacts all personally identifiable information (PII) identified in Utterance events. + /// Redacts all personally identifiable information (PII) identified in Transcript events. /// public readonly string? ContentRedactionType; /// - /// Enables partial result stabilization in Utterance events. + /// Enables partial result stabilization in Transcript events. /// public readonly bool? EnablePartialResultsStabilization; /// @@ -46,7 +46,7 @@ public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribeCal /// public readonly string? PartialResultsStability; /// - /// Types of personally identifiable information (PII) to redact from an Utterance event. + /// Types of personally identifiable information (PII) to redact from a Transcript event. /// public readonly string? PiiEntityTypes; /// @@ -54,15 +54,15 @@ public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribeCal /// public readonly Outputs.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettings? PostCallAnalyticsSettings; /// - /// Method for applying a vocabulary filter to Utterance events. + /// Method for applying a vocabulary filter to Transcript events. /// public readonly string? VocabularyFilterMethod; /// - /// Name of the custom vocabulary filter to use when processing Utterance events. + /// Name of the custom vocabulary filter to use when processing Transcript events. /// public readonly string? VocabularyFilterName; /// - /// Name of the custom vocabulary to use when processing Utterance events. + /// Name of the custom vocabulary to use when processing Transcript events. /// public readonly string? VocabularyName; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration.cs index 513d3ef56e5..0d59f1a451f 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration.cs @@ -14,15 +14,15 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Outputs public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration { /// - /// Labels all personally identifiable information (PII) identified in Utterance events. + /// Labels all personally identifiable information (PII) identified in Transcript events. /// public readonly string? ContentIdentificationType; /// - /// Redacts all personally identifiable information (PII) identified in Utterance events. + /// Redacts all personally identifiable information (PII) identified in Transcript events. /// public readonly string? ContentRedactionType; /// - /// Enables partial result stabilization in Utterance events. + /// Enables partial result stabilization in Transcript events. /// public readonly bool? EnablePartialResultsStabilization; /// @@ -42,7 +42,7 @@ public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribePro /// public readonly string? PartialResultsStability; /// - /// Types of personally identifiable information (PII) to redact from an Utterance event. + /// Types of personally identifiable information (PII) to redact from a Transcript event. /// public readonly string? PiiEntityTypes; /// @@ -50,15 +50,15 @@ public sealed class MediaInsightsPipelineConfigurationElementAmazonTranscribePro /// public readonly bool? ShowSpeakerLabel; /// - /// Method for applying a vocabulary filter to Utterance events. + /// Method for applying a vocabulary filter to Transcript events. /// public readonly string? VocabularyFilterMethod; /// - /// Name of the custom vocabulary filter to use when processing Utterance events. + /// Name of the custom vocabulary filter to use when processing Transcript events. /// public readonly string? VocabularyFilterName; /// - /// Name of the custom vocabulary to use when processing Utterance events. + /// Name of the custom vocabulary to use when processing Transcript events. /// public readonly string? VocabularyName; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration.cs index 1009264fd73..9a407cc596a 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Outputs public sealed class MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// public readonly string InsightsTarget; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration.cs index 51eabc496c8..a66d917fdab 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Outputs public sealed class MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// public readonly string InsightsTarget; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration.cs index b12b928f221..3e52ff190ba 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Outputs public sealed class MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// public readonly string InsightsTarget; diff --git a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration.cs b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration.cs index 7879f2c3325..e3bb8f2fffc 100644 --- a/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration.cs +++ b/sdk/dotnet/ChimeSDKMediaPipelines/Outputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.ChimeSDKMediaPipelines.Outputs public sealed class MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration { /// - /// Kinesis Data Stream to deliver results. + /// SQS queue to deliver results. /// public readonly string InsightsTarget; diff --git a/sdk/dotnet/CleanRooms/Collaboration.cs b/sdk/dotnet/CleanRooms/Collaboration.cs index 0ba9459d6e3..1982ea7a88f 100644 --- a/sdk/dotnet/CleanRooms/Collaboration.cs +++ b/sdk/dotnet/CleanRooms/Collaboration.cs @@ -46,7 +46,7 @@ namespace Pulumi.Aws.CleanRooms /// { /// AccountId = "123456789012", /// DisplayName = "Other member", - /// MemberAbilities = new[] {}, + /// MemberAbilities = new() { }, /// }, /// }, /// QueryLogStatus = "DISABLED", diff --git a/sdk/dotnet/CloudFront/Distribution.cs b/sdk/dotnet/CloudFront/Distribution.cs index 44f2e1b217b..0911dfb0c91 100644 --- a/sdk/dotnet/CloudFront/Distribution.cs +++ b/sdk/dotnet/CloudFront/Distribution.cs @@ -400,7 +400,7 @@ public partial class Distribution : global::Pulumi.CustomResource public Output DomainName { get; private set; } = null!; /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// [Output("enabled")] public Output Enabled { get; private set; } = null!; @@ -636,7 +636,7 @@ public InputList CustomErrorResponse public Input? DefaultRootObject { get; set; } /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// [Input("enabled", required: true)] public Input Enabled { get; set; } = null!; @@ -824,7 +824,7 @@ public InputList CustomErrorRespo public Input? DomainName { get; set; } /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// [Input("enabled")] public Input? Enabled { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs.cs b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs.cs index a865c546e25..2623571fb6e 100644 --- a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs.cs @@ -14,6 +14,10 @@ public sealed class CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesCo { [Input("items")] private InputList? _items; + + /// + /// List of item names, such as cookies, headers, or query strings. + /// public InputList Items { get => _items ?? (_items = new InputList()); diff --git a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesGetArgs.cs index cddc36c913f..868a7ba3401 100644 --- a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesGetArgs.cs @@ -14,6 +14,10 @@ public sealed class CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesCo { [Input("items")] private InputList? _items; + + /// + /// List of item names, such as cookies, headers, or query strings. + /// public InputList Items { get => _items ?? (_items = new InputList()); diff --git a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs.cs b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs.cs index 30203d31a48..83ff4232c5b 100644 --- a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs.cs @@ -14,6 +14,10 @@ public sealed class CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersCo { [Input("items")] private InputList? _items; + + /// + /// List of item names, such as cookies, headers, or query strings. + /// public InputList Items { get => _items ?? (_items = new InputList()); diff --git a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersGetArgs.cs index fb21d470e83..71fc7a70472 100644 --- a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersGetArgs.cs @@ -14,6 +14,10 @@ public sealed class CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersCo { [Input("items")] private InputList? _items; + + /// + /// List of item names, such as cookies, headers, or query strings. + /// public InputList Items { get => _items ?? (_items = new InputList()); diff --git a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs.cs b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs.cs index d6eaf9146f7..2e3d9344272 100644 --- a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs.cs @@ -14,6 +14,10 @@ public sealed class CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStri { [Input("items")] private InputList? _items; + + /// + /// List of item names, such as cookies, headers, or query strings. + /// public InputList Items { get => _items ?? (_items = new InputList()); diff --git a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsGetArgs.cs index 4d2f2ba95f8..9a91bfb5683 100644 --- a/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsGetArgs.cs @@ -14,6 +14,10 @@ public sealed class CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStri { [Input("items")] private InputList? _items; + + /// + /// List of item names, such as cookies, headers, or query strings. + /// public InputList Items { get => _items ?? (_items = new InputList()); diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginArgs.cs index da2ebc68360..c86d4e2cfe3 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginArgs.cs @@ -55,7 +55,7 @@ public InputList CustomHeaders public Input? OriginAccessControlId { get; set; } /// - /// Unique identifier for the origin. + /// Unique identifier of the member origin. /// [Input("originId", required: true)] public Input OriginId { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGetArgs.cs index 4fec0bc4fd3..607b731b099 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGetArgs.cs @@ -55,7 +55,7 @@ public InputList CustomHeaders public Input? OriginAccessControlId { get; set; } /// - /// Unique identifier for the origin. + /// Unique identifier of the member origin. /// [Input("originId", required: true)] public Input OriginId { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupArgs.cs index 6764bdee121..07f69e01bb8 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupArgs.cs @@ -31,7 +31,7 @@ public InputList Members } /// - /// Unique identifier for the origin. + /// Unique identifier of the member origin. /// [Input("originId", required: true)] public Input OriginId { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupGetArgs.cs index 0e0857a1018..b9c40c0b6a9 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupGetArgs.cs @@ -31,7 +31,7 @@ public InputList Members } /// - /// Unique identifier for the origin. + /// Unique identifier of the member origin. /// [Input("originId", required: true)] public Input OriginId { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupMemberArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupMemberArgs.cs index 2730c11842e..80f937d92db 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupMemberArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupMemberArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.CloudFront.Inputs public sealed class DistributionOriginGroupMemberArgs : global::Pulumi.ResourceArgs { /// - /// Unique identifier for the origin. + /// Unique identifier of the member origin. /// [Input("originId", required: true)] public Input OriginId { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupMemberGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupMemberGetArgs.cs index cd8492e9ca7..1c2f990c2e1 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupMemberGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGroupMemberGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.CloudFront.Inputs public sealed class DistributionOriginGroupMemberGetArgs : global::Pulumi.ResourceArgs { /// - /// Unique identifier for the origin. + /// Unique identifier of the member origin. /// [Input("originId", required: true)] public Input OriginId { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginOriginShieldArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginOriginShieldArgs.cs index 71a2f67e12b..c81184ad860 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginOriginShieldArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginOriginShieldArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.CloudFront.Inputs public sealed class DistributionOriginOriginShieldArgs : global::Pulumi.ResourceArgs { /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// [Input("enabled", required: true)] public Input Enabled { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginOriginShieldGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginOriginShieldGetArgs.cs index d5c823e09a3..19f42e89e24 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginOriginShieldGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginOriginShieldGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.CloudFront.Inputs public sealed class DistributionOriginOriginShieldGetArgs : global::Pulumi.ResourceArgs { /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// [Input("enabled", required: true)] public Input Enabled { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionTrustedKeyGroupArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionTrustedKeyGroupArgs.cs index 6ce800f910c..0630d706cb5 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionTrustedKeyGroupArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionTrustedKeyGroupArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.CloudFront.Inputs public sealed class DistributionTrustedKeyGroupArgs : global::Pulumi.ResourceArgs { /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// [Input("enabled")] public Input? Enabled { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionTrustedKeyGroupGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionTrustedKeyGroupGetArgs.cs index 8eba4e488fd..3a57c0de1c3 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionTrustedKeyGroupGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionTrustedKeyGroupGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.CloudFront.Inputs public sealed class DistributionTrustedKeyGroupGetArgs : global::Pulumi.ResourceArgs { /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// [Input("enabled")] public Input? Enabled { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionTrustedSignerArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionTrustedSignerArgs.cs index b198648d99a..d1b1b8ffb30 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionTrustedSignerArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionTrustedSignerArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.CloudFront.Inputs public sealed class DistributionTrustedSignerArgs : global::Pulumi.ResourceArgs { /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// [Input("enabled")] public Input? Enabled { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionTrustedSignerGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionTrustedSignerGetArgs.cs index 19f53fa8e77..7efb15cb100 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionTrustedSignerGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionTrustedSignerGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.CloudFront.Inputs public sealed class DistributionTrustedSignerGetArgs : global::Pulumi.ResourceArgs { /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// [Input("enabled")] public Input? Enabled { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/ResponseHeadersPolicyCustomHeadersConfigItemArgs.cs b/sdk/dotnet/CloudFront/Inputs/ResponseHeadersPolicyCustomHeadersConfigItemArgs.cs index 7927f786666..0e7cb647adc 100644 --- a/sdk/dotnet/CloudFront/Inputs/ResponseHeadersPolicyCustomHeadersConfigItemArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/ResponseHeadersPolicyCustomHeadersConfigItemArgs.cs @@ -19,7 +19,7 @@ public sealed class ResponseHeadersPolicyCustomHeadersConfigItemArgs : global::P public Input Header { get; set; } = null!; /// - /// Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + /// Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. /// [Input("override", required: true)] public Input Override { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/ResponseHeadersPolicyCustomHeadersConfigItemGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/ResponseHeadersPolicyCustomHeadersConfigItemGetArgs.cs index b13bd221281..f4886a91ffa 100644 --- a/sdk/dotnet/CloudFront/Inputs/ResponseHeadersPolicyCustomHeadersConfigItemGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/ResponseHeadersPolicyCustomHeadersConfigItemGetArgs.cs @@ -19,7 +19,7 @@ public sealed class ResponseHeadersPolicyCustomHeadersConfigItemGetArgs : global public Input Header { get; set; } = null!; /// - /// Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + /// Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. /// [Input("override", required: true)] public Input Override { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies.cs b/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies.cs index f61a6ec9936..0b434344317 100644 --- a/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies.cs +++ b/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies.cs @@ -13,6 +13,9 @@ namespace Pulumi.Aws.CloudFront.Outputs [OutputType] public sealed class CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies { + /// + /// List of item names, such as cookies, headers, or query strings. + /// public readonly ImmutableArray Items; [OutputConstructor] diff --git a/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders.cs b/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders.cs index ae02f10324f..a4c335b193e 100644 --- a/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders.cs +++ b/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders.cs @@ -13,6 +13,9 @@ namespace Pulumi.Aws.CloudFront.Outputs [OutputType] public sealed class CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders { + /// + /// List of item names, such as cookies, headers, or query strings. + /// public readonly ImmutableArray Items; [OutputConstructor] diff --git a/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings.cs b/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings.cs index 437e4d10a28..efc00ec0cd9 100644 --- a/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings.cs +++ b/sdk/dotnet/CloudFront/Outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings.cs @@ -13,6 +13,9 @@ namespace Pulumi.Aws.CloudFront.Outputs [OutputType] public sealed class CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings { + /// + /// List of item names, such as cookies, headers, or query strings. + /// public readonly ImmutableArray Items; [OutputConstructor] diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionOrigin.cs b/sdk/dotnet/CloudFront/Outputs/DistributionOrigin.cs index bfc4f34ddaa..720a364612f 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionOrigin.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionOrigin.cs @@ -38,7 +38,7 @@ public sealed class DistributionOrigin /// public readonly string? OriginAccessControlId; /// - /// Unique identifier for the origin. + /// Unique identifier of the member origin. /// public readonly string OriginId; /// diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionOriginGroup.cs b/sdk/dotnet/CloudFront/Outputs/DistributionOriginGroup.cs index 69663152051..8c3f1cd037d 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionOriginGroup.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionOriginGroup.cs @@ -22,7 +22,7 @@ public sealed class DistributionOriginGroup /// public readonly ImmutableArray Members; /// - /// Unique identifier for the origin. + /// Unique identifier of the member origin. /// public readonly string OriginId; diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionOriginGroupMember.cs b/sdk/dotnet/CloudFront/Outputs/DistributionOriginGroupMember.cs index a7572100ea6..43a9818d2ab 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionOriginGroupMember.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionOriginGroupMember.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.CloudFront.Outputs public sealed class DistributionOriginGroupMember { /// - /// Unique identifier for the origin. + /// Unique identifier of the member origin. /// public readonly string OriginId; diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionOriginOriginShield.cs b/sdk/dotnet/CloudFront/Outputs/DistributionOriginOriginShield.cs index 7ce8007c8ed..c41f0632005 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionOriginOriginShield.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionOriginOriginShield.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.CloudFront.Outputs public sealed class DistributionOriginOriginShield { /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// public readonly bool Enabled; /// diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionTrustedKeyGroup.cs b/sdk/dotnet/CloudFront/Outputs/DistributionTrustedKeyGroup.cs index f717c7606eb..afcd7a1fb86 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionTrustedKeyGroup.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionTrustedKeyGroup.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.CloudFront.Outputs public sealed class DistributionTrustedKeyGroup { /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// public readonly bool? Enabled; /// diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionTrustedSigner.cs b/sdk/dotnet/CloudFront/Outputs/DistributionTrustedSigner.cs index 5b21e9fe9f4..6d15d239a1e 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionTrustedSigner.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionTrustedSigner.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.CloudFront.Outputs public sealed class DistributionTrustedSigner { /// - /// Whether the distribution is enabled to accept end user requests for content. + /// Whether Origin Shield is enabled. /// public readonly bool? Enabled; /// diff --git a/sdk/dotnet/CloudFront/Outputs/ResponseHeadersPolicyCustomHeadersConfigItem.cs b/sdk/dotnet/CloudFront/Outputs/ResponseHeadersPolicyCustomHeadersConfigItem.cs index f2320ecc959..9d46e302337 100644 --- a/sdk/dotnet/CloudFront/Outputs/ResponseHeadersPolicyCustomHeadersConfigItem.cs +++ b/sdk/dotnet/CloudFront/Outputs/ResponseHeadersPolicyCustomHeadersConfigItem.cs @@ -18,7 +18,7 @@ public sealed class ResponseHeadersPolicyCustomHeadersConfigItem /// public readonly string Header; /// - /// Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + /// Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. /// public readonly bool Override; /// diff --git a/sdk/dotnet/CloudWatch/MetricStream.cs b/sdk/dotnet/CloudWatch/MetricStream.cs index 4b6ef686593..97791cfeb18 100644 --- a/sdk/dotnet/CloudWatch/MetricStream.cs +++ b/sdk/dotnet/CloudWatch/MetricStream.cs @@ -116,7 +116,7 @@ namespace Pulumi.Aws.CloudWatch /// new Aws.CloudWatch.Inputs.MetricStreamIncludeFilterArgs /// { /// Namespace = "AWS/EBS", - /// MetricNames = new[] {}, + /// MetricNames = new() { }, /// }, /// }, /// }); diff --git a/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigCloudwatchLogsArgs.cs b/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigCloudwatchLogsArgs.cs index fbc35fada0b..4c14cd14225 100644 --- a/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigCloudwatchLogsArgs.cs +++ b/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigCloudwatchLogsArgs.cs @@ -19,7 +19,7 @@ public sealed class ProjectLogsConfigCloudwatchLogsArgs : global::Pulumi.Resourc public Input? GroupName { get; set; } /// - /// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + /// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. /// [Input("status")] public Input? Status { get; set; } diff --git a/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigCloudwatchLogsGetArgs.cs b/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigCloudwatchLogsGetArgs.cs index 4a633223179..37a0c208f9e 100644 --- a/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigCloudwatchLogsGetArgs.cs +++ b/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigCloudwatchLogsGetArgs.cs @@ -19,7 +19,7 @@ public sealed class ProjectLogsConfigCloudwatchLogsGetArgs : global::Pulumi.Reso public Input? GroupName { get; set; } /// - /// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + /// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. /// [Input("status")] public Input? Status { get; set; } diff --git a/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigS3LogsArgs.cs b/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigS3LogsArgs.cs index 5d35e97f62a..c345ca1e45c 100644 --- a/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigS3LogsArgs.cs +++ b/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigS3LogsArgs.cs @@ -31,7 +31,7 @@ public sealed class ProjectLogsConfigS3LogsArgs : global::Pulumi.ResourceArgs public Input? Location { get; set; } /// - /// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + /// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. /// [Input("status")] public Input? Status { get; set; } diff --git a/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigS3LogsGetArgs.cs b/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigS3LogsGetArgs.cs index b485fea1838..1f2f07f1317 100644 --- a/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigS3LogsGetArgs.cs +++ b/sdk/dotnet/CodeBuild/Inputs/ProjectLogsConfigS3LogsGetArgs.cs @@ -31,7 +31,7 @@ public sealed class ProjectLogsConfigS3LogsGetArgs : global::Pulumi.ResourceArgs public Input? Location { get; set; } /// - /// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + /// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. /// [Input("status")] public Input? Status { get; set; } diff --git a/sdk/dotnet/CodeBuild/Outputs/ProjectLogsConfigCloudwatchLogs.cs b/sdk/dotnet/CodeBuild/Outputs/ProjectLogsConfigCloudwatchLogs.cs index d34a95bf909..e832204d1cf 100644 --- a/sdk/dotnet/CodeBuild/Outputs/ProjectLogsConfigCloudwatchLogs.cs +++ b/sdk/dotnet/CodeBuild/Outputs/ProjectLogsConfigCloudwatchLogs.cs @@ -18,7 +18,7 @@ public sealed class ProjectLogsConfigCloudwatchLogs /// public readonly string? GroupName; /// - /// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + /// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. /// public readonly string? Status; /// diff --git a/sdk/dotnet/CodeBuild/Outputs/ProjectLogsConfigS3Logs.cs b/sdk/dotnet/CodeBuild/Outputs/ProjectLogsConfigS3Logs.cs index 90d0d51ba03..e315becee50 100644 --- a/sdk/dotnet/CodeBuild/Outputs/ProjectLogsConfigS3Logs.cs +++ b/sdk/dotnet/CodeBuild/Outputs/ProjectLogsConfigS3Logs.cs @@ -26,7 +26,7 @@ public sealed class ProjectLogsConfigS3Logs /// public readonly string? Location; /// - /// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + /// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. /// public readonly string? Status; diff --git a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs.cs b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs.cs index 26eadc78eea..aa52a40caf0 100644 --- a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs.cs +++ b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs.cs @@ -18,6 +18,9 @@ public sealed class RiskConfigurationAccountTakeoverRiskConfigurationActionsHigh [Input("eventAction", required: true)] public Input EventAction { get; set; } = null!; + /// + /// Whether to send a notification. + /// [Input("notify", required: true)] public Input Notify { get; set; } = null!; diff --git a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionGetArgs.cs b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionGetArgs.cs index 98a29c6f540..c9582fa6f3c 100644 --- a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionGetArgs.cs +++ b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionGetArgs.cs @@ -18,6 +18,9 @@ public sealed class RiskConfigurationAccountTakeoverRiskConfigurationActionsHigh [Input("eventAction", required: true)] public Input EventAction { get; set; } = null!; + /// + /// Whether to send a notification. + /// [Input("notify", required: true)] public Input Notify { get; set; } = null!; diff --git a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs.cs b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs.cs index 0884be2821c..1eeb41ab878 100644 --- a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs.cs +++ b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs.cs @@ -18,6 +18,9 @@ public sealed class RiskConfigurationAccountTakeoverRiskConfigurationActionsLowA [Input("eventAction", required: true)] public Input EventAction { get; set; } = null!; + /// + /// Whether to send a notification. + /// [Input("notify", required: true)] public Input Notify { get; set; } = null!; diff --git a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionGetArgs.cs b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionGetArgs.cs index 2998fd2b027..10fdc41fec2 100644 --- a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionGetArgs.cs +++ b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionGetArgs.cs @@ -18,6 +18,9 @@ public sealed class RiskConfigurationAccountTakeoverRiskConfigurationActionsLowA [Input("eventAction", required: true)] public Input EventAction { get; set; } = null!; + /// + /// Whether to send a notification. + /// [Input("notify", required: true)] public Input Notify { get; set; } = null!; diff --git a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs.cs b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs.cs index 2c16bdf7864..ff8b34dba7f 100644 --- a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs.cs +++ b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs.cs @@ -18,6 +18,9 @@ public sealed class RiskConfigurationAccountTakeoverRiskConfigurationActionsMedi [Input("eventAction", required: true)] public Input EventAction { get; set; } = null!; + /// + /// Whether to send a notification. + /// [Input("notify", required: true)] public Input Notify { get; set; } = null!; diff --git a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionGetArgs.cs b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionGetArgs.cs index b3fd0f57de6..a973a627a15 100644 --- a/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionGetArgs.cs +++ b/sdk/dotnet/Cognito/Inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionGetArgs.cs @@ -18,6 +18,9 @@ public sealed class RiskConfigurationAccountTakeoverRiskConfigurationActionsMedi [Input("eventAction", required: true)] public Input EventAction { get; set; } = null!; + /// + /// Whether to send a notification. + /// [Input("notify", required: true)] public Input Notify { get; set; } = null!; diff --git a/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction.cs b/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction.cs index 95802b89dbd..c03f831957f 100644 --- a/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction.cs +++ b/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction.cs @@ -17,6 +17,9 @@ public sealed class RiskConfigurationAccountTakeoverRiskConfigurationActionsHigh /// The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. /// public readonly string EventAction; + /// + /// Whether to send a notification. + /// public readonly bool Notify; [OutputConstructor] diff --git a/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction.cs b/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction.cs index a118e7a9423..5ae58e5f792 100644 --- a/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction.cs +++ b/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction.cs @@ -17,6 +17,9 @@ public sealed class RiskConfigurationAccountTakeoverRiskConfigurationActionsLowA /// The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. /// public readonly string EventAction; + /// + /// Whether to send a notification. + /// public readonly bool Notify; [OutputConstructor] diff --git a/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction.cs b/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction.cs index aba93b708c3..c98e7d34e5c 100644 --- a/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction.cs +++ b/sdk/dotnet/Cognito/Outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction.cs @@ -17,6 +17,9 @@ public sealed class RiskConfigurationAccountTakeoverRiskConfigurationActionsMedi /// The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. /// public readonly string EventAction; + /// + /// Whether to send a notification. + /// public readonly bool Notify; [OutputConstructor] diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index bb1c96d2587..5941bcd856c 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -8,7 +8,7 @@ namespace Pulumi.Aws { public static class Config { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification = + [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification = "Double underscore prefix used to avoid conflicts with variable names.")] private sealed class __Value { diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs.cs index 7339eb4e0f8..e4919056965 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Dlm.Inputs public sealed class LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + /// The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. /// [Input("cmkArn")] public Input? CmkArn { get; set; } /// - /// To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + /// To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. /// [Input("encrypted")] public Input? Encrypted { get; set; } diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationGetArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationGetArgs.cs index fdef79d984f..8feba4cce49 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationGetArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Dlm.Inputs public sealed class LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + /// The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. /// [Input("cmkArn")] public Input? CmkArn { get; set; } /// - /// To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + /// To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. /// [Input("encrypted")] public Input? Encrypted { get; set; } diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsArgs.cs index 5c504388cbf..83d7d60efce 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsArgs.cs @@ -25,7 +25,7 @@ public sealed class LifecyclePolicyPolicyDetailsArgs : global::Pulumi.ResourceAr public Input? EventSource { get; set; } /// - /// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + /// Information about the event. See the `parameters` configuration block. /// [Input("parameters")] public Input? Parameters { get; set; } diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsEventSourceArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsEventSourceArgs.cs index c71e31d94b7..0a9d0c4c6dd 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsEventSourceArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsEventSourceArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Dlm.Inputs public sealed class LifecyclePolicyPolicyDetailsEventSourceArgs : global::Pulumi.ResourceArgs { /// - /// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + /// Information about the event. See the `parameters` configuration block. /// [Input("parameters", required: true)] public Input Parameters { get; set; } = null!; diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsEventSourceGetArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsEventSourceGetArgs.cs index fc5dbc2644b..c6b9f21df3b 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsEventSourceGetArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsEventSourceGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Dlm.Inputs public sealed class LifecyclePolicyPolicyDetailsEventSourceGetArgs : global::Pulumi.ResourceArgs { /// - /// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + /// Information about the event. See the `parameters` configuration block. /// [Input("parameters", required: true)] public Input Parameters { get; set; } = null!; diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsGetArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsGetArgs.cs index fdf58af7d8d..1c55eaa02e0 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsGetArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsGetArgs.cs @@ -25,7 +25,7 @@ public sealed class LifecyclePolicyPolicyDetailsGetArgs : global::Pulumi.Resourc public Input? EventSource { get; set; } /// - /// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + /// Information about the event. See the `parameters` configuration block. /// [Input("parameters")] public Input? Parameters { get; set; } diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleArgs.cs index 0100b1d962e..0aea023d0e5 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Dlm.Inputs public sealed class LifecyclePolicyPolicyDetailsScheduleArgs : global::Pulumi.ResourceArgs { /// - /// Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + /// Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. /// [Input("copyTags")] public Input? CopyTags { get; set; } @@ -37,7 +37,7 @@ public InputList - /// See the `deprecate_rule` block. Max of 1 per schedule. + /// The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. /// [Input("deprecateRule")] public Input? DeprecateRule { get; set; } diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs.cs index 511f2f4dad9..e5e34b5dee0 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs.cs @@ -13,25 +13,25 @@ namespace Pulumi.Aws.Dlm.Inputs public sealed class LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs : global::Pulumi.ResourceArgs { /// - /// The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + /// The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. /// [Input("cmkArn")] public Input? CmkArn { get; set; } /// - /// Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + /// Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. /// [Input("copyTags")] public Input? CopyTags { get; set; } /// - /// See the `deprecate_rule` block. Max of 1 per schedule. + /// The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. /// [Input("deprecateRule")] public Input? DeprecateRule { get; set; } /// - /// To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + /// To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. /// [Input("encrypted", required: true)] public Input Encrypted { get; set; } = null!; diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleGetArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleGetArgs.cs index 95698051feb..aa068abe9e2 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleGetArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleGetArgs.cs @@ -13,25 +13,25 @@ namespace Pulumi.Aws.Dlm.Inputs public sealed class LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleGetArgs : global::Pulumi.ResourceArgs { /// - /// The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + /// The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. /// [Input("cmkArn")] public Input? CmkArn { get; set; } /// - /// Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + /// Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. /// [Input("copyTags")] public Input? CopyTags { get; set; } /// - /// See the `deprecate_rule` block. Max of 1 per schedule. + /// The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. /// [Input("deprecateRule")] public Input? DeprecateRule { get; set; } /// - /// To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + /// To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. /// [Input("encrypted", required: true)] public Input Encrypted { get; set; } = null!; diff --git a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleGetArgs.cs b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleGetArgs.cs index 53823fe4fa1..96dd5301bb4 100644 --- a/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleGetArgs.cs +++ b/sdk/dotnet/Dlm/Inputs/LifecyclePolicyPolicyDetailsScheduleGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Dlm.Inputs public sealed class LifecyclePolicyPolicyDetailsScheduleGetArgs : global::Pulumi.ResourceArgs { /// - /// Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + /// Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. /// [Input("copyTags")] public Input? CopyTags { get; set; } @@ -37,7 +37,7 @@ public InputList - /// See the `deprecate_rule` block. Max of 1 per schedule. + /// The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. /// [Input("deprecateRule")] public Input? DeprecateRule { get; set; } diff --git a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetails.cs b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetails.cs index b963961647c..90dfc24bbe5 100644 --- a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetails.cs +++ b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetails.cs @@ -22,7 +22,7 @@ public sealed class LifecyclePolicyPolicyDetails /// public readonly Outputs.LifecyclePolicyPolicyDetailsEventSource? EventSource; /// - /// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + /// Information about the event. See the `parameters` configuration block. /// public readonly Outputs.LifecyclePolicyPolicyDetailsParameters? Parameters; /// diff --git a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration.cs b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration.cs index 1f2107e2495..f608d6851a7 100644 --- a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration.cs +++ b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Dlm.Outputs public sealed class LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration { /// - /// The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + /// The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. /// public readonly string? CmkArn; /// - /// To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + /// To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. /// public readonly bool? Encrypted; diff --git a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsEventSource.cs b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsEventSource.cs index accc9c8aa66..bd3367aab7f 100644 --- a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsEventSource.cs +++ b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsEventSource.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Dlm.Outputs public sealed class LifecyclePolicyPolicyDetailsEventSource { /// - /// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + /// Information about the event. See the `parameters` configuration block. /// public readonly Outputs.LifecyclePolicyPolicyDetailsEventSourceParameters Parameters; /// diff --git a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsSchedule.cs b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsSchedule.cs index 34d5278dd11..17da5ff8431 100644 --- a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsSchedule.cs +++ b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsSchedule.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Dlm.Outputs public sealed class LifecyclePolicyPolicyDetailsSchedule { /// - /// Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + /// Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. /// public readonly bool? CopyTags; /// @@ -26,7 +26,7 @@ public sealed class LifecyclePolicyPolicyDetailsSchedule /// public readonly ImmutableArray CrossRegionCopyRules; /// - /// See the `deprecate_rule` block. Max of 1 per schedule. + /// The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. /// public readonly Outputs.LifecyclePolicyPolicyDetailsScheduleDeprecateRule? DeprecateRule; /// diff --git a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule.cs b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule.cs index 397e4306e6e..6cf75f60782 100644 --- a/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule.cs +++ b/sdk/dotnet/Dlm/Outputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule.cs @@ -14,19 +14,19 @@ namespace Pulumi.Aws.Dlm.Outputs public sealed class LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule { /// - /// The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + /// The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. /// public readonly string? CmkArn; /// - /// Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + /// Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. /// public readonly bool? CopyTags; /// - /// See the `deprecate_rule` block. Max of 1 per schedule. + /// The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. /// public readonly Outputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule? DeprecateRule; /// - /// To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + /// To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. /// public readonly bool Encrypted; /// diff --git a/sdk/dotnet/Ec2/AmiCopy.cs b/sdk/dotnet/Ec2/AmiCopy.cs index ee52ebdda0e..a3caeea0d2e 100644 --- a/sdk/dotnet/Ec2/AmiCopy.cs +++ b/sdk/dotnet/Ec2/AmiCopy.cs @@ -100,7 +100,7 @@ public partial class AmiCopy : global::Pulumi.CustomResource public Output EnaSupport { get; private set; } = null!; /// - /// Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + /// Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` /// [Output("encrypted")] public Output Encrypted { get; private set; } = null!; @@ -314,7 +314,7 @@ public InputList EbsBlockDevices } /// - /// Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + /// Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` /// [Input("encrypted")] public Input? Encrypted { get; set; } @@ -435,7 +435,7 @@ public InputList EbsBlockDevices public Input? EnaSupport { get; set; } /// - /// Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + /// Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` /// [Input("encrypted")] public Input? Encrypted { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.cs index 6444eac4a6f..c642d90e50d 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs.cs index b54924a517b..3fa21296620 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs index e9acd936010..e25cbe42126 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs index 85e876cbfef..d8338c63763 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs index 66a92ba7617..355e29a474b 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs index 5e9fd932c5b..679190f3b82 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs index 48ac57c6d8b..e969aefd3b1 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs index 50ba838c466..a165e051fa2 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.cs index ccdacda7e91..a5a7f9988dd 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min", required: true)] public Input Min { get; set; } = null!; diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs.cs index 3c918a6cd4e..7335aad3906 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min", required: true)] public Input Min { get; set; } = null!; diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs index f84d6f49b86..99e13f54562 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs index 7c39ac7c223..5056b5461dd 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs index b9783c429f6..1921828eebf 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs index 28f22b968d3..c9b81697ef8 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs index f0744c8b847..b154e220fb1 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs index 4f281a907b4..8819c665e27 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min")] public Input? Min { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.cs index f460d97ff3c..9fe17bb3c52 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min", required: true)] public Input Min { get; set; } = null!; diff --git a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs.cs b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs.cs index 332e7ad25d5..ac2fd62d918 100644 --- a/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// [Input("max")] public Input? Max { get; set; } /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// [Input("min", required: true)] public Input Min { get; set; } = null!; diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorCountArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorCountArgs.cs index ce1960e874c..9f5835bd145 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorCountArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorCountArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsAcceleratorCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorCountGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorCountGetArgs.cs index 9e59bab32a6..7cc1ff3a6c7 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorCountGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorCountGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsAcceleratorCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs index 5459e187848..c0e4d8935ee 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs index d8ba9bdf990..c496dfa0e47 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs index 2717b3bb98d..df3a14292b3 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs index 0e787536623..5ce54ce06cb 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs.cs index 64d35789b3f..b254b0cba0f 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuGetArgs.cs index 62e8fcee201..de92a31684c 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsMemoryGibPerVcpuGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryMibArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryMibArgs.cs index 996925eae93..34916983801 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryMibArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryMibArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsMemoryMibArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryMibGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryMibGetArgs.cs index 8dd96697eee..c2af1a8acfc 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryMibGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsMemoryMibGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsMemoryMibGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs.cs index 7d21c8c421e..c1ec90336b3 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs index 7eb865ed8a5..6df60550186 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs.cs index e8b4adeb569..b2a82b46796 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountGetArgs.cs index 022e03b7aa8..012726aa691 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsNetworkInterfaceCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs.cs index 811a00bee95..a006b7c3274 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbGetArgs.cs index e2994278126..ef0138d20e5 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsTotalLocalStorageGbGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsVcpuCountArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsVcpuCountArgs.cs index 05064381ebc..c409f0a9d84 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsVcpuCountArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsVcpuCountArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsVcpuCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsVcpuCountGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsVcpuCountGetArgs.cs index 9d463a7eef7..33106e31e50 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsVcpuCountGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsVcpuCountGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class LaunchTemplateInstanceRequirementsVcpuCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.cs index 16001aa94a5..6760c9d688f 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs.cs index 5fd90c1f35d..ce1f10f8ccc 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs index a5cf7225310..bbdc4f5e5cd 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs index 5e697bff396..5b3d2ddb166 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs index 65771e9b369..82db10ffd42 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs index 8b43ecfcddb..154225da333 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs index 7152271afb0..38c58d422d8 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs index 3e16b6d194b..2d6fe6f3dc9 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.cs index ab4296fd4f6..bdd4e526f03 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs.cs index fde745a0701..fa0b4f5ad10 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs index 3fc6b1dc926..9defeda78e9 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs index e376166db04..cdc4b814d4f 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs index a4d53fbbee2..029dbbf08db 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs index 1ba3bde9b2c..4cc498b085e 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs index 4fae70dea76..4e820a425dc 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs index dfa00d31a7f..a05e70f3e35 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.cs index 0d8e6fa0baa..7dafc0724ca 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs.cs index 7199e57708a..401db6f62fb 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountGetArgs : global::Pulumi.ResourceArgs { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// [Input("max")] public Input? Max { get; set; } diff --git a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.cs b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.cs index e68202d9108..f4f363c6f00 100644 --- a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.cs +++ b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// public readonly int? Max; /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// public readonly int? Min; diff --git a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs index 74650e05610..ccbe74f8884 100644 --- a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs +++ b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// public readonly int? Max; /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// public readonly int? Min; diff --git a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs index 1b5524aae46..f5a8cfda43b 100644 --- a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs +++ b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// public readonly int? Max; /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// public readonly int? Min; diff --git a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.cs b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.cs index fa18793b826..3c43f9d781c 100644 --- a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.cs +++ b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// public readonly double? Max; /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// public readonly double? Min; diff --git a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.cs b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.cs index 2897bd81cee..715c12b5dac 100644 --- a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.cs +++ b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// public readonly int? Max; /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// public readonly int Min; diff --git a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.cs b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.cs index 6014c9e0983..76ed0fdfbd1 100644 --- a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.cs +++ b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// public readonly double? Max; /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// public readonly double? Min; diff --git a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.cs b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.cs index 70cba3b831b..8e3f778993a 100644 --- a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.cs +++ b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// public readonly int? Max; /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// public readonly int? Min; diff --git a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.cs b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.cs index c23edb0b5e0..381cb81ff93 100644 --- a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.cs +++ b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// public readonly double? Max; /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// public readonly double? Min; diff --git a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.cs b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.cs index 845e9df6d06..7d3c7dc5c6a 100644 --- a/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.cs +++ b/sdk/dotnet/Ec2/Outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. /// public readonly int? Max; /// - /// Minimum. + /// The minimum number of vCPUs. To specify no minimum limit, specify `0`. /// public readonly int Min; diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsAcceleratorCount.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsAcceleratorCount.cs index c04a695ea36..b3123e8109b 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsAcceleratorCount.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsAcceleratorCount.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class LaunchTemplateInstanceRequirementsAcceleratorCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib.cs index f82d2eac725..440ed7eb5cb 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps.cs index 5412d51baa4..0b690b67194 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpu.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpu.cs index 633010823f4..5427c941726 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpu.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpu.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class LaunchTemplateInstanceRequirementsMemoryGibPerVcpu { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly double? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsMemoryMib.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsMemoryMib.cs index 68e0effd3b0..bbde467ca9d 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsMemoryMib.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsMemoryMib.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class LaunchTemplateInstanceRequirementsMemoryMib { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbps.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbps.cs index 949e02c83f3..7737a8b86e3 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbps.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbps.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class LaunchTemplateInstanceRequirementsNetworkBandwidthGbps { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly double? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCount.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCount.cs index 38e7d897a9c..cbfa63b75fb 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCount.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCount.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class LaunchTemplateInstanceRequirementsNetworkInterfaceCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGb.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGb.cs index 58c6c787cc2..852a94161b5 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGb.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGb.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class LaunchTemplateInstanceRequirementsTotalLocalStorageGb { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly double? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsVcpuCount.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsVcpuCount.cs index 652723215c2..cf24874e32b 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsVcpuCount.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirementsVcpuCount.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class LaunchTemplateInstanceRequirementsVcpuCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.cs b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.cs index 048143e2ed0..48f7106fb0b 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs index 17ed6d3e444..009dd564025 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs index 08c26392e33..05df897c3dc 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.cs b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.cs index e7c3d2e6047..32d7d43ad2a 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly double? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.cs b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.cs index 5697f0cad74..51bd49f4ce2 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.cs b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.cs index 2bbb4de0361..f562931f32c 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly double? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.cs b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.cs index 149c9298446..4b182a1f671 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.cs b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.cs index d60e0d65d51..25960b36dc0 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly double? Max; /// diff --git a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.cs b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.cs index 8ffe3936d68..a36501b6007 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount { /// - /// Maximum. Set to `0` to exclude instance types with accelerators. + /// Maximum. /// public readonly int? Max; /// diff --git a/sdk/dotnet/Ec2/SpotInstanceRequest.cs b/sdk/dotnet/Ec2/SpotInstanceRequest.cs index 04a3f261a84..abcd7154007 100644 --- a/sdk/dotnet/Ec2/SpotInstanceRequest.cs +++ b/sdk/dotnet/Ec2/SpotInstanceRequest.cs @@ -198,7 +198,7 @@ public partial class SpotInstanceRequest : global::Pulumi.CustomResource public Output InstanceInitiatedShutdownBehavior { get; private set; } = null!; /// - /// The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + /// Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. /// [Output("instanceInterruptionBehavior")] public Output InstanceInterruptionBehavior { get; private set; } = null!; @@ -432,7 +432,7 @@ public partial class SpotInstanceRequest : global::Pulumi.CustomResource public Output ValidFrom { get; private set; } = null!; /// - /// The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + /// The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. /// [Output("validUntil")] public Output ValidUntil { get; private set; } = null!; @@ -652,7 +652,7 @@ public InputList EphemeralBl public Input? InstanceInitiatedShutdownBehavior { get; set; } /// - /// The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + /// Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. /// [Input("instanceInterruptionBehavior")] public Input? InstanceInterruptionBehavior { get; set; } @@ -854,7 +854,7 @@ public InputMap Tags public Input? ValidFrom { get; set; } /// - /// The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + /// The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. /// [Input("validUntil")] public Input? ValidUntil { get; set; } @@ -1047,7 +1047,7 @@ public InputList Ephemera public Input? InstanceInitiatedShutdownBehavior { get; set; } /// - /// The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + /// Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. /// [Input("instanceInterruptionBehavior")] public Input? InstanceInterruptionBehavior { get; set; } @@ -1322,7 +1322,7 @@ public InputMap TagsAll public Input? ValidFrom { get; set; } /// - /// The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + /// The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. /// [Input("validUntil")] public Input? ValidUntil { get; set; } diff --git a/sdk/dotnet/Glue/Inputs/CrawlerS3TargetArgs.cs b/sdk/dotnet/Glue/Inputs/CrawlerS3TargetArgs.cs index 4ac544f13cf..a77bbbf9106 100644 --- a/sdk/dotnet/Glue/Inputs/CrawlerS3TargetArgs.cs +++ b/sdk/dotnet/Glue/Inputs/CrawlerS3TargetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Glue.Inputs public sealed class CrawlerS3TargetArgs : global::Pulumi.ResourceArgs { /// - /// The name of the connection to use to connect to the JDBC target. + /// The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. /// [Input("connectionName")] public Input? ConnectionName { get; set; } /// - /// The ARN of the dead-letter SQS queue. + /// A valid Amazon SQS ARN. /// /// > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. /// @@ -29,7 +29,7 @@ public sealed class CrawlerS3TargetArgs : global::Pulumi.ResourceArgs public Input? DlqEventQueueArn { get; set; } /// - /// The ARN of the SQS queue to receive S3 notifications from. + /// A valid Amazon SQS ARN. /// [Input("eventQueueArn")] public Input? EventQueueArn { get; set; } diff --git a/sdk/dotnet/Glue/Inputs/CrawlerS3TargetGetArgs.cs b/sdk/dotnet/Glue/Inputs/CrawlerS3TargetGetArgs.cs index 71fa1943510..0cea6755b3d 100644 --- a/sdk/dotnet/Glue/Inputs/CrawlerS3TargetGetArgs.cs +++ b/sdk/dotnet/Glue/Inputs/CrawlerS3TargetGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Glue.Inputs public sealed class CrawlerS3TargetGetArgs : global::Pulumi.ResourceArgs { /// - /// The name of the connection to use to connect to the JDBC target. + /// The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. /// [Input("connectionName")] public Input? ConnectionName { get; set; } /// - /// The ARN of the dead-letter SQS queue. + /// A valid Amazon SQS ARN. /// /// > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. /// @@ -29,7 +29,7 @@ public sealed class CrawlerS3TargetGetArgs : global::Pulumi.ResourceArgs public Input? DlqEventQueueArn { get; set; } /// - /// The ARN of the SQS queue to receive S3 notifications from. + /// A valid Amazon SQS ARN. /// [Input("eventQueueArn")] public Input? EventQueueArn { get; set; } diff --git a/sdk/dotnet/Glue/Outputs/CrawlerS3Target.cs b/sdk/dotnet/Glue/Outputs/CrawlerS3Target.cs index 0c03fce2727..ae43576680c 100644 --- a/sdk/dotnet/Glue/Outputs/CrawlerS3Target.cs +++ b/sdk/dotnet/Glue/Outputs/CrawlerS3Target.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Glue.Outputs public sealed class CrawlerS3Target { /// - /// The name of the connection to use to connect to the JDBC target. + /// The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. /// public readonly string? ConnectionName; /// - /// The ARN of the dead-letter SQS queue. + /// A valid Amazon SQS ARN. /// /// > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. /// @@ -26,7 +26,7 @@ public sealed class CrawlerS3Target /// public readonly string? DlqEventQueueArn; /// - /// The ARN of the SQS queue to receive S3 notifications from. + /// A valid Amazon SQS ARN. /// public readonly string? EventQueueArn; /// diff --git a/sdk/dotnet/Iot/Inputs/TopicRuleDynamodbv2PutItemArgs.cs b/sdk/dotnet/Iot/Inputs/TopicRuleDynamodbv2PutItemArgs.cs index 6c9d50a450f..706d870ca3a 100644 --- a/sdk/dotnet/Iot/Inputs/TopicRuleDynamodbv2PutItemArgs.cs +++ b/sdk/dotnet/Iot/Inputs/TopicRuleDynamodbv2PutItemArgs.cs @@ -14,8 +14,6 @@ public sealed class TopicRuleDynamodbv2PutItemArgs : global::Pulumi.ResourceArgs { /// /// The name of the DynamoDB table. - /// - /// The `dynamodbv2` object takes the following arguments: /// [Input("tableName", required: true)] public Input TableName { get; set; } = null!; diff --git a/sdk/dotnet/Iot/Inputs/TopicRuleDynamodbv2PutItemGetArgs.cs b/sdk/dotnet/Iot/Inputs/TopicRuleDynamodbv2PutItemGetArgs.cs index 5989545d2a6..2a99e5fe406 100644 --- a/sdk/dotnet/Iot/Inputs/TopicRuleDynamodbv2PutItemGetArgs.cs +++ b/sdk/dotnet/Iot/Inputs/TopicRuleDynamodbv2PutItemGetArgs.cs @@ -14,8 +14,6 @@ public sealed class TopicRuleDynamodbv2PutItemGetArgs : global::Pulumi.ResourceA { /// /// The name of the DynamoDB table. - /// - /// The `dynamodbv2` object takes the following arguments: /// [Input("tableName", required: true)] public Input TableName { get; set; } = null!; diff --git a/sdk/dotnet/Iot/Inputs/TopicRuleErrorActionDynamodbv2PutItemArgs.cs b/sdk/dotnet/Iot/Inputs/TopicRuleErrorActionDynamodbv2PutItemArgs.cs index 6d9dadc23f3..27f6dd18557 100644 --- a/sdk/dotnet/Iot/Inputs/TopicRuleErrorActionDynamodbv2PutItemArgs.cs +++ b/sdk/dotnet/Iot/Inputs/TopicRuleErrorActionDynamodbv2PutItemArgs.cs @@ -14,8 +14,6 @@ public sealed class TopicRuleErrorActionDynamodbv2PutItemArgs : global::Pulumi.R { /// /// The name of the DynamoDB table. - /// - /// The `dynamodbv2` object takes the following arguments: /// [Input("tableName", required: true)] public Input TableName { get; set; } = null!; diff --git a/sdk/dotnet/Iot/Inputs/TopicRuleErrorActionDynamodbv2PutItemGetArgs.cs b/sdk/dotnet/Iot/Inputs/TopicRuleErrorActionDynamodbv2PutItemGetArgs.cs index 82394438486..05a4a149281 100644 --- a/sdk/dotnet/Iot/Inputs/TopicRuleErrorActionDynamodbv2PutItemGetArgs.cs +++ b/sdk/dotnet/Iot/Inputs/TopicRuleErrorActionDynamodbv2PutItemGetArgs.cs @@ -14,8 +14,6 @@ public sealed class TopicRuleErrorActionDynamodbv2PutItemGetArgs : global::Pulum { /// /// The name of the DynamoDB table. - /// - /// The `dynamodbv2` object takes the following arguments: /// [Input("tableName", required: true)] public Input TableName { get; set; } = null!; diff --git a/sdk/dotnet/Iot/Outputs/TopicRuleDynamodbv2PutItem.cs b/sdk/dotnet/Iot/Outputs/TopicRuleDynamodbv2PutItem.cs index fc859086bdb..4241090d932 100644 --- a/sdk/dotnet/Iot/Outputs/TopicRuleDynamodbv2PutItem.cs +++ b/sdk/dotnet/Iot/Outputs/TopicRuleDynamodbv2PutItem.cs @@ -15,8 +15,6 @@ public sealed class TopicRuleDynamodbv2PutItem { /// /// The name of the DynamoDB table. - /// - /// The `dynamodbv2` object takes the following arguments: /// public readonly string TableName; diff --git a/sdk/dotnet/Iot/Outputs/TopicRuleErrorActionDynamodbv2PutItem.cs b/sdk/dotnet/Iot/Outputs/TopicRuleErrorActionDynamodbv2PutItem.cs index 6adb9959ec6..df42790ee72 100644 --- a/sdk/dotnet/Iot/Outputs/TopicRuleErrorActionDynamodbv2PutItem.cs +++ b/sdk/dotnet/Iot/Outputs/TopicRuleErrorActionDynamodbv2PutItem.cs @@ -15,8 +15,6 @@ public sealed class TopicRuleErrorActionDynamodbv2PutItem { /// /// The name of the DynamoDB table. - /// - /// The `dynamodbv2` object takes the following arguments: /// public readonly string TableName; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.cs index 5cc4dee72e9..a765a1fbfb5 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamElasticsearchConfigurationS3Configurat /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamElasticsearchConfigurationS3Configurat public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationGetArgs.cs index c706f3a1eba..53f8cf92bdd 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationGetArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamElasticsearchConfigurationS3Configurat /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamElasticsearchConfigurationS3Configurat public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationArgs.cs index d050d9a3944..d8bcf4de410 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationArgs : global:: /// /// 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; } @@ -81,7 +80,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationArgs : global:: public Input? ProcessingConfiguration { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; @@ -93,7 +92,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationArgs : global:: public Input? S3BackupConfiguration { get; set; } /// - /// The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + /// 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; } diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationGetArgs.cs index 003808abbc3..b702bc19644 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationGetArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationGetArgs : globa /// /// 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; } @@ -81,7 +80,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationGetArgs : globa public Input? ProcessingConfiguration { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; @@ -93,7 +92,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationGetArgs : globa public Input? S3BackupConfiguration { get; set; } /// - /// The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + /// 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; } diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs.cs index 55d75b0b73d..afab4672e57 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigu /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigu public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationGetArgs.cs index 9972c09fa6f..addce80805a 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationGetArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigu /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigu public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.cs index e77d40b5e8a..fcf4320336c 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationS3Configurati /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationS3Configurati public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationGetArgs.cs index 301748a6fae..64f1d948802 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationGetArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationS3Configurati /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationS3Configurati public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.cs index e750409ad66..bc7418c7a2c 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamOpensearchConfigurationS3Configuration /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamOpensearchConfigurationS3Configuration public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationGetArgs.cs index 51431beef16..994a81e99d7 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationGetArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamOpensearchConfigurationS3Configuration /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamOpensearchConfigurationS3Configuration public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.cs index 2fbf8160616..5415105b536 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Con /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Con public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs.cs index d9d5d5f0be9..9ceab3b03ea 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationGetArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Con /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Con public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.cs index 4865e9457fd..bfb3efd0828 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigura /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigura public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationGetArgs.cs index 216233d675b..29a18cbcbba 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationGetArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigura /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigura public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.cs index 91e4538a5ad..48430fc1b94 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationAr /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationAr public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationGetArgs.cs index e11997b5d85..af6a1cbaa0e 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationGetArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationGe /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationGe public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.cs index dd3091d8eb4..923967a5e82 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationGetArgs.cs index 448ab30c230..b34077d0877 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationGetArgs.cs @@ -26,7 +26,6 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationGetA /// /// 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; } @@ -63,7 +62,7 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationGetA public Input? Prefix { get; set; } /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// [Input("roleArn", required: true)] public Input RoleArn { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration.cs index 3ba338fc665..30ca9ca3326 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration.cs @@ -23,7 +23,6 @@ public sealed class FirehoseDeliveryStreamElasticsearchConfigurationS3Configurat 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; /// @@ -48,7 +47,7 @@ public sealed class FirehoseDeliveryStreamElasticsearchConfigurationS3Configurat /// public readonly string? Prefix; /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// public readonly string RoleArn; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3Configuration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3Configuration.cs index 4059d8a4a1c..4f69042ab5f 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3Configuration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3Configuration.cs @@ -23,7 +23,6 @@ public sealed class FirehoseDeliveryStreamExtendedS3Configuration 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; /// @@ -60,7 +59,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3Configuration /// public readonly Outputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfiguration? ProcessingConfiguration; /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// public readonly string RoleArn; /// @@ -68,7 +67,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3Configuration /// public readonly Outputs.FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration? S3BackupConfiguration; /// - /// The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + /// Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. /// public readonly string? S3BackupMode; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration.cs index 23b95d5f8ac..b7d519cec66 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration.cs @@ -23,7 +23,6 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigu 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; /// @@ -48,7 +47,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigu /// public readonly string? Prefix; /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// public readonly string RoleArn; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration.cs index c452768f2d2..ea01db94cd9 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration.cs @@ -23,7 +23,6 @@ public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationS3Configurati 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; /// @@ -48,7 +47,7 @@ public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationS3Configurati /// public readonly string? Prefix; /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// public readonly string RoleArn; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationS3Configuration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationS3Configuration.cs index e0a3867b49e..fd466a42bce 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationS3Configuration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationS3Configuration.cs @@ -23,7 +23,6 @@ public sealed class FirehoseDeliveryStreamOpensearchConfigurationS3Configuration 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; /// @@ -48,7 +47,7 @@ public sealed class FirehoseDeliveryStreamOpensearchConfigurationS3Configuration /// public readonly string? Prefix; /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// public readonly string RoleArn; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.cs index ba3d7ff8691..c3d002231d2 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration.cs @@ -23,7 +23,6 @@ public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Con 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; /// @@ -48,7 +47,7 @@ public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Con /// public readonly string? Prefix; /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// public readonly string RoleArn; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration.cs index 5b658311d5d..bf066992221 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration.cs @@ -23,7 +23,6 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigura 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; /// @@ -48,7 +47,7 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigura /// public readonly string? Prefix; /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// public readonly string RoleArn; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationS3Configuration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationS3Configuration.cs index f168becba49..4852bbc8d25 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationS3Configuration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationS3Configuration.cs @@ -23,7 +23,6 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3Configuration 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; /// @@ -48,7 +47,7 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationS3Configuration /// public readonly string? Prefix; /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// public readonly string RoleArn; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationS3Configuration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationS3Configuration.cs index a90321f2040..c7786eda2bd 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationS3Configuration.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationS3Configuration.cs @@ -23,7 +23,6 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationS3Configuration 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; /// @@ -48,7 +47,7 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationS3Configuration /// public readonly string? Prefix; /// - /// The ARN of the role that provides access to the source Kinesis stream. + /// The ARN of the role used to access the Amazon MSK cluster. /// public readonly string RoleArn; diff --git a/sdk/dotnet/LB/Inputs/ListenerRuleConditionHostHeaderArgs.cs b/sdk/dotnet/LB/Inputs/ListenerRuleConditionHostHeaderArgs.cs index 1ddf33b9628..154ad8ba851 100644 --- a/sdk/dotnet/LB/Inputs/ListenerRuleConditionHostHeaderArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerRuleConditionHostHeaderArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionHostHeaderArgs : global::Pulumi.Resourc /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/LB/Inputs/ListenerRuleConditionHostHeaderGetArgs.cs b/sdk/dotnet/LB/Inputs/ListenerRuleConditionHostHeaderGetArgs.cs index b605f9bbb14..11f046b2cb2 100644 --- a/sdk/dotnet/LB/Inputs/ListenerRuleConditionHostHeaderGetArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerRuleConditionHostHeaderGetArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionHostHeaderGetArgs : global::Pulumi.Reso /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/LB/Inputs/ListenerRuleConditionHttpRequestMethodArgs.cs b/sdk/dotnet/LB/Inputs/ListenerRuleConditionHttpRequestMethodArgs.cs index b84404becc0..5ca7d8a05ec 100644 --- a/sdk/dotnet/LB/Inputs/ListenerRuleConditionHttpRequestMethodArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerRuleConditionHttpRequestMethodArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionHttpRequestMethodArgs : global::Pulumi. /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/LB/Inputs/ListenerRuleConditionHttpRequestMethodGetArgs.cs b/sdk/dotnet/LB/Inputs/ListenerRuleConditionHttpRequestMethodGetArgs.cs index 41d1eca7948..0a3087f5a19 100644 --- a/sdk/dotnet/LB/Inputs/ListenerRuleConditionHttpRequestMethodGetArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerRuleConditionHttpRequestMethodGetArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionHttpRequestMethodGetArgs : global::Pulu /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/LB/Inputs/ListenerRuleConditionPathPatternArgs.cs b/sdk/dotnet/LB/Inputs/ListenerRuleConditionPathPatternArgs.cs index 7964d392ad8..872a781969d 100644 --- a/sdk/dotnet/LB/Inputs/ListenerRuleConditionPathPatternArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerRuleConditionPathPatternArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionPathPatternArgs : global::Pulumi.Resour /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/LB/Inputs/ListenerRuleConditionPathPatternGetArgs.cs b/sdk/dotnet/LB/Inputs/ListenerRuleConditionPathPatternGetArgs.cs index f0d0faa57da..bc4804a2a73 100644 --- a/sdk/dotnet/LB/Inputs/ListenerRuleConditionPathPatternGetArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerRuleConditionPathPatternGetArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionPathPatternGetArgs : global::Pulumi.Res /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/LB/Inputs/ListenerRuleConditionSourceIpArgs.cs b/sdk/dotnet/LB/Inputs/ListenerRuleConditionSourceIpArgs.cs index a1d44663bb9..0009f0b184f 100644 --- a/sdk/dotnet/LB/Inputs/ListenerRuleConditionSourceIpArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerRuleConditionSourceIpArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionSourceIpArgs : global::Pulumi.ResourceA /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/LB/Inputs/ListenerRuleConditionSourceIpGetArgs.cs b/sdk/dotnet/LB/Inputs/ListenerRuleConditionSourceIpGetArgs.cs index b0ff40c1e6b..f33bbbb2816 100644 --- a/sdk/dotnet/LB/Inputs/ListenerRuleConditionSourceIpGetArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerRuleConditionSourceIpGetArgs.cs @@ -17,9 +17,6 @@ public sealed class ListenerRuleConditionSourceIpGetArgs : global::Pulumi.Resour /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public InputList Values { diff --git a/sdk/dotnet/LB/Outputs/ListenerRuleConditionHostHeader.cs b/sdk/dotnet/LB/Outputs/ListenerRuleConditionHostHeader.cs index 28598287084..cca3d32c104 100644 --- a/sdk/dotnet/LB/Outputs/ListenerRuleConditionHostHeader.cs +++ b/sdk/dotnet/LB/Outputs/ListenerRuleConditionHostHeader.cs @@ -15,9 +15,6 @@ public sealed class ListenerRuleConditionHostHeader { /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public readonly ImmutableArray Values; diff --git a/sdk/dotnet/LB/Outputs/ListenerRuleConditionHttpRequestMethod.cs b/sdk/dotnet/LB/Outputs/ListenerRuleConditionHttpRequestMethod.cs index b7f284ada1c..020c00bf9b5 100644 --- a/sdk/dotnet/LB/Outputs/ListenerRuleConditionHttpRequestMethod.cs +++ b/sdk/dotnet/LB/Outputs/ListenerRuleConditionHttpRequestMethod.cs @@ -15,9 +15,6 @@ public sealed class ListenerRuleConditionHttpRequestMethod { /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public readonly ImmutableArray Values; diff --git a/sdk/dotnet/LB/Outputs/ListenerRuleConditionPathPattern.cs b/sdk/dotnet/LB/Outputs/ListenerRuleConditionPathPattern.cs index c27bf933230..ae4d7ceeca9 100644 --- a/sdk/dotnet/LB/Outputs/ListenerRuleConditionPathPattern.cs +++ b/sdk/dotnet/LB/Outputs/ListenerRuleConditionPathPattern.cs @@ -15,9 +15,6 @@ public sealed class ListenerRuleConditionPathPattern { /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public readonly ImmutableArray Values; diff --git a/sdk/dotnet/LB/Outputs/ListenerRuleConditionSourceIp.cs b/sdk/dotnet/LB/Outputs/ListenerRuleConditionSourceIp.cs index 6e888a78715..021a4c80eed 100644 --- a/sdk/dotnet/LB/Outputs/ListenerRuleConditionSourceIp.cs +++ b/sdk/dotnet/LB/Outputs/ListenerRuleConditionSourceIp.cs @@ -15,9 +15,6 @@ public sealed class ListenerRuleConditionSourceIp { /// /// List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - /// - /// - /// Query String Value Blocks (for `query_string.values`) support the following: /// public readonly ImmutableArray Values; diff --git a/sdk/dotnet/Lex/Inputs/BotAbortStatementArgs.cs b/sdk/dotnet/Lex/Inputs/BotAbortStatementArgs.cs index 624eba12c19..7ae5b446181 100644 --- a/sdk/dotnet/Lex/Inputs/BotAbortStatementArgs.cs +++ b/sdk/dotnet/Lex/Inputs/BotAbortStatementArgs.cs @@ -14,6 +14,12 @@ public sealed class BotAbortStatementArgs : global::Pulumi.ResourceArgs { [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -24,8 +30,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/BotAbortStatementGetArgs.cs b/sdk/dotnet/Lex/Inputs/BotAbortStatementGetArgs.cs index e2a0fdad61f..808de8b9134 100644 --- a/sdk/dotnet/Lex/Inputs/BotAbortStatementGetArgs.cs +++ b/sdk/dotnet/Lex/Inputs/BotAbortStatementGetArgs.cs @@ -14,6 +14,12 @@ public sealed class BotAbortStatementGetArgs : global::Pulumi.ResourceArgs { [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -24,8 +30,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/BotClarificationPromptArgs.cs b/sdk/dotnet/Lex/Inputs/BotClarificationPromptArgs.cs index 868fb452556..08865b07bb2 100644 --- a/sdk/dotnet/Lex/Inputs/BotClarificationPromptArgs.cs +++ b/sdk/dotnet/Lex/Inputs/BotClarificationPromptArgs.cs @@ -20,6 +20,12 @@ public sealed class BotClarificationPromptArgs : global::Pulumi.ResourceArgs [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -30,8 +36,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/BotClarificationPromptGetArgs.cs b/sdk/dotnet/Lex/Inputs/BotClarificationPromptGetArgs.cs index 44514d35287..5e16aa1bc8e 100644 --- a/sdk/dotnet/Lex/Inputs/BotClarificationPromptGetArgs.cs +++ b/sdk/dotnet/Lex/Inputs/BotClarificationPromptGetArgs.cs @@ -20,6 +20,12 @@ public sealed class BotClarificationPromptGetArgs : global::Pulumi.ResourceArgs [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -30,8 +36,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentConclusionStatementArgs.cs b/sdk/dotnet/Lex/Inputs/IntentConclusionStatementArgs.cs index 2989de80150..25d90cd43c3 100644 --- a/sdk/dotnet/Lex/Inputs/IntentConclusionStatementArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentConclusionStatementArgs.cs @@ -14,6 +14,12 @@ public sealed class IntentConclusionStatementArgs : global::Pulumi.ResourceArgs { [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -24,10 +30,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentConclusionStatementGetArgs.cs b/sdk/dotnet/Lex/Inputs/IntentConclusionStatementGetArgs.cs index 9913407d0d1..3586933ab39 100644 --- a/sdk/dotnet/Lex/Inputs/IntentConclusionStatementGetArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentConclusionStatementGetArgs.cs @@ -14,6 +14,12 @@ public sealed class IntentConclusionStatementGetArgs : global::Pulumi.ResourceAr { [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -24,10 +30,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentConfirmationPromptArgs.cs b/sdk/dotnet/Lex/Inputs/IntentConfirmationPromptArgs.cs index bc048fe0447..e6cb7ce41fb 100644 --- a/sdk/dotnet/Lex/Inputs/IntentConfirmationPromptArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentConfirmationPromptArgs.cs @@ -20,6 +20,12 @@ public sealed class IntentConfirmationPromptArgs : global::Pulumi.ResourceArgs [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -30,10 +36,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentConfirmationPromptGetArgs.cs b/sdk/dotnet/Lex/Inputs/IntentConfirmationPromptGetArgs.cs index 02e2b8f3896..9aac4e45d8e 100644 --- a/sdk/dotnet/Lex/Inputs/IntentConfirmationPromptGetArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentConfirmationPromptGetArgs.cs @@ -20,6 +20,12 @@ public sealed class IntentConfirmationPromptGetArgs : global::Pulumi.ResourceArg [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -30,10 +36,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentFollowUpPromptRejectionStatementArgs.cs b/sdk/dotnet/Lex/Inputs/IntentFollowUpPromptRejectionStatementArgs.cs index bc55729f343..73ac5f4f3e1 100644 --- a/sdk/dotnet/Lex/Inputs/IntentFollowUpPromptRejectionStatementArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentFollowUpPromptRejectionStatementArgs.cs @@ -14,6 +14,12 @@ public sealed class IntentFollowUpPromptRejectionStatementArgs : global::Pulumi. { [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -24,10 +30,6 @@ public InputList Messa /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentFollowUpPromptRejectionStatementGetArgs.cs b/sdk/dotnet/Lex/Inputs/IntentFollowUpPromptRejectionStatementGetArgs.cs index 07c5fd0ce87..61e21ec5a95 100644 --- a/sdk/dotnet/Lex/Inputs/IntentFollowUpPromptRejectionStatementGetArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentFollowUpPromptRejectionStatementGetArgs.cs @@ -14,6 +14,12 @@ public sealed class IntentFollowUpPromptRejectionStatementGetArgs : global::Pulu { [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -24,10 +30,6 @@ public InputList Me /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentRejectionStatementArgs.cs b/sdk/dotnet/Lex/Inputs/IntentRejectionStatementArgs.cs index 01a25e91574..62540222b09 100644 --- a/sdk/dotnet/Lex/Inputs/IntentRejectionStatementArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentRejectionStatementArgs.cs @@ -14,6 +14,12 @@ public sealed class IntentRejectionStatementArgs : global::Pulumi.ResourceArgs { [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -24,10 +30,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentRejectionStatementGetArgs.cs b/sdk/dotnet/Lex/Inputs/IntentRejectionStatementGetArgs.cs index f1792cb7af1..184053b2297 100644 --- a/sdk/dotnet/Lex/Inputs/IntentRejectionStatementGetArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentRejectionStatementGetArgs.cs @@ -14,6 +14,12 @@ public sealed class IntentRejectionStatementGetArgs : global::Pulumi.ResourceArg { [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -24,10 +30,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentSlotValueElicitationPromptArgs.cs b/sdk/dotnet/Lex/Inputs/IntentSlotValueElicitationPromptArgs.cs index 05096234a6b..e2ee75bc371 100644 --- a/sdk/dotnet/Lex/Inputs/IntentSlotValueElicitationPromptArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentSlotValueElicitationPromptArgs.cs @@ -20,6 +20,12 @@ public sealed class IntentSlotValueElicitationPromptArgs : global::Pulumi.Resour [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -30,10 +36,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/IntentSlotValueElicitationPromptGetArgs.cs b/sdk/dotnet/Lex/Inputs/IntentSlotValueElicitationPromptGetArgs.cs index f1d88da0c02..df8fabcd5f7 100644 --- a/sdk/dotnet/Lex/Inputs/IntentSlotValueElicitationPromptGetArgs.cs +++ b/sdk/dotnet/Lex/Inputs/IntentSlotValueElicitationPromptGetArgs.cs @@ -20,6 +20,12 @@ public sealed class IntentSlotValueElicitationPromptGetArgs : global::Pulumi.Res [Input("messages", required: true)] private InputList? _messages; + + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public InputList Messages { get => _messages ?? (_messages = new InputList()); @@ -30,10 +36,6 @@ public InputList Messages /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// [Input("responseCard")] public Input? ResponseCard { get; set; } diff --git a/sdk/dotnet/Lex/Outputs/BotAbortStatement.cs b/sdk/dotnet/Lex/Outputs/BotAbortStatement.cs index fa31765201d..568494e0f3f 100644 --- a/sdk/dotnet/Lex/Outputs/BotAbortStatement.cs +++ b/sdk/dotnet/Lex/Outputs/BotAbortStatement.cs @@ -13,13 +13,16 @@ namespace Pulumi.Aws.Lex.Outputs [OutputType] public sealed class BotAbortStatement { + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. + /// public readonly ImmutableArray Messages; /// /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). /// public readonly string? ResponseCard; diff --git a/sdk/dotnet/Lex/Outputs/BotClarificationPrompt.cs b/sdk/dotnet/Lex/Outputs/BotClarificationPrompt.cs index e658bca1b0f..99224c6b8b6 100644 --- a/sdk/dotnet/Lex/Outputs/BotClarificationPrompt.cs +++ b/sdk/dotnet/Lex/Outputs/BotClarificationPrompt.cs @@ -17,13 +17,16 @@ public sealed class BotClarificationPrompt /// The number of times to prompt the user for information. /// public readonly int MaxAttempts; + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. + /// public readonly ImmutableArray Messages; /// /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). /// public readonly string? ResponseCard; diff --git a/sdk/dotnet/Lex/Outputs/IntentConclusionStatement.cs b/sdk/dotnet/Lex/Outputs/IntentConclusionStatement.cs index 3d989afded1..b35bb2434fb 100644 --- a/sdk/dotnet/Lex/Outputs/IntentConclusionStatement.cs +++ b/sdk/dotnet/Lex/Outputs/IntentConclusionStatement.cs @@ -13,15 +13,16 @@ namespace Pulumi.Aws.Lex.Outputs [OutputType] public sealed class IntentConclusionStatement { + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public readonly ImmutableArray Messages; /// /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// public readonly string? ResponseCard; diff --git a/sdk/dotnet/Lex/Outputs/IntentConfirmationPrompt.cs b/sdk/dotnet/Lex/Outputs/IntentConfirmationPrompt.cs index 9a264e5c098..9c64afd6755 100644 --- a/sdk/dotnet/Lex/Outputs/IntentConfirmationPrompt.cs +++ b/sdk/dotnet/Lex/Outputs/IntentConfirmationPrompt.cs @@ -17,15 +17,16 @@ public sealed class IntentConfirmationPrompt /// The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). /// public readonly int MaxAttempts; + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public readonly ImmutableArray Messages; /// /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// public readonly string? ResponseCard; diff --git a/sdk/dotnet/Lex/Outputs/IntentFollowUpPromptRejectionStatement.cs b/sdk/dotnet/Lex/Outputs/IntentFollowUpPromptRejectionStatement.cs index e220811e60f..21affba761f 100644 --- a/sdk/dotnet/Lex/Outputs/IntentFollowUpPromptRejectionStatement.cs +++ b/sdk/dotnet/Lex/Outputs/IntentFollowUpPromptRejectionStatement.cs @@ -13,15 +13,16 @@ namespace Pulumi.Aws.Lex.Outputs [OutputType] public sealed class IntentFollowUpPromptRejectionStatement { + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public readonly ImmutableArray Messages; /// /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// public readonly string? ResponseCard; diff --git a/sdk/dotnet/Lex/Outputs/IntentRejectionStatement.cs b/sdk/dotnet/Lex/Outputs/IntentRejectionStatement.cs index 42be168d651..5985f1b0380 100644 --- a/sdk/dotnet/Lex/Outputs/IntentRejectionStatement.cs +++ b/sdk/dotnet/Lex/Outputs/IntentRejectionStatement.cs @@ -13,15 +13,16 @@ namespace Pulumi.Aws.Lex.Outputs [OutputType] public sealed class IntentRejectionStatement { + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public readonly ImmutableArray Messages; /// /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// public readonly string? ResponseCard; diff --git a/sdk/dotnet/Lex/Outputs/IntentSlotValueElicitationPrompt.cs b/sdk/dotnet/Lex/Outputs/IntentSlotValueElicitationPrompt.cs index c6342c5a3a9..9e565a32c39 100644 --- a/sdk/dotnet/Lex/Outputs/IntentSlotValueElicitationPrompt.cs +++ b/sdk/dotnet/Lex/Outputs/IntentSlotValueElicitationPrompt.cs @@ -17,15 +17,16 @@ public sealed class IntentSlotValueElicitationPrompt /// The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). /// public readonly int MaxAttempts; + /// + /// A set of messages, each of which provides a message string and its type. + /// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + /// Attributes are documented under message. Must contain between 1 and 15 messages. + /// public readonly ImmutableArray Messages; /// /// The response card. Amazon Lex will substitute session attributes and /// slot values into the response card. For more information, see /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - /// slot values into the response card. For more information, see - /// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. /// public readonly string? ResponseCard; diff --git a/sdk/dotnet/LightSail/ContainerServiceDeploymentVersion.cs b/sdk/dotnet/LightSail/ContainerServiceDeploymentVersion.cs index ed9c5ce5ba5..2fa77a39825 100644 --- a/sdk/dotnet/LightSail/ContainerServiceDeploymentVersion.cs +++ b/sdk/dotnet/LightSail/ContainerServiceDeploymentVersion.cs @@ -35,7 +35,7 @@ namespace Pulumi.Aws.LightSail /// { /// ContainerName = "hello-world", /// Image = "amazon/amazon-lightsail:hello-world", - /// Commands = new[] {}, + /// Commands = new() { }, /// Environment = /// { /// { "MY_ENVIRONMENT_VARIABLE", "my_value" }, diff --git a/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs.cs b/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs.cs index 9b4e4b24552..e40448c7fdc 100644 --- a/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs.cs +++ b/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs.cs @@ -16,7 +16,7 @@ public sealed class ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs : private InputList? _ands; /// - /// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + /// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) /// public InputList Ands { diff --git a/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesGetArgs.cs b/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesGetArgs.cs index 5b7bf96fe0b..5fe0c95b68b 100644 --- a/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesGetArgs.cs +++ b/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesGetArgs.cs @@ -16,7 +16,7 @@ public sealed class ClassificationJobS3JobDefinitionBucketCriteriaIncludesGetArg private InputList? _ands; /// - /// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + /// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) /// public InputList Ands { diff --git a/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionScopingIncludesArgs.cs b/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionScopingIncludesArgs.cs index 04d313a7b26..d577222363c 100644 --- a/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionScopingIncludesArgs.cs +++ b/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionScopingIncludesArgs.cs @@ -16,7 +16,7 @@ public sealed class ClassificationJobS3JobDefinitionScopingIncludesArgs : global private InputList? _ands; /// - /// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + /// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) /// public InputList Ands { diff --git a/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionScopingIncludesGetArgs.cs b/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionScopingIncludesGetArgs.cs index 1bc66aaddb3..e3a8cbbaacf 100644 --- a/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionScopingIncludesGetArgs.cs +++ b/sdk/dotnet/Macie2/Inputs/ClassificationJobS3JobDefinitionScopingIncludesGetArgs.cs @@ -16,7 +16,7 @@ public sealed class ClassificationJobS3JobDefinitionScopingIncludesGetArgs : glo private InputList? _ands; /// - /// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + /// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) /// public InputList Ands { diff --git a/sdk/dotnet/Macie2/Outputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludes.cs b/sdk/dotnet/Macie2/Outputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludes.cs index f058b99378f..d7fe72775cd 100644 --- a/sdk/dotnet/Macie2/Outputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludes.cs +++ b/sdk/dotnet/Macie2/Outputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludes.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Macie2.Outputs public sealed class ClassificationJobS3JobDefinitionBucketCriteriaIncludes { /// - /// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + /// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) /// public readonly ImmutableArray Ands; diff --git a/sdk/dotnet/Macie2/Outputs/ClassificationJobS3JobDefinitionScopingIncludes.cs b/sdk/dotnet/Macie2/Outputs/ClassificationJobS3JobDefinitionScopingIncludes.cs index 8f2610964a6..b222a30587b 100644 --- a/sdk/dotnet/Macie2/Outputs/ClassificationJobS3JobDefinitionScopingIncludes.cs +++ b/sdk/dotnet/Macie2/Outputs/ClassificationJobS3JobDefinitionScopingIncludes.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Macie2.Outputs public sealed class ClassificationJobS3JobDefinitionScopingIncludes { /// - /// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + /// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) /// public readonly ImmutableArray Ands; diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs.cs index aee153cc110..62440eb3ef2 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs.cs @@ -25,7 +25,7 @@ public sealed class ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorIn public Input Uri { get; set; } = null!; /// - /// Username for destination. + /// . Username to be used. /// [Input("username")] public Input? Username { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateGetArgs.cs index df2ac31126f..33d983bf002 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateGetArgs.cs @@ -25,7 +25,7 @@ public sealed class ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorIn public Input Uri { get; set; } = null!; /// - /// Username for destination. + /// . Username to be used. /// [Input("username")] public Input? Username { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs.cs index 65add9f9d6b..26961e30d64 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs.cs @@ -25,7 +25,7 @@ public sealed class ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroup public Input Uri { get; set; } = null!; /// - /// Username for destination. + /// . Username to be used. /// [Input("username")] public Input? Username { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerGetArgs.cs index 080b56c7849..8666b00c671 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerGetArgs.cs @@ -25,7 +25,7 @@ public sealed class ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroup public Input Uri { get; set; } = null!; /// - /// Username for destination. + /// . Username to be used. /// [Input("username")] public Input? Username { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs.cs index 7de0f384a0e..851491e7d2d 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs.cs @@ -25,7 +25,7 @@ public sealed class ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutp public Input Uri { get; set; } = null!; /// - /// Username for destination. + /// . Username to be used. /// [Input("username")] public Input? Username { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageGetArgs.cs index 2148a86fe78..7e723e3388c 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageGetArgs.cs @@ -25,7 +25,7 @@ public sealed class ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutp public Input Uri { get; set; } = null!; /// - /// Username for destination. + /// . Username to be used. /// [Input("username")] public Input? Username { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs.cs index 3406de71380..bc66c6780a1 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs.cs @@ -52,7 +52,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Setti public Input? EntropyEncoding { get; set; } /// - /// Filters to apply to an encode. See H264 Filter Settings for more details. + /// Filters to apply to an encode. See H265 Filter Settings for more details. /// [Input("filterSettings")] public Input? FilterSettings { get; set; } @@ -121,7 +121,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Setti public Input? GopSizeUnits { get; set; } /// - /// H264 level. + /// H265 level. /// [Input("level")] public Input? Level { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsGetArgs.cs index 41c31fe3923..8a7bd0d340a 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsGetArgs.cs @@ -52,7 +52,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Setti public Input? EntropyEncoding { get; set; } /// - /// Filters to apply to an encode. See H264 Filter Settings for more details. + /// Filters to apply to an encode. See H265 Filter Settings for more details. /// [Input("filterSettings")] public Input? FilterSettings { get; set; } @@ -121,7 +121,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Setti public Input? GopSizeUnits { get; set; } /// - /// H264 level. + /// H265 level. /// [Input("level")] public Input? Level { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs.cs index f88cf995b7d..6328447b11e 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs.cs @@ -55,7 +55,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Setti public Input? ColorSpaceSettings { get; set; } /// - /// Filters to apply to an encode. See H264 Filter Settings for more details. + /// Filters to apply to an encode. See H265 Filter Settings for more details. /// [Input("filterSettings")] public Input? FilterSettings { get; set; } @@ -100,7 +100,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Setti public Input? GopSizeUnits { get; set; } /// - /// H264 level. + /// H265 level. /// [Input("level")] public Input? Level { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsGetArgs.cs index 6f2acaf82a3..9d8f5f3ea09 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsGetArgs.cs @@ -55,7 +55,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Setti public Input? ColorSpaceSettings { get; set; } /// - /// Filters to apply to an encode. See H264 Filter Settings for more details. + /// Filters to apply to an encode. See H265 Filter Settings for more details. /// [Input("filterSettings")] public Input? FilterSettings { get; set; } @@ -100,7 +100,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Setti public Input? GopSizeUnits { get; set; } /// - /// H264 level. + /// H265 level. /// [Input("level")] public Input? Level { get; set; } diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs.cs index fbd944005a8..07d3849a6e1 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.MediaLive.Inputs public sealed class ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs : global::Pulumi.ResourceArgs { /// - /// The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + /// The name of the audio selector used as the source for this AudioDescription. /// [Input("audioSelectorName", required: true)] public Input AudioSelectorName { get; set; } = null!; diff --git a/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsGetArgs.cs b/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsGetArgs.cs index 6f8cccab5d7..1fc039e2d47 100644 --- a/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsGetArgs.cs +++ b/sdk/dotnet/MediaLive/Inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.MediaLive.Inputs public sealed class ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsGetArgs : global::Pulumi.ResourceArgs { /// - /// The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + /// The name of the audio selector used as the source for this AudioDescription. /// [Input("audioSelectorName", required: true)] public Input AudioSelectorName { get; set; } = null!; diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate.cs b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate.cs index 04a796aef68..f410e7f0216 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate.cs @@ -22,7 +22,7 @@ public sealed class ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorIn /// public readonly string Uri; /// - /// Username for destination. + /// . Username to be used. /// public readonly string? Username; diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer.cs b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer.cs index 654aa290436..9f6a32a267d 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer.cs @@ -22,7 +22,7 @@ public sealed class ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroup /// public readonly string Uri; /// - /// Username for destination. + /// . Username to be used. /// public readonly string? Username; diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage.cs b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage.cs index 2dd422f06d3..78b94c7b3b4 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage.cs @@ -22,7 +22,7 @@ public sealed class ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutp /// public readonly string Uri; /// - /// Username for destination. + /// . Username to be used. /// public readonly string? Username; diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings.cs b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings.cs index 14ea45528ca..15685074fef 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings.cs @@ -39,7 +39,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Setti /// public readonly string? EntropyEncoding; /// - /// Filters to apply to an encode. See H264 Filter Settings for more details. + /// Filters to apply to an encode. See H265 Filter Settings for more details. /// public readonly Outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings? FilterSettings; /// @@ -84,7 +84,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Setti /// public readonly string? GopSizeUnits; /// - /// H264 level. + /// H265 level. /// public readonly string? Level; /// diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings.cs b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings.cs index bb8866c368b..5e8432bcceb 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings.cs @@ -42,7 +42,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Setti /// public readonly Outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettings? ColorSpaceSettings; /// - /// Filters to apply to an encode. See H264 Filter Settings for more details. + /// Filters to apply to an encode. See H265 Filter Settings for more details. /// public readonly Outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings? FilterSettings; /// @@ -71,7 +71,7 @@ public sealed class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Setti /// public readonly string? GopSizeUnits; /// - /// H264 level. + /// H265 level. /// public readonly string? Level; /// diff --git a/sdk/dotnet/MediaLive/Outputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings.cs b/sdk/dotnet/MediaLive/Outputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings.cs index b395cde731f..e22bdd843a7 100644 --- a/sdk/dotnet/MediaLive/Outputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings.cs +++ b/sdk/dotnet/MediaLive/Outputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.MediaLive.Outputs public sealed class ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings { /// - /// The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + /// The name of the audio selector used as the source for this AudioDescription. /// public readonly string AudioSelectorName; /// diff --git a/sdk/dotnet/Msk/Inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs.cs b/sdk/dotnet/Msk/Inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs.cs index c920d995b91..7739191e2d6 100644 --- a/sdk/dotnet/Msk/Inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Msk.Inputs public sealed class ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs : global::Pulumi.ResourceArgs { /// - /// Enables SASL/IAM authentication for VPC connectivity. + /// Enables IAM client authentication. Defaults to `false`. /// [Input("iam")] public Input? Iam { get; set; } /// - /// Enables SASL/SCRAM authentication for VPC connectivity. + /// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. /// [Input("scram")] public Input? Scram { get; set; } diff --git a/sdk/dotnet/Msk/Inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslGetArgs.cs b/sdk/dotnet/Msk/Inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslGetArgs.cs index d68291dd0b5..29a75d51908 100644 --- a/sdk/dotnet/Msk/Inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslGetArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Msk.Inputs public sealed class ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslGetArgs : global::Pulumi.ResourceArgs { /// - /// Enables SASL/IAM authentication for VPC connectivity. + /// Enables IAM client authentication. Defaults to `false`. /// [Input("iam")] public Input? Iam { get; set; } /// - /// Enables SASL/SCRAM authentication for VPC connectivity. + /// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. /// [Input("scram")] public Input? Scram { get; set; } diff --git a/sdk/dotnet/Msk/Inputs/ClusterClientAuthenticationSaslArgs.cs b/sdk/dotnet/Msk/Inputs/ClusterClientAuthenticationSaslArgs.cs index d15222c3cd1..aecd73fc5d0 100644 --- a/sdk/dotnet/Msk/Inputs/ClusterClientAuthenticationSaslArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ClusterClientAuthenticationSaslArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Msk.Inputs public sealed class ClusterClientAuthenticationSaslArgs : global::Pulumi.ResourceArgs { /// - /// Enables SASL/IAM authentication for VPC connectivity. + /// Enables IAM client authentication. Defaults to `false`. /// [Input("iam")] public Input? Iam { get; set; } /// - /// Enables SASL/SCRAM authentication for VPC connectivity. + /// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. /// [Input("scram")] public Input? Scram { get; set; } diff --git a/sdk/dotnet/Msk/Inputs/ClusterClientAuthenticationSaslGetArgs.cs b/sdk/dotnet/Msk/Inputs/ClusterClientAuthenticationSaslGetArgs.cs index a68aafaf45a..48aebd04981 100644 --- a/sdk/dotnet/Msk/Inputs/ClusterClientAuthenticationSaslGetArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ClusterClientAuthenticationSaslGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Msk.Inputs public sealed class ClusterClientAuthenticationSaslGetArgs : global::Pulumi.ResourceArgs { /// - /// Enables SASL/IAM authentication for VPC connectivity. + /// Enables IAM client authentication. Defaults to `false`. /// [Input("iam")] public Input? Iam { get; set; } /// - /// Enables SASL/SCRAM authentication for VPC connectivity. + /// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. /// [Input("scram")] public Input? Scram { get; set; } diff --git a/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusJmxExporterArgs.cs b/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusJmxExporterArgs.cs index cb5c96bde63..ff6eacbbf92 100644 --- a/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusJmxExporterArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusJmxExporterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Msk.Inputs public sealed class ClusterOpenMonitoringPrometheusJmxExporterArgs : global::Pulumi.ResourceArgs { /// - /// Indicates whether you want to enable or disable the JMX Exporter. + /// Indicates whether you want to enable or disable the Node Exporter. /// [Input("enabledInBroker", required: true)] public Input EnabledInBroker { get; set; } = null!; diff --git a/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusJmxExporterGetArgs.cs b/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusJmxExporterGetArgs.cs index ae72d79202c..c3fe837a06a 100644 --- a/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusJmxExporterGetArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusJmxExporterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Msk.Inputs public sealed class ClusterOpenMonitoringPrometheusJmxExporterGetArgs : global::Pulumi.ResourceArgs { /// - /// Indicates whether you want to enable or disable the JMX Exporter. + /// Indicates whether you want to enable or disable the Node Exporter. /// [Input("enabledInBroker", required: true)] public Input EnabledInBroker { get; set; } = null!; diff --git a/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusNodeExporterArgs.cs b/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusNodeExporterArgs.cs index c90cdb22baa..878017e5c54 100644 --- a/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusNodeExporterArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusNodeExporterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Msk.Inputs public sealed class ClusterOpenMonitoringPrometheusNodeExporterArgs : global::Pulumi.ResourceArgs { /// - /// Indicates whether you want to enable or disable the JMX Exporter. + /// Indicates whether you want to enable or disable the Node Exporter. /// [Input("enabledInBroker", required: true)] public Input EnabledInBroker { get; set; } = null!; diff --git a/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusNodeExporterGetArgs.cs b/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusNodeExporterGetArgs.cs index 973b5538db4..cf07a95a822 100644 --- a/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusNodeExporterGetArgs.cs +++ b/sdk/dotnet/Msk/Inputs/ClusterOpenMonitoringPrometheusNodeExporterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Msk.Inputs public sealed class ClusterOpenMonitoringPrometheusNodeExporterGetArgs : global::Pulumi.ResourceArgs { /// - /// Indicates whether you want to enable or disable the JMX Exporter. + /// Indicates whether you want to enable or disable the Node Exporter. /// [Input("enabledInBroker", required: true)] public Input EnabledInBroker { get; set; } = null!; diff --git a/sdk/dotnet/Msk/Outputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.cs b/sdk/dotnet/Msk/Outputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.cs index c86cb4c213a..ea511373490 100644 --- a/sdk/dotnet/Msk/Outputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.cs +++ b/sdk/dotnet/Msk/Outputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Msk.Outputs public sealed class ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl { /// - /// Enables SASL/IAM authentication for VPC connectivity. + /// Enables IAM client authentication. Defaults to `false`. /// public readonly bool? Iam; /// - /// Enables SASL/SCRAM authentication for VPC connectivity. + /// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. /// public readonly bool? Scram; diff --git a/sdk/dotnet/Msk/Outputs/ClusterClientAuthenticationSasl.cs b/sdk/dotnet/Msk/Outputs/ClusterClientAuthenticationSasl.cs index 822b0e1c779..c069e2082e5 100644 --- a/sdk/dotnet/Msk/Outputs/ClusterClientAuthenticationSasl.cs +++ b/sdk/dotnet/Msk/Outputs/ClusterClientAuthenticationSasl.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Msk.Outputs public sealed class ClusterClientAuthenticationSasl { /// - /// Enables SASL/IAM authentication for VPC connectivity. + /// Enables IAM client authentication. Defaults to `false`. /// public readonly bool? Iam; /// - /// Enables SASL/SCRAM authentication for VPC connectivity. + /// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. /// public readonly bool? Scram; diff --git a/sdk/dotnet/Msk/Outputs/ClusterOpenMonitoringPrometheusJmxExporter.cs b/sdk/dotnet/Msk/Outputs/ClusterOpenMonitoringPrometheusJmxExporter.cs index bfe7e1055b7..7a5e40d85e3 100644 --- a/sdk/dotnet/Msk/Outputs/ClusterOpenMonitoringPrometheusJmxExporter.cs +++ b/sdk/dotnet/Msk/Outputs/ClusterOpenMonitoringPrometheusJmxExporter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Msk.Outputs public sealed class ClusterOpenMonitoringPrometheusJmxExporter { /// - /// Indicates whether you want to enable or disable the JMX Exporter. + /// Indicates whether you want to enable or disable the Node Exporter. /// public readonly bool EnabledInBroker; diff --git a/sdk/dotnet/Msk/Outputs/ClusterOpenMonitoringPrometheusNodeExporter.cs b/sdk/dotnet/Msk/Outputs/ClusterOpenMonitoringPrometheusNodeExporter.cs index 65abdbd3f80..5af30199806 100644 --- a/sdk/dotnet/Msk/Outputs/ClusterOpenMonitoringPrometheusNodeExporter.cs +++ b/sdk/dotnet/Msk/Outputs/ClusterOpenMonitoringPrometheusNodeExporter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Msk.Outputs public sealed class ClusterOpenMonitoringPrometheusNodeExporter { /// - /// Indicates whether you want to enable or disable the JMX Exporter. + /// Indicates whether you want to enable or disable the Node Exporter. /// public readonly bool EnabledInBroker; diff --git a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersActivemqBrokerParametersCredentialsArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersActivemqBrokerParametersCredentialsArgs.cs index 863579cb6e0..0ae4cc38a23 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersActivemqBrokerParametersCredentialsArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersActivemqBrokerParametersCredentialsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeSourceParametersActivemqBrokerParametersCredentialsArgs : global::Pulumi.ResourceArgs { /// - /// The ARN of the Secrets Manager secret containing the basic auth credentials. + /// The ARN of the Secrets Manager secret containing the credentials. /// [Input("basicAuth", required: true)] public Input BasicAuth { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersActivemqBrokerParametersCredentialsGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersActivemqBrokerParametersCredentialsGetArgs.cs index eaf62d648b2..891adcb11db 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersActivemqBrokerParametersCredentialsGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersActivemqBrokerParametersCredentialsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeSourceParametersActivemqBrokerParametersCredentialsGetArgs : global::Pulumi.ResourceArgs { /// - /// The ARN of the Secrets Manager secret containing the basic auth credentials. + /// The ARN of the Secrets Manager secret containing the credentials. /// [Input("basicAuth", required: true)] public Input BasicAuth { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs.cs index f7796d9808e..6fecc476697 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs : global::Pulumi.ResourceArgs { /// - /// The ARN of the Secrets Manager secret containing the basic auth credentials. + /// The ARN of the Secrets Manager secret containing the credentials. /// [Input("basicAuth", required: true)] public Input BasicAuth { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsGetArgs.cs index 3426adc8c45..318e7a1a4be 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeSourceParametersRabbitmqBrokerParametersCredentialsGetArgs : global::Pulumi.ResourceArgs { /// - /// The ARN of the Secrets Manager secret containing the basic auth credentials. + /// The ARN of the Secrets Manager secret containing the credentials. /// [Input("basicAuth", required: true)] public Input BasicAuth { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs.cs index c24329458a4..00cf8225807 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs : global::Pulumi.ResourceArgs { /// - /// The ARN of the Secrets Manager secret containing the basic auth credentials. + /// The ARN of the Secrets Manager secret containing the credentials. /// [Input("basicAuth", required: true)] public Input BasicAuth { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsGetArgs.cs index 4265f0ff791..8c2ba11b86a 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeSourceParametersSelfManagedKafkaParametersCredentialsGetArgs : global::Pulumi.ResourceArgs { /// - /// The ARN of the Secrets Manager secret containing the basic auth credentials. + /// The ARN of the Secrets Manager secret containing the credentials. /// [Input("basicAuth", required: true)] public Input BasicAuth { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesArgs.cs index 3eeb8234590..d8705bc4a00 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesArgs.cs @@ -16,7 +16,7 @@ public sealed class PipeTargetParametersBatchJobParametersContainerOverridesArgs private InputList? _commands; /// - /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. + /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. /// public InputList Commands { @@ -28,7 +28,7 @@ public InputList Commands private InputList? _environments; /// - /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. /// public InputList Environments { @@ -46,7 +46,7 @@ public InputList? _resourceRequirements; /// - /// The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + /// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. /// public InputList ResourceRequirements { diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs.cs index e8e3685d1fc..a9d123e49b0 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersBatchJobParametersContainerOverridesEnvi public Input? Name { get; set; } /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentGetArgs.cs index ffbf8829a5a..76214557756 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentGetArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersBatchJobParametersContainerOverridesEnvi public Input? Name { get; set; } /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesGetArgs.cs index bfb5df9edf8..8c301f1455c 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesGetArgs.cs @@ -16,7 +16,7 @@ public sealed class PipeTargetParametersBatchJobParametersContainerOverridesGetA private InputList? _commands; /// - /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. + /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. /// public InputList Commands { @@ -28,7 +28,7 @@ public InputList Commands private InputList? _environments; /// - /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. /// public InputList Environments { @@ -46,7 +46,7 @@ public InputList? _resourceRequirements; /// - /// The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + /// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. /// public InputList ResourceRequirements { diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs.cs index 42e77478c23..40e80fa7e89 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs : global::Pulumi.ResourceArgs { /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type", required: true)] public Input Type { get; set; } = null!; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementGetArgs.cs index d2f862c6ad9..fb7feef6f59 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementGetArgs : global::Pulumi.ResourceArgs { /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type", required: true)] public Input Type { get; set; } = null!; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersDependsOnArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersDependsOnArgs.cs index 1d7b17f3a32..37d9942c6d5 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersDependsOnArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersDependsOnArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersBatchJobParametersDependsOnArgs : global public Input? JobId { get; set; } /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersDependsOnGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersDependsOnGetArgs.cs index 7b27f182914..1532308bd8f 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersDependsOnGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersBatchJobParametersDependsOnGetArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersBatchJobParametersDependsOnGetArgs : glo public Input? JobId { get; set; } /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesArgs.cs index 2c003aab98a..f6944fb06b6 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The cpu override for the task. + /// The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. /// [Input("cpu")] public Input? Cpu { get; set; } @@ -55,7 +55,7 @@ public InputList - /// The memory override for the task. + /// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. /// [Input("memory")] public Input? Memory { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs.cs index 4d7e9f9b298..2a41866aa58 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs.cs @@ -16,7 +16,7 @@ public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverr private InputList? _commands; /// - /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. + /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. /// public InputList Commands { @@ -25,7 +25,7 @@ public InputList Commands } /// - /// The cpu override for the task. + /// The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. /// [Input("cpu")] public Input? Cpu { get; set; } @@ -46,7 +46,7 @@ public InputList? _environments; /// - /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. /// public InputList Environments { @@ -55,7 +55,7 @@ public InputList - /// The memory override for the task. + /// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. /// [Input("memory")] public Input? Memory { get; set; } @@ -76,7 +76,7 @@ public InputList? _resourceRequirements; /// - /// The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + /// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. /// public InputList ResourceRequirements { diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs.cs index 64c6c06161c..572d4b857bb 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverr public Input? Name { get; set; } /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs.cs index bf56e6ab81f..9ceef83fad4 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs : global::Pulumi.ResourceArgs { /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type", required: true)] public Input Type { get; set; } = null!; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileGetArgs.cs index 4a42dc0eb8b..0de12469a96 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileGetArgs : global::Pulumi.ResourceArgs { /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type", required: true)] public Input Type { get; set; } = null!; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentGetArgs.cs index d1dd657a8b0..2ef81c0e825 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentGetArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverr public Input? Name { get; set; } /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value")] public Input? Value { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideGetArgs.cs index 6ed059f8f19..013fbb20833 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideGetArgs.cs @@ -16,7 +16,7 @@ public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverr private InputList? _commands; /// - /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. + /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. /// public InputList Commands { @@ -25,7 +25,7 @@ public InputList Commands } /// - /// The cpu override for the task. + /// The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. /// [Input("cpu")] public Input? Cpu { get; set; } @@ -46,7 +46,7 @@ public InputList? _environments; /// - /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. /// public InputList Environments { @@ -55,7 +55,7 @@ public InputList - /// The memory override for the task. + /// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. /// [Input("memory")] public Input? Memory { get; set; } @@ -76,7 +76,7 @@ public InputList? _resourceRequirements; /// - /// The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + /// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. /// public InputList ResourceRequirements { diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs.cs index 864353e1dee..93cbdc6ffeb 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs : global::Pulumi.ResourceArgs { /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type", required: true)] public Input Type { get; set; } = null!; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementGetArgs.cs index c6914d281a2..3e1175ee886 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.Pipes.Inputs public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementGetArgs : global::Pulumi.ResourceArgs { /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type", required: true)] public Input Type { get; set; } = null!; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesGetArgs.cs index 0cb448129d2..a1d82bed3e1 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersOverridesGetArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The cpu override for the task. + /// The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. /// [Input("cpu")] public Input? Cpu { get; set; } @@ -55,7 +55,7 @@ public InputList - /// The memory override for the task. + /// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. /// [Input("memory")] public Input? Memory { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintArgs.cs index 1e2aadf0830..cc6e6297276 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersEcsTaskParametersPlacementConstraintArgs public Input? Expression { get; set; } /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintGetArgs.cs index 26d17dde542..d8179c391e3 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintGetArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersEcsTaskParametersPlacementConstraintGetA public Input? Expression { get; set; } /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyArgs.cs index 1cf5f7f6783..7d613840021 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersEcsTaskParametersPlacementStrategyArgs : public Input? Field { get; set; } /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyGetArgs.cs index ada831e92e6..4fa6d5c8ea4 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyGetArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersEcsTaskParametersPlacementStrategyGetArg public Input? Field { get; set; } /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs.cs index 187095a674e..a4b3b98cf75 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersSagemakerPipelineParametersPipelineParam public Input Name { get; set; } = null!; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterGetArgs.cs b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterGetArgs.cs index f69b1554dea..acc318b0e00 100644 --- a/sdk/dotnet/Pipes/Inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterGetArgs.cs +++ b/sdk/dotnet/Pipes/Inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterGetArgs.cs @@ -19,7 +19,7 @@ public sealed class PipeTargetParametersSagemakerPipelineParametersPipelineParam public Input Name { get; set; } = null!; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Pipes/Outputs/PipeSourceParametersActivemqBrokerParametersCredentials.cs b/sdk/dotnet/Pipes/Outputs/PipeSourceParametersActivemqBrokerParametersCredentials.cs index a2abab107cd..99a51134ff0 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeSourceParametersActivemqBrokerParametersCredentials.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeSourceParametersActivemqBrokerParametersCredentials.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Pipes.Outputs public sealed class PipeSourceParametersActivemqBrokerParametersCredentials { /// - /// The ARN of the Secrets Manager secret containing the basic auth credentials. + /// The ARN of the Secrets Manager secret containing the credentials. /// public readonly string BasicAuth; diff --git a/sdk/dotnet/Pipes/Outputs/PipeSourceParametersRabbitmqBrokerParametersCredentials.cs b/sdk/dotnet/Pipes/Outputs/PipeSourceParametersRabbitmqBrokerParametersCredentials.cs index 58a51224168..9bf2d6cd975 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeSourceParametersRabbitmqBrokerParametersCredentials.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeSourceParametersRabbitmqBrokerParametersCredentials.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Pipes.Outputs public sealed class PipeSourceParametersRabbitmqBrokerParametersCredentials { /// - /// The ARN of the Secrets Manager secret containing the basic auth credentials. + /// The ARN of the Secrets Manager secret containing the credentials. /// public readonly string BasicAuth; diff --git a/sdk/dotnet/Pipes/Outputs/PipeSourceParametersSelfManagedKafkaParametersCredentials.cs b/sdk/dotnet/Pipes/Outputs/PipeSourceParametersSelfManagedKafkaParametersCredentials.cs index 61c51787207..75293aebaee 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeSourceParametersSelfManagedKafkaParametersCredentials.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeSourceParametersSelfManagedKafkaParametersCredentials.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Pipes.Outputs public sealed class PipeSourceParametersSelfManagedKafkaParametersCredentials { /// - /// The ARN of the Secrets Manager secret containing the basic auth credentials. + /// The ARN of the Secrets Manager secret containing the credentials. /// public readonly string BasicAuth; /// diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverrides.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverrides.cs index ed50a224cc3..a7cb3430e41 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverrides.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverrides.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Pipes.Outputs public sealed class PipeTargetParametersBatchJobParametersContainerOverrides { /// - /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. + /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. /// public readonly ImmutableArray Commands; /// - /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. /// public readonly ImmutableArray Environments; /// @@ -26,7 +26,7 @@ public sealed class PipeTargetParametersBatchJobParametersContainerOverrides /// public readonly string? InstanceType; /// - /// The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + /// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. /// public readonly ImmutableArray ResourceRequirements; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironment.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironment.cs index 8e16dd707fd..1f2e181d8cc 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironment.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironment.cs @@ -18,7 +18,7 @@ public sealed class PipeTargetParametersBatchJobParametersContainerOverridesEnvi /// public readonly string? Name; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// public readonly string? Value; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement.cs index d33979bccd9..5d766e332a9 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Pipes.Outputs public sealed class PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement { /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// public readonly string Type; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// public readonly string Value; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersDependsOn.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersDependsOn.cs index 342de612e1b..d62e7f9167a 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersDependsOn.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersBatchJobParametersDependsOn.cs @@ -18,7 +18,7 @@ public sealed class PipeTargetParametersBatchJobParametersDependsOn /// public readonly string? JobId; /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// public readonly string? Type; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverrides.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverrides.cs index 1d1b5d01d15..610498e7b5b 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverrides.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverrides.cs @@ -18,7 +18,7 @@ public sealed class PipeTargetParametersEcsTaskParametersOverrides /// public readonly ImmutableArray ContainerOverrides; /// - /// The cpu override for the task. + /// The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. /// public readonly string? Cpu; /// @@ -34,7 +34,7 @@ public sealed class PipeTargetParametersEcsTaskParametersOverrides /// public readonly ImmutableArray InferenceAcceleratorOverrides; /// - /// The memory override for the task. + /// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. /// public readonly string? Memory; /// diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverride.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverride.cs index 71ad719b62b..f03b9930322 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverride.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverride.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Pipes.Outputs public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverride { /// - /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. + /// List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. /// public readonly ImmutableArray Commands; /// - /// The cpu override for the task. + /// The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. /// public readonly int? Cpu; /// @@ -26,11 +26,11 @@ public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverr /// public readonly ImmutableArray EnvironmentFiles; /// - /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. /// public readonly ImmutableArray Environments; /// - /// The memory override for the task. + /// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. /// public readonly int? Memory; /// @@ -42,7 +42,7 @@ public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverr /// public readonly string? Name; /// - /// The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + /// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. /// public readonly ImmutableArray ResourceRequirements; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment.cs index 1885a886688..1a50fc9cfde 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment.cs @@ -18,7 +18,7 @@ public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverr /// public readonly string? Name; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// public readonly string? Value; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile.cs index 0d07bc5aa51..42fd9d8b623 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Pipes.Outputs public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile { /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// public readonly string Type; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// public readonly string Value; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement.cs index d21c0db1dd6..43be719367a 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.Pipes.Outputs public sealed class PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement { /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// public readonly string Type; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// public readonly string Value; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersPlacementConstraint.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersPlacementConstraint.cs index 4c7d90985b6..95a402525d6 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersPlacementConstraint.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersPlacementConstraint.cs @@ -18,7 +18,7 @@ public sealed class PipeTargetParametersEcsTaskParametersPlacementConstraint /// public readonly string? Expression; /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// public readonly string? Type; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersPlacementStrategy.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersPlacementStrategy.cs index 70360fae743..1193d2b52a5 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersPlacementStrategy.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersEcsTaskParametersPlacementStrategy.cs @@ -18,7 +18,7 @@ public sealed class PipeTargetParametersEcsTaskParametersPlacementStrategy /// public readonly string? Field; /// - /// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + /// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. /// public readonly string? Type; diff --git a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameter.cs b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameter.cs index 43f7d9424a6..c0e99399952 100644 --- a/sdk/dotnet/Pipes/Outputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameter.cs +++ b/sdk/dotnet/Pipes/Outputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameter.cs @@ -18,7 +18,7 @@ public sealed class PipeTargetParametersSagemakerPipelineParametersPipelineParam /// public readonly string Name; /// - /// The value of the key-value pair. For environment variables, this is the value of the environment variable. + /// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. /// public readonly string Value; diff --git a/sdk/dotnet/S3/Inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.cs b/sdk/dotnet/S3/Inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.cs index e2992263ce3..29540cfd9f5 100644 --- a/sdk/dotnet/S3/Inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.cs +++ b/sdk/dotnet/S3/Inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.cs @@ -31,7 +31,7 @@ public sealed class AnalyticsConfigurationStorageClassAnalysisDataExportDestinat public Input? Format { get; set; } /// - /// Object prefix for filtering. + /// Prefix to append to exported analytics data. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/S3/Inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationGetArgs.cs b/sdk/dotnet/S3/Inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationGetArgs.cs index f7bf4319d62..111fdc24920 100644 --- a/sdk/dotnet/S3/Inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationGetArgs.cs +++ b/sdk/dotnet/S3/Inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationGetArgs.cs @@ -31,7 +31,7 @@ public sealed class AnalyticsConfigurationStorageClassAnalysisDataExportDestinat public Input? Format { get; set; } /// - /// Object prefix for filtering. + /// Prefix to append to exported analytics data. /// [Input("prefix")] public Input? Prefix { get; set; } diff --git a/sdk/dotnet/S3/Outputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination.cs b/sdk/dotnet/S3/Outputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination.cs index 7b5b38422ed..6af339997ac 100644 --- a/sdk/dotnet/S3/Outputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination.cs +++ b/sdk/dotnet/S3/Outputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination.cs @@ -26,7 +26,7 @@ public sealed class AnalyticsConfigurationStorageClassAnalysisDataExportDestinat /// public readonly string? Format; /// - /// Object prefix for filtering. + /// Prefix to append to exported analytics data. /// public readonly string? Prefix; diff --git a/sdk/dotnet/Scheduler/Schedule.cs b/sdk/dotnet/Scheduler/Schedule.cs index 73d4276d82f..9f4e0f354b8 100644 --- a/sdk/dotnet/Scheduler/Schedule.cs +++ b/sdk/dotnet/Scheduler/Schedule.cs @@ -91,7 +91,7 @@ namespace Pulumi.Aws.Scheduler public partial class Schedule : global::Pulumi.CustomResource { /// - /// ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + /// ARN of the SQS queue specified as the destination for the dead-letter queue. /// [Output("arn")] public Output Arn { get; private set; } = null!; @@ -299,7 +299,7 @@ public ScheduleArgs() public sealed class ScheduleState : global::Pulumi.ResourceArgs { /// - /// ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + /// ARN of the SQS queue specified as the destination for the dead-letter queue. /// [Input("arn")] public Input? Arn { get; set; } diff --git a/sdk/dotnet/Signer/Inputs/SigningJobSignedObjectArgs.cs b/sdk/dotnet/Signer/Inputs/SigningJobSignedObjectArgs.cs index 47fcd1b762f..64d6689def6 100644 --- a/sdk/dotnet/Signer/Inputs/SigningJobSignedObjectArgs.cs +++ b/sdk/dotnet/Signer/Inputs/SigningJobSignedObjectArgs.cs @@ -16,7 +16,7 @@ public sealed class SigningJobSignedObjectArgs : global::Pulumi.ResourceArgs private InputList? _s3s; /// - /// A configuration block describing the S3 Source object: See S3 Source below for details. + /// A configuration block describing the S3 Destination object: See S3 Destination below for details. /// public InputList S3s { diff --git a/sdk/dotnet/Signer/Inputs/SigningJobSignedObjectGetArgs.cs b/sdk/dotnet/Signer/Inputs/SigningJobSignedObjectGetArgs.cs index baf0fd69ec6..677e204fdcd 100644 --- a/sdk/dotnet/Signer/Inputs/SigningJobSignedObjectGetArgs.cs +++ b/sdk/dotnet/Signer/Inputs/SigningJobSignedObjectGetArgs.cs @@ -16,7 +16,7 @@ public sealed class SigningJobSignedObjectGetArgs : global::Pulumi.ResourceArgs private InputList? _s3s; /// - /// A configuration block describing the S3 Source object: See S3 Source below for details. + /// A configuration block describing the S3 Destination object: See S3 Destination below for details. /// public InputList S3s { diff --git a/sdk/dotnet/Signer/Outputs/SigningJobSignedObject.cs b/sdk/dotnet/Signer/Outputs/SigningJobSignedObject.cs index 6e02b2ef1f9..c811fb8ab4c 100644 --- a/sdk/dotnet/Signer/Outputs/SigningJobSignedObject.cs +++ b/sdk/dotnet/Signer/Outputs/SigningJobSignedObject.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Signer.Outputs public sealed class SigningJobSignedObject { /// - /// A configuration block describing the S3 Source object: See S3 Source below for details. + /// A configuration block describing the S3 Destination object: See S3 Destination below for details. /// public readonly ImmutableArray S3s; diff --git a/sdk/dotnet/StorageGateway/FileSystemAssociation.cs b/sdk/dotnet/StorageGateway/FileSystemAssociation.cs index f1ac3f50893..65fbe465465 100644 --- a/sdk/dotnet/StorageGateway/FileSystemAssociation.cs +++ b/sdk/dotnet/StorageGateway/FileSystemAssociation.cs @@ -54,7 +54,7 @@ namespace Pulumi.Aws.StorageGateway /// { /// Ami = awsServiceStoragegatewayAmiFILES3Latest.Apply(getParameterResult => getParameterResult.Value), /// AssociatePublicIpAddress = true, - /// InstanceType = System.Enum.Parse<Aws.Ec2/InstanceType.InstanceType>(data.Aws_ec2_instance_type_offering.Available.Instance_type), + /// InstanceType = System.Enum.Parse<Aws.Ec2.InstanceType.InstanceType>(data.Aws_ec2_instance_type_offering.Available.Instance_type), /// VpcSecurityGroupIds = new[] /// { /// aws_security_group.Test.Id, diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepArgs.cs index 5e7786cce66..e155d05560e 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepArgs.cs @@ -43,7 +43,7 @@ public sealed class WorkflowOnExceptionStepArgs : global::Pulumi.ResourceArgs public Input? TagStepDetails { get; set; } /// - /// One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + /// The type of encryption used. Currently, this value must be `"PGP"`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.cs index 22434c01181..9fd1c7a30fb 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.cs @@ -19,7 +19,7 @@ public sealed class WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocatio public Input? Bucket { get; set; } /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key")] public Input? Key { get; set; } diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs index b66e614e010..a41ec49bceb 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs @@ -19,7 +19,7 @@ public sealed class WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocatio public Input? Bucket { get; set; } /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key")] public Input? Key { get; set; } diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.cs index 68cbfe37fc1..b940221c9a7 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.cs @@ -19,7 +19,7 @@ public sealed class WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLoca public Input? Bucket { get; set; } /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key")] public Input? Key { get; set; } diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs index b2a14280c87..c5a9de5d030 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs @@ -19,7 +19,7 @@ public sealed class WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLoca public Input? Bucket { get; set; } /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key")] public Input? Key { get; set; } diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepGetArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepGetArgs.cs index 893191517b5..e8183526666 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepGetArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepGetArgs.cs @@ -43,7 +43,7 @@ public sealed class WorkflowOnExceptionStepGetArgs : global::Pulumi.ResourceArgs public Input? TagStepDetails { get; set; } /// - /// One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + /// The type of encryption used. Currently, this value must be `"PGP"`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepTagStepDetailsTagArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepTagStepDetailsTagArgs.cs index 4a9f201bb84..1fcf958abd8 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepTagStepDetailsTagArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepTagStepDetailsTagArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Transfer.Inputs public sealed class WorkflowOnExceptionStepTagStepDetailsTagArgs : global::Pulumi.ResourceArgs { /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key", required: true)] public Input Key { get; set; } = null!; diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepTagStepDetailsTagGetArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepTagStepDetailsTagGetArgs.cs index b781728de93..2bf7c9effd9 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepTagStepDetailsTagGetArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowOnExceptionStepTagStepDetailsTagGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Transfer.Inputs public sealed class WorkflowOnExceptionStepTagStepDetailsTagGetArgs : global::Pulumi.ResourceArgs { /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key", required: true)] public Input Key { get; set; } = null!; diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowStepArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowStepArgs.cs index b1d114e5e53..26c1c40e5c1 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowStepArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowStepArgs.cs @@ -43,7 +43,7 @@ public sealed class WorkflowStepArgs : global::Pulumi.ResourceArgs public Input? TagStepDetails { get; set; } /// - /// One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + /// The type of encryption used. Currently, this value must be `"PGP"`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.cs index 120f3876e43..7f978df3b42 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.cs @@ -19,7 +19,7 @@ public sealed class WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLoca public Input? Bucket { get; set; } /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key")] public Input? Key { get; set; } diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs index 07b6c21247c..d6bfde57446 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs @@ -19,7 +19,7 @@ public sealed class WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLoca public Input? Bucket { get; set; } /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key")] public Input? Key { get; set; } diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.cs index 817d822d507..fc130902de8 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.cs @@ -19,7 +19,7 @@ public sealed class WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileL public Input? Bucket { get; set; } /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key")] public Input? Key { get; set; } diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs index b44896923b0..53241a198a9 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationGetArgs.cs @@ -19,7 +19,7 @@ public sealed class WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileL public Input? Bucket { get; set; } /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key")] public Input? Key { get; set; } diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowStepGetArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowStepGetArgs.cs index 53b20bcd422..f7e1ae47c7c 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowStepGetArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowStepGetArgs.cs @@ -43,7 +43,7 @@ public sealed class WorkflowStepGetArgs : global::Pulumi.ResourceArgs public Input? TagStepDetails { get; set; } /// - /// One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + /// The type of encryption used. Currently, this value must be `"PGP"`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowStepTagStepDetailsTagArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowStepTagStepDetailsTagArgs.cs index 6e9322047b0..1a68e678237 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowStepTagStepDetailsTagArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowStepTagStepDetailsTagArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Transfer.Inputs public sealed class WorkflowStepTagStepDetailsTagArgs : global::Pulumi.ResourceArgs { /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key", required: true)] public Input Key { get; set; } = null!; diff --git a/sdk/dotnet/Transfer/Inputs/WorkflowStepTagStepDetailsTagGetArgs.cs b/sdk/dotnet/Transfer/Inputs/WorkflowStepTagStepDetailsTagGetArgs.cs index cc9ce861ef7..89d4c18212a 100644 --- a/sdk/dotnet/Transfer/Inputs/WorkflowStepTagStepDetailsTagGetArgs.cs +++ b/sdk/dotnet/Transfer/Inputs/WorkflowStepTagStepDetailsTagGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Transfer.Inputs public sealed class WorkflowStepTagStepDetailsTagGetArgs : global::Pulumi.ResourceArgs { /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// [Input("key", required: true)] public Input Key { get; set; } = null!; diff --git a/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStep.cs b/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStep.cs index c66c6ff91f9..43b045e8022 100644 --- a/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStep.cs +++ b/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStep.cs @@ -34,7 +34,7 @@ public sealed class WorkflowOnExceptionStep /// public readonly Outputs.WorkflowOnExceptionStepTagStepDetails? TagStepDetails; /// - /// One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + /// The type of encryption used. Currently, this value must be `"PGP"`. /// public readonly string Type; diff --git a/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation.cs b/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation.cs index cb4207da63e..fc50f1341b7 100644 --- a/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation.cs +++ b/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation.cs @@ -18,7 +18,7 @@ public sealed class WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocatio /// public readonly string? Bucket; /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// public readonly string? Key; diff --git a/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation.cs b/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation.cs index 951d4855327..fa127037786 100644 --- a/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation.cs +++ b/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation.cs @@ -18,7 +18,7 @@ public sealed class WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLoca /// public readonly string? Bucket; /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// public readonly string? Key; diff --git a/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepTagStepDetailsTag.cs b/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepTagStepDetailsTag.cs index 60f17920a61..f855dfc4c97 100644 --- a/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepTagStepDetailsTag.cs +++ b/sdk/dotnet/Transfer/Outputs/WorkflowOnExceptionStepTagStepDetailsTag.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Transfer.Outputs public sealed class WorkflowOnExceptionStepTagStepDetailsTag { /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// public readonly string Key; /// diff --git a/sdk/dotnet/Transfer/Outputs/WorkflowStep.cs b/sdk/dotnet/Transfer/Outputs/WorkflowStep.cs index 365b21c0062..854b93434eb 100644 --- a/sdk/dotnet/Transfer/Outputs/WorkflowStep.cs +++ b/sdk/dotnet/Transfer/Outputs/WorkflowStep.cs @@ -34,7 +34,7 @@ public sealed class WorkflowStep /// public readonly Outputs.WorkflowStepTagStepDetails? TagStepDetails; /// - /// One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + /// The type of encryption used. Currently, this value must be `"PGP"`. /// public readonly string Type; diff --git a/sdk/dotnet/Transfer/Outputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation.cs b/sdk/dotnet/Transfer/Outputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation.cs index 9e6a201fdb7..7c27e37708a 100644 --- a/sdk/dotnet/Transfer/Outputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation.cs +++ b/sdk/dotnet/Transfer/Outputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation.cs @@ -18,7 +18,7 @@ public sealed class WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLoca /// public readonly string? Bucket; /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// public readonly string? Key; diff --git a/sdk/dotnet/Transfer/Outputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation.cs b/sdk/dotnet/Transfer/Outputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation.cs index 2fe5c9625ad..ab46f8f5784 100644 --- a/sdk/dotnet/Transfer/Outputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation.cs +++ b/sdk/dotnet/Transfer/Outputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation.cs @@ -18,7 +18,7 @@ public sealed class WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileL /// public readonly string? Bucket; /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// public readonly string? Key; diff --git a/sdk/dotnet/Transfer/Outputs/WorkflowStepTagStepDetailsTag.cs b/sdk/dotnet/Transfer/Outputs/WorkflowStepTagStepDetailsTag.cs index 8d3c96bdbae..39193869282 100644 --- a/sdk/dotnet/Transfer/Outputs/WorkflowStepTagStepDetailsTag.cs +++ b/sdk/dotnet/Transfer/Outputs/WorkflowStepTagStepDetailsTag.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Transfer.Outputs public sealed class WorkflowStepTagStepDetailsTag { /// - /// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + /// The name assigned to the tag that you create. /// public readonly string Key; /// diff --git a/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleActionArgs.cs b/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleActionArgs.cs index 205cfd2d113..fa512841c91 100644 --- a/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleActionArgs.cs +++ b/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleActionArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Waf.Inputs public sealed class RuleGroupActivatedRuleActionArgs : global::Pulumi.ResourceArgs { /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleActionGetArgs.cs b/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleActionGetArgs.cs index c4708a7dcd4..89360706b96 100644 --- a/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleActionGetArgs.cs +++ b/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleActionGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Waf.Inputs public sealed class RuleGroupActivatedRuleActionGetArgs : global::Pulumi.ResourceArgs { /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleArgs.cs b/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleArgs.cs index f59b6c37130..e8e12a7ad6f 100644 --- a/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleArgs.cs +++ b/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleArgs.cs @@ -31,7 +31,7 @@ public sealed class RuleGroupActivatedRuleArgs : global::Pulumi.ResourceArgs public Input RuleId { get; set; } = null!; /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleGetArgs.cs b/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleGetArgs.cs index ca25a351277..be4fcbaa419 100644 --- a/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleGetArgs.cs +++ b/sdk/dotnet/Waf/Inputs/RuleGroupActivatedRuleGetArgs.cs @@ -31,7 +31,7 @@ public sealed class RuleGroupActivatedRuleGetArgs : global::Pulumi.ResourceArgs public Input RuleId { get; set; } = null!; /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Waf/Outputs/RuleGroupActivatedRule.cs b/sdk/dotnet/Waf/Outputs/RuleGroupActivatedRule.cs index 1db1e44f4c9..7067b7b634d 100644 --- a/sdk/dotnet/Waf/Outputs/RuleGroupActivatedRule.cs +++ b/sdk/dotnet/Waf/Outputs/RuleGroupActivatedRule.cs @@ -26,7 +26,7 @@ public sealed class RuleGroupActivatedRule /// public readonly string RuleId; /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// public readonly string? Type; diff --git a/sdk/dotnet/Waf/Outputs/RuleGroupActivatedRuleAction.cs b/sdk/dotnet/Waf/Outputs/RuleGroupActivatedRuleAction.cs index 53a5a6d3a3f..f37a4766d7e 100644 --- a/sdk/dotnet/Waf/Outputs/RuleGroupActivatedRuleAction.cs +++ b/sdk/dotnet/Waf/Outputs/RuleGroupActivatedRuleAction.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Waf.Outputs public sealed class RuleGroupActivatedRuleAction { /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// public readonly string Type; diff --git a/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleActionArgs.cs b/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleActionArgs.cs index 374e803c62f..79d4f44cb53 100644 --- a/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleActionArgs.cs +++ b/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleActionArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafRegional.Inputs public sealed class RuleGroupActivatedRuleActionArgs : global::Pulumi.ResourceArgs { /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleActionGetArgs.cs b/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleActionGetArgs.cs index 0426518647c..cc2564c4e95 100644 --- a/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleActionGetArgs.cs +++ b/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleActionGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafRegional.Inputs public sealed class RuleGroupActivatedRuleActionGetArgs : global::Pulumi.ResourceArgs { /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleArgs.cs b/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleArgs.cs index 6c0e229feef..b77245053f9 100644 --- a/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleArgs.cs +++ b/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleArgs.cs @@ -31,7 +31,7 @@ public sealed class RuleGroupActivatedRuleArgs : global::Pulumi.ResourceArgs public Input RuleId { get; set; } = null!; /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleGetArgs.cs b/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleGetArgs.cs index e7349abacaf..a836c3102ce 100644 --- a/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleGetArgs.cs +++ b/sdk/dotnet/WafRegional/Inputs/RuleGroupActivatedRuleGetArgs.cs @@ -31,7 +31,7 @@ public sealed class RuleGroupActivatedRuleGetArgs : global::Pulumi.ResourceArgs public Input RuleId { get; set; } = null!; /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/WafRegional/Inputs/WebAclRuleOverrideActionArgs.cs b/sdk/dotnet/WafRegional/Inputs/WebAclRuleOverrideActionArgs.cs index 59735af1722..8298651ebb2 100644 --- a/sdk/dotnet/WafRegional/Inputs/WebAclRuleOverrideActionArgs.cs +++ b/sdk/dotnet/WafRegional/Inputs/WebAclRuleOverrideActionArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafRegional.Inputs public sealed class WebAclRuleOverrideActionArgs : global::Pulumi.ResourceArgs { /// - /// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + /// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/WafRegional/Inputs/WebAclRuleOverrideActionGetArgs.cs b/sdk/dotnet/WafRegional/Inputs/WebAclRuleOverrideActionGetArgs.cs index 688986ff12e..303ae410e9e 100644 --- a/sdk/dotnet/WafRegional/Inputs/WebAclRuleOverrideActionGetArgs.cs +++ b/sdk/dotnet/WafRegional/Inputs/WebAclRuleOverrideActionGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafRegional.Inputs public sealed class WebAclRuleOverrideActionGetArgs : global::Pulumi.ResourceArgs { /// - /// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + /// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/WafRegional/Outputs/RuleGroupActivatedRule.cs b/sdk/dotnet/WafRegional/Outputs/RuleGroupActivatedRule.cs index 32f133d2d96..e6e57568cd1 100644 --- a/sdk/dotnet/WafRegional/Outputs/RuleGroupActivatedRule.cs +++ b/sdk/dotnet/WafRegional/Outputs/RuleGroupActivatedRule.cs @@ -26,7 +26,7 @@ public sealed class RuleGroupActivatedRule /// public readonly string RuleId; /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// public readonly string? Type; diff --git a/sdk/dotnet/WafRegional/Outputs/RuleGroupActivatedRuleAction.cs b/sdk/dotnet/WafRegional/Outputs/RuleGroupActivatedRuleAction.cs index 8c7a7f5c8c1..4935b2b8a0d 100644 --- a/sdk/dotnet/WafRegional/Outputs/RuleGroupActivatedRuleAction.cs +++ b/sdk/dotnet/WafRegional/Outputs/RuleGroupActivatedRuleAction.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafRegional.Outputs public sealed class RuleGroupActivatedRuleAction { /// - /// e.g., `BLOCK`, `ALLOW`, or `COUNT` + /// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. /// public readonly string Type; diff --git a/sdk/dotnet/WafRegional/Outputs/WebAclRuleOverrideAction.cs b/sdk/dotnet/WafRegional/Outputs/WebAclRuleOverrideAction.cs index f3db4ec30fb..0ce4b638c96 100644 --- a/sdk/dotnet/WafRegional/Outputs/WebAclRuleOverrideAction.cs +++ b/sdk/dotnet/WafRegional/Outputs/WebAclRuleOverrideAction.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafRegional.Outputs public sealed class WebAclRuleOverrideAction { /// - /// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + /// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. /// public readonly string Type; diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs.cs index a165008feb8..755a9647cbc 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyGetArgs.cs index eafbab29f04..d888c409c61 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs.cs index a297d632a37..2b3db008e2b 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs.cs @@ -25,16 +25,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieGetArgs.cs index eaa51316f14..71e30fbbd49 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieGetArgs.cs @@ -25,16 +25,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyCookieGetAr /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderArgs.cs index 473f687d73e..99a2f781ae2 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderArgs.cs @@ -25,16 +25,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderArgs /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderGetArgs.cs index 774311a23f9..7f682a182e7 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderGetArgs.cs @@ -25,16 +25,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderGetAr /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs.cs index ace76c4b3cc..43f15e60789 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs.cs @@ -25,16 +25,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgume /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentGetArgs.cs index c29fda0d64c..b1f5d8dcbe4 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentGetArgs.cs @@ -25,16 +25,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgume /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs.cs index d7692f4bfd8..aeccec56873 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs.cs @@ -19,16 +19,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringGetArgs.cs index 0da7e2fca60..afcd8fd1ae8 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringGetArgs.cs @@ -19,16 +19,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs.cs index 7259cb78c63..03ad927bc36 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs.cs @@ -19,16 +19,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathGetArgs.cs index b9e5aeb672e..3234431f845 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathGetArgs.cs @@ -19,16 +19,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathGetA /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public InputList TextTransformations { diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs.cs index 123d1a970c6..58a24a932c0 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyGetArgs.cs index 1c9df5e9c5a..7f506aa418d 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.cs index c15288f2320..95bb63f916c 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyGetArgs.cs index ddf75eefb8e..4c3e1c47bbd 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.cs index 9ad7d8ad678..8d980cb86be 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs.cs index f0e1232f852..711ea9f1bf9 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.cs index f1d4659de27..a73aa469dfc 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyGetArgs.cs index 3d479b80146..a4387310900 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.cs index a61c5df2cad..b38406084c3 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyGetArgs.cs index 95109e2e588..249a2f548f1 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.cs index 4a165590678..5458a78ef2c 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyGetArgs.cs index 17fd93330ea..0bc69043e71 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs.cs index 9716360f9c9..c4867e214a3 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyGetArgs.cs index 8aa1caf950c..41ff4a639ba 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.cs index 90c08135996..6b61691cff0 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs.cs index 6e153bca287..888f2bd1c5d 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs.cs index 76871b37325..cd8c3c5bf74 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyGetArgs.cs index b0d3e69c669..3a3e5faa374 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs.cs index 8601b0c8953..a64110d4615 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyGetArgs.cs index d5bb7311a90..42e250f27d9 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs.cs index e8b0af03fb2..ec2e49c1d88 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyGetArgs.cs b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyGetArgs.cs index 02776bc42ed..33922f031f8 100644 --- a/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyGetArgs : global::Pulumi.ResourceArgs { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// [Input("oversizeHandling")] public Input? OversizeHandling { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.cs index fc45d804632..710210eb78f 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs : global::Pulumi.ResourceArgs { /// - /// The name of the password field. + /// The identifier for the value to match against in the JSON. /// [Input("identifier", required: true)] public Input Identifier { get; set; } = null!; diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldGetArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldGetArgs.cs index 301eb06577c..c31d8c56c2b 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldGetArgs : global::Pulumi.ResourceArgs { /// - /// The name of the password field. + /// The identifier for the value to match against in the JSON. /// [Input("identifier", required: true)] public Input Identifier { get; set; } = null!; diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.cs index 3ae8c66fed4..be7120faa8d 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs : global::Pulumi.ResourceArgs { /// - /// Specifies that AWS WAF should allow requests by default. See `allow` below for details. + /// Instructs AWS WAF to allow the web request. See `allow` below for details. /// [Input("allow")] public Input? Allow { get; set; } /// - /// Specifies that AWS WAF should block requests by default. See `block` below for details. + /// Instructs AWS WAF to block the web request. See `block` below for details. /// [Input("block")] public Input? Block { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseGetArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseGetArgs.cs index 90b9f4ff706..ba9dbb1a5c1 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseGetArgs : global::Pulumi.ResourceArgs { /// - /// Specifies that AWS WAF should allow requests by default. See `allow` below for details. + /// Instructs AWS WAF to allow the web request. See `allow` below for details. /// [Input("allow")] public Input? Allow { get; set; } /// - /// Specifies that AWS WAF should block requests by default. See `block` below for details. + /// Instructs AWS WAF to block the web request. See `block` below for details. /// [Input("block")] public Input? Block { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs.cs index 14f82ee9e3a..ba4bef522ce 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs : global::Pulumi.ResourceArgs { /// - /// Specifies that AWS WAF should allow requests by default. See `allow` below for details. + /// Instructs AWS WAF to allow the web request. See `allow` below for details. /// [Input("allow")] public Input? Allow { get; set; } /// - /// Specifies that AWS WAF should block requests by default. See `block` below for details. + /// Instructs AWS WAF to block the web request. See `block` below for details. /// [Input("block")] public Input? Block { get; set; } diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseGetArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseGetArgs.cs index 238db0acbd8..8975ed06d87 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseGetArgs.cs @@ -13,13 +13,13 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseGetArgs : global::Pulumi.ResourceArgs { /// - /// Specifies that AWS WAF should allow requests by default. See `allow` below for details. + /// Instructs AWS WAF to allow the web request. See `allow` below for details. /// [Input("allow")] public Input? Allow { get; set; } /// - /// Specifies that AWS WAF should block requests by default. See `block` below for details. + /// Instructs AWS WAF to block the web request. See `block` below for details. /// [Input("block")] public Input? Block { get; set; } diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBody.cs index 524d9d258c4..7b186e8e791 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementByteMatchStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookie.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookie.cs index 627cad96c3e..878f0746783 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookie.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookie.cs @@ -21,16 +21,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyCookie /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public readonly ImmutableArray TextTransformations; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeader.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeader.cs index 8a6f5a38e1c..e2d2f2f9efa 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeader.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeader.cs @@ -21,16 +21,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyHeader /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public readonly ImmutableArray TextTransformations; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument.cs index 32689ebfe60..01cb384f741 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument.cs @@ -21,16 +21,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgume /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public readonly ImmutableArray TextTransformations; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString.cs index 4dbda515c8d..6aa50232f57 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString.cs @@ -17,16 +17,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public readonly ImmutableArray TextTransformations; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath.cs index 085313d8581..c2d71f1ee0f 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath.cs @@ -17,16 +17,6 @@ public sealed class RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. /// At least one required. /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. - /// At least one required. - /// See Text Transformation below for details. /// public readonly ImmutableArray TextTransformations; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody.cs index a3b3ffd38a7..800d9b78b56 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody.cs index 93de8027d40..de90190f2fd 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody.cs index 3cc6d92e07e..685e1897a14 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody.cs index 6f919bb942a..2cb9efaf340 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody.cs index 3da9679728f..6a209593c04 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody.cs index 1db600f24c5..ab39228eb09 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody.cs index 4fe82d26801..a965e8e3f50 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody.cs index 1093e2725cd..5a6e1806222 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody.cs index fbf7a774d89..8073fcad9db 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody.cs index f9f96ab6d0e..3d9b94b0543 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBody.cs b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBody.cs index ef9d40f4f16..c4cf7064d45 100644 --- a/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBody.cs +++ b/sdk/dotnet/WafV2/Outputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBody.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class RuleGroupRuleStatementXssMatchStatementFieldToMatchBody { /// - /// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + /// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` /// public readonly string? OversizeHandling; diff --git a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField.cs b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField.cs index dc0b4210732..808ce74e7c4 100644 --- a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField.cs +++ b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField { /// - /// The name of the password field. + /// The identifier for the value to match against in the JSON. /// public readonly string Identifier; diff --git a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse.cs b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse.cs index 3aa54fb3e30..3a8df0f937f 100644 --- a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse.cs +++ b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse { /// - /// Specifies that AWS WAF should allow requests by default. See `allow` below for details. + /// Instructs AWS WAF to allow the web request. See `allow` below for details. /// public readonly Outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow? Allow; /// - /// Specifies that AWS WAF should block requests by default. See `block` below for details. + /// Instructs AWS WAF to block the web request. See `block` below for details. /// public readonly Outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock? Block; /// diff --git a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse.cs b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse.cs index edcddd13cc7..e29246b4770 100644 --- a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse.cs +++ b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse.cs @@ -14,11 +14,11 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse { /// - /// Specifies that AWS WAF should allow requests by default. See `allow` below for details. + /// Instructs AWS WAF to allow the web request. See `allow` below for details. /// public readonly Outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow? Allow; /// - /// Specifies that AWS WAF should block requests by default. See `block` below for details. + /// Instructs AWS WAF to block the web request. See `block` below for details. /// public readonly Outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock? Block; /// diff --git a/sdk/go.mod b/sdk/go.mod index 0fb5121eccb..a805b8b5e80 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi/sdk/v3 v3.81.0 + github.com/pulumi/pulumi/sdk/v3 v3.90.1 ) retract ( @@ -17,7 +17,7 @@ require ( github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 // indirect github.com/acomagu/bufpipe v1.0.3 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect - github.com/agext/levenshtein v1.2.1 // indirect + github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect @@ -38,9 +38,9 @@ require ( github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/hcl/v2 v2.16.1 // indirect + github.com/hashicorp/hcl/v2 v2.17.0 // indirect github.com/imdario/mergo v0.3.13 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect @@ -48,7 +48,7 @@ require ( github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect - github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect @@ -58,28 +58,30 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect + github.com/pulumi/esc v0.5.6 // indirect github.com/rivo/uniseg v0.4.4 // indirect - github.com/rogpeppe/go-internal v1.9.0 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect - github.com/sergi/go-diff v1.2.0 // indirect + github.com/sergi/go-diff v1.3.1 // indirect github.com/skeema/knownhosts v1.1.0 // indirect github.com/spf13/cast v1.4.1 // indirect - github.com/spf13/cobra v1.6.1 // indirect + github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/zclconf/go-cty v1.12.1 // indirect + github.com/zclconf/go-cty v1.13.2 // indirect go.uber.org/atomic v1.9.0 // indirect - golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/term v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/crypto v0.14.0 // indirect + golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sync v0.2.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130 // indirect google.golang.org/grpc v1.57.0 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/sdk/go.sum b/sdk/go.sum index 22c9c0479d0..fe8bd1bc482 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -8,8 +8,8 @@ github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= -github.com/agext/levenshtein v1.2.1 h1:QmvMAjj2aEICytGiWzmxoE0x2KZvE0fvmqMOfy2tjT8= -github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= +github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= @@ -77,12 +77,12 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/hcl/v2 v2.16.1 h1:BwuxEMD/tsYgbhIW7UuI3crjovf3MzuFWiVgiv57iHg= -github.com/hashicorp/hcl/v2 v2.16.1/go.mod h1:JRmR89jycNkrrqnMmvPDMd56n1rQJ2Q6KocSLCMCXng= +github.com/hashicorp/hcl/v2 v2.17.0 h1:z1XvSUyXd1HP10U4lrLg5e0JMVz6CPaJvAgxM0KNZVY= +github.com/hashicorp/hcl/v2 v2.17.0/go.mod h1:gJyW2PTShkJqQBKpAmPO3yxMxIuoXkOF2TpqXzrQyx4= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= @@ -92,9 +92,8 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -118,8 +117,8 @@ github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWV github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= -github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 h1:DpOJ2HYzCv8LZP15IdmG+YdwD2luVPHITV96TkirNBM= -github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= +github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= github.com/mmcloughlin/avo v0.5.0/go.mod h1:ChHFdoV7ql95Wi7vuq2YT1bwCJqiWdZrQ1im3VujLYM= github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b h1:1XF24mVaiu7u+CFywTdcDo2ie1pzzhwjt6RHqzpMU34= github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= @@ -143,29 +142,31 @@ github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk= github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pulumi/pulumi/sdk/v3 v3.81.0 h1:d711GUpjZK1beNpIKFReC1LBmHXYE684sYWntJWQ4Q0= -github.com/pulumi/pulumi/sdk/v3 v3.81.0/go.mod h1:RMilNNVMlmK1h4Nl/qylb9vzbgh4F3mufZoUOnPy98o= +github.com/pulumi/esc v0.5.6 h1:4WV3X7OEVcChIwbSG+JxhZDdmq/q7lFPaSjHRYlPwmI= +github.com/pulumi/esc v0.5.6/go.mod h1:wpwNfVS5fV7Kd51j4dJ6FWYlKfxdqyppgp0gtkzqH04= +github.com/pulumi/pulumi/sdk/v3 v3.90.1 h1:iT4t57N92WGhEQtg+KVDEmYzgfEyri39eihQzcNmtrM= +github.com/pulumi/pulumi/sdk/v3 v3.90.1/go.mod h1:zYaQQibB2pYKy/uG4c4YkX7lQIBpZ0KsuMaq/3HsIBQ= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs= github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE= github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= -github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/skeema/knownhosts v1.1.0 h1:Wvr9V0MxhjRbl3f9nMnKnFfiWTJmtECJ9Njkea3ysW0= github.com/skeema/knownhosts v1.1.0/go.mod h1:sKFq3RD6/TKZkSWn8boUbDC7Qkgcv+8XXijpFO6roag= github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= @@ -176,8 +177,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= @@ -191,8 +192,8 @@ github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zclconf/go-cty v1.12.1 h1:PcupnljUm9EIvbgSHQnHhUr3fO6oFmkOrvs2BAFNXXY= -github.com/zclconf/go-cty v1.12.1/go.mod h1:s9IfD1LK5ccNMSWCVFCE2rJfHiZgi7JijgeWIMfhLvA= +github.com/zclconf/go-cty v1.13.2 h1:4GvrUxe/QUDYuJKAav4EYqdM47/kZa672LwmXFmEKT0= +github.com/zclconf/go-cty v1.13.2/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= golang.org/x/arch v0.1.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= @@ -205,8 +206,10 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a h1:diz9pEYuTIuLMJLs3rGDkeaTsNyRs6duYdFyPAxzE/U= -golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -224,14 +227,14 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -256,22 +259,22 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= diff --git a/sdk/go/aws/alb/pulumiTypes.go b/sdk/go/aws/alb/pulumiTypes.go index 6d4f80c0fd2..41333ad7f10 100644 --- a/sdk/go/aws/alb/pulumiTypes.go +++ b/sdk/go/aws/alb/pulumiTypes.go @@ -3801,8 +3801,6 @@ func (o ListenerRuleConditionArrayOutput) Index(i pulumi.IntInput) ListenerRuleC type ListenerRuleConditionHostHeader struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values []string `pulumi:"values"` } @@ -3819,8 +3817,6 @@ type ListenerRuleConditionHostHeaderInput interface { type ListenerRuleConditionHostHeaderArgs struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values pulumi.StringArrayInput `pulumi:"values"` } @@ -3920,8 +3916,6 @@ func (o ListenerRuleConditionHostHeaderOutput) ToOutput(ctx context.Context) pul } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionHostHeaderOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ListenerRuleConditionHostHeader) []string { return v.Values }).(pulumi.StringArrayOutput) } @@ -3957,8 +3951,6 @@ func (o ListenerRuleConditionHostHeaderPtrOutput) Elem() ListenerRuleConditionHo } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionHostHeaderPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *ListenerRuleConditionHostHeader) []string { if v == nil { @@ -4150,8 +4142,6 @@ func (o ListenerRuleConditionHttpHeaderPtrOutput) Values() pulumi.StringArrayOut type ListenerRuleConditionHttpRequestMethod struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values []string `pulumi:"values"` } @@ -4168,8 +4158,6 @@ type ListenerRuleConditionHttpRequestMethodInput interface { type ListenerRuleConditionHttpRequestMethodArgs struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values pulumi.StringArrayInput `pulumi:"values"` } @@ -4269,8 +4257,6 @@ func (o ListenerRuleConditionHttpRequestMethodOutput) ToOutput(ctx context.Conte } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionHttpRequestMethodOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ListenerRuleConditionHttpRequestMethod) []string { return v.Values }).(pulumi.StringArrayOutput) } @@ -4306,8 +4292,6 @@ func (o ListenerRuleConditionHttpRequestMethodPtrOutput) Elem() ListenerRuleCond } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionHttpRequestMethodPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *ListenerRuleConditionHttpRequestMethod) []string { if v == nil { @@ -4319,8 +4303,6 @@ func (o ListenerRuleConditionHttpRequestMethodPtrOutput) Values() pulumi.StringA type ListenerRuleConditionPathPattern struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values []string `pulumi:"values"` } @@ -4337,8 +4319,6 @@ type ListenerRuleConditionPathPatternInput interface { type ListenerRuleConditionPathPatternArgs struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values pulumi.StringArrayInput `pulumi:"values"` } @@ -4438,8 +4418,6 @@ func (o ListenerRuleConditionPathPatternOutput) ToOutput(ctx context.Context) pu } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionPathPatternOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ListenerRuleConditionPathPattern) []string { return v.Values }).(pulumi.StringArrayOutput) } @@ -4475,8 +4453,6 @@ func (o ListenerRuleConditionPathPatternPtrOutput) Elem() ListenerRuleConditionP } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionPathPatternPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *ListenerRuleConditionPathPattern) []string { if v == nil { @@ -4618,8 +4594,6 @@ func (o ListenerRuleConditionQueryStringArrayOutput) Index(i pulumi.IntInput) Li type ListenerRuleConditionSourceIp struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values []string `pulumi:"values"` } @@ -4636,8 +4610,6 @@ type ListenerRuleConditionSourceIpInput interface { type ListenerRuleConditionSourceIpArgs struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values pulumi.StringArrayInput `pulumi:"values"` } @@ -4737,8 +4709,6 @@ func (o ListenerRuleConditionSourceIpOutput) ToOutput(ctx context.Context) pulum } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionSourceIpOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ListenerRuleConditionSourceIp) []string { return v.Values }).(pulumi.StringArrayOutput) } @@ -4774,8 +4744,6 @@ func (o ListenerRuleConditionSourceIpPtrOutput) Elem() ListenerRuleConditionSour } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionSourceIpPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *ListenerRuleConditionSourceIp) []string { if v == nil { diff --git a/sdk/go/aws/appautoscaling/pulumiTypes.go b/sdk/go/aws/appautoscaling/pulumiTypes.go index 2c3bc2a14e1..5c8b167ee01 100644 --- a/sdk/go/aws/appautoscaling/pulumiTypes.go +++ b/sdk/go/aws/appautoscaling/pulumiTypes.go @@ -795,7 +795,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationPtrOutput) TargetValue() p } type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification struct { - // Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + // Dimensions of the metric. Dimensions []PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimension `pulumi:"dimensions"` // Name of the metric. MetricName *string `pulumi:"metricName"` @@ -805,7 +805,7 @@ type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification Namespace *string `pulumi:"namespace"` // Statistic of the metric. Valid values: `Average`, `Minimum`, `Maximum`, `SampleCount`, and `Sum`. Statistic *string `pulumi:"statistic"` - // Unit of the metric. + // Unit of the metrics to return. Unit *string `pulumi:"unit"` } @@ -821,7 +821,7 @@ type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification } type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs struct { - // Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + // Dimensions of the metric. Dimensions PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArrayInput `pulumi:"dimensions"` // Name of the metric. MetricName pulumi.StringPtrInput `pulumi:"metricName"` @@ -831,7 +831,7 @@ type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification Namespace pulumi.StringPtrInput `pulumi:"namespace"` // Statistic of the metric. Valid values: `Average`, `Minimum`, `Maximum`, `SampleCount`, and `Sum`. Statistic pulumi.StringPtrInput `pulumi:"statistic"` - // Unit of the metric. + // Unit of the metrics to return. Unit pulumi.StringPtrInput `pulumi:"unit"` } @@ -930,7 +930,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificat } } -// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. +// Dimensions of the metric. func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationOutput) Dimensions() PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArrayOutput { return o.ApplyT(func(v PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification) []PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimension { return v.Dimensions @@ -965,7 +965,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificat }).(pulumi.StringPtrOutput) } -// Unit of the metric. +// Unit of the metrics to return. func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationOutput) Unit() pulumi.StringPtrOutput { return o.ApplyT(func(v PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification) *string { return v.Unit @@ -1002,7 +1002,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificat }).(PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationOutput) } -// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. +// Dimensions of the metric. func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationPtrOutput) Dimensions() PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArrayOutput { return o.ApplyT(func(v *PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification) []PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimension { if v == nil { @@ -1052,7 +1052,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificat }).(pulumi.StringPtrOutput) } -// Unit of the metric. +// Unit of the metrics to return. func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationPtrOutput) Unit() pulumi.StringPtrOutput { return o.ApplyT(func(v *PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification) *string { if v == nil { @@ -1368,7 +1368,7 @@ type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification Metric PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric `pulumi:"metric"` // Statistic of the metrics to return. Stat string `pulumi:"stat"` - // Unit of the metric. + // Unit of the metrics to return. Unit *string `pulumi:"unit"` } @@ -1388,7 +1388,7 @@ type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification Metric PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricInput `pulumi:"metric"` // Statistic of the metrics to return. Stat pulumi.StringInput `pulumi:"stat"` - // Unit of the metric. + // Unit of the metrics to return. Unit pulumi.StringPtrInput `pulumi:"unit"` } @@ -1501,7 +1501,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificat }).(pulumi.StringOutput) } -// Unit of the metric. +// Unit of the metrics to return. func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatOutput) Unit() pulumi.StringPtrOutput { return o.ApplyT(func(v PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat) *string { return v.Unit @@ -1558,7 +1558,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificat }).(pulumi.StringPtrOutput) } -// Unit of the metric. +// Unit of the metrics to return. func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatPtrOutput) Unit() pulumi.StringPtrOutput { return o.ApplyT(func(v *PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat) *string { if v == nil { @@ -1569,7 +1569,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificat } type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric struct { - // Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + // Dimensions of the metric. Dimensions []PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension `pulumi:"dimensions"` // Name of the metric. MetricName string `pulumi:"metricName"` @@ -1589,7 +1589,7 @@ type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification } type PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs struct { - // Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + // Dimensions of the metric. Dimensions PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArrayInput `pulumi:"dimensions"` // Name of the metric. MetricName pulumi.StringInput `pulumi:"metricName"` @@ -1692,7 +1692,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificat } } -// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. +// Dimensions of the metric. func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricOutput) Dimensions() PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArrayOutput { return o.ApplyT(func(v PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric) []PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension { return v.Dimensions @@ -1743,7 +1743,7 @@ func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificat }).(PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricOutput) } -// Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. +// Dimensions of the metric. func (o PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricPtrOutput) Dimensions() PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArrayOutput { return o.ApplyT(func(v *PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric) []PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension { if v == nil { diff --git a/sdk/go/aws/appflow/pulumiTypes.go b/sdk/go/aws/appflow/pulumiTypes.go index 25d0ad7cedc..af11af452dc 100644 --- a/sdk/go/aws/appflow/pulumiTypes.go +++ b/sdk/go/aws/appflow/pulumiTypes.go @@ -11555,7 +11555,7 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector stru CustomProperties map[string]string `pulumi:"customProperties"` // Entity specified in the custom connector as a destination in the flow. EntityName string `pulumi:"entityName"` - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig `pulumi:"errorHandlingConfig"` // Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. IdFieldNames []string `pulumi:"idFieldNames"` @@ -11579,7 +11579,7 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs CustomProperties pulumi.StringMapInput `pulumi:"customProperties"` // Entity specified in the custom connector as a destination in the flow. EntityName pulumi.StringInput `pulumi:"entityName"` - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigPtrInput `pulumi:"errorHandlingConfig"` // Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. IdFieldNames pulumi.StringArrayInput `pulumi:"idFieldNames"` @@ -11696,7 +11696,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorOu }).(pulumi.StringOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector) *FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig { return v.ErrorHandlingConfig @@ -11767,7 +11767,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorPt }).(pulumi.StringPtrOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorPtrOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector) *FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig { if v == nil { @@ -12187,7 +12187,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesCustomerProfilesP } type FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig `pulumi:"errorHandlingConfig"` // Object specified in the flow destination. Object string `pulumi:"object"` @@ -12205,7 +12205,7 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeInput int } type FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeArgs struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigPtrInput `pulumi:"errorHandlingConfig"` // Object specified in the flow destination. Object pulumi.StringInput `pulumi:"object"` @@ -12306,7 +12306,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeOutput } } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge) *FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig { return v.ErrorHandlingConfig @@ -12348,7 +12348,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgePtrOut }).(FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgePtrOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge) *FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig { if v == nil { @@ -12574,7 +12574,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorH } type FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig `pulumi:"errorHandlingConfig"` // Object specified in the flow destination. Object string `pulumi:"object"` @@ -12592,7 +12592,7 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeInput inter } type FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeArgs struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigPtrInput `pulumi:"errorHandlingConfig"` // Object specified in the flow destination. Object pulumi.StringInput `pulumi:"object"` @@ -12693,7 +12693,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeOutput) } } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode) *FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig { return v.ErrorHandlingConfig @@ -12735,7 +12735,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodePtrOutpu }).(FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodePtrOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode) *FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig { if v == nil { @@ -13103,7 +13103,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesLookoutMetricsPtr } type FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig `pulumi:"errorHandlingConfig"` // Object specified in the flow destination. Object string `pulumi:"object"` @@ -13121,7 +13121,7 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoInput interfa } type FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoArgs struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigPtrInput `pulumi:"errorHandlingConfig"` // Object specified in the flow destination. Object pulumi.StringInput `pulumi:"object"` @@ -13222,7 +13222,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoOutput) To } } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo) *FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig { return v.ErrorHandlingConfig @@ -13264,7 +13264,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoPtrOutput) }).(FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoPtrOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo) *FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig { if v == nil { @@ -13490,9 +13490,9 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandl } type FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift struct { - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix *string `pulumi:"bucketPrefix"` - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig `pulumi:"errorHandlingConfig"` // Intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift. IntermediateBucketName string `pulumi:"intermediateBucketName"` @@ -13512,9 +13512,9 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftInput interf } type FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftArgs struct { - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix pulumi.StringPtrInput `pulumi:"bucketPrefix"` - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigPtrInput `pulumi:"errorHandlingConfig"` // Intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift. IntermediateBucketName pulumi.StringInput `pulumi:"intermediateBucketName"` @@ -13617,12 +13617,12 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftOutput) T } } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftOutput) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift) *string { return v.BucketPrefix }).(pulumi.StringPtrOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift) *FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig { return v.ErrorHandlingConfig @@ -13671,7 +13671,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftPtrOutput }).(FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftOutput) } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftPtrOutput) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift) *string { if v == nil { @@ -13681,7 +13681,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftPtrOutput }).(pulumi.StringPtrOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftPtrOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift) *FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig { if v == nil { @@ -13917,9 +13917,9 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHand } type FlowDestinationFlowConfigDestinationConnectorPropertiesS3 struct { - // Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + // Name of the Amazon S3 bucket. BucketName string `pulumi:"bucketName"` - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix *string `pulumi:"bucketPrefix"` // Configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination. See S3 Output Format Config for more details. S3OutputFormatConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfig `pulumi:"s3OutputFormatConfig"` @@ -13937,9 +13937,9 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesS3Input interface { } type FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args struct { - // Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + // Name of the Amazon S3 bucket. BucketName pulumi.StringInput `pulumi:"bucketName"` - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix pulumi.StringPtrInput `pulumi:"bucketPrefix"` // Configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination. See S3 Output Format Config for more details. S3OutputFormatConfig FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPtrInput `pulumi:"s3OutputFormatConfig"` @@ -14040,12 +14040,12 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesS3Output) ToOutpu } } -// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. +// Name of the Amazon S3 bucket. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesS3Output) BucketName() pulumi.StringOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesS3) string { return v.BucketName }).(pulumi.StringOutput) } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesS3Output) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesS3) *string { return v.BucketPrefix }).(pulumi.StringPtrOutput) } @@ -14087,7 +14087,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesS3PtrOutput) Elem }).(FlowDestinationFlowConfigDestinationConnectorPropertiesS3Output) } -// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. +// Name of the Amazon S3 bucket. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesS3PtrOutput) BucketName() pulumi.StringPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesS3) *string { if v == nil { @@ -14097,7 +14097,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesS3PtrOutput) Buck }).(pulumi.StringPtrOutput) } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesS3PtrOutput) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesS3) *string { if v == nil { @@ -14691,7 +14691,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatC } type FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig `pulumi:"errorHandlingConfig"` // Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. IdFieldNames []string `pulumi:"idFieldNames"` @@ -14713,7 +14713,7 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceInput inte } type FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigPtrInput `pulumi:"errorHandlingConfig"` // Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. IdFieldNames pulumi.StringArrayInput `pulumi:"idFieldNames"` @@ -14818,7 +14818,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceOutput) } } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce) *FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig { return v.ErrorHandlingConfig @@ -14874,7 +14874,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforcePtrOutp }).(FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforcePtrOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce) *FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig { if v == nil { @@ -15120,7 +15120,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHa } type FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig `pulumi:"errorHandlingConfig"` // Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. IdFieldNames []string `pulumi:"idFieldNames"` @@ -15144,7 +15144,7 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataInput interf } type FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataArgs struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigPtrInput `pulumi:"errorHandlingConfig"` // Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. IdFieldNames pulumi.StringArrayInput `pulumi:"idFieldNames"` @@ -15251,7 +15251,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataOutput) T } } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData) *FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig { return v.ErrorHandlingConfig @@ -15314,7 +15314,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataPtrOutput }).(FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataPtrOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData) *FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig { if v == nil { @@ -15754,9 +15754,9 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataSuccessRe } type FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake struct { - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix *string `pulumi:"bucketPrefix"` - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig `pulumi:"errorHandlingConfig"` // Intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift. IntermediateBucketName string `pulumi:"intermediateBucketName"` @@ -15776,9 +15776,9 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeInput inter } type FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeArgs struct { - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix pulumi.StringPtrInput `pulumi:"bucketPrefix"` - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigPtrInput `pulumi:"errorHandlingConfig"` // Intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift. IntermediateBucketName pulumi.StringInput `pulumi:"intermediateBucketName"` @@ -15881,14 +15881,14 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeOutput) } } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeOutput) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake) *string { return v.BucketPrefix }).(pulumi.StringPtrOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake) *FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig { return v.ErrorHandlingConfig @@ -15937,7 +15937,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakePtrOutpu }).(FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeOutput) } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakePtrOutput) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake) *string { if v == nil { @@ -15947,7 +15947,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakePtrOutpu }).(pulumi.StringPtrOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakePtrOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake) *FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig { if v == nil { @@ -16183,9 +16183,9 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHan } type FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver struct { - // Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + // Name of the Amazon S3 bucket. BucketName string `pulumi:"bucketName"` - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix *string `pulumi:"bucketPrefix"` // Configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination. See S3 Output Format Config for more details. S3OutputFormatConfig FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfig `pulumi:"s3OutputFormatConfig"` @@ -16203,9 +16203,9 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverInput interf } type FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs struct { - // Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + // Name of the Amazon S3 bucket. BucketName pulumi.StringInput `pulumi:"bucketName"` - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix pulumi.StringPtrInput `pulumi:"bucketPrefix"` // Configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination. See S3 Output Format Config for more details. S3OutputFormatConfig FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigInput `pulumi:"s3OutputFormatConfig"` @@ -16306,12 +16306,12 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverOutput) T } } -// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. +// Name of the Amazon S3 bucket. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverOutput) BucketName() pulumi.StringOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver) string { return v.BucketName }).(pulumi.StringOutput) } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverOutput) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver) *string { return v.BucketPrefix }).(pulumi.StringPtrOutput) } @@ -16353,7 +16353,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverPtrOutput }).(FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverOutput) } -// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. +// Name of the Amazon S3 bucket. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverPtrOutput) BucketName() pulumi.StringPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver) *string { if v == nil { @@ -16363,7 +16363,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverPtrOutput }).(pulumi.StringPtrOutput) } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverPtrOutput) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver) *string { if v == nil { @@ -16936,7 +16936,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputF } type FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig *FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig `pulumi:"errorHandlingConfig"` // Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. IdFieldNames []string `pulumi:"idFieldNames"` @@ -16958,7 +16958,7 @@ type FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskInput interfa } type FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs struct { - // Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + // Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. ErrorHandlingConfig FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigPtrInput `pulumi:"errorHandlingConfig"` // Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. IdFieldNames pulumi.StringArrayInput `pulumi:"idFieldNames"` @@ -17063,7 +17063,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskOutput) To } } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigPtrOutput { return o.ApplyT(func(v FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk) *FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig { return v.ErrorHandlingConfig @@ -17117,7 +17117,7 @@ func (o FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskPtrOutput) }).(FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskOutput) } -// Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. +// Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. func (o FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskPtrOutput) ErrorHandlingConfig() FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigPtrOutput { return o.ApplyT(func(v *FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk) *FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig { if v == nil { @@ -19391,9 +19391,9 @@ func (o FlowSourceFlowConfigSourceConnectorPropertiesMarketoPtrOutput) Object() } type FlowSourceFlowConfigSourceConnectorPropertiesS3 struct { - // Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + // Name of the Amazon S3 bucket. BucketName string `pulumi:"bucketName"` - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix *string `pulumi:"bucketPrefix"` // When you use Amazon S3 as the source, the configuration format that you provide the flow input data. See S3 Input Format Config for details. S3InputFormatConfig *FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfig `pulumi:"s3InputFormatConfig"` @@ -19411,9 +19411,9 @@ type FlowSourceFlowConfigSourceConnectorPropertiesS3Input interface { } type FlowSourceFlowConfigSourceConnectorPropertiesS3Args struct { - // Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + // Name of the Amazon S3 bucket. BucketName pulumi.StringInput `pulumi:"bucketName"` - // Object key for the bucket in which Amazon AppFlow places the destination files. + // Amazon S3 bucket prefix. BucketPrefix pulumi.StringPtrInput `pulumi:"bucketPrefix"` // When you use Amazon S3 as the source, the configuration format that you provide the flow input data. See S3 Input Format Config for details. S3InputFormatConfig FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfigPtrInput `pulumi:"s3InputFormatConfig"` @@ -19514,12 +19514,12 @@ func (o FlowSourceFlowConfigSourceConnectorPropertiesS3Output) ToOutput(ctx cont } } -// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. +// Name of the Amazon S3 bucket. func (o FlowSourceFlowConfigSourceConnectorPropertiesS3Output) BucketName() pulumi.StringOutput { return o.ApplyT(func(v FlowSourceFlowConfigSourceConnectorPropertiesS3) string { return v.BucketName }).(pulumi.StringOutput) } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowSourceFlowConfigSourceConnectorPropertiesS3Output) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v FlowSourceFlowConfigSourceConnectorPropertiesS3) *string { return v.BucketPrefix }).(pulumi.StringPtrOutput) } @@ -19561,7 +19561,7 @@ func (o FlowSourceFlowConfigSourceConnectorPropertiesS3PtrOutput) Elem() FlowSou }).(FlowSourceFlowConfigSourceConnectorPropertiesS3Output) } -// Amazon S3 bucket name in which Amazon AppFlow places the transferred data. +// Name of the Amazon S3 bucket. func (o FlowSourceFlowConfigSourceConnectorPropertiesS3PtrOutput) BucketName() pulumi.StringPtrOutput { return o.ApplyT(func(v *FlowSourceFlowConfigSourceConnectorPropertiesS3) *string { if v == nil { @@ -19571,7 +19571,7 @@ func (o FlowSourceFlowConfigSourceConnectorPropertiesS3PtrOutput) BucketName() p }).(pulumi.StringPtrOutput) } -// Object key for the bucket in which Amazon AppFlow places the destination files. +// Amazon S3 bucket prefix. func (o FlowSourceFlowConfigSourceConnectorPropertiesS3PtrOutput) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *FlowSourceFlowConfigSourceConnectorPropertiesS3) *string { if v == nil { diff --git a/sdk/go/aws/appmesh/pulumiTypes.go b/sdk/go/aws/appmesh/pulumiTypes.go index d1019017dd6..3e23255b3ae 100644 --- a/sdk/go/aws/appmesh/pulumiTypes.go +++ b/sdk/go/aws/appmesh/pulumiTypes.go @@ -917,7 +917,7 @@ func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput) VirtualSer } type GatewayRouteSpecGrpcRouteMatch struct { - // The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + // The port number to match from the request. Port *int `pulumi:"port"` // Fully qualified domain name for the service to match from the request. ServiceName string `pulumi:"serviceName"` @@ -935,7 +935,7 @@ type GatewayRouteSpecGrpcRouteMatchInput interface { } type GatewayRouteSpecGrpcRouteMatchArgs struct { - // The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + // The port number to match from the request. Port pulumi.IntPtrInput `pulumi:"port"` // Fully qualified domain name for the service to match from the request. ServiceName pulumi.StringInput `pulumi:"serviceName"` @@ -1036,7 +1036,7 @@ func (o GatewayRouteSpecGrpcRouteMatchOutput) ToOutput(ctx context.Context) pulu } } -// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. +// The port number to match from the request. func (o GatewayRouteSpecGrpcRouteMatchOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v GatewayRouteSpecGrpcRouteMatch) *int { return v.Port }).(pulumi.IntPtrOutput) } @@ -1076,7 +1076,7 @@ func (o GatewayRouteSpecGrpcRouteMatchPtrOutput) Elem() GatewayRouteSpecGrpcRout }).(GatewayRouteSpecGrpcRouteMatchOutput) } -// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. +// The port number to match from the request. func (o GatewayRouteSpecGrpcRouteMatchPtrOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecGrpcRouteMatch) *int { if v == nil { @@ -2509,13 +2509,13 @@ func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput) VirtualSe type GatewayRouteSpecHttp2RouteMatch struct { // Client request headers to match on. Headers []GatewayRouteSpecHttp2RouteMatchHeader `pulumi:"headers"` - // Host name to rewrite. + // Host name to match on. Hostname *GatewayRouteSpecHttp2RouteMatchHostname `pulumi:"hostname"` - // Exact path to rewrite. + // Client request path to match on. Path *GatewayRouteSpecHttp2RouteMatchPath `pulumi:"path"` - // The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + // The port number to match from the request. Port *int `pulumi:"port"` - // Specified beginning characters to rewrite. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` // Client request query parameters to match on. QueryParameters []GatewayRouteSpecHttp2RouteMatchQueryParameter `pulumi:"queryParameters"` @@ -2535,13 +2535,13 @@ type GatewayRouteSpecHttp2RouteMatchInput interface { type GatewayRouteSpecHttp2RouteMatchArgs struct { // Client request headers to match on. Headers GatewayRouteSpecHttp2RouteMatchHeaderArrayInput `pulumi:"headers"` - // Host name to rewrite. + // Host name to match on. Hostname GatewayRouteSpecHttp2RouteMatchHostnamePtrInput `pulumi:"hostname"` - // Exact path to rewrite. + // Client request path to match on. Path GatewayRouteSpecHttp2RouteMatchPathPtrInput `pulumi:"path"` - // The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + // The port number to match from the request. Port pulumi.IntPtrInput `pulumi:"port"` - // Specified beginning characters to rewrite. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` // Client request query parameters to match on. QueryParameters GatewayRouteSpecHttp2RouteMatchQueryParameterArrayInput `pulumi:"queryParameters"` @@ -2647,22 +2647,22 @@ func (o GatewayRouteSpecHttp2RouteMatchOutput) Headers() GatewayRouteSpecHttp2Ro return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatch) []GatewayRouteSpecHttp2RouteMatchHeader { return v.Headers }).(GatewayRouteSpecHttp2RouteMatchHeaderArrayOutput) } -// Host name to rewrite. +// Host name to match on. func (o GatewayRouteSpecHttp2RouteMatchOutput) Hostname() GatewayRouteSpecHttp2RouteMatchHostnamePtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatch) *GatewayRouteSpecHttp2RouteMatchHostname { return v.Hostname }).(GatewayRouteSpecHttp2RouteMatchHostnamePtrOutput) } -// Exact path to rewrite. +// Client request path to match on. func (o GatewayRouteSpecHttp2RouteMatchOutput) Path() GatewayRouteSpecHttp2RouteMatchPathPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatch) *GatewayRouteSpecHttp2RouteMatchPath { return v.Path }).(GatewayRouteSpecHttp2RouteMatchPathPtrOutput) } -// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. +// The port number to match from the request. func (o GatewayRouteSpecHttp2RouteMatchOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatch) *int { return v.Port }).(pulumi.IntPtrOutput) } -// Specified beginning characters to rewrite. +// Header value sent by the client must begin with the specified characters. func (o GatewayRouteSpecHttp2RouteMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } @@ -2714,7 +2714,7 @@ func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Headers() GatewayRouteSpecHttp }).(GatewayRouteSpecHttp2RouteMatchHeaderArrayOutput) } -// Host name to rewrite. +// Host name to match on. func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Hostname() GatewayRouteSpecHttp2RouteMatchHostnamePtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteMatch) *GatewayRouteSpecHttp2RouteMatchHostname { if v == nil { @@ -2724,7 +2724,7 @@ func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Hostname() GatewayRouteSpecHtt }).(GatewayRouteSpecHttp2RouteMatchHostnamePtrOutput) } -// Exact path to rewrite. +// Client request path to match on. func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Path() GatewayRouteSpecHttp2RouteMatchPathPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteMatch) *GatewayRouteSpecHttp2RouteMatchPath { if v == nil { @@ -2734,7 +2734,7 @@ func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Path() GatewayRouteSpecHttp2Ro }).(GatewayRouteSpecHttp2RouteMatchPathPtrOutput) } -// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. +// The port number to match from the request. func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteMatch) *int { if v == nil { @@ -2744,7 +2744,7 @@ func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Port() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// Specified beginning characters to rewrite. +// Header value sent by the client must begin with the specified characters. func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteMatch) *string { if v == nil { @@ -2906,9 +2906,9 @@ func (o GatewayRouteSpecHttp2RouteMatchHeaderArrayOutput) Index(i pulumi.IntInpu } type GatewayRouteSpecHttp2RouteMatchHeaderMatch struct { - // Value used to replace matched path. + // Header value sent by the client must match the specified value exactly. Exact *string `pulumi:"exact"` - // Specified beginning characters to rewrite. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` // Object that specifies the range of numbers that the header value sent by the client must be included in. Range *GatewayRouteSpecHttp2RouteMatchHeaderMatchRange `pulumi:"range"` @@ -2930,9 +2930,9 @@ type GatewayRouteSpecHttp2RouteMatchHeaderMatchInput interface { } type GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs struct { - // Value used to replace matched path. + // Header value sent by the client must match the specified value exactly. Exact pulumi.StringPtrInput `pulumi:"exact"` - // Specified beginning characters to rewrite. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` // Object that specifies the range of numbers that the header value sent by the client must be included in. Range GatewayRouteSpecHttp2RouteMatchHeaderMatchRangePtrInput `pulumi:"range"` @@ -3037,12 +3037,12 @@ func (o GatewayRouteSpecHttp2RouteMatchHeaderMatchOutput) ToOutput(ctx context.C } } -// Value used to replace matched path. +// Header value sent by the client must match the specified value exactly. func (o GatewayRouteSpecHttp2RouteMatchHeaderMatchOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) } -// Specified beginning characters to rewrite. +// Header value sent by the client must begin with the specified characters. func (o GatewayRouteSpecHttp2RouteMatchHeaderMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } @@ -3094,7 +3094,7 @@ func (o GatewayRouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Elem() GatewayRoute }).(GatewayRouteSpecHttp2RouteMatchHeaderMatchOutput) } -// Value used to replace matched path. +// Header value sent by the client must match the specified value exactly. func (o GatewayRouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteMatchHeaderMatch) *string { if v == nil { @@ -3104,7 +3104,7 @@ func (o GatewayRouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Exact() pulumi.Stri }).(pulumi.StringPtrOutput) } -// Specified beginning characters to rewrite. +// Header value sent by the client must begin with the specified characters. func (o GatewayRouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteMatchHeaderMatch) *string { if v == nil { @@ -3817,7 +3817,7 @@ func (o GatewayRouteSpecHttp2RouteMatchQueryParameterArrayOutput) Index(i pulumi } type GatewayRouteSpecHttp2RouteMatchQueryParameterMatch struct { - // Value used to replace matched path. + // Header value sent by the client must match the specified value exactly. Exact *string `pulumi:"exact"` } @@ -3833,7 +3833,7 @@ type GatewayRouteSpecHttp2RouteMatchQueryParameterMatchInput interface { } type GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs struct { - // Value used to replace matched path. + // Header value sent by the client must match the specified value exactly. Exact pulumi.StringPtrInput `pulumi:"exact"` } @@ -3932,7 +3932,7 @@ func (o GatewayRouteSpecHttp2RouteMatchQueryParameterMatchOutput) ToOutput(ctx c } } -// Value used to replace matched path. +// Header value sent by the client must match the specified value exactly. func (o GatewayRouteSpecHttp2RouteMatchQueryParameterMatchOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatchQueryParameterMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) } @@ -3967,7 +3967,7 @@ func (o GatewayRouteSpecHttp2RouteMatchQueryParameterMatchPtrOutput) Elem() Gate }).(GatewayRouteSpecHttp2RouteMatchQueryParameterMatchOutput) } -// Value used to replace matched path. +// Header value sent by the client must match the specified value exactly. func (o GatewayRouteSpecHttp2RouteMatchQueryParameterMatchPtrOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteMatchQueryParameterMatch) *string { if v == nil { @@ -5390,13 +5390,13 @@ func (o GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput) VirtualSer type GatewayRouteSpecHttpRouteMatch struct { // Client request headers to match on. Headers []GatewayRouteSpecHttpRouteMatchHeader `pulumi:"headers"` - // Host name to rewrite. + // Host name to match on. Hostname *GatewayRouteSpecHttpRouteMatchHostname `pulumi:"hostname"` - // Exact path to rewrite. + // Client request path to match on. Path *GatewayRouteSpecHttpRouteMatchPath `pulumi:"path"` - // The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + // The port number to match from the request. Port *int `pulumi:"port"` - // Specified beginning characters to rewrite. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` // Client request query parameters to match on. QueryParameters []GatewayRouteSpecHttpRouteMatchQueryParameter `pulumi:"queryParameters"` @@ -5416,13 +5416,13 @@ type GatewayRouteSpecHttpRouteMatchInput interface { type GatewayRouteSpecHttpRouteMatchArgs struct { // Client request headers to match on. Headers GatewayRouteSpecHttpRouteMatchHeaderArrayInput `pulumi:"headers"` - // Host name to rewrite. + // Host name to match on. Hostname GatewayRouteSpecHttpRouteMatchHostnamePtrInput `pulumi:"hostname"` - // Exact path to rewrite. + // Client request path to match on. Path GatewayRouteSpecHttpRouteMatchPathPtrInput `pulumi:"path"` - // The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + // The port number to match from the request. Port pulumi.IntPtrInput `pulumi:"port"` - // Specified beginning characters to rewrite. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` // Client request query parameters to match on. QueryParameters GatewayRouteSpecHttpRouteMatchQueryParameterArrayInput `pulumi:"queryParameters"` @@ -5528,22 +5528,22 @@ func (o GatewayRouteSpecHttpRouteMatchOutput) Headers() GatewayRouteSpecHttpRout return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatch) []GatewayRouteSpecHttpRouteMatchHeader { return v.Headers }).(GatewayRouteSpecHttpRouteMatchHeaderArrayOutput) } -// Host name to rewrite. +// Host name to match on. func (o GatewayRouteSpecHttpRouteMatchOutput) Hostname() GatewayRouteSpecHttpRouteMatchHostnamePtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatch) *GatewayRouteSpecHttpRouteMatchHostname { return v.Hostname }).(GatewayRouteSpecHttpRouteMatchHostnamePtrOutput) } -// Exact path to rewrite. +// Client request path to match on. func (o GatewayRouteSpecHttpRouteMatchOutput) Path() GatewayRouteSpecHttpRouteMatchPathPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatch) *GatewayRouteSpecHttpRouteMatchPath { return v.Path }).(GatewayRouteSpecHttpRouteMatchPathPtrOutput) } -// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. +// The port number to match from the request. func (o GatewayRouteSpecHttpRouteMatchOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatch) *int { return v.Port }).(pulumi.IntPtrOutput) } -// Specified beginning characters to rewrite. +// Header value sent by the client must begin with the specified characters. func (o GatewayRouteSpecHttpRouteMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } @@ -5595,7 +5595,7 @@ func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Headers() GatewayRouteSpecHttpR }).(GatewayRouteSpecHttpRouteMatchHeaderArrayOutput) } -// Host name to rewrite. +// Host name to match on. func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Hostname() GatewayRouteSpecHttpRouteMatchHostnamePtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttpRouteMatch) *GatewayRouteSpecHttpRouteMatchHostname { if v == nil { @@ -5605,7 +5605,7 @@ func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Hostname() GatewayRouteSpecHttp }).(GatewayRouteSpecHttpRouteMatchHostnamePtrOutput) } -// Exact path to rewrite. +// Client request path to match on. func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Path() GatewayRouteSpecHttpRouteMatchPathPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttpRouteMatch) *GatewayRouteSpecHttpRouteMatchPath { if v == nil { @@ -5615,7 +5615,7 @@ func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Path() GatewayRouteSpecHttpRout }).(GatewayRouteSpecHttpRouteMatchPathPtrOutput) } -// The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. +// The port number to match from the request. func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttpRouteMatch) *int { if v == nil { @@ -5625,7 +5625,7 @@ func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Port() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// Specified beginning characters to rewrite. +// Header value sent by the client must begin with the specified characters. func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttpRouteMatch) *string { if v == nil { @@ -5787,9 +5787,9 @@ func (o GatewayRouteSpecHttpRouteMatchHeaderArrayOutput) Index(i pulumi.IntInput } type GatewayRouteSpecHttpRouteMatchHeaderMatch struct { - // Value used to replace matched path. + // Header value sent by the client must match the specified value exactly. Exact *string `pulumi:"exact"` - // Specified beginning characters to rewrite. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` // Object that specifies the range of numbers that the header value sent by the client must be included in. Range *GatewayRouteSpecHttpRouteMatchHeaderMatchRange `pulumi:"range"` @@ -5811,9 +5811,9 @@ type GatewayRouteSpecHttpRouteMatchHeaderMatchInput interface { } type GatewayRouteSpecHttpRouteMatchHeaderMatchArgs struct { - // Value used to replace matched path. + // Header value sent by the client must match the specified value exactly. Exact pulumi.StringPtrInput `pulumi:"exact"` - // Specified beginning characters to rewrite. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` // Object that specifies the range of numbers that the header value sent by the client must be included in. Range GatewayRouteSpecHttpRouteMatchHeaderMatchRangePtrInput `pulumi:"range"` @@ -5918,12 +5918,12 @@ func (o GatewayRouteSpecHttpRouteMatchHeaderMatchOutput) ToOutput(ctx context.Co } } -// Value used to replace matched path. +// Header value sent by the client must match the specified value exactly. func (o GatewayRouteSpecHttpRouteMatchHeaderMatchOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatchHeaderMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) } -// Specified beginning characters to rewrite. +// Header value sent by the client must begin with the specified characters. func (o GatewayRouteSpecHttpRouteMatchHeaderMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatchHeaderMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } @@ -5975,7 +5975,7 @@ func (o GatewayRouteSpecHttpRouteMatchHeaderMatchPtrOutput) Elem() GatewayRouteS }).(GatewayRouteSpecHttpRouteMatchHeaderMatchOutput) } -// Value used to replace matched path. +// Header value sent by the client must match the specified value exactly. func (o GatewayRouteSpecHttpRouteMatchHeaderMatchPtrOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttpRouteMatchHeaderMatch) *string { if v == nil { @@ -5985,7 +5985,7 @@ func (o GatewayRouteSpecHttpRouteMatchHeaderMatchPtrOutput) Exact() pulumi.Strin }).(pulumi.StringPtrOutput) } -// Specified beginning characters to rewrite. +// Header value sent by the client must begin with the specified characters. func (o GatewayRouteSpecHttpRouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttpRouteMatchHeaderMatch) *string { if v == nil { @@ -6698,7 +6698,7 @@ func (o GatewayRouteSpecHttpRouteMatchQueryParameterArrayOutput) Index(i pulumi. } type GatewayRouteSpecHttpRouteMatchQueryParameterMatch struct { - // Value used to replace matched path. + // Header value sent by the client must match the specified value exactly. Exact *string `pulumi:"exact"` } @@ -6714,7 +6714,7 @@ type GatewayRouteSpecHttpRouteMatchQueryParameterMatchInput interface { } type GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs struct { - // Value used to replace matched path. + // Header value sent by the client must match the specified value exactly. Exact pulumi.StringPtrInput `pulumi:"exact"` } @@ -6813,7 +6813,7 @@ func (o GatewayRouteSpecHttpRouteMatchQueryParameterMatchOutput) ToOutput(ctx co } } -// Value used to replace matched path. +// Header value sent by the client must match the specified value exactly. func (o GatewayRouteSpecHttpRouteMatchQueryParameterMatchOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatchQueryParameterMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) } @@ -6848,7 +6848,7 @@ func (o GatewayRouteSpecHttpRouteMatchQueryParameterMatchPtrOutput) Elem() Gatew }).(GatewayRouteSpecHttpRouteMatchQueryParameterMatchOutput) } -// Value used to replace matched path. +// Header value sent by the client must match the specified value exactly. func (o GatewayRouteSpecHttpRouteMatchQueryParameterMatchPtrOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v *GatewayRouteSpecHttpRouteMatchQueryParameterMatch) *string { if v == nil { @@ -7954,8 +7954,7 @@ type RouteSpecGrpcRouteMatch struct { MethodName *string `pulumi:"methodName"` // The port number to match from the request. Port *int `pulumi:"port"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` // Fully qualified domain name for the service to match from the request. ServiceName *string `pulumi:"serviceName"` @@ -7979,8 +7978,7 @@ type RouteSpecGrpcRouteMatchArgs struct { MethodName pulumi.StringPtrInput `pulumi:"methodName"` // The port number to match from the request. Port pulumi.IntPtrInput `pulumi:"port"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` // Fully qualified domain name for the service to match from the request. ServiceName pulumi.StringPtrInput `pulumi:"serviceName"` @@ -8096,8 +8094,7 @@ func (o RouteSpecGrpcRouteMatchOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *int { return v.Port }).(pulumi.IntPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecGrpcRouteMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } @@ -8167,8 +8164,7 @@ func (o RouteSpecGrpcRouteMatchPtrOutput) Port() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecGrpcRouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) *string { if v == nil { @@ -8330,14 +8326,13 @@ func (o RouteSpecGrpcRouteMatchMetadataArrayOutput) Index(i pulumi.IntInput) Rou type RouteSpecGrpcRouteMatchMetadataMatch struct { // The exact path to match on. Exact *string `pulumi:"exact"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` - // Object that specifies the range of numbers that the value sent by the client must be included in. + // Object that specifies the range of numbers that the header value sent by the client must be included in. Range *RouteSpecGrpcRouteMatchMetadataMatchRange `pulumi:"range"` // The regex used to match the path. Regex *string `pulumi:"regex"` - // Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must end with the specified characters. Suffix *string `pulumi:"suffix"` } @@ -8355,14 +8350,13 @@ type RouteSpecGrpcRouteMatchMetadataMatchInput interface { type RouteSpecGrpcRouteMatchMetadataMatchArgs struct { // The exact path to match on. Exact pulumi.StringPtrInput `pulumi:"exact"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` - // Object that specifies the range of numbers that the value sent by the client must be included in. + // Object that specifies the range of numbers that the header value sent by the client must be included in. Range RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput `pulumi:"range"` // The regex used to match the path. Regex pulumi.StringPtrInput `pulumi:"regex"` - // Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must end with the specified characters. Suffix pulumi.StringPtrInput `pulumi:"suffix"` } @@ -8466,13 +8460,12 @@ func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Exact() pulumi.StringPtrOutp return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// Object that specifies the range of numbers that the value sent by the client must be included in. +// Object that specifies the range of numbers that the header value sent by the client must be included in. func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Range() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *RouteSpecGrpcRouteMatchMetadataMatchRange { return v.Range @@ -8484,7 +8477,7 @@ func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Regex() pulumi.StringPtrOutp return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Regex }).(pulumi.StringPtrOutput) } -// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must end with the specified characters. func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Suffix() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Suffix }).(pulumi.StringPtrOutput) } @@ -8529,8 +8522,7 @@ func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Exact() pulumi.StringPtrO }).(pulumi.StringPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { if v == nil { @@ -8540,7 +8532,7 @@ func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Prefix() pulumi.StringPtr }).(pulumi.StringPtrOutput) } -// Object that specifies the range of numbers that the value sent by the client must be included in. +// Object that specifies the range of numbers that the header value sent by the client must be included in. func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Range() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *RouteSpecGrpcRouteMatchMetadataMatchRange { if v == nil { @@ -8560,7 +8552,7 @@ func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Regex() pulumi.StringPtrO }).(pulumi.StringPtrOutput) } -// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must end with the specified characters. func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Suffix() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { if v == nil { @@ -8756,15 +8748,12 @@ type RouteSpecGrpcRouteRetryPolicy struct { GrpcRetryEvents []string `pulumi:"grpcRetryEvents"` // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). HttpRetryEvents []string `pulumi:"httpRetryEvents"` // Maximum number of retries. MaxRetries int `pulumi:"maxRetries"` // Per-retry timeout. PerRetryTimeout RouteSpecGrpcRouteRetryPolicyPerRetryTimeout `pulumi:"perRetryTimeout"` // List of TCP retry events. The only valid value is `connection-error`. - // - // You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. TcpRetryEvents []string `pulumi:"tcpRetryEvents"` } @@ -8785,15 +8774,12 @@ type RouteSpecGrpcRouteRetryPolicyArgs struct { GrpcRetryEvents pulumi.StringArrayInput `pulumi:"grpcRetryEvents"` // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). HttpRetryEvents pulumi.StringArrayInput `pulumi:"httpRetryEvents"` // Maximum number of retries. MaxRetries pulumi.IntInput `pulumi:"maxRetries"` // Per-retry timeout. PerRetryTimeout RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutInput `pulumi:"perRetryTimeout"` // List of TCP retry events. The only valid value is `connection-error`. - // - // You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. TcpRetryEvents pulumi.StringArrayInput `pulumi:"tcpRetryEvents"` } @@ -8900,7 +8886,6 @@ func (o RouteSpecGrpcRouteRetryPolicyOutput) GrpcRetryEvents() pulumi.StringArra // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). func (o RouteSpecGrpcRouteRetryPolicyOutput) HttpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) []string { return v.HttpRetryEvents }).(pulumi.StringArrayOutput) } @@ -8918,8 +8903,6 @@ func (o RouteSpecGrpcRouteRetryPolicyOutput) PerRetryTimeout() RouteSpecGrpcRout } // List of TCP retry events. The only valid value is `connection-error`. -// -// You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. func (o RouteSpecGrpcRouteRetryPolicyOutput) TcpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) []string { return v.TcpRetryEvents }).(pulumi.StringArrayOutput) } @@ -8967,7 +8950,6 @@ func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) GrpcRetryEvents() pulumi.StringA // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) HttpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) []string { if v == nil { @@ -8998,8 +8980,6 @@ func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) PerRetryTimeout() RouteSpecGrpcR } // List of TCP retry events. The only valid value is `connection-error`. -// -// You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) TcpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) []string { if v == nil { @@ -10260,8 +10240,7 @@ type RouteSpecHttp2RouteMatch struct { Path *RouteSpecHttp2RouteMatchPath `pulumi:"path"` // The port number to match from the request. Port *int `pulumi:"port"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` // Client request query parameters to match on. QueryParameters []RouteSpecHttp2RouteMatchQueryParameter `pulumi:"queryParameters"` @@ -10289,8 +10268,7 @@ type RouteSpecHttp2RouteMatchArgs struct { Path RouteSpecHttp2RouteMatchPathPtrInput `pulumi:"path"` // The port number to match from the request. Port pulumi.IntPtrInput `pulumi:"port"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` // Client request query parameters to match on. QueryParameters RouteSpecHttp2RouteMatchQueryParameterArrayInput `pulumi:"queryParameters"` @@ -10413,8 +10391,7 @@ func (o RouteSpecHttp2RouteMatchOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v RouteSpecHttp2RouteMatch) *int { return v.Port }).(pulumi.IntPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecHttp2RouteMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttp2RouteMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } @@ -10499,8 +10476,7 @@ func (o RouteSpecHttp2RouteMatchPtrOutput) Port() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecHttp2RouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) *string { if v == nil { @@ -10672,14 +10648,13 @@ func (o RouteSpecHttp2RouteMatchHeaderArrayOutput) Index(i pulumi.IntInput) Rout type RouteSpecHttp2RouteMatchHeaderMatch struct { // The exact path to match on. Exact *string `pulumi:"exact"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` - // Object that specifies the range of numbers that the value sent by the client must be included in. + // Object that specifies the range of numbers that the header value sent by the client must be included in. Range *RouteSpecHttp2RouteMatchHeaderMatchRange `pulumi:"range"` // The regex used to match the path. Regex *string `pulumi:"regex"` - // Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must end with the specified characters. Suffix *string `pulumi:"suffix"` } @@ -10697,14 +10672,13 @@ type RouteSpecHttp2RouteMatchHeaderMatchInput interface { type RouteSpecHttp2RouteMatchHeaderMatchArgs struct { // The exact path to match on. Exact pulumi.StringPtrInput `pulumi:"exact"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` - // Object that specifies the range of numbers that the value sent by the client must be included in. + // Object that specifies the range of numbers that the header value sent by the client must be included in. Range RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput `pulumi:"range"` // The regex used to match the path. Regex pulumi.StringPtrInput `pulumi:"regex"` - // Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must end with the specified characters. Suffix pulumi.StringPtrInput `pulumi:"suffix"` } @@ -10808,13 +10782,12 @@ func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Exact() pulumi.StringPtrOutpu return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// Object that specifies the range of numbers that the value sent by the client must be included in. +// Object that specifies the range of numbers that the header value sent by the client must be included in. func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Range() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *RouteSpecHttp2RouteMatchHeaderMatchRange { return v.Range }).(RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) } @@ -10824,7 +10797,7 @@ func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Regex() pulumi.StringPtrOutpu return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Regex }).(pulumi.StringPtrOutput) } -// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must end with the specified characters. func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Suffix() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Suffix }).(pulumi.StringPtrOutput) } @@ -10869,8 +10842,7 @@ func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Exact() pulumi.StringPtrOu }).(pulumi.StringPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { if v == nil { @@ -10880,7 +10852,7 @@ func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrO }).(pulumi.StringPtrOutput) } -// Object that specifies the range of numbers that the value sent by the client must be included in. +// Object that specifies the range of numbers that the header value sent by the client must be included in. func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Range() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *RouteSpecHttp2RouteMatchHeaderMatchRange { if v == nil { @@ -10900,7 +10872,7 @@ func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Regex() pulumi.StringPtrOu }).(pulumi.StringPtrOutput) } -// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must end with the specified characters. func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Suffix() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { if v == nil { @@ -11091,9 +11063,9 @@ func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) Start() pulumi.IntPtr } type RouteSpecHttp2RouteMatchPath struct { - // Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + // Header value sent by the client must match the specified value exactly. Exact *string `pulumi:"exact"` - // Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must include the specified characters. Regex *string `pulumi:"regex"` } @@ -11109,9 +11081,9 @@ type RouteSpecHttp2RouteMatchPathInput interface { } type RouteSpecHttp2RouteMatchPathArgs struct { - // Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + // Header value sent by the client must match the specified value exactly. Exact pulumi.StringPtrInput `pulumi:"exact"` - // Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must include the specified characters. Regex pulumi.StringPtrInput `pulumi:"regex"` } @@ -11210,12 +11182,12 @@ func (o RouteSpecHttp2RouteMatchPathOutput) ToOutput(ctx context.Context) pulumi } } -// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. +// Header value sent by the client must match the specified value exactly. func (o RouteSpecHttp2RouteMatchPathOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttp2RouteMatchPath) *string { return v.Exact }).(pulumi.StringPtrOutput) } -// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must include the specified characters. func (o RouteSpecHttp2RouteMatchPathOutput) Regex() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttp2RouteMatchPath) *string { return v.Regex }).(pulumi.StringPtrOutput) } @@ -11250,7 +11222,7 @@ func (o RouteSpecHttp2RouteMatchPathPtrOutput) Elem() RouteSpecHttp2RouteMatchPa }).(RouteSpecHttp2RouteMatchPathOutput) } -// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. +// Header value sent by the client must match the specified value exactly. func (o RouteSpecHttp2RouteMatchPathPtrOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttp2RouteMatchPath) *string { if v == nil { @@ -11260,7 +11232,7 @@ func (o RouteSpecHttp2RouteMatchPathPtrOutput) Exact() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must include the specified characters. func (o RouteSpecHttp2RouteMatchPathPtrOutput) Regex() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttp2RouteMatchPath) *string { if v == nil { @@ -11566,15 +11538,12 @@ func (o RouteSpecHttp2RouteMatchQueryParameterMatchPtrOutput) Exact() pulumi.Str type RouteSpecHttp2RouteRetryPolicy struct { // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). HttpRetryEvents []string `pulumi:"httpRetryEvents"` // Maximum number of retries. MaxRetries int `pulumi:"maxRetries"` // Per-retry timeout. PerRetryTimeout RouteSpecHttp2RouteRetryPolicyPerRetryTimeout `pulumi:"perRetryTimeout"` // List of TCP retry events. The only valid value is `connection-error`. - // - // You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. TcpRetryEvents []string `pulumi:"tcpRetryEvents"` } @@ -11592,15 +11561,12 @@ type RouteSpecHttp2RouteRetryPolicyInput interface { type RouteSpecHttp2RouteRetryPolicyArgs struct { // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). HttpRetryEvents pulumi.StringArrayInput `pulumi:"httpRetryEvents"` // Maximum number of retries. MaxRetries pulumi.IntInput `pulumi:"maxRetries"` // Per-retry timeout. PerRetryTimeout RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutInput `pulumi:"perRetryTimeout"` // List of TCP retry events. The only valid value is `connection-error`. - // - // You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. TcpRetryEvents pulumi.StringArrayInput `pulumi:"tcpRetryEvents"` } @@ -11701,7 +11667,6 @@ func (o RouteSpecHttp2RouteRetryPolicyOutput) ToOutput(ctx context.Context) pulu // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). func (o RouteSpecHttp2RouteRetryPolicyOutput) HttpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) []string { return v.HttpRetryEvents }).(pulumi.StringArrayOutput) } @@ -11719,8 +11684,6 @@ func (o RouteSpecHttp2RouteRetryPolicyOutput) PerRetryTimeout() RouteSpecHttp2Ro } // List of TCP retry events. The only valid value is `connection-error`. -// -// You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. func (o RouteSpecHttp2RouteRetryPolicyOutput) TcpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) []string { return v.TcpRetryEvents }).(pulumi.StringArrayOutput) } @@ -11757,7 +11720,6 @@ func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) Elem() RouteSpecHttp2RouteRetry // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) HttpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) []string { if v == nil { @@ -11788,8 +11750,6 @@ func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) PerRetryTimeout() RouteSpecHttp } // List of TCP retry events. The only valid value is `connection-error`. -// -// You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) TcpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) []string { if v == nil { @@ -13050,8 +13010,7 @@ type RouteSpecHttpRouteMatch struct { Path *RouteSpecHttpRouteMatchPath `pulumi:"path"` // The port number to match from the request. Port *int `pulumi:"port"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` // Client request query parameters to match on. QueryParameters []RouteSpecHttpRouteMatchQueryParameter `pulumi:"queryParameters"` @@ -13079,8 +13038,7 @@ type RouteSpecHttpRouteMatchArgs struct { Path RouteSpecHttpRouteMatchPathPtrInput `pulumi:"path"` // The port number to match from the request. Port pulumi.IntPtrInput `pulumi:"port"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` // Client request query parameters to match on. QueryParameters RouteSpecHttpRouteMatchQueryParameterArrayInput `pulumi:"queryParameters"` @@ -13203,8 +13161,7 @@ func (o RouteSpecHttpRouteMatchOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v RouteSpecHttpRouteMatch) *int { return v.Port }).(pulumi.IntPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecHttpRouteMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttpRouteMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } @@ -13289,8 +13246,7 @@ func (o RouteSpecHttpRouteMatchPtrOutput) Port() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecHttpRouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttpRouteMatch) *string { if v == nil { @@ -13462,14 +13418,13 @@ func (o RouteSpecHttpRouteMatchHeaderArrayOutput) Index(i pulumi.IntInput) Route type RouteSpecHttpRouteMatchHeaderMatch struct { // The exact path to match on. Exact *string `pulumi:"exact"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix *string `pulumi:"prefix"` - // Object that specifies the range of numbers that the value sent by the client must be included in. + // Object that specifies the range of numbers that the header value sent by the client must be included in. Range *RouteSpecHttpRouteMatchHeaderMatchRange `pulumi:"range"` // The regex used to match the path. Regex *string `pulumi:"regex"` - // Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must end with the specified characters. Suffix *string `pulumi:"suffix"` } @@ -13487,14 +13442,13 @@ type RouteSpecHttpRouteMatchHeaderMatchInput interface { type RouteSpecHttpRouteMatchHeaderMatchArgs struct { // The exact path to match on. Exact pulumi.StringPtrInput `pulumi:"exact"` - // Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + // Header value sent by the client must begin with the specified characters. Prefix pulumi.StringPtrInput `pulumi:"prefix"` - // Object that specifies the range of numbers that the value sent by the client must be included in. + // Object that specifies the range of numbers that the header value sent by the client must be included in. Range RouteSpecHttpRouteMatchHeaderMatchRangePtrInput `pulumi:"range"` // The regex used to match the path. Regex pulumi.StringPtrInput `pulumi:"regex"` - // Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must end with the specified characters. Suffix pulumi.StringPtrInput `pulumi:"suffix"` } @@ -13598,13 +13552,12 @@ func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Exact() pulumi.StringPtrOutput return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// Object that specifies the range of numbers that the value sent by the client must be included in. +// Object that specifies the range of numbers that the header value sent by the client must be included in. func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Range() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *RouteSpecHttpRouteMatchHeaderMatchRange { return v.Range }).(RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) } @@ -13614,7 +13567,7 @@ func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Regex() pulumi.StringPtrOutput return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Regex }).(pulumi.StringPtrOutput) } -// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must end with the specified characters. func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Suffix() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Suffix }).(pulumi.StringPtrOutput) } @@ -13659,8 +13612,7 @@ func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Exact() pulumi.StringPtrOut }).(pulumi.StringPtrOutput) } -// Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +// Header value sent by the client must begin with the specified characters. func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { if v == nil { @@ -13670,7 +13622,7 @@ func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrOu }).(pulumi.StringPtrOutput) } -// Object that specifies the range of numbers that the value sent by the client must be included in. +// Object that specifies the range of numbers that the header value sent by the client must be included in. func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Range() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *RouteSpecHttpRouteMatchHeaderMatchRange { if v == nil { @@ -13690,7 +13642,7 @@ func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Regex() pulumi.StringPtrOut }).(pulumi.StringPtrOutput) } -// Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must end with the specified characters. func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Suffix() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { if v == nil { @@ -13881,9 +13833,9 @@ func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) Start() pulumi.IntPtrO } type RouteSpecHttpRouteMatchPath struct { - // Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + // Header value sent by the client must match the specified value exactly. Exact *string `pulumi:"exact"` - // Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must include the specified characters. Regex *string `pulumi:"regex"` } @@ -13899,9 +13851,9 @@ type RouteSpecHttpRouteMatchPathInput interface { } type RouteSpecHttpRouteMatchPathArgs struct { - // Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + // Header value sent by the client must match the specified value exactly. Exact pulumi.StringPtrInput `pulumi:"exact"` - // Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + // Header value sent by the client must include the specified characters. Regex pulumi.StringPtrInput `pulumi:"regex"` } @@ -14000,12 +13952,12 @@ func (o RouteSpecHttpRouteMatchPathOutput) ToOutput(ctx context.Context) pulumix } } -// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. +// Header value sent by the client must match the specified value exactly. func (o RouteSpecHttpRouteMatchPathOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttpRouteMatchPath) *string { return v.Exact }).(pulumi.StringPtrOutput) } -// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must include the specified characters. func (o RouteSpecHttpRouteMatchPathOutput) Regex() pulumi.StringPtrOutput { return o.ApplyT(func(v RouteSpecHttpRouteMatchPath) *string { return v.Regex }).(pulumi.StringPtrOutput) } @@ -14040,7 +13992,7 @@ func (o RouteSpecHttpRouteMatchPathPtrOutput) Elem() RouteSpecHttpRouteMatchPath }).(RouteSpecHttpRouteMatchPathOutput) } -// Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. +// Header value sent by the client must match the specified value exactly. func (o RouteSpecHttpRouteMatchPathPtrOutput) Exact() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttpRouteMatchPath) *string { if v == nil { @@ -14050,7 +14002,7 @@ func (o RouteSpecHttpRouteMatchPathPtrOutput) Exact() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. +// Header value sent by the client must include the specified characters. func (o RouteSpecHttpRouteMatchPathPtrOutput) Regex() pulumi.StringPtrOutput { return o.ApplyT(func(v *RouteSpecHttpRouteMatchPath) *string { if v == nil { @@ -14356,15 +14308,12 @@ func (o RouteSpecHttpRouteMatchQueryParameterMatchPtrOutput) Exact() pulumi.Stri type RouteSpecHttpRouteRetryPolicy struct { // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). HttpRetryEvents []string `pulumi:"httpRetryEvents"` // Maximum number of retries. MaxRetries int `pulumi:"maxRetries"` // Per-retry timeout. PerRetryTimeout RouteSpecHttpRouteRetryPolicyPerRetryTimeout `pulumi:"perRetryTimeout"` // List of TCP retry events. The only valid value is `connection-error`. - // - // You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. TcpRetryEvents []string `pulumi:"tcpRetryEvents"` } @@ -14382,15 +14331,12 @@ type RouteSpecHttpRouteRetryPolicyInput interface { type RouteSpecHttpRouteRetryPolicyArgs struct { // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). HttpRetryEvents pulumi.StringArrayInput `pulumi:"httpRetryEvents"` // Maximum number of retries. MaxRetries pulumi.IntInput `pulumi:"maxRetries"` // Per-retry timeout. PerRetryTimeout RouteSpecHttpRouteRetryPolicyPerRetryTimeoutInput `pulumi:"perRetryTimeout"` // List of TCP retry events. The only valid value is `connection-error`. - // - // You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. TcpRetryEvents pulumi.StringArrayInput `pulumi:"tcpRetryEvents"` } @@ -14491,7 +14437,6 @@ func (o RouteSpecHttpRouteRetryPolicyOutput) ToOutput(ctx context.Context) pulum // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). func (o RouteSpecHttpRouteRetryPolicyOutput) HttpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) []string { return v.HttpRetryEvents }).(pulumi.StringArrayOutput) } @@ -14509,8 +14454,6 @@ func (o RouteSpecHttpRouteRetryPolicyOutput) PerRetryTimeout() RouteSpecHttpRout } // List of TCP retry events. The only valid value is `connection-error`. -// -// You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. func (o RouteSpecHttpRouteRetryPolicyOutput) TcpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) []string { return v.TcpRetryEvents }).(pulumi.StringArrayOutput) } @@ -14547,7 +14490,6 @@ func (o RouteSpecHttpRouteRetryPolicyPtrOutput) Elem() RouteSpecHttpRouteRetryPo // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). func (o RouteSpecHttpRouteRetryPolicyPtrOutput) HttpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) []string { if v == nil { @@ -14578,8 +14520,6 @@ func (o RouteSpecHttpRouteRetryPolicyPtrOutput) PerRetryTimeout() RouteSpecHttpR } // List of TCP retry events. The only valid value is `connection-error`. -// -// You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. func (o RouteSpecHttpRouteRetryPolicyPtrOutput) TcpRetryEvents() pulumi.StringArrayOutput { return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) []string { if v == nil { @@ -29176,7 +29116,7 @@ func (o VirtualNodeSpecListenerOutlierDetectionBaseEjectionDurationPtrOutput) Va type VirtualNodeSpecListenerOutlierDetectionInterval struct { // Unit of time. Valid values: `ms`, `s`. Unit string `pulumi:"unit"` - // The specified value for the JSON. Must be between 1 and 100 characters in length. + // Number of time units. Minimum value of `0`. Value int `pulumi:"value"` } @@ -29194,7 +29134,7 @@ type VirtualNodeSpecListenerOutlierDetectionIntervalInput interface { type VirtualNodeSpecListenerOutlierDetectionIntervalArgs struct { // Unit of time. Valid values: `ms`, `s`. Unit pulumi.StringInput `pulumi:"unit"` - // The specified value for the JSON. Must be between 1 and 100 characters in length. + // Number of time units. Minimum value of `0`. Value pulumi.IntInput `pulumi:"value"` } @@ -29298,7 +29238,7 @@ func (o VirtualNodeSpecListenerOutlierDetectionIntervalOutput) Unit() pulumi.Str return o.ApplyT(func(v VirtualNodeSpecListenerOutlierDetectionInterval) string { return v.Unit }).(pulumi.StringOutput) } -// The specified value for the JSON. Must be between 1 and 100 characters in length. +// Number of time units. Minimum value of `0`. func (o VirtualNodeSpecListenerOutlierDetectionIntervalOutput) Value() pulumi.IntOutput { return o.ApplyT(func(v VirtualNodeSpecListenerOutlierDetectionInterval) int { return v.Value }).(pulumi.IntOutput) } @@ -29343,7 +29283,7 @@ func (o VirtualNodeSpecListenerOutlierDetectionIntervalPtrOutput) Unit() pulumi. }).(pulumi.StringPtrOutput) } -// The specified value for the JSON. Must be between 1 and 100 characters in length. +// Number of time units. Minimum value of `0`. func (o VirtualNodeSpecListenerOutlierDetectionIntervalPtrOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v *VirtualNodeSpecListenerOutlierDetectionInterval) *int { if v == nil { @@ -30009,7 +29949,7 @@ func (o VirtualNodeSpecListenerTimeoutGrpcIdlePtrOutput) Value() pulumi.IntPtrOu type VirtualNodeSpecListenerTimeoutGrpcPerRequest struct { // Unit of time. Valid values: `ms`, `s`. Unit string `pulumi:"unit"` - // The specified value for the JSON. Must be between 1 and 100 characters in length. + // Number of time units. Minimum value of `0`. Value int `pulumi:"value"` } @@ -30027,7 +29967,7 @@ type VirtualNodeSpecListenerTimeoutGrpcPerRequestInput interface { type VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs struct { // Unit of time. Valid values: `ms`, `s`. Unit pulumi.StringInput `pulumi:"unit"` - // The specified value for the JSON. Must be between 1 and 100 characters in length. + // Number of time units. Minimum value of `0`. Value pulumi.IntInput `pulumi:"value"` } @@ -30131,7 +30071,7 @@ func (o VirtualNodeSpecListenerTimeoutGrpcPerRequestOutput) Unit() pulumi.String return o.ApplyT(func(v VirtualNodeSpecListenerTimeoutGrpcPerRequest) string { return v.Unit }).(pulumi.StringOutput) } -// The specified value for the JSON. Must be between 1 and 100 characters in length. +// Number of time units. Minimum value of `0`. func (o VirtualNodeSpecListenerTimeoutGrpcPerRequestOutput) Value() pulumi.IntOutput { return o.ApplyT(func(v VirtualNodeSpecListenerTimeoutGrpcPerRequest) int { return v.Value }).(pulumi.IntOutput) } @@ -30176,7 +30116,7 @@ func (o VirtualNodeSpecListenerTimeoutGrpcPerRequestPtrOutput) Unit() pulumi.Str }).(pulumi.StringPtrOutput) } -// The specified value for the JSON. Must be between 1 and 100 characters in length. +// Number of time units. Minimum value of `0`. func (o VirtualNodeSpecListenerTimeoutGrpcPerRequestPtrOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v *VirtualNodeSpecListenerTimeoutGrpcPerRequest) *int { if v == nil { @@ -30551,7 +30491,7 @@ func (o VirtualNodeSpecListenerTimeoutHttp2IdlePtrOutput) Value() pulumi.IntPtrO type VirtualNodeSpecListenerTimeoutHttp2PerRequest struct { // Unit of time. Valid values: `ms`, `s`. Unit string `pulumi:"unit"` - // The specified value for the JSON. Must be between 1 and 100 characters in length. + // Number of time units. Minimum value of `0`. Value int `pulumi:"value"` } @@ -30569,7 +30509,7 @@ type VirtualNodeSpecListenerTimeoutHttp2PerRequestInput interface { type VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs struct { // Unit of time. Valid values: `ms`, `s`. Unit pulumi.StringInput `pulumi:"unit"` - // The specified value for the JSON. Must be between 1 and 100 characters in length. + // Number of time units. Minimum value of `0`. Value pulumi.IntInput `pulumi:"value"` } @@ -30673,7 +30613,7 @@ func (o VirtualNodeSpecListenerTimeoutHttp2PerRequestOutput) Unit() pulumi.Strin return o.ApplyT(func(v VirtualNodeSpecListenerTimeoutHttp2PerRequest) string { return v.Unit }).(pulumi.StringOutput) } -// The specified value for the JSON. Must be between 1 and 100 characters in length. +// Number of time units. Minimum value of `0`. func (o VirtualNodeSpecListenerTimeoutHttp2PerRequestOutput) Value() pulumi.IntOutput { return o.ApplyT(func(v VirtualNodeSpecListenerTimeoutHttp2PerRequest) int { return v.Value }).(pulumi.IntOutput) } @@ -30718,7 +30658,7 @@ func (o VirtualNodeSpecListenerTimeoutHttp2PerRequestPtrOutput) Unit() pulumi.St }).(pulumi.StringPtrOutput) } -// The specified value for the JSON. Must be between 1 and 100 characters in length. +// Number of time units. Minimum value of `0`. func (o VirtualNodeSpecListenerTimeoutHttp2PerRequestPtrOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v *VirtualNodeSpecListenerTimeoutHttp2PerRequest) *int { if v == nil { @@ -31093,7 +31033,7 @@ func (o VirtualNodeSpecListenerTimeoutHttpIdlePtrOutput) Value() pulumi.IntPtrOu type VirtualNodeSpecListenerTimeoutHttpPerRequest struct { // Unit of time. Valid values: `ms`, `s`. Unit string `pulumi:"unit"` - // The specified value for the JSON. Must be between 1 and 100 characters in length. + // Number of time units. Minimum value of `0`. Value int `pulumi:"value"` } @@ -31111,7 +31051,7 @@ type VirtualNodeSpecListenerTimeoutHttpPerRequestInput interface { type VirtualNodeSpecListenerTimeoutHttpPerRequestArgs struct { // Unit of time. Valid values: `ms`, `s`. Unit pulumi.StringInput `pulumi:"unit"` - // The specified value for the JSON. Must be between 1 and 100 characters in length. + // Number of time units. Minimum value of `0`. Value pulumi.IntInput `pulumi:"value"` } @@ -31215,7 +31155,7 @@ func (o VirtualNodeSpecListenerTimeoutHttpPerRequestOutput) Unit() pulumi.String return o.ApplyT(func(v VirtualNodeSpecListenerTimeoutHttpPerRequest) string { return v.Unit }).(pulumi.StringOutput) } -// The specified value for the JSON. Must be between 1 and 100 characters in length. +// Number of time units. Minimum value of `0`. func (o VirtualNodeSpecListenerTimeoutHttpPerRequestOutput) Value() pulumi.IntOutput { return o.ApplyT(func(v VirtualNodeSpecListenerTimeoutHttpPerRequest) int { return v.Value }).(pulumi.IntOutput) } @@ -31260,7 +31200,7 @@ func (o VirtualNodeSpecListenerTimeoutHttpPerRequestPtrOutput) Unit() pulumi.Str }).(pulumi.StringPtrOutput) } -// The specified value for the JSON. Must be between 1 and 100 characters in length. +// Number of time units. Minimum value of `0`. func (o VirtualNodeSpecListenerTimeoutHttpPerRequestPtrOutput) Value() pulumi.IntPtrOutput { return o.ApplyT(func(v *VirtualNodeSpecListenerTimeoutHttpPerRequest) *int { if v == nil { diff --git a/sdk/go/aws/autoscaling/pulumiTypes.go b/sdk/go/aws/autoscaling/pulumiTypes.go index 7c0321b6be2..56d99896bcc 100644 --- a/sdk/go/aws/autoscaling/pulumiTypes.go +++ b/sdk/go/aws/autoscaling/pulumiTypes.go @@ -1336,7 +1336,7 @@ func (o GroupMixedInstancesPolicyInstancesDistributionPtrOutput) SpotMaxPrice() } type GroupMixedInstancesPolicyLaunchTemplate struct { - // Nested argument defines the Launch Template. Defined below. + // Override the instance launch template specification in the Launch Template. LaunchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification `pulumi:"launchTemplateSpecification"` // List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below. Overrides []GroupMixedInstancesPolicyLaunchTemplateOverride `pulumi:"overrides"` @@ -1354,7 +1354,7 @@ type GroupMixedInstancesPolicyLaunchTemplateInput interface { } type GroupMixedInstancesPolicyLaunchTemplateArgs struct { - // Nested argument defines the Launch Template. Defined below. + // Override the instance launch template specification in the Launch Template. LaunchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationInput `pulumi:"launchTemplateSpecification"` // List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below. Overrides GroupMixedInstancesPolicyLaunchTemplateOverrideArrayInput `pulumi:"overrides"` @@ -1455,7 +1455,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOutput) ToOutput(ctx context.Cont } } -// Nested argument defines the Launch Template. Defined below. +// Override the instance launch template specification in the Launch Template. func (o GroupMixedInstancesPolicyLaunchTemplateOutput) LaunchTemplateSpecification() GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplate) GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification { return v.LaunchTemplateSpecification @@ -1499,7 +1499,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplatePtrOutput) Elem() GroupMixedInsta }).(GroupMixedInstancesPolicyLaunchTemplateOutput) } -// Nested argument defines the Launch Template. Defined below. +// Override the instance launch template specification in the Launch Template. func (o GroupMixedInstancesPolicyLaunchTemplatePtrOutput) LaunchTemplateSpecification() GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationPtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplate) *GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification { if v == nil { @@ -1727,7 +1727,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverride struct { InstanceRequirements *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements `pulumi:"instanceRequirements"` // Override the instance type in the Launch Template. InstanceType *string `pulumi:"instanceType"` - // Nested argument defines the Launch Template. Defined below. + // Override the instance launch template specification in the Launch Template. LaunchTemplateSpecification *GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification `pulumi:"launchTemplateSpecification"` // Number of capacity units, which gives the instance type a proportional weight to other instance types. WeightedCapacity *string `pulumi:"weightedCapacity"` @@ -1749,7 +1749,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideArgs struct { InstanceRequirements GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsPtrInput `pulumi:"instanceRequirements"` // Override the instance type in the Launch Template. InstanceType pulumi.StringPtrInput `pulumi:"instanceType"` - // Nested argument defines the Launch Template. Defined below. + // Override the instance launch template specification in the Launch Template. LaunchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationPtrInput `pulumi:"launchTemplateSpecification"` // Number of capacity units, which gives the instance type a proportional weight to other instance types. WeightedCapacity pulumi.StringPtrInput `pulumi:"weightedCapacity"` @@ -1836,7 +1836,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideOutput) InstanceType() pu return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverride) *string { return v.InstanceType }).(pulumi.StringPtrOutput) } -// Nested argument defines the Launch Template. Defined below. +// Override the instance launch template specification in the Launch Template. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideOutput) LaunchTemplateSpecification() GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationPtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverride) *GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification { return v.LaunchTemplateSpecification @@ -2912,7 +2912,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsPtrOu } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -2930,7 +2930,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAccelera } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -3031,7 +3031,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAccel } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount) *int { return v.Max @@ -3075,7 +3075,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAccel }).(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount) *int { if v == nil { @@ -3096,7 +3096,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAccel } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -3114,7 +3114,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAccelera } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -3215,7 +3215,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAccel } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib) *int { return v.Max @@ -3259,7 +3259,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAccel }).(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib) *int { if v == nil { @@ -3280,7 +3280,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAccel } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -3298,7 +3298,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaseline } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -3399,7 +3399,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBasel } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps) *int { return v.Max @@ -3443,7 +3443,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBasel }).(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps) *int { if v == nil { @@ -3464,7 +3464,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBasel } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *float64 `pulumi:"max"` // Minimum. Min *float64 `pulumi:"min"` @@ -3482,7 +3482,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGi } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.Float64PtrInput `pulumi:"max"` // Minimum. Min pulumi.Float64PtrInput `pulumi:"min"` @@ -3583,7 +3583,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemor } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu) *float64 { return v.Max @@ -3627,7 +3627,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemor }).(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu) *float64 { if v == nil { @@ -3648,7 +3648,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemor } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -3666,7 +3666,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMi } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -3767,7 +3767,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemor } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib) *int { return v.Max @@ -3811,7 +3811,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemor }).(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib) *int { if v == nil { @@ -3832,7 +3832,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemor } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *float64 `pulumi:"max"` // Minimum. Min *float64 `pulumi:"min"` @@ -3850,7 +3850,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkB } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.Float64PtrInput `pulumi:"max"` // Minimum. Min pulumi.Float64PtrInput `pulumi:"min"` @@ -3951,7 +3951,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetwo } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps) *float64 { return v.Max @@ -3995,7 +3995,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetwo }).(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps) *float64 { if v == nil { @@ -4016,7 +4016,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetwo } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -4034,7 +4034,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkI } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -4135,7 +4135,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetwo } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount) *int { return v.Max @@ -4179,7 +4179,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetwo }).(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount) *int { if v == nil { @@ -4200,7 +4200,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetwo } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *float64 `pulumi:"max"` // Minimum. Min *float64 `pulumi:"min"` @@ -4218,7 +4218,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLoc } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.Float64PtrInput `pulumi:"max"` // Minimum. Min pulumi.Float64PtrInput `pulumi:"min"` @@ -4319,7 +4319,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotal } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb) *float64 { return v.Max @@ -4363,7 +4363,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotal }).(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb) *float64 { if v == nil { @@ -4384,7 +4384,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotal } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -4402,7 +4402,7 @@ type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCoun } type GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -4503,7 +4503,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuC } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount) *int { return v.Max @@ -4547,7 +4547,7 @@ func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuC }).(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount) *int { if v == nil { diff --git a/sdk/go/aws/chimesdkmediapipelines/pulumiTypes.go b/sdk/go/aws/chimesdkmediapipelines/pulumiTypes.go index 6b3879bfe0b..c013069e70d 100644 --- a/sdk/go/aws/chimesdkmediapipelines/pulumiTypes.go +++ b/sdk/go/aws/chimesdkmediapipelines/pulumiTypes.go @@ -226,11 +226,11 @@ func (o MediaInsightsPipelineConfigurationElementArrayOutput) Index(i pulumi.Int type MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration struct { // Filter for category events to be delivered to insights target. CallAnalyticsStreamCategories []string `pulumi:"callAnalyticsStreamCategories"` - // Labels all personally identifiable information (PII) identified in Utterance events. + // Labels all personally identifiable information (PII) identified in Transcript events. ContentIdentificationType *string `pulumi:"contentIdentificationType"` - // Redacts all personally identifiable information (PII) identified in Utterance events. + // Redacts all personally identifiable information (PII) identified in Transcript events. ContentRedactionType *string `pulumi:"contentRedactionType"` - // Enables partial result stabilization in Utterance events. + // Enables partial result stabilization in Transcript events. EnablePartialResultsStabilization *bool `pulumi:"enablePartialResultsStabilization"` // Filters partial Utterance events from delivery to the insights target. FilterPartialResults *bool `pulumi:"filterPartialResults"` @@ -240,15 +240,15 @@ type MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProce LanguageModelName *string `pulumi:"languageModelName"` // Level of stability to use when partial results stabilization is enabled. PartialResultsStability *string `pulumi:"partialResultsStability"` - // Types of personally identifiable information (PII) to redact from an Utterance event. + // Types of personally identifiable information (PII) to redact from a Transcript event. PiiEntityTypes *string `pulumi:"piiEntityTypes"` // Settings for post call analytics. PostCallAnalyticsSettings *MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettings `pulumi:"postCallAnalyticsSettings"` - // Method for applying a vocabulary filter to Utterance events. + // Method for applying a vocabulary filter to Transcript events. VocabularyFilterMethod *string `pulumi:"vocabularyFilterMethod"` - // Name of the custom vocabulary filter to use when processing Utterance events. + // Name of the custom vocabulary filter to use when processing Transcript events. VocabularyFilterName *string `pulumi:"vocabularyFilterName"` - // Name of the custom vocabulary to use when processing Utterance events. + // Name of the custom vocabulary to use when processing Transcript events. VocabularyName *string `pulumi:"vocabularyName"` } @@ -266,11 +266,11 @@ type MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProce type MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs struct { // Filter for category events to be delivered to insights target. CallAnalyticsStreamCategories pulumi.StringArrayInput `pulumi:"callAnalyticsStreamCategories"` - // Labels all personally identifiable information (PII) identified in Utterance events. + // Labels all personally identifiable information (PII) identified in Transcript events. ContentIdentificationType pulumi.StringPtrInput `pulumi:"contentIdentificationType"` - // Redacts all personally identifiable information (PII) identified in Utterance events. + // Redacts all personally identifiable information (PII) identified in Transcript events. ContentRedactionType pulumi.StringPtrInput `pulumi:"contentRedactionType"` - // Enables partial result stabilization in Utterance events. + // Enables partial result stabilization in Transcript events. EnablePartialResultsStabilization pulumi.BoolPtrInput `pulumi:"enablePartialResultsStabilization"` // Filters partial Utterance events from delivery to the insights target. FilterPartialResults pulumi.BoolPtrInput `pulumi:"filterPartialResults"` @@ -280,15 +280,15 @@ type MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProce LanguageModelName pulumi.StringPtrInput `pulumi:"languageModelName"` // Level of stability to use when partial results stabilization is enabled. PartialResultsStability pulumi.StringPtrInput `pulumi:"partialResultsStability"` - // Types of personally identifiable information (PII) to redact from an Utterance event. + // Types of personally identifiable information (PII) to redact from a Transcript event. PiiEntityTypes pulumi.StringPtrInput `pulumi:"piiEntityTypes"` // Settings for post call analytics. PostCallAnalyticsSettings MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsPtrInput `pulumi:"postCallAnalyticsSettings"` - // Method for applying a vocabulary filter to Utterance events. + // Method for applying a vocabulary filter to Transcript events. VocabularyFilterMethod pulumi.StringPtrInput `pulumi:"vocabularyFilterMethod"` - // Name of the custom vocabulary filter to use when processing Utterance events. + // Name of the custom vocabulary filter to use when processing Transcript events. VocabularyFilterName pulumi.StringPtrInput `pulumi:"vocabularyFilterName"` - // Name of the custom vocabulary to use when processing Utterance events. + // Name of the custom vocabulary to use when processing Transcript events. VocabularyName pulumi.StringPtrInput `pulumi:"vocabularyName"` } @@ -394,21 +394,21 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(pulumi.StringArrayOutput) } -// Labels all personally identifiable information (PII) identified in Utterance events. +// Labels all personally identifiable information (PII) identified in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationOutput) ContentIdentificationType() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { return v.ContentIdentificationType }).(pulumi.StringPtrOutput) } -// Redacts all personally identifiable information (PII) identified in Utterance events. +// Redacts all personally identifiable information (PII) identified in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationOutput) ContentRedactionType() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { return v.ContentRedactionType }).(pulumi.StringPtrOutput) } -// Enables partial result stabilization in Utterance events. +// Enables partial result stabilization in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationOutput) EnablePartialResultsStabilization() pulumi.BoolPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *bool { return v.EnablePartialResultsStabilization @@ -443,7 +443,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(pulumi.StringPtrOutput) } -// Types of personally identifiable information (PII) to redact from an Utterance event. +// Types of personally identifiable information (PII) to redact from a Transcript event. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationOutput) PiiEntityTypes() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { return v.PiiEntityTypes @@ -457,21 +457,21 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsPtrOutput) } -// Method for applying a vocabulary filter to Utterance events. +// Method for applying a vocabulary filter to Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationOutput) VocabularyFilterMethod() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { return v.VocabularyFilterMethod }).(pulumi.StringPtrOutput) } -// Name of the custom vocabulary filter to use when processing Utterance events. +// Name of the custom vocabulary filter to use when processing Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationOutput) VocabularyFilterName() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { return v.VocabularyFilterName }).(pulumi.StringPtrOutput) } -// Name of the custom vocabulary to use when processing Utterance events. +// Name of the custom vocabulary to use when processing Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationOutput) VocabularyName() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { return v.VocabularyName @@ -518,7 +518,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(pulumi.StringArrayOutput) } -// Labels all personally identifiable information (PII) identified in Utterance events. +// Labels all personally identifiable information (PII) identified in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPtrOutput) ContentIdentificationType() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { if v == nil { @@ -528,7 +528,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(pulumi.StringPtrOutput) } -// Redacts all personally identifiable information (PII) identified in Utterance events. +// Redacts all personally identifiable information (PII) identified in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPtrOutput) ContentRedactionType() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { if v == nil { @@ -538,7 +538,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(pulumi.StringPtrOutput) } -// Enables partial result stabilization in Utterance events. +// Enables partial result stabilization in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPtrOutput) EnablePartialResultsStabilization() pulumi.BoolPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *bool { if v == nil { @@ -588,7 +588,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(pulumi.StringPtrOutput) } -// Types of personally identifiable information (PII) to redact from an Utterance event. +// Types of personally identifiable information (PII) to redact from a Transcript event. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPtrOutput) PiiEntityTypes() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { if v == nil { @@ -608,7 +608,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsPtrOutput) } -// Method for applying a vocabulary filter to Utterance events. +// Method for applying a vocabulary filter to Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPtrOutput) VocabularyFilterMethod() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { if v == nil { @@ -618,7 +618,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(pulumi.StringPtrOutput) } -// Name of the custom vocabulary filter to use when processing Utterance events. +// Name of the custom vocabulary filter to use when processing Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPtrOutput) VocabularyFilterName() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { if v == nil { @@ -628,7 +628,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr }).(pulumi.StringPtrOutput) } -// Name of the custom vocabulary to use when processing Utterance events. +// Name of the custom vocabulary to use when processing Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPtrOutput) VocabularyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration) *string { if v == nil { @@ -865,11 +865,11 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsPr } type MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration struct { - // Labels all personally identifiable information (PII) identified in Utterance events. + // Labels all personally identifiable information (PII) identified in Transcript events. ContentIdentificationType *string `pulumi:"contentIdentificationType"` - // Redacts all personally identifiable information (PII) identified in Utterance events. + // Redacts all personally identifiable information (PII) identified in Transcript events. ContentRedactionType *string `pulumi:"contentRedactionType"` - // Enables partial result stabilization in Utterance events. + // Enables partial result stabilization in Transcript events. EnablePartialResultsStabilization *bool `pulumi:"enablePartialResultsStabilization"` // Filters partial Utterance events from delivery to the insights target. FilterPartialResults *bool `pulumi:"filterPartialResults"` @@ -879,15 +879,15 @@ type MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigura LanguageModelName *string `pulumi:"languageModelName"` // Level of stability to use when partial results stabilization is enabled. PartialResultsStability *string `pulumi:"partialResultsStability"` - // Types of personally identifiable information (PII) to redact from an Utterance event. + // Types of personally identifiable information (PII) to redact from a Transcript event. PiiEntityTypes *string `pulumi:"piiEntityTypes"` // Enables speaker partitioning (diarization) in your Transcript events. ShowSpeakerLabel *bool `pulumi:"showSpeakerLabel"` - // Method for applying a vocabulary filter to Utterance events. + // Method for applying a vocabulary filter to Transcript events. VocabularyFilterMethod *string `pulumi:"vocabularyFilterMethod"` - // Name of the custom vocabulary filter to use when processing Utterance events. + // Name of the custom vocabulary filter to use when processing Transcript events. VocabularyFilterName *string `pulumi:"vocabularyFilterName"` - // Name of the custom vocabulary to use when processing Utterance events. + // Name of the custom vocabulary to use when processing Transcript events. VocabularyName *string `pulumi:"vocabularyName"` } @@ -903,11 +903,11 @@ type MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigura } type MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs struct { - // Labels all personally identifiable information (PII) identified in Utterance events. + // Labels all personally identifiable information (PII) identified in Transcript events. ContentIdentificationType pulumi.StringPtrInput `pulumi:"contentIdentificationType"` - // Redacts all personally identifiable information (PII) identified in Utterance events. + // Redacts all personally identifiable information (PII) identified in Transcript events. ContentRedactionType pulumi.StringPtrInput `pulumi:"contentRedactionType"` - // Enables partial result stabilization in Utterance events. + // Enables partial result stabilization in Transcript events. EnablePartialResultsStabilization pulumi.BoolPtrInput `pulumi:"enablePartialResultsStabilization"` // Filters partial Utterance events from delivery to the insights target. FilterPartialResults pulumi.BoolPtrInput `pulumi:"filterPartialResults"` @@ -917,15 +917,15 @@ type MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigura LanguageModelName pulumi.StringPtrInput `pulumi:"languageModelName"` // Level of stability to use when partial results stabilization is enabled. PartialResultsStability pulumi.StringPtrInput `pulumi:"partialResultsStability"` - // Types of personally identifiable information (PII) to redact from an Utterance event. + // Types of personally identifiable information (PII) to redact from a Transcript event. PiiEntityTypes pulumi.StringPtrInput `pulumi:"piiEntityTypes"` // Enables speaker partitioning (diarization) in your Transcript events. ShowSpeakerLabel pulumi.BoolPtrInput `pulumi:"showSpeakerLabel"` - // Method for applying a vocabulary filter to Utterance events. + // Method for applying a vocabulary filter to Transcript events. VocabularyFilterMethod pulumi.StringPtrInput `pulumi:"vocabularyFilterMethod"` - // Name of the custom vocabulary filter to use when processing Utterance events. + // Name of the custom vocabulary filter to use when processing Transcript events. VocabularyFilterName pulumi.StringPtrInput `pulumi:"vocabularyFilterName"` - // Name of the custom vocabulary to use when processing Utterance events. + // Name of the custom vocabulary to use when processing Transcript events. VocabularyName pulumi.StringPtrInput `pulumi:"vocabularyName"` } @@ -1024,21 +1024,21 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig } } -// Labels all personally identifiable information (PII) identified in Utterance events. +// Labels all personally identifiable information (PII) identified in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationOutput) ContentIdentificationType() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { return v.ContentIdentificationType }).(pulumi.StringPtrOutput) } -// Redacts all personally identifiable information (PII) identified in Utterance events. +// Redacts all personally identifiable information (PII) identified in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationOutput) ContentRedactionType() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { return v.ContentRedactionType }).(pulumi.StringPtrOutput) } -// Enables partial result stabilization in Utterance events. +// Enables partial result stabilization in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationOutput) EnablePartialResultsStabilization() pulumi.BoolPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *bool { return v.EnablePartialResultsStabilization @@ -1073,7 +1073,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig }).(pulumi.StringPtrOutput) } -// Types of personally identifiable information (PII) to redact from an Utterance event. +// Types of personally identifiable information (PII) to redact from a Transcript event. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationOutput) PiiEntityTypes() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { return v.PiiEntityTypes @@ -1087,21 +1087,21 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig }).(pulumi.BoolPtrOutput) } -// Method for applying a vocabulary filter to Utterance events. +// Method for applying a vocabulary filter to Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationOutput) VocabularyFilterMethod() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { return v.VocabularyFilterMethod }).(pulumi.StringPtrOutput) } -// Name of the custom vocabulary filter to use when processing Utterance events. +// Name of the custom vocabulary filter to use when processing Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationOutput) VocabularyFilterName() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { return v.VocabularyFilterName }).(pulumi.StringPtrOutput) } -// Name of the custom vocabulary to use when processing Utterance events. +// Name of the custom vocabulary to use when processing Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationOutput) VocabularyName() pulumi.StringPtrOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { return v.VocabularyName @@ -1138,7 +1138,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig }).(MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationOutput) } -// Labels all personally identifiable information (PII) identified in Utterance events. +// Labels all personally identifiable information (PII) identified in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationPtrOutput) ContentIdentificationType() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { if v == nil { @@ -1148,7 +1148,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig }).(pulumi.StringPtrOutput) } -// Redacts all personally identifiable information (PII) identified in Utterance events. +// Redacts all personally identifiable information (PII) identified in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationPtrOutput) ContentRedactionType() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { if v == nil { @@ -1158,7 +1158,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig }).(pulumi.StringPtrOutput) } -// Enables partial result stabilization in Utterance events. +// Enables partial result stabilization in Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationPtrOutput) EnablePartialResultsStabilization() pulumi.BoolPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *bool { if v == nil { @@ -1208,7 +1208,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig }).(pulumi.StringPtrOutput) } -// Types of personally identifiable information (PII) to redact from an Utterance event. +// Types of personally identifiable information (PII) to redact from a Transcript event. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationPtrOutput) PiiEntityTypes() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { if v == nil { @@ -1228,7 +1228,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig }).(pulumi.BoolPtrOutput) } -// Method for applying a vocabulary filter to Utterance events. +// Method for applying a vocabulary filter to Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationPtrOutput) VocabularyFilterMethod() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { if v == nil { @@ -1238,7 +1238,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig }).(pulumi.StringPtrOutput) } -// Name of the custom vocabulary filter to use when processing Utterance events. +// Name of the custom vocabulary filter to use when processing Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationPtrOutput) VocabularyFilterName() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { if v == nil { @@ -1248,7 +1248,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig }).(pulumi.StringPtrOutput) } -// Name of the custom vocabulary to use when processing Utterance events. +// Name of the custom vocabulary to use when processing Transcript events. func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationPtrOutput) VocabularyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration) *string { if v == nil { @@ -1259,7 +1259,7 @@ func (o MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfig } type MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration struct { - // Kinesis Data Stream to deliver results. + // SQS queue to deliver results. InsightsTarget string `pulumi:"insightsTarget"` } @@ -1275,7 +1275,7 @@ type MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration } type MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs struct { - // Kinesis Data Stream to deliver results. + // SQS queue to deliver results. InsightsTarget pulumi.StringInput `pulumi:"insightsTarget"` } @@ -1374,7 +1374,7 @@ func (o MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurat } } -// Kinesis Data Stream to deliver results. +// SQS queue to deliver results. func (o MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationOutput) InsightsTarget() pulumi.StringOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration) string { return v.InsightsTarget @@ -1411,7 +1411,7 @@ func (o MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurat }).(MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationOutput) } -// Kinesis Data Stream to deliver results. +// SQS queue to deliver results. func (o MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationPtrOutput) InsightsTarget() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration) *string { if v == nil { @@ -1422,7 +1422,7 @@ func (o MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurat } type MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration struct { - // Kinesis Data Stream to deliver results. + // SQS queue to deliver results. InsightsTarget string `pulumi:"insightsTarget"` } @@ -1438,7 +1438,7 @@ type MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationInp } type MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs struct { - // Kinesis Data Stream to deliver results. + // SQS queue to deliver results. InsightsTarget pulumi.StringInput `pulumi:"insightsTarget"` } @@ -1537,7 +1537,7 @@ func (o MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration } } -// Kinesis Data Stream to deliver results. +// SQS queue to deliver results. func (o MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationOutput) InsightsTarget() pulumi.StringOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration) string { return v.InsightsTarget @@ -1574,7 +1574,7 @@ func (o MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration }).(MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationOutput) } -// Kinesis Data Stream to deliver results. +// SQS queue to deliver results. func (o MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationPtrOutput) InsightsTarget() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration) *string { if v == nil { @@ -1748,7 +1748,7 @@ func (o MediaInsightsPipelineConfigurationElementS3RecordingSinkConfigurationPtr } type MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration struct { - // Kinesis Data Stream to deliver results. + // SQS queue to deliver results. InsightsTarget string `pulumi:"insightsTarget"` } @@ -1764,7 +1764,7 @@ type MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationInput int } type MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs struct { - // Kinesis Data Stream to deliver results. + // SQS queue to deliver results. InsightsTarget pulumi.StringInput `pulumi:"insightsTarget"` } @@ -1863,7 +1863,7 @@ func (o MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationOutput } } -// Kinesis Data Stream to deliver results. +// SQS queue to deliver results. func (o MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationOutput) InsightsTarget() pulumi.StringOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration) string { return v.InsightsTarget @@ -1900,7 +1900,7 @@ func (o MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationPtrOut }).(MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationOutput) } -// Kinesis Data Stream to deliver results. +// SQS queue to deliver results. func (o MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationPtrOutput) InsightsTarget() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration) *string { if v == nil { @@ -1911,7 +1911,7 @@ func (o MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationPtrOut } type MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration struct { - // Kinesis Data Stream to deliver results. + // SQS queue to deliver results. InsightsTarget string `pulumi:"insightsTarget"` } @@ -1927,7 +1927,7 @@ type MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationInput int } type MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs struct { - // Kinesis Data Stream to deliver results. + // SQS queue to deliver results. InsightsTarget pulumi.StringInput `pulumi:"insightsTarget"` } @@ -2026,7 +2026,7 @@ func (o MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationOutput } } -// Kinesis Data Stream to deliver results. +// SQS queue to deliver results. func (o MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationOutput) InsightsTarget() pulumi.StringOutput { return o.ApplyT(func(v MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration) string { return v.InsightsTarget @@ -2063,7 +2063,7 @@ func (o MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationPtrOut }).(MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationOutput) } -// Kinesis Data Stream to deliver results. +// SQS queue to deliver results. func (o MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationPtrOutput) InsightsTarget() pulumi.StringPtrOutput { return o.ApplyT(func(v *MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration) *string { if v == nil { diff --git a/sdk/go/aws/cloudfront/distribution.go b/sdk/go/aws/cloudfront/distribution.go index 81e51b89f5d..61acb183261 100644 --- a/sdk/go/aws/cloudfront/distribution.go +++ b/sdk/go/aws/cloudfront/distribution.go @@ -341,7 +341,7 @@ type Distribution struct { DefaultRootObject pulumi.StringPtrOutput `pulumi:"defaultRootObject"` // DNS domain name of either the S3 bucket, or web site of your custom origin. DomainName pulumi.StringOutput `pulumi:"domainName"` - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled pulumi.BoolOutput `pulumi:"enabled"` // Current version of the distribution's information. For example: `E2QWRUHAPOMQZL`. Etag pulumi.StringOutput `pulumi:"etag"` @@ -458,7 +458,7 @@ type distributionState struct { DefaultRootObject *string `pulumi:"defaultRootObject"` // DNS domain name of either the S3 bucket, or web site of your custom origin. DomainName *string `pulumi:"domainName"` - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled *bool `pulumi:"enabled"` // Current version of the distribution's information. For example: `E2QWRUHAPOMQZL`. Etag *string `pulumi:"etag"` @@ -527,7 +527,7 @@ type DistributionState struct { DefaultRootObject pulumi.StringPtrInput // DNS domain name of either the S3 bucket, or web site of your custom origin. DomainName pulumi.StringPtrInput - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled pulumi.BoolPtrInput // Current version of the distribution's information. For example: `E2QWRUHAPOMQZL`. Etag pulumi.StringPtrInput @@ -594,7 +594,7 @@ type distributionArgs struct { DefaultCacheBehavior DistributionDefaultCacheBehavior `pulumi:"defaultCacheBehavior"` // Object that you want CloudFront to return (for example, index.html) when an end user requests the root URL. DefaultRootObject *string `pulumi:"defaultRootObject"` - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled bool `pulumi:"enabled"` // Maximum HTTP version to support on the distribution. Allowed values are `http1.1`, `http2`, `http2and3` and `http3`. The default is `http2`. HttpVersion *string `pulumi:"httpVersion"` @@ -640,7 +640,7 @@ type DistributionArgs struct { DefaultCacheBehavior DistributionDefaultCacheBehaviorInput // Object that you want CloudFront to return (for example, index.html) when an end user requests the root URL. DefaultRootObject pulumi.StringPtrInput - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled pulumi.BoolInput // Maximum HTTP version to support on the distribution. Allowed values are `http1.1`, `http2`, `http2and3` and `http3`. The default is `http2`. HttpVersion pulumi.StringPtrInput @@ -828,7 +828,7 @@ func (o DistributionOutput) DomainName() pulumi.StringOutput { return o.ApplyT(func(v *Distribution) pulumi.StringOutput { return v.DomainName }).(pulumi.StringOutput) } -// Whether the distribution is enabled to accept end user requests for content. +// Whether Origin Shield is enabled. func (o DistributionOutput) Enabled() pulumi.BoolOutput { return o.ApplyT(func(v *Distribution) pulumi.BoolOutput { return v.Enabled }).(pulumi.BoolOutput) } diff --git a/sdk/go/aws/cloudfront/pulumiTypes.go b/sdk/go/aws/cloudfront/pulumiTypes.go index 8ac5c9dfbec..0e6cbca9d08 100644 --- a/sdk/go/aws/cloudfront/pulumiTypes.go +++ b/sdk/go/aws/cloudfront/pulumiTypes.go @@ -442,6 +442,7 @@ func (o CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigPtrOutpu } type CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies struct { + // List of item names, such as cookies, headers, or query strings. Items []string `pulumi:"items"` } @@ -457,6 +458,7 @@ type CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesInpu } type CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs struct { + // List of item names, such as cookies, headers, or query strings. Items pulumi.StringArrayInput `pulumi:"items"` } @@ -555,6 +557,7 @@ func (o CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesO } } +// List of item names, such as cookies, headers, or query strings. func (o CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesOutput) Items() pulumi.StringArrayOutput { return o.ApplyT(func(v CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies) []string { return v.Items @@ -591,6 +594,7 @@ func (o CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesP }).(CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesOutput) } +// List of item names, such as cookies, headers, or query strings. func (o CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesPtrOutput) Items() pulumi.StringArrayOutput { return o.ApplyT(func(v *CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies) []string { if v == nil { @@ -785,6 +789,7 @@ func (o CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigPtrOutpu } type CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders struct { + // List of item names, such as cookies, headers, or query strings. Items []string `pulumi:"items"` } @@ -800,6 +805,7 @@ type CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersInpu } type CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs struct { + // List of item names, such as cookies, headers, or query strings. Items pulumi.StringArrayInput `pulumi:"items"` } @@ -898,6 +904,7 @@ func (o CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersO } } +// List of item names, such as cookies, headers, or query strings. func (o CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersOutput) Items() pulumi.StringArrayOutput { return o.ApplyT(func(v CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders) []string { return v.Items @@ -934,6 +941,7 @@ func (o CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersP }).(CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersOutput) } +// List of item names, such as cookies, headers, or query strings. func (o CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersPtrOutput) Items() pulumi.StringArrayOutput { return o.ApplyT(func(v *CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders) []string { if v == nil { @@ -1128,6 +1136,7 @@ func (o CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigPtr } type CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings struct { + // List of item names, such as cookies, headers, or query strings. Items []string `pulumi:"items"` } @@ -1143,6 +1152,7 @@ type CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryS } type CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs struct { + // List of item names, such as cookies, headers, or query strings. Items pulumi.StringArrayInput `pulumi:"items"` } @@ -1241,6 +1251,7 @@ func (o CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQue } } +// List of item names, such as cookies, headers, or query strings. func (o CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsOutput) Items() pulumi.StringArrayOutput { return o.ApplyT(func(v CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings) []string { return v.Items @@ -1277,6 +1288,7 @@ func (o CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQue }).(CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsOutput) } +// List of item names, such as cookies, headers, or query strings. func (o CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsPtrOutput) Items() pulumi.StringArrayOutput { return o.ApplyT(func(v *CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings) []string { if v == nil { @@ -4720,7 +4732,7 @@ type DistributionOrigin struct { DomainName string `pulumi:"domainName"` // Unique identifier of a [CloudFront origin access control][8] for this origin. OriginAccessControlId *string `pulumi:"originAccessControlId"` - // Unique identifier for the origin. + // Unique identifier of the member origin. OriginId string `pulumi:"originId"` // Optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin. OriginPath *string `pulumi:"originPath"` @@ -4754,7 +4766,7 @@ type DistributionOriginArgs struct { DomainName pulumi.StringInput `pulumi:"domainName"` // Unique identifier of a [CloudFront origin access control][8] for this origin. OriginAccessControlId pulumi.StringPtrInput `pulumi:"originAccessControlId"` - // Unique identifier for the origin. + // Unique identifier of the member origin. OriginId pulumi.StringInput `pulumi:"originId"` // Optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin. OriginPath pulumi.StringPtrInput `pulumi:"originPath"` @@ -4863,7 +4875,7 @@ func (o DistributionOriginOutput) OriginAccessControlId() pulumi.StringPtrOutput return o.ApplyT(func(v DistributionOrigin) *string { return v.OriginAccessControlId }).(pulumi.StringPtrOutput) } -// Unique identifier for the origin. +// Unique identifier of the member origin. func (o DistributionOriginOutput) OriginId() pulumi.StringOutput { return o.ApplyT(func(v DistributionOrigin) string { return v.OriginId }).(pulumi.StringOutput) } @@ -5294,7 +5306,7 @@ type DistributionOriginGroup struct { FailoverCriteria DistributionOriginGroupFailoverCriteria `pulumi:"failoverCriteria"` // Ordered member configuration blocks assigned to the origin group, where the first member is the primary origin. You must specify two members. Members []DistributionOriginGroupMember `pulumi:"members"` - // Unique identifier for the origin. + // Unique identifier of the member origin. OriginId string `pulumi:"originId"` } @@ -5314,7 +5326,7 @@ type DistributionOriginGroupArgs struct { FailoverCriteria DistributionOriginGroupFailoverCriteriaInput `pulumi:"failoverCriteria"` // Ordered member configuration blocks assigned to the origin group, where the first member is the primary origin. You must specify two members. Members DistributionOriginGroupMemberArrayInput `pulumi:"members"` - // Unique identifier for the origin. + // Unique identifier of the member origin. OriginId pulumi.StringInput `pulumi:"originId"` } @@ -5397,7 +5409,7 @@ func (o DistributionOriginGroupOutput) Members() DistributionOriginGroupMemberAr return o.ApplyT(func(v DistributionOriginGroup) []DistributionOriginGroupMember { return v.Members }).(DistributionOriginGroupMemberArrayOutput) } -// Unique identifier for the origin. +// Unique identifier of the member origin. func (o DistributionOriginGroupOutput) OriginId() pulumi.StringOutput { return o.ApplyT(func(v DistributionOriginGroup) string { return v.OriginId }).(pulumi.StringOutput) } @@ -5493,7 +5505,7 @@ func (o DistributionOriginGroupFailoverCriteriaOutput) StatusCodes() pulumi.IntA } type DistributionOriginGroupMember struct { - // Unique identifier for the origin. + // Unique identifier of the member origin. OriginId string `pulumi:"originId"` } @@ -5509,7 +5521,7 @@ type DistributionOriginGroupMemberInput interface { } type DistributionOriginGroupMemberArgs struct { - // Unique identifier for the origin. + // Unique identifier of the member origin. OriginId pulumi.StringInput `pulumi:"originId"` } @@ -5582,7 +5594,7 @@ func (o DistributionOriginGroupMemberOutput) ToOutput(ctx context.Context) pulum } } -// Unique identifier for the origin. +// Unique identifier of the member origin. func (o DistributionOriginGroupMemberOutput) OriginId() pulumi.StringOutput { return o.ApplyT(func(v DistributionOriginGroupMember) string { return v.OriginId }).(pulumi.StringOutput) } @@ -5614,7 +5626,7 @@ func (o DistributionOriginGroupMemberArrayOutput) Index(i pulumi.IntInput) Distr } type DistributionOriginOriginShield struct { - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled bool `pulumi:"enabled"` // AWS Region for Origin Shield. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as `us-east-2`. OriginShieldRegion *string `pulumi:"originShieldRegion"` @@ -5632,7 +5644,7 @@ type DistributionOriginOriginShieldInput interface { } type DistributionOriginOriginShieldArgs struct { - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled pulumi.BoolInput `pulumi:"enabled"` // AWS Region for Origin Shield. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as `us-east-2`. OriginShieldRegion pulumi.StringPtrInput `pulumi:"originShieldRegion"` @@ -5733,7 +5745,7 @@ func (o DistributionOriginOriginShieldOutput) ToOutput(ctx context.Context) pulu } } -// Whether the distribution is enabled to accept end user requests for content. +// Whether Origin Shield is enabled. func (o DistributionOriginOriginShieldOutput) Enabled() pulumi.BoolOutput { return o.ApplyT(func(v DistributionOriginOriginShield) bool { return v.Enabled }).(pulumi.BoolOutput) } @@ -5773,7 +5785,7 @@ func (o DistributionOriginOriginShieldPtrOutput) Elem() DistributionOriginOrigin }).(DistributionOriginOriginShieldOutput) } -// Whether the distribution is enabled to accept end user requests for content. +// Whether Origin Shield is enabled. func (o DistributionOriginOriginShieldPtrOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *DistributionOriginOriginShield) *bool { if v == nil { @@ -6292,7 +6304,7 @@ func (o DistributionRestrictionsGeoRestrictionPtrOutput) RestrictionType() pulum } type DistributionTrustedKeyGroup struct { - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled *bool `pulumi:"enabled"` // List of nested attributes for each trusted signer Items []DistributionTrustedKeyGroupItem `pulumi:"items"` @@ -6310,7 +6322,7 @@ type DistributionTrustedKeyGroupInput interface { } type DistributionTrustedKeyGroupArgs struct { - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` // List of nested attributes for each trusted signer Items DistributionTrustedKeyGroupItemArrayInput `pulumi:"items"` @@ -6385,7 +6397,7 @@ func (o DistributionTrustedKeyGroupOutput) ToOutput(ctx context.Context) pulumix } } -// Whether the distribution is enabled to accept end user requests for content. +// Whether Origin Shield is enabled. func (o DistributionTrustedKeyGroupOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v DistributionTrustedKeyGroup) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } @@ -6552,7 +6564,7 @@ func (o DistributionTrustedKeyGroupItemArrayOutput) Index(i pulumi.IntInput) Dis } type DistributionTrustedSigner struct { - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled *bool `pulumi:"enabled"` // List of nested attributes for each trusted signer Items []DistributionTrustedSignerItem `pulumi:"items"` @@ -6570,7 +6582,7 @@ type DistributionTrustedSignerInput interface { } type DistributionTrustedSignerArgs struct { - // Whether the distribution is enabled to accept end user requests for content. + // Whether Origin Shield is enabled. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` // List of nested attributes for each trusted signer Items DistributionTrustedSignerItemArrayInput `pulumi:"items"` @@ -6645,7 +6657,7 @@ func (o DistributionTrustedSignerOutput) ToOutput(ctx context.Context) pulumix.O } } -// Whether the distribution is enabled to accept end user requests for content. +// Whether Origin Shield is enabled. func (o DistributionTrustedSignerOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v DistributionTrustedSigner) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } @@ -11124,7 +11136,7 @@ func (o ResponseHeadersPolicyCustomHeadersConfigPtrOutput) Items() ResponseHeade type ResponseHeadersPolicyCustomHeadersConfigItem struct { // The HTTP response header name. Header string `pulumi:"header"` - // Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + // Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. Override bool `pulumi:"override"` // The value for the HTTP response header. Value string `pulumi:"value"` @@ -11144,7 +11156,7 @@ type ResponseHeadersPolicyCustomHeadersConfigItemInput interface { type ResponseHeadersPolicyCustomHeadersConfigItemArgs struct { // The HTTP response header name. Header pulumi.StringInput `pulumi:"header"` - // Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + // Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. Override pulumi.BoolInput `pulumi:"override"` // The value for the HTTP response header. Value pulumi.StringInput `pulumi:"value"` @@ -11224,7 +11236,7 @@ func (o ResponseHeadersPolicyCustomHeadersConfigItemOutput) Header() pulumi.Stri return o.ApplyT(func(v ResponseHeadersPolicyCustomHeadersConfigItem) string { return v.Header }).(pulumi.StringOutput) } -// Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. +// Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. func (o ResponseHeadersPolicyCustomHeadersConfigItemOutput) Override() pulumi.BoolOutput { return o.ApplyT(func(v ResponseHeadersPolicyCustomHeadersConfigItem) bool { return v.Override }).(pulumi.BoolOutput) } diff --git a/sdk/go/aws/cloudwatch/metricAlarm.go b/sdk/go/aws/cloudwatch/metricAlarm.go index 9a8cda050ef..6a04a46e5ac 100644 --- a/sdk/go/aws/cloudwatch/metricAlarm.go +++ b/sdk/go/aws/cloudwatch/metricAlarm.go @@ -34,7 +34,7 @@ import ( // AlarmDescription: pulumi.String("This metric monitors ec2 cpu utilization"), // ComparisonOperator: pulumi.String("GreaterThanOrEqualToThreshold"), // EvaluationPeriods: pulumi.Int(2), -// InsufficientDataActions: pulumi.AnyArray{}, +// InsufficientDataActions: pulumi.Array{}, // MetricName: pulumi.String("CPUUtilization"), // Namespace: pulumi.String("AWS/EC2"), // Period: pulumi.Int(120), @@ -86,7 +86,7 @@ import ( // "AutoScalingGroupName": pulumi.Any(aws_autoscaling_group.Bar.Name), // }, // AlarmDescription: pulumi.String("This metric monitors ec2 cpu utilization"), -// AlarmActions: pulumi.AnyArray{ +// AlarmActions: pulumi.Array{ // batPolicy.Arn, // }, // }) @@ -118,7 +118,7 @@ import ( // AlarmDescription: pulumi.String("Request error rate has exceeded 10%"), // ComparisonOperator: pulumi.String("GreaterThanOrEqualToThreshold"), // EvaluationPeriods: pulumi.Int(2), -// InsufficientDataActions: pulumi.AnyArray{}, +// InsufficientDataActions: pulumi.Array{}, // MetricQueries: cloudwatch.MetricAlarmMetricQueryArray{ // &cloudwatch.MetricAlarmMetricQueryArgs{ // Expression: pulumi.String("m2/m1*100"), @@ -181,7 +181,7 @@ import ( // AlarmDescription: pulumi.String("This metric monitors ec2 cpu utilization"), // ComparisonOperator: pulumi.String("GreaterThanUpperThreshold"), // EvaluationPeriods: pulumi.Int(2), -// InsufficientDataActions: pulumi.AnyArray{}, +// InsufficientDataActions: pulumi.Array{}, // MetricQueries: cloudwatch.MetricAlarmMetricQueryArray{ // &cloudwatch.MetricAlarmMetricQueryArgs{ // Expression: pulumi.String("ANOMALY_DETECTION_BAND(m1)"), @@ -240,10 +240,10 @@ import ( // Threshold: pulumi.Any(_var.Logstash_servers_count), // AlarmDescription: pulumi.String("Number of healthy nodes in Target Group"), // ActionsEnabled: pulumi.Bool(true), -// AlarmActions: pulumi.AnyArray{ +// AlarmActions: pulumi.Array{ // aws_sns_topic.Sns.Arn, // }, -// OkActions: pulumi.AnyArray{ +// OkActions: pulumi.Array{ // aws_sns_topic.Sns.Arn, // }, // Dimensions: pulumi.StringMap{ diff --git a/sdk/go/aws/codebuild/pulumiTypes.go b/sdk/go/aws/codebuild/pulumiTypes.go index e4c919795a6..8c63cf87a80 100644 --- a/sdk/go/aws/codebuild/pulumiTypes.go +++ b/sdk/go/aws/codebuild/pulumiTypes.go @@ -1896,7 +1896,7 @@ func (o ProjectLogsConfigPtrOutput) S3Logs() ProjectLogsConfigS3LogsPtrOutput { type ProjectLogsConfigCloudwatchLogs struct { // Group name of the logs in CloudWatch Logs. GroupName *string `pulumi:"groupName"` - // Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + // Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. Status *string `pulumi:"status"` // Stream name of the logs in CloudWatch Logs. StreamName *string `pulumi:"streamName"` @@ -1916,7 +1916,7 @@ type ProjectLogsConfigCloudwatchLogsInput interface { type ProjectLogsConfigCloudwatchLogsArgs struct { // Group name of the logs in CloudWatch Logs. GroupName pulumi.StringPtrInput `pulumi:"groupName"` - // Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + // Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. Status pulumi.StringPtrInput `pulumi:"status"` // Stream name of the logs in CloudWatch Logs. StreamName pulumi.StringPtrInput `pulumi:"streamName"` @@ -2022,7 +2022,7 @@ func (o ProjectLogsConfigCloudwatchLogsOutput) GroupName() pulumi.StringPtrOutpu return o.ApplyT(func(v ProjectLogsConfigCloudwatchLogs) *string { return v.GroupName }).(pulumi.StringPtrOutput) } -// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. +// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. func (o ProjectLogsConfigCloudwatchLogsOutput) Status() pulumi.StringPtrOutput { return o.ApplyT(func(v ProjectLogsConfigCloudwatchLogs) *string { return v.Status }).(pulumi.StringPtrOutput) } @@ -2072,7 +2072,7 @@ func (o ProjectLogsConfigCloudwatchLogsPtrOutput) GroupName() pulumi.StringPtrOu }).(pulumi.StringPtrOutput) } -// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. +// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. func (o ProjectLogsConfigCloudwatchLogsPtrOutput) Status() pulumi.StringPtrOutput { return o.ApplyT(func(v *ProjectLogsConfigCloudwatchLogs) *string { if v == nil { @@ -2099,7 +2099,7 @@ type ProjectLogsConfigS3Logs struct { EncryptionDisabled *bool `pulumi:"encryptionDisabled"` // Information about the build output artifact location. If `type` is set to `CODEPIPELINE` or `NO_ARTIFACTS`, this value is ignored. If `type` is set to `S3`, this is the name of the output bucket. Location *string `pulumi:"location"` - // Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + // Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. Status *string `pulumi:"status"` } @@ -2121,7 +2121,7 @@ type ProjectLogsConfigS3LogsArgs struct { EncryptionDisabled pulumi.BoolPtrInput `pulumi:"encryptionDisabled"` // Information about the build output artifact location. If `type` is set to `CODEPIPELINE` or `NO_ARTIFACTS`, this value is ignored. If `type` is set to `S3`, this is the name of the output bucket. Location pulumi.StringPtrInput `pulumi:"location"` - // Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + // Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. Status pulumi.StringPtrInput `pulumi:"status"` } @@ -2235,7 +2235,7 @@ func (o ProjectLogsConfigS3LogsOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v ProjectLogsConfigS3Logs) *string { return v.Location }).(pulumi.StringPtrOutput) } -// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. +// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. func (o ProjectLogsConfigS3LogsOutput) Status() pulumi.StringPtrOutput { return o.ApplyT(func(v ProjectLogsConfigS3Logs) *string { return v.Status }).(pulumi.StringPtrOutput) } @@ -2300,7 +2300,7 @@ func (o ProjectLogsConfigS3LogsPtrOutput) Location() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. +// Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. func (o ProjectLogsConfigS3LogsPtrOutput) Status() pulumi.StringPtrOutput { return o.ApplyT(func(v *ProjectLogsConfigS3Logs) *string { if v == nil { diff --git a/sdk/go/aws/cognito/pulumiTypes.go b/sdk/go/aws/cognito/pulumiTypes.go index 8f444ab7f6a..f81f08b8755 100644 --- a/sdk/go/aws/cognito/pulumiTypes.go +++ b/sdk/go/aws/cognito/pulumiTypes.go @@ -1409,7 +1409,8 @@ func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsPtrOutput) Mediu type RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction struct { // The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. EventAction string `pulumi:"eventAction"` - Notify bool `pulumi:"notify"` + // Whether to send a notification. + Notify bool `pulumi:"notify"` } // RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionInput is an input type that accepts RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs and RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionOutput values. @@ -1426,7 +1427,8 @@ type RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionInput int type RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs struct { // The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. EventAction pulumi.StringInput `pulumi:"eventAction"` - Notify pulumi.BoolInput `pulumi:"notify"` + // Whether to send a notification. + Notify pulumi.BoolInput `pulumi:"notify"` } func (RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs) ElementType() reflect.Type { @@ -1531,6 +1533,7 @@ func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionOutput }).(pulumi.StringOutput) } +// Whether to send a notification. func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionOutput) Notify() pulumi.BoolOutput { return o.ApplyT(func(v RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction) bool { return v.Notify }).(pulumi.BoolOutput) } @@ -1575,6 +1578,7 @@ func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionPtrOut }).(pulumi.StringPtrOutput) } +// Whether to send a notification. func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionPtrOutput) Notify() pulumi.BoolPtrOutput { return o.ApplyT(func(v *RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction) *bool { if v == nil { @@ -1587,7 +1591,8 @@ func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionPtrOut type RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction struct { // The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. EventAction string `pulumi:"eventAction"` - Notify bool `pulumi:"notify"` + // Whether to send a notification. + Notify bool `pulumi:"notify"` } // RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionInput is an input type that accepts RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs and RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionOutput values. @@ -1604,7 +1609,8 @@ type RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionInput inte type RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs struct { // The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. EventAction pulumi.StringInput `pulumi:"eventAction"` - Notify pulumi.BoolInput `pulumi:"notify"` + // Whether to send a notification. + Notify pulumi.BoolInput `pulumi:"notify"` } func (RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs) ElementType() reflect.Type { @@ -1707,6 +1713,7 @@ func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionOutput) return o.ApplyT(func(v RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction) string { return v.EventAction }).(pulumi.StringOutput) } +// Whether to send a notification. func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionOutput) Notify() pulumi.BoolOutput { return o.ApplyT(func(v RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction) bool { return v.Notify }).(pulumi.BoolOutput) } @@ -1751,6 +1758,7 @@ func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionPtrOutp }).(pulumi.StringPtrOutput) } +// Whether to send a notification. func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionPtrOutput) Notify() pulumi.BoolPtrOutput { return o.ApplyT(func(v *RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction) *bool { if v == nil { @@ -1763,7 +1771,8 @@ func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionPtrOutp type RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction struct { // The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. EventAction string `pulumi:"eventAction"` - Notify bool `pulumi:"notify"` + // Whether to send a notification. + Notify bool `pulumi:"notify"` } // RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionInput is an input type that accepts RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs and RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionOutput values. @@ -1780,7 +1789,8 @@ type RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionInput i type RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs struct { // The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. EventAction pulumi.StringInput `pulumi:"eventAction"` - Notify pulumi.BoolInput `pulumi:"notify"` + // Whether to send a notification. + Notify pulumi.BoolInput `pulumi:"notify"` } func (RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs) ElementType() reflect.Type { @@ -1885,6 +1895,7 @@ func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionOutp }).(pulumi.StringOutput) } +// Whether to send a notification. func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionOutput) Notify() pulumi.BoolOutput { return o.ApplyT(func(v RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction) bool { return v.Notify }).(pulumi.BoolOutput) } @@ -1929,6 +1940,7 @@ func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionPtrO }).(pulumi.StringPtrOutput) } +// Whether to send a notification. func (o RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionPtrOutput) Notify() pulumi.BoolPtrOutput { return o.ApplyT(func(v *RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction) *bool { if v == nil { diff --git a/sdk/go/aws/directconnect/getLocations.go b/sdk/go/aws/directconnect/getLocations.go index 29369f35e64..397b8ca3c95 100644 --- a/sdk/go/aws/directconnect/getLocations.go +++ b/sdk/go/aws/directconnect/getLocations.go @@ -4,8 +4,12 @@ package directconnect import ( + "context" + "reflect" + "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" ) // Retrieve information about the AWS Direct Connect locations in the current AWS Region. @@ -53,3 +57,49 @@ type GetLocationsResult struct { // Code for the locations. LocationCodes []string `pulumi:"locationCodes"` } + +func GetLocationsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetLocationsResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetLocationsResult, error) { + r, err := GetLocations(ctx, opts...) + var s GetLocationsResult + if r != nil { + s = *r + } + return s, err + }).(GetLocationsResultOutput) +} + +// A collection of values returned by getLocations. +type GetLocationsResultOutput struct{ *pulumi.OutputState } + +func (GetLocationsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLocationsResult)(nil)).Elem() +} + +func (o GetLocationsResultOutput) ToGetLocationsResultOutput() GetLocationsResultOutput { + return o +} + +func (o GetLocationsResultOutput) ToGetLocationsResultOutputWithContext(ctx context.Context) GetLocationsResultOutput { + return o +} + +func (o GetLocationsResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetLocationsResult] { + return pulumix.Output[GetLocationsResult]{ + OutputState: o.OutputState, + } +} + +// The provider-assigned unique ID for this managed resource. +func (o GetLocationsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetLocationsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Code for the locations. +func (o GetLocationsResultOutput) LocationCodes() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLocationsResult) []string { return v.LocationCodes }).(pulumi.StringArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetLocationsResultOutput{}) +} diff --git a/sdk/go/aws/dlm/pulumiTypes.go b/sdk/go/aws/dlm/pulumiTypes.go index 0f3d51899bc..f515a872cfe 100644 --- a/sdk/go/aws/dlm/pulumiTypes.go +++ b/sdk/go/aws/dlm/pulumiTypes.go @@ -19,7 +19,7 @@ type LifecyclePolicyPolicyDetails struct { Action *LifecyclePolicyPolicyDetailsAction `pulumi:"action"` // The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the `eventSource` configuration block. EventSource *LifecyclePolicyPolicyDetailsEventSource `pulumi:"eventSource"` - // A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + // Information about the event. See the `parameters` configuration block. Parameters *LifecyclePolicyPolicyDetailsParameters `pulumi:"parameters"` // The valid target resource types and actions a policy can manage. Specify `EBS_SNAPSHOT_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify `IMAGE_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify `EVENT_BASED_POLICY` to create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value is `EBS_SNAPSHOT_MANAGEMENT`. PolicyType *string `pulumi:"policyType"` @@ -51,7 +51,7 @@ type LifecyclePolicyPolicyDetailsArgs struct { Action LifecyclePolicyPolicyDetailsActionPtrInput `pulumi:"action"` // The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the `eventSource` configuration block. EventSource LifecyclePolicyPolicyDetailsEventSourcePtrInput `pulumi:"eventSource"` - // A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + // Information about the event. See the `parameters` configuration block. Parameters LifecyclePolicyPolicyDetailsParametersPtrInput `pulumi:"parameters"` // The valid target resource types and actions a policy can manage. Specify `EBS_SNAPSHOT_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify `IMAGE_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify `EVENT_BASED_POLICY` to create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value is `EBS_SNAPSHOT_MANAGEMENT`. PolicyType pulumi.StringPtrInput `pulumi:"policyType"` @@ -172,7 +172,7 @@ func (o LifecyclePolicyPolicyDetailsOutput) EventSource() LifecyclePolicyPolicyD return o.ApplyT(func(v LifecyclePolicyPolicyDetails) *LifecyclePolicyPolicyDetailsEventSource { return v.EventSource }).(LifecyclePolicyPolicyDetailsEventSourcePtrOutput) } -// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. +// Information about the event. See the `parameters` configuration block. func (o LifecyclePolicyPolicyDetailsOutput) Parameters() LifecyclePolicyPolicyDetailsParametersPtrOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetails) *LifecyclePolicyPolicyDetailsParameters { return v.Parameters }).(LifecyclePolicyPolicyDetailsParametersPtrOutput) } @@ -254,7 +254,7 @@ func (o LifecyclePolicyPolicyDetailsPtrOutput) EventSource() LifecyclePolicyPoli }).(LifecyclePolicyPolicyDetailsEventSourcePtrOutput) } -// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. +// Information about the event. See the `parameters` configuration block. func (o LifecyclePolicyPolicyDetailsPtrOutput) Parameters() LifecyclePolicyPolicyDetailsParametersPtrOutput { return o.ApplyT(func(v *LifecyclePolicyPolicyDetails) *LifecyclePolicyPolicyDetailsParameters { if v == nil { @@ -642,9 +642,9 @@ func (o LifecyclePolicyPolicyDetailsActionCrossRegionCopyArrayOutput) Index(i pu } type LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration struct { - // The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + // The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. CmkArn *string `pulumi:"cmkArn"` - // To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + // To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. Encrypted *bool `pulumi:"encrypted"` } @@ -660,9 +660,9 @@ type LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationInp } type LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs struct { - // The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + // The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. CmkArn pulumi.StringPtrInput `pulumi:"cmkArn"` - // To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + // To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. Encrypted pulumi.BoolPtrInput `pulumi:"encrypted"` } @@ -704,14 +704,14 @@ func (o LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration } } -// The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. +// The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. func (o LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationOutput) CmkArn() pulumi.StringPtrOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration) *string { return v.CmkArn }).(pulumi.StringPtrOutput) } -// To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. +// To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. func (o LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationOutput) Encrypted() pulumi.BoolPtrOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration) *bool { return v.Encrypted @@ -899,7 +899,7 @@ func (o LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRulePtrOutput) In } type LifecyclePolicyPolicyDetailsEventSource struct { - // A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + // Information about the event. See the `parameters` configuration block. Parameters LifecyclePolicyPolicyDetailsEventSourceParameters `pulumi:"parameters"` // The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are `MANAGED_CWE`. Type string `pulumi:"type"` @@ -917,7 +917,7 @@ type LifecyclePolicyPolicyDetailsEventSourceInput interface { } type LifecyclePolicyPolicyDetailsEventSourceArgs struct { - // A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + // Information about the event. See the `parameters` configuration block. Parameters LifecyclePolicyPolicyDetailsEventSourceParametersInput `pulumi:"parameters"` // The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are `MANAGED_CWE`. Type pulumi.StringInput `pulumi:"type"` @@ -1018,7 +1018,7 @@ func (o LifecyclePolicyPolicyDetailsEventSourceOutput) ToOutput(ctx context.Cont } } -// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. +// Information about the event. See the `parameters` configuration block. func (o LifecyclePolicyPolicyDetailsEventSourceOutput) Parameters() LifecyclePolicyPolicyDetailsEventSourceParametersOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetailsEventSource) LifecyclePolicyPolicyDetailsEventSourceParameters { return v.Parameters @@ -1060,7 +1060,7 @@ func (o LifecyclePolicyPolicyDetailsEventSourcePtrOutput) Elem() LifecyclePolicy }).(LifecyclePolicyPolicyDetailsEventSourceOutput) } -// A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. +// Information about the event. See the `parameters` configuration block. func (o LifecyclePolicyPolicyDetailsEventSourcePtrOutput) Parameters() LifecyclePolicyPolicyDetailsEventSourceParametersPtrOutput { return o.ApplyT(func(v *LifecyclePolicyPolicyDetailsEventSource) *LifecyclePolicyPolicyDetailsEventSourceParameters { if v == nil { @@ -1460,13 +1460,13 @@ func (o LifecyclePolicyPolicyDetailsParametersPtrOutput) NoReboot() pulumi.BoolP } type LifecyclePolicyPolicyDetailsSchedule struct { - // Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + // Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. CopyTags *bool `pulumi:"copyTags"` // See the `createRule` block. Max of 1 per schedule. CreateRule LifecyclePolicyPolicyDetailsScheduleCreateRule `pulumi:"createRule"` // See the `crossRegionCopyRule` block. Max of 3 per schedule. CrossRegionCopyRules []LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule `pulumi:"crossRegionCopyRules"` - // See the `deprecateRule` block. Max of 1 per schedule. + // The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. DeprecateRule *LifecyclePolicyPolicyDetailsScheduleDeprecateRule `pulumi:"deprecateRule"` // See the `fastRestoreRule` block. Max of 1 per schedule. FastRestoreRule *LifecyclePolicyPolicyDetailsScheduleFastRestoreRule `pulumi:"fastRestoreRule"` @@ -1494,13 +1494,13 @@ type LifecyclePolicyPolicyDetailsScheduleInput interface { } type LifecyclePolicyPolicyDetailsScheduleArgs struct { - // Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + // Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. CopyTags pulumi.BoolPtrInput `pulumi:"copyTags"` // See the `createRule` block. Max of 1 per schedule. CreateRule LifecyclePolicyPolicyDetailsScheduleCreateRuleInput `pulumi:"createRule"` // See the `crossRegionCopyRule` block. Max of 3 per schedule. CrossRegionCopyRules LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArrayInput `pulumi:"crossRegionCopyRules"` - // See the `deprecateRule` block. Max of 1 per schedule. + // The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. DeprecateRule LifecyclePolicyPolicyDetailsScheduleDeprecateRulePtrInput `pulumi:"deprecateRule"` // See the `fastRestoreRule` block. Max of 1 per schedule. FastRestoreRule LifecyclePolicyPolicyDetailsScheduleFastRestoreRulePtrInput `pulumi:"fastRestoreRule"` @@ -1585,7 +1585,7 @@ func (o LifecyclePolicyPolicyDetailsScheduleOutput) ToOutput(ctx context.Context } } -// Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. +// Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. func (o LifecyclePolicyPolicyDetailsScheduleOutput) CopyTags() pulumi.BoolPtrOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetailsSchedule) *bool { return v.CopyTags }).(pulumi.BoolPtrOutput) } @@ -1604,7 +1604,7 @@ func (o LifecyclePolicyPolicyDetailsScheduleOutput) CrossRegionCopyRules() Lifec }).(LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArrayOutput) } -// See the `deprecateRule` block. Max of 1 per schedule. +// The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. func (o LifecyclePolicyPolicyDetailsScheduleOutput) DeprecateRule() LifecyclePolicyPolicyDetailsScheduleDeprecateRulePtrOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetailsSchedule) *LifecyclePolicyPolicyDetailsScheduleDeprecateRule { return v.DeprecateRule @@ -1774,13 +1774,13 @@ func (o LifecyclePolicyPolicyDetailsScheduleCreateRuleOutput) Times() pulumi.Str } type LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule struct { - // The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + // The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. CmkArn *string `pulumi:"cmkArn"` - // Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + // Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. CopyTags *bool `pulumi:"copyTags"` - // See the `deprecateRule` block. Max of 1 per schedule. + // The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. DeprecateRule *LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule `pulumi:"deprecateRule"` - // To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + // To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. Encrypted bool `pulumi:"encrypted"` // Specifies the retention rule for cross-Region snapshot copies. See the `retainRule` block. Max of 1 per action. RetainRule *LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRule `pulumi:"retainRule"` @@ -1800,13 +1800,13 @@ type LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleInput interface { } type LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs struct { - // The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + // The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. CmkArn pulumi.StringPtrInput `pulumi:"cmkArn"` - // Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + // Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. CopyTags pulumi.BoolPtrInput `pulumi:"copyTags"` - // See the `deprecateRule` block. Max of 1 per schedule. + // The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. DeprecateRule LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRulePtrInput `pulumi:"deprecateRule"` - // To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + // To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. Encrypted pulumi.BoolInput `pulumi:"encrypted"` // Specifies the retention rule for cross-Region snapshot copies. See the `retainRule` block. Max of 1 per action. RetainRule LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRulePtrInput `pulumi:"retainRule"` @@ -1883,24 +1883,24 @@ func (o LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleOutput) ToOutput( } } -// The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. +// The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. func (o LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleOutput) CmkArn() pulumi.StringPtrOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule) *string { return v.CmkArn }).(pulumi.StringPtrOutput) } -// Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. +// Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. func (o LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleOutput) CopyTags() pulumi.BoolPtrOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule) *bool { return v.CopyTags }).(pulumi.BoolPtrOutput) } -// See the `deprecateRule` block. Max of 1 per schedule. +// The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. func (o LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleOutput) DeprecateRule() LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRulePtrOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule) *LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule { return v.DeprecateRule }).(LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRulePtrOutput) } -// To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. +// To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. func (o LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleOutput) Encrypted() pulumi.BoolOutput { return o.ApplyT(func(v LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule) bool { return v.Encrypted }).(pulumi.BoolOutput) } diff --git a/sdk/go/aws/ebs/getDefaultKmsKey.go b/sdk/go/aws/ebs/getDefaultKmsKey.go index d8cf746d23e..ee77585eded 100644 --- a/sdk/go/aws/ebs/getDefaultKmsKey.go +++ b/sdk/go/aws/ebs/getDefaultKmsKey.go @@ -4,8 +4,12 @@ package ebs import ( + "context" + "reflect" + "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" ) // Use this data source to get the default EBS encryption KMS key in the current region. @@ -58,3 +62,49 @@ type LookupDefaultKmsKeyResult struct { // ARN of the default KMS key uses to encrypt an EBS volume in this region when no key is specified in an API call that creates the volume and encryption by default is enabled. KeyArn string `pulumi:"keyArn"` } + +func LookupDefaultKmsKeyOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) LookupDefaultKmsKeyResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (LookupDefaultKmsKeyResult, error) { + r, err := LookupDefaultKmsKey(ctx, opts...) + var s LookupDefaultKmsKeyResult + if r != nil { + s = *r + } + return s, err + }).(LookupDefaultKmsKeyResultOutput) +} + +// A collection of values returned by getDefaultKmsKey. +type LookupDefaultKmsKeyResultOutput struct{ *pulumi.OutputState } + +func (LookupDefaultKmsKeyResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDefaultKmsKeyResult)(nil)).Elem() +} + +func (o LookupDefaultKmsKeyResultOutput) ToLookupDefaultKmsKeyResultOutput() LookupDefaultKmsKeyResultOutput { + return o +} + +func (o LookupDefaultKmsKeyResultOutput) ToLookupDefaultKmsKeyResultOutputWithContext(ctx context.Context) LookupDefaultKmsKeyResultOutput { + return o +} + +func (o LookupDefaultKmsKeyResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupDefaultKmsKeyResult] { + return pulumix.Output[LookupDefaultKmsKeyResult]{ + OutputState: o.OutputState, + } +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupDefaultKmsKeyResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupDefaultKmsKeyResult) string { return v.Id }).(pulumi.StringOutput) +} + +// ARN of the default KMS key uses to encrypt an EBS volume in this region when no key is specified in an API call that creates the volume and encryption by default is enabled. +func (o LookupDefaultKmsKeyResultOutput) KeyArn() pulumi.StringOutput { + return o.ApplyT(func(v LookupDefaultKmsKeyResult) string { return v.KeyArn }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDefaultKmsKeyResultOutput{}) +} diff --git a/sdk/go/aws/ebs/getEncryptionByDefault.go b/sdk/go/aws/ebs/getEncryptionByDefault.go index 9dfa2683624..549032aec0c 100644 --- a/sdk/go/aws/ebs/getEncryptionByDefault.go +++ b/sdk/go/aws/ebs/getEncryptionByDefault.go @@ -4,8 +4,12 @@ package ebs import ( + "context" + "reflect" + "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 way to check whether default EBS encryption is enabled for your AWS account in the current AWS region. @@ -50,3 +54,49 @@ type LookupEncryptionByDefaultResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` } + +func LookupEncryptionByDefaultOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) LookupEncryptionByDefaultResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (LookupEncryptionByDefaultResult, error) { + r, err := LookupEncryptionByDefault(ctx, opts...) + var s LookupEncryptionByDefaultResult + if r != nil { + s = *r + } + return s, err + }).(LookupEncryptionByDefaultResultOutput) +} + +// A collection of values returned by getEncryptionByDefault. +type LookupEncryptionByDefaultResultOutput struct{ *pulumi.OutputState } + +func (LookupEncryptionByDefaultResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEncryptionByDefaultResult)(nil)).Elem() +} + +func (o LookupEncryptionByDefaultResultOutput) ToLookupEncryptionByDefaultResultOutput() LookupEncryptionByDefaultResultOutput { + return o +} + +func (o LookupEncryptionByDefaultResultOutput) ToLookupEncryptionByDefaultResultOutputWithContext(ctx context.Context) LookupEncryptionByDefaultResultOutput { + return o +} + +func (o LookupEncryptionByDefaultResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupEncryptionByDefaultResult] { + return pulumix.Output[LookupEncryptionByDefaultResult]{ + OutputState: o.OutputState, + } +} + +// Whether or not default EBS encryption is enabled. Returns as `true` or `false`. +func (o LookupEncryptionByDefaultResultOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v LookupEncryptionByDefaultResult) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupEncryptionByDefaultResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupEncryptionByDefaultResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupEncryptionByDefaultResultOutput{}) +} diff --git a/sdk/go/aws/ec2/amiCopy.go b/sdk/go/aws/ec2/amiCopy.go index 9b6c4fb2488..ff993180756 100644 --- a/sdk/go/aws/ec2/amiCopy.go +++ b/sdk/go/aws/ec2/amiCopy.go @@ -76,7 +76,7 @@ type AmiCopy struct { EbsBlockDevices AmiCopyEbsBlockDeviceArrayOutput `pulumi:"ebsBlockDevices"` // Whether enhanced networking with ENA is enabled. Defaults to `false`. EnaSupport pulumi.BoolOutput `pulumi:"enaSupport"` - // Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshotId`. + // Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` Encrypted pulumi.BoolPtrOutput `pulumi:"encrypted"` // Nested block describing an ephemeral block device that // should be attached to created instances. The structure of this block is described below. @@ -187,7 +187,7 @@ type amiCopyState struct { EbsBlockDevices []AmiCopyEbsBlockDevice `pulumi:"ebsBlockDevices"` // Whether enhanced networking with ENA is enabled. Defaults to `false`. EnaSupport *bool `pulumi:"enaSupport"` - // Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshotId`. + // Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` Encrypted *bool `pulumi:"encrypted"` // Nested block describing an ephemeral block device that // should be attached to created instances. The structure of this block is described below. @@ -259,7 +259,7 @@ type AmiCopyState struct { EbsBlockDevices AmiCopyEbsBlockDeviceArrayInput // Whether enhanced networking with ENA is enabled. Defaults to `false`. EnaSupport pulumi.BoolPtrInput - // Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshotId`. + // Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` Encrypted pulumi.BoolPtrInput // Nested block describing an ephemeral block device that // should be attached to created instances. The structure of this block is described below. @@ -327,7 +327,7 @@ type amiCopyArgs struct { // Nested block describing an EBS block device that should be // attached to created instances. The structure of this block is described below. EbsBlockDevices []AmiCopyEbsBlockDevice `pulumi:"ebsBlockDevices"` - // Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshotId`. + // Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` Encrypted *bool `pulumi:"encrypted"` // Nested block describing an ephemeral block device that // should be attached to created instances. The structure of this block is described below. @@ -358,7 +358,7 @@ type AmiCopyArgs struct { // Nested block describing an EBS block device that should be // attached to created instances. The structure of this block is described below. EbsBlockDevices AmiCopyEbsBlockDeviceArrayInput - // Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshotId`. + // Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` Encrypted pulumi.BoolPtrInput // Nested block describing an ephemeral block device that // should be attached to created instances. The structure of this block is described below. @@ -530,7 +530,7 @@ func (o AmiCopyOutput) EnaSupport() pulumi.BoolOutput { return o.ApplyT(func(v *AmiCopy) pulumi.BoolOutput { return v.EnaSupport }).(pulumi.BoolOutput) } -// Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshotId`. +// Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` func (o AmiCopyOutput) Encrypted() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AmiCopy) pulumi.BoolPtrOutput { return v.Encrypted }).(pulumi.BoolPtrOutput) } diff --git a/sdk/go/aws/ec2/getSerialConsoleAccess.go b/sdk/go/aws/ec2/getSerialConsoleAccess.go index bbfbe364c65..0a8feb2f546 100644 --- a/sdk/go/aws/ec2/getSerialConsoleAccess.go +++ b/sdk/go/aws/ec2/getSerialConsoleAccess.go @@ -4,8 +4,12 @@ package ec2 import ( + "context" + "reflect" + "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 way to check whether serial console access is enabled for your AWS account in the current AWS region. @@ -50,3 +54,49 @@ type LookupSerialConsoleAccessResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` } + +func LookupSerialConsoleAccessOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) LookupSerialConsoleAccessResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (LookupSerialConsoleAccessResult, error) { + r, err := LookupSerialConsoleAccess(ctx, opts...) + var s LookupSerialConsoleAccessResult + if r != nil { + s = *r + } + return s, err + }).(LookupSerialConsoleAccessResultOutput) +} + +// A collection of values returned by getSerialConsoleAccess. +type LookupSerialConsoleAccessResultOutput struct{ *pulumi.OutputState } + +func (LookupSerialConsoleAccessResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupSerialConsoleAccessResult)(nil)).Elem() +} + +func (o LookupSerialConsoleAccessResultOutput) ToLookupSerialConsoleAccessResultOutput() LookupSerialConsoleAccessResultOutput { + return o +} + +func (o LookupSerialConsoleAccessResultOutput) ToLookupSerialConsoleAccessResultOutputWithContext(ctx context.Context) LookupSerialConsoleAccessResultOutput { + return o +} + +func (o LookupSerialConsoleAccessResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupSerialConsoleAccessResult] { + return pulumix.Output[LookupSerialConsoleAccessResult]{ + OutputState: o.OutputState, + } +} + +// Whether or not serial console access is enabled. Returns as `true` or `false`. +func (o LookupSerialConsoleAccessResultOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v LookupSerialConsoleAccessResult) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupSerialConsoleAccessResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupSerialConsoleAccessResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupSerialConsoleAccessResultOutput{}) +} diff --git a/sdk/go/aws/ec2/pulumiTypes.go b/sdk/go/aws/ec2/pulumiTypes.go index f96991a2d77..d91bc9b1b0c 100644 --- a/sdk/go/aws/ec2/pulumiTypes.go +++ b/sdk/go/aws/ec2/pulumiTypes.go @@ -3388,9 +3388,9 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsPtrOutput) VcpuCoun } type FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max *int `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min *int `pulumi:"min"` } @@ -3406,9 +3406,9 @@ type FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountInput } type FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max pulumi.IntPtrInput `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min pulumi.IntPtrInput `pulumi:"min"` } @@ -3507,12 +3507,12 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountOut } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount) *int { return v.Max }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount) *int { return v.Min }).(pulumi.IntPtrOutput) } @@ -3547,7 +3547,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountPtr }).(FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount) *int { if v == nil { @@ -3557,7 +3557,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountPtr }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountPtrOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount) *int { if v == nil { @@ -3568,9 +3568,9 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountPtr } type FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max *int `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min *int `pulumi:"min"` } @@ -3586,9 +3586,9 @@ type FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemory } type FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max pulumi.IntPtrInput `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min pulumi.IntPtrInput `pulumi:"min"` } @@ -3687,14 +3687,14 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMem } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib) *int { return v.Max }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib) *int { return v.Min @@ -3731,7 +3731,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMem }).(FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib) *int { if v == nil { @@ -3741,7 +3741,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMem }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibPtrOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib) *int { if v == nil { @@ -3752,9 +3752,9 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMem } type FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max *int `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min *int `pulumi:"min"` } @@ -3770,9 +3770,9 @@ type FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMb } type FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max pulumi.IntPtrInput `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min pulumi.IntPtrInput `pulumi:"min"` } @@ -3871,14 +3871,14 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidt } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps) *int { return v.Max }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps) *int { return v.Min @@ -3915,7 +3915,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidt }).(FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps) *int { if v == nil { @@ -3925,7 +3925,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidt }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsPtrOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps) *int { if v == nil { @@ -3936,9 +3936,9 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidt } type FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max *float64 `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min *float64 `pulumi:"min"` } @@ -3954,9 +3954,9 @@ type FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuInput } type FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max pulumi.Float64PtrInput `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min pulumi.Float64PtrInput `pulumi:"min"` } @@ -4055,12 +4055,12 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuOut } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu) *float64 { return v.Max }).(pulumi.Float64PtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuOutput) Min() pulumi.Float64PtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu) *float64 { return v.Min }).(pulumi.Float64PtrOutput) } @@ -4095,7 +4095,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuPtr }).(FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu) *float64 { if v == nil { @@ -4105,7 +4105,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuPtr }).(pulumi.Float64PtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuPtrOutput) Min() pulumi.Float64PtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu) *float64 { if v == nil { @@ -4116,9 +4116,9 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuPtr } type FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max *int `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min int `pulumi:"min"` } @@ -4134,9 +4134,9 @@ type FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibInput interfa } type FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max pulumi.IntPtrInput `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min pulumi.IntInput `pulumi:"min"` } @@ -4235,12 +4235,12 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibOutput) To } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib) *int { return v.Max }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibOutput) Min() pulumi.IntOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib) int { return v.Min }).(pulumi.IntOutput) } @@ -4275,7 +4275,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibPtrOutput) }).(FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib) *int { if v == nil { @@ -4285,7 +4285,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibPtrOutput) }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibPtrOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib) *int { if v == nil { @@ -4296,9 +4296,9 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibPtrOutput) } type FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max *float64 `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min *float64 `pulumi:"min"` } @@ -4314,9 +4314,9 @@ type FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsIn } type FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max pulumi.Float64PtrInput `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min pulumi.Float64PtrInput `pulumi:"min"` } @@ -4415,14 +4415,14 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbp } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps) *float64 { return v.Max }).(pulumi.Float64PtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsOutput) Min() pulumi.Float64PtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps) *float64 { return v.Min @@ -4459,7 +4459,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbp }).(FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps) *float64 { if v == nil { @@ -4469,7 +4469,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbp }).(pulumi.Float64PtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsPtrOutput) Min() pulumi.Float64PtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps) *float64 { if v == nil { @@ -4480,9 +4480,9 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbp } type FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max *int `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min *int `pulumi:"min"` } @@ -4498,9 +4498,9 @@ type FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountI } type FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max pulumi.IntPtrInput `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min pulumi.IntPtrInput `pulumi:"min"` } @@ -4599,12 +4599,12 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCou } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount) *int { return v.Max }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount) *int { return v.Min }).(pulumi.IntPtrOutput) } @@ -4639,7 +4639,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCou }).(FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount) *int { if v == nil { @@ -4649,7 +4649,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCou }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountPtrOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount) *int { if v == nil { @@ -4660,9 +4660,9 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCou } type FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max *float64 `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min *float64 `pulumi:"min"` } @@ -4678,9 +4678,9 @@ type FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbInp } type FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max pulumi.Float64PtrInput `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min pulumi.Float64PtrInput `pulumi:"min"` } @@ -4779,14 +4779,14 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb) *float64 { return v.Max }).(pulumi.Float64PtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbOutput) Min() pulumi.Float64PtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb) *float64 { return v.Min @@ -4823,7 +4823,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb }).(FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb) *float64 { if v == nil { @@ -4833,7 +4833,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb }).(pulumi.Float64PtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbPtrOutput) Min() pulumi.Float64PtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb) *float64 { if v == nil { @@ -4844,9 +4844,9 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb } type FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max *int `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min int `pulumi:"min"` } @@ -4862,9 +4862,9 @@ type FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountInput interfa } type FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // The maximum number of vCPUs. To specify no maximum limit, omit this parameter. Max pulumi.IntPtrInput `pulumi:"max"` - // Minimum. + // The minimum number of vCPUs. To specify no minimum limit, specify `0`. Min pulumi.IntInput `pulumi:"min"` } @@ -4963,12 +4963,12 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountOutput) To } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount) *int { return v.Max }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountOutput) Min() pulumi.IntOutput { return o.ApplyT(func(v FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount) int { return v.Min }).(pulumi.IntOutput) } @@ -5003,7 +5003,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountPtrOutput) }).(FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// The maximum number of vCPUs. To specify no maximum limit, omit this parameter. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount) *int { if v == nil { @@ -5013,7 +5013,7 @@ func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountPtrOutput) }).(pulumi.IntPtrOutput) } -// Minimum. +// The minimum number of vCPUs. To specify no minimum limit, specify `0`. func (o FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountPtrOutput) Min() pulumi.IntPtrOutput { return o.ApplyT(func(v *FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount) *int { if v == nil { @@ -13398,7 +13398,7 @@ func (o LaunchTemplateInstanceRequirementsPtrOutput) VcpuCount() LaunchTemplateI } type LaunchTemplateInstanceRequirementsAcceleratorCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -13416,7 +13416,7 @@ type LaunchTemplateInstanceRequirementsAcceleratorCountInput interface { } type LaunchTemplateInstanceRequirementsAcceleratorCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -13517,7 +13517,7 @@ func (o LaunchTemplateInstanceRequirementsAcceleratorCountOutput) ToOutput(ctx c } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsAcceleratorCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirementsAcceleratorCount) *int { return v.Max }).(pulumi.IntPtrOutput) } @@ -13557,7 +13557,7 @@ func (o LaunchTemplateInstanceRequirementsAcceleratorCountPtrOutput) Elem() Laun }).(LaunchTemplateInstanceRequirementsAcceleratorCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsAcceleratorCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirementsAcceleratorCount) *int { if v == nil { @@ -13578,7 +13578,7 @@ func (o LaunchTemplateInstanceRequirementsAcceleratorCountPtrOutput) Min() pulum } type LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -13596,7 +13596,7 @@ type LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibInput interface } type LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -13697,7 +13697,7 @@ func (o LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibOutput) ToOut } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib) *int { return v.Max }).(pulumi.IntPtrOutput) } @@ -13737,7 +13737,7 @@ func (o LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibPtrOutput) El }).(LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib) *int { if v == nil { @@ -13758,7 +13758,7 @@ func (o LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibPtrOutput) Mi } type LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -13776,7 +13776,7 @@ type LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsInput interface { } type LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -13877,7 +13877,7 @@ func (o LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsOutput) ToOutp } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps) *int { return v.Max }).(pulumi.IntPtrOutput) } @@ -13917,7 +13917,7 @@ func (o LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsPtrOutput) Ele }).(LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps) *int { if v == nil { @@ -13938,7 +13938,7 @@ func (o LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsPtrOutput) Min } type LaunchTemplateInstanceRequirementsMemoryGibPerVcpu struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *float64 `pulumi:"max"` // Minimum. Min *float64 `pulumi:"min"` @@ -13956,7 +13956,7 @@ type LaunchTemplateInstanceRequirementsMemoryGibPerVcpuInput interface { } type LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.Float64PtrInput `pulumi:"max"` // Minimum. Min pulumi.Float64PtrInput `pulumi:"min"` @@ -14057,7 +14057,7 @@ func (o LaunchTemplateInstanceRequirementsMemoryGibPerVcpuOutput) ToOutput(ctx c } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsMemoryGibPerVcpuOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirementsMemoryGibPerVcpu) *float64 { return v.Max }).(pulumi.Float64PtrOutput) } @@ -14097,7 +14097,7 @@ func (o LaunchTemplateInstanceRequirementsMemoryGibPerVcpuPtrOutput) Elem() Laun }).(LaunchTemplateInstanceRequirementsMemoryGibPerVcpuOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsMemoryGibPerVcpuPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirementsMemoryGibPerVcpu) *float64 { if v == nil { @@ -14118,7 +14118,7 @@ func (o LaunchTemplateInstanceRequirementsMemoryGibPerVcpuPtrOutput) Min() pulum } type LaunchTemplateInstanceRequirementsMemoryMib struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min int `pulumi:"min"` @@ -14136,7 +14136,7 @@ type LaunchTemplateInstanceRequirementsMemoryMibInput interface { } type LaunchTemplateInstanceRequirementsMemoryMibArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntInput `pulumi:"min"` @@ -14237,7 +14237,7 @@ func (o LaunchTemplateInstanceRequirementsMemoryMibOutput) ToOutput(ctx context. } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsMemoryMibOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirementsMemoryMib) *int { return v.Max }).(pulumi.IntPtrOutput) } @@ -14277,7 +14277,7 @@ func (o LaunchTemplateInstanceRequirementsMemoryMibPtrOutput) Elem() LaunchTempl }).(LaunchTemplateInstanceRequirementsMemoryMibOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsMemoryMibPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirementsMemoryMib) *int { if v == nil { @@ -14298,7 +14298,7 @@ func (o LaunchTemplateInstanceRequirementsMemoryMibPtrOutput) Min() pulumi.IntPt } type LaunchTemplateInstanceRequirementsNetworkBandwidthGbps struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *float64 `pulumi:"max"` // Minimum. Min *float64 `pulumi:"min"` @@ -14316,7 +14316,7 @@ type LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsInput interface { } type LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.Float64PtrInput `pulumi:"max"` // Minimum. Min pulumi.Float64PtrInput `pulumi:"min"` @@ -14417,7 +14417,7 @@ func (o LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsOutput) ToOutput(c } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirementsNetworkBandwidthGbps) *float64 { return v.Max }).(pulumi.Float64PtrOutput) } @@ -14457,7 +14457,7 @@ func (o LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsPtrOutput) Elem() }).(LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirementsNetworkBandwidthGbps) *float64 { if v == nil { @@ -14478,7 +14478,7 @@ func (o LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsPtrOutput) Min() p } type LaunchTemplateInstanceRequirementsNetworkInterfaceCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -14496,7 +14496,7 @@ type LaunchTemplateInstanceRequirementsNetworkInterfaceCountInput interface { } type LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -14597,7 +14597,7 @@ func (o LaunchTemplateInstanceRequirementsNetworkInterfaceCountOutput) ToOutput( } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsNetworkInterfaceCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirementsNetworkInterfaceCount) *int { return v.Max }).(pulumi.IntPtrOutput) } @@ -14637,7 +14637,7 @@ func (o LaunchTemplateInstanceRequirementsNetworkInterfaceCountPtrOutput) Elem() }).(LaunchTemplateInstanceRequirementsNetworkInterfaceCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsNetworkInterfaceCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirementsNetworkInterfaceCount) *int { if v == nil { @@ -14658,7 +14658,7 @@ func (o LaunchTemplateInstanceRequirementsNetworkInterfaceCountPtrOutput) Min() } type LaunchTemplateInstanceRequirementsTotalLocalStorageGb struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *float64 `pulumi:"max"` // Minimum. Min *float64 `pulumi:"min"` @@ -14676,7 +14676,7 @@ type LaunchTemplateInstanceRequirementsTotalLocalStorageGbInput interface { } type LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.Float64PtrInput `pulumi:"max"` // Minimum. Min pulumi.Float64PtrInput `pulumi:"min"` @@ -14777,7 +14777,7 @@ func (o LaunchTemplateInstanceRequirementsTotalLocalStorageGbOutput) ToOutput(ct } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsTotalLocalStorageGbOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirementsTotalLocalStorageGb) *float64 { return v.Max }).(pulumi.Float64PtrOutput) } @@ -14817,7 +14817,7 @@ func (o LaunchTemplateInstanceRequirementsTotalLocalStorageGbPtrOutput) Elem() L }).(LaunchTemplateInstanceRequirementsTotalLocalStorageGbOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsTotalLocalStorageGbPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirementsTotalLocalStorageGb) *float64 { if v == nil { @@ -14838,7 +14838,7 @@ func (o LaunchTemplateInstanceRequirementsTotalLocalStorageGbPtrOutput) Min() pu } type LaunchTemplateInstanceRequirementsVcpuCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min int `pulumi:"min"` @@ -14856,7 +14856,7 @@ type LaunchTemplateInstanceRequirementsVcpuCountInput interface { } type LaunchTemplateInstanceRequirementsVcpuCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntInput `pulumi:"min"` @@ -14957,7 +14957,7 @@ func (o LaunchTemplateInstanceRequirementsVcpuCountOutput) ToOutput(ctx context. } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsVcpuCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirementsVcpuCount) *int { return v.Max }).(pulumi.IntPtrOutput) } @@ -14997,7 +14997,7 @@ func (o LaunchTemplateInstanceRequirementsVcpuCountPtrOutput) Elem() LaunchTempl }).(LaunchTemplateInstanceRequirementsVcpuCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o LaunchTemplateInstanceRequirementsVcpuCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirementsVcpuCount) *int { if v == nil { @@ -31942,7 +31942,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsPtrOutpu } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -31960,7 +31960,7 @@ type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAccelerator } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -32061,7 +32061,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAccelera } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount) *int { return v.Max @@ -32105,7 +32105,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAccelera }).(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount) *int { if v == nil { @@ -32126,7 +32126,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAccelera } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -32144,7 +32144,7 @@ type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAccelerator } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -32245,7 +32245,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAccelera } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib) *int { return v.Max @@ -32289,7 +32289,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAccelera }).(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib) *int { if v == nil { @@ -32310,7 +32310,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAccelera } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -32328,7 +32328,7 @@ type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbs } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -32429,7 +32429,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaseline } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps) *int { return v.Max @@ -32473,7 +32473,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaseline }).(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps) *int { if v == nil { @@ -32494,7 +32494,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaseline } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *float64 `pulumi:"max"` // Minimum. Min *float64 `pulumi:"min"` @@ -32512,7 +32512,7 @@ type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPe } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.Float64PtrInput `pulumi:"max"` // Minimum. Min pulumi.Float64PtrInput `pulumi:"min"` @@ -32613,7 +32613,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGi } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu) *float64 { return v.Max @@ -32657,7 +32657,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGi }).(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu) *float64 { if v == nil { @@ -32678,7 +32678,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGi } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -32696,7 +32696,7 @@ type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibIn } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -32797,7 +32797,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMi } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib) *int { return v.Max }).(pulumi.IntPtrOutput) } @@ -32837,7 +32837,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMi }).(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib) *int { if v == nil { @@ -32858,7 +32858,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMi } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *float64 `pulumi:"max"` // Minimum. Min *float64 `pulumi:"min"` @@ -32876,7 +32876,7 @@ type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBand } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.Float64PtrInput `pulumi:"max"` // Minimum. Min pulumi.Float64PtrInput `pulumi:"min"` @@ -32977,7 +32977,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkB } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps) *float64 { return v.Max @@ -33021,7 +33021,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkB }).(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps) *float64 { if v == nil { @@ -33042,7 +33042,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkB } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -33060,7 +33060,7 @@ type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInte } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -33161,7 +33161,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkI } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount) *int { return v.Max @@ -33205,7 +33205,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkI }).(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount) *int { if v == nil { @@ -33226,7 +33226,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkI } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *float64 `pulumi:"max"` // Minimum. Min *float64 `pulumi:"min"` @@ -33244,7 +33244,7 @@ type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalS } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.Float64PtrInput `pulumi:"max"` // Minimum. Min pulumi.Float64PtrInput `pulumi:"min"` @@ -33345,7 +33345,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLoc } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb) *float64 { return v.Max @@ -33389,7 +33389,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLoc }).(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbPtrOutput) Max() pulumi.Float64PtrOutput { return o.ApplyT(func(v *SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb) *float64 { if v == nil { @@ -33410,7 +33410,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLoc } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max *int `pulumi:"max"` // Minimum. Min *int `pulumi:"min"` @@ -33428,7 +33428,7 @@ type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountIn } type SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs struct { - // Maximum. Set to `0` to exclude instance types with accelerators. + // Maximum. Max pulumi.IntPtrInput `pulumi:"max"` // Minimum. Min pulumi.IntPtrInput `pulumi:"min"` @@ -33529,7 +33529,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCoun } } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount) *int { return v.Max }).(pulumi.IntPtrOutput) } @@ -33569,7 +33569,7 @@ func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCoun }).(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountOutput) } -// Maximum. Set to `0` to exclude instance types with accelerators. +// Maximum. func (o SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountPtrOutput) Max() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount) *int { if v == nil { diff --git a/sdk/go/aws/ec2/spotInstanceRequest.go b/sdk/go/aws/ec2/spotInstanceRequest.go index ffd9e14c25f..d407dd20bb0 100644 --- a/sdk/go/aws/ec2/spotInstanceRequest.go +++ b/sdk/go/aws/ec2/spotInstanceRequest.go @@ -122,7 +122,7 @@ type SpotInstanceRequest struct { IamInstanceProfile pulumi.StringOutput `pulumi:"iamInstanceProfile"` // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior pulumi.StringOutput `pulumi:"instanceInitiatedShutdownBehavior"` - // The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + // Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. InstanceInterruptionBehavior pulumi.StringPtrOutput `pulumi:"instanceInterruptionBehavior"` InstanceState pulumi.StringOutput `pulumi:"instanceState"` // Instance type to use for the instance. Required unless `launchTemplate` is specified and the Launch Template specifies an instance type. If an instance type is specified in the Launch Template, setting `instanceType` will override the instance type specified in the Launch Template. Updates to this field will trigger a stop/start of the EC2 instance. @@ -210,7 +210,7 @@ type SpotInstanceRequest struct { UserDataReplaceOnChange pulumi.BoolPtrOutput `pulumi:"userDataReplaceOnChange"` // The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. ValidFrom pulumi.StringOutput `pulumi:"validFrom"` - // The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil pulumi.StringOutput `pulumi:"validUntil"` // Map of tags to assign, at instance-creation time, to root and EBS volumes. // @@ -309,7 +309,7 @@ type spotInstanceRequestState struct { IamInstanceProfile *string `pulumi:"iamInstanceProfile"` // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior *string `pulumi:"instanceInitiatedShutdownBehavior"` - // The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + // Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. InstanceInterruptionBehavior *string `pulumi:"instanceInterruptionBehavior"` InstanceState *string `pulumi:"instanceState"` // Instance type to use for the instance. Required unless `launchTemplate` is specified and the Launch Template specifies an instance type. If an instance type is specified in the Launch Template, setting `instanceType` will override the instance type specified in the Launch Template. Updates to this field will trigger a stop/start of the EC2 instance. @@ -397,7 +397,7 @@ type spotInstanceRequestState struct { UserDataReplaceOnChange *bool `pulumi:"userDataReplaceOnChange"` // The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. ValidFrom *string `pulumi:"validFrom"` - // The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil *string `pulumi:"validUntil"` // Map of tags to assign, at instance-creation time, to root and EBS volumes. // @@ -463,7 +463,7 @@ type SpotInstanceRequestState struct { IamInstanceProfile pulumi.StringPtrInput // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior pulumi.StringPtrInput - // The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + // Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. InstanceInterruptionBehavior pulumi.StringPtrInput InstanceState pulumi.StringPtrInput // Instance type to use for the instance. Required unless `launchTemplate` is specified and the Launch Template specifies an instance type. If an instance type is specified in the Launch Template, setting `instanceType` will override the instance type specified in the Launch Template. Updates to this field will trigger a stop/start of the EC2 instance. @@ -551,7 +551,7 @@ type SpotInstanceRequestState struct { UserDataReplaceOnChange pulumi.BoolPtrInput // The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. ValidFrom pulumi.StringPtrInput - // The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil pulumi.StringPtrInput // Map of tags to assign, at instance-creation time, to root and EBS volumes. // @@ -620,7 +620,7 @@ type spotInstanceRequestArgs struct { IamInstanceProfile *string `pulumi:"iamInstanceProfile"` // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior *string `pulumi:"instanceInitiatedShutdownBehavior"` - // The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + // Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. InstanceInterruptionBehavior *string `pulumi:"instanceInterruptionBehavior"` // Instance type to use for the instance. Required unless `launchTemplate` is specified and the Launch Template specifies an instance type. If an instance type is specified in the Launch Template, setting `instanceType` will override the instance type specified in the Launch Template. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType *string `pulumi:"instanceType"` @@ -680,7 +680,7 @@ type spotInstanceRequestArgs struct { UserDataReplaceOnChange *bool `pulumi:"userDataReplaceOnChange"` // The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. ValidFrom *string `pulumi:"validFrom"` - // The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil *string `pulumi:"validUntil"` // Map of tags to assign, at instance-creation time, to root and EBS volumes. // @@ -746,7 +746,7 @@ type SpotInstanceRequestArgs struct { IamInstanceProfile pulumi.StringPtrInput // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior pulumi.StringPtrInput - // The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + // Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. InstanceInterruptionBehavior pulumi.StringPtrInput // Instance type to use for the instance. Required unless `launchTemplate` is specified and the Launch Template specifies an instance type. If an instance type is specified in the Launch Template, setting `instanceType` will override the instance type specified in the Launch Template. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType pulumi.StringPtrInput @@ -806,7 +806,7 @@ type SpotInstanceRequestArgs struct { UserDataReplaceOnChange pulumi.BoolPtrInput // The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. ValidFrom pulumi.StringPtrInput - // The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil pulumi.StringPtrInput // Map of tags to assign, at instance-creation time, to root and EBS volumes. // @@ -1054,7 +1054,7 @@ func (o SpotInstanceRequestOutput) InstanceInitiatedShutdownBehavior() pulumi.St return o.ApplyT(func(v *SpotInstanceRequest) pulumi.StringOutput { return v.InstanceInitiatedShutdownBehavior }).(pulumi.StringOutput) } -// The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. +// Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. func (o SpotInstanceRequestOutput) InstanceInterruptionBehavior() pulumi.StringPtrOutput { return o.ApplyT(func(v *SpotInstanceRequest) pulumi.StringPtrOutput { return v.InstanceInterruptionBehavior }).(pulumi.StringPtrOutput) } @@ -1263,7 +1263,7 @@ func (o SpotInstanceRequestOutput) ValidFrom() pulumi.StringOutput { return o.ApplyT(func(v *SpotInstanceRequest) pulumi.StringOutput { return v.ValidFrom }).(pulumi.StringOutput) } -// The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. +// The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. func (o SpotInstanceRequestOutput) ValidUntil() pulumi.StringOutput { return o.ApplyT(func(v *SpotInstanceRequest) pulumi.StringOutput { return v.ValidUntil }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/ecrpublic/getAuthorizationToken.go b/sdk/go/aws/ecrpublic/getAuthorizationToken.go index b4a4e8a3851..82d2f9e6069 100644 --- a/sdk/go/aws/ecrpublic/getAuthorizationToken.go +++ b/sdk/go/aws/ecrpublic/getAuthorizationToken.go @@ -4,8 +4,12 @@ package ecrpublic import ( + "context" + "reflect" + "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" ) // The Public ECR Authorization Token data source allows the authorization token, token expiration date, user name, and password to be retrieved for a Public ECR repository. @@ -58,3 +62,64 @@ type GetAuthorizationTokenResult struct { // User name decoded from the authorization token. UserName string `pulumi:"userName"` } + +func GetAuthorizationTokenOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetAuthorizationTokenResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetAuthorizationTokenResult, error) { + r, err := GetAuthorizationToken(ctx, opts...) + var s GetAuthorizationTokenResult + if r != nil { + s = *r + } + return s, err + }).(GetAuthorizationTokenResultOutput) +} + +// A collection of values returned by getAuthorizationToken. +type GetAuthorizationTokenResultOutput struct{ *pulumi.OutputState } + +func (GetAuthorizationTokenResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetAuthorizationTokenResult)(nil)).Elem() +} + +func (o GetAuthorizationTokenResultOutput) ToGetAuthorizationTokenResultOutput() GetAuthorizationTokenResultOutput { + return o +} + +func (o GetAuthorizationTokenResultOutput) ToGetAuthorizationTokenResultOutputWithContext(ctx context.Context) GetAuthorizationTokenResultOutput { + return o +} + +func (o GetAuthorizationTokenResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetAuthorizationTokenResult] { + return pulumix.Output[GetAuthorizationTokenResult]{ + OutputState: o.OutputState, + } +} + +// Temporary IAM authentication credentials to access the ECR repository encoded in base64 in the form of `user_name:password`. +func (o GetAuthorizationTokenResultOutput) AuthorizationToken() pulumi.StringOutput { + return o.ApplyT(func(v GetAuthorizationTokenResult) string { return v.AuthorizationToken }).(pulumi.StringOutput) +} + +// Time in UTC RFC3339 format when the authorization token expires. +func (o GetAuthorizationTokenResultOutput) ExpiresAt() pulumi.StringOutput { + return o.ApplyT(func(v GetAuthorizationTokenResult) string { return v.ExpiresAt }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetAuthorizationTokenResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetAuthorizationTokenResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Password decoded from the authorization token. +func (o GetAuthorizationTokenResultOutput) Password() pulumi.StringOutput { + return o.ApplyT(func(v GetAuthorizationTokenResult) string { return v.Password }).(pulumi.StringOutput) +} + +// User name decoded from the authorization token. +func (o GetAuthorizationTokenResultOutput) UserName() pulumi.StringOutput { + return o.ApplyT(func(v GetAuthorizationTokenResult) string { return v.UserName }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetAuthorizationTokenResultOutput{}) +} diff --git a/sdk/go/aws/eks/fargateProfile.go b/sdk/go/aws/eks/fargateProfile.go index 5a3ae95b302..856a72f2f6c 100644 --- a/sdk/go/aws/eks/fargateProfile.go +++ b/sdk/go/aws/eks/fargateProfile.go @@ -26,38 +26,35 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example { -// splat0 = append(splat0, val0.Id) -// } -// _, err := eks.NewFargateProfile(ctx, "example", &eks.FargateProfileArgs{ -// ClusterName: pulumi.Any(aws_eks_cluster.Example.Name), -// PodExecutionRoleArn: pulumi.Any(aws_iam_role.Example.Arn), -// SubnetIds: toPulumiAnyArray(splat0), -// Selectors: eks.FargateProfileSelectorArray{ -// &eks.FargateProfileSelectorArgs{ -// Namespace: pulumi.String("example"), -// }, -// }, -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example { +// splat0 = append(splat0, val0.Id) +// } +// _, err := eks.NewFargateProfile(ctx, "example", &eks.FargateProfileArgs{ +// ClusterName: pulumi.Any(aws_eks_cluster.Example.Name), +// PodExecutionRoleArn: pulumi.Any(aws_iam_role.Example.Arn), +// SubnetIds: toPulumiArray(splat0), +// Selectors: eks.FargateProfileSelectorArray{ +// &eks.FargateProfileSelectorArgs{ +// Namespace: pulumi.String("example"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // ### Example IAM Role for EKS Fargate Profile // diff --git a/sdk/go/aws/eks/getClusters.go b/sdk/go/aws/eks/getClusters.go index 4a013614e49..f3f6b3cc729 100644 --- a/sdk/go/aws/eks/getClusters.go +++ b/sdk/go/aws/eks/getClusters.go @@ -4,8 +4,12 @@ package eks import ( + "context" + "reflect" + "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" ) // Retrieve EKS Clusters list @@ -26,3 +30,49 @@ type GetClustersResult struct { // Set of EKS clusters names Names []string `pulumi:"names"` } + +func GetClustersOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetClustersResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetClustersResult, error) { + r, err := GetClusters(ctx, opts...) + var s GetClustersResult + if r != nil { + s = *r + } + return s, err + }).(GetClustersResultOutput) +} + +// A collection of values returned by getClusters. +type GetClustersResultOutput struct{ *pulumi.OutputState } + +func (GetClustersResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClustersResult)(nil)).Elem() +} + +func (o GetClustersResultOutput) ToGetClustersResultOutput() GetClustersResultOutput { + return o +} + +func (o GetClustersResultOutput) ToGetClustersResultOutputWithContext(ctx context.Context) GetClustersResultOutput { + return o +} + +func (o GetClustersResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetClustersResult] { + return pulumix.Output[GetClustersResult]{ + OutputState: o.OutputState, + } +} + +// The provider-assigned unique ID for this managed resource. +func (o GetClustersResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetClustersResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Set of EKS clusters names +func (o GetClustersResultOutput) Names() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetClustersResult) []string { return v.Names }).(pulumi.StringArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetClustersResultOutput{}) +} diff --git a/sdk/go/aws/eks/nodeGroup.go b/sdk/go/aws/eks/nodeGroup.go index 27da5829d07..8da9bc50cc4 100644 --- a/sdk/go/aws/eks/nodeGroup.go +++ b/sdk/go/aws/eks/nodeGroup.go @@ -26,45 +26,42 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example { -// splat0 = append(splat0, val0.Id) -// } -// _, err := eks.NewNodeGroup(ctx, "example", &eks.NodeGroupArgs{ -// ClusterName: pulumi.Any(aws_eks_cluster.Example.Name), -// NodeRoleArn: pulumi.Any(aws_iam_role.Example.Arn), -// SubnetIds: toPulumiAnyArray(splat0), -// ScalingConfig: &eks.NodeGroupScalingConfigArgs{ -// DesiredSize: pulumi.Int(1), -// MaxSize: pulumi.Int(2), -// MinSize: pulumi.Int(1), -// }, -// UpdateConfig: &eks.NodeGroupUpdateConfigArgs{ -// MaxUnavailable: pulumi.Int(1), -// }, -// }, pulumi.DependsOn([]pulumi.Resource{ -// aws_iam_role_policy_attachment.ExampleAmazonEKSWorkerNodePolicy, -// aws_iam_role_policy_attachment.ExampleAmazonEKS_CNI_Policy, -// aws_iam_role_policy_attachment.ExampleAmazonEC2ContainerRegistryReadOnly, -// })) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example { +// splat0 = append(splat0, val0.Id) +// } +// _, err := eks.NewNodeGroup(ctx, "example", &eks.NodeGroupArgs{ +// ClusterName: pulumi.Any(aws_eks_cluster.Example.Name), +// NodeRoleArn: pulumi.Any(aws_iam_role.Example.Arn), +// SubnetIds: toPulumiArray(splat0), +// ScalingConfig: &eks.NodeGroupScalingConfigArgs{ +// DesiredSize: pulumi.Int(1), +// MaxSize: pulumi.Int(2), +// MinSize: pulumi.Int(1), +// }, +// UpdateConfig: &eks.NodeGroupUpdateConfigArgs{ +// MaxUnavailable: pulumi.Int(1), +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// aws_iam_role_policy_attachment.ExampleAmazonEKSWorkerNodePolicy, +// aws_iam_role_policy_attachment.ExampleAmazonEKS_CNI_Policy, +// aws_iam_role_policy_attachment.ExampleAmazonEC2ContainerRegistryReadOnly, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // ### Ignoring Changes to Desired Size // diff --git a/sdk/go/aws/glue/pulumiTypes.go b/sdk/go/aws/glue/pulumiTypes.go index 940a50b7896..cdd713666c4 100644 --- a/sdk/go/aws/glue/pulumiTypes.go +++ b/sdk/go/aws/glue/pulumiTypes.go @@ -5369,15 +5369,15 @@ func (o CrawlerRecrawlPolicyPtrOutput) RecrawlBehavior() pulumi.StringPtrOutput } type CrawlerS3Target struct { - // The name of the connection to use to connect to the JDBC target. + // The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. ConnectionName *string `pulumi:"connectionName"` - // The ARN of the dead-letter SQS queue. + // A valid Amazon SQS ARN. // // > **Note:** `deletionBehavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. // // > **Note:** `configuration` for catalog target crawlers will have `{ ... "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas"} }` by default. DlqEventQueueArn *string `pulumi:"dlqEventQueueArn"` - // The ARN of the SQS queue to receive S3 notifications from. + // A valid Amazon SQS ARN. EventQueueArn *string `pulumi:"eventQueueArn"` // A list of glob patterns used to exclude from the crawl. Exclusions []string `pulumi:"exclusions"` @@ -5399,15 +5399,15 @@ type CrawlerS3TargetInput interface { } type CrawlerS3TargetArgs struct { - // The name of the connection to use to connect to the JDBC target. + // The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. ConnectionName pulumi.StringPtrInput `pulumi:"connectionName"` - // The ARN of the dead-letter SQS queue. + // A valid Amazon SQS ARN. // // > **Note:** `deletionBehavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. // // > **Note:** `configuration` for catalog target crawlers will have `{ ... "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas"} }` by default. DlqEventQueueArn pulumi.StringPtrInput `pulumi:"dlqEventQueueArn"` - // The ARN of the SQS queue to receive S3 notifications from. + // A valid Amazon SQS ARN. EventQueueArn pulumi.StringPtrInput `pulumi:"eventQueueArn"` // A list of glob patterns used to exclude from the crawl. Exclusions pulumi.StringArrayInput `pulumi:"exclusions"` @@ -5486,12 +5486,12 @@ func (o CrawlerS3TargetOutput) ToOutput(ctx context.Context) pulumix.Output[Craw } } -// The name of the connection to use to connect to the JDBC target. +// The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. func (o CrawlerS3TargetOutput) ConnectionName() pulumi.StringPtrOutput { return o.ApplyT(func(v CrawlerS3Target) *string { return v.ConnectionName }).(pulumi.StringPtrOutput) } -// The ARN of the dead-letter SQS queue. +// A valid Amazon SQS ARN. // // > **Note:** `deletionBehavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. // @@ -5500,7 +5500,7 @@ func (o CrawlerS3TargetOutput) DlqEventQueueArn() pulumi.StringPtrOutput { return o.ApplyT(func(v CrawlerS3Target) *string { return v.DlqEventQueueArn }).(pulumi.StringPtrOutput) } -// The ARN of the SQS queue to receive S3 notifications from. +// A valid Amazon SQS ARN. func (o CrawlerS3TargetOutput) EventQueueArn() pulumi.StringPtrOutput { return o.ApplyT(func(v CrawlerS3Target) *string { return v.EventQueueArn }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/iam/getAccountAlias.go b/sdk/go/aws/iam/getAccountAlias.go index 214e85c816f..b47c71016d2 100644 --- a/sdk/go/aws/iam/getAccountAlias.go +++ b/sdk/go/aws/iam/getAccountAlias.go @@ -4,8 +4,12 @@ package iam import ( + "context" + "reflect" + "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" ) // The IAM Account Alias data source allows access to the account alias @@ -52,3 +56,49 @@ type LookupAccountAliasResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` } + +func LookupAccountAliasOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) LookupAccountAliasResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (LookupAccountAliasResult, error) { + r, err := LookupAccountAlias(ctx, opts...) + var s LookupAccountAliasResult + if r != nil { + s = *r + } + return s, err + }).(LookupAccountAliasResultOutput) +} + +// A collection of values returned by getAccountAlias. +type LookupAccountAliasResultOutput struct{ *pulumi.OutputState } + +func (LookupAccountAliasResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAccountAliasResult)(nil)).Elem() +} + +func (o LookupAccountAliasResultOutput) ToLookupAccountAliasResultOutput() LookupAccountAliasResultOutput { + return o +} + +func (o LookupAccountAliasResultOutput) ToLookupAccountAliasResultOutputWithContext(ctx context.Context) LookupAccountAliasResultOutput { + return o +} + +func (o LookupAccountAliasResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupAccountAliasResult] { + return pulumix.Output[LookupAccountAliasResult]{ + OutputState: o.OutputState, + } +} + +// Alias associated with the AWS account. +func (o LookupAccountAliasResultOutput) AccountAlias() pulumi.StringOutput { + return o.ApplyT(func(v LookupAccountAliasResult) string { return v.AccountAlias }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupAccountAliasResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupAccountAliasResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAccountAliasResultOutput{}) +} diff --git a/sdk/go/aws/iam/policyAttachment.go b/sdk/go/aws/iam/policyAttachment.go index ee4f976141f..acdcc7d304e 100644 --- a/sdk/go/aws/iam/policyAttachment.go +++ b/sdk/go/aws/iam/policyAttachment.go @@ -94,13 +94,13 @@ import ( // return err // } // _, err = iam.NewPolicyAttachment(ctx, "test-attach", &iam.PolicyAttachmentArgs{ -// Users: pulumi.AnyArray{ +// Users: pulumi.Array{ // user.Name, // }, -// Roles: pulumi.AnyArray{ +// Roles: pulumi.Array{ // role.Name, // }, -// Groups: pulumi.AnyArray{ +// Groups: pulumi.Array{ // group.Name, // }, // PolicyArn: policyPolicy.Arn, diff --git a/sdk/go/aws/inspector/getRulesPackages.go b/sdk/go/aws/inspector/getRulesPackages.go index 524383152f6..8b889e5284e 100644 --- a/sdk/go/aws/inspector/getRulesPackages.go +++ b/sdk/go/aws/inspector/getRulesPackages.go @@ -4,8 +4,12 @@ package inspector import ( + "context" + "reflect" + "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" ) // The Amazon Inspector Classic Rules Packages data source allows access to the list of AWS @@ -74,3 +78,49 @@ type GetRulesPackagesResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` } + +func GetRulesPackagesOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetRulesPackagesResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetRulesPackagesResult, error) { + r, err := GetRulesPackages(ctx, opts...) + var s GetRulesPackagesResult + if r != nil { + s = *r + } + return s, err + }).(GetRulesPackagesResultOutput) +} + +// A collection of values returned by getRulesPackages. +type GetRulesPackagesResultOutput struct{ *pulumi.OutputState } + +func (GetRulesPackagesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetRulesPackagesResult)(nil)).Elem() +} + +func (o GetRulesPackagesResultOutput) ToGetRulesPackagesResultOutput() GetRulesPackagesResultOutput { + return o +} + +func (o GetRulesPackagesResultOutput) ToGetRulesPackagesResultOutputWithContext(ctx context.Context) GetRulesPackagesResultOutput { + return o +} + +func (o GetRulesPackagesResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetRulesPackagesResult] { + return pulumix.Output[GetRulesPackagesResult]{ + OutputState: o.OutputState, + } +} + +// List of the Amazon Inspector Classic Rules Packages arns available in the AWS region. +func (o GetRulesPackagesResultOutput) Arns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetRulesPackagesResult) []string { return v.Arns }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetRulesPackagesResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetRulesPackagesResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetRulesPackagesResultOutput{}) +} diff --git a/sdk/go/aws/iot/pulumiTypes.go b/sdk/go/aws/iot/pulumiTypes.go index 4b2e7a969c2..b3f722d3083 100644 --- a/sdk/go/aws/iot/pulumiTypes.go +++ b/sdk/go/aws/iot/pulumiTypes.go @@ -2953,8 +2953,6 @@ func (o TopicRuleDynamodbv2ArrayOutput) Index(i pulumi.IntInput) TopicRuleDynamo type TopicRuleDynamodbv2PutItem struct { // The name of the DynamoDB table. - // - // The `dynamodbv2` object takes the following arguments: TableName string `pulumi:"tableName"` } @@ -2971,8 +2969,6 @@ type TopicRuleDynamodbv2PutItemInput interface { type TopicRuleDynamodbv2PutItemArgs struct { // The name of the DynamoDB table. - // - // The `dynamodbv2` object takes the following arguments: TableName pulumi.StringInput `pulumi:"tableName"` } @@ -3072,8 +3068,6 @@ func (o TopicRuleDynamodbv2PutItemOutput) ToOutput(ctx context.Context) pulumix. } // The name of the DynamoDB table. -// -// The `dynamodbv2` object takes the following arguments: func (o TopicRuleDynamodbv2PutItemOutput) TableName() pulumi.StringOutput { return o.ApplyT(func(v TopicRuleDynamodbv2PutItem) string { return v.TableName }).(pulumi.StringOutput) } @@ -3109,8 +3103,6 @@ func (o TopicRuleDynamodbv2PutItemPtrOutput) Elem() TopicRuleDynamodbv2PutItemOu } // The name of the DynamoDB table. -// -// The `dynamodbv2` object takes the following arguments: func (o TopicRuleDynamodbv2PutItemPtrOutput) TableName() pulumi.StringPtrOutput { return o.ApplyT(func(v *TopicRuleDynamodbv2PutItem) *string { if v == nil { @@ -4872,8 +4864,6 @@ func (o TopicRuleErrorActionDynamodbv2PtrOutput) RoleArn() pulumi.StringPtrOutpu type TopicRuleErrorActionDynamodbv2PutItem struct { // The name of the DynamoDB table. - // - // The `dynamodbv2` object takes the following arguments: TableName string `pulumi:"tableName"` } @@ -4890,8 +4880,6 @@ type TopicRuleErrorActionDynamodbv2PutItemInput interface { type TopicRuleErrorActionDynamodbv2PutItemArgs struct { // The name of the DynamoDB table. - // - // The `dynamodbv2` object takes the following arguments: TableName pulumi.StringInput `pulumi:"tableName"` } @@ -4991,8 +4979,6 @@ func (o TopicRuleErrorActionDynamodbv2PutItemOutput) ToOutput(ctx context.Contex } // The name of the DynamoDB table. -// -// The `dynamodbv2` object takes the following arguments: func (o TopicRuleErrorActionDynamodbv2PutItemOutput) TableName() pulumi.StringOutput { return o.ApplyT(func(v TopicRuleErrorActionDynamodbv2PutItem) string { return v.TableName }).(pulumi.StringOutput) } @@ -5028,8 +5014,6 @@ func (o TopicRuleErrorActionDynamodbv2PutItemPtrOutput) Elem() TopicRuleErrorAct } // The name of the DynamoDB table. -// -// The `dynamodbv2` object takes the following arguments: func (o TopicRuleErrorActionDynamodbv2PutItemPtrOutput) TableName() pulumi.StringPtrOutput { return o.ApplyT(func(v *TopicRuleErrorActionDynamodbv2PutItem) *string { if v == nil { diff --git a/sdk/go/aws/kinesis/pulumiTypes.go b/sdk/go/aws/kinesis/pulumiTypes.go index e9a5aa008de..c041cd8037e 100644 --- a/sdk/go/aws/kinesis/pulumiTypes.go +++ b/sdk/go/aws/kinesis/pulumiTypes.go @@ -5969,7 +5969,6 @@ type FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration 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. - // 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 *FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` @@ -5982,7 +5981,7 @@ type FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn string `pulumi:"roleArn"` } @@ -6003,7 +6002,6 @@ type FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs 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. - // 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 FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` @@ -6016,7 +6014,7 @@ type FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs struct 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn pulumi.StringInput `pulumi:"roleArn"` } @@ -6128,7 +6126,6 @@ func (o FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationOutput) B } // 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 FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) } @@ -6165,7 +6162,7 @@ func (o FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationOutput) P return o.ApplyT(func(v FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration) string { return v.RoleArn }).(pulumi.StringOutput) } @@ -6221,7 +6218,6 @@ func (o FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationPtrOutput } // 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 FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration) *int { if v == nil { @@ -6282,7 +6278,7 @@ func (o FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationPtrOutput }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration) *string { if v == nil { @@ -6717,7 +6713,6 @@ type FirehoseDeliveryStreamExtendedS3Configuration 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. - // 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 *FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` @@ -6736,11 +6731,11 @@ type FirehoseDeliveryStreamExtendedS3Configuration struct { Prefix *string `pulumi:"prefix"` // The data processing configuration. More details are given below. ProcessingConfiguration *FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfiguration `pulumi:"processingConfiguration"` - // The ARN of the role that provides access to the source Kinesis stream. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn string `pulumi:"roleArn"` // The configuration for backup in Amazon S3. Required if `s3BackupMode` is `Enabled`. Supports the same fields as `s3Configuration` object. S3BackupConfiguration *FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration `pulumi:"s3BackupConfiguration"` - // The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + // Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. S3BackupMode *string `pulumi:"s3BackupMode"` } @@ -6761,7 +6756,6 @@ type FirehoseDeliveryStreamExtendedS3ConfigurationArgs 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. - // 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 FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` @@ -6780,11 +6774,11 @@ type FirehoseDeliveryStreamExtendedS3ConfigurationArgs struct { Prefix pulumi.StringPtrInput `pulumi:"prefix"` // The data processing configuration. More details are given below. ProcessingConfiguration FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationPtrInput `pulumi:"processingConfiguration"` - // The ARN of the role that provides access to the source Kinesis stream. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn pulumi.StringInput `pulumi:"roleArn"` // The configuration for backup in Amazon S3. Required if `s3BackupMode` is `Enabled`. Supports the same fields as `s3Configuration` object. S3BackupConfiguration FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationPtrInput `pulumi:"s3BackupConfiguration"` - // The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + // Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. S3BackupMode pulumi.StringPtrInput `pulumi:"s3BackupMode"` } @@ -6894,7 +6888,6 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationOutput) 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. func (o FirehoseDeliveryStreamExtendedS3ConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamExtendedS3Configuration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) } @@ -6948,7 +6941,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationOutput) ProcessingConfigura }).(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamExtendedS3ConfigurationOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamExtendedS3Configuration) string { return v.RoleArn }).(pulumi.StringOutput) } @@ -6960,7 +6953,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationOutput) S3BackupConfigurati }).(FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationPtrOutput) } -// The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. +// Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. func (o FirehoseDeliveryStreamExtendedS3ConfigurationOutput) S3BackupMode() pulumi.StringPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamExtendedS3Configuration) *string { return v.S3BackupMode }).(pulumi.StringPtrOutput) } @@ -7016,7 +7009,6 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput) BufferingInterva } // 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 FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamExtendedS3Configuration) *int { if v == nil { @@ -7107,7 +7099,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput) ProcessingConfig }).(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamExtendedS3Configuration) *string { if v == nil { @@ -7127,7 +7119,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput) S3BackupConfigur }).(FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationPtrOutput) } -// The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. +// Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. func (o FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput) S3BackupMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamExtendedS3Configuration) *string { if v == nil { @@ -10170,7 +10162,6 @@ type FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration 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. - // 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 *FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` @@ -10183,7 +10174,7 @@ type FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn string `pulumi:"roleArn"` } @@ -10204,7 +10195,6 @@ type FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs stru // 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 FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` @@ -10217,7 +10207,7 @@ type FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs stru 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn pulumi.StringInput `pulumi:"roleArn"` } @@ -10329,7 +10319,6 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationOutput } // 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 FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration) *int { return v.BufferingSize @@ -10368,7 +10357,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationOutput return o.ApplyT(func(v FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration) string { return v.RoleArn }).(pulumi.StringOutput) } @@ -10424,7 +10413,6 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationPtrOut } // 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 FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration) *int { if v == nil { @@ -10485,7 +10473,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationPtrOut }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration) *string { if v == nil { @@ -12063,7 +12051,6 @@ type FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration 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. - // 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 *FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` @@ -12076,7 +12063,7 @@ type FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn string `pulumi:"roleArn"` } @@ -12097,7 +12084,6 @@ type FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs 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. - // 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 FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` @@ -12110,7 +12096,7 @@ type FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn pulumi.StringInput `pulumi:"roleArn"` } @@ -12222,7 +12208,6 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationOutput) Bu } // 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 FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) } @@ -12259,7 +12244,7 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationOutput) Pr return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration) string { return v.RoleArn }).(pulumi.StringOutput) } @@ -12315,7 +12300,6 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationPtrOutput) } // 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 FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration) *int { if v == nil { @@ -12376,7 +12360,7 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationPtrOutput) }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration) *string { if v == nil { @@ -14237,7 +14221,6 @@ type FirehoseDeliveryStreamOpensearchConfigurationS3Configuration 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. - // 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 *FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` @@ -14250,7 +14233,7 @@ type FirehoseDeliveryStreamOpensearchConfigurationS3Configuration struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn string `pulumi:"roleArn"` } @@ -14271,7 +14254,6 @@ type FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs 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. - // 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 FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` @@ -14284,7 +14266,7 @@ type FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn pulumi.StringInput `pulumi:"roleArn"` } @@ -14394,7 +14376,6 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationOutput) Buff } // 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 FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchConfigurationS3Configuration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) } @@ -14431,7 +14412,7 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationOutput) Pref return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchConfigurationS3Configuration) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchConfigurationS3Configuration) string { return v.RoleArn }).(pulumi.StringOutput) } @@ -14487,7 +14468,6 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationPtrOutput) B } // 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 FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchConfigurationS3Configuration) *int { if v == nil { @@ -14548,7 +14528,7 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationPtrOutput) P }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchConfigurationS3Configuration) *string { if v == nil { @@ -16005,7 +15985,6 @@ type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration stru // 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"` @@ -16018,7 +15997,7 @@ type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration stru 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn string `pulumi:"roleArn"` } @@ -16039,7 +16018,6 @@ type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs // 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"` @@ -16052,7 +16030,7 @@ type FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn pulumi.StringInput `pulumi:"roleArn"` } @@ -16166,7 +16144,6 @@ func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOu } // 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 @@ -16209,7 +16186,7 @@ func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOu }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) string { return v.RoleArn @@ -16267,7 +16244,6 @@ func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPt } // 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 { @@ -16328,7 +16304,7 @@ func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPt }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration) *string { if v == nil { @@ -17821,7 +17797,6 @@ type FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration 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. - // 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 *FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` @@ -17834,7 +17809,7 @@ type FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn string `pulumi:"roleArn"` } @@ -17855,7 +17830,6 @@ type FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs 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. - // 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 FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` @@ -17868,7 +17842,7 @@ type FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs struct 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn pulumi.StringInput `pulumi:"roleArn"` } @@ -17980,7 +17954,6 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationOutput) } // 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 FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) } @@ -18017,7 +17990,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationOutput) return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration) string { return v.RoleArn }).(pulumi.StringOutput) } @@ -18073,7 +18046,6 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationPtrOutpu } // 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 FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration) *int { if v == nil { @@ -18134,7 +18106,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationPtrOutpu }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration) *string { if v == nil { @@ -18355,7 +18327,6 @@ type FirehoseDeliveryStreamRedshiftConfigurationS3Configuration 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. - // 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 *FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` @@ -18368,7 +18339,7 @@ type FirehoseDeliveryStreamRedshiftConfigurationS3Configuration struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn string `pulumi:"roleArn"` } @@ -18389,7 +18360,6 @@ type FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs 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. - // 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 FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` @@ -18402,7 +18372,7 @@ type FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn pulumi.StringInput `pulumi:"roleArn"` } @@ -18512,7 +18482,6 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationOutput) Buffer } // 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 FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationS3Configuration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) } @@ -18545,7 +18514,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationOutput) Prefix return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationS3Configuration) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationS3Configuration) string { return v.RoleArn }).(pulumi.StringOutput) } @@ -18601,7 +18570,6 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationPtrOutput) Buf } // 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 FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfigurationS3Configuration) *int { if v == nil { @@ -18662,7 +18630,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationPtrOutput) Pre }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamRedshiftConfigurationS3Configuration) *string { if v == nil { @@ -20068,7 +20036,6 @@ type FirehoseDeliveryStreamSplunkConfigurationS3Configuration 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. - // 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 *FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` @@ -20081,7 +20048,7 @@ type FirehoseDeliveryStreamSplunkConfigurationS3Configuration struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn string `pulumi:"roleArn"` } @@ -20102,7 +20069,6 @@ type FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs 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. - // 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 FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` @@ -20115,7 +20081,7 @@ type FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs struct { 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. + // The ARN of the role used to access the Amazon MSK cluster. RoleArn pulumi.StringInput `pulumi:"roleArn"` } @@ -20225,7 +20191,6 @@ func (o FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationOutput) Bufferin } // 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 FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfigurationS3Configuration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) } @@ -20258,7 +20223,7 @@ func (o FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationOutput) Prefix() return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfigurationS3Configuration) *string { return v.Prefix }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfigurationS3Configuration) string { return v.RoleArn }).(pulumi.StringOutput) } @@ -20314,7 +20279,6 @@ func (o FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationPtrOutput) Buffe } // 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 FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamSplunkConfigurationS3Configuration) *int { if v == nil { @@ -20375,7 +20339,7 @@ func (o FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationPtrOutput) Prefi }).(pulumi.StringPtrOutput) } -// The ARN of the role that provides access to the source Kinesis stream. +// The ARN of the role used to access the Amazon MSK cluster. func (o FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamSplunkConfigurationS3Configuration) *string { if v == nil { diff --git a/sdk/go/aws/lambda/getFunctions.go b/sdk/go/aws/lambda/getFunctions.go index 2f5d3067655..3c320af337a 100644 --- a/sdk/go/aws/lambda/getFunctions.go +++ b/sdk/go/aws/lambda/getFunctions.go @@ -4,8 +4,12 @@ package lambda import ( + "context" + "reflect" + "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" ) // Data resource to get a list of Lambda Functions. @@ -52,3 +56,54 @@ type GetFunctionsResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` } + +func GetFunctionsOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetFunctionsResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetFunctionsResult, error) { + r, err := GetFunctions(ctx, opts...) + var s GetFunctionsResult + if r != nil { + s = *r + } + return s, err + }).(GetFunctionsResultOutput) +} + +// A collection of values returned by getFunctions. +type GetFunctionsResultOutput struct{ *pulumi.OutputState } + +func (GetFunctionsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetFunctionsResult)(nil)).Elem() +} + +func (o GetFunctionsResultOutput) ToGetFunctionsResultOutput() GetFunctionsResultOutput { + return o +} + +func (o GetFunctionsResultOutput) ToGetFunctionsResultOutputWithContext(ctx context.Context) GetFunctionsResultOutput { + return o +} + +func (o GetFunctionsResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetFunctionsResult] { + return pulumix.Output[GetFunctionsResult]{ + OutputState: o.OutputState, + } +} + +// A list of Lambda Function ARNs. +func (o GetFunctionsResultOutput) FunctionArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetFunctionsResult) []string { return v.FunctionArns }).(pulumi.StringArrayOutput) +} + +// A list of Lambda Function names. +func (o GetFunctionsResultOutput) FunctionNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetFunctionsResult) []string { return v.FunctionNames }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetFunctionsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetFunctionsResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetFunctionsResultOutput{}) +} diff --git a/sdk/go/aws/lb/pulumiTypes.go b/sdk/go/aws/lb/pulumiTypes.go index f1a638ae5d9..8632cf44567 100644 --- a/sdk/go/aws/lb/pulumiTypes.go +++ b/sdk/go/aws/lb/pulumiTypes.go @@ -3801,8 +3801,6 @@ func (o ListenerRuleConditionArrayOutput) Index(i pulumi.IntInput) ListenerRuleC type ListenerRuleConditionHostHeader struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values []string `pulumi:"values"` } @@ -3819,8 +3817,6 @@ type ListenerRuleConditionHostHeaderInput interface { type ListenerRuleConditionHostHeaderArgs struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values pulumi.StringArrayInput `pulumi:"values"` } @@ -3920,8 +3916,6 @@ func (o ListenerRuleConditionHostHeaderOutput) ToOutput(ctx context.Context) pul } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionHostHeaderOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ListenerRuleConditionHostHeader) []string { return v.Values }).(pulumi.StringArrayOutput) } @@ -3957,8 +3951,6 @@ func (o ListenerRuleConditionHostHeaderPtrOutput) Elem() ListenerRuleConditionHo } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionHostHeaderPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *ListenerRuleConditionHostHeader) []string { if v == nil { @@ -4150,8 +4142,6 @@ func (o ListenerRuleConditionHttpHeaderPtrOutput) Values() pulumi.StringArrayOut type ListenerRuleConditionHttpRequestMethod struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values []string `pulumi:"values"` } @@ -4168,8 +4158,6 @@ type ListenerRuleConditionHttpRequestMethodInput interface { type ListenerRuleConditionHttpRequestMethodArgs struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values pulumi.StringArrayInput `pulumi:"values"` } @@ -4269,8 +4257,6 @@ func (o ListenerRuleConditionHttpRequestMethodOutput) ToOutput(ctx context.Conte } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionHttpRequestMethodOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ListenerRuleConditionHttpRequestMethod) []string { return v.Values }).(pulumi.StringArrayOutput) } @@ -4306,8 +4292,6 @@ func (o ListenerRuleConditionHttpRequestMethodPtrOutput) Elem() ListenerRuleCond } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionHttpRequestMethodPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *ListenerRuleConditionHttpRequestMethod) []string { if v == nil { @@ -4319,8 +4303,6 @@ func (o ListenerRuleConditionHttpRequestMethodPtrOutput) Values() pulumi.StringA type ListenerRuleConditionPathPattern struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values []string `pulumi:"values"` } @@ -4337,8 +4319,6 @@ type ListenerRuleConditionPathPatternInput interface { type ListenerRuleConditionPathPatternArgs struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values pulumi.StringArrayInput `pulumi:"values"` } @@ -4438,8 +4418,6 @@ func (o ListenerRuleConditionPathPatternOutput) ToOutput(ctx context.Context) pu } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionPathPatternOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ListenerRuleConditionPathPattern) []string { return v.Values }).(pulumi.StringArrayOutput) } @@ -4475,8 +4453,6 @@ func (o ListenerRuleConditionPathPatternPtrOutput) Elem() ListenerRuleConditionP } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionPathPatternPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *ListenerRuleConditionPathPattern) []string { if v == nil { @@ -4618,8 +4594,6 @@ func (o ListenerRuleConditionQueryStringArrayOutput) Index(i pulumi.IntInput) Li type ListenerRuleConditionSourceIp struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values []string `pulumi:"values"` } @@ -4636,8 +4610,6 @@ type ListenerRuleConditionSourceIpInput interface { type ListenerRuleConditionSourceIpArgs struct { // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - // - // Query String Value Blocks (for `query_string.values`) support the following: Values pulumi.StringArrayInput `pulumi:"values"` } @@ -4737,8 +4709,6 @@ func (o ListenerRuleConditionSourceIpOutput) ToOutput(ctx context.Context) pulum } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionSourceIpOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ListenerRuleConditionSourceIp) []string { return v.Values }).(pulumi.StringArrayOutput) } @@ -4774,8 +4744,6 @@ func (o ListenerRuleConditionSourceIpPtrOutput) Elem() ListenerRuleConditionSour } // List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. -// -// Query String Value Blocks (for `query_string.values`) support the following: func (o ListenerRuleConditionSourceIpPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *ListenerRuleConditionSourceIp) []string { if v == nil { diff --git a/sdk/go/aws/lex/pulumiTypes.go b/sdk/go/aws/lex/pulumiTypes.go index 37d42b8c084..3f1f82567f5 100644 --- a/sdk/go/aws/lex/pulumiTypes.go +++ b/sdk/go/aws/lex/pulumiTypes.go @@ -15,12 +15,13 @@ import ( var _ = internal.GetEnvOrDefault type BotAbortStatement struct { + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Messages []BotAbortStatementMessage `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). ResponseCard *string `pulumi:"responseCard"` } @@ -36,12 +37,13 @@ type BotAbortStatementInput interface { } type BotAbortStatementArgs struct { + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Messages BotAbortStatementMessageArrayInput `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). ResponseCard pulumi.StringPtrInput `pulumi:"responseCard"` } @@ -140,6 +142,9 @@ func (o BotAbortStatementOutput) ToOutput(ctx context.Context) pulumix.Output[Bo } } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. func (o BotAbortStatementOutput) Messages() BotAbortStatementMessageArrayOutput { return o.ApplyT(func(v BotAbortStatement) []BotAbortStatementMessage { return v.Messages }).(BotAbortStatementMessageArrayOutput) } @@ -147,8 +152,6 @@ func (o BotAbortStatementOutput) Messages() BotAbortStatementMessageArrayOutput // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). func (o BotAbortStatementOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v BotAbortStatement) *string { return v.ResponseCard }).(pulumi.StringPtrOutput) } @@ -183,6 +186,9 @@ func (o BotAbortStatementPtrOutput) Elem() BotAbortStatementOutput { }).(BotAbortStatementOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. func (o BotAbortStatementPtrOutput) Messages() BotAbortStatementMessageArrayOutput { return o.ApplyT(func(v *BotAbortStatement) []BotAbortStatementMessage { if v == nil { @@ -195,8 +201,6 @@ func (o BotAbortStatementPtrOutput) Messages() BotAbortStatementMessageArrayOutp // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). func (o BotAbortStatementPtrOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v *BotAbortStatement) *string { if v == nil { @@ -687,13 +691,14 @@ func (o BotAliasConversationLogsLogSettingArrayOutput) Index(i pulumi.IntInput) type BotClarificationPrompt struct { // The number of times to prompt the user for information. - MaxAttempts int `pulumi:"maxAttempts"` - Messages []BotClarificationPromptMessage `pulumi:"messages"` + MaxAttempts int `pulumi:"maxAttempts"` + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. + Messages []BotClarificationPromptMessage `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). ResponseCard *string `pulumi:"responseCard"` } @@ -710,13 +715,14 @@ type BotClarificationPromptInput interface { type BotClarificationPromptArgs struct { // The number of times to prompt the user for information. - MaxAttempts pulumi.IntInput `pulumi:"maxAttempts"` - Messages BotClarificationPromptMessageArrayInput `pulumi:"messages"` + MaxAttempts pulumi.IntInput `pulumi:"maxAttempts"` + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. + Messages BotClarificationPromptMessageArrayInput `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). ResponseCard pulumi.StringPtrInput `pulumi:"responseCard"` } @@ -820,6 +826,9 @@ func (o BotClarificationPromptOutput) MaxAttempts() pulumi.IntOutput { return o.ApplyT(func(v BotClarificationPrompt) int { return v.MaxAttempts }).(pulumi.IntOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. func (o BotClarificationPromptOutput) Messages() BotClarificationPromptMessageArrayOutput { return o.ApplyT(func(v BotClarificationPrompt) []BotClarificationPromptMessage { return v.Messages }).(BotClarificationPromptMessageArrayOutput) } @@ -827,8 +836,6 @@ func (o BotClarificationPromptOutput) Messages() BotClarificationPromptMessageAr // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). func (o BotClarificationPromptOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v BotClarificationPrompt) *string { return v.ResponseCard }).(pulumi.StringPtrOutput) } @@ -873,6 +880,9 @@ func (o BotClarificationPromptPtrOutput) MaxAttempts() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. func (o BotClarificationPromptPtrOutput) Messages() BotClarificationPromptMessageArrayOutput { return o.ApplyT(func(v *BotClarificationPrompt) []BotClarificationPromptMessage { if v == nil { @@ -885,8 +895,6 @@ func (o BotClarificationPromptPtrOutput) Messages() BotClarificationPromptMessag // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). func (o BotClarificationPromptPtrOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v *BotClarificationPrompt) *string { if v == nil { @@ -1169,14 +1177,13 @@ func (o BotIntentArrayOutput) Index(i pulumi.IntInput) BotIntentOutput { } type IntentConclusionStatement struct { + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. Messages []IntentConclusionStatementMessage `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard *string `pulumi:"responseCard"` } @@ -1192,14 +1199,13 @@ type IntentConclusionStatementInput interface { } type IntentConclusionStatementArgs struct { + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. Messages IntentConclusionStatementMessageArrayInput `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard pulumi.StringPtrInput `pulumi:"responseCard"` } @@ -1298,6 +1304,9 @@ func (o IntentConclusionStatementOutput) ToOutput(ctx context.Context) pulumix.O } } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentConclusionStatementOutput) Messages() IntentConclusionStatementMessageArrayOutput { return o.ApplyT(func(v IntentConclusionStatement) []IntentConclusionStatementMessage { return v.Messages }).(IntentConclusionStatementMessageArrayOutput) } @@ -1305,10 +1314,6 @@ func (o IntentConclusionStatementOutput) Messages() IntentConclusionStatementMes // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentConclusionStatementOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v IntentConclusionStatement) *string { return v.ResponseCard }).(pulumi.StringPtrOutput) } @@ -1343,6 +1348,9 @@ func (o IntentConclusionStatementPtrOutput) Elem() IntentConclusionStatementOutp }).(IntentConclusionStatementOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentConclusionStatementPtrOutput) Messages() IntentConclusionStatementMessageArrayOutput { return o.ApplyT(func(v *IntentConclusionStatement) []IntentConclusionStatementMessage { if v == nil { @@ -1355,10 +1363,6 @@ func (o IntentConclusionStatementPtrOutput) Messages() IntentConclusionStatement // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentConclusionStatementPtrOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v *IntentConclusionStatement) *string { if v == nil { @@ -1512,15 +1516,14 @@ func (o IntentConclusionStatementMessageArrayOutput) Index(i pulumi.IntInput) In type IntentConfirmationPrompt struct { // The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). - MaxAttempts int `pulumi:"maxAttempts"` - Messages []IntentConfirmationPromptMessage `pulumi:"messages"` + MaxAttempts int `pulumi:"maxAttempts"` + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. + Messages []IntentConfirmationPromptMessage `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard *string `pulumi:"responseCard"` } @@ -1537,15 +1540,14 @@ type IntentConfirmationPromptInput interface { type IntentConfirmationPromptArgs struct { // The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). - MaxAttempts pulumi.IntInput `pulumi:"maxAttempts"` - Messages IntentConfirmationPromptMessageArrayInput `pulumi:"messages"` + MaxAttempts pulumi.IntInput `pulumi:"maxAttempts"` + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. + Messages IntentConfirmationPromptMessageArrayInput `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard pulumi.StringPtrInput `pulumi:"responseCard"` } @@ -1649,6 +1651,9 @@ func (o IntentConfirmationPromptOutput) MaxAttempts() pulumi.IntOutput { return o.ApplyT(func(v IntentConfirmationPrompt) int { return v.MaxAttempts }).(pulumi.IntOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentConfirmationPromptOutput) Messages() IntentConfirmationPromptMessageArrayOutput { return o.ApplyT(func(v IntentConfirmationPrompt) []IntentConfirmationPromptMessage { return v.Messages }).(IntentConfirmationPromptMessageArrayOutput) } @@ -1656,10 +1661,6 @@ func (o IntentConfirmationPromptOutput) Messages() IntentConfirmationPromptMessa // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentConfirmationPromptOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v IntentConfirmationPrompt) *string { return v.ResponseCard }).(pulumi.StringPtrOutput) } @@ -1704,6 +1705,9 @@ func (o IntentConfirmationPromptPtrOutput) MaxAttempts() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentConfirmationPromptPtrOutput) Messages() IntentConfirmationPromptMessageArrayOutput { return o.ApplyT(func(v *IntentConfirmationPrompt) []IntentConfirmationPromptMessage { if v == nil { @@ -1716,10 +1720,6 @@ func (o IntentConfirmationPromptPtrOutput) Messages() IntentConfirmationPromptMe // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentConfirmationPromptPtrOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v *IntentConfirmationPrompt) *string { if v == nil { @@ -2605,14 +2605,13 @@ func (o IntentFollowUpPromptPromptMessageArrayOutput) Index(i pulumi.IntInput) I } type IntentFollowUpPromptRejectionStatement struct { + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. Messages []IntentFollowUpPromptRejectionStatementMessage `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard *string `pulumi:"responseCard"` } @@ -2628,14 +2627,13 @@ type IntentFollowUpPromptRejectionStatementInput interface { } type IntentFollowUpPromptRejectionStatementArgs struct { + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. Messages IntentFollowUpPromptRejectionStatementMessageArrayInput `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard pulumi.StringPtrInput `pulumi:"responseCard"` } @@ -2734,6 +2732,9 @@ func (o IntentFollowUpPromptRejectionStatementOutput) ToOutput(ctx context.Conte } } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentFollowUpPromptRejectionStatementOutput) Messages() IntentFollowUpPromptRejectionStatementMessageArrayOutput { return o.ApplyT(func(v IntentFollowUpPromptRejectionStatement) []IntentFollowUpPromptRejectionStatementMessage { return v.Messages @@ -2743,10 +2744,6 @@ func (o IntentFollowUpPromptRejectionStatementOutput) Messages() IntentFollowUpP // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentFollowUpPromptRejectionStatementOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v IntentFollowUpPromptRejectionStatement) *string { return v.ResponseCard }).(pulumi.StringPtrOutput) } @@ -2781,6 +2778,9 @@ func (o IntentFollowUpPromptRejectionStatementPtrOutput) Elem() IntentFollowUpPr }).(IntentFollowUpPromptRejectionStatementOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentFollowUpPromptRejectionStatementPtrOutput) Messages() IntentFollowUpPromptRejectionStatementMessageArrayOutput { return o.ApplyT(func(v *IntentFollowUpPromptRejectionStatement) []IntentFollowUpPromptRejectionStatementMessage { if v == nil { @@ -2793,10 +2793,6 @@ func (o IntentFollowUpPromptRejectionStatementPtrOutput) Messages() IntentFollow // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentFollowUpPromptRejectionStatementPtrOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v *IntentFollowUpPromptRejectionStatement) *string { if v == nil { @@ -3325,14 +3321,13 @@ func (o IntentFulfillmentActivityCodeHookPtrOutput) Uri() pulumi.StringPtrOutput } type IntentRejectionStatement struct { + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. Messages []IntentRejectionStatementMessage `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard *string `pulumi:"responseCard"` } @@ -3348,14 +3343,13 @@ type IntentRejectionStatementInput interface { } type IntentRejectionStatementArgs struct { + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. Messages IntentRejectionStatementMessageArrayInput `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard pulumi.StringPtrInput `pulumi:"responseCard"` } @@ -3454,6 +3448,9 @@ func (o IntentRejectionStatementOutput) ToOutput(ctx context.Context) pulumix.Ou } } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentRejectionStatementOutput) Messages() IntentRejectionStatementMessageArrayOutput { return o.ApplyT(func(v IntentRejectionStatement) []IntentRejectionStatementMessage { return v.Messages }).(IntentRejectionStatementMessageArrayOutput) } @@ -3461,10 +3458,6 @@ func (o IntentRejectionStatementOutput) Messages() IntentRejectionStatementMessa // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentRejectionStatementOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v IntentRejectionStatement) *string { return v.ResponseCard }).(pulumi.StringPtrOutput) } @@ -3499,6 +3492,9 @@ func (o IntentRejectionStatementPtrOutput) Elem() IntentRejectionStatementOutput }).(IntentRejectionStatementOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentRejectionStatementPtrOutput) Messages() IntentRejectionStatementMessageArrayOutput { return o.ApplyT(func(v *IntentRejectionStatement) []IntentRejectionStatementMessage { if v == nil { @@ -3511,10 +3507,6 @@ func (o IntentRejectionStatementPtrOutput) Messages() IntentRejectionStatementMe // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentRejectionStatementPtrOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v *IntentRejectionStatement) *string { if v == nil { @@ -3888,15 +3880,14 @@ func (o IntentSlotArrayOutput) Index(i pulumi.IntInput) IntentSlotOutput { type IntentSlotValueElicitationPrompt struct { // The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). - MaxAttempts int `pulumi:"maxAttempts"` - Messages []IntentSlotValueElicitationPromptMessage `pulumi:"messages"` + MaxAttempts int `pulumi:"maxAttempts"` + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. + Messages []IntentSlotValueElicitationPromptMessage `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard *string `pulumi:"responseCard"` } @@ -3913,15 +3904,14 @@ type IntentSlotValueElicitationPromptInput interface { type IntentSlotValueElicitationPromptArgs struct { // The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). - MaxAttempts pulumi.IntInput `pulumi:"maxAttempts"` - Messages IntentSlotValueElicitationPromptMessageArrayInput `pulumi:"messages"` + MaxAttempts pulumi.IntInput `pulumi:"maxAttempts"` + // A set of messages, each of which provides a message string and its type. + // You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + // Attributes are documented under message. Must contain between 1 and 15 messages. + Messages IntentSlotValueElicitationPromptMessageArrayInput `pulumi:"messages"` // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - // slot values into the response card. For more information, see - // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. ResponseCard pulumi.StringPtrInput `pulumi:"responseCard"` } @@ -4025,6 +4015,9 @@ func (o IntentSlotValueElicitationPromptOutput) MaxAttempts() pulumi.IntOutput { return o.ApplyT(func(v IntentSlotValueElicitationPrompt) int { return v.MaxAttempts }).(pulumi.IntOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentSlotValueElicitationPromptOutput) Messages() IntentSlotValueElicitationPromptMessageArrayOutput { return o.ApplyT(func(v IntentSlotValueElicitationPrompt) []IntentSlotValueElicitationPromptMessage { return v.Messages }).(IntentSlotValueElicitationPromptMessageArrayOutput) } @@ -4032,10 +4025,6 @@ func (o IntentSlotValueElicitationPromptOutput) Messages() IntentSlotValueElicit // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentSlotValueElicitationPromptOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v IntentSlotValueElicitationPrompt) *string { return v.ResponseCard }).(pulumi.StringPtrOutput) } @@ -4080,6 +4069,9 @@ func (o IntentSlotValueElicitationPromptPtrOutput) MaxAttempts() pulumi.IntPtrOu }).(pulumi.IntPtrOutput) } +// A set of messages, each of which provides a message string and its type. +// You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). +// Attributes are documented under message. Must contain between 1 and 15 messages. func (o IntentSlotValueElicitationPromptPtrOutput) Messages() IntentSlotValueElicitationPromptMessageArrayOutput { return o.ApplyT(func(v *IntentSlotValueElicitationPrompt) []IntentSlotValueElicitationPromptMessage { if v == nil { @@ -4092,10 +4084,6 @@ func (o IntentSlotValueElicitationPromptPtrOutput) Messages() IntentSlotValueEli // The response card. Amazon Lex will substitute session attributes and // slot values into the response card. For more information, see // [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. -// slot values into the response card. For more information, see -// [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. func (o IntentSlotValueElicitationPromptPtrOutput) ResponseCard() pulumi.StringPtrOutput { return o.ApplyT(func(v *IntentSlotValueElicitationPrompt) *string { if v == nil { diff --git a/sdk/go/aws/macie2/pulumiTypes.go b/sdk/go/aws/macie2/pulumiTypes.go index 10cc85a54a9..3d03b5f17d3 100644 --- a/sdk/go/aws/macie2/pulumiTypes.go +++ b/sdk/go/aws/macie2/pulumiTypes.go @@ -1427,7 +1427,7 @@ func (o ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionTag } type ClassificationJobS3JobDefinitionBucketCriteriaIncludes struct { - // An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + // An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) Ands []ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd `pulumi:"ands"` } @@ -1443,7 +1443,7 @@ type ClassificationJobS3JobDefinitionBucketCriteriaIncludesInput interface { } type ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs struct { - // An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + // An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) Ands ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArrayInput `pulumi:"ands"` } @@ -1542,7 +1542,7 @@ func (o ClassificationJobS3JobDefinitionBucketCriteriaIncludesOutput) ToOutput(c } } -// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) +// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) func (o ClassificationJobS3JobDefinitionBucketCriteriaIncludesOutput) Ands() ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArrayOutput { return o.ApplyT(func(v ClassificationJobS3JobDefinitionBucketCriteriaIncludes) []ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd { return v.Ands @@ -1579,7 +1579,7 @@ func (o ClassificationJobS3JobDefinitionBucketCriteriaIncludesPtrOutput) Elem() }).(ClassificationJobS3JobDefinitionBucketCriteriaIncludesOutput) } -// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) +// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) func (o ClassificationJobS3JobDefinitionBucketCriteriaIncludesPtrOutput) Ands() ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArrayOutput { return o.ApplyT(func(v *ClassificationJobS3JobDefinitionBucketCriteriaIncludes) []ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd { if v == nil { @@ -3405,7 +3405,7 @@ func (o ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermTagValueAr } type ClassificationJobS3JobDefinitionScopingIncludes struct { - // An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + // An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) Ands []ClassificationJobS3JobDefinitionScopingIncludesAnd `pulumi:"ands"` } @@ -3421,7 +3421,7 @@ type ClassificationJobS3JobDefinitionScopingIncludesInput interface { } type ClassificationJobS3JobDefinitionScopingIncludesArgs struct { - // An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + // An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) Ands ClassificationJobS3JobDefinitionScopingIncludesAndArrayInput `pulumi:"ands"` } @@ -3520,7 +3520,7 @@ func (o ClassificationJobS3JobDefinitionScopingIncludesOutput) ToOutput(ctx cont } } -// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) +// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) func (o ClassificationJobS3JobDefinitionScopingIncludesOutput) Ands() ClassificationJobS3JobDefinitionScopingIncludesAndArrayOutput { return o.ApplyT(func(v ClassificationJobS3JobDefinitionScopingIncludes) []ClassificationJobS3JobDefinitionScopingIncludesAnd { return v.Ands @@ -3557,7 +3557,7 @@ func (o ClassificationJobS3JobDefinitionScopingIncludesPtrOutput) Elem() Classif }).(ClassificationJobS3JobDefinitionScopingIncludesOutput) } -// An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) +// An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) func (o ClassificationJobS3JobDefinitionScopingIncludesPtrOutput) Ands() ClassificationJobS3JobDefinitionScopingIncludesAndArrayOutput { return o.ApplyT(func(v *ClassificationJobS3JobDefinitionScopingIncludes) []ClassificationJobS3JobDefinitionScopingIncludesAnd { if v == nil { diff --git a/sdk/go/aws/medialive/pulumiTypes.go b/sdk/go/aws/medialive/pulumiTypes.go index db2cdee72f2..22042a5dad3 100644 --- a/sdk/go/aws/medialive/pulumiTypes.go +++ b/sdk/go/aws/medialive/pulumiTypes.go @@ -9380,7 +9380,7 @@ type ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSla PasswordParam *string `pulumi:"passwordParam"` // Path to a file accessible to the live stream. Uri string `pulumi:"uri"` - // Username for destination. + // . Username to be used. Username *string `pulumi:"username"` } @@ -9400,7 +9400,7 @@ type ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSla PasswordParam pulumi.StringPtrInput `pulumi:"passwordParam"` // Path to a file accessible to the live stream. Uri pulumi.StringInput `pulumi:"uri"` - // Username for destination. + // . Username to be used. Username pulumi.StringPtrInput `pulumi:"username"` } @@ -9513,7 +9513,7 @@ func (o ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImage }).(pulumi.StringOutput) } -// Username for destination. +// . Username to be used. func (o ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateOutput) Username() pulumi.StringPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate) *string { return v.Username @@ -9570,7 +9570,7 @@ func (o ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImage }).(pulumi.StringPtrOutput) } -// Username for destination. +// . Username to be used. func (o ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlatePtrOutput) Username() pulumi.StringPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate) *string { if v == nil { @@ -14634,7 +14634,7 @@ type ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProv PasswordParam *string `pulumi:"passwordParam"` // Path to a file accessible to the live stream. Uri string `pulumi:"uri"` - // Username for destination. + // . Username to be used. Username *string `pulumi:"username"` } @@ -14654,7 +14654,7 @@ type ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProv PasswordParam pulumi.StringPtrInput `pulumi:"passwordParam"` // Path to a file accessible to the live stream. Uri pulumi.StringInput `pulumi:"uri"` - // Username for destination. + // . Username to be used. Username pulumi.StringPtrInput `pulumi:"username"` } @@ -14767,7 +14767,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyP }).(pulumi.StringOutput) } -// Username for destination. +// . Username to be used. func (o ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerOutput) Username() pulumi.StringPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer) *string { return v.Username @@ -14824,7 +14824,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyP }).(pulumi.StringPtrOutput) } -// Username for destination. +// . Username to be used. func (o ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerPtrOutput) Username() pulumi.StringPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer) *string { if v == nil { @@ -19422,7 +19422,7 @@ type ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSe PasswordParam *string `pulumi:"passwordParam"` // Path to a file accessible to the live stream. Uri string `pulumi:"uri"` - // Username for destination. + // . Username to be used. Username *string `pulumi:"username"` } @@ -19442,7 +19442,7 @@ type ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSe PasswordParam pulumi.StringPtrInput `pulumi:"passwordParam"` // Path to a file accessible to the live stream. Uri pulumi.StringInput `pulumi:"uri"` - // Username for destination. + // . Username to be used. Username pulumi.StringPtrInput `pulumi:"username"` } @@ -19555,7 +19555,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHl }).(pulumi.StringOutput) } -// Username for destination. +// . Username to be used. func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageOutput) Username() pulumi.StringPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage) *string { return v.Username @@ -19612,7 +19612,7 @@ func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHl }).(pulumi.StringPtrOutput) } -// Username for destination. +// . Username to be used. func (o ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImagePtrOutput) Username() pulumi.StringPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage) *string { if v == nil { @@ -24625,7 +24625,7 @@ type ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings struct { ColorMetadata *string `pulumi:"colorMetadata"` // Entropy encoding mode. EntropyEncoding *string `pulumi:"entropyEncoding"` - // Filters to apply to an encode. See H264 Filter Settings for more details. + // Filters to apply to an encode. See H265 Filter Settings for more details. FilterSettings *ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings `pulumi:"filterSettings"` // Four bit AFD value to write on all frames of video in the output stream. FixedAfd *string `pulumi:"fixedAfd"` @@ -24648,7 +24648,7 @@ type ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings struct { GopSize *float64 `pulumi:"gopSize"` // Indicates if the `gopSize` is specified in frames or seconds. GopSizeUnits *string `pulumi:"gopSizeUnits"` - // H264 level. + // H265 level. Level *string `pulumi:"level"` // Amount of lookahead. LookAheadRateControl *string `pulumi:"lookAheadRateControl"` @@ -24716,7 +24716,7 @@ type ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs struct ColorMetadata pulumi.StringPtrInput `pulumi:"colorMetadata"` // Entropy encoding mode. EntropyEncoding pulumi.StringPtrInput `pulumi:"entropyEncoding"` - // Filters to apply to an encode. See H264 Filter Settings for more details. + // Filters to apply to an encode. See H265 Filter Settings for more details. FilterSettings ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsPtrInput `pulumi:"filterSettings"` // Four bit AFD value to write on all frames of video in the output stream. FixedAfd pulumi.StringPtrInput `pulumi:"fixedAfd"` @@ -24739,7 +24739,7 @@ type ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs struct GopSize pulumi.Float64PtrInput `pulumi:"gopSize"` // Indicates if the `gopSize` is specified in frames or seconds. GopSizeUnits pulumi.StringPtrInput `pulumi:"gopSizeUnits"` - // H264 level. + // H265 level. Level pulumi.StringPtrInput `pulumi:"level"` // Amount of lookahead. LookAheadRateControl pulumi.StringPtrInput `pulumi:"lookAheadRateControl"` @@ -24917,7 +24917,7 @@ func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsOutput) E }).(pulumi.StringPtrOutput) } -// Filters to apply to an encode. See H264 Filter Settings for more details. +// Filters to apply to an encode. See H265 Filter Settings for more details. func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsOutput) FilterSettings() ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings) *ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings { return v.FilterSettings @@ -24990,7 +24990,7 @@ func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsOutput) G return o.ApplyT(func(v ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings) *string { return v.GopSizeUnits }).(pulumi.StringPtrOutput) } -// H264 level. +// H265 level. func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsOutput) Level() pulumi.StringPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings) *string { return v.Level }).(pulumi.StringPtrOutput) } @@ -25203,7 +25203,7 @@ func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsPtrOutput }).(pulumi.StringPtrOutput) } -// Filters to apply to an encode. See H264 Filter Settings for more details. +// Filters to apply to an encode. See H265 Filter Settings for more details. func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsPtrOutput) FilterSettings() ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings) *ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings { if v == nil { @@ -25322,7 +25322,7 @@ func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsPtrOutput }).(pulumi.StringPtrOutput) } -// H264 level. +// H265 level. func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsPtrOutput) Level() pulumi.StringPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings) *string { if v == nil { @@ -25893,7 +25893,7 @@ type ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings struct { ColorMetadata *string `pulumi:"colorMetadata"` // Define the color metadata for the output. H265 Color Space Settings for more details. ColorSpaceSettings *ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettings `pulumi:"colorSpaceSettings"` - // Filters to apply to an encode. See H264 Filter Settings for more details. + // Filters to apply to an encode. See H265 Filter Settings for more details. FilterSettings *ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings `pulumi:"filterSettings"` // Four bit AFD value to write on all frames of video in the output stream. FixedAfd *string `pulumi:"fixedAfd"` @@ -25908,7 +25908,7 @@ type ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings struct { GopSize *float64 `pulumi:"gopSize"` // Indicates if the `gopSize` is specified in frames or seconds. GopSizeUnits *string `pulumi:"gopSizeUnits"` - // H264 level. + // H265 level. Level *string `pulumi:"level"` // Amount of lookahead. LookAheadRateControl *string `pulumi:"lookAheadRateControl"` @@ -25965,7 +25965,7 @@ type ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs struct ColorMetadata pulumi.StringPtrInput `pulumi:"colorMetadata"` // Define the color metadata for the output. H265 Color Space Settings for more details. ColorSpaceSettings ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsPtrInput `pulumi:"colorSpaceSettings"` - // Filters to apply to an encode. See H264 Filter Settings for more details. + // Filters to apply to an encode. See H265 Filter Settings for more details. FilterSettings ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsPtrInput `pulumi:"filterSettings"` // Four bit AFD value to write on all frames of video in the output stream. FixedAfd pulumi.StringPtrInput `pulumi:"fixedAfd"` @@ -25980,7 +25980,7 @@ type ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs struct GopSize pulumi.Float64PtrInput `pulumi:"gopSize"` // Indicates if the `gopSize` is specified in frames or seconds. GopSizeUnits pulumi.StringPtrInput `pulumi:"gopSizeUnits"` - // H264 level. + // H265 level. Level pulumi.StringPtrInput `pulumi:"level"` // Amount of lookahead. LookAheadRateControl pulumi.StringPtrInput `pulumi:"lookAheadRateControl"` @@ -26149,7 +26149,7 @@ func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsOutput) C }).(ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsPtrOutput) } -// Filters to apply to an encode. See H264 Filter Settings for more details. +// Filters to apply to an encode. See H265 Filter Settings for more details. func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsOutput) FilterSettings() ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings) *ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings { return v.FilterSettings @@ -26196,7 +26196,7 @@ func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsOutput) G return o.ApplyT(func(v ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings) *string { return v.GopSizeUnits }).(pulumi.StringPtrOutput) } -// H264 level. +// H265 level. func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsOutput) Level() pulumi.StringPtrOutput { return o.ApplyT(func(v ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings) *string { return v.Level }).(pulumi.StringPtrOutput) } @@ -26382,7 +26382,7 @@ func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsPtrOutput }).(ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsPtrOutput) } -// Filters to apply to an encode. See H264 Filter Settings for more details. +// Filters to apply to an encode. See H265 Filter Settings for more details. func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsPtrOutput) FilterSettings() ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings) *ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings { if v == nil { @@ -26461,7 +26461,7 @@ func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsPtrOutput }).(pulumi.StringPtrOutput) } -// H264 level. +// H265 level. func (o ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsPtrOutput) Level() pulumi.StringPtrOutput { return o.ApplyT(func(v *ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings) *string { if v == nil { @@ -28856,7 +28856,7 @@ func (o ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFai } type ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings struct { - // The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + // The name of the audio selector used as the source for this AudioDescription. AudioSelectorName string `pulumi:"audioSelectorName"` // The amount of time (in milliseconds) that the active input must be silent before automatic input failover occurs. Silence is defined as audio loss or audio quieter than -50 dBFS. AudioSilenceThresholdMsec *int `pulumi:"audioSilenceThresholdMsec"` @@ -28874,7 +28874,7 @@ type ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailov } type ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs struct { - // The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + // The name of the audio selector used as the source for this AudioDescription. AudioSelectorName pulumi.StringInput `pulumi:"audioSelectorName"` // The amount of time (in milliseconds) that the active input must be silent before automatic input failover occurs. Silence is defined as audio loss or audio quieter than -50 dBFS. AudioSilenceThresholdMsec pulumi.IntPtrInput `pulumi:"audioSilenceThresholdMsec"` @@ -28975,7 +28975,7 @@ func (o ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFai } } -// The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. +// The name of the audio selector used as the source for this AudioDescription. func (o ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsOutput) AudioSelectorName() pulumi.StringOutput { return o.ApplyT(func(v ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings) string { return v.AudioSelectorName @@ -29019,7 +29019,7 @@ func (o ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFai }).(ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsOutput) } -// The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. +// The name of the audio selector used as the source for this AudioDescription. func (o ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsPtrOutput) AudioSelectorName() pulumi.StringPtrOutput { return o.ApplyT(func(v *ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings) *string { if v == nil { diff --git a/sdk/go/aws/msk/pulumiTypes.go b/sdk/go/aws/msk/pulumiTypes.go index 928bb3e66a8..793bb0bc463 100644 --- a/sdk/go/aws/msk/pulumiTypes.go +++ b/sdk/go/aws/msk/pulumiTypes.go @@ -965,9 +965,9 @@ func (o ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentic } type ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl struct { - // Enables SASL/IAM authentication for VPC connectivity. + // Enables IAM client authentication. Defaults to `false`. Iam *bool `pulumi:"iam"` - // Enables SASL/SCRAM authentication for VPC connectivity. + // Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. Scram *bool `pulumi:"scram"` } @@ -983,9 +983,9 @@ type ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticati } type ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs struct { - // Enables SASL/IAM authentication for VPC connectivity. + // Enables IAM client authentication. Defaults to `false`. Iam pulumi.BoolPtrInput `pulumi:"iam"` - // Enables SASL/SCRAM authentication for VPC connectivity. + // Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. Scram pulumi.BoolPtrInput `pulumi:"scram"` } @@ -1084,14 +1084,14 @@ func (o ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentic } } -// Enables SASL/IAM authentication for VPC connectivity. +// Enables IAM client authentication. Defaults to `false`. func (o ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) Iam() pulumi.BoolPtrOutput { return o.ApplyT(func(v ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl) *bool { return v.Iam }).(pulumi.BoolPtrOutput) } -// Enables SASL/SCRAM authentication for VPC connectivity. +// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. func (o ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) Scram() pulumi.BoolPtrOutput { return o.ApplyT(func(v ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl) *bool { return v.Scram @@ -1128,7 +1128,7 @@ func (o ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentic }).(ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslOutput) } -// Enables SASL/IAM authentication for VPC connectivity. +// Enables IAM client authentication. Defaults to `false`. func (o ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslPtrOutput) Iam() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl) *bool { if v == nil { @@ -1138,7 +1138,7 @@ func (o ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentic }).(pulumi.BoolPtrOutput) } -// Enables SASL/SCRAM authentication for VPC connectivity. +// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. func (o ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslPtrOutput) Scram() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl) *bool { if v == nil { @@ -1877,9 +1877,9 @@ func (o ClusterClientAuthenticationPtrOutput) Unauthenticated() pulumi.BoolPtrOu } type ClusterClientAuthenticationSasl struct { - // Enables SASL/IAM authentication for VPC connectivity. + // Enables IAM client authentication. Defaults to `false`. Iam *bool `pulumi:"iam"` - // Enables SASL/SCRAM authentication for VPC connectivity. + // Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. Scram *bool `pulumi:"scram"` } @@ -1895,9 +1895,9 @@ type ClusterClientAuthenticationSaslInput interface { } type ClusterClientAuthenticationSaslArgs struct { - // Enables SASL/IAM authentication for VPC connectivity. + // Enables IAM client authentication. Defaults to `false`. Iam pulumi.BoolPtrInput `pulumi:"iam"` - // Enables SASL/SCRAM authentication for VPC connectivity. + // Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. Scram pulumi.BoolPtrInput `pulumi:"scram"` } @@ -1996,12 +1996,12 @@ func (o ClusterClientAuthenticationSaslOutput) ToOutput(ctx context.Context) pul } } -// Enables SASL/IAM authentication for VPC connectivity. +// Enables IAM client authentication. Defaults to `false`. func (o ClusterClientAuthenticationSaslOutput) Iam() pulumi.BoolPtrOutput { return o.ApplyT(func(v ClusterClientAuthenticationSasl) *bool { return v.Iam }).(pulumi.BoolPtrOutput) } -// Enables SASL/SCRAM authentication for VPC connectivity. +// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. func (o ClusterClientAuthenticationSaslOutput) Scram() pulumi.BoolPtrOutput { return o.ApplyT(func(v ClusterClientAuthenticationSasl) *bool { return v.Scram }).(pulumi.BoolPtrOutput) } @@ -2036,7 +2036,7 @@ func (o ClusterClientAuthenticationSaslPtrOutput) Elem() ClusterClientAuthentica }).(ClusterClientAuthenticationSaslOutput) } -// Enables SASL/IAM authentication for VPC connectivity. +// Enables IAM client authentication. Defaults to `false`. func (o ClusterClientAuthenticationSaslPtrOutput) Iam() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ClusterClientAuthenticationSasl) *bool { if v == nil { @@ -2046,7 +2046,7 @@ func (o ClusterClientAuthenticationSaslPtrOutput) Iam() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Enables SASL/SCRAM authentication for VPC connectivity. +// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. func (o ClusterClientAuthenticationSaslPtrOutput) Scram() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ClusterClientAuthenticationSasl) *bool { if v == nil { @@ -4012,7 +4012,7 @@ func (o ClusterOpenMonitoringPrometheusPtrOutput) NodeExporter() ClusterOpenMoni } type ClusterOpenMonitoringPrometheusJmxExporter struct { - // Indicates whether you want to enable or disable the JMX Exporter. + // Indicates whether you want to enable or disable the Node Exporter. EnabledInBroker bool `pulumi:"enabledInBroker"` } @@ -4028,7 +4028,7 @@ type ClusterOpenMonitoringPrometheusJmxExporterInput interface { } type ClusterOpenMonitoringPrometheusJmxExporterArgs struct { - // Indicates whether you want to enable or disable the JMX Exporter. + // Indicates whether you want to enable or disable the Node Exporter. EnabledInBroker pulumi.BoolInput `pulumi:"enabledInBroker"` } @@ -4127,7 +4127,7 @@ func (o ClusterOpenMonitoringPrometheusJmxExporterOutput) ToOutput(ctx context.C } } -// Indicates whether you want to enable or disable the JMX Exporter. +// Indicates whether you want to enable or disable the Node Exporter. func (o ClusterOpenMonitoringPrometheusJmxExporterOutput) EnabledInBroker() pulumi.BoolOutput { return o.ApplyT(func(v ClusterOpenMonitoringPrometheusJmxExporter) bool { return v.EnabledInBroker }).(pulumi.BoolOutput) } @@ -4162,7 +4162,7 @@ func (o ClusterOpenMonitoringPrometheusJmxExporterPtrOutput) Elem() ClusterOpenM }).(ClusterOpenMonitoringPrometheusJmxExporterOutput) } -// Indicates whether you want to enable or disable the JMX Exporter. +// Indicates whether you want to enable or disable the Node Exporter. func (o ClusterOpenMonitoringPrometheusJmxExporterPtrOutput) EnabledInBroker() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ClusterOpenMonitoringPrometheusJmxExporter) *bool { if v == nil { @@ -4173,7 +4173,7 @@ func (o ClusterOpenMonitoringPrometheusJmxExporterPtrOutput) EnabledInBroker() p } type ClusterOpenMonitoringPrometheusNodeExporter struct { - // Indicates whether you want to enable or disable the JMX Exporter. + // Indicates whether you want to enable or disable the Node Exporter. EnabledInBroker bool `pulumi:"enabledInBroker"` } @@ -4189,7 +4189,7 @@ type ClusterOpenMonitoringPrometheusNodeExporterInput interface { } type ClusterOpenMonitoringPrometheusNodeExporterArgs struct { - // Indicates whether you want to enable or disable the JMX Exporter. + // Indicates whether you want to enable or disable the Node Exporter. EnabledInBroker pulumi.BoolInput `pulumi:"enabledInBroker"` } @@ -4288,7 +4288,7 @@ func (o ClusterOpenMonitoringPrometheusNodeExporterOutput) ToOutput(ctx context. } } -// Indicates whether you want to enable or disable the JMX Exporter. +// Indicates whether you want to enable or disable the Node Exporter. func (o ClusterOpenMonitoringPrometheusNodeExporterOutput) EnabledInBroker() pulumi.BoolOutput { return o.ApplyT(func(v ClusterOpenMonitoringPrometheusNodeExporter) bool { return v.EnabledInBroker }).(pulumi.BoolOutput) } @@ -4323,7 +4323,7 @@ func (o ClusterOpenMonitoringPrometheusNodeExporterPtrOutput) Elem() ClusterOpen }).(ClusterOpenMonitoringPrometheusNodeExporterOutput) } -// Indicates whether you want to enable or disable the JMX Exporter. +// Indicates whether you want to enable or disable the Node Exporter. func (o ClusterOpenMonitoringPrometheusNodeExporterPtrOutput) EnabledInBroker() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ClusterOpenMonitoringPrometheusNodeExporter) *bool { if v == nil { diff --git a/sdk/go/aws/msk/vpcConnection.go b/sdk/go/aws/msk/vpcConnection.go index d65e1138ac6..c0648ceb385 100644 --- a/sdk/go/aws/msk/vpcConnection.go +++ b/sdk/go/aws/msk/vpcConnection.go @@ -26,37 +26,34 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Test { -// splat0 = append(splat0, val0.Id) -// } -// _, err := msk.NewVpcConnection(ctx, "test", &msk.VpcConnectionArgs{ -// Authentication: pulumi.String("SASL_IAM"), -// TargetClusterArn: pulumi.String("aws_msk_cluster.arn"), -// VpcId: pulumi.Any(aws_vpc.Test.Id), -// ClientSubnets: toPulumiAnyArray(splat0), -// SecurityGroups: pulumi.StringArray{ -// aws_security_group.Test.Id, -// }, -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Test { +// splat0 = append(splat0, val0.Id) +// } +// _, err := msk.NewVpcConnection(ctx, "test", &msk.VpcConnectionArgs{ +// Authentication: pulumi.String("SASL_IAM"), +// TargetClusterArn: pulumi.String("aws_msk_cluster.arn"), +// VpcId: pulumi.Any(aws_vpc.Test.Id), +// ClientSubnets: toPulumiArray(splat0), +// SecurityGroups: pulumi.StringArray{ +// aws_security_group.Test.Id, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // // ## Import diff --git a/sdk/go/aws/networkmanager/coreNetwork.go b/sdk/go/aws/networkmanager/coreNetwork.go index ae799c5509b..3ea1ea7b2ea 100644 --- a/sdk/go/aws/networkmanager/coreNetwork.go +++ b/sdk/go/aws/networkmanager/coreNetwork.go @@ -114,109 +114,106 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) -// if err != nil { -// return err -// } -// base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{ -// CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{ -// { -// AsnRanges: []string{ -// "65022-65534", -// }, -// EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{ -// { -// Location: "us-west-2", -// Asn: pulumi.StringRef("65500"), -// }, -// }, -// }, -// }, -// Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{ -// { -// Name: "segment", -// }, -// }, -// }, nil) -// if err != nil { -// return err -// } -// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ -// GlobalNetworkId: exampleGlobalNetwork.ID(), -// BasePolicyDocument: *pulumi.String(base.Json), -// CreateBasePolicy: pulumi.Bool(true), -// }) -// if err != nil { -// return err -// } -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example { -// splat0 = append(splat0, val0.Arn) -// } -// exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "exampleVpcAttachment", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat0), -// VpcArn: pulumi.Any(aws_vpc.Example.Arn), -// }) -// if err != nil { -// return err -// } -// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ -// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ -// AsnRanges: pulumi.StringArray{ -// pulumi.String("65022-65534"), -// }, -// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-west-2"), -// Asn: pulumi.String("65500"), -// }, -// }, -// }, -// }, -// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment"), -// }, -// }, -// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("0.0.0.0/0"), -// }, -// Destinations: pulumi.StringArray{ -// exampleVpcAttachment.ID(), -// }, -// }, -// }, -// }, nil) -// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { -// return &exampleCoreNetworkPolicyDocument.Json, nil -// }).(pulumi.StringPtrOutput), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) +// if err != nil { +// return err +// } +// base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{ +// CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{ +// { +// AsnRanges: []string{ +// "65022-65534", +// }, +// EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{ +// { +// Location: "us-west-2", +// Asn: pulumi.StringRef("65500"), +// }, +// }, +// }, +// }, +// Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{ +// { +// Name: "segment", +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ +// GlobalNetworkId: exampleGlobalNetwork.ID(), +// BasePolicyDocument: *pulumi.String(base.Json), +// CreateBasePolicy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example { +// splat0 = append(splat0, val0.Arn) +// } +// exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "exampleVpcAttachment", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat0), +// VpcArn: pulumi.Any(aws_vpc.Example.Arn), +// }) +// if err != nil { +// return err +// } +// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ +// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ +// AsnRanges: pulumi.StringArray{ +// pulumi.String("65022-65534"), +// }, +// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-west-2"), +// Asn: pulumi.String("65500"), +// }, +// }, +// }, +// }, +// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment"), +// }, +// }, +// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("0.0.0.0/0"), +// }, +// Destinations: pulumi.StringArray{ +// exampleVpcAttachment.ID(), +// }, +// }, +// }, +// }, nil); +// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { +// return &exampleCoreNetworkPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // ### Option 2 - createBasePolicy only // @@ -229,84 +226,81 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) -// if err != nil { -// return err -// } -// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ -// GlobalNetworkId: exampleGlobalNetwork.ID(), -// CreateBasePolicy: pulumi.Bool(true), -// }) -// if err != nil { -// return err -// } -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example { -// splat0 = append(splat0, val0.Arn) -// } -// exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "exampleVpcAttachment", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat0), -// VpcArn: pulumi.Any(aws_vpc.Example.Arn), -// }) -// if err != nil { -// return err -// } -// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ -// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ -// AsnRanges: pulumi.StringArray{ -// pulumi.String("65022-65534"), -// }, -// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-west-2"), -// }, -// }, -// }, -// }, -// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment"), -// }, -// }, -// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("0.0.0.0/0"), -// }, -// Destinations: pulumi.StringArray{ -// exampleVpcAttachment.ID(), -// }, -// }, -// }, -// }, nil) -// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { -// return &exampleCoreNetworkPolicyDocument.Json, nil -// }).(pulumi.StringPtrOutput), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) +// if err != nil { +// return err +// } +// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ +// GlobalNetworkId: exampleGlobalNetwork.ID(), +// CreateBasePolicy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example { +// splat0 = append(splat0, val0.Arn) +// } +// exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "exampleVpcAttachment", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat0), +// VpcArn: pulumi.Any(aws_vpc.Example.Arn), +// }) +// if err != nil { +// return err +// } +// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ +// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ +// AsnRanges: pulumi.StringArray{ +// pulumi.String("65022-65534"), +// }, +// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-west-2"), +// }, +// }, +// }, +// }, +// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment"), +// }, +// }, +// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("0.0.0.0/0"), +// }, +// Destinations: pulumi.StringArray{ +// exampleVpcAttachment.ID(), +// }, +// }, +// }, +// }, nil); +// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { +// return &exampleCoreNetworkPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // ### With VPC Attachment (Multi-Region) // @@ -325,142 +319,139 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) -// if err != nil { -// return err -// } -// base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{ -// CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{ -// { -// AsnRanges: []string{ -// "65022-65534", -// }, -// EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{ -// { -// Location: "us-west-2", -// Asn: pulumi.StringRef("65500"), -// }, -// { -// Location: "us-east-1", -// Asn: pulumi.StringRef("65501"), -// }, -// }, -// }, -// }, -// Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{ -// { -// Name: "segment", -// }, -// }, -// }, nil) -// if err != nil { -// return err -// } -// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ -// GlobalNetworkId: exampleGlobalNetwork.ID(), -// BasePolicyDocument: *pulumi.String(base.Json), -// CreateBasePolicy: pulumi.Bool(true), -// }) -// if err != nil { -// return err -// } -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example_us_west_2 { -// splat0 = append(splat0, val0.Arn) -// } -// exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "exampleUsWest2", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat0), -// VpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn), -// }) -// if err != nil { -// return err -// } -// var splat1 []interface{} -// for _, val0 := range aws_subnet.Example_us_east_1 { -// splat1 = append(splat1, val0.Arn) -// } -// exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "exampleUsEast1", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat1), -// VpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn), -// }, pulumi.Provider("alternate")) -// if err != nil { -// return err -// } -// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ -// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ -// AsnRanges: pulumi.StringArray{ -// pulumi.String("65022-65534"), -// }, -// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-west-2"), -// Asn: pulumi.String("65500"), -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-east-1"), -// Asn: pulumi.String("65501"), -// }, -// }, -// }, -// }, -// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment"), -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment2"), -// }, -// }, -// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("10.0.0.0/16"), -// }, -// Destinations: pulumi.StringArray{ -// exampleUsWest2.ID(), -// }, -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("10.1.0.0/16"), -// }, -// Destinations: pulumi.StringArray{ -// exampleUsEast1.ID(), -// }, -// }, -// }, -// }, nil) -// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { -// return &exampleCoreNetworkPolicyDocument.Json, nil -// }).(pulumi.StringPtrOutput), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) +// if err != nil { +// return err +// } +// base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{ +// CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{ +// { +// AsnRanges: []string{ +// "65022-65534", +// }, +// EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{ +// { +// Location: "us-west-2", +// Asn: pulumi.StringRef("65500"), +// }, +// { +// Location: "us-east-1", +// Asn: pulumi.StringRef("65501"), +// }, +// }, +// }, +// }, +// Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{ +// { +// Name: "segment", +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ +// GlobalNetworkId: exampleGlobalNetwork.ID(), +// BasePolicyDocument: *pulumi.String(base.Json), +// CreateBasePolicy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example_us_west_2 { +// splat0 = append(splat0, val0.Arn) +// } +// exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "exampleUsWest2", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat0), +// VpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn), +// }) +// if err != nil { +// return err +// } +// var splat1 []interface{} +// for _, val0 := range aws_subnet.Example_us_east_1 { +// splat1 = append(splat1, val0.Arn) +// } +// exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "exampleUsEast1", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat1), +// VpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn), +// }, pulumi.Provider("alternate")) +// if err != nil { +// return err +// } +// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ +// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ +// AsnRanges: pulumi.StringArray{ +// pulumi.String("65022-65534"), +// }, +// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-west-2"), +// Asn: pulumi.String("65500"), +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-east-1"), +// Asn: pulumi.String("65501"), +// }, +// }, +// }, +// }, +// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment"), +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment2"), +// }, +// }, +// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("10.0.0.0/16"), +// }, +// Destinations: pulumi.StringArray{ +// exampleUsWest2.ID(), +// }, +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("10.1.0.0/16"), +// }, +// Destinations: pulumi.StringArray{ +// exampleUsEast1.ID(), +// }, +// }, +// }, +// }, nil); +// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { +// return &exampleCoreNetworkPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // ### Option 2 - using basePolicyRegions // @@ -473,116 +464,113 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) -// if err != nil { -// return err -// } -// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ -// GlobalNetworkId: exampleGlobalNetwork.ID(), -// BasePolicyRegions: pulumi.StringArray{ -// pulumi.String("us-west-2"), -// pulumi.String("us-east-1"), -// }, -// CreateBasePolicy: pulumi.Bool(true), -// }) -// if err != nil { -// return err -// } -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example_us_west_2 { -// splat0 = append(splat0, val0.Arn) -// } -// exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "exampleUsWest2", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat0), -// VpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn), -// }) -// if err != nil { -// return err -// } -// var splat1 []interface{} -// for _, val0 := range aws_subnet.Example_us_east_1 { -// splat1 = append(splat1, val0.Arn) -// } -// exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "exampleUsEast1", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat1), -// VpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn), -// }, pulumi.Provider("alternate")) -// if err != nil { -// return err -// } -// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ -// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ -// AsnRanges: pulumi.StringArray{ -// pulumi.String("65022-65534"), -// }, -// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-west-2"), -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-east-1"), -// }, -// }, -// }, -// }, -// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment"), -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment2"), -// }, -// }, -// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("10.0.0.0/16"), -// }, -// Destinations: pulumi.StringArray{ -// exampleUsWest2.ID(), -// }, -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("10.1.0.0/16"), -// }, -// Destinations: pulumi.StringArray{ -// exampleUsEast1.ID(), -// }, -// }, -// }, -// }, nil) -// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { -// return &exampleCoreNetworkPolicyDocument.Json, nil -// }).(pulumi.StringPtrOutput), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) +// if err != nil { +// return err +// } +// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ +// GlobalNetworkId: exampleGlobalNetwork.ID(), +// BasePolicyRegions: pulumi.StringArray{ +// pulumi.String("us-west-2"), +// pulumi.String("us-east-1"), +// }, +// CreateBasePolicy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example_us_west_2 { +// splat0 = append(splat0, val0.Arn) +// } +// exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "exampleUsWest2", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat0), +// VpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn), +// }) +// if err != nil { +// return err +// } +// var splat1 []interface{} +// for _, val0 := range aws_subnet.Example_us_east_1 { +// splat1 = append(splat1, val0.Arn) +// } +// exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "exampleUsEast1", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat1), +// VpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn), +// }, pulumi.Provider("alternate")) +// if err != nil { +// return err +// } +// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ +// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ +// AsnRanges: pulumi.StringArray{ +// pulumi.String("65022-65534"), +// }, +// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-west-2"), +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-east-1"), +// }, +// }, +// }, +// }, +// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment"), +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment2"), +// }, +// }, +// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("10.0.0.0/16"), +// }, +// Destinations: pulumi.StringArray{ +// exampleUsWest2.ID(), +// }, +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("10.1.0.0/16"), +// }, +// Destinations: pulumi.StringArray{ +// exampleUsEast1.ID(), +// }, +// }, +// }, +// }, nil); +// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { +// return &exampleCoreNetworkPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // // ## Import diff --git a/sdk/go/aws/networkmanager/coreNetworkPolicyAttachment.go b/sdk/go/aws/networkmanager/coreNetworkPolicyAttachment.go index b4998f11159..67e4cfe7fe6 100644 --- a/sdk/go/aws/networkmanager/coreNetworkPolicyAttachment.go +++ b/sdk/go/aws/networkmanager/coreNetworkPolicyAttachment.go @@ -67,109 +67,106 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) -// if err != nil { -// return err -// } -// base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{ -// CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{ -// { -// AsnRanges: []string{ -// "65022-65534", -// }, -// EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{ -// { -// Location: "us-west-2", -// Asn: pulumi.StringRef("65500"), -// }, -// }, -// }, -// }, -// Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{ -// { -// Name: "segment", -// }, -// }, -// }, nil) -// if err != nil { -// return err -// } -// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ -// GlobalNetworkId: exampleGlobalNetwork.ID(), -// BasePolicyDocument: *pulumi.String(base.Json), -// CreateBasePolicy: pulumi.Bool(true), -// }) -// if err != nil { -// return err -// } -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example { -// splat0 = append(splat0, val0.Arn) -// } -// exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "exampleVpcAttachment", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat0), -// VpcArn: pulumi.Any(aws_vpc.Example.Arn), -// }) -// if err != nil { -// return err -// } -// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ -// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ -// AsnRanges: pulumi.StringArray{ -// pulumi.String("65022-65534"), -// }, -// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-west-2"), -// Asn: pulumi.String("65500"), -// }, -// }, -// }, -// }, -// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment"), -// }, -// }, -// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("0.0.0.0/0"), -// }, -// Destinations: pulumi.StringArray{ -// exampleVpcAttachment.ID(), -// }, -// }, -// }, -// }, nil) -// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { -// return &exampleCoreNetworkPolicyDocument.Json, nil -// }).(pulumi.StringPtrOutput), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) +// if err != nil { +// return err +// } +// base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{ +// CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{ +// { +// AsnRanges: []string{ +// "65022-65534", +// }, +// EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{ +// { +// Location: "us-west-2", +// Asn: pulumi.StringRef("65500"), +// }, +// }, +// }, +// }, +// Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{ +// { +// Name: "segment", +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ +// GlobalNetworkId: exampleGlobalNetwork.ID(), +// BasePolicyDocument: *pulumi.String(base.Json), +// CreateBasePolicy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example { +// splat0 = append(splat0, val0.Arn) +// } +// exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "exampleVpcAttachment", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat0), +// VpcArn: pulumi.Any(aws_vpc.Example.Arn), +// }) +// if err != nil { +// return err +// } +// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ +// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ +// AsnRanges: pulumi.StringArray{ +// pulumi.String("65022-65534"), +// }, +// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-west-2"), +// Asn: pulumi.String("65500"), +// }, +// }, +// }, +// }, +// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment"), +// }, +// }, +// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("0.0.0.0/0"), +// }, +// Destinations: pulumi.StringArray{ +// exampleVpcAttachment.ID(), +// }, +// }, +// }, +// }, nil); +// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { +// return &exampleCoreNetworkPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // ### Option 2 - createBasePolicy only // @@ -182,84 +179,81 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) -// if err != nil { -// return err -// } -// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ -// GlobalNetworkId: exampleGlobalNetwork.ID(), -// CreateBasePolicy: pulumi.Bool(true), -// }) -// if err != nil { -// return err -// } -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example { -// splat0 = append(splat0, val0.Arn) -// } -// exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "exampleVpcAttachment", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat0), -// VpcArn: pulumi.Any(aws_vpc.Example.Arn), -// }) -// if err != nil { -// return err -// } -// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ -// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ -// AsnRanges: pulumi.StringArray{ -// pulumi.String("65022-65534"), -// }, -// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-west-2"), -// }, -// }, -// }, -// }, -// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment"), -// }, -// }, -// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("0.0.0.0/0"), -// }, -// Destinations: pulumi.StringArray{ -// exampleVpcAttachment.ID(), -// }, -// }, -// }, -// }, nil) -// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { -// return &exampleCoreNetworkPolicyDocument.Json, nil -// }).(pulumi.StringPtrOutput), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) +// if err != nil { +// return err +// } +// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ +// GlobalNetworkId: exampleGlobalNetwork.ID(), +// CreateBasePolicy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example { +// splat0 = append(splat0, val0.Arn) +// } +// exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "exampleVpcAttachment", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat0), +// VpcArn: pulumi.Any(aws_vpc.Example.Arn), +// }) +// if err != nil { +// return err +// } +// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ +// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ +// AsnRanges: pulumi.StringArray{ +// pulumi.String("65022-65534"), +// }, +// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-west-2"), +// }, +// }, +// }, +// }, +// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment"), +// }, +// }, +// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("0.0.0.0/0"), +// }, +// Destinations: pulumi.StringArray{ +// exampleVpcAttachment.ID(), +// }, +// }, +// }, +// }, nil); +// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { +// return &exampleCoreNetworkPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // ### With VPC Attachment (Multi-Region) // @@ -278,142 +272,139 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) -// if err != nil { -// return err -// } -// base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{ -// CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{ -// { -// AsnRanges: []string{ -// "65022-65534", -// }, -// EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{ -// { -// Location: "us-west-2", -// Asn: pulumi.StringRef("65500"), -// }, -// { -// Location: "us-east-1", -// Asn: pulumi.StringRef("65501"), -// }, -// }, -// }, -// }, -// Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{ -// { -// Name: "segment", -// }, -// }, -// }, nil) -// if err != nil { -// return err -// } -// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ -// GlobalNetworkId: exampleGlobalNetwork.ID(), -// BasePolicyDocument: *pulumi.String(base.Json), -// CreateBasePolicy: pulumi.Bool(true), -// }) -// if err != nil { -// return err -// } -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example_us_west_2 { -// splat0 = append(splat0, val0.Arn) -// } -// exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "exampleUsWest2", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat0), -// VpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn), -// }) -// if err != nil { -// return err -// } -// var splat1 []interface{} -// for _, val0 := range aws_subnet.Example_us_east_1 { -// splat1 = append(splat1, val0.Arn) -// } -// exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "exampleUsEast1", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat1), -// VpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn), -// }, pulumi.Provider("alternate")) -// if err != nil { -// return err -// } -// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ -// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ -// AsnRanges: pulumi.StringArray{ -// pulumi.String("65022-65534"), -// }, -// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-west-2"), -// Asn: pulumi.String("65500"), -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-east-1"), -// Asn: pulumi.String("65501"), -// }, -// }, -// }, -// }, -// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment"), -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment2"), -// }, -// }, -// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("10.0.0.0/16"), -// }, -// Destinations: pulumi.StringArray{ -// exampleUsWest2.ID(), -// }, -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("10.1.0.0/16"), -// }, -// Destinations: pulumi.StringArray{ -// exampleUsEast1.ID(), -// }, -// }, -// }, -// }, nil) -// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { -// return &exampleCoreNetworkPolicyDocument.Json, nil -// }).(pulumi.StringPtrOutput), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) +// if err != nil { +// return err +// } +// base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{ +// CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{ +// { +// AsnRanges: []string{ +// "65022-65534", +// }, +// EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{ +// { +// Location: "us-west-2", +// Asn: pulumi.StringRef("65500"), +// }, +// { +// Location: "us-east-1", +// Asn: pulumi.StringRef("65501"), +// }, +// }, +// }, +// }, +// Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{ +// { +// Name: "segment", +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ +// GlobalNetworkId: exampleGlobalNetwork.ID(), +// BasePolicyDocument: *pulumi.String(base.Json), +// CreateBasePolicy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example_us_west_2 { +// splat0 = append(splat0, val0.Arn) +// } +// exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "exampleUsWest2", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat0), +// VpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn), +// }) +// if err != nil { +// return err +// } +// var splat1 []interface{} +// for _, val0 := range aws_subnet.Example_us_east_1 { +// splat1 = append(splat1, val0.Arn) +// } +// exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "exampleUsEast1", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat1), +// VpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn), +// }, pulumi.Provider("alternate")) +// if err != nil { +// return err +// } +// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ +// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ +// AsnRanges: pulumi.StringArray{ +// pulumi.String("65022-65534"), +// }, +// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-west-2"), +// Asn: pulumi.String("65500"), +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-east-1"), +// Asn: pulumi.String("65501"), +// }, +// }, +// }, +// }, +// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment"), +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment2"), +// }, +// }, +// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("10.0.0.0/16"), +// }, +// Destinations: pulumi.StringArray{ +// exampleUsWest2.ID(), +// }, +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("10.1.0.0/16"), +// }, +// Destinations: pulumi.StringArray{ +// exampleUsEast1.ID(), +// }, +// }, +// }, +// }, nil); +// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { +// return &exampleCoreNetworkPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // ### Option 2 - using basePolicyRegions // @@ -426,116 +417,113 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) -// if err != nil { -// return err -// } -// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ -// GlobalNetworkId: exampleGlobalNetwork.ID(), -// BasePolicyRegions: pulumi.StringArray{ -// pulumi.String("us-west-2"), -// pulumi.String("us-east-1"), -// }, -// CreateBasePolicy: pulumi.Bool(true), -// }) -// if err != nil { -// return err -// } -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Example_us_west_2 { -// splat0 = append(splat0, val0.Arn) -// } -// exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "exampleUsWest2", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat0), -// VpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn), -// }) -// if err != nil { -// return err -// } -// var splat1 []interface{} -// for _, val0 := range aws_subnet.Example_us_east_1 { -// splat1 = append(splat1, val0.Arn) -// } -// exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "exampleUsEast1", &networkmanager.VpcAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// SubnetArns: toPulumiAnyArray(splat1), -// VpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn), -// }, pulumi.Provider("alternate")) -// if err != nil { -// return err -// } -// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ -// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ -// AsnRanges: pulumi.StringArray{ -// pulumi.String("65022-65534"), -// }, -// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-west-2"), -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ -// Location: pulumi.String("us-east-1"), -// }, -// }, -// }, -// }, -// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment"), -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ -// Name: pulumi.String("segment2"), -// }, -// }, -// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("10.0.0.0/16"), -// }, -// Destinations: pulumi.StringArray{ -// exampleUsWest2.ID(), -// }, -// }, -// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ -// Action: pulumi.String("create-route"), -// Segment: pulumi.String("segment"), -// DestinationCidrBlocks: pulumi.StringArray{ -// pulumi.String("10.1.0.0/16"), -// }, -// Destinations: pulumi.StringArray{ -// exampleUsEast1.ID(), -// }, -// }, -// }, -// }, nil) -// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ -// CoreNetworkId: exampleCoreNetwork.ID(), -// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { -// return &exampleCoreNetworkPolicyDocument.Json, nil -// }).(pulumi.StringPtrOutput), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "exampleGlobalNetwork", nil) +// if err != nil { +// return err +// } +// exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "exampleCoreNetwork", &networkmanager.CoreNetworkArgs{ +// GlobalNetworkId: exampleGlobalNetwork.ID(), +// BasePolicyRegions: pulumi.StringArray{ +// pulumi.String("us-west-2"), +// pulumi.String("us-east-1"), +// }, +// CreateBasePolicy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Example_us_west_2 { +// splat0 = append(splat0, val0.Arn) +// } +// exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "exampleUsWest2", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat0), +// VpcArn: pulumi.Any(aws_vpc.Example_us_west_2.Arn), +// }) +// if err != nil { +// return err +// } +// var splat1 []interface{} +// for _, val0 := range aws_subnet.Example_us_east_1 { +// splat1 = append(splat1, val0.Arn) +// } +// exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "exampleUsEast1", &networkmanager.VpcAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// SubnetArns: toPulumiArray(splat1), +// VpcArn: pulumi.Any(aws_vpc.Example_us_east_1.Arn), +// }, pulumi.Provider("alternate")) +// if err != nil { +// return err +// } +// exampleCoreNetworkPolicyDocument := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{ +// CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{ +// AsnRanges: pulumi.StringArray{ +// pulumi.String("65022-65534"), +// }, +// EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-west-2"), +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{ +// Location: pulumi.String("us-east-1"), +// }, +// }, +// }, +// }, +// Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment"), +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{ +// Name: pulumi.String("segment2"), +// }, +// }, +// SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{ +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("10.0.0.0/16"), +// }, +// Destinations: pulumi.StringArray{ +// exampleUsWest2.ID(), +// }, +// }, +// &networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{ +// Action: pulumi.String("create-route"), +// Segment: pulumi.String("segment"), +// DestinationCidrBlocks: pulumi.StringArray{ +// pulumi.String("10.1.0.0/16"), +// }, +// Destinations: pulumi.StringArray{ +// exampleUsEast1.ID(), +// }, +// }, +// }, +// }, nil); +// _, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "exampleCoreNetworkPolicyAttachment", &networkmanager.CoreNetworkPolicyAttachmentArgs{ +// CoreNetworkId: exampleCoreNetwork.ID(), +// PolicyDocument: exampleCoreNetworkPolicyDocument.ApplyT(func(exampleCoreNetworkPolicyDocument networkmanager.GetCoreNetworkPolicyDocumentResult) (*string, error) { +// return &exampleCoreNetworkPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // // ## Import diff --git a/sdk/go/aws/oam/getLinks.go b/sdk/go/aws/oam/getLinks.go index ea3af22dde2..42d7cba7475 100644 --- a/sdk/go/aws/oam/getLinks.go +++ b/sdk/go/aws/oam/getLinks.go @@ -4,8 +4,12 @@ package oam import ( + "context" + "reflect" + "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" ) // Data source for managing an AWS CloudWatch Observability Access Manager Links. @@ -51,3 +55,49 @@ type GetLinksResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` } + +func GetLinksOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetLinksResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetLinksResult, error) { + r, err := GetLinks(ctx, opts...) + var s GetLinksResult + if r != nil { + s = *r + } + return s, err + }).(GetLinksResultOutput) +} + +// A collection of values returned by getLinks. +type GetLinksResultOutput struct{ *pulumi.OutputState } + +func (GetLinksResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLinksResult)(nil)).Elem() +} + +func (o GetLinksResultOutput) ToGetLinksResultOutput() GetLinksResultOutput { + return o +} + +func (o GetLinksResultOutput) ToGetLinksResultOutputWithContext(ctx context.Context) GetLinksResultOutput { + return o +} + +func (o GetLinksResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetLinksResult] { + return pulumix.Output[GetLinksResult]{ + OutputState: o.OutputState, + } +} + +// Set of ARN of the Links. +func (o GetLinksResultOutput) Arns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLinksResult) []string { return v.Arns }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetLinksResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetLinksResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetLinksResultOutput{}) +} diff --git a/sdk/go/aws/oam/getSinks.go b/sdk/go/aws/oam/getSinks.go index ffdc19029a9..4b0aab68eab 100644 --- a/sdk/go/aws/oam/getSinks.go +++ b/sdk/go/aws/oam/getSinks.go @@ -4,8 +4,12 @@ package oam import ( + "context" + "reflect" + "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" ) // Data source for managing an AWS CloudWatch Observability Access Manager Sinks. @@ -51,3 +55,49 @@ type GetSinksResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` } + +func GetSinksOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetSinksResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetSinksResult, error) { + r, err := GetSinks(ctx, opts...) + var s GetSinksResult + if r != nil { + s = *r + } + return s, err + }).(GetSinksResultOutput) +} + +// A collection of values returned by getSinks. +type GetSinksResultOutput struct{ *pulumi.OutputState } + +func (GetSinksResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetSinksResult)(nil)).Elem() +} + +func (o GetSinksResultOutput) ToGetSinksResultOutput() GetSinksResultOutput { + return o +} + +func (o GetSinksResultOutput) ToGetSinksResultOutputWithContext(ctx context.Context) GetSinksResultOutput { + return o +} + +func (o GetSinksResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetSinksResult] { + return pulumix.Output[GetSinksResult]{ + OutputState: o.OutputState, + } +} + +// Set of ARN of the Sinks. +func (o GetSinksResultOutput) Arns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetSinksResult) []string { return v.Arns }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetSinksResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetSinksResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetSinksResultOutput{}) +} diff --git a/sdk/go/aws/organizations/getOrganization.go b/sdk/go/aws/organizations/getOrganization.go index 087d654955c..2a51208c0fc 100644 --- a/sdk/go/aws/organizations/getOrganization.go +++ b/sdk/go/aws/organizations/getOrganization.go @@ -4,8 +4,12 @@ package organizations import ( + "context" + "reflect" + "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" ) // Get information about the organization that the user's account belongs to @@ -143,3 +147,94 @@ type LookupOrganizationResult struct { // List of organization roots. All elements have these attributes: Roots []GetOrganizationRoot `pulumi:"roots"` } + +func LookupOrganizationOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) LookupOrganizationResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (LookupOrganizationResult, error) { + r, err := LookupOrganization(ctx, opts...) + var s LookupOrganizationResult + if r != nil { + s = *r + } + return s, err + }).(LookupOrganizationResultOutput) +} + +// A collection of values returned by getOrganization. +type LookupOrganizationResultOutput struct{ *pulumi.OutputState } + +func (LookupOrganizationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupOrganizationResult)(nil)).Elem() +} + +func (o LookupOrganizationResultOutput) ToLookupOrganizationResultOutput() LookupOrganizationResultOutput { + return o +} + +func (o LookupOrganizationResultOutput) ToLookupOrganizationResultOutputWithContext(ctx context.Context) LookupOrganizationResultOutput { + return o +} + +func (o LookupOrganizationResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupOrganizationResult] { + return pulumix.Output[LookupOrganizationResult]{ + OutputState: o.OutputState, + } +} + +// List of organization accounts including the master account. For a list excluding the master account, see the `nonMasterAccounts` attribute. All elements have these attributes: +func (o LookupOrganizationResultOutput) Accounts() GetOrganizationAccountArrayOutput { + return o.ApplyT(func(v LookupOrganizationResult) []GetOrganizationAccount { return v.Accounts }).(GetOrganizationAccountArrayOutput) +} + +// ARN of the root +func (o LookupOrganizationResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrganizationResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// A list of AWS service principal names that have integration enabled with your organization. Organization must have `featureSet` set to `ALL`. For additional information, see the [AWS Organizations User Guide](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html). +func (o LookupOrganizationResultOutput) AwsServiceAccessPrincipals() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupOrganizationResult) []string { return v.AwsServiceAccessPrincipals }).(pulumi.StringArrayOutput) +} + +// A list of Organizations policy types that are enabled in the Organization Root. Organization must have `featureSet` set to `ALL`. For additional information about valid policy types (e.g., `SERVICE_CONTROL_POLICY`), see the [AWS Organizations API Reference](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnablePolicyType.html). +func (o LookupOrganizationResultOutput) EnabledPolicyTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupOrganizationResult) []string { return v.EnabledPolicyTypes }).(pulumi.StringArrayOutput) +} + +// FeatureSet of the organization. +func (o LookupOrganizationResultOutput) FeatureSet() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrganizationResult) string { return v.FeatureSet }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupOrganizationResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrganizationResult) string { return v.Id }).(pulumi.StringOutput) +} + +// ARN of the account that is designated as the master account for the organization. +func (o LookupOrganizationResultOutput) MasterAccountArn() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrganizationResult) string { return v.MasterAccountArn }).(pulumi.StringOutput) +} + +// The email address that is associated with the AWS account that is designated as the master account for the organization. +func (o LookupOrganizationResultOutput) MasterAccountEmail() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrganizationResult) string { return v.MasterAccountEmail }).(pulumi.StringOutput) +} + +// Unique identifier (ID) of the master account of an organization. +func (o LookupOrganizationResultOutput) MasterAccountId() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrganizationResult) string { return v.MasterAccountId }).(pulumi.StringOutput) +} + +// List of organization accounts excluding the master account. For a list including the master account, see the `accounts` attribute. All elements have these attributes: +func (o LookupOrganizationResultOutput) NonMasterAccounts() GetOrganizationNonMasterAccountArrayOutput { + return o.ApplyT(func(v LookupOrganizationResult) []GetOrganizationNonMasterAccount { return v.NonMasterAccounts }).(GetOrganizationNonMasterAccountArrayOutput) +} + +// List of organization roots. All elements have these attributes: +func (o LookupOrganizationResultOutput) Roots() GetOrganizationRootArrayOutput { + return o.ApplyT(func(v LookupOrganizationResult) []GetOrganizationRoot { return v.Roots }).(GetOrganizationRootArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupOrganizationResultOutput{}) +} diff --git a/sdk/go/aws/outposts/getSites.go b/sdk/go/aws/outposts/getSites.go index 90a1b755d3c..dfbfa2bf348 100644 --- a/sdk/go/aws/outposts/getSites.go +++ b/sdk/go/aws/outposts/getSites.go @@ -4,8 +4,12 @@ package outposts import ( + "context" + "reflect" + "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 details about multiple Outposts Sites. @@ -50,3 +54,49 @@ type GetSitesResult struct { // Set of Outposts Site identifiers. Ids []string `pulumi:"ids"` } + +func GetSitesOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetSitesResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetSitesResult, error) { + r, err := GetSites(ctx, opts...) + var s GetSitesResult + if r != nil { + s = *r + } + return s, err + }).(GetSitesResultOutput) +} + +// A collection of values returned by getSites. +type GetSitesResultOutput struct{ *pulumi.OutputState } + +func (GetSitesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetSitesResult)(nil)).Elem() +} + +func (o GetSitesResultOutput) ToGetSitesResultOutput() GetSitesResultOutput { + return o +} + +func (o GetSitesResultOutput) ToGetSitesResultOutputWithContext(ctx context.Context) GetSitesResultOutput { + return o +} + +func (o GetSitesResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetSitesResult] { + return pulumix.Output[GetSitesResult]{ + OutputState: o.OutputState, + } +} + +// The provider-assigned unique ID for this managed resource. +func (o GetSitesResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetSitesResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Set of Outposts Site identifiers. +func (o GetSitesResultOutput) Ids() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetSitesResult) []string { return v.Ids }).(pulumi.StringArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetSitesResultOutput{}) +} diff --git a/sdk/go/aws/pipes/pulumiTypes.go b/sdk/go/aws/pipes/pulumiTypes.go index 7a94e117e75..c7d8827ab8e 100644 --- a/sdk/go/aws/pipes/pulumiTypes.go +++ b/sdk/go/aws/pipes/pulumiTypes.go @@ -920,7 +920,7 @@ func (o PipeSourceParametersActivemqBrokerParametersPtrOutput) QueueName() pulum } type PipeSourceParametersActivemqBrokerParametersCredentials struct { - // The ARN of the Secrets Manager secret containing the basic auth credentials. + // The ARN of the Secrets Manager secret containing the credentials. BasicAuth string `pulumi:"basicAuth"` } @@ -936,7 +936,7 @@ type PipeSourceParametersActivemqBrokerParametersCredentialsInput interface { } type PipeSourceParametersActivemqBrokerParametersCredentialsArgs struct { - // The ARN of the Secrets Manager secret containing the basic auth credentials. + // The ARN of the Secrets Manager secret containing the credentials. BasicAuth pulumi.StringInput `pulumi:"basicAuth"` } @@ -1035,7 +1035,7 @@ func (o PipeSourceParametersActivemqBrokerParametersCredentialsOutput) ToOutput( } } -// The ARN of the Secrets Manager secret containing the basic auth credentials. +// The ARN of the Secrets Manager secret containing the credentials. func (o PipeSourceParametersActivemqBrokerParametersCredentialsOutput) BasicAuth() pulumi.StringOutput { return o.ApplyT(func(v PipeSourceParametersActivemqBrokerParametersCredentials) string { return v.BasicAuth }).(pulumi.StringOutput) } @@ -1070,7 +1070,7 @@ func (o PipeSourceParametersActivemqBrokerParametersCredentialsPtrOutput) Elem() }).(PipeSourceParametersActivemqBrokerParametersCredentialsOutput) } -// The ARN of the Secrets Manager secret containing the basic auth credentials. +// The ARN of the Secrets Manager secret containing the credentials. func (o PipeSourceParametersActivemqBrokerParametersCredentialsPtrOutput) BasicAuth() pulumi.StringPtrOutput { return o.ApplyT(func(v *PipeSourceParametersActivemqBrokerParametersCredentials) *string { if v == nil { @@ -2981,7 +2981,7 @@ func (o PipeSourceParametersRabbitmqBrokerParametersPtrOutput) VirtualHost() pul } type PipeSourceParametersRabbitmqBrokerParametersCredentials struct { - // The ARN of the Secrets Manager secret containing the basic auth credentials. + // The ARN of the Secrets Manager secret containing the credentials. BasicAuth string `pulumi:"basicAuth"` } @@ -2997,7 +2997,7 @@ type PipeSourceParametersRabbitmqBrokerParametersCredentialsInput interface { } type PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs struct { - // The ARN of the Secrets Manager secret containing the basic auth credentials. + // The ARN of the Secrets Manager secret containing the credentials. BasicAuth pulumi.StringInput `pulumi:"basicAuth"` } @@ -3096,7 +3096,7 @@ func (o PipeSourceParametersRabbitmqBrokerParametersCredentialsOutput) ToOutput( } } -// The ARN of the Secrets Manager secret containing the basic auth credentials. +// The ARN of the Secrets Manager secret containing the credentials. func (o PipeSourceParametersRabbitmqBrokerParametersCredentialsOutput) BasicAuth() pulumi.StringOutput { return o.ApplyT(func(v PipeSourceParametersRabbitmqBrokerParametersCredentials) string { return v.BasicAuth }).(pulumi.StringOutput) } @@ -3131,7 +3131,7 @@ func (o PipeSourceParametersRabbitmqBrokerParametersCredentialsPtrOutput) Elem() }).(PipeSourceParametersRabbitmqBrokerParametersCredentialsOutput) } -// The ARN of the Secrets Manager secret containing the basic auth credentials. +// The ARN of the Secrets Manager secret containing the credentials. func (o PipeSourceParametersRabbitmqBrokerParametersCredentialsPtrOutput) BasicAuth() pulumi.StringPtrOutput { return o.ApplyT(func(v *PipeSourceParametersRabbitmqBrokerParametersCredentials) *string { if v == nil { @@ -3459,7 +3459,7 @@ func (o PipeSourceParametersSelfManagedKafkaParametersPtrOutput) Vpc() PipeSourc } type PipeSourceParametersSelfManagedKafkaParametersCredentials struct { - // The ARN of the Secrets Manager secret containing the basic auth credentials. + // The ARN of the Secrets Manager secret containing the credentials. BasicAuth string `pulumi:"basicAuth"` // The ARN of the Secrets Manager secret containing the credentials. ClientCertificateTlsAuth *string `pulumi:"clientCertificateTlsAuth"` @@ -3481,7 +3481,7 @@ type PipeSourceParametersSelfManagedKafkaParametersCredentialsInput interface { } type PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs struct { - // The ARN of the Secrets Manager secret containing the basic auth credentials. + // The ARN of the Secrets Manager secret containing the credentials. BasicAuth pulumi.StringInput `pulumi:"basicAuth"` // The ARN of the Secrets Manager secret containing the credentials. ClientCertificateTlsAuth pulumi.StringPtrInput `pulumi:"clientCertificateTlsAuth"` @@ -3586,7 +3586,7 @@ func (o PipeSourceParametersSelfManagedKafkaParametersCredentialsOutput) ToOutpu } } -// The ARN of the Secrets Manager secret containing the basic auth credentials. +// The ARN of the Secrets Manager secret containing the credentials. func (o PipeSourceParametersSelfManagedKafkaParametersCredentialsOutput) BasicAuth() pulumi.StringOutput { return o.ApplyT(func(v PipeSourceParametersSelfManagedKafkaParametersCredentials) string { return v.BasicAuth }).(pulumi.StringOutput) } @@ -3638,7 +3638,7 @@ func (o PipeSourceParametersSelfManagedKafkaParametersCredentialsPtrOutput) Elem }).(PipeSourceParametersSelfManagedKafkaParametersCredentialsOutput) } -// The ARN of the Secrets Manager secret containing the basic auth credentials. +// The ARN of the Secrets Manager secret containing the credentials. func (o PipeSourceParametersSelfManagedKafkaParametersCredentialsPtrOutput) BasicAuth() pulumi.StringPtrOutput { return o.ApplyT(func(v *PipeSourceParametersSelfManagedKafkaParametersCredentials) *string { if v == nil { @@ -4867,13 +4867,13 @@ func (o PipeTargetParametersBatchJobParametersArrayPropertiesPtrOutput) Size() p } type PipeTargetParametersBatchJobParametersContainerOverrides struct { - // List of commands to send to the container that overrides the default command from the Docker image or the task definition. + // List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. Commands []string `pulumi:"commands"` - // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. Environments []PipeTargetParametersBatchJobParametersContainerOverridesEnvironment `pulumi:"environments"` // The instance type to use for a multi-node parallel job. This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided. InstanceType *string `pulumi:"instanceType"` - // The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + // The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. ResourceRequirements []PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement `pulumi:"resourceRequirements"` } @@ -4889,13 +4889,13 @@ type PipeTargetParametersBatchJobParametersContainerOverridesInput interface { } type PipeTargetParametersBatchJobParametersContainerOverridesArgs struct { - // List of commands to send to the container that overrides the default command from the Docker image or the task definition. + // List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. Commands pulumi.StringArrayInput `pulumi:"commands"` - // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. Environments PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArrayInput `pulumi:"environments"` // The instance type to use for a multi-node parallel job. This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided. InstanceType pulumi.StringPtrInput `pulumi:"instanceType"` - // The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + // The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. ResourceRequirements PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArrayInput `pulumi:"resourceRequirements"` } @@ -4994,12 +4994,12 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesOutput) ToOutput } } -// List of commands to send to the container that overrides the default command from the Docker image or the task definition. +// List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. func (o PipeTargetParametersBatchJobParametersContainerOverridesOutput) Commands() pulumi.StringArrayOutput { return o.ApplyT(func(v PipeTargetParametersBatchJobParametersContainerOverrides) []string { return v.Commands }).(pulumi.StringArrayOutput) } -// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. +// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. func (o PipeTargetParametersBatchJobParametersContainerOverridesOutput) Environments() PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArrayOutput { return o.ApplyT(func(v PipeTargetParametersBatchJobParametersContainerOverrides) []PipeTargetParametersBatchJobParametersContainerOverridesEnvironment { return v.Environments @@ -5011,7 +5011,7 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesOutput) Instance return o.ApplyT(func(v PipeTargetParametersBatchJobParametersContainerOverrides) *string { return v.InstanceType }).(pulumi.StringPtrOutput) } -// The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. +// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. func (o PipeTargetParametersBatchJobParametersContainerOverridesOutput) ResourceRequirements() PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArrayOutput { return o.ApplyT(func(v PipeTargetParametersBatchJobParametersContainerOverrides) []PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement { return v.ResourceRequirements @@ -5048,7 +5048,7 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesPtrOutput) Elem( }).(PipeTargetParametersBatchJobParametersContainerOverridesOutput) } -// List of commands to send to the container that overrides the default command from the Docker image or the task definition. +// List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. func (o PipeTargetParametersBatchJobParametersContainerOverridesPtrOutput) Commands() pulumi.StringArrayOutput { return o.ApplyT(func(v *PipeTargetParametersBatchJobParametersContainerOverrides) []string { if v == nil { @@ -5058,7 +5058,7 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesPtrOutput) Comma }).(pulumi.StringArrayOutput) } -// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. +// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. func (o PipeTargetParametersBatchJobParametersContainerOverridesPtrOutput) Environments() PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArrayOutput { return o.ApplyT(func(v *PipeTargetParametersBatchJobParametersContainerOverrides) []PipeTargetParametersBatchJobParametersContainerOverridesEnvironment { if v == nil { @@ -5078,7 +5078,7 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesPtrOutput) Insta }).(pulumi.StringPtrOutput) } -// The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. +// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. func (o PipeTargetParametersBatchJobParametersContainerOverridesPtrOutput) ResourceRequirements() PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArrayOutput { return o.ApplyT(func(v *PipeTargetParametersBatchJobParametersContainerOverrides) []PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement { if v == nil { @@ -5091,7 +5091,7 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesPtrOutput) Resou type PipeTargetParametersBatchJobParametersContainerOverridesEnvironment struct { // Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name *string `pulumi:"name"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value *string `pulumi:"value"` } @@ -5109,7 +5109,7 @@ type PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentInput in type PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs struct { // Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name pulumi.StringPtrInput `pulumi:"name"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value pulumi.StringPtrInput `pulumi:"value"` } @@ -5187,7 +5187,7 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentOutpu return o.ApplyT(func(v PipeTargetParametersBatchJobParametersContainerOverridesEnvironment) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The value of the key-value pair. For environment variables, this is the value of the environment variable. +// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. func (o PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentOutput) Value() pulumi.StringPtrOutput { return o.ApplyT(func(v PipeTargetParametersBatchJobParametersContainerOverridesEnvironment) *string { return v.Value }).(pulumi.StringPtrOutput) } @@ -5219,9 +5219,9 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArray } type PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement struct { - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type string `pulumi:"type"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value string `pulumi:"value"` } @@ -5237,9 +5237,9 @@ type PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement } type PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs struct { - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type pulumi.StringInput `pulumi:"type"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value pulumi.StringInput `pulumi:"value"` } @@ -5312,14 +5312,14 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirem } } -// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. +// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. func (o PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement) string { return v.Type }).(pulumi.StringOutput) } -// The value of the key-value pair. For environment variables, this is the value of the environment variable. +// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. func (o PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement) string { return v.Value @@ -5355,7 +5355,7 @@ func (o PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirem type PipeTargetParametersBatchJobParametersDependsOn struct { // The job ID of the AWS Batch job that's associated with this dependency. JobId *string `pulumi:"jobId"` - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type *string `pulumi:"type"` } @@ -5373,7 +5373,7 @@ type PipeTargetParametersBatchJobParametersDependsOnInput interface { type PipeTargetParametersBatchJobParametersDependsOnArgs struct { // The job ID of the AWS Batch job that's associated with this dependency. JobId pulumi.StringPtrInput `pulumi:"jobId"` - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -5451,7 +5451,7 @@ func (o PipeTargetParametersBatchJobParametersDependsOnOutput) JobId() pulumi.St return o.ApplyT(func(v PipeTargetParametersBatchJobParametersDependsOn) *string { return v.JobId }).(pulumi.StringPtrOutput) } -// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. +// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. func (o PipeTargetParametersBatchJobParametersDependsOnOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v PipeTargetParametersBatchJobParametersDependsOn) *string { return v.Type }).(pulumi.StringPtrOutput) } @@ -6772,7 +6772,7 @@ func (o PipeTargetParametersEcsTaskParametersNetworkConfigurationAwsVpcConfigura type PipeTargetParametersEcsTaskParametersOverrides struct { // One or more container overrides that are sent to a task. Detailed below. ContainerOverrides []PipeTargetParametersEcsTaskParametersOverridesContainerOverride `pulumi:"containerOverrides"` - // The cpu override for the task. + // The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. Cpu *string `pulumi:"cpu"` // The ephemeral storage setting override for the task. Detailed below. EphemeralStorage *PipeTargetParametersEcsTaskParametersOverridesEphemeralStorage `pulumi:"ephemeralStorage"` @@ -6780,7 +6780,7 @@ type PipeTargetParametersEcsTaskParametersOverrides struct { ExecutionRoleArn *string `pulumi:"executionRoleArn"` // List of Elastic Inference accelerator overrides for the task. Detailed below. InferenceAcceleratorOverrides []PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverride `pulumi:"inferenceAcceleratorOverrides"` - // The memory override for the task. + // The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. Memory *string `pulumi:"memory"` // The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. TaskRoleArn *string `pulumi:"taskRoleArn"` @@ -6800,7 +6800,7 @@ type PipeTargetParametersEcsTaskParametersOverridesInput interface { type PipeTargetParametersEcsTaskParametersOverridesArgs struct { // One or more container overrides that are sent to a task. Detailed below. ContainerOverrides PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArrayInput `pulumi:"containerOverrides"` - // The cpu override for the task. + // The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. Cpu pulumi.StringPtrInput `pulumi:"cpu"` // The ephemeral storage setting override for the task. Detailed below. EphemeralStorage PipeTargetParametersEcsTaskParametersOverridesEphemeralStoragePtrInput `pulumi:"ephemeralStorage"` @@ -6808,7 +6808,7 @@ type PipeTargetParametersEcsTaskParametersOverridesArgs struct { ExecutionRoleArn pulumi.StringPtrInput `pulumi:"executionRoleArn"` // List of Elastic Inference accelerator overrides for the task. Detailed below. InferenceAcceleratorOverrides PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverrideArrayInput `pulumi:"inferenceAcceleratorOverrides"` - // The memory override for the task. + // The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. Memory pulumi.StringPtrInput `pulumi:"memory"` // The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. TaskRoleArn pulumi.StringPtrInput `pulumi:"taskRoleArn"` @@ -6916,7 +6916,7 @@ func (o PipeTargetParametersEcsTaskParametersOverridesOutput) ContainerOverrides }).(PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArrayOutput) } -// The cpu override for the task. +// The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. func (o PipeTargetParametersEcsTaskParametersOverridesOutput) Cpu() pulumi.StringPtrOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverrides) *string { return v.Cpu }).(pulumi.StringPtrOutput) } @@ -6940,7 +6940,7 @@ func (o PipeTargetParametersEcsTaskParametersOverridesOutput) InferenceAccelerat }).(PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverrideArrayOutput) } -// The memory override for the task. +// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. func (o PipeTargetParametersEcsTaskParametersOverridesOutput) Memory() pulumi.StringPtrOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverrides) *string { return v.Memory }).(pulumi.StringPtrOutput) } @@ -6990,7 +6990,7 @@ func (o PipeTargetParametersEcsTaskParametersOverridesPtrOutput) ContainerOverri }).(PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArrayOutput) } -// The cpu override for the task. +// The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. func (o PipeTargetParametersEcsTaskParametersOverridesPtrOutput) Cpu() pulumi.StringPtrOutput { return o.ApplyT(func(v *PipeTargetParametersEcsTaskParametersOverrides) *string { if v == nil { @@ -7030,7 +7030,7 @@ func (o PipeTargetParametersEcsTaskParametersOverridesPtrOutput) InferenceAccele }).(PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverrideArrayOutput) } -// The memory override for the task. +// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. func (o PipeTargetParametersEcsTaskParametersOverridesPtrOutput) Memory() pulumi.StringPtrOutput { return o.ApplyT(func(v *PipeTargetParametersEcsTaskParametersOverrides) *string { if v == nil { @@ -7051,21 +7051,21 @@ func (o PipeTargetParametersEcsTaskParametersOverridesPtrOutput) TaskRoleArn() p } type PipeTargetParametersEcsTaskParametersOverridesContainerOverride struct { - // List of commands to send to the container that overrides the default command from the Docker image or the task definition. + // List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. Commands []string `pulumi:"commands"` - // The cpu override for the task. + // The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. Cpu *int `pulumi:"cpu"` // A list of files containing the environment variables to pass to a container, instead of the value from the container definition. Detailed below. EnvironmentFiles []PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile `pulumi:"environmentFiles"` - // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. Environments []PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment `pulumi:"environments"` - // The memory override for the task. + // The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. Memory *int `pulumi:"memory"` // The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. You must also specify a container name. MemoryReservation *int `pulumi:"memoryReservation"` // Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name *string `pulumi:"name"` - // The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + // The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. ResourceRequirements []PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement `pulumi:"resourceRequirements"` } @@ -7081,21 +7081,21 @@ type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideInput interf } type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs struct { - // List of commands to send to the container that overrides the default command from the Docker image or the task definition. + // List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. Commands pulumi.StringArrayInput `pulumi:"commands"` - // The cpu override for the task. + // The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. Cpu pulumi.IntPtrInput `pulumi:"cpu"` // A list of files containing the environment variables to pass to a container, instead of the value from the container definition. Detailed below. EnvironmentFiles PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArrayInput `pulumi:"environmentFiles"` - // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. Environments PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArrayInput `pulumi:"environments"` - // The memory override for the task. + // The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. Memory pulumi.IntPtrInput `pulumi:"memory"` // The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. You must also specify a container name. MemoryReservation pulumi.IntPtrInput `pulumi:"memoryReservation"` // Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name pulumi.StringPtrInput `pulumi:"name"` - // The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + // The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. ResourceRequirements PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArrayInput `pulumi:"resourceRequirements"` } @@ -7168,12 +7168,12 @@ func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideOutput) T } } -// List of commands to send to the container that overrides the default command from the Docker image or the task definition. +// List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideOutput) Commands() pulumi.StringArrayOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverride) []string { return v.Commands }).(pulumi.StringArrayOutput) } -// The cpu override for the task. +// The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideOutput) Cpu() pulumi.IntPtrOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverride) *int { return v.Cpu }).(pulumi.IntPtrOutput) } @@ -7185,14 +7185,14 @@ func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideOutput) E }).(PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArrayOutput) } -// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. +// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideOutput) Environments() PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArrayOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverride) []PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment { return v.Environments }).(PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArrayOutput) } -// The memory override for the task. +// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideOutput) Memory() pulumi.IntPtrOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverride) *int { return v.Memory }).(pulumi.IntPtrOutput) } @@ -7209,7 +7209,7 @@ func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideOutput) N return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverride) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. +// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideOutput) ResourceRequirements() PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArrayOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverride) []PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement { return v.ResourceRequirements @@ -7245,7 +7245,7 @@ func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArrayOutp type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment struct { // Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name *string `pulumi:"name"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value *string `pulumi:"value"` } @@ -7263,7 +7263,7 @@ type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentI type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs struct { // Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name pulumi.StringPtrInput `pulumi:"name"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value pulumi.StringPtrInput `pulumi:"value"` } @@ -7343,7 +7343,7 @@ func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironme }).(pulumi.StringPtrOutput) } -// The value of the key-value pair. For environment variables, this is the value of the environment variable. +// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentOutput) Value() pulumi.StringPtrOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment) *string { return v.Value @@ -7377,9 +7377,9 @@ func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironme } type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile struct { - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type string `pulumi:"type"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value string `pulumi:"value"` } @@ -7395,9 +7395,9 @@ type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentF } type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs struct { - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type pulumi.StringInput `pulumi:"type"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value pulumi.StringInput `pulumi:"value"` } @@ -7470,14 +7470,14 @@ func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironme } } -// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. +// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile) string { return v.Type }).(pulumi.StringOutput) } -// The value of the key-value pair. For environment variables, this is the value of the environment variable. +// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile) string { return v.Value @@ -7511,9 +7511,9 @@ func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironme } type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement struct { - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type string `pulumi:"type"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value string `pulumi:"value"` } @@ -7529,9 +7529,9 @@ type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequ } type PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs struct { - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type pulumi.StringInput `pulumi:"type"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value pulumi.StringInput `pulumi:"value"` } @@ -7604,14 +7604,14 @@ func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceR } } -// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. +// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement) string { return v.Type }).(pulumi.StringOutput) } -// The value of the key-value pair. For environment variables, this is the value of the environment variable. +// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. func (o PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement) string { return v.Value @@ -7942,7 +7942,7 @@ func (o PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverri type PipeTargetParametersEcsTaskParametersPlacementConstraint struct { // A cluster query language expression to apply to the constraint. You cannot specify an expression if the constraint type is distinctInstance. Maximum length of 2,000. Expression *string `pulumi:"expression"` - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type *string `pulumi:"type"` } @@ -7960,7 +7960,7 @@ type PipeTargetParametersEcsTaskParametersPlacementConstraintInput interface { type PipeTargetParametersEcsTaskParametersPlacementConstraintArgs struct { // A cluster query language expression to apply to the constraint. You cannot specify an expression if the constraint type is distinctInstance. Maximum length of 2,000. Expression pulumi.StringPtrInput `pulumi:"expression"` - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -8038,7 +8038,7 @@ func (o PipeTargetParametersEcsTaskParametersPlacementConstraintOutput) Expressi return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersPlacementConstraint) *string { return v.Expression }).(pulumi.StringPtrOutput) } -// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. +// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. func (o PipeTargetParametersEcsTaskParametersPlacementConstraintOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersPlacementConstraint) *string { return v.Type }).(pulumi.StringPtrOutput) } @@ -8072,7 +8072,7 @@ func (o PipeTargetParametersEcsTaskParametersPlacementConstraintArrayOutput) Ind type PipeTargetParametersEcsTaskParametersPlacementStrategy struct { // The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used. Maximum length of 255. Field *string `pulumi:"field"` - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type *string `pulumi:"type"` } @@ -8090,7 +8090,7 @@ type PipeTargetParametersEcsTaskParametersPlacementStrategyInput interface { type PipeTargetParametersEcsTaskParametersPlacementStrategyArgs struct { // The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used. Maximum length of 255. Field pulumi.StringPtrInput `pulumi:"field"` - // The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + // The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -8168,7 +8168,7 @@ func (o PipeTargetParametersEcsTaskParametersPlacementStrategyOutput) Field() pu return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersPlacementStrategy) *string { return v.Field }).(pulumi.StringPtrOutput) } -// The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. +// The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. func (o PipeTargetParametersEcsTaskParametersPlacementStrategyOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v PipeTargetParametersEcsTaskParametersPlacementStrategy) *string { return v.Type }).(pulumi.StringPtrOutput) } @@ -9379,7 +9379,7 @@ func (o PipeTargetParametersSagemakerPipelineParametersPtrOutput) PipelineParame type PipeTargetParametersSagemakerPipelineParametersPipelineParameter struct { // Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name string `pulumi:"name"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value string `pulumi:"value"` } @@ -9397,7 +9397,7 @@ type PipeTargetParametersSagemakerPipelineParametersPipelineParameterInput inter type PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs struct { // Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name pulumi.StringInput `pulumi:"name"` - // The value of the key-value pair. For environment variables, this is the value of the environment variable. + // Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. Value pulumi.StringInput `pulumi:"value"` } @@ -9475,7 +9475,7 @@ func (o PipeTargetParametersSagemakerPipelineParametersPipelineParameterOutput) return o.ApplyT(func(v PipeTargetParametersSagemakerPipelineParametersPipelineParameter) string { return v.Name }).(pulumi.StringOutput) } -// The value of the key-value pair. For environment variables, this is the value of the environment variable. +// Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. func (o PipeTargetParametersSagemakerPipelineParametersPipelineParameterOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v PipeTargetParametersSagemakerPipelineParametersPipelineParameter) string { return v.Value }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/rds/proxyEndpoint.go b/sdk/go/aws/rds/proxyEndpoint.go index cc781e02abc..67a288391ca 100644 --- a/sdk/go/aws/rds/proxyEndpoint.go +++ b/sdk/go/aws/rds/proxyEndpoint.go @@ -26,34 +26,31 @@ import ( // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// var splat0 []interface{} -// for _, val0 := range aws_subnet.Test { -// splat0 = append(splat0, val0.Id) -// } -// _, err := rds.NewProxyEndpoint(ctx, "example", &rds.ProxyEndpointArgs{ -// DbProxyName: pulumi.Any(aws_db_proxy.Test.Name), -// DbProxyEndpointName: pulumi.String("example"), -// VpcSubnetIds: toPulumiAnyArray(splat0), -// TargetRole: pulumi.String("READ_ONLY"), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// func toPulumiAnyArray(arr []Any) pulumi.AnyArray { -// var pulumiArr pulumi.AnyArray -// for _, v := range arr { -// pulumiArr = append(pulumiArr, pulumi.Any(v)) -// } -// return pulumiArr -// } -// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// var splat0 []interface{} +// for _, val0 := range aws_subnet.Test { +// splat0 = append(splat0, val0.Id) +// } +// _, err := rds.NewProxyEndpoint(ctx, "example", &rds.ProxyEndpointArgs{ +// DbProxyName: pulumi.Any(aws_db_proxy.Test.Name), +// DbProxyEndpointName: pulumi.String("example"), +// VpcSubnetIds: toPulumiArray(splat0), +// TargetRole: pulumi.String("READ_ONLY"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } // ``` // // ## Import diff --git a/sdk/go/aws/s3/getCanonicalUserId.go b/sdk/go/aws/s3/getCanonicalUserId.go index ae144d98615..990d842ae53 100644 --- a/sdk/go/aws/s3/getCanonicalUserId.go +++ b/sdk/go/aws/s3/getCanonicalUserId.go @@ -4,8 +4,12 @@ package s3 import ( + "context" + "reflect" + "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" ) // The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) @@ -54,3 +58,49 @@ type GetCanonicalUserIdResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` } + +func GetCanonicalUserIdOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetCanonicalUserIdResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetCanonicalUserIdResult, error) { + r, err := GetCanonicalUserId(ctx, opts...) + var s GetCanonicalUserIdResult + if r != nil { + s = *r + } + return s, err + }).(GetCanonicalUserIdResultOutput) +} + +// A collection of values returned by getCanonicalUserId. +type GetCanonicalUserIdResultOutput struct{ *pulumi.OutputState } + +func (GetCanonicalUserIdResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetCanonicalUserIdResult)(nil)).Elem() +} + +func (o GetCanonicalUserIdResultOutput) ToGetCanonicalUserIdResultOutput() GetCanonicalUserIdResultOutput { + return o +} + +func (o GetCanonicalUserIdResultOutput) ToGetCanonicalUserIdResultOutputWithContext(ctx context.Context) GetCanonicalUserIdResultOutput { + return o +} + +func (o GetCanonicalUserIdResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetCanonicalUserIdResult] { + return pulumix.Output[GetCanonicalUserIdResult]{ + OutputState: o.OutputState, + } +} + +// Human-friendly name linked to the canonical user ID. The bucket owner's display name. **NOTE:** [This value](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTServiceGET.html) is only included in the response in the US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), EU (Ireland), and South America (São Paulo) regions. +func (o GetCanonicalUserIdResultOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v GetCanonicalUserIdResult) string { return v.DisplayName }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetCanonicalUserIdResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetCanonicalUserIdResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetCanonicalUserIdResultOutput{}) +} diff --git a/sdk/go/aws/s3/pulumiTypes.go b/sdk/go/aws/s3/pulumiTypes.go index 41fed76ae9b..0ecddd3ba8d 100644 --- a/sdk/go/aws/s3/pulumiTypes.go +++ b/sdk/go/aws/s3/pulumiTypes.go @@ -1120,7 +1120,7 @@ type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDest BucketArn string `pulumi:"bucketArn"` // Output format of exported analytics data. Allowed values: `CSV`. Default value: `CSV`. Format *string `pulumi:"format"` - // Object prefix for filtering. + // Prefix to append to exported analytics data. Prefix *string `pulumi:"prefix"` } @@ -1142,7 +1142,7 @@ type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDest BucketArn pulumi.StringInput `pulumi:"bucketArn"` // Output format of exported analytics data. Allowed values: `CSV`. Default value: `CSV`. Format pulumi.StringPtrInput `pulumi:"format"` - // Object prefix for filtering. + // Prefix to append to exported analytics data. Prefix pulumi.StringPtrInput `pulumi:"prefix"` } @@ -1262,7 +1262,7 @@ func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketD }).(pulumi.StringPtrOutput) } -// Object prefix for filtering. +// Prefix to append to exported analytics data. func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *string { return v.Prefix @@ -1329,7 +1329,7 @@ func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketD }).(pulumi.StringPtrOutput) } -// Object prefix for filtering. +// Prefix to append to exported analytics data. func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *string { if v == nil { diff --git a/sdk/go/aws/scheduler/schedule.go b/sdk/go/aws/scheduler/schedule.go index ef7b32e883d..7c5a345d522 100644 --- a/sdk/go/aws/scheduler/schedule.go +++ b/sdk/go/aws/scheduler/schedule.go @@ -117,7 +117,7 @@ import ( type Schedule struct { pulumi.CustomResourceState - // ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + // ARN of the SQS queue specified as the destination for the dead-letter queue. Arn pulumi.StringOutput `pulumi:"arn"` // Brief description of the schedule. Description pulumi.StringPtrOutput `pulumi:"description"` @@ -186,7 +186,7 @@ func GetSchedule(ctx *pulumi.Context, // Input properties used for looking up and filtering Schedule resources. type scheduleState struct { - // ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + // ARN of the SQS queue specified as the destination for the dead-letter queue. Arn *string `pulumi:"arn"` // Brief description of the schedule. Description *string `pulumi:"description"` @@ -217,7 +217,7 @@ type scheduleState struct { } type ScheduleState struct { - // ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + // ARN of the SQS queue specified as the destination for the dead-letter queue. Arn pulumi.StringPtrInput // Brief description of the schedule. Description pulumi.StringPtrInput @@ -421,7 +421,7 @@ func (o ScheduleOutput) ToOutput(ctx context.Context) pulumix.Output[*Schedule] } } -// ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). +// ARN of the SQS queue specified as the destination for the dead-letter queue. func (o ScheduleOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *Schedule) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/ses/getActiveReceiptRuleSet.go b/sdk/go/aws/ses/getActiveReceiptRuleSet.go index 336543f0242..4954c1aaadf 100644 --- a/sdk/go/aws/ses/getActiveReceiptRuleSet.go +++ b/sdk/go/aws/ses/getActiveReceiptRuleSet.go @@ -4,8 +4,12 @@ package ses import ( + "context" + "reflect" + "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" ) // Retrieve the active SES receipt rule set @@ -52,3 +56,54 @@ type LookupActiveReceiptRuleSetResult struct { // Name of the rule set RuleSetName string `pulumi:"ruleSetName"` } + +func LookupActiveReceiptRuleSetOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) LookupActiveReceiptRuleSetResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (LookupActiveReceiptRuleSetResult, error) { + r, err := LookupActiveReceiptRuleSet(ctx, opts...) + var s LookupActiveReceiptRuleSetResult + if r != nil { + s = *r + } + return s, err + }).(LookupActiveReceiptRuleSetResultOutput) +} + +// A collection of values returned by getActiveReceiptRuleSet. +type LookupActiveReceiptRuleSetResultOutput struct{ *pulumi.OutputState } + +func (LookupActiveReceiptRuleSetResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupActiveReceiptRuleSetResult)(nil)).Elem() +} + +func (o LookupActiveReceiptRuleSetResultOutput) ToLookupActiveReceiptRuleSetResultOutput() LookupActiveReceiptRuleSetResultOutput { + return o +} + +func (o LookupActiveReceiptRuleSetResultOutput) ToLookupActiveReceiptRuleSetResultOutputWithContext(ctx context.Context) LookupActiveReceiptRuleSetResultOutput { + return o +} + +func (o LookupActiveReceiptRuleSetResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupActiveReceiptRuleSetResult] { + return pulumix.Output[LookupActiveReceiptRuleSetResult]{ + OutputState: o.OutputState, + } +} + +// SES receipt rule set ARN. +func (o LookupActiveReceiptRuleSetResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupActiveReceiptRuleSetResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupActiveReceiptRuleSetResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupActiveReceiptRuleSetResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the rule set +func (o LookupActiveReceiptRuleSetResultOutput) RuleSetName() pulumi.StringOutput { + return o.ApplyT(func(v LookupActiveReceiptRuleSetResult) string { return v.RuleSetName }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupActiveReceiptRuleSetResultOutput{}) +} diff --git a/sdk/go/aws/signer/pulumiTypes.go b/sdk/go/aws/signer/pulumiTypes.go index 60b43d4a845..a2b5bccd7e6 100644 --- a/sdk/go/aws/signer/pulumiTypes.go +++ b/sdk/go/aws/signer/pulumiTypes.go @@ -486,7 +486,7 @@ func (o SigningJobRevocationRecordArrayOutput) Index(i pulumi.IntInput) SigningJ } type SigningJobSignedObject struct { - // A configuration block describing the S3 Source object: See S3 Source below for details. + // A configuration block describing the S3 Destination object: See S3 Destination below for details. S3s []SigningJobSignedObjectS3 `pulumi:"s3s"` } @@ -502,7 +502,7 @@ type SigningJobSignedObjectInput interface { } type SigningJobSignedObjectArgs struct { - // A configuration block describing the S3 Source object: See S3 Source below for details. + // A configuration block describing the S3 Destination object: See S3 Destination below for details. S3s SigningJobSignedObjectS3ArrayInput `pulumi:"s3s"` } @@ -575,7 +575,7 @@ func (o SigningJobSignedObjectOutput) ToOutput(ctx context.Context) pulumix.Outp } } -// A configuration block describing the S3 Source object: See S3 Source below for details. +// A configuration block describing the S3 Destination object: See S3 Destination below for details. func (o SigningJobSignedObjectOutput) S3s() SigningJobSignedObjectS3ArrayOutput { return o.ApplyT(func(v SigningJobSignedObject) []SigningJobSignedObjectS3 { return v.S3s }).(SigningJobSignedObjectS3ArrayOutput) } diff --git a/sdk/go/aws/ssoadmin/getInstances.go b/sdk/go/aws/ssoadmin/getInstances.go index 98c292a3491..ab1651eb5f0 100644 --- a/sdk/go/aws/ssoadmin/getInstances.go +++ b/sdk/go/aws/ssoadmin/getInstances.go @@ -4,8 +4,12 @@ package ssoadmin import ( + "context" + "reflect" + "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" ) // Use this data source to get ARNs and Identity Store IDs of Single Sign-On (SSO) Instances. @@ -28,3 +32,54 @@ type GetInstancesResult struct { // Set of identifiers of the identity stores connected to the SSO Instances. IdentityStoreIds []string `pulumi:"identityStoreIds"` } + +func GetInstancesOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetInstancesResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetInstancesResult, error) { + r, err := GetInstances(ctx, opts...) + var s GetInstancesResult + if r != nil { + s = *r + } + return s, err + }).(GetInstancesResultOutput) +} + +// A collection of values returned by getInstances. +type GetInstancesResultOutput struct{ *pulumi.OutputState } + +func (GetInstancesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetInstancesResult)(nil)).Elem() +} + +func (o GetInstancesResultOutput) ToGetInstancesResultOutput() GetInstancesResultOutput { + return o +} + +func (o GetInstancesResultOutput) ToGetInstancesResultOutputWithContext(ctx context.Context) GetInstancesResultOutput { + return o +} + +func (o GetInstancesResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetInstancesResult] { + return pulumix.Output[GetInstancesResult]{ + OutputState: o.OutputState, + } +} + +// Set of Amazon Resource Names (ARNs) of the SSO Instances. +func (o GetInstancesResultOutput) Arns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetInstancesResult) []string { return v.Arns }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetInstancesResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetInstancesResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Set of identifiers of the identity stores connected to the SSO Instances. +func (o GetInstancesResultOutput) IdentityStoreIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetInstancesResult) []string { return v.IdentityStoreIds }).(pulumi.StringArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetInstancesResultOutput{}) +} diff --git a/sdk/go/aws/transfer/pulumiTypes.go b/sdk/go/aws/transfer/pulumiTypes.go index 2d5845f6d38..a8c564a3d4e 100644 --- a/sdk/go/aws/transfer/pulumiTypes.go +++ b/sdk/go/aws/transfer/pulumiTypes.go @@ -2203,7 +2203,7 @@ type WorkflowOnExceptionStep struct { DeleteStepDetails *WorkflowOnExceptionStepDeleteStepDetails `pulumi:"deleteStepDetails"` // Details for a step that creates one or more tags. TagStepDetails *WorkflowOnExceptionStepTagStepDetails `pulumi:"tagStepDetails"` - // One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + // The type of encryption used. Currently, this value must be `"PGP"`. Type string `pulumi:"type"` } @@ -2229,7 +2229,7 @@ type WorkflowOnExceptionStepArgs struct { DeleteStepDetails WorkflowOnExceptionStepDeleteStepDetailsPtrInput `pulumi:"deleteStepDetails"` // Details for a step that creates one or more tags. TagStepDetails WorkflowOnExceptionStepTagStepDetailsPtrInput `pulumi:"tagStepDetails"` - // One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + // The type of encryption used. Currently, this value must be `"PGP"`. Type pulumi.StringInput `pulumi:"type"` } @@ -2329,7 +2329,7 @@ func (o WorkflowOnExceptionStepOutput) TagStepDetails() WorkflowOnExceptionStepT return o.ApplyT(func(v WorkflowOnExceptionStep) *WorkflowOnExceptionStepTagStepDetails { return v.TagStepDetails }).(WorkflowOnExceptionStepTagStepDetailsPtrOutput) } -// One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. +// The type of encryption used. Currently, this value must be `"PGP"`. func (o WorkflowOnExceptionStepOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v WorkflowOnExceptionStep) string { return v.Type }).(pulumi.StringOutput) } @@ -2951,7 +2951,7 @@ func (o WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationEfsFileLoca type WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation struct { // Specifies the S3 bucket for the customer input file. Bucket *string `pulumi:"bucket"` - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key *string `pulumi:"key"` } @@ -2969,7 +2969,7 @@ type WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation type WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs struct { // Specifies the S3 bucket for the customer input file. Bucket pulumi.StringPtrInput `pulumi:"bucket"` - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key pulumi.StringPtrInput `pulumi:"key"` } @@ -3075,7 +3075,7 @@ func (o WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocat }).(pulumi.StringPtrOutput) } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation) *string { return v.Key @@ -3122,7 +3122,7 @@ func (o WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocat }).(pulumi.StringPtrOutput) } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationPtrOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v *WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation) *string { if v == nil { @@ -3960,7 +3960,7 @@ func (o WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationEfsFileL type WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation struct { // Specifies the S3 bucket for the customer input file. Bucket *string `pulumi:"bucket"` - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key *string `pulumi:"key"` } @@ -3978,7 +3978,7 @@ type WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocat type WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs struct { // Specifies the S3 bucket for the customer input file. Bucket pulumi.StringPtrInput `pulumi:"bucket"` - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key pulumi.StringPtrInput `pulumi:"key"` } @@ -4084,7 +4084,7 @@ func (o WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLo }).(pulumi.StringPtrOutput) } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation) *string { return v.Key @@ -4131,7 +4131,7 @@ func (o WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLo }).(pulumi.StringPtrOutput) } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationPtrOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v *WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation) *string { if v == nil { @@ -4523,7 +4523,7 @@ func (o WorkflowOnExceptionStepTagStepDetailsPtrOutput) Tags() WorkflowOnExcepti } type WorkflowOnExceptionStepTagStepDetailsTag struct { - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key string `pulumi:"key"` // The value that corresponds to the key. Value string `pulumi:"value"` @@ -4541,7 +4541,7 @@ type WorkflowOnExceptionStepTagStepDetailsTagInput interface { } type WorkflowOnExceptionStepTagStepDetailsTagArgs struct { - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key pulumi.StringInput `pulumi:"key"` // The value that corresponds to the key. Value pulumi.StringInput `pulumi:"value"` @@ -4616,7 +4616,7 @@ func (o WorkflowOnExceptionStepTagStepDetailsTagOutput) ToOutput(ctx context.Con } } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowOnExceptionStepTagStepDetailsTagOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v WorkflowOnExceptionStepTagStepDetailsTag) string { return v.Key }).(pulumi.StringOutput) } @@ -4663,7 +4663,7 @@ type WorkflowStep struct { DeleteStepDetails *WorkflowStepDeleteStepDetails `pulumi:"deleteStepDetails"` // Details for a step that creates one or more tags. TagStepDetails *WorkflowStepTagStepDetails `pulumi:"tagStepDetails"` - // One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + // The type of encryption used. Currently, this value must be `"PGP"`. Type string `pulumi:"type"` } @@ -4689,7 +4689,7 @@ type WorkflowStepArgs struct { DeleteStepDetails WorkflowStepDeleteStepDetailsPtrInput `pulumi:"deleteStepDetails"` // Details for a step that creates one or more tags. TagStepDetails WorkflowStepTagStepDetailsPtrInput `pulumi:"tagStepDetails"` - // One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + // The type of encryption used. Currently, this value must be `"PGP"`. Type pulumi.StringInput `pulumi:"type"` } @@ -4787,7 +4787,7 @@ func (o WorkflowStepOutput) TagStepDetails() WorkflowStepTagStepDetailsPtrOutput return o.ApplyT(func(v WorkflowStep) *WorkflowStepTagStepDetails { return v.TagStepDetails }).(WorkflowStepTagStepDetailsPtrOutput) } -// One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. +// The type of encryption used. Currently, this value must be `"PGP"`. func (o WorkflowStepOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v WorkflowStep) string { return v.Type }).(pulumi.StringOutput) } @@ -5407,7 +5407,7 @@ func (o WorkflowStepCopyStepDetailsDestinationFileLocationEfsFileLocationPtrOutp type WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation struct { // Specifies the S3 bucket for the customer input file. Bucket *string `pulumi:"bucket"` - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key *string `pulumi:"key"` } @@ -5425,7 +5425,7 @@ type WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationInput inter type WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs struct { // Specifies the S3 bucket for the customer input file. Bucket pulumi.StringPtrInput `pulumi:"bucket"` - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key pulumi.StringPtrInput `pulumi:"key"` } @@ -5529,7 +5529,7 @@ func (o WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationOutput) return o.ApplyT(func(v WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation) *string { return v.Bucket }).(pulumi.StringPtrOutput) } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation) *string { return v.Key }).(pulumi.StringPtrOutput) } @@ -5574,7 +5574,7 @@ func (o WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationPtrOutpu }).(pulumi.StringPtrOutput) } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationPtrOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v *WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation) *string { if v == nil { @@ -6410,7 +6410,7 @@ func (o WorkflowStepDecryptStepDetailsDestinationFileLocationEfsFileLocationPtrO type WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation struct { // Specifies the S3 bucket for the customer input file. Bucket *string `pulumi:"bucket"` - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key *string `pulumi:"key"` } @@ -6428,7 +6428,7 @@ type WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationInput in type WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs struct { // Specifies the S3 bucket for the customer input file. Bucket pulumi.StringPtrInput `pulumi:"bucket"` - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key pulumi.StringPtrInput `pulumi:"key"` } @@ -6532,7 +6532,7 @@ func (o WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationOutpu return o.ApplyT(func(v WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation) *string { return v.Bucket }).(pulumi.StringPtrOutput) } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation) *string { return v.Key }).(pulumi.StringPtrOutput) } @@ -6577,7 +6577,7 @@ func (o WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationPtrOu }).(pulumi.StringPtrOutput) } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationPtrOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v *WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation) *string { if v == nil { @@ -6967,7 +6967,7 @@ func (o WorkflowStepTagStepDetailsPtrOutput) Tags() WorkflowStepTagStepDetailsTa } type WorkflowStepTagStepDetailsTag struct { - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key string `pulumi:"key"` // The value that corresponds to the key. Value string `pulumi:"value"` @@ -6985,7 +6985,7 @@ type WorkflowStepTagStepDetailsTagInput interface { } type WorkflowStepTagStepDetailsTagArgs struct { - // The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + // The name assigned to the tag that you create. Key pulumi.StringInput `pulumi:"key"` // The value that corresponds to the key. Value pulumi.StringInput `pulumi:"value"` @@ -7060,7 +7060,7 @@ func (o WorkflowStepTagStepDetailsTagOutput) ToOutput(ctx context.Context) pulum } } -// The name assigned to the file when it was created in S3. You use the object key to retrieve the object. +// The name assigned to the tag that you create. func (o WorkflowStepTagStepDetailsTagOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v WorkflowStepTagStepDetailsTag) string { return v.Key }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/waf/pulumiTypes.go b/sdk/go/aws/waf/pulumiTypes.go index 92f8e71fb86..b7caf9b05a6 100644 --- a/sdk/go/aws/waf/pulumiTypes.go +++ b/sdk/go/aws/waf/pulumiTypes.go @@ -931,7 +931,7 @@ type RuleGroupActivatedRule struct { Priority int `pulumi:"priority"` // The ID of a rule RuleId string `pulumi:"ruleId"` - // e.g., `BLOCK`, `ALLOW`, or `COUNT` + // The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. Type *string `pulumi:"type"` } @@ -953,7 +953,7 @@ type RuleGroupActivatedRuleArgs struct { Priority pulumi.IntInput `pulumi:"priority"` // The ID of a rule RuleId pulumi.StringInput `pulumi:"ruleId"` - // e.g., `BLOCK`, `ALLOW`, or `COUNT` + // The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -1041,7 +1041,7 @@ func (o RuleGroupActivatedRuleOutput) RuleId() pulumi.StringOutput { return o.ApplyT(func(v RuleGroupActivatedRule) string { return v.RuleId }).(pulumi.StringOutput) } -// e.g., `BLOCK`, `ALLOW`, or `COUNT` +// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. func (o RuleGroupActivatedRuleOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupActivatedRule) *string { return v.Type }).(pulumi.StringPtrOutput) } @@ -1073,7 +1073,7 @@ func (o RuleGroupActivatedRuleArrayOutput) Index(i pulumi.IntInput) RuleGroupAct } type RuleGroupActivatedRuleAction struct { - // e.g., `BLOCK`, `ALLOW`, or `COUNT` + // The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. Type string `pulumi:"type"` } @@ -1089,7 +1089,7 @@ type RuleGroupActivatedRuleActionInput interface { } type RuleGroupActivatedRuleActionArgs struct { - // e.g., `BLOCK`, `ALLOW`, or `COUNT` + // The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. Type pulumi.StringInput `pulumi:"type"` } @@ -1131,7 +1131,7 @@ func (o RuleGroupActivatedRuleActionOutput) ToOutput(ctx context.Context) pulumi } } -// e.g., `BLOCK`, `ALLOW`, or `COUNT` +// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. func (o RuleGroupActivatedRuleActionOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v RuleGroupActivatedRuleAction) string { return v.Type }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/wafregional/pulumiTypes.go b/sdk/go/aws/wafregional/pulumiTypes.go index d039586ed23..508915a9e05 100644 --- a/sdk/go/aws/wafregional/pulumiTypes.go +++ b/sdk/go/aws/wafregional/pulumiTypes.go @@ -895,7 +895,7 @@ type RuleGroupActivatedRule struct { Priority int `pulumi:"priority"` // The ID of a rule RuleId string `pulumi:"ruleId"` - // e.g., `BLOCK`, `ALLOW`, or `COUNT` + // The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. Type *string `pulumi:"type"` } @@ -917,7 +917,7 @@ type RuleGroupActivatedRuleArgs struct { Priority pulumi.IntInput `pulumi:"priority"` // The ID of a rule RuleId pulumi.StringInput `pulumi:"ruleId"` - // e.g., `BLOCK`, `ALLOW`, or `COUNT` + // The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -1005,7 +1005,7 @@ func (o RuleGroupActivatedRuleOutput) RuleId() pulumi.StringOutput { return o.ApplyT(func(v RuleGroupActivatedRule) string { return v.RuleId }).(pulumi.StringOutput) } -// e.g., `BLOCK`, `ALLOW`, or `COUNT` +// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. func (o RuleGroupActivatedRuleOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupActivatedRule) *string { return v.Type }).(pulumi.StringPtrOutput) } @@ -1037,7 +1037,7 @@ func (o RuleGroupActivatedRuleArrayOutput) Index(i pulumi.IntInput) RuleGroupAct } type RuleGroupActivatedRuleAction struct { - // e.g., `BLOCK`, `ALLOW`, or `COUNT` + // The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. Type string `pulumi:"type"` } @@ -1053,7 +1053,7 @@ type RuleGroupActivatedRuleActionInput interface { } type RuleGroupActivatedRuleActionArgs struct { - // e.g., `BLOCK`, `ALLOW`, or `COUNT` + // The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. Type pulumi.StringInput `pulumi:"type"` } @@ -1095,7 +1095,7 @@ func (o RuleGroupActivatedRuleActionOutput) ToOutput(ctx context.Context) pulumi } } -// e.g., `BLOCK`, `ALLOW`, or `COUNT` +// The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. func (o RuleGroupActivatedRuleActionOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v RuleGroupActivatedRuleAction) string { return v.Type }).(pulumi.StringOutput) } @@ -2674,7 +2674,7 @@ func (o WebAclRuleActionPtrOutput) Type() pulumi.StringPtrOutput { } type WebAclRuleOverrideAction struct { - // Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + // Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `overrideAction` are `COUNT` and `NONE`. Type string `pulumi:"type"` } @@ -2690,7 +2690,7 @@ type WebAclRuleOverrideActionInput interface { } type WebAclRuleOverrideActionArgs struct { - // Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + // Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `overrideAction` are `COUNT` and `NONE`. Type pulumi.StringInput `pulumi:"type"` } @@ -2789,7 +2789,7 @@ func (o WebAclRuleOverrideActionOutput) ToOutput(ctx context.Context) pulumix.Ou } } -// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` +// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `overrideAction` are `COUNT` and `NONE`. func (o WebAclRuleOverrideActionOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v WebAclRuleOverrideAction) string { return v.Type }).(pulumi.StringOutput) } @@ -2824,7 +2824,7 @@ func (o WebAclRuleOverrideActionPtrOutput) Elem() WebAclRuleOverrideActionOutput }).(WebAclRuleOverrideActionOutput) } -// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` +// Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `overrideAction` are `COUNT` and `NONE`. func (o WebAclRuleOverrideActionPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *WebAclRuleOverrideAction) *string { if v == nil { diff --git a/sdk/go/aws/wafv2/pulumiTypes.go b/sdk/go/aws/wafv2/pulumiTypes.go index 343bb1cb1f5..e2613822a51 100644 --- a/sdk/go/aws/wafv2/pulumiTypes.go +++ b/sdk/go/aws/wafv2/pulumiTypes.go @@ -4435,7 +4435,7 @@ func (o RuleGroupRuleStatementByteMatchStatementFieldToMatchAllQueryArgumentsPtr } type RuleGroupRuleStatementByteMatchStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -4451,7 +4451,7 @@ type RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyInput interface { } type RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -4550,7 +4550,7 @@ func (o RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyOutput) ToOutput } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementByteMatchStatementFieldToMatchBody) *string { return v.OversizeHandling }).(pulumi.StringPtrOutput) } @@ -4585,7 +4585,7 @@ func (o RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyPtrOutput) Elem( }).(RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementByteMatchStatementFieldToMatchBody) *string { if v == nil { @@ -8581,16 +8581,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyCookie struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations []RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformation `pulumi:"textTransformations"` } @@ -8611,16 +8601,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArrayInput `pulumi:"textTransformations"` } @@ -8727,16 +8707,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyCookieOutput) Name() pu // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyCookieOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArrayOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementCustomKeyCookie) []RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformation { return v.TextTransformations @@ -8786,16 +8756,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyCookiePtrOutput) Name() // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyCookiePtrOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArrayOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementCustomKeyCookie) []RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformation { if v == nil { @@ -9087,16 +9047,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyHeader struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations []RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation `pulumi:"textTransformations"` } @@ -9117,16 +9067,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderArgs struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArrayInput `pulumi:"textTransformations"` } @@ -9233,16 +9173,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderOutput) Name() pu // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArrayOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementCustomKeyHeader) []RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation { return v.TextTransformations @@ -9292,16 +9222,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderPtrOutput) Name() // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderPtrOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArrayOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementCustomKeyHeader) []RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation { if v == nil { @@ -9896,16 +9816,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations []RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation `pulumi:"textTransformations"` } @@ -9926,16 +9836,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArrayInput `pulumi:"textTransformations"` } @@ -10042,16 +9942,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentOutput) Na // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArrayOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument) []RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation { return v.TextTransformations @@ -10101,16 +9991,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentPtrOutput) // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentPtrOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArrayOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument) []RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation { if v == nil { @@ -10258,16 +10138,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations []RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation `pulumi:"textTransformations"` } @@ -10286,16 +10156,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArrayInput `pulumi:"textTransformations"` } @@ -10397,16 +10257,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringOutput) ToOu // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArrayOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString) []RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation { return v.TextTransformations @@ -10446,16 +10296,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringPtrOutput) E // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringPtrOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArrayOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString) []RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation { if v == nil { @@ -10603,16 +10443,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations []RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation `pulumi:"textTransformations"` } @@ -10631,16 +10461,6 @@ type RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs struct { // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. - // At least one required. - // See Text Transformation below for details. TextTransformations RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArrayInput `pulumi:"textTransformations"` } @@ -10742,16 +10562,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathOutput) ToOutput // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArrayOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath) []RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation { return v.TextTransformations @@ -10791,16 +10601,6 @@ func (o RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathPtrOutput) Elem( // Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. // At least one required. // See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. -// At least one required. -// See Text Transformation below for details. func (o RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathPtrOutput) TextTransformations() RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArrayOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath) []RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation { if v == nil { @@ -12410,7 +12210,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchState } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -12426,7 +12226,7 @@ type RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatemen } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -12525,7 +12325,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchState } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody) *string { return v.OversizeHandling @@ -12562,7 +12362,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchState }).(RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody) *string { if v == nil { @@ -16842,7 +16642,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStat } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -16858,7 +16658,7 @@ type RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStateme } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -16957,7 +16757,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStat } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody) *string { return v.OversizeHandling @@ -16994,7 +16794,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStat }).(RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody) *string { if v == nil { @@ -20007,7 +19807,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSe } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -20023,7 +19823,7 @@ type RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetRe } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -20122,7 +19922,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSe } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody) *string { return v.OversizeHandling @@ -20159,7 +19959,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSe }).(RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody) *string { if v == nil { @@ -23193,7 +22993,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraint } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -23209,7 +23009,7 @@ type RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintSta } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -23308,7 +23108,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraint } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody) *string { return v.OversizeHandling @@ -23345,7 +23145,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraint }).(RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody) *string { if v == nil { @@ -26337,7 +26137,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchState } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -26353,7 +26153,7 @@ type RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatemen } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -26452,7 +26252,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchState } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody) *string { return v.OversizeHandling @@ -26489,7 +26289,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchState }).(RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody) *string { if v == nil { @@ -29481,7 +29281,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatem } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -29497,7 +29297,7 @@ type RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatement } type RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -29596,7 +29396,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatem } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody) *string { return v.OversizeHandling @@ -29633,7 +29433,7 @@ func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatem }).(RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody) *string { if v == nil { @@ -32644,7 +32444,7 @@ func (o RuleGroupRuleStatementRegexMatchStatementFieldToMatchAllQueryArgumentsPt } type RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -32660,7 +32460,7 @@ type RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyInput interface { } type RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -32759,7 +32559,7 @@ func (o RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyOutput) ToOutpu } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody) *string { return v.OversizeHandling }).(pulumi.StringPtrOutput) } @@ -32794,7 +32594,7 @@ func (o RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyPtrOutput) Elem }).(RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody) *string { if v == nil { @@ -35787,7 +35587,7 @@ func (o RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQu } type RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -35803,7 +35603,7 @@ type RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyInpu } type RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -35902,7 +35702,7 @@ func (o RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyO } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody) *string { return v.OversizeHandling @@ -35939,7 +35739,7 @@ func (o RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyP }).(RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody) *string { if v == nil { @@ -38969,7 +38769,7 @@ func (o RuleGroupRuleStatementSizeConstraintStatementFieldToMatchAllQueryArgumen } type RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -38985,7 +38785,7 @@ type RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyInput interfac } type RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -39084,7 +38884,7 @@ func (o RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyOutput) ToO } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody) *string { return v.OversizeHandling @@ -39121,7 +38921,7 @@ func (o RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyPtrOutput) }).(RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody) *string { if v == nil { @@ -42101,7 +41901,7 @@ func (o RuleGroupRuleStatementSqliMatchStatementFieldToMatchAllQueryArgumentsPtr } type RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -42117,7 +41917,7 @@ type RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyInput interface { } type RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -42216,7 +42016,7 @@ func (o RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyOutput) ToOutput } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody) *string { return v.OversizeHandling }).(pulumi.StringPtrOutput) } @@ -42251,7 +42051,7 @@ func (o RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyPtrOutput) Elem( }).(RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody) *string { if v == nil { @@ -45225,7 +45025,7 @@ func (o RuleGroupRuleStatementXssMatchStatementFieldToMatchAllQueryArgumentsPtrO } type RuleGroupRuleStatementXssMatchStatementFieldToMatchBody struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling *string `pulumi:"oversizeHandling"` } @@ -45241,7 +45041,7 @@ type RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyInput interface { } type RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs struct { - // Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + // What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` OversizeHandling pulumi.StringPtrInput `pulumi:"oversizeHandling"` } @@ -45340,7 +45140,7 @@ func (o RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyOutput) ToOutput( } } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v RuleGroupRuleStatementXssMatchStatementFieldToMatchBody) *string { return v.OversizeHandling }).(pulumi.StringPtrOutput) } @@ -45375,7 +45175,7 @@ func (o RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyPtrOutput) Elem() }).(RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyOutput) } -// Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. +// What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` func (o RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyPtrOutput) OversizeHandling() pulumi.StringPtrOutput { return o.ApplyT(func(v *RuleGroupRuleStatementXssMatchStatementFieldToMatchBody) *string { if v == nil { @@ -60519,7 +60319,7 @@ func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsMan } type WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField struct { - // The name of the password field. + // The identifier for the value to match against in the JSON. Identifier string `pulumi:"identifier"` } @@ -60535,7 +60335,7 @@ type WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManage } type WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs struct { - // The name of the password field. + // The identifier for the value to match against in the JSON. Identifier pulumi.StringInput `pulumi:"identifier"` } @@ -60634,7 +60434,7 @@ func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsMan } } -// The name of the password field. +// The identifier for the value to match against in the JSON. func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldOutput) Identifier() pulumi.StringOutput { return o.ApplyT(func(v WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField) string { return v.Identifier @@ -60671,7 +60471,7 @@ func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsMan }).(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldOutput) } -// The name of the password field. +// The identifier for the value to match against in the JSON. func (o WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldPtrOutput) Identifier() pulumi.StringPtrOutput { return o.ApplyT(func(v *WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField) *string { if v == nil { @@ -64394,9 +64194,9 @@ func (o WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArrayOutpu } type WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse struct { - // Specifies that AWS WAF should allow requests by default. See `allow` below for details. + // Instructs AWS WAF to allow the web request. See `allow` below for details. Allow *WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow `pulumi:"allow"` - // Specifies that AWS WAF should block requests by default. See `block` below for details. + // Instructs AWS WAF to block the web request. See `block` below for details. Block *WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock `pulumi:"block"` // Instructs AWS WAF to run a Captcha check against the web request. See `captcha` below for details. Captcha *WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptcha `pulumi:"captcha"` @@ -64418,9 +64218,9 @@ type WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseIn } type WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs struct { - // Specifies that AWS WAF should allow requests by default. See `allow` below for details. + // Instructs AWS WAF to allow the web request. See `allow` below for details. Allow WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowPtrInput `pulumi:"allow"` - // Specifies that AWS WAF should block requests by default. See `block` below for details. + // Instructs AWS WAF to block the web request. See `block` below for details. Block WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockPtrInput `pulumi:"block"` // Instructs AWS WAF to run a Captcha check against the web request. See `captcha` below for details. Captcha WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaPtrInput `pulumi:"captcha"` @@ -64468,14 +64268,14 @@ func (o WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUs } } -// Specifies that AWS WAF should allow requests by default. See `allow` below for details. +// Instructs AWS WAF to allow the web request. See `allow` below for details. func (o WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseOutput) Allow() WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowPtrOutput { return o.ApplyT(func(v WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse) *WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow { return v.Allow }).(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowPtrOutput) } -// Specifies that AWS WAF should block requests by default. See `block` below for details. +// Instructs AWS WAF to block the web request. See `block` below for details. func (o WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseOutput) Block() WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockPtrOutput { return o.ApplyT(func(v WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse) *WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock { return v.Block diff --git a/sdk/go/aws/wafv2/pulumiTypes1.go b/sdk/go/aws/wafv2/pulumiTypes1.go index 448402b5d48..398437525ca 100644 --- a/sdk/go/aws/wafv2/pulumiTypes1.go +++ b/sdk/go/aws/wafv2/pulumiTypes1.go @@ -34190,9 +34190,9 @@ func (o WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideArrayOut } type WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse struct { - // Specifies that AWS WAF should allow requests by default. See `allow` below for details. + // Instructs AWS WAF to allow the web request. See `allow` below for details. Allow *WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow `pulumi:"allow"` - // Specifies that AWS WAF should block requests by default. See `block` below for details. + // Instructs AWS WAF to block the web request. See `block` below for details. Block *WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock `pulumi:"block"` // Instructs AWS WAF to run a Captcha check against the web request. See `captcha` below for details. Captcha *WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptcha `pulumi:"captcha"` @@ -34214,9 +34214,9 @@ type WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse } type WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs struct { - // Specifies that AWS WAF should allow requests by default. See `allow` below for details. + // Instructs AWS WAF to allow the web request. See `allow` below for details. Allow WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowPtrInput `pulumi:"allow"` - // Specifies that AWS WAF should block requests by default. See `block` below for details. + // Instructs AWS WAF to block the web request. See `block` below for details. Block WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockPtrInput `pulumi:"block"` // Instructs AWS WAF to run a Captcha check against the web request. See `captcha` below for details. Captcha WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaPtrInput `pulumi:"captcha"` @@ -34264,14 +34264,14 @@ func (o WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionTo } } -// Specifies that AWS WAF should allow requests by default. See `allow` below for details. +// Instructs AWS WAF to allow the web request. See `allow` below for details. func (o WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseOutput) Allow() WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowPtrOutput { return o.ApplyT(func(v WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse) *WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow { return v.Allow }).(WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowPtrOutput) } -// Specifies that AWS WAF should block requests by default. See `block` below for details. +// Instructs AWS WAF to block the web request. See `block` below for details. func (o WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseOutput) Block() WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockPtrOutput { return o.ApplyT(func(v WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse) *WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock { return v.Block diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionHostHeaderArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionHostHeaderArgs.java index e0461f72857..b3fa3fc0818 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionHostHeaderArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionHostHeaderArgs.java @@ -17,8 +17,6 @@ public final class ListenerRuleConditionHostHeaderArgs extends com.pulumi.resour /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ @Import(name="values", required=true) private Output> values; @@ -26,8 +24,6 @@ public final class ListenerRuleConditionHostHeaderArgs extends com.pulumi.resour /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public Output> values() { return this.values; @@ -60,8 +56,6 @@ public Builder(ListenerRuleConditionHostHeaderArgs defaults) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -73,8 +67,6 @@ public Builder values(Output> values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -85,8 +77,6 @@ public Builder values(List values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionHttpRequestMethodArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionHttpRequestMethodArgs.java index 2e2a5955a9c..19b6c81480b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionHttpRequestMethodArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionHttpRequestMethodArgs.java @@ -17,8 +17,6 @@ public final class ListenerRuleConditionHttpRequestMethodArgs extends com.pulumi /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ @Import(name="values", required=true) private Output> values; @@ -26,8 +24,6 @@ public final class ListenerRuleConditionHttpRequestMethodArgs extends com.pulumi /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public Output> values() { return this.values; @@ -60,8 +56,6 @@ public Builder(ListenerRuleConditionHttpRequestMethodArgs defaults) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -73,8 +67,6 @@ public Builder values(Output> values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -85,8 +77,6 @@ public Builder values(List values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionPathPatternArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionPathPatternArgs.java index 8e8a38c50ea..448a610ffac 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionPathPatternArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionPathPatternArgs.java @@ -17,8 +17,6 @@ public final class ListenerRuleConditionPathPatternArgs extends com.pulumi.resou /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ @Import(name="values", required=true) private Output> values; @@ -26,8 +24,6 @@ public final class ListenerRuleConditionPathPatternArgs extends com.pulumi.resou /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public Output> values() { return this.values; @@ -60,8 +56,6 @@ public Builder(ListenerRuleConditionPathPatternArgs defaults) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -73,8 +67,6 @@ public Builder values(Output> values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -85,8 +77,6 @@ public Builder values(List values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionSourceIpArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionSourceIpArgs.java index 467ab78eb1c..8ab8b99c745 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionSourceIpArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerRuleConditionSourceIpArgs.java @@ -17,8 +17,6 @@ public final class ListenerRuleConditionSourceIpArgs extends com.pulumi.resource /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ @Import(name="values", required=true) private Output> values; @@ -26,8 +24,6 @@ public final class ListenerRuleConditionSourceIpArgs extends com.pulumi.resource /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public Output> values() { return this.values; @@ -60,8 +56,6 @@ public Builder(ListenerRuleConditionSourceIpArgs defaults) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -73,8 +67,6 @@ public Builder values(Output> values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -85,8 +77,6 @@ public Builder values(List values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionHostHeader.java b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionHostHeader.java index faa0aecbe03..0944639c8f6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionHostHeader.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionHostHeader.java @@ -13,8 +13,6 @@ public final class ListenerRuleConditionHostHeader { /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ private List values; @@ -22,8 +20,6 @@ private ListenerRuleConditionHostHeader() {} /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public List values() { return this.values; diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionHttpRequestMethod.java b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionHttpRequestMethod.java index 65f4796cc30..0847ce15bfb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionHttpRequestMethod.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionHttpRequestMethod.java @@ -13,8 +13,6 @@ public final class ListenerRuleConditionHttpRequestMethod { /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ private List values; @@ -22,8 +20,6 @@ private ListenerRuleConditionHttpRequestMethod() {} /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public List values() { return this.values; diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionPathPattern.java b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionPathPattern.java index 81b869506bc..9072fab2f60 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionPathPattern.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionPathPattern.java @@ -13,8 +13,6 @@ public final class ListenerRuleConditionPathPattern { /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ private List values; @@ -22,8 +20,6 @@ private ListenerRuleConditionPathPattern() {} /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public List values() { return this.values; diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionSourceIp.java b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionSourceIp.java index e5a4d00777d..30e14137576 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionSourceIp.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerRuleConditionSourceIp.java @@ -13,8 +13,6 @@ public final class ListenerRuleConditionSourceIp { /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ private List values; @@ -22,8 +20,6 @@ private ListenerRuleConditionSourceIp() {} /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public List values() { return this.values; diff --git a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs.java index e23deed9491..d36f6b79795 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs.java @@ -19,14 +19,14 @@ public final class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetri public static final PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs Empty = new PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs(); /** - * Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * Dimensions of the metric. * */ @Import(name="dimensions") private @Nullable Output> dimensions; /** - * @return Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * @return Dimensions of the metric. * */ public Optional>> dimensions() { @@ -94,14 +94,14 @@ public Optional> statistic() { } /** - * Unit of the metric. + * Unit of the metrics to return. * */ @Import(name="unit") private @Nullable Output unit; /** - * @return Unit of the metric. + * @return Unit of the metrics to return. * */ public Optional> unit() { @@ -138,7 +138,7 @@ public Builder(PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpe } /** - * @param dimensions Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * @param dimensions Dimensions of the metric. * * @return builder * @@ -149,7 +149,7 @@ public Builder dimensions(@Nullable Output unit) { } /** - * @param unit Unit of the metric. + * @param unit Unit of the metrics to return. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.java index eefe080ca22..cb3d1333207 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.java @@ -47,14 +47,14 @@ public Output stat() { } /** - * Unit of the metric. + * Unit of the metrics to return. * */ @Import(name="unit") private @Nullable Output unit; /** - * @return Unit of the metric. + * @return Unit of the metrics to return. * */ public Optional> unit() { @@ -130,7 +130,7 @@ public Builder stat(String stat) { } /** - * @param unit Unit of the metric. + * @param unit Unit of the metrics to return. * * @return builder * @@ -141,7 +141,7 @@ public Builder unit(@Nullable Output unit) { } /** - * @param unit Unit of the metric. + * @param unit Unit of the metrics to return. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.java index 36371b08794..424f7ece70d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/inputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.java @@ -18,14 +18,14 @@ public final class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetri public static final PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs Empty = new PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs(); /** - * Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * Dimensions of the metric. * */ @Import(name="dimensions") private @Nullable Output> dimensions; /** - * @return Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * @return Dimensions of the metric. * */ public Optional>> dimensions() { @@ -89,7 +89,7 @@ public Builder(PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpe } /** - * @param dimensions Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * @param dimensions Dimensions of the metric. * * @return builder * @@ -100,7 +100,7 @@ public Builder dimensions(@Nullable Output dimensions; @@ -40,14 +40,14 @@ public final class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetri */ private @Nullable String statistic; /** - * @return Unit of the metric. + * @return Unit of the metrics to return. * */ private @Nullable String unit; private PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification() {} /** - * @return Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * @return Dimensions of the metric. * */ public List dimensions() { @@ -82,7 +82,7 @@ public Optional statistic() { return Optional.ofNullable(this.statistic); } /** - * @return Unit of the metric. + * @return Unit of the metrics to return. * */ public Optional unit() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat.java b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat.java index e6572ef138d..a167ae124a8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat.java @@ -23,7 +23,7 @@ public final class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetri */ private String stat; /** - * @return Unit of the metric. + * @return Unit of the metrics to return. * */ private @Nullable String unit; @@ -44,7 +44,7 @@ public String stat() { return this.stat; } /** - * @return Unit of the metric. + * @return Unit of the metrics to return. * */ public Optional unit() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric.java b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric.java index 30efc86325e..be2637c53dd 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appautoscaling/outputs/PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric.java @@ -13,7 +13,7 @@ @CustomType public final class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric { /** - * @return Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * @return Dimensions of the metric. * */ private @Nullable List dimensions; @@ -30,7 +30,7 @@ public final class PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetri private PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric() {} /** - * @return Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * @return Dimensions of the metric. * */ public List dimensions() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs.java index 3d01fd765ba..8440cf5bf8b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs.java @@ -49,14 +49,14 @@ public Output entityName() { } /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ @Import(name="errorHandlingConfig") private @Nullable Output errorHandlingConfig; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional> errorHandlingConfig() { @@ -164,7 +164,7 @@ public Builder entityName(String entityName) { } /** - * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * * @return builder * @@ -175,7 +175,7 @@ public Builder errorHandlingConfig(@Nullable Output errorHandlingConfig; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional> errorHandlingConfig() { @@ -72,7 +72,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridg } /** - * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * * @return builder * @@ -83,7 +83,7 @@ public Builder errorHandlingConfig(@Nullable Output errorHandlingConfig; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional> errorHandlingConfig() { @@ -72,7 +72,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeA } /** - * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * * @return builder * @@ -83,7 +83,7 @@ public Builder errorHandlingConfig(@Nullable Output errorHandlingConfig; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional> errorHandlingConfig() { @@ -72,7 +72,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoArg } /** - * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * * @return builder * @@ -83,7 +83,7 @@ public Builder errorHandlingConfig(@Nullable Output bucketPrefix; /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional> bucketPrefix() { @@ -32,14 +32,14 @@ public Optional> bucketPrefix() { } /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ @Import(name="errorHandlingConfig") private @Nullable Output errorHandlingConfig; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional> errorHandlingConfig() { @@ -104,7 +104,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftAr } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * @@ -115,7 +115,7 @@ public Builder bucketPrefix(@Nullable Output bucketPrefix) { } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * @@ -125,7 +125,7 @@ public Builder bucketPrefix(String bucketPrefix) { } /** - * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * * @return builder * @@ -136,7 +136,7 @@ public Builder errorHandlingConfig(@Nullable Output bucketName; /** - * @return Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @return Name of the Amazon S3 bucket. * */ public Output bucketName() { @@ -32,14 +32,14 @@ public Output bucketName() { } /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. * */ @Import(name="bucketPrefix") private @Nullable Output bucketPrefix; /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional> bucketPrefix() { @@ -88,7 +88,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args def } /** - * @param bucketName Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @param bucketName Name of the Amazon S3 bucket. * * @return builder * @@ -99,7 +99,7 @@ public Builder bucketName(Output bucketName) { } /** - * @param bucketName Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @param bucketName Name of the Amazon S3 bucket. * * @return builder * @@ -109,7 +109,7 @@ public Builder bucketName(String bucketName) { } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * @@ -120,7 +120,7 @@ public Builder bucketPrefix(@Nullable Output bucketPrefix) { } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs.java index 99d3ad41972..0016cdf3627 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs.java @@ -18,14 +18,14 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesSalesf public static final FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs Empty = new FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs(); /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ @Import(name="errorHandlingConfig") private @Nullable Output errorHandlingConfig; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional> errorHandlingConfig() { @@ -105,7 +105,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce } /** - * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * * @return builder * @@ -116,7 +116,7 @@ public Builder errorHandlingConfig(@Nullable Output errorHandlingConfig; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional> errorHandlingConfig() { @@ -122,7 +122,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataAr } /** - * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * * @return builder * @@ -133,7 +133,7 @@ public Builder errorHandlingConfig(@Nullable Output bucketPrefix; /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional> bucketPrefix() { @@ -32,14 +32,14 @@ public Optional> bucketPrefix() { } /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ @Import(name="errorHandlingConfig") private @Nullable Output errorHandlingConfig; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional> errorHandlingConfig() { @@ -104,7 +104,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeA } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * @@ -115,7 +115,7 @@ public Builder bucketPrefix(@Nullable Output bucketPrefix) { } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * @@ -125,7 +125,7 @@ public Builder bucketPrefix(String bucketPrefix) { } /** - * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * * @return builder * @@ -136,7 +136,7 @@ public Builder errorHandlingConfig(@Nullable Output bucketName; /** - * @return Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @return Name of the Amazon S3 bucket. * */ public Output bucketName() { @@ -32,14 +32,14 @@ public Output bucketName() { } /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. * */ @Import(name="bucketPrefix") private @Nullable Output bucketPrefix; /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional> bucketPrefix() { @@ -88,7 +88,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverAr } /** - * @param bucketName Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @param bucketName Name of the Amazon S3 bucket. * * @return builder * @@ -99,7 +99,7 @@ public Builder bucketName(Output bucketName) { } /** - * @param bucketName Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @param bucketName Name of the Amazon S3 bucket. * * @return builder * @@ -109,7 +109,7 @@ public Builder bucketName(String bucketName) { } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * @@ -120,7 +120,7 @@ public Builder bucketPrefix(@Nullable Output bucketPrefix) { } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs.java index 17a3c7443db..68464ca3c33 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/inputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs.java @@ -18,14 +18,14 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesZendes public static final FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs Empty = new FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs(); /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ @Import(name="errorHandlingConfig") private @Nullable Output errorHandlingConfig; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional> errorHandlingConfig() { @@ -105,7 +105,7 @@ public Builder(FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArg } /** - * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @param errorHandlingConfig Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * * @return builder * @@ -116,7 +116,7 @@ public Builder errorHandlingConfig(@Nullable Output bucketName; /** - * @return Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @return Name of the Amazon S3 bucket. * */ public Output bucketName() { @@ -32,14 +32,14 @@ public Output bucketName() { } /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. * */ @Import(name="bucketPrefix") private @Nullable Output bucketPrefix; /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional> bucketPrefix() { @@ -88,7 +88,7 @@ public Builder(FlowSourceFlowConfigSourceConnectorPropertiesS3Args defaults) { } /** - * @param bucketName Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @param bucketName Name of the Amazon S3 bucket. * * @return builder * @@ -99,7 +99,7 @@ public Builder bucketName(Output bucketName) { } /** - * @param bucketName Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @param bucketName Name of the Amazon S3 bucket. * * @return builder * @@ -109,7 +109,7 @@ public Builder bucketName(String bucketName) { } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * @@ -120,7 +120,7 @@ public Builder bucketPrefix(@Nullable Output bucketPrefix) { } /** - * @param bucketPrefix Object key for the bucket in which Amazon AppFlow places the destination files. + * @param bucketPrefix Amazon S3 bucket prefix. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector.java index 71f9929f2fb..b438b1607d5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector.java @@ -25,7 +25,7 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesCustom */ private String entityName; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ private @Nullable FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig errorHandlingConfig; @@ -56,7 +56,7 @@ public String entityName() { return this.entityName; } /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional errorHandlingConfig() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge.java index 1ae09443f5d..0ae521d4191 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge.java @@ -13,7 +13,7 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge { /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ private @Nullable FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig errorHandlingConfig; @@ -25,7 +25,7 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesEventB private FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge() {} /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional errorHandlingConfig() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode.java index 200ebc91349..20c4be26f29 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode.java @@ -13,7 +13,7 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode { /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ private @Nullable FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig errorHandlingConfig; @@ -25,7 +25,7 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesHoneyc private FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode() {} /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional errorHandlingConfig() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo.java index e298e733308..ead20d068af 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo.java @@ -13,7 +13,7 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo { /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ private @Nullable FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig errorHandlingConfig; @@ -25,7 +25,7 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesMarket private FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo() {} /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional errorHandlingConfig() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift.java index 377ed4116b1..510835a32a7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift.java @@ -13,12 +13,12 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift { /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ private @Nullable String bucketPrefix; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ private @Nullable FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig errorHandlingConfig; @@ -35,14 +35,14 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesRedshi private FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift() {} /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional bucketPrefix() { return Optional.ofNullable(this.bucketPrefix); } /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional errorHandlingConfig() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3.java index 13ddadbd71b..77f87d7dd7d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesS3.java @@ -13,12 +13,12 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesS3 { /** - * @return Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @return Name of the Amazon S3 bucket. * */ private String bucketName; /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ private @Nullable String bucketPrefix; @@ -30,14 +30,14 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesS3 { private FlowDestinationFlowConfigDestinationConnectorPropertiesS3() {} /** - * @return Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @return Name of the Amazon S3 bucket. * */ public String bucketName() { return this.bucketName; } /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional bucketPrefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce.java index 2f98ad74561..0a28ad4a6c2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce.java @@ -14,7 +14,7 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce { /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ private @Nullable FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig errorHandlingConfig; @@ -36,7 +36,7 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesSalesf private FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce() {} /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional errorHandlingConfig() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData.java index e07064b4a4e..67973b34f17 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData.java @@ -15,7 +15,7 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData { /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ private @Nullable FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig errorHandlingConfig; @@ -42,7 +42,7 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDa private FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData() {} /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional errorHandlingConfig() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake.java index 06d358e89ea..be9fee8d7bc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake.java @@ -13,12 +13,12 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake { /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ private @Nullable String bucketPrefix; /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ private @Nullable FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig errorHandlingConfig; @@ -35,14 +35,14 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesSnowfl private FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake() {} /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional bucketPrefix() { return Optional.ofNullable(this.bucketPrefix); } /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional errorHandlingConfig() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver.java index 962f316835a..b62276ad797 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver.java @@ -13,12 +13,12 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver { /** - * @return Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @return Name of the Amazon S3 bucket. * */ private String bucketName; /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ private @Nullable String bucketPrefix; @@ -30,14 +30,14 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolv private FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver() {} /** - * @return Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @return Name of the Amazon S3 bucket. * */ public String bucketName() { return this.bucketName; } /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional bucketPrefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk.java index 15367bc51e9..b5d6100d775 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk.java @@ -14,7 +14,7 @@ @CustomType public final class FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk { /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ private @Nullable FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig errorHandlingConfig; @@ -36,7 +36,7 @@ public final class FlowDestinationFlowConfigDestinationConnectorPropertiesZendes private FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk() {} /** - * @return Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * @return Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. * */ public Optional errorHandlingConfig() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowSourceFlowConfigSourceConnectorPropertiesS3.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowSourceFlowConfigSourceConnectorPropertiesS3.java index 4bc1530c976..3772467c747 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowSourceFlowConfigSourceConnectorPropertiesS3.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/outputs/FlowSourceFlowConfigSourceConnectorPropertiesS3.java @@ -13,12 +13,12 @@ @CustomType public final class FlowSourceFlowConfigSourceConnectorPropertiesS3 { /** - * @return Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @return Name of the Amazon S3 bucket. * */ private String bucketName; /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ private @Nullable String bucketPrefix; @@ -30,14 +30,14 @@ public final class FlowSourceFlowConfigSourceConnectorPropertiesS3 { private FlowSourceFlowConfigSourceConnectorPropertiesS3() {} /** - * @return Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * @return Name of the Amazon S3 bucket. * */ public String bucketName() { return this.bucketName; } /** - * @return Object key for the bucket in which Amazon AppFlow places the destination files. + * @return Amazon S3 bucket prefix. * */ public Optional bucketPrefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecGrpcRouteMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecGrpcRouteMatchArgs.java index 0487950c90f..f1a663f26b1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecGrpcRouteMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecGrpcRouteMatchArgs.java @@ -17,14 +17,14 @@ public final class GatewayRouteSpecGrpcRouteMatchArgs extends com.pulumi.resourc public static final GatewayRouteSpecGrpcRouteMatchArgs Empty = new GatewayRouteSpecGrpcRouteMatchArgs(); /** - * The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * The port number to match from the request. * */ @Import(name="port") private @Nullable Output port; /** - * @return The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @return The port number to match from the request. * */ public Optional> port() { @@ -72,7 +72,7 @@ public Builder(GatewayRouteSpecGrpcRouteMatchArgs defaults) { } /** - * @param port The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @param port The port number to match from the request. * * @return builder * @@ -83,7 +83,7 @@ public Builder port(@Nullable Output port) { } /** - * @param port The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @param port The port number to match from the request. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchArgs.java index 301ee349d14..a699d1efebc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchArgs.java @@ -37,14 +37,14 @@ public Optional>> headers } /** - * Host name to rewrite. + * Host name to match on. * */ @Import(name="hostname") private @Nullable Output hostname; /** - * @return Host name to rewrite. + * @return Host name to match on. * */ public Optional> hostname() { @@ -52,14 +52,14 @@ public Optional> hostname() } /** - * Exact path to rewrite. + * Client request path to match on. * */ @Import(name="path") private @Nullable Output path; /** - * @return Exact path to rewrite. + * @return Client request path to match on. * */ public Optional> path() { @@ -67,14 +67,14 @@ public Optional> path() { } /** - * The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * The port number to match from the request. * */ @Import(name="port") private @Nullable Output port; /** - * @return The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @return The port number to match from the request. * */ public Optional> port() { @@ -82,14 +82,14 @@ public Optional> port() { } /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -172,7 +172,7 @@ public Builder headers(GatewayRouteSpecHttp2RouteMatchHeaderArgs... headers) { } /** - * @param hostname Host name to rewrite. + * @param hostname Host name to match on. * * @return builder * @@ -183,7 +183,7 @@ public Builder hostname(@Nullable Output pa } /** - * @param path Exact path to rewrite. + * @param path Client request path to match on. * * @return builder * @@ -214,7 +214,7 @@ public Builder path(GatewayRouteSpecHttp2RouteMatchPathArgs path) { } /** - * @param port The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @param port The port number to match from the request. * * @return builder * @@ -225,7 +225,7 @@ public Builder port(@Nullable Output port) { } /** - * @param port The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @param port The port number to match from the request. * * @return builder * @@ -235,7 +235,7 @@ public Builder port(Integer port) { } /** - * @param prefix Specified beginning characters to rewrite. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -246,7 +246,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Specified beginning characters to rewrite. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs.java index e261e118282..0f9ab9aed06 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs.java @@ -17,14 +17,14 @@ public final class GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs extends com.pu public static final GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs Empty = new GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs(); /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. * */ @Import(name="exact") private @Nullable Output exact; /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional> exact() { @@ -32,14 +32,14 @@ public Optional> exact() { } /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -120,7 +120,7 @@ public Builder(GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs defaults) { } /** - * @param exact Value used to replace matched path. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -131,7 +131,7 @@ public Builder exact(@Nullable Output exact) { } /** - * @param exact Value used to replace matched path. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -141,7 +141,7 @@ public Builder exact(String exact) { } /** - * @param prefix Specified beginning characters to rewrite. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -152,7 +152,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Specified beginning characters to rewrite. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs.java index 4e1efa0fe4f..2b9594e29c4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs.java @@ -16,14 +16,14 @@ public final class GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs extend public static final GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs Empty = new GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs(); /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. * */ @Import(name="exact") private @Nullable Output exact; /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional> exact() { @@ -55,7 +55,7 @@ public Builder(GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs defaults) } /** - * @param exact Value used to replace matched path. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -66,7 +66,7 @@ public Builder exact(@Nullable Output exact) { } /** - * @param exact Value used to replace matched path. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchArgs.java index f0eda10c3cb..b0afeb47b4f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchArgs.java @@ -37,14 +37,14 @@ public Optional>> headers( } /** - * Host name to rewrite. + * Host name to match on. * */ @Import(name="hostname") private @Nullable Output hostname; /** - * @return Host name to rewrite. + * @return Host name to match on. * */ public Optional> hostname() { @@ -52,14 +52,14 @@ public Optional> hostname() { } /** - * Exact path to rewrite. + * Client request path to match on. * */ @Import(name="path") private @Nullable Output path; /** - * @return Exact path to rewrite. + * @return Client request path to match on. * */ public Optional> path() { @@ -67,14 +67,14 @@ public Optional> path() { } /** - * The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * The port number to match from the request. * */ @Import(name="port") private @Nullable Output port; /** - * @return The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @return The port number to match from the request. * */ public Optional> port() { @@ -82,14 +82,14 @@ public Optional> port() { } /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -172,7 +172,7 @@ public Builder headers(GatewayRouteSpecHttpRouteMatchHeaderArgs... headers) { } /** - * @param hostname Host name to rewrite. + * @param hostname Host name to match on. * * @return builder * @@ -183,7 +183,7 @@ public Builder hostname(@Nullable Output pat } /** - * @param path Exact path to rewrite. + * @param path Client request path to match on. * * @return builder * @@ -214,7 +214,7 @@ public Builder path(GatewayRouteSpecHttpRouteMatchPathArgs path) { } /** - * @param port The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @param port The port number to match from the request. * * @return builder * @@ -225,7 +225,7 @@ public Builder port(@Nullable Output port) { } /** - * @param port The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @param port The port number to match from the request. * * @return builder * @@ -235,7 +235,7 @@ public Builder port(Integer port) { } /** - * @param prefix Specified beginning characters to rewrite. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -246,7 +246,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Specified beginning characters to rewrite. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchArgs.java index a297a9b927e..3c0d4f36599 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchHeaderMatchArgs.java @@ -17,14 +17,14 @@ public final class GatewayRouteSpecHttpRouteMatchHeaderMatchArgs extends com.pul public static final GatewayRouteSpecHttpRouteMatchHeaderMatchArgs Empty = new GatewayRouteSpecHttpRouteMatchHeaderMatchArgs(); /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. * */ @Import(name="exact") private @Nullable Output exact; /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional> exact() { @@ -32,14 +32,14 @@ public Optional> exact() { } /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -120,7 +120,7 @@ public Builder(GatewayRouteSpecHttpRouteMatchHeaderMatchArgs defaults) { } /** - * @param exact Value used to replace matched path. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -131,7 +131,7 @@ public Builder exact(@Nullable Output exact) { } /** - * @param exact Value used to replace matched path. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -141,7 +141,7 @@ public Builder exact(String exact) { } /** - * @param prefix Specified beginning characters to rewrite. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -152,7 +152,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Specified beginning characters to rewrite. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs.java index 9612e85da3e..2d9994dcf21 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs.java @@ -16,14 +16,14 @@ public final class GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs extends public static final GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs Empty = new GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs(); /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. * */ @Import(name="exact") private @Nullable Output exact; /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional> exact() { @@ -55,7 +55,7 @@ public Builder(GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs defaults) { } /** - * @param exact Value used to replace matched path. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -66,7 +66,7 @@ public Builder exact(@Nullable Output exact) { } /** - * @param exact Value used to replace matched path. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteMatchArgs.java index 42d454a896c..19fd92f0485 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteMatchArgs.java @@ -64,16 +64,14 @@ public Optional> port() { } /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -197,8 +195,7 @@ public Builder port(Integer port) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -209,8 +206,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteMatchMetadataMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteMatchMetadataMatchArgs.java index beb8dcebdcf..ce0f82a8ed3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteMatchMetadataMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteMatchMetadataMatchArgs.java @@ -32,16 +32,14 @@ public Optional> exact() { } /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -49,14 +47,14 @@ public Optional> prefix() { } /** - * Object that specifies the range of numbers that the value sent by the client must be included in. + * Object that specifies the range of numbers that the header value sent by the client must be included in. * */ @Import(name="range") private @Nullable Output range; /** - * @return Object that specifies the range of numbers that the value sent by the client must be included in. + * @return Object that specifies the range of numbers that the header value sent by the client must be included in. * */ public Optional> range() { @@ -79,14 +77,14 @@ public Optional> regex() { } /** - * Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must end with the specified characters. * */ @Import(name="suffix") private @Nullable Output suffix; /** - * @return Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must end with the specified characters. * */ public Optional> suffix() { @@ -143,8 +141,7 @@ public Builder exact(String exact) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -155,8 +152,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -166,7 +162,7 @@ public Builder prefix(String prefix) { } /** - * @param range Object that specifies the range of numbers that the value sent by the client must be included in. + * @param range Object that specifies the range of numbers that the header value sent by the client must be included in. * * @return builder * @@ -177,7 +173,7 @@ public Builder range(@Nullable Output suffix) { } /** - * @param suffix Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @param suffix Header value sent by the client must end with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteRetryPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteRetryPolicyArgs.java index 09641241d11..f49b449e0ac 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteRetryPolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecGrpcRouteRetryPolicyArgs.java @@ -38,7 +38,6 @@ public Optional>> grpcRetryEvents() { /** * List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ @Import(name="httpRetryEvents") @@ -47,7 +46,6 @@ public Optional>> grpcRetryEvents() { /** * @return List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ public Optional>> httpRetryEvents() { @@ -87,8 +85,6 @@ public Output perRetryTimeout( /** * List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ @Import(name="tcpRetryEvents") private @Nullable Output> tcpRetryEvents; @@ -96,8 +92,6 @@ public Output perRetryTimeout( /** * @return List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ public Optional>> tcpRetryEvents() { return Optional.ofNullable(this.tcpRetryEvents); @@ -168,7 +162,6 @@ public Builder grpcRetryEvents(String... grpcRetryEvents) { /** * @param httpRetryEvents List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * * @return builder * @@ -181,7 +174,6 @@ public Builder httpRetryEvents(@Nullable Output> httpRetryEvents) { /** * @param httpRetryEvents List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * * @return builder * @@ -193,7 +185,6 @@ public Builder httpRetryEvents(List httpRetryEvents) { /** * @param httpRetryEvents List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * * @return builder * @@ -247,8 +238,6 @@ public Builder perRetryTimeout(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs /** * @param tcpRetryEvents List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * * @return builder * */ @@ -260,8 +249,6 @@ public Builder tcpRetryEvents(@Nullable Output> tcpRetryEvents) { /** * @param tcpRetryEvents List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * * @return builder * */ @@ -272,8 +259,6 @@ public Builder tcpRetryEvents(List tcpRetryEvents) { /** * @param tcpRetryEvents List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchArgs.java index 816355ca10d..7265c3e64ee 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchArgs.java @@ -81,16 +81,14 @@ public Optional> port() { } /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -252,8 +250,7 @@ public Builder port(Integer port) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -264,8 +261,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchHeaderMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchHeaderMatchArgs.java index b4bf9e5ec13..fe40b412554 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchHeaderMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchHeaderMatchArgs.java @@ -32,16 +32,14 @@ public Optional> exact() { } /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -49,14 +47,14 @@ public Optional> prefix() { } /** - * Object that specifies the range of numbers that the value sent by the client must be included in. + * Object that specifies the range of numbers that the header value sent by the client must be included in. * */ @Import(name="range") private @Nullable Output range; /** - * @return Object that specifies the range of numbers that the value sent by the client must be included in. + * @return Object that specifies the range of numbers that the header value sent by the client must be included in. * */ public Optional> range() { @@ -79,14 +77,14 @@ public Optional> regex() { } /** - * Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must end with the specified characters. * */ @Import(name="suffix") private @Nullable Output suffix; /** - * @return Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must end with the specified characters. * */ public Optional> suffix() { @@ -143,8 +141,7 @@ public Builder exact(String exact) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -155,8 +152,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -166,7 +162,7 @@ public Builder prefix(String prefix) { } /** - * @param range Object that specifies the range of numbers that the value sent by the client must be included in. + * @param range Object that specifies the range of numbers that the header value sent by the client must be included in. * * @return builder * @@ -177,7 +173,7 @@ public Builder range(@Nullable Output suffix) { } /** - * @param suffix Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @param suffix Header value sent by the client must end with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchPathArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchPathArgs.java index aa3efbf2cfd..ca77291bfe1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchPathArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteMatchPathArgs.java @@ -16,14 +16,14 @@ public final class RouteSpecHttp2RouteMatchPathArgs extends com.pulumi.resources public static final RouteSpecHttp2RouteMatchPathArgs Empty = new RouteSpecHttp2RouteMatchPathArgs(); /** - * Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * Header value sent by the client must match the specified value exactly. * */ @Import(name="exact") private @Nullable Output exact; /** - * @return Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional> exact() { @@ -31,14 +31,14 @@ public Optional> exact() { } /** - * Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must include the specified characters. * */ @Import(name="regex") private @Nullable Output regex; /** - * @return Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must include the specified characters. * */ public Optional> regex() { @@ -71,7 +71,7 @@ public Builder(RouteSpecHttp2RouteMatchPathArgs defaults) { } /** - * @param exact Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -82,7 +82,7 @@ public Builder exact(@Nullable Output exact) { } /** - * @param exact Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -92,7 +92,7 @@ public Builder exact(String exact) { } /** - * @param regex Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @param regex Header value sent by the client must include the specified characters. * * @return builder * @@ -103,7 +103,7 @@ public Builder regex(@Nullable Output regex) { } /** - * @param regex Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @param regex Header value sent by the client must include the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteRetryPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteRetryPolicyArgs.java index 8da391d2c3b..22e8ea666e6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteRetryPolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttp2RouteRetryPolicyArgs.java @@ -21,7 +21,6 @@ public final class RouteSpecHttp2RouteRetryPolicyArgs extends com.pulumi.resourc /** * List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ @Import(name="httpRetryEvents") @@ -30,7 +29,6 @@ public final class RouteSpecHttp2RouteRetryPolicyArgs extends com.pulumi.resourc /** * @return List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ public Optional>> httpRetryEvents() { @@ -70,8 +68,6 @@ public Output perRetryTimeout /** * List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ @Import(name="tcpRetryEvents") private @Nullable Output> tcpRetryEvents; @@ -79,8 +75,6 @@ public Output perRetryTimeout /** * @return List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ public Optional>> tcpRetryEvents() { return Optional.ofNullable(this.tcpRetryEvents); @@ -116,7 +110,6 @@ public Builder(RouteSpecHttp2RouteRetryPolicyArgs defaults) { /** * @param httpRetryEvents List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * * @return builder * @@ -129,7 +122,6 @@ public Builder httpRetryEvents(@Nullable Output> httpRetryEvents) { /** * @param httpRetryEvents List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * * @return builder * @@ -141,7 +133,6 @@ public Builder httpRetryEvents(List httpRetryEvents) { /** * @param httpRetryEvents List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * * @return builder * @@ -195,8 +186,6 @@ public Builder perRetryTimeout(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs /** * @param tcpRetryEvents List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * * @return builder * */ @@ -208,8 +197,6 @@ public Builder tcpRetryEvents(@Nullable Output> tcpRetryEvents) { /** * @param tcpRetryEvents List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * * @return builder * */ @@ -220,8 +207,6 @@ public Builder tcpRetryEvents(List tcpRetryEvents) { /** * @param tcpRetryEvents List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchArgs.java index f3272555f35..00074f94fc6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchArgs.java @@ -81,16 +81,14 @@ public Optional> port() { } /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -252,8 +250,7 @@ public Builder port(Integer port) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -264,8 +261,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchHeaderMatchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchHeaderMatchArgs.java index 2dcd9a235d7..d3f6b9aafb0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchHeaderMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchHeaderMatchArgs.java @@ -32,16 +32,14 @@ public Optional> exact() { } /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional> prefix() { @@ -49,14 +47,14 @@ public Optional> prefix() { } /** - * Object that specifies the range of numbers that the value sent by the client must be included in. + * Object that specifies the range of numbers that the header value sent by the client must be included in. * */ @Import(name="range") private @Nullable Output range; /** - * @return Object that specifies the range of numbers that the value sent by the client must be included in. + * @return Object that specifies the range of numbers that the header value sent by the client must be included in. * */ public Optional> range() { @@ -79,14 +77,14 @@ public Optional> regex() { } /** - * Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must end with the specified characters. * */ @Import(name="suffix") private @Nullable Output suffix; /** - * @return Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must end with the specified characters. * */ public Optional> suffix() { @@ -143,8 +141,7 @@ public Builder exact(String exact) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -155,8 +152,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @param prefix Header value sent by the client must begin with the specified characters. * * @return builder * @@ -166,7 +162,7 @@ public Builder prefix(String prefix) { } /** - * @param range Object that specifies the range of numbers that the value sent by the client must be included in. + * @param range Object that specifies the range of numbers that the header value sent by the client must be included in. * * @return builder * @@ -177,7 +173,7 @@ public Builder range(@Nullable Output suffix) { } /** - * @param suffix Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @param suffix Header value sent by the client must end with the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchPathArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchPathArgs.java index e8b153f3def..06391cb316a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchPathArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteMatchPathArgs.java @@ -16,14 +16,14 @@ public final class RouteSpecHttpRouteMatchPathArgs extends com.pulumi.resources. public static final RouteSpecHttpRouteMatchPathArgs Empty = new RouteSpecHttpRouteMatchPathArgs(); /** - * Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * Header value sent by the client must match the specified value exactly. * */ @Import(name="exact") private @Nullable Output exact; /** - * @return Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional> exact() { @@ -31,14 +31,14 @@ public Optional> exact() { } /** - * Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must include the specified characters. * */ @Import(name="regex") private @Nullable Output regex; /** - * @return Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must include the specified characters. * */ public Optional> regex() { @@ -71,7 +71,7 @@ public Builder(RouteSpecHttpRouteMatchPathArgs defaults) { } /** - * @param exact Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -82,7 +82,7 @@ public Builder exact(@Nullable Output exact) { } /** - * @param exact Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @param exact Header value sent by the client must match the specified value exactly. * * @return builder * @@ -92,7 +92,7 @@ public Builder exact(String exact) { } /** - * @param regex Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @param regex Header value sent by the client must include the specified characters. * * @return builder * @@ -103,7 +103,7 @@ public Builder regex(@Nullable Output regex) { } /** - * @param regex Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @param regex Header value sent by the client must include the specified characters. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteRetryPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteRetryPolicyArgs.java index 931c09590bd..f0fffd9b38a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteRetryPolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/RouteSpecHttpRouteRetryPolicyArgs.java @@ -21,7 +21,6 @@ public final class RouteSpecHttpRouteRetryPolicyArgs extends com.pulumi.resource /** * List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ @Import(name="httpRetryEvents") @@ -30,7 +29,6 @@ public final class RouteSpecHttpRouteRetryPolicyArgs extends com.pulumi.resource /** * @return List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ public Optional>> httpRetryEvents() { @@ -70,8 +68,6 @@ public Output perRetryTimeout( /** * List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ @Import(name="tcpRetryEvents") private @Nullable Output> tcpRetryEvents; @@ -79,8 +75,6 @@ public Output perRetryTimeout( /** * @return List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ public Optional>> tcpRetryEvents() { return Optional.ofNullable(this.tcpRetryEvents); @@ -116,7 +110,6 @@ public Builder(RouteSpecHttpRouteRetryPolicyArgs defaults) { /** * @param httpRetryEvents List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * * @return builder * @@ -129,7 +122,6 @@ public Builder httpRetryEvents(@Nullable Output> httpRetryEvents) { /** * @param httpRetryEvents List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * * @return builder * @@ -141,7 +133,6 @@ public Builder httpRetryEvents(List httpRetryEvents) { /** * @param httpRetryEvents List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * * @return builder * @@ -195,8 +186,6 @@ public Builder perRetryTimeout(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs /** * @param tcpRetryEvents List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * * @return builder * */ @@ -208,8 +197,6 @@ public Builder tcpRetryEvents(@Nullable Output> tcpRetryEvents) { /** * @param tcpRetryEvents List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * * @return builder * */ @@ -220,8 +207,6 @@ public Builder tcpRetryEvents(List tcpRetryEvents) { /** * @param tcpRetryEvents List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerOutlierDetectionIntervalArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerOutlierDetectionIntervalArgs.java index f795619c040..56b0bf735c3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerOutlierDetectionIntervalArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerOutlierDetectionIntervalArgs.java @@ -30,14 +30,14 @@ public Output unit() { } /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. * */ @Import(name="value", required=true) private Output value; /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ public Output value() { @@ -91,7 +91,7 @@ public Builder unit(String unit) { } /** - * @param value The specified value for the JSON. Must be between 1 and 100 characters in length. + * @param value Number of time units. Minimum value of `0`. * * @return builder * @@ -102,7 +102,7 @@ public Builder value(Output value) { } /** - * @param value The specified value for the JSON. Must be between 1 and 100 characters in length. + * @param value Number of time units. Minimum value of `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs.java index 58946663e2f..329d6e90488 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs.java @@ -30,14 +30,14 @@ public Output unit() { } /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. * */ @Import(name="value", required=true) private Output value; /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ public Output value() { @@ -91,7 +91,7 @@ public Builder unit(String unit) { } /** - * @param value The specified value for the JSON. Must be between 1 and 100 characters in length. + * @param value Number of time units. Minimum value of `0`. * * @return builder * @@ -102,7 +102,7 @@ public Builder value(Output value) { } /** - * @param value The specified value for the JSON. Must be between 1 and 100 characters in length. + * @param value Number of time units. Minimum value of `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs.java index 649db74189a..9524bbdd87d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs.java @@ -30,14 +30,14 @@ public Output unit() { } /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. * */ @Import(name="value", required=true) private Output value; /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ public Output value() { @@ -91,7 +91,7 @@ public Builder unit(String unit) { } /** - * @param value The specified value for the JSON. Must be between 1 and 100 characters in length. + * @param value Number of time units. Minimum value of `0`. * * @return builder * @@ -102,7 +102,7 @@ public Builder value(Output value) { } /** - * @param value The specified value for the JSON. Must be between 1 and 100 characters in length. + * @param value Number of time units. Minimum value of `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestArgs.java index 8c96cf89b2d..58a2d8e622e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/inputs/VirtualNodeSpecListenerTimeoutHttpPerRequestArgs.java @@ -30,14 +30,14 @@ public Output unit() { } /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. * */ @Import(name="value", required=true) private Output value; /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ public Output value() { @@ -91,7 +91,7 @@ public Builder unit(String unit) { } /** - * @param value The specified value for the JSON. Must be between 1 and 100 characters in length. + * @param value Number of time units. Minimum value of `0`. * * @return builder * @@ -102,7 +102,7 @@ public Builder value(Output value) { } /** - * @param value The specified value for the JSON. Must be between 1 and 100 characters in length. + * @param value Number of time units. Minimum value of `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecGrpcRouteMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecGrpcRouteMatch.java index bc91f808ee3..0cf1a879e21 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecGrpcRouteMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecGrpcRouteMatch.java @@ -13,7 +13,7 @@ @CustomType public final class GatewayRouteSpecGrpcRouteMatch { /** - * @return The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @return The port number to match from the request. * */ private @Nullable Integer port; @@ -25,7 +25,7 @@ public final class GatewayRouteSpecGrpcRouteMatch { private GatewayRouteSpecGrpcRouteMatch() {} /** - * @return The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @return The port number to match from the request. * */ public Optional port() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatch.java index 70f7d9e62de..939beb1d869 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatch.java @@ -23,22 +23,22 @@ public final class GatewayRouteSpecHttp2RouteMatch { */ private @Nullable List headers; /** - * @return Host name to rewrite. + * @return Host name to match on. * */ private @Nullable GatewayRouteSpecHttp2RouteMatchHostname hostname; /** - * @return Exact path to rewrite. + * @return Client request path to match on. * */ private @Nullable GatewayRouteSpecHttp2RouteMatchPath path; /** - * @return The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @return The port number to match from the request. * */ private @Nullable Integer port; /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; @@ -57,28 +57,28 @@ public List headers() { return this.headers == null ? List.of() : this.headers; } /** - * @return Host name to rewrite. + * @return Host name to match on. * */ public Optional hostname() { return Optional.ofNullable(this.hostname); } /** - * @return Exact path to rewrite. + * @return Client request path to match on. * */ public Optional path() { return Optional.ofNullable(this.path); } /** - * @return The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @return The port number to match from the request. * */ public Optional port() { return Optional.ofNullable(this.port); } /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatchHeaderMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatchHeaderMatch.java index 889018a9cb4..c8a1d5f0958 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatchHeaderMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatchHeaderMatch.java @@ -13,12 +13,12 @@ @CustomType public final class GatewayRouteSpecHttp2RouteMatchHeaderMatch { /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ private @Nullable String exact; /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; @@ -40,14 +40,14 @@ public final class GatewayRouteSpecHttp2RouteMatchHeaderMatch { private GatewayRouteSpecHttp2RouteMatchHeaderMatch() {} /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional exact() { return Optional.ofNullable(this.exact); } /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatch.java index 37dc7a13493..4dec7b7b77f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttp2RouteMatchQueryParameterMatch.java @@ -12,14 +12,14 @@ @CustomType public final class GatewayRouteSpecHttp2RouteMatchQueryParameterMatch { /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ private @Nullable String exact; private GatewayRouteSpecHttp2RouteMatchQueryParameterMatch() {} /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional exact() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatch.java index ac008a78dcb..1c964ef0b2e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatch.java @@ -23,22 +23,22 @@ public final class GatewayRouteSpecHttpRouteMatch { */ private @Nullable List headers; /** - * @return Host name to rewrite. + * @return Host name to match on. * */ private @Nullable GatewayRouteSpecHttpRouteMatchHostname hostname; /** - * @return Exact path to rewrite. + * @return Client request path to match on. * */ private @Nullable GatewayRouteSpecHttpRouteMatchPath path; /** - * @return The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @return The port number to match from the request. * */ private @Nullable Integer port; /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; @@ -57,28 +57,28 @@ public List headers() { return this.headers == null ? List.of() : this.headers; } /** - * @return Host name to rewrite. + * @return Host name to match on. * */ public Optional hostname() { return Optional.ofNullable(this.hostname); } /** - * @return Exact path to rewrite. + * @return Client request path to match on. * */ public Optional path() { return Optional.ofNullable(this.path); } /** - * @return The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * @return The port number to match from the request. * */ public Optional port() { return Optional.ofNullable(this.port); } /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatchHeaderMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatchHeaderMatch.java index c67786447b0..db680ce8c82 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatchHeaderMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatchHeaderMatch.java @@ -13,12 +13,12 @@ @CustomType public final class GatewayRouteSpecHttpRouteMatchHeaderMatch { /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ private @Nullable String exact; /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; @@ -40,14 +40,14 @@ public final class GatewayRouteSpecHttpRouteMatchHeaderMatch { private GatewayRouteSpecHttpRouteMatchHeaderMatch() {} /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional exact() { return Optional.ofNullable(this.exact); } /** - * @return Specified beginning characters to rewrite. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatch.java index 5e3577e84ce..aeae6f56981 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/GatewayRouteSpecHttpRouteMatchQueryParameterMatch.java @@ -12,14 +12,14 @@ @CustomType public final class GatewayRouteSpecHttpRouteMatchQueryParameterMatch { /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ private @Nullable String exact; private GatewayRouteSpecHttpRouteMatchQueryParameterMatch() {} /** - * @return Value used to replace matched path. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional exact() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteMatch.java index 4dfa2d389f2..177a67a1d18 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteMatch.java @@ -30,8 +30,7 @@ public final class RouteSpecGrpcRouteMatch { */ private @Nullable Integer port; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; @@ -64,8 +63,7 @@ public Optional port() { return Optional.ofNullable(this.port); } /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteMatchMetadataMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteMatchMetadataMatch.java index 333b94511ed..48686ac7392 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteMatchMetadataMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteMatchMetadataMatch.java @@ -18,13 +18,12 @@ public final class RouteSpecGrpcRouteMatchMetadataMatch { */ private @Nullable String exact; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; /** - * @return Object that specifies the range of numbers that the value sent by the client must be included in. + * @return Object that specifies the range of numbers that the header value sent by the client must be included in. * */ private @Nullable RouteSpecGrpcRouteMatchMetadataMatchRange range; @@ -34,7 +33,7 @@ public final class RouteSpecGrpcRouteMatchMetadataMatch { */ private @Nullable String regex; /** - * @return Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must end with the specified characters. * */ private @Nullable String suffix; @@ -48,15 +47,14 @@ public Optional exact() { return Optional.ofNullable(this.exact); } /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return Object that specifies the range of numbers that the value sent by the client must be included in. + * @return Object that specifies the range of numbers that the header value sent by the client must be included in. * */ public Optional range() { @@ -70,7 +68,7 @@ public Optional regex() { return Optional.ofNullable(this.regex); } /** - * @return Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must end with the specified characters. * */ public Optional suffix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteRetryPolicy.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteRetryPolicy.java index 936555d2e99..308bcb29877 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteRetryPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecGrpcRouteRetryPolicy.java @@ -22,7 +22,6 @@ public final class RouteSpecGrpcRouteRetryPolicy { /** * @return List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ private @Nullable List httpRetryEvents; @@ -39,8 +38,6 @@ public final class RouteSpecGrpcRouteRetryPolicy { /** * @return List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ private @Nullable List tcpRetryEvents; @@ -56,7 +53,6 @@ public List grpcRetryEvents() { /** * @return List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ public List httpRetryEvents() { @@ -79,8 +75,6 @@ public RouteSpecGrpcRouteRetryPolicyPerRetryTimeout perRetryTimeout() { /** * @return List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ public List tcpRetryEvents() { return this.tcpRetryEvents == null ? List.of() : this.tcpRetryEvents; diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatch.java index bbd39b25ec2..c632a95825f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatch.java @@ -37,8 +37,7 @@ public final class RouteSpecHttp2RouteMatch { */ private @Nullable Integer port; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; @@ -83,8 +82,7 @@ public Optional port() { return Optional.ofNullable(this.port); } /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatchHeaderMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatchHeaderMatch.java index ca76abfb2f1..c1493ce7183 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatchHeaderMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatchHeaderMatch.java @@ -18,13 +18,12 @@ public final class RouteSpecHttp2RouteMatchHeaderMatch { */ private @Nullable String exact; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; /** - * @return Object that specifies the range of numbers that the value sent by the client must be included in. + * @return Object that specifies the range of numbers that the header value sent by the client must be included in. * */ private @Nullable RouteSpecHttp2RouteMatchHeaderMatchRange range; @@ -34,7 +33,7 @@ public final class RouteSpecHttp2RouteMatchHeaderMatch { */ private @Nullable String regex; /** - * @return Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must end with the specified characters. * */ private @Nullable String suffix; @@ -48,15 +47,14 @@ public Optional exact() { return Optional.ofNullable(this.exact); } /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return Object that specifies the range of numbers that the value sent by the client must be included in. + * @return Object that specifies the range of numbers that the header value sent by the client must be included in. * */ public Optional range() { @@ -70,7 +68,7 @@ public Optional regex() { return Optional.ofNullable(this.regex); } /** - * @return Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must end with the specified characters. * */ public Optional suffix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatchPath.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatchPath.java index 56019ab268e..625f273cb8b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatchPath.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteMatchPath.java @@ -12,26 +12,26 @@ @CustomType public final class RouteSpecHttp2RouteMatchPath { /** - * @return Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must match the specified value exactly. * */ private @Nullable String exact; /** - * @return Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must include the specified characters. * */ private @Nullable String regex; private RouteSpecHttp2RouteMatchPath() {} /** - * @return Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional exact() { return Optional.ofNullable(this.exact); } /** - * @return Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must include the specified characters. * */ public Optional regex() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteRetryPolicy.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteRetryPolicy.java index 3a9c9a2f48c..89bebb56609 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteRetryPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttp2RouteRetryPolicy.java @@ -16,7 +16,6 @@ public final class RouteSpecHttp2RouteRetryPolicy { /** * @return List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ private @Nullable List httpRetryEvents; @@ -33,8 +32,6 @@ public final class RouteSpecHttp2RouteRetryPolicy { /** * @return List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ private @Nullable List tcpRetryEvents; @@ -42,7 +39,6 @@ private RouteSpecHttp2RouteRetryPolicy() {} /** * @return List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ public List httpRetryEvents() { @@ -65,8 +61,6 @@ public RouteSpecHttp2RouteRetryPolicyPerRetryTimeout perRetryTimeout() { /** * @return List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ public List tcpRetryEvents() { return this.tcpRetryEvents == null ? List.of() : this.tcpRetryEvents; diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatch.java index c56470f6ede..5496bd06173 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatch.java @@ -37,8 +37,7 @@ public final class RouteSpecHttpRouteMatch { */ private @Nullable Integer port; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; @@ -83,8 +82,7 @@ public Optional port() { return Optional.ofNullable(this.port); } /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatchHeaderMatch.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatchHeaderMatch.java index 819bd66940e..1f0a2395a8c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatchHeaderMatch.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatchHeaderMatch.java @@ -18,13 +18,12 @@ public final class RouteSpecHttpRouteMatchHeaderMatch { */ private @Nullable String exact; /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ private @Nullable String prefix; /** - * @return Object that specifies the range of numbers that the value sent by the client must be included in. + * @return Object that specifies the range of numbers that the header value sent by the client must be included in. * */ private @Nullable RouteSpecHttpRouteMatchHeaderMatchRange range; @@ -34,7 +33,7 @@ public final class RouteSpecHttpRouteMatchHeaderMatch { */ private @Nullable String regex; /** - * @return Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must end with the specified characters. * */ private @Nullable String suffix; @@ -48,15 +47,14 @@ public Optional exact() { return Optional.ofNullable(this.exact); } /** - * @return Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * @return Header value sent by the client must begin with the specified characters. * */ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return Object that specifies the range of numbers that the value sent by the client must be included in. + * @return Object that specifies the range of numbers that the header value sent by the client must be included in. * */ public Optional range() { @@ -70,7 +68,7 @@ public Optional regex() { return Optional.ofNullable(this.regex); } /** - * @return Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must end with the specified characters. * */ public Optional suffix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatchPath.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatchPath.java index d6b1aa01b1a..7e1b0727ac6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatchPath.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteMatchPath.java @@ -12,26 +12,26 @@ @CustomType public final class RouteSpecHttpRouteMatchPath { /** - * @return Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must match the specified value exactly. * */ private @Nullable String exact; /** - * @return Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must include the specified characters. * */ private @Nullable String regex; private RouteSpecHttpRouteMatchPath() {} /** - * @return Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must match the specified value exactly. * */ public Optional exact() { return Optional.ofNullable(this.exact); } /** - * @return Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * @return Header value sent by the client must include the specified characters. * */ public Optional regex() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteRetryPolicy.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteRetryPolicy.java index c1df7e60ba3..de1badc24f2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteRetryPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/RouteSpecHttpRouteRetryPolicy.java @@ -16,7 +16,6 @@ public final class RouteSpecHttpRouteRetryPolicy { /** * @return List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ private @Nullable List httpRetryEvents; @@ -33,8 +32,6 @@ public final class RouteSpecHttpRouteRetryPolicy { /** * @return List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ private @Nullable List tcpRetryEvents; @@ -42,7 +39,6 @@ private RouteSpecHttpRouteRetryPolicy() {} /** * @return List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). * */ public List httpRetryEvents() { @@ -65,8 +61,6 @@ public RouteSpecHttpRouteRetryPolicyPerRetryTimeout perRetryTimeout() { /** * @return List of TCP retry events. The only valid value is `connection-error`. * - * You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. - * */ public List tcpRetryEvents() { return this.tcpRetryEvents == null ? List.of() : this.tcpRetryEvents; diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerOutlierDetectionInterval.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerOutlierDetectionInterval.java index ee770cb7002..2cb1361a708 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerOutlierDetectionInterval.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerOutlierDetectionInterval.java @@ -16,7 +16,7 @@ public final class VirtualNodeSpecListenerOutlierDetectionInterval { */ private String unit; /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ private Integer value; @@ -30,7 +30,7 @@ public String unit() { return this.unit; } /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ public Integer value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutGrpcPerRequest.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutGrpcPerRequest.java index 22c445d5cd6..390fb15759c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutGrpcPerRequest.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutGrpcPerRequest.java @@ -16,7 +16,7 @@ public final class VirtualNodeSpecListenerTimeoutGrpcPerRequest { */ private String unit; /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ private Integer value; @@ -30,7 +30,7 @@ public String unit() { return this.unit; } /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ public Integer value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutHttp2PerRequest.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutHttp2PerRequest.java index 84f9476f00d..2bba8b098cc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutHttp2PerRequest.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutHttp2PerRequest.java @@ -16,7 +16,7 @@ public final class VirtualNodeSpecListenerTimeoutHttp2PerRequest { */ private String unit; /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ private Integer value; @@ -30,7 +30,7 @@ public String unit() { return this.unit; } /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ public Integer value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutHttpPerRequest.java b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutHttpPerRequest.java index 06240dd0773..f18717e5535 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutHttpPerRequest.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appmesh/outputs/VirtualNodeSpecListenerTimeoutHttpPerRequest.java @@ -16,7 +16,7 @@ public final class VirtualNodeSpecListenerTimeoutHttpPerRequest { */ private String unit; /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ private Integer value; @@ -30,7 +30,7 @@ public String unit() { return this.unit; } /** - * @return The specified value for the JSON. Must be between 1 and 100 characters in length. + * @return Number of time units. Minimum value of `0`. * */ public Integer value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateArgs.java index b7ffd0ea8d5..ba544661425 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateArgs.java @@ -18,14 +18,14 @@ public final class GroupMixedInstancesPolicyLaunchTemplateArgs extends com.pulum public static final GroupMixedInstancesPolicyLaunchTemplateArgs Empty = new GroupMixedInstancesPolicyLaunchTemplateArgs(); /** - * Nested argument defines the Launch Template. Defined below. + * Override the instance launch template specification in the Launch Template. * */ @Import(name="launchTemplateSpecification", required=true) private Output launchTemplateSpecification; /** - * @return Nested argument defines the Launch Template. Defined below. + * @return Override the instance launch template specification in the Launch Template. * */ public Output launchTemplateSpecification() { @@ -73,7 +73,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateArgs defaults) { } /** - * @param launchTemplateSpecification Nested argument defines the Launch Template. Defined below. + * @param launchTemplateSpecification Override the instance launch template specification in the Launch Template. * * @return builder * @@ -84,7 +84,7 @@ public Builder launchTemplateSpecification(Output> instanceType() { } /** - * Nested argument defines the Launch Template. Defined below. + * Override the instance launch template specification in the Launch Template. * */ @Import(name="launchTemplateSpecification") private @Nullable Output launchTemplateSpecification; /** - * @return Nested argument defines the Launch Template. Defined below. + * @return Override the instance launch template specification in the Launch Template. * */ public Optional> launchTemplateSpecification() { @@ -147,7 +147,7 @@ public Builder instanceType(String instanceType) { } /** - * @param launchTemplateSpecification Nested argument defines the Launch Template. Defined below. + * @param launchTemplateSpecification Override the instance launch template specification in the Launch Template. * * @return builder * @@ -158,7 +158,7 @@ public Builder launchTemplateSpecification(@Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequiremen } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java index 60411193748..4e07567b6a8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java @@ -16,14 +16,14 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir public static final GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs Empty = new GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequiremen } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java index 4b755dadd4d..b0a200642e1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java @@ -16,14 +16,14 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir public static final GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs Empty = new GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequiremen } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java index c0c52cb856b..0251f49f05a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java @@ -16,14 +16,14 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir public static final GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs Empty = new GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequiremen } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.java index 45fa2bf183a..11c7eae0ce0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.java @@ -16,14 +16,14 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir public static final GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs Empty = new GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequiremen } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java index b103269958d..ddde744d8bb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java @@ -16,14 +16,14 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir public static final GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs Empty = new GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequiremen } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs.java index 571f253da28..c6fd592b67c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs.java @@ -16,14 +16,14 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir public static final GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs Empty = new GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequiremen } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs.java index c126f6ef2b7..d6ad2dbb96c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs.java @@ -16,14 +16,14 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir public static final GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs Empty = new GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequiremen } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.java index 18460619e4f..f0cb4925c58 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.java @@ -16,14 +16,14 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir public static final GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs Empty = new GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequiremen } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplate.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplate.java index 87a3eaf9db4..a110b8b7d0e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplate.java @@ -13,7 +13,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplate { /** - * @return Nested argument defines the Launch Template. Defined below. + * @return Override the instance launch template specification in the Launch Template. * */ private GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification launchTemplateSpecification; @@ -25,7 +25,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplate { private GroupMixedInstancesPolicyLaunchTemplate() {} /** - * @return Nested argument defines the Launch Template. Defined below. + * @return Override the instance launch template specification in the Launch Template. * */ public GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification launchTemplateSpecification() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverride.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverride.java index 96f300a8c16..08ba9b08cb7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverride.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverride.java @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverride { */ private @Nullable String instanceType; /** - * @return Nested argument defines the Launch Template. Defined below. + * @return Override the instance launch template specification in the Launch Template. * */ private @Nullable GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification launchTemplateSpecification; @@ -50,7 +50,7 @@ public Optional instanceType() { return Optional.ofNullable(this.instanceType); } /** - * @return Nested argument defines the Launch Template. Defined below. + * @return Override the instance launch template specification in the Launch Template. * */ public Optional launchTemplateSpecification() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount.java index 0e1990fd328..4171c1d6aa4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount.java @@ -12,7 +12,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir private GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java index 799cfc82cea..3733b815343 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java @@ -12,7 +12,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir private GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java index 0066b412fff..03b320c6f8e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java @@ -12,7 +12,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir private GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu.java index be361ec65a9..9dd52166fd5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu.java @@ -12,7 +12,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Double max; @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir private GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib.java index 4b0b9f26796..e52b58bc6e7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib.java @@ -12,7 +12,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir private GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps.java index 0976b467c3a..9efa555ff27 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps.java @@ -12,7 +12,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Double max; @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir private GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount.java index 51e0cdcf236..99dfddd5da0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount.java @@ -12,7 +12,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir private GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb.java index 6fd5e4463b4..7cd2c218f35 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb.java @@ -12,7 +12,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Double max; @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir private GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount.java index e114557cb96..5ec302c8234 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount.java @@ -12,7 +12,7 @@ @CustomType public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequir private GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.java index 157da7b26d0..0accbc42bf2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.java @@ -34,14 +34,14 @@ public Optional>> callAnalyticsStreamCategories() { } /** - * Labels all personally identifiable information (PII) identified in Utterance events. + * Labels all personally identifiable information (PII) identified in Transcript events. * */ @Import(name="contentIdentificationType") private @Nullable Output contentIdentificationType; /** - * @return Labels all personally identifiable information (PII) identified in Utterance events. + * @return Labels all personally identifiable information (PII) identified in Transcript events. * */ public Optional> contentIdentificationType() { @@ -49,14 +49,14 @@ public Optional> contentIdentificationType() { } /** - * Redacts all personally identifiable information (PII) identified in Utterance events. + * Redacts all personally identifiable information (PII) identified in Transcript events. * */ @Import(name="contentRedactionType") private @Nullable Output contentRedactionType; /** - * @return Redacts all personally identifiable information (PII) identified in Utterance events. + * @return Redacts all personally identifiable information (PII) identified in Transcript events. * */ public Optional> contentRedactionType() { @@ -64,14 +64,14 @@ public Optional> contentRedactionType() { } /** - * Enables partial result stabilization in Utterance events. + * Enables partial result stabilization in Transcript events. * */ @Import(name="enablePartialResultsStabilization") private @Nullable Output enablePartialResultsStabilization; /** - * @return Enables partial result stabilization in Utterance events. + * @return Enables partial result stabilization in Transcript events. * */ public Optional> enablePartialResultsStabilization() { @@ -139,14 +139,14 @@ public Optional> partialResultsStability() { } /** - * Types of personally identifiable information (PII) to redact from an Utterance event. + * Types of personally identifiable information (PII) to redact from a Transcript event. * */ @Import(name="piiEntityTypes") private @Nullable Output piiEntityTypes; /** - * @return Types of personally identifiable information (PII) to redact from an Utterance event. + * @return Types of personally identifiable information (PII) to redact from a Transcript event. * */ public Optional> piiEntityTypes() { @@ -169,14 +169,14 @@ public Optional vocabularyFilterMethod; /** - * @return Method for applying a vocabulary filter to Utterance events. + * @return Method for applying a vocabulary filter to Transcript events. * */ public Optional> vocabularyFilterMethod() { @@ -184,14 +184,14 @@ public Optional> vocabularyFilterMethod() { } /** - * Name of the custom vocabulary filter to use when processing Utterance events. + * Name of the custom vocabulary filter to use when processing Transcript events. * */ @Import(name="vocabularyFilterName") private @Nullable Output vocabularyFilterName; /** - * @return Name of the custom vocabulary filter to use when processing Utterance events. + * @return Name of the custom vocabulary filter to use when processing Transcript events. * */ public Optional> vocabularyFilterName() { @@ -199,14 +199,14 @@ public Optional> vocabularyFilterName() { } /** - * Name of the custom vocabulary to use when processing Utterance events. + * Name of the custom vocabulary to use when processing Transcript events. * */ @Import(name="vocabularyName") private @Nullable Output vocabularyName; /** - * @return Name of the custom vocabulary to use when processing Utterance events. + * @return Name of the custom vocabulary to use when processing Transcript events. * */ public Optional> vocabularyName() { @@ -281,7 +281,7 @@ public Builder callAnalyticsStreamCategories(String... callAnalyticsStreamCatego } /** - * @param contentIdentificationType Labels all personally identifiable information (PII) identified in Utterance events. + * @param contentIdentificationType Labels all personally identifiable information (PII) identified in Transcript events. * * @return builder * @@ -292,7 +292,7 @@ public Builder contentIdentificationType(@Nullable Output contentIdentif } /** - * @param contentIdentificationType Labels all personally identifiable information (PII) identified in Utterance events. + * @param contentIdentificationType Labels all personally identifiable information (PII) identified in Transcript events. * * @return builder * @@ -302,7 +302,7 @@ public Builder contentIdentificationType(String contentIdentificationType) { } /** - * @param contentRedactionType Redacts all personally identifiable information (PII) identified in Utterance events. + * @param contentRedactionType Redacts all personally identifiable information (PII) identified in Transcript events. * * @return builder * @@ -313,7 +313,7 @@ public Builder contentRedactionType(@Nullable Output contentRedactionTyp } /** - * @param contentRedactionType Redacts all personally identifiable information (PII) identified in Utterance events. + * @param contentRedactionType Redacts all personally identifiable information (PII) identified in Transcript events. * * @return builder * @@ -323,7 +323,7 @@ public Builder contentRedactionType(String contentRedactionType) { } /** - * @param enablePartialResultsStabilization Enables partial result stabilization in Utterance events. + * @param enablePartialResultsStabilization Enables partial result stabilization in Transcript events. * * @return builder * @@ -334,7 +334,7 @@ public Builder enablePartialResultsStabilization(@Nullable Output enabl } /** - * @param enablePartialResultsStabilization Enables partial result stabilization in Utterance events. + * @param enablePartialResultsStabilization Enables partial result stabilization in Transcript events. * * @return builder * @@ -428,7 +428,7 @@ public Builder partialResultsStability(String partialResultsStability) { } /** - * @param piiEntityTypes Types of personally identifiable information (PII) to redact from an Utterance event. + * @param piiEntityTypes Types of personally identifiable information (PII) to redact from a Transcript event. * * @return builder * @@ -439,7 +439,7 @@ public Builder piiEntityTypes(@Nullable Output piiEntityTypes) { } /** - * @param piiEntityTypes Types of personally identifiable information (PII) to redact from an Utterance event. + * @param piiEntityTypes Types of personally identifiable information (PII) to redact from a Transcript event. * * @return builder * @@ -470,7 +470,7 @@ public Builder postCallAnalyticsSettings(MediaInsightsPipelineConfigurationEleme } /** - * @param vocabularyFilterMethod Method for applying a vocabulary filter to Utterance events. + * @param vocabularyFilterMethod Method for applying a vocabulary filter to Transcript events. * * @return builder * @@ -481,7 +481,7 @@ public Builder vocabularyFilterMethod(@Nullable Output vocabularyFilterM } /** - * @param vocabularyFilterMethod Method for applying a vocabulary filter to Utterance events. + * @param vocabularyFilterMethod Method for applying a vocabulary filter to Transcript events. * * @return builder * @@ -491,7 +491,7 @@ public Builder vocabularyFilterMethod(String vocabularyFilterMethod) { } /** - * @param vocabularyFilterName Name of the custom vocabulary filter to use when processing Utterance events. + * @param vocabularyFilterName Name of the custom vocabulary filter to use when processing Transcript events. * * @return builder * @@ -502,7 +502,7 @@ public Builder vocabularyFilterName(@Nullable Output vocabularyFilterNam } /** - * @param vocabularyFilterName Name of the custom vocabulary filter to use when processing Utterance events. + * @param vocabularyFilterName Name of the custom vocabulary filter to use when processing Transcript events. * * @return builder * @@ -512,7 +512,7 @@ public Builder vocabularyFilterName(String vocabularyFilterName) { } /** - * @param vocabularyName Name of the custom vocabulary to use when processing Utterance events. + * @param vocabularyName Name of the custom vocabulary to use when processing Transcript events. * * @return builder * @@ -523,7 +523,7 @@ public Builder vocabularyName(@Nullable Output vocabularyName) { } /** - * @param vocabularyName Name of the custom vocabulary to use when processing Utterance events. + * @param vocabularyName Name of the custom vocabulary to use when processing Transcript events. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs.java index f9999fb80da..254b1ab46c5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs.java @@ -17,14 +17,14 @@ public final class MediaInsightsPipelineConfigurationElementAmazonTranscribeProc public static final MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs Empty = new MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs(); /** - * Labels all personally identifiable information (PII) identified in Utterance events. + * Labels all personally identifiable information (PII) identified in Transcript events. * */ @Import(name="contentIdentificationType") private @Nullable Output contentIdentificationType; /** - * @return Labels all personally identifiable information (PII) identified in Utterance events. + * @return Labels all personally identifiable information (PII) identified in Transcript events. * */ public Optional> contentIdentificationType() { @@ -32,14 +32,14 @@ public Optional> contentIdentificationType() { } /** - * Redacts all personally identifiable information (PII) identified in Utterance events. + * Redacts all personally identifiable information (PII) identified in Transcript events. * */ @Import(name="contentRedactionType") private @Nullable Output contentRedactionType; /** - * @return Redacts all personally identifiable information (PII) identified in Utterance events. + * @return Redacts all personally identifiable information (PII) identified in Transcript events. * */ public Optional> contentRedactionType() { @@ -47,14 +47,14 @@ public Optional> contentRedactionType() { } /** - * Enables partial result stabilization in Utterance events. + * Enables partial result stabilization in Transcript events. * */ @Import(name="enablePartialResultsStabilization") private @Nullable Output enablePartialResultsStabilization; /** - * @return Enables partial result stabilization in Utterance events. + * @return Enables partial result stabilization in Transcript events. * */ public Optional> enablePartialResultsStabilization() { @@ -122,14 +122,14 @@ public Optional> partialResultsStability() { } /** - * Types of personally identifiable information (PII) to redact from an Utterance event. + * Types of personally identifiable information (PII) to redact from a Transcript event. * */ @Import(name="piiEntityTypes") private @Nullable Output piiEntityTypes; /** - * @return Types of personally identifiable information (PII) to redact from an Utterance event. + * @return Types of personally identifiable information (PII) to redact from a Transcript event. * */ public Optional> piiEntityTypes() { @@ -152,14 +152,14 @@ public Optional> showSpeakerLabel() { } /** - * Method for applying a vocabulary filter to Utterance events. + * Method for applying a vocabulary filter to Transcript events. * */ @Import(name="vocabularyFilterMethod") private @Nullable Output vocabularyFilterMethod; /** - * @return Method for applying a vocabulary filter to Utterance events. + * @return Method for applying a vocabulary filter to Transcript events. * */ public Optional> vocabularyFilterMethod() { @@ -167,14 +167,14 @@ public Optional> vocabularyFilterMethod() { } /** - * Name of the custom vocabulary filter to use when processing Utterance events. + * Name of the custom vocabulary filter to use when processing Transcript events. * */ @Import(name="vocabularyFilterName") private @Nullable Output vocabularyFilterName; /** - * @return Name of the custom vocabulary filter to use when processing Utterance events. + * @return Name of the custom vocabulary filter to use when processing Transcript events. * */ public Optional> vocabularyFilterName() { @@ -182,14 +182,14 @@ public Optional> vocabularyFilterName() { } /** - * Name of the custom vocabulary to use when processing Utterance events. + * Name of the custom vocabulary to use when processing Transcript events. * */ @Import(name="vocabularyName") private @Nullable Output vocabularyName; /** - * @return Name of the custom vocabulary to use when processing Utterance events. + * @return Name of the custom vocabulary to use when processing Transcript events. * */ public Optional> vocabularyName() { @@ -232,7 +232,7 @@ public Builder(MediaInsightsPipelineConfigurationElementAmazonTranscribeProcesso } /** - * @param contentIdentificationType Labels all personally identifiable information (PII) identified in Utterance events. + * @param contentIdentificationType Labels all personally identifiable information (PII) identified in Transcript events. * * @return builder * @@ -243,7 +243,7 @@ public Builder contentIdentificationType(@Nullable Output contentIdentif } /** - * @param contentIdentificationType Labels all personally identifiable information (PII) identified in Utterance events. + * @param contentIdentificationType Labels all personally identifiable information (PII) identified in Transcript events. * * @return builder * @@ -253,7 +253,7 @@ public Builder contentIdentificationType(String contentIdentificationType) { } /** - * @param contentRedactionType Redacts all personally identifiable information (PII) identified in Utterance events. + * @param contentRedactionType Redacts all personally identifiable information (PII) identified in Transcript events. * * @return builder * @@ -264,7 +264,7 @@ public Builder contentRedactionType(@Nullable Output contentRedactionTyp } /** - * @param contentRedactionType Redacts all personally identifiable information (PII) identified in Utterance events. + * @param contentRedactionType Redacts all personally identifiable information (PII) identified in Transcript events. * * @return builder * @@ -274,7 +274,7 @@ public Builder contentRedactionType(String contentRedactionType) { } /** - * @param enablePartialResultsStabilization Enables partial result stabilization in Utterance events. + * @param enablePartialResultsStabilization Enables partial result stabilization in Transcript events. * * @return builder * @@ -285,7 +285,7 @@ public Builder enablePartialResultsStabilization(@Nullable Output enabl } /** - * @param enablePartialResultsStabilization Enables partial result stabilization in Utterance events. + * @param enablePartialResultsStabilization Enables partial result stabilization in Transcript events. * * @return builder * @@ -379,7 +379,7 @@ public Builder partialResultsStability(String partialResultsStability) { } /** - * @param piiEntityTypes Types of personally identifiable information (PII) to redact from an Utterance event. + * @param piiEntityTypes Types of personally identifiable information (PII) to redact from a Transcript event. * * @return builder * @@ -390,7 +390,7 @@ public Builder piiEntityTypes(@Nullable Output piiEntityTypes) { } /** - * @param piiEntityTypes Types of personally identifiable information (PII) to redact from an Utterance event. + * @param piiEntityTypes Types of personally identifiable information (PII) to redact from a Transcript event. * * @return builder * @@ -421,7 +421,7 @@ public Builder showSpeakerLabel(Boolean showSpeakerLabel) { } /** - * @param vocabularyFilterMethod Method for applying a vocabulary filter to Utterance events. + * @param vocabularyFilterMethod Method for applying a vocabulary filter to Transcript events. * * @return builder * @@ -432,7 +432,7 @@ public Builder vocabularyFilterMethod(@Nullable Output vocabularyFilterM } /** - * @param vocabularyFilterMethod Method for applying a vocabulary filter to Utterance events. + * @param vocabularyFilterMethod Method for applying a vocabulary filter to Transcript events. * * @return builder * @@ -442,7 +442,7 @@ public Builder vocabularyFilterMethod(String vocabularyFilterMethod) { } /** - * @param vocabularyFilterName Name of the custom vocabulary filter to use when processing Utterance events. + * @param vocabularyFilterName Name of the custom vocabulary filter to use when processing Transcript events. * * @return builder * @@ -453,7 +453,7 @@ public Builder vocabularyFilterName(@Nullable Output vocabularyFilterNam } /** - * @param vocabularyFilterName Name of the custom vocabulary filter to use when processing Utterance events. + * @param vocabularyFilterName Name of the custom vocabulary filter to use when processing Transcript events. * * @return builder * @@ -463,7 +463,7 @@ public Builder vocabularyFilterName(String vocabularyFilterName) { } /** - * @param vocabularyName Name of the custom vocabulary to use when processing Utterance events. + * @param vocabularyName Name of the custom vocabulary to use when processing Transcript events. * * @return builder * @@ -474,7 +474,7 @@ public Builder vocabularyName(@Nullable Output vocabularyName) { } /** - * @param vocabularyName Name of the custom vocabulary to use when processing Utterance events. + * @param vocabularyName Name of the custom vocabulary to use when processing Transcript events. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.java index 529163b367d..d81eb836651 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.java @@ -14,14 +14,14 @@ public final class MediaInsightsPipelineConfigurationElementKinesisDataStreamSin public static final MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs Empty = new MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs(); /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. * */ @Import(name="insightsTarget", required=true) private Output insightsTarget; /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ public Output insightsTarget() { @@ -53,7 +53,7 @@ public Builder(MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkCon } /** - * @param insightsTarget Kinesis Data Stream to deliver results. + * @param insightsTarget SQS queue to deliver results. * * @return builder * @@ -64,7 +64,7 @@ public Builder insightsTarget(Output insightsTarget) { } /** - * @param insightsTarget Kinesis Data Stream to deliver results. + * @param insightsTarget SQS queue to deliver results. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs.java index a9f7ecc4947..a16589f17f1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs.java @@ -14,14 +14,14 @@ public final class MediaInsightsPipelineConfigurationElementLambdaFunctionSinkCo public static final MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs Empty = new MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs(); /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. * */ @Import(name="insightsTarget", required=true) private Output insightsTarget; /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ public Output insightsTarget() { @@ -53,7 +53,7 @@ public Builder(MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfig } /** - * @param insightsTarget Kinesis Data Stream to deliver results. + * @param insightsTarget SQS queue to deliver results. * * @return builder * @@ -64,7 +64,7 @@ public Builder insightsTarget(Output insightsTarget) { } /** - * @param insightsTarget Kinesis Data Stream to deliver results. + * @param insightsTarget SQS queue to deliver results. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs.java index 39ab0a9a78c..2b5bff0dfc3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs.java @@ -14,14 +14,14 @@ public final class MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigur public static final MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs Empty = new MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs(); /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. * */ @Import(name="insightsTarget", required=true) private Output insightsTarget; /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ public Output insightsTarget() { @@ -53,7 +53,7 @@ public Builder(MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguratio } /** - * @param insightsTarget Kinesis Data Stream to deliver results. + * @param insightsTarget SQS queue to deliver results. * * @return builder * @@ -64,7 +64,7 @@ public Builder insightsTarget(Output insightsTarget) { } /** - * @param insightsTarget Kinesis Data Stream to deliver results. + * @param insightsTarget SQS queue to deliver results. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs.java index 764532ef211..2731282a084 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/inputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs.java @@ -14,14 +14,14 @@ public final class MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigur public static final MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs Empty = new MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs(); /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. * */ @Import(name="insightsTarget", required=true) private Output insightsTarget; /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ public Output insightsTarget() { @@ -53,7 +53,7 @@ public Builder(MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguratio } /** - * @param insightsTarget Kinesis Data Stream to deliver results. + * @param insightsTarget SQS queue to deliver results. * * @return builder * @@ -64,7 +64,7 @@ public Builder insightsTarget(Output insightsTarget) { } /** - * @param insightsTarget Kinesis Data Stream to deliver results. + * @param insightsTarget SQS queue to deliver results. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration.java index 270c0aa7429..3b6fb145d15 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration.java @@ -20,17 +20,17 @@ public final class MediaInsightsPipelineConfigurationElementAmazonTranscribeCall */ private @Nullable List callAnalyticsStreamCategories; /** - * @return Labels all personally identifiable information (PII) identified in Utterance events. + * @return Labels all personally identifiable information (PII) identified in Transcript events. * */ private @Nullable String contentIdentificationType; /** - * @return Redacts all personally identifiable information (PII) identified in Utterance events. + * @return Redacts all personally identifiable information (PII) identified in Transcript events. * */ private @Nullable String contentRedactionType; /** - * @return Enables partial result stabilization in Utterance events. + * @return Enables partial result stabilization in Transcript events. * */ private @Nullable Boolean enablePartialResultsStabilization; @@ -55,7 +55,7 @@ public final class MediaInsightsPipelineConfigurationElementAmazonTranscribeCall */ private @Nullable String partialResultsStability; /** - * @return Types of personally identifiable information (PII) to redact from an Utterance event. + * @return Types of personally identifiable information (PII) to redact from a Transcript event. * */ private @Nullable String piiEntityTypes; @@ -65,17 +65,17 @@ public final class MediaInsightsPipelineConfigurationElementAmazonTranscribeCall */ private @Nullable MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettings postCallAnalyticsSettings; /** - * @return Method for applying a vocabulary filter to Utterance events. + * @return Method for applying a vocabulary filter to Transcript events. * */ private @Nullable String vocabularyFilterMethod; /** - * @return Name of the custom vocabulary filter to use when processing Utterance events. + * @return Name of the custom vocabulary filter to use when processing Transcript events. * */ private @Nullable String vocabularyFilterName; /** - * @return Name of the custom vocabulary to use when processing Utterance events. + * @return Name of the custom vocabulary to use when processing Transcript events. * */ private @Nullable String vocabularyName; @@ -89,21 +89,21 @@ public List callAnalyticsStreamCategories() { return this.callAnalyticsStreamCategories == null ? List.of() : this.callAnalyticsStreamCategories; } /** - * @return Labels all personally identifiable information (PII) identified in Utterance events. + * @return Labels all personally identifiable information (PII) identified in Transcript events. * */ public Optional contentIdentificationType() { return Optional.ofNullable(this.contentIdentificationType); } /** - * @return Redacts all personally identifiable information (PII) identified in Utterance events. + * @return Redacts all personally identifiable information (PII) identified in Transcript events. * */ public Optional contentRedactionType() { return Optional.ofNullable(this.contentRedactionType); } /** - * @return Enables partial result stabilization in Utterance events. + * @return Enables partial result stabilization in Transcript events. * */ public Optional enablePartialResultsStabilization() { @@ -138,7 +138,7 @@ public Optional partialResultsStability() { return Optional.ofNullable(this.partialResultsStability); } /** - * @return Types of personally identifiable information (PII) to redact from an Utterance event. + * @return Types of personally identifiable information (PII) to redact from a Transcript event. * */ public Optional piiEntityTypes() { @@ -152,21 +152,21 @@ public Optional vocabularyFilterMethod() { return Optional.ofNullable(this.vocabularyFilterMethod); } /** - * @return Name of the custom vocabulary filter to use when processing Utterance events. + * @return Name of the custom vocabulary filter to use when processing Transcript events. * */ public Optional vocabularyFilterName() { return Optional.ofNullable(this.vocabularyFilterName); } /** - * @return Name of the custom vocabulary to use when processing Utterance events. + * @return Name of the custom vocabulary to use when processing Transcript events. * */ public Optional vocabularyName() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration.java index 31966df8de1..b8a5d982d2c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration.java @@ -13,17 +13,17 @@ @CustomType public final class MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration { /** - * @return Labels all personally identifiable information (PII) identified in Utterance events. + * @return Labels all personally identifiable information (PII) identified in Transcript events. * */ private @Nullable String contentIdentificationType; /** - * @return Redacts all personally identifiable information (PII) identified in Utterance events. + * @return Redacts all personally identifiable information (PII) identified in Transcript events. * */ private @Nullable String contentRedactionType; /** - * @return Enables partial result stabilization in Utterance events. + * @return Enables partial result stabilization in Transcript events. * */ private @Nullable Boolean enablePartialResultsStabilization; @@ -48,7 +48,7 @@ public final class MediaInsightsPipelineConfigurationElementAmazonTranscribeProc */ private @Nullable String partialResultsStability; /** - * @return Types of personally identifiable information (PII) to redact from an Utterance event. + * @return Types of personally identifiable information (PII) to redact from a Transcript event. * */ private @Nullable String piiEntityTypes; @@ -58,38 +58,38 @@ public final class MediaInsightsPipelineConfigurationElementAmazonTranscribeProc */ private @Nullable Boolean showSpeakerLabel; /** - * @return Method for applying a vocabulary filter to Utterance events. + * @return Method for applying a vocabulary filter to Transcript events. * */ private @Nullable String vocabularyFilterMethod; /** - * @return Name of the custom vocabulary filter to use when processing Utterance events. + * @return Name of the custom vocabulary filter to use when processing Transcript events. * */ private @Nullable String vocabularyFilterName; /** - * @return Name of the custom vocabulary to use when processing Utterance events. + * @return Name of the custom vocabulary to use when processing Transcript events. * */ private @Nullable String vocabularyName; private MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration() {} /** - * @return Labels all personally identifiable information (PII) identified in Utterance events. + * @return Labels all personally identifiable information (PII) identified in Transcript events. * */ public Optional contentIdentificationType() { return Optional.ofNullable(this.contentIdentificationType); } /** - * @return Redacts all personally identifiable information (PII) identified in Utterance events. + * @return Redacts all personally identifiable information (PII) identified in Transcript events. * */ public Optional contentRedactionType() { return Optional.ofNullable(this.contentRedactionType); } /** - * @return Enables partial result stabilization in Utterance events. + * @return Enables partial result stabilization in Transcript events. * */ public Optional enablePartialResultsStabilization() { @@ -124,7 +124,7 @@ public Optional partialResultsStability() { return Optional.ofNullable(this.partialResultsStability); } /** - * @return Types of personally identifiable information (PII) to redact from an Utterance event. + * @return Types of personally identifiable information (PII) to redact from a Transcript event. * */ public Optional piiEntityTypes() { @@ -138,21 +138,21 @@ public Optional showSpeakerLabel() { return Optional.ofNullable(this.showSpeakerLabel); } /** - * @return Method for applying a vocabulary filter to Utterance events. + * @return Method for applying a vocabulary filter to Transcript events. * */ public Optional vocabularyFilterMethod() { return Optional.ofNullable(this.vocabularyFilterMethod); } /** - * @return Name of the custom vocabulary filter to use when processing Utterance events. + * @return Name of the custom vocabulary filter to use when processing Transcript events. * */ public Optional vocabularyFilterName() { return Optional.ofNullable(this.vocabularyFilterName); } /** - * @return Name of the custom vocabulary to use when processing Utterance events. + * @return Name of the custom vocabulary to use when processing Transcript events. * */ public Optional vocabularyName() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration.java index 97c94dcb147..227e7df5d8f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration.java @@ -10,14 +10,14 @@ @CustomType public final class MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration { /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ private String insightsTarget; private MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration() {} /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ public String insightsTarget() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration.java index 19634ccf09f..a5b97500717 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration.java @@ -10,14 +10,14 @@ @CustomType public final class MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration { /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ private String insightsTarget; private MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration() {} /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ public String insightsTarget() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration.java index 41d3ed5f823..c6167bf7648 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration.java @@ -10,14 +10,14 @@ @CustomType public final class MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration { /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ private String insightsTarget; private MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration() {} /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ public String insightsTarget() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration.java index fa0fdd9ba2d..8895ccc2a5f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/chimesdkmediapipelines/outputs/MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration.java @@ -10,14 +10,14 @@ @CustomType public final class MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration { /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ private String insightsTarget; private MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration() {} /** - * @return Kinesis Data Stream to deliver results. + * @return SQS queue to deliver results. * */ public String insightsTarget() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/Distribution.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/Distribution.java index 78800ec5da3..5f6ee0d93da 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/Distribution.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/Distribution.java @@ -474,14 +474,14 @@ public Output domainName() { return this.domainName; } /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. * */ @Export(name="enabled", refs={Boolean.class}, tree="[0]") private Output enabled; /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ public Output enabled() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/DistributionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/DistributionArgs.java index c9cb746b03b..ed4db141a3e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/DistributionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/DistributionArgs.java @@ -117,14 +117,14 @@ public Optional> defaultRootObject() { } /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. * */ @Import(name="enabled", required=true) private Output enabled; /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ public Output enabled() { @@ -532,7 +532,7 @@ public Builder defaultRootObject(String defaultRootObject) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * @@ -543,7 +543,7 @@ public Builder enabled(Output enabled) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs.java index 87426e9efa4..5c91298b294 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs.java @@ -16,9 +16,17 @@ public final class CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesCon public static final CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs Empty = new CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs(); + /** + * List of item names, such as cookies, headers, or query strings. + * + */ @Import(name="items") private @Nullable Output> items; + /** + * @return List of item names, such as cookies, headers, or query strings. + * + */ public Optional>> items() { return Optional.ofNullable(this.items); } @@ -47,15 +55,33 @@ public Builder(CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigC $ = new CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs(Objects.requireNonNull(defaults)); } + /** + * @param items List of item names, such as cookies, headers, or query strings. + * + * @return builder + * + */ public Builder items(@Nullable Output> items) { $.items = items; return this; } + /** + * @param items List of item names, such as cookies, headers, or query strings. + * + * @return builder + * + */ public Builder items(List items) { return items(Output.of(items)); } + /** + * @param items List of item names, such as cookies, headers, or query strings. + * + * @return builder + * + */ public Builder items(String... items) { return items(List.of(items)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs.java index 75774c5d1a4..ced96512645 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs.java @@ -16,9 +16,17 @@ public final class CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersCon public static final CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs Empty = new CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs(); + /** + * List of item names, such as cookies, headers, or query strings. + * + */ @Import(name="items") private @Nullable Output> items; + /** + * @return List of item names, such as cookies, headers, or query strings. + * + */ public Optional>> items() { return Optional.ofNullable(this.items); } @@ -47,15 +55,33 @@ public Builder(CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigH $ = new CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs(Objects.requireNonNull(defaults)); } + /** + * @param items List of item names, such as cookies, headers, or query strings. + * + * @return builder + * + */ public Builder items(@Nullable Output> items) { $.items = items; return this; } + /** + * @param items List of item names, such as cookies, headers, or query strings. + * + * @return builder + * + */ public Builder items(List items) { return items(Output.of(items)); } + /** + * @param items List of item names, such as cookies, headers, or query strings. + * + * @return builder + * + */ public Builder items(String... items) { return items(List.of(items)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs.java index 6ca47940f8c..57fa84e1cf3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs.java @@ -16,9 +16,17 @@ public final class CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStrin public static final CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs Empty = new CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs(); + /** + * List of item names, such as cookies, headers, or query strings. + * + */ @Import(name="items") private @Nullable Output> items; + /** + * @return List of item names, such as cookies, headers, or query strings. + * + */ public Optional>> items() { return Optional.ofNullable(this.items); } @@ -47,15 +55,33 @@ public Builder(CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsCo $ = new CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs(Objects.requireNonNull(defaults)); } + /** + * @param items List of item names, such as cookies, headers, or query strings. + * + * @return builder + * + */ public Builder items(@Nullable Output> items) { $.items = items; return this; } + /** + * @param items List of item names, such as cookies, headers, or query strings. + * + * @return builder + * + */ public Builder items(List items) { return items(Output.of(items)); } + /** + * @param items List of item names, such as cookies, headers, or query strings. + * + * @return builder + * + */ public Builder items(String... items) { return items(List.of(items)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginArgs.java index 9982663a00c..5943005ca3d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginArgs.java @@ -112,14 +112,14 @@ public Optional> originAccessControlId() { } /** - * Unique identifier for the origin. + * Unique identifier of the member origin. * */ @Import(name="originId", required=true) private Output originId; /** - * @return Unique identifier for the origin. + * @return Unique identifier of the member origin. * */ public Output originId() { @@ -341,7 +341,7 @@ public Builder originAccessControlId(String originAccessControlId) { } /** - * @param originId Unique identifier for the origin. + * @param originId Unique identifier of the member origin. * * @return builder * @@ -352,7 +352,7 @@ public Builder originId(Output originId) { } /** - * @param originId Unique identifier for the origin. + * @param originId Unique identifier of the member origin. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginGroupArgs.java index 7122b045b5d..c4777f28e50 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginGroupArgs.java @@ -47,14 +47,14 @@ public Output> members() { } /** - * Unique identifier for the origin. + * Unique identifier of the member origin. * */ @Import(name="originId", required=true) private Output originId; /** - * @return Unique identifier for the origin. + * @return Unique identifier of the member origin. * */ public Output originId() { @@ -140,7 +140,7 @@ public Builder members(DistributionOriginGroupMemberArgs... members) { } /** - * @param originId Unique identifier for the origin. + * @param originId Unique identifier of the member origin. * * @return builder * @@ -151,7 +151,7 @@ public Builder originId(Output originId) { } /** - * @param originId Unique identifier for the origin. + * @param originId Unique identifier of the member origin. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginGroupMemberArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginGroupMemberArgs.java index 7cd98aba720..9921662e39c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginGroupMemberArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginGroupMemberArgs.java @@ -14,14 +14,14 @@ public final class DistributionOriginGroupMemberArgs extends com.pulumi.resource public static final DistributionOriginGroupMemberArgs Empty = new DistributionOriginGroupMemberArgs(); /** - * Unique identifier for the origin. + * Unique identifier of the member origin. * */ @Import(name="originId", required=true) private Output originId; /** - * @return Unique identifier for the origin. + * @return Unique identifier of the member origin. * */ public Output originId() { @@ -53,7 +53,7 @@ public Builder(DistributionOriginGroupMemberArgs defaults) { } /** - * @param originId Unique identifier for the origin. + * @param originId Unique identifier of the member origin. * * @return builder * @@ -64,7 +64,7 @@ public Builder originId(Output originId) { } /** - * @param originId Unique identifier for the origin. + * @param originId Unique identifier of the member origin. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginOriginShieldArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginOriginShieldArgs.java index fb957f0b557..0a3c4f765f7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginOriginShieldArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginOriginShieldArgs.java @@ -17,14 +17,14 @@ public final class DistributionOriginOriginShieldArgs extends com.pulumi.resourc public static final DistributionOriginOriginShieldArgs Empty = new DistributionOriginOriginShieldArgs(); /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. * */ @Import(name="enabled", required=true) private Output enabled; /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ public Output enabled() { @@ -72,7 +72,7 @@ public Builder(DistributionOriginOriginShieldArgs defaults) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * @@ -83,7 +83,7 @@ public Builder enabled(Output enabled) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionState.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionState.java index 43d3115866b..d1f80418405 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionState.java @@ -165,14 +165,14 @@ public Optional> domainName() { } /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. * */ @Import(name="enabled") private @Nullable Output enabled; /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ public Optional> enabled() { @@ -782,7 +782,7 @@ public Builder domainName(String domainName) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * @@ -793,7 +793,7 @@ public Builder enabled(@Nullable Output enabled) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionTrustedKeyGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionTrustedKeyGroupArgs.java index ced45d81e49..b3b1837d469 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionTrustedKeyGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionTrustedKeyGroupArgs.java @@ -18,14 +18,14 @@ public final class DistributionTrustedKeyGroupArgs extends com.pulumi.resources. public static final DistributionTrustedKeyGroupArgs Empty = new DistributionTrustedKeyGroupArgs(); /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. * */ @Import(name="enabled") private @Nullable Output enabled; /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ public Optional> enabled() { @@ -73,7 +73,7 @@ public Builder(DistributionTrustedKeyGroupArgs defaults) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * @@ -84,7 +84,7 @@ public Builder enabled(@Nullable Output enabled) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionTrustedSignerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionTrustedSignerArgs.java index fcb79c58d99..3ca478370e7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionTrustedSignerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionTrustedSignerArgs.java @@ -18,14 +18,14 @@ public final class DistributionTrustedSignerArgs extends com.pulumi.resources.Re public static final DistributionTrustedSignerArgs Empty = new DistributionTrustedSignerArgs(); /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. * */ @Import(name="enabled") private @Nullable Output enabled; /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ public Optional> enabled() { @@ -73,7 +73,7 @@ public Builder(DistributionTrustedSignerArgs defaults) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * @@ -84,7 +84,7 @@ public Builder enabled(@Nullable Output enabled) { } /** - * @param enabled Whether the distribution is enabled to accept end user requests for content. + * @param enabled Whether Origin Shield is enabled. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/ResponseHeadersPolicyCustomHeadersConfigItemArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/ResponseHeadersPolicyCustomHeadersConfigItemArgs.java index 407c4fbd2a7..65244074911 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/ResponseHeadersPolicyCustomHeadersConfigItemArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/ResponseHeadersPolicyCustomHeadersConfigItemArgs.java @@ -30,14 +30,14 @@ public Output header() { } /** - * Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + * Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. * */ @Import(name="override", required=true) private Output override; /** - * @return Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + * @return Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. * */ public Output override() { @@ -107,7 +107,7 @@ public Builder header(String header) { } /** - * @param override Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + * @param override Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. * * @return builder * @@ -118,7 +118,7 @@ public Builder override(Output override) { } /** - * @param override Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + * @param override Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies.java index 6e7682d10b7..0f9457c6d4c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies.java @@ -11,9 +11,17 @@ @CustomType public final class CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies { + /** + * @return List of item names, such as cookies, headers, or query strings. + * + */ private @Nullable List items; private CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies() {} + /** + * @return List of item names, such as cookies, headers, or query strings. + * + */ public List items() { return this.items == null ? List.of() : this.items; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders.java index 0eadbe16ec3..21b9c41e12d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders.java @@ -11,9 +11,17 @@ @CustomType public final class CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders { + /** + * @return List of item names, such as cookies, headers, or query strings. + * + */ private @Nullable List items; private CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders() {} + /** + * @return List of item names, such as cookies, headers, or query strings. + * + */ public List items() { return this.items == null ? List.of() : this.items; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings.java index 0cea0df80d2..0febe2c4b26 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings.java @@ -11,9 +11,17 @@ @CustomType public final class CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings { + /** + * @return List of item names, such as cookies, headers, or query strings. + * + */ private @Nullable List items; private CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings() {} + /** + * @return List of item names, such as cookies, headers, or query strings. + * + */ public List items() { return this.items == null ? List.of() : this.items; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOrigin.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOrigin.java index 2a825bb9b33..d6b3e5947c6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOrigin.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOrigin.java @@ -48,7 +48,7 @@ public final class DistributionOrigin { */ private @Nullable String originAccessControlId; /** - * @return Unique identifier for the origin. + * @return Unique identifier of the member origin. * */ private String originId; @@ -112,7 +112,7 @@ public Optional originAccessControlId() { return Optional.ofNullable(this.originAccessControlId); } /** - * @return Unique identifier for the origin. + * @return Unique identifier of the member origin. * */ public String originId() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginGroup.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginGroup.java index 84366144e8c..1a07a49fc33 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginGroup.java @@ -23,7 +23,7 @@ public final class DistributionOriginGroup { */ private List members; /** - * @return Unique identifier for the origin. + * @return Unique identifier of the member origin. * */ private String originId; @@ -44,7 +44,7 @@ public List members() { return this.members; } /** - * @return Unique identifier for the origin. + * @return Unique identifier of the member origin. * */ public String originId() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginGroupMember.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginGroupMember.java index dbdbec929f0..438ceb9cc7c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginGroupMember.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginGroupMember.java @@ -10,14 +10,14 @@ @CustomType public final class DistributionOriginGroupMember { /** - * @return Unique identifier for the origin. + * @return Unique identifier of the member origin. * */ private String originId; private DistributionOriginGroupMember() {} /** - * @return Unique identifier for the origin. + * @return Unique identifier of the member origin. * */ public String originId() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginOriginShield.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginOriginShield.java index f6942888683..bd6732fda42 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginOriginShield.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginOriginShield.java @@ -13,7 +13,7 @@ @CustomType public final class DistributionOriginOriginShield { /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ private Boolean enabled; @@ -25,7 +25,7 @@ public final class DistributionOriginOriginShield { private DistributionOriginOriginShield() {} /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ public Boolean enabled() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionTrustedKeyGroup.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionTrustedKeyGroup.java index d9cef4e4882..b8bcd985693 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionTrustedKeyGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionTrustedKeyGroup.java @@ -14,7 +14,7 @@ @CustomType public final class DistributionTrustedKeyGroup { /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ private @Nullable Boolean enabled; @@ -26,7 +26,7 @@ public final class DistributionTrustedKeyGroup { private DistributionTrustedKeyGroup() {} /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ public Optional enabled() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionTrustedSigner.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionTrustedSigner.java index f17733fe9ed..1c5fa80d3ef 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionTrustedSigner.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionTrustedSigner.java @@ -14,7 +14,7 @@ @CustomType public final class DistributionTrustedSigner { /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ private @Nullable Boolean enabled; @@ -26,7 +26,7 @@ public final class DistributionTrustedSigner { private DistributionTrustedSigner() {} /** - * @return Whether the distribution is enabled to accept end user requests for content. + * @return Whether Origin Shield is enabled. * */ public Optional enabled() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/ResponseHeadersPolicyCustomHeadersConfigItem.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/ResponseHeadersPolicyCustomHeadersConfigItem.java index b379a8a1d12..7b7c026c3ab 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/ResponseHeadersPolicyCustomHeadersConfigItem.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/ResponseHeadersPolicyCustomHeadersConfigItem.java @@ -16,7 +16,7 @@ public final class ResponseHeadersPolicyCustomHeadersConfigItem { */ private String header; /** - * @return Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + * @return Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. * */ private Boolean override; @@ -35,7 +35,7 @@ public String header() { return this.header; } /** - * @return Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + * @return Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. * */ public Boolean override() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/ProjectLogsConfigCloudwatchLogsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/ProjectLogsConfigCloudwatchLogsArgs.java index 3c1a293a256..f82322d8e11 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/ProjectLogsConfigCloudwatchLogsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/ProjectLogsConfigCloudwatchLogsArgs.java @@ -31,14 +31,14 @@ public Optional> groupName() { } /** - * Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * */ @Import(name="status") private @Nullable Output status; /** - * @return Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @return Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * */ public Optional> status() { @@ -108,7 +108,7 @@ public Builder groupName(String groupName) { } /** - * @param status Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @param status Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * * @return builder * @@ -119,7 +119,7 @@ public Builder status(@Nullable Output status) { } /** - * @param status Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @param status Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/ProjectLogsConfigS3LogsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/ProjectLogsConfigS3LogsArgs.java index c9a14ad5269..6a78ec881be 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/ProjectLogsConfigS3LogsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codebuild/inputs/ProjectLogsConfigS3LogsArgs.java @@ -62,14 +62,14 @@ public Optional> location() { } /** - * Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * */ @Import(name="status") private @Nullable Output status; /** - * @return Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @return Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * */ public Optional> status() { @@ -167,7 +167,7 @@ public Builder location(String location) { } /** - * @param status Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @param status Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * * @return builder * @@ -178,7 +178,7 @@ public Builder status(@Nullable Output status) { } /** - * @param status Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @param status Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/ProjectLogsConfigCloudwatchLogs.java b/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/ProjectLogsConfigCloudwatchLogs.java index 5699c4685c8..b8c64db7ac5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/ProjectLogsConfigCloudwatchLogs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/ProjectLogsConfigCloudwatchLogs.java @@ -17,7 +17,7 @@ public final class ProjectLogsConfigCloudwatchLogs { */ private @Nullable String groupName; /** - * @return Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @return Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * */ private @Nullable String status; @@ -36,7 +36,7 @@ public Optional groupName() { return Optional.ofNullable(this.groupName); } /** - * @return Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @return Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * */ public Optional status() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/ProjectLogsConfigS3Logs.java b/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/ProjectLogsConfigS3Logs.java index 7665a61af2b..aaf08824be9 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/ProjectLogsConfigS3Logs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codebuild/outputs/ProjectLogsConfigS3Logs.java @@ -28,7 +28,7 @@ public final class ProjectLogsConfigS3Logs { */ private @Nullable String location; /** - * @return Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @return Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * */ private @Nullable String status; @@ -56,7 +56,7 @@ public Optional location() { return Optional.ofNullable(this.location); } /** - * @return Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * @return Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. * */ public Optional status() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs.java index 6342ba88b44..6053362011d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs.java @@ -29,9 +29,17 @@ public Output eventAction() { return this.eventAction; } + /** + * Whether to send a notification. + * + */ @Import(name="notify", required=true) private Output notify; + /** + * @return Whether to send a notification. + * + */ public Output notify_() { return this.notify; } @@ -82,11 +90,23 @@ public Builder eventAction(String eventAction) { return eventAction(Output.of(eventAction)); } + /** + * @param notify Whether to send a notification. + * + * @return builder + * + */ public Builder notify_(Output notify) { $.notify = notify; return this; } + /** + * @param notify Whether to send a notification. + * + * @return builder + * + */ public Builder notify_(Boolean notify) { return notify_(Output.of(notify)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs.java index ad05b7648d5..fede3bb0c94 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs.java @@ -29,9 +29,17 @@ public Output eventAction() { return this.eventAction; } + /** + * Whether to send a notification. + * + */ @Import(name="notify", required=true) private Output notify; + /** + * @return Whether to send a notification. + * + */ public Output notify_() { return this.notify; } @@ -82,11 +90,23 @@ public Builder eventAction(String eventAction) { return eventAction(Output.of(eventAction)); } + /** + * @param notify Whether to send a notification. + * + * @return builder + * + */ public Builder notify_(Output notify) { $.notify = notify; return this; } + /** + * @param notify Whether to send a notification. + * + * @return builder + * + */ public Builder notify_(Boolean notify) { return notify_(Output.of(notify)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs.java index 63388078649..5789f1bfbea 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cognito/inputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs.java @@ -29,9 +29,17 @@ public Output eventAction() { return this.eventAction; } + /** + * Whether to send a notification. + * + */ @Import(name="notify", required=true) private Output notify; + /** + * @return Whether to send a notification. + * + */ public Output notify_() { return this.notify; } @@ -82,11 +90,23 @@ public Builder eventAction(String eventAction) { return eventAction(Output.of(eventAction)); } + /** + * @param notify Whether to send a notification. + * + * @return builder + * + */ public Builder notify_(Output notify) { $.notify = notify; return this; } + /** + * @param notify Whether to send a notification. + * + * @return builder + * + */ public Builder notify_(Boolean notify) { return notify_(Output.of(notify)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction.java b/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction.java index e322afef0f6..cb2776f3b0c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction.java @@ -15,6 +15,10 @@ public final class RiskConfigurationAccountTakeoverRiskConfigurationActionsHighA * */ private String eventAction; + /** + * @return Whether to send a notification. + * + */ private Boolean notify; private RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction() {} @@ -25,6 +29,10 @@ private RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction() {} public String eventAction() { return this.eventAction; } + /** + * @return Whether to send a notification. + * + */ public Boolean notify_() { return this.notify; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction.java b/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction.java index 7e71d9d1bc8..0e441267246 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction.java @@ -15,6 +15,10 @@ public final class RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAc * */ private String eventAction; + /** + * @return Whether to send a notification. + * + */ private Boolean notify; private RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction() {} @@ -25,6 +29,10 @@ private RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction() {} public String eventAction() { return this.eventAction; } + /** + * @return Whether to send a notification. + * + */ public Boolean notify_() { return this.notify; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction.java b/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction.java index ffd697e19fb..4826a0aa667 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cognito/outputs/RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction.java @@ -15,6 +15,10 @@ public final class RiskConfigurationAccountTakeoverRiskConfigurationActionsMediu * */ private String eventAction; + /** + * @return Whether to send a notification. + * + */ private Boolean notify; private RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction() {} @@ -25,6 +29,10 @@ private RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction() { public String eventAction() { return this.eventAction; } + /** + * @return Whether to send a notification. + * + */ public Boolean notify_() { return this.notify; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/dlm/inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/dlm/inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs.java index b642f0718d3..577e85b1c7f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dlm/inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dlm/inputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs.java @@ -17,14 +17,14 @@ public final class LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionCo public static final LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs Empty = new LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs(); /** - * The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * */ @Import(name="cmkArn") private @Nullable Output cmkArn; /** - * @return The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @return The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * */ public Optional> cmkArn() { @@ -32,14 +32,14 @@ public Optional> cmkArn() { } /** - * To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * */ @Import(name="encrypted") private @Nullable Output encrypted; /** - * @return To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * @return To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * */ public Optional> encrypted() { @@ -72,7 +72,7 @@ public Builder(LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfig } /** - * @param cmkArn The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @param cmkArn The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * * @return builder * @@ -83,7 +83,7 @@ public Builder cmkArn(@Nullable Output cmkArn) { } /** - * @param cmkArn The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @param cmkArn The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * * @return builder * @@ -93,7 +93,7 @@ public Builder cmkArn(String cmkArn) { } /** - * @param encrypted To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * @param encrypted To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * * @return builder * @@ -104,7 +104,7 @@ public Builder encrypted(@Nullable Output encrypted) { } /** - * @param encrypted To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * @param encrypted To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/dlm/inputs/LifecyclePolicyPolicyDetailsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/dlm/inputs/LifecyclePolicyPolicyDetailsArgs.java index 34941878754..92f3d5be038 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dlm/inputs/LifecyclePolicyPolicyDetailsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dlm/inputs/LifecyclePolicyPolicyDetailsArgs.java @@ -52,14 +52,14 @@ public Optional> eventSource } /** - * A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * Information about the event. See the `parameters` configuration block. * */ @Import(name="parameters") private @Nullable Output parameters; /** - * @return A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * @return Information about the event. See the `parameters` configuration block. * */ public Optional> parameters() { @@ -219,7 +219,7 @@ public Builder eventSource(LifecyclePolicyPolicyDetailsEventSourceArgs eventSour } /** - * @param parameters A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * @param parameters Information about the event. See the `parameters` configuration block. * * @return builder * @@ -230,7 +230,7 @@ public Builder parameters(@Nullable Output parameters; /** - * @return A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * @return Information about the event. See the `parameters` configuration block. * */ public Output parameters() { @@ -70,7 +70,7 @@ public Builder(LifecyclePolicyPolicyDetailsEventSourceArgs defaults) { } /** - * @param parameters A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * @param parameters Information about the event. See the `parameters` configuration block. * * @return builder * @@ -81,7 +81,7 @@ public Builder parameters(Output copyTags; /** - * @return Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @return Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * */ public Optional> copyTags() { @@ -70,14 +70,14 @@ public Optional deprecateRule; /** - * @return See the `deprecate_rule` block. Max of 1 per schedule. + * @return The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. * */ public Optional> deprecateRule() { @@ -208,7 +208,7 @@ public Builder(LifecyclePolicyPolicyDetailsScheduleArgs defaults) { } /** - * @param copyTags Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @param copyTags Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * * @return builder * @@ -219,7 +219,7 @@ public Builder copyTags(@Nullable Output copyTags) { } /** - * @param copyTags Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @param copyTags Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * * @return builder * @@ -281,7 +281,7 @@ public Builder crossRegionCopyRules(LifecyclePolicyPolicyDetailsScheduleCrossReg } /** - * @param deprecateRule See the `deprecate_rule` block. Max of 1 per schedule. + * @param deprecateRule The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. * * @return builder * @@ -292,7 +292,7 @@ public Builder deprecateRule(@Nullable Output cmkArn; /** - * @return The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @return The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * */ public Optional> cmkArn() { @@ -34,14 +34,14 @@ public Optional> cmkArn() { } /** - * Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * */ @Import(name="copyTags") private @Nullable Output copyTags; /** - * @return Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @return Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * */ public Optional> copyTags() { @@ -49,14 +49,14 @@ public Optional> copyTags() { } /** - * See the `deprecate_rule` block. Max of 1 per schedule. + * The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. * */ @Import(name="deprecateRule") private @Nullable Output deprecateRule; /** - * @return See the `deprecate_rule` block. Max of 1 per schedule. + * @return The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. * */ public Optional> deprecateRule() { @@ -64,14 +64,14 @@ public Optional encrypted; /** - * @return To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * @return To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * */ public Output encrypted() { @@ -138,7 +138,7 @@ public Builder(LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs defau } /** - * @param cmkArn The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @param cmkArn The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * * @return builder * @@ -149,7 +149,7 @@ public Builder cmkArn(@Nullable Output cmkArn) { } /** - * @param cmkArn The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @param cmkArn The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * * @return builder * @@ -159,7 +159,7 @@ public Builder cmkArn(String cmkArn) { } /** - * @param copyTags Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @param copyTags Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * * @return builder * @@ -170,7 +170,7 @@ public Builder copyTags(@Nullable Output copyTags) { } /** - * @param copyTags Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @param copyTags Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * * @return builder * @@ -180,7 +180,7 @@ public Builder copyTags(Boolean copyTags) { } /** - * @param deprecateRule See the `deprecate_rule` block. Max of 1 per schedule. + * @param deprecateRule The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. * * @return builder * @@ -191,7 +191,7 @@ public Builder deprecateRule(@Nullable Output encrypted) { } /** - * @param encrypted To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * @param encrypted To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetails.java b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetails.java index ba15b4740fd..5da58fa1a0e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetails.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetails.java @@ -28,7 +28,7 @@ public final class LifecyclePolicyPolicyDetails { */ private @Nullable LifecyclePolicyPolicyDetailsEventSource eventSource; /** - * @return A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * @return Information about the event. See the `parameters` configuration block. * */ private @Nullable LifecyclePolicyPolicyDetailsParameters parameters; @@ -76,7 +76,7 @@ public Optional eventSource() { return Optional.ofNullable(this.eventSource); } /** - * @return A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * @return Information about the event. See the `parameters` configuration block. * */ public Optional parameters() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration.java index ae19ede162e..f107c333903 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration.java @@ -13,26 +13,26 @@ @CustomType public final class LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration { /** - * @return The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @return The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * */ private @Nullable String cmkArn; /** - * @return To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * @return To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * */ private @Nullable Boolean encrypted; private LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration() {} /** - * @return The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @return The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * */ public Optional cmkArn() { return Optional.ofNullable(this.cmkArn); } /** - * @return To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * @return To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * */ public Optional encrypted() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsEventSource.java b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsEventSource.java index 4d562705f77..dec2d54d670 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsEventSource.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsEventSource.java @@ -11,7 +11,7 @@ @CustomType public final class LifecyclePolicyPolicyDetailsEventSource { /** - * @return A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * @return Information about the event. See the `parameters` configuration block. * */ private LifecyclePolicyPolicyDetailsEventSourceParameters parameters; @@ -23,7 +23,7 @@ public final class LifecyclePolicyPolicyDetailsEventSource { private LifecyclePolicyPolicyDetailsEventSource() {} /** - * @return A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * @return Information about the event. See the `parameters` configuration block. * */ public LifecyclePolicyPolicyDetailsEventSourceParameters parameters() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsSchedule.java b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsSchedule.java index 16b1c72c8bb..e2d829db9b9 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsSchedule.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsSchedule.java @@ -21,7 +21,7 @@ @CustomType public final class LifecyclePolicyPolicyDetailsSchedule { /** - * @return Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @return Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * */ private @Nullable Boolean copyTags; @@ -36,7 +36,7 @@ public final class LifecyclePolicyPolicyDetailsSchedule { */ private @Nullable List crossRegionCopyRules; /** - * @return See the `deprecate_rule` block. Max of 1 per schedule. + * @return The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. * */ private @Nullable LifecyclePolicyPolicyDetailsScheduleDeprecateRule deprecateRule; @@ -73,7 +73,7 @@ public final class LifecyclePolicyPolicyDetailsSchedule { private LifecyclePolicyPolicyDetailsSchedule() {} /** - * @return Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @return Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * */ public Optional copyTags() { @@ -94,7 +94,7 @@ public List crossRegion return this.crossRegionCopyRules == null ? List.of() : this.crossRegionCopyRules; } /** - * @return See the `deprecate_rule` block. Max of 1 per schedule. + * @return The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. * */ public Optional deprecateRule() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule.java b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule.java index 3075b3958e3..0ecf97d8a48 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dlm/outputs/LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule.java @@ -15,22 +15,22 @@ @CustomType public final class LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule { /** - * @return The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @return The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * */ private @Nullable String cmkArn; /** - * @return Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @return Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * */ private @Nullable Boolean copyTags; /** - * @return See the `deprecate_rule` block. Max of 1 per schedule. + * @return The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. * */ private @Nullable LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule deprecateRule; /** - * @return To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * @return To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * */ private Boolean encrypted; @@ -47,28 +47,28 @@ public final class LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule { private LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule() {} /** - * @return The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * @return The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. * */ public Optional cmkArn() { return Optional.ofNullable(this.cmkArn); } /** - * @return Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * @return Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. * */ public Optional copyTags() { return Optional.ofNullable(this.copyTags); } /** - * @return See the `deprecate_rule` block. Max of 1 per schedule. + * @return The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. * */ public Optional deprecateRule() { return Optional.ofNullable(this.deprecateRule); } /** - * @return To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * @return To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. * */ public Boolean encrypted() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/AmiCopy.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/AmiCopy.java index a3937118b1a..30f0fb515de 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/AmiCopy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/AmiCopy.java @@ -185,14 +185,14 @@ public Output enaSupport() { return this.enaSupport; } /** - * Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * */ @Export(name="encrypted", refs={Boolean.class}, tree="[0]") private Output encrypted; /** - * @return Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * @return Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * */ public Output> encrypted() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/AmiCopyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/AmiCopyArgs.java index 030acc4c281..0269a299680 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/AmiCopyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/AmiCopyArgs.java @@ -85,14 +85,14 @@ public Optional>> ebsBlockDevices() { } /** - * Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * */ @Import(name="encrypted") private @Nullable Output encrypted; /** - * @return Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * @return Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * */ public Optional> encrypted() { @@ -329,7 +329,7 @@ public Builder ebsBlockDevices(AmiCopyEbsBlockDeviceArgs... ebsBlockDevices) { } /** - * @param encrypted Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * @param encrypted Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * * @return builder * @@ -340,7 +340,7 @@ public Builder encrypted(@Nullable Output encrypted) { } /** - * @param encrypted Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * @param encrypted Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/SpotInstanceRequest.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/SpotInstanceRequest.java index b7030c9adbc..642d5f50dfe 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/SpotInstanceRequest.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/SpotInstanceRequest.java @@ -410,14 +410,14 @@ public Output instanceInitiatedShutdownBehavior() { return this.instanceInitiatedShutdownBehavior; } /** - * The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * */ @Export(name="instanceInterruptionBehavior", refs={String.class}, tree="[0]") private Output instanceInterruptionBehavior; /** - * @return The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * @return Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * */ public Output> instanceInterruptionBehavior() { @@ -952,14 +952,14 @@ public Output validFrom() { return this.validFrom; } /** - * The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * */ @Export(name="validUntil", refs={String.class}, tree="[0]") private Output validUntil; /** - * @return The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * @return The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * */ public Output validUntil() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/SpotInstanceRequestArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/SpotInstanceRequestArgs.java index 101970f5720..0437de47bc4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/SpotInstanceRequestArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/SpotInstanceRequestArgs.java @@ -371,14 +371,14 @@ public Optional> instanceInitiatedShutdownBehavior() { } /** - * The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * */ @Import(name="instanceInterruptionBehavior") private @Nullable Output instanceInterruptionBehavior; /** - * @return The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * @return Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * */ public Optional> instanceInterruptionBehavior() { @@ -799,14 +799,14 @@ public Optional> validFrom() { } /** - * The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * */ @Import(name="validUntil") private @Nullable Output validUntil; /** - * @return The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * @return The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * */ public Optional> validUntil() { @@ -1428,7 +1428,7 @@ public Builder instanceInitiatedShutdownBehavior(String instanceInitiatedShutdow } /** - * @param instanceInterruptionBehavior The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * @param instanceInterruptionBehavior Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * * @return builder * @@ -1439,7 +1439,7 @@ public Builder instanceInterruptionBehavior(@Nullable Output instanceInt } /** - * @param instanceInterruptionBehavior The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * @param instanceInterruptionBehavior Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * * @return builder * @@ -2066,7 +2066,7 @@ public Builder validFrom(String validFrom) { } /** - * @param validUntil The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * @param validUntil The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * * @return builder * @@ -2077,7 +2077,7 @@ public Builder validUntil(@Nullable Output validUntil) { } /** - * @param validUntil The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * @param validUntil The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/AmiCopyState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/AmiCopyState.java index b5d35ff54f4..809ab56aff1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/AmiCopyState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/AmiCopyState.java @@ -145,14 +145,14 @@ public Optional> enaSupport() { } /** - * Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * */ @Import(name="encrypted") private @Nullable Output encrypted; /** - * @return Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * @return Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * */ public Optional> encrypted() { @@ -717,7 +717,7 @@ public Builder enaSupport(Boolean enaSupport) { } /** - * @param encrypted Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * @param encrypted Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * * @return builder * @@ -728,7 +728,7 @@ public Builder encrypted(@Nullable Output encrypted) { } /** - * @param encrypted Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + * @param encrypted Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.java index 1405dd9f160..d63b1efb7a8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.java @@ -16,14 +16,14 @@ public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsAccelera public static final FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs Empty = new FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional> max() { @@ -31,14 +31,14 @@ public Optional> max() { } /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ @Import(name="min") private @Nullable Output min; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional> min() { @@ -71,7 +71,7 @@ public Builder(FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorC } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -92,7 +92,7 @@ public Builder max(Integer max) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * @@ -103,7 +103,7 @@ public Builder min(@Nullable Output min) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java index b15cf4381fe..3f875dba8bb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java @@ -16,14 +16,14 @@ public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsAccelera public static final FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs Empty = new FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional> max() { @@ -31,14 +31,14 @@ public Optional> max() { } /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ @Import(name="min") private @Nullable Output min; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional> min() { @@ -71,7 +71,7 @@ public Builder(FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorT } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -92,7 +92,7 @@ public Builder max(Integer max) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * @@ -103,7 +103,7 @@ public Builder min(@Nullable Output min) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java index f244ba92782..125fceae4ba 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java @@ -16,14 +16,14 @@ public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsBaseline public static final FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs Empty = new FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional> max() { @@ -31,14 +31,14 @@ public Optional> max() { } /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ @Import(name="min") private @Nullable Output min; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional> min() { @@ -71,7 +71,7 @@ public Builder(FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsB } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -92,7 +92,7 @@ public Builder max(Integer max) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * @@ -103,7 +103,7 @@ public Builder min(@Nullable Output min) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java index a12130190a1..5fc66f77a16 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java @@ -16,14 +16,14 @@ public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGi public static final FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs Empty = new FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional> max() { @@ -31,14 +31,14 @@ public Optional> max() { } /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ @Import(name="min") private @Nullable Output min; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional> min() { @@ -71,7 +71,7 @@ public Builder(FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPer } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -92,7 +92,7 @@ public Builder max(Double max) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * @@ -103,7 +103,7 @@ public Builder min(@Nullable Output min) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.java index a320e2ad897..838ccaadcba 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.java @@ -16,14 +16,14 @@ public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMi public static final FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs Empty = new FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional> max() { @@ -31,14 +31,14 @@ public Optional> max() { } /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ @Import(name="min", required=true) private Output min; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Output min() { @@ -71,7 +71,7 @@ public Builder(FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArg } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -92,7 +92,7 @@ public Builder max(Integer max) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * @@ -103,7 +103,7 @@ public Builder min(Output min) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java index 3dd052c064f..6b2fc1eeea6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java @@ -16,14 +16,14 @@ public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkB public static final FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs Empty = new FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional> max() { @@ -31,14 +31,14 @@ public Optional> max() { } /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ @Import(name="min") private @Nullable Output min; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional> min() { @@ -71,7 +71,7 @@ public Builder(FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandw } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -92,7 +92,7 @@ public Builder max(Double max) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * @@ -103,7 +103,7 @@ public Builder min(@Nullable Output min) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.java index 6f21900de05..2b0a13392fc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.java @@ -16,14 +16,14 @@ public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkI public static final FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs Empty = new FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional> max() { @@ -31,14 +31,14 @@ public Optional> max() { } /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ @Import(name="min") private @Nullable Output min; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional> min() { @@ -71,7 +71,7 @@ public Builder(FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInter } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -92,7 +92,7 @@ public Builder max(Integer max) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * @@ -103,7 +103,7 @@ public Builder min(@Nullable Output min) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.java index 872c54464e3..c0acaa4cdf0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.java @@ -16,14 +16,14 @@ public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLoc public static final FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs Empty = new FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional> max() { @@ -31,14 +31,14 @@ public Optional> max() { } /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ @Import(name="min") private @Nullable Output min; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional> min() { @@ -71,7 +71,7 @@ public Builder(FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalSt } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -92,7 +92,7 @@ public Builder max(Double max) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * @@ -103,7 +103,7 @@ public Builder min(@Nullable Output min) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.java index 0562c80b87b..fbb8e33019f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.java @@ -16,14 +16,14 @@ public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCoun public static final FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs Empty = new FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional> max() { @@ -31,14 +31,14 @@ public Optional> max() { } /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ @Import(name="min", required=true) private Output min; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Output min() { @@ -71,7 +71,7 @@ public Builder(FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArg } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * * @return builder * @@ -92,7 +92,7 @@ public Builder max(Integer max) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * @@ -103,7 +103,7 @@ public Builder min(Output min) { } /** - * @param min Minimum. + * @param min The minimum number of vCPUs. To specify no minimum limit, specify `0`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsAcceleratorCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsAcceleratorCountArgs.java index a3050ea2da2..d96e09fec6c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsAcceleratorCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsAcceleratorCountArgs.java @@ -16,14 +16,14 @@ public final class LaunchTemplateInstanceRequirementsAcceleratorCountArgs extend public static final LaunchTemplateInstanceRequirementsAcceleratorCountArgs Empty = new LaunchTemplateInstanceRequirementsAcceleratorCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(LaunchTemplateInstanceRequirementsAcceleratorCountArgs defaults) } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs.java index 320d4bd82ac..2f6cad290a5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs.java @@ -16,14 +16,14 @@ public final class LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibAr public static final LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs Empty = new LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs d } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java index 9f324142e16..9d32f15e8d8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java @@ -16,14 +16,14 @@ public final class LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArg public static final LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs Empty = new LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs de } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs.java index f2612e2461b..cf2037591d3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs.java @@ -16,14 +16,14 @@ public final class LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs extend public static final LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs Empty = new LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs defaults) } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsMemoryMibArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsMemoryMibArgs.java index 84e2a914b5f..97be276c9a9 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsMemoryMibArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsMemoryMibArgs.java @@ -16,14 +16,14 @@ public final class LaunchTemplateInstanceRequirementsMemoryMibArgs extends com.p public static final LaunchTemplateInstanceRequirementsMemoryMibArgs Empty = new LaunchTemplateInstanceRequirementsMemoryMibArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(LaunchTemplateInstanceRequirementsMemoryMibArgs defaults) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs.java index 573f60186da..ea2ddd67cf4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs.java @@ -16,14 +16,14 @@ public final class LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs ex public static final LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs Empty = new LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs defaul } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs.java index fc532784a9f..ee15cb48648 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs.java @@ -16,14 +16,14 @@ public final class LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs e public static final LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs Empty = new LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs defau } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs.java index d298406c07b..67f513f412a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs.java @@ -16,14 +16,14 @@ public final class LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs ext public static final LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs Empty = new LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs default } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsVcpuCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsVcpuCountArgs.java index 9b1decbc6d6..a460973e76c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsVcpuCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/LaunchTemplateInstanceRequirementsVcpuCountArgs.java @@ -16,14 +16,14 @@ public final class LaunchTemplateInstanceRequirementsVcpuCountArgs extends com.p public static final LaunchTemplateInstanceRequirementsVcpuCountArgs Empty = new LaunchTemplateInstanceRequirementsVcpuCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(LaunchTemplateInstanceRequirementsVcpuCountArgs defaults) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.java index fcea7369c2b..6e666551996 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs.java @@ -16,14 +16,14 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme public static final SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs Empty = new SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsA } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java index 6008581ae4c..9d4ae58331f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.java @@ -16,14 +16,14 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme public static final SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs Empty = new SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsA } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java index 2212923d284..9a38ebf4b3d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.java @@ -16,14 +16,14 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme public static final SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs Empty = new SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsB } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java index 65ce3ecd7fd..9321dd1b940 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs.java @@ -16,14 +16,14 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme public static final SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs Empty = new SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsM } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.java index 66820ce3801..872a4b8ab64 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs.java @@ -16,14 +16,14 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme public static final SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs Empty = new SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsM } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java index 47835cb3a55..177dd957778 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.java @@ -16,14 +16,14 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme public static final SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs Empty = new SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsN } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.java index 1ae51d9eea5..5929e4abc29 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs.java @@ -16,14 +16,14 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme public static final SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs Empty = new SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsN } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.java index fc965f28dfd..e5f45337bcf 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs.java @@ -16,14 +16,14 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme public static final SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs Empty = new SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsT } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.java index 1fdeed6cbd7..04a152a2157 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs.java @@ -16,14 +16,14 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme public static final SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs Empty = new SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs(); /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. * */ @Import(name="max") private @Nullable Output max; /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional> max() { @@ -71,7 +71,7 @@ public Builder(SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsV } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * @@ -82,7 +82,7 @@ public Builder max(@Nullable Output max) { } /** - * @param max Maximum. Set to `0` to exclude instance types with accelerators. + * @param max Maximum. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotInstanceRequestState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotInstanceRequestState.java index 0e36d6ebd44..d20ded864cc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotInstanceRequestState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/SpotInstanceRequestState.java @@ -378,14 +378,14 @@ public Optional> instanceInitiatedShutdownBehavior() { } /** - * The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * */ @Import(name="instanceInterruptionBehavior") private @Nullable Output instanceInterruptionBehavior; /** - * @return The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * @return Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * */ public Optional> instanceInterruptionBehavior() { @@ -963,14 +963,14 @@ public Optional> validFrom() { } /** - * The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * */ @Import(name="validUntil") private @Nullable Output validUntil; /** - * @return The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * @return The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * */ public Optional> validUntil() { @@ -1613,7 +1613,7 @@ public Builder instanceInitiatedShutdownBehavior(String instanceInitiatedShutdow } /** - * @param instanceInterruptionBehavior The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * @param instanceInterruptionBehavior Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * * @return builder * @@ -1624,7 +1624,7 @@ public Builder instanceInterruptionBehavior(@Nullable Output instanceInt } /** - * @param instanceInterruptionBehavior The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * @param instanceInterruptionBehavior Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. * * @return builder * @@ -2458,7 +2458,7 @@ public Builder validFrom(String validFrom) { } /** - * @param validUntil The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * @param validUntil The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * * @return builder * @@ -2469,7 +2469,7 @@ public Builder validUntil(@Nullable Output validUntil) { } /** - * @param validUntil The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * @param validUntil The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.java index 6b7576b8246..2aea65dae94 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.java @@ -12,26 +12,26 @@ @CustomType public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ private @Nullable Integer max; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ private @Nullable Integer min; private FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional max() { return Optional.ofNullable(this.max); } /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional min() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java index b97f0c77be5..5c529a3bf71 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java @@ -12,26 +12,26 @@ @CustomType public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ private @Nullable Integer max; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ private @Nullable Integer min; private FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional max() { return Optional.ofNullable(this.max); } /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional min() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java index 7d15d96bee7..e5f2a5268ec 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java @@ -12,26 +12,26 @@ @CustomType public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ private @Nullable Integer max; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ private @Nullable Integer min; private FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional max() { return Optional.ofNullable(this.max); } /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional min() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.java index ae7f99d60f3..d973d4604cf 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.java @@ -12,26 +12,26 @@ @CustomType public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ private @Nullable Double max; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ private @Nullable Double min; private FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional max() { return Optional.ofNullable(this.max); } /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional min() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.java index 7205915474b..bff6923b2fb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.java @@ -12,26 +12,26 @@ @CustomType public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ private @Nullable Integer max; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ private Integer min; private FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional max() { return Optional.ofNullable(this.max); } /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Integer min() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.java index f4d2e72e5e8..7bdfd4fb961 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.java @@ -12,26 +12,26 @@ @CustomType public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ private @Nullable Double max; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ private @Nullable Double min; private FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional max() { return Optional.ofNullable(this.max); } /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional min() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.java index 019e65f233b..df900f18929 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.java @@ -12,26 +12,26 @@ @CustomType public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ private @Nullable Integer max; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ private @Nullable Integer min; private FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional max() { return Optional.ofNullable(this.max); } /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional min() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.java index 4768546c9bd..150fedab157 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.java @@ -12,26 +12,26 @@ @CustomType public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ private @Nullable Double max; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ private @Nullable Double min; private FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional max() { return Optional.ofNullable(this.max); } /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Optional min() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.java index c1645317b4a..895966f2fc2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.java @@ -12,26 +12,26 @@ @CustomType public final class FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ private @Nullable Integer max; /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ private Integer min; private FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return The maximum number of vCPUs. To specify no maximum limit, omit this parameter. * */ public Optional max() { return Optional.ofNullable(this.max); } /** - * @return Minimum. + * @return The minimum number of vCPUs. To specify no minimum limit, specify `0`. * */ public Integer min() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsAcceleratorCount.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsAcceleratorCount.java index a5746002092..b6f119217ec 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsAcceleratorCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsAcceleratorCount.java @@ -12,7 +12,7 @@ @CustomType public final class LaunchTemplateInstanceRequirementsAcceleratorCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class LaunchTemplateInstanceRequirementsAcceleratorCount { private LaunchTemplateInstanceRequirementsAcceleratorCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib.java index cb1fa95139f..e253f992256 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib.java @@ -12,7 +12,7 @@ @CustomType public final class LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib { private LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps.java index 6d04f3e1370..5a67e441b8d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps.java @@ -12,7 +12,7 @@ @CustomType public final class LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps { private LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpu.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpu.java index 7494ac6e21d..7381972cb3f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpu.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsMemoryGibPerVcpu.java @@ -12,7 +12,7 @@ @CustomType public final class LaunchTemplateInstanceRequirementsMemoryGibPerVcpu { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Double max; @@ -24,7 +24,7 @@ public final class LaunchTemplateInstanceRequirementsMemoryGibPerVcpu { private LaunchTemplateInstanceRequirementsMemoryGibPerVcpu() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsMemoryMib.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsMemoryMib.java index 1af18106127..1588ad9937c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsMemoryMib.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsMemoryMib.java @@ -12,7 +12,7 @@ @CustomType public final class LaunchTemplateInstanceRequirementsMemoryMib { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class LaunchTemplateInstanceRequirementsMemoryMib { private LaunchTemplateInstanceRequirementsMemoryMib() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbps.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbps.java index 268aa4be040..93f3e7968fa 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbps.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsNetworkBandwidthGbps.java @@ -12,7 +12,7 @@ @CustomType public final class LaunchTemplateInstanceRequirementsNetworkBandwidthGbps { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Double max; @@ -24,7 +24,7 @@ public final class LaunchTemplateInstanceRequirementsNetworkBandwidthGbps { private LaunchTemplateInstanceRequirementsNetworkBandwidthGbps() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCount.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCount.java index c4a7c200b01..b09e8b993f8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsNetworkInterfaceCount.java @@ -12,7 +12,7 @@ @CustomType public final class LaunchTemplateInstanceRequirementsNetworkInterfaceCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class LaunchTemplateInstanceRequirementsNetworkInterfaceCount { private LaunchTemplateInstanceRequirementsNetworkInterfaceCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGb.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGb.java index 2f013ce0986..9fe202b0b89 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGb.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsTotalLocalStorageGb.java @@ -12,7 +12,7 @@ @CustomType public final class LaunchTemplateInstanceRequirementsTotalLocalStorageGb { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Double max; @@ -24,7 +24,7 @@ public final class LaunchTemplateInstanceRequirementsTotalLocalStorageGb { private LaunchTemplateInstanceRequirementsTotalLocalStorageGb() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsVcpuCount.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsVcpuCount.java index 15ad410ddbe..fb6e588b8c2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsVcpuCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/LaunchTemplateInstanceRequirementsVcpuCount.java @@ -12,7 +12,7 @@ @CustomType public final class LaunchTemplateInstanceRequirementsVcpuCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class LaunchTemplateInstanceRequirementsVcpuCount { private LaunchTemplateInstanceRequirementsVcpuCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.java index a9cc91190c2..8b687184cf3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount.java @@ -12,7 +12,7 @@ @CustomType public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme private SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java index 163b128db74..d5f0a1d325d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib.java @@ -12,7 +12,7 @@ @CustomType public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme private SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java index bae0d5406b2..a0048ec7ebf 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps.java @@ -12,7 +12,7 @@ @CustomType public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme private SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.java index d43e641ca24..6e88c4d37c6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu.java @@ -12,7 +12,7 @@ @CustomType public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Double max; @@ -24,7 +24,7 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme private SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.java index 471cd91431a..2a6b2f9ecbf 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib.java @@ -12,7 +12,7 @@ @CustomType public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme private SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.java index 4c9212d4e1b..cbd44eb9026 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps.java @@ -12,7 +12,7 @@ @CustomType public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Double max; @@ -24,7 +24,7 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme private SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.java index f56a84124e5..8d7d59f93db 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount.java @@ -12,7 +12,7 @@ @CustomType public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme private SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.java index 7920c047a0d..404545ab422 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb.java @@ -12,7 +12,7 @@ @CustomType public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Double max; @@ -24,7 +24,7 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme private SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.java index 5a950122be4..355fa20f87e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/outputs/SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount.java @@ -12,7 +12,7 @@ @CustomType public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount { /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ private @Nullable Integer max; @@ -24,7 +24,7 @@ public final class SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequireme private SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount() {} /** - * @return Maximum. Set to `0` to exclude instance types with accelerators. + * @return Maximum. * */ public Optional max() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/glue/inputs/CrawlerS3TargetArgs.java b/sdk/java/src/main/java/com/pulumi/aws/glue/inputs/CrawlerS3TargetArgs.java index d00db6bc188..18491d72703 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/glue/inputs/CrawlerS3TargetArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/glue/inputs/CrawlerS3TargetArgs.java @@ -18,14 +18,14 @@ public final class CrawlerS3TargetArgs extends com.pulumi.resources.ResourceArgs public static final CrawlerS3TargetArgs Empty = new CrawlerS3TargetArgs(); /** - * The name of the connection to use to connect to the JDBC target. + * The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. * */ @Import(name="connectionName") private @Nullable Output connectionName; /** - * @return The name of the connection to use to connect to the JDBC target. + * @return The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. * */ public Optional> connectionName() { @@ -33,7 +33,7 @@ public Optional> connectionName() { } /** - * The ARN of the dead-letter SQS queue. + * A valid Amazon SQS ARN. * * > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. * @@ -44,7 +44,7 @@ public Optional> connectionName() { private @Nullable Output dlqEventQueueArn; /** - * @return The ARN of the dead-letter SQS queue. + * @return A valid Amazon SQS ARN. * * > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. * @@ -56,14 +56,14 @@ public Optional> dlqEventQueueArn() { } /** - * The ARN of the SQS queue to receive S3 notifications from. + * A valid Amazon SQS ARN. * */ @Import(name="eventQueueArn") private @Nullable Output eventQueueArn; /** - * @return The ARN of the SQS queue to receive S3 notifications from. + * @return A valid Amazon SQS ARN. * */ public Optional> eventQueueArn() { @@ -145,7 +145,7 @@ public Builder(CrawlerS3TargetArgs defaults) { } /** - * @param connectionName The name of the connection to use to connect to the JDBC target. + * @param connectionName The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. * * @return builder * @@ -156,7 +156,7 @@ public Builder connectionName(@Nullable Output connectionName) { } /** - * @param connectionName The name of the connection to use to connect to the JDBC target. + * @param connectionName The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. * * @return builder * @@ -166,7 +166,7 @@ public Builder connectionName(String connectionName) { } /** - * @param dlqEventQueueArn The ARN of the dead-letter SQS queue. + * @param dlqEventQueueArn A valid Amazon SQS ARN. * * > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. * @@ -181,7 +181,7 @@ public Builder dlqEventQueueArn(@Nullable Output dlqEventQueueArn) { } /** - * @param dlqEventQueueArn The ARN of the dead-letter SQS queue. + * @param dlqEventQueueArn A valid Amazon SQS ARN. * * > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. * @@ -195,7 +195,7 @@ public Builder dlqEventQueueArn(String dlqEventQueueArn) { } /** - * @param eventQueueArn The ARN of the SQS queue to receive S3 notifications from. + * @param eventQueueArn A valid Amazon SQS ARN. * * @return builder * @@ -206,7 +206,7 @@ public Builder eventQueueArn(@Nullable Output eventQueueArn) { } /** - * @param eventQueueArn The ARN of the SQS queue to receive S3 notifications from. + * @param eventQueueArn A valid Amazon SQS ARN. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/glue/outputs/CrawlerS3Target.java b/sdk/java/src/main/java/com/pulumi/aws/glue/outputs/CrawlerS3Target.java index 544ec485d22..7a8308dff8c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/glue/outputs/CrawlerS3Target.java +++ b/sdk/java/src/main/java/com/pulumi/aws/glue/outputs/CrawlerS3Target.java @@ -14,12 +14,12 @@ @CustomType public final class CrawlerS3Target { /** - * @return The name of the connection to use to connect to the JDBC target. + * @return The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. * */ private @Nullable String connectionName; /** - * @return The ARN of the dead-letter SQS queue. + * @return A valid Amazon SQS ARN. * * > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. * @@ -28,7 +28,7 @@ public final class CrawlerS3Target { */ private @Nullable String dlqEventQueueArn; /** - * @return The ARN of the SQS queue to receive S3 notifications from. + * @return A valid Amazon SQS ARN. * */ private @Nullable String eventQueueArn; @@ -50,14 +50,14 @@ public final class CrawlerS3Target { private CrawlerS3Target() {} /** - * @return The name of the connection to use to connect to the JDBC target. + * @return The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. * */ public Optional connectionName() { return Optional.ofNullable(this.connectionName); } /** - * @return The ARN of the dead-letter SQS queue. + * @return A valid Amazon SQS ARN. * * > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. * @@ -68,7 +68,7 @@ public Optional dlqEventQueueArn() { return Optional.ofNullable(this.dlqEventQueueArn); } /** - * @return The ARN of the SQS queue to receive S3 notifications from. + * @return A valid Amazon SQS ARN. * */ public Optional eventQueueArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/iot/inputs/TopicRuleDynamodbv2PutItemArgs.java b/sdk/java/src/main/java/com/pulumi/aws/iot/inputs/TopicRuleDynamodbv2PutItemArgs.java index 112ab0a5f6d..b1ed2f9effd 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iot/inputs/TopicRuleDynamodbv2PutItemArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iot/inputs/TopicRuleDynamodbv2PutItemArgs.java @@ -16,8 +16,6 @@ public final class TopicRuleDynamodbv2PutItemArgs extends com.pulumi.resources.R /** * The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * */ @Import(name="tableName", required=true) private Output tableName; @@ -25,8 +23,6 @@ public final class TopicRuleDynamodbv2PutItemArgs extends com.pulumi.resources.R /** * @return The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * */ public Output tableName() { return this.tableName; @@ -59,8 +55,6 @@ public Builder(TopicRuleDynamodbv2PutItemArgs defaults) { /** * @param tableName The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * * @return builder * */ @@ -72,8 +66,6 @@ public Builder tableName(Output tableName) { /** * @param tableName The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/iot/inputs/TopicRuleErrorActionDynamodbv2PutItemArgs.java b/sdk/java/src/main/java/com/pulumi/aws/iot/inputs/TopicRuleErrorActionDynamodbv2PutItemArgs.java index f4f99a94b15..d82355df9c5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iot/inputs/TopicRuleErrorActionDynamodbv2PutItemArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iot/inputs/TopicRuleErrorActionDynamodbv2PutItemArgs.java @@ -16,8 +16,6 @@ public final class TopicRuleErrorActionDynamodbv2PutItemArgs extends com.pulumi. /** * The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * */ @Import(name="tableName", required=true) private Output tableName; @@ -25,8 +23,6 @@ public final class TopicRuleErrorActionDynamodbv2PutItemArgs extends com.pulumi. /** * @return The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * */ public Output tableName() { return this.tableName; @@ -59,8 +55,6 @@ public Builder(TopicRuleErrorActionDynamodbv2PutItemArgs defaults) { /** * @param tableName The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * * @return builder * */ @@ -72,8 +66,6 @@ public Builder tableName(Output tableName) { /** * @param tableName The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/iot/outputs/TopicRuleDynamodbv2PutItem.java b/sdk/java/src/main/java/com/pulumi/aws/iot/outputs/TopicRuleDynamodbv2PutItem.java index 1cc65ab1579..2c8adb16e04 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iot/outputs/TopicRuleDynamodbv2PutItem.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iot/outputs/TopicRuleDynamodbv2PutItem.java @@ -12,8 +12,6 @@ public final class TopicRuleDynamodbv2PutItem { /** * @return The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * */ private String tableName; @@ -21,8 +19,6 @@ private TopicRuleDynamodbv2PutItem() {} /** * @return The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * */ public String tableName() { return this.tableName; diff --git a/sdk/java/src/main/java/com/pulumi/aws/iot/outputs/TopicRuleErrorActionDynamodbv2PutItem.java b/sdk/java/src/main/java/com/pulumi/aws/iot/outputs/TopicRuleErrorActionDynamodbv2PutItem.java index 848393de5ad..469fe1371f6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iot/outputs/TopicRuleErrorActionDynamodbv2PutItem.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iot/outputs/TopicRuleErrorActionDynamodbv2PutItem.java @@ -12,8 +12,6 @@ public final class TopicRuleErrorActionDynamodbv2PutItem { /** * @return The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * */ private String tableName; @@ -21,8 +19,6 @@ private TopicRuleErrorActionDynamodbv2PutItem() {} /** * @return The name of the DynamoDB table. * - * The `dynamodbv2` object takes the following arguments: - * */ public String tableName() { return this.tableName; diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.java index 5db467b36ba..5b8db63279d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.java @@ -49,7 +49,6 @@ public Optional> 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") @@ -57,7 +56,6 @@ public Optional> 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() { @@ -142,14 +140,14 @@ public Optional> prefix() { } /** - * The ARN of the role that provides access to the source Kinesis stream. + * 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 that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public Output roleArn() { @@ -232,7 +230,6 @@ public Builder bufferingInterval(Integer 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 * @@ -244,7 +241,6 @@ public Builder bufferingSize(@Nullable Output bufferingSize) { /** * @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 * @@ -361,7 +357,7 @@ public Builder prefix(String prefix) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -372,7 +368,7 @@ public Builder roleArn(Output roleArn) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationArgs.java index 61ed289830e..9ad240ab9de 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationArgs.java @@ -53,7 +53,6 @@ public Optional> 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") @@ -61,7 +60,6 @@ public Optional> 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() { @@ -191,14 +189,14 @@ public Optional roleArn; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public Output roleArn() { @@ -221,14 +219,14 @@ public Optional s3BackupMode; /** - * @return The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + * @return Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. * */ public Optional> s3BackupMode() { @@ -316,7 +314,6 @@ public Builder bufferingInterval(Integer 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 * @@ -328,7 +325,6 @@ public Builder bufferingSize(@Nullable Output bufferingSize) { /** * @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 * @@ -508,7 +504,7 @@ public Builder processingConfiguration(FirehoseDeliveryStreamExtendedS3Configura } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -519,7 +515,7 @@ public Builder roleArn(Output roleArn) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -550,7 +546,7 @@ public Builder s3BackupConfiguration(FirehoseDeliveryStreamExtendedS3Configurati } /** - * @param s3BackupMode The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + * @param s3BackupMode Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. * * @return builder * @@ -561,7 +557,7 @@ public Builder s3BackupMode(@Nullable Output s3BackupMode) { } /** - * @param s3BackupMode The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + * @param s3BackupMode Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs.java index df3131aa159..7a3b2b1553c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs.java @@ -49,7 +49,6 @@ public Optional> 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") @@ -57,7 +56,6 @@ public Optional> 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() { @@ -142,14 +140,14 @@ public Optional> prefix() { } /** - * The ARN of the role that provides access to the source Kinesis stream. + * 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 that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public Output roleArn() { @@ -232,7 +230,6 @@ public Builder bufferingInterval(Integer 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 * @@ -244,7 +241,6 @@ public Builder bufferingSize(@Nullable Output bufferingSize) { /** * @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 * @@ -361,7 +357,7 @@ public Builder prefix(String prefix) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -372,7 +368,7 @@ public Builder roleArn(Output roleArn) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.java index c091479a4a6..63c047a167f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.java @@ -49,7 +49,6 @@ public Optional> 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") @@ -57,7 +56,6 @@ public Optional> 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() { @@ -142,14 +140,14 @@ public Optional> prefix() { } /** - * The ARN of the role that provides access to the source Kinesis stream. + * 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 that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public Output roleArn() { @@ -232,7 +230,6 @@ public Builder bufferingInterval(Integer 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 * @@ -244,7 +241,6 @@ public Builder bufferingSize(@Nullable Output bufferingSize) { /** * @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 * @@ -361,7 +357,7 @@ public Builder prefix(String prefix) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -372,7 +368,7 @@ public Builder roleArn(Output roleArn) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.java index 309c4d959dd..40ea9a98a67 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.java @@ -49,7 +49,6 @@ public Optional> 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") @@ -57,7 +56,6 @@ public Optional> 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() { @@ -142,14 +140,14 @@ public Optional> prefix() { } /** - * The ARN of the role that provides access to the source Kinesis stream. + * 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 that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public Output roleArn() { @@ -232,7 +230,6 @@ public Builder bufferingInterval(Integer 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 * @@ -244,7 +241,6 @@ public Builder bufferingSize(@Nullable Output bufferingSize) { /** * @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 * @@ -361,7 +357,7 @@ public Builder prefix(String prefix) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -372,7 +368,7 @@ public Builder roleArn(Output roleArn) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * 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 index 2185acefa11..35f7eb06b42 100644 --- 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 @@ -49,7 +49,6 @@ public Optional> 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") @@ -57,7 +56,6 @@ public Optional> 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() { @@ -142,14 +140,14 @@ public Optional> prefix() { } /** - * The ARN of the role that provides access to the source Kinesis stream. + * 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 that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public Output roleArn() { @@ -232,7 +230,6 @@ public Builder bufferingInterval(Integer 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 * @@ -244,7 +241,6 @@ public Builder bufferingSize(@Nullable Output bufferingSize) { /** * @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 * @@ -361,7 +357,7 @@ public Builder prefix(String prefix) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -372,7 +368,7 @@ public Builder roleArn(Output roleArn) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.java index 7903b31fb90..977812277dd 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.java @@ -49,7 +49,6 @@ public Optional> 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") @@ -57,7 +56,6 @@ public Optional> 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() { @@ -142,14 +140,14 @@ public Optional> prefix() { } /** - * The ARN of the role that provides access to the source Kinesis stream. + * 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 that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public Output roleArn() { @@ -232,7 +230,6 @@ public Builder bufferingInterval(Integer 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 * @@ -244,7 +241,6 @@ public Builder bufferingSize(@Nullable Output bufferingSize) { /** * @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 * @@ -361,7 +357,7 @@ public Builder prefix(String prefix) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -372,7 +368,7 @@ public Builder roleArn(Output roleArn) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.java index e84f213f5b1..32d5d1ff63f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.java @@ -49,7 +49,6 @@ public Optional> 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") @@ -57,7 +56,6 @@ public Optional> 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() { @@ -142,14 +140,14 @@ public Optional> prefix() { } /** - * The ARN of the role that provides access to the source Kinesis stream. + * 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 that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public Output roleArn() { @@ -232,7 +230,6 @@ public Builder bufferingInterval(Integer 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 * @@ -244,7 +241,6 @@ public Builder bufferingSize(@Nullable Output bufferingSize) { /** * @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 * @@ -361,7 +357,7 @@ public Builder prefix(String prefix) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -372,7 +368,7 @@ public Builder roleArn(Output roleArn) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.java index d804cfca227..73d0cb3917f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.java @@ -49,7 +49,6 @@ public Optional> 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") @@ -57,7 +56,6 @@ public Optional> 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() { @@ -142,14 +140,14 @@ public Optional> prefix() { } /** - * The ARN of the role that provides access to the source Kinesis stream. + * 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 that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public Output roleArn() { @@ -232,7 +230,6 @@ public Builder bufferingInterval(Integer 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 * @@ -244,7 +241,6 @@ public Builder bufferingSize(@Nullable Output bufferingSize) { /** * @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 * @@ -361,7 +357,7 @@ public Builder prefix(String prefix) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * @@ -372,7 +368,7 @@ public Builder roleArn(Output roleArn) { } /** - * @param roleArn The ARN of the role that provides access to the source Kinesis stream. + * @param roleArn The ARN of the role used to access the Amazon MSK cluster. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration.java index 1cdc9865a53..0ecdc82f73c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration.java @@ -25,7 +25,6 @@ public final class FirehoseDeliveryStreamElasticsearchConfigurationS3Configurati 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; @@ -56,7 +55,7 @@ public final class FirehoseDeliveryStreamElasticsearchConfigurationS3Configurati */ private @Nullable String prefix; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ private String roleArn; @@ -78,7 +77,6 @@ public Optional 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() { @@ -121,7 +119,7 @@ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public String roleArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamExtendedS3Configuration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamExtendedS3Configuration.java index 79c1ed874c2..9fb8e6d7530 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamExtendedS3Configuration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamExtendedS3Configuration.java @@ -29,7 +29,6 @@ public final class FirehoseDeliveryStreamExtendedS3Configuration { 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; @@ -75,7 +74,7 @@ public final class FirehoseDeliveryStreamExtendedS3Configuration { */ private @Nullable FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfiguration processingConfiguration; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ private String roleArn; @@ -85,7 +84,7 @@ public final class FirehoseDeliveryStreamExtendedS3Configuration { */ private @Nullable FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration s3BackupConfiguration; /** - * @return The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + * @return Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. * */ private @Nullable String s3BackupMode; @@ -107,7 +106,6 @@ public Optional 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() { @@ -171,7 +169,7 @@ public Optional s3BackupMode() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration.java index 7b0b1a11ddb..73661e60eda 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration.java @@ -25,7 +25,6 @@ public final class FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigur 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; @@ -56,7 +55,7 @@ public final class FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigur */ private @Nullable String prefix; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ private String roleArn; @@ -78,7 +77,6 @@ public Optional 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() { @@ -121,7 +119,7 @@ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public String roleArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration.java index e2cf81d4649..401fd7fd318 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration.java @@ -25,7 +25,6 @@ public final class FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuratio 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; @@ -56,7 +55,7 @@ public final class FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuratio */ private @Nullable String prefix; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ private String roleArn; @@ -78,7 +77,6 @@ public Optional 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() { @@ -121,7 +119,7 @@ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public String roleArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchConfigurationS3Configuration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchConfigurationS3Configuration.java index c1630c34272..f4099eb7c58 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchConfigurationS3Configuration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchConfigurationS3Configuration.java @@ -25,7 +25,6 @@ public final class FirehoseDeliveryStreamOpensearchConfigurationS3Configuration 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; @@ -56,7 +55,7 @@ public final class FirehoseDeliveryStreamOpensearchConfigurationS3Configuration */ private @Nullable String prefix; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ private String roleArn; @@ -78,7 +77,6 @@ public Optional 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() { @@ -121,7 +119,7 @@ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public String roleArn() { 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 index de84ec5e769..f8c927437b8 100644 --- 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 @@ -25,7 +25,6 @@ public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Conf 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; @@ -56,7 +55,7 @@ public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Conf */ private @Nullable String prefix; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ private String roleArn; @@ -78,7 +77,6 @@ public Optional 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() { @@ -121,7 +119,7 @@ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public String roleArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration.java index 53eab21a9e0..d238d529341 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration.java @@ -25,7 +25,6 @@ public final class FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurat 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; @@ -56,7 +55,7 @@ public final class FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurat */ private @Nullable String prefix; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ private String roleArn; @@ -78,7 +77,6 @@ public Optional 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() { @@ -121,7 +119,7 @@ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public String roleArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationS3Configuration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationS3Configuration.java index 891e144b537..f60624b3924 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationS3Configuration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamRedshiftConfigurationS3Configuration.java @@ -25,7 +25,6 @@ public final class FirehoseDeliveryStreamRedshiftConfigurationS3Configuration { 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; @@ -56,7 +55,7 @@ public final class FirehoseDeliveryStreamRedshiftConfigurationS3Configuration { */ private @Nullable String prefix; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ private String roleArn; @@ -78,7 +77,6 @@ public Optional 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() { @@ -121,7 +119,7 @@ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public String roleArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfigurationS3Configuration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfigurationS3Configuration.java index 86b885b5f10..24921607421 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfigurationS3Configuration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamSplunkConfigurationS3Configuration.java @@ -25,7 +25,6 @@ public final class FirehoseDeliveryStreamSplunkConfigurationS3Configuration { 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; @@ -56,7 +55,7 @@ public final class FirehoseDeliveryStreamSplunkConfigurationS3Configuration { */ private @Nullable String prefix; /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ private String roleArn; @@ -78,7 +77,6 @@ public Optional 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() { @@ -121,7 +119,7 @@ public Optional prefix() { return Optional.ofNullable(this.prefix); } /** - * @return The ARN of the role that provides access to the source Kinesis stream. + * @return The ARN of the role used to access the Amazon MSK cluster. * */ public String roleArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionHostHeaderArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionHostHeaderArgs.java index a3d5ddb6a66..6990983a942 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionHostHeaderArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionHostHeaderArgs.java @@ -17,8 +17,6 @@ public final class ListenerRuleConditionHostHeaderArgs extends com.pulumi.resour /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ @Import(name="values", required=true) private Output> values; @@ -26,8 +24,6 @@ public final class ListenerRuleConditionHostHeaderArgs extends com.pulumi.resour /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public Output> values() { return this.values; @@ -60,8 +56,6 @@ public Builder(ListenerRuleConditionHostHeaderArgs defaults) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -73,8 +67,6 @@ public Builder values(Output> values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -85,8 +77,6 @@ public Builder values(List values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionHttpRequestMethodArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionHttpRequestMethodArgs.java index 59133d20a37..c39218adf4e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionHttpRequestMethodArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionHttpRequestMethodArgs.java @@ -17,8 +17,6 @@ public final class ListenerRuleConditionHttpRequestMethodArgs extends com.pulumi /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ @Import(name="values", required=true) private Output> values; @@ -26,8 +24,6 @@ public final class ListenerRuleConditionHttpRequestMethodArgs extends com.pulumi /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public Output> values() { return this.values; @@ -60,8 +56,6 @@ public Builder(ListenerRuleConditionHttpRequestMethodArgs defaults) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -73,8 +67,6 @@ public Builder values(Output> values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -85,8 +77,6 @@ public Builder values(List values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionPathPatternArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionPathPatternArgs.java index c3dd8a99f12..44caff2ae87 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionPathPatternArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionPathPatternArgs.java @@ -17,8 +17,6 @@ public final class ListenerRuleConditionPathPatternArgs extends com.pulumi.resou /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ @Import(name="values", required=true) private Output> values; @@ -26,8 +24,6 @@ public final class ListenerRuleConditionPathPatternArgs extends com.pulumi.resou /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public Output> values() { return this.values; @@ -60,8 +56,6 @@ public Builder(ListenerRuleConditionPathPatternArgs defaults) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -73,8 +67,6 @@ public Builder values(Output> values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -85,8 +77,6 @@ public Builder values(List values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionSourceIpArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionSourceIpArgs.java index ef2f2321509..cf291ed56c4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionSourceIpArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerRuleConditionSourceIpArgs.java @@ -17,8 +17,6 @@ public final class ListenerRuleConditionSourceIpArgs extends com.pulumi.resource /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ @Import(name="values", required=true) private Output> values; @@ -26,8 +24,6 @@ public final class ListenerRuleConditionSourceIpArgs extends com.pulumi.resource /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public Output> values() { return this.values; @@ -60,8 +56,6 @@ public Builder(ListenerRuleConditionSourceIpArgs defaults) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -73,8 +67,6 @@ public Builder values(Output> values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ @@ -85,8 +77,6 @@ public Builder values(List values) { /** * @param values List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionHostHeader.java b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionHostHeader.java index 4e61e9ec670..62ab413fe09 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionHostHeader.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionHostHeader.java @@ -13,8 +13,6 @@ public final class ListenerRuleConditionHostHeader { /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ private List values; @@ -22,8 +20,6 @@ private ListenerRuleConditionHostHeader() {} /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public List values() { return this.values; diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionHttpRequestMethod.java b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionHttpRequestMethod.java index 020b1e4407b..5341f2b1cc0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionHttpRequestMethod.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionHttpRequestMethod.java @@ -13,8 +13,6 @@ public final class ListenerRuleConditionHttpRequestMethod { /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ private List values; @@ -22,8 +20,6 @@ private ListenerRuleConditionHttpRequestMethod() {} /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public List values() { return this.values; diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionPathPattern.java b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionPathPattern.java index 2d0e7418f4d..b7891e4ff26 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionPathPattern.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionPathPattern.java @@ -13,8 +13,6 @@ public final class ListenerRuleConditionPathPattern { /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ private List values; @@ -22,8 +20,6 @@ private ListenerRuleConditionPathPattern() {} /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public List values() { return this.values; diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionSourceIp.java b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionSourceIp.java index 997764de4f3..52a18dfb1a5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionSourceIp.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerRuleConditionSourceIp.java @@ -13,8 +13,6 @@ public final class ListenerRuleConditionSourceIp { /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ private List values; @@ -22,8 +20,6 @@ private ListenerRuleConditionSourceIp() {} /** * @return List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. * - * Query String Value Blocks (for `query_string.values`) support the following: - * */ public List values() { return this.values; diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/BotAbortStatementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/BotAbortStatementArgs.java index 56aebca85c7..c1ea07e657d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/BotAbortStatementArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/BotAbortStatementArgs.java @@ -17,9 +17,21 @@ public final class BotAbortStatementArgs extends com.pulumi.resources.ResourceAr public static final BotAbortStatementArgs Empty = new BotAbortStatementArgs(); + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + */ @Import(name="messages", required=true) private Output> messages; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + */ public Output> messages() { return this.messages; } @@ -28,8 +40,6 @@ public Output> messages() { * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * */ @Import(name="responseCard") @@ -39,8 +49,6 @@ public Output> messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * */ public Optional> responseCard() { @@ -72,15 +80,39 @@ public Builder(BotAbortStatementArgs defaults) { $ = new BotAbortStatementArgs(Objects.requireNonNull(defaults)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + * @return builder + * + */ public Builder messages(Output> messages) { $.messages = messages; return this; } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + * @return builder + * + */ public Builder messages(List messages) { return messages(Output.of(messages)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + * @return builder + * + */ public Builder messages(BotAbortStatementMessageArgs... messages) { return messages(List.of(messages)); } @@ -89,8 +121,6 @@ public Builder messages(BotAbortStatementMessageArgs... messages) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * * @return builder * @@ -104,8 +134,6 @@ public Builder responseCard(@Nullable Output responseCard) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/BotClarificationPromptArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/BotClarificationPromptArgs.java index 19d096a74bd..ce7b6527f9b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/BotClarificationPromptArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/BotClarificationPromptArgs.java @@ -33,9 +33,21 @@ public Output maxAttempts() { return this.maxAttempts; } + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + */ @Import(name="messages", required=true) private Output> messages; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + */ public Output> messages() { return this.messages; } @@ -44,8 +56,6 @@ public Output> messages() { * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * */ @Import(name="responseCard") @@ -55,8 +65,6 @@ public Output> messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * */ public Optional> responseCard() { @@ -110,15 +118,39 @@ public Builder maxAttempts(Integer maxAttempts) { return maxAttempts(Output.of(maxAttempts)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + * @return builder + * + */ public Builder messages(Output> messages) { $.messages = messages; return this; } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + * @return builder + * + */ public Builder messages(List messages) { return messages(Output.of(messages)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + * @return builder + * + */ public Builder messages(BotClarificationPromptMessageArgs... messages) { return messages(List.of(messages)); } @@ -127,8 +159,6 @@ public Builder messages(BotClarificationPromptMessageArgs... messages) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * * @return builder * @@ -142,8 +172,6 @@ public Builder responseCard(@Nullable Output responseCard) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentConclusionStatementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentConclusionStatementArgs.java index acc51e7f38a..40cddfa8cfc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentConclusionStatementArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentConclusionStatementArgs.java @@ -17,9 +17,21 @@ public final class IntentConclusionStatementArgs extends com.pulumi.resources.Re public static final IntentConclusionStatementArgs Empty = new IntentConclusionStatementArgs(); + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ @Import(name="messages", required=true) private Output> messages; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public Output> messages() { return this.messages; } @@ -28,10 +40,6 @@ public Output> messages() { * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ @Import(name="responseCard") @@ -41,10 +49,6 @@ public Output> messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional> responseCard() { @@ -76,15 +80,39 @@ public Builder(IntentConclusionStatementArgs defaults) { $ = new IntentConclusionStatementArgs(Objects.requireNonNull(defaults)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(Output> messages) { $.messages = messages; return this; } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(List messages) { return messages(Output.of(messages)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(IntentConclusionStatementMessageArgs... messages) { return messages(List.of(messages)); } @@ -93,10 +121,6 @@ public Builder messages(IntentConclusionStatementMessageArgs... messages) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * @@ -110,10 +134,6 @@ public Builder responseCard(@Nullable Output responseCard) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentConfirmationPromptArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentConfirmationPromptArgs.java index 232ea74b1f0..aeb90b31824 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentConfirmationPromptArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentConfirmationPromptArgs.java @@ -33,9 +33,21 @@ public Output maxAttempts() { return this.maxAttempts; } + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ @Import(name="messages", required=true) private Output> messages; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public Output> messages() { return this.messages; } @@ -44,10 +56,6 @@ public Output> messages() { * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ @Import(name="responseCard") @@ -57,10 +65,6 @@ public Output> messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional> responseCard() { @@ -114,15 +118,39 @@ public Builder maxAttempts(Integer maxAttempts) { return maxAttempts(Output.of(maxAttempts)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(Output> messages) { $.messages = messages; return this; } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(List messages) { return messages(Output.of(messages)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(IntentConfirmationPromptMessageArgs... messages) { return messages(List.of(messages)); } @@ -131,10 +159,6 @@ public Builder messages(IntentConfirmationPromptMessageArgs... messages) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * @@ -148,10 +172,6 @@ public Builder responseCard(@Nullable Output responseCard) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentFollowUpPromptRejectionStatementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentFollowUpPromptRejectionStatementArgs.java index caf63af5eee..15c1100477d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentFollowUpPromptRejectionStatementArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentFollowUpPromptRejectionStatementArgs.java @@ -17,9 +17,21 @@ public final class IntentFollowUpPromptRejectionStatementArgs extends com.pulumi public static final IntentFollowUpPromptRejectionStatementArgs Empty = new IntentFollowUpPromptRejectionStatementArgs(); + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ @Import(name="messages", required=true) private Output> messages; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public Output> messages() { return this.messages; } @@ -28,10 +40,6 @@ public Output> messages( * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ @Import(name="responseCard") @@ -41,10 +49,6 @@ public Output> messages( * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional> responseCard() { @@ -76,15 +80,39 @@ public Builder(IntentFollowUpPromptRejectionStatementArgs defaults) { $ = new IntentFollowUpPromptRejectionStatementArgs(Objects.requireNonNull(defaults)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(Output> messages) { $.messages = messages; return this; } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(List messages) { return messages(Output.of(messages)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(IntentFollowUpPromptRejectionStatementMessageArgs... messages) { return messages(List.of(messages)); } @@ -93,10 +121,6 @@ public Builder messages(IntentFollowUpPromptRejectionStatementMessageArgs... mes * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * @@ -110,10 +134,6 @@ public Builder responseCard(@Nullable Output responseCard) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentRejectionStatementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentRejectionStatementArgs.java index 1bf0f31190d..87eedb416d2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentRejectionStatementArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentRejectionStatementArgs.java @@ -17,9 +17,21 @@ public final class IntentRejectionStatementArgs extends com.pulumi.resources.Res public static final IntentRejectionStatementArgs Empty = new IntentRejectionStatementArgs(); + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ @Import(name="messages", required=true) private Output> messages; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public Output> messages() { return this.messages; } @@ -28,10 +40,6 @@ public Output> messages() { * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ @Import(name="responseCard") @@ -41,10 +49,6 @@ public Output> messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional> responseCard() { @@ -76,15 +80,39 @@ public Builder(IntentRejectionStatementArgs defaults) { $ = new IntentRejectionStatementArgs(Objects.requireNonNull(defaults)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(Output> messages) { $.messages = messages; return this; } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(List messages) { return messages(Output.of(messages)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(IntentRejectionStatementMessageArgs... messages) { return messages(List.of(messages)); } @@ -93,10 +121,6 @@ public Builder messages(IntentRejectionStatementMessageArgs... messages) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * @@ -110,10 +134,6 @@ public Builder responseCard(@Nullable Output responseCard) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentSlotValueElicitationPromptArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentSlotValueElicitationPromptArgs.java index e48338c2425..6789b283a2e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentSlotValueElicitationPromptArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/IntentSlotValueElicitationPromptArgs.java @@ -33,9 +33,21 @@ public Output maxAttempts() { return this.maxAttempts; } + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ @Import(name="messages", required=true) private Output> messages; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public Output> messages() { return this.messages; } @@ -44,10 +56,6 @@ public Output> messages() { * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ @Import(name="responseCard") @@ -57,10 +65,6 @@ public Output> messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional> responseCard() { @@ -114,15 +118,39 @@ public Builder maxAttempts(Integer maxAttempts) { return maxAttempts(Output.of(maxAttempts)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(Output> messages) { $.messages = messages; return this; } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(List messages) { return messages(Output.of(messages)); } + /** + * @param messages A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + * @return builder + * + */ public Builder messages(IntentSlotValueElicitationPromptMessageArgs... messages) { return messages(List.of(messages)); } @@ -131,10 +159,6 @@ public Builder messages(IntentSlotValueElicitationPromptMessageArgs... messages) * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * @@ -148,10 +172,6 @@ public Builder responseCard(@Nullable Output responseCard) { * @param responseCard The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/BotAbortStatement.java b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/BotAbortStatement.java index 757362115b8..eca6adfeafa 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/BotAbortStatement.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/BotAbortStatement.java @@ -13,18 +13,28 @@ @CustomType public final class BotAbortStatement { + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + */ private List messages; /** * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * */ private @Nullable String responseCard; private BotAbortStatement() {} + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + */ public List messages() { return this.messages; } @@ -32,8 +42,6 @@ public List messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * */ public Optional responseCard() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/BotClarificationPrompt.java b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/BotClarificationPrompt.java index f87cd02a4de..4ea16c6f9e4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/BotClarificationPrompt.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/BotClarificationPrompt.java @@ -19,13 +19,17 @@ public final class BotClarificationPrompt { * */ private Integer maxAttempts; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + */ private List messages; /** * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * */ private @Nullable String responseCard; @@ -38,6 +42,12 @@ private BotClarificationPrompt() {} public Integer maxAttempts() { return this.maxAttempts; } + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + * + */ public List messages() { return this.messages; } @@ -45,8 +55,6 @@ public List messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). * */ public Optional responseCard() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentConclusionStatement.java b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentConclusionStatement.java index 5a53fd7b75b..96291d82d9a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentConclusionStatement.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentConclusionStatement.java @@ -13,20 +13,28 @@ @CustomType public final class IntentConclusionStatement { + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ private List messages; /** * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ private @Nullable String responseCard; private IntentConclusionStatement() {} + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public List messages() { return this.messages; } @@ -34,10 +42,6 @@ public List messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional responseCard() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentConfirmationPrompt.java b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentConfirmationPrompt.java index 2168c7c2887..f4ae7d9c612 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentConfirmationPrompt.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentConfirmationPrompt.java @@ -19,15 +19,17 @@ public final class IntentConfirmationPrompt { * */ private Integer maxAttempts; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ private List messages; /** * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ private @Nullable String responseCard; @@ -40,6 +42,12 @@ private IntentConfirmationPrompt() {} public Integer maxAttempts() { return this.maxAttempts; } + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public List messages() { return this.messages; } @@ -47,10 +55,6 @@ public List messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional responseCard() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentFollowUpPromptRejectionStatement.java b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentFollowUpPromptRejectionStatement.java index 563c00321f8..f7ba3adeef4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentFollowUpPromptRejectionStatement.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentFollowUpPromptRejectionStatement.java @@ -13,20 +13,28 @@ @CustomType public final class IntentFollowUpPromptRejectionStatement { + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ private List messages; /** * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ private @Nullable String responseCard; private IntentFollowUpPromptRejectionStatement() {} + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public List messages() { return this.messages; } @@ -34,10 +42,6 @@ public List messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional responseCard() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentRejectionStatement.java b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentRejectionStatement.java index 419079bd4c6..0fe2064a9cc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentRejectionStatement.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentRejectionStatement.java @@ -13,20 +13,28 @@ @CustomType public final class IntentRejectionStatement { + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ private List messages; /** * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ private @Nullable String responseCard; private IntentRejectionStatement() {} + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public List messages() { return this.messages; } @@ -34,10 +42,6 @@ public List messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional responseCard() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentSlotValueElicitationPrompt.java b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentSlotValueElicitationPrompt.java index 2e0cf70e28f..748ff05b9e9 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentSlotValueElicitationPrompt.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/IntentSlotValueElicitationPrompt.java @@ -19,15 +19,17 @@ public final class IntentSlotValueElicitationPrompt { * */ private Integer maxAttempts; + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ private List messages; /** * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ private @Nullable String responseCard; @@ -40,6 +42,12 @@ private IntentSlotValueElicitationPrompt() {} public Integer maxAttempts() { return this.maxAttempts; } + /** + * @return A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + * + */ public List messages() { return this.messages; } @@ -47,10 +55,6 @@ public List messages() { * @return The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. * */ public Optional responseCard() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/macie2/inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/macie2/inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs.java index 1f5eb5840da..15636471a81 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/macie2/inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/macie2/inputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs.java @@ -17,14 +17,14 @@ public final class ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs ex public static final ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs Empty = new ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs(); /** - * An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * */ @Import(name="ands") private @Nullable Output> ands; /** - * @return An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * @return An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * */ public Optional>> ands() { @@ -56,7 +56,7 @@ public Builder(ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs defaul } /** - * @param ands An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * @param ands An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * * @return builder * @@ -67,7 +67,7 @@ public Builder ands(@Nullable Output> ands; /** - * @return An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * @return An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * */ public Optional>> ands() { @@ -56,7 +56,7 @@ public Builder(ClassificationJobS3JobDefinitionScopingIncludesArgs defaults) { } /** - * @param ands An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * @param ands An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * * @return builder * @@ -67,7 +67,7 @@ public Builder ands(@Nullable Output } /** - * @param ands An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * @param ands An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/macie2/outputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludes.java b/sdk/java/src/main/java/com/pulumi/aws/macie2/outputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludes.java index bd6aa98b15a..c18255edb79 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/macie2/outputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludes.java +++ b/sdk/java/src/main/java/com/pulumi/aws/macie2/outputs/ClassificationJobS3JobDefinitionBucketCriteriaIncludes.java @@ -12,14 +12,14 @@ @CustomType public final class ClassificationJobS3JobDefinitionBucketCriteriaIncludes { /** - * @return An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * @return An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * */ private @Nullable List ands; private ClassificationJobS3JobDefinitionBucketCriteriaIncludes() {} /** - * @return An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * @return An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * */ public List ands() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/macie2/outputs/ClassificationJobS3JobDefinitionScopingIncludes.java b/sdk/java/src/main/java/com/pulumi/aws/macie2/outputs/ClassificationJobS3JobDefinitionScopingIncludes.java index be31a5bdcf1..bb14d0b49ec 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/macie2/outputs/ClassificationJobS3JobDefinitionScopingIncludes.java +++ b/sdk/java/src/main/java/com/pulumi/aws/macie2/outputs/ClassificationJobS3JobDefinitionScopingIncludes.java @@ -12,14 +12,14 @@ @CustomType public final class ClassificationJobS3JobDefinitionScopingIncludes { /** - * @return An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * @return An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * */ private @Nullable List ands; private ClassificationJobS3JobDefinitionScopingIncludes() {} /** - * @return An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * @return An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) * */ public List ands() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs.java index f64171f8a32..6f071d04e7b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs.java @@ -46,14 +46,14 @@ public Output uri() { } /** - * Username for destination. + * . Username to be used. * */ @Import(name="username") private @Nullable Output username; /** - * @return Username for destination. + * @return . Username to be used. * */ public Optional> username() { @@ -129,7 +129,7 @@ public Builder uri(String uri) { } /** - * @param username Username for destination. + * @param username . Username to be used. * * @return builder * @@ -140,7 +140,7 @@ public Builder username(@Nullable Output username) { } /** - * @param username Username for destination. + * @param username . Username to be used. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs.java index efbcb086dde..23b4f44f17e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs.java @@ -46,14 +46,14 @@ public Output uri() { } /** - * Username for destination. + * . Username to be used. * */ @Import(name="username") private @Nullable Output username; /** - * @return Username for destination. + * @return . Username to be used. * */ public Optional> username() { @@ -129,7 +129,7 @@ public Builder uri(String uri) { } /** - * @param username Username for destination. + * @param username . Username to be used. * * @return builder * @@ -140,7 +140,7 @@ public Builder username(@Nullable Output username) { } /** - * @param username Username for destination. + * @param username . Username to be used. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs.java index c28b0e61e99..66c7ce7be6f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs.java @@ -46,14 +46,14 @@ public Output uri() { } /** - * Username for destination. + * . Username to be used. * */ @Import(name="username") private @Nullable Output username; /** - * @return Username for destination. + * @return . Username to be used. * */ public Optional> username() { @@ -129,7 +129,7 @@ public Builder uri(String uri) { } /** - * @param username Username for destination. + * @param username . Username to be used. * * @return builder * @@ -140,7 +140,7 @@ public Builder username(@Nullable Output username) { } /** - * @param username Username for destination. + * @param username . Username to be used. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs.java index 758e6cdf7b7..6bb2bc1b0ad 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs.java @@ -116,14 +116,14 @@ public Optional> entropyEncoding() { } /** - * Filters to apply to an encode. See H264 Filter Settings for more details. + * Filters to apply to an encode. See H265 Filter Settings for more details. * */ @Import(name="filterSettings") private @Nullable Output filterSettings; /** - * @return Filters to apply to an encode. See H264 Filter Settings for more details. + * @return Filters to apply to an encode. See H265 Filter Settings for more details. * */ public Optional> filterSettings() { @@ -288,14 +288,14 @@ public Optional> gopSizeUnits() { } /** - * H264 level. + * H265 level. * */ @Import(name="level") private @Nullable Output level; /** - * @return H264 level. + * @return H265 level. * */ public Optional> level() { @@ -793,7 +793,7 @@ public Builder entropyEncoding(String entropyEncoding) { } /** - * @param filterSettings Filters to apply to an encode. See H264 Filter Settings for more details. + * @param filterSettings Filters to apply to an encode. See H265 Filter Settings for more details. * * @return builder * @@ -804,7 +804,7 @@ public Builder filterSettings(@Nullable Output level) { } /** - * @param level H264 level. + * @param level H265 level. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs.java index 0b7ef58f58f..d61be4a97c8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs.java @@ -126,14 +126,14 @@ public Optional filterSettings; /** - * @return Filters to apply to an encode. See H264 Filter Settings for more details. + * @return Filters to apply to an encode. See H265 Filter Settings for more details. * */ public Optional> filterSettings() { @@ -238,14 +238,14 @@ public Optional> gopSizeUnits() { } /** - * H264 level. + * H265 level. * */ @Import(name="level") private @Nullable Output level; /** - * @return H264 level. + * @return H265 level. * */ public Optional> level() { @@ -655,7 +655,7 @@ public Builder colorSpaceSettings(ChannelEncoderSettingsVideoDescriptionCodecSet } /** - * @param filterSettings Filters to apply to an encode. See H264 Filter Settings for more details. + * @param filterSettings Filters to apply to an encode. See H265 Filter Settings for more details. * * @return builder * @@ -666,7 +666,7 @@ public Builder filterSettings(@Nullable Output level) { } /** - * @param level H264 level. + * @param level H265 level. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs.java index 9f1f9ea5b1c..d503c568a9f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/inputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs.java @@ -17,14 +17,14 @@ public final class ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverC public static final ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs Empty = new ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs(); /** - * The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + * The name of the audio selector used as the source for this AudioDescription. * */ @Import(name="audioSelectorName", required=true) private Output audioSelectorName; /** - * @return The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + * @return The name of the audio selector used as the source for this AudioDescription. * */ public Output audioSelectorName() { @@ -72,7 +72,7 @@ public Builder(ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverCondi } /** - * @param audioSelectorName The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + * @param audioSelectorName The name of the audio selector used as the source for this AudioDescription. * * @return builder * @@ -83,7 +83,7 @@ public Builder audioSelectorName(Output audioSelectorName) { } /** - * @param audioSelectorName The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + * @param audioSelectorName The name of the audio selector used as the source for this AudioDescription. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate.java index a58841ff14c..7e35e4926b3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate.java @@ -22,7 +22,7 @@ public final class ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInp */ private String uri; /** - * @return Username for destination. + * @return . Username to be used. * */ private @Nullable String username; @@ -43,7 +43,7 @@ public String uri() { return this.uri; } /** - * @return Username for destination. + * @return . Username to be used. * */ public Optional username() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer.java index 4a3e8aff167..73e20940804 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer.java @@ -22,7 +22,7 @@ public final class ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupS */ private String uri; /** - * @return Username for destination. + * @return . Username to be used. * */ private @Nullable String username; @@ -43,7 +43,7 @@ public String uri() { return this.uri; } /** - * @return Username for destination. + * @return . Username to be used. * */ public Optional username() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage.java index 39e0006d517..c678ad87e0c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage.java @@ -22,7 +22,7 @@ public final class ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutpu */ private String uri; /** - * @return Username for destination. + * @return . Username to be used. * */ private @Nullable String username; @@ -43,7 +43,7 @@ public String uri() { return this.uri; } /** - * @return Username for destination. + * @return . Username to be used. * */ public Optional username() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings.java index c07ea211b8f..3160549d858 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings.java @@ -46,7 +46,7 @@ public final class ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settin */ private @Nullable String entropyEncoding; /** - * @return Filters to apply to an encode. See H264 Filter Settings for more details. + * @return Filters to apply to an encode. See H265 Filter Settings for more details. * */ private @Nullable ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings filterSettings; @@ -102,7 +102,7 @@ public final class ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settin */ private @Nullable String gopSizeUnits; /** - * @return H264 level. + * @return H265 level. * */ private @Nullable String level; @@ -250,7 +250,7 @@ public Optional entropyEncoding() { return Optional.ofNullable(this.entropyEncoding); } /** - * @return Filters to apply to an encode. See H264 Filter Settings for more details. + * @return Filters to apply to an encode. See H265 Filter Settings for more details. * */ public Optional filterSettings() { @@ -330,7 +330,7 @@ public Optional gopSizeUnits() { return Optional.ofNullable(this.gopSizeUnits); } /** - * @return H264 level. + * @return H265 level. * */ public Optional level() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings.java index 6e1250aa26f..08a08d27d5d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings.java @@ -52,7 +52,7 @@ public final class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settin */ private @Nullable ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettings colorSpaceSettings; /** - * @return Filters to apply to an encode. See H264 Filter Settings for more details. + * @return Filters to apply to an encode. See H265 Filter Settings for more details. * */ private @Nullable ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings filterSettings; @@ -88,7 +88,7 @@ public final class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settin */ private @Nullable String gopSizeUnits; /** - * @return H264 level. + * @return H265 level. * */ private @Nullable String level; @@ -210,7 +210,7 @@ public Optional filterSettings() { @@ -262,7 +262,7 @@ public Optional gopSizeUnits() { return Optional.ofNullable(this.gopSizeUnits); } /** - * @return H264 level. + * @return H265 level. * */ public Optional level() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings.java b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings.java index 8a51a8d362d..c0d828c752d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/medialive/outputs/ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings.java @@ -13,7 +13,7 @@ @CustomType public final class ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings { /** - * @return The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + * @return The name of the audio selector used as the source for this AudioDescription. * */ private String audioSelectorName; @@ -25,7 +25,7 @@ public final class ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverC private ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings() {} /** - * @return The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + * @return The name of the audio selector used as the source for this AudioDescription. * */ public String audioSelectorName() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs.java b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs.java index 365c8fa15bd..93939447d6e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs.java @@ -16,14 +16,14 @@ public final class ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClie public static final ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs Empty = new ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs(); /** - * Enables SASL/IAM authentication for VPC connectivity. + * Enables IAM client authentication. Defaults to `false`. * */ @Import(name="iam") private @Nullable Output iam; /** - * @return Enables SASL/IAM authentication for VPC connectivity. + * @return Enables IAM client authentication. Defaults to `false`. * */ public Optional> iam() { @@ -31,14 +31,14 @@ public Optional> iam() { } /** - * Enables SASL/SCRAM authentication for VPC connectivity. + * Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * */ @Import(name="scram") private @Nullable Output scram; /** - * @return Enables SASL/SCRAM authentication for VPC connectivity. + * @return Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * */ public Optional> scram() { @@ -71,7 +71,7 @@ public Builder(ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAu } /** - * @param iam Enables SASL/IAM authentication for VPC connectivity. + * @param iam Enables IAM client authentication. Defaults to `false`. * * @return builder * @@ -82,7 +82,7 @@ public Builder iam(@Nullable Output iam) { } /** - * @param iam Enables SASL/IAM authentication for VPC connectivity. + * @param iam Enables IAM client authentication. Defaults to `false`. * * @return builder * @@ -92,7 +92,7 @@ public Builder iam(Boolean iam) { } /** - * @param scram Enables SASL/SCRAM authentication for VPC connectivity. + * @param scram Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * * @return builder * @@ -103,7 +103,7 @@ public Builder scram(@Nullable Output scram) { } /** - * @param scram Enables SASL/SCRAM authentication for VPC connectivity. + * @param scram Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterClientAuthenticationSaslArgs.java b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterClientAuthenticationSaslArgs.java index 80fbfb7fded..e27c1be02d1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterClientAuthenticationSaslArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterClientAuthenticationSaslArgs.java @@ -16,14 +16,14 @@ public final class ClusterClientAuthenticationSaslArgs extends com.pulumi.resour public static final ClusterClientAuthenticationSaslArgs Empty = new ClusterClientAuthenticationSaslArgs(); /** - * Enables SASL/IAM authentication for VPC connectivity. + * Enables IAM client authentication. Defaults to `false`. * */ @Import(name="iam") private @Nullable Output iam; /** - * @return Enables SASL/IAM authentication for VPC connectivity. + * @return Enables IAM client authentication. Defaults to `false`. * */ public Optional> iam() { @@ -31,14 +31,14 @@ public Optional> iam() { } /** - * Enables SASL/SCRAM authentication for VPC connectivity. + * Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * */ @Import(name="scram") private @Nullable Output scram; /** - * @return Enables SASL/SCRAM authentication for VPC connectivity. + * @return Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * */ public Optional> scram() { @@ -71,7 +71,7 @@ public Builder(ClusterClientAuthenticationSaslArgs defaults) { } /** - * @param iam Enables SASL/IAM authentication for VPC connectivity. + * @param iam Enables IAM client authentication. Defaults to `false`. * * @return builder * @@ -82,7 +82,7 @@ public Builder iam(@Nullable Output iam) { } /** - * @param iam Enables SASL/IAM authentication for VPC connectivity. + * @param iam Enables IAM client authentication. Defaults to `false`. * * @return builder * @@ -92,7 +92,7 @@ public Builder iam(Boolean iam) { } /** - * @param scram Enables SASL/SCRAM authentication for VPC connectivity. + * @param scram Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * * @return builder * @@ -103,7 +103,7 @@ public Builder scram(@Nullable Output scram) { } /** - * @param scram Enables SASL/SCRAM authentication for VPC connectivity. + * @param scram Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterOpenMonitoringPrometheusJmxExporterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterOpenMonitoringPrometheusJmxExporterArgs.java index 559b210f3bf..ed8f56a602e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterOpenMonitoringPrometheusJmxExporterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterOpenMonitoringPrometheusJmxExporterArgs.java @@ -14,14 +14,14 @@ public final class ClusterOpenMonitoringPrometheusJmxExporterArgs extends com.pu public static final ClusterOpenMonitoringPrometheusJmxExporterArgs Empty = new ClusterOpenMonitoringPrometheusJmxExporterArgs(); /** - * Indicates whether you want to enable or disable the JMX Exporter. + * Indicates whether you want to enable or disable the Node Exporter. * */ @Import(name="enabledInBroker", required=true) private Output enabledInBroker; /** - * @return Indicates whether you want to enable or disable the JMX Exporter. + * @return Indicates whether you want to enable or disable the Node Exporter. * */ public Output enabledInBroker() { @@ -53,7 +53,7 @@ public Builder(ClusterOpenMonitoringPrometheusJmxExporterArgs defaults) { } /** - * @param enabledInBroker Indicates whether you want to enable or disable the JMX Exporter. + * @param enabledInBroker Indicates whether you want to enable or disable the Node Exporter. * * @return builder * @@ -64,7 +64,7 @@ public Builder enabledInBroker(Output enabledInBroker) { } /** - * @param enabledInBroker Indicates whether you want to enable or disable the JMX Exporter. + * @param enabledInBroker Indicates whether you want to enable or disable the Node Exporter. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterOpenMonitoringPrometheusNodeExporterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterOpenMonitoringPrometheusNodeExporterArgs.java index 25512c93012..fbd51aaffc1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterOpenMonitoringPrometheusNodeExporterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/inputs/ClusterOpenMonitoringPrometheusNodeExporterArgs.java @@ -14,14 +14,14 @@ public final class ClusterOpenMonitoringPrometheusNodeExporterArgs extends com.p public static final ClusterOpenMonitoringPrometheusNodeExporterArgs Empty = new ClusterOpenMonitoringPrometheusNodeExporterArgs(); /** - * Indicates whether you want to enable or disable the JMX Exporter. + * Indicates whether you want to enable or disable the Node Exporter. * */ @Import(name="enabledInBroker", required=true) private Output enabledInBroker; /** - * @return Indicates whether you want to enable or disable the JMX Exporter. + * @return Indicates whether you want to enable or disable the Node Exporter. * */ public Output enabledInBroker() { @@ -53,7 +53,7 @@ public Builder(ClusterOpenMonitoringPrometheusNodeExporterArgs defaults) { } /** - * @param enabledInBroker Indicates whether you want to enable or disable the JMX Exporter. + * @param enabledInBroker Indicates whether you want to enable or disable the Node Exporter. * * @return builder * @@ -64,7 +64,7 @@ public Builder enabledInBroker(Output enabledInBroker) { } /** - * @param enabledInBroker Indicates whether you want to enable or disable the JMX Exporter. + * @param enabledInBroker Indicates whether you want to enable or disable the Node Exporter. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.java index cd87591326b..7e3cd77b13f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl.java @@ -12,26 +12,26 @@ @CustomType public final class ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl { /** - * @return Enables SASL/IAM authentication for VPC connectivity. + * @return Enables IAM client authentication. Defaults to `false`. * */ private @Nullable Boolean iam; /** - * @return Enables SASL/SCRAM authentication for VPC connectivity. + * @return Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * */ private @Nullable Boolean scram; private ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl() {} /** - * @return Enables SASL/IAM authentication for VPC connectivity. + * @return Enables IAM client authentication. Defaults to `false`. * */ public Optional iam() { return Optional.ofNullable(this.iam); } /** - * @return Enables SASL/SCRAM authentication for VPC connectivity. + * @return Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * */ public Optional scram() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterClientAuthenticationSasl.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterClientAuthenticationSasl.java index ae7252601b1..409fb06ab23 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterClientAuthenticationSasl.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterClientAuthenticationSasl.java @@ -12,26 +12,26 @@ @CustomType public final class ClusterClientAuthenticationSasl { /** - * @return Enables SASL/IAM authentication for VPC connectivity. + * @return Enables IAM client authentication. Defaults to `false`. * */ private @Nullable Boolean iam; /** - * @return Enables SASL/SCRAM authentication for VPC connectivity. + * @return Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * */ private @Nullable Boolean scram; private ClusterClientAuthenticationSasl() {} /** - * @return Enables SASL/IAM authentication for VPC connectivity. + * @return Enables IAM client authentication. Defaults to `false`. * */ public Optional iam() { return Optional.ofNullable(this.iam); } /** - * @return Enables SASL/SCRAM authentication for VPC connectivity. + * @return Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. * */ public Optional scram() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterOpenMonitoringPrometheusJmxExporter.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterOpenMonitoringPrometheusJmxExporter.java index f12f43c32cd..88bae1c82e8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterOpenMonitoringPrometheusJmxExporter.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterOpenMonitoringPrometheusJmxExporter.java @@ -10,14 +10,14 @@ @CustomType public final class ClusterOpenMonitoringPrometheusJmxExporter { /** - * @return Indicates whether you want to enable or disable the JMX Exporter. + * @return Indicates whether you want to enable or disable the Node Exporter. * */ private Boolean enabledInBroker; private ClusterOpenMonitoringPrometheusJmxExporter() {} /** - * @return Indicates whether you want to enable or disable the JMX Exporter. + * @return Indicates whether you want to enable or disable the Node Exporter. * */ public Boolean enabledInBroker() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterOpenMonitoringPrometheusNodeExporter.java b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterOpenMonitoringPrometheusNodeExporter.java index 527cafb776a..412e894d9f2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterOpenMonitoringPrometheusNodeExporter.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/outputs/ClusterOpenMonitoringPrometheusNodeExporter.java @@ -10,14 +10,14 @@ @CustomType public final class ClusterOpenMonitoringPrometheusNodeExporter { /** - * @return Indicates whether you want to enable or disable the JMX Exporter. + * @return Indicates whether you want to enable or disable the Node Exporter. * */ private Boolean enabledInBroker; private ClusterOpenMonitoringPrometheusNodeExporter() {} /** - * @return Indicates whether you want to enable or disable the JMX Exporter. + * @return Indicates whether you want to enable or disable the Node Exporter. * */ public Boolean enabledInBroker() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersActivemqBrokerParametersCredentialsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersActivemqBrokerParametersCredentialsArgs.java index 3c530cd9745..41fba9e4ba0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersActivemqBrokerParametersCredentialsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersActivemqBrokerParametersCredentialsArgs.java @@ -14,14 +14,14 @@ public final class PipeSourceParametersActivemqBrokerParametersCredentialsArgs e public static final PipeSourceParametersActivemqBrokerParametersCredentialsArgs Empty = new PipeSourceParametersActivemqBrokerParametersCredentialsArgs(); /** - * The ARN of the Secrets Manager secret containing the basic auth credentials. + * The ARN of the Secrets Manager secret containing the credentials. * */ @Import(name="basicAuth", required=true) private Output basicAuth; /** - * @return The ARN of the Secrets Manager secret containing the basic auth credentials. + * @return The ARN of the Secrets Manager secret containing the credentials. * */ public Output basicAuth() { @@ -53,7 +53,7 @@ public Builder(PipeSourceParametersActivemqBrokerParametersCredentialsArgs defau } /** - * @param basicAuth The ARN of the Secrets Manager secret containing the basic auth credentials. + * @param basicAuth The ARN of the Secrets Manager secret containing the credentials. * * @return builder * @@ -64,7 +64,7 @@ public Builder basicAuth(Output basicAuth) { } /** - * @param basicAuth The ARN of the Secrets Manager secret containing the basic auth credentials. + * @param basicAuth The ARN of the Secrets Manager secret containing the credentials. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs.java index 092d46cbbf4..f85eef60c4d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs.java @@ -14,14 +14,14 @@ public final class PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs e public static final PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs Empty = new PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs(); /** - * The ARN of the Secrets Manager secret containing the basic auth credentials. + * The ARN of the Secrets Manager secret containing the credentials. * */ @Import(name="basicAuth", required=true) private Output basicAuth; /** - * @return The ARN of the Secrets Manager secret containing the basic auth credentials. + * @return The ARN of the Secrets Manager secret containing the credentials. * */ public Output basicAuth() { @@ -53,7 +53,7 @@ public Builder(PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs defau } /** - * @param basicAuth The ARN of the Secrets Manager secret containing the basic auth credentials. + * @param basicAuth The ARN of the Secrets Manager secret containing the credentials. * * @return builder * @@ -64,7 +64,7 @@ public Builder basicAuth(Output basicAuth) { } /** - * @param basicAuth The ARN of the Secrets Manager secret containing the basic auth credentials. + * @param basicAuth The ARN of the Secrets Manager secret containing the credentials. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs.java index 7aaec74cfba..f1df137414e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs.java @@ -16,14 +16,14 @@ public final class PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs public static final PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs Empty = new PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs(); /** - * The ARN of the Secrets Manager secret containing the basic auth credentials. + * The ARN of the Secrets Manager secret containing the credentials. * */ @Import(name="basicAuth", required=true) private Output basicAuth; /** - * @return The ARN of the Secrets Manager secret containing the basic auth credentials. + * @return The ARN of the Secrets Manager secret containing the credentials. * */ public Output basicAuth() { @@ -103,7 +103,7 @@ public Builder(PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs def } /** - * @param basicAuth The ARN of the Secrets Manager secret containing the basic auth credentials. + * @param basicAuth The ARN of the Secrets Manager secret containing the credentials. * * @return builder * @@ -114,7 +114,7 @@ public Builder basicAuth(Output basicAuth) { } /** - * @param basicAuth The ARN of the Secrets Manager secret containing the basic auth credentials. + * @param basicAuth The ARN of the Secrets Manager secret containing the credentials. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersContainerOverridesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersContainerOverridesArgs.java index ddf7faefdb9..e2c4cda5ed8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersContainerOverridesArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersContainerOverridesArgs.java @@ -19,14 +19,14 @@ public final class PipeTargetParametersBatchJobParametersContainerOverridesArgs public static final PipeTargetParametersBatchJobParametersContainerOverridesArgs Empty = new PipeTargetParametersBatchJobParametersContainerOverridesArgs(); /** - * List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * */ @Import(name="commands") private @Nullable Output> commands; /** - * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * */ public Optional>> commands() { @@ -34,14 +34,14 @@ public Optional>> commands() { } /** - * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. * */ @Import(name="environments") private @Nullable Output> environments; /** - * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. * */ public Optional>> environments() { @@ -64,14 +64,14 @@ public Optional> instanceType() { } /** - * The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. * */ @Import(name="resourceRequirements") private @Nullable Output> resourceRequirements; /** - * @return The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * @return The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. * */ public Optional>> resourceRequirements() { @@ -106,7 +106,7 @@ public Builder(PipeTargetParametersBatchJobParametersContainerOverridesArgs defa } /** - * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * * @return builder * @@ -117,7 +117,7 @@ public Builder commands(@Nullable Output> commands) { } /** - * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * * @return builder * @@ -127,7 +127,7 @@ public Builder commands(List commands) { } /** - * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * * @return builder * @@ -137,7 +137,7 @@ public Builder commands(String... commands) { } /** - * @param environments The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * @param environments The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. * * @return builder * @@ -148,7 +148,7 @@ public Builder environments(@Nullable Output> name() { } /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ @Import(name="value") private @Nullable Output value; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public Optional> value() { @@ -92,7 +92,7 @@ public Builder name(String name) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * @@ -103,7 +103,7 @@ public Builder value(@Nullable Output value) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs.java index 0f87f1d2580..6c2f66167f2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs.java @@ -14,14 +14,14 @@ public final class PipeTargetParametersBatchJobParametersContainerOverridesResou public static final PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs Empty = new PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs(); /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ @Import(name="type", required=true) private Output type; /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public Output type() { @@ -29,14 +29,14 @@ public Output type() { } /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ @Import(name="value", required=true) private Output value; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public Output value() { @@ -69,7 +69,7 @@ public Builder(PipeTargetParametersBatchJobParametersContainerOverridesResourceR } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * @@ -80,7 +80,7 @@ public Builder type(Output type) { } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * @@ -90,7 +90,7 @@ public Builder type(String type) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * @@ -101,7 +101,7 @@ public Builder value(Output value) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersDependsOnArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersDependsOnArgs.java index e96381391e1..042f88d32c3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersDependsOnArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersBatchJobParametersDependsOnArgs.java @@ -31,14 +31,14 @@ public Optional> jobId() { } /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ @Import(name="type") private @Nullable Output type; /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public Optional> type() { @@ -92,7 +92,7 @@ public Builder jobId(String jobId) { } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * @@ -103,7 +103,7 @@ public Builder type(@Nullable Output type) { } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesArgs.java index 5e6d65d5c2c..1f8c616ce26 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesArgs.java @@ -35,14 +35,14 @@ public Optional cpu; /** - * @return The cpu override for the task. + * @return The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * */ public Optional> cpu() { @@ -95,14 +95,14 @@ public Optional memory; /** - * @return The memory override for the task. + * @return The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. * */ public Optional> memory() { @@ -186,7 +186,7 @@ public Builder containerOverrides(PipeTargetParametersEcsTaskParametersOverrides } /** - * @param cpu The cpu override for the task. + * @param cpu The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * * @return builder * @@ -197,7 +197,7 @@ public Builder cpu(@Nullable Output cpu) { } /** - * @param cpu The cpu override for the task. + * @param cpu The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * * @return builder * @@ -280,7 +280,7 @@ public Builder inferenceAcceleratorOverrides(PipeTargetParametersEcsTaskParamete } /** - * @param memory The memory override for the task. + * @param memory The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. * * @return builder * @@ -291,7 +291,7 @@ public Builder memory(@Nullable Output memory) { } /** - * @param memory The memory override for the task. + * @param memory The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs.java index 1a66a8d6740..7631060c159 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs.java @@ -21,14 +21,14 @@ public final class PipeTargetParametersEcsTaskParametersOverridesContainerOverri public static final PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs Empty = new PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs(); /** - * List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * */ @Import(name="commands") private @Nullable Output> commands; /** - * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * */ public Optional>> commands() { @@ -36,14 +36,14 @@ public Optional>> commands() { } /** - * The cpu override for the task. + * The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * */ @Import(name="cpu") private @Nullable Output cpu; /** - * @return The cpu override for the task. + * @return The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * */ public Optional> cpu() { @@ -66,14 +66,14 @@ public Optional> environments; /** - * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. * */ public Optional>> environments() { @@ -81,14 +81,14 @@ public Optional memory; /** - * @return The memory override for the task. + * @return The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. * */ public Optional> memory() { @@ -126,14 +126,14 @@ public Optional> name() { } /** - * The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. * */ @Import(name="resourceRequirements") private @Nullable Output> resourceRequirements; /** - * @return The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * @return The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. * */ public Optional>> resourceRequirements() { @@ -172,7 +172,7 @@ public Builder(PipeTargetParametersEcsTaskParametersOverridesContainerOverrideAr } /** - * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * * @return builder * @@ -183,7 +183,7 @@ public Builder commands(@Nullable Output> commands) { } /** - * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * * @return builder * @@ -193,7 +193,7 @@ public Builder commands(List commands) { } /** - * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @param commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * * @return builder * @@ -203,7 +203,7 @@ public Builder commands(String... commands) { } /** - * @param cpu The cpu override for the task. + * @param cpu The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * * @return builder * @@ -214,7 +214,7 @@ public Builder cpu(@Nullable Output cpu) { } /** - * @param cpu The cpu override for the task. + * @param cpu The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * * @return builder * @@ -255,7 +255,7 @@ public Builder environmentFiles(PipeTargetParametersEcsTaskParametersOverridesCo } /** - * @param environments The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * @param environments The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. * * @return builder * @@ -266,7 +266,7 @@ public Builder environments(@Nullable Output memory) { } /** - * @param memory The memory override for the task. + * @param memory The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. * * @return builder * @@ -349,7 +349,7 @@ public Builder name(String name) { } /** - * @param resourceRequirements The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * @param resourceRequirements The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. * * @return builder * @@ -360,7 +360,7 @@ public Builder resourceRequirements(@Nullable Output> name() { } /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ @Import(name="value") private @Nullable Output value; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public Optional> value() { @@ -92,7 +92,7 @@ public Builder name(String name) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * @@ -103,7 +103,7 @@ public Builder value(@Nullable Output value) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs.java index 8eaa680006c..4485e9762ca 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs.java @@ -14,14 +14,14 @@ public final class PipeTargetParametersEcsTaskParametersOverridesContainerOverri public static final PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs Empty = new PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs(); /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ @Import(name="type", required=true) private Output type; /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public Output type() { @@ -29,14 +29,14 @@ public Output type() { } /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ @Import(name="value", required=true) private Output value; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public Output value() { @@ -69,7 +69,7 @@ public Builder(PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEn } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * @@ -80,7 +80,7 @@ public Builder type(Output type) { } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * @@ -90,7 +90,7 @@ public Builder type(String type) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * @@ -101,7 +101,7 @@ public Builder value(Output value) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs.java index b9a599e6e34..707ae0136d6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs.java @@ -14,14 +14,14 @@ public final class PipeTargetParametersEcsTaskParametersOverridesContainerOverri public static final PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs Empty = new PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs(); /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ @Import(name="type", required=true) private Output type; /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public Output type() { @@ -29,14 +29,14 @@ public Output type() { } /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ @Import(name="value", required=true) private Output value; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public Output value() { @@ -69,7 +69,7 @@ public Builder(PipeTargetParametersEcsTaskParametersOverridesContainerOverrideRe } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * @@ -80,7 +80,7 @@ public Builder type(Output type) { } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * @@ -90,7 +90,7 @@ public Builder type(String type) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * @@ -101,7 +101,7 @@ public Builder value(Output value) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintArgs.java index 1ff6c0d021f..71c1dad9b98 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersPlacementConstraintArgs.java @@ -31,14 +31,14 @@ public Optional> expression() { } /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ @Import(name="type") private @Nullable Output type; /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public Optional> type() { @@ -92,7 +92,7 @@ public Builder expression(String expression) { } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * @@ -103,7 +103,7 @@ public Builder type(@Nullable Output type) { } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyArgs.java index ff1d468bc5f..cab0e988fe2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersEcsTaskParametersPlacementStrategyArgs.java @@ -31,14 +31,14 @@ public Optional> field() { } /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ @Import(name="type") private @Nullable Output type; /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public Optional> type() { @@ -92,7 +92,7 @@ public Builder field(String field) { } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * @@ -103,7 +103,7 @@ public Builder type(@Nullable Output type) { } /** - * @param type The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @param type The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs.java index 834c01f3b26..4783e8bac5d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/inputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs.java @@ -29,14 +29,14 @@ public Output name() { } /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ @Import(name="value", required=true) private Output value; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public Output value() { @@ -90,7 +90,7 @@ public Builder name(String name) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * @@ -101,7 +101,7 @@ public Builder value(Output value) { } /** - * @param value The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @param value Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersActivemqBrokerParametersCredentials.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersActivemqBrokerParametersCredentials.java index d6a9782a9f9..1fb16ac08c5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersActivemqBrokerParametersCredentials.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersActivemqBrokerParametersCredentials.java @@ -10,14 +10,14 @@ @CustomType public final class PipeSourceParametersActivemqBrokerParametersCredentials { /** - * @return The ARN of the Secrets Manager secret containing the basic auth credentials. + * @return The ARN of the Secrets Manager secret containing the credentials. * */ private String basicAuth; private PipeSourceParametersActivemqBrokerParametersCredentials() {} /** - * @return The ARN of the Secrets Manager secret containing the basic auth credentials. + * @return The ARN of the Secrets Manager secret containing the credentials. * */ public String basicAuth() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersRabbitmqBrokerParametersCredentials.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersRabbitmqBrokerParametersCredentials.java index 2c657973145..ffa10426c18 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersRabbitmqBrokerParametersCredentials.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersRabbitmqBrokerParametersCredentials.java @@ -10,14 +10,14 @@ @CustomType public final class PipeSourceParametersRabbitmqBrokerParametersCredentials { /** - * @return The ARN of the Secrets Manager secret containing the basic auth credentials. + * @return The ARN of the Secrets Manager secret containing the credentials. * */ private String basicAuth; private PipeSourceParametersRabbitmqBrokerParametersCredentials() {} /** - * @return The ARN of the Secrets Manager secret containing the basic auth credentials. + * @return The ARN of the Secrets Manager secret containing the credentials. * */ public String basicAuth() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersSelfManagedKafkaParametersCredentials.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersSelfManagedKafkaParametersCredentials.java index a2ac6b4baa2..8aa0bb5882f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersSelfManagedKafkaParametersCredentials.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeSourceParametersSelfManagedKafkaParametersCredentials.java @@ -12,7 +12,7 @@ @CustomType public final class PipeSourceParametersSelfManagedKafkaParametersCredentials { /** - * @return The ARN of the Secrets Manager secret containing the basic auth credentials. + * @return The ARN of the Secrets Manager secret containing the credentials. * */ private String basicAuth; @@ -34,7 +34,7 @@ public final class PipeSourceParametersSelfManagedKafkaParametersCredentials { private PipeSourceParametersSelfManagedKafkaParametersCredentials() {} /** - * @return The ARN of the Secrets Manager secret containing the basic auth credentials. + * @return The ARN of the Secrets Manager secret containing the credentials. * */ public String basicAuth() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverrides.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverrides.java index 8a0bca551c1..6b5278b43f8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverrides.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverrides.java @@ -15,12 +15,12 @@ @CustomType public final class PipeTargetParametersBatchJobParametersContainerOverrides { /** - * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * */ private @Nullable List commands; /** - * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. * */ private @Nullable List environments; @@ -30,21 +30,21 @@ public final class PipeTargetParametersBatchJobParametersContainerOverrides { */ private @Nullable String instanceType; /** - * @return The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * @return The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. * */ private @Nullable List resourceRequirements; private PipeTargetParametersBatchJobParametersContainerOverrides() {} /** - * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * */ public List commands() { return this.commands == null ? List.of() : this.commands; } /** - * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. * */ public List environments() { @@ -58,7 +58,7 @@ public Optional instanceType() { return Optional.ofNullable(this.instanceType); } /** - * @return The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * @return The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. * */ public List resourceRequirements() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironment.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironment.java index bdacdb517ec..23ca5a2c080 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironment.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverridesEnvironment.java @@ -17,7 +17,7 @@ public final class PipeTargetParametersBatchJobParametersContainerOverridesEnvir */ private @Nullable String name; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ private @Nullable String value; @@ -31,7 +31,7 @@ public Optional name() { return Optional.ofNullable(this.name); } /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public Optional value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement.java index 8dc4c3a8cc9..32c5425409c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement.java @@ -10,26 +10,26 @@ @CustomType public final class PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement { /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ private String type; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ private String value; private PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement() {} /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public String type() { return this.type; } /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public String value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersDependsOn.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersDependsOn.java index d1724f09043..0e4f1e87079 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersDependsOn.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersBatchJobParametersDependsOn.java @@ -17,7 +17,7 @@ public final class PipeTargetParametersBatchJobParametersDependsOn { */ private @Nullable String jobId; /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ private @Nullable String type; @@ -31,7 +31,7 @@ public Optional jobId() { return Optional.ofNullable(this.jobId); } /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public Optional type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverrides.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverrides.java index c149e96e9e8..54cbcd38766 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverrides.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverrides.java @@ -21,7 +21,7 @@ public final class PipeTargetParametersEcsTaskParametersOverrides { */ private @Nullable List containerOverrides; /** - * @return The cpu override for the task. + * @return The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * */ private @Nullable String cpu; @@ -41,7 +41,7 @@ public final class PipeTargetParametersEcsTaskParametersOverrides { */ private @Nullable List inferenceAcceleratorOverrides; /** - * @return The memory override for the task. + * @return The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. * */ private @Nullable String memory; @@ -60,7 +60,7 @@ public List con return this.containerOverrides == null ? List.of() : this.containerOverrides; } /** - * @return The cpu override for the task. + * @return The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * */ public Optional cpu() { @@ -88,7 +88,7 @@ public List memory() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverride.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverride.java index 4fecf52ce9e..c2fe846ba04 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverride.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverride.java @@ -17,12 +17,12 @@ @CustomType public final class PipeTargetParametersEcsTaskParametersOverridesContainerOverride { /** - * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * */ private @Nullable List commands; /** - * @return The cpu override for the task. + * @return The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * */ private @Nullable Integer cpu; @@ -32,12 +32,12 @@ public final class PipeTargetParametersEcsTaskParametersOverridesContainerOverri */ private @Nullable List environmentFiles; /** - * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * @return The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. * */ private @Nullable List environments; /** - * @return The memory override for the task. + * @return The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. * */ private @Nullable Integer memory; @@ -52,21 +52,21 @@ public final class PipeTargetParametersEcsTaskParametersOverridesContainerOverri */ private @Nullable String name; /** - * @return The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * @return The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. * */ private @Nullable List resourceRequirements; private PipeTargetParametersEcsTaskParametersOverridesContainerOverride() {} /** - * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * @return List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. * */ public List commands() { return this.commands == null ? List.of() : this.commands; } /** - * @return The cpu override for the task. + * @return The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. * */ public Optional cpu() { @@ -80,14 +80,14 @@ public List environments() { return this.environments == null ? List.of() : this.environments; } /** - * @return The memory override for the task. + * @return The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. * */ public Optional memory() { @@ -108,7 +108,7 @@ public Optional name() { return Optional.ofNullable(this.name); } /** - * @return The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * @return The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. * */ public List resourceRequirements() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment.java index cb1a10da5c2..e50947a43fb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment.java @@ -17,7 +17,7 @@ public final class PipeTargetParametersEcsTaskParametersOverridesContainerOverri */ private @Nullable String name; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ private @Nullable String value; @@ -31,7 +31,7 @@ public Optional name() { return Optional.ofNullable(this.name); } /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public Optional value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile.java index 18e8391441b..22973724a1f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile.java @@ -10,26 +10,26 @@ @CustomType public final class PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile { /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ private String type; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ private String value; private PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile() {} /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public String type() { return this.type; } /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public String value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement.java index 9cd17378453..4c71cc5b27e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement.java @@ -10,26 +10,26 @@ @CustomType public final class PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement { /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ private String type; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ private String value; private PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement() {} /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public String type() { return this.type; } /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public String value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersPlacementConstraint.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersPlacementConstraint.java index dfa22e95012..75b7b912c67 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersPlacementConstraint.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersPlacementConstraint.java @@ -17,7 +17,7 @@ public final class PipeTargetParametersEcsTaskParametersPlacementConstraint { */ private @Nullable String expression; /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ private @Nullable String type; @@ -31,7 +31,7 @@ public Optional expression() { return Optional.ofNullable(this.expression); } /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public Optional type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersPlacementStrategy.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersPlacementStrategy.java index c7f0e111ef0..7bc859ebeb5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersPlacementStrategy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersEcsTaskParametersPlacementStrategy.java @@ -17,7 +17,7 @@ public final class PipeTargetParametersEcsTaskParametersPlacementStrategy { */ private @Nullable String field; /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ private @Nullable String type; @@ -31,7 +31,7 @@ public Optional field() { return Optional.ofNullable(this.field); } /** - * @return The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * @return The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. * */ public Optional type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameter.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameter.java index 89d1ea31908..e1504ac8403 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameter.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/outputs/PipeTargetParametersSagemakerPipelineParametersPipelineParameter.java @@ -15,7 +15,7 @@ public final class PipeTargetParametersSagemakerPipelineParametersPipelineParame */ private String name; /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ private String value; @@ -29,7 +29,7 @@ public String name() { return this.name; } /** - * @return The value of the key-value pair. For environment variables, this is the value of the environment variable. + * @return Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. * */ public String value() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.java index c216e2dc681..10c5947589d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.java @@ -61,14 +61,14 @@ public Optional> format() { } /** - * Object prefix for filtering. + * Prefix to append to exported analytics data. * */ @Import(name="prefix") private @Nullable Output prefix; /** - * @return Object prefix for filtering. + * @return Prefix to append to exported analytics data. * */ public Optional> prefix() { @@ -166,7 +166,7 @@ public Builder format(String format) { } /** - * @param prefix Object prefix for filtering. + * @param prefix Prefix to append to exported analytics data. * * @return builder * @@ -177,7 +177,7 @@ public Builder prefix(@Nullable Output prefix) { } /** - * @param prefix Object prefix for filtering. + * @param prefix Prefix to append to exported analytics data. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/outputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination.java b/sdk/java/src/main/java/com/pulumi/aws/s3/outputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination.java index de7da212bb3..913349747e0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/s3/outputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination.java +++ b/sdk/java/src/main/java/com/pulumi/aws/s3/outputs/AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination.java @@ -27,7 +27,7 @@ public final class AnalyticsConfigurationStorageClassAnalysisDataExportDestinati */ private @Nullable String format; /** - * @return Object prefix for filtering. + * @return Prefix to append to exported analytics data. * */ private @Nullable String prefix; @@ -55,7 +55,7 @@ public Optional format() { return Optional.ofNullable(this.format); } /** - * @return Object prefix for filtering. + * @return Prefix to append to exported analytics data. * */ public Optional prefix() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/scheduler/Schedule.java b/sdk/java/src/main/java/com/pulumi/aws/scheduler/Schedule.java index 47c2f1713d5..54529d61496 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/scheduler/Schedule.java +++ b/sdk/java/src/main/java/com/pulumi/aws/scheduler/Schedule.java @@ -123,14 +123,14 @@ @ResourceType(type="aws:scheduler/schedule:Schedule") public class Schedule extends com.pulumi.resources.CustomResource { /** - * ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + * ARN of the SQS queue specified as the destination for the dead-letter queue. * */ @Export(name="arn", refs={String.class}, tree="[0]") private Output arn; /** - * @return ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + * @return ARN of the SQS queue specified as the destination for the dead-letter queue. * */ public Output arn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/scheduler/inputs/ScheduleState.java b/sdk/java/src/main/java/com/pulumi/aws/scheduler/inputs/ScheduleState.java index a47aefa73d0..5a643a37ce4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/scheduler/inputs/ScheduleState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/scheduler/inputs/ScheduleState.java @@ -18,14 +18,14 @@ public final class ScheduleState extends com.pulumi.resources.ResourceArgs { public static final ScheduleState Empty = new ScheduleState(); /** - * ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + * ARN of the SQS queue specified as the destination for the dead-letter queue. * */ @Import(name="arn") private @Nullable Output arn; /** - * @return ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + * @return ARN of the SQS queue specified as the destination for the dead-letter queue. * */ public Optional> arn() { @@ -253,7 +253,7 @@ public Builder(ScheduleState defaults) { } /** - * @param arn ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + * @param arn ARN of the SQS queue specified as the destination for the dead-letter queue. * * @return builder * @@ -264,7 +264,7 @@ public Builder arn(@Nullable Output arn) { } /** - * @param arn ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + * @param arn ARN of the SQS queue specified as the destination for the dead-letter queue. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/signer/inputs/SigningJobSignedObjectArgs.java b/sdk/java/src/main/java/com/pulumi/aws/signer/inputs/SigningJobSignedObjectArgs.java index b5084bf84c0..a9ef73f5757 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/signer/inputs/SigningJobSignedObjectArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/signer/inputs/SigningJobSignedObjectArgs.java @@ -17,14 +17,14 @@ public final class SigningJobSignedObjectArgs extends com.pulumi.resources.Resou public static final SigningJobSignedObjectArgs Empty = new SigningJobSignedObjectArgs(); /** - * A configuration block describing the S3 Source object: See S3 Source below for details. + * A configuration block describing the S3 Destination object: See S3 Destination below for details. * */ @Import(name="s3s") private @Nullable Output> s3s; /** - * @return A configuration block describing the S3 Source object: See S3 Source below for details. + * @return A configuration block describing the S3 Destination object: See S3 Destination below for details. * */ public Optional>> s3s() { @@ -56,7 +56,7 @@ public Builder(SigningJobSignedObjectArgs defaults) { } /** - * @param s3s A configuration block describing the S3 Source object: See S3 Source below for details. + * @param s3s A configuration block describing the S3 Destination object: See S3 Destination below for details. * * @return builder * @@ -67,7 +67,7 @@ public Builder s3s(@Nullable Output> s3s) { } /** - * @param s3s A configuration block describing the S3 Source object: See S3 Source below for details. + * @param s3s A configuration block describing the S3 Destination object: See S3 Destination below for details. * * @return builder * @@ -77,7 +77,7 @@ public Builder s3s(List s3s) { } /** - * @param s3s A configuration block describing the S3 Source object: See S3 Source below for details. + * @param s3s A configuration block describing the S3 Destination object: See S3 Destination below for details. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/signer/outputs/SigningJobSignedObject.java b/sdk/java/src/main/java/com/pulumi/aws/signer/outputs/SigningJobSignedObject.java index 139b9df2790..6a90f7be0f4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/signer/outputs/SigningJobSignedObject.java +++ b/sdk/java/src/main/java/com/pulumi/aws/signer/outputs/SigningJobSignedObject.java @@ -12,14 +12,14 @@ @CustomType public final class SigningJobSignedObject { /** - * @return A configuration block describing the S3 Source object: See S3 Source below for details. + * @return A configuration block describing the S3 Destination object: See S3 Destination below for details. * */ private @Nullable List s3s; private SigningJobSignedObject() {} /** - * @return A configuration block describing the S3 Source object: See S3 Source below for details. + * @return A configuration block describing the S3 Destination object: See S3 Destination below for details. * */ public List s3s() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepArgs.java index c96372878a5..beb679c617d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepArgs.java @@ -96,14 +96,14 @@ public Optional> tagStepDetail } /** - * One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * The type of encryption used. Currently, this value must be `"PGP"`. * */ @Import(name="type", required=true) private Output type; /** - * @return One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @return The type of encryption used. Currently, this value must be `"PGP"`. * */ public Output type() { @@ -245,7 +245,7 @@ public Builder tagStepDetails(WorkflowOnExceptionStepTagStepDetailsArgs tagStepD } /** - * @param type One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @param type The type of encryption used. Currently, this value must be `"PGP"`. * * @return builder * @@ -256,7 +256,7 @@ public Builder type(Output type) { } /** - * @param type One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @param type The type of encryption used. Currently, this value must be `"PGP"`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.java index f4c5e08dd2c..8c453a1c14c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.java @@ -31,14 +31,14 @@ public Optional> bucket() { } /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. * */ @Import(name="key") private @Nullable Output key; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Optional> key() { @@ -92,7 +92,7 @@ public Builder bucket(String bucket) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * @@ -103,7 +103,7 @@ public Builder key(@Nullable Output key) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.java index d405c9260aa..9cd94f3c35b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.java @@ -31,14 +31,14 @@ public Optional> bucket() { } /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. * */ @Import(name="key") private @Nullable Output key; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Optional> key() { @@ -92,7 +92,7 @@ public Builder bucket(String bucket) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * @@ -103,7 +103,7 @@ public Builder key(@Nullable Output key) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepTagStepDetailsTagArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepTagStepDetailsTagArgs.java index 9a314b82261..f802e2a763d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepTagStepDetailsTagArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowOnExceptionStepTagStepDetailsTagArgs.java @@ -14,14 +14,14 @@ public final class WorkflowOnExceptionStepTagStepDetailsTagArgs extends com.pulu public static final WorkflowOnExceptionStepTagStepDetailsTagArgs Empty = new WorkflowOnExceptionStepTagStepDetailsTagArgs(); /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. * */ @Import(name="key", required=true) private Output key; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Output key() { @@ -69,7 +69,7 @@ public Builder(WorkflowOnExceptionStepTagStepDetailsTagArgs defaults) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * @@ -80,7 +80,7 @@ public Builder key(Output key) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepArgs.java index a65fea10d9d..1ecdf655918 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepArgs.java @@ -96,14 +96,14 @@ public Optional> tagStepDetails() { } /** - * One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * The type of encryption used. Currently, this value must be `"PGP"`. * */ @Import(name="type", required=true) private Output type; /** - * @return One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @return The type of encryption used. Currently, this value must be `"PGP"`. * */ public Output type() { @@ -245,7 +245,7 @@ public Builder tagStepDetails(WorkflowStepTagStepDetailsArgs tagStepDetails) { } /** - * @param type One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @param type The type of encryption used. Currently, this value must be `"PGP"`. * * @return builder * @@ -256,7 +256,7 @@ public Builder type(Output type) { } /** - * @param type One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @param type The type of encryption used. Currently, this value must be `"PGP"`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.java index db5ce872445..bbc406d8d4a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs.java @@ -31,14 +31,14 @@ public Optional> bucket() { } /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. * */ @Import(name="key") private @Nullable Output key; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Optional> key() { @@ -92,7 +92,7 @@ public Builder bucket(String bucket) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * @@ -103,7 +103,7 @@ public Builder key(@Nullable Output key) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.java index 039408d092e..60c910ccd46 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs.java @@ -31,14 +31,14 @@ public Optional> bucket() { } /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. * */ @Import(name="key") private @Nullable Output key; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Optional> key() { @@ -92,7 +92,7 @@ public Builder bucket(String bucket) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * @@ -103,7 +103,7 @@ public Builder key(@Nullable Output key) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepTagStepDetailsTagArgs.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepTagStepDetailsTagArgs.java index 21fb98e9fdd..d6123a576af 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepTagStepDetailsTagArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/inputs/WorkflowStepTagStepDetailsTagArgs.java @@ -14,14 +14,14 @@ public final class WorkflowStepTagStepDetailsTagArgs extends com.pulumi.resource public static final WorkflowStepTagStepDetailsTagArgs Empty = new WorkflowStepTagStepDetailsTagArgs(); /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. * */ @Import(name="key", required=true) private Output key; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Output key() { @@ -69,7 +69,7 @@ public Builder(WorkflowStepTagStepDetailsTagArgs defaults) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * @@ -80,7 +80,7 @@ public Builder key(Output key) { } /** - * @param key The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @param key The name assigned to the tag that you create. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStep.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStep.java index ed72c38be67..46827c55300 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStep.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStep.java @@ -42,7 +42,7 @@ public final class WorkflowOnExceptionStep { */ private @Nullable WorkflowOnExceptionStepTagStepDetails tagStepDetails; /** - * @return One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @return The type of encryption used. Currently, this value must be `"PGP"`. * */ private String type; @@ -84,7 +84,7 @@ public Optional tagStepDetails() { return Optional.ofNullable(this.tagStepDetails); } /** - * @return One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @return The type of encryption used. Currently, this value must be `"PGP"`. * */ public String type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation.java index 8e0feb9a8e3..4a3641abd2c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation.java @@ -17,7 +17,7 @@ public final class WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocation */ private @Nullable String bucket; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ private @Nullable String key; @@ -31,7 +31,7 @@ public Optional bucket() { return Optional.ofNullable(this.bucket); } /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Optional key() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation.java index 9cd5849388c..0da7f167426 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation.java @@ -17,7 +17,7 @@ public final class WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocat */ private @Nullable String bucket; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ private @Nullable String key; @@ -31,7 +31,7 @@ public Optional bucket() { return Optional.ofNullable(this.bucket); } /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Optional key() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepTagStepDetailsTag.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepTagStepDetailsTag.java index 445f69a93c4..eb5ad6adf46 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepTagStepDetailsTag.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowOnExceptionStepTagStepDetailsTag.java @@ -10,7 +10,7 @@ @CustomType public final class WorkflowOnExceptionStepTagStepDetailsTag { /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ private String key; @@ -22,7 +22,7 @@ public final class WorkflowOnExceptionStepTagStepDetailsTag { private WorkflowOnExceptionStepTagStepDetailsTag() {} /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public String key() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStep.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStep.java index 8d4106dc962..b32b79557bc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStep.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStep.java @@ -42,7 +42,7 @@ public final class WorkflowStep { */ private @Nullable WorkflowStepTagStepDetails tagStepDetails; /** - * @return One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @return The type of encryption used. Currently, this value must be `"PGP"`. * */ private String type; @@ -84,7 +84,7 @@ public Optional tagStepDetails() { return Optional.ofNullable(this.tagStepDetails); } /** - * @return One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * @return The type of encryption used. Currently, this value must be `"PGP"`. * */ public String type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation.java index d55e1999cfa..053508c319f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation.java @@ -17,7 +17,7 @@ public final class WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocat */ private @Nullable String bucket; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ private @Nullable String key; @@ -31,7 +31,7 @@ public Optional bucket() { return Optional.ofNullable(this.bucket); } /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Optional key() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation.java index 56d84dddf91..ac90e1647e7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation.java @@ -17,7 +17,7 @@ public final class WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLo */ private @Nullable String bucket; /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ private @Nullable String key; @@ -31,7 +31,7 @@ public Optional bucket() { return Optional.ofNullable(this.bucket); } /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public Optional key() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepTagStepDetailsTag.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepTagStepDetailsTag.java index 6072bd91aaf..32e9486ca2a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepTagStepDetailsTag.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/outputs/WorkflowStepTagStepDetailsTag.java @@ -10,7 +10,7 @@ @CustomType public final class WorkflowStepTagStepDetailsTag { /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ private String key; @@ -22,7 +22,7 @@ public final class WorkflowStepTagStepDetailsTag { private WorkflowStepTagStepDetailsTag() {} /** - * @return The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * @return The name assigned to the tag that you create. * */ public String key() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/waf/inputs/RuleGroupActivatedRuleActionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/waf/inputs/RuleGroupActivatedRuleActionArgs.java index e3104d2da26..97332fef7bc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/waf/inputs/RuleGroupActivatedRuleActionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/waf/inputs/RuleGroupActivatedRuleActionArgs.java @@ -14,14 +14,14 @@ public final class RuleGroupActivatedRuleActionArgs extends com.pulumi.resources public static final RuleGroupActivatedRuleActionArgs Empty = new RuleGroupActivatedRuleActionArgs(); /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ @Import(name="type", required=true) private Output type; /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ public Output type() { @@ -53,7 +53,7 @@ public Builder(RuleGroupActivatedRuleActionArgs defaults) { } /** - * @param type e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @param type The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * * @return builder * @@ -64,7 +64,7 @@ public Builder type(Output type) { } /** - * @param type e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @param type The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/waf/inputs/RuleGroupActivatedRuleArgs.java b/sdk/java/src/main/java/com/pulumi/aws/waf/inputs/RuleGroupActivatedRuleArgs.java index 03439f9c424..7578e6455b5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/waf/inputs/RuleGroupActivatedRuleArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/waf/inputs/RuleGroupActivatedRuleArgs.java @@ -63,14 +63,14 @@ public Output ruleId() { } /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ @Import(name="type") private @Nullable Output type; /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ public Optional> type() { @@ -168,7 +168,7 @@ public Builder ruleId(String ruleId) { } /** - * @param type e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @param type The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * * @return builder * @@ -179,7 +179,7 @@ public Builder type(@Nullable Output type) { } /** - * @param type e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @param type The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/waf/outputs/RuleGroupActivatedRule.java b/sdk/java/src/main/java/com/pulumi/aws/waf/outputs/RuleGroupActivatedRule.java index a3185b6c32f..f5305bbf951 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/waf/outputs/RuleGroupActivatedRule.java +++ b/sdk/java/src/main/java/com/pulumi/aws/waf/outputs/RuleGroupActivatedRule.java @@ -29,7 +29,7 @@ public final class RuleGroupActivatedRule { */ private String ruleId; /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ private @Nullable String type; @@ -57,7 +57,7 @@ public String ruleId() { return this.ruleId; } /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ public Optional type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/waf/outputs/RuleGroupActivatedRuleAction.java b/sdk/java/src/main/java/com/pulumi/aws/waf/outputs/RuleGroupActivatedRuleAction.java index 18266f942ea..be255d8c68f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/waf/outputs/RuleGroupActivatedRuleAction.java +++ b/sdk/java/src/main/java/com/pulumi/aws/waf/outputs/RuleGroupActivatedRuleAction.java @@ -10,14 +10,14 @@ @CustomType public final class RuleGroupActivatedRuleAction { /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ private String type; private RuleGroupActivatedRuleAction() {} /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ public String type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/RuleGroupActivatedRuleActionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/RuleGroupActivatedRuleActionArgs.java index 25d77117dff..221826185a2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/RuleGroupActivatedRuleActionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/RuleGroupActivatedRuleActionArgs.java @@ -14,14 +14,14 @@ public final class RuleGroupActivatedRuleActionArgs extends com.pulumi.resources public static final RuleGroupActivatedRuleActionArgs Empty = new RuleGroupActivatedRuleActionArgs(); /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ @Import(name="type", required=true) private Output type; /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ public Output type() { @@ -53,7 +53,7 @@ public Builder(RuleGroupActivatedRuleActionArgs defaults) { } /** - * @param type e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @param type The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * * @return builder * @@ -64,7 +64,7 @@ public Builder type(Output type) { } /** - * @param type e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @param type The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/RuleGroupActivatedRuleArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/RuleGroupActivatedRuleArgs.java index 5beb19392e7..3f9ff519a3b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/RuleGroupActivatedRuleArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/RuleGroupActivatedRuleArgs.java @@ -63,14 +63,14 @@ public Output ruleId() { } /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ @Import(name="type") private @Nullable Output type; /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ public Optional> type() { @@ -168,7 +168,7 @@ public Builder ruleId(String ruleId) { } /** - * @param type e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @param type The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * * @return builder * @@ -179,7 +179,7 @@ public Builder type(@Nullable Output type) { } /** - * @param type e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @param type The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/WebAclRuleOverrideActionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/WebAclRuleOverrideActionArgs.java index cc1eb320bce..f346f204c4d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/WebAclRuleOverrideActionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafregional/inputs/WebAclRuleOverrideActionArgs.java @@ -14,14 +14,14 @@ public final class WebAclRuleOverrideActionArgs extends com.pulumi.resources.Res public static final WebAclRuleOverrideActionArgs Empty = new WebAclRuleOverrideActionArgs(); /** - * Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + * Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. * */ @Import(name="type", required=true) private Output type; /** - * @return Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + * @return Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. * */ public Output type() { @@ -53,7 +53,7 @@ public Builder(WebAclRuleOverrideActionArgs defaults) { } /** - * @param type Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + * @param type Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. * * @return builder * @@ -64,7 +64,7 @@ public Builder type(Output type) { } /** - * @param type Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + * @param type Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/RuleGroupActivatedRule.java b/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/RuleGroupActivatedRule.java index 33b3a1be851..c6efc1a6c7e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/RuleGroupActivatedRule.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/RuleGroupActivatedRule.java @@ -29,7 +29,7 @@ public final class RuleGroupActivatedRule { */ private String ruleId; /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ private @Nullable String type; @@ -57,7 +57,7 @@ public String ruleId() { return this.ruleId; } /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ public Optional type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/RuleGroupActivatedRuleAction.java b/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/RuleGroupActivatedRuleAction.java index c33b27cd43c..3054c402cda 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/RuleGroupActivatedRuleAction.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/RuleGroupActivatedRuleAction.java @@ -10,14 +10,14 @@ @CustomType public final class RuleGroupActivatedRuleAction { /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ private String type; private RuleGroupActivatedRuleAction() {} /** - * @return e.g., `BLOCK`, `ALLOW`, or `COUNT` + * @return The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. * */ public String type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/WebAclRuleOverrideAction.java b/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/WebAclRuleOverrideAction.java index 391b9a82259..1cad666e671 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/WebAclRuleOverrideAction.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafregional/outputs/WebAclRuleOverrideAction.java @@ -10,14 +10,14 @@ @CustomType public final class WebAclRuleOverrideAction { /** - * @return Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + * @return Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. * */ private String type; private WebAclRuleOverrideAction() {} /** - * @return Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + * @return Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. * */ public String type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs.java index 53dec8dd5e1..90f64f2008a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs public static final RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs defa } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs.java index 086ee7db940..9b33aa6054c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs.java @@ -34,16 +34,6 @@ public Output name() { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ @Import(name="textTransformations", required=true) @@ -53,16 +43,6 @@ public Output name() { * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ public Output> textTransformations() { @@ -119,16 +99,6 @@ public Builder name(String name) { * @param textTransformations Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * * @return builder * @@ -142,16 +112,6 @@ public Builder textTransformations(Output name() { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ @Import(name="textTransformations", required=true) @@ -53,16 +43,6 @@ public Output name() { * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ public Output> textTransformations() { @@ -119,16 +99,6 @@ public Builder name(String name) { * @param textTransformations Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * * @return builder * @@ -142,16 +112,6 @@ public Builder textTransformations(Output name() { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ @Import(name="textTransformations", required=true) @@ -53,16 +43,6 @@ public Output name() { * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ public Output> textTransformations() { @@ -119,16 +99,6 @@ public Builder name(String name) { * @param textTransformations Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * * @return builder * @@ -142,16 +112,6 @@ public Builder textTransformations(Output> textTransformations() { @@ -81,16 +61,6 @@ public Builder(RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs * @param textTransformations Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * * @return builder * @@ -104,16 +74,6 @@ public Builder textTransformations(Output> textTransformations() { @@ -81,16 +61,6 @@ public Builder(RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs defa * @param textTransformations Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * * @return builder * @@ -104,16 +74,6 @@ public Builder textTransformations(Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMat } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.java index 3adb3dd80fb..cfe309ca92b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementReg public static final RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMa } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.java index 21061f714ed..7b635797415 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementReg public static final RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPa } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.java index 997b38a4a52..15ca90d6506 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSiz public static final RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeCon } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.java index e316047d8c2..d33c34f5765 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSql public static final RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMat } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.java index 43d05708f85..b7aaf60b141 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXss public static final RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatc } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs.java index a41cda550b9..96259cdf214 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs public static final RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs def } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.java index 20fd4983555..bef563f9a50 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldT public static final RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMat } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs.java index 6b24c792741..89773125624 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody public static final RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs.java index bc53049ef53..ccf9fde1980 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs public static final RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs defa } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs.java index 1a6ae412827..ed2d2329db7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs.java @@ -16,14 +16,14 @@ public final class RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs e public static final RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs Empty = new RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs(); /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ @Import(name="oversizeHandling") private @Nullable Output oversizeHandling; /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional> oversizeHandling() { @@ -55,7 +55,7 @@ public Builder(RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs defau } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * @@ -66,7 +66,7 @@ public Builder oversizeHandling(@Nullable Output oversizeHandling) { } /** - * @param oversizeHandling Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @param oversizeHandling What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.java index 100d0871bba..9ba59329ea1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.java @@ -14,14 +14,14 @@ public final class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupC public static final WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs Empty = new WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs(); /** - * The name of the password field. + * The identifier for the value to match against in the JSON. * */ @Import(name="identifier", required=true) private Output identifier; /** - * @return The name of the password field. + * @return The identifier for the value to match against in the JSON. * */ public Output identifier() { @@ -53,7 +53,7 @@ public Builder(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfi } /** - * @param identifier The name of the password field. + * @param identifier The identifier for the value to match against in the JSON. * * @return builder * @@ -64,7 +64,7 @@ public Builder identifier(Output identifier) { } /** - * @param identifier The name of the password field. + * @param identifier The identifier for the value to match against in the JSON. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.java index b40f75d009d..409b025e2f8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/inputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.java @@ -20,14 +20,14 @@ public final class WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrid public static final WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs Empty = new WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs(); /** - * Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * Instructs AWS WAF to allow the web request. See `allow` below for details. * */ @Import(name="allow") private @Nullable Output allow; /** - * @return Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * @return Instructs AWS WAF to allow the web request. See `allow` below for details. * */ public Optional> allow() { @@ -35,14 +35,14 @@ public Optional block; /** - * @return Specifies that AWS WAF should block requests by default. See `block` below for details. + * @return Instructs AWS WAF to block the web request. See `block` below for details. * */ public Optional> block() { @@ -123,7 +123,7 @@ public Builder(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideAct } /** - * @param allow Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * @param allow Instructs AWS WAF to allow the web request. See `allow` below for details. * * @return builder * @@ -134,7 +134,7 @@ public Builder allow(@Nullable Output allow; /** - * @return Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * @return Instructs AWS WAF to allow the web request. See `allow` below for details. * */ public Optional> allow() { @@ -35,14 +35,14 @@ public Optional block; /** - * @return Specifies that AWS WAF should block requests by default. See `block` below for details. + * @return Instructs AWS WAF to block the web request. See `block` below for details. * */ public Optional> block() { @@ -123,7 +123,7 @@ public Builder(WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideA } /** - * @param allow Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * @param allow Instructs AWS WAF to allow the web request. See `allow` below for details. * * @return builder * @@ -134,7 +134,7 @@ public Builder allow(@Nullable Output oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookie.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookie.java index 518a815b0b6..ccf0e0a95e5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookie.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyCookie.java @@ -20,16 +20,6 @@ public final class RuleGroupRuleStatementRateBasedStatementCustomKeyCookie { * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ private List textTransformations; @@ -46,16 +36,6 @@ public String name() { * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ public List textTransformations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeader.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeader.java index a18cf16ecf6..5afac09abaa 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeader.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyHeader.java @@ -20,16 +20,6 @@ public final class RuleGroupRuleStatementRateBasedStatementCustomKeyHeader { * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ private List textTransformations; @@ -46,16 +36,6 @@ public String name() { * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ public List textTransformations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument.java index 6e3f5cb595f..e76412cefa5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument.java @@ -20,16 +20,6 @@ public final class RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumen * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ private List textTransformations; @@ -46,16 +36,6 @@ public String name() { * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ public List textTransformations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString.java index 5de1770e4eb..97cbed169b2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString.java @@ -14,16 +14,6 @@ public final class RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ private List textTransformations; @@ -33,16 +23,6 @@ private RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString() {} * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ public List textTransformations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath.java index 89e90a79aef..64bcc3815fa 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath.java @@ -14,16 +14,6 @@ public final class RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath { * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ private List textTransformations; @@ -33,16 +23,6 @@ private RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath() {} * @return Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. * */ public List textTransformations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody.java index 6e43d4797c8..f8fa825c07f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody.java index 99f9d6d3fc3..a0f47a67a75 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody.java index e1f67e62264..8b7d48b73c5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody.java index 2f9996e725f..e15bdeab59b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody.java index 82dda2a16cb..1a2dac031b2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody.java index 5dde602586f..ad02be2921a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody.java index 7b6c5b38ec2..ba4c2e60b74 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody.java index 913837f111d..3e0fb2c2055 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody.java index 7f8cd6bd45b..21c6cbe85bb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody.java index 7b74157422d..7c3060d7ed7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBody.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBody.java index a9541033d9b..3f9386c8313 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBody.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/RuleGroupRuleStatementXssMatchStatementFieldToMatchBody.java @@ -12,14 +12,14 @@ @CustomType public final class RuleGroupRuleStatementXssMatchStatementFieldToMatchBody { /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ private @Nullable String oversizeHandling; private RuleGroupRuleStatementXssMatchStatementFieldToMatchBody() {} /** - * @return Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * @return What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` * */ public Optional oversizeHandling() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField.java index a91b4854036..cc0c56073d2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField.java @@ -10,14 +10,14 @@ @CustomType public final class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField { /** - * @return The name of the password field. + * @return The identifier for the value to match against in the JSON. * */ private String identifier; private WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField() {} /** - * @return The name of the password field. + * @return The identifier for the value to match against in the JSON. * */ public String identifier() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse.java index 6f769f43217..0a0dfd2e67e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse.java @@ -16,12 +16,12 @@ @CustomType public final class WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse { /** - * @return Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * @return Instructs AWS WAF to allow the web request. See `allow` below for details. * */ private @Nullable WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow allow; /** - * @return Specifies that AWS WAF should block requests by default. See `block` below for details. + * @return Instructs AWS WAF to block the web request. See `block` below for details. * */ private @Nullable WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock block; @@ -43,14 +43,14 @@ public final class WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrid private WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse() {} /** - * @return Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * @return Instructs AWS WAF to allow the web request. See `allow` below for details. * */ public Optional allow() { return Optional.ofNullable(this.allow); } /** - * @return Specifies that AWS WAF should block requests by default. See `block` below for details. + * @return Instructs AWS WAF to block the web request. See `block` below for details. * */ public Optional block() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse.java b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse.java index 54276fe0deb..94bc53102c3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse.java +++ b/sdk/java/src/main/java/com/pulumi/aws/wafv2/outputs/WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse.java @@ -16,12 +16,12 @@ @CustomType public final class WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse { /** - * @return Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * @return Instructs AWS WAF to allow the web request. See `allow` below for details. * */ private @Nullable WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow allow; /** - * @return Specifies that AWS WAF should block requests by default. See `block` below for details. + * @return Instructs AWS WAF to block the web request. See `block` below for details. * */ private @Nullable WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock block; @@ -43,14 +43,14 @@ public final class WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverr private WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse() {} /** - * @return Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * @return Instructs AWS WAF to allow the web request. See `allow` below for details. * */ public Optional allow() { return Optional.ofNullable(this.allow); } /** - * @return Specifies that AWS WAF should block requests by default. See `block` below for details. + * @return Instructs AWS WAF to block the web request. See `block` below for details. * */ public Optional block() { diff --git a/sdk/nodejs/cloudfront/distribution.ts b/sdk/nodejs/cloudfront/distribution.ts index 428dfbfab34..4cc05d60e95 100644 --- a/sdk/nodejs/cloudfront/distribution.ts +++ b/sdk/nodejs/cloudfront/distribution.ts @@ -319,7 +319,7 @@ export class Distribution extends pulumi.CustomResource { */ public /*out*/ readonly domainName!: pulumi.Output; /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. */ public readonly enabled!: pulumi.Output; /** @@ -556,7 +556,7 @@ export interface DistributionState { */ domainName?: pulumi.Input; /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. */ enabled?: pulumi.Input; /** @@ -680,7 +680,7 @@ export interface DistributionArgs { */ defaultRootObject?: pulumi.Input; /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. */ enabled: pulumi.Input; /** diff --git a/sdk/nodejs/ec2/amiCopy.ts b/sdk/nodejs/ec2/amiCopy.ts index 0c445bc6f96..d71d7e5d23e 100644 --- a/sdk/nodejs/ec2/amiCopy.ts +++ b/sdk/nodejs/ec2/amiCopy.ts @@ -99,7 +99,7 @@ export class AmiCopy extends pulumi.CustomResource { */ public /*out*/ readonly enaSupport!: pulumi.Output; /** - * Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshotId`. + * Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` */ public readonly encrypted!: pulumi.Output; /** @@ -318,7 +318,7 @@ export interface AmiCopyState { */ enaSupport?: pulumi.Input; /** - * Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshotId`. + * Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` */ encrypted?: pulumi.Input; /** @@ -425,7 +425,7 @@ export interface AmiCopyArgs { */ ebsBlockDevices?: pulumi.Input[]>; /** - * Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshotId`. + * Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` */ encrypted?: pulumi.Input; /** diff --git a/sdk/nodejs/ec2/spotInstanceRequest.ts b/sdk/nodejs/ec2/spotInstanceRequest.ts index 7c0eca074e2..2e201288153 100644 --- a/sdk/nodejs/ec2/spotInstanceRequest.ts +++ b/sdk/nodejs/ec2/spotInstanceRequest.ts @@ -173,7 +173,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly instanceInitiatedShutdownBehavior!: pulumi.Output; /** - * The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. */ public readonly instanceInterruptionBehavior!: pulumi.Output; public /*out*/ readonly instanceState!: pulumi.Output; @@ -331,7 +331,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly validFrom!: pulumi.Output; /** - * The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. */ public readonly validUntil!: pulumi.Output; /** @@ -602,7 +602,7 @@ export interface SpotInstanceRequestState { */ instanceInitiatedShutdownBehavior?: pulumi.Input; /** - * The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. */ instanceInterruptionBehavior?: pulumi.Input; instanceState?: pulumi.Input; @@ -760,7 +760,7 @@ export interface SpotInstanceRequestState { */ validFrom?: pulumi.Input; /** - * The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. */ validUntil?: pulumi.Input; /** @@ -878,7 +878,7 @@ export interface SpotInstanceRequestArgs { */ instanceInitiatedShutdownBehavior?: pulumi.Input; /** - * The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + * Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. */ instanceInterruptionBehavior?: pulumi.Input; /** @@ -994,7 +994,7 @@ export interface SpotInstanceRequestArgs { */ validFrom?: pulumi.Input; /** - * The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + * The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. */ validUntil?: pulumi.Input; /** diff --git a/sdk/nodejs/scheduler/schedule.ts b/sdk/nodejs/scheduler/schedule.ts index 0376e42753d..0b3a61e9f6b 100644 --- a/sdk/nodejs/scheduler/schedule.ts +++ b/sdk/nodejs/scheduler/schedule.ts @@ -93,7 +93,7 @@ export class Schedule extends pulumi.CustomResource { } /** - * ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + * ARN of the SQS queue specified as the destination for the dead-letter queue. */ public /*out*/ readonly arn!: pulumi.Output; /** @@ -208,7 +208,7 @@ export class Schedule extends pulumi.CustomResource { */ export interface ScheduleState { /** - * ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + * ARN of the SQS queue specified as the destination for the dead-letter queue. */ arn?: pulumi.Input; /** diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index a47a5affb81..fb60c020e5e 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -993,9 +993,6 @@ export namespace alb { export interface ListenerRuleConditionHostHeader { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: pulumi.Input[]>; } @@ -1014,9 +1011,6 @@ export namespace alb { export interface ListenerRuleConditionHttpRequestMethod { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: pulumi.Input[]>; } @@ -1024,9 +1018,6 @@ export namespace alb { export interface ListenerRuleConditionPathPattern { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: pulumi.Input[]>; } @@ -1045,9 +1036,6 @@ export namespace alb { export interface ListenerRuleConditionSourceIp { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: pulumi.Input[]>; } @@ -1727,7 +1715,7 @@ export namespace appautoscaling { export interface PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification { /** - * Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * Dimensions of the metric. */ dimensions?: pulumi.Input[]>; /** @@ -1747,7 +1735,7 @@ export namespace appautoscaling { */ statistic?: pulumi.Input; /** - * Unit of the metric. + * Unit of the metrics to return. */ unit?: pulumi.Input; } @@ -1796,14 +1784,14 @@ export namespace appautoscaling { */ stat: pulumi.Input; /** - * Unit of the metric. + * Unit of the metrics to return. */ unit?: pulumi.Input; } export interface PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric { /** - * Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * Dimensions of the metric. */ dimensions?: pulumi.Input[]>; /** @@ -2818,7 +2806,7 @@ export namespace appflow { */ entityName: pulumi.Input; /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: pulumi.Input; /** @@ -2859,7 +2847,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: pulumi.Input; /** @@ -2885,7 +2873,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: pulumi.Input; /** @@ -2914,7 +2902,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: pulumi.Input; /** @@ -2940,11 +2928,11 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift { /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: pulumi.Input; /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: pulumi.Input; /** @@ -2974,11 +2962,11 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesS3 { /** - * Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * Name of the Amazon S3 bucket. */ bucketName: pulumi.Input; /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: pulumi.Input; /** @@ -3026,7 +3014,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: pulumi.Input; /** @@ -3060,7 +3048,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: pulumi.Input; /** @@ -3109,11 +3097,11 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake { /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: pulumi.Input; /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: pulumi.Input; /** @@ -3143,11 +3131,11 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver { /** - * Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * Name of the Amazon S3 bucket. */ bucketName: pulumi.Input; /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: pulumi.Input; /** @@ -3191,7 +3179,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: pulumi.Input; /** @@ -3375,11 +3363,11 @@ export namespace appflow { export interface FlowSourceFlowConfigSourceConnectorPropertiesS3 { /** - * Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * Name of the Amazon S3 bucket. */ bucketName: pulumi.Input; /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: pulumi.Input; /** @@ -3688,7 +3676,7 @@ export namespace appmesh { export interface GatewayRouteSpecGrpcRouteMatch { /** - * The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * The port number to match from the request. */ port?: pulumi.Input; /** @@ -3783,19 +3771,19 @@ export namespace appmesh { */ headers?: pulumi.Input[]>; /** - * Host name to rewrite. + * Host name to match on. */ hostname?: pulumi.Input; /** - * Exact path to rewrite. + * Client request path to match on. */ path?: pulumi.Input; /** - * The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * The port number to match from the request. */ port?: pulumi.Input; /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** @@ -3821,11 +3809,11 @@ export namespace appmesh { export interface GatewayRouteSpecHttp2RouteMatchHeaderMatch { /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. */ exact?: pulumi.Input; /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** @@ -3888,7 +3876,7 @@ export namespace appmesh { export interface GatewayRouteSpecHttp2RouteMatchQueryParameterMatch { /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. */ exact?: pulumi.Input; } @@ -3979,19 +3967,19 @@ export namespace appmesh { */ headers?: pulumi.Input[]>; /** - * Host name to rewrite. + * Host name to match on. */ hostname?: pulumi.Input; /** - * Exact path to rewrite. + * Client request path to match on. */ path?: pulumi.Input; /** - * The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * The port number to match from the request. */ port?: pulumi.Input; /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** @@ -4017,11 +4005,11 @@ export namespace appmesh { export interface GatewayRouteSpecHttpRouteMatchHeaderMatch { /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. */ exact?: pulumi.Input; /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** @@ -4084,7 +4072,7 @@ export namespace appmesh { export interface GatewayRouteSpecHttpRouteMatchQueryParameterMatch { /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. */ exact?: pulumi.Input; } @@ -4184,8 +4172,7 @@ export namespace appmesh { */ port?: pulumi.Input; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** @@ -4215,12 +4202,11 @@ export namespace appmesh { */ exact?: pulumi.Input; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** - * Object that specifies the range of numbers that the value sent by the client must be included in. + * Object that specifies the range of numbers that the header value sent by the client must be included in. */ range?: pulumi.Input; /** @@ -4228,7 +4214,7 @@ export namespace appmesh { */ regex?: pulumi.Input; /** - * Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must end with the specified characters. */ suffix?: pulumi.Input; } @@ -4253,7 +4239,6 @@ export namespace appmesh { /** * List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). */ httpRetryEvents?: pulumi.Input[]>; /** @@ -4266,9 +4251,6 @@ export namespace appmesh { perRetryTimeout: pulumi.Input; /** * List of TCP retry events. The only valid value is `connection-error`. - * - * - * You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. */ tcpRetryEvents?: pulumi.Input[]>; } @@ -4377,8 +4359,7 @@ export namespace appmesh { */ port?: pulumi.Input; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** @@ -4412,12 +4393,11 @@ export namespace appmesh { */ exact?: pulumi.Input; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** - * Object that specifies the range of numbers that the value sent by the client must be included in. + * Object that specifies the range of numbers that the header value sent by the client must be included in. */ range?: pulumi.Input; /** @@ -4425,7 +4405,7 @@ export namespace appmesh { */ regex?: pulumi.Input; /** - * Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must end with the specified characters. */ suffix?: pulumi.Input; } @@ -4443,11 +4423,11 @@ export namespace appmesh { export interface RouteSpecHttp2RouteMatchPath { /** - * Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * Header value sent by the client must match the specified value exactly. */ exact?: pulumi.Input; /** - * Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must include the specified characters. */ regex?: pulumi.Input; } @@ -4474,7 +4454,6 @@ export namespace appmesh { /** * List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). */ httpRetryEvents?: pulumi.Input[]>; /** @@ -4487,9 +4466,6 @@ export namespace appmesh { perRetryTimeout: pulumi.Input; /** * List of TCP retry events. The only valid value is `connection-error`. - * - * - * You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. */ tcpRetryEvents?: pulumi.Input[]>; } @@ -4598,8 +4574,7 @@ export namespace appmesh { */ port?: pulumi.Input; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** @@ -4633,12 +4608,11 @@ export namespace appmesh { */ exact?: pulumi.Input; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: pulumi.Input; /** - * Object that specifies the range of numbers that the value sent by the client must be included in. + * Object that specifies the range of numbers that the header value sent by the client must be included in. */ range?: pulumi.Input; /** @@ -4646,7 +4620,7 @@ export namespace appmesh { */ regex?: pulumi.Input; /** - * Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must end with the specified characters. */ suffix?: pulumi.Input; } @@ -4664,11 +4638,11 @@ export namespace appmesh { export interface RouteSpecHttpRouteMatchPath { /** - * Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * Header value sent by the client must match the specified value exactly. */ exact?: pulumi.Input; /** - * Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must include the specified characters. */ regex?: pulumi.Input; } @@ -4695,7 +4669,6 @@ export namespace appmesh { /** * List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). */ httpRetryEvents?: pulumi.Input[]>; /** @@ -4708,9 +4681,6 @@ export namespace appmesh { perRetryTimeout: pulumi.Input; /** * List of TCP retry events. The only valid value is `connection-error`. - * - * - * You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. */ tcpRetryEvents?: pulumi.Input[]>; } @@ -5643,7 +5613,7 @@ export namespace appmesh { */ unit: pulumi.Input; /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. */ value: pulumi.Input; } @@ -5706,7 +5676,7 @@ export namespace appmesh { */ unit: pulumi.Input; /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. */ value: pulumi.Input; } @@ -5750,7 +5720,7 @@ export namespace appmesh { */ unit: pulumi.Input; /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. */ value: pulumi.Input; } @@ -5772,7 +5742,7 @@ export namespace appmesh { */ unit: pulumi.Input; /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. */ value: pulumi.Input; } @@ -7252,7 +7222,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplate { /** - * Nested argument defines the Launch Template. Defined below. + * Override the instance launch template specification in the Launch Template. */ launchTemplateSpecification: pulumi.Input; /** @@ -7286,7 +7256,7 @@ export namespace autoscaling { */ instanceType?: pulumi.Input; /** - * Nested argument defines the Launch Template. Defined below. + * Override the instance launch template specification in the Launch Template. */ launchTemplateSpecification?: pulumi.Input; /** @@ -7426,7 +7396,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -7437,7 +7407,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -7448,7 +7418,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -7459,7 +7429,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -7470,7 +7440,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -7481,7 +7451,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -7492,7 +7462,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -7503,7 +7473,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -7514,7 +7484,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -9228,15 +9198,15 @@ export namespace chimesdkmediapipelines { */ callAnalyticsStreamCategories?: pulumi.Input[]>; /** - * Labels all personally identifiable information (PII) identified in Utterance events. + * Labels all personally identifiable information (PII) identified in Transcript events. */ contentIdentificationType?: pulumi.Input; /** - * Redacts all personally identifiable information (PII) identified in Utterance events. + * Redacts all personally identifiable information (PII) identified in Transcript events. */ contentRedactionType?: pulumi.Input; /** - * Enables partial result stabilization in Utterance events. + * Enables partial result stabilization in Transcript events. */ enablePartialResultsStabilization?: pulumi.Input; /** @@ -9256,7 +9226,7 @@ export namespace chimesdkmediapipelines { */ partialResultsStability?: pulumi.Input; /** - * Types of personally identifiable information (PII) to redact from an Utterance event. + * Types of personally identifiable information (PII) to redact from a Transcript event. */ piiEntityTypes?: pulumi.Input; /** @@ -9264,15 +9234,15 @@ export namespace chimesdkmediapipelines { */ postCallAnalyticsSettings?: pulumi.Input; /** - * Method for applying a vocabulary filter to Utterance events. + * Method for applying a vocabulary filter to Transcript events. */ vocabularyFilterMethod?: pulumi.Input; /** - * Name of the custom vocabulary filter to use when processing Utterance events. + * Name of the custom vocabulary filter to use when processing Transcript events. */ vocabularyFilterName?: pulumi.Input; /** - * Name of the custom vocabulary to use when processing Utterance events. + * Name of the custom vocabulary to use when processing Transcript events. */ vocabularyName?: pulumi.Input; } @@ -9298,15 +9268,15 @@ export namespace chimesdkmediapipelines { export interface MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration { /** - * Labels all personally identifiable information (PII) identified in Utterance events. + * Labels all personally identifiable information (PII) identified in Transcript events. */ contentIdentificationType?: pulumi.Input; /** - * Redacts all personally identifiable information (PII) identified in Utterance events. + * Redacts all personally identifiable information (PII) identified in Transcript events. */ contentRedactionType?: pulumi.Input; /** - * Enables partial result stabilization in Utterance events. + * Enables partial result stabilization in Transcript events. */ enablePartialResultsStabilization?: pulumi.Input; /** @@ -9326,7 +9296,7 @@ export namespace chimesdkmediapipelines { */ partialResultsStability?: pulumi.Input; /** - * Types of personally identifiable information (PII) to redact from an Utterance event. + * Types of personally identifiable information (PII) to redact from a Transcript event. */ piiEntityTypes?: pulumi.Input; /** @@ -9334,29 +9304,29 @@ export namespace chimesdkmediapipelines { */ showSpeakerLabel?: pulumi.Input; /** - * Method for applying a vocabulary filter to Utterance events. + * Method for applying a vocabulary filter to Transcript events. */ vocabularyFilterMethod?: pulumi.Input; /** - * Name of the custom vocabulary filter to use when processing Utterance events. + * Name of the custom vocabulary filter to use when processing Transcript events. */ vocabularyFilterName?: pulumi.Input; /** - * Name of the custom vocabulary to use when processing Utterance events. + * Name of the custom vocabulary to use when processing Transcript events. */ vocabularyName?: pulumi.Input; } export interface MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration { /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. */ insightsTarget: pulumi.Input; } export interface MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration { /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. */ insightsTarget: pulumi.Input; } @@ -9370,14 +9340,14 @@ export namespace chimesdkmediapipelines { export interface MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration { /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. */ insightsTarget: pulumi.Input; } export interface MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration { /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. */ insightsTarget: pulumi.Input; } @@ -9625,6 +9595,9 @@ export namespace cloudfront { } export interface CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies { + /** + * List of item names, such as cookies, headers, or query strings. + */ items?: pulumi.Input[]>; } @@ -9640,6 +9613,9 @@ export namespace cloudfront { } export interface CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders { + /** + * List of item names, such as cookies, headers, or query strings. + */ items?: pulumi.Input[]>; } @@ -9655,6 +9631,9 @@ export namespace cloudfront { } export interface CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings { + /** + * List of item names, such as cookies, headers, or query strings. + */ items?: pulumi.Input[]>; } @@ -10051,7 +10030,7 @@ export namespace cloudfront { */ originAccessControlId?: pulumi.Input; /** - * Unique identifier for the origin. + * Unique identifier of the member origin. */ originId: pulumi.Input; /** @@ -10110,7 +10089,7 @@ export namespace cloudfront { */ members: pulumi.Input[]>; /** - * Unique identifier for the origin. + * Unique identifier of the member origin. */ originId: pulumi.Input; } @@ -10124,14 +10103,14 @@ export namespace cloudfront { export interface DistributionOriginGroupMember { /** - * Unique identifier for the origin. + * Unique identifier of the member origin. */ originId: pulumi.Input; } export interface DistributionOriginOriginShield { /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. */ enabled: pulumi.Input; /** @@ -10164,7 +10143,7 @@ export namespace cloudfront { export interface DistributionTrustedKeyGroup { /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. */ enabled?: pulumi.Input; /** @@ -10186,7 +10165,7 @@ export namespace cloudfront { export interface DistributionTrustedSigner { /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. */ enabled?: pulumi.Input; /** @@ -10429,7 +10408,7 @@ export namespace cloudfront { */ header: pulumi.Input; /** - * Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + * Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. */ override: pulumi.Input; /** @@ -11814,7 +11793,7 @@ export namespace codebuild { */ groupName?: pulumi.Input; /** - * Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. */ status?: pulumi.Input; /** @@ -11837,7 +11816,7 @@ export namespace codebuild { */ location?: pulumi.Input; /** - * Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. */ status?: pulumi.Input; } @@ -12877,6 +12856,9 @@ export namespace cognito { * The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. */ eventAction: pulumi.Input; + /** + * Whether to send a notification. + */ notify: pulumi.Input; } @@ -12885,6 +12867,9 @@ export namespace cognito { * The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. */ eventAction: pulumi.Input; + /** + * Whether to send a notification. + */ notify: pulumi.Input; } @@ -12893,6 +12878,9 @@ export namespace cognito { * The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. */ eventAction: pulumi.Input; + /** + * Whether to send a notification. + */ notify: pulumi.Input; } @@ -15636,7 +15624,7 @@ export namespace dlm { */ eventSource?: pulumi.Input; /** - * A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * Information about the event. See the `parameters` configuration block. */ parameters?: pulumi.Input; /** @@ -15691,11 +15679,11 @@ export namespace dlm { export interface LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration { /** - * The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. */ cmkArn?: pulumi.Input; /** - * To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. */ encrypted?: pulumi.Input; } @@ -15713,7 +15701,7 @@ export namespace dlm { export interface LifecyclePolicyPolicyDetailsEventSource { /** - * A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * Information about the event. See the `parameters` configuration block. */ parameters: pulumi.Input; /** @@ -15750,7 +15738,7 @@ export namespace dlm { export interface LifecyclePolicyPolicyDetailsSchedule { /** - * Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. */ copyTags?: pulumi.Input; /** @@ -15762,7 +15750,7 @@ export namespace dlm { */ crossRegionCopyRules?: pulumi.Input[]>; /** - * See the `deprecateRule` block. Max of 1 per schedule. + * The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. */ deprecateRule?: pulumi.Input; /** @@ -15816,19 +15804,19 @@ export namespace dlm { export interface LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule { /** - * The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. */ cmkArn?: pulumi.Input; /** - * Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. */ copyTags?: pulumi.Input; /** - * See the `deprecateRule` block. Max of 1 per schedule. + * The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. */ deprecateRule?: pulumi.Input; /** - * To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. */ encrypted: pulumi.Input; /** @@ -17275,99 +17263,99 @@ export namespace ec2 { export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: pulumi.Input; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: pulumi.Input; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: pulumi.Input; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: pulumi.Input; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: pulumi.Input; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: pulumi.Input; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: pulumi.Input; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: pulumi.Input; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: pulumi.Input; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min: pulumi.Input; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: pulumi.Input; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: pulumi.Input; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: pulumi.Input; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: pulumi.Input; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: pulumi.Input; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: pulumi.Input; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: pulumi.Input; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min: pulumi.Input; } @@ -19341,7 +19329,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsAcceleratorCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -19352,7 +19340,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -19363,7 +19351,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -19374,7 +19362,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsMemoryGibPerVcpu { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -19385,7 +19373,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -19396,7 +19384,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsNetworkBandwidthGbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -19407,7 +19395,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsNetworkInterfaceCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -19418,7 +19406,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsTotalLocalStorageGb { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -19429,7 +19417,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsVcpuCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -21002,7 +20990,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -21013,7 +21001,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -21024,7 +21012,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -21035,7 +21023,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -21046,7 +21034,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -21057,7 +21045,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -21068,7 +21056,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -21079,7 +21067,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -21090,7 +21078,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: pulumi.Input; /** @@ -27001,11 +26989,11 @@ export namespace glue { export interface CrawlerS3Target { /** - * The name of the connection to use to connect to the JDBC target. + * The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. */ connectionName?: pulumi.Input; /** - * The ARN of the dead-letter SQS queue. + * A valid Amazon SQS ARN. * * > **Note:** `deletionBehavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. * @@ -27013,7 +27001,7 @@ export namespace glue { */ dlqEventQueueArn?: pulumi.Input; /** - * The ARN of the SQS queue to receive S3 notifications from. + * A valid Amazon SQS ARN. */ eventQueueArn?: pulumi.Input; /** @@ -29163,8 +29151,6 @@ export namespace iot { export interface TopicRuleDynamodbv2PutItem { /** * The name of the DynamoDB table. - * - * The `dynamodbv2` object takes the following arguments: */ tableName: pulumi.Input; } @@ -29328,8 +29314,6 @@ export namespace iot { export interface TopicRuleErrorActionDynamodbv2PutItem { /** * The name of the DynamoDB table. - * - * The `dynamodbv2` object takes the following arguments: */ tableName: pulumi.Input; } @@ -31133,7 +31117,6 @@ export namespace kinesis { 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; /** @@ -31158,7 +31141,7 @@ export namespace kinesis { */ prefix?: pulumi.Input; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: pulumi.Input; } @@ -31205,7 +31188,6 @@ export namespace kinesis { 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; /** @@ -31242,7 +31224,7 @@ export namespace kinesis { */ processingConfiguration?: pulumi.Input; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: pulumi.Input; /** @@ -31250,7 +31232,7 @@ export namespace kinesis { */ s3BackupConfiguration?: pulumi.Input; /** - * The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + * Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. */ s3BackupMode?: pulumi.Input; } @@ -31503,7 +31485,6 @@ export namespace kinesis { 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; /** @@ -31528,7 +31509,7 @@ export namespace kinesis { */ prefix?: pulumi.Input; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: pulumi.Input; } @@ -31682,7 +31663,6 @@ export namespace kinesis { 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; /** @@ -31707,7 +31687,7 @@ export namespace kinesis { */ prefix?: pulumi.Input; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: pulumi.Input; } @@ -31884,7 +31864,6 @@ export namespace kinesis { 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; /** @@ -31909,7 +31888,7 @@ export namespace kinesis { */ prefix?: pulumi.Input; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: pulumi.Input; } @@ -32053,7 +32032,6 @@ export namespace kinesis { 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; /** @@ -32078,7 +32056,7 @@ export namespace kinesis { */ prefix?: pulumi.Input; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: pulumi.Input; } @@ -32230,7 +32208,6 @@ export namespace kinesis { 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; /** @@ -32255,7 +32232,7 @@ export namespace kinesis { */ prefix?: pulumi.Input; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: pulumi.Input; } @@ -32286,7 +32263,6 @@ export namespace kinesis { 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; /** @@ -32311,7 +32287,7 @@ export namespace kinesis { */ prefix?: pulumi.Input; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: pulumi.Input; } @@ -32448,7 +32424,6 @@ export namespace kinesis { 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; /** @@ -32473,7 +32448,7 @@ export namespace kinesis { */ prefix?: pulumi.Input; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: pulumi.Input; } @@ -34247,9 +34222,6 @@ export namespace lb { export interface ListenerRuleConditionHostHeader { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: pulumi.Input[]>; } @@ -34268,9 +34240,6 @@ export namespace lb { export interface ListenerRuleConditionHttpRequestMethod { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: pulumi.Input[]>; } @@ -34278,9 +34247,6 @@ export namespace lb { export interface ListenerRuleConditionPathPattern { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: pulumi.Input[]>; } @@ -34299,9 +34265,6 @@ export namespace lb { export interface ListenerRuleConditionSourceIp { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: pulumi.Input[]>; } @@ -34413,13 +34376,16 @@ export namespace lb { export namespace lex { export interface BotAbortStatement { + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + */ messages: pulumi.Input[]>; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). */ responseCard?: pulumi.Input; } @@ -34479,13 +34445,16 @@ export namespace lex { * The number of times to prompt the user for information. */ maxAttempts: pulumi.Input; + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + */ messages: pulumi.Input[]>; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). */ responseCard?: pulumi.Input; } @@ -34518,15 +34487,16 @@ export namespace lex { } export interface IntentConclusionStatement { + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: pulumi.Input[]>; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: pulumi.Input; } @@ -34552,15 +34522,16 @@ export namespace lex { * The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). */ maxAttempts: pulumi.Input; + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: pulumi.Input[]>; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: pulumi.Input; } @@ -34643,15 +34614,16 @@ export namespace lex { } export interface IntentFollowUpPromptRejectionStatement { + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: pulumi.Input[]>; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: pulumi.Input; } @@ -34699,15 +34671,16 @@ export namespace lex { } export interface IntentRejectionStatement { + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: pulumi.Input[]>; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: pulumi.Input; } @@ -34781,15 +34754,16 @@ export namespace lex { * The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). */ maxAttempts: pulumi.Input; + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: pulumi.Input[]>; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: pulumi.Input; } @@ -35394,7 +35368,7 @@ export namespace macie2 { export interface ClassificationJobS3JobDefinitionBucketCriteriaIncludes { /** - * An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) */ ands?: pulumi.Input[]>; } @@ -35534,7 +35508,7 @@ export namespace macie2 { export interface ClassificationJobS3JobDefinitionScopingIncludes { /** - * An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) */ ands?: pulumi.Input[]>; } @@ -36435,7 +36409,7 @@ export namespace medialive { */ uri: pulumi.Input; /** - * Username for destination. + * . Username to be used. */ username?: pulumi.Input; } @@ -36771,7 +36745,7 @@ export namespace medialive { */ uri: pulumi.Input; /** - * Username for destination. + * . Username to be used. */ username?: pulumi.Input; } @@ -37052,7 +37026,7 @@ export namespace medialive { */ uri: pulumi.Input; /** - * Username for destination. + * . Username to be used. */ username?: pulumi.Input; } @@ -37355,7 +37329,7 @@ export namespace medialive { */ entropyEncoding?: pulumi.Input; /** - * Filters to apply to an encode. See H264 Filter Settings for more details. + * Filters to apply to an encode. See H265 Filter Settings for more details. */ filterSettings?: pulumi.Input; /** @@ -37400,7 +37374,7 @@ export namespace medialive { */ gopSizeUnits?: pulumi.Input; /** - * H264 level. + * H265 level. */ level?: pulumi.Input; /** @@ -37530,7 +37504,7 @@ export namespace medialive { */ colorSpaceSettings?: pulumi.Input; /** - * Filters to apply to an encode. See H264 Filter Settings for more details. + * Filters to apply to an encode. See H265 Filter Settings for more details. */ filterSettings?: pulumi.Input; /** @@ -37559,7 +37533,7 @@ export namespace medialive { */ gopSizeUnits?: pulumi.Input; /** - * H264 level. + * H265 level. */ level?: pulumi.Input; /** @@ -37755,7 +37729,7 @@ export namespace medialive { export interface ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings { /** - * The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + * The name of the audio selector used as the source for this AudioDescription. */ audioSelectorName: pulumi.Input; /** @@ -38601,11 +38575,11 @@ export namespace msk { export interface ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl { /** - * Enables SASL/IAM authentication for VPC connectivity. + * Enables IAM client authentication. Defaults to `false`. */ iam?: pulumi.Input; /** - * Enables SASL/SCRAM authentication for VPC connectivity. + * Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. */ scram?: pulumi.Input; } @@ -38656,11 +38630,11 @@ export namespace msk { export interface ClusterClientAuthenticationSasl { /** - * Enables SASL/IAM authentication for VPC connectivity. + * Enables IAM client authentication. Defaults to `false`. */ iam?: pulumi.Input; /** - * Enables SASL/SCRAM authentication for VPC connectivity. + * Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. */ scram?: pulumi.Input; } @@ -38775,14 +38749,14 @@ export namespace msk { export interface ClusterOpenMonitoringPrometheusJmxExporter { /** - * Indicates whether you want to enable or disable the JMX Exporter. + * Indicates whether you want to enable or disable the Node Exporter. */ enabledInBroker: pulumi.Input; } export interface ClusterOpenMonitoringPrometheusNodeExporter { /** - * Indicates whether you want to enable or disable the JMX Exporter. + * Indicates whether you want to enable or disable the Node Exporter. */ enabledInBroker: pulumi.Input; } @@ -41962,7 +41936,7 @@ export namespace pipes { export interface PipeSourceParametersActivemqBrokerParametersCredentials { /** - * The ARN of the Secrets Manager secret containing the basic auth credentials. + * The ARN of the Secrets Manager secret containing the credentials. */ basicAuth: pulumi.Input; } @@ -42132,7 +42106,7 @@ export namespace pipes { export interface PipeSourceParametersRabbitmqBrokerParametersCredentials { /** - * The ARN of the Secrets Manager secret containing the basic auth credentials. + * The ARN of the Secrets Manager secret containing the credentials. */ basicAuth: pulumi.Input; } @@ -42178,7 +42152,7 @@ export namespace pipes { export interface PipeSourceParametersSelfManagedKafkaParametersCredentials { /** - * The ARN of the Secrets Manager secret containing the basic auth credentials. + * The ARN of the Secrets Manager secret containing the credentials. */ basicAuth: pulumi.Input; /** @@ -42308,11 +42282,11 @@ export namespace pipes { export interface PipeTargetParametersBatchJobParametersContainerOverrides { /** - * List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. */ commands?: pulumi.Input[]>; /** - * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. */ environments?: pulumi.Input[]>; /** @@ -42320,7 +42294,7 @@ export namespace pipes { */ instanceType?: pulumi.Input; /** - * The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. */ resourceRequirements?: pulumi.Input[]>; } @@ -42331,18 +42305,18 @@ export namespace pipes { */ name?: pulumi.Input; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value?: pulumi.Input; } export interface PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement { /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type: pulumi.Input; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value: pulumi.Input; } @@ -42353,7 +42327,7 @@ export namespace pipes { */ jobId?: pulumi.Input; /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type?: pulumi.Input; } @@ -42482,7 +42456,7 @@ export namespace pipes { */ containerOverrides?: pulumi.Input[]>; /** - * The cpu override for the task. + * The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. */ cpu?: pulumi.Input; /** @@ -42498,7 +42472,7 @@ export namespace pipes { */ inferenceAcceleratorOverrides?: pulumi.Input[]>; /** - * The memory override for the task. + * The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. */ memory?: pulumi.Input; /** @@ -42509,11 +42483,11 @@ export namespace pipes { export interface PipeTargetParametersEcsTaskParametersOverridesContainerOverride { /** - * List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. */ commands?: pulumi.Input[]>; /** - * The cpu override for the task. + * The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. */ cpu?: pulumi.Input; /** @@ -42521,11 +42495,11 @@ export namespace pipes { */ environmentFiles?: pulumi.Input[]>; /** - * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. */ environments?: pulumi.Input[]>; /** - * The memory override for the task. + * The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. */ memory?: pulumi.Input; /** @@ -42537,7 +42511,7 @@ export namespace pipes { */ name?: pulumi.Input; /** - * The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. */ resourceRequirements?: pulumi.Input[]>; } @@ -42548,29 +42522,29 @@ export namespace pipes { */ name?: pulumi.Input; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value?: pulumi.Input; } export interface PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile { /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type: pulumi.Input; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value: pulumi.Input; } export interface PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement { /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type: pulumi.Input; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value: pulumi.Input; } @@ -42599,7 +42573,7 @@ export namespace pipes { */ expression?: pulumi.Input; /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type?: pulumi.Input; } @@ -42610,7 +42584,7 @@ export namespace pipes { */ field?: pulumi.Input; /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type?: pulumi.Input; } @@ -42707,7 +42681,7 @@ export namespace pipes { */ name: pulumi.Input; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value: pulumi.Input; } @@ -46035,7 +46009,7 @@ export namespace s3 { */ format?: pulumi.Input; /** - * Object prefix for filtering. + * Prefix to append to exported analytics data. */ prefix?: pulumi.Input; } @@ -52518,7 +52492,7 @@ export namespace signer { export interface SigningJobSignedObject { /** - * A configuration block describing the S3 Source object: See S3 Source below for details. + * A configuration block describing the S3 Destination object: See S3 Destination below for details. */ s3s?: pulumi.Input[]>; } @@ -53618,7 +53592,7 @@ export namespace transfer { */ tagStepDetails?: pulumi.Input; /** - * One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * The type of encryption used. Currently, this value must be `"PGP"`. */ type: pulumi.Input; } @@ -53670,7 +53644,7 @@ export namespace transfer { */ bucket?: pulumi.Input; /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key?: pulumi.Input; } @@ -53745,7 +53719,7 @@ export namespace transfer { */ bucket?: pulumi.Input; /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key?: pulumi.Input; } @@ -53778,7 +53752,7 @@ export namespace transfer { export interface WorkflowOnExceptionStepTagStepDetailsTag { /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key: pulumi.Input; /** @@ -53809,7 +53783,7 @@ export namespace transfer { */ tagStepDetails?: pulumi.Input; /** - * One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * The type of encryption used. Currently, this value must be `"PGP"`. */ type: pulumi.Input; } @@ -53861,7 +53835,7 @@ export namespace transfer { */ bucket?: pulumi.Input; /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key?: pulumi.Input; } @@ -53936,7 +53910,7 @@ export namespace transfer { */ bucket?: pulumi.Input; /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key?: pulumi.Input; } @@ -53969,7 +53943,7 @@ export namespace transfer { export interface WorkflowStepTagStepDetailsTag { /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key: pulumi.Input; /** @@ -54516,14 +54490,14 @@ export namespace waf { */ ruleId: pulumi.Input; /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. */ type?: pulumi.Input; } export interface RuleGroupActivatedRuleAction { /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. */ type: pulumi.Input; } @@ -54848,14 +54822,14 @@ export namespace wafregional { */ ruleId: pulumi.Input; /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. */ type?: pulumi.Input; } export interface RuleGroupActivatedRuleAction { /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. */ type: pulumi.Input; } @@ -55007,7 +54981,7 @@ export namespace wafregional { export interface WebAclRuleOverrideAction { /** - * Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + * Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `overrideAction` are `COUNT` and `NONE`. */ type: pulumi.Input; } @@ -55397,7 +55371,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementByteMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -55670,16 +55644,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: pulumi.Input[]>; } @@ -55707,16 +55671,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: pulumi.Input[]>; } @@ -55754,16 +55708,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: pulumi.Input[]>; } @@ -55784,16 +55728,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: pulumi.Input[]>; } @@ -55814,16 +55748,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: pulumi.Input[]>; } @@ -55977,7 +55901,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -56244,7 +56168,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -56438,7 +56362,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -56636,7 +56560,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -56826,7 +56750,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -57016,7 +56940,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -57210,7 +57134,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -57404,7 +57328,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -57602,7 +57526,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -57792,7 +57716,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -57982,7 +57906,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementXssMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: pulumi.Input; } @@ -58999,7 +58923,7 @@ export namespace wafv2 { export interface WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField { /** - * The name of the password field. + * The identifier for the value to match against in the JSON. */ identifier: pulumi.Input; } @@ -59242,11 +59166,11 @@ export namespace wafv2 { export interface WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse { /** - * Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * Instructs AWS WAF to allow the web request. See `allow` below for details. */ allow?: pulumi.Input; /** - * Specifies that AWS WAF should block requests by default. See `block` below for details. + * Instructs AWS WAF to block the web request. See `block` below for details. */ block?: pulumi.Input; /** @@ -62575,11 +62499,11 @@ export namespace wafv2 { export interface WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse { /** - * Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * Instructs AWS WAF to allow the web request. See `allow` below for details. */ allow?: pulumi.Input; /** - * Specifies that AWS WAF should block requests by default. See `block` below for details. + * Instructs AWS WAF to block the web request. See `block` below for details. */ block?: pulumi.Input; /** diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 2c92a007134..94ea910f64c 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -802,9 +802,6 @@ export namespace alb { export interface ListenerRuleConditionHostHeader { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: string[]; } @@ -823,9 +820,6 @@ export namespace alb { export interface ListenerRuleConditionHttpRequestMethod { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: string[]; } @@ -833,9 +827,6 @@ export namespace alb { export interface ListenerRuleConditionPathPattern { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: string[]; } @@ -854,9 +845,6 @@ export namespace alb { export interface ListenerRuleConditionSourceIp { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: string[]; } @@ -1580,7 +1568,7 @@ export namespace appautoscaling { export interface PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification { /** - * Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * Dimensions of the metric. */ dimensions?: outputs.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimension[]; /** @@ -1600,7 +1588,7 @@ export namespace appautoscaling { */ statistic?: string; /** - * Unit of the metric. + * Unit of the metrics to return. */ unit?: string; } @@ -1649,14 +1637,14 @@ export namespace appautoscaling { */ stat: string; /** - * Unit of the metric. + * Unit of the metrics to return. */ unit?: string; } export interface PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric { /** - * Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + * Dimensions of the metric. */ dimensions?: outputs.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension[]; /** @@ -2694,7 +2682,7 @@ export namespace appflow { */ entityName: string; /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: outputs.appflow.FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig; /** @@ -2735,7 +2723,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: outputs.appflow.FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig; /** @@ -2761,7 +2749,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: outputs.appflow.FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig; /** @@ -2790,7 +2778,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: outputs.appflow.FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig; /** @@ -2816,11 +2804,11 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift { /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: string; /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: outputs.appflow.FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig; /** @@ -2850,11 +2838,11 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesS3 { /** - * Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * Name of the Amazon S3 bucket. */ bucketName: string; /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: string; /** @@ -2902,7 +2890,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: outputs.appflow.FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig; /** @@ -2936,7 +2924,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: outputs.appflow.FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig; /** @@ -2985,11 +2973,11 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake { /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: string; /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: outputs.appflow.FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig; /** @@ -3019,11 +3007,11 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver { /** - * Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * Name of the Amazon S3 bucket. */ bucketName: string; /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: string; /** @@ -3067,7 +3055,7 @@ export namespace appflow { export interface FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk { /** - * Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + * Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. */ errorHandlingConfig?: outputs.appflow.FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig; /** @@ -3251,11 +3239,11 @@ export namespace appflow { export interface FlowSourceFlowConfigSourceConnectorPropertiesS3 { /** - * Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + * Name of the Amazon S3 bucket. */ bucketName: string; /** - * Object key for the bucket in which Amazon AppFlow places the destination files. + * Amazon S3 bucket prefix. */ bucketPrefix?: string; /** @@ -3572,7 +3560,7 @@ export namespace appmesh { export interface GatewayRouteSpecGrpcRouteMatch { /** - * The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * The port number to match from the request. */ port?: number; /** @@ -3667,19 +3655,19 @@ export namespace appmesh { */ headers?: outputs.appmesh.GatewayRouteSpecHttp2RouteMatchHeader[]; /** - * Host name to rewrite. + * Host name to match on. */ hostname?: outputs.appmesh.GatewayRouteSpecHttp2RouteMatchHostname; /** - * Exact path to rewrite. + * Client request path to match on. */ path?: outputs.appmesh.GatewayRouteSpecHttp2RouteMatchPath; /** - * The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * The port number to match from the request. */ port?: number; /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** @@ -3705,11 +3693,11 @@ export namespace appmesh { export interface GatewayRouteSpecHttp2RouteMatchHeaderMatch { /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. */ exact?: string; /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** @@ -3772,7 +3760,7 @@ export namespace appmesh { export interface GatewayRouteSpecHttp2RouteMatchQueryParameterMatch { /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. */ exact?: string; } @@ -3863,19 +3851,19 @@ export namespace appmesh { */ headers?: outputs.appmesh.GatewayRouteSpecHttpRouteMatchHeader[]; /** - * Host name to rewrite. + * Host name to match on. */ hostname?: outputs.appmesh.GatewayRouteSpecHttpRouteMatchHostname; /** - * Exact path to rewrite. + * Client request path to match on. */ path?: outputs.appmesh.GatewayRouteSpecHttpRouteMatchPath; /** - * The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + * The port number to match from the request. */ port?: number; /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** @@ -3901,11 +3889,11 @@ export namespace appmesh { export interface GatewayRouteSpecHttpRouteMatchHeaderMatch { /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. */ exact?: string; /** - * Specified beginning characters to rewrite. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** @@ -3968,7 +3956,7 @@ export namespace appmesh { export interface GatewayRouteSpecHttpRouteMatchQueryParameterMatch { /** - * Value used to replace matched path. + * Header value sent by the client must match the specified value exactly. */ exact?: string; } @@ -5147,8 +5135,7 @@ export namespace appmesh { */ port?: number; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** @@ -5178,12 +5165,11 @@ export namespace appmesh { */ exact?: string; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** - * Object that specifies the range of numbers that the value sent by the client must be included in. + * Object that specifies the range of numbers that the header value sent by the client must be included in. */ range?: outputs.appmesh.RouteSpecGrpcRouteMatchMetadataMatchRange; /** @@ -5191,7 +5177,7 @@ export namespace appmesh { */ regex?: string; /** - * Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must end with the specified characters. */ suffix?: string; } @@ -5216,7 +5202,6 @@ export namespace appmesh { /** * List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). */ httpRetryEvents?: string[]; /** @@ -5229,9 +5214,6 @@ export namespace appmesh { perRetryTimeout: outputs.appmesh.RouteSpecGrpcRouteRetryPolicyPerRetryTimeout; /** * List of TCP retry events. The only valid value is `connection-error`. - * - * - * You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. */ tcpRetryEvents?: string[]; } @@ -5340,8 +5322,7 @@ export namespace appmesh { */ port?: number; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** @@ -5375,12 +5356,11 @@ export namespace appmesh { */ exact?: string; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** - * Object that specifies the range of numbers that the value sent by the client must be included in. + * Object that specifies the range of numbers that the header value sent by the client must be included in. */ range?: outputs.appmesh.RouteSpecHttp2RouteMatchHeaderMatchRange; /** @@ -5388,7 +5368,7 @@ export namespace appmesh { */ regex?: string; /** - * Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must end with the specified characters. */ suffix?: string; } @@ -5406,11 +5386,11 @@ export namespace appmesh { export interface RouteSpecHttp2RouteMatchPath { /** - * Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * Header value sent by the client must match the specified value exactly. */ exact?: string; /** - * Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must include the specified characters. */ regex?: string; } @@ -5437,7 +5417,6 @@ export namespace appmesh { /** * List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). */ httpRetryEvents?: string[]; /** @@ -5450,9 +5429,6 @@ export namespace appmesh { perRetryTimeout: outputs.appmesh.RouteSpecHttp2RouteRetryPolicyPerRetryTimeout; /** * List of TCP retry events. The only valid value is `connection-error`. - * - * - * You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. */ tcpRetryEvents?: string[]; } @@ -5561,8 +5537,7 @@ export namespace appmesh { */ port?: number; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** @@ -5596,12 +5571,11 @@ export namespace appmesh { */ exact?: string; /** - * Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - * This parameter must always start with /, which by itself matches all requests to the virtual router service name. + * Header value sent by the client must begin with the specified characters. */ prefix?: string; /** - * Object that specifies the range of numbers that the value sent by the client must be included in. + * Object that specifies the range of numbers that the header value sent by the client must be included in. */ range?: outputs.appmesh.RouteSpecHttpRouteMatchHeaderMatchRange; /** @@ -5609,7 +5583,7 @@ export namespace appmesh { */ regex?: string; /** - * Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must end with the specified characters. */ suffix?: string; } @@ -5627,11 +5601,11 @@ export namespace appmesh { export interface RouteSpecHttpRouteMatchPath { /** - * Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + * Header value sent by the client must match the specified value exactly. */ exact?: string; /** - * Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + * Header value sent by the client must include the specified characters. */ regex?: string; } @@ -5658,7 +5632,6 @@ export namespace appmesh { /** * List of HTTP retry events. * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - * Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). */ httpRetryEvents?: string[]; /** @@ -5671,9 +5644,6 @@ export namespace appmesh { perRetryTimeout: outputs.appmesh.RouteSpecHttpRouteRetryPolicyPerRetryTimeout; /** * List of TCP retry events. The only valid value is `connection-error`. - * - * - * You must specify at least one value for `httpRetryEvents`, or at least one value for `tcpRetryEvents`. */ tcpRetryEvents?: string[]; } @@ -6606,7 +6576,7 @@ export namespace appmesh { */ unit: string; /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. */ value: number; } @@ -6669,7 +6639,7 @@ export namespace appmesh { */ unit: string; /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. */ value: number; } @@ -6713,7 +6683,7 @@ export namespace appmesh { */ unit: string; /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. */ value: number; } @@ -6735,7 +6705,7 @@ export namespace appmesh { */ unit: string; /** - * The specified value for the JSON. Must be between 1 and 100 characters in length. + * Number of time units. Minimum value of `0`. */ value: number; } @@ -8532,7 +8502,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplate { /** - * Nested argument defines the Launch Template. Defined below. + * Override the instance launch template specification in the Launch Template. */ launchTemplateSpecification: outputs.autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification; /** @@ -8566,7 +8536,7 @@ export namespace autoscaling { */ instanceType?: string; /** - * Nested argument defines the Launch Template. Defined below. + * Override the instance launch template specification in the Launch Template. */ launchTemplateSpecification?: outputs.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification; /** @@ -8706,7 +8676,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -8717,7 +8687,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -8728,7 +8698,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -8739,7 +8709,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -8750,7 +8720,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -8761,7 +8731,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -8772,7 +8742,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -8783,7 +8753,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -8794,7 +8764,7 @@ export namespace autoscaling { export interface GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -10776,15 +10746,15 @@ export namespace chimesdkmediapipelines { */ callAnalyticsStreamCategories?: string[]; /** - * Labels all personally identifiable information (PII) identified in Utterance events. + * Labels all personally identifiable information (PII) identified in Transcript events. */ contentIdentificationType?: string; /** - * Redacts all personally identifiable information (PII) identified in Utterance events. + * Redacts all personally identifiable information (PII) identified in Transcript events. */ contentRedactionType?: string; /** - * Enables partial result stabilization in Utterance events. + * Enables partial result stabilization in Transcript events. */ enablePartialResultsStabilization?: boolean; /** @@ -10804,7 +10774,7 @@ export namespace chimesdkmediapipelines { */ partialResultsStability?: string; /** - * Types of personally identifiable information (PII) to redact from an Utterance event. + * Types of personally identifiable information (PII) to redact from a Transcript event. */ piiEntityTypes?: string; /** @@ -10812,15 +10782,15 @@ export namespace chimesdkmediapipelines { */ postCallAnalyticsSettings?: outputs.chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettings; /** - * Method for applying a vocabulary filter to Utterance events. + * Method for applying a vocabulary filter to Transcript events. */ vocabularyFilterMethod?: string; /** - * Name of the custom vocabulary filter to use when processing Utterance events. + * Name of the custom vocabulary filter to use when processing Transcript events. */ vocabularyFilterName?: string; /** - * Name of the custom vocabulary to use when processing Utterance events. + * Name of the custom vocabulary to use when processing Transcript events. */ vocabularyName?: string; } @@ -10846,15 +10816,15 @@ export namespace chimesdkmediapipelines { export interface MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration { /** - * Labels all personally identifiable information (PII) identified in Utterance events. + * Labels all personally identifiable information (PII) identified in Transcript events. */ contentIdentificationType?: string; /** - * Redacts all personally identifiable information (PII) identified in Utterance events. + * Redacts all personally identifiable information (PII) identified in Transcript events. */ contentRedactionType?: string; /** - * Enables partial result stabilization in Utterance events. + * Enables partial result stabilization in Transcript events. */ enablePartialResultsStabilization?: boolean; /** @@ -10874,7 +10844,7 @@ export namespace chimesdkmediapipelines { */ partialResultsStability?: string; /** - * Types of personally identifiable information (PII) to redact from an Utterance event. + * Types of personally identifiable information (PII) to redact from a Transcript event. */ piiEntityTypes?: string; /** @@ -10882,29 +10852,29 @@ export namespace chimesdkmediapipelines { */ showSpeakerLabel?: boolean; /** - * Method for applying a vocabulary filter to Utterance events. + * Method for applying a vocabulary filter to Transcript events. */ vocabularyFilterMethod?: string; /** - * Name of the custom vocabulary filter to use when processing Utterance events. + * Name of the custom vocabulary filter to use when processing Transcript events. */ vocabularyFilterName?: string; /** - * Name of the custom vocabulary to use when processing Utterance events. + * Name of the custom vocabulary to use when processing Transcript events. */ vocabularyName?: string; } export interface MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration { /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. */ insightsTarget: string; } export interface MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration { /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. */ insightsTarget: string; } @@ -10918,14 +10888,14 @@ export namespace chimesdkmediapipelines { export interface MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration { /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. */ insightsTarget: string; } export interface MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration { /** - * Kinesis Data Stream to deliver results. + * SQS queue to deliver results. */ insightsTarget: string; } @@ -11187,6 +11157,9 @@ export namespace cloudfront { } export interface CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies { + /** + * List of item names, such as cookies, headers, or query strings. + */ items?: string[]; } @@ -11202,6 +11175,9 @@ export namespace cloudfront { } export interface CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders { + /** + * List of item names, such as cookies, headers, or query strings. + */ items?: string[]; } @@ -11217,6 +11193,9 @@ export namespace cloudfront { } export interface CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings { + /** + * List of item names, such as cookies, headers, or query strings. + */ items?: string[]; } @@ -11613,7 +11592,7 @@ export namespace cloudfront { */ originAccessControlId?: string; /** - * Unique identifier for the origin. + * Unique identifier of the member origin. */ originId: string; /** @@ -11672,7 +11651,7 @@ export namespace cloudfront { */ members: outputs.cloudfront.DistributionOriginGroupMember[]; /** - * Unique identifier for the origin. + * Unique identifier of the member origin. */ originId: string; } @@ -11686,14 +11665,14 @@ export namespace cloudfront { export interface DistributionOriginGroupMember { /** - * Unique identifier for the origin. + * Unique identifier of the member origin. */ originId: string; } export interface DistributionOriginOriginShield { /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. */ enabled: boolean; /** @@ -11726,7 +11705,7 @@ export namespace cloudfront { export interface DistributionTrustedKeyGroup { /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. */ enabled: boolean; /** @@ -11748,7 +11727,7 @@ export namespace cloudfront { export interface DistributionTrustedSigner { /** - * Whether the distribution is enabled to accept end user requests for content. + * Whether Origin Shield is enabled. */ enabled: boolean; /** @@ -12308,7 +12287,7 @@ export namespace cloudfront { */ header: string; /** - * Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + * Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. */ override: boolean; /** @@ -13625,7 +13604,7 @@ export namespace codebuild { */ groupName?: string; /** - * Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. */ status?: string; /** @@ -13648,7 +13627,7 @@ export namespace codebuild { */ location?: string; /** - * Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + * Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. */ status?: string; } @@ -14744,6 +14723,9 @@ export namespace cognito { * The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. */ eventAction: string; + /** + * Whether to send a notification. + */ notify: boolean; } @@ -14752,6 +14734,9 @@ export namespace cognito { * The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. */ eventAction: string; + /** + * Whether to send a notification. + */ notify: boolean; } @@ -14760,6 +14745,9 @@ export namespace cognito { * The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. */ eventAction: string; + /** + * Whether to send a notification. + */ notify: boolean; } @@ -18415,7 +18403,7 @@ export namespace dlm { */ eventSource?: outputs.dlm.LifecyclePolicyPolicyDetailsEventSource; /** - * A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * Information about the event. See the `parameters` configuration block. */ parameters?: outputs.dlm.LifecyclePolicyPolicyDetailsParameters; /** @@ -18470,11 +18458,11 @@ export namespace dlm { export interface LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration { /** - * The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. */ cmkArn?: string; /** - * To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. */ encrypted?: boolean; } @@ -18492,7 +18480,7 @@ export namespace dlm { export interface LifecyclePolicyPolicyDetailsEventSource { /** - * A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + * Information about the event. See the `parameters` configuration block. */ parameters: outputs.dlm.LifecyclePolicyPolicyDetailsEventSourceParameters; /** @@ -18529,7 +18517,7 @@ export namespace dlm { export interface LifecyclePolicyPolicyDetailsSchedule { /** - * Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. */ copyTags: boolean; /** @@ -18541,7 +18529,7 @@ export namespace dlm { */ crossRegionCopyRules?: outputs.dlm.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule[]; /** - * See the `deprecateRule` block. Max of 1 per schedule. + * The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. */ deprecateRule?: outputs.dlm.LifecyclePolicyPolicyDetailsScheduleDeprecateRule; /** @@ -18595,19 +18583,19 @@ export namespace dlm { export interface LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule { /** - * The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + * The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. */ cmkArn?: string; /** - * Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + * Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. */ copyTags?: boolean; /** - * See the `deprecateRule` block. Max of 1 per schedule. + * The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecateRule` block. */ deprecateRule?: outputs.dlm.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule; /** - * To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + * To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. */ encrypted: boolean; /** @@ -20164,99 +20152,99 @@ export namespace ec2 { export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: number; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: number; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: number; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: number; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: number; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: number; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: number; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: number; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: number; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min: number; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: number; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: number; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: number; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: number; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: number; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min?: number; } export interface FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * The maximum number of vCPUs. To specify no maximum limit, omit this parameter. */ max?: number; /** - * Minimum. + * The minimum number of vCPUs. To specify no minimum limit, specify `0`. */ min: number; } @@ -23328,7 +23316,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsAcceleratorCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -23339,7 +23327,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -23350,7 +23338,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -23361,7 +23349,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsMemoryGibPerVcpu { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -23372,7 +23360,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -23383,7 +23371,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsNetworkBandwidthGbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -23394,7 +23382,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsNetworkInterfaceCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -23405,7 +23393,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsTotalLocalStorageGb { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -23416,7 +23404,7 @@ export namespace ec2 { export interface LaunchTemplateInstanceRequirementsVcpuCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -24989,7 +24977,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -25000,7 +24988,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -25011,7 +24999,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -25022,7 +25010,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -25033,7 +25021,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -25044,7 +25032,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -25055,7 +25043,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -25066,7 +25054,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -25077,7 +25065,7 @@ export namespace ec2 { export interface SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount { /** - * Maximum. Set to `0` to exclude instance types with accelerators. + * Maximum. */ max?: number; /** @@ -31409,11 +31397,11 @@ export namespace glue { export interface CrawlerS3Target { /** - * The name of the connection to use to connect to the JDBC target. + * The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. */ connectionName?: string; /** - * The ARN of the dead-letter SQS queue. + * A valid Amazon SQS ARN. * * > **Note:** `deletionBehavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. * @@ -31421,7 +31409,7 @@ export namespace glue { */ dlqEventQueueArn?: string; /** - * The ARN of the SQS queue to receive S3 notifications from. + * A valid Amazon SQS ARN. */ eventQueueArn?: string; /** @@ -34186,8 +34174,6 @@ export namespace iot { export interface TopicRuleDynamodbv2PutItem { /** * The name of the DynamoDB table. - * - * The `dynamodbv2` object takes the following arguments: */ tableName: string; } @@ -34351,8 +34337,6 @@ export namespace iot { export interface TopicRuleErrorActionDynamodbv2PutItem { /** * The name of the DynamoDB table. - * - * The `dynamodbv2` object takes the following arguments: */ tableName: string; } @@ -36406,7 +36390,6 @@ export namespace kinesis { 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; /** @@ -36431,7 +36414,7 @@ export namespace kinesis { */ prefix?: string; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: string; } @@ -36478,7 +36461,6 @@ export namespace kinesis { 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; /** @@ -36515,7 +36497,7 @@ export namespace kinesis { */ processingConfiguration?: outputs.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfiguration; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: string; /** @@ -36523,7 +36505,7 @@ export namespace kinesis { */ s3BackupConfiguration?: outputs.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration; /** - * The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + * Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. */ s3BackupMode?: string; } @@ -36776,7 +36758,6 @@ export namespace kinesis { 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; /** @@ -36801,7 +36782,7 @@ export namespace kinesis { */ prefix?: string; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: string; } @@ -36955,7 +36936,6 @@ export namespace kinesis { 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; /** @@ -36980,7 +36960,7 @@ export namespace kinesis { */ prefix?: string; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: string; } @@ -37157,7 +37137,6 @@ export namespace kinesis { 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; /** @@ -37182,7 +37161,7 @@ export namespace kinesis { */ prefix?: string; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: string; } @@ -37326,7 +37305,6 @@ export namespace kinesis { 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; /** @@ -37351,7 +37329,7 @@ export namespace kinesis { */ prefix?: string; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: string; } @@ -37503,7 +37481,6 @@ export namespace kinesis { 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; /** @@ -37528,7 +37505,7 @@ export namespace kinesis { */ prefix?: string; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: string; } @@ -37559,7 +37536,6 @@ export namespace kinesis { 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; /** @@ -37584,7 +37560,7 @@ export namespace kinesis { */ prefix?: string; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: string; } @@ -37721,7 +37697,6 @@ export namespace kinesis { 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; /** @@ -37746,7 +37721,7 @@ export namespace kinesis { */ prefix?: string; /** - * The ARN of the role that provides access to the source Kinesis stream. + * The ARN of the role used to access the Amazon MSK cluster. */ roleArn: string; } @@ -39597,9 +39572,6 @@ export namespace lb { export interface ListenerRuleConditionHostHeader { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: string[]; } @@ -39618,9 +39590,6 @@ export namespace lb { export interface ListenerRuleConditionHttpRequestMethod { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: string[]; } @@ -39628,9 +39597,6 @@ export namespace lb { export interface ListenerRuleConditionPathPattern { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: string[]; } @@ -39649,9 +39615,6 @@ export namespace lb { export interface ListenerRuleConditionSourceIp { /** * List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - * - * - * Query String Value Blocks (for `query_string.values`) support the following: */ values: string[]; } @@ -39764,13 +39727,16 @@ export namespace lb { export namespace lex { export interface BotAbortStatement { + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + */ messages: outputs.lex.BotAbortStatementMessage[]; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). */ responseCard?: string; } @@ -39830,13 +39796,16 @@ export namespace lex { * The number of times to prompt the user for information. */ maxAttempts: number; + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. + */ messages: outputs.lex.BotClarificationPromptMessage[]; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). */ responseCard?: string; } @@ -39874,15 +39843,16 @@ export namespace lex { } export interface IntentConclusionStatement { + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: outputs.lex.IntentConclusionStatementMessage[]; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: string; } @@ -39908,15 +39878,16 @@ export namespace lex { * The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). */ maxAttempts: number; + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: outputs.lex.IntentConfirmationPromptMessage[]; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: string; } @@ -39999,15 +39970,16 @@ export namespace lex { } export interface IntentFollowUpPromptRejectionStatement { + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: outputs.lex.IntentFollowUpPromptRejectionStatementMessage[]; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: string; } @@ -40055,15 +40027,16 @@ export namespace lex { } export interface IntentRejectionStatement { + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: outputs.lex.IntentRejectionStatementMessage[]; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: string; } @@ -40137,15 +40110,16 @@ export namespace lex { * The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). */ maxAttempts: number; + /** + * A set of messages, each of which provides a message string and its type. + * You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + * Attributes are documented under message. Must contain between 1 and 15 messages. + */ messages: outputs.lex.IntentSlotValueElicitationPromptMessage[]; /** * The response card. Amazon Lex will substitute session attributes and * slot values into the response card. For more information, see * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - * slot values into the response card. For more information, see - * [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. */ responseCard?: string; } @@ -40821,7 +40795,7 @@ export namespace macie2 { export interface ClassificationJobS3JobDefinitionBucketCriteriaIncludes { /** - * An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) */ ands: outputs.macie2.ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd[]; } @@ -40961,7 +40935,7 @@ export namespace macie2 { export interface ClassificationJobS3JobDefinitionScopingIncludes { /** - * An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + * An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) */ ands: outputs.macie2.ClassificationJobS3JobDefinitionScopingIncludesAnd[]; } @@ -41864,7 +41838,7 @@ export namespace medialive { */ uri: string; /** - * Username for destination. + * . Username to be used. */ username: string; } @@ -42200,7 +42174,7 @@ export namespace medialive { */ uri: string; /** - * Username for destination. + * . Username to be used. */ username: string; } @@ -42481,7 +42455,7 @@ export namespace medialive { */ uri: string; /** - * Username for destination. + * . Username to be used. */ username: string; } @@ -42784,7 +42758,7 @@ export namespace medialive { */ entropyEncoding: string; /** - * Filters to apply to an encode. See H264 Filter Settings for more details. + * Filters to apply to an encode. See H265 Filter Settings for more details. */ filterSettings?: outputs.medialive.ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings; /** @@ -42829,7 +42803,7 @@ export namespace medialive { */ gopSizeUnits: string; /** - * H264 level. + * H265 level. */ level: string; /** @@ -42959,7 +42933,7 @@ export namespace medialive { */ colorSpaceSettings?: outputs.medialive.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettings; /** - * Filters to apply to an encode. See H264 Filter Settings for more details. + * Filters to apply to an encode. See H265 Filter Settings for more details. */ filterSettings?: outputs.medialive.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings; /** @@ -42988,7 +42962,7 @@ export namespace medialive { */ gopSizeUnits: string; /** - * H264 level. + * H265 level. */ level: string; /** @@ -43184,7 +43158,7 @@ export namespace medialive { export interface ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings { /** - * The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + * The name of the audio selector used as the source for this AudioDescription. */ audioSelectorName: string; /** @@ -44249,11 +44223,11 @@ export namespace msk { export interface ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl { /** - * Enables SASL/IAM authentication for VPC connectivity. + * Enables IAM client authentication. Defaults to `false`. */ iam: boolean; /** - * Enables SASL/SCRAM authentication for VPC connectivity. + * Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. */ scram: boolean; } @@ -44304,11 +44278,11 @@ export namespace msk { export interface ClusterClientAuthenticationSasl { /** - * Enables SASL/IAM authentication for VPC connectivity. + * Enables IAM client authentication. Defaults to `false`. */ iam?: boolean; /** - * Enables SASL/SCRAM authentication for VPC connectivity. + * Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. */ scram?: boolean; } @@ -44423,14 +44397,14 @@ export namespace msk { export interface ClusterOpenMonitoringPrometheusJmxExporter { /** - * Indicates whether you want to enable or disable the JMX Exporter. + * Indicates whether you want to enable or disable the Node Exporter. */ enabledInBroker: boolean; } export interface ClusterOpenMonitoringPrometheusNodeExporter { /** - * Indicates whether you want to enable or disable the JMX Exporter. + * Indicates whether you want to enable or disable the Node Exporter. */ enabledInBroker: boolean; } @@ -48032,7 +48006,7 @@ export namespace pipes { export interface PipeSourceParametersActivemqBrokerParametersCredentials { /** - * The ARN of the Secrets Manager secret containing the basic auth credentials. + * The ARN of the Secrets Manager secret containing the credentials. */ basicAuth: string; } @@ -48202,7 +48176,7 @@ export namespace pipes { export interface PipeSourceParametersRabbitmqBrokerParametersCredentials { /** - * The ARN of the Secrets Manager secret containing the basic auth credentials. + * The ARN of the Secrets Manager secret containing the credentials. */ basicAuth: string; } @@ -48248,7 +48222,7 @@ export namespace pipes { export interface PipeSourceParametersSelfManagedKafkaParametersCredentials { /** - * The ARN of the Secrets Manager secret containing the basic auth credentials. + * The ARN of the Secrets Manager secret containing the credentials. */ basicAuth: string; /** @@ -48378,11 +48352,11 @@ export namespace pipes { export interface PipeTargetParametersBatchJobParametersContainerOverrides { /** - * List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. */ commands?: string[]; /** - * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. */ environments?: outputs.pipes.PipeTargetParametersBatchJobParametersContainerOverridesEnvironment[]; /** @@ -48390,7 +48364,7 @@ export namespace pipes { */ instanceType?: string; /** - * The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. */ resourceRequirements?: outputs.pipes.PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement[]; } @@ -48401,18 +48375,18 @@ export namespace pipes { */ name?: string; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value?: string; } export interface PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement { /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type: string; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value: string; } @@ -48423,7 +48397,7 @@ export namespace pipes { */ jobId?: string; /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type?: string; } @@ -48552,7 +48526,7 @@ export namespace pipes { */ containerOverrides?: outputs.pipes.PipeTargetParametersEcsTaskParametersOverridesContainerOverride[]; /** - * The cpu override for the task. + * The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. */ cpu?: string; /** @@ -48568,7 +48542,7 @@ export namespace pipes { */ inferenceAcceleratorOverrides?: outputs.pipes.PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverride[]; /** - * The memory override for the task. + * The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. */ memory?: string; /** @@ -48579,11 +48553,11 @@ export namespace pipes { export interface PipeTargetParametersEcsTaskParametersOverridesContainerOverride { /** - * List of commands to send to the container that overrides the default command from the Docker image or the task definition. + * List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. */ commands?: string[]; /** - * The cpu override for the task. + * The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. */ cpu?: number; /** @@ -48591,11 +48565,11 @@ export namespace pipes { */ environmentFiles?: outputs.pipes.PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile[]; /** - * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. */ environments?: outputs.pipes.PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment[]; /** - * The memory override for the task. + * The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. */ memory?: number; /** @@ -48607,7 +48581,7 @@ export namespace pipes { */ name?: string; /** - * The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + * The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. */ resourceRequirements?: outputs.pipes.PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement[]; } @@ -48618,29 +48592,29 @@ export namespace pipes { */ name?: string; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value?: string; } export interface PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile { /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type: string; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value: string; } export interface PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement { /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type: string; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value: string; } @@ -48669,7 +48643,7 @@ export namespace pipes { */ expression?: string; /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type?: string; } @@ -48680,7 +48654,7 @@ export namespace pipes { */ field?: string; /** - * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + * The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. */ type?: string; } @@ -48777,7 +48751,7 @@ export namespace pipes { */ name: string; /** - * The value of the key-value pair. For environment variables, this is the value of the environment variable. + * Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. */ value: string; } @@ -52382,7 +52356,7 @@ export namespace s3 { */ format?: string; /** - * Object prefix for filtering. + * Prefix to append to exported analytics data. */ prefix?: string; } @@ -59192,7 +59166,7 @@ export namespace signer { export interface SigningJobSignedObject { /** - * A configuration block describing the S3 Source object: See S3 Source below for details. + * A configuration block describing the S3 Destination object: See S3 Destination below for details. */ s3s: outputs.signer.SigningJobSignedObjectS3[]; } @@ -60487,7 +60461,7 @@ export namespace transfer { */ tagStepDetails?: outputs.transfer.WorkflowOnExceptionStepTagStepDetails; /** - * One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * The type of encryption used. Currently, this value must be `"PGP"`. */ type: string; } @@ -60539,7 +60513,7 @@ export namespace transfer { */ bucket?: string; /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key?: string; } @@ -60614,7 +60588,7 @@ export namespace transfer { */ bucket?: string; /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key?: string; } @@ -60647,7 +60621,7 @@ export namespace transfer { export interface WorkflowOnExceptionStepTagStepDetailsTag { /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key: string; /** @@ -60678,7 +60652,7 @@ export namespace transfer { */ tagStepDetails?: outputs.transfer.WorkflowStepTagStepDetails; /** - * One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + * The type of encryption used. Currently, this value must be `"PGP"`. */ type: string; } @@ -60730,7 +60704,7 @@ export namespace transfer { */ bucket?: string; /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key?: string; } @@ -60805,7 +60779,7 @@ export namespace transfer { */ bucket?: string; /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key?: string; } @@ -60838,7 +60812,7 @@ export namespace transfer { export interface WorkflowStepTagStepDetailsTag { /** - * The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + * The name assigned to the tag that you create. */ key: string; /** @@ -61388,14 +61362,14 @@ export namespace waf { */ ruleId: string; /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. */ type?: string; } export interface RuleGroupActivatedRuleAction { /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. */ type: string; } @@ -61721,14 +61695,14 @@ export namespace wafregional { */ ruleId: string; /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. */ type?: string; } export interface RuleGroupActivatedRuleAction { /** - * e.g., `BLOCK`, `ALLOW`, or `COUNT` + * The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. */ type: string; } @@ -61880,7 +61854,7 @@ export namespace wafregional { export interface WebAclRuleOverrideAction { /** - * Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + * Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `overrideAction` are `COUNT` and `NONE`. */ type: string; } @@ -62278,7 +62252,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementByteMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -62551,16 +62525,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: outputs.wafv2.RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformation[]; } @@ -62588,16 +62552,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: outputs.wafv2.RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation[]; } @@ -62635,16 +62589,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: outputs.wafv2.RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation[]; } @@ -62665,16 +62609,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: outputs.wafv2.RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation[]; } @@ -62695,16 +62629,6 @@ export namespace wafv2 { * Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. * At least one required. * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. - * At least one required. - * See Text Transformation below for details. */ textTransformations: outputs.wafv2.RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation[]; } @@ -62858,7 +62782,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -63125,7 +63049,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -63319,7 +63243,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -63517,7 +63441,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -63707,7 +63631,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -63897,7 +63821,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -64091,7 +64015,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -64285,7 +64209,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -64483,7 +64407,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -64673,7 +64597,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -64863,7 +64787,7 @@ export namespace wafv2 { export interface RuleGroupRuleStatementXssMatchStatementFieldToMatchBody { /** - * Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + * What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` */ oversizeHandling?: string; } @@ -65880,7 +65804,7 @@ export namespace wafv2 { export interface WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField { /** - * The name of the password field. + * The identifier for the value to match against in the JSON. */ identifier: string; } @@ -66123,11 +66047,11 @@ export namespace wafv2 { export interface WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse { /** - * Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * Instructs AWS WAF to allow the web request. See `allow` below for details. */ allow?: outputs.wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow; /** - * Specifies that AWS WAF should block requests by default. See `block` below for details. + * Instructs AWS WAF to block the web request. See `block` below for details. */ block?: outputs.wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock; /** @@ -69456,11 +69380,11 @@ export namespace wafv2 { export interface WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse { /** - * Specifies that AWS WAF should allow requests by default. See `allow` below for details. + * Instructs AWS WAF to allow the web request. See `allow` below for details. */ allow?: outputs.wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow; /** - * Specifies that AWS WAF should block requests by default. See `block` below for details. + * Instructs AWS WAF to block the web request. See `block` below for details. */ block?: outputs.wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock; /** diff --git a/sdk/python/pulumi_aws/_inputs.py b/sdk/python/pulumi_aws/_inputs.py index f79ea5c94d1..a29598ef9e7 100644 --- a/sdk/python/pulumi_aws/_inputs.py +++ b/sdk/python/pulumi_aws/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities from ._enums import * @@ -33,24 +33,63 @@ def __init__(__self__, *, source_identity: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, transitive_tag_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + ProviderAssumeRoleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + external_id=external_id, + policy=policy, + policy_arns=policy_arns, + role_arn=role_arn, + session_name=session_name, + source_identity=source_identity, + tags=tags, + transitive_tag_keys=transitive_tag_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[pulumi.Input[str]] = None, + external_id: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + policy_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + session_name: Optional[pulumi.Input[str]] = None, + source_identity: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transitive_tag_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if policy_arns is None and 'policyArns' in kwargs: + policy_arns = kwargs['policyArns'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if session_name is None and 'sessionName' in kwargs: + session_name = kwargs['sessionName'] + if source_identity is None and 'sourceIdentity' in kwargs: + source_identity = kwargs['sourceIdentity'] + if transitive_tag_keys is None and 'transitiveTagKeys' in kwargs: + transitive_tag_keys = kwargs['transitiveTagKeys'] + if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if policy_arns is not None: - pulumi.set(__self__, "policy_arns", policy_arns) + _setter("policy_arns", policy_arns) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if session_name is not None: - pulumi.set(__self__, "session_name", session_name) + _setter("session_name", session_name) if source_identity is not None: - pulumi.set(__self__, "source_identity", source_identity) + _setter("source_identity", source_identity) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transitive_tag_keys is not None: - pulumi.set(__self__, "transitive_tag_keys", transitive_tag_keys) + _setter("transitive_tag_keys", transitive_tag_keys) @property @pulumi.getter @@ -144,20 +183,53 @@ def __init__(__self__, *, session_name: Optional[pulumi.Input[str]] = None, web_identity_token: Optional[pulumi.Input[str]] = None, web_identity_token_file: Optional[pulumi.Input[str]] = None): + ProviderAssumeRoleWithWebIdentityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + policy=policy, + policy_arns=policy_arns, + role_arn=role_arn, + session_name=session_name, + web_identity_token=web_identity_token, + web_identity_token_file=web_identity_token_file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + policy_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + session_name: Optional[pulumi.Input[str]] = None, + web_identity_token: Optional[pulumi.Input[str]] = None, + web_identity_token_file: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arns is None and 'policyArns' in kwargs: + policy_arns = kwargs['policyArns'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if session_name is None and 'sessionName' in kwargs: + session_name = kwargs['sessionName'] + if web_identity_token is None and 'webIdentityToken' in kwargs: + web_identity_token = kwargs['webIdentityToken'] + if web_identity_token_file is None and 'webIdentityTokenFile' in kwargs: + web_identity_token_file = kwargs['webIdentityTokenFile'] + if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if policy_arns is not None: - pulumi.set(__self__, "policy_arns", policy_arns) + _setter("policy_arns", policy_arns) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if session_name is not None: - pulumi.set(__self__, "session_name", session_name) + _setter("session_name", session_name) if web_identity_token is not None: - pulumi.set(__self__, "web_identity_token", web_identity_token) + _setter("web_identity_token", web_identity_token) if web_identity_token_file is not None: - pulumi.set(__self__, "web_identity_token_file", web_identity_token_file) + _setter("web_identity_token_file", web_identity_token_file) @property @pulumi.getter @@ -227,8 +299,19 @@ def web_identity_token_file(self, value: Optional[pulumi.Input[str]]): class ProviderDefaultTagsArgs: def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + ProviderDefaultTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -493,506 +576,1017 @@ def __init__(__self__, *, worklink: Optional[pulumi.Input[str]] = None, workspaces: Optional[pulumi.Input[str]] = None, xray: Optional[pulumi.Input[str]] = None): + ProviderEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accessanalyzer=accessanalyzer, + account=account, + acm=acm, + acmpca=acmpca, + amg=amg, + amp=amp, + amplify=amplify, + apigateway=apigateway, + apigatewayv2=apigatewayv2, + appautoscaling=appautoscaling, + appconfig=appconfig, + appflow=appflow, + appintegrations=appintegrations, + appintegrationsservice=appintegrationsservice, + applicationautoscaling=applicationautoscaling, + applicationinsights=applicationinsights, + appmesh=appmesh, + apprunner=apprunner, + appstream=appstream, + appsync=appsync, + athena=athena, + auditmanager=auditmanager, + autoscaling=autoscaling, + autoscalingplans=autoscalingplans, + backup=backup, + batch=batch, + beanstalk=beanstalk, + bedrock=bedrock, + budgets=budgets, + ce=ce, + chime=chime, + chimesdkmediapipelines=chimesdkmediapipelines, + chimesdkvoice=chimesdkvoice, + cleanrooms=cleanrooms, + cloud9=cloud9, + cloudcontrol=cloudcontrol, + cloudcontrolapi=cloudcontrolapi, + cloudformation=cloudformation, + cloudfront=cloudfront, + cloudhsm=cloudhsm, + cloudhsmv2=cloudhsmv2, + cloudsearch=cloudsearch, + cloudtrail=cloudtrail, + cloudwatch=cloudwatch, + cloudwatchevents=cloudwatchevents, + cloudwatchevidently=cloudwatchevidently, + cloudwatchlog=cloudwatchlog, + cloudwatchlogs=cloudwatchlogs, + cloudwatchobservabilityaccessmanager=cloudwatchobservabilityaccessmanager, + cloudwatchrum=cloudwatchrum, + codeartifact=codeartifact, + codebuild=codebuild, + codecatalyst=codecatalyst, + codecommit=codecommit, + codedeploy=codedeploy, + codegurureviewer=codegurureviewer, + codepipeline=codepipeline, + codestarconnections=codestarconnections, + codestarnotifications=codestarnotifications, + cognitoidentity=cognitoidentity, + cognitoidentityprovider=cognitoidentityprovider, + cognitoidp=cognitoidp, + comprehend=comprehend, + computeoptimizer=computeoptimizer, + config=config, + configservice=configservice, + connect=connect, + controltower=controltower, + costandusagereportservice=costandusagereportservice, + costexplorer=costexplorer, + cur=cur, + databasemigration=databasemigration, + databasemigrationservice=databasemigrationservice, + dataexchange=dataexchange, + datapipeline=datapipeline, + datasync=datasync, + dax=dax, + deploy=deploy, + detective=detective, + devicefarm=devicefarm, + directconnect=directconnect, + directoryservice=directoryservice, + dlm=dlm, + dms=dms, + docdb=docdb, + docdbelastic=docdbelastic, + ds=ds, + dynamodb=dynamodb, + ec2=ec2, + ecr=ecr, + ecrpublic=ecrpublic, + ecs=ecs, + efs=efs, + eks=eks, + elasticache=elasticache, + elasticbeanstalk=elasticbeanstalk, + elasticloadbalancing=elasticloadbalancing, + elasticloadbalancingv2=elasticloadbalancingv2, + elasticsearch=elasticsearch, + elasticsearchservice=elasticsearchservice, + elastictranscoder=elastictranscoder, + elb=elb, + elbv2=elbv2, + emr=emr, + emrcontainers=emrcontainers, + emrserverless=emrserverless, + es=es, + eventbridge=eventbridge, + events=events, + evidently=evidently, + finspace=finspace, + firehose=firehose, + fis=fis, + fms=fms, + fsx=fsx, + gamelift=gamelift, + glacier=glacier, + globalaccelerator=globalaccelerator, + glue=glue, + grafana=grafana, + greengrass=greengrass, + guardduty=guardduty, + healthlake=healthlake, + iam=iam, + identitystore=identitystore, + imagebuilder=imagebuilder, + inspector=inspector, + inspector2=inspector2, + inspectorv2=inspectorv2, + internetmonitor=internetmonitor, + iot=iot, + iotanalytics=iotanalytics, + iotevents=iotevents, + ivs=ivs, + ivschat=ivschat, + kafka=kafka, + kafkaconnect=kafkaconnect, + kendra=kendra, + keyspaces=keyspaces, + kinesis=kinesis, + kinesisanalytics=kinesisanalytics, + kinesisanalyticsv2=kinesisanalyticsv2, + kinesisvideo=kinesisvideo, + kms=kms, + lakeformation=lakeformation, + lambda_=lambda_, + lex=lex, + lexmodelbuilding=lexmodelbuilding, + lexmodelbuildingservice=lexmodelbuildingservice, + lexmodels=lexmodels, + lexmodelsv2=lexmodelsv2, + lexv2models=lexv2models, + licensemanager=licensemanager, + lightsail=lightsail, + location=location, + locationservice=locationservice, + logs=logs, + macie2=macie2, + managedgrafana=managedgrafana, + mediaconnect=mediaconnect, + mediaconvert=mediaconvert, + medialive=medialive, + mediapackage=mediapackage, + mediastore=mediastore, + memorydb=memorydb, + mq=mq, + msk=msk, + mwaa=mwaa, + neptune=neptune, + networkfirewall=networkfirewall, + networkmanager=networkmanager, + oam=oam, + opensearch=opensearch, + opensearchserverless=opensearchserverless, + opensearchservice=opensearchservice, + opsworks=opsworks, + organizations=organizations, + outposts=outposts, + pinpoint=pinpoint, + pipes=pipes, + pricing=pricing, + prometheus=prometheus, + prometheusservice=prometheusservice, + qldb=qldb, + quicksight=quicksight, + ram=ram, + rbin=rbin, + rds=rds, + recyclebin=recyclebin, + redshift=redshift, + redshiftdata=redshiftdata, + redshiftdataapiservice=redshiftdataapiservice, + redshiftserverless=redshiftserverless, + resourceexplorer2=resourceexplorer2, + resourcegroups=resourcegroups, + resourcegroupstagging=resourcegroupstagging, + resourcegroupstaggingapi=resourcegroupstaggingapi, + rolesanywhere=rolesanywhere, + route53=route53, + route53domains=route53domains, + route53recoverycontrolconfig=route53recoverycontrolconfig, + route53recoveryreadiness=route53recoveryreadiness, + route53resolver=route53resolver, + rum=rum, + s3=s3, + s3api=s3api, + s3control=s3control, + s3outposts=s3outposts, + sagemaker=sagemaker, + scheduler=scheduler, + schemas=schemas, + sdb=sdb, + secretsmanager=secretsmanager, + securityhub=securityhub, + securitylake=securitylake, + serverlessapplicationrepository=serverlessapplicationrepository, + serverlessapprepo=serverlessapprepo, + serverlessrepo=serverlessrepo, + servicecatalog=servicecatalog, + servicediscovery=servicediscovery, + servicequotas=servicequotas, + ses=ses, + sesv2=sesv2, + sfn=sfn, + shield=shield, + signer=signer, + simpledb=simpledb, + sns=sns, + sqs=sqs, + ssm=ssm, + ssmcontacts=ssmcontacts, + ssmincidents=ssmincidents, + ssoadmin=ssoadmin, + stepfunctions=stepfunctions, + storagegateway=storagegateway, + sts=sts, + swf=swf, + synthetics=synthetics, + timestreamwrite=timestreamwrite, + transcribe=transcribe, + transcribeservice=transcribeservice, + transfer=transfer, + verifiedpermissions=verifiedpermissions, + vpclattice=vpclattice, + waf=waf, + wafregional=wafregional, + wafv2=wafv2, + worklink=worklink, + workspaces=workspaces, + xray=xray, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accessanalyzer: Optional[pulumi.Input[str]] = None, + account: Optional[pulumi.Input[str]] = None, + acm: Optional[pulumi.Input[str]] = None, + acmpca: Optional[pulumi.Input[str]] = None, + amg: Optional[pulumi.Input[str]] = None, + amp: Optional[pulumi.Input[str]] = None, + amplify: Optional[pulumi.Input[str]] = None, + apigateway: Optional[pulumi.Input[str]] = None, + apigatewayv2: Optional[pulumi.Input[str]] = None, + appautoscaling: Optional[pulumi.Input[str]] = None, + appconfig: Optional[pulumi.Input[str]] = None, + appflow: Optional[pulumi.Input[str]] = None, + appintegrations: Optional[pulumi.Input[str]] = None, + appintegrationsservice: Optional[pulumi.Input[str]] = None, + applicationautoscaling: Optional[pulumi.Input[str]] = None, + applicationinsights: Optional[pulumi.Input[str]] = None, + appmesh: Optional[pulumi.Input[str]] = None, + apprunner: Optional[pulumi.Input[str]] = None, + appstream: Optional[pulumi.Input[str]] = None, + appsync: Optional[pulumi.Input[str]] = None, + athena: Optional[pulumi.Input[str]] = None, + auditmanager: Optional[pulumi.Input[str]] = None, + autoscaling: Optional[pulumi.Input[str]] = None, + autoscalingplans: Optional[pulumi.Input[str]] = None, + backup: Optional[pulumi.Input[str]] = None, + batch: Optional[pulumi.Input[str]] = None, + beanstalk: Optional[pulumi.Input[str]] = None, + bedrock: Optional[pulumi.Input[str]] = None, + budgets: Optional[pulumi.Input[str]] = None, + ce: Optional[pulumi.Input[str]] = None, + chime: Optional[pulumi.Input[str]] = None, + chimesdkmediapipelines: Optional[pulumi.Input[str]] = None, + chimesdkvoice: Optional[pulumi.Input[str]] = None, + cleanrooms: Optional[pulumi.Input[str]] = None, + cloud9: Optional[pulumi.Input[str]] = None, + cloudcontrol: Optional[pulumi.Input[str]] = None, + cloudcontrolapi: Optional[pulumi.Input[str]] = None, + cloudformation: Optional[pulumi.Input[str]] = None, + cloudfront: Optional[pulumi.Input[str]] = None, + cloudhsm: Optional[pulumi.Input[str]] = None, + cloudhsmv2: Optional[pulumi.Input[str]] = None, + cloudsearch: Optional[pulumi.Input[str]] = None, + cloudtrail: Optional[pulumi.Input[str]] = None, + cloudwatch: Optional[pulumi.Input[str]] = None, + cloudwatchevents: Optional[pulumi.Input[str]] = None, + cloudwatchevidently: Optional[pulumi.Input[str]] = None, + cloudwatchlog: Optional[pulumi.Input[str]] = None, + cloudwatchlogs: Optional[pulumi.Input[str]] = None, + cloudwatchobservabilityaccessmanager: Optional[pulumi.Input[str]] = None, + cloudwatchrum: Optional[pulumi.Input[str]] = None, + codeartifact: Optional[pulumi.Input[str]] = None, + codebuild: Optional[pulumi.Input[str]] = None, + codecatalyst: Optional[pulumi.Input[str]] = None, + codecommit: Optional[pulumi.Input[str]] = None, + codedeploy: Optional[pulumi.Input[str]] = None, + codegurureviewer: Optional[pulumi.Input[str]] = None, + codepipeline: Optional[pulumi.Input[str]] = None, + codestarconnections: Optional[pulumi.Input[str]] = None, + codestarnotifications: Optional[pulumi.Input[str]] = None, + cognitoidentity: Optional[pulumi.Input[str]] = None, + cognitoidentityprovider: Optional[pulumi.Input[str]] = None, + cognitoidp: Optional[pulumi.Input[str]] = None, + comprehend: Optional[pulumi.Input[str]] = None, + computeoptimizer: Optional[pulumi.Input[str]] = None, + config: Optional[pulumi.Input[str]] = None, + configservice: Optional[pulumi.Input[str]] = None, + connect: Optional[pulumi.Input[str]] = None, + controltower: Optional[pulumi.Input[str]] = None, + costandusagereportservice: Optional[pulumi.Input[str]] = None, + costexplorer: Optional[pulumi.Input[str]] = None, + cur: Optional[pulumi.Input[str]] = None, + databasemigration: Optional[pulumi.Input[str]] = None, + databasemigrationservice: Optional[pulumi.Input[str]] = None, + dataexchange: Optional[pulumi.Input[str]] = None, + datapipeline: Optional[pulumi.Input[str]] = None, + datasync: Optional[pulumi.Input[str]] = None, + dax: Optional[pulumi.Input[str]] = None, + deploy: Optional[pulumi.Input[str]] = None, + detective: Optional[pulumi.Input[str]] = None, + devicefarm: Optional[pulumi.Input[str]] = None, + directconnect: Optional[pulumi.Input[str]] = None, + directoryservice: Optional[pulumi.Input[str]] = None, + dlm: Optional[pulumi.Input[str]] = None, + dms: Optional[pulumi.Input[str]] = None, + docdb: Optional[pulumi.Input[str]] = None, + docdbelastic: Optional[pulumi.Input[str]] = None, + ds: Optional[pulumi.Input[str]] = None, + dynamodb: Optional[pulumi.Input[str]] = None, + ec2: Optional[pulumi.Input[str]] = None, + ecr: Optional[pulumi.Input[str]] = None, + ecrpublic: Optional[pulumi.Input[str]] = None, + ecs: Optional[pulumi.Input[str]] = None, + efs: Optional[pulumi.Input[str]] = None, + eks: Optional[pulumi.Input[str]] = None, + elasticache: Optional[pulumi.Input[str]] = None, + elasticbeanstalk: Optional[pulumi.Input[str]] = None, + elasticloadbalancing: Optional[pulumi.Input[str]] = None, + elasticloadbalancingv2: Optional[pulumi.Input[str]] = None, + elasticsearch: Optional[pulumi.Input[str]] = None, + elasticsearchservice: Optional[pulumi.Input[str]] = None, + elastictranscoder: Optional[pulumi.Input[str]] = None, + elb: Optional[pulumi.Input[str]] = None, + elbv2: Optional[pulumi.Input[str]] = None, + emr: Optional[pulumi.Input[str]] = None, + emrcontainers: Optional[pulumi.Input[str]] = None, + emrserverless: Optional[pulumi.Input[str]] = None, + es: Optional[pulumi.Input[str]] = None, + eventbridge: Optional[pulumi.Input[str]] = None, + events: Optional[pulumi.Input[str]] = None, + evidently: Optional[pulumi.Input[str]] = None, + finspace: Optional[pulumi.Input[str]] = None, + firehose: Optional[pulumi.Input[str]] = None, + fis: Optional[pulumi.Input[str]] = None, + fms: Optional[pulumi.Input[str]] = None, + fsx: Optional[pulumi.Input[str]] = None, + gamelift: Optional[pulumi.Input[str]] = None, + glacier: Optional[pulumi.Input[str]] = None, + globalaccelerator: Optional[pulumi.Input[str]] = None, + glue: Optional[pulumi.Input[str]] = None, + grafana: Optional[pulumi.Input[str]] = None, + greengrass: Optional[pulumi.Input[str]] = None, + guardduty: Optional[pulumi.Input[str]] = None, + healthlake: Optional[pulumi.Input[str]] = None, + iam: Optional[pulumi.Input[str]] = None, + identitystore: Optional[pulumi.Input[str]] = None, + imagebuilder: Optional[pulumi.Input[str]] = None, + inspector: Optional[pulumi.Input[str]] = None, + inspector2: Optional[pulumi.Input[str]] = None, + inspectorv2: Optional[pulumi.Input[str]] = None, + internetmonitor: Optional[pulumi.Input[str]] = None, + iot: Optional[pulumi.Input[str]] = None, + iotanalytics: Optional[pulumi.Input[str]] = None, + iotevents: Optional[pulumi.Input[str]] = None, + ivs: Optional[pulumi.Input[str]] = None, + ivschat: Optional[pulumi.Input[str]] = None, + kafka: Optional[pulumi.Input[str]] = None, + kafkaconnect: Optional[pulumi.Input[str]] = None, + kendra: Optional[pulumi.Input[str]] = None, + keyspaces: Optional[pulumi.Input[str]] = None, + kinesis: Optional[pulumi.Input[str]] = None, + kinesisanalytics: Optional[pulumi.Input[str]] = None, + kinesisanalyticsv2: Optional[pulumi.Input[str]] = None, + kinesisvideo: Optional[pulumi.Input[str]] = None, + kms: Optional[pulumi.Input[str]] = None, + lakeformation: Optional[pulumi.Input[str]] = None, + lambda_: Optional[pulumi.Input[str]] = None, + lex: Optional[pulumi.Input[str]] = None, + lexmodelbuilding: Optional[pulumi.Input[str]] = None, + lexmodelbuildingservice: Optional[pulumi.Input[str]] = None, + lexmodels: Optional[pulumi.Input[str]] = None, + lexmodelsv2: Optional[pulumi.Input[str]] = None, + lexv2models: Optional[pulumi.Input[str]] = None, + licensemanager: Optional[pulumi.Input[str]] = None, + lightsail: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + locationservice: Optional[pulumi.Input[str]] = None, + logs: Optional[pulumi.Input[str]] = None, + macie2: Optional[pulumi.Input[str]] = None, + managedgrafana: Optional[pulumi.Input[str]] = None, + mediaconnect: Optional[pulumi.Input[str]] = None, + mediaconvert: Optional[pulumi.Input[str]] = None, + medialive: Optional[pulumi.Input[str]] = None, + mediapackage: Optional[pulumi.Input[str]] = None, + mediastore: Optional[pulumi.Input[str]] = None, + memorydb: Optional[pulumi.Input[str]] = None, + mq: Optional[pulumi.Input[str]] = None, + msk: Optional[pulumi.Input[str]] = None, + mwaa: Optional[pulumi.Input[str]] = None, + neptune: Optional[pulumi.Input[str]] = None, + networkfirewall: Optional[pulumi.Input[str]] = None, + networkmanager: Optional[pulumi.Input[str]] = None, + oam: Optional[pulumi.Input[str]] = None, + opensearch: Optional[pulumi.Input[str]] = None, + opensearchserverless: Optional[pulumi.Input[str]] = None, + opensearchservice: Optional[pulumi.Input[str]] = None, + opsworks: Optional[pulumi.Input[str]] = None, + organizations: Optional[pulumi.Input[str]] = None, + outposts: Optional[pulumi.Input[str]] = None, + pinpoint: Optional[pulumi.Input[str]] = None, + pipes: Optional[pulumi.Input[str]] = None, + pricing: Optional[pulumi.Input[str]] = None, + prometheus: Optional[pulumi.Input[str]] = None, + prometheusservice: Optional[pulumi.Input[str]] = None, + qldb: Optional[pulumi.Input[str]] = None, + quicksight: Optional[pulumi.Input[str]] = None, + ram: Optional[pulumi.Input[str]] = None, + rbin: Optional[pulumi.Input[str]] = None, + rds: Optional[pulumi.Input[str]] = None, + recyclebin: Optional[pulumi.Input[str]] = None, + redshift: Optional[pulumi.Input[str]] = None, + redshiftdata: Optional[pulumi.Input[str]] = None, + redshiftdataapiservice: Optional[pulumi.Input[str]] = None, + redshiftserverless: Optional[pulumi.Input[str]] = None, + resourceexplorer2: Optional[pulumi.Input[str]] = None, + resourcegroups: Optional[pulumi.Input[str]] = None, + resourcegroupstagging: Optional[pulumi.Input[str]] = None, + resourcegroupstaggingapi: Optional[pulumi.Input[str]] = None, + rolesanywhere: Optional[pulumi.Input[str]] = None, + route53: Optional[pulumi.Input[str]] = None, + route53domains: Optional[pulumi.Input[str]] = None, + route53recoverycontrolconfig: Optional[pulumi.Input[str]] = None, + route53recoveryreadiness: Optional[pulumi.Input[str]] = None, + route53resolver: Optional[pulumi.Input[str]] = None, + rum: Optional[pulumi.Input[str]] = None, + s3: Optional[pulumi.Input[str]] = None, + s3api: Optional[pulumi.Input[str]] = None, + s3control: Optional[pulumi.Input[str]] = None, + s3outposts: Optional[pulumi.Input[str]] = None, + sagemaker: Optional[pulumi.Input[str]] = None, + scheduler: Optional[pulumi.Input[str]] = None, + schemas: Optional[pulumi.Input[str]] = None, + sdb: Optional[pulumi.Input[str]] = None, + secretsmanager: Optional[pulumi.Input[str]] = None, + securityhub: Optional[pulumi.Input[str]] = None, + securitylake: Optional[pulumi.Input[str]] = None, + serverlessapplicationrepository: Optional[pulumi.Input[str]] = None, + serverlessapprepo: Optional[pulumi.Input[str]] = None, + serverlessrepo: Optional[pulumi.Input[str]] = None, + servicecatalog: Optional[pulumi.Input[str]] = None, + servicediscovery: Optional[pulumi.Input[str]] = None, + servicequotas: Optional[pulumi.Input[str]] = None, + ses: Optional[pulumi.Input[str]] = None, + sesv2: Optional[pulumi.Input[str]] = None, + sfn: Optional[pulumi.Input[str]] = None, + shield: Optional[pulumi.Input[str]] = None, + signer: Optional[pulumi.Input[str]] = None, + simpledb: Optional[pulumi.Input[str]] = None, + sns: Optional[pulumi.Input[str]] = None, + sqs: Optional[pulumi.Input[str]] = None, + ssm: Optional[pulumi.Input[str]] = None, + ssmcontacts: Optional[pulumi.Input[str]] = None, + ssmincidents: Optional[pulumi.Input[str]] = None, + ssoadmin: Optional[pulumi.Input[str]] = None, + stepfunctions: Optional[pulumi.Input[str]] = None, + storagegateway: Optional[pulumi.Input[str]] = None, + sts: Optional[pulumi.Input[str]] = None, + swf: Optional[pulumi.Input[str]] = None, + synthetics: Optional[pulumi.Input[str]] = None, + timestreamwrite: Optional[pulumi.Input[str]] = None, + transcribe: Optional[pulumi.Input[str]] = None, + transcribeservice: Optional[pulumi.Input[str]] = None, + transfer: Optional[pulumi.Input[str]] = None, + verifiedpermissions: Optional[pulumi.Input[str]] = None, + vpclattice: Optional[pulumi.Input[str]] = None, + waf: Optional[pulumi.Input[str]] = None, + wafregional: Optional[pulumi.Input[str]] = None, + wafv2: Optional[pulumi.Input[str]] = None, + worklink: Optional[pulumi.Input[str]] = None, + workspaces: Optional[pulumi.Input[str]] = None, + xray: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + if accessanalyzer is not None: - pulumi.set(__self__, "accessanalyzer", accessanalyzer) + _setter("accessanalyzer", accessanalyzer) if account is not None: - pulumi.set(__self__, "account", account) + _setter("account", account) if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if acmpca is not None: - pulumi.set(__self__, "acmpca", acmpca) + _setter("acmpca", acmpca) if amg is not None: - pulumi.set(__self__, "amg", amg) + _setter("amg", amg) if amp is not None: - pulumi.set(__self__, "amp", amp) + _setter("amp", amp) if amplify is not None: - pulumi.set(__self__, "amplify", amplify) + _setter("amplify", amplify) if apigateway is not None: - pulumi.set(__self__, "apigateway", apigateway) + _setter("apigateway", apigateway) if apigatewayv2 is not None: - pulumi.set(__self__, "apigatewayv2", apigatewayv2) + _setter("apigatewayv2", apigatewayv2) if appautoscaling is not None: - pulumi.set(__self__, "appautoscaling", appautoscaling) + _setter("appautoscaling", appautoscaling) if appconfig is not None: - pulumi.set(__self__, "appconfig", appconfig) + _setter("appconfig", appconfig) if appflow is not None: - pulumi.set(__self__, "appflow", appflow) + _setter("appflow", appflow) if appintegrations is not None: - pulumi.set(__self__, "appintegrations", appintegrations) + _setter("appintegrations", appintegrations) if appintegrationsservice is not None: - pulumi.set(__self__, "appintegrationsservice", appintegrationsservice) + _setter("appintegrationsservice", appintegrationsservice) if applicationautoscaling is not None: - pulumi.set(__self__, "applicationautoscaling", applicationautoscaling) + _setter("applicationautoscaling", applicationautoscaling) if applicationinsights is not None: - pulumi.set(__self__, "applicationinsights", applicationinsights) + _setter("applicationinsights", applicationinsights) if appmesh is not None: - pulumi.set(__self__, "appmesh", appmesh) + _setter("appmesh", appmesh) if apprunner is not None: - pulumi.set(__self__, "apprunner", apprunner) + _setter("apprunner", apprunner) if appstream is not None: - pulumi.set(__self__, "appstream", appstream) + _setter("appstream", appstream) if appsync is not None: - pulumi.set(__self__, "appsync", appsync) + _setter("appsync", appsync) if athena is not None: - pulumi.set(__self__, "athena", athena) + _setter("athena", athena) if auditmanager is not None: - pulumi.set(__self__, "auditmanager", auditmanager) + _setter("auditmanager", auditmanager) if autoscaling is not None: - pulumi.set(__self__, "autoscaling", autoscaling) + _setter("autoscaling", autoscaling) if autoscalingplans is not None: - pulumi.set(__self__, "autoscalingplans", autoscalingplans) + _setter("autoscalingplans", autoscalingplans) if backup is not None: - pulumi.set(__self__, "backup", backup) + _setter("backup", backup) if batch is not None: - pulumi.set(__self__, "batch", batch) + _setter("batch", batch) if beanstalk is not None: - pulumi.set(__self__, "beanstalk", beanstalk) + _setter("beanstalk", beanstalk) if bedrock is not None: - pulumi.set(__self__, "bedrock", bedrock) + _setter("bedrock", bedrock) if budgets is not None: - pulumi.set(__self__, "budgets", budgets) + _setter("budgets", budgets) if ce is not None: - pulumi.set(__self__, "ce", ce) + _setter("ce", ce) if chime is not None: - pulumi.set(__self__, "chime", chime) + _setter("chime", chime) if chimesdkmediapipelines is not None: - pulumi.set(__self__, "chimesdkmediapipelines", chimesdkmediapipelines) + _setter("chimesdkmediapipelines", chimesdkmediapipelines) if chimesdkvoice is not None: - pulumi.set(__self__, "chimesdkvoice", chimesdkvoice) + _setter("chimesdkvoice", chimesdkvoice) if cleanrooms is not None: - pulumi.set(__self__, "cleanrooms", cleanrooms) + _setter("cleanrooms", cleanrooms) if cloud9 is not None: - pulumi.set(__self__, "cloud9", cloud9) + _setter("cloud9", cloud9) if cloudcontrol is not None: - pulumi.set(__self__, "cloudcontrol", cloudcontrol) + _setter("cloudcontrol", cloudcontrol) if cloudcontrolapi is not None: - pulumi.set(__self__, "cloudcontrolapi", cloudcontrolapi) + _setter("cloudcontrolapi", cloudcontrolapi) if cloudformation is not None: - pulumi.set(__self__, "cloudformation", cloudformation) + _setter("cloudformation", cloudformation) if cloudfront is not None: - pulumi.set(__self__, "cloudfront", cloudfront) + _setter("cloudfront", cloudfront) if cloudhsm is not None: - pulumi.set(__self__, "cloudhsm", cloudhsm) + _setter("cloudhsm", cloudhsm) if cloudhsmv2 is not None: - pulumi.set(__self__, "cloudhsmv2", cloudhsmv2) + _setter("cloudhsmv2", cloudhsmv2) if cloudsearch is not None: - pulumi.set(__self__, "cloudsearch", cloudsearch) + _setter("cloudsearch", cloudsearch) if cloudtrail is not None: - pulumi.set(__self__, "cloudtrail", cloudtrail) + _setter("cloudtrail", cloudtrail) if cloudwatch is not None: - pulumi.set(__self__, "cloudwatch", cloudwatch) + _setter("cloudwatch", cloudwatch) if cloudwatchevents is not None: - pulumi.set(__self__, "cloudwatchevents", cloudwatchevents) + _setter("cloudwatchevents", cloudwatchevents) if cloudwatchevidently is not None: - pulumi.set(__self__, "cloudwatchevidently", cloudwatchevidently) + _setter("cloudwatchevidently", cloudwatchevidently) if cloudwatchlog is not None: - pulumi.set(__self__, "cloudwatchlog", cloudwatchlog) + _setter("cloudwatchlog", cloudwatchlog) if cloudwatchlogs is not None: - pulumi.set(__self__, "cloudwatchlogs", cloudwatchlogs) + _setter("cloudwatchlogs", cloudwatchlogs) if cloudwatchobservabilityaccessmanager is not None: - pulumi.set(__self__, "cloudwatchobservabilityaccessmanager", cloudwatchobservabilityaccessmanager) + _setter("cloudwatchobservabilityaccessmanager", cloudwatchobservabilityaccessmanager) if cloudwatchrum is not None: - pulumi.set(__self__, "cloudwatchrum", cloudwatchrum) + _setter("cloudwatchrum", cloudwatchrum) if codeartifact is not None: - pulumi.set(__self__, "codeartifact", codeartifact) + _setter("codeartifact", codeartifact) if codebuild is not None: - pulumi.set(__self__, "codebuild", codebuild) + _setter("codebuild", codebuild) if codecatalyst is not None: - pulumi.set(__self__, "codecatalyst", codecatalyst) + _setter("codecatalyst", codecatalyst) if codecommit is not None: - pulumi.set(__self__, "codecommit", codecommit) + _setter("codecommit", codecommit) if codedeploy is not None: - pulumi.set(__self__, "codedeploy", codedeploy) + _setter("codedeploy", codedeploy) if codegurureviewer is not None: - pulumi.set(__self__, "codegurureviewer", codegurureviewer) + _setter("codegurureviewer", codegurureviewer) if codepipeline is not None: - pulumi.set(__self__, "codepipeline", codepipeline) + _setter("codepipeline", codepipeline) if codestarconnections is not None: - pulumi.set(__self__, "codestarconnections", codestarconnections) + _setter("codestarconnections", codestarconnections) if codestarnotifications is not None: - pulumi.set(__self__, "codestarnotifications", codestarnotifications) + _setter("codestarnotifications", codestarnotifications) if cognitoidentity is not None: - pulumi.set(__self__, "cognitoidentity", cognitoidentity) + _setter("cognitoidentity", cognitoidentity) if cognitoidentityprovider is not None: - pulumi.set(__self__, "cognitoidentityprovider", cognitoidentityprovider) + _setter("cognitoidentityprovider", cognitoidentityprovider) if cognitoidp is not None: - pulumi.set(__self__, "cognitoidp", cognitoidp) + _setter("cognitoidp", cognitoidp) if comprehend is not None: - pulumi.set(__self__, "comprehend", comprehend) + _setter("comprehend", comprehend) if computeoptimizer is not None: - pulumi.set(__self__, "computeoptimizer", computeoptimizer) + _setter("computeoptimizer", computeoptimizer) if config is not None: - pulumi.set(__self__, "config", config) + _setter("config", config) if configservice is not None: - pulumi.set(__self__, "configservice", configservice) + _setter("configservice", configservice) if connect is not None: - pulumi.set(__self__, "connect", connect) + _setter("connect", connect) if controltower is not None: - pulumi.set(__self__, "controltower", controltower) + _setter("controltower", controltower) if costandusagereportservice is not None: - pulumi.set(__self__, "costandusagereportservice", costandusagereportservice) + _setter("costandusagereportservice", costandusagereportservice) if costexplorer is not None: - pulumi.set(__self__, "costexplorer", costexplorer) + _setter("costexplorer", costexplorer) if cur is not None: - pulumi.set(__self__, "cur", cur) + _setter("cur", cur) if databasemigration is not None: - pulumi.set(__self__, "databasemigration", databasemigration) + _setter("databasemigration", databasemigration) if databasemigrationservice is not None: - pulumi.set(__self__, "databasemigrationservice", databasemigrationservice) + _setter("databasemigrationservice", databasemigrationservice) if dataexchange is not None: - pulumi.set(__self__, "dataexchange", dataexchange) + _setter("dataexchange", dataexchange) if datapipeline is not None: - pulumi.set(__self__, "datapipeline", datapipeline) + _setter("datapipeline", datapipeline) if datasync is not None: - pulumi.set(__self__, "datasync", datasync) + _setter("datasync", datasync) if dax is not None: - pulumi.set(__self__, "dax", dax) + _setter("dax", dax) if deploy is not None: - pulumi.set(__self__, "deploy", deploy) + _setter("deploy", deploy) if detective is not None: - pulumi.set(__self__, "detective", detective) + _setter("detective", detective) if devicefarm is not None: - pulumi.set(__self__, "devicefarm", devicefarm) + _setter("devicefarm", devicefarm) if directconnect is not None: - pulumi.set(__self__, "directconnect", directconnect) + _setter("directconnect", directconnect) if directoryservice is not None: - pulumi.set(__self__, "directoryservice", directoryservice) + _setter("directoryservice", directoryservice) if dlm is not None: - pulumi.set(__self__, "dlm", dlm) + _setter("dlm", dlm) if dms is not None: - pulumi.set(__self__, "dms", dms) + _setter("dms", dms) if docdb is not None: - pulumi.set(__self__, "docdb", docdb) + _setter("docdb", docdb) if docdbelastic is not None: - pulumi.set(__self__, "docdbelastic", docdbelastic) + _setter("docdbelastic", docdbelastic) if ds is not None: - pulumi.set(__self__, "ds", ds) + _setter("ds", ds) if dynamodb is not None: - pulumi.set(__self__, "dynamodb", dynamodb) + _setter("dynamodb", dynamodb) if ec2 is not None: - pulumi.set(__self__, "ec2", ec2) + _setter("ec2", ec2) if ecr is not None: - pulumi.set(__self__, "ecr", ecr) + _setter("ecr", ecr) if ecrpublic is not None: - pulumi.set(__self__, "ecrpublic", ecrpublic) + _setter("ecrpublic", ecrpublic) if ecs is not None: - pulumi.set(__self__, "ecs", ecs) + _setter("ecs", ecs) if efs is not None: - pulumi.set(__self__, "efs", efs) + _setter("efs", efs) if eks is not None: - pulumi.set(__self__, "eks", eks) + _setter("eks", eks) if elasticache is not None: - pulumi.set(__self__, "elasticache", elasticache) + _setter("elasticache", elasticache) if elasticbeanstalk is not None: - pulumi.set(__self__, "elasticbeanstalk", elasticbeanstalk) + _setter("elasticbeanstalk", elasticbeanstalk) if elasticloadbalancing is not None: - pulumi.set(__self__, "elasticloadbalancing", elasticloadbalancing) + _setter("elasticloadbalancing", elasticloadbalancing) if elasticloadbalancingv2 is not None: - pulumi.set(__self__, "elasticloadbalancingv2", elasticloadbalancingv2) + _setter("elasticloadbalancingv2", elasticloadbalancingv2) if elasticsearch is not None: - pulumi.set(__self__, "elasticsearch", elasticsearch) + _setter("elasticsearch", elasticsearch) if elasticsearchservice is not None: - pulumi.set(__self__, "elasticsearchservice", elasticsearchservice) + _setter("elasticsearchservice", elasticsearchservice) if elastictranscoder is not None: - pulumi.set(__self__, "elastictranscoder", elastictranscoder) + _setter("elastictranscoder", elastictranscoder) if elb is not None: - pulumi.set(__self__, "elb", elb) + _setter("elb", elb) if elbv2 is not None: - pulumi.set(__self__, "elbv2", elbv2) + _setter("elbv2", elbv2) if emr is not None: - pulumi.set(__self__, "emr", emr) + _setter("emr", emr) if emrcontainers is not None: - pulumi.set(__self__, "emrcontainers", emrcontainers) + _setter("emrcontainers", emrcontainers) if emrserverless is not None: - pulumi.set(__self__, "emrserverless", emrserverless) + _setter("emrserverless", emrserverless) if es is not None: - pulumi.set(__self__, "es", es) + _setter("es", es) if eventbridge is not None: - pulumi.set(__self__, "eventbridge", eventbridge) + _setter("eventbridge", eventbridge) if events is not None: - pulumi.set(__self__, "events", events) + _setter("events", events) if evidently is not None: - pulumi.set(__self__, "evidently", evidently) + _setter("evidently", evidently) if finspace is not None: - pulumi.set(__self__, "finspace", finspace) + _setter("finspace", finspace) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if fis is not None: - pulumi.set(__self__, "fis", fis) + _setter("fis", fis) if fms is not None: - pulumi.set(__self__, "fms", fms) + _setter("fms", fms) if fsx is not None: - pulumi.set(__self__, "fsx", fsx) + _setter("fsx", fsx) if gamelift is not None: - pulumi.set(__self__, "gamelift", gamelift) + _setter("gamelift", gamelift) if glacier is not None: - pulumi.set(__self__, "glacier", glacier) + _setter("glacier", glacier) if globalaccelerator is not None: - pulumi.set(__self__, "globalaccelerator", globalaccelerator) + _setter("globalaccelerator", globalaccelerator) if glue is not None: - pulumi.set(__self__, "glue", glue) + _setter("glue", glue) if grafana is not None: - pulumi.set(__self__, "grafana", grafana) + _setter("grafana", grafana) if greengrass is not None: - pulumi.set(__self__, "greengrass", greengrass) + _setter("greengrass", greengrass) if guardduty is not None: - pulumi.set(__self__, "guardduty", guardduty) + _setter("guardduty", guardduty) if healthlake is not None: - pulumi.set(__self__, "healthlake", healthlake) + _setter("healthlake", healthlake) if iam is not None: - pulumi.set(__self__, "iam", iam) + _setter("iam", iam) if identitystore is not None: - pulumi.set(__self__, "identitystore", identitystore) + _setter("identitystore", identitystore) if imagebuilder is not None: - pulumi.set(__self__, "imagebuilder", imagebuilder) + _setter("imagebuilder", imagebuilder) if inspector is not None: - pulumi.set(__self__, "inspector", inspector) + _setter("inspector", inspector) if inspector2 is not None: - pulumi.set(__self__, "inspector2", inspector2) + _setter("inspector2", inspector2) if inspectorv2 is not None: - pulumi.set(__self__, "inspectorv2", inspectorv2) + _setter("inspectorv2", inspectorv2) if internetmonitor is not None: - pulumi.set(__self__, "internetmonitor", internetmonitor) + _setter("internetmonitor", internetmonitor) if iot is not None: - pulumi.set(__self__, "iot", iot) + _setter("iot", iot) if iotanalytics is not None: - pulumi.set(__self__, "iotanalytics", iotanalytics) + _setter("iotanalytics", iotanalytics) if iotevents is not None: - pulumi.set(__self__, "iotevents", iotevents) + _setter("iotevents", iotevents) if ivs is not None: - pulumi.set(__self__, "ivs", ivs) + _setter("ivs", ivs) if ivschat is not None: - pulumi.set(__self__, "ivschat", ivschat) + _setter("ivschat", ivschat) if kafka is not None: - pulumi.set(__self__, "kafka", kafka) + _setter("kafka", kafka) if kafkaconnect is not None: - pulumi.set(__self__, "kafkaconnect", kafkaconnect) + _setter("kafkaconnect", kafkaconnect) if kendra is not None: - pulumi.set(__self__, "kendra", kendra) + _setter("kendra", kendra) if keyspaces is not None: - pulumi.set(__self__, "keyspaces", keyspaces) + _setter("keyspaces", keyspaces) if kinesis is not None: - pulumi.set(__self__, "kinesis", kinesis) + _setter("kinesis", kinesis) if kinesisanalytics is not None: - pulumi.set(__self__, "kinesisanalytics", kinesisanalytics) + _setter("kinesisanalytics", kinesisanalytics) if kinesisanalyticsv2 is not None: - pulumi.set(__self__, "kinesisanalyticsv2", kinesisanalyticsv2) + _setter("kinesisanalyticsv2", kinesisanalyticsv2) if kinesisvideo is not None: - pulumi.set(__self__, "kinesisvideo", kinesisvideo) + _setter("kinesisvideo", kinesisvideo) if kms is not None: - pulumi.set(__self__, "kms", kms) + _setter("kms", kms) if lakeformation is not None: - pulumi.set(__self__, "lakeformation", lakeformation) + _setter("lakeformation", lakeformation) if lambda_ is not None: - pulumi.set(__self__, "lambda_", lambda_) + _setter("lambda_", lambda_) if lex is not None: - pulumi.set(__self__, "lex", lex) + _setter("lex", lex) if lexmodelbuilding is not None: - pulumi.set(__self__, "lexmodelbuilding", lexmodelbuilding) + _setter("lexmodelbuilding", lexmodelbuilding) if lexmodelbuildingservice is not None: - pulumi.set(__self__, "lexmodelbuildingservice", lexmodelbuildingservice) + _setter("lexmodelbuildingservice", lexmodelbuildingservice) if lexmodels is not None: - pulumi.set(__self__, "lexmodels", lexmodels) + _setter("lexmodels", lexmodels) if lexmodelsv2 is not None: - pulumi.set(__self__, "lexmodelsv2", lexmodelsv2) + _setter("lexmodelsv2", lexmodelsv2) if lexv2models is not None: - pulumi.set(__self__, "lexv2models", lexv2models) + _setter("lexv2models", lexv2models) if licensemanager is not None: - pulumi.set(__self__, "licensemanager", licensemanager) + _setter("licensemanager", licensemanager) if lightsail is not None: - pulumi.set(__self__, "lightsail", lightsail) + _setter("lightsail", lightsail) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if locationservice is not None: - pulumi.set(__self__, "locationservice", locationservice) + _setter("locationservice", locationservice) if logs is not None: - pulumi.set(__self__, "logs", logs) + _setter("logs", logs) if macie2 is not None: - pulumi.set(__self__, "macie2", macie2) + _setter("macie2", macie2) if managedgrafana is not None: - pulumi.set(__self__, "managedgrafana", managedgrafana) + _setter("managedgrafana", managedgrafana) if mediaconnect is not None: - pulumi.set(__self__, "mediaconnect", mediaconnect) + _setter("mediaconnect", mediaconnect) if mediaconvert is not None: - pulumi.set(__self__, "mediaconvert", mediaconvert) + _setter("mediaconvert", mediaconvert) if medialive is not None: - pulumi.set(__self__, "medialive", medialive) + _setter("medialive", medialive) if mediapackage is not None: - pulumi.set(__self__, "mediapackage", mediapackage) + _setter("mediapackage", mediapackage) if mediastore is not None: - pulumi.set(__self__, "mediastore", mediastore) + _setter("mediastore", mediastore) if memorydb is not None: - pulumi.set(__self__, "memorydb", memorydb) + _setter("memorydb", memorydb) if mq is not None: - pulumi.set(__self__, "mq", mq) + _setter("mq", mq) if msk is not None: - pulumi.set(__self__, "msk", msk) + _setter("msk", msk) if mwaa is not None: - pulumi.set(__self__, "mwaa", mwaa) + _setter("mwaa", mwaa) if neptune is not None: - pulumi.set(__self__, "neptune", neptune) + _setter("neptune", neptune) if networkfirewall is not None: - pulumi.set(__self__, "networkfirewall", networkfirewall) + _setter("networkfirewall", networkfirewall) if networkmanager is not None: - pulumi.set(__self__, "networkmanager", networkmanager) + _setter("networkmanager", networkmanager) if oam is not None: - pulumi.set(__self__, "oam", oam) + _setter("oam", oam) if opensearch is not None: - pulumi.set(__self__, "opensearch", opensearch) + _setter("opensearch", opensearch) if opensearchserverless is not None: - pulumi.set(__self__, "opensearchserverless", opensearchserverless) + _setter("opensearchserverless", opensearchserverless) if opensearchservice is not None: - pulumi.set(__self__, "opensearchservice", opensearchservice) + _setter("opensearchservice", opensearchservice) if opsworks is not None: - pulumi.set(__self__, "opsworks", opsworks) + _setter("opsworks", opsworks) if organizations is not None: - pulumi.set(__self__, "organizations", organizations) + _setter("organizations", organizations) if outposts is not None: - pulumi.set(__self__, "outposts", outposts) + _setter("outposts", outposts) if pinpoint is not None: - pulumi.set(__self__, "pinpoint", pinpoint) + _setter("pinpoint", pinpoint) if pipes is not None: - pulumi.set(__self__, "pipes", pipes) + _setter("pipes", pipes) if pricing is not None: - pulumi.set(__self__, "pricing", pricing) + _setter("pricing", pricing) if prometheus is not None: - pulumi.set(__self__, "prometheus", prometheus) + _setter("prometheus", prometheus) if prometheusservice is not None: - pulumi.set(__self__, "prometheusservice", prometheusservice) + _setter("prometheusservice", prometheusservice) if qldb is not None: - pulumi.set(__self__, "qldb", qldb) + _setter("qldb", qldb) if quicksight is not None: - pulumi.set(__self__, "quicksight", quicksight) + _setter("quicksight", quicksight) if ram is not None: - pulumi.set(__self__, "ram", ram) + _setter("ram", ram) if rbin is not None: - pulumi.set(__self__, "rbin", rbin) + _setter("rbin", rbin) if rds is not None: - pulumi.set(__self__, "rds", rds) + _setter("rds", rds) if recyclebin is not None: - pulumi.set(__self__, "recyclebin", recyclebin) + _setter("recyclebin", recyclebin) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if redshiftdata is not None: - pulumi.set(__self__, "redshiftdata", redshiftdata) + _setter("redshiftdata", redshiftdata) if redshiftdataapiservice is not None: - pulumi.set(__self__, "redshiftdataapiservice", redshiftdataapiservice) + _setter("redshiftdataapiservice", redshiftdataapiservice) if redshiftserverless is not None: - pulumi.set(__self__, "redshiftserverless", redshiftserverless) + _setter("redshiftserverless", redshiftserverless) if resourceexplorer2 is not None: - pulumi.set(__self__, "resourceexplorer2", resourceexplorer2) + _setter("resourceexplorer2", resourceexplorer2) if resourcegroups is not None: - pulumi.set(__self__, "resourcegroups", resourcegroups) + _setter("resourcegroups", resourcegroups) if resourcegroupstagging is not None: - pulumi.set(__self__, "resourcegroupstagging", resourcegroupstagging) + _setter("resourcegroupstagging", resourcegroupstagging) if resourcegroupstaggingapi is not None: - pulumi.set(__self__, "resourcegroupstaggingapi", resourcegroupstaggingapi) + _setter("resourcegroupstaggingapi", resourcegroupstaggingapi) if rolesanywhere is not None: - pulumi.set(__self__, "rolesanywhere", rolesanywhere) + _setter("rolesanywhere", rolesanywhere) if route53 is not None: - pulumi.set(__self__, "route53", route53) + _setter("route53", route53) if route53domains is not None: - pulumi.set(__self__, "route53domains", route53domains) + _setter("route53domains", route53domains) if route53recoverycontrolconfig is not None: - pulumi.set(__self__, "route53recoverycontrolconfig", route53recoverycontrolconfig) + _setter("route53recoverycontrolconfig", route53recoverycontrolconfig) if route53recoveryreadiness is not None: - pulumi.set(__self__, "route53recoveryreadiness", route53recoveryreadiness) + _setter("route53recoveryreadiness", route53recoveryreadiness) if route53resolver is not None: - pulumi.set(__self__, "route53resolver", route53resolver) + _setter("route53resolver", route53resolver) if rum is not None: - pulumi.set(__self__, "rum", rum) + _setter("rum", rum) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if s3api is not None: - pulumi.set(__self__, "s3api", s3api) + _setter("s3api", s3api) if s3control is not None: - pulumi.set(__self__, "s3control", s3control) + _setter("s3control", s3control) if s3outposts is not None: - pulumi.set(__self__, "s3outposts", s3outposts) + _setter("s3outposts", s3outposts) if sagemaker is not None: - pulumi.set(__self__, "sagemaker", sagemaker) + _setter("sagemaker", sagemaker) if scheduler is not None: - pulumi.set(__self__, "scheduler", scheduler) + _setter("scheduler", scheduler) if schemas is not None: - pulumi.set(__self__, "schemas", schemas) + _setter("schemas", schemas) if sdb is not None: - pulumi.set(__self__, "sdb", sdb) + _setter("sdb", sdb) if secretsmanager is not None: - pulumi.set(__self__, "secretsmanager", secretsmanager) + _setter("secretsmanager", secretsmanager) if securityhub is not None: - pulumi.set(__self__, "securityhub", securityhub) + _setter("securityhub", securityhub) if securitylake is not None: - pulumi.set(__self__, "securitylake", securitylake) + _setter("securitylake", securitylake) if serverlessapplicationrepository is not None: - pulumi.set(__self__, "serverlessapplicationrepository", serverlessapplicationrepository) + _setter("serverlessapplicationrepository", serverlessapplicationrepository) if serverlessapprepo is not None: - pulumi.set(__self__, "serverlessapprepo", serverlessapprepo) + _setter("serverlessapprepo", serverlessapprepo) if serverlessrepo is not None: - pulumi.set(__self__, "serverlessrepo", serverlessrepo) + _setter("serverlessrepo", serverlessrepo) if servicecatalog is not None: - pulumi.set(__self__, "servicecatalog", servicecatalog) + _setter("servicecatalog", servicecatalog) if servicediscovery is not None: - pulumi.set(__self__, "servicediscovery", servicediscovery) + _setter("servicediscovery", servicediscovery) if servicequotas is not None: - pulumi.set(__self__, "servicequotas", servicequotas) + _setter("servicequotas", servicequotas) if ses is not None: - pulumi.set(__self__, "ses", ses) + _setter("ses", ses) if sesv2 is not None: - pulumi.set(__self__, "sesv2", sesv2) + _setter("sesv2", sesv2) if sfn is not None: - pulumi.set(__self__, "sfn", sfn) + _setter("sfn", sfn) if shield is not None: - pulumi.set(__self__, "shield", shield) + _setter("shield", shield) if signer is not None: - pulumi.set(__self__, "signer", signer) + _setter("signer", signer) if simpledb is not None: - pulumi.set(__self__, "simpledb", simpledb) + _setter("simpledb", simpledb) if sns is not None: - pulumi.set(__self__, "sns", sns) + _setter("sns", sns) if sqs is not None: - pulumi.set(__self__, "sqs", sqs) + _setter("sqs", sqs) if ssm is not None: - pulumi.set(__self__, "ssm", ssm) + _setter("ssm", ssm) if ssmcontacts is not None: - pulumi.set(__self__, "ssmcontacts", ssmcontacts) + _setter("ssmcontacts", ssmcontacts) if ssmincidents is not None: - pulumi.set(__self__, "ssmincidents", ssmincidents) + _setter("ssmincidents", ssmincidents) if ssoadmin is not None: - pulumi.set(__self__, "ssoadmin", ssoadmin) + _setter("ssoadmin", ssoadmin) if stepfunctions is not None: - pulumi.set(__self__, "stepfunctions", stepfunctions) + _setter("stepfunctions", stepfunctions) if storagegateway is not None: - pulumi.set(__self__, "storagegateway", storagegateway) + _setter("storagegateway", storagegateway) if sts is not None: - pulumi.set(__self__, "sts", sts) + _setter("sts", sts) if swf is not None: - pulumi.set(__self__, "swf", swf) + _setter("swf", swf) if synthetics is not None: - pulumi.set(__self__, "synthetics", synthetics) + _setter("synthetics", synthetics) if timestreamwrite is not None: - pulumi.set(__self__, "timestreamwrite", timestreamwrite) + _setter("timestreamwrite", timestreamwrite) if transcribe is not None: - pulumi.set(__self__, "transcribe", transcribe) + _setter("transcribe", transcribe) if transcribeservice is not None: - pulumi.set(__self__, "transcribeservice", transcribeservice) + _setter("transcribeservice", transcribeservice) if transfer is not None: - pulumi.set(__self__, "transfer", transfer) + _setter("transfer", transfer) if verifiedpermissions is not None: - pulumi.set(__self__, "verifiedpermissions", verifiedpermissions) + _setter("verifiedpermissions", verifiedpermissions) if vpclattice is not None: - pulumi.set(__self__, "vpclattice", vpclattice) + _setter("vpclattice", vpclattice) if waf is not None: - pulumi.set(__self__, "waf", waf) + _setter("waf", waf) if wafregional is not None: - pulumi.set(__self__, "wafregional", wafregional) + _setter("wafregional", wafregional) if wafv2 is not None: - pulumi.set(__self__, "wafv2", wafv2) + _setter("wafv2", wafv2) if worklink is not None: - pulumi.set(__self__, "worklink", worklink) + _setter("worklink", worklink) if workspaces is not None: - pulumi.set(__self__, "workspaces", workspaces) + _setter("workspaces", workspaces) if xray is not None: - pulumi.set(__self__, "xray", xray) + _setter("xray", xray) @property @pulumi.getter @@ -3250,10 +3844,25 @@ class ProviderIgnoreTagsArgs: def __init__(__self__, *, key_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + ProviderIgnoreTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_prefixes=key_prefixes, + keys=keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_prefixes is None and 'keyPrefixes' in kwargs: + key_prefixes = kwargs['keyPrefixes'] + if key_prefixes is not None: - pulumi.set(__self__, "key_prefixes", key_prefixes) + _setter("key_prefixes", key_prefixes) if keys is not None: - pulumi.set(__self__, "keys", keys) + _setter("keys", keys) @property @pulumi.getter(name="keyPrefixes") @@ -3283,8 +3892,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeAvailabilityZones API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAvailabilityZoneFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -3320,8 +3946,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeAvailabilityZones API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAvailabilityZonesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -3357,8 +4000,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [describe-regions AWS CLI Reference][1]. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRegionsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/_utilities.py b/sdk/python/pulumi_aws/_utilities.py index 2d9a3c846e9..2936b65ad82 100644 --- a/sdk/python/pulumi_aws/_utilities.py +++ b/sdk/python/pulumi_aws/_utilities.py @@ -246,5 +246,24 @@ def lifted_func(*args, opts=None, **kwargs): return (lambda _: lifted_func) + +def configure(val, cls: type, input: bool): + def _apply(v): + if isinstance(v, typing.Mapping): + def _setter(key, value): + v[key] = value + cls._configure(_setter, **v) + return v + + # Check that cls has a static _configure method. External classes may + # not have it if it was generated with older codegen. + if hasattr(cls, "_configure"): + if isinstance(val, typing.Mapping): + return _apply(val) + elif input and val is not None and not isinstance(val, cls): + return pulumi.Output.from_input(val).apply(_apply) + + return val + def get_plugin_download_url(): return None diff --git a/sdk/python/pulumi_aws/accessanalyzer/_inputs.py b/sdk/python/pulumi_aws/accessanalyzer/_inputs.py index 39ea03939ca..c655d1be15e 100644 --- a/sdk/python/pulumi_aws/accessanalyzer/_inputs.py +++ b/sdk/python/pulumi_aws/accessanalyzer/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,15 +28,36 @@ def __init__(__self__, *, :param pulumi.Input[str] exists: Boolean comparator. :param pulumi.Input[Sequence[pulumi.Input[str]]] neqs: Not Equals comparator. """ - pulumi.set(__self__, "criteria", criteria) + ArchiveRuleFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + criteria=criteria, + contains=contains, + eqs=eqs, + exists=exists, + neqs=neqs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + criteria: Optional[pulumi.Input[str]] = None, + contains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + eqs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + exists: Optional[pulumi.Input[str]] = None, + neqs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if criteria is None: + raise TypeError("Missing 'criteria' argument") + + _setter("criteria", criteria) if contains is not None: - pulumi.set(__self__, "contains", contains) + _setter("contains", contains) if eqs is not None: - pulumi.set(__self__, "eqs", eqs) + _setter("eqs", eqs) if exists is not None: - pulumi.set(__self__, "exists", exists) + _setter("exists", exists) if neqs is not None: - pulumi.set(__self__, "neqs", neqs) + _setter("neqs", neqs) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/accessanalyzer/analyzer.py b/sdk/python/pulumi_aws/accessanalyzer/analyzer.py index 6aacde8be2e..a91a1d5c585 100644 --- a/sdk/python/pulumi_aws/accessanalyzer/analyzer.py +++ b/sdk/python/pulumi_aws/accessanalyzer/analyzer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AnalyzerArgs', 'Analyzer'] @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] type: Type of Analyzer. Valid values are `ACCOUNT` or `ORGANIZATION`. Defaults to `ACCOUNT`. """ - pulumi.set(__self__, "analyzer_name", analyzer_name) + AnalyzerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + analyzer_name=analyzer_name, + tags=tags, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + analyzer_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if analyzer_name is None and 'analyzerName' in kwargs: + analyzer_name = kwargs['analyzerName'] + if analyzer_name is None: + raise TypeError("Missing 'analyzer_name' argument") + + _setter("analyzer_name", analyzer_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="analyzerName") @@ -88,19 +107,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] type: Type of Analyzer. Valid values are `ACCOUNT` or `ORGANIZATION`. Defaults to `ACCOUNT`. """ + _AnalyzerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + analyzer_name=analyzer_name, + arn=arn, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + analyzer_name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if analyzer_name is None and 'analyzerName' in kwargs: + analyzer_name = kwargs['analyzerName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if analyzer_name is not None: - pulumi.set(__self__, "analyzer_name", analyzer_name) + _setter("analyzer_name", analyzer_name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="analyzerName") @@ -267,6 +309,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AnalyzerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/accessanalyzer/archive_rule.py b/sdk/python/pulumi_aws/accessanalyzer/archive_rule.py index 18b7b375fc6..6ae52fd60a7 100644 --- a/sdk/python/pulumi_aws/accessanalyzer/archive_rule.py +++ b/sdk/python/pulumi_aws/accessanalyzer/archive_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ArchiveRuleFilterArgs']]] filters: Filter criteria for the archive rule. See Filter for more details. :param pulumi.Input[str] rule_name: Rule name. """ - pulumi.set(__self__, "analyzer_name", analyzer_name) - pulumi.set(__self__, "filters", filters) - pulumi.set(__self__, "rule_name", rule_name) + ArchiveRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + analyzer_name=analyzer_name, + filters=filters, + rule_name=rule_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + analyzer_name: Optional[pulumi.Input[str]] = None, + filters: Optional[pulumi.Input[Sequence[pulumi.Input['ArchiveRuleFilterArgs']]]] = None, + rule_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if analyzer_name is None and 'analyzerName' in kwargs: + analyzer_name = kwargs['analyzerName'] + if analyzer_name is None: + raise TypeError("Missing 'analyzer_name' argument") + if filters is None: + raise TypeError("Missing 'filters' argument") + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if rule_name is None: + raise TypeError("Missing 'rule_name' argument") + + _setter("analyzer_name", analyzer_name) + _setter("filters", filters) + _setter("rule_name", rule_name) @property @pulumi.getter(name="analyzerName") @@ -78,12 +103,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ArchiveRuleFilterArgs']]] filters: Filter criteria for the archive rule. See Filter for more details. :param pulumi.Input[str] rule_name: Rule name. """ + _ArchiveRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + analyzer_name=analyzer_name, + filters=filters, + rule_name=rule_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + analyzer_name: Optional[pulumi.Input[str]] = None, + filters: Optional[pulumi.Input[Sequence[pulumi.Input['ArchiveRuleFilterArgs']]]] = None, + rule_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if analyzer_name is None and 'analyzerName' in kwargs: + analyzer_name = kwargs['analyzerName'] + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if analyzer_name is not None: - pulumi.set(__self__, "analyzer_name", analyzer_name) + _setter("analyzer_name", analyzer_name) if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) if rule_name is not None: - pulumi.set(__self__, "rule_name", rule_name) + _setter("rule_name", rule_name) @property @pulumi.getter(name="analyzerName") @@ -227,6 +271,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ArchiveRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/accessanalyzer/outputs.py b/sdk/python/pulumi_aws/accessanalyzer/outputs.py index 799319b2f70..5b235e8c95a 100644 --- a/sdk/python/pulumi_aws/accessanalyzer/outputs.py +++ b/sdk/python/pulumi_aws/accessanalyzer/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,15 +28,36 @@ def __init__(__self__, *, :param str exists: Boolean comparator. :param Sequence[str] neqs: Not Equals comparator. """ - pulumi.set(__self__, "criteria", criteria) + ArchiveRuleFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + criteria=criteria, + contains=contains, + eqs=eqs, + exists=exists, + neqs=neqs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + criteria: Optional[str] = None, + contains: Optional[Sequence[str]] = None, + eqs: Optional[Sequence[str]] = None, + exists: Optional[str] = None, + neqs: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if criteria is None: + raise TypeError("Missing 'criteria' argument") + + _setter("criteria", criteria) if contains is not None: - pulumi.set(__self__, "contains", contains) + _setter("contains", contains) if eqs is not None: - pulumi.set(__self__, "eqs", eqs) + _setter("eqs", eqs) if exists is not None: - pulumi.set(__self__, "exists", exists) + _setter("exists", exists) if neqs is not None: - pulumi.set(__self__, "neqs", neqs) + _setter("neqs", neqs) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/account/alternative_contact.py b/sdk/python/pulumi_aws/account/alternative_contact.py index fc159283eff..1c37eeaf97e 100644 --- a/sdk/python/pulumi_aws/account/alternative_contact.py +++ b/sdk/python/pulumi_aws/account/alternative_contact.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AlternativeContactArgs', 'AlternativeContact'] @@ -29,14 +29,51 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: ID of the target account when managing member accounts. Will manage current user's account by default if omitted. :param pulumi.Input[str] name: Name of the alternate contact. """ - pulumi.set(__self__, "alternate_contact_type", alternate_contact_type) - pulumi.set(__self__, "email_address", email_address) - pulumi.set(__self__, "phone_number", phone_number) - pulumi.set(__self__, "title", title) + AlternativeContactArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alternate_contact_type=alternate_contact_type, + email_address=email_address, + phone_number=phone_number, + title=title, + account_id=account_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alternate_contact_type: Optional[pulumi.Input[str]] = None, + email_address: Optional[pulumi.Input[str]] = None, + phone_number: Optional[pulumi.Input[str]] = None, + title: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alternate_contact_type is None and 'alternateContactType' in kwargs: + alternate_contact_type = kwargs['alternateContactType'] + if alternate_contact_type is None: + raise TypeError("Missing 'alternate_contact_type' argument") + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + if email_address is None: + raise TypeError("Missing 'email_address' argument") + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if phone_number is None: + raise TypeError("Missing 'phone_number' argument") + if title is None: + raise TypeError("Missing 'title' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("alternate_contact_type", alternate_contact_type) + _setter("email_address", email_address) + _setter("phone_number", phone_number) + _setter("title", title) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="alternateContactType") @@ -129,18 +166,47 @@ def __init__(__self__, *, :param pulumi.Input[str] phone_number: Phone number for the alternate contact. :param pulumi.Input[str] title: Title for the alternate contact. """ + _AlternativeContactState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + alternate_contact_type=alternate_contact_type, + email_address=email_address, + name=name, + phone_number=phone_number, + title=title, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + alternate_contact_type: Optional[pulumi.Input[str]] = None, + email_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + phone_number: Optional[pulumi.Input[str]] = None, + title: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if alternate_contact_type is None and 'alternateContactType' in kwargs: + alternate_contact_type = kwargs['alternateContactType'] + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if alternate_contact_type is not None: - pulumi.set(__self__, "alternate_contact_type", alternate_contact_type) + _setter("alternate_contact_type", alternate_contact_type) if email_address is not None: - pulumi.set(__self__, "email_address", email_address) + _setter("email_address", email_address) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if phone_number is not None: - pulumi.set(__self__, "phone_number", phone_number) + _setter("phone_number", phone_number) if title is not None: - pulumi.set(__self__, "title", title) + _setter("title", title) @property @pulumi.getter(name="accountId") @@ -318,6 +384,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AlternativeContactArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/account/primary_contact.py b/sdk/python/pulumi_aws/account/primary_contact.py index 3a8e64ce909..1e2eefdae8e 100644 --- a/sdk/python/pulumi_aws/account/primary_contact.py +++ b/sdk/python/pulumi_aws/account/primary_contact.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PrimaryContactArgs', 'PrimaryContact'] @@ -43,26 +43,97 @@ def __init__(__self__, *, :param pulumi.Input[str] state_or_region: The state or region of the primary contact address. This field is required in selected countries. :param pulumi.Input[str] website_url: The URL of the website associated with the primary contact information, if any. """ - pulumi.set(__self__, "address_line1", address_line1) - pulumi.set(__self__, "city", city) - pulumi.set(__self__, "country_code", country_code) - pulumi.set(__self__, "full_name", full_name) - pulumi.set(__self__, "phone_number", phone_number) - pulumi.set(__self__, "postal_code", postal_code) + PrimaryContactArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_line1=address_line1, + city=city, + country_code=country_code, + full_name=full_name, + phone_number=phone_number, + postal_code=postal_code, + account_id=account_id, + address_line2=address_line2, + address_line3=address_line3, + company_name=company_name, + district_or_county=district_or_county, + state_or_region=state_or_region, + website_url=website_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_line1: Optional[pulumi.Input[str]] = None, + city: Optional[pulumi.Input[str]] = None, + country_code: Optional[pulumi.Input[str]] = None, + full_name: Optional[pulumi.Input[str]] = None, + phone_number: Optional[pulumi.Input[str]] = None, + postal_code: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + address_line2: Optional[pulumi.Input[str]] = None, + address_line3: Optional[pulumi.Input[str]] = None, + company_name: Optional[pulumi.Input[str]] = None, + district_or_county: Optional[pulumi.Input[str]] = None, + state_or_region: Optional[pulumi.Input[str]] = None, + website_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_line1 is None and 'addressLine1' in kwargs: + address_line1 = kwargs['addressLine1'] + if address_line1 is None: + raise TypeError("Missing 'address_line1' argument") + if city is None: + raise TypeError("Missing 'city' argument") + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if country_code is None: + raise TypeError("Missing 'country_code' argument") + if full_name is None and 'fullName' in kwargs: + full_name = kwargs['fullName'] + if full_name is None: + raise TypeError("Missing 'full_name' argument") + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if phone_number is None: + raise TypeError("Missing 'phone_number' argument") + if postal_code is None and 'postalCode' in kwargs: + postal_code = kwargs['postalCode'] + if postal_code is None: + raise TypeError("Missing 'postal_code' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if address_line2 is None and 'addressLine2' in kwargs: + address_line2 = kwargs['addressLine2'] + if address_line3 is None and 'addressLine3' in kwargs: + address_line3 = kwargs['addressLine3'] + if company_name is None and 'companyName' in kwargs: + company_name = kwargs['companyName'] + if district_or_county is None and 'districtOrCounty' in kwargs: + district_or_county = kwargs['districtOrCounty'] + if state_or_region is None and 'stateOrRegion' in kwargs: + state_or_region = kwargs['stateOrRegion'] + if website_url is None and 'websiteUrl' in kwargs: + website_url = kwargs['websiteUrl'] + + _setter("address_line1", address_line1) + _setter("city", city) + _setter("country_code", country_code) + _setter("full_name", full_name) + _setter("phone_number", phone_number) + _setter("postal_code", postal_code) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if address_line2 is not None: - pulumi.set(__self__, "address_line2", address_line2) + _setter("address_line2", address_line2) if address_line3 is not None: - pulumi.set(__self__, "address_line3", address_line3) + _setter("address_line3", address_line3) if company_name is not None: - pulumi.set(__self__, "company_name", company_name) + _setter("company_name", company_name) if district_or_county is not None: - pulumi.set(__self__, "district_or_county", district_or_county) + _setter("district_or_county", district_or_county) if state_or_region is not None: - pulumi.set(__self__, "state_or_region", state_or_region) + _setter("state_or_region", state_or_region) if website_url is not None: - pulumi.set(__self__, "website_url", website_url) + _setter("website_url", website_url) @property @pulumi.getter(name="addressLine1") @@ -253,32 +324,91 @@ def __init__(__self__, *, :param pulumi.Input[str] state_or_region: The state or region of the primary contact address. This field is required in selected countries. :param pulumi.Input[str] website_url: The URL of the website associated with the primary contact information, if any. """ + _PrimaryContactState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + address_line1=address_line1, + address_line2=address_line2, + address_line3=address_line3, + city=city, + company_name=company_name, + country_code=country_code, + district_or_county=district_or_county, + full_name=full_name, + phone_number=phone_number, + postal_code=postal_code, + state_or_region=state_or_region, + website_url=website_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + address_line1: Optional[pulumi.Input[str]] = None, + address_line2: Optional[pulumi.Input[str]] = None, + address_line3: Optional[pulumi.Input[str]] = None, + city: Optional[pulumi.Input[str]] = None, + company_name: Optional[pulumi.Input[str]] = None, + country_code: Optional[pulumi.Input[str]] = None, + district_or_county: Optional[pulumi.Input[str]] = None, + full_name: Optional[pulumi.Input[str]] = None, + phone_number: Optional[pulumi.Input[str]] = None, + postal_code: Optional[pulumi.Input[str]] = None, + state_or_region: Optional[pulumi.Input[str]] = None, + website_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if address_line1 is None and 'addressLine1' in kwargs: + address_line1 = kwargs['addressLine1'] + if address_line2 is None and 'addressLine2' in kwargs: + address_line2 = kwargs['addressLine2'] + if address_line3 is None and 'addressLine3' in kwargs: + address_line3 = kwargs['addressLine3'] + if company_name is None and 'companyName' in kwargs: + company_name = kwargs['companyName'] + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if district_or_county is None and 'districtOrCounty' in kwargs: + district_or_county = kwargs['districtOrCounty'] + if full_name is None and 'fullName' in kwargs: + full_name = kwargs['fullName'] + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if postal_code is None and 'postalCode' in kwargs: + postal_code = kwargs['postalCode'] + if state_or_region is None and 'stateOrRegion' in kwargs: + state_or_region = kwargs['stateOrRegion'] + if website_url is None and 'websiteUrl' in kwargs: + website_url = kwargs['websiteUrl'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if address_line1 is not None: - pulumi.set(__self__, "address_line1", address_line1) + _setter("address_line1", address_line1) if address_line2 is not None: - pulumi.set(__self__, "address_line2", address_line2) + _setter("address_line2", address_line2) if address_line3 is not None: - pulumi.set(__self__, "address_line3", address_line3) + _setter("address_line3", address_line3) if city is not None: - pulumi.set(__self__, "city", city) + _setter("city", city) if company_name is not None: - pulumi.set(__self__, "company_name", company_name) + _setter("company_name", company_name) if country_code is not None: - pulumi.set(__self__, "country_code", country_code) + _setter("country_code", country_code) if district_or_county is not None: - pulumi.set(__self__, "district_or_county", district_or_county) + _setter("district_or_county", district_or_county) if full_name is not None: - pulumi.set(__self__, "full_name", full_name) + _setter("full_name", full_name) if phone_number is not None: - pulumi.set(__self__, "phone_number", phone_number) + _setter("phone_number", phone_number) if postal_code is not None: - pulumi.set(__self__, "postal_code", postal_code) + _setter("postal_code", postal_code) if state_or_region is not None: - pulumi.set(__self__, "state_or_region", state_or_region) + _setter("state_or_region", state_or_region) if website_url is not None: - pulumi.set(__self__, "website_url", website_url) + _setter("website_url", website_url) @property @pulumi.getter(name="accountId") @@ -548,6 +678,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PrimaryContactArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/acm/_inputs.py b/sdk/python/pulumi_aws/acm/_inputs.py index b3839c6deeb..914f93b626f 100644 --- a/sdk/python/pulumi_aws/acm/_inputs.py +++ b/sdk/python/pulumi_aws/acm/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,14 +29,39 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_record_type: The type of DNS record to create :param pulumi.Input[str] resource_record_value: The value the DNS record needs to have """ + CertificateDomainValidationOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + resource_record_name=resource_record_name, + resource_record_type=resource_record_type, + resource_record_value=resource_record_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + resource_record_name: Optional[pulumi.Input[str]] = None, + resource_record_type: Optional[pulumi.Input[str]] = None, + resource_record_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if resource_record_name is None and 'resourceRecordName' in kwargs: + resource_record_name = kwargs['resourceRecordName'] + if resource_record_type is None and 'resourceRecordType' in kwargs: + resource_record_type = kwargs['resourceRecordType'] + if resource_record_value is None and 'resourceRecordValue' in kwargs: + resource_record_value = kwargs['resourceRecordValue'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if resource_record_name is not None: - pulumi.set(__self__, "resource_record_name", resource_record_name) + _setter("resource_record_name", resource_record_name) if resource_record_type is not None: - pulumi.set(__self__, "resource_record_type", resource_record_type) + _setter("resource_record_type", resource_record_type) if resource_record_value is not None: - pulumi.set(__self__, "resource_record_value", resource_record_value) + _setter("resource_record_value", resource_record_value) @property @pulumi.getter(name="domainName") @@ -94,8 +119,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] certificate_transparency_logging_preference: Whether certificate details should be added to a certificate transparency log. Valid values are `ENABLED` or `DISABLED`. See https://docs.aws.amazon.com/acm/latest/userguide/acm-concepts.html#concept-transparency for more details. """ + CertificateOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_transparency_logging_preference=certificate_transparency_logging_preference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_transparency_logging_preference: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_transparency_logging_preference is None and 'certificateTransparencyLoggingPreference' in kwargs: + certificate_transparency_logging_preference = kwargs['certificateTransparencyLoggingPreference'] + if certificate_transparency_logging_preference is not None: - pulumi.set(__self__, "certificate_transparency_logging_preference", certificate_transparency_logging_preference) + _setter("certificate_transparency_logging_preference", certificate_transparency_logging_preference) @property @pulumi.getter(name="certificateTransparencyLoggingPreference") @@ -120,12 +158,33 @@ def __init__(__self__, *, :param pulumi.Input[str] renewal_status: The status of ACM's managed renewal of the certificate :param pulumi.Input[str] renewal_status_reason: The reason that a renewal request was unsuccessful or is pending """ + CertificateRenewalSummaryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + renewal_status=renewal_status, + renewal_status_reason=renewal_status_reason, + updated_at=updated_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + renewal_status: Optional[pulumi.Input[str]] = None, + renewal_status_reason: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if renewal_status is None and 'renewalStatus' in kwargs: + renewal_status = kwargs['renewalStatus'] + if renewal_status_reason is None and 'renewalStatusReason' in kwargs: + renewal_status_reason = kwargs['renewalStatusReason'] + if updated_at is None and 'updatedAt' in kwargs: + updated_at = kwargs['updatedAt'] + if renewal_status is not None: - pulumi.set(__self__, "renewal_status", renewal_status) + _setter("renewal_status", renewal_status) if renewal_status_reason is not None: - pulumi.set(__self__, "renewal_status_reason", renewal_status_reason) + _setter("renewal_status_reason", renewal_status_reason) if updated_at is not None: - pulumi.set(__self__, "updated_at", updated_at) + _setter("updated_at", updated_at) @property @pulumi.getter(name="renewalStatus") @@ -170,8 +229,29 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: Fully qualified domain name (FQDN) in the certificate. :param pulumi.Input[str] validation_domain: Domain name that you want ACM to use to send you validation emails. This domain name is the suffix of the email addresses that you want ACM to use. This must be the same as the `domain_name` value or a superdomain of the `domain_name` value. For example, if you request a certificate for `"testing.example.com"`, you can specify `"example.com"` for this value. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "validation_domain", validation_domain) + CertificateValidationOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + validation_domain=validation_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + validation_domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if validation_domain is None and 'validationDomain' in kwargs: + validation_domain = kwargs['validationDomain'] + if validation_domain is None: + raise TypeError("Missing 'validation_domain' argument") + + _setter("domain_name", domain_name) + _setter("validation_domain", validation_domain) @property @pulumi.getter(name="domainName") diff --git a/sdk/python/pulumi_aws/acm/certificate.py b/sdk/python/pulumi_aws/acm/certificate.py index e362bab201c..a3e7e818199 100644 --- a/sdk/python/pulumi_aws/acm/certificate.py +++ b/sdk/python/pulumi_aws/acm/certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -50,30 +50,83 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['CertificateValidationOptionArgs']]] validation_options: Configuration block used to specify information about the initial validation of each domain name. Detailed below. * Importing an existing certificate """ + CertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arn=certificate_authority_arn, + certificate_body=certificate_body, + certificate_chain=certificate_chain, + domain_name=domain_name, + early_renewal_duration=early_renewal_duration, + key_algorithm=key_algorithm, + options=options, + private_key=private_key, + subject_alternative_names=subject_alternative_names, + tags=tags, + validation_method=validation_method, + validation_options=validation_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arn: Optional[pulumi.Input[str]] = None, + certificate_body: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + early_renewal_duration: Optional[pulumi.Input[str]] = None, + key_algorithm: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input['CertificateOptionsArgs']] = None, + private_key: Optional[pulumi.Input[str]] = None, + subject_alternative_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + validation_method: Optional[pulumi.Input[str]] = None, + validation_options: Optional[pulumi.Input[Sequence[pulumi.Input['CertificateValidationOptionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arn is None and 'certificateAuthorityArn' in kwargs: + certificate_authority_arn = kwargs['certificateAuthorityArn'] + if certificate_body is None and 'certificateBody' in kwargs: + certificate_body = kwargs['certificateBody'] + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if early_renewal_duration is None and 'earlyRenewalDuration' in kwargs: + early_renewal_duration = kwargs['earlyRenewalDuration'] + if key_algorithm is None and 'keyAlgorithm' in kwargs: + key_algorithm = kwargs['keyAlgorithm'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if validation_method is None and 'validationMethod' in kwargs: + validation_method = kwargs['validationMethod'] + if validation_options is None and 'validationOptions' in kwargs: + validation_options = kwargs['validationOptions'] + if certificate_authority_arn is not None: - pulumi.set(__self__, "certificate_authority_arn", certificate_authority_arn) + _setter("certificate_authority_arn", certificate_authority_arn) if certificate_body is not None: - pulumi.set(__self__, "certificate_body", certificate_body) + _setter("certificate_body", certificate_body) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if early_renewal_duration is not None: - pulumi.set(__self__, "early_renewal_duration", early_renewal_duration) + _setter("early_renewal_duration", early_renewal_duration) if key_algorithm is not None: - pulumi.set(__self__, "key_algorithm", key_algorithm) + _setter("key_algorithm", key_algorithm) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if validation_method is not None: - pulumi.set(__self__, "validation_method", validation_method) + _setter("validation_method", validation_method) if validation_options is not None: - pulumi.set(__self__, "validation_options", validation_options) + _setter("validation_options", validation_options) @property @pulumi.getter(name="certificateAuthorityArn") @@ -288,55 +341,146 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['CertificateValidationOptionArgs']]] validation_options: Configuration block used to specify information about the initial validation of each domain name. Detailed below. * Importing an existing certificate """ + _CertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + certificate_authority_arn=certificate_authority_arn, + certificate_body=certificate_body, + certificate_chain=certificate_chain, + domain_name=domain_name, + domain_validation_options=domain_validation_options, + early_renewal_duration=early_renewal_duration, + key_algorithm=key_algorithm, + not_after=not_after, + not_before=not_before, + options=options, + pending_renewal=pending_renewal, + private_key=private_key, + renewal_eligibility=renewal_eligibility, + renewal_summaries=renewal_summaries, + status=status, + subject_alternative_names=subject_alternative_names, + tags=tags, + tags_all=tags_all, + type=type, + validation_emails=validation_emails, + validation_method=validation_method, + validation_options=validation_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + certificate_authority_arn: Optional[pulumi.Input[str]] = None, + certificate_body: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + domain_validation_options: Optional[pulumi.Input[Sequence[pulumi.Input['CertificateDomainValidationOptionArgs']]]] = None, + early_renewal_duration: Optional[pulumi.Input[str]] = None, + key_algorithm: Optional[pulumi.Input[str]] = None, + not_after: Optional[pulumi.Input[str]] = None, + not_before: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input['CertificateOptionsArgs']] = None, + pending_renewal: Optional[pulumi.Input[bool]] = None, + private_key: Optional[pulumi.Input[str]] = None, + renewal_eligibility: Optional[pulumi.Input[str]] = None, + renewal_summaries: Optional[pulumi.Input[Sequence[pulumi.Input['CertificateRenewalSummaryArgs']]]] = None, + status: Optional[pulumi.Input[str]] = None, + subject_alternative_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + validation_emails: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + validation_method: Optional[pulumi.Input[str]] = None, + validation_options: Optional[pulumi.Input[Sequence[pulumi.Input['CertificateValidationOptionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arn is None and 'certificateAuthorityArn' in kwargs: + certificate_authority_arn = kwargs['certificateAuthorityArn'] + if certificate_body is None and 'certificateBody' in kwargs: + certificate_body = kwargs['certificateBody'] + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_validation_options is None and 'domainValidationOptions' in kwargs: + domain_validation_options = kwargs['domainValidationOptions'] + if early_renewal_duration is None and 'earlyRenewalDuration' in kwargs: + early_renewal_duration = kwargs['earlyRenewalDuration'] + if key_algorithm is None and 'keyAlgorithm' in kwargs: + key_algorithm = kwargs['keyAlgorithm'] + if not_after is None and 'notAfter' in kwargs: + not_after = kwargs['notAfter'] + if not_before is None and 'notBefore' in kwargs: + not_before = kwargs['notBefore'] + if pending_renewal is None and 'pendingRenewal' in kwargs: + pending_renewal = kwargs['pendingRenewal'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if renewal_eligibility is None and 'renewalEligibility' in kwargs: + renewal_eligibility = kwargs['renewalEligibility'] + if renewal_summaries is None and 'renewalSummaries' in kwargs: + renewal_summaries = kwargs['renewalSummaries'] + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if validation_emails is None and 'validationEmails' in kwargs: + validation_emails = kwargs['validationEmails'] + if validation_method is None and 'validationMethod' in kwargs: + validation_method = kwargs['validationMethod'] + if validation_options is None and 'validationOptions' in kwargs: + validation_options = kwargs['validationOptions'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate_authority_arn is not None: - pulumi.set(__self__, "certificate_authority_arn", certificate_authority_arn) + _setter("certificate_authority_arn", certificate_authority_arn) if certificate_body is not None: - pulumi.set(__self__, "certificate_body", certificate_body) + _setter("certificate_body", certificate_body) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if domain_validation_options is not None: - pulumi.set(__self__, "domain_validation_options", domain_validation_options) + _setter("domain_validation_options", domain_validation_options) if early_renewal_duration is not None: - pulumi.set(__self__, "early_renewal_duration", early_renewal_duration) + _setter("early_renewal_duration", early_renewal_duration) if key_algorithm is not None: - pulumi.set(__self__, "key_algorithm", key_algorithm) + _setter("key_algorithm", key_algorithm) if not_after is not None: - pulumi.set(__self__, "not_after", not_after) + _setter("not_after", not_after) if not_before is not None: - pulumi.set(__self__, "not_before", not_before) + _setter("not_before", not_before) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if pending_renewal is not None: - pulumi.set(__self__, "pending_renewal", pending_renewal) + _setter("pending_renewal", pending_renewal) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if renewal_eligibility is not None: - pulumi.set(__self__, "renewal_eligibility", renewal_eligibility) + _setter("renewal_eligibility", renewal_eligibility) if renewal_summaries is not None: - pulumi.set(__self__, "renewal_summaries", renewal_summaries) + _setter("renewal_summaries", renewal_summaries) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if validation_emails is not None: - pulumi.set(__self__, "validation_emails", validation_emails) + _setter("validation_emails", validation_emails) if validation_method is not None: - pulumi.set(__self__, "validation_method", validation_method) + _setter("validation_method", validation_method) if validation_options is not None: - pulumi.set(__self__, "validation_options", validation_options) + _setter("validation_options", validation_options) @property @pulumi.getter @@ -929,6 +1073,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -961,6 +1109,7 @@ def _internal_init(__self__, __props__.__dict__["domain_name"] = domain_name __props__.__dict__["early_renewal_duration"] = early_renewal_duration __props__.__dict__["key_algorithm"] = key_algorithm + options = _utilities.configure(options, CertificateOptionsArgs, True) __props__.__dict__["options"] = options __props__.__dict__["private_key"] = None if private_key is None else pulumi.Output.secret(private_key) __props__.__dict__["subject_alternative_names"] = subject_alternative_names diff --git a/sdk/python/pulumi_aws/acm/certificate_validation.py b/sdk/python/pulumi_aws/acm/certificate_validation.py index 15b0de6f3cd..f968d69909a 100644 --- a/sdk/python/pulumi_aws/acm/certificate_validation.py +++ b/sdk/python/pulumi_aws/acm/certificate_validation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CertificateValidationArgs', 'CertificateValidation'] @@ -21,9 +21,28 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_arn: ARN of the certificate that is being validated. :param pulumi.Input[Sequence[pulumi.Input[str]]] validation_record_fqdns: List of FQDNs that implement the validation. Only valid for DNS validation method ACM certificates. If this is set, the resource can implement additional sanity checks and has an explicit dependency on the resource that is implementing the validation """ - pulumi.set(__self__, "certificate_arn", certificate_arn) + CertificateValidationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + validation_record_fqdns=validation_record_fqdns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + validation_record_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + if validation_record_fqdns is None and 'validationRecordFqdns' in kwargs: + validation_record_fqdns = kwargs['validationRecordFqdns'] + + _setter("certificate_arn", certificate_arn) if validation_record_fqdns is not None: - pulumi.set(__self__, "validation_record_fqdns", validation_record_fqdns) + _setter("validation_record_fqdns", validation_record_fqdns) @property @pulumi.getter(name="certificateArn") @@ -60,10 +79,27 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_arn: ARN of the certificate that is being validated. :param pulumi.Input[Sequence[pulumi.Input[str]]] validation_record_fqdns: List of FQDNs that implement the validation. Only valid for DNS validation method ACM certificates. If this is set, the resource can implement additional sanity checks and has an explicit dependency on the resource that is implementing the validation """ + _CertificateValidationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + validation_record_fqdns=validation_record_fqdns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + validation_record_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if validation_record_fqdns is None and 'validationRecordFqdns' in kwargs: + validation_record_fqdns = kwargs['validationRecordFqdns'] + if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if validation_record_fqdns is not None: - pulumi.set(__self__, "validation_record_fqdns", validation_record_fqdns) + _setter("validation_record_fqdns", validation_record_fqdns) @property @pulumi.getter(name="certificateArn") @@ -213,6 +249,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CertificateValidationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/acm/get_certificate.py b/sdk/python/pulumi_aws/acm/get_certificate.py index 06be29b83e3..31ecc0fd5c9 100644 --- a/sdk/python/pulumi_aws/acm/get_certificate.py +++ b/sdk/python/pulumi_aws/acm/get_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/acm/outputs.py b/sdk/python/pulumi_aws/acm/outputs.py index 1602dc5e4b8..b61701f6507 100644 --- a/sdk/python/pulumi_aws/acm/outputs.py +++ b/sdk/python/pulumi_aws/acm/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -52,14 +52,39 @@ def __init__(__self__, *, :param str resource_record_type: The type of DNS record to create :param str resource_record_value: The value the DNS record needs to have """ + CertificateDomainValidationOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + resource_record_name=resource_record_name, + resource_record_type=resource_record_type, + resource_record_value=resource_record_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + resource_record_name: Optional[str] = None, + resource_record_type: Optional[str] = None, + resource_record_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if resource_record_name is None and 'resourceRecordName' in kwargs: + resource_record_name = kwargs['resourceRecordName'] + if resource_record_type is None and 'resourceRecordType' in kwargs: + resource_record_type = kwargs['resourceRecordType'] + if resource_record_value is None and 'resourceRecordValue' in kwargs: + resource_record_value = kwargs['resourceRecordValue'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if resource_record_name is not None: - pulumi.set(__self__, "resource_record_name", resource_record_name) + _setter("resource_record_name", resource_record_name) if resource_record_type is not None: - pulumi.set(__self__, "resource_record_type", resource_record_type) + _setter("resource_record_type", resource_record_type) if resource_record_value is not None: - pulumi.set(__self__, "resource_record_value", resource_record_value) + _setter("resource_record_value", resource_record_value) @property @pulumi.getter(name="domainName") @@ -118,8 +143,21 @@ def __init__(__self__, *, """ :param str certificate_transparency_logging_preference: Whether certificate details should be added to a certificate transparency log. Valid values are `ENABLED` or `DISABLED`. See https://docs.aws.amazon.com/acm/latest/userguide/acm-concepts.html#concept-transparency for more details. """ + CertificateOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_transparency_logging_preference=certificate_transparency_logging_preference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_transparency_logging_preference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_transparency_logging_preference is None and 'certificateTransparencyLoggingPreference' in kwargs: + certificate_transparency_logging_preference = kwargs['certificateTransparencyLoggingPreference'] + if certificate_transparency_logging_preference is not None: - pulumi.set(__self__, "certificate_transparency_logging_preference", certificate_transparency_logging_preference) + _setter("certificate_transparency_logging_preference", certificate_transparency_logging_preference) @property @pulumi.getter(name="certificateTransparencyLoggingPreference") @@ -161,12 +199,33 @@ def __init__(__self__, *, :param str renewal_status: The status of ACM's managed renewal of the certificate :param str renewal_status_reason: The reason that a renewal request was unsuccessful or is pending """ + CertificateRenewalSummary._configure( + lambda key, value: pulumi.set(__self__, key, value), + renewal_status=renewal_status, + renewal_status_reason=renewal_status_reason, + updated_at=updated_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + renewal_status: Optional[str] = None, + renewal_status_reason: Optional[str] = None, + updated_at: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if renewal_status is None and 'renewalStatus' in kwargs: + renewal_status = kwargs['renewalStatus'] + if renewal_status_reason is None and 'renewalStatusReason' in kwargs: + renewal_status_reason = kwargs['renewalStatusReason'] + if updated_at is None and 'updatedAt' in kwargs: + updated_at = kwargs['updatedAt'] + if renewal_status is not None: - pulumi.set(__self__, "renewal_status", renewal_status) + _setter("renewal_status", renewal_status) if renewal_status_reason is not None: - pulumi.set(__self__, "renewal_status_reason", renewal_status_reason) + _setter("renewal_status_reason", renewal_status_reason) if updated_at is not None: - pulumi.set(__self__, "updated_at", updated_at) + _setter("updated_at", updated_at) @property @pulumi.getter(name="renewalStatus") @@ -218,8 +277,29 @@ def __init__(__self__, *, :param str domain_name: Fully qualified domain name (FQDN) in the certificate. :param str validation_domain: Domain name that you want ACM to use to send you validation emails. This domain name is the suffix of the email addresses that you want ACM to use. This must be the same as the `domain_name` value or a superdomain of the `domain_name` value. For example, if you request a certificate for `"testing.example.com"`, you can specify `"example.com"` for this value. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "validation_domain", validation_domain) + CertificateValidationOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + validation_domain=validation_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + validation_domain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if validation_domain is None and 'validationDomain' in kwargs: + validation_domain = kwargs['validationDomain'] + if validation_domain is None: + raise TypeError("Missing 'validation_domain' argument") + + _setter("domain_name", domain_name) + _setter("validation_domain", validation_domain) @property @pulumi.getter(name="domainName") diff --git a/sdk/python/pulumi_aws/acmpca/_inputs.py b/sdk/python/pulumi_aws/acmpca/_inputs.py index 7f6c5b8d7a9..617ffd2258a 100644 --- a/sdk/python/pulumi_aws/acmpca/_inputs.py +++ b/sdk/python/pulumi_aws/acmpca/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,9 +29,34 @@ def __init__(__self__, *, :param pulumi.Input[str] signing_algorithm: Name of the algorithm your private CA uses to sign certificate requests. Valid values can be found in the [ACM PCA Documentation](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CertificateAuthorityConfiguration.html). :param pulumi.Input['CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs'] subject: Nested argument that contains X.500 distinguished name information. At least one nested attribute must be specified. """ - pulumi.set(__self__, "key_algorithm", key_algorithm) - pulumi.set(__self__, "signing_algorithm", signing_algorithm) - pulumi.set(__self__, "subject", subject) + CertificateAuthorityCertificateAuthorityConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_algorithm=key_algorithm, + signing_algorithm=signing_algorithm, + subject=subject, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_algorithm: Optional[pulumi.Input[str]] = None, + signing_algorithm: Optional[pulumi.Input[str]] = None, + subject: Optional[pulumi.Input['CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_algorithm is None and 'keyAlgorithm' in kwargs: + key_algorithm = kwargs['keyAlgorithm'] + if key_algorithm is None: + raise TypeError("Missing 'key_algorithm' argument") + if signing_algorithm is None and 'signingAlgorithm' in kwargs: + signing_algorithm = kwargs['signingAlgorithm'] + if signing_algorithm is None: + raise TypeError("Missing 'signing_algorithm' argument") + if subject is None: + raise TypeError("Missing 'subject' argument") + + _setter("key_algorithm", key_algorithm) + _setter("signing_algorithm", signing_algorithm) + _setter("subject", subject) @property @pulumi.getter(name="keyAlgorithm") @@ -101,32 +126,77 @@ def __init__(__self__, *, :param pulumi.Input[str] surname: Family name. In the US and the UK for example, the surname of an individual is ordered last. In Asian cultures the surname is typically ordered first. Must be less than or equal to 40 characters in length. :param pulumi.Input[str] title: Title such as Mr. or Ms. which is pre-pended to the name to refer formally to the certificate subject. Must be less than or equal to 64 characters in length. """ + CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + common_name=common_name, + country=country, + distinguished_name_qualifier=distinguished_name_qualifier, + generation_qualifier=generation_qualifier, + given_name=given_name, + initials=initials, + locality=locality, + organization=organization, + organizational_unit=organizational_unit, + pseudonym=pseudonym, + state=state, + surname=surname, + title=title, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + common_name: Optional[pulumi.Input[str]] = None, + country: Optional[pulumi.Input[str]] = None, + distinguished_name_qualifier: Optional[pulumi.Input[str]] = None, + generation_qualifier: Optional[pulumi.Input[str]] = None, + given_name: Optional[pulumi.Input[str]] = None, + initials: Optional[pulumi.Input[str]] = None, + locality: Optional[pulumi.Input[str]] = None, + organization: Optional[pulumi.Input[str]] = None, + organizational_unit: Optional[pulumi.Input[str]] = None, + pseudonym: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + surname: Optional[pulumi.Input[str]] = None, + title: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if common_name is None and 'commonName' in kwargs: + common_name = kwargs['commonName'] + if distinguished_name_qualifier is None and 'distinguishedNameQualifier' in kwargs: + distinguished_name_qualifier = kwargs['distinguishedNameQualifier'] + if generation_qualifier is None and 'generationQualifier' in kwargs: + generation_qualifier = kwargs['generationQualifier'] + if given_name is None and 'givenName' in kwargs: + given_name = kwargs['givenName'] + if organizational_unit is None and 'organizationalUnit' in kwargs: + organizational_unit = kwargs['organizationalUnit'] + if common_name is not None: - pulumi.set(__self__, "common_name", common_name) + _setter("common_name", common_name) if country is not None: - pulumi.set(__self__, "country", country) + _setter("country", country) if distinguished_name_qualifier is not None: - pulumi.set(__self__, "distinguished_name_qualifier", distinguished_name_qualifier) + _setter("distinguished_name_qualifier", distinguished_name_qualifier) if generation_qualifier is not None: - pulumi.set(__self__, "generation_qualifier", generation_qualifier) + _setter("generation_qualifier", generation_qualifier) if given_name is not None: - pulumi.set(__self__, "given_name", given_name) + _setter("given_name", given_name) if initials is not None: - pulumi.set(__self__, "initials", initials) + _setter("initials", initials) if locality is not None: - pulumi.set(__self__, "locality", locality) + _setter("locality", locality) if organization is not None: - pulumi.set(__self__, "organization", organization) + _setter("organization", organization) if organizational_unit is not None: - pulumi.set(__self__, "organizational_unit", organizational_unit) + _setter("organizational_unit", organizational_unit) if pseudonym is not None: - pulumi.set(__self__, "pseudonym", pseudonym) + _setter("pseudonym", pseudonym) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if surname is not None: - pulumi.set(__self__, "surname", surname) + _setter("surname", surname) if title is not None: - pulumi.set(__self__, "title", title) + _setter("title", title) @property @pulumi.getter(name="commonName") @@ -295,10 +365,27 @@ def __init__(__self__, *, :param pulumi.Input['CertificateAuthorityRevocationConfigurationOcspConfigurationArgs'] ocsp_configuration: Nested argument containing configuration of the custom OCSP responder endpoint. Defined below. """ + CertificateAuthorityRevocationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + crl_configuration=crl_configuration, + ocsp_configuration=ocsp_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + crl_configuration: Optional[pulumi.Input['CertificateAuthorityRevocationConfigurationCrlConfigurationArgs']] = None, + ocsp_configuration: Optional[pulumi.Input['CertificateAuthorityRevocationConfigurationOcspConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if crl_configuration is None and 'crlConfiguration' in kwargs: + crl_configuration = kwargs['crlConfiguration'] + if ocsp_configuration is None and 'ocspConfiguration' in kwargs: + ocsp_configuration = kwargs['ocspConfiguration'] + if crl_configuration is not None: - pulumi.set(__self__, "crl_configuration", crl_configuration) + _setter("crl_configuration", crl_configuration) if ocsp_configuration is not None: - pulumi.set(__self__, "ocsp_configuration", ocsp_configuration) + _setter("ocsp_configuration", ocsp_configuration) @property @pulumi.getter(name="crlConfiguration") @@ -341,16 +428,43 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_bucket_name: Name of the S3 bucket that contains the CRL. If you do not provide a value for the `custom_cname` argument, the name of your S3 bucket is placed into the CRL Distribution Points extension of the issued certificate. You must specify a bucket policy that allows ACM PCA to write the CRL to your bucket. Must be between 3 and 255 characters in length. :param pulumi.Input[str] s3_object_acl: Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. Defaults to `PUBLIC_READ`. """ + CertificateAuthorityRevocationConfigurationCrlConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_cname=custom_cname, + enabled=enabled, + expiration_in_days=expiration_in_days, + s3_bucket_name=s3_bucket_name, + s3_object_acl=s3_object_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_cname: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + expiration_in_days: Optional[pulumi.Input[int]] = None, + s3_bucket_name: Optional[pulumi.Input[str]] = None, + s3_object_acl: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_cname is None and 'customCname' in kwargs: + custom_cname = kwargs['customCname'] + if expiration_in_days is None and 'expirationInDays' in kwargs: + expiration_in_days = kwargs['expirationInDays'] + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_object_acl is None and 's3ObjectAcl' in kwargs: + s3_object_acl = kwargs['s3ObjectAcl'] + if custom_cname is not None: - pulumi.set(__self__, "custom_cname", custom_cname) + _setter("custom_cname", custom_cname) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if expiration_in_days is not None: - pulumi.set(__self__, "expiration_in_days", expiration_in_days) + _setter("expiration_in_days", expiration_in_days) if s3_bucket_name is not None: - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + _setter("s3_bucket_name", s3_bucket_name) if s3_object_acl is not None: - pulumi.set(__self__, "s3_object_acl", s3_object_acl) + _setter("s3_object_acl", s3_object_acl) @property @pulumi.getter(name="customCname") @@ -422,9 +536,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Boolean value that specifies whether a custom OCSP responder is enabled. :param pulumi.Input[str] ocsp_custom_cname: CNAME specifying a customized OCSP domain. Note: The value of the CNAME must not include a protocol prefix such as "http://" or "https://". """ - pulumi.set(__self__, "enabled", enabled) + CertificateAuthorityRevocationConfigurationOcspConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ocsp_custom_cname=ocsp_custom_cname, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + ocsp_custom_cname: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if ocsp_custom_cname is None and 'ocspCustomCname' in kwargs: + ocsp_custom_cname = kwargs['ocspCustomCname'] + + _setter("enabled", enabled) if ocsp_custom_cname is not None: - pulumi.set(__self__, "ocsp_custom_cname", ocsp_custom_cname) + _setter("ocsp_custom_cname", ocsp_custom_cname) @property @pulumi.getter @@ -460,8 +591,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Determines how `value` is interpreted. Valid values: `DAYS`, `MONTHS`, `YEARS`, `ABSOLUTE`, `END_DATE`. :param pulumi.Input[str] value: If `type` is `DAYS`, `MONTHS`, or `YEARS`, the relative time until the certificate expires. If `type` is `ABSOLUTE`, the date in seconds since the Unix epoch. If `type` is `END_DATE`, the date in RFC 3339 format. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + CertificateValidityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/acmpca/certificate.py b/sdk/python/pulumi_aws/acmpca/certificate.py index e44663989ba..65c30fd97a4 100644 --- a/sdk/python/pulumi_aws/acmpca/certificate.py +++ b/sdk/python/pulumi_aws/acmpca/certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -32,14 +32,53 @@ def __init__(__self__, *, :param pulumi.Input[str] template_arn: Template to use when issuing a certificate. See [ACM PCA Documentation](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html) for more information. """ - pulumi.set(__self__, "certificate_authority_arn", certificate_authority_arn) - pulumi.set(__self__, "certificate_signing_request", certificate_signing_request) - pulumi.set(__self__, "signing_algorithm", signing_algorithm) - pulumi.set(__self__, "validity", validity) + CertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arn=certificate_authority_arn, + certificate_signing_request=certificate_signing_request, + signing_algorithm=signing_algorithm, + validity=validity, + api_passthrough=api_passthrough, + template_arn=template_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arn: Optional[pulumi.Input[str]] = None, + certificate_signing_request: Optional[pulumi.Input[str]] = None, + signing_algorithm: Optional[pulumi.Input[str]] = None, + validity: Optional[pulumi.Input['CertificateValidityArgs']] = None, + api_passthrough: Optional[pulumi.Input[str]] = None, + template_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arn is None and 'certificateAuthorityArn' in kwargs: + certificate_authority_arn = kwargs['certificateAuthorityArn'] + if certificate_authority_arn is None: + raise TypeError("Missing 'certificate_authority_arn' argument") + if certificate_signing_request is None and 'certificateSigningRequest' in kwargs: + certificate_signing_request = kwargs['certificateSigningRequest'] + if certificate_signing_request is None: + raise TypeError("Missing 'certificate_signing_request' argument") + if signing_algorithm is None and 'signingAlgorithm' in kwargs: + signing_algorithm = kwargs['signingAlgorithm'] + if signing_algorithm is None: + raise TypeError("Missing 'signing_algorithm' argument") + if validity is None: + raise TypeError("Missing 'validity' argument") + if api_passthrough is None and 'apiPassthrough' in kwargs: + api_passthrough = kwargs['apiPassthrough'] + if template_arn is None and 'templateArn' in kwargs: + template_arn = kwargs['templateArn'] + + _setter("certificate_authority_arn", certificate_authority_arn) + _setter("certificate_signing_request", certificate_signing_request) + _setter("signing_algorithm", signing_algorithm) + _setter("validity", validity) if api_passthrough is not None: - pulumi.set(__self__, "api_passthrough", api_passthrough) + _setter("api_passthrough", api_passthrough) if template_arn is not None: - pulumi.set(__self__, "template_arn", template_arn) + _setter("template_arn", template_arn) @property @pulumi.getter(name="certificateAuthorityArn") @@ -140,24 +179,63 @@ def __init__(__self__, *, See [ACM PCA Documentation](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html) for more information. :param pulumi.Input['CertificateValidityArgs'] validity: Configures end of the validity period for the certificate. See validity block below. """ + _CertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_passthrough=api_passthrough, + arn=arn, + certificate=certificate, + certificate_authority_arn=certificate_authority_arn, + certificate_chain=certificate_chain, + certificate_signing_request=certificate_signing_request, + signing_algorithm=signing_algorithm, + template_arn=template_arn, + validity=validity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_passthrough: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + certificate_authority_arn: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + certificate_signing_request: Optional[pulumi.Input[str]] = None, + signing_algorithm: Optional[pulumi.Input[str]] = None, + template_arn: Optional[pulumi.Input[str]] = None, + validity: Optional[pulumi.Input['CertificateValidityArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_passthrough is None and 'apiPassthrough' in kwargs: + api_passthrough = kwargs['apiPassthrough'] + if certificate_authority_arn is None and 'certificateAuthorityArn' in kwargs: + certificate_authority_arn = kwargs['certificateAuthorityArn'] + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_signing_request is None and 'certificateSigningRequest' in kwargs: + certificate_signing_request = kwargs['certificateSigningRequest'] + if signing_algorithm is None and 'signingAlgorithm' in kwargs: + signing_algorithm = kwargs['signingAlgorithm'] + if template_arn is None and 'templateArn' in kwargs: + template_arn = kwargs['templateArn'] + if api_passthrough is not None: - pulumi.set(__self__, "api_passthrough", api_passthrough) + _setter("api_passthrough", api_passthrough) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if certificate_authority_arn is not None: - pulumi.set(__self__, "certificate_authority_arn", certificate_authority_arn) + _setter("certificate_authority_arn", certificate_authority_arn) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if certificate_signing_request is not None: - pulumi.set(__self__, "certificate_signing_request", certificate_signing_request) + _setter("certificate_signing_request", certificate_signing_request) if signing_algorithm is not None: - pulumi.set(__self__, "signing_algorithm", signing_algorithm) + _setter("signing_algorithm", signing_algorithm) if template_arn is not None: - pulumi.set(__self__, "template_arn", template_arn) + _setter("template_arn", template_arn) if validity is not None: - pulumi.set(__self__, "validity", validity) + _setter("validity", validity) @property @pulumi.getter(name="apiPassthrough") @@ -343,6 +421,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -374,6 +456,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'signing_algorithm'") __props__.__dict__["signing_algorithm"] = signing_algorithm __props__.__dict__["template_arn"] = template_arn + validity = _utilities.configure(validity, CertificateValidityArgs, True) if validity is None and not opts.urn: raise TypeError("Missing required property 'validity'") __props__.__dict__["validity"] = validity diff --git a/sdk/python/pulumi_aws/acmpca/certificate_authority.py b/sdk/python/pulumi_aws/acmpca/certificate_authority.py index 76ec8c3fb3b..39d515c6c45 100644 --- a/sdk/python/pulumi_aws/acmpca/certificate_authority.py +++ b/sdk/python/pulumi_aws/acmpca/certificate_authority.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,21 +35,58 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of the certificate authority. Defaults to `SUBORDINATE`. Valid values: `ROOT` and `SUBORDINATE`. :param pulumi.Input[str] usage_mode: Specifies whether the CA issues general-purpose certificates that typically require a revocation mechanism, or short-lived certificates that may optionally omit revocation because they expire quickly. Short-lived certificate validity is limited to seven days. Defaults to `GENERAL_PURPOSE`. Valid values: `GENERAL_PURPOSE` and `SHORT_LIVED_CERTIFICATE`. """ - pulumi.set(__self__, "certificate_authority_configuration", certificate_authority_configuration) + CertificateAuthorityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_configuration=certificate_authority_configuration, + enabled=enabled, + key_storage_security_standard=key_storage_security_standard, + permanent_deletion_time_in_days=permanent_deletion_time_in_days, + revocation_configuration=revocation_configuration, + tags=tags, + type=type, + usage_mode=usage_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_configuration: Optional[pulumi.Input['CertificateAuthorityCertificateAuthorityConfigurationArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + key_storage_security_standard: Optional[pulumi.Input[str]] = None, + permanent_deletion_time_in_days: Optional[pulumi.Input[int]] = None, + revocation_configuration: Optional[pulumi.Input['CertificateAuthorityRevocationConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + usage_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_configuration is None and 'certificateAuthorityConfiguration' in kwargs: + certificate_authority_configuration = kwargs['certificateAuthorityConfiguration'] + if certificate_authority_configuration is None: + raise TypeError("Missing 'certificate_authority_configuration' argument") + if key_storage_security_standard is None and 'keyStorageSecurityStandard' in kwargs: + key_storage_security_standard = kwargs['keyStorageSecurityStandard'] + if permanent_deletion_time_in_days is None and 'permanentDeletionTimeInDays' in kwargs: + permanent_deletion_time_in_days = kwargs['permanentDeletionTimeInDays'] + if revocation_configuration is None and 'revocationConfiguration' in kwargs: + revocation_configuration = kwargs['revocationConfiguration'] + if usage_mode is None and 'usageMode' in kwargs: + usage_mode = kwargs['usageMode'] + + _setter("certificate_authority_configuration", certificate_authority_configuration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if key_storage_security_standard is not None: - pulumi.set(__self__, "key_storage_security_standard", key_storage_security_standard) + _setter("key_storage_security_standard", key_storage_security_standard) if permanent_deletion_time_in_days is not None: - pulumi.set(__self__, "permanent_deletion_time_in_days", permanent_deletion_time_in_days) + _setter("permanent_deletion_time_in_days", permanent_deletion_time_in_days) if revocation_configuration is not None: - pulumi.set(__self__, "revocation_configuration", revocation_configuration) + _setter("revocation_configuration", revocation_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if usage_mode is not None: - pulumi.set(__self__, "usage_mode", usage_mode) + _setter("usage_mode", usage_mode) @property @pulumi.getter(name="certificateAuthorityConfiguration") @@ -186,41 +223,102 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of the certificate authority. Defaults to `SUBORDINATE`. Valid values: `ROOT` and `SUBORDINATE`. :param pulumi.Input[str] usage_mode: Specifies whether the CA issues general-purpose certificates that typically require a revocation mechanism, or short-lived certificates that may optionally omit revocation because they expire quickly. Short-lived certificate validity is limited to seven days. Defaults to `GENERAL_PURPOSE`. Valid values: `GENERAL_PURPOSE` and `SHORT_LIVED_CERTIFICATE`. """ + _CertificateAuthorityState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + certificate=certificate, + certificate_authority_configuration=certificate_authority_configuration, + certificate_chain=certificate_chain, + certificate_signing_request=certificate_signing_request, + enabled=enabled, + key_storage_security_standard=key_storage_security_standard, + not_after=not_after, + not_before=not_before, + permanent_deletion_time_in_days=permanent_deletion_time_in_days, + revocation_configuration=revocation_configuration, + serial=serial, + tags=tags, + tags_all=tags_all, + type=type, + usage_mode=usage_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + certificate_authority_configuration: Optional[pulumi.Input['CertificateAuthorityCertificateAuthorityConfigurationArgs']] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + certificate_signing_request: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + key_storage_security_standard: Optional[pulumi.Input[str]] = None, + not_after: Optional[pulumi.Input[str]] = None, + not_before: Optional[pulumi.Input[str]] = None, + permanent_deletion_time_in_days: Optional[pulumi.Input[int]] = None, + revocation_configuration: Optional[pulumi.Input['CertificateAuthorityRevocationConfigurationArgs']] = None, + serial: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + usage_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_configuration is None and 'certificateAuthorityConfiguration' in kwargs: + certificate_authority_configuration = kwargs['certificateAuthorityConfiguration'] + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_signing_request is None and 'certificateSigningRequest' in kwargs: + certificate_signing_request = kwargs['certificateSigningRequest'] + if key_storage_security_standard is None and 'keyStorageSecurityStandard' in kwargs: + key_storage_security_standard = kwargs['keyStorageSecurityStandard'] + if not_after is None and 'notAfter' in kwargs: + not_after = kwargs['notAfter'] + if not_before is None and 'notBefore' in kwargs: + not_before = kwargs['notBefore'] + if permanent_deletion_time_in_days is None and 'permanentDeletionTimeInDays' in kwargs: + permanent_deletion_time_in_days = kwargs['permanentDeletionTimeInDays'] + if revocation_configuration is None and 'revocationConfiguration' in kwargs: + revocation_configuration = kwargs['revocationConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if usage_mode is None and 'usageMode' in kwargs: + usage_mode = kwargs['usageMode'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if certificate_authority_configuration is not None: - pulumi.set(__self__, "certificate_authority_configuration", certificate_authority_configuration) + _setter("certificate_authority_configuration", certificate_authority_configuration) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if certificate_signing_request is not None: - pulumi.set(__self__, "certificate_signing_request", certificate_signing_request) + _setter("certificate_signing_request", certificate_signing_request) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if key_storage_security_standard is not None: - pulumi.set(__self__, "key_storage_security_standard", key_storage_security_standard) + _setter("key_storage_security_standard", key_storage_security_standard) if not_after is not None: - pulumi.set(__self__, "not_after", not_after) + _setter("not_after", not_after) if not_before is not None: - pulumi.set(__self__, "not_before", not_before) + _setter("not_before", not_before) if permanent_deletion_time_in_days is not None: - pulumi.set(__self__, "permanent_deletion_time_in_days", permanent_deletion_time_in_days) + _setter("permanent_deletion_time_in_days", permanent_deletion_time_in_days) if revocation_configuration is not None: - pulumi.set(__self__, "revocation_configuration", revocation_configuration) + _setter("revocation_configuration", revocation_configuration) if serial is not None: - pulumi.set(__self__, "serial", serial) + _setter("serial", serial) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if usage_mode is not None: - pulumi.set(__self__, "usage_mode", usage_mode) + _setter("usage_mode", usage_mode) @property @pulumi.getter @@ -643,6 +741,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CertificateAuthorityArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -665,12 +767,14 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = CertificateAuthorityArgs.__new__(CertificateAuthorityArgs) + certificate_authority_configuration = _utilities.configure(certificate_authority_configuration, CertificateAuthorityCertificateAuthorityConfigurationArgs, True) if certificate_authority_configuration is None and not opts.urn: raise TypeError("Missing required property 'certificate_authority_configuration'") __props__.__dict__["certificate_authority_configuration"] = certificate_authority_configuration __props__.__dict__["enabled"] = enabled __props__.__dict__["key_storage_security_standard"] = key_storage_security_standard __props__.__dict__["permanent_deletion_time_in_days"] = permanent_deletion_time_in_days + revocation_configuration = _utilities.configure(revocation_configuration, CertificateAuthorityRevocationConfigurationArgs, True) __props__.__dict__["revocation_configuration"] = revocation_configuration __props__.__dict__["tags"] = tags __props__.__dict__["type"] = type diff --git a/sdk/python/pulumi_aws/acmpca/certificate_authority_certificate.py b/sdk/python/pulumi_aws/acmpca/certificate_authority_certificate.py index 9aae9ce452f..ff21d70b4b3 100644 --- a/sdk/python/pulumi_aws/acmpca/certificate_authority_certificate.py +++ b/sdk/python/pulumi_aws/acmpca/certificate_authority_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CertificateAuthorityCertificateArgs', 'CertificateAuthorityCertificate'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_authority_arn: ARN of the Certificate Authority. :param pulumi.Input[str] certificate_chain: PEM-encoded certificate chain that includes any intermediate certificates and chains up to root CA. Required for subordinate Certificate Authorities. Not allowed for root Certificate Authorities. """ - pulumi.set(__self__, "certificate", certificate) - pulumi.set(__self__, "certificate_authority_arn", certificate_authority_arn) + CertificateAuthorityCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + certificate_authority_arn=certificate_authority_arn, + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[pulumi.Input[str]] = None, + certificate_authority_arn: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate is None: + raise TypeError("Missing 'certificate' argument") + if certificate_authority_arn is None and 'certificateAuthorityArn' in kwargs: + certificate_authority_arn = kwargs['certificateAuthorityArn'] + if certificate_authority_arn is None: + raise TypeError("Missing 'certificate_authority_arn' argument") + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + + _setter("certificate", certificate) + _setter("certificate_authority_arn", certificate_authority_arn) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) @property @pulumi.getter @@ -77,12 +100,31 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_authority_arn: ARN of the Certificate Authority. :param pulumi.Input[str] certificate_chain: PEM-encoded certificate chain that includes any intermediate certificates and chains up to root CA. Required for subordinate Certificate Authorities. Not allowed for root Certificate Authorities. """ + _CertificateAuthorityCertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + certificate_authority_arn=certificate_authority_arn, + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[pulumi.Input[str]] = None, + certificate_authority_arn: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arn is None and 'certificateAuthorityArn' in kwargs: + certificate_authority_arn = kwargs['certificateAuthorityArn'] + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if certificate_authority_arn is not None: - pulumi.set(__self__, "certificate_authority_arn", certificate_authority_arn) + _setter("certificate_authority_arn", certificate_authority_arn) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) @property @pulumi.getter @@ -298,6 +340,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CertificateAuthorityCertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/acmpca/get_certificate.py b/sdk/python/pulumi_aws/acmpca/get_certificate.py index 46935284116..67caca0372f 100644 --- a/sdk/python/pulumi_aws/acmpca/get_certificate.py +++ b/sdk/python/pulumi_aws/acmpca/get_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/acmpca/get_certificate_authority.py b/sdk/python/pulumi_aws/acmpca/get_certificate_authority.py index aca38b50296..b065507dd3a 100644 --- a/sdk/python/pulumi_aws/acmpca/get_certificate_authority.py +++ b/sdk/python/pulumi_aws/acmpca/get_certificate_authority.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/acmpca/outputs.py b/sdk/python/pulumi_aws/acmpca/outputs.py index fcb6040a621..1854cd813a9 100644 --- a/sdk/python/pulumi_aws/acmpca/outputs.py +++ b/sdk/python/pulumi_aws/acmpca/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -52,9 +52,34 @@ def __init__(__self__, *, :param str signing_algorithm: Name of the algorithm your private CA uses to sign certificate requests. Valid values can be found in the [ACM PCA Documentation](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CertificateAuthorityConfiguration.html). :param 'CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs' subject: Nested argument that contains X.500 distinguished name information. At least one nested attribute must be specified. """ - pulumi.set(__self__, "key_algorithm", key_algorithm) - pulumi.set(__self__, "signing_algorithm", signing_algorithm) - pulumi.set(__self__, "subject", subject) + CertificateAuthorityCertificateAuthorityConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_algorithm=key_algorithm, + signing_algorithm=signing_algorithm, + subject=subject, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_algorithm: Optional[str] = None, + signing_algorithm: Optional[str] = None, + subject: Optional['outputs.CertificateAuthorityCertificateAuthorityConfigurationSubject'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_algorithm is None and 'keyAlgorithm' in kwargs: + key_algorithm = kwargs['keyAlgorithm'] + if key_algorithm is None: + raise TypeError("Missing 'key_algorithm' argument") + if signing_algorithm is None and 'signingAlgorithm' in kwargs: + signing_algorithm = kwargs['signingAlgorithm'] + if signing_algorithm is None: + raise TypeError("Missing 'signing_algorithm' argument") + if subject is None: + raise TypeError("Missing 'subject' argument") + + _setter("key_algorithm", key_algorithm) + _setter("signing_algorithm", signing_algorithm) + _setter("subject", subject) @property @pulumi.getter(name="keyAlgorithm") @@ -137,32 +162,77 @@ def __init__(__self__, *, :param str surname: Family name. In the US and the UK for example, the surname of an individual is ordered last. In Asian cultures the surname is typically ordered first. Must be less than or equal to 40 characters in length. :param str title: Title such as Mr. or Ms. which is pre-pended to the name to refer formally to the certificate subject. Must be less than or equal to 64 characters in length. """ + CertificateAuthorityCertificateAuthorityConfigurationSubject._configure( + lambda key, value: pulumi.set(__self__, key, value), + common_name=common_name, + country=country, + distinguished_name_qualifier=distinguished_name_qualifier, + generation_qualifier=generation_qualifier, + given_name=given_name, + initials=initials, + locality=locality, + organization=organization, + organizational_unit=organizational_unit, + pseudonym=pseudonym, + state=state, + surname=surname, + title=title, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + common_name: Optional[str] = None, + country: Optional[str] = None, + distinguished_name_qualifier: Optional[str] = None, + generation_qualifier: Optional[str] = None, + given_name: Optional[str] = None, + initials: Optional[str] = None, + locality: Optional[str] = None, + organization: Optional[str] = None, + organizational_unit: Optional[str] = None, + pseudonym: Optional[str] = None, + state: Optional[str] = None, + surname: Optional[str] = None, + title: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if common_name is None and 'commonName' in kwargs: + common_name = kwargs['commonName'] + if distinguished_name_qualifier is None and 'distinguishedNameQualifier' in kwargs: + distinguished_name_qualifier = kwargs['distinguishedNameQualifier'] + if generation_qualifier is None and 'generationQualifier' in kwargs: + generation_qualifier = kwargs['generationQualifier'] + if given_name is None and 'givenName' in kwargs: + given_name = kwargs['givenName'] + if organizational_unit is None and 'organizationalUnit' in kwargs: + organizational_unit = kwargs['organizationalUnit'] + if common_name is not None: - pulumi.set(__self__, "common_name", common_name) + _setter("common_name", common_name) if country is not None: - pulumi.set(__self__, "country", country) + _setter("country", country) if distinguished_name_qualifier is not None: - pulumi.set(__self__, "distinguished_name_qualifier", distinguished_name_qualifier) + _setter("distinguished_name_qualifier", distinguished_name_qualifier) if generation_qualifier is not None: - pulumi.set(__self__, "generation_qualifier", generation_qualifier) + _setter("generation_qualifier", generation_qualifier) if given_name is not None: - pulumi.set(__self__, "given_name", given_name) + _setter("given_name", given_name) if initials is not None: - pulumi.set(__self__, "initials", initials) + _setter("initials", initials) if locality is not None: - pulumi.set(__self__, "locality", locality) + _setter("locality", locality) if organization is not None: - pulumi.set(__self__, "organization", organization) + _setter("organization", organization) if organizational_unit is not None: - pulumi.set(__self__, "organizational_unit", organizational_unit) + _setter("organizational_unit", organizational_unit) if pseudonym is not None: - pulumi.set(__self__, "pseudonym", pseudonym) + _setter("pseudonym", pseudonym) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if surname is not None: - pulumi.set(__self__, "surname", surname) + _setter("surname", surname) if title is not None: - pulumi.set(__self__, "title", title) + _setter("title", title) @property @pulumi.getter(name="commonName") @@ -298,10 +368,27 @@ def __init__(__self__, *, :param 'CertificateAuthorityRevocationConfigurationOcspConfigurationArgs' ocsp_configuration: Nested argument containing configuration of the custom OCSP responder endpoint. Defined below. """ + CertificateAuthorityRevocationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + crl_configuration=crl_configuration, + ocsp_configuration=ocsp_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + crl_configuration: Optional['outputs.CertificateAuthorityRevocationConfigurationCrlConfiguration'] = None, + ocsp_configuration: Optional['outputs.CertificateAuthorityRevocationConfigurationOcspConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if crl_configuration is None and 'crlConfiguration' in kwargs: + crl_configuration = kwargs['crlConfiguration'] + if ocsp_configuration is None and 'ocspConfiguration' in kwargs: + ocsp_configuration = kwargs['ocspConfiguration'] + if crl_configuration is not None: - pulumi.set(__self__, "crl_configuration", crl_configuration) + _setter("crl_configuration", crl_configuration) if ocsp_configuration is not None: - pulumi.set(__self__, "ocsp_configuration", ocsp_configuration) + _setter("ocsp_configuration", ocsp_configuration) @property @pulumi.getter(name="crlConfiguration") @@ -359,16 +446,43 @@ def __init__(__self__, *, :param str s3_bucket_name: Name of the S3 bucket that contains the CRL. If you do not provide a value for the `custom_cname` argument, the name of your S3 bucket is placed into the CRL Distribution Points extension of the issued certificate. You must specify a bucket policy that allows ACM PCA to write the CRL to your bucket. Must be between 3 and 255 characters in length. :param str s3_object_acl: Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. Defaults to `PUBLIC_READ`. """ + CertificateAuthorityRevocationConfigurationCrlConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_cname=custom_cname, + enabled=enabled, + expiration_in_days=expiration_in_days, + s3_bucket_name=s3_bucket_name, + s3_object_acl=s3_object_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_cname: Optional[str] = None, + enabled: Optional[bool] = None, + expiration_in_days: Optional[int] = None, + s3_bucket_name: Optional[str] = None, + s3_object_acl: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_cname is None and 'customCname' in kwargs: + custom_cname = kwargs['customCname'] + if expiration_in_days is None and 'expirationInDays' in kwargs: + expiration_in_days = kwargs['expirationInDays'] + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_object_acl is None and 's3ObjectAcl' in kwargs: + s3_object_acl = kwargs['s3ObjectAcl'] + if custom_cname is not None: - pulumi.set(__self__, "custom_cname", custom_cname) + _setter("custom_cname", custom_cname) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if expiration_in_days is not None: - pulumi.set(__self__, "expiration_in_days", expiration_in_days) + _setter("expiration_in_days", expiration_in_days) if s3_bucket_name is not None: - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + _setter("s3_bucket_name", s3_bucket_name) if s3_object_acl is not None: - pulumi.set(__self__, "s3_object_acl", s3_object_acl) + _setter("s3_object_acl", s3_object_acl) @property @pulumi.getter(name="customCname") @@ -437,9 +551,26 @@ def __init__(__self__, *, :param bool enabled: Boolean value that specifies whether a custom OCSP responder is enabled. :param str ocsp_custom_cname: CNAME specifying a customized OCSP domain. Note: The value of the CNAME must not include a protocol prefix such as "http://" or "https://". """ - pulumi.set(__self__, "enabled", enabled) + CertificateAuthorityRevocationConfigurationOcspConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ocsp_custom_cname=ocsp_custom_cname, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + ocsp_custom_cname: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if ocsp_custom_cname is None and 'ocspCustomCname' in kwargs: + ocsp_custom_cname = kwargs['ocspCustomCname'] + + _setter("enabled", enabled) if ocsp_custom_cname is not None: - pulumi.set(__self__, "ocsp_custom_cname", ocsp_custom_cname) + _setter("ocsp_custom_cname", ocsp_custom_cname) @property @pulumi.getter @@ -467,8 +598,25 @@ def __init__(__self__, *, :param str type: Determines how `value` is interpreted. Valid values: `DAYS`, `MONTHS`, `YEARS`, `ABSOLUTE`, `END_DATE`. :param str value: If `type` is `DAYS`, `MONTHS`, or `YEARS`, the relative time until the certificate expires. If `type` is `ABSOLUTE`, the date in seconds since the Unix epoch. If `type` is `END_DATE`, the date in RFC 3339 format. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + CertificateValidity._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -492,8 +640,29 @@ class GetCertificateAuthorityRevocationConfigurationResult(dict): def __init__(__self__, *, crl_configurations: Sequence['outputs.GetCertificateAuthorityRevocationConfigurationCrlConfigurationResult'], ocsp_configurations: Sequence['outputs.GetCertificateAuthorityRevocationConfigurationOcspConfigurationResult']): - pulumi.set(__self__, "crl_configurations", crl_configurations) - pulumi.set(__self__, "ocsp_configurations", ocsp_configurations) + GetCertificateAuthorityRevocationConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + crl_configurations=crl_configurations, + ocsp_configurations=ocsp_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + crl_configurations: Optional[Sequence['outputs.GetCertificateAuthorityRevocationConfigurationCrlConfigurationResult']] = None, + ocsp_configurations: Optional[Sequence['outputs.GetCertificateAuthorityRevocationConfigurationOcspConfigurationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if crl_configurations is None and 'crlConfigurations' in kwargs: + crl_configurations = kwargs['crlConfigurations'] + if crl_configurations is None: + raise TypeError("Missing 'crl_configurations' argument") + if ocsp_configurations is None and 'ocspConfigurations' in kwargs: + ocsp_configurations = kwargs['ocspConfigurations'] + if ocsp_configurations is None: + raise TypeError("Missing 'ocsp_configurations' argument") + + _setter("crl_configurations", crl_configurations) + _setter("ocsp_configurations", ocsp_configurations) @property @pulumi.getter(name="crlConfigurations") @@ -514,11 +683,48 @@ def __init__(__self__, *, expiration_in_days: int, s3_bucket_name: str, s3_object_acl: str): - pulumi.set(__self__, "custom_cname", custom_cname) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "expiration_in_days", expiration_in_days) - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) - pulumi.set(__self__, "s3_object_acl", s3_object_acl) + GetCertificateAuthorityRevocationConfigurationCrlConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_cname=custom_cname, + enabled=enabled, + expiration_in_days=expiration_in_days, + s3_bucket_name=s3_bucket_name, + s3_object_acl=s3_object_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_cname: Optional[str] = None, + enabled: Optional[bool] = None, + expiration_in_days: Optional[int] = None, + s3_bucket_name: Optional[str] = None, + s3_object_acl: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_cname is None and 'customCname' in kwargs: + custom_cname = kwargs['customCname'] + if custom_cname is None: + raise TypeError("Missing 'custom_cname' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if expiration_in_days is None and 'expirationInDays' in kwargs: + expiration_in_days = kwargs['expirationInDays'] + if expiration_in_days is None: + raise TypeError("Missing 'expiration_in_days' argument") + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_object_acl is None and 's3ObjectAcl' in kwargs: + s3_object_acl = kwargs['s3ObjectAcl'] + if s3_object_acl is None: + raise TypeError("Missing 's3_object_acl' argument") + + _setter("custom_cname", custom_cname) + _setter("enabled", enabled) + _setter("expiration_in_days", expiration_in_days) + _setter("s3_bucket_name", s3_bucket_name) + _setter("s3_object_acl", s3_object_acl) @property @pulumi.getter(name="customCname") @@ -551,8 +757,27 @@ class GetCertificateAuthorityRevocationConfigurationOcspConfigurationResult(dict def __init__(__self__, *, enabled: bool, ocsp_custom_cname: str): - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "ocsp_custom_cname", ocsp_custom_cname) + GetCertificateAuthorityRevocationConfigurationOcspConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ocsp_custom_cname=ocsp_custom_cname, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + ocsp_custom_cname: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if ocsp_custom_cname is None and 'ocspCustomCname' in kwargs: + ocsp_custom_cname = kwargs['ocspCustomCname'] + if ocsp_custom_cname is None: + raise TypeError("Missing 'ocsp_custom_cname' argument") + + _setter("enabled", enabled) + _setter("ocsp_custom_cname", ocsp_custom_cname) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/acmpca/permission.py b/sdk/python/pulumi_aws/acmpca/permission.py index 04c7609d4f5..1559f9feafa 100644 --- a/sdk/python/pulumi_aws/acmpca/permission.py +++ b/sdk/python/pulumi_aws/acmpca/permission.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PermissionArgs', 'Permission'] @@ -25,11 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[str] principal: AWS service or identity that receives the permission. At this time, the only valid principal is `acm.amazonaws.com`. :param pulumi.Input[str] source_account: ID of the calling account """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "certificate_authority_arn", certificate_authority_arn) - pulumi.set(__self__, "principal", principal) + PermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + certificate_authority_arn=certificate_authority_arn, + principal=principal, + source_account=source_account, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + certificate_authority_arn: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + source_account: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if certificate_authority_arn is None and 'certificateAuthorityArn' in kwargs: + certificate_authority_arn = kwargs['certificateAuthorityArn'] + if certificate_authority_arn is None: + raise TypeError("Missing 'certificate_authority_arn' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + if source_account is None and 'sourceAccount' in kwargs: + source_account = kwargs['sourceAccount'] + + _setter("actions", actions) + _setter("certificate_authority_arn", certificate_authority_arn) + _setter("principal", principal) if source_account is not None: - pulumi.set(__self__, "source_account", source_account) + _setter("source_account", source_account) @property @pulumi.getter @@ -96,16 +123,39 @@ def __init__(__self__, *, :param pulumi.Input[str] principal: AWS service or identity that receives the permission. At this time, the only valid principal is `acm.amazonaws.com`. :param pulumi.Input[str] source_account: ID of the calling account """ + _PermissionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + certificate_authority_arn=certificate_authority_arn, + policy=policy, + principal=principal, + source_account=source_account, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + certificate_authority_arn: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + source_account: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arn is None and 'certificateAuthorityArn' in kwargs: + certificate_authority_arn = kwargs['certificateAuthorityArn'] + if source_account is None and 'sourceAccount' in kwargs: + source_account = kwargs['sourceAccount'] + if actions is not None: - pulumi.set(__self__, "actions", actions) + _setter("actions", actions) if certificate_authority_arn is not None: - pulumi.set(__self__, "certificate_authority_arn", certificate_authority_arn) + _setter("certificate_authority_arn", certificate_authority_arn) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if source_account is not None: - pulumi.set(__self__, "source_account", source_account) + _setter("source_account", source_account) @property @pulumi.getter @@ -255,6 +305,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PermissionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/acmpca/policy.py b/sdk/python/pulumi_aws/acmpca/policy.py index 1e7a38867c0..6caf537508a 100644 --- a/sdk/python/pulumi_aws/acmpca/policy.py +++ b/sdk/python/pulumi_aws/acmpca/policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PolicyArgs', 'Policy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: JSON-formatted IAM policy to attach to the specified private CA resource. :param pulumi.Input[str] resource_arn: ARN of the private CA to associate with the policy. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "resource_arn", resource_arn) + PolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("policy", policy) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: JSON-formatted IAM policy to attach to the specified private CA resource. :param pulumi.Input[str] resource_arn: ARN of the private CA to associate with the policy. """ + _PolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -230,6 +264,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/alb/_inputs.py b/sdk/python/pulumi_aws/alb/_inputs.py index c20bb633f01..ff9d0a3d019 100644 --- a/sdk/python/pulumi_aws/alb/_inputs.py +++ b/sdk/python/pulumi_aws/alb/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -64,21 +64,56 @@ def __init__(__self__, *, :param pulumi.Input['ListenerDefaultActionRedirectArgs'] redirect: Configuration block for creating a redirect action. Required if `type` is `redirect`. Detailed below. :param pulumi.Input[str] target_group_arn: ARN of the Target Group to which to route traffic. Specify only if `type` is `forward` and you want to route to a single target group. To route to one or more target groups, use a `forward` block instead. """ - pulumi.set(__self__, "type", type) + ListenerDefaultActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + authenticate_cognito=authenticate_cognito, + authenticate_oidc=authenticate_oidc, + fixed_response=fixed_response, + forward=forward, + order=order, + redirect=redirect, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + authenticate_cognito: Optional[pulumi.Input['ListenerDefaultActionAuthenticateCognitoArgs']] = None, + authenticate_oidc: Optional[pulumi.Input['ListenerDefaultActionAuthenticateOidcArgs']] = None, + fixed_response: Optional[pulumi.Input['ListenerDefaultActionFixedResponseArgs']] = None, + forward: Optional[pulumi.Input['ListenerDefaultActionForwardArgs']] = None, + order: Optional[pulumi.Input[int]] = None, + redirect: Optional[pulumi.Input['ListenerDefaultActionRedirectArgs']] = None, + target_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if authenticate_cognito is None and 'authenticateCognito' in kwargs: + authenticate_cognito = kwargs['authenticateCognito'] + if authenticate_oidc is None and 'authenticateOidc' in kwargs: + authenticate_oidc = kwargs['authenticateOidc'] + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("type", type) if authenticate_cognito is not None: - pulumi.set(__self__, "authenticate_cognito", authenticate_cognito) + _setter("authenticate_cognito", authenticate_cognito) if authenticate_oidc is not None: - pulumi.set(__self__, "authenticate_oidc", authenticate_oidc) + _setter("authenticate_oidc", authenticate_oidc) if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) if order is not None: - pulumi.set(__self__, "order", order) + _setter("order", order) if redirect is not None: - pulumi.set(__self__, "redirect", redirect) + _setter("redirect", redirect) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter @@ -202,19 +237,64 @@ def __init__(__self__, *, :param pulumi.Input[str] session_cookie_name: Name of the cookie used to maintain session information. :param pulumi.Input[int] session_timeout: Maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + ListenerDefaultActionAuthenticateCognitoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_arn: Optional[pulumi.Input[str]] = None, + user_pool_client_id: Optional[pulumi.Input[str]] = None, + user_pool_domain: Optional[pulumi.Input[str]] = None, + authentication_request_extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + on_unauthenticated_request: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + session_cookie_name: Optional[pulumi.Input[str]] = None, + session_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="userPoolArn") @@ -344,22 +424,83 @@ def __init__(__self__, *, :param pulumi.Input[str] session_cookie_name: Name of the cookie used to maintain session information. :param pulumi.Input[int] session_timeout: Maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + ListenerDefaultActionAuthenticateOidcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + issuer: Optional[pulumi.Input[str]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_info_endpoint: Optional[pulumi.Input[str]] = None, + authentication_request_extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + on_unauthenticated_request: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + session_cookie_name: Optional[pulumi.Input[str]] = None, + session_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="authorizationEndpoint") @@ -509,11 +650,34 @@ def __init__(__self__, *, :param pulumi.Input[str] message_body: Message body. :param pulumi.Input[str] status_code: HTTP response code. Valid values are `2XX`, `4XX`, or `5XX`. """ - pulumi.set(__self__, "content_type", content_type) + ListenerDefaultActionFixedResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[pulumi.Input[str]] = None, + message_body: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("content_type", content_type) if message_body is not None: - pulumi.set(__self__, "message_body", message_body) + _setter("message_body", message_body) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -565,9 +729,26 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['ListenerDefaultActionForwardStickinessArgs'] stickiness: Configuration block for target group stickiness for the rule. Detailed below. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerDefaultActionForwardArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + stickiness=stickiness, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionForwardTargetGroupArgs']]]] = None, + stickiness: Optional[pulumi.Input['ListenerDefaultActionForwardStickinessArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) @property @pulumi.getter(name="targetGroups") @@ -607,9 +788,24 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] enabled: Whether target group stickiness is enabled. Default is `false`. """ - pulumi.set(__self__, "duration", duration) + ListenerDefaultActionForwardStickinessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + + _setter("duration", duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -649,9 +845,24 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[int] weight: Weight. The range is 0 to 999. """ - pulumi.set(__self__, "arn", arn) + ListenerDefaultActionForwardTargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter @@ -699,17 +910,42 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol: Protocol. Valid values are `HTTP`, `HTTPS`, or `#{protocol}`. Defaults to `#{protocol}`. :param pulumi.Input[str] query: Query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?". Defaults to `#{query}`. """ - pulumi.set(__self__, "status_code", status_code) + ListenerDefaultActionRedirectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + query: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if query is not None: - pulumi.set(__self__, "query", query) + _setter("query", query) @property @pulumi.getter(name="statusCode") @@ -806,21 +1042,56 @@ def __init__(__self__, *, :param pulumi.Input['ListenerRuleActionRedirectArgs'] redirect: Information for creating a redirect action. Required if `type` is `redirect`. :param pulumi.Input[str] target_group_arn: The ARN of the Target Group to which to route traffic. Specify only if `type` is `forward` and you want to route to a single target group. To route to one or more target groups, use a `forward` block instead. """ - pulumi.set(__self__, "type", type) + ListenerRuleActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + authenticate_cognito=authenticate_cognito, + authenticate_oidc=authenticate_oidc, + fixed_response=fixed_response, + forward=forward, + order=order, + redirect=redirect, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + authenticate_cognito: Optional[pulumi.Input['ListenerRuleActionAuthenticateCognitoArgs']] = None, + authenticate_oidc: Optional[pulumi.Input['ListenerRuleActionAuthenticateOidcArgs']] = None, + fixed_response: Optional[pulumi.Input['ListenerRuleActionFixedResponseArgs']] = None, + forward: Optional[pulumi.Input['ListenerRuleActionForwardArgs']] = None, + order: Optional[pulumi.Input[int]] = None, + redirect: Optional[pulumi.Input['ListenerRuleActionRedirectArgs']] = None, + target_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if authenticate_cognito is None and 'authenticateCognito' in kwargs: + authenticate_cognito = kwargs['authenticateCognito'] + if authenticate_oidc is None and 'authenticateOidc' in kwargs: + authenticate_oidc = kwargs['authenticateOidc'] + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("type", type) if authenticate_cognito is not None: - pulumi.set(__self__, "authenticate_cognito", authenticate_cognito) + _setter("authenticate_cognito", authenticate_cognito) if authenticate_oidc is not None: - pulumi.set(__self__, "authenticate_oidc", authenticate_oidc) + _setter("authenticate_oidc", authenticate_oidc) if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) if order is not None: - pulumi.set(__self__, "order", order) + _setter("order", order) if redirect is not None: - pulumi.set(__self__, "redirect", redirect) + _setter("redirect", redirect) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter @@ -937,19 +1208,64 @@ def __init__(__self__, *, :param pulumi.Input[str] session_cookie_name: The name of the cookie used to maintain session information. :param pulumi.Input[int] session_timeout: The maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + ListenerRuleActionAuthenticateCognitoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_arn: Optional[pulumi.Input[str]] = None, + user_pool_client_id: Optional[pulumi.Input[str]] = None, + user_pool_domain: Optional[pulumi.Input[str]] = None, + authentication_request_extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + on_unauthenticated_request: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + session_cookie_name: Optional[pulumi.Input[str]] = None, + session_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="userPoolArn") @@ -1075,22 +1391,83 @@ def __init__(__self__, *, :param pulumi.Input[str] session_cookie_name: The name of the cookie used to maintain session information. :param pulumi.Input[int] session_timeout: The maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + ListenerRuleActionAuthenticateOidcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + issuer: Optional[pulumi.Input[str]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_info_endpoint: Optional[pulumi.Input[str]] = None, + authentication_request_extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + on_unauthenticated_request: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + session_cookie_name: Optional[pulumi.Input[str]] = None, + session_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="authorizationEndpoint") @@ -1236,11 +1613,34 @@ def __init__(__self__, *, :param pulumi.Input[str] message_body: The message body. :param pulumi.Input[str] status_code: The HTTP response code. Valid values are `2XX`, `4XX`, or `5XX`. """ - pulumi.set(__self__, "content_type", content_type) + ListenerRuleActionFixedResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[pulumi.Input[str]] = None, + message_body: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("content_type", content_type) if message_body is not None: - pulumi.set(__self__, "message_body", message_body) + _setter("message_body", message_body) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -1288,9 +1688,26 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ListenerRuleActionForwardTargetGroupArgs']]] target_groups: One or more target groups block. :param pulumi.Input['ListenerRuleActionForwardStickinessArgs'] stickiness: The target group stickiness for the rule. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerRuleActionForwardArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + stickiness=stickiness, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleActionForwardTargetGroupArgs']]]] = None, + stickiness: Optional[pulumi.Input['ListenerRuleActionForwardStickinessArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) @property @pulumi.getter(name="targetGroups") @@ -1326,9 +1743,24 @@ def __init__(__self__, *, :param pulumi.Input[int] duration: The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). :param pulumi.Input[bool] enabled: Indicates whether target group stickiness is enabled. """ - pulumi.set(__self__, "duration", duration) + ListenerRuleActionForwardStickinessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + + _setter("duration", duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1364,9 +1796,24 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the target group. :param pulumi.Input[int] weight: The weight. The range is 0 to 999. """ - pulumi.set(__self__, "arn", arn) + ListenerRuleActionForwardTargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter @@ -1410,17 +1857,42 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol: The protocol. Valid values are `HTTP`, `HTTPS`, or `#{protocol}`. Defaults to `#{protocol}`. :param pulumi.Input[str] query: The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?". Defaults to `#{query}`. """ - pulumi.set(__self__, "status_code", status_code) + ListenerRuleActionRedirectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + query: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if query is not None: - pulumi.set(__self__, "query", query) + _setter("query", query) @property @pulumi.getter(name="statusCode") @@ -1514,18 +1986,51 @@ def __init__(__self__, *, > **NOTE::** Exactly one of `host_header`, `http_header`, `http_request_method`, `path_pattern`, `query_string` or `source_ip` must be set per condition. """ + ListenerRuleConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + host_header=host_header, + http_header=http_header, + http_request_method=http_request_method, + path_pattern=path_pattern, + query_strings=query_strings, + source_ip=source_ip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host_header: Optional[pulumi.Input['ListenerRuleConditionHostHeaderArgs']] = None, + http_header: Optional[pulumi.Input['ListenerRuleConditionHttpHeaderArgs']] = None, + http_request_method: Optional[pulumi.Input['ListenerRuleConditionHttpRequestMethodArgs']] = None, + path_pattern: Optional[pulumi.Input['ListenerRuleConditionPathPatternArgs']] = None, + query_strings: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleConditionQueryStringArgs']]]] = None, + source_ip: Optional[pulumi.Input['ListenerRuleConditionSourceIpArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_header is None and 'hostHeader' in kwargs: + host_header = kwargs['hostHeader'] + if http_header is None and 'httpHeader' in kwargs: + http_header = kwargs['httpHeader'] + if http_request_method is None and 'httpRequestMethod' in kwargs: + http_request_method = kwargs['httpRequestMethod'] + if path_pattern is None and 'pathPattern' in kwargs: + path_pattern = kwargs['pathPattern'] + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if source_ip is None and 'sourceIp' in kwargs: + source_ip = kwargs['sourceIp'] + if host_header is not None: - pulumi.set(__self__, "host_header", host_header) + _setter("host_header", host_header) if http_header is not None: - pulumi.set(__self__, "http_header", http_header) + _setter("http_header", http_header) if http_request_method is not None: - pulumi.set(__self__, "http_request_method", http_request_method) + _setter("http_request_method", http_request_method) if path_pattern is not None: - pulumi.set(__self__, "path_pattern", path_pattern) + _setter("path_pattern", path_pattern) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) if source_ip is not None: - pulumi.set(__self__, "source_ip", source_ip) + _setter("source_ip", source_ip) @property @pulumi.getter(name="hostHeader") @@ -1608,20 +2113,27 @@ def __init__(__self__, *, values: pulumi.Input[Sequence[pulumi.Input[str]]]): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionHostHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1639,8 +2151,27 @@ def __init__(__self__, *, :param pulumi.Input[str] http_header_name: Name of HTTP header to search. The maximum size is 40 characters. Comparison is case insensitive. Only RFC7240 characters are supported. Wildcards are not supported. You cannot use HTTP header condition to specify the host header, use a `host-header` condition instead. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. """ - pulumi.set(__self__, "http_header_name", http_header_name) - pulumi.set(__self__, "values", values) + ListenerRuleConditionHttpHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_header_name=http_header_name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_header_name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_header_name is None and 'httpHeaderName' in kwargs: + http_header_name = kwargs['httpHeaderName'] + if http_header_name is None: + raise TypeError("Missing 'http_header_name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("http_header_name", http_header_name) + _setter("values", values) @property @pulumi.getter(name="httpHeaderName") @@ -1673,20 +2204,27 @@ def __init__(__self__, *, values: pulumi.Input[Sequence[pulumi.Input[str]]]): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionHttpRequestMethodArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1701,20 +2239,27 @@ def __init__(__self__, *, values: pulumi.Input[Sequence[pulumi.Input[str]]]): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionPathPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1732,9 +2277,24 @@ def __init__(__self__, *, :param pulumi.Input[str] value: Query string value pattern to match. :param pulumi.Input[str] key: Query string key pattern to match. """ - pulumi.set(__self__, "value", value) + ListenerRuleConditionQueryStringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1767,20 +2327,27 @@ def __init__(__self__, *, values: pulumi.Input[Sequence[pulumi.Input[str]]]): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionSourceIpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1800,11 +2367,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Boolean to enable / disable `access_logs`. Defaults to `false`, even when `bucket` is specified. :param pulumi.Input[str] prefix: The S3 bucket prefix. Logs are stored in the root if not configured. """ - pulumi.set(__self__, "bucket", bucket) + LoadBalancerAccessLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + enabled=enabled, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -1857,15 +2441,46 @@ def __init__(__self__, *, :param pulumi.Input[str] ipv6_address: The IPv6 address. You associate IPv6 CIDR blocks with your VPC and choose the subnets where you launch both internet-facing and internal Application Load Balancers or Network Load Balancers. :param pulumi.Input[str] private_ipv4_address: The private IPv4 address for an internal load balancer. """ - pulumi.set(__self__, "subnet_id", subnet_id) + LoadBalancerSubnetMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + allocation_id=allocation_id, + ipv6_address=ipv6_address, + outpost_id=outpost_id, + private_ipv4_address=private_ipv4_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + allocation_id: Optional[pulumi.Input[str]] = None, + ipv6_address: Optional[pulumi.Input[str]] = None, + outpost_id: Optional[pulumi.Input[str]] = None, + private_ipv4_address: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if ipv6_address is None and 'ipv6Address' in kwargs: + ipv6_address = kwargs['ipv6Address'] + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if private_ipv4_address is None and 'privateIpv4Address' in kwargs: + private_ipv4_address = kwargs['privateIpv4Address'] + + _setter("subnet_id", subnet_id) if allocation_id is not None: - pulumi.set(__self__, "allocation_id", allocation_id) + _setter("allocation_id", allocation_id) if ipv6_address is not None: - pulumi.set(__self__, "ipv6_address", ipv6_address) + _setter("ipv6_address", ipv6_address) if outpost_id is not None: - pulumi.set(__self__, "outpost_id", outpost_id) + _setter("outpost_id", outpost_id) if private_ipv4_address is not None: - pulumi.set(__self__, "private_ipv4_address", private_ipv4_address) + _setter("private_ipv4_address", private_ipv4_address) @property @pulumi.getter(name="subnetId") @@ -1948,24 +2563,55 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout: Amount of time, in seconds, during which no response from a target means a failed health check. The range is 2–120 seconds. For target groups with a protocol of HTTP, the default is 6 seconds. For target groups with a protocol of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol of GENEVE, the default is 5 seconds. If the target type is lambda, the default is 30 seconds. :param pulumi.Input[int] unhealthy_threshold: Number of consecutive health check failures required before considering a target unhealthy. The range is 2-10. Defaults to 3. """ + TargetGroupHealthCheckArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + healthy_threshold=healthy_threshold, + interval=interval, + matcher=matcher, + path=path, + port=port, + protocol=protocol, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + healthy_threshold: Optional[pulumi.Input[int]] = None, + interval: Optional[pulumi.Input[int]] = None, + matcher: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + timeout: Optional[pulumi.Input[int]] = None, + unhealthy_threshold: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if healthy_threshold is not None: - pulumi.set(__self__, "healthy_threshold", healthy_threshold) + _setter("healthy_threshold", healthy_threshold) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if matcher is not None: - pulumi.set(__self__, "matcher", matcher) + _setter("matcher", matcher) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if unhealthy_threshold is not None: - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter @@ -2089,13 +2735,36 @@ def __init__(__self__, *, :param pulumi.Input[str] cookie_name: Name of the application based cookie. AWSALB, AWSALBAPP, and AWSALBTG prefixes are reserved and cannot be used. Only needed when type is `app_cookie`. :param pulumi.Input[bool] enabled: Boolean to enable / disable `stickiness`. Default is `true`. """ - pulumi.set(__self__, "type", type) + TargetGroupStickinessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + cookie_duration=cookie_duration, + cookie_name=cookie_name, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + cookie_duration: Optional[pulumi.Input[int]] = None, + cookie_name: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if cookie_duration is None and 'cookieDuration' in kwargs: + cookie_duration = kwargs['cookieDuration'] + if cookie_name is None and 'cookieName' in kwargs: + cookie_name = kwargs['cookieName'] + + _setter("type", type) if cookie_duration is not None: - pulumi.set(__self__, "cookie_duration", cookie_duration) + _setter("cookie_duration", cookie_duration) if cookie_name is not None: - pulumi.set(__self__, "cookie_name", cookie_name) + _setter("cookie_name", cookie_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -2155,8 +2824,29 @@ def __init__(__self__, *, :param pulumi.Input[str] on_deregistration: Indicates how the GWLB handles existing flows when a target is deregistered. Possible values are `rebalance` and `no_rebalance`. Must match the attribute value set for `on_unhealthy`. Default: `no_rebalance`. :param pulumi.Input[str] on_unhealthy: Indicates how the GWLB handles existing flows when a target is unhealthy. Possible values are `rebalance` and `no_rebalance`. Must match the attribute value set for `on_deregistration`. Default: `no_rebalance`. """ - pulumi.set(__self__, "on_deregistration", on_deregistration) - pulumi.set(__self__, "on_unhealthy", on_unhealthy) + TargetGroupTargetFailoverArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_deregistration=on_deregistration, + on_unhealthy=on_unhealthy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_deregistration: Optional[pulumi.Input[str]] = None, + on_unhealthy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_deregistration is None and 'onDeregistration' in kwargs: + on_deregistration = kwargs['onDeregistration'] + if on_deregistration is None: + raise TypeError("Missing 'on_deregistration' argument") + if on_unhealthy is None and 'onUnhealthy' in kwargs: + on_unhealthy = kwargs['onUnhealthy'] + if on_unhealthy is None: + raise TypeError("Missing 'on_unhealthy' argument") + + _setter("on_deregistration", on_deregistration) + _setter("on_unhealthy", on_unhealthy) @property @pulumi.getter(name="onDeregistration") diff --git a/sdk/python/pulumi_aws/alb/get_listener.py b/sdk/python/pulumi_aws/alb/get_listener.py index 47ca257131d..2137dbe1876 100644 --- a/sdk/python/pulumi_aws/alb/get_listener.py +++ b/sdk/python/pulumi_aws/alb/get_listener.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/alb/get_load_balancer.py b/sdk/python/pulumi_aws/alb/get_load_balancer.py index 9f89571784b..3c8ba220293 100644 --- a/sdk/python/pulumi_aws/alb/get_load_balancer.py +++ b/sdk/python/pulumi_aws/alb/get_load_balancer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/alb/get_target_group.py b/sdk/python/pulumi_aws/alb/get_target_group.py index b74abe94432..1ebe8007162 100644 --- a/sdk/python/pulumi_aws/alb/get_target_group.py +++ b/sdk/python/pulumi_aws/alb/get_target_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/alb/listener.py b/sdk/python/pulumi_aws/alb/listener.py index 92e97568495..4f81dc1e1a4 100644 --- a/sdk/python/pulumi_aws/alb/listener.py +++ b/sdk/python/pulumi_aws/alb/listener.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,20 +39,59 @@ def __init__(__self__, *, > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. """ - pulumi.set(__self__, "default_actions", default_actions) - pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) + ListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_actions=default_actions, + load_balancer_arn=load_balancer_arn, + alpn_policy=alpn_policy, + certificate_arn=certificate_arn, + port=port, + protocol=protocol, + ssl_policy=ssl_policy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionArgs']]]] = None, + load_balancer_arn: Optional[pulumi.Input[str]] = None, + alpn_policy: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + ssl_policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_actions is None and 'defaultActions' in kwargs: + default_actions = kwargs['defaultActions'] + if default_actions is None: + raise TypeError("Missing 'default_actions' argument") + if load_balancer_arn is None and 'loadBalancerArn' in kwargs: + load_balancer_arn = kwargs['loadBalancerArn'] + if load_balancer_arn is None: + raise TypeError("Missing 'load_balancer_arn' argument") + if alpn_policy is None and 'alpnPolicy' in kwargs: + alpn_policy = kwargs['alpnPolicy'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if ssl_policy is None and 'sslPolicy' in kwargs: + ssl_policy = kwargs['sslPolicy'] + + _setter("default_actions", default_actions) + _setter("load_balancer_arn", load_balancer_arn) if alpn_policy is not None: - pulumi.set(__self__, "alpn_policy", alpn_policy) + _setter("alpn_policy", alpn_policy) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if ssl_policy is not None: - pulumi.set(__self__, "ssl_policy", ssl_policy) + _setter("ssl_policy", ssl_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultActions") @@ -187,29 +226,70 @@ def __init__(__self__, *, > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. :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. """ + _ListenerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alpn_policy=alpn_policy, + arn=arn, + certificate_arn=certificate_arn, + default_actions=default_actions, + load_balancer_arn=load_balancer_arn, + port=port, + protocol=protocol, + ssl_policy=ssl_policy, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alpn_policy: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + default_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionArgs']]]] = None, + load_balancer_arn: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + ssl_policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alpn_policy is None and 'alpnPolicy' in kwargs: + alpn_policy = kwargs['alpnPolicy'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if default_actions is None and 'defaultActions' in kwargs: + default_actions = kwargs['defaultActions'] + if load_balancer_arn is None and 'loadBalancerArn' in kwargs: + load_balancer_arn = kwargs['loadBalancerArn'] + if ssl_policy is None and 'sslPolicy' in kwargs: + ssl_policy = kwargs['sslPolicy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if alpn_policy is not None: - pulumi.set(__self__, "alpn_policy", alpn_policy) + _setter("alpn_policy", alpn_policy) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if default_actions is not None: - pulumi.set(__self__, "default_actions", default_actions) + _setter("default_actions", default_actions) if load_balancer_arn is not None: - pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) + _setter("load_balancer_arn", load_balancer_arn) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if ssl_policy is not None: - pulumi.set(__self__, "ssl_policy", ssl_policy) + _setter("ssl_policy", ssl_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="alpnPolicy") @@ -764,6 +844,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/alb/listener_certificate.py b/sdk/python/pulumi_aws/alb/listener_certificate.py index 769a4b69293..645648a0e28 100644 --- a/sdk/python/pulumi_aws/alb/listener_certificate.py +++ b/sdk/python/pulumi_aws/alb/listener_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ListenerCertificateArgs', 'ListenerCertificate'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_arn: The ARN of the certificate to attach to the listener. :param pulumi.Input[str] listener_arn: The ARN of the listener to which to attach the certificate. """ - pulumi.set(__self__, "certificate_arn", certificate_arn) - pulumi.set(__self__, "listener_arn", listener_arn) + ListenerCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + listener_arn=listener_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if listener_arn is None: + raise TypeError("Missing 'listener_arn' argument") + + _setter("certificate_arn", certificate_arn) + _setter("listener_arn", listener_arn) @property @pulumi.getter(name="certificateArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_arn: The ARN of the certificate to attach to the listener. :param pulumi.Input[str] listener_arn: The ARN of the listener to which to attach the certificate. """ + _ListenerCertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + listener_arn=listener_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if listener_arn is not None: - pulumi.set(__self__, "listener_arn", listener_arn) + _setter("listener_arn", listener_arn) @property @pulumi.getter(name="certificateArn") @@ -182,6 +220,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerCertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/alb/listener_rule.py b/sdk/python/pulumi_aws/alb/listener_rule.py index 43450f03a2b..3944a8da517 100644 --- a/sdk/python/pulumi_aws/alb/listener_rule.py +++ b/sdk/python/pulumi_aws/alb/listener_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,40 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The priority for the rule between `1` and `50000`. Leaving it unset will automatically set the rule with next available priority after currently existing highest rule. A listener can't have multiple rules with the same priority. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "conditions", conditions) - pulumi.set(__self__, "listener_arn", listener_arn) + ListenerRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + conditions=conditions, + listener_arn=listener_arn, + priority=priority, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleActionArgs']]]] = None, + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleConditionArgs']]]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if conditions is None: + raise TypeError("Missing 'conditions' argument") + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if listener_arn is None: + raise TypeError("Missing 'listener_arn' argument") + + _setter("actions", actions) + _setter("conditions", conditions) + _setter("listener_arn", listener_arn) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -118,23 +145,50 @@ def __init__(__self__, *, :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. """ + _ListenerRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + arn=arn, + conditions=conditions, + listener_arn=listener_arn, + priority=priority, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleActionArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleConditionArgs']]]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if actions is not None: - pulumi.set(__self__, "actions", actions) + _setter("actions", actions) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if conditions is not None: - pulumi.set(__self__, "conditions", conditions) + _setter("conditions", conditions) if listener_arn is not None: - pulumi.set(__self__, "listener_arn", listener_arn) + _setter("listener_arn", listener_arn) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -593,6 +647,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/alb/load_balancer.py b/sdk/python/pulumi_aws/alb/load_balancer.py index e6ec14f4f12..26a28094df0 100644 --- a/sdk/python/pulumi_aws/alb/load_balancer.py +++ b/sdk/python/pulumi_aws/alb/load_balancer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -67,50 +67,139 @@ def __init__(__self__, *, :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] xff_header_processing_mode: Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`. """ + LoadBalancerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_logs=access_logs, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + desync_mitigation_mode=desync_mitigation_mode, + drop_invalid_header_fields=drop_invalid_header_fields, + enable_cross_zone_load_balancing=enable_cross_zone_load_balancing, + enable_deletion_protection=enable_deletion_protection, + enable_http2=enable_http2, + enable_tls_version_and_cipher_suite_headers=enable_tls_version_and_cipher_suite_headers, + enable_waf_fail_open=enable_waf_fail_open, + enable_xff_client_port=enable_xff_client_port, + idle_timeout=idle_timeout, + internal=internal, + ip_address_type=ip_address_type, + load_balancer_type=load_balancer_type, + name=name, + name_prefix=name_prefix, + preserve_host_header=preserve_host_header, + security_groups=security_groups, + subnet_mappings=subnet_mappings, + subnets=subnets, + tags=tags, + xff_header_processing_mode=xff_header_processing_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_logs: Optional[pulumi.Input['LoadBalancerAccessLogsArgs']] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, + enable_cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, + enable_deletion_protection: Optional[pulumi.Input[bool]] = None, + enable_http2: Optional[pulumi.Input[bool]] = None, + enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, + enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, + enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + idle_timeout: Optional[pulumi.Input[int]] = None, + internal: Optional[pulumi.Input[bool]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + load_balancer_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + preserve_host_header: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerSubnetMappingArgs']]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + xff_header_processing_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if desync_mitigation_mode is None and 'desyncMitigationMode' in kwargs: + desync_mitigation_mode = kwargs['desyncMitigationMode'] + if drop_invalid_header_fields is None and 'dropInvalidHeaderFields' in kwargs: + drop_invalid_header_fields = kwargs['dropInvalidHeaderFields'] + if enable_cross_zone_load_balancing is None and 'enableCrossZoneLoadBalancing' in kwargs: + enable_cross_zone_load_balancing = kwargs['enableCrossZoneLoadBalancing'] + if enable_deletion_protection is None and 'enableDeletionProtection' in kwargs: + enable_deletion_protection = kwargs['enableDeletionProtection'] + if enable_http2 is None and 'enableHttp2' in kwargs: + enable_http2 = kwargs['enableHttp2'] + if enable_tls_version_and_cipher_suite_headers is None and 'enableTlsVersionAndCipherSuiteHeaders' in kwargs: + enable_tls_version_and_cipher_suite_headers = kwargs['enableTlsVersionAndCipherSuiteHeaders'] + if enable_waf_fail_open is None and 'enableWafFailOpen' in kwargs: + enable_waf_fail_open = kwargs['enableWafFailOpen'] + if enable_xff_client_port is None and 'enableXffClientPort' in kwargs: + enable_xff_client_port = kwargs['enableXffClientPort'] + if idle_timeout is None and 'idleTimeout' in kwargs: + idle_timeout = kwargs['idleTimeout'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if load_balancer_type is None and 'loadBalancerType' in kwargs: + load_balancer_type = kwargs['loadBalancerType'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if preserve_host_header is None and 'preserveHostHeader' in kwargs: + preserve_host_header = kwargs['preserveHostHeader'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if subnet_mappings is None and 'subnetMappings' in kwargs: + subnet_mappings = kwargs['subnetMappings'] + if xff_header_processing_mode is None and 'xffHeaderProcessingMode' in kwargs: + xff_header_processing_mode = kwargs['xffHeaderProcessingMode'] + if access_logs is not None: - pulumi.set(__self__, "access_logs", access_logs) + _setter("access_logs", access_logs) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if desync_mitigation_mode is not None: - pulumi.set(__self__, "desync_mitigation_mode", desync_mitigation_mode) + _setter("desync_mitigation_mode", desync_mitigation_mode) if drop_invalid_header_fields is not None: - pulumi.set(__self__, "drop_invalid_header_fields", drop_invalid_header_fields) + _setter("drop_invalid_header_fields", drop_invalid_header_fields) if enable_cross_zone_load_balancing is not None: - pulumi.set(__self__, "enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) + _setter("enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) if enable_deletion_protection is not None: - pulumi.set(__self__, "enable_deletion_protection", enable_deletion_protection) + _setter("enable_deletion_protection", enable_deletion_protection) if enable_http2 is not None: - pulumi.set(__self__, "enable_http2", enable_http2) + _setter("enable_http2", enable_http2) if enable_tls_version_and_cipher_suite_headers is not None: - pulumi.set(__self__, "enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) + _setter("enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) if enable_waf_fail_open is not None: - pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) + _setter("enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: - pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + _setter("enable_xff_client_port", enable_xff_client_port) if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + _setter("idle_timeout", idle_timeout) if internal is not None: - pulumi.set(__self__, "internal", internal) + _setter("internal", internal) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if load_balancer_type is not None: - pulumi.set(__self__, "load_balancer_type", load_balancer_type) + _setter("load_balancer_type", load_balancer_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if preserve_host_header is not None: - pulumi.set(__self__, "preserve_host_header", preserve_host_header) + _setter("preserve_host_header", preserve_host_header) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnet_mappings is not None: - pulumi.set(__self__, "subnet_mappings", subnet_mappings) + _setter("subnet_mappings", subnet_mappings) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if xff_header_processing_mode is not None: - pulumi.set(__self__, "xff_header_processing_mode", xff_header_processing_mode) + _setter("xff_header_processing_mode", xff_header_processing_mode) @property @pulumi.getter(name="accessLogs") @@ -446,65 +535,176 @@ def __init__(__self__, *, :param pulumi.Input[str] xff_header_processing_mode: Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`. :param pulumi.Input[str] zone_id: The canonical hosted zone ID of the load balancer (to be used in a Route 53 Alias record). """ + _LoadBalancerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_logs=access_logs, + arn=arn, + arn_suffix=arn_suffix, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + desync_mitigation_mode=desync_mitigation_mode, + dns_name=dns_name, + drop_invalid_header_fields=drop_invalid_header_fields, + enable_cross_zone_load_balancing=enable_cross_zone_load_balancing, + enable_deletion_protection=enable_deletion_protection, + enable_http2=enable_http2, + enable_tls_version_and_cipher_suite_headers=enable_tls_version_and_cipher_suite_headers, + enable_waf_fail_open=enable_waf_fail_open, + enable_xff_client_port=enable_xff_client_port, + idle_timeout=idle_timeout, + internal=internal, + ip_address_type=ip_address_type, + load_balancer_type=load_balancer_type, + name=name, + name_prefix=name_prefix, + preserve_host_header=preserve_host_header, + security_groups=security_groups, + subnet_mappings=subnet_mappings, + subnets=subnets, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + xff_header_processing_mode=xff_header_processing_mode, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_logs: Optional[pulumi.Input['LoadBalancerAccessLogsArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + arn_suffix: Optional[pulumi.Input[str]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, + enable_cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, + enable_deletion_protection: Optional[pulumi.Input[bool]] = None, + enable_http2: Optional[pulumi.Input[bool]] = None, + enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, + enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, + enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + idle_timeout: Optional[pulumi.Input[int]] = None, + internal: Optional[pulumi.Input[bool]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + load_balancer_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + preserve_host_header: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerSubnetMappingArgs']]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + xff_header_processing_mode: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if arn_suffix is None and 'arnSuffix' in kwargs: + arn_suffix = kwargs['arnSuffix'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if desync_mitigation_mode is None and 'desyncMitigationMode' in kwargs: + desync_mitigation_mode = kwargs['desyncMitigationMode'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if drop_invalid_header_fields is None and 'dropInvalidHeaderFields' in kwargs: + drop_invalid_header_fields = kwargs['dropInvalidHeaderFields'] + if enable_cross_zone_load_balancing is None and 'enableCrossZoneLoadBalancing' in kwargs: + enable_cross_zone_load_balancing = kwargs['enableCrossZoneLoadBalancing'] + if enable_deletion_protection is None and 'enableDeletionProtection' in kwargs: + enable_deletion_protection = kwargs['enableDeletionProtection'] + if enable_http2 is None and 'enableHttp2' in kwargs: + enable_http2 = kwargs['enableHttp2'] + if enable_tls_version_and_cipher_suite_headers is None and 'enableTlsVersionAndCipherSuiteHeaders' in kwargs: + enable_tls_version_and_cipher_suite_headers = kwargs['enableTlsVersionAndCipherSuiteHeaders'] + if enable_waf_fail_open is None and 'enableWafFailOpen' in kwargs: + enable_waf_fail_open = kwargs['enableWafFailOpen'] + if enable_xff_client_port is None and 'enableXffClientPort' in kwargs: + enable_xff_client_port = kwargs['enableXffClientPort'] + if idle_timeout is None and 'idleTimeout' in kwargs: + idle_timeout = kwargs['idleTimeout'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if load_balancer_type is None and 'loadBalancerType' in kwargs: + load_balancer_type = kwargs['loadBalancerType'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if preserve_host_header is None and 'preserveHostHeader' in kwargs: + preserve_host_header = kwargs['preserveHostHeader'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if subnet_mappings is None and 'subnetMappings' in kwargs: + subnet_mappings = kwargs['subnetMappings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if xff_header_processing_mode is None and 'xffHeaderProcessingMode' in kwargs: + xff_header_processing_mode = kwargs['xffHeaderProcessingMode'] + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if access_logs is not None: - pulumi.set(__self__, "access_logs", access_logs) + _setter("access_logs", access_logs) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if arn_suffix is not None: - pulumi.set(__self__, "arn_suffix", arn_suffix) + _setter("arn_suffix", arn_suffix) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if desync_mitigation_mode is not None: - pulumi.set(__self__, "desync_mitigation_mode", desync_mitigation_mode) + _setter("desync_mitigation_mode", desync_mitigation_mode) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if drop_invalid_header_fields is not None: - pulumi.set(__self__, "drop_invalid_header_fields", drop_invalid_header_fields) + _setter("drop_invalid_header_fields", drop_invalid_header_fields) if enable_cross_zone_load_balancing is not None: - pulumi.set(__self__, "enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) + _setter("enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) if enable_deletion_protection is not None: - pulumi.set(__self__, "enable_deletion_protection", enable_deletion_protection) + _setter("enable_deletion_protection", enable_deletion_protection) if enable_http2 is not None: - pulumi.set(__self__, "enable_http2", enable_http2) + _setter("enable_http2", enable_http2) if enable_tls_version_and_cipher_suite_headers is not None: - pulumi.set(__self__, "enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) + _setter("enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) if enable_waf_fail_open is not None: - pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) + _setter("enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: - pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + _setter("enable_xff_client_port", enable_xff_client_port) if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + _setter("idle_timeout", idle_timeout) if internal is not None: - pulumi.set(__self__, "internal", internal) + _setter("internal", internal) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if load_balancer_type is not None: - pulumi.set(__self__, "load_balancer_type", load_balancer_type) + _setter("load_balancer_type", load_balancer_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if preserve_host_header is not None: - pulumi.set(__self__, "preserve_host_header", preserve_host_header) + _setter("preserve_host_header", preserve_host_header) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnet_mappings is not None: - pulumi.set(__self__, "subnet_mappings", subnet_mappings) + _setter("subnet_mappings", subnet_mappings) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if xff_header_processing_mode is not None: - pulumi.set(__self__, "xff_header_processing_mode", xff_header_processing_mode) + _setter("xff_header_processing_mode", xff_header_processing_mode) if zone_id is not None: - pulumi.set(__self__, "zone_id", zone_id) + _setter("zone_id", zone_id) @property @pulumi.getter(name="accessLogs") @@ -1098,6 +1298,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LoadBalancerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1134,6 +1338,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = LoadBalancerArgs.__new__(LoadBalancerArgs) + access_logs = _utilities.configure(access_logs, LoadBalancerAccessLogsArgs, True) __props__.__dict__["access_logs"] = access_logs __props__.__dict__["customer_owned_ipv4_pool"] = customer_owned_ipv4_pool __props__.__dict__["desync_mitigation_mode"] = desync_mitigation_mode diff --git a/sdk/python/pulumi_aws/alb/outputs.py b/sdk/python/pulumi_aws/alb/outputs.py index 7d42044b6a8..ec523c40773 100644 --- a/sdk/python/pulumi_aws/alb/outputs.py +++ b/sdk/python/pulumi_aws/alb/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -100,21 +100,56 @@ def __init__(__self__, *, :param 'ListenerDefaultActionRedirectArgs' redirect: Configuration block for creating a redirect action. Required if `type` is `redirect`. Detailed below. :param str target_group_arn: ARN of the Target Group to which to route traffic. Specify only if `type` is `forward` and you want to route to a single target group. To route to one or more target groups, use a `forward` block instead. """ - pulumi.set(__self__, "type", type) + ListenerDefaultAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + authenticate_cognito=authenticate_cognito, + authenticate_oidc=authenticate_oidc, + fixed_response=fixed_response, + forward=forward, + order=order, + redirect=redirect, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + authenticate_cognito: Optional['outputs.ListenerDefaultActionAuthenticateCognito'] = None, + authenticate_oidc: Optional['outputs.ListenerDefaultActionAuthenticateOidc'] = None, + fixed_response: Optional['outputs.ListenerDefaultActionFixedResponse'] = None, + forward: Optional['outputs.ListenerDefaultActionForward'] = None, + order: Optional[int] = None, + redirect: Optional['outputs.ListenerDefaultActionRedirect'] = None, + target_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if authenticate_cognito is None and 'authenticateCognito' in kwargs: + authenticate_cognito = kwargs['authenticateCognito'] + if authenticate_oidc is None and 'authenticateOidc' in kwargs: + authenticate_oidc = kwargs['authenticateOidc'] + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("type", type) if authenticate_cognito is not None: - pulumi.set(__self__, "authenticate_cognito", authenticate_cognito) + _setter("authenticate_cognito", authenticate_cognito) if authenticate_oidc is not None: - pulumi.set(__self__, "authenticate_oidc", authenticate_oidc) + _setter("authenticate_oidc", authenticate_oidc) if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) if order is not None: - pulumi.set(__self__, "order", order) + _setter("order", order) if redirect is not None: - pulumi.set(__self__, "redirect", redirect) + _setter("redirect", redirect) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter @@ -235,19 +270,64 @@ def __init__(__self__, *, :param str session_cookie_name: Name of the cookie used to maintain session information. :param int session_timeout: Maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + ListenerDefaultActionAuthenticateCognito._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_arn: Optional[str] = None, + user_pool_client_id: Optional[str] = None, + user_pool_domain: Optional[str] = None, + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="userPoolArn") @@ -378,22 +458,83 @@ def __init__(__self__, *, :param str session_cookie_name: Name of the cookie used to maintain session information. :param int session_timeout: Maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + ListenerDefaultActionAuthenticateOidc._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[str] = None, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + issuer: Optional[str] = None, + token_endpoint: Optional[str] = None, + user_info_endpoint: Optional[str] = None, + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="authorizationEndpoint") @@ -520,11 +661,34 @@ def __init__(__self__, *, :param str message_body: Message body. :param str status_code: HTTP response code. Valid values are `2XX`, `4XX`, or `5XX`. """ - pulumi.set(__self__, "content_type", content_type) + ListenerDefaultActionFixedResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[str] = None, + message_body: Optional[str] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("content_type", content_type) if message_body is not None: - pulumi.set(__self__, "message_body", message_body) + _setter("message_body", message_body) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -581,9 +745,26 @@ def __init__(__self__, *, The following arguments are optional: :param 'ListenerDefaultActionForwardStickinessArgs' stickiness: Configuration block for target group stickiness for the rule. Detailed below. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerDefaultActionForward._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + stickiness=stickiness, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[Sequence['outputs.ListenerDefaultActionForwardTargetGroup']] = None, + stickiness: Optional['outputs.ListenerDefaultActionForwardStickiness'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) @property @pulumi.getter(name="targetGroups") @@ -615,9 +796,24 @@ def __init__(__self__, *, The following arguments are optional: :param bool enabled: Whether target group stickiness is enabled. Default is `false`. """ - pulumi.set(__self__, "duration", duration) + ListenerDefaultActionForwardStickiness._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[int] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + + _setter("duration", duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -649,9 +845,24 @@ def __init__(__self__, *, The following arguments are optional: :param int weight: Weight. The range is 0 to 999. """ - pulumi.set(__self__, "arn", arn) + ListenerDefaultActionForwardTargetGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter @@ -708,17 +919,42 @@ def __init__(__self__, *, :param str protocol: Protocol. Valid values are `HTTP`, `HTTPS`, or `#{protocol}`. Defaults to `#{protocol}`. :param str query: Query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?". Defaults to `#{query}`. """ - pulumi.set(__self__, "status_code", status_code) + ListenerDefaultActionRedirect._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[str] = None, + host: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + query: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if query is not None: - pulumi.set(__self__, "query", query) + _setter("query", query) @property @pulumi.getter(name="statusCode") @@ -814,21 +1050,56 @@ def __init__(__self__, *, :param 'ListenerRuleActionRedirectArgs' redirect: Information for creating a redirect action. Required if `type` is `redirect`. :param str target_group_arn: The ARN of the Target Group to which to route traffic. Specify only if `type` is `forward` and you want to route to a single target group. To route to one or more target groups, use a `forward` block instead. """ - pulumi.set(__self__, "type", type) + ListenerRuleAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + authenticate_cognito=authenticate_cognito, + authenticate_oidc=authenticate_oidc, + fixed_response=fixed_response, + forward=forward, + order=order, + redirect=redirect, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + authenticate_cognito: Optional['outputs.ListenerRuleActionAuthenticateCognito'] = None, + authenticate_oidc: Optional['outputs.ListenerRuleActionAuthenticateOidc'] = None, + fixed_response: Optional['outputs.ListenerRuleActionFixedResponse'] = None, + forward: Optional['outputs.ListenerRuleActionForward'] = None, + order: Optional[int] = None, + redirect: Optional['outputs.ListenerRuleActionRedirect'] = None, + target_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if authenticate_cognito is None and 'authenticateCognito' in kwargs: + authenticate_cognito = kwargs['authenticateCognito'] + if authenticate_oidc is None and 'authenticateOidc' in kwargs: + authenticate_oidc = kwargs['authenticateOidc'] + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("type", type) if authenticate_cognito is not None: - pulumi.set(__self__, "authenticate_cognito", authenticate_cognito) + _setter("authenticate_cognito", authenticate_cognito) if authenticate_oidc is not None: - pulumi.set(__self__, "authenticate_oidc", authenticate_oidc) + _setter("authenticate_oidc", authenticate_oidc) if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) if order is not None: - pulumi.set(__self__, "order", order) + _setter("order", order) if redirect is not None: - pulumi.set(__self__, "redirect", redirect) + _setter("redirect", redirect) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter @@ -942,19 +1213,64 @@ def __init__(__self__, *, :param str session_cookie_name: The name of the cookie used to maintain session information. :param int session_timeout: The maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + ListenerRuleActionAuthenticateCognito._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_arn: Optional[str] = None, + user_pool_client_id: Optional[str] = None, + user_pool_domain: Optional[str] = None, + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="userPoolArn") @@ -1081,22 +1397,83 @@ def __init__(__self__, *, :param str session_cookie_name: The name of the cookie used to maintain session information. :param int session_timeout: The maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + ListenerRuleActionAuthenticateOidc._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[str] = None, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + issuer: Optional[str] = None, + token_endpoint: Optional[str] = None, + user_info_endpoint: Optional[str] = None, + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="authorizationEndpoint") @@ -1219,11 +1596,34 @@ def __init__(__self__, *, :param str message_body: The message body. :param str status_code: The HTTP response code. Valid values are `2XX`, `4XX`, or `5XX`. """ - pulumi.set(__self__, "content_type", content_type) + ListenerRuleActionFixedResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[str] = None, + message_body: Optional[str] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("content_type", content_type) if message_body is not None: - pulumi.set(__self__, "message_body", message_body) + _setter("message_body", message_body) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -1276,9 +1676,26 @@ def __init__(__self__, *, :param Sequence['ListenerRuleActionForwardTargetGroupArgs'] target_groups: One or more target groups block. :param 'ListenerRuleActionForwardStickinessArgs' stickiness: The target group stickiness for the rule. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerRuleActionForward._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + stickiness=stickiness, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[Sequence['outputs.ListenerRuleActionForwardTargetGroup']] = None, + stickiness: Optional['outputs.ListenerRuleActionForwardStickiness'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) @property @pulumi.getter(name="targetGroups") @@ -1306,9 +1723,24 @@ def __init__(__self__, *, :param int duration: The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). :param bool enabled: Indicates whether target group stickiness is enabled. """ - pulumi.set(__self__, "duration", duration) + ListenerRuleActionForwardStickiness._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[int] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + + _setter("duration", duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1336,9 +1768,24 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the target group. :param int weight: The weight. The range is 0 to 999. """ - pulumi.set(__self__, "arn", arn) + ListenerRuleActionForwardTargetGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter @@ -1391,17 +1838,42 @@ def __init__(__self__, *, :param str protocol: The protocol. Valid values are `HTTP`, `HTTPS`, or `#{protocol}`. Defaults to `#{protocol}`. :param str query: The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?". Defaults to `#{query}`. """ - pulumi.set(__self__, "status_code", status_code) + ListenerRuleActionRedirect._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[str] = None, + host: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + query: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if query is not None: - pulumi.set(__self__, "query", query) + _setter("query", query) @property @pulumi.getter(name="statusCode") @@ -1498,18 +1970,51 @@ def __init__(__self__, *, > **NOTE::** Exactly one of `host_header`, `http_header`, `http_request_method`, `path_pattern`, `query_string` or `source_ip` must be set per condition. """ + ListenerRuleCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + host_header=host_header, + http_header=http_header, + http_request_method=http_request_method, + path_pattern=path_pattern, + query_strings=query_strings, + source_ip=source_ip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host_header: Optional['outputs.ListenerRuleConditionHostHeader'] = None, + http_header: Optional['outputs.ListenerRuleConditionHttpHeader'] = None, + http_request_method: Optional['outputs.ListenerRuleConditionHttpRequestMethod'] = None, + path_pattern: Optional['outputs.ListenerRuleConditionPathPattern'] = None, + query_strings: Optional[Sequence['outputs.ListenerRuleConditionQueryString']] = None, + source_ip: Optional['outputs.ListenerRuleConditionSourceIp'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_header is None and 'hostHeader' in kwargs: + host_header = kwargs['hostHeader'] + if http_header is None and 'httpHeader' in kwargs: + http_header = kwargs['httpHeader'] + if http_request_method is None and 'httpRequestMethod' in kwargs: + http_request_method = kwargs['httpRequestMethod'] + if path_pattern is None and 'pathPattern' in kwargs: + path_pattern = kwargs['pathPattern'] + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if source_ip is None and 'sourceIp' in kwargs: + source_ip = kwargs['sourceIp'] + if host_header is not None: - pulumi.set(__self__, "host_header", host_header) + _setter("host_header", host_header) if http_header is not None: - pulumi.set(__self__, "http_header", http_header) + _setter("http_header", http_header) if http_request_method is not None: - pulumi.set(__self__, "http_request_method", http_request_method) + _setter("http_request_method", http_request_method) if path_pattern is not None: - pulumi.set(__self__, "path_pattern", path_pattern) + _setter("path_pattern", path_pattern) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) if source_ip is not None: - pulumi.set(__self__, "source_ip", source_ip) + _setter("source_ip", source_ip) @property @pulumi.getter(name="hostHeader") @@ -1568,20 +2073,27 @@ def __init__(__self__, *, values: Sequence[str]): """ :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionHostHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> Sequence[str]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1612,8 +2124,27 @@ def __init__(__self__, *, :param str http_header_name: Name of HTTP header to search. The maximum size is 40 characters. Comparison is case insensitive. Only RFC7240 characters are supported. Wildcards are not supported. You cannot use HTTP header condition to specify the host header, use a `host-header` condition instead. :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. """ - pulumi.set(__self__, "http_header_name", http_header_name) - pulumi.set(__self__, "values", values) + ListenerRuleConditionHttpHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_header_name=http_header_name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_header_name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_header_name is None and 'httpHeaderName' in kwargs: + http_header_name = kwargs['httpHeaderName'] + if http_header_name is None: + raise TypeError("Missing 'http_header_name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("http_header_name", http_header_name) + _setter("values", values) @property @pulumi.getter(name="httpHeaderName") @@ -1638,20 +2169,27 @@ def __init__(__self__, *, values: Sequence[str]): """ :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionHttpRequestMethod._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> Sequence[str]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1662,20 +2200,27 @@ def __init__(__self__, *, values: Sequence[str]): """ :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionPathPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> Sequence[str]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1689,9 +2234,24 @@ def __init__(__self__, *, :param str value: Query string value pattern to match. :param str key: Query string key pattern to match. """ - pulumi.set(__self__, "value", value) + ListenerRuleConditionQueryString._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1716,20 +2276,27 @@ def __init__(__self__, *, values: Sequence[str]): """ :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionSourceIp._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> Sequence[str]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1745,11 +2312,28 @@ def __init__(__self__, *, :param bool enabled: Boolean to enable / disable `access_logs`. Defaults to `false`, even when `bucket` is specified. :param str prefix: The S3 bucket prefix. Logs are stored in the root if not configured. """ - pulumi.set(__self__, "bucket", bucket) + LoadBalancerAccessLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + enabled=enabled, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + enabled: Optional[bool] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -1815,15 +2399,46 @@ def __init__(__self__, *, :param str ipv6_address: The IPv6 address. You associate IPv6 CIDR blocks with your VPC and choose the subnets where you launch both internet-facing and internal Application Load Balancers or Network Load Balancers. :param str private_ipv4_address: The private IPv4 address for an internal load balancer. """ - pulumi.set(__self__, "subnet_id", subnet_id) + LoadBalancerSubnetMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + allocation_id=allocation_id, + ipv6_address=ipv6_address, + outpost_id=outpost_id, + private_ipv4_address=private_ipv4_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[str] = None, + allocation_id: Optional[str] = None, + ipv6_address: Optional[str] = None, + outpost_id: Optional[str] = None, + private_ipv4_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if ipv6_address is None and 'ipv6Address' in kwargs: + ipv6_address = kwargs['ipv6Address'] + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if private_ipv4_address is None and 'privateIpv4Address' in kwargs: + private_ipv4_address = kwargs['privateIpv4Address'] + + _setter("subnet_id", subnet_id) if allocation_id is not None: - pulumi.set(__self__, "allocation_id", allocation_id) + _setter("allocation_id", allocation_id) if ipv6_address is not None: - pulumi.set(__self__, "ipv6_address", ipv6_address) + _setter("ipv6_address", ipv6_address) if outpost_id is not None: - pulumi.set(__self__, "outpost_id", outpost_id) + _setter("outpost_id", outpost_id) if private_ipv4_address is not None: - pulumi.set(__self__, "private_ipv4_address", private_ipv4_address) + _setter("private_ipv4_address", private_ipv4_address) @property @pulumi.getter(name="subnetId") @@ -1905,24 +2520,55 @@ def __init__(__self__, *, :param int timeout: Amount of time, in seconds, during which no response from a target means a failed health check. The range is 2–120 seconds. For target groups with a protocol of HTTP, the default is 6 seconds. For target groups with a protocol of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol of GENEVE, the default is 5 seconds. If the target type is lambda, the default is 30 seconds. :param int unhealthy_threshold: Number of consecutive health check failures required before considering a target unhealthy. The range is 2-10. Defaults to 3. """ + TargetGroupHealthCheck._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + healthy_threshold=healthy_threshold, + interval=interval, + matcher=matcher, + path=path, + port=port, + protocol=protocol, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + healthy_threshold: Optional[int] = None, + interval: Optional[int] = None, + matcher: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + timeout: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if healthy_threshold is not None: - pulumi.set(__self__, "healthy_threshold", healthy_threshold) + _setter("healthy_threshold", healthy_threshold) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if matcher is not None: - pulumi.set(__self__, "matcher", matcher) + _setter("matcher", matcher) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if unhealthy_threshold is not None: - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter @@ -2029,13 +2675,36 @@ def __init__(__self__, *, :param str cookie_name: Name of the application based cookie. AWSALB, AWSALBAPP, and AWSALBTG prefixes are reserved and cannot be used. Only needed when type is `app_cookie`. :param bool enabled: Boolean to enable / disable `stickiness`. Default is `true`. """ - pulumi.set(__self__, "type", type) + TargetGroupStickiness._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + cookie_duration=cookie_duration, + cookie_name=cookie_name, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + cookie_duration: Optional[int] = None, + cookie_name: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if cookie_duration is None and 'cookieDuration' in kwargs: + cookie_duration = kwargs['cookieDuration'] + if cookie_name is None and 'cookieName' in kwargs: + cookie_name = kwargs['cookieName'] + + _setter("type", type) if cookie_duration is not None: - pulumi.set(__self__, "cookie_duration", cookie_duration) + _setter("cookie_duration", cookie_duration) if cookie_name is not None: - pulumi.set(__self__, "cookie_name", cookie_name) + _setter("cookie_name", cookie_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -2098,8 +2767,29 @@ def __init__(__self__, *, :param str on_deregistration: Indicates how the GWLB handles existing flows when a target is deregistered. Possible values are `rebalance` and `no_rebalance`. Must match the attribute value set for `on_unhealthy`. Default: `no_rebalance`. :param str on_unhealthy: Indicates how the GWLB handles existing flows when a target is unhealthy. Possible values are `rebalance` and `no_rebalance`. Must match the attribute value set for `on_deregistration`. Default: `no_rebalance`. """ - pulumi.set(__self__, "on_deregistration", on_deregistration) - pulumi.set(__self__, "on_unhealthy", on_unhealthy) + TargetGroupTargetFailover._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_deregistration=on_deregistration, + on_unhealthy=on_unhealthy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_deregistration: Optional[str] = None, + on_unhealthy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_deregistration is None and 'onDeregistration' in kwargs: + on_deregistration = kwargs['onDeregistration'] + if on_deregistration is None: + raise TypeError("Missing 'on_deregistration' argument") + if on_unhealthy is None and 'onUnhealthy' in kwargs: + on_unhealthy = kwargs['onUnhealthy'] + if on_unhealthy is None: + raise TypeError("Missing 'on_unhealthy' argument") + + _setter("on_deregistration", on_deregistration) + _setter("on_unhealthy", on_unhealthy) @property @pulumi.getter(name="onDeregistration") @@ -2129,14 +2819,63 @@ def __init__(__self__, *, redirects: Sequence['outputs.GetListenerDefaultActionRedirectResult'], target_group_arn: str, type: str): - pulumi.set(__self__, "authenticate_cognitos", authenticate_cognitos) - pulumi.set(__self__, "authenticate_oidcs", authenticate_oidcs) - pulumi.set(__self__, "fixed_responses", fixed_responses) - pulumi.set(__self__, "forwards", forwards) - pulumi.set(__self__, "order", order) - pulumi.set(__self__, "redirects", redirects) - pulumi.set(__self__, "target_group_arn", target_group_arn) - pulumi.set(__self__, "type", type) + GetListenerDefaultActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + authenticate_cognitos=authenticate_cognitos, + authenticate_oidcs=authenticate_oidcs, + fixed_responses=fixed_responses, + forwards=forwards, + order=order, + redirects=redirects, + target_group_arn=target_group_arn, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authenticate_cognitos: Optional[Sequence['outputs.GetListenerDefaultActionAuthenticateCognitoResult']] = None, + authenticate_oidcs: Optional[Sequence['outputs.GetListenerDefaultActionAuthenticateOidcResult']] = None, + fixed_responses: Optional[Sequence['outputs.GetListenerDefaultActionFixedResponseResult']] = None, + forwards: Optional[Sequence['outputs.GetListenerDefaultActionForwardResult']] = None, + order: Optional[int] = None, + redirects: Optional[Sequence['outputs.GetListenerDefaultActionRedirectResult']] = None, + target_group_arn: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authenticate_cognitos is None and 'authenticateCognitos' in kwargs: + authenticate_cognitos = kwargs['authenticateCognitos'] + if authenticate_cognitos is None: + raise TypeError("Missing 'authenticate_cognitos' argument") + if authenticate_oidcs is None and 'authenticateOidcs' in kwargs: + authenticate_oidcs = kwargs['authenticateOidcs'] + if authenticate_oidcs is None: + raise TypeError("Missing 'authenticate_oidcs' argument") + if fixed_responses is None and 'fixedResponses' in kwargs: + fixed_responses = kwargs['fixedResponses'] + if fixed_responses is None: + raise TypeError("Missing 'fixed_responses' argument") + if forwards is None: + raise TypeError("Missing 'forwards' argument") + if order is None: + raise TypeError("Missing 'order' argument") + if redirects is None: + raise TypeError("Missing 'redirects' argument") + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + if target_group_arn is None: + raise TypeError("Missing 'target_group_arn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("authenticate_cognitos", authenticate_cognitos) + _setter("authenticate_oidcs", authenticate_oidcs) + _setter("fixed_responses", fixed_responses) + _setter("forwards", forwards) + _setter("order", order) + _setter("redirects", redirects) + _setter("target_group_arn", target_group_arn) + _setter("type", type) @property @pulumi.getter(name="authenticateCognitos") @@ -2190,14 +2929,69 @@ def __init__(__self__, *, user_pool_arn: str, user_pool_client_id: str, user_pool_domain: str): - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) - pulumi.set(__self__, "scope", scope) - pulumi.set(__self__, "session_cookie_name", session_cookie_name) - pulumi.set(__self__, "session_timeout", session_timeout) - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + GetListenerDefaultActionAuthenticateCognitoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + user_pool_arn: Optional[str] = None, + user_pool_client_id: Optional[str] = None, + user_pool_domain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if authentication_request_extra_params is None: + raise TypeError("Missing 'authentication_request_extra_params' argument") + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if on_unauthenticated_request is None: + raise TypeError("Missing 'on_unauthenticated_request' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_cookie_name is None: + raise TypeError("Missing 'session_cookie_name' argument") + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + if session_timeout is None: + raise TypeError("Missing 'session_timeout' argument") + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + + _setter("authentication_request_extra_params", authentication_request_extra_params) + _setter("on_unauthenticated_request", on_unauthenticated_request) + _setter("scope", scope) + _setter("session_cookie_name", session_cookie_name) + _setter("session_timeout", session_timeout) + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) @property @pulumi.getter(name="authenticationRequestExtraParams") @@ -2254,17 +3048,88 @@ def __init__(__self__, *, session_timeout: int, token_endpoint: str, user_info_endpoint: str): - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) - pulumi.set(__self__, "scope", scope) - pulumi.set(__self__, "session_cookie_name", session_cookie_name) - pulumi.set(__self__, "session_timeout", session_timeout) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + GetListenerDefaultActionAuthenticateOidcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_request_extra_params=authentication_request_extra_params, + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + authorization_endpoint: Optional[str] = None, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + issuer: Optional[str] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + token_endpoint: Optional[str] = None, + user_info_endpoint: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if authentication_request_extra_params is None: + raise TypeError("Missing 'authentication_request_extra_params' argument") + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if on_unauthenticated_request is None: + raise TypeError("Missing 'on_unauthenticated_request' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_cookie_name is None: + raise TypeError("Missing 'session_cookie_name' argument") + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + if session_timeout is None: + raise TypeError("Missing 'session_timeout' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + + _setter("authentication_request_extra_params", authentication_request_extra_params) + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("on_unauthenticated_request", on_unauthenticated_request) + _setter("scope", scope) + _setter("session_cookie_name", session_cookie_name) + _setter("session_timeout", session_timeout) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) @property @pulumi.getter(name="authenticationRequestExtraParams") @@ -2328,9 +3193,36 @@ def __init__(__self__, *, content_type: str, message_body: str, status_code: str): - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "message_body", message_body) - pulumi.set(__self__, "status_code", status_code) + GetListenerDefaultActionFixedResponseResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[str] = None, + message_body: Optional[str] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if message_body is None: + raise TypeError("Missing 'message_body' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("content_type", content_type) + _setter("message_body", message_body) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -2353,8 +3245,27 @@ class GetListenerDefaultActionForwardResult(dict): def __init__(__self__, *, stickinesses: Sequence['outputs.GetListenerDefaultActionForwardStickinessResult'], target_groups: Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']): - pulumi.set(__self__, "stickinesses", stickinesses) - pulumi.set(__self__, "target_groups", target_groups) + GetListenerDefaultActionForwardResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + stickinesses=stickinesses, + target_groups=target_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stickinesses: Optional[Sequence['outputs.GetListenerDefaultActionForwardStickinessResult']] = None, + target_groups: Optional[Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stickinesses is None: + raise TypeError("Missing 'stickinesses' argument") + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("stickinesses", stickinesses) + _setter("target_groups", target_groups) @property @pulumi.getter @@ -2372,8 +3283,25 @@ class GetListenerDefaultActionForwardStickinessResult(dict): def __init__(__self__, *, duration: int, enabled: bool): - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "enabled", enabled) + GetListenerDefaultActionForwardStickinessResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[int] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("duration", duration) + _setter("enabled", enabled) @property @pulumi.getter @@ -2394,8 +3322,25 @@ def __init__(__self__, *, """ :param str arn: ARN of the listener. Required if `load_balancer_arn` and `port` is not set. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "weight", weight) + GetListenerDefaultActionForwardTargetGroupResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("arn", arn) + _setter("weight", weight) @property @pulumi.getter @@ -2423,12 +3368,47 @@ def __init__(__self__, *, """ :param str port: Port of the listener. Required if `arn` is not set. """ - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "path", path) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "query", query) - pulumi.set(__self__, "status_code", status_code) + GetListenerDefaultActionRedirectResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + query: Optional[str] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host is None: + raise TypeError("Missing 'host' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if query is None: + raise TypeError("Missing 'query' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("host", host) + _setter("path", path) + _setter("port", port) + _setter("protocol", protocol) + _setter("query", query) + _setter("status_code", status_code) @property @pulumi.getter @@ -2470,9 +3450,30 @@ def __init__(__self__, *, bucket: str, enabled: bool, prefix: str): - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "prefix", prefix) + GetLoadBalancerAccessLogsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + enabled=enabled, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + enabled: Optional[bool] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + + _setter("bucket", bucket) + _setter("enabled", enabled) + _setter("prefix", prefix) @property @pulumi.getter @@ -2498,11 +3499,50 @@ def __init__(__self__, *, outpost_id: str, private_ipv4_address: str, subnet_id: str): - pulumi.set(__self__, "allocation_id", allocation_id) - pulumi.set(__self__, "ipv6_address", ipv6_address) - pulumi.set(__self__, "outpost_id", outpost_id) - pulumi.set(__self__, "private_ipv4_address", private_ipv4_address) - pulumi.set(__self__, "subnet_id", subnet_id) + GetLoadBalancerSubnetMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_id=allocation_id, + ipv6_address=ipv6_address, + outpost_id=outpost_id, + private_ipv4_address=private_ipv4_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_id: Optional[str] = None, + ipv6_address: Optional[str] = None, + outpost_id: Optional[str] = None, + private_ipv4_address: Optional[str] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if allocation_id is None: + raise TypeError("Missing 'allocation_id' argument") + if ipv6_address is None and 'ipv6Address' in kwargs: + ipv6_address = kwargs['ipv6Address'] + if ipv6_address is None: + raise TypeError("Missing 'ipv6_address' argument") + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if outpost_id is None: + raise TypeError("Missing 'outpost_id' argument") + if private_ipv4_address is None and 'privateIpv4Address' in kwargs: + private_ipv4_address = kwargs['privateIpv4Address'] + if private_ipv4_address is None: + raise TypeError("Missing 'private_ipv4_address' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("allocation_id", allocation_id) + _setter("ipv6_address", ipv6_address) + _setter("outpost_id", outpost_id) + _setter("private_ipv4_address", private_ipv4_address) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="allocationId") @@ -2542,15 +3582,64 @@ def __init__(__self__, *, protocol: str, timeout: int, unhealthy_threshold: int): - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "matcher", matcher) - pulumi.set(__self__, "path", path) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "timeout", timeout) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + GetTargetGroupHealthCheckResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + healthy_threshold=healthy_threshold, + interval=interval, + matcher=matcher, + path=path, + port=port, + protocol=protocol, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + healthy_threshold: Optional[int] = None, + interval: Optional[int] = None, + matcher: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + timeout: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval is None: + raise TypeError("Missing 'interval' argument") + if matcher is None: + raise TypeError("Missing 'matcher' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if timeout is None: + raise TypeError("Missing 'timeout' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("enabled", enabled) + _setter("healthy_threshold", healthy_threshold) + _setter("interval", interval) + _setter("matcher", matcher) + _setter("path", path) + _setter("port", port) + _setter("protocol", protocol) + _setter("timeout", timeout) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter @@ -2605,10 +3694,39 @@ def __init__(__self__, *, cookie_name: str, enabled: bool, type: str): - pulumi.set(__self__, "cookie_duration", cookie_duration) - pulumi.set(__self__, "cookie_name", cookie_name) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "type", type) + GetTargetGroupStickinessResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_duration=cookie_duration, + cookie_name=cookie_name, + enabled=enabled, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_duration: Optional[int] = None, + cookie_name: Optional[str] = None, + enabled: Optional[bool] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_duration is None and 'cookieDuration' in kwargs: + cookie_duration = kwargs['cookieDuration'] + if cookie_duration is None: + raise TypeError("Missing 'cookie_duration' argument") + if cookie_name is None and 'cookieName' in kwargs: + cookie_name = kwargs['cookieName'] + if cookie_name is None: + raise TypeError("Missing 'cookie_name' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("cookie_duration", cookie_duration) + _setter("cookie_name", cookie_name) + _setter("enabled", enabled) + _setter("type", type) @property @pulumi.getter(name="cookieDuration") diff --git a/sdk/python/pulumi_aws/alb/target_group.py b/sdk/python/pulumi_aws/alb/target_group.py index c8280a19895..ecc535f6933 100644 --- a/sdk/python/pulumi_aws/alb/target_group.py +++ b/sdk/python/pulumi_aws/alb/target_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -67,46 +67,125 @@ def __init__(__self__, *, Application Load Balancers do not support the `alb` target type. :param pulumi.Input[str] vpc_id: Identifier of the VPC in which to create the target group. Required when `target_type` is `instance`, `ip` or `alb`. Does not apply when `target_type` is `lambda`. """ + TargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_termination=connection_termination, + deregistration_delay=deregistration_delay, + health_check=health_check, + ip_address_type=ip_address_type, + lambda_multi_value_headers_enabled=lambda_multi_value_headers_enabled, + load_balancing_algorithm_type=load_balancing_algorithm_type, + load_balancing_cross_zone_enabled=load_balancing_cross_zone_enabled, + name=name, + name_prefix=name_prefix, + port=port, + preserve_client_ip=preserve_client_ip, + protocol=protocol, + protocol_version=protocol_version, + proxy_protocol_v2=proxy_protocol_v2, + slow_start=slow_start, + stickiness=stickiness, + tags=tags, + target_failovers=target_failovers, + target_type=target_type, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_termination: Optional[pulumi.Input[bool]] = None, + deregistration_delay: Optional[pulumi.Input[int]] = None, + health_check: Optional[pulumi.Input['TargetGroupHealthCheckArgs']] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + lambda_multi_value_headers_enabled: Optional[pulumi.Input[bool]] = None, + load_balancing_algorithm_type: Optional[pulumi.Input[str]] = None, + load_balancing_cross_zone_enabled: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preserve_client_ip: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + protocol_version: Optional[pulumi.Input[str]] = None, + proxy_protocol_v2: Optional[pulumi.Input[bool]] = None, + slow_start: Optional[pulumi.Input[int]] = None, + stickiness: Optional[pulumi.Input['TargetGroupStickinessArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]] = None, + target_type: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_termination is None and 'connectionTermination' in kwargs: + connection_termination = kwargs['connectionTermination'] + if deregistration_delay is None and 'deregistrationDelay' in kwargs: + deregistration_delay = kwargs['deregistrationDelay'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if lambda_multi_value_headers_enabled is None and 'lambdaMultiValueHeadersEnabled' in kwargs: + lambda_multi_value_headers_enabled = kwargs['lambdaMultiValueHeadersEnabled'] + if load_balancing_algorithm_type is None and 'loadBalancingAlgorithmType' in kwargs: + load_balancing_algorithm_type = kwargs['loadBalancingAlgorithmType'] + if load_balancing_cross_zone_enabled is None and 'loadBalancingCrossZoneEnabled' in kwargs: + load_balancing_cross_zone_enabled = kwargs['loadBalancingCrossZoneEnabled'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if preserve_client_ip is None and 'preserveClientIp' in kwargs: + preserve_client_ip = kwargs['preserveClientIp'] + if protocol_version is None and 'protocolVersion' in kwargs: + protocol_version = kwargs['protocolVersion'] + if proxy_protocol_v2 is None and 'proxyProtocolV2' in kwargs: + proxy_protocol_v2 = kwargs['proxyProtocolV2'] + if slow_start is None and 'slowStart' in kwargs: + slow_start = kwargs['slowStart'] + if target_failovers is None and 'targetFailovers' in kwargs: + target_failovers = kwargs['targetFailovers'] + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if connection_termination is not None: - pulumi.set(__self__, "connection_termination", connection_termination) + _setter("connection_termination", connection_termination) if deregistration_delay is not None: - pulumi.set(__self__, "deregistration_delay", deregistration_delay) + _setter("deregistration_delay", deregistration_delay) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if lambda_multi_value_headers_enabled is not None: - pulumi.set(__self__, "lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) + _setter("lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) if load_balancing_algorithm_type is not None: - pulumi.set(__self__, "load_balancing_algorithm_type", load_balancing_algorithm_type) + _setter("load_balancing_algorithm_type", load_balancing_algorithm_type) if load_balancing_cross_zone_enabled is not None: - pulumi.set(__self__, "load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) + _setter("load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preserve_client_ip is not None: - pulumi.set(__self__, "preserve_client_ip", preserve_client_ip) + _setter("preserve_client_ip", preserve_client_ip) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if protocol_version is not None: - pulumi.set(__self__, "protocol_version", protocol_version) + _setter("protocol_version", protocol_version) if proxy_protocol_v2 is not None: - pulumi.set(__self__, "proxy_protocol_v2", proxy_protocol_v2) + _setter("proxy_protocol_v2", proxy_protocol_v2) if slow_start is not None: - pulumi.set(__self__, "slow_start", slow_start) + _setter("slow_start", slow_start) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_failovers is not None: - pulumi.set(__self__, "target_failovers", target_failovers) + _setter("target_failovers", target_failovers) if target_type is not None: - pulumi.set(__self__, "target_type", target_type) + _setter("target_type", target_type) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="connectionTermination") @@ -417,55 +496,144 @@ def __init__(__self__, *, Application Load Balancers do not support the `alb` target type. :param pulumi.Input[str] vpc_id: Identifier of the VPC in which to create the target group. Required when `target_type` is `instance`, `ip` or `alb`. Does not apply when `target_type` is `lambda`. """ + _TargetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + arn_suffix=arn_suffix, + connection_termination=connection_termination, + deregistration_delay=deregistration_delay, + health_check=health_check, + ip_address_type=ip_address_type, + lambda_multi_value_headers_enabled=lambda_multi_value_headers_enabled, + load_balancing_algorithm_type=load_balancing_algorithm_type, + load_balancing_cross_zone_enabled=load_balancing_cross_zone_enabled, + name=name, + name_prefix=name_prefix, + port=port, + preserve_client_ip=preserve_client_ip, + protocol=protocol, + protocol_version=protocol_version, + proxy_protocol_v2=proxy_protocol_v2, + slow_start=slow_start, + stickiness=stickiness, + tags=tags, + tags_all=tags_all, + target_failovers=target_failovers, + target_type=target_type, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + arn_suffix: Optional[pulumi.Input[str]] = None, + connection_termination: Optional[pulumi.Input[bool]] = None, + deregistration_delay: Optional[pulumi.Input[int]] = None, + health_check: Optional[pulumi.Input['TargetGroupHealthCheckArgs']] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + lambda_multi_value_headers_enabled: Optional[pulumi.Input[bool]] = None, + load_balancing_algorithm_type: Optional[pulumi.Input[str]] = None, + load_balancing_cross_zone_enabled: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preserve_client_ip: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + protocol_version: Optional[pulumi.Input[str]] = None, + proxy_protocol_v2: Optional[pulumi.Input[bool]] = None, + slow_start: Optional[pulumi.Input[int]] = None, + stickiness: Optional[pulumi.Input['TargetGroupStickinessArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]] = None, + target_type: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn_suffix is None and 'arnSuffix' in kwargs: + arn_suffix = kwargs['arnSuffix'] + if connection_termination is None and 'connectionTermination' in kwargs: + connection_termination = kwargs['connectionTermination'] + if deregistration_delay is None and 'deregistrationDelay' in kwargs: + deregistration_delay = kwargs['deregistrationDelay'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if lambda_multi_value_headers_enabled is None and 'lambdaMultiValueHeadersEnabled' in kwargs: + lambda_multi_value_headers_enabled = kwargs['lambdaMultiValueHeadersEnabled'] + if load_balancing_algorithm_type is None and 'loadBalancingAlgorithmType' in kwargs: + load_balancing_algorithm_type = kwargs['loadBalancingAlgorithmType'] + if load_balancing_cross_zone_enabled is None and 'loadBalancingCrossZoneEnabled' in kwargs: + load_balancing_cross_zone_enabled = kwargs['loadBalancingCrossZoneEnabled'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if preserve_client_ip is None and 'preserveClientIp' in kwargs: + preserve_client_ip = kwargs['preserveClientIp'] + if protocol_version is None and 'protocolVersion' in kwargs: + protocol_version = kwargs['protocolVersion'] + if proxy_protocol_v2 is None and 'proxyProtocolV2' in kwargs: + proxy_protocol_v2 = kwargs['proxyProtocolV2'] + if slow_start is None and 'slowStart' in kwargs: + slow_start = kwargs['slowStart'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_failovers is None and 'targetFailovers' in kwargs: + target_failovers = kwargs['targetFailovers'] + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if arn_suffix is not None: - pulumi.set(__self__, "arn_suffix", arn_suffix) + _setter("arn_suffix", arn_suffix) if connection_termination is not None: - pulumi.set(__self__, "connection_termination", connection_termination) + _setter("connection_termination", connection_termination) if deregistration_delay is not None: - pulumi.set(__self__, "deregistration_delay", deregistration_delay) + _setter("deregistration_delay", deregistration_delay) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if lambda_multi_value_headers_enabled is not None: - pulumi.set(__self__, "lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) + _setter("lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) if load_balancing_algorithm_type is not None: - pulumi.set(__self__, "load_balancing_algorithm_type", load_balancing_algorithm_type) + _setter("load_balancing_algorithm_type", load_balancing_algorithm_type) if load_balancing_cross_zone_enabled is not None: - pulumi.set(__self__, "load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) + _setter("load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preserve_client_ip is not None: - pulumi.set(__self__, "preserve_client_ip", preserve_client_ip) + _setter("preserve_client_ip", preserve_client_ip) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if protocol_version is not None: - pulumi.set(__self__, "protocol_version", protocol_version) + _setter("protocol_version", protocol_version) if proxy_protocol_v2 is not None: - pulumi.set(__self__, "proxy_protocol_v2", proxy_protocol_v2) + _setter("proxy_protocol_v2", proxy_protocol_v2) if slow_start is not None: - pulumi.set(__self__, "slow_start", slow_start) + _setter("slow_start", slow_start) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_failovers is not None: - pulumi.set(__self__, "target_failovers", target_failovers) + _setter("target_failovers", target_failovers) if target_type is not None: - pulumi.set(__self__, "target_type", target_type) + _setter("target_type", target_type) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -948,6 +1116,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TargetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -984,6 +1156,7 @@ def _internal_init(__self__, __props__.__dict__["connection_termination"] = connection_termination __props__.__dict__["deregistration_delay"] = deregistration_delay + health_check = _utilities.configure(health_check, TargetGroupHealthCheckArgs, True) __props__.__dict__["health_check"] = health_check __props__.__dict__["ip_address_type"] = ip_address_type __props__.__dict__["lambda_multi_value_headers_enabled"] = lambda_multi_value_headers_enabled @@ -997,6 +1170,7 @@ def _internal_init(__self__, __props__.__dict__["protocol_version"] = protocol_version __props__.__dict__["proxy_protocol_v2"] = proxy_protocol_v2 __props__.__dict__["slow_start"] = slow_start + stickiness = _utilities.configure(stickiness, TargetGroupStickinessArgs, True) __props__.__dict__["stickiness"] = stickiness __props__.__dict__["tags"] = tags __props__.__dict__["target_failovers"] = target_failovers diff --git a/sdk/python/pulumi_aws/alb/target_group_attachment.py b/sdk/python/pulumi_aws/alb/target_group_attachment.py index 7e29c80c659..3ede2f271d3 100644 --- a/sdk/python/pulumi_aws/alb/target_group_attachment.py +++ b/sdk/python/pulumi_aws/alb/target_group_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TargetGroupAttachmentArgs', 'TargetGroupAttachment'] @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[str] availability_zone: The Availability Zone where the IP address of the target is to be registered. If the private IP address is outside of the VPC scope, this value must be set to `all`. :param pulumi.Input[int] port: The port on which targets receive traffic. """ - pulumi.set(__self__, "target_group_arn", target_group_arn) - pulumi.set(__self__, "target_id", target_id) + TargetGroupAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_group_arn=target_group_arn, + target_id=target_id, + availability_zone=availability_zone, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_group_arn: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + if target_group_arn is None: + raise TypeError("Missing 'target_group_arn' argument") + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if target_id is None: + raise TypeError("Missing 'target_id' argument") + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + + _setter("target_group_arn", target_group_arn) + _setter("target_id", target_id) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="targetGroupArn") @@ -101,14 +128,37 @@ def __init__(__self__, *, The following arguments are optional: """ + _TargetGroupAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + port=port, + target_group_arn=target_group_arn, + target_id=target_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + target_group_arn: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) if target_id is not None: - pulumi.set(__self__, "target_id", target_id) + _setter("target_id", target_id) @property @pulumi.getter(name="availabilityZone") @@ -330,6 +380,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TargetGroupAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/amp/_inputs.py b/sdk/python/pulumi_aws/amp/_inputs.py index f6cbeefbb3d..bb7625255cc 100644 --- a/sdk/python/pulumi_aws/amp/_inputs.py +++ b/sdk/python/pulumi_aws/amp/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -20,7 +20,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] log_group_arn: The ARN of the CloudWatch log group to which the vended log data will be published. This log group must exist. """ - pulumi.set(__self__, "log_group_arn", log_group_arn) + WorkspaceLoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_arn=log_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_arn is None and 'logGroupArn' in kwargs: + log_group_arn = kwargs['logGroupArn'] + if log_group_arn is None: + raise TypeError("Missing 'log_group_arn' argument") + + _setter("log_group_arn", log_group_arn) @property @pulumi.getter(name="logGroupArn") diff --git a/sdk/python/pulumi_aws/amp/alert_manager_definition.py b/sdk/python/pulumi_aws/amp/alert_manager_definition.py index fa624add537..7485d929bb5 100644 --- a/sdk/python/pulumi_aws/amp/alert_manager_definition.py +++ b/sdk/python/pulumi_aws/amp/alert_manager_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AlertManagerDefinitionArgs', 'AlertManagerDefinition'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] definition: the alert manager definition that you want to be applied. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-alert-manager.html). :param pulumi.Input[str] workspace_id: ID of the prometheus workspace the alert manager definition should be linked to """ - pulumi.set(__self__, "definition", definition) - pulumi.set(__self__, "workspace_id", workspace_id) + AlertManagerDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + definition=definition, + workspace_id=workspace_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definition: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definition is None: + raise TypeError("Missing 'definition' argument") + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if workspace_id is None: + raise TypeError("Missing 'workspace_id' argument") + + _setter("definition", definition) + _setter("workspace_id", workspace_id) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] definition: the alert manager definition that you want to be applied. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-alert-manager.html). :param pulumi.Input[str] workspace_id: ID of the prometheus workspace the alert manager definition should be linked to """ + _AlertManagerDefinitionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + definition=definition, + workspace_id=workspace_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definition: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if definition is not None: - pulumi.set(__self__, "definition", definition) + _setter("definition", definition) if workspace_id is not None: - pulumi.set(__self__, "workspace_id", workspace_id) + _setter("workspace_id", workspace_id) @property @pulumi.getter @@ -174,6 +208,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AlertManagerDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/amp/get_workspace.py b/sdk/python/pulumi_aws/amp/get_workspace.py index 73fbc0c0035..70215b260ca 100644 --- a/sdk/python/pulumi_aws/amp/get_workspace.py +++ b/sdk/python/pulumi_aws/amp/get_workspace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/amp/get_workspaces.py b/sdk/python/pulumi_aws/amp/get_workspaces.py index f6b5e1e10a6..2812c53de81 100644 --- a/sdk/python/pulumi_aws/amp/get_workspaces.py +++ b/sdk/python/pulumi_aws/amp/get_workspaces.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/amp/outputs.py b/sdk/python/pulumi_aws/amp/outputs.py index cb6637e671c..d96f2fbaf12 100644 --- a/sdk/python/pulumi_aws/amp/outputs.py +++ b/sdk/python/pulumi_aws/amp/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -37,7 +37,22 @@ def __init__(__self__, *, """ :param str log_group_arn: The ARN of the CloudWatch log group to which the vended log data will be published. This log group must exist. """ - pulumi.set(__self__, "log_group_arn", log_group_arn) + WorkspaceLoggingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_arn=log_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_arn is None and 'logGroupArn' in kwargs: + log_group_arn = kwargs['logGroupArn'] + if log_group_arn is None: + raise TypeError("Missing 'log_group_arn' argument") + + _setter("log_group_arn", log_group_arn) @property @pulumi.getter(name="logGroupArn") diff --git a/sdk/python/pulumi_aws/amp/rule_group_namespace.py b/sdk/python/pulumi_aws/amp/rule_group_namespace.py index 51122f9ba5c..ffa7fb38498 100644 --- a/sdk/python/pulumi_aws/amp/rule_group_namespace.py +++ b/sdk/python/pulumi_aws/amp/rule_group_namespace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RuleGroupNamespaceArgs', 'RuleGroupNamespace'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] workspace_id: ID of the prometheus workspace the rule group namespace should be linked to :param pulumi.Input[str] name: The name of the rule group namespace """ - pulumi.set(__self__, "data", data) - pulumi.set(__self__, "workspace_id", workspace_id) + RuleGroupNamespaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data=data, + workspace_id=workspace_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data is None: + raise TypeError("Missing 'data' argument") + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if workspace_id is None: + raise TypeError("Missing 'workspace_id' argument") + + _setter("data", data) + _setter("workspace_id", workspace_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -77,12 +98,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the rule group namespace :param pulumi.Input[str] workspace_id: ID of the prometheus workspace the rule group namespace should be linked to """ + _RuleGroupNamespaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + data=data, + name=name, + workspace_id=workspace_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if workspace_id is not None: - pulumi.set(__self__, "workspace_id", workspace_id) + _setter("workspace_id", workspace_id) @property @pulumi.getter @@ -208,6 +246,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RuleGroupNamespaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/amp/workspace.py b/sdk/python/pulumi_aws/amp/workspace.py index e2d67ba9f62..c4c3159cbdd 100644 --- a/sdk/python/pulumi_aws/amp/workspace.py +++ b/sdk/python/pulumi_aws/amp/workspace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,12 +25,29 @@ def __init__(__self__, *, :param pulumi.Input['WorkspaceLoggingConfigurationArgs'] logging_configuration: Logging configuration for the workspace. See Logging Configuration below for details. :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. """ + WorkspaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + logging_configuration=logging_configuration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[pulumi.Input[str]] = None, + logging_configuration: Optional[pulumi.Input['WorkspaceLoggingConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -87,21 +104,48 @@ def __init__(__self__, *, :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. """ + _WorkspaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + arn=arn, + logging_configuration=logging_configuration, + prometheus_endpoint=prometheus_endpoint, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + logging_configuration: Optional[pulumi.Input['WorkspaceLoggingConfigurationArgs']] = None, + prometheus_endpoint: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if prometheus_endpoint is None and 'prometheusEndpoint' in kwargs: + prometheus_endpoint = kwargs['prometheusEndpoint'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if prometheus_endpoint is not None: - pulumi.set(__self__, "prometheus_endpoint", prometheus_endpoint) + _setter("prometheus_endpoint", prometheus_endpoint) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -280,6 +324,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkspaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -298,6 +346,7 @@ def _internal_init(__self__, __props__ = WorkspaceArgs.__new__(WorkspaceArgs) __props__.__dict__["alias"] = alias + logging_configuration = _utilities.configure(logging_configuration, WorkspaceLoggingConfigurationArgs, True) __props__.__dict__["logging_configuration"] = logging_configuration __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/amplify/_inputs.py b/sdk/python/pulumi_aws/amplify/_inputs.py index e83a9dae672..9966d4496e8 100644 --- a/sdk/python/pulumi_aws/amplify/_inputs.py +++ b/sdk/python/pulumi_aws/amplify/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,26 +41,71 @@ def __init__(__self__, *, :param pulumi.Input[str] pull_request_environment_name: Amplify environment name for the pull request. :param pulumi.Input[str] stage: Describes the current stage for the autocreated branch. Valid values: `PRODUCTION`, `BETA`, `DEVELOPMENT`, `EXPERIMENTAL`, `PULL_REQUEST`. """ + AppAutoBranchCreationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth_credentials=basic_auth_credentials, + build_spec=build_spec, + enable_auto_build=enable_auto_build, + enable_basic_auth=enable_basic_auth, + enable_performance_mode=enable_performance_mode, + enable_pull_request_preview=enable_pull_request_preview, + environment_variables=environment_variables, + framework=framework, + pull_request_environment_name=pull_request_environment_name, + stage=stage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth_credentials: Optional[pulumi.Input[str]] = None, + build_spec: Optional[pulumi.Input[str]] = None, + enable_auto_build: Optional[pulumi.Input[bool]] = None, + enable_basic_auth: Optional[pulumi.Input[bool]] = None, + enable_performance_mode: Optional[pulumi.Input[bool]] = None, + enable_pull_request_preview: Optional[pulumi.Input[bool]] = None, + environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + framework: Optional[pulumi.Input[str]] = None, + pull_request_environment_name: Optional[pulumi.Input[str]] = None, + stage: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth_credentials is None and 'basicAuthCredentials' in kwargs: + basic_auth_credentials = kwargs['basicAuthCredentials'] + if build_spec is None and 'buildSpec' in kwargs: + build_spec = kwargs['buildSpec'] + if enable_auto_build is None and 'enableAutoBuild' in kwargs: + enable_auto_build = kwargs['enableAutoBuild'] + if enable_basic_auth is None and 'enableBasicAuth' in kwargs: + enable_basic_auth = kwargs['enableBasicAuth'] + if enable_performance_mode is None and 'enablePerformanceMode' in kwargs: + enable_performance_mode = kwargs['enablePerformanceMode'] + if enable_pull_request_preview is None and 'enablePullRequestPreview' in kwargs: + enable_pull_request_preview = kwargs['enablePullRequestPreview'] + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if pull_request_environment_name is None and 'pullRequestEnvironmentName' in kwargs: + pull_request_environment_name = kwargs['pullRequestEnvironmentName'] + if basic_auth_credentials is not None: - pulumi.set(__self__, "basic_auth_credentials", basic_auth_credentials) + _setter("basic_auth_credentials", basic_auth_credentials) if build_spec is not None: - pulumi.set(__self__, "build_spec", build_spec) + _setter("build_spec", build_spec) if enable_auto_build is not None: - pulumi.set(__self__, "enable_auto_build", enable_auto_build) + _setter("enable_auto_build", enable_auto_build) if enable_basic_auth is not None: - pulumi.set(__self__, "enable_basic_auth", enable_basic_auth) + _setter("enable_basic_auth", enable_basic_auth) if enable_performance_mode is not None: - pulumi.set(__self__, "enable_performance_mode", enable_performance_mode) + _setter("enable_performance_mode", enable_performance_mode) if enable_pull_request_preview is not None: - pulumi.set(__self__, "enable_pull_request_preview", enable_pull_request_preview) + _setter("enable_pull_request_preview", enable_pull_request_preview) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if framework is not None: - pulumi.set(__self__, "framework", framework) + _setter("framework", framework) if pull_request_environment_name is not None: - pulumi.set(__self__, "pull_request_environment_name", pull_request_environment_name) + _setter("pull_request_environment_name", pull_request_environment_name) if stage is not None: - pulumi.set(__self__, "stage", stage) + _setter("stage", stage) @property @pulumi.getter(name="basicAuthCredentials") @@ -196,12 +241,33 @@ def __init__(__self__, *, :param pulumi.Input[str] condition: Condition for a URL rewrite or redirect rule, such as a country code. :param pulumi.Input[str] status: Status code for a URL rewrite or redirect rule. Valid values: `200`, `301`, `302`, `404`, `404-200`. """ - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "target", target) + AppCustomRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + target=target, + condition=condition, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + condition: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("source", source) + _setter("target", target) if condition is not None: - pulumi.set(__self__, "condition", condition) + _setter("condition", condition) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -265,14 +331,37 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Status code for a URL rewrite or redirect rule. Valid values: `200`, `301`, `302`, `404`, `404-200`. :param pulumi.Input[str] thumbnail_url: Thumbnail URL for the production branch. """ + AppProductionBranchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + branch_name=branch_name, + last_deploy_time=last_deploy_time, + status=status, + thumbnail_url=thumbnail_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + branch_name: Optional[pulumi.Input[str]] = None, + last_deploy_time: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + thumbnail_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if last_deploy_time is None and 'lastDeployTime' in kwargs: + last_deploy_time = kwargs['lastDeployTime'] + if thumbnail_url is None and 'thumbnailUrl' in kwargs: + thumbnail_url = kwargs['thumbnailUrl'] + if branch_name is not None: - pulumi.set(__self__, "branch_name", branch_name) + _setter("branch_name", branch_name) if last_deploy_time is not None: - pulumi.set(__self__, "last_deploy_time", last_deploy_time) + _setter("last_deploy_time", last_deploy_time) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if thumbnail_url is not None: - pulumi.set(__self__, "thumbnail_url", thumbnail_url) + _setter("thumbnail_url", thumbnail_url) @property @pulumi.getter(name="branchName") @@ -336,12 +425,37 @@ def __init__(__self__, *, :param pulumi.Input[str] dns_record: DNS record for the subdomain. :param pulumi.Input[bool] verified: Verified status of the subdomain. """ - pulumi.set(__self__, "branch_name", branch_name) - pulumi.set(__self__, "prefix", prefix) + DomainAssociationSubDomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + branch_name=branch_name, + prefix=prefix, + dns_record=dns_record, + verified=verified, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + branch_name: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + dns_record: Optional[pulumi.Input[str]] = None, + verified: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if branch_name is None: + raise TypeError("Missing 'branch_name' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if dns_record is None and 'dnsRecord' in kwargs: + dns_record = kwargs['dnsRecord'] + + _setter("branch_name", branch_name) + _setter("prefix", prefix) if dns_record is not None: - pulumi.set(__self__, "dns_record", dns_record) + _setter("dns_record", dns_record) if verified is not None: - pulumi.set(__self__, "verified", verified) + _setter("verified", verified) @property @pulumi.getter(name="branchName") diff --git a/sdk/python/pulumi_aws/amplify/app.py b/sdk/python/pulumi_aws/amplify/app.py index c3947350201..3949c79a686 100644 --- a/sdk/python/pulumi_aws/amplify/app.py +++ b/sdk/python/pulumi_aws/amplify/app.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -55,42 +55,113 @@ def __init__(__self__, *, :param pulumi.Input[str] repository: Repository for an Amplify app. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ + AppArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + auto_branch_creation_config=auto_branch_creation_config, + auto_branch_creation_patterns=auto_branch_creation_patterns, + basic_auth_credentials=basic_auth_credentials, + build_spec=build_spec, + custom_rules=custom_rules, + description=description, + enable_auto_branch_creation=enable_auto_branch_creation, + enable_basic_auth=enable_basic_auth, + enable_branch_auto_build=enable_branch_auto_build, + enable_branch_auto_deletion=enable_branch_auto_deletion, + environment_variables=environment_variables, + iam_service_role_arn=iam_service_role_arn, + name=name, + oauth_token=oauth_token, + platform=platform, + repository=repository, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[pulumi.Input[str]] = None, + auto_branch_creation_config: Optional[pulumi.Input['AppAutoBranchCreationConfigArgs']] = None, + auto_branch_creation_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + basic_auth_credentials: Optional[pulumi.Input[str]] = None, + build_spec: Optional[pulumi.Input[str]] = None, + custom_rules: Optional[pulumi.Input[Sequence[pulumi.Input['AppCustomRuleArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + enable_auto_branch_creation: Optional[pulumi.Input[bool]] = None, + enable_basic_auth: Optional[pulumi.Input[bool]] = None, + enable_branch_auto_build: Optional[pulumi.Input[bool]] = None, + enable_branch_auto_deletion: Optional[pulumi.Input[bool]] = None, + environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + iam_service_role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + oauth_token: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + repository: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if auto_branch_creation_config is None and 'autoBranchCreationConfig' in kwargs: + auto_branch_creation_config = kwargs['autoBranchCreationConfig'] + if auto_branch_creation_patterns is None and 'autoBranchCreationPatterns' in kwargs: + auto_branch_creation_patterns = kwargs['autoBranchCreationPatterns'] + if basic_auth_credentials is None and 'basicAuthCredentials' in kwargs: + basic_auth_credentials = kwargs['basicAuthCredentials'] + if build_spec is None and 'buildSpec' in kwargs: + build_spec = kwargs['buildSpec'] + if custom_rules is None and 'customRules' in kwargs: + custom_rules = kwargs['customRules'] + if enable_auto_branch_creation is None and 'enableAutoBranchCreation' in kwargs: + enable_auto_branch_creation = kwargs['enableAutoBranchCreation'] + if enable_basic_auth is None and 'enableBasicAuth' in kwargs: + enable_basic_auth = kwargs['enableBasicAuth'] + if enable_branch_auto_build is None and 'enableBranchAutoBuild' in kwargs: + enable_branch_auto_build = kwargs['enableBranchAutoBuild'] + if enable_branch_auto_deletion is None and 'enableBranchAutoDeletion' in kwargs: + enable_branch_auto_deletion = kwargs['enableBranchAutoDeletion'] + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if iam_service_role_arn is None and 'iamServiceRoleArn' in kwargs: + iam_service_role_arn = kwargs['iamServiceRoleArn'] + if oauth_token is None and 'oauthToken' in kwargs: + oauth_token = kwargs['oauthToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if auto_branch_creation_config is not None: - pulumi.set(__self__, "auto_branch_creation_config", auto_branch_creation_config) + _setter("auto_branch_creation_config", auto_branch_creation_config) if auto_branch_creation_patterns is not None: - pulumi.set(__self__, "auto_branch_creation_patterns", auto_branch_creation_patterns) + _setter("auto_branch_creation_patterns", auto_branch_creation_patterns) if basic_auth_credentials is not None: - pulumi.set(__self__, "basic_auth_credentials", basic_auth_credentials) + _setter("basic_auth_credentials", basic_auth_credentials) if build_spec is not None: - pulumi.set(__self__, "build_spec", build_spec) + _setter("build_spec", build_spec) if custom_rules is not None: - pulumi.set(__self__, "custom_rules", custom_rules) + _setter("custom_rules", custom_rules) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enable_auto_branch_creation is not None: - pulumi.set(__self__, "enable_auto_branch_creation", enable_auto_branch_creation) + _setter("enable_auto_branch_creation", enable_auto_branch_creation) if enable_basic_auth is not None: - pulumi.set(__self__, "enable_basic_auth", enable_basic_auth) + _setter("enable_basic_auth", enable_basic_auth) if enable_branch_auto_build is not None: - pulumi.set(__self__, "enable_branch_auto_build", enable_branch_auto_build) + _setter("enable_branch_auto_build", enable_branch_auto_build) if enable_branch_auto_deletion is not None: - pulumi.set(__self__, "enable_branch_auto_deletion", enable_branch_auto_deletion) + _setter("enable_branch_auto_deletion", enable_branch_auto_deletion) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if iam_service_role_arn is not None: - pulumi.set(__self__, "iam_service_role_arn", iam_service_role_arn) + _setter("iam_service_role_arn", iam_service_role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if oauth_token is not None: - pulumi.set(__self__, "oauth_token", oauth_token) + _setter("oauth_token", oauth_token) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if repository is not None: - pulumi.set(__self__, "repository", repository) + _setter("repository", repository) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="accessToken") @@ -359,53 +430,138 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _AppState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + arn=arn, + auto_branch_creation_config=auto_branch_creation_config, + auto_branch_creation_patterns=auto_branch_creation_patterns, + basic_auth_credentials=basic_auth_credentials, + build_spec=build_spec, + custom_rules=custom_rules, + default_domain=default_domain, + description=description, + enable_auto_branch_creation=enable_auto_branch_creation, + enable_basic_auth=enable_basic_auth, + enable_branch_auto_build=enable_branch_auto_build, + enable_branch_auto_deletion=enable_branch_auto_deletion, + environment_variables=environment_variables, + iam_service_role_arn=iam_service_role_arn, + name=name, + oauth_token=oauth_token, + platform=platform, + production_branches=production_branches, + repository=repository, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_branch_creation_config: Optional[pulumi.Input['AppAutoBranchCreationConfigArgs']] = None, + auto_branch_creation_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + basic_auth_credentials: Optional[pulumi.Input[str]] = None, + build_spec: Optional[pulumi.Input[str]] = None, + custom_rules: Optional[pulumi.Input[Sequence[pulumi.Input['AppCustomRuleArgs']]]] = None, + default_domain: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + enable_auto_branch_creation: Optional[pulumi.Input[bool]] = None, + enable_basic_auth: Optional[pulumi.Input[bool]] = None, + enable_branch_auto_build: Optional[pulumi.Input[bool]] = None, + enable_branch_auto_deletion: Optional[pulumi.Input[bool]] = None, + environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + iam_service_role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + oauth_token: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + production_branches: Optional[pulumi.Input[Sequence[pulumi.Input['AppProductionBranchArgs']]]] = None, + repository: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if auto_branch_creation_config is None and 'autoBranchCreationConfig' in kwargs: + auto_branch_creation_config = kwargs['autoBranchCreationConfig'] + if auto_branch_creation_patterns is None and 'autoBranchCreationPatterns' in kwargs: + auto_branch_creation_patterns = kwargs['autoBranchCreationPatterns'] + if basic_auth_credentials is None and 'basicAuthCredentials' in kwargs: + basic_auth_credentials = kwargs['basicAuthCredentials'] + if build_spec is None and 'buildSpec' in kwargs: + build_spec = kwargs['buildSpec'] + if custom_rules is None and 'customRules' in kwargs: + custom_rules = kwargs['customRules'] + if default_domain is None and 'defaultDomain' in kwargs: + default_domain = kwargs['defaultDomain'] + if enable_auto_branch_creation is None and 'enableAutoBranchCreation' in kwargs: + enable_auto_branch_creation = kwargs['enableAutoBranchCreation'] + if enable_basic_auth is None and 'enableBasicAuth' in kwargs: + enable_basic_auth = kwargs['enableBasicAuth'] + if enable_branch_auto_build is None and 'enableBranchAutoBuild' in kwargs: + enable_branch_auto_build = kwargs['enableBranchAutoBuild'] + if enable_branch_auto_deletion is None and 'enableBranchAutoDeletion' in kwargs: + enable_branch_auto_deletion = kwargs['enableBranchAutoDeletion'] + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if iam_service_role_arn is None and 'iamServiceRoleArn' in kwargs: + iam_service_role_arn = kwargs['iamServiceRoleArn'] + if oauth_token is None and 'oauthToken' in kwargs: + oauth_token = kwargs['oauthToken'] + if production_branches is None and 'productionBranches' in kwargs: + production_branches = kwargs['productionBranches'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_branch_creation_config is not None: - pulumi.set(__self__, "auto_branch_creation_config", auto_branch_creation_config) + _setter("auto_branch_creation_config", auto_branch_creation_config) if auto_branch_creation_patterns is not None: - pulumi.set(__self__, "auto_branch_creation_patterns", auto_branch_creation_patterns) + _setter("auto_branch_creation_patterns", auto_branch_creation_patterns) if basic_auth_credentials is not None: - pulumi.set(__self__, "basic_auth_credentials", basic_auth_credentials) + _setter("basic_auth_credentials", basic_auth_credentials) if build_spec is not None: - pulumi.set(__self__, "build_spec", build_spec) + _setter("build_spec", build_spec) if custom_rules is not None: - pulumi.set(__self__, "custom_rules", custom_rules) + _setter("custom_rules", custom_rules) if default_domain is not None: - pulumi.set(__self__, "default_domain", default_domain) + _setter("default_domain", default_domain) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enable_auto_branch_creation is not None: - pulumi.set(__self__, "enable_auto_branch_creation", enable_auto_branch_creation) + _setter("enable_auto_branch_creation", enable_auto_branch_creation) if enable_basic_auth is not None: - pulumi.set(__self__, "enable_basic_auth", enable_basic_auth) + _setter("enable_basic_auth", enable_basic_auth) if enable_branch_auto_build is not None: - pulumi.set(__self__, "enable_branch_auto_build", enable_branch_auto_build) + _setter("enable_branch_auto_build", enable_branch_auto_build) if enable_branch_auto_deletion is not None: - pulumi.set(__self__, "enable_branch_auto_deletion", enable_branch_auto_deletion) + _setter("enable_branch_auto_deletion", enable_branch_auto_deletion) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if iam_service_role_arn is not None: - pulumi.set(__self__, "iam_service_role_arn", iam_service_role_arn) + _setter("iam_service_role_arn", iam_service_role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if oauth_token is not None: - pulumi.set(__self__, "oauth_token", oauth_token) + _setter("oauth_token", oauth_token) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if production_branches is not None: - pulumi.set(__self__, "production_branches", production_branches) + _setter("production_branches", production_branches) if repository is not None: - pulumi.set(__self__, "repository", repository) + _setter("repository", repository) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="accessToken") @@ -954,6 +1110,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AppArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -987,6 +1147,7 @@ def _internal_init(__self__, __props__ = AppArgs.__new__(AppArgs) __props__.__dict__["access_token"] = None if access_token is None else pulumi.Output.secret(access_token) + auto_branch_creation_config = _utilities.configure(auto_branch_creation_config, AppAutoBranchCreationConfigArgs, True) __props__.__dict__["auto_branch_creation_config"] = auto_branch_creation_config __props__.__dict__["auto_branch_creation_patterns"] = auto_branch_creation_patterns __props__.__dict__["basic_auth_credentials"] = None if basic_auth_credentials is None else pulumi.Output.secret(basic_auth_credentials) diff --git a/sdk/python/pulumi_aws/amplify/backend_environment.py b/sdk/python/pulumi_aws/amplify/backend_environment.py index 8125539a95c..9c6fd8a4733 100644 --- a/sdk/python/pulumi_aws/amplify/backend_environment.py +++ b/sdk/python/pulumi_aws/amplify/backend_environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BackendEnvironmentArgs', 'BackendEnvironment'] @@ -25,12 +25,41 @@ def __init__(__self__, *, :param pulumi.Input[str] deployment_artifacts: Name of deployment artifacts. :param pulumi.Input[str] stack_name: AWS CloudFormation stack name of a backend environment. """ - pulumi.set(__self__, "app_id", app_id) - pulumi.set(__self__, "environment_name", environment_name) + BackendEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_id=app_id, + environment_name=environment_name, + deployment_artifacts=deployment_artifacts, + stack_name=stack_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_id: Optional[pulumi.Input[str]] = None, + environment_name: Optional[pulumi.Input[str]] = None, + deployment_artifacts: Optional[pulumi.Input[str]] = None, + stack_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_id is None and 'appId' in kwargs: + app_id = kwargs['appId'] + if app_id is None: + raise TypeError("Missing 'app_id' argument") + if environment_name is None and 'environmentName' in kwargs: + environment_name = kwargs['environmentName'] + if environment_name is None: + raise TypeError("Missing 'environment_name' argument") + if deployment_artifacts is None and 'deploymentArtifacts' in kwargs: + deployment_artifacts = kwargs['deploymentArtifacts'] + if stack_name is None and 'stackName' in kwargs: + stack_name = kwargs['stackName'] + + _setter("app_id", app_id) + _setter("environment_name", environment_name) if deployment_artifacts is not None: - pulumi.set(__self__, "deployment_artifacts", deployment_artifacts) + _setter("deployment_artifacts", deployment_artifacts) if stack_name is not None: - pulumi.set(__self__, "stack_name", stack_name) + _setter("stack_name", stack_name) @property @pulumi.getter(name="appId") @@ -97,16 +126,43 @@ def __init__(__self__, *, :param pulumi.Input[str] environment_name: Name for the backend environment. :param pulumi.Input[str] stack_name: AWS CloudFormation stack name of a backend environment. """ + _BackendEnvironmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_id=app_id, + arn=arn, + deployment_artifacts=deployment_artifacts, + environment_name=environment_name, + stack_name=stack_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + deployment_artifacts: Optional[pulumi.Input[str]] = None, + environment_name: Optional[pulumi.Input[str]] = None, + stack_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_id is None and 'appId' in kwargs: + app_id = kwargs['appId'] + if deployment_artifacts is None and 'deploymentArtifacts' in kwargs: + deployment_artifacts = kwargs['deploymentArtifacts'] + if environment_name is None and 'environmentName' in kwargs: + environment_name = kwargs['environmentName'] + if stack_name is None and 'stackName' in kwargs: + stack_name = kwargs['stackName'] + if app_id is not None: - pulumi.set(__self__, "app_id", app_id) + _setter("app_id", app_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if deployment_artifacts is not None: - pulumi.set(__self__, "deployment_artifacts", deployment_artifacts) + _setter("deployment_artifacts", deployment_artifacts) if environment_name is not None: - pulumi.set(__self__, "environment_name", environment_name) + _setter("environment_name", environment_name) if stack_name is not None: - pulumi.set(__self__, "stack_name", stack_name) + _setter("stack_name", stack_name) @property @pulumi.getter(name="appId") @@ -252,6 +308,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BackendEnvironmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/amplify/branch.py b/sdk/python/pulumi_aws/amplify/branch.py index b078d0bf74d..5795d283966 100644 --- a/sdk/python/pulumi_aws/amplify/branch.py +++ b/sdk/python/pulumi_aws/amplify/branch.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BranchArgs', 'Branch'] @@ -51,38 +51,109 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] ttl: Content Time To Live (TTL) for the website in seconds. """ - pulumi.set(__self__, "app_id", app_id) - pulumi.set(__self__, "branch_name", branch_name) + BranchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_id=app_id, + branch_name=branch_name, + backend_environment_arn=backend_environment_arn, + basic_auth_credentials=basic_auth_credentials, + description=description, + display_name=display_name, + enable_auto_build=enable_auto_build, + enable_basic_auth=enable_basic_auth, + enable_notification=enable_notification, + enable_performance_mode=enable_performance_mode, + enable_pull_request_preview=enable_pull_request_preview, + environment_variables=environment_variables, + framework=framework, + pull_request_environment_name=pull_request_environment_name, + stage=stage, + tags=tags, + ttl=ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_id: Optional[pulumi.Input[str]] = None, + branch_name: Optional[pulumi.Input[str]] = None, + backend_environment_arn: Optional[pulumi.Input[str]] = None, + basic_auth_credentials: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + enable_auto_build: Optional[pulumi.Input[bool]] = None, + enable_basic_auth: Optional[pulumi.Input[bool]] = None, + enable_notification: Optional[pulumi.Input[bool]] = None, + enable_performance_mode: Optional[pulumi.Input[bool]] = None, + enable_pull_request_preview: Optional[pulumi.Input[bool]] = None, + environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + framework: Optional[pulumi.Input[str]] = None, + pull_request_environment_name: Optional[pulumi.Input[str]] = None, + stage: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + ttl: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_id is None and 'appId' in kwargs: + app_id = kwargs['appId'] + if app_id is None: + raise TypeError("Missing 'app_id' argument") + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if branch_name is None: + raise TypeError("Missing 'branch_name' argument") + if backend_environment_arn is None and 'backendEnvironmentArn' in kwargs: + backend_environment_arn = kwargs['backendEnvironmentArn'] + if basic_auth_credentials is None and 'basicAuthCredentials' in kwargs: + basic_auth_credentials = kwargs['basicAuthCredentials'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if enable_auto_build is None and 'enableAutoBuild' in kwargs: + enable_auto_build = kwargs['enableAutoBuild'] + if enable_basic_auth is None and 'enableBasicAuth' in kwargs: + enable_basic_auth = kwargs['enableBasicAuth'] + if enable_notification is None and 'enableNotification' in kwargs: + enable_notification = kwargs['enableNotification'] + if enable_performance_mode is None and 'enablePerformanceMode' in kwargs: + enable_performance_mode = kwargs['enablePerformanceMode'] + if enable_pull_request_preview is None and 'enablePullRequestPreview' in kwargs: + enable_pull_request_preview = kwargs['enablePullRequestPreview'] + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if pull_request_environment_name is None and 'pullRequestEnvironmentName' in kwargs: + pull_request_environment_name = kwargs['pullRequestEnvironmentName'] + + _setter("app_id", app_id) + _setter("branch_name", branch_name) if backend_environment_arn is not None: - pulumi.set(__self__, "backend_environment_arn", backend_environment_arn) + _setter("backend_environment_arn", backend_environment_arn) if basic_auth_credentials is not None: - pulumi.set(__self__, "basic_auth_credentials", basic_auth_credentials) + _setter("basic_auth_credentials", basic_auth_credentials) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if enable_auto_build is not None: - pulumi.set(__self__, "enable_auto_build", enable_auto_build) + _setter("enable_auto_build", enable_auto_build) if enable_basic_auth is not None: - pulumi.set(__self__, "enable_basic_auth", enable_basic_auth) + _setter("enable_basic_auth", enable_basic_auth) if enable_notification is not None: - pulumi.set(__self__, "enable_notification", enable_notification) + _setter("enable_notification", enable_notification) if enable_performance_mode is not None: - pulumi.set(__self__, "enable_performance_mode", enable_performance_mode) + _setter("enable_performance_mode", enable_performance_mode) if enable_pull_request_preview is not None: - pulumi.set(__self__, "enable_pull_request_preview", enable_pull_request_preview) + _setter("enable_pull_request_preview", enable_pull_request_preview) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if framework is not None: - pulumi.set(__self__, "framework", framework) + _setter("framework", framework) if pull_request_environment_name is not None: - pulumi.set(__self__, "pull_request_environment_name", pull_request_environment_name) + _setter("pull_request_environment_name", pull_request_environment_name) if stage is not None: - pulumi.set(__self__, "stage", stage) + _setter("stage", stage) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) @property @pulumi.getter(name="appId") @@ -341,55 +412,144 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] ttl: Content Time To Live (TTL) for the website in seconds. """ + _BranchState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_id=app_id, + arn=arn, + associated_resources=associated_resources, + backend_environment_arn=backend_environment_arn, + basic_auth_credentials=basic_auth_credentials, + branch_name=branch_name, + custom_domains=custom_domains, + description=description, + destination_branch=destination_branch, + display_name=display_name, + enable_auto_build=enable_auto_build, + enable_basic_auth=enable_basic_auth, + enable_notification=enable_notification, + enable_performance_mode=enable_performance_mode, + enable_pull_request_preview=enable_pull_request_preview, + environment_variables=environment_variables, + framework=framework, + pull_request_environment_name=pull_request_environment_name, + source_branch=source_branch, + stage=stage, + tags=tags, + tags_all=tags_all, + ttl=ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + associated_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backend_environment_arn: Optional[pulumi.Input[str]] = None, + basic_auth_credentials: Optional[pulumi.Input[str]] = None, + branch_name: Optional[pulumi.Input[str]] = None, + custom_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + destination_branch: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + enable_auto_build: Optional[pulumi.Input[bool]] = None, + enable_basic_auth: Optional[pulumi.Input[bool]] = None, + enable_notification: Optional[pulumi.Input[bool]] = None, + enable_performance_mode: Optional[pulumi.Input[bool]] = None, + enable_pull_request_preview: Optional[pulumi.Input[bool]] = None, + environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + framework: Optional[pulumi.Input[str]] = None, + pull_request_environment_name: Optional[pulumi.Input[str]] = None, + source_branch: Optional[pulumi.Input[str]] = None, + stage: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + ttl: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_id is None and 'appId' in kwargs: + app_id = kwargs['appId'] + if associated_resources is None and 'associatedResources' in kwargs: + associated_resources = kwargs['associatedResources'] + if backend_environment_arn is None and 'backendEnvironmentArn' in kwargs: + backend_environment_arn = kwargs['backendEnvironmentArn'] + if basic_auth_credentials is None and 'basicAuthCredentials' in kwargs: + basic_auth_credentials = kwargs['basicAuthCredentials'] + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if custom_domains is None and 'customDomains' in kwargs: + custom_domains = kwargs['customDomains'] + if destination_branch is None and 'destinationBranch' in kwargs: + destination_branch = kwargs['destinationBranch'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if enable_auto_build is None and 'enableAutoBuild' in kwargs: + enable_auto_build = kwargs['enableAutoBuild'] + if enable_basic_auth is None and 'enableBasicAuth' in kwargs: + enable_basic_auth = kwargs['enableBasicAuth'] + if enable_notification is None and 'enableNotification' in kwargs: + enable_notification = kwargs['enableNotification'] + if enable_performance_mode is None and 'enablePerformanceMode' in kwargs: + enable_performance_mode = kwargs['enablePerformanceMode'] + if enable_pull_request_preview is None and 'enablePullRequestPreview' in kwargs: + enable_pull_request_preview = kwargs['enablePullRequestPreview'] + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if pull_request_environment_name is None and 'pullRequestEnvironmentName' in kwargs: + pull_request_environment_name = kwargs['pullRequestEnvironmentName'] + if source_branch is None and 'sourceBranch' in kwargs: + source_branch = kwargs['sourceBranch'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if app_id is not None: - pulumi.set(__self__, "app_id", app_id) + _setter("app_id", app_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if associated_resources is not None: - pulumi.set(__self__, "associated_resources", associated_resources) + _setter("associated_resources", associated_resources) if backend_environment_arn is not None: - pulumi.set(__self__, "backend_environment_arn", backend_environment_arn) + _setter("backend_environment_arn", backend_environment_arn) if basic_auth_credentials is not None: - pulumi.set(__self__, "basic_auth_credentials", basic_auth_credentials) + _setter("basic_auth_credentials", basic_auth_credentials) if branch_name is not None: - pulumi.set(__self__, "branch_name", branch_name) + _setter("branch_name", branch_name) if custom_domains is not None: - pulumi.set(__self__, "custom_domains", custom_domains) + _setter("custom_domains", custom_domains) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if destination_branch is not None: - pulumi.set(__self__, "destination_branch", destination_branch) + _setter("destination_branch", destination_branch) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if enable_auto_build is not None: - pulumi.set(__self__, "enable_auto_build", enable_auto_build) + _setter("enable_auto_build", enable_auto_build) if enable_basic_auth is not None: - pulumi.set(__self__, "enable_basic_auth", enable_basic_auth) + _setter("enable_basic_auth", enable_basic_auth) if enable_notification is not None: - pulumi.set(__self__, "enable_notification", enable_notification) + _setter("enable_notification", enable_notification) if enable_performance_mode is not None: - pulumi.set(__self__, "enable_performance_mode", enable_performance_mode) + _setter("enable_performance_mode", enable_performance_mode) if enable_pull_request_preview is not None: - pulumi.set(__self__, "enable_pull_request_preview", enable_pull_request_preview) + _setter("enable_pull_request_preview", enable_pull_request_preview) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if framework is not None: - pulumi.set(__self__, "framework", framework) + _setter("framework", framework) if pull_request_environment_name is not None: - pulumi.set(__self__, "pull_request_environment_name", pull_request_environment_name) + _setter("pull_request_environment_name", pull_request_environment_name) if source_branch is not None: - pulumi.set(__self__, "source_branch", source_branch) + _setter("source_branch", source_branch) if stage is not None: - pulumi.set(__self__, "stage", stage) + _setter("stage", stage) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) @property @pulumi.getter(name="appId") @@ -912,6 +1072,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BranchArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/amplify/domain_association.py b/sdk/python/pulumi_aws/amplify/domain_association.py index da8c600ffe5..c6d71353e8f 100644 --- a/sdk/python/pulumi_aws/amplify/domain_association.py +++ b/sdk/python/pulumi_aws/amplify/domain_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,48 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_auto_sub_domain: Enables the automated creation of subdomains for branches. :param pulumi.Input[bool] wait_for_verification: If enabled, the resource will wait for the domain association status to change to `PENDING_DEPLOYMENT` or `AVAILABLE`. Setting this to `false` will skip the process. Default: `true`. """ - pulumi.set(__self__, "app_id", app_id) - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "sub_domains", sub_domains) + DomainAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_id=app_id, + domain_name=domain_name, + sub_domains=sub_domains, + enable_auto_sub_domain=enable_auto_sub_domain, + wait_for_verification=wait_for_verification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_id: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + sub_domains: Optional[pulumi.Input[Sequence[pulumi.Input['DomainAssociationSubDomainArgs']]]] = None, + enable_auto_sub_domain: Optional[pulumi.Input[bool]] = None, + wait_for_verification: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_id is None and 'appId' in kwargs: + app_id = kwargs['appId'] + if app_id is None: + raise TypeError("Missing 'app_id' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if sub_domains is None and 'subDomains' in kwargs: + sub_domains = kwargs['subDomains'] + if sub_domains is None: + raise TypeError("Missing 'sub_domains' argument") + if enable_auto_sub_domain is None and 'enableAutoSubDomain' in kwargs: + enable_auto_sub_domain = kwargs['enableAutoSubDomain'] + if wait_for_verification is None and 'waitForVerification' in kwargs: + wait_for_verification = kwargs['waitForVerification'] + + _setter("app_id", app_id) + _setter("domain_name", domain_name) + _setter("sub_domains", sub_domains) if enable_auto_sub_domain is not None: - pulumi.set(__self__, "enable_auto_sub_domain", enable_auto_sub_domain) + _setter("enable_auto_sub_domain", enable_auto_sub_domain) if wait_for_verification is not None: - pulumi.set(__self__, "wait_for_verification", wait_for_verification) + _setter("wait_for_verification", wait_for_verification) @property @pulumi.getter(name="appId") @@ -118,20 +153,55 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DomainAssociationSubDomainArgs']]] sub_domains: Setting for the subdomain. Documented below. :param pulumi.Input[bool] wait_for_verification: If enabled, the resource will wait for the domain association status to change to `PENDING_DEPLOYMENT` or `AVAILABLE`. Setting this to `false` will skip the process. Default: `true`. """ + _DomainAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_id=app_id, + arn=arn, + certificate_verification_dns_record=certificate_verification_dns_record, + domain_name=domain_name, + enable_auto_sub_domain=enable_auto_sub_domain, + sub_domains=sub_domains, + wait_for_verification=wait_for_verification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + certificate_verification_dns_record: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + enable_auto_sub_domain: Optional[pulumi.Input[bool]] = None, + sub_domains: Optional[pulumi.Input[Sequence[pulumi.Input['DomainAssociationSubDomainArgs']]]] = None, + wait_for_verification: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_id is None and 'appId' in kwargs: + app_id = kwargs['appId'] + if certificate_verification_dns_record is None and 'certificateVerificationDnsRecord' in kwargs: + certificate_verification_dns_record = kwargs['certificateVerificationDnsRecord'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if enable_auto_sub_domain is None and 'enableAutoSubDomain' in kwargs: + enable_auto_sub_domain = kwargs['enableAutoSubDomain'] + if sub_domains is None and 'subDomains' in kwargs: + sub_domains = kwargs['subDomains'] + if wait_for_verification is None and 'waitForVerification' in kwargs: + wait_for_verification = kwargs['waitForVerification'] + if app_id is not None: - pulumi.set(__self__, "app_id", app_id) + _setter("app_id", app_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate_verification_dns_record is not None: - pulumi.set(__self__, "certificate_verification_dns_record", certificate_verification_dns_record) + _setter("certificate_verification_dns_record", certificate_verification_dns_record) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if enable_auto_sub_domain is not None: - pulumi.set(__self__, "enable_auto_sub_domain", enable_auto_sub_domain) + _setter("enable_auto_sub_domain", enable_auto_sub_domain) if sub_domains is not None: - pulumi.set(__self__, "sub_domains", sub_domains) + _setter("sub_domains", sub_domains) if wait_for_verification is not None: - pulumi.set(__self__, "wait_for_verification", wait_for_verification) + _setter("wait_for_verification", wait_for_verification) @property @pulumi.getter(name="appId") @@ -333,6 +403,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/amplify/outputs.py b/sdk/python/pulumi_aws/amplify/outputs.py index 81ca7a3f1d5..2433e6c13ef 100644 --- a/sdk/python/pulumi_aws/amplify/outputs.py +++ b/sdk/python/pulumi_aws/amplify/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -72,26 +72,71 @@ def __init__(__self__, *, :param str pull_request_environment_name: Amplify environment name for the pull request. :param str stage: Describes the current stage for the autocreated branch. Valid values: `PRODUCTION`, `BETA`, `DEVELOPMENT`, `EXPERIMENTAL`, `PULL_REQUEST`. """ + AppAutoBranchCreationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth_credentials=basic_auth_credentials, + build_spec=build_spec, + enable_auto_build=enable_auto_build, + enable_basic_auth=enable_basic_auth, + enable_performance_mode=enable_performance_mode, + enable_pull_request_preview=enable_pull_request_preview, + environment_variables=environment_variables, + framework=framework, + pull_request_environment_name=pull_request_environment_name, + stage=stage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth_credentials: Optional[str] = None, + build_spec: Optional[str] = None, + enable_auto_build: Optional[bool] = None, + enable_basic_auth: Optional[bool] = None, + enable_performance_mode: Optional[bool] = None, + enable_pull_request_preview: Optional[bool] = None, + environment_variables: Optional[Mapping[str, str]] = None, + framework: Optional[str] = None, + pull_request_environment_name: Optional[str] = None, + stage: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth_credentials is None and 'basicAuthCredentials' in kwargs: + basic_auth_credentials = kwargs['basicAuthCredentials'] + if build_spec is None and 'buildSpec' in kwargs: + build_spec = kwargs['buildSpec'] + if enable_auto_build is None and 'enableAutoBuild' in kwargs: + enable_auto_build = kwargs['enableAutoBuild'] + if enable_basic_auth is None and 'enableBasicAuth' in kwargs: + enable_basic_auth = kwargs['enableBasicAuth'] + if enable_performance_mode is None and 'enablePerformanceMode' in kwargs: + enable_performance_mode = kwargs['enablePerformanceMode'] + if enable_pull_request_preview is None and 'enablePullRequestPreview' in kwargs: + enable_pull_request_preview = kwargs['enablePullRequestPreview'] + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if pull_request_environment_name is None and 'pullRequestEnvironmentName' in kwargs: + pull_request_environment_name = kwargs['pullRequestEnvironmentName'] + if basic_auth_credentials is not None: - pulumi.set(__self__, "basic_auth_credentials", basic_auth_credentials) + _setter("basic_auth_credentials", basic_auth_credentials) if build_spec is not None: - pulumi.set(__self__, "build_spec", build_spec) + _setter("build_spec", build_spec) if enable_auto_build is not None: - pulumi.set(__self__, "enable_auto_build", enable_auto_build) + _setter("enable_auto_build", enable_auto_build) if enable_basic_auth is not None: - pulumi.set(__self__, "enable_basic_auth", enable_basic_auth) + _setter("enable_basic_auth", enable_basic_auth) if enable_performance_mode is not None: - pulumi.set(__self__, "enable_performance_mode", enable_performance_mode) + _setter("enable_performance_mode", enable_performance_mode) if enable_pull_request_preview is not None: - pulumi.set(__self__, "enable_pull_request_preview", enable_pull_request_preview) + _setter("enable_pull_request_preview", enable_pull_request_preview) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if framework is not None: - pulumi.set(__self__, "framework", framework) + _setter("framework", framework) if pull_request_environment_name is not None: - pulumi.set(__self__, "pull_request_environment_name", pull_request_environment_name) + _setter("pull_request_environment_name", pull_request_environment_name) if stage is not None: - pulumi.set(__self__, "stage", stage) + _setter("stage", stage) @property @pulumi.getter(name="basicAuthCredentials") @@ -187,12 +232,33 @@ def __init__(__self__, *, :param str condition: Condition for a URL rewrite or redirect rule, such as a country code. :param str status: Status code for a URL rewrite or redirect rule. Valid values: `200`, `301`, `302`, `404`, `404-200`. """ - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "target", target) + AppCustomRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + target=target, + condition=condition, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[str] = None, + target: Optional[str] = None, + condition: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("source", source) + _setter("target", target) if condition is not None: - pulumi.set(__self__, "condition", condition) + _setter("condition", condition) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -261,14 +327,37 @@ def __init__(__self__, *, :param str status: Status code for a URL rewrite or redirect rule. Valid values: `200`, `301`, `302`, `404`, `404-200`. :param str thumbnail_url: Thumbnail URL for the production branch. """ + AppProductionBranch._configure( + lambda key, value: pulumi.set(__self__, key, value), + branch_name=branch_name, + last_deploy_time=last_deploy_time, + status=status, + thumbnail_url=thumbnail_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + branch_name: Optional[str] = None, + last_deploy_time: Optional[str] = None, + status: Optional[str] = None, + thumbnail_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if last_deploy_time is None and 'lastDeployTime' in kwargs: + last_deploy_time = kwargs['lastDeployTime'] + if thumbnail_url is None and 'thumbnailUrl' in kwargs: + thumbnail_url = kwargs['thumbnailUrl'] + if branch_name is not None: - pulumi.set(__self__, "branch_name", branch_name) + _setter("branch_name", branch_name) if last_deploy_time is not None: - pulumi.set(__self__, "last_deploy_time", last_deploy_time) + _setter("last_deploy_time", last_deploy_time) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if thumbnail_url is not None: - pulumi.set(__self__, "thumbnail_url", thumbnail_url) + _setter("thumbnail_url", thumbnail_url) @property @pulumi.getter(name="branchName") @@ -335,12 +424,37 @@ def __init__(__self__, *, :param str dns_record: DNS record for the subdomain. :param bool verified: Verified status of the subdomain. """ - pulumi.set(__self__, "branch_name", branch_name) - pulumi.set(__self__, "prefix", prefix) + DomainAssociationSubDomain._configure( + lambda key, value: pulumi.set(__self__, key, value), + branch_name=branch_name, + prefix=prefix, + dns_record=dns_record, + verified=verified, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + branch_name: Optional[str] = None, + prefix: Optional[str] = None, + dns_record: Optional[str] = None, + verified: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if branch_name is None: + raise TypeError("Missing 'branch_name' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if dns_record is None and 'dnsRecord' in kwargs: + dns_record = kwargs['dnsRecord'] + + _setter("branch_name", branch_name) + _setter("prefix", prefix) if dns_record is not None: - pulumi.set(__self__, "dns_record", dns_record) + _setter("dns_record", dns_record) if verified is not None: - pulumi.set(__self__, "verified", verified) + _setter("verified", verified) @property @pulumi.getter(name="branchName") diff --git a/sdk/python/pulumi_aws/amplify/webhook.py b/sdk/python/pulumi_aws/amplify/webhook.py index a43757c5324..a400e7cbe58 100644 --- a/sdk/python/pulumi_aws/amplify/webhook.py +++ b/sdk/python/pulumi_aws/amplify/webhook.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['WebhookArgs', 'Webhook'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] branch_name: Name for a branch that is part of the Amplify app. :param pulumi.Input[str] description: Description for a webhook. """ - pulumi.set(__self__, "app_id", app_id) - pulumi.set(__self__, "branch_name", branch_name) + WebhookArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_id=app_id, + branch_name=branch_name, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_id: Optional[pulumi.Input[str]] = None, + branch_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_id is None and 'appId' in kwargs: + app_id = kwargs['appId'] + if app_id is None: + raise TypeError("Missing 'app_id' argument") + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if branch_name is None: + raise TypeError("Missing 'branch_name' argument") + + _setter("app_id", app_id) + _setter("branch_name", branch_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="appId") @@ -81,16 +104,39 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description for a webhook. :param pulumi.Input[str] url: URL of the webhook. """ + _WebhookState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_id=app_id, + arn=arn, + branch_name=branch_name, + description=description, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + branch_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_id is None and 'appId' in kwargs: + app_id = kwargs['appId'] + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if app_id is not None: - pulumi.set(__self__, "app_id", app_id) + _setter("app_id", app_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if branch_name is not None: - pulumi.set(__self__, "branch_name", branch_name) + _setter("branch_name", branch_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter(name="appId") @@ -238,6 +284,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebhookArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/_inputs.py b/sdk/python/pulumi_aws/apigateway/_inputs.py index 4129b5ffb00..fbba79d15d0 100644 --- a/sdk/python/pulumi_aws/apigateway/_inputs.py +++ b/sdk/python/pulumi_aws/apigateway/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -34,10 +34,27 @@ def __init__(__self__, *, :param pulumi.Input[int] burst_limit: Absolute maximum number of times API Gateway allows the API to be called per second (RPS). :param pulumi.Input[float] rate_limit: Number of times API Gateway allows the API to be called per second on average (RPS). """ + AccountThrottleSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + burst_limit=burst_limit, + rate_limit=rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + burst_limit: Optional[pulumi.Input[int]] = None, + rate_limit: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if burst_limit is None and 'burstLimit' in kwargs: + burst_limit = kwargs['burstLimit'] + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + if burst_limit is not None: - pulumi.set(__self__, "burst_limit", burst_limit) + _setter("burst_limit", burst_limit) if rate_limit is not None: - pulumi.set(__self__, "rate_limit", rate_limit) + _setter("rate_limit", rate_limit) @property @pulumi.getter(name="burstLimit") @@ -79,15 +96,38 @@ def __init__(__self__, *, :param pulumi.Input[str] path: URL path of the target. The default value is `/` for the root resource. :param pulumi.Input[str] status_code: HTTP status code of a response. The default value is `*` for any status code. """ - pulumi.set(__self__, "type", type) + DocumentationPartLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + method=method, + name=name, + path=path, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + method: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("type", type) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter @@ -157,7 +197,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] types: List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE` or `REGIONAL`. If unspecified, defaults to `EDGE`. Must be declared as `REGIONAL` in non-Commercial partitions. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs. """ - pulumi.set(__self__, "types", types) + DomainNameEndpointConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + types=types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + types: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if types is None: + raise TypeError("Missing 'types' argument") + + _setter("types", types) @property @pulumi.getter @@ -181,9 +234,28 @@ def __init__(__self__, *, :param pulumi.Input[str] truststore_uri: Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. :param pulumi.Input[str] truststore_version: Version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. """ - pulumi.set(__self__, "truststore_uri", truststore_uri) + DomainNameMutualTlsAuthenticationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + truststore_uri=truststore_uri, + truststore_version=truststore_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + truststore_uri: Optional[pulumi.Input[str]] = None, + truststore_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if truststore_uri is None and 'truststoreUri' in kwargs: + truststore_uri = kwargs['truststoreUri'] + if truststore_uri is None: + raise TypeError("Missing 'truststore_uri' argument") + if truststore_version is None and 'truststoreVersion' in kwargs: + truststore_version = kwargs['truststoreVersion'] + + _setter("truststore_uri", truststore_uri) if truststore_version is not None: - pulumi.set(__self__, "truststore_version", truststore_version) + _setter("truststore_version", truststore_version) @property @pulumi.getter(name="truststoreUri") @@ -217,8 +289,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] insecure_skip_verification: Whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. """ + IntegrationTlsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insecure_skip_verification=insecure_skip_verification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insecure_skip_verification: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insecure_skip_verification is None and 'insecureSkipVerification' in kwargs: + insecure_skip_verification = kwargs['insecureSkipVerification'] + if insecure_skip_verification is not None: - pulumi.set(__self__, "insecure_skip_verification", insecure_skip_verification) + _setter("insecure_skip_verification", insecure_skip_verification) @property @pulumi.getter(name="insecureSkipVerification") @@ -258,26 +343,75 @@ def __init__(__self__, *, :param pulumi.Input[float] throttling_rate_limit: Throttling rate limit. Default: `-1` (throttling disabled). :param pulumi.Input[str] unauthorized_cache_control_header_strategy: How to handle unauthorized requests for cache invalidation. The available values are `FAIL_WITH_403`, `SUCCEED_WITH_RESPONSE_HEADER`, `SUCCEED_WITHOUT_RESPONSE_HEADER`. """ + MethodSettingsSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_data_encrypted=cache_data_encrypted, + cache_ttl_in_seconds=cache_ttl_in_seconds, + caching_enabled=caching_enabled, + data_trace_enabled=data_trace_enabled, + logging_level=logging_level, + metrics_enabled=metrics_enabled, + require_authorization_for_cache_control=require_authorization_for_cache_control, + throttling_burst_limit=throttling_burst_limit, + throttling_rate_limit=throttling_rate_limit, + unauthorized_cache_control_header_strategy=unauthorized_cache_control_header_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_data_encrypted: Optional[pulumi.Input[bool]] = None, + cache_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + caching_enabled: Optional[pulumi.Input[bool]] = None, + data_trace_enabled: Optional[pulumi.Input[bool]] = None, + logging_level: Optional[pulumi.Input[str]] = None, + metrics_enabled: Optional[pulumi.Input[bool]] = None, + require_authorization_for_cache_control: Optional[pulumi.Input[bool]] = None, + throttling_burst_limit: Optional[pulumi.Input[int]] = None, + throttling_rate_limit: Optional[pulumi.Input[float]] = None, + unauthorized_cache_control_header_strategy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_data_encrypted is None and 'cacheDataEncrypted' in kwargs: + cache_data_encrypted = kwargs['cacheDataEncrypted'] + if cache_ttl_in_seconds is None and 'cacheTtlInSeconds' in kwargs: + cache_ttl_in_seconds = kwargs['cacheTtlInSeconds'] + if caching_enabled is None and 'cachingEnabled' in kwargs: + caching_enabled = kwargs['cachingEnabled'] + if data_trace_enabled is None and 'dataTraceEnabled' in kwargs: + data_trace_enabled = kwargs['dataTraceEnabled'] + if logging_level is None and 'loggingLevel' in kwargs: + logging_level = kwargs['loggingLevel'] + if metrics_enabled is None and 'metricsEnabled' in kwargs: + metrics_enabled = kwargs['metricsEnabled'] + if require_authorization_for_cache_control is None and 'requireAuthorizationForCacheControl' in kwargs: + require_authorization_for_cache_control = kwargs['requireAuthorizationForCacheControl'] + if throttling_burst_limit is None and 'throttlingBurstLimit' in kwargs: + throttling_burst_limit = kwargs['throttlingBurstLimit'] + if throttling_rate_limit is None and 'throttlingRateLimit' in kwargs: + throttling_rate_limit = kwargs['throttlingRateLimit'] + if unauthorized_cache_control_header_strategy is None and 'unauthorizedCacheControlHeaderStrategy' in kwargs: + unauthorized_cache_control_header_strategy = kwargs['unauthorizedCacheControlHeaderStrategy'] + if cache_data_encrypted is not None: - pulumi.set(__self__, "cache_data_encrypted", cache_data_encrypted) + _setter("cache_data_encrypted", cache_data_encrypted) if cache_ttl_in_seconds is not None: - pulumi.set(__self__, "cache_ttl_in_seconds", cache_ttl_in_seconds) + _setter("cache_ttl_in_seconds", cache_ttl_in_seconds) if caching_enabled is not None: - pulumi.set(__self__, "caching_enabled", caching_enabled) + _setter("caching_enabled", caching_enabled) if data_trace_enabled is not None: - pulumi.set(__self__, "data_trace_enabled", data_trace_enabled) + _setter("data_trace_enabled", data_trace_enabled) if logging_level is not None: - pulumi.set(__self__, "logging_level", logging_level) + _setter("logging_level", logging_level) if metrics_enabled is not None: - pulumi.set(__self__, "metrics_enabled", metrics_enabled) + _setter("metrics_enabled", metrics_enabled) if require_authorization_for_cache_control is not None: - pulumi.set(__self__, "require_authorization_for_cache_control", require_authorization_for_cache_control) + _setter("require_authorization_for_cache_control", require_authorization_for_cache_control) if throttling_burst_limit is not None: - pulumi.set(__self__, "throttling_burst_limit", throttling_burst_limit) + _setter("throttling_burst_limit", throttling_burst_limit) if throttling_rate_limit is not None: - pulumi.set(__self__, "throttling_rate_limit", throttling_rate_limit) + _setter("throttling_rate_limit", throttling_rate_limit) if unauthorized_cache_control_header_strategy is not None: - pulumi.set(__self__, "unauthorized_cache_control_header_strategy", unauthorized_cache_control_header_strategy) + _setter("unauthorized_cache_control_header_strategy", unauthorized_cache_control_header_strategy) @property @pulumi.getter(name="cacheDataEncrypted") @@ -409,9 +543,26 @@ def __init__(__self__, *, :param pulumi.Input[str] types: List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE`, `REGIONAL` or `PRIVATE`. If unspecified, defaults to `EDGE`. If set to `PRIVATE` recommend to set `put_rest_api_mode` = `merge` to not cause the endpoints and associated Route53 records to be deleted. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_endpoint_ids: Set of VPC Endpoint identifiers. It is only supported for `PRIVATE` endpoint type. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `vpcEndpointIds` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is provided and is different than the OpenAPI value, **the argument value will override the OpenAPI value**. """ - pulumi.set(__self__, "types", types) + RestApiEndpointConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + types=types, + vpc_endpoint_ids=vpc_endpoint_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + types: Optional[pulumi.Input[str]] = None, + vpc_endpoint_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if types is None: + raise TypeError("Missing 'types' argument") + if vpc_endpoint_ids is None and 'vpcEndpointIds' in kwargs: + vpc_endpoint_ids = kwargs['vpcEndpointIds'] + + _setter("types", types) if vpc_endpoint_ids is not None: - pulumi.set(__self__, "vpc_endpoint_ids", vpc_endpoint_ids) + _setter("vpc_endpoint_ids", vpc_endpoint_ids) @property @pulumi.getter @@ -448,8 +599,27 @@ def __init__(__self__, *, :param pulumi.Input[str] format: Formatting and values recorded in the logs. For more information on configuring the log format rules visit the AWS [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html) """ - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "format", format) + StageAccessLogSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if format is None: + raise TypeError("Missing 'format' argument") + + _setter("destination_arn", destination_arn) + _setter("format", format) @property @pulumi.getter(name="destinationArn") @@ -488,12 +658,33 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] stage_variable_overrides: Map of overridden stage `variables` (including new variables) for the canary deployment. :param pulumi.Input[bool] use_stage_cache: Whether the canary deployment uses the stage cache. Defaults to false. """ + StageCanarySettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + percent_traffic=percent_traffic, + stage_variable_overrides=stage_variable_overrides, + use_stage_cache=use_stage_cache, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + percent_traffic: Optional[pulumi.Input[float]] = None, + stage_variable_overrides: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_stage_cache: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if percent_traffic is None and 'percentTraffic' in kwargs: + percent_traffic = kwargs['percentTraffic'] + if stage_variable_overrides is None and 'stageVariableOverrides' in kwargs: + stage_variable_overrides = kwargs['stageVariableOverrides'] + if use_stage_cache is None and 'useStageCache' in kwargs: + use_stage_cache = kwargs['useStageCache'] + if percent_traffic is not None: - pulumi.set(__self__, "percent_traffic", percent_traffic) + _setter("percent_traffic", percent_traffic) if stage_variable_overrides is not None: - pulumi.set(__self__, "stage_variable_overrides", stage_variable_overrides) + _setter("stage_variable_overrides", stage_variable_overrides) if use_stage_cache is not None: - pulumi.set(__self__, "use_stage_cache", use_stage_cache) + _setter("use_stage_cache", use_stage_cache) @property @pulumi.getter(name="percentTraffic") @@ -543,10 +734,31 @@ def __init__(__self__, *, :param pulumi.Input[str] stage: API stage name of the associated API stage in a usage plan. :param pulumi.Input[Sequence[pulumi.Input['UsagePlanApiStageThrottleArgs']]] throttles: The throttling limits of the usage plan. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "stage", stage) + UsagePlanApiStageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + stage=stage, + throttles=throttles, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + stage: Optional[pulumi.Input[str]] = None, + throttles: Optional[pulumi.Input[Sequence[pulumi.Input['UsagePlanApiStageThrottleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if stage is None: + raise TypeError("Missing 'stage' argument") + + _setter("api_id", api_id) + _setter("stage", stage) if throttles is not None: - pulumi.set(__self__, "throttles", throttles) + _setter("throttles", throttles) @property @pulumi.getter(name="apiId") @@ -596,11 +808,32 @@ def __init__(__self__, *, :param pulumi.Input[int] burst_limit: The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity. :param pulumi.Input[float] rate_limit: The API request steady-state rate limit. """ - pulumi.set(__self__, "path", path) + UsagePlanApiStageThrottleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + burst_limit=burst_limit, + rate_limit=rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[pulumi.Input[str]] = None, + burst_limit: Optional[pulumi.Input[int]] = None, + rate_limit: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + if burst_limit is None and 'burstLimit' in kwargs: + burst_limit = kwargs['burstLimit'] + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + + _setter("path", path) if burst_limit is not None: - pulumi.set(__self__, "burst_limit", burst_limit) + _setter("burst_limit", burst_limit) if rate_limit is not None: - pulumi.set(__self__, "rate_limit", rate_limit) + _setter("rate_limit", rate_limit) @property @pulumi.getter @@ -650,10 +883,29 @@ def __init__(__self__, *, :param pulumi.Input[str] period: Time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH". :param pulumi.Input[int] offset: Number of requests subtracted from the given limit in the initial time period. """ - pulumi.set(__self__, "limit", limit) - pulumi.set(__self__, "period", period) + UsagePlanQuotaSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + limit=limit, + period=period, + offset=offset, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + limit: Optional[pulumi.Input[int]] = None, + period: Optional[pulumi.Input[str]] = None, + offset: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if limit is None: + raise TypeError("Missing 'limit' argument") + if period is None: + raise TypeError("Missing 'period' argument") + + _setter("limit", limit) + _setter("period", period) if offset is not None: - pulumi.set(__self__, "offset", offset) + _setter("offset", offset) @property @pulumi.getter @@ -701,10 +953,27 @@ def __init__(__self__, *, :param pulumi.Input[int] burst_limit: The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity. :param pulumi.Input[float] rate_limit: The API request steady-state rate limit. """ + UsagePlanThrottleSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + burst_limit=burst_limit, + rate_limit=rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + burst_limit: Optional[pulumi.Input[int]] = None, + rate_limit: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if burst_limit is None and 'burstLimit' in kwargs: + burst_limit = kwargs['burstLimit'] + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + if burst_limit is not None: - pulumi.set(__self__, "burst_limit", burst_limit) + _setter("burst_limit", burst_limit) if rate_limit is not None: - pulumi.set(__self__, "rate_limit", rate_limit) + _setter("rate_limit", rate_limit) @property @pulumi.getter(name="burstLimit") diff --git a/sdk/python/pulumi_aws/apigateway/account.py b/sdk/python/pulumi_aws/apigateway/account.py index 53517b28ae5..f9b73cd0992 100644 --- a/sdk/python/pulumi_aws/apigateway/account.py +++ b/sdk/python/pulumi_aws/apigateway/account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -21,8 +21,21 @@ def __init__(__self__, *, The set of arguments for constructing a Account resource. :param pulumi.Input[str] cloudwatch_role_arn: ARN of an IAM role for CloudWatch (to allow logging & monitoring). See more [in AWS Docs](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-stage-settings.html#how-to-stage-settings-console). Logging & monitoring can be enabled/disabled and otherwise tuned on the API Gateway Stage level. """ + AccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_role_arn=cloudwatch_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_role_arn is None and 'cloudwatchRoleArn' in kwargs: + cloudwatch_role_arn = kwargs['cloudwatchRoleArn'] + if cloudwatch_role_arn is not None: - pulumi.set(__self__, "cloudwatch_role_arn", cloudwatch_role_arn) + _setter("cloudwatch_role_arn", cloudwatch_role_arn) @property @pulumi.getter(name="cloudwatchRoleArn") @@ -51,14 +64,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] features: A list of features supported for the account. :param pulumi.Input[Sequence[pulumi.Input['AccountThrottleSettingArgs']]] throttle_settings: Account-Level throttle settings. See exported fields below. """ + _AccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key_version=api_key_version, + cloudwatch_role_arn=cloudwatch_role_arn, + features=features, + throttle_settings=throttle_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key_version: Optional[pulumi.Input[str]] = None, + cloudwatch_role_arn: Optional[pulumi.Input[str]] = None, + features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + throttle_settings: Optional[pulumi.Input[Sequence[pulumi.Input['AccountThrottleSettingArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key_version is None and 'apiKeyVersion' in kwargs: + api_key_version = kwargs['apiKeyVersion'] + if cloudwatch_role_arn is None and 'cloudwatchRoleArn' in kwargs: + cloudwatch_role_arn = kwargs['cloudwatchRoleArn'] + if throttle_settings is None and 'throttleSettings' in kwargs: + throttle_settings = kwargs['throttleSettings'] + if api_key_version is not None: - pulumi.set(__self__, "api_key_version", api_key_version) + _setter("api_key_version", api_key_version) if cloudwatch_role_arn is not None: - pulumi.set(__self__, "cloudwatch_role_arn", cloudwatch_role_arn) + _setter("cloudwatch_role_arn", cloudwatch_role_arn) if features is not None: - pulumi.set(__self__, "features", features) + _setter("features", features) if throttle_settings is not None: - pulumi.set(__self__, "throttle_settings", throttle_settings) + _setter("throttle_settings", throttle_settings) @property @pulumi.getter(name="apiKeyVersion") @@ -230,6 +266,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/api_key.py b/sdk/python/pulumi_aws/apigateway/api_key.py index 76c08f95c4b..92a1179cb3e 100644 --- a/sdk/python/pulumi_aws/apigateway/api_key.py +++ b/sdk/python/pulumi_aws/apigateway/api_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApiKeyArgs', 'ApiKey'] @@ -29,20 +29,43 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] value: Value of the API key. If specified, the value must be an alphanumeric string between 20 and 128 characters. If not specified, it will be automatically generated by AWS on creation. """ + ApiKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_id=customer_id, + description=description, + enabled=enabled, + name=name, + tags=tags, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_id is None and 'customerId' in kwargs: + customer_id = kwargs['customerId'] + if customer_id is not None: - pulumi.set(__self__, "customer_id", customer_id) + _setter("customer_id", customer_id) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="customerId") @@ -143,31 +166,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] value: Value of the API key. If specified, the value must be an alphanumeric string between 20 and 128 characters. If not specified, it will be automatically generated by AWS on creation. """ + _ApiKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + customer_id=customer_id, + description=description, + enabled=enabled, + last_updated_date=last_updated_date, + name=name, + tags=tags, + tags_all=tags_all, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + customer_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if customer_id is None and 'customerId' in kwargs: + customer_id = kwargs['customerId'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if customer_id is not None: - pulumi.set(__self__, "customer_id", customer_id) + _setter("customer_id", customer_id) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -374,6 +434,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApiKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/authorizer.py b/sdk/python/pulumi_aws/apigateway/authorizer.py index d369a073393..ffaeebbb51c 100644 --- a/sdk/python/pulumi_aws/apigateway/authorizer.py +++ b/sdk/python/pulumi_aws/apigateway/authorizer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AuthorizerArgs', 'Authorizer'] @@ -36,23 +36,66 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] provider_arns: List of the Amazon Cognito user pool ARNs. Each element is of this format: `arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}`. :param pulumi.Input[str] type: Type of the authorizer. Possible values are `TOKEN` for a Lambda function using a single authorization token submitted in a custom header, `REQUEST` for a Lambda function using incoming request parameters, or `COGNITO_USER_POOLS` for using an Amazon Cognito user pool. Defaults to `TOKEN`. """ - pulumi.set(__self__, "rest_api", rest_api) + AuthorizerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rest_api=rest_api, + authorizer_credentials=authorizer_credentials, + authorizer_result_ttl_in_seconds=authorizer_result_ttl_in_seconds, + authorizer_uri=authorizer_uri, + identity_source=identity_source, + identity_validation_expression=identity_validation_expression, + name=name, + provider_arns=provider_arns, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rest_api: Optional[pulumi.Input[str]] = None, + authorizer_credentials: Optional[pulumi.Input[str]] = None, + authorizer_result_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + authorizer_uri: Optional[pulumi.Input[str]] = None, + identity_source: Optional[pulumi.Input[str]] = None, + identity_validation_expression: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + provider_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if authorizer_credentials is None and 'authorizerCredentials' in kwargs: + authorizer_credentials = kwargs['authorizerCredentials'] + if authorizer_result_ttl_in_seconds is None and 'authorizerResultTtlInSeconds' in kwargs: + authorizer_result_ttl_in_seconds = kwargs['authorizerResultTtlInSeconds'] + if authorizer_uri is None and 'authorizerUri' in kwargs: + authorizer_uri = kwargs['authorizerUri'] + if identity_source is None and 'identitySource' in kwargs: + identity_source = kwargs['identitySource'] + if identity_validation_expression is None and 'identityValidationExpression' in kwargs: + identity_validation_expression = kwargs['identityValidationExpression'] + if provider_arns is None and 'providerArns' in kwargs: + provider_arns = kwargs['providerArns'] + + _setter("rest_api", rest_api) if authorizer_credentials is not None: - pulumi.set(__self__, "authorizer_credentials", authorizer_credentials) + _setter("authorizer_credentials", authorizer_credentials) if authorizer_result_ttl_in_seconds is not None: - pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + _setter("authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) if authorizer_uri is not None: - pulumi.set(__self__, "authorizer_uri", authorizer_uri) + _setter("authorizer_uri", authorizer_uri) if identity_source is not None: - pulumi.set(__self__, "identity_source", identity_source) + _setter("identity_source", identity_source) if identity_validation_expression is not None: - pulumi.set(__self__, "identity_validation_expression", identity_validation_expression) + _setter("identity_validation_expression", identity_validation_expression) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provider_arns is not None: - pulumi.set(__self__, "provider_arns", provider_arns) + _setter("provider_arns", provider_arns) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="restApi") @@ -191,26 +234,69 @@ def __init__(__self__, *, :param pulumi.Input[str] rest_api: ID of the associated REST API :param pulumi.Input[str] type: Type of the authorizer. Possible values are `TOKEN` for a Lambda function using a single authorization token submitted in a custom header, `REQUEST` for a Lambda function using incoming request parameters, or `COGNITO_USER_POOLS` for using an Amazon Cognito user pool. Defaults to `TOKEN`. """ + _AuthorizerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + authorizer_credentials=authorizer_credentials, + authorizer_result_ttl_in_seconds=authorizer_result_ttl_in_seconds, + authorizer_uri=authorizer_uri, + identity_source=identity_source, + identity_validation_expression=identity_validation_expression, + name=name, + provider_arns=provider_arns, + rest_api=rest_api, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + authorizer_credentials: Optional[pulumi.Input[str]] = None, + authorizer_result_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + authorizer_uri: Optional[pulumi.Input[str]] = None, + identity_source: Optional[pulumi.Input[str]] = None, + identity_validation_expression: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + provider_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorizer_credentials is None and 'authorizerCredentials' in kwargs: + authorizer_credentials = kwargs['authorizerCredentials'] + if authorizer_result_ttl_in_seconds is None and 'authorizerResultTtlInSeconds' in kwargs: + authorizer_result_ttl_in_seconds = kwargs['authorizerResultTtlInSeconds'] + if authorizer_uri is None and 'authorizerUri' in kwargs: + authorizer_uri = kwargs['authorizerUri'] + if identity_source is None and 'identitySource' in kwargs: + identity_source = kwargs['identitySource'] + if identity_validation_expression is None and 'identityValidationExpression' in kwargs: + identity_validation_expression = kwargs['identityValidationExpression'] + if provider_arns is None and 'providerArns' in kwargs: + provider_arns = kwargs['providerArns'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authorizer_credentials is not None: - pulumi.set(__self__, "authorizer_credentials", authorizer_credentials) + _setter("authorizer_credentials", authorizer_credentials) if authorizer_result_ttl_in_seconds is not None: - pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + _setter("authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) if authorizer_uri is not None: - pulumi.set(__self__, "authorizer_uri", authorizer_uri) + _setter("authorizer_uri", authorizer_uri) if identity_source is not None: - pulumi.set(__self__, "identity_source", identity_source) + _setter("identity_source", identity_source) if identity_validation_expression is not None: - pulumi.set(__self__, "identity_validation_expression", identity_validation_expression) + _setter("identity_validation_expression", identity_validation_expression) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provider_arns is not None: - pulumi.set(__self__, "provider_arns", provider_arns) + _setter("provider_arns", provider_arns) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -490,6 +576,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AuthorizerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/base_path_mapping.py b/sdk/python/pulumi_aws/apigateway/base_path_mapping.py index af159084447..32dd45abc38 100644 --- a/sdk/python/pulumi_aws/apigateway/base_path_mapping.py +++ b/sdk/python/pulumi_aws/apigateway/base_path_mapping.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BasePathMappingArgs', 'BasePathMapping'] @@ -25,12 +25,41 @@ def __init__(__self__, *, :param pulumi.Input[str] base_path: Path segment that must be prepended to the path when accessing the API via this mapping. If omitted, the API is exposed at the root of the given domain. :param pulumi.Input[str] stage_name: Name of a specific deployment stage to expose at the given path. If omitted, callers may select any stage by including its name as a path element after the base path. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "rest_api", rest_api) + BasePathMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + rest_api=rest_api, + base_path=base_path, + stage_name=stage_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + base_path: Optional[pulumi.Input[str]] = None, + stage_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if base_path is None and 'basePath' in kwargs: + base_path = kwargs['basePath'] + if stage_name is None and 'stageName' in kwargs: + stage_name = kwargs['stageName'] + + _setter("domain_name", domain_name) + _setter("rest_api", rest_api) if base_path is not None: - pulumi.set(__self__, "base_path", base_path) + _setter("base_path", base_path) if stage_name is not None: - pulumi.set(__self__, "stage_name", stage_name) + _setter("stage_name", stage_name) @property @pulumi.getter(name="domainName") @@ -95,14 +124,39 @@ def __init__(__self__, *, :param pulumi.Input[str] rest_api: ID of the API to connect. :param pulumi.Input[str] stage_name: Name of a specific deployment stage to expose at the given path. If omitted, callers may select any stage by including its name as a path element after the base path. """ + _BasePathMappingState._configure( + lambda key, value: pulumi.set(__self__, key, value), + base_path=base_path, + domain_name=domain_name, + rest_api=rest_api, + stage_name=stage_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + base_path: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + stage_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_path is None and 'basePath' in kwargs: + base_path = kwargs['basePath'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if stage_name is None and 'stageName' in kwargs: + stage_name = kwargs['stageName'] + if base_path is not None: - pulumi.set(__self__, "base_path", base_path) + _setter("base_path", base_path) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if stage_name is not None: - pulumi.set(__self__, "stage_name", stage_name) + _setter("stage_name", stage_name) @property @pulumi.getter(name="basePath") @@ -274,6 +328,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BasePathMappingArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/client_certificate.py b/sdk/python/pulumi_aws/apigateway/client_certificate.py index cbe59d3acb6..046070802c4 100644 --- a/sdk/python/pulumi_aws/apigateway/client_certificate.py +++ b/sdk/python/pulumi_aws/apigateway/client_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClientCertificateArgs', 'ClientCertificate'] @@ -21,10 +21,23 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the client certificate. :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. """ + ClientCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -71,23 +84,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ClientCertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + description=description, + expiration_date=expiration_date, + pem_encoded_certificate=pem_encoded_certificate, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + expiration_date: Optional[pulumi.Input[str]] = None, + pem_encoded_certificate: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if expiration_date is None and 'expirationDate' in kwargs: + expiration_date = kwargs['expirationDate'] + if pem_encoded_certificate is None and 'pemEncodedCertificate' in kwargs: + pem_encoded_certificate = kwargs['pemEncodedCertificate'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if expiration_date is not None: - pulumi.set(__self__, "expiration_date", expiration_date) + _setter("expiration_date", expiration_date) if pem_encoded_certificate is not None: - pulumi.set(__self__, "pem_encoded_certificate", pem_encoded_certificate) + _setter("pem_encoded_certificate", pem_encoded_certificate) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -246,6 +290,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClientCertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/deployment.py b/sdk/python/pulumi_aws/apigateway/deployment.py index 73823ab4468..9178cf1db98 100644 --- a/sdk/python/pulumi_aws/apigateway/deployment.py +++ b/sdk/python/pulumi_aws/apigateway/deployment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DeploymentArgs', 'Deployment'] @@ -29,17 +29,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger a redeployment. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] variables: Map to set on the stage managed by the `stage_name` argument. """ - pulumi.set(__self__, "rest_api", rest_api) + DeploymentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rest_api=rest_api, + description=description, + stage_description=stage_description, + stage_name=stage_name, + triggers=triggers, + variables=variables, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rest_api: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + stage_description: Optional[pulumi.Input[str]] = None, + stage_name: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if stage_description is None and 'stageDescription' in kwargs: + stage_description = kwargs['stageDescription'] + if stage_name is None and 'stageName' in kwargs: + stage_name = kwargs['stageName'] + + _setter("rest_api", rest_api) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if stage_description is not None: - pulumi.set(__self__, "stage_description", stage_description) + _setter("stage_description", stage_description) if stage_name is not None: - pulumi.set(__self__, "stage_name", stage_name) + _setter("stage_name", stage_name) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) if variables is not None: - pulumi.set(__self__, "variables", variables) + _setter("variables", variables) @property @pulumi.getter(name="restApi") @@ -141,24 +170,63 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger a redeployment. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] variables: Map to set on the stage managed by the `stage_name` argument. """ + _DeploymentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + created_date=created_date, + description=description, + execution_arn=execution_arn, + invoke_url=invoke_url, + rest_api=rest_api, + stage_description=stage_description, + stage_name=stage_name, + triggers=triggers, + variables=variables, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + created_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_arn: Optional[pulumi.Input[str]] = None, + invoke_url: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + stage_description: Optional[pulumi.Input[str]] = None, + stage_name: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if execution_arn is None and 'executionArn' in kwargs: + execution_arn = kwargs['executionArn'] + if invoke_url is None and 'invokeUrl' in kwargs: + invoke_url = kwargs['invokeUrl'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if stage_description is None and 'stageDescription' in kwargs: + stage_description = kwargs['stageDescription'] + if stage_name is None and 'stageName' in kwargs: + stage_name = kwargs['stageName'] + if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if execution_arn is not None: - pulumi.set(__self__, "execution_arn", execution_arn) + _setter("execution_arn", execution_arn) if invoke_url is not None: - pulumi.set(__self__, "invoke_url", invoke_url) + _setter("invoke_url", invoke_url) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if stage_description is not None: - pulumi.set(__self__, "stage_description", stage_description) + _setter("stage_description", stage_description) if stage_name is not None: - pulumi.set(__self__, "stage_name", stage_name) + _setter("stage_name", stage_name) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) if variables is not None: - pulumi.set(__self__, "variables", variables) + _setter("variables", variables) @property @pulumi.getter(name="createdDate") @@ -503,6 +571,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeploymentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/documentation_part.py b/sdk/python/pulumi_aws/apigateway/documentation_part.py index 66f465bc6f1..511c5650e39 100644 --- a/sdk/python/pulumi_aws/apigateway/documentation_part.py +++ b/sdk/python/pulumi_aws/apigateway/documentation_part.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,32 @@ def __init__(__self__, *, :param pulumi.Input[str] properties: Content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., "{ \\"description\\": \\"The API does ...\\" }". Only Swagger-compliant key-value pairs can be exported and, hence, published. :param pulumi.Input[str] rest_api_id: ID of the associated Rest API """ - pulumi.set(__self__, "location", location) - pulumi.set(__self__, "properties", properties) - pulumi.set(__self__, "rest_api_id", rest_api_id) + DocumentationPartArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + location=location, + properties=properties, + rest_api_id=rest_api_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + location: Optional[pulumi.Input['DocumentationPartLocationArgs']] = None, + properties: Optional[pulumi.Input[str]] = None, + rest_api_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if location is None: + raise TypeError("Missing 'location' argument") + if properties is None: + raise TypeError("Missing 'properties' argument") + if rest_api_id is None and 'restApiId' in kwargs: + rest_api_id = kwargs['restApiId'] + if rest_api_id is None: + raise TypeError("Missing 'rest_api_id' argument") + + _setter("location", location) + _setter("properties", properties) + _setter("rest_api_id", rest_api_id) @property @pulumi.getter @@ -78,12 +101,29 @@ def __init__(__self__, *, :param pulumi.Input[str] properties: Content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., "{ \\"description\\": \\"The API does ...\\" }". Only Swagger-compliant key-value pairs can be exported and, hence, published. :param pulumi.Input[str] rest_api_id: ID of the associated Rest API """ + _DocumentationPartState._configure( + lambda key, value: pulumi.set(__self__, key, value), + location=location, + properties=properties, + rest_api_id=rest_api_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + location: Optional[pulumi.Input['DocumentationPartLocationArgs']] = None, + properties: Optional[pulumi.Input[str]] = None, + rest_api_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rest_api_id is None and 'restApiId' in kwargs: + rest_api_id = kwargs['restApiId'] + if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) if rest_api_id is not None: - pulumi.set(__self__, "rest_api_id", rest_api_id) + _setter("rest_api_id", rest_api_id) @property @pulumi.getter @@ -209,6 +249,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DocumentationPartArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -226,6 +270,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DocumentationPartArgs.__new__(DocumentationPartArgs) + location = _utilities.configure(location, DocumentationPartLocationArgs, True) if location is None and not opts.urn: raise TypeError("Missing required property 'location'") __props__.__dict__["location"] = location diff --git a/sdk/python/pulumi_aws/apigateway/documentation_version.py b/sdk/python/pulumi_aws/apigateway/documentation_version.py index acea1427121..21f9d4ca2e6 100644 --- a/sdk/python/pulumi_aws/apigateway/documentation_version.py +++ b/sdk/python/pulumi_aws/apigateway/documentation_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DocumentationVersionArgs', 'DocumentationVersion'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] version: Version identifier of the API documentation snapshot. :param pulumi.Input[str] description: Description of the API documentation version. """ - pulumi.set(__self__, "rest_api_id", rest_api_id) - pulumi.set(__self__, "version", version) + DocumentationVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rest_api_id=rest_api_id, + version=version, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rest_api_id: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rest_api_id is None and 'restApiId' in kwargs: + rest_api_id = kwargs['restApiId'] + if rest_api_id is None: + raise TypeError("Missing 'rest_api_id' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("rest_api_id", rest_api_id) + _setter("version", version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="restApiId") @@ -77,12 +98,29 @@ def __init__(__self__, *, :param pulumi.Input[str] rest_api_id: ID of the associated Rest API :param pulumi.Input[str] version: Version identifier of the API documentation snapshot. """ + _DocumentationVersionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + rest_api_id=rest_api_id, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + rest_api_id: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rest_api_id is None and 'restApiId' in kwargs: + rest_api_id = kwargs['restApiId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if rest_api_id is not None: - pulumi.set(__self__, "rest_api_id", rest_api_id) + _setter("rest_api_id", rest_api_id) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -214,6 +252,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DocumentationVersionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/domain_name.py b/sdk/python/pulumi_aws/apigateway/domain_name.py index 33b9b6543bc..2dcdc32125f 100644 --- a/sdk/python/pulumi_aws/apigateway/domain_name.py +++ b/sdk/python/pulumi_aws/apigateway/domain_name.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -49,31 +49,92 @@ def __init__(__self__, *, When referencing an AWS-managed certificate, the following arguments are supported: """ - pulumi.set(__self__, "domain_name", domain_name) + DomainNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + certificate_arn=certificate_arn, + certificate_body=certificate_body, + certificate_chain=certificate_chain, + certificate_name=certificate_name, + certificate_private_key=certificate_private_key, + endpoint_configuration=endpoint_configuration, + mutual_tls_authentication=mutual_tls_authentication, + ownership_verification_certificate_arn=ownership_verification_certificate_arn, + regional_certificate_arn=regional_certificate_arn, + regional_certificate_name=regional_certificate_name, + security_policy=security_policy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + certificate_body: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + certificate_name: Optional[pulumi.Input[str]] = None, + certificate_private_key: Optional[pulumi.Input[str]] = None, + endpoint_configuration: Optional[pulumi.Input['DomainNameEndpointConfigurationArgs']] = None, + mutual_tls_authentication: Optional[pulumi.Input['DomainNameMutualTlsAuthenticationArgs']] = None, + ownership_verification_certificate_arn: Optional[pulumi.Input[str]] = None, + regional_certificate_arn: Optional[pulumi.Input[str]] = None, + regional_certificate_name: Optional[pulumi.Input[str]] = None, + security_policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_body is None and 'certificateBody' in kwargs: + certificate_body = kwargs['certificateBody'] + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_name is None and 'certificateName' in kwargs: + certificate_name = kwargs['certificateName'] + if certificate_private_key is None and 'certificatePrivateKey' in kwargs: + certificate_private_key = kwargs['certificatePrivateKey'] + if endpoint_configuration is None and 'endpointConfiguration' in kwargs: + endpoint_configuration = kwargs['endpointConfiguration'] + if mutual_tls_authentication is None and 'mutualTlsAuthentication' in kwargs: + mutual_tls_authentication = kwargs['mutualTlsAuthentication'] + if ownership_verification_certificate_arn is None and 'ownershipVerificationCertificateArn' in kwargs: + ownership_verification_certificate_arn = kwargs['ownershipVerificationCertificateArn'] + if regional_certificate_arn is None and 'regionalCertificateArn' in kwargs: + regional_certificate_arn = kwargs['regionalCertificateArn'] + if regional_certificate_name is None and 'regionalCertificateName' in kwargs: + regional_certificate_name = kwargs['regionalCertificateName'] + if security_policy is None and 'securityPolicy' in kwargs: + security_policy = kwargs['securityPolicy'] + + _setter("domain_name", domain_name) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if certificate_body is not None: - pulumi.set(__self__, "certificate_body", certificate_body) + _setter("certificate_body", certificate_body) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if certificate_name is not None: - pulumi.set(__self__, "certificate_name", certificate_name) + _setter("certificate_name", certificate_name) if certificate_private_key is not None: - pulumi.set(__self__, "certificate_private_key", certificate_private_key) + _setter("certificate_private_key", certificate_private_key) if endpoint_configuration is not None: - pulumi.set(__self__, "endpoint_configuration", endpoint_configuration) + _setter("endpoint_configuration", endpoint_configuration) if mutual_tls_authentication is not None: - pulumi.set(__self__, "mutual_tls_authentication", mutual_tls_authentication) + _setter("mutual_tls_authentication", mutual_tls_authentication) if ownership_verification_certificate_arn is not None: - pulumi.set(__self__, "ownership_verification_certificate_arn", ownership_verification_certificate_arn) + _setter("ownership_verification_certificate_arn", ownership_verification_certificate_arn) if regional_certificate_arn is not None: - pulumi.set(__self__, "regional_certificate_arn", regional_certificate_arn) + _setter("regional_certificate_arn", regional_certificate_arn) if regional_certificate_name is not None: - pulumi.set(__self__, "regional_certificate_name", regional_certificate_name) + _setter("regional_certificate_name", regional_certificate_name) if security_policy is not None: - pulumi.set(__self__, "security_policy", security_policy) + _setter("security_policy", security_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="domainName") @@ -286,49 +347,134 @@ def __init__(__self__, *, When referencing an AWS-managed certificate, the following arguments are supported: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _DomainNameState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + certificate_arn=certificate_arn, + certificate_body=certificate_body, + certificate_chain=certificate_chain, + certificate_name=certificate_name, + certificate_private_key=certificate_private_key, + certificate_upload_date=certificate_upload_date, + cloudfront_domain_name=cloudfront_domain_name, + cloudfront_zone_id=cloudfront_zone_id, + domain_name=domain_name, + endpoint_configuration=endpoint_configuration, + mutual_tls_authentication=mutual_tls_authentication, + ownership_verification_certificate_arn=ownership_verification_certificate_arn, + regional_certificate_arn=regional_certificate_arn, + regional_certificate_name=regional_certificate_name, + regional_domain_name=regional_domain_name, + regional_zone_id=regional_zone_id, + security_policy=security_policy, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + certificate_body: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + certificate_name: Optional[pulumi.Input[str]] = None, + certificate_private_key: Optional[pulumi.Input[str]] = None, + certificate_upload_date: Optional[pulumi.Input[str]] = None, + cloudfront_domain_name: Optional[pulumi.Input[str]] = None, + cloudfront_zone_id: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + endpoint_configuration: Optional[pulumi.Input['DomainNameEndpointConfigurationArgs']] = None, + mutual_tls_authentication: Optional[pulumi.Input['DomainNameMutualTlsAuthenticationArgs']] = None, + ownership_verification_certificate_arn: Optional[pulumi.Input[str]] = None, + regional_certificate_arn: Optional[pulumi.Input[str]] = None, + regional_certificate_name: Optional[pulumi.Input[str]] = None, + regional_domain_name: Optional[pulumi.Input[str]] = None, + regional_zone_id: Optional[pulumi.Input[str]] = None, + security_policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_body is None and 'certificateBody' in kwargs: + certificate_body = kwargs['certificateBody'] + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_name is None and 'certificateName' in kwargs: + certificate_name = kwargs['certificateName'] + if certificate_private_key is None and 'certificatePrivateKey' in kwargs: + certificate_private_key = kwargs['certificatePrivateKey'] + if certificate_upload_date is None and 'certificateUploadDate' in kwargs: + certificate_upload_date = kwargs['certificateUploadDate'] + if cloudfront_domain_name is None and 'cloudfrontDomainName' in kwargs: + cloudfront_domain_name = kwargs['cloudfrontDomainName'] + if cloudfront_zone_id is None and 'cloudfrontZoneId' in kwargs: + cloudfront_zone_id = kwargs['cloudfrontZoneId'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if endpoint_configuration is None and 'endpointConfiguration' in kwargs: + endpoint_configuration = kwargs['endpointConfiguration'] + if mutual_tls_authentication is None and 'mutualTlsAuthentication' in kwargs: + mutual_tls_authentication = kwargs['mutualTlsAuthentication'] + if ownership_verification_certificate_arn is None and 'ownershipVerificationCertificateArn' in kwargs: + ownership_verification_certificate_arn = kwargs['ownershipVerificationCertificateArn'] + if regional_certificate_arn is None and 'regionalCertificateArn' in kwargs: + regional_certificate_arn = kwargs['regionalCertificateArn'] + if regional_certificate_name is None and 'regionalCertificateName' in kwargs: + regional_certificate_name = kwargs['regionalCertificateName'] + if regional_domain_name is None and 'regionalDomainName' in kwargs: + regional_domain_name = kwargs['regionalDomainName'] + if regional_zone_id is None and 'regionalZoneId' in kwargs: + regional_zone_id = kwargs['regionalZoneId'] + if security_policy is None and 'securityPolicy' in kwargs: + security_policy = kwargs['securityPolicy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if certificate_body is not None: - pulumi.set(__self__, "certificate_body", certificate_body) + _setter("certificate_body", certificate_body) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if certificate_name is not None: - pulumi.set(__self__, "certificate_name", certificate_name) + _setter("certificate_name", certificate_name) if certificate_private_key is not None: - pulumi.set(__self__, "certificate_private_key", certificate_private_key) + _setter("certificate_private_key", certificate_private_key) if certificate_upload_date is not None: - pulumi.set(__self__, "certificate_upload_date", certificate_upload_date) + _setter("certificate_upload_date", certificate_upload_date) if cloudfront_domain_name is not None: - pulumi.set(__self__, "cloudfront_domain_name", cloudfront_domain_name) + _setter("cloudfront_domain_name", cloudfront_domain_name) if cloudfront_zone_id is not None: - pulumi.set(__self__, "cloudfront_zone_id", cloudfront_zone_id) + _setter("cloudfront_zone_id", cloudfront_zone_id) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if endpoint_configuration is not None: - pulumi.set(__self__, "endpoint_configuration", endpoint_configuration) + _setter("endpoint_configuration", endpoint_configuration) if mutual_tls_authentication is not None: - pulumi.set(__self__, "mutual_tls_authentication", mutual_tls_authentication) + _setter("mutual_tls_authentication", mutual_tls_authentication) if ownership_verification_certificate_arn is not None: - pulumi.set(__self__, "ownership_verification_certificate_arn", ownership_verification_certificate_arn) + _setter("ownership_verification_certificate_arn", ownership_verification_certificate_arn) if regional_certificate_arn is not None: - pulumi.set(__self__, "regional_certificate_arn", regional_certificate_arn) + _setter("regional_certificate_arn", regional_certificate_arn) if regional_certificate_name is not None: - pulumi.set(__self__, "regional_certificate_name", regional_certificate_name) + _setter("regional_certificate_name", regional_certificate_name) if regional_domain_name is not None: - pulumi.set(__self__, "regional_domain_name", regional_domain_name) + _setter("regional_domain_name", regional_domain_name) if regional_zone_id is not None: - pulumi.set(__self__, "regional_zone_id", regional_zone_id) + _setter("regional_zone_id", regional_zone_id) if security_policy is not None: - pulumi.set(__self__, "security_policy", security_policy) + _setter("security_policy", security_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -799,6 +945,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainNameArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -834,7 +984,9 @@ def _internal_init(__self__, if domain_name is None and not opts.urn: raise TypeError("Missing required property 'domain_name'") __props__.__dict__["domain_name"] = domain_name + endpoint_configuration = _utilities.configure(endpoint_configuration, DomainNameEndpointConfigurationArgs, True) __props__.__dict__["endpoint_configuration"] = endpoint_configuration + mutual_tls_authentication = _utilities.configure(mutual_tls_authentication, DomainNameMutualTlsAuthenticationArgs, True) __props__.__dict__["mutual_tls_authentication"] = mutual_tls_authentication __props__.__dict__["ownership_verification_certificate_arn"] = ownership_verification_certificate_arn __props__.__dict__["regional_certificate_arn"] = regional_certificate_arn diff --git a/sdk/python/pulumi_aws/apigateway/get_authorizer.py b/sdk/python/pulumi_aws/apigateway/get_authorizer.py index 56caaee090f..8aad86992b9 100644 --- a/sdk/python/pulumi_aws/apigateway/get_authorizer.py +++ b/sdk/python/pulumi_aws/apigateway/get_authorizer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/apigateway/get_authorizers.py b/sdk/python/pulumi_aws/apigateway/get_authorizers.py index 0d87ee3fc32..4447c1ca64a 100644 --- a/sdk/python/pulumi_aws/apigateway/get_authorizers.py +++ b/sdk/python/pulumi_aws/apigateway/get_authorizers.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/apigateway/get_domain_name.py b/sdk/python/pulumi_aws/apigateway/get_domain_name.py index b9d13f96e24..049cb35014a 100644 --- a/sdk/python/pulumi_aws/apigateway/get_domain_name.py +++ b/sdk/python/pulumi_aws/apigateway/get_domain_name.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/apigateway/get_export.py b/sdk/python/pulumi_aws/apigateway/get_export.py index 7faa453fc20..7a425f717b4 100644 --- a/sdk/python/pulumi_aws/apigateway/get_export.py +++ b/sdk/python/pulumi_aws/apigateway/get_export.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/apigateway/get_key.py b/sdk/python/pulumi_aws/apigateway/get_key.py index c752778507f..15e33d0230d 100644 --- a/sdk/python/pulumi_aws/apigateway/get_key.py +++ b/sdk/python/pulumi_aws/apigateway/get_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/apigateway/get_resource.py b/sdk/python/pulumi_aws/apigateway/get_resource.py index b519fc4755d..15161539b38 100644 --- a/sdk/python/pulumi_aws/apigateway/get_resource.py +++ b/sdk/python/pulumi_aws/apigateway/get_resource.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/apigateway/get_rest_api.py b/sdk/python/pulumi_aws/apigateway/get_rest_api.py index 47d46192a8c..543a4a5afa3 100644 --- a/sdk/python/pulumi_aws/apigateway/get_rest_api.py +++ b/sdk/python/pulumi_aws/apigateway/get_rest_api.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/apigateway/get_sdk.py b/sdk/python/pulumi_aws/apigateway/get_sdk.py index 7116937a9ae..4f2885bf544 100644 --- a/sdk/python/pulumi_aws/apigateway/get_sdk.py +++ b/sdk/python/pulumi_aws/apigateway/get_sdk.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/apigateway/get_vpc_link.py b/sdk/python/pulumi_aws/apigateway/get_vpc_link.py index bb00b424d90..c722fe815d6 100644 --- a/sdk/python/pulumi_aws/apigateway/get_vpc_link.py +++ b/sdk/python/pulumi_aws/apigateway/get_vpc_link.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/apigateway/integration.py b/sdk/python/pulumi_aws/apigateway/integration.py index e15a685ccd3..3563312a7a3 100644 --- a/sdk/python/pulumi_aws/apigateway/integration.py +++ b/sdk/python/pulumi_aws/apigateway/integration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -61,36 +61,115 @@ def __init__(__self__, *, For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:012345678901:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation. """ - pulumi.set(__self__, "http_method", http_method) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "rest_api", rest_api) - pulumi.set(__self__, "type", type) + IntegrationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_method=http_method, + resource_id=resource_id, + rest_api=rest_api, + type=type, + cache_key_parameters=cache_key_parameters, + cache_namespace=cache_namespace, + connection_id=connection_id, + connection_type=connection_type, + content_handling=content_handling, + credentials=credentials, + integration_http_method=integration_http_method, + passthrough_behavior=passthrough_behavior, + request_parameters=request_parameters, + request_templates=request_templates, + timeout_milliseconds=timeout_milliseconds, + tls_config=tls_config, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_method: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + cache_key_parameters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cache_namespace: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + connection_type: Optional[pulumi.Input[str]] = None, + content_handling: Optional[pulumi.Input[str]] = None, + credentials: Optional[pulumi.Input[str]] = None, + integration_http_method: Optional[pulumi.Input[str]] = None, + passthrough_behavior: Optional[pulumi.Input[str]] = None, + request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + request_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout_milliseconds: Optional[pulumi.Input[int]] = None, + tls_config: Optional[pulumi.Input['IntegrationTlsConfigArgs']] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if http_method is None: + raise TypeError("Missing 'http_method' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if cache_key_parameters is None and 'cacheKeyParameters' in kwargs: + cache_key_parameters = kwargs['cacheKeyParameters'] + if cache_namespace is None and 'cacheNamespace' in kwargs: + cache_namespace = kwargs['cacheNamespace'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_type is None and 'connectionType' in kwargs: + connection_type = kwargs['connectionType'] + if content_handling is None and 'contentHandling' in kwargs: + content_handling = kwargs['contentHandling'] + if integration_http_method is None and 'integrationHttpMethod' in kwargs: + integration_http_method = kwargs['integrationHttpMethod'] + if passthrough_behavior is None and 'passthroughBehavior' in kwargs: + passthrough_behavior = kwargs['passthroughBehavior'] + if request_parameters is None and 'requestParameters' in kwargs: + request_parameters = kwargs['requestParameters'] + if request_templates is None and 'requestTemplates' in kwargs: + request_templates = kwargs['requestTemplates'] + if timeout_milliseconds is None and 'timeoutMilliseconds' in kwargs: + timeout_milliseconds = kwargs['timeoutMilliseconds'] + if tls_config is None and 'tlsConfig' in kwargs: + tls_config = kwargs['tlsConfig'] + + _setter("http_method", http_method) + _setter("resource_id", resource_id) + _setter("rest_api", rest_api) + _setter("type", type) if cache_key_parameters is not None: - pulumi.set(__self__, "cache_key_parameters", cache_key_parameters) + _setter("cache_key_parameters", cache_key_parameters) if cache_namespace is not None: - pulumi.set(__self__, "cache_namespace", cache_namespace) + _setter("cache_namespace", cache_namespace) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if connection_type is not None: - pulumi.set(__self__, "connection_type", connection_type) + _setter("connection_type", connection_type) if content_handling is not None: - pulumi.set(__self__, "content_handling", content_handling) + _setter("content_handling", content_handling) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) if integration_http_method is not None: - pulumi.set(__self__, "integration_http_method", integration_http_method) + _setter("integration_http_method", integration_http_method) if passthrough_behavior is not None: - pulumi.set(__self__, "passthrough_behavior", passthrough_behavior) + _setter("passthrough_behavior", passthrough_behavior) if request_parameters is not None: - pulumi.set(__self__, "request_parameters", request_parameters) + _setter("request_parameters", request_parameters) if request_templates is not None: - pulumi.set(__self__, "request_templates", request_templates) + _setter("request_templates", request_templates) if timeout_milliseconds is not None: - pulumi.set(__self__, "timeout_milliseconds", timeout_milliseconds) + _setter("timeout_milliseconds", timeout_milliseconds) if tls_config is not None: - pulumi.set(__self__, "tls_config", tls_config) + _setter("tls_config", tls_config) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter(name="httpMethod") @@ -353,40 +432,111 @@ def __init__(__self__, *, For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:012345678901:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation. """ + _IntegrationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_key_parameters=cache_key_parameters, + cache_namespace=cache_namespace, + connection_id=connection_id, + connection_type=connection_type, + content_handling=content_handling, + credentials=credentials, + http_method=http_method, + integration_http_method=integration_http_method, + passthrough_behavior=passthrough_behavior, + request_parameters=request_parameters, + request_templates=request_templates, + resource_id=resource_id, + rest_api=rest_api, + timeout_milliseconds=timeout_milliseconds, + tls_config=tls_config, + type=type, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_key_parameters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cache_namespace: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + connection_type: Optional[pulumi.Input[str]] = None, + content_handling: Optional[pulumi.Input[str]] = None, + credentials: Optional[pulumi.Input[str]] = None, + http_method: Optional[pulumi.Input[str]] = None, + integration_http_method: Optional[pulumi.Input[str]] = None, + passthrough_behavior: Optional[pulumi.Input[str]] = None, + request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + request_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + timeout_milliseconds: Optional[pulumi.Input[int]] = None, + tls_config: Optional[pulumi.Input['IntegrationTlsConfigArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_key_parameters is None and 'cacheKeyParameters' in kwargs: + cache_key_parameters = kwargs['cacheKeyParameters'] + if cache_namespace is None and 'cacheNamespace' in kwargs: + cache_namespace = kwargs['cacheNamespace'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_type is None and 'connectionType' in kwargs: + connection_type = kwargs['connectionType'] + if content_handling is None and 'contentHandling' in kwargs: + content_handling = kwargs['contentHandling'] + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if integration_http_method is None and 'integrationHttpMethod' in kwargs: + integration_http_method = kwargs['integrationHttpMethod'] + if passthrough_behavior is None and 'passthroughBehavior' in kwargs: + passthrough_behavior = kwargs['passthroughBehavior'] + if request_parameters is None and 'requestParameters' in kwargs: + request_parameters = kwargs['requestParameters'] + if request_templates is None and 'requestTemplates' in kwargs: + request_templates = kwargs['requestTemplates'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if timeout_milliseconds is None and 'timeoutMilliseconds' in kwargs: + timeout_milliseconds = kwargs['timeoutMilliseconds'] + if tls_config is None and 'tlsConfig' in kwargs: + tls_config = kwargs['tlsConfig'] + if cache_key_parameters is not None: - pulumi.set(__self__, "cache_key_parameters", cache_key_parameters) + _setter("cache_key_parameters", cache_key_parameters) if cache_namespace is not None: - pulumi.set(__self__, "cache_namespace", cache_namespace) + _setter("cache_namespace", cache_namespace) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if connection_type is not None: - pulumi.set(__self__, "connection_type", connection_type) + _setter("connection_type", connection_type) if content_handling is not None: - pulumi.set(__self__, "content_handling", content_handling) + _setter("content_handling", content_handling) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if integration_http_method is not None: - pulumi.set(__self__, "integration_http_method", integration_http_method) + _setter("integration_http_method", integration_http_method) if passthrough_behavior is not None: - pulumi.set(__self__, "passthrough_behavior", passthrough_behavior) + _setter("passthrough_behavior", passthrough_behavior) if request_parameters is not None: - pulumi.set(__self__, "request_parameters", request_parameters) + _setter("request_parameters", request_parameters) if request_templates is not None: - pulumi.set(__self__, "request_templates", request_templates) + _setter("request_templates", request_templates) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if timeout_milliseconds is not None: - pulumi.set(__self__, "timeout_milliseconds", timeout_milliseconds) + _setter("timeout_milliseconds", timeout_milliseconds) if tls_config is not None: - pulumi.set(__self__, "tls_config", tls_config) + _setter("tls_config", tls_config) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter(name="cacheKeyParameters") @@ -856,6 +1006,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IntegrationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -907,6 +1061,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'rest_api'") __props__.__dict__["rest_api"] = rest_api __props__.__dict__["timeout_milliseconds"] = timeout_milliseconds + tls_config = _utilities.configure(tls_config, IntegrationTlsConfigArgs, True) __props__.__dict__["tls_config"] = tls_config if type is None and not opts.urn: raise TypeError("Missing required property 'type'") diff --git a/sdk/python/pulumi_aws/apigateway/integration_response.py b/sdk/python/pulumi_aws/apigateway/integration_response.py index a69708b3c91..f6abd7220c8 100644 --- a/sdk/python/pulumi_aws/apigateway/integration_response.py +++ b/sdk/python/pulumi_aws/apigateway/integration_response.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['IntegrationResponseArgs', 'IntegrationResponse'] @@ -35,18 +35,67 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] response_templates: Map of templates used to transform the integration response body. :param pulumi.Input[str] selection_pattern: Regular expression pattern used to choose an integration response based on the response from the backend. Omit configuring this to make the integration the default one. If the backend is an `AWS` Lambda function, the AWS Lambda function error header is matched. For all other `HTTP` and `AWS` backends, the HTTP status code is matched. """ - pulumi.set(__self__, "http_method", http_method) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "rest_api", rest_api) - pulumi.set(__self__, "status_code", status_code) + IntegrationResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_method=http_method, + resource_id=resource_id, + rest_api=rest_api, + status_code=status_code, + content_handling=content_handling, + response_parameters=response_parameters, + response_templates=response_templates, + selection_pattern=selection_pattern, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_method: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + content_handling: Optional[pulumi.Input[str]] = None, + response_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + selection_pattern: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if http_method is None: + raise TypeError("Missing 'http_method' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + if content_handling is None and 'contentHandling' in kwargs: + content_handling = kwargs['contentHandling'] + if response_parameters is None and 'responseParameters' in kwargs: + response_parameters = kwargs['responseParameters'] + if response_templates is None and 'responseTemplates' in kwargs: + response_templates = kwargs['responseTemplates'] + if selection_pattern is None and 'selectionPattern' in kwargs: + selection_pattern = kwargs['selectionPattern'] + + _setter("http_method", http_method) + _setter("resource_id", resource_id) + _setter("rest_api", rest_api) + _setter("status_code", status_code) if content_handling is not None: - pulumi.set(__self__, "content_handling", content_handling) + _setter("content_handling", content_handling) if response_parameters is not None: - pulumi.set(__self__, "response_parameters", response_parameters) + _setter("response_parameters", response_parameters) if response_templates is not None: - pulumi.set(__self__, "response_templates", response_templates) + _setter("response_templates", response_templates) if selection_pattern is not None: - pulumi.set(__self__, "selection_pattern", selection_pattern) + _setter("selection_pattern", selection_pattern) @property @pulumi.getter(name="httpMethod") @@ -171,22 +220,63 @@ def __init__(__self__, *, The following arguments are optional: """ + _IntegrationResponseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_handling=content_handling, + http_method=http_method, + resource_id=resource_id, + response_parameters=response_parameters, + response_templates=response_templates, + rest_api=rest_api, + selection_pattern=selection_pattern, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_handling: Optional[pulumi.Input[str]] = None, + http_method: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + response_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + selection_pattern: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_handling is None and 'contentHandling' in kwargs: + content_handling = kwargs['contentHandling'] + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if response_parameters is None and 'responseParameters' in kwargs: + response_parameters = kwargs['responseParameters'] + if response_templates is None and 'responseTemplates' in kwargs: + response_templates = kwargs['responseTemplates'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if selection_pattern is None and 'selectionPattern' in kwargs: + selection_pattern = kwargs['selectionPattern'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if content_handling is not None: - pulumi.set(__self__, "content_handling", content_handling) + _setter("content_handling", content_handling) if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if response_parameters is not None: - pulumi.set(__self__, "response_parameters", response_parameters) + _setter("response_parameters", response_parameters) if response_templates is not None: - pulumi.set(__self__, "response_templates", response_templates) + _setter("response_templates", response_templates) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if selection_pattern is not None: - pulumi.set(__self__, "selection_pattern", selection_pattern) + _setter("selection_pattern", selection_pattern) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="contentHandling") @@ -440,6 +530,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IntegrationResponseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/method.py b/sdk/python/pulumi_aws/apigateway/method.py index 066ad29f0e9..861d98c1a2d 100644 --- a/sdk/python/pulumi_aws/apigateway/method.py +++ b/sdk/python/pulumi_aws/apigateway/method.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MethodArgs', 'Method'] @@ -42,24 +42,83 @@ def __init__(__self__, *, For example: `request_parameters = {"method.request.header.X-Some-Header" = true "method.request.querystring.some-query-param" = true}` would define that the header `X-Some-Header` and the query string `some-query-param` must be provided in the request. :param pulumi.Input[str] request_validator_id: ID of a `apigateway.RequestValidator` """ - pulumi.set(__self__, "authorization", authorization) - pulumi.set(__self__, "http_method", http_method) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "rest_api", rest_api) + MethodArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization=authorization, + http_method=http_method, + resource_id=resource_id, + rest_api=rest_api, + api_key_required=api_key_required, + authorization_scopes=authorization_scopes, + authorizer_id=authorizer_id, + operation_name=operation_name, + request_models=request_models, + request_parameters=request_parameters, + request_validator_id=request_validator_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization: Optional[pulumi.Input[str]] = None, + http_method: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + api_key_required: Optional[pulumi.Input[bool]] = None, + authorization_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + authorizer_id: Optional[pulumi.Input[str]] = None, + operation_name: Optional[pulumi.Input[str]] = None, + request_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, + request_validator_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization is None: + raise TypeError("Missing 'authorization' argument") + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if http_method is None: + raise TypeError("Missing 'http_method' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if api_key_required is None and 'apiKeyRequired' in kwargs: + api_key_required = kwargs['apiKeyRequired'] + if authorization_scopes is None and 'authorizationScopes' in kwargs: + authorization_scopes = kwargs['authorizationScopes'] + if authorizer_id is None and 'authorizerId' in kwargs: + authorizer_id = kwargs['authorizerId'] + if operation_name is None and 'operationName' in kwargs: + operation_name = kwargs['operationName'] + if request_models is None and 'requestModels' in kwargs: + request_models = kwargs['requestModels'] + if request_parameters is None and 'requestParameters' in kwargs: + request_parameters = kwargs['requestParameters'] + if request_validator_id is None and 'requestValidatorId' in kwargs: + request_validator_id = kwargs['requestValidatorId'] + + _setter("authorization", authorization) + _setter("http_method", http_method) + _setter("resource_id", resource_id) + _setter("rest_api", rest_api) if api_key_required is not None: - pulumi.set(__self__, "api_key_required", api_key_required) + _setter("api_key_required", api_key_required) if authorization_scopes is not None: - pulumi.set(__self__, "authorization_scopes", authorization_scopes) + _setter("authorization_scopes", authorization_scopes) if authorizer_id is not None: - pulumi.set(__self__, "authorizer_id", authorizer_id) + _setter("authorizer_id", authorizer_id) if operation_name is not None: - pulumi.set(__self__, "operation_name", operation_name) + _setter("operation_name", operation_name) if request_models is not None: - pulumi.set(__self__, "request_models", request_models) + _setter("request_models", request_models) if request_parameters is not None: - pulumi.set(__self__, "request_parameters", request_parameters) + _setter("request_parameters", request_parameters) if request_validator_id is not None: - pulumi.set(__self__, "request_validator_id", request_validator_id) + _setter("request_validator_id", request_validator_id) @property @pulumi.getter @@ -228,28 +287,79 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_id: API resource ID :param pulumi.Input[str] rest_api: ID of the associated REST API """ + _MethodState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key_required=api_key_required, + authorization=authorization, + authorization_scopes=authorization_scopes, + authorizer_id=authorizer_id, + http_method=http_method, + operation_name=operation_name, + request_models=request_models, + request_parameters=request_parameters, + request_validator_id=request_validator_id, + resource_id=resource_id, + rest_api=rest_api, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key_required: Optional[pulumi.Input[bool]] = None, + authorization: Optional[pulumi.Input[str]] = None, + authorization_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + authorizer_id: Optional[pulumi.Input[str]] = None, + http_method: Optional[pulumi.Input[str]] = None, + operation_name: Optional[pulumi.Input[str]] = None, + request_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, + request_validator_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key_required is None and 'apiKeyRequired' in kwargs: + api_key_required = kwargs['apiKeyRequired'] + if authorization_scopes is None and 'authorizationScopes' in kwargs: + authorization_scopes = kwargs['authorizationScopes'] + if authorizer_id is None and 'authorizerId' in kwargs: + authorizer_id = kwargs['authorizerId'] + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if operation_name is None and 'operationName' in kwargs: + operation_name = kwargs['operationName'] + if request_models is None and 'requestModels' in kwargs: + request_models = kwargs['requestModels'] + if request_parameters is None and 'requestParameters' in kwargs: + request_parameters = kwargs['requestParameters'] + if request_validator_id is None and 'requestValidatorId' in kwargs: + request_validator_id = kwargs['requestValidatorId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if api_key_required is not None: - pulumi.set(__self__, "api_key_required", api_key_required) + _setter("api_key_required", api_key_required) if authorization is not None: - pulumi.set(__self__, "authorization", authorization) + _setter("authorization", authorization) if authorization_scopes is not None: - pulumi.set(__self__, "authorization_scopes", authorization_scopes) + _setter("authorization_scopes", authorization_scopes) if authorizer_id is not None: - pulumi.set(__self__, "authorizer_id", authorizer_id) + _setter("authorizer_id", authorizer_id) if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if operation_name is not None: - pulumi.set(__self__, "operation_name", operation_name) + _setter("operation_name", operation_name) if request_models is not None: - pulumi.set(__self__, "request_models", request_models) + _setter("request_models", request_models) if request_parameters is not None: - pulumi.set(__self__, "request_parameters", request_parameters) + _setter("request_parameters", request_parameters) if request_validator_id is not None: - pulumi.set(__self__, "request_validator_id", request_validator_id) + _setter("request_validator_id", request_validator_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) @property @pulumi.getter(name="apiKeyRequired") @@ -551,6 +661,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MethodArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/method_response.py b/sdk/python/pulumi_aws/apigateway/method_response.py index 8a0141359aa..562ae4837fa 100644 --- a/sdk/python/pulumi_aws/apigateway/method_response.py +++ b/sdk/python/pulumi_aws/apigateway/method_response.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MethodResponseArgs', 'MethodResponse'] @@ -31,14 +31,55 @@ def __init__(__self__, *, For example: `response_parameters = { "method.response.header.X-Some-Header" = true }` would define that the header `X-Some-Header` can be provided on the response. """ - pulumi.set(__self__, "http_method", http_method) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "rest_api", rest_api) - pulumi.set(__self__, "status_code", status_code) + MethodResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_method=http_method, + resource_id=resource_id, + rest_api=rest_api, + status_code=status_code, + response_models=response_models, + response_parameters=response_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_method: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + response_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if http_method is None: + raise TypeError("Missing 'http_method' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + if response_models is None and 'responseModels' in kwargs: + response_models = kwargs['responseModels'] + if response_parameters is None and 'responseParameters' in kwargs: + response_parameters = kwargs['responseParameters'] + + _setter("http_method", http_method) + _setter("resource_id", resource_id) + _setter("rest_api", rest_api) + _setter("status_code", status_code) if response_models is not None: - pulumi.set(__self__, "response_models", response_models) + _setter("response_models", response_models) if response_parameters is not None: - pulumi.set(__self__, "response_parameters", response_parameters) + _setter("response_parameters", response_parameters) @property @pulumi.getter(name="httpMethod") @@ -135,18 +176,51 @@ def __init__(__self__, *, :param pulumi.Input[str] rest_api: ID of the associated REST API :param pulumi.Input[str] status_code: HTTP status code """ + _MethodResponseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_method=http_method, + resource_id=resource_id, + response_models=response_models, + response_parameters=response_parameters, + rest_api=rest_api, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_method: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + response_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if response_models is None and 'responseModels' in kwargs: + response_models = kwargs['responseModels'] + if response_parameters is None and 'responseParameters' in kwargs: + response_parameters = kwargs['responseParameters'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if response_models is not None: - pulumi.set(__self__, "response_models", response_models) + _setter("response_models", response_models) if response_parameters is not None: - pulumi.set(__self__, "response_parameters", response_parameters) + _setter("response_parameters", response_parameters) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="httpMethod") @@ -340,6 +414,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MethodResponseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/method_settings.py b/sdk/python/pulumi_aws/apigateway/method_settings.py index 6ffe2be149d..c7ea562c412 100644 --- a/sdk/python/pulumi_aws/apigateway/method_settings.py +++ b/sdk/python/pulumi_aws/apigateway/method_settings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,10 +27,41 @@ def __init__(__self__, *, :param pulumi.Input['MethodSettingsSettingsArgs'] settings: Settings block, see below. :param pulumi.Input[str] stage_name: Name of the stage """ - pulumi.set(__self__, "method_path", method_path) - pulumi.set(__self__, "rest_api", rest_api) - pulumi.set(__self__, "settings", settings) - pulumi.set(__self__, "stage_name", stage_name) + MethodSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + method_path=method_path, + rest_api=rest_api, + settings=settings, + stage_name=stage_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + method_path: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input['MethodSettingsSettingsArgs']] = None, + stage_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if method_path is None and 'methodPath' in kwargs: + method_path = kwargs['methodPath'] + if method_path is None: + raise TypeError("Missing 'method_path' argument") + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if settings is None: + raise TypeError("Missing 'settings' argument") + if stage_name is None and 'stageName' in kwargs: + stage_name = kwargs['stageName'] + if stage_name is None: + raise TypeError("Missing 'stage_name' argument") + + _setter("method_path", method_path) + _setter("rest_api", rest_api) + _setter("settings", settings) + _setter("stage_name", stage_name) @property @pulumi.getter(name="methodPath") @@ -95,14 +126,37 @@ def __init__(__self__, *, :param pulumi.Input['MethodSettingsSettingsArgs'] settings: Settings block, see below. :param pulumi.Input[str] stage_name: Name of the stage """ + _MethodSettingsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + method_path=method_path, + rest_api=rest_api, + settings=settings, + stage_name=stage_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + method_path: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input['MethodSettingsSettingsArgs']] = None, + stage_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if method_path is None and 'methodPath' in kwargs: + method_path = kwargs['methodPath'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if stage_name is None and 'stageName' in kwargs: + stage_name = kwargs['stageName'] + if method_path is not None: - pulumi.set(__self__, "method_path", method_path) + _setter("method_path", method_path) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) if stage_name is not None: - pulumi.set(__self__, "stage_name", stage_name) + _setter("stage_name", stage_name) @property @pulumi.getter(name="methodPath") @@ -456,6 +510,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MethodSettingsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -480,6 +538,7 @@ def _internal_init(__self__, if rest_api is None and not opts.urn: raise TypeError("Missing required property 'rest_api'") __props__.__dict__["rest_api"] = rest_api + settings = _utilities.configure(settings, MethodSettingsSettingsArgs, True) if settings is None and not opts.urn: raise TypeError("Missing required property 'settings'") __props__.__dict__["settings"] = settings diff --git a/sdk/python/pulumi_aws/apigateway/model.py b/sdk/python/pulumi_aws/apigateway/model.py index 68a12b39f79..a0325f744d4 100644 --- a/sdk/python/pulumi_aws/apigateway/model.py +++ b/sdk/python/pulumi_aws/apigateway/model.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ModelArgs', 'Model'] @@ -27,14 +27,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the model :param pulumi.Input[str] schema: Schema of the model in a JSON form """ - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "rest_api", rest_api) + ModelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + rest_api=rest_api, + description=description, + name=name, + schema=schema, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + + _setter("content_type", content_type) + _setter("rest_api", rest_api) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) @property @pulumi.getter(name="contentType") @@ -113,16 +140,39 @@ def __init__(__self__, *, :param pulumi.Input[str] rest_api: ID of the associated REST API :param pulumi.Input[str] schema: Schema of the model in a JSON form """ + _ModelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + description=description, + name=name, + rest_api=rest_api, + schema=schema, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) @property @pulumi.getter(name="contentType") @@ -276,6 +326,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ModelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/outputs.py b/sdk/python/pulumi_aws/apigateway/outputs.py index 825da7eafcb..04a51754f13 100644 --- a/sdk/python/pulumi_aws/apigateway/outputs.py +++ b/sdk/python/pulumi_aws/apigateway/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -56,10 +56,27 @@ def __init__(__self__, *, :param int burst_limit: Absolute maximum number of times API Gateway allows the API to be called per second (RPS). :param float rate_limit: Number of times API Gateway allows the API to be called per second on average (RPS). """ + AccountThrottleSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + burst_limit=burst_limit, + rate_limit=rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + burst_limit: Optional[int] = None, + rate_limit: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if burst_limit is None and 'burstLimit' in kwargs: + burst_limit = kwargs['burstLimit'] + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + if burst_limit is not None: - pulumi.set(__self__, "burst_limit", burst_limit) + _setter("burst_limit", burst_limit) if rate_limit is not None: - pulumi.set(__self__, "rate_limit", rate_limit) + _setter("rate_limit", rate_limit) @property @pulumi.getter(name="burstLimit") @@ -110,15 +127,38 @@ def __init__(__self__, *, :param str path: URL path of the target. The default value is `/` for the root resource. :param str status_code: HTTP status code of a response. The default value is `*` for any status code. """ - pulumi.set(__self__, "type", type) + DocumentationPartLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + method=method, + name=name, + path=path, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + method: Optional[str] = None, + name: Optional[str] = None, + path: Optional[str] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("type", type) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter @@ -168,7 +208,20 @@ def __init__(__self__, *, """ :param str types: List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE` or `REGIONAL`. If unspecified, defaults to `EDGE`. Must be declared as `REGIONAL` in non-Commercial partitions. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs. """ - pulumi.set(__self__, "types", types) + DomainNameEndpointConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + types=types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + types: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if types is None: + raise TypeError("Missing 'types' argument") + + _setter("types", types) @property @pulumi.getter @@ -207,9 +260,28 @@ def __init__(__self__, *, :param str truststore_uri: Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. :param str truststore_version: Version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. """ - pulumi.set(__self__, "truststore_uri", truststore_uri) + DomainNameMutualTlsAuthentication._configure( + lambda key, value: pulumi.set(__self__, key, value), + truststore_uri=truststore_uri, + truststore_version=truststore_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + truststore_uri: Optional[str] = None, + truststore_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if truststore_uri is None and 'truststoreUri' in kwargs: + truststore_uri = kwargs['truststoreUri'] + if truststore_uri is None: + raise TypeError("Missing 'truststore_uri' argument") + if truststore_version is None and 'truststoreVersion' in kwargs: + truststore_version = kwargs['truststoreVersion'] + + _setter("truststore_uri", truststore_uri) if truststore_version is not None: - pulumi.set(__self__, "truststore_version", truststore_version) + _setter("truststore_version", truststore_version) @property @pulumi.getter(name="truststoreUri") @@ -252,8 +324,21 @@ def __init__(__self__, *, """ :param bool insecure_skip_verification: Whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. """ + IntegrationTlsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + insecure_skip_verification=insecure_skip_verification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insecure_skip_verification: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insecure_skip_verification is None and 'insecureSkipVerification' in kwargs: + insecure_skip_verification = kwargs['insecureSkipVerification'] + if insecure_skip_verification is not None: - pulumi.set(__self__, "insecure_skip_verification", insecure_skip_verification) + _setter("insecure_skip_verification", insecure_skip_verification) @property @pulumi.getter(name="insecureSkipVerification") @@ -324,26 +409,75 @@ def __init__(__self__, *, :param float throttling_rate_limit: Throttling rate limit. Default: `-1` (throttling disabled). :param str unauthorized_cache_control_header_strategy: How to handle unauthorized requests for cache invalidation. The available values are `FAIL_WITH_403`, `SUCCEED_WITH_RESPONSE_HEADER`, `SUCCEED_WITHOUT_RESPONSE_HEADER`. """ + MethodSettingsSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_data_encrypted=cache_data_encrypted, + cache_ttl_in_seconds=cache_ttl_in_seconds, + caching_enabled=caching_enabled, + data_trace_enabled=data_trace_enabled, + logging_level=logging_level, + metrics_enabled=metrics_enabled, + require_authorization_for_cache_control=require_authorization_for_cache_control, + throttling_burst_limit=throttling_burst_limit, + throttling_rate_limit=throttling_rate_limit, + unauthorized_cache_control_header_strategy=unauthorized_cache_control_header_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_data_encrypted: Optional[bool] = None, + cache_ttl_in_seconds: Optional[int] = None, + caching_enabled: Optional[bool] = None, + data_trace_enabled: Optional[bool] = None, + logging_level: Optional[str] = None, + metrics_enabled: Optional[bool] = None, + require_authorization_for_cache_control: Optional[bool] = None, + throttling_burst_limit: Optional[int] = None, + throttling_rate_limit: Optional[float] = None, + unauthorized_cache_control_header_strategy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_data_encrypted is None and 'cacheDataEncrypted' in kwargs: + cache_data_encrypted = kwargs['cacheDataEncrypted'] + if cache_ttl_in_seconds is None and 'cacheTtlInSeconds' in kwargs: + cache_ttl_in_seconds = kwargs['cacheTtlInSeconds'] + if caching_enabled is None and 'cachingEnabled' in kwargs: + caching_enabled = kwargs['cachingEnabled'] + if data_trace_enabled is None and 'dataTraceEnabled' in kwargs: + data_trace_enabled = kwargs['dataTraceEnabled'] + if logging_level is None and 'loggingLevel' in kwargs: + logging_level = kwargs['loggingLevel'] + if metrics_enabled is None and 'metricsEnabled' in kwargs: + metrics_enabled = kwargs['metricsEnabled'] + if require_authorization_for_cache_control is None and 'requireAuthorizationForCacheControl' in kwargs: + require_authorization_for_cache_control = kwargs['requireAuthorizationForCacheControl'] + if throttling_burst_limit is None and 'throttlingBurstLimit' in kwargs: + throttling_burst_limit = kwargs['throttlingBurstLimit'] + if throttling_rate_limit is None and 'throttlingRateLimit' in kwargs: + throttling_rate_limit = kwargs['throttlingRateLimit'] + if unauthorized_cache_control_header_strategy is None and 'unauthorizedCacheControlHeaderStrategy' in kwargs: + unauthorized_cache_control_header_strategy = kwargs['unauthorizedCacheControlHeaderStrategy'] + if cache_data_encrypted is not None: - pulumi.set(__self__, "cache_data_encrypted", cache_data_encrypted) + _setter("cache_data_encrypted", cache_data_encrypted) if cache_ttl_in_seconds is not None: - pulumi.set(__self__, "cache_ttl_in_seconds", cache_ttl_in_seconds) + _setter("cache_ttl_in_seconds", cache_ttl_in_seconds) if caching_enabled is not None: - pulumi.set(__self__, "caching_enabled", caching_enabled) + _setter("caching_enabled", caching_enabled) if data_trace_enabled is not None: - pulumi.set(__self__, "data_trace_enabled", data_trace_enabled) + _setter("data_trace_enabled", data_trace_enabled) if logging_level is not None: - pulumi.set(__self__, "logging_level", logging_level) + _setter("logging_level", logging_level) if metrics_enabled is not None: - pulumi.set(__self__, "metrics_enabled", metrics_enabled) + _setter("metrics_enabled", metrics_enabled) if require_authorization_for_cache_control is not None: - pulumi.set(__self__, "require_authorization_for_cache_control", require_authorization_for_cache_control) + _setter("require_authorization_for_cache_control", require_authorization_for_cache_control) if throttling_burst_limit is not None: - pulumi.set(__self__, "throttling_burst_limit", throttling_burst_limit) + _setter("throttling_burst_limit", throttling_burst_limit) if throttling_rate_limit is not None: - pulumi.set(__self__, "throttling_rate_limit", throttling_rate_limit) + _setter("throttling_rate_limit", throttling_rate_limit) if unauthorized_cache_control_header_strategy is not None: - pulumi.set(__self__, "unauthorized_cache_control_header_strategy", unauthorized_cache_control_header_strategy) + _setter("unauthorized_cache_control_header_strategy", unauthorized_cache_control_header_strategy) @property @pulumi.getter(name="cacheDataEncrypted") @@ -452,9 +586,26 @@ def __init__(__self__, *, :param str types: List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE`, `REGIONAL` or `PRIVATE`. If unspecified, defaults to `EDGE`. If set to `PRIVATE` recommend to set `put_rest_api_mode` = `merge` to not cause the endpoints and associated Route53 records to be deleted. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs. :param Sequence[str] vpc_endpoint_ids: Set of VPC Endpoint identifiers. It is only supported for `PRIVATE` endpoint type. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `vpcEndpointIds` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is provided and is different than the OpenAPI value, **the argument value will override the OpenAPI value**. """ - pulumi.set(__self__, "types", types) + RestApiEndpointConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + types=types, + vpc_endpoint_ids=vpc_endpoint_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + types: Optional[str] = None, + vpc_endpoint_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if types is None: + raise TypeError("Missing 'types' argument") + if vpc_endpoint_ids is None and 'vpcEndpointIds' in kwargs: + vpc_endpoint_ids = kwargs['vpcEndpointIds'] + + _setter("types", types) if vpc_endpoint_ids is not None: - pulumi.set(__self__, "vpc_endpoint_ids", vpc_endpoint_ids) + _setter("vpc_endpoint_ids", vpc_endpoint_ids) @property @pulumi.getter @@ -500,8 +651,27 @@ def __init__(__self__, *, :param str format: Formatting and values recorded in the logs. For more information on configuring the log format rules visit the AWS [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html) """ - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "format", format) + StageAccessLogSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[str] = None, + format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if format is None: + raise TypeError("Missing 'format' argument") + + _setter("destination_arn", destination_arn) + _setter("format", format) @property @pulumi.getter(name="destinationArn") @@ -553,12 +723,33 @@ def __init__(__self__, *, :param Mapping[str, str] stage_variable_overrides: Map of overridden stage `variables` (including new variables) for the canary deployment. :param bool use_stage_cache: Whether the canary deployment uses the stage cache. Defaults to false. """ + StageCanarySettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + percent_traffic=percent_traffic, + stage_variable_overrides=stage_variable_overrides, + use_stage_cache=use_stage_cache, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + percent_traffic: Optional[float] = None, + stage_variable_overrides: Optional[Mapping[str, str]] = None, + use_stage_cache: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if percent_traffic is None and 'percentTraffic' in kwargs: + percent_traffic = kwargs['percentTraffic'] + if stage_variable_overrides is None and 'stageVariableOverrides' in kwargs: + stage_variable_overrides = kwargs['stageVariableOverrides'] + if use_stage_cache is None and 'useStageCache' in kwargs: + use_stage_cache = kwargs['useStageCache'] + if percent_traffic is not None: - pulumi.set(__self__, "percent_traffic", percent_traffic) + _setter("percent_traffic", percent_traffic) if stage_variable_overrides is not None: - pulumi.set(__self__, "stage_variable_overrides", stage_variable_overrides) + _setter("stage_variable_overrides", stage_variable_overrides) if use_stage_cache is not None: - pulumi.set(__self__, "use_stage_cache", use_stage_cache) + _setter("use_stage_cache", use_stage_cache) @property @pulumi.getter(name="percentTraffic") @@ -613,10 +804,31 @@ def __init__(__self__, *, :param str stage: API stage name of the associated API stage in a usage plan. :param Sequence['UsagePlanApiStageThrottleArgs'] throttles: The throttling limits of the usage plan. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "stage", stage) + UsagePlanApiStage._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + stage=stage, + throttles=throttles, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[str] = None, + stage: Optional[str] = None, + throttles: Optional[Sequence['outputs.UsagePlanApiStageThrottle']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if stage is None: + raise TypeError("Missing 'stage' argument") + + _setter("api_id", api_id) + _setter("stage", stage) if throttles is not None: - pulumi.set(__self__, "throttles", throttles) + _setter("throttles", throttles) @property @pulumi.getter(name="apiId") @@ -673,11 +885,32 @@ def __init__(__self__, *, :param int burst_limit: The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity. :param float rate_limit: The API request steady-state rate limit. """ - pulumi.set(__self__, "path", path) + UsagePlanApiStageThrottle._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + burst_limit=burst_limit, + rate_limit=rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[str] = None, + burst_limit: Optional[int] = None, + rate_limit: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + if burst_limit is None and 'burstLimit' in kwargs: + burst_limit = kwargs['burstLimit'] + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + + _setter("path", path) if burst_limit is not None: - pulumi.set(__self__, "burst_limit", burst_limit) + _setter("burst_limit", burst_limit) if rate_limit is not None: - pulumi.set(__self__, "rate_limit", rate_limit) + _setter("rate_limit", rate_limit) @property @pulumi.getter @@ -715,10 +948,29 @@ def __init__(__self__, *, :param str period: Time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH". :param int offset: Number of requests subtracted from the given limit in the initial time period. """ - pulumi.set(__self__, "limit", limit) - pulumi.set(__self__, "period", period) + UsagePlanQuotaSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + limit=limit, + period=period, + offset=offset, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + limit: Optional[int] = None, + period: Optional[str] = None, + offset: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if limit is None: + raise TypeError("Missing 'limit' argument") + if period is None: + raise TypeError("Missing 'period' argument") + + _setter("limit", limit) + _setter("period", period) if offset is not None: - pulumi.set(__self__, "offset", offset) + _setter("offset", offset) @property @pulumi.getter @@ -773,10 +1025,27 @@ def __init__(__self__, *, :param int burst_limit: The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity. :param float rate_limit: The API request steady-state rate limit. """ + UsagePlanThrottleSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + burst_limit=burst_limit, + rate_limit=rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + burst_limit: Optional[int] = None, + rate_limit: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if burst_limit is None and 'burstLimit' in kwargs: + burst_limit = kwargs['burstLimit'] + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + if burst_limit is not None: - pulumi.set(__self__, "burst_limit", burst_limit) + _setter("burst_limit", burst_limit) if rate_limit is not None: - pulumi.set(__self__, "rate_limit", rate_limit) + _setter("rate_limit", rate_limit) @property @pulumi.getter(name="burstLimit") @@ -802,7 +1071,20 @@ def __init__(__self__, *, """ :param Sequence[str] types: List of endpoint types. """ - pulumi.set(__self__, "types", types) + GetDomainNameEndpointConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + types=types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + types: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if types is None: + raise TypeError("Missing 'types' argument") + + _setter("types", types) @property @pulumi.getter @@ -818,8 +1100,27 @@ class GetRestApiEndpointConfigurationResult(dict): def __init__(__self__, *, types: Sequence[str], vpc_endpoint_ids: Sequence[str]): - pulumi.set(__self__, "types", types) - pulumi.set(__self__, "vpc_endpoint_ids", vpc_endpoint_ids) + GetRestApiEndpointConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + types=types, + vpc_endpoint_ids=vpc_endpoint_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + types: Optional[Sequence[str]] = None, + vpc_endpoint_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if types is None: + raise TypeError("Missing 'types' argument") + if vpc_endpoint_ids is None and 'vpcEndpointIds' in kwargs: + vpc_endpoint_ids = kwargs['vpcEndpointIds'] + if vpc_endpoint_ids is None: + raise TypeError("Missing 'vpc_endpoint_ids' argument") + + _setter("types", types) + _setter("vpc_endpoint_ids", vpc_endpoint_ids) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/apigateway/request_validator.py b/sdk/python/pulumi_aws/apigateway/request_validator.py index ad1f63cad17..fbd11099fee 100644 --- a/sdk/python/pulumi_aws/apigateway/request_validator.py +++ b/sdk/python/pulumi_aws/apigateway/request_validator.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RequestValidatorArgs', 'RequestValidator'] @@ -25,13 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[bool] validate_request_body: Boolean whether to validate request body. Defaults to `false`. :param pulumi.Input[bool] validate_request_parameters: Boolean whether to validate request parameters. Defaults to `false`. """ - pulumi.set(__self__, "rest_api", rest_api) + RequestValidatorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rest_api=rest_api, + name=name, + validate_request_body=validate_request_body, + validate_request_parameters=validate_request_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rest_api: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + validate_request_body: Optional[pulumi.Input[bool]] = None, + validate_request_parameters: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if validate_request_body is None and 'validateRequestBody' in kwargs: + validate_request_body = kwargs['validateRequestBody'] + if validate_request_parameters is None and 'validateRequestParameters' in kwargs: + validate_request_parameters = kwargs['validateRequestParameters'] + + _setter("rest_api", rest_api) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if validate_request_body is not None: - pulumi.set(__self__, "validate_request_body", validate_request_body) + _setter("validate_request_body", validate_request_body) if validate_request_parameters is not None: - pulumi.set(__self__, "validate_request_parameters", validate_request_parameters) + _setter("validate_request_parameters", validate_request_parameters) @property @pulumi.getter(name="restApi") @@ -96,14 +121,37 @@ def __init__(__self__, *, :param pulumi.Input[bool] validate_request_body: Boolean whether to validate request body. Defaults to `false`. :param pulumi.Input[bool] validate_request_parameters: Boolean whether to validate request parameters. Defaults to `false`. """ + _RequestValidatorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + rest_api=rest_api, + validate_request_body=validate_request_body, + validate_request_parameters=validate_request_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + validate_request_body: Optional[pulumi.Input[bool]] = None, + validate_request_parameters: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if validate_request_body is None and 'validateRequestBody' in kwargs: + validate_request_body = kwargs['validateRequestBody'] + if validate_request_parameters is None and 'validateRequestParameters' in kwargs: + validate_request_parameters = kwargs['validateRequestParameters'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if validate_request_body is not None: - pulumi.set(__self__, "validate_request_body", validate_request_body) + _setter("validate_request_body", validate_request_body) if validate_request_parameters is not None: - pulumi.set(__self__, "validate_request_parameters", validate_request_parameters) + _setter("validate_request_parameters", validate_request_parameters) @property @pulumi.getter @@ -233,6 +281,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RequestValidatorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/resource.py b/sdk/python/pulumi_aws/apigateway/resource.py index 4c81d55e2f8..e67fe46ed3b 100644 --- a/sdk/python/pulumi_aws/apigateway/resource.py +++ b/sdk/python/pulumi_aws/apigateway/resource.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourceArgs', 'Resource'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] path_part: Last path segment of this API resource. :param pulumi.Input[str] rest_api: ID of the associated REST API """ - pulumi.set(__self__, "parent_id", parent_id) - pulumi.set(__self__, "path_part", path_part) - pulumi.set(__self__, "rest_api", rest_api) + ResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parent_id=parent_id, + path_part=path_part, + rest_api=rest_api, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parent_id: Optional[pulumi.Input[str]] = None, + path_part: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parent_id is None and 'parentId' in kwargs: + parent_id = kwargs['parentId'] + if parent_id is None: + raise TypeError("Missing 'parent_id' argument") + if path_part is None and 'pathPart' in kwargs: + path_part = kwargs['pathPart'] + if path_part is None: + raise TypeError("Missing 'path_part' argument") + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + + _setter("parent_id", parent_id) + _setter("path_part", path_part) + _setter("rest_api", rest_api) @property @pulumi.getter(name="parentId") @@ -78,14 +105,37 @@ def __init__(__self__, *, :param pulumi.Input[str] path_part: Last path segment of this API resource. :param pulumi.Input[str] rest_api: ID of the associated REST API """ + _ResourceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + parent_id=parent_id, + path=path, + path_part=path_part, + rest_api=rest_api, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parent_id: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + path_part: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parent_id is None and 'parentId' in kwargs: + parent_id = kwargs['parentId'] + if path_part is None and 'pathPart' in kwargs: + path_part = kwargs['pathPart'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if parent_id is not None: - pulumi.set(__self__, "parent_id", parent_id) + _setter("parent_id", parent_id) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if path_part is not None: - pulumi.set(__self__, "path_part", path_part) + _setter("path_part", path_part) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) @property @pulumi.getter(name="parentId") @@ -215,6 +265,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/response.py b/sdk/python/pulumi_aws/apigateway/response.py index 6c7d16c008b..6b2135dad1a 100644 --- a/sdk/python/pulumi_aws/apigateway/response.py +++ b/sdk/python/pulumi_aws/apigateway/response.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResponseArgs', 'Response'] @@ -27,14 +27,47 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] response_templates: Map of templates used to transform the response body. :param pulumi.Input[str] status_code: HTTP status code of the Gateway Response. """ - pulumi.set(__self__, "response_type", response_type) - pulumi.set(__self__, "rest_api_id", rest_api_id) + ResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_type=response_type, + rest_api_id=rest_api_id, + response_parameters=response_parameters, + response_templates=response_templates, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_type: Optional[pulumi.Input[str]] = None, + rest_api_id: Optional[pulumi.Input[str]] = None, + response_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_type is None and 'responseType' in kwargs: + response_type = kwargs['responseType'] + if response_type is None: + raise TypeError("Missing 'response_type' argument") + if rest_api_id is None and 'restApiId' in kwargs: + rest_api_id = kwargs['restApiId'] + if rest_api_id is None: + raise TypeError("Missing 'rest_api_id' argument") + if response_parameters is None and 'responseParameters' in kwargs: + response_parameters = kwargs['responseParameters'] + if response_templates is None and 'responseTemplates' in kwargs: + response_templates = kwargs['responseTemplates'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("response_type", response_type) + _setter("rest_api_id", rest_api_id) if response_parameters is not None: - pulumi.set(__self__, "response_parameters", response_parameters) + _setter("response_parameters", response_parameters) if response_templates is not None: - pulumi.set(__self__, "response_templates", response_templates) + _setter("response_templates", response_templates) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="responseType") @@ -113,16 +146,45 @@ def __init__(__self__, *, :param pulumi.Input[str] rest_api_id: String identifier of the associated REST API. :param pulumi.Input[str] status_code: HTTP status code of the Gateway Response. """ + _ResponseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_parameters=response_parameters, + response_templates=response_templates, + response_type=response_type, + rest_api_id=rest_api_id, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_type: Optional[pulumi.Input[str]] = None, + rest_api_id: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_parameters is None and 'responseParameters' in kwargs: + response_parameters = kwargs['responseParameters'] + if response_templates is None and 'responseTemplates' in kwargs: + response_templates = kwargs['responseTemplates'] + if response_type is None and 'responseType' in kwargs: + response_type = kwargs['responseType'] + if rest_api_id is None and 'restApiId' in kwargs: + rest_api_id = kwargs['restApiId'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if response_parameters is not None: - pulumi.set(__self__, "response_parameters", response_parameters) + _setter("response_parameters", response_parameters) if response_templates is not None: - pulumi.set(__self__, "response_templates", response_templates) + _setter("response_templates", response_templates) if response_type is not None: - pulumi.set(__self__, "response_type", response_type) + _setter("response_type", response_type) if rest_api_id is not None: - pulumi.set(__self__, "rest_api_id", rest_api_id) + _setter("rest_api_id", rest_api_id) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="responseParameters") @@ -280,6 +342,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResponseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/rest_api.py b/sdk/python/pulumi_aws/apigateway/rest_api.py index 384805ffd3c..265c46c1b22 100644 --- a/sdk/python/pulumi_aws/apigateway/rest_api.py +++ b/sdk/python/pulumi_aws/apigateway/rest_api.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,32 +45,81 @@ def __init__(__self__, *, :param pulumi.Input[str] put_rest_api_mode: Mode of the PutRestApi operation when importing an OpenAPI specification via the `body` argument (create or update operation). Valid values are `merge` and `overwrite`. If unspecificed, defaults to `overwrite` (for backwards compatibility). This corresponds to the [`x-amazon-apigateway-put-integration-method` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-put-integration-method.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value. :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. """ + RestApiArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key_source=api_key_source, + binary_media_types=binary_media_types, + body=body, + description=description, + disable_execute_api_endpoint=disable_execute_api_endpoint, + endpoint_configuration=endpoint_configuration, + fail_on_warnings=fail_on_warnings, + minimum_compression_size=minimum_compression_size, + name=name, + parameters=parameters, + policy=policy, + put_rest_api_mode=put_rest_api_mode, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key_source: Optional[pulumi.Input[str]] = None, + binary_media_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + body: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disable_execute_api_endpoint: Optional[pulumi.Input[bool]] = None, + endpoint_configuration: Optional[pulumi.Input['RestApiEndpointConfigurationArgs']] = None, + fail_on_warnings: Optional[pulumi.Input[bool]] = None, + minimum_compression_size: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + policy: Optional[pulumi.Input[str]] = None, + put_rest_api_mode: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key_source is None and 'apiKeySource' in kwargs: + api_key_source = kwargs['apiKeySource'] + if binary_media_types is None and 'binaryMediaTypes' in kwargs: + binary_media_types = kwargs['binaryMediaTypes'] + if disable_execute_api_endpoint is None and 'disableExecuteApiEndpoint' in kwargs: + disable_execute_api_endpoint = kwargs['disableExecuteApiEndpoint'] + if endpoint_configuration is None and 'endpointConfiguration' in kwargs: + endpoint_configuration = kwargs['endpointConfiguration'] + if fail_on_warnings is None and 'failOnWarnings' in kwargs: + fail_on_warnings = kwargs['failOnWarnings'] + if minimum_compression_size is None and 'minimumCompressionSize' in kwargs: + minimum_compression_size = kwargs['minimumCompressionSize'] + if put_rest_api_mode is None and 'putRestApiMode' in kwargs: + put_rest_api_mode = kwargs['putRestApiMode'] + if api_key_source is not None: - pulumi.set(__self__, "api_key_source", api_key_source) + _setter("api_key_source", api_key_source) if binary_media_types is not None: - pulumi.set(__self__, "binary_media_types", binary_media_types) + _setter("binary_media_types", binary_media_types) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_execute_api_endpoint is not None: - pulumi.set(__self__, "disable_execute_api_endpoint", disable_execute_api_endpoint) + _setter("disable_execute_api_endpoint", disable_execute_api_endpoint) if endpoint_configuration is not None: - pulumi.set(__self__, "endpoint_configuration", endpoint_configuration) + _setter("endpoint_configuration", endpoint_configuration) if fail_on_warnings is not None: - pulumi.set(__self__, "fail_on_warnings", fail_on_warnings) + _setter("fail_on_warnings", fail_on_warnings) if minimum_compression_size is not None: - pulumi.set(__self__, "minimum_compression_size", minimum_compression_size) + _setter("minimum_compression_size", minimum_compression_size) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if put_rest_api_mode is not None: - pulumi.set(__self__, "put_rest_api_mode", put_rest_api_mode) + _setter("put_rest_api_mode", put_rest_api_mode) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="apiKeySource") @@ -273,45 +322,112 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RestApiState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key_source=api_key_source, + arn=arn, + binary_media_types=binary_media_types, + body=body, + created_date=created_date, + description=description, + disable_execute_api_endpoint=disable_execute_api_endpoint, + endpoint_configuration=endpoint_configuration, + execution_arn=execution_arn, + fail_on_warnings=fail_on_warnings, + minimum_compression_size=minimum_compression_size, + name=name, + parameters=parameters, + policy=policy, + put_rest_api_mode=put_rest_api_mode, + root_resource_id=root_resource_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key_source: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + binary_media_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + body: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disable_execute_api_endpoint: Optional[pulumi.Input[bool]] = None, + endpoint_configuration: Optional[pulumi.Input['RestApiEndpointConfigurationArgs']] = None, + execution_arn: Optional[pulumi.Input[str]] = None, + fail_on_warnings: Optional[pulumi.Input[bool]] = None, + minimum_compression_size: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + policy: Optional[pulumi.Input[str]] = None, + put_rest_api_mode: Optional[pulumi.Input[str]] = None, + root_resource_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key_source is None and 'apiKeySource' in kwargs: + api_key_source = kwargs['apiKeySource'] + if binary_media_types is None and 'binaryMediaTypes' in kwargs: + binary_media_types = kwargs['binaryMediaTypes'] + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if disable_execute_api_endpoint is None and 'disableExecuteApiEndpoint' in kwargs: + disable_execute_api_endpoint = kwargs['disableExecuteApiEndpoint'] + if endpoint_configuration is None and 'endpointConfiguration' in kwargs: + endpoint_configuration = kwargs['endpointConfiguration'] + if execution_arn is None and 'executionArn' in kwargs: + execution_arn = kwargs['executionArn'] + if fail_on_warnings is None and 'failOnWarnings' in kwargs: + fail_on_warnings = kwargs['failOnWarnings'] + if minimum_compression_size is None and 'minimumCompressionSize' in kwargs: + minimum_compression_size = kwargs['minimumCompressionSize'] + if put_rest_api_mode is None and 'putRestApiMode' in kwargs: + put_rest_api_mode = kwargs['putRestApiMode'] + if root_resource_id is None and 'rootResourceId' in kwargs: + root_resource_id = kwargs['rootResourceId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if api_key_source is not None: - pulumi.set(__self__, "api_key_source", api_key_source) + _setter("api_key_source", api_key_source) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if binary_media_types is not None: - pulumi.set(__self__, "binary_media_types", binary_media_types) + _setter("binary_media_types", binary_media_types) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_execute_api_endpoint is not None: - pulumi.set(__self__, "disable_execute_api_endpoint", disable_execute_api_endpoint) + _setter("disable_execute_api_endpoint", disable_execute_api_endpoint) if endpoint_configuration is not None: - pulumi.set(__self__, "endpoint_configuration", endpoint_configuration) + _setter("endpoint_configuration", endpoint_configuration) if execution_arn is not None: - pulumi.set(__self__, "execution_arn", execution_arn) + _setter("execution_arn", execution_arn) if fail_on_warnings is not None: - pulumi.set(__self__, "fail_on_warnings", fail_on_warnings) + _setter("fail_on_warnings", fail_on_warnings) if minimum_compression_size is not None: - pulumi.set(__self__, "minimum_compression_size", minimum_compression_size) + _setter("minimum_compression_size", minimum_compression_size) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if put_rest_api_mode is not None: - pulumi.set(__self__, "put_rest_api_mode", put_rest_api_mode) + _setter("put_rest_api_mode", put_rest_api_mode) if root_resource_id is not None: - pulumi.set(__self__, "root_resource_id", root_resource_id) + _setter("root_resource_id", root_resource_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="apiKeySource") @@ -696,6 +812,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RestApiArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -728,6 +848,7 @@ def _internal_init(__self__, __props__.__dict__["body"] = body __props__.__dict__["description"] = description __props__.__dict__["disable_execute_api_endpoint"] = disable_execute_api_endpoint + endpoint_configuration = _utilities.configure(endpoint_configuration, RestApiEndpointConfigurationArgs, True) __props__.__dict__["endpoint_configuration"] = endpoint_configuration __props__.__dict__["fail_on_warnings"] = fail_on_warnings __props__.__dict__["minimum_compression_size"] = minimum_compression_size diff --git a/sdk/python/pulumi_aws/apigateway/rest_api_policy.py b/sdk/python/pulumi_aws/apigateway/rest_api_policy.py index c5057e08c23..f0ec15516fc 100644 --- a/sdk/python/pulumi_aws/apigateway/rest_api_policy.py +++ b/sdk/python/pulumi_aws/apigateway/rest_api_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RestApiPolicyArgs', 'RestApiPolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: JSON formatted policy document that controls access to the API Gateway. :param pulumi.Input[str] rest_api_id: ID of the REST API. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "rest_api_id", rest_api_id) + RestApiPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + rest_api_id=rest_api_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + rest_api_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if rest_api_id is None and 'restApiId' in kwargs: + rest_api_id = kwargs['restApiId'] + if rest_api_id is None: + raise TypeError("Missing 'rest_api_id' argument") + + _setter("policy", policy) + _setter("rest_api_id", rest_api_id) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: JSON formatted policy document that controls access to the API Gateway. :param pulumi.Input[str] rest_api_id: ID of the REST API. """ + _RestApiPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + rest_api_id=rest_api_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + rest_api_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rest_api_id is None and 'restApiId' in kwargs: + rest_api_id = kwargs['restApiId'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if rest_api_id is not None: - pulumi.set(__self__, "rest_api_id", rest_api_id) + _setter("rest_api_id", rest_api_id) @property @pulumi.getter @@ -198,6 +232,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RestApiPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/stage.py b/sdk/python/pulumi_aws/apigateway/stage.py index 535595022d3..9b5bc2033f9 100644 --- a/sdk/python/pulumi_aws/apigateway/stage.py +++ b/sdk/python/pulumi_aws/apigateway/stage.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,29 +45,88 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] variables: Map that defines the stage variables :param pulumi.Input[bool] xray_tracing_enabled: Whether active tracing with X-ray is enabled. Defaults to `false`. """ - pulumi.set(__self__, "deployment", deployment) - pulumi.set(__self__, "rest_api", rest_api) - pulumi.set(__self__, "stage_name", stage_name) + StageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment=deployment, + rest_api=rest_api, + stage_name=stage_name, + access_log_settings=access_log_settings, + cache_cluster_enabled=cache_cluster_enabled, + cache_cluster_size=cache_cluster_size, + canary_settings=canary_settings, + client_certificate_id=client_certificate_id, + description=description, + documentation_version=documentation_version, + tags=tags, + variables=variables, + xray_tracing_enabled=xray_tracing_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + stage_name: Optional[pulumi.Input[str]] = None, + access_log_settings: Optional[pulumi.Input['StageAccessLogSettingsArgs']] = None, + cache_cluster_enabled: Optional[pulumi.Input[bool]] = None, + cache_cluster_size: Optional[pulumi.Input[str]] = None, + canary_settings: Optional[pulumi.Input['StageCanarySettingsArgs']] = None, + client_certificate_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + documentation_version: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + xray_tracing_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment is None: + raise TypeError("Missing 'deployment' argument") + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if rest_api is None: + raise TypeError("Missing 'rest_api' argument") + if stage_name is None and 'stageName' in kwargs: + stage_name = kwargs['stageName'] + if stage_name is None: + raise TypeError("Missing 'stage_name' argument") + if access_log_settings is None and 'accessLogSettings' in kwargs: + access_log_settings = kwargs['accessLogSettings'] + if cache_cluster_enabled is None and 'cacheClusterEnabled' in kwargs: + cache_cluster_enabled = kwargs['cacheClusterEnabled'] + if cache_cluster_size is None and 'cacheClusterSize' in kwargs: + cache_cluster_size = kwargs['cacheClusterSize'] + if canary_settings is None and 'canarySettings' in kwargs: + canary_settings = kwargs['canarySettings'] + if client_certificate_id is None and 'clientCertificateId' in kwargs: + client_certificate_id = kwargs['clientCertificateId'] + if documentation_version is None and 'documentationVersion' in kwargs: + documentation_version = kwargs['documentationVersion'] + if xray_tracing_enabled is None and 'xrayTracingEnabled' in kwargs: + xray_tracing_enabled = kwargs['xrayTracingEnabled'] + + _setter("deployment", deployment) + _setter("rest_api", rest_api) + _setter("stage_name", stage_name) if access_log_settings is not None: - pulumi.set(__self__, "access_log_settings", access_log_settings) + _setter("access_log_settings", access_log_settings) if cache_cluster_enabled is not None: - pulumi.set(__self__, "cache_cluster_enabled", cache_cluster_enabled) + _setter("cache_cluster_enabled", cache_cluster_enabled) if cache_cluster_size is not None: - pulumi.set(__self__, "cache_cluster_size", cache_cluster_size) + _setter("cache_cluster_size", cache_cluster_size) if canary_settings is not None: - pulumi.set(__self__, "canary_settings", canary_settings) + _setter("canary_settings", canary_settings) if client_certificate_id is not None: - pulumi.set(__self__, "client_certificate_id", client_certificate_id) + _setter("client_certificate_id", client_certificate_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if documentation_version is not None: - pulumi.set(__self__, "documentation_version", documentation_version) + _setter("documentation_version", documentation_version) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if variables is not None: - pulumi.set(__self__, "variables", variables) + _setter("variables", variables) if xray_tracing_enabled is not None: - pulumi.set(__self__, "xray_tracing_enabled", xray_tracing_enabled) + _setter("xray_tracing_enabled", xray_tracing_enabled) @property @pulumi.getter @@ -271,45 +330,116 @@ def __init__(__self__, *, :param pulumi.Input[str] web_acl_arn: ARN of the WebAcl associated with the Stage. :param pulumi.Input[bool] xray_tracing_enabled: Whether active tracing with X-ray is enabled. Defaults to `false`. """ + _StageState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_log_settings=access_log_settings, + arn=arn, + cache_cluster_enabled=cache_cluster_enabled, + cache_cluster_size=cache_cluster_size, + canary_settings=canary_settings, + client_certificate_id=client_certificate_id, + deployment=deployment, + description=description, + documentation_version=documentation_version, + execution_arn=execution_arn, + invoke_url=invoke_url, + rest_api=rest_api, + stage_name=stage_name, + tags=tags, + tags_all=tags_all, + variables=variables, + web_acl_arn=web_acl_arn, + xray_tracing_enabled=xray_tracing_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_log_settings: Optional[pulumi.Input['StageAccessLogSettingsArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + cache_cluster_enabled: Optional[pulumi.Input[bool]] = None, + cache_cluster_size: Optional[pulumi.Input[str]] = None, + canary_settings: Optional[pulumi.Input['StageCanarySettingsArgs']] = None, + client_certificate_id: Optional[pulumi.Input[str]] = None, + deployment: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + documentation_version: Optional[pulumi.Input[str]] = None, + execution_arn: Optional[pulumi.Input[str]] = None, + invoke_url: Optional[pulumi.Input[str]] = None, + rest_api: Optional[pulumi.Input[str]] = None, + stage_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + web_acl_arn: Optional[pulumi.Input[str]] = None, + xray_tracing_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_log_settings is None and 'accessLogSettings' in kwargs: + access_log_settings = kwargs['accessLogSettings'] + if cache_cluster_enabled is None and 'cacheClusterEnabled' in kwargs: + cache_cluster_enabled = kwargs['cacheClusterEnabled'] + if cache_cluster_size is None and 'cacheClusterSize' in kwargs: + cache_cluster_size = kwargs['cacheClusterSize'] + if canary_settings is None and 'canarySettings' in kwargs: + canary_settings = kwargs['canarySettings'] + if client_certificate_id is None and 'clientCertificateId' in kwargs: + client_certificate_id = kwargs['clientCertificateId'] + if documentation_version is None and 'documentationVersion' in kwargs: + documentation_version = kwargs['documentationVersion'] + if execution_arn is None and 'executionArn' in kwargs: + execution_arn = kwargs['executionArn'] + if invoke_url is None and 'invokeUrl' in kwargs: + invoke_url = kwargs['invokeUrl'] + if rest_api is None and 'restApi' in kwargs: + rest_api = kwargs['restApi'] + if stage_name is None and 'stageName' in kwargs: + stage_name = kwargs['stageName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if web_acl_arn is None and 'webAclArn' in kwargs: + web_acl_arn = kwargs['webAclArn'] + if xray_tracing_enabled is None and 'xrayTracingEnabled' in kwargs: + xray_tracing_enabled = kwargs['xrayTracingEnabled'] + if access_log_settings is not None: - pulumi.set(__self__, "access_log_settings", access_log_settings) + _setter("access_log_settings", access_log_settings) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cache_cluster_enabled is not None: - pulumi.set(__self__, "cache_cluster_enabled", cache_cluster_enabled) + _setter("cache_cluster_enabled", cache_cluster_enabled) if cache_cluster_size is not None: - pulumi.set(__self__, "cache_cluster_size", cache_cluster_size) + _setter("cache_cluster_size", cache_cluster_size) if canary_settings is not None: - pulumi.set(__self__, "canary_settings", canary_settings) + _setter("canary_settings", canary_settings) if client_certificate_id is not None: - pulumi.set(__self__, "client_certificate_id", client_certificate_id) + _setter("client_certificate_id", client_certificate_id) if deployment is not None: - pulumi.set(__self__, "deployment", deployment) + _setter("deployment", deployment) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if documentation_version is not None: - pulumi.set(__self__, "documentation_version", documentation_version) + _setter("documentation_version", documentation_version) if execution_arn is not None: - pulumi.set(__self__, "execution_arn", execution_arn) + _setter("execution_arn", execution_arn) if invoke_url is not None: - pulumi.set(__self__, "invoke_url", invoke_url) + _setter("invoke_url", invoke_url) if rest_api is not None: - pulumi.set(__self__, "rest_api", rest_api) + _setter("rest_api", rest_api) if stage_name is not None: - pulumi.set(__self__, "stage_name", stage_name) + _setter("stage_name", stage_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if variables is not None: - pulumi.set(__self__, "variables", variables) + _setter("variables", variables) if web_acl_arn is not None: - pulumi.set(__self__, "web_acl_arn", web_acl_arn) + _setter("web_acl_arn", web_acl_arn) if xray_tracing_enabled is not None: - pulumi.set(__self__, "xray_tracing_enabled", xray_tracing_enabled) + _setter("xray_tracing_enabled", xray_tracing_enabled) @property @pulumi.getter(name="accessLogSettings") @@ -739,6 +869,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StageArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -766,9 +900,11 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = StageArgs.__new__(StageArgs) + access_log_settings = _utilities.configure(access_log_settings, StageAccessLogSettingsArgs, True) __props__.__dict__["access_log_settings"] = access_log_settings __props__.__dict__["cache_cluster_enabled"] = cache_cluster_enabled __props__.__dict__["cache_cluster_size"] = cache_cluster_size + canary_settings = _utilities.configure(canary_settings, StageCanarySettingsArgs, True) __props__.__dict__["canary_settings"] = canary_settings __props__.__dict__["client_certificate_id"] = client_certificate_id if deployment is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/apigateway/usage_plan.py b/sdk/python/pulumi_aws/apigateway/usage_plan.py index 221e9681a76..181bbe79d58 100644 --- a/sdk/python/pulumi_aws/apigateway/usage_plan.py +++ b/sdk/python/pulumi_aws/apigateway/usage_plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,20 +33,51 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['UsagePlanThrottleSettingsArgs'] throttle_settings: The throttling limits of the usage plan. """ + UsagePlanArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_stages=api_stages, + description=description, + name=name, + product_code=product_code, + quota_settings=quota_settings, + tags=tags, + throttle_settings=throttle_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_stages: Optional[pulumi.Input[Sequence[pulumi.Input['UsagePlanApiStageArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + product_code: Optional[pulumi.Input[str]] = None, + quota_settings: Optional[pulumi.Input['UsagePlanQuotaSettingsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throttle_settings: Optional[pulumi.Input['UsagePlanThrottleSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_stages is None and 'apiStages' in kwargs: + api_stages = kwargs['apiStages'] + if product_code is None and 'productCode' in kwargs: + product_code = kwargs['productCode'] + if quota_settings is None and 'quotaSettings' in kwargs: + quota_settings = kwargs['quotaSettings'] + if throttle_settings is None and 'throttleSettings' in kwargs: + throttle_settings = kwargs['throttleSettings'] + if api_stages is not None: - pulumi.set(__self__, "api_stages", api_stages) + _setter("api_stages", api_stages) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if product_code is not None: - pulumi.set(__self__, "product_code", product_code) + _setter("product_code", product_code) if quota_settings is not None: - pulumi.set(__self__, "quota_settings", quota_settings) + _setter("quota_settings", quota_settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throttle_settings is not None: - pulumi.set(__self__, "throttle_settings", throttle_settings) + _setter("throttle_settings", throttle_settings) @property @pulumi.getter(name="apiStages") @@ -157,27 +188,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input['UsagePlanThrottleSettingsArgs'] throttle_settings: The throttling limits of the usage plan. """ + _UsagePlanState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_stages=api_stages, + arn=arn, + description=description, + name=name, + product_code=product_code, + quota_settings=quota_settings, + tags=tags, + tags_all=tags_all, + throttle_settings=throttle_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_stages: Optional[pulumi.Input[Sequence[pulumi.Input['UsagePlanApiStageArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + product_code: Optional[pulumi.Input[str]] = None, + quota_settings: Optional[pulumi.Input['UsagePlanQuotaSettingsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throttle_settings: Optional[pulumi.Input['UsagePlanThrottleSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_stages is None and 'apiStages' in kwargs: + api_stages = kwargs['apiStages'] + if product_code is None and 'productCode' in kwargs: + product_code = kwargs['productCode'] + if quota_settings is None and 'quotaSettings' in kwargs: + quota_settings = kwargs['quotaSettings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if throttle_settings is None and 'throttleSettings' in kwargs: + throttle_settings = kwargs['throttleSettings'] + if api_stages is not None: - pulumi.set(__self__, "api_stages", api_stages) + _setter("api_stages", api_stages) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if product_code is not None: - pulumi.set(__self__, "product_code", product_code) + _setter("product_code", product_code) if quota_settings is not None: - pulumi.set(__self__, "quota_settings", quota_settings) + _setter("quota_settings", quota_settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if throttle_settings is not None: - pulumi.set(__self__, "throttle_settings", throttle_settings) + _setter("throttle_settings", throttle_settings) @property @pulumi.getter(name="apiStages") @@ -480,6 +548,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UsagePlanArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -505,8 +577,10 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["name"] = name __props__.__dict__["product_code"] = product_code + quota_settings = _utilities.configure(quota_settings, UsagePlanQuotaSettingsArgs, True) __props__.__dict__["quota_settings"] = quota_settings __props__.__dict__["tags"] = tags + throttle_settings = _utilities.configure(throttle_settings, UsagePlanThrottleSettingsArgs, True) __props__.__dict__["throttle_settings"] = throttle_settings __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/apigateway/usage_plan_key.py b/sdk/python/pulumi_aws/apigateway/usage_plan_key.py index e5b2f368eec..1f9ad83a022 100644 --- a/sdk/python/pulumi_aws/apigateway/usage_plan_key.py +++ b/sdk/python/pulumi_aws/apigateway/usage_plan_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UsagePlanKeyArgs', 'UsagePlanKey'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] key_type: Type of the API key resource. Currently, the valid key type is API_KEY. :param pulumi.Input[str] usage_plan_id: Id of the usage plan resource representing to associate the key to. """ - pulumi.set(__self__, "key_id", key_id) - pulumi.set(__self__, "key_type", key_type) - pulumi.set(__self__, "usage_plan_id", usage_plan_id) + UsagePlanKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + key_type=key_type, + usage_plan_id=usage_plan_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[pulumi.Input[str]] = None, + key_type: Optional[pulumi.Input[str]] = None, + usage_plan_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + if key_type is None and 'keyType' in kwargs: + key_type = kwargs['keyType'] + if key_type is None: + raise TypeError("Missing 'key_type' argument") + if usage_plan_id is None and 'usagePlanId' in kwargs: + usage_plan_id = kwargs['usagePlanId'] + if usage_plan_id is None: + raise TypeError("Missing 'usage_plan_id' argument") + + _setter("key_id", key_id) + _setter("key_type", key_type) + _setter("usage_plan_id", usage_plan_id) @property @pulumi.getter(name="keyId") @@ -80,16 +107,41 @@ def __init__(__self__, *, :param pulumi.Input[str] usage_plan_id: Id of the usage plan resource representing to associate the key to. :param pulumi.Input[str] value: Value of a usage plan key. """ + _UsagePlanKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + key_type=key_type, + name=name, + usage_plan_id=usage_plan_id, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[pulumi.Input[str]] = None, + key_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + usage_plan_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_type is None and 'keyType' in kwargs: + key_type = kwargs['keyType'] + if usage_plan_id is None and 'usagePlanId' in kwargs: + usage_plan_id = kwargs['usagePlanId'] + if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if key_type is not None: - pulumi.set(__self__, "key_type", key_type) + _setter("key_type", key_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if usage_plan_id is not None: - pulumi.set(__self__, "usage_plan_id", usage_plan_id) + _setter("usage_plan_id", usage_plan_id) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="keyId") @@ -243,6 +295,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UsagePlanKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigateway/vpc_link.py b/sdk/python/pulumi_aws/apigateway/vpc_link.py index 9ff94e24cc9..d08b78812e5 100644 --- a/sdk/python/pulumi_aws/apigateway/vpc_link.py +++ b/sdk/python/pulumi_aws/apigateway/vpc_link.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcLinkArgs', 'VpcLink'] @@ -25,13 +25,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name used to label and identify the VPC link. :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. """ - pulumi.set(__self__, "target_arn", target_arn) + VpcLinkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_arn=target_arn, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + + _setter("target_arn", target_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="targetArn") @@ -99,21 +120,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] target_arn: List of network load balancer arns in the VPC targeted by the VPC link. Currently AWS only supports 1 target. """ + _VpcLinkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + tags=tags, + tags_all=tags_all, + target_arn=target_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_arn is not None: - pulumi.set(__self__, "target_arn", target_arn) + _setter("target_arn", target_arn) @property @pulumi.getter @@ -249,6 +295,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcLinkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigatewayv2/_inputs.py b/sdk/python/pulumi_aws/apigatewayv2/_inputs.py index 86b47ed1958..1abacdb5a5b 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/_inputs.py +++ b/sdk/python/pulumi_aws/apigatewayv2/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -39,18 +39,51 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] expose_headers: Set of exposed HTTP headers. :param pulumi.Input[int] max_age: Number of seconds that the browser should cache preflight request results. """ + ApiCorsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_credentials=allow_credentials, + allow_headers=allow_headers, + allow_methods=allow_methods, + allow_origins=allow_origins, + expose_headers=expose_headers, + max_age=max_age, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_credentials: Optional[pulumi.Input[bool]] = None, + allow_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allow_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allow_origins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + expose_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + max_age: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_credentials is None and 'allowCredentials' in kwargs: + allow_credentials = kwargs['allowCredentials'] + if allow_headers is None and 'allowHeaders' in kwargs: + allow_headers = kwargs['allowHeaders'] + if allow_methods is None and 'allowMethods' in kwargs: + allow_methods = kwargs['allowMethods'] + if allow_origins is None and 'allowOrigins' in kwargs: + allow_origins = kwargs['allowOrigins'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age is None and 'maxAge' in kwargs: + max_age = kwargs['maxAge'] + if allow_credentials is not None: - pulumi.set(__self__, "allow_credentials", allow_credentials) + _setter("allow_credentials", allow_credentials) if allow_headers is not None: - pulumi.set(__self__, "allow_headers", allow_headers) + _setter("allow_headers", allow_headers) if allow_methods is not None: - pulumi.set(__self__, "allow_methods", allow_methods) + _setter("allow_methods", allow_methods) if allow_origins is not None: - pulumi.set(__self__, "allow_origins", allow_origins) + _setter("allow_origins", allow_origins) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if max_age is not None: - pulumi.set(__self__, "max_age", max_age) + _setter("max_age", max_age) @property @pulumi.getter(name="allowCredentials") @@ -134,10 +167,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] audiences: List of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. :param pulumi.Input[str] issuer: Base domain of the identity provider that issues JSON Web Tokens, such as the `endpoint` attribute of the `cognito.UserPool` resource. """ + AuthorizerJwtConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audiences=audiences, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audiences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + issuer: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audiences is not None: - pulumi.set(__self__, "audiences", audiences) + _setter("audiences", audiences) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) @property @pulumi.getter @@ -181,15 +227,54 @@ def __init__(__self__, *, :param pulumi.Input[str] ownership_verification_certificate_arn: ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificate_arn` is issued via an ACM Private CA or `mutual_tls_authentication` is configured with an ACM-imported certificate.) :param pulumi.Input[str] target_domain_name: Target domain name. """ - pulumi.set(__self__, "certificate_arn", certificate_arn) - pulumi.set(__self__, "endpoint_type", endpoint_type) - pulumi.set(__self__, "security_policy", security_policy) + DomainNameDomainNameConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + endpoint_type=endpoint_type, + security_policy=security_policy, + hosted_zone_id=hosted_zone_id, + ownership_verification_certificate_arn=ownership_verification_certificate_arn, + target_domain_name=target_domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + security_policy: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + ownership_verification_certificate_arn: Optional[pulumi.Input[str]] = None, + target_domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + if security_policy is None and 'securityPolicy' in kwargs: + security_policy = kwargs['securityPolicy'] + if security_policy is None: + raise TypeError("Missing 'security_policy' argument") + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if ownership_verification_certificate_arn is None and 'ownershipVerificationCertificateArn' in kwargs: + ownership_verification_certificate_arn = kwargs['ownershipVerificationCertificateArn'] + if target_domain_name is None and 'targetDomainName' in kwargs: + target_domain_name = kwargs['targetDomainName'] + + _setter("certificate_arn", certificate_arn) + _setter("endpoint_type", endpoint_type) + _setter("security_policy", security_policy) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if ownership_verification_certificate_arn is not None: - pulumi.set(__self__, "ownership_verification_certificate_arn", ownership_verification_certificate_arn) + _setter("ownership_verification_certificate_arn", ownership_verification_certificate_arn) if target_domain_name is not None: - pulumi.set(__self__, "target_domain_name", target_domain_name) + _setter("target_domain_name", target_domain_name) @property @pulumi.getter(name="certificateArn") @@ -273,9 +358,28 @@ def __init__(__self__, *, :param pulumi.Input[str] truststore_uri: Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. :param pulumi.Input[str] truststore_version: Version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. """ - pulumi.set(__self__, "truststore_uri", truststore_uri) + DomainNameMutualTlsAuthenticationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + truststore_uri=truststore_uri, + truststore_version=truststore_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + truststore_uri: Optional[pulumi.Input[str]] = None, + truststore_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if truststore_uri is None and 'truststoreUri' in kwargs: + truststore_uri = kwargs['truststoreUri'] + if truststore_uri is None: + raise TypeError("Missing 'truststore_uri' argument") + if truststore_version is None and 'truststoreVersion' in kwargs: + truststore_version = kwargs['truststoreVersion'] + + _setter("truststore_uri", truststore_uri) if truststore_version is not None: - pulumi.set(__self__, "truststore_version", truststore_version) + _setter("truststore_version", truststore_version) @property @pulumi.getter(name="truststoreUri") @@ -312,8 +416,27 @@ def __init__(__self__, *, See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. :param pulumi.Input[str] status_code: HTTP status code in the range 200-599. """ - pulumi.set(__self__, "mappings", mappings) - pulumi.set(__self__, "status_code", status_code) + IntegrationResponseParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mappings=mappings, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mappings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mappings is None: + raise TypeError("Missing 'mappings' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("mappings", mappings) + _setter("status_code", status_code) @property @pulumi.getter @@ -348,8 +471,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] server_name_to_verify: If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting. """ + IntegrationTlsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + server_name_to_verify=server_name_to_verify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + server_name_to_verify: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if server_name_to_verify is None and 'serverNameToVerify' in kwargs: + server_name_to_verify = kwargs['serverNameToVerify'] + if server_name_to_verify is not None: - pulumi.set(__self__, "server_name_to_verify", server_name_to_verify) + _setter("server_name_to_verify", server_name_to_verify) @property @pulumi.getter(name="serverNameToVerify") @@ -373,8 +509,27 @@ def __init__(__self__, *, :param pulumi.Input[str] request_parameter_key: Request parameter key. This is a [request data mapping parameter](https://docs.aws.amazon.com/apigateway/latest/developerguide/websocket-api-data-mapping.html#websocket-mapping-request-parameters). :param pulumi.Input[bool] required: Boolean whether or not the parameter is required. """ - pulumi.set(__self__, "request_parameter_key", request_parameter_key) - pulumi.set(__self__, "required", required) + RouteRequestParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + request_parameter_key=request_parameter_key, + required=required, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + request_parameter_key: Optional[pulumi.Input[str]] = None, + required: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if request_parameter_key is None and 'requestParameterKey' in kwargs: + request_parameter_key = kwargs['requestParameterKey'] + if request_parameter_key is None: + raise TypeError("Missing 'request_parameter_key' argument") + if required is None: + raise TypeError("Missing 'required' argument") + + _setter("request_parameter_key", request_parameter_key) + _setter("required", required) @property @pulumi.getter(name="requestParameterKey") @@ -410,8 +565,27 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_arn: ARN of the CloudWatch Logs log group to receive access logs. Any trailing `:*` is trimmed from the ARN. :param pulumi.Input[str] format: Single line [format](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html#apigateway-cloudwatch-log-formats) of the access logs of data. Refer to log settings for [HTTP](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-logging-variables.html) or [Websocket](https://docs.aws.amazon.com/apigateway/latest/developerguide/websocket-api-logging.html). """ - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "format", format) + StageAccessLogSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if format is None: + raise TypeError("Missing 'format' argument") + + _setter("destination_arn", destination_arn) + _setter("format", format) @property @pulumi.getter(name="destinationArn") @@ -455,16 +629,45 @@ def __init__(__self__, *, :param pulumi.Input[int] throttling_burst_limit: Throttling burst limit for the default route. :param pulumi.Input[float] throttling_rate_limit: Throttling rate limit for the default route. """ + StageDefaultRouteSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_trace_enabled=data_trace_enabled, + detailed_metrics_enabled=detailed_metrics_enabled, + logging_level=logging_level, + throttling_burst_limit=throttling_burst_limit, + throttling_rate_limit=throttling_rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_trace_enabled: Optional[pulumi.Input[bool]] = None, + detailed_metrics_enabled: Optional[pulumi.Input[bool]] = None, + logging_level: Optional[pulumi.Input[str]] = None, + throttling_burst_limit: Optional[pulumi.Input[int]] = None, + throttling_rate_limit: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_trace_enabled is None and 'dataTraceEnabled' in kwargs: + data_trace_enabled = kwargs['dataTraceEnabled'] + if detailed_metrics_enabled is None and 'detailedMetricsEnabled' in kwargs: + detailed_metrics_enabled = kwargs['detailedMetricsEnabled'] + if logging_level is None and 'loggingLevel' in kwargs: + logging_level = kwargs['loggingLevel'] + if throttling_burst_limit is None and 'throttlingBurstLimit' in kwargs: + throttling_burst_limit = kwargs['throttlingBurstLimit'] + if throttling_rate_limit is None and 'throttlingRateLimit' in kwargs: + throttling_rate_limit = kwargs['throttlingRateLimit'] + if data_trace_enabled is not None: - pulumi.set(__self__, "data_trace_enabled", data_trace_enabled) + _setter("data_trace_enabled", data_trace_enabled) if detailed_metrics_enabled is not None: - pulumi.set(__self__, "detailed_metrics_enabled", detailed_metrics_enabled) + _setter("detailed_metrics_enabled", detailed_metrics_enabled) if logging_level is not None: - pulumi.set(__self__, "logging_level", logging_level) + _setter("logging_level", logging_level) if throttling_burst_limit is not None: - pulumi.set(__self__, "throttling_burst_limit", throttling_burst_limit) + _setter("throttling_burst_limit", throttling_burst_limit) if throttling_rate_limit is not None: - pulumi.set(__self__, "throttling_rate_limit", throttling_rate_limit) + _setter("throttling_rate_limit", throttling_rate_limit) @property @pulumi.getter(name="dataTraceEnabled") @@ -548,17 +751,52 @@ def __init__(__self__, *, :param pulumi.Input[int] throttling_burst_limit: Throttling burst limit for the route. :param pulumi.Input[float] throttling_rate_limit: Throttling rate limit for the route. """ - pulumi.set(__self__, "route_key", route_key) + StageRouteSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + route_key=route_key, + data_trace_enabled=data_trace_enabled, + detailed_metrics_enabled=detailed_metrics_enabled, + logging_level=logging_level, + throttling_burst_limit=throttling_burst_limit, + throttling_rate_limit=throttling_rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route_key: Optional[pulumi.Input[str]] = None, + data_trace_enabled: Optional[pulumi.Input[bool]] = None, + detailed_metrics_enabled: Optional[pulumi.Input[bool]] = None, + logging_level: Optional[pulumi.Input[str]] = None, + throttling_burst_limit: Optional[pulumi.Input[int]] = None, + throttling_rate_limit: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route_key is None and 'routeKey' in kwargs: + route_key = kwargs['routeKey'] + if route_key is None: + raise TypeError("Missing 'route_key' argument") + if data_trace_enabled is None and 'dataTraceEnabled' in kwargs: + data_trace_enabled = kwargs['dataTraceEnabled'] + if detailed_metrics_enabled is None and 'detailedMetricsEnabled' in kwargs: + detailed_metrics_enabled = kwargs['detailedMetricsEnabled'] + if logging_level is None and 'loggingLevel' in kwargs: + logging_level = kwargs['loggingLevel'] + if throttling_burst_limit is None and 'throttlingBurstLimit' in kwargs: + throttling_burst_limit = kwargs['throttlingBurstLimit'] + if throttling_rate_limit is None and 'throttlingRateLimit' in kwargs: + throttling_rate_limit = kwargs['throttlingRateLimit'] + + _setter("route_key", route_key) if data_trace_enabled is not None: - pulumi.set(__self__, "data_trace_enabled", data_trace_enabled) + _setter("data_trace_enabled", data_trace_enabled) if detailed_metrics_enabled is not None: - pulumi.set(__self__, "detailed_metrics_enabled", detailed_metrics_enabled) + _setter("detailed_metrics_enabled", detailed_metrics_enabled) if logging_level is not None: - pulumi.set(__self__, "logging_level", logging_level) + _setter("logging_level", logging_level) if throttling_burst_limit is not None: - pulumi.set(__self__, "throttling_burst_limit", throttling_burst_limit) + _setter("throttling_burst_limit", throttling_burst_limit) if throttling_rate_limit is not None: - pulumi.set(__self__, "throttling_rate_limit", throttling_rate_limit) + _setter("throttling_rate_limit", throttling_rate_limit) @property @pulumi.getter(name="routeKey") diff --git a/sdk/python/pulumi_aws/apigatewayv2/api.py b/sdk/python/pulumi_aws/apigatewayv2/api.py index 95a42b9736a..ab3398bc077 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/api.py +++ b/sdk/python/pulumi_aws/apigatewayv2/api.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -54,33 +54,88 @@ def __init__(__self__, *, The type of the integration will be `HTTP_PROXY` or `AWS_PROXY`, respectively. Applicable for HTTP APIs. :param pulumi.Input[str] version: Version identifier for the API. Must be between 1 and 64 characters in length. """ - pulumi.set(__self__, "protocol_type", protocol_type) + ApiArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + protocol_type=protocol_type, + api_key_selection_expression=api_key_selection_expression, + body=body, + cors_configuration=cors_configuration, + credentials_arn=credentials_arn, + description=description, + disable_execute_api_endpoint=disable_execute_api_endpoint, + fail_on_warnings=fail_on_warnings, + name=name, + route_key=route_key, + route_selection_expression=route_selection_expression, + tags=tags, + target=target, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + protocol_type: Optional[pulumi.Input[str]] = None, + api_key_selection_expression: Optional[pulumi.Input[str]] = None, + body: Optional[pulumi.Input[str]] = None, + cors_configuration: Optional[pulumi.Input['ApiCorsConfigurationArgs']] = None, + credentials_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disable_execute_api_endpoint: Optional[pulumi.Input[bool]] = None, + fail_on_warnings: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + route_key: Optional[pulumi.Input[str]] = None, + route_selection_expression: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if protocol_type is None and 'protocolType' in kwargs: + protocol_type = kwargs['protocolType'] + if protocol_type is None: + raise TypeError("Missing 'protocol_type' argument") + if api_key_selection_expression is None and 'apiKeySelectionExpression' in kwargs: + api_key_selection_expression = kwargs['apiKeySelectionExpression'] + if cors_configuration is None and 'corsConfiguration' in kwargs: + cors_configuration = kwargs['corsConfiguration'] + if credentials_arn is None and 'credentialsArn' in kwargs: + credentials_arn = kwargs['credentialsArn'] + if disable_execute_api_endpoint is None and 'disableExecuteApiEndpoint' in kwargs: + disable_execute_api_endpoint = kwargs['disableExecuteApiEndpoint'] + if fail_on_warnings is None and 'failOnWarnings' in kwargs: + fail_on_warnings = kwargs['failOnWarnings'] + if route_key is None and 'routeKey' in kwargs: + route_key = kwargs['routeKey'] + if route_selection_expression is None and 'routeSelectionExpression' in kwargs: + route_selection_expression = kwargs['routeSelectionExpression'] + + _setter("protocol_type", protocol_type) if api_key_selection_expression is not None: - pulumi.set(__self__, "api_key_selection_expression", api_key_selection_expression) + _setter("api_key_selection_expression", api_key_selection_expression) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cors_configuration is not None: - pulumi.set(__self__, "cors_configuration", cors_configuration) + _setter("cors_configuration", cors_configuration) if credentials_arn is not None: - pulumi.set(__self__, "credentials_arn", credentials_arn) + _setter("credentials_arn", credentials_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_execute_api_endpoint is not None: - pulumi.set(__self__, "disable_execute_api_endpoint", disable_execute_api_endpoint) + _setter("disable_execute_api_endpoint", disable_execute_api_endpoint) if fail_on_warnings is not None: - pulumi.set(__self__, "fail_on_warnings", fail_on_warnings) + _setter("fail_on_warnings", fail_on_warnings) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if route_key is not None: - pulumi.set(__self__, "route_key", route_key) + _setter("route_key", route_key) if route_selection_expression is not None: - pulumi.set(__self__, "route_selection_expression", route_selection_expression) + _setter("route_selection_expression", route_selection_expression) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="protocolType") @@ -309,45 +364,112 @@ def __init__(__self__, *, The type of the integration will be `HTTP_PROXY` or `AWS_PROXY`, respectively. Applicable for HTTP APIs. :param pulumi.Input[str] version: Version identifier for the API. Must be between 1 and 64 characters in length. """ + _ApiState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_endpoint=api_endpoint, + api_key_selection_expression=api_key_selection_expression, + arn=arn, + body=body, + cors_configuration=cors_configuration, + credentials_arn=credentials_arn, + description=description, + disable_execute_api_endpoint=disable_execute_api_endpoint, + execution_arn=execution_arn, + fail_on_warnings=fail_on_warnings, + name=name, + protocol_type=protocol_type, + route_key=route_key, + route_selection_expression=route_selection_expression, + tags=tags, + tags_all=tags_all, + target=target, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_endpoint: Optional[pulumi.Input[str]] = None, + api_key_selection_expression: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + body: Optional[pulumi.Input[str]] = None, + cors_configuration: Optional[pulumi.Input['ApiCorsConfigurationArgs']] = None, + credentials_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disable_execute_api_endpoint: Optional[pulumi.Input[bool]] = None, + execution_arn: Optional[pulumi.Input[str]] = None, + fail_on_warnings: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + protocol_type: Optional[pulumi.Input[str]] = None, + route_key: Optional[pulumi.Input[str]] = None, + route_selection_expression: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_endpoint is None and 'apiEndpoint' in kwargs: + api_endpoint = kwargs['apiEndpoint'] + if api_key_selection_expression is None and 'apiKeySelectionExpression' in kwargs: + api_key_selection_expression = kwargs['apiKeySelectionExpression'] + if cors_configuration is None and 'corsConfiguration' in kwargs: + cors_configuration = kwargs['corsConfiguration'] + if credentials_arn is None and 'credentialsArn' in kwargs: + credentials_arn = kwargs['credentialsArn'] + if disable_execute_api_endpoint is None and 'disableExecuteApiEndpoint' in kwargs: + disable_execute_api_endpoint = kwargs['disableExecuteApiEndpoint'] + if execution_arn is None and 'executionArn' in kwargs: + execution_arn = kwargs['executionArn'] + if fail_on_warnings is None and 'failOnWarnings' in kwargs: + fail_on_warnings = kwargs['failOnWarnings'] + if protocol_type is None and 'protocolType' in kwargs: + protocol_type = kwargs['protocolType'] + if route_key is None and 'routeKey' in kwargs: + route_key = kwargs['routeKey'] + if route_selection_expression is None and 'routeSelectionExpression' in kwargs: + route_selection_expression = kwargs['routeSelectionExpression'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if api_endpoint is not None: - pulumi.set(__self__, "api_endpoint", api_endpoint) + _setter("api_endpoint", api_endpoint) if api_key_selection_expression is not None: - pulumi.set(__self__, "api_key_selection_expression", api_key_selection_expression) + _setter("api_key_selection_expression", api_key_selection_expression) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cors_configuration is not None: - pulumi.set(__self__, "cors_configuration", cors_configuration) + _setter("cors_configuration", cors_configuration) if credentials_arn is not None: - pulumi.set(__self__, "credentials_arn", credentials_arn) + _setter("credentials_arn", credentials_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_execute_api_endpoint is not None: - pulumi.set(__self__, "disable_execute_api_endpoint", disable_execute_api_endpoint) + _setter("disable_execute_api_endpoint", disable_execute_api_endpoint) if execution_arn is not None: - pulumi.set(__self__, "execution_arn", execution_arn) + _setter("execution_arn", execution_arn) if fail_on_warnings is not None: - pulumi.set(__self__, "fail_on_warnings", fail_on_warnings) + _setter("fail_on_warnings", fail_on_warnings) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if protocol_type is not None: - pulumi.set(__self__, "protocol_type", protocol_type) + _setter("protocol_type", protocol_type) if route_key is not None: - pulumi.set(__self__, "route_key", route_key) + _setter("route_key", route_key) if route_selection_expression is not None: - pulumi.set(__self__, "route_selection_expression", route_selection_expression) + _setter("route_selection_expression", route_selection_expression) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="apiEndpoint") @@ -704,6 +826,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApiArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -734,6 +860,7 @@ def _internal_init(__self__, __props__.__dict__["api_key_selection_expression"] = api_key_selection_expression __props__.__dict__["body"] = body + cors_configuration = _utilities.configure(cors_configuration, ApiCorsConfigurationArgs, True) __props__.__dict__["cors_configuration"] = cors_configuration __props__.__dict__["credentials_arn"] = credentials_arn __props__.__dict__["description"] = description diff --git a/sdk/python/pulumi_aws/apigatewayv2/api_mapping.py b/sdk/python/pulumi_aws/apigatewayv2/api_mapping.py index 3124ce45b9c..9d1218e4570 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/api_mapping.py +++ b/sdk/python/pulumi_aws/apigatewayv2/api_mapping.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApiMappingArgs', 'ApiMapping'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] stage: API stage. Use the `apigatewayv2.Stage` resource to configure an API stage. :param pulumi.Input[str] api_mapping_key: The API mapping key. Refer to [REST API](https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api-mappings.html), [HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-mappings.html) or [WebSocket API](https://docs.aws.amazon.com/apigateway/latest/developerguide/websocket-api-mappings.html). """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "stage", stage) + ApiMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + domain_name=domain_name, + stage=stage, + api_mapping_key=api_mapping_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + stage: Optional[pulumi.Input[str]] = None, + api_mapping_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if stage is None: + raise TypeError("Missing 'stage' argument") + if api_mapping_key is None and 'apiMappingKey' in kwargs: + api_mapping_key = kwargs['apiMappingKey'] + + _setter("api_id", api_id) + _setter("domain_name", domain_name) + _setter("stage", stage) if api_mapping_key is not None: - pulumi.set(__self__, "api_mapping_key", api_mapping_key) + _setter("api_mapping_key", api_mapping_key) @property @pulumi.getter(name="apiId") @@ -94,14 +123,37 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: Domain name. Use the `apigatewayv2.DomainName` resource to configure a domain name. :param pulumi.Input[str] stage: API stage. Use the `apigatewayv2.Stage` resource to configure an API stage. """ + _ApiMappingState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + api_mapping_key=api_mapping_key, + domain_name=domain_name, + stage=stage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + api_mapping_key: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + stage: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_mapping_key is None and 'apiMappingKey' in kwargs: + api_mapping_key = kwargs['apiMappingKey'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if api_mapping_key is not None: - pulumi.set(__self__, "api_mapping_key", api_mapping_key) + _setter("api_mapping_key", api_mapping_key) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if stage is not None: - pulumi.set(__self__, "stage", stage) + _setter("stage", stage) @property @pulumi.getter(name="apiId") @@ -235,6 +287,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApiMappingArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigatewayv2/authorizer.py b/sdk/python/pulumi_aws/apigatewayv2/authorizer.py index 2505f739e81..68dc8c9a965 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/authorizer.py +++ b/sdk/python/pulumi_aws/apigatewayv2/authorizer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -51,24 +51,75 @@ def __init__(__self__, *, Supported only for HTTP APIs. :param pulumi.Input[str] name: Name of the authorizer. Must be between 1 and 128 characters in length. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "authorizer_type", authorizer_type) + AuthorizerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + authorizer_type=authorizer_type, + authorizer_credentials_arn=authorizer_credentials_arn, + authorizer_payload_format_version=authorizer_payload_format_version, + authorizer_result_ttl_in_seconds=authorizer_result_ttl_in_seconds, + authorizer_uri=authorizer_uri, + enable_simple_responses=enable_simple_responses, + identity_sources=identity_sources, + jwt_configuration=jwt_configuration, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + authorizer_type: Optional[pulumi.Input[str]] = None, + authorizer_credentials_arn: Optional[pulumi.Input[str]] = None, + authorizer_payload_format_version: Optional[pulumi.Input[str]] = None, + authorizer_result_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + authorizer_uri: Optional[pulumi.Input[str]] = None, + enable_simple_responses: Optional[pulumi.Input[bool]] = None, + identity_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + jwt_configuration: Optional[pulumi.Input['AuthorizerJwtConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if authorizer_type is None and 'authorizerType' in kwargs: + authorizer_type = kwargs['authorizerType'] + if authorizer_type is None: + raise TypeError("Missing 'authorizer_type' argument") + if authorizer_credentials_arn is None and 'authorizerCredentialsArn' in kwargs: + authorizer_credentials_arn = kwargs['authorizerCredentialsArn'] + if authorizer_payload_format_version is None and 'authorizerPayloadFormatVersion' in kwargs: + authorizer_payload_format_version = kwargs['authorizerPayloadFormatVersion'] + if authorizer_result_ttl_in_seconds is None and 'authorizerResultTtlInSeconds' in kwargs: + authorizer_result_ttl_in_seconds = kwargs['authorizerResultTtlInSeconds'] + if authorizer_uri is None and 'authorizerUri' in kwargs: + authorizer_uri = kwargs['authorizerUri'] + if enable_simple_responses is None and 'enableSimpleResponses' in kwargs: + enable_simple_responses = kwargs['enableSimpleResponses'] + if identity_sources is None and 'identitySources' in kwargs: + identity_sources = kwargs['identitySources'] + if jwt_configuration is None and 'jwtConfiguration' in kwargs: + jwt_configuration = kwargs['jwtConfiguration'] + + _setter("api_id", api_id) + _setter("authorizer_type", authorizer_type) if authorizer_credentials_arn is not None: - pulumi.set(__self__, "authorizer_credentials_arn", authorizer_credentials_arn) + _setter("authorizer_credentials_arn", authorizer_credentials_arn) if authorizer_payload_format_version is not None: - pulumi.set(__self__, "authorizer_payload_format_version", authorizer_payload_format_version) + _setter("authorizer_payload_format_version", authorizer_payload_format_version) if authorizer_result_ttl_in_seconds is not None: - pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + _setter("authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) if authorizer_uri is not None: - pulumi.set(__self__, "authorizer_uri", authorizer_uri) + _setter("authorizer_uri", authorizer_uri) if enable_simple_responses is not None: - pulumi.set(__self__, "enable_simple_responses", enable_simple_responses) + _setter("enable_simple_responses", enable_simple_responses) if identity_sources is not None: - pulumi.set(__self__, "identity_sources", identity_sources) + _setter("identity_sources", identity_sources) if jwt_configuration is not None: - pulumi.set(__self__, "jwt_configuration", jwt_configuration) + _setter("jwt_configuration", jwt_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="apiId") @@ -241,26 +292,73 @@ def __init__(__self__, *, Supported only for HTTP APIs. :param pulumi.Input[str] name: Name of the authorizer. Must be between 1 and 128 characters in length. """ + _AuthorizerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + authorizer_credentials_arn=authorizer_credentials_arn, + authorizer_payload_format_version=authorizer_payload_format_version, + authorizer_result_ttl_in_seconds=authorizer_result_ttl_in_seconds, + authorizer_type=authorizer_type, + authorizer_uri=authorizer_uri, + enable_simple_responses=enable_simple_responses, + identity_sources=identity_sources, + jwt_configuration=jwt_configuration, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + authorizer_credentials_arn: Optional[pulumi.Input[str]] = None, + authorizer_payload_format_version: Optional[pulumi.Input[str]] = None, + authorizer_result_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + authorizer_type: Optional[pulumi.Input[str]] = None, + authorizer_uri: Optional[pulumi.Input[str]] = None, + enable_simple_responses: Optional[pulumi.Input[bool]] = None, + identity_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + jwt_configuration: Optional[pulumi.Input['AuthorizerJwtConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if authorizer_credentials_arn is None and 'authorizerCredentialsArn' in kwargs: + authorizer_credentials_arn = kwargs['authorizerCredentialsArn'] + if authorizer_payload_format_version is None and 'authorizerPayloadFormatVersion' in kwargs: + authorizer_payload_format_version = kwargs['authorizerPayloadFormatVersion'] + if authorizer_result_ttl_in_seconds is None and 'authorizerResultTtlInSeconds' in kwargs: + authorizer_result_ttl_in_seconds = kwargs['authorizerResultTtlInSeconds'] + if authorizer_type is None and 'authorizerType' in kwargs: + authorizer_type = kwargs['authorizerType'] + if authorizer_uri is None and 'authorizerUri' in kwargs: + authorizer_uri = kwargs['authorizerUri'] + if enable_simple_responses is None and 'enableSimpleResponses' in kwargs: + enable_simple_responses = kwargs['enableSimpleResponses'] + if identity_sources is None and 'identitySources' in kwargs: + identity_sources = kwargs['identitySources'] + if jwt_configuration is None and 'jwtConfiguration' in kwargs: + jwt_configuration = kwargs['jwtConfiguration'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if authorizer_credentials_arn is not None: - pulumi.set(__self__, "authorizer_credentials_arn", authorizer_credentials_arn) + _setter("authorizer_credentials_arn", authorizer_credentials_arn) if authorizer_payload_format_version is not None: - pulumi.set(__self__, "authorizer_payload_format_version", authorizer_payload_format_version) + _setter("authorizer_payload_format_version", authorizer_payload_format_version) if authorizer_result_ttl_in_seconds is not None: - pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + _setter("authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) if authorizer_type is not None: - pulumi.set(__self__, "authorizer_type", authorizer_type) + _setter("authorizer_type", authorizer_type) if authorizer_uri is not None: - pulumi.set(__self__, "authorizer_uri", authorizer_uri) + _setter("authorizer_uri", authorizer_uri) if enable_simple_responses is not None: - pulumi.set(__self__, "enable_simple_responses", enable_simple_responses) + _setter("enable_simple_responses", enable_simple_responses) if identity_sources is not None: - pulumi.set(__self__, "identity_sources", identity_sources) + _setter("identity_sources", identity_sources) if jwt_configuration is not None: - pulumi.set(__self__, "jwt_configuration", jwt_configuration) + _setter("jwt_configuration", jwt_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="apiId") @@ -530,6 +628,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AuthorizerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -566,6 +668,7 @@ def _internal_init(__self__, __props__.__dict__["authorizer_uri"] = authorizer_uri __props__.__dict__["enable_simple_responses"] = enable_simple_responses __props__.__dict__["identity_sources"] = identity_sources + jwt_configuration = _utilities.configure(jwt_configuration, AuthorizerJwtConfigurationArgs, True) __props__.__dict__["jwt_configuration"] = jwt_configuration __props__.__dict__["name"] = name super(Authorizer, __self__).__init__( diff --git a/sdk/python/pulumi_aws/apigatewayv2/deployment.py b/sdk/python/pulumi_aws/apigatewayv2/deployment.py index 3887a6230a1..c22f390c000 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/deployment.py +++ b/sdk/python/pulumi_aws/apigatewayv2/deployment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DeploymentArgs', 'Deployment'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description for the deployment resource. Must be less than or equal to 1024 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger a redeployment. """ - pulumi.set(__self__, "api_id", api_id) + DeploymentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + description=description, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + + _setter("api_id", api_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter(name="apiId") @@ -80,14 +99,35 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description for the deployment resource. Must be less than or equal to 1024 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger a redeployment. """ + _DeploymentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + auto_deployed=auto_deployed, + description=description, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + auto_deployed: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if auto_deployed is None and 'autoDeployed' in kwargs: + auto_deployed = kwargs['autoDeployed'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if auto_deployed is not None: - pulumi.set(__self__, "auto_deployed", auto_deployed) + _setter("auto_deployed", auto_deployed) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter(name="apiId") @@ -223,6 +263,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeploymentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigatewayv2/domain_name.py b/sdk/python/pulumi_aws/apigatewayv2/domain_name.py index 8de0e83196d..0934ffd6535 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/domain_name.py +++ b/sdk/python/pulumi_aws/apigatewayv2/domain_name.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input['DomainNameMutualTlsAuthenticationArgs'] mutual_tls_authentication: Mutual TLS authentication configuration for the domain name. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the domain name. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "domain_name_configuration", domain_name_configuration) + DomainNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + domain_name_configuration=domain_name_configuration, + mutual_tls_authentication=mutual_tls_authentication, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + domain_name_configuration: Optional[pulumi.Input['DomainNameDomainNameConfigurationArgs']] = None, + mutual_tls_authentication: Optional[pulumi.Input['DomainNameMutualTlsAuthenticationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if domain_name_configuration is None and 'domainNameConfiguration' in kwargs: + domain_name_configuration = kwargs['domainNameConfiguration'] + if domain_name_configuration is None: + raise TypeError("Missing 'domain_name_configuration' argument") + if mutual_tls_authentication is None and 'mutualTlsAuthentication' in kwargs: + mutual_tls_authentication = kwargs['mutualTlsAuthentication'] + + _setter("domain_name", domain_name) + _setter("domain_name_configuration", domain_name_configuration) if mutual_tls_authentication is not None: - pulumi.set(__self__, "mutual_tls_authentication", mutual_tls_authentication) + _setter("mutual_tls_authentication", mutual_tls_authentication) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="domainName") @@ -103,23 +130,56 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the domain name. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _DomainNameState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_mapping_selection_expression=api_mapping_selection_expression, + arn=arn, + domain_name=domain_name, + domain_name_configuration=domain_name_configuration, + mutual_tls_authentication=mutual_tls_authentication, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_mapping_selection_expression: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + domain_name_configuration: Optional[pulumi.Input['DomainNameDomainNameConfigurationArgs']] = None, + mutual_tls_authentication: Optional[pulumi.Input['DomainNameMutualTlsAuthenticationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_mapping_selection_expression is None and 'apiMappingSelectionExpression' in kwargs: + api_mapping_selection_expression = kwargs['apiMappingSelectionExpression'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name_configuration is None and 'domainNameConfiguration' in kwargs: + domain_name_configuration = kwargs['domainNameConfiguration'] + if mutual_tls_authentication is None and 'mutualTlsAuthentication' in kwargs: + mutual_tls_authentication = kwargs['mutualTlsAuthentication'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if api_mapping_selection_expression is not None: - pulumi.set(__self__, "api_mapping_selection_expression", api_mapping_selection_expression) + _setter("api_mapping_selection_expression", api_mapping_selection_expression) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if domain_name_configuration is not None: - pulumi.set(__self__, "domain_name_configuration", domain_name_configuration) + _setter("domain_name_configuration", domain_name_configuration) if mutual_tls_authentication is not None: - pulumi.set(__self__, "mutual_tls_authentication", mutual_tls_authentication) + _setter("mutual_tls_authentication", mutual_tls_authentication) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="apiMappingSelectionExpression") @@ -350,6 +410,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainNameArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -371,9 +435,11 @@ def _internal_init(__self__, if domain_name is None and not opts.urn: raise TypeError("Missing required property 'domain_name'") __props__.__dict__["domain_name"] = domain_name + domain_name_configuration = _utilities.configure(domain_name_configuration, DomainNameDomainNameConfigurationArgs, True) if domain_name_configuration is None and not opts.urn: raise TypeError("Missing required property 'domain_name_configuration'") __props__.__dict__["domain_name_configuration"] = domain_name_configuration + mutual_tls_authentication = _utilities.configure(mutual_tls_authentication, DomainNameMutualTlsAuthenticationArgs, True) __props__.__dict__["mutual_tls_authentication"] = mutual_tls_authentication __props__.__dict__["tags"] = tags __props__.__dict__["api_mapping_selection_expression"] = None diff --git a/sdk/python/pulumi_aws/apigatewayv2/get_api.py b/sdk/python/pulumi_aws/apigatewayv2/get_api.py index 619e050d032..018166c85c3 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/get_api.py +++ b/sdk/python/pulumi_aws/apigatewayv2/get_api.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/apigatewayv2/get_apis.py b/sdk/python/pulumi_aws/apigatewayv2/get_apis.py index c879bbc42c3..3da65becb2a 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/get_apis.py +++ b/sdk/python/pulumi_aws/apigatewayv2/get_apis.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/apigatewayv2/get_export.py b/sdk/python/pulumi_aws/apigatewayv2/get_export.py index d0a08e0385c..c7ea08ee654 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/get_export.py +++ b/sdk/python/pulumi_aws/apigatewayv2/get_export.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/apigatewayv2/integration.py b/sdk/python/pulumi_aws/apigatewayv2/integration.py index 91739adb583..46fec77657b 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/integration.py +++ b/sdk/python/pulumi_aws/apigatewayv2/integration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -63,40 +63,123 @@ def __init__(__self__, *, this provider will only perform drift detection of its value when present in a configuration. :param pulumi.Input['IntegrationTlsConfigArgs'] tls_config: TLS configuration for a private integration. Supported only for HTTP APIs. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "integration_type", integration_type) + IntegrationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + integration_type=integration_type, + connection_id=connection_id, + connection_type=connection_type, + content_handling_strategy=content_handling_strategy, + credentials_arn=credentials_arn, + description=description, + integration_method=integration_method, + integration_subtype=integration_subtype, + integration_uri=integration_uri, + passthrough_behavior=passthrough_behavior, + payload_format_version=payload_format_version, + request_parameters=request_parameters, + request_templates=request_templates, + response_parameters=response_parameters, + template_selection_expression=template_selection_expression, + timeout_milliseconds=timeout_milliseconds, + tls_config=tls_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + integration_type: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + connection_type: Optional[pulumi.Input[str]] = None, + content_handling_strategy: Optional[pulumi.Input[str]] = None, + credentials_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + integration_method: Optional[pulumi.Input[str]] = None, + integration_subtype: Optional[pulumi.Input[str]] = None, + integration_uri: Optional[pulumi.Input[str]] = None, + passthrough_behavior: Optional[pulumi.Input[str]] = None, + payload_format_version: Optional[pulumi.Input[str]] = None, + request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + request_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['IntegrationResponseParameterArgs']]]] = None, + template_selection_expression: Optional[pulumi.Input[str]] = None, + timeout_milliseconds: Optional[pulumi.Input[int]] = None, + tls_config: Optional[pulumi.Input['IntegrationTlsConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if integration_type is None and 'integrationType' in kwargs: + integration_type = kwargs['integrationType'] + if integration_type is None: + raise TypeError("Missing 'integration_type' argument") + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_type is None and 'connectionType' in kwargs: + connection_type = kwargs['connectionType'] + if content_handling_strategy is None and 'contentHandlingStrategy' in kwargs: + content_handling_strategy = kwargs['contentHandlingStrategy'] + if credentials_arn is None and 'credentialsArn' in kwargs: + credentials_arn = kwargs['credentialsArn'] + if integration_method is None and 'integrationMethod' in kwargs: + integration_method = kwargs['integrationMethod'] + if integration_subtype is None and 'integrationSubtype' in kwargs: + integration_subtype = kwargs['integrationSubtype'] + if integration_uri is None and 'integrationUri' in kwargs: + integration_uri = kwargs['integrationUri'] + if passthrough_behavior is None and 'passthroughBehavior' in kwargs: + passthrough_behavior = kwargs['passthroughBehavior'] + if payload_format_version is None and 'payloadFormatVersion' in kwargs: + payload_format_version = kwargs['payloadFormatVersion'] + if request_parameters is None and 'requestParameters' in kwargs: + request_parameters = kwargs['requestParameters'] + if request_templates is None and 'requestTemplates' in kwargs: + request_templates = kwargs['requestTemplates'] + if response_parameters is None and 'responseParameters' in kwargs: + response_parameters = kwargs['responseParameters'] + if template_selection_expression is None and 'templateSelectionExpression' in kwargs: + template_selection_expression = kwargs['templateSelectionExpression'] + if timeout_milliseconds is None and 'timeoutMilliseconds' in kwargs: + timeout_milliseconds = kwargs['timeoutMilliseconds'] + if tls_config is None and 'tlsConfig' in kwargs: + tls_config = kwargs['tlsConfig'] + + _setter("api_id", api_id) + _setter("integration_type", integration_type) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if connection_type is not None: - pulumi.set(__self__, "connection_type", connection_type) + _setter("connection_type", connection_type) if content_handling_strategy is not None: - pulumi.set(__self__, "content_handling_strategy", content_handling_strategy) + _setter("content_handling_strategy", content_handling_strategy) if credentials_arn is not None: - pulumi.set(__self__, "credentials_arn", credentials_arn) + _setter("credentials_arn", credentials_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if integration_method is not None: - pulumi.set(__self__, "integration_method", integration_method) + _setter("integration_method", integration_method) if integration_subtype is not None: - pulumi.set(__self__, "integration_subtype", integration_subtype) + _setter("integration_subtype", integration_subtype) if integration_uri is not None: - pulumi.set(__self__, "integration_uri", integration_uri) + _setter("integration_uri", integration_uri) if passthrough_behavior is not None: - pulumi.set(__self__, "passthrough_behavior", passthrough_behavior) + _setter("passthrough_behavior", passthrough_behavior) if payload_format_version is not None: - pulumi.set(__self__, "payload_format_version", payload_format_version) + _setter("payload_format_version", payload_format_version) if request_parameters is not None: - pulumi.set(__self__, "request_parameters", request_parameters) + _setter("request_parameters", request_parameters) if request_templates is not None: - pulumi.set(__self__, "request_templates", request_templates) + _setter("request_templates", request_templates) if response_parameters is not None: - pulumi.set(__self__, "response_parameters", response_parameters) + _setter("response_parameters", response_parameters) if template_selection_expression is not None: - pulumi.set(__self__, "template_selection_expression", template_selection_expression) + _setter("template_selection_expression", template_selection_expression) if timeout_milliseconds is not None: - pulumi.set(__self__, "timeout_milliseconds", timeout_milliseconds) + _setter("timeout_milliseconds", timeout_milliseconds) if tls_config is not None: - pulumi.set(__self__, "tls_config", tls_config) + _setter("tls_config", tls_config) @property @pulumi.getter(name="apiId") @@ -375,44 +458,127 @@ def __init__(__self__, *, this provider will only perform drift detection of its value when present in a configuration. :param pulumi.Input['IntegrationTlsConfigArgs'] tls_config: TLS configuration for a private integration. Supported only for HTTP APIs. """ + _IntegrationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + connection_id=connection_id, + connection_type=connection_type, + content_handling_strategy=content_handling_strategy, + credentials_arn=credentials_arn, + description=description, + integration_method=integration_method, + integration_response_selection_expression=integration_response_selection_expression, + integration_subtype=integration_subtype, + integration_type=integration_type, + integration_uri=integration_uri, + passthrough_behavior=passthrough_behavior, + payload_format_version=payload_format_version, + request_parameters=request_parameters, + request_templates=request_templates, + response_parameters=response_parameters, + template_selection_expression=template_selection_expression, + timeout_milliseconds=timeout_milliseconds, + tls_config=tls_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + connection_type: Optional[pulumi.Input[str]] = None, + content_handling_strategy: Optional[pulumi.Input[str]] = None, + credentials_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + integration_method: Optional[pulumi.Input[str]] = None, + integration_response_selection_expression: Optional[pulumi.Input[str]] = None, + integration_subtype: Optional[pulumi.Input[str]] = None, + integration_type: Optional[pulumi.Input[str]] = None, + integration_uri: Optional[pulumi.Input[str]] = None, + passthrough_behavior: Optional[pulumi.Input[str]] = None, + payload_format_version: Optional[pulumi.Input[str]] = None, + request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + request_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['IntegrationResponseParameterArgs']]]] = None, + template_selection_expression: Optional[pulumi.Input[str]] = None, + timeout_milliseconds: Optional[pulumi.Input[int]] = None, + tls_config: Optional[pulumi.Input['IntegrationTlsConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_type is None and 'connectionType' in kwargs: + connection_type = kwargs['connectionType'] + if content_handling_strategy is None and 'contentHandlingStrategy' in kwargs: + content_handling_strategy = kwargs['contentHandlingStrategy'] + if credentials_arn is None and 'credentialsArn' in kwargs: + credentials_arn = kwargs['credentialsArn'] + if integration_method is None and 'integrationMethod' in kwargs: + integration_method = kwargs['integrationMethod'] + if integration_response_selection_expression is None and 'integrationResponseSelectionExpression' in kwargs: + integration_response_selection_expression = kwargs['integrationResponseSelectionExpression'] + if integration_subtype is None and 'integrationSubtype' in kwargs: + integration_subtype = kwargs['integrationSubtype'] + if integration_type is None and 'integrationType' in kwargs: + integration_type = kwargs['integrationType'] + if integration_uri is None and 'integrationUri' in kwargs: + integration_uri = kwargs['integrationUri'] + if passthrough_behavior is None and 'passthroughBehavior' in kwargs: + passthrough_behavior = kwargs['passthroughBehavior'] + if payload_format_version is None and 'payloadFormatVersion' in kwargs: + payload_format_version = kwargs['payloadFormatVersion'] + if request_parameters is None and 'requestParameters' in kwargs: + request_parameters = kwargs['requestParameters'] + if request_templates is None and 'requestTemplates' in kwargs: + request_templates = kwargs['requestTemplates'] + if response_parameters is None and 'responseParameters' in kwargs: + response_parameters = kwargs['responseParameters'] + if template_selection_expression is None and 'templateSelectionExpression' in kwargs: + template_selection_expression = kwargs['templateSelectionExpression'] + if timeout_milliseconds is None and 'timeoutMilliseconds' in kwargs: + timeout_milliseconds = kwargs['timeoutMilliseconds'] + if tls_config is None and 'tlsConfig' in kwargs: + tls_config = kwargs['tlsConfig'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if connection_type is not None: - pulumi.set(__self__, "connection_type", connection_type) + _setter("connection_type", connection_type) if content_handling_strategy is not None: - pulumi.set(__self__, "content_handling_strategy", content_handling_strategy) + _setter("content_handling_strategy", content_handling_strategy) if credentials_arn is not None: - pulumi.set(__self__, "credentials_arn", credentials_arn) + _setter("credentials_arn", credentials_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if integration_method is not None: - pulumi.set(__self__, "integration_method", integration_method) + _setter("integration_method", integration_method) if integration_response_selection_expression is not None: - pulumi.set(__self__, "integration_response_selection_expression", integration_response_selection_expression) + _setter("integration_response_selection_expression", integration_response_selection_expression) if integration_subtype is not None: - pulumi.set(__self__, "integration_subtype", integration_subtype) + _setter("integration_subtype", integration_subtype) if integration_type is not None: - pulumi.set(__self__, "integration_type", integration_type) + _setter("integration_type", integration_type) if integration_uri is not None: - pulumi.set(__self__, "integration_uri", integration_uri) + _setter("integration_uri", integration_uri) if passthrough_behavior is not None: - pulumi.set(__self__, "passthrough_behavior", passthrough_behavior) + _setter("passthrough_behavior", passthrough_behavior) if payload_format_version is not None: - pulumi.set(__self__, "payload_format_version", payload_format_version) + _setter("payload_format_version", payload_format_version) if request_parameters is not None: - pulumi.set(__self__, "request_parameters", request_parameters) + _setter("request_parameters", request_parameters) if request_templates is not None: - pulumi.set(__self__, "request_templates", request_templates) + _setter("request_templates", request_templates) if response_parameters is not None: - pulumi.set(__self__, "response_parameters", response_parameters) + _setter("response_parameters", response_parameters) if template_selection_expression is not None: - pulumi.set(__self__, "template_selection_expression", template_selection_expression) + _setter("template_selection_expression", template_selection_expression) if timeout_milliseconds is not None: - pulumi.set(__self__, "timeout_milliseconds", timeout_milliseconds) + _setter("timeout_milliseconds", timeout_milliseconds) if tls_config is not None: - pulumi.set(__self__, "tls_config", tls_config) + _setter("tls_config", tls_config) @property @pulumi.getter(name="apiId") @@ -920,6 +1086,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IntegrationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -973,6 +1143,7 @@ def _internal_init(__self__, __props__.__dict__["response_parameters"] = response_parameters __props__.__dict__["template_selection_expression"] = template_selection_expression __props__.__dict__["timeout_milliseconds"] = timeout_milliseconds + tls_config = _utilities.configure(tls_config, IntegrationTlsConfigArgs, True) __props__.__dict__["tls_config"] = tls_config __props__.__dict__["integration_response_selection_expression"] = None super(Integration, __self__).__init__( diff --git a/sdk/python/pulumi_aws/apigatewayv2/integration_response.py b/sdk/python/pulumi_aws/apigatewayv2/integration_response.py index 5b9e593481c..26f752c1395 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/integration_response.py +++ b/sdk/python/pulumi_aws/apigatewayv2/integration_response.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['IntegrationResponseArgs', 'IntegrationResponse'] @@ -29,15 +29,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] response_templates: Map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. :param pulumi.Input[str] template_selection_expression: The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration response. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "integration_id", integration_id) - pulumi.set(__self__, "integration_response_key", integration_response_key) + IntegrationResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + integration_id=integration_id, + integration_response_key=integration_response_key, + content_handling_strategy=content_handling_strategy, + response_templates=response_templates, + template_selection_expression=template_selection_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + integration_id: Optional[pulumi.Input[str]] = None, + integration_response_key: Optional[pulumi.Input[str]] = None, + content_handling_strategy: Optional[pulumi.Input[str]] = None, + response_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_selection_expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if integration_id is None and 'integrationId' in kwargs: + integration_id = kwargs['integrationId'] + if integration_id is None: + raise TypeError("Missing 'integration_id' argument") + if integration_response_key is None and 'integrationResponseKey' in kwargs: + integration_response_key = kwargs['integrationResponseKey'] + if integration_response_key is None: + raise TypeError("Missing 'integration_response_key' argument") + if content_handling_strategy is None and 'contentHandlingStrategy' in kwargs: + content_handling_strategy = kwargs['contentHandlingStrategy'] + if response_templates is None and 'responseTemplates' in kwargs: + response_templates = kwargs['responseTemplates'] + if template_selection_expression is None and 'templateSelectionExpression' in kwargs: + template_selection_expression = kwargs['templateSelectionExpression'] + + _setter("api_id", api_id) + _setter("integration_id", integration_id) + _setter("integration_response_key", integration_response_key) if content_handling_strategy is not None: - pulumi.set(__self__, "content_handling_strategy", content_handling_strategy) + _setter("content_handling_strategy", content_handling_strategy) if response_templates is not None: - pulumi.set(__self__, "response_templates", response_templates) + _setter("response_templates", response_templates) if template_selection_expression is not None: - pulumi.set(__self__, "template_selection_expression", template_selection_expression) + _setter("template_selection_expression", template_selection_expression) @property @pulumi.getter(name="apiId") @@ -130,18 +169,51 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] response_templates: Map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. :param pulumi.Input[str] template_selection_expression: The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration response. """ + _IntegrationResponseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + content_handling_strategy=content_handling_strategy, + integration_id=integration_id, + integration_response_key=integration_response_key, + response_templates=response_templates, + template_selection_expression=template_selection_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + content_handling_strategy: Optional[pulumi.Input[str]] = None, + integration_id: Optional[pulumi.Input[str]] = None, + integration_response_key: Optional[pulumi.Input[str]] = None, + response_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_selection_expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if content_handling_strategy is None and 'contentHandlingStrategy' in kwargs: + content_handling_strategy = kwargs['contentHandlingStrategy'] + if integration_id is None and 'integrationId' in kwargs: + integration_id = kwargs['integrationId'] + if integration_response_key is None and 'integrationResponseKey' in kwargs: + integration_response_key = kwargs['integrationResponseKey'] + if response_templates is None and 'responseTemplates' in kwargs: + response_templates = kwargs['responseTemplates'] + if template_selection_expression is None and 'templateSelectionExpression' in kwargs: + template_selection_expression = kwargs['templateSelectionExpression'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if content_handling_strategy is not None: - pulumi.set(__self__, "content_handling_strategy", content_handling_strategy) + _setter("content_handling_strategy", content_handling_strategy) if integration_id is not None: - pulumi.set(__self__, "integration_id", integration_id) + _setter("integration_id", integration_id) if integration_response_key is not None: - pulumi.set(__self__, "integration_response_key", integration_response_key) + _setter("integration_response_key", integration_response_key) if response_templates is not None: - pulumi.set(__self__, "response_templates", response_templates) + _setter("response_templates", response_templates) if template_selection_expression is not None: - pulumi.set(__self__, "template_selection_expression", template_selection_expression) + _setter("template_selection_expression", template_selection_expression) @property @pulumi.getter(name="apiId") @@ -303,6 +375,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IntegrationResponseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigatewayv2/model.py b/sdk/python/pulumi_aws/apigatewayv2/model.py index 7ac3b6158e0..065875a82e1 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/model.py +++ b/sdk/python/pulumi_aws/apigatewayv2/model.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ModelArgs', 'Model'] @@ -27,13 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the model. Must be between 1 and 128 characters in length. :param pulumi.Input[str] name: Name of the model. Must be alphanumeric. Must be between 1 and 128 characters in length. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "schema", schema) + ModelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + content_type=content_type, + schema=schema, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if schema is None: + raise TypeError("Missing 'schema' argument") + + _setter("api_id", api_id) + _setter("content_type", content_type) + _setter("schema", schema) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="apiId") @@ -112,16 +141,39 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the model. Must be alphanumeric. Must be between 1 and 128 characters in length. :param pulumi.Input[str] schema: Schema for the model. This should be a [JSON schema draft 4](https://tools.ietf.org/html/draft-zyp-json-schema-04) model. Must be less than or equal to 32768 characters in length. """ + _ModelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + content_type=content_type, + description=description, + name=name, + schema=schema, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) @property @pulumi.getter(name="apiId") @@ -287,6 +339,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ModelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigatewayv2/outputs.py b/sdk/python/pulumi_aws/apigatewayv2/outputs.py index 2b4b01b4f3f..a110dc7ff46 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/outputs.py +++ b/sdk/python/pulumi_aws/apigatewayv2/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -67,18 +67,51 @@ def __init__(__self__, *, :param Sequence[str] expose_headers: Set of exposed HTTP headers. :param int max_age: Number of seconds that the browser should cache preflight request results. """ + ApiCorsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_credentials=allow_credentials, + allow_headers=allow_headers, + allow_methods=allow_methods, + allow_origins=allow_origins, + expose_headers=expose_headers, + max_age=max_age, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_credentials: Optional[bool] = None, + allow_headers: Optional[Sequence[str]] = None, + allow_methods: Optional[Sequence[str]] = None, + allow_origins: Optional[Sequence[str]] = None, + expose_headers: Optional[Sequence[str]] = None, + max_age: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_credentials is None and 'allowCredentials' in kwargs: + allow_credentials = kwargs['allowCredentials'] + if allow_headers is None and 'allowHeaders' in kwargs: + allow_headers = kwargs['allowHeaders'] + if allow_methods is None and 'allowMethods' in kwargs: + allow_methods = kwargs['allowMethods'] + if allow_origins is None and 'allowOrigins' in kwargs: + allow_origins = kwargs['allowOrigins'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age is None and 'maxAge' in kwargs: + max_age = kwargs['maxAge'] + if allow_credentials is not None: - pulumi.set(__self__, "allow_credentials", allow_credentials) + _setter("allow_credentials", allow_credentials) if allow_headers is not None: - pulumi.set(__self__, "allow_headers", allow_headers) + _setter("allow_headers", allow_headers) if allow_methods is not None: - pulumi.set(__self__, "allow_methods", allow_methods) + _setter("allow_methods", allow_methods) if allow_origins is not None: - pulumi.set(__self__, "allow_origins", allow_origins) + _setter("allow_origins", allow_origins) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if max_age is not None: - pulumi.set(__self__, "max_age", max_age) + _setter("max_age", max_age) @property @pulumi.getter(name="allowCredentials") @@ -138,10 +171,23 @@ def __init__(__self__, *, :param Sequence[str] audiences: List of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. :param str issuer: Base domain of the identity provider that issues JSON Web Tokens, such as the `endpoint` attribute of the `cognito.UserPool` resource. """ + AuthorizerJwtConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + audiences=audiences, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audiences: Optional[Sequence[str]] = None, + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audiences is not None: - pulumi.set(__self__, "audiences", audiences) + _setter("audiences", audiences) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) @property @pulumi.getter @@ -204,15 +250,54 @@ def __init__(__self__, *, :param str ownership_verification_certificate_arn: ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificate_arn` is issued via an ACM Private CA or `mutual_tls_authentication` is configured with an ACM-imported certificate.) :param str target_domain_name: Target domain name. """ - pulumi.set(__self__, "certificate_arn", certificate_arn) - pulumi.set(__self__, "endpoint_type", endpoint_type) - pulumi.set(__self__, "security_policy", security_policy) + DomainNameDomainNameConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + endpoint_type=endpoint_type, + security_policy=security_policy, + hosted_zone_id=hosted_zone_id, + ownership_verification_certificate_arn=ownership_verification_certificate_arn, + target_domain_name=target_domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[str] = None, + endpoint_type: Optional[str] = None, + security_policy: Optional[str] = None, + hosted_zone_id: Optional[str] = None, + ownership_verification_certificate_arn: Optional[str] = None, + target_domain_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + if security_policy is None and 'securityPolicy' in kwargs: + security_policy = kwargs['securityPolicy'] + if security_policy is None: + raise TypeError("Missing 'security_policy' argument") + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if ownership_verification_certificate_arn is None and 'ownershipVerificationCertificateArn' in kwargs: + ownership_verification_certificate_arn = kwargs['ownershipVerificationCertificateArn'] + if target_domain_name is None and 'targetDomainName' in kwargs: + target_domain_name = kwargs['targetDomainName'] + + _setter("certificate_arn", certificate_arn) + _setter("endpoint_type", endpoint_type) + _setter("security_policy", security_policy) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if ownership_verification_certificate_arn is not None: - pulumi.set(__self__, "ownership_verification_certificate_arn", ownership_verification_certificate_arn) + _setter("ownership_verification_certificate_arn", ownership_verification_certificate_arn) if target_domain_name is not None: - pulumi.set(__self__, "target_domain_name", target_domain_name) + _setter("target_domain_name", target_domain_name) @property @pulumi.getter(name="certificateArn") @@ -291,9 +376,28 @@ def __init__(__self__, *, :param str truststore_uri: Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. :param str truststore_version: Version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. """ - pulumi.set(__self__, "truststore_uri", truststore_uri) + DomainNameMutualTlsAuthentication._configure( + lambda key, value: pulumi.set(__self__, key, value), + truststore_uri=truststore_uri, + truststore_version=truststore_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + truststore_uri: Optional[str] = None, + truststore_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if truststore_uri is None and 'truststoreUri' in kwargs: + truststore_uri = kwargs['truststoreUri'] + if truststore_uri is None: + raise TypeError("Missing 'truststore_uri' argument") + if truststore_version is None and 'truststoreVersion' in kwargs: + truststore_version = kwargs['truststoreVersion'] + + _setter("truststore_uri", truststore_uri) if truststore_version is not None: - pulumi.set(__self__, "truststore_version", truststore_version) + _setter("truststore_version", truststore_version) @property @pulumi.getter(name="truststoreUri") @@ -339,8 +443,27 @@ def __init__(__self__, *, See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. :param str status_code: HTTP status code in the range 200-599. """ - pulumi.set(__self__, "mappings", mappings) - pulumi.set(__self__, "status_code", status_code) + IntegrationResponseParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + mappings=mappings, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mappings: Optional[Mapping[str, str]] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mappings is None: + raise TypeError("Missing 'mappings' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("mappings", mappings) + _setter("status_code", status_code) @property @pulumi.getter @@ -384,8 +507,21 @@ def __init__(__self__, *, """ :param str server_name_to_verify: If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting. """ + IntegrationTlsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + server_name_to_verify=server_name_to_verify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + server_name_to_verify: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if server_name_to_verify is None and 'serverNameToVerify' in kwargs: + server_name_to_verify = kwargs['serverNameToVerify'] + if server_name_to_verify is not None: - pulumi.set(__self__, "server_name_to_verify", server_name_to_verify) + _setter("server_name_to_verify", server_name_to_verify) @property @pulumi.getter(name="serverNameToVerify") @@ -422,8 +558,27 @@ def __init__(__self__, *, :param str request_parameter_key: Request parameter key. This is a [request data mapping parameter](https://docs.aws.amazon.com/apigateway/latest/developerguide/websocket-api-data-mapping.html#websocket-mapping-request-parameters). :param bool required: Boolean whether or not the parameter is required. """ - pulumi.set(__self__, "request_parameter_key", request_parameter_key) - pulumi.set(__self__, "required", required) + RouteRequestParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + request_parameter_key=request_parameter_key, + required=required, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + request_parameter_key: Optional[str] = None, + required: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if request_parameter_key is None and 'requestParameterKey' in kwargs: + request_parameter_key = kwargs['requestParameterKey'] + if request_parameter_key is None: + raise TypeError("Missing 'request_parameter_key' argument") + if required is None: + raise TypeError("Missing 'required' argument") + + _setter("request_parameter_key", request_parameter_key) + _setter("required", required) @property @pulumi.getter(name="requestParameterKey") @@ -468,8 +623,27 @@ def __init__(__self__, *, :param str destination_arn: ARN of the CloudWatch Logs log group to receive access logs. Any trailing `:*` is trimmed from the ARN. :param str format: Single line [format](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html#apigateway-cloudwatch-log-formats) of the access logs of data. Refer to log settings for [HTTP](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-logging-variables.html) or [Websocket](https://docs.aws.amazon.com/apigateway/latest/developerguide/websocket-api-logging.html). """ - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "format", format) + StageAccessLogSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[str] = None, + format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if format is None: + raise TypeError("Missing 'format' argument") + + _setter("destination_arn", destination_arn) + _setter("format", format) @property @pulumi.getter(name="destinationArn") @@ -530,16 +704,45 @@ def __init__(__self__, *, :param int throttling_burst_limit: Throttling burst limit for the default route. :param float throttling_rate_limit: Throttling rate limit for the default route. """ + StageDefaultRouteSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_trace_enabled=data_trace_enabled, + detailed_metrics_enabled=detailed_metrics_enabled, + logging_level=logging_level, + throttling_burst_limit=throttling_burst_limit, + throttling_rate_limit=throttling_rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_trace_enabled: Optional[bool] = None, + detailed_metrics_enabled: Optional[bool] = None, + logging_level: Optional[str] = None, + throttling_burst_limit: Optional[int] = None, + throttling_rate_limit: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_trace_enabled is None and 'dataTraceEnabled' in kwargs: + data_trace_enabled = kwargs['dataTraceEnabled'] + if detailed_metrics_enabled is None and 'detailedMetricsEnabled' in kwargs: + detailed_metrics_enabled = kwargs['detailedMetricsEnabled'] + if logging_level is None and 'loggingLevel' in kwargs: + logging_level = kwargs['loggingLevel'] + if throttling_burst_limit is None and 'throttlingBurstLimit' in kwargs: + throttling_burst_limit = kwargs['throttlingBurstLimit'] + if throttling_rate_limit is None and 'throttlingRateLimit' in kwargs: + throttling_rate_limit = kwargs['throttlingRateLimit'] + if data_trace_enabled is not None: - pulumi.set(__self__, "data_trace_enabled", data_trace_enabled) + _setter("data_trace_enabled", data_trace_enabled) if detailed_metrics_enabled is not None: - pulumi.set(__self__, "detailed_metrics_enabled", detailed_metrics_enabled) + _setter("detailed_metrics_enabled", detailed_metrics_enabled) if logging_level is not None: - pulumi.set(__self__, "logging_level", logging_level) + _setter("logging_level", logging_level) if throttling_burst_limit is not None: - pulumi.set(__self__, "throttling_burst_limit", throttling_burst_limit) + _setter("throttling_burst_limit", throttling_burst_limit) if throttling_rate_limit is not None: - pulumi.set(__self__, "throttling_rate_limit", throttling_rate_limit) + _setter("throttling_rate_limit", throttling_rate_limit) @property @pulumi.getter(name="dataTraceEnabled") @@ -630,17 +833,52 @@ def __init__(__self__, *, :param int throttling_burst_limit: Throttling burst limit for the route. :param float throttling_rate_limit: Throttling rate limit for the route. """ - pulumi.set(__self__, "route_key", route_key) + StageRouteSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + route_key=route_key, + data_trace_enabled=data_trace_enabled, + detailed_metrics_enabled=detailed_metrics_enabled, + logging_level=logging_level, + throttling_burst_limit=throttling_burst_limit, + throttling_rate_limit=throttling_rate_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route_key: Optional[str] = None, + data_trace_enabled: Optional[bool] = None, + detailed_metrics_enabled: Optional[bool] = None, + logging_level: Optional[str] = None, + throttling_burst_limit: Optional[int] = None, + throttling_rate_limit: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route_key is None and 'routeKey' in kwargs: + route_key = kwargs['routeKey'] + if route_key is None: + raise TypeError("Missing 'route_key' argument") + if data_trace_enabled is None and 'dataTraceEnabled' in kwargs: + data_trace_enabled = kwargs['dataTraceEnabled'] + if detailed_metrics_enabled is None and 'detailedMetricsEnabled' in kwargs: + detailed_metrics_enabled = kwargs['detailedMetricsEnabled'] + if logging_level is None and 'loggingLevel' in kwargs: + logging_level = kwargs['loggingLevel'] + if throttling_burst_limit is None and 'throttlingBurstLimit' in kwargs: + throttling_burst_limit = kwargs['throttlingBurstLimit'] + if throttling_rate_limit is None and 'throttlingRateLimit' in kwargs: + throttling_rate_limit = kwargs['throttlingRateLimit'] + + _setter("route_key", route_key) if data_trace_enabled is not None: - pulumi.set(__self__, "data_trace_enabled", data_trace_enabled) + _setter("data_trace_enabled", data_trace_enabled) if detailed_metrics_enabled is not None: - pulumi.set(__self__, "detailed_metrics_enabled", detailed_metrics_enabled) + _setter("detailed_metrics_enabled", detailed_metrics_enabled) if logging_level is not None: - pulumi.set(__self__, "logging_level", logging_level) + _setter("logging_level", logging_level) if throttling_burst_limit is not None: - pulumi.set(__self__, "throttling_burst_limit", throttling_burst_limit) + _setter("throttling_burst_limit", throttling_burst_limit) if throttling_rate_limit is not None: - pulumi.set(__self__, "throttling_rate_limit", throttling_rate_limit) + _setter("throttling_rate_limit", throttling_rate_limit) @property @pulumi.getter(name="routeKey") @@ -710,12 +948,57 @@ def __init__(__self__, *, :param Sequence[str] expose_headers: Set of exposed HTTP headers. :param int max_age: Number of seconds that the browser should cache preflight request results. """ - pulumi.set(__self__, "allow_credentials", allow_credentials) - pulumi.set(__self__, "allow_headers", allow_headers) - pulumi.set(__self__, "allow_methods", allow_methods) - pulumi.set(__self__, "allow_origins", allow_origins) - pulumi.set(__self__, "expose_headers", expose_headers) - pulumi.set(__self__, "max_age", max_age) + GetApiCorsConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_credentials=allow_credentials, + allow_headers=allow_headers, + allow_methods=allow_methods, + allow_origins=allow_origins, + expose_headers=expose_headers, + max_age=max_age, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_credentials: Optional[bool] = None, + allow_headers: Optional[Sequence[str]] = None, + allow_methods: Optional[Sequence[str]] = None, + allow_origins: Optional[Sequence[str]] = None, + expose_headers: Optional[Sequence[str]] = None, + max_age: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_credentials is None and 'allowCredentials' in kwargs: + allow_credentials = kwargs['allowCredentials'] + if allow_credentials is None: + raise TypeError("Missing 'allow_credentials' argument") + if allow_headers is None and 'allowHeaders' in kwargs: + allow_headers = kwargs['allowHeaders'] + if allow_headers is None: + raise TypeError("Missing 'allow_headers' argument") + if allow_methods is None and 'allowMethods' in kwargs: + allow_methods = kwargs['allowMethods'] + if allow_methods is None: + raise TypeError("Missing 'allow_methods' argument") + if allow_origins is None and 'allowOrigins' in kwargs: + allow_origins = kwargs['allowOrigins'] + if allow_origins is None: + raise TypeError("Missing 'allow_origins' argument") + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if expose_headers is None: + raise TypeError("Missing 'expose_headers' argument") + if max_age is None and 'maxAge' in kwargs: + max_age = kwargs['maxAge'] + if max_age is None: + raise TypeError("Missing 'max_age' argument") + + _setter("allow_credentials", allow_credentials) + _setter("allow_headers", allow_headers) + _setter("allow_methods", allow_methods) + _setter("allow_origins", allow_origins) + _setter("expose_headers", expose_headers) + _setter("max_age", max_age) @property @pulumi.getter(name="allowCredentials") diff --git a/sdk/python/pulumi_aws/apigatewayv2/route.py b/sdk/python/pulumi_aws/apigatewayv2/route.py index ef8c78d04c4..08f78cac848 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/route.py +++ b/sdk/python/pulumi_aws/apigatewayv2/route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -46,28 +46,87 @@ def __init__(__self__, *, :param pulumi.Input[str] route_response_selection_expression: The [route response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-route-response-selection-expressions) for the route. Supported only for WebSocket APIs. :param pulumi.Input[str] target: Target for the route, of the form `integrations/`*`IntegrationID`*, where *`IntegrationID`* is the identifier of an `apigatewayv2.Integration` resource. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "route_key", route_key) + RouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + route_key=route_key, + api_key_required=api_key_required, + authorization_scopes=authorization_scopes, + authorization_type=authorization_type, + authorizer_id=authorizer_id, + model_selection_expression=model_selection_expression, + operation_name=operation_name, + request_models=request_models, + request_parameters=request_parameters, + route_response_selection_expression=route_response_selection_expression, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + route_key: Optional[pulumi.Input[str]] = None, + api_key_required: Optional[pulumi.Input[bool]] = None, + authorization_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + authorization_type: Optional[pulumi.Input[str]] = None, + authorizer_id: Optional[pulumi.Input[str]] = None, + model_selection_expression: Optional[pulumi.Input[str]] = None, + operation_name: Optional[pulumi.Input[str]] = None, + request_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + request_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['RouteRequestParameterArgs']]]] = None, + route_response_selection_expression: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if route_key is None and 'routeKey' in kwargs: + route_key = kwargs['routeKey'] + if route_key is None: + raise TypeError("Missing 'route_key' argument") + if api_key_required is None and 'apiKeyRequired' in kwargs: + api_key_required = kwargs['apiKeyRequired'] + if authorization_scopes is None and 'authorizationScopes' in kwargs: + authorization_scopes = kwargs['authorizationScopes'] + if authorization_type is None and 'authorizationType' in kwargs: + authorization_type = kwargs['authorizationType'] + if authorizer_id is None and 'authorizerId' in kwargs: + authorizer_id = kwargs['authorizerId'] + if model_selection_expression is None and 'modelSelectionExpression' in kwargs: + model_selection_expression = kwargs['modelSelectionExpression'] + if operation_name is None and 'operationName' in kwargs: + operation_name = kwargs['operationName'] + if request_models is None and 'requestModels' in kwargs: + request_models = kwargs['requestModels'] + if request_parameters is None and 'requestParameters' in kwargs: + request_parameters = kwargs['requestParameters'] + if route_response_selection_expression is None and 'routeResponseSelectionExpression' in kwargs: + route_response_selection_expression = kwargs['routeResponseSelectionExpression'] + + _setter("api_id", api_id) + _setter("route_key", route_key) if api_key_required is not None: - pulumi.set(__self__, "api_key_required", api_key_required) + _setter("api_key_required", api_key_required) if authorization_scopes is not None: - pulumi.set(__self__, "authorization_scopes", authorization_scopes) + _setter("authorization_scopes", authorization_scopes) if authorization_type is not None: - pulumi.set(__self__, "authorization_type", authorization_type) + _setter("authorization_type", authorization_type) if authorizer_id is not None: - pulumi.set(__self__, "authorizer_id", authorizer_id) + _setter("authorizer_id", authorizer_id) if model_selection_expression is not None: - pulumi.set(__self__, "model_selection_expression", model_selection_expression) + _setter("model_selection_expression", model_selection_expression) if operation_name is not None: - pulumi.set(__self__, "operation_name", operation_name) + _setter("operation_name", operation_name) if request_models is not None: - pulumi.set(__self__, "request_models", request_models) + _setter("request_models", request_models) if request_parameters is not None: - pulumi.set(__self__, "request_parameters", request_parameters) + _setter("request_parameters", request_parameters) if route_response_selection_expression is not None: - pulumi.set(__self__, "route_response_selection_expression", route_response_selection_expression) + _setter("route_response_selection_expression", route_response_selection_expression) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter(name="apiId") @@ -250,30 +309,85 @@ def __init__(__self__, *, :param pulumi.Input[str] route_response_selection_expression: The [route response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-route-response-selection-expressions) for the route. Supported only for WebSocket APIs. :param pulumi.Input[str] target: Target for the route, of the form `integrations/`*`IntegrationID`*, where *`IntegrationID`* is the identifier of an `apigatewayv2.Integration` resource. """ + _RouteState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + api_key_required=api_key_required, + authorization_scopes=authorization_scopes, + authorization_type=authorization_type, + authorizer_id=authorizer_id, + model_selection_expression=model_selection_expression, + operation_name=operation_name, + request_models=request_models, + request_parameters=request_parameters, + route_key=route_key, + route_response_selection_expression=route_response_selection_expression, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + api_key_required: Optional[pulumi.Input[bool]] = None, + authorization_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + authorization_type: Optional[pulumi.Input[str]] = None, + authorizer_id: Optional[pulumi.Input[str]] = None, + model_selection_expression: Optional[pulumi.Input[str]] = None, + operation_name: Optional[pulumi.Input[str]] = None, + request_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + request_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['RouteRequestParameterArgs']]]] = None, + route_key: Optional[pulumi.Input[str]] = None, + route_response_selection_expression: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_key_required is None and 'apiKeyRequired' in kwargs: + api_key_required = kwargs['apiKeyRequired'] + if authorization_scopes is None and 'authorizationScopes' in kwargs: + authorization_scopes = kwargs['authorizationScopes'] + if authorization_type is None and 'authorizationType' in kwargs: + authorization_type = kwargs['authorizationType'] + if authorizer_id is None and 'authorizerId' in kwargs: + authorizer_id = kwargs['authorizerId'] + if model_selection_expression is None and 'modelSelectionExpression' in kwargs: + model_selection_expression = kwargs['modelSelectionExpression'] + if operation_name is None and 'operationName' in kwargs: + operation_name = kwargs['operationName'] + if request_models is None and 'requestModels' in kwargs: + request_models = kwargs['requestModels'] + if request_parameters is None and 'requestParameters' in kwargs: + request_parameters = kwargs['requestParameters'] + if route_key is None and 'routeKey' in kwargs: + route_key = kwargs['routeKey'] + if route_response_selection_expression is None and 'routeResponseSelectionExpression' in kwargs: + route_response_selection_expression = kwargs['routeResponseSelectionExpression'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if api_key_required is not None: - pulumi.set(__self__, "api_key_required", api_key_required) + _setter("api_key_required", api_key_required) if authorization_scopes is not None: - pulumi.set(__self__, "authorization_scopes", authorization_scopes) + _setter("authorization_scopes", authorization_scopes) if authorization_type is not None: - pulumi.set(__self__, "authorization_type", authorization_type) + _setter("authorization_type", authorization_type) if authorizer_id is not None: - pulumi.set(__self__, "authorizer_id", authorizer_id) + _setter("authorizer_id", authorizer_id) if model_selection_expression is not None: - pulumi.set(__self__, "model_selection_expression", model_selection_expression) + _setter("model_selection_expression", model_selection_expression) if operation_name is not None: - pulumi.set(__self__, "operation_name", operation_name) + _setter("operation_name", operation_name) if request_models is not None: - pulumi.set(__self__, "request_models", request_models) + _setter("request_models", request_models) if request_parameters is not None: - pulumi.set(__self__, "request_parameters", request_parameters) + _setter("request_parameters", request_parameters) if route_key is not None: - pulumi.set(__self__, "route_key", route_key) + _setter("route_key", route_key) if route_response_selection_expression is not None: - pulumi.set(__self__, "route_response_selection_expression", route_response_selection_expression) + _setter("route_response_selection_expression", route_response_selection_expression) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter(name="apiId") @@ -565,6 +679,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigatewayv2/route_response.py b/sdk/python/pulumi_aws/apigatewayv2/route_response.py index ae092152492..b478ca2b327 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/route_response.py +++ b/sdk/python/pulumi_aws/apigatewayv2/route_response.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RouteResponseArgs', 'RouteResponse'] @@ -27,13 +27,48 @@ def __init__(__self__, *, :param pulumi.Input[str] model_selection_expression: The [model selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-model-selection-expressions) for the route response. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] response_models: Response models for the route response. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "route_id", route_id) - pulumi.set(__self__, "route_response_key", route_response_key) + RouteResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + route_id=route_id, + route_response_key=route_response_key, + model_selection_expression=model_selection_expression, + response_models=response_models, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + route_id: Optional[pulumi.Input[str]] = None, + route_response_key: Optional[pulumi.Input[str]] = None, + model_selection_expression: Optional[pulumi.Input[str]] = None, + response_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if route_id is None and 'routeId' in kwargs: + route_id = kwargs['routeId'] + if route_id is None: + raise TypeError("Missing 'route_id' argument") + if route_response_key is None and 'routeResponseKey' in kwargs: + route_response_key = kwargs['routeResponseKey'] + if route_response_key is None: + raise TypeError("Missing 'route_response_key' argument") + if model_selection_expression is None and 'modelSelectionExpression' in kwargs: + model_selection_expression = kwargs['modelSelectionExpression'] + if response_models is None and 'responseModels' in kwargs: + response_models = kwargs['responseModels'] + + _setter("api_id", api_id) + _setter("route_id", route_id) + _setter("route_response_key", route_response_key) if model_selection_expression is not None: - pulumi.set(__self__, "model_selection_expression", model_selection_expression) + _setter("model_selection_expression", model_selection_expression) if response_models is not None: - pulumi.set(__self__, "response_models", response_models) + _setter("response_models", response_models) @property @pulumi.getter(name="apiId") @@ -112,16 +147,45 @@ def __init__(__self__, *, :param pulumi.Input[str] route_id: Identifier of the `apigatewayv2.Route`. :param pulumi.Input[str] route_response_key: Route response key. """ + _RouteResponseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + model_selection_expression=model_selection_expression, + response_models=response_models, + route_id=route_id, + route_response_key=route_response_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + model_selection_expression: Optional[pulumi.Input[str]] = None, + response_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + route_id: Optional[pulumi.Input[str]] = None, + route_response_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if model_selection_expression is None and 'modelSelectionExpression' in kwargs: + model_selection_expression = kwargs['modelSelectionExpression'] + if response_models is None and 'responseModels' in kwargs: + response_models = kwargs['responseModels'] + if route_id is None and 'routeId' in kwargs: + route_id = kwargs['routeId'] + if route_response_key is None and 'routeResponseKey' in kwargs: + route_response_key = kwargs['routeResponseKey'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if model_selection_expression is not None: - pulumi.set(__self__, "model_selection_expression", model_selection_expression) + _setter("model_selection_expression", model_selection_expression) if response_models is not None: - pulumi.set(__self__, "response_models", response_models) + _setter("response_models", response_models) if route_id is not None: - pulumi.set(__self__, "route_id", route_id) + _setter("route_id", route_id) if route_response_key is not None: - pulumi.set(__self__, "route_response_key", route_response_key) + _setter("route_response_key", route_response_key) @property @pulumi.getter(name="apiId") @@ -269,6 +333,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteResponseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apigatewayv2/stage.py b/sdk/python/pulumi_aws/apigatewayv2/stage.py index b7c00ba2e36..1e6754b0064 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/stage.py +++ b/sdk/python/pulumi_aws/apigatewayv2/stage.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,27 +45,76 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] stage_variables: Map that defines the stage variables for the stage. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the stage. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "api_id", api_id) + StageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + access_log_settings=access_log_settings, + auto_deploy=auto_deploy, + client_certificate_id=client_certificate_id, + default_route_settings=default_route_settings, + deployment_id=deployment_id, + description=description, + name=name, + route_settings=route_settings, + stage_variables=stage_variables, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + access_log_settings: Optional[pulumi.Input['StageAccessLogSettingsArgs']] = None, + auto_deploy: Optional[pulumi.Input[bool]] = None, + client_certificate_id: Optional[pulumi.Input[str]] = None, + default_route_settings: Optional[pulumi.Input['StageDefaultRouteSettingsArgs']] = None, + deployment_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + route_settings: Optional[pulumi.Input[Sequence[pulumi.Input['StageRouteSettingArgs']]]] = None, + stage_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if access_log_settings is None and 'accessLogSettings' in kwargs: + access_log_settings = kwargs['accessLogSettings'] + if auto_deploy is None and 'autoDeploy' in kwargs: + auto_deploy = kwargs['autoDeploy'] + if client_certificate_id is None and 'clientCertificateId' in kwargs: + client_certificate_id = kwargs['clientCertificateId'] + if default_route_settings is None and 'defaultRouteSettings' in kwargs: + default_route_settings = kwargs['defaultRouteSettings'] + if deployment_id is None and 'deploymentId' in kwargs: + deployment_id = kwargs['deploymentId'] + if route_settings is None and 'routeSettings' in kwargs: + route_settings = kwargs['routeSettings'] + if stage_variables is None and 'stageVariables' in kwargs: + stage_variables = kwargs['stageVariables'] + + _setter("api_id", api_id) if access_log_settings is not None: - pulumi.set(__self__, "access_log_settings", access_log_settings) + _setter("access_log_settings", access_log_settings) if auto_deploy is not None: - pulumi.set(__self__, "auto_deploy", auto_deploy) + _setter("auto_deploy", auto_deploy) if client_certificate_id is not None: - pulumi.set(__self__, "client_certificate_id", client_certificate_id) + _setter("client_certificate_id", client_certificate_id) if default_route_settings is not None: - pulumi.set(__self__, "default_route_settings", default_route_settings) + _setter("default_route_settings", default_route_settings) if deployment_id is not None: - pulumi.set(__self__, "deployment_id", deployment_id) + _setter("deployment_id", deployment_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if route_settings is not None: - pulumi.set(__self__, "route_settings", route_settings) + _setter("route_settings", route_settings) if stage_variables is not None: - pulumi.set(__self__, "stage_variables", stage_variables) + _setter("stage_variables", stage_variables) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="apiId") @@ -247,39 +296,100 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the stage. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _StageState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_log_settings=access_log_settings, + api_id=api_id, + arn=arn, + auto_deploy=auto_deploy, + client_certificate_id=client_certificate_id, + default_route_settings=default_route_settings, + deployment_id=deployment_id, + description=description, + execution_arn=execution_arn, + invoke_url=invoke_url, + name=name, + route_settings=route_settings, + stage_variables=stage_variables, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_log_settings: Optional[pulumi.Input['StageAccessLogSettingsArgs']] = None, + api_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_deploy: Optional[pulumi.Input[bool]] = None, + client_certificate_id: Optional[pulumi.Input[str]] = None, + default_route_settings: Optional[pulumi.Input['StageDefaultRouteSettingsArgs']] = None, + deployment_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_arn: Optional[pulumi.Input[str]] = None, + invoke_url: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + route_settings: Optional[pulumi.Input[Sequence[pulumi.Input['StageRouteSettingArgs']]]] = None, + stage_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_log_settings is None and 'accessLogSettings' in kwargs: + access_log_settings = kwargs['accessLogSettings'] + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if auto_deploy is None and 'autoDeploy' in kwargs: + auto_deploy = kwargs['autoDeploy'] + if client_certificate_id is None and 'clientCertificateId' in kwargs: + client_certificate_id = kwargs['clientCertificateId'] + if default_route_settings is None and 'defaultRouteSettings' in kwargs: + default_route_settings = kwargs['defaultRouteSettings'] + if deployment_id is None and 'deploymentId' in kwargs: + deployment_id = kwargs['deploymentId'] + if execution_arn is None and 'executionArn' in kwargs: + execution_arn = kwargs['executionArn'] + if invoke_url is None and 'invokeUrl' in kwargs: + invoke_url = kwargs['invokeUrl'] + if route_settings is None and 'routeSettings' in kwargs: + route_settings = kwargs['routeSettings'] + if stage_variables is None and 'stageVariables' in kwargs: + stage_variables = kwargs['stageVariables'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if access_log_settings is not None: - pulumi.set(__self__, "access_log_settings", access_log_settings) + _setter("access_log_settings", access_log_settings) if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_deploy is not None: - pulumi.set(__self__, "auto_deploy", auto_deploy) + _setter("auto_deploy", auto_deploy) if client_certificate_id is not None: - pulumi.set(__self__, "client_certificate_id", client_certificate_id) + _setter("client_certificate_id", client_certificate_id) if default_route_settings is not None: - pulumi.set(__self__, "default_route_settings", default_route_settings) + _setter("default_route_settings", default_route_settings) if deployment_id is not None: - pulumi.set(__self__, "deployment_id", deployment_id) + _setter("deployment_id", deployment_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if execution_arn is not None: - pulumi.set(__self__, "execution_arn", execution_arn) + _setter("execution_arn", execution_arn) if invoke_url is not None: - pulumi.set(__self__, "invoke_url", invoke_url) + _setter("invoke_url", invoke_url) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if route_settings is not None: - pulumi.set(__self__, "route_settings", route_settings) + _setter("route_settings", route_settings) if stage_variables is not None: - pulumi.set(__self__, "stage_variables", stage_variables) + _setter("stage_variables", stage_variables) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="accessLogSettings") @@ -569,6 +679,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StageArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -594,12 +708,14 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = StageArgs.__new__(StageArgs) + access_log_settings = _utilities.configure(access_log_settings, StageAccessLogSettingsArgs, True) __props__.__dict__["access_log_settings"] = access_log_settings if api_id is None and not opts.urn: raise TypeError("Missing required property 'api_id'") __props__.__dict__["api_id"] = api_id __props__.__dict__["auto_deploy"] = auto_deploy __props__.__dict__["client_certificate_id"] = client_certificate_id + default_route_settings = _utilities.configure(default_route_settings, StageDefaultRouteSettingsArgs, True) __props__.__dict__["default_route_settings"] = default_route_settings __props__.__dict__["deployment_id"] = deployment_id __props__.__dict__["description"] = description diff --git a/sdk/python/pulumi_aws/apigatewayv2/vpc_link.py b/sdk/python/pulumi_aws/apigatewayv2/vpc_link.py index 22adff3174e..b4a1f1648d7 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/vpc_link.py +++ b/sdk/python/pulumi_aws/apigatewayv2/vpc_link.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcLinkArgs', 'VpcLink'] @@ -25,12 +25,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the VPC Link. Must be between 1 and 128 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the VPC Link. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) + VpcLinkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="securityGroupIds") @@ -99,21 +124,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the VPC Link. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _VpcLinkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -280,6 +332,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcLinkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appautoscaling/_inputs.py b/sdk/python/pulumi_aws/appautoscaling/_inputs.py index 0b30dede777..d72399cde39 100644 --- a/sdk/python/pulumi_aws/appautoscaling/_inputs.py +++ b/sdk/python/pulumi_aws/appautoscaling/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -58,16 +58,43 @@ def __init__(__self__, *, )) ``` """ + PolicyStepScalingPolicyConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + adjustment_type=adjustment_type, + cooldown=cooldown, + metric_aggregation_type=metric_aggregation_type, + min_adjustment_magnitude=min_adjustment_magnitude, + step_adjustments=step_adjustments, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + adjustment_type: Optional[pulumi.Input[str]] = None, + cooldown: Optional[pulumi.Input[int]] = None, + metric_aggregation_type: Optional[pulumi.Input[str]] = None, + min_adjustment_magnitude: Optional[pulumi.Input[int]] = None, + step_adjustments: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyStepScalingPolicyConfigurationStepAdjustmentArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if adjustment_type is None and 'adjustmentType' in kwargs: + adjustment_type = kwargs['adjustmentType'] + if metric_aggregation_type is None and 'metricAggregationType' in kwargs: + metric_aggregation_type = kwargs['metricAggregationType'] + if min_adjustment_magnitude is None and 'minAdjustmentMagnitude' in kwargs: + min_adjustment_magnitude = kwargs['minAdjustmentMagnitude'] + if step_adjustments is None and 'stepAdjustments' in kwargs: + step_adjustments = kwargs['stepAdjustments'] + if adjustment_type is not None: - pulumi.set(__self__, "adjustment_type", adjustment_type) + _setter("adjustment_type", adjustment_type) if cooldown is not None: - pulumi.set(__self__, "cooldown", cooldown) + _setter("cooldown", cooldown) if metric_aggregation_type is not None: - pulumi.set(__self__, "metric_aggregation_type", metric_aggregation_type) + _setter("metric_aggregation_type", metric_aggregation_type) if min_adjustment_magnitude is not None: - pulumi.set(__self__, "min_adjustment_magnitude", min_adjustment_magnitude) + _setter("min_adjustment_magnitude", min_adjustment_magnitude) if step_adjustments is not None: - pulumi.set(__self__, "step_adjustments", step_adjustments) + _setter("step_adjustments", step_adjustments) @property @pulumi.getter(name="adjustmentType") @@ -161,11 +188,34 @@ def __init__(__self__, *, :param pulumi.Input[str] metric_interval_lower_bound: Lower bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as negative infinity. :param pulumi.Input[str] metric_interval_upper_bound: Upper bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as infinity. The upper bound must be greater than the lower bound. """ - pulumi.set(__self__, "scaling_adjustment", scaling_adjustment) + PolicyStepScalingPolicyConfigurationStepAdjustmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + scaling_adjustment=scaling_adjustment, + metric_interval_lower_bound=metric_interval_lower_bound, + metric_interval_upper_bound=metric_interval_upper_bound, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scaling_adjustment: Optional[pulumi.Input[int]] = None, + metric_interval_lower_bound: Optional[pulumi.Input[str]] = None, + metric_interval_upper_bound: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scaling_adjustment is None and 'scalingAdjustment' in kwargs: + scaling_adjustment = kwargs['scalingAdjustment'] + if scaling_adjustment is None: + raise TypeError("Missing 'scaling_adjustment' argument") + if metric_interval_lower_bound is None and 'metricIntervalLowerBound' in kwargs: + metric_interval_lower_bound = kwargs['metricIntervalLowerBound'] + if metric_interval_upper_bound is None and 'metricIntervalUpperBound' in kwargs: + metric_interval_upper_bound = kwargs['metricIntervalUpperBound'] + + _setter("scaling_adjustment", scaling_adjustment) if metric_interval_lower_bound is not None: - pulumi.set(__self__, "metric_interval_lower_bound", metric_interval_lower_bound) + _setter("metric_interval_lower_bound", metric_interval_lower_bound) if metric_interval_upper_bound is not None: - pulumi.set(__self__, "metric_interval_upper_bound", metric_interval_upper_bound) + _setter("metric_interval_upper_bound", metric_interval_upper_bound) @property @pulumi.getter(name="scalingAdjustment") @@ -221,17 +271,52 @@ def __init__(__self__, *, :param pulumi.Input[int] scale_in_cooldown: Amount of time, in seconds, after a scale in activity completes before another scale in activity can start. :param pulumi.Input[int] scale_out_cooldown: Amount of time, in seconds, after a scale out activity completes before another scale out activity can start. """ - pulumi.set(__self__, "target_value", target_value) + PolicyTargetTrackingScalingPolicyConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + customized_metric_specification=customized_metric_specification, + disable_scale_in=disable_scale_in, + predefined_metric_specification=predefined_metric_specification, + scale_in_cooldown=scale_in_cooldown, + scale_out_cooldown=scale_out_cooldown, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[pulumi.Input[float]] = None, + customized_metric_specification: Optional[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs']] = None, + disable_scale_in: Optional[pulumi.Input[bool]] = None, + predefined_metric_specification: Optional[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs']] = None, + scale_in_cooldown: Optional[pulumi.Input[int]] = None, + scale_out_cooldown: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + if customized_metric_specification is None and 'customizedMetricSpecification' in kwargs: + customized_metric_specification = kwargs['customizedMetricSpecification'] + if disable_scale_in is None and 'disableScaleIn' in kwargs: + disable_scale_in = kwargs['disableScaleIn'] + if predefined_metric_specification is None and 'predefinedMetricSpecification' in kwargs: + predefined_metric_specification = kwargs['predefinedMetricSpecification'] + if scale_in_cooldown is None and 'scaleInCooldown' in kwargs: + scale_in_cooldown = kwargs['scaleInCooldown'] + if scale_out_cooldown is None and 'scaleOutCooldown' in kwargs: + scale_out_cooldown = kwargs['scaleOutCooldown'] + + _setter("target_value", target_value) if customized_metric_specification is not None: - pulumi.set(__self__, "customized_metric_specification", customized_metric_specification) + _setter("customized_metric_specification", customized_metric_specification) if disable_scale_in is not None: - pulumi.set(__self__, "disable_scale_in", disable_scale_in) + _setter("disable_scale_in", disable_scale_in) if predefined_metric_specification is not None: - pulumi.set(__self__, "predefined_metric_specification", predefined_metric_specification) + _setter("predefined_metric_specification", predefined_metric_specification) if scale_in_cooldown is not None: - pulumi.set(__self__, "scale_in_cooldown", scale_in_cooldown) + _setter("scale_in_cooldown", scale_in_cooldown) if scale_out_cooldown is not None: - pulumi.set(__self__, "scale_out_cooldown", scale_out_cooldown) + _setter("scale_out_cooldown", scale_out_cooldown) @property @pulumi.getter(name="targetValue") @@ -316,31 +401,54 @@ def __init__(__self__, *, statistic: Optional[pulumi.Input[str]] = None, unit: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArgs']]] dimensions: Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + :param pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArgs']]] dimensions: Dimensions of the metric. :param pulumi.Input[str] metric_name: Name of the metric. :param pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricArgs']]] metrics: Metrics to include, as a metric data query. :param pulumi.Input[str] namespace: Namespace of the metric. :param pulumi.Input[str] statistic: Statistic of the metric. Valid values: `Average`, `Minimum`, `Maximum`, `SampleCount`, and `Sum`. - :param pulumi.Input[str] unit: Unit of the metric. - """ + :param pulumi.Input[str] unit: Unit of the metrics to return. + """ + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimensions=dimensions, + metric_name=metric_name, + metrics=metrics, + namespace=namespace, + statistic=statistic, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArgs']]]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + metrics: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricArgs']]]] = None, + namespace: Optional[pulumi.Input[str]] = None, + statistic: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if statistic is not None: - pulumi.set(__self__, "statistic", statistic) + _setter("statistic", statistic) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter def dimensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArgs']]]]: """ - Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + Dimensions of the metric. """ return pulumi.get(self, "dimensions") @@ -400,7 +508,7 @@ def statistic(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def unit(self) -> Optional[pulumi.Input[str]]: """ - Unit of the metric. + Unit of the metrics to return. """ return pulumi.get(self, "unit") @@ -418,8 +526,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the policy. Must be between 1 and 255 characters in length. :param pulumi.Input[str] value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -461,15 +586,40 @@ def __init__(__self__, *, :param pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs'] metric_stat: Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param pulumi.Input[bool] return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + label: Optional[pulumi.Input[str]] = None, + metric_stat: Optional[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs']] = None, + return_data: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -541,12 +691,31 @@ def __init__(__self__, *, """ :param pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs'] metric: Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions. :param pulumi.Input[str] stat: Statistic of the metrics to return. - :param pulumi.Input[str] unit: Unit of the metric. - """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + :param pulumi.Input[str] unit: Unit of the metrics to return. + """ + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs']] = None, + stat: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -576,7 +745,7 @@ def stat(self, value: pulumi.Input[str]): @pulumi.getter def unit(self) -> Optional[pulumi.Input[str]]: """ - Unit of the metric. + Unit of the metrics to return. """ return pulumi.get(self, "unit") @@ -594,12 +763,33 @@ def __init__(__self__, *, """ :param pulumi.Input[str] metric_name: Name of the metric. :param pulumi.Input[str] namespace: Namespace of the metric. - :param pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs']]] dimensions: Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. - """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + :param pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs']]] dimensions: Dimensions of the metric. + """ + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -629,7 +819,7 @@ def namespace(self, value: pulumi.Input[str]): @pulumi.getter def dimensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs']]]]: """ - Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + Dimensions of the metric. """ return pulumi.get(self, "dimensions") @@ -647,8 +837,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the policy. Must be between 1 and 255 characters in length. :param pulumi.Input[str] value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -684,9 +891,28 @@ def __init__(__self__, *, :param pulumi.Input[str] predefined_metric_type: Metric type. :param pulumi.Input[str] resource_label: Reserved for future use if the `predefined_metric_type` is not `ALBRequestCountPerTarget`. If the `predefined_metric_type` is `ALBRequestCountPerTarget`, you must specify this argument. Documentation can be found at: [AWS Predefined Scaling Metric Specification](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_PredefinedScalingMetricSpecification.html). Must be less than or equal to 1023 characters in length. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[pulumi.Input[str]] = None, + resource_label: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -722,10 +948,27 @@ def __init__(__self__, *, :param pulumi.Input[int] max_capacity: Maximum capacity. At least one of `max_capacity` or `min_capacity` must be set. :param pulumi.Input[int] min_capacity: Minimum capacity. At least one of `min_capacity` or `max_capacity` must be set. """ + ScheduledActionScalableTargetActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_capacity=max_capacity, + min_capacity=min_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_capacity: Optional[pulumi.Input[int]] = None, + min_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if min_capacity is not None: - pulumi.set(__self__, "min_capacity", min_capacity) + _setter("min_capacity", min_capacity) @property @pulumi.getter(name="maxCapacity") diff --git a/sdk/python/pulumi_aws/appautoscaling/outputs.py b/sdk/python/pulumi_aws/appautoscaling/outputs.py index 4270be688f7..91fc426a393 100644 --- a/sdk/python/pulumi_aws/appautoscaling/outputs.py +++ b/sdk/python/pulumi_aws/appautoscaling/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -82,16 +82,43 @@ def __init__(__self__, *, )) ``` """ + PolicyStepScalingPolicyConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + adjustment_type=adjustment_type, + cooldown=cooldown, + metric_aggregation_type=metric_aggregation_type, + min_adjustment_magnitude=min_adjustment_magnitude, + step_adjustments=step_adjustments, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + adjustment_type: Optional[str] = None, + cooldown: Optional[int] = None, + metric_aggregation_type: Optional[str] = None, + min_adjustment_magnitude: Optional[int] = None, + step_adjustments: Optional[Sequence['outputs.PolicyStepScalingPolicyConfigurationStepAdjustment']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if adjustment_type is None and 'adjustmentType' in kwargs: + adjustment_type = kwargs['adjustmentType'] + if metric_aggregation_type is None and 'metricAggregationType' in kwargs: + metric_aggregation_type = kwargs['metricAggregationType'] + if min_adjustment_magnitude is None and 'minAdjustmentMagnitude' in kwargs: + min_adjustment_magnitude = kwargs['minAdjustmentMagnitude'] + if step_adjustments is None and 'stepAdjustments' in kwargs: + step_adjustments = kwargs['stepAdjustments'] + if adjustment_type is not None: - pulumi.set(__self__, "adjustment_type", adjustment_type) + _setter("adjustment_type", adjustment_type) if cooldown is not None: - pulumi.set(__self__, "cooldown", cooldown) + _setter("cooldown", cooldown) if metric_aggregation_type is not None: - pulumi.set(__self__, "metric_aggregation_type", metric_aggregation_type) + _setter("metric_aggregation_type", metric_aggregation_type) if min_adjustment_magnitude is not None: - pulumi.set(__self__, "min_adjustment_magnitude", min_adjustment_magnitude) + _setter("min_adjustment_magnitude", min_adjustment_magnitude) if step_adjustments is not None: - pulumi.set(__self__, "step_adjustments", step_adjustments) + _setter("step_adjustments", step_adjustments) @property @pulumi.getter(name="adjustmentType") @@ -186,11 +213,34 @@ def __init__(__self__, *, :param str metric_interval_lower_bound: Lower bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as negative infinity. :param str metric_interval_upper_bound: Upper bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as infinity. The upper bound must be greater than the lower bound. """ - pulumi.set(__self__, "scaling_adjustment", scaling_adjustment) + PolicyStepScalingPolicyConfigurationStepAdjustment._configure( + lambda key, value: pulumi.set(__self__, key, value), + scaling_adjustment=scaling_adjustment, + metric_interval_lower_bound=metric_interval_lower_bound, + metric_interval_upper_bound=metric_interval_upper_bound, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scaling_adjustment: Optional[int] = None, + metric_interval_lower_bound: Optional[str] = None, + metric_interval_upper_bound: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scaling_adjustment is None and 'scalingAdjustment' in kwargs: + scaling_adjustment = kwargs['scalingAdjustment'] + if scaling_adjustment is None: + raise TypeError("Missing 'scaling_adjustment' argument") + if metric_interval_lower_bound is None and 'metricIntervalLowerBound' in kwargs: + metric_interval_lower_bound = kwargs['metricIntervalLowerBound'] + if metric_interval_upper_bound is None and 'metricIntervalUpperBound' in kwargs: + metric_interval_upper_bound = kwargs['metricIntervalUpperBound'] + + _setter("scaling_adjustment", scaling_adjustment) if metric_interval_lower_bound is not None: - pulumi.set(__self__, "metric_interval_lower_bound", metric_interval_lower_bound) + _setter("metric_interval_lower_bound", metric_interval_lower_bound) if metric_interval_upper_bound is not None: - pulumi.set(__self__, "metric_interval_upper_bound", metric_interval_upper_bound) + _setter("metric_interval_upper_bound", metric_interval_upper_bound) @property @pulumi.getter(name="scalingAdjustment") @@ -261,17 +311,52 @@ def __init__(__self__, *, :param int scale_in_cooldown: Amount of time, in seconds, after a scale in activity completes before another scale in activity can start. :param int scale_out_cooldown: Amount of time, in seconds, after a scale out activity completes before another scale out activity can start. """ - pulumi.set(__self__, "target_value", target_value) + PolicyTargetTrackingScalingPolicyConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + customized_metric_specification=customized_metric_specification, + disable_scale_in=disable_scale_in, + predefined_metric_specification=predefined_metric_specification, + scale_in_cooldown=scale_in_cooldown, + scale_out_cooldown=scale_out_cooldown, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[float] = None, + customized_metric_specification: Optional['outputs.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification'] = None, + disable_scale_in: Optional[bool] = None, + predefined_metric_specification: Optional['outputs.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecification'] = None, + scale_in_cooldown: Optional[int] = None, + scale_out_cooldown: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + if customized_metric_specification is None and 'customizedMetricSpecification' in kwargs: + customized_metric_specification = kwargs['customizedMetricSpecification'] + if disable_scale_in is None and 'disableScaleIn' in kwargs: + disable_scale_in = kwargs['disableScaleIn'] + if predefined_metric_specification is None and 'predefinedMetricSpecification' in kwargs: + predefined_metric_specification = kwargs['predefinedMetricSpecification'] + if scale_in_cooldown is None and 'scaleInCooldown' in kwargs: + scale_in_cooldown = kwargs['scaleInCooldown'] + if scale_out_cooldown is None and 'scaleOutCooldown' in kwargs: + scale_out_cooldown = kwargs['scaleOutCooldown'] + + _setter("target_value", target_value) if customized_metric_specification is not None: - pulumi.set(__self__, "customized_metric_specification", customized_metric_specification) + _setter("customized_metric_specification", customized_metric_specification) if disable_scale_in is not None: - pulumi.set(__self__, "disable_scale_in", disable_scale_in) + _setter("disable_scale_in", disable_scale_in) if predefined_metric_specification is not None: - pulumi.set(__self__, "predefined_metric_specification", predefined_metric_specification) + _setter("predefined_metric_specification", predefined_metric_specification) if scale_in_cooldown is not None: - pulumi.set(__self__, "scale_in_cooldown", scale_in_cooldown) + _setter("scale_in_cooldown", scale_in_cooldown) if scale_out_cooldown is not None: - pulumi.set(__self__, "scale_out_cooldown", scale_out_cooldown) + _setter("scale_out_cooldown", scale_out_cooldown) @property @pulumi.getter(name="targetValue") @@ -349,31 +434,54 @@ def __init__(__self__, *, statistic: Optional[str] = None, unit: Optional[str] = None): """ - :param Sequence['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArgs'] dimensions: Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + :param Sequence['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimensionArgs'] dimensions: Dimensions of the metric. :param str metric_name: Name of the metric. :param Sequence['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricArgs'] metrics: Metrics to include, as a metric data query. :param str namespace: Namespace of the metric. :param str statistic: Statistic of the metric. Valid values: `Average`, `Minimum`, `Maximum`, `SampleCount`, and `Sum`. - :param str unit: Unit of the metric. - """ + :param str unit: Unit of the metrics to return. + """ + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimensions=dimensions, + metric_name=metric_name, + metrics=metrics, + namespace=namespace, + statistic=statistic, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimensions: Optional[Sequence['outputs.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimension']] = None, + metric_name: Optional[str] = None, + metrics: Optional[Sequence['outputs.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetric']] = None, + namespace: Optional[str] = None, + statistic: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if statistic is not None: - pulumi.set(__self__, "statistic", statistic) + _setter("statistic", statistic) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter def dimensions(self) -> Optional[Sequence['outputs.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimension']]: """ - Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + Dimensions of the metric. """ return pulumi.get(self, "dimensions") @@ -413,7 +521,7 @@ def statistic(self) -> Optional[str]: @pulumi.getter def unit(self) -> Optional[str]: """ - Unit of the metric. + Unit of the metrics to return. """ return pulumi.get(self, "unit") @@ -427,8 +535,25 @@ def __init__(__self__, *, :param str name: Name of the policy. Must be between 1 and 255 characters in length. :param str value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -481,15 +606,40 @@ def __init__(__self__, *, :param 'PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatArgs' metric_stat: Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param bool return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + expression: Optional[str] = None, + label: Optional[str] = None, + metric_stat: Optional['outputs.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat'] = None, + return_data: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -541,12 +691,31 @@ def __init__(__self__, *, """ :param 'PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs' metric: Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions. :param str stat: Statistic of the metrics to return. - :param str unit: Unit of the metric. - """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + :param str unit: Unit of the metrics to return. + """ + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStat._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional['outputs.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric'] = None, + stat: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -568,7 +737,7 @@ def stat(self) -> str: @pulumi.getter def unit(self) -> Optional[str]: """ - Unit of the metric. + Unit of the metrics to return. """ return pulumi.get(self, "unit") @@ -599,12 +768,33 @@ def __init__(__self__, *, """ :param str metric_name: Name of the metric. :param str namespace: Namespace of the metric. - :param Sequence['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs'] dimensions: Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. - """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + :param Sequence['PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs'] dimensions: Dimensions of the metric. + """ + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + namespace: Optional[str] = None, + dimensions: Optional[Sequence['outputs.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -626,7 +816,7 @@ def namespace(self) -> str: @pulumi.getter def dimensions(self) -> Optional[Sequence['outputs.PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension']]: """ - Configuration block(s) with the dimensions of the metric if the metric was published with dimensions. Detailed below. + Dimensions of the metric. """ return pulumi.get(self, "dimensions") @@ -640,8 +830,25 @@ def __init__(__self__, *, :param str name: Name of the policy. Must be between 1 and 255 characters in length. :param str value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyTargetTrackingScalingPolicyConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -688,9 +895,28 @@ def __init__(__self__, *, :param str predefined_metric_type: Metric type. :param str resource_label: Reserved for future use if the `predefined_metric_type` is not `ALBRequestCountPerTarget`. If the `predefined_metric_type` is `ALBRequestCountPerTarget`, you must specify this argument. Documentation can be found at: [AWS Predefined Scaling Metric Specification](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_PredefinedScalingMetricSpecification.html). Must be less than or equal to 1023 characters in length. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[str] = None, + resource_label: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -737,10 +963,27 @@ def __init__(__self__, *, :param int max_capacity: Maximum capacity. At least one of `max_capacity` or `min_capacity` must be set. :param int min_capacity: Minimum capacity. At least one of `min_capacity` or `max_capacity` must be set. """ + ScheduledActionScalableTargetAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_capacity=max_capacity, + min_capacity=min_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_capacity: Optional[int] = None, + min_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if min_capacity is not None: - pulumi.set(__self__, "min_capacity", min_capacity) + _setter("min_capacity", min_capacity) @property @pulumi.getter(name="maxCapacity") diff --git a/sdk/python/pulumi_aws/appautoscaling/policy.py b/sdk/python/pulumi_aws/appautoscaling/policy.py index ebd9a082d7c..74c803de2ab 100644 --- a/sdk/python/pulumi_aws/appautoscaling/policy.py +++ b/sdk/python/pulumi_aws/appautoscaling/policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,17 +33,58 @@ def __init__(__self__, *, :param pulumi.Input['PolicyStepScalingPolicyConfigurationArgs'] step_scaling_policy_configuration: Step scaling policy configuration, requires `policy_type = "StepScaling"` (default). See supported fields below. :param pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationArgs'] target_tracking_scaling_policy_configuration: Target tracking policy, requires `policy_type = "TargetTrackingScaling"`. See supported fields below. """ - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "scalable_dimension", scalable_dimension) - pulumi.set(__self__, "service_namespace", service_namespace) + PolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_id=resource_id, + scalable_dimension=scalable_dimension, + service_namespace=service_namespace, + name=name, + policy_type=policy_type, + step_scaling_policy_configuration=step_scaling_policy_configuration, + target_tracking_scaling_policy_configuration=target_tracking_scaling_policy_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_id: Optional[pulumi.Input[str]] = None, + scalable_dimension: Optional[pulumi.Input[str]] = None, + service_namespace: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_type: Optional[pulumi.Input[str]] = None, + step_scaling_policy_configuration: Optional[pulumi.Input['PolicyStepScalingPolicyConfigurationArgs']] = None, + target_tracking_scaling_policy_configuration: Optional[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if scalable_dimension is None and 'scalableDimension' in kwargs: + scalable_dimension = kwargs['scalableDimension'] + if scalable_dimension is None: + raise TypeError("Missing 'scalable_dimension' argument") + if service_namespace is None and 'serviceNamespace' in kwargs: + service_namespace = kwargs['serviceNamespace'] + if service_namespace is None: + raise TypeError("Missing 'service_namespace' argument") + if policy_type is None and 'policyType' in kwargs: + policy_type = kwargs['policyType'] + if step_scaling_policy_configuration is None and 'stepScalingPolicyConfiguration' in kwargs: + step_scaling_policy_configuration = kwargs['stepScalingPolicyConfiguration'] + if target_tracking_scaling_policy_configuration is None and 'targetTrackingScalingPolicyConfiguration' in kwargs: + target_tracking_scaling_policy_configuration = kwargs['targetTrackingScalingPolicyConfiguration'] + + _setter("resource_id", resource_id) + _setter("scalable_dimension", scalable_dimension) + _setter("service_namespace", service_namespace) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy_type is not None: - pulumi.set(__self__, "policy_type", policy_type) + _setter("policy_type", policy_type) if step_scaling_policy_configuration is not None: - pulumi.set(__self__, "step_scaling_policy_configuration", step_scaling_policy_configuration) + _setter("step_scaling_policy_configuration", step_scaling_policy_configuration) if target_tracking_scaling_policy_configuration is not None: - pulumi.set(__self__, "target_tracking_scaling_policy_configuration", target_tracking_scaling_policy_configuration) + _setter("target_tracking_scaling_policy_configuration", target_tracking_scaling_policy_configuration) @property @pulumi.getter(name="resourceId") @@ -154,24 +195,65 @@ def __init__(__self__, *, :param pulumi.Input['PolicyStepScalingPolicyConfigurationArgs'] step_scaling_policy_configuration: Step scaling policy configuration, requires `policy_type = "StepScaling"` (default). See supported fields below. :param pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationArgs'] target_tracking_scaling_policy_configuration: Target tracking policy, requires `policy_type = "TargetTrackingScaling"`. See supported fields below. """ + _PolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_arns=alarm_arns, + arn=arn, + name=name, + policy_type=policy_type, + resource_id=resource_id, + scalable_dimension=scalable_dimension, + service_namespace=service_namespace, + step_scaling_policy_configuration=step_scaling_policy_configuration, + target_tracking_scaling_policy_configuration=target_tracking_scaling_policy_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_type: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + scalable_dimension: Optional[pulumi.Input[str]] = None, + service_namespace: Optional[pulumi.Input[str]] = None, + step_scaling_policy_configuration: Optional[pulumi.Input['PolicyStepScalingPolicyConfigurationArgs']] = None, + target_tracking_scaling_policy_configuration: Optional[pulumi.Input['PolicyTargetTrackingScalingPolicyConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_arns is None and 'alarmArns' in kwargs: + alarm_arns = kwargs['alarmArns'] + if policy_type is None and 'policyType' in kwargs: + policy_type = kwargs['policyType'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if scalable_dimension is None and 'scalableDimension' in kwargs: + scalable_dimension = kwargs['scalableDimension'] + if service_namespace is None and 'serviceNamespace' in kwargs: + service_namespace = kwargs['serviceNamespace'] + if step_scaling_policy_configuration is None and 'stepScalingPolicyConfiguration' in kwargs: + step_scaling_policy_configuration = kwargs['stepScalingPolicyConfiguration'] + if target_tracking_scaling_policy_configuration is None and 'targetTrackingScalingPolicyConfiguration' in kwargs: + target_tracking_scaling_policy_configuration = kwargs['targetTrackingScalingPolicyConfiguration'] + if alarm_arns is not None: - pulumi.set(__self__, "alarm_arns", alarm_arns) + _setter("alarm_arns", alarm_arns) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy_type is not None: - pulumi.set(__self__, "policy_type", policy_type) + _setter("policy_type", policy_type) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if scalable_dimension is not None: - pulumi.set(__self__, "scalable_dimension", scalable_dimension) + _setter("scalable_dimension", scalable_dimension) if service_namespace is not None: - pulumi.set(__self__, "service_namespace", service_namespace) + _setter("service_namespace", service_namespace) if step_scaling_policy_configuration is not None: - pulumi.set(__self__, "step_scaling_policy_configuration", step_scaling_policy_configuration) + _setter("step_scaling_policy_configuration", step_scaling_policy_configuration) if target_tracking_scaling_policy_configuration is not None: - pulumi.set(__self__, "target_tracking_scaling_policy_configuration", target_tracking_scaling_policy_configuration) + _setter("target_tracking_scaling_policy_configuration", target_tracking_scaling_policy_configuration) @property @pulumi.getter(name="alarmArns") @@ -709,6 +791,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -741,7 +827,9 @@ def _internal_init(__self__, if service_namespace is None and not opts.urn: raise TypeError("Missing required property 'service_namespace'") __props__.__dict__["service_namespace"] = service_namespace + step_scaling_policy_configuration = _utilities.configure(step_scaling_policy_configuration, PolicyStepScalingPolicyConfigurationArgs, True) __props__.__dict__["step_scaling_policy_configuration"] = step_scaling_policy_configuration + target_tracking_scaling_policy_configuration = _utilities.configure(target_tracking_scaling_policy_configuration, PolicyTargetTrackingScalingPolicyConfigurationArgs, True) __props__.__dict__["target_tracking_scaling_policy_configuration"] = target_tracking_scaling_policy_configuration __props__.__dict__["alarm_arns"] = None __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/appautoscaling/scheduled_action.py b/sdk/python/pulumi_aws/appautoscaling/scheduled_action.py index 0bb2c7b8a5d..fcf2e144ac5 100644 --- a/sdk/python/pulumi_aws/appautoscaling/scheduled_action.py +++ b/sdk/python/pulumi_aws/appautoscaling/scheduled_action.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,19 +37,68 @@ def __init__(__self__, *, :param pulumi.Input[str] start_time: Date and time for the scheduled action to start in RFC 3339 format. The timezone is not affected by the setting of `timezone`. :param pulumi.Input[str] timezone: Time zone used when setting a scheduled action by using an at or cron expression. Does not affect timezone for `start_time` and `end_time`. Valid values are the [canonical names of the IANA time zones supported by Joda-Time](https://www.joda.org/joda-time/timezones.html), such as `Etc/GMT+9` or `Pacific/Tahiti`. Default is `UTC`. """ - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "scalable_dimension", scalable_dimension) - pulumi.set(__self__, "scalable_target_action", scalable_target_action) - pulumi.set(__self__, "schedule", schedule) - pulumi.set(__self__, "service_namespace", service_namespace) + ScheduledActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_id=resource_id, + scalable_dimension=scalable_dimension, + scalable_target_action=scalable_target_action, + schedule=schedule, + service_namespace=service_namespace, + end_time=end_time, + name=name, + start_time=start_time, + timezone=timezone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_id: Optional[pulumi.Input[str]] = None, + scalable_dimension: Optional[pulumi.Input[str]] = None, + scalable_target_action: Optional[pulumi.Input['ScheduledActionScalableTargetActionArgs']] = None, + schedule: Optional[pulumi.Input[str]] = None, + service_namespace: Optional[pulumi.Input[str]] = None, + end_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + start_time: Optional[pulumi.Input[str]] = None, + timezone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if scalable_dimension is None and 'scalableDimension' in kwargs: + scalable_dimension = kwargs['scalableDimension'] + if scalable_dimension is None: + raise TypeError("Missing 'scalable_dimension' argument") + if scalable_target_action is None and 'scalableTargetAction' in kwargs: + scalable_target_action = kwargs['scalableTargetAction'] + if scalable_target_action is None: + raise TypeError("Missing 'scalable_target_action' argument") + if schedule is None: + raise TypeError("Missing 'schedule' argument") + if service_namespace is None and 'serviceNamespace' in kwargs: + service_namespace = kwargs['serviceNamespace'] + if service_namespace is None: + raise TypeError("Missing 'service_namespace' argument") + if end_time is None and 'endTime' in kwargs: + end_time = kwargs['endTime'] + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + + _setter("resource_id", resource_id) + _setter("scalable_dimension", scalable_dimension) + _setter("scalable_target_action", scalable_target_action) + _setter("schedule", schedule) + _setter("service_namespace", service_namespace) if end_time is not None: - pulumi.set(__self__, "end_time", end_time) + _setter("end_time", end_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if start_time is not None: - pulumi.set(__self__, "start_time", start_time) + _setter("start_time", start_time) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) @property @pulumi.getter(name="resourceId") @@ -186,26 +235,67 @@ def __init__(__self__, *, :param pulumi.Input[str] start_time: Date and time for the scheduled action to start in RFC 3339 format. The timezone is not affected by the setting of `timezone`. :param pulumi.Input[str] timezone: Time zone used when setting a scheduled action by using an at or cron expression. Does not affect timezone for `start_time` and `end_time`. Valid values are the [canonical names of the IANA time zones supported by Joda-Time](https://www.joda.org/joda-time/timezones.html), such as `Etc/GMT+9` or `Pacific/Tahiti`. Default is `UTC`. """ + _ScheduledActionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + end_time=end_time, + name=name, + resource_id=resource_id, + scalable_dimension=scalable_dimension, + scalable_target_action=scalable_target_action, + schedule=schedule, + service_namespace=service_namespace, + start_time=start_time, + timezone=timezone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + end_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + scalable_dimension: Optional[pulumi.Input[str]] = None, + scalable_target_action: Optional[pulumi.Input['ScheduledActionScalableTargetActionArgs']] = None, + schedule: Optional[pulumi.Input[str]] = None, + service_namespace: Optional[pulumi.Input[str]] = None, + start_time: Optional[pulumi.Input[str]] = None, + timezone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end_time is None and 'endTime' in kwargs: + end_time = kwargs['endTime'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if scalable_dimension is None and 'scalableDimension' in kwargs: + scalable_dimension = kwargs['scalableDimension'] + if scalable_target_action is None and 'scalableTargetAction' in kwargs: + scalable_target_action = kwargs['scalableTargetAction'] + if service_namespace is None and 'serviceNamespace' in kwargs: + service_namespace = kwargs['serviceNamespace'] + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if end_time is not None: - pulumi.set(__self__, "end_time", end_time) + _setter("end_time", end_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if scalable_dimension is not None: - pulumi.set(__self__, "scalable_dimension", scalable_dimension) + _setter("scalable_dimension", scalable_dimension) if scalable_target_action is not None: - pulumi.set(__self__, "scalable_target_action", scalable_target_action) + _setter("scalable_target_action", scalable_target_action) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if service_namespace is not None: - pulumi.set(__self__, "service_namespace", service_namespace) + _setter("service_namespace", service_namespace) if start_time is not None: - pulumi.set(__self__, "start_time", start_time) + _setter("start_time", start_time) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) @property @pulumi.getter @@ -469,6 +559,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ScheduledActionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -500,6 +594,7 @@ def _internal_init(__self__, if scalable_dimension is None and not opts.urn: raise TypeError("Missing required property 'scalable_dimension'") __props__.__dict__["scalable_dimension"] = scalable_dimension + scalable_target_action = _utilities.configure(scalable_target_action, ScheduledActionScalableTargetActionArgs, True) if scalable_target_action is None and not opts.urn: raise TypeError("Missing required property 'scalable_target_action'") __props__.__dict__["scalable_target_action"] = scalable_target_action diff --git a/sdk/python/pulumi_aws/appautoscaling/target.py b/sdk/python/pulumi_aws/appautoscaling/target.py index a283ef399fd..76adea79786 100644 --- a/sdk/python/pulumi_aws/appautoscaling/target.py +++ b/sdk/python/pulumi_aws/appautoscaling/target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TargetArgs', 'Target'] @@ -31,15 +31,60 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role for most services and custom IAM Roles are ignored by the API for those namespaces. See the [AWS Application Auto Scaling documentation](https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-roles) for more information about how this service interacts with IAM. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the scalable target. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "max_capacity", max_capacity) - pulumi.set(__self__, "min_capacity", min_capacity) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "scalable_dimension", scalable_dimension) - pulumi.set(__self__, "service_namespace", service_namespace) + TargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_capacity=max_capacity, + min_capacity=min_capacity, + resource_id=resource_id, + scalable_dimension=scalable_dimension, + service_namespace=service_namespace, + role_arn=role_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_capacity: Optional[pulumi.Input[int]] = None, + min_capacity: Optional[pulumi.Input[int]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + scalable_dimension: Optional[pulumi.Input[str]] = None, + service_namespace: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if max_capacity is None: + raise TypeError("Missing 'max_capacity' argument") + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if min_capacity is None: + raise TypeError("Missing 'min_capacity' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if scalable_dimension is None and 'scalableDimension' in kwargs: + scalable_dimension = kwargs['scalableDimension'] + if scalable_dimension is None: + raise TypeError("Missing 'scalable_dimension' argument") + if service_namespace is None and 'serviceNamespace' in kwargs: + service_namespace = kwargs['serviceNamespace'] + if service_namespace is None: + raise TypeError("Missing 'service_namespace' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("max_capacity", max_capacity) + _setter("min_capacity", min_capacity) + _setter("resource_id", resource_id) + _setter("scalable_dimension", scalable_dimension) + _setter("service_namespace", service_namespace) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="maxCapacity") @@ -150,27 +195,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the scalable target. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _TargetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + max_capacity=max_capacity, + min_capacity=min_capacity, + resource_id=resource_id, + role_arn=role_arn, + scalable_dimension=scalable_dimension, + service_namespace=service_namespace, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + max_capacity: Optional[pulumi.Input[int]] = None, + min_capacity: Optional[pulumi.Input[int]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + scalable_dimension: Optional[pulumi.Input[str]] = None, + service_namespace: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if scalable_dimension is None and 'scalableDimension' in kwargs: + scalable_dimension = kwargs['scalableDimension'] + if service_namespace is None and 'serviceNamespace' in kwargs: + service_namespace = kwargs['serviceNamespace'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if min_capacity is not None: - pulumi.set(__self__, "min_capacity", min_capacity) + _setter("min_capacity", min_capacity) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if scalable_dimension is not None: - pulumi.set(__self__, "scalable_dimension", scalable_dimension) + _setter("scalable_dimension", scalable_dimension) if service_namespace is not None: - pulumi.set(__self__, "service_namespace", service_namespace) + _setter("service_namespace", service_namespace) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -513,6 +599,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TargetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appconfig/_inputs.py b/sdk/python/pulumi_aws/appconfig/_inputs.py index f6a3cdb8624..ef3cbc51d6e 100644 --- a/sdk/python/pulumi_aws/appconfig/_inputs.py +++ b/sdk/python/pulumi_aws/appconfig/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -27,9 +27,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of validator. Valid values: `JSON_SCHEMA` and `LAMBDA`. :param pulumi.Input[str] content: Either the JSON Schema content or the ARN of an AWS Lambda function. """ - pulumi.set(__self__, "type", type) + ConfigurationProfileValidatorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + content=content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) @property @pulumi.getter @@ -65,9 +80,28 @@ def __init__(__self__, *, :param pulumi.Input[str] alarm_arn: ARN of the Amazon CloudWatch alarm. :param pulumi.Input[str] alarm_role_arn: ARN of an IAM role for AWS AppConfig to monitor `alarm_arn`. """ - pulumi.set(__self__, "alarm_arn", alarm_arn) + EnvironmentMonitorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_arn=alarm_arn, + alarm_role_arn=alarm_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_arn: Optional[pulumi.Input[str]] = None, + alarm_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_arn is None and 'alarmArn' in kwargs: + alarm_arn = kwargs['alarmArn'] + if alarm_arn is None: + raise TypeError("Missing 'alarm_arn' argument") + if alarm_role_arn is None and 'alarmRoleArn' in kwargs: + alarm_role_arn = kwargs['alarmRoleArn'] + + _setter("alarm_arn", alarm_arn) if alarm_role_arn is not None: - pulumi.set(__self__, "alarm_role_arn", alarm_role_arn) + _setter("alarm_role_arn", alarm_role_arn) @property @pulumi.getter(name="alarmArn") @@ -101,7 +135,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] source: Source of the events. """ - pulumi.set(__self__, "source", source) + EventIntegrationEventFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("source", source) @property @pulumi.getter @@ -125,8 +172,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ExtensionActionPointActionArgs']]] actions: An action defines the tasks the extension performs during the AppConfig workflow. Detailed below. :param pulumi.Input[str] point: The point at which to perform the defined actions. Valid points are `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`, `PRE_START_DEPLOYMENT`, `ON_DEPLOYMENT_START`, `ON_DEPLOYMENT_STEP`, `ON_DEPLOYMENT_BAKING`, `ON_DEPLOYMENT_COMPLETE`, `ON_DEPLOYMENT_ROLLED_BACK`. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "point", point) + ExtensionActionPointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + point=point, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['ExtensionActionPointActionArgs']]]] = None, + point: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if point is None: + raise TypeError("Missing 'point' argument") + + _setter("actions", actions) + _setter("point", point) @property @pulumi.getter @@ -166,11 +230,36 @@ def __init__(__self__, *, :param pulumi.Input[str] uri: The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus. :param pulumi.Input[str] description: Information about the action. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "uri", uri) + ExtensionActionPointActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + role_arn=role_arn, + uri=uri, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("name", name) + _setter("role_arn", role_arn) + _setter("uri", uri) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -232,11 +321,28 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Information about the parameter. :param pulumi.Input[bool] required: Determines if a parameter value must be specified in the extension association. """ - pulumi.set(__self__, "name", name) + ExtensionParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + description=description, + required=required, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + required: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if required is not None: - pulumi.set(__self__, "required", required) + _setter("required", required) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/appconfig/application.py b/sdk/python/pulumi_aws/appconfig/application.py index e73c6d19701..95b89548b73 100644 --- a/sdk/python/pulumi_aws/appconfig/application.py +++ b/sdk/python/pulumi_aws/appconfig/application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApplicationArgs', 'Application'] @@ -23,12 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the application. Must be between 1 and 64 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + ApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -83,19 +98,40 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -240,6 +276,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appconfig/configuration_profile.py b/sdk/python/pulumi_aws/appconfig/configuration_profile.py index 19befc51c6b..f220c1aa846 100644 --- a/sdk/python/pulumi_aws/appconfig/configuration_profile.py +++ b/sdk/python/pulumi_aws/appconfig/configuration_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,20 +35,55 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of configurations contained in the profile. Valid values: `AWS.AppConfig.FeatureFlags` and `AWS.Freeform`. Default: `AWS.Freeform`. :param pulumi.Input[Sequence[pulumi.Input['ConfigurationProfileValidatorArgs']]] validators: Set of methods for validating the configuration. Maximum of 2. See Validator below for more details. """ - pulumi.set(__self__, "application_id", application_id) - pulumi.set(__self__, "location_uri", location_uri) + ConfigurationProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + location_uri=location_uri, + description=description, + name=name, + retrieval_role_arn=retrieval_role_arn, + tags=tags, + type=type, + validators=validators, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + location_uri: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + retrieval_role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + validators: Optional[pulumi.Input[Sequence[pulumi.Input['ConfigurationProfileValidatorArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if location_uri is None and 'locationUri' in kwargs: + location_uri = kwargs['locationUri'] + if location_uri is None: + raise TypeError("Missing 'location_uri' argument") + if retrieval_role_arn is None and 'retrievalRoleArn' in kwargs: + retrieval_role_arn = kwargs['retrievalRoleArn'] + + _setter("application_id", application_id) + _setter("location_uri", location_uri) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if retrieval_role_arn is not None: - pulumi.set(__self__, "retrieval_role_arn", retrieval_role_arn) + _setter("retrieval_role_arn", retrieval_role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if validators is not None: - pulumi.set(__self__, "validators", validators) + _setter("validators", validators) @property @pulumi.getter(name="applicationId") @@ -175,31 +210,72 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of configurations contained in the profile. Valid values: `AWS.AppConfig.FeatureFlags` and `AWS.Freeform`. Default: `AWS.Freeform`. :param pulumi.Input[Sequence[pulumi.Input['ConfigurationProfileValidatorArgs']]] validators: Set of methods for validating the configuration. Maximum of 2. See Validator below for more details. """ + _ConfigurationProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + arn=arn, + configuration_profile_id=configuration_profile_id, + description=description, + location_uri=location_uri, + name=name, + retrieval_role_arn=retrieval_role_arn, + tags=tags, + tags_all=tags_all, + type=type, + validators=validators, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + configuration_profile_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + location_uri: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + retrieval_role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + validators: Optional[pulumi.Input[Sequence[pulumi.Input['ConfigurationProfileValidatorArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if configuration_profile_id is None and 'configurationProfileId' in kwargs: + configuration_profile_id = kwargs['configurationProfileId'] + if location_uri is None and 'locationUri' in kwargs: + location_uri = kwargs['locationUri'] + if retrieval_role_arn is None and 'retrievalRoleArn' in kwargs: + retrieval_role_arn = kwargs['retrievalRoleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration_profile_id is not None: - pulumi.set(__self__, "configuration_profile_id", configuration_profile_id) + _setter("configuration_profile_id", configuration_profile_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if location_uri is not None: - pulumi.set(__self__, "location_uri", location_uri) + _setter("location_uri", location_uri) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if retrieval_role_arn is not None: - pulumi.set(__self__, "retrieval_role_arn", retrieval_role_arn) + _setter("retrieval_role_arn", retrieval_role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if validators is not None: - pulumi.set(__self__, "validators", validators) + _setter("validators", validators) @property @pulumi.getter(name="applicationId") @@ -438,6 +514,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConfigurationProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appconfig/deployment.py b/sdk/python/pulumi_aws/appconfig/deployment.py index 9c2fbe50fa6..5af6e5f0915 100644 --- a/sdk/python/pulumi_aws/appconfig/deployment.py +++ b/sdk/python/pulumi_aws/appconfig/deployment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DeploymentArgs', 'Deployment'] @@ -31,15 +31,58 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the deployment. Can be at most 1024 characters. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "application_id", application_id) - pulumi.set(__self__, "configuration_profile_id", configuration_profile_id) - pulumi.set(__self__, "configuration_version", configuration_version) - pulumi.set(__self__, "deployment_strategy_id", deployment_strategy_id) - pulumi.set(__self__, "environment_id", environment_id) + DeploymentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + configuration_profile_id=configuration_profile_id, + configuration_version=configuration_version, + deployment_strategy_id=deployment_strategy_id, + environment_id=environment_id, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + configuration_profile_id: Optional[pulumi.Input[str]] = None, + configuration_version: Optional[pulumi.Input[str]] = None, + deployment_strategy_id: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if configuration_profile_id is None and 'configurationProfileId' in kwargs: + configuration_profile_id = kwargs['configurationProfileId'] + if configuration_profile_id is None: + raise TypeError("Missing 'configuration_profile_id' argument") + if configuration_version is None and 'configurationVersion' in kwargs: + configuration_version = kwargs['configurationVersion'] + if configuration_version is None: + raise TypeError("Missing 'configuration_version' argument") + if deployment_strategy_id is None and 'deploymentStrategyId' in kwargs: + deployment_strategy_id = kwargs['deploymentStrategyId'] + if deployment_strategy_id is None: + raise TypeError("Missing 'deployment_strategy_id' argument") + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if environment_id is None: + raise TypeError("Missing 'environment_id' argument") + + _setter("application_id", application_id) + _setter("configuration_profile_id", configuration_profile_id) + _setter("configuration_version", configuration_version) + _setter("deployment_strategy_id", deployment_strategy_id) + _setter("environment_id", environment_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="applicationId") @@ -154,31 +197,76 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _DeploymentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + arn=arn, + configuration_profile_id=configuration_profile_id, + configuration_version=configuration_version, + deployment_number=deployment_number, + deployment_strategy_id=deployment_strategy_id, + description=description, + environment_id=environment_id, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + configuration_profile_id: Optional[pulumi.Input[str]] = None, + configuration_version: Optional[pulumi.Input[str]] = None, + deployment_number: Optional[pulumi.Input[int]] = None, + deployment_strategy_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if configuration_profile_id is None and 'configurationProfileId' in kwargs: + configuration_profile_id = kwargs['configurationProfileId'] + if configuration_version is None and 'configurationVersion' in kwargs: + configuration_version = kwargs['configurationVersion'] + if deployment_number is None and 'deploymentNumber' in kwargs: + deployment_number = kwargs['deploymentNumber'] + if deployment_strategy_id is None and 'deploymentStrategyId' in kwargs: + deployment_strategy_id = kwargs['deploymentStrategyId'] + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration_profile_id is not None: - pulumi.set(__self__, "configuration_profile_id", configuration_profile_id) + _setter("configuration_profile_id", configuration_profile_id) if configuration_version is not None: - pulumi.set(__self__, "configuration_version", configuration_version) + _setter("configuration_version", configuration_version) if deployment_number is not None: - pulumi.set(__self__, "deployment_number", deployment_number) + _setter("deployment_number", deployment_number) if deployment_strategy_id is not None: - pulumi.set(__self__, "deployment_strategy_id", deployment_strategy_id) + _setter("deployment_strategy_id", deployment_strategy_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if environment_id is not None: - pulumi.set(__self__, "environment_id", environment_id) + _setter("environment_id", environment_id) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="applicationId") @@ -413,6 +501,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeploymentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appconfig/deployment_strategy.py b/sdk/python/pulumi_aws/appconfig/deployment_strategy.py index 4b3ac7cca00..73057c07cb3 100644 --- a/sdk/python/pulumi_aws/appconfig/deployment_strategy.py +++ b/sdk/python/pulumi_aws/appconfig/deployment_strategy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DeploymentStrategyArgs', 'DeploymentStrategy'] @@ -33,19 +33,60 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the deployment strategy. Must be between 1 and 64 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "deployment_duration_in_minutes", deployment_duration_in_minutes) - pulumi.set(__self__, "growth_factor", growth_factor) - pulumi.set(__self__, "replicate_to", replicate_to) + DeploymentStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment_duration_in_minutes=deployment_duration_in_minutes, + growth_factor=growth_factor, + replicate_to=replicate_to, + description=description, + final_bake_time_in_minutes=final_bake_time_in_minutes, + growth_type=growth_type, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment_duration_in_minutes: Optional[pulumi.Input[int]] = None, + growth_factor: Optional[pulumi.Input[float]] = None, + replicate_to: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + final_bake_time_in_minutes: Optional[pulumi.Input[int]] = None, + growth_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_duration_in_minutes is None and 'deploymentDurationInMinutes' in kwargs: + deployment_duration_in_minutes = kwargs['deploymentDurationInMinutes'] + if deployment_duration_in_minutes is None: + raise TypeError("Missing 'deployment_duration_in_minutes' argument") + if growth_factor is None and 'growthFactor' in kwargs: + growth_factor = kwargs['growthFactor'] + if growth_factor is None: + raise TypeError("Missing 'growth_factor' argument") + if replicate_to is None and 'replicateTo' in kwargs: + replicate_to = kwargs['replicateTo'] + if replicate_to is None: + raise TypeError("Missing 'replicate_to' argument") + if final_bake_time_in_minutes is None and 'finalBakeTimeInMinutes' in kwargs: + final_bake_time_in_minutes = kwargs['finalBakeTimeInMinutes'] + if growth_type is None and 'growthType' in kwargs: + growth_type = kwargs['growthType'] + + _setter("deployment_duration_in_minutes", deployment_duration_in_minutes) + _setter("growth_factor", growth_factor) + _setter("replicate_to", replicate_to) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if final_bake_time_in_minutes is not None: - pulumi.set(__self__, "final_bake_time_in_minutes", final_bake_time_in_minutes) + _setter("final_bake_time_in_minutes", final_bake_time_in_minutes) if growth_type is not None: - pulumi.set(__self__, "growth_type", growth_type) + _setter("growth_type", growth_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="deploymentDurationInMinutes") @@ -170,29 +211,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _DeploymentStrategyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + deployment_duration_in_minutes=deployment_duration_in_minutes, + description=description, + final_bake_time_in_minutes=final_bake_time_in_minutes, + growth_factor=growth_factor, + growth_type=growth_type, + name=name, + replicate_to=replicate_to, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + deployment_duration_in_minutes: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + final_bake_time_in_minutes: Optional[pulumi.Input[int]] = None, + growth_factor: Optional[pulumi.Input[float]] = None, + growth_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + replicate_to: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_duration_in_minutes is None and 'deploymentDurationInMinutes' in kwargs: + deployment_duration_in_minutes = kwargs['deploymentDurationInMinutes'] + if final_bake_time_in_minutes is None and 'finalBakeTimeInMinutes' in kwargs: + final_bake_time_in_minutes = kwargs['finalBakeTimeInMinutes'] + if growth_factor is None and 'growthFactor' in kwargs: + growth_factor = kwargs['growthFactor'] + if growth_type is None and 'growthType' in kwargs: + growth_type = kwargs['growthType'] + if replicate_to is None and 'replicateTo' in kwargs: + replicate_to = kwargs['replicateTo'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if deployment_duration_in_minutes is not None: - pulumi.set(__self__, "deployment_duration_in_minutes", deployment_duration_in_minutes) + _setter("deployment_duration_in_minutes", deployment_duration_in_minutes) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if final_bake_time_in_minutes is not None: - pulumi.set(__self__, "final_bake_time_in_minutes", final_bake_time_in_minutes) + _setter("final_bake_time_in_minutes", final_bake_time_in_minutes) if growth_factor is not None: - pulumi.set(__self__, "growth_factor", growth_factor) + _setter("growth_factor", growth_factor) if growth_type is not None: - pulumi.set(__self__, "growth_type", growth_type) + _setter("growth_type", growth_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if replicate_to is not None: - pulumi.set(__self__, "replicate_to", replicate_to) + _setter("replicate_to", replicate_to) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -417,6 +499,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeploymentStrategyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appconfig/environment.py b/sdk/python/pulumi_aws/appconfig/environment.py index 5a8d41340d7..a08a91a4de7 100644 --- a/sdk/python/pulumi_aws/appconfig/environment.py +++ b/sdk/python/pulumi_aws/appconfig/environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,38 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the environment. Must be between 1 and 64 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "application_id", application_id) + EnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + description=description, + monitors=monitors, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + monitors: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentMonitorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + + _setter("application_id", application_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if monitors is not None: - pulumi.set(__self__, "monitors", monitors) + _setter("monitors", monitors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="applicationId") @@ -125,27 +148,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _EnvironmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + arn=arn, + description=description, + environment_id=environment_id, + monitors=monitors, + name=name, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + monitors: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentMonitorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if environment_id is not None: - pulumi.set(__self__, "environment_id", environment_id) + _setter("environment_id", environment_id) if monitors is not None: - pulumi.set(__self__, "monitors", monitors) + _setter("monitors", monitors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="applicationId") @@ -363,6 +419,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EnvironmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appconfig/event_integration.py b/sdk/python/pulumi_aws/appconfig/event_integration.py index 0b196b06fac..1e8fe7ec5a7 100644 --- a/sdk/python/pulumi_aws/appconfig/event_integration.py +++ b/sdk/python/pulumi_aws/appconfig/event_integration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the Event Integration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Event Integration. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "event_filter", event_filter) - pulumi.set(__self__, "eventbridge_bus", eventbridge_bus) + EventIntegrationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_filter=event_filter, + eventbridge_bus=eventbridge_bus, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_filter: Optional[pulumi.Input['EventIntegrationEventFilterArgs']] = None, + eventbridge_bus: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_filter is None and 'eventFilter' in kwargs: + event_filter = kwargs['eventFilter'] + if event_filter is None: + raise TypeError("Missing 'event_filter' argument") + if eventbridge_bus is None and 'eventbridgeBus' in kwargs: + eventbridge_bus = kwargs['eventbridgeBus'] + if eventbridge_bus is None: + raise TypeError("Missing 'eventbridge_bus' argument") + + _setter("event_filter", event_filter) + _setter("eventbridge_bus", eventbridge_bus) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="eventFilter") @@ -119,23 +146,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Event Integration. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _EventIntegrationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + event_filter=event_filter, + eventbridge_bus=eventbridge_bus, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + event_filter: Optional[pulumi.Input['EventIntegrationEventFilterArgs']] = None, + eventbridge_bus: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_filter is None and 'eventFilter' in kwargs: + event_filter = kwargs['eventFilter'] + if eventbridge_bus is None and 'eventbridgeBus' in kwargs: + eventbridge_bus = kwargs['eventbridgeBus'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if event_filter is not None: - pulumi.set(__self__, "event_filter", event_filter) + _setter("event_filter", event_filter) if eventbridge_bus is not None: - pulumi.set(__self__, "eventbridge_bus", eventbridge_bus) + _setter("eventbridge_bus", eventbridge_bus) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -316,6 +372,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventIntegrationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -336,6 +396,7 @@ def _internal_init(__self__, __props__ = EventIntegrationArgs.__new__(EventIntegrationArgs) __props__.__dict__["description"] = description + event_filter = _utilities.configure(event_filter, EventIntegrationEventFilterArgs, True) if event_filter is None and not opts.urn: raise TypeError("Missing required property 'event_filter'") __props__.__dict__["event_filter"] = event_filter diff --git a/sdk/python/pulumi_aws/appconfig/extension.py b/sdk/python/pulumi_aws/appconfig/extension.py index 77975a23461..d2225d4ca87 100644 --- a/sdk/python/pulumi_aws/appconfig/extension.py +++ b/sdk/python/pulumi_aws/appconfig/extension.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,38 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ExtensionParameterArgs']]] parameters: The parameters accepted by the extension. You specify parameter values when you associate the extension to an AppConfig resource by using the CreateExtensionAssociation API action. For Lambda extension actions, these parameters are included in the Lambda request object. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "action_points", action_points) + ExtensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_points=action_points, + description=description, + name=name, + parameters=parameters, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_points: Optional[pulumi.Input[Sequence[pulumi.Input['ExtensionActionPointArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ExtensionParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_points is None and 'actionPoints' in kwargs: + action_points = kwargs['actionPoints'] + if action_points is None: + raise TypeError("Missing 'action_points' argument") + + _setter("action_points", action_points) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="actionPoints") @@ -121,25 +144,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[int] version: The version number for the extension. """ + _ExtensionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_points=action_points, + arn=arn, + description=description, + name=name, + parameters=parameters, + tags=tags, + tags_all=tags_all, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_points: Optional[pulumi.Input[Sequence[pulumi.Input['ExtensionActionPointArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ExtensionParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_points is None and 'actionPoints' in kwargs: + action_points = kwargs['actionPoints'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if action_points is not None: - pulumi.set(__self__, "action_points", action_points) + _setter("action_points", action_points) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="actionPoints") @@ -355,6 +407,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ExtensionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appconfig/extension_association.py b/sdk/python/pulumi_aws/appconfig/extension_association.py index 43f5a2faff6..c21afa1abe6 100644 --- a/sdk/python/pulumi_aws/appconfig/extension_association.py +++ b/sdk/python/pulumi_aws/appconfig/extension_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ExtensionAssociationArgs', 'ExtensionAssociation'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The ARN of the application, configuration profile, or environment to associate with the extension. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: The parameter names and values defined for the association. """ - pulumi.set(__self__, "extension_arn", extension_arn) - pulumi.set(__self__, "resource_arn", resource_arn) + ExtensionAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + extension_arn=extension_arn, + resource_arn=resource_arn, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + extension_arn: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if extension_arn is None and 'extensionArn' in kwargs: + extension_arn = kwargs['extensionArn'] + if extension_arn is None: + raise TypeError("Missing 'extension_arn' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("extension_arn", extension_arn) + _setter("resource_arn", resource_arn) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter(name="extensionArn") @@ -81,16 +104,41 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: The parameter names and values defined for the association. :param pulumi.Input[str] resource_arn: The ARN of the application, configuration profile, or environment to associate with the extension. """ + _ExtensionAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + extension_arn=extension_arn, + extension_version=extension_version, + parameters=parameters, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + extension_arn: Optional[pulumi.Input[str]] = None, + extension_version: Optional[pulumi.Input[int]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if extension_arn is None and 'extensionArn' in kwargs: + extension_arn = kwargs['extensionArn'] + if extension_version is None and 'extensionVersion' in kwargs: + extension_version = kwargs['extensionVersion'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if extension_arn is not None: - pulumi.set(__self__, "extension_arn", extension_arn) + _setter("extension_arn", extension_arn) if extension_version is not None: - pulumi.set(__self__, "extension_version", extension_version) + _setter("extension_version", extension_version) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -274,6 +322,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ExtensionAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appconfig/get_configuration_profile.py b/sdk/python/pulumi_aws/appconfig/get_configuration_profile.py index 279a7bd166b..352da8f30ec 100644 --- a/sdk/python/pulumi_aws/appconfig/get_configuration_profile.py +++ b/sdk/python/pulumi_aws/appconfig/get_configuration_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appconfig/get_configuration_profiles.py b/sdk/python/pulumi_aws/appconfig/get_configuration_profiles.py index 117acf5c056..402dd739c9c 100644 --- a/sdk/python/pulumi_aws/appconfig/get_configuration_profiles.py +++ b/sdk/python/pulumi_aws/appconfig/get_configuration_profiles.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/appconfig/get_environment.py b/sdk/python/pulumi_aws/appconfig/get_environment.py index 43bc91561a6..6cd8dce56a5 100644 --- a/sdk/python/pulumi_aws/appconfig/get_environment.py +++ b/sdk/python/pulumi_aws/appconfig/get_environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appconfig/get_environments.py b/sdk/python/pulumi_aws/appconfig/get_environments.py index 719ce3652b1..d92dff89393 100644 --- a/sdk/python/pulumi_aws/appconfig/get_environments.py +++ b/sdk/python/pulumi_aws/appconfig/get_environments.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/appconfig/hosted_configuration_version.py b/sdk/python/pulumi_aws/appconfig/hosted_configuration_version.py index 9ff49115207..12aeceeb74b 100644 --- a/sdk/python/pulumi_aws/appconfig/hosted_configuration_version.py +++ b/sdk/python/pulumi_aws/appconfig/hosted_configuration_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HostedConfigurationVersionArgs', 'HostedConfigurationVersion'] @@ -27,12 +27,45 @@ def __init__(__self__, *, :param pulumi.Input[str] content_type: Standard MIME type describing the format of the configuration content. For more information, see [Content-Type](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17). :param pulumi.Input[str] description: Description of the configuration. """ - pulumi.set(__self__, "application_id", application_id) - pulumi.set(__self__, "configuration_profile_id", configuration_profile_id) - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + HostedConfigurationVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + configuration_profile_id=configuration_profile_id, + content=content, + content_type=content_type, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + configuration_profile_id: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if configuration_profile_id is None and 'configurationProfileId' in kwargs: + configuration_profile_id = kwargs['configurationProfileId'] + if configuration_profile_id is None: + raise TypeError("Missing 'configuration_profile_id' argument") + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + + _setter("application_id", application_id) + _setter("configuration_profile_id", configuration_profile_id) + _setter("content", content) + _setter("content_type", content_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="applicationId") @@ -115,20 +148,51 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the configuration. :param pulumi.Input[int] version_number: Version number of the hosted configuration. """ + _HostedConfigurationVersionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + arn=arn, + configuration_profile_id=configuration_profile_id, + content=content, + content_type=content_type, + description=description, + version_number=version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + configuration_profile_id: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if configuration_profile_id is None and 'configurationProfileId' in kwargs: + configuration_profile_id = kwargs['configurationProfileId'] + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if version_number is None and 'versionNumber' in kwargs: + version_number = kwargs['versionNumber'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration_profile_id is not None: - pulumi.set(__self__, "configuration_profile_id", configuration_profile_id) + _setter("configuration_profile_id", configuration_profile_id) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if version_number is not None: - pulumi.set(__self__, "version_number", version_number) + _setter("version_number", version_number) @property @pulumi.getter(name="applicationId") @@ -422,6 +486,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostedConfigurationVersionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appconfig/outputs.py b/sdk/python/pulumi_aws/appconfig/outputs.py index ed72bdaa498..5ad5616a41e 100644 --- a/sdk/python/pulumi_aws/appconfig/outputs.py +++ b/sdk/python/pulumi_aws/appconfig/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -30,9 +30,24 @@ def __init__(__self__, *, :param str type: Type of validator. Valid values: `JSON_SCHEMA` and `LAMBDA`. :param str content: Either the JSON Schema content or the ARN of an AWS Lambda function. """ - pulumi.set(__self__, "type", type) + ConfigurationProfileValidator._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + content=content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + content: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) @property @pulumi.getter @@ -79,9 +94,28 @@ def __init__(__self__, *, :param str alarm_arn: ARN of the Amazon CloudWatch alarm. :param str alarm_role_arn: ARN of an IAM role for AWS AppConfig to monitor `alarm_arn`. """ - pulumi.set(__self__, "alarm_arn", alarm_arn) + EnvironmentMonitor._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_arn=alarm_arn, + alarm_role_arn=alarm_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_arn: Optional[str] = None, + alarm_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_arn is None and 'alarmArn' in kwargs: + alarm_arn = kwargs['alarmArn'] + if alarm_arn is None: + raise TypeError("Missing 'alarm_arn' argument") + if alarm_role_arn is None and 'alarmRoleArn' in kwargs: + alarm_role_arn = kwargs['alarmRoleArn'] + + _setter("alarm_arn", alarm_arn) if alarm_role_arn is not None: - pulumi.set(__self__, "alarm_role_arn", alarm_role_arn) + _setter("alarm_role_arn", alarm_role_arn) @property @pulumi.getter(name="alarmArn") @@ -107,7 +141,20 @@ def __init__(__self__, *, """ :param str source: Source of the events. """ - pulumi.set(__self__, "source", source) + EventIntegrationEventFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("source", source) @property @pulumi.getter @@ -127,8 +174,25 @@ def __init__(__self__, *, :param Sequence['ExtensionActionPointActionArgs'] actions: An action defines the tasks the extension performs during the AppConfig workflow. Detailed below. :param str point: The point at which to perform the defined actions. Valid points are `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`, `PRE_START_DEPLOYMENT`, `ON_DEPLOYMENT_START`, `ON_DEPLOYMENT_STEP`, `ON_DEPLOYMENT_BAKING`, `ON_DEPLOYMENT_COMPLETE`, `ON_DEPLOYMENT_ROLLED_BACK`. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "point", point) + ExtensionActionPoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + point=point, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence['outputs.ExtensionActionPointAction']] = None, + point: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if point is None: + raise TypeError("Missing 'point' argument") + + _setter("actions", actions) + _setter("point", point) @property @pulumi.getter @@ -177,11 +241,36 @@ def __init__(__self__, *, :param str uri: The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus. :param str description: Information about the action. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "uri", uri) + ExtensionActionPointAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + role_arn=role_arn, + uri=uri, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + role_arn: Optional[str] = None, + uri: Optional[str] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("name", name) + _setter("role_arn", role_arn) + _setter("uri", uri) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -227,11 +316,28 @@ def __init__(__self__, *, :param str description: Information about the parameter. :param bool required: Determines if a parameter value must be specified in the extension association. """ - pulumi.set(__self__, "name", name) + ExtensionParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + description=description, + required=required, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + description: Optional[str] = None, + required: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if required is not None: - pulumi.set(__self__, "required", required) + _setter("required", required) @property @pulumi.getter @@ -267,8 +373,25 @@ def __init__(__self__, *, :param str content: Either the JSON Schema content or the ARN of an AWS Lambda function. :param str type: Type of validator. Valid values: JSON_SCHEMA and LAMBDA. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "type", type) + GetConfigurationProfileValidatorResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("content", content) + _setter("type", type) @property @pulumi.getter @@ -296,8 +419,29 @@ def __init__(__self__, *, :param str alarm_arn: ARN of the Amazon CloudWatch alarm. :param str alarm_role_arn: ARN of an IAM role for AWS AppConfig to monitor. """ - pulumi.set(__self__, "alarm_arn", alarm_arn) - pulumi.set(__self__, "alarm_role_arn", alarm_role_arn) + GetEnvironmentMonitorResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_arn=alarm_arn, + alarm_role_arn=alarm_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_arn: Optional[str] = None, + alarm_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_arn is None and 'alarmArn' in kwargs: + alarm_arn = kwargs['alarmArn'] + if alarm_arn is None: + raise TypeError("Missing 'alarm_arn' argument") + if alarm_role_arn is None and 'alarmRoleArn' in kwargs: + alarm_role_arn = kwargs['alarmRoleArn'] + if alarm_role_arn is None: + raise TypeError("Missing 'alarm_role_arn' argument") + + _setter("alarm_arn", alarm_arn) + _setter("alarm_role_arn", alarm_role_arn) @property @pulumi.getter(name="alarmArn") diff --git a/sdk/python/pulumi_aws/appflow/_inputs.py b/sdk/python/pulumi_aws/appflow/_inputs.py index 915138b8cf4..aec679fa09c 100644 --- a/sdk/python/pulumi_aws/appflow/_inputs.py +++ b/sdk/python/pulumi_aws/appflow/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -132,8 +132,29 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs'] connector_profile_credentials: The connector-specific credentials required by each connector. See Connector Profile Credentials for more details. :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs'] connector_profile_properties: The connector-specific properties of the profile configuration. See Connector Profile Properties for more details. """ - pulumi.set(__self__, "connector_profile_credentials", connector_profile_credentials) - pulumi.set(__self__, "connector_profile_properties", connector_profile_properties) + ConnectorProfileConnectorProfileConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connector_profile_credentials=connector_profile_credentials, + connector_profile_properties=connector_profile_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connector_profile_credentials: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs']] = None, + connector_profile_properties: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connector_profile_credentials is None and 'connectorProfileCredentials' in kwargs: + connector_profile_credentials = kwargs['connectorProfileCredentials'] + if connector_profile_credentials is None: + raise TypeError("Missing 'connector_profile_credentials' argument") + if connector_profile_properties is None and 'connectorProfileProperties' in kwargs: + connector_profile_properties = kwargs['connectorProfileProperties'] + if connector_profile_properties is None: + raise TypeError("Missing 'connector_profile_properties' argument") + + _setter("connector_profile_credentials", connector_profile_credentials) + _setter("connector_profile_properties", connector_profile_properties) @property @pulumi.getter(name="connectorProfileCredentials") @@ -201,42 +222,97 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsVeevaArgs'] veeva: Connector-specific credentials required when using Veeva. See Veeva Connector Profile Credentials for more details. :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskArgs'] zendesk: Connector-specific credentials required when using Zendesk. See Zendesk Connector Profile Credentials for more details. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amplitude=amplitude, + custom_connector=custom_connector, + datadog=datadog, + dynatrace=dynatrace, + google_analytics=google_analytics, + honeycode=honeycode, + infor_nexus=infor_nexus, + marketo=marketo, + redshift=redshift, + salesforce=salesforce, + sapo_data=sapo_data, + service_now=service_now, + singular=singular, + slack=slack, + snowflake=snowflake, + trendmicro=trendmicro, + veeva=veeva, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amplitude: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsAmplitudeArgs']] = None, + custom_connector: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorArgs']] = None, + datadog: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsDatadogArgs']] = None, + dynatrace: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsDynatraceArgs']] = None, + google_analytics: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalyticsArgs']] = None, + honeycode: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycodeArgs']] = None, + infor_nexus: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs']] = None, + marketo: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketoArgs']] = None, + redshift: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs']] = None, + salesforce: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforceArgs']] = None, + sapo_data: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataArgs']] = None, + service_now: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsServiceNowArgs']] = None, + singular: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSingularArgs']] = None, + slack: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlackArgs']] = None, + snowflake: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSnowflakeArgs']] = None, + trendmicro: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsTrendmicroArgs']] = None, + veeva: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsVeevaArgs']] = None, + zendesk: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if google_analytics is None and 'googleAnalytics' in kwargs: + google_analytics = kwargs['googleAnalytics'] + if infor_nexus is None and 'inforNexus' in kwargs: + infor_nexus = kwargs['inforNexus'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if amplitude is not None: - pulumi.set(__self__, "amplitude", amplitude) + _setter("amplitude", amplitude) if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if datadog is not None: - pulumi.set(__self__, "datadog", datadog) + _setter("datadog", datadog) if dynatrace is not None: - pulumi.set(__self__, "dynatrace", dynatrace) + _setter("dynatrace", dynatrace) if google_analytics is not None: - pulumi.set(__self__, "google_analytics", google_analytics) + _setter("google_analytics", google_analytics) if honeycode is not None: - pulumi.set(__self__, "honeycode", honeycode) + _setter("honeycode", honeycode) if infor_nexus is not None: - pulumi.set(__self__, "infor_nexus", infor_nexus) + _setter("infor_nexus", infor_nexus) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if singular is not None: - pulumi.set(__self__, "singular", singular) + _setter("singular", singular) if slack is not None: - pulumi.set(__self__, "slack", slack) + _setter("slack", slack) if snowflake is not None: - pulumi.set(__self__, "snowflake", snowflake) + _setter("snowflake", snowflake) if trendmicro is not None: - pulumi.set(__self__, "trendmicro", trendmicro) + _setter("trendmicro", trendmicro) if veeva is not None: - pulumi.set(__self__, "veeva", veeva) + _setter("veeva", veeva) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter @@ -464,8 +540,29 @@ def __init__(__self__, *, :param pulumi.Input[str] api_key: Unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. :param pulumi.Input[str] secret_key: The Secret Access Key portion of the credentials. """ - pulumi.set(__self__, "api_key", api_key) - pulumi.set(__self__, "secret_key", secret_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsAmplitudeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + secret_key=secret_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[pulumi.Input[str]] = None, + secret_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + if secret_key is None and 'secretKey' in kwargs: + secret_key = kwargs['secretKey'] + if secret_key is None: + raise TypeError("Missing 'secret_key' argument") + + _setter("api_key", api_key) + _setter("secret_key", secret_key) @property @pulumi.getter(name="apiKey") @@ -507,15 +604,40 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorCustomArgs'] custom: If the connector uses the custom authentication mechanism, this holds the required credentials. :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2Args'] oauth2: OAuth 2.0 credentials required for the authentication of the user. """ - pulumi.set(__self__, "authentication_type", authentication_type) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + api_key=api_key, + basic=basic, + custom=custom, + oauth2=oauth2, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[pulumi.Input[str]] = None, + api_key: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorApiKeyArgs']] = None, + basic: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorBasicArgs']] = None, + custom: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorCustomArgs']] = None, + oauth2: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is None: + raise TypeError("Missing 'authentication_type' argument") + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + + _setter("authentication_type", authentication_type) if api_key is not None: - pulumi.set(__self__, "api_key", api_key) + _setter("api_key", api_key) if basic is not None: - pulumi.set(__self__, "basic", basic) + _setter("basic", basic) if custom is not None: - pulumi.set(__self__, "custom", custom) + _setter("custom", custom) if oauth2 is not None: - pulumi.set(__self__, "oauth2", oauth2) + _setter("oauth2", oauth2) @property @pulumi.getter(name="authenticationType") @@ -587,9 +709,28 @@ def __init__(__self__, *, :param pulumi.Input[str] api_key: Unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. :param pulumi.Input[str] api_secret_key: The API secret key required for API key authentication. """ - pulumi.set(__self__, "api_key", api_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorApiKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + api_secret_key=api_secret_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[pulumi.Input[str]] = None, + api_secret_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + if api_secret_key is None and 'apiSecretKey' in kwargs: + api_secret_key = kwargs['apiSecretKey'] + + _setter("api_key", api_key) if api_secret_key is not None: - pulumi.set(__self__, "api_secret_key", api_secret_key) + _setter("api_secret_key", api_secret_key) @property @pulumi.getter(name="apiKey") @@ -625,8 +766,25 @@ def __init__(__self__, *, :param pulumi.Input[str] password: The password to use to connect to a resource. :param pulumi.Input[str] username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorBasicArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -662,9 +820,28 @@ def __init__(__self__, *, :param pulumi.Input[str] custom_authentication_type: The custom authentication type that the connector uses. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] credentials_map: A map that holds custom authentication credentials. """ - pulumi.set(__self__, "custom_authentication_type", custom_authentication_type) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorCustomArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_authentication_type=custom_authentication_type, + credentials_map=credentials_map, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_authentication_type: Optional[pulumi.Input[str]] = None, + credentials_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_authentication_type is None and 'customAuthenticationType' in kwargs: + custom_authentication_type = kwargs['customAuthenticationType'] + if custom_authentication_type is None: + raise TypeError("Missing 'custom_authentication_type' argument") + if credentials_map is None and 'credentialsMap' in kwargs: + credentials_map = kwargs['credentialsMap'] + + _setter("custom_authentication_type", custom_authentication_type) if credentials_map is not None: - pulumi.set(__self__, "credentials_map", credentials_map) + _setter("credentials_map", credentials_map) @property @pulumi.getter(name="customAuthenticationType") @@ -706,16 +883,45 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2OauthRequestArgs'] oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param pulumi.Input[str] refresh_token: The refresh token used to refresh an expired access token. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + client_id=client_id, + client_secret=client_secret, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + oauth_request: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2OauthRequestArgs']] = None, + refresh_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if client_secret is not None: - pulumi.set(__self__, "client_secret", client_secret) + _setter("client_secret", client_secret) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -787,10 +993,27 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_code: The code provided by the connector when it has been authenticated via the connected app. :param pulumi.Input[str] redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2OauthRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[pulumi.Input[str]] = None, + redirect_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -826,8 +1049,29 @@ def __init__(__self__, *, :param pulumi.Input[str] api_key: Unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. :param pulumi.Input[str] application_key: Application keys, in conjunction with your API key, give you full access to Datadog’s programmatic API. Application keys are associated with the user account that created them. The application key is used to log all requests made to the API. """ - pulumi.set(__self__, "api_key", api_key) - pulumi.set(__self__, "application_key", application_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsDatadogArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + application_key=application_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[pulumi.Input[str]] = None, + application_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + if application_key is None and 'applicationKey' in kwargs: + application_key = kwargs['applicationKey'] + if application_key is None: + raise TypeError("Missing 'application_key' argument") + + _setter("api_key", api_key) + _setter("application_key", application_key) @property @pulumi.getter(name="apiKey") @@ -861,7 +1105,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] api_token: The API tokens used by Dynatrace API to authenticate various API calls. """ - pulumi.set(__self__, "api_token", api_token) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsDynatraceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_token=api_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_token is None and 'apiToken' in kwargs: + api_token = kwargs['apiToken'] + if api_token is None: + raise TypeError("Missing 'api_token' argument") + + _setter("api_token", api_token) @property @pulumi.getter(name="apiToken") @@ -891,14 +1150,47 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalyticsOauthRequestArgs'] oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param pulumi.Input[str] refresh_token: The refresh token used to refresh an expired access token. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalyticsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + access_token: Optional[pulumi.Input[str]] = None, + oauth_request: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalyticsOauthRequestArgs']] = None, + refresh_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="clientId") @@ -970,10 +1262,27 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_code: The code provided by the connector when it has been authenticated via the connected app. :param pulumi.Input[str] redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalyticsOauthRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[pulumi.Input[str]] = None, + redirect_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1011,12 +1320,33 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycodeOauthRequestArgs'] oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param pulumi.Input[str] refresh_token: The refresh token used to refresh an expired access token. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[pulumi.Input[str]] = None, + oauth_request: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycodeOauthRequestArgs']] = None, + refresh_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -1064,10 +1394,27 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_code: The code provided by the connector when it has been authenticated via the connected app. :param pulumi.Input[str] redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycodeOauthRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[pulumi.Input[str]] = None, + redirect_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1107,10 +1454,41 @@ def __init__(__self__, *, :param pulumi.Input[str] secret_access_key: The secret key used to sign requests. :param pulumi.Input[str] user_id: Identifier for the user. """ - pulumi.set(__self__, "access_key_id", access_key_id) - pulumi.set(__self__, "datakey", datakey) - pulumi.set(__self__, "secret_access_key", secret_access_key) - pulumi.set(__self__, "user_id", user_id) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_key_id=access_key_id, + datakey=datakey, + secret_access_key=secret_access_key, + user_id=user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_key_id: Optional[pulumi.Input[str]] = None, + datakey: Optional[pulumi.Input[str]] = None, + secret_access_key: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_key_id is None and 'accessKeyId' in kwargs: + access_key_id = kwargs['accessKeyId'] + if access_key_id is None: + raise TypeError("Missing 'access_key_id' argument") + if datakey is None: + raise TypeError("Missing 'datakey' argument") + if secret_access_key is None and 'secretAccessKey' in kwargs: + secret_access_key = kwargs['secretAccessKey'] + if secret_access_key is None: + raise TypeError("Missing 'secret_access_key' argument") + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_id is None: + raise TypeError("Missing 'user_id' argument") + + _setter("access_key_id", access_key_id) + _setter("datakey", datakey) + _setter("secret_access_key", secret_access_key) + _setter("user_id", user_id) @property @pulumi.getter(name="accessKeyId") @@ -1174,12 +1552,41 @@ def __init__(__self__, *, :param pulumi.Input[str] access_token: The access token used to access the connector on your behalf. :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketoOauthRequestArgs'] oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + access_token: Optional[pulumi.Input[str]] = None, + oauth_request: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketoOauthRequestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) @property @pulumi.getter(name="clientId") @@ -1239,10 +1646,27 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_code: The code provided by the connector when it has been authenticated via the connected app. :param pulumi.Input[str] redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketoOauthRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[pulumi.Input[str]] = None, + redirect_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1278,8 +1702,25 @@ def __init__(__self__, *, :param pulumi.Input[str] password: The password to use to connect to a resource. :param pulumi.Input[str] username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -1319,14 +1760,39 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforceOauthRequestArgs'] oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param pulumi.Input[str] refresh_token: The refresh token used to refresh an expired access token. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + client_credentials_arn=client_credentials_arn, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[pulumi.Input[str]] = None, + client_credentials_arn: Optional[pulumi.Input[str]] = None, + oauth_request: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforceOauthRequestArgs']] = None, + refresh_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if client_credentials_arn is None and 'clientCredentialsArn' in kwargs: + client_credentials_arn = kwargs['clientCredentialsArn'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if client_credentials_arn is not None: - pulumi.set(__self__, "client_credentials_arn", client_credentials_arn) + _setter("client_credentials_arn", client_credentials_arn) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -1386,10 +1852,27 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_code: The code provided by the connector when it has been authenticated via the connected app. :param pulumi.Input[str] redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforceOauthRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[pulumi.Input[str]] = None, + redirect_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1425,10 +1908,27 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataBasicAuthCredentialsArgs'] basic_auth_credentials: The SAPOData basic authentication credentials. :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsArgs'] oauth_credentials: The SAPOData OAuth type authentication credentials. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth_credentials=basic_auth_credentials, + oauth_credentials=oauth_credentials, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth_credentials: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataBasicAuthCredentialsArgs']] = None, + oauth_credentials: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth_credentials is None and 'basicAuthCredentials' in kwargs: + basic_auth_credentials = kwargs['basicAuthCredentials'] + if oauth_credentials is None and 'oauthCredentials' in kwargs: + oauth_credentials = kwargs['oauthCredentials'] + if basic_auth_credentials is not None: - pulumi.set(__self__, "basic_auth_credentials", basic_auth_credentials) + _setter("basic_auth_credentials", basic_auth_credentials) if oauth_credentials is not None: - pulumi.set(__self__, "oauth_credentials", oauth_credentials) + _setter("oauth_credentials", oauth_credentials) @property @pulumi.getter(name="basicAuthCredentials") @@ -1464,8 +1964,25 @@ def __init__(__self__, *, :param pulumi.Input[str] password: The password to use to connect to a resource. :param pulumi.Input[str] username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataBasicAuthCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -1507,14 +2024,47 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsOauthRequestArgs'] oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param pulumi.Input[str] refresh_token: The refresh token used to refresh an expired access token. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + access_token: Optional[pulumi.Input[str]] = None, + oauth_request: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsOauthRequestArgs']] = None, + refresh_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="clientId") @@ -1586,10 +2136,27 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_code: The code provided by the connector when it has been authenticated via the connected app. :param pulumi.Input[str] redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsOauthRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[pulumi.Input[str]] = None, + redirect_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1625,8 +2192,25 @@ def __init__(__self__, *, :param pulumi.Input[str] password: The password to use to connect to a resource. :param pulumi.Input[str] username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsServiceNowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -1660,7 +2244,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] api_key: Unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. """ - pulumi.set(__self__, "api_key", api_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSingularArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + + _setter("api_key", api_key) @property @pulumi.getter(name="apiKey") @@ -1688,12 +2287,41 @@ def __init__(__self__, *, :param pulumi.Input[str] access_token: The access token used to access the connector on your behalf. :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlackOauthRequestArgs'] oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + access_token: Optional[pulumi.Input[str]] = None, + oauth_request: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlackOauthRequestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) @property @pulumi.getter(name="clientId") @@ -1753,10 +2381,27 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_code: The code provided by the connector when it has been authenticated via the connected app. :param pulumi.Input[str] redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlackOauthRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[pulumi.Input[str]] = None, + redirect_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1792,8 +2437,25 @@ def __init__(__self__, *, :param pulumi.Input[str] password: The password to use to connect to a resource. :param pulumi.Input[str] username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSnowflakeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -1827,7 +2489,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] api_secret_key: The API secret key required for API key authentication. """ - pulumi.set(__self__, "api_secret_key", api_secret_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsTrendmicroArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_secret_key=api_secret_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_secret_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_secret_key is None and 'apiSecretKey' in kwargs: + api_secret_key = kwargs['apiSecretKey'] + if api_secret_key is None: + raise TypeError("Missing 'api_secret_key' argument") + + _setter("api_secret_key", api_secret_key) @property @pulumi.getter(name="apiSecretKey") @@ -1851,8 +2528,25 @@ def __init__(__self__, *, :param pulumi.Input[str] password: The password to use to connect to a resource. :param pulumi.Input[str] username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsVeevaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -1892,12 +2586,41 @@ def __init__(__self__, *, :param pulumi.Input[str] access_token: The access token used to access the connector on your behalf. :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskOauthRequestArgs'] oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + access_token: Optional[pulumi.Input[str]] = None, + oauth_request: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskOauthRequestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) @property @pulumi.getter(name="clientId") @@ -1957,10 +2680,27 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_code: The code provided by the connector when it has been authenticated via the connected app. :param pulumi.Input[str] redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskOauthRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[pulumi.Input[str]] = None, + redirect_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -2028,42 +2768,97 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesVeevaArgs'] veeva: Connector-specific properties required when using Veeva. See Generic Connector Profile Properties for more details. :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesZendeskArgs'] zendesk: Connector-specific properties required when using Zendesk. See Generic Connector Profile Properties for more details. """ + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amplitude=amplitude, + custom_connector=custom_connector, + datadog=datadog, + dynatrace=dynatrace, + google_analytics=google_analytics, + honeycode=honeycode, + infor_nexus=infor_nexus, + marketo=marketo, + redshift=redshift, + salesforce=salesforce, + sapo_data=sapo_data, + service_now=service_now, + singular=singular, + slack=slack, + snowflake=snowflake, + trendmicro=trendmicro, + veeva=veeva, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amplitude: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesAmplitudeArgs']] = None, + custom_connector: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnectorArgs']] = None, + datadog: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesDatadogArgs']] = None, + dynatrace: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesDynatraceArgs']] = None, + google_analytics: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesGoogleAnalyticsArgs']] = None, + honeycode: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesHoneycodeArgs']] = None, + infor_nexus: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesInforNexusArgs']] = None, + marketo: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesMarketoArgs']] = None, + redshift: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs']] = None, + salesforce: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSalesforceArgs']] = None, + sapo_data: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoDataArgs']] = None, + service_now: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesServiceNowArgs']] = None, + singular: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSingularArgs']] = None, + slack: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSlackArgs']] = None, + snowflake: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSnowflakeArgs']] = None, + trendmicro: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesTrendmicroArgs']] = None, + veeva: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesVeevaArgs']] = None, + zendesk: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesZendeskArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if google_analytics is None and 'googleAnalytics' in kwargs: + google_analytics = kwargs['googleAnalytics'] + if infor_nexus is None and 'inforNexus' in kwargs: + infor_nexus = kwargs['inforNexus'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if amplitude is not None: - pulumi.set(__self__, "amplitude", amplitude) + _setter("amplitude", amplitude) if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if datadog is not None: - pulumi.set(__self__, "datadog", datadog) + _setter("datadog", datadog) if dynatrace is not None: - pulumi.set(__self__, "dynatrace", dynatrace) + _setter("dynatrace", dynatrace) if google_analytics is not None: - pulumi.set(__self__, "google_analytics", google_analytics) + _setter("google_analytics", google_analytics) if honeycode is not None: - pulumi.set(__self__, "honeycode", honeycode) + _setter("honeycode", honeycode) if infor_nexus is not None: - pulumi.set(__self__, "infor_nexus", infor_nexus) + _setter("infor_nexus", infor_nexus) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if singular is not None: - pulumi.set(__self__, "singular", singular) + _setter("singular", singular) if slack is not None: - pulumi.set(__self__, "slack", slack) + _setter("slack", slack) if snowflake is not None: - pulumi.set(__self__, "snowflake", snowflake) + _setter("snowflake", snowflake) if trendmicro is not None: - pulumi.set(__self__, "trendmicro", trendmicro) + _setter("trendmicro", trendmicro) if veeva is not None: - pulumi.set(__self__, "veeva", veeva) + _setter("veeva", veeva) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter @@ -2286,6 +3081,13 @@ def zendesk(self, value: Optional[pulumi.Input['ConnectorProfileConnectorProfile class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesAmplitudeArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2297,10 +3099,27 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnectorOauth2PropertiesArgs'] oauth2_properties: The OAuth 2.0 properties required for OAuth 2.0 authentication. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] profile_properties: A map of properties that are required to create a profile for the custom connector. """ + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oauth2_properties=oauth2_properties, + profile_properties=profile_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oauth2_properties: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnectorOauth2PropertiesArgs']] = None, + profile_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oauth2_properties is None and 'oauth2Properties' in kwargs: + oauth2_properties = kwargs['oauth2Properties'] + if profile_properties is None and 'profileProperties' in kwargs: + profile_properties = kwargs['profileProperties'] + if oauth2_properties is not None: - pulumi.set(__self__, "oauth2_properties", oauth2_properties) + _setter("oauth2_properties", oauth2_properties) if profile_properties is not None: - pulumi.set(__self__, "profile_properties", profile_properties) + _setter("profile_properties", profile_properties) @property @pulumi.getter(name="oauth2Properties") @@ -2338,10 +3157,35 @@ def __init__(__self__, *, :param pulumi.Input[str] token_url: The token URL required for OAuth 2.0 authentication. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] token_url_custom_properties: Associates your token URL with a map of properties that you define. Use this parameter to provide any additional details that the connector requires to authenticate your request. """ - pulumi.set(__self__, "oauth2_grant_type", oauth2_grant_type) - pulumi.set(__self__, "token_url", token_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnectorOauth2PropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oauth2_grant_type=oauth2_grant_type, + token_url=token_url, + token_url_custom_properties=token_url_custom_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oauth2_grant_type: Optional[pulumi.Input[str]] = None, + token_url: Optional[pulumi.Input[str]] = None, + token_url_custom_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oauth2_grant_type is None and 'oauth2GrantType' in kwargs: + oauth2_grant_type = kwargs['oauth2GrantType'] + if oauth2_grant_type is None: + raise TypeError("Missing 'oauth2_grant_type' argument") + if token_url is None and 'tokenUrl' in kwargs: + token_url = kwargs['tokenUrl'] + if token_url is None: + raise TypeError("Missing 'token_url' argument") + if token_url_custom_properties is None and 'tokenUrlCustomProperties' in kwargs: + token_url_custom_properties = kwargs['tokenUrlCustomProperties'] + + _setter("oauth2_grant_type", oauth2_grant_type) + _setter("token_url", token_url) if token_url_custom_properties is not None: - pulumi.set(__self__, "token_url_custom_properties", token_url_custom_properties) + _setter("token_url_custom_properties", token_url_custom_properties) @property @pulumi.getter(name="oauth2GrantType") @@ -2387,7 +3231,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesDatadogArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2409,7 +3268,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesDynatraceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2428,12 +3302,26 @@ def instance_url(self, value: pulumi.Input[str]): class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesGoogleAnalyticsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesHoneycodeArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2443,7 +3331,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesInforNexusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2465,7 +3368,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesMarketoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2499,18 +3417,59 @@ def __init__(__self__, *, :param pulumi.Input[str] database_name: The name of an Amazon Redshift database. :param pulumi.Input[str] database_url: The JDBC URL of the Amazon Redshift cluster. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "role_arn", role_arn) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + role_arn=role_arn, + bucket_prefix=bucket_prefix, + cluster_identifier=cluster_identifier, + data_api_role_arn=data_api_role_arn, + database_name=database_name, + database_url=database_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + data_api_role_arn: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + database_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if data_api_role_arn is None and 'dataApiRoleArn' in kwargs: + data_api_role_arn = kwargs['dataApiRoleArn'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_url is None and 'databaseUrl' in kwargs: + database_url = kwargs['databaseUrl'] + + _setter("bucket_name", bucket_name) + _setter("role_arn", role_arn) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if data_api_role_arn is not None: - pulumi.set(__self__, "data_api_role_arn", data_api_role_arn) + _setter("data_api_role_arn", data_api_role_arn) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if database_url is not None: - pulumi.set(__self__, "database_url", database_url) + _setter("database_url", database_url) @property @pulumi.getter(name="bucketName") @@ -2606,10 +3565,27 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_url: The location of the Datadog resource. :param pulumi.Input[bool] is_sandbox_environment: Indicates whether the connector profile applies to a sandbox or production environment. """ + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSalesforceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + is_sandbox_environment=is_sandbox_environment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[pulumi.Input[str]] = None, + is_sandbox_environment: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if is_sandbox_environment is None and 'isSandboxEnvironment' in kwargs: + is_sandbox_environment = kwargs['isSandboxEnvironment'] + if instance_url is not None: - pulumi.set(__self__, "instance_url", instance_url) + _setter("instance_url", instance_url) if is_sandbox_environment is not None: - pulumi.set(__self__, "is_sandbox_environment", is_sandbox_environment) + _setter("is_sandbox_environment", is_sandbox_environment) @property @pulumi.getter(name="instanceUrl") @@ -2655,16 +3631,61 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoDataOauthPropertiesArgs'] oauth_properties: The SAPOData OAuth properties required for OAuth type authentication. :param pulumi.Input[str] private_link_service_name: The SAPOData Private Link service name to be used for private data transfers. """ - pulumi.set(__self__, "application_host_url", application_host_url) - pulumi.set(__self__, "application_service_path", application_service_path) - pulumi.set(__self__, "client_number", client_number) - pulumi.set(__self__, "port_number", port_number) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_host_url=application_host_url, + application_service_path=application_service_path, + client_number=client_number, + port_number=port_number, + logon_language=logon_language, + oauth_properties=oauth_properties, + private_link_service_name=private_link_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_host_url: Optional[pulumi.Input[str]] = None, + application_service_path: Optional[pulumi.Input[str]] = None, + client_number: Optional[pulumi.Input[str]] = None, + port_number: Optional[pulumi.Input[int]] = None, + logon_language: Optional[pulumi.Input[str]] = None, + oauth_properties: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoDataOauthPropertiesArgs']] = None, + private_link_service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_host_url is None and 'applicationHostUrl' in kwargs: + application_host_url = kwargs['applicationHostUrl'] + if application_host_url is None: + raise TypeError("Missing 'application_host_url' argument") + if application_service_path is None and 'applicationServicePath' in kwargs: + application_service_path = kwargs['applicationServicePath'] + if application_service_path is None: + raise TypeError("Missing 'application_service_path' argument") + if client_number is None and 'clientNumber' in kwargs: + client_number = kwargs['clientNumber'] + if client_number is None: + raise TypeError("Missing 'client_number' argument") + if port_number is None and 'portNumber' in kwargs: + port_number = kwargs['portNumber'] + if port_number is None: + raise TypeError("Missing 'port_number' argument") + if logon_language is None and 'logonLanguage' in kwargs: + logon_language = kwargs['logonLanguage'] + if oauth_properties is None and 'oauthProperties' in kwargs: + oauth_properties = kwargs['oauthProperties'] + if private_link_service_name is None and 'privateLinkServiceName' in kwargs: + private_link_service_name = kwargs['privateLinkServiceName'] + + _setter("application_host_url", application_host_url) + _setter("application_service_path", application_service_path) + _setter("client_number", client_number) + _setter("port_number", port_number) if logon_language is not None: - pulumi.set(__self__, "logon_language", logon_language) + _setter("logon_language", logon_language) if oauth_properties is not None: - pulumi.set(__self__, "oauth_properties", oauth_properties) + _setter("oauth_properties", oauth_properties) if private_link_service_name is not None: - pulumi.set(__self__, "private_link_service_name", private_link_service_name) + _setter("private_link_service_name", private_link_service_name) @property @pulumi.getter(name="applicationHostUrl") @@ -2762,9 +3783,36 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] oauth_scopes: The OAuth scopes required for OAuth type authentication. :param pulumi.Input[str] token_url: The token URL required for OAuth 2.0 authentication. """ - pulumi.set(__self__, "auth_code_url", auth_code_url) - pulumi.set(__self__, "oauth_scopes", oauth_scopes) - pulumi.set(__self__, "token_url", token_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoDataOauthPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code_url=auth_code_url, + oauth_scopes=oauth_scopes, + token_url=token_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code_url: Optional[pulumi.Input[str]] = None, + oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code_url is None and 'authCodeUrl' in kwargs: + auth_code_url = kwargs['authCodeUrl'] + if auth_code_url is None: + raise TypeError("Missing 'auth_code_url' argument") + if oauth_scopes is None and 'oauthScopes' in kwargs: + oauth_scopes = kwargs['oauthScopes'] + if oauth_scopes is None: + raise TypeError("Missing 'oauth_scopes' argument") + if token_url is None and 'tokenUrl' in kwargs: + token_url = kwargs['tokenUrl'] + if token_url is None: + raise TypeError("Missing 'token_url' argument") + + _setter("auth_code_url", auth_code_url) + _setter("oauth_scopes", oauth_scopes) + _setter("token_url", token_url) @property @pulumi.getter(name="authCodeUrl") @@ -2810,7 +3858,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesServiceNowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2829,6 +3892,13 @@ def instance_url(self, value: pulumi.Input[str]): class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSingularArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2838,7 +3908,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSlackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2872,17 +3957,54 @@ def __init__(__self__, *, :param pulumi.Input[str] private_link_service_name: The SAPOData Private Link service name to be used for private data transfers. :param pulumi.Input[str] region: AWS Region of the Snowflake account. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "stage", stage) - pulumi.set(__self__, "warehouse", warehouse) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSnowflakeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + stage=stage, + warehouse=warehouse, + account_name=account_name, + bucket_prefix=bucket_prefix, + private_link_service_name=private_link_service_name, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + stage: Optional[pulumi.Input[str]] = None, + warehouse: Optional[pulumi.Input[str]] = None, + account_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + private_link_service_name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if stage is None: + raise TypeError("Missing 'stage' argument") + if warehouse is None: + raise TypeError("Missing 'warehouse' argument") + if account_name is None and 'accountName' in kwargs: + account_name = kwargs['accountName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if private_link_service_name is None and 'privateLinkServiceName' in kwargs: + private_link_service_name = kwargs['privateLinkServiceName'] + + _setter("bucket_name", bucket_name) + _setter("stage", stage) + _setter("warehouse", warehouse) if account_name is not None: - pulumi.set(__self__, "account_name", account_name) + _setter("account_name", account_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if private_link_service_name is not None: - pulumi.set(__self__, "private_link_service_name", private_link_service_name) + _setter("private_link_service_name", private_link_service_name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter(name="bucketName") @@ -2973,6 +4095,13 @@ def region(self, value: Optional[pulumi.Input[str]]): class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesTrendmicroArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2982,7 +4111,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesVeevaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -3004,7 +4148,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesZendeskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -3032,12 +4191,41 @@ def __init__(__self__, *, :param pulumi.Input[str] api_version: API version that the destination connector uses. :param pulumi.Input[str] connector_profile_name: Name of the connector profile. This name must be unique for each connector profile in the AWS account. """ - pulumi.set(__self__, "connector_type", connector_type) - pulumi.set(__self__, "destination_connector_properties", destination_connector_properties) + FlowDestinationFlowConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connector_type=connector_type, + destination_connector_properties=destination_connector_properties, + api_version=api_version, + connector_profile_name=connector_profile_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connector_type: Optional[pulumi.Input[str]] = None, + destination_connector_properties: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesArgs']] = None, + api_version: Optional[pulumi.Input[str]] = None, + connector_profile_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connector_type is None and 'connectorType' in kwargs: + connector_type = kwargs['connectorType'] + if connector_type is None: + raise TypeError("Missing 'connector_type' argument") + if destination_connector_properties is None and 'destinationConnectorProperties' in kwargs: + destination_connector_properties = kwargs['destinationConnectorProperties'] + if destination_connector_properties is None: + raise TypeError("Missing 'destination_connector_properties' argument") + if api_version is None and 'apiVersion' in kwargs: + api_version = kwargs['apiVersion'] + if connector_profile_name is None and 'connectorProfileName' in kwargs: + connector_profile_name = kwargs['connectorProfileName'] + + _setter("connector_type", connector_type) + _setter("destination_connector_properties", destination_connector_properties) if api_version is not None: - pulumi.set(__self__, "api_version", api_version) + _setter("api_version", api_version) if connector_profile_name is not None: - pulumi.set(__self__, "connector_profile_name", connector_profile_name) + _setter("connector_profile_name", connector_profile_name) @property @pulumi.getter(name="connectorType") @@ -3118,32 +4306,77 @@ def __init__(__self__, *, :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs'] upsolver: Properties that are required to query Upsolver. See Upsolver Destination Properties for more details. :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs'] zendesk: Properties that are required to query Zendesk. See Zendesk Destination Properties for more details. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_connector=custom_connector, + customer_profiles=customer_profiles, + event_bridge=event_bridge, + honeycode=honeycode, + lookout_metrics=lookout_metrics, + marketo=marketo, + redshift=redshift, + s3=s3, + salesforce=salesforce, + sapo_data=sapo_data, + snowflake=snowflake, + upsolver=upsolver, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_connector: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs']] = None, + customer_profiles: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesCustomerProfilesArgs']] = None, + event_bridge: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeArgs']] = None, + honeycode: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeArgs']] = None, + lookout_metrics: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesLookoutMetricsArgs']] = None, + marketo: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoArgs']] = None, + redshift: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftArgs']] = None, + s3: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args']] = None, + salesforce: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs']] = None, + sapo_data: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataArgs']] = None, + snowflake: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeArgs']] = None, + upsolver: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs']] = None, + zendesk: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if customer_profiles is None and 'customerProfiles' in kwargs: + customer_profiles = kwargs['customerProfiles'] + if event_bridge is None and 'eventBridge' in kwargs: + event_bridge = kwargs['eventBridge'] + if lookout_metrics is None and 'lookoutMetrics' in kwargs: + lookout_metrics = kwargs['lookoutMetrics'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if customer_profiles is not None: - pulumi.set(__self__, "customer_profiles", customer_profiles) + _setter("customer_profiles", customer_profiles) if event_bridge is not None: - pulumi.set(__self__, "event_bridge", event_bridge) + _setter("event_bridge", event_bridge) if honeycode is not None: - pulumi.set(__self__, "honeycode", honeycode) + _setter("honeycode", honeycode) if lookout_metrics is not None: - pulumi.set(__self__, "lookout_metrics", lookout_metrics) + _setter("lookout_metrics", lookout_metrics) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if snowflake is not None: - pulumi.set(__self__, "snowflake", snowflake) + _setter("snowflake", snowflake) if upsolver is not None: - pulumi.set(__self__, "upsolver", upsolver) + _setter("upsolver", upsolver) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter(name="customConnector") @@ -3310,19 +4543,50 @@ def __init__(__self__, *, """ :param pulumi.Input[str] entity_name: Entity specified in the custom connector as a destination in the flow. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_properties: Custom properties that are specific to the connector when it's used as a destination in the flow. Maximum of 50 items. - :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. :param pulumi.Input[Sequence[pulumi.Input[str]]] id_field_names: Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. :param pulumi.Input[str] write_operation_type: Type of write operation to be performed in the custom connector when it's used as destination. Valid values are `INSERT`, `UPSERT`, `UPDATE`, and `DELETE`. """ - pulumi.set(__self__, "entity_name", entity_name) + FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_name=entity_name, + custom_properties=custom_properties, + error_handling_config=error_handling_config, + id_field_names=id_field_names, + write_operation_type=write_operation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_name: Optional[pulumi.Input[str]] = None, + custom_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigArgs']] = None, + id_field_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + write_operation_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_name is None and 'entityName' in kwargs: + entity_name = kwargs['entityName'] + if entity_name is None: + raise TypeError("Missing 'entity_name' argument") + if custom_properties is None and 'customProperties' in kwargs: + custom_properties = kwargs['customProperties'] + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + if id_field_names is None and 'idFieldNames' in kwargs: + id_field_names = kwargs['idFieldNames'] + if write_operation_type is None and 'writeOperationType' in kwargs: + write_operation_type = kwargs['writeOperationType'] + + _setter("entity_name", entity_name) if custom_properties is not None: - pulumi.set(__self__, "custom_properties", custom_properties) + _setter("custom_properties", custom_properties) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) if id_field_names is not None: - pulumi.set(__self__, "id_field_names", id_field_names) + _setter("id_field_names", id_field_names) if write_operation_type is not None: - pulumi.set(__self__, "write_operation_type", write_operation_type) + _setter("write_operation_type", write_operation_type) @property @pulumi.getter(name="entityName") @@ -3352,7 +4616,7 @@ def custom_properties(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Inp @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigArgs']]: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -3396,12 +4660,33 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input[bool] fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + fail_on_first_destination_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -3449,9 +4734,28 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: Unique name of the Amazon Connect Customer Profiles domain. :param pulumi.Input[str] object_type_name: Object specified in the Amazon Connect Customer Profiles flow destination. """ - pulumi.set(__self__, "domain_name", domain_name) + FlowDestinationFlowConfigDestinationConnectorPropertiesCustomerProfilesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + object_type_name=object_type_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + object_type_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if object_type_name is None and 'objectTypeName' in kwargs: + object_type_name = kwargs['objectTypeName'] + + _setter("domain_name", domain_name) if object_type_name is not None: - pulumi.set(__self__, "object_type_name", object_type_name) + _setter("object_type_name", object_type_name) @property @pulumi.getter(name="domainName") @@ -3485,11 +4789,28 @@ def __init__(__self__, *, error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigArgs']] = None): """ :param pulumi.Input[str] object: Object specified in the flow destination. - :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. - """ - pulumi.set(__self__, "object", object) + :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. + """ + FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter @@ -3507,7 +4828,7 @@ def object(self, value: pulumi.Input[str]): @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigArgs']]: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -3527,12 +4848,33 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input[bool] fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + fail_on_first_destination_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -3578,11 +4920,28 @@ def __init__(__self__, *, error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigArgs']] = None): """ :param pulumi.Input[str] object: Object specified in the flow destination. - :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. - """ - pulumi.set(__self__, "object", object) + :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. + """ + FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter @@ -3600,7 +4959,7 @@ def object(self, value: pulumi.Input[str]): @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigArgs']]: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -3620,12 +4979,33 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input[bool] fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + fail_on_first_destination_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -3668,6 +5048,13 @@ def fail_on_first_destination_error(self, value: Optional[pulumi.Input[bool]]): class FlowDestinationFlowConfigDestinationConnectorPropertiesLookoutMetricsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -3677,11 +5064,28 @@ def __init__(__self__, *, error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigArgs']] = None): """ :param pulumi.Input[str] object: Object specified in the flow destination. - :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. - """ - pulumi.set(__self__, "object", object) + :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. + """ + FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter @@ -3699,7 +5103,7 @@ def object(self, value: pulumi.Input[str]): @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigArgs']]: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -3719,12 +5123,33 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input[bool] fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + fail_on_first_destination_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -3773,15 +5198,42 @@ def __init__(__self__, *, """ :param pulumi.Input[str] intermediate_bucket_name: Intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift. :param pulumi.Input[str] object: Object specified in the flow destination. - :param pulumi.Input[str] bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. - :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. - """ - pulumi.set(__self__, "intermediate_bucket_name", intermediate_bucket_name) - pulumi.set(__self__, "object", object) + :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. + :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. + """ + FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + intermediate_bucket_name=intermediate_bucket_name, + object=object, + bucket_prefix=bucket_prefix, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + intermediate_bucket_name: Optional[pulumi.Input[str]] = None, + object: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if intermediate_bucket_name is None and 'intermediateBucketName' in kwargs: + intermediate_bucket_name = kwargs['intermediateBucketName'] + if intermediate_bucket_name is None: + raise TypeError("Missing 'intermediate_bucket_name' argument") + if object is None: + raise TypeError("Missing 'object' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("intermediate_bucket_name", intermediate_bucket_name) + _setter("object", object) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter(name="intermediateBucketName") @@ -3811,7 +5263,7 @@ def object(self, value: pulumi.Input[str]): @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[pulumi.Input[str]]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -3823,7 +5275,7 @@ def bucket_prefix(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigArgs']]: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -3843,12 +5295,33 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input[bool] fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + fail_on_first_destination_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -3894,21 +5367,44 @@ def __init__(__self__, *, bucket_prefix: Optional[pulumi.Input[str]] = None, s3_output_format_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigArgs']] = None): """ - :param pulumi.Input[str] bucket_name: Amazon S3 bucket name in which Amazon AppFlow places the transferred data. - :param pulumi.Input[str] bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. + :param pulumi.Input[str] bucket_name: Name of the Amazon S3 bucket. + :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigArgs'] s3_output_format_config: Configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination. See S3 Output Format Config for more details. """ - pulumi.set(__self__, "bucket_name", bucket_name) + FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + s3_output_format_config=s3_output_format_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + s3_output_format_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if s3_output_format_config is None and 's3OutputFormatConfig' in kwargs: + s3_output_format_config = kwargs['s3OutputFormatConfig'] + + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if s3_output_format_config is not None: - pulumi.set(__self__, "s3_output_format_config", s3_output_format_config) + _setter("s3_output_format_config", s3_output_format_config) @property @pulumi.getter(name="bucketName") def bucket_name(self) -> pulumi.Input[str]: """ - Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + Name of the Amazon S3 bucket. """ return pulumi.get(self, "bucket_name") @@ -3920,7 +5416,7 @@ def bucket_name(self, value: pulumi.Input[str]): @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[pulumi.Input[str]]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -3954,14 +5450,39 @@ def __init__(__self__, *, :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPrefixConfigArgs'] prefix_config: Determines the prefix that Amazon AppFlow applies to the folder name in the Amazon S3 bucket. You can name folders according to the flow frequency and date. See Prefix Config for more details. :param pulumi.Input[bool] preserve_source_data_typing: Whether the data types from the source system need to be preserved (Only valid for `Parquet` file type) """ + FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aggregation_config=aggregation_config, + file_type=file_type, + prefix_config=prefix_config, + preserve_source_data_typing=preserve_source_data_typing, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aggregation_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigAggregationConfigArgs']] = None, + file_type: Optional[pulumi.Input[str]] = None, + prefix_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPrefixConfigArgs']] = None, + preserve_source_data_typing: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aggregation_config is None and 'aggregationConfig' in kwargs: + aggregation_config = kwargs['aggregationConfig'] + if file_type is None and 'fileType' in kwargs: + file_type = kwargs['fileType'] + if prefix_config is None and 'prefixConfig' in kwargs: + prefix_config = kwargs['prefixConfig'] + if preserve_source_data_typing is None and 'preserveSourceDataTyping' in kwargs: + preserve_source_data_typing = kwargs['preserveSourceDataTyping'] + if aggregation_config is not None: - pulumi.set(__self__, "aggregation_config", aggregation_config) + _setter("aggregation_config", aggregation_config) if file_type is not None: - pulumi.set(__self__, "file_type", file_type) + _setter("file_type", file_type) if prefix_config is not None: - pulumi.set(__self__, "prefix_config", prefix_config) + _setter("prefix_config", prefix_config) if preserve_source_data_typing is not None: - pulumi.set(__self__, "preserve_source_data_typing", preserve_source_data_typing) + _setter("preserve_source_data_typing", preserve_source_data_typing) @property @pulumi.getter(name="aggregationConfig") @@ -4019,8 +5540,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] aggregation_type: Whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated. Valid values are `None` and `SingleFile`. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigAggregationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aggregation_type=aggregation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aggregation_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aggregation_type is None and 'aggregationType' in kwargs: + aggregation_type = kwargs['aggregationType'] + if aggregation_type is not None: - pulumi.set(__self__, "aggregation_type", aggregation_type) + _setter("aggregation_type", aggregation_type) @property @pulumi.getter(name="aggregationType") @@ -4044,10 +5578,27 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix_format: Determines the level of granularity that's included in the prefix. Valid values are `YEAR`, `MONTH`, `DAY`, `HOUR`, and `MINUTE`. :param pulumi.Input[str] prefix_type: Determines the format of the prefix, and whether it applies to the file name, file path, or both. Valid values are `FILENAME`, `PATH`, and `PATH_AND_FILENAME`. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPrefixConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix_format=prefix_format, + prefix_type=prefix_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix_format: Optional[pulumi.Input[str]] = None, + prefix_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_format is None and 'prefixFormat' in kwargs: + prefix_format = kwargs['prefixFormat'] + if prefix_type is None and 'prefixType' in kwargs: + prefix_type = kwargs['prefixType'] + if prefix_format is not None: - pulumi.set(__self__, "prefix_format", prefix_format) + _setter("prefix_format", prefix_format) if prefix_type is not None: - pulumi.set(__self__, "prefix_type", prefix_type) + _setter("prefix_type", prefix_type) @property @pulumi.getter(name="prefixFormat") @@ -4083,17 +5634,42 @@ def __init__(__self__, *, write_operation_type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] object: Object specified in the flow destination. - :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. :param pulumi.Input[Sequence[pulumi.Input[str]]] id_field_names: Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. :param pulumi.Input[str] write_operation_type: Type of write operation to be performed in the custom connector when it's used as destination. Valid values are `INSERT`, `UPSERT`, `UPDATE`, and `DELETE`. """ - pulumi.set(__self__, "object", object) + FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + id_field_names=id_field_names, + write_operation_type=write_operation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigArgs']] = None, + id_field_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + write_operation_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + if id_field_names is None and 'idFieldNames' in kwargs: + id_field_names = kwargs['idFieldNames'] + if write_operation_type is None and 'writeOperationType' in kwargs: + write_operation_type = kwargs['writeOperationType'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) if id_field_names is not None: - pulumi.set(__self__, "id_field_names", id_field_names) + _setter("id_field_names", id_field_names) if write_operation_type is not None: - pulumi.set(__self__, "write_operation_type", write_operation_type) + _setter("write_operation_type", write_operation_type) @property @pulumi.getter @@ -4111,7 +5687,7 @@ def object(self, value: pulumi.Input[str]): @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigArgs']]: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -4155,12 +5731,33 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input[bool] fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + fail_on_first_destination_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -4209,20 +5806,51 @@ def __init__(__self__, *, write_operation_type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] object_path: Object path specified in the SAPOData flow destination. - :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. :param pulumi.Input[Sequence[pulumi.Input[str]]] id_field_names: Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataSuccessResponseHandlingConfigArgs'] success_response_handling_config: Determines how Amazon AppFlow handles the success response that it gets from the connector after placing data. See Success Response Handling Config for more details. :param pulumi.Input[str] write_operation_type: Type of write operation to be performed in the custom connector when it's used as destination. Valid values are `INSERT`, `UPSERT`, `UPDATE`, and `DELETE`. """ - pulumi.set(__self__, "object_path", object_path) + FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_path=object_path, + error_handling_config=error_handling_config, + id_field_names=id_field_names, + success_response_handling_config=success_response_handling_config, + write_operation_type=write_operation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_path: Optional[pulumi.Input[str]] = None, + error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigArgs']] = None, + id_field_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + success_response_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataSuccessResponseHandlingConfigArgs']] = None, + write_operation_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_path is None and 'objectPath' in kwargs: + object_path = kwargs['objectPath'] + if object_path is None: + raise TypeError("Missing 'object_path' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + if id_field_names is None and 'idFieldNames' in kwargs: + id_field_names = kwargs['idFieldNames'] + if success_response_handling_config is None and 'successResponseHandlingConfig' in kwargs: + success_response_handling_config = kwargs['successResponseHandlingConfig'] + if write_operation_type is None and 'writeOperationType' in kwargs: + write_operation_type = kwargs['writeOperationType'] + + _setter("object_path", object_path) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) if id_field_names is not None: - pulumi.set(__self__, "id_field_names", id_field_names) + _setter("id_field_names", id_field_names) if success_response_handling_config is not None: - pulumi.set(__self__, "success_response_handling_config", success_response_handling_config) + _setter("success_response_handling_config", success_response_handling_config) if write_operation_type is not None: - pulumi.set(__self__, "write_operation_type", write_operation_type) + _setter("write_operation_type", write_operation_type) @property @pulumi.getter(name="objectPath") @@ -4240,7 +5868,7 @@ def object_path(self, value: pulumi.Input[str]): @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigArgs']]: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -4296,12 +5924,33 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input[bool] fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + fail_on_first_destination_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -4349,10 +5998,27 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_name: Name of the Amazon S3 bucket. :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataSuccessResponseHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) @property @pulumi.getter(name="bucketName") @@ -4389,15 +6055,42 @@ def __init__(__self__, *, """ :param pulumi.Input[str] intermediate_bucket_name: Intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift. :param pulumi.Input[str] object: Object specified in the flow destination. - :param pulumi.Input[str] bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. - :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. - """ - pulumi.set(__self__, "intermediate_bucket_name", intermediate_bucket_name) - pulumi.set(__self__, "object", object) + :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. + :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. + """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + intermediate_bucket_name=intermediate_bucket_name, + object=object, + bucket_prefix=bucket_prefix, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + intermediate_bucket_name: Optional[pulumi.Input[str]] = None, + object: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if intermediate_bucket_name is None and 'intermediateBucketName' in kwargs: + intermediate_bucket_name = kwargs['intermediateBucketName'] + if intermediate_bucket_name is None: + raise TypeError("Missing 'intermediate_bucket_name' argument") + if object is None: + raise TypeError("Missing 'object' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("intermediate_bucket_name", intermediate_bucket_name) + _setter("object", object) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter(name="intermediateBucketName") @@ -4427,7 +6120,7 @@ def object(self, value: pulumi.Input[str]): @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[pulumi.Input[str]]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -4439,7 +6132,7 @@ def bucket_prefix(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigArgs']]: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -4459,12 +6152,33 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input[bool] fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + fail_on_first_destination_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -4510,20 +6224,45 @@ def __init__(__self__, *, s3_output_format_config: pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigArgs'], bucket_prefix: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] bucket_name: Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + :param pulumi.Input[str] bucket_name: Name of the Amazon S3 bucket. :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigArgs'] s3_output_format_config: Configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination. See S3 Output Format Config for more details. - :param pulumi.Input[str] bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. + :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "s3_output_format_config", s3_output_format_config) + FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + s3_output_format_config=s3_output_format_config, + bucket_prefix=bucket_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + s3_output_format_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigArgs']] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if s3_output_format_config is None and 's3OutputFormatConfig' in kwargs: + s3_output_format_config = kwargs['s3OutputFormatConfig'] + if s3_output_format_config is None: + raise TypeError("Missing 's3_output_format_config' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + + _setter("bucket_name", bucket_name) + _setter("s3_output_format_config", s3_output_format_config) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) @property @pulumi.getter(name="bucketName") def bucket_name(self) -> pulumi.Input[str]: """ - Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + Name of the Amazon S3 bucket. """ return pulumi.get(self, "bucket_name") @@ -4547,7 +6286,7 @@ def s3_output_format_config(self, value: pulumi.Input['FlowDestinationFlowConfig @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[pulumi.Input[str]]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -4567,11 +6306,34 @@ def __init__(__self__, *, :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigAggregationConfigArgs'] aggregation_config: Aggregation settings that you can use to customize the output format of your flow data. See Aggregation Config for more details. :param pulumi.Input[str] file_type: File type that Amazon AppFlow places in the Amazon S3 bucket. Valid values are `CSV`, `JSON`, and `PARQUET`. """ - pulumi.set(__self__, "prefix_config", prefix_config) + FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix_config=prefix_config, + aggregation_config=aggregation_config, + file_type=file_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigPrefixConfigArgs']] = None, + aggregation_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigAggregationConfigArgs']] = None, + file_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_config is None and 'prefixConfig' in kwargs: + prefix_config = kwargs['prefixConfig'] + if prefix_config is None: + raise TypeError("Missing 'prefix_config' argument") + if aggregation_config is None and 'aggregationConfig' in kwargs: + aggregation_config = kwargs['aggregationConfig'] + if file_type is None and 'fileType' in kwargs: + file_type = kwargs['fileType'] + + _setter("prefix_config", prefix_config) if aggregation_config is not None: - pulumi.set(__self__, "aggregation_config", aggregation_config) + _setter("aggregation_config", aggregation_config) if file_type is not None: - pulumi.set(__self__, "file_type", file_type) + _setter("file_type", file_type) @property @pulumi.getter(name="prefixConfig") @@ -4617,8 +6379,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] aggregation_type: Whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated. Valid values are `None` and `SingleFile`. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigAggregationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aggregation_type=aggregation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aggregation_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aggregation_type is None and 'aggregationType' in kwargs: + aggregation_type = kwargs['aggregationType'] + if aggregation_type is not None: - pulumi.set(__self__, "aggregation_type", aggregation_type) + _setter("aggregation_type", aggregation_type) @property @pulumi.getter(name="aggregationType") @@ -4642,9 +6417,28 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix_type: Determines the format of the prefix, and whether it applies to the file name, file path, or both. Valid values are `FILENAME`, `PATH`, and `PATH_AND_FILENAME`. :param pulumi.Input[str] prefix_format: Determines the level of granularity that's included in the prefix. Valid values are `YEAR`, `MONTH`, `DAY`, `HOUR`, and `MINUTE`. """ - pulumi.set(__self__, "prefix_type", prefix_type) + FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigPrefixConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix_type=prefix_type, + prefix_format=prefix_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix_type: Optional[pulumi.Input[str]] = None, + prefix_format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_type is None and 'prefixType' in kwargs: + prefix_type = kwargs['prefixType'] + if prefix_type is None: + raise TypeError("Missing 'prefix_type' argument") + if prefix_format is None and 'prefixFormat' in kwargs: + prefix_format = kwargs['prefixFormat'] + + _setter("prefix_type", prefix_type) if prefix_format is not None: - pulumi.set(__self__, "prefix_format", prefix_format) + _setter("prefix_format", prefix_format) @property @pulumi.getter(name="prefixType") @@ -4680,17 +6474,42 @@ def __init__(__self__, *, write_operation_type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] object: Object specified in the flow destination. - :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigArgs'] error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. :param pulumi.Input[Sequence[pulumi.Input[str]]] id_field_names: Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. :param pulumi.Input[str] write_operation_type: Type of write operation to be performed in the custom connector when it's used as destination. Valid values are `INSERT`, `UPSERT`, `UPDATE`, and `DELETE`. """ - pulumi.set(__self__, "object", object) + FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + id_field_names=id_field_names, + write_operation_type=write_operation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + error_handling_config: Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigArgs']] = None, + id_field_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + write_operation_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + if id_field_names is None and 'idFieldNames' in kwargs: + id_field_names = kwargs['idFieldNames'] + if write_operation_type is None and 'writeOperationType' in kwargs: + write_operation_type = kwargs['writeOperationType'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) if id_field_names is not None: - pulumi.set(__self__, "id_field_names", id_field_names) + _setter("id_field_names", id_field_names) if write_operation_type is not None: - pulumi.set(__self__, "write_operation_type", write_operation_type) + _setter("write_operation_type", write_operation_type) @property @pulumi.getter @@ -4708,7 +6527,7 @@ def object(self, value: pulumi.Input[str]): @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional[pulumi.Input['FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigArgs']]: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -4752,12 +6571,33 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input[bool] fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + fail_on_first_destination_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -4811,14 +6651,47 @@ def __init__(__self__, *, :param pulumi.Input[str] connector_profile_name: Name of the connector profile. This name must be unique for each connector profile in the AWS account. :param pulumi.Input['FlowSourceFlowConfigIncrementalPullConfigArgs'] incremental_pull_config: Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. See Incremental Pull Config for more details. """ - pulumi.set(__self__, "connector_type", connector_type) - pulumi.set(__self__, "source_connector_properties", source_connector_properties) + FlowSourceFlowConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connector_type=connector_type, + source_connector_properties=source_connector_properties, + api_version=api_version, + connector_profile_name=connector_profile_name, + incremental_pull_config=incremental_pull_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connector_type: Optional[pulumi.Input[str]] = None, + source_connector_properties: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesArgs']] = None, + api_version: Optional[pulumi.Input[str]] = None, + connector_profile_name: Optional[pulumi.Input[str]] = None, + incremental_pull_config: Optional[pulumi.Input['FlowSourceFlowConfigIncrementalPullConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connector_type is None and 'connectorType' in kwargs: + connector_type = kwargs['connectorType'] + if connector_type is None: + raise TypeError("Missing 'connector_type' argument") + if source_connector_properties is None and 'sourceConnectorProperties' in kwargs: + source_connector_properties = kwargs['sourceConnectorProperties'] + if source_connector_properties is None: + raise TypeError("Missing 'source_connector_properties' argument") + if api_version is None and 'apiVersion' in kwargs: + api_version = kwargs['apiVersion'] + if connector_profile_name is None and 'connectorProfileName' in kwargs: + connector_profile_name = kwargs['connectorProfileName'] + if incremental_pull_config is None and 'incrementalPullConfig' in kwargs: + incremental_pull_config = kwargs['incrementalPullConfig'] + + _setter("connector_type", connector_type) + _setter("source_connector_properties", source_connector_properties) if api_version is not None: - pulumi.set(__self__, "api_version", api_version) + _setter("api_version", api_version) if connector_profile_name is not None: - pulumi.set(__self__, "connector_profile_name", connector_profile_name) + _setter("connector_profile_name", connector_profile_name) if incremental_pull_config is not None: - pulumi.set(__self__, "incremental_pull_config", incremental_pull_config) + _setter("incremental_pull_config", incremental_pull_config) @property @pulumi.getter(name="connectorType") @@ -4888,8 +6761,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] datetime_type_field_name: Field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source. """ + FlowSourceFlowConfigIncrementalPullConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + datetime_type_field_name=datetime_type_field_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + datetime_type_field_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if datetime_type_field_name is None and 'datetimeTypeFieldName' in kwargs: + datetime_type_field_name = kwargs['datetimeTypeFieldName'] + if datetime_type_field_name is not None: - pulumi.set(__self__, "datetime_type_field_name", datetime_type_field_name) + _setter("datetime_type_field_name", datetime_type_field_name) @property @pulumi.getter(name="datetimeTypeFieldName") @@ -4941,38 +6827,89 @@ def __init__(__self__, *, :param pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesVeevaArgs'] veeva: Information that is required for querying Veeva. See Veeva Source Properties for more details. :param pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesZendeskArgs'] zendesk: Information that is required for querying Zendesk. See Generic Source Properties for more details. """ + FlowSourceFlowConfigSourceConnectorPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amplitude=amplitude, + custom_connector=custom_connector, + datadog=datadog, + dynatrace=dynatrace, + google_analytics=google_analytics, + infor_nexus=infor_nexus, + marketo=marketo, + s3=s3, + salesforce=salesforce, + sapo_data=sapo_data, + service_now=service_now, + singular=singular, + slack=slack, + trendmicro=trendmicro, + veeva=veeva, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amplitude: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesAmplitudeArgs']] = None, + custom_connector: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesCustomConnectorArgs']] = None, + datadog: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesDatadogArgs']] = None, + dynatrace: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesDynatraceArgs']] = None, + google_analytics: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesGoogleAnalyticsArgs']] = None, + infor_nexus: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesInforNexusArgs']] = None, + marketo: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesMarketoArgs']] = None, + s3: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesS3Args']] = None, + salesforce: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesSalesforceArgs']] = None, + sapo_data: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesSapoDataArgs']] = None, + service_now: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesServiceNowArgs']] = None, + singular: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesSingularArgs']] = None, + slack: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesSlackArgs']] = None, + trendmicro: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesTrendmicroArgs']] = None, + veeva: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesVeevaArgs']] = None, + zendesk: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesZendeskArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if google_analytics is None and 'googleAnalytics' in kwargs: + google_analytics = kwargs['googleAnalytics'] + if infor_nexus is None and 'inforNexus' in kwargs: + infor_nexus = kwargs['inforNexus'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if amplitude is not None: - pulumi.set(__self__, "amplitude", amplitude) + _setter("amplitude", amplitude) if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if datadog is not None: - pulumi.set(__self__, "datadog", datadog) + _setter("datadog", datadog) if dynatrace is not None: - pulumi.set(__self__, "dynatrace", dynatrace) + _setter("dynatrace", dynatrace) if google_analytics is not None: - pulumi.set(__self__, "google_analytics", google_analytics) + _setter("google_analytics", google_analytics) if infor_nexus is not None: - pulumi.set(__self__, "infor_nexus", infor_nexus) + _setter("infor_nexus", infor_nexus) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if singular is not None: - pulumi.set(__self__, "singular", singular) + _setter("singular", singular) if slack is not None: - pulumi.set(__self__, "slack", slack) + _setter("slack", slack) if trendmicro is not None: - pulumi.set(__self__, "trendmicro", trendmicro) + _setter("trendmicro", trendmicro) if veeva is not None: - pulumi.set(__self__, "veeva", veeva) + _setter("veeva", veeva) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter @@ -5174,7 +7111,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesAmplitudeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5198,9 +7148,28 @@ def __init__(__self__, *, :param pulumi.Input[str] entity_name: Entity specified in the custom connector as a destination in the flow. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_properties: Custom properties that are specific to the connector when it's used as a destination in the flow. Maximum of 50 items. """ - pulumi.set(__self__, "entity_name", entity_name) + FlowSourceFlowConfigSourceConnectorPropertiesCustomConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_name=entity_name, + custom_properties=custom_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_name: Optional[pulumi.Input[str]] = None, + custom_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_name is None and 'entityName' in kwargs: + entity_name = kwargs['entityName'] + if entity_name is None: + raise TypeError("Missing 'entity_name' argument") + if custom_properties is None and 'customProperties' in kwargs: + custom_properties = kwargs['customProperties'] + + _setter("entity_name", entity_name) if custom_properties is not None: - pulumi.set(__self__, "custom_properties", custom_properties) + _setter("custom_properties", custom_properties) @property @pulumi.getter(name="entityName") @@ -5234,7 +7203,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesDatadogArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5256,7 +7238,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesDynatraceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5278,7 +7273,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesGoogleAnalyticsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5300,7 +7308,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesInforNexusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5322,7 +7343,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesMarketoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5344,21 +7378,44 @@ def __init__(__self__, *, bucket_prefix: Optional[pulumi.Input[str]] = None, s3_input_format_config: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfigArgs']] = None): """ - :param pulumi.Input[str] bucket_name: Amazon S3 bucket name in which Amazon AppFlow places the transferred data. - :param pulumi.Input[str] bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. + :param pulumi.Input[str] bucket_name: Name of the Amazon S3 bucket. + :param pulumi.Input[str] bucket_prefix: Amazon S3 bucket prefix. :param pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfigArgs'] s3_input_format_config: When you use Amazon S3 as the source, the configuration format that you provide the flow input data. See S3 Input Format Config for details. """ - pulumi.set(__self__, "bucket_name", bucket_name) + FlowSourceFlowConfigSourceConnectorPropertiesS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + s3_input_format_config=s3_input_format_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + s3_input_format_config: Optional[pulumi.Input['FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if s3_input_format_config is None and 's3InputFormatConfig' in kwargs: + s3_input_format_config = kwargs['s3InputFormatConfig'] + + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if s3_input_format_config is not None: - pulumi.set(__self__, "s3_input_format_config", s3_input_format_config) + _setter("s3_input_format_config", s3_input_format_config) @property @pulumi.getter(name="bucketName") def bucket_name(self) -> pulumi.Input[str]: """ - Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + Name of the Amazon S3 bucket. """ return pulumi.get(self, "bucket_name") @@ -5370,7 +7427,7 @@ def bucket_name(self, value: pulumi.Input[str]): @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[pulumi.Input[str]]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -5398,8 +7455,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] s3_input_file_type: File type that Amazon AppFlow gets from your Amazon S3 bucket. Valid values are `CSV` and `JSON`. """ + FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_input_file_type=s3_input_file_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_input_file_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_input_file_type is None and 's3InputFileType' in kwargs: + s3_input_file_type = kwargs['s3InputFileType'] + if s3_input_file_type is not None: - pulumi.set(__self__, "s3_input_file_type", s3_input_file_type) + _setter("s3_input_file_type", s3_input_file_type) @property @pulumi.getter(name="s3InputFileType") @@ -5425,11 +7495,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_dynamic_field_update: Flag that enables dynamic fetching of new (recently added) fields in the Salesforce objects while running a flow. :param pulumi.Input[bool] include_deleted_records: Whether Amazon AppFlow includes deleted files in the flow run. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesSalesforceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + enable_dynamic_field_update=enable_dynamic_field_update, + include_deleted_records=include_deleted_records, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + enable_dynamic_field_update: Optional[pulumi.Input[bool]] = None, + include_deleted_records: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if enable_dynamic_field_update is None and 'enableDynamicFieldUpdate' in kwargs: + enable_dynamic_field_update = kwargs['enableDynamicFieldUpdate'] + if include_deleted_records is None and 'includeDeletedRecords' in kwargs: + include_deleted_records = kwargs['includeDeletedRecords'] + + _setter("object", object) if enable_dynamic_field_update is not None: - pulumi.set(__self__, "enable_dynamic_field_update", enable_dynamic_field_update) + _setter("enable_dynamic_field_update", enable_dynamic_field_update) if include_deleted_records is not None: - pulumi.set(__self__, "include_deleted_records", include_deleted_records) + _setter("include_deleted_records", include_deleted_records) @property @pulumi.getter @@ -5475,7 +7566,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object_path: Object path specified in the SAPOData flow destination. """ - pulumi.set(__self__, "object_path", object_path) + FlowSourceFlowConfigSourceConnectorPropertiesSapoDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_path=object_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_path is None and 'objectPath' in kwargs: + object_path = kwargs['objectPath'] + if object_path is None: + raise TypeError("Missing 'object_path' argument") + + _setter("object_path", object_path) @property @pulumi.getter(name="objectPath") @@ -5497,7 +7603,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesServiceNowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5519,7 +7638,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesSingularArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5541,7 +7673,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesSlackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5563,7 +7708,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesTrendmicroArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5593,15 +7751,44 @@ def __init__(__self__, *, :param pulumi.Input[bool] include_renditions: Boolean value to include file renditions in Veeva document extract flow. :param pulumi.Input[bool] include_source_files: Boolean value to include source files in Veeva document extract flow. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesVeevaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + document_type=document_type, + include_all_versions=include_all_versions, + include_renditions=include_renditions, + include_source_files=include_source_files, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + document_type: Optional[pulumi.Input[str]] = None, + include_all_versions: Optional[pulumi.Input[bool]] = None, + include_renditions: Optional[pulumi.Input[bool]] = None, + include_source_files: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if document_type is None and 'documentType' in kwargs: + document_type = kwargs['documentType'] + if include_all_versions is None and 'includeAllVersions' in kwargs: + include_all_versions = kwargs['includeAllVersions'] + if include_renditions is None and 'includeRenditions' in kwargs: + include_renditions = kwargs['includeRenditions'] + if include_source_files is None and 'includeSourceFiles' in kwargs: + include_source_files = kwargs['includeSourceFiles'] + + _setter("object", object) if document_type is not None: - pulumi.set(__self__, "document_type", document_type) + _setter("document_type", document_type) if include_all_versions is not None: - pulumi.set(__self__, "include_all_versions", include_all_versions) + _setter("include_all_versions", include_all_versions) if include_renditions is not None: - pulumi.set(__self__, "include_renditions", include_renditions) + _setter("include_renditions", include_renditions) if include_source_files is not None: - pulumi.set(__self__, "include_source_files", include_source_files) + _setter("include_source_files", include_source_files) @property @pulumi.getter @@ -5671,7 +7858,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesZendeskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5701,14 +7901,47 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_field: Field in a destination connector, or a field value against which Amazon AppFlow validates a source field. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] task_properties: Map used to store task-related information. The execution service looks for particular information based on the `TaskType`. Valid keys are `VALUE`, `VALUES`, `DATA_TYPE`, `UPPER_BOUND`, `LOWER_BOUND`, `SOURCE_DATA_TYPE`, `DESTINATION_DATA_TYPE`, `VALIDATION_ACTION`, `MASK_VALUE`, `MASK_LENGTH`, `TRUNCATE_LENGTH`, `MATH_OPERATION_FIELDS_ORDER`, `CONCAT_FORMAT`, `SUBFIELD_CATEGORY_MAP`, and `EXCLUDE_SOURCE_FIELDS_LIST`. """ - pulumi.set(__self__, "source_fields", source_fields) - pulumi.set(__self__, "task_type", task_type) + FlowTaskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_fields=source_fields, + task_type=task_type, + connector_operators=connector_operators, + destination_field=destination_field, + task_properties=task_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + task_type: Optional[pulumi.Input[str]] = None, + connector_operators: Optional[pulumi.Input[Sequence[pulumi.Input['FlowTaskConnectorOperatorArgs']]]] = None, + destination_field: Optional[pulumi.Input[str]] = None, + task_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_fields is None and 'sourceFields' in kwargs: + source_fields = kwargs['sourceFields'] + if source_fields is None: + raise TypeError("Missing 'source_fields' argument") + if task_type is None and 'taskType' in kwargs: + task_type = kwargs['taskType'] + if task_type is None: + raise TypeError("Missing 'task_type' argument") + if connector_operators is None and 'connectorOperators' in kwargs: + connector_operators = kwargs['connectorOperators'] + if destination_field is None and 'destinationField' in kwargs: + destination_field = kwargs['destinationField'] + if task_properties is None and 'taskProperties' in kwargs: + task_properties = kwargs['taskProperties'] + + _setter("source_fields", source_fields) + _setter("task_type", task_type) if connector_operators is not None: - pulumi.set(__self__, "connector_operators", connector_operators) + _setter("connector_operators", connector_operators) if destination_field is not None: - pulumi.set(__self__, "destination_field", destination_field) + _setter("destination_field", destination_field) if task_properties is not None: - pulumi.set(__self__, "task_properties", task_properties) + _setter("task_properties", task_properties) @property @pulumi.getter(name="sourceFields") @@ -5808,38 +8041,89 @@ def __init__(__self__, *, :param pulumi.Input[str] veeva: Operation to be performed on the provided Veeva source fields. Valid values are `PROJECTION`, `LESS_THAN`, `GREATER_THAN`, `CONTAINS`, `BETWEEN`, `LESS_THAN_OR_EQUAL_TO`, `GREATER_THAN_OR_EQUAL_TO`, `EQUAL_TO`, `NOT_EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`. :param pulumi.Input[str] zendesk: Operation to be performed on the provided Zendesk source fields. Valid values are `PROJECTION`, `GREATER_THAN`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`. """ + FlowTaskConnectorOperatorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amplitude=amplitude, + custom_connector=custom_connector, + datadog=datadog, + dynatrace=dynatrace, + google_analytics=google_analytics, + infor_nexus=infor_nexus, + marketo=marketo, + s3=s3, + salesforce=salesforce, + sapo_data=sapo_data, + service_now=service_now, + singular=singular, + slack=slack, + trendmicro=trendmicro, + veeva=veeva, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amplitude: Optional[pulumi.Input[str]] = None, + custom_connector: Optional[pulumi.Input[str]] = None, + datadog: Optional[pulumi.Input[str]] = None, + dynatrace: Optional[pulumi.Input[str]] = None, + google_analytics: Optional[pulumi.Input[str]] = None, + infor_nexus: Optional[pulumi.Input[str]] = None, + marketo: Optional[pulumi.Input[str]] = None, + s3: Optional[pulumi.Input[str]] = None, + salesforce: Optional[pulumi.Input[str]] = None, + sapo_data: Optional[pulumi.Input[str]] = None, + service_now: Optional[pulumi.Input[str]] = None, + singular: Optional[pulumi.Input[str]] = None, + slack: Optional[pulumi.Input[str]] = None, + trendmicro: Optional[pulumi.Input[str]] = None, + veeva: Optional[pulumi.Input[str]] = None, + zendesk: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if google_analytics is None and 'googleAnalytics' in kwargs: + google_analytics = kwargs['googleAnalytics'] + if infor_nexus is None and 'inforNexus' in kwargs: + infor_nexus = kwargs['inforNexus'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if amplitude is not None: - pulumi.set(__self__, "amplitude", amplitude) + _setter("amplitude", amplitude) if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if datadog is not None: - pulumi.set(__self__, "datadog", datadog) + _setter("datadog", datadog) if dynatrace is not None: - pulumi.set(__self__, "dynatrace", dynatrace) + _setter("dynatrace", dynatrace) if google_analytics is not None: - pulumi.set(__self__, "google_analytics", google_analytics) + _setter("google_analytics", google_analytics) if infor_nexus is not None: - pulumi.set(__self__, "infor_nexus", infor_nexus) + _setter("infor_nexus", infor_nexus) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if singular is not None: - pulumi.set(__self__, "singular", singular) + _setter("singular", singular) if slack is not None: - pulumi.set(__self__, "slack", slack) + _setter("slack", slack) if trendmicro is not None: - pulumi.set(__self__, "trendmicro", trendmicro) + _setter("trendmicro", trendmicro) if veeva is not None: - pulumi.set(__self__, "veeva", veeva) + _setter("veeva", veeva) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter @@ -6043,9 +8327,28 @@ def __init__(__self__, *, :param pulumi.Input[str] trigger_type: Type of flow trigger. Valid values are `Scheduled`, `Event`, and `OnDemand`. :param pulumi.Input['FlowTriggerConfigTriggerPropertiesArgs'] trigger_properties: Configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the `Scheduled` trigger type. See Scheduled Trigger Properties for details. """ - pulumi.set(__self__, "trigger_type", trigger_type) + FlowTriggerConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + trigger_type=trigger_type, + trigger_properties=trigger_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trigger_type: Optional[pulumi.Input[str]] = None, + trigger_properties: Optional[pulumi.Input['FlowTriggerConfigTriggerPropertiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trigger_type is None and 'triggerType' in kwargs: + trigger_type = kwargs['triggerType'] + if trigger_type is None: + raise TypeError("Missing 'trigger_type' argument") + if trigger_properties is None and 'triggerProperties' in kwargs: + trigger_properties = kwargs['triggerProperties'] + + _setter("trigger_type", trigger_type) if trigger_properties is not None: - pulumi.set(__self__, "trigger_properties", trigger_properties) + _setter("trigger_properties", trigger_properties) @property @pulumi.getter(name="triggerType") @@ -6076,8 +8379,19 @@ def trigger_properties(self, value: Optional[pulumi.Input['FlowTriggerConfigTrig class FlowTriggerConfigTriggerPropertiesArgs: def __init__(__self__, *, scheduled: Optional[pulumi.Input['FlowTriggerConfigTriggerPropertiesScheduledArgs']] = None): + FlowTriggerConfigTriggerPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + scheduled=scheduled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scheduled: Optional[pulumi.Input['FlowTriggerConfigTriggerPropertiesScheduledArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scheduled is not None: - pulumi.set(__self__, "scheduled", scheduled) + _setter("scheduled", scheduled) @property @pulumi.getter @@ -6108,19 +8422,56 @@ def __init__(__self__, *, :param pulumi.Input[str] schedule_start_time: Scheduled start time for a schedule-triggered flow. Must be a valid RFC3339 timestamp. :param pulumi.Input[str] timezone: Time zone used when referring to the date and time of a scheduled-triggered flow, such as `America/New_York`. """ - pulumi.set(__self__, "schedule_expression", schedule_expression) + FlowTriggerConfigTriggerPropertiesScheduledArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + schedule_expression=schedule_expression, + data_pull_mode=data_pull_mode, + first_execution_from=first_execution_from, + schedule_end_time=schedule_end_time, + schedule_offset=schedule_offset, + schedule_start_time=schedule_start_time, + timezone=timezone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schedule_expression: Optional[pulumi.Input[str]] = None, + data_pull_mode: Optional[pulumi.Input[str]] = None, + first_execution_from: Optional[pulumi.Input[str]] = None, + schedule_end_time: Optional[pulumi.Input[str]] = None, + schedule_offset: Optional[pulumi.Input[int]] = None, + schedule_start_time: Optional[pulumi.Input[str]] = None, + timezone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + if data_pull_mode is None and 'dataPullMode' in kwargs: + data_pull_mode = kwargs['dataPullMode'] + if first_execution_from is None and 'firstExecutionFrom' in kwargs: + first_execution_from = kwargs['firstExecutionFrom'] + if schedule_end_time is None and 'scheduleEndTime' in kwargs: + schedule_end_time = kwargs['scheduleEndTime'] + if schedule_offset is None and 'scheduleOffset' in kwargs: + schedule_offset = kwargs['scheduleOffset'] + if schedule_start_time is None and 'scheduleStartTime' in kwargs: + schedule_start_time = kwargs['scheduleStartTime'] + + _setter("schedule_expression", schedule_expression) if data_pull_mode is not None: - pulumi.set(__self__, "data_pull_mode", data_pull_mode) + _setter("data_pull_mode", data_pull_mode) if first_execution_from is not None: - pulumi.set(__self__, "first_execution_from", first_execution_from) + _setter("first_execution_from", first_execution_from) if schedule_end_time is not None: - pulumi.set(__self__, "schedule_end_time", schedule_end_time) + _setter("schedule_end_time", schedule_end_time) if schedule_offset is not None: - pulumi.set(__self__, "schedule_offset", schedule_offset) + _setter("schedule_offset", schedule_offset) if schedule_start_time is not None: - pulumi.set(__self__, "schedule_start_time", schedule_start_time) + _setter("schedule_start_time", schedule_start_time) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) @property @pulumi.getter(name="scheduleExpression") diff --git a/sdk/python/pulumi_aws/appflow/connector_profile.py b/sdk/python/pulumi_aws/appflow/connector_profile.py index 62a84bbdf18..c3225b1fd5f 100644 --- a/sdk/python/pulumi_aws/appflow/connector_profile.py +++ b/sdk/python/pulumi_aws/appflow/connector_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -30,15 +30,52 @@ def __init__(__self__, *, :param pulumi.Input[str] connector_label: The label of the connector. The label is unique for each ConnectorRegistration in your AWS account. Only needed if calling for `CustomConnector` connector type. :param pulumi.Input[str] kms_arn: ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key. """ - pulumi.set(__self__, "connection_mode", connection_mode) - pulumi.set(__self__, "connector_profile_config", connector_profile_config) - pulumi.set(__self__, "connector_type", connector_type) + ConnectorProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_mode=connection_mode, + connector_profile_config=connector_profile_config, + connector_type=connector_type, + connector_label=connector_label, + kms_arn=kms_arn, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_mode: Optional[pulumi.Input[str]] = None, + connector_profile_config: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigArgs']] = None, + connector_type: Optional[pulumi.Input[str]] = None, + connector_label: Optional[pulumi.Input[str]] = None, + kms_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_mode is None and 'connectionMode' in kwargs: + connection_mode = kwargs['connectionMode'] + if connection_mode is None: + raise TypeError("Missing 'connection_mode' argument") + if connector_profile_config is None and 'connectorProfileConfig' in kwargs: + connector_profile_config = kwargs['connectorProfileConfig'] + if connector_profile_config is None: + raise TypeError("Missing 'connector_profile_config' argument") + if connector_type is None and 'connectorType' in kwargs: + connector_type = kwargs['connectorType'] + if connector_type is None: + raise TypeError("Missing 'connector_type' argument") + if connector_label is None and 'connectorLabel' in kwargs: + connector_label = kwargs['connectorLabel'] + if kms_arn is None and 'kmsArn' in kwargs: + kms_arn = kwargs['kmsArn'] + + _setter("connection_mode", connection_mode) + _setter("connector_profile_config", connector_profile_config) + _setter("connector_type", connector_type) if connector_label is not None: - pulumi.set(__self__, "connector_label", connector_label) + _setter("connector_label", connector_label) if kms_arn is not None: - pulumi.set(__self__, "kms_arn", kms_arn) + _setter("kms_arn", kms_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="connectionMode") @@ -131,22 +168,59 @@ def __init__(__self__, *, :param pulumi.Input[str] credentials_arn: ARN of the connector profile credentials. :param pulumi.Input[str] kms_arn: ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key. """ + _ConnectorProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + connection_mode=connection_mode, + connector_label=connector_label, + connector_profile_config=connector_profile_config, + connector_type=connector_type, + credentials_arn=credentials_arn, + kms_arn=kms_arn, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + connection_mode: Optional[pulumi.Input[str]] = None, + connector_label: Optional[pulumi.Input[str]] = None, + connector_profile_config: Optional[pulumi.Input['ConnectorProfileConnectorProfileConfigArgs']] = None, + connector_type: Optional[pulumi.Input[str]] = None, + credentials_arn: Optional[pulumi.Input[str]] = None, + kms_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_mode is None and 'connectionMode' in kwargs: + connection_mode = kwargs['connectionMode'] + if connector_label is None and 'connectorLabel' in kwargs: + connector_label = kwargs['connectorLabel'] + if connector_profile_config is None and 'connectorProfileConfig' in kwargs: + connector_profile_config = kwargs['connectorProfileConfig'] + if connector_type is None and 'connectorType' in kwargs: + connector_type = kwargs['connectorType'] + if credentials_arn is None and 'credentialsArn' in kwargs: + credentials_arn = kwargs['credentialsArn'] + if kms_arn is None and 'kmsArn' in kwargs: + kms_arn = kwargs['kmsArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if connection_mode is not None: - pulumi.set(__self__, "connection_mode", connection_mode) + _setter("connection_mode", connection_mode) if connector_label is not None: - pulumi.set(__self__, "connector_label", connector_label) + _setter("connector_label", connector_label) if connector_profile_config is not None: - pulumi.set(__self__, "connector_profile_config", connector_profile_config) + _setter("connector_profile_config", connector_profile_config) if connector_type is not None: - pulumi.set(__self__, "connector_type", connector_type) + _setter("connector_type", connector_type) if credentials_arn is not None: - pulumi.set(__self__, "credentials_arn", credentials_arn) + _setter("credentials_arn", credentials_arn) if kms_arn is not None: - pulumi.set(__self__, "kms_arn", kms_arn) + _setter("kms_arn", kms_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -308,6 +382,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectorProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -332,6 +410,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'connection_mode'") __props__.__dict__["connection_mode"] = connection_mode __props__.__dict__["connector_label"] = connector_label + connector_profile_config = _utilities.configure(connector_profile_config, ConnectorProfileConnectorProfileConfigArgs, True) if connector_profile_config is None and not opts.urn: raise TypeError("Missing required property 'connector_profile_config'") __props__.__dict__["connector_profile_config"] = connector_profile_config diff --git a/sdk/python/pulumi_aws/appflow/flow.py b/sdk/python/pulumi_aws/appflow/flow.py index 4c4c644bb82..5a5d40fb9cc 100644 --- a/sdk/python/pulumi_aws/appflow/flow.py +++ b/sdk/python/pulumi_aws/appflow/flow.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,18 +35,59 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the flow. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "destination_flow_configs", destination_flow_configs) - pulumi.set(__self__, "source_flow_config", source_flow_config) - pulumi.set(__self__, "tasks", tasks) - pulumi.set(__self__, "trigger_config", trigger_config) + FlowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_flow_configs=destination_flow_configs, + source_flow_config=source_flow_config, + tasks=tasks, + trigger_config=trigger_config, + description=description, + kms_arn=kms_arn, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_flow_configs: Optional[pulumi.Input[Sequence[pulumi.Input['FlowDestinationFlowConfigArgs']]]] = None, + source_flow_config: Optional[pulumi.Input['FlowSourceFlowConfigArgs']] = None, + tasks: Optional[pulumi.Input[Sequence[pulumi.Input['FlowTaskArgs']]]] = None, + trigger_config: Optional[pulumi.Input['FlowTriggerConfigArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + kms_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_flow_configs is None and 'destinationFlowConfigs' in kwargs: + destination_flow_configs = kwargs['destinationFlowConfigs'] + if destination_flow_configs is None: + raise TypeError("Missing 'destination_flow_configs' argument") + if source_flow_config is None and 'sourceFlowConfig' in kwargs: + source_flow_config = kwargs['sourceFlowConfig'] + if source_flow_config is None: + raise TypeError("Missing 'source_flow_config' argument") + if tasks is None: + raise TypeError("Missing 'tasks' argument") + if trigger_config is None and 'triggerConfig' in kwargs: + trigger_config = kwargs['triggerConfig'] + if trigger_config is None: + raise TypeError("Missing 'trigger_config' argument") + if kms_arn is None and 'kmsArn' in kwargs: + kms_arn = kwargs['kmsArn'] + + _setter("destination_flow_configs", destination_flow_configs) + _setter("source_flow_config", source_flow_config) + _setter("tasks", tasks) + _setter("trigger_config", trigger_config) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_arn is not None: - pulumi.set(__self__, "kms_arn", kms_arn) + _setter("kms_arn", kms_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="destinationFlowConfigs") @@ -171,29 +212,68 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['FlowTaskArgs']]] tasks: A Task that Amazon AppFlow performs while transferring the data in the flow run. :param pulumi.Input['FlowTriggerConfigArgs'] trigger_config: A Trigger that determine how and when the flow runs. """ + _FlowState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + destination_flow_configs=destination_flow_configs, + kms_arn=kms_arn, + name=name, + source_flow_config=source_flow_config, + tags=tags, + tags_all=tags_all, + tasks=tasks, + trigger_config=trigger_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + destination_flow_configs: Optional[pulumi.Input[Sequence[pulumi.Input['FlowDestinationFlowConfigArgs']]]] = None, + kms_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + source_flow_config: Optional[pulumi.Input['FlowSourceFlowConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tasks: Optional[pulumi.Input[Sequence[pulumi.Input['FlowTaskArgs']]]] = None, + trigger_config: Optional[pulumi.Input['FlowTriggerConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_flow_configs is None and 'destinationFlowConfigs' in kwargs: + destination_flow_configs = kwargs['destinationFlowConfigs'] + if kms_arn is None and 'kmsArn' in kwargs: + kms_arn = kwargs['kmsArn'] + if source_flow_config is None and 'sourceFlowConfig' in kwargs: + source_flow_config = kwargs['sourceFlowConfig'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if trigger_config is None and 'triggerConfig' in kwargs: + trigger_config = kwargs['triggerConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if destination_flow_configs is not None: - pulumi.set(__self__, "destination_flow_configs", destination_flow_configs) + _setter("destination_flow_configs", destination_flow_configs) if kms_arn is not None: - pulumi.set(__self__, "kms_arn", kms_arn) + _setter("kms_arn", kms_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_flow_config is not None: - pulumi.set(__self__, "source_flow_config", source_flow_config) + _setter("source_flow_config", source_flow_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tasks is not None: - pulumi.set(__self__, "tasks", tasks) + _setter("tasks", tasks) if trigger_config is not None: - pulumi.set(__self__, "trigger_config", trigger_config) + _setter("trigger_config", trigger_config) @property @pulumi.getter @@ -562,6 +642,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FlowArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -590,6 +674,7 @@ def _internal_init(__self__, __props__.__dict__["destination_flow_configs"] = destination_flow_configs __props__.__dict__["kms_arn"] = kms_arn __props__.__dict__["name"] = name + source_flow_config = _utilities.configure(source_flow_config, FlowSourceFlowConfigArgs, True) if source_flow_config is None and not opts.urn: raise TypeError("Missing required property 'source_flow_config'") __props__.__dict__["source_flow_config"] = source_flow_config @@ -597,6 +682,7 @@ def _internal_init(__self__, if tasks is None and not opts.urn: raise TypeError("Missing required property 'tasks'") __props__.__dict__["tasks"] = tasks + trigger_config = _utilities.configure(trigger_config, FlowTriggerConfigArgs, True) if trigger_config is None and not opts.urn: raise TypeError("Missing required property 'trigger_config'") __props__.__dict__["trigger_config"] = trigger_config diff --git a/sdk/python/pulumi_aws/appflow/outputs.py b/sdk/python/pulumi_aws/appflow/outputs.py index 7553b52f5a3..056df79f92f 100644 --- a/sdk/python/pulumi_aws/appflow/outputs.py +++ b/sdk/python/pulumi_aws/appflow/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -152,8 +152,29 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs' connector_profile_credentials: The connector-specific credentials required by each connector. See Connector Profile Credentials for more details. :param 'ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs' connector_profile_properties: The connector-specific properties of the profile configuration. See Connector Profile Properties for more details. """ - pulumi.set(__self__, "connector_profile_credentials", connector_profile_credentials) - pulumi.set(__self__, "connector_profile_properties", connector_profile_properties) + ConnectorProfileConnectorProfileConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + connector_profile_credentials=connector_profile_credentials, + connector_profile_properties=connector_profile_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connector_profile_credentials: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentials'] = None, + connector_profile_properties: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileProperties'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connector_profile_credentials is None and 'connectorProfileCredentials' in kwargs: + connector_profile_credentials = kwargs['connectorProfileCredentials'] + if connector_profile_credentials is None: + raise TypeError("Missing 'connector_profile_credentials' argument") + if connector_profile_properties is None and 'connectorProfileProperties' in kwargs: + connector_profile_properties = kwargs['connectorProfileProperties'] + if connector_profile_properties is None: + raise TypeError("Missing 'connector_profile_properties' argument") + + _setter("connector_profile_credentials", connector_profile_credentials) + _setter("connector_profile_properties", connector_profile_properties) @property @pulumi.getter(name="connectorProfileCredentials") @@ -238,42 +259,97 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsVeevaArgs' veeva: Connector-specific credentials required when using Veeva. See Veeva Connector Profile Credentials for more details. :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskArgs' zendesk: Connector-specific credentials required when using Zendesk. See Zendesk Connector Profile Credentials for more details. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentials._configure( + lambda key, value: pulumi.set(__self__, key, value), + amplitude=amplitude, + custom_connector=custom_connector, + datadog=datadog, + dynatrace=dynatrace, + google_analytics=google_analytics, + honeycode=honeycode, + infor_nexus=infor_nexus, + marketo=marketo, + redshift=redshift, + salesforce=salesforce, + sapo_data=sapo_data, + service_now=service_now, + singular=singular, + slack=slack, + snowflake=snowflake, + trendmicro=trendmicro, + veeva=veeva, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amplitude: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsAmplitude'] = None, + custom_connector: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnector'] = None, + datadog: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsDatadog'] = None, + dynatrace: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsDynatrace'] = None, + google_analytics: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalytics'] = None, + honeycode: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycode'] = None, + infor_nexus: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexus'] = None, + marketo: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketo'] = None, + redshift: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshift'] = None, + salesforce: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforce'] = None, + sapo_data: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoData'] = None, + service_now: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsServiceNow'] = None, + singular: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSingular'] = None, + slack: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlack'] = None, + snowflake: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSnowflake'] = None, + trendmicro: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsTrendmicro'] = None, + veeva: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsVeeva'] = None, + zendesk: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendesk'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if google_analytics is None and 'googleAnalytics' in kwargs: + google_analytics = kwargs['googleAnalytics'] + if infor_nexus is None and 'inforNexus' in kwargs: + infor_nexus = kwargs['inforNexus'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if amplitude is not None: - pulumi.set(__self__, "amplitude", amplitude) + _setter("amplitude", amplitude) if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if datadog is not None: - pulumi.set(__self__, "datadog", datadog) + _setter("datadog", datadog) if dynatrace is not None: - pulumi.set(__self__, "dynatrace", dynatrace) + _setter("dynatrace", dynatrace) if google_analytics is not None: - pulumi.set(__self__, "google_analytics", google_analytics) + _setter("google_analytics", google_analytics) if honeycode is not None: - pulumi.set(__self__, "honeycode", honeycode) + _setter("honeycode", honeycode) if infor_nexus is not None: - pulumi.set(__self__, "infor_nexus", infor_nexus) + _setter("infor_nexus", infor_nexus) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if singular is not None: - pulumi.set(__self__, "singular", singular) + _setter("singular", singular) if slack is not None: - pulumi.set(__self__, "slack", slack) + _setter("slack", slack) if snowflake is not None: - pulumi.set(__self__, "snowflake", snowflake) + _setter("snowflake", snowflake) if trendmicro is not None: - pulumi.set(__self__, "trendmicro", trendmicro) + _setter("trendmicro", trendmicro) if veeva is not None: - pulumi.set(__self__, "veeva", veeva) + _setter("veeva", veeva) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter @@ -448,8 +524,29 @@ def __init__(__self__, *, :param str api_key: Unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. :param str secret_key: The Secret Access Key portion of the credentials. """ - pulumi.set(__self__, "api_key", api_key) - pulumi.set(__self__, "secret_key", secret_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsAmplitude._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + secret_key=secret_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[str] = None, + secret_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + if secret_key is None and 'secretKey' in kwargs: + secret_key = kwargs['secretKey'] + if secret_key is None: + raise TypeError("Missing 'secret_key' argument") + + _setter("api_key", api_key) + _setter("secret_key", secret_key) @property @pulumi.getter(name="apiKey") @@ -502,15 +599,40 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorCustomArgs' custom: If the connector uses the custom authentication mechanism, this holds the required credentials. :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2Args' oauth2: OAuth 2.0 credentials required for the authentication of the user. """ - pulumi.set(__self__, "authentication_type", authentication_type) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnector._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + api_key=api_key, + basic=basic, + custom=custom, + oauth2=oauth2, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[str] = None, + api_key: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorApiKey'] = None, + basic: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorBasic'] = None, + custom: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorCustom'] = None, + oauth2: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is None: + raise TypeError("Missing 'authentication_type' argument") + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + + _setter("authentication_type", authentication_type) if api_key is not None: - pulumi.set(__self__, "api_key", api_key) + _setter("api_key", api_key) if basic is not None: - pulumi.set(__self__, "basic", basic) + _setter("basic", basic) if custom is not None: - pulumi.set(__self__, "custom", custom) + _setter("custom", custom) if oauth2 is not None: - pulumi.set(__self__, "oauth2", oauth2) + _setter("oauth2", oauth2) @property @pulumi.getter(name="authenticationType") @@ -581,9 +703,28 @@ def __init__(__self__, *, :param str api_key: Unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. :param str api_secret_key: The API secret key required for API key authentication. """ - pulumi.set(__self__, "api_key", api_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorApiKey._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + api_secret_key=api_secret_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[str] = None, + api_secret_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + if api_secret_key is None and 'apiSecretKey' in kwargs: + api_secret_key = kwargs['apiSecretKey'] + + _setter("api_key", api_key) if api_secret_key is not None: - pulumi.set(__self__, "api_secret_key", api_secret_key) + _setter("api_secret_key", api_secret_key) @property @pulumi.getter(name="apiKey") @@ -611,8 +752,25 @@ def __init__(__self__, *, :param str password: The password to use to connect to a resource. :param str username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorBasic._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -659,9 +817,28 @@ def __init__(__self__, *, :param str custom_authentication_type: The custom authentication type that the connector uses. :param Mapping[str, str] credentials_map: A map that holds custom authentication credentials. """ - pulumi.set(__self__, "custom_authentication_type", custom_authentication_type) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorCustom._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_authentication_type=custom_authentication_type, + credentials_map=credentials_map, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_authentication_type: Optional[str] = None, + credentials_map: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_authentication_type is None and 'customAuthenticationType' in kwargs: + custom_authentication_type = kwargs['customAuthenticationType'] + if custom_authentication_type is None: + raise TypeError("Missing 'custom_authentication_type' argument") + if credentials_map is None and 'credentialsMap' in kwargs: + credentials_map = kwargs['credentialsMap'] + + _setter("custom_authentication_type", custom_authentication_type) if credentials_map is not None: - pulumi.set(__self__, "credentials_map", credentials_map) + _setter("credentials_map", credentials_map) @property @pulumi.getter(name="customAuthenticationType") @@ -720,16 +897,45 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2OauthRequestArgs' oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param str refresh_token: The refresh token used to refresh an expired access token. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + client_id=client_id, + client_secret=client_secret, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[str] = None, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + oauth_request: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2OauthRequest'] = None, + refresh_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if client_secret is not None: - pulumi.set(__self__, "client_secret", client_secret) + _setter("client_secret", client_secret) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -800,10 +1006,27 @@ def __init__(__self__, *, :param str auth_code: The code provided by the connector when it has been authenticated via the connected app. :param str redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsCustomConnectorOauth2OauthRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[str] = None, + redirect_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -850,8 +1073,29 @@ def __init__(__self__, *, :param str api_key: Unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. :param str application_key: Application keys, in conjunction with your API key, give you full access to Datadog’s programmatic API. Application keys are associated with the user account that created them. The application key is used to log all requests made to the API. """ - pulumi.set(__self__, "api_key", api_key) - pulumi.set(__self__, "application_key", application_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsDatadog._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + application_key=application_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[str] = None, + application_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + if application_key is None and 'applicationKey' in kwargs: + application_key = kwargs['applicationKey'] + if application_key is None: + raise TypeError("Missing 'application_key' argument") + + _setter("api_key", api_key) + _setter("application_key", application_key) @property @pulumi.getter(name="apiKey") @@ -894,7 +1138,22 @@ def __init__(__self__, *, """ :param str api_token: The API tokens used by Dynatrace API to authenticate various API calls. """ - pulumi.set(__self__, "api_token", api_token) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsDynatrace._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_token=api_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_token is None and 'apiToken' in kwargs: + api_token = kwargs['apiToken'] + if api_token is None: + raise TypeError("Missing 'api_token' argument") + + _setter("api_token", api_token) @property @pulumi.getter(name="apiToken") @@ -945,14 +1204,47 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalyticsOauthRequestArgs' oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param str refresh_token: The refresh token used to refresh an expired access token. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalytics._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + access_token: Optional[str] = None, + oauth_request: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalyticsOauthRequest'] = None, + refresh_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="clientId") @@ -1023,10 +1315,27 @@ def __init__(__self__, *, :param str auth_code: The code provided by the connector when it has been authenticated via the connected app. :param str redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsGoogleAnalyticsOauthRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[str] = None, + redirect_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1077,12 +1386,33 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycodeOauthRequestArgs' oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param str refresh_token: The refresh token used to refresh an expired access token. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycode._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[str] = None, + oauth_request: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycodeOauthRequest'] = None, + refresh_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -1137,10 +1467,27 @@ def __init__(__self__, *, :param str auth_code: The code provided by the connector when it has been authenticated via the connected app. :param str redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsHoneycodeOauthRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[str] = None, + redirect_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1193,10 +1540,41 @@ def __init__(__self__, *, :param str secret_access_key: The secret key used to sign requests. :param str user_id: Identifier for the user. """ - pulumi.set(__self__, "access_key_id", access_key_id) - pulumi.set(__self__, "datakey", datakey) - pulumi.set(__self__, "secret_access_key", secret_access_key) - pulumi.set(__self__, "user_id", user_id) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexus._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_key_id=access_key_id, + datakey=datakey, + secret_access_key=secret_access_key, + user_id=user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_key_id: Optional[str] = None, + datakey: Optional[str] = None, + secret_access_key: Optional[str] = None, + user_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_key_id is None and 'accessKeyId' in kwargs: + access_key_id = kwargs['accessKeyId'] + if access_key_id is None: + raise TypeError("Missing 'access_key_id' argument") + if datakey is None: + raise TypeError("Missing 'datakey' argument") + if secret_access_key is None and 'secretAccessKey' in kwargs: + secret_access_key = kwargs['secretAccessKey'] + if secret_access_key is None: + raise TypeError("Missing 'secret_access_key' argument") + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_id is None: + raise TypeError("Missing 'user_id' argument") + + _setter("access_key_id", access_key_id) + _setter("datakey", datakey) + _setter("secret_access_key", secret_access_key) + _setter("user_id", user_id) @property @pulumi.getter(name="accessKeyId") @@ -1267,12 +1645,41 @@ def __init__(__self__, *, :param str access_token: The access token used to access the connector on your behalf. :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketoOauthRequestArgs' oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketo._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + access_token: Optional[str] = None, + oauth_request: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketoOauthRequest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) @property @pulumi.getter(name="clientId") @@ -1335,10 +1742,27 @@ def __init__(__self__, *, :param str auth_code: The code provided by the connector when it has been authenticated via the connected app. :param str redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsMarketoOauthRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[str] = None, + redirect_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1366,8 +1790,25 @@ def __init__(__self__, *, :param str password: The password to use to connect to a resource. :param str username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshift._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -1422,14 +1863,39 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforceOauthRequestArgs' oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param str refresh_token: The refresh token used to refresh an expired access token. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforce._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + client_credentials_arn=client_credentials_arn, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[str] = None, + client_credentials_arn: Optional[str] = None, + oauth_request: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforceOauthRequest'] = None, + refresh_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if client_credentials_arn is None and 'clientCredentialsArn' in kwargs: + client_credentials_arn = kwargs['clientCredentialsArn'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if client_credentials_arn is not None: - pulumi.set(__self__, "client_credentials_arn", client_credentials_arn) + _setter("client_credentials_arn", client_credentials_arn) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -1492,10 +1958,27 @@ def __init__(__self__, *, :param str auth_code: The code provided by the connector when it has been authenticated via the connected app. :param str redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSalesforceOauthRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[str] = None, + redirect_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1542,10 +2025,27 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataBasicAuthCredentialsArgs' basic_auth_credentials: The SAPOData basic authentication credentials. :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsArgs' oauth_credentials: The SAPOData OAuth type authentication credentials. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoData._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth_credentials=basic_auth_credentials, + oauth_credentials=oauth_credentials, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth_credentials: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataBasicAuthCredentials'] = None, + oauth_credentials: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentials'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth_credentials is None and 'basicAuthCredentials' in kwargs: + basic_auth_credentials = kwargs['basicAuthCredentials'] + if oauth_credentials is None and 'oauthCredentials' in kwargs: + oauth_credentials = kwargs['oauthCredentials'] + if basic_auth_credentials is not None: - pulumi.set(__self__, "basic_auth_credentials", basic_auth_credentials) + _setter("basic_auth_credentials", basic_auth_credentials) if oauth_credentials is not None: - pulumi.set(__self__, "oauth_credentials", oauth_credentials) + _setter("oauth_credentials", oauth_credentials) @property @pulumi.getter(name="basicAuthCredentials") @@ -1573,8 +2073,25 @@ def __init__(__self__, *, :param str password: The password to use to connect to a resource. :param str username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataBasicAuthCredentials._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -1633,14 +2150,47 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsOauthRequestArgs' oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. :param str refresh_token: The refresh token used to refresh an expired access token. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentials._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + access_token: Optional[str] = None, + oauth_request: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsOauthRequest'] = None, + refresh_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="clientId") @@ -1711,10 +2261,27 @@ def __init__(__self__, *, :param str auth_code: The code provided by the connector when it has been authenticated via the connected app. :param str redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSapoDataOauthCredentialsOauthRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[str] = None, + redirect_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1742,8 +2309,25 @@ def __init__(__self__, *, :param str password: The password to use to connect to a resource. :param str username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsServiceNow._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -1786,7 +2370,22 @@ def __init__(__self__, *, """ :param str api_key: Unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. """ - pulumi.set(__self__, "api_key", api_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSingular._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + + _setter("api_key", api_key) @property @pulumi.getter(name="apiKey") @@ -1833,12 +2432,41 @@ def __init__(__self__, *, :param str access_token: The access token used to access the connector on your behalf. :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlackOauthRequestArgs' oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlack._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + access_token: Optional[str] = None, + oauth_request: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlackOauthRequest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) @property @pulumi.getter(name="clientId") @@ -1901,10 +2529,27 @@ def __init__(__self__, *, :param str auth_code: The code provided by the connector when it has been authenticated via the connected app. :param str redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSlackOauthRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[str] = None, + redirect_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -1932,8 +2577,25 @@ def __init__(__self__, *, :param str password: The password to use to connect to a resource. :param str username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsSnowflake._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -1976,7 +2638,22 @@ def __init__(__self__, *, """ :param str api_secret_key: The API secret key required for API key authentication. """ - pulumi.set(__self__, "api_secret_key", api_secret_key) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsTrendmicro._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_secret_key=api_secret_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_secret_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_secret_key is None and 'apiSecretKey' in kwargs: + api_secret_key = kwargs['apiSecretKey'] + if api_secret_key is None: + raise TypeError("Missing 'api_secret_key' argument") + + _setter("api_secret_key", api_secret_key) @property @pulumi.getter(name="apiSecretKey") @@ -1996,8 +2673,25 @@ def __init__(__self__, *, :param str password: The password to use to connect to a resource. :param str username: The username to use to connect to a resource. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsVeeva._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -2052,12 +2746,41 @@ def __init__(__self__, *, :param str access_token: The access token used to access the connector on your behalf. :param 'ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskOauthRequestArgs' oauth_request: Used by select connectors for which the OAuth workflow is supported. See OAuth Request for more details. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendesk._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + access_token=access_token, + oauth_request=oauth_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + access_token: Optional[str] = None, + oauth_request: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskOauthRequest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if oauth_request is None and 'oauthRequest' in kwargs: + oauth_request = kwargs['oauthRequest'] + + _setter("client_id", client_id) + _setter("client_secret", client_secret) if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if oauth_request is not None: - pulumi.set(__self__, "oauth_request", oauth_request) + _setter("oauth_request", oauth_request) @property @pulumi.getter(name="clientId") @@ -2120,10 +2843,27 @@ def __init__(__self__, *, :param str auth_code: The code provided by the connector when it has been authenticated via the connected app. :param str redirect_uri: The URL to which the authentication server redirects the browser after authorization has been granted. """ + ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsZendeskOauthRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code=auth_code, + redirect_uri=redirect_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code: Optional[str] = None, + redirect_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code is None and 'authCode' in kwargs: + auth_code = kwargs['authCode'] + if redirect_uri is None and 'redirectUri' in kwargs: + redirect_uri = kwargs['redirectUri'] + if auth_code is not None: - pulumi.set(__self__, "auth_code", auth_code) + _setter("auth_code", auth_code) if redirect_uri is not None: - pulumi.set(__self__, "redirect_uri", redirect_uri) + _setter("redirect_uri", redirect_uri) @property @pulumi.getter(name="authCode") @@ -2208,42 +2948,97 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesVeevaArgs' veeva: Connector-specific properties required when using Veeva. See Generic Connector Profile Properties for more details. :param 'ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesZendeskArgs' zendesk: Connector-specific properties required when using Zendesk. See Generic Connector Profile Properties for more details. """ + ConnectorProfileConnectorProfileConfigConnectorProfileProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + amplitude=amplitude, + custom_connector=custom_connector, + datadog=datadog, + dynatrace=dynatrace, + google_analytics=google_analytics, + honeycode=honeycode, + infor_nexus=infor_nexus, + marketo=marketo, + redshift=redshift, + salesforce=salesforce, + sapo_data=sapo_data, + service_now=service_now, + singular=singular, + slack=slack, + snowflake=snowflake, + trendmicro=trendmicro, + veeva=veeva, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amplitude: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesAmplitude'] = None, + custom_connector: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnector'] = None, + datadog: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesDatadog'] = None, + dynatrace: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesDynatrace'] = None, + google_analytics: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesGoogleAnalytics'] = None, + honeycode: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesHoneycode'] = None, + infor_nexus: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesInforNexus'] = None, + marketo: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesMarketo'] = None, + redshift: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshift'] = None, + salesforce: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSalesforce'] = None, + sapo_data: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoData'] = None, + service_now: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesServiceNow'] = None, + singular: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSingular'] = None, + slack: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSlack'] = None, + snowflake: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSnowflake'] = None, + trendmicro: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesTrendmicro'] = None, + veeva: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesVeeva'] = None, + zendesk: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesZendesk'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if google_analytics is None and 'googleAnalytics' in kwargs: + google_analytics = kwargs['googleAnalytics'] + if infor_nexus is None and 'inforNexus' in kwargs: + infor_nexus = kwargs['inforNexus'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if amplitude is not None: - pulumi.set(__self__, "amplitude", amplitude) + _setter("amplitude", amplitude) if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if datadog is not None: - pulumi.set(__self__, "datadog", datadog) + _setter("datadog", datadog) if dynatrace is not None: - pulumi.set(__self__, "dynatrace", dynatrace) + _setter("dynatrace", dynatrace) if google_analytics is not None: - pulumi.set(__self__, "google_analytics", google_analytics) + _setter("google_analytics", google_analytics) if honeycode is not None: - pulumi.set(__self__, "honeycode", honeycode) + _setter("honeycode", honeycode) if infor_nexus is not None: - pulumi.set(__self__, "infor_nexus", infor_nexus) + _setter("infor_nexus", infor_nexus) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if singular is not None: - pulumi.set(__self__, "singular", singular) + _setter("singular", singular) if slack is not None: - pulumi.set(__self__, "slack", slack) + _setter("slack", slack) if snowflake is not None: - pulumi.set(__self__, "snowflake", snowflake) + _setter("snowflake", snowflake) if trendmicro is not None: - pulumi.set(__self__, "trendmicro", trendmicro) + _setter("trendmicro", trendmicro) if veeva is not None: - pulumi.set(__self__, "veeva", veeva) + _setter("veeva", veeva) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter @@ -2394,6 +3189,13 @@ def zendesk(self) -> Optional['outputs.ConnectorProfileConnectorProfileConfigCon class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesAmplitude(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -2424,10 +3226,27 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnectorOauth2PropertiesArgs' oauth2_properties: The OAuth 2.0 properties required for OAuth 2.0 authentication. :param Mapping[str, str] profile_properties: A map of properties that are required to create a profile for the custom connector. """ + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnector._configure( + lambda key, value: pulumi.set(__self__, key, value), + oauth2_properties=oauth2_properties, + profile_properties=profile_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oauth2_properties: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnectorOauth2Properties'] = None, + profile_properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oauth2_properties is None and 'oauth2Properties' in kwargs: + oauth2_properties = kwargs['oauth2Properties'] + if profile_properties is None and 'profileProperties' in kwargs: + profile_properties = kwargs['profileProperties'] + if oauth2_properties is not None: - pulumi.set(__self__, "oauth2_properties", oauth2_properties) + _setter("oauth2_properties", oauth2_properties) if profile_properties is not None: - pulumi.set(__self__, "profile_properties", profile_properties) + _setter("profile_properties", profile_properties) @property @pulumi.getter(name="oauth2Properties") @@ -2478,10 +3297,35 @@ def __init__(__self__, *, :param str token_url: The token URL required for OAuth 2.0 authentication. :param Mapping[str, str] token_url_custom_properties: Associates your token URL with a map of properties that you define. Use this parameter to provide any additional details that the connector requires to authenticate your request. """ - pulumi.set(__self__, "oauth2_grant_type", oauth2_grant_type) - pulumi.set(__self__, "token_url", token_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesCustomConnectorOauth2Properties._configure( + lambda key, value: pulumi.set(__self__, key, value), + oauth2_grant_type=oauth2_grant_type, + token_url=token_url, + token_url_custom_properties=token_url_custom_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oauth2_grant_type: Optional[str] = None, + token_url: Optional[str] = None, + token_url_custom_properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oauth2_grant_type is None and 'oauth2GrantType' in kwargs: + oauth2_grant_type = kwargs['oauth2GrantType'] + if oauth2_grant_type is None: + raise TypeError("Missing 'oauth2_grant_type' argument") + if token_url is None and 'tokenUrl' in kwargs: + token_url = kwargs['tokenUrl'] + if token_url is None: + raise TypeError("Missing 'token_url' argument") + if token_url_custom_properties is None and 'tokenUrlCustomProperties' in kwargs: + token_url_custom_properties = kwargs['tokenUrlCustomProperties'] + + _setter("oauth2_grant_type", oauth2_grant_type) + _setter("token_url", token_url) if token_url_custom_properties is not None: - pulumi.set(__self__, "token_url_custom_properties", token_url_custom_properties) + _setter("token_url_custom_properties", token_url_custom_properties) @property @pulumi.getter(name="oauth2GrantType") @@ -2532,7 +3376,22 @@ def __init__(__self__, *, """ :param str instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesDatadog._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2567,7 +3426,22 @@ def __init__(__self__, *, """ :param str instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesDynatrace._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2582,12 +3456,26 @@ def instance_url(self) -> str: class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesGoogleAnalytics(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesHoneycode(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -2614,7 +3502,22 @@ def __init__(__self__, *, """ :param str instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesInforNexus._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2649,7 +3552,22 @@ def __init__(__self__, *, """ :param str instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesMarketo._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -2708,18 +3626,59 @@ def __init__(__self__, *, :param str database_name: The name of an Amazon Redshift database. :param str database_url: The JDBC URL of the Amazon Redshift cluster. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "role_arn", role_arn) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshift._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + role_arn=role_arn, + bucket_prefix=bucket_prefix, + cluster_identifier=cluster_identifier, + data_api_role_arn=data_api_role_arn, + database_name=database_name, + database_url=database_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + role_arn: Optional[str] = None, + bucket_prefix: Optional[str] = None, + cluster_identifier: Optional[str] = None, + data_api_role_arn: Optional[str] = None, + database_name: Optional[str] = None, + database_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if data_api_role_arn is None and 'dataApiRoleArn' in kwargs: + data_api_role_arn = kwargs['dataApiRoleArn'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_url is None and 'databaseUrl' in kwargs: + database_url = kwargs['databaseUrl'] + + _setter("bucket_name", bucket_name) + _setter("role_arn", role_arn) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if data_api_role_arn is not None: - pulumi.set(__self__, "data_api_role_arn", data_api_role_arn) + _setter("data_api_role_arn", data_api_role_arn) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if database_url is not None: - pulumi.set(__self__, "database_url", database_url) + _setter("database_url", database_url) @property @pulumi.getter(name="bucketName") @@ -2806,10 +3765,27 @@ def __init__(__self__, *, :param str instance_url: The location of the Datadog resource. :param bool is_sandbox_environment: Indicates whether the connector profile applies to a sandbox or production environment. """ + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSalesforce._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + is_sandbox_environment=is_sandbox_environment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[str] = None, + is_sandbox_environment: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if is_sandbox_environment is None and 'isSandboxEnvironment' in kwargs: + is_sandbox_environment = kwargs['isSandboxEnvironment'] + if instance_url is not None: - pulumi.set(__self__, "instance_url", instance_url) + _setter("instance_url", instance_url) if is_sandbox_environment is not None: - pulumi.set(__self__, "is_sandbox_environment", is_sandbox_environment) + _setter("is_sandbox_environment", is_sandbox_environment) @property @pulumi.getter(name="instanceUrl") @@ -2876,16 +3852,61 @@ def __init__(__self__, *, :param 'ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoDataOauthPropertiesArgs' oauth_properties: The SAPOData OAuth properties required for OAuth type authentication. :param str private_link_service_name: The SAPOData Private Link service name to be used for private data transfers. """ - pulumi.set(__self__, "application_host_url", application_host_url) - pulumi.set(__self__, "application_service_path", application_service_path) - pulumi.set(__self__, "client_number", client_number) - pulumi.set(__self__, "port_number", port_number) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoData._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_host_url=application_host_url, + application_service_path=application_service_path, + client_number=client_number, + port_number=port_number, + logon_language=logon_language, + oauth_properties=oauth_properties, + private_link_service_name=private_link_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_host_url: Optional[str] = None, + application_service_path: Optional[str] = None, + client_number: Optional[str] = None, + port_number: Optional[int] = None, + logon_language: Optional[str] = None, + oauth_properties: Optional['outputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoDataOauthProperties'] = None, + private_link_service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_host_url is None and 'applicationHostUrl' in kwargs: + application_host_url = kwargs['applicationHostUrl'] + if application_host_url is None: + raise TypeError("Missing 'application_host_url' argument") + if application_service_path is None and 'applicationServicePath' in kwargs: + application_service_path = kwargs['applicationServicePath'] + if application_service_path is None: + raise TypeError("Missing 'application_service_path' argument") + if client_number is None and 'clientNumber' in kwargs: + client_number = kwargs['clientNumber'] + if client_number is None: + raise TypeError("Missing 'client_number' argument") + if port_number is None and 'portNumber' in kwargs: + port_number = kwargs['portNumber'] + if port_number is None: + raise TypeError("Missing 'port_number' argument") + if logon_language is None and 'logonLanguage' in kwargs: + logon_language = kwargs['logonLanguage'] + if oauth_properties is None and 'oauthProperties' in kwargs: + oauth_properties = kwargs['oauthProperties'] + if private_link_service_name is None and 'privateLinkServiceName' in kwargs: + private_link_service_name = kwargs['privateLinkServiceName'] + + _setter("application_host_url", application_host_url) + _setter("application_service_path", application_service_path) + _setter("client_number", client_number) + _setter("port_number", port_number) if logon_language is not None: - pulumi.set(__self__, "logon_language", logon_language) + _setter("logon_language", logon_language) if oauth_properties is not None: - pulumi.set(__self__, "oauth_properties", oauth_properties) + _setter("oauth_properties", oauth_properties) if private_link_service_name is not None: - pulumi.set(__self__, "private_link_service_name", private_link_service_name) + _setter("private_link_service_name", private_link_service_name) @property @pulumi.getter(name="applicationHostUrl") @@ -2976,9 +3997,36 @@ def __init__(__self__, *, :param Sequence[str] oauth_scopes: The OAuth scopes required for OAuth type authentication. :param str token_url: The token URL required for OAuth 2.0 authentication. """ - pulumi.set(__self__, "auth_code_url", auth_code_url) - pulumi.set(__self__, "oauth_scopes", oauth_scopes) - pulumi.set(__self__, "token_url", token_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSapoDataOauthProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_code_url=auth_code_url, + oauth_scopes=oauth_scopes, + token_url=token_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_code_url: Optional[str] = None, + oauth_scopes: Optional[Sequence[str]] = None, + token_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_code_url is None and 'authCodeUrl' in kwargs: + auth_code_url = kwargs['authCodeUrl'] + if auth_code_url is None: + raise TypeError("Missing 'auth_code_url' argument") + if oauth_scopes is None and 'oauthScopes' in kwargs: + oauth_scopes = kwargs['oauthScopes'] + if oauth_scopes is None: + raise TypeError("Missing 'oauth_scopes' argument") + if token_url is None and 'tokenUrl' in kwargs: + token_url = kwargs['tokenUrl'] + if token_url is None: + raise TypeError("Missing 'token_url' argument") + + _setter("auth_code_url", auth_code_url) + _setter("oauth_scopes", oauth_scopes) + _setter("token_url", token_url) @property @pulumi.getter(name="authCodeUrl") @@ -3029,7 +4077,22 @@ def __init__(__self__, *, """ :param str instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesServiceNow._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -3044,6 +4107,13 @@ def instance_url(self) -> str: class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSingular(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -3070,7 +4140,22 @@ def __init__(__self__, *, """ :param str instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSlack._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -3123,17 +4208,54 @@ def __init__(__self__, *, :param str private_link_service_name: The SAPOData Private Link service name to be used for private data transfers. :param str region: AWS Region of the Snowflake account. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "stage", stage) - pulumi.set(__self__, "warehouse", warehouse) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesSnowflake._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + stage=stage, + warehouse=warehouse, + account_name=account_name, + bucket_prefix=bucket_prefix, + private_link_service_name=private_link_service_name, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + stage: Optional[str] = None, + warehouse: Optional[str] = None, + account_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + private_link_service_name: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if stage is None: + raise TypeError("Missing 'stage' argument") + if warehouse is None: + raise TypeError("Missing 'warehouse' argument") + if account_name is None and 'accountName' in kwargs: + account_name = kwargs['accountName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if private_link_service_name is None and 'privateLinkServiceName' in kwargs: + private_link_service_name = kwargs['privateLinkServiceName'] + + _setter("bucket_name", bucket_name) + _setter("stage", stage) + _setter("warehouse", warehouse) if account_name is not None: - pulumi.set(__self__, "account_name", account_name) + _setter("account_name", account_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if private_link_service_name is not None: - pulumi.set(__self__, "private_link_service_name", private_link_service_name) + _setter("private_link_service_name", private_link_service_name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter(name="bucketName") @@ -3196,6 +4318,13 @@ def region(self) -> Optional[str]: class ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesTrendmicro(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -3222,7 +4351,22 @@ def __init__(__self__, *, """ :param str instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesVeeva._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -3257,7 +4401,22 @@ def __init__(__self__, *, """ :param str instance_url: The location of the Datadog resource. """ - pulumi.set(__self__, "instance_url", instance_url) + ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesZendesk._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_url=instance_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_url is None and 'instanceUrl' in kwargs: + instance_url = kwargs['instanceUrl'] + if instance_url is None: + raise TypeError("Missing 'instance_url' argument") + + _setter("instance_url", instance_url) @property @pulumi.getter(name="instanceUrl") @@ -3304,12 +4463,41 @@ def __init__(__self__, *, :param str api_version: API version that the destination connector uses. :param str connector_profile_name: Name of the connector profile. This name must be unique for each connector profile in the AWS account. """ - pulumi.set(__self__, "connector_type", connector_type) - pulumi.set(__self__, "destination_connector_properties", destination_connector_properties) + FlowDestinationFlowConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + connector_type=connector_type, + destination_connector_properties=destination_connector_properties, + api_version=api_version, + connector_profile_name=connector_profile_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connector_type: Optional[str] = None, + destination_connector_properties: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorProperties'] = None, + api_version: Optional[str] = None, + connector_profile_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connector_type is None and 'connectorType' in kwargs: + connector_type = kwargs['connectorType'] + if connector_type is None: + raise TypeError("Missing 'connector_type' argument") + if destination_connector_properties is None and 'destinationConnectorProperties' in kwargs: + destination_connector_properties = kwargs['destinationConnectorProperties'] + if destination_connector_properties is None: + raise TypeError("Missing 'destination_connector_properties' argument") + if api_version is None and 'apiVersion' in kwargs: + api_version = kwargs['apiVersion'] + if connector_profile_name is None and 'connectorProfileName' in kwargs: + connector_profile_name = kwargs['connectorProfileName'] + + _setter("connector_type", connector_type) + _setter("destination_connector_properties", destination_connector_properties) if api_version is not None: - pulumi.set(__self__, "api_version", api_version) + _setter("api_version", api_version) if connector_profile_name is not None: - pulumi.set(__self__, "connector_profile_name", connector_profile_name) + _setter("connector_profile_name", connector_profile_name) @property @pulumi.getter(name="connectorType") @@ -3399,32 +4587,77 @@ def __init__(__self__, *, :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverArgs' upsolver: Properties that are required to query Upsolver. See Upsolver Destination Properties for more details. :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskArgs' zendesk: Properties that are required to query Zendesk. See Zendesk Destination Properties for more details. """ + FlowDestinationFlowConfigDestinationConnectorProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_connector=custom_connector, + customer_profiles=customer_profiles, + event_bridge=event_bridge, + honeycode=honeycode, + lookout_metrics=lookout_metrics, + marketo=marketo, + redshift=redshift, + s3=s3, + salesforce=salesforce, + sapo_data=sapo_data, + snowflake=snowflake, + upsolver=upsolver, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_connector: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector'] = None, + customer_profiles: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesCustomerProfiles'] = None, + event_bridge: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge'] = None, + honeycode: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode'] = None, + lookout_metrics: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesLookoutMetrics'] = None, + marketo: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo'] = None, + redshift: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift'] = None, + s3: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesS3'] = None, + salesforce: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce'] = None, + sapo_data: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData'] = None, + snowflake: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake'] = None, + upsolver: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver'] = None, + zendesk: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if customer_profiles is None and 'customerProfiles' in kwargs: + customer_profiles = kwargs['customerProfiles'] + if event_bridge is None and 'eventBridge' in kwargs: + event_bridge = kwargs['eventBridge'] + if lookout_metrics is None and 'lookoutMetrics' in kwargs: + lookout_metrics = kwargs['lookoutMetrics'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if customer_profiles is not None: - pulumi.set(__self__, "customer_profiles", customer_profiles) + _setter("customer_profiles", customer_profiles) if event_bridge is not None: - pulumi.set(__self__, "event_bridge", event_bridge) + _setter("event_bridge", event_bridge) if honeycode is not None: - pulumi.set(__self__, "honeycode", honeycode) + _setter("honeycode", honeycode) if lookout_metrics is not None: - pulumi.set(__self__, "lookout_metrics", lookout_metrics) + _setter("lookout_metrics", lookout_metrics) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if snowflake is not None: - pulumi.set(__self__, "snowflake", snowflake) + _setter("snowflake", snowflake) if upsolver is not None: - pulumi.set(__self__, "upsolver", upsolver) + _setter("upsolver", upsolver) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter(name="customConnector") @@ -3564,19 +4797,50 @@ def __init__(__self__, *, """ :param str entity_name: Entity specified in the custom connector as a destination in the flow. :param Mapping[str, str] custom_properties: Custom properties that are specific to the connector when it's used as a destination in the flow. Maximum of 50 items. - :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. :param Sequence[str] id_field_names: Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. :param str write_operation_type: Type of write operation to be performed in the custom connector when it's used as destination. Valid values are `INSERT`, `UPSERT`, `UPDATE`, and `DELETE`. """ - pulumi.set(__self__, "entity_name", entity_name) + FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnector._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_name=entity_name, + custom_properties=custom_properties, + error_handling_config=error_handling_config, + id_field_names=id_field_names, + write_operation_type=write_operation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_name: Optional[str] = None, + custom_properties: Optional[Mapping[str, str]] = None, + error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig'] = None, + id_field_names: Optional[Sequence[str]] = None, + write_operation_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_name is None and 'entityName' in kwargs: + entity_name = kwargs['entityName'] + if entity_name is None: + raise TypeError("Missing 'entity_name' argument") + if custom_properties is None and 'customProperties' in kwargs: + custom_properties = kwargs['customProperties'] + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + if id_field_names is None and 'idFieldNames' in kwargs: + id_field_names = kwargs['idFieldNames'] + if write_operation_type is None and 'writeOperationType' in kwargs: + write_operation_type = kwargs['writeOperationType'] + + _setter("entity_name", entity_name) if custom_properties is not None: - pulumi.set(__self__, "custom_properties", custom_properties) + _setter("custom_properties", custom_properties) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) if id_field_names is not None: - pulumi.set(__self__, "id_field_names", id_field_names) + _setter("id_field_names", id_field_names) if write_operation_type is not None: - pulumi.set(__self__, "write_operation_type", write_operation_type) + _setter("write_operation_type", write_operation_type) @property @pulumi.getter(name="entityName") @@ -3598,7 +4862,7 @@ def custom_properties(self) -> Optional[Mapping[str, str]]: @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig']: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -3651,12 +4915,33 @@ def __init__(__self__, *, :param str bucket_prefix: Amazon S3 bucket prefix. :param bool fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesCustomConnectorErrorHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + fail_on_first_destination_error: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -3711,9 +4996,28 @@ def __init__(__self__, *, :param str domain_name: Unique name of the Amazon Connect Customer Profiles domain. :param str object_type_name: Object specified in the Amazon Connect Customer Profiles flow destination. """ - pulumi.set(__self__, "domain_name", domain_name) + FlowDestinationFlowConfigDestinationConnectorPropertiesCustomerProfiles._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + object_type_name=object_type_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + object_type_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if object_type_name is None and 'objectTypeName' in kwargs: + object_type_name = kwargs['objectTypeName'] + + _setter("domain_name", domain_name) if object_type_name is not None: - pulumi.set(__self__, "object_type_name", object_type_name) + _setter("object_type_name", object_type_name) @property @pulumi.getter(name="domainName") @@ -3756,11 +5060,28 @@ def __init__(__self__, *, error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig'] = None): """ :param str object: Object specified in the flow destination. - :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ - pulumi.set(__self__, "object", object) + FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridge._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter @@ -3774,7 +5095,7 @@ def object(self) -> str: @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig']: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -3811,12 +5132,33 @@ def __init__(__self__, *, :param str bucket_prefix: Amazon S3 bucket prefix. :param bool fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesEventBridgeErrorHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + fail_on_first_destination_error: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -3867,11 +5209,28 @@ def __init__(__self__, *, error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig'] = None): """ :param str object: Object specified in the flow destination. - :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ - pulumi.set(__self__, "object", object) + FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycode._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter @@ -3885,7 +5244,7 @@ def object(self) -> str: @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig']: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -3922,12 +5281,33 @@ def __init__(__self__, *, :param str bucket_prefix: Amazon S3 bucket prefix. :param bool fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesHoneycodeErrorHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + fail_on_first_destination_error: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -3958,6 +5338,13 @@ def fail_on_first_destination_error(self) -> Optional[bool]: class FlowDestinationFlowConfigDestinationConnectorPropertiesLookoutMetrics(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -3984,11 +5371,28 @@ def __init__(__self__, *, error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig'] = None): """ :param str object: Object specified in the flow destination. - :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ - pulumi.set(__self__, "object", object) + FlowDestinationFlowConfigDestinationConnectorPropertiesMarketo._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter @@ -4002,7 +5406,7 @@ def object(self) -> str: @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig']: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -4039,12 +5443,33 @@ def __init__(__self__, *, :param str bucket_prefix: Amazon S3 bucket prefix. :param bool fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesMarketoErrorHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + fail_on_first_destination_error: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -4102,15 +5527,42 @@ def __init__(__self__, *, """ :param str intermediate_bucket_name: Intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift. :param str object: Object specified in the flow destination. - :param str bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. - :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. - """ - pulumi.set(__self__, "intermediate_bucket_name", intermediate_bucket_name) - pulumi.set(__self__, "object", object) + :param str bucket_prefix: Amazon S3 bucket prefix. + :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. + """ + FlowDestinationFlowConfigDestinationConnectorPropertiesRedshift._configure( + lambda key, value: pulumi.set(__self__, key, value), + intermediate_bucket_name=intermediate_bucket_name, + object=object, + bucket_prefix=bucket_prefix, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + intermediate_bucket_name: Optional[str] = None, + object: Optional[str] = None, + bucket_prefix: Optional[str] = None, + error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if intermediate_bucket_name is None and 'intermediateBucketName' in kwargs: + intermediate_bucket_name = kwargs['intermediateBucketName'] + if intermediate_bucket_name is None: + raise TypeError("Missing 'intermediate_bucket_name' argument") + if object is None: + raise TypeError("Missing 'object' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("intermediate_bucket_name", intermediate_bucket_name) + _setter("object", object) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter(name="intermediateBucketName") @@ -4132,7 +5584,7 @@ def object(self) -> str: @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[str]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -4140,7 +5592,7 @@ def bucket_prefix(self) -> Optional[str]: @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig']: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -4177,12 +5629,33 @@ def __init__(__self__, *, :param str bucket_prefix: Amazon S3 bucket prefix. :param bool fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesRedshiftErrorHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + fail_on_first_destination_error: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -4237,21 +5710,44 @@ def __init__(__self__, *, bucket_prefix: Optional[str] = None, s3_output_format_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfig'] = None): """ - :param str bucket_name: Amazon S3 bucket name in which Amazon AppFlow places the transferred data. - :param str bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. + :param str bucket_name: Name of the Amazon S3 bucket. + :param str bucket_prefix: Amazon S3 bucket prefix. :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigArgs' s3_output_format_config: Configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination. See S3 Output Format Config for more details. """ - pulumi.set(__self__, "bucket_name", bucket_name) + FlowDestinationFlowConfigDestinationConnectorPropertiesS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + s3_output_format_config=s3_output_format_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + s3_output_format_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if s3_output_format_config is None and 's3OutputFormatConfig' in kwargs: + s3_output_format_config = kwargs['s3OutputFormatConfig'] + + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if s3_output_format_config is not None: - pulumi.set(__self__, "s3_output_format_config", s3_output_format_config) + _setter("s3_output_format_config", s3_output_format_config) @property @pulumi.getter(name="bucketName") def bucket_name(self) -> str: """ - Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + Name of the Amazon S3 bucket. """ return pulumi.get(self, "bucket_name") @@ -4259,7 +5755,7 @@ def bucket_name(self) -> str: @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[str]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -4308,14 +5804,39 @@ def __init__(__self__, *, :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPrefixConfigArgs' prefix_config: Determines the prefix that Amazon AppFlow applies to the folder name in the Amazon S3 bucket. You can name folders according to the flow frequency and date. See Prefix Config for more details. :param bool preserve_source_data_typing: Whether the data types from the source system need to be preserved (Only valid for `Parquet` file type) """ + FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + aggregation_config=aggregation_config, + file_type=file_type, + prefix_config=prefix_config, + preserve_source_data_typing=preserve_source_data_typing, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aggregation_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigAggregationConfig'] = None, + file_type: Optional[str] = None, + prefix_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPrefixConfig'] = None, + preserve_source_data_typing: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aggregation_config is None and 'aggregationConfig' in kwargs: + aggregation_config = kwargs['aggregationConfig'] + if file_type is None and 'fileType' in kwargs: + file_type = kwargs['fileType'] + if prefix_config is None and 'prefixConfig' in kwargs: + prefix_config = kwargs['prefixConfig'] + if preserve_source_data_typing is None and 'preserveSourceDataTyping' in kwargs: + preserve_source_data_typing = kwargs['preserveSourceDataTyping'] + if aggregation_config is not None: - pulumi.set(__self__, "aggregation_config", aggregation_config) + _setter("aggregation_config", aggregation_config) if file_type is not None: - pulumi.set(__self__, "file_type", file_type) + _setter("file_type", file_type) if prefix_config is not None: - pulumi.set(__self__, "prefix_config", prefix_config) + _setter("prefix_config", prefix_config) if preserve_source_data_typing is not None: - pulumi.set(__self__, "preserve_source_data_typing", preserve_source_data_typing) + _setter("preserve_source_data_typing", preserve_source_data_typing) @property @pulumi.getter(name="aggregationConfig") @@ -4374,8 +5895,21 @@ def __init__(__self__, *, """ :param str aggregation_type: Whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated. Valid values are `None` and `SingleFile`. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigAggregationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + aggregation_type=aggregation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aggregation_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aggregation_type is None and 'aggregationType' in kwargs: + aggregation_type = kwargs['aggregationType'] + if aggregation_type is not None: - pulumi.set(__self__, "aggregation_type", aggregation_type) + _setter("aggregation_type", aggregation_type) @property @pulumi.getter(name="aggregationType") @@ -4414,10 +5948,27 @@ def __init__(__self__, *, :param str prefix_format: Determines the level of granularity that's included in the prefix. Valid values are `YEAR`, `MONTH`, `DAY`, `HOUR`, and `MINUTE`. :param str prefix_type: Determines the format of the prefix, and whether it applies to the file name, file path, or both. Valid values are `FILENAME`, `PATH`, and `PATH_AND_FILENAME`. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPrefixConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix_format=prefix_format, + prefix_type=prefix_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix_format: Optional[str] = None, + prefix_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_format is None and 'prefixFormat' in kwargs: + prefix_format = kwargs['prefixFormat'] + if prefix_type is None and 'prefixType' in kwargs: + prefix_type = kwargs['prefixType'] + if prefix_format is not None: - pulumi.set(__self__, "prefix_format", prefix_format) + _setter("prefix_format", prefix_format) if prefix_type is not None: - pulumi.set(__self__, "prefix_type", prefix_type) + _setter("prefix_type", prefix_type) @property @pulumi.getter(name="prefixFormat") @@ -4466,17 +6017,42 @@ def __init__(__self__, *, write_operation_type: Optional[str] = None): """ :param str object: Object specified in the flow destination. - :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. :param Sequence[str] id_field_names: Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. :param str write_operation_type: Type of write operation to be performed in the custom connector when it's used as destination. Valid values are `INSERT`, `UPSERT`, `UPDATE`, and `DELETE`. """ - pulumi.set(__self__, "object", object) + FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforce._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + id_field_names=id_field_names, + write_operation_type=write_operation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig'] = None, + id_field_names: Optional[Sequence[str]] = None, + write_operation_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + if id_field_names is None and 'idFieldNames' in kwargs: + id_field_names = kwargs['idFieldNames'] + if write_operation_type is None and 'writeOperationType' in kwargs: + write_operation_type = kwargs['writeOperationType'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) if id_field_names is not None: - pulumi.set(__self__, "id_field_names", id_field_names) + _setter("id_field_names", id_field_names) if write_operation_type is not None: - pulumi.set(__self__, "write_operation_type", write_operation_type) + _setter("write_operation_type", write_operation_type) @property @pulumi.getter @@ -4490,7 +6066,7 @@ def object(self) -> str: @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig']: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -4543,12 +6119,33 @@ def __init__(__self__, *, :param str bucket_prefix: Amazon S3 bucket prefix. :param bool fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSalesforceErrorHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + fail_on_first_destination_error: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -4610,20 +6207,51 @@ def __init__(__self__, *, write_operation_type: Optional[str] = None): """ :param str object_path: Object path specified in the SAPOData flow destination. - :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. :param Sequence[str] id_field_names: Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataSuccessResponseHandlingConfigArgs' success_response_handling_config: Determines how Amazon AppFlow handles the success response that it gets from the connector after placing data. See Success Response Handling Config for more details. :param str write_operation_type: Type of write operation to be performed in the custom connector when it's used as destination. Valid values are `INSERT`, `UPSERT`, `UPDATE`, and `DELETE`. """ - pulumi.set(__self__, "object_path", object_path) + FlowDestinationFlowConfigDestinationConnectorPropertiesSapoData._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_path=object_path, + error_handling_config=error_handling_config, + id_field_names=id_field_names, + success_response_handling_config=success_response_handling_config, + write_operation_type=write_operation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_path: Optional[str] = None, + error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig'] = None, + id_field_names: Optional[Sequence[str]] = None, + success_response_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataSuccessResponseHandlingConfig'] = None, + write_operation_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_path is None and 'objectPath' in kwargs: + object_path = kwargs['objectPath'] + if object_path is None: + raise TypeError("Missing 'object_path' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + if id_field_names is None and 'idFieldNames' in kwargs: + id_field_names = kwargs['idFieldNames'] + if success_response_handling_config is None and 'successResponseHandlingConfig' in kwargs: + success_response_handling_config = kwargs['successResponseHandlingConfig'] + if write_operation_type is None and 'writeOperationType' in kwargs: + write_operation_type = kwargs['writeOperationType'] + + _setter("object_path", object_path) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) if id_field_names is not None: - pulumi.set(__self__, "id_field_names", id_field_names) + _setter("id_field_names", id_field_names) if success_response_handling_config is not None: - pulumi.set(__self__, "success_response_handling_config", success_response_handling_config) + _setter("success_response_handling_config", success_response_handling_config) if write_operation_type is not None: - pulumi.set(__self__, "write_operation_type", write_operation_type) + _setter("write_operation_type", write_operation_type) @property @pulumi.getter(name="objectPath") @@ -4637,7 +6265,7 @@ def object_path(self) -> str: @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig']: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -4698,12 +6326,33 @@ def __init__(__self__, *, :param str bucket_prefix: Amazon S3 bucket prefix. :param bool fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataErrorHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + fail_on_first_destination_error: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -4758,10 +6407,27 @@ def __init__(__self__, *, :param str bucket_name: Name of the Amazon S3 bucket. :param str bucket_prefix: Amazon S3 bucket prefix. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSapoDataSuccessResponseHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) @property @pulumi.getter(name="bucketName") @@ -4811,15 +6477,42 @@ def __init__(__self__, *, """ :param str intermediate_bucket_name: Intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift. :param str object: Object specified in the flow destination. - :param str bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. - :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. - """ - pulumi.set(__self__, "intermediate_bucket_name", intermediate_bucket_name) - pulumi.set(__self__, "object", object) + :param str bucket_prefix: Amazon S3 bucket prefix. + :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. + """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflake._configure( + lambda key, value: pulumi.set(__self__, key, value), + intermediate_bucket_name=intermediate_bucket_name, + object=object, + bucket_prefix=bucket_prefix, + error_handling_config=error_handling_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + intermediate_bucket_name: Optional[str] = None, + object: Optional[str] = None, + bucket_prefix: Optional[str] = None, + error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if intermediate_bucket_name is None and 'intermediateBucketName' in kwargs: + intermediate_bucket_name = kwargs['intermediateBucketName'] + if intermediate_bucket_name is None: + raise TypeError("Missing 'intermediate_bucket_name' argument") + if object is None: + raise TypeError("Missing 'object' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + + _setter("intermediate_bucket_name", intermediate_bucket_name) + _setter("object", object) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) @property @pulumi.getter(name="intermediateBucketName") @@ -4841,7 +6534,7 @@ def object(self) -> str: @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[str]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -4849,7 +6542,7 @@ def bucket_prefix(self) -> Optional[str]: @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig']: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -4886,12 +6579,33 @@ def __init__(__self__, *, :param str bucket_prefix: Amazon S3 bucket prefix. :param bool fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesSnowflakeErrorHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + fail_on_first_destination_error: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -4946,20 +6660,45 @@ def __init__(__self__, *, s3_output_format_config: 'outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfig', bucket_prefix: Optional[str] = None): """ - :param str bucket_name: Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + :param str bucket_name: Name of the Amazon S3 bucket. :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigArgs' s3_output_format_config: Configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination. See S3 Output Format Config for more details. - :param str bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. + :param str bucket_prefix: Amazon S3 bucket prefix. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "s3_output_format_config", s3_output_format_config) + FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolver._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + s3_output_format_config=s3_output_format_config, + bucket_prefix=bucket_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + s3_output_format_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfig'] = None, + bucket_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if s3_output_format_config is None and 's3OutputFormatConfig' in kwargs: + s3_output_format_config = kwargs['s3OutputFormatConfig'] + if s3_output_format_config is None: + raise TypeError("Missing 's3_output_format_config' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + + _setter("bucket_name", bucket_name) + _setter("s3_output_format_config", s3_output_format_config) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) @property @pulumi.getter(name="bucketName") def bucket_name(self) -> str: """ - Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + Name of the Amazon S3 bucket. """ return pulumi.get(self, "bucket_name") @@ -4975,7 +6714,7 @@ def s3_output_format_config(self) -> 'outputs.FlowDestinationFlowConfigDestinati @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[str]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -5012,11 +6751,34 @@ def __init__(__self__, *, :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigAggregationConfigArgs' aggregation_config: Aggregation settings that you can use to customize the output format of your flow data. See Aggregation Config for more details. :param str file_type: File type that Amazon AppFlow places in the Amazon S3 bucket. Valid values are `CSV`, `JSON`, and `PARQUET`. """ - pulumi.set(__self__, "prefix_config", prefix_config) + FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix_config=prefix_config, + aggregation_config=aggregation_config, + file_type=file_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigPrefixConfig'] = None, + aggregation_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigAggregationConfig'] = None, + file_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_config is None and 'prefixConfig' in kwargs: + prefix_config = kwargs['prefixConfig'] + if prefix_config is None: + raise TypeError("Missing 'prefix_config' argument") + if aggregation_config is None and 'aggregationConfig' in kwargs: + aggregation_config = kwargs['aggregationConfig'] + if file_type is None and 'fileType' in kwargs: + file_type = kwargs['fileType'] + + _setter("prefix_config", prefix_config) if aggregation_config is not None: - pulumi.set(__self__, "aggregation_config", aggregation_config) + _setter("aggregation_config", aggregation_config) if file_type is not None: - pulumi.set(__self__, "file_type", file_type) + _setter("file_type", file_type) @property @pulumi.getter(name="prefixConfig") @@ -5067,8 +6829,21 @@ def __init__(__self__, *, """ :param str aggregation_type: Whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated. Valid values are `None` and `SingleFile`. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigAggregationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + aggregation_type=aggregation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aggregation_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aggregation_type is None and 'aggregationType' in kwargs: + aggregation_type = kwargs['aggregationType'] + if aggregation_type is not None: - pulumi.set(__self__, "aggregation_type", aggregation_type) + _setter("aggregation_type", aggregation_type) @property @pulumi.getter(name="aggregationType") @@ -5107,9 +6882,28 @@ def __init__(__self__, *, :param str prefix_type: Determines the format of the prefix, and whether it applies to the file name, file path, or both. Valid values are `FILENAME`, `PATH`, and `PATH_AND_FILENAME`. :param str prefix_format: Determines the level of granularity that's included in the prefix. Valid values are `YEAR`, `MONTH`, `DAY`, `HOUR`, and `MINUTE`. """ - pulumi.set(__self__, "prefix_type", prefix_type) + FlowDestinationFlowConfigDestinationConnectorPropertiesUpsolverS3OutputFormatConfigPrefixConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix_type=prefix_type, + prefix_format=prefix_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix_type: Optional[str] = None, + prefix_format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_type is None and 'prefixType' in kwargs: + prefix_type = kwargs['prefixType'] + if prefix_type is None: + raise TypeError("Missing 'prefix_type' argument") + if prefix_format is None and 'prefixFormat' in kwargs: + prefix_format = kwargs['prefixFormat'] + + _setter("prefix_type", prefix_type) if prefix_format is not None: - pulumi.set(__self__, "prefix_format", prefix_format) + _setter("prefix_format", prefix_format) @property @pulumi.getter(name="prefixType") @@ -5158,17 +6952,42 @@ def __init__(__self__, *, write_operation_type: Optional[str] = None): """ :param str object: Object specified in the flow destination. - :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + :param 'FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfigArgs' error_handling_config: Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. :param Sequence[str] id_field_names: Name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update, delete, or upsert. :param str write_operation_type: Type of write operation to be performed in the custom connector when it's used as destination. Valid values are `INSERT`, `UPSERT`, `UPDATE`, and `DELETE`. """ - pulumi.set(__self__, "object", object) + FlowDestinationFlowConfigDestinationConnectorPropertiesZendesk._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + error_handling_config=error_handling_config, + id_field_names=id_field_names, + write_operation_type=write_operation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + error_handling_config: Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig'] = None, + id_field_names: Optional[Sequence[str]] = None, + write_operation_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if error_handling_config is None and 'errorHandlingConfig' in kwargs: + error_handling_config = kwargs['errorHandlingConfig'] + if id_field_names is None and 'idFieldNames' in kwargs: + id_field_names = kwargs['idFieldNames'] + if write_operation_type is None and 'writeOperationType' in kwargs: + write_operation_type = kwargs['writeOperationType'] + + _setter("object", object) if error_handling_config is not None: - pulumi.set(__self__, "error_handling_config", error_handling_config) + _setter("error_handling_config", error_handling_config) if id_field_names is not None: - pulumi.set(__self__, "id_field_names", id_field_names) + _setter("id_field_names", id_field_names) if write_operation_type is not None: - pulumi.set(__self__, "write_operation_type", write_operation_type) + _setter("write_operation_type", write_operation_type) @property @pulumi.getter @@ -5182,7 +7001,7 @@ def object(self) -> str: @pulumi.getter(name="errorHandlingConfig") def error_handling_config(self) -> Optional['outputs.FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig']: """ - Settings that determine how Amazon AppFlow handles an error when placing data in the destination. See Error Handling Config for more details. + Settings that determine how Amazon AppFlow handles an error when placing data in the custom connector as destination. See Error Handling Config for more details. """ return pulumi.get(self, "error_handling_config") @@ -5235,12 +7054,33 @@ def __init__(__self__, *, :param str bucket_prefix: Amazon S3 bucket prefix. :param bool fail_on_first_destination_error: If the flow should fail after the first instance of a failure when attempting to place data in the destination. """ + FlowDestinationFlowConfigDestinationConnectorPropertiesZendeskErrorHandlingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + fail_on_first_destination_error=fail_on_first_destination_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + fail_on_first_destination_error: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if fail_on_first_destination_error is None and 'failOnFirstDestinationError' in kwargs: + fail_on_first_destination_error = kwargs['failOnFirstDestinationError'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if fail_on_first_destination_error is not None: - pulumi.set(__self__, "fail_on_first_destination_error", fail_on_first_destination_error) + _setter("fail_on_first_destination_error", fail_on_first_destination_error) @property @pulumi.getter(name="bucketName") @@ -5307,14 +7147,47 @@ def __init__(__self__, *, :param str connector_profile_name: Name of the connector profile. This name must be unique for each connector profile in the AWS account. :param 'FlowSourceFlowConfigIncrementalPullConfigArgs' incremental_pull_config: Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. See Incremental Pull Config for more details. """ - pulumi.set(__self__, "connector_type", connector_type) - pulumi.set(__self__, "source_connector_properties", source_connector_properties) + FlowSourceFlowConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + connector_type=connector_type, + source_connector_properties=source_connector_properties, + api_version=api_version, + connector_profile_name=connector_profile_name, + incremental_pull_config=incremental_pull_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connector_type: Optional[str] = None, + source_connector_properties: Optional['outputs.FlowSourceFlowConfigSourceConnectorProperties'] = None, + api_version: Optional[str] = None, + connector_profile_name: Optional[str] = None, + incremental_pull_config: Optional['outputs.FlowSourceFlowConfigIncrementalPullConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connector_type is None and 'connectorType' in kwargs: + connector_type = kwargs['connectorType'] + if connector_type is None: + raise TypeError("Missing 'connector_type' argument") + if source_connector_properties is None and 'sourceConnectorProperties' in kwargs: + source_connector_properties = kwargs['sourceConnectorProperties'] + if source_connector_properties is None: + raise TypeError("Missing 'source_connector_properties' argument") + if api_version is None and 'apiVersion' in kwargs: + api_version = kwargs['apiVersion'] + if connector_profile_name is None and 'connectorProfileName' in kwargs: + connector_profile_name = kwargs['connectorProfileName'] + if incremental_pull_config is None and 'incrementalPullConfig' in kwargs: + incremental_pull_config = kwargs['incrementalPullConfig'] + + _setter("connector_type", connector_type) + _setter("source_connector_properties", source_connector_properties) if api_version is not None: - pulumi.set(__self__, "api_version", api_version) + _setter("api_version", api_version) if connector_profile_name is not None: - pulumi.set(__self__, "connector_profile_name", connector_profile_name) + _setter("connector_profile_name", connector_profile_name) if incremental_pull_config is not None: - pulumi.set(__self__, "incremental_pull_config", incremental_pull_config) + _setter("incremental_pull_config", incremental_pull_config) @property @pulumi.getter(name="connectorType") @@ -5381,8 +7254,21 @@ def __init__(__self__, *, """ :param str datetime_type_field_name: Field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source. """ + FlowSourceFlowConfigIncrementalPullConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + datetime_type_field_name=datetime_type_field_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + datetime_type_field_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if datetime_type_field_name is None and 'datetimeTypeFieldName' in kwargs: + datetime_type_field_name = kwargs['datetimeTypeFieldName'] + if datetime_type_field_name is not None: - pulumi.set(__self__, "datetime_type_field_name", datetime_type_field_name) + _setter("datetime_type_field_name", datetime_type_field_name) @property @pulumi.getter(name="datetimeTypeFieldName") @@ -5455,38 +7341,89 @@ def __init__(__self__, *, :param 'FlowSourceFlowConfigSourceConnectorPropertiesVeevaArgs' veeva: Information that is required for querying Veeva. See Veeva Source Properties for more details. :param 'FlowSourceFlowConfigSourceConnectorPropertiesZendeskArgs' zendesk: Information that is required for querying Zendesk. See Generic Source Properties for more details. """ + FlowSourceFlowConfigSourceConnectorProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + amplitude=amplitude, + custom_connector=custom_connector, + datadog=datadog, + dynatrace=dynatrace, + google_analytics=google_analytics, + infor_nexus=infor_nexus, + marketo=marketo, + s3=s3, + salesforce=salesforce, + sapo_data=sapo_data, + service_now=service_now, + singular=singular, + slack=slack, + trendmicro=trendmicro, + veeva=veeva, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amplitude: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesAmplitude'] = None, + custom_connector: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesCustomConnector'] = None, + datadog: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesDatadog'] = None, + dynatrace: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesDynatrace'] = None, + google_analytics: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesGoogleAnalytics'] = None, + infor_nexus: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesInforNexus'] = None, + marketo: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesMarketo'] = None, + s3: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesS3'] = None, + salesforce: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesSalesforce'] = None, + sapo_data: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesSapoData'] = None, + service_now: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesServiceNow'] = None, + singular: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesSingular'] = None, + slack: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesSlack'] = None, + trendmicro: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesTrendmicro'] = None, + veeva: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesVeeva'] = None, + zendesk: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesZendesk'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if google_analytics is None and 'googleAnalytics' in kwargs: + google_analytics = kwargs['googleAnalytics'] + if infor_nexus is None and 'inforNexus' in kwargs: + infor_nexus = kwargs['inforNexus'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if amplitude is not None: - pulumi.set(__self__, "amplitude", amplitude) + _setter("amplitude", amplitude) if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if datadog is not None: - pulumi.set(__self__, "datadog", datadog) + _setter("datadog", datadog) if dynatrace is not None: - pulumi.set(__self__, "dynatrace", dynatrace) + _setter("dynatrace", dynatrace) if google_analytics is not None: - pulumi.set(__self__, "google_analytics", google_analytics) + _setter("google_analytics", google_analytics) if infor_nexus is not None: - pulumi.set(__self__, "infor_nexus", infor_nexus) + _setter("infor_nexus", infor_nexus) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if singular is not None: - pulumi.set(__self__, "singular", singular) + _setter("singular", singular) if slack is not None: - pulumi.set(__self__, "slack", slack) + _setter("slack", slack) if trendmicro is not None: - pulumi.set(__self__, "trendmicro", trendmicro) + _setter("trendmicro", trendmicro) if veeva is not None: - pulumi.set(__self__, "veeva", veeva) + _setter("veeva", veeva) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter @@ -5624,7 +7561,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesAmplitude._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5663,9 +7613,28 @@ def __init__(__self__, *, :param str entity_name: Entity specified in the custom connector as a destination in the flow. :param Mapping[str, str] custom_properties: Custom properties that are specific to the connector when it's used as a destination in the flow. Maximum of 50 items. """ - pulumi.set(__self__, "entity_name", entity_name) + FlowSourceFlowConfigSourceConnectorPropertiesCustomConnector._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_name=entity_name, + custom_properties=custom_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_name: Optional[str] = None, + custom_properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_name is None and 'entityName' in kwargs: + entity_name = kwargs['entityName'] + if entity_name is None: + raise TypeError("Missing 'entity_name' argument") + if custom_properties is None and 'customProperties' in kwargs: + custom_properties = kwargs['customProperties'] + + _setter("entity_name", entity_name) if custom_properties is not None: - pulumi.set(__self__, "custom_properties", custom_properties) + _setter("custom_properties", custom_properties) @property @pulumi.getter(name="entityName") @@ -5691,7 +7660,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesDatadog._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5709,7 +7691,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesDynatrace._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5727,7 +7722,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesGoogleAnalytics._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5745,7 +7753,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesInforNexus._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5763,7 +7784,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesMarketo._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5802,21 +7836,44 @@ def __init__(__self__, *, bucket_prefix: Optional[str] = None, s3_input_format_config: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfig'] = None): """ - :param str bucket_name: Amazon S3 bucket name in which Amazon AppFlow places the transferred data. - :param str bucket_prefix: Object key for the bucket in which Amazon AppFlow places the destination files. + :param str bucket_name: Name of the Amazon S3 bucket. + :param str bucket_prefix: Amazon S3 bucket prefix. :param 'FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfigArgs' s3_input_format_config: When you use Amazon S3 as the source, the configuration format that you provide the flow input data. See S3 Input Format Config for details. """ - pulumi.set(__self__, "bucket_name", bucket_name) + FlowSourceFlowConfigSourceConnectorPropertiesS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + s3_input_format_config=s3_input_format_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + s3_input_format_config: Optional['outputs.FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if s3_input_format_config is None and 's3InputFormatConfig' in kwargs: + s3_input_format_config = kwargs['s3InputFormatConfig'] + + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if s3_input_format_config is not None: - pulumi.set(__self__, "s3_input_format_config", s3_input_format_config) + _setter("s3_input_format_config", s3_input_format_config) @property @pulumi.getter(name="bucketName") def bucket_name(self) -> str: """ - Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + Name of the Amazon S3 bucket. """ return pulumi.get(self, "bucket_name") @@ -5824,7 +7881,7 @@ def bucket_name(self) -> str: @pulumi.getter(name="bucketPrefix") def bucket_prefix(self) -> Optional[str]: """ - Object key for the bucket in which Amazon AppFlow places the destination files. + Amazon S3 bucket prefix. """ return pulumi.get(self, "bucket_prefix") @@ -5861,8 +7918,21 @@ def __init__(__self__, *, """ :param str s3_input_file_type: File type that Amazon AppFlow gets from your Amazon S3 bucket. Valid values are `CSV` and `JSON`. """ + FlowSourceFlowConfigSourceConnectorPropertiesS3S3InputFormatConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_input_file_type=s3_input_file_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_input_file_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_input_file_type is None and 's3InputFileType' in kwargs: + s3_input_file_type = kwargs['s3InputFileType'] + if s3_input_file_type is not None: - pulumi.set(__self__, "s3_input_file_type", s3_input_file_type) + _setter("s3_input_file_type", s3_input_file_type) @property @pulumi.getter(name="s3InputFileType") @@ -5903,11 +7973,32 @@ def __init__(__self__, *, :param bool enable_dynamic_field_update: Flag that enables dynamic fetching of new (recently added) fields in the Salesforce objects while running a flow. :param bool include_deleted_records: Whether Amazon AppFlow includes deleted files in the flow run. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesSalesforce._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + enable_dynamic_field_update=enable_dynamic_field_update, + include_deleted_records=include_deleted_records, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + enable_dynamic_field_update: Optional[bool] = None, + include_deleted_records: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if enable_dynamic_field_update is None and 'enableDynamicFieldUpdate' in kwargs: + enable_dynamic_field_update = kwargs['enableDynamicFieldUpdate'] + if include_deleted_records is None and 'includeDeletedRecords' in kwargs: + include_deleted_records = kwargs['includeDeletedRecords'] + + _setter("object", object) if enable_dynamic_field_update is not None: - pulumi.set(__self__, "enable_dynamic_field_update", enable_dynamic_field_update) + _setter("enable_dynamic_field_update", enable_dynamic_field_update) if include_deleted_records is not None: - pulumi.set(__self__, "include_deleted_records", include_deleted_records) + _setter("include_deleted_records", include_deleted_records) @property @pulumi.getter @@ -5958,7 +8049,22 @@ def __init__(__self__, *, """ :param str object_path: Object path specified in the SAPOData flow destination. """ - pulumi.set(__self__, "object_path", object_path) + FlowSourceFlowConfigSourceConnectorPropertiesSapoData._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_path=object_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_path is None and 'objectPath' in kwargs: + object_path = kwargs['objectPath'] + if object_path is None: + raise TypeError("Missing 'object_path' argument") + + _setter("object_path", object_path) @property @pulumi.getter(name="objectPath") @@ -5976,7 +8082,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesServiceNow._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -5994,7 +8113,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesSingular._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -6012,7 +8144,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesSlack._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -6030,7 +8175,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesTrendmicro._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -6079,15 +8237,44 @@ def __init__(__self__, *, :param bool include_renditions: Boolean value to include file renditions in Veeva document extract flow. :param bool include_source_files: Boolean value to include source files in Veeva document extract flow. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesVeeva._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + document_type=document_type, + include_all_versions=include_all_versions, + include_renditions=include_renditions, + include_source_files=include_source_files, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + document_type: Optional[str] = None, + include_all_versions: Optional[bool] = None, + include_renditions: Optional[bool] = None, + include_source_files: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + if document_type is None and 'documentType' in kwargs: + document_type = kwargs['documentType'] + if include_all_versions is None and 'includeAllVersions' in kwargs: + include_all_versions = kwargs['includeAllVersions'] + if include_renditions is None and 'includeRenditions' in kwargs: + include_renditions = kwargs['includeRenditions'] + if include_source_files is None and 'includeSourceFiles' in kwargs: + include_source_files = kwargs['includeSourceFiles'] + + _setter("object", object) if document_type is not None: - pulumi.set(__self__, "document_type", document_type) + _setter("document_type", document_type) if include_all_versions is not None: - pulumi.set(__self__, "include_all_versions", include_all_versions) + _setter("include_all_versions", include_all_versions) if include_renditions is not None: - pulumi.set(__self__, "include_renditions", include_renditions) + _setter("include_renditions", include_renditions) if include_source_files is not None: - pulumi.set(__self__, "include_source_files", include_source_files) + _setter("include_source_files", include_source_files) @property @pulumi.getter @@ -6137,7 +8324,20 @@ def __init__(__self__, *, """ :param str object: Object specified in the flow destination. """ - pulumi.set(__self__, "object", object) + FlowSourceFlowConfigSourceConnectorPropertiesZendesk._configure( + lambda key, value: pulumi.set(__self__, key, value), + object=object, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object is None: + raise TypeError("Missing 'object' argument") + + _setter("object", object) @property @pulumi.getter @@ -6188,14 +8388,47 @@ def __init__(__self__, *, :param str destination_field: Field in a destination connector, or a field value against which Amazon AppFlow validates a source field. :param Mapping[str, str] task_properties: Map used to store task-related information. The execution service looks for particular information based on the `TaskType`. Valid keys are `VALUE`, `VALUES`, `DATA_TYPE`, `UPPER_BOUND`, `LOWER_BOUND`, `SOURCE_DATA_TYPE`, `DESTINATION_DATA_TYPE`, `VALIDATION_ACTION`, `MASK_VALUE`, `MASK_LENGTH`, `TRUNCATE_LENGTH`, `MATH_OPERATION_FIELDS_ORDER`, `CONCAT_FORMAT`, `SUBFIELD_CATEGORY_MAP`, and `EXCLUDE_SOURCE_FIELDS_LIST`. """ - pulumi.set(__self__, "source_fields", source_fields) - pulumi.set(__self__, "task_type", task_type) + FlowTask._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_fields=source_fields, + task_type=task_type, + connector_operators=connector_operators, + destination_field=destination_field, + task_properties=task_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_fields: Optional[Sequence[str]] = None, + task_type: Optional[str] = None, + connector_operators: Optional[Sequence['outputs.FlowTaskConnectorOperator']] = None, + destination_field: Optional[str] = None, + task_properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_fields is None and 'sourceFields' in kwargs: + source_fields = kwargs['sourceFields'] + if source_fields is None: + raise TypeError("Missing 'source_fields' argument") + if task_type is None and 'taskType' in kwargs: + task_type = kwargs['taskType'] + if task_type is None: + raise TypeError("Missing 'task_type' argument") + if connector_operators is None and 'connectorOperators' in kwargs: + connector_operators = kwargs['connectorOperators'] + if destination_field is None and 'destinationField' in kwargs: + destination_field = kwargs['destinationField'] + if task_properties is None and 'taskProperties' in kwargs: + task_properties = kwargs['taskProperties'] + + _setter("source_fields", source_fields) + _setter("task_type", task_type) if connector_operators is not None: - pulumi.set(__self__, "connector_operators", connector_operators) + _setter("connector_operators", connector_operators) if destination_field is not None: - pulumi.set(__self__, "destination_field", destination_field) + _setter("destination_field", destination_field) if task_properties is not None: - pulumi.set(__self__, "task_properties", task_properties) + _setter("task_properties", task_properties) @property @pulumi.getter(name="sourceFields") @@ -6300,38 +8533,89 @@ def __init__(__self__, *, :param str veeva: Operation to be performed on the provided Veeva source fields. Valid values are `PROJECTION`, `LESS_THAN`, `GREATER_THAN`, `CONTAINS`, `BETWEEN`, `LESS_THAN_OR_EQUAL_TO`, `GREATER_THAN_OR_EQUAL_TO`, `EQUAL_TO`, `NOT_EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`. :param str zendesk: Operation to be performed on the provided Zendesk source fields. Valid values are `PROJECTION`, `GREATER_THAN`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`. """ + FlowTaskConnectorOperator._configure( + lambda key, value: pulumi.set(__self__, key, value), + amplitude=amplitude, + custom_connector=custom_connector, + datadog=datadog, + dynatrace=dynatrace, + google_analytics=google_analytics, + infor_nexus=infor_nexus, + marketo=marketo, + s3=s3, + salesforce=salesforce, + sapo_data=sapo_data, + service_now=service_now, + singular=singular, + slack=slack, + trendmicro=trendmicro, + veeva=veeva, + zendesk=zendesk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amplitude: Optional[str] = None, + custom_connector: Optional[str] = None, + datadog: Optional[str] = None, + dynatrace: Optional[str] = None, + google_analytics: Optional[str] = None, + infor_nexus: Optional[str] = None, + marketo: Optional[str] = None, + s3: Optional[str] = None, + salesforce: Optional[str] = None, + sapo_data: Optional[str] = None, + service_now: Optional[str] = None, + singular: Optional[str] = None, + slack: Optional[str] = None, + trendmicro: Optional[str] = None, + veeva: Optional[str] = None, + zendesk: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_connector is None and 'customConnector' in kwargs: + custom_connector = kwargs['customConnector'] + if google_analytics is None and 'googleAnalytics' in kwargs: + google_analytics = kwargs['googleAnalytics'] + if infor_nexus is None and 'inforNexus' in kwargs: + infor_nexus = kwargs['inforNexus'] + if sapo_data is None and 'sapoData' in kwargs: + sapo_data = kwargs['sapoData'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if amplitude is not None: - pulumi.set(__self__, "amplitude", amplitude) + _setter("amplitude", amplitude) if custom_connector is not None: - pulumi.set(__self__, "custom_connector", custom_connector) + _setter("custom_connector", custom_connector) if datadog is not None: - pulumi.set(__self__, "datadog", datadog) + _setter("datadog", datadog) if dynatrace is not None: - pulumi.set(__self__, "dynatrace", dynatrace) + _setter("dynatrace", dynatrace) if google_analytics is not None: - pulumi.set(__self__, "google_analytics", google_analytics) + _setter("google_analytics", google_analytics) if infor_nexus is not None: - pulumi.set(__self__, "infor_nexus", infor_nexus) + _setter("infor_nexus", infor_nexus) if marketo is not None: - pulumi.set(__self__, "marketo", marketo) + _setter("marketo", marketo) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if salesforce is not None: - pulumi.set(__self__, "salesforce", salesforce) + _setter("salesforce", salesforce) if sapo_data is not None: - pulumi.set(__self__, "sapo_data", sapo_data) + _setter("sapo_data", sapo_data) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if singular is not None: - pulumi.set(__self__, "singular", singular) + _setter("singular", singular) if slack is not None: - pulumi.set(__self__, "slack", slack) + _setter("slack", slack) if trendmicro is not None: - pulumi.set(__self__, "trendmicro", trendmicro) + _setter("trendmicro", trendmicro) if veeva is not None: - pulumi.set(__self__, "veeva", veeva) + _setter("veeva", veeva) if zendesk is not None: - pulumi.set(__self__, "zendesk", zendesk) + _setter("zendesk", zendesk) @property @pulumi.getter @@ -6490,9 +8774,28 @@ def __init__(__self__, *, :param str trigger_type: Type of flow trigger. Valid values are `Scheduled`, `Event`, and `OnDemand`. :param 'FlowTriggerConfigTriggerPropertiesArgs' trigger_properties: Configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the `Scheduled` trigger type. See Scheduled Trigger Properties for details. """ - pulumi.set(__self__, "trigger_type", trigger_type) + FlowTriggerConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + trigger_type=trigger_type, + trigger_properties=trigger_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trigger_type: Optional[str] = None, + trigger_properties: Optional['outputs.FlowTriggerConfigTriggerProperties'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trigger_type is None and 'triggerType' in kwargs: + trigger_type = kwargs['triggerType'] + if trigger_type is None: + raise TypeError("Missing 'trigger_type' argument") + if trigger_properties is None and 'triggerProperties' in kwargs: + trigger_properties = kwargs['triggerProperties'] + + _setter("trigger_type", trigger_type) if trigger_properties is not None: - pulumi.set(__self__, "trigger_properties", trigger_properties) + _setter("trigger_properties", trigger_properties) @property @pulumi.getter(name="triggerType") @@ -6515,8 +8818,19 @@ def trigger_properties(self) -> Optional['outputs.FlowTriggerConfigTriggerProper class FlowTriggerConfigTriggerProperties(dict): def __init__(__self__, *, scheduled: Optional['outputs.FlowTriggerConfigTriggerPropertiesScheduled'] = None): + FlowTriggerConfigTriggerProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + scheduled=scheduled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scheduled: Optional['outputs.FlowTriggerConfigTriggerPropertiesScheduled'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scheduled is not None: - pulumi.set(__self__, "scheduled", scheduled) + _setter("scheduled", scheduled) @property @pulumi.getter @@ -6570,19 +8884,56 @@ def __init__(__self__, *, :param str schedule_start_time: Scheduled start time for a schedule-triggered flow. Must be a valid RFC3339 timestamp. :param str timezone: Time zone used when referring to the date and time of a scheduled-triggered flow, such as `America/New_York`. """ - pulumi.set(__self__, "schedule_expression", schedule_expression) + FlowTriggerConfigTriggerPropertiesScheduled._configure( + lambda key, value: pulumi.set(__self__, key, value), + schedule_expression=schedule_expression, + data_pull_mode=data_pull_mode, + first_execution_from=first_execution_from, + schedule_end_time=schedule_end_time, + schedule_offset=schedule_offset, + schedule_start_time=schedule_start_time, + timezone=timezone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schedule_expression: Optional[str] = None, + data_pull_mode: Optional[str] = None, + first_execution_from: Optional[str] = None, + schedule_end_time: Optional[str] = None, + schedule_offset: Optional[int] = None, + schedule_start_time: Optional[str] = None, + timezone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + if data_pull_mode is None and 'dataPullMode' in kwargs: + data_pull_mode = kwargs['dataPullMode'] + if first_execution_from is None and 'firstExecutionFrom' in kwargs: + first_execution_from = kwargs['firstExecutionFrom'] + if schedule_end_time is None and 'scheduleEndTime' in kwargs: + schedule_end_time = kwargs['scheduleEndTime'] + if schedule_offset is None and 'scheduleOffset' in kwargs: + schedule_offset = kwargs['scheduleOffset'] + if schedule_start_time is None and 'scheduleStartTime' in kwargs: + schedule_start_time = kwargs['scheduleStartTime'] + + _setter("schedule_expression", schedule_expression) if data_pull_mode is not None: - pulumi.set(__self__, "data_pull_mode", data_pull_mode) + _setter("data_pull_mode", data_pull_mode) if first_execution_from is not None: - pulumi.set(__self__, "first_execution_from", first_execution_from) + _setter("first_execution_from", first_execution_from) if schedule_end_time is not None: - pulumi.set(__self__, "schedule_end_time", schedule_end_time) + _setter("schedule_end_time", schedule_end_time) if schedule_offset is not None: - pulumi.set(__self__, "schedule_offset", schedule_offset) + _setter("schedule_offset", schedule_offset) if schedule_start_time is not None: - pulumi.set(__self__, "schedule_start_time", schedule_start_time) + _setter("schedule_start_time", schedule_start_time) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) @property @pulumi.getter(name="scheduleExpression") diff --git a/sdk/python/pulumi_aws/appintegrations/_inputs.py b/sdk/python/pulumi_aws/appintegrations/_inputs.py index d36982a3289..44fed7ffc1b 100644 --- a/sdk/python/pulumi_aws/appintegrations/_inputs.py +++ b/sdk/python/pulumi_aws/appintegrations/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,9 +24,34 @@ def __init__(__self__, *, :param pulumi.Input[str] object: The name of the object to pull from the data source. Examples of objects in Salesforce include `Case`, `Account`, or `Lead`. :param pulumi.Input[str] schedule_expression: How often the data should be pulled from data source. Examples include `rate(1 hour)`, `rate(3 hours)`, `rate(1 day)`. """ - pulumi.set(__self__, "first_execution_from", first_execution_from) - pulumi.set(__self__, "object", object) - pulumi.set(__self__, "schedule_expression", schedule_expression) + DataIntegrationScheduleConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + first_execution_from=first_execution_from, + object=object, + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + first_execution_from: Optional[pulumi.Input[str]] = None, + object: Optional[pulumi.Input[str]] = None, + schedule_expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if first_execution_from is None and 'firstExecutionFrom' in kwargs: + first_execution_from = kwargs['firstExecutionFrom'] + if first_execution_from is None: + raise TypeError("Missing 'first_execution_from' argument") + if object is None: + raise TypeError("Missing 'object' argument") + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + + _setter("first_execution_from", first_execution_from) + _setter("object", object) + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="firstExecutionFrom") diff --git a/sdk/python/pulumi_aws/appintegrations/data_integration.py b/sdk/python/pulumi_aws/appintegrations/data_integration.py index 3f6020ab27a..8b76d97a691 100644 --- a/sdk/python/pulumi_aws/appintegrations/data_integration.py +++ b/sdk/python/pulumi_aws/appintegrations/data_integration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Specifies the name of the Data Integration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Data Integration. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "kms_key", kms_key) - pulumi.set(__self__, "schedule_config", schedule_config) - pulumi.set(__self__, "source_uri", source_uri) + DataIntegrationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key=kms_key, + schedule_config=schedule_config, + source_uri=source_uri, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key: Optional[pulumi.Input[str]] = None, + schedule_config: Optional[pulumi.Input['DataIntegrationScheduleConfigArgs']] = None, + source_uri: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if kms_key is None: + raise TypeError("Missing 'kms_key' argument") + if schedule_config is None and 'scheduleConfig' in kwargs: + schedule_config = kwargs['scheduleConfig'] + if schedule_config is None: + raise TypeError("Missing 'schedule_config' argument") + if source_uri is None and 'sourceUri' in kwargs: + source_uri = kwargs['sourceUri'] + if source_uri is None: + raise TypeError("Missing 'source_uri' argument") + + _setter("kms_key", kms_key) + _setter("schedule_config", schedule_config) + _setter("source_uri", source_uri) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="kmsKey") @@ -136,25 +169,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Data Integration. 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. """ + _DataIntegrationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + kms_key=kms_key, + name=name, + schedule_config=schedule_config, + source_uri=source_uri, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + schedule_config: Optional[pulumi.Input['DataIntegrationScheduleConfigArgs']] = None, + source_uri: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if schedule_config is None and 'scheduleConfig' in kwargs: + schedule_config = kwargs['scheduleConfig'] + if source_uri is None and 'sourceUri' in kwargs: + source_uri = kwargs['sourceUri'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if schedule_config is not None: - pulumi.set(__self__, "schedule_config", schedule_config) + _setter("schedule_config", schedule_config) if source_uri is not None: - pulumi.set(__self__, "source_uri", source_uri) + _setter("source_uri", source_uri) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -355,6 +421,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataIntegrationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -380,6 +450,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'kms_key'") __props__.__dict__["kms_key"] = kms_key __props__.__dict__["name"] = name + schedule_config = _utilities.configure(schedule_config, DataIntegrationScheduleConfigArgs, True) if schedule_config is None and not opts.urn: raise TypeError("Missing required property 'schedule_config'") __props__.__dict__["schedule_config"] = schedule_config diff --git a/sdk/python/pulumi_aws/appintegrations/get_event_integration.py b/sdk/python/pulumi_aws/appintegrations/get_event_integration.py index 02cd5cb97b0..b9f1b37ee75 100644 --- a/sdk/python/pulumi_aws/appintegrations/get_event_integration.py +++ b/sdk/python/pulumi_aws/appintegrations/get_event_integration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appintegrations/outputs.py b/sdk/python/pulumi_aws/appintegrations/outputs.py index 5324f951d75..0f765075625 100644 --- a/sdk/python/pulumi_aws/appintegrations/outputs.py +++ b/sdk/python/pulumi_aws/appintegrations/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -44,9 +44,34 @@ def __init__(__self__, *, :param str object: The name of the object to pull from the data source. Examples of objects in Salesforce include `Case`, `Account`, or `Lead`. :param str schedule_expression: How often the data should be pulled from data source. Examples include `rate(1 hour)`, `rate(3 hours)`, `rate(1 day)`. """ - pulumi.set(__self__, "first_execution_from", first_execution_from) - pulumi.set(__self__, "object", object) - pulumi.set(__self__, "schedule_expression", schedule_expression) + DataIntegrationScheduleConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + first_execution_from=first_execution_from, + object=object, + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + first_execution_from: Optional[str] = None, + object: Optional[str] = None, + schedule_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if first_execution_from is None and 'firstExecutionFrom' in kwargs: + first_execution_from = kwargs['firstExecutionFrom'] + if first_execution_from is None: + raise TypeError("Missing 'first_execution_from' argument") + if object is None: + raise TypeError("Missing 'object' argument") + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + + _setter("first_execution_from", first_execution_from) + _setter("object", object) + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="firstExecutionFrom") @@ -80,7 +105,20 @@ def __init__(__self__, *, """ :param str source: The source of the events. """ - pulumi.set(__self__, "source", source) + GetEventIntegrationEventFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("source", source) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/applicationinsights/application.py b/sdk/python/pulumi_aws/applicationinsights/application.py index 4435b667004..36f422211a2 100644 --- a/sdk/python/pulumi_aws/applicationinsights/application.py +++ b/sdk/python/pulumi_aws/applicationinsights/application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApplicationArgs', 'Application'] @@ -35,21 +35,62 @@ def __init__(__self__, *, :param pulumi.Input[str] ops_item_sns_topic_arn: SNS topic provided to Application Insights that is associated to the created opsItem. Allows you to receive notifications for updates to the opsItem. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "resource_group_name", resource_group_name) + ApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_group_name=resource_group_name, + auto_config_enabled=auto_config_enabled, + auto_create=auto_create, + cwe_monitor_enabled=cwe_monitor_enabled, + grouping_type=grouping_type, + ops_center_enabled=ops_center_enabled, + ops_item_sns_topic_arn=ops_item_sns_topic_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_group_name: Optional[pulumi.Input[str]] = None, + auto_config_enabled: Optional[pulumi.Input[bool]] = None, + auto_create: Optional[pulumi.Input[bool]] = None, + cwe_monitor_enabled: Optional[pulumi.Input[bool]] = None, + grouping_type: Optional[pulumi.Input[str]] = None, + ops_center_enabled: Optional[pulumi.Input[bool]] = None, + ops_item_sns_topic_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_group_name is None and 'resourceGroupName' in kwargs: + resource_group_name = kwargs['resourceGroupName'] + if resource_group_name is None: + raise TypeError("Missing 'resource_group_name' argument") + if auto_config_enabled is None and 'autoConfigEnabled' in kwargs: + auto_config_enabled = kwargs['autoConfigEnabled'] + if auto_create is None and 'autoCreate' in kwargs: + auto_create = kwargs['autoCreate'] + if cwe_monitor_enabled is None and 'cweMonitorEnabled' in kwargs: + cwe_monitor_enabled = kwargs['cweMonitorEnabled'] + if grouping_type is None and 'groupingType' in kwargs: + grouping_type = kwargs['groupingType'] + if ops_center_enabled is None and 'opsCenterEnabled' in kwargs: + ops_center_enabled = kwargs['opsCenterEnabled'] + if ops_item_sns_topic_arn is None and 'opsItemSnsTopicArn' in kwargs: + ops_item_sns_topic_arn = kwargs['opsItemSnsTopicArn'] + + _setter("resource_group_name", resource_group_name) if auto_config_enabled is not None: - pulumi.set(__self__, "auto_config_enabled", auto_config_enabled) + _setter("auto_config_enabled", auto_config_enabled) if auto_create is not None: - pulumi.set(__self__, "auto_create", auto_create) + _setter("auto_create", auto_create) if cwe_monitor_enabled is not None: - pulumi.set(__self__, "cwe_monitor_enabled", cwe_monitor_enabled) + _setter("cwe_monitor_enabled", cwe_monitor_enabled) if grouping_type is not None: - pulumi.set(__self__, "grouping_type", grouping_type) + _setter("grouping_type", grouping_type) if ops_center_enabled is not None: - pulumi.set(__self__, "ops_center_enabled", ops_center_enabled) + _setter("ops_center_enabled", ops_center_enabled) if ops_item_sns_topic_arn is not None: - pulumi.set(__self__, "ops_item_sns_topic_arn", ops_item_sns_topic_arn) + _setter("ops_item_sns_topic_arn", ops_item_sns_topic_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="resourceGroupName") @@ -178,29 +219,74 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_config_enabled=auto_config_enabled, + auto_create=auto_create, + cwe_monitor_enabled=cwe_monitor_enabled, + grouping_type=grouping_type, + ops_center_enabled=ops_center_enabled, + ops_item_sns_topic_arn=ops_item_sns_topic_arn, + resource_group_name=resource_group_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_config_enabled: Optional[pulumi.Input[bool]] = None, + auto_create: Optional[pulumi.Input[bool]] = None, + cwe_monitor_enabled: Optional[pulumi.Input[bool]] = None, + grouping_type: Optional[pulumi.Input[str]] = None, + ops_center_enabled: Optional[pulumi.Input[bool]] = None, + ops_item_sns_topic_arn: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_config_enabled is None and 'autoConfigEnabled' in kwargs: + auto_config_enabled = kwargs['autoConfigEnabled'] + if auto_create is None and 'autoCreate' in kwargs: + auto_create = kwargs['autoCreate'] + if cwe_monitor_enabled is None and 'cweMonitorEnabled' in kwargs: + cwe_monitor_enabled = kwargs['cweMonitorEnabled'] + if grouping_type is None and 'groupingType' in kwargs: + grouping_type = kwargs['groupingType'] + if ops_center_enabled is None and 'opsCenterEnabled' in kwargs: + ops_center_enabled = kwargs['opsCenterEnabled'] + if ops_item_sns_topic_arn is None and 'opsItemSnsTopicArn' in kwargs: + ops_item_sns_topic_arn = kwargs['opsItemSnsTopicArn'] + if resource_group_name is None and 'resourceGroupName' in kwargs: + resource_group_name = kwargs['resourceGroupName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_config_enabled is not None: - pulumi.set(__self__, "auto_config_enabled", auto_config_enabled) + _setter("auto_config_enabled", auto_config_enabled) if auto_create is not None: - pulumi.set(__self__, "auto_create", auto_create) + _setter("auto_create", auto_create) if cwe_monitor_enabled is not None: - pulumi.set(__self__, "cwe_monitor_enabled", cwe_monitor_enabled) + _setter("cwe_monitor_enabled", cwe_monitor_enabled) if grouping_type is not None: - pulumi.set(__self__, "grouping_type", grouping_type) + _setter("grouping_type", grouping_type) if ops_center_enabled is not None: - pulumi.set(__self__, "ops_center_enabled", ops_center_enabled) + _setter("ops_center_enabled", ops_center_enabled) if ops_item_sns_topic_arn is not None: - pulumi.set(__self__, "ops_item_sns_topic_arn", ops_item_sns_topic_arn) + _setter("ops_item_sns_topic_arn", ops_item_sns_topic_arn) if resource_group_name is not None: - pulumi.set(__self__, "resource_group_name", resource_group_name) + _setter("resource_group_name", resource_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -431,6 +517,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appmesh/_inputs.py b/sdk/python/pulumi_aws/appmesh/_inputs.py index a7b6a8ee893..3ead1870624 100644 --- a/sdk/python/pulumi_aws/appmesh/_inputs.py +++ b/sdk/python/pulumi_aws/appmesh/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -228,14 +228,37 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecHttpRouteArgs'] http_route: Specification of an HTTP gateway route. :param pulumi.Input[int] priority: Priority for the gateway route, between `0` and `1000`. """ + GatewayRouteSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc_route=grpc_route, + http2_route=http2_route, + http_route=http_route, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc_route: Optional[pulumi.Input['GatewayRouteSpecGrpcRouteArgs']] = None, + http2_route: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteArgs']] = None, + http_route: Optional[pulumi.Input['GatewayRouteSpecHttpRouteArgs']] = None, + priority: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc_route is None and 'grpcRoute' in kwargs: + grpc_route = kwargs['grpcRoute'] + if http2_route is None and 'http2Route' in kwargs: + http2_route = kwargs['http2Route'] + if http_route is None and 'httpRoute' in kwargs: + http_route = kwargs['httpRoute'] + if grpc_route is not None: - pulumi.set(__self__, "grpc_route", grpc_route) + _setter("grpc_route", grpc_route) if http2_route is not None: - pulumi.set(__self__, "http2_route", http2_route) + _setter("http2_route", http2_route) if http_route is not None: - pulumi.set(__self__, "http_route", http_route) + _setter("http_route", http_route) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) @property @pulumi.getter(name="grpcRoute") @@ -295,8 +318,25 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecGrpcRouteActionArgs'] action: Action to take if a match is determined. :param pulumi.Input['GatewayRouteSpecGrpcRouteMatchArgs'] match: Criteria for determining a request match. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + GatewayRouteSpecGrpcRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['GatewayRouteSpecGrpcRouteActionArgs']] = None, + match: Optional[pulumi.Input['GatewayRouteSpecGrpcRouteMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("action", action) + _setter("match", match) @property @pulumi.getter @@ -330,7 +370,20 @@ def __init__(__self__, *, """ :param pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetArgs'] target: Target that traffic is routed to when a request matches the gateway route. """ - pulumi.set(__self__, "target", target) + GatewayRouteSpecGrpcRouteActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target: Optional[pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("target", target) @property @pulumi.getter @@ -354,9 +407,26 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs'] virtual_service: Virtual service gateway route target. :param pulumi.Input[int] port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. """ - pulumi.set(__self__, "virtual_service", virtual_service) + GatewayRouteSpecGrpcRouteActionTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service=virtual_service, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service: Optional[pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs']] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service is None and 'virtualService' in kwargs: + virtual_service = kwargs['virtualService'] + if virtual_service is None: + raise TypeError("Missing 'virtual_service' argument") + + _setter("virtual_service", virtual_service) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualService") @@ -390,7 +460,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] virtual_service_name: Name of the virtual service that traffic is routed to. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="virtualServiceName") @@ -412,11 +497,28 @@ def __init__(__self__, *, port: Optional[pulumi.Input[int]] = None): """ :param pulumi.Input[str] service_name: Fully qualified domain name for the service to match from the request. - :param pulumi.Input[int] port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + :param pulumi.Input[int] port: The port number to match from the request. """ - pulumi.set(__self__, "service_name", service_name) + GatewayRouteSpecGrpcRouteMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_name=service_name, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("service_name", service_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="serviceName") @@ -434,7 +536,7 @@ def service_name(self, value: pulumi.Input[str]): @pulumi.getter def port(self) -> Optional[pulumi.Input[int]]: """ - The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + The port number to match from the request. """ return pulumi.get(self, "port") @@ -452,8 +554,25 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecHttp2RouteActionArgs'] action: Action to take if a match is determined. :param pulumi.Input['GatewayRouteSpecHttp2RouteMatchArgs'] match: Criteria for determining a request match. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + GatewayRouteSpecHttp2RouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteActionArgs']] = None, + match: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("action", action) + _setter("match", match) @property @pulumi.getter @@ -489,9 +608,24 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetArgs'] target: Target that traffic is routed to when a request matches the gateway route. :param pulumi.Input['GatewayRouteSpecHttp2RouteActionRewriteArgs'] rewrite: Gateway route action to rewrite. """ - pulumi.set(__self__, "target", target) + GatewayRouteSpecHttp2RouteActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target=target, + rewrite=rewrite, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetArgs']] = None, + rewrite: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteActionRewriteArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("target", target) if rewrite is not None: - pulumi.set(__self__, "rewrite", rewrite) + _setter("rewrite", rewrite) @property @pulumi.getter @@ -529,12 +663,27 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecHttp2RouteActionRewritePathArgs'] path: Exact path to rewrite. :param pulumi.Input['GatewayRouteSpecHttp2RouteActionRewritePrefixArgs'] prefix: Specified beginning characters to rewrite. """ + GatewayRouteSpecHttp2RouteActionRewriteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostname=hostname, + path=path, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostname: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteActionRewriteHostnameArgs']] = None, + path: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteActionRewritePathArgs']] = None, + prefix: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteActionRewritePrefixArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -580,7 +729,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] default_target_hostname: Default target host name to write to. Valid values: `ENABLED`, `DISABLED`. """ - pulumi.set(__self__, "default_target_hostname", default_target_hostname) + GatewayRouteSpecHttp2RouteActionRewriteHostnameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_target_hostname=default_target_hostname, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_target_hostname: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_target_hostname is None and 'defaultTargetHostname' in kwargs: + default_target_hostname = kwargs['defaultTargetHostname'] + if default_target_hostname is None: + raise TypeError("Missing 'default_target_hostname' argument") + + _setter("default_target_hostname", default_target_hostname) @property @pulumi.getter(name="defaultTargetHostname") @@ -602,7 +766,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] exact: The exact path to match on. """ - pulumi.set(__self__, "exact", exact) + GatewayRouteSpecHttp2RouteActionRewritePathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -626,10 +803,25 @@ def __init__(__self__, *, :param pulumi.Input[str] default_prefix: Default prefix used to replace the incoming route prefix when rewritten. Valid values: `ENABLED`, `DISABLED`. :param pulumi.Input[str] value: Value used to replace the incoming route prefix when rewritten. """ + GatewayRouteSpecHttp2RouteActionRewritePrefixArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_prefix=default_prefix, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_prefix: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_prefix is None and 'defaultPrefix' in kwargs: + default_prefix = kwargs['defaultPrefix'] + if default_prefix is not None: - pulumi.set(__self__, "default_prefix", default_prefix) + _setter("default_prefix", default_prefix) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="defaultPrefix") @@ -665,9 +857,26 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs'] virtual_service: Virtual service gateway route target. :param pulumi.Input[int] port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. """ - pulumi.set(__self__, "virtual_service", virtual_service) + GatewayRouteSpecHttp2RouteActionTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service=virtual_service, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs']] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service is None and 'virtualService' in kwargs: + virtual_service = kwargs['virtualService'] + if virtual_service is None: + raise TypeError("Missing 'virtual_service' argument") + + _setter("virtual_service", virtual_service) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualService") @@ -701,7 +910,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] virtual_service_name: Name of the virtual service that traffic is routed to. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="virtualServiceName") @@ -727,24 +951,47 @@ def __init__(__self__, *, query_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttp2RouteMatchQueryParameterArgs']]]] = None): """ :param pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttp2RouteMatchHeaderArgs']]] headers: Client request headers to match on. - :param pulumi.Input['GatewayRouteSpecHttp2RouteMatchHostnameArgs'] hostname: Host name to rewrite. - :param pulumi.Input['GatewayRouteSpecHttp2RouteMatchPathArgs'] path: Exact path to rewrite. - :param pulumi.Input[int] port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. - :param pulumi.Input[str] prefix: Specified beginning characters to rewrite. + :param pulumi.Input['GatewayRouteSpecHttp2RouteMatchHostnameArgs'] hostname: Host name to match on. + :param pulumi.Input['GatewayRouteSpecHttp2RouteMatchPathArgs'] path: Client request path to match on. + :param pulumi.Input[int] port: The port number to match from the request. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. :param pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttp2RouteMatchQueryParameterArgs']]] query_parameters: Client request query parameters to match on. """ + GatewayRouteSpecHttp2RouteMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + hostname=hostname, + path=path, + port=port, + prefix=prefix, + query_parameters=query_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttp2RouteMatchHeaderArgs']]]] = None, + hostname: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatchHostnameArgs']] = None, + path: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatchPathArgs']] = None, + port: Optional[pulumi.Input[int]] = None, + prefix: Optional[pulumi.Input[str]] = None, + query_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttp2RouteMatchQueryParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if query_parameters is not None: - pulumi.set(__self__, "query_parameters", query_parameters) + _setter("query_parameters", query_parameters) @property @pulumi.getter @@ -762,7 +1009,7 @@ def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayRou @pulumi.getter def hostname(self) -> Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatchHostnameArgs']]: """ - Host name to rewrite. + Host name to match on. """ return pulumi.get(self, "hostname") @@ -774,7 +1021,7 @@ def hostname(self, value: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatch @pulumi.getter def path(self) -> Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatchPathArgs']]: """ - Exact path to rewrite. + Client request path to match on. """ return pulumi.get(self, "path") @@ -786,7 +1033,7 @@ def path(self, value: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatchPath @pulumi.getter def port(self) -> Optional[pulumi.Input[int]]: """ - The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + The port number to match from the request. """ return pulumi.get(self, "port") @@ -798,7 +1045,7 @@ def port(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Specified beginning characters to rewrite. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -830,11 +1077,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. :param pulumi.Input['GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs'] match: Method and value to match the header value sent with a request. Specify one match method. """ - pulumi.set(__self__, "name", name) + GatewayRouteSpecHttp2RouteMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + invert: Optional[pulumi.Input[bool]] = None, + match: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -882,28 +1146,47 @@ def __init__(__self__, *, regex: Optional[pulumi.Input[str]] = None, suffix: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] exact: Value used to replace matched path. - :param pulumi.Input[str] prefix: Specified beginning characters to rewrite. + :param pulumi.Input[str] exact: Header value sent by the client must match the specified value exactly. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. :param pulumi.Input['GatewayRouteSpecHttp2RouteMatchHeaderMatchRangeArgs'] range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param pulumi.Input[str] regex: Header value sent by the client must include the specified characters. :param pulumi.Input[str] suffix: Header value sent by the client must end with the specified characters. """ + GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + range: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatchHeaderMatchRangeArgs']] = None, + regex: Optional[pulumi.Input[str]] = None, + suffix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter def exact(self) -> Optional[pulumi.Input[str]]: """ - Value used to replace matched path. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -915,7 +1198,7 @@ def exact(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Specified beginning characters to rewrite. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -969,8 +1252,25 @@ def __init__(__self__, *, :param pulumi.Input[int] end: End of the range. :param pulumi.Input[int] start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GatewayRouteSpecHttp2RouteMatchHeaderMatchRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[pulumi.Input[int]] = None, + start: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -1006,10 +1306,23 @@ def __init__(__self__, *, :param pulumi.Input[str] exact: Exact host name to match on. :param pulumi.Input[str] suffix: Specified ending characters of the host name to match on. """ + GatewayRouteSpecHttp2RouteMatchHostnameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + suffix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -1045,10 +1358,23 @@ def __init__(__self__, *, :param pulumi.Input[str] exact: The exact path to match on. :param pulumi.Input[str] regex: The regex used to match the path. """ + GatewayRouteSpecHttp2RouteMatchPathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + regex: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) @property @pulumi.getter @@ -1084,9 +1410,24 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the query parameter that will be matched on. :param pulumi.Input['GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs'] match: The query parameter to match on. """ - pulumi.set(__self__, "name", name) + GatewayRouteSpecHttp2RouteMatchQueryParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + match: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -1118,16 +1459,27 @@ class GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs: def __init__(__self__, *, exact: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] exact: Value used to replace matched path. + :param pulumi.Input[str] exact: Header value sent by the client must match the specified value exactly. """ + GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) @property @pulumi.getter def exact(self) -> Optional[pulumi.Input[str]]: """ - Value used to replace matched path. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -1145,8 +1497,25 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecHttpRouteActionArgs'] action: Action to take if a match is determined. :param pulumi.Input['GatewayRouteSpecHttpRouteMatchArgs'] match: Criteria for determining a request match. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + GatewayRouteSpecHttpRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['GatewayRouteSpecHttpRouteActionArgs']] = None, + match: Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("action", action) + _setter("match", match) @property @pulumi.getter @@ -1182,9 +1551,24 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecHttpRouteActionTargetArgs'] target: Target that traffic is routed to when a request matches the gateway route. :param pulumi.Input['GatewayRouteSpecHttpRouteActionRewriteArgs'] rewrite: Gateway route action to rewrite. """ - pulumi.set(__self__, "target", target) + GatewayRouteSpecHttpRouteActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target=target, + rewrite=rewrite, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target: Optional[pulumi.Input['GatewayRouteSpecHttpRouteActionTargetArgs']] = None, + rewrite: Optional[pulumi.Input['GatewayRouteSpecHttpRouteActionRewriteArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("target", target) if rewrite is not None: - pulumi.set(__self__, "rewrite", rewrite) + _setter("rewrite", rewrite) @property @pulumi.getter @@ -1222,12 +1606,27 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecHttpRouteActionRewritePathArgs'] path: Exact path to rewrite. :param pulumi.Input['GatewayRouteSpecHttpRouteActionRewritePrefixArgs'] prefix: Specified beginning characters to rewrite. """ + GatewayRouteSpecHttpRouteActionRewriteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostname=hostname, + path=path, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostname: Optional[pulumi.Input['GatewayRouteSpecHttpRouteActionRewriteHostnameArgs']] = None, + path: Optional[pulumi.Input['GatewayRouteSpecHttpRouteActionRewritePathArgs']] = None, + prefix: Optional[pulumi.Input['GatewayRouteSpecHttpRouteActionRewritePrefixArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -1273,7 +1672,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] default_target_hostname: Default target host name to write to. Valid values: `ENABLED`, `DISABLED`. """ - pulumi.set(__self__, "default_target_hostname", default_target_hostname) + GatewayRouteSpecHttpRouteActionRewriteHostnameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_target_hostname=default_target_hostname, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_target_hostname: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_target_hostname is None and 'defaultTargetHostname' in kwargs: + default_target_hostname = kwargs['defaultTargetHostname'] + if default_target_hostname is None: + raise TypeError("Missing 'default_target_hostname' argument") + + _setter("default_target_hostname", default_target_hostname) @property @pulumi.getter(name="defaultTargetHostname") @@ -1295,7 +1709,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] exact: The exact path to match on. """ - pulumi.set(__self__, "exact", exact) + GatewayRouteSpecHttpRouteActionRewritePathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -1319,10 +1746,25 @@ def __init__(__self__, *, :param pulumi.Input[str] default_prefix: Default prefix used to replace the incoming route prefix when rewritten. Valid values: `ENABLED`, `DISABLED`. :param pulumi.Input[str] value: Value used to replace the incoming route prefix when rewritten. """ + GatewayRouteSpecHttpRouteActionRewritePrefixArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_prefix=default_prefix, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_prefix: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_prefix is None and 'defaultPrefix' in kwargs: + default_prefix = kwargs['defaultPrefix'] + if default_prefix is not None: - pulumi.set(__self__, "default_prefix", default_prefix) + _setter("default_prefix", default_prefix) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="defaultPrefix") @@ -1358,9 +1800,26 @@ def __init__(__self__, *, :param pulumi.Input['GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs'] virtual_service: Virtual service gateway route target. :param pulumi.Input[int] port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. """ - pulumi.set(__self__, "virtual_service", virtual_service) + GatewayRouteSpecHttpRouteActionTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service=virtual_service, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service: Optional[pulumi.Input['GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs']] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service is None and 'virtualService' in kwargs: + virtual_service = kwargs['virtualService'] + if virtual_service is None: + raise TypeError("Missing 'virtual_service' argument") + + _setter("virtual_service", virtual_service) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualService") @@ -1394,7 +1853,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] virtual_service_name: Name of the virtual service that traffic is routed to. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="virtualServiceName") @@ -1420,24 +1894,47 @@ def __init__(__self__, *, query_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttpRouteMatchQueryParameterArgs']]]] = None): """ :param pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttpRouteMatchHeaderArgs']]] headers: Client request headers to match on. - :param pulumi.Input['GatewayRouteSpecHttpRouteMatchHostnameArgs'] hostname: Host name to rewrite. - :param pulumi.Input['GatewayRouteSpecHttpRouteMatchPathArgs'] path: Exact path to rewrite. - :param pulumi.Input[int] port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. - :param pulumi.Input[str] prefix: Specified beginning characters to rewrite. + :param pulumi.Input['GatewayRouteSpecHttpRouteMatchHostnameArgs'] hostname: Host name to match on. + :param pulumi.Input['GatewayRouteSpecHttpRouteMatchPathArgs'] path: Client request path to match on. + :param pulumi.Input[int] port: The port number to match from the request. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. :param pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttpRouteMatchQueryParameterArgs']]] query_parameters: Client request query parameters to match on. """ + GatewayRouteSpecHttpRouteMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + hostname=hostname, + path=path, + port=port, + prefix=prefix, + query_parameters=query_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttpRouteMatchHeaderArgs']]]] = None, + hostname: Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchHostnameArgs']] = None, + path: Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchPathArgs']] = None, + port: Optional[pulumi.Input[int]] = None, + prefix: Optional[pulumi.Input[str]] = None, + query_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayRouteSpecHttpRouteMatchQueryParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if query_parameters is not None: - pulumi.set(__self__, "query_parameters", query_parameters) + _setter("query_parameters", query_parameters) @property @pulumi.getter @@ -1455,7 +1952,7 @@ def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayRou @pulumi.getter def hostname(self) -> Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchHostnameArgs']]: """ - Host name to rewrite. + Host name to match on. """ return pulumi.get(self, "hostname") @@ -1467,7 +1964,7 @@ def hostname(self, value: Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchH @pulumi.getter def path(self) -> Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchPathArgs']]: """ - Exact path to rewrite. + Client request path to match on. """ return pulumi.get(self, "path") @@ -1479,7 +1976,7 @@ def path(self, value: Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchPathA @pulumi.getter def port(self) -> Optional[pulumi.Input[int]]: """ - The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + The port number to match from the request. """ return pulumi.get(self, "port") @@ -1491,7 +1988,7 @@ def port(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Specified beginning characters to rewrite. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -1523,11 +2020,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. :param pulumi.Input['GatewayRouteSpecHttpRouteMatchHeaderMatchArgs'] match: Method and value to match the header value sent with a request. Specify one match method. """ - pulumi.set(__self__, "name", name) + GatewayRouteSpecHttpRouteMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + invert: Optional[pulumi.Input[bool]] = None, + match: Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchHeaderMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -1575,28 +2089,47 @@ def __init__(__self__, *, regex: Optional[pulumi.Input[str]] = None, suffix: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] exact: Value used to replace matched path. - :param pulumi.Input[str] prefix: Specified beginning characters to rewrite. + :param pulumi.Input[str] exact: Header value sent by the client must match the specified value exactly. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. :param pulumi.Input['GatewayRouteSpecHttpRouteMatchHeaderMatchRangeArgs'] range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param pulumi.Input[str] regex: Header value sent by the client must include the specified characters. :param pulumi.Input[str] suffix: Header value sent by the client must end with the specified characters. """ + GatewayRouteSpecHttpRouteMatchHeaderMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + range: Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchHeaderMatchRangeArgs']] = None, + regex: Optional[pulumi.Input[str]] = None, + suffix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter def exact(self) -> Optional[pulumi.Input[str]]: """ - Value used to replace matched path. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -1608,7 +2141,7 @@ def exact(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Specified beginning characters to rewrite. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -1662,8 +2195,25 @@ def __init__(__self__, *, :param pulumi.Input[int] end: End of the range. :param pulumi.Input[int] start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GatewayRouteSpecHttpRouteMatchHeaderMatchRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[pulumi.Input[int]] = None, + start: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -1699,10 +2249,23 @@ def __init__(__self__, *, :param pulumi.Input[str] exact: Exact host name to match on. :param pulumi.Input[str] suffix: Specified ending characters of the host name to match on. """ + GatewayRouteSpecHttpRouteMatchHostnameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + suffix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -1738,10 +2301,23 @@ def __init__(__self__, *, :param pulumi.Input[str] exact: The exact path to match on. :param pulumi.Input[str] regex: The regex used to match the path. """ + GatewayRouteSpecHttpRouteMatchPathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + regex: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) @property @pulumi.getter @@ -1777,9 +2353,24 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the query parameter that will be matched on. :param pulumi.Input['GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs'] match: The query parameter to match on. """ - pulumi.set(__self__, "name", name) + GatewayRouteSpecHttpRouteMatchQueryParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + match: Optional[pulumi.Input['GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -1811,16 +2402,27 @@ class GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs: def __init__(__self__, *, exact: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] exact: Value used to replace matched path. + :param pulumi.Input[str] exact: Header value sent by the client must match the specified value exactly. """ + GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) @property @pulumi.getter def exact(self) -> Optional[pulumi.Input[str]]: """ - Value used to replace matched path. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -1836,8 +2438,21 @@ def __init__(__self__, *, """ :param pulumi.Input['MeshSpecEgressFilterArgs'] egress_filter: Egress filter rules for the service mesh. """ + MeshSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + egress_filter=egress_filter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + egress_filter: Optional[pulumi.Input['MeshSpecEgressFilterArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if egress_filter is None and 'egressFilter' in kwargs: + egress_filter = kwargs['egressFilter'] + if egress_filter is not None: - pulumi.set(__self__, "egress_filter", egress_filter) + _setter("egress_filter", egress_filter) @property @pulumi.getter(name="egressFilter") @@ -1860,8 +2475,19 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Egress filter type. By default, the type is `DROP_ALL`. Valid values are `ALLOW_ALL` and `DROP_ALL`. """ + MeshSpecEgressFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -1893,16 +2519,43 @@ def __init__(__self__, *, Routes are matched based on the specified value, where `0` is the highest priority. :param pulumi.Input['RouteSpecTcpRouteArgs'] tcp_route: TCP routing information for the route. """ + RouteSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc_route=grpc_route, + http2_route=http2_route, + http_route=http_route, + priority=priority, + tcp_route=tcp_route, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc_route: Optional[pulumi.Input['RouteSpecGrpcRouteArgs']] = None, + http2_route: Optional[pulumi.Input['RouteSpecHttp2RouteArgs']] = None, + http_route: Optional[pulumi.Input['RouteSpecHttpRouteArgs']] = None, + priority: Optional[pulumi.Input[int]] = None, + tcp_route: Optional[pulumi.Input['RouteSpecTcpRouteArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc_route is None and 'grpcRoute' in kwargs: + grpc_route = kwargs['grpcRoute'] + if http2_route is None and 'http2Route' in kwargs: + http2_route = kwargs['http2Route'] + if http_route is None and 'httpRoute' in kwargs: + http_route = kwargs['httpRoute'] + if tcp_route is None and 'tcpRoute' in kwargs: + tcp_route = kwargs['tcpRoute'] + if grpc_route is not None: - pulumi.set(__self__, "grpc_route", grpc_route) + _setter("grpc_route", grpc_route) if http2_route is not None: - pulumi.set(__self__, "http2_route", http2_route) + _setter("http2_route", http2_route) if http_route is not None: - pulumi.set(__self__, "http_route", http_route) + _setter("http_route", http_route) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if tcp_route is not None: - pulumi.set(__self__, "tcp_route", tcp_route) + _setter("tcp_route", tcp_route) @property @pulumi.getter(name="grpcRoute") @@ -1979,13 +2632,34 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs'] retry_policy: Retry policy. :param pulumi.Input['RouteSpecGrpcRouteTimeoutArgs'] timeout: Types of timeouts. """ - pulumi.set(__self__, "action", action) + RouteSpecGrpcRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + retry_policy=retry_policy, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['RouteSpecGrpcRouteActionArgs']] = None, + match: Optional[pulumi.Input['RouteSpecGrpcRouteMatchArgs']] = None, + retry_policy: Optional[pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs']] = None, + timeout: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + + _setter("action", action) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -2044,7 +2718,22 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]] weighted_targets: Targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + RouteSpecGrpcRouteActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -2071,10 +2760,31 @@ def __init__(__self__, *, :param pulumi.Input[int] weight: Relative weight of the weighted target. An integer between 0 and 100. :param pulumi.Input[int] port: The targeted port of the weighted object. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + RouteSpecGrpcRouteActionWeightedTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("virtual_node", virtual_node) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualNode") @@ -2125,20 +2835,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]] metadatas: Data to match from the gRPC request. :param pulumi.Input[str] method_name: Method name to match from the request. If you specify a name, you must also specify a `service_name`. :param pulumi.Input[int] port: The port number to match from the request. - :param pulumi.Input[str] prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. :param pulumi.Input[str] service_name: Fully qualified domain name for the service to match from the request. """ + RouteSpecGrpcRouteMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metadatas=metadatas, + method_name=method_name, + port=port, + prefix=prefix, + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metadatas: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]]] = None, + method_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + prefix: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if method_name is None and 'methodName' in kwargs: + method_name = kwargs['methodName'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if metadatas is not None: - pulumi.set(__self__, "metadatas", metadatas) + _setter("metadatas", metadatas) if method_name is not None: - pulumi.set(__self__, "method_name", method_name) + _setter("method_name", method_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) @property @pulumi.getter @@ -2180,8 +2912,7 @@ def port(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -2213,11 +2944,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` criteria. Default is `false`. :param pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs'] match: Data to match from the request. """ - pulumi.set(__self__, "name", name) + RouteSpecGrpcRouteMatchMetadataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + invert: Optional[pulumi.Input[bool]] = None, + match: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -2266,22 +3014,40 @@ def __init__(__self__, *, suffix: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] exact: The exact path to match on. - :param pulumi.Input[str] prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs'] range: Object that specifies the range of numbers that the value sent by the client must be included in. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. + :param pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs'] range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param pulumi.Input[str] regex: The regex used to match the path. - :param pulumi.Input[str] suffix: Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + :param pulumi.Input[str] suffix: Header value sent by the client must end with the specified characters. """ + RouteSpecGrpcRouteMatchMetadataMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + range: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs']] = None, + regex: Optional[pulumi.Input[str]] = None, + suffix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -2299,8 +3065,7 @@ def exact(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -2312,7 +3077,7 @@ def prefix(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def range(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs']]: """ - Object that specifies the range of numbers that the value sent by the client must be included in. + Object that specifies the range of numbers that the header value sent by the client must be included in. """ return pulumi.get(self, "range") @@ -2336,7 +3101,7 @@ def regex(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def suffix(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must end with the specified characters. """ return pulumi.get(self, "suffix") @@ -2354,8 +3119,25 @@ def __init__(__self__, *, :param pulumi.Input[int] end: End of the range. :param pulumi.Input[int] start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + RouteSpecGrpcRouteMatchMetadataMatchRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[pulumi.Input[int]] = None, + start: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -2397,20 +3179,49 @@ def __init__(__self__, *, Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. :param pulumi.Input[Sequence[pulumi.Input[str]]] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). :param pulumi.Input[Sequence[pulumi.Input[str]]] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) + RouteSpecGrpcRouteRetryPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_retries=max_retries, + per_retry_timeout=per_retry_timeout, + grpc_retry_events=grpc_retry_events, + http_retry_events=http_retry_events, + tcp_retry_events=tcp_retry_events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_retries: Optional[pulumi.Input[int]] = None, + per_retry_timeout: Optional[pulumi.Input['RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs']] = None, + grpc_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + http_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tcp_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if max_retries is None: + raise TypeError("Missing 'max_retries' argument") + if per_retry_timeout is None and 'perRetryTimeout' in kwargs: + per_retry_timeout = kwargs['perRetryTimeout'] + if per_retry_timeout is None: + raise TypeError("Missing 'per_retry_timeout' argument") + if grpc_retry_events is None and 'grpcRetryEvents' in kwargs: + grpc_retry_events = kwargs['grpcRetryEvents'] + if http_retry_events is None and 'httpRetryEvents' in kwargs: + http_retry_events = kwargs['httpRetryEvents'] + if tcp_retry_events is None and 'tcpRetryEvents' in kwargs: + tcp_retry_events = kwargs['tcpRetryEvents'] + + _setter("max_retries", max_retries) + _setter("per_retry_timeout", per_retry_timeout) if grpc_retry_events is not None: - pulumi.set(__self__, "grpc_retry_events", grpc_retry_events) + _setter("grpc_retry_events", grpc_retry_events) if http_retry_events is not None: - pulumi.set(__self__, "http_retry_events", http_retry_events) + _setter("http_retry_events", http_retry_events) if tcp_retry_events is not None: - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + _setter("tcp_retry_events", tcp_retry_events) @property @pulumi.getter(name="maxRetries") @@ -2455,7 +3266,6 @@ def http_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]] """ List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). """ return pulumi.get(self, "http_retry_events") @@ -2468,9 +3278,6 @@ def http_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[s def tcp_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ return pulumi.get(self, "tcp_retry_events") @@ -2488,8 +3295,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Retry unit. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Retry value. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2525,10 +3349,25 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs'] idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs'] per_request: Per request timeout. """ + RouteSpecGrpcRouteTimeoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs']] = None, + per_request: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -2564,8 +3403,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecGrpcRouteTimeoutIdleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2601,8 +3457,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecGrpcRouteTimeoutPerRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2642,12 +3515,35 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs'] retry_policy: Retry policy. :param pulumi.Input['RouteSpecHttp2RouteTimeoutArgs'] timeout: Types of timeouts. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + RouteSpecHttp2RouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + retry_policy=retry_policy, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['RouteSpecHttp2RouteActionArgs']] = None, + match: Optional[pulumi.Input['RouteSpecHttp2RouteMatchArgs']] = None, + retry_policy: Optional[pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs']] = None, + timeout: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + + _setter("action", action) + _setter("match", match) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -2706,7 +3602,22 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]] weighted_targets: Targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + RouteSpecHttp2RouteActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -2733,10 +3644,31 @@ def __init__(__self__, *, :param pulumi.Input[int] weight: Relative weight of the weighted target. An integer between 0 and 100. :param pulumi.Input[int] port: The targeted port of the weighted object. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + RouteSpecHttp2RouteActionWeightedTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("virtual_node", virtual_node) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualNode") @@ -2790,25 +3722,49 @@ def __init__(__self__, *, :param pulumi.Input[str] method: Client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. :param pulumi.Input['RouteSpecHttp2RouteMatchPathArgs'] path: Client request path to match on. :param pulumi.Input[int] port: The port number to match from the request. - :param pulumi.Input[str] prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchQueryParameterArgs']]] query_parameters: Client request query parameters to match on. :param pulumi.Input[str] scheme: Client request header scheme to match on. Valid values: `http`, `https`. """ + RouteSpecHttp2RouteMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + method=method, + path=path, + port=port, + prefix=prefix, + query_parameters=query_parameters, + scheme=scheme, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchHeaderArgs']]]] = None, + method: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input['RouteSpecHttp2RouteMatchPathArgs']] = None, + port: Optional[pulumi.Input[int]] = None, + prefix: Optional[pulumi.Input[str]] = None, + query_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchQueryParameterArgs']]]] = None, + scheme: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if query_parameters is not None: - pulumi.set(__self__, "query_parameters", query_parameters) + _setter("query_parameters", query_parameters) if scheme is not None: - pulumi.set(__self__, "scheme", scheme) + _setter("scheme", scheme) @property @pulumi.getter @@ -2862,8 +3818,7 @@ def port(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -2907,11 +3862,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. :param pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs'] match: Method and value to match the header value sent with a request. Specify one match method. """ - pulumi.set(__self__, "name", name) + RouteSpecHttp2RouteMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + invert: Optional[pulumi.Input[bool]] = None, + match: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -2960,22 +3932,40 @@ def __init__(__self__, *, suffix: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] exact: The exact path to match on. - :param pulumi.Input[str] prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs'] range: Object that specifies the range of numbers that the value sent by the client must be included in. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. + :param pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs'] range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param pulumi.Input[str] regex: The regex used to match the path. - :param pulumi.Input[str] suffix: Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + :param pulumi.Input[str] suffix: Header value sent by the client must end with the specified characters. """ + RouteSpecHttp2RouteMatchHeaderMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + range: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs']] = None, + regex: Optional[pulumi.Input[str]] = None, + suffix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -2993,8 +3983,7 @@ def exact(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -3006,7 +3995,7 @@ def prefix(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def range(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs']]: """ - Object that specifies the range of numbers that the value sent by the client must be included in. + Object that specifies the range of numbers that the header value sent by the client must be included in. """ return pulumi.get(self, "range") @@ -3030,7 +4019,7 @@ def regex(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def suffix(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must end with the specified characters. """ return pulumi.get(self, "suffix") @@ -3048,8 +4037,25 @@ def __init__(__self__, *, :param pulumi.Input[int] end: End of the range. :param pulumi.Input[int] start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + RouteSpecHttp2RouteMatchHeaderMatchRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[pulumi.Input[int]] = None, + start: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -3082,19 +4088,32 @@ def __init__(__self__, *, exact: Optional[pulumi.Input[str]] = None, regex: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] exact: Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. - :param pulumi.Input[str] regex: Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + :param pulumi.Input[str] exact: Header value sent by the client must match the specified value exactly. + :param pulumi.Input[str] regex: Header value sent by the client must include the specified characters. """ + RouteSpecHttp2RouteMatchPathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + regex: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) @property @pulumi.getter def exact(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -3106,7 +4125,7 @@ def exact(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def regex(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must include the specified characters. """ return pulumi.get(self, "regex") @@ -3124,9 +4143,24 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name to use for the route. Must be between 1 and 255 characters in length. :param pulumi.Input['RouteSpecHttp2RouteMatchQueryParameterMatchArgs'] match: Criteria for determining an gRPC request match. """ - pulumi.set(__self__, "name", name) + RouteSpecHttp2RouteMatchQueryParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + match: Optional[pulumi.Input['RouteSpecHttp2RouteMatchQueryParameterMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -3160,8 +4194,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] exact: The exact path to match on. """ + RouteSpecHttp2RouteMatchQueryParameterMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) @property @pulumi.getter @@ -3188,18 +4233,43 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs'] per_retry_timeout: Per-retry timeout. :param pulumi.Input[Sequence[pulumi.Input[str]]] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). :param pulumi.Input[Sequence[pulumi.Input[str]]] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) + RouteSpecHttp2RouteRetryPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_retries=max_retries, + per_retry_timeout=per_retry_timeout, + http_retry_events=http_retry_events, + tcp_retry_events=tcp_retry_events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_retries: Optional[pulumi.Input[int]] = None, + per_retry_timeout: Optional[pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs']] = None, + http_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tcp_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if max_retries is None: + raise TypeError("Missing 'max_retries' argument") + if per_retry_timeout is None and 'perRetryTimeout' in kwargs: + per_retry_timeout = kwargs['perRetryTimeout'] + if per_retry_timeout is None: + raise TypeError("Missing 'per_retry_timeout' argument") + if http_retry_events is None and 'httpRetryEvents' in kwargs: + http_retry_events = kwargs['httpRetryEvents'] + if tcp_retry_events is None and 'tcpRetryEvents' in kwargs: + tcp_retry_events = kwargs['tcpRetryEvents'] + + _setter("max_retries", max_retries) + _setter("per_retry_timeout", per_retry_timeout) if http_retry_events is not None: - pulumi.set(__self__, "http_retry_events", http_retry_events) + _setter("http_retry_events", http_retry_events) if tcp_retry_events is not None: - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + _setter("tcp_retry_events", tcp_retry_events) @property @pulumi.getter(name="maxRetries") @@ -3231,7 +4301,6 @@ def http_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]] """ List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). """ return pulumi.get(self, "http_retry_events") @@ -3244,9 +4313,6 @@ def http_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[s def tcp_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ return pulumi.get(self, "tcp_retry_events") @@ -3264,8 +4330,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Retry unit. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Retry value. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3301,10 +4384,25 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs'] idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs'] per_request: Per request timeout. """ + RouteSpecHttp2RouteTimeoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs']] = None, + per_request: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -3340,8 +4438,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttp2RouteTimeoutIdleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3377,8 +4492,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttp2RouteTimeoutPerRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3418,12 +4550,35 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs'] retry_policy: Retry policy. :param pulumi.Input['RouteSpecHttpRouteTimeoutArgs'] timeout: Types of timeouts. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + RouteSpecHttpRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + retry_policy=retry_policy, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['RouteSpecHttpRouteActionArgs']] = None, + match: Optional[pulumi.Input['RouteSpecHttpRouteMatchArgs']] = None, + retry_policy: Optional[pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs']] = None, + timeout: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + + _setter("action", action) + _setter("match", match) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -3482,7 +4637,22 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]] weighted_targets: Targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + RouteSpecHttpRouteActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -3509,10 +4679,31 @@ def __init__(__self__, *, :param pulumi.Input[int] weight: Relative weight of the weighted target. An integer between 0 and 100. :param pulumi.Input[int] port: The targeted port of the weighted object. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + RouteSpecHttpRouteActionWeightedTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("virtual_node", virtual_node) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualNode") @@ -3566,25 +4757,49 @@ def __init__(__self__, *, :param pulumi.Input[str] method: Client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. :param pulumi.Input['RouteSpecHttpRouteMatchPathArgs'] path: Client request path to match on. :param pulumi.Input[int] port: The port number to match from the request. - :param pulumi.Input[str] prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchQueryParameterArgs']]] query_parameters: Client request query parameters to match on. :param pulumi.Input[str] scheme: Client request header scheme to match on. Valid values: `http`, `https`. """ + RouteSpecHttpRouteMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + method=method, + path=path, + port=port, + prefix=prefix, + query_parameters=query_parameters, + scheme=scheme, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchHeaderArgs']]]] = None, + method: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input['RouteSpecHttpRouteMatchPathArgs']] = None, + port: Optional[pulumi.Input[int]] = None, + prefix: Optional[pulumi.Input[str]] = None, + query_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchQueryParameterArgs']]]] = None, + scheme: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if query_parameters is not None: - pulumi.set(__self__, "query_parameters", query_parameters) + _setter("query_parameters", query_parameters) if scheme is not None: - pulumi.set(__self__, "scheme", scheme) + _setter("scheme", scheme) @property @pulumi.getter @@ -3638,8 +4853,7 @@ def port(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -3683,11 +4897,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. :param pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs'] match: Method and value to match the header value sent with a request. Specify one match method. """ - pulumi.set(__self__, "name", name) + RouteSpecHttpRouteMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + invert: Optional[pulumi.Input[bool]] = None, + match: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -3736,22 +4967,40 @@ def __init__(__self__, *, suffix: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] exact: The exact path to match on. - :param pulumi.Input[str] prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs'] range: Object that specifies the range of numbers that the value sent by the client must be included in. + :param pulumi.Input[str] prefix: Header value sent by the client must begin with the specified characters. + :param pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs'] range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param pulumi.Input[str] regex: The regex used to match the path. - :param pulumi.Input[str] suffix: Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + :param pulumi.Input[str] suffix: Header value sent by the client must end with the specified characters. """ + RouteSpecHttpRouteMatchHeaderMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + range: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs']] = None, + regex: Optional[pulumi.Input[str]] = None, + suffix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -3769,8 +5018,7 @@ def exact(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -3782,7 +5030,7 @@ def prefix(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def range(self) -> Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs']]: """ - Object that specifies the range of numbers that the value sent by the client must be included in. + Object that specifies the range of numbers that the header value sent by the client must be included in. """ return pulumi.get(self, "range") @@ -3806,7 +5054,7 @@ def regex(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def suffix(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must end with the specified characters. """ return pulumi.get(self, "suffix") @@ -3824,8 +5072,25 @@ def __init__(__self__, *, :param pulumi.Input[int] end: End of the range. :param pulumi.Input[int] start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + RouteSpecHttpRouteMatchHeaderMatchRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[pulumi.Input[int]] = None, + start: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -3858,19 +5123,32 @@ def __init__(__self__, *, exact: Optional[pulumi.Input[str]] = None, regex: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] exact: Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. - :param pulumi.Input[str] regex: Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + :param pulumi.Input[str] exact: Header value sent by the client must match the specified value exactly. + :param pulumi.Input[str] regex: Header value sent by the client must include the specified characters. """ + RouteSpecHttpRouteMatchPathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + regex: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) @property @pulumi.getter def exact(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -3882,7 +5160,7 @@ def exact(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def regex(self) -> Optional[pulumi.Input[str]]: """ - Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must include the specified characters. """ return pulumi.get(self, "regex") @@ -3900,9 +5178,24 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name to use for the route. Must be between 1 and 255 characters in length. :param pulumi.Input['RouteSpecHttpRouteMatchQueryParameterMatchArgs'] match: Criteria for determining an gRPC request match. """ - pulumi.set(__self__, "name", name) + RouteSpecHttpRouteMatchQueryParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + match: Optional[pulumi.Input['RouteSpecHttpRouteMatchQueryParameterMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -3936,8 +5229,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] exact: The exact path to match on. """ + RouteSpecHttpRouteMatchQueryParameterMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) @property @pulumi.getter @@ -3964,18 +5268,43 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs'] per_retry_timeout: Per-retry timeout. :param pulumi.Input[Sequence[pulumi.Input[str]]] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). :param pulumi.Input[Sequence[pulumi.Input[str]]] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) + RouteSpecHttpRouteRetryPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_retries=max_retries, + per_retry_timeout=per_retry_timeout, + http_retry_events=http_retry_events, + tcp_retry_events=tcp_retry_events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_retries: Optional[pulumi.Input[int]] = None, + per_retry_timeout: Optional[pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs']] = None, + http_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tcp_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if max_retries is None: + raise TypeError("Missing 'max_retries' argument") + if per_retry_timeout is None and 'perRetryTimeout' in kwargs: + per_retry_timeout = kwargs['perRetryTimeout'] + if per_retry_timeout is None: + raise TypeError("Missing 'per_retry_timeout' argument") + if http_retry_events is None and 'httpRetryEvents' in kwargs: + http_retry_events = kwargs['httpRetryEvents'] + if tcp_retry_events is None and 'tcpRetryEvents' in kwargs: + tcp_retry_events = kwargs['tcpRetryEvents'] + + _setter("max_retries", max_retries) + _setter("per_retry_timeout", per_retry_timeout) if http_retry_events is not None: - pulumi.set(__self__, "http_retry_events", http_retry_events) + _setter("http_retry_events", http_retry_events) if tcp_retry_events is not None: - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + _setter("tcp_retry_events", tcp_retry_events) @property @pulumi.getter(name="maxRetries") @@ -4007,7 +5336,6 @@ def http_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]] """ List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). """ return pulumi.get(self, "http_retry_events") @@ -4020,9 +5348,6 @@ def http_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[s def tcp_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ return pulumi.get(self, "tcp_retry_events") @@ -4040,8 +5365,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Retry unit. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Retry value. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4077,10 +5419,25 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs'] idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs'] per_request: Per request timeout. """ + RouteSpecHttpRouteTimeoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs']] = None, + per_request: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -4116,8 +5473,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttpRouteTimeoutIdleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4153,8 +5527,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttpRouteTimeoutPerRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4192,11 +5583,28 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecTcpRouteMatchArgs'] match: Criteria for determining an gRPC request match. :param pulumi.Input['RouteSpecTcpRouteTimeoutArgs'] timeout: Types of timeouts. """ - pulumi.set(__self__, "action", action) + RouteSpecTcpRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['RouteSpecTcpRouteActionArgs']] = None, + match: Optional[pulumi.Input['RouteSpecTcpRouteMatchArgs']] = None, + timeout: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + + _setter("action", action) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -4243,7 +5651,22 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]] weighted_targets: Targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + RouteSpecTcpRouteActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -4270,10 +5693,31 @@ def __init__(__self__, *, :param pulumi.Input[int] weight: Relative weight of the weighted target. An integer between 0 and 100. :param pulumi.Input[int] port: The targeted port of the weighted object. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + RouteSpecTcpRouteActionWeightedTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("virtual_node", virtual_node) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualNode") @@ -4319,8 +5763,19 @@ def __init__(__self__, *, """ :param pulumi.Input[int] port: The port number to match from the request. """ + RouteSpecTcpRouteMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -4342,8 +5797,19 @@ def __init__(__self__, *, """ :param pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs'] idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. """ + RouteSpecTcpRouteTimeoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) @property @pulumi.getter @@ -4367,8 +5833,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecTcpRouteTimeoutIdleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4406,11 +5889,30 @@ def __init__(__self__, *, :param pulumi.Input['VirtualGatewaySpecBackendDefaultsArgs'] backend_defaults: Defaults for backends. :param pulumi.Input['VirtualGatewaySpecLoggingArgs'] logging: Inbound and outbound access logging information for the virtual gateway. """ - pulumi.set(__self__, "listeners", listeners) + VirtualGatewaySpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + listeners=listeners, + backend_defaults=backend_defaults, + logging=logging, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listeners: Optional[pulumi.Input[Sequence[pulumi.Input['VirtualGatewaySpecListenerArgs']]]] = None, + backend_defaults: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsArgs']] = None, + logging: Optional[pulumi.Input['VirtualGatewaySpecLoggingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listeners is None: + raise TypeError("Missing 'listeners' argument") + if backend_defaults is None and 'backendDefaults' in kwargs: + backend_defaults = kwargs['backendDefaults'] + + _setter("listeners", listeners) if backend_defaults is not None: - pulumi.set(__self__, "backend_defaults", backend_defaults) + _setter("backend_defaults", backend_defaults) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) @property @pulumi.getter @@ -4456,8 +5958,21 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyArgs'] client_policy: Default client policy for virtual gateway backends. """ + VirtualGatewaySpecBackendDefaultsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_policy=client_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_policy: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_policy is None and 'clientPolicy' in kwargs: + client_policy = kwargs['clientPolicy'] + if client_policy is not None: - pulumi.set(__self__, "client_policy", client_policy) + _setter("client_policy", client_policy) @property @pulumi.getter(name="clientPolicy") @@ -4479,8 +5994,19 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs'] tls: Transport Layer Security (TLS) client policy. """ + VirtualGatewaySpecBackendDefaultsClientPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter @@ -4508,13 +6034,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] enforce: Whether the policy is enforced. Default is `true`. :param pulumi.Input[Sequence[pulumi.Input[int]]] ports: One or more ports that the policy is enforced for. """ - pulumi.set(__self__, "validation", validation) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + validation=validation, + certificate=certificate, + enforce=enforce, + ports=ports, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + validation: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs']] = None, + certificate: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateArgs']] = None, + enforce: Optional[pulumi.Input[bool]] = None, + ports: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if validation is None: + raise TypeError("Missing 'validation' argument") + + _setter("validation", validation) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if enforce is not None: - pulumi.set(__self__, "enforce", enforce) + _setter("enforce", enforce) if ports is not None: - pulumi.set(__self__, "ports", ports) + _setter("ports", ports) @property @pulumi.getter @@ -4574,10 +6119,23 @@ def __init__(__self__, *, :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateFileArgs'] file: Local file certificate. :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateSdsArgs'] sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -4613,8 +6171,29 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param pulumi.Input[str] private_key: Private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -4648,7 +6227,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -4672,9 +6266,26 @@ def __init__(__self__, *, :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs'] trust: TLS validation context trust. :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesArgs'] subject_alternative_names: SANs for a virtual gateway's listener's Transport Layer Security (TLS) validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs']] = None, + subject_alternative_names: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -4708,7 +6319,20 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs'] match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -4730,7 +6354,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -4756,12 +6393,27 @@ def __init__(__self__, *, :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs'] file: TLS validation context trust for a local file certificate. :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustSdsArgs'] sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs']] = None, + file: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -4807,7 +6459,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_authority_arns: One or more ACM ARNs. """ - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is None: + raise TypeError("Missing 'certificate_authority_arns' argument") + + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -4829,7 +6496,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -4851,7 +6533,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -4879,13 +6576,38 @@ def __init__(__self__, *, :param pulumi.Input['VirtualGatewaySpecListenerHealthCheckArgs'] health_check: Health check information for the listener. :param pulumi.Input['VirtualGatewaySpecListenerTlsArgs'] tls: Transport Layer Security (TLS) properties for the listener """ - pulumi.set(__self__, "port_mapping", port_mapping) + VirtualGatewaySpecListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port_mapping=port_mapping, + connection_pool=connection_pool, + health_check=health_check, + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port_mapping: Optional[pulumi.Input['VirtualGatewaySpecListenerPortMappingArgs']] = None, + connection_pool: Optional[pulumi.Input['VirtualGatewaySpecListenerConnectionPoolArgs']] = None, + health_check: Optional[pulumi.Input['VirtualGatewaySpecListenerHealthCheckArgs']] = None, + tls: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_mapping is None and 'portMapping' in kwargs: + port_mapping = kwargs['portMapping'] + if port_mapping is None: + raise TypeError("Missing 'port_mapping' argument") + if connection_pool is None and 'connectionPool' in kwargs: + connection_pool = kwargs['connectionPool'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + + _setter("port_mapping", port_mapping) if connection_pool is not None: - pulumi.set(__self__, "connection_pool", connection_pool) + _setter("connection_pool", connection_pool) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter(name="portMapping") @@ -4947,12 +6669,27 @@ def __init__(__self__, *, :param pulumi.Input['VirtualGatewaySpecListenerConnectionPoolHttpArgs'] http: Connection pool information for HTTP listeners. :param pulumi.Input['VirtualGatewaySpecListenerConnectionPoolHttp2Args'] http2: Connection pool information for HTTP2 listeners. """ + VirtualGatewaySpecListenerConnectionPoolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc=grpc, + http=http, + http2=http2, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc: Optional[pulumi.Input['VirtualGatewaySpecListenerConnectionPoolGrpcArgs']] = None, + http: Optional[pulumi.Input['VirtualGatewaySpecListenerConnectionPoolHttpArgs']] = None, + http2: Optional[pulumi.Input['VirtualGatewaySpecListenerConnectionPoolHttp2Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc is not None: - pulumi.set(__self__, "grpc", grpc) + _setter("grpc", grpc) if http is not None: - pulumi.set(__self__, "http", http) + _setter("http", http) if http2 is not None: - pulumi.set(__self__, "http2", http2) + _setter("http2", http2) @property @pulumi.getter @@ -4998,7 +6735,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] max_requests: Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_requests", max_requests) + VirtualGatewaySpecListenerConnectionPoolGrpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -5020,7 +6772,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] max_requests: Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_requests", max_requests) + VirtualGatewaySpecListenerConnectionPoolHttp2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -5046,9 +6813,28 @@ def __init__(__self__, *, The `http2` connection pool object supports the following: """ - pulumi.set(__self__, "max_connections", max_connections) + VirtualGatewaySpecListenerConnectionPoolHttpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_connections=max_connections, + max_pending_requests=max_pending_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_connections: Optional[pulumi.Input[int]] = None, + max_pending_requests: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_connections is None and 'maxConnections' in kwargs: + max_connections = kwargs['maxConnections'] + if max_connections is None: + raise TypeError("Missing 'max_connections' argument") + if max_pending_requests is None and 'maxPendingRequests' in kwargs: + max_pending_requests = kwargs['maxPendingRequests'] + + _setter("max_connections", max_connections) if max_pending_requests is not None: - pulumi.set(__self__, "max_pending_requests", max_pending_requests) + _setter("max_pending_requests", max_pending_requests) @property @pulumi.getter(name="maxConnections") @@ -5096,15 +6882,56 @@ def __init__(__self__, *, :param pulumi.Input[str] path: Destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. :param pulumi.Input[int] port: Destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. """ - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval_millis", interval_millis) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "timeout_millis", timeout_millis) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + VirtualGatewaySpecListenerHealthCheckArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval_millis=interval_millis, + protocol=protocol, + timeout_millis=timeout_millis, + unhealthy_threshold=unhealthy_threshold, + path=path, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[pulumi.Input[int]] = None, + interval_millis: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + timeout_millis: Optional[pulumi.Input[int]] = None, + unhealthy_threshold: Optional[pulumi.Input[int]] = None, + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval_millis is None and 'intervalMillis' in kwargs: + interval_millis = kwargs['intervalMillis'] + if interval_millis is None: + raise TypeError("Missing 'interval_millis' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if timeout_millis is None and 'timeoutMillis' in kwargs: + timeout_millis = kwargs['timeoutMillis'] + if timeout_millis is None: + raise TypeError("Missing 'timeout_millis' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("healthy_threshold", healthy_threshold) + _setter("interval_millis", interval_millis) + _setter("protocol", protocol) + _setter("timeout_millis", timeout_millis) + _setter("unhealthy_threshold", unhealthy_threshold) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="healthyThreshold") @@ -5200,8 +7027,25 @@ def __init__(__self__, *, :param pulumi.Input[int] port: Port used for the port mapping. :param pulumi.Input[str] protocol: Protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. """ - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) + VirtualGatewaySpecListenerPortMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + + _setter("port", port) + _setter("protocol", protocol) @property @pulumi.getter @@ -5239,10 +7083,29 @@ def __init__(__self__, *, :param pulumi.Input[str] mode: Listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. :param pulumi.Input['VirtualGatewaySpecListenerTlsValidationArgs'] validation: Listener's Transport Layer Security (TLS) validation context. """ - pulumi.set(__self__, "certificate", certificate) - pulumi.set(__self__, "mode", mode) + VirtualGatewaySpecListenerTlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + mode=mode, + validation=validation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateArgs']] = None, + mode: Optional[pulumi.Input[str]] = None, + validation: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsValidationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate is None: + raise TypeError("Missing 'certificate' argument") + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("certificate", certificate) + _setter("mode", mode) if validation is not None: - pulumi.set(__self__, "validation", validation) + _setter("validation", validation) @property @pulumi.getter @@ -5292,12 +7155,27 @@ def __init__(__self__, *, :param pulumi.Input['VirtualGatewaySpecListenerTlsCertificateFileArgs'] file: Local file certificate. :param pulumi.Input['VirtualGatewaySpecListenerTlsCertificateSdsArgs'] sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualGatewaySpecListenerTlsCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateAcmArgs']] = None, + file: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -5343,7 +7221,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] certificate_arn: ARN for the certificate. """ - pulumi.set(__self__, "certificate_arn", certificate_arn) + VirtualGatewaySpecListenerTlsCertificateAcmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + + _setter("certificate_arn", certificate_arn) @property @pulumi.getter(name="certificateArn") @@ -5367,8 +7260,29 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param pulumi.Input[str] private_key: Private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualGatewaySpecListenerTlsCertificateFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -5402,7 +7316,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualGatewaySpecListenerTlsCertificateSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -5426,9 +7355,26 @@ def __init__(__self__, *, :param pulumi.Input['VirtualGatewaySpecListenerTlsValidationTrustArgs'] trust: TLS validation context trust. :param pulumi.Input['VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesArgs'] subject_alternative_names: SANs for a virtual gateway's listener's Transport Layer Security (TLS) validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualGatewaySpecListenerTlsValidationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsValidationTrustArgs']] = None, + subject_alternative_names: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -5462,7 +7408,20 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesMatchArgs'] match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -5484,7 +7443,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -5508,10 +7480,23 @@ def __init__(__self__, *, :param pulumi.Input['VirtualGatewaySpecListenerTlsValidationTrustFileArgs'] file: TLS validation context trust for a local file certificate. :param pulumi.Input['VirtualGatewaySpecListenerTlsValidationTrustSdsArgs'] sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualGatewaySpecListenerTlsValidationTrustArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsValidationTrustFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsValidationTrustSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -5545,7 +7530,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualGatewaySpecListenerTlsValidationTrustFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -5567,7 +7567,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualGatewaySpecListenerTlsValidationTrustSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -5589,8 +7604,21 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualGatewaySpecLoggingAccessLogArgs'] access_log: Access log configuration for a virtual gateway. """ + VirtualGatewaySpecLoggingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_log=access_log, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_log: Optional[pulumi.Input['VirtualGatewaySpecLoggingAccessLogArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_log is None and 'accessLog' in kwargs: + access_log = kwargs['accessLog'] + if access_log is not None: - pulumi.set(__self__, "access_log", access_log) + _setter("access_log", access_log) @property @pulumi.getter(name="accessLog") @@ -5612,8 +7640,19 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileArgs'] file: File object to send virtual gateway access logs to. """ + VirtualGatewaySpecLoggingAccessLogArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) @property @pulumi.getter @@ -5637,9 +7676,24 @@ def __init__(__self__, *, :param pulumi.Input[str] path: File path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. Must be between 1 and 255 characters in length. :param pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileFormatArgs'] format: The specified format for the logs. """ - pulumi.set(__self__, "path", path) + VirtualGatewaySpecLoggingAccessLogFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileFormatArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("path", path) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) @property @pulumi.getter @@ -5675,10 +7729,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileFormatJsonArgs']]] jsons: The logging format for JSON. :param pulumi.Input[str] text: The logging format for text. Must be between 1 and 1000 characters in length. """ + VirtualGatewaySpecLoggingAccessLogFileFormatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + jsons=jsons, + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jsons: Optional[pulumi.Input[Sequence[pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileFormatJsonArgs']]]] = None, + text: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jsons is not None: - pulumi.set(__self__, "jsons", jsons) + _setter("jsons", jsons) if text is not None: - pulumi.set(__self__, "text", text) + _setter("text", text) @property @pulumi.getter @@ -5714,8 +7781,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The specified key for the JSON. Must be between 1 and 100 characters in length. :param pulumi.Input[str] value: The specified value for the JSON. Must be between 1 and 100 characters in length. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + VirtualGatewaySpecLoggingAccessLogFileFormatJsonArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -5757,16 +7841,39 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecLoggingArgs'] logging: Inbound and outbound access logging information for the virtual node. :param pulumi.Input['VirtualNodeSpecServiceDiscoveryArgs'] service_discovery: Service discovery information for the virtual node. """ + VirtualNodeSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + backend_defaults=backend_defaults, + backends=backends, + listeners=listeners, + logging=logging, + service_discovery=service_discovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backend_defaults: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsArgs']] = None, + backends: Optional[pulumi.Input[Sequence[pulumi.Input['VirtualNodeSpecBackendArgs']]]] = None, + listeners: Optional[pulumi.Input[Sequence[pulumi.Input['VirtualNodeSpecListenerArgs']]]] = None, + logging: Optional[pulumi.Input['VirtualNodeSpecLoggingArgs']] = None, + service_discovery: Optional[pulumi.Input['VirtualNodeSpecServiceDiscoveryArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backend_defaults is None and 'backendDefaults' in kwargs: + backend_defaults = kwargs['backendDefaults'] + if service_discovery is None and 'serviceDiscovery' in kwargs: + service_discovery = kwargs['serviceDiscovery'] + if backend_defaults is not None: - pulumi.set(__self__, "backend_defaults", backend_defaults) + _setter("backend_defaults", backend_defaults) if backends is not None: - pulumi.set(__self__, "backends", backends) + _setter("backends", backends) if listeners is not None: - pulumi.set(__self__, "listeners", listeners) + _setter("listeners", listeners) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) if service_discovery is not None: - pulumi.set(__self__, "service_discovery", service_discovery) + _setter("service_discovery", service_discovery) @property @pulumi.getter(name="backendDefaults") @@ -5836,7 +7943,22 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceArgs'] virtual_service: Virtual service to use as a backend for a virtual node. """ - pulumi.set(__self__, "virtual_service", virtual_service) + VirtualNodeSpecBackendArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service=virtual_service, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service is None and 'virtualService' in kwargs: + virtual_service = kwargs['virtualService'] + if virtual_service is None: + raise TypeError("Missing 'virtual_service' argument") + + _setter("virtual_service", virtual_service) @property @pulumi.getter(name="virtualService") @@ -5858,8 +7980,21 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyArgs'] client_policy: Default client policy for virtual service backends. See above for details. """ + VirtualNodeSpecBackendDefaultsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_policy=client_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_policy: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_policy is None and 'clientPolicy' in kwargs: + client_policy = kwargs['clientPolicy'] + if client_policy is not None: - pulumi.set(__self__, "client_policy", client_policy) + _setter("client_policy", client_policy) @property @pulumi.getter(name="clientPolicy") @@ -5881,8 +8016,19 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsArgs'] tls: Transport Layer Security (TLS) client policy. """ + VirtualNodeSpecBackendDefaultsClientPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter @@ -5910,13 +8056,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] enforce: Whether the policy is enforced. Default is `true`. :param pulumi.Input[Sequence[pulumi.Input[int]]] ports: One or more ports that the policy is enforced for. """ - pulumi.set(__self__, "validation", validation) + VirtualNodeSpecBackendDefaultsClientPolicyTlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + validation=validation, + certificate=certificate, + enforce=enforce, + ports=ports, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + validation: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationArgs']] = None, + certificate: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateArgs']] = None, + enforce: Optional[pulumi.Input[bool]] = None, + ports: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if validation is None: + raise TypeError("Missing 'validation' argument") + + _setter("validation", validation) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if enforce is not None: - pulumi.set(__self__, "enforce", enforce) + _setter("enforce", enforce) if ports is not None: - pulumi.set(__self__, "ports", ports) + _setter("ports", ports) @property @pulumi.getter @@ -5976,10 +8141,23 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateFileArgs'] file: Local file certificate. :param pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateSdsArgs'] sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -6015,8 +8193,29 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param pulumi.Input[str] private_key: Private key for a certificate stored on the file system of the virtual node that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -6050,7 +8249,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -6074,9 +8288,26 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustArgs'] trust: TLS validation context trust. :param pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesArgs'] subject_alternative_names: SANs for a TLS validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustArgs']] = None, + subject_alternative_names: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -6110,7 +8341,20 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs'] match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -6132,7 +8376,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -6158,12 +8415,27 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs'] file: TLS validation context trust for a local file certificate. :param pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustSdsArgs'] sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs']] = None, + file: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -6209,7 +8481,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_authority_arns: One or more ACM ARNs. """ - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is None: + raise TypeError("Missing 'certificate_authority_arns' argument") + + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -6231,7 +8518,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -6253,7 +8555,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -6277,9 +8594,28 @@ def __init__(__self__, *, :param pulumi.Input[str] virtual_service_name: Name of the virtual service that is acting as a virtual node backend. Must be between 1 and 255 characters in length. :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyArgs'] client_policy: Client policy for the backend. """ - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + VirtualNodeSpecBackendVirtualServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + client_policy=client_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[pulumi.Input[str]] = None, + client_policy: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + if client_policy is None and 'clientPolicy' in kwargs: + client_policy = kwargs['clientPolicy'] + + _setter("virtual_service_name", virtual_service_name) if client_policy is not None: - pulumi.set(__self__, "client_policy", client_policy) + _setter("client_policy", client_policy) @property @pulumi.getter(name="virtualServiceName") @@ -6313,8 +8649,19 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsArgs'] tls: Transport Layer Security (TLS) client policy. """ + VirtualNodeSpecBackendVirtualServiceClientPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter @@ -6342,13 +8689,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] enforce: Whether the policy is enforced. Default is `true`. :param pulumi.Input[Sequence[pulumi.Input[int]]] ports: One or more ports that the policy is enforced for. """ - pulumi.set(__self__, "validation", validation) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + validation=validation, + certificate=certificate, + enforce=enforce, + ports=ports, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + validation: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationArgs']] = None, + certificate: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateArgs']] = None, + enforce: Optional[pulumi.Input[bool]] = None, + ports: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if validation is None: + raise TypeError("Missing 'validation' argument") + + _setter("validation", validation) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if enforce is not None: - pulumi.set(__self__, "enforce", enforce) + _setter("enforce", enforce) if ports is not None: - pulumi.set(__self__, "ports", ports) + _setter("ports", ports) @property @pulumi.getter @@ -6408,10 +8774,23 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateFileArgs'] file: Local file certificate. :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateSdsArgs'] sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -6447,8 +8826,29 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param pulumi.Input[str] private_key: Private key for a certificate stored on the file system of the virtual node that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -6482,7 +8882,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -6506,9 +8921,26 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustArgs'] trust: TLS validation context trust. :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesArgs'] subject_alternative_names: SANs for a TLS validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustArgs']] = None, + subject_alternative_names: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -6542,7 +8974,20 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs'] match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -6564,7 +9009,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -6590,12 +9048,27 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustFileArgs'] file: TLS validation context trust for a local file certificate. :param pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustSdsArgs'] sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustAcmArgs']] = None, + file: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -6641,7 +9114,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_authority_arns: One or more ACM ARNs. """ - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustAcmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is None: + raise TypeError("Missing 'certificate_authority_arns' argument") + + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -6663,7 +9151,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -6685,7 +9188,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -6717,17 +9235,48 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecListenerTimeoutArgs'] timeout: Timeouts for different protocols. :param pulumi.Input['VirtualNodeSpecListenerTlsArgs'] tls: Transport Layer Security (TLS) properties for the listener """ - pulumi.set(__self__, "port_mapping", port_mapping) + VirtualNodeSpecListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port_mapping=port_mapping, + connection_pool=connection_pool, + health_check=health_check, + outlier_detection=outlier_detection, + timeout=timeout, + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port_mapping: Optional[pulumi.Input['VirtualNodeSpecListenerPortMappingArgs']] = None, + connection_pool: Optional[pulumi.Input['VirtualNodeSpecListenerConnectionPoolArgs']] = None, + health_check: Optional[pulumi.Input['VirtualNodeSpecListenerHealthCheckArgs']] = None, + outlier_detection: Optional[pulumi.Input['VirtualNodeSpecListenerOutlierDetectionArgs']] = None, + timeout: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutArgs']] = None, + tls: Optional[pulumi.Input['VirtualNodeSpecListenerTlsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_mapping is None and 'portMapping' in kwargs: + port_mapping = kwargs['portMapping'] + if port_mapping is None: + raise TypeError("Missing 'port_mapping' argument") + if connection_pool is None and 'connectionPool' in kwargs: + connection_pool = kwargs['connectionPool'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if outlier_detection is None and 'outlierDetection' in kwargs: + outlier_detection = kwargs['outlierDetection'] + + _setter("port_mapping", port_mapping) if connection_pool is not None: - pulumi.set(__self__, "connection_pool", connection_pool) + _setter("connection_pool", connection_pool) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if outlier_detection is not None: - pulumi.set(__self__, "outlier_detection", outlier_detection) + _setter("outlier_detection", outlier_detection) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter(name="portMapping") @@ -6815,14 +9364,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VirtualNodeSpecListenerConnectionPoolHttpArgs']]] https: Connection pool information for HTTP listeners. :param pulumi.Input[Sequence[pulumi.Input['VirtualNodeSpecListenerConnectionPoolTcpArgs']]] tcps: Connection pool information for TCP listeners. """ + VirtualNodeSpecListenerConnectionPoolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc=grpc, + http2s=http2s, + https=https, + tcps=tcps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc: Optional[pulumi.Input['VirtualNodeSpecListenerConnectionPoolGrpcArgs']] = None, + http2s: Optional[pulumi.Input[Sequence[pulumi.Input['VirtualNodeSpecListenerConnectionPoolHttp2Args']]]] = None, + https: Optional[pulumi.Input[Sequence[pulumi.Input['VirtualNodeSpecListenerConnectionPoolHttpArgs']]]] = None, + tcps: Optional[pulumi.Input[Sequence[pulumi.Input['VirtualNodeSpecListenerConnectionPoolTcpArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc is not None: - pulumi.set(__self__, "grpc", grpc) + _setter("grpc", grpc) if http2s is not None: - pulumi.set(__self__, "http2s", http2s) + _setter("http2s", http2s) if https is not None: - pulumi.set(__self__, "https", https) + _setter("https", https) if tcps is not None: - pulumi.set(__self__, "tcps", tcps) + _setter("tcps", tcps) @property @pulumi.getter @@ -6880,7 +9446,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] max_requests: Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_requests", max_requests) + VirtualNodeSpecListenerConnectionPoolGrpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -6902,7 +9483,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] max_requests: Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_requests", max_requests) + VirtualNodeSpecListenerConnectionPoolHttp2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -6928,9 +9524,28 @@ def __init__(__self__, *, The `http2` connection pool object supports the following: """ - pulumi.set(__self__, "max_connections", max_connections) + VirtualNodeSpecListenerConnectionPoolHttpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_connections=max_connections, + max_pending_requests=max_pending_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_connections: Optional[pulumi.Input[int]] = None, + max_pending_requests: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_connections is None and 'maxConnections' in kwargs: + max_connections = kwargs['maxConnections'] + if max_connections is None: + raise TypeError("Missing 'max_connections' argument") + if max_pending_requests is None and 'maxPendingRequests' in kwargs: + max_pending_requests = kwargs['maxPendingRequests'] + + _setter("max_connections", max_connections) if max_pending_requests is not None: - pulumi.set(__self__, "max_pending_requests", max_pending_requests) + _setter("max_pending_requests", max_pending_requests) @property @pulumi.getter(name="maxConnections") @@ -6966,7 +9581,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] max_connections: Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_connections", max_connections) + VirtualNodeSpecListenerConnectionPoolTcpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_connections=max_connections, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_connections: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_connections is None and 'maxConnections' in kwargs: + max_connections = kwargs['maxConnections'] + if max_connections is None: + raise TypeError("Missing 'max_connections' argument") + + _setter("max_connections", max_connections) @property @pulumi.getter(name="maxConnections") @@ -7000,15 +9630,56 @@ def __init__(__self__, *, :param pulumi.Input[str] path: Destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. :param pulumi.Input[int] port: Destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. """ - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval_millis", interval_millis) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "timeout_millis", timeout_millis) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + VirtualNodeSpecListenerHealthCheckArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval_millis=interval_millis, + protocol=protocol, + timeout_millis=timeout_millis, + unhealthy_threshold=unhealthy_threshold, + path=path, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[pulumi.Input[int]] = None, + interval_millis: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + timeout_millis: Optional[pulumi.Input[int]] = None, + unhealthy_threshold: Optional[pulumi.Input[int]] = None, + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval_millis is None and 'intervalMillis' in kwargs: + interval_millis = kwargs['intervalMillis'] + if interval_millis is None: + raise TypeError("Missing 'interval_millis' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if timeout_millis is None and 'timeoutMillis' in kwargs: + timeout_millis = kwargs['timeoutMillis'] + if timeout_millis is None: + raise TypeError("Missing 'timeout_millis' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("healthy_threshold", healthy_threshold) + _setter("interval_millis", interval_millis) + _setter("protocol", protocol) + _setter("timeout_millis", timeout_millis) + _setter("unhealthy_threshold", unhealthy_threshold) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="healthyThreshold") @@ -7109,10 +9780,41 @@ def __init__(__self__, *, Minimum value of `0`. Maximum value of `100`. :param pulumi.Input[int] max_server_errors: Number of consecutive `5xx` errors required for ejection. Minimum value of `1`. """ - pulumi.set(__self__, "base_ejection_duration", base_ejection_duration) - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "max_ejection_percent", max_ejection_percent) - pulumi.set(__self__, "max_server_errors", max_server_errors) + VirtualNodeSpecListenerOutlierDetectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + base_ejection_duration=base_ejection_duration, + interval=interval, + max_ejection_percent=max_ejection_percent, + max_server_errors=max_server_errors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + base_ejection_duration: Optional[pulumi.Input['VirtualNodeSpecListenerOutlierDetectionBaseEjectionDurationArgs']] = None, + interval: Optional[pulumi.Input['VirtualNodeSpecListenerOutlierDetectionIntervalArgs']] = None, + max_ejection_percent: Optional[pulumi.Input[int]] = None, + max_server_errors: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_ejection_duration is None and 'baseEjectionDuration' in kwargs: + base_ejection_duration = kwargs['baseEjectionDuration'] + if base_ejection_duration is None: + raise TypeError("Missing 'base_ejection_duration' argument") + if interval is None: + raise TypeError("Missing 'interval' argument") + if max_ejection_percent is None and 'maxEjectionPercent' in kwargs: + max_ejection_percent = kwargs['maxEjectionPercent'] + if max_ejection_percent is None: + raise TypeError("Missing 'max_ejection_percent' argument") + if max_server_errors is None and 'maxServerErrors' in kwargs: + max_server_errors = kwargs['maxServerErrors'] + if max_server_errors is None: + raise TypeError("Missing 'max_server_errors' argument") + + _setter("base_ejection_duration", base_ejection_duration) + _setter("interval", interval) + _setter("max_ejection_percent", max_ejection_percent) + _setter("max_server_errors", max_server_errors) @property @pulumi.getter(name="baseEjectionDuration") @@ -7173,8 +9875,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerOutlierDetectionBaseEjectionDurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7208,10 +9927,27 @@ def __init__(__self__, *, value: pulumi.Input[int]): """ :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: The specified value for the JSON. Must be between 1 and 100 characters in length. + :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerOutlierDetectionIntervalArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7229,7 +9965,7 @@ def unit(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[int]: """ - The specified value for the JSON. Must be between 1 and 100 characters in length. + Number of time units. Minimum value of `0`. """ return pulumi.get(self, "value") @@ -7247,8 +9983,25 @@ def __init__(__self__, *, :param pulumi.Input[int] port: Port used for the port mapping. :param pulumi.Input[str] protocol: Protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. """ - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) + VirtualNodeSpecListenerPortMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + + _setter("port", port) + _setter("protocol", protocol) @property @pulumi.getter @@ -7288,14 +10041,31 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecListenerTimeoutHttp2Args'] http2: Timeouts for HTTP2 listeners. :param pulumi.Input['VirtualNodeSpecListenerTimeoutTcpArgs'] tcp: Timeouts for TCP listeners. """ + VirtualNodeSpecListenerTimeoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc=grpc, + http=http, + http2=http2, + tcp=tcp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutGrpcArgs']] = None, + http: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutHttpArgs']] = None, + http2: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutHttp2Args']] = None, + tcp: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutTcpArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc is not None: - pulumi.set(__self__, "grpc", grpc) + _setter("grpc", grpc) if http is not None: - pulumi.set(__self__, "http", http) + _setter("http", http) if http2 is not None: - pulumi.set(__self__, "http2", http2) + _setter("http2", http2) if tcp is not None: - pulumi.set(__self__, "tcp", tcp) + _setter("tcp", tcp) @property @pulumi.getter @@ -7355,10 +10125,25 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecListenerTimeoutGrpcIdleArgs'] idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param pulumi.Input['VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs'] per_request: Per request timeout. """ + VirtualNodeSpecListenerTimeoutGrpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutGrpcIdleArgs']] = None, + per_request: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -7394,8 +10179,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutGrpcIdleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7429,10 +10231,27 @@ def __init__(__self__, *, value: pulumi.Input[int]): """ :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: The specified value for the JSON. Must be between 1 and 100 characters in length. + :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7450,7 +10269,7 @@ def unit(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[int]: """ - The specified value for the JSON. Must be between 1 and 100 characters in length. + Number of time units. Minimum value of `0`. """ return pulumi.get(self, "value") @@ -7468,10 +10287,25 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecListenerTimeoutHttp2IdleArgs'] idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param pulumi.Input['VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs'] per_request: Per request timeout. """ + VirtualNodeSpecListenerTimeoutHttp2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutHttp2IdleArgs']] = None, + per_request: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -7507,8 +10341,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutHttp2IdleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7542,10 +10393,27 @@ def __init__(__self__, *, value: pulumi.Input[int]): """ :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: The specified value for the JSON. Must be between 1 and 100 characters in length. + :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7563,7 +10431,7 @@ def unit(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[int]: """ - The specified value for the JSON. Must be between 1 and 100 characters in length. + Number of time units. Minimum value of `0`. """ return pulumi.get(self, "value") @@ -7581,10 +10449,25 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecListenerTimeoutHttpIdleArgs'] idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param pulumi.Input['VirtualNodeSpecListenerTimeoutHttpPerRequestArgs'] per_request: Per request timeout. """ + VirtualNodeSpecListenerTimeoutHttpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutHttpIdleArgs']] = None, + per_request: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutHttpPerRequestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -7620,8 +10503,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutHttpIdleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7655,10 +10555,27 @@ def __init__(__self__, *, value: pulumi.Input[int]): """ :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: The specified value for the JSON. Must be between 1 and 100 characters in length. + :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutHttpPerRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7676,7 +10593,7 @@ def unit(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[int]: """ - The specified value for the JSON. Must be between 1 and 100 characters in length. + Number of time units. Minimum value of `0`. """ return pulumi.get(self, "value") @@ -7692,8 +10609,19 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecListenerTimeoutTcpIdleArgs'] idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. """ + VirtualNodeSpecListenerTimeoutTcpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional[pulumi.Input['VirtualNodeSpecListenerTimeoutTcpIdleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) @property @pulumi.getter @@ -7717,8 +10645,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time. Valid values: `ms`, `s`. :param pulumi.Input[int] value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutTcpIdleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7756,10 +10701,29 @@ def __init__(__self__, *, :param pulumi.Input[str] mode: Listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. :param pulumi.Input['VirtualNodeSpecListenerTlsValidationArgs'] validation: Listener's Transport Layer Security (TLS) validation context. """ - pulumi.set(__self__, "certificate", certificate) - pulumi.set(__self__, "mode", mode) + VirtualNodeSpecListenerTlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + mode=mode, + validation=validation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[pulumi.Input['VirtualNodeSpecListenerTlsCertificateArgs']] = None, + mode: Optional[pulumi.Input[str]] = None, + validation: Optional[pulumi.Input['VirtualNodeSpecListenerTlsValidationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate is None: + raise TypeError("Missing 'certificate' argument") + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("certificate", certificate) + _setter("mode", mode) if validation is not None: - pulumi.set(__self__, "validation", validation) + _setter("validation", validation) @property @pulumi.getter @@ -7809,12 +10773,27 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecListenerTlsCertificateFileArgs'] file: Local file certificate. :param pulumi.Input['VirtualNodeSpecListenerTlsCertificateSdsArgs'] sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecListenerTlsCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional[pulumi.Input['VirtualNodeSpecListenerTlsCertificateAcmArgs']] = None, + file: Optional[pulumi.Input['VirtualNodeSpecListenerTlsCertificateFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualNodeSpecListenerTlsCertificateSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -7860,7 +10839,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] certificate_arn: ARN for the certificate. """ - pulumi.set(__self__, "certificate_arn", certificate_arn) + VirtualNodeSpecListenerTlsCertificateAcmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + + _setter("certificate_arn", certificate_arn) @property @pulumi.getter(name="certificateArn") @@ -7884,8 +10878,29 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param pulumi.Input[str] private_key: Private key for a certificate stored on the file system of the virtual node that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualNodeSpecListenerTlsCertificateFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -7919,7 +10934,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecListenerTlsCertificateSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -7943,9 +10973,26 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecListenerTlsValidationTrustArgs'] trust: TLS validation context trust. :param pulumi.Input['VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesArgs'] subject_alternative_names: SANs for a TLS validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualNodeSpecListenerTlsValidationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional[pulumi.Input['VirtualNodeSpecListenerTlsValidationTrustArgs']] = None, + subject_alternative_names: Optional[pulumi.Input['VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -7979,7 +11026,20 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesMatchArgs'] match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional[pulumi.Input['VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -8001,7 +11061,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -8025,10 +11098,23 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecListenerTlsValidationTrustFileArgs'] file: TLS validation context trust for a local file certificate. :param pulumi.Input['VirtualNodeSpecListenerTlsValidationTrustSdsArgs'] sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecListenerTlsValidationTrustArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input['VirtualNodeSpecListenerTlsValidationTrustFileArgs']] = None, + sds: Optional[pulumi.Input['VirtualNodeSpecListenerTlsValidationTrustSdsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -8062,7 +11148,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualNodeSpecListenerTlsValidationTrustFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -8084,7 +11185,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecListenerTlsValidationTrustSdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -8106,8 +11222,21 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecLoggingAccessLogArgs'] access_log: Access log configuration for a virtual node. """ + VirtualNodeSpecLoggingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_log=access_log, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_log: Optional[pulumi.Input['VirtualNodeSpecLoggingAccessLogArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_log is None and 'accessLog' in kwargs: + access_log = kwargs['accessLog'] + if access_log is not None: - pulumi.set(__self__, "access_log", access_log) + _setter("access_log", access_log) @property @pulumi.getter(name="accessLog") @@ -8129,8 +11258,19 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualNodeSpecLoggingAccessLogFileArgs'] file: File object to send virtual node access logs to. """ + VirtualNodeSpecLoggingAccessLogArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input['VirtualNodeSpecLoggingAccessLogFileArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) @property @pulumi.getter @@ -8154,9 +11294,24 @@ def __init__(__self__, *, :param pulumi.Input[str] path: File path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. Must be between 1 and 255 characters in length. :param pulumi.Input['VirtualNodeSpecLoggingAccessLogFileFormatArgs'] format: The specified format for the logs. """ - pulumi.set(__self__, "path", path) + VirtualNodeSpecLoggingAccessLogFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input['VirtualNodeSpecLoggingAccessLogFileFormatArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("path", path) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) @property @pulumi.getter @@ -8192,10 +11347,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VirtualNodeSpecLoggingAccessLogFileFormatJsonArgs']]] jsons: The logging format for JSON. :param pulumi.Input[str] text: The logging format for text. Must be between 1 and 1000 characters in length. """ + VirtualNodeSpecLoggingAccessLogFileFormatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + jsons=jsons, + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jsons: Optional[pulumi.Input[Sequence[pulumi.Input['VirtualNodeSpecLoggingAccessLogFileFormatJsonArgs']]]] = None, + text: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jsons is not None: - pulumi.set(__self__, "jsons", jsons) + _setter("jsons", jsons) if text is not None: - pulumi.set(__self__, "text", text) + _setter("text", text) @property @pulumi.getter @@ -8231,8 +11399,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The specified key for the JSON. Must be between 1 and 100 characters in length. :param pulumi.Input[str] value: The specified value for the JSON. Must be between 1 and 100 characters in length. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + VirtualNodeSpecLoggingAccessLogFileFormatJsonArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -8268,10 +11453,25 @@ def __init__(__self__, *, :param pulumi.Input['VirtualNodeSpecServiceDiscoveryAwsCloudMapArgs'] aws_cloud_map: Any AWS Cloud Map information for the virtual node. :param pulumi.Input['VirtualNodeSpecServiceDiscoveryDnsArgs'] dns: DNS service name for the virtual node. """ + VirtualNodeSpecServiceDiscoveryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_cloud_map=aws_cloud_map, + dns=dns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_cloud_map: Optional[pulumi.Input['VirtualNodeSpecServiceDiscoveryAwsCloudMapArgs']] = None, + dns: Optional[pulumi.Input['VirtualNodeSpecServiceDiscoveryDnsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_cloud_map is None and 'awsCloudMap' in kwargs: + aws_cloud_map = kwargs['awsCloudMap'] + if aws_cloud_map is not None: - pulumi.set(__self__, "aws_cloud_map", aws_cloud_map) + _setter("aws_cloud_map", aws_cloud_map) if dns is not None: - pulumi.set(__self__, "dns", dns) + _setter("dns", dns) @property @pulumi.getter(name="awsCloudMap") @@ -8310,10 +11510,33 @@ def __init__(__self__, *, :param pulumi.Input[str] service_name: Name of the AWS Cloud Map service to use. Use the `servicediscovery.Service` resource to configure a Cloud Map service. Must be between 1 and 1024 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] attributes: String map that contains attributes with values that you can use to filter instances by any custom attribute that you specified when you registered the instance. Only instances that match all of the specified key/value pairs will be returned. """ - pulumi.set(__self__, "namespace_name", namespace_name) - pulumi.set(__self__, "service_name", service_name) + VirtualNodeSpecServiceDiscoveryAwsCloudMapArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace_name=namespace_name, + service_name=service_name, + attributes=attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace_name: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace_name is None and 'namespaceName' in kwargs: + namespace_name = kwargs['namespaceName'] + if namespace_name is None: + raise TypeError("Missing 'namespace_name' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("namespace_name", namespace_name) + _setter("service_name", service_name) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) @property @pulumi.getter(name="namespaceName") @@ -8364,11 +11587,32 @@ def __init__(__self__, *, :param pulumi.Input[str] ip_preference: The preferred IP version that this virtual node uses. Valid values: `IPv6_PREFERRED`, `IPv4_PREFERRED`, `IPv4_ONLY`, `IPv6_ONLY`. :param pulumi.Input[str] response_type: The DNS response type for the virtual node. Valid values: `LOADBALANCER`, `ENDPOINTS`. """ - pulumi.set(__self__, "hostname", hostname) + VirtualNodeSpecServiceDiscoveryDnsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostname=hostname, + ip_preference=ip_preference, + response_type=response_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostname: Optional[pulumi.Input[str]] = None, + ip_preference: Optional[pulumi.Input[str]] = None, + response_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostname is None: + raise TypeError("Missing 'hostname' argument") + if ip_preference is None and 'ipPreference' in kwargs: + ip_preference = kwargs['ipPreference'] + if response_type is None and 'responseType' in kwargs: + response_type = kwargs['responseType'] + + _setter("hostname", hostname) if ip_preference is not None: - pulumi.set(__self__, "ip_preference", ip_preference) + _setter("ip_preference", ip_preference) if response_type is not None: - pulumi.set(__self__, "response_type", response_type) + _setter("response_type", response_type) @property @pulumi.getter @@ -8415,8 +11659,19 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VirtualRouterSpecListenerArgs']]] listeners: Listeners that the virtual router is expected to receive inbound traffic from. Currently only one listener is supported per virtual router. """ + VirtualRouterSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + listeners=listeners, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listeners: Optional[pulumi.Input[Sequence[pulumi.Input['VirtualRouterSpecListenerArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listeners is not None: - pulumi.set(__self__, "listeners", listeners) + _setter("listeners", listeners) @property @pulumi.getter @@ -8439,7 +11694,22 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualRouterSpecListenerPortMappingArgs'] port_mapping: Port mapping information for the listener. """ - pulumi.set(__self__, "port_mapping", port_mapping) + VirtualRouterSpecListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port_mapping=port_mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port_mapping: Optional[pulumi.Input['VirtualRouterSpecListenerPortMappingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_mapping is None and 'portMapping' in kwargs: + port_mapping = kwargs['portMapping'] + if port_mapping is None: + raise TypeError("Missing 'port_mapping' argument") + + _setter("port_mapping", port_mapping) @property @pulumi.getter(name="portMapping") @@ -8463,8 +11733,25 @@ def __init__(__self__, *, :param pulumi.Input[int] port: Port used for the port mapping. :param pulumi.Input[str] protocol: Protocol used for the port mapping. Valid values are `http`,`http2`, `tcp` and `grpc`. """ - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) + VirtualRouterSpecListenerPortMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + + _setter("port", port) + _setter("protocol", protocol) @property @pulumi.getter @@ -8498,8 +11785,19 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualServiceSpecProviderArgs'] provider: App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router. """ + VirtualServiceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + provider=provider, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provider: Optional[pulumi.Input['VirtualServiceSpecProviderArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider is not None: - pulumi.set(__self__, "provider", provider) + _setter("provider", provider) @property @pulumi.getter @@ -8523,10 +11821,27 @@ def __init__(__self__, *, :param pulumi.Input['VirtualServiceSpecProviderVirtualNodeArgs'] virtual_node: Virtual node associated with a virtual service. :param pulumi.Input['VirtualServiceSpecProviderVirtualRouterArgs'] virtual_router: Virtual router associated with a virtual service. """ + VirtualServiceSpecProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + virtual_router=virtual_router, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional[pulumi.Input['VirtualServiceSpecProviderVirtualNodeArgs']] = None, + virtual_router: Optional[pulumi.Input['VirtualServiceSpecProviderVirtualRouterArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_router is None and 'virtualRouter' in kwargs: + virtual_router = kwargs['virtualRouter'] + if virtual_node is not None: - pulumi.set(__self__, "virtual_node", virtual_node) + _setter("virtual_node", virtual_node) if virtual_router is not None: - pulumi.set(__self__, "virtual_router", virtual_router) + _setter("virtual_router", virtual_router) @property @pulumi.getter(name="virtualNode") @@ -8560,7 +11875,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] virtual_node_name: Name of the virtual node that is acting as a service provider. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_node_name", virtual_node_name) + VirtualServiceSpecProviderVirtualNodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node_name=virtual_node_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node_name is None and 'virtualNodeName' in kwargs: + virtual_node_name = kwargs['virtualNodeName'] + if virtual_node_name is None: + raise TypeError("Missing 'virtual_node_name' argument") + + _setter("virtual_node_name", virtual_node_name) @property @pulumi.getter(name="virtualNodeName") @@ -8582,7 +11912,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] virtual_router_name: Name of the virtual router that is acting as a service provider. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_router_name", virtual_router_name) + VirtualServiceSpecProviderVirtualRouterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_router_name=virtual_router_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_router_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_router_name is None and 'virtualRouterName' in kwargs: + virtual_router_name = kwargs['virtualRouterName'] + if virtual_router_name is None: + raise TypeError("Missing 'virtual_router_name' argument") + + _setter("virtual_router_name", virtual_router_name) @property @pulumi.getter(name="virtualRouterName") diff --git a/sdk/python/pulumi_aws/appmesh/gateway_route.py b/sdk/python/pulumi_aws/appmesh/gateway_route.py index c18fc2614ce..a7b4b893e4a 100644 --- a/sdk/python/pulumi_aws/appmesh/gateway_route.py +++ b/sdk/python/pulumi_aws/appmesh/gateway_route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name to use for the gateway route. Must be between 1 and 255 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "mesh_name", mesh_name) - pulumi.set(__self__, "spec", spec) - pulumi.set(__self__, "virtual_gateway_name", virtual_gateway_name) + GatewayRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mesh_name=mesh_name, + spec=spec, + virtual_gateway_name=virtual_gateway_name, + mesh_owner=mesh_owner, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mesh_name: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['GatewayRouteSpecArgs']] = None, + virtual_gateway_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_name is None: + raise TypeError("Missing 'mesh_name' argument") + if spec is None: + raise TypeError("Missing 'spec' argument") + if virtual_gateway_name is None and 'virtualGatewayName' in kwargs: + virtual_gateway_name = kwargs['virtualGatewayName'] + if virtual_gateway_name is None: + raise TypeError("Missing 'virtual_gateway_name' argument") + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + + _setter("mesh_name", mesh_name) + _setter("spec", spec) + _setter("virtual_gateway_name", virtual_gateway_name) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="meshName") @@ -142,31 +175,76 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] virtual_gateway_name: Name of the virtual gateway to associate the gateway route with. Must be between 1 and 255 characters in length. """ + _GatewayRouteState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + last_updated_date=last_updated_date, + mesh_name=mesh_name, + mesh_owner=mesh_owner, + name=name, + resource_owner=resource_owner, + spec=spec, + tags=tags, + tags_all=tags_all, + virtual_gateway_name=virtual_gateway_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['GatewayRouteSpecArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + virtual_gateway_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if virtual_gateway_name is None and 'virtualGatewayName' in kwargs: + virtual_gateway_name = kwargs['virtualGatewayName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if mesh_name is not None: - pulumi.set(__self__, "mesh_name", mesh_name) + _setter("mesh_name", mesh_name) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if virtual_gateway_name is not None: - pulumi.set(__self__, "virtual_gateway_name", virtual_gateway_name) + _setter("virtual_gateway_name", virtual_gateway_name) @property @pulumi.getter @@ -419,6 +497,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GatewayRouteArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -444,6 +526,7 @@ def _internal_init(__self__, __props__.__dict__["mesh_name"] = mesh_name __props__.__dict__["mesh_owner"] = mesh_owner __props__.__dict__["name"] = name + spec = _utilities.configure(spec, GatewayRouteSpecArgs, True) if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec diff --git a/sdk/python/pulumi_aws/appmesh/get_gateway_route.py b/sdk/python/pulumi_aws/appmesh/get_gateway_route.py index b1dbd88d483..73a3815112c 100644 --- a/sdk/python/pulumi_aws/appmesh/get_gateway_route.py +++ b/sdk/python/pulumi_aws/appmesh/get_gateway_route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appmesh/get_mesh.py b/sdk/python/pulumi_aws/appmesh/get_mesh.py index d73390a5b0f..414dbab9f56 100644 --- a/sdk/python/pulumi_aws/appmesh/get_mesh.py +++ b/sdk/python/pulumi_aws/appmesh/get_mesh.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appmesh/get_route.py b/sdk/python/pulumi_aws/appmesh/get_route.py index 9aded1313c3..1039950e125 100644 --- a/sdk/python/pulumi_aws/appmesh/get_route.py +++ b/sdk/python/pulumi_aws/appmesh/get_route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appmesh/get_virtual_gateway.py b/sdk/python/pulumi_aws/appmesh/get_virtual_gateway.py index 6ecdb246215..182c2fb4f26 100644 --- a/sdk/python/pulumi_aws/appmesh/get_virtual_gateway.py +++ b/sdk/python/pulumi_aws/appmesh/get_virtual_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appmesh/get_virtual_node.py b/sdk/python/pulumi_aws/appmesh/get_virtual_node.py index c3f23ffa873..f0d377c87ab 100644 --- a/sdk/python/pulumi_aws/appmesh/get_virtual_node.py +++ b/sdk/python/pulumi_aws/appmesh/get_virtual_node.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appmesh/get_virtual_router.py b/sdk/python/pulumi_aws/appmesh/get_virtual_router.py index d98dc001d50..8567ac68845 100644 --- a/sdk/python/pulumi_aws/appmesh/get_virtual_router.py +++ b/sdk/python/pulumi_aws/appmesh/get_virtual_router.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appmesh/get_virtual_service.py b/sdk/python/pulumi_aws/appmesh/get_virtual_service.py index 4f3d32ee522..e90d5a61931 100644 --- a/sdk/python/pulumi_aws/appmesh/get_virtual_service.py +++ b/sdk/python/pulumi_aws/appmesh/get_virtual_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/appmesh/mesh.py b/sdk/python/pulumi_aws/appmesh/mesh.py index 9a0bbd453c3..7dc5a1c7320 100644 --- a/sdk/python/pulumi_aws/appmesh/mesh.py +++ b/sdk/python/pulumi_aws/appmesh/mesh.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,12 +25,27 @@ def __init__(__self__, *, :param pulumi.Input['MeshSpecArgs'] spec: Service mesh specification to apply. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + MeshArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + spec=spec, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['MeshSpecArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -93,27 +108,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _MeshState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + last_updated_date=last_updated_date, + mesh_owner=mesh_owner, + name=name, + resource_owner=resource_owner, + spec=spec, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['MeshSpecArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -324,6 +376,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MeshArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -342,6 +398,7 @@ def _internal_init(__self__, __props__ = MeshArgs.__new__(MeshArgs) __props__.__dict__["name"] = name + spec = _utilities.configure(spec, MeshSpecArgs, True) __props__.__dict__["spec"] = spec __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/appmesh/outputs.py b/sdk/python/pulumi_aws/appmesh/outputs.py index 52a64e03968..dd43f7c7c43 100644 --- a/sdk/python/pulumi_aws/appmesh/outputs.py +++ b/sdk/python/pulumi_aws/appmesh/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -453,14 +453,37 @@ def __init__(__self__, *, :param 'GatewayRouteSpecHttpRouteArgs' http_route: Specification of an HTTP gateway route. :param int priority: Priority for the gateway route, between `0` and `1000`. """ + GatewayRouteSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc_route=grpc_route, + http2_route=http2_route, + http_route=http_route, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc_route: Optional['outputs.GatewayRouteSpecGrpcRoute'] = None, + http2_route: Optional['outputs.GatewayRouteSpecHttp2Route'] = None, + http_route: Optional['outputs.GatewayRouteSpecHttpRoute'] = None, + priority: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc_route is None and 'grpcRoute' in kwargs: + grpc_route = kwargs['grpcRoute'] + if http2_route is None and 'http2Route' in kwargs: + http2_route = kwargs['http2Route'] + if http_route is None and 'httpRoute' in kwargs: + http_route = kwargs['httpRoute'] + if grpc_route is not None: - pulumi.set(__self__, "grpc_route", grpc_route) + _setter("grpc_route", grpc_route) if http2_route is not None: - pulumi.set(__self__, "http2_route", http2_route) + _setter("http2_route", http2_route) if http_route is not None: - pulumi.set(__self__, "http_route", http_route) + _setter("http_route", http_route) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) @property @pulumi.getter(name="grpcRoute") @@ -504,8 +527,25 @@ def __init__(__self__, *, :param 'GatewayRouteSpecGrpcRouteActionArgs' action: Action to take if a match is determined. :param 'GatewayRouteSpecGrpcRouteMatchArgs' match: Criteria for determining a request match. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + GatewayRouteSpecGrpcRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.GatewayRouteSpecGrpcRouteAction'] = None, + match: Optional['outputs.GatewayRouteSpecGrpcRouteMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("action", action) + _setter("match", match) @property @pulumi.getter @@ -531,7 +571,20 @@ def __init__(__self__, *, """ :param 'GatewayRouteSpecGrpcRouteActionTargetArgs' target: Target that traffic is routed to when a request matches the gateway route. """ - pulumi.set(__self__, "target", target) + GatewayRouteSpecGrpcRouteAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target: Optional['outputs.GatewayRouteSpecGrpcRouteActionTarget'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("target", target) @property @pulumi.getter @@ -568,9 +621,26 @@ def __init__(__self__, *, :param 'GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs' virtual_service: Virtual service gateway route target. :param int port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. """ - pulumi.set(__self__, "virtual_service", virtual_service) + GatewayRouteSpecGrpcRouteActionTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service=virtual_service, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service: Optional['outputs.GatewayRouteSpecGrpcRouteActionTargetVirtualService'] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service is None and 'virtualService' in kwargs: + virtual_service = kwargs['virtualService'] + if virtual_service is None: + raise TypeError("Missing 'virtual_service' argument") + + _setter("virtual_service", virtual_service) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualService") @@ -613,7 +683,22 @@ def __init__(__self__, *, """ :param str virtual_service_name: Name of the virtual service that traffic is routed to. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GatewayRouteSpecGrpcRouteActionTargetVirtualService._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="virtualServiceName") @@ -648,11 +733,28 @@ def __init__(__self__, *, port: Optional[int] = None): """ :param str service_name: Fully qualified domain name for the service to match from the request. - :param int port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + :param int port: The port number to match from the request. """ - pulumi.set(__self__, "service_name", service_name) + GatewayRouteSpecGrpcRouteMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_name=service_name, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_name: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("service_name", service_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="serviceName") @@ -666,7 +768,7 @@ def service_name(self) -> str: @pulumi.getter def port(self) -> Optional[int]: """ - The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + The port number to match from the request. """ return pulumi.get(self, "port") @@ -680,8 +782,25 @@ def __init__(__self__, *, :param 'GatewayRouteSpecHttp2RouteActionArgs' action: Action to take if a match is determined. :param 'GatewayRouteSpecHttp2RouteMatchArgs' match: Criteria for determining a request match. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + GatewayRouteSpecHttp2Route._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.GatewayRouteSpecHttp2RouteAction'] = None, + match: Optional['outputs.GatewayRouteSpecHttp2RouteMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("action", action) + _setter("match", match) @property @pulumi.getter @@ -709,9 +828,24 @@ def __init__(__self__, *, :param 'GatewayRouteSpecHttp2RouteActionTargetArgs' target: Target that traffic is routed to when a request matches the gateway route. :param 'GatewayRouteSpecHttp2RouteActionRewriteArgs' rewrite: Gateway route action to rewrite. """ - pulumi.set(__self__, "target", target) + GatewayRouteSpecHttp2RouteAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + target=target, + rewrite=rewrite, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target: Optional['outputs.GatewayRouteSpecHttp2RouteActionTarget'] = None, + rewrite: Optional['outputs.GatewayRouteSpecHttp2RouteActionRewrite'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("target", target) if rewrite is not None: - pulumi.set(__self__, "rewrite", rewrite) + _setter("rewrite", rewrite) @property @pulumi.getter @@ -741,12 +875,27 @@ def __init__(__self__, *, :param 'GatewayRouteSpecHttp2RouteActionRewritePathArgs' path: Exact path to rewrite. :param 'GatewayRouteSpecHttp2RouteActionRewritePrefixArgs' prefix: Specified beginning characters to rewrite. """ + GatewayRouteSpecHttp2RouteActionRewrite._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostname=hostname, + path=path, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostname: Optional['outputs.GatewayRouteSpecHttp2RouteActionRewriteHostname'] = None, + path: Optional['outputs.GatewayRouteSpecHttp2RouteActionRewritePath'] = None, + prefix: Optional['outputs.GatewayRouteSpecHttp2RouteActionRewritePrefix'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -797,7 +946,22 @@ def __init__(__self__, *, """ :param str default_target_hostname: Default target host name to write to. Valid values: `ENABLED`, `DISABLED`. """ - pulumi.set(__self__, "default_target_hostname", default_target_hostname) + GatewayRouteSpecHttp2RouteActionRewriteHostname._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_target_hostname=default_target_hostname, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_target_hostname: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_target_hostname is None and 'defaultTargetHostname' in kwargs: + default_target_hostname = kwargs['defaultTargetHostname'] + if default_target_hostname is None: + raise TypeError("Missing 'default_target_hostname' argument") + + _setter("default_target_hostname", default_target_hostname) @property @pulumi.getter(name="defaultTargetHostname") @@ -815,7 +979,20 @@ def __init__(__self__, *, """ :param str exact: The exact path to match on. """ - pulumi.set(__self__, "exact", exact) + GatewayRouteSpecHttp2RouteActionRewritePath._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -852,10 +1029,25 @@ def __init__(__self__, *, :param str default_prefix: Default prefix used to replace the incoming route prefix when rewritten. Valid values: `ENABLED`, `DISABLED`. :param str value: Value used to replace the incoming route prefix when rewritten. """ + GatewayRouteSpecHttp2RouteActionRewritePrefix._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_prefix=default_prefix, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_prefix: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_prefix is None and 'defaultPrefix' in kwargs: + default_prefix = kwargs['defaultPrefix'] + if default_prefix is not None: - pulumi.set(__self__, "default_prefix", default_prefix) + _setter("default_prefix", default_prefix) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="defaultPrefix") @@ -900,9 +1092,26 @@ def __init__(__self__, *, :param 'GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs' virtual_service: Virtual service gateway route target. :param int port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. """ - pulumi.set(__self__, "virtual_service", virtual_service) + GatewayRouteSpecHttp2RouteActionTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service=virtual_service, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service: Optional['outputs.GatewayRouteSpecHttp2RouteActionTargetVirtualService'] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service is None and 'virtualService' in kwargs: + virtual_service = kwargs['virtualService'] + if virtual_service is None: + raise TypeError("Missing 'virtual_service' argument") + + _setter("virtual_service", virtual_service) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualService") @@ -945,7 +1154,22 @@ def __init__(__self__, *, """ :param str virtual_service_name: Name of the virtual service that traffic is routed to. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GatewayRouteSpecHttp2RouteActionTargetVirtualService._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="virtualServiceName") @@ -984,24 +1208,47 @@ def __init__(__self__, *, query_parameters: Optional[Sequence['outputs.GatewayRouteSpecHttp2RouteMatchQueryParameter']] = None): """ :param Sequence['GatewayRouteSpecHttp2RouteMatchHeaderArgs'] headers: Client request headers to match on. - :param 'GatewayRouteSpecHttp2RouteMatchHostnameArgs' hostname: Host name to rewrite. - :param 'GatewayRouteSpecHttp2RouteMatchPathArgs' path: Exact path to rewrite. - :param int port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. - :param str prefix: Specified beginning characters to rewrite. + :param 'GatewayRouteSpecHttp2RouteMatchHostnameArgs' hostname: Host name to match on. + :param 'GatewayRouteSpecHttp2RouteMatchPathArgs' path: Client request path to match on. + :param int port: The port number to match from the request. + :param str prefix: Header value sent by the client must begin with the specified characters. :param Sequence['GatewayRouteSpecHttp2RouteMatchQueryParameterArgs'] query_parameters: Client request query parameters to match on. """ + GatewayRouteSpecHttp2RouteMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + hostname=hostname, + path=path, + port=port, + prefix=prefix, + query_parameters=query_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[Sequence['outputs.GatewayRouteSpecHttp2RouteMatchHeader']] = None, + hostname: Optional['outputs.GatewayRouteSpecHttp2RouteMatchHostname'] = None, + path: Optional['outputs.GatewayRouteSpecHttp2RouteMatchPath'] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + query_parameters: Optional[Sequence['outputs.GatewayRouteSpecHttp2RouteMatchQueryParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if query_parameters is not None: - pulumi.set(__self__, "query_parameters", query_parameters) + _setter("query_parameters", query_parameters) @property @pulumi.getter @@ -1015,7 +1262,7 @@ def headers(self) -> Optional[Sequence['outputs.GatewayRouteSpecHttp2RouteMatchH @pulumi.getter def hostname(self) -> Optional['outputs.GatewayRouteSpecHttp2RouteMatchHostname']: """ - Host name to rewrite. + Host name to match on. """ return pulumi.get(self, "hostname") @@ -1023,7 +1270,7 @@ def hostname(self) -> Optional['outputs.GatewayRouteSpecHttp2RouteMatchHostname' @pulumi.getter def path(self) -> Optional['outputs.GatewayRouteSpecHttp2RouteMatchPath']: """ - Exact path to rewrite. + Client request path to match on. """ return pulumi.get(self, "path") @@ -1031,7 +1278,7 @@ def path(self) -> Optional['outputs.GatewayRouteSpecHttp2RouteMatchPath']: @pulumi.getter def port(self) -> Optional[int]: """ - The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + The port number to match from the request. """ return pulumi.get(self, "port") @@ -1039,7 +1286,7 @@ def port(self) -> Optional[int]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Specified beginning characters to rewrite. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -1063,11 +1310,28 @@ def __init__(__self__, *, :param bool invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. :param 'GatewayRouteSpecHttp2RouteMatchHeaderMatchArgs' match: Method and value to match the header value sent with a request. Specify one match method. """ - pulumi.set(__self__, "name", name) + GatewayRouteSpecHttp2RouteMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + invert: Optional[bool] = None, + match: Optional['outputs.GatewayRouteSpecHttp2RouteMatchHeaderMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -1103,28 +1367,47 @@ def __init__(__self__, *, regex: Optional[str] = None, suffix: Optional[str] = None): """ - :param str exact: Value used to replace matched path. - :param str prefix: Specified beginning characters to rewrite. + :param str exact: Header value sent by the client must match the specified value exactly. + :param str prefix: Header value sent by the client must begin with the specified characters. :param 'GatewayRouteSpecHttp2RouteMatchHeaderMatchRangeArgs' range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param str regex: Header value sent by the client must include the specified characters. :param str suffix: Header value sent by the client must end with the specified characters. """ + GatewayRouteSpecHttp2RouteMatchHeaderMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + range: Optional['outputs.GatewayRouteSpecHttp2RouteMatchHeaderMatchRange'] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter def exact(self) -> Optional[str]: """ - Value used to replace matched path. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -1132,7 +1415,7 @@ def exact(self) -> Optional[str]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Specified beginning characters to rewrite. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -1170,8 +1453,25 @@ def __init__(__self__, *, :param int end: End of the range. :param int start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GatewayRouteSpecHttp2RouteMatchHeaderMatchRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -1199,10 +1499,23 @@ def __init__(__self__, *, :param str exact: Exact host name to match on. :param str suffix: Specified ending characters of the host name to match on. """ + GatewayRouteSpecHttp2RouteMatchHostname._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -1230,10 +1543,23 @@ def __init__(__self__, *, :param str exact: The exact path to match on. :param str regex: The regex used to match the path. """ + GatewayRouteSpecHttp2RouteMatchPath._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + regex: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) @property @pulumi.getter @@ -1261,9 +1587,24 @@ def __init__(__self__, *, :param str name: Name for the query parameter that will be matched on. :param 'GatewayRouteSpecHttp2RouteMatchQueryParameterMatchArgs' match: The query parameter to match on. """ - pulumi.set(__self__, "name", name) + GatewayRouteSpecHttp2RouteMatchQueryParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + match: Optional['outputs.GatewayRouteSpecHttp2RouteMatchQueryParameterMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -1287,16 +1628,27 @@ class GatewayRouteSpecHttp2RouteMatchQueryParameterMatch(dict): def __init__(__self__, *, exact: Optional[str] = None): """ - :param str exact: Value used to replace matched path. + :param str exact: Header value sent by the client must match the specified value exactly. """ + GatewayRouteSpecHttp2RouteMatchQueryParameterMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) @property @pulumi.getter def exact(self) -> Optional[str]: """ - Value used to replace matched path. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -1310,8 +1662,25 @@ def __init__(__self__, *, :param 'GatewayRouteSpecHttpRouteActionArgs' action: Action to take if a match is determined. :param 'GatewayRouteSpecHttpRouteMatchArgs' match: Criteria for determining a request match. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + GatewayRouteSpecHttpRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.GatewayRouteSpecHttpRouteAction'] = None, + match: Optional['outputs.GatewayRouteSpecHttpRouteMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("action", action) + _setter("match", match) @property @pulumi.getter @@ -1339,9 +1708,24 @@ def __init__(__self__, *, :param 'GatewayRouteSpecHttpRouteActionTargetArgs' target: Target that traffic is routed to when a request matches the gateway route. :param 'GatewayRouteSpecHttpRouteActionRewriteArgs' rewrite: Gateway route action to rewrite. """ - pulumi.set(__self__, "target", target) + GatewayRouteSpecHttpRouteAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + target=target, + rewrite=rewrite, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target: Optional['outputs.GatewayRouteSpecHttpRouteActionTarget'] = None, + rewrite: Optional['outputs.GatewayRouteSpecHttpRouteActionRewrite'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("target", target) if rewrite is not None: - pulumi.set(__self__, "rewrite", rewrite) + _setter("rewrite", rewrite) @property @pulumi.getter @@ -1371,12 +1755,27 @@ def __init__(__self__, *, :param 'GatewayRouteSpecHttpRouteActionRewritePathArgs' path: Exact path to rewrite. :param 'GatewayRouteSpecHttpRouteActionRewritePrefixArgs' prefix: Specified beginning characters to rewrite. """ + GatewayRouteSpecHttpRouteActionRewrite._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostname=hostname, + path=path, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostname: Optional['outputs.GatewayRouteSpecHttpRouteActionRewriteHostname'] = None, + path: Optional['outputs.GatewayRouteSpecHttpRouteActionRewritePath'] = None, + prefix: Optional['outputs.GatewayRouteSpecHttpRouteActionRewritePrefix'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -1427,7 +1826,22 @@ def __init__(__self__, *, """ :param str default_target_hostname: Default target host name to write to. Valid values: `ENABLED`, `DISABLED`. """ - pulumi.set(__self__, "default_target_hostname", default_target_hostname) + GatewayRouteSpecHttpRouteActionRewriteHostname._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_target_hostname=default_target_hostname, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_target_hostname: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_target_hostname is None and 'defaultTargetHostname' in kwargs: + default_target_hostname = kwargs['defaultTargetHostname'] + if default_target_hostname is None: + raise TypeError("Missing 'default_target_hostname' argument") + + _setter("default_target_hostname", default_target_hostname) @property @pulumi.getter(name="defaultTargetHostname") @@ -1445,7 +1859,20 @@ def __init__(__self__, *, """ :param str exact: The exact path to match on. """ - pulumi.set(__self__, "exact", exact) + GatewayRouteSpecHttpRouteActionRewritePath._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -1482,10 +1909,25 @@ def __init__(__self__, *, :param str default_prefix: Default prefix used to replace the incoming route prefix when rewritten. Valid values: `ENABLED`, `DISABLED`. :param str value: Value used to replace the incoming route prefix when rewritten. """ + GatewayRouteSpecHttpRouteActionRewritePrefix._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_prefix=default_prefix, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_prefix: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_prefix is None and 'defaultPrefix' in kwargs: + default_prefix = kwargs['defaultPrefix'] + if default_prefix is not None: - pulumi.set(__self__, "default_prefix", default_prefix) + _setter("default_prefix", default_prefix) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="defaultPrefix") @@ -1530,9 +1972,26 @@ def __init__(__self__, *, :param 'GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs' virtual_service: Virtual service gateway route target. :param int port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. """ - pulumi.set(__self__, "virtual_service", virtual_service) + GatewayRouteSpecHttpRouteActionTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service=virtual_service, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service: Optional['outputs.GatewayRouteSpecHttpRouteActionTargetVirtualService'] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service is None and 'virtualService' in kwargs: + virtual_service = kwargs['virtualService'] + if virtual_service is None: + raise TypeError("Missing 'virtual_service' argument") + + _setter("virtual_service", virtual_service) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualService") @@ -1575,7 +2034,22 @@ def __init__(__self__, *, """ :param str virtual_service_name: Name of the virtual service that traffic is routed to. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GatewayRouteSpecHttpRouteActionTargetVirtualService._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="virtualServiceName") @@ -1614,24 +2088,47 @@ def __init__(__self__, *, query_parameters: Optional[Sequence['outputs.GatewayRouteSpecHttpRouteMatchQueryParameter']] = None): """ :param Sequence['GatewayRouteSpecHttpRouteMatchHeaderArgs'] headers: Client request headers to match on. - :param 'GatewayRouteSpecHttpRouteMatchHostnameArgs' hostname: Host name to rewrite. - :param 'GatewayRouteSpecHttpRouteMatchPathArgs' path: Exact path to rewrite. - :param int port: The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. - :param str prefix: Specified beginning characters to rewrite. + :param 'GatewayRouteSpecHttpRouteMatchHostnameArgs' hostname: Host name to match on. + :param 'GatewayRouteSpecHttpRouteMatchPathArgs' path: Client request path to match on. + :param int port: The port number to match from the request. + :param str prefix: Header value sent by the client must begin with the specified characters. :param Sequence['GatewayRouteSpecHttpRouteMatchQueryParameterArgs'] query_parameters: Client request query parameters to match on. """ + GatewayRouteSpecHttpRouteMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + hostname=hostname, + path=path, + port=port, + prefix=prefix, + query_parameters=query_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[Sequence['outputs.GatewayRouteSpecHttpRouteMatchHeader']] = None, + hostname: Optional['outputs.GatewayRouteSpecHttpRouteMatchHostname'] = None, + path: Optional['outputs.GatewayRouteSpecHttpRouteMatchPath'] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + query_parameters: Optional[Sequence['outputs.GatewayRouteSpecHttpRouteMatchQueryParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if query_parameters is not None: - pulumi.set(__self__, "query_parameters", query_parameters) + _setter("query_parameters", query_parameters) @property @pulumi.getter @@ -1645,7 +2142,7 @@ def headers(self) -> Optional[Sequence['outputs.GatewayRouteSpecHttpRouteMatchHe @pulumi.getter def hostname(self) -> Optional['outputs.GatewayRouteSpecHttpRouteMatchHostname']: """ - Host name to rewrite. + Host name to match on. """ return pulumi.get(self, "hostname") @@ -1653,7 +2150,7 @@ def hostname(self) -> Optional['outputs.GatewayRouteSpecHttpRouteMatchHostname'] @pulumi.getter def path(self) -> Optional['outputs.GatewayRouteSpecHttpRouteMatchPath']: """ - Exact path to rewrite. + Client request path to match on. """ return pulumi.get(self, "path") @@ -1661,7 +2158,7 @@ def path(self) -> Optional['outputs.GatewayRouteSpecHttpRouteMatchPath']: @pulumi.getter def port(self) -> Optional[int]: """ - The port number that corresponds to the target for Virtual Service provider port. This is required when the provider (router or node) of the Virtual Service has multiple listeners. + The port number to match from the request. """ return pulumi.get(self, "port") @@ -1669,7 +2166,7 @@ def port(self) -> Optional[int]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Specified beginning characters to rewrite. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -1693,11 +2190,28 @@ def __init__(__self__, *, :param bool invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. :param 'GatewayRouteSpecHttpRouteMatchHeaderMatchArgs' match: Method and value to match the header value sent with a request. Specify one match method. """ - pulumi.set(__self__, "name", name) + GatewayRouteSpecHttpRouteMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + invert: Optional[bool] = None, + match: Optional['outputs.GatewayRouteSpecHttpRouteMatchHeaderMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -1733,28 +2247,47 @@ def __init__(__self__, *, regex: Optional[str] = None, suffix: Optional[str] = None): """ - :param str exact: Value used to replace matched path. - :param str prefix: Specified beginning characters to rewrite. + :param str exact: Header value sent by the client must match the specified value exactly. + :param str prefix: Header value sent by the client must begin with the specified characters. :param 'GatewayRouteSpecHttpRouteMatchHeaderMatchRangeArgs' range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param str regex: Header value sent by the client must include the specified characters. :param str suffix: Header value sent by the client must end with the specified characters. """ + GatewayRouteSpecHttpRouteMatchHeaderMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + range: Optional['outputs.GatewayRouteSpecHttpRouteMatchHeaderMatchRange'] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter def exact(self) -> Optional[str]: """ - Value used to replace matched path. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -1762,7 +2295,7 @@ def exact(self) -> Optional[str]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Specified beginning characters to rewrite. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -1800,8 +2333,25 @@ def __init__(__self__, *, :param int end: End of the range. :param int start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GatewayRouteSpecHttpRouteMatchHeaderMatchRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -1829,10 +2379,23 @@ def __init__(__self__, *, :param str exact: Exact host name to match on. :param str suffix: Specified ending characters of the host name to match on. """ + GatewayRouteSpecHttpRouteMatchHostname._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -1860,10 +2423,23 @@ def __init__(__self__, *, :param str exact: The exact path to match on. :param str regex: The regex used to match the path. """ + GatewayRouteSpecHttpRouteMatchPath._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + regex: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) @property @pulumi.getter @@ -1891,9 +2467,24 @@ def __init__(__self__, *, :param str name: Name for the query parameter that will be matched on. :param 'GatewayRouteSpecHttpRouteMatchQueryParameterMatchArgs' match: The query parameter to match on. """ - pulumi.set(__self__, "name", name) + GatewayRouteSpecHttpRouteMatchQueryParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + match: Optional['outputs.GatewayRouteSpecHttpRouteMatchQueryParameterMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -1917,16 +2508,27 @@ class GatewayRouteSpecHttpRouteMatchQueryParameterMatch(dict): def __init__(__self__, *, exact: Optional[str] = None): """ - :param str exact: Value used to replace matched path. + :param str exact: Header value sent by the client must match the specified value exactly. """ + GatewayRouteSpecHttpRouteMatchQueryParameterMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) @property @pulumi.getter def exact(self) -> Optional[str]: """ - Value used to replace matched path. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -1955,8 +2557,21 @@ def __init__(__self__, *, """ :param 'MeshSpecEgressFilterArgs' egress_filter: Egress filter rules for the service mesh. """ + MeshSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + egress_filter=egress_filter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + egress_filter: Optional['outputs.MeshSpecEgressFilter'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if egress_filter is None and 'egressFilter' in kwargs: + egress_filter = kwargs['egressFilter'] + if egress_filter is not None: - pulumi.set(__self__, "egress_filter", egress_filter) + _setter("egress_filter", egress_filter) @property @pulumi.getter(name="egressFilter") @@ -1975,8 +2590,19 @@ def __init__(__self__, *, :param str type: Egress filter type. By default, the type is `DROP_ALL`. Valid values are `ALLOW_ALL` and `DROP_ALL`. """ + MeshSpecEgressFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -2027,16 +2653,43 @@ def __init__(__self__, *, Routes are matched based on the specified value, where `0` is the highest priority. :param 'RouteSpecTcpRouteArgs' tcp_route: TCP routing information for the route. """ + RouteSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc_route=grpc_route, + http2_route=http2_route, + http_route=http_route, + priority=priority, + tcp_route=tcp_route, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc_route: Optional['outputs.RouteSpecGrpcRoute'] = None, + http2_route: Optional['outputs.RouteSpecHttp2Route'] = None, + http_route: Optional['outputs.RouteSpecHttpRoute'] = None, + priority: Optional[int] = None, + tcp_route: Optional['outputs.RouteSpecTcpRoute'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc_route is None and 'grpcRoute' in kwargs: + grpc_route = kwargs['grpcRoute'] + if http2_route is None and 'http2Route' in kwargs: + http2_route = kwargs['http2Route'] + if http_route is None and 'httpRoute' in kwargs: + http_route = kwargs['httpRoute'] + if tcp_route is None and 'tcpRoute' in kwargs: + tcp_route = kwargs['tcpRoute'] + if grpc_route is not None: - pulumi.set(__self__, "grpc_route", grpc_route) + _setter("grpc_route", grpc_route) if http2_route is not None: - pulumi.set(__self__, "http2_route", http2_route) + _setter("http2_route", http2_route) if http_route is not None: - pulumi.set(__self__, "http_route", http_route) + _setter("http_route", http_route) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if tcp_route is not None: - pulumi.set(__self__, "tcp_route", tcp_route) + _setter("tcp_route", tcp_route) @property @pulumi.getter(name="grpcRoute") @@ -2110,13 +2763,34 @@ def __init__(__self__, *, :param 'RouteSpecGrpcRouteRetryPolicyArgs' retry_policy: Retry policy. :param 'RouteSpecGrpcRouteTimeoutArgs' timeout: Types of timeouts. """ - pulumi.set(__self__, "action", action) + RouteSpecGrpcRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + retry_policy=retry_policy, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.RouteSpecGrpcRouteAction'] = None, + match: Optional['outputs.RouteSpecGrpcRouteMatch'] = None, + retry_policy: Optional['outputs.RouteSpecGrpcRouteRetryPolicy'] = None, + timeout: Optional['outputs.RouteSpecGrpcRouteTimeout'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + + _setter("action", action) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -2176,7 +2850,22 @@ def __init__(__self__, *, :param Sequence['RouteSpecGrpcRouteActionWeightedTargetArgs'] weighted_targets: Targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + RouteSpecGrpcRouteAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[Sequence['outputs.RouteSpecGrpcRouteActionWeightedTarget']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -2216,10 +2905,31 @@ def __init__(__self__, *, :param int weight: Relative weight of the weighted target. An integer between 0 and 100. :param int port: The targeted port of the weighted object. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + RouteSpecGrpcRouteActionWeightedTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional[str] = None, + weight: Optional[int] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("virtual_node", virtual_node) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualNode") @@ -2277,20 +2987,42 @@ def __init__(__self__, *, :param Sequence['RouteSpecGrpcRouteMatchMetadataArgs'] metadatas: Data to match from the gRPC request. :param str method_name: Method name to match from the request. If you specify a name, you must also specify a `service_name`. :param int port: The port number to match from the request. - :param str prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param str prefix: Header value sent by the client must begin with the specified characters. :param str service_name: Fully qualified domain name for the service to match from the request. """ + RouteSpecGrpcRouteMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + metadatas=metadatas, + method_name=method_name, + port=port, + prefix=prefix, + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metadatas: Optional[Sequence['outputs.RouteSpecGrpcRouteMatchMetadata']] = None, + method_name: Optional[str] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if method_name is None and 'methodName' in kwargs: + method_name = kwargs['methodName'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if metadatas is not None: - pulumi.set(__self__, "metadatas", metadatas) + _setter("metadatas", metadatas) if method_name is not None: - pulumi.set(__self__, "method_name", method_name) + _setter("method_name", method_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) @property @pulumi.getter @@ -2320,8 +3052,7 @@ def port(self) -> Optional[int]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -2345,11 +3076,28 @@ def __init__(__self__, *, :param bool invert: If `true`, the match is on the opposite of the `match` criteria. Default is `false`. :param 'RouteSpecGrpcRouteMatchMetadataMatchArgs' match: Data to match from the request. """ - pulumi.set(__self__, "name", name) + RouteSpecGrpcRouteMatchMetadata._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + invert: Optional[bool] = None, + match: Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -2386,22 +3134,40 @@ def __init__(__self__, *, suffix: Optional[str] = None): """ :param str exact: The exact path to match on. - :param str prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param 'RouteSpecGrpcRouteMatchMetadataMatchRangeArgs' range: Object that specifies the range of numbers that the value sent by the client must be included in. + :param str prefix: Header value sent by the client must begin with the specified characters. + :param 'RouteSpecGrpcRouteMatchMetadataMatchRangeArgs' range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param str regex: The regex used to match the path. - :param str suffix: Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + :param str suffix: Header value sent by the client must end with the specified characters. """ + RouteSpecGrpcRouteMatchMetadataMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + range: Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatchRange'] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -2415,8 +3181,7 @@ def exact(self) -> Optional[str]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -2424,7 +3189,7 @@ def prefix(self) -> Optional[str]: @pulumi.getter def range(self) -> Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatchRange']: """ - Object that specifies the range of numbers that the value sent by the client must be included in. + Object that specifies the range of numbers that the header value sent by the client must be included in. """ return pulumi.get(self, "range") @@ -2440,7 +3205,7 @@ def regex(self) -> Optional[str]: @pulumi.getter def suffix(self) -> Optional[str]: """ - Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must end with the specified characters. """ return pulumi.get(self, "suffix") @@ -2454,8 +3219,25 @@ def __init__(__self__, *, :param int end: End of the range. :param int start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + RouteSpecGrpcRouteMatchMetadataMatchRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -2514,20 +3296,49 @@ def __init__(__self__, *, Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. :param Sequence[str] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). :param Sequence[str] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) + RouteSpecGrpcRouteRetryPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_retries=max_retries, + per_retry_timeout=per_retry_timeout, + grpc_retry_events=grpc_retry_events, + http_retry_events=http_retry_events, + tcp_retry_events=tcp_retry_events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_retries: Optional[int] = None, + per_retry_timeout: Optional['outputs.RouteSpecGrpcRouteRetryPolicyPerRetryTimeout'] = None, + grpc_retry_events: Optional[Sequence[str]] = None, + http_retry_events: Optional[Sequence[str]] = None, + tcp_retry_events: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if max_retries is None: + raise TypeError("Missing 'max_retries' argument") + if per_retry_timeout is None and 'perRetryTimeout' in kwargs: + per_retry_timeout = kwargs['perRetryTimeout'] + if per_retry_timeout is None: + raise TypeError("Missing 'per_retry_timeout' argument") + if grpc_retry_events is None and 'grpcRetryEvents' in kwargs: + grpc_retry_events = kwargs['grpcRetryEvents'] + if http_retry_events is None and 'httpRetryEvents' in kwargs: + http_retry_events = kwargs['httpRetryEvents'] + if tcp_retry_events is None and 'tcpRetryEvents' in kwargs: + tcp_retry_events = kwargs['tcpRetryEvents'] + + _setter("max_retries", max_retries) + _setter("per_retry_timeout", per_retry_timeout) if grpc_retry_events is not None: - pulumi.set(__self__, "grpc_retry_events", grpc_retry_events) + _setter("grpc_retry_events", grpc_retry_events) if http_retry_events is not None: - pulumi.set(__self__, "http_retry_events", http_retry_events) + _setter("http_retry_events", http_retry_events) if tcp_retry_events is not None: - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + _setter("tcp_retry_events", tcp_retry_events) @property @pulumi.getter(name="maxRetries") @@ -2560,7 +3371,6 @@ def http_retry_events(self) -> Optional[Sequence[str]]: """ List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). """ return pulumi.get(self, "http_retry_events") @@ -2569,9 +3379,6 @@ def http_retry_events(self) -> Optional[Sequence[str]]: def tcp_retry_events(self) -> Optional[Sequence[str]]: """ List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ return pulumi.get(self, "tcp_retry_events") @@ -2585,8 +3392,25 @@ def __init__(__self__, *, :param str unit: Retry unit. Valid values: `ms`, `s`. :param int value: Retry value. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecGrpcRouteRetryPolicyPerRetryTimeout._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2631,10 +3455,25 @@ def __init__(__self__, *, :param 'RouteSpecGrpcRouteTimeoutIdleArgs' idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param 'RouteSpecGrpcRouteTimeoutPerRequestArgs' per_request: Per request timeout. """ + RouteSpecGrpcRouteTimeout._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional['outputs.RouteSpecGrpcRouteTimeoutIdle'] = None, + per_request: Optional['outputs.RouteSpecGrpcRouteTimeoutPerRequest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -2662,8 +3501,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecGrpcRouteTimeoutIdle._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2691,8 +3547,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecGrpcRouteTimeoutPerRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2741,12 +3614,35 @@ def __init__(__self__, *, :param 'RouteSpecHttp2RouteRetryPolicyArgs' retry_policy: Retry policy. :param 'RouteSpecHttp2RouteTimeoutArgs' timeout: Types of timeouts. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + RouteSpecHttp2Route._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + retry_policy=retry_policy, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.RouteSpecHttp2RouteAction'] = None, + match: Optional['outputs.RouteSpecHttp2RouteMatch'] = None, + retry_policy: Optional['outputs.RouteSpecHttp2RouteRetryPolicy'] = None, + timeout: Optional['outputs.RouteSpecHttp2RouteTimeout'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + + _setter("action", action) + _setter("match", match) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -2806,7 +3702,22 @@ def __init__(__self__, *, :param Sequence['RouteSpecHttp2RouteActionWeightedTargetArgs'] weighted_targets: Targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + RouteSpecHttp2RouteAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[Sequence['outputs.RouteSpecHttp2RouteActionWeightedTarget']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -2846,10 +3757,31 @@ def __init__(__self__, *, :param int weight: Relative weight of the weighted target. An integer between 0 and 100. :param int port: The targeted port of the weighted object. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + RouteSpecHttp2RouteActionWeightedTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional[str] = None, + weight: Optional[int] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("virtual_node", virtual_node) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualNode") @@ -2908,25 +3840,49 @@ def __init__(__self__, *, :param str method: Client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. :param 'RouteSpecHttp2RouteMatchPathArgs' path: Client request path to match on. :param int port: The port number to match from the request. - :param str prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param str prefix: Header value sent by the client must begin with the specified characters. :param Sequence['RouteSpecHttp2RouteMatchQueryParameterArgs'] query_parameters: Client request query parameters to match on. :param str scheme: Client request header scheme to match on. Valid values: `http`, `https`. """ + RouteSpecHttp2RouteMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + method=method, + path=path, + port=port, + prefix=prefix, + query_parameters=query_parameters, + scheme=scheme, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[Sequence['outputs.RouteSpecHttp2RouteMatchHeader']] = None, + method: Optional[str] = None, + path: Optional['outputs.RouteSpecHttp2RouteMatchPath'] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + query_parameters: Optional[Sequence['outputs.RouteSpecHttp2RouteMatchQueryParameter']] = None, + scheme: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if query_parameters is not None: - pulumi.set(__self__, "query_parameters", query_parameters) + _setter("query_parameters", query_parameters) if scheme is not None: - pulumi.set(__self__, "scheme", scheme) + _setter("scheme", scheme) @property @pulumi.getter @@ -2964,8 +3920,7 @@ def port(self) -> Optional[int]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -2997,11 +3952,28 @@ def __init__(__self__, *, :param bool invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. :param 'RouteSpecHttp2RouteMatchHeaderMatchArgs' match: Method and value to match the header value sent with a request. Specify one match method. """ - pulumi.set(__self__, "name", name) + RouteSpecHttp2RouteMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + invert: Optional[bool] = None, + match: Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -3038,22 +4010,40 @@ def __init__(__self__, *, suffix: Optional[str] = None): """ :param str exact: The exact path to match on. - :param str prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param 'RouteSpecHttp2RouteMatchHeaderMatchRangeArgs' range: Object that specifies the range of numbers that the value sent by the client must be included in. + :param str prefix: Header value sent by the client must begin with the specified characters. + :param 'RouteSpecHttp2RouteMatchHeaderMatchRangeArgs' range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param str regex: The regex used to match the path. - :param str suffix: Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + :param str suffix: Header value sent by the client must end with the specified characters. """ + RouteSpecHttp2RouteMatchHeaderMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + range: Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatchRange'] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -3067,8 +4057,7 @@ def exact(self) -> Optional[str]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -3076,7 +4065,7 @@ def prefix(self) -> Optional[str]: @pulumi.getter def range(self) -> Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatchRange']: """ - Object that specifies the range of numbers that the value sent by the client must be included in. + Object that specifies the range of numbers that the header value sent by the client must be included in. """ return pulumi.get(self, "range") @@ -3092,7 +4081,7 @@ def regex(self) -> Optional[str]: @pulumi.getter def suffix(self) -> Optional[str]: """ - Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must end with the specified characters. """ return pulumi.get(self, "suffix") @@ -3106,8 +4095,25 @@ def __init__(__self__, *, :param int end: End of the range. :param int start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + RouteSpecHttp2RouteMatchHeaderMatchRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -3132,19 +4138,32 @@ def __init__(__self__, *, exact: Optional[str] = None, regex: Optional[str] = None): """ - :param str exact: Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. - :param str regex: Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + :param str exact: Header value sent by the client must match the specified value exactly. + :param str regex: Header value sent by the client must include the specified characters. """ + RouteSpecHttp2RouteMatchPath._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + regex: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) @property @pulumi.getter def exact(self) -> Optional[str]: """ - Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -3152,7 +4171,7 @@ def exact(self) -> Optional[str]: @pulumi.getter def regex(self) -> Optional[str]: """ - Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must include the specified characters. """ return pulumi.get(self, "regex") @@ -3166,9 +4185,24 @@ def __init__(__self__, *, :param str name: Name to use for the route. Must be between 1 and 255 characters in length. :param 'RouteSpecHttp2RouteMatchQueryParameterMatchArgs' match: Criteria for determining an gRPC request match. """ - pulumi.set(__self__, "name", name) + RouteSpecHttp2RouteMatchQueryParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + match: Optional['outputs.RouteSpecHttp2RouteMatchQueryParameterMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -3194,8 +4228,19 @@ def __init__(__self__, *, """ :param str exact: The exact path to match on. """ + RouteSpecHttp2RouteMatchQueryParameterMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) @property @pulumi.getter @@ -3241,18 +4286,43 @@ def __init__(__self__, *, :param 'RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs' per_retry_timeout: Per-retry timeout. :param Sequence[str] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). :param Sequence[str] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) + RouteSpecHttp2RouteRetryPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_retries=max_retries, + per_retry_timeout=per_retry_timeout, + http_retry_events=http_retry_events, + tcp_retry_events=tcp_retry_events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_retries: Optional[int] = None, + per_retry_timeout: Optional['outputs.RouteSpecHttp2RouteRetryPolicyPerRetryTimeout'] = None, + http_retry_events: Optional[Sequence[str]] = None, + tcp_retry_events: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if max_retries is None: + raise TypeError("Missing 'max_retries' argument") + if per_retry_timeout is None and 'perRetryTimeout' in kwargs: + per_retry_timeout = kwargs['perRetryTimeout'] + if per_retry_timeout is None: + raise TypeError("Missing 'per_retry_timeout' argument") + if http_retry_events is None and 'httpRetryEvents' in kwargs: + http_retry_events = kwargs['httpRetryEvents'] + if tcp_retry_events is None and 'tcpRetryEvents' in kwargs: + tcp_retry_events = kwargs['tcpRetryEvents'] + + _setter("max_retries", max_retries) + _setter("per_retry_timeout", per_retry_timeout) if http_retry_events is not None: - pulumi.set(__self__, "http_retry_events", http_retry_events) + _setter("http_retry_events", http_retry_events) if tcp_retry_events is not None: - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + _setter("tcp_retry_events", tcp_retry_events) @property @pulumi.getter(name="maxRetries") @@ -3276,7 +4346,6 @@ def http_retry_events(self) -> Optional[Sequence[str]]: """ List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). """ return pulumi.get(self, "http_retry_events") @@ -3285,9 +4354,6 @@ def http_retry_events(self) -> Optional[Sequence[str]]: def tcp_retry_events(self) -> Optional[Sequence[str]]: """ List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ return pulumi.get(self, "tcp_retry_events") @@ -3301,8 +4367,25 @@ def __init__(__self__, *, :param str unit: Retry unit. Valid values: `ms`, `s`. :param int value: Retry value. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttp2RouteRetryPolicyPerRetryTimeout._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3347,10 +4430,25 @@ def __init__(__self__, *, :param 'RouteSpecHttp2RouteTimeoutIdleArgs' idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param 'RouteSpecHttp2RouteTimeoutPerRequestArgs' per_request: Per request timeout. """ + RouteSpecHttp2RouteTimeout._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional['outputs.RouteSpecHttp2RouteTimeoutIdle'] = None, + per_request: Optional['outputs.RouteSpecHttp2RouteTimeoutPerRequest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -3378,8 +4476,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttp2RouteTimeoutIdle._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3407,8 +4522,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttp2RouteTimeoutPerRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3457,12 +4589,35 @@ def __init__(__self__, *, :param 'RouteSpecHttpRouteRetryPolicyArgs' retry_policy: Retry policy. :param 'RouteSpecHttpRouteTimeoutArgs' timeout: Types of timeouts. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + RouteSpecHttpRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + retry_policy=retry_policy, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.RouteSpecHttpRouteAction'] = None, + match: Optional['outputs.RouteSpecHttpRouteMatch'] = None, + retry_policy: Optional['outputs.RouteSpecHttpRouteRetryPolicy'] = None, + timeout: Optional['outputs.RouteSpecHttpRouteTimeout'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if match is None: + raise TypeError("Missing 'match' argument") + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + + _setter("action", action) + _setter("match", match) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -3522,7 +4677,22 @@ def __init__(__self__, *, :param Sequence['RouteSpecHttpRouteActionWeightedTargetArgs'] weighted_targets: Targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + RouteSpecHttpRouteAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[Sequence['outputs.RouteSpecHttpRouteActionWeightedTarget']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -3562,10 +4732,31 @@ def __init__(__self__, *, :param int weight: Relative weight of the weighted target. An integer between 0 and 100. :param int port: The targeted port of the weighted object. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + RouteSpecHttpRouteActionWeightedTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional[str] = None, + weight: Optional[int] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("virtual_node", virtual_node) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualNode") @@ -3624,25 +4815,49 @@ def __init__(__self__, *, :param str method: Client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. :param 'RouteSpecHttpRouteMatchPathArgs' path: Client request path to match on. :param int port: The port number to match from the request. - :param str prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param str prefix: Header value sent by the client must begin with the specified characters. :param Sequence['RouteSpecHttpRouteMatchQueryParameterArgs'] query_parameters: Client request query parameters to match on. :param str scheme: Client request header scheme to match on. Valid values: `http`, `https`. """ + RouteSpecHttpRouteMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + method=method, + path=path, + port=port, + prefix=prefix, + query_parameters=query_parameters, + scheme=scheme, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[Sequence['outputs.RouteSpecHttpRouteMatchHeader']] = None, + method: Optional[str] = None, + path: Optional['outputs.RouteSpecHttpRouteMatchPath'] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + query_parameters: Optional[Sequence['outputs.RouteSpecHttpRouteMatchQueryParameter']] = None, + scheme: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if query_parameters is not None: - pulumi.set(__self__, "query_parameters", query_parameters) + _setter("query_parameters", query_parameters) if scheme is not None: - pulumi.set(__self__, "scheme", scheme) + _setter("scheme", scheme) @property @pulumi.getter @@ -3680,8 +4895,7 @@ def port(self) -> Optional[int]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -3713,11 +4927,28 @@ def __init__(__self__, *, :param bool invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. :param 'RouteSpecHttpRouteMatchHeaderMatchArgs' match: Method and value to match the header value sent with a request. Specify one match method. """ - pulumi.set(__self__, "name", name) + RouteSpecHttpRouteMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + invert=invert, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + invert: Optional[bool] = None, + match: Optional['outputs.RouteSpecHttpRouteMatchHeaderMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if invert is not None: - pulumi.set(__self__, "invert", invert) + _setter("invert", invert) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -3754,22 +4985,40 @@ def __init__(__self__, *, suffix: Optional[str] = None): """ :param str exact: The exact path to match on. - :param str prefix: Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param 'RouteSpecHttpRouteMatchHeaderMatchRangeArgs' range: Object that specifies the range of numbers that the value sent by the client must be included in. + :param str prefix: Header value sent by the client must begin with the specified characters. + :param 'RouteSpecHttpRouteMatchHeaderMatchRangeArgs' range: Object that specifies the range of numbers that the header value sent by the client must be included in. :param str regex: The regex used to match the path. - :param str suffix: Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + :param str suffix: Header value sent by the client must end with the specified characters. """ + RouteSpecHttpRouteMatchHeaderMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + range=range, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + range: Optional['outputs.RouteSpecHttpRouteMatchHeaderMatchRange'] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if range is not None: - pulumi.set(__self__, "range", range) + _setter("range", range) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + _setter("suffix", suffix) @property @pulumi.getter @@ -3783,8 +5032,7 @@ def exact(self) -> Optional[str]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Value sent by the client must begin with the specified characters. Must be between 1 and 255 characters in length. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Header value sent by the client must begin with the specified characters. """ return pulumi.get(self, "prefix") @@ -3792,7 +5040,7 @@ def prefix(self) -> Optional[str]: @pulumi.getter def range(self) -> Optional['outputs.RouteSpecHttpRouteMatchHeaderMatchRange']: """ - Object that specifies the range of numbers that the value sent by the client must be included in. + Object that specifies the range of numbers that the header value sent by the client must be included in. """ return pulumi.get(self, "range") @@ -3808,7 +5056,7 @@ def regex(self) -> Optional[str]: @pulumi.getter def suffix(self) -> Optional[str]: """ - Value sent by the client must end with the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must end with the specified characters. """ return pulumi.get(self, "suffix") @@ -3822,8 +5070,25 @@ def __init__(__self__, *, :param int end: End of the range. :param int start: Start of the range. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + RouteSpecHttpRouteMatchHeaderMatchRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -3848,19 +5113,32 @@ def __init__(__self__, *, exact: Optional[str] = None, regex: Optional[str] = None): """ - :param str exact: Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. - :param str regex: Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + :param str exact: Header value sent by the client must match the specified value exactly. + :param str regex: Header value sent by the client must include the specified characters. """ + RouteSpecHttpRouteMatchPath._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + regex: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) @property @pulumi.getter def exact(self) -> Optional[str]: """ - Value sent by the client must match the specified value exactly. Must be between 1 and 255 characters in length. + Header value sent by the client must match the specified value exactly. """ return pulumi.get(self, "exact") @@ -3868,7 +5146,7 @@ def exact(self) -> Optional[str]: @pulumi.getter def regex(self) -> Optional[str]: """ - Value sent by the client must include the specified characters. Must be between 1 and 255 characters in length. + Header value sent by the client must include the specified characters. """ return pulumi.get(self, "regex") @@ -3882,9 +5160,24 @@ def __init__(__self__, *, :param str name: Name to use for the route. Must be between 1 and 255 characters in length. :param 'RouteSpecHttpRouteMatchQueryParameterMatchArgs' match: Criteria for determining an gRPC request match. """ - pulumi.set(__self__, "name", name) + RouteSpecHttpRouteMatchQueryParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + match: Optional['outputs.RouteSpecHttpRouteMatchQueryParameterMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) @property @pulumi.getter @@ -3910,8 +5203,19 @@ def __init__(__self__, *, """ :param str exact: The exact path to match on. """ + RouteSpecHttpRouteMatchQueryParameterMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) @property @pulumi.getter @@ -3957,18 +5261,43 @@ def __init__(__self__, *, :param 'RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs' per_retry_timeout: Per-retry timeout. :param Sequence[str] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). :param Sequence[str] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) + RouteSpecHttpRouteRetryPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_retries=max_retries, + per_retry_timeout=per_retry_timeout, + http_retry_events=http_retry_events, + tcp_retry_events=tcp_retry_events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_retries: Optional[int] = None, + per_retry_timeout: Optional['outputs.RouteSpecHttpRouteRetryPolicyPerRetryTimeout'] = None, + http_retry_events: Optional[Sequence[str]] = None, + tcp_retry_events: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if max_retries is None: + raise TypeError("Missing 'max_retries' argument") + if per_retry_timeout is None and 'perRetryTimeout' in kwargs: + per_retry_timeout = kwargs['perRetryTimeout'] + if per_retry_timeout is None: + raise TypeError("Missing 'per_retry_timeout' argument") + if http_retry_events is None and 'httpRetryEvents' in kwargs: + http_retry_events = kwargs['httpRetryEvents'] + if tcp_retry_events is None and 'tcpRetryEvents' in kwargs: + tcp_retry_events = kwargs['tcpRetryEvents'] + + _setter("max_retries", max_retries) + _setter("per_retry_timeout", per_retry_timeout) if http_retry_events is not None: - pulumi.set(__self__, "http_retry_events", http_retry_events) + _setter("http_retry_events", http_retry_events) if tcp_retry_events is not None: - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + _setter("tcp_retry_events", tcp_retry_events) @property @pulumi.getter(name="maxRetries") @@ -3992,7 +5321,6 @@ def http_retry_events(self) -> Optional[Sequence[str]]: """ List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). """ return pulumi.get(self, "http_retry_events") @@ -4001,9 +5329,6 @@ def http_retry_events(self) -> Optional[Sequence[str]]: def tcp_retry_events(self) -> Optional[Sequence[str]]: """ List of TCP retry events. The only valid value is `connection-error`. - - - You must specify at least one value for `http_retry_events`, or at least one value for `tcp_retry_events`. """ return pulumi.get(self, "tcp_retry_events") @@ -4017,8 +5342,25 @@ def __init__(__self__, *, :param str unit: Retry unit. Valid values: `ms`, `s`. :param int value: Retry value. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttpRouteRetryPolicyPerRetryTimeout._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4063,10 +5405,25 @@ def __init__(__self__, *, :param 'RouteSpecHttpRouteTimeoutIdleArgs' idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param 'RouteSpecHttpRouteTimeoutPerRequestArgs' per_request: Per request timeout. """ + RouteSpecHttpRouteTimeout._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional['outputs.RouteSpecHttpRouteTimeoutIdle'] = None, + per_request: Optional['outputs.RouteSpecHttpRouteTimeoutPerRequest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -4094,8 +5451,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttpRouteTimeoutIdle._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4123,8 +5497,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecHttpRouteTimeoutPerRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4154,11 +5545,28 @@ def __init__(__self__, *, :param 'RouteSpecTcpRouteMatchArgs' match: Criteria for determining an gRPC request match. :param 'RouteSpecTcpRouteTimeoutArgs' timeout: Types of timeouts. """ - pulumi.set(__self__, "action", action) + RouteSpecTcpRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + match=match, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.RouteSpecTcpRouteAction'] = None, + match: Optional['outputs.RouteSpecTcpRouteMatch'] = None, + timeout: Optional['outputs.RouteSpecTcpRouteTimeout'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + + _setter("action", action) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -4210,7 +5618,22 @@ def __init__(__self__, *, :param Sequence['RouteSpecTcpRouteActionWeightedTargetArgs'] weighted_targets: Targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + RouteSpecTcpRouteAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[Sequence['outputs.RouteSpecTcpRouteActionWeightedTarget']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -4250,10 +5673,31 @@ def __init__(__self__, *, :param int weight: Relative weight of the weighted target. An integer between 0 and 100. :param int port: The targeted port of the weighted object. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + RouteSpecTcpRouteActionWeightedTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional[str] = None, + weight: Optional[int] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("virtual_node", virtual_node) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="virtualNode") @@ -4287,8 +5731,19 @@ def __init__(__self__, *, """ :param int port: The port number to match from the request. """ + RouteSpecTcpRouteMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -4306,8 +5761,19 @@ def __init__(__self__, *, """ :param 'RouteSpecTcpRouteTimeoutIdleArgs' idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. """ + RouteSpecTcpRouteTimeout._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional['outputs.RouteSpecTcpRouteTimeoutIdle'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) @property @pulumi.getter @@ -4327,8 +5793,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + RouteSpecTcpRouteTimeoutIdle._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4375,11 +5858,30 @@ def __init__(__self__, *, :param 'VirtualGatewaySpecBackendDefaultsArgs' backend_defaults: Defaults for backends. :param 'VirtualGatewaySpecLoggingArgs' logging: Inbound and outbound access logging information for the virtual gateway. """ - pulumi.set(__self__, "listeners", listeners) + VirtualGatewaySpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + listeners=listeners, + backend_defaults=backend_defaults, + logging=logging, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listeners: Optional[Sequence['outputs.VirtualGatewaySpecListener']] = None, + backend_defaults: Optional['outputs.VirtualGatewaySpecBackendDefaults'] = None, + logging: Optional['outputs.VirtualGatewaySpecLogging'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listeners is None: + raise TypeError("Missing 'listeners' argument") + if backend_defaults is None and 'backendDefaults' in kwargs: + backend_defaults = kwargs['backendDefaults'] + + _setter("listeners", listeners) if backend_defaults is not None: - pulumi.set(__self__, "backend_defaults", backend_defaults) + _setter("backend_defaults", backend_defaults) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) @property @pulumi.getter @@ -4430,8 +5932,21 @@ def __init__(__self__, *, """ :param 'VirtualGatewaySpecBackendDefaultsClientPolicyArgs' client_policy: Default client policy for virtual gateway backends. """ + VirtualGatewaySpecBackendDefaults._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_policy=client_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_policy: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicy'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_policy is None and 'clientPolicy' in kwargs: + client_policy = kwargs['clientPolicy'] + if client_policy is not None: - pulumi.set(__self__, "client_policy", client_policy) + _setter("client_policy", client_policy) @property @pulumi.getter(name="clientPolicy") @@ -4449,8 +5964,19 @@ def __init__(__self__, *, """ :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs' tls: Transport Layer Security (TLS) client policy. """ + VirtualGatewaySpecBackendDefaultsClientPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTls'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter @@ -4474,13 +6000,32 @@ def __init__(__self__, *, :param bool enforce: Whether the policy is enforced. Default is `true`. :param Sequence[int] ports: One or more ports that the policy is enforced for. """ - pulumi.set(__self__, "validation", validation) + VirtualGatewaySpecBackendDefaultsClientPolicyTls._configure( + lambda key, value: pulumi.set(__self__, key, value), + validation=validation, + certificate=certificate, + enforce=enforce, + ports=ports, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + validation: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation'] = None, + certificate: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificate'] = None, + enforce: Optional[bool] = None, + ports: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if validation is None: + raise TypeError("Missing 'validation' argument") + + _setter("validation", validation) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if enforce is not None: - pulumi.set(__self__, "enforce", enforce) + _setter("enforce", enforce) if ports is not None: - pulumi.set(__self__, "ports", ports) + _setter("ports", ports) @property @pulumi.getter @@ -4524,10 +6069,23 @@ def __init__(__self__, *, :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateFileArgs' file: Local file certificate. :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateSdsArgs' sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificate._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateFile'] = None, + sds: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -4574,8 +6132,29 @@ def __init__(__self__, *, :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param str private_key: Private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -4618,7 +6197,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsCertificateSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -4655,9 +6249,26 @@ def __init__(__self__, *, :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs' trust: TLS validation context trust. :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesArgs' subject_alternative_names: SANs for a virtual gateway's listener's Transport Layer Security (TLS) validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust'] = None, + subject_alternative_names: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNames'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -4683,7 +6294,20 @@ def __init__(__self__, *, """ :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs' match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNames._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -4701,7 +6325,20 @@ def __init__(__self__, *, """ :param Sequence[str] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -4723,12 +6360,27 @@ def __init__(__self__, *, :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs' file: TLS validation context trust for a local file certificate. :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustSdsArgs' sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm'] = None, + file: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile'] = None, + sds: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -4779,7 +6431,22 @@ def __init__(__self__, *, """ :param Sequence[str] certificate_authority_arns: One or more ACM ARNs. """ - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is None: + raise TypeError("Missing 'certificate_authority_arns' argument") + + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -4814,7 +6481,22 @@ def __init__(__self__, *, """ :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -4849,7 +6531,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -4894,13 +6591,38 @@ def __init__(__self__, *, :param 'VirtualGatewaySpecListenerHealthCheckArgs' health_check: Health check information for the listener. :param 'VirtualGatewaySpecListenerTlsArgs' tls: Transport Layer Security (TLS) properties for the listener """ - pulumi.set(__self__, "port_mapping", port_mapping) + VirtualGatewaySpecListener._configure( + lambda key, value: pulumi.set(__self__, key, value), + port_mapping=port_mapping, + connection_pool=connection_pool, + health_check=health_check, + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port_mapping: Optional['outputs.VirtualGatewaySpecListenerPortMapping'] = None, + connection_pool: Optional['outputs.VirtualGatewaySpecListenerConnectionPool'] = None, + health_check: Optional['outputs.VirtualGatewaySpecListenerHealthCheck'] = None, + tls: Optional['outputs.VirtualGatewaySpecListenerTls'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_mapping is None and 'portMapping' in kwargs: + port_mapping = kwargs['portMapping'] + if port_mapping is None: + raise TypeError("Missing 'port_mapping' argument") + if connection_pool is None and 'connectionPool' in kwargs: + connection_pool = kwargs['connectionPool'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + + _setter("port_mapping", port_mapping) if connection_pool is not None: - pulumi.set(__self__, "connection_pool", connection_pool) + _setter("connection_pool", connection_pool) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter(name="portMapping") @@ -4946,12 +6668,27 @@ def __init__(__self__, *, :param 'VirtualGatewaySpecListenerConnectionPoolHttpArgs' http: Connection pool information for HTTP listeners. :param 'VirtualGatewaySpecListenerConnectionPoolHttp2Args' http2: Connection pool information for HTTP2 listeners. """ + VirtualGatewaySpecListenerConnectionPool._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc=grpc, + http=http, + http2=http2, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc: Optional['outputs.VirtualGatewaySpecListenerConnectionPoolGrpc'] = None, + http: Optional['outputs.VirtualGatewaySpecListenerConnectionPoolHttp'] = None, + http2: Optional['outputs.VirtualGatewaySpecListenerConnectionPoolHttp2'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc is not None: - pulumi.set(__self__, "grpc", grpc) + _setter("grpc", grpc) if http is not None: - pulumi.set(__self__, "http", http) + _setter("http", http) if http2 is not None: - pulumi.set(__self__, "http2", http2) + _setter("http2", http2) @property @pulumi.getter @@ -5002,7 +6739,22 @@ def __init__(__self__, *, """ :param int max_requests: Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_requests", max_requests) + VirtualGatewaySpecListenerConnectionPoolGrpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -5037,7 +6789,22 @@ def __init__(__self__, *, """ :param int max_requests: Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_requests", max_requests) + VirtualGatewaySpecListenerConnectionPoolHttp2._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -5078,9 +6845,28 @@ def __init__(__self__, *, The `http2` connection pool object supports the following: """ - pulumi.set(__self__, "max_connections", max_connections) + VirtualGatewaySpecListenerConnectionPoolHttp._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_connections=max_connections, + max_pending_requests=max_pending_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_connections: Optional[int] = None, + max_pending_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_connections is None and 'maxConnections' in kwargs: + max_connections = kwargs['maxConnections'] + if max_connections is None: + raise TypeError("Missing 'max_connections' argument") + if max_pending_requests is None and 'maxPendingRequests' in kwargs: + max_pending_requests = kwargs['maxPendingRequests'] + + _setter("max_connections", max_connections) if max_pending_requests is not None: - pulumi.set(__self__, "max_pending_requests", max_pending_requests) + _setter("max_pending_requests", max_pending_requests) @property @pulumi.getter(name="maxConnections") @@ -5143,15 +6929,56 @@ def __init__(__self__, *, :param str path: Destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. :param int port: Destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. """ - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval_millis", interval_millis) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "timeout_millis", timeout_millis) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + VirtualGatewaySpecListenerHealthCheck._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval_millis=interval_millis, + protocol=protocol, + timeout_millis=timeout_millis, + unhealthy_threshold=unhealthy_threshold, + path=path, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[int] = None, + interval_millis: Optional[int] = None, + protocol: Optional[str] = None, + timeout_millis: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + path: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval_millis is None and 'intervalMillis' in kwargs: + interval_millis = kwargs['intervalMillis'] + if interval_millis is None: + raise TypeError("Missing 'interval_millis' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if timeout_millis is None and 'timeoutMillis' in kwargs: + timeout_millis = kwargs['timeoutMillis'] + if timeout_millis is None: + raise TypeError("Missing 'timeout_millis' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("healthy_threshold", healthy_threshold) + _setter("interval_millis", interval_millis) + _setter("protocol", protocol) + _setter("timeout_millis", timeout_millis) + _setter("unhealthy_threshold", unhealthy_threshold) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="healthyThreshold") @@ -5219,8 +7046,25 @@ def __init__(__self__, *, :param int port: Port used for the port mapping. :param str protocol: Protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. """ - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) + VirtualGatewaySpecListenerPortMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + + _setter("port", port) + _setter("protocol", protocol) @property @pulumi.getter @@ -5250,10 +7094,29 @@ def __init__(__self__, *, :param str mode: Listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. :param 'VirtualGatewaySpecListenerTlsValidationArgs' validation: Listener's Transport Layer Security (TLS) validation context. """ - pulumi.set(__self__, "certificate", certificate) - pulumi.set(__self__, "mode", mode) + VirtualGatewaySpecListenerTls._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + mode=mode, + validation=validation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional['outputs.VirtualGatewaySpecListenerTlsCertificate'] = None, + mode: Optional[str] = None, + validation: Optional['outputs.VirtualGatewaySpecListenerTlsValidation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate is None: + raise TypeError("Missing 'certificate' argument") + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("certificate", certificate) + _setter("mode", mode) if validation is not None: - pulumi.set(__self__, "validation", validation) + _setter("validation", validation) @property @pulumi.getter @@ -5291,12 +7154,27 @@ def __init__(__self__, *, :param 'VirtualGatewaySpecListenerTlsCertificateFileArgs' file: Local file certificate. :param 'VirtualGatewaySpecListenerTlsCertificateSdsArgs' sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualGatewaySpecListenerTlsCertificate._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional['outputs.VirtualGatewaySpecListenerTlsCertificateAcm'] = None, + file: Optional['outputs.VirtualGatewaySpecListenerTlsCertificateFile'] = None, + sds: Optional['outputs.VirtualGatewaySpecListenerTlsCertificateSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -5347,7 +7225,22 @@ def __init__(__self__, *, """ :param str certificate_arn: ARN for the certificate. """ - pulumi.set(__self__, "certificate_arn", certificate_arn) + VirtualGatewaySpecListenerTlsCertificateAcm._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + + _setter("certificate_arn", certificate_arn) @property @pulumi.getter(name="certificateArn") @@ -5386,8 +7279,29 @@ def __init__(__self__, *, :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param str private_key: Private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualGatewaySpecListenerTlsCertificateFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -5430,7 +7344,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualGatewaySpecListenerTlsCertificateSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -5467,9 +7396,26 @@ def __init__(__self__, *, :param 'VirtualGatewaySpecListenerTlsValidationTrustArgs' trust: TLS validation context trust. :param 'VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesArgs' subject_alternative_names: SANs for a virtual gateway's listener's Transport Layer Security (TLS) validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualGatewaySpecListenerTlsValidation._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional['outputs.VirtualGatewaySpecListenerTlsValidationTrust'] = None, + subject_alternative_names: Optional['outputs.VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNames'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -5495,7 +7441,20 @@ def __init__(__self__, *, """ :param 'VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesMatchArgs' match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNames._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional['outputs.VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -5513,7 +7472,20 @@ def __init__(__self__, *, """ :param Sequence[str] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualGatewaySpecListenerTlsValidationSubjectAlternativeNamesMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -5533,10 +7505,23 @@ def __init__(__self__, *, :param 'VirtualGatewaySpecListenerTlsValidationTrustFileArgs' file: TLS validation context trust for a local file certificate. :param 'VirtualGatewaySpecListenerTlsValidationTrustSdsArgs' sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualGatewaySpecListenerTlsValidationTrust._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional['outputs.VirtualGatewaySpecListenerTlsValidationTrustFile'] = None, + sds: Optional['outputs.VirtualGatewaySpecListenerTlsValidationTrustSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -5579,7 +7564,22 @@ def __init__(__self__, *, """ :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualGatewaySpecListenerTlsValidationTrustFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -5614,7 +7614,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualGatewaySpecListenerTlsValidationTrustSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -5649,8 +7664,21 @@ def __init__(__self__, *, """ :param 'VirtualGatewaySpecLoggingAccessLogArgs' access_log: Access log configuration for a virtual gateway. """ + VirtualGatewaySpecLogging._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_log=access_log, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_log: Optional['outputs.VirtualGatewaySpecLoggingAccessLog'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_log is None and 'accessLog' in kwargs: + access_log = kwargs['accessLog'] + if access_log is not None: - pulumi.set(__self__, "access_log", access_log) + _setter("access_log", access_log) @property @pulumi.getter(name="accessLog") @@ -5668,8 +7696,19 @@ def __init__(__self__, *, """ :param 'VirtualGatewaySpecLoggingAccessLogFileArgs' file: File object to send virtual gateway access logs to. """ + VirtualGatewaySpecLoggingAccessLog._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional['outputs.VirtualGatewaySpecLoggingAccessLogFile'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) @property @pulumi.getter @@ -5689,9 +7728,24 @@ def __init__(__self__, *, :param str path: File path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. Must be between 1 and 255 characters in length. :param 'VirtualGatewaySpecLoggingAccessLogFileFormatArgs' format: The specified format for the logs. """ - pulumi.set(__self__, "path", path) + VirtualGatewaySpecLoggingAccessLogFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[str] = None, + format: Optional['outputs.VirtualGatewaySpecLoggingAccessLogFileFormat'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("path", path) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) @property @pulumi.getter @@ -5719,10 +7773,23 @@ def __init__(__self__, *, :param Sequence['VirtualGatewaySpecLoggingAccessLogFileFormatJsonArgs'] jsons: The logging format for JSON. :param str text: The logging format for text. Must be between 1 and 1000 characters in length. """ + VirtualGatewaySpecLoggingAccessLogFileFormat._configure( + lambda key, value: pulumi.set(__self__, key, value), + jsons=jsons, + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jsons: Optional[Sequence['outputs.VirtualGatewaySpecLoggingAccessLogFileFormatJson']] = None, + text: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jsons is not None: - pulumi.set(__self__, "jsons", jsons) + _setter("jsons", jsons) if text is not None: - pulumi.set(__self__, "text", text) + _setter("text", text) @property @pulumi.getter @@ -5750,8 +7817,25 @@ def __init__(__self__, *, :param str key: The specified key for the JSON. Must be between 1 and 100 characters in length. :param str value: The specified value for the JSON. Must be between 1 and 100 characters in length. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + VirtualGatewaySpecLoggingAccessLogFileFormatJson._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -5804,16 +7888,39 @@ def __init__(__self__, *, :param 'VirtualNodeSpecLoggingArgs' logging: Inbound and outbound access logging information for the virtual node. :param 'VirtualNodeSpecServiceDiscoveryArgs' service_discovery: Service discovery information for the virtual node. """ + VirtualNodeSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + backend_defaults=backend_defaults, + backends=backends, + listeners=listeners, + logging=logging, + service_discovery=service_discovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backend_defaults: Optional['outputs.VirtualNodeSpecBackendDefaults'] = None, + backends: Optional[Sequence['outputs.VirtualNodeSpecBackend']] = None, + listeners: Optional[Sequence['outputs.VirtualNodeSpecListener']] = None, + logging: Optional['outputs.VirtualNodeSpecLogging'] = None, + service_discovery: Optional['outputs.VirtualNodeSpecServiceDiscovery'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backend_defaults is None and 'backendDefaults' in kwargs: + backend_defaults = kwargs['backendDefaults'] + if service_discovery is None and 'serviceDiscovery' in kwargs: + service_discovery = kwargs['serviceDiscovery'] + if backend_defaults is not None: - pulumi.set(__self__, "backend_defaults", backend_defaults) + _setter("backend_defaults", backend_defaults) if backends is not None: - pulumi.set(__self__, "backends", backends) + _setter("backends", backends) if listeners is not None: - pulumi.set(__self__, "listeners", listeners) + _setter("listeners", listeners) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) if service_discovery is not None: - pulumi.set(__self__, "service_discovery", service_discovery) + _setter("service_discovery", service_discovery) @property @pulumi.getter(name="backendDefaults") @@ -5880,7 +7987,22 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecBackendVirtualServiceArgs' virtual_service: Virtual service to use as a backend for a virtual node. """ - pulumi.set(__self__, "virtual_service", virtual_service) + VirtualNodeSpecBackend._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service=virtual_service, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service: Optional['outputs.VirtualNodeSpecBackendVirtualService'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service is None and 'virtualService' in kwargs: + virtual_service = kwargs['virtualService'] + if virtual_service is None: + raise TypeError("Missing 'virtual_service' argument") + + _setter("virtual_service", virtual_service) @property @pulumi.getter(name="virtualService") @@ -5915,8 +8037,21 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecBackendDefaultsClientPolicyArgs' client_policy: Default client policy for virtual service backends. See above for details. """ + VirtualNodeSpecBackendDefaults._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_policy=client_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_policy: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicy'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_policy is None and 'clientPolicy' in kwargs: + client_policy = kwargs['clientPolicy'] + if client_policy is not None: - pulumi.set(__self__, "client_policy", client_policy) + _setter("client_policy", client_policy) @property @pulumi.getter(name="clientPolicy") @@ -5934,8 +8069,19 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecBackendDefaultsClientPolicyTlsArgs' tls: Transport Layer Security (TLS) client policy. """ + VirtualNodeSpecBackendDefaultsClientPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTls'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter @@ -5959,13 +8105,32 @@ def __init__(__self__, *, :param bool enforce: Whether the policy is enforced. Default is `true`. :param Sequence[int] ports: One or more ports that the policy is enforced for. """ - pulumi.set(__self__, "validation", validation) + VirtualNodeSpecBackendDefaultsClientPolicyTls._configure( + lambda key, value: pulumi.set(__self__, key, value), + validation=validation, + certificate=certificate, + enforce=enforce, + ports=ports, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + validation: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsValidation'] = None, + certificate: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificate'] = None, + enforce: Optional[bool] = None, + ports: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if validation is None: + raise TypeError("Missing 'validation' argument") + + _setter("validation", validation) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if enforce is not None: - pulumi.set(__self__, "enforce", enforce) + _setter("enforce", enforce) if ports is not None: - pulumi.set(__self__, "ports", ports) + _setter("ports", ports) @property @pulumi.getter @@ -6009,10 +8174,23 @@ def __init__(__self__, *, :param 'VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateFileArgs' file: Local file certificate. :param 'VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateSdsArgs' sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificate._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateFile'] = None, + sds: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -6059,8 +8237,29 @@ def __init__(__self__, *, :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param str private_key: Private key for a certificate stored on the file system of the virtual node that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -6103,7 +8302,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecBackendDefaultsClientPolicyTlsCertificateSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -6140,9 +8354,26 @@ def __init__(__self__, *, :param 'VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustArgs' trust: TLS validation context trust. :param 'VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesArgs' subject_alternative_names: SANs for a TLS validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidation._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrust'] = None, + subject_alternative_names: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNames'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -6168,7 +8399,20 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs' match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNames._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -6186,7 +8430,20 @@ def __init__(__self__, *, """ :param Sequence[str] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationSubjectAlternativeNamesMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -6208,12 +8465,27 @@ def __init__(__self__, *, :param 'VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs' file: TLS validation context trust for a local file certificate. :param 'VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustSdsArgs' sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrust._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustAcm'] = None, + file: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustFile'] = None, + sds: Optional['outputs.VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -6264,7 +8536,22 @@ def __init__(__self__, *, """ :param Sequence[str] certificate_authority_arns: One or more ACM ARNs. """ - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustAcm._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is None: + raise TypeError("Missing 'certificate_authority_arns' argument") + + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -6299,7 +8586,22 @@ def __init__(__self__, *, """ :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -6334,7 +8636,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecBackendDefaultsClientPolicyTlsValidationTrustSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -6373,9 +8690,28 @@ def __init__(__self__, *, :param str virtual_service_name: Name of the virtual service that is acting as a virtual node backend. Must be between 1 and 255 characters in length. :param 'VirtualNodeSpecBackendVirtualServiceClientPolicyArgs' client_policy: Client policy for the backend. """ - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + VirtualNodeSpecBackendVirtualService._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + client_policy=client_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[str] = None, + client_policy: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicy'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + if client_policy is None and 'clientPolicy' in kwargs: + client_policy = kwargs['clientPolicy'] + + _setter("virtual_service_name", virtual_service_name) if client_policy is not None: - pulumi.set(__self__, "client_policy", client_policy) + _setter("client_policy", client_policy) @property @pulumi.getter(name="virtualServiceName") @@ -6401,8 +8737,19 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecBackendVirtualServiceClientPolicyTlsArgs' tls: Transport Layer Security (TLS) client policy. """ + VirtualNodeSpecBackendVirtualServiceClientPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTls'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter @@ -6426,13 +8773,32 @@ def __init__(__self__, *, :param bool enforce: Whether the policy is enforced. Default is `true`. :param Sequence[int] ports: One or more ports that the policy is enforced for. """ - pulumi.set(__self__, "validation", validation) + VirtualNodeSpecBackendVirtualServiceClientPolicyTls._configure( + lambda key, value: pulumi.set(__self__, key, value), + validation=validation, + certificate=certificate, + enforce=enforce, + ports=ports, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + validation: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidation'] = None, + certificate: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificate'] = None, + enforce: Optional[bool] = None, + ports: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if validation is None: + raise TypeError("Missing 'validation' argument") + + _setter("validation", validation) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if enforce is not None: - pulumi.set(__self__, "enforce", enforce) + _setter("enforce", enforce) if ports is not None: - pulumi.set(__self__, "ports", ports) + _setter("ports", ports) @property @pulumi.getter @@ -6476,10 +8842,23 @@ def __init__(__self__, *, :param 'VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateFileArgs' file: Local file certificate. :param 'VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateSdsArgs' sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificate._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateFile'] = None, + sds: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -6526,8 +8905,29 @@ def __init__(__self__, *, :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param str private_key: Private key for a certificate stored on the file system of the virtual node that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -6570,7 +8970,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsCertificateSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -6607,9 +9022,26 @@ def __init__(__self__, *, :param 'VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustArgs' trust: TLS validation context trust. :param 'VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesArgs' subject_alternative_names: SANs for a TLS validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidation._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrust'] = None, + subject_alternative_names: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNames'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -6635,7 +9067,20 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesMatchArgs' match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNames._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -6653,7 +9098,20 @@ def __init__(__self__, *, """ :param Sequence[str] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationSubjectAlternativeNamesMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -6675,12 +9133,27 @@ def __init__(__self__, *, :param 'VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustFileArgs' file: TLS validation context trust for a local file certificate. :param 'VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustSdsArgs' sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrust._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustAcm'] = None, + file: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustFile'] = None, + sds: Optional['outputs.VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -6731,7 +9204,22 @@ def __init__(__self__, *, """ :param Sequence[str] certificate_authority_arns: One or more ACM ARNs. """ - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustAcm._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is None: + raise TypeError("Missing 'certificate_authority_arns' argument") + + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -6766,7 +9254,22 @@ def __init__(__self__, *, """ :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -6801,7 +9304,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecBackendVirtualServiceClientPolicyTlsValidationTrustSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -6852,17 +9370,48 @@ def __init__(__self__, *, :param 'VirtualNodeSpecListenerTimeoutArgs' timeout: Timeouts for different protocols. :param 'VirtualNodeSpecListenerTlsArgs' tls: Transport Layer Security (TLS) properties for the listener """ - pulumi.set(__self__, "port_mapping", port_mapping) + VirtualNodeSpecListener._configure( + lambda key, value: pulumi.set(__self__, key, value), + port_mapping=port_mapping, + connection_pool=connection_pool, + health_check=health_check, + outlier_detection=outlier_detection, + timeout=timeout, + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port_mapping: Optional['outputs.VirtualNodeSpecListenerPortMapping'] = None, + connection_pool: Optional['outputs.VirtualNodeSpecListenerConnectionPool'] = None, + health_check: Optional['outputs.VirtualNodeSpecListenerHealthCheck'] = None, + outlier_detection: Optional['outputs.VirtualNodeSpecListenerOutlierDetection'] = None, + timeout: Optional['outputs.VirtualNodeSpecListenerTimeout'] = None, + tls: Optional['outputs.VirtualNodeSpecListenerTls'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_mapping is None and 'portMapping' in kwargs: + port_mapping = kwargs['portMapping'] + if port_mapping is None: + raise TypeError("Missing 'port_mapping' argument") + if connection_pool is None and 'connectionPool' in kwargs: + connection_pool = kwargs['connectionPool'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if outlier_detection is None and 'outlierDetection' in kwargs: + outlier_detection = kwargs['outlierDetection'] + + _setter("port_mapping", port_mapping) if connection_pool is not None: - pulumi.set(__self__, "connection_pool", connection_pool) + _setter("connection_pool", connection_pool) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if outlier_detection is not None: - pulumi.set(__self__, "outlier_detection", outlier_detection) + _setter("outlier_detection", outlier_detection) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter(name="portMapping") @@ -6926,14 +9475,31 @@ def __init__(__self__, *, :param Sequence['VirtualNodeSpecListenerConnectionPoolHttpArgs'] https: Connection pool information for HTTP listeners. :param Sequence['VirtualNodeSpecListenerConnectionPoolTcpArgs'] tcps: Connection pool information for TCP listeners. """ + VirtualNodeSpecListenerConnectionPool._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc=grpc, + http2s=http2s, + https=https, + tcps=tcps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc: Optional['outputs.VirtualNodeSpecListenerConnectionPoolGrpc'] = None, + http2s: Optional[Sequence['outputs.VirtualNodeSpecListenerConnectionPoolHttp2']] = None, + https: Optional[Sequence['outputs.VirtualNodeSpecListenerConnectionPoolHttp']] = None, + tcps: Optional[Sequence['outputs.VirtualNodeSpecListenerConnectionPoolTcp']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc is not None: - pulumi.set(__self__, "grpc", grpc) + _setter("grpc", grpc) if http2s is not None: - pulumi.set(__self__, "http2s", http2s) + _setter("http2s", http2s) if https is not None: - pulumi.set(__self__, "https", https) + _setter("https", https) if tcps is not None: - pulumi.set(__self__, "tcps", tcps) + _setter("tcps", tcps) @property @pulumi.getter @@ -6992,7 +9558,22 @@ def __init__(__self__, *, """ :param int max_requests: Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_requests", max_requests) + VirtualNodeSpecListenerConnectionPoolGrpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -7027,7 +9608,22 @@ def __init__(__self__, *, """ :param int max_requests: Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_requests", max_requests) + VirtualNodeSpecListenerConnectionPoolHttp2._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -7068,9 +9664,28 @@ def __init__(__self__, *, The `http2` connection pool object supports the following: """ - pulumi.set(__self__, "max_connections", max_connections) + VirtualNodeSpecListenerConnectionPoolHttp._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_connections=max_connections, + max_pending_requests=max_pending_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_connections: Optional[int] = None, + max_pending_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_connections is None and 'maxConnections' in kwargs: + max_connections = kwargs['maxConnections'] + if max_connections is None: + raise TypeError("Missing 'max_connections' argument") + if max_pending_requests is None and 'maxPendingRequests' in kwargs: + max_pending_requests = kwargs['maxPendingRequests'] + + _setter("max_connections", max_connections) if max_pending_requests is not None: - pulumi.set(__self__, "max_pending_requests", max_pending_requests) + _setter("max_pending_requests", max_pending_requests) @property @pulumi.getter(name="maxConnections") @@ -7115,7 +9730,22 @@ def __init__(__self__, *, """ :param int max_connections: Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster. Minimum value of `1`. """ - pulumi.set(__self__, "max_connections", max_connections) + VirtualNodeSpecListenerConnectionPoolTcp._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_connections=max_connections, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_connections: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_connections is None and 'maxConnections' in kwargs: + max_connections = kwargs['maxConnections'] + if max_connections is None: + raise TypeError("Missing 'max_connections' argument") + + _setter("max_connections", max_connections) @property @pulumi.getter(name="maxConnections") @@ -7168,15 +9798,56 @@ def __init__(__self__, *, :param str path: Destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. :param int port: Destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. """ - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval_millis", interval_millis) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "timeout_millis", timeout_millis) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + VirtualNodeSpecListenerHealthCheck._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval_millis=interval_millis, + protocol=protocol, + timeout_millis=timeout_millis, + unhealthy_threshold=unhealthy_threshold, + path=path, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[int] = None, + interval_millis: Optional[int] = None, + protocol: Optional[str] = None, + timeout_millis: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + path: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval_millis is None and 'intervalMillis' in kwargs: + interval_millis = kwargs['intervalMillis'] + if interval_millis is None: + raise TypeError("Missing 'interval_millis' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if timeout_millis is None and 'timeoutMillis' in kwargs: + timeout_millis = kwargs['timeoutMillis'] + if timeout_millis is None: + raise TypeError("Missing 'timeout_millis' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("healthy_threshold", healthy_threshold) + _setter("interval_millis", interval_millis) + _setter("protocol", protocol) + _setter("timeout_millis", timeout_millis) + _setter("unhealthy_threshold", unhealthy_threshold) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="healthyThreshold") @@ -7270,10 +9941,41 @@ def __init__(__self__, *, Minimum value of `0`. Maximum value of `100`. :param int max_server_errors: Number of consecutive `5xx` errors required for ejection. Minimum value of `1`. """ - pulumi.set(__self__, "base_ejection_duration", base_ejection_duration) - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "max_ejection_percent", max_ejection_percent) - pulumi.set(__self__, "max_server_errors", max_server_errors) + VirtualNodeSpecListenerOutlierDetection._configure( + lambda key, value: pulumi.set(__self__, key, value), + base_ejection_duration=base_ejection_duration, + interval=interval, + max_ejection_percent=max_ejection_percent, + max_server_errors=max_server_errors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + base_ejection_duration: Optional['outputs.VirtualNodeSpecListenerOutlierDetectionBaseEjectionDuration'] = None, + interval: Optional['outputs.VirtualNodeSpecListenerOutlierDetectionInterval'] = None, + max_ejection_percent: Optional[int] = None, + max_server_errors: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_ejection_duration is None and 'baseEjectionDuration' in kwargs: + base_ejection_duration = kwargs['baseEjectionDuration'] + if base_ejection_duration is None: + raise TypeError("Missing 'base_ejection_duration' argument") + if interval is None: + raise TypeError("Missing 'interval' argument") + if max_ejection_percent is None and 'maxEjectionPercent' in kwargs: + max_ejection_percent = kwargs['maxEjectionPercent'] + if max_ejection_percent is None: + raise TypeError("Missing 'max_ejection_percent' argument") + if max_server_errors is None and 'maxServerErrors' in kwargs: + max_server_errors = kwargs['maxServerErrors'] + if max_server_errors is None: + raise TypeError("Missing 'max_server_errors' argument") + + _setter("base_ejection_duration", base_ejection_duration) + _setter("interval", interval) + _setter("max_ejection_percent", max_ejection_percent) + _setter("max_server_errors", max_server_errors) @property @pulumi.getter(name="baseEjectionDuration") @@ -7318,8 +10020,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerOutlierDetectionBaseEjectionDuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7345,10 +10064,27 @@ def __init__(__self__, *, value: int): """ :param str unit: Unit of time. Valid values: `ms`, `s`. - :param int value: The specified value for the JSON. Must be between 1 and 100 characters in length. + :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerOutlierDetectionInterval._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7362,7 +10098,7 @@ def unit(self) -> str: @pulumi.getter def value(self) -> int: """ - The specified value for the JSON. Must be between 1 and 100 characters in length. + Number of time units. Minimum value of `0`. """ return pulumi.get(self, "value") @@ -7376,8 +10112,25 @@ def __init__(__self__, *, :param int port: Port used for the port mapping. :param str protocol: Protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. """ - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) + VirtualNodeSpecListenerPortMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + + _setter("port", port) + _setter("protocol", protocol) @property @pulumi.getter @@ -7409,14 +10162,31 @@ def __init__(__self__, *, :param 'VirtualNodeSpecListenerTimeoutHttp2Args' http2: Timeouts for HTTP2 listeners. :param 'VirtualNodeSpecListenerTimeoutTcpArgs' tcp: Timeouts for TCP listeners. """ + VirtualNodeSpecListenerTimeout._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc=grpc, + http=http, + http2=http2, + tcp=tcp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc: Optional['outputs.VirtualNodeSpecListenerTimeoutGrpc'] = None, + http: Optional['outputs.VirtualNodeSpecListenerTimeoutHttp'] = None, + http2: Optional['outputs.VirtualNodeSpecListenerTimeoutHttp2'] = None, + tcp: Optional['outputs.VirtualNodeSpecListenerTimeoutTcp'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc is not None: - pulumi.set(__self__, "grpc", grpc) + _setter("grpc", grpc) if http is not None: - pulumi.set(__self__, "http", http) + _setter("http", http) if http2 is not None: - pulumi.set(__self__, "http2", http2) + _setter("http2", http2) if tcp is not None: - pulumi.set(__self__, "tcp", tcp) + _setter("tcp", tcp) @property @pulumi.getter @@ -7477,10 +10247,25 @@ def __init__(__self__, *, :param 'VirtualNodeSpecListenerTimeoutGrpcIdleArgs' idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param 'VirtualNodeSpecListenerTimeoutGrpcPerRequestArgs' per_request: Per request timeout. """ + VirtualNodeSpecListenerTimeoutGrpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional['outputs.VirtualNodeSpecListenerTimeoutGrpcIdle'] = None, + per_request: Optional['outputs.VirtualNodeSpecListenerTimeoutGrpcPerRequest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -7508,8 +10293,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutGrpcIdle._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7535,10 +10337,27 @@ def __init__(__self__, *, value: int): """ :param str unit: Unit of time. Valid values: `ms`, `s`. - :param int value: The specified value for the JSON. Must be between 1 and 100 characters in length. + :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutGrpcPerRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7552,7 +10371,7 @@ def unit(self) -> str: @pulumi.getter def value(self) -> int: """ - The specified value for the JSON. Must be between 1 and 100 characters in length. + Number of time units. Minimum value of `0`. """ return pulumi.get(self, "value") @@ -7583,10 +10402,25 @@ def __init__(__self__, *, :param 'VirtualNodeSpecListenerTimeoutHttp2IdleArgs' idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param 'VirtualNodeSpecListenerTimeoutHttp2PerRequestArgs' per_request: Per request timeout. """ + VirtualNodeSpecListenerTimeoutHttp2._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional['outputs.VirtualNodeSpecListenerTimeoutHttp2Idle'] = None, + per_request: Optional['outputs.VirtualNodeSpecListenerTimeoutHttp2PerRequest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -7614,8 +10448,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutHttp2Idle._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7641,10 +10492,27 @@ def __init__(__self__, *, value: int): """ :param str unit: Unit of time. Valid values: `ms`, `s`. - :param int value: The specified value for the JSON. Must be between 1 and 100 characters in length. + :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutHttp2PerRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7658,7 +10526,7 @@ def unit(self) -> str: @pulumi.getter def value(self) -> int: """ - The specified value for the JSON. Must be between 1 and 100 characters in length. + Number of time units. Minimum value of `0`. """ return pulumi.get(self, "value") @@ -7689,10 +10557,25 @@ def __init__(__self__, *, :param 'VirtualNodeSpecListenerTimeoutHttpIdleArgs' idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. :param 'VirtualNodeSpecListenerTimeoutHttpPerRequestArgs' per_request: Per request timeout. """ + VirtualNodeSpecListenerTimeoutHttp._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + per_request=per_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional['outputs.VirtualNodeSpecListenerTimeoutHttpIdle'] = None, + per_request: Optional['outputs.VirtualNodeSpecListenerTimeoutHttpPerRequest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if per_request is None and 'perRequest' in kwargs: + per_request = kwargs['perRequest'] + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + _setter("per_request", per_request) @property @pulumi.getter @@ -7720,8 +10603,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutHttpIdle._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7747,10 +10647,27 @@ def __init__(__self__, *, value: int): """ :param str unit: Unit of time. Valid values: `ms`, `s`. - :param int value: The specified value for the JSON. Must be between 1 and 100 characters in length. + :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutHttpPerRequest._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7764,7 +10681,7 @@ def unit(self) -> str: @pulumi.getter def value(self) -> int: """ - The specified value for the JSON. Must be between 1 and 100 characters in length. + Number of time units. Minimum value of `0`. """ return pulumi.get(self, "value") @@ -7776,8 +10693,19 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecListenerTimeoutTcpIdleArgs' idle: Idle timeout. An idle timeout bounds the amount of time that a connection may be idle. """ + VirtualNodeSpecListenerTimeoutTcp._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle=idle, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle: Optional['outputs.VirtualNodeSpecListenerTimeoutTcpIdle'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle is not None: - pulumi.set(__self__, "idle", idle) + _setter("idle", idle) @property @pulumi.getter @@ -7797,8 +10725,25 @@ def __init__(__self__, *, :param str unit: Unit of time. Valid values: `ms`, `s`. :param int value: Number of time units. Minimum value of `0`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + VirtualNodeSpecListenerTimeoutTcpIdle._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -7828,10 +10773,29 @@ def __init__(__self__, *, :param str mode: Listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. :param 'VirtualNodeSpecListenerTlsValidationArgs' validation: Listener's Transport Layer Security (TLS) validation context. """ - pulumi.set(__self__, "certificate", certificate) - pulumi.set(__self__, "mode", mode) + VirtualNodeSpecListenerTls._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + mode=mode, + validation=validation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional['outputs.VirtualNodeSpecListenerTlsCertificate'] = None, + mode: Optional[str] = None, + validation: Optional['outputs.VirtualNodeSpecListenerTlsValidation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate is None: + raise TypeError("Missing 'certificate' argument") + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("certificate", certificate) + _setter("mode", mode) if validation is not None: - pulumi.set(__self__, "validation", validation) + _setter("validation", validation) @property @pulumi.getter @@ -7869,12 +10833,27 @@ def __init__(__self__, *, :param 'VirtualNodeSpecListenerTlsCertificateFileArgs' file: Local file certificate. :param 'VirtualNodeSpecListenerTlsCertificateSdsArgs' sds: A [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecListenerTlsCertificate._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm=acm, + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm: Optional['outputs.VirtualNodeSpecListenerTlsCertificateAcm'] = None, + file: Optional['outputs.VirtualNodeSpecListenerTlsCertificateFile'] = None, + sds: Optional['outputs.VirtualNodeSpecListenerTlsCertificateSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -7925,7 +10904,22 @@ def __init__(__self__, *, """ :param str certificate_arn: ARN for the certificate. """ - pulumi.set(__self__, "certificate_arn", certificate_arn) + VirtualNodeSpecListenerTlsCertificateAcm._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + + _setter("certificate_arn", certificate_arn) @property @pulumi.getter(name="certificateArn") @@ -7964,8 +10958,29 @@ def __init__(__self__, *, :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. :param str private_key: Private key for a certificate stored on the file system of the virtual node that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + VirtualNodeSpecListenerTlsCertificateFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -8008,7 +11023,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecListenerTlsCertificateSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -8045,9 +11075,26 @@ def __init__(__self__, *, :param 'VirtualNodeSpecListenerTlsValidationTrustArgs' trust: TLS validation context trust. :param 'VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesArgs' subject_alternative_names: SANs for a TLS validation context. """ - pulumi.set(__self__, "trust", trust) + VirtualNodeSpecListenerTlsValidation._configure( + lambda key, value: pulumi.set(__self__, key, value), + trust=trust, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trust: Optional['outputs.VirtualNodeSpecListenerTlsValidationTrust'] = None, + subject_alternative_names: Optional['outputs.VirtualNodeSpecListenerTlsValidationSubjectAlternativeNames'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trust is None: + raise TypeError("Missing 'trust' argument") + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("trust", trust) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter @@ -8073,7 +11120,20 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesMatchArgs' match: Criteria for determining a SAN's match. """ - pulumi.set(__self__, "match", match) + VirtualNodeSpecListenerTlsValidationSubjectAlternativeNames._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional['outputs.VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + + _setter("match", match) @property @pulumi.getter @@ -8091,7 +11151,20 @@ def __init__(__self__, *, """ :param Sequence[str] exacts: Values sent must match the specified values exactly. """ - pulumi.set(__self__, "exacts", exacts) + VirtualNodeSpecListenerTlsValidationSubjectAlternativeNamesMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -8111,10 +11184,23 @@ def __init__(__self__, *, :param 'VirtualNodeSpecListenerTlsValidationTrustFileArgs' file: TLS validation context trust for a local file certificate. :param 'VirtualNodeSpecListenerTlsValidationTrustSdsArgs' sds: TLS validation context trust for a [Secret Discovery Service](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds) certificate. """ + VirtualNodeSpecListenerTlsValidationTrust._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional['outputs.VirtualNodeSpecListenerTlsValidationTrustFile'] = None, + sds: Optional['outputs.VirtualNodeSpecListenerTlsValidationTrustSds'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) if sds is not None: - pulumi.set(__self__, "sds", sds) + _setter("sds", sds) @property @pulumi.getter @@ -8157,7 +11243,22 @@ def __init__(__self__, *, """ :param str certificate_chain: Certificate trust chain for a certificate stored on the file system of the mesh endpoint that the proxy is running on. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "certificate_chain", certificate_chain) + VirtualNodeSpecListenerTlsValidationTrustFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -8192,7 +11293,22 @@ def __init__(__self__, *, """ :param str secret_name: Name of the secret for a virtual node's Transport Layer Security (TLS) Secret Discovery Service validation context trust. """ - pulumi.set(__self__, "secret_name", secret_name) + VirtualNodeSpecListenerTlsValidationTrustSds._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -8227,8 +11343,21 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecLoggingAccessLogArgs' access_log: Access log configuration for a virtual node. """ + VirtualNodeSpecLogging._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_log=access_log, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_log: Optional['outputs.VirtualNodeSpecLoggingAccessLog'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_log is None and 'accessLog' in kwargs: + access_log = kwargs['accessLog'] + if access_log is not None: - pulumi.set(__self__, "access_log", access_log) + _setter("access_log", access_log) @property @pulumi.getter(name="accessLog") @@ -8246,8 +11375,19 @@ def __init__(__self__, *, """ :param 'VirtualNodeSpecLoggingAccessLogFileArgs' file: File object to send virtual node access logs to. """ + VirtualNodeSpecLoggingAccessLog._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional['outputs.VirtualNodeSpecLoggingAccessLogFile'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is not None: - pulumi.set(__self__, "file", file) + _setter("file", file) @property @pulumi.getter @@ -8267,9 +11407,24 @@ def __init__(__self__, *, :param str path: File path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. Must be between 1 and 255 characters in length. :param 'VirtualNodeSpecLoggingAccessLogFileFormatArgs' format: The specified format for the logs. """ - pulumi.set(__self__, "path", path) + VirtualNodeSpecLoggingAccessLogFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[str] = None, + format: Optional['outputs.VirtualNodeSpecLoggingAccessLogFileFormat'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("path", path) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) @property @pulumi.getter @@ -8297,10 +11452,23 @@ def __init__(__self__, *, :param Sequence['VirtualNodeSpecLoggingAccessLogFileFormatJsonArgs'] jsons: The logging format for JSON. :param str text: The logging format for text. Must be between 1 and 1000 characters in length. """ + VirtualNodeSpecLoggingAccessLogFileFormat._configure( + lambda key, value: pulumi.set(__self__, key, value), + jsons=jsons, + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jsons: Optional[Sequence['outputs.VirtualNodeSpecLoggingAccessLogFileFormatJson']] = None, + text: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jsons is not None: - pulumi.set(__self__, "jsons", jsons) + _setter("jsons", jsons) if text is not None: - pulumi.set(__self__, "text", text) + _setter("text", text) @property @pulumi.getter @@ -8328,8 +11496,25 @@ def __init__(__self__, *, :param str key: The specified key for the JSON. Must be between 1 and 100 characters in length. :param str value: The specified value for the JSON. Must be between 1 and 100 characters in length. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + VirtualNodeSpecLoggingAccessLogFileFormatJson._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -8374,10 +11559,25 @@ def __init__(__self__, *, :param 'VirtualNodeSpecServiceDiscoveryAwsCloudMapArgs' aws_cloud_map: Any AWS Cloud Map information for the virtual node. :param 'VirtualNodeSpecServiceDiscoveryDnsArgs' dns: DNS service name for the virtual node. """ + VirtualNodeSpecServiceDiscovery._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_cloud_map=aws_cloud_map, + dns=dns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_cloud_map: Optional['outputs.VirtualNodeSpecServiceDiscoveryAwsCloudMap'] = None, + dns: Optional['outputs.VirtualNodeSpecServiceDiscoveryDns'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_cloud_map is None and 'awsCloudMap' in kwargs: + aws_cloud_map = kwargs['awsCloudMap'] + if aws_cloud_map is not None: - pulumi.set(__self__, "aws_cloud_map", aws_cloud_map) + _setter("aws_cloud_map", aws_cloud_map) if dns is not None: - pulumi.set(__self__, "dns", dns) + _setter("dns", dns) @property @pulumi.getter(name="awsCloudMap") @@ -8427,10 +11627,33 @@ def __init__(__self__, *, :param str service_name: Name of the AWS Cloud Map service to use. Use the `servicediscovery.Service` resource to configure a Cloud Map service. Must be between 1 and 1024 characters in length. :param Mapping[str, str] attributes: String map that contains attributes with values that you can use to filter instances by any custom attribute that you specified when you registered the instance. Only instances that match all of the specified key/value pairs will be returned. """ - pulumi.set(__self__, "namespace_name", namespace_name) - pulumi.set(__self__, "service_name", service_name) + VirtualNodeSpecServiceDiscoveryAwsCloudMap._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace_name=namespace_name, + service_name=service_name, + attributes=attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace_name: Optional[str] = None, + service_name: Optional[str] = None, + attributes: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace_name is None and 'namespaceName' in kwargs: + namespace_name = kwargs['namespaceName'] + if namespace_name is None: + raise TypeError("Missing 'namespace_name' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("namespace_name", namespace_name) + _setter("service_name", service_name) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) @property @pulumi.getter(name="namespaceName") @@ -8488,11 +11711,32 @@ def __init__(__self__, *, :param str ip_preference: The preferred IP version that this virtual node uses. Valid values: `IPv6_PREFERRED`, `IPv4_PREFERRED`, `IPv4_ONLY`, `IPv6_ONLY`. :param str response_type: The DNS response type for the virtual node. Valid values: `LOADBALANCER`, `ENDPOINTS`. """ - pulumi.set(__self__, "hostname", hostname) + VirtualNodeSpecServiceDiscoveryDns._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostname=hostname, + ip_preference=ip_preference, + response_type=response_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostname: Optional[str] = None, + ip_preference: Optional[str] = None, + response_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostname is None: + raise TypeError("Missing 'hostname' argument") + if ip_preference is None and 'ipPreference' in kwargs: + ip_preference = kwargs['ipPreference'] + if response_type is None and 'responseType' in kwargs: + response_type = kwargs['responseType'] + + _setter("hostname", hostname) if ip_preference is not None: - pulumi.set(__self__, "ip_preference", ip_preference) + _setter("ip_preference", ip_preference) if response_type is not None: - pulumi.set(__self__, "response_type", response_type) + _setter("response_type", response_type) @property @pulumi.getter @@ -8527,8 +11771,19 @@ def __init__(__self__, *, :param Sequence['VirtualRouterSpecListenerArgs'] listeners: Listeners that the virtual router is expected to receive inbound traffic from. Currently only one listener is supported per virtual router. """ + VirtualRouterSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + listeners=listeners, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listeners: Optional[Sequence['outputs.VirtualRouterSpecListener']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listeners is not None: - pulumi.set(__self__, "listeners", listeners) + _setter("listeners", listeners) @property @pulumi.getter @@ -8564,7 +11819,22 @@ def __init__(__self__, *, """ :param 'VirtualRouterSpecListenerPortMappingArgs' port_mapping: Port mapping information for the listener. """ - pulumi.set(__self__, "port_mapping", port_mapping) + VirtualRouterSpecListener._configure( + lambda key, value: pulumi.set(__self__, key, value), + port_mapping=port_mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port_mapping: Optional['outputs.VirtualRouterSpecListenerPortMapping'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_mapping is None and 'portMapping' in kwargs: + port_mapping = kwargs['portMapping'] + if port_mapping is None: + raise TypeError("Missing 'port_mapping' argument") + + _setter("port_mapping", port_mapping) @property @pulumi.getter(name="portMapping") @@ -8584,8 +11854,25 @@ def __init__(__self__, *, :param int port: Port used for the port mapping. :param str protocol: Protocol used for the port mapping. Valid values are `http`,`http2`, `tcp` and `grpc`. """ - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) + VirtualRouterSpecListenerPortMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + + _setter("port", port) + _setter("protocol", protocol) @property @pulumi.getter @@ -8611,8 +11898,19 @@ def __init__(__self__, *, """ :param 'VirtualServiceSpecProviderArgs' provider: App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router. """ + VirtualServiceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + provider=provider, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provider: Optional['outputs.VirtualServiceSpecProvider'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider is not None: - pulumi.set(__self__, "provider", provider) + _setter("provider", provider) @property @pulumi.getter @@ -8651,10 +11949,27 @@ def __init__(__self__, *, :param 'VirtualServiceSpecProviderVirtualNodeArgs' virtual_node: Virtual node associated with a virtual service. :param 'VirtualServiceSpecProviderVirtualRouterArgs' virtual_router: Virtual router associated with a virtual service. """ + VirtualServiceSpecProvider._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node=virtual_node, + virtual_router=virtual_router, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node: Optional['outputs.VirtualServiceSpecProviderVirtualNode'] = None, + virtual_router: Optional['outputs.VirtualServiceSpecProviderVirtualRouter'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_router is None and 'virtualRouter' in kwargs: + virtual_router = kwargs['virtualRouter'] + if virtual_node is not None: - pulumi.set(__self__, "virtual_node", virtual_node) + _setter("virtual_node", virtual_node) if virtual_router is not None: - pulumi.set(__self__, "virtual_router", virtual_router) + _setter("virtual_router", virtual_router) @property @pulumi.getter(name="virtualNode") @@ -8697,7 +12012,22 @@ def __init__(__self__, *, """ :param str virtual_node_name: Name of the virtual node that is acting as a service provider. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_node_name", virtual_node_name) + VirtualServiceSpecProviderVirtualNode._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node_name=virtual_node_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node_name is None and 'virtualNodeName' in kwargs: + virtual_node_name = kwargs['virtualNodeName'] + if virtual_node_name is None: + raise TypeError("Missing 'virtual_node_name' argument") + + _setter("virtual_node_name", virtual_node_name) @property @pulumi.getter(name="virtualNodeName") @@ -8732,7 +12062,22 @@ def __init__(__self__, *, """ :param str virtual_router_name: Name of the virtual router that is acting as a service provider. Must be between 1 and 255 characters in length. """ - pulumi.set(__self__, "virtual_router_name", virtual_router_name) + VirtualServiceSpecProviderVirtualRouter._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_router_name=virtual_router_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_router_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_router_name is None and 'virtualRouterName' in kwargs: + virtual_router_name = kwargs['virtualRouterName'] + if virtual_router_name is None: + raise TypeError("Missing 'virtual_router_name' argument") + + _setter("virtual_router_name", virtual_router_name) @property @pulumi.getter(name="virtualRouterName") @@ -8750,10 +12095,41 @@ def __init__(__self__, *, http2_routes: Sequence['outputs.GetGatewayRouteSpecHttp2RouteResult'], http_routes: Sequence['outputs.GetGatewayRouteSpecHttpRouteResult'], priority: int): - pulumi.set(__self__, "grpc_routes", grpc_routes) - pulumi.set(__self__, "http2_routes", http2_routes) - pulumi.set(__self__, "http_routes", http_routes) - pulumi.set(__self__, "priority", priority) + GetGatewayRouteSpecResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc_routes=grpc_routes, + http2_routes=http2_routes, + http_routes=http_routes, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc_routes: Optional[Sequence['outputs.GetGatewayRouteSpecGrpcRouteResult']] = None, + http2_routes: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteResult']] = None, + http_routes: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteResult']] = None, + priority: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc_routes is None and 'grpcRoutes' in kwargs: + grpc_routes = kwargs['grpcRoutes'] + if grpc_routes is None: + raise TypeError("Missing 'grpc_routes' argument") + if http2_routes is None and 'http2Routes' in kwargs: + http2_routes = kwargs['http2Routes'] + if http2_routes is None: + raise TypeError("Missing 'http2_routes' argument") + if http_routes is None and 'httpRoutes' in kwargs: + http_routes = kwargs['httpRoutes'] + if http_routes is None: + raise TypeError("Missing 'http_routes' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + + _setter("grpc_routes", grpc_routes) + _setter("http2_routes", http2_routes) + _setter("http_routes", http_routes) + _setter("priority", priority) @property @pulumi.getter(name="grpcRoutes") @@ -8781,8 +12157,25 @@ class GetGatewayRouteSpecGrpcRouteResult(dict): def __init__(__self__, *, actions: Sequence['outputs.GetGatewayRouteSpecGrpcRouteActionResult'], matches: Sequence['outputs.GetGatewayRouteSpecGrpcRouteMatchResult']): - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "matches", matches) + GetGatewayRouteSpecGrpcRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + matches=matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence['outputs.GetGatewayRouteSpecGrpcRouteActionResult']] = None, + matches: Optional[Sequence['outputs.GetGatewayRouteSpecGrpcRouteMatchResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + + _setter("actions", actions) + _setter("matches", matches) @property @pulumi.getter @@ -8799,7 +12192,20 @@ def matches(self) -> Sequence['outputs.GetGatewayRouteSpecGrpcRouteMatchResult'] class GetGatewayRouteSpecGrpcRouteActionResult(dict): def __init__(__self__, *, targets: Sequence['outputs.GetGatewayRouteSpecGrpcRouteActionTargetResult']): - pulumi.set(__self__, "targets", targets) + GetGatewayRouteSpecGrpcRouteActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + targets: Optional[Sequence['outputs.GetGatewayRouteSpecGrpcRouteActionTargetResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if targets is None: + raise TypeError("Missing 'targets' argument") + + _setter("targets", targets) @property @pulumi.getter @@ -8812,8 +12218,27 @@ class GetGatewayRouteSpecGrpcRouteActionTargetResult(dict): def __init__(__self__, *, port: int, virtual_services: Sequence['outputs.GetGatewayRouteSpecGrpcRouteActionTargetVirtualServiceResult']): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "virtual_services", virtual_services) + GetGatewayRouteSpecGrpcRouteActionTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + virtual_services=virtual_services, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + virtual_services: Optional[Sequence['outputs.GetGatewayRouteSpecGrpcRouteActionTargetVirtualServiceResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if virtual_services is None and 'virtualServices' in kwargs: + virtual_services = kwargs['virtualServices'] + if virtual_services is None: + raise TypeError("Missing 'virtual_services' argument") + + _setter("port", port) + _setter("virtual_services", virtual_services) @property @pulumi.getter @@ -8830,7 +12255,22 @@ def virtual_services(self) -> Sequence['outputs.GetGatewayRouteSpecGrpcRouteActi class GetGatewayRouteSpecGrpcRouteActionTargetVirtualServiceResult(dict): def __init__(__self__, *, virtual_service_name: str): - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GetGatewayRouteSpecGrpcRouteActionTargetVirtualServiceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="virtualServiceName") @@ -8843,8 +12283,27 @@ class GetGatewayRouteSpecGrpcRouteMatchResult(dict): def __init__(__self__, *, port: int, service_name: str): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "service_name", service_name) + GetGatewayRouteSpecGrpcRouteMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("port", port) + _setter("service_name", service_name) @property @pulumi.getter @@ -8862,8 +12321,25 @@ class GetGatewayRouteSpecHttp2RouteResult(dict): def __init__(__self__, *, actions: Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionResult'], matches: Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchResult']): - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "matches", matches) + GetGatewayRouteSpecHttp2RouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + matches=matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionResult']] = None, + matches: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + + _setter("actions", actions) + _setter("matches", matches) @property @pulumi.getter @@ -8881,8 +12357,25 @@ class GetGatewayRouteSpecHttp2RouteActionResult(dict): def __init__(__self__, *, rewrites: Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionRewriteResult'], targets: Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionTargetResult']): - pulumi.set(__self__, "rewrites", rewrites) - pulumi.set(__self__, "targets", targets) + GetGatewayRouteSpecHttp2RouteActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + rewrites=rewrites, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rewrites: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionRewriteResult']] = None, + targets: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionTargetResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rewrites is None: + raise TypeError("Missing 'rewrites' argument") + if targets is None: + raise TypeError("Missing 'targets' argument") + + _setter("rewrites", rewrites) + _setter("targets", targets) @property @pulumi.getter @@ -8901,9 +12394,30 @@ def __init__(__self__, *, hostnames: Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionRewriteHostnameResult'], paths: Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionRewritePathResult'], prefixes: Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionRewritePrefixResult']): - pulumi.set(__self__, "hostnames", hostnames) - pulumi.set(__self__, "paths", paths) - pulumi.set(__self__, "prefixes", prefixes) + GetGatewayRouteSpecHttp2RouteActionRewriteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostnames=hostnames, + paths=paths, + prefixes=prefixes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostnames: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionRewriteHostnameResult']] = None, + paths: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionRewritePathResult']] = None, + prefixes: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionRewritePrefixResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostnames is None: + raise TypeError("Missing 'hostnames' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if prefixes is None: + raise TypeError("Missing 'prefixes' argument") + + _setter("hostnames", hostnames) + _setter("paths", paths) + _setter("prefixes", prefixes) @property @pulumi.getter @@ -8925,7 +12439,22 @@ def prefixes(self) -> Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionRewri class GetGatewayRouteSpecHttp2RouteActionRewriteHostnameResult(dict): def __init__(__self__, *, default_target_hostname: str): - pulumi.set(__self__, "default_target_hostname", default_target_hostname) + GetGatewayRouteSpecHttp2RouteActionRewriteHostnameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_target_hostname=default_target_hostname, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_target_hostname: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_target_hostname is None and 'defaultTargetHostname' in kwargs: + default_target_hostname = kwargs['defaultTargetHostname'] + if default_target_hostname is None: + raise TypeError("Missing 'default_target_hostname' argument") + + _setter("default_target_hostname", default_target_hostname) @property @pulumi.getter(name="defaultTargetHostname") @@ -8937,7 +12466,20 @@ def default_target_hostname(self) -> str: class GetGatewayRouteSpecHttp2RouteActionRewritePathResult(dict): def __init__(__self__, *, exact: str): - pulumi.set(__self__, "exact", exact) + GetGatewayRouteSpecHttp2RouteActionRewritePathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -8950,8 +12492,27 @@ class GetGatewayRouteSpecHttp2RouteActionRewritePrefixResult(dict): def __init__(__self__, *, default_prefix: str, value: str): - pulumi.set(__self__, "default_prefix", default_prefix) - pulumi.set(__self__, "value", value) + GetGatewayRouteSpecHttp2RouteActionRewritePrefixResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_prefix=default_prefix, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_prefix: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_prefix is None and 'defaultPrefix' in kwargs: + default_prefix = kwargs['defaultPrefix'] + if default_prefix is None: + raise TypeError("Missing 'default_prefix' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("default_prefix", default_prefix) + _setter("value", value) @property @pulumi.getter(name="defaultPrefix") @@ -8969,8 +12530,27 @@ class GetGatewayRouteSpecHttp2RouteActionTargetResult(dict): def __init__(__self__, *, port: int, virtual_services: Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionTargetVirtualServiceResult']): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "virtual_services", virtual_services) + GetGatewayRouteSpecHttp2RouteActionTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + virtual_services=virtual_services, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + virtual_services: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteActionTargetVirtualServiceResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if virtual_services is None and 'virtualServices' in kwargs: + virtual_services = kwargs['virtualServices'] + if virtual_services is None: + raise TypeError("Missing 'virtual_services' argument") + + _setter("port", port) + _setter("virtual_services", virtual_services) @property @pulumi.getter @@ -8987,7 +12567,22 @@ def virtual_services(self) -> Sequence['outputs.GetGatewayRouteSpecHttp2RouteAct class GetGatewayRouteSpecHttp2RouteActionTargetVirtualServiceResult(dict): def __init__(__self__, *, virtual_service_name: str): - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GetGatewayRouteSpecHttp2RouteActionTargetVirtualServiceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="virtualServiceName") @@ -9004,12 +12599,47 @@ def __init__(__self__, *, port: int, prefix: str, query_parameters: Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchQueryParameterResult']): - pulumi.set(__self__, "headers", headers) - pulumi.set(__self__, "hostnames", hostnames) - pulumi.set(__self__, "paths", paths) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "query_parameters", query_parameters) + GetGatewayRouteSpecHttp2RouteMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + hostnames=hostnames, + paths=paths, + port=port, + prefix=prefix, + query_parameters=query_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchHeaderResult']] = None, + hostnames: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchHostnameResult']] = None, + paths: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchPathResult']] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + query_parameters: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchQueryParameterResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if headers is None: + raise TypeError("Missing 'headers' argument") + if hostnames is None: + raise TypeError("Missing 'hostnames' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if query_parameters is None: + raise TypeError("Missing 'query_parameters' argument") + + _setter("headers", headers) + _setter("hostnames", hostnames) + _setter("paths", paths) + _setter("port", port) + _setter("prefix", prefix) + _setter("query_parameters", query_parameters) @property @pulumi.getter @@ -9051,9 +12681,30 @@ def __init__(__self__, *, """ :param str name: Name of the gateway route. """ - pulumi.set(__self__, "invert", invert) - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "name", name) + GetGatewayRouteSpecHttp2RouteMatchHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + invert=invert, + matches=matches, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invert: Optional[bool] = None, + matches: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchHeaderMatchResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invert is None: + raise TypeError("Missing 'invert' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("invert", invert) + _setter("matches", matches) + _setter("name", name) @property @pulumi.getter @@ -9082,11 +12733,40 @@ def __init__(__self__, *, ranges: Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchHeaderMatchRangeResult'], regex: str, suffix: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "ranges", ranges) - pulumi.set(__self__, "regex", regex) - pulumi.set(__self__, "suffix", suffix) + GetGatewayRouteSpecHttp2RouteMatchHeaderMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + ranges=ranges, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + ranges: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchHeaderMatchRangeResult']] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if ranges is None: + raise TypeError("Missing 'ranges' argument") + if regex is None: + raise TypeError("Missing 'regex' argument") + if suffix is None: + raise TypeError("Missing 'suffix' argument") + + _setter("exact", exact) + _setter("prefix", prefix) + _setter("ranges", ranges) + _setter("regex", regex) + _setter("suffix", suffix) @property @pulumi.getter @@ -9119,8 +12799,25 @@ class GetGatewayRouteSpecHttp2RouteMatchHeaderMatchRangeResult(dict): def __init__(__self__, *, end: int, start: int): - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GetGatewayRouteSpecHttp2RouteMatchHeaderMatchRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -9138,8 +12835,25 @@ class GetGatewayRouteSpecHttp2RouteMatchHostnameResult(dict): def __init__(__self__, *, exact: str, suffix: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "suffix", suffix) + GetGatewayRouteSpecHttp2RouteMatchHostnameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if suffix is None: + raise TypeError("Missing 'suffix' argument") + + _setter("exact", exact) + _setter("suffix", suffix) @property @pulumi.getter @@ -9157,8 +12871,25 @@ class GetGatewayRouteSpecHttp2RouteMatchPathResult(dict): def __init__(__self__, *, exact: str, regex: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "regex", regex) + GetGatewayRouteSpecHttp2RouteMatchPathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + regex: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if regex is None: + raise TypeError("Missing 'regex' argument") + + _setter("exact", exact) + _setter("regex", regex) @property @pulumi.getter @@ -9179,8 +12910,25 @@ def __init__(__self__, *, """ :param str name: Name of the gateway route. """ - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "name", name) + GetGatewayRouteSpecHttp2RouteMatchQueryParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + matches=matches, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matches: Optional[Sequence['outputs.GetGatewayRouteSpecHttp2RouteMatchQueryParameterMatchResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matches is None: + raise TypeError("Missing 'matches' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("matches", matches) + _setter("name", name) @property @pulumi.getter @@ -9200,7 +12948,20 @@ def name(self) -> str: class GetGatewayRouteSpecHttp2RouteMatchQueryParameterMatchResult(dict): def __init__(__self__, *, exact: str): - pulumi.set(__self__, "exact", exact) + GetGatewayRouteSpecHttp2RouteMatchQueryParameterMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -9213,8 +12974,25 @@ class GetGatewayRouteSpecHttpRouteResult(dict): def __init__(__self__, *, actions: Sequence['outputs.GetGatewayRouteSpecHttpRouteActionResult'], matches: Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchResult']): - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "matches", matches) + GetGatewayRouteSpecHttpRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + matches=matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteActionResult']] = None, + matches: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + + _setter("actions", actions) + _setter("matches", matches) @property @pulumi.getter @@ -9232,8 +13010,25 @@ class GetGatewayRouteSpecHttpRouteActionResult(dict): def __init__(__self__, *, rewrites: Sequence['outputs.GetGatewayRouteSpecHttpRouteActionRewriteResult'], targets: Sequence['outputs.GetGatewayRouteSpecHttpRouteActionTargetResult']): - pulumi.set(__self__, "rewrites", rewrites) - pulumi.set(__self__, "targets", targets) + GetGatewayRouteSpecHttpRouteActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + rewrites=rewrites, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rewrites: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteActionRewriteResult']] = None, + targets: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteActionTargetResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rewrites is None: + raise TypeError("Missing 'rewrites' argument") + if targets is None: + raise TypeError("Missing 'targets' argument") + + _setter("rewrites", rewrites) + _setter("targets", targets) @property @pulumi.getter @@ -9252,9 +13047,30 @@ def __init__(__self__, *, hostnames: Sequence['outputs.GetGatewayRouteSpecHttpRouteActionRewriteHostnameResult'], paths: Sequence['outputs.GetGatewayRouteSpecHttpRouteActionRewritePathResult'], prefixes: Sequence['outputs.GetGatewayRouteSpecHttpRouteActionRewritePrefixResult']): - pulumi.set(__self__, "hostnames", hostnames) - pulumi.set(__self__, "paths", paths) - pulumi.set(__self__, "prefixes", prefixes) + GetGatewayRouteSpecHttpRouteActionRewriteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostnames=hostnames, + paths=paths, + prefixes=prefixes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostnames: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteActionRewriteHostnameResult']] = None, + paths: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteActionRewritePathResult']] = None, + prefixes: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteActionRewritePrefixResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostnames is None: + raise TypeError("Missing 'hostnames' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if prefixes is None: + raise TypeError("Missing 'prefixes' argument") + + _setter("hostnames", hostnames) + _setter("paths", paths) + _setter("prefixes", prefixes) @property @pulumi.getter @@ -9276,7 +13092,22 @@ def prefixes(self) -> Sequence['outputs.GetGatewayRouteSpecHttpRouteActionRewrit class GetGatewayRouteSpecHttpRouteActionRewriteHostnameResult(dict): def __init__(__self__, *, default_target_hostname: str): - pulumi.set(__self__, "default_target_hostname", default_target_hostname) + GetGatewayRouteSpecHttpRouteActionRewriteHostnameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_target_hostname=default_target_hostname, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_target_hostname: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_target_hostname is None and 'defaultTargetHostname' in kwargs: + default_target_hostname = kwargs['defaultTargetHostname'] + if default_target_hostname is None: + raise TypeError("Missing 'default_target_hostname' argument") + + _setter("default_target_hostname", default_target_hostname) @property @pulumi.getter(name="defaultTargetHostname") @@ -9288,7 +13119,20 @@ def default_target_hostname(self) -> str: class GetGatewayRouteSpecHttpRouteActionRewritePathResult(dict): def __init__(__self__, *, exact: str): - pulumi.set(__self__, "exact", exact) + GetGatewayRouteSpecHttpRouteActionRewritePathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -9301,8 +13145,27 @@ class GetGatewayRouteSpecHttpRouteActionRewritePrefixResult(dict): def __init__(__self__, *, default_prefix: str, value: str): - pulumi.set(__self__, "default_prefix", default_prefix) - pulumi.set(__self__, "value", value) + GetGatewayRouteSpecHttpRouteActionRewritePrefixResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_prefix=default_prefix, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_prefix: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_prefix is None and 'defaultPrefix' in kwargs: + default_prefix = kwargs['defaultPrefix'] + if default_prefix is None: + raise TypeError("Missing 'default_prefix' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("default_prefix", default_prefix) + _setter("value", value) @property @pulumi.getter(name="defaultPrefix") @@ -9320,8 +13183,27 @@ class GetGatewayRouteSpecHttpRouteActionTargetResult(dict): def __init__(__self__, *, port: int, virtual_services: Sequence['outputs.GetGatewayRouteSpecHttpRouteActionTargetVirtualServiceResult']): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "virtual_services", virtual_services) + GetGatewayRouteSpecHttpRouteActionTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + virtual_services=virtual_services, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + virtual_services: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteActionTargetVirtualServiceResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if virtual_services is None and 'virtualServices' in kwargs: + virtual_services = kwargs['virtualServices'] + if virtual_services is None: + raise TypeError("Missing 'virtual_services' argument") + + _setter("port", port) + _setter("virtual_services", virtual_services) @property @pulumi.getter @@ -9338,7 +13220,22 @@ def virtual_services(self) -> Sequence['outputs.GetGatewayRouteSpecHttpRouteActi class GetGatewayRouteSpecHttpRouteActionTargetVirtualServiceResult(dict): def __init__(__self__, *, virtual_service_name: str): - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GetGatewayRouteSpecHttpRouteActionTargetVirtualServiceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="virtualServiceName") @@ -9355,12 +13252,47 @@ def __init__(__self__, *, port: int, prefix: str, query_parameters: Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchQueryParameterResult']): - pulumi.set(__self__, "headers", headers) - pulumi.set(__self__, "hostnames", hostnames) - pulumi.set(__self__, "paths", paths) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "query_parameters", query_parameters) + GetGatewayRouteSpecHttpRouteMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + hostnames=hostnames, + paths=paths, + port=port, + prefix=prefix, + query_parameters=query_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchHeaderResult']] = None, + hostnames: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchHostnameResult']] = None, + paths: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchPathResult']] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + query_parameters: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchQueryParameterResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if headers is None: + raise TypeError("Missing 'headers' argument") + if hostnames is None: + raise TypeError("Missing 'hostnames' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if query_parameters is None: + raise TypeError("Missing 'query_parameters' argument") + + _setter("headers", headers) + _setter("hostnames", hostnames) + _setter("paths", paths) + _setter("port", port) + _setter("prefix", prefix) + _setter("query_parameters", query_parameters) @property @pulumi.getter @@ -9402,9 +13334,30 @@ def __init__(__self__, *, """ :param str name: Name of the gateway route. """ - pulumi.set(__self__, "invert", invert) - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "name", name) + GetGatewayRouteSpecHttpRouteMatchHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + invert=invert, + matches=matches, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invert: Optional[bool] = None, + matches: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchHeaderMatchResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invert is None: + raise TypeError("Missing 'invert' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("invert", invert) + _setter("matches", matches) + _setter("name", name) @property @pulumi.getter @@ -9433,11 +13386,40 @@ def __init__(__self__, *, ranges: Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchHeaderMatchRangeResult'], regex: str, suffix: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "ranges", ranges) - pulumi.set(__self__, "regex", regex) - pulumi.set(__self__, "suffix", suffix) + GetGatewayRouteSpecHttpRouteMatchHeaderMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + ranges=ranges, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + ranges: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchHeaderMatchRangeResult']] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if ranges is None: + raise TypeError("Missing 'ranges' argument") + if regex is None: + raise TypeError("Missing 'regex' argument") + if suffix is None: + raise TypeError("Missing 'suffix' argument") + + _setter("exact", exact) + _setter("prefix", prefix) + _setter("ranges", ranges) + _setter("regex", regex) + _setter("suffix", suffix) @property @pulumi.getter @@ -9470,8 +13452,25 @@ class GetGatewayRouteSpecHttpRouteMatchHeaderMatchRangeResult(dict): def __init__(__self__, *, end: int, start: int): - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GetGatewayRouteSpecHttpRouteMatchHeaderMatchRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -9489,8 +13488,25 @@ class GetGatewayRouteSpecHttpRouteMatchHostnameResult(dict): def __init__(__self__, *, exact: str, suffix: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "suffix", suffix) + GetGatewayRouteSpecHttpRouteMatchHostnameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if suffix is None: + raise TypeError("Missing 'suffix' argument") + + _setter("exact", exact) + _setter("suffix", suffix) @property @pulumi.getter @@ -9508,8 +13524,25 @@ class GetGatewayRouteSpecHttpRouteMatchPathResult(dict): def __init__(__self__, *, exact: str, regex: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "regex", regex) + GetGatewayRouteSpecHttpRouteMatchPathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + regex: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if regex is None: + raise TypeError("Missing 'regex' argument") + + _setter("exact", exact) + _setter("regex", regex) @property @pulumi.getter @@ -9530,8 +13563,25 @@ def __init__(__self__, *, """ :param str name: Name of the gateway route. """ - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "name", name) + GetGatewayRouteSpecHttpRouteMatchQueryParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + matches=matches, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matches: Optional[Sequence['outputs.GetGatewayRouteSpecHttpRouteMatchQueryParameterMatchResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matches is None: + raise TypeError("Missing 'matches' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("matches", matches) + _setter("name", name) @property @pulumi.getter @@ -9551,7 +13601,20 @@ def name(self) -> str: class GetGatewayRouteSpecHttpRouteMatchQueryParameterMatchResult(dict): def __init__(__self__, *, exact: str): - pulumi.set(__self__, "exact", exact) + GetGatewayRouteSpecHttpRouteMatchQueryParameterMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -9563,7 +13626,22 @@ def exact(self) -> str: class GetMeshSpecResult(dict): def __init__(__self__, *, egress_filters: Sequence['outputs.GetMeshSpecEgressFilterResult']): - pulumi.set(__self__, "egress_filters", egress_filters) + GetMeshSpecResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + egress_filters=egress_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + egress_filters: Optional[Sequence['outputs.GetMeshSpecEgressFilterResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if egress_filters is None and 'egressFilters' in kwargs: + egress_filters = kwargs['egressFilters'] + if egress_filters is None: + raise TypeError("Missing 'egress_filters' argument") + + _setter("egress_filters", egress_filters) @property @pulumi.getter(name="egressFilters") @@ -9575,7 +13653,20 @@ def egress_filters(self) -> Sequence['outputs.GetMeshSpecEgressFilterResult']: class GetMeshSpecEgressFilterResult(dict): def __init__(__self__, *, type: str): - pulumi.set(__self__, "type", type) + GetMeshSpecEgressFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -9591,11 +13682,48 @@ def __init__(__self__, *, http_routes: Sequence['outputs.GetRouteSpecHttpRouteResult'], priority: int, tcp_routes: Sequence['outputs.GetRouteSpecTcpRouteResult']): - pulumi.set(__self__, "grpc_routes", grpc_routes) - pulumi.set(__self__, "http2_routes", http2_routes) - pulumi.set(__self__, "http_routes", http_routes) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "tcp_routes", tcp_routes) + GetRouteSpecResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc_routes=grpc_routes, + http2_routes=http2_routes, + http_routes=http_routes, + priority=priority, + tcp_routes=tcp_routes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc_routes: Optional[Sequence['outputs.GetRouteSpecGrpcRouteResult']] = None, + http2_routes: Optional[Sequence['outputs.GetRouteSpecHttp2RouteResult']] = None, + http_routes: Optional[Sequence['outputs.GetRouteSpecHttpRouteResult']] = None, + priority: Optional[int] = None, + tcp_routes: Optional[Sequence['outputs.GetRouteSpecTcpRouteResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc_routes is None and 'grpcRoutes' in kwargs: + grpc_routes = kwargs['grpcRoutes'] + if grpc_routes is None: + raise TypeError("Missing 'grpc_routes' argument") + if http2_routes is None and 'http2Routes' in kwargs: + http2_routes = kwargs['http2Routes'] + if http2_routes is None: + raise TypeError("Missing 'http2_routes' argument") + if http_routes is None and 'httpRoutes' in kwargs: + http_routes = kwargs['httpRoutes'] + if http_routes is None: + raise TypeError("Missing 'http_routes' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if tcp_routes is None and 'tcpRoutes' in kwargs: + tcp_routes = kwargs['tcpRoutes'] + if tcp_routes is None: + raise TypeError("Missing 'tcp_routes' argument") + + _setter("grpc_routes", grpc_routes) + _setter("http2_routes", http2_routes) + _setter("http_routes", http_routes) + _setter("priority", priority) + _setter("tcp_routes", tcp_routes) @property @pulumi.getter(name="grpcRoutes") @@ -9630,10 +13758,37 @@ def __init__(__self__, *, matches: Sequence['outputs.GetRouteSpecGrpcRouteMatchResult'], retry_policies: Sequence['outputs.GetRouteSpecGrpcRouteRetryPolicyResult'], timeouts: Sequence['outputs.GetRouteSpecGrpcRouteTimeoutResult']): - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "retry_policies", retry_policies) - pulumi.set(__self__, "timeouts", timeouts) + GetRouteSpecGrpcRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + matches=matches, + retry_policies=retry_policies, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence['outputs.GetRouteSpecGrpcRouteActionResult']] = None, + matches: Optional[Sequence['outputs.GetRouteSpecGrpcRouteMatchResult']] = None, + retry_policies: Optional[Sequence['outputs.GetRouteSpecGrpcRouteRetryPolicyResult']] = None, + timeouts: Optional[Sequence['outputs.GetRouteSpecGrpcRouteTimeoutResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + if retry_policies is None and 'retryPolicies' in kwargs: + retry_policies = kwargs['retryPolicies'] + if retry_policies is None: + raise TypeError("Missing 'retry_policies' argument") + if timeouts is None: + raise TypeError("Missing 'timeouts' argument") + + _setter("actions", actions) + _setter("matches", matches) + _setter("retry_policies", retry_policies) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -9660,7 +13815,22 @@ def timeouts(self) -> Sequence['outputs.GetRouteSpecGrpcRouteTimeoutResult']: class GetRouteSpecGrpcRouteActionResult(dict): def __init__(__self__, *, weighted_targets: Sequence['outputs.GetRouteSpecGrpcRouteActionWeightedTargetResult']): - pulumi.set(__self__, "weighted_targets", weighted_targets) + GetRouteSpecGrpcRouteActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[Sequence['outputs.GetRouteSpecGrpcRouteActionWeightedTargetResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -9674,9 +13844,32 @@ def __init__(__self__, *, port: int, virtual_node: str, weight: int): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + GetRouteSpecGrpcRouteActionWeightedTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + virtual_node=virtual_node, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + virtual_node: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("port", port) + _setter("virtual_node", virtual_node) + _setter("weight", weight) @property @pulumi.getter @@ -9702,11 +13895,44 @@ def __init__(__self__, *, port: int, prefix: str, service_name: str): - pulumi.set(__self__, "metadatas", metadatas) - pulumi.set(__self__, "method_name", method_name) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "service_name", service_name) + GetRouteSpecGrpcRouteMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + metadatas=metadatas, + method_name=method_name, + port=port, + prefix=prefix, + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metadatas: Optional[Sequence['outputs.GetRouteSpecGrpcRouteMatchMetadataResult']] = None, + method_name: Optional[str] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metadatas is None: + raise TypeError("Missing 'metadatas' argument") + if method_name is None and 'methodName' in kwargs: + method_name = kwargs['methodName'] + if method_name is None: + raise TypeError("Missing 'method_name' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("metadatas", metadatas) + _setter("method_name", method_name) + _setter("port", port) + _setter("prefix", prefix) + _setter("service_name", service_name) @property @pulumi.getter @@ -9743,9 +13969,30 @@ def __init__(__self__, *, """ :param str name: Name of the route. """ - pulumi.set(__self__, "invert", invert) - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "name", name) + GetRouteSpecGrpcRouteMatchMetadataResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + invert=invert, + matches=matches, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invert: Optional[bool] = None, + matches: Optional[Sequence['outputs.GetRouteSpecGrpcRouteMatchMetadataMatchResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invert is None: + raise TypeError("Missing 'invert' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("invert", invert) + _setter("matches", matches) + _setter("name", name) @property @pulumi.getter @@ -9774,11 +14021,40 @@ def __init__(__self__, *, ranges: Sequence['outputs.GetRouteSpecGrpcRouteMatchMetadataMatchRangeResult'], regex: str, suffix: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "ranges", ranges) - pulumi.set(__self__, "regex", regex) - pulumi.set(__self__, "suffix", suffix) + GetRouteSpecGrpcRouteMatchMetadataMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + ranges=ranges, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + ranges: Optional[Sequence['outputs.GetRouteSpecGrpcRouteMatchMetadataMatchRangeResult']] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if ranges is None: + raise TypeError("Missing 'ranges' argument") + if regex is None: + raise TypeError("Missing 'regex' argument") + if suffix is None: + raise TypeError("Missing 'suffix' argument") + + _setter("exact", exact) + _setter("prefix", prefix) + _setter("ranges", ranges) + _setter("regex", regex) + _setter("suffix", suffix) @property @pulumi.getter @@ -9811,8 +14087,25 @@ class GetRouteSpecGrpcRouteMatchMetadataMatchRangeResult(dict): def __init__(__self__, *, end: int, start: int): - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GetRouteSpecGrpcRouteMatchMetadataMatchRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -9833,11 +14126,50 @@ def __init__(__self__, *, max_retries: int, per_retry_timeouts: Sequence['outputs.GetRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutResult'], tcp_retry_events: Sequence[str]): - pulumi.set(__self__, "grpc_retry_events", grpc_retry_events) - pulumi.set(__self__, "http_retry_events", http_retry_events) - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeouts", per_retry_timeouts) - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + GetRouteSpecGrpcRouteRetryPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpc_retry_events=grpc_retry_events, + http_retry_events=http_retry_events, + max_retries=max_retries, + per_retry_timeouts=per_retry_timeouts, + tcp_retry_events=tcp_retry_events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpc_retry_events: Optional[Sequence[str]] = None, + http_retry_events: Optional[Sequence[str]] = None, + max_retries: Optional[int] = None, + per_retry_timeouts: Optional[Sequence['outputs.GetRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutResult']] = None, + tcp_retry_events: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpc_retry_events is None and 'grpcRetryEvents' in kwargs: + grpc_retry_events = kwargs['grpcRetryEvents'] + if grpc_retry_events is None: + raise TypeError("Missing 'grpc_retry_events' argument") + if http_retry_events is None and 'httpRetryEvents' in kwargs: + http_retry_events = kwargs['httpRetryEvents'] + if http_retry_events is None: + raise TypeError("Missing 'http_retry_events' argument") + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if max_retries is None: + raise TypeError("Missing 'max_retries' argument") + if per_retry_timeouts is None and 'perRetryTimeouts' in kwargs: + per_retry_timeouts = kwargs['perRetryTimeouts'] + if per_retry_timeouts is None: + raise TypeError("Missing 'per_retry_timeouts' argument") + if tcp_retry_events is None and 'tcpRetryEvents' in kwargs: + tcp_retry_events = kwargs['tcpRetryEvents'] + if tcp_retry_events is None: + raise TypeError("Missing 'tcp_retry_events' argument") + + _setter("grpc_retry_events", grpc_retry_events) + _setter("http_retry_events", http_retry_events) + _setter("max_retries", max_retries) + _setter("per_retry_timeouts", per_retry_timeouts) + _setter("tcp_retry_events", tcp_retry_events) @property @pulumi.getter(name="grpcRetryEvents") @@ -9870,8 +14202,25 @@ class GetRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -9889,8 +14238,27 @@ class GetRouteSpecGrpcRouteTimeoutResult(dict): def __init__(__self__, *, idles: Sequence['outputs.GetRouteSpecGrpcRouteTimeoutIdleResult'], per_requests: Sequence['outputs.GetRouteSpecGrpcRouteTimeoutPerRequestResult']): - pulumi.set(__self__, "idles", idles) - pulumi.set(__self__, "per_requests", per_requests) + GetRouteSpecGrpcRouteTimeoutResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + idles=idles, + per_requests=per_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idles: Optional[Sequence['outputs.GetRouteSpecGrpcRouteTimeoutIdleResult']] = None, + per_requests: Optional[Sequence['outputs.GetRouteSpecGrpcRouteTimeoutPerRequestResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idles is None: + raise TypeError("Missing 'idles' argument") + if per_requests is None and 'perRequests' in kwargs: + per_requests = kwargs['perRequests'] + if per_requests is None: + raise TypeError("Missing 'per_requests' argument") + + _setter("idles", idles) + _setter("per_requests", per_requests) @property @pulumi.getter @@ -9908,8 +14276,25 @@ class GetRouteSpecGrpcRouteTimeoutIdleResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecGrpcRouteTimeoutIdleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -9927,8 +14312,25 @@ class GetRouteSpecGrpcRouteTimeoutPerRequestResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecGrpcRouteTimeoutPerRequestResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -9948,10 +14350,37 @@ def __init__(__self__, *, matches: Sequence['outputs.GetRouteSpecHttp2RouteMatchResult'], retry_policies: Sequence['outputs.GetRouteSpecHttp2RouteRetryPolicyResult'], timeouts: Sequence['outputs.GetRouteSpecHttp2RouteTimeoutResult']): - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "retry_policies", retry_policies) - pulumi.set(__self__, "timeouts", timeouts) + GetRouteSpecHttp2RouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + matches=matches, + retry_policies=retry_policies, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence['outputs.GetRouteSpecHttp2RouteActionResult']] = None, + matches: Optional[Sequence['outputs.GetRouteSpecHttp2RouteMatchResult']] = None, + retry_policies: Optional[Sequence['outputs.GetRouteSpecHttp2RouteRetryPolicyResult']] = None, + timeouts: Optional[Sequence['outputs.GetRouteSpecHttp2RouteTimeoutResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + if retry_policies is None and 'retryPolicies' in kwargs: + retry_policies = kwargs['retryPolicies'] + if retry_policies is None: + raise TypeError("Missing 'retry_policies' argument") + if timeouts is None: + raise TypeError("Missing 'timeouts' argument") + + _setter("actions", actions) + _setter("matches", matches) + _setter("retry_policies", retry_policies) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -9978,7 +14407,22 @@ def timeouts(self) -> Sequence['outputs.GetRouteSpecHttp2RouteTimeoutResult']: class GetRouteSpecHttp2RouteActionResult(dict): def __init__(__self__, *, weighted_targets: Sequence['outputs.GetRouteSpecHttp2RouteActionWeightedTargetResult']): - pulumi.set(__self__, "weighted_targets", weighted_targets) + GetRouteSpecHttp2RouteActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[Sequence['outputs.GetRouteSpecHttp2RouteActionWeightedTargetResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -9992,9 +14436,32 @@ def __init__(__self__, *, port: int, virtual_node: str, weight: int): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + GetRouteSpecHttp2RouteActionWeightedTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + virtual_node=virtual_node, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + virtual_node: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("port", port) + _setter("virtual_node", virtual_node) + _setter("weight", weight) @property @pulumi.getter @@ -10022,13 +14489,52 @@ def __init__(__self__, *, prefix: str, query_parameters: Sequence['outputs.GetRouteSpecHttp2RouteMatchQueryParameterResult'], scheme: str): - pulumi.set(__self__, "headers", headers) - pulumi.set(__self__, "method", method) - pulumi.set(__self__, "paths", paths) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "query_parameters", query_parameters) - pulumi.set(__self__, "scheme", scheme) + GetRouteSpecHttp2RouteMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + method=method, + paths=paths, + port=port, + prefix=prefix, + query_parameters=query_parameters, + scheme=scheme, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[Sequence['outputs.GetRouteSpecHttp2RouteMatchHeaderResult']] = None, + method: Optional[str] = None, + paths: Optional[Sequence['outputs.GetRouteSpecHttp2RouteMatchPathResult']] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + query_parameters: Optional[Sequence['outputs.GetRouteSpecHttp2RouteMatchQueryParameterResult']] = None, + scheme: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if headers is None: + raise TypeError("Missing 'headers' argument") + if method is None: + raise TypeError("Missing 'method' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if query_parameters is None: + raise TypeError("Missing 'query_parameters' argument") + if scheme is None: + raise TypeError("Missing 'scheme' argument") + + _setter("headers", headers) + _setter("method", method) + _setter("paths", paths) + _setter("port", port) + _setter("prefix", prefix) + _setter("query_parameters", query_parameters) + _setter("scheme", scheme) @property @pulumi.getter @@ -10075,9 +14581,30 @@ def __init__(__self__, *, """ :param str name: Name of the route. """ - pulumi.set(__self__, "invert", invert) - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "name", name) + GetRouteSpecHttp2RouteMatchHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + invert=invert, + matches=matches, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invert: Optional[bool] = None, + matches: Optional[Sequence['outputs.GetRouteSpecHttp2RouteMatchHeaderMatchResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invert is None: + raise TypeError("Missing 'invert' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("invert", invert) + _setter("matches", matches) + _setter("name", name) @property @pulumi.getter @@ -10106,11 +14633,40 @@ def __init__(__self__, *, ranges: Sequence['outputs.GetRouteSpecHttp2RouteMatchHeaderMatchRangeResult'], regex: str, suffix: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "ranges", ranges) - pulumi.set(__self__, "regex", regex) - pulumi.set(__self__, "suffix", suffix) + GetRouteSpecHttp2RouteMatchHeaderMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + ranges=ranges, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + ranges: Optional[Sequence['outputs.GetRouteSpecHttp2RouteMatchHeaderMatchRangeResult']] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if ranges is None: + raise TypeError("Missing 'ranges' argument") + if regex is None: + raise TypeError("Missing 'regex' argument") + if suffix is None: + raise TypeError("Missing 'suffix' argument") + + _setter("exact", exact) + _setter("prefix", prefix) + _setter("ranges", ranges) + _setter("regex", regex) + _setter("suffix", suffix) @property @pulumi.getter @@ -10143,8 +14699,25 @@ class GetRouteSpecHttp2RouteMatchHeaderMatchRangeResult(dict): def __init__(__self__, *, end: int, start: int): - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GetRouteSpecHttp2RouteMatchHeaderMatchRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -10162,8 +14735,25 @@ class GetRouteSpecHttp2RouteMatchPathResult(dict): def __init__(__self__, *, exact: str, regex: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "regex", regex) + GetRouteSpecHttp2RouteMatchPathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + regex: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if regex is None: + raise TypeError("Missing 'regex' argument") + + _setter("exact", exact) + _setter("regex", regex) @property @pulumi.getter @@ -10184,8 +14774,25 @@ def __init__(__self__, *, """ :param str name: Name of the route. """ - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "name", name) + GetRouteSpecHttp2RouteMatchQueryParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + matches=matches, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matches: Optional[Sequence['outputs.GetRouteSpecHttp2RouteMatchQueryParameterMatchResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matches is None: + raise TypeError("Missing 'matches' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("matches", matches) + _setter("name", name) @property @pulumi.getter @@ -10205,7 +14812,20 @@ def name(self) -> str: class GetRouteSpecHttp2RouteMatchQueryParameterMatchResult(dict): def __init__(__self__, *, exact: str): - pulumi.set(__self__, "exact", exact) + GetRouteSpecHttp2RouteMatchQueryParameterMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -10220,10 +14840,43 @@ def __init__(__self__, *, max_retries: int, per_retry_timeouts: Sequence['outputs.GetRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutResult'], tcp_retry_events: Sequence[str]): - pulumi.set(__self__, "http_retry_events", http_retry_events) - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeouts", per_retry_timeouts) - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + GetRouteSpecHttp2RouteRetryPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_retry_events=http_retry_events, + max_retries=max_retries, + per_retry_timeouts=per_retry_timeouts, + tcp_retry_events=tcp_retry_events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_retry_events: Optional[Sequence[str]] = None, + max_retries: Optional[int] = None, + per_retry_timeouts: Optional[Sequence['outputs.GetRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutResult']] = None, + tcp_retry_events: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_retry_events is None and 'httpRetryEvents' in kwargs: + http_retry_events = kwargs['httpRetryEvents'] + if http_retry_events is None: + raise TypeError("Missing 'http_retry_events' argument") + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if max_retries is None: + raise TypeError("Missing 'max_retries' argument") + if per_retry_timeouts is None and 'perRetryTimeouts' in kwargs: + per_retry_timeouts = kwargs['perRetryTimeouts'] + if per_retry_timeouts is None: + raise TypeError("Missing 'per_retry_timeouts' argument") + if tcp_retry_events is None and 'tcpRetryEvents' in kwargs: + tcp_retry_events = kwargs['tcpRetryEvents'] + if tcp_retry_events is None: + raise TypeError("Missing 'tcp_retry_events' argument") + + _setter("http_retry_events", http_retry_events) + _setter("max_retries", max_retries) + _setter("per_retry_timeouts", per_retry_timeouts) + _setter("tcp_retry_events", tcp_retry_events) @property @pulumi.getter(name="httpRetryEvents") @@ -10251,8 +14904,25 @@ class GetRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -10270,8 +14940,27 @@ class GetRouteSpecHttp2RouteTimeoutResult(dict): def __init__(__self__, *, idles: Sequence['outputs.GetRouteSpecHttp2RouteTimeoutIdleResult'], per_requests: Sequence['outputs.GetRouteSpecHttp2RouteTimeoutPerRequestResult']): - pulumi.set(__self__, "idles", idles) - pulumi.set(__self__, "per_requests", per_requests) + GetRouteSpecHttp2RouteTimeoutResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + idles=idles, + per_requests=per_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idles: Optional[Sequence['outputs.GetRouteSpecHttp2RouteTimeoutIdleResult']] = None, + per_requests: Optional[Sequence['outputs.GetRouteSpecHttp2RouteTimeoutPerRequestResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idles is None: + raise TypeError("Missing 'idles' argument") + if per_requests is None and 'perRequests' in kwargs: + per_requests = kwargs['perRequests'] + if per_requests is None: + raise TypeError("Missing 'per_requests' argument") + + _setter("idles", idles) + _setter("per_requests", per_requests) @property @pulumi.getter @@ -10289,8 +14978,25 @@ class GetRouteSpecHttp2RouteTimeoutIdleResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecHttp2RouteTimeoutIdleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -10308,8 +15014,25 @@ class GetRouteSpecHttp2RouteTimeoutPerRequestResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecHttp2RouteTimeoutPerRequestResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -10329,10 +15052,37 @@ def __init__(__self__, *, matches: Sequence['outputs.GetRouteSpecHttpRouteMatchResult'], retry_policies: Sequence['outputs.GetRouteSpecHttpRouteRetryPolicyResult'], timeouts: Sequence['outputs.GetRouteSpecHttpRouteTimeoutResult']): - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "retry_policies", retry_policies) - pulumi.set(__self__, "timeouts", timeouts) + GetRouteSpecHttpRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + matches=matches, + retry_policies=retry_policies, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence['outputs.GetRouteSpecHttpRouteActionResult']] = None, + matches: Optional[Sequence['outputs.GetRouteSpecHttpRouteMatchResult']] = None, + retry_policies: Optional[Sequence['outputs.GetRouteSpecHttpRouteRetryPolicyResult']] = None, + timeouts: Optional[Sequence['outputs.GetRouteSpecHttpRouteTimeoutResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + if retry_policies is None and 'retryPolicies' in kwargs: + retry_policies = kwargs['retryPolicies'] + if retry_policies is None: + raise TypeError("Missing 'retry_policies' argument") + if timeouts is None: + raise TypeError("Missing 'timeouts' argument") + + _setter("actions", actions) + _setter("matches", matches) + _setter("retry_policies", retry_policies) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -10359,7 +15109,22 @@ def timeouts(self) -> Sequence['outputs.GetRouteSpecHttpRouteTimeoutResult']: class GetRouteSpecHttpRouteActionResult(dict): def __init__(__self__, *, weighted_targets: Sequence['outputs.GetRouteSpecHttpRouteActionWeightedTargetResult']): - pulumi.set(__self__, "weighted_targets", weighted_targets) + GetRouteSpecHttpRouteActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[Sequence['outputs.GetRouteSpecHttpRouteActionWeightedTargetResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -10373,9 +15138,32 @@ def __init__(__self__, *, port: int, virtual_node: str, weight: int): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + GetRouteSpecHttpRouteActionWeightedTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + virtual_node=virtual_node, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + virtual_node: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("port", port) + _setter("virtual_node", virtual_node) + _setter("weight", weight) @property @pulumi.getter @@ -10403,13 +15191,52 @@ def __init__(__self__, *, prefix: str, query_parameters: Sequence['outputs.GetRouteSpecHttpRouteMatchQueryParameterResult'], scheme: str): - pulumi.set(__self__, "headers", headers) - pulumi.set(__self__, "method", method) - pulumi.set(__self__, "paths", paths) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "query_parameters", query_parameters) - pulumi.set(__self__, "scheme", scheme) + GetRouteSpecHttpRouteMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers=headers, + method=method, + paths=paths, + port=port, + prefix=prefix, + query_parameters=query_parameters, + scheme=scheme, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers: Optional[Sequence['outputs.GetRouteSpecHttpRouteMatchHeaderResult']] = None, + method: Optional[str] = None, + paths: Optional[Sequence['outputs.GetRouteSpecHttpRouteMatchPathResult']] = None, + port: Optional[int] = None, + prefix: Optional[str] = None, + query_parameters: Optional[Sequence['outputs.GetRouteSpecHttpRouteMatchQueryParameterResult']] = None, + scheme: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if headers is None: + raise TypeError("Missing 'headers' argument") + if method is None: + raise TypeError("Missing 'method' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if query_parameters is None and 'queryParameters' in kwargs: + query_parameters = kwargs['queryParameters'] + if query_parameters is None: + raise TypeError("Missing 'query_parameters' argument") + if scheme is None: + raise TypeError("Missing 'scheme' argument") + + _setter("headers", headers) + _setter("method", method) + _setter("paths", paths) + _setter("port", port) + _setter("prefix", prefix) + _setter("query_parameters", query_parameters) + _setter("scheme", scheme) @property @pulumi.getter @@ -10456,9 +15283,30 @@ def __init__(__self__, *, """ :param str name: Name of the route. """ - pulumi.set(__self__, "invert", invert) - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "name", name) + GetRouteSpecHttpRouteMatchHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + invert=invert, + matches=matches, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invert: Optional[bool] = None, + matches: Optional[Sequence['outputs.GetRouteSpecHttpRouteMatchHeaderMatchResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invert is None: + raise TypeError("Missing 'invert' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("invert", invert) + _setter("matches", matches) + _setter("name", name) @property @pulumi.getter @@ -10487,11 +15335,40 @@ def __init__(__self__, *, ranges: Sequence['outputs.GetRouteSpecHttpRouteMatchHeaderMatchRangeResult'], regex: str, suffix: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "ranges", ranges) - pulumi.set(__self__, "regex", regex) - pulumi.set(__self__, "suffix", suffix) + GetRouteSpecHttpRouteMatchHeaderMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + ranges=ranges, + regex=regex, + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + ranges: Optional[Sequence['outputs.GetRouteSpecHttpRouteMatchHeaderMatchRangeResult']] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if ranges is None: + raise TypeError("Missing 'ranges' argument") + if regex is None: + raise TypeError("Missing 'regex' argument") + if suffix is None: + raise TypeError("Missing 'suffix' argument") + + _setter("exact", exact) + _setter("prefix", prefix) + _setter("ranges", ranges) + _setter("regex", regex) + _setter("suffix", suffix) @property @pulumi.getter @@ -10524,8 +15401,25 @@ class GetRouteSpecHttpRouteMatchHeaderMatchRangeResult(dict): def __init__(__self__, *, end: int, start: int): - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GetRouteSpecHttpRouteMatchHeaderMatchRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[int] = None, + start: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter @@ -10543,8 +15437,25 @@ class GetRouteSpecHttpRouteMatchPathResult(dict): def __init__(__self__, *, exact: str, regex: str): - pulumi.set(__self__, "exact", exact) - pulumi.set(__self__, "regex", regex) + GetRouteSpecHttpRouteMatchPathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + regex=regex, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + regex: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + if regex is None: + raise TypeError("Missing 'regex' argument") + + _setter("exact", exact) + _setter("regex", regex) @property @pulumi.getter @@ -10565,8 +15476,25 @@ def __init__(__self__, *, """ :param str name: Name of the route. """ - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "name", name) + GetRouteSpecHttpRouteMatchQueryParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + matches=matches, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matches: Optional[Sequence['outputs.GetRouteSpecHttpRouteMatchQueryParameterMatchResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matches is None: + raise TypeError("Missing 'matches' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("matches", matches) + _setter("name", name) @property @pulumi.getter @@ -10586,7 +15514,20 @@ def name(self) -> str: class GetRouteSpecHttpRouteMatchQueryParameterMatchResult(dict): def __init__(__self__, *, exact: str): - pulumi.set(__self__, "exact", exact) + GetRouteSpecHttpRouteMatchQueryParameterMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is None: + raise TypeError("Missing 'exact' argument") + + _setter("exact", exact) @property @pulumi.getter @@ -10601,10 +15542,43 @@ def __init__(__self__, *, max_retries: int, per_retry_timeouts: Sequence['outputs.GetRouteSpecHttpRouteRetryPolicyPerRetryTimeoutResult'], tcp_retry_events: Sequence[str]): - pulumi.set(__self__, "http_retry_events", http_retry_events) - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeouts", per_retry_timeouts) - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + GetRouteSpecHttpRouteRetryPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_retry_events=http_retry_events, + max_retries=max_retries, + per_retry_timeouts=per_retry_timeouts, + tcp_retry_events=tcp_retry_events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_retry_events: Optional[Sequence[str]] = None, + max_retries: Optional[int] = None, + per_retry_timeouts: Optional[Sequence['outputs.GetRouteSpecHttpRouteRetryPolicyPerRetryTimeoutResult']] = None, + tcp_retry_events: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_retry_events is None and 'httpRetryEvents' in kwargs: + http_retry_events = kwargs['httpRetryEvents'] + if http_retry_events is None: + raise TypeError("Missing 'http_retry_events' argument") + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if max_retries is None: + raise TypeError("Missing 'max_retries' argument") + if per_retry_timeouts is None and 'perRetryTimeouts' in kwargs: + per_retry_timeouts = kwargs['perRetryTimeouts'] + if per_retry_timeouts is None: + raise TypeError("Missing 'per_retry_timeouts' argument") + if tcp_retry_events is None and 'tcpRetryEvents' in kwargs: + tcp_retry_events = kwargs['tcpRetryEvents'] + if tcp_retry_events is None: + raise TypeError("Missing 'tcp_retry_events' argument") + + _setter("http_retry_events", http_retry_events) + _setter("max_retries", max_retries) + _setter("per_retry_timeouts", per_retry_timeouts) + _setter("tcp_retry_events", tcp_retry_events) @property @pulumi.getter(name="httpRetryEvents") @@ -10632,8 +15606,25 @@ class GetRouteSpecHttpRouteRetryPolicyPerRetryTimeoutResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecHttpRouteRetryPolicyPerRetryTimeoutResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -10651,8 +15642,27 @@ class GetRouteSpecHttpRouteTimeoutResult(dict): def __init__(__self__, *, idles: Sequence['outputs.GetRouteSpecHttpRouteTimeoutIdleResult'], per_requests: Sequence['outputs.GetRouteSpecHttpRouteTimeoutPerRequestResult']): - pulumi.set(__self__, "idles", idles) - pulumi.set(__self__, "per_requests", per_requests) + GetRouteSpecHttpRouteTimeoutResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + idles=idles, + per_requests=per_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idles: Optional[Sequence['outputs.GetRouteSpecHttpRouteTimeoutIdleResult']] = None, + per_requests: Optional[Sequence['outputs.GetRouteSpecHttpRouteTimeoutPerRequestResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idles is None: + raise TypeError("Missing 'idles' argument") + if per_requests is None and 'perRequests' in kwargs: + per_requests = kwargs['perRequests'] + if per_requests is None: + raise TypeError("Missing 'per_requests' argument") + + _setter("idles", idles) + _setter("per_requests", per_requests) @property @pulumi.getter @@ -10670,8 +15680,25 @@ class GetRouteSpecHttpRouteTimeoutIdleResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecHttpRouteTimeoutIdleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -10689,8 +15716,25 @@ class GetRouteSpecHttpRouteTimeoutPerRequestResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecHttpRouteTimeoutPerRequestResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -10709,9 +15753,30 @@ def __init__(__self__, *, actions: Sequence['outputs.GetRouteSpecTcpRouteActionResult'], matches: Sequence['outputs.GetRouteSpecTcpRouteMatchResult'], timeouts: Sequence['outputs.GetRouteSpecTcpRouteTimeoutResult']): - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "matches", matches) - pulumi.set(__self__, "timeouts", timeouts) + GetRouteSpecTcpRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + matches=matches, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence['outputs.GetRouteSpecTcpRouteActionResult']] = None, + matches: Optional[Sequence['outputs.GetRouteSpecTcpRouteMatchResult']] = None, + timeouts: Optional[Sequence['outputs.GetRouteSpecTcpRouteTimeoutResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if matches is None: + raise TypeError("Missing 'matches' argument") + if timeouts is None: + raise TypeError("Missing 'timeouts' argument") + + _setter("actions", actions) + _setter("matches", matches) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -10733,7 +15798,22 @@ def timeouts(self) -> Sequence['outputs.GetRouteSpecTcpRouteTimeoutResult']: class GetRouteSpecTcpRouteActionResult(dict): def __init__(__self__, *, weighted_targets: Sequence['outputs.GetRouteSpecTcpRouteActionWeightedTargetResult']): - pulumi.set(__self__, "weighted_targets", weighted_targets) + GetRouteSpecTcpRouteActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + weighted_targets=weighted_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weighted_targets: Optional[Sequence['outputs.GetRouteSpecTcpRouteActionWeightedTargetResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weighted_targets is None and 'weightedTargets' in kwargs: + weighted_targets = kwargs['weightedTargets'] + if weighted_targets is None: + raise TypeError("Missing 'weighted_targets' argument") + + _setter("weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") @@ -10747,9 +15827,32 @@ def __init__(__self__, *, port: int, virtual_node: str, weight: int): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + GetRouteSpecTcpRouteActionWeightedTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + virtual_node=virtual_node, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + virtual_node: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if virtual_node is None and 'virtualNode' in kwargs: + virtual_node = kwargs['virtualNode'] + if virtual_node is None: + raise TypeError("Missing 'virtual_node' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("port", port) + _setter("virtual_node", virtual_node) + _setter("weight", weight) @property @pulumi.getter @@ -10771,7 +15874,20 @@ def weight(self) -> int: class GetRouteSpecTcpRouteMatchResult(dict): def __init__(__self__, *, port: int): - pulumi.set(__self__, "port", port) + GetRouteSpecTcpRouteMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("port", port) @property @pulumi.getter @@ -10783,7 +15899,20 @@ def port(self) -> int: class GetRouteSpecTcpRouteTimeoutResult(dict): def __init__(__self__, *, idles: Sequence['outputs.GetRouteSpecTcpRouteTimeoutIdleResult']): - pulumi.set(__self__, "idles", idles) + GetRouteSpecTcpRouteTimeoutResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + idles=idles, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idles: Optional[Sequence['outputs.GetRouteSpecTcpRouteTimeoutIdleResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idles is None: + raise TypeError("Missing 'idles' argument") + + _setter("idles", idles) @property @pulumi.getter @@ -10796,8 +15925,25 @@ class GetRouteSpecTcpRouteTimeoutIdleResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetRouteSpecTcpRouteTimeoutIdleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -10816,9 +15962,32 @@ def __init__(__self__, *, backend_defaults: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultResult'], listeners: Sequence['outputs.GetVirtualGatewaySpecListenerResult'], loggings: Sequence['outputs.GetVirtualGatewaySpecLoggingResult']): - pulumi.set(__self__, "backend_defaults", backend_defaults) - pulumi.set(__self__, "listeners", listeners) - pulumi.set(__self__, "loggings", loggings) + GetVirtualGatewaySpecResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + backend_defaults=backend_defaults, + listeners=listeners, + loggings=loggings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backend_defaults: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultResult']] = None, + listeners: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerResult']] = None, + loggings: Optional[Sequence['outputs.GetVirtualGatewaySpecLoggingResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backend_defaults is None and 'backendDefaults' in kwargs: + backend_defaults = kwargs['backendDefaults'] + if backend_defaults is None: + raise TypeError("Missing 'backend_defaults' argument") + if listeners is None: + raise TypeError("Missing 'listeners' argument") + if loggings is None: + raise TypeError("Missing 'loggings' argument") + + _setter("backend_defaults", backend_defaults) + _setter("listeners", listeners) + _setter("loggings", loggings) @property @pulumi.getter(name="backendDefaults") @@ -10840,7 +16009,22 @@ def loggings(self) -> Sequence['outputs.GetVirtualGatewaySpecLoggingResult']: class GetVirtualGatewaySpecBackendDefaultResult(dict): def __init__(__self__, *, client_policies: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyResult']): - pulumi.set(__self__, "client_policies", client_policies) + GetVirtualGatewaySpecBackendDefaultResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_policies=client_policies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_policies: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_policies is None and 'clientPolicies' in kwargs: + client_policies = kwargs['clientPolicies'] + if client_policies is None: + raise TypeError("Missing 'client_policies' argument") + + _setter("client_policies", client_policies) @property @pulumi.getter(name="clientPolicies") @@ -10852,7 +16036,20 @@ def client_policies(self) -> Sequence['outputs.GetVirtualGatewaySpecBackendDefau class GetVirtualGatewaySpecBackendDefaultClientPolicyResult(dict): def __init__(__self__, *, tls: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlResult']): - pulumi.set(__self__, "tls", tls) + GetVirtualGatewaySpecBackendDefaultClientPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls is None: + raise TypeError("Missing 'tls' argument") + + _setter("tls", tls) @property @pulumi.getter @@ -10867,10 +16064,35 @@ def __init__(__self__, *, enforce: bool, ports: Sequence[int], validations: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationResult']): - pulumi.set(__self__, "certificates", certificates) - pulumi.set(__self__, "enforce", enforce) - pulumi.set(__self__, "ports", ports) - pulumi.set(__self__, "validations", validations) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificates=certificates, + enforce=enforce, + ports=ports, + validations=validations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificates: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateResult']] = None, + enforce: Optional[bool] = None, + ports: Optional[Sequence[int]] = None, + validations: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificates is None: + raise TypeError("Missing 'certificates' argument") + if enforce is None: + raise TypeError("Missing 'enforce' argument") + if ports is None: + raise TypeError("Missing 'ports' argument") + if validations is None: + raise TypeError("Missing 'validations' argument") + + _setter("certificates", certificates) + _setter("enforce", enforce) + _setter("ports", ports) + _setter("validations", validations) @property @pulumi.getter @@ -10898,8 +16120,25 @@ class GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateResult(dict): def __init__(__self__, *, files: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateFileResult'], sds: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateSdResult']): - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + files: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -10917,8 +16156,29 @@ class GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateFileResult(dic def __init__(__self__, *, certificate_chain: str, private_key: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -10935,7 +16195,22 @@ def private_key(self) -> str: class GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlCertificateSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -10948,8 +16223,27 @@ class GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationResult(dict): def __init__(__self__, *, subject_alternative_names: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameResult'], trusts: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustResult']): - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) - pulumi.set(__self__, "trusts", trusts) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + subject_alternative_names=subject_alternative_names, + trusts=trusts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subject_alternative_names: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameResult']] = None, + trusts: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if subject_alternative_names is None: + raise TypeError("Missing 'subject_alternative_names' argument") + if trusts is None: + raise TypeError("Missing 'trusts' argument") + + _setter("subject_alternative_names", subject_alternative_names) + _setter("trusts", trusts) @property @pulumi.getter(name="subjectAlternativeNames") @@ -10966,7 +16260,20 @@ def trusts(self) -> Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientP class GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameResult(dict): def __init__(__self__, *, matches: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameMatchResult']): - pulumi.set(__self__, "matches", matches) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + matches=matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matches: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameMatchResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matches is None: + raise TypeError("Missing 'matches' argument") + + _setter("matches", matches) @property @pulumi.getter @@ -10978,7 +16285,20 @@ def matches(self) -> Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClient class GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameMatchResult(dict): def __init__(__self__, *, exacts: Sequence[str]): - pulumi.set(__self__, "exacts", exacts) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -10992,9 +16312,30 @@ def __init__(__self__, *, acms: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustAcmResult'], files: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustFileResult'], sds: Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustSdResult']): - pulumi.set(__self__, "acms", acms) - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + acms=acms, + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acms: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustAcmResult']] = None, + files: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acms is None: + raise TypeError("Missing 'acms' argument") + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("acms", acms) + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -11016,7 +16357,22 @@ def sds(self) -> Sequence['outputs.GetVirtualGatewaySpecBackendDefaultClientPoli class GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustAcmResult(dict): def __init__(__self__, *, certificate_authority_arns: Sequence[str]): - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustAcmResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is None: + raise TypeError("Missing 'certificate_authority_arns' argument") + + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -11028,7 +16384,22 @@ def certificate_authority_arns(self) -> Sequence[str]: class GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustFileResult(dict): def __init__(__self__, *, certificate_chain: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -11040,7 +16411,22 @@ def certificate_chain(self) -> str: class GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualGatewaySpecBackendDefaultClientPolicyTlValidationTrustSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -11055,10 +16441,41 @@ def __init__(__self__, *, health_checks: Sequence['outputs.GetVirtualGatewaySpecListenerHealthCheckResult'], port_mappings: Sequence['outputs.GetVirtualGatewaySpecListenerPortMappingResult'], tls: Sequence['outputs.GetVirtualGatewaySpecListenerTlResult']): - pulumi.set(__self__, "connection_pools", connection_pools) - pulumi.set(__self__, "health_checks", health_checks) - pulumi.set(__self__, "port_mappings", port_mappings) - pulumi.set(__self__, "tls", tls) + GetVirtualGatewaySpecListenerResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_pools=connection_pools, + health_checks=health_checks, + port_mappings=port_mappings, + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_pools: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerConnectionPoolResult']] = None, + health_checks: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerHealthCheckResult']] = None, + port_mappings: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerPortMappingResult']] = None, + tls: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_pools is None and 'connectionPools' in kwargs: + connection_pools = kwargs['connectionPools'] + if connection_pools is None: + raise TypeError("Missing 'connection_pools' argument") + if health_checks is None and 'healthChecks' in kwargs: + health_checks = kwargs['healthChecks'] + if health_checks is None: + raise TypeError("Missing 'health_checks' argument") + if port_mappings is None and 'portMappings' in kwargs: + port_mappings = kwargs['portMappings'] + if port_mappings is None: + raise TypeError("Missing 'port_mappings' argument") + if tls is None: + raise TypeError("Missing 'tls' argument") + + _setter("connection_pools", connection_pools) + _setter("health_checks", health_checks) + _setter("port_mappings", port_mappings) + _setter("tls", tls) @property @pulumi.getter(name="connectionPools") @@ -11087,9 +16504,30 @@ def __init__(__self__, *, grpcs: Sequence['outputs.GetVirtualGatewaySpecListenerConnectionPoolGrpcResult'], http2s: Sequence['outputs.GetVirtualGatewaySpecListenerConnectionPoolHttp2Result'], https: Sequence['outputs.GetVirtualGatewaySpecListenerConnectionPoolHttpResult']): - pulumi.set(__self__, "grpcs", grpcs) - pulumi.set(__self__, "http2s", http2s) - pulumi.set(__self__, "https", https) + GetVirtualGatewaySpecListenerConnectionPoolResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpcs=grpcs, + http2s=http2s, + https=https, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpcs: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerConnectionPoolGrpcResult']] = None, + http2s: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerConnectionPoolHttp2Result']] = None, + https: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerConnectionPoolHttpResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpcs is None: + raise TypeError("Missing 'grpcs' argument") + if http2s is None: + raise TypeError("Missing 'http2s' argument") + if https is None: + raise TypeError("Missing 'https' argument") + + _setter("grpcs", grpcs) + _setter("http2s", http2s) + _setter("https", https) @property @pulumi.getter @@ -11111,7 +16549,22 @@ def https(self) -> Sequence['outputs.GetVirtualGatewaySpecListenerConnectionPool class GetVirtualGatewaySpecListenerConnectionPoolGrpcResult(dict): def __init__(__self__, *, max_requests: int): - pulumi.set(__self__, "max_requests", max_requests) + GetVirtualGatewaySpecListenerConnectionPoolGrpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -11123,7 +16576,22 @@ def max_requests(self) -> int: class GetVirtualGatewaySpecListenerConnectionPoolHttp2Result(dict): def __init__(__self__, *, max_requests: int): - pulumi.set(__self__, "max_requests", max_requests) + GetVirtualGatewaySpecListenerConnectionPoolHttp2Result._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -11136,8 +16604,29 @@ class GetVirtualGatewaySpecListenerConnectionPoolHttpResult(dict): def __init__(__self__, *, max_connections: int, max_pending_requests: int): - pulumi.set(__self__, "max_connections", max_connections) - pulumi.set(__self__, "max_pending_requests", max_pending_requests) + GetVirtualGatewaySpecListenerConnectionPoolHttpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_connections=max_connections, + max_pending_requests=max_pending_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_connections: Optional[int] = None, + max_pending_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_connections is None and 'maxConnections' in kwargs: + max_connections = kwargs['maxConnections'] + if max_connections is None: + raise TypeError("Missing 'max_connections' argument") + if max_pending_requests is None and 'maxPendingRequests' in kwargs: + max_pending_requests = kwargs['maxPendingRequests'] + if max_pending_requests is None: + raise TypeError("Missing 'max_pending_requests' argument") + + _setter("max_connections", max_connections) + _setter("max_pending_requests", max_pending_requests) @property @pulumi.getter(name="maxConnections") @@ -11160,13 +16649,58 @@ def __init__(__self__, *, protocol: str, timeout_millis: int, unhealthy_threshold: int): - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval_millis", interval_millis) - pulumi.set(__self__, "path", path) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "timeout_millis", timeout_millis) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + GetVirtualGatewaySpecListenerHealthCheckResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval_millis=interval_millis, + path=path, + port=port, + protocol=protocol, + timeout_millis=timeout_millis, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[int] = None, + interval_millis: Optional[int] = None, + path: Optional[str] = None, + port: Optional[int] = None, + protocol: Optional[str] = None, + timeout_millis: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval_millis is None and 'intervalMillis' in kwargs: + interval_millis = kwargs['intervalMillis'] + if interval_millis is None: + raise TypeError("Missing 'interval_millis' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if timeout_millis is None and 'timeoutMillis' in kwargs: + timeout_millis = kwargs['timeoutMillis'] + if timeout_millis is None: + raise TypeError("Missing 'timeout_millis' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("healthy_threshold", healthy_threshold) + _setter("interval_millis", interval_millis) + _setter("path", path) + _setter("port", port) + _setter("protocol", protocol) + _setter("timeout_millis", timeout_millis) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter(name="healthyThreshold") @@ -11209,8 +16743,25 @@ class GetVirtualGatewaySpecListenerPortMappingResult(dict): def __init__(__self__, *, port: int, protocol: str): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) + GetVirtualGatewaySpecListenerPortMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + + _setter("port", port) + _setter("protocol", protocol) @property @pulumi.getter @@ -11229,9 +16780,30 @@ def __init__(__self__, *, certificates: Sequence['outputs.GetVirtualGatewaySpecListenerTlCertificateResult'], mode: str, validations: Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationResult']): - pulumi.set(__self__, "certificates", certificates) - pulumi.set(__self__, "mode", mode) - pulumi.set(__self__, "validations", validations) + GetVirtualGatewaySpecListenerTlResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificates=certificates, + mode=mode, + validations=validations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificates: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlCertificateResult']] = None, + mode: Optional[str] = None, + validations: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificates is None: + raise TypeError("Missing 'certificates' argument") + if mode is None: + raise TypeError("Missing 'mode' argument") + if validations is None: + raise TypeError("Missing 'validations' argument") + + _setter("certificates", certificates) + _setter("mode", mode) + _setter("validations", validations) @property @pulumi.getter @@ -11255,9 +16827,30 @@ def __init__(__self__, *, acms: Sequence['outputs.GetVirtualGatewaySpecListenerTlCertificateAcmResult'], files: Sequence['outputs.GetVirtualGatewaySpecListenerTlCertificateFileResult'], sds: Sequence['outputs.GetVirtualGatewaySpecListenerTlCertificateSdResult']): - pulumi.set(__self__, "acms", acms) - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualGatewaySpecListenerTlCertificateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + acms=acms, + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acms: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlCertificateAcmResult']] = None, + files: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlCertificateFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlCertificateSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acms is None: + raise TypeError("Missing 'acms' argument") + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("acms", acms) + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -11279,7 +16872,22 @@ def sds(self) -> Sequence['outputs.GetVirtualGatewaySpecListenerTlCertificateSdR class GetVirtualGatewaySpecListenerTlCertificateAcmResult(dict): def __init__(__self__, *, certificate_arn: str): - pulumi.set(__self__, "certificate_arn", certificate_arn) + GetVirtualGatewaySpecListenerTlCertificateAcmResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + + _setter("certificate_arn", certificate_arn) @property @pulumi.getter(name="certificateArn") @@ -11292,8 +16900,29 @@ class GetVirtualGatewaySpecListenerTlCertificateFileResult(dict): def __init__(__self__, *, certificate_chain: str, private_key: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + GetVirtualGatewaySpecListenerTlCertificateFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -11310,7 +16939,22 @@ def private_key(self) -> str: class GetVirtualGatewaySpecListenerTlCertificateSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualGatewaySpecListenerTlCertificateSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -11323,8 +16967,27 @@ class GetVirtualGatewaySpecListenerTlValidationResult(dict): def __init__(__self__, *, subject_alternative_names: Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationSubjectAlternativeNameResult'], trusts: Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationTrustResult']): - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) - pulumi.set(__self__, "trusts", trusts) + GetVirtualGatewaySpecListenerTlValidationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + subject_alternative_names=subject_alternative_names, + trusts=trusts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subject_alternative_names: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationSubjectAlternativeNameResult']] = None, + trusts: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationTrustResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if subject_alternative_names is None: + raise TypeError("Missing 'subject_alternative_names' argument") + if trusts is None: + raise TypeError("Missing 'trusts' argument") + + _setter("subject_alternative_names", subject_alternative_names) + _setter("trusts", trusts) @property @pulumi.getter(name="subjectAlternativeNames") @@ -11341,7 +17004,20 @@ def trusts(self) -> Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationT class GetVirtualGatewaySpecListenerTlValidationSubjectAlternativeNameResult(dict): def __init__(__self__, *, matches: Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationSubjectAlternativeNameMatchResult']): - pulumi.set(__self__, "matches", matches) + GetVirtualGatewaySpecListenerTlValidationSubjectAlternativeNameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + matches=matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matches: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationSubjectAlternativeNameMatchResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matches is None: + raise TypeError("Missing 'matches' argument") + + _setter("matches", matches) @property @pulumi.getter @@ -11353,7 +17029,20 @@ def matches(self) -> Sequence['outputs.GetVirtualGatewaySpecListenerTlValidation class GetVirtualGatewaySpecListenerTlValidationSubjectAlternativeNameMatchResult(dict): def __init__(__self__, *, exacts: Sequence[str]): - pulumi.set(__self__, "exacts", exacts) + GetVirtualGatewaySpecListenerTlValidationSubjectAlternativeNameMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -11366,8 +17055,25 @@ class GetVirtualGatewaySpecListenerTlValidationTrustResult(dict): def __init__(__self__, *, files: Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationTrustFileResult'], sds: Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationTrustSdResult']): - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualGatewaySpecListenerTlValidationTrustResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + files: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationTrustFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationTrustSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -11384,7 +17090,22 @@ def sds(self) -> Sequence['outputs.GetVirtualGatewaySpecListenerTlValidationTrus class GetVirtualGatewaySpecListenerTlValidationTrustFileResult(dict): def __init__(__self__, *, certificate_chain: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) + GetVirtualGatewaySpecListenerTlValidationTrustFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -11396,7 +17117,22 @@ def certificate_chain(self) -> str: class GetVirtualGatewaySpecListenerTlValidationTrustSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualGatewaySpecListenerTlValidationTrustSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -11408,7 +17144,22 @@ def secret_name(self) -> str: class GetVirtualGatewaySpecLoggingResult(dict): def __init__(__self__, *, access_logs: Sequence['outputs.GetVirtualGatewaySpecLoggingAccessLogResult']): - pulumi.set(__self__, "access_logs", access_logs) + GetVirtualGatewaySpecLoggingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_logs=access_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_logs: Optional[Sequence['outputs.GetVirtualGatewaySpecLoggingAccessLogResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if access_logs is None: + raise TypeError("Missing 'access_logs' argument") + + _setter("access_logs", access_logs) @property @pulumi.getter(name="accessLogs") @@ -11420,7 +17171,20 @@ def access_logs(self) -> Sequence['outputs.GetVirtualGatewaySpecLoggingAccessLog class GetVirtualGatewaySpecLoggingAccessLogResult(dict): def __init__(__self__, *, files: Sequence['outputs.GetVirtualGatewaySpecLoggingAccessLogFileResult']): - pulumi.set(__self__, "files", files) + GetVirtualGatewaySpecLoggingAccessLogResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + files=files, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + files: Optional[Sequence['outputs.GetVirtualGatewaySpecLoggingAccessLogFileResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if files is None: + raise TypeError("Missing 'files' argument") + + _setter("files", files) @property @pulumi.getter @@ -11433,8 +17197,25 @@ class GetVirtualGatewaySpecLoggingAccessLogFileResult(dict): def __init__(__self__, *, formats: Sequence['outputs.GetVirtualGatewaySpecLoggingAccessLogFileFormatResult'], path: str): - pulumi.set(__self__, "formats", formats) - pulumi.set(__self__, "path", path) + GetVirtualGatewaySpecLoggingAccessLogFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + formats=formats, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + formats: Optional[Sequence['outputs.GetVirtualGatewaySpecLoggingAccessLogFileFormatResult']] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if formats is None: + raise TypeError("Missing 'formats' argument") + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("formats", formats) + _setter("path", path) @property @pulumi.getter @@ -11452,8 +17233,25 @@ class GetVirtualGatewaySpecLoggingAccessLogFileFormatResult(dict): def __init__(__self__, *, jsons: Sequence['outputs.GetVirtualGatewaySpecLoggingAccessLogFileFormatJsonResult'], text: str): - pulumi.set(__self__, "jsons", jsons) - pulumi.set(__self__, "text", text) + GetVirtualGatewaySpecLoggingAccessLogFileFormatResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + jsons=jsons, + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jsons: Optional[Sequence['outputs.GetVirtualGatewaySpecLoggingAccessLogFileFormatJsonResult']] = None, + text: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jsons is None: + raise TypeError("Missing 'jsons' argument") + if text is None: + raise TypeError("Missing 'text' argument") + + _setter("jsons", jsons) + _setter("text", text) @property @pulumi.getter @@ -11471,8 +17269,25 @@ class GetVirtualGatewaySpecLoggingAccessLogFileFormatJsonResult(dict): def __init__(__self__, *, key: str, value: str): - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + GetVirtualGatewaySpecLoggingAccessLogFileFormatJsonResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -11493,11 +17308,44 @@ def __init__(__self__, *, listeners: Sequence['outputs.GetVirtualNodeSpecListenerResult'], loggings: Sequence['outputs.GetVirtualNodeSpecLoggingResult'], service_discoveries: Sequence['outputs.GetVirtualNodeSpecServiceDiscoveryResult']): - pulumi.set(__self__, "backend_defaults", backend_defaults) - pulumi.set(__self__, "backends", backends) - pulumi.set(__self__, "listeners", listeners) - pulumi.set(__self__, "loggings", loggings) - pulumi.set(__self__, "service_discoveries", service_discoveries) + GetVirtualNodeSpecResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + backend_defaults=backend_defaults, + backends=backends, + listeners=listeners, + loggings=loggings, + service_discoveries=service_discoveries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backend_defaults: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultResult']] = None, + backends: Optional[Sequence['outputs.GetVirtualNodeSpecBackendResult']] = None, + listeners: Optional[Sequence['outputs.GetVirtualNodeSpecListenerResult']] = None, + loggings: Optional[Sequence['outputs.GetVirtualNodeSpecLoggingResult']] = None, + service_discoveries: Optional[Sequence['outputs.GetVirtualNodeSpecServiceDiscoveryResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backend_defaults is None and 'backendDefaults' in kwargs: + backend_defaults = kwargs['backendDefaults'] + if backend_defaults is None: + raise TypeError("Missing 'backend_defaults' argument") + if backends is None: + raise TypeError("Missing 'backends' argument") + if listeners is None: + raise TypeError("Missing 'listeners' argument") + if loggings is None: + raise TypeError("Missing 'loggings' argument") + if service_discoveries is None and 'serviceDiscoveries' in kwargs: + service_discoveries = kwargs['serviceDiscoveries'] + if service_discoveries is None: + raise TypeError("Missing 'service_discoveries' argument") + + _setter("backend_defaults", backend_defaults) + _setter("backends", backends) + _setter("listeners", listeners) + _setter("loggings", loggings) + _setter("service_discoveries", service_discoveries) @property @pulumi.getter(name="backendDefaults") @@ -11529,7 +17377,22 @@ def service_discoveries(self) -> Sequence['outputs.GetVirtualNodeSpecServiceDisc class GetVirtualNodeSpecBackendResult(dict): def __init__(__self__, *, virtual_services: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceResult']): - pulumi.set(__self__, "virtual_services", virtual_services) + GetVirtualNodeSpecBackendResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_services=virtual_services, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_services: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_services is None and 'virtualServices' in kwargs: + virtual_services = kwargs['virtualServices'] + if virtual_services is None: + raise TypeError("Missing 'virtual_services' argument") + + _setter("virtual_services", virtual_services) @property @pulumi.getter(name="virtualServices") @@ -11541,7 +17404,22 @@ def virtual_services(self) -> Sequence['outputs.GetVirtualNodeSpecBackendVirtual class GetVirtualNodeSpecBackendDefaultResult(dict): def __init__(__self__, *, client_policies: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyResult']): - pulumi.set(__self__, "client_policies", client_policies) + GetVirtualNodeSpecBackendDefaultResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_policies=client_policies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_policies: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_policies is None and 'clientPolicies' in kwargs: + client_policies = kwargs['clientPolicies'] + if client_policies is None: + raise TypeError("Missing 'client_policies' argument") + + _setter("client_policies", client_policies) @property @pulumi.getter(name="clientPolicies") @@ -11553,7 +17431,20 @@ def client_policies(self) -> Sequence['outputs.GetVirtualNodeSpecBackendDefaultC class GetVirtualNodeSpecBackendDefaultClientPolicyResult(dict): def __init__(__self__, *, tls: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlResult']): - pulumi.set(__self__, "tls", tls) + GetVirtualNodeSpecBackendDefaultClientPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls is None: + raise TypeError("Missing 'tls' argument") + + _setter("tls", tls) @property @pulumi.getter @@ -11568,10 +17459,35 @@ def __init__(__self__, *, enforce: bool, ports: Sequence[int], validations: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationResult']): - pulumi.set(__self__, "certificates", certificates) - pulumi.set(__self__, "enforce", enforce) - pulumi.set(__self__, "ports", ports) - pulumi.set(__self__, "validations", validations) + GetVirtualNodeSpecBackendDefaultClientPolicyTlResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificates=certificates, + enforce=enforce, + ports=ports, + validations=validations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificates: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateResult']] = None, + enforce: Optional[bool] = None, + ports: Optional[Sequence[int]] = None, + validations: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificates is None: + raise TypeError("Missing 'certificates' argument") + if enforce is None: + raise TypeError("Missing 'enforce' argument") + if ports is None: + raise TypeError("Missing 'ports' argument") + if validations is None: + raise TypeError("Missing 'validations' argument") + + _setter("certificates", certificates) + _setter("enforce", enforce) + _setter("ports", ports) + _setter("validations", validations) @property @pulumi.getter @@ -11599,8 +17515,25 @@ class GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateResult(dict): def __init__(__self__, *, files: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateFileResult'], sds: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateSdResult']): - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + files: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -11618,8 +17551,29 @@ class GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateFileResult(dict): def __init__(__self__, *, certificate_chain: str, private_key: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -11636,7 +17590,22 @@ def private_key(self) -> str: class GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualNodeSpecBackendDefaultClientPolicyTlCertificateSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -11649,8 +17618,27 @@ class GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationResult(dict): def __init__(__self__, *, subject_alternative_names: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameResult'], trusts: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustResult']): - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) - pulumi.set(__self__, "trusts", trusts) + GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + subject_alternative_names=subject_alternative_names, + trusts=trusts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subject_alternative_names: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameResult']] = None, + trusts: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if subject_alternative_names is None: + raise TypeError("Missing 'subject_alternative_names' argument") + if trusts is None: + raise TypeError("Missing 'trusts' argument") + + _setter("subject_alternative_names", subject_alternative_names) + _setter("trusts", trusts) @property @pulumi.getter(name="subjectAlternativeNames") @@ -11667,7 +17655,20 @@ def trusts(self) -> Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPoli class GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameResult(dict): def __init__(__self__, *, matches: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameMatchResult']): - pulumi.set(__self__, "matches", matches) + GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + matches=matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matches: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameMatchResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matches is None: + raise TypeError("Missing 'matches' argument") + + _setter("matches", matches) @property @pulumi.getter @@ -11679,7 +17680,20 @@ def matches(self) -> Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPol class GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameMatchResult(dict): def __init__(__self__, *, exacts: Sequence[str]): - pulumi.set(__self__, "exacts", exacts) + GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationSubjectAlternativeNameMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -11693,9 +17707,30 @@ def __init__(__self__, *, acms: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustAcmResult'], files: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustFileResult'], sds: Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustSdResult']): - pulumi.set(__self__, "acms", acms) - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + acms=acms, + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acms: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustAcmResult']] = None, + files: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acms is None: + raise TypeError("Missing 'acms' argument") + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("acms", acms) + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -11717,7 +17752,22 @@ def sds(self) -> Sequence['outputs.GetVirtualNodeSpecBackendDefaultClientPolicyT class GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustAcmResult(dict): def __init__(__self__, *, certificate_authority_arns: Sequence[str]): - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustAcmResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is None: + raise TypeError("Missing 'certificate_authority_arns' argument") + + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -11729,7 +17779,22 @@ def certificate_authority_arns(self) -> Sequence[str]: class GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustFileResult(dict): def __init__(__self__, *, certificate_chain: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) + GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -11741,7 +17806,22 @@ def certificate_chain(self) -> str: class GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualNodeSpecBackendDefaultClientPolicyTlValidationTrustSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -11754,8 +17834,29 @@ class GetVirtualNodeSpecBackendVirtualServiceResult(dict): def __init__(__self__, *, client_policies: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyResult'], virtual_service_name: str): - pulumi.set(__self__, "client_policies", client_policies) - pulumi.set(__self__, "virtual_service_name", virtual_service_name) + GetVirtualNodeSpecBackendVirtualServiceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_policies=client_policies, + virtual_service_name=virtual_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_policies: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyResult']] = None, + virtual_service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_policies is None and 'clientPolicies' in kwargs: + client_policies = kwargs['clientPolicies'] + if client_policies is None: + raise TypeError("Missing 'client_policies' argument") + if virtual_service_name is None and 'virtualServiceName' in kwargs: + virtual_service_name = kwargs['virtualServiceName'] + if virtual_service_name is None: + raise TypeError("Missing 'virtual_service_name' argument") + + _setter("client_policies", client_policies) + _setter("virtual_service_name", virtual_service_name) @property @pulumi.getter(name="clientPolicies") @@ -11772,7 +17873,20 @@ def virtual_service_name(self) -> str: class GetVirtualNodeSpecBackendVirtualServiceClientPolicyResult(dict): def __init__(__self__, *, tls: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlResult']): - pulumi.set(__self__, "tls", tls) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls is None: + raise TypeError("Missing 'tls' argument") + + _setter("tls", tls) @property @pulumi.getter @@ -11787,10 +17901,35 @@ def __init__(__self__, *, enforce: bool, ports: Sequence[int], validations: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationResult']): - pulumi.set(__self__, "certificates", certificates) - pulumi.set(__self__, "enforce", enforce) - pulumi.set(__self__, "ports", ports) - pulumi.set(__self__, "validations", validations) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificates=certificates, + enforce=enforce, + ports=ports, + validations=validations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificates: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateResult']] = None, + enforce: Optional[bool] = None, + ports: Optional[Sequence[int]] = None, + validations: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificates is None: + raise TypeError("Missing 'certificates' argument") + if enforce is None: + raise TypeError("Missing 'enforce' argument") + if ports is None: + raise TypeError("Missing 'ports' argument") + if validations is None: + raise TypeError("Missing 'validations' argument") + + _setter("certificates", certificates) + _setter("enforce", enforce) + _setter("ports", ports) + _setter("validations", validations) @property @pulumi.getter @@ -11818,8 +17957,25 @@ class GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateResult(dic def __init__(__self__, *, files: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateFileResult'], sds: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateSdResult']): - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + files: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -11837,8 +17993,29 @@ class GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateFileResult def __init__(__self__, *, certificate_chain: str, private_key: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -11855,7 +18032,22 @@ def private_key(self) -> str: class GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlCertificateSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -11868,8 +18060,27 @@ class GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationResult(dict def __init__(__self__, *, subject_alternative_names: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationSubjectAlternativeNameResult'], trusts: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustResult']): - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) - pulumi.set(__self__, "trusts", trusts) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + subject_alternative_names=subject_alternative_names, + trusts=trusts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subject_alternative_names: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationSubjectAlternativeNameResult']] = None, + trusts: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if subject_alternative_names is None: + raise TypeError("Missing 'subject_alternative_names' argument") + if trusts is None: + raise TypeError("Missing 'trusts' argument") + + _setter("subject_alternative_names", subject_alternative_names) + _setter("trusts", trusts) @property @pulumi.getter(name="subjectAlternativeNames") @@ -11886,7 +18097,20 @@ def trusts(self) -> Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceCli class GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationSubjectAlternativeNameResult(dict): def __init__(__self__, *, matches: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationSubjectAlternativeNameMatchResult']): - pulumi.set(__self__, "matches", matches) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationSubjectAlternativeNameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + matches=matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matches: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationSubjectAlternativeNameMatchResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matches is None: + raise TypeError("Missing 'matches' argument") + + _setter("matches", matches) @property @pulumi.getter @@ -11898,7 +18122,20 @@ def matches(self) -> Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceCl class GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationSubjectAlternativeNameMatchResult(dict): def __init__(__self__, *, exacts: Sequence[str]): - pulumi.set(__self__, "exacts", exacts) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationSubjectAlternativeNameMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -11912,9 +18149,30 @@ def __init__(__self__, *, acms: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustAcmResult'], files: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustFileResult'], sds: Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustSdResult']): - pulumi.set(__self__, "acms", acms) - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + acms=acms, + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acms: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustAcmResult']] = None, + files: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acms is None: + raise TypeError("Missing 'acms' argument") + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("acms", acms) + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -11936,7 +18194,22 @@ def sds(self) -> Sequence['outputs.GetVirtualNodeSpecBackendVirtualServiceClient class GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustAcmResult(dict): def __init__(__self__, *, certificate_authority_arns: Sequence[str]): - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustAcmResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is None: + raise TypeError("Missing 'certificate_authority_arns' argument") + + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -11948,7 +18221,22 @@ def certificate_authority_arns(self) -> Sequence[str]: class GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustFileResult(dict): def __init__(__self__, *, certificate_chain: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -11960,7 +18248,22 @@ def certificate_chain(self) -> str: class GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualNodeSpecBackendVirtualServiceClientPolicyTlValidationTrustSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -11977,12 +18280,53 @@ def __init__(__self__, *, port_mappings: Sequence['outputs.GetVirtualNodeSpecListenerPortMappingResult'], timeouts: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutResult'], tls: Sequence['outputs.GetVirtualNodeSpecListenerTlResult']): - pulumi.set(__self__, "connection_pools", connection_pools) - pulumi.set(__self__, "health_checks", health_checks) - pulumi.set(__self__, "outlier_detections", outlier_detections) - pulumi.set(__self__, "port_mappings", port_mappings) - pulumi.set(__self__, "timeouts", timeouts) - pulumi.set(__self__, "tls", tls) + GetVirtualNodeSpecListenerResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_pools=connection_pools, + health_checks=health_checks, + outlier_detections=outlier_detections, + port_mappings=port_mappings, + timeouts=timeouts, + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_pools: Optional[Sequence['outputs.GetVirtualNodeSpecListenerConnectionPoolResult']] = None, + health_checks: Optional[Sequence['outputs.GetVirtualNodeSpecListenerHealthCheckResult']] = None, + outlier_detections: Optional[Sequence['outputs.GetVirtualNodeSpecListenerOutlierDetectionResult']] = None, + port_mappings: Optional[Sequence['outputs.GetVirtualNodeSpecListenerPortMappingResult']] = None, + timeouts: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutResult']] = None, + tls: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_pools is None and 'connectionPools' in kwargs: + connection_pools = kwargs['connectionPools'] + if connection_pools is None: + raise TypeError("Missing 'connection_pools' argument") + if health_checks is None and 'healthChecks' in kwargs: + health_checks = kwargs['healthChecks'] + if health_checks is None: + raise TypeError("Missing 'health_checks' argument") + if outlier_detections is None and 'outlierDetections' in kwargs: + outlier_detections = kwargs['outlierDetections'] + if outlier_detections is None: + raise TypeError("Missing 'outlier_detections' argument") + if port_mappings is None and 'portMappings' in kwargs: + port_mappings = kwargs['portMappings'] + if port_mappings is None: + raise TypeError("Missing 'port_mappings' argument") + if timeouts is None: + raise TypeError("Missing 'timeouts' argument") + if tls is None: + raise TypeError("Missing 'tls' argument") + + _setter("connection_pools", connection_pools) + _setter("health_checks", health_checks) + _setter("outlier_detections", outlier_detections) + _setter("port_mappings", port_mappings) + _setter("timeouts", timeouts) + _setter("tls", tls) @property @pulumi.getter(name="connectionPools") @@ -12022,10 +18366,35 @@ def __init__(__self__, *, http2s: Sequence['outputs.GetVirtualNodeSpecListenerConnectionPoolHttp2Result'], https: Sequence['outputs.GetVirtualNodeSpecListenerConnectionPoolHttpResult'], tcps: Sequence['outputs.GetVirtualNodeSpecListenerConnectionPoolTcpResult']): - pulumi.set(__self__, "grpcs", grpcs) - pulumi.set(__self__, "http2s", http2s) - pulumi.set(__self__, "https", https) - pulumi.set(__self__, "tcps", tcps) + GetVirtualNodeSpecListenerConnectionPoolResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpcs=grpcs, + http2s=http2s, + https=https, + tcps=tcps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpcs: Optional[Sequence['outputs.GetVirtualNodeSpecListenerConnectionPoolGrpcResult']] = None, + http2s: Optional[Sequence['outputs.GetVirtualNodeSpecListenerConnectionPoolHttp2Result']] = None, + https: Optional[Sequence['outputs.GetVirtualNodeSpecListenerConnectionPoolHttpResult']] = None, + tcps: Optional[Sequence['outputs.GetVirtualNodeSpecListenerConnectionPoolTcpResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpcs is None: + raise TypeError("Missing 'grpcs' argument") + if http2s is None: + raise TypeError("Missing 'http2s' argument") + if https is None: + raise TypeError("Missing 'https' argument") + if tcps is None: + raise TypeError("Missing 'tcps' argument") + + _setter("grpcs", grpcs) + _setter("http2s", http2s) + _setter("https", https) + _setter("tcps", tcps) @property @pulumi.getter @@ -12052,7 +18421,22 @@ def tcps(self) -> Sequence['outputs.GetVirtualNodeSpecListenerConnectionPoolTcpR class GetVirtualNodeSpecListenerConnectionPoolGrpcResult(dict): def __init__(__self__, *, max_requests: int): - pulumi.set(__self__, "max_requests", max_requests) + GetVirtualNodeSpecListenerConnectionPoolGrpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -12064,7 +18448,22 @@ def max_requests(self) -> int: class GetVirtualNodeSpecListenerConnectionPoolHttp2Result(dict): def __init__(__self__, *, max_requests: int): - pulumi.set(__self__, "max_requests", max_requests) + GetVirtualNodeSpecListenerConnectionPoolHttp2Result._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_requests=max_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_requests is None and 'maxRequests' in kwargs: + max_requests = kwargs['maxRequests'] + if max_requests is None: + raise TypeError("Missing 'max_requests' argument") + + _setter("max_requests", max_requests) @property @pulumi.getter(name="maxRequests") @@ -12077,8 +18476,29 @@ class GetVirtualNodeSpecListenerConnectionPoolHttpResult(dict): def __init__(__self__, *, max_connections: int, max_pending_requests: int): - pulumi.set(__self__, "max_connections", max_connections) - pulumi.set(__self__, "max_pending_requests", max_pending_requests) + GetVirtualNodeSpecListenerConnectionPoolHttpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_connections=max_connections, + max_pending_requests=max_pending_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_connections: Optional[int] = None, + max_pending_requests: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_connections is None and 'maxConnections' in kwargs: + max_connections = kwargs['maxConnections'] + if max_connections is None: + raise TypeError("Missing 'max_connections' argument") + if max_pending_requests is None and 'maxPendingRequests' in kwargs: + max_pending_requests = kwargs['maxPendingRequests'] + if max_pending_requests is None: + raise TypeError("Missing 'max_pending_requests' argument") + + _setter("max_connections", max_connections) + _setter("max_pending_requests", max_pending_requests) @property @pulumi.getter(name="maxConnections") @@ -12095,7 +18515,22 @@ def max_pending_requests(self) -> int: class GetVirtualNodeSpecListenerConnectionPoolTcpResult(dict): def __init__(__self__, *, max_connections: int): - pulumi.set(__self__, "max_connections", max_connections) + GetVirtualNodeSpecListenerConnectionPoolTcpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_connections=max_connections, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_connections: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_connections is None and 'maxConnections' in kwargs: + max_connections = kwargs['maxConnections'] + if max_connections is None: + raise TypeError("Missing 'max_connections' argument") + + _setter("max_connections", max_connections) @property @pulumi.getter(name="maxConnections") @@ -12113,13 +18548,58 @@ def __init__(__self__, *, protocol: str, timeout_millis: int, unhealthy_threshold: int): - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval_millis", interval_millis) - pulumi.set(__self__, "path", path) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "timeout_millis", timeout_millis) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + GetVirtualNodeSpecListenerHealthCheckResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval_millis=interval_millis, + path=path, + port=port, + protocol=protocol, + timeout_millis=timeout_millis, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[int] = None, + interval_millis: Optional[int] = None, + path: Optional[str] = None, + port: Optional[int] = None, + protocol: Optional[str] = None, + timeout_millis: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval_millis is None and 'intervalMillis' in kwargs: + interval_millis = kwargs['intervalMillis'] + if interval_millis is None: + raise TypeError("Missing 'interval_millis' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if timeout_millis is None and 'timeoutMillis' in kwargs: + timeout_millis = kwargs['timeoutMillis'] + if timeout_millis is None: + raise TypeError("Missing 'timeout_millis' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("healthy_threshold", healthy_threshold) + _setter("interval_millis", interval_millis) + _setter("path", path) + _setter("port", port) + _setter("protocol", protocol) + _setter("timeout_millis", timeout_millis) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter(name="healthyThreshold") @@ -12164,10 +18644,41 @@ def __init__(__self__, *, intervals: Sequence['outputs.GetVirtualNodeSpecListenerOutlierDetectionIntervalResult'], max_ejection_percent: int, max_server_errors: int): - pulumi.set(__self__, "base_ejection_durations", base_ejection_durations) - pulumi.set(__self__, "intervals", intervals) - pulumi.set(__self__, "max_ejection_percent", max_ejection_percent) - pulumi.set(__self__, "max_server_errors", max_server_errors) + GetVirtualNodeSpecListenerOutlierDetectionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + base_ejection_durations=base_ejection_durations, + intervals=intervals, + max_ejection_percent=max_ejection_percent, + max_server_errors=max_server_errors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + base_ejection_durations: Optional[Sequence['outputs.GetVirtualNodeSpecListenerOutlierDetectionBaseEjectionDurationResult']] = None, + intervals: Optional[Sequence['outputs.GetVirtualNodeSpecListenerOutlierDetectionIntervalResult']] = None, + max_ejection_percent: Optional[int] = None, + max_server_errors: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_ejection_durations is None and 'baseEjectionDurations' in kwargs: + base_ejection_durations = kwargs['baseEjectionDurations'] + if base_ejection_durations is None: + raise TypeError("Missing 'base_ejection_durations' argument") + if intervals is None: + raise TypeError("Missing 'intervals' argument") + if max_ejection_percent is None and 'maxEjectionPercent' in kwargs: + max_ejection_percent = kwargs['maxEjectionPercent'] + if max_ejection_percent is None: + raise TypeError("Missing 'max_ejection_percent' argument") + if max_server_errors is None and 'maxServerErrors' in kwargs: + max_server_errors = kwargs['maxServerErrors'] + if max_server_errors is None: + raise TypeError("Missing 'max_server_errors' argument") + + _setter("base_ejection_durations", base_ejection_durations) + _setter("intervals", intervals) + _setter("max_ejection_percent", max_ejection_percent) + _setter("max_server_errors", max_server_errors) @property @pulumi.getter(name="baseEjectionDurations") @@ -12195,8 +18706,25 @@ class GetVirtualNodeSpecListenerOutlierDetectionBaseEjectionDurationResult(dict) def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecListenerOutlierDetectionBaseEjectionDurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -12214,8 +18742,25 @@ class GetVirtualNodeSpecListenerOutlierDetectionIntervalResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecListenerOutlierDetectionIntervalResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -12233,8 +18778,25 @@ class GetVirtualNodeSpecListenerPortMappingResult(dict): def __init__(__self__, *, port: int, protocol: str): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) + GetVirtualNodeSpecListenerPortMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + + _setter("port", port) + _setter("protocol", protocol) @property @pulumi.getter @@ -12254,10 +18816,35 @@ def __init__(__self__, *, http2s: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttp2Result'], https: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttpResult'], tcps: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutTcpResult']): - pulumi.set(__self__, "grpcs", grpcs) - pulumi.set(__self__, "http2s", http2s) - pulumi.set(__self__, "https", https) - pulumi.set(__self__, "tcps", tcps) + GetVirtualNodeSpecListenerTimeoutResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + grpcs=grpcs, + http2s=http2s, + https=https, + tcps=tcps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grpcs: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutGrpcResult']] = None, + http2s: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttp2Result']] = None, + https: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttpResult']] = None, + tcps: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutTcpResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grpcs is None: + raise TypeError("Missing 'grpcs' argument") + if http2s is None: + raise TypeError("Missing 'http2s' argument") + if https is None: + raise TypeError("Missing 'https' argument") + if tcps is None: + raise TypeError("Missing 'tcps' argument") + + _setter("grpcs", grpcs) + _setter("http2s", http2s) + _setter("https", https) + _setter("tcps", tcps) @property @pulumi.getter @@ -12285,8 +18872,27 @@ class GetVirtualNodeSpecListenerTimeoutGrpcResult(dict): def __init__(__self__, *, idles: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutGrpcIdleResult'], per_requests: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutGrpcPerRequestResult']): - pulumi.set(__self__, "idles", idles) - pulumi.set(__self__, "per_requests", per_requests) + GetVirtualNodeSpecListenerTimeoutGrpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + idles=idles, + per_requests=per_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idles: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutGrpcIdleResult']] = None, + per_requests: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutGrpcPerRequestResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idles is None: + raise TypeError("Missing 'idles' argument") + if per_requests is None and 'perRequests' in kwargs: + per_requests = kwargs['perRequests'] + if per_requests is None: + raise TypeError("Missing 'per_requests' argument") + + _setter("idles", idles) + _setter("per_requests", per_requests) @property @pulumi.getter @@ -12304,8 +18910,25 @@ class GetVirtualNodeSpecListenerTimeoutGrpcIdleResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecListenerTimeoutGrpcIdleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -12323,8 +18946,25 @@ class GetVirtualNodeSpecListenerTimeoutGrpcPerRequestResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecListenerTimeoutGrpcPerRequestResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -12342,8 +18982,27 @@ class GetVirtualNodeSpecListenerTimeoutHttp2Result(dict): def __init__(__self__, *, idles: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttp2IdleResult'], per_requests: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttp2PerRequestResult']): - pulumi.set(__self__, "idles", idles) - pulumi.set(__self__, "per_requests", per_requests) + GetVirtualNodeSpecListenerTimeoutHttp2Result._configure( + lambda key, value: pulumi.set(__self__, key, value), + idles=idles, + per_requests=per_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idles: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttp2IdleResult']] = None, + per_requests: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttp2PerRequestResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idles is None: + raise TypeError("Missing 'idles' argument") + if per_requests is None and 'perRequests' in kwargs: + per_requests = kwargs['perRequests'] + if per_requests is None: + raise TypeError("Missing 'per_requests' argument") + + _setter("idles", idles) + _setter("per_requests", per_requests) @property @pulumi.getter @@ -12361,8 +19020,25 @@ class GetVirtualNodeSpecListenerTimeoutHttp2IdleResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecListenerTimeoutHttp2IdleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -12380,8 +19056,25 @@ class GetVirtualNodeSpecListenerTimeoutHttp2PerRequestResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecListenerTimeoutHttp2PerRequestResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -12399,8 +19092,27 @@ class GetVirtualNodeSpecListenerTimeoutHttpResult(dict): def __init__(__self__, *, idles: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttpIdleResult'], per_requests: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttpPerRequestResult']): - pulumi.set(__self__, "idles", idles) - pulumi.set(__self__, "per_requests", per_requests) + GetVirtualNodeSpecListenerTimeoutHttpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + idles=idles, + per_requests=per_requests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idles: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttpIdleResult']] = None, + per_requests: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutHttpPerRequestResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idles is None: + raise TypeError("Missing 'idles' argument") + if per_requests is None and 'perRequests' in kwargs: + per_requests = kwargs['perRequests'] + if per_requests is None: + raise TypeError("Missing 'per_requests' argument") + + _setter("idles", idles) + _setter("per_requests", per_requests) @property @pulumi.getter @@ -12418,8 +19130,25 @@ class GetVirtualNodeSpecListenerTimeoutHttpIdleResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecListenerTimeoutHttpIdleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -12437,8 +19166,25 @@ class GetVirtualNodeSpecListenerTimeoutHttpPerRequestResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecListenerTimeoutHttpPerRequestResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -12455,7 +19201,20 @@ def value(self) -> int: class GetVirtualNodeSpecListenerTimeoutTcpResult(dict): def __init__(__self__, *, idles: Sequence['outputs.GetVirtualNodeSpecListenerTimeoutTcpIdleResult']): - pulumi.set(__self__, "idles", idles) + GetVirtualNodeSpecListenerTimeoutTcpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + idles=idles, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idles: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTimeoutTcpIdleResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idles is None: + raise TypeError("Missing 'idles' argument") + + _setter("idles", idles) @property @pulumi.getter @@ -12468,8 +19227,25 @@ class GetVirtualNodeSpecListenerTimeoutTcpIdleResult(dict): def __init__(__self__, *, unit: str, value: int): - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecListenerTimeoutTcpIdleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -12488,9 +19264,30 @@ def __init__(__self__, *, certificates: Sequence['outputs.GetVirtualNodeSpecListenerTlCertificateResult'], mode: str, validations: Sequence['outputs.GetVirtualNodeSpecListenerTlValidationResult']): - pulumi.set(__self__, "certificates", certificates) - pulumi.set(__self__, "mode", mode) - pulumi.set(__self__, "validations", validations) + GetVirtualNodeSpecListenerTlResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificates=certificates, + mode=mode, + validations=validations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificates: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlCertificateResult']] = None, + mode: Optional[str] = None, + validations: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlValidationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificates is None: + raise TypeError("Missing 'certificates' argument") + if mode is None: + raise TypeError("Missing 'mode' argument") + if validations is None: + raise TypeError("Missing 'validations' argument") + + _setter("certificates", certificates) + _setter("mode", mode) + _setter("validations", validations) @property @pulumi.getter @@ -12514,9 +19311,30 @@ def __init__(__self__, *, acms: Sequence['outputs.GetVirtualNodeSpecListenerTlCertificateAcmResult'], files: Sequence['outputs.GetVirtualNodeSpecListenerTlCertificateFileResult'], sds: Sequence['outputs.GetVirtualNodeSpecListenerTlCertificateSdResult']): - pulumi.set(__self__, "acms", acms) - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualNodeSpecListenerTlCertificateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + acms=acms, + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acms: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlCertificateAcmResult']] = None, + files: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlCertificateFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlCertificateSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acms is None: + raise TypeError("Missing 'acms' argument") + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("acms", acms) + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -12538,7 +19356,22 @@ def sds(self) -> Sequence['outputs.GetVirtualNodeSpecListenerTlCertificateSdResu class GetVirtualNodeSpecListenerTlCertificateAcmResult(dict): def __init__(__self__, *, certificate_arn: str): - pulumi.set(__self__, "certificate_arn", certificate_arn) + GetVirtualNodeSpecListenerTlCertificateAcmResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + + _setter("certificate_arn", certificate_arn) @property @pulumi.getter(name="certificateArn") @@ -12551,8 +19384,29 @@ class GetVirtualNodeSpecListenerTlCertificateFileResult(dict): def __init__(__self__, *, certificate_chain: str, private_key: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) - pulumi.set(__self__, "private_key", private_key) + GetVirtualNodeSpecListenerTlCertificateFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + private_key=private_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + private_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate_chain", certificate_chain) + _setter("private_key", private_key) @property @pulumi.getter(name="certificateChain") @@ -12569,7 +19423,22 @@ def private_key(self) -> str: class GetVirtualNodeSpecListenerTlCertificateSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualNodeSpecListenerTlCertificateSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -12582,8 +19451,27 @@ class GetVirtualNodeSpecListenerTlValidationResult(dict): def __init__(__self__, *, subject_alternative_names: Sequence['outputs.GetVirtualNodeSpecListenerTlValidationSubjectAlternativeNameResult'], trusts: Sequence['outputs.GetVirtualNodeSpecListenerTlValidationTrustResult']): - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) - pulumi.set(__self__, "trusts", trusts) + GetVirtualNodeSpecListenerTlValidationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + subject_alternative_names=subject_alternative_names, + trusts=trusts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subject_alternative_names: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlValidationSubjectAlternativeNameResult']] = None, + trusts: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlValidationTrustResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if subject_alternative_names is None: + raise TypeError("Missing 'subject_alternative_names' argument") + if trusts is None: + raise TypeError("Missing 'trusts' argument") + + _setter("subject_alternative_names", subject_alternative_names) + _setter("trusts", trusts) @property @pulumi.getter(name="subjectAlternativeNames") @@ -12600,7 +19488,20 @@ def trusts(self) -> Sequence['outputs.GetVirtualNodeSpecListenerTlValidationTrus class GetVirtualNodeSpecListenerTlValidationSubjectAlternativeNameResult(dict): def __init__(__self__, *, matches: Sequence['outputs.GetVirtualNodeSpecListenerTlValidationSubjectAlternativeNameMatchResult']): - pulumi.set(__self__, "matches", matches) + GetVirtualNodeSpecListenerTlValidationSubjectAlternativeNameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + matches=matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matches: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlValidationSubjectAlternativeNameMatchResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matches is None: + raise TypeError("Missing 'matches' argument") + + _setter("matches", matches) @property @pulumi.getter @@ -12612,7 +19513,20 @@ def matches(self) -> Sequence['outputs.GetVirtualNodeSpecListenerTlValidationSub class GetVirtualNodeSpecListenerTlValidationSubjectAlternativeNameMatchResult(dict): def __init__(__self__, *, exacts: Sequence[str]): - pulumi.set(__self__, "exacts", exacts) + GetVirtualNodeSpecListenerTlValidationSubjectAlternativeNameMatchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + exacts=exacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exacts: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exacts is None: + raise TypeError("Missing 'exacts' argument") + + _setter("exacts", exacts) @property @pulumi.getter @@ -12625,8 +19539,25 @@ class GetVirtualNodeSpecListenerTlValidationTrustResult(dict): def __init__(__self__, *, files: Sequence['outputs.GetVirtualNodeSpecListenerTlValidationTrustFileResult'], sds: Sequence['outputs.GetVirtualNodeSpecListenerTlValidationTrustSdResult']): - pulumi.set(__self__, "files", files) - pulumi.set(__self__, "sds", sds) + GetVirtualNodeSpecListenerTlValidationTrustResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + files=files, + sds=sds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + files: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlValidationTrustFileResult']] = None, + sds: Optional[Sequence['outputs.GetVirtualNodeSpecListenerTlValidationTrustSdResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if files is None: + raise TypeError("Missing 'files' argument") + if sds is None: + raise TypeError("Missing 'sds' argument") + + _setter("files", files) + _setter("sds", sds) @property @pulumi.getter @@ -12643,7 +19574,22 @@ def sds(self) -> Sequence['outputs.GetVirtualNodeSpecListenerTlValidationTrustSd class GetVirtualNodeSpecListenerTlValidationTrustFileResult(dict): def __init__(__self__, *, certificate_chain: str): - pulumi.set(__self__, "certificate_chain", certificate_chain) + GetVirtualNodeSpecListenerTlValidationTrustFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_chain=certificate_chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_chain is None: + raise TypeError("Missing 'certificate_chain' argument") + + _setter("certificate_chain", certificate_chain) @property @pulumi.getter(name="certificateChain") @@ -12655,7 +19601,22 @@ def certificate_chain(self) -> str: class GetVirtualNodeSpecListenerTlValidationTrustSdResult(dict): def __init__(__self__, *, secret_name: str): - pulumi.set(__self__, "secret_name", secret_name) + GetVirtualNodeSpecListenerTlValidationTrustSdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_name=secret_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_name is None and 'secretName' in kwargs: + secret_name = kwargs['secretName'] + if secret_name is None: + raise TypeError("Missing 'secret_name' argument") + + _setter("secret_name", secret_name) @property @pulumi.getter(name="secretName") @@ -12667,7 +19628,22 @@ def secret_name(self) -> str: class GetVirtualNodeSpecLoggingResult(dict): def __init__(__self__, *, access_logs: Sequence['outputs.GetVirtualNodeSpecLoggingAccessLogResult']): - pulumi.set(__self__, "access_logs", access_logs) + GetVirtualNodeSpecLoggingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_logs=access_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_logs: Optional[Sequence['outputs.GetVirtualNodeSpecLoggingAccessLogResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if access_logs is None: + raise TypeError("Missing 'access_logs' argument") + + _setter("access_logs", access_logs) @property @pulumi.getter(name="accessLogs") @@ -12679,7 +19655,20 @@ def access_logs(self) -> Sequence['outputs.GetVirtualNodeSpecLoggingAccessLogRes class GetVirtualNodeSpecLoggingAccessLogResult(dict): def __init__(__self__, *, files: Sequence['outputs.GetVirtualNodeSpecLoggingAccessLogFileResult']): - pulumi.set(__self__, "files", files) + GetVirtualNodeSpecLoggingAccessLogResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + files=files, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + files: Optional[Sequence['outputs.GetVirtualNodeSpecLoggingAccessLogFileResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if files is None: + raise TypeError("Missing 'files' argument") + + _setter("files", files) @property @pulumi.getter @@ -12692,8 +19681,25 @@ class GetVirtualNodeSpecLoggingAccessLogFileResult(dict): def __init__(__self__, *, formats: Sequence['outputs.GetVirtualNodeSpecLoggingAccessLogFileFormatResult'], path: str): - pulumi.set(__self__, "formats", formats) - pulumi.set(__self__, "path", path) + GetVirtualNodeSpecLoggingAccessLogFileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + formats=formats, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + formats: Optional[Sequence['outputs.GetVirtualNodeSpecLoggingAccessLogFileFormatResult']] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if formats is None: + raise TypeError("Missing 'formats' argument") + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("formats", formats) + _setter("path", path) @property @pulumi.getter @@ -12711,8 +19717,25 @@ class GetVirtualNodeSpecLoggingAccessLogFileFormatResult(dict): def __init__(__self__, *, jsons: Sequence['outputs.GetVirtualNodeSpecLoggingAccessLogFileFormatJsonResult'], text: str): - pulumi.set(__self__, "jsons", jsons) - pulumi.set(__self__, "text", text) + GetVirtualNodeSpecLoggingAccessLogFileFormatResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + jsons=jsons, + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jsons: Optional[Sequence['outputs.GetVirtualNodeSpecLoggingAccessLogFileFormatJsonResult']] = None, + text: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jsons is None: + raise TypeError("Missing 'jsons' argument") + if text is None: + raise TypeError("Missing 'text' argument") + + _setter("jsons", jsons) + _setter("text", text) @property @pulumi.getter @@ -12730,8 +19753,25 @@ class GetVirtualNodeSpecLoggingAccessLogFileFormatJsonResult(dict): def __init__(__self__, *, key: str, value: str): - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + GetVirtualNodeSpecLoggingAccessLogFileFormatJsonResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -12749,8 +19789,27 @@ class GetVirtualNodeSpecServiceDiscoveryResult(dict): def __init__(__self__, *, aws_cloud_maps: Sequence['outputs.GetVirtualNodeSpecServiceDiscoveryAwsCloudMapResult'], dns: Sequence['outputs.GetVirtualNodeSpecServiceDiscoveryDnResult']): - pulumi.set(__self__, "aws_cloud_maps", aws_cloud_maps) - pulumi.set(__self__, "dns", dns) + GetVirtualNodeSpecServiceDiscoveryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_cloud_maps=aws_cloud_maps, + dns=dns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_cloud_maps: Optional[Sequence['outputs.GetVirtualNodeSpecServiceDiscoveryAwsCloudMapResult']] = None, + dns: Optional[Sequence['outputs.GetVirtualNodeSpecServiceDiscoveryDnResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_cloud_maps is None and 'awsCloudMaps' in kwargs: + aws_cloud_maps = kwargs['awsCloudMaps'] + if aws_cloud_maps is None: + raise TypeError("Missing 'aws_cloud_maps' argument") + if dns is None: + raise TypeError("Missing 'dns' argument") + + _setter("aws_cloud_maps", aws_cloud_maps) + _setter("dns", dns) @property @pulumi.getter(name="awsCloudMaps") @@ -12769,9 +19828,34 @@ def __init__(__self__, *, attributes: Mapping[str, str], namespace_name: str, service_name: str): - pulumi.set(__self__, "attributes", attributes) - pulumi.set(__self__, "namespace_name", namespace_name) - pulumi.set(__self__, "service_name", service_name) + GetVirtualNodeSpecServiceDiscoveryAwsCloudMapResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + namespace_name=namespace_name, + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[Mapping[str, str]] = None, + namespace_name: Optional[str] = None, + service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attributes is None: + raise TypeError("Missing 'attributes' argument") + if namespace_name is None and 'namespaceName' in kwargs: + namespace_name = kwargs['namespaceName'] + if namespace_name is None: + raise TypeError("Missing 'namespace_name' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("attributes", attributes) + _setter("namespace_name", namespace_name) + _setter("service_name", service_name) @property @pulumi.getter @@ -12795,9 +19879,34 @@ def __init__(__self__, *, hostname: str, ip_preference: str, response_type: str): - pulumi.set(__self__, "hostname", hostname) - pulumi.set(__self__, "ip_preference", ip_preference) - pulumi.set(__self__, "response_type", response_type) + GetVirtualNodeSpecServiceDiscoveryDnResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostname=hostname, + ip_preference=ip_preference, + response_type=response_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostname: Optional[str] = None, + ip_preference: Optional[str] = None, + response_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostname is None: + raise TypeError("Missing 'hostname' argument") + if ip_preference is None and 'ipPreference' in kwargs: + ip_preference = kwargs['ipPreference'] + if ip_preference is None: + raise TypeError("Missing 'ip_preference' argument") + if response_type is None and 'responseType' in kwargs: + response_type = kwargs['responseType'] + if response_type is None: + raise TypeError("Missing 'response_type' argument") + + _setter("hostname", hostname) + _setter("ip_preference", ip_preference) + _setter("response_type", response_type) @property @pulumi.getter @@ -12819,7 +19928,20 @@ def response_type(self) -> str: class GetVirtualRouterSpecResult(dict): def __init__(__self__, *, listeners: Sequence['outputs.GetVirtualRouterSpecListenerResult']): - pulumi.set(__self__, "listeners", listeners) + GetVirtualRouterSpecResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + listeners=listeners, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listeners: Optional[Sequence['outputs.GetVirtualRouterSpecListenerResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listeners is None: + raise TypeError("Missing 'listeners' argument") + + _setter("listeners", listeners) @property @pulumi.getter @@ -12831,7 +19953,22 @@ def listeners(self) -> Sequence['outputs.GetVirtualRouterSpecListenerResult']: class GetVirtualRouterSpecListenerResult(dict): def __init__(__self__, *, port_mappings: Sequence['outputs.GetVirtualRouterSpecListenerPortMappingResult']): - pulumi.set(__self__, "port_mappings", port_mappings) + GetVirtualRouterSpecListenerResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port_mappings=port_mappings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port_mappings: Optional[Sequence['outputs.GetVirtualRouterSpecListenerPortMappingResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_mappings is None and 'portMappings' in kwargs: + port_mappings = kwargs['portMappings'] + if port_mappings is None: + raise TypeError("Missing 'port_mappings' argument") + + _setter("port_mappings", port_mappings) @property @pulumi.getter(name="portMappings") @@ -12844,8 +19981,25 @@ class GetVirtualRouterSpecListenerPortMappingResult(dict): def __init__(__self__, *, port: int, protocol: str): - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) + GetVirtualRouterSpecListenerPortMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + + _setter("port", port) + _setter("protocol", protocol) @property @pulumi.getter @@ -12862,7 +20016,20 @@ def protocol(self) -> str: class GetVirtualServiceSpecResult(dict): def __init__(__self__, *, providers: Sequence['outputs.GetVirtualServiceSpecProviderResult']): - pulumi.set(__self__, "providers", providers) + GetVirtualServiceSpecResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + providers=providers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + providers: Optional[Sequence['outputs.GetVirtualServiceSpecProviderResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if providers is None: + raise TypeError("Missing 'providers' argument") + + _setter("providers", providers) @property @pulumi.getter @@ -12875,8 +20042,29 @@ class GetVirtualServiceSpecProviderResult(dict): def __init__(__self__, *, virtual_nodes: Sequence['outputs.GetVirtualServiceSpecProviderVirtualNodeResult'], virtual_routers: Sequence['outputs.GetVirtualServiceSpecProviderVirtualRouterResult']): - pulumi.set(__self__, "virtual_nodes", virtual_nodes) - pulumi.set(__self__, "virtual_routers", virtual_routers) + GetVirtualServiceSpecProviderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_nodes=virtual_nodes, + virtual_routers=virtual_routers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_nodes: Optional[Sequence['outputs.GetVirtualServiceSpecProviderVirtualNodeResult']] = None, + virtual_routers: Optional[Sequence['outputs.GetVirtualServiceSpecProviderVirtualRouterResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_nodes is None and 'virtualNodes' in kwargs: + virtual_nodes = kwargs['virtualNodes'] + if virtual_nodes is None: + raise TypeError("Missing 'virtual_nodes' argument") + if virtual_routers is None and 'virtualRouters' in kwargs: + virtual_routers = kwargs['virtualRouters'] + if virtual_routers is None: + raise TypeError("Missing 'virtual_routers' argument") + + _setter("virtual_nodes", virtual_nodes) + _setter("virtual_routers", virtual_routers) @property @pulumi.getter(name="virtualNodes") @@ -12893,7 +20081,22 @@ def virtual_routers(self) -> Sequence['outputs.GetVirtualServiceSpecProviderVirt class GetVirtualServiceSpecProviderVirtualNodeResult(dict): def __init__(__self__, *, virtual_node_name: str): - pulumi.set(__self__, "virtual_node_name", virtual_node_name) + GetVirtualServiceSpecProviderVirtualNodeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_node_name=virtual_node_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_node_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_node_name is None and 'virtualNodeName' in kwargs: + virtual_node_name = kwargs['virtualNodeName'] + if virtual_node_name is None: + raise TypeError("Missing 'virtual_node_name' argument") + + _setter("virtual_node_name", virtual_node_name) @property @pulumi.getter(name="virtualNodeName") @@ -12905,7 +20108,22 @@ def virtual_node_name(self) -> str: class GetVirtualServiceSpecProviderVirtualRouterResult(dict): def __init__(__self__, *, virtual_router_name: str): - pulumi.set(__self__, "virtual_router_name", virtual_router_name) + GetVirtualServiceSpecProviderVirtualRouterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_router_name=virtual_router_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_router_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_router_name is None and 'virtualRouterName' in kwargs: + virtual_router_name = kwargs['virtualRouterName'] + if virtual_router_name is None: + raise TypeError("Missing 'virtual_router_name' argument") + + _setter("virtual_router_name", virtual_router_name) @property @pulumi.getter(name="virtualRouterName") diff --git a/sdk/python/pulumi_aws/appmesh/route.py b/sdk/python/pulumi_aws/appmesh/route.py index ddd04a3f6e3..e2abf893200 100644 --- a/sdk/python/pulumi_aws/appmesh/route.py +++ b/sdk/python/pulumi_aws/appmesh/route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name to use for the route. Must be between 1 and 255 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "mesh_name", mesh_name) - pulumi.set(__self__, "spec", spec) - pulumi.set(__self__, "virtual_router_name", virtual_router_name) + RouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mesh_name=mesh_name, + spec=spec, + virtual_router_name=virtual_router_name, + mesh_owner=mesh_owner, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mesh_name: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['RouteSpecArgs']] = None, + virtual_router_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_name is None: + raise TypeError("Missing 'mesh_name' argument") + if spec is None: + raise TypeError("Missing 'spec' argument") + if virtual_router_name is None and 'virtualRouterName' in kwargs: + virtual_router_name = kwargs['virtualRouterName'] + if virtual_router_name is None: + raise TypeError("Missing 'virtual_router_name' argument") + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + + _setter("mesh_name", mesh_name) + _setter("spec", spec) + _setter("virtual_router_name", virtual_router_name) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="meshName") @@ -142,31 +175,76 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] virtual_router_name: Name of the virtual router in which to create the route. Must be between 1 and 255 characters in length. """ + _RouteState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + last_updated_date=last_updated_date, + mesh_name=mesh_name, + mesh_owner=mesh_owner, + name=name, + resource_owner=resource_owner, + spec=spec, + tags=tags, + tags_all=tags_all, + virtual_router_name=virtual_router_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['RouteSpecArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + virtual_router_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if virtual_router_name is None and 'virtualRouterName' in kwargs: + virtual_router_name = kwargs['virtualRouterName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if mesh_name is not None: - pulumi.set(__self__, "mesh_name", mesh_name) + _setter("mesh_name", mesh_name) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if virtual_router_name is not None: - pulumi.set(__self__, "virtual_router_name", virtual_router_name) + _setter("virtual_router_name", virtual_router_name) @property @pulumi.getter @@ -589,6 +667,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -614,6 +696,7 @@ def _internal_init(__self__, __props__.__dict__["mesh_name"] = mesh_name __props__.__dict__["mesh_owner"] = mesh_owner __props__.__dict__["name"] = name + spec = _utilities.configure(spec, RouteSpecArgs, True) if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec diff --git a/sdk/python/pulumi_aws/appmesh/virtual_gateway.py b/sdk/python/pulumi_aws/appmesh/virtual_gateway.py index 70297ff5a44..f5d975c91b3 100644 --- a/sdk/python/pulumi_aws/appmesh/virtual_gateway.py +++ b/sdk/python/pulumi_aws/appmesh/virtual_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name to use for the virtual gateway. Must be between 1 and 255 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "mesh_name", mesh_name) - pulumi.set(__self__, "spec", spec) + VirtualGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mesh_name=mesh_name, + spec=spec, + mesh_owner=mesh_owner, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mesh_name: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['VirtualGatewaySpecArgs']] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_name is None: + raise TypeError("Missing 'mesh_name' argument") + if spec is None: + raise TypeError("Missing 'spec' argument") + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + + _setter("mesh_name", mesh_name) + _setter("spec", spec) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="meshName") @@ -125,29 +152,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _VirtualGatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + last_updated_date=last_updated_date, + mesh_name=mesh_name, + mesh_owner=mesh_owner, + name=name, + resource_owner=resource_owner, + spec=spec, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['VirtualGatewaySpecArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if mesh_name is not None: - pulumi.set(__self__, "mesh_name", mesh_name) + _setter("mesh_name", mesh_name) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -438,6 +506,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VirtualGatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -462,6 +534,7 @@ def _internal_init(__self__, __props__.__dict__["mesh_name"] = mesh_name __props__.__dict__["mesh_owner"] = mesh_owner __props__.__dict__["name"] = name + spec = _utilities.configure(spec, VirtualGatewaySpecArgs, True) if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec diff --git a/sdk/python/pulumi_aws/appmesh/virtual_node.py b/sdk/python/pulumi_aws/appmesh/virtual_node.py index 550c49cc612..fea6da84a7a 100644 --- a/sdk/python/pulumi_aws/appmesh/virtual_node.py +++ b/sdk/python/pulumi_aws/appmesh/virtual_node.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name to use for the virtual node. Must be between 1 and 255 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "mesh_name", mesh_name) - pulumi.set(__self__, "spec", spec) + VirtualNodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mesh_name=mesh_name, + spec=spec, + mesh_owner=mesh_owner, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mesh_name: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['VirtualNodeSpecArgs']] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_name is None: + raise TypeError("Missing 'mesh_name' argument") + if spec is None: + raise TypeError("Missing 'spec' argument") + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + + _setter("mesh_name", mesh_name) + _setter("spec", spec) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="meshName") @@ -125,29 +152,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _VirtualNodeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + last_updated_date=last_updated_date, + mesh_name=mesh_name, + mesh_owner=mesh_owner, + name=name, + resource_owner=resource_owner, + spec=spec, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['VirtualNodeSpecArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if mesh_name is not None: - pulumi.set(__self__, "mesh_name", mesh_name) + _setter("mesh_name", mesh_name) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -612,6 +680,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VirtualNodeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -636,6 +708,7 @@ def _internal_init(__self__, __props__.__dict__["mesh_name"] = mesh_name __props__.__dict__["mesh_owner"] = mesh_owner __props__.__dict__["name"] = name + spec = _utilities.configure(spec, VirtualNodeSpecArgs, True) if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec diff --git a/sdk/python/pulumi_aws/appmesh/virtual_router.py b/sdk/python/pulumi_aws/appmesh/virtual_router.py index c96b125a68d..ac23f0abb13 100644 --- a/sdk/python/pulumi_aws/appmesh/virtual_router.py +++ b/sdk/python/pulumi_aws/appmesh/virtual_router.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name to use for the virtual router. Must be between 1 and 255 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "mesh_name", mesh_name) - pulumi.set(__self__, "spec", spec) + VirtualRouterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mesh_name=mesh_name, + spec=spec, + mesh_owner=mesh_owner, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mesh_name: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['VirtualRouterSpecArgs']] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_name is None: + raise TypeError("Missing 'mesh_name' argument") + if spec is None: + raise TypeError("Missing 'spec' argument") + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + + _setter("mesh_name", mesh_name) + _setter("spec", spec) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="meshName") @@ -125,29 +152,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _VirtualRouterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + last_updated_date=last_updated_date, + mesh_name=mesh_name, + mesh_owner=mesh_owner, + name=name, + resource_owner=resource_owner, + spec=spec, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['VirtualRouterSpecArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if mesh_name is not None: - pulumi.set(__self__, "mesh_name", mesh_name) + _setter("mesh_name", mesh_name) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -386,6 +454,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VirtualRouterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -410,6 +482,7 @@ def _internal_init(__self__, __props__.__dict__["mesh_name"] = mesh_name __props__.__dict__["mesh_owner"] = mesh_owner __props__.__dict__["name"] = name + spec = _utilities.configure(spec, VirtualRouterSpecArgs, True) if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec diff --git a/sdk/python/pulumi_aws/appmesh/virtual_service.py b/sdk/python/pulumi_aws/appmesh/virtual_service.py index d439a8ad700..d5e13787eb9 100644 --- a/sdk/python/pulumi_aws/appmesh/virtual_service.py +++ b/sdk/python/pulumi_aws/appmesh/virtual_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name to use for the virtual service. Must be between 1 and 255 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "mesh_name", mesh_name) - pulumi.set(__self__, "spec", spec) + VirtualServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mesh_name=mesh_name, + spec=spec, + mesh_owner=mesh_owner, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mesh_name: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['VirtualServiceSpecArgs']] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_name is None: + raise TypeError("Missing 'mesh_name' argument") + if spec is None: + raise TypeError("Missing 'spec' argument") + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + + _setter("mesh_name", mesh_name) + _setter("spec", spec) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="meshName") @@ -125,29 +152,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _VirtualServiceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + last_updated_date=last_updated_date, + mesh_name=mesh_name, + mesh_owner=mesh_owner, + name=name, + resource_owner=resource_owner, + spec=spec, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input['VirtualServiceSpecArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if mesh_name is None and 'meshName' in kwargs: + mesh_name = kwargs['meshName'] + if mesh_owner is None and 'meshOwner' in kwargs: + mesh_owner = kwargs['meshOwner'] + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if mesh_name is not None: - pulumi.set(__self__, "mesh_name", mesh_name) + _setter("mesh_name", mesh_name) if mesh_owner is not None: - pulumi.set(__self__, "mesh_owner", mesh_owner) + _setter("mesh_owner", mesh_owner) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -398,6 +466,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VirtualServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -422,6 +494,7 @@ def _internal_init(__self__, __props__.__dict__["mesh_name"] = mesh_name __props__.__dict__["mesh_owner"] = mesh_owner __props__.__dict__["name"] = name + spec = _utilities.configure(spec, VirtualServiceSpecArgs, True) if spec is None and not opts.urn: raise TypeError("Missing required property 'spec'") __props__.__dict__["spec"] = spec diff --git a/sdk/python/pulumi_aws/apprunner/_inputs.py b/sdk/python/pulumi_aws/apprunner/_inputs.py index 6de9393a83f..6e70333fb05 100644 --- a/sdk/python/pulumi_aws/apprunner/_inputs.py +++ b/sdk/python/pulumi_aws/apprunner/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -43,14 +43,31 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Record type, always `CNAME`. :param pulumi.Input[str] value: Certificate CNAME record value. """ + CustomDomainAssociationCertificateValidationRecordArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + status=status, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -108,8 +125,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] vendor: Implementation provider chosen for tracing App Runner services. Valid values: `AWSXRAY`. """ + ObservabilityConfigurationTraceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vendor=vendor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vendor: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vendor is not None: - pulumi.set(__self__, "vendor", vendor) + _setter("vendor", vendor) @property @pulumi.getter @@ -131,7 +159,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] kms_key: ARN of the KMS key used for encryption. """ - pulumi.set(__self__, "kms_key", kms_key) + ServiceEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key=kms_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if kms_key is None: + raise TypeError("Missing 'kms_key' argument") + + _setter("kms_key", kms_key) @property @pulumi.getter(name="kmsKey") @@ -163,18 +206,43 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout: Time, in seconds, to wait for a health check response before deciding it failed. Defaults to 2. Minimum value of 1. Maximum value of 20. :param pulumi.Input[int] unhealthy_threshold: Number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Defaults to 5. Minimum value of 1. Maximum value of 20. """ + ServiceHealthCheckConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval=interval, + path=path, + protocol=protocol, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[pulumi.Input[int]] = None, + interval: Optional[pulumi.Input[int]] = None, + path: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + timeout: Optional[pulumi.Input[int]] = None, + unhealthy_threshold: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if healthy_threshold is not None: - pulumi.set(__self__, "healthy_threshold", healthy_threshold) + _setter("healthy_threshold", healthy_threshold) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if unhealthy_threshold is not None: - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter(name="healthyThreshold") @@ -260,12 +328,29 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_role_arn: ARN of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs. :param pulumi.Input[str] memory: Amount of memory, in MB or GB, reserved for each instance of your App Runner service. Defaults to `2048`. Valid values: `512|1024|2048|3072|4096|6144|8192|10240|12288|(0.5|1|2|3|4|6|8|10|12) GB`. """ + ServiceInstanceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu=cpu, + instance_role_arn=instance_role_arn, + memory=memory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu: Optional[pulumi.Input[str]] = None, + instance_role_arn: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_role_arn is None and 'instanceRoleArn' in kwargs: + instance_role_arn = kwargs['instanceRoleArn'] + if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if instance_role_arn is not None: - pulumi.set(__self__, "instance_role_arn", instance_role_arn) + _setter("instance_role_arn", instance_role_arn) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) @property @pulumi.getter @@ -313,10 +398,27 @@ def __init__(__self__, *, :param pulumi.Input['ServiceNetworkConfigurationEgressConfigurationArgs'] egress_configuration: Network configuration settings for outbound message traffic. See Egress Configuration below for more details. :param pulumi.Input['ServiceNetworkConfigurationIngressConfigurationArgs'] ingress_configuration: Network configuration settings for inbound network traffic. See Ingress Configuration below for more details. """ + ServiceNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + egress_configuration=egress_configuration, + ingress_configuration=ingress_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + egress_configuration: Optional[pulumi.Input['ServiceNetworkConfigurationEgressConfigurationArgs']] = None, + ingress_configuration: Optional[pulumi.Input['ServiceNetworkConfigurationIngressConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if egress_configuration is None and 'egressConfiguration' in kwargs: + egress_configuration = kwargs['egressConfiguration'] + if ingress_configuration is None and 'ingressConfiguration' in kwargs: + ingress_configuration = kwargs['ingressConfiguration'] + if egress_configuration is not None: - pulumi.set(__self__, "egress_configuration", egress_configuration) + _setter("egress_configuration", egress_configuration) if ingress_configuration is not None: - pulumi.set(__self__, "ingress_configuration", ingress_configuration) + _setter("ingress_configuration", ingress_configuration) @property @pulumi.getter(name="egressConfiguration") @@ -352,10 +454,27 @@ def __init__(__self__, *, :param pulumi.Input[str] egress_type: The type of egress configuration. Valid values are: `DEFAULT` and `VPC`. :param pulumi.Input[str] vpc_connector_arn: The Amazon Resource Name (ARN) of the App Runner VPC connector that you want to associate with your App Runner service. Only valid when `EgressType = VPC`. """ + ServiceNetworkConfigurationEgressConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + egress_type=egress_type, + vpc_connector_arn=vpc_connector_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + egress_type: Optional[pulumi.Input[str]] = None, + vpc_connector_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if egress_type is None and 'egressType' in kwargs: + egress_type = kwargs['egressType'] + if vpc_connector_arn is None and 'vpcConnectorArn' in kwargs: + vpc_connector_arn = kwargs['vpcConnectorArn'] + if egress_type is not None: - pulumi.set(__self__, "egress_type", egress_type) + _setter("egress_type", egress_type) if vpc_connector_arn is not None: - pulumi.set(__self__, "vpc_connector_arn", vpc_connector_arn) + _setter("vpc_connector_arn", vpc_connector_arn) @property @pulumi.getter(name="egressType") @@ -389,8 +508,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] is_publicly_accessible: Specifies whether your App Runner service is publicly accessible. To make the service publicly accessible set it to True. To make the service privately accessible, from only within an Amazon VPC set it to False. """ + ServiceNetworkConfigurationIngressConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_publicly_accessible=is_publicly_accessible, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_publicly_accessible: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_publicly_accessible is None and 'isPubliclyAccessible' in kwargs: + is_publicly_accessible = kwargs['isPubliclyAccessible'] + if is_publicly_accessible is not None: - pulumi.set(__self__, "is_publicly_accessible", is_publicly_accessible) + _setter("is_publicly_accessible", is_publicly_accessible) @property @pulumi.getter(name="isPubliclyAccessible") @@ -414,9 +546,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] observability_enabled: When `true`, an observability configuration resource is associated with the service. :param pulumi.Input[str] observability_configuration_arn: ARN of the observability configuration that is associated with the service. Specified only when `observability_enabled` is `true`. """ - pulumi.set(__self__, "observability_enabled", observability_enabled) + ServiceObservabilityConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + observability_enabled=observability_enabled, + observability_configuration_arn=observability_configuration_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + observability_enabled: Optional[pulumi.Input[bool]] = None, + observability_configuration_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if observability_enabled is None and 'observabilityEnabled' in kwargs: + observability_enabled = kwargs['observabilityEnabled'] + if observability_enabled is None: + raise TypeError("Missing 'observability_enabled' argument") + if observability_configuration_arn is None and 'observabilityConfigurationArn' in kwargs: + observability_configuration_arn = kwargs['observabilityConfigurationArn'] + + _setter("observability_enabled", observability_enabled) if observability_configuration_arn is not None: - pulumi.set(__self__, "observability_configuration_arn", observability_configuration_arn) + _setter("observability_configuration_arn", observability_configuration_arn) @property @pulumi.getter(name="observabilityEnabled") @@ -456,14 +607,39 @@ def __init__(__self__, *, :param pulumi.Input['ServiceSourceConfigurationCodeRepositoryArgs'] code_repository: Description of a source code repository. See Code Repository below for more details. :param pulumi.Input['ServiceSourceConfigurationImageRepositoryArgs'] image_repository: Description of a source image repository. See Image Repository below for more details. """ + ServiceSourceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_configuration=authentication_configuration, + auto_deployments_enabled=auto_deployments_enabled, + code_repository=code_repository, + image_repository=image_repository, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_configuration: Optional[pulumi.Input['ServiceSourceConfigurationAuthenticationConfigurationArgs']] = None, + auto_deployments_enabled: Optional[pulumi.Input[bool]] = None, + code_repository: Optional[pulumi.Input['ServiceSourceConfigurationCodeRepositoryArgs']] = None, + image_repository: Optional[pulumi.Input['ServiceSourceConfigurationImageRepositoryArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_configuration is None and 'authenticationConfiguration' in kwargs: + authentication_configuration = kwargs['authenticationConfiguration'] + if auto_deployments_enabled is None and 'autoDeploymentsEnabled' in kwargs: + auto_deployments_enabled = kwargs['autoDeploymentsEnabled'] + if code_repository is None and 'codeRepository' in kwargs: + code_repository = kwargs['codeRepository'] + if image_repository is None and 'imageRepository' in kwargs: + image_repository = kwargs['imageRepository'] + if authentication_configuration is not None: - pulumi.set(__self__, "authentication_configuration", authentication_configuration) + _setter("authentication_configuration", authentication_configuration) if auto_deployments_enabled is not None: - pulumi.set(__self__, "auto_deployments_enabled", auto_deployments_enabled) + _setter("auto_deployments_enabled", auto_deployments_enabled) if code_repository is not None: - pulumi.set(__self__, "code_repository", code_repository) + _setter("code_repository", code_repository) if image_repository is not None: - pulumi.set(__self__, "image_repository", image_repository) + _setter("image_repository", image_repository) @property @pulumi.getter(name="authenticationConfiguration") @@ -523,10 +699,27 @@ def __init__(__self__, *, :param pulumi.Input[str] access_role_arn: ARN of the IAM role that grants the App Runner service access to a source repository. Required for ECR image repositories (but not for ECR Public) :param pulumi.Input[str] connection_arn: ARN of the App Runner connection that enables the App Runner service to connect to a source repository. Required for GitHub code repositories. """ + ServiceSourceConfigurationAuthenticationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_role_arn=access_role_arn, + connection_arn=connection_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_role_arn: Optional[pulumi.Input[str]] = None, + connection_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_role_arn is None and 'accessRoleArn' in kwargs: + access_role_arn = kwargs['accessRoleArn'] + if connection_arn is None and 'connectionArn' in kwargs: + connection_arn = kwargs['connectionArn'] + if access_role_arn is not None: - pulumi.set(__self__, "access_role_arn", access_role_arn) + _setter("access_role_arn", access_role_arn) if connection_arn is not None: - pulumi.set(__self__, "connection_arn", connection_arn) + _setter("connection_arn", connection_arn) @property @pulumi.getter(name="accessRoleArn") @@ -564,10 +757,35 @@ def __init__(__self__, *, :param pulumi.Input['ServiceSourceConfigurationCodeRepositorySourceCodeVersionArgs'] source_code_version: Version that should be used within the source code repository. See Source Code Version below for more details. :param pulumi.Input['ServiceSourceConfigurationCodeRepositoryCodeConfigurationArgs'] code_configuration: Configuration for building and running the service from a source code repository. See Code Configuration below for more details. """ - pulumi.set(__self__, "repository_url", repository_url) - pulumi.set(__self__, "source_code_version", source_code_version) + ServiceSourceConfigurationCodeRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + source_code_version=source_code_version, + code_configuration=code_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[pulumi.Input[str]] = None, + source_code_version: Optional[pulumi.Input['ServiceSourceConfigurationCodeRepositorySourceCodeVersionArgs']] = None, + code_configuration: Optional[pulumi.Input['ServiceSourceConfigurationCodeRepositoryCodeConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + if source_code_version is None and 'sourceCodeVersion' in kwargs: + source_code_version = kwargs['sourceCodeVersion'] + if source_code_version is None: + raise TypeError("Missing 'source_code_version' argument") + if code_configuration is None and 'codeConfiguration' in kwargs: + code_configuration = kwargs['codeConfiguration'] + + _setter("repository_url", repository_url) + _setter("source_code_version", source_code_version) if code_configuration is not None: - pulumi.set(__self__, "code_configuration", code_configuration) + _setter("code_configuration", code_configuration) @property @pulumi.getter(name="repositoryUrl") @@ -615,9 +833,28 @@ def __init__(__self__, *, :param pulumi.Input[str] configuration_source: Source of the App Runner configuration. Valid values: `REPOSITORY`, `API`. Values are interpreted as follows: :param pulumi.Input['ServiceSourceConfigurationCodeRepositoryCodeConfigurationCodeConfigurationValuesArgs'] code_configuration_values: Basic configuration for building and running the App Runner service. Use this parameter to quickly launch an App Runner service without providing an apprunner.yaml file in the source code repository (or ignoring the file if it exists). See Code Configuration Values below for more details. """ - pulumi.set(__self__, "configuration_source", configuration_source) + ServiceSourceConfigurationCodeRepositoryCodeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_source=configuration_source, + code_configuration_values=code_configuration_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_source: Optional[pulumi.Input[str]] = None, + code_configuration_values: Optional[pulumi.Input['ServiceSourceConfigurationCodeRepositoryCodeConfigurationCodeConfigurationValuesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_source is None and 'configurationSource' in kwargs: + configuration_source = kwargs['configurationSource'] + if configuration_source is None: + raise TypeError("Missing 'configuration_source' argument") + if code_configuration_values is None and 'codeConfigurationValues' in kwargs: + code_configuration_values = kwargs['codeConfigurationValues'] + + _setter("configuration_source", configuration_source) if code_configuration_values is not None: - pulumi.set(__self__, "code_configuration_values", code_configuration_values) + _setter("code_configuration_values", code_configuration_values) @property @pulumi.getter(name="configurationSource") @@ -661,17 +898,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] runtime_environment_variables: Environment variables available to your running App Runner service. A map of key/value pairs. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid. :param pulumi.Input[str] start_command: Command App Runner runs to start your application. """ - pulumi.set(__self__, "runtime", runtime) + ServiceSourceConfigurationCodeRepositoryCodeConfigurationCodeConfigurationValuesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + runtime=runtime, + build_command=build_command, + port=port, + runtime_environment_secrets=runtime_environment_secrets, + runtime_environment_variables=runtime_environment_variables, + start_command=start_command, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + runtime: Optional[pulumi.Input[str]] = None, + build_command: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[str]] = None, + runtime_environment_secrets: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + runtime_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + start_command: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if runtime is None: + raise TypeError("Missing 'runtime' argument") + if build_command is None and 'buildCommand' in kwargs: + build_command = kwargs['buildCommand'] + if runtime_environment_secrets is None and 'runtimeEnvironmentSecrets' in kwargs: + runtime_environment_secrets = kwargs['runtimeEnvironmentSecrets'] + if runtime_environment_variables is None and 'runtimeEnvironmentVariables' in kwargs: + runtime_environment_variables = kwargs['runtimeEnvironmentVariables'] + if start_command is None and 'startCommand' in kwargs: + start_command = kwargs['startCommand'] + + _setter("runtime", runtime) if build_command is not None: - pulumi.set(__self__, "build_command", build_command) + _setter("build_command", build_command) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if runtime_environment_secrets is not None: - pulumi.set(__self__, "runtime_environment_secrets", runtime_environment_secrets) + _setter("runtime_environment_secrets", runtime_environment_secrets) if runtime_environment_variables is not None: - pulumi.set(__self__, "runtime_environment_variables", runtime_environment_variables) + _setter("runtime_environment_variables", runtime_environment_variables) if start_command is not None: - pulumi.set(__self__, "start_command", start_command) + _setter("start_command", start_command) @property @pulumi.getter @@ -755,8 +1023,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of version identifier. For a git-based repository, branches represent versions. Valid values: `BRANCH`. :param pulumi.Input[str] value: Source code version. For a git-based repository, a branch name maps to a specific version. App Runner uses the most recent commit to the branch. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + ServiceSourceConfigurationCodeRepositorySourceCodeVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -795,10 +1080,35 @@ def __init__(__self__, *, :param pulumi.Input[str] image_repository_type: Type of the image repository. This reflects the repository provider and whether the repository is private or public. Valid values: `ECR` , `ECR_PUBLIC`. :param pulumi.Input['ServiceSourceConfigurationImageRepositoryImageConfigurationArgs'] image_configuration: Configuration for running the identified image. See Image Configuration below for more details. """ - pulumi.set(__self__, "image_identifier", image_identifier) - pulumi.set(__self__, "image_repository_type", image_repository_type) + ServiceSourceConfigurationImageRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_identifier=image_identifier, + image_repository_type=image_repository_type, + image_configuration=image_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_identifier: Optional[pulumi.Input[str]] = None, + image_repository_type: Optional[pulumi.Input[str]] = None, + image_configuration: Optional[pulumi.Input['ServiceSourceConfigurationImageRepositoryImageConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_identifier is None and 'imageIdentifier' in kwargs: + image_identifier = kwargs['imageIdentifier'] + if image_identifier is None: + raise TypeError("Missing 'image_identifier' argument") + if image_repository_type is None and 'imageRepositoryType' in kwargs: + image_repository_type = kwargs['imageRepositoryType'] + if image_repository_type is None: + raise TypeError("Missing 'image_repository_type' argument") + if image_configuration is None and 'imageConfiguration' in kwargs: + image_configuration = kwargs['imageConfiguration'] + + _setter("image_identifier", image_identifier) + _setter("image_repository_type", image_repository_type) if image_configuration is not None: - pulumi.set(__self__, "image_configuration", image_configuration) + _setter("image_configuration", image_configuration) @property @pulumi.getter(name="imageIdentifier") @@ -851,14 +1161,37 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] runtime_environment_variables: Environment variables available to your running App Runner service. A map of key/value pairs. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid. :param pulumi.Input[str] start_command: Command App Runner runs to start the application in the source image. If specified, this command overrides the Docker image’s default start command. """ + ServiceSourceConfigurationImageRepositoryImageConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + runtime_environment_secrets=runtime_environment_secrets, + runtime_environment_variables=runtime_environment_variables, + start_command=start_command, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[pulumi.Input[str]] = None, + runtime_environment_secrets: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + runtime_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + start_command: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if runtime_environment_secrets is None and 'runtimeEnvironmentSecrets' in kwargs: + runtime_environment_secrets = kwargs['runtimeEnvironmentSecrets'] + if runtime_environment_variables is None and 'runtimeEnvironmentVariables' in kwargs: + runtime_environment_variables = kwargs['runtimeEnvironmentVariables'] + if start_command is None and 'startCommand' in kwargs: + start_command = kwargs['startCommand'] + if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if runtime_environment_secrets is not None: - pulumi.set(__self__, "runtime_environment_secrets", runtime_environment_secrets) + _setter("runtime_environment_secrets", runtime_environment_secrets) if runtime_environment_variables is not None: - pulumi.set(__self__, "runtime_environment_variables", runtime_environment_variables) + _setter("runtime_environment_variables", runtime_environment_variables) if start_command is not None: - pulumi.set(__self__, "start_command", start_command) + _setter("start_command", start_command) @property @pulumi.getter @@ -918,10 +1251,27 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: The ID of the VPC endpoint that your App Runner service connects to. :param pulumi.Input[str] vpc_id: The ID of the VPC that is used for the VPC endpoint. """ + VpcIngressConnectionIngressVpcConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="vpcEndpointId") diff --git a/sdk/python/pulumi_aws/apprunner/auto_scaling_configuration_version.py b/sdk/python/pulumi_aws/apprunner/auto_scaling_configuration_version.py index dbdb2d68fb0..08fa8d53420 100644 --- a/sdk/python/pulumi_aws/apprunner/auto_scaling_configuration_version.py +++ b/sdk/python/pulumi_aws/apprunner/auto_scaling_configuration_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AutoScalingConfigurationVersionArgs', 'AutoScalingConfigurationVersion'] @@ -27,15 +27,44 @@ def __init__(__self__, *, :param pulumi.Input[int] min_size: Minimal number of instances that App Runner provisions for your service. :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. """ - pulumi.set(__self__, "auto_scaling_configuration_name", auto_scaling_configuration_name) + AutoScalingConfigurationVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_scaling_configuration_name=auto_scaling_configuration_name, + max_concurrency=max_concurrency, + max_size=max_size, + min_size=min_size, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_scaling_configuration_name: Optional[pulumi.Input[str]] = None, + max_concurrency: Optional[pulumi.Input[int]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_configuration_name is None and 'autoScalingConfigurationName' in kwargs: + auto_scaling_configuration_name = kwargs['autoScalingConfigurationName'] + if auto_scaling_configuration_name is None: + raise TypeError("Missing 'auto_scaling_configuration_name' argument") + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + + _setter("auto_scaling_configuration_name", auto_scaling_configuration_name) if max_concurrency is not None: - pulumi.set(__self__, "max_concurrency", max_concurrency) + _setter("max_concurrency", max_concurrency) if max_size is not None: - pulumi.set(__self__, "max_size", max_size) + _setter("max_size", max_size) if min_size is not None: - pulumi.set(__self__, "min_size", min_size) + _setter("min_size", min_size) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="autoScalingConfigurationName") @@ -124,29 +153,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _AutoScalingConfigurationVersionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_scaling_configuration_name=auto_scaling_configuration_name, + auto_scaling_configuration_revision=auto_scaling_configuration_revision, + latest=latest, + max_concurrency=max_concurrency, + max_size=max_size, + min_size=min_size, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_scaling_configuration_name: Optional[pulumi.Input[str]] = None, + auto_scaling_configuration_revision: Optional[pulumi.Input[int]] = None, + latest: Optional[pulumi.Input[bool]] = None, + max_concurrency: Optional[pulumi.Input[int]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_configuration_name is None and 'autoScalingConfigurationName' in kwargs: + auto_scaling_configuration_name = kwargs['autoScalingConfigurationName'] + if auto_scaling_configuration_revision is None and 'autoScalingConfigurationRevision' in kwargs: + auto_scaling_configuration_revision = kwargs['autoScalingConfigurationRevision'] + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_scaling_configuration_name is not None: - pulumi.set(__self__, "auto_scaling_configuration_name", auto_scaling_configuration_name) + _setter("auto_scaling_configuration_name", auto_scaling_configuration_name) if auto_scaling_configuration_revision is not None: - pulumi.set(__self__, "auto_scaling_configuration_revision", auto_scaling_configuration_revision) + _setter("auto_scaling_configuration_revision", auto_scaling_configuration_revision) if latest is not None: - pulumi.set(__self__, "latest", latest) + _setter("latest", latest) if max_concurrency is not None: - pulumi.set(__self__, "max_concurrency", max_concurrency) + _setter("max_concurrency", max_concurrency) if max_size is not None: - pulumi.set(__self__, "max_size", max_size) + _setter("max_size", max_size) if min_size is not None: - pulumi.set(__self__, "min_size", min_size) + _setter("min_size", min_size) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -361,6 +431,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AutoScalingConfigurationVersionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apprunner/connection.py b/sdk/python/pulumi_aws/apprunner/connection.py index 7b4dfcd0fcd..26650b84a6d 100644 --- a/sdk/python/pulumi_aws/apprunner/connection.py +++ b/sdk/python/pulumi_aws/apprunner/connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConnectionArgs', 'Connection'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] provider_type: Source repository provider. Valid values: `GITHUB`. :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. """ - pulumi.set(__self__, "connection_name", connection_name) - pulumi.set(__self__, "provider_type", provider_type) + ConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_name=connection_name, + provider_type=provider_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_name: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if connection_name is None: + raise TypeError("Missing 'connection_name' argument") + if provider_type is None and 'providerType' in kwargs: + provider_type = kwargs['providerType'] + if provider_type is None: + raise TypeError("Missing 'provider_type' argument") + + _setter("connection_name", connection_name) + _setter("provider_type", provider_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="connectionName") @@ -83,21 +106,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + connection_name=connection_name, + provider_type=provider_type, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + connection_name: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if provider_type is None and 'providerType' in kwargs: + provider_type = kwargs['providerType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if provider_type is not None: - pulumi.set(__self__, "provider_type", provider_type) + _setter("provider_type", provider_type) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -260,6 +310,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apprunner/custom_domain_association.py b/sdk/python/pulumi_aws/apprunner/custom_domain_association.py index 70ea94084c1..3b943919459 100644 --- a/sdk/python/pulumi_aws/apprunner/custom_domain_association.py +++ b/sdk/python/pulumi_aws/apprunner/custom_domain_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,35 @@ def __init__(__self__, *, :param pulumi.Input[str] service_arn: ARN of the App Runner service. :param pulumi.Input[bool] enable_www_subdomain: Whether to associate the subdomain with the App Runner service in addition to the base domain. Defaults to `true`. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "service_arn", service_arn) + CustomDomainAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + service_arn=service_arn, + enable_www_subdomain=enable_www_subdomain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + service_arn: Optional[pulumi.Input[str]] = None, + enable_www_subdomain: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if service_arn is None and 'serviceArn' in kwargs: + service_arn = kwargs['serviceArn'] + if service_arn is None: + raise TypeError("Missing 'service_arn' argument") + if enable_www_subdomain is None and 'enableWwwSubdomain' in kwargs: + enable_www_subdomain = kwargs['enableWwwSubdomain'] + + _setter("domain_name", domain_name) + _setter("service_arn", service_arn) if enable_www_subdomain is not None: - pulumi.set(__self__, "enable_www_subdomain", enable_www_subdomain) + _setter("enable_www_subdomain", enable_www_subdomain) @property @pulumi.getter(name="domainName") @@ -85,18 +110,49 @@ def __init__(__self__, *, :param pulumi.Input[str] service_arn: ARN of the App Runner service. :param pulumi.Input[str] status: Current state of the certificate CNAME record validation. It should change to `SUCCESS` after App Runner completes validation with your DNS. """ + _CustomDomainAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_validation_records=certificate_validation_records, + dns_target=dns_target, + domain_name=domain_name, + enable_www_subdomain=enable_www_subdomain, + service_arn=service_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_validation_records: Optional[pulumi.Input[Sequence[pulumi.Input['CustomDomainAssociationCertificateValidationRecordArgs']]]] = None, + dns_target: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + enable_www_subdomain: Optional[pulumi.Input[bool]] = None, + service_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_validation_records is None and 'certificateValidationRecords' in kwargs: + certificate_validation_records = kwargs['certificateValidationRecords'] + if dns_target is None and 'dnsTarget' in kwargs: + dns_target = kwargs['dnsTarget'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if enable_www_subdomain is None and 'enableWwwSubdomain' in kwargs: + enable_www_subdomain = kwargs['enableWwwSubdomain'] + if service_arn is None and 'serviceArn' in kwargs: + service_arn = kwargs['serviceArn'] + if certificate_validation_records is not None: - pulumi.set(__self__, "certificate_validation_records", certificate_validation_records) + _setter("certificate_validation_records", certificate_validation_records) if dns_target is not None: - pulumi.set(__self__, "dns_target", dns_target) + _setter("dns_target", dns_target) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if enable_www_subdomain is not None: - pulumi.set(__self__, "enable_www_subdomain", enable_www_subdomain) + _setter("enable_www_subdomain", enable_www_subdomain) if service_arn is not None: - pulumi.set(__self__, "service_arn", service_arn) + _setter("service_arn", service_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="certificateValidationRecords") @@ -250,6 +306,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomDomainAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apprunner/observability_configuration.py b/sdk/python/pulumi_aws/apprunner/observability_configuration.py index b0aed522616..04548e44aef 100644 --- a/sdk/python/pulumi_aws/apprunner/observability_configuration.py +++ b/sdk/python/pulumi_aws/apprunner/observability_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,32 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['ObservabilityConfigurationTraceConfigurationArgs'] trace_configuration: Configuration of the tracing feature within this observability configuration. If you don't specify it, App Runner doesn't enable tracing. See Trace Configuration below for more details. """ - pulumi.set(__self__, "observability_configuration_name", observability_configuration_name) + ObservabilityConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + observability_configuration_name=observability_configuration_name, + tags=tags, + trace_configuration=trace_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + observability_configuration_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + trace_configuration: Optional[pulumi.Input['ObservabilityConfigurationTraceConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if observability_configuration_name is None and 'observabilityConfigurationName' in kwargs: + observability_configuration_name = kwargs['observabilityConfigurationName'] + if observability_configuration_name is None: + raise TypeError("Missing 'observability_configuration_name' argument") + if trace_configuration is None and 'traceConfiguration' in kwargs: + trace_configuration = kwargs['traceConfiguration'] + + _setter("observability_configuration_name", observability_configuration_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if trace_configuration is not None: - pulumi.set(__self__, "trace_configuration", trace_configuration) + _setter("trace_configuration", trace_configuration) @property @pulumi.getter(name="observabilityConfigurationName") @@ -90,25 +111,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input['ObservabilityConfigurationTraceConfigurationArgs'] trace_configuration: Configuration of the tracing feature within this observability configuration. If you don't specify it, App Runner doesn't enable tracing. See Trace Configuration below for more details. """ + _ObservabilityConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + latest=latest, + observability_configuration_name=observability_configuration_name, + observability_configuration_revision=observability_configuration_revision, + status=status, + tags=tags, + tags_all=tags_all, + trace_configuration=trace_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + latest: Optional[pulumi.Input[bool]] = None, + observability_configuration_name: Optional[pulumi.Input[str]] = None, + observability_configuration_revision: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + trace_configuration: Optional[pulumi.Input['ObservabilityConfigurationTraceConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if observability_configuration_name is None and 'observabilityConfigurationName' in kwargs: + observability_configuration_name = kwargs['observabilityConfigurationName'] + if observability_configuration_revision is None and 'observabilityConfigurationRevision' in kwargs: + observability_configuration_revision = kwargs['observabilityConfigurationRevision'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if trace_configuration is None and 'traceConfiguration' in kwargs: + trace_configuration = kwargs['traceConfiguration'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if latest is not None: - pulumi.set(__self__, "latest", latest) + _setter("latest", latest) if observability_configuration_name is not None: - pulumi.set(__self__, "observability_configuration_name", observability_configuration_name) + _setter("observability_configuration_name", observability_configuration_name) if observability_configuration_revision is not None: - pulumi.set(__self__, "observability_configuration_revision", observability_configuration_revision) + _setter("observability_configuration_revision", observability_configuration_revision) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if trace_configuration is not None: - pulumi.set(__self__, "trace_configuration", trace_configuration) + _setter("trace_configuration", trace_configuration) @property @pulumi.getter @@ -295,6 +349,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ObservabilityConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -316,6 +374,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'observability_configuration_name'") __props__.__dict__["observability_configuration_name"] = observability_configuration_name __props__.__dict__["tags"] = tags + trace_configuration = _utilities.configure(trace_configuration, ObservabilityConfigurationTraceConfigurationArgs, True) __props__.__dict__["trace_configuration"] = trace_configuration __props__.__dict__["arn"] = None __props__.__dict__["latest"] = None diff --git a/sdk/python/pulumi_aws/apprunner/outputs.py b/sdk/python/pulumi_aws/apprunner/outputs.py index cf6d10f1196..19d7a288c82 100644 --- a/sdk/python/pulumi_aws/apprunner/outputs.py +++ b/sdk/python/pulumi_aws/apprunner/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -44,14 +44,31 @@ def __init__(__self__, *, :param str type: Record type, always `CNAME`. :param str value: Certificate CNAME record value. """ + CustomDomainAssociationCertificateValidationRecord._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + status=status, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + status: Optional[str] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -93,8 +110,19 @@ def __init__(__self__, *, """ :param str vendor: Implementation provider chosen for tracing App Runner services. Valid values: `AWSXRAY`. """ + ObservabilityConfigurationTraceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + vendor=vendor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vendor: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vendor is not None: - pulumi.set(__self__, "vendor", vendor) + _setter("vendor", vendor) @property @pulumi.getter @@ -129,7 +157,22 @@ def __init__(__self__, *, """ :param str kms_key: ARN of the KMS key used for encryption. """ - pulumi.set(__self__, "kms_key", kms_key) + ServiceEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key=kms_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if kms_key is None: + raise TypeError("Missing 'kms_key' argument") + + _setter("kms_key", kms_key) @property @pulumi.getter(name="kmsKey") @@ -176,18 +219,43 @@ def __init__(__self__, *, :param int timeout: Time, in seconds, to wait for a health check response before deciding it failed. Defaults to 2. Minimum value of 1. Maximum value of 20. :param int unhealthy_threshold: Number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Defaults to 5. Minimum value of 1. Maximum value of 20. """ + ServiceHealthCheckConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval=interval, + path=path, + protocol=protocol, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[int] = None, + interval: Optional[int] = None, + path: Optional[str] = None, + protocol: Optional[str] = None, + timeout: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if healthy_threshold is not None: - pulumi.set(__self__, "healthy_threshold", healthy_threshold) + _setter("healthy_threshold", healthy_threshold) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if unhealthy_threshold is not None: - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter(name="healthyThreshold") @@ -266,12 +334,29 @@ def __init__(__self__, *, :param str instance_role_arn: ARN of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs. :param str memory: Amount of memory, in MB or GB, reserved for each instance of your App Runner service. Defaults to `2048`. Valid values: `512|1024|2048|3072|4096|6144|8192|10240|12288|(0.5|1|2|3|4|6|8|10|12) GB`. """ + ServiceInstanceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu=cpu, + instance_role_arn=instance_role_arn, + memory=memory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu: Optional[str] = None, + instance_role_arn: Optional[str] = None, + memory: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_role_arn is None and 'instanceRoleArn' in kwargs: + instance_role_arn = kwargs['instanceRoleArn'] + if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if instance_role_arn is not None: - pulumi.set(__self__, "instance_role_arn", instance_role_arn) + _setter("instance_role_arn", instance_role_arn) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) @property @pulumi.getter @@ -326,10 +411,27 @@ def __init__(__self__, *, :param 'ServiceNetworkConfigurationEgressConfigurationArgs' egress_configuration: Network configuration settings for outbound message traffic. See Egress Configuration below for more details. :param 'ServiceNetworkConfigurationIngressConfigurationArgs' ingress_configuration: Network configuration settings for inbound network traffic. See Ingress Configuration below for more details. """ + ServiceNetworkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + egress_configuration=egress_configuration, + ingress_configuration=ingress_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + egress_configuration: Optional['outputs.ServiceNetworkConfigurationEgressConfiguration'] = None, + ingress_configuration: Optional['outputs.ServiceNetworkConfigurationIngressConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if egress_configuration is None and 'egressConfiguration' in kwargs: + egress_configuration = kwargs['egressConfiguration'] + if ingress_configuration is None and 'ingressConfiguration' in kwargs: + ingress_configuration = kwargs['ingressConfiguration'] + if egress_configuration is not None: - pulumi.set(__self__, "egress_configuration", egress_configuration) + _setter("egress_configuration", egress_configuration) if ingress_configuration is not None: - pulumi.set(__self__, "ingress_configuration", ingress_configuration) + _setter("ingress_configuration", ingress_configuration) @property @pulumi.getter(name="egressConfiguration") @@ -376,10 +478,27 @@ def __init__(__self__, *, :param str egress_type: The type of egress configuration. Valid values are: `DEFAULT` and `VPC`. :param str vpc_connector_arn: The Amazon Resource Name (ARN) of the App Runner VPC connector that you want to associate with your App Runner service. Only valid when `EgressType = VPC`. """ + ServiceNetworkConfigurationEgressConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + egress_type=egress_type, + vpc_connector_arn=vpc_connector_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + egress_type: Optional[str] = None, + vpc_connector_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if egress_type is None and 'egressType' in kwargs: + egress_type = kwargs['egressType'] + if vpc_connector_arn is None and 'vpcConnectorArn' in kwargs: + vpc_connector_arn = kwargs['vpcConnectorArn'] + if egress_type is not None: - pulumi.set(__self__, "egress_type", egress_type) + _setter("egress_type", egress_type) if vpc_connector_arn is not None: - pulumi.set(__self__, "vpc_connector_arn", vpc_connector_arn) + _setter("vpc_connector_arn", vpc_connector_arn) @property @pulumi.getter(name="egressType") @@ -422,8 +541,21 @@ def __init__(__self__, *, """ :param bool is_publicly_accessible: Specifies whether your App Runner service is publicly accessible. To make the service publicly accessible set it to True. To make the service privately accessible, from only within an Amazon VPC set it to False. """ + ServiceNetworkConfigurationIngressConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_publicly_accessible=is_publicly_accessible, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_publicly_accessible: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_publicly_accessible is None and 'isPubliclyAccessible' in kwargs: + is_publicly_accessible = kwargs['isPubliclyAccessible'] + if is_publicly_accessible is not None: - pulumi.set(__self__, "is_publicly_accessible", is_publicly_accessible) + _setter("is_publicly_accessible", is_publicly_accessible) @property @pulumi.getter(name="isPubliclyAccessible") @@ -462,9 +594,28 @@ def __init__(__self__, *, :param bool observability_enabled: When `true`, an observability configuration resource is associated with the service. :param str observability_configuration_arn: ARN of the observability configuration that is associated with the service. Specified only when `observability_enabled` is `true`. """ - pulumi.set(__self__, "observability_enabled", observability_enabled) + ServiceObservabilityConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + observability_enabled=observability_enabled, + observability_configuration_arn=observability_configuration_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + observability_enabled: Optional[bool] = None, + observability_configuration_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if observability_enabled is None and 'observabilityEnabled' in kwargs: + observability_enabled = kwargs['observabilityEnabled'] + if observability_enabled is None: + raise TypeError("Missing 'observability_enabled' argument") + if observability_configuration_arn is None and 'observabilityConfigurationArn' in kwargs: + observability_configuration_arn = kwargs['observabilityConfigurationArn'] + + _setter("observability_enabled", observability_enabled) if observability_configuration_arn is not None: - pulumi.set(__self__, "observability_configuration_arn", observability_configuration_arn) + _setter("observability_configuration_arn", observability_configuration_arn) @property @pulumi.getter(name="observabilityEnabled") @@ -519,14 +670,39 @@ def __init__(__self__, *, :param 'ServiceSourceConfigurationCodeRepositoryArgs' code_repository: Description of a source code repository. See Code Repository below for more details. :param 'ServiceSourceConfigurationImageRepositoryArgs' image_repository: Description of a source image repository. See Image Repository below for more details. """ + ServiceSourceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_configuration=authentication_configuration, + auto_deployments_enabled=auto_deployments_enabled, + code_repository=code_repository, + image_repository=image_repository, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_configuration: Optional['outputs.ServiceSourceConfigurationAuthenticationConfiguration'] = None, + auto_deployments_enabled: Optional[bool] = None, + code_repository: Optional['outputs.ServiceSourceConfigurationCodeRepository'] = None, + image_repository: Optional['outputs.ServiceSourceConfigurationImageRepository'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_configuration is None and 'authenticationConfiguration' in kwargs: + authentication_configuration = kwargs['authenticationConfiguration'] + if auto_deployments_enabled is None and 'autoDeploymentsEnabled' in kwargs: + auto_deployments_enabled = kwargs['autoDeploymentsEnabled'] + if code_repository is None and 'codeRepository' in kwargs: + code_repository = kwargs['codeRepository'] + if image_repository is None and 'imageRepository' in kwargs: + image_repository = kwargs['imageRepository'] + if authentication_configuration is not None: - pulumi.set(__self__, "authentication_configuration", authentication_configuration) + _setter("authentication_configuration", authentication_configuration) if auto_deployments_enabled is not None: - pulumi.set(__self__, "auto_deployments_enabled", auto_deployments_enabled) + _setter("auto_deployments_enabled", auto_deployments_enabled) if code_repository is not None: - pulumi.set(__self__, "code_repository", code_repository) + _setter("code_repository", code_repository) if image_repository is not None: - pulumi.set(__self__, "image_repository", image_repository) + _setter("image_repository", image_repository) @property @pulumi.getter(name="authenticationConfiguration") @@ -589,10 +765,27 @@ def __init__(__self__, *, :param str access_role_arn: ARN of the IAM role that grants the App Runner service access to a source repository. Required for ECR image repositories (but not for ECR Public) :param str connection_arn: ARN of the App Runner connection that enables the App Runner service to connect to a source repository. Required for GitHub code repositories. """ + ServiceSourceConfigurationAuthenticationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_role_arn=access_role_arn, + connection_arn=connection_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_role_arn: Optional[str] = None, + connection_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_role_arn is None and 'accessRoleArn' in kwargs: + access_role_arn = kwargs['accessRoleArn'] + if connection_arn is None and 'connectionArn' in kwargs: + connection_arn = kwargs['connectionArn'] + if access_role_arn is not None: - pulumi.set(__self__, "access_role_arn", access_role_arn) + _setter("access_role_arn", access_role_arn) if connection_arn is not None: - pulumi.set(__self__, "connection_arn", connection_arn) + _setter("connection_arn", connection_arn) @property @pulumi.getter(name="accessRoleArn") @@ -643,10 +836,35 @@ def __init__(__self__, *, :param 'ServiceSourceConfigurationCodeRepositorySourceCodeVersionArgs' source_code_version: Version that should be used within the source code repository. See Source Code Version below for more details. :param 'ServiceSourceConfigurationCodeRepositoryCodeConfigurationArgs' code_configuration: Configuration for building and running the service from a source code repository. See Code Configuration below for more details. """ - pulumi.set(__self__, "repository_url", repository_url) - pulumi.set(__self__, "source_code_version", source_code_version) + ServiceSourceConfigurationCodeRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + source_code_version=source_code_version, + code_configuration=code_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[str] = None, + source_code_version: Optional['outputs.ServiceSourceConfigurationCodeRepositorySourceCodeVersion'] = None, + code_configuration: Optional['outputs.ServiceSourceConfigurationCodeRepositoryCodeConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + if source_code_version is None and 'sourceCodeVersion' in kwargs: + source_code_version = kwargs['sourceCodeVersion'] + if source_code_version is None: + raise TypeError("Missing 'source_code_version' argument") + if code_configuration is None and 'codeConfiguration' in kwargs: + code_configuration = kwargs['codeConfiguration'] + + _setter("repository_url", repository_url) + _setter("source_code_version", source_code_version) if code_configuration is not None: - pulumi.set(__self__, "code_configuration", code_configuration) + _setter("code_configuration", code_configuration) @property @pulumi.getter(name="repositoryUrl") @@ -701,9 +919,28 @@ def __init__(__self__, *, :param str configuration_source: Source of the App Runner configuration. Valid values: `REPOSITORY`, `API`. Values are interpreted as follows: :param 'ServiceSourceConfigurationCodeRepositoryCodeConfigurationCodeConfigurationValuesArgs' code_configuration_values: Basic configuration for building and running the App Runner service. Use this parameter to quickly launch an App Runner service without providing an apprunner.yaml file in the source code repository (or ignoring the file if it exists). See Code Configuration Values below for more details. """ - pulumi.set(__self__, "configuration_source", configuration_source) + ServiceSourceConfigurationCodeRepositoryCodeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_source=configuration_source, + code_configuration_values=code_configuration_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_source: Optional[str] = None, + code_configuration_values: Optional['outputs.ServiceSourceConfigurationCodeRepositoryCodeConfigurationCodeConfigurationValues'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_source is None and 'configurationSource' in kwargs: + configuration_source = kwargs['configurationSource'] + if configuration_source is None: + raise TypeError("Missing 'configuration_source' argument") + if code_configuration_values is None and 'codeConfigurationValues' in kwargs: + code_configuration_values = kwargs['codeConfigurationValues'] + + _setter("configuration_source", configuration_source) if code_configuration_values is not None: - pulumi.set(__self__, "code_configuration_values", code_configuration_values) + _setter("code_configuration_values", code_configuration_values) @property @pulumi.getter(name="configurationSource") @@ -762,17 +999,48 @@ def __init__(__self__, *, :param Mapping[str, str] runtime_environment_variables: Environment variables available to your running App Runner service. A map of key/value pairs. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid. :param str start_command: Command App Runner runs to start your application. """ - pulumi.set(__self__, "runtime", runtime) + ServiceSourceConfigurationCodeRepositoryCodeConfigurationCodeConfigurationValues._configure( + lambda key, value: pulumi.set(__self__, key, value), + runtime=runtime, + build_command=build_command, + port=port, + runtime_environment_secrets=runtime_environment_secrets, + runtime_environment_variables=runtime_environment_variables, + start_command=start_command, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + runtime: Optional[str] = None, + build_command: Optional[str] = None, + port: Optional[str] = None, + runtime_environment_secrets: Optional[Mapping[str, str]] = None, + runtime_environment_variables: Optional[Mapping[str, str]] = None, + start_command: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if runtime is None: + raise TypeError("Missing 'runtime' argument") + if build_command is None and 'buildCommand' in kwargs: + build_command = kwargs['buildCommand'] + if runtime_environment_secrets is None and 'runtimeEnvironmentSecrets' in kwargs: + runtime_environment_secrets = kwargs['runtimeEnvironmentSecrets'] + if runtime_environment_variables is None and 'runtimeEnvironmentVariables' in kwargs: + runtime_environment_variables = kwargs['runtimeEnvironmentVariables'] + if start_command is None and 'startCommand' in kwargs: + start_command = kwargs['startCommand'] + + _setter("runtime", runtime) if build_command is not None: - pulumi.set(__self__, "build_command", build_command) + _setter("build_command", build_command) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if runtime_environment_secrets is not None: - pulumi.set(__self__, "runtime_environment_secrets", runtime_environment_secrets) + _setter("runtime_environment_secrets", runtime_environment_secrets) if runtime_environment_variables is not None: - pulumi.set(__self__, "runtime_environment_variables", runtime_environment_variables) + _setter("runtime_environment_variables", runtime_environment_variables) if start_command is not None: - pulumi.set(__self__, "start_command", start_command) + _setter("start_command", start_command) @property @pulumi.getter @@ -832,8 +1100,25 @@ def __init__(__self__, *, :param str type: Type of version identifier. For a git-based repository, branches represent versions. Valid values: `BRANCH`. :param str value: Source code version. For a git-based repository, a branch name maps to a specific version. App Runner uses the most recent commit to the branch. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + ServiceSourceConfigurationCodeRepositorySourceCodeVersion._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -885,10 +1170,35 @@ def __init__(__self__, *, :param str image_repository_type: Type of the image repository. This reflects the repository provider and whether the repository is private or public. Valid values: `ECR` , `ECR_PUBLIC`. :param 'ServiceSourceConfigurationImageRepositoryImageConfigurationArgs' image_configuration: Configuration for running the identified image. See Image Configuration below for more details. """ - pulumi.set(__self__, "image_identifier", image_identifier) - pulumi.set(__self__, "image_repository_type", image_repository_type) + ServiceSourceConfigurationImageRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_identifier=image_identifier, + image_repository_type=image_repository_type, + image_configuration=image_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_identifier: Optional[str] = None, + image_repository_type: Optional[str] = None, + image_configuration: Optional['outputs.ServiceSourceConfigurationImageRepositoryImageConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_identifier is None and 'imageIdentifier' in kwargs: + image_identifier = kwargs['imageIdentifier'] + if image_identifier is None: + raise TypeError("Missing 'image_identifier' argument") + if image_repository_type is None and 'imageRepositoryType' in kwargs: + image_repository_type = kwargs['imageRepositoryType'] + if image_repository_type is None: + raise TypeError("Missing 'image_repository_type' argument") + if image_configuration is None and 'imageConfiguration' in kwargs: + image_configuration = kwargs['imageConfiguration'] + + _setter("image_identifier", image_identifier) + _setter("image_repository_type", image_repository_type) if image_configuration is not None: - pulumi.set(__self__, "image_configuration", image_configuration) + _setter("image_configuration", image_configuration) @property @pulumi.getter(name="imageIdentifier") @@ -950,14 +1260,37 @@ def __init__(__self__, *, :param Mapping[str, str] runtime_environment_variables: Environment variables available to your running App Runner service. A map of key/value pairs. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid. :param str start_command: Command App Runner runs to start the application in the source image. If specified, this command overrides the Docker image’s default start command. """ + ServiceSourceConfigurationImageRepositoryImageConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + runtime_environment_secrets=runtime_environment_secrets, + runtime_environment_variables=runtime_environment_variables, + start_command=start_command, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[str] = None, + runtime_environment_secrets: Optional[Mapping[str, str]] = None, + runtime_environment_variables: Optional[Mapping[str, str]] = None, + start_command: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if runtime_environment_secrets is None and 'runtimeEnvironmentSecrets' in kwargs: + runtime_environment_secrets = kwargs['runtimeEnvironmentSecrets'] + if runtime_environment_variables is None and 'runtimeEnvironmentVariables' in kwargs: + runtime_environment_variables = kwargs['runtimeEnvironmentVariables'] + if start_command is None and 'startCommand' in kwargs: + start_command = kwargs['startCommand'] + if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if runtime_environment_secrets is not None: - pulumi.set(__self__, "runtime_environment_secrets", runtime_environment_secrets) + _setter("runtime_environment_secrets", runtime_environment_secrets) if runtime_environment_variables is not None: - pulumi.set(__self__, "runtime_environment_variables", runtime_environment_variables) + _setter("runtime_environment_variables", runtime_environment_variables) if start_command is not None: - pulumi.set(__self__, "start_command", start_command) + _setter("start_command", start_command) @property @pulumi.getter @@ -1020,10 +1353,27 @@ def __init__(__self__, *, :param str vpc_endpoint_id: The ID of the VPC endpoint that your App Runner service connects to. :param str vpc_id: The ID of the VPC that is used for the VPC endpoint. """ + VpcIngressConnectionIngressVpcConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_endpoint_id: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="vpcEndpointId") diff --git a/sdk/python/pulumi_aws/apprunner/service.py b/sdk/python/pulumi_aws/apprunner/service.py index 97b87259847..f8642c7e1e6 100644 --- a/sdk/python/pulumi_aws/apprunner/service.py +++ b/sdk/python/pulumi_aws/apprunner/service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,22 +39,69 @@ def __init__(__self__, *, :param pulumi.Input['ServiceObservabilityConfigurationArgs'] observability_configuration: The observability configuration of your service. See Observability Configuration below for more details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "service_name", service_name) - pulumi.set(__self__, "source_configuration", source_configuration) + ServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_name=service_name, + source_configuration=source_configuration, + auto_scaling_configuration_arn=auto_scaling_configuration_arn, + encryption_configuration=encryption_configuration, + health_check_configuration=health_check_configuration, + instance_configuration=instance_configuration, + network_configuration=network_configuration, + observability_configuration=observability_configuration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_name: Optional[pulumi.Input[str]] = None, + source_configuration: Optional[pulumi.Input['ServiceSourceConfigurationArgs']] = None, + auto_scaling_configuration_arn: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['ServiceEncryptionConfigurationArgs']] = None, + health_check_configuration: Optional[pulumi.Input['ServiceHealthCheckConfigurationArgs']] = None, + instance_configuration: Optional[pulumi.Input['ServiceInstanceConfigurationArgs']] = None, + network_configuration: Optional[pulumi.Input['ServiceNetworkConfigurationArgs']] = None, + observability_configuration: Optional[pulumi.Input['ServiceObservabilityConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + if source_configuration is None and 'sourceConfiguration' in kwargs: + source_configuration = kwargs['sourceConfiguration'] + if source_configuration is None: + raise TypeError("Missing 'source_configuration' argument") + if auto_scaling_configuration_arn is None and 'autoScalingConfigurationArn' in kwargs: + auto_scaling_configuration_arn = kwargs['autoScalingConfigurationArn'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if health_check_configuration is None and 'healthCheckConfiguration' in kwargs: + health_check_configuration = kwargs['healthCheckConfiguration'] + if instance_configuration is None and 'instanceConfiguration' in kwargs: + instance_configuration = kwargs['instanceConfiguration'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if observability_configuration is None and 'observabilityConfiguration' in kwargs: + observability_configuration = kwargs['observabilityConfiguration'] + + _setter("service_name", service_name) + _setter("source_configuration", source_configuration) if auto_scaling_configuration_arn is not None: - pulumi.set(__self__, "auto_scaling_configuration_arn", auto_scaling_configuration_arn) + _setter("auto_scaling_configuration_arn", auto_scaling_configuration_arn) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if health_check_configuration is not None: - pulumi.set(__self__, "health_check_configuration", health_check_configuration) + _setter("health_check_configuration", health_check_configuration) if instance_configuration is not None: - pulumi.set(__self__, "instance_configuration", instance_configuration) + _setter("instance_configuration", instance_configuration) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if observability_configuration is not None: - pulumi.set(__self__, "observability_configuration", observability_configuration) + _setter("observability_configuration", observability_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="serviceName") @@ -203,37 +250,96 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ServiceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_scaling_configuration_arn=auto_scaling_configuration_arn, + encryption_configuration=encryption_configuration, + health_check_configuration=health_check_configuration, + instance_configuration=instance_configuration, + network_configuration=network_configuration, + observability_configuration=observability_configuration, + service_id=service_id, + service_name=service_name, + service_url=service_url, + source_configuration=source_configuration, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_scaling_configuration_arn: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['ServiceEncryptionConfigurationArgs']] = None, + health_check_configuration: Optional[pulumi.Input['ServiceHealthCheckConfigurationArgs']] = None, + instance_configuration: Optional[pulumi.Input['ServiceInstanceConfigurationArgs']] = None, + network_configuration: Optional[pulumi.Input['ServiceNetworkConfigurationArgs']] = None, + observability_configuration: Optional[pulumi.Input['ServiceObservabilityConfigurationArgs']] = None, + service_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + service_url: Optional[pulumi.Input[str]] = None, + source_configuration: Optional[pulumi.Input['ServiceSourceConfigurationArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_configuration_arn is None and 'autoScalingConfigurationArn' in kwargs: + auto_scaling_configuration_arn = kwargs['autoScalingConfigurationArn'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if health_check_configuration is None and 'healthCheckConfiguration' in kwargs: + health_check_configuration = kwargs['healthCheckConfiguration'] + if instance_configuration is None and 'instanceConfiguration' in kwargs: + instance_configuration = kwargs['instanceConfiguration'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if observability_configuration is None and 'observabilityConfiguration' in kwargs: + observability_configuration = kwargs['observabilityConfiguration'] + if service_id is None and 'serviceId' in kwargs: + service_id = kwargs['serviceId'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_url is None and 'serviceUrl' in kwargs: + service_url = kwargs['serviceUrl'] + if source_configuration is None and 'sourceConfiguration' in kwargs: + source_configuration = kwargs['sourceConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_scaling_configuration_arn is not None: - pulumi.set(__self__, "auto_scaling_configuration_arn", auto_scaling_configuration_arn) + _setter("auto_scaling_configuration_arn", auto_scaling_configuration_arn) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if health_check_configuration is not None: - pulumi.set(__self__, "health_check_configuration", health_check_configuration) + _setter("health_check_configuration", health_check_configuration) if instance_configuration is not None: - pulumi.set(__self__, "instance_configuration", instance_configuration) + _setter("instance_configuration", instance_configuration) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if observability_configuration is not None: - pulumi.set(__self__, "observability_configuration", observability_configuration) + _setter("observability_configuration", observability_configuration) if service_id is not None: - pulumi.set(__self__, "service_id", service_id) + _setter("service_id", service_id) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if service_url is not None: - pulumi.set(__self__, "service_url", service_url) + _setter("service_url", service_url) if source_configuration is not None: - pulumi.set(__self__, "source_configuration", source_configuration) + _setter("source_configuration", source_configuration) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -664,6 +770,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -688,14 +798,20 @@ def _internal_init(__self__, __props__ = ServiceArgs.__new__(ServiceArgs) __props__.__dict__["auto_scaling_configuration_arn"] = auto_scaling_configuration_arn + encryption_configuration = _utilities.configure(encryption_configuration, ServiceEncryptionConfigurationArgs, True) __props__.__dict__["encryption_configuration"] = encryption_configuration + health_check_configuration = _utilities.configure(health_check_configuration, ServiceHealthCheckConfigurationArgs, True) __props__.__dict__["health_check_configuration"] = health_check_configuration + instance_configuration = _utilities.configure(instance_configuration, ServiceInstanceConfigurationArgs, True) __props__.__dict__["instance_configuration"] = instance_configuration + network_configuration = _utilities.configure(network_configuration, ServiceNetworkConfigurationArgs, True) __props__.__dict__["network_configuration"] = network_configuration + observability_configuration = _utilities.configure(observability_configuration, ServiceObservabilityConfigurationArgs, True) __props__.__dict__["observability_configuration"] = observability_configuration if service_name is None and not opts.urn: raise TypeError("Missing required property 'service_name'") __props__.__dict__["service_name"] = service_name + source_configuration = _utilities.configure(source_configuration, ServiceSourceConfigurationArgs, True) if source_configuration is None and not opts.urn: raise TypeError("Missing required property 'source_configuration'") __props__.__dict__["source_configuration"] = source_configuration diff --git a/sdk/python/pulumi_aws/apprunner/vpc_connector.py b/sdk/python/pulumi_aws/apprunner/vpc_connector.py index e8ef56d46b0..82c33debbaa 100644 --- a/sdk/python/pulumi_aws/apprunner/vpc_connector.py +++ b/sdk/python/pulumi_aws/apprunner/vpc_connector.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcConnectorArgs', 'VpcConnector'] @@ -25,11 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_connector_name: Name for the VPC connector. :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. """ - pulumi.set(__self__, "security_groups", security_groups) - pulumi.set(__self__, "subnets", subnets) - pulumi.set(__self__, "vpc_connector_name", vpc_connector_name) + VpcConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_groups=security_groups, + subnets=subnets, + vpc_connector_name=vpc_connector_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_connector_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is None: + raise TypeError("Missing 'security_groups' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if vpc_connector_name is None and 'vpcConnectorName' in kwargs: + vpc_connector_name = kwargs['vpcConnectorName'] + if vpc_connector_name is None: + raise TypeError("Missing 'vpc_connector_name' argument") + + _setter("security_groups", security_groups) + _setter("subnets", subnets) + _setter("vpc_connector_name", vpc_connector_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="securityGroups") @@ -102,25 +129,58 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_connector_name: Name for the VPC connector. :param pulumi.Input[int] vpc_connector_revision: The revision of VPC connector. It's unique among all the active connectors ("Status": "ACTIVE") that share the same Name. """ + _VpcConnectorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + security_groups=security_groups, + status=status, + subnets=subnets, + tags=tags, + tags_all=tags_all, + vpc_connector_name=vpc_connector_name, + vpc_connector_revision=vpc_connector_revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + status: Optional[pulumi.Input[str]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_connector_name: Optional[pulumi.Input[str]] = None, + vpc_connector_revision: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_connector_name is None and 'vpcConnectorName' in kwargs: + vpc_connector_name = kwargs['vpcConnectorName'] + if vpc_connector_revision is None and 'vpcConnectorRevision' in kwargs: + vpc_connector_revision = kwargs['vpcConnectorRevision'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_connector_name is not None: - pulumi.set(__self__, "vpc_connector_name", vpc_connector_name) + _setter("vpc_connector_name", vpc_connector_name) if vpc_connector_revision is not None: - pulumi.set(__self__, "vpc_connector_revision", vpc_connector_revision) + _setter("vpc_connector_revision", vpc_connector_revision) @property @pulumi.getter @@ -313,6 +373,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcConnectorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/apprunner/vpc_ingress_connection.py b/sdk/python/pulumi_aws/apprunner/vpc_ingress_connection.py index b8d18a4e47b..1e8c1cbf914 100644 --- a/sdk/python/pulumi_aws/apprunner/vpc_ingress_connection.py +++ b/sdk/python/pulumi_aws/apprunner/vpc_ingress_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name for the VPC Ingress Connection resource. It must be unique across all the active VPC Ingress Connections in your AWS account in the AWS Region. :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. """ - pulumi.set(__self__, "ingress_vpc_configuration", ingress_vpc_configuration) - pulumi.set(__self__, "service_arn", service_arn) + VpcIngressConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ingress_vpc_configuration=ingress_vpc_configuration, + service_arn=service_arn, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ingress_vpc_configuration: Optional[pulumi.Input['VpcIngressConnectionIngressVpcConfigurationArgs']] = None, + service_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ingress_vpc_configuration is None and 'ingressVpcConfiguration' in kwargs: + ingress_vpc_configuration = kwargs['ingressVpcConfiguration'] + if ingress_vpc_configuration is None: + raise TypeError("Missing 'ingress_vpc_configuration' argument") + if service_arn is None and 'serviceArn' in kwargs: + service_arn = kwargs['serviceArn'] + if service_arn is None: + raise TypeError("Missing 'service_arn' argument") + + _setter("ingress_vpc_configuration", ingress_vpc_configuration) + _setter("service_arn", service_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="ingressVpcConfiguration") @@ -105,25 +130,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _VpcIngressConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domain_name=domain_name, + ingress_vpc_configuration=ingress_vpc_configuration, + name=name, + service_arn=service_arn, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + ingress_vpc_configuration: Optional[pulumi.Input['VpcIngressConnectionIngressVpcConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + service_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if ingress_vpc_configuration is None and 'ingressVpcConfiguration' in kwargs: + ingress_vpc_configuration = kwargs['ingressVpcConfiguration'] + if service_arn is None and 'serviceArn' in kwargs: + service_arn = kwargs['serviceArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if ingress_vpc_configuration is not None: - pulumi.set(__self__, "ingress_vpc_configuration", ingress_vpc_configuration) + _setter("ingress_vpc_configuration", ingress_vpc_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if service_arn is not None: - pulumi.set(__self__, "service_arn", service_arn) + _setter("service_arn", service_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -314,6 +372,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIngressConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -332,6 +394,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = VpcIngressConnectionArgs.__new__(VpcIngressConnectionArgs) + ingress_vpc_configuration = _utilities.configure(ingress_vpc_configuration, VpcIngressConnectionIngressVpcConfigurationArgs, True) if ingress_vpc_configuration is None and not opts.urn: raise TypeError("Missing required property 'ingress_vpc_configuration'") __props__.__dict__["ingress_vpc_configuration"] = ingress_vpc_configuration diff --git a/sdk/python/pulumi_aws/appstream/_inputs.py b/sdk/python/pulumi_aws/appstream/_inputs.py index 0237c1e1936..82e8cafe31e 100644 --- a/sdk/python/pulumi_aws/appstream/_inputs.py +++ b/sdk/python/pulumi_aws/appstream/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -33,8 +33,29 @@ def __init__(__self__, *, :param pulumi.Input[str] account_name: User name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified. :param pulumi.Input[str] account_password: Password for the account. """ - pulumi.set(__self__, "account_name", account_name) - pulumi.set(__self__, "account_password", account_password) + DirectoryConfigServiceAccountCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_name=account_name, + account_password=account_password, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_name: Optional[pulumi.Input[str]] = None, + account_password: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_name is None and 'accountName' in kwargs: + account_name = kwargs['accountName'] + if account_name is None: + raise TypeError("Missing 'account_name' argument") + if account_password is None and 'accountPassword' in kwargs: + account_password = kwargs['accountPassword'] + if account_password is None: + raise TypeError("Missing 'account_password' argument") + + _setter("account_name", account_name) + _setter("account_password", account_password) @property @pulumi.getter(name="accountName") @@ -74,13 +95,36 @@ def __init__(__self__, *, :param pulumi.Input[int] in_use: Number of instances in use for streaming. :param pulumi.Input[int] running: Total number of simultaneous streaming instances that are running. """ - pulumi.set(__self__, "desired_instances", desired_instances) + FleetComputeCapacityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_instances=desired_instances, + available=available, + in_use=in_use, + running=running, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_instances: Optional[pulumi.Input[int]] = None, + available: Optional[pulumi.Input[int]] = None, + in_use: Optional[pulumi.Input[int]] = None, + running: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_instances is None and 'desiredInstances' in kwargs: + desired_instances = kwargs['desiredInstances'] + if desired_instances is None: + raise TypeError("Missing 'desired_instances' argument") + if in_use is None and 'inUse' in kwargs: + in_use = kwargs['inUse'] + + _setter("desired_instances", desired_instances) if available is not None: - pulumi.set(__self__, "available", available) + _setter("available", available) if in_use is not None: - pulumi.set(__self__, "in_use", in_use) + _setter("in_use", in_use) if running is not None: - pulumi.set(__self__, "running", running) + _setter("running", running) @property @pulumi.getter(name="desiredInstances") @@ -140,10 +184,27 @@ def __init__(__self__, *, :param pulumi.Input[str] directory_name: Fully qualified name of the directory (for example, corp.example.com). :param pulumi.Input[str] organizational_unit_distinguished_name: Distinguished name of the organizational unit for computer accounts. """ + FleetDomainJoinInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_name=directory_name, + organizational_unit_distinguished_name=organizational_unit_distinguished_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_name: Optional[pulumi.Input[str]] = None, + organizational_unit_distinguished_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_name is None and 'directoryName' in kwargs: + directory_name = kwargs['directoryName'] + if organizational_unit_distinguished_name is None and 'organizationalUnitDistinguishedName' in kwargs: + organizational_unit_distinguished_name = kwargs['organizationalUnitDistinguishedName'] + if directory_name is not None: - pulumi.set(__self__, "directory_name", directory_name) + _setter("directory_name", directory_name) if organizational_unit_distinguished_name is not None: - pulumi.set(__self__, "organizational_unit_distinguished_name", organizational_unit_distinguished_name) + _setter("organizational_unit_distinguished_name", organizational_unit_distinguished_name) @property @pulumi.getter(name="directoryName") @@ -179,10 +240,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: Identifiers of the security groups for the fleet or image builder. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: Identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. """ + FleetVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") @@ -218,9 +296,28 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint_type: Type of interface endpoint. :param pulumi.Input[str] vpce_id: Identifier (ID) of the VPC in which the interface endpoint is used. """ - pulumi.set(__self__, "endpoint_type", endpoint_type) + ImageBuilderAccessEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_type=endpoint_type, + vpce_id=vpce_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_type: Optional[pulumi.Input[str]] = None, + vpce_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + if vpce_id is None and 'vpceId' in kwargs: + vpce_id = kwargs['vpceId'] + + _setter("endpoint_type", endpoint_type) if vpce_id is not None: - pulumi.set(__self__, "vpce_id", vpce_id) + _setter("vpce_id", vpce_id) @property @pulumi.getter(name="endpointType") @@ -256,10 +353,27 @@ def __init__(__self__, *, :param pulumi.Input[str] directory_name: Fully qualified name of the directory (for example, corp.example.com). :param pulumi.Input[str] organizational_unit_distinguished_name: Distinguished name of the organizational unit for computer accounts. """ + ImageBuilderDomainJoinInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_name=directory_name, + organizational_unit_distinguished_name=organizational_unit_distinguished_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_name: Optional[pulumi.Input[str]] = None, + organizational_unit_distinguished_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_name is None and 'directoryName' in kwargs: + directory_name = kwargs['directoryName'] + if organizational_unit_distinguished_name is None and 'organizationalUnitDistinguishedName' in kwargs: + organizational_unit_distinguished_name = kwargs['organizationalUnitDistinguishedName'] + if directory_name is not None: - pulumi.set(__self__, "directory_name", directory_name) + _setter("directory_name", directory_name) if organizational_unit_distinguished_name is not None: - pulumi.set(__self__, "organizational_unit_distinguished_name", organizational_unit_distinguished_name) + _setter("organizational_unit_distinguished_name", organizational_unit_distinguished_name) @property @pulumi.getter(name="directoryName") @@ -295,10 +409,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: Identifiers of the security groups for the image builder or image builder. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: Identifiers of the subnets to which a network interface is attached from the image builder instance or image builder instance. """ + ImageBuilderVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") @@ -335,9 +466,28 @@ def __init__(__self__, *, See the [`AccessEndpoint` AWS API documentation](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_AccessEndpoint.html) for valid values. :param pulumi.Input[str] vpce_id: ID of the VPC in which the interface endpoint is used. """ - pulumi.set(__self__, "endpoint_type", endpoint_type) + StackAccessEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_type=endpoint_type, + vpce_id=vpce_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_type: Optional[pulumi.Input[str]] = None, + vpce_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + if vpce_id is None and 'vpceId' in kwargs: + vpce_id = kwargs['vpceId'] + + _setter("endpoint_type", endpoint_type) if vpce_id is not None: - pulumi.set(__self__, "vpce_id", vpce_id) + _setter("vpce_id", vpce_id) @property @pulumi.getter(name="endpointType") @@ -376,9 +526,26 @@ def __init__(__self__, *, Required when `enabled` is `true`. Can be up to 100 characters. """ - pulumi.set(__self__, "enabled", enabled) + StackApplicationSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + settings_group=settings_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + settings_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if settings_group is None and 'settingsGroup' in kwargs: + settings_group = kwargs['settingsGroup'] + + _setter("enabled", enabled) if settings_group is not None: - pulumi.set(__self__, "settings_group", settings_group) + _setter("settings_group", settings_group) @property @pulumi.getter @@ -419,11 +586,32 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] domains: Names of the domains for the account. :param pulumi.Input[str] resource_identifier: ARN of the storage connector. """ - pulumi.set(__self__, "connector_type", connector_type) + StackStorageConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connector_type=connector_type, + domains=domains, + resource_identifier=resource_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connector_type: Optional[pulumi.Input[str]] = None, + domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connector_type is None and 'connectorType' in kwargs: + connector_type = kwargs['connectorType'] + if connector_type is None: + raise TypeError("Missing 'connector_type' argument") + if resource_identifier is None and 'resourceIdentifier' in kwargs: + resource_identifier = kwargs['resourceIdentifier'] + + _setter("connector_type", connector_type) if domains is not None: - pulumi.set(__self__, "domains", domains) + _setter("domains", domains) if resource_identifier is not None: - pulumi.set(__self__, "resource_identifier", resource_identifier) + _setter("resource_identifier", resource_identifier) @property @pulumi.getter(name="connectorType") @@ -471,8 +659,21 @@ def __init__(__self__, *, :param pulumi.Input[str] preferred_protocol: The preferred protocol that you want to use while streaming your application. Valid values are `TCP` and `UDP`. """ + StackStreamingExperienceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + preferred_protocol=preferred_protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + preferred_protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if preferred_protocol is None and 'preferredProtocol' in kwargs: + preferred_protocol = kwargs['preferredProtocol'] + if preferred_protocol is not None: - pulumi.set(__self__, "preferred_protocol", preferred_protocol) + _setter("preferred_protocol", preferred_protocol) @property @pulumi.getter(name="preferredProtocol") @@ -499,8 +700,25 @@ def __init__(__self__, *, :param pulumi.Input[str] permission: Whether the action is enabled or disabled. Valid values are `ENABLED` or `DISABLED`. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "permission", permission) + StackUserSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + permission=permission, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + permission: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if permission is None: + raise TypeError("Missing 'permission' argument") + + _setter("action", action) + _setter("permission", permission) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/appstream/directory_config.py b/sdk/python/pulumi_aws/appstream/directory_config.py index dabc38e5bd2..c1a69fd3177 100644 --- a/sdk/python/pulumi_aws/appstream/directory_config.py +++ b/sdk/python/pulumi_aws/appstream/directory_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] organizational_unit_distinguished_names: Distinguished names of the organizational units for computer accounts. :param pulumi.Input['DirectoryConfigServiceAccountCredentialsArgs'] service_account_credentials: Configuration block for the name of the directory and organizational unit (OU) to use to join the directory config to a Microsoft Active Directory domain. See `service_account_credentials` below. """ - pulumi.set(__self__, "directory_name", directory_name) - pulumi.set(__self__, "organizational_unit_distinguished_names", organizational_unit_distinguished_names) - pulumi.set(__self__, "service_account_credentials", service_account_credentials) + DirectoryConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_name=directory_name, + organizational_unit_distinguished_names=organizational_unit_distinguished_names, + service_account_credentials=service_account_credentials, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_name: Optional[pulumi.Input[str]] = None, + organizational_unit_distinguished_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + service_account_credentials: Optional[pulumi.Input['DirectoryConfigServiceAccountCredentialsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_name is None and 'directoryName' in kwargs: + directory_name = kwargs['directoryName'] + if directory_name is None: + raise TypeError("Missing 'directory_name' argument") + if organizational_unit_distinguished_names is None and 'organizationalUnitDistinguishedNames' in kwargs: + organizational_unit_distinguished_names = kwargs['organizationalUnitDistinguishedNames'] + if organizational_unit_distinguished_names is None: + raise TypeError("Missing 'organizational_unit_distinguished_names' argument") + if service_account_credentials is None and 'serviceAccountCredentials' in kwargs: + service_account_credentials = kwargs['serviceAccountCredentials'] + if service_account_credentials is None: + raise TypeError("Missing 'service_account_credentials' argument") + + _setter("directory_name", directory_name) + _setter("organizational_unit_distinguished_names", organizational_unit_distinguished_names) + _setter("service_account_credentials", service_account_credentials) @property @pulumi.getter(name="directoryName") @@ -80,14 +107,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] organizational_unit_distinguished_names: Distinguished names of the organizational units for computer accounts. :param pulumi.Input['DirectoryConfigServiceAccountCredentialsArgs'] service_account_credentials: Configuration block for the name of the directory and organizational unit (OU) to use to join the directory config to a Microsoft Active Directory domain. See `service_account_credentials` below. """ + _DirectoryConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + created_time=created_time, + directory_name=directory_name, + organizational_unit_distinguished_names=organizational_unit_distinguished_names, + service_account_credentials=service_account_credentials, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + created_time: Optional[pulumi.Input[str]] = None, + directory_name: Optional[pulumi.Input[str]] = None, + organizational_unit_distinguished_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + service_account_credentials: Optional[pulumi.Input['DirectoryConfigServiceAccountCredentialsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if directory_name is None and 'directoryName' in kwargs: + directory_name = kwargs['directoryName'] + if organizational_unit_distinguished_names is None and 'organizationalUnitDistinguishedNames' in kwargs: + organizational_unit_distinguished_names = kwargs['organizationalUnitDistinguishedNames'] + if service_account_credentials is None and 'serviceAccountCredentials' in kwargs: + service_account_credentials = kwargs['serviceAccountCredentials'] + if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if directory_name is not None: - pulumi.set(__self__, "directory_name", directory_name) + _setter("directory_name", directory_name) if organizational_unit_distinguished_names is not None: - pulumi.set(__self__, "organizational_unit_distinguished_names", organizational_unit_distinguished_names) + _setter("organizational_unit_distinguished_names", organizational_unit_distinguished_names) if service_account_credentials is not None: - pulumi.set(__self__, "service_account_credentials", service_account_credentials) + _setter("service_account_credentials", service_account_credentials) @property @pulumi.getter(name="createdTime") @@ -221,6 +273,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DirectoryConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -244,6 +300,7 @@ def _internal_init(__self__, if organizational_unit_distinguished_names is None and not opts.urn: raise TypeError("Missing required property 'organizational_unit_distinguished_names'") __props__.__dict__["organizational_unit_distinguished_names"] = organizational_unit_distinguished_names + service_account_credentials = _utilities.configure(service_account_credentials, DirectoryConfigServiceAccountCredentialsArgs, True) if service_account_credentials is None and not opts.urn: raise TypeError("Missing required property 'service_account_credentials'") __props__.__dict__["service_account_credentials"] = service_account_credentials diff --git a/sdk/python/pulumi_aws/appstream/fleet.py b/sdk/python/pulumi_aws/appstream/fleet.py index dbc789d05b4..dfb97631233 100644 --- a/sdk/python/pulumi_aws/appstream/fleet.py +++ b/sdk/python/pulumi_aws/appstream/fleet.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -55,38 +55,113 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to attach to AppStream instances. :param pulumi.Input['FleetVpcConfigArgs'] vpc_config: Configuration block for the VPC configuration for the image builder. See below. """ - pulumi.set(__self__, "compute_capacity", compute_capacity) - pulumi.set(__self__, "instance_type", instance_type) + FleetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_capacity=compute_capacity, + instance_type=instance_type, + description=description, + disconnect_timeout_in_seconds=disconnect_timeout_in_seconds, + display_name=display_name, + domain_join_info=domain_join_info, + enable_default_internet_access=enable_default_internet_access, + fleet_type=fleet_type, + iam_role_arn=iam_role_arn, + idle_disconnect_timeout_in_seconds=idle_disconnect_timeout_in_seconds, + image_arn=image_arn, + image_name=image_name, + max_user_duration_in_seconds=max_user_duration_in_seconds, + name=name, + stream_view=stream_view, + tags=tags, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_capacity: Optional[pulumi.Input['FleetComputeCapacityArgs']] = None, + instance_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disconnect_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + display_name: Optional[pulumi.Input[str]] = None, + domain_join_info: Optional[pulumi.Input['FleetDomainJoinInfoArgs']] = None, + enable_default_internet_access: Optional[pulumi.Input[bool]] = None, + fleet_type: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + idle_disconnect_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + image_arn: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + max_user_duration_in_seconds: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + stream_view: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['FleetVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_capacity is None and 'computeCapacity' in kwargs: + compute_capacity = kwargs['computeCapacity'] + if compute_capacity is None: + raise TypeError("Missing 'compute_capacity' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if disconnect_timeout_in_seconds is None and 'disconnectTimeoutInSeconds' in kwargs: + disconnect_timeout_in_seconds = kwargs['disconnectTimeoutInSeconds'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if domain_join_info is None and 'domainJoinInfo' in kwargs: + domain_join_info = kwargs['domainJoinInfo'] + if enable_default_internet_access is None and 'enableDefaultInternetAccess' in kwargs: + enable_default_internet_access = kwargs['enableDefaultInternetAccess'] + if fleet_type is None and 'fleetType' in kwargs: + fleet_type = kwargs['fleetType'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if idle_disconnect_timeout_in_seconds is None and 'idleDisconnectTimeoutInSeconds' in kwargs: + idle_disconnect_timeout_in_seconds = kwargs['idleDisconnectTimeoutInSeconds'] + if image_arn is None and 'imageArn' in kwargs: + image_arn = kwargs['imageArn'] + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if max_user_duration_in_seconds is None and 'maxUserDurationInSeconds' in kwargs: + max_user_duration_in_seconds = kwargs['maxUserDurationInSeconds'] + if stream_view is None and 'streamView' in kwargs: + stream_view = kwargs['streamView'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("compute_capacity", compute_capacity) + _setter("instance_type", instance_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disconnect_timeout_in_seconds is not None: - pulumi.set(__self__, "disconnect_timeout_in_seconds", disconnect_timeout_in_seconds) + _setter("disconnect_timeout_in_seconds", disconnect_timeout_in_seconds) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if domain_join_info is not None: - pulumi.set(__self__, "domain_join_info", domain_join_info) + _setter("domain_join_info", domain_join_info) if enable_default_internet_access is not None: - pulumi.set(__self__, "enable_default_internet_access", enable_default_internet_access) + _setter("enable_default_internet_access", enable_default_internet_access) if fleet_type is not None: - pulumi.set(__self__, "fleet_type", fleet_type) + _setter("fleet_type", fleet_type) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if idle_disconnect_timeout_in_seconds is not None: - pulumi.set(__self__, "idle_disconnect_timeout_in_seconds", idle_disconnect_timeout_in_seconds) + _setter("idle_disconnect_timeout_in_seconds", idle_disconnect_timeout_in_seconds) if image_arn is not None: - pulumi.set(__self__, "image_arn", image_arn) + _setter("image_arn", image_arn) if image_name is not None: - pulumi.set(__self__, "image_name", image_name) + _setter("image_name", image_name) if max_user_duration_in_seconds is not None: - pulumi.set(__self__, "max_user_duration_in_seconds", max_user_duration_in_seconds) + _setter("max_user_duration_in_seconds", max_user_duration_in_seconds) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if stream_view is not None: - pulumi.set(__self__, "stream_view", stream_view) + _setter("stream_view", stream_view) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="computeCapacity") @@ -344,51 +419,134 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to attach to AppStream instances. :param pulumi.Input['FleetVpcConfigArgs'] vpc_config: Configuration block for the VPC configuration for the image builder. See below. """ + _FleetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + compute_capacity=compute_capacity, + created_time=created_time, + description=description, + disconnect_timeout_in_seconds=disconnect_timeout_in_seconds, + display_name=display_name, + domain_join_info=domain_join_info, + enable_default_internet_access=enable_default_internet_access, + fleet_type=fleet_type, + iam_role_arn=iam_role_arn, + idle_disconnect_timeout_in_seconds=idle_disconnect_timeout_in_seconds, + image_arn=image_arn, + image_name=image_name, + instance_type=instance_type, + max_user_duration_in_seconds=max_user_duration_in_seconds, + name=name, + state=state, + stream_view=stream_view, + tags=tags, + tags_all=tags_all, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + compute_capacity: Optional[pulumi.Input['FleetComputeCapacityArgs']] = None, + created_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disconnect_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + display_name: Optional[pulumi.Input[str]] = None, + domain_join_info: Optional[pulumi.Input['FleetDomainJoinInfoArgs']] = None, + enable_default_internet_access: Optional[pulumi.Input[bool]] = None, + fleet_type: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + idle_disconnect_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + image_arn: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + max_user_duration_in_seconds: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + stream_view: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['FleetVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_capacity is None and 'computeCapacity' in kwargs: + compute_capacity = kwargs['computeCapacity'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if disconnect_timeout_in_seconds is None and 'disconnectTimeoutInSeconds' in kwargs: + disconnect_timeout_in_seconds = kwargs['disconnectTimeoutInSeconds'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if domain_join_info is None and 'domainJoinInfo' in kwargs: + domain_join_info = kwargs['domainJoinInfo'] + if enable_default_internet_access is None and 'enableDefaultInternetAccess' in kwargs: + enable_default_internet_access = kwargs['enableDefaultInternetAccess'] + if fleet_type is None and 'fleetType' in kwargs: + fleet_type = kwargs['fleetType'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if idle_disconnect_timeout_in_seconds is None and 'idleDisconnectTimeoutInSeconds' in kwargs: + idle_disconnect_timeout_in_seconds = kwargs['idleDisconnectTimeoutInSeconds'] + if image_arn is None and 'imageArn' in kwargs: + image_arn = kwargs['imageArn'] + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if max_user_duration_in_seconds is None and 'maxUserDurationInSeconds' in kwargs: + max_user_duration_in_seconds = kwargs['maxUserDurationInSeconds'] + if stream_view is None and 'streamView' in kwargs: + stream_view = kwargs['streamView'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if compute_capacity is not None: - pulumi.set(__self__, "compute_capacity", compute_capacity) + _setter("compute_capacity", compute_capacity) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disconnect_timeout_in_seconds is not None: - pulumi.set(__self__, "disconnect_timeout_in_seconds", disconnect_timeout_in_seconds) + _setter("disconnect_timeout_in_seconds", disconnect_timeout_in_seconds) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if domain_join_info is not None: - pulumi.set(__self__, "domain_join_info", domain_join_info) + _setter("domain_join_info", domain_join_info) if enable_default_internet_access is not None: - pulumi.set(__self__, "enable_default_internet_access", enable_default_internet_access) + _setter("enable_default_internet_access", enable_default_internet_access) if fleet_type is not None: - pulumi.set(__self__, "fleet_type", fleet_type) + _setter("fleet_type", fleet_type) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if idle_disconnect_timeout_in_seconds is not None: - pulumi.set(__self__, "idle_disconnect_timeout_in_seconds", idle_disconnect_timeout_in_seconds) + _setter("idle_disconnect_timeout_in_seconds", idle_disconnect_timeout_in_seconds) if image_arn is not None: - pulumi.set(__self__, "image_arn", image_arn) + _setter("image_arn", image_arn) if image_name is not None: - pulumi.set(__self__, "image_name", image_name) + _setter("image_name", image_name) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if max_user_duration_in_seconds is not None: - pulumi.set(__self__, "max_user_duration_in_seconds", max_user_duration_in_seconds) + _setter("max_user_duration_in_seconds", max_user_duration_in_seconds) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if stream_view is not None: - pulumi.set(__self__, "stream_view", stream_view) + _setter("stream_view", stream_view) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -780,6 +938,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FleetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -811,12 +973,14 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = FleetArgs.__new__(FleetArgs) + compute_capacity = _utilities.configure(compute_capacity, FleetComputeCapacityArgs, True) if compute_capacity is None and not opts.urn: raise TypeError("Missing required property 'compute_capacity'") __props__.__dict__["compute_capacity"] = compute_capacity __props__.__dict__["description"] = description __props__.__dict__["disconnect_timeout_in_seconds"] = disconnect_timeout_in_seconds __props__.__dict__["display_name"] = display_name + domain_join_info = _utilities.configure(domain_join_info, FleetDomainJoinInfoArgs, True) __props__.__dict__["domain_join_info"] = domain_join_info __props__.__dict__["enable_default_internet_access"] = enable_default_internet_access __props__.__dict__["fleet_type"] = fleet_type @@ -831,6 +995,7 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["stream_view"] = stream_view __props__.__dict__["tags"] = tags + vpc_config = _utilities.configure(vpc_config, FleetVpcConfigArgs, True) __props__.__dict__["vpc_config"] = vpc_config __props__.__dict__["arn"] = None __props__.__dict__["created_time"] = None diff --git a/sdk/python/pulumi_aws/appstream/fleet_stack_association.py b/sdk/python/pulumi_aws/appstream/fleet_stack_association.py index e71cf2b575b..2c0c3435151 100644 --- a/sdk/python/pulumi_aws/appstream/fleet_stack_association.py +++ b/sdk/python/pulumi_aws/appstream/fleet_stack_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['FleetStackAssociationArgs', 'FleetStackAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] fleet_name: Name of the fleet. :param pulumi.Input[str] stack_name: Name of the stack. """ - pulumi.set(__self__, "fleet_name", fleet_name) - pulumi.set(__self__, "stack_name", stack_name) + FleetStackAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fleet_name=fleet_name, + stack_name=stack_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fleet_name: Optional[pulumi.Input[str]] = None, + stack_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fleet_name is None and 'fleetName' in kwargs: + fleet_name = kwargs['fleetName'] + if fleet_name is None: + raise TypeError("Missing 'fleet_name' argument") + if stack_name is None and 'stackName' in kwargs: + stack_name = kwargs['stackName'] + if stack_name is None: + raise TypeError("Missing 'stack_name' argument") + + _setter("fleet_name", fleet_name) + _setter("stack_name", stack_name) @property @pulumi.getter(name="fleetName") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] fleet_name: Name of the fleet. :param pulumi.Input[str] stack_name: Name of the stack. """ + _FleetStackAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + fleet_name=fleet_name, + stack_name=stack_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fleet_name: Optional[pulumi.Input[str]] = None, + stack_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fleet_name is None and 'fleetName' in kwargs: + fleet_name = kwargs['fleetName'] + if stack_name is None and 'stackName' in kwargs: + stack_name = kwargs['stackName'] + if fleet_name is not None: - pulumi.set(__self__, "fleet_name", fleet_name) + _setter("fleet_name", fleet_name) if stack_name is not None: - pulumi.set(__self__, "stack_name", stack_name) + _setter("stack_name", stack_name) @property @pulumi.getter(name="fleetName") @@ -176,6 +214,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FleetStackAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appstream/image_builder.py b/sdk/python/pulumi_aws/appstream/image_builder.py index 38a51fe6859..eddef5a0d74 100644 --- a/sdk/python/pulumi_aws/appstream/image_builder.py +++ b/sdk/python/pulumi_aws/appstream/image_builder.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,31 +47,88 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the instance. 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['ImageBuilderVpcConfigArgs'] vpc_config: Configuration block for the VPC configuration for the image builder. See below. """ - pulumi.set(__self__, "instance_type", instance_type) + ImageBuilderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + access_endpoints=access_endpoints, + appstream_agent_version=appstream_agent_version, + description=description, + display_name=display_name, + domain_join_info=domain_join_info, + enable_default_internet_access=enable_default_internet_access, + iam_role_arn=iam_role_arn, + image_arn=image_arn, + image_name=image_name, + name=name, + tags=tags, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + access_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ImageBuilderAccessEndpointArgs']]]] = None, + appstream_agent_version: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + domain_join_info: Optional[pulumi.Input['ImageBuilderDomainJoinInfoArgs']] = None, + enable_default_internet_access: Optional[pulumi.Input[bool]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + image_arn: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['ImageBuilderVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if access_endpoints is None and 'accessEndpoints' in kwargs: + access_endpoints = kwargs['accessEndpoints'] + if appstream_agent_version is None and 'appstreamAgentVersion' in kwargs: + appstream_agent_version = kwargs['appstreamAgentVersion'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if domain_join_info is None and 'domainJoinInfo' in kwargs: + domain_join_info = kwargs['domainJoinInfo'] + if enable_default_internet_access is None and 'enableDefaultInternetAccess' in kwargs: + enable_default_internet_access = kwargs['enableDefaultInternetAccess'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if image_arn is None and 'imageArn' in kwargs: + image_arn = kwargs['imageArn'] + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("instance_type", instance_type) if access_endpoints is not None: - pulumi.set(__self__, "access_endpoints", access_endpoints) + _setter("access_endpoints", access_endpoints) if appstream_agent_version is not None: - pulumi.set(__self__, "appstream_agent_version", appstream_agent_version) + _setter("appstream_agent_version", appstream_agent_version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if domain_join_info is not None: - pulumi.set(__self__, "domain_join_info", domain_join_info) + _setter("domain_join_info", domain_join_info) if enable_default_internet_access is not None: - pulumi.set(__self__, "enable_default_internet_access", enable_default_internet_access) + _setter("enable_default_internet_access", enable_default_internet_access) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if image_arn is not None: - pulumi.set(__self__, "image_arn", image_arn) + _setter("image_arn", image_arn) if image_name is not None: - pulumi.set(__self__, "image_name", image_name) + _setter("image_name", image_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="instanceType") @@ -274,43 +331,110 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input['ImageBuilderVpcConfigArgs'] vpc_config: Configuration block for the VPC configuration for the image builder. See below. """ + _ImageBuilderState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_endpoints=access_endpoints, + appstream_agent_version=appstream_agent_version, + arn=arn, + created_time=created_time, + description=description, + display_name=display_name, + domain_join_info=domain_join_info, + enable_default_internet_access=enable_default_internet_access, + iam_role_arn=iam_role_arn, + image_arn=image_arn, + image_name=image_name, + instance_type=instance_type, + name=name, + state=state, + tags=tags, + tags_all=tags_all, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ImageBuilderAccessEndpointArgs']]]] = None, + appstream_agent_version: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + domain_join_info: Optional[pulumi.Input['ImageBuilderDomainJoinInfoArgs']] = None, + enable_default_internet_access: Optional[pulumi.Input[bool]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + image_arn: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['ImageBuilderVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_endpoints is None and 'accessEndpoints' in kwargs: + access_endpoints = kwargs['accessEndpoints'] + if appstream_agent_version is None and 'appstreamAgentVersion' in kwargs: + appstream_agent_version = kwargs['appstreamAgentVersion'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if domain_join_info is None and 'domainJoinInfo' in kwargs: + domain_join_info = kwargs['domainJoinInfo'] + if enable_default_internet_access is None and 'enableDefaultInternetAccess' in kwargs: + enable_default_internet_access = kwargs['enableDefaultInternetAccess'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if image_arn is None and 'imageArn' in kwargs: + image_arn = kwargs['imageArn'] + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if access_endpoints is not None: - pulumi.set(__self__, "access_endpoints", access_endpoints) + _setter("access_endpoints", access_endpoints) if appstream_agent_version is not None: - pulumi.set(__self__, "appstream_agent_version", appstream_agent_version) + _setter("appstream_agent_version", appstream_agent_version) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if domain_join_info is not None: - pulumi.set(__self__, "domain_join_info", domain_join_info) + _setter("domain_join_info", domain_join_info) if enable_default_internet_access is not None: - pulumi.set(__self__, "enable_default_internet_access", enable_default_internet_access) + _setter("enable_default_internet_access", enable_default_internet_access) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if image_arn is not None: - pulumi.set(__self__, "image_arn", image_arn) + _setter("image_arn", image_arn) if image_name is not None: - pulumi.set(__self__, "image_name", image_name) + _setter("image_name", image_name) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="accessEndpoints") @@ -637,6 +761,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ImageBuilderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -668,6 +796,7 @@ def _internal_init(__self__, __props__.__dict__["appstream_agent_version"] = appstream_agent_version __props__.__dict__["description"] = description __props__.__dict__["display_name"] = display_name + domain_join_info = _utilities.configure(domain_join_info, ImageBuilderDomainJoinInfoArgs, True) __props__.__dict__["domain_join_info"] = domain_join_info __props__.__dict__["enable_default_internet_access"] = enable_default_internet_access __props__.__dict__["iam_role_arn"] = iam_role_arn @@ -678,6 +807,7 @@ def _internal_init(__self__, __props__.__dict__["instance_type"] = instance_type __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags + vpc_config = _utilities.configure(vpc_config, ImageBuilderVpcConfigArgs, True) __props__.__dict__["vpc_config"] = vpc_config __props__.__dict__["arn"] = None __props__.__dict__["created_time"] = None diff --git a/sdk/python/pulumi_aws/appstream/outputs.py b/sdk/python/pulumi_aws/appstream/outputs.py index 7385cfaafeb..ff3e7ef87b7 100644 --- a/sdk/python/pulumi_aws/appstream/outputs.py +++ b/sdk/python/pulumi_aws/appstream/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -52,8 +52,29 @@ def __init__(__self__, *, :param str account_name: User name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified. :param str account_password: Password for the account. """ - pulumi.set(__self__, "account_name", account_name) - pulumi.set(__self__, "account_password", account_password) + DirectoryConfigServiceAccountCredentials._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_name=account_name, + account_password=account_password, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_name: Optional[str] = None, + account_password: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_name is None and 'accountName' in kwargs: + account_name = kwargs['accountName'] + if account_name is None: + raise TypeError("Missing 'account_name' argument") + if account_password is None and 'accountPassword' in kwargs: + account_password = kwargs['accountPassword'] + if account_password is None: + raise TypeError("Missing 'account_password' argument") + + _setter("account_name", account_name) + _setter("account_password", account_password) @property @pulumi.getter(name="accountName") @@ -104,13 +125,36 @@ def __init__(__self__, *, :param int in_use: Number of instances in use for streaming. :param int running: Total number of simultaneous streaming instances that are running. """ - pulumi.set(__self__, "desired_instances", desired_instances) + FleetComputeCapacity._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_instances=desired_instances, + available=available, + in_use=in_use, + running=running, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_instances: Optional[int] = None, + available: Optional[int] = None, + in_use: Optional[int] = None, + running: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_instances is None and 'desiredInstances' in kwargs: + desired_instances = kwargs['desiredInstances'] + if desired_instances is None: + raise TypeError("Missing 'desired_instances' argument") + if in_use is None and 'inUse' in kwargs: + in_use = kwargs['inUse'] + + _setter("desired_instances", desired_instances) if available is not None: - pulumi.set(__self__, "available", available) + _setter("available", available) if in_use is not None: - pulumi.set(__self__, "in_use", in_use) + _setter("in_use", in_use) if running is not None: - pulumi.set(__self__, "running", running) + _setter("running", running) @property @pulumi.getter(name="desiredInstances") @@ -173,10 +217,27 @@ def __init__(__self__, *, :param str directory_name: Fully qualified name of the directory (for example, corp.example.com). :param str organizational_unit_distinguished_name: Distinguished name of the organizational unit for computer accounts. """ + FleetDomainJoinInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_name=directory_name, + organizational_unit_distinguished_name=organizational_unit_distinguished_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_name: Optional[str] = None, + organizational_unit_distinguished_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_name is None and 'directoryName' in kwargs: + directory_name = kwargs['directoryName'] + if organizational_unit_distinguished_name is None and 'organizationalUnitDistinguishedName' in kwargs: + organizational_unit_distinguished_name = kwargs['organizationalUnitDistinguishedName'] + if directory_name is not None: - pulumi.set(__self__, "directory_name", directory_name) + _setter("directory_name", directory_name) if organizational_unit_distinguished_name is not None: - pulumi.set(__self__, "organizational_unit_distinguished_name", organizational_unit_distinguished_name) + _setter("organizational_unit_distinguished_name", organizational_unit_distinguished_name) @property @pulumi.getter(name="directoryName") @@ -223,10 +284,27 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: Identifiers of the security groups for the fleet or image builder. :param Sequence[str] subnet_ids: Identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. """ + FleetVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") @@ -273,9 +351,28 @@ def __init__(__self__, *, :param str endpoint_type: Type of interface endpoint. :param str vpce_id: Identifier (ID) of the VPC in which the interface endpoint is used. """ - pulumi.set(__self__, "endpoint_type", endpoint_type) + ImageBuilderAccessEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_type=endpoint_type, + vpce_id=vpce_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_type: Optional[str] = None, + vpce_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + if vpce_id is None and 'vpceId' in kwargs: + vpce_id = kwargs['vpceId'] + + _setter("endpoint_type", endpoint_type) if vpce_id is not None: - pulumi.set(__self__, "vpce_id", vpce_id) + _setter("vpce_id", vpce_id) @property @pulumi.getter(name="endpointType") @@ -322,10 +419,27 @@ def __init__(__self__, *, :param str directory_name: Fully qualified name of the directory (for example, corp.example.com). :param str organizational_unit_distinguished_name: Distinguished name of the organizational unit for computer accounts. """ + ImageBuilderDomainJoinInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_name=directory_name, + organizational_unit_distinguished_name=organizational_unit_distinguished_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_name: Optional[str] = None, + organizational_unit_distinguished_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_name is None and 'directoryName' in kwargs: + directory_name = kwargs['directoryName'] + if organizational_unit_distinguished_name is None and 'organizationalUnitDistinguishedName' in kwargs: + organizational_unit_distinguished_name = kwargs['organizationalUnitDistinguishedName'] + if directory_name is not None: - pulumi.set(__self__, "directory_name", directory_name) + _setter("directory_name", directory_name) if organizational_unit_distinguished_name is not None: - pulumi.set(__self__, "organizational_unit_distinguished_name", organizational_unit_distinguished_name) + _setter("organizational_unit_distinguished_name", organizational_unit_distinguished_name) @property @pulumi.getter(name="directoryName") @@ -372,10 +486,27 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: Identifiers of the security groups for the image builder or image builder. :param Sequence[str] subnet_ids: Identifiers of the subnets to which a network interface is attached from the image builder instance or image builder instance. """ + ImageBuilderVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") @@ -423,9 +554,28 @@ def __init__(__self__, *, See the [`AccessEndpoint` AWS API documentation](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_AccessEndpoint.html) for valid values. :param str vpce_id: ID of the VPC in which the interface endpoint is used. """ - pulumi.set(__self__, "endpoint_type", endpoint_type) + StackAccessEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_type=endpoint_type, + vpce_id=vpce_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_type: Optional[str] = None, + vpce_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + if vpce_id is None and 'vpceId' in kwargs: + vpce_id = kwargs['vpceId'] + + _setter("endpoint_type", endpoint_type) if vpce_id is not None: - pulumi.set(__self__, "vpce_id", vpce_id) + _setter("vpce_id", vpce_id) @property @pulumi.getter(name="endpointType") @@ -473,9 +623,26 @@ def __init__(__self__, *, Required when `enabled` is `true`. Can be up to 100 characters. """ - pulumi.set(__self__, "enabled", enabled) + StackApplicationSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + settings_group=settings_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + settings_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if settings_group is None and 'settingsGroup' in kwargs: + settings_group = kwargs['settingsGroup'] + + _setter("enabled", enabled) if settings_group is not None: - pulumi.set(__self__, "settings_group", settings_group) + _setter("settings_group", settings_group) @property @pulumi.getter @@ -527,11 +694,32 @@ def __init__(__self__, *, :param Sequence[str] domains: Names of the domains for the account. :param str resource_identifier: ARN of the storage connector. """ - pulumi.set(__self__, "connector_type", connector_type) + StackStorageConnector._configure( + lambda key, value: pulumi.set(__self__, key, value), + connector_type=connector_type, + domains=domains, + resource_identifier=resource_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connector_type: Optional[str] = None, + domains: Optional[Sequence[str]] = None, + resource_identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connector_type is None and 'connectorType' in kwargs: + connector_type = kwargs['connectorType'] + if connector_type is None: + raise TypeError("Missing 'connector_type' argument") + if resource_identifier is None and 'resourceIdentifier' in kwargs: + resource_identifier = kwargs['resourceIdentifier'] + + _setter("connector_type", connector_type) if domains is not None: - pulumi.set(__self__, "domains", domains) + _setter("domains", domains) if resource_identifier is not None: - pulumi.set(__self__, "resource_identifier", resource_identifier) + _setter("resource_identifier", resource_identifier) @property @pulumi.getter(name="connectorType") @@ -584,8 +772,21 @@ def __init__(__self__, *, :param str preferred_protocol: The preferred protocol that you want to use while streaming your application. Valid values are `TCP` and `UDP`. """ + StackStreamingExperienceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + preferred_protocol=preferred_protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + preferred_protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if preferred_protocol is None and 'preferredProtocol' in kwargs: + preferred_protocol = kwargs['preferredProtocol'] + if preferred_protocol is not None: - pulumi.set(__self__, "preferred_protocol", preferred_protocol) + _setter("preferred_protocol", preferred_protocol) @property @pulumi.getter(name="preferredProtocol") @@ -608,8 +809,25 @@ def __init__(__self__, *, :param str permission: Whether the action is enabled or disabled. Valid values are `ENABLED` or `DISABLED`. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "permission", permission) + StackUserSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + permission=permission, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + permission: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if permission is None: + raise TypeError("Missing 'permission' argument") + + _setter("action", action) + _setter("permission", permission) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/appstream/stack.py b/sdk/python/pulumi_aws/appstream/stack.py index 02abbd2ba1d..99897efb021 100644 --- a/sdk/python/pulumi_aws/appstream/stack.py +++ b/sdk/python/pulumi_aws/appstream/stack.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -50,30 +50,81 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['StackUserSettingArgs']]] user_settings: Configuration block for the actions that are enabled or disabled for users during their streaming sessions. If not provided, these settings are configured automatically by AWS. If provided, the configuration should include a block for each configurable action. See `user_settings` below. """ + StackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_endpoints=access_endpoints, + application_settings=application_settings, + description=description, + display_name=display_name, + embed_host_domains=embed_host_domains, + feedback_url=feedback_url, + name=name, + redirect_url=redirect_url, + storage_connectors=storage_connectors, + streaming_experience_settings=streaming_experience_settings, + tags=tags, + user_settings=user_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['StackAccessEndpointArgs']]]] = None, + application_settings: Optional[pulumi.Input['StackApplicationSettingsArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + embed_host_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + feedback_url: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + redirect_url: Optional[pulumi.Input[str]] = None, + storage_connectors: Optional[pulumi.Input[Sequence[pulumi.Input['StackStorageConnectorArgs']]]] = None, + streaming_experience_settings: Optional[pulumi.Input['StackStreamingExperienceSettingsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_settings: Optional[pulumi.Input[Sequence[pulumi.Input['StackUserSettingArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_endpoints is None and 'accessEndpoints' in kwargs: + access_endpoints = kwargs['accessEndpoints'] + if application_settings is None and 'applicationSettings' in kwargs: + application_settings = kwargs['applicationSettings'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if embed_host_domains is None and 'embedHostDomains' in kwargs: + embed_host_domains = kwargs['embedHostDomains'] + if feedback_url is None and 'feedbackUrl' in kwargs: + feedback_url = kwargs['feedbackUrl'] + if redirect_url is None and 'redirectUrl' in kwargs: + redirect_url = kwargs['redirectUrl'] + if storage_connectors is None and 'storageConnectors' in kwargs: + storage_connectors = kwargs['storageConnectors'] + if streaming_experience_settings is None and 'streamingExperienceSettings' in kwargs: + streaming_experience_settings = kwargs['streamingExperienceSettings'] + if user_settings is None and 'userSettings' in kwargs: + user_settings = kwargs['userSettings'] + if access_endpoints is not None: - pulumi.set(__self__, "access_endpoints", access_endpoints) + _setter("access_endpoints", access_endpoints) if application_settings is not None: - pulumi.set(__self__, "application_settings", application_settings) + _setter("application_settings", application_settings) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if embed_host_domains is not None: - pulumi.set(__self__, "embed_host_domains", embed_host_domains) + _setter("embed_host_domains", embed_host_domains) if feedback_url is not None: - pulumi.set(__self__, "feedback_url", feedback_url) + _setter("feedback_url", feedback_url) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if redirect_url is not None: - pulumi.set(__self__, "redirect_url", redirect_url) + _setter("redirect_url", redirect_url) if storage_connectors is not None: - pulumi.set(__self__, "storage_connectors", storage_connectors) + _setter("storage_connectors", storage_connectors) if streaming_experience_settings is not None: - pulumi.set(__self__, "streaming_experience_settings", streaming_experience_settings) + _setter("streaming_experience_settings", streaming_experience_settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_settings is not None: - pulumi.set(__self__, "user_settings", user_settings) + _setter("user_settings", user_settings) @property @pulumi.getter(name="accessEndpoints") @@ -269,39 +320,100 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['StackUserSettingArgs']]] user_settings: Configuration block for the actions that are enabled or disabled for users during their streaming sessions. If not provided, these settings are configured automatically by AWS. If provided, the configuration should include a block for each configurable action. See `user_settings` below. """ + _StackState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_endpoints=access_endpoints, + application_settings=application_settings, + arn=arn, + created_time=created_time, + description=description, + display_name=display_name, + embed_host_domains=embed_host_domains, + feedback_url=feedback_url, + name=name, + redirect_url=redirect_url, + storage_connectors=storage_connectors, + streaming_experience_settings=streaming_experience_settings, + tags=tags, + tags_all=tags_all, + user_settings=user_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['StackAccessEndpointArgs']]]] = None, + application_settings: Optional[pulumi.Input['StackApplicationSettingsArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + embed_host_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + feedback_url: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + redirect_url: Optional[pulumi.Input[str]] = None, + storage_connectors: Optional[pulumi.Input[Sequence[pulumi.Input['StackStorageConnectorArgs']]]] = None, + streaming_experience_settings: Optional[pulumi.Input['StackStreamingExperienceSettingsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_settings: Optional[pulumi.Input[Sequence[pulumi.Input['StackUserSettingArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_endpoints is None and 'accessEndpoints' in kwargs: + access_endpoints = kwargs['accessEndpoints'] + if application_settings is None and 'applicationSettings' in kwargs: + application_settings = kwargs['applicationSettings'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if embed_host_domains is None and 'embedHostDomains' in kwargs: + embed_host_domains = kwargs['embedHostDomains'] + if feedback_url is None and 'feedbackUrl' in kwargs: + feedback_url = kwargs['feedbackUrl'] + if redirect_url is None and 'redirectUrl' in kwargs: + redirect_url = kwargs['redirectUrl'] + if storage_connectors is None and 'storageConnectors' in kwargs: + storage_connectors = kwargs['storageConnectors'] + if streaming_experience_settings is None and 'streamingExperienceSettings' in kwargs: + streaming_experience_settings = kwargs['streamingExperienceSettings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_settings is None and 'userSettings' in kwargs: + user_settings = kwargs['userSettings'] + if access_endpoints is not None: - pulumi.set(__self__, "access_endpoints", access_endpoints) + _setter("access_endpoints", access_endpoints) if application_settings is not None: - pulumi.set(__self__, "application_settings", application_settings) + _setter("application_settings", application_settings) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if embed_host_domains is not None: - pulumi.set(__self__, "embed_host_domains", embed_host_domains) + _setter("embed_host_domains", embed_host_domains) if feedback_url is not None: - pulumi.set(__self__, "feedback_url", feedback_url) + _setter("feedback_url", feedback_url) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if redirect_url is not None: - pulumi.set(__self__, "redirect_url", redirect_url) + _setter("redirect_url", redirect_url) if storage_connectors is not None: - pulumi.set(__self__, "storage_connectors", storage_connectors) + _setter("storage_connectors", storage_connectors) if streaming_experience_settings is not None: - pulumi.set(__self__, "streaming_experience_settings", streaming_experience_settings) + _setter("streaming_experience_settings", streaming_experience_settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_settings is not None: - pulumi.set(__self__, "user_settings", user_settings) + _setter("user_settings", user_settings) @property @pulumi.getter(name="accessEndpoints") @@ -675,6 +787,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StackArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -702,6 +818,7 @@ def _internal_init(__self__, __props__ = StackArgs.__new__(StackArgs) __props__.__dict__["access_endpoints"] = access_endpoints + application_settings = _utilities.configure(application_settings, StackApplicationSettingsArgs, True) __props__.__dict__["application_settings"] = application_settings __props__.__dict__["description"] = description __props__.__dict__["display_name"] = display_name @@ -710,6 +827,7 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["redirect_url"] = redirect_url __props__.__dict__["storage_connectors"] = storage_connectors + streaming_experience_settings = _utilities.configure(streaming_experience_settings, StackStreamingExperienceSettingsArgs, True) __props__.__dict__["streaming_experience_settings"] = streaming_experience_settings __props__.__dict__["tags"] = tags __props__.__dict__["user_settings"] = user_settings diff --git a/sdk/python/pulumi_aws/appstream/user.py b/sdk/python/pulumi_aws/appstream/user.py index 82fe9cfb8b0..c8136766875 100644 --- a/sdk/python/pulumi_aws/appstream/user.py +++ b/sdk/python/pulumi_aws/appstream/user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserArgs', 'User'] @@ -31,16 +31,51 @@ def __init__(__self__, *, :param pulumi.Input[str] last_name: Last name, or surname, of the user. :param pulumi.Input[bool] send_email_notification: Send an email notification. """ - pulumi.set(__self__, "authentication_type", authentication_type) - pulumi.set(__self__, "user_name", user_name) + UserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + user_name=user_name, + enabled=enabled, + first_name=first_name, + last_name=last_name, + send_email_notification=send_email_notification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + first_name: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None, + send_email_notification: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is None: + raise TypeError("Missing 'authentication_type' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if send_email_notification is None and 'sendEmailNotification' in kwargs: + send_email_notification = kwargs['sendEmailNotification'] + + _setter("authentication_type", authentication_type) + _setter("user_name", user_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if send_email_notification is not None: - pulumi.set(__self__, "send_email_notification", send_email_notification) + _setter("send_email_notification", send_email_notification) @property @pulumi.getter(name="authenticationType") @@ -141,22 +176,59 @@ def __init__(__self__, *, The following arguments are optional: """ + _UserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + authentication_type=authentication_type, + created_time=created_time, + enabled=enabled, + first_name=first_name, + last_name=last_name, + send_email_notification=send_email_notification, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + authentication_type: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + first_name: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None, + send_email_notification: Optional[pulumi.Input[bool]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if send_email_notification is None and 'sendEmailNotification' in kwargs: + send_email_notification = kwargs['sendEmailNotification'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_type is not None: - pulumi.set(__self__, "authentication_type", authentication_type) + _setter("authentication_type", authentication_type) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if send_email_notification is not None: - pulumi.set(__self__, "send_email_notification", send_email_notification) + _setter("send_email_notification", send_email_notification) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter @@ -344,6 +416,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appstream/user_stack_association.py b/sdk/python/pulumi_aws/appstream/user_stack_association.py index 03a2e6db6c1..009ff99b820 100644 --- a/sdk/python/pulumi_aws/appstream/user_stack_association.py +++ b/sdk/python/pulumi_aws/appstream/user_stack_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserStackAssociationArgs', 'UserStackAssociation'] @@ -27,11 +27,42 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] send_email_notification: Whether a welcome email is sent to a user after the user is created in the user pool. """ - pulumi.set(__self__, "authentication_type", authentication_type) - pulumi.set(__self__, "stack_name", stack_name) - pulumi.set(__self__, "user_name", user_name) + UserStackAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + stack_name=stack_name, + user_name=user_name, + send_email_notification=send_email_notification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[pulumi.Input[str]] = None, + stack_name: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + send_email_notification: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is None: + raise TypeError("Missing 'authentication_type' argument") + if stack_name is None and 'stackName' in kwargs: + stack_name = kwargs['stackName'] + if stack_name is None: + raise TypeError("Missing 'stack_name' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + if send_email_notification is None and 'sendEmailNotification' in kwargs: + send_email_notification = kwargs['sendEmailNotification'] + + _setter("authentication_type", authentication_type) + _setter("stack_name", stack_name) + _setter("user_name", user_name) if send_email_notification is not None: - pulumi.set(__self__, "send_email_notification", send_email_notification) + _setter("send_email_notification", send_email_notification) @property @pulumi.getter(name="authenticationType") @@ -100,14 +131,39 @@ def __init__(__self__, *, The following arguments are optional: """ + _UserStackAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + send_email_notification=send_email_notification, + stack_name=stack_name, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[pulumi.Input[str]] = None, + send_email_notification: Optional[pulumi.Input[bool]] = None, + stack_name: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if send_email_notification is None and 'sendEmailNotification' in kwargs: + send_email_notification = kwargs['sendEmailNotification'] + if stack_name is None and 'stackName' in kwargs: + stack_name = kwargs['stackName'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if authentication_type is not None: - pulumi.set(__self__, "authentication_type", authentication_type) + _setter("authentication_type", authentication_type) if send_email_notification is not None: - pulumi.set(__self__, "send_email_notification", send_email_notification) + _setter("send_email_notification", send_email_notification) if stack_name is not None: - pulumi.set(__self__, "stack_name", stack_name) + _setter("stack_name", stack_name) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter(name="authenticationType") @@ -249,6 +305,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserStackAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appsync/_inputs.py b/sdk/python/pulumi_aws/appsync/_inputs.py index 508d80bf117..f4557857977 100644 --- a/sdk/python/pulumi_aws/appsync/_inputs.py +++ b/sdk/python/pulumi_aws/appsync/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -54,15 +54,42 @@ def __init__(__self__, *, :param pulumi.Input[bool] use_caller_credentials: Set to `true` to use Amazon Cognito credentials with this data source. :param pulumi.Input[bool] versioned: Detects Conflict Detection and Resolution with this data source. """ - pulumi.set(__self__, "table_name", table_name) + DataSourceDynamodbConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + table_name=table_name, + delta_sync_config=delta_sync_config, + region=region, + use_caller_credentials=use_caller_credentials, + versioned=versioned, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + table_name: Optional[pulumi.Input[str]] = None, + delta_sync_config: Optional[pulumi.Input['DataSourceDynamodbConfigDeltaSyncConfigArgs']] = None, + region: Optional[pulumi.Input[str]] = None, + use_caller_credentials: Optional[pulumi.Input[bool]] = None, + versioned: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if delta_sync_config is None and 'deltaSyncConfig' in kwargs: + delta_sync_config = kwargs['deltaSyncConfig'] + if use_caller_credentials is None and 'useCallerCredentials' in kwargs: + use_caller_credentials = kwargs['useCallerCredentials'] + + _setter("table_name", table_name) if delta_sync_config is not None: - pulumi.set(__self__, "delta_sync_config", delta_sync_config) + _setter("delta_sync_config", delta_sync_config) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if use_caller_credentials is not None: - pulumi.set(__self__, "use_caller_credentials", use_caller_credentials) + _setter("use_caller_credentials", use_caller_credentials) if versioned is not None: - pulumi.set(__self__, "versioned", versioned) + _setter("versioned", versioned) @property @pulumi.getter(name="tableName") @@ -136,11 +163,34 @@ def __init__(__self__, *, :param pulumi.Input[int] base_table_ttl: The number of minutes that an Item is stored in the data source. :param pulumi.Input[int] delta_sync_table_ttl: The number of minutes that a Delta Sync log entry is stored in the Delta Sync table. """ - pulumi.set(__self__, "delta_sync_table_name", delta_sync_table_name) + DataSourceDynamodbConfigDeltaSyncConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delta_sync_table_name=delta_sync_table_name, + base_table_ttl=base_table_ttl, + delta_sync_table_ttl=delta_sync_table_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delta_sync_table_name: Optional[pulumi.Input[str]] = None, + base_table_ttl: Optional[pulumi.Input[int]] = None, + delta_sync_table_ttl: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delta_sync_table_name is None and 'deltaSyncTableName' in kwargs: + delta_sync_table_name = kwargs['deltaSyncTableName'] + if delta_sync_table_name is None: + raise TypeError("Missing 'delta_sync_table_name' argument") + if base_table_ttl is None and 'baseTableTtl' in kwargs: + base_table_ttl = kwargs['baseTableTtl'] + if delta_sync_table_ttl is None and 'deltaSyncTableTtl' in kwargs: + delta_sync_table_ttl = kwargs['deltaSyncTableTtl'] + + _setter("delta_sync_table_name", delta_sync_table_name) if base_table_ttl is not None: - pulumi.set(__self__, "base_table_ttl", base_table_ttl) + _setter("base_table_ttl", base_table_ttl) if delta_sync_table_ttl is not None: - pulumi.set(__self__, "delta_sync_table_ttl", delta_sync_table_ttl) + _setter("delta_sync_table_ttl", delta_sync_table_ttl) @property @pulumi.getter(name="deltaSyncTableName") @@ -188,9 +238,24 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint: HTTP endpoint of the Elasticsearch domain. :param pulumi.Input[str] region: AWS region of Elasticsearch domain. Defaults to current region. """ - pulumi.set(__self__, "endpoint", endpoint) + DataSourceElasticsearchConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + + _setter("endpoint", endpoint) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -224,7 +289,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] event_bus_arn: ARN for the EventBridge bus. """ - pulumi.set(__self__, "event_bus_arn", event_bus_arn) + DataSourceEventBridgeConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_bus_arn=event_bus_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_bus_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_bus_arn is None and 'eventBusArn' in kwargs: + event_bus_arn = kwargs['eventBusArn'] + if event_bus_arn is None: + raise TypeError("Missing 'event_bus_arn' argument") + + _setter("event_bus_arn", event_bus_arn) @property @pulumi.getter(name="eventBusArn") @@ -248,9 +328,26 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint: HTTP URL. :param pulumi.Input['DataSourceHttpConfigAuthorizationConfigArgs'] authorization_config: Authorization configuration in case the HTTP endpoint requires authorization. See Authorization Config. """ - pulumi.set(__self__, "endpoint", endpoint) + DataSourceHttpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + authorization_config=authorization_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[pulumi.Input[str]] = None, + authorization_config: Optional[pulumi.Input['DataSourceHttpConfigAuthorizationConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + if authorization_config is None and 'authorizationConfig' in kwargs: + authorization_config = kwargs['authorizationConfig'] + + _setter("endpoint", endpoint) if authorization_config is not None: - pulumi.set(__self__, "authorization_config", authorization_config) + _setter("authorization_config", authorization_config) @property @pulumi.getter @@ -286,10 +383,27 @@ def __init__(__self__, *, :param pulumi.Input[str] authorization_type: Authorization type that the HTTP endpoint requires. Default values is `AWS_IAM`. :param pulumi.Input['DataSourceHttpConfigAuthorizationConfigAwsIamConfigArgs'] aws_iam_config: Identity and Access Management (IAM) settings. See AWS IAM Config. """ + DataSourceHttpConfigAuthorizationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_type=authorization_type, + aws_iam_config=aws_iam_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_type: Optional[pulumi.Input[str]] = None, + aws_iam_config: Optional[pulumi.Input['DataSourceHttpConfigAuthorizationConfigAwsIamConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_type is None and 'authorizationType' in kwargs: + authorization_type = kwargs['authorizationType'] + if aws_iam_config is None and 'awsIamConfig' in kwargs: + aws_iam_config = kwargs['awsIamConfig'] + if authorization_type is not None: - pulumi.set(__self__, "authorization_type", authorization_type) + _setter("authorization_type", authorization_type) if aws_iam_config is not None: - pulumi.set(__self__, "aws_iam_config", aws_iam_config) + _setter("aws_iam_config", aws_iam_config) @property @pulumi.getter(name="authorizationType") @@ -325,10 +439,27 @@ def __init__(__self__, *, :param pulumi.Input[str] signing_region: Signing Amazon Web Services Region for IAM authorization. :param pulumi.Input[str] signing_service_name: Signing service name for IAM authorization. """ + DataSourceHttpConfigAuthorizationConfigAwsIamConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + signing_region=signing_region, + signing_service_name=signing_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + signing_region: Optional[pulumi.Input[str]] = None, + signing_service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if signing_region is None and 'signingRegion' in kwargs: + signing_region = kwargs['signingRegion'] + if signing_service_name is None and 'signingServiceName' in kwargs: + signing_service_name = kwargs['signingServiceName'] + if signing_region is not None: - pulumi.set(__self__, "signing_region", signing_region) + _setter("signing_region", signing_region) if signing_service_name is not None: - pulumi.set(__self__, "signing_service_name", signing_service_name) + _setter("signing_service_name", signing_service_name) @property @pulumi.getter(name="signingRegion") @@ -362,7 +493,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] function_arn: ARN for the Lambda function. """ - pulumi.set(__self__, "function_arn", function_arn) + DataSourceLambdaConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("function_arn", function_arn) @property @pulumi.getter(name="functionArn") @@ -386,9 +532,24 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint: HTTP endpoint of the Elasticsearch domain. :param pulumi.Input[str] region: AWS region of the DynamoDB table. Defaults to current region. """ - pulumi.set(__self__, "endpoint", endpoint) + DataSourceOpensearchserviceConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + + _setter("endpoint", endpoint) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -424,10 +585,27 @@ def __init__(__self__, *, :param pulumi.Input['DataSourceRelationalDatabaseConfigHttpEndpointConfigArgs'] http_endpoint_config: Amazon RDS HTTP endpoint configuration. See HTTP Endpoint Config. :param pulumi.Input[str] source_type: Source type for the relational database. Valid values: `RDS_HTTP_ENDPOINT`. """ + DataSourceRelationalDatabaseConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint_config=http_endpoint_config, + source_type=source_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint_config: Optional[pulumi.Input['DataSourceRelationalDatabaseConfigHttpEndpointConfigArgs']] = None, + source_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint_config is None and 'httpEndpointConfig' in kwargs: + http_endpoint_config = kwargs['httpEndpointConfig'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if http_endpoint_config is not None: - pulumi.set(__self__, "http_endpoint_config", http_endpoint_config) + _setter("http_endpoint_config", http_endpoint_config) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) @property @pulumi.getter(name="httpEndpointConfig") @@ -469,14 +647,43 @@ def __init__(__self__, *, :param pulumi.Input[str] region: AWS Region for RDS HTTP endpoint. Defaults to current region. :param pulumi.Input[str] schema: Logical schema name. """ - pulumi.set(__self__, "aws_secret_store_arn", aws_secret_store_arn) - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) + DataSourceRelationalDatabaseConfigHttpEndpointConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_secret_store_arn=aws_secret_store_arn, + db_cluster_identifier=db_cluster_identifier, + database_name=database_name, + region=region, + schema=schema, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_secret_store_arn: Optional[pulumi.Input[str]] = None, + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_secret_store_arn is None and 'awsSecretStoreArn' in kwargs: + aws_secret_store_arn = kwargs['awsSecretStoreArn'] + if aws_secret_store_arn is None: + raise TypeError("Missing 'aws_secret_store_arn' argument") + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_cluster_identifier is None: + raise TypeError("Missing 'db_cluster_identifier' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + + _setter("aws_secret_store_arn", aws_secret_store_arn) + _setter("db_cluster_identifier", db_cluster_identifier) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) @property @pulumi.getter(name="awsSecretStoreArn") @@ -548,8 +755,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the runtime to use. Currently, the only allowed value is `APPSYNC_JS`. :param pulumi.Input[str] runtime_version: The version of the runtime to use. Currently, the only allowed version is `1.0.0`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "runtime_version", runtime_version) + FunctionRuntimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + runtime_version=runtime_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + runtime_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if runtime_version is None and 'runtimeVersion' in kwargs: + runtime_version = kwargs['runtimeVersion'] + if runtime_version is None: + raise TypeError("Missing 'runtime_version' argument") + + _setter("name", name) + _setter("runtime_version", runtime_version) @property @pulumi.getter @@ -587,12 +813,33 @@ def __init__(__self__, *, :param pulumi.Input[str] conflict_handler: Conflict Resolution strategy to perform in the event of a conflict. Valid values are `NONE`, `OPTIMISTIC_CONCURRENCY`, `AUTOMERGE`, and `LAMBDA`. :param pulumi.Input['FunctionSyncConfigLambdaConflictHandlerConfigArgs'] lambda_conflict_handler_config: Lambda Conflict Handler Config when configuring `LAMBDA` as the Conflict Handler. See Lambda Conflict Handler Config. """ + FunctionSyncConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + conflict_detection=conflict_detection, + conflict_handler=conflict_handler, + lambda_conflict_handler_config=lambda_conflict_handler_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + conflict_detection: Optional[pulumi.Input[str]] = None, + conflict_handler: Optional[pulumi.Input[str]] = None, + lambda_conflict_handler_config: Optional[pulumi.Input['FunctionSyncConfigLambdaConflictHandlerConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if conflict_detection is None and 'conflictDetection' in kwargs: + conflict_detection = kwargs['conflictDetection'] + if conflict_handler is None and 'conflictHandler' in kwargs: + conflict_handler = kwargs['conflictHandler'] + if lambda_conflict_handler_config is None and 'lambdaConflictHandlerConfig' in kwargs: + lambda_conflict_handler_config = kwargs['lambdaConflictHandlerConfig'] + if conflict_detection is not None: - pulumi.set(__self__, "conflict_detection", conflict_detection) + _setter("conflict_detection", conflict_detection) if conflict_handler is not None: - pulumi.set(__self__, "conflict_handler", conflict_handler) + _setter("conflict_handler", conflict_handler) if lambda_conflict_handler_config is not None: - pulumi.set(__self__, "lambda_conflict_handler_config", lambda_conflict_handler_config) + _setter("lambda_conflict_handler_config", lambda_conflict_handler_config) @property @pulumi.getter(name="conflictDetection") @@ -638,8 +885,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] lambda_conflict_handler_arn: ARN for the Lambda function to use as the Conflict Handler. """ + FunctionSyncConfigLambdaConflictHandlerConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_conflict_handler_arn=lambda_conflict_handler_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_conflict_handler_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_conflict_handler_arn is None and 'lambdaConflictHandlerArn' in kwargs: + lambda_conflict_handler_arn = kwargs['lambdaConflictHandlerArn'] + if lambda_conflict_handler_arn is not None: - pulumi.set(__self__, "lambda_conflict_handler_arn", lambda_conflict_handler_arn) + _setter("lambda_conflict_handler_arn", lambda_conflict_handler_arn) @property @pulumi.getter(name="lambdaConflictHandlerArn") @@ -667,13 +927,40 @@ def __init__(__self__, *, :param pulumi.Input['GraphQLApiAdditionalAuthenticationProviderOpenidConnectConfigArgs'] openid_connect_config: Nested argument containing OpenID Connect configuration. Defined below. :param pulumi.Input['GraphQLApiAdditionalAuthenticationProviderUserPoolConfigArgs'] user_pool_config: Amazon Cognito User Pool configuration. Defined below. """ - pulumi.set(__self__, "authentication_type", authentication_type) + GraphQLApiAdditionalAuthenticationProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + lambda_authorizer_config=lambda_authorizer_config, + openid_connect_config=openid_connect_config, + user_pool_config=user_pool_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[pulumi.Input[str]] = None, + lambda_authorizer_config: Optional[pulumi.Input['GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs']] = None, + openid_connect_config: Optional[pulumi.Input['GraphQLApiAdditionalAuthenticationProviderOpenidConnectConfigArgs']] = None, + user_pool_config: Optional[pulumi.Input['GraphQLApiAdditionalAuthenticationProviderUserPoolConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is None: + raise TypeError("Missing 'authentication_type' argument") + if lambda_authorizer_config is None and 'lambdaAuthorizerConfig' in kwargs: + lambda_authorizer_config = kwargs['lambdaAuthorizerConfig'] + if openid_connect_config is None and 'openidConnectConfig' in kwargs: + openid_connect_config = kwargs['openidConnectConfig'] + if user_pool_config is None and 'userPoolConfig' in kwargs: + user_pool_config = kwargs['userPoolConfig'] + + _setter("authentication_type", authentication_type) if lambda_authorizer_config is not None: - pulumi.set(__self__, "lambda_authorizer_config", lambda_authorizer_config) + _setter("lambda_authorizer_config", lambda_authorizer_config) if openid_connect_config is not None: - pulumi.set(__self__, "openid_connect_config", openid_connect_config) + _setter("openid_connect_config", openid_connect_config) if user_pool_config is not None: - pulumi.set(__self__, "user_pool_config", user_pool_config) + _setter("user_pool_config", user_pool_config) @property @pulumi.getter(name="authenticationType") @@ -735,11 +1022,34 @@ def __init__(__self__, *, :param pulumi.Input[int] authorizer_result_ttl_in_seconds: Number of seconds a response should be cached for. The default is 5 minutes (300 seconds). The Lambda function can override this by returning a `ttlOverride` key in its response. A value of 0 disables caching of responses. Minimum value of 0. Maximum value of 3600. :param pulumi.Input[str] identity_validation_expression: Regular expression for validation of tokens before the Lambda function is called. """ - pulumi.set(__self__, "authorizer_uri", authorizer_uri) + GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorizer_uri=authorizer_uri, + authorizer_result_ttl_in_seconds=authorizer_result_ttl_in_seconds, + identity_validation_expression=identity_validation_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorizer_uri: Optional[pulumi.Input[str]] = None, + authorizer_result_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + identity_validation_expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorizer_uri is None and 'authorizerUri' in kwargs: + authorizer_uri = kwargs['authorizerUri'] + if authorizer_uri is None: + raise TypeError("Missing 'authorizer_uri' argument") + if authorizer_result_ttl_in_seconds is None and 'authorizerResultTtlInSeconds' in kwargs: + authorizer_result_ttl_in_seconds = kwargs['authorizerResultTtlInSeconds'] + if identity_validation_expression is None and 'identityValidationExpression' in kwargs: + identity_validation_expression = kwargs['identityValidationExpression'] + + _setter("authorizer_uri", authorizer_uri) if authorizer_result_ttl_in_seconds is not None: - pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + _setter("authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) if identity_validation_expression is not None: - pulumi.set(__self__, "identity_validation_expression", identity_validation_expression) + _setter("identity_validation_expression", identity_validation_expression) @property @pulumi.getter(name="authorizerUri") @@ -791,13 +1101,38 @@ def __init__(__self__, *, :param pulumi.Input[str] client_id: Client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time. :param pulumi.Input[int] iat_ttl: Number of milliseconds a token is valid after being issued to a user. """ - pulumi.set(__self__, "issuer", issuer) + GraphQLApiAdditionalAuthenticationProviderOpenidConnectConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + issuer=issuer, + auth_ttl=auth_ttl, + client_id=client_id, + iat_ttl=iat_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + issuer: Optional[pulumi.Input[str]] = None, + auth_ttl: Optional[pulumi.Input[int]] = None, + client_id: Optional[pulumi.Input[str]] = None, + iat_ttl: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if auth_ttl is None and 'authTtl' in kwargs: + auth_ttl = kwargs['authTtl'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if iat_ttl is None and 'iatTtl' in kwargs: + iat_ttl = kwargs['iatTtl'] + + _setter("issuer", issuer) if auth_ttl is not None: - pulumi.set(__self__, "auth_ttl", auth_ttl) + _setter("auth_ttl", auth_ttl) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if iat_ttl is not None: - pulumi.set(__self__, "iat_ttl", iat_ttl) + _setter("iat_ttl", iat_ttl) @property @pulumi.getter @@ -859,11 +1194,34 @@ def __init__(__self__, *, :param pulumi.Input[str] app_id_client_regex: Regular expression for validating the incoming Amazon Cognito User Pool app client ID. :param pulumi.Input[str] aws_region: AWS region in which the user pool was created. """ - pulumi.set(__self__, "user_pool_id", user_pool_id) + GraphQLApiAdditionalAuthenticationProviderUserPoolConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_id=user_pool_id, + app_id_client_regex=app_id_client_regex, + aws_region=aws_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_id: Optional[pulumi.Input[str]] = None, + app_id_client_regex: Optional[pulumi.Input[str]] = None, + aws_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if app_id_client_regex is None and 'appIdClientRegex' in kwargs: + app_id_client_regex = kwargs['appIdClientRegex'] + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + + _setter("user_pool_id", user_pool_id) if app_id_client_regex is not None: - pulumi.set(__self__, "app_id_client_regex", app_id_client_regex) + _setter("app_id_client_regex", app_id_client_regex) if aws_region is not None: - pulumi.set(__self__, "aws_region", aws_region) + _setter("aws_region", aws_region) @property @pulumi.getter(name="userPoolId") @@ -913,11 +1271,34 @@ def __init__(__self__, *, :param pulumi.Input[int] authorizer_result_ttl_in_seconds: Number of seconds a response should be cached for. The default is 5 minutes (300 seconds). The Lambda function can override this by returning a `ttlOverride` key in its response. A value of 0 disables caching of responses. Minimum value of 0. Maximum value of 3600. :param pulumi.Input[str] identity_validation_expression: Regular expression for validation of tokens before the Lambda function is called. """ - pulumi.set(__self__, "authorizer_uri", authorizer_uri) + GraphQLApiLambdaAuthorizerConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorizer_uri=authorizer_uri, + authorizer_result_ttl_in_seconds=authorizer_result_ttl_in_seconds, + identity_validation_expression=identity_validation_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorizer_uri: Optional[pulumi.Input[str]] = None, + authorizer_result_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + identity_validation_expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorizer_uri is None and 'authorizerUri' in kwargs: + authorizer_uri = kwargs['authorizerUri'] + if authorizer_uri is None: + raise TypeError("Missing 'authorizer_uri' argument") + if authorizer_result_ttl_in_seconds is None and 'authorizerResultTtlInSeconds' in kwargs: + authorizer_result_ttl_in_seconds = kwargs['authorizerResultTtlInSeconds'] + if identity_validation_expression is None and 'identityValidationExpression' in kwargs: + identity_validation_expression = kwargs['identityValidationExpression'] + + _setter("authorizer_uri", authorizer_uri) if authorizer_result_ttl_in_seconds is not None: - pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + _setter("authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) if identity_validation_expression is not None: - pulumi.set(__self__, "identity_validation_expression", identity_validation_expression) + _setter("identity_validation_expression", identity_validation_expression) @property @pulumi.getter(name="authorizerUri") @@ -967,10 +1348,35 @@ def __init__(__self__, *, :param pulumi.Input[str] field_log_level: Field logging level. Valid values: `ALL`, `ERROR`, `NONE`. :param pulumi.Input[bool] exclude_verbose_content: Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level. Valid values: `true`, `false`. Default value: `false` """ - pulumi.set(__self__, "cloudwatch_logs_role_arn", cloudwatch_logs_role_arn) - pulumi.set(__self__, "field_log_level", field_log_level) + GraphQLApiLogConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs_role_arn=cloudwatch_logs_role_arn, + field_log_level=field_log_level, + exclude_verbose_content=exclude_verbose_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs_role_arn: Optional[pulumi.Input[str]] = None, + field_log_level: Optional[pulumi.Input[str]] = None, + exclude_verbose_content: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs_role_arn is None and 'cloudwatchLogsRoleArn' in kwargs: + cloudwatch_logs_role_arn = kwargs['cloudwatchLogsRoleArn'] + if cloudwatch_logs_role_arn is None: + raise TypeError("Missing 'cloudwatch_logs_role_arn' argument") + if field_log_level is None and 'fieldLogLevel' in kwargs: + field_log_level = kwargs['fieldLogLevel'] + if field_log_level is None: + raise TypeError("Missing 'field_log_level' argument") + if exclude_verbose_content is None and 'excludeVerboseContent' in kwargs: + exclude_verbose_content = kwargs['excludeVerboseContent'] + + _setter("cloudwatch_logs_role_arn", cloudwatch_logs_role_arn) + _setter("field_log_level", field_log_level) if exclude_verbose_content is not None: - pulumi.set(__self__, "exclude_verbose_content", exclude_verbose_content) + _setter("exclude_verbose_content", exclude_verbose_content) @property @pulumi.getter(name="cloudwatchLogsRoleArn") @@ -1022,13 +1428,38 @@ def __init__(__self__, *, :param pulumi.Input[str] client_id: Client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time. :param pulumi.Input[int] iat_ttl: Number of milliseconds a token is valid after being issued to a user. """ - pulumi.set(__self__, "issuer", issuer) + GraphQLApiOpenidConnectConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + issuer=issuer, + auth_ttl=auth_ttl, + client_id=client_id, + iat_ttl=iat_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + issuer: Optional[pulumi.Input[str]] = None, + auth_ttl: Optional[pulumi.Input[int]] = None, + client_id: Optional[pulumi.Input[str]] = None, + iat_ttl: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if auth_ttl is None and 'authTtl' in kwargs: + auth_ttl = kwargs['authTtl'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if iat_ttl is None and 'iatTtl' in kwargs: + iat_ttl = kwargs['iatTtl'] + + _setter("issuer", issuer) if auth_ttl is not None: - pulumi.set(__self__, "auth_ttl", auth_ttl) + _setter("auth_ttl", auth_ttl) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if iat_ttl is not None: - pulumi.set(__self__, "iat_ttl", iat_ttl) + _setter("iat_ttl", iat_ttl) @property @pulumi.getter @@ -1092,12 +1523,41 @@ def __init__(__self__, *, :param pulumi.Input[str] app_id_client_regex: Regular expression for validating the incoming Amazon Cognito User Pool app client ID. :param pulumi.Input[str] aws_region: AWS region in which the user pool was created. """ - pulumi.set(__self__, "default_action", default_action) - pulumi.set(__self__, "user_pool_id", user_pool_id) + GraphQLApiUserPoolConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_action=default_action, + user_pool_id=user_pool_id, + app_id_client_regex=app_id_client_regex, + aws_region=aws_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_action: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + app_id_client_regex: Optional[pulumi.Input[str]] = None, + aws_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if default_action is None: + raise TypeError("Missing 'default_action' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if app_id_client_regex is None and 'appIdClientRegex' in kwargs: + app_id_client_regex = kwargs['appIdClientRegex'] + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + + _setter("default_action", default_action) + _setter("user_pool_id", user_pool_id) if app_id_client_regex is not None: - pulumi.set(__self__, "app_id_client_regex", app_id_client_regex) + _setter("app_id_client_regex", app_id_client_regex) if aws_region is not None: - pulumi.set(__self__, "aws_region", aws_region) + _setter("aws_region", aws_region) @property @pulumi.getter(name="defaultAction") @@ -1157,10 +1617,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] caching_keys: The caching keys for a resolver that has caching activated. Valid values are entries from the $context.arguments, $context.source, and $context.identity maps. :param pulumi.Input[int] ttl: The TTL in seconds for a resolver that has caching activated. Valid values are between `1` and `3600` seconds. """ + ResolverCachingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + caching_keys=caching_keys, + ttl=ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caching_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ttl: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caching_keys is None and 'cachingKeys' in kwargs: + caching_keys = kwargs['cachingKeys'] + if caching_keys is not None: - pulumi.set(__self__, "caching_keys", caching_keys) + _setter("caching_keys", caching_keys) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) @property @pulumi.getter(name="cachingKeys") @@ -1194,8 +1669,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] functions: A list of Function objects. """ + ResolverPipelineConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + functions=functions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + functions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if functions is not None: - pulumi.set(__self__, "functions", functions) + _setter("functions", functions) @property @pulumi.getter @@ -1219,8 +1705,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the runtime to use. Currently, the only allowed value is `APPSYNC_JS`. :param pulumi.Input[str] runtime_version: The version of the runtime to use. Currently, the only allowed version is `1.0.0`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "runtime_version", runtime_version) + ResolverRuntimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + runtime_version=runtime_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + runtime_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if runtime_version is None and 'runtimeVersion' in kwargs: + runtime_version = kwargs['runtimeVersion'] + if runtime_version is None: + raise TypeError("Missing 'runtime_version' argument") + + _setter("name", name) + _setter("runtime_version", runtime_version) @property @pulumi.getter @@ -1258,12 +1763,33 @@ def __init__(__self__, *, :param pulumi.Input[str] conflict_handler: Conflict Resolution strategy to perform in the event of a conflict. Valid values are `NONE`, `OPTIMISTIC_CONCURRENCY`, `AUTOMERGE`, and `LAMBDA`. :param pulumi.Input['ResolverSyncConfigLambdaConflictHandlerConfigArgs'] lambda_conflict_handler_config: Lambda Conflict Handler Config when configuring `LAMBDA` as the Conflict Handler. See Lambda Conflict Handler Config. """ + ResolverSyncConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + conflict_detection=conflict_detection, + conflict_handler=conflict_handler, + lambda_conflict_handler_config=lambda_conflict_handler_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + conflict_detection: Optional[pulumi.Input[str]] = None, + conflict_handler: Optional[pulumi.Input[str]] = None, + lambda_conflict_handler_config: Optional[pulumi.Input['ResolverSyncConfigLambdaConflictHandlerConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if conflict_detection is None and 'conflictDetection' in kwargs: + conflict_detection = kwargs['conflictDetection'] + if conflict_handler is None and 'conflictHandler' in kwargs: + conflict_handler = kwargs['conflictHandler'] + if lambda_conflict_handler_config is None and 'lambdaConflictHandlerConfig' in kwargs: + lambda_conflict_handler_config = kwargs['lambdaConflictHandlerConfig'] + if conflict_detection is not None: - pulumi.set(__self__, "conflict_detection", conflict_detection) + _setter("conflict_detection", conflict_detection) if conflict_handler is not None: - pulumi.set(__self__, "conflict_handler", conflict_handler) + _setter("conflict_handler", conflict_handler) if lambda_conflict_handler_config is not None: - pulumi.set(__self__, "lambda_conflict_handler_config", lambda_conflict_handler_config) + _setter("lambda_conflict_handler_config", lambda_conflict_handler_config) @property @pulumi.getter(name="conflictDetection") @@ -1309,8 +1835,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] lambda_conflict_handler_arn: ARN for the Lambda function to use as the Conflict Handler. """ + ResolverSyncConfigLambdaConflictHandlerConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_conflict_handler_arn=lambda_conflict_handler_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_conflict_handler_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_conflict_handler_arn is None and 'lambdaConflictHandlerArn' in kwargs: + lambda_conflict_handler_arn = kwargs['lambdaConflictHandlerArn'] + if lambda_conflict_handler_arn is not None: - pulumi.set(__self__, "lambda_conflict_handler_arn", lambda_conflict_handler_arn) + _setter("lambda_conflict_handler_arn", lambda_conflict_handler_arn) @property @pulumi.getter(name="lambdaConflictHandlerArn") diff --git a/sdk/python/pulumi_aws/appsync/api_cache.py b/sdk/python/pulumi_aws/appsync/api_cache.py index ed0232f2693..d334247cf5b 100644 --- a/sdk/python/pulumi_aws/appsync/api_cache.py +++ b/sdk/python/pulumi_aws/appsync/api_cache.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApiCacheArgs', 'ApiCache'] @@ -29,14 +29,51 @@ def __init__(__self__, *, :param pulumi.Input[bool] at_rest_encryption_enabled: At-rest encryption flag for cache. You cannot update this setting after creation. :param pulumi.Input[bool] transit_encryption_enabled: Transit encryption flag when connecting to cache. You cannot update this setting after creation. """ - pulumi.set(__self__, "api_caching_behavior", api_caching_behavior) - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "ttl", ttl) - pulumi.set(__self__, "type", type) + ApiCacheArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_caching_behavior=api_caching_behavior, + api_id=api_id, + ttl=ttl, + type=type, + at_rest_encryption_enabled=at_rest_encryption_enabled, + transit_encryption_enabled=transit_encryption_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_caching_behavior: Optional[pulumi.Input[str]] = None, + api_id: Optional[pulumi.Input[str]] = None, + ttl: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + at_rest_encryption_enabled: Optional[pulumi.Input[bool]] = None, + transit_encryption_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_caching_behavior is None and 'apiCachingBehavior' in kwargs: + api_caching_behavior = kwargs['apiCachingBehavior'] + if api_caching_behavior is None: + raise TypeError("Missing 'api_caching_behavior' argument") + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if ttl is None: + raise TypeError("Missing 'ttl' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if at_rest_encryption_enabled is None and 'atRestEncryptionEnabled' in kwargs: + at_rest_encryption_enabled = kwargs['atRestEncryptionEnabled'] + if transit_encryption_enabled is None and 'transitEncryptionEnabled' in kwargs: + transit_encryption_enabled = kwargs['transitEncryptionEnabled'] + + _setter("api_caching_behavior", api_caching_behavior) + _setter("api_id", api_id) + _setter("ttl", ttl) + _setter("type", type) if at_rest_encryption_enabled is not None: - pulumi.set(__self__, "at_rest_encryption_enabled", at_rest_encryption_enabled) + _setter("at_rest_encryption_enabled", at_rest_encryption_enabled) if transit_encryption_enabled is not None: - pulumi.set(__self__, "transit_encryption_enabled", transit_encryption_enabled) + _setter("transit_encryption_enabled", transit_encryption_enabled) @property @pulumi.getter(name="apiCachingBehavior") @@ -129,18 +166,47 @@ def __init__(__self__, *, :param pulumi.Input[int] ttl: TTL in seconds for cache entries. :param pulumi.Input[str] type: Cache instance type. Valid values are `SMALL`, `MEDIUM`, `LARGE`, `XLARGE`, `LARGE_2X`, `LARGE_4X`, `LARGE_8X`, `LARGE_12X`, `T2_SMALL`, `T2_MEDIUM`, `R4_LARGE`, `R4_XLARGE`, `R4_2XLARGE`, `R4_4XLARGE`, `R4_8XLARGE`. """ + _ApiCacheState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_caching_behavior=api_caching_behavior, + api_id=api_id, + at_rest_encryption_enabled=at_rest_encryption_enabled, + transit_encryption_enabled=transit_encryption_enabled, + ttl=ttl, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_caching_behavior: Optional[pulumi.Input[str]] = None, + api_id: Optional[pulumi.Input[str]] = None, + at_rest_encryption_enabled: Optional[pulumi.Input[bool]] = None, + transit_encryption_enabled: Optional[pulumi.Input[bool]] = None, + ttl: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_caching_behavior is None and 'apiCachingBehavior' in kwargs: + api_caching_behavior = kwargs['apiCachingBehavior'] + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if at_rest_encryption_enabled is None and 'atRestEncryptionEnabled' in kwargs: + at_rest_encryption_enabled = kwargs['atRestEncryptionEnabled'] + if transit_encryption_enabled is None and 'transitEncryptionEnabled' in kwargs: + transit_encryption_enabled = kwargs['transitEncryptionEnabled'] + if api_caching_behavior is not None: - pulumi.set(__self__, "api_caching_behavior", api_caching_behavior) + _setter("api_caching_behavior", api_caching_behavior) if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if at_rest_encryption_enabled is not None: - pulumi.set(__self__, "at_rest_encryption_enabled", at_rest_encryption_enabled) + _setter("at_rest_encryption_enabled", at_rest_encryption_enabled) if transit_encryption_enabled is not None: - pulumi.set(__self__, "transit_encryption_enabled", transit_encryption_enabled) + _setter("transit_encryption_enabled", transit_encryption_enabled) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="apiCachingBehavior") @@ -302,6 +368,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApiCacheArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appsync/api_key.py b/sdk/python/pulumi_aws/appsync/api_key.py index 423b12e9348..716bca6bfa6 100644 --- a/sdk/python/pulumi_aws/appsync/api_key.py +++ b/sdk/python/pulumi_aws/appsync/api_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApiKeyArgs', 'ApiKey'] @@ -23,13 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] description: API key description. Defaults to "Managed by Pulumi". :param pulumi.Input[str] expires: RFC3339 string representation of the expiry date. Rounded down to nearest hour. By default, it is 7 days from the date of creation. """ - pulumi.set(__self__, "api_id", api_id) + ApiKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + description=description, + expires=expires, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + expires: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + + _setter("api_id", api_id) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if expires is not None: - pulumi.set(__self__, "expires", expires) + _setter("expires", expires) @property @pulumi.getter(name="apiId") @@ -82,16 +101,35 @@ def __init__(__self__, *, :param pulumi.Input[str] expires: RFC3339 string representation of the expiry date. Rounded down to nearest hour. By default, it is 7 days from the date of creation. :param pulumi.Input[str] key: API key """ + _ApiKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + description=description, + expires=expires, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + expires: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if expires is not None: - pulumi.set(__self__, "expires", expires) + _setter("expires", expires) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter(name="apiId") @@ -219,6 +257,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApiKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appsync/data_source.py b/sdk/python/pulumi_aws/appsync/data_source.py index 12d02cba02e..2f56e4d4aca 100644 --- a/sdk/python/pulumi_aws/appsync/data_source.py +++ b/sdk/python/pulumi_aws/appsync/data_source.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -43,28 +43,83 @@ def __init__(__self__, *, :param pulumi.Input['DataSourceRelationalDatabaseConfigArgs'] relational_database_config: AWS RDS settings. See Relational Database Config :param pulumi.Input[str] service_role_arn: IAM service role ARN for the data source. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "type", type) + DataSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + type=type, + description=description, + dynamodb_config=dynamodb_config, + elasticsearch_config=elasticsearch_config, + event_bridge_config=event_bridge_config, + http_config=http_config, + lambda_config=lambda_config, + name=name, + opensearchservice_config=opensearchservice_config, + relational_database_config=relational_database_config, + service_role_arn=service_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + dynamodb_config: Optional[pulumi.Input['DataSourceDynamodbConfigArgs']] = None, + elasticsearch_config: Optional[pulumi.Input['DataSourceElasticsearchConfigArgs']] = None, + event_bridge_config: Optional[pulumi.Input['DataSourceEventBridgeConfigArgs']] = None, + http_config: Optional[pulumi.Input['DataSourceHttpConfigArgs']] = None, + lambda_config: Optional[pulumi.Input['DataSourceLambdaConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opensearchservice_config: Optional[pulumi.Input['DataSourceOpensearchserviceConfigArgs']] = None, + relational_database_config: Optional[pulumi.Input['DataSourceRelationalDatabaseConfigArgs']] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if dynamodb_config is None and 'dynamodbConfig' in kwargs: + dynamodb_config = kwargs['dynamodbConfig'] + if elasticsearch_config is None and 'elasticsearchConfig' in kwargs: + elasticsearch_config = kwargs['elasticsearchConfig'] + if event_bridge_config is None and 'eventBridgeConfig' in kwargs: + event_bridge_config = kwargs['eventBridgeConfig'] + if http_config is None and 'httpConfig' in kwargs: + http_config = kwargs['httpConfig'] + if lambda_config is None and 'lambdaConfig' in kwargs: + lambda_config = kwargs['lambdaConfig'] + if opensearchservice_config is None and 'opensearchserviceConfig' in kwargs: + opensearchservice_config = kwargs['opensearchserviceConfig'] + if relational_database_config is None and 'relationalDatabaseConfig' in kwargs: + relational_database_config = kwargs['relationalDatabaseConfig'] + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + + _setter("api_id", api_id) + _setter("type", type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dynamodb_config is not None: - pulumi.set(__self__, "dynamodb_config", dynamodb_config) + _setter("dynamodb_config", dynamodb_config) if elasticsearch_config is not None: - pulumi.set(__self__, "elasticsearch_config", elasticsearch_config) + _setter("elasticsearch_config", elasticsearch_config) if event_bridge_config is not None: - pulumi.set(__self__, "event_bridge_config", event_bridge_config) + _setter("event_bridge_config", event_bridge_config) if http_config is not None: - pulumi.set(__self__, "http_config", http_config) + _setter("http_config", http_config) if lambda_config is not None: - pulumi.set(__self__, "lambda_config", lambda_config) + _setter("lambda_config", lambda_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if opensearchservice_config is not None: - pulumi.set(__self__, "opensearchservice_config", opensearchservice_config) + _setter("opensearchservice_config", opensearchservice_config) if relational_database_config is not None: - pulumi.set(__self__, "relational_database_config", relational_database_config) + _setter("relational_database_config", relational_database_config) if service_role_arn is not None: - pulumi.set(__self__, "service_role_arn", service_role_arn) + _setter("service_role_arn", service_role_arn) @property @pulumi.getter(name="apiId") @@ -243,32 +298,85 @@ def __init__(__self__, *, :param pulumi.Input[str] service_role_arn: IAM service role ARN for the data source. :param pulumi.Input[str] type: Type of the Data Source. Valid values: `AWS_LAMBDA`, `AMAZON_DYNAMODB`, `AMAZON_ELASTICSEARCH`, `HTTP`, `NONE`, `RELATIONAL_DATABASE`, `AMAZON_EVENTBRIDGE`, `AMAZON_OPENSEARCH_SERVICE`. """ + _DataSourceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + arn=arn, + description=description, + dynamodb_config=dynamodb_config, + elasticsearch_config=elasticsearch_config, + event_bridge_config=event_bridge_config, + http_config=http_config, + lambda_config=lambda_config, + name=name, + opensearchservice_config=opensearchservice_config, + relational_database_config=relational_database_config, + service_role_arn=service_role_arn, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + dynamodb_config: Optional[pulumi.Input['DataSourceDynamodbConfigArgs']] = None, + elasticsearch_config: Optional[pulumi.Input['DataSourceElasticsearchConfigArgs']] = None, + event_bridge_config: Optional[pulumi.Input['DataSourceEventBridgeConfigArgs']] = None, + http_config: Optional[pulumi.Input['DataSourceHttpConfigArgs']] = None, + lambda_config: Optional[pulumi.Input['DataSourceLambdaConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opensearchservice_config: Optional[pulumi.Input['DataSourceOpensearchserviceConfigArgs']] = None, + relational_database_config: Optional[pulumi.Input['DataSourceRelationalDatabaseConfigArgs']] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if dynamodb_config is None and 'dynamodbConfig' in kwargs: + dynamodb_config = kwargs['dynamodbConfig'] + if elasticsearch_config is None and 'elasticsearchConfig' in kwargs: + elasticsearch_config = kwargs['elasticsearchConfig'] + if event_bridge_config is None and 'eventBridgeConfig' in kwargs: + event_bridge_config = kwargs['eventBridgeConfig'] + if http_config is None and 'httpConfig' in kwargs: + http_config = kwargs['httpConfig'] + if lambda_config is None and 'lambdaConfig' in kwargs: + lambda_config = kwargs['lambdaConfig'] + if opensearchservice_config is None and 'opensearchserviceConfig' in kwargs: + opensearchservice_config = kwargs['opensearchserviceConfig'] + if relational_database_config is None and 'relationalDatabaseConfig' in kwargs: + relational_database_config = kwargs['relationalDatabaseConfig'] + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dynamodb_config is not None: - pulumi.set(__self__, "dynamodb_config", dynamodb_config) + _setter("dynamodb_config", dynamodb_config) if elasticsearch_config is not None: - pulumi.set(__self__, "elasticsearch_config", elasticsearch_config) + _setter("elasticsearch_config", elasticsearch_config) if event_bridge_config is not None: - pulumi.set(__self__, "event_bridge_config", event_bridge_config) + _setter("event_bridge_config", event_bridge_config) if http_config is not None: - pulumi.set(__self__, "http_config", http_config) + _setter("http_config", http_config) if lambda_config is not None: - pulumi.set(__self__, "lambda_config", lambda_config) + _setter("lambda_config", lambda_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if opensearchservice_config is not None: - pulumi.set(__self__, "opensearchservice_config", opensearchservice_config) + _setter("opensearchservice_config", opensearchservice_config) if relational_database_config is not None: - pulumi.set(__self__, "relational_database_config", relational_database_config) + _setter("relational_database_config", relational_database_config) if service_role_arn is not None: - pulumi.set(__self__, "service_role_arn", service_role_arn) + _setter("service_role_arn", service_role_arn) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="apiId") @@ -582,6 +690,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataSourceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -612,13 +724,20 @@ def _internal_init(__self__, raise TypeError("Missing required property 'api_id'") __props__.__dict__["api_id"] = api_id __props__.__dict__["description"] = description + dynamodb_config = _utilities.configure(dynamodb_config, DataSourceDynamodbConfigArgs, True) __props__.__dict__["dynamodb_config"] = dynamodb_config + elasticsearch_config = _utilities.configure(elasticsearch_config, DataSourceElasticsearchConfigArgs, True) __props__.__dict__["elasticsearch_config"] = elasticsearch_config + event_bridge_config = _utilities.configure(event_bridge_config, DataSourceEventBridgeConfigArgs, True) __props__.__dict__["event_bridge_config"] = event_bridge_config + http_config = _utilities.configure(http_config, DataSourceHttpConfigArgs, True) __props__.__dict__["http_config"] = http_config + lambda_config = _utilities.configure(lambda_config, DataSourceLambdaConfigArgs, True) __props__.__dict__["lambda_config"] = lambda_config __props__.__dict__["name"] = name + opensearchservice_config = _utilities.configure(opensearchservice_config, DataSourceOpensearchserviceConfigArgs, True) __props__.__dict__["opensearchservice_config"] = opensearchservice_config + relational_database_config = _utilities.configure(relational_database_config, DataSourceRelationalDatabaseConfigArgs, True) __props__.__dict__["relational_database_config"] = relational_database_config __props__.__dict__["service_role_arn"] = service_role_arn if type is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/appsync/domain_name.py b/sdk/python/pulumi_aws/appsync/domain_name.py index 1fbc8a6c1e0..855babd9a39 100644 --- a/sdk/python/pulumi_aws/appsync/domain_name.py +++ b/sdk/python/pulumi_aws/appsync/domain_name.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainNameArgs', 'DomainName'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: Domain name. :param pulumi.Input[str] description: A description of the Domain Name. """ - pulumi.set(__self__, "certificate_arn", certificate_arn) - pulumi.set(__self__, "domain_name", domain_name) + DomainNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + domain_name=domain_name, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + + _setter("certificate_arn", certificate_arn) + _setter("domain_name", domain_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="certificateArn") @@ -81,16 +104,43 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: Domain name. :param pulumi.Input[str] hosted_zone_id: ID of your Amazon Route 53 hosted zone. """ + _DomainNameState._configure( + lambda key, value: pulumi.set(__self__, key, value), + appsync_domain_name=appsync_domain_name, + certificate_arn=certificate_arn, + description=description, + domain_name=domain_name, + hosted_zone_id=hosted_zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + appsync_domain_name: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if appsync_domain_name is None and 'appsyncDomainName' in kwargs: + appsync_domain_name = kwargs['appsyncDomainName'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if appsync_domain_name is not None: - pulumi.set(__self__, "appsync_domain_name", appsync_domain_name) + _setter("appsync_domain_name", appsync_domain_name) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) @property @pulumi.getter(name="appsyncDomainName") @@ -228,6 +278,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainNameArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appsync/domain_name_api_association.py b/sdk/python/pulumi_aws/appsync/domain_name_api_association.py index 67348ce5b97..d53e4db3e97 100644 --- a/sdk/python/pulumi_aws/appsync/domain_name_api_association.py +++ b/sdk/python/pulumi_aws/appsync/domain_name_api_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainNameApiAssociationArgs', 'DomainNameApiAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] api_id: API ID. :param pulumi.Input[str] domain_name: Appsync domain name. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "domain_name", domain_name) + DomainNameApiAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + + _setter("api_id", api_id) + _setter("domain_name", domain_name) @property @pulumi.getter(name="apiId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] api_id: API ID. :param pulumi.Input[str] domain_name: Appsync domain name. """ + _DomainNameApiAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) @property @pulumi.getter(name="apiId") @@ -162,6 +200,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainNameApiAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/appsync/function.py b/sdk/python/pulumi_aws/appsync/function.py index e711c522ada..2e300e852f7 100644 --- a/sdk/python/pulumi_aws/appsync/function.py +++ b/sdk/python/pulumi_aws/appsync/function.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,26 +41,75 @@ def __init__(__self__, *, :param pulumi.Input['FunctionRuntimeArgs'] runtime: Describes a runtime used by an AWS AppSync pipeline resolver or AWS AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified. See Runtime. :param pulumi.Input['FunctionSyncConfigArgs'] sync_config: Describes a Sync configuration for a resolver. See Sync Config. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "data_source", data_source) + FunctionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + data_source=data_source, + code=code, + description=description, + function_version=function_version, + max_batch_size=max_batch_size, + name=name, + request_mapping_template=request_mapping_template, + response_mapping_template=response_mapping_template, + runtime=runtime, + sync_config=sync_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + data_source: Optional[pulumi.Input[str]] = None, + code: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + function_version: Optional[pulumi.Input[str]] = None, + max_batch_size: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + request_mapping_template: Optional[pulumi.Input[str]] = None, + response_mapping_template: Optional[pulumi.Input[str]] = None, + runtime: Optional[pulumi.Input['FunctionRuntimeArgs']] = None, + sync_config: Optional[pulumi.Input['FunctionSyncConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if data_source is None and 'dataSource' in kwargs: + data_source = kwargs['dataSource'] + if data_source is None: + raise TypeError("Missing 'data_source' argument") + if function_version is None and 'functionVersion' in kwargs: + function_version = kwargs['functionVersion'] + if max_batch_size is None and 'maxBatchSize' in kwargs: + max_batch_size = kwargs['maxBatchSize'] + if request_mapping_template is None and 'requestMappingTemplate' in kwargs: + request_mapping_template = kwargs['requestMappingTemplate'] + if response_mapping_template is None and 'responseMappingTemplate' in kwargs: + response_mapping_template = kwargs['responseMappingTemplate'] + if sync_config is None and 'syncConfig' in kwargs: + sync_config = kwargs['syncConfig'] + + _setter("api_id", api_id) + _setter("data_source", data_source) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if function_version is not None: - pulumi.set(__self__, "function_version", function_version) + _setter("function_version", function_version) if max_batch_size is not None: - pulumi.set(__self__, "max_batch_size", max_batch_size) + _setter("max_batch_size", max_batch_size) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if request_mapping_template is not None: - pulumi.set(__self__, "request_mapping_template", request_mapping_template) + _setter("request_mapping_template", request_mapping_template) if response_mapping_template is not None: - pulumi.set(__self__, "response_mapping_template", response_mapping_template) + _setter("response_mapping_template", response_mapping_template) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) if sync_config is not None: - pulumi.set(__self__, "sync_config", sync_config) + _setter("sync_config", sync_config) @property @pulumi.getter(name="apiId") @@ -227,32 +276,83 @@ def __init__(__self__, *, :param pulumi.Input['FunctionRuntimeArgs'] runtime: Describes a runtime used by an AWS AppSync pipeline resolver or AWS AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified. See Runtime. :param pulumi.Input['FunctionSyncConfigArgs'] sync_config: Describes a Sync configuration for a resolver. See Sync Config. """ + _FunctionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + arn=arn, + code=code, + data_source=data_source, + description=description, + function_id=function_id, + function_version=function_version, + max_batch_size=max_batch_size, + name=name, + request_mapping_template=request_mapping_template, + response_mapping_template=response_mapping_template, + runtime=runtime, + sync_config=sync_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + code: Optional[pulumi.Input[str]] = None, + data_source: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + function_id: Optional[pulumi.Input[str]] = None, + function_version: Optional[pulumi.Input[str]] = None, + max_batch_size: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + request_mapping_template: Optional[pulumi.Input[str]] = None, + response_mapping_template: Optional[pulumi.Input[str]] = None, + runtime: Optional[pulumi.Input['FunctionRuntimeArgs']] = None, + sync_config: Optional[pulumi.Input['FunctionSyncConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if data_source is None and 'dataSource' in kwargs: + data_source = kwargs['dataSource'] + if function_id is None and 'functionId' in kwargs: + function_id = kwargs['functionId'] + if function_version is None and 'functionVersion' in kwargs: + function_version = kwargs['functionVersion'] + if max_batch_size is None and 'maxBatchSize' in kwargs: + max_batch_size = kwargs['maxBatchSize'] + if request_mapping_template is None and 'requestMappingTemplate' in kwargs: + request_mapping_template = kwargs['requestMappingTemplate'] + if response_mapping_template is None and 'responseMappingTemplate' in kwargs: + response_mapping_template = kwargs['responseMappingTemplate'] + if sync_config is None and 'syncConfig' in kwargs: + sync_config = kwargs['syncConfig'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if data_source is not None: - pulumi.set(__self__, "data_source", data_source) + _setter("data_source", data_source) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if function_id is not None: - pulumi.set(__self__, "function_id", function_id) + _setter("function_id", function_id) if function_version is not None: - pulumi.set(__self__, "function_version", function_version) + _setter("function_version", function_version) if max_batch_size is not None: - pulumi.set(__self__, "max_batch_size", max_batch_size) + _setter("max_batch_size", max_batch_size) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if request_mapping_template is not None: - pulumi.set(__self__, "request_mapping_template", request_mapping_template) + _setter("request_mapping_template", request_mapping_template) if response_mapping_template is not None: - pulumi.set(__self__, "response_mapping_template", response_mapping_template) + _setter("response_mapping_template", response_mapping_template) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) if sync_config is not None: - pulumi.set(__self__, "sync_config", sync_config) + _setter("sync_config", sync_config) @property @pulumi.getter(name="apiId") @@ -620,6 +720,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FunctionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -658,7 +762,9 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["request_mapping_template"] = request_mapping_template __props__.__dict__["response_mapping_template"] = response_mapping_template + runtime = _utilities.configure(runtime, FunctionRuntimeArgs, True) __props__.__dict__["runtime"] = runtime + sync_config = _utilities.configure(sync_config, FunctionSyncConfigArgs, True) __props__.__dict__["sync_config"] = sync_config __props__.__dict__["arn"] = None __props__.__dict__["function_id"] = None diff --git a/sdk/python/pulumi_aws/appsync/graph_ql_api.py b/sdk/python/pulumi_aws/appsync/graph_ql_api.py index 57bab528003..78c8bd70b85 100644 --- a/sdk/python/pulumi_aws/appsync/graph_ql_api.py +++ b/sdk/python/pulumi_aws/appsync/graph_ql_api.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,27 +41,74 @@ def __init__(__self__, *, :param pulumi.Input[str] visibility: Sets the value of the GraphQL API to public (`GLOBAL`) or private (`PRIVATE`). If no value is provided, the visibility will be set to `GLOBAL` by default. This value cannot be changed once the API has been created. :param pulumi.Input[bool] xray_enabled: Whether tracing with X-ray is enabled. Defaults to false. """ - pulumi.set(__self__, "authentication_type", authentication_type) + GraphQLApiArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + additional_authentication_providers=additional_authentication_providers, + lambda_authorizer_config=lambda_authorizer_config, + log_config=log_config, + name=name, + openid_connect_config=openid_connect_config, + schema=schema, + tags=tags, + user_pool_config=user_pool_config, + visibility=visibility, + xray_enabled=xray_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[pulumi.Input[str]] = None, + additional_authentication_providers: Optional[pulumi.Input[Sequence[pulumi.Input['GraphQLApiAdditionalAuthenticationProviderArgs']]]] = None, + lambda_authorizer_config: Optional[pulumi.Input['GraphQLApiLambdaAuthorizerConfigArgs']] = None, + log_config: Optional[pulumi.Input['GraphQLApiLogConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + openid_connect_config: Optional[pulumi.Input['GraphQLApiOpenidConnectConfigArgs']] = None, + schema: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_pool_config: Optional[pulumi.Input['GraphQLApiUserPoolConfigArgs']] = None, + visibility: Optional[pulumi.Input[str]] = None, + xray_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is None: + raise TypeError("Missing 'authentication_type' argument") + if additional_authentication_providers is None and 'additionalAuthenticationProviders' in kwargs: + additional_authentication_providers = kwargs['additionalAuthenticationProviders'] + if lambda_authorizer_config is None and 'lambdaAuthorizerConfig' in kwargs: + lambda_authorizer_config = kwargs['lambdaAuthorizerConfig'] + if log_config is None and 'logConfig' in kwargs: + log_config = kwargs['logConfig'] + if openid_connect_config is None and 'openidConnectConfig' in kwargs: + openid_connect_config = kwargs['openidConnectConfig'] + if user_pool_config is None and 'userPoolConfig' in kwargs: + user_pool_config = kwargs['userPoolConfig'] + if xray_enabled is None and 'xrayEnabled' in kwargs: + xray_enabled = kwargs['xrayEnabled'] + + _setter("authentication_type", authentication_type) if additional_authentication_providers is not None: - pulumi.set(__self__, "additional_authentication_providers", additional_authentication_providers) + _setter("additional_authentication_providers", additional_authentication_providers) if lambda_authorizer_config is not None: - pulumi.set(__self__, "lambda_authorizer_config", lambda_authorizer_config) + _setter("lambda_authorizer_config", lambda_authorizer_config) if log_config is not None: - pulumi.set(__self__, "log_config", log_config) + _setter("log_config", log_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if openid_connect_config is not None: - pulumi.set(__self__, "openid_connect_config", openid_connect_config) + _setter("openid_connect_config", openid_connect_config) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_pool_config is not None: - pulumi.set(__self__, "user_pool_config", user_pool_config) + _setter("user_pool_config", user_pool_config) if visibility is not None: - pulumi.set(__self__, "visibility", visibility) + _setter("visibility", visibility) if xray_enabled is not None: - pulumi.set(__self__, "xray_enabled", xray_enabled) + _setter("xray_enabled", xray_enabled) @property @pulumi.getter(name="authenticationType") @@ -230,37 +277,90 @@ def __init__(__self__, *, :param pulumi.Input[str] visibility: Sets the value of the GraphQL API to public (`GLOBAL`) or private (`PRIVATE`). If no value is provided, the visibility will be set to `GLOBAL` by default. This value cannot be changed once the API has been created. :param pulumi.Input[bool] xray_enabled: Whether tracing with X-ray is enabled. Defaults to false. """ + _GraphQLApiState._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_authentication_providers=additional_authentication_providers, + arn=arn, + authentication_type=authentication_type, + lambda_authorizer_config=lambda_authorizer_config, + log_config=log_config, + name=name, + openid_connect_config=openid_connect_config, + schema=schema, + tags=tags, + tags_all=tags_all, + uris=uris, + user_pool_config=user_pool_config, + visibility=visibility, + xray_enabled=xray_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_authentication_providers: Optional[pulumi.Input[Sequence[pulumi.Input['GraphQLApiAdditionalAuthenticationProviderArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + authentication_type: Optional[pulumi.Input[str]] = None, + lambda_authorizer_config: Optional[pulumi.Input['GraphQLApiLambdaAuthorizerConfigArgs']] = None, + log_config: Optional[pulumi.Input['GraphQLApiLogConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + openid_connect_config: Optional[pulumi.Input['GraphQLApiOpenidConnectConfigArgs']] = None, + schema: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uris: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_pool_config: Optional[pulumi.Input['GraphQLApiUserPoolConfigArgs']] = None, + visibility: Optional[pulumi.Input[str]] = None, + xray_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_authentication_providers is None and 'additionalAuthenticationProviders' in kwargs: + additional_authentication_providers = kwargs['additionalAuthenticationProviders'] + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if lambda_authorizer_config is None and 'lambdaAuthorizerConfig' in kwargs: + lambda_authorizer_config = kwargs['lambdaAuthorizerConfig'] + if log_config is None and 'logConfig' in kwargs: + log_config = kwargs['logConfig'] + if openid_connect_config is None and 'openidConnectConfig' in kwargs: + openid_connect_config = kwargs['openidConnectConfig'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_pool_config is None and 'userPoolConfig' in kwargs: + user_pool_config = kwargs['userPoolConfig'] + if xray_enabled is None and 'xrayEnabled' in kwargs: + xray_enabled = kwargs['xrayEnabled'] + if additional_authentication_providers is not None: - pulumi.set(__self__, "additional_authentication_providers", additional_authentication_providers) + _setter("additional_authentication_providers", additional_authentication_providers) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_type is not None: - pulumi.set(__self__, "authentication_type", authentication_type) + _setter("authentication_type", authentication_type) if lambda_authorizer_config is not None: - pulumi.set(__self__, "lambda_authorizer_config", lambda_authorizer_config) + _setter("lambda_authorizer_config", lambda_authorizer_config) if log_config is not None: - pulumi.set(__self__, "log_config", log_config) + _setter("log_config", log_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if openid_connect_config is not None: - pulumi.set(__self__, "openid_connect_config", openid_connect_config) + _setter("openid_connect_config", openid_connect_config) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uris is not None: - pulumi.set(__self__, "uris", uris) + _setter("uris", uris) if user_pool_config is not None: - pulumi.set(__self__, "user_pool_config", user_pool_config) + _setter("user_pool_config", user_pool_config) if visibility is not None: - pulumi.set(__self__, "visibility", visibility) + _setter("visibility", visibility) if xray_enabled is not None: - pulumi.set(__self__, "xray_enabled", xray_enabled) + _setter("xray_enabled", xray_enabled) @property @pulumi.getter(name="additionalAuthenticationProviders") @@ -485,6 +585,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GraphQLApiArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -514,12 +618,16 @@ def _internal_init(__self__, if authentication_type is None and not opts.urn: raise TypeError("Missing required property 'authentication_type'") __props__.__dict__["authentication_type"] = authentication_type + lambda_authorizer_config = _utilities.configure(lambda_authorizer_config, GraphQLApiLambdaAuthorizerConfigArgs, True) __props__.__dict__["lambda_authorizer_config"] = lambda_authorizer_config + log_config = _utilities.configure(log_config, GraphQLApiLogConfigArgs, True) __props__.__dict__["log_config"] = log_config __props__.__dict__["name"] = name + openid_connect_config = _utilities.configure(openid_connect_config, GraphQLApiOpenidConnectConfigArgs, True) __props__.__dict__["openid_connect_config"] = openid_connect_config __props__.__dict__["schema"] = schema __props__.__dict__["tags"] = tags + user_pool_config = _utilities.configure(user_pool_config, GraphQLApiUserPoolConfigArgs, True) __props__.__dict__["user_pool_config"] = user_pool_config __props__.__dict__["visibility"] = visibility __props__.__dict__["xray_enabled"] = xray_enabled diff --git a/sdk/python/pulumi_aws/appsync/outputs.py b/sdk/python/pulumi_aws/appsync/outputs.py index e935da1d343..7e870c1d502 100644 --- a/sdk/python/pulumi_aws/appsync/outputs.py +++ b/sdk/python/pulumi_aws/appsync/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -76,15 +76,42 @@ def __init__(__self__, *, :param bool use_caller_credentials: Set to `true` to use Amazon Cognito credentials with this data source. :param bool versioned: Detects Conflict Detection and Resolution with this data source. """ - pulumi.set(__self__, "table_name", table_name) + DataSourceDynamodbConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + table_name=table_name, + delta_sync_config=delta_sync_config, + region=region, + use_caller_credentials=use_caller_credentials, + versioned=versioned, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + table_name: Optional[str] = None, + delta_sync_config: Optional['outputs.DataSourceDynamodbConfigDeltaSyncConfig'] = None, + region: Optional[str] = None, + use_caller_credentials: Optional[bool] = None, + versioned: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if delta_sync_config is None and 'deltaSyncConfig' in kwargs: + delta_sync_config = kwargs['deltaSyncConfig'] + if use_caller_credentials is None and 'useCallerCredentials' in kwargs: + use_caller_credentials = kwargs['useCallerCredentials'] + + _setter("table_name", table_name) if delta_sync_config is not None: - pulumi.set(__self__, "delta_sync_config", delta_sync_config) + _setter("delta_sync_config", delta_sync_config) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if use_caller_credentials is not None: - pulumi.set(__self__, "use_caller_credentials", use_caller_credentials) + _setter("use_caller_credentials", use_caller_credentials) if versioned is not None: - pulumi.set(__self__, "versioned", versioned) + _setter("versioned", versioned) @property @pulumi.getter(name="tableName") @@ -159,11 +186,34 @@ def __init__(__self__, *, :param int base_table_ttl: The number of minutes that an Item is stored in the data source. :param int delta_sync_table_ttl: The number of minutes that a Delta Sync log entry is stored in the Delta Sync table. """ - pulumi.set(__self__, "delta_sync_table_name", delta_sync_table_name) + DataSourceDynamodbConfigDeltaSyncConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + delta_sync_table_name=delta_sync_table_name, + base_table_ttl=base_table_ttl, + delta_sync_table_ttl=delta_sync_table_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delta_sync_table_name: Optional[str] = None, + base_table_ttl: Optional[int] = None, + delta_sync_table_ttl: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delta_sync_table_name is None and 'deltaSyncTableName' in kwargs: + delta_sync_table_name = kwargs['deltaSyncTableName'] + if delta_sync_table_name is None: + raise TypeError("Missing 'delta_sync_table_name' argument") + if base_table_ttl is None and 'baseTableTtl' in kwargs: + base_table_ttl = kwargs['baseTableTtl'] + if delta_sync_table_ttl is None and 'deltaSyncTableTtl' in kwargs: + delta_sync_table_ttl = kwargs['deltaSyncTableTtl'] + + _setter("delta_sync_table_name", delta_sync_table_name) if base_table_ttl is not None: - pulumi.set(__self__, "base_table_ttl", base_table_ttl) + _setter("base_table_ttl", base_table_ttl) if delta_sync_table_ttl is not None: - pulumi.set(__self__, "delta_sync_table_ttl", delta_sync_table_ttl) + _setter("delta_sync_table_ttl", delta_sync_table_ttl) @property @pulumi.getter(name="deltaSyncTableName") @@ -199,9 +249,24 @@ def __init__(__self__, *, :param str endpoint: HTTP endpoint of the Elasticsearch domain. :param str region: AWS region of Elasticsearch domain. Defaults to current region. """ - pulumi.set(__self__, "endpoint", endpoint) + DataSourceElasticsearchConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + + _setter("endpoint", endpoint) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -244,7 +309,22 @@ def __init__(__self__, *, """ :param str event_bus_arn: ARN for the EventBridge bus. """ - pulumi.set(__self__, "event_bus_arn", event_bus_arn) + DataSourceEventBridgeConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_bus_arn=event_bus_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_bus_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_bus_arn is None and 'eventBusArn' in kwargs: + event_bus_arn = kwargs['eventBusArn'] + if event_bus_arn is None: + raise TypeError("Missing 'event_bus_arn' argument") + + _setter("event_bus_arn", event_bus_arn) @property @pulumi.getter(name="eventBusArn") @@ -281,9 +361,26 @@ def __init__(__self__, *, :param str endpoint: HTTP URL. :param 'DataSourceHttpConfigAuthorizationConfigArgs' authorization_config: Authorization configuration in case the HTTP endpoint requires authorization. See Authorization Config. """ - pulumi.set(__self__, "endpoint", endpoint) + DataSourceHttpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + authorization_config=authorization_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[str] = None, + authorization_config: Optional['outputs.DataSourceHttpConfigAuthorizationConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + if authorization_config is None and 'authorizationConfig' in kwargs: + authorization_config = kwargs['authorizationConfig'] + + _setter("endpoint", endpoint) if authorization_config is not None: - pulumi.set(__self__, "authorization_config", authorization_config) + _setter("authorization_config", authorization_config) @property @pulumi.getter @@ -330,10 +427,27 @@ def __init__(__self__, *, :param str authorization_type: Authorization type that the HTTP endpoint requires. Default values is `AWS_IAM`. :param 'DataSourceHttpConfigAuthorizationConfigAwsIamConfigArgs' aws_iam_config: Identity and Access Management (IAM) settings. See AWS IAM Config. """ + DataSourceHttpConfigAuthorizationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_type=authorization_type, + aws_iam_config=aws_iam_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_type: Optional[str] = None, + aws_iam_config: Optional['outputs.DataSourceHttpConfigAuthorizationConfigAwsIamConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_type is None and 'authorizationType' in kwargs: + authorization_type = kwargs['authorizationType'] + if aws_iam_config is None and 'awsIamConfig' in kwargs: + aws_iam_config = kwargs['awsIamConfig'] + if authorization_type is not None: - pulumi.set(__self__, "authorization_type", authorization_type) + _setter("authorization_type", authorization_type) if aws_iam_config is not None: - pulumi.set(__self__, "aws_iam_config", aws_iam_config) + _setter("aws_iam_config", aws_iam_config) @property @pulumi.getter(name="authorizationType") @@ -380,10 +494,27 @@ def __init__(__self__, *, :param str signing_region: Signing Amazon Web Services Region for IAM authorization. :param str signing_service_name: Signing service name for IAM authorization. """ + DataSourceHttpConfigAuthorizationConfigAwsIamConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + signing_region=signing_region, + signing_service_name=signing_service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + signing_region: Optional[str] = None, + signing_service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if signing_region is None and 'signingRegion' in kwargs: + signing_region = kwargs['signingRegion'] + if signing_service_name is None and 'signingServiceName' in kwargs: + signing_service_name = kwargs['signingServiceName'] + if signing_region is not None: - pulumi.set(__self__, "signing_region", signing_region) + _setter("signing_region", signing_region) if signing_service_name is not None: - pulumi.set(__self__, "signing_service_name", signing_service_name) + _setter("signing_service_name", signing_service_name) @property @pulumi.getter(name="signingRegion") @@ -426,7 +557,22 @@ def __init__(__self__, *, """ :param str function_arn: ARN for the Lambda function. """ - pulumi.set(__self__, "function_arn", function_arn) + DataSourceLambdaConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("function_arn", function_arn) @property @pulumi.getter(name="functionArn") @@ -446,9 +592,24 @@ def __init__(__self__, *, :param str endpoint: HTTP endpoint of the Elasticsearch domain. :param str region: AWS region of the DynamoDB table. Defaults to current region. """ - pulumi.set(__self__, "endpoint", endpoint) + DataSourceOpensearchserviceConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + + _setter("endpoint", endpoint) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -495,10 +656,27 @@ def __init__(__self__, *, :param 'DataSourceRelationalDatabaseConfigHttpEndpointConfigArgs' http_endpoint_config: Amazon RDS HTTP endpoint configuration. See HTTP Endpoint Config. :param str source_type: Source type for the relational database. Valid values: `RDS_HTTP_ENDPOINT`. """ + DataSourceRelationalDatabaseConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint_config=http_endpoint_config, + source_type=source_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint_config: Optional['outputs.DataSourceRelationalDatabaseConfigHttpEndpointConfig'] = None, + source_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint_config is None and 'httpEndpointConfig' in kwargs: + http_endpoint_config = kwargs['httpEndpointConfig'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if http_endpoint_config is not None: - pulumi.set(__self__, "http_endpoint_config", http_endpoint_config) + _setter("http_endpoint_config", http_endpoint_config) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) @property @pulumi.getter(name="httpEndpointConfig") @@ -553,14 +731,43 @@ def __init__(__self__, *, :param str region: AWS Region for RDS HTTP endpoint. Defaults to current region. :param str schema: Logical schema name. """ - pulumi.set(__self__, "aws_secret_store_arn", aws_secret_store_arn) - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) + DataSourceRelationalDatabaseConfigHttpEndpointConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_secret_store_arn=aws_secret_store_arn, + db_cluster_identifier=db_cluster_identifier, + database_name=database_name, + region=region, + schema=schema, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_secret_store_arn: Optional[str] = None, + db_cluster_identifier: Optional[str] = None, + database_name: Optional[str] = None, + region: Optional[str] = None, + schema: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_secret_store_arn is None and 'awsSecretStoreArn' in kwargs: + aws_secret_store_arn = kwargs['awsSecretStoreArn'] + if aws_secret_store_arn is None: + raise TypeError("Missing 'aws_secret_store_arn' argument") + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_cluster_identifier is None: + raise TypeError("Missing 'db_cluster_identifier' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + + _setter("aws_secret_store_arn", aws_secret_store_arn) + _setter("db_cluster_identifier", db_cluster_identifier) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) @property @pulumi.getter(name="awsSecretStoreArn") @@ -629,8 +836,27 @@ def __init__(__self__, *, :param str name: The name of the runtime to use. Currently, the only allowed value is `APPSYNC_JS`. :param str runtime_version: The version of the runtime to use. Currently, the only allowed version is `1.0.0`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "runtime_version", runtime_version) + FunctionRuntime._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + runtime_version=runtime_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + runtime_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if runtime_version is None and 'runtimeVersion' in kwargs: + runtime_version = kwargs['runtimeVersion'] + if runtime_version is None: + raise TypeError("Missing 'runtime_version' argument") + + _setter("name", name) + _setter("runtime_version", runtime_version) @property @pulumi.getter @@ -681,12 +907,33 @@ def __init__(__self__, *, :param str conflict_handler: Conflict Resolution strategy to perform in the event of a conflict. Valid values are `NONE`, `OPTIMISTIC_CONCURRENCY`, `AUTOMERGE`, and `LAMBDA`. :param 'FunctionSyncConfigLambdaConflictHandlerConfigArgs' lambda_conflict_handler_config: Lambda Conflict Handler Config when configuring `LAMBDA` as the Conflict Handler. See Lambda Conflict Handler Config. """ + FunctionSyncConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + conflict_detection=conflict_detection, + conflict_handler=conflict_handler, + lambda_conflict_handler_config=lambda_conflict_handler_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + conflict_detection: Optional[str] = None, + conflict_handler: Optional[str] = None, + lambda_conflict_handler_config: Optional['outputs.FunctionSyncConfigLambdaConflictHandlerConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if conflict_detection is None and 'conflictDetection' in kwargs: + conflict_detection = kwargs['conflictDetection'] + if conflict_handler is None and 'conflictHandler' in kwargs: + conflict_handler = kwargs['conflictHandler'] + if lambda_conflict_handler_config is None and 'lambdaConflictHandlerConfig' in kwargs: + lambda_conflict_handler_config = kwargs['lambdaConflictHandlerConfig'] + if conflict_detection is not None: - pulumi.set(__self__, "conflict_detection", conflict_detection) + _setter("conflict_detection", conflict_detection) if conflict_handler is not None: - pulumi.set(__self__, "conflict_handler", conflict_handler) + _setter("conflict_handler", conflict_handler) if lambda_conflict_handler_config is not None: - pulumi.set(__self__, "lambda_conflict_handler_config", lambda_conflict_handler_config) + _setter("lambda_conflict_handler_config", lambda_conflict_handler_config) @property @pulumi.getter(name="conflictDetection") @@ -737,8 +984,21 @@ def __init__(__self__, *, """ :param str lambda_conflict_handler_arn: ARN for the Lambda function to use as the Conflict Handler. """ + FunctionSyncConfigLambdaConflictHandlerConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_conflict_handler_arn=lambda_conflict_handler_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_conflict_handler_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_conflict_handler_arn is None and 'lambdaConflictHandlerArn' in kwargs: + lambda_conflict_handler_arn = kwargs['lambdaConflictHandlerArn'] + if lambda_conflict_handler_arn is not None: - pulumi.set(__self__, "lambda_conflict_handler_arn", lambda_conflict_handler_arn) + _setter("lambda_conflict_handler_arn", lambda_conflict_handler_arn) @property @pulumi.getter(name="lambdaConflictHandlerArn") @@ -785,13 +1045,40 @@ def __init__(__self__, *, :param 'GraphQLApiAdditionalAuthenticationProviderOpenidConnectConfigArgs' openid_connect_config: Nested argument containing OpenID Connect configuration. Defined below. :param 'GraphQLApiAdditionalAuthenticationProviderUserPoolConfigArgs' user_pool_config: Amazon Cognito User Pool configuration. Defined below. """ - pulumi.set(__self__, "authentication_type", authentication_type) + GraphQLApiAdditionalAuthenticationProvider._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + lambda_authorizer_config=lambda_authorizer_config, + openid_connect_config=openid_connect_config, + user_pool_config=user_pool_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[str] = None, + lambda_authorizer_config: Optional['outputs.GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfig'] = None, + openid_connect_config: Optional['outputs.GraphQLApiAdditionalAuthenticationProviderOpenidConnectConfig'] = None, + user_pool_config: Optional['outputs.GraphQLApiAdditionalAuthenticationProviderUserPoolConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is None: + raise TypeError("Missing 'authentication_type' argument") + if lambda_authorizer_config is None and 'lambdaAuthorizerConfig' in kwargs: + lambda_authorizer_config = kwargs['lambdaAuthorizerConfig'] + if openid_connect_config is None and 'openidConnectConfig' in kwargs: + openid_connect_config = kwargs['openidConnectConfig'] + if user_pool_config is None and 'userPoolConfig' in kwargs: + user_pool_config = kwargs['userPoolConfig'] + + _setter("authentication_type", authentication_type) if lambda_authorizer_config is not None: - pulumi.set(__self__, "lambda_authorizer_config", lambda_authorizer_config) + _setter("lambda_authorizer_config", lambda_authorizer_config) if openid_connect_config is not None: - pulumi.set(__self__, "openid_connect_config", openid_connect_config) + _setter("openid_connect_config", openid_connect_config) if user_pool_config is not None: - pulumi.set(__self__, "user_pool_config", user_pool_config) + _setter("user_pool_config", user_pool_config) @property @pulumi.getter(name="authenticationType") @@ -858,11 +1145,34 @@ def __init__(__self__, *, :param int authorizer_result_ttl_in_seconds: Number of seconds a response should be cached for. The default is 5 minutes (300 seconds). The Lambda function can override this by returning a `ttlOverride` key in its response. A value of 0 disables caching of responses. Minimum value of 0. Maximum value of 3600. :param str identity_validation_expression: Regular expression for validation of tokens before the Lambda function is called. """ - pulumi.set(__self__, "authorizer_uri", authorizer_uri) + GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorizer_uri=authorizer_uri, + authorizer_result_ttl_in_seconds=authorizer_result_ttl_in_seconds, + identity_validation_expression=identity_validation_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorizer_uri: Optional[str] = None, + authorizer_result_ttl_in_seconds: Optional[int] = None, + identity_validation_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorizer_uri is None and 'authorizerUri' in kwargs: + authorizer_uri = kwargs['authorizerUri'] + if authorizer_uri is None: + raise TypeError("Missing 'authorizer_uri' argument") + if authorizer_result_ttl_in_seconds is None and 'authorizerResultTtlInSeconds' in kwargs: + authorizer_result_ttl_in_seconds = kwargs['authorizerResultTtlInSeconds'] + if identity_validation_expression is None and 'identityValidationExpression' in kwargs: + identity_validation_expression = kwargs['identityValidationExpression'] + + _setter("authorizer_uri", authorizer_uri) if authorizer_result_ttl_in_seconds is not None: - pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + _setter("authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) if identity_validation_expression is not None: - pulumi.set(__self__, "identity_validation_expression", identity_validation_expression) + _setter("identity_validation_expression", identity_validation_expression) @property @pulumi.getter(name="authorizerUri") @@ -923,13 +1233,38 @@ def __init__(__self__, *, :param str client_id: Client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time. :param int iat_ttl: Number of milliseconds a token is valid after being issued to a user. """ - pulumi.set(__self__, "issuer", issuer) + GraphQLApiAdditionalAuthenticationProviderOpenidConnectConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + issuer=issuer, + auth_ttl=auth_ttl, + client_id=client_id, + iat_ttl=iat_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + issuer: Optional[str] = None, + auth_ttl: Optional[int] = None, + client_id: Optional[str] = None, + iat_ttl: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if auth_ttl is None and 'authTtl' in kwargs: + auth_ttl = kwargs['authTtl'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if iat_ttl is None and 'iatTtl' in kwargs: + iat_ttl = kwargs['iatTtl'] + + _setter("issuer", issuer) if auth_ttl is not None: - pulumi.set(__self__, "auth_ttl", auth_ttl) + _setter("auth_ttl", auth_ttl) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if iat_ttl is not None: - pulumi.set(__self__, "iat_ttl", iat_ttl) + _setter("iat_ttl", iat_ttl) @property @pulumi.getter @@ -996,11 +1331,34 @@ def __init__(__self__, *, :param str app_id_client_regex: Regular expression for validating the incoming Amazon Cognito User Pool app client ID. :param str aws_region: AWS region in which the user pool was created. """ - pulumi.set(__self__, "user_pool_id", user_pool_id) + GraphQLApiAdditionalAuthenticationProviderUserPoolConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_id=user_pool_id, + app_id_client_regex=app_id_client_regex, + aws_region=aws_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_id: Optional[str] = None, + app_id_client_regex: Optional[str] = None, + aws_region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if app_id_client_regex is None and 'appIdClientRegex' in kwargs: + app_id_client_regex = kwargs['appIdClientRegex'] + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + + _setter("user_pool_id", user_pool_id) if app_id_client_regex is not None: - pulumi.set(__self__, "app_id_client_regex", app_id_client_regex) + _setter("app_id_client_regex", app_id_client_regex) if aws_region is not None: - pulumi.set(__self__, "aws_region", aws_region) + _setter("aws_region", aws_region) @property @pulumi.getter(name="userPoolId") @@ -1059,11 +1417,34 @@ def __init__(__self__, *, :param int authorizer_result_ttl_in_seconds: Number of seconds a response should be cached for. The default is 5 minutes (300 seconds). The Lambda function can override this by returning a `ttlOverride` key in its response. A value of 0 disables caching of responses. Minimum value of 0. Maximum value of 3600. :param str identity_validation_expression: Regular expression for validation of tokens before the Lambda function is called. """ - pulumi.set(__self__, "authorizer_uri", authorizer_uri) + GraphQLApiLambdaAuthorizerConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorizer_uri=authorizer_uri, + authorizer_result_ttl_in_seconds=authorizer_result_ttl_in_seconds, + identity_validation_expression=identity_validation_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorizer_uri: Optional[str] = None, + authorizer_result_ttl_in_seconds: Optional[int] = None, + identity_validation_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorizer_uri is None and 'authorizerUri' in kwargs: + authorizer_uri = kwargs['authorizerUri'] + if authorizer_uri is None: + raise TypeError("Missing 'authorizer_uri' argument") + if authorizer_result_ttl_in_seconds is None and 'authorizerResultTtlInSeconds' in kwargs: + authorizer_result_ttl_in_seconds = kwargs['authorizerResultTtlInSeconds'] + if identity_validation_expression is None and 'identityValidationExpression' in kwargs: + identity_validation_expression = kwargs['identityValidationExpression'] + + _setter("authorizer_uri", authorizer_uri) if authorizer_result_ttl_in_seconds is not None: - pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + _setter("authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) if identity_validation_expression is not None: - pulumi.set(__self__, "identity_validation_expression", identity_validation_expression) + _setter("identity_validation_expression", identity_validation_expression) @property @pulumi.getter(name="authorizerUri") @@ -1122,10 +1503,35 @@ def __init__(__self__, *, :param str field_log_level: Field logging level. Valid values: `ALL`, `ERROR`, `NONE`. :param bool exclude_verbose_content: Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level. Valid values: `true`, `false`. Default value: `false` """ - pulumi.set(__self__, "cloudwatch_logs_role_arn", cloudwatch_logs_role_arn) - pulumi.set(__self__, "field_log_level", field_log_level) + GraphQLApiLogConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs_role_arn=cloudwatch_logs_role_arn, + field_log_level=field_log_level, + exclude_verbose_content=exclude_verbose_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs_role_arn: Optional[str] = None, + field_log_level: Optional[str] = None, + exclude_verbose_content: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs_role_arn is None and 'cloudwatchLogsRoleArn' in kwargs: + cloudwatch_logs_role_arn = kwargs['cloudwatchLogsRoleArn'] + if cloudwatch_logs_role_arn is None: + raise TypeError("Missing 'cloudwatch_logs_role_arn' argument") + if field_log_level is None and 'fieldLogLevel' in kwargs: + field_log_level = kwargs['fieldLogLevel'] + if field_log_level is None: + raise TypeError("Missing 'field_log_level' argument") + if exclude_verbose_content is None and 'excludeVerboseContent' in kwargs: + exclude_verbose_content = kwargs['excludeVerboseContent'] + + _setter("cloudwatch_logs_role_arn", cloudwatch_logs_role_arn) + _setter("field_log_level", field_log_level) if exclude_verbose_content is not None: - pulumi.set(__self__, "exclude_verbose_content", exclude_verbose_content) + _setter("exclude_verbose_content", exclude_verbose_content) @property @pulumi.getter(name="cloudwatchLogsRoleArn") @@ -1186,13 +1592,38 @@ def __init__(__self__, *, :param str client_id: Client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time. :param int iat_ttl: Number of milliseconds a token is valid after being issued to a user. """ - pulumi.set(__self__, "issuer", issuer) + GraphQLApiOpenidConnectConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + issuer=issuer, + auth_ttl=auth_ttl, + client_id=client_id, + iat_ttl=iat_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + issuer: Optional[str] = None, + auth_ttl: Optional[int] = None, + client_id: Optional[str] = None, + iat_ttl: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if auth_ttl is None and 'authTtl' in kwargs: + auth_ttl = kwargs['authTtl'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if iat_ttl is None and 'iatTtl' in kwargs: + iat_ttl = kwargs['iatTtl'] + + _setter("issuer", issuer) if auth_ttl is not None: - pulumi.set(__self__, "auth_ttl", auth_ttl) + _setter("auth_ttl", auth_ttl) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if iat_ttl is not None: - pulumi.set(__self__, "iat_ttl", iat_ttl) + _setter("iat_ttl", iat_ttl) @property @pulumi.getter @@ -1263,12 +1694,41 @@ def __init__(__self__, *, :param str app_id_client_regex: Regular expression for validating the incoming Amazon Cognito User Pool app client ID. :param str aws_region: AWS region in which the user pool was created. """ - pulumi.set(__self__, "default_action", default_action) - pulumi.set(__self__, "user_pool_id", user_pool_id) + GraphQLApiUserPoolConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_action=default_action, + user_pool_id=user_pool_id, + app_id_client_regex=app_id_client_regex, + aws_region=aws_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_action: Optional[str] = None, + user_pool_id: Optional[str] = None, + app_id_client_regex: Optional[str] = None, + aws_region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if default_action is None: + raise TypeError("Missing 'default_action' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if app_id_client_regex is None and 'appIdClientRegex' in kwargs: + app_id_client_regex = kwargs['appIdClientRegex'] + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + + _setter("default_action", default_action) + _setter("user_pool_id", user_pool_id) if app_id_client_regex is not None: - pulumi.set(__self__, "app_id_client_regex", app_id_client_regex) + _setter("app_id_client_regex", app_id_client_regex) if aws_region is not None: - pulumi.set(__self__, "aws_region", aws_region) + _setter("aws_region", aws_region) @property @pulumi.getter(name="defaultAction") @@ -1329,10 +1789,25 @@ def __init__(__self__, *, :param Sequence[str] caching_keys: The caching keys for a resolver that has caching activated. Valid values are entries from the $context.arguments, $context.source, and $context.identity maps. :param int ttl: The TTL in seconds for a resolver that has caching activated. Valid values are between `1` and `3600` seconds. """ + ResolverCachingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + caching_keys=caching_keys, + ttl=ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caching_keys: Optional[Sequence[str]] = None, + ttl: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caching_keys is None and 'cachingKeys' in kwargs: + caching_keys = kwargs['cachingKeys'] + if caching_keys is not None: - pulumi.set(__self__, "caching_keys", caching_keys) + _setter("caching_keys", caching_keys) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) @property @pulumi.getter(name="cachingKeys") @@ -1358,8 +1833,19 @@ def __init__(__self__, *, """ :param Sequence[str] functions: A list of Function objects. """ + ResolverPipelineConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + functions=functions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + functions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if functions is not None: - pulumi.set(__self__, "functions", functions) + _setter("functions", functions) @property @pulumi.getter @@ -1396,8 +1882,27 @@ def __init__(__self__, *, :param str name: The name of the runtime to use. Currently, the only allowed value is `APPSYNC_JS`. :param str runtime_version: The version of the runtime to use. Currently, the only allowed version is `1.0.0`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "runtime_version", runtime_version) + ResolverRuntime._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + runtime_version=runtime_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + runtime_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if runtime_version is None and 'runtimeVersion' in kwargs: + runtime_version = kwargs['runtimeVersion'] + if runtime_version is None: + raise TypeError("Missing 'runtime_version' argument") + + _setter("name", name) + _setter("runtime_version", runtime_version) @property @pulumi.getter @@ -1448,12 +1953,33 @@ def __init__(__self__, *, :param str conflict_handler: Conflict Resolution strategy to perform in the event of a conflict. Valid values are `NONE`, `OPTIMISTIC_CONCURRENCY`, `AUTOMERGE`, and `LAMBDA`. :param 'ResolverSyncConfigLambdaConflictHandlerConfigArgs' lambda_conflict_handler_config: Lambda Conflict Handler Config when configuring `LAMBDA` as the Conflict Handler. See Lambda Conflict Handler Config. """ + ResolverSyncConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + conflict_detection=conflict_detection, + conflict_handler=conflict_handler, + lambda_conflict_handler_config=lambda_conflict_handler_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + conflict_detection: Optional[str] = None, + conflict_handler: Optional[str] = None, + lambda_conflict_handler_config: Optional['outputs.ResolverSyncConfigLambdaConflictHandlerConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if conflict_detection is None and 'conflictDetection' in kwargs: + conflict_detection = kwargs['conflictDetection'] + if conflict_handler is None and 'conflictHandler' in kwargs: + conflict_handler = kwargs['conflictHandler'] + if lambda_conflict_handler_config is None and 'lambdaConflictHandlerConfig' in kwargs: + lambda_conflict_handler_config = kwargs['lambdaConflictHandlerConfig'] + if conflict_detection is not None: - pulumi.set(__self__, "conflict_detection", conflict_detection) + _setter("conflict_detection", conflict_detection) if conflict_handler is not None: - pulumi.set(__self__, "conflict_handler", conflict_handler) + _setter("conflict_handler", conflict_handler) if lambda_conflict_handler_config is not None: - pulumi.set(__self__, "lambda_conflict_handler_config", lambda_conflict_handler_config) + _setter("lambda_conflict_handler_config", lambda_conflict_handler_config) @property @pulumi.getter(name="conflictDetection") @@ -1504,8 +2030,21 @@ def __init__(__self__, *, """ :param str lambda_conflict_handler_arn: ARN for the Lambda function to use as the Conflict Handler. """ + ResolverSyncConfigLambdaConflictHandlerConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_conflict_handler_arn=lambda_conflict_handler_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_conflict_handler_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_conflict_handler_arn is None and 'lambdaConflictHandlerArn' in kwargs: + lambda_conflict_handler_arn = kwargs['lambdaConflictHandlerArn'] + if lambda_conflict_handler_arn is not None: - pulumi.set(__self__, "lambda_conflict_handler_arn", lambda_conflict_handler_arn) + _setter("lambda_conflict_handler_arn", lambda_conflict_handler_arn) @property @pulumi.getter(name="lambdaConflictHandlerArn") diff --git a/sdk/python/pulumi_aws/appsync/resolver.py b/sdk/python/pulumi_aws/appsync/resolver.py index 9cd0513119e..840435c6891 100644 --- a/sdk/python/pulumi_aws/appsync/resolver.py +++ b/sdk/python/pulumi_aws/appsync/resolver.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,29 +45,86 @@ def __init__(__self__, *, :param pulumi.Input['ResolverRuntimeArgs'] runtime: Describes a runtime used by an AWS AppSync pipeline resolver or AWS AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified. See Runtime. :param pulumi.Input['ResolverSyncConfigArgs'] sync_config: Describes a Sync configuration for a resolver. See Sync Config. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "field", field) - pulumi.set(__self__, "type", type) + ResolverArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + field=field, + type=type, + caching_config=caching_config, + code=code, + data_source=data_source, + kind=kind, + max_batch_size=max_batch_size, + pipeline_config=pipeline_config, + request_template=request_template, + response_template=response_template, + runtime=runtime, + sync_config=sync_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + field: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + caching_config: Optional[pulumi.Input['ResolverCachingConfigArgs']] = None, + code: Optional[pulumi.Input[str]] = None, + data_source: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + max_batch_size: Optional[pulumi.Input[int]] = None, + pipeline_config: Optional[pulumi.Input['ResolverPipelineConfigArgs']] = None, + request_template: Optional[pulumi.Input[str]] = None, + response_template: Optional[pulumi.Input[str]] = None, + runtime: Optional[pulumi.Input['ResolverRuntimeArgs']] = None, + sync_config: Optional[pulumi.Input['ResolverSyncConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if field is None: + raise TypeError("Missing 'field' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if caching_config is None and 'cachingConfig' in kwargs: + caching_config = kwargs['cachingConfig'] + if data_source is None and 'dataSource' in kwargs: + data_source = kwargs['dataSource'] + if max_batch_size is None and 'maxBatchSize' in kwargs: + max_batch_size = kwargs['maxBatchSize'] + if pipeline_config is None and 'pipelineConfig' in kwargs: + pipeline_config = kwargs['pipelineConfig'] + if request_template is None and 'requestTemplate' in kwargs: + request_template = kwargs['requestTemplate'] + if response_template is None and 'responseTemplate' in kwargs: + response_template = kwargs['responseTemplate'] + if sync_config is None and 'syncConfig' in kwargs: + sync_config = kwargs['syncConfig'] + + _setter("api_id", api_id) + _setter("field", field) + _setter("type", type) if caching_config is not None: - pulumi.set(__self__, "caching_config", caching_config) + _setter("caching_config", caching_config) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if data_source is not None: - pulumi.set(__self__, "data_source", data_source) + _setter("data_source", data_source) if kind is not None: - pulumi.set(__self__, "kind", kind) + _setter("kind", kind) if max_batch_size is not None: - pulumi.set(__self__, "max_batch_size", max_batch_size) + _setter("max_batch_size", max_batch_size) if pipeline_config is not None: - pulumi.set(__self__, "pipeline_config", pipeline_config) + _setter("pipeline_config", pipeline_config) if request_template is not None: - pulumi.set(__self__, "request_template", request_template) + _setter("request_template", request_template) if response_template is not None: - pulumi.set(__self__, "response_template", response_template) + _setter("response_template", response_template) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) if sync_config is not None: - pulumi.set(__self__, "sync_config", sync_config) + _setter("sync_config", sync_config) @property @pulumi.getter(name="apiId") @@ -260,34 +317,87 @@ def __init__(__self__, *, :param pulumi.Input['ResolverSyncConfigArgs'] sync_config: Describes a Sync configuration for a resolver. See Sync Config. :param pulumi.Input[str] type: Type name from the schema defined in the GraphQL API. """ + _ResolverState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + arn=arn, + caching_config=caching_config, + code=code, + data_source=data_source, + field=field, + kind=kind, + max_batch_size=max_batch_size, + pipeline_config=pipeline_config, + request_template=request_template, + response_template=response_template, + runtime=runtime, + sync_config=sync_config, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + caching_config: Optional[pulumi.Input['ResolverCachingConfigArgs']] = None, + code: Optional[pulumi.Input[str]] = None, + data_source: Optional[pulumi.Input[str]] = None, + field: Optional[pulumi.Input[str]] = None, + kind: Optional[pulumi.Input[str]] = None, + max_batch_size: Optional[pulumi.Input[int]] = None, + pipeline_config: Optional[pulumi.Input['ResolverPipelineConfigArgs']] = None, + request_template: Optional[pulumi.Input[str]] = None, + response_template: Optional[pulumi.Input[str]] = None, + runtime: Optional[pulumi.Input['ResolverRuntimeArgs']] = None, + sync_config: Optional[pulumi.Input['ResolverSyncConfigArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if caching_config is None and 'cachingConfig' in kwargs: + caching_config = kwargs['cachingConfig'] + if data_source is None and 'dataSource' in kwargs: + data_source = kwargs['dataSource'] + if max_batch_size is None and 'maxBatchSize' in kwargs: + max_batch_size = kwargs['maxBatchSize'] + if pipeline_config is None and 'pipelineConfig' in kwargs: + pipeline_config = kwargs['pipelineConfig'] + if request_template is None and 'requestTemplate' in kwargs: + request_template = kwargs['requestTemplate'] + if response_template is None and 'responseTemplate' in kwargs: + response_template = kwargs['responseTemplate'] + if sync_config is None and 'syncConfig' in kwargs: + sync_config = kwargs['syncConfig'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if caching_config is not None: - pulumi.set(__self__, "caching_config", caching_config) + _setter("caching_config", caching_config) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if data_source is not None: - pulumi.set(__self__, "data_source", data_source) + _setter("data_source", data_source) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) if kind is not None: - pulumi.set(__self__, "kind", kind) + _setter("kind", kind) if max_batch_size is not None: - pulumi.set(__self__, "max_batch_size", max_batch_size) + _setter("max_batch_size", max_batch_size) if pipeline_config is not None: - pulumi.set(__self__, "pipeline_config", pipeline_config) + _setter("pipeline_config", pipeline_config) if request_template is not None: - pulumi.set(__self__, "request_template", request_template) + _setter("request_template", request_template) if response_template is not None: - pulumi.set(__self__, "response_template", response_template) + _setter("response_template", response_template) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) if sync_config is not None: - pulumi.set(__self__, "sync_config", sync_config) + _setter("sync_config", sync_config) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="apiId") @@ -727,6 +837,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -757,6 +871,7 @@ def _internal_init(__self__, if api_id is None and not opts.urn: raise TypeError("Missing required property 'api_id'") __props__.__dict__["api_id"] = api_id + caching_config = _utilities.configure(caching_config, ResolverCachingConfigArgs, True) __props__.__dict__["caching_config"] = caching_config __props__.__dict__["code"] = code __props__.__dict__["data_source"] = data_source @@ -765,10 +880,13 @@ def _internal_init(__self__, __props__.__dict__["field"] = field __props__.__dict__["kind"] = kind __props__.__dict__["max_batch_size"] = max_batch_size + pipeline_config = _utilities.configure(pipeline_config, ResolverPipelineConfigArgs, True) __props__.__dict__["pipeline_config"] = pipeline_config __props__.__dict__["request_template"] = request_template __props__.__dict__["response_template"] = response_template + runtime = _utilities.configure(runtime, ResolverRuntimeArgs, True) __props__.__dict__["runtime"] = runtime + sync_config = _utilities.configure(sync_config, ResolverSyncConfigArgs, True) __props__.__dict__["sync_config"] = sync_config if type is None and not opts.urn: raise TypeError("Missing required property 'type'") diff --git a/sdk/python/pulumi_aws/appsync/type.py b/sdk/python/pulumi_aws/appsync/type.py index 69da9f401b5..518d1bdef1a 100644 --- a/sdk/python/pulumi_aws/appsync/type.py +++ b/sdk/python/pulumi_aws/appsync/type.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TypeArgs', 'Type'] @@ -23,9 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] definition: The type definition. :param pulumi.Input[str] format: The type format: `SDL` or `JSON`. """ - pulumi.set(__self__, "api_id", api_id) - pulumi.set(__self__, "definition", definition) - pulumi.set(__self__, "format", format) + TypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + definition=definition, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + definition: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is None: + raise TypeError("Missing 'api_id' argument") + if definition is None: + raise TypeError("Missing 'definition' argument") + if format is None: + raise TypeError("Missing 'format' argument") + + _setter("api_id", api_id) + _setter("definition", definition) + _setter("format", format) @property @pulumi.getter(name="apiId") @@ -82,18 +105,41 @@ def __init__(__self__, *, :param pulumi.Input[str] format: The type format: `SDL` or `JSON`. :param pulumi.Input[str] name: The type name. """ + _TypeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_id=api_id, + arn=arn, + definition=definition, + description=description, + format=format, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + definition: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_id is None and 'apiId' in kwargs: + api_id = kwargs['apiId'] + if api_id is not None: - pulumi.set(__self__, "api_id", api_id) + _setter("api_id", api_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if definition is not None: - pulumi.set(__self__, "definition", definition) + _setter("definition", definition) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="apiId") @@ -259,6 +305,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TypeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/athena/_inputs.py b/sdk/python/pulumi_aws/athena/_inputs.py index 99eead46ab1..4c3fcf21e2c 100644 --- a/sdk/python/pulumi_aws/athena/_inputs.py +++ b/sdk/python/pulumi_aws/athena/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,7 +28,22 @@ def __init__(__self__, *, > **NOTE:** When Athena queries are executed, result files may be created in the specified bucket. Consider using `force_destroy` on the bucket too in order to avoid any problems when destroying the bucket. """ - pulumi.set(__self__, "s3_acl_option", s3_acl_option) + DatabaseAclConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_acl_option=s3_acl_option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_acl_option: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_acl_option is None and 's3AclOption' in kwargs: + s3_acl_option = kwargs['s3AclOption'] + if s3_acl_option is None: + raise TypeError("Missing 's3_acl_option' argument") + + _setter("s3_acl_option", s3_acl_option) @property @pulumi.getter(name="s3AclOption") @@ -54,9 +69,28 @@ def __init__(__self__, *, :param pulumi.Input[str] encryption_option: Type of key; one of `SSE_S3`, `SSE_KMS`, `CSE_KMS` :param pulumi.Input[str] kms_key: KMS key ARN or ID; required for key types `SSE_KMS` and `CSE_KMS`. """ - pulumi.set(__self__, "encryption_option", encryption_option) + DatabaseEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_option=encryption_option, + kms_key=kms_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_option: Optional[pulumi.Input[str]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_option is None and 'encryptionOption' in kwargs: + encryption_option = kwargs['encryptionOption'] + if encryption_option is None: + raise TypeError("Missing 'encryption_option' argument") + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + + _setter("encryption_option", encryption_option) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) @property @pulumi.getter(name="encryptionOption") @@ -102,20 +136,57 @@ def __init__(__self__, *, :param pulumi.Input[bool] requester_pays_enabled: If set to true , allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to false , workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is false . For more information about Requester Pays buckets, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) in the Amazon Simple Storage Service Developer Guide. :param pulumi.Input['WorkgroupConfigurationResultConfigurationArgs'] result_configuration: Configuration block with result settings. See Result Configuration below. """ + WorkgroupConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bytes_scanned_cutoff_per_query=bytes_scanned_cutoff_per_query, + enforce_workgroup_configuration=enforce_workgroup_configuration, + engine_version=engine_version, + execution_role=execution_role, + publish_cloudwatch_metrics_enabled=publish_cloudwatch_metrics_enabled, + requester_pays_enabled=requester_pays_enabled, + result_configuration=result_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bytes_scanned_cutoff_per_query: Optional[pulumi.Input[int]] = None, + enforce_workgroup_configuration: Optional[pulumi.Input[bool]] = None, + engine_version: Optional[pulumi.Input['WorkgroupConfigurationEngineVersionArgs']] = None, + execution_role: Optional[pulumi.Input[str]] = None, + publish_cloudwatch_metrics_enabled: Optional[pulumi.Input[bool]] = None, + requester_pays_enabled: Optional[pulumi.Input[bool]] = None, + result_configuration: Optional[pulumi.Input['WorkgroupConfigurationResultConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bytes_scanned_cutoff_per_query is None and 'bytesScannedCutoffPerQuery' in kwargs: + bytes_scanned_cutoff_per_query = kwargs['bytesScannedCutoffPerQuery'] + if enforce_workgroup_configuration is None and 'enforceWorkgroupConfiguration' in kwargs: + enforce_workgroup_configuration = kwargs['enforceWorkgroupConfiguration'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if publish_cloudwatch_metrics_enabled is None and 'publishCloudwatchMetricsEnabled' in kwargs: + publish_cloudwatch_metrics_enabled = kwargs['publishCloudwatchMetricsEnabled'] + if requester_pays_enabled is None and 'requesterPaysEnabled' in kwargs: + requester_pays_enabled = kwargs['requesterPaysEnabled'] + if result_configuration is None and 'resultConfiguration' in kwargs: + result_configuration = kwargs['resultConfiguration'] + if bytes_scanned_cutoff_per_query is not None: - pulumi.set(__self__, "bytes_scanned_cutoff_per_query", bytes_scanned_cutoff_per_query) + _setter("bytes_scanned_cutoff_per_query", bytes_scanned_cutoff_per_query) if enforce_workgroup_configuration is not None: - pulumi.set(__self__, "enforce_workgroup_configuration", enforce_workgroup_configuration) + _setter("enforce_workgroup_configuration", enforce_workgroup_configuration) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if execution_role is not None: - pulumi.set(__self__, "execution_role", execution_role) + _setter("execution_role", execution_role) if publish_cloudwatch_metrics_enabled is not None: - pulumi.set(__self__, "publish_cloudwatch_metrics_enabled", publish_cloudwatch_metrics_enabled) + _setter("publish_cloudwatch_metrics_enabled", publish_cloudwatch_metrics_enabled) if requester_pays_enabled is not None: - pulumi.set(__self__, "requester_pays_enabled", requester_pays_enabled) + _setter("requester_pays_enabled", requester_pays_enabled) if result_configuration is not None: - pulumi.set(__self__, "result_configuration", result_configuration) + _setter("result_configuration", result_configuration) @property @pulumi.getter(name="bytesScannedCutoffPerQuery") @@ -211,10 +282,27 @@ def __init__(__self__, *, :param pulumi.Input[str] effective_engine_version: The engine version on which the query runs. If `selected_engine_version` is set to `AUTO`, the effective engine version is chosen by Athena. :param pulumi.Input[str] selected_engine_version: Requested engine version. Defaults to `AUTO`. """ + WorkgroupConfigurationEngineVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + effective_engine_version=effective_engine_version, + selected_engine_version=selected_engine_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + effective_engine_version: Optional[pulumi.Input[str]] = None, + selected_engine_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if effective_engine_version is None and 'effectiveEngineVersion' in kwargs: + effective_engine_version = kwargs['effectiveEngineVersion'] + if selected_engine_version is None and 'selectedEngineVersion' in kwargs: + selected_engine_version = kwargs['selectedEngineVersion'] + if effective_engine_version is not None: - pulumi.set(__self__, "effective_engine_version", effective_engine_version) + _setter("effective_engine_version", effective_engine_version) if selected_engine_version is not None: - pulumi.set(__self__, "selected_engine_version", selected_engine_version) + _setter("selected_engine_version", selected_engine_version) @property @pulumi.getter(name="effectiveEngineVersion") @@ -254,14 +342,39 @@ def __init__(__self__, *, :param pulumi.Input[str] expected_bucket_owner: AWS account ID that you expect to be the owner of the Amazon S3 bucket. :param pulumi.Input[str] output_location: Location in Amazon S3 where your query results are stored, such as `s3://path/to/query/bucket/`. For more information, see [Queries and Query Result Files](https://docs.aws.amazon.com/athena/latest/ug/querying.html). """ + WorkgroupConfigurationResultConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_configuration=acl_configuration, + encryption_configuration=encryption_configuration, + expected_bucket_owner=expected_bucket_owner, + output_location=output_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_configuration: Optional[pulumi.Input['WorkgroupConfigurationResultConfigurationAclConfigurationArgs']] = None, + encryption_configuration: Optional[pulumi.Input['WorkgroupConfigurationResultConfigurationEncryptionConfigurationArgs']] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + output_location: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_configuration is None and 'aclConfiguration' in kwargs: + acl_configuration = kwargs['aclConfiguration'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if output_location is None and 'outputLocation' in kwargs: + output_location = kwargs['outputLocation'] + if acl_configuration is not None: - pulumi.set(__self__, "acl_configuration", acl_configuration) + _setter("acl_configuration", acl_configuration) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if output_location is not None: - pulumi.set(__self__, "output_location", output_location) + _setter("output_location", output_location) @property @pulumi.getter(name="aclConfiguration") @@ -319,7 +432,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] s3_acl_option: Amazon S3 canned ACL that Athena should specify when storing query results. Valid value is `BUCKET_OWNER_FULL_CONTROL`. """ - pulumi.set(__self__, "s3_acl_option", s3_acl_option) + WorkgroupConfigurationResultConfigurationAclConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_acl_option=s3_acl_option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_acl_option: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_acl_option is None and 's3AclOption' in kwargs: + s3_acl_option = kwargs['s3AclOption'] + if s3_acl_option is None: + raise TypeError("Missing 's3_acl_option' argument") + + _setter("s3_acl_option", s3_acl_option) @property @pulumi.getter(name="s3AclOption") @@ -343,10 +471,27 @@ def __init__(__self__, *, :param pulumi.Input[str] encryption_option: Whether Amazon S3 server-side encryption with Amazon S3-managed keys (`SSE_S3`), server-side encryption with KMS-managed keys (`SSE_KMS`), or client-side encryption with KMS-managed keys (`CSE_KMS`) is used. If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup. :param pulumi.Input[str] kms_key_arn: For `SSE_KMS` and `CSE_KMS`, this is the KMS key ARN. """ + WorkgroupConfigurationResultConfigurationEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_option=encryption_option, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_option: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_option is None and 'encryptionOption' in kwargs: + encryption_option = kwargs['encryptionOption'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if encryption_option is not None: - pulumi.set(__self__, "encryption_option", encryption_option) + _setter("encryption_option", encryption_option) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="encryptionOption") diff --git a/sdk/python/pulumi_aws/athena/data_catalog.py b/sdk/python/pulumi_aws/athena/data_catalog.py index 1b6249bc616..bfa8f521b6c 100644 --- a/sdk/python/pulumi_aws/athena/data_catalog.py +++ b/sdk/python/pulumi_aws/athena/data_catalog.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DataCatalogArgs', 'DataCatalog'] @@ -27,13 +27,38 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the data catalog. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "type", type) + DataCatalogArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + parameters=parameters, + type=type, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is None: + raise TypeError("Missing 'description' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("description", description) + _setter("parameters", parameters) + _setter("type", type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -116,23 +141,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] type: Type of data catalog: `LAMBDA` for a federated catalog, `GLUE` for AWS Glue Catalog, or `HIVE` for an external hive metastore. """ + _DataCatalogState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + parameters=parameters, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -401,6 +451,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataCatalogArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/athena/database.py b/sdk/python/pulumi_aws/athena/database.py index 6fe7788afa5..5fc36a35f75 100644 --- a/sdk/python/pulumi_aws/athena/database.py +++ b/sdk/python/pulumi_aws/athena/database.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,22 +35,55 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the database to create. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: Key-value map of custom metadata properties for the database definition. """ + DatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_configuration=acl_configuration, + bucket=bucket, + comment=comment, + encryption_configuration=encryption_configuration, + expected_bucket_owner=expected_bucket_owner, + force_destroy=force_destroy, + name=name, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_configuration: Optional[pulumi.Input['DatabaseAclConfigurationArgs']] = None, + bucket: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['DatabaseEncryptionConfigurationArgs']] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_configuration is None and 'aclConfiguration' in kwargs: + acl_configuration = kwargs['aclConfiguration'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if acl_configuration is not None: - pulumi.set(__self__, "acl_configuration", acl_configuration) + _setter("acl_configuration", acl_configuration) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter(name="aclConfiguration") @@ -171,22 +204,55 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the database to create. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: Key-value map of custom metadata properties for the database definition. """ + _DatabaseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_configuration=acl_configuration, + bucket=bucket, + comment=comment, + encryption_configuration=encryption_configuration, + expected_bucket_owner=expected_bucket_owner, + force_destroy=force_destroy, + name=name, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_configuration: Optional[pulumi.Input['DatabaseAclConfigurationArgs']] = None, + bucket: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['DatabaseEncryptionConfigurationArgs']] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_configuration is None and 'aclConfiguration' in kwargs: + acl_configuration = kwargs['aclConfiguration'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if acl_configuration is not None: - pulumi.set(__self__, "acl_configuration", acl_configuration) + _setter("acl_configuration", acl_configuration) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter(name="aclConfiguration") @@ -374,6 +440,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DatabaseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -396,9 +466,11 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DatabaseArgs.__new__(DatabaseArgs) + acl_configuration = _utilities.configure(acl_configuration, DatabaseAclConfigurationArgs, True) __props__.__dict__["acl_configuration"] = acl_configuration __props__.__dict__["bucket"] = bucket __props__.__dict__["comment"] = comment + encryption_configuration = _utilities.configure(encryption_configuration, DatabaseEncryptionConfigurationArgs, True) __props__.__dict__["encryption_configuration"] = encryption_configuration __props__.__dict__["expected_bucket_owner"] = expected_bucket_owner __props__.__dict__["force_destroy"] = force_destroy diff --git a/sdk/python/pulumi_aws/athena/named_query.py b/sdk/python/pulumi_aws/athena/named_query.py index 961c4b140dc..7856468e5b8 100644 --- a/sdk/python/pulumi_aws/athena/named_query.py +++ b/sdk/python/pulumi_aws/athena/named_query.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NamedQueryArgs', 'NamedQuery'] @@ -27,14 +27,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Plain language name for the query. Maximum length of 128. :param pulumi.Input[str] workgroup: Workgroup to which the query belongs. Defaults to `primary` """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "query", query) + NamedQueryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + query=query, + description=description, + name=name, + workgroup=workgroup, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + query: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + workgroup: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if query is None: + raise TypeError("Missing 'query' argument") + + _setter("database", database) + _setter("query", query) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if workgroup is not None: - pulumi.set(__self__, "workgroup", workgroup) + _setter("workgroup", workgroup) @property @pulumi.getter @@ -113,16 +136,35 @@ def __init__(__self__, *, :param pulumi.Input[str] query: Text of the query itself. In other words, all query statements. Maximum length of 262144. :param pulumi.Input[str] workgroup: Workgroup to which the query belongs. Defaults to `primary` """ + _NamedQueryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + description=description, + name=name, + query=query, + workgroup=workgroup, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + query: Optional[pulumi.Input[str]] = None, + workgroup: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is not None: - pulumi.set(__self__, "database", database) + _setter("database", database) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if query is not None: - pulumi.set(__self__, "query", query) + _setter("query", query) if workgroup is not None: - pulumi.set(__self__, "workgroup", workgroup) + _setter("workgroup", workgroup) @property @pulumi.getter @@ -296,6 +338,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NamedQueryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/athena/outputs.py b/sdk/python/pulumi_aws/athena/outputs.py index b7dce7ca888..9aadd7d6490 100644 --- a/sdk/python/pulumi_aws/athena/outputs.py +++ b/sdk/python/pulumi_aws/athena/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -46,7 +46,22 @@ def __init__(__self__, *, > **NOTE:** When Athena queries are executed, result files may be created in the specified bucket. Consider using `force_destroy` on the bucket too in order to avoid any problems when destroying the bucket. """ - pulumi.set(__self__, "s3_acl_option", s3_acl_option) + DatabaseAclConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_acl_option=s3_acl_option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_acl_option: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_acl_option is None and 's3AclOption' in kwargs: + s3_acl_option = kwargs['s3AclOption'] + if s3_acl_option is None: + raise TypeError("Missing 's3_acl_option' argument") + + _setter("s3_acl_option", s3_acl_option) @property @pulumi.getter(name="s3AclOption") @@ -87,9 +102,28 @@ def __init__(__self__, *, :param str encryption_option: Type of key; one of `SSE_S3`, `SSE_KMS`, `CSE_KMS` :param str kms_key: KMS key ARN or ID; required for key types `SSE_KMS` and `CSE_KMS`. """ - pulumi.set(__self__, "encryption_option", encryption_option) + DatabaseEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_option=encryption_option, + kms_key=kms_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_option: Optional[str] = None, + kms_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_option is None and 'encryptionOption' in kwargs: + encryption_option = kwargs['encryptionOption'] + if encryption_option is None: + raise TypeError("Missing 'encryption_option' argument") + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + + _setter("encryption_option", encryption_option) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) @property @pulumi.getter(name="encryptionOption") @@ -156,20 +190,57 @@ def __init__(__self__, *, :param bool requester_pays_enabled: If set to true , allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to false , workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is false . For more information about Requester Pays buckets, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) in the Amazon Simple Storage Service Developer Guide. :param 'WorkgroupConfigurationResultConfigurationArgs' result_configuration: Configuration block with result settings. See Result Configuration below. """ + WorkgroupConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bytes_scanned_cutoff_per_query=bytes_scanned_cutoff_per_query, + enforce_workgroup_configuration=enforce_workgroup_configuration, + engine_version=engine_version, + execution_role=execution_role, + publish_cloudwatch_metrics_enabled=publish_cloudwatch_metrics_enabled, + requester_pays_enabled=requester_pays_enabled, + result_configuration=result_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bytes_scanned_cutoff_per_query: Optional[int] = None, + enforce_workgroup_configuration: Optional[bool] = None, + engine_version: Optional['outputs.WorkgroupConfigurationEngineVersion'] = None, + execution_role: Optional[str] = None, + publish_cloudwatch_metrics_enabled: Optional[bool] = None, + requester_pays_enabled: Optional[bool] = None, + result_configuration: Optional['outputs.WorkgroupConfigurationResultConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bytes_scanned_cutoff_per_query is None and 'bytesScannedCutoffPerQuery' in kwargs: + bytes_scanned_cutoff_per_query = kwargs['bytesScannedCutoffPerQuery'] + if enforce_workgroup_configuration is None and 'enforceWorkgroupConfiguration' in kwargs: + enforce_workgroup_configuration = kwargs['enforceWorkgroupConfiguration'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if publish_cloudwatch_metrics_enabled is None and 'publishCloudwatchMetricsEnabled' in kwargs: + publish_cloudwatch_metrics_enabled = kwargs['publishCloudwatchMetricsEnabled'] + if requester_pays_enabled is None and 'requesterPaysEnabled' in kwargs: + requester_pays_enabled = kwargs['requesterPaysEnabled'] + if result_configuration is None and 'resultConfiguration' in kwargs: + result_configuration = kwargs['resultConfiguration'] + if bytes_scanned_cutoff_per_query is not None: - pulumi.set(__self__, "bytes_scanned_cutoff_per_query", bytes_scanned_cutoff_per_query) + _setter("bytes_scanned_cutoff_per_query", bytes_scanned_cutoff_per_query) if enforce_workgroup_configuration is not None: - pulumi.set(__self__, "enforce_workgroup_configuration", enforce_workgroup_configuration) + _setter("enforce_workgroup_configuration", enforce_workgroup_configuration) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if execution_role is not None: - pulumi.set(__self__, "execution_role", execution_role) + _setter("execution_role", execution_role) if publish_cloudwatch_metrics_enabled is not None: - pulumi.set(__self__, "publish_cloudwatch_metrics_enabled", publish_cloudwatch_metrics_enabled) + _setter("publish_cloudwatch_metrics_enabled", publish_cloudwatch_metrics_enabled) if requester_pays_enabled is not None: - pulumi.set(__self__, "requester_pays_enabled", requester_pays_enabled) + _setter("requester_pays_enabled", requester_pays_enabled) if result_configuration is not None: - pulumi.set(__self__, "result_configuration", result_configuration) + _setter("result_configuration", result_configuration) @property @pulumi.getter(name="bytesScannedCutoffPerQuery") @@ -256,10 +327,27 @@ def __init__(__self__, *, :param str effective_engine_version: The engine version on which the query runs. If `selected_engine_version` is set to `AUTO`, the effective engine version is chosen by Athena. :param str selected_engine_version: Requested engine version. Defaults to `AUTO`. """ + WorkgroupConfigurationEngineVersion._configure( + lambda key, value: pulumi.set(__self__, key, value), + effective_engine_version=effective_engine_version, + selected_engine_version=selected_engine_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + effective_engine_version: Optional[str] = None, + selected_engine_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if effective_engine_version is None and 'effectiveEngineVersion' in kwargs: + effective_engine_version = kwargs['effectiveEngineVersion'] + if selected_engine_version is None and 'selectedEngineVersion' in kwargs: + selected_engine_version = kwargs['selectedEngineVersion'] + if effective_engine_version is not None: - pulumi.set(__self__, "effective_engine_version", effective_engine_version) + _setter("effective_engine_version", effective_engine_version) if selected_engine_version is not None: - pulumi.set(__self__, "selected_engine_version", selected_engine_version) + _setter("selected_engine_version", selected_engine_version) @property @pulumi.getter(name="effectiveEngineVersion") @@ -314,14 +402,39 @@ def __init__(__self__, *, :param str expected_bucket_owner: AWS account ID that you expect to be the owner of the Amazon S3 bucket. :param str output_location: Location in Amazon S3 where your query results are stored, such as `s3://path/to/query/bucket/`. For more information, see [Queries and Query Result Files](https://docs.aws.amazon.com/athena/latest/ug/querying.html). """ + WorkgroupConfigurationResultConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_configuration=acl_configuration, + encryption_configuration=encryption_configuration, + expected_bucket_owner=expected_bucket_owner, + output_location=output_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_configuration: Optional['outputs.WorkgroupConfigurationResultConfigurationAclConfiguration'] = None, + encryption_configuration: Optional['outputs.WorkgroupConfigurationResultConfigurationEncryptionConfiguration'] = None, + expected_bucket_owner: Optional[str] = None, + output_location: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_configuration is None and 'aclConfiguration' in kwargs: + acl_configuration = kwargs['aclConfiguration'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if output_location is None and 'outputLocation' in kwargs: + output_location = kwargs['outputLocation'] + if acl_configuration is not None: - pulumi.set(__self__, "acl_configuration", acl_configuration) + _setter("acl_configuration", acl_configuration) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if output_location is not None: - pulumi.set(__self__, "output_location", output_location) + _setter("output_location", output_location) @property @pulumi.getter(name="aclConfiguration") @@ -380,7 +493,22 @@ def __init__(__self__, *, """ :param str s3_acl_option: Amazon S3 canned ACL that Athena should specify when storing query results. Valid value is `BUCKET_OWNER_FULL_CONTROL`. """ - pulumi.set(__self__, "s3_acl_option", s3_acl_option) + WorkgroupConfigurationResultConfigurationAclConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_acl_option=s3_acl_option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_acl_option: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_acl_option is None and 's3AclOption' in kwargs: + s3_acl_option = kwargs['s3AclOption'] + if s3_acl_option is None: + raise TypeError("Missing 's3_acl_option' argument") + + _setter("s3_acl_option", s3_acl_option) @property @pulumi.getter(name="s3AclOption") @@ -419,10 +547,27 @@ def __init__(__self__, *, :param str encryption_option: Whether Amazon S3 server-side encryption with Amazon S3-managed keys (`SSE_S3`), server-side encryption with KMS-managed keys (`SSE_KMS`), or client-side encryption with KMS-managed keys (`CSE_KMS`) is used. If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup. :param str kms_key_arn: For `SSE_KMS` and `CSE_KMS`, this is the KMS key ARN. """ + WorkgroupConfigurationResultConfigurationEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_option=encryption_option, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_option: Optional[str] = None, + kms_key_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_option is None and 'encryptionOption' in kwargs: + encryption_option = kwargs['encryptionOption'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if encryption_option is not None: - pulumi.set(__self__, "encryption_option", encryption_option) + _setter("encryption_option", encryption_option) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="encryptionOption") diff --git a/sdk/python/pulumi_aws/athena/workgroup.py b/sdk/python/pulumi_aws/athena/workgroup.py index 0775b70051e..b9808e9798d 100644 --- a/sdk/python/pulumi_aws/athena/workgroup.py +++ b/sdk/python/pulumi_aws/athena/workgroup.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,18 +31,41 @@ def __init__(__self__, *, :param pulumi.Input[str] state: State of the workgroup. Valid values are `DISABLED` or `ENABLED`. Defaults to `ENABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the workgroup. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + WorkgroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + description=description, + force_destroy=force_destroy, + name=name, + state=state, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[pulumi.Input['WorkgroupConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -139,25 +162,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the workgroup. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _WorkgroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + configuration=configuration, + description=description, + force_destroy=force_destroy, + name=name, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['WorkgroupConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -356,6 +408,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkgroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -376,6 +432,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = WorkgroupArgs.__new__(WorkgroupArgs) + configuration = _utilities.configure(configuration, WorkgroupConfigurationArgs, True) __props__.__dict__["configuration"] = configuration __props__.__dict__["description"] = description __props__.__dict__["force_destroy"] = force_destroy diff --git a/sdk/python/pulumi_aws/auditmanager/_inputs.py b/sdk/python/pulumi_aws/auditmanager/_inputs.py index 81b1d7e9944..2a0d12dede0 100644 --- a/sdk/python/pulumi_aws/auditmanager/_inputs.py +++ b/sdk/python/pulumi_aws/auditmanager/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -35,8 +35,27 @@ def __init__(__self__, *, :param pulumi.Input[str] destination: Destination of the assessment report. This value be in the form `s3://{bucket_name}`. :param pulumi.Input[str] destination_type: Destination type. Currently, `S3` is the only valid value. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_type", destination_type) + AssessmentAssessmentReportsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_type=destination_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + destination_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + if destination_type is None: + raise TypeError("Missing 'destination_type' argument") + + _setter("destination", destination) + _setter("destination_type", destination_type) @property @pulumi.getter @@ -72,8 +91,29 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: Amazon Resource Name (ARN) of the IAM role. :param pulumi.Input[str] role_type: Type of customer persona. For assessment creation, type must always be `PROCESS_OWNER`. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "role_type", role_type) + AssessmentRoleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + role_type=role_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + role_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if role_type is None and 'roleType' in kwargs: + role_type = kwargs['roleType'] + if role_type is None: + raise TypeError("Missing 'role_type' argument") + + _setter("role_arn", role_arn) + _setter("role_type", role_type) @property @pulumi.getter(name="roleArn") @@ -109,8 +149,29 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: Amazon Resource Name (ARN) of the IAM role. :param pulumi.Input[str] role_type: Type of customer persona. For assessment creation, type must always be `PROCESS_OWNER`. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "role_type", role_type) + AssessmentRolesAllArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + role_type=role_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + role_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if role_type is None and 'roleType' in kwargs: + role_type = kwargs['roleType'] + if role_type is None: + raise TypeError("Missing 'role_type' argument") + + _setter("role_arn", role_arn) + _setter("role_type", role_type) @property @pulumi.getter(name="roleArn") @@ -146,10 +207,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['AssessmentScopeAwsAccountArgs']]] aws_accounts: Amazon Web Services accounts that are in scope for the assessment. See `aws_accounts` below. :param pulumi.Input[Sequence[pulumi.Input['AssessmentScopeAwsServiceArgs']]] aws_services: Amazon Web Services services that are included in the scope of the assessment. See `aws_services` below. """ + AssessmentScopeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_accounts=aws_accounts, + aws_services=aws_services, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_accounts: Optional[pulumi.Input[Sequence[pulumi.Input['AssessmentScopeAwsAccountArgs']]]] = None, + aws_services: Optional[pulumi.Input[Sequence[pulumi.Input['AssessmentScopeAwsServiceArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_accounts is None and 'awsAccounts' in kwargs: + aws_accounts = kwargs['awsAccounts'] + if aws_services is None and 'awsServices' in kwargs: + aws_services = kwargs['awsServices'] + if aws_accounts is not None: - pulumi.set(__self__, "aws_accounts", aws_accounts) + _setter("aws_accounts", aws_accounts) if aws_services is not None: - pulumi.set(__self__, "aws_services", aws_services) + _setter("aws_services", aws_services) @property @pulumi.getter(name="awsAccounts") @@ -183,7 +261,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] id: Identifier for the Amazon Web Services account. """ - pulumi.set(__self__, "id", id) + AssessmentScopeAwsAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) @property @pulumi.getter @@ -205,7 +296,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] service_name: Name of the Amazon Web Service. """ - pulumi.set(__self__, "service_name", service_name) + AssessmentScopeAwsServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("service_name", service_name) @property @pulumi.getter(name="serviceName") @@ -242,19 +348,66 @@ def __init__(__self__, *, :param pulumi.Input['ControlControlMappingSourceSourceKeywordArgs'] source_keyword: The keyword to search for in CloudTrail logs, Config rules, Security Hub checks, and Amazon Web Services API names. See `source_keyword` below. :param pulumi.Input[str] troubleshooting_text: Instructions for troubleshooting the control. """ - pulumi.set(__self__, "source_name", source_name) - pulumi.set(__self__, "source_set_up_option", source_set_up_option) - pulumi.set(__self__, "source_type", source_type) + ControlControlMappingSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_name=source_name, + source_set_up_option=source_set_up_option, + source_type=source_type, + source_description=source_description, + source_frequency=source_frequency, + source_id=source_id, + source_keyword=source_keyword, + troubleshooting_text=troubleshooting_text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_name: Optional[pulumi.Input[str]] = None, + source_set_up_option: Optional[pulumi.Input[str]] = None, + source_type: Optional[pulumi.Input[str]] = None, + source_description: Optional[pulumi.Input[str]] = None, + source_frequency: Optional[pulumi.Input[str]] = None, + source_id: Optional[pulumi.Input[str]] = None, + source_keyword: Optional[pulumi.Input['ControlControlMappingSourceSourceKeywordArgs']] = None, + troubleshooting_text: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_name is None and 'sourceName' in kwargs: + source_name = kwargs['sourceName'] + if source_name is None: + raise TypeError("Missing 'source_name' argument") + if source_set_up_option is None and 'sourceSetUpOption' in kwargs: + source_set_up_option = kwargs['sourceSetUpOption'] + if source_set_up_option is None: + raise TypeError("Missing 'source_set_up_option' argument") + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if source_type is None: + raise TypeError("Missing 'source_type' argument") + if source_description is None and 'sourceDescription' in kwargs: + source_description = kwargs['sourceDescription'] + if source_frequency is None and 'sourceFrequency' in kwargs: + source_frequency = kwargs['sourceFrequency'] + if source_id is None and 'sourceId' in kwargs: + source_id = kwargs['sourceId'] + if source_keyword is None and 'sourceKeyword' in kwargs: + source_keyword = kwargs['sourceKeyword'] + if troubleshooting_text is None and 'troubleshootingText' in kwargs: + troubleshooting_text = kwargs['troubleshootingText'] + + _setter("source_name", source_name) + _setter("source_set_up_option", source_set_up_option) + _setter("source_type", source_type) if source_description is not None: - pulumi.set(__self__, "source_description", source_description) + _setter("source_description", source_description) if source_frequency is not None: - pulumi.set(__self__, "source_frequency", source_frequency) + _setter("source_frequency", source_frequency) if source_id is not None: - pulumi.set(__self__, "source_id", source_id) + _setter("source_id", source_id) if source_keyword is not None: - pulumi.set(__self__, "source_keyword", source_keyword) + _setter("source_keyword", source_keyword) if troubleshooting_text is not None: - pulumi.set(__self__, "troubleshooting_text", troubleshooting_text) + _setter("troubleshooting_text", troubleshooting_text) @property @pulumi.getter(name="sourceName") @@ -361,8 +514,29 @@ def __init__(__self__, *, :param pulumi.Input[str] keyword_input_type: Input method for the keyword. Valid values are `SELECT_FROM_LIST`. :param pulumi.Input[str] keyword_value: The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call. See the [Audit Manager supported control data sources documentation](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources.html) for more information. """ - pulumi.set(__self__, "keyword_input_type", keyword_input_type) - pulumi.set(__self__, "keyword_value", keyword_value) + ControlControlMappingSourceSourceKeywordArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + keyword_input_type=keyword_input_type, + keyword_value=keyword_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + keyword_input_type: Optional[pulumi.Input[str]] = None, + keyword_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if keyword_input_type is None and 'keywordInputType' in kwargs: + keyword_input_type = kwargs['keywordInputType'] + if keyword_input_type is None: + raise TypeError("Missing 'keyword_input_type' argument") + if keyword_value is None and 'keywordValue' in kwargs: + keyword_value = kwargs['keywordValue'] + if keyword_value is None: + raise TypeError("Missing 'keyword_value' argument") + + _setter("keyword_input_type", keyword_input_type) + _setter("keyword_value", keyword_value) @property @pulumi.getter(name="keywordInputType") @@ -400,11 +574,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['FrameworkControlSetControlArgs']]] controls: List of controls within the control set. See `controls` below. :param pulumi.Input[str] id: Unique identifier of the control. """ - pulumi.set(__self__, "name", name) + FrameworkControlSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + controls=controls, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + controls: Optional[pulumi.Input[Sequence[pulumi.Input['FrameworkControlSetControlArgs']]]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if controls is not None: - pulumi.set(__self__, "controls", controls) + _setter("controls", controls) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -450,7 +641,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] id: Unique identifier of the control. """ - pulumi.set(__self__, "id", id) + FrameworkControlSetControlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) @property @pulumi.getter @@ -476,15 +680,70 @@ def __init__(__self__, *, source_type: str, troubleshooting_text: str, source_keyword: Optional['GetControlControlMappingSourceSourceKeywordArgs'] = None): - pulumi.set(__self__, "source_description", source_description) - pulumi.set(__self__, "source_frequency", source_frequency) - pulumi.set(__self__, "source_id", source_id) - pulumi.set(__self__, "source_name", source_name) - pulumi.set(__self__, "source_set_up_option", source_set_up_option) - pulumi.set(__self__, "source_type", source_type) - pulumi.set(__self__, "troubleshooting_text", troubleshooting_text) + GetControlControlMappingSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_description=source_description, + source_frequency=source_frequency, + source_id=source_id, + source_name=source_name, + source_set_up_option=source_set_up_option, + source_type=source_type, + troubleshooting_text=troubleshooting_text, + source_keyword=source_keyword, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_description: Optional[str] = None, + source_frequency: Optional[str] = None, + source_id: Optional[str] = None, + source_name: Optional[str] = None, + source_set_up_option: Optional[str] = None, + source_type: Optional[str] = None, + troubleshooting_text: Optional[str] = None, + source_keyword: Optional['GetControlControlMappingSourceSourceKeywordArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_description is None and 'sourceDescription' in kwargs: + source_description = kwargs['sourceDescription'] + if source_description is None: + raise TypeError("Missing 'source_description' argument") + if source_frequency is None and 'sourceFrequency' in kwargs: + source_frequency = kwargs['sourceFrequency'] + if source_frequency is None: + raise TypeError("Missing 'source_frequency' argument") + if source_id is None and 'sourceId' in kwargs: + source_id = kwargs['sourceId'] + if source_id is None: + raise TypeError("Missing 'source_id' argument") + if source_name is None and 'sourceName' in kwargs: + source_name = kwargs['sourceName'] + if source_name is None: + raise TypeError("Missing 'source_name' argument") + if source_set_up_option is None and 'sourceSetUpOption' in kwargs: + source_set_up_option = kwargs['sourceSetUpOption'] + if source_set_up_option is None: + raise TypeError("Missing 'source_set_up_option' argument") + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if source_type is None: + raise TypeError("Missing 'source_type' argument") + if troubleshooting_text is None and 'troubleshootingText' in kwargs: + troubleshooting_text = kwargs['troubleshootingText'] + if troubleshooting_text is None: + raise TypeError("Missing 'troubleshooting_text' argument") + if source_keyword is None and 'sourceKeyword' in kwargs: + source_keyword = kwargs['sourceKeyword'] + + _setter("source_description", source_description) + _setter("source_frequency", source_frequency) + _setter("source_id", source_id) + _setter("source_name", source_name) + _setter("source_set_up_option", source_set_up_option) + _setter("source_type", source_type) + _setter("troubleshooting_text", troubleshooting_text) if source_keyword is not None: - pulumi.set(__self__, "source_keyword", source_keyword) + _setter("source_keyword", source_keyword) @property @pulumi.getter(name="sourceDescription") @@ -564,8 +823,29 @@ class GetControlControlMappingSourceSourceKeywordArgs: def __init__(__self__, *, keyword_input_type: str, keyword_value: str): - pulumi.set(__self__, "keyword_input_type", keyword_input_type) - pulumi.set(__self__, "keyword_value", keyword_value) + GetControlControlMappingSourceSourceKeywordArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + keyword_input_type=keyword_input_type, + keyword_value=keyword_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + keyword_input_type: Optional[str] = None, + keyword_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if keyword_input_type is None and 'keywordInputType' in kwargs: + keyword_input_type = kwargs['keywordInputType'] + if keyword_input_type is None: + raise TypeError("Missing 'keyword_input_type' argument") + if keyword_value is None and 'keywordValue' in kwargs: + keyword_value = kwargs['keywordValue'] + if keyword_value is None: + raise TypeError("Missing 'keyword_value' argument") + + _setter("keyword_input_type", keyword_input_type) + _setter("keyword_value", keyword_value) @property @pulumi.getter(name="keywordInputType") @@ -595,10 +875,29 @@ def __init__(__self__, *, """ :param str name: Name of the framework. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetFrameworkControlSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + controls=controls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + controls: Optional[Sequence['GetFrameworkControlSetControlArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("id", id) + _setter("name", name) if controls is not None: - pulumi.set(__self__, "controls", controls) + _setter("controls", controls) @property @pulumi.getter @@ -635,7 +934,20 @@ def controls(self, value: Optional[Sequence['GetFrameworkControlSetControlArgs'] class GetFrameworkControlSetControlArgs: def __init__(__self__, *, id: str): - pulumi.set(__self__, "id", id) + GetFrameworkControlSetControlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/auditmanager/account_registration.py b/sdk/python/pulumi_aws/auditmanager/account_registration.py index 917b3b215f2..24136be397f 100644 --- a/sdk/python/pulumi_aws/auditmanager/account_registration.py +++ b/sdk/python/pulumi_aws/auditmanager/account_registration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountRegistrationArgs', 'AccountRegistration'] @@ -23,12 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] deregister_on_destroy: Flag to deregister AuditManager in the account upon destruction. Defaults to `false` (ie. AuditManager will remain active in the account, even if this resource is removed). :param pulumi.Input[str] kms_key: KMS key identifier. """ + AccountRegistrationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delegated_admin_account=delegated_admin_account, + deregister_on_destroy=deregister_on_destroy, + kms_key=kms_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delegated_admin_account: Optional[pulumi.Input[str]] = None, + deregister_on_destroy: Optional[pulumi.Input[bool]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delegated_admin_account is None and 'delegatedAdminAccount' in kwargs: + delegated_admin_account = kwargs['delegatedAdminAccount'] + if deregister_on_destroy is None and 'deregisterOnDestroy' in kwargs: + deregister_on_destroy = kwargs['deregisterOnDestroy'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if delegated_admin_account is not None: - pulumi.set(__self__, "delegated_admin_account", delegated_admin_account) + _setter("delegated_admin_account", delegated_admin_account) if deregister_on_destroy is not None: - pulumi.set(__self__, "deregister_on_destroy", deregister_on_destroy) + _setter("deregister_on_destroy", deregister_on_destroy) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) @property @pulumi.getter(name="delegatedAdminAccount") @@ -81,14 +102,37 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key: KMS key identifier. :param pulumi.Input[str] status: Status of the account registration request. """ + _AccountRegistrationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + delegated_admin_account=delegated_admin_account, + deregister_on_destroy=deregister_on_destroy, + kms_key=kms_key, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delegated_admin_account: Optional[pulumi.Input[str]] = None, + deregister_on_destroy: Optional[pulumi.Input[bool]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delegated_admin_account is None and 'delegatedAdminAccount' in kwargs: + delegated_admin_account = kwargs['delegatedAdminAccount'] + if deregister_on_destroy is None and 'deregisterOnDestroy' in kwargs: + deregister_on_destroy = kwargs['deregisterOnDestroy'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if delegated_admin_account is not None: - pulumi.set(__self__, "delegated_admin_account", delegated_admin_account) + _setter("delegated_admin_account", delegated_admin_account) if deregister_on_destroy is not None: - pulumi.set(__self__, "deregister_on_destroy", deregister_on_destroy) + _setter("deregister_on_destroy", deregister_on_destroy) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="delegatedAdminAccount") @@ -228,6 +272,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountRegistrationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/auditmanager/assessment.py b/sdk/python/pulumi_aws/auditmanager/assessment.py index 0fcc1837bb8..9570fd9c57d 100644 --- a/sdk/python/pulumi_aws/auditmanager/assessment.py +++ b/sdk/python/pulumi_aws/auditmanager/assessment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,18 +35,49 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the assessment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "framework_id", framework_id) - pulumi.set(__self__, "roles", roles) + AssessmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + framework_id=framework_id, + roles=roles, + assessment_reports_destination=assessment_reports_destination, + description=description, + name=name, + scope=scope, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + framework_id: Optional[pulumi.Input[str]] = None, + roles: Optional[pulumi.Input[Sequence[pulumi.Input['AssessmentRoleArgs']]]] = None, + assessment_reports_destination: Optional[pulumi.Input['AssessmentAssessmentReportsDestinationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input['AssessmentScopeArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if framework_id is None and 'frameworkId' in kwargs: + framework_id = kwargs['frameworkId'] + if framework_id is None: + raise TypeError("Missing 'framework_id' argument") + if roles is None: + raise TypeError("Missing 'roles' argument") + if assessment_reports_destination is None and 'assessmentReportsDestination' in kwargs: + assessment_reports_destination = kwargs['assessmentReportsDestination'] + + _setter("framework_id", framework_id) + _setter("roles", roles) if assessment_reports_destination is not None: - pulumi.set(__self__, "assessment_reports_destination", assessment_reports_destination) + _setter("assessment_reports_destination", assessment_reports_destination) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="frameworkId") @@ -164,31 +195,70 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Status of the assessment. Valid values are `ACTIVE` and `INACTIVE`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the assessment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + _AssessmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + assessment_reports_destination=assessment_reports_destination, + description=description, + framework_id=framework_id, + name=name, + roles=roles, + roles_alls=roles_alls, + scope=scope, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + assessment_reports_destination: Optional[pulumi.Input['AssessmentAssessmentReportsDestinationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + framework_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + roles: Optional[pulumi.Input[Sequence[pulumi.Input['AssessmentRoleArgs']]]] = None, + roles_alls: Optional[pulumi.Input[Sequence[pulumi.Input['AssessmentRolesAllArgs']]]] = None, + scope: Optional[pulumi.Input['AssessmentScopeArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assessment_reports_destination is None and 'assessmentReportsDestination' in kwargs: + assessment_reports_destination = kwargs['assessmentReportsDestination'] + if framework_id is None and 'frameworkId' in kwargs: + framework_id = kwargs['frameworkId'] + if roles_alls is None and 'rolesAlls' in kwargs: + roles_alls = kwargs['rolesAlls'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if assessment_reports_destination is not None: - pulumi.set(__self__, "assessment_reports_destination", assessment_reports_destination) + _setter("assessment_reports_destination", assessment_reports_destination) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if framework_id is not None: - pulumi.set(__self__, "framework_id", framework_id) + _setter("framework_id", framework_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if roles is not None: - pulumi.set(__self__, "roles", roles) + _setter("roles", roles) if roles_alls is not None: - pulumi.set(__self__, "roles_alls", roles_alls) + _setter("roles_alls", roles_alls) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -442,6 +512,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AssessmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -463,6 +537,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = AssessmentArgs.__new__(AssessmentArgs) + assessment_reports_destination = _utilities.configure(assessment_reports_destination, AssessmentAssessmentReportsDestinationArgs, True) __props__.__dict__["assessment_reports_destination"] = assessment_reports_destination __props__.__dict__["description"] = description if framework_id is None and not opts.urn: @@ -472,6 +547,7 @@ def _internal_init(__self__, if roles is None and not opts.urn: raise TypeError("Missing required property 'roles'") __props__.__dict__["roles"] = roles + scope = _utilities.configure(scope, AssessmentScopeArgs, True) __props__.__dict__["scope"] = scope __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/auditmanager/assessment_delegation.py b/sdk/python/pulumi_aws/auditmanager/assessment_delegation.py index 429552008fc..48bc141a4c3 100644 --- a/sdk/python/pulumi_aws/auditmanager/assessment_delegation.py +++ b/sdk/python/pulumi_aws/auditmanager/assessment_delegation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AssessmentDelegationArgs', 'AssessmentDelegation'] @@ -29,12 +29,47 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] comment: Comment describing the delegation request. """ - pulumi.set(__self__, "assessment_id", assessment_id) - pulumi.set(__self__, "control_set_id", control_set_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "role_type", role_type) + AssessmentDelegationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + assessment_id=assessment_id, + control_set_id=control_set_id, + role_arn=role_arn, + role_type=role_type, + comment=comment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assessment_id: Optional[pulumi.Input[str]] = None, + control_set_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + role_type: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assessment_id is None and 'assessmentId' in kwargs: + assessment_id = kwargs['assessmentId'] + if assessment_id is None: + raise TypeError("Missing 'assessment_id' argument") + if control_set_id is None and 'controlSetId' in kwargs: + control_set_id = kwargs['controlSetId'] + if control_set_id is None: + raise TypeError("Missing 'control_set_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if role_type is None and 'roleType' in kwargs: + role_type = kwargs['roleType'] + if role_type is None: + raise TypeError("Missing 'role_type' argument") + + _setter("assessment_id", assessment_id) + _setter("control_set_id", control_set_id) + _setter("role_arn", role_arn) + _setter("role_type", role_type) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) @property @pulumi.getter(name="assessmentId") @@ -121,20 +156,53 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] status: Status of the delegation. """ + _AssessmentDelegationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + assessment_id=assessment_id, + comment=comment, + control_set_id=control_set_id, + delegation_id=delegation_id, + role_arn=role_arn, + role_type=role_type, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assessment_id: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + control_set_id: Optional[pulumi.Input[str]] = None, + delegation_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + role_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assessment_id is None and 'assessmentId' in kwargs: + assessment_id = kwargs['assessmentId'] + if control_set_id is None and 'controlSetId' in kwargs: + control_set_id = kwargs['controlSetId'] + if delegation_id is None and 'delegationId' in kwargs: + delegation_id = kwargs['delegationId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_type is None and 'roleType' in kwargs: + role_type = kwargs['roleType'] + if assessment_id is not None: - pulumi.set(__self__, "assessment_id", assessment_id) + _setter("assessment_id", assessment_id) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if control_set_id is not None: - pulumi.set(__self__, "control_set_id", control_set_id) + _setter("control_set_id", control_set_id) if delegation_id is not None: - pulumi.set(__self__, "delegation_id", delegation_id) + _setter("delegation_id", delegation_id) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if role_type is not None: - pulumi.set(__self__, "role_type", role_type) + _setter("role_type", role_type) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="assessmentId") @@ -310,6 +378,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AssessmentDelegationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/auditmanager/assessment_report.py b/sdk/python/pulumi_aws/auditmanager/assessment_report.py index 14ac02b638b..0556ae4d661 100644 --- a/sdk/python/pulumi_aws/auditmanager/assessment_report.py +++ b/sdk/python/pulumi_aws/auditmanager/assessment_report.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AssessmentReportArgs', 'AssessmentReport'] @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the assessment report. :param pulumi.Input[str] name: Name of the assessment report. """ - pulumi.set(__self__, "assessment_id", assessment_id) + AssessmentReportArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + assessment_id=assessment_id, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assessment_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assessment_id is None and 'assessmentId' in kwargs: + assessment_id = kwargs['assessmentId'] + if assessment_id is None: + raise TypeError("Missing 'assessment_id' argument") + + _setter("assessment_id", assessment_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="assessmentId") @@ -88,16 +107,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the assessment report. :param pulumi.Input[str] status: Current status of the specified assessment report. Valid values are `COMPLETE`, `IN_PROGRESS`, and `FAILED`. """ + _AssessmentReportState._configure( + lambda key, value: pulumi.set(__self__, key, value), + assessment_id=assessment_id, + author=author, + description=description, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assessment_id: Optional[pulumi.Input[str]] = None, + author: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assessment_id is None and 'assessmentId' in kwargs: + assessment_id = kwargs['assessmentId'] + if assessment_id is not None: - pulumi.set(__self__, "assessment_id", assessment_id) + _setter("assessment_id", assessment_id) if author is not None: - pulumi.set(__self__, "author", author) + _setter("author", author) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="assessmentId") @@ -237,6 +277,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AssessmentReportArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/auditmanager/control.py b/sdk/python/pulumi_aws/auditmanager/control.py index c047e559915..41e32799f44 100644 --- a/sdk/python/pulumi_aws/auditmanager/control.py +++ b/sdk/python/pulumi_aws/auditmanager/control.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,20 +35,51 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the control. 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] testing_information: Steps to follow to determine if the control is satisfied. """ + ControlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_plan_instructions=action_plan_instructions, + action_plan_title=action_plan_title, + control_mapping_sources=control_mapping_sources, + description=description, + name=name, + tags=tags, + testing_information=testing_information, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_plan_instructions: Optional[pulumi.Input[str]] = None, + action_plan_title: Optional[pulumi.Input[str]] = None, + control_mapping_sources: Optional[pulumi.Input[Sequence[pulumi.Input['ControlControlMappingSourceArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + testing_information: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_plan_instructions is None and 'actionPlanInstructions' in kwargs: + action_plan_instructions = kwargs['actionPlanInstructions'] + if action_plan_title is None and 'actionPlanTitle' in kwargs: + action_plan_title = kwargs['actionPlanTitle'] + if control_mapping_sources is None and 'controlMappingSources' in kwargs: + control_mapping_sources = kwargs['controlMappingSources'] + if testing_information is None and 'testingInformation' in kwargs: + testing_information = kwargs['testingInformation'] + if action_plan_instructions is not None: - pulumi.set(__self__, "action_plan_instructions", action_plan_instructions) + _setter("action_plan_instructions", action_plan_instructions) if action_plan_title is not None: - pulumi.set(__self__, "action_plan_title", action_plan_title) + _setter("action_plan_title", action_plan_title) if control_mapping_sources is not None: - pulumi.set(__self__, "control_mapping_sources", control_mapping_sources) + _setter("control_mapping_sources", control_mapping_sources) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if testing_information is not None: - pulumi.set(__self__, "testing_information", testing_information) + _setter("testing_information", testing_information) @property @pulumi.getter(name="actionPlanInstructions") @@ -165,29 +196,68 @@ def __init__(__self__, *, :param pulumi.Input[str] testing_information: Steps to follow to determine if the control is satisfied. :param pulumi.Input[str] type: Type of control, such as a custom control or a standard control. """ + _ControlState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_plan_instructions=action_plan_instructions, + action_plan_title=action_plan_title, + arn=arn, + control_mapping_sources=control_mapping_sources, + description=description, + name=name, + tags=tags, + tags_all=tags_all, + testing_information=testing_information, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_plan_instructions: Optional[pulumi.Input[str]] = None, + action_plan_title: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + control_mapping_sources: Optional[pulumi.Input[Sequence[pulumi.Input['ControlControlMappingSourceArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + testing_information: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_plan_instructions is None and 'actionPlanInstructions' in kwargs: + action_plan_instructions = kwargs['actionPlanInstructions'] + if action_plan_title is None and 'actionPlanTitle' in kwargs: + action_plan_title = kwargs['actionPlanTitle'] + if control_mapping_sources is None and 'controlMappingSources' in kwargs: + control_mapping_sources = kwargs['controlMappingSources'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if testing_information is None and 'testingInformation' in kwargs: + testing_information = kwargs['testingInformation'] + if action_plan_instructions is not None: - pulumi.set(__self__, "action_plan_instructions", action_plan_instructions) + _setter("action_plan_instructions", action_plan_instructions) if action_plan_title is not None: - pulumi.set(__self__, "action_plan_title", action_plan_title) + _setter("action_plan_title", action_plan_title) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if control_mapping_sources is not None: - pulumi.set(__self__, "control_mapping_sources", control_mapping_sources) + _setter("control_mapping_sources", control_mapping_sources) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if testing_information is not None: - pulumi.set(__self__, "testing_information", testing_information) + _setter("testing_information", testing_information) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="actionPlanInstructions") @@ -404,6 +474,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ControlArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/auditmanager/framework.py b/sdk/python/pulumi_aws/auditmanager/framework.py index 988e103ed8f..06febf97bc2 100644 --- a/sdk/python/pulumi_aws/auditmanager/framework.py +++ b/sdk/python/pulumi_aws/auditmanager/framework.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,39 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the framework. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the framework. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + FrameworkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compliance_type=compliance_type, + control_sets=control_sets, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compliance_type: Optional[pulumi.Input[str]] = None, + control_sets: Optional[pulumi.Input[Sequence[pulumi.Input['FrameworkControlSetArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compliance_type is None and 'complianceType' in kwargs: + compliance_type = kwargs['complianceType'] + if control_sets is None and 'controlSets' in kwargs: + control_sets = kwargs['controlSets'] + if compliance_type is not None: - pulumi.set(__self__, "compliance_type", compliance_type) + _setter("compliance_type", compliance_type) if control_sets is not None: - pulumi.set(__self__, "control_sets", control_sets) + _setter("control_sets", control_sets) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="complianceType") @@ -129,25 +152,58 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the framework. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the framework. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + _FrameworkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + compliance_type=compliance_type, + control_sets=control_sets, + description=description, + framework_type=framework_type, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + compliance_type: Optional[pulumi.Input[str]] = None, + control_sets: Optional[pulumi.Input[Sequence[pulumi.Input['FrameworkControlSetArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + framework_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compliance_type is None and 'complianceType' in kwargs: + compliance_type = kwargs['complianceType'] + if control_sets is None and 'controlSets' in kwargs: + control_sets = kwargs['controlSets'] + if framework_type is None and 'frameworkType' in kwargs: + framework_type = kwargs['frameworkType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if compliance_type is not None: - pulumi.set(__self__, "compliance_type", compliance_type) + _setter("compliance_type", compliance_type) if control_sets is not None: - pulumi.set(__self__, "control_sets", control_sets) + _setter("control_sets", control_sets) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if framework_type is not None: - pulumi.set(__self__, "framework_type", framework_type) + _setter("framework_type", framework_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -338,6 +394,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FrameworkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/auditmanager/framework_share.py b/sdk/python/pulumi_aws/auditmanager/framework_share.py index 114a534509e..d7503393eca 100644 --- a/sdk/python/pulumi_aws/auditmanager/framework_share.py +++ b/sdk/python/pulumi_aws/auditmanager/framework_share.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['FrameworkShareArgs', 'FrameworkShare'] @@ -27,11 +27,40 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] comment: Comment from the sender about the share request. """ - pulumi.set(__self__, "destination_account", destination_account) - pulumi.set(__self__, "destination_region", destination_region) - pulumi.set(__self__, "framework_id", framework_id) + FrameworkShareArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_account=destination_account, + destination_region=destination_region, + framework_id=framework_id, + comment=comment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_account: Optional[pulumi.Input[str]] = None, + destination_region: Optional[pulumi.Input[str]] = None, + framework_id: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_account is None and 'destinationAccount' in kwargs: + destination_account = kwargs['destinationAccount'] + if destination_account is None: + raise TypeError("Missing 'destination_account' argument") + if destination_region is None and 'destinationRegion' in kwargs: + destination_region = kwargs['destinationRegion'] + if destination_region is None: + raise TypeError("Missing 'destination_region' argument") + if framework_id is None and 'frameworkId' in kwargs: + framework_id = kwargs['frameworkId'] + if framework_id is None: + raise TypeError("Missing 'framework_id' argument") + + _setter("destination_account", destination_account) + _setter("destination_region", destination_region) + _setter("framework_id", framework_id) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) @property @pulumi.getter(name="destinationAccount") @@ -102,16 +131,41 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] status: Status of the share request. """ + _FrameworkShareState._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + destination_account=destination_account, + destination_region=destination_region, + framework_id=framework_id, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + destination_account: Optional[pulumi.Input[str]] = None, + destination_region: Optional[pulumi.Input[str]] = None, + framework_id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_account is None and 'destinationAccount' in kwargs: + destination_account = kwargs['destinationAccount'] + if destination_region is None and 'destinationRegion' in kwargs: + destination_region = kwargs['destinationRegion'] + if framework_id is None and 'frameworkId' in kwargs: + framework_id = kwargs['frameworkId'] + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if destination_account is not None: - pulumi.set(__self__, "destination_account", destination_account) + _setter("destination_account", destination_account) if destination_region is not None: - pulumi.set(__self__, "destination_region", destination_region) + _setter("destination_region", destination_region) if framework_id is not None: - pulumi.set(__self__, "framework_id", framework_id) + _setter("framework_id", framework_id) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -259,6 +313,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FrameworkShareArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/auditmanager/get_control.py b/sdk/python/pulumi_aws/auditmanager/get_control.py index 3fee63a37ef..fd1abdc2c1d 100644 --- a/sdk/python/pulumi_aws/auditmanager/get_control.py +++ b/sdk/python/pulumi_aws/auditmanager/get_control.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/auditmanager/get_framework.py b/sdk/python/pulumi_aws/auditmanager/get_framework.py index 85958ed7b32..181b11ae852 100644 --- a/sdk/python/pulumi_aws/auditmanager/get_framework.py +++ b/sdk/python/pulumi_aws/auditmanager/get_framework.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/auditmanager/organization_admin_account_registration.py b/sdk/python/pulumi_aws/auditmanager/organization_admin_account_registration.py index 13692b50476..6babfbe9592 100644 --- a/sdk/python/pulumi_aws/auditmanager/organization_admin_account_registration.py +++ b/sdk/python/pulumi_aws/auditmanager/organization_admin_account_registration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OrganizationAdminAccountRegistrationArgs', 'OrganizationAdminAccountRegistration'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a OrganizationAdminAccountRegistration resource. :param pulumi.Input[str] admin_account_id: Identifier for the organization administrator account. """ - pulumi.set(__self__, "admin_account_id", admin_account_id) + OrganizationAdminAccountRegistrationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_account_id=admin_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_account_id is None and 'adminAccountId' in kwargs: + admin_account_id = kwargs['adminAccountId'] + if admin_account_id is None: + raise TypeError("Missing 'admin_account_id' argument") + + _setter("admin_account_id", admin_account_id) @property @pulumi.getter(name="adminAccountId") @@ -44,10 +59,27 @@ def __init__(__self__, *, :param pulumi.Input[str] admin_account_id: Identifier for the organization administrator account. :param pulumi.Input[str] organization_id: Identifier for the organization. """ + _OrganizationAdminAccountRegistrationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_account_id=admin_account_id, + organization_id=organization_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_account_id: Optional[pulumi.Input[str]] = None, + organization_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_account_id is None and 'adminAccountId' in kwargs: + admin_account_id = kwargs['adminAccountId'] + if organization_id is None and 'organizationId' in kwargs: + organization_id = kwargs['organizationId'] + if admin_account_id is not None: - pulumi.set(__self__, "admin_account_id", admin_account_id) + _setter("admin_account_id", admin_account_id) if organization_id is not None: - pulumi.set(__self__, "organization_id", organization_id) + _setter("organization_id", organization_id) @property @pulumi.getter(name="adminAccountId") @@ -143,6 +175,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationAdminAccountRegistrationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/auditmanager/outputs.py b/sdk/python/pulumi_aws/auditmanager/outputs.py index faf68217050..d4689bb20c6 100644 --- a/sdk/python/pulumi_aws/auditmanager/outputs.py +++ b/sdk/python/pulumi_aws/auditmanager/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -53,8 +53,27 @@ def __init__(__self__, *, :param str destination: Destination of the assessment report. This value be in the form `s3://{bucket_name}`. :param str destination_type: Destination type. Currently, `S3` is the only valid value. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_type", destination_type) + AssessmentAssessmentReportsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_type=destination_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + destination_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + if destination_type is None: + raise TypeError("Missing 'destination_type' argument") + + _setter("destination", destination) + _setter("destination_type", destination_type) @property @pulumi.getter @@ -101,8 +120,29 @@ def __init__(__self__, *, :param str role_arn: Amazon Resource Name (ARN) of the IAM role. :param str role_type: Type of customer persona. For assessment creation, type must always be `PROCESS_OWNER`. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "role_type", role_type) + AssessmentRole._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + role_type=role_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + role_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if role_type is None and 'roleType' in kwargs: + role_type = kwargs['roleType'] + if role_type is None: + raise TypeError("Missing 'role_type' argument") + + _setter("role_arn", role_arn) + _setter("role_type", role_type) @property @pulumi.getter(name="roleArn") @@ -149,8 +189,29 @@ def __init__(__self__, *, :param str role_arn: Amazon Resource Name (ARN) of the IAM role. :param str role_type: Type of customer persona. For assessment creation, type must always be `PROCESS_OWNER`. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "role_type", role_type) + AssessmentRolesAll._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + role_type=role_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + role_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if role_type is None and 'roleType' in kwargs: + role_type = kwargs['roleType'] + if role_type is None: + raise TypeError("Missing 'role_type' argument") + + _setter("role_arn", role_arn) + _setter("role_type", role_type) @property @pulumi.getter(name="roleArn") @@ -197,10 +258,27 @@ def __init__(__self__, *, :param Sequence['AssessmentScopeAwsAccountArgs'] aws_accounts: Amazon Web Services accounts that are in scope for the assessment. See `aws_accounts` below. :param Sequence['AssessmentScopeAwsServiceArgs'] aws_services: Amazon Web Services services that are included in the scope of the assessment. See `aws_services` below. """ + AssessmentScope._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_accounts=aws_accounts, + aws_services=aws_services, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_accounts: Optional[Sequence['outputs.AssessmentScopeAwsAccount']] = None, + aws_services: Optional[Sequence['outputs.AssessmentScopeAwsService']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_accounts is None and 'awsAccounts' in kwargs: + aws_accounts = kwargs['awsAccounts'] + if aws_services is None and 'awsServices' in kwargs: + aws_services = kwargs['awsServices'] + if aws_accounts is not None: - pulumi.set(__self__, "aws_accounts", aws_accounts) + _setter("aws_accounts", aws_accounts) if aws_services is not None: - pulumi.set(__self__, "aws_services", aws_services) + _setter("aws_services", aws_services) @property @pulumi.getter(name="awsAccounts") @@ -226,7 +304,20 @@ def __init__(__self__, *, """ :param str id: Identifier for the Amazon Web Services account. """ - pulumi.set(__self__, "id", id) + AssessmentScopeAwsAccount._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) @property @pulumi.getter @@ -261,7 +352,22 @@ def __init__(__self__, *, """ :param str service_name: Name of the Amazon Web Service. """ - pulumi.set(__self__, "service_name", service_name) + AssessmentScopeAwsService._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("service_name", service_name) @property @pulumi.getter(name="serviceName") @@ -325,19 +431,66 @@ def __init__(__self__, *, :param 'ControlControlMappingSourceSourceKeywordArgs' source_keyword: The keyword to search for in CloudTrail logs, Config rules, Security Hub checks, and Amazon Web Services API names. See `source_keyword` below. :param str troubleshooting_text: Instructions for troubleshooting the control. """ - pulumi.set(__self__, "source_name", source_name) - pulumi.set(__self__, "source_set_up_option", source_set_up_option) - pulumi.set(__self__, "source_type", source_type) + ControlControlMappingSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_name=source_name, + source_set_up_option=source_set_up_option, + source_type=source_type, + source_description=source_description, + source_frequency=source_frequency, + source_id=source_id, + source_keyword=source_keyword, + troubleshooting_text=troubleshooting_text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_name: Optional[str] = None, + source_set_up_option: Optional[str] = None, + source_type: Optional[str] = None, + source_description: Optional[str] = None, + source_frequency: Optional[str] = None, + source_id: Optional[str] = None, + source_keyword: Optional['outputs.ControlControlMappingSourceSourceKeyword'] = None, + troubleshooting_text: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_name is None and 'sourceName' in kwargs: + source_name = kwargs['sourceName'] + if source_name is None: + raise TypeError("Missing 'source_name' argument") + if source_set_up_option is None and 'sourceSetUpOption' in kwargs: + source_set_up_option = kwargs['sourceSetUpOption'] + if source_set_up_option is None: + raise TypeError("Missing 'source_set_up_option' argument") + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if source_type is None: + raise TypeError("Missing 'source_type' argument") + if source_description is None and 'sourceDescription' in kwargs: + source_description = kwargs['sourceDescription'] + if source_frequency is None and 'sourceFrequency' in kwargs: + source_frequency = kwargs['sourceFrequency'] + if source_id is None and 'sourceId' in kwargs: + source_id = kwargs['sourceId'] + if source_keyword is None and 'sourceKeyword' in kwargs: + source_keyword = kwargs['sourceKeyword'] + if troubleshooting_text is None and 'troubleshootingText' in kwargs: + troubleshooting_text = kwargs['troubleshootingText'] + + _setter("source_name", source_name) + _setter("source_set_up_option", source_set_up_option) + _setter("source_type", source_type) if source_description is not None: - pulumi.set(__self__, "source_description", source_description) + _setter("source_description", source_description) if source_frequency is not None: - pulumi.set(__self__, "source_frequency", source_frequency) + _setter("source_frequency", source_frequency) if source_id is not None: - pulumi.set(__self__, "source_id", source_id) + _setter("source_id", source_id) if source_keyword is not None: - pulumi.set(__self__, "source_keyword", source_keyword) + _setter("source_keyword", source_keyword) if troubleshooting_text is not None: - pulumi.set(__self__, "troubleshooting_text", troubleshooting_text) + _setter("troubleshooting_text", troubleshooting_text) @property @pulumi.getter(name="sourceName") @@ -431,8 +584,29 @@ def __init__(__self__, *, :param str keyword_input_type: Input method for the keyword. Valid values are `SELECT_FROM_LIST`. :param str keyword_value: The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call. See the [Audit Manager supported control data sources documentation](https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources.html) for more information. """ - pulumi.set(__self__, "keyword_input_type", keyword_input_type) - pulumi.set(__self__, "keyword_value", keyword_value) + ControlControlMappingSourceSourceKeyword._configure( + lambda key, value: pulumi.set(__self__, key, value), + keyword_input_type=keyword_input_type, + keyword_value=keyword_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + keyword_input_type: Optional[str] = None, + keyword_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if keyword_input_type is None and 'keywordInputType' in kwargs: + keyword_input_type = kwargs['keywordInputType'] + if keyword_input_type is None: + raise TypeError("Missing 'keyword_input_type' argument") + if keyword_value is None and 'keywordValue' in kwargs: + keyword_value = kwargs['keywordValue'] + if keyword_value is None: + raise TypeError("Missing 'keyword_value' argument") + + _setter("keyword_input_type", keyword_input_type) + _setter("keyword_value", keyword_value) @property @pulumi.getter(name="keywordInputType") @@ -462,11 +636,28 @@ def __init__(__self__, *, :param Sequence['FrameworkControlSetControlArgs'] controls: List of controls within the control set. See `controls` below. :param str id: Unique identifier of the control. """ - pulumi.set(__self__, "name", name) + FrameworkControlSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + controls=controls, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + controls: Optional[Sequence['outputs.FrameworkControlSetControl']] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if controls is not None: - pulumi.set(__self__, "controls", controls) + _setter("controls", controls) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -500,7 +691,20 @@ def __init__(__self__, *, """ :param str id: Unique identifier of the control. """ - pulumi.set(__self__, "id", id) + FrameworkControlSetControl._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) @property @pulumi.getter @@ -522,15 +726,70 @@ def __init__(__self__, *, source_type: str, troubleshooting_text: str, source_keyword: Optional['outputs.GetControlControlMappingSourceSourceKeywordResult'] = None): - pulumi.set(__self__, "source_description", source_description) - pulumi.set(__self__, "source_frequency", source_frequency) - pulumi.set(__self__, "source_id", source_id) - pulumi.set(__self__, "source_name", source_name) - pulumi.set(__self__, "source_set_up_option", source_set_up_option) - pulumi.set(__self__, "source_type", source_type) - pulumi.set(__self__, "troubleshooting_text", troubleshooting_text) + GetControlControlMappingSourceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_description=source_description, + source_frequency=source_frequency, + source_id=source_id, + source_name=source_name, + source_set_up_option=source_set_up_option, + source_type=source_type, + troubleshooting_text=troubleshooting_text, + source_keyword=source_keyword, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_description: Optional[str] = None, + source_frequency: Optional[str] = None, + source_id: Optional[str] = None, + source_name: Optional[str] = None, + source_set_up_option: Optional[str] = None, + source_type: Optional[str] = None, + troubleshooting_text: Optional[str] = None, + source_keyword: Optional['outputs.GetControlControlMappingSourceSourceKeywordResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_description is None and 'sourceDescription' in kwargs: + source_description = kwargs['sourceDescription'] + if source_description is None: + raise TypeError("Missing 'source_description' argument") + if source_frequency is None and 'sourceFrequency' in kwargs: + source_frequency = kwargs['sourceFrequency'] + if source_frequency is None: + raise TypeError("Missing 'source_frequency' argument") + if source_id is None and 'sourceId' in kwargs: + source_id = kwargs['sourceId'] + if source_id is None: + raise TypeError("Missing 'source_id' argument") + if source_name is None and 'sourceName' in kwargs: + source_name = kwargs['sourceName'] + if source_name is None: + raise TypeError("Missing 'source_name' argument") + if source_set_up_option is None and 'sourceSetUpOption' in kwargs: + source_set_up_option = kwargs['sourceSetUpOption'] + if source_set_up_option is None: + raise TypeError("Missing 'source_set_up_option' argument") + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if source_type is None: + raise TypeError("Missing 'source_type' argument") + if troubleshooting_text is None and 'troubleshootingText' in kwargs: + troubleshooting_text = kwargs['troubleshootingText'] + if troubleshooting_text is None: + raise TypeError("Missing 'troubleshooting_text' argument") + if source_keyword is None and 'sourceKeyword' in kwargs: + source_keyword = kwargs['sourceKeyword'] + + _setter("source_description", source_description) + _setter("source_frequency", source_frequency) + _setter("source_id", source_id) + _setter("source_name", source_name) + _setter("source_set_up_option", source_set_up_option) + _setter("source_type", source_type) + _setter("troubleshooting_text", troubleshooting_text) if source_keyword is not None: - pulumi.set(__self__, "source_keyword", source_keyword) + _setter("source_keyword", source_keyword) @property @pulumi.getter(name="sourceDescription") @@ -578,8 +837,29 @@ class GetControlControlMappingSourceSourceKeywordResult(dict): def __init__(__self__, *, keyword_input_type: str, keyword_value: str): - pulumi.set(__self__, "keyword_input_type", keyword_input_type) - pulumi.set(__self__, "keyword_value", keyword_value) + GetControlControlMappingSourceSourceKeywordResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + keyword_input_type=keyword_input_type, + keyword_value=keyword_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + keyword_input_type: Optional[str] = None, + keyword_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if keyword_input_type is None and 'keywordInputType' in kwargs: + keyword_input_type = kwargs['keywordInputType'] + if keyword_input_type is None: + raise TypeError("Missing 'keyword_input_type' argument") + if keyword_value is None and 'keywordValue' in kwargs: + keyword_value = kwargs['keywordValue'] + if keyword_value is None: + raise TypeError("Missing 'keyword_value' argument") + + _setter("keyword_input_type", keyword_input_type) + _setter("keyword_value", keyword_value) @property @pulumi.getter(name="keywordInputType") @@ -601,10 +881,29 @@ def __init__(__self__, *, """ :param str name: Name of the framework. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetFrameworkControlSetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + controls=controls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + controls: Optional[Sequence['outputs.GetFrameworkControlSetControlResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("id", id) + _setter("name", name) if controls is not None: - pulumi.set(__self__, "controls", controls) + _setter("controls", controls) @property @pulumi.getter @@ -629,7 +928,20 @@ def controls(self) -> Optional[Sequence['outputs.GetFrameworkControlSetControlRe class GetFrameworkControlSetControlResult(dict): def __init__(__self__, *, id: str): - pulumi.set(__self__, "id", id) + GetFrameworkControlSetControlResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/autoscaling/_inputs.py b/sdk/python/pulumi_aws/autoscaling/_inputs.py index e3a17e03491..6521f7acb2b 100644 --- a/sdk/python/pulumi_aws/autoscaling/_inputs.py +++ b/sdk/python/pulumi_aws/autoscaling/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -82,18 +82,57 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with `name_prefix`. """ - pulumi.set(__self__, "lifecycle_transition", lifecycle_transition) - pulumi.set(__self__, "name", name) + GroupInitialLifecycleHookArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lifecycle_transition=lifecycle_transition, + name=name, + default_result=default_result, + heartbeat_timeout=heartbeat_timeout, + notification_metadata=notification_metadata, + notification_target_arn=notification_target_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lifecycle_transition: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + default_result: Optional[pulumi.Input[str]] = None, + heartbeat_timeout: Optional[pulumi.Input[int]] = None, + notification_metadata: Optional[pulumi.Input[str]] = None, + notification_target_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lifecycle_transition is None and 'lifecycleTransition' in kwargs: + lifecycle_transition = kwargs['lifecycleTransition'] + if lifecycle_transition is None: + raise TypeError("Missing 'lifecycle_transition' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if default_result is None and 'defaultResult' in kwargs: + default_result = kwargs['defaultResult'] + if heartbeat_timeout is None and 'heartbeatTimeout' in kwargs: + heartbeat_timeout = kwargs['heartbeatTimeout'] + if notification_metadata is None and 'notificationMetadata' in kwargs: + notification_metadata = kwargs['notificationMetadata'] + if notification_target_arn is None and 'notificationTargetArn' in kwargs: + notification_target_arn = kwargs['notificationTargetArn'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("lifecycle_transition", lifecycle_transition) + _setter("name", name) if default_result is not None: - pulumi.set(__self__, "default_result", default_result) + _setter("default_result", default_result) if heartbeat_timeout is not None: - pulumi.set(__self__, "heartbeat_timeout", heartbeat_timeout) + _setter("heartbeat_timeout", heartbeat_timeout) if notification_metadata is not None: - pulumi.set(__self__, "notification_metadata", notification_metadata) + _setter("notification_metadata", notification_metadata) if notification_target_arn is not None: - pulumi.set(__self__, "notification_target_arn", notification_target_arn) + _setter("notification_target_arn", notification_target_arn) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="lifecycleTransition") @@ -181,11 +220,28 @@ def __init__(__self__, *, > **NOTE:** Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete. """ - pulumi.set(__self__, "strategy", strategy) + GroupInstanceRefreshArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + strategy=strategy, + preferences=preferences, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + strategy: Optional[pulumi.Input[str]] = None, + preferences: Optional[pulumi.Input['GroupInstanceRefreshPreferencesArgs']] = None, + triggers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if strategy is None: + raise TypeError("Missing 'strategy' argument") + + _setter("strategy", strategy) if preferences is not None: - pulumi.set(__self__, "preferences", preferences) + _setter("preferences", preferences) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter @@ -253,22 +309,63 @@ def __init__(__self__, *, :param pulumi.Input[bool] skip_matching: Replace instances that already have your desired configuration. Defaults to `false`. :param pulumi.Input[str] standby_instances: Behavior when encountering instances in the `Standby` state in are found. Available behaviors are `Terminate`, `Ignore`, and `Wait`. Default is `Ignore`. """ + GroupInstanceRefreshPreferencesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_rollback=auto_rollback, + checkpoint_delay=checkpoint_delay, + checkpoint_percentages=checkpoint_percentages, + instance_warmup=instance_warmup, + min_healthy_percentage=min_healthy_percentage, + scale_in_protected_instances=scale_in_protected_instances, + skip_matching=skip_matching, + standby_instances=standby_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_rollback: Optional[pulumi.Input[bool]] = None, + checkpoint_delay: Optional[pulumi.Input[str]] = None, + checkpoint_percentages: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + instance_warmup: Optional[pulumi.Input[str]] = None, + min_healthy_percentage: Optional[pulumi.Input[int]] = None, + scale_in_protected_instances: Optional[pulumi.Input[str]] = None, + skip_matching: Optional[pulumi.Input[bool]] = None, + standby_instances: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_rollback is None and 'autoRollback' in kwargs: + auto_rollback = kwargs['autoRollback'] + if checkpoint_delay is None and 'checkpointDelay' in kwargs: + checkpoint_delay = kwargs['checkpointDelay'] + if checkpoint_percentages is None and 'checkpointPercentages' in kwargs: + checkpoint_percentages = kwargs['checkpointPercentages'] + if instance_warmup is None and 'instanceWarmup' in kwargs: + instance_warmup = kwargs['instanceWarmup'] + if min_healthy_percentage is None and 'minHealthyPercentage' in kwargs: + min_healthy_percentage = kwargs['minHealthyPercentage'] + if scale_in_protected_instances is None and 'scaleInProtectedInstances' in kwargs: + scale_in_protected_instances = kwargs['scaleInProtectedInstances'] + if skip_matching is None and 'skipMatching' in kwargs: + skip_matching = kwargs['skipMatching'] + if standby_instances is None and 'standbyInstances' in kwargs: + standby_instances = kwargs['standbyInstances'] + if auto_rollback is not None: - pulumi.set(__self__, "auto_rollback", auto_rollback) + _setter("auto_rollback", auto_rollback) if checkpoint_delay is not None: - pulumi.set(__self__, "checkpoint_delay", checkpoint_delay) + _setter("checkpoint_delay", checkpoint_delay) if checkpoint_percentages is not None: - pulumi.set(__self__, "checkpoint_percentages", checkpoint_percentages) + _setter("checkpoint_percentages", checkpoint_percentages) if instance_warmup is not None: - pulumi.set(__self__, "instance_warmup", instance_warmup) + _setter("instance_warmup", instance_warmup) if min_healthy_percentage is not None: - pulumi.set(__self__, "min_healthy_percentage", min_healthy_percentage) + _setter("min_healthy_percentage", min_healthy_percentage) if scale_in_protected_instances is not None: - pulumi.set(__self__, "scale_in_protected_instances", scale_in_protected_instances) + _setter("scale_in_protected_instances", scale_in_protected_instances) if skip_matching is not None: - pulumi.set(__self__, "skip_matching", skip_matching) + _setter("skip_matching", skip_matching) if standby_instances is not None: - pulumi.set(__self__, "standby_instances", standby_instances) + _setter("standby_instances", standby_instances) @property @pulumi.getter(name="autoRollback") @@ -378,12 +475,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the launch template. Conflicts with `id`. :param pulumi.Input[str] version: Template version. Can be version number, `$Latest`, or `$Default`. (Default: `$Default`). """ + GroupLaunchTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -431,9 +543,28 @@ def __init__(__self__, *, :param pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateArgs'] launch_template: Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below. :param pulumi.Input['GroupMixedInstancesPolicyInstancesDistributionArgs'] instances_distribution: Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below. """ - pulumi.set(__self__, "launch_template", launch_template) + GroupMixedInstancesPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template=launch_template, + instances_distribution=instances_distribution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateArgs']] = None, + instances_distribution: Optional[pulumi.Input['GroupMixedInstancesPolicyInstancesDistributionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if launch_template is None: + raise TypeError("Missing 'launch_template' argument") + if instances_distribution is None and 'instancesDistribution' in kwargs: + instances_distribution = kwargs['instancesDistribution'] + + _setter("launch_template", launch_template) if instances_distribution is not None: - pulumi.set(__self__, "instances_distribution", instances_distribution) + _setter("instances_distribution", instances_distribution) @property @pulumi.getter(name="launchTemplate") @@ -477,18 +608,51 @@ def __init__(__self__, *, :param pulumi.Input[int] spot_instance_pools: Number of Spot pools per availability zone to allocate capacity. EC2 Auto Scaling selects the cheapest Spot pools and evenly allocates Spot capacity across the number of Spot pools that you specify. Only available with `spot_allocation_strategy` set to `lowest-price`. Otherwise it must be set to `0`, if it has been defined before. Default: `2`. :param pulumi.Input[str] spot_max_price: Maximum price per unit hour that the user is willing to pay for the Spot instances. Default: an empty string which means the on-demand price. """ + GroupMixedInstancesPolicyInstancesDistributionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_demand_allocation_strategy=on_demand_allocation_strategy, + on_demand_base_capacity=on_demand_base_capacity, + on_demand_percentage_above_base_capacity=on_demand_percentage_above_base_capacity, + spot_allocation_strategy=spot_allocation_strategy, + spot_instance_pools=spot_instance_pools, + spot_max_price=spot_max_price, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_demand_allocation_strategy: Optional[pulumi.Input[str]] = None, + on_demand_base_capacity: Optional[pulumi.Input[int]] = None, + on_demand_percentage_above_base_capacity: Optional[pulumi.Input[int]] = None, + spot_allocation_strategy: Optional[pulumi.Input[str]] = None, + spot_instance_pools: Optional[pulumi.Input[int]] = None, + spot_max_price: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_demand_allocation_strategy is None and 'onDemandAllocationStrategy' in kwargs: + on_demand_allocation_strategy = kwargs['onDemandAllocationStrategy'] + if on_demand_base_capacity is None and 'onDemandBaseCapacity' in kwargs: + on_demand_base_capacity = kwargs['onDemandBaseCapacity'] + if on_demand_percentage_above_base_capacity is None and 'onDemandPercentageAboveBaseCapacity' in kwargs: + on_demand_percentage_above_base_capacity = kwargs['onDemandPercentageAboveBaseCapacity'] + if spot_allocation_strategy is None and 'spotAllocationStrategy' in kwargs: + spot_allocation_strategy = kwargs['spotAllocationStrategy'] + if spot_instance_pools is None and 'spotInstancePools' in kwargs: + spot_instance_pools = kwargs['spotInstancePools'] + if spot_max_price is None and 'spotMaxPrice' in kwargs: + spot_max_price = kwargs['spotMaxPrice'] + if on_demand_allocation_strategy is not None: - pulumi.set(__self__, "on_demand_allocation_strategy", on_demand_allocation_strategy) + _setter("on_demand_allocation_strategy", on_demand_allocation_strategy) if on_demand_base_capacity is not None: - pulumi.set(__self__, "on_demand_base_capacity", on_demand_base_capacity) + _setter("on_demand_base_capacity", on_demand_base_capacity) if on_demand_percentage_above_base_capacity is not None: - pulumi.set(__self__, "on_demand_percentage_above_base_capacity", on_demand_percentage_above_base_capacity) + _setter("on_demand_percentage_above_base_capacity", on_demand_percentage_above_base_capacity) if spot_allocation_strategy is not None: - pulumi.set(__self__, "spot_allocation_strategy", spot_allocation_strategy) + _setter("spot_allocation_strategy", spot_allocation_strategy) if spot_instance_pools is not None: - pulumi.set(__self__, "spot_instance_pools", spot_instance_pools) + _setter("spot_instance_pools", spot_instance_pools) if spot_max_price is not None: - pulumi.set(__self__, "spot_max_price", spot_max_price) + _setter("spot_max_price", spot_max_price) @property @pulumi.getter(name="onDemandAllocationStrategy") @@ -569,18 +733,35 @@ def __init__(__self__, *, launch_template_specification: pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs'], overrides: Optional[pulumi.Input[Sequence[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideArgs']]]] = None): """ - :param pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs'] launch_template_specification: Nested argument defines the Launch Template. Defined below. + :param pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs'] launch_template_specification: Override the instance launch template specification in the Launch Template. :param pulumi.Input[Sequence[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideArgs']]] overrides: List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below. """ - pulumi.set(__self__, "launch_template_specification", launch_template_specification) + GroupMixedInstancesPolicyLaunchTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_specification=launch_template_specification, + overrides=overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_specification: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs']] = None, + overrides: Optional[pulumi.Input[Sequence[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_specification is None and 'launchTemplateSpecification' in kwargs: + launch_template_specification = kwargs['launchTemplateSpecification'] + if launch_template_specification is None: + raise TypeError("Missing 'launch_template_specification' argument") + + _setter("launch_template_specification", launch_template_specification) if overrides is not None: - pulumi.set(__self__, "overrides", overrides) + _setter("overrides", overrides) @property @pulumi.getter(name="launchTemplateSpecification") def launch_template_specification(self) -> pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs']: """ - Nested argument defines the Launch Template. Defined below. + Override the instance launch template specification in the Launch Template. """ return pulumi.get(self, "launch_template_specification") @@ -612,12 +793,31 @@ def __init__(__self__, *, :param pulumi.Input[str] launch_template_name: Name of the launch template. Conflicts with `launch_template_id`. :param pulumi.Input[str] version: Template version. Can be version number, `$Latest`, or `$Default`. (Default: `$Default`). """ + GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[pulumi.Input[str]] = None, + launch_template_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="launchTemplateId") @@ -666,17 +866,42 @@ def __init__(__self__, *, """ :param pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs'] instance_requirements: Override the instance type in the Launch Template with instance types that satisfy the requirements. :param pulumi.Input[str] instance_type: Override the instance type in the Launch Template. - :param pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs'] launch_template_specification: Nested argument defines the Launch Template. Defined below. + :param pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs'] launch_template_specification: Override the instance launch template specification in the Launch Template. :param pulumi.Input[str] weighted_capacity: Number of capacity units, which gives the instance type a proportional weight to other instance types. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_requirements=instance_requirements, + instance_type=instance_type, + launch_template_specification=launch_template_specification, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_requirements: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs']] = None, + instance_type: Optional[pulumi.Input[str]] = None, + launch_template_specification: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs']] = None, + weighted_capacity: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_requirements is None and 'instanceRequirements' in kwargs: + instance_requirements = kwargs['instanceRequirements'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if launch_template_specification is None and 'launchTemplateSpecification' in kwargs: + launch_template_specification = kwargs['launchTemplateSpecification'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + if instance_requirements is not None: - pulumi.set(__self__, "instance_requirements", instance_requirements) + _setter("instance_requirements", instance_requirements) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if launch_template_specification is not None: - pulumi.set(__self__, "launch_template_specification", launch_template_specification) + _setter("launch_template_specification", launch_template_specification) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceRequirements") @@ -706,7 +931,7 @@ def instance_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="launchTemplateSpecification") def launch_template_specification(self) -> Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs']]: """ - Nested argument defines the Launch Template. Defined below. + Override the instance launch template specification in the Launch Template. """ return pulumi.get(self, "launch_template_specification") @@ -812,52 +1037,153 @@ def __init__(__self__, *, :param pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs'] total_local_storage_gb: Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum. :param pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs'] vcpu_count: Block describing the minimum and maximum number of vCPUs. Default is no maximum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_count=accelerator_count, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mib=accelerator_total_memory_mib, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpu=memory_gib_per_vcpu, + memory_mib=memory_mib, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_count=network_interface_count, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gb=total_local_storage_gb, + vcpu_count=vcpu_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_count: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs']] = None, + accelerator_manufacturers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + accelerator_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + accelerator_total_memory_mib: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs']] = None, + accelerator_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + bare_metal: Optional[pulumi.Input[str]] = None, + baseline_ebs_bandwidth_mbps: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs']] = None, + burstable_performance: Optional[pulumi.Input[str]] = None, + cpu_manufacturers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + excluded_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_generations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + local_storage: Optional[pulumi.Input[str]] = None, + local_storage_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + memory_gib_per_vcpu: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs']] = None, + memory_mib: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs']] = None, + network_bandwidth_gbps: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs']] = None, + network_interface_count: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs']] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[pulumi.Input[int]] = None, + require_hibernate_support: Optional[pulumi.Input[bool]] = None, + spot_max_price_percentage_over_lowest_price: Optional[pulumi.Input[int]] = None, + total_local_storage_gb: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs']] = None, + vcpu_count: Optional[pulumi.Input['GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_count is None and 'acceleratorCount' in kwargs: + accelerator_count = kwargs['acceleratorCount'] + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_total_memory_mib is None and 'acceleratorTotalMemoryMib' in kwargs: + accelerator_total_memory_mib = kwargs['acceleratorTotalMemoryMib'] + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if memory_gib_per_vcpu is None and 'memoryGibPerVcpu' in kwargs: + memory_gib_per_vcpu = kwargs['memoryGibPerVcpu'] + if memory_mib is None and 'memoryMib' in kwargs: + memory_mib = kwargs['memoryMib'] + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_interface_count is None and 'networkInterfaceCount' in kwargs: + network_interface_count = kwargs['networkInterfaceCount'] + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if total_local_storage_gb is None and 'totalLocalStorageGb' in kwargs: + total_local_storage_gb = kwargs['totalLocalStorageGb'] + if vcpu_count is None and 'vcpuCount' in kwargs: + vcpu_count = kwargs['vcpuCount'] + if accelerator_count is not None: - pulumi.set(__self__, "accelerator_count", accelerator_count) + _setter("accelerator_count", accelerator_count) if accelerator_manufacturers is not None: - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_manufacturers", accelerator_manufacturers) if accelerator_names is not None: - pulumi.set(__self__, "accelerator_names", accelerator_names) + _setter("accelerator_names", accelerator_names) if accelerator_total_memory_mib is not None: - pulumi.set(__self__, "accelerator_total_memory_mib", accelerator_total_memory_mib) + _setter("accelerator_total_memory_mib", accelerator_total_memory_mib) if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if allowed_instance_types is not None: - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + _setter("allowed_instance_types", allowed_instance_types) if bare_metal is not None: - pulumi.set(__self__, "bare_metal", bare_metal) + _setter("bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) if burstable_performance is not None: - pulumi.set(__self__, "burstable_performance", burstable_performance) + _setter("burstable_performance", burstable_performance) if cpu_manufacturers is not None: - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) + _setter("cpu_manufacturers", cpu_manufacturers) if excluded_instance_types is not None: - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + _setter("excluded_instance_types", excluded_instance_types) if instance_generations is not None: - pulumi.set(__self__, "instance_generations", instance_generations) + _setter("instance_generations", instance_generations) if local_storage is not None: - pulumi.set(__self__, "local_storage", local_storage) + _setter("local_storage", local_storage) if local_storage_types is not None: - pulumi.set(__self__, "local_storage_types", local_storage_types) + _setter("local_storage_types", local_storage_types) if memory_gib_per_vcpu is not None: - pulumi.set(__self__, "memory_gib_per_vcpu", memory_gib_per_vcpu) + _setter("memory_gib_per_vcpu", memory_gib_per_vcpu) if memory_mib is not None: - pulumi.set(__self__, "memory_mib", memory_mib) + _setter("memory_mib", memory_mib) if network_bandwidth_gbps is not None: - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) if network_interface_count is not None: - pulumi.set(__self__, "network_interface_count", network_interface_count) + _setter("network_interface_count", network_interface_count) if on_demand_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) if require_hibernate_support is not None: - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) + _setter("require_hibernate_support", require_hibernate_support) if spot_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) if total_local_storage_gb is not None: - pulumi.set(__self__, "total_local_storage_gb", total_local_storage_gb) + _setter("total_local_storage_gb", total_local_storage_gb) if vcpu_count is not None: - pulumi.set(__self__, "vcpu_count", vcpu_count) + _setter("vcpu_count", vcpu_count) @property @pulumi.getter(name="acceleratorCount") @@ -1176,19 +1502,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1215,19 +1554,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1254,19 +1606,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1293,19 +1658,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[float] max: Maximum. :param pulumi.Input[float] min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1332,19 +1710,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1371,19 +1762,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[float] max: Maximum. :param pulumi.Input[float] min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1410,19 +1814,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1449,19 +1866,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[float] max: Maximum. :param pulumi.Input[float] min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1488,19 +1918,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1532,12 +1975,31 @@ def __init__(__self__, *, :param pulumi.Input[str] launch_template_name: Name of the launch template. Conflicts with `launch_template_id`. :param pulumi.Input[str] version: Template version. Can be version number, `$Latest`, or `$Default`. (Default: `$Default`). """ + GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[pulumi.Input[str]] = None, + launch_template_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="launchTemplateId") @@ -1592,9 +2054,32 @@ def __init__(__self__, *, > **NOTE:** Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the `AmazonECSManaged` tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if the `min_size` was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service. :param pulumi.Input[str] value: Value """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "propagate_at_launch", propagate_at_launch) - pulumi.set(__self__, "value", value) + GroupTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + propagate_at_launch=propagate_at_launch, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + propagate_at_launch: Optional[pulumi.Input[bool]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if propagate_at_launch is None and 'propagateAtLaunch' in kwargs: + propagate_at_launch = kwargs['propagateAtLaunch'] + if propagate_at_launch is None: + raise TypeError("Missing 'propagate_at_launch' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("propagate_at_launch", propagate_at_launch) + _setter("value", value) @property @pulumi.getter @@ -1651,9 +2136,24 @@ def __init__(__self__, *, `elbv2` if `identifier` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. `vpc-lattice` if `identifier` is the ARN of a VPC Lattice target group. """ - pulumi.set(__self__, "identifier", identifier) + GroupTrafficSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -1697,14 +2197,39 @@ def __init__(__self__, *, :param pulumi.Input[int] min_size: Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified. :param pulumi.Input[str] pool_state: Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated. """ + GroupWarmPoolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_reuse_policy=instance_reuse_policy, + max_group_prepared_capacity=max_group_prepared_capacity, + min_size=min_size, + pool_state=pool_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_reuse_policy: Optional[pulumi.Input['GroupWarmPoolInstanceReusePolicyArgs']] = None, + max_group_prepared_capacity: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + pool_state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_reuse_policy is None and 'instanceReusePolicy' in kwargs: + instance_reuse_policy = kwargs['instanceReusePolicy'] + if max_group_prepared_capacity is None and 'maxGroupPreparedCapacity' in kwargs: + max_group_prepared_capacity = kwargs['maxGroupPreparedCapacity'] + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if pool_state is None and 'poolState' in kwargs: + pool_state = kwargs['poolState'] + if instance_reuse_policy is not None: - pulumi.set(__self__, "instance_reuse_policy", instance_reuse_policy) + _setter("instance_reuse_policy", instance_reuse_policy) if max_group_prepared_capacity is not None: - pulumi.set(__self__, "max_group_prepared_capacity", max_group_prepared_capacity) + _setter("max_group_prepared_capacity", max_group_prepared_capacity) if min_size is not None: - pulumi.set(__self__, "min_size", min_size) + _setter("min_size", min_size) if pool_state is not None: - pulumi.set(__self__, "pool_state", pool_state) + _setter("pool_state", pool_state) @property @pulumi.getter(name="instanceReusePolicy") @@ -1762,8 +2287,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] reuse_on_scale_in: Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. """ + GroupWarmPoolInstanceReusePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + reuse_on_scale_in=reuse_on_scale_in, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reuse_on_scale_in: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reuse_on_scale_in is None and 'reuseOnScaleIn' in kwargs: + reuse_on_scale_in = kwargs['reuseOnScaleIn'] + if reuse_on_scale_in is not None: - pulumi.set(__self__, "reuse_on_scale_in", reuse_on_scale_in) + _setter("reuse_on_scale_in", reuse_on_scale_in) @property @pulumi.getter(name="reuseOnScaleIn") @@ -1793,15 +2331,44 @@ def __init__(__self__, *, :param pulumi.Input[str] mode: Predictive scaling mode. Valid values are `ForecastAndScale` and `ForecastOnly`. Default is `ForecastOnly`. :param pulumi.Input[str] scheduling_buffer_time: Amount of time, in seconds, by which the instance launch time can be advanced. Minimum is `0`. """ - pulumi.set(__self__, "metric_specification", metric_specification) + PolicyPredictiveScalingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_specification=metric_specification, + max_capacity_breach_behavior=max_capacity_breach_behavior, + max_capacity_buffer=max_capacity_buffer, + mode=mode, + scheduling_buffer_time=scheduling_buffer_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_specification: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationArgs']] = None, + max_capacity_breach_behavior: Optional[pulumi.Input[str]] = None, + max_capacity_buffer: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + scheduling_buffer_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_specification is None and 'metricSpecification' in kwargs: + metric_specification = kwargs['metricSpecification'] + if metric_specification is None: + raise TypeError("Missing 'metric_specification' argument") + if max_capacity_breach_behavior is None and 'maxCapacityBreachBehavior' in kwargs: + max_capacity_breach_behavior = kwargs['maxCapacityBreachBehavior'] + if max_capacity_buffer is None and 'maxCapacityBuffer' in kwargs: + max_capacity_buffer = kwargs['maxCapacityBuffer'] + if scheduling_buffer_time is None and 'schedulingBufferTime' in kwargs: + scheduling_buffer_time = kwargs['schedulingBufferTime'] + + _setter("metric_specification", metric_specification) if max_capacity_breach_behavior is not None: - pulumi.set(__self__, "max_capacity_breach_behavior", max_capacity_breach_behavior) + _setter("max_capacity_breach_behavior", max_capacity_breach_behavior) if max_capacity_buffer is not None: - pulumi.set(__self__, "max_capacity_buffer", max_capacity_buffer) + _setter("max_capacity_buffer", max_capacity_buffer) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if scheduling_buffer_time is not None: - pulumi.set(__self__, "scheduling_buffer_time", scheduling_buffer_time) + _setter("scheduling_buffer_time", scheduling_buffer_time) @property @pulumi.getter(name="metricSpecification") @@ -1883,19 +2450,58 @@ def __init__(__self__, *, :param pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgs'] predefined_metric_pair_specification: Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use. :param pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgs'] predefined_scaling_metric_specification: Predefined scaling metric specification. """ - pulumi.set(__self__, "target_value", target_value) + PolicyPredictiveScalingConfigurationMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + customized_capacity_metric_specification=customized_capacity_metric_specification, + customized_load_metric_specification=customized_load_metric_specification, + customized_scaling_metric_specification=customized_scaling_metric_specification, + predefined_load_metric_specification=predefined_load_metric_specification, + predefined_metric_pair_specification=predefined_metric_pair_specification, + predefined_scaling_metric_specification=predefined_scaling_metric_specification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[pulumi.Input[float]] = None, + customized_capacity_metric_specification: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs']] = None, + customized_load_metric_specification: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs']] = None, + customized_scaling_metric_specification: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs']] = None, + predefined_load_metric_specification: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs']] = None, + predefined_metric_pair_specification: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgs']] = None, + predefined_scaling_metric_specification: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + if customized_capacity_metric_specification is None and 'customizedCapacityMetricSpecification' in kwargs: + customized_capacity_metric_specification = kwargs['customizedCapacityMetricSpecification'] + if customized_load_metric_specification is None and 'customizedLoadMetricSpecification' in kwargs: + customized_load_metric_specification = kwargs['customizedLoadMetricSpecification'] + if customized_scaling_metric_specification is None and 'customizedScalingMetricSpecification' in kwargs: + customized_scaling_metric_specification = kwargs['customizedScalingMetricSpecification'] + if predefined_load_metric_specification is None and 'predefinedLoadMetricSpecification' in kwargs: + predefined_load_metric_specification = kwargs['predefinedLoadMetricSpecification'] + if predefined_metric_pair_specification is None and 'predefinedMetricPairSpecification' in kwargs: + predefined_metric_pair_specification = kwargs['predefinedMetricPairSpecification'] + if predefined_scaling_metric_specification is None and 'predefinedScalingMetricSpecification' in kwargs: + predefined_scaling_metric_specification = kwargs['predefinedScalingMetricSpecification'] + + _setter("target_value", target_value) if customized_capacity_metric_specification is not None: - pulumi.set(__self__, "customized_capacity_metric_specification", customized_capacity_metric_specification) + _setter("customized_capacity_metric_specification", customized_capacity_metric_specification) if customized_load_metric_specification is not None: - pulumi.set(__self__, "customized_load_metric_specification", customized_load_metric_specification) + _setter("customized_load_metric_specification", customized_load_metric_specification) if customized_scaling_metric_specification is not None: - pulumi.set(__self__, "customized_scaling_metric_specification", customized_scaling_metric_specification) + _setter("customized_scaling_metric_specification", customized_scaling_metric_specification) if predefined_load_metric_specification is not None: - pulumi.set(__self__, "predefined_load_metric_specification", predefined_load_metric_specification) + _setter("predefined_load_metric_specification", predefined_load_metric_specification) if predefined_metric_pair_specification is not None: - pulumi.set(__self__, "predefined_metric_pair_specification", predefined_metric_pair_specification) + _setter("predefined_metric_pair_specification", predefined_metric_pair_specification) if predefined_scaling_metric_specification is not None: - pulumi.set(__self__, "predefined_scaling_metric_specification", predefined_scaling_metric_specification) + _setter("predefined_scaling_metric_specification", predefined_scaling_metric_specification) @property @pulumi.getter(name="targetValue") @@ -1989,7 +2595,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs']]] metric_data_queries: List of up to 10 structures that defines custom capacity metric in predictive scaling policy """ - pulumi.set(__self__, "metric_data_queries", metric_data_queries) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_data_queries=metric_data_queries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_data_queries: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_data_queries is None and 'metricDataQueries' in kwargs: + metric_data_queries = kwargs['metricDataQueries'] + if metric_data_queries is None: + raise TypeError("Missing 'metric_data_queries' argument") + + _setter("metric_data_queries", metric_data_queries) @property @pulumi.getter(name="metricDataQueries") @@ -2019,15 +2640,40 @@ def __init__(__self__, *, :param pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatArgs'] metric_stat: Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param pulumi.Input[bool] return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + label: Optional[pulumi.Input[str]] = None, + metric_stat: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatArgs']] = None, + return_data: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -2101,10 +2747,29 @@ def __init__(__self__, *, :param pulumi.Input[str] stat: Statistic of the metrics to return. :param pulumi.Input[str] unit: Unit of the metrics to return. """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricArgs']] = None, + stat: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -2154,10 +2819,31 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: Namespace of the metric. :param pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs']]] dimensions: Dimensions of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -2205,8 +2891,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the dimension. :param pulumi.Input[str] value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2240,7 +2943,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs']]] metric_data_queries: List of up to 10 structures that defines custom load metric in predictive scaling policy """ - pulumi.set(__self__, "metric_data_queries", metric_data_queries) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_data_queries=metric_data_queries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_data_queries: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_data_queries is None and 'metricDataQueries' in kwargs: + metric_data_queries = kwargs['metricDataQueries'] + if metric_data_queries is None: + raise TypeError("Missing 'metric_data_queries' argument") + + _setter("metric_data_queries", metric_data_queries) @property @pulumi.getter(name="metricDataQueries") @@ -2270,15 +2988,40 @@ def __init__(__self__, *, :param pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatArgs'] metric_stat: Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param pulumi.Input[bool] return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + label: Optional[pulumi.Input[str]] = None, + metric_stat: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatArgs']] = None, + return_data: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -2352,10 +3095,29 @@ def __init__(__self__, *, :param pulumi.Input[str] stat: Statistic of the metrics to return. :param pulumi.Input[str] unit: Unit of the metrics to return. """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricArgs']] = None, + stat: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -2405,10 +3167,31 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: Namespace of the metric. :param pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs']]] dimensions: Dimensions of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -2456,8 +3239,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the dimension. :param pulumi.Input[str] value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2491,7 +3291,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs']]] metric_data_queries: List of up to 10 structures that defines custom scaling metric in predictive scaling policy """ - pulumi.set(__self__, "metric_data_queries", metric_data_queries) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_data_queries=metric_data_queries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_data_queries: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_data_queries is None and 'metricDataQueries' in kwargs: + metric_data_queries = kwargs['metricDataQueries'] + if metric_data_queries is None: + raise TypeError("Missing 'metric_data_queries' argument") + + _setter("metric_data_queries", metric_data_queries) @property @pulumi.getter(name="metricDataQueries") @@ -2521,15 +3336,40 @@ def __init__(__self__, *, :param pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs'] metric_stat: Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param pulumi.Input[bool] return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + label: Optional[pulumi.Input[str]] = None, + metric_stat: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs']] = None, + return_data: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -2603,10 +3443,29 @@ def __init__(__self__, *, :param pulumi.Input[str] stat: Statistic of the metrics to return. :param pulumi.Input[str] unit: Unit of the metrics to return. """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricArgs']] = None, + stat: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -2656,10 +3515,31 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: Namespace of the metric. :param pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs']]] dimensions: Dimensions of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -2707,8 +3587,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the dimension. :param pulumi.Input[str] value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2744,9 +3641,28 @@ def __init__(__self__, *, :param pulumi.Input[str] predefined_metric_type: Metric type. Valid values are `ASGTotalCPUUtilization`, `ASGTotalNetworkIn`, `ASGTotalNetworkOut`, or `ALBTargetGroupRequestCount`. :param pulumi.Input[str] resource_label: Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[pulumi.Input[str]] = None, + resource_label: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -2782,9 +3698,28 @@ def __init__(__self__, *, :param pulumi.Input[str] predefined_metric_type: Which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. For example, if the metric type is `ASGCPUUtilization`, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric. Valid values are `ASGCPUUtilization`, `ASGNetworkIn`, `ASGNetworkOut`, or `ALBRequestCount`. :param pulumi.Input[str] resource_label: Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[pulumi.Input[str]] = None, + resource_label: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -2820,9 +3755,28 @@ def __init__(__self__, *, :param pulumi.Input[str] predefined_metric_type: Describes a scaling metric for a predictive scaling policy. Valid values are `ASGAverageCPUUtilization`, `ASGAverageNetworkIn`, `ASGAverageNetworkOut`, or `ALBRequestCountPerTarget`. :param pulumi.Input[str] resource_label: Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[pulumi.Input[str]] = None, + resource_label: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -2871,11 +3825,34 @@ def __init__(__self__, *, The following arguments are only available to "TargetTrackingScaling" type policies: """ - pulumi.set(__self__, "scaling_adjustment", scaling_adjustment) + PolicyStepAdjustmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + scaling_adjustment=scaling_adjustment, + metric_interval_lower_bound=metric_interval_lower_bound, + metric_interval_upper_bound=metric_interval_upper_bound, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scaling_adjustment: Optional[pulumi.Input[int]] = None, + metric_interval_lower_bound: Optional[pulumi.Input[str]] = None, + metric_interval_upper_bound: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scaling_adjustment is None and 'scalingAdjustment' in kwargs: + scaling_adjustment = kwargs['scalingAdjustment'] + if scaling_adjustment is None: + raise TypeError("Missing 'scaling_adjustment' argument") + if metric_interval_lower_bound is None and 'metricIntervalLowerBound' in kwargs: + metric_interval_lower_bound = kwargs['metricIntervalLowerBound'] + if metric_interval_upper_bound is None and 'metricIntervalUpperBound' in kwargs: + metric_interval_upper_bound = kwargs['metricIntervalUpperBound'] + + _setter("scaling_adjustment", scaling_adjustment) if metric_interval_lower_bound is not None: - pulumi.set(__self__, "metric_interval_lower_bound", metric_interval_lower_bound) + _setter("metric_interval_lower_bound", metric_interval_lower_bound) if metric_interval_upper_bound is not None: - pulumi.set(__self__, "metric_interval_upper_bound", metric_interval_upper_bound) + _setter("metric_interval_upper_bound", metric_interval_upper_bound) @property @pulumi.getter(name="scalingAdjustment") @@ -2938,13 +3915,40 @@ def __init__(__self__, *, :param pulumi.Input[bool] disable_scale_in: Whether scale in by the target tracking policy is disabled. :param pulumi.Input['PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs'] predefined_metric_specification: Predefined metric. Conflicts with `customized_metric_specification`. """ - pulumi.set(__self__, "target_value", target_value) + PolicyTargetTrackingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + customized_metric_specification=customized_metric_specification, + disable_scale_in=disable_scale_in, + predefined_metric_specification=predefined_metric_specification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[pulumi.Input[float]] = None, + customized_metric_specification: Optional[pulumi.Input['PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs']] = None, + disable_scale_in: Optional[pulumi.Input[bool]] = None, + predefined_metric_specification: Optional[pulumi.Input['PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + if customized_metric_specification is None and 'customizedMetricSpecification' in kwargs: + customized_metric_specification = kwargs['customizedMetricSpecification'] + if disable_scale_in is None and 'disableScaleIn' in kwargs: + disable_scale_in = kwargs['disableScaleIn'] + if predefined_metric_specification is None and 'predefinedMetricSpecification' in kwargs: + predefined_metric_specification = kwargs['predefinedMetricSpecification'] + + _setter("target_value", target_value) if customized_metric_specification is not None: - pulumi.set(__self__, "customized_metric_specification", customized_metric_specification) + _setter("customized_metric_specification", customized_metric_specification) if disable_scale_in is not None: - pulumi.set(__self__, "disable_scale_in", disable_scale_in) + _setter("disable_scale_in", disable_scale_in) if predefined_metric_specification is not None: - pulumi.set(__self__, "predefined_metric_specification", predefined_metric_specification) + _setter("predefined_metric_specification", predefined_metric_specification) @property @pulumi.getter(name="targetValue") @@ -3012,18 +4016,43 @@ def __init__(__self__, *, :param pulumi.Input[str] statistic: Statistic of the metric. :param pulumi.Input[str] unit: Unit of the metric. """ + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_dimensions=metric_dimensions, + metric_name=metric_name, + metrics=metrics, + namespace=namespace, + statistic=statistic, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimensionArgs']]]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + metrics: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs']]]] = None, + namespace: Optional[pulumi.Input[str]] = None, + statistic: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_dimensions is None and 'metricDimensions' in kwargs: + metric_dimensions = kwargs['metricDimensions'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_dimensions is not None: - pulumi.set(__self__, "metric_dimensions", metric_dimensions) + _setter("metric_dimensions", metric_dimensions) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if statistic is not None: - pulumi.set(__self__, "statistic", statistic) + _setter("statistic", statistic) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="metricDimensions") @@ -3113,15 +4142,40 @@ def __init__(__self__, *, :param pulumi.Input['PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs'] metric_stat: Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param pulumi.Input[bool] return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + label: Optional[pulumi.Input[str]] = None, + metric_stat: Optional[pulumi.Input['PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs']] = None, + return_data: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -3193,8 +4247,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the dimension. :param pulumi.Input[str] value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3232,10 +4303,29 @@ def __init__(__self__, *, :param pulumi.Input[str] stat: Statistic of the metrics to return. :param pulumi.Input[str] unit: Unit of the metrics to return. """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional[pulumi.Input['PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs']] = None, + stat: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -3285,10 +4375,31 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: Namespace of the metric. :param pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs']]] dimensions: Dimensions of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -3336,8 +4447,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the dimension. :param pulumi.Input[str] value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3373,9 +4501,28 @@ def __init__(__self__, *, :param pulumi.Input[str] predefined_metric_type: Metric type. :param pulumi.Input[str] resource_label: Identifies the resource associated with the metric type. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[pulumi.Input[str]] = None, + resource_label: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -3413,9 +4560,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] propagate_at_launch: Whether to propagate the tags to instances launched by the ASG. :param pulumi.Input[str] value: Tag value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "propagate_at_launch", propagate_at_launch) - pulumi.set(__self__, "value", value) + TagTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + propagate_at_launch=propagate_at_launch, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + propagate_at_launch: Optional[pulumi.Input[bool]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if propagate_at_launch is None and 'propagateAtLaunch' in kwargs: + propagate_at_launch = kwargs['propagateAtLaunch'] + if propagate_at_launch is None: + raise TypeError("Missing 'propagate_at_launch' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("propagate_at_launch", propagate_at_launch) + _setter("value", value) @property @pulumi.getter @@ -3467,8 +4637,25 @@ def __init__(__self__, *, `elbv2` if `identifier` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. `vpc-lattice` if `identifier` is the ARN of a VPC Lattice target group. """ - pulumi.set(__self__, "identifier", identifier) - pulumi.set(__self__, "type", type) + TrafficSourceAttachmentTrafficSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("identifier", identifier) + _setter("type", type) @property @pulumi.getter @@ -3508,8 +4695,25 @@ def __init__(__self__, *, :param str name: Name of the DescribeAutoScalingGroup filter. The recommended values are: `tag-key`, `tag-value`, and `tag:` :param Sequence[str] values: Value of the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAmiIdsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/autoscaling/attachment.py b/sdk/python/pulumi_aws/autoscaling/attachment.py index 9d2ba7961ea..183a94a2e38 100644 --- a/sdk/python/pulumi_aws/autoscaling/attachment.py +++ b/sdk/python/pulumi_aws/autoscaling/attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AttachmentArgs', 'Attachment'] @@ -23,11 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] elb: Name of the ELB. :param pulumi.Input[str] lb_target_group_arn: ARN of a load balancer target group. """ - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) + AttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + elb=elb, + lb_target_group_arn=lb_target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + elb: Optional[pulumi.Input[str]] = None, + lb_target_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if autoscaling_group_name is None: + raise TypeError("Missing 'autoscaling_group_name' argument") + if lb_target_group_arn is None and 'lbTargetGroupArn' in kwargs: + lb_target_group_arn = kwargs['lbTargetGroupArn'] + + _setter("autoscaling_group_name", autoscaling_group_name) if elb is not None: - pulumi.set(__self__, "elb", elb) + _setter("elb", elb) if lb_target_group_arn is not None: - pulumi.set(__self__, "lb_target_group_arn", lb_target_group_arn) + _setter("lb_target_group_arn", lb_target_group_arn) @property @pulumi.getter(name="autoscalingGroupName") @@ -78,12 +99,31 @@ def __init__(__self__, *, :param pulumi.Input[str] elb: Name of the ELB. :param pulumi.Input[str] lb_target_group_arn: ARN of a load balancer target group. """ + _AttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + elb=elb, + lb_target_group_arn=lb_target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + elb: Optional[pulumi.Input[str]] = None, + lb_target_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if lb_target_group_arn is None and 'lbTargetGroupArn' in kwargs: + lb_target_group_arn = kwargs['lbTargetGroupArn'] + if autoscaling_group_name is not None: - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) + _setter("autoscaling_group_name", autoscaling_group_name) if elb is not None: - pulumi.set(__self__, "elb", elb) + _setter("elb", elb) if lb_target_group_arn is not None: - pulumi.set(__self__, "lb_target_group_arn", lb_target_group_arn) + _setter("lb_target_group_arn", lb_target_group_arn) @property @pulumi.getter(name="autoscalingGroupName") @@ -207,6 +247,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/autoscaling/get_ami_ids.py b/sdk/python/pulumi_aws/autoscaling/get_ami_ids.py index d64c16fe7e9..d3e5e8d7493 100644 --- a/sdk/python/pulumi_aws/autoscaling/get_ami_ids.py +++ b/sdk/python/pulumi_aws/autoscaling/get_ami_ids.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/autoscaling/get_group.py b/sdk/python/pulumi_aws/autoscaling/get_group.py index ff0911292b0..2710a82d576 100644 --- a/sdk/python/pulumi_aws/autoscaling/get_group.py +++ b/sdk/python/pulumi_aws/autoscaling/get_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/autoscaling/group.py b/sdk/python/pulumi_aws/autoscaling/group.py index a9e6711c98b..6e2c60988e7 100644 --- a/sdk/python/pulumi_aws/autoscaling/group.py +++ b/sdk/python/pulumi_aws/autoscaling/group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -129,80 +129,239 @@ def __init__(__self__, *, :param pulumi.Input['GroupWarmPoolArgs'] warm_pool: If this block is configured, add a [Warm Pool](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) to the specified Auto Scaling group. Defined below """ - pulumi.set(__self__, "max_size", max_size) - pulumi.set(__self__, "min_size", min_size) + GroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_size=max_size, + min_size=min_size, + availability_zones=availability_zones, + capacity_rebalance=capacity_rebalance, + context=context, + default_cooldown=default_cooldown, + default_instance_warmup=default_instance_warmup, + desired_capacity=desired_capacity, + desired_capacity_type=desired_capacity_type, + enabled_metrics=enabled_metrics, + force_delete=force_delete, + force_delete_warm_pool=force_delete_warm_pool, + health_check_grace_period=health_check_grace_period, + health_check_type=health_check_type, + ignore_failed_scaling_activities=ignore_failed_scaling_activities, + initial_lifecycle_hooks=initial_lifecycle_hooks, + instance_refresh=instance_refresh, + launch_configuration=launch_configuration, + launch_template=launch_template, + load_balancers=load_balancers, + max_instance_lifetime=max_instance_lifetime, + metrics_granularity=metrics_granularity, + min_elb_capacity=min_elb_capacity, + mixed_instances_policy=mixed_instances_policy, + name=name, + name_prefix=name_prefix, + placement_group=placement_group, + protect_from_scale_in=protect_from_scale_in, + service_linked_role_arn=service_linked_role_arn, + suspended_processes=suspended_processes, + tags=tags, + target_group_arns=target_group_arns, + termination_policies=termination_policies, + traffic_sources=traffic_sources, + vpc_zone_identifiers=vpc_zone_identifiers, + wait_for_capacity_timeout=wait_for_capacity_timeout, + wait_for_elb_capacity=wait_for_elb_capacity, + warm_pool=warm_pool, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + capacity_rebalance: Optional[pulumi.Input[bool]] = None, + context: Optional[pulumi.Input[str]] = None, + default_cooldown: Optional[pulumi.Input[int]] = None, + default_instance_warmup: Optional[pulumi.Input[int]] = None, + desired_capacity: Optional[pulumi.Input[int]] = None, + desired_capacity_type: Optional[pulumi.Input[str]] = None, + enabled_metrics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + force_delete_warm_pool: Optional[pulumi.Input[bool]] = None, + health_check_grace_period: Optional[pulumi.Input[int]] = None, + health_check_type: Optional[pulumi.Input[str]] = None, + ignore_failed_scaling_activities: Optional[pulumi.Input[bool]] = None, + initial_lifecycle_hooks: Optional[pulumi.Input[Sequence[pulumi.Input['GroupInitialLifecycleHookArgs']]]] = None, + instance_refresh: Optional[pulumi.Input['GroupInstanceRefreshArgs']] = None, + launch_configuration: Optional[pulumi.Input[str]] = None, + launch_template: Optional[pulumi.Input['GroupLaunchTemplateArgs']] = None, + load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + max_instance_lifetime: Optional[pulumi.Input[int]] = None, + metrics_granularity: Optional[pulumi.Input[Union[str, 'MetricsGranularity']]] = None, + min_elb_capacity: Optional[pulumi.Input[int]] = None, + mixed_instances_policy: Optional[pulumi.Input['GroupMixedInstancesPolicyArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + placement_group: Optional[pulumi.Input[str]] = None, + protect_from_scale_in: Optional[pulumi.Input[bool]] = None, + service_linked_role_arn: Optional[pulumi.Input[str]] = None, + suspended_processes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['GroupTagArgs']]]] = None, + target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + termination_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + traffic_sources: Optional[pulumi.Input[Sequence[pulumi.Input['GroupTrafficSourceArgs']]]] = None, + vpc_zone_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + wait_for_capacity_timeout: Optional[pulumi.Input[str]] = None, + wait_for_elb_capacity: Optional[pulumi.Input[int]] = None, + warm_pool: Optional[pulumi.Input['GroupWarmPoolArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if max_size is None: + raise TypeError("Missing 'max_size' argument") + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if min_size is None: + raise TypeError("Missing 'min_size' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if capacity_rebalance is None and 'capacityRebalance' in kwargs: + capacity_rebalance = kwargs['capacityRebalance'] + if default_cooldown is None and 'defaultCooldown' in kwargs: + default_cooldown = kwargs['defaultCooldown'] + if default_instance_warmup is None and 'defaultInstanceWarmup' in kwargs: + default_instance_warmup = kwargs['defaultInstanceWarmup'] + if desired_capacity is None and 'desiredCapacity' in kwargs: + desired_capacity = kwargs['desiredCapacity'] + if desired_capacity_type is None and 'desiredCapacityType' in kwargs: + desired_capacity_type = kwargs['desiredCapacityType'] + if enabled_metrics is None and 'enabledMetrics' in kwargs: + enabled_metrics = kwargs['enabledMetrics'] + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if force_delete_warm_pool is None and 'forceDeleteWarmPool' in kwargs: + force_delete_warm_pool = kwargs['forceDeleteWarmPool'] + if health_check_grace_period is None and 'healthCheckGracePeriod' in kwargs: + health_check_grace_period = kwargs['healthCheckGracePeriod'] + if health_check_type is None and 'healthCheckType' in kwargs: + health_check_type = kwargs['healthCheckType'] + if ignore_failed_scaling_activities is None and 'ignoreFailedScalingActivities' in kwargs: + ignore_failed_scaling_activities = kwargs['ignoreFailedScalingActivities'] + if initial_lifecycle_hooks is None and 'initialLifecycleHooks' in kwargs: + initial_lifecycle_hooks = kwargs['initialLifecycleHooks'] + if instance_refresh is None and 'instanceRefresh' in kwargs: + instance_refresh = kwargs['instanceRefresh'] + if launch_configuration is None and 'launchConfiguration' in kwargs: + launch_configuration = kwargs['launchConfiguration'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if load_balancers is None and 'loadBalancers' in kwargs: + load_balancers = kwargs['loadBalancers'] + if max_instance_lifetime is None and 'maxInstanceLifetime' in kwargs: + max_instance_lifetime = kwargs['maxInstanceLifetime'] + if metrics_granularity is None and 'metricsGranularity' in kwargs: + metrics_granularity = kwargs['metricsGranularity'] + if min_elb_capacity is None and 'minElbCapacity' in kwargs: + min_elb_capacity = kwargs['minElbCapacity'] + if mixed_instances_policy is None and 'mixedInstancesPolicy' in kwargs: + mixed_instances_policy = kwargs['mixedInstancesPolicy'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if protect_from_scale_in is None and 'protectFromScaleIn' in kwargs: + protect_from_scale_in = kwargs['protectFromScaleIn'] + if service_linked_role_arn is None and 'serviceLinkedRoleArn' in kwargs: + service_linked_role_arn = kwargs['serviceLinkedRoleArn'] + if suspended_processes is None and 'suspendedProcesses' in kwargs: + suspended_processes = kwargs['suspendedProcesses'] + if target_group_arns is None and 'targetGroupArns' in kwargs: + target_group_arns = kwargs['targetGroupArns'] + if termination_policies is None and 'terminationPolicies' in kwargs: + termination_policies = kwargs['terminationPolicies'] + if traffic_sources is None and 'trafficSources' in kwargs: + traffic_sources = kwargs['trafficSources'] + if vpc_zone_identifiers is None and 'vpcZoneIdentifiers' in kwargs: + vpc_zone_identifiers = kwargs['vpcZoneIdentifiers'] + if wait_for_capacity_timeout is None and 'waitForCapacityTimeout' in kwargs: + wait_for_capacity_timeout = kwargs['waitForCapacityTimeout'] + if wait_for_elb_capacity is None and 'waitForElbCapacity' in kwargs: + wait_for_elb_capacity = kwargs['waitForElbCapacity'] + if warm_pool is None and 'warmPool' in kwargs: + warm_pool = kwargs['warmPool'] + + _setter("max_size", max_size) + _setter("min_size", min_size) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if capacity_rebalance is not None: - pulumi.set(__self__, "capacity_rebalance", capacity_rebalance) + _setter("capacity_rebalance", capacity_rebalance) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if default_cooldown is not None: - pulumi.set(__self__, "default_cooldown", default_cooldown) + _setter("default_cooldown", default_cooldown) if default_instance_warmup is not None: - pulumi.set(__self__, "default_instance_warmup", default_instance_warmup) + _setter("default_instance_warmup", default_instance_warmup) if desired_capacity is not None: - pulumi.set(__self__, "desired_capacity", desired_capacity) + _setter("desired_capacity", desired_capacity) if desired_capacity_type is not None: - pulumi.set(__self__, "desired_capacity_type", desired_capacity_type) + _setter("desired_capacity_type", desired_capacity_type) if enabled_metrics is not None: - pulumi.set(__self__, "enabled_metrics", enabled_metrics) + _setter("enabled_metrics", enabled_metrics) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if force_delete_warm_pool is not None: - pulumi.set(__self__, "force_delete_warm_pool", force_delete_warm_pool) + _setter("force_delete_warm_pool", force_delete_warm_pool) if health_check_grace_period is not None: - pulumi.set(__self__, "health_check_grace_period", health_check_grace_period) + _setter("health_check_grace_period", health_check_grace_period) if health_check_type is not None: - pulumi.set(__self__, "health_check_type", health_check_type) + _setter("health_check_type", health_check_type) if ignore_failed_scaling_activities is not None: - pulumi.set(__self__, "ignore_failed_scaling_activities", ignore_failed_scaling_activities) + _setter("ignore_failed_scaling_activities", ignore_failed_scaling_activities) if initial_lifecycle_hooks is not None: - pulumi.set(__self__, "initial_lifecycle_hooks", initial_lifecycle_hooks) + _setter("initial_lifecycle_hooks", initial_lifecycle_hooks) if instance_refresh is not None: - pulumi.set(__self__, "instance_refresh", instance_refresh) + _setter("instance_refresh", instance_refresh) if launch_configuration is not None: - pulumi.set(__self__, "launch_configuration", launch_configuration) + _setter("launch_configuration", launch_configuration) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) + _setter("load_balancers", load_balancers) if max_instance_lifetime is not None: - pulumi.set(__self__, "max_instance_lifetime", max_instance_lifetime) + _setter("max_instance_lifetime", max_instance_lifetime) if metrics_granularity is not None: - pulumi.set(__self__, "metrics_granularity", metrics_granularity) + _setter("metrics_granularity", metrics_granularity) if min_elb_capacity is not None: - pulumi.set(__self__, "min_elb_capacity", min_elb_capacity) + _setter("min_elb_capacity", min_elb_capacity) if mixed_instances_policy is not None: - pulumi.set(__self__, "mixed_instances_policy", mixed_instances_policy) + _setter("mixed_instances_policy", mixed_instances_policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if protect_from_scale_in is not None: - pulumi.set(__self__, "protect_from_scale_in", protect_from_scale_in) + _setter("protect_from_scale_in", protect_from_scale_in) if service_linked_role_arn is not None: - pulumi.set(__self__, "service_linked_role_arn", service_linked_role_arn) + _setter("service_linked_role_arn", service_linked_role_arn) if suspended_processes is not None: - pulumi.set(__self__, "suspended_processes", suspended_processes) + _setter("suspended_processes", suspended_processes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_group_arns is not None: - pulumi.set(__self__, "target_group_arns", target_group_arns) + _setter("target_group_arns", target_group_arns) if termination_policies is not None: - pulumi.set(__self__, "termination_policies", termination_policies) + _setter("termination_policies", termination_policies) if traffic_sources is not None: - pulumi.set(__self__, "traffic_sources", traffic_sources) + _setter("traffic_sources", traffic_sources) if vpc_zone_identifiers is not None: - pulumi.set(__self__, "vpc_zone_identifiers", vpc_zone_identifiers) + _setter("vpc_zone_identifiers", vpc_zone_identifiers) if wait_for_capacity_timeout is not None: - pulumi.set(__self__, "wait_for_capacity_timeout", wait_for_capacity_timeout) + _setter("wait_for_capacity_timeout", wait_for_capacity_timeout) if wait_for_elb_capacity is not None: - pulumi.set(__self__, "wait_for_elb_capacity", wait_for_elb_capacity) + _setter("wait_for_elb_capacity", wait_for_elb_capacity) if warm_pool is not None: - pulumi.set(__self__, "warm_pool", warm_pool) + _setter("warm_pool", warm_pool) @property @pulumi.getter(name="maxSize") @@ -813,88 +972,253 @@ def __init__(__self__, *, to the specified Auto Scaling group. Defined below :param pulumi.Input[int] warm_pool_size: Current size of the warm pool. """ + _GroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zones=availability_zones, + capacity_rebalance=capacity_rebalance, + context=context, + default_cooldown=default_cooldown, + default_instance_warmup=default_instance_warmup, + desired_capacity=desired_capacity, + desired_capacity_type=desired_capacity_type, + enabled_metrics=enabled_metrics, + force_delete=force_delete, + force_delete_warm_pool=force_delete_warm_pool, + health_check_grace_period=health_check_grace_period, + health_check_type=health_check_type, + ignore_failed_scaling_activities=ignore_failed_scaling_activities, + initial_lifecycle_hooks=initial_lifecycle_hooks, + instance_refresh=instance_refresh, + launch_configuration=launch_configuration, + launch_template=launch_template, + load_balancers=load_balancers, + max_instance_lifetime=max_instance_lifetime, + max_size=max_size, + metrics_granularity=metrics_granularity, + min_elb_capacity=min_elb_capacity, + min_size=min_size, + mixed_instances_policy=mixed_instances_policy, + name=name, + name_prefix=name_prefix, + placement_group=placement_group, + predicted_capacity=predicted_capacity, + protect_from_scale_in=protect_from_scale_in, + service_linked_role_arn=service_linked_role_arn, + suspended_processes=suspended_processes, + tags=tags, + target_group_arns=target_group_arns, + termination_policies=termination_policies, + traffic_sources=traffic_sources, + vpc_zone_identifiers=vpc_zone_identifiers, + wait_for_capacity_timeout=wait_for_capacity_timeout, + wait_for_elb_capacity=wait_for_elb_capacity, + warm_pool=warm_pool, + warm_pool_size=warm_pool_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + capacity_rebalance: Optional[pulumi.Input[bool]] = None, + context: Optional[pulumi.Input[str]] = None, + default_cooldown: Optional[pulumi.Input[int]] = None, + default_instance_warmup: Optional[pulumi.Input[int]] = None, + desired_capacity: Optional[pulumi.Input[int]] = None, + desired_capacity_type: Optional[pulumi.Input[str]] = None, + enabled_metrics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + force_delete_warm_pool: Optional[pulumi.Input[bool]] = None, + health_check_grace_period: Optional[pulumi.Input[int]] = None, + health_check_type: Optional[pulumi.Input[str]] = None, + ignore_failed_scaling_activities: Optional[pulumi.Input[bool]] = None, + initial_lifecycle_hooks: Optional[pulumi.Input[Sequence[pulumi.Input['GroupInitialLifecycleHookArgs']]]] = None, + instance_refresh: Optional[pulumi.Input['GroupInstanceRefreshArgs']] = None, + launch_configuration: Optional[pulumi.Input[str]] = None, + launch_template: Optional[pulumi.Input['GroupLaunchTemplateArgs']] = None, + load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + max_instance_lifetime: Optional[pulumi.Input[int]] = None, + max_size: Optional[pulumi.Input[int]] = None, + metrics_granularity: Optional[pulumi.Input[Union[str, 'MetricsGranularity']]] = None, + min_elb_capacity: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + mixed_instances_policy: Optional[pulumi.Input['GroupMixedInstancesPolicyArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + placement_group: Optional[pulumi.Input[str]] = None, + predicted_capacity: Optional[pulumi.Input[int]] = None, + protect_from_scale_in: Optional[pulumi.Input[bool]] = None, + service_linked_role_arn: Optional[pulumi.Input[str]] = None, + suspended_processes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['GroupTagArgs']]]] = None, + target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + termination_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + traffic_sources: Optional[pulumi.Input[Sequence[pulumi.Input['GroupTrafficSourceArgs']]]] = None, + vpc_zone_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + wait_for_capacity_timeout: Optional[pulumi.Input[str]] = None, + wait_for_elb_capacity: Optional[pulumi.Input[int]] = None, + warm_pool: Optional[pulumi.Input['GroupWarmPoolArgs']] = None, + warm_pool_size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if capacity_rebalance is None and 'capacityRebalance' in kwargs: + capacity_rebalance = kwargs['capacityRebalance'] + if default_cooldown is None and 'defaultCooldown' in kwargs: + default_cooldown = kwargs['defaultCooldown'] + if default_instance_warmup is None and 'defaultInstanceWarmup' in kwargs: + default_instance_warmup = kwargs['defaultInstanceWarmup'] + if desired_capacity is None and 'desiredCapacity' in kwargs: + desired_capacity = kwargs['desiredCapacity'] + if desired_capacity_type is None and 'desiredCapacityType' in kwargs: + desired_capacity_type = kwargs['desiredCapacityType'] + if enabled_metrics is None and 'enabledMetrics' in kwargs: + enabled_metrics = kwargs['enabledMetrics'] + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if force_delete_warm_pool is None and 'forceDeleteWarmPool' in kwargs: + force_delete_warm_pool = kwargs['forceDeleteWarmPool'] + if health_check_grace_period is None and 'healthCheckGracePeriod' in kwargs: + health_check_grace_period = kwargs['healthCheckGracePeriod'] + if health_check_type is None and 'healthCheckType' in kwargs: + health_check_type = kwargs['healthCheckType'] + if ignore_failed_scaling_activities is None and 'ignoreFailedScalingActivities' in kwargs: + ignore_failed_scaling_activities = kwargs['ignoreFailedScalingActivities'] + if initial_lifecycle_hooks is None and 'initialLifecycleHooks' in kwargs: + initial_lifecycle_hooks = kwargs['initialLifecycleHooks'] + if instance_refresh is None and 'instanceRefresh' in kwargs: + instance_refresh = kwargs['instanceRefresh'] + if launch_configuration is None and 'launchConfiguration' in kwargs: + launch_configuration = kwargs['launchConfiguration'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if load_balancers is None and 'loadBalancers' in kwargs: + load_balancers = kwargs['loadBalancers'] + if max_instance_lifetime is None and 'maxInstanceLifetime' in kwargs: + max_instance_lifetime = kwargs['maxInstanceLifetime'] + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if metrics_granularity is None and 'metricsGranularity' in kwargs: + metrics_granularity = kwargs['metricsGranularity'] + if min_elb_capacity is None and 'minElbCapacity' in kwargs: + min_elb_capacity = kwargs['minElbCapacity'] + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if mixed_instances_policy is None and 'mixedInstancesPolicy' in kwargs: + mixed_instances_policy = kwargs['mixedInstancesPolicy'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if predicted_capacity is None and 'predictedCapacity' in kwargs: + predicted_capacity = kwargs['predictedCapacity'] + if protect_from_scale_in is None and 'protectFromScaleIn' in kwargs: + protect_from_scale_in = kwargs['protectFromScaleIn'] + if service_linked_role_arn is None and 'serviceLinkedRoleArn' in kwargs: + service_linked_role_arn = kwargs['serviceLinkedRoleArn'] + if suspended_processes is None and 'suspendedProcesses' in kwargs: + suspended_processes = kwargs['suspendedProcesses'] + if target_group_arns is None and 'targetGroupArns' in kwargs: + target_group_arns = kwargs['targetGroupArns'] + if termination_policies is None and 'terminationPolicies' in kwargs: + termination_policies = kwargs['terminationPolicies'] + if traffic_sources is None and 'trafficSources' in kwargs: + traffic_sources = kwargs['trafficSources'] + if vpc_zone_identifiers is None and 'vpcZoneIdentifiers' in kwargs: + vpc_zone_identifiers = kwargs['vpcZoneIdentifiers'] + if wait_for_capacity_timeout is None and 'waitForCapacityTimeout' in kwargs: + wait_for_capacity_timeout = kwargs['waitForCapacityTimeout'] + if wait_for_elb_capacity is None and 'waitForElbCapacity' in kwargs: + wait_for_elb_capacity = kwargs['waitForElbCapacity'] + if warm_pool is None and 'warmPool' in kwargs: + warm_pool = kwargs['warmPool'] + if warm_pool_size is None and 'warmPoolSize' in kwargs: + warm_pool_size = kwargs['warmPoolSize'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if capacity_rebalance is not None: - pulumi.set(__self__, "capacity_rebalance", capacity_rebalance) + _setter("capacity_rebalance", capacity_rebalance) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if default_cooldown is not None: - pulumi.set(__self__, "default_cooldown", default_cooldown) + _setter("default_cooldown", default_cooldown) if default_instance_warmup is not None: - pulumi.set(__self__, "default_instance_warmup", default_instance_warmup) + _setter("default_instance_warmup", default_instance_warmup) if desired_capacity is not None: - pulumi.set(__self__, "desired_capacity", desired_capacity) + _setter("desired_capacity", desired_capacity) if desired_capacity_type is not None: - pulumi.set(__self__, "desired_capacity_type", desired_capacity_type) + _setter("desired_capacity_type", desired_capacity_type) if enabled_metrics is not None: - pulumi.set(__self__, "enabled_metrics", enabled_metrics) + _setter("enabled_metrics", enabled_metrics) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if force_delete_warm_pool is not None: - pulumi.set(__self__, "force_delete_warm_pool", force_delete_warm_pool) + _setter("force_delete_warm_pool", force_delete_warm_pool) if health_check_grace_period is not None: - pulumi.set(__self__, "health_check_grace_period", health_check_grace_period) + _setter("health_check_grace_period", health_check_grace_period) if health_check_type is not None: - pulumi.set(__self__, "health_check_type", health_check_type) + _setter("health_check_type", health_check_type) if ignore_failed_scaling_activities is not None: - pulumi.set(__self__, "ignore_failed_scaling_activities", ignore_failed_scaling_activities) + _setter("ignore_failed_scaling_activities", ignore_failed_scaling_activities) if initial_lifecycle_hooks is not None: - pulumi.set(__self__, "initial_lifecycle_hooks", initial_lifecycle_hooks) + _setter("initial_lifecycle_hooks", initial_lifecycle_hooks) if instance_refresh is not None: - pulumi.set(__self__, "instance_refresh", instance_refresh) + _setter("instance_refresh", instance_refresh) if launch_configuration is not None: - pulumi.set(__self__, "launch_configuration", launch_configuration) + _setter("launch_configuration", launch_configuration) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) + _setter("load_balancers", load_balancers) if max_instance_lifetime is not None: - pulumi.set(__self__, "max_instance_lifetime", max_instance_lifetime) + _setter("max_instance_lifetime", max_instance_lifetime) if max_size is not None: - pulumi.set(__self__, "max_size", max_size) + _setter("max_size", max_size) if metrics_granularity is not None: - pulumi.set(__self__, "metrics_granularity", metrics_granularity) + _setter("metrics_granularity", metrics_granularity) if min_elb_capacity is not None: - pulumi.set(__self__, "min_elb_capacity", min_elb_capacity) + _setter("min_elb_capacity", min_elb_capacity) if min_size is not None: - pulumi.set(__self__, "min_size", min_size) + _setter("min_size", min_size) if mixed_instances_policy is not None: - pulumi.set(__self__, "mixed_instances_policy", mixed_instances_policy) + _setter("mixed_instances_policy", mixed_instances_policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if predicted_capacity is not None: - pulumi.set(__self__, "predicted_capacity", predicted_capacity) + _setter("predicted_capacity", predicted_capacity) if protect_from_scale_in is not None: - pulumi.set(__self__, "protect_from_scale_in", protect_from_scale_in) + _setter("protect_from_scale_in", protect_from_scale_in) if service_linked_role_arn is not None: - pulumi.set(__self__, "service_linked_role_arn", service_linked_role_arn) + _setter("service_linked_role_arn", service_linked_role_arn) if suspended_processes is not None: - pulumi.set(__self__, "suspended_processes", suspended_processes) + _setter("suspended_processes", suspended_processes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_group_arns is not None: - pulumi.set(__self__, "target_group_arns", target_group_arns) + _setter("target_group_arns", target_group_arns) if termination_policies is not None: - pulumi.set(__self__, "termination_policies", termination_policies) + _setter("termination_policies", termination_policies) if traffic_sources is not None: - pulumi.set(__self__, "traffic_sources", traffic_sources) + _setter("traffic_sources", traffic_sources) if vpc_zone_identifiers is not None: - pulumi.set(__self__, "vpc_zone_identifiers", vpc_zone_identifiers) + _setter("vpc_zone_identifiers", vpc_zone_identifiers) if wait_for_capacity_timeout is not None: - pulumi.set(__self__, "wait_for_capacity_timeout", wait_for_capacity_timeout) + _setter("wait_for_capacity_timeout", wait_for_capacity_timeout) if wait_for_elb_capacity is not None: - pulumi.set(__self__, "wait_for_elb_capacity", wait_for_elb_capacity) + _setter("wait_for_elb_capacity", wait_for_elb_capacity) if warm_pool is not None: - pulumi.set(__self__, "warm_pool", warm_pool) + _setter("warm_pool", warm_pool) if warm_pool_size is not None: - pulumi.set(__self__, "warm_pool_size", warm_pool_size) + _setter("warm_pool_size", warm_pool_size) @property @pulumi.getter @@ -2174,6 +2498,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -2240,8 +2568,10 @@ def _internal_init(__self__, __props__.__dict__["health_check_type"] = health_check_type __props__.__dict__["ignore_failed_scaling_activities"] = ignore_failed_scaling_activities __props__.__dict__["initial_lifecycle_hooks"] = initial_lifecycle_hooks + instance_refresh = _utilities.configure(instance_refresh, GroupInstanceRefreshArgs, True) __props__.__dict__["instance_refresh"] = instance_refresh __props__.__dict__["launch_configuration"] = launch_configuration + launch_template = _utilities.configure(launch_template, GroupLaunchTemplateArgs, True) __props__.__dict__["launch_template"] = launch_template __props__.__dict__["load_balancers"] = load_balancers __props__.__dict__["max_instance_lifetime"] = max_instance_lifetime @@ -2253,6 +2583,7 @@ def _internal_init(__self__, if min_size is None and not opts.urn: raise TypeError("Missing required property 'min_size'") __props__.__dict__["min_size"] = min_size + mixed_instances_policy = _utilities.configure(mixed_instances_policy, GroupMixedInstancesPolicyArgs, True) __props__.__dict__["mixed_instances_policy"] = mixed_instances_policy __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix @@ -2267,6 +2598,7 @@ def _internal_init(__self__, __props__.__dict__["vpc_zone_identifiers"] = vpc_zone_identifiers __props__.__dict__["wait_for_capacity_timeout"] = wait_for_capacity_timeout __props__.__dict__["wait_for_elb_capacity"] = wait_for_elb_capacity + warm_pool = _utilities.configure(warm_pool, GroupWarmPoolArgs, True) __props__.__dict__["warm_pool"] = warm_pool __props__.__dict__["arn"] = None __props__.__dict__["predicted_capacity"] = None diff --git a/sdk/python/pulumi_aws/autoscaling/lifecycle_hook.py b/sdk/python/pulumi_aws/autoscaling/lifecycle_hook.py index b872fea0a23..d08544b6b20 100644 --- a/sdk/python/pulumi_aws/autoscaling/lifecycle_hook.py +++ b/sdk/python/pulumi_aws/autoscaling/lifecycle_hook.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LifecycleHookArgs', 'LifecycleHook'] @@ -33,20 +33,63 @@ def __init__(__self__, *, :param pulumi.Input[str] notification_target_arn: ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic. :param pulumi.Input[str] role_arn: ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. """ - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) - pulumi.set(__self__, "lifecycle_transition", lifecycle_transition) + LifecycleHookArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + lifecycle_transition=lifecycle_transition, + default_result=default_result, + heartbeat_timeout=heartbeat_timeout, + name=name, + notification_metadata=notification_metadata, + notification_target_arn=notification_target_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + lifecycle_transition: Optional[pulumi.Input[str]] = None, + default_result: Optional[pulumi.Input[str]] = None, + heartbeat_timeout: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_metadata: Optional[pulumi.Input[str]] = None, + notification_target_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if autoscaling_group_name is None: + raise TypeError("Missing 'autoscaling_group_name' argument") + if lifecycle_transition is None and 'lifecycleTransition' in kwargs: + lifecycle_transition = kwargs['lifecycleTransition'] + if lifecycle_transition is None: + raise TypeError("Missing 'lifecycle_transition' argument") + if default_result is None and 'defaultResult' in kwargs: + default_result = kwargs['defaultResult'] + if heartbeat_timeout is None and 'heartbeatTimeout' in kwargs: + heartbeat_timeout = kwargs['heartbeatTimeout'] + if notification_metadata is None and 'notificationMetadata' in kwargs: + notification_metadata = kwargs['notificationMetadata'] + if notification_target_arn is None and 'notificationTargetArn' in kwargs: + notification_target_arn = kwargs['notificationTargetArn'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("autoscaling_group_name", autoscaling_group_name) + _setter("lifecycle_transition", lifecycle_transition) if default_result is not None: - pulumi.set(__self__, "default_result", default_result) + _setter("default_result", default_result) if heartbeat_timeout is not None: - pulumi.set(__self__, "heartbeat_timeout", heartbeat_timeout) + _setter("heartbeat_timeout", heartbeat_timeout) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_metadata is not None: - pulumi.set(__self__, "notification_metadata", notification_metadata) + _setter("notification_metadata", notification_metadata) if notification_target_arn is not None: - pulumi.set(__self__, "notification_target_arn", notification_target_arn) + _setter("notification_target_arn", notification_target_arn) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="autoscalingGroupName") @@ -167,22 +210,61 @@ def __init__(__self__, *, :param pulumi.Input[str] notification_target_arn: ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic. :param pulumi.Input[str] role_arn: ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. """ + _LifecycleHookState._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + default_result=default_result, + heartbeat_timeout=heartbeat_timeout, + lifecycle_transition=lifecycle_transition, + name=name, + notification_metadata=notification_metadata, + notification_target_arn=notification_target_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + default_result: Optional[pulumi.Input[str]] = None, + heartbeat_timeout: Optional[pulumi.Input[int]] = None, + lifecycle_transition: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_metadata: Optional[pulumi.Input[str]] = None, + notification_target_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if default_result is None and 'defaultResult' in kwargs: + default_result = kwargs['defaultResult'] + if heartbeat_timeout is None and 'heartbeatTimeout' in kwargs: + heartbeat_timeout = kwargs['heartbeatTimeout'] + if lifecycle_transition is None and 'lifecycleTransition' in kwargs: + lifecycle_transition = kwargs['lifecycleTransition'] + if notification_metadata is None and 'notificationMetadata' in kwargs: + notification_metadata = kwargs['notificationMetadata'] + if notification_target_arn is None and 'notificationTargetArn' in kwargs: + notification_target_arn = kwargs['notificationTargetArn'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if autoscaling_group_name is not None: - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) + _setter("autoscaling_group_name", autoscaling_group_name) if default_result is not None: - pulumi.set(__self__, "default_result", default_result) + _setter("default_result", default_result) if heartbeat_timeout is not None: - pulumi.set(__self__, "heartbeat_timeout", heartbeat_timeout) + _setter("heartbeat_timeout", heartbeat_timeout) if lifecycle_transition is not None: - pulumi.set(__self__, "lifecycle_transition", lifecycle_transition) + _setter("lifecycle_transition", lifecycle_transition) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_metadata is not None: - pulumi.set(__self__, "notification_metadata", notification_metadata) + _setter("notification_metadata", notification_metadata) if notification_target_arn is not None: - pulumi.set(__self__, "notification_target_arn", notification_target_arn) + _setter("notification_target_arn", notification_target_arn) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="autoscalingGroupName") @@ -424,6 +506,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LifecycleHookArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/autoscaling/notification.py b/sdk/python/pulumi_aws/autoscaling/notification.py index 63404a0e493..bc4853a08b0 100644 --- a/sdk/python/pulumi_aws/autoscaling/notification.py +++ b/sdk/python/pulumi_aws/autoscaling/notification.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NotificationArgs', 'Notification'] @@ -24,9 +24,34 @@ def __init__(__self__, *, notifications. Acceptable values are documented [in the AWS documentation here](https://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_NotificationConfiguration.html) :param pulumi.Input[str] topic_arn: Topic ARN for notifications to be sent through """ - pulumi.set(__self__, "group_names", group_names) - pulumi.set(__self__, "notifications", notifications) - pulumi.set(__self__, "topic_arn", topic_arn) + NotificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_names=group_names, + notifications=notifications, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + notifications: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_names is None and 'groupNames' in kwargs: + group_names = kwargs['groupNames'] + if group_names is None: + raise TypeError("Missing 'group_names' argument") + if notifications is None: + raise TypeError("Missing 'notifications' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + + _setter("group_names", group_names) + _setter("notifications", notifications) + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="groupNames") @@ -79,12 +104,31 @@ def __init__(__self__, *, notifications. Acceptable values are documented [in the AWS documentation here](https://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_NotificationConfiguration.html) :param pulumi.Input[str] topic_arn: Topic ARN for notifications to be sent through """ + _NotificationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_names=group_names, + notifications=notifications, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + notifications: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_names is None and 'groupNames' in kwargs: + group_names = kwargs['groupNames'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if group_names is not None: - pulumi.set(__self__, "group_names", group_names) + _setter("group_names", group_names) if notifications is not None: - pulumi.set(__self__, "notifications", notifications) + _setter("notifications", notifications) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="groupNames") @@ -222,6 +266,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NotificationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/autoscaling/outputs.py b/sdk/python/pulumi_aws/autoscaling/outputs.py index 5d9e2c7160c..f1cd13a789b 100644 --- a/sdk/python/pulumi_aws/autoscaling/outputs.py +++ b/sdk/python/pulumi_aws/autoscaling/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -131,18 +131,57 @@ def __init__(__self__, *, """ :param str name: Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with `name_prefix`. """ - pulumi.set(__self__, "lifecycle_transition", lifecycle_transition) - pulumi.set(__self__, "name", name) + GroupInitialLifecycleHook._configure( + lambda key, value: pulumi.set(__self__, key, value), + lifecycle_transition=lifecycle_transition, + name=name, + default_result=default_result, + heartbeat_timeout=heartbeat_timeout, + notification_metadata=notification_metadata, + notification_target_arn=notification_target_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lifecycle_transition: Optional[str] = None, + name: Optional[str] = None, + default_result: Optional[str] = None, + heartbeat_timeout: Optional[int] = None, + notification_metadata: Optional[str] = None, + notification_target_arn: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lifecycle_transition is None and 'lifecycleTransition' in kwargs: + lifecycle_transition = kwargs['lifecycleTransition'] + if lifecycle_transition is None: + raise TypeError("Missing 'lifecycle_transition' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if default_result is None and 'defaultResult' in kwargs: + default_result = kwargs['defaultResult'] + if heartbeat_timeout is None and 'heartbeatTimeout' in kwargs: + heartbeat_timeout = kwargs['heartbeatTimeout'] + if notification_metadata is None and 'notificationMetadata' in kwargs: + notification_metadata = kwargs['notificationMetadata'] + if notification_target_arn is None and 'notificationTargetArn' in kwargs: + notification_target_arn = kwargs['notificationTargetArn'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("lifecycle_transition", lifecycle_transition) + _setter("name", name) if default_result is not None: - pulumi.set(__self__, "default_result", default_result) + _setter("default_result", default_result) if heartbeat_timeout is not None: - pulumi.set(__self__, "heartbeat_timeout", heartbeat_timeout) + _setter("heartbeat_timeout", heartbeat_timeout) if notification_metadata is not None: - pulumi.set(__self__, "notification_metadata", notification_metadata) + _setter("notification_metadata", notification_metadata) if notification_target_arn is not None: - pulumi.set(__self__, "notification_target_arn", notification_target_arn) + _setter("notification_target_arn", notification_target_arn) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="lifecycleTransition") @@ -202,11 +241,28 @@ def __init__(__self__, *, > **NOTE:** Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete. """ - pulumi.set(__self__, "strategy", strategy) + GroupInstanceRefresh._configure( + lambda key, value: pulumi.set(__self__, key, value), + strategy=strategy, + preferences=preferences, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + strategy: Optional[str] = None, + preferences: Optional['outputs.GroupInstanceRefreshPreferences'] = None, + triggers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if strategy is None: + raise TypeError("Missing 'strategy' argument") + + _setter("strategy", strategy) if preferences is not None: - pulumi.set(__self__, "preferences", preferences) + _setter("preferences", preferences) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter @@ -293,22 +349,63 @@ def __init__(__self__, *, :param bool skip_matching: Replace instances that already have your desired configuration. Defaults to `false`. :param str standby_instances: Behavior when encountering instances in the `Standby` state in are found. Available behaviors are `Terminate`, `Ignore`, and `Wait`. Default is `Ignore`. """ + GroupInstanceRefreshPreferences._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_rollback=auto_rollback, + checkpoint_delay=checkpoint_delay, + checkpoint_percentages=checkpoint_percentages, + instance_warmup=instance_warmup, + min_healthy_percentage=min_healthy_percentage, + scale_in_protected_instances=scale_in_protected_instances, + skip_matching=skip_matching, + standby_instances=standby_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_rollback: Optional[bool] = None, + checkpoint_delay: Optional[str] = None, + checkpoint_percentages: Optional[Sequence[int]] = None, + instance_warmup: Optional[str] = None, + min_healthy_percentage: Optional[int] = None, + scale_in_protected_instances: Optional[str] = None, + skip_matching: Optional[bool] = None, + standby_instances: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_rollback is None and 'autoRollback' in kwargs: + auto_rollback = kwargs['autoRollback'] + if checkpoint_delay is None and 'checkpointDelay' in kwargs: + checkpoint_delay = kwargs['checkpointDelay'] + if checkpoint_percentages is None and 'checkpointPercentages' in kwargs: + checkpoint_percentages = kwargs['checkpointPercentages'] + if instance_warmup is None and 'instanceWarmup' in kwargs: + instance_warmup = kwargs['instanceWarmup'] + if min_healthy_percentage is None and 'minHealthyPercentage' in kwargs: + min_healthy_percentage = kwargs['minHealthyPercentage'] + if scale_in_protected_instances is None and 'scaleInProtectedInstances' in kwargs: + scale_in_protected_instances = kwargs['scaleInProtectedInstances'] + if skip_matching is None and 'skipMatching' in kwargs: + skip_matching = kwargs['skipMatching'] + if standby_instances is None and 'standbyInstances' in kwargs: + standby_instances = kwargs['standbyInstances'] + if auto_rollback is not None: - pulumi.set(__self__, "auto_rollback", auto_rollback) + _setter("auto_rollback", auto_rollback) if checkpoint_delay is not None: - pulumi.set(__self__, "checkpoint_delay", checkpoint_delay) + _setter("checkpoint_delay", checkpoint_delay) if checkpoint_percentages is not None: - pulumi.set(__self__, "checkpoint_percentages", checkpoint_percentages) + _setter("checkpoint_percentages", checkpoint_percentages) if instance_warmup is not None: - pulumi.set(__self__, "instance_warmup", instance_warmup) + _setter("instance_warmup", instance_warmup) if min_healthy_percentage is not None: - pulumi.set(__self__, "min_healthy_percentage", min_healthy_percentage) + _setter("min_healthy_percentage", min_healthy_percentage) if scale_in_protected_instances is not None: - pulumi.set(__self__, "scale_in_protected_instances", scale_in_protected_instances) + _setter("scale_in_protected_instances", scale_in_protected_instances) if skip_matching is not None: - pulumi.set(__self__, "skip_matching", skip_matching) + _setter("skip_matching", skip_matching) if standby_instances is not None: - pulumi.set(__self__, "standby_instances", standby_instances) + _setter("standby_instances", standby_instances) @property @pulumi.getter(name="autoRollback") @@ -386,12 +483,27 @@ def __init__(__self__, *, :param str name: Name of the launch template. Conflicts with `id`. :param str version: Template version. Can be version number, `$Latest`, or `$Default`. (Default: `$Default`). """ + GroupLaunchTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -446,9 +558,28 @@ def __init__(__self__, *, :param 'GroupMixedInstancesPolicyLaunchTemplateArgs' launch_template: Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below. :param 'GroupMixedInstancesPolicyInstancesDistributionArgs' instances_distribution: Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below. """ - pulumi.set(__self__, "launch_template", launch_template) + GroupMixedInstancesPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template=launch_template, + instances_distribution=instances_distribution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplate'] = None, + instances_distribution: Optional['outputs.GroupMixedInstancesPolicyInstancesDistribution'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if launch_template is None: + raise TypeError("Missing 'launch_template' argument") + if instances_distribution is None and 'instancesDistribution' in kwargs: + instances_distribution = kwargs['instancesDistribution'] + + _setter("launch_template", launch_template) if instances_distribution is not None: - pulumi.set(__self__, "instances_distribution", instances_distribution) + _setter("instances_distribution", instances_distribution) @property @pulumi.getter(name="launchTemplate") @@ -511,18 +642,51 @@ def __init__(__self__, *, :param int spot_instance_pools: Number of Spot pools per availability zone to allocate capacity. EC2 Auto Scaling selects the cheapest Spot pools and evenly allocates Spot capacity across the number of Spot pools that you specify. Only available with `spot_allocation_strategy` set to `lowest-price`. Otherwise it must be set to `0`, if it has been defined before. Default: `2`. :param str spot_max_price: Maximum price per unit hour that the user is willing to pay for the Spot instances. Default: an empty string which means the on-demand price. """ + GroupMixedInstancesPolicyInstancesDistribution._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_demand_allocation_strategy=on_demand_allocation_strategy, + on_demand_base_capacity=on_demand_base_capacity, + on_demand_percentage_above_base_capacity=on_demand_percentage_above_base_capacity, + spot_allocation_strategy=spot_allocation_strategy, + spot_instance_pools=spot_instance_pools, + spot_max_price=spot_max_price, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_demand_allocation_strategy: Optional[str] = None, + on_demand_base_capacity: Optional[int] = None, + on_demand_percentage_above_base_capacity: Optional[int] = None, + spot_allocation_strategy: Optional[str] = None, + spot_instance_pools: Optional[int] = None, + spot_max_price: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_demand_allocation_strategy is None and 'onDemandAllocationStrategy' in kwargs: + on_demand_allocation_strategy = kwargs['onDemandAllocationStrategy'] + if on_demand_base_capacity is None and 'onDemandBaseCapacity' in kwargs: + on_demand_base_capacity = kwargs['onDemandBaseCapacity'] + if on_demand_percentage_above_base_capacity is None and 'onDemandPercentageAboveBaseCapacity' in kwargs: + on_demand_percentage_above_base_capacity = kwargs['onDemandPercentageAboveBaseCapacity'] + if spot_allocation_strategy is None and 'spotAllocationStrategy' in kwargs: + spot_allocation_strategy = kwargs['spotAllocationStrategy'] + if spot_instance_pools is None and 'spotInstancePools' in kwargs: + spot_instance_pools = kwargs['spotInstancePools'] + if spot_max_price is None and 'spotMaxPrice' in kwargs: + spot_max_price = kwargs['spotMaxPrice'] + if on_demand_allocation_strategy is not None: - pulumi.set(__self__, "on_demand_allocation_strategy", on_demand_allocation_strategy) + _setter("on_demand_allocation_strategy", on_demand_allocation_strategy) if on_demand_base_capacity is not None: - pulumi.set(__self__, "on_demand_base_capacity", on_demand_base_capacity) + _setter("on_demand_base_capacity", on_demand_base_capacity) if on_demand_percentage_above_base_capacity is not None: - pulumi.set(__self__, "on_demand_percentage_above_base_capacity", on_demand_percentage_above_base_capacity) + _setter("on_demand_percentage_above_base_capacity", on_demand_percentage_above_base_capacity) if spot_allocation_strategy is not None: - pulumi.set(__self__, "spot_allocation_strategy", spot_allocation_strategy) + _setter("spot_allocation_strategy", spot_allocation_strategy) if spot_instance_pools is not None: - pulumi.set(__self__, "spot_instance_pools", spot_instance_pools) + _setter("spot_instance_pools", spot_instance_pools) if spot_max_price is not None: - pulumi.set(__self__, "spot_max_price", spot_max_price) + _setter("spot_max_price", spot_max_price) @property @pulumi.getter(name="onDemandAllocationStrategy") @@ -596,18 +760,35 @@ def __init__(__self__, *, launch_template_specification: 'outputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification', overrides: Optional[Sequence['outputs.GroupMixedInstancesPolicyLaunchTemplateOverride']] = None): """ - :param 'GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs' launch_template_specification: Nested argument defines the Launch Template. Defined below. + :param 'GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs' launch_template_specification: Override the instance launch template specification in the Launch Template. :param Sequence['GroupMixedInstancesPolicyLaunchTemplateOverrideArgs'] overrides: List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below. """ - pulumi.set(__self__, "launch_template_specification", launch_template_specification) + GroupMixedInstancesPolicyLaunchTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_specification=launch_template_specification, + overrides=overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_specification: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification'] = None, + overrides: Optional[Sequence['outputs.GroupMixedInstancesPolicyLaunchTemplateOverride']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_specification is None and 'launchTemplateSpecification' in kwargs: + launch_template_specification = kwargs['launchTemplateSpecification'] + if launch_template_specification is None: + raise TypeError("Missing 'launch_template_specification' argument") + + _setter("launch_template_specification", launch_template_specification) if overrides is not None: - pulumi.set(__self__, "overrides", overrides) + _setter("overrides", overrides) @property @pulumi.getter(name="launchTemplateSpecification") def launch_template_specification(self) -> 'outputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification': """ - Nested argument defines the Launch Template. Defined below. + Override the instance launch template specification in the Launch Template. """ return pulumi.get(self, "launch_template_specification") @@ -650,12 +831,31 @@ def __init__(__self__, *, :param str launch_template_name: Name of the launch template. Conflicts with `launch_template_id`. :param str version: Template version. Can be version number, `$Latest`, or `$Default`. (Default: `$Default`). """ + GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[str] = None, + launch_template_name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="launchTemplateId") @@ -715,17 +915,42 @@ def __init__(__self__, *, """ :param 'GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs' instance_requirements: Override the instance type in the Launch Template with instance types that satisfy the requirements. :param str instance_type: Override the instance type in the Launch Template. - :param 'GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs' launch_template_specification: Nested argument defines the Launch Template. Defined below. + :param 'GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs' launch_template_specification: Override the instance launch template specification in the Launch Template. :param str weighted_capacity: Number of capacity units, which gives the instance type a proportional weight to other instance types. """ + GroupMixedInstancesPolicyLaunchTemplateOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_requirements=instance_requirements, + instance_type=instance_type, + launch_template_specification=launch_template_specification, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_requirements: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements'] = None, + instance_type: Optional[str] = None, + launch_template_specification: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification'] = None, + weighted_capacity: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_requirements is None and 'instanceRequirements' in kwargs: + instance_requirements = kwargs['instanceRequirements'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if launch_template_specification is None and 'launchTemplateSpecification' in kwargs: + launch_template_specification = kwargs['launchTemplateSpecification'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + if instance_requirements is not None: - pulumi.set(__self__, "instance_requirements", instance_requirements) + _setter("instance_requirements", instance_requirements) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if launch_template_specification is not None: - pulumi.set(__self__, "launch_template_specification", launch_template_specification) + _setter("launch_template_specification", launch_template_specification) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceRequirements") @@ -747,7 +972,7 @@ def instance_type(self) -> Optional[str]: @pulumi.getter(name="launchTemplateSpecification") def launch_template_specification(self) -> Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification']: """ - Nested argument defines the Launch Template. Defined below. + Override the instance launch template specification in the Launch Template. """ return pulumi.get(self, "launch_template_specification") @@ -906,52 +1131,153 @@ def __init__(__self__, *, :param 'GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs' total_local_storage_gb: Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum. :param 'GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs' vcpu_count: Block describing the minimum and maximum number of vCPUs. Default is no maximum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_count=accelerator_count, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mib=accelerator_total_memory_mib, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpu=memory_gib_per_vcpu, + memory_mib=memory_mib, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_count=network_interface_count, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gb=total_local_storage_gb, + vcpu_count=vcpu_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_count: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount'] = None, + accelerator_manufacturers: Optional[Sequence[str]] = None, + accelerator_names: Optional[Sequence[str]] = None, + accelerator_total_memory_mib: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib'] = None, + accelerator_types: Optional[Sequence[str]] = None, + allowed_instance_types: Optional[Sequence[str]] = None, + bare_metal: Optional[str] = None, + baseline_ebs_bandwidth_mbps: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps'] = None, + burstable_performance: Optional[str] = None, + cpu_manufacturers: Optional[Sequence[str]] = None, + excluded_instance_types: Optional[Sequence[str]] = None, + instance_generations: Optional[Sequence[str]] = None, + local_storage: Optional[str] = None, + local_storage_types: Optional[Sequence[str]] = None, + memory_gib_per_vcpu: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu'] = None, + memory_mib: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib'] = None, + network_bandwidth_gbps: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps'] = None, + network_interface_count: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount'] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[int] = None, + require_hibernate_support: Optional[bool] = None, + spot_max_price_percentage_over_lowest_price: Optional[int] = None, + total_local_storage_gb: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb'] = None, + vcpu_count: Optional['outputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_count is None and 'acceleratorCount' in kwargs: + accelerator_count = kwargs['acceleratorCount'] + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_total_memory_mib is None and 'acceleratorTotalMemoryMib' in kwargs: + accelerator_total_memory_mib = kwargs['acceleratorTotalMemoryMib'] + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if memory_gib_per_vcpu is None and 'memoryGibPerVcpu' in kwargs: + memory_gib_per_vcpu = kwargs['memoryGibPerVcpu'] + if memory_mib is None and 'memoryMib' in kwargs: + memory_mib = kwargs['memoryMib'] + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_interface_count is None and 'networkInterfaceCount' in kwargs: + network_interface_count = kwargs['networkInterfaceCount'] + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if total_local_storage_gb is None and 'totalLocalStorageGb' in kwargs: + total_local_storage_gb = kwargs['totalLocalStorageGb'] + if vcpu_count is None and 'vcpuCount' in kwargs: + vcpu_count = kwargs['vcpuCount'] + if accelerator_count is not None: - pulumi.set(__self__, "accelerator_count", accelerator_count) + _setter("accelerator_count", accelerator_count) if accelerator_manufacturers is not None: - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_manufacturers", accelerator_manufacturers) if accelerator_names is not None: - pulumi.set(__self__, "accelerator_names", accelerator_names) + _setter("accelerator_names", accelerator_names) if accelerator_total_memory_mib is not None: - pulumi.set(__self__, "accelerator_total_memory_mib", accelerator_total_memory_mib) + _setter("accelerator_total_memory_mib", accelerator_total_memory_mib) if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if allowed_instance_types is not None: - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + _setter("allowed_instance_types", allowed_instance_types) if bare_metal is not None: - pulumi.set(__self__, "bare_metal", bare_metal) + _setter("bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) if burstable_performance is not None: - pulumi.set(__self__, "burstable_performance", burstable_performance) + _setter("burstable_performance", burstable_performance) if cpu_manufacturers is not None: - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) + _setter("cpu_manufacturers", cpu_manufacturers) if excluded_instance_types is not None: - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + _setter("excluded_instance_types", excluded_instance_types) if instance_generations is not None: - pulumi.set(__self__, "instance_generations", instance_generations) + _setter("instance_generations", instance_generations) if local_storage is not None: - pulumi.set(__self__, "local_storage", local_storage) + _setter("local_storage", local_storage) if local_storage_types is not None: - pulumi.set(__self__, "local_storage_types", local_storage_types) + _setter("local_storage_types", local_storage_types) if memory_gib_per_vcpu is not None: - pulumi.set(__self__, "memory_gib_per_vcpu", memory_gib_per_vcpu) + _setter("memory_gib_per_vcpu", memory_gib_per_vcpu) if memory_mib is not None: - pulumi.set(__self__, "memory_mib", memory_mib) + _setter("memory_mib", memory_mib) if network_bandwidth_gbps is not None: - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) if network_interface_count is not None: - pulumi.set(__self__, "network_interface_count", network_interface_count) + _setter("network_interface_count", network_interface_count) if on_demand_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) if require_hibernate_support is not None: - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) + _setter("require_hibernate_support", require_hibernate_support) if spot_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) if total_local_storage_gb is not None: - pulumi.set(__self__, "total_local_storage_gb", total_local_storage_gb) + _setter("total_local_storage_gb", total_local_storage_gb) if vcpu_count is not None: - pulumi.set(__self__, "vcpu_count", vcpu_count) + _setter("vcpu_count", vcpu_count) @property @pulumi.getter(name="acceleratorCount") @@ -1178,19 +1504,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1209,19 +1548,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1240,19 +1592,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1271,19 +1636,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. + :param float max: Maximum. :param float min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1302,19 +1680,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1333,19 +1724,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. + :param float max: Maximum. :param float min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1364,19 +1768,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1395,19 +1812,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. + :param float max: Maximum. :param float min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1426,19 +1856,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -1481,12 +1924,31 @@ def __init__(__self__, *, :param str launch_template_name: Name of the launch template. Conflicts with `launch_template_id`. :param str version: Template version. Can be version number, `$Latest`, or `$Default`. (Default: `$Default`). """ + GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[str] = None, + launch_template_name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="launchTemplateId") @@ -1546,9 +2008,32 @@ def __init__(__self__, *, > **NOTE:** Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the `AmazonECSManaged` tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if the `min_size` was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service. :param str value: Value """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "propagate_at_launch", propagate_at_launch) - pulumi.set(__self__, "value", value) + GroupTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + propagate_at_launch=propagate_at_launch, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + propagate_at_launch: Optional[bool] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if propagate_at_launch is None and 'propagateAtLaunch' in kwargs: + propagate_at_launch = kwargs['propagateAtLaunch'] + if propagate_at_launch is None: + raise TypeError("Missing 'propagate_at_launch' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("propagate_at_launch", propagate_at_launch) + _setter("value", value) @property @pulumi.getter @@ -1593,9 +2078,24 @@ def __init__(__self__, *, `elbv2` if `identifier` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. `vpc-lattice` if `identifier` is the ARN of a VPC Lattice target group. """ - pulumi.set(__self__, "identifier", identifier) + GroupTrafficSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -1654,14 +2154,39 @@ def __init__(__self__, *, :param int min_size: Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified. :param str pool_state: Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated. """ + GroupWarmPool._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_reuse_policy=instance_reuse_policy, + max_group_prepared_capacity=max_group_prepared_capacity, + min_size=min_size, + pool_state=pool_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_reuse_policy: Optional['outputs.GroupWarmPoolInstanceReusePolicy'] = None, + max_group_prepared_capacity: Optional[int] = None, + min_size: Optional[int] = None, + pool_state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_reuse_policy is None and 'instanceReusePolicy' in kwargs: + instance_reuse_policy = kwargs['instanceReusePolicy'] + if max_group_prepared_capacity is None and 'maxGroupPreparedCapacity' in kwargs: + max_group_prepared_capacity = kwargs['maxGroupPreparedCapacity'] + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if pool_state is None and 'poolState' in kwargs: + pool_state = kwargs['poolState'] + if instance_reuse_policy is not None: - pulumi.set(__self__, "instance_reuse_policy", instance_reuse_policy) + _setter("instance_reuse_policy", instance_reuse_policy) if max_group_prepared_capacity is not None: - pulumi.set(__self__, "max_group_prepared_capacity", max_group_prepared_capacity) + _setter("max_group_prepared_capacity", max_group_prepared_capacity) if min_size is not None: - pulumi.set(__self__, "min_size", min_size) + _setter("min_size", min_size) if pool_state is not None: - pulumi.set(__self__, "pool_state", pool_state) + _setter("pool_state", pool_state) @property @pulumi.getter(name="instanceReusePolicy") @@ -1720,8 +2245,21 @@ def __init__(__self__, *, """ :param bool reuse_on_scale_in: Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. """ + GroupWarmPoolInstanceReusePolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + reuse_on_scale_in=reuse_on_scale_in, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reuse_on_scale_in: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reuse_on_scale_in is None and 'reuseOnScaleIn' in kwargs: + reuse_on_scale_in = kwargs['reuseOnScaleIn'] + if reuse_on_scale_in is not None: - pulumi.set(__self__, "reuse_on_scale_in", reuse_on_scale_in) + _setter("reuse_on_scale_in", reuse_on_scale_in) @property @pulumi.getter(name="reuseOnScaleIn") @@ -1770,15 +2308,44 @@ def __init__(__self__, *, :param str mode: Predictive scaling mode. Valid values are `ForecastAndScale` and `ForecastOnly`. Default is `ForecastOnly`. :param str scheduling_buffer_time: Amount of time, in seconds, by which the instance launch time can be advanced. Minimum is `0`. """ - pulumi.set(__self__, "metric_specification", metric_specification) + PolicyPredictiveScalingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_specification=metric_specification, + max_capacity_breach_behavior=max_capacity_breach_behavior, + max_capacity_buffer=max_capacity_buffer, + mode=mode, + scheduling_buffer_time=scheduling_buffer_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_specification: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecification'] = None, + max_capacity_breach_behavior: Optional[str] = None, + max_capacity_buffer: Optional[str] = None, + mode: Optional[str] = None, + scheduling_buffer_time: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_specification is None and 'metricSpecification' in kwargs: + metric_specification = kwargs['metricSpecification'] + if metric_specification is None: + raise TypeError("Missing 'metric_specification' argument") + if max_capacity_breach_behavior is None and 'maxCapacityBreachBehavior' in kwargs: + max_capacity_breach_behavior = kwargs['maxCapacityBreachBehavior'] + if max_capacity_buffer is None and 'maxCapacityBuffer' in kwargs: + max_capacity_buffer = kwargs['maxCapacityBuffer'] + if scheduling_buffer_time is None and 'schedulingBufferTime' in kwargs: + scheduling_buffer_time = kwargs['schedulingBufferTime'] + + _setter("metric_specification", metric_specification) if max_capacity_breach_behavior is not None: - pulumi.set(__self__, "max_capacity_breach_behavior", max_capacity_breach_behavior) + _setter("max_capacity_breach_behavior", max_capacity_breach_behavior) if max_capacity_buffer is not None: - pulumi.set(__self__, "max_capacity_buffer", max_capacity_buffer) + _setter("max_capacity_buffer", max_capacity_buffer) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if scheduling_buffer_time is not None: - pulumi.set(__self__, "scheduling_buffer_time", scheduling_buffer_time) + _setter("scheduling_buffer_time", scheduling_buffer_time) @property @pulumi.getter(name="metricSpecification") @@ -1869,19 +2436,58 @@ def __init__(__self__, *, :param 'PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgs' predefined_metric_pair_specification: Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use. :param 'PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgs' predefined_scaling_metric_specification: Predefined scaling metric specification. """ - pulumi.set(__self__, "target_value", target_value) + PolicyPredictiveScalingConfigurationMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + customized_capacity_metric_specification=customized_capacity_metric_specification, + customized_load_metric_specification=customized_load_metric_specification, + customized_scaling_metric_specification=customized_scaling_metric_specification, + predefined_load_metric_specification=predefined_load_metric_specification, + predefined_metric_pair_specification=predefined_metric_pair_specification, + predefined_scaling_metric_specification=predefined_scaling_metric_specification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[float] = None, + customized_capacity_metric_specification: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecification'] = None, + customized_load_metric_specification: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecification'] = None, + customized_scaling_metric_specification: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecification'] = None, + predefined_load_metric_specification: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecification'] = None, + predefined_metric_pair_specification: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecification'] = None, + predefined_scaling_metric_specification: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecification'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + if customized_capacity_metric_specification is None and 'customizedCapacityMetricSpecification' in kwargs: + customized_capacity_metric_specification = kwargs['customizedCapacityMetricSpecification'] + if customized_load_metric_specification is None and 'customizedLoadMetricSpecification' in kwargs: + customized_load_metric_specification = kwargs['customizedLoadMetricSpecification'] + if customized_scaling_metric_specification is None and 'customizedScalingMetricSpecification' in kwargs: + customized_scaling_metric_specification = kwargs['customizedScalingMetricSpecification'] + if predefined_load_metric_specification is None and 'predefinedLoadMetricSpecification' in kwargs: + predefined_load_metric_specification = kwargs['predefinedLoadMetricSpecification'] + if predefined_metric_pair_specification is None and 'predefinedMetricPairSpecification' in kwargs: + predefined_metric_pair_specification = kwargs['predefinedMetricPairSpecification'] + if predefined_scaling_metric_specification is None and 'predefinedScalingMetricSpecification' in kwargs: + predefined_scaling_metric_specification = kwargs['predefinedScalingMetricSpecification'] + + _setter("target_value", target_value) if customized_capacity_metric_specification is not None: - pulumi.set(__self__, "customized_capacity_metric_specification", customized_capacity_metric_specification) + _setter("customized_capacity_metric_specification", customized_capacity_metric_specification) if customized_load_metric_specification is not None: - pulumi.set(__self__, "customized_load_metric_specification", customized_load_metric_specification) + _setter("customized_load_metric_specification", customized_load_metric_specification) if customized_scaling_metric_specification is not None: - pulumi.set(__self__, "customized_scaling_metric_specification", customized_scaling_metric_specification) + _setter("customized_scaling_metric_specification", customized_scaling_metric_specification) if predefined_load_metric_specification is not None: - pulumi.set(__self__, "predefined_load_metric_specification", predefined_load_metric_specification) + _setter("predefined_load_metric_specification", predefined_load_metric_specification) if predefined_metric_pair_specification is not None: - pulumi.set(__self__, "predefined_metric_pair_specification", predefined_metric_pair_specification) + _setter("predefined_metric_pair_specification", predefined_metric_pair_specification) if predefined_scaling_metric_specification is not None: - pulumi.set(__self__, "predefined_scaling_metric_specification", predefined_scaling_metric_specification) + _setter("predefined_scaling_metric_specification", predefined_scaling_metric_specification) @property @pulumi.getter(name="targetValue") @@ -1964,7 +2570,22 @@ def __init__(__self__, *, """ :param Sequence['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs'] metric_data_queries: List of up to 10 structures that defines custom capacity metric in predictive scaling policy """ - pulumi.set(__self__, "metric_data_queries", metric_data_queries) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_data_queries=metric_data_queries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_data_queries: Optional[Sequence['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQuery']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_data_queries is None and 'metricDataQueries' in kwargs: + metric_data_queries = kwargs['metricDataQueries'] + if metric_data_queries is None: + raise TypeError("Missing 'metric_data_queries' argument") + + _setter("metric_data_queries", metric_data_queries) @property @pulumi.getter(name="metricDataQueries") @@ -2009,15 +2630,40 @@ def __init__(__self__, *, :param 'PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatArgs' metric_stat: Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param bool return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQuery._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + expression: Optional[str] = None, + label: Optional[str] = None, + metric_stat: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStat'] = None, + return_data: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -2071,10 +2717,29 @@ def __init__(__self__, *, :param str stat: Statistic of the metrics to return. :param str unit: Unit of the metrics to return. """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStat._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetric'] = None, + stat: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -2129,10 +2794,31 @@ def __init__(__self__, *, :param str namespace: Namespace of the metric. :param Sequence['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs'] dimensions: Dimensions of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + namespace: Optional[str] = None, + dimensions: Optional[Sequence['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimension']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -2168,8 +2854,25 @@ def __init__(__self__, *, :param str name: Name of the dimension. :param str value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2212,7 +2915,22 @@ def __init__(__self__, *, """ :param Sequence['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs'] metric_data_queries: List of up to 10 structures that defines custom load metric in predictive scaling policy """ - pulumi.set(__self__, "metric_data_queries", metric_data_queries) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_data_queries=metric_data_queries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_data_queries: Optional[Sequence['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQuery']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_data_queries is None and 'metricDataQueries' in kwargs: + metric_data_queries = kwargs['metricDataQueries'] + if metric_data_queries is None: + raise TypeError("Missing 'metric_data_queries' argument") + + _setter("metric_data_queries", metric_data_queries) @property @pulumi.getter(name="metricDataQueries") @@ -2257,15 +2975,40 @@ def __init__(__self__, *, :param 'PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatArgs' metric_stat: Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param bool return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQuery._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + expression: Optional[str] = None, + label: Optional[str] = None, + metric_stat: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStat'] = None, + return_data: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -2319,10 +3062,29 @@ def __init__(__self__, *, :param str stat: Statistic of the metrics to return. :param str unit: Unit of the metrics to return. """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStat._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetric'] = None, + stat: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -2377,10 +3139,31 @@ def __init__(__self__, *, :param str namespace: Namespace of the metric. :param Sequence['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs'] dimensions: Dimensions of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + namespace: Optional[str] = None, + dimensions: Optional[Sequence['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimension']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -2416,8 +3199,25 @@ def __init__(__self__, *, :param str name: Name of the dimension. :param str value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2460,7 +3260,22 @@ def __init__(__self__, *, """ :param Sequence['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs'] metric_data_queries: List of up to 10 structures that defines custom scaling metric in predictive scaling policy """ - pulumi.set(__self__, "metric_data_queries", metric_data_queries) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_data_queries=metric_data_queries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_data_queries: Optional[Sequence['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQuery']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_data_queries is None and 'metricDataQueries' in kwargs: + metric_data_queries = kwargs['metricDataQueries'] + if metric_data_queries is None: + raise TypeError("Missing 'metric_data_queries' argument") + + _setter("metric_data_queries", metric_data_queries) @property @pulumi.getter(name="metricDataQueries") @@ -2505,15 +3320,40 @@ def __init__(__self__, *, :param 'PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs' metric_stat: Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param bool return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQuery._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + expression: Optional[str] = None, + label: Optional[str] = None, + metric_stat: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStat'] = None, + return_data: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -2567,10 +3407,29 @@ def __init__(__self__, *, :param str stat: Statistic of the metrics to return. :param str unit: Unit of the metrics to return. """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStat._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetric'] = None, + stat: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -2625,10 +3484,31 @@ def __init__(__self__, *, :param str namespace: Namespace of the metric. :param Sequence['PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs'] dimensions: Dimensions of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + namespace: Optional[str] = None, + dimensions: Optional[Sequence['outputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimension']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -2664,8 +3544,25 @@ def __init__(__self__, *, :param str name: Name of the dimension. :param str value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2712,9 +3609,28 @@ def __init__(__self__, *, :param str predefined_metric_type: Metric type. Valid values are `ASGTotalCPUUtilization`, `ASGTotalNetworkIn`, `ASGTotalNetworkOut`, or `ALBTargetGroupRequestCount`. :param str resource_label: Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[str] = None, + resource_label: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -2761,9 +3677,28 @@ def __init__(__self__, *, :param str predefined_metric_type: Which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. For example, if the metric type is `ASGCPUUtilization`, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric. Valid values are `ASGCPUUtilization`, `ASGNetworkIn`, `ASGNetworkOut`, or `ALBRequestCount`. :param str resource_label: Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[str] = None, + resource_label: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -2810,9 +3745,28 @@ def __init__(__self__, *, :param str predefined_metric_type: Describes a scaling metric for a predictive scaling policy. Valid values are `ASGAverageCPUUtilization`, `ASGAverageNetworkIn`, `ASGAverageNetworkOut`, or `ALBRequestCountPerTarget`. :param str resource_label: Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[str] = None, + resource_label: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -2874,11 +3828,34 @@ def __init__(__self__, *, The following arguments are only available to "TargetTrackingScaling" type policies: """ - pulumi.set(__self__, "scaling_adjustment", scaling_adjustment) + PolicyStepAdjustment._configure( + lambda key, value: pulumi.set(__self__, key, value), + scaling_adjustment=scaling_adjustment, + metric_interval_lower_bound=metric_interval_lower_bound, + metric_interval_upper_bound=metric_interval_upper_bound, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scaling_adjustment: Optional[int] = None, + metric_interval_lower_bound: Optional[str] = None, + metric_interval_upper_bound: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scaling_adjustment is None and 'scalingAdjustment' in kwargs: + scaling_adjustment = kwargs['scalingAdjustment'] + if scaling_adjustment is None: + raise TypeError("Missing 'scaling_adjustment' argument") + if metric_interval_lower_bound is None and 'metricIntervalLowerBound' in kwargs: + metric_interval_lower_bound = kwargs['metricIntervalLowerBound'] + if metric_interval_upper_bound is None and 'metricIntervalUpperBound' in kwargs: + metric_interval_upper_bound = kwargs['metricIntervalUpperBound'] + + _setter("scaling_adjustment", scaling_adjustment) if metric_interval_lower_bound is not None: - pulumi.set(__self__, "metric_interval_lower_bound", metric_interval_lower_bound) + _setter("metric_interval_lower_bound", metric_interval_lower_bound) if metric_interval_upper_bound is not None: - pulumi.set(__self__, "metric_interval_upper_bound", metric_interval_upper_bound) + _setter("metric_interval_upper_bound", metric_interval_upper_bound) @property @pulumi.getter(name="scalingAdjustment") @@ -2952,13 +3929,40 @@ def __init__(__self__, *, :param bool disable_scale_in: Whether scale in by the target tracking policy is disabled. :param 'PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs' predefined_metric_specification: Predefined metric. Conflicts with `customized_metric_specification`. """ - pulumi.set(__self__, "target_value", target_value) + PolicyTargetTrackingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + customized_metric_specification=customized_metric_specification, + disable_scale_in=disable_scale_in, + predefined_metric_specification=predefined_metric_specification, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[float] = None, + customized_metric_specification: Optional['outputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecification'] = None, + disable_scale_in: Optional[bool] = None, + predefined_metric_specification: Optional['outputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecification'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + if customized_metric_specification is None and 'customizedMetricSpecification' in kwargs: + customized_metric_specification = kwargs['customizedMetricSpecification'] + if disable_scale_in is None and 'disableScaleIn' in kwargs: + disable_scale_in = kwargs['disableScaleIn'] + if predefined_metric_specification is None and 'predefinedMetricSpecification' in kwargs: + predefined_metric_specification = kwargs['predefinedMetricSpecification'] + + _setter("target_value", target_value) if customized_metric_specification is not None: - pulumi.set(__self__, "customized_metric_specification", customized_metric_specification) + _setter("customized_metric_specification", customized_metric_specification) if disable_scale_in is not None: - pulumi.set(__self__, "disable_scale_in", disable_scale_in) + _setter("disable_scale_in", disable_scale_in) if predefined_metric_specification is not None: - pulumi.set(__self__, "predefined_metric_specification", predefined_metric_specification) + _setter("predefined_metric_specification", predefined_metric_specification) @property @pulumi.getter(name="targetValue") @@ -3029,18 +4033,43 @@ def __init__(__self__, *, :param str statistic: Statistic of the metric. :param str unit: Unit of the metric. """ + PolicyTargetTrackingConfigurationCustomizedMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_dimensions=metric_dimensions, + metric_name=metric_name, + metrics=metrics, + namespace=namespace, + statistic=statistic, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_dimensions: Optional[Sequence['outputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimension']] = None, + metric_name: Optional[str] = None, + metrics: Optional[Sequence['outputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetric']] = None, + namespace: Optional[str] = None, + statistic: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_dimensions is None and 'metricDimensions' in kwargs: + metric_dimensions = kwargs['metricDimensions'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_dimensions is not None: - pulumi.set(__self__, "metric_dimensions", metric_dimensions) + _setter("metric_dimensions", metric_dimensions) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if statistic is not None: - pulumi.set(__self__, "statistic", statistic) + _setter("statistic", statistic) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="metricDimensions") @@ -3125,15 +4154,40 @@ def __init__(__self__, *, :param 'PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs' metric_stat: Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either `expression` or `metric_stat`, but not both. :param bool return_data: Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true """ - pulumi.set(__self__, "id", id) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + expression=expression, + label=label, + metric_stat=metric_stat, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + expression: Optional[str] = None, + label: Optional[str] = None, + metric_stat: Optional['outputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStat'] = None, + return_data: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if metric_stat is None and 'metricStat' in kwargs: + metric_stat = kwargs['metricStat'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric_stat is not None: - pulumi.set(__self__, "metric_stat", metric_stat) + _setter("metric_stat", metric_stat) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -3185,8 +4239,25 @@ def __init__(__self__, *, :param str name: Name of the dimension. :param str value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3216,10 +4287,29 @@ def __init__(__self__, *, :param str stat: Statistic of the metrics to return. :param str unit: Unit of the metrics to return. """ - pulumi.set(__self__, "metric", metric) - pulumi.set(__self__, "stat", stat) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStat._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric=metric, + stat=stat, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric: Optional['outputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetric'] = None, + stat: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric is None: + raise TypeError("Missing 'metric' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric", metric) + _setter("stat", stat) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -3274,10 +4364,31 @@ def __init__(__self__, *, :param str namespace: Namespace of the metric. :param Sequence['PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs'] dimensions: Dimensions of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + namespace: Optional[str] = None, + dimensions: Optional[Sequence['outputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) @property @pulumi.getter(name="metricName") @@ -3313,8 +4424,25 @@ def __init__(__self__, *, :param str name: Name of the dimension. :param str value: Value of the dimension. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3361,9 +4489,28 @@ def __init__(__self__, *, :param str predefined_metric_type: Metric type. :param str resource_label: Identifies the resource associated with the metric type. """ - pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + PolicyTargetTrackingConfigurationPredefinedMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_metric_type=predefined_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_metric_type: Optional[str] = None, + resource_label: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_metric_type is None and 'predefinedMetricType' in kwargs: + predefined_metric_type = kwargs['predefinedMetricType'] + if predefined_metric_type is None: + raise TypeError("Missing 'predefined_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_metric_type", predefined_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedMetricType") @@ -3410,9 +4557,32 @@ def __init__(__self__, *, :param bool propagate_at_launch: Whether to propagate the tags to instances launched by the ASG. :param str value: Tag value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "propagate_at_launch", propagate_at_launch) - pulumi.set(__self__, "value", value) + TagTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + propagate_at_launch=propagate_at_launch, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + propagate_at_launch: Optional[bool] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if propagate_at_launch is None and 'propagateAtLaunch' in kwargs: + propagate_at_launch = kwargs['propagateAtLaunch'] + if propagate_at_launch is None: + raise TypeError("Missing 'propagate_at_launch' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("propagate_at_launch", propagate_at_launch) + _setter("value", value) @property @pulumi.getter @@ -3452,8 +4622,25 @@ def __init__(__self__, *, `elbv2` if `identifier` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. `vpc-lattice` if `identifier` is the ARN of a VPC Lattice target group. """ - pulumi.set(__self__, "identifier", identifier) - pulumi.set(__self__, "type", type) + TrafficSourceAttachmentTrafficSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("identifier", identifier) + _setter("type", type) @property @pulumi.getter @@ -3485,8 +4672,25 @@ def __init__(__self__, *, :param str name: Name of the DescribeAutoScalingGroup filter. The recommended values are: `tag-key`, `tag-value`, and `tag:` :param Sequence[str] values: Value of the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAmiIdsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -3516,9 +4720,30 @@ def __init__(__self__, *, :param str name: Specify the exact name of the desired autoscaling group. :param str version: Template version. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "version", version) + GetGroupLaunchTemplateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("id", id) + _setter("name", name) + _setter("version", version) @property @pulumi.getter @@ -3554,8 +4779,29 @@ def __init__(__self__, *, :param Sequence['GetGroupMixedInstancesPolicyInstancesDistributionArgs'] instances_distributions: List of instances distribution objects. :param Sequence['GetGroupMixedInstancesPolicyLaunchTemplateArgs'] launch_templates: List of launch templates along with the overrides. """ - pulumi.set(__self__, "instances_distributions", instances_distributions) - pulumi.set(__self__, "launch_templates", launch_templates) + GetGroupMixedInstancesPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + instances_distributions=instances_distributions, + launch_templates=launch_templates, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instances_distributions: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyInstancesDistributionResult']] = None, + launch_templates: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instances_distributions is None and 'instancesDistributions' in kwargs: + instances_distributions = kwargs['instancesDistributions'] + if instances_distributions is None: + raise TypeError("Missing 'instances_distributions' argument") + if launch_templates is None and 'launchTemplates' in kwargs: + launch_templates = kwargs['launchTemplates'] + if launch_templates is None: + raise TypeError("Missing 'launch_templates' argument") + + _setter("instances_distributions", instances_distributions) + _setter("launch_templates", launch_templates) @property @pulumi.getter(name="instancesDistributions") @@ -3590,12 +4836,57 @@ def __init__(__self__, *, :param int spot_instance_pools: Number of Spot pools per availability zone to allocate capacity. :param str spot_max_price: Maximum price per unit hour that the user is willing to pay for the Spot instances. """ - pulumi.set(__self__, "on_demand_allocation_strategy", on_demand_allocation_strategy) - pulumi.set(__self__, "on_demand_base_capacity", on_demand_base_capacity) - pulumi.set(__self__, "on_demand_percentage_above_base_capacity", on_demand_percentage_above_base_capacity) - pulumi.set(__self__, "spot_allocation_strategy", spot_allocation_strategy) - pulumi.set(__self__, "spot_instance_pools", spot_instance_pools) - pulumi.set(__self__, "spot_max_price", spot_max_price) + GetGroupMixedInstancesPolicyInstancesDistributionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_demand_allocation_strategy=on_demand_allocation_strategy, + on_demand_base_capacity=on_demand_base_capacity, + on_demand_percentage_above_base_capacity=on_demand_percentage_above_base_capacity, + spot_allocation_strategy=spot_allocation_strategy, + spot_instance_pools=spot_instance_pools, + spot_max_price=spot_max_price, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_demand_allocation_strategy: Optional[str] = None, + on_demand_base_capacity: Optional[int] = None, + on_demand_percentage_above_base_capacity: Optional[int] = None, + spot_allocation_strategy: Optional[str] = None, + spot_instance_pools: Optional[int] = None, + spot_max_price: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_demand_allocation_strategy is None and 'onDemandAllocationStrategy' in kwargs: + on_demand_allocation_strategy = kwargs['onDemandAllocationStrategy'] + if on_demand_allocation_strategy is None: + raise TypeError("Missing 'on_demand_allocation_strategy' argument") + if on_demand_base_capacity is None and 'onDemandBaseCapacity' in kwargs: + on_demand_base_capacity = kwargs['onDemandBaseCapacity'] + if on_demand_base_capacity is None: + raise TypeError("Missing 'on_demand_base_capacity' argument") + if on_demand_percentage_above_base_capacity is None and 'onDemandPercentageAboveBaseCapacity' in kwargs: + on_demand_percentage_above_base_capacity = kwargs['onDemandPercentageAboveBaseCapacity'] + if on_demand_percentage_above_base_capacity is None: + raise TypeError("Missing 'on_demand_percentage_above_base_capacity' argument") + if spot_allocation_strategy is None and 'spotAllocationStrategy' in kwargs: + spot_allocation_strategy = kwargs['spotAllocationStrategy'] + if spot_allocation_strategy is None: + raise TypeError("Missing 'spot_allocation_strategy' argument") + if spot_instance_pools is None and 'spotInstancePools' in kwargs: + spot_instance_pools = kwargs['spotInstancePools'] + if spot_instance_pools is None: + raise TypeError("Missing 'spot_instance_pools' argument") + if spot_max_price is None and 'spotMaxPrice' in kwargs: + spot_max_price = kwargs['spotMaxPrice'] + if spot_max_price is None: + raise TypeError("Missing 'spot_max_price' argument") + + _setter("on_demand_allocation_strategy", on_demand_allocation_strategy) + _setter("on_demand_base_capacity", on_demand_base_capacity) + _setter("on_demand_percentage_above_base_capacity", on_demand_percentage_above_base_capacity) + _setter("spot_allocation_strategy", spot_allocation_strategy) + _setter("spot_instance_pools", spot_instance_pools) + _setter("spot_max_price", spot_max_price) @property @pulumi.getter(name="onDemandAllocationStrategy") @@ -3652,8 +4943,27 @@ def __init__(__self__, *, :param Sequence['GetGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs'] launch_template_specifications: List of overriding launch template specification objects. :param Sequence['GetGroupMixedInstancesPolicyLaunchTemplateOverrideArgs'] overrides: List of properties overriding the same properties in the launch template. """ - pulumi.set(__self__, "launch_template_specifications", launch_template_specifications) - pulumi.set(__self__, "overrides", overrides) + GetGroupMixedInstancesPolicyLaunchTemplateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_specifications=launch_template_specifications, + overrides=overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_specifications: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationResult']] = None, + overrides: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_specifications is None and 'launchTemplateSpecifications' in kwargs: + launch_template_specifications = kwargs['launchTemplateSpecifications'] + if launch_template_specifications is None: + raise TypeError("Missing 'launch_template_specifications' argument") + if overrides is None: + raise TypeError("Missing 'overrides' argument") + + _setter("launch_template_specifications", launch_template_specifications) + _setter("overrides", overrides) @property @pulumi.getter(name="launchTemplateSpecifications") @@ -3683,9 +4993,34 @@ def __init__(__self__, *, :param str launch_template_name: Name of the launch template. :param str version: Template version. """ - pulumi.set(__self__, "launch_template_id", launch_template_id) - pulumi.set(__self__, "launch_template_name", launch_template_name) - pulumi.set(__self__, "version", version) + GetGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[str] = None, + launch_template_name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_id is None: + raise TypeError("Missing 'launch_template_id' argument") + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_name is None: + raise TypeError("Missing 'launch_template_name' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("launch_template_id", launch_template_id) + _setter("launch_template_name", launch_template_name) + _setter("version", version) @property @pulumi.getter(name="launchTemplateId") @@ -3726,10 +5061,43 @@ def __init__(__self__, *, :param Sequence['GetGroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs'] launch_template_specifications: List of overriding launch template specification objects. :param str weighted_capacity: Number of capacity units, which gives the instance type a proportional weight to other instance types. """ - pulumi.set(__self__, "instance_requirements", instance_requirements) - pulumi.set(__self__, "instance_type", instance_type) - pulumi.set(__self__, "launch_template_specifications", launch_template_specifications) - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_requirements=instance_requirements, + instance_type=instance_type, + launch_template_specifications=launch_template_specifications, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_requirements: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementResult']] = None, + instance_type: Optional[str] = None, + launch_template_specifications: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationResult']] = None, + weighted_capacity: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_requirements is None and 'instanceRequirements' in kwargs: + instance_requirements = kwargs['instanceRequirements'] + if instance_requirements is None: + raise TypeError("Missing 'instance_requirements' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if launch_template_specifications is None and 'launchTemplateSpecifications' in kwargs: + launch_template_specifications = kwargs['launchTemplateSpecifications'] + if launch_template_specifications is None: + raise TypeError("Missing 'launch_template_specifications' argument") + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + if weighted_capacity is None: + raise TypeError("Missing 'weighted_capacity' argument") + + _setter("instance_requirements", instance_requirements) + _setter("instance_type", instance_type) + _setter("launch_template_specifications", launch_template_specifications) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceRequirements") @@ -3815,29 +5183,176 @@ def __init__(__self__, *, :param Sequence['GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementTotalLocalStorageGbArgs'] total_local_storage_gbs: List of objects describing the minimum and maximum total storage (GB). :param Sequence['GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementVcpuCountArgs'] vcpu_counts: List of objects describing the minimum and maximum number of vCPUs. """ - pulumi.set(__self__, "accelerator_counts", accelerator_counts) - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) - pulumi.set(__self__, "accelerator_names", accelerator_names) - pulumi.set(__self__, "accelerator_total_memory_mibs", accelerator_total_memory_mibs) - pulumi.set(__self__, "accelerator_types", accelerator_types) - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) - pulumi.set(__self__, "bare_metal", bare_metal) - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) - pulumi.set(__self__, "burstable_performance", burstable_performance) - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) - pulumi.set(__self__, "instance_generations", instance_generations) - pulumi.set(__self__, "local_storage", local_storage) - pulumi.set(__self__, "local_storage_types", local_storage_types) - pulumi.set(__self__, "memory_gib_per_vcpus", memory_gib_per_vcpus) - pulumi.set(__self__, "memory_mibs", memory_mibs) - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) - pulumi.set(__self__, "network_interface_counts", network_interface_counts) - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) - pulumi.set(__self__, "total_local_storage_gbs", total_local_storage_gbs) - pulumi.set(__self__, "vcpu_counts", vcpu_counts) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_counts=accelerator_counts, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mibs=accelerator_total_memory_mibs, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpus=memory_gib_per_vcpus, + memory_mibs=memory_mibs, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_counts=network_interface_counts, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gbs=total_local_storage_gbs, + vcpu_counts=vcpu_counts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_counts: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementAcceleratorCountResult']] = None, + accelerator_manufacturers: Optional[Sequence[str]] = None, + accelerator_names: Optional[Sequence[str]] = None, + accelerator_total_memory_mibs: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementAcceleratorTotalMemoryMibResult']] = None, + accelerator_types: Optional[Sequence[str]] = None, + allowed_instance_types: Optional[Sequence[str]] = None, + bare_metal: Optional[str] = None, + baseline_ebs_bandwidth_mbps: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementBaselineEbsBandwidthMbpResult']] = None, + burstable_performance: Optional[str] = None, + cpu_manufacturers: Optional[Sequence[str]] = None, + excluded_instance_types: Optional[Sequence[str]] = None, + instance_generations: Optional[Sequence[str]] = None, + local_storage: Optional[str] = None, + local_storage_types: Optional[Sequence[str]] = None, + memory_gib_per_vcpus: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementMemoryGibPerVcpusResult']] = None, + memory_mibs: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementMemoryMibResult']] = None, + network_bandwidth_gbps: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementNetworkBandwidthGbpResult']] = None, + network_interface_counts: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementNetworkInterfaceCountResult']] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[int] = None, + require_hibernate_support: Optional[bool] = None, + spot_max_price_percentage_over_lowest_price: Optional[int] = None, + total_local_storage_gbs: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementTotalLocalStorageGbResult']] = None, + vcpu_counts: Optional[Sequence['outputs.GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementVcpuCountResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_counts is None and 'acceleratorCounts' in kwargs: + accelerator_counts = kwargs['acceleratorCounts'] + if accelerator_counts is None: + raise TypeError("Missing 'accelerator_counts' argument") + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_manufacturers is None: + raise TypeError("Missing 'accelerator_manufacturers' argument") + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_names is None: + raise TypeError("Missing 'accelerator_names' argument") + if accelerator_total_memory_mibs is None and 'acceleratorTotalMemoryMibs' in kwargs: + accelerator_total_memory_mibs = kwargs['acceleratorTotalMemoryMibs'] + if accelerator_total_memory_mibs is None: + raise TypeError("Missing 'accelerator_total_memory_mibs' argument") + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if accelerator_types is None: + raise TypeError("Missing 'accelerator_types' argument") + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if allowed_instance_types is None: + raise TypeError("Missing 'allowed_instance_types' argument") + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if bare_metal is None: + raise TypeError("Missing 'bare_metal' argument") + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if baseline_ebs_bandwidth_mbps is None: + raise TypeError("Missing 'baseline_ebs_bandwidth_mbps' argument") + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if burstable_performance is None: + raise TypeError("Missing 'burstable_performance' argument") + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if cpu_manufacturers is None: + raise TypeError("Missing 'cpu_manufacturers' argument") + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if excluded_instance_types is None: + raise TypeError("Missing 'excluded_instance_types' argument") + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if instance_generations is None: + raise TypeError("Missing 'instance_generations' argument") + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage is None: + raise TypeError("Missing 'local_storage' argument") + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if local_storage_types is None: + raise TypeError("Missing 'local_storage_types' argument") + if memory_gib_per_vcpus is None and 'memoryGibPerVcpus' in kwargs: + memory_gib_per_vcpus = kwargs['memoryGibPerVcpus'] + if memory_gib_per_vcpus is None: + raise TypeError("Missing 'memory_gib_per_vcpus' argument") + if memory_mibs is None and 'memoryMibs' in kwargs: + memory_mibs = kwargs['memoryMibs'] + if memory_mibs is None: + raise TypeError("Missing 'memory_mibs' argument") + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_bandwidth_gbps is None: + raise TypeError("Missing 'network_bandwidth_gbps' argument") + if network_interface_counts is None and 'networkInterfaceCounts' in kwargs: + network_interface_counts = kwargs['networkInterfaceCounts'] + if network_interface_counts is None: + raise TypeError("Missing 'network_interface_counts' argument") + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if on_demand_max_price_percentage_over_lowest_price is None: + raise TypeError("Missing 'on_demand_max_price_percentage_over_lowest_price' argument") + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if require_hibernate_support is None: + raise TypeError("Missing 'require_hibernate_support' argument") + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if spot_max_price_percentage_over_lowest_price is None: + raise TypeError("Missing 'spot_max_price_percentage_over_lowest_price' argument") + if total_local_storage_gbs is None and 'totalLocalStorageGbs' in kwargs: + total_local_storage_gbs = kwargs['totalLocalStorageGbs'] + if total_local_storage_gbs is None: + raise TypeError("Missing 'total_local_storage_gbs' argument") + if vcpu_counts is None and 'vcpuCounts' in kwargs: + vcpu_counts = kwargs['vcpuCounts'] + if vcpu_counts is None: + raise TypeError("Missing 'vcpu_counts' argument") + + _setter("accelerator_counts", accelerator_counts) + _setter("accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_names", accelerator_names) + _setter("accelerator_total_memory_mibs", accelerator_total_memory_mibs) + _setter("accelerator_types", accelerator_types) + _setter("allowed_instance_types", allowed_instance_types) + _setter("bare_metal", bare_metal) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("burstable_performance", burstable_performance) + _setter("cpu_manufacturers", cpu_manufacturers) + _setter("excluded_instance_types", excluded_instance_types) + _setter("instance_generations", instance_generations) + _setter("local_storage", local_storage) + _setter("local_storage_types", local_storage_types) + _setter("memory_gib_per_vcpus", memory_gib_per_vcpus) + _setter("memory_mibs", memory_mibs) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_interface_counts", network_interface_counts) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("require_hibernate_support", require_hibernate_support) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("total_local_storage_gbs", total_local_storage_gbs) + _setter("vcpu_counts", vcpu_counts) @property @pulumi.getter(name="acceleratorCounts") @@ -4030,8 +5545,25 @@ def __init__(__self__, *, :param int max: Maximum. :param int min: Minimum. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementAcceleratorCountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -4059,8 +5591,25 @@ def __init__(__self__, *, :param int max: Maximum. :param int min: Minimum. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementAcceleratorTotalMemoryMibResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -4088,8 +5637,25 @@ def __init__(__self__, *, :param int max: Maximum. :param int min: Minimum. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementBaselineEbsBandwidthMbpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -4117,8 +5683,25 @@ def __init__(__self__, *, :param float max: Maximum. :param float min: Minimum. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementMemoryGibPerVcpusResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -4146,8 +5729,25 @@ def __init__(__self__, *, :param int max: Maximum. :param int min: Minimum. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementMemoryMibResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -4175,8 +5775,25 @@ def __init__(__self__, *, :param float max: Maximum. :param float min: Minimum. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementNetworkBandwidthGbpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -4204,8 +5821,25 @@ def __init__(__self__, *, :param int max: Maximum. :param int min: Minimum. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementNetworkInterfaceCountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -4233,8 +5867,25 @@ def __init__(__self__, *, :param float max: Maximum. :param float min: Minimum. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementTotalLocalStorageGbResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -4262,8 +5913,25 @@ def __init__(__self__, *, :param int max: Maximum. :param int min: Minimum. """ - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementVcpuCountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -4293,9 +5961,34 @@ def __init__(__self__, *, :param str launch_template_name: Name of the launch template. :param str version: Template version. """ - pulumi.set(__self__, "launch_template_id", launch_template_id) - pulumi.set(__self__, "launch_template_name", launch_template_name) - pulumi.set(__self__, "version", version) + GetGroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[str] = None, + launch_template_name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_id is None: + raise TypeError("Missing 'launch_template_id' argument") + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_name is None: + raise TypeError("Missing 'launch_template_name' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("launch_template_id", launch_template_id) + _setter("launch_template_name", launch_template_name) + _setter("version", version) @property @pulumi.getter(name="launchTemplateId") @@ -4333,9 +6026,32 @@ def __init__(__self__, *, :param bool propagate_at_launch: Whether the tag is propagated to Amazon EC2 instances launched via this ASG. :param str value: Value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "propagate_at_launch", propagate_at_launch) - pulumi.set(__self__, "value", value) + GetGroupTagResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + propagate_at_launch=propagate_at_launch, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + propagate_at_launch: Optional[bool] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if propagate_at_launch is None and 'propagateAtLaunch' in kwargs: + propagate_at_launch = kwargs['propagateAtLaunch'] + if propagate_at_launch is None: + raise TypeError("Missing 'propagate_at_launch' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("propagate_at_launch", propagate_at_launch) + _setter("value", value) @property @pulumi.getter @@ -4371,8 +6087,25 @@ def __init__(__self__, *, :param str identifier: Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region. :param str type: Traffic source type. """ - pulumi.set(__self__, "identifier", identifier) - pulumi.set(__self__, "type", type) + GetGroupTrafficSourceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("identifier", identifier) + _setter("type", type) @property @pulumi.getter @@ -4403,10 +6136,43 @@ def __init__(__self__, *, :param int min_size: Minimum number of instances to maintain in the warm pool. :param str pool_state: Instance state to transition to after the lifecycle actions are complete. """ - pulumi.set(__self__, "instance_reuse_policies", instance_reuse_policies) - pulumi.set(__self__, "max_group_prepared_capacity", max_group_prepared_capacity) - pulumi.set(__self__, "min_size", min_size) - pulumi.set(__self__, "pool_state", pool_state) + GetGroupWarmPoolResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_reuse_policies=instance_reuse_policies, + max_group_prepared_capacity=max_group_prepared_capacity, + min_size=min_size, + pool_state=pool_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_reuse_policies: Optional[Sequence['outputs.GetGroupWarmPoolInstanceReusePolicyResult']] = None, + max_group_prepared_capacity: Optional[int] = None, + min_size: Optional[int] = None, + pool_state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_reuse_policies is None and 'instanceReusePolicies' in kwargs: + instance_reuse_policies = kwargs['instanceReusePolicies'] + if instance_reuse_policies is None: + raise TypeError("Missing 'instance_reuse_policies' argument") + if max_group_prepared_capacity is None and 'maxGroupPreparedCapacity' in kwargs: + max_group_prepared_capacity = kwargs['maxGroupPreparedCapacity'] + if max_group_prepared_capacity is None: + raise TypeError("Missing 'max_group_prepared_capacity' argument") + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if min_size is None: + raise TypeError("Missing 'min_size' argument") + if pool_state is None and 'poolState' in kwargs: + pool_state = kwargs['poolState'] + if pool_state is None: + raise TypeError("Missing 'pool_state' argument") + + _setter("instance_reuse_policies", instance_reuse_policies) + _setter("max_group_prepared_capacity", max_group_prepared_capacity) + _setter("min_size", min_size) + _setter("pool_state", pool_state) @property @pulumi.getter(name="instanceReusePolicies") @@ -4445,7 +6211,22 @@ def __init__(__self__, *, """ :param bool reuse_on_scale_in: Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in. """ - pulumi.set(__self__, "reuse_on_scale_in", reuse_on_scale_in) + GetGroupWarmPoolInstanceReusePolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + reuse_on_scale_in=reuse_on_scale_in, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reuse_on_scale_in: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reuse_on_scale_in is None and 'reuseOnScaleIn' in kwargs: + reuse_on_scale_in = kwargs['reuseOnScaleIn'] + if reuse_on_scale_in is None: + raise TypeError("Missing 'reuse_on_scale_in' argument") + + _setter("reuse_on_scale_in", reuse_on_scale_in) @property @pulumi.getter(name="reuseOnScaleIn") diff --git a/sdk/python/pulumi_aws/autoscaling/policy.py b/sdk/python/pulumi_aws/autoscaling/policy.py index bf9da8f60cf..651d54ffd5d 100644 --- a/sdk/python/pulumi_aws/autoscaling/policy.py +++ b/sdk/python/pulumi_aws/autoscaling/policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -86,31 +86,88 @@ def __init__(__self__, *, The following fields are available in target tracking configuration: """ - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) + PolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + adjustment_type=adjustment_type, + cooldown=cooldown, + enabled=enabled, + estimated_instance_warmup=estimated_instance_warmup, + metric_aggregation_type=metric_aggregation_type, + min_adjustment_magnitude=min_adjustment_magnitude, + name=name, + policy_type=policy_type, + predictive_scaling_configuration=predictive_scaling_configuration, + scaling_adjustment=scaling_adjustment, + step_adjustments=step_adjustments, + target_tracking_configuration=target_tracking_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + adjustment_type: Optional[pulumi.Input[str]] = None, + cooldown: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + estimated_instance_warmup: Optional[pulumi.Input[int]] = None, + metric_aggregation_type: Optional[pulumi.Input[str]] = None, + min_adjustment_magnitude: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_type: Optional[pulumi.Input[str]] = None, + predictive_scaling_configuration: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationArgs']] = None, + scaling_adjustment: Optional[pulumi.Input[int]] = None, + step_adjustments: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyStepAdjustmentArgs']]]] = None, + target_tracking_configuration: Optional[pulumi.Input['PolicyTargetTrackingConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if autoscaling_group_name is None: + raise TypeError("Missing 'autoscaling_group_name' argument") + if adjustment_type is None and 'adjustmentType' in kwargs: + adjustment_type = kwargs['adjustmentType'] + if estimated_instance_warmup is None and 'estimatedInstanceWarmup' in kwargs: + estimated_instance_warmup = kwargs['estimatedInstanceWarmup'] + if metric_aggregation_type is None and 'metricAggregationType' in kwargs: + metric_aggregation_type = kwargs['metricAggregationType'] + if min_adjustment_magnitude is None and 'minAdjustmentMagnitude' in kwargs: + min_adjustment_magnitude = kwargs['minAdjustmentMagnitude'] + if policy_type is None and 'policyType' in kwargs: + policy_type = kwargs['policyType'] + if predictive_scaling_configuration is None and 'predictiveScalingConfiguration' in kwargs: + predictive_scaling_configuration = kwargs['predictiveScalingConfiguration'] + if scaling_adjustment is None and 'scalingAdjustment' in kwargs: + scaling_adjustment = kwargs['scalingAdjustment'] + if step_adjustments is None and 'stepAdjustments' in kwargs: + step_adjustments = kwargs['stepAdjustments'] + if target_tracking_configuration is None and 'targetTrackingConfiguration' in kwargs: + target_tracking_configuration = kwargs['targetTrackingConfiguration'] + + _setter("autoscaling_group_name", autoscaling_group_name) if adjustment_type is not None: - pulumi.set(__self__, "adjustment_type", adjustment_type) + _setter("adjustment_type", adjustment_type) if cooldown is not None: - pulumi.set(__self__, "cooldown", cooldown) + _setter("cooldown", cooldown) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if estimated_instance_warmup is not None: - pulumi.set(__self__, "estimated_instance_warmup", estimated_instance_warmup) + _setter("estimated_instance_warmup", estimated_instance_warmup) if metric_aggregation_type is not None: - pulumi.set(__self__, "metric_aggregation_type", metric_aggregation_type) + _setter("metric_aggregation_type", metric_aggregation_type) if min_adjustment_magnitude is not None: - pulumi.set(__self__, "min_adjustment_magnitude", min_adjustment_magnitude) + _setter("min_adjustment_magnitude", min_adjustment_magnitude) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy_type is not None: - pulumi.set(__self__, "policy_type", policy_type) + _setter("policy_type", policy_type) if predictive_scaling_configuration is not None: - pulumi.set(__self__, "predictive_scaling_configuration", predictive_scaling_configuration) + _setter("predictive_scaling_configuration", predictive_scaling_configuration) if scaling_adjustment is not None: - pulumi.set(__self__, "scaling_adjustment", scaling_adjustment) + _setter("scaling_adjustment", scaling_adjustment) if step_adjustments is not None: - pulumi.set(__self__, "step_adjustments", step_adjustments) + _setter("step_adjustments", step_adjustments) if target_tracking_configuration is not None: - pulumi.set(__self__, "target_tracking_configuration", target_tracking_configuration) + _setter("target_tracking_configuration", target_tracking_configuration) @property @pulumi.getter(name="autoscalingGroupName") @@ -385,34 +442,91 @@ def __init__(__self__, *, The following fields are available in target tracking configuration: """ + _PolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + adjustment_type=adjustment_type, + arn=arn, + autoscaling_group_name=autoscaling_group_name, + cooldown=cooldown, + enabled=enabled, + estimated_instance_warmup=estimated_instance_warmup, + metric_aggregation_type=metric_aggregation_type, + min_adjustment_magnitude=min_adjustment_magnitude, + name=name, + policy_type=policy_type, + predictive_scaling_configuration=predictive_scaling_configuration, + scaling_adjustment=scaling_adjustment, + step_adjustments=step_adjustments, + target_tracking_configuration=target_tracking_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + adjustment_type: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + cooldown: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + estimated_instance_warmup: Optional[pulumi.Input[int]] = None, + metric_aggregation_type: Optional[pulumi.Input[str]] = None, + min_adjustment_magnitude: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_type: Optional[pulumi.Input[str]] = None, + predictive_scaling_configuration: Optional[pulumi.Input['PolicyPredictiveScalingConfigurationArgs']] = None, + scaling_adjustment: Optional[pulumi.Input[int]] = None, + step_adjustments: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyStepAdjustmentArgs']]]] = None, + target_tracking_configuration: Optional[pulumi.Input['PolicyTargetTrackingConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if adjustment_type is None and 'adjustmentType' in kwargs: + adjustment_type = kwargs['adjustmentType'] + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if estimated_instance_warmup is None and 'estimatedInstanceWarmup' in kwargs: + estimated_instance_warmup = kwargs['estimatedInstanceWarmup'] + if metric_aggregation_type is None and 'metricAggregationType' in kwargs: + metric_aggregation_type = kwargs['metricAggregationType'] + if min_adjustment_magnitude is None and 'minAdjustmentMagnitude' in kwargs: + min_adjustment_magnitude = kwargs['minAdjustmentMagnitude'] + if policy_type is None and 'policyType' in kwargs: + policy_type = kwargs['policyType'] + if predictive_scaling_configuration is None and 'predictiveScalingConfiguration' in kwargs: + predictive_scaling_configuration = kwargs['predictiveScalingConfiguration'] + if scaling_adjustment is None and 'scalingAdjustment' in kwargs: + scaling_adjustment = kwargs['scalingAdjustment'] + if step_adjustments is None and 'stepAdjustments' in kwargs: + step_adjustments = kwargs['stepAdjustments'] + if target_tracking_configuration is None and 'targetTrackingConfiguration' in kwargs: + target_tracking_configuration = kwargs['targetTrackingConfiguration'] + if adjustment_type is not None: - pulumi.set(__self__, "adjustment_type", adjustment_type) + _setter("adjustment_type", adjustment_type) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if autoscaling_group_name is not None: - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) + _setter("autoscaling_group_name", autoscaling_group_name) if cooldown is not None: - pulumi.set(__self__, "cooldown", cooldown) + _setter("cooldown", cooldown) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if estimated_instance_warmup is not None: - pulumi.set(__self__, "estimated_instance_warmup", estimated_instance_warmup) + _setter("estimated_instance_warmup", estimated_instance_warmup) if metric_aggregation_type is not None: - pulumi.set(__self__, "metric_aggregation_type", metric_aggregation_type) + _setter("metric_aggregation_type", metric_aggregation_type) if min_adjustment_magnitude is not None: - pulumi.set(__self__, "min_adjustment_magnitude", min_adjustment_magnitude) + _setter("min_adjustment_magnitude", min_adjustment_magnitude) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy_type is not None: - pulumi.set(__self__, "policy_type", policy_type) + _setter("policy_type", policy_type) if predictive_scaling_configuration is not None: - pulumi.set(__self__, "predictive_scaling_configuration", predictive_scaling_configuration) + _setter("predictive_scaling_configuration", predictive_scaling_configuration) if scaling_adjustment is not None: - pulumi.set(__self__, "scaling_adjustment", scaling_adjustment) + _setter("scaling_adjustment", scaling_adjustment) if step_adjustments is not None: - pulumi.set(__self__, "step_adjustments", step_adjustments) + _setter("step_adjustments", step_adjustments) if target_tracking_configuration is not None: - pulumi.set(__self__, "target_tracking_configuration", target_tracking_configuration) + _setter("target_tracking_configuration", target_tracking_configuration) @property @pulumi.getter(name="adjustmentType") @@ -1062,6 +1176,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1100,9 +1218,11 @@ def _internal_init(__self__, __props__.__dict__["min_adjustment_magnitude"] = min_adjustment_magnitude __props__.__dict__["name"] = name __props__.__dict__["policy_type"] = policy_type + predictive_scaling_configuration = _utilities.configure(predictive_scaling_configuration, PolicyPredictiveScalingConfigurationArgs, True) __props__.__dict__["predictive_scaling_configuration"] = predictive_scaling_configuration __props__.__dict__["scaling_adjustment"] = scaling_adjustment __props__.__dict__["step_adjustments"] = step_adjustments + target_tracking_configuration = _utilities.configure(target_tracking_configuration, PolicyTargetTrackingConfigurationArgs, True) __props__.__dict__["target_tracking_configuration"] = target_tracking_configuration __props__.__dict__["arn"] = None super(Policy, __self__).__init__( diff --git a/sdk/python/pulumi_aws/autoscaling/schedule.py b/sdk/python/pulumi_aws/autoscaling/schedule.py index 4e62f05a23f..ddfc272d564 100644 --- a/sdk/python/pulumi_aws/autoscaling/schedule.py +++ b/sdk/python/pulumi_aws/autoscaling/schedule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ScheduleArgs', 'Schedule'] @@ -39,22 +39,69 @@ def __init__(__self__, *, > **NOTE:** When `start_time` and `end_time` are specified with `recurrence` , they form the boundaries of when the recurring action will start and stop. """ - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) - pulumi.set(__self__, "scheduled_action_name", scheduled_action_name) + ScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + scheduled_action_name=scheduled_action_name, + desired_capacity=desired_capacity, + end_time=end_time, + max_size=max_size, + min_size=min_size, + recurrence=recurrence, + start_time=start_time, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + scheduled_action_name: Optional[pulumi.Input[str]] = None, + desired_capacity: Optional[pulumi.Input[int]] = None, + end_time: Optional[pulumi.Input[str]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + recurrence: Optional[pulumi.Input[str]] = None, + start_time: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if autoscaling_group_name is None: + raise TypeError("Missing 'autoscaling_group_name' argument") + if scheduled_action_name is None and 'scheduledActionName' in kwargs: + scheduled_action_name = kwargs['scheduledActionName'] + if scheduled_action_name is None: + raise TypeError("Missing 'scheduled_action_name' argument") + if desired_capacity is None and 'desiredCapacity' in kwargs: + desired_capacity = kwargs['desiredCapacity'] + if end_time is None and 'endTime' in kwargs: + end_time = kwargs['endTime'] + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("autoscaling_group_name", autoscaling_group_name) + _setter("scheduled_action_name", scheduled_action_name) if desired_capacity is not None: - pulumi.set(__self__, "desired_capacity", desired_capacity) + _setter("desired_capacity", desired_capacity) if end_time is not None: - pulumi.set(__self__, "end_time", end_time) + _setter("end_time", end_time) if max_size is not None: - pulumi.set(__self__, "max_size", max_size) + _setter("max_size", max_size) if min_size is not None: - pulumi.set(__self__, "min_size", min_size) + _setter("min_size", min_size) if recurrence is not None: - pulumi.set(__self__, "recurrence", recurrence) + _setter("recurrence", recurrence) if start_time is not None: - pulumi.set(__self__, "start_time", start_time) + _setter("start_time", start_time) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter(name="autoscalingGroupName") @@ -199,26 +246,71 @@ def __init__(__self__, *, > **NOTE:** When `start_time` and `end_time` are specified with `recurrence` , they form the boundaries of when the recurring action will start and stop. """ + _ScheduleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + autoscaling_group_name=autoscaling_group_name, + desired_capacity=desired_capacity, + end_time=end_time, + max_size=max_size, + min_size=min_size, + recurrence=recurrence, + scheduled_action_name=scheduled_action_name, + start_time=start_time, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + desired_capacity: Optional[pulumi.Input[int]] = None, + end_time: Optional[pulumi.Input[str]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + recurrence: Optional[pulumi.Input[str]] = None, + scheduled_action_name: Optional[pulumi.Input[str]] = None, + start_time: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if desired_capacity is None and 'desiredCapacity' in kwargs: + desired_capacity = kwargs['desiredCapacity'] + if end_time is None and 'endTime' in kwargs: + end_time = kwargs['endTime'] + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if scheduled_action_name is None and 'scheduledActionName' in kwargs: + scheduled_action_name = kwargs['scheduledActionName'] + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if autoscaling_group_name is not None: - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) + _setter("autoscaling_group_name", autoscaling_group_name) if desired_capacity is not None: - pulumi.set(__self__, "desired_capacity", desired_capacity) + _setter("desired_capacity", desired_capacity) if end_time is not None: - pulumi.set(__self__, "end_time", end_time) + _setter("end_time", end_time) if max_size is not None: - pulumi.set(__self__, "max_size", max_size) + _setter("max_size", max_size) if min_size is not None: - pulumi.set(__self__, "min_size", min_size) + _setter("min_size", min_size) if recurrence is not None: - pulumi.set(__self__, "recurrence", recurrence) + _setter("recurrence", recurrence) if scheduled_action_name is not None: - pulumi.set(__self__, "scheduled_action_name", scheduled_action_name) + _setter("scheduled_action_name", scheduled_action_name) if start_time is not None: - pulumi.set(__self__, "start_time", start_time) + _setter("start_time", start_time) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -462,6 +554,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ScheduleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/autoscaling/tag.py b/sdk/python/pulumi_aws/autoscaling/tag.py index f8c00a82e48..f3fbb5bf4de 100644 --- a/sdk/python/pulumi_aws/autoscaling/tag.py +++ b/sdk/python/pulumi_aws/autoscaling/tag.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[str] autoscaling_group_name: Name of the Autoscaling Group to apply the tag to. :param pulumi.Input['TagTagArgs'] tag: Tag to create. The `tag` block is documented below. """ - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) - pulumi.set(__self__, "tag", tag) + TagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + tag=tag, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + tag: Optional[pulumi.Input['TagTagArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if autoscaling_group_name is None: + raise TypeError("Missing 'autoscaling_group_name' argument") + if tag is None: + raise TypeError("Missing 'tag' argument") + + _setter("autoscaling_group_name", autoscaling_group_name) + _setter("tag", tag) @property @pulumi.getter(name="autoscalingGroupName") @@ -61,10 +80,25 @@ def __init__(__self__, *, :param pulumi.Input[str] autoscaling_group_name: Name of the Autoscaling Group to apply the tag to. :param pulumi.Input['TagTagArgs'] tag: Tag to create. The `tag` block is documented below. """ + _TagState._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + tag=tag, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + tag: Optional[pulumi.Input['TagTagArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if autoscaling_group_name is not None: - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) + _setter("autoscaling_group_name", autoscaling_group_name) if tag is not None: - pulumi.set(__self__, "tag", tag) + _setter("tag", tag) @property @pulumi.getter(name="autoscalingGroupName") @@ -150,6 +184,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TagArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -169,6 +207,7 @@ def _internal_init(__self__, if autoscaling_group_name is None and not opts.urn: raise TypeError("Missing required property 'autoscaling_group_name'") __props__.__dict__["autoscaling_group_name"] = autoscaling_group_name + tag = _utilities.configure(tag, TagTagArgs, True) if tag is None and not opts.urn: raise TypeError("Missing required property 'tag'") __props__.__dict__["tag"] = tag diff --git a/sdk/python/pulumi_aws/autoscaling/traffic_source_attachment.py b/sdk/python/pulumi_aws/autoscaling/traffic_source_attachment.py index 5d2adb2ea57..22fa6377748 100644 --- a/sdk/python/pulumi_aws/autoscaling/traffic_source_attachment.py +++ b/sdk/python/pulumi_aws/autoscaling/traffic_source_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,28 @@ def __init__(__self__, *, :param pulumi.Input[str] autoscaling_group_name: The name of the Auto Scaling group. :param pulumi.Input['TrafficSourceAttachmentTrafficSourceArgs'] traffic_source: The unique identifiers of a traffic sources. """ - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) + TrafficSourceAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + traffic_source=traffic_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + traffic_source: Optional[pulumi.Input['TrafficSourceAttachmentTrafficSourceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if autoscaling_group_name is None: + raise TypeError("Missing 'autoscaling_group_name' argument") + if traffic_source is None and 'trafficSource' in kwargs: + traffic_source = kwargs['trafficSource'] + + _setter("autoscaling_group_name", autoscaling_group_name) if traffic_source is not None: - pulumi.set(__self__, "traffic_source", traffic_source) + _setter("traffic_source", traffic_source) @property @pulumi.getter(name="autoscalingGroupName") @@ -62,10 +81,27 @@ def __init__(__self__, *, :param pulumi.Input[str] autoscaling_group_name: The name of the Auto Scaling group. :param pulumi.Input['TrafficSourceAttachmentTrafficSourceArgs'] traffic_source: The unique identifiers of a traffic sources. """ + _TrafficSourceAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_group_name=autoscaling_group_name, + traffic_source=traffic_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_group_name: Optional[pulumi.Input[str]] = None, + traffic_source: Optional[pulumi.Input['TrafficSourceAttachmentTrafficSourceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_group_name is None and 'autoscalingGroupName' in kwargs: + autoscaling_group_name = kwargs['autoscalingGroupName'] + if traffic_source is None and 'trafficSource' in kwargs: + traffic_source = kwargs['trafficSource'] + if autoscaling_group_name is not None: - pulumi.set(__self__, "autoscaling_group_name", autoscaling_group_name) + _setter("autoscaling_group_name", autoscaling_group_name) if traffic_source is not None: - pulumi.set(__self__, "traffic_source", traffic_source) + _setter("traffic_source", traffic_source) @property @pulumi.getter(name="autoscalingGroupName") @@ -161,6 +197,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrafficSourceAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -180,6 +220,7 @@ def _internal_init(__self__, if autoscaling_group_name is None and not opts.urn: raise TypeError("Missing required property 'autoscaling_group_name'") __props__.__dict__["autoscaling_group_name"] = autoscaling_group_name + traffic_source = _utilities.configure(traffic_source, TrafficSourceAttachmentTrafficSourceArgs, True) __props__.__dict__["traffic_source"] = traffic_source super(TrafficSourceAttachment, __self__).__init__( 'aws:autoscaling/trafficSourceAttachment:TrafficSourceAttachment', diff --git a/sdk/python/pulumi_aws/autoscalingplans/_inputs.py b/sdk/python/pulumi_aws/autoscalingplans/_inputs.py index e38a47ecb03..1dff7b21ebd 100644 --- a/sdk/python/pulumi_aws/autoscalingplans/_inputs.py +++ b/sdk/python/pulumi_aws/autoscalingplans/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,10 +29,27 @@ def __init__(__self__, *, :param pulumi.Input[str] cloudformation_stack_arn: ARN of a AWS CloudFormation stack. :param pulumi.Input[Sequence[pulumi.Input['ScalingPlanApplicationSourceTagFilterArgs']]] tag_filters: Set of tags. """ + ScalingPlanApplicationSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudformation_stack_arn=cloudformation_stack_arn, + tag_filters=tag_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudformation_stack_arn: Optional[pulumi.Input[str]] = None, + tag_filters: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingPlanApplicationSourceTagFilterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudformation_stack_arn is None and 'cloudformationStackArn' in kwargs: + cloudformation_stack_arn = kwargs['cloudformationStackArn'] + if tag_filters is None and 'tagFilters' in kwargs: + tag_filters = kwargs['tagFilters'] + if cloudformation_stack_arn is not None: - pulumi.set(__self__, "cloudformation_stack_arn", cloudformation_stack_arn) + _setter("cloudformation_stack_arn", cloudformation_stack_arn) if tag_filters is not None: - pulumi.set(__self__, "tag_filters", tag_filters) + _setter("tag_filters", tag_filters) @property @pulumi.getter(name="cloudformationStackArn") @@ -68,9 +85,24 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Tag key. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Tag values. """ - pulumi.set(__self__, "key", key) + ScalingPlanApplicationSourceTagFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -134,28 +166,105 @@ def __init__(__self__, *, :param pulumi.Input[str] scaling_policy_update_behavior: Controls whether a resource's externally created scaling policies are kept or replaced. Valid values: `KeepExternalPolicies`, `ReplaceExternalPolicies`. Defaults to `KeepExternalPolicies`. :param pulumi.Input[int] scheduled_action_buffer_time: Amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out. """ - pulumi.set(__self__, "max_capacity", max_capacity) - pulumi.set(__self__, "min_capacity", min_capacity) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "scalable_dimension", scalable_dimension) - pulumi.set(__self__, "service_namespace", service_namespace) - pulumi.set(__self__, "target_tracking_configurations", target_tracking_configurations) + ScalingPlanScalingInstructionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_capacity=max_capacity, + min_capacity=min_capacity, + resource_id=resource_id, + scalable_dimension=scalable_dimension, + service_namespace=service_namespace, + target_tracking_configurations=target_tracking_configurations, + customized_load_metric_specification=customized_load_metric_specification, + disable_dynamic_scaling=disable_dynamic_scaling, + predefined_load_metric_specification=predefined_load_metric_specification, + predictive_scaling_max_capacity_behavior=predictive_scaling_max_capacity_behavior, + predictive_scaling_max_capacity_buffer=predictive_scaling_max_capacity_buffer, + predictive_scaling_mode=predictive_scaling_mode, + scaling_policy_update_behavior=scaling_policy_update_behavior, + scheduled_action_buffer_time=scheduled_action_buffer_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_capacity: Optional[pulumi.Input[int]] = None, + min_capacity: Optional[pulumi.Input[int]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + scalable_dimension: Optional[pulumi.Input[str]] = None, + service_namespace: Optional[pulumi.Input[str]] = None, + target_tracking_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingPlanScalingInstructionTargetTrackingConfigurationArgs']]]] = None, + customized_load_metric_specification: Optional[pulumi.Input['ScalingPlanScalingInstructionCustomizedLoadMetricSpecificationArgs']] = None, + disable_dynamic_scaling: Optional[pulumi.Input[bool]] = None, + predefined_load_metric_specification: Optional[pulumi.Input['ScalingPlanScalingInstructionPredefinedLoadMetricSpecificationArgs']] = None, + predictive_scaling_max_capacity_behavior: Optional[pulumi.Input[str]] = None, + predictive_scaling_max_capacity_buffer: Optional[pulumi.Input[int]] = None, + predictive_scaling_mode: Optional[pulumi.Input[str]] = None, + scaling_policy_update_behavior: Optional[pulumi.Input[str]] = None, + scheduled_action_buffer_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if max_capacity is None: + raise TypeError("Missing 'max_capacity' argument") + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if min_capacity is None: + raise TypeError("Missing 'min_capacity' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if scalable_dimension is None and 'scalableDimension' in kwargs: + scalable_dimension = kwargs['scalableDimension'] + if scalable_dimension is None: + raise TypeError("Missing 'scalable_dimension' argument") + if service_namespace is None and 'serviceNamespace' in kwargs: + service_namespace = kwargs['serviceNamespace'] + if service_namespace is None: + raise TypeError("Missing 'service_namespace' argument") + if target_tracking_configurations is None and 'targetTrackingConfigurations' in kwargs: + target_tracking_configurations = kwargs['targetTrackingConfigurations'] + if target_tracking_configurations is None: + raise TypeError("Missing 'target_tracking_configurations' argument") + if customized_load_metric_specification is None and 'customizedLoadMetricSpecification' in kwargs: + customized_load_metric_specification = kwargs['customizedLoadMetricSpecification'] + if disable_dynamic_scaling is None and 'disableDynamicScaling' in kwargs: + disable_dynamic_scaling = kwargs['disableDynamicScaling'] + if predefined_load_metric_specification is None and 'predefinedLoadMetricSpecification' in kwargs: + predefined_load_metric_specification = kwargs['predefinedLoadMetricSpecification'] + if predictive_scaling_max_capacity_behavior is None and 'predictiveScalingMaxCapacityBehavior' in kwargs: + predictive_scaling_max_capacity_behavior = kwargs['predictiveScalingMaxCapacityBehavior'] + if predictive_scaling_max_capacity_buffer is None and 'predictiveScalingMaxCapacityBuffer' in kwargs: + predictive_scaling_max_capacity_buffer = kwargs['predictiveScalingMaxCapacityBuffer'] + if predictive_scaling_mode is None and 'predictiveScalingMode' in kwargs: + predictive_scaling_mode = kwargs['predictiveScalingMode'] + if scaling_policy_update_behavior is None and 'scalingPolicyUpdateBehavior' in kwargs: + scaling_policy_update_behavior = kwargs['scalingPolicyUpdateBehavior'] + if scheduled_action_buffer_time is None and 'scheduledActionBufferTime' in kwargs: + scheduled_action_buffer_time = kwargs['scheduledActionBufferTime'] + + _setter("max_capacity", max_capacity) + _setter("min_capacity", min_capacity) + _setter("resource_id", resource_id) + _setter("scalable_dimension", scalable_dimension) + _setter("service_namespace", service_namespace) + _setter("target_tracking_configurations", target_tracking_configurations) if customized_load_metric_specification is not None: - pulumi.set(__self__, "customized_load_metric_specification", customized_load_metric_specification) + _setter("customized_load_metric_specification", customized_load_metric_specification) if disable_dynamic_scaling is not None: - pulumi.set(__self__, "disable_dynamic_scaling", disable_dynamic_scaling) + _setter("disable_dynamic_scaling", disable_dynamic_scaling) if predefined_load_metric_specification is not None: - pulumi.set(__self__, "predefined_load_metric_specification", predefined_load_metric_specification) + _setter("predefined_load_metric_specification", predefined_load_metric_specification) if predictive_scaling_max_capacity_behavior is not None: - pulumi.set(__self__, "predictive_scaling_max_capacity_behavior", predictive_scaling_max_capacity_behavior) + _setter("predictive_scaling_max_capacity_behavior", predictive_scaling_max_capacity_behavior) if predictive_scaling_max_capacity_buffer is not None: - pulumi.set(__self__, "predictive_scaling_max_capacity_buffer", predictive_scaling_max_capacity_buffer) + _setter("predictive_scaling_max_capacity_buffer", predictive_scaling_max_capacity_buffer) if predictive_scaling_mode is not None: - pulumi.set(__self__, "predictive_scaling_mode", predictive_scaling_mode) + _setter("predictive_scaling_mode", predictive_scaling_mode) if scaling_policy_update_behavior is not None: - pulumi.set(__self__, "scaling_policy_update_behavior", scaling_policy_update_behavior) + _setter("scaling_policy_update_behavior", scaling_policy_update_behavior) if scheduled_action_buffer_time is not None: - pulumi.set(__self__, "scheduled_action_buffer_time", scheduled_action_buffer_time) + _setter("scheduled_action_buffer_time", scheduled_action_buffer_time) @property @pulumi.getter(name="maxCapacity") @@ -345,13 +454,40 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: Dimensions of the metric. :param pulumi.Input[str] unit: Unit of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "statistic", statistic) + ScalingPlanScalingInstructionCustomizedLoadMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + statistic=statistic, + dimensions=dimensions, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + statistic: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if statistic is None: + raise TypeError("Missing 'statistic' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) + _setter("statistic", statistic) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="metricName") @@ -423,9 +559,28 @@ def __init__(__self__, *, :param pulumi.Input[str] predefined_load_metric_type: Metric type. Valid values: `ALBTargetGroupRequestCount`, `ASGTotalCPUUtilization`, `ASGTotalNetworkIn`, `ASGTotalNetworkOut`. :param pulumi.Input[str] resource_label: Identifies the resource associated with the metric type. """ - pulumi.set(__self__, "predefined_load_metric_type", predefined_load_metric_type) + ScalingPlanScalingInstructionPredefinedLoadMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_load_metric_type=predefined_load_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_load_metric_type: Optional[pulumi.Input[str]] = None, + resource_label: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_load_metric_type is None and 'predefinedLoadMetricType' in kwargs: + predefined_load_metric_type = kwargs['predefinedLoadMetricType'] + if predefined_load_metric_type is None: + raise TypeError("Missing 'predefined_load_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_load_metric_type", predefined_load_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedLoadMetricType") @@ -476,19 +631,58 @@ def __init__(__self__, *, :param pulumi.Input[int] scale_out_cooldown: Amount of time, in seconds, after a scale-out activity completes before another scale-out activity can start. This value is not used if the scalable resource is an Auto Scaling group. """ - pulumi.set(__self__, "target_value", target_value) + ScalingPlanScalingInstructionTargetTrackingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + customized_scaling_metric_specification=customized_scaling_metric_specification, + disable_scale_in=disable_scale_in, + estimated_instance_warmup=estimated_instance_warmup, + predefined_scaling_metric_specification=predefined_scaling_metric_specification, + scale_in_cooldown=scale_in_cooldown, + scale_out_cooldown=scale_out_cooldown, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[pulumi.Input[float]] = None, + customized_scaling_metric_specification: Optional[pulumi.Input['ScalingPlanScalingInstructionTargetTrackingConfigurationCustomizedScalingMetricSpecificationArgs']] = None, + disable_scale_in: Optional[pulumi.Input[bool]] = None, + estimated_instance_warmup: Optional[pulumi.Input[int]] = None, + predefined_scaling_metric_specification: Optional[pulumi.Input['ScalingPlanScalingInstructionTargetTrackingConfigurationPredefinedScalingMetricSpecificationArgs']] = None, + scale_in_cooldown: Optional[pulumi.Input[int]] = None, + scale_out_cooldown: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + if customized_scaling_metric_specification is None and 'customizedScalingMetricSpecification' in kwargs: + customized_scaling_metric_specification = kwargs['customizedScalingMetricSpecification'] + if disable_scale_in is None and 'disableScaleIn' in kwargs: + disable_scale_in = kwargs['disableScaleIn'] + if estimated_instance_warmup is None and 'estimatedInstanceWarmup' in kwargs: + estimated_instance_warmup = kwargs['estimatedInstanceWarmup'] + if predefined_scaling_metric_specification is None and 'predefinedScalingMetricSpecification' in kwargs: + predefined_scaling_metric_specification = kwargs['predefinedScalingMetricSpecification'] + if scale_in_cooldown is None and 'scaleInCooldown' in kwargs: + scale_in_cooldown = kwargs['scaleInCooldown'] + if scale_out_cooldown is None and 'scaleOutCooldown' in kwargs: + scale_out_cooldown = kwargs['scaleOutCooldown'] + + _setter("target_value", target_value) if customized_scaling_metric_specification is not None: - pulumi.set(__self__, "customized_scaling_metric_specification", customized_scaling_metric_specification) + _setter("customized_scaling_metric_specification", customized_scaling_metric_specification) if disable_scale_in is not None: - pulumi.set(__self__, "disable_scale_in", disable_scale_in) + _setter("disable_scale_in", disable_scale_in) if estimated_instance_warmup is not None: - pulumi.set(__self__, "estimated_instance_warmup", estimated_instance_warmup) + _setter("estimated_instance_warmup", estimated_instance_warmup) if predefined_scaling_metric_specification is not None: - pulumi.set(__self__, "predefined_scaling_metric_specification", predefined_scaling_metric_specification) + _setter("predefined_scaling_metric_specification", predefined_scaling_metric_specification) if scale_in_cooldown is not None: - pulumi.set(__self__, "scale_in_cooldown", scale_in_cooldown) + _setter("scale_in_cooldown", scale_in_cooldown) if scale_out_cooldown is not None: - pulumi.set(__self__, "scale_out_cooldown", scale_out_cooldown) + _setter("scale_out_cooldown", scale_out_cooldown) @property @pulumi.getter(name="targetValue") @@ -595,13 +789,40 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: Dimensions of the metric. :param pulumi.Input[str] unit: Unit of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "statistic", statistic) + ScalingPlanScalingInstructionTargetTrackingConfigurationCustomizedScalingMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + statistic=statistic, + dimensions=dimensions, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + statistic: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if statistic is None: + raise TypeError("Missing 'statistic' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) + _setter("statistic", statistic) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="metricName") @@ -673,9 +894,28 @@ def __init__(__self__, *, :param pulumi.Input[str] predefined_scaling_metric_type: Metric type. Valid values: `ALBRequestCountPerTarget`, `ASGAverageCPUUtilization`, `ASGAverageNetworkIn`, `ASGAverageNetworkOut`, `DynamoDBReadCapacityUtilization`, `DynamoDBWriteCapacityUtilization`, `ECSServiceAverageCPUUtilization`, `ECSServiceAverageMemoryUtilization`, `EC2SpotFleetRequestAverageCPUUtilization`, `EC2SpotFleetRequestAverageNetworkIn`, `EC2SpotFleetRequestAverageNetworkOut`, `RDSReaderAverageCPUUtilization`, `RDSReaderAverageDatabaseConnections`. :param pulumi.Input[str] resource_label: Identifies the resource associated with the metric type. """ - pulumi.set(__self__, "predefined_scaling_metric_type", predefined_scaling_metric_type) + ScalingPlanScalingInstructionTargetTrackingConfigurationPredefinedScalingMetricSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_scaling_metric_type=predefined_scaling_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_scaling_metric_type: Optional[pulumi.Input[str]] = None, + resource_label: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_scaling_metric_type is None and 'predefinedScalingMetricType' in kwargs: + predefined_scaling_metric_type = kwargs['predefinedScalingMetricType'] + if predefined_scaling_metric_type is None: + raise TypeError("Missing 'predefined_scaling_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_scaling_metric_type", predefined_scaling_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedScalingMetricType") diff --git a/sdk/python/pulumi_aws/autoscalingplans/outputs.py b/sdk/python/pulumi_aws/autoscalingplans/outputs.py index a1a6f0f9788..fc144e0d3ca 100644 --- a/sdk/python/pulumi_aws/autoscalingplans/outputs.py +++ b/sdk/python/pulumi_aws/autoscalingplans/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -49,10 +49,27 @@ def __init__(__self__, *, :param str cloudformation_stack_arn: ARN of a AWS CloudFormation stack. :param Sequence['ScalingPlanApplicationSourceTagFilterArgs'] tag_filters: Set of tags. """ + ScalingPlanApplicationSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudformation_stack_arn=cloudformation_stack_arn, + tag_filters=tag_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudformation_stack_arn: Optional[str] = None, + tag_filters: Optional[Sequence['outputs.ScalingPlanApplicationSourceTagFilter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudformation_stack_arn is None and 'cloudformationStackArn' in kwargs: + cloudformation_stack_arn = kwargs['cloudformationStackArn'] + if tag_filters is None and 'tagFilters' in kwargs: + tag_filters = kwargs['tagFilters'] + if cloudformation_stack_arn is not None: - pulumi.set(__self__, "cloudformation_stack_arn", cloudformation_stack_arn) + _setter("cloudformation_stack_arn", cloudformation_stack_arn) if tag_filters is not None: - pulumi.set(__self__, "tag_filters", tag_filters) + _setter("tag_filters", tag_filters) @property @pulumi.getter(name="cloudformationStackArn") @@ -80,9 +97,24 @@ def __init__(__self__, *, :param str key: Tag key. :param Sequence[str] values: Tag values. """ - pulumi.set(__self__, "key", key) + ScalingPlanApplicationSourceTagFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -181,28 +213,105 @@ def __init__(__self__, *, :param str scaling_policy_update_behavior: Controls whether a resource's externally created scaling policies are kept or replaced. Valid values: `KeepExternalPolicies`, `ReplaceExternalPolicies`. Defaults to `KeepExternalPolicies`. :param int scheduled_action_buffer_time: Amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out. """ - pulumi.set(__self__, "max_capacity", max_capacity) - pulumi.set(__self__, "min_capacity", min_capacity) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "scalable_dimension", scalable_dimension) - pulumi.set(__self__, "service_namespace", service_namespace) - pulumi.set(__self__, "target_tracking_configurations", target_tracking_configurations) + ScalingPlanScalingInstruction._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_capacity=max_capacity, + min_capacity=min_capacity, + resource_id=resource_id, + scalable_dimension=scalable_dimension, + service_namespace=service_namespace, + target_tracking_configurations=target_tracking_configurations, + customized_load_metric_specification=customized_load_metric_specification, + disable_dynamic_scaling=disable_dynamic_scaling, + predefined_load_metric_specification=predefined_load_metric_specification, + predictive_scaling_max_capacity_behavior=predictive_scaling_max_capacity_behavior, + predictive_scaling_max_capacity_buffer=predictive_scaling_max_capacity_buffer, + predictive_scaling_mode=predictive_scaling_mode, + scaling_policy_update_behavior=scaling_policy_update_behavior, + scheduled_action_buffer_time=scheduled_action_buffer_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_capacity: Optional[int] = None, + min_capacity: Optional[int] = None, + resource_id: Optional[str] = None, + scalable_dimension: Optional[str] = None, + service_namespace: Optional[str] = None, + target_tracking_configurations: Optional[Sequence['outputs.ScalingPlanScalingInstructionTargetTrackingConfiguration']] = None, + customized_load_metric_specification: Optional['outputs.ScalingPlanScalingInstructionCustomizedLoadMetricSpecification'] = None, + disable_dynamic_scaling: Optional[bool] = None, + predefined_load_metric_specification: Optional['outputs.ScalingPlanScalingInstructionPredefinedLoadMetricSpecification'] = None, + predictive_scaling_max_capacity_behavior: Optional[str] = None, + predictive_scaling_max_capacity_buffer: Optional[int] = None, + predictive_scaling_mode: Optional[str] = None, + scaling_policy_update_behavior: Optional[str] = None, + scheduled_action_buffer_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if max_capacity is None: + raise TypeError("Missing 'max_capacity' argument") + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if min_capacity is None: + raise TypeError("Missing 'min_capacity' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if scalable_dimension is None and 'scalableDimension' in kwargs: + scalable_dimension = kwargs['scalableDimension'] + if scalable_dimension is None: + raise TypeError("Missing 'scalable_dimension' argument") + if service_namespace is None and 'serviceNamespace' in kwargs: + service_namespace = kwargs['serviceNamespace'] + if service_namespace is None: + raise TypeError("Missing 'service_namespace' argument") + if target_tracking_configurations is None and 'targetTrackingConfigurations' in kwargs: + target_tracking_configurations = kwargs['targetTrackingConfigurations'] + if target_tracking_configurations is None: + raise TypeError("Missing 'target_tracking_configurations' argument") + if customized_load_metric_specification is None and 'customizedLoadMetricSpecification' in kwargs: + customized_load_metric_specification = kwargs['customizedLoadMetricSpecification'] + if disable_dynamic_scaling is None and 'disableDynamicScaling' in kwargs: + disable_dynamic_scaling = kwargs['disableDynamicScaling'] + if predefined_load_metric_specification is None and 'predefinedLoadMetricSpecification' in kwargs: + predefined_load_metric_specification = kwargs['predefinedLoadMetricSpecification'] + if predictive_scaling_max_capacity_behavior is None and 'predictiveScalingMaxCapacityBehavior' in kwargs: + predictive_scaling_max_capacity_behavior = kwargs['predictiveScalingMaxCapacityBehavior'] + if predictive_scaling_max_capacity_buffer is None and 'predictiveScalingMaxCapacityBuffer' in kwargs: + predictive_scaling_max_capacity_buffer = kwargs['predictiveScalingMaxCapacityBuffer'] + if predictive_scaling_mode is None and 'predictiveScalingMode' in kwargs: + predictive_scaling_mode = kwargs['predictiveScalingMode'] + if scaling_policy_update_behavior is None and 'scalingPolicyUpdateBehavior' in kwargs: + scaling_policy_update_behavior = kwargs['scalingPolicyUpdateBehavior'] + if scheduled_action_buffer_time is None and 'scheduledActionBufferTime' in kwargs: + scheduled_action_buffer_time = kwargs['scheduledActionBufferTime'] + + _setter("max_capacity", max_capacity) + _setter("min_capacity", min_capacity) + _setter("resource_id", resource_id) + _setter("scalable_dimension", scalable_dimension) + _setter("service_namespace", service_namespace) + _setter("target_tracking_configurations", target_tracking_configurations) if customized_load_metric_specification is not None: - pulumi.set(__self__, "customized_load_metric_specification", customized_load_metric_specification) + _setter("customized_load_metric_specification", customized_load_metric_specification) if disable_dynamic_scaling is not None: - pulumi.set(__self__, "disable_dynamic_scaling", disable_dynamic_scaling) + _setter("disable_dynamic_scaling", disable_dynamic_scaling) if predefined_load_metric_specification is not None: - pulumi.set(__self__, "predefined_load_metric_specification", predefined_load_metric_specification) + _setter("predefined_load_metric_specification", predefined_load_metric_specification) if predictive_scaling_max_capacity_behavior is not None: - pulumi.set(__self__, "predictive_scaling_max_capacity_behavior", predictive_scaling_max_capacity_behavior) + _setter("predictive_scaling_max_capacity_behavior", predictive_scaling_max_capacity_behavior) if predictive_scaling_max_capacity_buffer is not None: - pulumi.set(__self__, "predictive_scaling_max_capacity_buffer", predictive_scaling_max_capacity_buffer) + _setter("predictive_scaling_max_capacity_buffer", predictive_scaling_max_capacity_buffer) if predictive_scaling_mode is not None: - pulumi.set(__self__, "predictive_scaling_mode", predictive_scaling_mode) + _setter("predictive_scaling_mode", predictive_scaling_mode) if scaling_policy_update_behavior is not None: - pulumi.set(__self__, "scaling_policy_update_behavior", scaling_policy_update_behavior) + _setter("scaling_policy_update_behavior", scaling_policy_update_behavior) if scheduled_action_buffer_time is not None: - pulumi.set(__self__, "scheduled_action_buffer_time", scheduled_action_buffer_time) + _setter("scheduled_action_buffer_time", scheduled_action_buffer_time) @property @pulumi.getter(name="maxCapacity") @@ -353,13 +462,40 @@ def __init__(__self__, *, :param Mapping[str, str] dimensions: Dimensions of the metric. :param str unit: Unit of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "statistic", statistic) + ScalingPlanScalingInstructionCustomizedLoadMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + statistic=statistic, + dimensions=dimensions, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + namespace: Optional[str] = None, + statistic: Optional[str] = None, + dimensions: Optional[Mapping[str, str]] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if statistic is None: + raise TypeError("Missing 'statistic' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) + _setter("statistic", statistic) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="metricName") @@ -430,9 +566,28 @@ def __init__(__self__, *, :param str predefined_load_metric_type: Metric type. Valid values: `ALBTargetGroupRequestCount`, `ASGTotalCPUUtilization`, `ASGTotalNetworkIn`, `ASGTotalNetworkOut`. :param str resource_label: Identifies the resource associated with the metric type. """ - pulumi.set(__self__, "predefined_load_metric_type", predefined_load_metric_type) + ScalingPlanScalingInstructionPredefinedLoadMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_load_metric_type=predefined_load_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_load_metric_type: Optional[str] = None, + resource_label: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_load_metric_type is None and 'predefinedLoadMetricType' in kwargs: + predefined_load_metric_type = kwargs['predefinedLoadMetricType'] + if predefined_load_metric_type is None: + raise TypeError("Missing 'predefined_load_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_load_metric_type", predefined_load_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedLoadMetricType") @@ -504,19 +659,58 @@ def __init__(__self__, *, :param int scale_out_cooldown: Amount of time, in seconds, after a scale-out activity completes before another scale-out activity can start. This value is not used if the scalable resource is an Auto Scaling group. """ - pulumi.set(__self__, "target_value", target_value) + ScalingPlanScalingInstructionTargetTrackingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + customized_scaling_metric_specification=customized_scaling_metric_specification, + disable_scale_in=disable_scale_in, + estimated_instance_warmup=estimated_instance_warmup, + predefined_scaling_metric_specification=predefined_scaling_metric_specification, + scale_in_cooldown=scale_in_cooldown, + scale_out_cooldown=scale_out_cooldown, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[float] = None, + customized_scaling_metric_specification: Optional['outputs.ScalingPlanScalingInstructionTargetTrackingConfigurationCustomizedScalingMetricSpecification'] = None, + disable_scale_in: Optional[bool] = None, + estimated_instance_warmup: Optional[int] = None, + predefined_scaling_metric_specification: Optional['outputs.ScalingPlanScalingInstructionTargetTrackingConfigurationPredefinedScalingMetricSpecification'] = None, + scale_in_cooldown: Optional[int] = None, + scale_out_cooldown: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + if customized_scaling_metric_specification is None and 'customizedScalingMetricSpecification' in kwargs: + customized_scaling_metric_specification = kwargs['customizedScalingMetricSpecification'] + if disable_scale_in is None and 'disableScaleIn' in kwargs: + disable_scale_in = kwargs['disableScaleIn'] + if estimated_instance_warmup is None and 'estimatedInstanceWarmup' in kwargs: + estimated_instance_warmup = kwargs['estimatedInstanceWarmup'] + if predefined_scaling_metric_specification is None and 'predefinedScalingMetricSpecification' in kwargs: + predefined_scaling_metric_specification = kwargs['predefinedScalingMetricSpecification'] + if scale_in_cooldown is None and 'scaleInCooldown' in kwargs: + scale_in_cooldown = kwargs['scaleInCooldown'] + if scale_out_cooldown is None and 'scaleOutCooldown' in kwargs: + scale_out_cooldown = kwargs['scaleOutCooldown'] + + _setter("target_value", target_value) if customized_scaling_metric_specification is not None: - pulumi.set(__self__, "customized_scaling_metric_specification", customized_scaling_metric_specification) + _setter("customized_scaling_metric_specification", customized_scaling_metric_specification) if disable_scale_in is not None: - pulumi.set(__self__, "disable_scale_in", disable_scale_in) + _setter("disable_scale_in", disable_scale_in) if estimated_instance_warmup is not None: - pulumi.set(__self__, "estimated_instance_warmup", estimated_instance_warmup) + _setter("estimated_instance_warmup", estimated_instance_warmup) if predefined_scaling_metric_specification is not None: - pulumi.set(__self__, "predefined_scaling_metric_specification", predefined_scaling_metric_specification) + _setter("predefined_scaling_metric_specification", predefined_scaling_metric_specification) if scale_in_cooldown is not None: - pulumi.set(__self__, "scale_in_cooldown", scale_in_cooldown) + _setter("scale_in_cooldown", scale_in_cooldown) if scale_out_cooldown is not None: - pulumi.set(__self__, "scale_out_cooldown", scale_out_cooldown) + _setter("scale_out_cooldown", scale_out_cooldown) @property @pulumi.getter(name="targetValue") @@ -612,13 +806,40 @@ def __init__(__self__, *, :param Mapping[str, str] dimensions: Dimensions of the metric. :param str unit: Unit of the metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "statistic", statistic) + ScalingPlanScalingInstructionTargetTrackingConfigurationCustomizedScalingMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + statistic=statistic, + dimensions=dimensions, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + namespace: Optional[str] = None, + statistic: Optional[str] = None, + dimensions: Optional[Mapping[str, str]] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if statistic is None: + raise TypeError("Missing 'statistic' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) + _setter("statistic", statistic) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="metricName") @@ -689,9 +910,28 @@ def __init__(__self__, *, :param str predefined_scaling_metric_type: Metric type. Valid values: `ALBRequestCountPerTarget`, `ASGAverageCPUUtilization`, `ASGAverageNetworkIn`, `ASGAverageNetworkOut`, `DynamoDBReadCapacityUtilization`, `DynamoDBWriteCapacityUtilization`, `ECSServiceAverageCPUUtilization`, `ECSServiceAverageMemoryUtilization`, `EC2SpotFleetRequestAverageCPUUtilization`, `EC2SpotFleetRequestAverageNetworkIn`, `EC2SpotFleetRequestAverageNetworkOut`, `RDSReaderAverageCPUUtilization`, `RDSReaderAverageDatabaseConnections`. :param str resource_label: Identifies the resource associated with the metric type. """ - pulumi.set(__self__, "predefined_scaling_metric_type", predefined_scaling_metric_type) + ScalingPlanScalingInstructionTargetTrackingConfigurationPredefinedScalingMetricSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + predefined_scaling_metric_type=predefined_scaling_metric_type, + resource_label=resource_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + predefined_scaling_metric_type: Optional[str] = None, + resource_label: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if predefined_scaling_metric_type is None and 'predefinedScalingMetricType' in kwargs: + predefined_scaling_metric_type = kwargs['predefinedScalingMetricType'] + if predefined_scaling_metric_type is None: + raise TypeError("Missing 'predefined_scaling_metric_type' argument") + if resource_label is None and 'resourceLabel' in kwargs: + resource_label = kwargs['resourceLabel'] + + _setter("predefined_scaling_metric_type", predefined_scaling_metric_type) if resource_label is not None: - pulumi.set(__self__, "resource_label", resource_label) + _setter("resource_label", resource_label) @property @pulumi.getter(name="predefinedScalingMetricType") diff --git a/sdk/python/pulumi_aws/autoscalingplans/scaling_plan.py b/sdk/python/pulumi_aws/autoscalingplans/scaling_plan.py index 398b9ec4f64..cafb8722560 100644 --- a/sdk/python/pulumi_aws/autoscalingplans/scaling_plan.py +++ b/sdk/python/pulumi_aws/autoscalingplans/scaling_plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ScalingPlanScalingInstructionArgs']]] scaling_instructions: Scaling instructions. More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_ScalingInstruction.html). :param pulumi.Input[str] name: Name of the scaling plan. Names cannot contain vertical bars, colons, or forward slashes. """ - pulumi.set(__self__, "application_source", application_source) - pulumi.set(__self__, "scaling_instructions", scaling_instructions) + ScalingPlanArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_source=application_source, + scaling_instructions=scaling_instructions, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_source: Optional[pulumi.Input['ScalingPlanApplicationSourceArgs']] = None, + scaling_instructions: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingPlanScalingInstructionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_source is None and 'applicationSource' in kwargs: + application_source = kwargs['applicationSource'] + if application_source is None: + raise TypeError("Missing 'application_source' argument") + if scaling_instructions is None and 'scalingInstructions' in kwargs: + scaling_instructions = kwargs['scalingInstructions'] + if scaling_instructions is None: + raise TypeError("Missing 'scaling_instructions' argument") + + _setter("application_source", application_source) + _setter("scaling_instructions", scaling_instructions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="applicationSource") @@ -81,14 +104,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ScalingPlanScalingInstructionArgs']]] scaling_instructions: Scaling instructions. More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_ScalingInstruction.html). :param pulumi.Input[int] scaling_plan_version: The version number of the scaling plan. This value is always 1. """ + _ScalingPlanState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_source=application_source, + name=name, + scaling_instructions=scaling_instructions, + scaling_plan_version=scaling_plan_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_source: Optional[pulumi.Input['ScalingPlanApplicationSourceArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + scaling_instructions: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingPlanScalingInstructionArgs']]]] = None, + scaling_plan_version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_source is None and 'applicationSource' in kwargs: + application_source = kwargs['applicationSource'] + if scaling_instructions is None and 'scalingInstructions' in kwargs: + scaling_instructions = kwargs['scalingInstructions'] + if scaling_plan_version is None and 'scalingPlanVersion' in kwargs: + scaling_plan_version = kwargs['scalingPlanVersion'] + if application_source is not None: - pulumi.set(__self__, "application_source", application_source) + _setter("application_source", application_source) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if scaling_instructions is not None: - pulumi.set(__self__, "scaling_instructions", scaling_instructions) + _setter("scaling_instructions", scaling_instructions) if scaling_plan_version is not None: - pulumi.set(__self__, "scaling_plan_version", scaling_plan_version) + _setter("scaling_plan_version", scaling_plan_version) @property @pulumi.getter(name="applicationSource") @@ -206,6 +252,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ScalingPlanArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -223,6 +273,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ScalingPlanArgs.__new__(ScalingPlanArgs) + application_source = _utilities.configure(application_source, ScalingPlanApplicationSourceArgs, True) if application_source is None and not opts.urn: raise TypeError("Missing required property 'application_source'") __props__.__dict__["application_source"] = application_source diff --git a/sdk/python/pulumi_aws/backup/_inputs.py b/sdk/python/pulumi_aws/backup/_inputs.py index 356410683f9..87bf2a0fc15 100644 --- a/sdk/python/pulumi_aws/backup/_inputs.py +++ b/sdk/python/pulumi_aws/backup/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -39,11 +39,30 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['FrameworkControlInputParameterArgs']]] input_parameters: One or more input parameter blocks. An example of a control with two parameters is: "backup plan frequency is at least daily and the retention period is at least 1 year". The first parameter is daily. The second parameter is 1 year. Detailed below. :param pulumi.Input['FrameworkControlScopeArgs'] scope: The scope of a control. The control scope defines what the control will evaluate. Three examples of control scopes are: a specific backup plan, all backup plans with a specific tag, or all backup plans. Detailed below. """ - pulumi.set(__self__, "name", name) + FrameworkControlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + input_parameters=input_parameters, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + input_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FrameworkControlInputParameterArgs']]]] = None, + scope: Optional[pulumi.Input['FrameworkControlScopeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + + _setter("name", name) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) @property @pulumi.getter @@ -91,10 +110,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of a parameter, for example, BackupPlanFrequency. :param pulumi.Input[str] value: The value of parameter, for example, hourly. """ + FrameworkControlInputParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -132,12 +164,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] compliance_resource_types: Describes whether the control scope includes one or more types of resources, such as EFS or RDS. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: The tag key-value pair applied to those AWS resources that you want to trigger an evaluation for a rule. A maximum of one key-value pair can be provided. """ + FrameworkControlScopeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compliance_resource_ids=compliance_resource_ids, + compliance_resource_types=compliance_resource_types, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compliance_resource_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + compliance_resource_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compliance_resource_ids is None and 'complianceResourceIds' in kwargs: + compliance_resource_ids = kwargs['complianceResourceIds'] + if compliance_resource_types is None and 'complianceResourceTypes' in kwargs: + compliance_resource_types = kwargs['complianceResourceTypes'] + if compliance_resource_ids is not None: - pulumi.set(__self__, "compliance_resource_ids", compliance_resource_ids) + _setter("compliance_resource_ids", compliance_resource_ids) if compliance_resource_types is not None: - pulumi.set(__self__, "compliance_resource_types", compliance_resource_types) + _setter("compliance_resource_types", compliance_resource_types) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="complianceResourceIds") @@ -185,8 +236,29 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] backup_options: Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. :param pulumi.Input[str] resource_type: The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. """ - pulumi.set(__self__, "backup_options", backup_options) - pulumi.set(__self__, "resource_type", resource_type) + PlanAdvancedBackupSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_options=backup_options, + resource_type=resource_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_options is None and 'backupOptions' in kwargs: + backup_options = kwargs['backupOptions'] + if backup_options is None: + raise TypeError("Missing 'backup_options' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + + _setter("backup_options", backup_options) + _setter("resource_type", resource_type) @property @pulumi.getter(name="backupOptions") @@ -236,22 +308,67 @@ def __init__(__self__, *, :param pulumi.Input[str] schedule: A CRON expression specifying when AWS Backup initiates a backup job. :param pulumi.Input[int] start_window: The amount of time in minutes before beginning a backup. """ - pulumi.set(__self__, "rule_name", rule_name) - pulumi.set(__self__, "target_vault_name", target_vault_name) + PlanRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_name=rule_name, + target_vault_name=target_vault_name, + completion_window=completion_window, + copy_actions=copy_actions, + enable_continuous_backup=enable_continuous_backup, + lifecycle=lifecycle, + recovery_point_tags=recovery_point_tags, + schedule=schedule, + start_window=start_window, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_name: Optional[pulumi.Input[str]] = None, + target_vault_name: Optional[pulumi.Input[str]] = None, + completion_window: Optional[pulumi.Input[int]] = None, + copy_actions: Optional[pulumi.Input[Sequence[pulumi.Input['PlanRuleCopyActionArgs']]]] = None, + enable_continuous_backup: Optional[pulumi.Input[bool]] = None, + lifecycle: Optional[pulumi.Input['PlanRuleLifecycleArgs']] = None, + recovery_point_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + schedule: Optional[pulumi.Input[str]] = None, + start_window: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if rule_name is None: + raise TypeError("Missing 'rule_name' argument") + if target_vault_name is None and 'targetVaultName' in kwargs: + target_vault_name = kwargs['targetVaultName'] + if target_vault_name is None: + raise TypeError("Missing 'target_vault_name' argument") + if completion_window is None and 'completionWindow' in kwargs: + completion_window = kwargs['completionWindow'] + if copy_actions is None and 'copyActions' in kwargs: + copy_actions = kwargs['copyActions'] + if enable_continuous_backup is None and 'enableContinuousBackup' in kwargs: + enable_continuous_backup = kwargs['enableContinuousBackup'] + if recovery_point_tags is None and 'recoveryPointTags' in kwargs: + recovery_point_tags = kwargs['recoveryPointTags'] + if start_window is None and 'startWindow' in kwargs: + start_window = kwargs['startWindow'] + + _setter("rule_name", rule_name) + _setter("target_vault_name", target_vault_name) if completion_window is not None: - pulumi.set(__self__, "completion_window", completion_window) + _setter("completion_window", completion_window) if copy_actions is not None: - pulumi.set(__self__, "copy_actions", copy_actions) + _setter("copy_actions", copy_actions) if enable_continuous_backup is not None: - pulumi.set(__self__, "enable_continuous_backup", enable_continuous_backup) + _setter("enable_continuous_backup", enable_continuous_backup) if lifecycle is not None: - pulumi.set(__self__, "lifecycle", lifecycle) + _setter("lifecycle", lifecycle) if recovery_point_tags is not None: - pulumi.set(__self__, "recovery_point_tags", recovery_point_tags) + _setter("recovery_point_tags", recovery_point_tags) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if start_window is not None: - pulumi.set(__self__, "start_window", start_window) + _setter("start_window", start_window) @property @pulumi.getter(name="ruleName") @@ -371,9 +488,26 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_vault_arn: An Amazon Resource Name (ARN) that uniquely identifies the destination backup vault for the copied backup. :param pulumi.Input['PlanRuleCopyActionLifecycleArgs'] lifecycle: The lifecycle defines when a protected resource is copied over to a backup vault and when it expires. Fields documented above. """ - pulumi.set(__self__, "destination_vault_arn", destination_vault_arn) + PlanRuleCopyActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_vault_arn=destination_vault_arn, + lifecycle=lifecycle, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_vault_arn: Optional[pulumi.Input[str]] = None, + lifecycle: Optional[pulumi.Input['PlanRuleCopyActionLifecycleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_vault_arn is None and 'destinationVaultArn' in kwargs: + destination_vault_arn = kwargs['destinationVaultArn'] + if destination_vault_arn is None: + raise TypeError("Missing 'destination_vault_arn' argument") + + _setter("destination_vault_arn", destination_vault_arn) if lifecycle is not None: - pulumi.set(__self__, "lifecycle", lifecycle) + _setter("lifecycle", lifecycle) @property @pulumi.getter(name="destinationVaultArn") @@ -409,10 +543,27 @@ def __init__(__self__, *, :param pulumi.Input[int] cold_storage_after: Specifies the number of days after creation that a recovery point is moved to cold storage. :param pulumi.Input[int] delete_after: Specifies the number of days after creation that a recovery point is deleted. Must be 90 days greater than `cold_storage_after`. """ + PlanRuleCopyActionLifecycleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_after=cold_storage_after, + delete_after=delete_after, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_after: Optional[pulumi.Input[int]] = None, + delete_after: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_after is None and 'coldStorageAfter' in kwargs: + cold_storage_after = kwargs['coldStorageAfter'] + if delete_after is None and 'deleteAfter' in kwargs: + delete_after = kwargs['deleteAfter'] + if cold_storage_after is not None: - pulumi.set(__self__, "cold_storage_after", cold_storage_after) + _setter("cold_storage_after", cold_storage_after) if delete_after is not None: - pulumi.set(__self__, "delete_after", delete_after) + _setter("delete_after", delete_after) @property @pulumi.getter(name="coldStorageAfter") @@ -448,10 +599,27 @@ def __init__(__self__, *, :param pulumi.Input[int] cold_storage_after: Specifies the number of days after creation that a recovery point is moved to cold storage. :param pulumi.Input[int] delete_after: Specifies the number of days after creation that a recovery point is deleted. Must be 90 days greater than `cold_storage_after`. """ + PlanRuleLifecycleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_after=cold_storage_after, + delete_after=delete_after, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_after: Optional[pulumi.Input[int]] = None, + delete_after: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_after is None and 'coldStorageAfter' in kwargs: + cold_storage_after = kwargs['coldStorageAfter'] + if delete_after is None and 'deleteAfter' in kwargs: + delete_after = kwargs['deleteAfter'] + if cold_storage_after is not None: - pulumi.set(__self__, "cold_storage_after", cold_storage_after) + _setter("cold_storage_after", cold_storage_after) if delete_after is not None: - pulumi.set(__self__, "delete_after", delete_after) + _setter("delete_after", delete_after) @property @pulumi.getter(name="coldStorageAfter") @@ -489,11 +657,32 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] formats: A list of the format of your reports: CSV, JSON, or both. If not specified, the default format is CSV. :param pulumi.Input[str] s3_key_prefix: The prefix for where Backup Audit Manager delivers your reports to Amazon S3. The prefix is this part of the following path: s3://your-bucket-name/prefix/Backup/us-west-2/year/month/day/report-name. If not specified, there is no prefix. """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + ReportPlanReportDeliveryChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + formats=formats, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[pulumi.Input[str]] = None, + formats: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_key_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + + _setter("s3_bucket_name", s3_bucket_name) if formats is not None: - pulumi.set(__self__, "formats", formats) + _setter("formats", formats) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter(name="s3BucketName") @@ -549,17 +738,48 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] organization_units: Specifies the list of Organizational Units a report covers. :param pulumi.Input[Sequence[pulumi.Input[str]]] regions: Specifies the list of regions a report covers. """ - pulumi.set(__self__, "report_template", report_template) + ReportPlanReportSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + report_template=report_template, + accounts=accounts, + framework_arns=framework_arns, + number_of_frameworks=number_of_frameworks, + organization_units=organization_units, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + report_template: Optional[pulumi.Input[str]] = None, + accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + framework_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + number_of_frameworks: Optional[pulumi.Input[int]] = None, + organization_units: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if report_template is None and 'reportTemplate' in kwargs: + report_template = kwargs['reportTemplate'] + if report_template is None: + raise TypeError("Missing 'report_template' argument") + if framework_arns is None and 'frameworkArns' in kwargs: + framework_arns = kwargs['frameworkArns'] + if number_of_frameworks is None and 'numberOfFrameworks' in kwargs: + number_of_frameworks = kwargs['numberOfFrameworks'] + if organization_units is None and 'organizationUnits' in kwargs: + organization_units = kwargs['organizationUnits'] + + _setter("report_template", report_template) if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if framework_arns is not None: - pulumi.set(__self__, "framework_arns", framework_arns) + _setter("framework_arns", framework_arns) if number_of_frameworks is not None: - pulumi.set(__self__, "number_of_frameworks", number_of_frameworks) + _setter("number_of_frameworks", number_of_frameworks) if organization_units is not None: - pulumi.set(__self__, "organization_units", organization_units) + _setter("organization_units", organization_units) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter(name="reportTemplate") @@ -641,14 +861,39 @@ def __init__(__self__, *, string_likes: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionConditionStringLikeArgs']]]] = None, string_not_equals: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionConditionStringNotEqualArgs']]]] = None, string_not_likes: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionConditionStringNotLikeArgs']]]] = None): + SelectionConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + string_equals=string_equals, + string_likes=string_likes, + string_not_equals=string_not_equals, + string_not_likes=string_not_likes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + string_equals: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionConditionStringEqualArgs']]]] = None, + string_likes: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionConditionStringLikeArgs']]]] = None, + string_not_equals: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionConditionStringNotEqualArgs']]]] = None, + string_not_likes: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionConditionStringNotLikeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if string_equals is None and 'stringEquals' in kwargs: + string_equals = kwargs['stringEquals'] + if string_likes is None and 'stringLikes' in kwargs: + string_likes = kwargs['stringLikes'] + if string_not_equals is None and 'stringNotEquals' in kwargs: + string_not_equals = kwargs['stringNotEquals'] + if string_not_likes is None and 'stringNotLikes' in kwargs: + string_not_likes = kwargs['stringNotLikes'] + if string_equals is not None: - pulumi.set(__self__, "string_equals", string_equals) + _setter("string_equals", string_equals) if string_likes is not None: - pulumi.set(__self__, "string_likes", string_likes) + _setter("string_likes", string_likes) if string_not_equals is not None: - pulumi.set(__self__, "string_not_equals", string_not_equals) + _setter("string_not_equals", string_not_equals) if string_not_likes is not None: - pulumi.set(__self__, "string_not_likes", string_not_likes) + _setter("string_not_likes", string_not_likes) @property @pulumi.getter(name="stringEquals") @@ -696,8 +941,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key in a key-value pair. :param pulumi.Input[str] value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + SelectionConditionStringEqualArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -733,8 +995,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key in a key-value pair. :param pulumi.Input[str] value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + SelectionConditionStringLikeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -770,8 +1049,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key in a key-value pair. :param pulumi.Input[str] value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + SelectionConditionStringNotEqualArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -807,8 +1103,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key in a key-value pair. :param pulumi.Input[str] value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + SelectionConditionStringNotLikeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -846,9 +1159,30 @@ def __init__(__self__, *, :param pulumi.Input[str] type: An operation, such as `StringEquals`, that is applied to a key-value pair used to filter resources in a selection. :param pulumi.Input[str] value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + SelectionSelectionTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("type", type) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/backup/framework.py b/sdk/python/pulumi_aws/backup/framework.py index 0dae5ec4f95..ea2ac8cb7a7 100644 --- a/sdk/python/pulumi_aws/backup/framework.py +++ b/sdk/python/pulumi_aws/backup/framework.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The unique name of the framework. The name must be between 1 and 256 characters, starting with a letter, and consisting of letters, numbers, and underscores. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the frameworks you create. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "controls", controls) + FrameworkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + controls=controls, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + controls: Optional[pulumi.Input[Sequence[pulumi.Input['FrameworkControlArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if controls is None: + raise TypeError("Missing 'controls' argument") + + _setter("controls", controls) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -108,27 +127,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the frameworks you create. 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. """ + _FrameworkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + controls=controls, + creation_time=creation_time, + deployment_status=deployment_status, + description=description, + name=name, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + controls: Optional[pulumi.Input[Sequence[pulumi.Input['FrameworkControlArgs']]]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + deployment_status: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if deployment_status is None and 'deploymentStatus' in kwargs: + deployment_status = kwargs['deploymentStatus'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if controls is not None: - pulumi.set(__self__, "controls", controls) + _setter("controls", controls) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if deployment_status is not None: - pulumi.set(__self__, "deployment_status", deployment_status) + _setter("deployment_status", deployment_status) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -467,6 +519,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FrameworkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/backup/get_framework.py b/sdk/python/pulumi_aws/backup/get_framework.py index 28decb620ec..e10e1b05312 100644 --- a/sdk/python/pulumi_aws/backup/get_framework.py +++ b/sdk/python/pulumi_aws/backup/get_framework.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/backup/get_plan.py b/sdk/python/pulumi_aws/backup/get_plan.py index 952e5193152..e7c6e571035 100644 --- a/sdk/python/pulumi_aws/backup/get_plan.py +++ b/sdk/python/pulumi_aws/backup/get_plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/backup/get_report_plan.py b/sdk/python/pulumi_aws/backup/get_report_plan.py index 9575a21cff2..4427767a8e1 100644 --- a/sdk/python/pulumi_aws/backup/get_report_plan.py +++ b/sdk/python/pulumi_aws/backup/get_report_plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/backup/get_selection.py b/sdk/python/pulumi_aws/backup/get_selection.py index 071ae2070d6..432daab16fa 100644 --- a/sdk/python/pulumi_aws/backup/get_selection.py +++ b/sdk/python/pulumi_aws/backup/get_selection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/backup/get_vault.py b/sdk/python/pulumi_aws/backup/get_vault.py index b29ca2e0881..20cb5ca4ca5 100644 --- a/sdk/python/pulumi_aws/backup/get_vault.py +++ b/sdk/python/pulumi_aws/backup/get_vault.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/backup/global_settings.py b/sdk/python/pulumi_aws/backup/global_settings.py index 26a89f32c2e..ca39e1bd56d 100644 --- a/sdk/python/pulumi_aws/backup/global_settings.py +++ b/sdk/python/pulumi_aws/backup/global_settings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GlobalSettingsArgs', 'GlobalSettings'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a GlobalSettings resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] global_settings: A list of resources along with the opt-in preferences for the account. """ - pulumi.set(__self__, "global_settings", global_settings) + GlobalSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_settings=global_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_settings is None and 'globalSettings' in kwargs: + global_settings = kwargs['globalSettings'] + if global_settings is None: + raise TypeError("Missing 'global_settings' argument") + + _setter("global_settings", global_settings) @property @pulumi.getter(name="globalSettings") @@ -42,8 +57,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering GlobalSettings resources. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] global_settings: A list of resources along with the opt-in preferences for the account. """ + _GlobalSettingsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_settings=global_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_settings is None and 'globalSettings' in kwargs: + global_settings = kwargs['globalSettings'] + if global_settings is not None: - pulumi.set(__self__, "global_settings", global_settings) + _setter("global_settings", global_settings) @property @pulumi.getter(name="globalSettings") @@ -129,6 +157,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GlobalSettingsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/backup/outputs.py b/sdk/python/pulumi_aws/backup/outputs.py index d01db1f962e..54c546770fa 100644 --- a/sdk/python/pulumi_aws/backup/outputs.py +++ b/sdk/python/pulumi_aws/backup/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -62,11 +62,30 @@ def __init__(__self__, *, :param Sequence['FrameworkControlInputParameterArgs'] input_parameters: One or more input parameter blocks. An example of a control with two parameters is: "backup plan frequency is at least daily and the retention period is at least 1 year". The first parameter is daily. The second parameter is 1 year. Detailed below. :param 'FrameworkControlScopeArgs' scope: The scope of a control. The control scope defines what the control will evaluate. Three examples of control scopes are: a specific backup plan, all backup plans with a specific tag, or all backup plans. Detailed below. """ - pulumi.set(__self__, "name", name) + FrameworkControl._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + input_parameters=input_parameters, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + input_parameters: Optional[Sequence['outputs.FrameworkControlInputParameter']] = None, + scope: Optional['outputs.FrameworkControlScope'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + + _setter("name", name) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) @property @pulumi.getter @@ -102,10 +121,23 @@ def __init__(__self__, *, :param str name: The name of a parameter, for example, BackupPlanFrequency. :param str value: The value of parameter, for example, hourly. """ + FrameworkControlInputParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -154,12 +186,31 @@ def __init__(__self__, *, :param Sequence[str] compliance_resource_types: Describes whether the control scope includes one or more types of resources, such as EFS or RDS. :param Mapping[str, str] tags: The tag key-value pair applied to those AWS resources that you want to trigger an evaluation for a rule. A maximum of one key-value pair can be provided. """ + FrameworkControlScope._configure( + lambda key, value: pulumi.set(__self__, key, value), + compliance_resource_ids=compliance_resource_ids, + compliance_resource_types=compliance_resource_types, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compliance_resource_ids: Optional[Sequence[str]] = None, + compliance_resource_types: Optional[Sequence[str]] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compliance_resource_ids is None and 'complianceResourceIds' in kwargs: + compliance_resource_ids = kwargs['complianceResourceIds'] + if compliance_resource_types is None and 'complianceResourceTypes' in kwargs: + compliance_resource_types = kwargs['complianceResourceTypes'] + if compliance_resource_ids is not None: - pulumi.set(__self__, "compliance_resource_ids", compliance_resource_ids) + _setter("compliance_resource_ids", compliance_resource_ids) if compliance_resource_types is not None: - pulumi.set(__self__, "compliance_resource_types", compliance_resource_types) + _setter("compliance_resource_types", compliance_resource_types) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="complianceResourceIds") @@ -214,8 +265,29 @@ def __init__(__self__, *, :param Mapping[str, str] backup_options: Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. :param str resource_type: The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. """ - pulumi.set(__self__, "backup_options", backup_options) - pulumi.set(__self__, "resource_type", resource_type) + PlanAdvancedBackupSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_options=backup_options, + resource_type=resource_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_options: Optional[Mapping[str, str]] = None, + resource_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_options is None and 'backupOptions' in kwargs: + backup_options = kwargs['backupOptions'] + if backup_options is None: + raise TypeError("Missing 'backup_options' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + + _setter("backup_options", backup_options) + _setter("resource_type", resource_type) @property @pulumi.getter(name="backupOptions") @@ -286,22 +358,67 @@ def __init__(__self__, *, :param str schedule: A CRON expression specifying when AWS Backup initiates a backup job. :param int start_window: The amount of time in minutes before beginning a backup. """ - pulumi.set(__self__, "rule_name", rule_name) - pulumi.set(__self__, "target_vault_name", target_vault_name) + PlanRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_name=rule_name, + target_vault_name=target_vault_name, + completion_window=completion_window, + copy_actions=copy_actions, + enable_continuous_backup=enable_continuous_backup, + lifecycle=lifecycle, + recovery_point_tags=recovery_point_tags, + schedule=schedule, + start_window=start_window, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_name: Optional[str] = None, + target_vault_name: Optional[str] = None, + completion_window: Optional[int] = None, + copy_actions: Optional[Sequence['outputs.PlanRuleCopyAction']] = None, + enable_continuous_backup: Optional[bool] = None, + lifecycle: Optional['outputs.PlanRuleLifecycle'] = None, + recovery_point_tags: Optional[Mapping[str, str]] = None, + schedule: Optional[str] = None, + start_window: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if rule_name is None: + raise TypeError("Missing 'rule_name' argument") + if target_vault_name is None and 'targetVaultName' in kwargs: + target_vault_name = kwargs['targetVaultName'] + if target_vault_name is None: + raise TypeError("Missing 'target_vault_name' argument") + if completion_window is None and 'completionWindow' in kwargs: + completion_window = kwargs['completionWindow'] + if copy_actions is None and 'copyActions' in kwargs: + copy_actions = kwargs['copyActions'] + if enable_continuous_backup is None and 'enableContinuousBackup' in kwargs: + enable_continuous_backup = kwargs['enableContinuousBackup'] + if recovery_point_tags is None and 'recoveryPointTags' in kwargs: + recovery_point_tags = kwargs['recoveryPointTags'] + if start_window is None and 'startWindow' in kwargs: + start_window = kwargs['startWindow'] + + _setter("rule_name", rule_name) + _setter("target_vault_name", target_vault_name) if completion_window is not None: - pulumi.set(__self__, "completion_window", completion_window) + _setter("completion_window", completion_window) if copy_actions is not None: - pulumi.set(__self__, "copy_actions", copy_actions) + _setter("copy_actions", copy_actions) if enable_continuous_backup is not None: - pulumi.set(__self__, "enable_continuous_backup", enable_continuous_backup) + _setter("enable_continuous_backup", enable_continuous_backup) if lifecycle is not None: - pulumi.set(__self__, "lifecycle", lifecycle) + _setter("lifecycle", lifecycle) if recovery_point_tags is not None: - pulumi.set(__self__, "recovery_point_tags", recovery_point_tags) + _setter("recovery_point_tags", recovery_point_tags) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if start_window is not None: - pulumi.set(__self__, "start_window", start_window) + _setter("start_window", start_window) @property @pulumi.getter(name="ruleName") @@ -402,9 +519,26 @@ def __init__(__self__, *, :param str destination_vault_arn: An Amazon Resource Name (ARN) that uniquely identifies the destination backup vault for the copied backup. :param 'PlanRuleCopyActionLifecycleArgs' lifecycle: The lifecycle defines when a protected resource is copied over to a backup vault and when it expires. Fields documented above. """ - pulumi.set(__self__, "destination_vault_arn", destination_vault_arn) + PlanRuleCopyAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_vault_arn=destination_vault_arn, + lifecycle=lifecycle, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_vault_arn: Optional[str] = None, + lifecycle: Optional['outputs.PlanRuleCopyActionLifecycle'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_vault_arn is None and 'destinationVaultArn' in kwargs: + destination_vault_arn = kwargs['destinationVaultArn'] + if destination_vault_arn is None: + raise TypeError("Missing 'destination_vault_arn' argument") + + _setter("destination_vault_arn", destination_vault_arn) if lifecycle is not None: - pulumi.set(__self__, "lifecycle", lifecycle) + _setter("lifecycle", lifecycle) @property @pulumi.getter(name="destinationVaultArn") @@ -451,10 +585,27 @@ def __init__(__self__, *, :param int cold_storage_after: Specifies the number of days after creation that a recovery point is moved to cold storage. :param int delete_after: Specifies the number of days after creation that a recovery point is deleted. Must be 90 days greater than `cold_storage_after`. """ + PlanRuleCopyActionLifecycle._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_after=cold_storage_after, + delete_after=delete_after, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_after: Optional[int] = None, + delete_after: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_after is None and 'coldStorageAfter' in kwargs: + cold_storage_after = kwargs['coldStorageAfter'] + if delete_after is None and 'deleteAfter' in kwargs: + delete_after = kwargs['deleteAfter'] + if cold_storage_after is not None: - pulumi.set(__self__, "cold_storage_after", cold_storage_after) + _setter("cold_storage_after", cold_storage_after) if delete_after is not None: - pulumi.set(__self__, "delete_after", delete_after) + _setter("delete_after", delete_after) @property @pulumi.getter(name="coldStorageAfter") @@ -501,10 +652,27 @@ def __init__(__self__, *, :param int cold_storage_after: Specifies the number of days after creation that a recovery point is moved to cold storage. :param int delete_after: Specifies the number of days after creation that a recovery point is deleted. Must be 90 days greater than `cold_storage_after`. """ + PlanRuleLifecycle._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_after=cold_storage_after, + delete_after=delete_after, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_after: Optional[int] = None, + delete_after: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_after is None and 'coldStorageAfter' in kwargs: + cold_storage_after = kwargs['coldStorageAfter'] + if delete_after is None and 'deleteAfter' in kwargs: + delete_after = kwargs['deleteAfter'] + if cold_storage_after is not None: - pulumi.set(__self__, "cold_storage_after", cold_storage_after) + _setter("cold_storage_after", cold_storage_after) if delete_after is not None: - pulumi.set(__self__, "delete_after", delete_after) + _setter("delete_after", delete_after) @property @pulumi.getter(name="coldStorageAfter") @@ -553,11 +721,32 @@ def __init__(__self__, *, :param Sequence[str] formats: A list of the format of your reports: CSV, JSON, or both. If not specified, the default format is CSV. :param str s3_key_prefix: The prefix for where Backup Audit Manager delivers your reports to Amazon S3. The prefix is this part of the following path: s3://your-bucket-name/prefix/Backup/us-west-2/year/month/day/report-name. If not specified, there is no prefix. """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + ReportPlanReportDeliveryChannel._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + formats=formats, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[str] = None, + formats: Optional[Sequence[str]] = None, + s3_key_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + + _setter("s3_bucket_name", s3_bucket_name) if formats is not None: - pulumi.set(__self__, "formats", formats) + _setter("formats", formats) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter(name="s3BucketName") @@ -624,17 +813,48 @@ def __init__(__self__, *, :param Sequence[str] organization_units: Specifies the list of Organizational Units a report covers. :param Sequence[str] regions: Specifies the list of regions a report covers. """ - pulumi.set(__self__, "report_template", report_template) + ReportPlanReportSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + report_template=report_template, + accounts=accounts, + framework_arns=framework_arns, + number_of_frameworks=number_of_frameworks, + organization_units=organization_units, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + report_template: Optional[str] = None, + accounts: Optional[Sequence[str]] = None, + framework_arns: Optional[Sequence[str]] = None, + number_of_frameworks: Optional[int] = None, + organization_units: Optional[Sequence[str]] = None, + regions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if report_template is None and 'reportTemplate' in kwargs: + report_template = kwargs['reportTemplate'] + if report_template is None: + raise TypeError("Missing 'report_template' argument") + if framework_arns is None and 'frameworkArns' in kwargs: + framework_arns = kwargs['frameworkArns'] + if number_of_frameworks is None and 'numberOfFrameworks' in kwargs: + number_of_frameworks = kwargs['numberOfFrameworks'] + if organization_units is None and 'organizationUnits' in kwargs: + organization_units = kwargs['organizationUnits'] + + _setter("report_template", report_template) if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if framework_arns is not None: - pulumi.set(__self__, "framework_arns", framework_arns) + _setter("framework_arns", framework_arns) if number_of_frameworks is not None: - pulumi.set(__self__, "number_of_frameworks", number_of_frameworks) + _setter("number_of_frameworks", number_of_frameworks) if organization_units is not None: - pulumi.set(__self__, "organization_units", organization_units) + _setter("organization_units", organization_units) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter(name="reportTemplate") @@ -715,14 +935,39 @@ def __init__(__self__, *, string_likes: Optional[Sequence['outputs.SelectionConditionStringLike']] = None, string_not_equals: Optional[Sequence['outputs.SelectionConditionStringNotEqual']] = None, string_not_likes: Optional[Sequence['outputs.SelectionConditionStringNotLike']] = None): + SelectionCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + string_equals=string_equals, + string_likes=string_likes, + string_not_equals=string_not_equals, + string_not_likes=string_not_likes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + string_equals: Optional[Sequence['outputs.SelectionConditionStringEqual']] = None, + string_likes: Optional[Sequence['outputs.SelectionConditionStringLike']] = None, + string_not_equals: Optional[Sequence['outputs.SelectionConditionStringNotEqual']] = None, + string_not_likes: Optional[Sequence['outputs.SelectionConditionStringNotLike']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if string_equals is None and 'stringEquals' in kwargs: + string_equals = kwargs['stringEquals'] + if string_likes is None and 'stringLikes' in kwargs: + string_likes = kwargs['stringLikes'] + if string_not_equals is None and 'stringNotEquals' in kwargs: + string_not_equals = kwargs['stringNotEquals'] + if string_not_likes is None and 'stringNotLikes' in kwargs: + string_not_likes = kwargs['stringNotLikes'] + if string_equals is not None: - pulumi.set(__self__, "string_equals", string_equals) + _setter("string_equals", string_equals) if string_likes is not None: - pulumi.set(__self__, "string_likes", string_likes) + _setter("string_likes", string_likes) if string_not_equals is not None: - pulumi.set(__self__, "string_not_equals", string_not_equals) + _setter("string_not_equals", string_not_equals) if string_not_likes is not None: - pulumi.set(__self__, "string_not_likes", string_not_likes) + _setter("string_not_likes", string_not_likes) @property @pulumi.getter(name="stringEquals") @@ -754,8 +999,25 @@ def __init__(__self__, *, :param str key: The key in a key-value pair. :param str value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + SelectionConditionStringEqual._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -783,8 +1045,25 @@ def __init__(__self__, *, :param str key: The key in a key-value pair. :param str value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + SelectionConditionStringLike._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -812,8 +1091,25 @@ def __init__(__self__, *, :param str key: The key in a key-value pair. :param str value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + SelectionConditionStringNotEqual._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -841,8 +1137,25 @@ def __init__(__self__, *, :param str key: The key in a key-value pair. :param str value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + SelectionConditionStringNotLike._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -872,9 +1185,30 @@ def __init__(__self__, *, :param str type: An operation, such as `StringEquals`, that is applied to a key-value pair used to filter resources in a selection. :param str value: The value in a key-value pair. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + SelectionSelectionTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -912,9 +1246,32 @@ def __init__(__self__, *, :param str name: Backup framework name. :param Sequence['GetFrameworkControlScopeArgs'] scopes: Scope of a control. The control scope defines what the control will evaluate. Three examples of control scopes are: a specific backup plan, all backup plans with a specific tag, or all backup plans. Detailed below. """ - pulumi.set(__self__, "input_parameters", input_parameters) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "scopes", scopes) + GetFrameworkControlResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_parameters=input_parameters, + name=name, + scopes=scopes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_parameters: Optional[Sequence['outputs.GetFrameworkControlInputParameterResult']] = None, + name: Optional[str] = None, + scopes: Optional[Sequence['outputs.GetFrameworkControlScopeResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if input_parameters is None: + raise TypeError("Missing 'input_parameters' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if scopes is None: + raise TypeError("Missing 'scopes' argument") + + _setter("input_parameters", input_parameters) + _setter("name", name) + _setter("scopes", scopes) @property @pulumi.getter(name="inputParameters") @@ -950,8 +1307,25 @@ def __init__(__self__, *, :param str name: Backup framework name. :param str value: Value of parameter, for example, hourly. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + GetFrameworkControlInputParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -981,9 +1355,34 @@ def __init__(__self__, *, :param Sequence[str] compliance_resource_types: Describes whether the control scope includes one or more types of resources, such as EFS or RDS. :param Mapping[str, str] tags: Tag key-value pair applied to those AWS resources that you want to trigger an evaluation for a rule. A maximum of one key-value pair can be provided. """ - pulumi.set(__self__, "compliance_resource_ids", compliance_resource_ids) - pulumi.set(__self__, "compliance_resource_types", compliance_resource_types) - pulumi.set(__self__, "tags", tags) + GetFrameworkControlScopeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + compliance_resource_ids=compliance_resource_ids, + compliance_resource_types=compliance_resource_types, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compliance_resource_ids: Optional[Sequence[str]] = None, + compliance_resource_types: Optional[Sequence[str]] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compliance_resource_ids is None and 'complianceResourceIds' in kwargs: + compliance_resource_ids = kwargs['complianceResourceIds'] + if compliance_resource_ids is None: + raise TypeError("Missing 'compliance_resource_ids' argument") + if compliance_resource_types is None and 'complianceResourceTypes' in kwargs: + compliance_resource_types = kwargs['complianceResourceTypes'] + if compliance_resource_types is None: + raise TypeError("Missing 'compliance_resource_types' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("compliance_resource_ids", compliance_resource_ids) + _setter("compliance_resource_types", compliance_resource_types) + _setter("tags", tags) @property @pulumi.getter(name="complianceResourceIds") @@ -1021,9 +1420,34 @@ def __init__(__self__, *, :param str s3_bucket_name: Unique name of the S3 bucket that receives your reports. :param str s3_key_prefix: Prefix for where Backup Audit Manager delivers your reports to Amazon S3. The prefix is this part of the following path: s3://your-bucket-name/prefix/Backup/us-west-2/year/month/day/report-name. """ - pulumi.set(__self__, "formats", formats) - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + GetReportPlanReportDeliveryChannelResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + formats=formats, + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + formats: Optional[Sequence[str]] = None, + s3_bucket_name: Optional[str] = None, + s3_key_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if formats is None: + raise TypeError("Missing 'formats' argument") + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if s3_key_prefix is None: + raise TypeError("Missing 's3_key_prefix' argument") + + _setter("formats", formats) + _setter("s3_bucket_name", s3_bucket_name) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter @@ -1067,12 +1491,53 @@ def __init__(__self__, *, :param Sequence[str] regions: (Optional) Specifies the list of regions a report covers. :param str report_template: Identifies the report template for the report. Reports are built using a report template. """ - pulumi.set(__self__, "accounts", accounts) - pulumi.set(__self__, "framework_arns", framework_arns) - pulumi.set(__self__, "number_of_frameworks", number_of_frameworks) - pulumi.set(__self__, "organization_units", organization_units) - pulumi.set(__self__, "regions", regions) - pulumi.set(__self__, "report_template", report_template) + GetReportPlanReportSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts=accounts, + framework_arns=framework_arns, + number_of_frameworks=number_of_frameworks, + organization_units=organization_units, + regions=regions, + report_template=report_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts: Optional[Sequence[str]] = None, + framework_arns: Optional[Sequence[str]] = None, + number_of_frameworks: Optional[int] = None, + organization_units: Optional[Sequence[str]] = None, + regions: Optional[Sequence[str]] = None, + report_template: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accounts is None: + raise TypeError("Missing 'accounts' argument") + if framework_arns is None and 'frameworkArns' in kwargs: + framework_arns = kwargs['frameworkArns'] + if framework_arns is None: + raise TypeError("Missing 'framework_arns' argument") + if number_of_frameworks is None and 'numberOfFrameworks' in kwargs: + number_of_frameworks = kwargs['numberOfFrameworks'] + if number_of_frameworks is None: + raise TypeError("Missing 'number_of_frameworks' argument") + if organization_units is None and 'organizationUnits' in kwargs: + organization_units = kwargs['organizationUnits'] + if organization_units is None: + raise TypeError("Missing 'organization_units' argument") + if regions is None: + raise TypeError("Missing 'regions' argument") + if report_template is None and 'reportTemplate' in kwargs: + report_template = kwargs['reportTemplate'] + if report_template is None: + raise TypeError("Missing 'report_template' argument") + + _setter("accounts", accounts) + _setter("framework_arns", framework_arns) + _setter("number_of_frameworks", number_of_frameworks) + _setter("organization_units", organization_units) + _setter("regions", regions) + _setter("report_template", report_template) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/backup/plan.py b/sdk/python/pulumi_aws/backup/plan.py index c92f424fbb5..d92fe246c02 100644 --- a/sdk/python/pulumi_aws/backup/plan.py +++ b/sdk/python/pulumi_aws/backup/plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The display name of a backup plan. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the plans you create. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "rules", rules) + PlanArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules=rules, + advanced_backup_settings=advanced_backup_settings, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules: Optional[pulumi.Input[Sequence[pulumi.Input['PlanRuleArgs']]]] = None, + advanced_backup_settings: Optional[pulumi.Input[Sequence[pulumi.Input['PlanAdvancedBackupSettingArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules is None: + raise TypeError("Missing 'rules' argument") + if advanced_backup_settings is None and 'advancedBackupSettings' in kwargs: + advanced_backup_settings = kwargs['advancedBackupSettings'] + + _setter("rules", rules) if advanced_backup_settings is not None: - pulumi.set(__self__, "advanced_backup_settings", advanced_backup_settings) + _setter("advanced_backup_settings", advanced_backup_settings) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -104,23 +125,50 @@ def __init__(__self__, *, :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: Unique, randomly generated, Unicode, UTF-8 encoded string that serves as the version ID of the backup plan. """ + _PlanState._configure( + lambda key, value: pulumi.set(__self__, key, value), + advanced_backup_settings=advanced_backup_settings, + arn=arn, + name=name, + rules=rules, + tags=tags, + tags_all=tags_all, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + advanced_backup_settings: Optional[pulumi.Input[Sequence[pulumi.Input['PlanAdvancedBackupSettingArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['PlanRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if advanced_backup_settings is None and 'advancedBackupSettings' in kwargs: + advanced_backup_settings = kwargs['advancedBackupSettings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if advanced_backup_settings is not None: - pulumi.set(__self__, "advanced_backup_settings", advanced_backup_settings) + _setter("advanced_backup_settings", advanced_backup_settings) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="advancedBackupSettings") @@ -311,6 +359,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PlanArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/backup/region_settings.py b/sdk/python/pulumi_aws/backup/region_settings.py index 6089d97f47d..40c910794ca 100644 --- a/sdk/python/pulumi_aws/backup/region_settings.py +++ b/sdk/python/pulumi_aws/backup/region_settings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RegionSettingsArgs', 'RegionSettings'] @@ -21,9 +21,28 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[bool]]] resource_type_opt_in_preference: A map of services along with the opt-in preferences for the Region. :param pulumi.Input[Mapping[str, pulumi.Input[bool]]] resource_type_management_preference: A map of services along with the management preferences for the Region. For more information, see the [AWS Documentation](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_UpdateRegionSettings.html#API_UpdateRegionSettings_RequestSyntax). """ - pulumi.set(__self__, "resource_type_opt_in_preference", resource_type_opt_in_preference) + RegionSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_type_opt_in_preference=resource_type_opt_in_preference, + resource_type_management_preference=resource_type_management_preference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_type_opt_in_preference: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, + resource_type_management_preference: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_type_opt_in_preference is None and 'resourceTypeOptInPreference' in kwargs: + resource_type_opt_in_preference = kwargs['resourceTypeOptInPreference'] + if resource_type_opt_in_preference is None: + raise TypeError("Missing 'resource_type_opt_in_preference' argument") + if resource_type_management_preference is None and 'resourceTypeManagementPreference' in kwargs: + resource_type_management_preference = kwargs['resourceTypeManagementPreference'] + + _setter("resource_type_opt_in_preference", resource_type_opt_in_preference) if resource_type_management_preference is not None: - pulumi.set(__self__, "resource_type_management_preference", resource_type_management_preference) + _setter("resource_type_management_preference", resource_type_management_preference) @property @pulumi.getter(name="resourceTypeOptInPreference") @@ -60,10 +79,27 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[bool]]] resource_type_management_preference: A map of services along with the management preferences for the Region. For more information, see the [AWS Documentation](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_UpdateRegionSettings.html#API_UpdateRegionSettings_RequestSyntax). :param pulumi.Input[Mapping[str, pulumi.Input[bool]]] resource_type_opt_in_preference: A map of services along with the opt-in preferences for the Region. """ + _RegionSettingsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_type_management_preference=resource_type_management_preference, + resource_type_opt_in_preference=resource_type_opt_in_preference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_type_management_preference: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, + resource_type_opt_in_preference: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_type_management_preference is None and 'resourceTypeManagementPreference' in kwargs: + resource_type_management_preference = kwargs['resourceTypeManagementPreference'] + if resource_type_opt_in_preference is None and 'resourceTypeOptInPreference' in kwargs: + resource_type_opt_in_preference = kwargs['resourceTypeOptInPreference'] + if resource_type_management_preference is not None: - pulumi.set(__self__, "resource_type_management_preference", resource_type_management_preference) + _setter("resource_type_management_preference", resource_type_management_preference) if resource_type_opt_in_preference is not None: - pulumi.set(__self__, "resource_type_opt_in_preference", resource_type_opt_in_preference) + _setter("resource_type_opt_in_preference", resource_type_opt_in_preference) @property @pulumi.getter(name="resourceTypeManagementPreference") @@ -193,6 +229,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegionSettingsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/backup/report_plan.py b/sdk/python/pulumi_aws/backup/report_plan.py index 44b2edbccab..b1e6da4cf4a 100644 --- a/sdk/python/pulumi_aws/backup/report_plan.py +++ b/sdk/python/pulumi_aws/backup/report_plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The unique name of the report plan. The name must be between 1 and 256 characters, starting with a letter, and consisting of letters, numbers, and underscores. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the report plans you create. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "report_delivery_channel", report_delivery_channel) - pulumi.set(__self__, "report_setting", report_setting) + ReportPlanArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + report_delivery_channel=report_delivery_channel, + report_setting=report_setting, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + report_delivery_channel: Optional[pulumi.Input['ReportPlanReportDeliveryChannelArgs']] = None, + report_setting: Optional[pulumi.Input['ReportPlanReportSettingArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if report_delivery_channel is None and 'reportDeliveryChannel' in kwargs: + report_delivery_channel = kwargs['reportDeliveryChannel'] + if report_delivery_channel is None: + raise TypeError("Missing 'report_delivery_channel' argument") + if report_setting is None and 'reportSetting' in kwargs: + report_setting = kwargs['reportSetting'] + if report_setting is None: + raise TypeError("Missing 'report_setting' argument") + + _setter("report_delivery_channel", report_delivery_channel) + _setter("report_setting", report_setting) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="reportDeliveryChannel") @@ -123,27 +150,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the report plans you create. 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. """ + _ReportPlanState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_time=creation_time, + deployment_status=deployment_status, + description=description, + name=name, + report_delivery_channel=report_delivery_channel, + report_setting=report_setting, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + deployment_status: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + report_delivery_channel: Optional[pulumi.Input['ReportPlanReportDeliveryChannelArgs']] = None, + report_setting: Optional[pulumi.Input['ReportPlanReportSettingArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if deployment_status is None and 'deploymentStatus' in kwargs: + deployment_status = kwargs['deploymentStatus'] + if report_delivery_channel is None and 'reportDeliveryChannel' in kwargs: + report_delivery_channel = kwargs['reportDeliveryChannel'] + if report_setting is None and 'reportSetting' in kwargs: + report_setting = kwargs['reportSetting'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if deployment_status is not None: - pulumi.set(__self__, "deployment_status", deployment_status) + _setter("deployment_status", deployment_status) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if report_delivery_channel is not None: - pulumi.set(__self__, "report_delivery_channel", report_delivery_channel) + _setter("report_delivery_channel", report_delivery_channel) if report_setting is not None: - pulumi.set(__self__, "report_setting", report_setting) + _setter("report_setting", report_setting) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -360,6 +424,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReportPlanArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -381,9 +449,11 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["name"] = name + report_delivery_channel = _utilities.configure(report_delivery_channel, ReportPlanReportDeliveryChannelArgs, True) if report_delivery_channel is None and not opts.urn: raise TypeError("Missing required property 'report_delivery_channel'") __props__.__dict__["report_delivery_channel"] = report_delivery_channel + report_setting = _utilities.configure(report_setting, ReportPlanReportSettingArgs, True) if report_setting is None and not opts.urn: raise TypeError("Missing required property 'report_setting'") __props__.__dict__["report_setting"] = report_setting diff --git a/sdk/python/pulumi_aws/backup/selection.py b/sdk/python/pulumi_aws/backup/selection.py index 2d4731fccda..ae76e6ca8c2 100644 --- a/sdk/python/pulumi_aws/backup/selection.py +++ b/sdk/python/pulumi_aws/backup/selection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,18 +33,53 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to assign to a backup plan. :param pulumi.Input[Sequence[pulumi.Input['SelectionSelectionTagArgs']]] selection_tags: Tag-based conditions used to specify a set of resources to assign to a backup plan. """ - pulumi.set(__self__, "iam_role_arn", iam_role_arn) - pulumi.set(__self__, "plan_id", plan_id) + SelectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam_role_arn=iam_role_arn, + plan_id=plan_id, + conditions=conditions, + name=name, + not_resources=not_resources, + resources=resources, + selection_tags=selection_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam_role_arn: Optional[pulumi.Input[str]] = None, + plan_id: Optional[pulumi.Input[str]] = None, + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionConditionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + not_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + selection_tags: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionSelectionTagArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if iam_role_arn is None: + raise TypeError("Missing 'iam_role_arn' argument") + if plan_id is None and 'planId' in kwargs: + plan_id = kwargs['planId'] + if plan_id is None: + raise TypeError("Missing 'plan_id' argument") + if not_resources is None and 'notResources' in kwargs: + not_resources = kwargs['notResources'] + if selection_tags is None and 'selectionTags' in kwargs: + selection_tags = kwargs['selectionTags'] + + _setter("iam_role_arn", iam_role_arn) + _setter("plan_id", plan_id) if conditions is not None: - pulumi.set(__self__, "conditions", conditions) + _setter("conditions", conditions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if not_resources is not None: - pulumi.set(__self__, "not_resources", not_resources) + _setter("not_resources", not_resources) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if selection_tags is not None: - pulumi.set(__self__, "selection_tags", selection_tags) + _setter("selection_tags", selection_tags) @property @pulumi.getter(name="iamRoleArn") @@ -151,20 +186,51 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to assign to a backup plan. :param pulumi.Input[Sequence[pulumi.Input['SelectionSelectionTagArgs']]] selection_tags: Tag-based conditions used to specify a set of resources to assign to a backup plan. """ + _SelectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + conditions=conditions, + iam_role_arn=iam_role_arn, + name=name, + not_resources=not_resources, + plan_id=plan_id, + resources=resources, + selection_tags=selection_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionConditionArgs']]]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + not_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + plan_id: Optional[pulumi.Input[str]] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + selection_tags: Optional[pulumi.Input[Sequence[pulumi.Input['SelectionSelectionTagArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if not_resources is None and 'notResources' in kwargs: + not_resources = kwargs['notResources'] + if plan_id is None and 'planId' in kwargs: + plan_id = kwargs['planId'] + if selection_tags is None and 'selectionTags' in kwargs: + selection_tags = kwargs['selectionTags'] + if conditions is not None: - pulumi.set(__self__, "conditions", conditions) + _setter("conditions", conditions) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if not_resources is not None: - pulumi.set(__self__, "not_resources", not_resources) + _setter("not_resources", not_resources) if plan_id is not None: - pulumi.set(__self__, "plan_id", plan_id) + _setter("plan_id", plan_id) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if selection_tags is not None: - pulumi.set(__self__, "selection_tags", selection_tags) + _setter("selection_tags", selection_tags) @property @pulumi.getter @@ -514,6 +580,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SelectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/backup/vault.py b/sdk/python/pulumi_aws/backup/vault.py index 8949a3a91b0..f716b151594 100644 --- a/sdk/python/pulumi_aws/backup/vault.py +++ b/sdk/python/pulumi_aws/backup/vault.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VaultArgs', 'Vault'] @@ -25,14 +25,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the backup vault to create. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the resources that you create. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + VaultArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + force_destroy=force_destroy, + kms_key_arn=kms_key_arn, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + force_destroy: Optional[pulumi.Input[bool]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="forceDestroy") @@ -103,23 +124,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the resources that you create. .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. """ + _VaultState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + force_destroy=force_destroy, + kms_key_arn=kms_key_arn, + name=name, + recovery_points=recovery_points, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + recovery_points: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if recovery_points is None and 'recoveryPoints' in kwargs: + recovery_points = kwargs['recoveryPoints'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recovery_points is not None: - pulumi.set(__self__, "recovery_points", recovery_points) + _setter("recovery_points", recovery_points) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -282,6 +334,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VaultArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/backup/vault_lock_configuration.py b/sdk/python/pulumi_aws/backup/vault_lock_configuration.py index 4d38f468d6f..9e115ea2f80 100644 --- a/sdk/python/pulumi_aws/backup/vault_lock_configuration.py +++ b/sdk/python/pulumi_aws/backup/vault_lock_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VaultLockConfigurationArgs', 'VaultLockConfiguration'] @@ -25,13 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[int] max_retention_days: The maximum retention period that the vault retains its recovery points. :param pulumi.Input[int] min_retention_days: The minimum retention period that the vault retains its recovery points. """ - pulumi.set(__self__, "backup_vault_name", backup_vault_name) + VaultLockConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_vault_name=backup_vault_name, + changeable_for_days=changeable_for_days, + max_retention_days=max_retention_days, + min_retention_days=min_retention_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_vault_name: Optional[pulumi.Input[str]] = None, + changeable_for_days: Optional[pulumi.Input[int]] = None, + max_retention_days: Optional[pulumi.Input[int]] = None, + min_retention_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_vault_name is None and 'backupVaultName' in kwargs: + backup_vault_name = kwargs['backupVaultName'] + if backup_vault_name is None: + raise TypeError("Missing 'backup_vault_name' argument") + if changeable_for_days is None and 'changeableForDays' in kwargs: + changeable_for_days = kwargs['changeableForDays'] + if max_retention_days is None and 'maxRetentionDays' in kwargs: + max_retention_days = kwargs['maxRetentionDays'] + if min_retention_days is None and 'minRetentionDays' in kwargs: + min_retention_days = kwargs['minRetentionDays'] + + _setter("backup_vault_name", backup_vault_name) if changeable_for_days is not None: - pulumi.set(__self__, "changeable_for_days", changeable_for_days) + _setter("changeable_for_days", changeable_for_days) if max_retention_days is not None: - pulumi.set(__self__, "max_retention_days", max_retention_days) + _setter("max_retention_days", max_retention_days) if min_retention_days is not None: - pulumi.set(__self__, "min_retention_days", min_retention_days) + _setter("min_retention_days", min_retention_days) @property @pulumi.getter(name="backupVaultName") @@ -98,16 +125,45 @@ def __init__(__self__, *, :param pulumi.Input[int] max_retention_days: The maximum retention period that the vault retains its recovery points. :param pulumi.Input[int] min_retention_days: The minimum retention period that the vault retains its recovery points. """ + _VaultLockConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_vault_arn=backup_vault_arn, + backup_vault_name=backup_vault_name, + changeable_for_days=changeable_for_days, + max_retention_days=max_retention_days, + min_retention_days=min_retention_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_vault_arn: Optional[pulumi.Input[str]] = None, + backup_vault_name: Optional[pulumi.Input[str]] = None, + changeable_for_days: Optional[pulumi.Input[int]] = None, + max_retention_days: Optional[pulumi.Input[int]] = None, + min_retention_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_vault_arn is None and 'backupVaultArn' in kwargs: + backup_vault_arn = kwargs['backupVaultArn'] + if backup_vault_name is None and 'backupVaultName' in kwargs: + backup_vault_name = kwargs['backupVaultName'] + if changeable_for_days is None and 'changeableForDays' in kwargs: + changeable_for_days = kwargs['changeableForDays'] + if max_retention_days is None and 'maxRetentionDays' in kwargs: + max_retention_days = kwargs['maxRetentionDays'] + if min_retention_days is None and 'minRetentionDays' in kwargs: + min_retention_days = kwargs['minRetentionDays'] + if backup_vault_arn is not None: - pulumi.set(__self__, "backup_vault_arn", backup_vault_arn) + _setter("backup_vault_arn", backup_vault_arn) if backup_vault_name is not None: - pulumi.set(__self__, "backup_vault_name", backup_vault_name) + _setter("backup_vault_name", backup_vault_name) if changeable_for_days is not None: - pulumi.set(__self__, "changeable_for_days", changeable_for_days) + _setter("changeable_for_days", changeable_for_days) if max_retention_days is not None: - pulumi.set(__self__, "max_retention_days", max_retention_days) + _setter("max_retention_days", max_retention_days) if min_retention_days is not None: - pulumi.set(__self__, "min_retention_days", min_retention_days) + _setter("min_retention_days", min_retention_days) @property @pulumi.getter(name="backupVaultArn") @@ -251,6 +307,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VaultLockConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/backup/vault_notifications.py b/sdk/python/pulumi_aws/backup/vault_notifications.py index 1e212f8e3f4..96d6902688f 100644 --- a/sdk/python/pulumi_aws/backup/vault_notifications.py +++ b/sdk/python/pulumi_aws/backup/vault_notifications.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VaultNotificationsArgs', 'VaultNotifications'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] backup_vault_name: Name of the backup vault to add notifications for. :param pulumi.Input[str] sns_topic_arn: The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events """ - pulumi.set(__self__, "backup_vault_events", backup_vault_events) - pulumi.set(__self__, "backup_vault_name", backup_vault_name) - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + VaultNotificationsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_vault_events=backup_vault_events, + backup_vault_name=backup_vault_name, + sns_topic_arn=sns_topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_vault_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backup_vault_name: Optional[pulumi.Input[str]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_vault_events is None and 'backupVaultEvents' in kwargs: + backup_vault_events = kwargs['backupVaultEvents'] + if backup_vault_events is None: + raise TypeError("Missing 'backup_vault_events' argument") + if backup_vault_name is None and 'backupVaultName' in kwargs: + backup_vault_name = kwargs['backupVaultName'] + if backup_vault_name is None: + raise TypeError("Missing 'backup_vault_name' argument") + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if sns_topic_arn is None: + raise TypeError("Missing 'sns_topic_arn' argument") + + _setter("backup_vault_events", backup_vault_events) + _setter("backup_vault_name", backup_vault_name) + _setter("sns_topic_arn", sns_topic_arn) @property @pulumi.getter(name="backupVaultEvents") @@ -78,14 +105,39 @@ def __init__(__self__, *, :param pulumi.Input[str] backup_vault_name: Name of the backup vault to add notifications for. :param pulumi.Input[str] sns_topic_arn: The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events """ + _VaultNotificationsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_vault_arn=backup_vault_arn, + backup_vault_events=backup_vault_events, + backup_vault_name=backup_vault_name, + sns_topic_arn=sns_topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_vault_arn: Optional[pulumi.Input[str]] = None, + backup_vault_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backup_vault_name: Optional[pulumi.Input[str]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_vault_arn is None and 'backupVaultArn' in kwargs: + backup_vault_arn = kwargs['backupVaultArn'] + if backup_vault_events is None and 'backupVaultEvents' in kwargs: + backup_vault_events = kwargs['backupVaultEvents'] + if backup_vault_name is None and 'backupVaultName' in kwargs: + backup_vault_name = kwargs['backupVaultName'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if backup_vault_arn is not None: - pulumi.set(__self__, "backup_vault_arn", backup_vault_arn) + _setter("backup_vault_arn", backup_vault_arn) if backup_vault_events is not None: - pulumi.set(__self__, "backup_vault_events", backup_vault_events) + _setter("backup_vault_events", backup_vault_events) if backup_vault_name is not None: - pulumi.set(__self__, "backup_vault_name", backup_vault_name) + _setter("backup_vault_name", backup_vault_name) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) @property @pulumi.getter(name="backupVaultArn") @@ -249,6 +301,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VaultNotificationsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/backup/vault_policy.py b/sdk/python/pulumi_aws/backup/vault_policy.py index 0b19dc373e9..19b5dd5f7b1 100644 --- a/sdk/python/pulumi_aws/backup/vault_policy.py +++ b/sdk/python/pulumi_aws/backup/vault_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VaultPolicyArgs', 'VaultPolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] backup_vault_name: Name of the backup vault to add policy for. :param pulumi.Input[str] policy: The backup vault access policy document in JSON format. """ - pulumi.set(__self__, "backup_vault_name", backup_vault_name) - pulumi.set(__self__, "policy", policy) + VaultPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_vault_name=backup_vault_name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_vault_name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_vault_name is None and 'backupVaultName' in kwargs: + backup_vault_name = kwargs['backupVaultName'] + if backup_vault_name is None: + raise TypeError("Missing 'backup_vault_name' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("backup_vault_name", backup_vault_name) + _setter("policy", policy) @property @pulumi.getter(name="backupVaultName") @@ -61,12 +80,31 @@ def __init__(__self__, *, :param pulumi.Input[str] backup_vault_name: Name of the backup vault to add policy for. :param pulumi.Input[str] policy: The backup vault access policy document in JSON format. """ + _VaultPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_vault_arn=backup_vault_arn, + backup_vault_name=backup_vault_name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_vault_arn: Optional[pulumi.Input[str]] = None, + backup_vault_name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_vault_arn is None and 'backupVaultArn' in kwargs: + backup_vault_arn = kwargs['backupVaultArn'] + if backup_vault_name is None and 'backupVaultName' in kwargs: + backup_vault_name = kwargs['backupVaultName'] + if backup_vault_arn is not None: - pulumi.set(__self__, "backup_vault_arn", backup_vault_arn) + _setter("backup_vault_arn", backup_vault_arn) if backup_vault_name is not None: - pulumi.set(__self__, "backup_vault_name", backup_vault_name) + _setter("backup_vault_name", backup_vault_name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="backupVaultArn") @@ -216,6 +254,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VaultPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/batch/_inputs.py b/sdk/python/pulumi_aws/batch/_inputs.py index 42715330680..21356be232a 100644 --- a/sdk/python/pulumi_aws/batch/_inputs.py +++ b/sdk/python/pulumi_aws/batch/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -61,37 +61,114 @@ def __init__(__self__, *, :param pulumi.Input[str] spot_iam_fleet_role: The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This parameter is required for SPOT compute environments. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pair tags to be applied to resources that are launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. """ - pulumi.set(__self__, "max_vcpus", max_vcpus) - pulumi.set(__self__, "subnets", subnets) - pulumi.set(__self__, "type", type) + ComputeEnvironmentComputeResourcesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_vcpus=max_vcpus, + subnets=subnets, + type=type, + allocation_strategy=allocation_strategy, + bid_percentage=bid_percentage, + desired_vcpus=desired_vcpus, + ec2_configurations=ec2_configurations, + ec2_key_pair=ec2_key_pair, + image_id=image_id, + instance_role=instance_role, + instance_types=instance_types, + launch_template=launch_template, + min_vcpus=min_vcpus, + placement_group=placement_group, + security_group_ids=security_group_ids, + spot_iam_fleet_role=spot_iam_fleet_role, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_vcpus: Optional[pulumi.Input[int]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + allocation_strategy: Optional[pulumi.Input[str]] = None, + bid_percentage: Optional[pulumi.Input[int]] = None, + desired_vcpus: Optional[pulumi.Input[int]] = None, + ec2_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ComputeEnvironmentComputeResourcesEc2ConfigurationArgs']]]] = None, + ec2_key_pair: Optional[pulumi.Input[str]] = None, + image_id: Optional[pulumi.Input[str]] = None, + instance_role: Optional[pulumi.Input[str]] = None, + instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + launch_template: Optional[pulumi.Input['ComputeEnvironmentComputeResourcesLaunchTemplateArgs']] = None, + min_vcpus: Optional[pulumi.Input[int]] = None, + placement_group: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + spot_iam_fleet_role: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_vcpus is None and 'maxVcpus' in kwargs: + max_vcpus = kwargs['maxVcpus'] + if max_vcpus is None: + raise TypeError("Missing 'max_vcpus' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if bid_percentage is None and 'bidPercentage' in kwargs: + bid_percentage = kwargs['bidPercentage'] + if desired_vcpus is None and 'desiredVcpus' in kwargs: + desired_vcpus = kwargs['desiredVcpus'] + if ec2_configurations is None and 'ec2Configurations' in kwargs: + ec2_configurations = kwargs['ec2Configurations'] + if ec2_key_pair is None and 'ec2KeyPair' in kwargs: + ec2_key_pair = kwargs['ec2KeyPair'] + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if instance_role is None and 'instanceRole' in kwargs: + instance_role = kwargs['instanceRole'] + if instance_types is None and 'instanceTypes' in kwargs: + instance_types = kwargs['instanceTypes'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if min_vcpus is None and 'minVcpus' in kwargs: + min_vcpus = kwargs['minVcpus'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if spot_iam_fleet_role is None and 'spotIamFleetRole' in kwargs: + spot_iam_fleet_role = kwargs['spotIamFleetRole'] + + _setter("max_vcpus", max_vcpus) + _setter("subnets", subnets) + _setter("type", type) if allocation_strategy is not None: - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + _setter("allocation_strategy", allocation_strategy) if bid_percentage is not None: - pulumi.set(__self__, "bid_percentage", bid_percentage) + _setter("bid_percentage", bid_percentage) if desired_vcpus is not None: - pulumi.set(__self__, "desired_vcpus", desired_vcpus) + _setter("desired_vcpus", desired_vcpus) if ec2_configurations is not None: - pulumi.set(__self__, "ec2_configurations", ec2_configurations) + _setter("ec2_configurations", ec2_configurations) if ec2_key_pair is not None: - pulumi.set(__self__, "ec2_key_pair", ec2_key_pair) + _setter("ec2_key_pair", ec2_key_pair) if image_id is not None: - pulumi.set(__self__, "image_id", image_id) + _setter("image_id", image_id) if instance_role is not None: - pulumi.set(__self__, "instance_role", instance_role) + _setter("instance_role", instance_role) if instance_types is not None: - pulumi.set(__self__, "instance_types", instance_types) + _setter("instance_types", instance_types) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if min_vcpus is not None: - pulumi.set(__self__, "min_vcpus", min_vcpus) + _setter("min_vcpus", min_vcpus) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if spot_iam_fleet_role is not None: - pulumi.set(__self__, "spot_iam_fleet_role", spot_iam_fleet_role) + _setter("spot_iam_fleet_role", spot_iam_fleet_role) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="maxVcpus") @@ -307,10 +384,27 @@ def __init__(__self__, *, :param pulumi.Input[str] image_id_override: The AMI ID used for instances launched in the compute environment that match the image type. This setting overrides the `image_id` argument in the `compute_resources` block. :param pulumi.Input[str] image_type: The image type to match with the instance type to select an AMI. If the `image_id_override` parameter isn't specified, then a recent [Amazon ECS-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami) (`ECS_AL2`) is used. """ + ComputeEnvironmentComputeResourcesEc2ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_id_override=image_id_override, + image_type=image_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_id_override: Optional[pulumi.Input[str]] = None, + image_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_id_override is None and 'imageIdOverride' in kwargs: + image_id_override = kwargs['imageIdOverride'] + if image_type is None and 'imageType' in kwargs: + image_type = kwargs['imageType'] + if image_id_override is not None: - pulumi.set(__self__, "image_id_override", image_id_override) + _setter("image_id_override", image_id_override) if image_type is not None: - pulumi.set(__self__, "image_type", image_type) + _setter("image_type", image_type) @property @pulumi.getter(name="imageIdOverride") @@ -348,12 +442,31 @@ def __init__(__self__, *, :param pulumi.Input[str] launch_template_name: Name of the launch template. :param pulumi.Input[str] version: The version number of the launch template. Default: The default version of the launch template. """ + ComputeEnvironmentComputeResourcesLaunchTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[pulumi.Input[str]] = None, + launch_template_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="launchTemplateId") @@ -401,8 +514,29 @@ def __init__(__self__, *, :param pulumi.Input[str] eks_cluster_arn: The Amazon Resource Name (ARN) of the Amazon EKS cluster. :param pulumi.Input[str] kubernetes_namespace: The namespace of the Amazon EKS cluster. AWS Batch manages pods in this namespace. """ - pulumi.set(__self__, "eks_cluster_arn", eks_cluster_arn) - pulumi.set(__self__, "kubernetes_namespace", kubernetes_namespace) + ComputeEnvironmentEksConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eks_cluster_arn=eks_cluster_arn, + kubernetes_namespace=kubernetes_namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eks_cluster_arn: Optional[pulumi.Input[str]] = None, + kubernetes_namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eks_cluster_arn is None and 'eksClusterArn' in kwargs: + eks_cluster_arn = kwargs['eksClusterArn'] + if eks_cluster_arn is None: + raise TypeError("Missing 'eks_cluster_arn' argument") + if kubernetes_namespace is None and 'kubernetesNamespace' in kwargs: + kubernetes_namespace = kwargs['kubernetesNamespace'] + if kubernetes_namespace is None: + raise TypeError("Missing 'kubernetes_namespace' argument") + + _setter("eks_cluster_arn", eks_cluster_arn) + _setter("kubernetes_namespace", kubernetes_namespace) @property @pulumi.getter(name="eksClusterArn") @@ -438,10 +572,25 @@ def __init__(__self__, *, :param pulumi.Input[int] attempts: The number of times to move a job to the `RUNNABLE` status. You may specify between `1` and `10` attempts. :param pulumi.Input[Sequence[pulumi.Input['JobDefinitionRetryStrategyEvaluateOnExitArgs']]] evaluate_on_exits: The evaluate on exit conditions under which the job should be retried or failed. If this parameter is specified, then the `attempts` parameter must also be specified. You may specify up to 5 configuration blocks. """ + JobDefinitionRetryStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attempts=attempts, + evaluate_on_exits=evaluate_on_exits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attempts: Optional[pulumi.Input[int]] = None, + evaluate_on_exits: Optional[pulumi.Input[Sequence[pulumi.Input['JobDefinitionRetryStrategyEvaluateOnExitArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if evaluate_on_exits is None and 'evaluateOnExits' in kwargs: + evaluate_on_exits = kwargs['evaluateOnExits'] + if attempts is not None: - pulumi.set(__self__, "attempts", attempts) + _setter("attempts", attempts) if evaluate_on_exits is not None: - pulumi.set(__self__, "evaluate_on_exits", evaluate_on_exits) + _setter("evaluate_on_exits", evaluate_on_exits) @property @pulumi.getter @@ -481,13 +630,38 @@ def __init__(__self__, *, :param pulumi.Input[str] on_reason: A glob pattern to match against the reason returned for a job. :param pulumi.Input[str] on_status_reason: A glob pattern to match against the status reason returned for a job. """ - pulumi.set(__self__, "action", action) + JobDefinitionRetryStrategyEvaluateOnExitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + on_exit_code=on_exit_code, + on_reason=on_reason, + on_status_reason=on_status_reason, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + on_exit_code: Optional[pulumi.Input[str]] = None, + on_reason: Optional[pulumi.Input[str]] = None, + on_status_reason: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if on_exit_code is None and 'onExitCode' in kwargs: + on_exit_code = kwargs['onExitCode'] + if on_reason is None and 'onReason' in kwargs: + on_reason = kwargs['onReason'] + if on_status_reason is None and 'onStatusReason' in kwargs: + on_status_reason = kwargs['onStatusReason'] + + _setter("action", action) if on_exit_code is not None: - pulumi.set(__self__, "on_exit_code", on_exit_code) + _setter("on_exit_code", on_exit_code) if on_reason is not None: - pulumi.set(__self__, "on_reason", on_reason) + _setter("on_reason", on_reason) if on_status_reason is not None: - pulumi.set(__self__, "on_status_reason", on_status_reason) + _setter("on_status_reason", on_status_reason) @property @pulumi.getter @@ -545,8 +719,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] attempt_duration_seconds: The time duration in seconds after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is `60` seconds. """ + JobDefinitionTimeoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attempt_duration_seconds=attempt_duration_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attempt_duration_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attempt_duration_seconds is None and 'attemptDurationSeconds' in kwargs: + attempt_duration_seconds = kwargs['attemptDurationSeconds'] + if attempt_duration_seconds is not None: - pulumi.set(__self__, "attempt_duration_seconds", attempt_duration_seconds) + _setter("attempt_duration_seconds", attempt_duration_seconds) @property @pulumi.getter(name="attemptDurationSeconds") @@ -567,12 +754,27 @@ def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, update: Optional[pulumi.Input[str]] = None): + JobQueueTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -612,12 +814,33 @@ def __init__(__self__, *, :param pulumi.Input[int] compute_reservation: A value used to reserve some of the available maximum vCPU for fair share identifiers that have not yet been used. For more information, see [FairsharePolicy](https://docs.aws.amazon.com/batch/latest/APIReference/API_FairsharePolicy.html). :param pulumi.Input[Sequence[pulumi.Input['SchedulingPolicyFairSharePolicyShareDistributionArgs']]] share_distributions: One or more share distribution blocks which define the weights for the fair share identifiers for the fair share policy. For more information, see [FairsharePolicy](https://docs.aws.amazon.com/batch/latest/APIReference/API_FairsharePolicy.html). The `share_distribution` block is documented below. """ + SchedulingPolicyFairSharePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_reservation=compute_reservation, + share_decay_seconds=share_decay_seconds, + share_distributions=share_distributions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_reservation: Optional[pulumi.Input[int]] = None, + share_decay_seconds: Optional[pulumi.Input[int]] = None, + share_distributions: Optional[pulumi.Input[Sequence[pulumi.Input['SchedulingPolicyFairSharePolicyShareDistributionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_reservation is None and 'computeReservation' in kwargs: + compute_reservation = kwargs['computeReservation'] + if share_decay_seconds is None and 'shareDecaySeconds' in kwargs: + share_decay_seconds = kwargs['shareDecaySeconds'] + if share_distributions is None and 'shareDistributions' in kwargs: + share_distributions = kwargs['shareDistributions'] + if compute_reservation is not None: - pulumi.set(__self__, "compute_reservation", compute_reservation) + _setter("compute_reservation", compute_reservation) if share_decay_seconds is not None: - pulumi.set(__self__, "share_decay_seconds", share_decay_seconds) + _setter("share_decay_seconds", share_decay_seconds) if share_distributions is not None: - pulumi.set(__self__, "share_distributions", share_distributions) + _setter("share_distributions", share_distributions) @property @pulumi.getter(name="computeReservation") @@ -662,9 +885,28 @@ def __init__(__self__, *, :param pulumi.Input[str] share_identifier: A fair share identifier or fair share identifier prefix. For more information, see [ShareAttributes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ShareAttributes.html). :param pulumi.Input[float] weight_factor: The weight factor for the fair share identifier. For more information, see [ShareAttributes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ShareAttributes.html). """ - pulumi.set(__self__, "share_identifier", share_identifier) + SchedulingPolicyFairSharePolicyShareDistributionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + share_identifier=share_identifier, + weight_factor=weight_factor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + share_identifier: Optional[pulumi.Input[str]] = None, + weight_factor: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if share_identifier is None and 'shareIdentifier' in kwargs: + share_identifier = kwargs['shareIdentifier'] + if share_identifier is None: + raise TypeError("Missing 'share_identifier' argument") + if weight_factor is None and 'weightFactor' in kwargs: + weight_factor = kwargs['weightFactor'] + + _setter("share_identifier", share_identifier) if weight_factor is not None: - pulumi.set(__self__, "weight_factor", weight_factor) + _setter("weight_factor", weight_factor) @property @pulumi.getter(name="shareIdentifier") diff --git a/sdk/python/pulumi_aws/batch/compute_environment.py b/sdk/python/pulumi_aws/batch/compute_environment.py index 405989d1a20..bd46234d5fc 100644 --- a/sdk/python/pulumi_aws/batch/compute_environment.py +++ b/sdk/python/pulumi_aws/batch/compute_environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,21 +35,58 @@ def __init__(__self__, *, :param pulumi.Input[str] state: The state of the compute environment. If the state is `ENABLED`, then the compute environment accepts jobs from a queue and can scale out automatically based on queues. Valid items are `ENABLED` or `DISABLED`. Defaults to `ENABLED`. :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. """ - pulumi.set(__self__, "type", type) + ComputeEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + compute_environment_name=compute_environment_name, + compute_environment_name_prefix=compute_environment_name_prefix, + compute_resources=compute_resources, + eks_configuration=eks_configuration, + service_role=service_role, + state=state, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + compute_environment_name: Optional[pulumi.Input[str]] = None, + compute_environment_name_prefix: Optional[pulumi.Input[str]] = None, + compute_resources: Optional[pulumi.Input['ComputeEnvironmentComputeResourcesArgs']] = None, + eks_configuration: Optional[pulumi.Input['ComputeEnvironmentEksConfigurationArgs']] = None, + service_role: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if compute_environment_name is None and 'computeEnvironmentName' in kwargs: + compute_environment_name = kwargs['computeEnvironmentName'] + if compute_environment_name_prefix is None and 'computeEnvironmentNamePrefix' in kwargs: + compute_environment_name_prefix = kwargs['computeEnvironmentNamePrefix'] + if compute_resources is None and 'computeResources' in kwargs: + compute_resources = kwargs['computeResources'] + if eks_configuration is None and 'eksConfiguration' in kwargs: + eks_configuration = kwargs['eksConfiguration'] + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + + _setter("type", type) if compute_environment_name is not None: - pulumi.set(__self__, "compute_environment_name", compute_environment_name) + _setter("compute_environment_name", compute_environment_name) if compute_environment_name_prefix is not None: - pulumi.set(__self__, "compute_environment_name_prefix", compute_environment_name_prefix) + _setter("compute_environment_name_prefix", compute_environment_name_prefix) if compute_resources is not None: - pulumi.set(__self__, "compute_resources", compute_resources) + _setter("compute_resources", compute_resources) if eks_configuration is not None: - pulumi.set(__self__, "eks_configuration", eks_configuration) + _setter("eks_configuration", eks_configuration) if service_role is not None: - pulumi.set(__self__, "service_role", service_role) + _setter("service_role", service_role) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -180,35 +217,86 @@ def __init__(__self__, *, :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] type: The type of the compute environment. Valid items are `MANAGED` or `UNMANAGED`. """ + _ComputeEnvironmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + compute_environment_name=compute_environment_name, + compute_environment_name_prefix=compute_environment_name_prefix, + compute_resources=compute_resources, + ecs_cluster_arn=ecs_cluster_arn, + eks_configuration=eks_configuration, + service_role=service_role, + state=state, + status=status, + status_reason=status_reason, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + compute_environment_name: Optional[pulumi.Input[str]] = None, + compute_environment_name_prefix: Optional[pulumi.Input[str]] = None, + compute_resources: Optional[pulumi.Input['ComputeEnvironmentComputeResourcesArgs']] = None, + ecs_cluster_arn: Optional[pulumi.Input[str]] = None, + eks_configuration: Optional[pulumi.Input['ComputeEnvironmentEksConfigurationArgs']] = None, + service_role: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + status_reason: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_environment_name is None and 'computeEnvironmentName' in kwargs: + compute_environment_name = kwargs['computeEnvironmentName'] + if compute_environment_name_prefix is None and 'computeEnvironmentNamePrefix' in kwargs: + compute_environment_name_prefix = kwargs['computeEnvironmentNamePrefix'] + if compute_resources is None and 'computeResources' in kwargs: + compute_resources = kwargs['computeResources'] + if ecs_cluster_arn is None and 'ecsClusterArn' in kwargs: + ecs_cluster_arn = kwargs['ecsClusterArn'] + if eks_configuration is None and 'eksConfiguration' in kwargs: + eks_configuration = kwargs['eksConfiguration'] + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if status_reason is None and 'statusReason' in kwargs: + status_reason = kwargs['statusReason'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if compute_environment_name is not None: - pulumi.set(__self__, "compute_environment_name", compute_environment_name) + _setter("compute_environment_name", compute_environment_name) if compute_environment_name_prefix is not None: - pulumi.set(__self__, "compute_environment_name_prefix", compute_environment_name_prefix) + _setter("compute_environment_name_prefix", compute_environment_name_prefix) if compute_resources is not None: - pulumi.set(__self__, "compute_resources", compute_resources) + _setter("compute_resources", compute_resources) if ecs_cluster_arn is not None: - pulumi.set(__self__, "ecs_cluster_arn", ecs_cluster_arn) + _setter("ecs_cluster_arn", ecs_cluster_arn) if eks_configuration is not None: - pulumi.set(__self__, "eks_configuration", eks_configuration) + _setter("eks_configuration", eks_configuration) if service_role is not None: - pulumi.set(__self__, "service_role", service_role) + _setter("service_role", service_role) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_reason is not None: - pulumi.set(__self__, "status_reason", status_reason) + _setter("status_reason", status_reason) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -601,6 +689,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ComputeEnvironmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -625,7 +717,9 @@ def _internal_init(__self__, __props__.__dict__["compute_environment_name"] = compute_environment_name __props__.__dict__["compute_environment_name_prefix"] = compute_environment_name_prefix + compute_resources = _utilities.configure(compute_resources, ComputeEnvironmentComputeResourcesArgs, True) __props__.__dict__["compute_resources"] = compute_resources + eks_configuration = _utilities.configure(eks_configuration, ComputeEnvironmentEksConfigurationArgs, True) __props__.__dict__["eks_configuration"] = eks_configuration __props__.__dict__["service_role"] = service_role __props__.__dict__["state"] = state diff --git a/sdk/python/pulumi_aws/batch/get_compute_environment.py b/sdk/python/pulumi_aws/batch/get_compute_environment.py index 969e3c711e9..f6be2c83858 100644 --- a/sdk/python/pulumi_aws/batch/get_compute_environment.py +++ b/sdk/python/pulumi_aws/batch/get_compute_environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/batch/get_job_queue.py b/sdk/python/pulumi_aws/batch/get_job_queue.py index 63080fd9aee..87def48b433 100644 --- a/sdk/python/pulumi_aws/batch/get_job_queue.py +++ b/sdk/python/pulumi_aws/batch/get_job_queue.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/batch/get_scheduling_policy.py b/sdk/python/pulumi_aws/batch/get_scheduling_policy.py index 46baba42e25..3e1a8ad36b0 100644 --- a/sdk/python/pulumi_aws/batch/get_scheduling_policy.py +++ b/sdk/python/pulumi_aws/batch/get_scheduling_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/batch/job_definition.py b/sdk/python/pulumi_aws/batch/job_definition.py index 2fc940a8e5c..a0c34e92655 100644 --- a/sdk/python/pulumi_aws/batch/job_definition.py +++ b/sdk/python/pulumi_aws/batch/job_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,23 +41,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['JobDefinitionTimeoutArgs'] timeout: Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of `timeout` is `1`. Defined below. """ - pulumi.set(__self__, "type", type) + JobDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + container_properties=container_properties, + name=name, + parameters=parameters, + platform_capabilities=platform_capabilities, + propagate_tags=propagate_tags, + retry_strategy=retry_strategy, + tags=tags, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + container_properties: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + platform_capabilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + propagate_tags: Optional[pulumi.Input[bool]] = None, + retry_strategy: Optional[pulumi.Input['JobDefinitionRetryStrategyArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout: Optional[pulumi.Input['JobDefinitionTimeoutArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if container_properties is None and 'containerProperties' in kwargs: + container_properties = kwargs['containerProperties'] + if platform_capabilities is None and 'platformCapabilities' in kwargs: + platform_capabilities = kwargs['platformCapabilities'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if retry_strategy is None and 'retryStrategy' in kwargs: + retry_strategy = kwargs['retryStrategy'] + + _setter("type", type) if container_properties is not None: - pulumi.set(__self__, "container_properties", container_properties) + _setter("container_properties", container_properties) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if platform_capabilities is not None: - pulumi.set(__self__, "platform_capabilities", platform_capabilities) + _setter("platform_capabilities", platform_capabilities) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if retry_strategy is not None: - pulumi.set(__self__, "retry_strategy", retry_strategy) + _setter("retry_strategy", retry_strategy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -206,33 +243,76 @@ def __init__(__self__, *, The following arguments are optional: """ + _JobDefinitionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + container_properties=container_properties, + name=name, + parameters=parameters, + platform_capabilities=platform_capabilities, + propagate_tags=propagate_tags, + retry_strategy=retry_strategy, + revision=revision, + tags=tags, + tags_all=tags_all, + timeout=timeout, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + container_properties: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + platform_capabilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + propagate_tags: Optional[pulumi.Input[bool]] = None, + retry_strategy: Optional[pulumi.Input['JobDefinitionRetryStrategyArgs']] = None, + revision: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout: Optional[pulumi.Input['JobDefinitionTimeoutArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_properties is None and 'containerProperties' in kwargs: + container_properties = kwargs['containerProperties'] + if platform_capabilities is None and 'platformCapabilities' in kwargs: + platform_capabilities = kwargs['platformCapabilities'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if retry_strategy is None and 'retryStrategy' in kwargs: + retry_strategy = kwargs['retryStrategy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if container_properties is not None: - pulumi.set(__self__, "container_properties", container_properties) + _setter("container_properties", container_properties) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if platform_capabilities is not None: - pulumi.set(__self__, "platform_capabilities", platform_capabilities) + _setter("platform_capabilities", platform_capabilities) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if retry_strategy is not None: - pulumi.set(__self__, "retry_strategy", retry_strategy) + _setter("retry_strategy", retry_strategy) if revision is not None: - pulumi.set(__self__, "revision", revision) + _setter("revision", revision) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -639,6 +719,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + JobDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -667,8 +751,10 @@ def _internal_init(__self__, __props__.__dict__["parameters"] = parameters __props__.__dict__["platform_capabilities"] = platform_capabilities __props__.__dict__["propagate_tags"] = propagate_tags + retry_strategy = _utilities.configure(retry_strategy, JobDefinitionRetryStrategyArgs, True) __props__.__dict__["retry_strategy"] = retry_strategy __props__.__dict__["tags"] = tags + timeout = _utilities.configure(timeout, JobDefinitionTimeoutArgs, True) __props__.__dict__["timeout"] = timeout if type is None and not opts.urn: raise TypeError("Missing required property 'type'") diff --git a/sdk/python/pulumi_aws/batch/job_queue.py b/sdk/python/pulumi_aws/batch/job_queue.py index ed5c5e6a3ca..d3a0990ece7 100644 --- a/sdk/python/pulumi_aws/batch/job_queue.py +++ b/sdk/python/pulumi_aws/batch/job_queue.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -34,17 +34,50 @@ def __init__(__self__, *, :param pulumi.Input[str] scheduling_policy_arn: The ARN of the fair share scheduling policy. If this parameter is specified, the job queue uses a fair share scheduling policy. If this parameter isn't specified, the job queue uses a first in, first out (FIFO) scheduling policy. After a job queue is created, you can replace but can't remove the fair share scheduling policy. :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. """ - pulumi.set(__self__, "compute_environments", compute_environments) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "state", state) + JobQueueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_environments=compute_environments, + priority=priority, + state=state, + name=name, + scheduling_policy_arn=scheduling_policy_arn, + tags=tags, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + priority: Optional[pulumi.Input[int]] = None, + state: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + scheduling_policy_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['JobQueueTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_environments is None and 'computeEnvironments' in kwargs: + compute_environments = kwargs['computeEnvironments'] + if compute_environments is None: + raise TypeError("Missing 'compute_environments' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if state is None: + raise TypeError("Missing 'state' argument") + if scheduling_policy_arn is None and 'schedulingPolicyArn' in kwargs: + scheduling_policy_arn = kwargs['schedulingPolicyArn'] + + _setter("compute_environments", compute_environments) + _setter("priority", priority) + _setter("state", state) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if scheduling_policy_arn is not None: - pulumi.set(__self__, "scheduling_policy_arn", scheduling_policy_arn) + _setter("scheduling_policy_arn", scheduling_policy_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="computeEnvironments") @@ -155,27 +188,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _JobQueueState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + compute_environments=compute_environments, + name=name, + priority=priority, + scheduling_policy_arn=scheduling_policy_arn, + state=state, + tags=tags, + tags_all=tags_all, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + compute_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + scheduling_policy_arn: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['JobQueueTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_environments is None and 'computeEnvironments' in kwargs: + compute_environments = kwargs['computeEnvironments'] + if scheduling_policy_arn is None and 'schedulingPolicyArn' in kwargs: + scheduling_policy_arn = kwargs['schedulingPolicyArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if compute_environments is not None: - pulumi.set(__self__, "compute_environments", compute_environments) + _setter("compute_environments", compute_environments) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if scheduling_policy_arn is not None: - pulumi.set(__self__, "scheduling_policy_arn", scheduling_policy_arn) + _setter("scheduling_policy_arn", scheduling_policy_arn) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -428,6 +494,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + JobQueueArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -461,6 +531,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'state'") __props__.__dict__["state"] = state __props__.__dict__["tags"] = tags + timeouts = _utilities.configure(timeouts, JobQueueTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/batch/outputs.py b/sdk/python/pulumi_aws/batch/outputs.py index 723d1354cb3..813e947ca0f 100644 --- a/sdk/python/pulumi_aws/batch/outputs.py +++ b/sdk/python/pulumi_aws/batch/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -108,37 +108,114 @@ def __init__(__self__, *, :param str spot_iam_fleet_role: The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This parameter is required for SPOT compute environments. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. :param Mapping[str, str] tags: Key-value pair tags to be applied to resources that are launched in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. """ - pulumi.set(__self__, "max_vcpus", max_vcpus) - pulumi.set(__self__, "subnets", subnets) - pulumi.set(__self__, "type", type) + ComputeEnvironmentComputeResources._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_vcpus=max_vcpus, + subnets=subnets, + type=type, + allocation_strategy=allocation_strategy, + bid_percentage=bid_percentage, + desired_vcpus=desired_vcpus, + ec2_configurations=ec2_configurations, + ec2_key_pair=ec2_key_pair, + image_id=image_id, + instance_role=instance_role, + instance_types=instance_types, + launch_template=launch_template, + min_vcpus=min_vcpus, + placement_group=placement_group, + security_group_ids=security_group_ids, + spot_iam_fleet_role=spot_iam_fleet_role, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_vcpus: Optional[int] = None, + subnets: Optional[Sequence[str]] = None, + type: Optional[str] = None, + allocation_strategy: Optional[str] = None, + bid_percentage: Optional[int] = None, + desired_vcpus: Optional[int] = None, + ec2_configurations: Optional[Sequence['outputs.ComputeEnvironmentComputeResourcesEc2Configuration']] = None, + ec2_key_pair: Optional[str] = None, + image_id: Optional[str] = None, + instance_role: Optional[str] = None, + instance_types: Optional[Sequence[str]] = None, + launch_template: Optional['outputs.ComputeEnvironmentComputeResourcesLaunchTemplate'] = None, + min_vcpus: Optional[int] = None, + placement_group: Optional[str] = None, + security_group_ids: Optional[Sequence[str]] = None, + spot_iam_fleet_role: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_vcpus is None and 'maxVcpus' in kwargs: + max_vcpus = kwargs['maxVcpus'] + if max_vcpus is None: + raise TypeError("Missing 'max_vcpus' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if bid_percentage is None and 'bidPercentage' in kwargs: + bid_percentage = kwargs['bidPercentage'] + if desired_vcpus is None and 'desiredVcpus' in kwargs: + desired_vcpus = kwargs['desiredVcpus'] + if ec2_configurations is None and 'ec2Configurations' in kwargs: + ec2_configurations = kwargs['ec2Configurations'] + if ec2_key_pair is None and 'ec2KeyPair' in kwargs: + ec2_key_pair = kwargs['ec2KeyPair'] + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if instance_role is None and 'instanceRole' in kwargs: + instance_role = kwargs['instanceRole'] + if instance_types is None and 'instanceTypes' in kwargs: + instance_types = kwargs['instanceTypes'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if min_vcpus is None and 'minVcpus' in kwargs: + min_vcpus = kwargs['minVcpus'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if spot_iam_fleet_role is None and 'spotIamFleetRole' in kwargs: + spot_iam_fleet_role = kwargs['spotIamFleetRole'] + + _setter("max_vcpus", max_vcpus) + _setter("subnets", subnets) + _setter("type", type) if allocation_strategy is not None: - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + _setter("allocation_strategy", allocation_strategy) if bid_percentage is not None: - pulumi.set(__self__, "bid_percentage", bid_percentage) + _setter("bid_percentage", bid_percentage) if desired_vcpus is not None: - pulumi.set(__self__, "desired_vcpus", desired_vcpus) + _setter("desired_vcpus", desired_vcpus) if ec2_configurations is not None: - pulumi.set(__self__, "ec2_configurations", ec2_configurations) + _setter("ec2_configurations", ec2_configurations) if ec2_key_pair is not None: - pulumi.set(__self__, "ec2_key_pair", ec2_key_pair) + _setter("ec2_key_pair", ec2_key_pair) if image_id is not None: - pulumi.set(__self__, "image_id", image_id) + _setter("image_id", image_id) if instance_role is not None: - pulumi.set(__self__, "instance_role", instance_role) + _setter("instance_role", instance_role) if instance_types is not None: - pulumi.set(__self__, "instance_types", instance_types) + _setter("instance_types", instance_types) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if min_vcpus is not None: - pulumi.set(__self__, "min_vcpus", min_vcpus) + _setter("min_vcpus", min_vcpus) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if spot_iam_fleet_role is not None: - pulumi.set(__self__, "spot_iam_fleet_role", spot_iam_fleet_role) + _setter("spot_iam_fleet_role", spot_iam_fleet_role) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="maxVcpus") @@ -305,10 +382,27 @@ def __init__(__self__, *, :param str image_id_override: The AMI ID used for instances launched in the compute environment that match the image type. This setting overrides the `image_id` argument in the `compute_resources` block. :param str image_type: The image type to match with the instance type to select an AMI. If the `image_id_override` parameter isn't specified, then a recent [Amazon ECS-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami) (`ECS_AL2`) is used. """ + ComputeEnvironmentComputeResourcesEc2Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_id_override=image_id_override, + image_type=image_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_id_override: Optional[str] = None, + image_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_id_override is None and 'imageIdOverride' in kwargs: + image_id_override = kwargs['imageIdOverride'] + if image_type is None and 'imageType' in kwargs: + image_type = kwargs['imageType'] + if image_id_override is not None: - pulumi.set(__self__, "image_id_override", image_id_override) + _setter("image_id_override", image_id_override) if image_type is not None: - pulumi.set(__self__, "image_type", image_type) + _setter("image_type", image_type) @property @pulumi.getter(name="imageIdOverride") @@ -357,12 +451,31 @@ def __init__(__self__, *, :param str launch_template_name: Name of the launch template. :param str version: The version number of the launch template. Default: The default version of the launch template. """ + ComputeEnvironmentComputeResourcesLaunchTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[str] = None, + launch_template_name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="launchTemplateId") @@ -417,8 +530,29 @@ def __init__(__self__, *, :param str eks_cluster_arn: The Amazon Resource Name (ARN) of the Amazon EKS cluster. :param str kubernetes_namespace: The namespace of the Amazon EKS cluster. AWS Batch manages pods in this namespace. """ - pulumi.set(__self__, "eks_cluster_arn", eks_cluster_arn) - pulumi.set(__self__, "kubernetes_namespace", kubernetes_namespace) + ComputeEnvironmentEksConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + eks_cluster_arn=eks_cluster_arn, + kubernetes_namespace=kubernetes_namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eks_cluster_arn: Optional[str] = None, + kubernetes_namespace: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eks_cluster_arn is None and 'eksClusterArn' in kwargs: + eks_cluster_arn = kwargs['eksClusterArn'] + if eks_cluster_arn is None: + raise TypeError("Missing 'eks_cluster_arn' argument") + if kubernetes_namespace is None and 'kubernetesNamespace' in kwargs: + kubernetes_namespace = kwargs['kubernetesNamespace'] + if kubernetes_namespace is None: + raise TypeError("Missing 'kubernetes_namespace' argument") + + _setter("eks_cluster_arn", eks_cluster_arn) + _setter("kubernetes_namespace", kubernetes_namespace) @property @pulumi.getter(name="eksClusterArn") @@ -463,10 +597,25 @@ def __init__(__self__, *, :param int attempts: The number of times to move a job to the `RUNNABLE` status. You may specify between `1` and `10` attempts. :param Sequence['JobDefinitionRetryStrategyEvaluateOnExitArgs'] evaluate_on_exits: The evaluate on exit conditions under which the job should be retried or failed. If this parameter is specified, then the `attempts` parameter must also be specified. You may specify up to 5 configuration blocks. """ + JobDefinitionRetryStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + attempts=attempts, + evaluate_on_exits=evaluate_on_exits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attempts: Optional[int] = None, + evaluate_on_exits: Optional[Sequence['outputs.JobDefinitionRetryStrategyEvaluateOnExit']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if evaluate_on_exits is None and 'evaluateOnExits' in kwargs: + evaluate_on_exits = kwargs['evaluateOnExits'] + if attempts is not None: - pulumi.set(__self__, "attempts", attempts) + _setter("attempts", attempts) if evaluate_on_exits is not None: - pulumi.set(__self__, "evaluate_on_exits", evaluate_on_exits) + _setter("evaluate_on_exits", evaluate_on_exits) @property @pulumi.getter @@ -519,13 +668,38 @@ def __init__(__self__, *, :param str on_reason: A glob pattern to match against the reason returned for a job. :param str on_status_reason: A glob pattern to match against the status reason returned for a job. """ - pulumi.set(__self__, "action", action) + JobDefinitionRetryStrategyEvaluateOnExit._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + on_exit_code=on_exit_code, + on_reason=on_reason, + on_status_reason=on_status_reason, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + on_exit_code: Optional[str] = None, + on_reason: Optional[str] = None, + on_status_reason: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if on_exit_code is None and 'onExitCode' in kwargs: + on_exit_code = kwargs['onExitCode'] + if on_reason is None and 'onReason' in kwargs: + on_reason = kwargs['onReason'] + if on_status_reason is None and 'onStatusReason' in kwargs: + on_status_reason = kwargs['onStatusReason'] + + _setter("action", action) if on_exit_code is not None: - pulumi.set(__self__, "on_exit_code", on_exit_code) + _setter("on_exit_code", on_exit_code) if on_reason is not None: - pulumi.set(__self__, "on_reason", on_reason) + _setter("on_reason", on_reason) if on_status_reason is not None: - pulumi.set(__self__, "on_status_reason", on_status_reason) + _setter("on_status_reason", on_status_reason) @property @pulumi.getter @@ -584,8 +758,21 @@ def __init__(__self__, *, """ :param int attempt_duration_seconds: The time duration in seconds after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is `60` seconds. """ + JobDefinitionTimeout._configure( + lambda key, value: pulumi.set(__self__, key, value), + attempt_duration_seconds=attempt_duration_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attempt_duration_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attempt_duration_seconds is None and 'attemptDurationSeconds' in kwargs: + attempt_duration_seconds = kwargs['attemptDurationSeconds'] + if attempt_duration_seconds is not None: - pulumi.set(__self__, "attempt_duration_seconds", attempt_duration_seconds) + _setter("attempt_duration_seconds", attempt_duration_seconds) @property @pulumi.getter(name="attemptDurationSeconds") @@ -602,12 +789,27 @@ def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, update: Optional[str] = None): + JobQueueTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -656,12 +858,33 @@ def __init__(__self__, *, :param int compute_reservation: A value used to reserve some of the available maximum vCPU for fair share identifiers that have not yet been used. For more information, see [FairsharePolicy](https://docs.aws.amazon.com/batch/latest/APIReference/API_FairsharePolicy.html). :param Sequence['SchedulingPolicyFairSharePolicyShareDistributionArgs'] share_distributions: One or more share distribution blocks which define the weights for the fair share identifiers for the fair share policy. For more information, see [FairsharePolicy](https://docs.aws.amazon.com/batch/latest/APIReference/API_FairsharePolicy.html). The `share_distribution` block is documented below. """ + SchedulingPolicyFairSharePolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_reservation=compute_reservation, + share_decay_seconds=share_decay_seconds, + share_distributions=share_distributions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_reservation: Optional[int] = None, + share_decay_seconds: Optional[int] = None, + share_distributions: Optional[Sequence['outputs.SchedulingPolicyFairSharePolicyShareDistribution']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_reservation is None and 'computeReservation' in kwargs: + compute_reservation = kwargs['computeReservation'] + if share_decay_seconds is None and 'shareDecaySeconds' in kwargs: + share_decay_seconds = kwargs['shareDecaySeconds'] + if share_distributions is None and 'shareDistributions' in kwargs: + share_distributions = kwargs['shareDistributions'] + if compute_reservation is not None: - pulumi.set(__self__, "compute_reservation", compute_reservation) + _setter("compute_reservation", compute_reservation) if share_decay_seconds is not None: - pulumi.set(__self__, "share_decay_seconds", share_decay_seconds) + _setter("share_decay_seconds", share_decay_seconds) if share_distributions is not None: - pulumi.set(__self__, "share_distributions", share_distributions) + _setter("share_distributions", share_distributions) @property @pulumi.getter(name="computeReservation") @@ -713,9 +936,28 @@ def __init__(__self__, *, :param str share_identifier: A fair share identifier or fair share identifier prefix. For more information, see [ShareAttributes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ShareAttributes.html). :param float weight_factor: The weight factor for the fair share identifier. For more information, see [ShareAttributes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ShareAttributes.html). """ - pulumi.set(__self__, "share_identifier", share_identifier) + SchedulingPolicyFairSharePolicyShareDistribution._configure( + lambda key, value: pulumi.set(__self__, key, value), + share_identifier=share_identifier, + weight_factor=weight_factor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + share_identifier: Optional[str] = None, + weight_factor: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if share_identifier is None and 'shareIdentifier' in kwargs: + share_identifier = kwargs['shareIdentifier'] + if share_identifier is None: + raise TypeError("Missing 'share_identifier' argument") + if weight_factor is None and 'weightFactor' in kwargs: + weight_factor = kwargs['weightFactor'] + + _setter("share_identifier", share_identifier) if weight_factor is not None: - pulumi.set(__self__, "weight_factor", weight_factor) + _setter("weight_factor", weight_factor) @property @pulumi.getter(name="shareIdentifier") @@ -739,8 +981,27 @@ class GetJobQueueComputeEnvironmentOrderResult(dict): def __init__(__self__, *, compute_environment: str, order: int): - pulumi.set(__self__, "compute_environment", compute_environment) - pulumi.set(__self__, "order", order) + GetJobQueueComputeEnvironmentOrderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_environment=compute_environment, + order=order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_environment: Optional[str] = None, + order: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_environment is None and 'computeEnvironment' in kwargs: + compute_environment = kwargs['computeEnvironment'] + if compute_environment is None: + raise TypeError("Missing 'compute_environment' argument") + if order is None: + raise TypeError("Missing 'order' argument") + + _setter("compute_environment", compute_environment) + _setter("order", order) @property @pulumi.getter(name="computeEnvironment") @@ -763,9 +1024,36 @@ def __init__(__self__, *, :param int compute_reservation: Value used to reserve some of the available maximum vCPU for fair share identifiers that have not yet been used. For more information, see [FairsharePolicy](https://docs.aws.amazon.com/batch/latest/APIReference/API_FairsharePolicy.html). :param Sequence['GetSchedulingPolicyFairSharePolicyShareDistributionArgs'] share_distributions: One or more share distribution blocks which define the weights for the fair share identifiers for the fair share policy. For more information, see [FairsharePolicy](https://docs.aws.amazon.com/batch/latest/APIReference/API_FairsharePolicy.html). The `share_distribution` block is documented below. """ - pulumi.set(__self__, "compute_reservation", compute_reservation) - pulumi.set(__self__, "share_decay_seconds", share_decay_seconds) - pulumi.set(__self__, "share_distributions", share_distributions) + GetSchedulingPolicyFairSharePolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_reservation=compute_reservation, + share_decay_seconds=share_decay_seconds, + share_distributions=share_distributions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_reservation: Optional[int] = None, + share_decay_seconds: Optional[int] = None, + share_distributions: Optional[Sequence['outputs.GetSchedulingPolicyFairSharePolicyShareDistributionResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_reservation is None and 'computeReservation' in kwargs: + compute_reservation = kwargs['computeReservation'] + if compute_reservation is None: + raise TypeError("Missing 'compute_reservation' argument") + if share_decay_seconds is None and 'shareDecaySeconds' in kwargs: + share_decay_seconds = kwargs['shareDecaySeconds'] + if share_decay_seconds is None: + raise TypeError("Missing 'share_decay_seconds' argument") + if share_distributions is None and 'shareDistributions' in kwargs: + share_distributions = kwargs['shareDistributions'] + if share_distributions is None: + raise TypeError("Missing 'share_distributions' argument") + + _setter("compute_reservation", compute_reservation) + _setter("share_decay_seconds", share_decay_seconds) + _setter("share_distributions", share_distributions) @property @pulumi.getter(name="computeReservation") @@ -798,8 +1086,29 @@ def __init__(__self__, *, :param str share_identifier: Fair share identifier or fair share identifier prefix. For more information, see [ShareAttributes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ShareAttributes.html). :param float weight_factor: Weight factor for the fair share identifier. For more information, see [ShareAttributes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ShareAttributes.html). """ - pulumi.set(__self__, "share_identifier", share_identifier) - pulumi.set(__self__, "weight_factor", weight_factor) + GetSchedulingPolicyFairSharePolicyShareDistributionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + share_identifier=share_identifier, + weight_factor=weight_factor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + share_identifier: Optional[str] = None, + weight_factor: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if share_identifier is None and 'shareIdentifier' in kwargs: + share_identifier = kwargs['shareIdentifier'] + if share_identifier is None: + raise TypeError("Missing 'share_identifier' argument") + if weight_factor is None and 'weightFactor' in kwargs: + weight_factor = kwargs['weightFactor'] + if weight_factor is None: + raise TypeError("Missing 'weight_factor' argument") + + _setter("share_identifier", share_identifier) + _setter("weight_factor", weight_factor) @property @pulumi.getter(name="shareIdentifier") diff --git a/sdk/python/pulumi_aws/batch/scheduling_policy.py b/sdk/python/pulumi_aws/batch/scheduling_policy.py index a5fe5ed1330..aa49db677a6 100644 --- a/sdk/python/pulumi_aws/batch/scheduling_policy.py +++ b/sdk/python/pulumi_aws/batch/scheduling_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -24,12 +24,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Specifies the name of the scheduling policy. :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. """ + SchedulingPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fair_share_policy=fair_share_policy, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fair_share_policy: Optional[pulumi.Input['SchedulingPolicyFairSharePolicyArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fair_share_policy is None and 'fairSharePolicy' in kwargs: + fair_share_policy = kwargs['fairSharePolicy'] + if fair_share_policy is not None: - pulumi.set(__self__, "fair_share_policy", fair_share_policy) + _setter("fair_share_policy", fair_share_policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="fairSharePolicy") @@ -80,19 +97,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _SchedulingPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + fair_share_policy=fair_share_policy, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + fair_share_policy: Optional[pulumi.Input['SchedulingPolicyFairSharePolicyArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fair_share_policy is None and 'fairSharePolicy' in kwargs: + fair_share_policy = kwargs['fairSharePolicy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if fair_share_policy is not None: - pulumi.set(__self__, "fair_share_policy", fair_share_policy) + _setter("fair_share_policy", fair_share_policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -259,6 +299,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SchedulingPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -276,6 +320,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = SchedulingPolicyArgs.__new__(SchedulingPolicyArgs) + fair_share_policy = _utilities.configure(fair_share_policy, SchedulingPolicyFairSharePolicyArgs, True) __props__.__dict__["fair_share_policy"] = fair_share_policy __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/budgets/_inputs.py b/sdk/python/pulumi_aws/budgets/_inputs.py index e1d7edc97ce..cdeb1af6996 100644 --- a/sdk/python/pulumi_aws/budgets/_inputs.py +++ b/sdk/python/pulumi_aws/budgets/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -33,8 +33,29 @@ def __init__(__self__, *, :param pulumi.Input[str] action_threshold_type: The type of threshold for a notification. Valid values are `PERCENTAGE` or `ABSOLUTE_VALUE`. :param pulumi.Input[float] action_threshold_value: The threshold of a notification. """ - pulumi.set(__self__, "action_threshold_type", action_threshold_type) - pulumi.set(__self__, "action_threshold_value", action_threshold_value) + BudgetActionActionThresholdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_threshold_type=action_threshold_type, + action_threshold_value=action_threshold_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_threshold_type: Optional[pulumi.Input[str]] = None, + action_threshold_value: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_threshold_type is None and 'actionThresholdType' in kwargs: + action_threshold_type = kwargs['actionThresholdType'] + if action_threshold_type is None: + raise TypeError("Missing 'action_threshold_type' argument") + if action_threshold_value is None and 'actionThresholdValue' in kwargs: + action_threshold_value = kwargs['actionThresholdValue'] + if action_threshold_value is None: + raise TypeError("Missing 'action_threshold_value' argument") + + _setter("action_threshold_type", action_threshold_type) + _setter("action_threshold_value", action_threshold_value) @property @pulumi.getter(name="actionThresholdType") @@ -72,12 +93,33 @@ def __init__(__self__, *, :param pulumi.Input['BudgetActionDefinitionScpActionDefinitionArgs'] scp_action_definition: The service control policies (SCPs) action definition details. See SCP Action Definition. :param pulumi.Input['BudgetActionDefinitionSsmActionDefinitionArgs'] ssm_action_definition: The AWS Systems Manager (SSM) action definition details. See SSM Action Definition. """ + BudgetActionDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam_action_definition=iam_action_definition, + scp_action_definition=scp_action_definition, + ssm_action_definition=ssm_action_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam_action_definition: Optional[pulumi.Input['BudgetActionDefinitionIamActionDefinitionArgs']] = None, + scp_action_definition: Optional[pulumi.Input['BudgetActionDefinitionScpActionDefinitionArgs']] = None, + ssm_action_definition: Optional[pulumi.Input['BudgetActionDefinitionSsmActionDefinitionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam_action_definition is None and 'iamActionDefinition' in kwargs: + iam_action_definition = kwargs['iamActionDefinition'] + if scp_action_definition is None and 'scpActionDefinition' in kwargs: + scp_action_definition = kwargs['scpActionDefinition'] + if ssm_action_definition is None and 'ssmActionDefinition' in kwargs: + ssm_action_definition = kwargs['ssmActionDefinition'] + if iam_action_definition is not None: - pulumi.set(__self__, "iam_action_definition", iam_action_definition) + _setter("iam_action_definition", iam_action_definition) if scp_action_definition is not None: - pulumi.set(__self__, "scp_action_definition", scp_action_definition) + _setter("scp_action_definition", scp_action_definition) if ssm_action_definition is not None: - pulumi.set(__self__, "ssm_action_definition", ssm_action_definition) + _setter("ssm_action_definition", ssm_action_definition) @property @pulumi.getter(name="iamActionDefinition") @@ -129,13 +171,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: A list of roles to be attached. There must be at least one role. :param pulumi.Input[Sequence[pulumi.Input[str]]] users: A list of users to be attached. There must be at least one user. """ - pulumi.set(__self__, "policy_arn", policy_arn) + BudgetActionDefinitionIamActionDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_arn=policy_arn, + groups=groups, + roles=roles, + users=users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_arn: Optional[pulumi.Input[str]] = None, + groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if policy_arn is None: + raise TypeError("Missing 'policy_arn' argument") + + _setter("policy_arn", policy_arn) if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if roles is not None: - pulumi.set(__self__, "roles", roles) + _setter("roles", roles) if users is not None: - pulumi.set(__self__, "users", users) + _setter("users", users) @property @pulumi.getter(name="policyArn") @@ -195,8 +258,29 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_id: The policy ID attached. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_ids: A list of target IDs. """ - pulumi.set(__self__, "policy_id", policy_id) - pulumi.set(__self__, "target_ids", target_ids) + BudgetActionDefinitionScpActionDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_id=policy_id, + target_ids=target_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_id: Optional[pulumi.Input[str]] = None, + target_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_id is None and 'policyId' in kwargs: + policy_id = kwargs['policyId'] + if policy_id is None: + raise TypeError("Missing 'policy_id' argument") + if target_ids is None and 'targetIds' in kwargs: + target_ids = kwargs['targetIds'] + if target_ids is None: + raise TypeError("Missing 'target_ids' argument") + + _setter("policy_id", policy_id) + _setter("target_ids", target_ids) @property @pulumi.getter(name="policyId") @@ -234,9 +318,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_ids: The EC2 and RDS instance IDs. :param pulumi.Input[str] region: The Region to run the SSM document. """ - pulumi.set(__self__, "action_sub_type", action_sub_type) - pulumi.set(__self__, "instance_ids", instance_ids) - pulumi.set(__self__, "region", region) + BudgetActionDefinitionSsmActionDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_sub_type=action_sub_type, + instance_ids=instance_ids, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_sub_type: Optional[pulumi.Input[str]] = None, + instance_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_sub_type is None and 'actionSubType' in kwargs: + action_sub_type = kwargs['actionSubType'] + if action_sub_type is None: + raise TypeError("Missing 'action_sub_type' argument") + if instance_ids is None and 'instanceIds' in kwargs: + instance_ids = kwargs['instanceIds'] + if instance_ids is None: + raise TypeError("Missing 'instance_ids' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("action_sub_type", action_sub_type) + _setter("instance_ids", instance_ids) + _setter("region", region) @property @pulumi.getter(name="actionSubType") @@ -284,8 +393,27 @@ def __init__(__self__, *, :param pulumi.Input[str] address: The address that AWS sends budget notifications to, either an SNS topic or an email. :param pulumi.Input[str] subscription_type: The type of notification that AWS sends to a subscriber. Valid values are `SNS` or `EMAIL`. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "subscription_type", subscription_type) + BudgetActionSubscriberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + subscription_type=subscription_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + subscription_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if subscription_type is None and 'subscriptionType' in kwargs: + subscription_type = kwargs['subscriptionType'] + if subscription_type is None: + raise TypeError("Missing 'subscription_type' argument") + + _setter("address", address) + _setter("subscription_type", subscription_type) @property @pulumi.getter @@ -318,11 +446,34 @@ def __init__(__self__, *, auto_adjust_type: pulumi.Input[str], historical_options: Optional[pulumi.Input['BudgetAutoAdjustDataHistoricalOptionsArgs']] = None, last_auto_adjust_time: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "auto_adjust_type", auto_adjust_type) + BudgetAutoAdjustDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_adjust_type=auto_adjust_type, + historical_options=historical_options, + last_auto_adjust_time=last_auto_adjust_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_adjust_type: Optional[pulumi.Input[str]] = None, + historical_options: Optional[pulumi.Input['BudgetAutoAdjustDataHistoricalOptionsArgs']] = None, + last_auto_adjust_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_adjust_type is None and 'autoAdjustType' in kwargs: + auto_adjust_type = kwargs['autoAdjustType'] + if auto_adjust_type is None: + raise TypeError("Missing 'auto_adjust_type' argument") + if historical_options is None and 'historicalOptions' in kwargs: + historical_options = kwargs['historicalOptions'] + if last_auto_adjust_time is None and 'lastAutoAdjustTime' in kwargs: + last_auto_adjust_time = kwargs['lastAutoAdjustTime'] + + _setter("auto_adjust_type", auto_adjust_type) if historical_options is not None: - pulumi.set(__self__, "historical_options", historical_options) + _setter("historical_options", historical_options) if last_auto_adjust_time is not None: - pulumi.set(__self__, "last_auto_adjust_time", last_auto_adjust_time) + _setter("last_auto_adjust_time", last_auto_adjust_time) @property @pulumi.getter(name="autoAdjustType") @@ -357,9 +508,28 @@ class BudgetAutoAdjustDataHistoricalOptionsArgs: def __init__(__self__, *, budget_adjustment_period: pulumi.Input[int], lookback_available_periods: Optional[pulumi.Input[int]] = None): - pulumi.set(__self__, "budget_adjustment_period", budget_adjustment_period) + BudgetAutoAdjustDataHistoricalOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + budget_adjustment_period=budget_adjustment_period, + lookback_available_periods=lookback_available_periods, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + budget_adjustment_period: Optional[pulumi.Input[int]] = None, + lookback_available_periods: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if budget_adjustment_period is None and 'budgetAdjustmentPeriod' in kwargs: + budget_adjustment_period = kwargs['budgetAdjustmentPeriod'] + if budget_adjustment_period is None: + raise TypeError("Missing 'budget_adjustment_period' argument") + if lookback_available_periods is None and 'lookbackAvailablePeriods' in kwargs: + lookback_available_periods = kwargs['lookbackAvailablePeriods'] + + _setter("budget_adjustment_period", budget_adjustment_period) if lookback_available_periods is not None: - pulumi.set(__self__, "lookback_available_periods", lookback_available_periods) + _setter("lookback_available_periods", lookback_available_periods) @property @pulumi.getter(name="budgetAdjustmentPeriod") @@ -388,8 +558,25 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of a budget. Unique within accounts. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + BudgetCostFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -440,28 +627,81 @@ def __init__(__self__, *, :param pulumi.Input[bool] use_amortized: Whether a budget uses the amortized rate. Defaults to `false` :param pulumi.Input[bool] use_blended: A boolean value whether to use blended costs in the cost budget. Defaults to `false` """ + BudgetCostTypesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + include_credit=include_credit, + include_discount=include_discount, + include_other_subscription=include_other_subscription, + include_recurring=include_recurring, + include_refund=include_refund, + include_subscription=include_subscription, + include_support=include_support, + include_tax=include_tax, + include_upfront=include_upfront, + use_amortized=use_amortized, + use_blended=use_blended, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + include_credit: Optional[pulumi.Input[bool]] = None, + include_discount: Optional[pulumi.Input[bool]] = None, + include_other_subscription: Optional[pulumi.Input[bool]] = None, + include_recurring: Optional[pulumi.Input[bool]] = None, + include_refund: Optional[pulumi.Input[bool]] = None, + include_subscription: Optional[pulumi.Input[bool]] = None, + include_support: Optional[pulumi.Input[bool]] = None, + include_tax: Optional[pulumi.Input[bool]] = None, + include_upfront: Optional[pulumi.Input[bool]] = None, + use_amortized: Optional[pulumi.Input[bool]] = None, + use_blended: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if include_credit is None and 'includeCredit' in kwargs: + include_credit = kwargs['includeCredit'] + if include_discount is None and 'includeDiscount' in kwargs: + include_discount = kwargs['includeDiscount'] + if include_other_subscription is None and 'includeOtherSubscription' in kwargs: + include_other_subscription = kwargs['includeOtherSubscription'] + if include_recurring is None and 'includeRecurring' in kwargs: + include_recurring = kwargs['includeRecurring'] + if include_refund is None and 'includeRefund' in kwargs: + include_refund = kwargs['includeRefund'] + if include_subscription is None and 'includeSubscription' in kwargs: + include_subscription = kwargs['includeSubscription'] + if include_support is None and 'includeSupport' in kwargs: + include_support = kwargs['includeSupport'] + if include_tax is None and 'includeTax' in kwargs: + include_tax = kwargs['includeTax'] + if include_upfront is None and 'includeUpfront' in kwargs: + include_upfront = kwargs['includeUpfront'] + if use_amortized is None and 'useAmortized' in kwargs: + use_amortized = kwargs['useAmortized'] + if use_blended is None and 'useBlended' in kwargs: + use_blended = kwargs['useBlended'] + if include_credit is not None: - pulumi.set(__self__, "include_credit", include_credit) + _setter("include_credit", include_credit) if include_discount is not None: - pulumi.set(__self__, "include_discount", include_discount) + _setter("include_discount", include_discount) if include_other_subscription is not None: - pulumi.set(__self__, "include_other_subscription", include_other_subscription) + _setter("include_other_subscription", include_other_subscription) if include_recurring is not None: - pulumi.set(__self__, "include_recurring", include_recurring) + _setter("include_recurring", include_recurring) if include_refund is not None: - pulumi.set(__self__, "include_refund", include_refund) + _setter("include_refund", include_refund) if include_subscription is not None: - pulumi.set(__self__, "include_subscription", include_subscription) + _setter("include_subscription", include_subscription) if include_support is not None: - pulumi.set(__self__, "include_support", include_support) + _setter("include_support", include_support) if include_tax is not None: - pulumi.set(__self__, "include_tax", include_tax) + _setter("include_tax", include_tax) if include_upfront is not None: - pulumi.set(__self__, "include_upfront", include_upfront) + _setter("include_upfront", include_upfront) if use_amortized is not None: - pulumi.set(__self__, "use_amortized", use_amortized) + _setter("use_amortized", use_amortized) if use_blended is not None: - pulumi.set(__self__, "use_blended", use_blended) + _setter("use_blended", use_blended) @property @pulumi.getter(name="includeCredit") @@ -613,14 +853,53 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subscriber_email_addresses: (Optional) E-Mail addresses to notify. Either this or `subscriber_sns_topic_arns` is required. :param pulumi.Input[Sequence[pulumi.Input[str]]] subscriber_sns_topic_arns: (Optional) SNS topics to notify. Either this or `subscriber_email_addresses` is required. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "notification_type", notification_type) - pulumi.set(__self__, "threshold", threshold) - pulumi.set(__self__, "threshold_type", threshold_type) + BudgetNotificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + notification_type=notification_type, + threshold=threshold, + threshold_type=threshold_type, + subscriber_email_addresses=subscriber_email_addresses, + subscriber_sns_topic_arns=subscriber_sns_topic_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[pulumi.Input[str]] = None, + notification_type: Optional[pulumi.Input[str]] = None, + threshold: Optional[pulumi.Input[float]] = None, + threshold_type: Optional[pulumi.Input[str]] = None, + subscriber_email_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subscriber_sns_topic_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if notification_type is None: + raise TypeError("Missing 'notification_type' argument") + if threshold is None: + raise TypeError("Missing 'threshold' argument") + if threshold_type is None and 'thresholdType' in kwargs: + threshold_type = kwargs['thresholdType'] + if threshold_type is None: + raise TypeError("Missing 'threshold_type' argument") + if subscriber_email_addresses is None and 'subscriberEmailAddresses' in kwargs: + subscriber_email_addresses = kwargs['subscriberEmailAddresses'] + if subscriber_sns_topic_arns is None and 'subscriberSnsTopicArns' in kwargs: + subscriber_sns_topic_arns = kwargs['subscriberSnsTopicArns'] + + _setter("comparison_operator", comparison_operator) + _setter("notification_type", notification_type) + _setter("threshold", threshold) + _setter("threshold_type", threshold_type) if subscriber_email_addresses is not None: - pulumi.set(__self__, "subscriber_email_addresses", subscriber_email_addresses) + _setter("subscriber_email_addresses", subscriber_email_addresses) if subscriber_sns_topic_arns is not None: - pulumi.set(__self__, "subscriber_sns_topic_arns", subscriber_sns_topic_arns) + _setter("subscriber_sns_topic_arns", subscriber_sns_topic_arns) @property @pulumi.getter(name="comparisonOperator") @@ -706,9 +985,32 @@ def __init__(__self__, *, :param pulumi.Input[str] start_time: (Required) The start time of the budget limit. Format: `2017-01-01_12:00`. See [PlannedBudgetLimits](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_Budget.html#awscostmanagement-Type-budgets_Budget-PlannedBudgetLimits) documentation. :param pulumi.Input[str] unit: (Required) The unit of measurement used for the budget forecast, actual spend, or budget threshold, such as dollars or GB. See [Spend](http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/data-type-spend.html) documentation. """ - pulumi.set(__self__, "amount", amount) - pulumi.set(__self__, "start_time", start_time) - pulumi.set(__self__, "unit", unit) + BudgetPlannedLimitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount=amount, + start_time=start_time, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount: Optional[pulumi.Input[str]] = None, + start_time: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amount is None: + raise TypeError("Missing 'amount' argument") + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if start_time is None: + raise TypeError("Missing 'start_time' argument") + if unit is None: + raise TypeError("Missing 'unit' argument") + + _setter("amount", amount) + _setter("start_time", start_time) + _setter("unit", unit) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/budgets/budget.py b/sdk/python/pulumi_aws/budgets/budget.py index a2b61a117e7..2967e66213f 100644 --- a/sdk/python/pulumi_aws/budgets/budget.py +++ b/sdk/python/pulumi_aws/budgets/budget.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,32 +47,97 @@ def __init__(__self__, *, :param pulumi.Input[str] time_period_end: The end of the time period covered by the budget. There are no restrictions on the end date. Format: `2017-01-01_12:00`. :param pulumi.Input[str] time_period_start: The start of the time period covered by the budget. If you don't specify a start date, AWS defaults to the start of your chosen time period. The start date must come before the end date. Format: `2017-01-01_12:00`. """ - pulumi.set(__self__, "budget_type", budget_type) - pulumi.set(__self__, "time_unit", time_unit) + BudgetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + budget_type=budget_type, + time_unit=time_unit, + account_id=account_id, + auto_adjust_data=auto_adjust_data, + cost_filters=cost_filters, + cost_types=cost_types, + limit_amount=limit_amount, + limit_unit=limit_unit, + name=name, + name_prefix=name_prefix, + notifications=notifications, + planned_limits=planned_limits, + time_period_end=time_period_end, + time_period_start=time_period_start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + budget_type: Optional[pulumi.Input[str]] = None, + time_unit: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + auto_adjust_data: Optional[pulumi.Input['BudgetAutoAdjustDataArgs']] = None, + cost_filters: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetCostFilterArgs']]]] = None, + cost_types: Optional[pulumi.Input['BudgetCostTypesArgs']] = None, + limit_amount: Optional[pulumi.Input[str]] = None, + limit_unit: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + notifications: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetNotificationArgs']]]] = None, + planned_limits: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetPlannedLimitArgs']]]] = None, + time_period_end: Optional[pulumi.Input[str]] = None, + time_period_start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if budget_type is None and 'budgetType' in kwargs: + budget_type = kwargs['budgetType'] + if budget_type is None: + raise TypeError("Missing 'budget_type' argument") + if time_unit is None and 'timeUnit' in kwargs: + time_unit = kwargs['timeUnit'] + if time_unit is None: + raise TypeError("Missing 'time_unit' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if auto_adjust_data is None and 'autoAdjustData' in kwargs: + auto_adjust_data = kwargs['autoAdjustData'] + if cost_filters is None and 'costFilters' in kwargs: + cost_filters = kwargs['costFilters'] + if cost_types is None and 'costTypes' in kwargs: + cost_types = kwargs['costTypes'] + if limit_amount is None and 'limitAmount' in kwargs: + limit_amount = kwargs['limitAmount'] + if limit_unit is None and 'limitUnit' in kwargs: + limit_unit = kwargs['limitUnit'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if planned_limits is None and 'plannedLimits' in kwargs: + planned_limits = kwargs['plannedLimits'] + if time_period_end is None and 'timePeriodEnd' in kwargs: + time_period_end = kwargs['timePeriodEnd'] + if time_period_start is None and 'timePeriodStart' in kwargs: + time_period_start = kwargs['timePeriodStart'] + + _setter("budget_type", budget_type) + _setter("time_unit", time_unit) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if auto_adjust_data is not None: - pulumi.set(__self__, "auto_adjust_data", auto_adjust_data) + _setter("auto_adjust_data", auto_adjust_data) if cost_filters is not None: - pulumi.set(__self__, "cost_filters", cost_filters) + _setter("cost_filters", cost_filters) if cost_types is not None: - pulumi.set(__self__, "cost_types", cost_types) + _setter("cost_types", cost_types) if limit_amount is not None: - pulumi.set(__self__, "limit_amount", limit_amount) + _setter("limit_amount", limit_amount) if limit_unit is not None: - pulumi.set(__self__, "limit_unit", limit_unit) + _setter("limit_unit", limit_unit) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if notifications is not None: - pulumi.set(__self__, "notifications", notifications) + _setter("notifications", notifications) if planned_limits is not None: - pulumi.set(__self__, "planned_limits", planned_limits) + _setter("planned_limits", planned_limits) if time_period_end is not None: - pulumi.set(__self__, "time_period_end", time_period_end) + _setter("time_period_end", time_period_end) if time_period_start is not None: - pulumi.set(__self__, "time_period_start", time_period_start) + _setter("time_period_start", time_period_start) @property @pulumi.getter(name="budgetType") @@ -279,36 +344,99 @@ def __init__(__self__, *, :param pulumi.Input[str] time_period_start: The start of the time period covered by the budget. If you don't specify a start date, AWS defaults to the start of your chosen time period. The start date must come before the end date. Format: `2017-01-01_12:00`. :param pulumi.Input[str] time_unit: The length of time until a budget resets the actual and forecasted spend. Valid values: `MONTHLY`, `QUARTERLY`, `ANNUALLY`, and `DAILY`. """ + _BudgetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + arn=arn, + auto_adjust_data=auto_adjust_data, + budget_type=budget_type, + cost_filters=cost_filters, + cost_types=cost_types, + limit_amount=limit_amount, + limit_unit=limit_unit, + name=name, + name_prefix=name_prefix, + notifications=notifications, + planned_limits=planned_limits, + time_period_end=time_period_end, + time_period_start=time_period_start, + time_unit=time_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_adjust_data: Optional[pulumi.Input['BudgetAutoAdjustDataArgs']] = None, + budget_type: Optional[pulumi.Input[str]] = None, + cost_filters: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetCostFilterArgs']]]] = None, + cost_types: Optional[pulumi.Input['BudgetCostTypesArgs']] = None, + limit_amount: Optional[pulumi.Input[str]] = None, + limit_unit: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + notifications: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetNotificationArgs']]]] = None, + planned_limits: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetPlannedLimitArgs']]]] = None, + time_period_end: Optional[pulumi.Input[str]] = None, + time_period_start: Optional[pulumi.Input[str]] = None, + time_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if auto_adjust_data is None and 'autoAdjustData' in kwargs: + auto_adjust_data = kwargs['autoAdjustData'] + if budget_type is None and 'budgetType' in kwargs: + budget_type = kwargs['budgetType'] + if cost_filters is None and 'costFilters' in kwargs: + cost_filters = kwargs['costFilters'] + if cost_types is None and 'costTypes' in kwargs: + cost_types = kwargs['costTypes'] + if limit_amount is None and 'limitAmount' in kwargs: + limit_amount = kwargs['limitAmount'] + if limit_unit is None and 'limitUnit' in kwargs: + limit_unit = kwargs['limitUnit'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if planned_limits is None and 'plannedLimits' in kwargs: + planned_limits = kwargs['plannedLimits'] + if time_period_end is None and 'timePeriodEnd' in kwargs: + time_period_end = kwargs['timePeriodEnd'] + if time_period_start is None and 'timePeriodStart' in kwargs: + time_period_start = kwargs['timePeriodStart'] + if time_unit is None and 'timeUnit' in kwargs: + time_unit = kwargs['timeUnit'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_adjust_data is not None: - pulumi.set(__self__, "auto_adjust_data", auto_adjust_data) + _setter("auto_adjust_data", auto_adjust_data) if budget_type is not None: - pulumi.set(__self__, "budget_type", budget_type) + _setter("budget_type", budget_type) if cost_filters is not None: - pulumi.set(__self__, "cost_filters", cost_filters) + _setter("cost_filters", cost_filters) if cost_types is not None: - pulumi.set(__self__, "cost_types", cost_types) + _setter("cost_types", cost_types) if limit_amount is not None: - pulumi.set(__self__, "limit_amount", limit_amount) + _setter("limit_amount", limit_amount) if limit_unit is not None: - pulumi.set(__self__, "limit_unit", limit_unit) + _setter("limit_unit", limit_unit) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if notifications is not None: - pulumi.set(__self__, "notifications", notifications) + _setter("notifications", notifications) if planned_limits is not None: - pulumi.set(__self__, "planned_limits", planned_limits) + _setter("planned_limits", planned_limits) if time_period_end is not None: - pulumi.set(__self__, "time_period_end", time_period_end) + _setter("time_period_end", time_period_end) if time_period_start is not None: - pulumi.set(__self__, "time_period_start", time_period_start) + _setter("time_period_start", time_period_start) if time_unit is not None: - pulumi.set(__self__, "time_unit", time_unit) + _setter("time_unit", time_unit) @property @pulumi.getter(name="accountId") @@ -858,6 +986,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BudgetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -887,11 +1019,13 @@ def _internal_init(__self__, __props__ = BudgetArgs.__new__(BudgetArgs) __props__.__dict__["account_id"] = account_id + auto_adjust_data = _utilities.configure(auto_adjust_data, BudgetAutoAdjustDataArgs, True) __props__.__dict__["auto_adjust_data"] = auto_adjust_data if budget_type is None and not opts.urn: raise TypeError("Missing required property 'budget_type'") __props__.__dict__["budget_type"] = budget_type __props__.__dict__["cost_filters"] = cost_filters + cost_types = _utilities.configure(cost_types, BudgetCostTypesArgs, True) __props__.__dict__["cost_types"] = cost_types __props__.__dict__["limit_amount"] = limit_amount __props__.__dict__["limit_unit"] = limit_unit diff --git a/sdk/python/pulumi_aws/budgets/budget_action.py b/sdk/python/pulumi_aws/budgets/budget_action.py index 68094657cf8..358eea373f7 100644 --- a/sdk/python/pulumi_aws/budgets/budget_action.py +++ b/sdk/python/pulumi_aws/budgets/budget_action.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,16 +37,73 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BudgetActionSubscriberArgs']]] subscribers: A list of subscribers. See Subscriber. :param pulumi.Input[str] account_id: The ID of the target account for budget. Will use current user's account_id by default if omitted. """ - pulumi.set(__self__, "action_threshold", action_threshold) - pulumi.set(__self__, "action_type", action_type) - pulumi.set(__self__, "approval_model", approval_model) - pulumi.set(__self__, "budget_name", budget_name) - pulumi.set(__self__, "definition", definition) - pulumi.set(__self__, "execution_role_arn", execution_role_arn) - pulumi.set(__self__, "notification_type", notification_type) - pulumi.set(__self__, "subscribers", subscribers) + BudgetActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_threshold=action_threshold, + action_type=action_type, + approval_model=approval_model, + budget_name=budget_name, + definition=definition, + execution_role_arn=execution_role_arn, + notification_type=notification_type, + subscribers=subscribers, + account_id=account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_threshold: Optional[pulumi.Input['BudgetActionActionThresholdArgs']] = None, + action_type: Optional[pulumi.Input[str]] = None, + approval_model: Optional[pulumi.Input[str]] = None, + budget_name: Optional[pulumi.Input[str]] = None, + definition: Optional[pulumi.Input['BudgetActionDefinitionArgs']] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + notification_type: Optional[pulumi.Input[str]] = None, + subscribers: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetActionSubscriberArgs']]]] = None, + account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_threshold is None and 'actionThreshold' in kwargs: + action_threshold = kwargs['actionThreshold'] + if action_threshold is None: + raise TypeError("Missing 'action_threshold' argument") + if action_type is None and 'actionType' in kwargs: + action_type = kwargs['actionType'] + if action_type is None: + raise TypeError("Missing 'action_type' argument") + if approval_model is None and 'approvalModel' in kwargs: + approval_model = kwargs['approvalModel'] + if approval_model is None: + raise TypeError("Missing 'approval_model' argument") + if budget_name is None and 'budgetName' in kwargs: + budget_name = kwargs['budgetName'] + if budget_name is None: + raise TypeError("Missing 'budget_name' argument") + if definition is None: + raise TypeError("Missing 'definition' argument") + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if execution_role_arn is None: + raise TypeError("Missing 'execution_role_arn' argument") + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if notification_type is None: + raise TypeError("Missing 'notification_type' argument") + if subscribers is None: + raise TypeError("Missing 'subscribers' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("action_threshold", action_threshold) + _setter("action_type", action_type) + _setter("approval_model", approval_model) + _setter("budget_name", budget_name) + _setter("definition", definition) + _setter("execution_role_arn", execution_role_arn) + _setter("notification_type", notification_type) + _setter("subscribers", subscribers) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) @property @pulumi.getter(name="actionThreshold") @@ -187,30 +244,79 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The status of the budget action. :param pulumi.Input[Sequence[pulumi.Input['BudgetActionSubscriberArgs']]] subscribers: A list of subscribers. See Subscriber. """ + _BudgetActionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + action_id=action_id, + action_threshold=action_threshold, + action_type=action_type, + approval_model=approval_model, + arn=arn, + budget_name=budget_name, + definition=definition, + execution_role_arn=execution_role_arn, + notification_type=notification_type, + status=status, + subscribers=subscribers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + action_id: Optional[pulumi.Input[str]] = None, + action_threshold: Optional[pulumi.Input['BudgetActionActionThresholdArgs']] = None, + action_type: Optional[pulumi.Input[str]] = None, + approval_model: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + budget_name: Optional[pulumi.Input[str]] = None, + definition: Optional[pulumi.Input['BudgetActionDefinitionArgs']] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + notification_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + subscribers: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetActionSubscriberArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if action_id is None and 'actionId' in kwargs: + action_id = kwargs['actionId'] + if action_threshold is None and 'actionThreshold' in kwargs: + action_threshold = kwargs['actionThreshold'] + if action_type is None and 'actionType' in kwargs: + action_type = kwargs['actionType'] + if approval_model is None and 'approvalModel' in kwargs: + approval_model = kwargs['approvalModel'] + if budget_name is None and 'budgetName' in kwargs: + budget_name = kwargs['budgetName'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if action_id is not None: - pulumi.set(__self__, "action_id", action_id) + _setter("action_id", action_id) if action_threshold is not None: - pulumi.set(__self__, "action_threshold", action_threshold) + _setter("action_threshold", action_threshold) if action_type is not None: - pulumi.set(__self__, "action_type", action_type) + _setter("action_type", action_type) if approval_model is not None: - pulumi.set(__self__, "approval_model", approval_model) + _setter("approval_model", approval_model) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if budget_name is not None: - pulumi.set(__self__, "budget_name", budget_name) + _setter("budget_name", budget_name) if definition is not None: - pulumi.set(__self__, "definition", definition) + _setter("definition", definition) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if notification_type is not None: - pulumi.set(__self__, "notification_type", notification_type) + _setter("notification_type", notification_type) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if subscribers is not None: - pulumi.set(__self__, "subscribers", subscribers) + _setter("subscribers", subscribers) @property @pulumi.getter(name="accountId") @@ -526,6 +632,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BudgetActionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -550,6 +660,7 @@ def _internal_init(__self__, __props__ = BudgetActionArgs.__new__(BudgetActionArgs) __props__.__dict__["account_id"] = account_id + action_threshold = _utilities.configure(action_threshold, BudgetActionActionThresholdArgs, True) if action_threshold is None and not opts.urn: raise TypeError("Missing required property 'action_threshold'") __props__.__dict__["action_threshold"] = action_threshold @@ -562,6 +673,7 @@ def _internal_init(__self__, if budget_name is None and not opts.urn: raise TypeError("Missing required property 'budget_name'") __props__.__dict__["budget_name"] = budget_name + definition = _utilities.configure(definition, BudgetActionDefinitionArgs, True) if definition is None and not opts.urn: raise TypeError("Missing required property 'definition'") __props__.__dict__["definition"] = definition diff --git a/sdk/python/pulumi_aws/budgets/get_budget.py b/sdk/python/pulumi_aws/budgets/get_budget.py index 2989daaf5ee..0a94a2d57ee 100644 --- a/sdk/python/pulumi_aws/budgets/get_budget.py +++ b/sdk/python/pulumi_aws/budgets/get_budget.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/budgets/outputs.py b/sdk/python/pulumi_aws/budgets/outputs.py index 19892659ef3..c67ca9a32e8 100644 --- a/sdk/python/pulumi_aws/budgets/outputs.py +++ b/sdk/python/pulumi_aws/budgets/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -62,8 +62,29 @@ def __init__(__self__, *, :param str action_threshold_type: The type of threshold for a notification. Valid values are `PERCENTAGE` or `ABSOLUTE_VALUE`. :param float action_threshold_value: The threshold of a notification. """ - pulumi.set(__self__, "action_threshold_type", action_threshold_type) - pulumi.set(__self__, "action_threshold_value", action_threshold_value) + BudgetActionActionThreshold._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_threshold_type=action_threshold_type, + action_threshold_value=action_threshold_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_threshold_type: Optional[str] = None, + action_threshold_value: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_threshold_type is None and 'actionThresholdType' in kwargs: + action_threshold_type = kwargs['actionThresholdType'] + if action_threshold_type is None: + raise TypeError("Missing 'action_threshold_type' argument") + if action_threshold_value is None and 'actionThresholdValue' in kwargs: + action_threshold_value = kwargs['actionThresholdValue'] + if action_threshold_value is None: + raise TypeError("Missing 'action_threshold_value' argument") + + _setter("action_threshold_type", action_threshold_type) + _setter("action_threshold_value", action_threshold_value) @property @pulumi.getter(name="actionThresholdType") @@ -114,12 +135,33 @@ def __init__(__self__, *, :param 'BudgetActionDefinitionScpActionDefinitionArgs' scp_action_definition: The service control policies (SCPs) action definition details. See SCP Action Definition. :param 'BudgetActionDefinitionSsmActionDefinitionArgs' ssm_action_definition: The AWS Systems Manager (SSM) action definition details. See SSM Action Definition. """ + BudgetActionDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam_action_definition=iam_action_definition, + scp_action_definition=scp_action_definition, + ssm_action_definition=ssm_action_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam_action_definition: Optional['outputs.BudgetActionDefinitionIamActionDefinition'] = None, + scp_action_definition: Optional['outputs.BudgetActionDefinitionScpActionDefinition'] = None, + ssm_action_definition: Optional['outputs.BudgetActionDefinitionSsmActionDefinition'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam_action_definition is None and 'iamActionDefinition' in kwargs: + iam_action_definition = kwargs['iamActionDefinition'] + if scp_action_definition is None and 'scpActionDefinition' in kwargs: + scp_action_definition = kwargs['scpActionDefinition'] + if ssm_action_definition is None and 'ssmActionDefinition' in kwargs: + ssm_action_definition = kwargs['ssmActionDefinition'] + if iam_action_definition is not None: - pulumi.set(__self__, "iam_action_definition", iam_action_definition) + _setter("iam_action_definition", iam_action_definition) if scp_action_definition is not None: - pulumi.set(__self__, "scp_action_definition", scp_action_definition) + _setter("scp_action_definition", scp_action_definition) if ssm_action_definition is not None: - pulumi.set(__self__, "ssm_action_definition", ssm_action_definition) + _setter("ssm_action_definition", ssm_action_definition) @property @pulumi.getter(name="iamActionDefinition") @@ -176,13 +218,34 @@ def __init__(__self__, *, :param Sequence[str] roles: A list of roles to be attached. There must be at least one role. :param Sequence[str] users: A list of users to be attached. There must be at least one user. """ - pulumi.set(__self__, "policy_arn", policy_arn) + BudgetActionDefinitionIamActionDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_arn=policy_arn, + groups=groups, + roles=roles, + users=users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_arn: Optional[str] = None, + groups: Optional[Sequence[str]] = None, + roles: Optional[Sequence[str]] = None, + users: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if policy_arn is None: + raise TypeError("Missing 'policy_arn' argument") + + _setter("policy_arn", policy_arn) if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if roles is not None: - pulumi.set(__self__, "roles", roles) + _setter("roles", roles) if users is not None: - pulumi.set(__self__, "users", users) + _setter("users", users) @property @pulumi.getter(name="policyArn") @@ -245,8 +308,29 @@ def __init__(__self__, *, :param str policy_id: The policy ID attached. :param Sequence[str] target_ids: A list of target IDs. """ - pulumi.set(__self__, "policy_id", policy_id) - pulumi.set(__self__, "target_ids", target_ids) + BudgetActionDefinitionScpActionDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_id=policy_id, + target_ids=target_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_id: Optional[str] = None, + target_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_id is None and 'policyId' in kwargs: + policy_id = kwargs['policyId'] + if policy_id is None: + raise TypeError("Missing 'policy_id' argument") + if target_ids is None and 'targetIds' in kwargs: + target_ids = kwargs['targetIds'] + if target_ids is None: + raise TypeError("Missing 'target_ids' argument") + + _setter("policy_id", policy_id) + _setter("target_ids", target_ids) @property @pulumi.getter(name="policyId") @@ -295,9 +379,34 @@ def __init__(__self__, *, :param Sequence[str] instance_ids: The EC2 and RDS instance IDs. :param str region: The Region to run the SSM document. """ - pulumi.set(__self__, "action_sub_type", action_sub_type) - pulumi.set(__self__, "instance_ids", instance_ids) - pulumi.set(__self__, "region", region) + BudgetActionDefinitionSsmActionDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_sub_type=action_sub_type, + instance_ids=instance_ids, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_sub_type: Optional[str] = None, + instance_ids: Optional[Sequence[str]] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_sub_type is None and 'actionSubType' in kwargs: + action_sub_type = kwargs['actionSubType'] + if action_sub_type is None: + raise TypeError("Missing 'action_sub_type' argument") + if instance_ids is None and 'instanceIds' in kwargs: + instance_ids = kwargs['instanceIds'] + if instance_ids is None: + raise TypeError("Missing 'instance_ids' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("action_sub_type", action_sub_type) + _setter("instance_ids", instance_ids) + _setter("region", region) @property @pulumi.getter(name="actionSubType") @@ -350,8 +459,27 @@ def __init__(__self__, *, :param str address: The address that AWS sends budget notifications to, either an SNS topic or an email. :param str subscription_type: The type of notification that AWS sends to a subscriber. Valid values are `SNS` or `EMAIL`. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "subscription_type", subscription_type) + BudgetActionSubscriber._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + subscription_type=subscription_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + subscription_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if subscription_type is None and 'subscriptionType' in kwargs: + subscription_type = kwargs['subscriptionType'] + if subscription_type is None: + raise TypeError("Missing 'subscription_type' argument") + + _setter("address", address) + _setter("subscription_type", subscription_type) @property @pulumi.getter @@ -397,11 +525,34 @@ def __init__(__self__, *, auto_adjust_type: str, historical_options: Optional['outputs.BudgetAutoAdjustDataHistoricalOptions'] = None, last_auto_adjust_time: Optional[str] = None): - pulumi.set(__self__, "auto_adjust_type", auto_adjust_type) + BudgetAutoAdjustData._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_adjust_type=auto_adjust_type, + historical_options=historical_options, + last_auto_adjust_time=last_auto_adjust_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_adjust_type: Optional[str] = None, + historical_options: Optional['outputs.BudgetAutoAdjustDataHistoricalOptions'] = None, + last_auto_adjust_time: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_adjust_type is None and 'autoAdjustType' in kwargs: + auto_adjust_type = kwargs['autoAdjustType'] + if auto_adjust_type is None: + raise TypeError("Missing 'auto_adjust_type' argument") + if historical_options is None and 'historicalOptions' in kwargs: + historical_options = kwargs['historicalOptions'] + if last_auto_adjust_time is None and 'lastAutoAdjustTime' in kwargs: + last_auto_adjust_time = kwargs['lastAutoAdjustTime'] + + _setter("auto_adjust_type", auto_adjust_type) if historical_options is not None: - pulumi.set(__self__, "historical_options", historical_options) + _setter("historical_options", historical_options) if last_auto_adjust_time is not None: - pulumi.set(__self__, "last_auto_adjust_time", last_auto_adjust_time) + _setter("last_auto_adjust_time", last_auto_adjust_time) @property @pulumi.getter(name="autoAdjustType") @@ -443,9 +594,28 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, budget_adjustment_period: int, lookback_available_periods: Optional[int] = None): - pulumi.set(__self__, "budget_adjustment_period", budget_adjustment_period) + BudgetAutoAdjustDataHistoricalOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + budget_adjustment_period=budget_adjustment_period, + lookback_available_periods=lookback_available_periods, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + budget_adjustment_period: Optional[int] = None, + lookback_available_periods: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if budget_adjustment_period is None and 'budgetAdjustmentPeriod' in kwargs: + budget_adjustment_period = kwargs['budgetAdjustmentPeriod'] + if budget_adjustment_period is None: + raise TypeError("Missing 'budget_adjustment_period' argument") + if lookback_available_periods is None and 'lookbackAvailablePeriods' in kwargs: + lookback_available_periods = kwargs['lookbackAvailablePeriods'] + + _setter("budget_adjustment_period", budget_adjustment_period) if lookback_available_periods is not None: - pulumi.set(__self__, "lookback_available_periods", lookback_available_periods) + _setter("lookback_available_periods", lookback_available_periods) @property @pulumi.getter(name="budgetAdjustmentPeriod") @@ -466,8 +636,25 @@ def __init__(__self__, *, """ :param str name: The name of a budget. Unique within accounts. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + BudgetCostFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -547,28 +734,81 @@ def __init__(__self__, *, :param bool use_amortized: Whether a budget uses the amortized rate. Defaults to `false` :param bool use_blended: A boolean value whether to use blended costs in the cost budget. Defaults to `false` """ + BudgetCostTypes._configure( + lambda key, value: pulumi.set(__self__, key, value), + include_credit=include_credit, + include_discount=include_discount, + include_other_subscription=include_other_subscription, + include_recurring=include_recurring, + include_refund=include_refund, + include_subscription=include_subscription, + include_support=include_support, + include_tax=include_tax, + include_upfront=include_upfront, + use_amortized=use_amortized, + use_blended=use_blended, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + include_credit: Optional[bool] = None, + include_discount: Optional[bool] = None, + include_other_subscription: Optional[bool] = None, + include_recurring: Optional[bool] = None, + include_refund: Optional[bool] = None, + include_subscription: Optional[bool] = None, + include_support: Optional[bool] = None, + include_tax: Optional[bool] = None, + include_upfront: Optional[bool] = None, + use_amortized: Optional[bool] = None, + use_blended: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if include_credit is None and 'includeCredit' in kwargs: + include_credit = kwargs['includeCredit'] + if include_discount is None and 'includeDiscount' in kwargs: + include_discount = kwargs['includeDiscount'] + if include_other_subscription is None and 'includeOtherSubscription' in kwargs: + include_other_subscription = kwargs['includeOtherSubscription'] + if include_recurring is None and 'includeRecurring' in kwargs: + include_recurring = kwargs['includeRecurring'] + if include_refund is None and 'includeRefund' in kwargs: + include_refund = kwargs['includeRefund'] + if include_subscription is None and 'includeSubscription' in kwargs: + include_subscription = kwargs['includeSubscription'] + if include_support is None and 'includeSupport' in kwargs: + include_support = kwargs['includeSupport'] + if include_tax is None and 'includeTax' in kwargs: + include_tax = kwargs['includeTax'] + if include_upfront is None and 'includeUpfront' in kwargs: + include_upfront = kwargs['includeUpfront'] + if use_amortized is None and 'useAmortized' in kwargs: + use_amortized = kwargs['useAmortized'] + if use_blended is None and 'useBlended' in kwargs: + use_blended = kwargs['useBlended'] + if include_credit is not None: - pulumi.set(__self__, "include_credit", include_credit) + _setter("include_credit", include_credit) if include_discount is not None: - pulumi.set(__self__, "include_discount", include_discount) + _setter("include_discount", include_discount) if include_other_subscription is not None: - pulumi.set(__self__, "include_other_subscription", include_other_subscription) + _setter("include_other_subscription", include_other_subscription) if include_recurring is not None: - pulumi.set(__self__, "include_recurring", include_recurring) + _setter("include_recurring", include_recurring) if include_refund is not None: - pulumi.set(__self__, "include_refund", include_refund) + _setter("include_refund", include_refund) if include_subscription is not None: - pulumi.set(__self__, "include_subscription", include_subscription) + _setter("include_subscription", include_subscription) if include_support is not None: - pulumi.set(__self__, "include_support", include_support) + _setter("include_support", include_support) if include_tax is not None: - pulumi.set(__self__, "include_tax", include_tax) + _setter("include_tax", include_tax) if include_upfront is not None: - pulumi.set(__self__, "include_upfront", include_upfront) + _setter("include_upfront", include_upfront) if use_amortized is not None: - pulumi.set(__self__, "use_amortized", use_amortized) + _setter("use_amortized", use_amortized) if use_blended is not None: - pulumi.set(__self__, "use_blended", use_blended) + _setter("use_blended", use_blended) @property @pulumi.getter(name="includeCredit") @@ -701,14 +941,53 @@ def __init__(__self__, *, :param Sequence[str] subscriber_email_addresses: (Optional) E-Mail addresses to notify. Either this or `subscriber_sns_topic_arns` is required. :param Sequence[str] subscriber_sns_topic_arns: (Optional) SNS topics to notify. Either this or `subscriber_email_addresses` is required. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "notification_type", notification_type) - pulumi.set(__self__, "threshold", threshold) - pulumi.set(__self__, "threshold_type", threshold_type) + BudgetNotification._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + notification_type=notification_type, + threshold=threshold, + threshold_type=threshold_type, + subscriber_email_addresses=subscriber_email_addresses, + subscriber_sns_topic_arns=subscriber_sns_topic_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[str] = None, + notification_type: Optional[str] = None, + threshold: Optional[float] = None, + threshold_type: Optional[str] = None, + subscriber_email_addresses: Optional[Sequence[str]] = None, + subscriber_sns_topic_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if notification_type is None: + raise TypeError("Missing 'notification_type' argument") + if threshold is None: + raise TypeError("Missing 'threshold' argument") + if threshold_type is None and 'thresholdType' in kwargs: + threshold_type = kwargs['thresholdType'] + if threshold_type is None: + raise TypeError("Missing 'threshold_type' argument") + if subscriber_email_addresses is None and 'subscriberEmailAddresses' in kwargs: + subscriber_email_addresses = kwargs['subscriberEmailAddresses'] + if subscriber_sns_topic_arns is None and 'subscriberSnsTopicArns' in kwargs: + subscriber_sns_topic_arns = kwargs['subscriberSnsTopicArns'] + + _setter("comparison_operator", comparison_operator) + _setter("notification_type", notification_type) + _setter("threshold", threshold) + _setter("threshold_type", threshold_type) if subscriber_email_addresses is not None: - pulumi.set(__self__, "subscriber_email_addresses", subscriber_email_addresses) + _setter("subscriber_email_addresses", subscriber_email_addresses) if subscriber_sns_topic_arns is not None: - pulumi.set(__self__, "subscriber_sns_topic_arns", subscriber_sns_topic_arns) + _setter("subscriber_sns_topic_arns", subscriber_sns_topic_arns) @property @pulumi.getter(name="comparisonOperator") @@ -787,9 +1066,32 @@ def __init__(__self__, *, :param str start_time: (Required) The start time of the budget limit. Format: `2017-01-01_12:00`. See [PlannedBudgetLimits](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_Budget.html#awscostmanagement-Type-budgets_Budget-PlannedBudgetLimits) documentation. :param str unit: (Required) The unit of measurement used for the budget forecast, actual spend, or budget threshold, such as dollars or GB. See [Spend](http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/data-type-spend.html) documentation. """ - pulumi.set(__self__, "amount", amount) - pulumi.set(__self__, "start_time", start_time) - pulumi.set(__self__, "unit", unit) + BudgetPlannedLimit._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount=amount, + start_time=start_time, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount: Optional[str] = None, + start_time: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amount is None: + raise TypeError("Missing 'amount' argument") + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if start_time is None: + raise TypeError("Missing 'start_time' argument") + if unit is None: + raise TypeError("Missing 'unit' argument") + + _setter("amount", amount) + _setter("start_time", start_time) + _setter("unit", unit) @property @pulumi.getter @@ -827,9 +1129,36 @@ def __init__(__self__, *, :param Sequence['GetBudgetAutoAdjustDataHistoricalOptionArgs'] historical_options: (Optional) - Configuration block of Historical Options. Required for `auto_adjust_type` of `HISTORICAL` Configuration block that defines the historical data that your auto-adjusting budget is based on. :param str last_auto_adjust_time: (Optional) - The last time that your budget was auto-adjusted. """ - pulumi.set(__self__, "auto_adjust_type", auto_adjust_type) - pulumi.set(__self__, "historical_options", historical_options) - pulumi.set(__self__, "last_auto_adjust_time", last_auto_adjust_time) + GetBudgetAutoAdjustDataResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_adjust_type=auto_adjust_type, + historical_options=historical_options, + last_auto_adjust_time=last_auto_adjust_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_adjust_type: Optional[str] = None, + historical_options: Optional[Sequence['outputs.GetBudgetAutoAdjustDataHistoricalOptionResult']] = None, + last_auto_adjust_time: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_adjust_type is None and 'autoAdjustType' in kwargs: + auto_adjust_type = kwargs['autoAdjustType'] + if auto_adjust_type is None: + raise TypeError("Missing 'auto_adjust_type' argument") + if historical_options is None and 'historicalOptions' in kwargs: + historical_options = kwargs['historicalOptions'] + if historical_options is None: + raise TypeError("Missing 'historical_options' argument") + if last_auto_adjust_time is None and 'lastAutoAdjustTime' in kwargs: + last_auto_adjust_time = kwargs['lastAutoAdjustTime'] + if last_auto_adjust_time is None: + raise TypeError("Missing 'last_auto_adjust_time' argument") + + _setter("auto_adjust_type", auto_adjust_type) + _setter("historical_options", historical_options) + _setter("last_auto_adjust_time", last_auto_adjust_time) @property @pulumi.getter(name="autoAdjustType") @@ -865,8 +1194,29 @@ def __init__(__self__, *, :param int budget_adjustment_period: (Required) - The number of budget periods included in the moving-average calculation that determines your auto-adjusted budget amount. :param int lookback_available_periods: (Optional) - The integer that describes how many budget periods in your BudgetAdjustmentPeriod are included in the calculation of your current budget limit. If the first budget period in your BudgetAdjustmentPeriod has no cost data, then that budget period isn’t included in the average that determines your budget limit. You can’t set your own LookBackAvailablePeriods. The value is automatically calculated from the `budget_adjustment_period` and your historical cost data. """ - pulumi.set(__self__, "budget_adjustment_period", budget_adjustment_period) - pulumi.set(__self__, "lookback_available_periods", lookback_available_periods) + GetBudgetAutoAdjustDataHistoricalOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + budget_adjustment_period=budget_adjustment_period, + lookback_available_periods=lookback_available_periods, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + budget_adjustment_period: Optional[int] = None, + lookback_available_periods: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if budget_adjustment_period is None and 'budgetAdjustmentPeriod' in kwargs: + budget_adjustment_period = kwargs['budgetAdjustmentPeriod'] + if budget_adjustment_period is None: + raise TypeError("Missing 'budget_adjustment_period' argument") + if lookback_available_periods is None and 'lookbackAvailablePeriods' in kwargs: + lookback_available_periods = kwargs['lookbackAvailablePeriods'] + if lookback_available_periods is None: + raise TypeError("Missing 'lookback_available_periods' argument") + + _setter("budget_adjustment_period", budget_adjustment_period) + _setter("lookback_available_periods", lookback_available_periods) @property @pulumi.getter(name="budgetAdjustmentPeriod") @@ -894,8 +1244,25 @@ def __init__(__self__, *, :param str amount: The cost or usage amount that's associated with a budget forecast, actual spend, or budget threshold. Length Constraints: Minimum length of `1`. Maximum length of `2147483647`. :param str unit: The unit of measurement that's used for the budget forecast, actual spend, or budget threshold, such as USD or GBP. Length Constraints: Minimum length of `1`. Maximum length of `2147483647`. """ - pulumi.set(__self__, "amount", amount) - pulumi.set(__self__, "unit", unit) + GetBudgetBudgetLimitResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount=amount, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amount is None: + raise TypeError("Missing 'amount' argument") + if unit is None: + raise TypeError("Missing 'unit' argument") + + _setter("amount", amount) + _setter("unit", unit) @property @pulumi.getter @@ -918,7 +1285,22 @@ def unit(self) -> str: class GetBudgetCalculatedSpendResult(dict): def __init__(__self__, *, actual_spends: Sequence['outputs.GetBudgetCalculatedSpendActualSpendResult']): - pulumi.set(__self__, "actual_spends", actual_spends) + GetBudgetCalculatedSpendResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actual_spends=actual_spends, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actual_spends: Optional[Sequence['outputs.GetBudgetCalculatedSpendActualSpendResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actual_spends is None and 'actualSpends' in kwargs: + actual_spends = kwargs['actualSpends'] + if actual_spends is None: + raise TypeError("Missing 'actual_spends' argument") + + _setter("actual_spends", actual_spends) @property @pulumi.getter(name="actualSpends") @@ -935,8 +1317,25 @@ def __init__(__self__, *, :param str amount: The cost or usage amount that's associated with a budget forecast, actual spend, or budget threshold. Length Constraints: Minimum length of `1`. Maximum length of `2147483647`. :param str unit: The unit of measurement that's used for the budget forecast, actual spend, or budget threshold, such as USD or GBP. Length Constraints: Minimum length of `1`. Maximum length of `2147483647`. """ - pulumi.set(__self__, "amount", amount) - pulumi.set(__self__, "unit", unit) + GetBudgetCalculatedSpendActualSpendResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount=amount, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amount is None: + raise TypeError("Missing 'amount' argument") + if unit is None: + raise TypeError("Missing 'unit' argument") + + _setter("amount", amount) + _setter("unit", unit) @property @pulumi.getter @@ -965,8 +1364,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetBudgetCostFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1011,17 +1427,92 @@ def __init__(__self__, *, :param bool use_amortized: Whether a budget uses the amortized rate. Defaults to `false`. :param bool use_blended: A boolean value whether to use blended costs in the cost budget. Defaults to `false`. """ - pulumi.set(__self__, "include_credit", include_credit) - pulumi.set(__self__, "include_discount", include_discount) - pulumi.set(__self__, "include_other_subscription", include_other_subscription) - pulumi.set(__self__, "include_recurring", include_recurring) - pulumi.set(__self__, "include_refund", include_refund) - pulumi.set(__self__, "include_subscription", include_subscription) - pulumi.set(__self__, "include_support", include_support) - pulumi.set(__self__, "include_tax", include_tax) - pulumi.set(__self__, "include_upfront", include_upfront) - pulumi.set(__self__, "use_amortized", use_amortized) - pulumi.set(__self__, "use_blended", use_blended) + GetBudgetCostTypeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + include_credit=include_credit, + include_discount=include_discount, + include_other_subscription=include_other_subscription, + include_recurring=include_recurring, + include_refund=include_refund, + include_subscription=include_subscription, + include_support=include_support, + include_tax=include_tax, + include_upfront=include_upfront, + use_amortized=use_amortized, + use_blended=use_blended, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + include_credit: Optional[bool] = None, + include_discount: Optional[bool] = None, + include_other_subscription: Optional[bool] = None, + include_recurring: Optional[bool] = None, + include_refund: Optional[bool] = None, + include_subscription: Optional[bool] = None, + include_support: Optional[bool] = None, + include_tax: Optional[bool] = None, + include_upfront: Optional[bool] = None, + use_amortized: Optional[bool] = None, + use_blended: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if include_credit is None and 'includeCredit' in kwargs: + include_credit = kwargs['includeCredit'] + if include_credit is None: + raise TypeError("Missing 'include_credit' argument") + if include_discount is None and 'includeDiscount' in kwargs: + include_discount = kwargs['includeDiscount'] + if include_discount is None: + raise TypeError("Missing 'include_discount' argument") + if include_other_subscription is None and 'includeOtherSubscription' in kwargs: + include_other_subscription = kwargs['includeOtherSubscription'] + if include_other_subscription is None: + raise TypeError("Missing 'include_other_subscription' argument") + if include_recurring is None and 'includeRecurring' in kwargs: + include_recurring = kwargs['includeRecurring'] + if include_recurring is None: + raise TypeError("Missing 'include_recurring' argument") + if include_refund is None and 'includeRefund' in kwargs: + include_refund = kwargs['includeRefund'] + if include_refund is None: + raise TypeError("Missing 'include_refund' argument") + if include_subscription is None and 'includeSubscription' in kwargs: + include_subscription = kwargs['includeSubscription'] + if include_subscription is None: + raise TypeError("Missing 'include_subscription' argument") + if include_support is None and 'includeSupport' in kwargs: + include_support = kwargs['includeSupport'] + if include_support is None: + raise TypeError("Missing 'include_support' argument") + if include_tax is None and 'includeTax' in kwargs: + include_tax = kwargs['includeTax'] + if include_tax is None: + raise TypeError("Missing 'include_tax' argument") + if include_upfront is None and 'includeUpfront' in kwargs: + include_upfront = kwargs['includeUpfront'] + if include_upfront is None: + raise TypeError("Missing 'include_upfront' argument") + if use_amortized is None and 'useAmortized' in kwargs: + use_amortized = kwargs['useAmortized'] + if use_amortized is None: + raise TypeError("Missing 'use_amortized' argument") + if use_blended is None and 'useBlended' in kwargs: + use_blended = kwargs['useBlended'] + if use_blended is None: + raise TypeError("Missing 'use_blended' argument") + + _setter("include_credit", include_credit) + _setter("include_discount", include_discount) + _setter("include_other_subscription", include_other_subscription) + _setter("include_recurring", include_recurring) + _setter("include_refund", include_refund) + _setter("include_subscription", include_subscription) + _setter("include_support", include_support) + _setter("include_tax", include_tax) + _setter("include_upfront", include_upfront) + _setter("use_amortized", use_amortized) + _setter("use_blended", use_blended) @property @pulumi.getter(name="includeCredit") @@ -1129,12 +1620,55 @@ def __init__(__self__, *, :param float threshold: (Required) Threshold when the notification should be sent. :param str threshold_type: (Required) What kind of threshold is defined. Can be `PERCENTAGE` OR `ABSOLUTE_VALUE`. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "notification_type", notification_type) - pulumi.set(__self__, "subscriber_email_addresses", subscriber_email_addresses) - pulumi.set(__self__, "subscriber_sns_topic_arns", subscriber_sns_topic_arns) - pulumi.set(__self__, "threshold", threshold) - pulumi.set(__self__, "threshold_type", threshold_type) + GetBudgetNotificationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + notification_type=notification_type, + subscriber_email_addresses=subscriber_email_addresses, + subscriber_sns_topic_arns=subscriber_sns_topic_arns, + threshold=threshold, + threshold_type=threshold_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[str] = None, + notification_type: Optional[str] = None, + subscriber_email_addresses: Optional[Sequence[str]] = None, + subscriber_sns_topic_arns: Optional[Sequence[str]] = None, + threshold: Optional[float] = None, + threshold_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if notification_type is None: + raise TypeError("Missing 'notification_type' argument") + if subscriber_email_addresses is None and 'subscriberEmailAddresses' in kwargs: + subscriber_email_addresses = kwargs['subscriberEmailAddresses'] + if subscriber_email_addresses is None: + raise TypeError("Missing 'subscriber_email_addresses' argument") + if subscriber_sns_topic_arns is None and 'subscriberSnsTopicArns' in kwargs: + subscriber_sns_topic_arns = kwargs['subscriberSnsTopicArns'] + if subscriber_sns_topic_arns is None: + raise TypeError("Missing 'subscriber_sns_topic_arns' argument") + if threshold is None: + raise TypeError("Missing 'threshold' argument") + if threshold_type is None and 'thresholdType' in kwargs: + threshold_type = kwargs['thresholdType'] + if threshold_type is None: + raise TypeError("Missing 'threshold_type' argument") + + _setter("comparison_operator", comparison_operator) + _setter("notification_type", notification_type) + _setter("subscriber_email_addresses", subscriber_email_addresses) + _setter("subscriber_sns_topic_arns", subscriber_sns_topic_arns) + _setter("threshold", threshold) + _setter("threshold_type", threshold_type) @property @pulumi.getter(name="comparisonOperator") @@ -1196,9 +1730,32 @@ def __init__(__self__, *, :param str start_time: (Required) The start time of the budget limit. Format: `2017-01-01_12:00`. See [PlannedBudgetLimits](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_Budget.html#awscostmanagement-Type-budgets_Budget-PlannedBudgetLimits) documentation. :param str unit: The unit of measurement that's used for the budget forecast, actual spend, or budget threshold, such as USD or GBP. Length Constraints: Minimum length of `1`. Maximum length of `2147483647`. """ - pulumi.set(__self__, "amount", amount) - pulumi.set(__self__, "start_time", start_time) - pulumi.set(__self__, "unit", unit) + GetBudgetPlannedLimitResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount=amount, + start_time=start_time, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount: Optional[str] = None, + start_time: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amount is None: + raise TypeError("Missing 'amount' argument") + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if start_time is None: + raise TypeError("Missing 'start_time' argument") + if unit is None: + raise TypeError("Missing 'unit' argument") + + _setter("amount", amount) + _setter("start_time", start_time) + _setter("unit", unit) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/cfg/_inputs.py b/sdk/python/pulumi_aws/cfg/_inputs.py index 95003c88b82..1912d841ff0 100644 --- a/sdk/python/pulumi_aws/cfg/_inputs.py +++ b/sdk/python/pulumi_aws/cfg/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -40,11 +40,32 @@ def __init__(__self__, *, Either `regions` or `all_regions` (as true) must be specified. """ - pulumi.set(__self__, "account_ids", account_ids) + ConfigurationAggregatorAccountAggregationSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_ids=account_ids, + all_regions=all_regions, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + all_regions: Optional[pulumi.Input[bool]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_ids is None and 'accountIds' in kwargs: + account_ids = kwargs['accountIds'] + if account_ids is None: + raise TypeError("Missing 'account_ids' argument") + if all_regions is None and 'allRegions' in kwargs: + all_regions = kwargs['allRegions'] + + _setter("account_ids", account_ids) if all_regions is not None: - pulumi.set(__self__, "all_regions", all_regions) + _setter("all_regions", all_regions) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter(name="accountIds") @@ -98,11 +119,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] all_regions: If true, aggregate existing AWS Config regions and future regions. :param pulumi.Input[Sequence[pulumi.Input[str]]] regions: List of source regions being aggregated. """ - pulumi.set(__self__, "role_arn", role_arn) + ConfigurationAggregatorOrganizationAggregationSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + all_regions=all_regions, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + all_regions: Optional[pulumi.Input[bool]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if all_regions is None and 'allRegions' in kwargs: + all_regions = kwargs['allRegions'] + + _setter("role_arn", role_arn) if all_regions is not None: - pulumi.set(__self__, "all_regions", all_regions) + _setter("all_regions", all_regions) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter(name="roleArn") @@ -152,8 +194,29 @@ def __init__(__self__, *, :param pulumi.Input[str] parameter_name: The input key. :param pulumi.Input[str] parameter_value: The input value. """ - pulumi.set(__self__, "parameter_name", parameter_name) - pulumi.set(__self__, "parameter_value", parameter_value) + ConformancePackInputParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -187,8 +250,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] delivery_frequency: The frequency with which AWS Config recurringly delivers configuration snapshotsE.g., `One_Hour` or `Three_Hours`. Valid values are listed [here](https://docs.aws.amazon.com/config/latest/APIReference/API_ConfigSnapshotDeliveryProperties.html#API_ConfigSnapshotDeliveryProperties_Contents). """ + DeliveryChannelSnapshotDeliveryPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_frequency=delivery_frequency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_frequency: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_frequency is None and 'deliveryFrequency' in kwargs: + delivery_frequency = kwargs['deliveryFrequency'] + if delivery_frequency is not None: - pulumi.set(__self__, "delivery_frequency", delivery_frequency) + _setter("delivery_frequency", delivery_frequency) @property @pulumi.getter(name="deliveryFrequency") @@ -212,8 +288,29 @@ def __init__(__self__, *, :param pulumi.Input[str] parameter_name: The input key. :param pulumi.Input[str] parameter_value: The input value. """ - pulumi.set(__self__, "parameter_name", parameter_name) - pulumi.set(__self__, "parameter_value", parameter_value) + OrganizationConformancePackInputParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -255,16 +352,45 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RecorderRecordingGroupRecordingStrategyArgs']]] recording_strategies: Recording Strategy - see below.. :param pulumi.Input[Sequence[pulumi.Input[str]]] resource_types: A list that specifies the types of AWS resources for which AWS Config records configuration changes (for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`). See [relevant part of AWS Docs](http://docs.aws.amazon.com/config/latest/APIReference/API_ResourceIdentifier.html#config-Type-ResourceIdentifier-resourceType) for available types. In order to use this attribute, `all_supported` must be set to false. """ + RecorderRecordingGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_supported=all_supported, + exclusion_by_resource_types=exclusion_by_resource_types, + include_global_resource_types=include_global_resource_types, + recording_strategies=recording_strategies, + resource_types=resource_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_supported: Optional[pulumi.Input[bool]] = None, + exclusion_by_resource_types: Optional[pulumi.Input[Sequence[pulumi.Input['RecorderRecordingGroupExclusionByResourceTypeArgs']]]] = None, + include_global_resource_types: Optional[pulumi.Input[bool]] = None, + recording_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['RecorderRecordingGroupRecordingStrategyArgs']]]] = None, + resource_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_supported is None and 'allSupported' in kwargs: + all_supported = kwargs['allSupported'] + if exclusion_by_resource_types is None and 'exclusionByResourceTypes' in kwargs: + exclusion_by_resource_types = kwargs['exclusionByResourceTypes'] + if include_global_resource_types is None and 'includeGlobalResourceTypes' in kwargs: + include_global_resource_types = kwargs['includeGlobalResourceTypes'] + if recording_strategies is None and 'recordingStrategies' in kwargs: + recording_strategies = kwargs['recordingStrategies'] + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if all_supported is not None: - pulumi.set(__self__, "all_supported", all_supported) + _setter("all_supported", all_supported) if exclusion_by_resource_types is not None: - pulumi.set(__self__, "exclusion_by_resource_types", exclusion_by_resource_types) + _setter("exclusion_by_resource_types", exclusion_by_resource_types) if include_global_resource_types is not None: - pulumi.set(__self__, "include_global_resource_types", include_global_resource_types) + _setter("include_global_resource_types", include_global_resource_types) if recording_strategies is not None: - pulumi.set(__self__, "recording_strategies", recording_strategies) + _setter("recording_strategies", recording_strategies) if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) @property @pulumi.getter(name="allSupported") @@ -334,8 +460,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] resource_types: A list that specifies the types of AWS resources for which AWS Config records configuration changes (for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`). See [relevant part of AWS Docs](http://docs.aws.amazon.com/config/latest/APIReference/API_ResourceIdentifier.html#config-Type-ResourceIdentifier-resourceType) for available types. In order to use this attribute, `all_supported` must be set to false. """ + RecorderRecordingGroupExclusionByResourceTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_types=resource_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) @property @pulumi.getter(name="resourceTypes") @@ -354,8 +493,21 @@ def resource_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RecorderRecordingGroupRecordingStrategyArgs: def __init__(__self__, *, use_only: Optional[pulumi.Input[str]] = None): + RecorderRecordingGroupRecordingStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + use_only=use_only, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + use_only: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if use_only is None and 'useOnly' in kwargs: + use_only = kwargs['useOnly'] + if use_only is not None: - pulumi.set(__self__, "use_only", use_only) + _setter("use_only", use_only) @property @pulumi.getter(name="useOnly") @@ -374,8 +526,21 @@ def __init__(__self__, *, """ :param pulumi.Input['RemediationConfigurationExecutionControlsSsmControlsArgs'] ssm_controls: Configuration block for SSM controls. See below. """ + RemediationConfigurationExecutionControlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ssm_controls=ssm_controls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ssm_controls: Optional[pulumi.Input['RemediationConfigurationExecutionControlsSsmControlsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ssm_controls is None and 'ssmControls' in kwargs: + ssm_controls = kwargs['ssmControls'] + if ssm_controls is not None: - pulumi.set(__self__, "ssm_controls", ssm_controls) + _setter("ssm_controls", ssm_controls) @property @pulumi.getter(name="ssmControls") @@ -399,10 +564,27 @@ def __init__(__self__, *, :param pulumi.Input[int] concurrent_execution_rate_percentage: Maximum percentage of remediation actions allowed to run in parallel on the non-compliant resources for that specific rule. The default value is 10%. :param pulumi.Input[int] error_percentage: Percentage of errors that are allowed before SSM stops running automations on non-compliant resources for that specific rule. The default is 50%. """ + RemediationConfigurationExecutionControlsSsmControlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + concurrent_execution_rate_percentage=concurrent_execution_rate_percentage, + error_percentage=error_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + concurrent_execution_rate_percentage: Optional[pulumi.Input[int]] = None, + error_percentage: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if concurrent_execution_rate_percentage is None and 'concurrentExecutionRatePercentage' in kwargs: + concurrent_execution_rate_percentage = kwargs['concurrentExecutionRatePercentage'] + if error_percentage is None and 'errorPercentage' in kwargs: + error_percentage = kwargs['errorPercentage'] + if concurrent_execution_rate_percentage is not None: - pulumi.set(__self__, "concurrent_execution_rate_percentage", concurrent_execution_rate_percentage) + _setter("concurrent_execution_rate_percentage", concurrent_execution_rate_percentage) if error_percentage is not None: - pulumi.set(__self__, "error_percentage", error_percentage) + _setter("error_percentage", error_percentage) @property @pulumi.getter(name="concurrentExecutionRatePercentage") @@ -442,13 +624,38 @@ def __init__(__self__, *, :param pulumi.Input[str] static_value: Value is static and does not change at run-time. :param pulumi.Input[Sequence[pulumi.Input[str]]] static_values: List of static values. """ - pulumi.set(__self__, "name", name) + RemediationConfigurationParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + resource_value=resource_value, + static_value=static_value, + static_values=static_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + resource_value: Optional[pulumi.Input[str]] = None, + static_value: Optional[pulumi.Input[str]] = None, + static_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if resource_value is None and 'resourceValue' in kwargs: + resource_value = kwargs['resourceValue'] + if static_value is None and 'staticValue' in kwargs: + static_value = kwargs['staticValue'] + if static_values is None and 'staticValues' in kwargs: + static_values = kwargs['staticValues'] + + _setter("name", name) if resource_value is not None: - pulumi.set(__self__, "resource_value", resource_value) + _setter("resource_value", resource_value) if static_value is not None: - pulumi.set(__self__, "static_value", static_value) + _setter("static_value", static_value) if static_values is not None: - pulumi.set(__self__, "static_values", static_values) + _setter("static_values", static_values) @property @pulumi.getter @@ -512,14 +719,39 @@ def __init__(__self__, *, :param pulumi.Input[str] tag_key: The tag key that is applied to only those AWS resources that you want you want to trigger an evaluation for the rule. :param pulumi.Input[str] tag_value: The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule. """ + RuleScopeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compliance_resource_id=compliance_resource_id, + compliance_resource_types=compliance_resource_types, + tag_key=tag_key, + tag_value=tag_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compliance_resource_id: Optional[pulumi.Input[str]] = None, + compliance_resource_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_key: Optional[pulumi.Input[str]] = None, + tag_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compliance_resource_id is None and 'complianceResourceId' in kwargs: + compliance_resource_id = kwargs['complianceResourceId'] + if compliance_resource_types is None and 'complianceResourceTypes' in kwargs: + compliance_resource_types = kwargs['complianceResourceTypes'] + if tag_key is None and 'tagKey' in kwargs: + tag_key = kwargs['tagKey'] + if tag_value is None and 'tagValue' in kwargs: + tag_value = kwargs['tagValue'] + if compliance_resource_id is not None: - pulumi.set(__self__, "compliance_resource_id", compliance_resource_id) + _setter("compliance_resource_id", compliance_resource_id) if compliance_resource_types is not None: - pulumi.set(__self__, "compliance_resource_types", compliance_resource_types) + _setter("compliance_resource_types", compliance_resource_types) if tag_key is not None: - pulumi.set(__self__, "tag_key", tag_key) + _setter("tag_key", tag_key) if tag_value is not None: - pulumi.set(__self__, "tag_value", tag_value) + _setter("tag_value", tag_value) @property @pulumi.getter(name="complianceResourceId") @@ -583,13 +815,38 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleSourceSourceDetailArgs']]] source_details: Provides the source and type of the event that causes AWS Config to evaluate your AWS resources. Only valid if `owner` is `CUSTOM_LAMBDA` or `CUSTOM_POLICY`. See Source Detail Below. :param pulumi.Input[str] source_identifier: For AWS Config managed rules, a predefined identifier, e.g `IAM_PASSWORD_POLICY`. For custom Lambda rules, the identifier is the ARN of the Lambda Function, such as `arn:aws:lambda:us-east-1:123456789012:function:custom_rule_name` or the `arn` attribute of the `lambda.Function` resource. """ - pulumi.set(__self__, "owner", owner) + RuleSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + custom_policy_details=custom_policy_details, + source_details=source_details, + source_identifier=source_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[pulumi.Input[str]] = None, + custom_policy_details: Optional[pulumi.Input['RuleSourceCustomPolicyDetailsArgs']] = None, + source_details: Optional[pulumi.Input[Sequence[pulumi.Input['RuleSourceSourceDetailArgs']]]] = None, + source_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + if custom_policy_details is None and 'customPolicyDetails' in kwargs: + custom_policy_details = kwargs['customPolicyDetails'] + if source_details is None and 'sourceDetails' in kwargs: + source_details = kwargs['sourceDetails'] + if source_identifier is None and 'sourceIdentifier' in kwargs: + source_identifier = kwargs['sourceIdentifier'] + + _setter("owner", owner) if custom_policy_details is not None: - pulumi.set(__self__, "custom_policy_details", custom_policy_details) + _setter("custom_policy_details", custom_policy_details) if source_details is not None: - pulumi.set(__self__, "source_details", source_details) + _setter("source_details", source_details) if source_identifier is not None: - pulumi.set(__self__, "source_identifier", source_identifier) + _setter("source_identifier", source_identifier) @property @pulumi.getter @@ -651,10 +908,35 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_text: The policy definition containing the logic for your Config Custom Policy rule. :param pulumi.Input[bool] enable_debug_log_delivery: The boolean expression for enabling debug logging for your Config Custom Policy rule. The default value is `false`. """ - pulumi.set(__self__, "policy_runtime", policy_runtime) - pulumi.set(__self__, "policy_text", policy_text) + RuleSourceCustomPolicyDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_runtime=policy_runtime, + policy_text=policy_text, + enable_debug_log_delivery=enable_debug_log_delivery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_runtime: Optional[pulumi.Input[str]] = None, + policy_text: Optional[pulumi.Input[str]] = None, + enable_debug_log_delivery: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_runtime is None and 'policyRuntime' in kwargs: + policy_runtime = kwargs['policyRuntime'] + if policy_runtime is None: + raise TypeError("Missing 'policy_runtime' argument") + if policy_text is None and 'policyText' in kwargs: + policy_text = kwargs['policyText'] + if policy_text is None: + raise TypeError("Missing 'policy_text' argument") + if enable_debug_log_delivery is None and 'enableDebugLogDelivery' in kwargs: + enable_debug_log_delivery = kwargs['enableDebugLogDelivery'] + + _setter("policy_runtime", policy_runtime) + _setter("policy_text", policy_text) if enable_debug_log_delivery is not None: - pulumi.set(__self__, "enable_debug_log_delivery", enable_debug_log_delivery) + _setter("enable_debug_log_delivery", enable_debug_log_delivery) @property @pulumi.getter(name="policyRuntime") @@ -704,12 +986,33 @@ def __init__(__self__, *, :param pulumi.Input[str] maximum_execution_frequency: The frequency that you want AWS Config to run evaluations for a rule that istriggered periodically. If specified, requires `message_type` to be `ScheduledNotification`. :param pulumi.Input[str] message_type: The type of notification that triggers AWS Config to run an evaluation for a rule. You canspecify the following notification types: """ + RuleSourceSourceDetailArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_source=event_source, + maximum_execution_frequency=maximum_execution_frequency, + message_type=message_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_source: Optional[pulumi.Input[str]] = None, + maximum_execution_frequency: Optional[pulumi.Input[str]] = None, + message_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_source is None and 'eventSource' in kwargs: + event_source = kwargs['eventSource'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + if message_type is None and 'messageType' in kwargs: + message_type = kwargs['messageType'] + if event_source is not None: - pulumi.set(__self__, "event_source", event_source) + _setter("event_source", event_source) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if message_type is not None: - pulumi.set(__self__, "message_type", message_type) + _setter("message_type", message_type) @property @pulumi.getter(name="eventSource") diff --git a/sdk/python/pulumi_aws/cfg/aggregate_authorization.py b/sdk/python/pulumi_aws/cfg/aggregate_authorization.py index 1766b120f1c..a7230fa25ef 100644 --- a/sdk/python/pulumi_aws/cfg/aggregate_authorization.py +++ b/sdk/python/pulumi_aws/cfg/aggregate_authorization.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AggregateAuthorizationArgs', 'AggregateAuthorization'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] region: Region :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "region", region) + AggregateAuthorizationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + region=region, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("account_id", account_id) + _setter("region", region) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="accountId") @@ -81,19 +102,42 @@ def __init__(__self__, *, :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. """ + _AggregateAuthorizationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + arn=arn, + region=region, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="accountId") @@ -234,6 +278,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AggregateAuthorizationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cfg/configuration_aggregator.py b/sdk/python/pulumi_aws/cfg/configuration_aggregator.py index 8c56595717b..b217585a7a7 100644 --- a/sdk/python/pulumi_aws/cfg/configuration_aggregator.py +++ b/sdk/python/pulumi_aws/cfg/configuration_aggregator.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,35 @@ def __init__(__self__, *, Either `account_aggregation_source` or `organization_aggregation_source` must be specified. """ + ConfigurationAggregatorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_aggregation_source=account_aggregation_source, + name=name, + organization_aggregation_source=organization_aggregation_source, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_aggregation_source: Optional[pulumi.Input['ConfigurationAggregatorAccountAggregationSourceArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + organization_aggregation_source: Optional[pulumi.Input['ConfigurationAggregatorOrganizationAggregationSourceArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_aggregation_source is None and 'accountAggregationSource' in kwargs: + account_aggregation_source = kwargs['accountAggregationSource'] + if organization_aggregation_source is None and 'organizationAggregationSource' in kwargs: + organization_aggregation_source = kwargs['organizationAggregationSource'] + if account_aggregation_source is not None: - pulumi.set(__self__, "account_aggregation_source", account_aggregation_source) + _setter("account_aggregation_source", account_aggregation_source) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if organization_aggregation_source is not None: - pulumi.set(__self__, "organization_aggregation_source", organization_aggregation_source) + _setter("organization_aggregation_source", organization_aggregation_source) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="accountAggregationSource") @@ -109,21 +130,48 @@ def __init__(__self__, *, Either `account_aggregation_source` or `organization_aggregation_source` must be specified. :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. """ + _ConfigurationAggregatorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_aggregation_source=account_aggregation_source, + arn=arn, + name=name, + organization_aggregation_source=organization_aggregation_source, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_aggregation_source: Optional[pulumi.Input['ConfigurationAggregatorAccountAggregationSourceArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + organization_aggregation_source: Optional[pulumi.Input['ConfigurationAggregatorOrganizationAggregationSourceArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_aggregation_source is None and 'accountAggregationSource' in kwargs: + account_aggregation_source = kwargs['accountAggregationSource'] + if organization_aggregation_source is None and 'organizationAggregationSource' in kwargs: + organization_aggregation_source = kwargs['organizationAggregationSource'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if account_aggregation_source is not None: - pulumi.set(__self__, "account_aggregation_source", account_aggregation_source) + _setter("account_aggregation_source", account_aggregation_source) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if organization_aggregation_source is not None: - pulumi.set(__self__, "organization_aggregation_source", organization_aggregation_source) + _setter("organization_aggregation_source", organization_aggregation_source) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="accountAggregationSource") @@ -334,6 +382,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConfigurationAggregatorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -352,8 +404,10 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ConfigurationAggregatorArgs.__new__(ConfigurationAggregatorArgs) + account_aggregation_source = _utilities.configure(account_aggregation_source, ConfigurationAggregatorAccountAggregationSourceArgs, True) __props__.__dict__["account_aggregation_source"] = account_aggregation_source __props__.__dict__["name"] = name + organization_aggregation_source = _utilities.configure(organization_aggregation_source, ConfigurationAggregatorOrganizationAggregationSourceArgs, True) __props__.__dict__["organization_aggregation_source"] = organization_aggregation_source __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/cfg/conformance_pack.py b/sdk/python/pulumi_aws/cfg/conformance_pack.py index 8fc650db96b..f940f0e8057 100644 --- a/sdk/python/pulumi_aws/cfg/conformance_pack.py +++ b/sdk/python/pulumi_aws/cfg/conformance_pack.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,18 +31,49 @@ def __init__(__self__, *, :param pulumi.Input[str] template_body: A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument. :param pulumi.Input[str] template_s3_uri: Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument. """ + ConformancePackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_s3_bucket=delivery_s3_bucket, + delivery_s3_key_prefix=delivery_s3_key_prefix, + input_parameters=input_parameters, + name=name, + template_body=template_body, + template_s3_uri=template_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_s3_bucket: Optional[pulumi.Input[str]] = None, + delivery_s3_key_prefix: Optional[pulumi.Input[str]] = None, + input_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ConformancePackInputParameterArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + template_body: Optional[pulumi.Input[str]] = None, + template_s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_s3_bucket is None and 'deliveryS3Bucket' in kwargs: + delivery_s3_bucket = kwargs['deliveryS3Bucket'] + if delivery_s3_key_prefix is None and 'deliveryS3KeyPrefix' in kwargs: + delivery_s3_key_prefix = kwargs['deliveryS3KeyPrefix'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if template_s3_uri is None and 'templateS3Uri' in kwargs: + template_s3_uri = kwargs['templateS3Uri'] + if delivery_s3_bucket is not None: - pulumi.set(__self__, "delivery_s3_bucket", delivery_s3_bucket) + _setter("delivery_s3_bucket", delivery_s3_bucket) if delivery_s3_key_prefix is not None: - pulumi.set(__self__, "delivery_s3_key_prefix", delivery_s3_key_prefix) + _setter("delivery_s3_key_prefix", delivery_s3_key_prefix) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if template_body is not None: - pulumi.set(__self__, "template_body", template_body) + _setter("template_body", template_body) if template_s3_uri is not None: - pulumi.set(__self__, "template_s3_uri", template_s3_uri) + _setter("template_s3_uri", template_s3_uri) @property @pulumi.getter(name="deliveryS3Bucket") @@ -137,20 +168,53 @@ def __init__(__self__, *, :param pulumi.Input[str] template_body: A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument. :param pulumi.Input[str] template_s3_uri: Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument. """ + _ConformancePackState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + delivery_s3_bucket=delivery_s3_bucket, + delivery_s3_key_prefix=delivery_s3_key_prefix, + input_parameters=input_parameters, + name=name, + template_body=template_body, + template_s3_uri=template_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + delivery_s3_bucket: Optional[pulumi.Input[str]] = None, + delivery_s3_key_prefix: Optional[pulumi.Input[str]] = None, + input_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ConformancePackInputParameterArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + template_body: Optional[pulumi.Input[str]] = None, + template_s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_s3_bucket is None and 'deliveryS3Bucket' in kwargs: + delivery_s3_bucket = kwargs['deliveryS3Bucket'] + if delivery_s3_key_prefix is None and 'deliveryS3KeyPrefix' in kwargs: + delivery_s3_key_prefix = kwargs['deliveryS3KeyPrefix'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if template_s3_uri is None and 'templateS3Uri' in kwargs: + template_s3_uri = kwargs['templateS3Uri'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if delivery_s3_bucket is not None: - pulumi.set(__self__, "delivery_s3_bucket", delivery_s3_bucket) + _setter("delivery_s3_bucket", delivery_s3_bucket) if delivery_s3_key_prefix is not None: - pulumi.set(__self__, "delivery_s3_key_prefix", delivery_s3_key_prefix) + _setter("delivery_s3_key_prefix", delivery_s3_key_prefix) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if template_body is not None: - pulumi.set(__self__, "template_body", template_body) + _setter("template_body", template_body) if template_s3_uri is not None: - pulumi.set(__self__, "template_s3_uri", template_s3_uri) + _setter("template_s3_uri", template_s3_uri) @property @pulumi.getter @@ -408,6 +472,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConformancePackArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cfg/delivery_channel.py b/sdk/python/pulumi_aws/cfg/delivery_channel.py index e1bb0264e56..096ac4125d2 100644 --- a/sdk/python/pulumi_aws/cfg/delivery_channel.py +++ b/sdk/python/pulumi_aws/cfg/delivery_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,17 +31,50 @@ def __init__(__self__, *, :param pulumi.Input['DeliveryChannelSnapshotDeliveryPropertiesArgs'] snapshot_delivery_properties: Options for how AWS Config delivers configuration snapshots. See below :param pulumi.Input[str] sns_topic_arn: The ARN of the SNS topic that AWS Config delivers notifications to. """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + DeliveryChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + name=name, + s3_key_prefix=s3_key_prefix, + s3_kms_key_arn=s3_kms_key_arn, + snapshot_delivery_properties=snapshot_delivery_properties, + sns_topic_arn=sns_topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + s3_key_prefix: Optional[pulumi.Input[str]] = None, + s3_kms_key_arn: Optional[pulumi.Input[str]] = None, + snapshot_delivery_properties: Optional[pulumi.Input['DeliveryChannelSnapshotDeliveryPropertiesArgs']] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if s3_kms_key_arn is None and 's3KmsKeyArn' in kwargs: + s3_kms_key_arn = kwargs['s3KmsKeyArn'] + if snapshot_delivery_properties is None and 'snapshotDeliveryProperties' in kwargs: + snapshot_delivery_properties = kwargs['snapshotDeliveryProperties'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + + _setter("s3_bucket_name", s3_bucket_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) if s3_kms_key_arn is not None: - pulumi.set(__self__, "s3_kms_key_arn", s3_kms_key_arn) + _setter("s3_kms_key_arn", s3_kms_key_arn) if snapshot_delivery_properties is not None: - pulumi.set(__self__, "snapshot_delivery_properties", snapshot_delivery_properties) + _setter("snapshot_delivery_properties", snapshot_delivery_properties) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) @property @pulumi.getter(name="s3BucketName") @@ -134,18 +167,49 @@ def __init__(__self__, *, :param pulumi.Input['DeliveryChannelSnapshotDeliveryPropertiesArgs'] snapshot_delivery_properties: Options for how AWS Config delivers configuration snapshots. See below :param pulumi.Input[str] sns_topic_arn: The ARN of the SNS topic that AWS Config delivers notifications to. """ + _DeliveryChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + s3_kms_key_arn=s3_kms_key_arn, + snapshot_delivery_properties=snapshot_delivery_properties, + sns_topic_arn=sns_topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + s3_bucket_name: Optional[pulumi.Input[str]] = None, + s3_key_prefix: Optional[pulumi.Input[str]] = None, + s3_kms_key_arn: Optional[pulumi.Input[str]] = None, + snapshot_delivery_properties: Optional[pulumi.Input['DeliveryChannelSnapshotDeliveryPropertiesArgs']] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if s3_kms_key_arn is None and 's3KmsKeyArn' in kwargs: + s3_kms_key_arn = kwargs['s3KmsKeyArn'] + if snapshot_delivery_properties is None and 'snapshotDeliveryProperties' in kwargs: + snapshot_delivery_properties = kwargs['snapshotDeliveryProperties'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if s3_bucket_name is not None: - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + _setter("s3_bucket_name", s3_bucket_name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) if s3_kms_key_arn is not None: - pulumi.set(__self__, "s3_kms_key_arn", s3_kms_key_arn) + _setter("s3_kms_key_arn", s3_kms_key_arn) if snapshot_delivery_properties is not None: - pulumi.set(__self__, "snapshot_delivery_properties", snapshot_delivery_properties) + _setter("snapshot_delivery_properties", snapshot_delivery_properties) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) @property @pulumi.getter @@ -347,6 +411,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeliveryChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -373,6 +441,7 @@ def _internal_init(__self__, __props__.__dict__["s3_bucket_name"] = s3_bucket_name __props__.__dict__["s3_key_prefix"] = s3_key_prefix __props__.__dict__["s3_kms_key_arn"] = s3_kms_key_arn + snapshot_delivery_properties = _utilities.configure(snapshot_delivery_properties, DeliveryChannelSnapshotDeliveryPropertiesArgs, True) __props__.__dict__["snapshot_delivery_properties"] = snapshot_delivery_properties __props__.__dict__["sns_topic_arn"] = sns_topic_arn super(DeliveryChannel, __self__).__init__( diff --git a/sdk/python/pulumi_aws/cfg/organization_conformance_pack.py b/sdk/python/pulumi_aws/cfg/organization_conformance_pack.py index 0fe666188a7..c5e659ffc7c 100644 --- a/sdk/python/pulumi_aws/cfg/organization_conformance_pack.py +++ b/sdk/python/pulumi_aws/cfg/organization_conformance_pack.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,20 +33,55 @@ def __init__(__self__, *, :param pulumi.Input[str] template_body: A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument. :param pulumi.Input[str] template_s3_uri: Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument. """ + OrganizationConformancePackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_s3_bucket=delivery_s3_bucket, + delivery_s3_key_prefix=delivery_s3_key_prefix, + excluded_accounts=excluded_accounts, + input_parameters=input_parameters, + name=name, + template_body=template_body, + template_s3_uri=template_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_s3_bucket: Optional[pulumi.Input[str]] = None, + delivery_s3_key_prefix: Optional[pulumi.Input[str]] = None, + excluded_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationConformancePackInputParameterArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + template_body: Optional[pulumi.Input[str]] = None, + template_s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_s3_bucket is None and 'deliveryS3Bucket' in kwargs: + delivery_s3_bucket = kwargs['deliveryS3Bucket'] + if delivery_s3_key_prefix is None and 'deliveryS3KeyPrefix' in kwargs: + delivery_s3_key_prefix = kwargs['deliveryS3KeyPrefix'] + if excluded_accounts is None and 'excludedAccounts' in kwargs: + excluded_accounts = kwargs['excludedAccounts'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if template_s3_uri is None and 'templateS3Uri' in kwargs: + template_s3_uri = kwargs['templateS3Uri'] + if delivery_s3_bucket is not None: - pulumi.set(__self__, "delivery_s3_bucket", delivery_s3_bucket) + _setter("delivery_s3_bucket", delivery_s3_bucket) if delivery_s3_key_prefix is not None: - pulumi.set(__self__, "delivery_s3_key_prefix", delivery_s3_key_prefix) + _setter("delivery_s3_key_prefix", delivery_s3_key_prefix) if excluded_accounts is not None: - pulumi.set(__self__, "excluded_accounts", excluded_accounts) + _setter("excluded_accounts", excluded_accounts) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if template_body is not None: - pulumi.set(__self__, "template_body", template_body) + _setter("template_body", template_body) if template_s3_uri is not None: - pulumi.set(__self__, "template_s3_uri", template_s3_uri) + _setter("template_s3_uri", template_s3_uri) @property @pulumi.getter(name="deliveryS3Bucket") @@ -155,22 +190,59 @@ def __init__(__self__, *, :param pulumi.Input[str] template_body: A string containing full conformance pack template body. Maximum length of 51200. Drift detection is not possible with this argument. :param pulumi.Input[str] template_s3_uri: Location of file, e.g., `s3://bucketname/prefix`, containing the template body. The uri must point to the conformance pack template that is located in an Amazon S3 bucket in the same region as the conformance pack. Maximum length of 1024. Drift detection is not possible with this argument. """ + _OrganizationConformancePackState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + delivery_s3_bucket=delivery_s3_bucket, + delivery_s3_key_prefix=delivery_s3_key_prefix, + excluded_accounts=excluded_accounts, + input_parameters=input_parameters, + name=name, + template_body=template_body, + template_s3_uri=template_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + delivery_s3_bucket: Optional[pulumi.Input[str]] = None, + delivery_s3_key_prefix: Optional[pulumi.Input[str]] = None, + excluded_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationConformancePackInputParameterArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + template_body: Optional[pulumi.Input[str]] = None, + template_s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_s3_bucket is None and 'deliveryS3Bucket' in kwargs: + delivery_s3_bucket = kwargs['deliveryS3Bucket'] + if delivery_s3_key_prefix is None and 'deliveryS3KeyPrefix' in kwargs: + delivery_s3_key_prefix = kwargs['deliveryS3KeyPrefix'] + if excluded_accounts is None and 'excludedAccounts' in kwargs: + excluded_accounts = kwargs['excludedAccounts'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if template_s3_uri is None and 'templateS3Uri' in kwargs: + template_s3_uri = kwargs['templateS3Uri'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if delivery_s3_bucket is not None: - pulumi.set(__self__, "delivery_s3_bucket", delivery_s3_bucket) + _setter("delivery_s3_bucket", delivery_s3_bucket) if delivery_s3_key_prefix is not None: - pulumi.set(__self__, "delivery_s3_key_prefix", delivery_s3_key_prefix) + _setter("delivery_s3_key_prefix", delivery_s3_key_prefix) if excluded_accounts is not None: - pulumi.set(__self__, "excluded_accounts", excluded_accounts) + _setter("excluded_accounts", excluded_accounts) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if template_body is not None: - pulumi.set(__self__, "template_body", template_body) + _setter("template_body", template_body) if template_s3_uri is not None: - pulumi.set(__self__, "template_s3_uri", template_s3_uri) + _setter("template_s3_uri", template_s3_uri) @property @pulumi.getter @@ -456,6 +528,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationConformancePackArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cfg/organization_custom_policy_rule.py b/sdk/python/pulumi_aws/cfg/organization_custom_policy_rule.py index 42f7fd2b1a7..08a13d67ce6 100644 --- a/sdk/python/pulumi_aws/cfg/organization_custom_policy_rule.py +++ b/sdk/python/pulumi_aws/cfg/organization_custom_policy_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OrganizationCustomPolicyRuleArgs', 'OrganizationCustomPolicyRule'] @@ -45,29 +45,92 @@ def __init__(__self__, *, :param pulumi.Input[str] tag_key_scope: Tag key of AWS resources to evaluate :param pulumi.Input[str] tag_value_scope: Tag value of AWS resources to evaluate """ - pulumi.set(__self__, "policy_runtime", policy_runtime) - pulumi.set(__self__, "policy_text", policy_text) - pulumi.set(__self__, "trigger_types", trigger_types) + OrganizationCustomPolicyRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_runtime=policy_runtime, + policy_text=policy_text, + trigger_types=trigger_types, + debug_log_delivery_accounts=debug_log_delivery_accounts, + description=description, + excluded_accounts=excluded_accounts, + input_parameters=input_parameters, + maximum_execution_frequency=maximum_execution_frequency, + name=name, + resource_id_scope=resource_id_scope, + resource_types_scopes=resource_types_scopes, + tag_key_scope=tag_key_scope, + tag_value_scope=tag_value_scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_runtime: Optional[pulumi.Input[str]] = None, + policy_text: Optional[pulumi.Input[str]] = None, + trigger_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + debug_log_delivery_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + excluded_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_parameters: Optional[pulumi.Input[str]] = None, + maximum_execution_frequency: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_id_scope: Optional[pulumi.Input[str]] = None, + resource_types_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_key_scope: Optional[pulumi.Input[str]] = None, + tag_value_scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_runtime is None and 'policyRuntime' in kwargs: + policy_runtime = kwargs['policyRuntime'] + if policy_runtime is None: + raise TypeError("Missing 'policy_runtime' argument") + if policy_text is None and 'policyText' in kwargs: + policy_text = kwargs['policyText'] + if policy_text is None: + raise TypeError("Missing 'policy_text' argument") + if trigger_types is None and 'triggerTypes' in kwargs: + trigger_types = kwargs['triggerTypes'] + if trigger_types is None: + raise TypeError("Missing 'trigger_types' argument") + if debug_log_delivery_accounts is None and 'debugLogDeliveryAccounts' in kwargs: + debug_log_delivery_accounts = kwargs['debugLogDeliveryAccounts'] + if excluded_accounts is None and 'excludedAccounts' in kwargs: + excluded_accounts = kwargs['excludedAccounts'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + if resource_id_scope is None and 'resourceIdScope' in kwargs: + resource_id_scope = kwargs['resourceIdScope'] + if resource_types_scopes is None and 'resourceTypesScopes' in kwargs: + resource_types_scopes = kwargs['resourceTypesScopes'] + if tag_key_scope is None and 'tagKeyScope' in kwargs: + tag_key_scope = kwargs['tagKeyScope'] + if tag_value_scope is None and 'tagValueScope' in kwargs: + tag_value_scope = kwargs['tagValueScope'] + + _setter("policy_runtime", policy_runtime) + _setter("policy_text", policy_text) + _setter("trigger_types", trigger_types) if debug_log_delivery_accounts is not None: - pulumi.set(__self__, "debug_log_delivery_accounts", debug_log_delivery_accounts) + _setter("debug_log_delivery_accounts", debug_log_delivery_accounts) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if excluded_accounts is not None: - pulumi.set(__self__, "excluded_accounts", excluded_accounts) + _setter("excluded_accounts", excluded_accounts) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_id_scope is not None: - pulumi.set(__self__, "resource_id_scope", resource_id_scope) + _setter("resource_id_scope", resource_id_scope) if resource_types_scopes is not None: - pulumi.set(__self__, "resource_types_scopes", resource_types_scopes) + _setter("resource_types_scopes", resource_types_scopes) if tag_key_scope is not None: - pulumi.set(__self__, "tag_key_scope", tag_key_scope) + _setter("tag_key_scope", tag_key_scope) if tag_value_scope is not None: - pulumi.set(__self__, "tag_value_scope", tag_value_scope) + _setter("tag_value_scope", tag_value_scope) @property @pulumi.getter(name="policyRuntime") @@ -264,34 +327,93 @@ def __init__(__self__, *, The following arguments are optional: """ + _OrganizationCustomPolicyRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + debug_log_delivery_accounts=debug_log_delivery_accounts, + description=description, + excluded_accounts=excluded_accounts, + input_parameters=input_parameters, + maximum_execution_frequency=maximum_execution_frequency, + name=name, + policy_runtime=policy_runtime, + policy_text=policy_text, + resource_id_scope=resource_id_scope, + resource_types_scopes=resource_types_scopes, + tag_key_scope=tag_key_scope, + tag_value_scope=tag_value_scope, + trigger_types=trigger_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + debug_log_delivery_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + excluded_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_parameters: Optional[pulumi.Input[str]] = None, + maximum_execution_frequency: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_runtime: Optional[pulumi.Input[str]] = None, + policy_text: Optional[pulumi.Input[str]] = None, + resource_id_scope: Optional[pulumi.Input[str]] = None, + resource_types_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_key_scope: Optional[pulumi.Input[str]] = None, + tag_value_scope: Optional[pulumi.Input[str]] = None, + trigger_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if debug_log_delivery_accounts is None and 'debugLogDeliveryAccounts' in kwargs: + debug_log_delivery_accounts = kwargs['debugLogDeliveryAccounts'] + if excluded_accounts is None and 'excludedAccounts' in kwargs: + excluded_accounts = kwargs['excludedAccounts'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + if policy_runtime is None and 'policyRuntime' in kwargs: + policy_runtime = kwargs['policyRuntime'] + if policy_text is None and 'policyText' in kwargs: + policy_text = kwargs['policyText'] + if resource_id_scope is None and 'resourceIdScope' in kwargs: + resource_id_scope = kwargs['resourceIdScope'] + if resource_types_scopes is None and 'resourceTypesScopes' in kwargs: + resource_types_scopes = kwargs['resourceTypesScopes'] + if tag_key_scope is None and 'tagKeyScope' in kwargs: + tag_key_scope = kwargs['tagKeyScope'] + if tag_value_scope is None and 'tagValueScope' in kwargs: + tag_value_scope = kwargs['tagValueScope'] + if trigger_types is None and 'triggerTypes' in kwargs: + trigger_types = kwargs['triggerTypes'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if debug_log_delivery_accounts is not None: - pulumi.set(__self__, "debug_log_delivery_accounts", debug_log_delivery_accounts) + _setter("debug_log_delivery_accounts", debug_log_delivery_accounts) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if excluded_accounts is not None: - pulumi.set(__self__, "excluded_accounts", excluded_accounts) + _setter("excluded_accounts", excluded_accounts) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy_runtime is not None: - pulumi.set(__self__, "policy_runtime", policy_runtime) + _setter("policy_runtime", policy_runtime) if policy_text is not None: - pulumi.set(__self__, "policy_text", policy_text) + _setter("policy_text", policy_text) if resource_id_scope is not None: - pulumi.set(__self__, "resource_id_scope", resource_id_scope) + _setter("resource_id_scope", resource_id_scope) if resource_types_scopes is not None: - pulumi.set(__self__, "resource_types_scopes", resource_types_scopes) + _setter("resource_types_scopes", resource_types_scopes) if tag_key_scope is not None: - pulumi.set(__self__, "tag_key_scope", tag_key_scope) + _setter("tag_key_scope", tag_key_scope) if tag_value_scope is not None: - pulumi.set(__self__, "tag_value_scope", tag_value_scope) + _setter("tag_value_scope", tag_value_scope) if trigger_types is not None: - pulumi.set(__self__, "trigger_types", trigger_types) + _setter("trigger_types", trigger_types) @property @pulumi.getter @@ -597,6 +719,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationCustomPolicyRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cfg/organization_custom_rule.py b/sdk/python/pulumi_aws/cfg/organization_custom_rule.py index 4674498c26b..7baf245515f 100644 --- a/sdk/python/pulumi_aws/cfg/organization_custom_rule.py +++ b/sdk/python/pulumi_aws/cfg/organization_custom_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OrganizationCustomRuleArgs', 'OrganizationCustomRule'] @@ -39,26 +39,79 @@ def __init__(__self__, *, :param pulumi.Input[str] tag_key_scope: Tag key of AWS resources to evaluate :param pulumi.Input[str] tag_value_scope: Tag value of AWS resources to evaluate """ - pulumi.set(__self__, "lambda_function_arn", lambda_function_arn) - pulumi.set(__self__, "trigger_types", trigger_types) + OrganizationCustomRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_function_arn=lambda_function_arn, + trigger_types=trigger_types, + description=description, + excluded_accounts=excluded_accounts, + input_parameters=input_parameters, + maximum_execution_frequency=maximum_execution_frequency, + name=name, + resource_id_scope=resource_id_scope, + resource_types_scopes=resource_types_scopes, + tag_key_scope=tag_key_scope, + tag_value_scope=tag_value_scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_function_arn: Optional[pulumi.Input[str]] = None, + trigger_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + excluded_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_parameters: Optional[pulumi.Input[str]] = None, + maximum_execution_frequency: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_id_scope: Optional[pulumi.Input[str]] = None, + resource_types_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_key_scope: Optional[pulumi.Input[str]] = None, + tag_value_scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_function_arn is None and 'lambdaFunctionArn' in kwargs: + lambda_function_arn = kwargs['lambdaFunctionArn'] + if lambda_function_arn is None: + raise TypeError("Missing 'lambda_function_arn' argument") + if trigger_types is None and 'triggerTypes' in kwargs: + trigger_types = kwargs['triggerTypes'] + if trigger_types is None: + raise TypeError("Missing 'trigger_types' argument") + if excluded_accounts is None and 'excludedAccounts' in kwargs: + excluded_accounts = kwargs['excludedAccounts'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + if resource_id_scope is None and 'resourceIdScope' in kwargs: + resource_id_scope = kwargs['resourceIdScope'] + if resource_types_scopes is None and 'resourceTypesScopes' in kwargs: + resource_types_scopes = kwargs['resourceTypesScopes'] + if tag_key_scope is None and 'tagKeyScope' in kwargs: + tag_key_scope = kwargs['tagKeyScope'] + if tag_value_scope is None and 'tagValueScope' in kwargs: + tag_value_scope = kwargs['tagValueScope'] + + _setter("lambda_function_arn", lambda_function_arn) + _setter("trigger_types", trigger_types) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if excluded_accounts is not None: - pulumi.set(__self__, "excluded_accounts", excluded_accounts) + _setter("excluded_accounts", excluded_accounts) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_id_scope is not None: - pulumi.set(__self__, "resource_id_scope", resource_id_scope) + _setter("resource_id_scope", resource_id_scope) if resource_types_scopes is not None: - pulumi.set(__self__, "resource_types_scopes", resource_types_scopes) + _setter("resource_types_scopes", resource_types_scopes) if tag_key_scope is not None: - pulumi.set(__self__, "tag_key_scope", tag_key_scope) + _setter("tag_key_scope", tag_key_scope) if tag_value_scope is not None: - pulumi.set(__self__, "tag_value_scope", tag_value_scope) + _setter("tag_value_scope", tag_value_scope) @property @pulumi.getter(name="lambdaFunctionArn") @@ -223,30 +276,81 @@ def __init__(__self__, *, :param pulumi.Input[str] tag_value_scope: Tag value of AWS resources to evaluate :param pulumi.Input[Sequence[pulumi.Input[str]]] trigger_types: List of notification types that trigger AWS Config to run an evaluation for the rule. Valid values: `ConfigurationItemChangeNotification`, `OversizedConfigurationItemChangeNotification`, and `ScheduledNotification` """ + _OrganizationCustomRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + excluded_accounts=excluded_accounts, + input_parameters=input_parameters, + lambda_function_arn=lambda_function_arn, + maximum_execution_frequency=maximum_execution_frequency, + name=name, + resource_id_scope=resource_id_scope, + resource_types_scopes=resource_types_scopes, + tag_key_scope=tag_key_scope, + tag_value_scope=tag_value_scope, + trigger_types=trigger_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + excluded_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_parameters: Optional[pulumi.Input[str]] = None, + lambda_function_arn: Optional[pulumi.Input[str]] = None, + maximum_execution_frequency: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_id_scope: Optional[pulumi.Input[str]] = None, + resource_types_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_key_scope: Optional[pulumi.Input[str]] = None, + tag_value_scope: Optional[pulumi.Input[str]] = None, + trigger_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_accounts is None and 'excludedAccounts' in kwargs: + excluded_accounts = kwargs['excludedAccounts'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if lambda_function_arn is None and 'lambdaFunctionArn' in kwargs: + lambda_function_arn = kwargs['lambdaFunctionArn'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + if resource_id_scope is None and 'resourceIdScope' in kwargs: + resource_id_scope = kwargs['resourceIdScope'] + if resource_types_scopes is None and 'resourceTypesScopes' in kwargs: + resource_types_scopes = kwargs['resourceTypesScopes'] + if tag_key_scope is None and 'tagKeyScope' in kwargs: + tag_key_scope = kwargs['tagKeyScope'] + if tag_value_scope is None and 'tagValueScope' in kwargs: + tag_value_scope = kwargs['tagValueScope'] + if trigger_types is None and 'triggerTypes' in kwargs: + trigger_types = kwargs['triggerTypes'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if excluded_accounts is not None: - pulumi.set(__self__, "excluded_accounts", excluded_accounts) + _setter("excluded_accounts", excluded_accounts) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if lambda_function_arn is not None: - pulumi.set(__self__, "lambda_function_arn", lambda_function_arn) + _setter("lambda_function_arn", lambda_function_arn) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_id_scope is not None: - pulumi.set(__self__, "resource_id_scope", resource_id_scope) + _setter("resource_id_scope", resource_id_scope) if resource_types_scopes is not None: - pulumi.set(__self__, "resource_types_scopes", resource_types_scopes) + _setter("resource_types_scopes", resource_types_scopes) if tag_key_scope is not None: - pulumi.set(__self__, "tag_key_scope", tag_key_scope) + _setter("tag_key_scope", tag_key_scope) if tag_value_scope is not None: - pulumi.set(__self__, "tag_value_scope", tag_value_scope) + _setter("tag_value_scope", tag_value_scope) if trigger_types is not None: - pulumi.set(__self__, "trigger_types", trigger_types) + _setter("trigger_types", trigger_types) @property @pulumi.getter @@ -514,6 +618,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationCustomRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cfg/organization_managed_rule.py b/sdk/python/pulumi_aws/cfg/organization_managed_rule.py index ed69abba018..7678e88b512 100644 --- a/sdk/python/pulumi_aws/cfg/organization_managed_rule.py +++ b/sdk/python/pulumi_aws/cfg/organization_managed_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OrganizationManagedRuleArgs', 'OrganizationManagedRule'] @@ -37,25 +37,72 @@ def __init__(__self__, *, :param pulumi.Input[str] tag_key_scope: Tag key of AWS resources to evaluate :param pulumi.Input[str] tag_value_scope: Tag value of AWS resources to evaluate """ - pulumi.set(__self__, "rule_identifier", rule_identifier) + OrganizationManagedRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_identifier=rule_identifier, + description=description, + excluded_accounts=excluded_accounts, + input_parameters=input_parameters, + maximum_execution_frequency=maximum_execution_frequency, + name=name, + resource_id_scope=resource_id_scope, + resource_types_scopes=resource_types_scopes, + tag_key_scope=tag_key_scope, + tag_value_scope=tag_value_scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_identifier: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + excluded_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_parameters: Optional[pulumi.Input[str]] = None, + maximum_execution_frequency: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_id_scope: Optional[pulumi.Input[str]] = None, + resource_types_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_key_scope: Optional[pulumi.Input[str]] = None, + tag_value_scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_identifier is None and 'ruleIdentifier' in kwargs: + rule_identifier = kwargs['ruleIdentifier'] + if rule_identifier is None: + raise TypeError("Missing 'rule_identifier' argument") + if excluded_accounts is None and 'excludedAccounts' in kwargs: + excluded_accounts = kwargs['excludedAccounts'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + if resource_id_scope is None and 'resourceIdScope' in kwargs: + resource_id_scope = kwargs['resourceIdScope'] + if resource_types_scopes is None and 'resourceTypesScopes' in kwargs: + resource_types_scopes = kwargs['resourceTypesScopes'] + if tag_key_scope is None and 'tagKeyScope' in kwargs: + tag_key_scope = kwargs['tagKeyScope'] + if tag_value_scope is None and 'tagValueScope' in kwargs: + tag_value_scope = kwargs['tagValueScope'] + + _setter("rule_identifier", rule_identifier) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if excluded_accounts is not None: - pulumi.set(__self__, "excluded_accounts", excluded_accounts) + _setter("excluded_accounts", excluded_accounts) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_id_scope is not None: - pulumi.set(__self__, "resource_id_scope", resource_id_scope) + _setter("resource_id_scope", resource_id_scope) if resource_types_scopes is not None: - pulumi.set(__self__, "resource_types_scopes", resource_types_scopes) + _setter("resource_types_scopes", resource_types_scopes) if tag_key_scope is not None: - pulumi.set(__self__, "tag_key_scope", tag_key_scope) + _setter("tag_key_scope", tag_key_scope) if tag_value_scope is not None: - pulumi.set(__self__, "tag_value_scope", tag_value_scope) + _setter("tag_value_scope", tag_value_scope) @property @pulumi.getter(name="ruleIdentifier") @@ -206,28 +253,75 @@ def __init__(__self__, *, :param pulumi.Input[str] tag_key_scope: Tag key of AWS resources to evaluate :param pulumi.Input[str] tag_value_scope: Tag value of AWS resources to evaluate """ + _OrganizationManagedRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + excluded_accounts=excluded_accounts, + input_parameters=input_parameters, + maximum_execution_frequency=maximum_execution_frequency, + name=name, + resource_id_scope=resource_id_scope, + resource_types_scopes=resource_types_scopes, + rule_identifier=rule_identifier, + tag_key_scope=tag_key_scope, + tag_value_scope=tag_value_scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + excluded_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_parameters: Optional[pulumi.Input[str]] = None, + maximum_execution_frequency: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_id_scope: Optional[pulumi.Input[str]] = None, + resource_types_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + rule_identifier: Optional[pulumi.Input[str]] = None, + tag_key_scope: Optional[pulumi.Input[str]] = None, + tag_value_scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_accounts is None and 'excludedAccounts' in kwargs: + excluded_accounts = kwargs['excludedAccounts'] + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + if resource_id_scope is None and 'resourceIdScope' in kwargs: + resource_id_scope = kwargs['resourceIdScope'] + if resource_types_scopes is None and 'resourceTypesScopes' in kwargs: + resource_types_scopes = kwargs['resourceTypesScopes'] + if rule_identifier is None and 'ruleIdentifier' in kwargs: + rule_identifier = kwargs['ruleIdentifier'] + if tag_key_scope is None and 'tagKeyScope' in kwargs: + tag_key_scope = kwargs['tagKeyScope'] + if tag_value_scope is None and 'tagValueScope' in kwargs: + tag_value_scope = kwargs['tagValueScope'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if excluded_accounts is not None: - pulumi.set(__self__, "excluded_accounts", excluded_accounts) + _setter("excluded_accounts", excluded_accounts) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_id_scope is not None: - pulumi.set(__self__, "resource_id_scope", resource_id_scope) + _setter("resource_id_scope", resource_id_scope) if resource_types_scopes is not None: - pulumi.set(__self__, "resource_types_scopes", resource_types_scopes) + _setter("resource_types_scopes", resource_types_scopes) if rule_identifier is not None: - pulumi.set(__self__, "rule_identifier", rule_identifier) + _setter("rule_identifier", rule_identifier) if tag_key_scope is not None: - pulumi.set(__self__, "tag_key_scope", tag_key_scope) + _setter("tag_key_scope", tag_key_scope) if tag_value_scope is not None: - pulumi.set(__self__, "tag_value_scope", tag_value_scope) + _setter("tag_value_scope", tag_value_scope) @property @pulumi.getter @@ -463,6 +557,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationManagedRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cfg/outputs.py b/sdk/python/pulumi_aws/cfg/outputs.py index 56e2854d491..0b7d04f1cf1 100644 --- a/sdk/python/pulumi_aws/cfg/outputs.py +++ b/sdk/python/pulumi_aws/cfg/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -60,11 +60,32 @@ def __init__(__self__, *, Either `regions` or `all_regions` (as true) must be specified. """ - pulumi.set(__self__, "account_ids", account_ids) + ConfigurationAggregatorAccountAggregationSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_ids=account_ids, + all_regions=all_regions, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_ids: Optional[Sequence[str]] = None, + all_regions: Optional[bool] = None, + regions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_ids is None and 'accountIds' in kwargs: + account_ids = kwargs['accountIds'] + if account_ids is None: + raise TypeError("Missing 'account_ids' argument") + if all_regions is None and 'allRegions' in kwargs: + all_regions = kwargs['allRegions'] + + _setter("account_ids", account_ids) if all_regions is not None: - pulumi.set(__self__, "all_regions", all_regions) + _setter("all_regions", all_regions) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter(name="accountIds") @@ -125,11 +146,32 @@ def __init__(__self__, *, :param bool all_regions: If true, aggregate existing AWS Config regions and future regions. :param Sequence[str] regions: List of source regions being aggregated. """ - pulumi.set(__self__, "role_arn", role_arn) + ConfigurationAggregatorOrganizationAggregationSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + all_regions=all_regions, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + all_regions: Optional[bool] = None, + regions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if all_regions is None and 'allRegions' in kwargs: + all_regions = kwargs['allRegions'] + + _setter("role_arn", role_arn) if all_regions is not None: - pulumi.set(__self__, "all_regions", all_regions) + _setter("all_regions", all_regions) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter(name="roleArn") @@ -186,8 +228,29 @@ def __init__(__self__, *, :param str parameter_name: The input key. :param str parameter_value: The input value. """ - pulumi.set(__self__, "parameter_name", parameter_name) - pulumi.set(__self__, "parameter_value", parameter_value) + ConformancePackInputParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -230,8 +293,21 @@ def __init__(__self__, *, """ :param str delivery_frequency: The frequency with which AWS Config recurringly delivers configuration snapshotsE.g., `One_Hour` or `Three_Hours`. Valid values are listed [here](https://docs.aws.amazon.com/config/latest/APIReference/API_ConfigSnapshotDeliveryProperties.html#API_ConfigSnapshotDeliveryProperties_Contents). """ + DeliveryChannelSnapshotDeliveryProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_frequency=delivery_frequency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_frequency: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_frequency is None and 'deliveryFrequency' in kwargs: + delivery_frequency = kwargs['deliveryFrequency'] + if delivery_frequency is not None: - pulumi.set(__self__, "delivery_frequency", delivery_frequency) + _setter("delivery_frequency", delivery_frequency) @property @pulumi.getter(name="deliveryFrequency") @@ -270,8 +346,29 @@ def __init__(__self__, *, :param str parameter_name: The input key. :param str parameter_value: The input value. """ - pulumi.set(__self__, "parameter_name", parameter_name) - pulumi.set(__self__, "parameter_value", parameter_value) + OrganizationConformancePackInputParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -330,16 +427,45 @@ def __init__(__self__, *, :param Sequence['RecorderRecordingGroupRecordingStrategyArgs'] recording_strategies: Recording Strategy - see below.. :param Sequence[str] resource_types: A list that specifies the types of AWS resources for which AWS Config records configuration changes (for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`). See [relevant part of AWS Docs](http://docs.aws.amazon.com/config/latest/APIReference/API_ResourceIdentifier.html#config-Type-ResourceIdentifier-resourceType) for available types. In order to use this attribute, `all_supported` must be set to false. """ + RecorderRecordingGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_supported=all_supported, + exclusion_by_resource_types=exclusion_by_resource_types, + include_global_resource_types=include_global_resource_types, + recording_strategies=recording_strategies, + resource_types=resource_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_supported: Optional[bool] = None, + exclusion_by_resource_types: Optional[Sequence['outputs.RecorderRecordingGroupExclusionByResourceType']] = None, + include_global_resource_types: Optional[bool] = None, + recording_strategies: Optional[Sequence['outputs.RecorderRecordingGroupRecordingStrategy']] = None, + resource_types: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_supported is None and 'allSupported' in kwargs: + all_supported = kwargs['allSupported'] + if exclusion_by_resource_types is None and 'exclusionByResourceTypes' in kwargs: + exclusion_by_resource_types = kwargs['exclusionByResourceTypes'] + if include_global_resource_types is None and 'includeGlobalResourceTypes' in kwargs: + include_global_resource_types = kwargs['includeGlobalResourceTypes'] + if recording_strategies is None and 'recordingStrategies' in kwargs: + recording_strategies = kwargs['recordingStrategies'] + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if all_supported is not None: - pulumi.set(__self__, "all_supported", all_supported) + _setter("all_supported", all_supported) if exclusion_by_resource_types is not None: - pulumi.set(__self__, "exclusion_by_resource_types", exclusion_by_resource_types) + _setter("exclusion_by_resource_types", exclusion_by_resource_types) if include_global_resource_types is not None: - pulumi.set(__self__, "include_global_resource_types", include_global_resource_types) + _setter("include_global_resource_types", include_global_resource_types) if recording_strategies is not None: - pulumi.set(__self__, "recording_strategies", recording_strategies) + _setter("recording_strategies", recording_strategies) if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) @property @pulumi.getter(name="allSupported") @@ -406,8 +532,21 @@ def __init__(__self__, *, """ :param Sequence[str] resource_types: A list that specifies the types of AWS resources for which AWS Config records configuration changes (for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`). See [relevant part of AWS Docs](http://docs.aws.amazon.com/config/latest/APIReference/API_ResourceIdentifier.html#config-Type-ResourceIdentifier-resourceType) for available types. In order to use this attribute, `all_supported` must be set to false. """ + RecorderRecordingGroupExclusionByResourceType._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_types=resource_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_types: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) @property @pulumi.getter(name="resourceTypes") @@ -439,8 +578,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, use_only: Optional[str] = None): + RecorderRecordingGroupRecordingStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + use_only=use_only, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + use_only: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if use_only is None and 'useOnly' in kwargs: + use_only = kwargs['useOnly'] + if use_only is not None: - pulumi.set(__self__, "use_only", use_only) + _setter("use_only", use_only) @property @pulumi.getter(name="useOnly") @@ -472,8 +624,21 @@ def __init__(__self__, *, """ :param 'RemediationConfigurationExecutionControlsSsmControlsArgs' ssm_controls: Configuration block for SSM controls. See below. """ + RemediationConfigurationExecutionControls._configure( + lambda key, value: pulumi.set(__self__, key, value), + ssm_controls=ssm_controls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ssm_controls: Optional['outputs.RemediationConfigurationExecutionControlsSsmControls'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ssm_controls is None and 'ssmControls' in kwargs: + ssm_controls = kwargs['ssmControls'] + if ssm_controls is not None: - pulumi.set(__self__, "ssm_controls", ssm_controls) + _setter("ssm_controls", ssm_controls) @property @pulumi.getter(name="ssmControls") @@ -512,10 +677,27 @@ def __init__(__self__, *, :param int concurrent_execution_rate_percentage: Maximum percentage of remediation actions allowed to run in parallel on the non-compliant resources for that specific rule. The default value is 10%. :param int error_percentage: Percentage of errors that are allowed before SSM stops running automations on non-compliant resources for that specific rule. The default is 50%. """ + RemediationConfigurationExecutionControlsSsmControls._configure( + lambda key, value: pulumi.set(__self__, key, value), + concurrent_execution_rate_percentage=concurrent_execution_rate_percentage, + error_percentage=error_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + concurrent_execution_rate_percentage: Optional[int] = None, + error_percentage: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if concurrent_execution_rate_percentage is None and 'concurrentExecutionRatePercentage' in kwargs: + concurrent_execution_rate_percentage = kwargs['concurrentExecutionRatePercentage'] + if error_percentage is None and 'errorPercentage' in kwargs: + error_percentage = kwargs['errorPercentage'] + if concurrent_execution_rate_percentage is not None: - pulumi.set(__self__, "concurrent_execution_rate_percentage", concurrent_execution_rate_percentage) + _setter("concurrent_execution_rate_percentage", concurrent_execution_rate_percentage) if error_percentage is not None: - pulumi.set(__self__, "error_percentage", error_percentage) + _setter("error_percentage", error_percentage) @property @pulumi.getter(name="concurrentExecutionRatePercentage") @@ -568,13 +750,38 @@ def __init__(__self__, *, :param str static_value: Value is static and does not change at run-time. :param Sequence[str] static_values: List of static values. """ - pulumi.set(__self__, "name", name) + RemediationConfigurationParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + resource_value=resource_value, + static_value=static_value, + static_values=static_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + resource_value: Optional[str] = None, + static_value: Optional[str] = None, + static_values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if resource_value is None and 'resourceValue' in kwargs: + resource_value = kwargs['resourceValue'] + if static_value is None and 'staticValue' in kwargs: + static_value = kwargs['staticValue'] + if static_values is None and 'staticValues' in kwargs: + static_values = kwargs['staticValues'] + + _setter("name", name) if resource_value is not None: - pulumi.set(__self__, "resource_value", resource_value) + _setter("resource_value", resource_value) if static_value is not None: - pulumi.set(__self__, "static_value", static_value) + _setter("static_value", static_value) if static_values is not None: - pulumi.set(__self__, "static_values", static_values) + _setter("static_values", static_values) @property @pulumi.getter @@ -645,14 +852,39 @@ def __init__(__self__, *, :param str tag_key: The tag key that is applied to only those AWS resources that you want you want to trigger an evaluation for the rule. :param str tag_value: The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule. """ + RuleScope._configure( + lambda key, value: pulumi.set(__self__, key, value), + compliance_resource_id=compliance_resource_id, + compliance_resource_types=compliance_resource_types, + tag_key=tag_key, + tag_value=tag_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compliance_resource_id: Optional[str] = None, + compliance_resource_types: Optional[Sequence[str]] = None, + tag_key: Optional[str] = None, + tag_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compliance_resource_id is None and 'complianceResourceId' in kwargs: + compliance_resource_id = kwargs['complianceResourceId'] + if compliance_resource_types is None and 'complianceResourceTypes' in kwargs: + compliance_resource_types = kwargs['complianceResourceTypes'] + if tag_key is None and 'tagKey' in kwargs: + tag_key = kwargs['tagKey'] + if tag_value is None and 'tagValue' in kwargs: + tag_value = kwargs['tagValue'] + if compliance_resource_id is not None: - pulumi.set(__self__, "compliance_resource_id", compliance_resource_id) + _setter("compliance_resource_id", compliance_resource_id) if compliance_resource_types is not None: - pulumi.set(__self__, "compliance_resource_types", compliance_resource_types) + _setter("compliance_resource_types", compliance_resource_types) if tag_key is not None: - pulumi.set(__self__, "tag_key", tag_key) + _setter("tag_key", tag_key) if tag_value is not None: - pulumi.set(__self__, "tag_value", tag_value) + _setter("tag_value", tag_value) @property @pulumi.getter(name="complianceResourceId") @@ -721,13 +953,38 @@ def __init__(__self__, *, :param Sequence['RuleSourceSourceDetailArgs'] source_details: Provides the source and type of the event that causes AWS Config to evaluate your AWS resources. Only valid if `owner` is `CUSTOM_LAMBDA` or `CUSTOM_POLICY`. See Source Detail Below. :param str source_identifier: For AWS Config managed rules, a predefined identifier, e.g `IAM_PASSWORD_POLICY`. For custom Lambda rules, the identifier is the ARN of the Lambda Function, such as `arn:aws:lambda:us-east-1:123456789012:function:custom_rule_name` or the `arn` attribute of the `lambda.Function` resource. """ - pulumi.set(__self__, "owner", owner) + RuleSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + custom_policy_details=custom_policy_details, + source_details=source_details, + source_identifier=source_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[str] = None, + custom_policy_details: Optional['outputs.RuleSourceCustomPolicyDetails'] = None, + source_details: Optional[Sequence['outputs.RuleSourceSourceDetail']] = None, + source_identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + if custom_policy_details is None and 'customPolicyDetails' in kwargs: + custom_policy_details = kwargs['customPolicyDetails'] + if source_details is None and 'sourceDetails' in kwargs: + source_details = kwargs['sourceDetails'] + if source_identifier is None and 'sourceIdentifier' in kwargs: + source_identifier = kwargs['sourceIdentifier'] + + _setter("owner", owner) if custom_policy_details is not None: - pulumi.set(__self__, "custom_policy_details", custom_policy_details) + _setter("custom_policy_details", custom_policy_details) if source_details is not None: - pulumi.set(__self__, "source_details", source_details) + _setter("source_details", source_details) if source_identifier is not None: - pulumi.set(__self__, "source_identifier", source_identifier) + _setter("source_identifier", source_identifier) @property @pulumi.getter @@ -794,10 +1051,35 @@ def __init__(__self__, *, :param str policy_text: The policy definition containing the logic for your Config Custom Policy rule. :param bool enable_debug_log_delivery: The boolean expression for enabling debug logging for your Config Custom Policy rule. The default value is `false`. """ - pulumi.set(__self__, "policy_runtime", policy_runtime) - pulumi.set(__self__, "policy_text", policy_text) + RuleSourceCustomPolicyDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_runtime=policy_runtime, + policy_text=policy_text, + enable_debug_log_delivery=enable_debug_log_delivery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_runtime: Optional[str] = None, + policy_text: Optional[str] = None, + enable_debug_log_delivery: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_runtime is None and 'policyRuntime' in kwargs: + policy_runtime = kwargs['policyRuntime'] + if policy_runtime is None: + raise TypeError("Missing 'policy_runtime' argument") + if policy_text is None and 'policyText' in kwargs: + policy_text = kwargs['policyText'] + if policy_text is None: + raise TypeError("Missing 'policy_text' argument") + if enable_debug_log_delivery is None and 'enableDebugLogDelivery' in kwargs: + enable_debug_log_delivery = kwargs['enableDebugLogDelivery'] + + _setter("policy_runtime", policy_runtime) + _setter("policy_text", policy_text) if enable_debug_log_delivery is not None: - pulumi.set(__self__, "enable_debug_log_delivery", enable_debug_log_delivery) + _setter("enable_debug_log_delivery", enable_debug_log_delivery) @property @pulumi.getter(name="policyRuntime") @@ -856,12 +1138,33 @@ def __init__(__self__, *, :param str maximum_execution_frequency: The frequency that you want AWS Config to run evaluations for a rule that istriggered periodically. If specified, requires `message_type` to be `ScheduledNotification`. :param str message_type: The type of notification that triggers AWS Config to run an evaluation for a rule. You canspecify the following notification types: """ + RuleSourceSourceDetail._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_source=event_source, + maximum_execution_frequency=maximum_execution_frequency, + message_type=message_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_source: Optional[str] = None, + maximum_execution_frequency: Optional[str] = None, + message_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_source is None and 'eventSource' in kwargs: + event_source = kwargs['eventSource'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + if message_type is None and 'messageType' in kwargs: + message_type = kwargs['messageType'] + if event_source is not None: - pulumi.set(__self__, "event_source", event_source) + _setter("event_source", event_source) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if message_type is not None: - pulumi.set(__self__, "message_type", message_type) + _setter("message_type", message_type) @property @pulumi.getter(name="eventSource") diff --git a/sdk/python/pulumi_aws/cfg/recorder.py b/sdk/python/pulumi_aws/cfg/recorder.py index c7aeade382f..59722e4800e 100644 --- a/sdk/python/pulumi_aws/cfg/recorder.py +++ b/sdk/python/pulumi_aws/cfg/recorder.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the recorder. Defaults to `default`. Changing it recreates the resource. :param pulumi.Input['RecorderRecordingGroupArgs'] recording_group: Recording group - see below. """ - pulumi.set(__self__, "role_arn", role_arn) + RecorderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + name=name, + recording_group=recording_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + recording_group: Optional[pulumi.Input['RecorderRecordingGroupArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if recording_group is None and 'recordingGroup' in kwargs: + recording_group = kwargs['recordingGroup'] + + _setter("role_arn", role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recording_group is not None: - pulumi.set(__self__, "recording_group", recording_group) + _setter("recording_group", recording_group) @property @pulumi.getter(name="roleArn") @@ -80,12 +101,31 @@ def __init__(__self__, *, :param pulumi.Input['RecorderRecordingGroupArgs'] recording_group: Recording group - see below. :param pulumi.Input[str] role_arn: Amazon Resource Name (ARN) of the IAM role. Used to make read or write requests to the delivery channel and to describe the AWS resources associated with the account. See [AWS Docs](http://docs.aws.amazon.com/config/latest/developerguide/iamrole-permissions.html) for more details. """ + _RecorderState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + recording_group=recording_group, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + recording_group: Optional[pulumi.Input['RecorderRecordingGroupArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recording_group is None and 'recordingGroup' in kwargs: + recording_group = kwargs['recordingGroup'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recording_group is not None: - pulumi.set(__self__, "recording_group", recording_group) + _setter("recording_group", recording_group) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter @@ -217,6 +257,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RecorderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -235,6 +279,7 @@ def _internal_init(__self__, __props__ = RecorderArgs.__new__(RecorderArgs) __props__.__dict__["name"] = name + recording_group = _utilities.configure(recording_group, RecorderRecordingGroupArgs, True) __props__.__dict__["recording_group"] = recording_group if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") diff --git a/sdk/python/pulumi_aws/cfg/recorder_status.py b/sdk/python/pulumi_aws/cfg/recorder_status.py index fef54503fa0..47cd081c67e 100644 --- a/sdk/python/pulumi_aws/cfg/recorder_status.py +++ b/sdk/python/pulumi_aws/cfg/recorder_status.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RecorderStatusArgs', 'RecorderStatus'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] is_enabled: Whether the configuration recorder should be enabled or disabled. :param pulumi.Input[str] name: The name of the recorder """ - pulumi.set(__self__, "is_enabled", is_enabled) + RecorderStatusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_enabled=is_enabled, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_enabled is None and 'isEnabled' in kwargs: + is_enabled = kwargs['isEnabled'] + if is_enabled is None: + raise TypeError("Missing 'is_enabled' argument") + + _setter("is_enabled", is_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="isEnabled") @@ -60,10 +77,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] is_enabled: Whether the configuration recorder should be enabled or disabled. :param pulumi.Input[str] name: The name of the recorder """ + _RecorderStatusState._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_enabled=is_enabled, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_enabled is None and 'isEnabled' in kwargs: + is_enabled = kwargs['isEnabled'] + if is_enabled is not None: - pulumi.set(__self__, "is_enabled", is_enabled) + _setter("is_enabled", is_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="isEnabled") @@ -217,6 +249,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RecorderStatusArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cfg/remediation_configuration.py b/sdk/python/pulumi_aws/cfg/remediation_configuration.py index 5c315ecfc5b..f6e8c82a672 100644 --- a/sdk/python/pulumi_aws/cfg/remediation_configuration.py +++ b/sdk/python/pulumi_aws/cfg/remediation_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,23 +41,74 @@ def __init__(__self__, *, :param pulumi.Input[int] retry_attempt_seconds: Maximum time in seconds that AWS Config runs auto-remediation. If you do not select a number, the default is 60 seconds. :param pulumi.Input[str] target_version: Version of the target. For example, version of the SSM document """ - pulumi.set(__self__, "config_rule_name", config_rule_name) - pulumi.set(__self__, "target_id", target_id) - pulumi.set(__self__, "target_type", target_type) + RemediationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + config_rule_name=config_rule_name, + target_id=target_id, + target_type=target_type, + automatic=automatic, + execution_controls=execution_controls, + maximum_automatic_attempts=maximum_automatic_attempts, + parameters=parameters, + resource_type=resource_type, + retry_attempt_seconds=retry_attempt_seconds, + target_version=target_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + config_rule_name: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + target_type: Optional[pulumi.Input[str]] = None, + automatic: Optional[pulumi.Input[bool]] = None, + execution_controls: Optional[pulumi.Input['RemediationConfigurationExecutionControlsArgs']] = None, + maximum_automatic_attempts: Optional[pulumi.Input[int]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['RemediationConfigurationParameterArgs']]]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + retry_attempt_seconds: Optional[pulumi.Input[int]] = None, + target_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if config_rule_name is None and 'configRuleName' in kwargs: + config_rule_name = kwargs['configRuleName'] + if config_rule_name is None: + raise TypeError("Missing 'config_rule_name' argument") + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if target_id is None: + raise TypeError("Missing 'target_id' argument") + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + if target_type is None: + raise TypeError("Missing 'target_type' argument") + if execution_controls is None and 'executionControls' in kwargs: + execution_controls = kwargs['executionControls'] + if maximum_automatic_attempts is None and 'maximumAutomaticAttempts' in kwargs: + maximum_automatic_attempts = kwargs['maximumAutomaticAttempts'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if retry_attempt_seconds is None and 'retryAttemptSeconds' in kwargs: + retry_attempt_seconds = kwargs['retryAttemptSeconds'] + if target_version is None and 'targetVersion' in kwargs: + target_version = kwargs['targetVersion'] + + _setter("config_rule_name", config_rule_name) + _setter("target_id", target_id) + _setter("target_type", target_type) if automatic is not None: - pulumi.set(__self__, "automatic", automatic) + _setter("automatic", automatic) if execution_controls is not None: - pulumi.set(__self__, "execution_controls", execution_controls) + _setter("execution_controls", execution_controls) if maximum_automatic_attempts is not None: - pulumi.set(__self__, "maximum_automatic_attempts", maximum_automatic_attempts) + _setter("maximum_automatic_attempts", maximum_automatic_attempts) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if retry_attempt_seconds is not None: - pulumi.set(__self__, "retry_attempt_seconds", retry_attempt_seconds) + _setter("retry_attempt_seconds", retry_attempt_seconds) if target_version is not None: - pulumi.set(__self__, "target_version", target_version) + _setter("target_version", target_version) @property @pulumi.getter(name="configRuleName") @@ -212,28 +263,75 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] target_version: Version of the target. For example, version of the SSM document """ + _RemediationConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + automatic=automatic, + config_rule_name=config_rule_name, + execution_controls=execution_controls, + maximum_automatic_attempts=maximum_automatic_attempts, + parameters=parameters, + resource_type=resource_type, + retry_attempt_seconds=retry_attempt_seconds, + target_id=target_id, + target_type=target_type, + target_version=target_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + automatic: Optional[pulumi.Input[bool]] = None, + config_rule_name: Optional[pulumi.Input[str]] = None, + execution_controls: Optional[pulumi.Input['RemediationConfigurationExecutionControlsArgs']] = None, + maximum_automatic_attempts: Optional[pulumi.Input[int]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['RemediationConfigurationParameterArgs']]]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + retry_attempt_seconds: Optional[pulumi.Input[int]] = None, + target_id: Optional[pulumi.Input[str]] = None, + target_type: Optional[pulumi.Input[str]] = None, + target_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if config_rule_name is None and 'configRuleName' in kwargs: + config_rule_name = kwargs['configRuleName'] + if execution_controls is None and 'executionControls' in kwargs: + execution_controls = kwargs['executionControls'] + if maximum_automatic_attempts is None and 'maximumAutomaticAttempts' in kwargs: + maximum_automatic_attempts = kwargs['maximumAutomaticAttempts'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if retry_attempt_seconds is None and 'retryAttemptSeconds' in kwargs: + retry_attempt_seconds = kwargs['retryAttemptSeconds'] + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + if target_version is None and 'targetVersion' in kwargs: + target_version = kwargs['targetVersion'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if automatic is not None: - pulumi.set(__self__, "automatic", automatic) + _setter("automatic", automatic) if config_rule_name is not None: - pulumi.set(__self__, "config_rule_name", config_rule_name) + _setter("config_rule_name", config_rule_name) if execution_controls is not None: - pulumi.set(__self__, "execution_controls", execution_controls) + _setter("execution_controls", execution_controls) if maximum_automatic_attempts is not None: - pulumi.set(__self__, "maximum_automatic_attempts", maximum_automatic_attempts) + _setter("maximum_automatic_attempts", maximum_automatic_attempts) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if retry_attempt_seconds is not None: - pulumi.set(__self__, "retry_attempt_seconds", retry_attempt_seconds) + _setter("retry_attempt_seconds", retry_attempt_seconds) if target_id is not None: - pulumi.set(__self__, "target_id", target_id) + _setter("target_id", target_id) if target_type is not None: - pulumi.set(__self__, "target_type", target_type) + _setter("target_type", target_type) if target_version is not None: - pulumi.set(__self__, "target_version", target_version) + _setter("target_version", target_version) @property @pulumi.getter @@ -529,6 +627,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RemediationConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -557,6 +659,7 @@ def _internal_init(__self__, if config_rule_name is None and not opts.urn: raise TypeError("Missing required property 'config_rule_name'") __props__.__dict__["config_rule_name"] = config_rule_name + execution_controls = _utilities.configure(execution_controls, RemediationConfigurationExecutionControlsArgs, True) __props__.__dict__["execution_controls"] = execution_controls __props__.__dict__["maximum_automatic_attempts"] = maximum_automatic_attempts __props__.__dict__["parameters"] = parameters diff --git a/sdk/python/pulumi_aws/cfg/rule.py b/sdk/python/pulumi_aws/cfg/rule.py index a307dd051f0..8c3e44e4ff1 100644 --- a/sdk/python/pulumi_aws/cfg/rule.py +++ b/sdk/python/pulumi_aws/cfg/rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,19 +33,48 @@ def __init__(__self__, *, :param pulumi.Input['RuleScopeArgs'] scope: Scope defines which resources can trigger an evaluation for the rule. See Source Below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "source", source) + RuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + description=description, + input_parameters=input_parameters, + maximum_execution_frequency=maximum_execution_frequency, + name=name, + scope=scope, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[pulumi.Input['RuleSourceArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + input_parameters: Optional[pulumi.Input[str]] = None, + maximum_execution_frequency: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input['RuleScopeArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + + _setter("source", source) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -158,29 +187,66 @@ def __init__(__self__, *, :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. """ + _RuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + input_parameters=input_parameters, + maximum_execution_frequency=maximum_execution_frequency, + name=name, + rule_id=rule_id, + scope=scope, + source=source, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + input_parameters: Optional[pulumi.Input[str]] = None, + maximum_execution_frequency: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rule_id: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input['RuleScopeArgs']] = None, + source: Optional[pulumi.Input['RuleSourceArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_parameters is None and 'inputParameters' in kwargs: + input_parameters = kwargs['inputParameters'] + if maximum_execution_frequency is None and 'maximumExecutionFrequency' in kwargs: + maximum_execution_frequency = kwargs['maximumExecutionFrequency'] + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if input_parameters is not None: - pulumi.set(__self__, "input_parameters", input_parameters) + _setter("input_parameters", input_parameters) if maximum_execution_frequency is not None: - pulumi.set(__self__, "maximum_execution_frequency", maximum_execution_frequency) + _setter("maximum_execution_frequency", maximum_execution_frequency) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rule_id is not None: - pulumi.set(__self__, "rule_id", rule_id) + _setter("rule_id", rule_id) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -545,6 +611,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -570,7 +640,9 @@ def _internal_init(__self__, __props__.__dict__["input_parameters"] = input_parameters __props__.__dict__["maximum_execution_frequency"] = maximum_execution_frequency __props__.__dict__["name"] = name + scope = _utilities.configure(scope, RuleScopeArgs, True) __props__.__dict__["scope"] = scope + source = _utilities.configure(source, RuleSourceArgs, True) if source is None and not opts.urn: raise TypeError("Missing required property 'source'") __props__.__dict__["source"] = source diff --git a/sdk/python/pulumi_aws/chime/_inputs.py b/sdk/python/pulumi_aws/chime/_inputs.py index 8e4f318194c..f3bc2831e78 100644 --- a/sdk/python/pulumi_aws/chime/_inputs.py +++ b/sdk/python/pulumi_aws/chime/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -27,8 +27,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cdr_bucket: The S3 bucket that stores the Voice Connector's call detail records. """ + SdkvoiceGlobalSettingsVoiceConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cdr_bucket=cdr_bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cdr_bucket: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cdr_bucket is None and 'cdrBucket' in kwargs: + cdr_bucket = kwargs['cdrBucket'] + if cdr_bucket is not None: - pulumi.set(__self__, "cdr_bucket", cdr_bucket) + _setter("cdr_bucket", cdr_bucket) @property @pulumi.getter(name="cdrBucket") @@ -50,7 +63,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] lambda_arn: Valid Amazon Resource Name (ARN) of the Lambda function, version, or alias. The function must be created in the same AWS Region as the SIP media application. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) + SdkvoiceSipMediaApplicationEndpointsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + + _setter("lambda_arn", lambda_arn) @property @pulumi.getter(name="lambdaArn") @@ -76,9 +104,34 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Priority of the SIP media application in the target list. :param pulumi.Input[str] sip_media_application_id: The SIP media application ID. """ - pulumi.set(__self__, "aws_region", aws_region) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "sip_media_application_id", sip_media_application_id) + SdkvoiceSipRuleTargetApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_region=aws_region, + priority=priority, + sip_media_application_id=sip_media_application_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_region: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + sip_media_application_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + if aws_region is None: + raise TypeError("Missing 'aws_region' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if sip_media_application_id is None and 'sipMediaApplicationId' in kwargs: + sip_media_application_id = kwargs['sipMediaApplicationId'] + if sip_media_application_id is None: + raise TypeError("Missing 'sip_media_application_id' argument") + + _setter("aws_region", aws_region) + _setter("priority", priority) + _setter("sip_media_application_id", sip_media_application_id) @property @pulumi.getter(name="awsRegion") @@ -126,7 +179,22 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + SdkvoiceVoiceProfileDomainServerSideEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if kms_key_arn is None: + raise TypeError("Missing 'kms_key_arn' argument") + + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="kmsKeyArn") @@ -152,8 +220,27 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The priority associated with the Amazon Chime Voice Connector, with 1 being the highest priority. Higher priority Amazon Chime Voice Connectors are attempted first. :param pulumi.Input[str] voice_connector_id: The Amazon Chime Voice Connector ID. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + VoiceConnectorGroupConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + voice_connector_id=voice_connector_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if voice_connector_id is None: + raise TypeError("Missing 'voice_connector_id' argument") + + _setter("priority", priority) + _setter("voice_connector_id", voice_connector_id) @property @pulumi.getter @@ -195,12 +282,39 @@ def __init__(__self__, *, :param pulumi.Input[int] weight: The weight associated with the host. If hosts are equal in priority, calls are redistributed among them based on their relative weight. :param pulumi.Input[int] port: The designated origination route port. Defaults to `5060`. """ - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "weight", weight) + VoiceConnectorOrganizationRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + host=host, + priority=priority, + protocol=protocol, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host is None: + raise TypeError("Missing 'host' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("host", host) + _setter("priority", priority) + _setter("protocol", protocol) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -272,10 +386,25 @@ def __init__(__self__, *, :param pulumi.Input[str] configuration_arn: The media insights configuration that will be invoked by the Voice Connector. :param pulumi.Input[bool] disabled: When `true`, the media insights configuration is not enabled. Defaults to `false`. """ + VoiceConnectorStreamingMediaInsightsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_arn=configuration_arn, + disabled=disabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_arn: Optional[pulumi.Input[str]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_arn is None and 'configurationArn' in kwargs: + configuration_arn = kwargs['configurationArn'] + if configuration_arn is not None: - pulumi.set(__self__, "configuration_arn", configuration_arn) + _setter("configuration_arn", configuration_arn) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) @property @pulumi.getter(name="configurationArn") @@ -311,8 +440,25 @@ def __init__(__self__, *, :param pulumi.Input[str] password: RFC2617 compliant password associated with the SIP credentials. :param pulumi.Input[str] username: RFC2617 compliant username associated with the SIP credentials. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + VoiceConnectorTerminationCredentialsCredentialArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/chime/outputs.py b/sdk/python/pulumi_aws/chime/outputs.py index e90532de1bc..8d45584c590 100644 --- a/sdk/python/pulumi_aws/chime/outputs.py +++ b/sdk/python/pulumi_aws/chime/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -44,8 +44,21 @@ def __init__(__self__, *, """ :param str cdr_bucket: The S3 bucket that stores the Voice Connector's call detail records. """ + SdkvoiceGlobalSettingsVoiceConnector._configure( + lambda key, value: pulumi.set(__self__, key, value), + cdr_bucket=cdr_bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cdr_bucket: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cdr_bucket is None and 'cdrBucket' in kwargs: + cdr_bucket = kwargs['cdrBucket'] + if cdr_bucket is not None: - pulumi.set(__self__, "cdr_bucket", cdr_bucket) + _setter("cdr_bucket", cdr_bucket) @property @pulumi.getter(name="cdrBucket") @@ -80,7 +93,22 @@ def __init__(__self__, *, """ :param str lambda_arn: Valid Amazon Resource Name (ARN) of the Lambda function, version, or alias. The function must be created in the same AWS Region as the SIP media application. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) + SdkvoiceSipMediaApplicationEndpoints._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + + _setter("lambda_arn", lambda_arn) @property @pulumi.getter(name="lambdaArn") @@ -121,9 +149,34 @@ def __init__(__self__, *, :param int priority: Priority of the SIP media application in the target list. :param str sip_media_application_id: The SIP media application ID. """ - pulumi.set(__self__, "aws_region", aws_region) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "sip_media_application_id", sip_media_application_id) + SdkvoiceSipRuleTargetApplication._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_region=aws_region, + priority=priority, + sip_media_application_id=sip_media_application_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_region: Optional[str] = None, + priority: Optional[int] = None, + sip_media_application_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + if aws_region is None: + raise TypeError("Missing 'aws_region' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if sip_media_application_id is None and 'sipMediaApplicationId' in kwargs: + sip_media_application_id = kwargs['sipMediaApplicationId'] + if sip_media_application_id is None: + raise TypeError("Missing 'sip_media_application_id' argument") + + _setter("aws_region", aws_region) + _setter("priority", priority) + _setter("sip_media_application_id", sip_media_application_id) @property @pulumi.getter(name="awsRegion") @@ -176,7 +229,22 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + SdkvoiceVoiceProfileDomainServerSideEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if kms_key_arn is None: + raise TypeError("Missing 'kms_key_arn' argument") + + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="kmsKeyArn") @@ -215,8 +283,27 @@ def __init__(__self__, *, :param int priority: The priority associated with the Amazon Chime Voice Connector, with 1 being the highest priority. Higher priority Amazon Chime Voice Connectors are attempted first. :param str voice_connector_id: The Amazon Chime Voice Connector ID. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + VoiceConnectorGroupConnector._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + voice_connector_id=voice_connector_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + voice_connector_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if voice_connector_id is None: + raise TypeError("Missing 'voice_connector_id' argument") + + _setter("priority", priority) + _setter("voice_connector_id", voice_connector_id) @property @pulumi.getter @@ -250,12 +337,39 @@ def __init__(__self__, *, :param int weight: The weight associated with the host. If hosts are equal in priority, calls are redistributed among them based on their relative weight. :param int port: The designated origination route port. Defaults to `5060`. """ - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "weight", weight) + VoiceConnectorOrganizationRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + host=host, + priority=priority, + protocol=protocol, + weight=weight, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host: Optional[str] = None, + priority: Optional[int] = None, + protocol: Optional[str] = None, + weight: Optional[int] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host is None: + raise TypeError("Missing 'host' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("host", host) + _setter("priority", priority) + _setter("protocol", protocol) + _setter("weight", weight) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -324,10 +438,25 @@ def __init__(__self__, *, :param str configuration_arn: The media insights configuration that will be invoked by the Voice Connector. :param bool disabled: When `true`, the media insights configuration is not enabled. Defaults to `false`. """ + VoiceConnectorStreamingMediaInsightsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_arn=configuration_arn, + disabled=disabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_arn: Optional[str] = None, + disabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_arn is None and 'configurationArn' in kwargs: + configuration_arn = kwargs['configurationArn'] + if configuration_arn is not None: - pulumi.set(__self__, "configuration_arn", configuration_arn) + _setter("configuration_arn", configuration_arn) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) @property @pulumi.getter(name="configurationArn") @@ -355,8 +484,25 @@ def __init__(__self__, *, :param str password: RFC2617 compliant password associated with the SIP credentials. :param str username: RFC2617 compliant username associated with the SIP credentials. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + VoiceConnectorTerminationCredentialsCredential._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/chime/sdkvoice_global_settings.py b/sdk/python/pulumi_aws/chime/sdkvoice_global_settings.py index 03caa3f67c7..4910961251d 100644 --- a/sdk/python/pulumi_aws/chime/sdkvoice_global_settings.py +++ b/sdk/python/pulumi_aws/chime/sdkvoice_global_settings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -21,7 +21,22 @@ def __init__(__self__, *, The set of arguments for constructing a SdkvoiceGlobalSettings resource. :param pulumi.Input['SdkvoiceGlobalSettingsVoiceConnectorArgs'] voice_connector: The Voice Connector settings. See voice_connector. """ - pulumi.set(__self__, "voice_connector", voice_connector) + SdkvoiceGlobalSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + voice_connector=voice_connector, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + voice_connector: Optional[pulumi.Input['SdkvoiceGlobalSettingsVoiceConnectorArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if voice_connector is None and 'voiceConnector' in kwargs: + voice_connector = kwargs['voiceConnector'] + if voice_connector is None: + raise TypeError("Missing 'voice_connector' argument") + + _setter("voice_connector", voice_connector) @property @pulumi.getter(name="voiceConnector") @@ -44,8 +59,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering SdkvoiceGlobalSettings resources. :param pulumi.Input['SdkvoiceGlobalSettingsVoiceConnectorArgs'] voice_connector: The Voice Connector settings. See voice_connector. """ + _SdkvoiceGlobalSettingsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + voice_connector=voice_connector, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + voice_connector: Optional[pulumi.Input['SdkvoiceGlobalSettingsVoiceConnectorArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if voice_connector is None and 'voiceConnector' in kwargs: + voice_connector = kwargs['voiceConnector'] + if voice_connector is not None: - pulumi.set(__self__, "voice_connector", voice_connector) + _setter("voice_connector", voice_connector) @property @pulumi.getter(name="voiceConnector") @@ -133,6 +161,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SdkvoiceGlobalSettingsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -148,6 +180,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = SdkvoiceGlobalSettingsArgs.__new__(SdkvoiceGlobalSettingsArgs) + voice_connector = _utilities.configure(voice_connector, SdkvoiceGlobalSettingsVoiceConnectorArgs, True) if voice_connector is None and not opts.urn: raise TypeError("Missing required property 'voice_connector'") __props__.__dict__["voice_connector"] = voice_connector diff --git a/sdk/python/pulumi_aws/chime/sdkvoice_sip_media_application.py b/sdk/python/pulumi_aws/chime/sdkvoice_sip_media_application.py index 496427409d3..778f88f686f 100644 --- a/sdk/python/pulumi_aws/chime/sdkvoice_sip_media_application.py +++ b/sdk/python/pulumi_aws/chime/sdkvoice_sip_media_application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,12 +29,35 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "aws_region", aws_region) - pulumi.set(__self__, "endpoints", endpoints) + SdkvoiceSipMediaApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_region=aws_region, + endpoints=endpoints, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_region: Optional[pulumi.Input[str]] = None, + endpoints: Optional[pulumi.Input['SdkvoiceSipMediaApplicationEndpointsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + if aws_region is None: + raise TypeError("Missing 'aws_region' argument") + if endpoints is None: + raise TypeError("Missing 'endpoints' argument") + + _setter("aws_region", aws_region) + _setter("endpoints", endpoints) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="awsRegion") @@ -107,21 +130,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _SdkvoiceSipMediaApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_region=aws_region, + endpoints=endpoints, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_region: Optional[pulumi.Input[str]] = None, + endpoints: Optional[pulumi.Input['SdkvoiceSipMediaApplicationEndpointsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_region is not None: - pulumi.set(__self__, "aws_region", aws_region) + _setter("aws_region", aws_region) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -286,6 +334,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SdkvoiceSipMediaApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -307,6 +359,7 @@ def _internal_init(__self__, if aws_region is None and not opts.urn: raise TypeError("Missing required property 'aws_region'") __props__.__dict__["aws_region"] = aws_region + endpoints = _utilities.configure(endpoints, SdkvoiceSipMediaApplicationEndpointsArgs, True) if endpoints is None and not opts.urn: raise TypeError("Missing required property 'endpoints'") __props__.__dict__["endpoints"] = endpoints diff --git a/sdk/python/pulumi_aws/chime/sdkvoice_sip_rule.py b/sdk/python/pulumi_aws/chime/sdkvoice_sip_rule.py index fc0c046a8a1..7e850682960 100644 --- a/sdk/python/pulumi_aws/chime/sdkvoice_sip_rule.py +++ b/sdk/python/pulumi_aws/chime/sdkvoice_sip_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,13 +31,44 @@ def __init__(__self__, *, :param pulumi.Input[bool] disabled: Enables or disables a rule. You must disable rules before you can delete them. :param pulumi.Input[str] name: The name of the SIP rule. """ - pulumi.set(__self__, "target_applications", target_applications) - pulumi.set(__self__, "trigger_type", trigger_type) - pulumi.set(__self__, "trigger_value", trigger_value) + SdkvoiceSipRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_applications=target_applications, + trigger_type=trigger_type, + trigger_value=trigger_value, + disabled=disabled, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_applications: Optional[pulumi.Input[Sequence[pulumi.Input['SdkvoiceSipRuleTargetApplicationArgs']]]] = None, + trigger_type: Optional[pulumi.Input[str]] = None, + trigger_value: Optional[pulumi.Input[str]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_applications is None and 'targetApplications' in kwargs: + target_applications = kwargs['targetApplications'] + if target_applications is None: + raise TypeError("Missing 'target_applications' argument") + if trigger_type is None and 'triggerType' in kwargs: + trigger_type = kwargs['triggerType'] + if trigger_type is None: + raise TypeError("Missing 'trigger_type' argument") + if trigger_value is None and 'triggerValue' in kwargs: + trigger_value = kwargs['triggerValue'] + if trigger_value is None: + raise TypeError("Missing 'trigger_value' argument") + + _setter("target_applications", target_applications) + _setter("trigger_type", trigger_type) + _setter("trigger_value", trigger_value) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="targetApplications") @@ -120,16 +151,41 @@ def __init__(__self__, *, The following arguments are optional: """ + _SdkvoiceSipRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + disabled=disabled, + name=name, + target_applications=target_applications, + trigger_type=trigger_type, + trigger_value=trigger_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + target_applications: Optional[pulumi.Input[Sequence[pulumi.Input['SdkvoiceSipRuleTargetApplicationArgs']]]] = None, + trigger_type: Optional[pulumi.Input[str]] = None, + trigger_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_applications is None and 'targetApplications' in kwargs: + target_applications = kwargs['targetApplications'] + if trigger_type is None and 'triggerType' in kwargs: + trigger_type = kwargs['triggerType'] + if trigger_value is None and 'triggerValue' in kwargs: + trigger_value = kwargs['triggerValue'] + if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if target_applications is not None: - pulumi.set(__self__, "target_applications", target_applications) + _setter("target_applications", target_applications) if trigger_type is not None: - pulumi.set(__self__, "trigger_type", trigger_type) + _setter("trigger_type", trigger_type) if trigger_value is not None: - pulumi.set(__self__, "trigger_value", trigger_value) + _setter("trigger_value", trigger_value) @property @pulumi.getter @@ -287,6 +343,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SdkvoiceSipRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/chime/sdkvoice_voice_profile_domain.py b/sdk/python/pulumi_aws/chime/sdkvoice_voice_profile_domain.py index 1fe81de904d..c68de8cf8a5 100644 --- a/sdk/python/pulumi_aws/chime/sdkvoice_voice_profile_domain.py +++ b/sdk/python/pulumi_aws/chime/sdkvoice_voice_profile_domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -26,13 +26,34 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of Voice Profile Domain. :param pulumi.Input[str] name: Name of Voice Profile Domain. """ - pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) + SdkvoiceVoiceProfileDomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + server_side_encryption_configuration=server_side_encryption_configuration, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + server_side_encryption_configuration: Optional[pulumi.Input['SdkvoiceVoiceProfileDomainServerSideEncryptionConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if server_side_encryption_configuration is None and 'serverSideEncryptionConfiguration' in kwargs: + server_side_encryption_configuration = kwargs['serverSideEncryptionConfiguration'] + if server_side_encryption_configuration is None: + raise TypeError("Missing 'server_side_encryption_configuration' argument") + + _setter("server_side_encryption_configuration", server_side_encryption_configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="serverSideEncryptionConfiguration") @@ -96,21 +117,46 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of Voice Profile Domain. :param pulumi.Input['SdkvoiceVoiceProfileDomainServerSideEncryptionConfigurationArgs'] server_side_encryption_configuration: Configuration for server side encryption. """ + _SdkvoiceVoiceProfileDomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + server_side_encryption_configuration=server_side_encryption_configuration, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + server_side_encryption_configuration: Optional[pulumi.Input['SdkvoiceVoiceProfileDomainServerSideEncryptionConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if server_side_encryption_configuration is None and 'serverSideEncryptionConfiguration' in kwargs: + server_side_encryption_configuration = kwargs['serverSideEncryptionConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if server_side_encryption_configuration is not None: - pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) + _setter("server_side_encryption_configuration", server_side_encryption_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -276,6 +322,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SdkvoiceVoiceProfileDomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -296,6 +346,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["name"] = name + server_side_encryption_configuration = _utilities.configure(server_side_encryption_configuration, SdkvoiceVoiceProfileDomainServerSideEncryptionConfigurationArgs, True) if server_side_encryption_configuration is None and not opts.urn: raise TypeError("Missing required property 'server_side_encryption_configuration'") __props__.__dict__["server_side_encryption_configuration"] = server_side_encryption_configuration diff --git a/sdk/python/pulumi_aws/chime/voice_connector.py b/sdk/python/pulumi_aws/chime/voice_connector.py index 79898025790..fa82e36e18e 100644 --- a/sdk/python/pulumi_aws/chime/voice_connector.py +++ b/sdk/python/pulumi_aws/chime/voice_connector.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VoiceConnectorArgs', 'VoiceConnector'] @@ -27,13 +27,36 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Amazon Chime Voice Connector. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "require_encryption", require_encryption) + VoiceConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + require_encryption=require_encryption, + aws_region=aws_region, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + require_encryption: Optional[pulumi.Input[bool]] = None, + aws_region: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if require_encryption is None and 'requireEncryption' in kwargs: + require_encryption = kwargs['requireEncryption'] + if require_encryption is None: + raise TypeError("Missing 'require_encryption' argument") + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + + _setter("require_encryption", require_encryption) if aws_region is not None: - pulumi.set(__self__, "aws_region", aws_region) + _setter("aws_region", aws_region) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="requireEncryption") @@ -108,23 +131,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _VoiceConnectorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_region=aws_region, + name=name, + outbound_host_name=outbound_host_name, + require_encryption=require_encryption, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_region: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + outbound_host_name: Optional[pulumi.Input[str]] = None, + require_encryption: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_region is None and 'awsRegion' in kwargs: + aws_region = kwargs['awsRegion'] + if outbound_host_name is None and 'outboundHostName' in kwargs: + outbound_host_name = kwargs['outboundHostName'] + if require_encryption is None and 'requireEncryption' in kwargs: + require_encryption = kwargs['requireEncryption'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_region is not None: - pulumi.set(__self__, "aws_region", aws_region) + _setter("aws_region", aws_region) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if outbound_host_name is not None: - pulumi.set(__self__, "outbound_host_name", outbound_host_name) + _setter("outbound_host_name", outbound_host_name) if require_encryption is not None: - pulumi.set(__self__, "require_encryption", require_encryption) + _setter("require_encryption", require_encryption) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -295,6 +349,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VoiceConnectorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/chime/voice_connector_group.py b/sdk/python/pulumi_aws/chime/voice_connector_group.py index 90d8248afa9..a6157098fea 100644 --- a/sdk/python/pulumi_aws/chime/voice_connector_group.py +++ b/sdk/python/pulumi_aws/chime/voice_connector_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VoiceConnectorGroupConnectorArgs']]] connectors: The Amazon Chime Voice Connectors to route inbound calls to. :param pulumi.Input[str] name: The name of the Amazon Chime Voice Connector group. """ + VoiceConnectorGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connectors=connectors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connectors: Optional[pulumi.Input[Sequence[pulumi.Input['VoiceConnectorGroupConnectorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connectors is not None: - pulumi.set(__self__, "connectors", connectors) + _setter("connectors", connectors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -63,10 +76,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VoiceConnectorGroupConnectorArgs']]] connectors: The Amazon Chime Voice Connectors to route inbound calls to. :param pulumi.Input[str] name: The name of the Amazon Chime Voice Connector group. """ + _VoiceConnectorGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + connectors=connectors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connectors: Optional[pulumi.Input[Sequence[pulumi.Input['VoiceConnectorGroupConnectorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connectors is not None: - pulumi.set(__self__, "connectors", connectors) + _setter("connectors", connectors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -196,6 +222,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VoiceConnectorGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/chime/voice_connector_logging.py b/sdk/python/pulumi_aws/chime/voice_connector_logging.py index ccf3d0781d2..5441fe9a566 100644 --- a/sdk/python/pulumi_aws/chime/voice_connector_logging.py +++ b/sdk/python/pulumi_aws/chime/voice_connector_logging.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VoiceConnectorLoggingArgs', 'VoiceConnectorLogging'] @@ -23,11 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_media_metric_logs: When true, enables logging of detailed media metrics for Voice Connectors to Amazon CloudWatch logs. :param pulumi.Input[bool] enable_sip_logs: When true, enables SIP message logs for sending to Amazon CloudWatch Logs. """ - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + VoiceConnectorLoggingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + voice_connector_id=voice_connector_id, + enable_media_metric_logs=enable_media_metric_logs, + enable_sip_logs=enable_sip_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + voice_connector_id: Optional[pulumi.Input[str]] = None, + enable_media_metric_logs: Optional[pulumi.Input[bool]] = None, + enable_sip_logs: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if voice_connector_id is None: + raise TypeError("Missing 'voice_connector_id' argument") + if enable_media_metric_logs is None and 'enableMediaMetricLogs' in kwargs: + enable_media_metric_logs = kwargs['enableMediaMetricLogs'] + if enable_sip_logs is None and 'enableSipLogs' in kwargs: + enable_sip_logs = kwargs['enableSipLogs'] + + _setter("voice_connector_id", voice_connector_id) if enable_media_metric_logs is not None: - pulumi.set(__self__, "enable_media_metric_logs", enable_media_metric_logs) + _setter("enable_media_metric_logs", enable_media_metric_logs) if enable_sip_logs is not None: - pulumi.set(__self__, "enable_sip_logs", enable_sip_logs) + _setter("enable_sip_logs", enable_sip_logs) @property @pulumi.getter(name="voiceConnectorId") @@ -78,12 +101,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_sip_logs: When true, enables SIP message logs for sending to Amazon CloudWatch Logs. :param pulumi.Input[str] voice_connector_id: The Amazon Chime Voice Connector ID. """ + _VoiceConnectorLoggingState._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_media_metric_logs=enable_media_metric_logs, + enable_sip_logs=enable_sip_logs, + voice_connector_id=voice_connector_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_media_metric_logs: Optional[pulumi.Input[bool]] = None, + enable_sip_logs: Optional[pulumi.Input[bool]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_media_metric_logs is None and 'enableMediaMetricLogs' in kwargs: + enable_media_metric_logs = kwargs['enableMediaMetricLogs'] + if enable_sip_logs is None and 'enableSipLogs' in kwargs: + enable_sip_logs = kwargs['enableSipLogs'] + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if enable_media_metric_logs is not None: - pulumi.set(__self__, "enable_media_metric_logs", enable_media_metric_logs) + _setter("enable_media_metric_logs", enable_media_metric_logs) if enable_sip_logs is not None: - pulumi.set(__self__, "enable_sip_logs", enable_sip_logs) + _setter("enable_sip_logs", enable_sip_logs) if voice_connector_id is not None: - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + _setter("voice_connector_id", voice_connector_id) @property @pulumi.getter(name="enableMediaMetricLogs") @@ -201,6 +245,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VoiceConnectorLoggingArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/chime/voice_connector_organization.py b/sdk/python/pulumi_aws/chime/voice_connector_organization.py index cef3469c1c5..266b25fd7ae 100644 --- a/sdk/python/pulumi_aws/chime/voice_connector_organization.py +++ b/sdk/python/pulumi_aws/chime/voice_connector_organization.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,31 @@ def __init__(__self__, *, :param pulumi.Input[str] voice_connector_id: The Amazon Chime Voice Connector ID. :param pulumi.Input[bool] disabled: When origination settings are disabled, inbound calls are not enabled for your Amazon Chime Voice Connector. """ - pulumi.set(__self__, "routes", routes) - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + VoiceConnectorOrganizationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + routes=routes, + voice_connector_id=voice_connector_id, + disabled=disabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + routes: Optional[pulumi.Input[Sequence[pulumi.Input['VoiceConnectorOrganizationRouteArgs']]]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if routes is None: + raise TypeError("Missing 'routes' argument") + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if voice_connector_id is None: + raise TypeError("Missing 'voice_connector_id' argument") + + _setter("routes", routes) + _setter("voice_connector_id", voice_connector_id) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) @property @pulumi.getter @@ -79,12 +100,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VoiceConnectorOrganizationRouteArgs']]] routes: Set of call distribution properties defined for your SIP hosts. See route below for more details. Minimum of 1. Maximum of 20. :param pulumi.Input[str] voice_connector_id: The Amazon Chime Voice Connector ID. """ + _VoiceConnectorOrganizationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + disabled=disabled, + routes=routes, + voice_connector_id=voice_connector_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disabled: Optional[pulumi.Input[bool]] = None, + routes: Optional[pulumi.Input[Sequence[pulumi.Input['VoiceConnectorOrganizationRouteArgs']]]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) if routes is not None: - pulumi.set(__self__, "routes", routes) + _setter("routes", routes) if voice_connector_id is not None: - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + _setter("voice_connector_id", voice_connector_id) @property @pulumi.getter @@ -232,6 +270,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VoiceConnectorOrganizationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/chime/voice_connector_streaming.py b/sdk/python/pulumi_aws/chime/voice_connector_streaming.py index 6927d5fffb0..1e742a3a2a5 100644 --- a/sdk/python/pulumi_aws/chime/voice_connector_streaming.py +++ b/sdk/python/pulumi_aws/chime/voice_connector_streaming.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,45 @@ def __init__(__self__, *, :param pulumi.Input['VoiceConnectorStreamingMediaInsightsConfigurationArgs'] media_insights_configuration: The media insights configuration. See `media_insights_configuration`. :param pulumi.Input[Sequence[pulumi.Input[str]]] streaming_notification_targets: The streaming notification targets. Valid Values: `EventBridge | SNS | SQS` """ - pulumi.set(__self__, "data_retention", data_retention) - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + VoiceConnectorStreamingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_retention=data_retention, + voice_connector_id=voice_connector_id, + disabled=disabled, + media_insights_configuration=media_insights_configuration, + streaming_notification_targets=streaming_notification_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_retention: Optional[pulumi.Input[int]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + media_insights_configuration: Optional[pulumi.Input['VoiceConnectorStreamingMediaInsightsConfigurationArgs']] = None, + streaming_notification_targets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_retention is None and 'dataRetention' in kwargs: + data_retention = kwargs['dataRetention'] + if data_retention is None: + raise TypeError("Missing 'data_retention' argument") + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if voice_connector_id is None: + raise TypeError("Missing 'voice_connector_id' argument") + if media_insights_configuration is None and 'mediaInsightsConfiguration' in kwargs: + media_insights_configuration = kwargs['mediaInsightsConfiguration'] + if streaming_notification_targets is None and 'streamingNotificationTargets' in kwargs: + streaming_notification_targets = kwargs['streamingNotificationTargets'] + + _setter("data_retention", data_retention) + _setter("voice_connector_id", voice_connector_id) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) if media_insights_configuration is not None: - pulumi.set(__self__, "media_insights_configuration", media_insights_configuration) + _setter("media_insights_configuration", media_insights_configuration) if streaming_notification_targets is not None: - pulumi.set(__self__, "streaming_notification_targets", streaming_notification_targets) + _setter("streaming_notification_targets", streaming_notification_targets) @property @pulumi.getter(name="dataRetention") @@ -115,16 +146,43 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] streaming_notification_targets: The streaming notification targets. Valid Values: `EventBridge | SNS | SQS` :param pulumi.Input[str] voice_connector_id: The Amazon Chime Voice Connector ID. """ + _VoiceConnectorStreamingState._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_retention=data_retention, + disabled=disabled, + media_insights_configuration=media_insights_configuration, + streaming_notification_targets=streaming_notification_targets, + voice_connector_id=voice_connector_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_retention: Optional[pulumi.Input[int]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + media_insights_configuration: Optional[pulumi.Input['VoiceConnectorStreamingMediaInsightsConfigurationArgs']] = None, + streaming_notification_targets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_retention is None and 'dataRetention' in kwargs: + data_retention = kwargs['dataRetention'] + if media_insights_configuration is None and 'mediaInsightsConfiguration' in kwargs: + media_insights_configuration = kwargs['mediaInsightsConfiguration'] + if streaming_notification_targets is None and 'streamingNotificationTargets' in kwargs: + streaming_notification_targets = kwargs['streamingNotificationTargets'] + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if data_retention is not None: - pulumi.set(__self__, "data_retention", data_retention) + _setter("data_retention", data_retention) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) if media_insights_configuration is not None: - pulumi.set(__self__, "media_insights_configuration", media_insights_configuration) + _setter("media_insights_configuration", media_insights_configuration) if streaming_notification_targets is not None: - pulumi.set(__self__, "streaming_notification_targets", streaming_notification_targets) + _setter("streaming_notification_targets", streaming_notification_targets) if voice_connector_id is not None: - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + _setter("voice_connector_id", voice_connector_id) @property @pulumi.getter(name="dataRetention") @@ -360,6 +418,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VoiceConnectorStreamingArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -383,6 +445,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'data_retention'") __props__.__dict__["data_retention"] = data_retention __props__.__dict__["disabled"] = disabled + media_insights_configuration = _utilities.configure(media_insights_configuration, VoiceConnectorStreamingMediaInsightsConfigurationArgs, True) __props__.__dict__["media_insights_configuration"] = media_insights_configuration __props__.__dict__["streaming_notification_targets"] = streaming_notification_targets if voice_connector_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/chime/voice_connector_termination.py b/sdk/python/pulumi_aws/chime/voice_connector_termination.py index 86ac40f8e2f..63aea8c450c 100644 --- a/sdk/python/pulumi_aws/chime/voice_connector_termination.py +++ b/sdk/python/pulumi_aws/chime/voice_connector_termination.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VoiceConnectorTerminationArgs', 'VoiceConnectorTermination'] @@ -29,15 +29,52 @@ def __init__(__self__, *, :param pulumi.Input[str] default_phone_number: The default caller ID phone number. :param pulumi.Input[bool] disabled: When termination settings are disabled, outbound calls can not be made. """ - pulumi.set(__self__, "calling_regions", calling_regions) - pulumi.set(__self__, "cidr_allow_lists", cidr_allow_lists) - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + VoiceConnectorTerminationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + calling_regions=calling_regions, + cidr_allow_lists=cidr_allow_lists, + voice_connector_id=voice_connector_id, + cps_limit=cps_limit, + default_phone_number=default_phone_number, + disabled=disabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + calling_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cidr_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + cps_limit: Optional[pulumi.Input[int]] = None, + default_phone_number: Optional[pulumi.Input[str]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if calling_regions is None and 'callingRegions' in kwargs: + calling_regions = kwargs['callingRegions'] + if calling_regions is None: + raise TypeError("Missing 'calling_regions' argument") + if cidr_allow_lists is None and 'cidrAllowLists' in kwargs: + cidr_allow_lists = kwargs['cidrAllowLists'] + if cidr_allow_lists is None: + raise TypeError("Missing 'cidr_allow_lists' argument") + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if voice_connector_id is None: + raise TypeError("Missing 'voice_connector_id' argument") + if cps_limit is None and 'cpsLimit' in kwargs: + cps_limit = kwargs['cpsLimit'] + if default_phone_number is None and 'defaultPhoneNumber' in kwargs: + default_phone_number = kwargs['defaultPhoneNumber'] + + _setter("calling_regions", calling_regions) + _setter("cidr_allow_lists", cidr_allow_lists) + _setter("voice_connector_id", voice_connector_id) if cps_limit is not None: - pulumi.set(__self__, "cps_limit", cps_limit) + _setter("cps_limit", cps_limit) if default_phone_number is not None: - pulumi.set(__self__, "default_phone_number", default_phone_number) + _setter("default_phone_number", default_phone_number) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) @property @pulumi.getter(name="callingRegions") @@ -130,18 +167,49 @@ def __init__(__self__, *, :param pulumi.Input[bool] disabled: When termination settings are disabled, outbound calls can not be made. :param pulumi.Input[str] voice_connector_id: The Amazon Chime Voice Connector ID. """ + _VoiceConnectorTerminationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + calling_regions=calling_regions, + cidr_allow_lists=cidr_allow_lists, + cps_limit=cps_limit, + default_phone_number=default_phone_number, + disabled=disabled, + voice_connector_id=voice_connector_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + calling_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cidr_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cps_limit: Optional[pulumi.Input[int]] = None, + default_phone_number: Optional[pulumi.Input[str]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if calling_regions is None and 'callingRegions' in kwargs: + calling_regions = kwargs['callingRegions'] + if cidr_allow_lists is None and 'cidrAllowLists' in kwargs: + cidr_allow_lists = kwargs['cidrAllowLists'] + if cps_limit is None and 'cpsLimit' in kwargs: + cps_limit = kwargs['cpsLimit'] + if default_phone_number is None and 'defaultPhoneNumber' in kwargs: + default_phone_number = kwargs['defaultPhoneNumber'] + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if calling_regions is not None: - pulumi.set(__self__, "calling_regions", calling_regions) + _setter("calling_regions", calling_regions) if cidr_allow_lists is not None: - pulumi.set(__self__, "cidr_allow_lists", cidr_allow_lists) + _setter("cidr_allow_lists", cidr_allow_lists) if cps_limit is not None: - pulumi.set(__self__, "cps_limit", cps_limit) + _setter("cps_limit", cps_limit) if default_phone_number is not None: - pulumi.set(__self__, "default_phone_number", default_phone_number) + _setter("default_phone_number", default_phone_number) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) if voice_connector_id is not None: - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + _setter("voice_connector_id", voice_connector_id) @property @pulumi.getter(name="callingRegions") @@ -311,6 +379,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VoiceConnectorTerminationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/chime/voice_connector_termination_credentials.py b/sdk/python/pulumi_aws/chime/voice_connector_termination_credentials.py index fb37c6f9dc6..95a34ba389a 100644 --- a/sdk/python/pulumi_aws/chime/voice_connector_termination_credentials.py +++ b/sdk/python/pulumi_aws/chime/voice_connector_termination_credentials.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VoiceConnectorTerminationCredentialsCredentialArgs']]] credentials: List of termination SIP credentials. :param pulumi.Input[str] voice_connector_id: Amazon Chime Voice Connector ID. """ - pulumi.set(__self__, "credentials", credentials) - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + VoiceConnectorTerminationCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials=credentials, + voice_connector_id=voice_connector_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials: Optional[pulumi.Input[Sequence[pulumi.Input['VoiceConnectorTerminationCredentialsCredentialArgs']]]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credentials is None: + raise TypeError("Missing 'credentials' argument") + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if voice_connector_id is None: + raise TypeError("Missing 'voice_connector_id' argument") + + _setter("credentials", credentials) + _setter("voice_connector_id", voice_connector_id) @property @pulumi.getter @@ -61,10 +80,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VoiceConnectorTerminationCredentialsCredentialArgs']]] credentials: List of termination SIP credentials. :param pulumi.Input[str] voice_connector_id: Amazon Chime Voice Connector ID. """ + _VoiceConnectorTerminationCredentialsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials=credentials, + voice_connector_id=voice_connector_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials: Optional[pulumi.Input[Sequence[pulumi.Input['VoiceConnectorTerminationCredentialsCredentialArgs']]]] = None, + voice_connector_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if voice_connector_id is None and 'voiceConnectorId' in kwargs: + voice_connector_id = kwargs['voiceConnectorId'] + if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) if voice_connector_id is not None: - pulumi.set(__self__, "voice_connector_id", voice_connector_id) + _setter("voice_connector_id", voice_connector_id) @property @pulumi.getter @@ -196,6 +230,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VoiceConnectorTerminationCredentialsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/chimesdkmediapipelines/_inputs.py b/sdk/python/pulumi_aws/chimesdkmediapipelines/_inputs.py index 5c5b1831f72..be141f3733b 100644 --- a/sdk/python/pulumi_aws/chimesdkmediapipelines/_inputs.py +++ b/sdk/python/pulumi_aws/chimesdkmediapipelines/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -50,23 +50,68 @@ def __init__(__self__, *, :param pulumi.Input['MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs'] sqs_queue_sink_configuration: Configuration for SQS Queue sink. :param pulumi.Input['MediaInsightsPipelineConfigurationElementVoiceAnalyticsProcessorConfigurationArgs'] voice_analytics_processor_configuration: Configuration for Voice analytics processor. """ - pulumi.set(__self__, "type", type) + MediaInsightsPipelineConfigurationElementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + amazon_transcribe_call_analytics_processor_configuration=amazon_transcribe_call_analytics_processor_configuration, + amazon_transcribe_processor_configuration=amazon_transcribe_processor_configuration, + kinesis_data_stream_sink_configuration=kinesis_data_stream_sink_configuration, + lambda_function_sink_configuration=lambda_function_sink_configuration, + s3_recording_sink_configuration=s3_recording_sink_configuration, + sns_topic_sink_configuration=sns_topic_sink_configuration, + sqs_queue_sink_configuration=sqs_queue_sink_configuration, + voice_analytics_processor_configuration=voice_analytics_processor_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + amazon_transcribe_call_analytics_processor_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs']] = None, + amazon_transcribe_processor_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs']] = None, + kinesis_data_stream_sink_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs']] = None, + lambda_function_sink_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs']] = None, + s3_recording_sink_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationElementS3RecordingSinkConfigurationArgs']] = None, + sns_topic_sink_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs']] = None, + sqs_queue_sink_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs']] = None, + voice_analytics_processor_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationElementVoiceAnalyticsProcessorConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if amazon_transcribe_call_analytics_processor_configuration is None and 'amazonTranscribeCallAnalyticsProcessorConfiguration' in kwargs: + amazon_transcribe_call_analytics_processor_configuration = kwargs['amazonTranscribeCallAnalyticsProcessorConfiguration'] + if amazon_transcribe_processor_configuration is None and 'amazonTranscribeProcessorConfiguration' in kwargs: + amazon_transcribe_processor_configuration = kwargs['amazonTranscribeProcessorConfiguration'] + if kinesis_data_stream_sink_configuration is None and 'kinesisDataStreamSinkConfiguration' in kwargs: + kinesis_data_stream_sink_configuration = kwargs['kinesisDataStreamSinkConfiguration'] + if lambda_function_sink_configuration is None and 'lambdaFunctionSinkConfiguration' in kwargs: + lambda_function_sink_configuration = kwargs['lambdaFunctionSinkConfiguration'] + if s3_recording_sink_configuration is None and 's3RecordingSinkConfiguration' in kwargs: + s3_recording_sink_configuration = kwargs['s3RecordingSinkConfiguration'] + if sns_topic_sink_configuration is None and 'snsTopicSinkConfiguration' in kwargs: + sns_topic_sink_configuration = kwargs['snsTopicSinkConfiguration'] + if sqs_queue_sink_configuration is None and 'sqsQueueSinkConfiguration' in kwargs: + sqs_queue_sink_configuration = kwargs['sqsQueueSinkConfiguration'] + if voice_analytics_processor_configuration is None and 'voiceAnalyticsProcessorConfiguration' in kwargs: + voice_analytics_processor_configuration = kwargs['voiceAnalyticsProcessorConfiguration'] + + _setter("type", type) if amazon_transcribe_call_analytics_processor_configuration is not None: - pulumi.set(__self__, "amazon_transcribe_call_analytics_processor_configuration", amazon_transcribe_call_analytics_processor_configuration) + _setter("amazon_transcribe_call_analytics_processor_configuration", amazon_transcribe_call_analytics_processor_configuration) if amazon_transcribe_processor_configuration is not None: - pulumi.set(__self__, "amazon_transcribe_processor_configuration", amazon_transcribe_processor_configuration) + _setter("amazon_transcribe_processor_configuration", amazon_transcribe_processor_configuration) if kinesis_data_stream_sink_configuration is not None: - pulumi.set(__self__, "kinesis_data_stream_sink_configuration", kinesis_data_stream_sink_configuration) + _setter("kinesis_data_stream_sink_configuration", kinesis_data_stream_sink_configuration) if lambda_function_sink_configuration is not None: - pulumi.set(__self__, "lambda_function_sink_configuration", lambda_function_sink_configuration) + _setter("lambda_function_sink_configuration", lambda_function_sink_configuration) if s3_recording_sink_configuration is not None: - pulumi.set(__self__, "s3_recording_sink_configuration", s3_recording_sink_configuration) + _setter("s3_recording_sink_configuration", s3_recording_sink_configuration) if sns_topic_sink_configuration is not None: - pulumi.set(__self__, "sns_topic_sink_configuration", sns_topic_sink_configuration) + _setter("sns_topic_sink_configuration", sns_topic_sink_configuration) if sqs_queue_sink_configuration is not None: - pulumi.set(__self__, "sqs_queue_sink_configuration", sqs_queue_sink_configuration) + _setter("sqs_queue_sink_configuration", sqs_queue_sink_configuration) if voice_analytics_processor_configuration is not None: - pulumi.set(__self__, "voice_analytics_processor_configuration", voice_analytics_processor_configuration) + _setter("voice_analytics_processor_configuration", voice_analytics_processor_configuration) @property @pulumi.getter @@ -196,43 +241,106 @@ def __init__(__self__, *, """ :param pulumi.Input[str] language_code: Language code for the transcription model. :param pulumi.Input[Sequence[pulumi.Input[str]]] call_analytics_stream_categories: Filter for category events to be delivered to insights target. - :param pulumi.Input[str] content_identification_type: Labels all personally identifiable information (PII) identified in Utterance events. - :param pulumi.Input[str] content_redaction_type: Redacts all personally identifiable information (PII) identified in Utterance events. - :param pulumi.Input[bool] enable_partial_results_stabilization: Enables partial result stabilization in Utterance events. + :param pulumi.Input[str] content_identification_type: Labels all personally identifiable information (PII) identified in Transcript events. + :param pulumi.Input[str] content_redaction_type: Redacts all personally identifiable information (PII) identified in Transcript events. + :param pulumi.Input[bool] enable_partial_results_stabilization: Enables partial result stabilization in Transcript events. :param pulumi.Input[bool] filter_partial_results: Filters partial Utterance events from delivery to the insights target. :param pulumi.Input[str] language_model_name: Name of custom language model for transcription. :param pulumi.Input[str] partial_results_stability: Level of stability to use when partial results stabilization is enabled. - :param pulumi.Input[str] pii_entity_types: Types of personally identifiable information (PII) to redact from an Utterance event. + :param pulumi.Input[str] pii_entity_types: Types of personally identifiable information (PII) to redact from a Transcript event. :param pulumi.Input['MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsArgs'] post_call_analytics_settings: Settings for post call analytics. - :param pulumi.Input[str] vocabulary_filter_method: Method for applying a vocabulary filter to Utterance events. - :param pulumi.Input[str] vocabulary_filter_name: Name of the custom vocabulary filter to use when processing Utterance events. - :param pulumi.Input[str] vocabulary_name: Name of the custom vocabulary to use when processing Utterance events. - """ - pulumi.set(__self__, "language_code", language_code) + :param pulumi.Input[str] vocabulary_filter_method: Method for applying a vocabulary filter to Transcript events. + :param pulumi.Input[str] vocabulary_filter_name: Name of the custom vocabulary filter to use when processing Transcript events. + :param pulumi.Input[str] vocabulary_name: Name of the custom vocabulary to use when processing Transcript events. + """ + MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + language_code=language_code, + call_analytics_stream_categories=call_analytics_stream_categories, + content_identification_type=content_identification_type, + content_redaction_type=content_redaction_type, + enable_partial_results_stabilization=enable_partial_results_stabilization, + filter_partial_results=filter_partial_results, + language_model_name=language_model_name, + partial_results_stability=partial_results_stability, + pii_entity_types=pii_entity_types, + post_call_analytics_settings=post_call_analytics_settings, + vocabulary_filter_method=vocabulary_filter_method, + vocabulary_filter_name=vocabulary_filter_name, + vocabulary_name=vocabulary_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + language_code: Optional[pulumi.Input[str]] = None, + call_analytics_stream_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + content_identification_type: Optional[pulumi.Input[str]] = None, + content_redaction_type: Optional[pulumi.Input[str]] = None, + enable_partial_results_stabilization: Optional[pulumi.Input[bool]] = None, + filter_partial_results: Optional[pulumi.Input[bool]] = None, + language_model_name: Optional[pulumi.Input[str]] = None, + partial_results_stability: Optional[pulumi.Input[str]] = None, + pii_entity_types: Optional[pulumi.Input[str]] = None, + post_call_analytics_settings: Optional[pulumi.Input['MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsArgs']] = None, + vocabulary_filter_method: Optional[pulumi.Input[str]] = None, + vocabulary_filter_name: Optional[pulumi.Input[str]] = None, + vocabulary_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if call_analytics_stream_categories is None and 'callAnalyticsStreamCategories' in kwargs: + call_analytics_stream_categories = kwargs['callAnalyticsStreamCategories'] + if content_identification_type is None and 'contentIdentificationType' in kwargs: + content_identification_type = kwargs['contentIdentificationType'] + if content_redaction_type is None and 'contentRedactionType' in kwargs: + content_redaction_type = kwargs['contentRedactionType'] + if enable_partial_results_stabilization is None and 'enablePartialResultsStabilization' in kwargs: + enable_partial_results_stabilization = kwargs['enablePartialResultsStabilization'] + if filter_partial_results is None and 'filterPartialResults' in kwargs: + filter_partial_results = kwargs['filterPartialResults'] + if language_model_name is None and 'languageModelName' in kwargs: + language_model_name = kwargs['languageModelName'] + if partial_results_stability is None and 'partialResultsStability' in kwargs: + partial_results_stability = kwargs['partialResultsStability'] + if pii_entity_types is None and 'piiEntityTypes' in kwargs: + pii_entity_types = kwargs['piiEntityTypes'] + if post_call_analytics_settings is None and 'postCallAnalyticsSettings' in kwargs: + post_call_analytics_settings = kwargs['postCallAnalyticsSettings'] + if vocabulary_filter_method is None and 'vocabularyFilterMethod' in kwargs: + vocabulary_filter_method = kwargs['vocabularyFilterMethod'] + if vocabulary_filter_name is None and 'vocabularyFilterName' in kwargs: + vocabulary_filter_name = kwargs['vocabularyFilterName'] + if vocabulary_name is None and 'vocabularyName' in kwargs: + vocabulary_name = kwargs['vocabularyName'] + + _setter("language_code", language_code) if call_analytics_stream_categories is not None: - pulumi.set(__self__, "call_analytics_stream_categories", call_analytics_stream_categories) + _setter("call_analytics_stream_categories", call_analytics_stream_categories) if content_identification_type is not None: - pulumi.set(__self__, "content_identification_type", content_identification_type) + _setter("content_identification_type", content_identification_type) if content_redaction_type is not None: - pulumi.set(__self__, "content_redaction_type", content_redaction_type) + _setter("content_redaction_type", content_redaction_type) if enable_partial_results_stabilization is not None: - pulumi.set(__self__, "enable_partial_results_stabilization", enable_partial_results_stabilization) + _setter("enable_partial_results_stabilization", enable_partial_results_stabilization) if filter_partial_results is not None: - pulumi.set(__self__, "filter_partial_results", filter_partial_results) + _setter("filter_partial_results", filter_partial_results) if language_model_name is not None: - pulumi.set(__self__, "language_model_name", language_model_name) + _setter("language_model_name", language_model_name) if partial_results_stability is not None: - pulumi.set(__self__, "partial_results_stability", partial_results_stability) + _setter("partial_results_stability", partial_results_stability) if pii_entity_types is not None: - pulumi.set(__self__, "pii_entity_types", pii_entity_types) + _setter("pii_entity_types", pii_entity_types) if post_call_analytics_settings is not None: - pulumi.set(__self__, "post_call_analytics_settings", post_call_analytics_settings) + _setter("post_call_analytics_settings", post_call_analytics_settings) if vocabulary_filter_method is not None: - pulumi.set(__self__, "vocabulary_filter_method", vocabulary_filter_method) + _setter("vocabulary_filter_method", vocabulary_filter_method) if vocabulary_filter_name is not None: - pulumi.set(__self__, "vocabulary_filter_name", vocabulary_filter_name) + _setter("vocabulary_filter_name", vocabulary_filter_name) if vocabulary_name is not None: - pulumi.set(__self__, "vocabulary_name", vocabulary_name) + _setter("vocabulary_name", vocabulary_name) @property @pulumi.getter(name="languageCode") @@ -262,7 +370,7 @@ def call_analytics_stream_categories(self, value: Optional[pulumi.Input[Sequence @pulumi.getter(name="contentIdentificationType") def content_identification_type(self) -> Optional[pulumi.Input[str]]: """ - Labels all personally identifiable information (PII) identified in Utterance events. + Labels all personally identifiable information (PII) identified in Transcript events. """ return pulumi.get(self, "content_identification_type") @@ -274,7 +382,7 @@ def content_identification_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="contentRedactionType") def content_redaction_type(self) -> Optional[pulumi.Input[str]]: """ - Redacts all personally identifiable information (PII) identified in Utterance events. + Redacts all personally identifiable information (PII) identified in Transcript events. """ return pulumi.get(self, "content_redaction_type") @@ -286,7 +394,7 @@ def content_redaction_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="enablePartialResultsStabilization") def enable_partial_results_stabilization(self) -> Optional[pulumi.Input[bool]]: """ - Enables partial result stabilization in Utterance events. + Enables partial result stabilization in Transcript events. """ return pulumi.get(self, "enable_partial_results_stabilization") @@ -334,7 +442,7 @@ def partial_results_stability(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="piiEntityTypes") def pii_entity_types(self) -> Optional[pulumi.Input[str]]: """ - Types of personally identifiable information (PII) to redact from an Utterance event. + Types of personally identifiable information (PII) to redact from a Transcript event. """ return pulumi.get(self, "pii_entity_types") @@ -358,7 +466,7 @@ def post_call_analytics_settings(self, value: Optional[pulumi.Input['MediaInsigh @pulumi.getter(name="vocabularyFilterMethod") def vocabulary_filter_method(self) -> Optional[pulumi.Input[str]]: """ - Method for applying a vocabulary filter to Utterance events. + Method for applying a vocabulary filter to Transcript events. """ return pulumi.get(self, "vocabulary_filter_method") @@ -370,7 +478,7 @@ def vocabulary_filter_method(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="vocabularyFilterName") def vocabulary_filter_name(self) -> Optional[pulumi.Input[str]]: """ - Name of the custom vocabulary filter to use when processing Utterance events. + Name of the custom vocabulary filter to use when processing Transcript events. """ return pulumi.get(self, "vocabulary_filter_name") @@ -382,7 +490,7 @@ def vocabulary_filter_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="vocabularyName") def vocabulary_name(self) -> Optional[pulumi.Input[str]]: """ - Name of the custom vocabulary to use when processing Utterance events. + Name of the custom vocabulary to use when processing Transcript events. """ return pulumi.get(self, "vocabulary_name") @@ -404,12 +512,41 @@ def __init__(__self__, *, :param pulumi.Input[str] content_redaction_output: Should output be redacted. :param pulumi.Input[str] output_encryption_kms_key_id: ID of the KMS key used to encrypt the output. """ - pulumi.set(__self__, "data_access_role_arn", data_access_role_arn) - pulumi.set(__self__, "output_location", output_location) + MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_access_role_arn=data_access_role_arn, + output_location=output_location, + content_redaction_output=content_redaction_output, + output_encryption_kms_key_id=output_encryption_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_access_role_arn: Optional[pulumi.Input[str]] = None, + output_location: Optional[pulumi.Input[str]] = None, + content_redaction_output: Optional[pulumi.Input[str]] = None, + output_encryption_kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_access_role_arn is None and 'dataAccessRoleArn' in kwargs: + data_access_role_arn = kwargs['dataAccessRoleArn'] + if data_access_role_arn is None: + raise TypeError("Missing 'data_access_role_arn' argument") + if output_location is None and 'outputLocation' in kwargs: + output_location = kwargs['outputLocation'] + if output_location is None: + raise TypeError("Missing 'output_location' argument") + if content_redaction_output is None and 'contentRedactionOutput' in kwargs: + content_redaction_output = kwargs['contentRedactionOutput'] + if output_encryption_kms_key_id is None and 'outputEncryptionKmsKeyId' in kwargs: + output_encryption_kms_key_id = kwargs['outputEncryptionKmsKeyId'] + + _setter("data_access_role_arn", data_access_role_arn) + _setter("output_location", output_location) if content_redaction_output is not None: - pulumi.set(__self__, "content_redaction_output", content_redaction_output) + _setter("content_redaction_output", content_redaction_output) if output_encryption_kms_key_id is not None: - pulumi.set(__self__, "output_encryption_kms_key_id", output_encryption_kms_key_id) + _setter("output_encryption_kms_key_id", output_encryption_kms_key_id) @property @pulumi.getter(name="dataAccessRoleArn") @@ -477,41 +614,100 @@ def __init__(__self__, *, vocabulary_name: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] language_code: Language code for the transcription model. - :param pulumi.Input[str] content_identification_type: Labels all personally identifiable information (PII) identified in Utterance events. - :param pulumi.Input[str] content_redaction_type: Redacts all personally identifiable information (PII) identified in Utterance events. - :param pulumi.Input[bool] enable_partial_results_stabilization: Enables partial result stabilization in Utterance events. + :param pulumi.Input[str] content_identification_type: Labels all personally identifiable information (PII) identified in Transcript events. + :param pulumi.Input[str] content_redaction_type: Redacts all personally identifiable information (PII) identified in Transcript events. + :param pulumi.Input[bool] enable_partial_results_stabilization: Enables partial result stabilization in Transcript events. :param pulumi.Input[bool] filter_partial_results: Filters partial Utterance events from delivery to the insights target. :param pulumi.Input[str] language_model_name: Name of custom language model for transcription. :param pulumi.Input[str] partial_results_stability: Level of stability to use when partial results stabilization is enabled. - :param pulumi.Input[str] pii_entity_types: Types of personally identifiable information (PII) to redact from an Utterance event. + :param pulumi.Input[str] pii_entity_types: Types of personally identifiable information (PII) to redact from a Transcript event. :param pulumi.Input[bool] show_speaker_label: Enables speaker partitioning (diarization) in your Transcript events. - :param pulumi.Input[str] vocabulary_filter_method: Method for applying a vocabulary filter to Utterance events. - :param pulumi.Input[str] vocabulary_filter_name: Name of the custom vocabulary filter to use when processing Utterance events. - :param pulumi.Input[str] vocabulary_name: Name of the custom vocabulary to use when processing Utterance events. - """ - pulumi.set(__self__, "language_code", language_code) + :param pulumi.Input[str] vocabulary_filter_method: Method for applying a vocabulary filter to Transcript events. + :param pulumi.Input[str] vocabulary_filter_name: Name of the custom vocabulary filter to use when processing Transcript events. + :param pulumi.Input[str] vocabulary_name: Name of the custom vocabulary to use when processing Transcript events. + """ + MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + language_code=language_code, + content_identification_type=content_identification_type, + content_redaction_type=content_redaction_type, + enable_partial_results_stabilization=enable_partial_results_stabilization, + filter_partial_results=filter_partial_results, + language_model_name=language_model_name, + partial_results_stability=partial_results_stability, + pii_entity_types=pii_entity_types, + show_speaker_label=show_speaker_label, + vocabulary_filter_method=vocabulary_filter_method, + vocabulary_filter_name=vocabulary_filter_name, + vocabulary_name=vocabulary_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + language_code: Optional[pulumi.Input[str]] = None, + content_identification_type: Optional[pulumi.Input[str]] = None, + content_redaction_type: Optional[pulumi.Input[str]] = None, + enable_partial_results_stabilization: Optional[pulumi.Input[bool]] = None, + filter_partial_results: Optional[pulumi.Input[bool]] = None, + language_model_name: Optional[pulumi.Input[str]] = None, + partial_results_stability: Optional[pulumi.Input[str]] = None, + pii_entity_types: Optional[pulumi.Input[str]] = None, + show_speaker_label: Optional[pulumi.Input[bool]] = None, + vocabulary_filter_method: Optional[pulumi.Input[str]] = None, + vocabulary_filter_name: Optional[pulumi.Input[str]] = None, + vocabulary_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if content_identification_type is None and 'contentIdentificationType' in kwargs: + content_identification_type = kwargs['contentIdentificationType'] + if content_redaction_type is None and 'contentRedactionType' in kwargs: + content_redaction_type = kwargs['contentRedactionType'] + if enable_partial_results_stabilization is None and 'enablePartialResultsStabilization' in kwargs: + enable_partial_results_stabilization = kwargs['enablePartialResultsStabilization'] + if filter_partial_results is None and 'filterPartialResults' in kwargs: + filter_partial_results = kwargs['filterPartialResults'] + if language_model_name is None and 'languageModelName' in kwargs: + language_model_name = kwargs['languageModelName'] + if partial_results_stability is None and 'partialResultsStability' in kwargs: + partial_results_stability = kwargs['partialResultsStability'] + if pii_entity_types is None and 'piiEntityTypes' in kwargs: + pii_entity_types = kwargs['piiEntityTypes'] + if show_speaker_label is None and 'showSpeakerLabel' in kwargs: + show_speaker_label = kwargs['showSpeakerLabel'] + if vocabulary_filter_method is None and 'vocabularyFilterMethod' in kwargs: + vocabulary_filter_method = kwargs['vocabularyFilterMethod'] + if vocabulary_filter_name is None and 'vocabularyFilterName' in kwargs: + vocabulary_filter_name = kwargs['vocabularyFilterName'] + if vocabulary_name is None and 'vocabularyName' in kwargs: + vocabulary_name = kwargs['vocabularyName'] + + _setter("language_code", language_code) if content_identification_type is not None: - pulumi.set(__self__, "content_identification_type", content_identification_type) + _setter("content_identification_type", content_identification_type) if content_redaction_type is not None: - pulumi.set(__self__, "content_redaction_type", content_redaction_type) + _setter("content_redaction_type", content_redaction_type) if enable_partial_results_stabilization is not None: - pulumi.set(__self__, "enable_partial_results_stabilization", enable_partial_results_stabilization) + _setter("enable_partial_results_stabilization", enable_partial_results_stabilization) if filter_partial_results is not None: - pulumi.set(__self__, "filter_partial_results", filter_partial_results) + _setter("filter_partial_results", filter_partial_results) if language_model_name is not None: - pulumi.set(__self__, "language_model_name", language_model_name) + _setter("language_model_name", language_model_name) if partial_results_stability is not None: - pulumi.set(__self__, "partial_results_stability", partial_results_stability) + _setter("partial_results_stability", partial_results_stability) if pii_entity_types is not None: - pulumi.set(__self__, "pii_entity_types", pii_entity_types) + _setter("pii_entity_types", pii_entity_types) if show_speaker_label is not None: - pulumi.set(__self__, "show_speaker_label", show_speaker_label) + _setter("show_speaker_label", show_speaker_label) if vocabulary_filter_method is not None: - pulumi.set(__self__, "vocabulary_filter_method", vocabulary_filter_method) + _setter("vocabulary_filter_method", vocabulary_filter_method) if vocabulary_filter_name is not None: - pulumi.set(__self__, "vocabulary_filter_name", vocabulary_filter_name) + _setter("vocabulary_filter_name", vocabulary_filter_name) if vocabulary_name is not None: - pulumi.set(__self__, "vocabulary_name", vocabulary_name) + _setter("vocabulary_name", vocabulary_name) @property @pulumi.getter(name="languageCode") @@ -529,7 +725,7 @@ def language_code(self, value: pulumi.Input[str]): @pulumi.getter(name="contentIdentificationType") def content_identification_type(self) -> Optional[pulumi.Input[str]]: """ - Labels all personally identifiable information (PII) identified in Utterance events. + Labels all personally identifiable information (PII) identified in Transcript events. """ return pulumi.get(self, "content_identification_type") @@ -541,7 +737,7 @@ def content_identification_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="contentRedactionType") def content_redaction_type(self) -> Optional[pulumi.Input[str]]: """ - Redacts all personally identifiable information (PII) identified in Utterance events. + Redacts all personally identifiable information (PII) identified in Transcript events. """ return pulumi.get(self, "content_redaction_type") @@ -553,7 +749,7 @@ def content_redaction_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="enablePartialResultsStabilization") def enable_partial_results_stabilization(self) -> Optional[pulumi.Input[bool]]: """ - Enables partial result stabilization in Utterance events. + Enables partial result stabilization in Transcript events. """ return pulumi.get(self, "enable_partial_results_stabilization") @@ -601,7 +797,7 @@ def partial_results_stability(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="piiEntityTypes") def pii_entity_types(self) -> Optional[pulumi.Input[str]]: """ - Types of personally identifiable information (PII) to redact from an Utterance event. + Types of personally identifiable information (PII) to redact from a Transcript event. """ return pulumi.get(self, "pii_entity_types") @@ -625,7 +821,7 @@ def show_speaker_label(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="vocabularyFilterMethod") def vocabulary_filter_method(self) -> Optional[pulumi.Input[str]]: """ - Method for applying a vocabulary filter to Utterance events. + Method for applying a vocabulary filter to Transcript events. """ return pulumi.get(self, "vocabulary_filter_method") @@ -637,7 +833,7 @@ def vocabulary_filter_method(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="vocabularyFilterName") def vocabulary_filter_name(self) -> Optional[pulumi.Input[str]]: """ - Name of the custom vocabulary filter to use when processing Utterance events. + Name of the custom vocabulary filter to use when processing Transcript events. """ return pulumi.get(self, "vocabulary_filter_name") @@ -649,7 +845,7 @@ def vocabulary_filter_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="vocabularyName") def vocabulary_name(self) -> Optional[pulumi.Input[str]]: """ - Name of the custom vocabulary to use when processing Utterance events. + Name of the custom vocabulary to use when processing Transcript events. """ return pulumi.get(self, "vocabulary_name") @@ -663,15 +859,30 @@ class MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguratio def __init__(__self__, *, insights_target: pulumi.Input[str]): """ - :param pulumi.Input[str] insights_target: Kinesis Data Stream to deliver results. - """ - pulumi.set(__self__, "insights_target", insights_target) + :param pulumi.Input[str] insights_target: SQS queue to deliver results. + """ + MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_target=insights_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_target is None and 'insightsTarget' in kwargs: + insights_target = kwargs['insightsTarget'] + if insights_target is None: + raise TypeError("Missing 'insights_target' argument") + + _setter("insights_target", insights_target) @property @pulumi.getter(name="insightsTarget") def insights_target(self) -> pulumi.Input[str]: """ - Kinesis Data Stream to deliver results. + SQS queue to deliver results. """ return pulumi.get(self, "insights_target") @@ -685,15 +896,30 @@ class MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationAr def __init__(__self__, *, insights_target: pulumi.Input[str]): """ - :param pulumi.Input[str] insights_target: Kinesis Data Stream to deliver results. - """ - pulumi.set(__self__, "insights_target", insights_target) + :param pulumi.Input[str] insights_target: SQS queue to deliver results. + """ + MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_target=insights_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_target is None and 'insightsTarget' in kwargs: + insights_target = kwargs['insightsTarget'] + if insights_target is None: + raise TypeError("Missing 'insights_target' argument") + + _setter("insights_target", insights_target) @property @pulumi.getter(name="insightsTarget") def insights_target(self) -> pulumi.Input[str]: """ - Kinesis Data Stream to deliver results. + SQS queue to deliver results. """ return pulumi.get(self, "insights_target") @@ -709,8 +935,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination: S3 URI to deliver recordings. """ + MediaInsightsPipelineConfigurationElementS3RecordingSinkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) @property @pulumi.getter @@ -730,15 +967,30 @@ class MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs: def __init__(__self__, *, insights_target: pulumi.Input[str]): """ - :param pulumi.Input[str] insights_target: Kinesis Data Stream to deliver results. - """ - pulumi.set(__self__, "insights_target", insights_target) + :param pulumi.Input[str] insights_target: SQS queue to deliver results. + """ + MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_target=insights_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_target is None and 'insightsTarget' in kwargs: + insights_target = kwargs['insightsTarget'] + if insights_target is None: + raise TypeError("Missing 'insights_target' argument") + + _setter("insights_target", insights_target) @property @pulumi.getter(name="insightsTarget") def insights_target(self) -> pulumi.Input[str]: """ - Kinesis Data Stream to deliver results. + SQS queue to deliver results. """ return pulumi.get(self, "insights_target") @@ -752,15 +1004,30 @@ class MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs: def __init__(__self__, *, insights_target: pulumi.Input[str]): """ - :param pulumi.Input[str] insights_target: Kinesis Data Stream to deliver results. - """ - pulumi.set(__self__, "insights_target", insights_target) + :param pulumi.Input[str] insights_target: SQS queue to deliver results. + """ + MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_target=insights_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_target is None and 'insightsTarget' in kwargs: + insights_target = kwargs['insightsTarget'] + if insights_target is None: + raise TypeError("Missing 'insights_target' argument") + + _setter("insights_target", insights_target) @property @pulumi.getter(name="insightsTarget") def insights_target(self) -> pulumi.Input[str]: """ - Kinesis Data Stream to deliver results. + SQS queue to deliver results. """ return pulumi.get(self, "insights_target") @@ -778,8 +1045,29 @@ def __init__(__self__, *, :param pulumi.Input[str] speaker_search_status: Enable speaker search. :param pulumi.Input[str] voice_tone_analysis_status: Enable voice tone analysis. """ - pulumi.set(__self__, "speaker_search_status", speaker_search_status) - pulumi.set(__self__, "voice_tone_analysis_status", voice_tone_analysis_status) + MediaInsightsPipelineConfigurationElementVoiceAnalyticsProcessorConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + speaker_search_status=speaker_search_status, + voice_tone_analysis_status=voice_tone_analysis_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + speaker_search_status: Optional[pulumi.Input[str]] = None, + voice_tone_analysis_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if speaker_search_status is None and 'speakerSearchStatus' in kwargs: + speaker_search_status = kwargs['speakerSearchStatus'] + if speaker_search_status is None: + raise TypeError("Missing 'speaker_search_status' argument") + if voice_tone_analysis_status is None and 'voiceToneAnalysisStatus' in kwargs: + voice_tone_analysis_status = kwargs['voiceToneAnalysisStatus'] + if voice_tone_analysis_status is None: + raise TypeError("Missing 'voice_tone_analysis_status' argument") + + _setter("speaker_search_status", speaker_search_status) + _setter("voice_tone_analysis_status", voice_tone_analysis_status) @property @pulumi.getter(name="speakerSearchStatus") @@ -815,9 +1103,24 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs']]] rules: Collection of real time alert rules :param pulumi.Input[bool] disabled: Disables real time alert rules. """ - pulumi.set(__self__, "rules", rules) + MediaInsightsPipelineConfigurationRealTimeAlertConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules=rules, + disabled=disabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules: Optional[pulumi.Input[Sequence[pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs']]]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("rules", rules) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) @property @pulumi.getter @@ -857,13 +1160,38 @@ def __init__(__self__, *, :param pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleKeywordMatchConfigurationArgs'] keyword_match_configuration: Configuration for a keyword match rule. :param pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleSentimentConfigurationArgs'] sentiment_configuration: Configuration for a sentiment rule. """ - pulumi.set(__self__, "type", type) + MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + issue_detection_configuration=issue_detection_configuration, + keyword_match_configuration=keyword_match_configuration, + sentiment_configuration=sentiment_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + issue_detection_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleIssueDetectionConfigurationArgs']] = None, + keyword_match_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleKeywordMatchConfigurationArgs']] = None, + sentiment_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleSentimentConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if issue_detection_configuration is None and 'issueDetectionConfiguration' in kwargs: + issue_detection_configuration = kwargs['issueDetectionConfiguration'] + if keyword_match_configuration is None and 'keywordMatchConfiguration' in kwargs: + keyword_match_configuration = kwargs['keywordMatchConfiguration'] + if sentiment_configuration is None and 'sentimentConfiguration' in kwargs: + sentiment_configuration = kwargs['sentimentConfiguration'] + + _setter("type", type) if issue_detection_configuration is not None: - pulumi.set(__self__, "issue_detection_configuration", issue_detection_configuration) + _setter("issue_detection_configuration", issue_detection_configuration) if keyword_match_configuration is not None: - pulumi.set(__self__, "keyword_match_configuration", keyword_match_configuration) + _setter("keyword_match_configuration", keyword_match_configuration) if sentiment_configuration is not None: - pulumi.set(__self__, "sentiment_configuration", sentiment_configuration) + _setter("sentiment_configuration", sentiment_configuration) @property @pulumi.getter @@ -921,7 +1249,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] rule_name: Rule name. """ - pulumi.set(__self__, "rule_name", rule_name) + MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleIssueDetectionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_name=rule_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if rule_name is None: + raise TypeError("Missing 'rule_name' argument") + + _setter("rule_name", rule_name) @property @pulumi.getter(name="ruleName") @@ -947,10 +1290,31 @@ def __init__(__self__, *, :param pulumi.Input[str] rule_name: Rule name. :param pulumi.Input[bool] negate: Negate the rule. """ - pulumi.set(__self__, "keywords", keywords) - pulumi.set(__self__, "rule_name", rule_name) + MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleKeywordMatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + keywords=keywords, + rule_name=rule_name, + negate=negate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + keywords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + rule_name: Optional[pulumi.Input[str]] = None, + negate: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if keywords is None: + raise TypeError("Missing 'keywords' argument") + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if rule_name is None: + raise TypeError("Missing 'rule_name' argument") + + _setter("keywords", keywords) + _setter("rule_name", rule_name) if negate is not None: - pulumi.set(__self__, "negate", negate) + _setter("negate", negate) @property @pulumi.getter @@ -1000,9 +1364,36 @@ def __init__(__self__, *, :param pulumi.Input[str] sentiment_type: Sentiment type to match. :param pulumi.Input[int] time_period: Analysis interval. """ - pulumi.set(__self__, "rule_name", rule_name) - pulumi.set(__self__, "sentiment_type", sentiment_type) - pulumi.set(__self__, "time_period", time_period) + MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleSentimentConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_name=rule_name, + sentiment_type=sentiment_type, + time_period=time_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_name: Optional[pulumi.Input[str]] = None, + sentiment_type: Optional[pulumi.Input[str]] = None, + time_period: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if rule_name is None: + raise TypeError("Missing 'rule_name' argument") + if sentiment_type is None and 'sentimentType' in kwargs: + sentiment_type = kwargs['sentimentType'] + if sentiment_type is None: + raise TypeError("Missing 'sentiment_type' argument") + if time_period is None and 'timePeriod' in kwargs: + time_period = kwargs['timePeriod'] + if time_period is None: + raise TypeError("Missing 'time_period' argument") + + _setter("rule_name", rule_name) + _setter("sentiment_type", sentiment_type) + _setter("time_period", time_period) @property @pulumi.getter(name="ruleName") diff --git a/sdk/python/pulumi_aws/chimesdkmediapipelines/media_insights_pipeline_configuration.py b/sdk/python/pulumi_aws/chimesdkmediapipelines/media_insights_pipeline_configuration.py index 6cfcc9ffa24..b7bf12ef741 100644 --- a/sdk/python/pulumi_aws/chimesdkmediapipelines/media_insights_pipeline_configuration.py +++ b/sdk/python/pulumi_aws/chimesdkmediapipelines/media_insights_pipeline_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationArgs'] real_time_alert_configuration: Configuration for real-time alert rules to send EventBridge notifications when certain conditions are met. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags for the resource. """ - pulumi.set(__self__, "elements", elements) - pulumi.set(__self__, "resource_access_role_arn", resource_access_role_arn) + MediaInsightsPipelineConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + elements=elements, + resource_access_role_arn=resource_access_role_arn, + name=name, + real_time_alert_configuration=real_time_alert_configuration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + elements: Optional[pulumi.Input[Sequence[pulumi.Input['MediaInsightsPipelineConfigurationElementArgs']]]] = None, + resource_access_role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + real_time_alert_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if elements is None: + raise TypeError("Missing 'elements' argument") + if resource_access_role_arn is None and 'resourceAccessRoleArn' in kwargs: + resource_access_role_arn = kwargs['resourceAccessRoleArn'] + if resource_access_role_arn is None: + raise TypeError("Missing 'resource_access_role_arn' argument") + if real_time_alert_configuration is None and 'realTimeAlertConfiguration' in kwargs: + real_time_alert_configuration = kwargs['realTimeAlertConfiguration'] + + _setter("elements", elements) + _setter("resource_access_role_arn", resource_access_role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if real_time_alert_configuration is not None: - pulumi.set(__self__, "real_time_alert_configuration", real_time_alert_configuration) + _setter("real_time_alert_configuration", real_time_alert_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -118,23 +145,52 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_access_role_arn: ARN of IAM Role used by service to invoke processors and sinks specified by configuration elements. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags for the resource. """ + _MediaInsightsPipelineConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + elements=elements, + name=name, + real_time_alert_configuration=real_time_alert_configuration, + resource_access_role_arn=resource_access_role_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + elements: Optional[pulumi.Input[Sequence[pulumi.Input['MediaInsightsPipelineConfigurationElementArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + real_time_alert_configuration: Optional[pulumi.Input['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationArgs']] = None, + resource_access_role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if real_time_alert_configuration is None and 'realTimeAlertConfiguration' in kwargs: + real_time_alert_configuration = kwargs['realTimeAlertConfiguration'] + if resource_access_role_arn is None and 'resourceAccessRoleArn' in kwargs: + resource_access_role_arn = kwargs['resourceAccessRoleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if elements is not None: - pulumi.set(__self__, "elements", elements) + _setter("elements", elements) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if real_time_alert_configuration is not None: - pulumi.set(__self__, "real_time_alert_configuration", real_time_alert_configuration) + _setter("real_time_alert_configuration", real_time_alert_configuration) if resource_access_role_arn is not None: - pulumi.set(__self__, "resource_access_role_arn", resource_access_role_arn) + _setter("resource_access_role_arn", resource_access_role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -750,6 +806,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MediaInsightsPipelineConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -773,6 +833,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'elements'") __props__.__dict__["elements"] = elements __props__.__dict__["name"] = name + real_time_alert_configuration = _utilities.configure(real_time_alert_configuration, MediaInsightsPipelineConfigurationRealTimeAlertConfigurationArgs, True) __props__.__dict__["real_time_alert_configuration"] = real_time_alert_configuration if resource_access_role_arn is None and not opts.urn: raise TypeError("Missing required property 'resource_access_role_arn'") diff --git a/sdk/python/pulumi_aws/chimesdkmediapipelines/outputs.py b/sdk/python/pulumi_aws/chimesdkmediapipelines/outputs.py index 5b1100c2c16..604f9abbd76 100644 --- a/sdk/python/pulumi_aws/chimesdkmediapipelines/outputs.py +++ b/sdk/python/pulumi_aws/chimesdkmediapipelines/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -82,23 +82,68 @@ def __init__(__self__, *, :param 'MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs' sqs_queue_sink_configuration: Configuration for SQS Queue sink. :param 'MediaInsightsPipelineConfigurationElementVoiceAnalyticsProcessorConfigurationArgs' voice_analytics_processor_configuration: Configuration for Voice analytics processor. """ - pulumi.set(__self__, "type", type) + MediaInsightsPipelineConfigurationElement._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + amazon_transcribe_call_analytics_processor_configuration=amazon_transcribe_call_analytics_processor_configuration, + amazon_transcribe_processor_configuration=amazon_transcribe_processor_configuration, + kinesis_data_stream_sink_configuration=kinesis_data_stream_sink_configuration, + lambda_function_sink_configuration=lambda_function_sink_configuration, + s3_recording_sink_configuration=s3_recording_sink_configuration, + sns_topic_sink_configuration=sns_topic_sink_configuration, + sqs_queue_sink_configuration=sqs_queue_sink_configuration, + voice_analytics_processor_configuration=voice_analytics_processor_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + amazon_transcribe_call_analytics_processor_configuration: Optional['outputs.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration'] = None, + amazon_transcribe_processor_configuration: Optional['outputs.MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration'] = None, + kinesis_data_stream_sink_configuration: Optional['outputs.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration'] = None, + lambda_function_sink_configuration: Optional['outputs.MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration'] = None, + s3_recording_sink_configuration: Optional['outputs.MediaInsightsPipelineConfigurationElementS3RecordingSinkConfiguration'] = None, + sns_topic_sink_configuration: Optional['outputs.MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration'] = None, + sqs_queue_sink_configuration: Optional['outputs.MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration'] = None, + voice_analytics_processor_configuration: Optional['outputs.MediaInsightsPipelineConfigurationElementVoiceAnalyticsProcessorConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if amazon_transcribe_call_analytics_processor_configuration is None and 'amazonTranscribeCallAnalyticsProcessorConfiguration' in kwargs: + amazon_transcribe_call_analytics_processor_configuration = kwargs['amazonTranscribeCallAnalyticsProcessorConfiguration'] + if amazon_transcribe_processor_configuration is None and 'amazonTranscribeProcessorConfiguration' in kwargs: + amazon_transcribe_processor_configuration = kwargs['amazonTranscribeProcessorConfiguration'] + if kinesis_data_stream_sink_configuration is None and 'kinesisDataStreamSinkConfiguration' in kwargs: + kinesis_data_stream_sink_configuration = kwargs['kinesisDataStreamSinkConfiguration'] + if lambda_function_sink_configuration is None and 'lambdaFunctionSinkConfiguration' in kwargs: + lambda_function_sink_configuration = kwargs['lambdaFunctionSinkConfiguration'] + if s3_recording_sink_configuration is None and 's3RecordingSinkConfiguration' in kwargs: + s3_recording_sink_configuration = kwargs['s3RecordingSinkConfiguration'] + if sns_topic_sink_configuration is None and 'snsTopicSinkConfiguration' in kwargs: + sns_topic_sink_configuration = kwargs['snsTopicSinkConfiguration'] + if sqs_queue_sink_configuration is None and 'sqsQueueSinkConfiguration' in kwargs: + sqs_queue_sink_configuration = kwargs['sqsQueueSinkConfiguration'] + if voice_analytics_processor_configuration is None and 'voiceAnalyticsProcessorConfiguration' in kwargs: + voice_analytics_processor_configuration = kwargs['voiceAnalyticsProcessorConfiguration'] + + _setter("type", type) if amazon_transcribe_call_analytics_processor_configuration is not None: - pulumi.set(__self__, "amazon_transcribe_call_analytics_processor_configuration", amazon_transcribe_call_analytics_processor_configuration) + _setter("amazon_transcribe_call_analytics_processor_configuration", amazon_transcribe_call_analytics_processor_configuration) if amazon_transcribe_processor_configuration is not None: - pulumi.set(__self__, "amazon_transcribe_processor_configuration", amazon_transcribe_processor_configuration) + _setter("amazon_transcribe_processor_configuration", amazon_transcribe_processor_configuration) if kinesis_data_stream_sink_configuration is not None: - pulumi.set(__self__, "kinesis_data_stream_sink_configuration", kinesis_data_stream_sink_configuration) + _setter("kinesis_data_stream_sink_configuration", kinesis_data_stream_sink_configuration) if lambda_function_sink_configuration is not None: - pulumi.set(__self__, "lambda_function_sink_configuration", lambda_function_sink_configuration) + _setter("lambda_function_sink_configuration", lambda_function_sink_configuration) if s3_recording_sink_configuration is not None: - pulumi.set(__self__, "s3_recording_sink_configuration", s3_recording_sink_configuration) + _setter("s3_recording_sink_configuration", s3_recording_sink_configuration) if sns_topic_sink_configuration is not None: - pulumi.set(__self__, "sns_topic_sink_configuration", sns_topic_sink_configuration) + _setter("sns_topic_sink_configuration", sns_topic_sink_configuration) if sqs_queue_sink_configuration is not None: - pulumi.set(__self__, "sqs_queue_sink_configuration", sqs_queue_sink_configuration) + _setter("sqs_queue_sink_configuration", sqs_queue_sink_configuration) if voice_analytics_processor_configuration is not None: - pulumi.set(__self__, "voice_analytics_processor_configuration", voice_analytics_processor_configuration) + _setter("voice_analytics_processor_configuration", voice_analytics_processor_configuration) @property @pulumi.getter @@ -233,43 +278,106 @@ def __init__(__self__, *, """ :param str language_code: Language code for the transcription model. :param Sequence[str] call_analytics_stream_categories: Filter for category events to be delivered to insights target. - :param str content_identification_type: Labels all personally identifiable information (PII) identified in Utterance events. - :param str content_redaction_type: Redacts all personally identifiable information (PII) identified in Utterance events. - :param bool enable_partial_results_stabilization: Enables partial result stabilization in Utterance events. + :param str content_identification_type: Labels all personally identifiable information (PII) identified in Transcript events. + :param str content_redaction_type: Redacts all personally identifiable information (PII) identified in Transcript events. + :param bool enable_partial_results_stabilization: Enables partial result stabilization in Transcript events. :param bool filter_partial_results: Filters partial Utterance events from delivery to the insights target. :param str language_model_name: Name of custom language model for transcription. :param str partial_results_stability: Level of stability to use when partial results stabilization is enabled. - :param str pii_entity_types: Types of personally identifiable information (PII) to redact from an Utterance event. + :param str pii_entity_types: Types of personally identifiable information (PII) to redact from a Transcript event. :param 'MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsArgs' post_call_analytics_settings: Settings for post call analytics. - :param str vocabulary_filter_method: Method for applying a vocabulary filter to Utterance events. - :param str vocabulary_filter_name: Name of the custom vocabulary filter to use when processing Utterance events. - :param str vocabulary_name: Name of the custom vocabulary to use when processing Utterance events. - """ - pulumi.set(__self__, "language_code", language_code) + :param str vocabulary_filter_method: Method for applying a vocabulary filter to Transcript events. + :param str vocabulary_filter_name: Name of the custom vocabulary filter to use when processing Transcript events. + :param str vocabulary_name: Name of the custom vocabulary to use when processing Transcript events. + """ + MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + language_code=language_code, + call_analytics_stream_categories=call_analytics_stream_categories, + content_identification_type=content_identification_type, + content_redaction_type=content_redaction_type, + enable_partial_results_stabilization=enable_partial_results_stabilization, + filter_partial_results=filter_partial_results, + language_model_name=language_model_name, + partial_results_stability=partial_results_stability, + pii_entity_types=pii_entity_types, + post_call_analytics_settings=post_call_analytics_settings, + vocabulary_filter_method=vocabulary_filter_method, + vocabulary_filter_name=vocabulary_filter_name, + vocabulary_name=vocabulary_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + language_code: Optional[str] = None, + call_analytics_stream_categories: Optional[Sequence[str]] = None, + content_identification_type: Optional[str] = None, + content_redaction_type: Optional[str] = None, + enable_partial_results_stabilization: Optional[bool] = None, + filter_partial_results: Optional[bool] = None, + language_model_name: Optional[str] = None, + partial_results_stability: Optional[str] = None, + pii_entity_types: Optional[str] = None, + post_call_analytics_settings: Optional['outputs.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettings'] = None, + vocabulary_filter_method: Optional[str] = None, + vocabulary_filter_name: Optional[str] = None, + vocabulary_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if call_analytics_stream_categories is None and 'callAnalyticsStreamCategories' in kwargs: + call_analytics_stream_categories = kwargs['callAnalyticsStreamCategories'] + if content_identification_type is None and 'contentIdentificationType' in kwargs: + content_identification_type = kwargs['contentIdentificationType'] + if content_redaction_type is None and 'contentRedactionType' in kwargs: + content_redaction_type = kwargs['contentRedactionType'] + if enable_partial_results_stabilization is None and 'enablePartialResultsStabilization' in kwargs: + enable_partial_results_stabilization = kwargs['enablePartialResultsStabilization'] + if filter_partial_results is None and 'filterPartialResults' in kwargs: + filter_partial_results = kwargs['filterPartialResults'] + if language_model_name is None and 'languageModelName' in kwargs: + language_model_name = kwargs['languageModelName'] + if partial_results_stability is None and 'partialResultsStability' in kwargs: + partial_results_stability = kwargs['partialResultsStability'] + if pii_entity_types is None and 'piiEntityTypes' in kwargs: + pii_entity_types = kwargs['piiEntityTypes'] + if post_call_analytics_settings is None and 'postCallAnalyticsSettings' in kwargs: + post_call_analytics_settings = kwargs['postCallAnalyticsSettings'] + if vocabulary_filter_method is None and 'vocabularyFilterMethod' in kwargs: + vocabulary_filter_method = kwargs['vocabularyFilterMethod'] + if vocabulary_filter_name is None and 'vocabularyFilterName' in kwargs: + vocabulary_filter_name = kwargs['vocabularyFilterName'] + if vocabulary_name is None and 'vocabularyName' in kwargs: + vocabulary_name = kwargs['vocabularyName'] + + _setter("language_code", language_code) if call_analytics_stream_categories is not None: - pulumi.set(__self__, "call_analytics_stream_categories", call_analytics_stream_categories) + _setter("call_analytics_stream_categories", call_analytics_stream_categories) if content_identification_type is not None: - pulumi.set(__self__, "content_identification_type", content_identification_type) + _setter("content_identification_type", content_identification_type) if content_redaction_type is not None: - pulumi.set(__self__, "content_redaction_type", content_redaction_type) + _setter("content_redaction_type", content_redaction_type) if enable_partial_results_stabilization is not None: - pulumi.set(__self__, "enable_partial_results_stabilization", enable_partial_results_stabilization) + _setter("enable_partial_results_stabilization", enable_partial_results_stabilization) if filter_partial_results is not None: - pulumi.set(__self__, "filter_partial_results", filter_partial_results) + _setter("filter_partial_results", filter_partial_results) if language_model_name is not None: - pulumi.set(__self__, "language_model_name", language_model_name) + _setter("language_model_name", language_model_name) if partial_results_stability is not None: - pulumi.set(__self__, "partial_results_stability", partial_results_stability) + _setter("partial_results_stability", partial_results_stability) if pii_entity_types is not None: - pulumi.set(__self__, "pii_entity_types", pii_entity_types) + _setter("pii_entity_types", pii_entity_types) if post_call_analytics_settings is not None: - pulumi.set(__self__, "post_call_analytics_settings", post_call_analytics_settings) + _setter("post_call_analytics_settings", post_call_analytics_settings) if vocabulary_filter_method is not None: - pulumi.set(__self__, "vocabulary_filter_method", vocabulary_filter_method) + _setter("vocabulary_filter_method", vocabulary_filter_method) if vocabulary_filter_name is not None: - pulumi.set(__self__, "vocabulary_filter_name", vocabulary_filter_name) + _setter("vocabulary_filter_name", vocabulary_filter_name) if vocabulary_name is not None: - pulumi.set(__self__, "vocabulary_name", vocabulary_name) + _setter("vocabulary_name", vocabulary_name) @property @pulumi.getter(name="languageCode") @@ -291,7 +399,7 @@ def call_analytics_stream_categories(self) -> Optional[Sequence[str]]: @pulumi.getter(name="contentIdentificationType") def content_identification_type(self) -> Optional[str]: """ - Labels all personally identifiable information (PII) identified in Utterance events. + Labels all personally identifiable information (PII) identified in Transcript events. """ return pulumi.get(self, "content_identification_type") @@ -299,7 +407,7 @@ def content_identification_type(self) -> Optional[str]: @pulumi.getter(name="contentRedactionType") def content_redaction_type(self) -> Optional[str]: """ - Redacts all personally identifiable information (PII) identified in Utterance events. + Redacts all personally identifiable information (PII) identified in Transcript events. """ return pulumi.get(self, "content_redaction_type") @@ -307,7 +415,7 @@ def content_redaction_type(self) -> Optional[str]: @pulumi.getter(name="enablePartialResultsStabilization") def enable_partial_results_stabilization(self) -> Optional[bool]: """ - Enables partial result stabilization in Utterance events. + Enables partial result stabilization in Transcript events. """ return pulumi.get(self, "enable_partial_results_stabilization") @@ -339,7 +447,7 @@ def partial_results_stability(self) -> Optional[str]: @pulumi.getter(name="piiEntityTypes") def pii_entity_types(self) -> Optional[str]: """ - Types of personally identifiable information (PII) to redact from an Utterance event. + Types of personally identifiable information (PII) to redact from a Transcript event. """ return pulumi.get(self, "pii_entity_types") @@ -355,7 +463,7 @@ def post_call_analytics_settings(self) -> Optional['outputs.MediaInsightsPipelin @pulumi.getter(name="vocabularyFilterMethod") def vocabulary_filter_method(self) -> Optional[str]: """ - Method for applying a vocabulary filter to Utterance events. + Method for applying a vocabulary filter to Transcript events. """ return pulumi.get(self, "vocabulary_filter_method") @@ -363,7 +471,7 @@ def vocabulary_filter_method(self) -> Optional[str]: @pulumi.getter(name="vocabularyFilterName") def vocabulary_filter_name(self) -> Optional[str]: """ - Name of the custom vocabulary filter to use when processing Utterance events. + Name of the custom vocabulary filter to use when processing Transcript events. """ return pulumi.get(self, "vocabulary_filter_name") @@ -371,7 +479,7 @@ def vocabulary_filter_name(self) -> Optional[str]: @pulumi.getter(name="vocabularyName") def vocabulary_name(self) -> Optional[str]: """ - Name of the custom vocabulary to use when processing Utterance events. + Name of the custom vocabulary to use when processing Transcript events. """ return pulumi.get(self, "vocabulary_name") @@ -412,12 +520,41 @@ def __init__(__self__, *, :param str content_redaction_output: Should output be redacted. :param str output_encryption_kms_key_id: ID of the KMS key used to encrypt the output. """ - pulumi.set(__self__, "data_access_role_arn", data_access_role_arn) - pulumi.set(__self__, "output_location", output_location) + MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_access_role_arn=data_access_role_arn, + output_location=output_location, + content_redaction_output=content_redaction_output, + output_encryption_kms_key_id=output_encryption_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_access_role_arn: Optional[str] = None, + output_location: Optional[str] = None, + content_redaction_output: Optional[str] = None, + output_encryption_kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_access_role_arn is None and 'dataAccessRoleArn' in kwargs: + data_access_role_arn = kwargs['dataAccessRoleArn'] + if data_access_role_arn is None: + raise TypeError("Missing 'data_access_role_arn' argument") + if output_location is None and 'outputLocation' in kwargs: + output_location = kwargs['outputLocation'] + if output_location is None: + raise TypeError("Missing 'output_location' argument") + if content_redaction_output is None and 'contentRedactionOutput' in kwargs: + content_redaction_output = kwargs['contentRedactionOutput'] + if output_encryption_kms_key_id is None and 'outputEncryptionKmsKeyId' in kwargs: + output_encryption_kms_key_id = kwargs['outputEncryptionKmsKeyId'] + + _setter("data_access_role_arn", data_access_role_arn) + _setter("output_location", output_location) if content_redaction_output is not None: - pulumi.set(__self__, "content_redaction_output", content_redaction_output) + _setter("content_redaction_output", content_redaction_output) if output_encryption_kms_key_id is not None: - pulumi.set(__self__, "output_encryption_kms_key_id", output_encryption_kms_key_id) + _setter("output_encryption_kms_key_id", output_encryption_kms_key_id) @property @pulumi.getter(name="dataAccessRoleArn") @@ -508,41 +645,100 @@ def __init__(__self__, *, vocabulary_name: Optional[str] = None): """ :param str language_code: Language code for the transcription model. - :param str content_identification_type: Labels all personally identifiable information (PII) identified in Utterance events. - :param str content_redaction_type: Redacts all personally identifiable information (PII) identified in Utterance events. - :param bool enable_partial_results_stabilization: Enables partial result stabilization in Utterance events. + :param str content_identification_type: Labels all personally identifiable information (PII) identified in Transcript events. + :param str content_redaction_type: Redacts all personally identifiable information (PII) identified in Transcript events. + :param bool enable_partial_results_stabilization: Enables partial result stabilization in Transcript events. :param bool filter_partial_results: Filters partial Utterance events from delivery to the insights target. :param str language_model_name: Name of custom language model for transcription. :param str partial_results_stability: Level of stability to use when partial results stabilization is enabled. - :param str pii_entity_types: Types of personally identifiable information (PII) to redact from an Utterance event. + :param str pii_entity_types: Types of personally identifiable information (PII) to redact from a Transcript event. :param bool show_speaker_label: Enables speaker partitioning (diarization) in your Transcript events. - :param str vocabulary_filter_method: Method for applying a vocabulary filter to Utterance events. - :param str vocabulary_filter_name: Name of the custom vocabulary filter to use when processing Utterance events. - :param str vocabulary_name: Name of the custom vocabulary to use when processing Utterance events. - """ - pulumi.set(__self__, "language_code", language_code) + :param str vocabulary_filter_method: Method for applying a vocabulary filter to Transcript events. + :param str vocabulary_filter_name: Name of the custom vocabulary filter to use when processing Transcript events. + :param str vocabulary_name: Name of the custom vocabulary to use when processing Transcript events. + """ + MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + language_code=language_code, + content_identification_type=content_identification_type, + content_redaction_type=content_redaction_type, + enable_partial_results_stabilization=enable_partial_results_stabilization, + filter_partial_results=filter_partial_results, + language_model_name=language_model_name, + partial_results_stability=partial_results_stability, + pii_entity_types=pii_entity_types, + show_speaker_label=show_speaker_label, + vocabulary_filter_method=vocabulary_filter_method, + vocabulary_filter_name=vocabulary_filter_name, + vocabulary_name=vocabulary_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + language_code: Optional[str] = None, + content_identification_type: Optional[str] = None, + content_redaction_type: Optional[str] = None, + enable_partial_results_stabilization: Optional[bool] = None, + filter_partial_results: Optional[bool] = None, + language_model_name: Optional[str] = None, + partial_results_stability: Optional[str] = None, + pii_entity_types: Optional[str] = None, + show_speaker_label: Optional[bool] = None, + vocabulary_filter_method: Optional[str] = None, + vocabulary_filter_name: Optional[str] = None, + vocabulary_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if content_identification_type is None and 'contentIdentificationType' in kwargs: + content_identification_type = kwargs['contentIdentificationType'] + if content_redaction_type is None and 'contentRedactionType' in kwargs: + content_redaction_type = kwargs['contentRedactionType'] + if enable_partial_results_stabilization is None and 'enablePartialResultsStabilization' in kwargs: + enable_partial_results_stabilization = kwargs['enablePartialResultsStabilization'] + if filter_partial_results is None and 'filterPartialResults' in kwargs: + filter_partial_results = kwargs['filterPartialResults'] + if language_model_name is None and 'languageModelName' in kwargs: + language_model_name = kwargs['languageModelName'] + if partial_results_stability is None and 'partialResultsStability' in kwargs: + partial_results_stability = kwargs['partialResultsStability'] + if pii_entity_types is None and 'piiEntityTypes' in kwargs: + pii_entity_types = kwargs['piiEntityTypes'] + if show_speaker_label is None and 'showSpeakerLabel' in kwargs: + show_speaker_label = kwargs['showSpeakerLabel'] + if vocabulary_filter_method is None and 'vocabularyFilterMethod' in kwargs: + vocabulary_filter_method = kwargs['vocabularyFilterMethod'] + if vocabulary_filter_name is None and 'vocabularyFilterName' in kwargs: + vocabulary_filter_name = kwargs['vocabularyFilterName'] + if vocabulary_name is None and 'vocabularyName' in kwargs: + vocabulary_name = kwargs['vocabularyName'] + + _setter("language_code", language_code) if content_identification_type is not None: - pulumi.set(__self__, "content_identification_type", content_identification_type) + _setter("content_identification_type", content_identification_type) if content_redaction_type is not None: - pulumi.set(__self__, "content_redaction_type", content_redaction_type) + _setter("content_redaction_type", content_redaction_type) if enable_partial_results_stabilization is not None: - pulumi.set(__self__, "enable_partial_results_stabilization", enable_partial_results_stabilization) + _setter("enable_partial_results_stabilization", enable_partial_results_stabilization) if filter_partial_results is not None: - pulumi.set(__self__, "filter_partial_results", filter_partial_results) + _setter("filter_partial_results", filter_partial_results) if language_model_name is not None: - pulumi.set(__self__, "language_model_name", language_model_name) + _setter("language_model_name", language_model_name) if partial_results_stability is not None: - pulumi.set(__self__, "partial_results_stability", partial_results_stability) + _setter("partial_results_stability", partial_results_stability) if pii_entity_types is not None: - pulumi.set(__self__, "pii_entity_types", pii_entity_types) + _setter("pii_entity_types", pii_entity_types) if show_speaker_label is not None: - pulumi.set(__self__, "show_speaker_label", show_speaker_label) + _setter("show_speaker_label", show_speaker_label) if vocabulary_filter_method is not None: - pulumi.set(__self__, "vocabulary_filter_method", vocabulary_filter_method) + _setter("vocabulary_filter_method", vocabulary_filter_method) if vocabulary_filter_name is not None: - pulumi.set(__self__, "vocabulary_filter_name", vocabulary_filter_name) + _setter("vocabulary_filter_name", vocabulary_filter_name) if vocabulary_name is not None: - pulumi.set(__self__, "vocabulary_name", vocabulary_name) + _setter("vocabulary_name", vocabulary_name) @property @pulumi.getter(name="languageCode") @@ -556,7 +752,7 @@ def language_code(self) -> str: @pulumi.getter(name="contentIdentificationType") def content_identification_type(self) -> Optional[str]: """ - Labels all personally identifiable information (PII) identified in Utterance events. + Labels all personally identifiable information (PII) identified in Transcript events. """ return pulumi.get(self, "content_identification_type") @@ -564,7 +760,7 @@ def content_identification_type(self) -> Optional[str]: @pulumi.getter(name="contentRedactionType") def content_redaction_type(self) -> Optional[str]: """ - Redacts all personally identifiable information (PII) identified in Utterance events. + Redacts all personally identifiable information (PII) identified in Transcript events. """ return pulumi.get(self, "content_redaction_type") @@ -572,7 +768,7 @@ def content_redaction_type(self) -> Optional[str]: @pulumi.getter(name="enablePartialResultsStabilization") def enable_partial_results_stabilization(self) -> Optional[bool]: """ - Enables partial result stabilization in Utterance events. + Enables partial result stabilization in Transcript events. """ return pulumi.get(self, "enable_partial_results_stabilization") @@ -604,7 +800,7 @@ def partial_results_stability(self) -> Optional[str]: @pulumi.getter(name="piiEntityTypes") def pii_entity_types(self) -> Optional[str]: """ - Types of personally identifiable information (PII) to redact from an Utterance event. + Types of personally identifiable information (PII) to redact from a Transcript event. """ return pulumi.get(self, "pii_entity_types") @@ -620,7 +816,7 @@ def show_speaker_label(self) -> Optional[bool]: @pulumi.getter(name="vocabularyFilterMethod") def vocabulary_filter_method(self) -> Optional[str]: """ - Method for applying a vocabulary filter to Utterance events. + Method for applying a vocabulary filter to Transcript events. """ return pulumi.get(self, "vocabulary_filter_method") @@ -628,7 +824,7 @@ def vocabulary_filter_method(self) -> Optional[str]: @pulumi.getter(name="vocabularyFilterName") def vocabulary_filter_name(self) -> Optional[str]: """ - Name of the custom vocabulary filter to use when processing Utterance events. + Name of the custom vocabulary filter to use when processing Transcript events. """ return pulumi.get(self, "vocabulary_filter_name") @@ -636,7 +832,7 @@ def vocabulary_filter_name(self) -> Optional[str]: @pulumi.getter(name="vocabularyName") def vocabulary_name(self) -> Optional[str]: """ - Name of the custom vocabulary to use when processing Utterance events. + Name of the custom vocabulary to use when processing Transcript events. """ return pulumi.get(self, "vocabulary_name") @@ -663,15 +859,30 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, insights_target: str): """ - :param str insights_target: Kinesis Data Stream to deliver results. + :param str insights_target: SQS queue to deliver results. """ - pulumi.set(__self__, "insights_target", insights_target) + MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_target=insights_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_target: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_target is None and 'insightsTarget' in kwargs: + insights_target = kwargs['insightsTarget'] + if insights_target is None: + raise TypeError("Missing 'insights_target' argument") + + _setter("insights_target", insights_target) @property @pulumi.getter(name="insightsTarget") def insights_target(self) -> str: """ - Kinesis Data Stream to deliver results. + SQS queue to deliver results. """ return pulumi.get(self, "insights_target") @@ -698,15 +909,30 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, insights_target: str): """ - :param str insights_target: Kinesis Data Stream to deliver results. + :param str insights_target: SQS queue to deliver results. """ - pulumi.set(__self__, "insights_target", insights_target) + MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_target=insights_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_target: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_target is None and 'insightsTarget' in kwargs: + insights_target = kwargs['insightsTarget'] + if insights_target is None: + raise TypeError("Missing 'insights_target' argument") + + _setter("insights_target", insights_target) @property @pulumi.getter(name="insightsTarget") def insights_target(self) -> str: """ - Kinesis Data Stream to deliver results. + SQS queue to deliver results. """ return pulumi.get(self, "insights_target") @@ -718,8 +944,19 @@ def __init__(__self__, *, """ :param str destination: S3 URI to deliver recordings. """ + MediaInsightsPipelineConfigurationElementS3RecordingSinkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) @property @pulumi.getter @@ -752,15 +989,30 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, insights_target: str): """ - :param str insights_target: Kinesis Data Stream to deliver results. + :param str insights_target: SQS queue to deliver results. """ - pulumi.set(__self__, "insights_target", insights_target) + MediaInsightsPipelineConfigurationElementSnsTopicSinkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_target=insights_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_target: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_target is None and 'insightsTarget' in kwargs: + insights_target = kwargs['insightsTarget'] + if insights_target is None: + raise TypeError("Missing 'insights_target' argument") + + _setter("insights_target", insights_target) @property @pulumi.getter(name="insightsTarget") def insights_target(self) -> str: """ - Kinesis Data Stream to deliver results. + SQS queue to deliver results. """ return pulumi.get(self, "insights_target") @@ -787,15 +1039,30 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, insights_target: str): """ - :param str insights_target: Kinesis Data Stream to deliver results. + :param str insights_target: SQS queue to deliver results. """ - pulumi.set(__self__, "insights_target", insights_target) + MediaInsightsPipelineConfigurationElementSqsQueueSinkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_target=insights_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_target: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_target is None and 'insightsTarget' in kwargs: + insights_target = kwargs['insightsTarget'] + if insights_target is None: + raise TypeError("Missing 'insights_target' argument") + + _setter("insights_target", insights_target) @property @pulumi.getter(name="insightsTarget") def insights_target(self) -> str: """ - Kinesis Data Stream to deliver results. + SQS queue to deliver results. """ return pulumi.get(self, "insights_target") @@ -828,8 +1095,29 @@ def __init__(__self__, *, :param str speaker_search_status: Enable speaker search. :param str voice_tone_analysis_status: Enable voice tone analysis. """ - pulumi.set(__self__, "speaker_search_status", speaker_search_status) - pulumi.set(__self__, "voice_tone_analysis_status", voice_tone_analysis_status) + MediaInsightsPipelineConfigurationElementVoiceAnalyticsProcessorConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + speaker_search_status=speaker_search_status, + voice_tone_analysis_status=voice_tone_analysis_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + speaker_search_status: Optional[str] = None, + voice_tone_analysis_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if speaker_search_status is None and 'speakerSearchStatus' in kwargs: + speaker_search_status = kwargs['speakerSearchStatus'] + if speaker_search_status is None: + raise TypeError("Missing 'speaker_search_status' argument") + if voice_tone_analysis_status is None and 'voiceToneAnalysisStatus' in kwargs: + voice_tone_analysis_status = kwargs['voiceToneAnalysisStatus'] + if voice_tone_analysis_status is None: + raise TypeError("Missing 'voice_tone_analysis_status' argument") + + _setter("speaker_search_status", speaker_search_status) + _setter("voice_tone_analysis_status", voice_tone_analysis_status) @property @pulumi.getter(name="speakerSearchStatus") @@ -857,9 +1145,24 @@ def __init__(__self__, *, :param Sequence['MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs'] rules: Collection of real time alert rules :param bool disabled: Disables real time alert rules. """ - pulumi.set(__self__, "rules", rules) + MediaInsightsPipelineConfigurationRealTimeAlertConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules=rules, + disabled=disabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules: Optional[Sequence['outputs.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRule']] = None, + disabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("rules", rules) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) @property @pulumi.getter @@ -912,13 +1215,38 @@ def __init__(__self__, *, :param 'MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleKeywordMatchConfigurationArgs' keyword_match_configuration: Configuration for a keyword match rule. :param 'MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleSentimentConfigurationArgs' sentiment_configuration: Configuration for a sentiment rule. """ - pulumi.set(__self__, "type", type) + MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + issue_detection_configuration=issue_detection_configuration, + keyword_match_configuration=keyword_match_configuration, + sentiment_configuration=sentiment_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + issue_detection_configuration: Optional['outputs.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleIssueDetectionConfiguration'] = None, + keyword_match_configuration: Optional['outputs.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleKeywordMatchConfiguration'] = None, + sentiment_configuration: Optional['outputs.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleSentimentConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if issue_detection_configuration is None and 'issueDetectionConfiguration' in kwargs: + issue_detection_configuration = kwargs['issueDetectionConfiguration'] + if keyword_match_configuration is None and 'keywordMatchConfiguration' in kwargs: + keyword_match_configuration = kwargs['keywordMatchConfiguration'] + if sentiment_configuration is None and 'sentimentConfiguration' in kwargs: + sentiment_configuration = kwargs['sentimentConfiguration'] + + _setter("type", type) if issue_detection_configuration is not None: - pulumi.set(__self__, "issue_detection_configuration", issue_detection_configuration) + _setter("issue_detection_configuration", issue_detection_configuration) if keyword_match_configuration is not None: - pulumi.set(__self__, "keyword_match_configuration", keyword_match_configuration) + _setter("keyword_match_configuration", keyword_match_configuration) if sentiment_configuration is not None: - pulumi.set(__self__, "sentiment_configuration", sentiment_configuration) + _setter("sentiment_configuration", sentiment_configuration) @property @pulumi.getter @@ -977,7 +1305,22 @@ def __init__(__self__, *, """ :param str rule_name: Rule name. """ - pulumi.set(__self__, "rule_name", rule_name) + MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleIssueDetectionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_name=rule_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if rule_name is None: + raise TypeError("Missing 'rule_name' argument") + + _setter("rule_name", rule_name) @property @pulumi.getter(name="ruleName") @@ -1016,10 +1359,31 @@ def __init__(__self__, *, :param str rule_name: Rule name. :param bool negate: Negate the rule. """ - pulumi.set(__self__, "keywords", keywords) - pulumi.set(__self__, "rule_name", rule_name) + MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleKeywordMatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + keywords=keywords, + rule_name=rule_name, + negate=negate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + keywords: Optional[Sequence[str]] = None, + rule_name: Optional[str] = None, + negate: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if keywords is None: + raise TypeError("Missing 'keywords' argument") + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if rule_name is None: + raise TypeError("Missing 'rule_name' argument") + + _setter("keywords", keywords) + _setter("rule_name", rule_name) if negate is not None: - pulumi.set(__self__, "negate", negate) + _setter("negate", negate) @property @pulumi.getter @@ -1078,9 +1442,36 @@ def __init__(__self__, *, :param str sentiment_type: Sentiment type to match. :param int time_period: Analysis interval. """ - pulumi.set(__self__, "rule_name", rule_name) - pulumi.set(__self__, "sentiment_type", sentiment_type) - pulumi.set(__self__, "time_period", time_period) + MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleSentimentConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_name=rule_name, + sentiment_type=sentiment_type, + time_period=time_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_name: Optional[str] = None, + sentiment_type: Optional[str] = None, + time_period: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if rule_name is None: + raise TypeError("Missing 'rule_name' argument") + if sentiment_type is None and 'sentimentType' in kwargs: + sentiment_type = kwargs['sentimentType'] + if sentiment_type is None: + raise TypeError("Missing 'sentiment_type' argument") + if time_period is None and 'timePeriod' in kwargs: + time_period = kwargs['timePeriod'] + if time_period is None: + raise TypeError("Missing 'time_period' argument") + + _setter("rule_name", rule_name) + _setter("sentiment_type", sentiment_type) + _setter("time_period", time_period) @property @pulumi.getter(name="ruleName") diff --git a/sdk/python/pulumi_aws/cleanrooms/_inputs.py b/sdk/python/pulumi_aws/cleanrooms/_inputs.py index 3394fec5c92..f68f5ba8fa9 100644 --- a/sdk/python/pulumi_aws/cleanrooms/_inputs.py +++ b/sdk/python/pulumi_aws/cleanrooms/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,10 +22,43 @@ def __init__(__self__, *, allow_duplicates: pulumi.Input[bool], allow_joins_on_columns_with_different_names: pulumi.Input[bool], preserve_nulls: pulumi.Input[bool]): - pulumi.set(__self__, "allow_clear_text", allow_clear_text) - pulumi.set(__self__, "allow_duplicates", allow_duplicates) - pulumi.set(__self__, "allow_joins_on_columns_with_different_names", allow_joins_on_columns_with_different_names) - pulumi.set(__self__, "preserve_nulls", preserve_nulls) + CollaborationDataEncryptionMetadataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_clear_text=allow_clear_text, + allow_duplicates=allow_duplicates, + allow_joins_on_columns_with_different_names=allow_joins_on_columns_with_different_names, + preserve_nulls=preserve_nulls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_clear_text: Optional[pulumi.Input[bool]] = None, + allow_duplicates: Optional[pulumi.Input[bool]] = None, + allow_joins_on_columns_with_different_names: Optional[pulumi.Input[bool]] = None, + preserve_nulls: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_clear_text is None and 'allowClearText' in kwargs: + allow_clear_text = kwargs['allowClearText'] + if allow_clear_text is None: + raise TypeError("Missing 'allow_clear_text' argument") + if allow_duplicates is None and 'allowDuplicates' in kwargs: + allow_duplicates = kwargs['allowDuplicates'] + if allow_duplicates is None: + raise TypeError("Missing 'allow_duplicates' argument") + if allow_joins_on_columns_with_different_names is None and 'allowJoinsOnColumnsWithDifferentNames' in kwargs: + allow_joins_on_columns_with_different_names = kwargs['allowJoinsOnColumnsWithDifferentNames'] + if allow_joins_on_columns_with_different_names is None: + raise TypeError("Missing 'allow_joins_on_columns_with_different_names' argument") + if preserve_nulls is None and 'preserveNulls' in kwargs: + preserve_nulls = kwargs['preserveNulls'] + if preserve_nulls is None: + raise TypeError("Missing 'preserve_nulls' argument") + + _setter("allow_clear_text", allow_clear_text) + _setter("allow_duplicates", allow_duplicates) + _setter("allow_joins_on_columns_with_different_names", allow_joins_on_columns_with_different_names) + _setter("preserve_nulls", preserve_nulls) @property @pulumi.getter(name="allowClearText") @@ -71,11 +104,40 @@ def __init__(__self__, *, display_name: pulumi.Input[str], member_abilities: pulumi.Input[Sequence[pulumi.Input[str]]], status: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "display_name", display_name) - pulumi.set(__self__, "member_abilities", member_abilities) + CollaborationMemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + display_name=display_name, + member_abilities=member_abilities, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + member_abilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if display_name is None: + raise TypeError("Missing 'display_name' argument") + if member_abilities is None and 'memberAbilities' in kwargs: + member_abilities = kwargs['memberAbilities'] + if member_abilities is None: + raise TypeError("Missing 'member_abilities' argument") + + _setter("account_id", account_id) + _setter("display_name", display_name) + _setter("member_abilities", member_abilities) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="accountId") @@ -119,8 +181,29 @@ class ConfiguredTableTableReferenceArgs: def __init__(__self__, *, database_name: pulumi.Input[str], table_name: pulumi.Input[str]): - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "table_name", table_name) + ConfiguredTableTableReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("database_name", database_name) + _setter("table_name", table_name) @property @pulumi.getter(name="databaseName") diff --git a/sdk/python/pulumi_aws/cleanrooms/collaboration.py b/sdk/python/pulumi_aws/cleanrooms/collaboration.py index 8db0fe41470..edfe44227b6 100644 --- a/sdk/python/pulumi_aws/cleanrooms/collaboration.py +++ b/sdk/python/pulumi_aws/cleanrooms/collaboration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,18 +47,59 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the collaboration. Collaboration names do not need to be unique. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key value pairs which tag the collaboration. """ - pulumi.set(__self__, "creator_display_name", creator_display_name) - pulumi.set(__self__, "creator_member_abilities", creator_member_abilities) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "query_log_status", query_log_status) + CollaborationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + creator_display_name=creator_display_name, + creator_member_abilities=creator_member_abilities, + description=description, + query_log_status=query_log_status, + data_encryption_metadata=data_encryption_metadata, + members=members, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creator_display_name: Optional[pulumi.Input[str]] = None, + creator_member_abilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + query_log_status: Optional[pulumi.Input[str]] = None, + data_encryption_metadata: Optional[pulumi.Input['CollaborationDataEncryptionMetadataArgs']] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input['CollaborationMemberArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creator_display_name is None and 'creatorDisplayName' in kwargs: + creator_display_name = kwargs['creatorDisplayName'] + if creator_display_name is None: + raise TypeError("Missing 'creator_display_name' argument") + if creator_member_abilities is None and 'creatorMemberAbilities' in kwargs: + creator_member_abilities = kwargs['creatorMemberAbilities'] + if creator_member_abilities is None: + raise TypeError("Missing 'creator_member_abilities' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if query_log_status is None and 'queryLogStatus' in kwargs: + query_log_status = kwargs['queryLogStatus'] + if query_log_status is None: + raise TypeError("Missing 'query_log_status' argument") + if data_encryption_metadata is None and 'dataEncryptionMetadata' in kwargs: + data_encryption_metadata = kwargs['dataEncryptionMetadata'] + + _setter("creator_display_name", creator_display_name) + _setter("creator_member_abilities", creator_member_abilities) + _setter("description", description) + _setter("query_log_status", query_log_status) if data_encryption_metadata is not None: - pulumi.set(__self__, "data_encryption_metadata", data_encryption_metadata) + _setter("data_encryption_metadata", data_encryption_metadata) if members is not None: - pulumi.set(__self__, "members", members) + _setter("members", members) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="creatorDisplayName") @@ -210,33 +251,80 @@ def __init__(__self__, *, emberships. Valid values [may be found here](https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html#API-CreateCollaboration-request-queryLogStatus). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key value pairs which tag the collaboration. """ + _CollaborationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + create_time=create_time, + creator_display_name=creator_display_name, + creator_member_abilities=creator_member_abilities, + data_encryption_metadata=data_encryption_metadata, + description=description, + members=members, + name=name, + query_log_status=query_log_status, + tags=tags, + tags_all=tags_all, + update_time=update_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + creator_display_name: Optional[pulumi.Input[str]] = None, + creator_member_abilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + data_encryption_metadata: Optional[pulumi.Input['CollaborationDataEncryptionMetadataArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input['CollaborationMemberArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + query_log_status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if creator_display_name is None and 'creatorDisplayName' in kwargs: + creator_display_name = kwargs['creatorDisplayName'] + if creator_member_abilities is None and 'creatorMemberAbilities' in kwargs: + creator_member_abilities = kwargs['creatorMemberAbilities'] + if data_encryption_metadata is None and 'dataEncryptionMetadata' in kwargs: + data_encryption_metadata = kwargs['dataEncryptionMetadata'] + if query_log_status is None and 'queryLogStatus' in kwargs: + query_log_status = kwargs['queryLogStatus'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_time is None and 'updateTime' in kwargs: + update_time = kwargs['updateTime'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if creator_display_name is not None: - pulumi.set(__self__, "creator_display_name", creator_display_name) + _setter("creator_display_name", creator_display_name) if creator_member_abilities is not None: - pulumi.set(__self__, "creator_member_abilities", creator_member_abilities) + _setter("creator_member_abilities", creator_member_abilities) if data_encryption_metadata is not None: - pulumi.set(__self__, "data_encryption_metadata", data_encryption_metadata) + _setter("data_encryption_metadata", data_encryption_metadata) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if members is not None: - pulumi.set(__self__, "members", members) + _setter("members", members) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if query_log_status is not None: - pulumi.set(__self__, "query_log_status", query_log_status) + _setter("query_log_status", query_log_status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if update_time is not None: - pulumi.set(__self__, "update_time", update_time) + _setter("update_time", update_time) @property @pulumi.getter @@ -532,6 +620,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CollaborationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -560,6 +652,7 @@ def _internal_init(__self__, if creator_member_abilities is None and not opts.urn: raise TypeError("Missing required property 'creator_member_abilities'") __props__.__dict__["creator_member_abilities"] = creator_member_abilities + data_encryption_metadata = _utilities.configure(data_encryption_metadata, CollaborationDataEncryptionMetadataArgs, True) __props__.__dict__["data_encryption_metadata"] = data_encryption_metadata if description is None and not opts.urn: raise TypeError("Missing required property 'description'") diff --git a/sdk/python/pulumi_aws/cleanrooms/configured_table.py b/sdk/python/pulumi_aws/cleanrooms/configured_table.py index 0ca4d7d98fd..0525e672be3 100644 --- a/sdk/python/pulumi_aws/cleanrooms/configured_table.py +++ b/sdk/python/pulumi_aws/cleanrooms/configured_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,15 +33,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the configured table. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key value pairs which tag the configured table. """ - pulumi.set(__self__, "allowed_columns", allowed_columns) - pulumi.set(__self__, "analysis_method", analysis_method) - pulumi.set(__self__, "table_reference", table_reference) + ConfiguredTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_columns=allowed_columns, + analysis_method=analysis_method, + table_reference=table_reference, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + analysis_method: Optional[pulumi.Input[str]] = None, + table_reference: Optional[pulumi.Input['ConfiguredTableTableReferenceArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_columns is None and 'allowedColumns' in kwargs: + allowed_columns = kwargs['allowedColumns'] + if allowed_columns is None: + raise TypeError("Missing 'allowed_columns' argument") + if analysis_method is None and 'analysisMethod' in kwargs: + analysis_method = kwargs['analysisMethod'] + if analysis_method is None: + raise TypeError("Missing 'analysis_method' argument") + if table_reference is None and 'tableReference' in kwargs: + table_reference = kwargs['tableReference'] + if table_reference is None: + raise TypeError("Missing 'table_reference' argument") + + _setter("allowed_columns", allowed_columns) + _setter("analysis_method", analysis_method) + _setter("table_reference", table_reference) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="allowedColumns") @@ -145,29 +178,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key value pairs which tag the configured table. :param pulumi.Input[str] update_time: The date and time the configured table was last updated. """ + _ConfiguredTableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_columns=allowed_columns, + analysis_method=analysis_method, + arn=arn, + create_time=create_time, + description=description, + name=name, + table_reference=table_reference, + tags=tags, + tags_all=tags_all, + update_time=update_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + analysis_method: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + table_reference: Optional[pulumi.Input['ConfiguredTableTableReferenceArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_columns is None and 'allowedColumns' in kwargs: + allowed_columns = kwargs['allowedColumns'] + if analysis_method is None and 'analysisMethod' in kwargs: + analysis_method = kwargs['analysisMethod'] + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if table_reference is None and 'tableReference' in kwargs: + table_reference = kwargs['tableReference'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_time is None and 'updateTime' in kwargs: + update_time = kwargs['updateTime'] + if allowed_columns is not None: - pulumi.set(__self__, "allowed_columns", allowed_columns) + _setter("allowed_columns", allowed_columns) if analysis_method is not None: - pulumi.set(__self__, "analysis_method", analysis_method) + _setter("analysis_method", analysis_method) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if table_reference is not None: - pulumi.set(__self__, "table_reference", table_reference) + _setter("table_reference", table_reference) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if update_time is not None: - pulumi.set(__self__, "update_time", update_time) + _setter("update_time", update_time) @property @pulumi.getter(name="allowedColumns") @@ -401,6 +475,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConfiguredTableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -429,6 +507,7 @@ def _internal_init(__self__, __props__.__dict__["analysis_method"] = analysis_method __props__.__dict__["description"] = description __props__.__dict__["name"] = name + table_reference = _utilities.configure(table_reference, ConfiguredTableTableReferenceArgs, True) if table_reference is None and not opts.urn: raise TypeError("Missing required property 'table_reference'") __props__.__dict__["table_reference"] = table_reference diff --git a/sdk/python/pulumi_aws/cleanrooms/outputs.py b/sdk/python/pulumi_aws/cleanrooms/outputs.py index f9722b7000c..70f9114abd7 100644 --- a/sdk/python/pulumi_aws/cleanrooms/outputs.py +++ b/sdk/python/pulumi_aws/cleanrooms/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -45,10 +45,43 @@ def __init__(__self__, *, allow_duplicates: bool, allow_joins_on_columns_with_different_names: bool, preserve_nulls: bool): - pulumi.set(__self__, "allow_clear_text", allow_clear_text) - pulumi.set(__self__, "allow_duplicates", allow_duplicates) - pulumi.set(__self__, "allow_joins_on_columns_with_different_names", allow_joins_on_columns_with_different_names) - pulumi.set(__self__, "preserve_nulls", preserve_nulls) + CollaborationDataEncryptionMetadata._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_clear_text=allow_clear_text, + allow_duplicates=allow_duplicates, + allow_joins_on_columns_with_different_names=allow_joins_on_columns_with_different_names, + preserve_nulls=preserve_nulls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_clear_text: Optional[bool] = None, + allow_duplicates: Optional[bool] = None, + allow_joins_on_columns_with_different_names: Optional[bool] = None, + preserve_nulls: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_clear_text is None and 'allowClearText' in kwargs: + allow_clear_text = kwargs['allowClearText'] + if allow_clear_text is None: + raise TypeError("Missing 'allow_clear_text' argument") + if allow_duplicates is None and 'allowDuplicates' in kwargs: + allow_duplicates = kwargs['allowDuplicates'] + if allow_duplicates is None: + raise TypeError("Missing 'allow_duplicates' argument") + if allow_joins_on_columns_with_different_names is None and 'allowJoinsOnColumnsWithDifferentNames' in kwargs: + allow_joins_on_columns_with_different_names = kwargs['allowJoinsOnColumnsWithDifferentNames'] + if allow_joins_on_columns_with_different_names is None: + raise TypeError("Missing 'allow_joins_on_columns_with_different_names' argument") + if preserve_nulls is None and 'preserveNulls' in kwargs: + preserve_nulls = kwargs['preserveNulls'] + if preserve_nulls is None: + raise TypeError("Missing 'preserve_nulls' argument") + + _setter("allow_clear_text", allow_clear_text) + _setter("allow_duplicates", allow_duplicates) + _setter("allow_joins_on_columns_with_different_names", allow_joins_on_columns_with_different_names) + _setter("preserve_nulls", preserve_nulls) @property @pulumi.getter(name="allowClearText") @@ -99,11 +132,40 @@ def __init__(__self__, *, display_name: str, member_abilities: Sequence[str], status: Optional[str] = None): - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "display_name", display_name) - pulumi.set(__self__, "member_abilities", member_abilities) + CollaborationMember._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + display_name=display_name, + member_abilities=member_abilities, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + display_name: Optional[str] = None, + member_abilities: Optional[Sequence[str]] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if display_name is None: + raise TypeError("Missing 'display_name' argument") + if member_abilities is None and 'memberAbilities' in kwargs: + member_abilities = kwargs['memberAbilities'] + if member_abilities is None: + raise TypeError("Missing 'member_abilities' argument") + + _setter("account_id", account_id) + _setter("display_name", display_name) + _setter("member_abilities", member_abilities) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="accountId") @@ -150,8 +212,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, database_name: str, table_name: str): - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "table_name", table_name) + ConfiguredTableTableReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + table_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("database_name", database_name) + _setter("table_name", table_name) @property @pulumi.getter(name="databaseName") diff --git a/sdk/python/pulumi_aws/cloud9/environment_ec2.py b/sdk/python/pulumi_aws/cloud9/environment_ec2.py index c44b4d45876..d5e53cb3da5 100644 --- a/sdk/python/pulumi_aws/cloud9/environment_ec2.py +++ b/sdk/python/pulumi_aws/cloud9/environment_ec2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EnvironmentEC2Args', 'EnvironmentEC2'] @@ -43,23 +43,64 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_id: The ID of the subnet in Amazon VPC that AWS Cloud9 will use to communicate with the Amazon EC2 instance. :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. """ - pulumi.set(__self__, "instance_type", instance_type) + EnvironmentEC2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + automatic_stop_time_minutes=automatic_stop_time_minutes, + connection_type=connection_type, + description=description, + image_id=image_id, + name=name, + owner_arn=owner_arn, + subnet_id=subnet_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + automatic_stop_time_minutes: Optional[pulumi.Input[int]] = None, + connection_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + image_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_arn: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if automatic_stop_time_minutes is None and 'automaticStopTimeMinutes' in kwargs: + automatic_stop_time_minutes = kwargs['automaticStopTimeMinutes'] + if connection_type is None and 'connectionType' in kwargs: + connection_type = kwargs['connectionType'] + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if owner_arn is None and 'ownerArn' in kwargs: + owner_arn = kwargs['ownerArn'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + + _setter("instance_type", instance_type) if automatic_stop_time_minutes is not None: - pulumi.set(__self__, "automatic_stop_time_minutes", automatic_stop_time_minutes) + _setter("automatic_stop_time_minutes", automatic_stop_time_minutes) if connection_type is not None: - pulumi.set(__self__, "connection_type", connection_type) + _setter("connection_type", connection_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if image_id is not None: - pulumi.set(__self__, "image_id", image_id) + _setter("image_id", image_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_arn is not None: - pulumi.set(__self__, "owner_arn", owner_arn) + _setter("owner_arn", owner_arn) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="instanceType") @@ -216,33 +257,80 @@ def __init__(__self__, *, :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] type: The type of the environment (e.g., `ssh` or `ec2`) """ + _EnvironmentEC2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + automatic_stop_time_minutes=automatic_stop_time_minutes, + connection_type=connection_type, + description=description, + image_id=image_id, + instance_type=instance_type, + name=name, + owner_arn=owner_arn, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + automatic_stop_time_minutes: Optional[pulumi.Input[int]] = None, + connection_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + image_id: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_arn: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automatic_stop_time_minutes is None and 'automaticStopTimeMinutes' in kwargs: + automatic_stop_time_minutes = kwargs['automaticStopTimeMinutes'] + if connection_type is None and 'connectionType' in kwargs: + connection_type = kwargs['connectionType'] + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if owner_arn is None and 'ownerArn' in kwargs: + owner_arn = kwargs['ownerArn'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if automatic_stop_time_minutes is not None: - pulumi.set(__self__, "automatic_stop_time_minutes", automatic_stop_time_minutes) + _setter("automatic_stop_time_minutes", automatic_stop_time_minutes) if connection_type is not None: - pulumi.set(__self__, "connection_type", connection_type) + _setter("connection_type", connection_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if image_id is not None: - pulumi.set(__self__, "image_id", image_id) + _setter("image_id", image_id) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_arn is not None: - pulumi.set(__self__, "owner_arn", owner_arn) + _setter("owner_arn", owner_arn) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -541,6 +629,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EnvironmentEC2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloud9/environment_membership.py b/sdk/python/pulumi_aws/cloud9/environment_membership.py index 78b050f122e..620867c8421 100644 --- a/sdk/python/pulumi_aws/cloud9/environment_membership.py +++ b/sdk/python/pulumi_aws/cloud9/environment_membership.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EnvironmentMembershipArgs', 'EnvironmentMembership'] @@ -23,9 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[str] permissions: The type of environment member permissions you want to associate with this environment member. Allowed values are `read-only` and `read-write` . :param pulumi.Input[str] user_arn: The Amazon Resource Name (ARN) of the environment member you want to add. """ - pulumi.set(__self__, "environment_id", environment_id) - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "user_arn", user_arn) + EnvironmentMembershipArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + environment_id=environment_id, + permissions=permissions, + user_arn=user_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + environment_id: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[str]] = None, + user_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if environment_id is None: + raise TypeError("Missing 'environment_id' argument") + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if user_arn is None and 'userArn' in kwargs: + user_arn = kwargs['userArn'] + if user_arn is None: + raise TypeError("Missing 'user_arn' argument") + + _setter("environment_id", environment_id) + _setter("permissions", permissions) + _setter("user_arn", user_arn) @property @pulumi.getter(name="environmentId") @@ -78,14 +103,37 @@ def __init__(__self__, *, :param pulumi.Input[str] user_arn: The Amazon Resource Name (ARN) of the environment member you want to add. :param pulumi.Input[str] user_id: he user ID in AWS Identity and Access Management (AWS IAM) of the environment member. """ + _EnvironmentMembershipState._configure( + lambda key, value: pulumi.set(__self__, key, value), + environment_id=environment_id, + permissions=permissions, + user_arn=user_arn, + user_id=user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + environment_id: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[str]] = None, + user_arn: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if user_arn is None and 'userArn' in kwargs: + user_arn = kwargs['userArn'] + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if environment_id is not None: - pulumi.set(__self__, "environment_id", environment_id) + _setter("environment_id", environment_id) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if user_arn is not None: - pulumi.set(__self__, "user_arn", user_arn) + _setter("user_arn", user_arn) if user_id is not None: - pulumi.set(__self__, "user_id", user_id) + _setter("user_id", user_id) @property @pulumi.getter(name="environmentId") @@ -217,6 +265,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EnvironmentMembershipArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudcontrol/get_resource.py b/sdk/python/pulumi_aws/cloudcontrol/get_resource.py index 9794d1e98f5..3d99e9038de 100644 --- a/sdk/python/pulumi_aws/cloudcontrol/get_resource.py +++ b/sdk/python/pulumi_aws/cloudcontrol/get_resource.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudcontrol/resource.py b/sdk/python/pulumi_aws/cloudcontrol/resource.py index 4ce0ce7cde8..e6aef41b4a0 100644 --- a/sdk/python/pulumi_aws/cloudcontrol/resource.py +++ b/sdk/python/pulumi_aws/cloudcontrol/resource.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourceArgs', 'Resource'] @@ -29,14 +29,45 @@ def __init__(__self__, *, :param pulumi.Input[str] schema: JSON string of the CloudFormation resource type schema which is used for plan time validation where possible. Automatically fetched if not provided. In large scale environments with multiple resources using the same `type_name`, it is recommended to fetch the schema once via the `cloudformation.CloudFormationType` data source and use this argument to reduce `DescribeType` API operation throttling. This value is marked sensitive only to prevent large plan differences from showing. :param pulumi.Input[str] type_version_id: Identifier of the CloudFormation resource type version. """ - pulumi.set(__self__, "desired_state", desired_state) - pulumi.set(__self__, "type_name", type_name) + ResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_state=desired_state, + type_name=type_name, + role_arn=role_arn, + schema=schema, + type_version_id=type_version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_state: Optional[pulumi.Input[str]] = None, + type_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input[str]] = None, + type_version_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if desired_state is None: + raise TypeError("Missing 'desired_state' argument") + if type_name is None and 'typeName' in kwargs: + type_name = kwargs['typeName'] + if type_name is None: + raise TypeError("Missing 'type_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if type_version_id is None and 'typeVersionId' in kwargs: + type_version_id = kwargs['typeVersionId'] + + _setter("desired_state", desired_state) + _setter("type_name", type_name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) if type_version_id is not None: - pulumi.set(__self__, "type_version_id", type_version_id) + _setter("type_version_id", type_version_id) @property @pulumi.getter(name="desiredState") @@ -121,18 +152,47 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] type_version_id: Identifier of the CloudFormation resource type version. """ + _ResourceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_state=desired_state, + properties=properties, + role_arn=role_arn, + schema=schema, + type_name=type_name, + type_version_id=type_version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_state: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input[str]] = None, + type_name: Optional[pulumi.Input[str]] = None, + type_version_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if type_name is None and 'typeName' in kwargs: + type_name = kwargs['typeName'] + if type_version_id is None and 'typeVersionId' in kwargs: + type_version_id = kwargs['typeVersionId'] + if desired_state is not None: - pulumi.set(__self__, "desired_state", desired_state) + _setter("desired_state", desired_state) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) if type_name is not None: - pulumi.set(__self__, "type_name", type_name) + _setter("type_name", type_name) if type_version_id is not None: - pulumi.set(__self__, "type_version_id", type_version_id) + _setter("type_version_id", type_version_id) @property @pulumi.getter(name="desiredState") @@ -288,6 +348,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudformation/_inputs.py b/sdk/python/pulumi_aws/cloudformation/_inputs.py index 142d28a1e47..865236ad820 100644 --- a/sdk/python/pulumi_aws/cloudformation/_inputs.py +++ b/sdk/python/pulumi_aws/cloudformation/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,8 +28,29 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_name: Name of the CloudWatch Log Group where CloudFormation sends error logging information when invoking the type's handlers. :param pulumi.Input[str] log_role_arn: Amazon Resource Name (ARN) of the IAM Role CloudFormation assumes when sending error logging information to CloudWatch Logs. """ - pulumi.set(__self__, "log_group_name", log_group_name) - pulumi.set(__self__, "log_role_arn", log_role_arn) + CloudFormationTypeLoggingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + log_role_arn=log_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + log_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if log_role_arn is None and 'logRoleArn' in kwargs: + log_role_arn = kwargs['logRoleArn'] + if log_role_arn is None: + raise TypeError("Missing 'log_role_arn' argument") + + _setter("log_group_name", log_group_name) + _setter("log_role_arn", log_role_arn) @property @pulumi.getter(name="logGroupName") @@ -65,10 +86,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Whether or not auto-deployment is enabled. :param pulumi.Input[bool] retain_stacks_on_account_removal: Whether or not to retain stacks when the account is removed. """ + StackSetAutoDeploymentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + retain_stacks_on_account_removal=retain_stacks_on_account_removal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + retain_stacks_on_account_removal: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if retain_stacks_on_account_removal is None and 'retainStacksOnAccountRemoval' in kwargs: + retain_stacks_on_account_removal = kwargs['retainStacksOnAccountRemoval'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if retain_stacks_on_account_removal is not None: - pulumi.set(__self__, "retain_stacks_on_account_removal", retain_stacks_on_account_removal) + _setter("retain_stacks_on_account_removal", retain_stacks_on_account_removal) @property @pulumi.getter @@ -102,8 +138,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] organizational_unit_ids: The organization root ID or organizational unit (OU) IDs to which StackSets deploys. """ + StackSetInstanceDeploymentTargetsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + organizational_unit_ids=organizational_unit_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + organizational_unit_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if organizational_unit_ids is None and 'organizationalUnitIds' in kwargs: + organizational_unit_ids = kwargs['organizationalUnitIds'] + if organizational_unit_ids is not None: - pulumi.set(__self__, "organizational_unit_ids", organizational_unit_ids) + _setter("organizational_unit_ids", organizational_unit_ids) @property @pulumi.getter(name="organizationalUnitIds") @@ -135,18 +184,51 @@ def __init__(__self__, *, :param pulumi.Input[str] region_concurrency_type: The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time. Valid values are `SEQUENTIAL` and `PARALLEL`. :param pulumi.Input[Sequence[pulumi.Input[str]]] region_orders: The order of the Regions in where you want to perform the stack operation. """ + StackSetInstanceOperationPreferencesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_tolerance_count=failure_tolerance_count, + failure_tolerance_percentage=failure_tolerance_percentage, + max_concurrent_count=max_concurrent_count, + max_concurrent_percentage=max_concurrent_percentage, + region_concurrency_type=region_concurrency_type, + region_orders=region_orders, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_tolerance_count: Optional[pulumi.Input[int]] = None, + failure_tolerance_percentage: Optional[pulumi.Input[int]] = None, + max_concurrent_count: Optional[pulumi.Input[int]] = None, + max_concurrent_percentage: Optional[pulumi.Input[int]] = None, + region_concurrency_type: Optional[pulumi.Input[str]] = None, + region_orders: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_tolerance_count is None and 'failureToleranceCount' in kwargs: + failure_tolerance_count = kwargs['failureToleranceCount'] + if failure_tolerance_percentage is None and 'failureTolerancePercentage' in kwargs: + failure_tolerance_percentage = kwargs['failureTolerancePercentage'] + if max_concurrent_count is None and 'maxConcurrentCount' in kwargs: + max_concurrent_count = kwargs['maxConcurrentCount'] + if max_concurrent_percentage is None and 'maxConcurrentPercentage' in kwargs: + max_concurrent_percentage = kwargs['maxConcurrentPercentage'] + if region_concurrency_type is None and 'regionConcurrencyType' in kwargs: + region_concurrency_type = kwargs['regionConcurrencyType'] + if region_orders is None and 'regionOrders' in kwargs: + region_orders = kwargs['regionOrders'] + if failure_tolerance_count is not None: - pulumi.set(__self__, "failure_tolerance_count", failure_tolerance_count) + _setter("failure_tolerance_count", failure_tolerance_count) if failure_tolerance_percentage is not None: - pulumi.set(__self__, "failure_tolerance_percentage", failure_tolerance_percentage) + _setter("failure_tolerance_percentage", failure_tolerance_percentage) if max_concurrent_count is not None: - pulumi.set(__self__, "max_concurrent_count", max_concurrent_count) + _setter("max_concurrent_count", max_concurrent_count) if max_concurrent_percentage is not None: - pulumi.set(__self__, "max_concurrent_percentage", max_concurrent_percentage) + _setter("max_concurrent_percentage", max_concurrent_percentage) if region_concurrency_type is not None: - pulumi.set(__self__, "region_concurrency_type", region_concurrency_type) + _setter("region_concurrency_type", region_concurrency_type) if region_orders is not None: - pulumi.set(__self__, "region_orders", region_orders) + _setter("region_orders", region_orders) @property @pulumi.getter(name="failureToleranceCount") @@ -232,12 +314,33 @@ def __init__(__self__, *, :param pulumi.Input[str] organizational_unit_id: Organizational unit ID in which the stack is deployed. :param pulumi.Input[str] stack_id: Stack identifier. """ + StackSetInstanceStackInstanceSummaryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + organizational_unit_id=organizational_unit_id, + stack_id=stack_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + organizational_unit_id: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if organizational_unit_id is None and 'organizationalUnitId' in kwargs: + organizational_unit_id = kwargs['organizationalUnitId'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if organizational_unit_id is not None: - pulumi.set(__self__, "organizational_unit_id", organizational_unit_id) + _setter("organizational_unit_id", organizational_unit_id) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) @property @pulumi.getter(name="accountId") @@ -283,8 +386,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] active: When set to true, StackSets performs non-conflicting operations concurrently and queues conflicting operations. After conflicting operations finish, StackSets starts queued operations in request order. Default is false. """ + StackSetManagedExecutionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + active=active, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active is not None: - pulumi.set(__self__, "active", active) + _setter("active", active) @property @pulumi.getter @@ -316,18 +430,51 @@ def __init__(__self__, *, :param pulumi.Input[str] region_concurrency_type: The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time. :param pulumi.Input[Sequence[pulumi.Input[str]]] region_orders: The order of the Regions in where you want to perform the stack operation. """ + StackSetOperationPreferencesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_tolerance_count=failure_tolerance_count, + failure_tolerance_percentage=failure_tolerance_percentage, + max_concurrent_count=max_concurrent_count, + max_concurrent_percentage=max_concurrent_percentage, + region_concurrency_type=region_concurrency_type, + region_orders=region_orders, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_tolerance_count: Optional[pulumi.Input[int]] = None, + failure_tolerance_percentage: Optional[pulumi.Input[int]] = None, + max_concurrent_count: Optional[pulumi.Input[int]] = None, + max_concurrent_percentage: Optional[pulumi.Input[int]] = None, + region_concurrency_type: Optional[pulumi.Input[str]] = None, + region_orders: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_tolerance_count is None and 'failureToleranceCount' in kwargs: + failure_tolerance_count = kwargs['failureToleranceCount'] + if failure_tolerance_percentage is None and 'failureTolerancePercentage' in kwargs: + failure_tolerance_percentage = kwargs['failureTolerancePercentage'] + if max_concurrent_count is None and 'maxConcurrentCount' in kwargs: + max_concurrent_count = kwargs['maxConcurrentCount'] + if max_concurrent_percentage is None and 'maxConcurrentPercentage' in kwargs: + max_concurrent_percentage = kwargs['maxConcurrentPercentage'] + if region_concurrency_type is None and 'regionConcurrencyType' in kwargs: + region_concurrency_type = kwargs['regionConcurrencyType'] + if region_orders is None and 'regionOrders' in kwargs: + region_orders = kwargs['regionOrders'] + if failure_tolerance_count is not None: - pulumi.set(__self__, "failure_tolerance_count", failure_tolerance_count) + _setter("failure_tolerance_count", failure_tolerance_count) if failure_tolerance_percentage is not None: - pulumi.set(__self__, "failure_tolerance_percentage", failure_tolerance_percentage) + _setter("failure_tolerance_percentage", failure_tolerance_percentage) if max_concurrent_count is not None: - pulumi.set(__self__, "max_concurrent_count", max_concurrent_count) + _setter("max_concurrent_count", max_concurrent_count) if max_concurrent_percentage is not None: - pulumi.set(__self__, "max_concurrent_percentage", max_concurrent_percentage) + _setter("max_concurrent_percentage", max_concurrent_percentage) if region_concurrency_type is not None: - pulumi.set(__self__, "region_concurrency_type", region_concurrency_type) + _setter("region_concurrency_type", region_concurrency_type) if region_orders is not None: - pulumi.set(__self__, "region_orders", region_orders) + _setter("region_orders", region_orders) @property @pulumi.getter(name="failureToleranceCount") diff --git a/sdk/python/pulumi_aws/cloudformation/cloud_formation_type.py b/sdk/python/pulumi_aws/cloudformation/cloud_formation_type.py index f92ee30224f..900aba27042 100644 --- a/sdk/python/pulumi_aws/cloudformation/cloud_formation_type.py +++ b/sdk/python/pulumi_aws/cloudformation/cloud_formation_type.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,45 @@ def __init__(__self__, *, :param pulumi.Input['CloudFormationTypeLoggingConfigArgs'] logging_config: Configuration block containing logging configuration. :param pulumi.Input[str] type: CloudFormation Registry Type. For example, `RESOURCE` or `MODULE`. """ - pulumi.set(__self__, "schema_handler_package", schema_handler_package) - pulumi.set(__self__, "type_name", type_name) + CloudFormationTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + schema_handler_package=schema_handler_package, + type_name=type_name, + execution_role_arn=execution_role_arn, + logging_config=logging_config, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schema_handler_package: Optional[pulumi.Input[str]] = None, + type_name: Optional[pulumi.Input[str]] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + logging_config: Optional[pulumi.Input['CloudFormationTypeLoggingConfigArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schema_handler_package is None and 'schemaHandlerPackage' in kwargs: + schema_handler_package = kwargs['schemaHandlerPackage'] + if schema_handler_package is None: + raise TypeError("Missing 'schema_handler_package' argument") + if type_name is None and 'typeName' in kwargs: + type_name = kwargs['typeName'] + if type_name is None: + raise TypeError("Missing 'type_name' argument") + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if logging_config is None and 'loggingConfig' in kwargs: + logging_config = kwargs['loggingConfig'] + + _setter("schema_handler_package", schema_handler_package) + _setter("type_name", type_name) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if logging_config is not None: - pulumi.set(__self__, "logging_config", logging_config) + _setter("logging_config", logging_config) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="schemaHandlerPackage") @@ -139,40 +170,107 @@ def __init__(__self__, *, :param pulumi.Input[str] version_id: (Optional) Identifier of the CloudFormation Type version. :param pulumi.Input[str] visibility: Scope of the CloudFormation Type. """ + _CloudFormationTypeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_version_id=default_version_id, + deprecated_status=deprecated_status, + description=description, + documentation_url=documentation_url, + execution_role_arn=execution_role_arn, + is_default_version=is_default_version, + logging_config=logging_config, + provisioning_type=provisioning_type, + schema=schema, + schema_handler_package=schema_handler_package, + source_url=source_url, + type=type, + type_arn=type_arn, + type_name=type_name, + version_id=version_id, + visibility=visibility, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_version_id: Optional[pulumi.Input[str]] = None, + deprecated_status: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + documentation_url: Optional[pulumi.Input[str]] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + is_default_version: Optional[pulumi.Input[bool]] = None, + logging_config: Optional[pulumi.Input['CloudFormationTypeLoggingConfigArgs']] = None, + provisioning_type: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input[str]] = None, + schema_handler_package: Optional[pulumi.Input[str]] = None, + source_url: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + type_arn: Optional[pulumi.Input[str]] = None, + type_name: Optional[pulumi.Input[str]] = None, + version_id: Optional[pulumi.Input[str]] = None, + visibility: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_version_id is None and 'defaultVersionId' in kwargs: + default_version_id = kwargs['defaultVersionId'] + if deprecated_status is None and 'deprecatedStatus' in kwargs: + deprecated_status = kwargs['deprecatedStatus'] + if documentation_url is None and 'documentationUrl' in kwargs: + documentation_url = kwargs['documentationUrl'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if is_default_version is None and 'isDefaultVersion' in kwargs: + is_default_version = kwargs['isDefaultVersion'] + if logging_config is None and 'loggingConfig' in kwargs: + logging_config = kwargs['loggingConfig'] + if provisioning_type is None and 'provisioningType' in kwargs: + provisioning_type = kwargs['provisioningType'] + if schema_handler_package is None and 'schemaHandlerPackage' in kwargs: + schema_handler_package = kwargs['schemaHandlerPackage'] + if source_url is None and 'sourceUrl' in kwargs: + source_url = kwargs['sourceUrl'] + if type_arn is None and 'typeArn' in kwargs: + type_arn = kwargs['typeArn'] + if type_name is None and 'typeName' in kwargs: + type_name = kwargs['typeName'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_version_id is not None: - pulumi.set(__self__, "default_version_id", default_version_id) + _setter("default_version_id", default_version_id) if deprecated_status is not None: - pulumi.set(__self__, "deprecated_status", deprecated_status) + _setter("deprecated_status", deprecated_status) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if documentation_url is not None: - pulumi.set(__self__, "documentation_url", documentation_url) + _setter("documentation_url", documentation_url) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if is_default_version is not None: - pulumi.set(__self__, "is_default_version", is_default_version) + _setter("is_default_version", is_default_version) if logging_config is not None: - pulumi.set(__self__, "logging_config", logging_config) + _setter("logging_config", logging_config) if provisioning_type is not None: - pulumi.set(__self__, "provisioning_type", provisioning_type) + _setter("provisioning_type", provisioning_type) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) if schema_handler_package is not None: - pulumi.set(__self__, "schema_handler_package", schema_handler_package) + _setter("schema_handler_package", schema_handler_package) if source_url is not None: - pulumi.set(__self__, "source_url", source_url) + _setter("source_url", source_url) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if type_arn is not None: - pulumi.set(__self__, "type_arn", type_arn) + _setter("type_arn", type_arn) if type_name is not None: - pulumi.set(__self__, "type_name", type_name) + _setter("type_name", type_name) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) if visibility is not None: - pulumi.set(__self__, "visibility", visibility) + _setter("visibility", visibility) @property @pulumi.getter @@ -468,6 +566,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CloudFormationTypeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -488,6 +590,7 @@ def _internal_init(__self__, __props__ = CloudFormationTypeArgs.__new__(CloudFormationTypeArgs) __props__.__dict__["execution_role_arn"] = execution_role_arn + logging_config = _utilities.configure(logging_config, CloudFormationTypeLoggingConfigArgs, True) __props__.__dict__["logging_config"] = logging_config if schema_handler_package is None and not opts.urn: raise TypeError("Missing required property 'schema_handler_package'") diff --git a/sdk/python/pulumi_aws/cloudformation/get_cloud_formation_type.py b/sdk/python/pulumi_aws/cloudformation/get_cloud_formation_type.py index 0155a2d8152..db4a8d08c96 100644 --- a/sdk/python/pulumi_aws/cloudformation/get_cloud_formation_type.py +++ b/sdk/python/pulumi_aws/cloudformation/get_cloud_formation_type.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/cloudformation/get_export.py b/sdk/python/pulumi_aws/cloudformation/get_export.py index 81c3b69c4a7..5d64cb5c68d 100644 --- a/sdk/python/pulumi_aws/cloudformation/get_export.py +++ b/sdk/python/pulumi_aws/cloudformation/get_export.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudformation/get_stack.py b/sdk/python/pulumi_aws/cloudformation/get_stack.py index 767ed061fa7..eeb04599cf4 100644 --- a/sdk/python/pulumi_aws/cloudformation/get_stack.py +++ b/sdk/python/pulumi_aws/cloudformation/get_stack.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudformation/outputs.py b/sdk/python/pulumi_aws/cloudformation/outputs.py index 870c2730116..cc9e9f9a584 100644 --- a/sdk/python/pulumi_aws/cloudformation/outputs.py +++ b/sdk/python/pulumi_aws/cloudformation/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -48,8 +48,29 @@ def __init__(__self__, *, :param str log_group_name: Name of the CloudWatch Log Group where CloudFormation sends error logging information when invoking the type's handlers. :param str log_role_arn: Amazon Resource Name (ARN) of the IAM Role CloudFormation assumes when sending error logging information to CloudWatch Logs. """ - pulumi.set(__self__, "log_group_name", log_group_name) - pulumi.set(__self__, "log_role_arn", log_role_arn) + CloudFormationTypeLoggingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + log_role_arn=log_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[str] = None, + log_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if log_role_arn is None and 'logRoleArn' in kwargs: + log_role_arn = kwargs['logRoleArn'] + if log_role_arn is None: + raise TypeError("Missing 'log_role_arn' argument") + + _setter("log_group_name", log_group_name) + _setter("log_role_arn", log_role_arn) @property @pulumi.getter(name="logGroupName") @@ -94,10 +115,25 @@ def __init__(__self__, *, :param bool enabled: Whether or not auto-deployment is enabled. :param bool retain_stacks_on_account_removal: Whether or not to retain stacks when the account is removed. """ + StackSetAutoDeployment._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + retain_stacks_on_account_removal=retain_stacks_on_account_removal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + retain_stacks_on_account_removal: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if retain_stacks_on_account_removal is None and 'retainStacksOnAccountRemoval' in kwargs: + retain_stacks_on_account_removal = kwargs['retainStacksOnAccountRemoval'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if retain_stacks_on_account_removal is not None: - pulumi.set(__self__, "retain_stacks_on_account_removal", retain_stacks_on_account_removal) + _setter("retain_stacks_on_account_removal", retain_stacks_on_account_removal) @property @pulumi.getter @@ -140,8 +176,21 @@ def __init__(__self__, *, """ :param Sequence[str] organizational_unit_ids: The organization root ID or organizational unit (OU) IDs to which StackSets deploys. """ + StackSetInstanceDeploymentTargets._configure( + lambda key, value: pulumi.set(__self__, key, value), + organizational_unit_ids=organizational_unit_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + organizational_unit_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if organizational_unit_ids is None and 'organizationalUnitIds' in kwargs: + organizational_unit_ids = kwargs['organizationalUnitIds'] + if organizational_unit_ids is not None: - pulumi.set(__self__, "organizational_unit_ids", organizational_unit_ids) + _setter("organizational_unit_ids", organizational_unit_ids) @property @pulumi.getter(name="organizationalUnitIds") @@ -196,18 +245,51 @@ def __init__(__self__, *, :param str region_concurrency_type: The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time. Valid values are `SEQUENTIAL` and `PARALLEL`. :param Sequence[str] region_orders: The order of the Regions in where you want to perform the stack operation. """ + StackSetInstanceOperationPreferences._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_tolerance_count=failure_tolerance_count, + failure_tolerance_percentage=failure_tolerance_percentage, + max_concurrent_count=max_concurrent_count, + max_concurrent_percentage=max_concurrent_percentage, + region_concurrency_type=region_concurrency_type, + region_orders=region_orders, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_tolerance_count: Optional[int] = None, + failure_tolerance_percentage: Optional[int] = None, + max_concurrent_count: Optional[int] = None, + max_concurrent_percentage: Optional[int] = None, + region_concurrency_type: Optional[str] = None, + region_orders: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_tolerance_count is None and 'failureToleranceCount' in kwargs: + failure_tolerance_count = kwargs['failureToleranceCount'] + if failure_tolerance_percentage is None and 'failureTolerancePercentage' in kwargs: + failure_tolerance_percentage = kwargs['failureTolerancePercentage'] + if max_concurrent_count is None and 'maxConcurrentCount' in kwargs: + max_concurrent_count = kwargs['maxConcurrentCount'] + if max_concurrent_percentage is None and 'maxConcurrentPercentage' in kwargs: + max_concurrent_percentage = kwargs['maxConcurrentPercentage'] + if region_concurrency_type is None and 'regionConcurrencyType' in kwargs: + region_concurrency_type = kwargs['regionConcurrencyType'] + if region_orders is None and 'regionOrders' in kwargs: + region_orders = kwargs['regionOrders'] + if failure_tolerance_count is not None: - pulumi.set(__self__, "failure_tolerance_count", failure_tolerance_count) + _setter("failure_tolerance_count", failure_tolerance_count) if failure_tolerance_percentage is not None: - pulumi.set(__self__, "failure_tolerance_percentage", failure_tolerance_percentage) + _setter("failure_tolerance_percentage", failure_tolerance_percentage) if max_concurrent_count is not None: - pulumi.set(__self__, "max_concurrent_count", max_concurrent_count) + _setter("max_concurrent_count", max_concurrent_count) if max_concurrent_percentage is not None: - pulumi.set(__self__, "max_concurrent_percentage", max_concurrent_percentage) + _setter("max_concurrent_percentage", max_concurrent_percentage) if region_concurrency_type is not None: - pulumi.set(__self__, "region_concurrency_type", region_concurrency_type) + _setter("region_concurrency_type", region_concurrency_type) if region_orders is not None: - pulumi.set(__self__, "region_orders", region_orders) + _setter("region_orders", region_orders) @property @pulumi.getter(name="failureToleranceCount") @@ -290,12 +372,33 @@ def __init__(__self__, *, :param str organizational_unit_id: Organizational unit ID in which the stack is deployed. :param str stack_id: Stack identifier. """ + StackSetInstanceStackInstanceSummary._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + organizational_unit_id=organizational_unit_id, + stack_id=stack_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + organizational_unit_id: Optional[str] = None, + stack_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if organizational_unit_id is None and 'organizationalUnitId' in kwargs: + organizational_unit_id = kwargs['organizationalUnitId'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if organizational_unit_id is not None: - pulumi.set(__self__, "organizational_unit_id", organizational_unit_id) + _setter("organizational_unit_id", organizational_unit_id) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) @property @pulumi.getter(name="accountId") @@ -329,8 +432,19 @@ def __init__(__self__, *, """ :param bool active: When set to true, StackSets performs non-conflicting operations concurrently and queues conflicting operations. After conflicting operations finish, StackSets starts queued operations in request order. Default is false. """ + StackSetManagedExecution._configure( + lambda key, value: pulumi.set(__self__, key, value), + active=active, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active is not None: - pulumi.set(__self__, "active", active) + _setter("active", active) @property @pulumi.getter @@ -385,18 +499,51 @@ def __init__(__self__, *, :param str region_concurrency_type: The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time. :param Sequence[str] region_orders: The order of the Regions in where you want to perform the stack operation. """ + StackSetOperationPreferences._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_tolerance_count=failure_tolerance_count, + failure_tolerance_percentage=failure_tolerance_percentage, + max_concurrent_count=max_concurrent_count, + max_concurrent_percentage=max_concurrent_percentage, + region_concurrency_type=region_concurrency_type, + region_orders=region_orders, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_tolerance_count: Optional[int] = None, + failure_tolerance_percentage: Optional[int] = None, + max_concurrent_count: Optional[int] = None, + max_concurrent_percentage: Optional[int] = None, + region_concurrency_type: Optional[str] = None, + region_orders: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_tolerance_count is None and 'failureToleranceCount' in kwargs: + failure_tolerance_count = kwargs['failureToleranceCount'] + if failure_tolerance_percentage is None and 'failureTolerancePercentage' in kwargs: + failure_tolerance_percentage = kwargs['failureTolerancePercentage'] + if max_concurrent_count is None and 'maxConcurrentCount' in kwargs: + max_concurrent_count = kwargs['maxConcurrentCount'] + if max_concurrent_percentage is None and 'maxConcurrentPercentage' in kwargs: + max_concurrent_percentage = kwargs['maxConcurrentPercentage'] + if region_concurrency_type is None and 'regionConcurrencyType' in kwargs: + region_concurrency_type = kwargs['regionConcurrencyType'] + if region_orders is None and 'regionOrders' in kwargs: + region_orders = kwargs['regionOrders'] + if failure_tolerance_count is not None: - pulumi.set(__self__, "failure_tolerance_count", failure_tolerance_count) + _setter("failure_tolerance_count", failure_tolerance_count) if failure_tolerance_percentage is not None: - pulumi.set(__self__, "failure_tolerance_percentage", failure_tolerance_percentage) + _setter("failure_tolerance_percentage", failure_tolerance_percentage) if max_concurrent_count is not None: - pulumi.set(__self__, "max_concurrent_count", max_concurrent_count) + _setter("max_concurrent_count", max_concurrent_count) if max_concurrent_percentage is not None: - pulumi.set(__self__, "max_concurrent_percentage", max_concurrent_percentage) + _setter("max_concurrent_percentage", max_concurrent_percentage) if region_concurrency_type is not None: - pulumi.set(__self__, "region_concurrency_type", region_concurrency_type) + _setter("region_concurrency_type", region_concurrency_type) if region_orders is not None: - pulumi.set(__self__, "region_orders", region_orders) + _setter("region_orders", region_orders) @property @pulumi.getter(name="failureToleranceCount") @@ -456,8 +603,29 @@ def __init__(__self__, *, :param str log_group_name: Name of the CloudWatch Log Group where CloudFormation sends error logging information when invoking the type's handlers. :param str log_role_arn: ARN of the IAM Role CloudFormation assumes when sending error logging information to CloudWatch Logs. """ - pulumi.set(__self__, "log_group_name", log_group_name) - pulumi.set(__self__, "log_role_arn", log_role_arn) + GetCloudFormationTypeLoggingConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + log_role_arn=log_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[str] = None, + log_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if log_role_arn is None and 'logRoleArn' in kwargs: + log_role_arn = kwargs['logRoleArn'] + if log_role_arn is None: + raise TypeError("Missing 'log_role_arn' argument") + + _setter("log_group_name", log_group_name) + _setter("log_role_arn", log_role_arn) @property @pulumi.getter(name="logGroupName") diff --git a/sdk/python/pulumi_aws/cloudformation/stack.py b/sdk/python/pulumi_aws/cloudformation/stack.py index 1b1cb9d2842..5fbea272af8 100644 --- a/sdk/python/pulumi_aws/cloudformation/stack.py +++ b/sdk/python/pulumi_aws/cloudformation/stack.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StackArgs', 'Stack'] @@ -48,32 +48,85 @@ def __init__(__self__, *, :param pulumi.Input[str] template_url: Location of a file containing the template body (max size: 460,800 bytes). :param pulumi.Input[int] timeout_in_minutes: The amount of time that can pass before the stack status becomes `CREATE_FAILED`. """ + StackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capabilities=capabilities, + disable_rollback=disable_rollback, + iam_role_arn=iam_role_arn, + name=name, + notification_arns=notification_arns, + on_failure=on_failure, + parameters=parameters, + policy_body=policy_body, + policy_url=policy_url, + tags=tags, + template_body=template_body, + template_url=template_url, + timeout_in_minutes=timeout_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capabilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + disable_rollback: Optional[pulumi.Input[bool]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + on_failure: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + policy_body: Optional[pulumi.Input[str]] = None, + policy_url: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_body: Optional[pulumi.Input[str]] = None, + template_url: Optional[pulumi.Input[str]] = None, + timeout_in_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disable_rollback is None and 'disableRollback' in kwargs: + disable_rollback = kwargs['disableRollback'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if notification_arns is None and 'notificationArns' in kwargs: + notification_arns = kwargs['notificationArns'] + if on_failure is None and 'onFailure' in kwargs: + on_failure = kwargs['onFailure'] + if policy_body is None and 'policyBody' in kwargs: + policy_body = kwargs['policyBody'] + if policy_url is None and 'policyUrl' in kwargs: + policy_url = kwargs['policyUrl'] + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if template_url is None and 'templateUrl' in kwargs: + template_url = kwargs['templateUrl'] + if timeout_in_minutes is None and 'timeoutInMinutes' in kwargs: + timeout_in_minutes = kwargs['timeoutInMinutes'] + if capabilities is not None: - pulumi.set(__self__, "capabilities", capabilities) + _setter("capabilities", capabilities) if disable_rollback is not None: - pulumi.set(__self__, "disable_rollback", disable_rollback) + _setter("disable_rollback", disable_rollback) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_arns is not None: - pulumi.set(__self__, "notification_arns", notification_arns) + _setter("notification_arns", notification_arns) if on_failure is not None: - pulumi.set(__self__, "on_failure", on_failure) + _setter("on_failure", on_failure) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if policy_body is not None: - pulumi.set(__self__, "policy_body", policy_body) + _setter("policy_body", policy_body) if policy_url is not None: - pulumi.set(__self__, "policy_url", policy_url) + _setter("policy_url", policy_url) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if template_body is not None: - pulumi.set(__self__, "template_body", template_body) + _setter("template_body", template_body) if template_url is not None: - pulumi.set(__self__, "template_url", template_url) + _setter("template_url", template_url) if timeout_in_minutes is not None: - pulumi.set(__self__, "timeout_in_minutes", timeout_in_minutes) + _setter("timeout_in_minutes", timeout_in_minutes) @property @pulumi.getter @@ -278,39 +331,98 @@ def __init__(__self__, *, :param pulumi.Input[str] template_url: Location of a file containing the template body (max size: 460,800 bytes). :param pulumi.Input[int] timeout_in_minutes: The amount of time that can pass before the stack status becomes `CREATE_FAILED`. """ + _StackState._configure( + lambda key, value: pulumi.set(__self__, key, value), + capabilities=capabilities, + disable_rollback=disable_rollback, + iam_role_arn=iam_role_arn, + name=name, + notification_arns=notification_arns, + on_failure=on_failure, + outputs=outputs, + parameters=parameters, + policy_body=policy_body, + policy_url=policy_url, + tags=tags, + tags_all=tags_all, + template_body=template_body, + template_url=template_url, + timeout_in_minutes=timeout_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capabilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + disable_rollback: Optional[pulumi.Input[bool]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + on_failure: Optional[pulumi.Input[str]] = None, + outputs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + policy_body: Optional[pulumi.Input[str]] = None, + policy_url: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_body: Optional[pulumi.Input[str]] = None, + template_url: Optional[pulumi.Input[str]] = None, + timeout_in_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disable_rollback is None and 'disableRollback' in kwargs: + disable_rollback = kwargs['disableRollback'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if notification_arns is None and 'notificationArns' in kwargs: + notification_arns = kwargs['notificationArns'] + if on_failure is None and 'onFailure' in kwargs: + on_failure = kwargs['onFailure'] + if policy_body is None and 'policyBody' in kwargs: + policy_body = kwargs['policyBody'] + if policy_url is None and 'policyUrl' in kwargs: + policy_url = kwargs['policyUrl'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if template_url is None and 'templateUrl' in kwargs: + template_url = kwargs['templateUrl'] + if timeout_in_minutes is None and 'timeoutInMinutes' in kwargs: + timeout_in_minutes = kwargs['timeoutInMinutes'] + if capabilities is not None: - pulumi.set(__self__, "capabilities", capabilities) + _setter("capabilities", capabilities) if disable_rollback is not None: - pulumi.set(__self__, "disable_rollback", disable_rollback) + _setter("disable_rollback", disable_rollback) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_arns is not None: - pulumi.set(__self__, "notification_arns", notification_arns) + _setter("notification_arns", notification_arns) if on_failure is not None: - pulumi.set(__self__, "on_failure", on_failure) + _setter("on_failure", on_failure) if outputs is not None: - pulumi.set(__self__, "outputs", outputs) + _setter("outputs", outputs) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if policy_body is not None: - pulumi.set(__self__, "policy_body", policy_body) + _setter("policy_body", policy_body) if policy_url is not None: - pulumi.set(__self__, "policy_url", policy_url) + _setter("policy_url", policy_url) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if template_body is not None: - pulumi.set(__self__, "template_body", template_body) + _setter("template_body", template_body) if template_url is not None: - pulumi.set(__self__, "template_url", template_url) + _setter("template_url", template_url) if timeout_in_minutes is not None: - pulumi.set(__self__, "timeout_in_minutes", timeout_in_minutes) + _setter("timeout_in_minutes", timeout_in_minutes) @property @pulumi.getter @@ -651,6 +763,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StackArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudformation/stack_set.py b/sdk/python/pulumi_aws/cloudformation/stack_set.py index 464870a9e51..ffdd70e8828 100644 --- a/sdk/python/pulumi_aws/cloudformation/stack_set.py +++ b/sdk/python/pulumi_aws/cloudformation/stack_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,34 +47,89 @@ def __init__(__self__, *, :param pulumi.Input[str] template_body: String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `template_url`. :param pulumi.Input[str] template_url: String containing the location of a file containing the CloudFormation template body. The URL must point to a template that is located in an Amazon S3 bucket. Maximum location file size: 460,800 bytes. Conflicts with `template_body`. """ + StackSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + administration_role_arn=administration_role_arn, + auto_deployment=auto_deployment, + call_as=call_as, + capabilities=capabilities, + description=description, + execution_role_name=execution_role_name, + managed_execution=managed_execution, + name=name, + operation_preferences=operation_preferences, + parameters=parameters, + permission_model=permission_model, + tags=tags, + template_body=template_body, + template_url=template_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + administration_role_arn: Optional[pulumi.Input[str]] = None, + auto_deployment: Optional[pulumi.Input['StackSetAutoDeploymentArgs']] = None, + call_as: Optional[pulumi.Input[str]] = None, + capabilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_role_name: Optional[pulumi.Input[str]] = None, + managed_execution: Optional[pulumi.Input['StackSetManagedExecutionArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + operation_preferences: Optional[pulumi.Input['StackSetOperationPreferencesArgs']] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + permission_model: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_body: Optional[pulumi.Input[str]] = None, + template_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if administration_role_arn is None and 'administrationRoleArn' in kwargs: + administration_role_arn = kwargs['administrationRoleArn'] + if auto_deployment is None and 'autoDeployment' in kwargs: + auto_deployment = kwargs['autoDeployment'] + if call_as is None and 'callAs' in kwargs: + call_as = kwargs['callAs'] + if execution_role_name is None and 'executionRoleName' in kwargs: + execution_role_name = kwargs['executionRoleName'] + if managed_execution is None and 'managedExecution' in kwargs: + managed_execution = kwargs['managedExecution'] + if operation_preferences is None and 'operationPreferences' in kwargs: + operation_preferences = kwargs['operationPreferences'] + if permission_model is None and 'permissionModel' in kwargs: + permission_model = kwargs['permissionModel'] + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if template_url is None and 'templateUrl' in kwargs: + template_url = kwargs['templateUrl'] + if administration_role_arn is not None: - pulumi.set(__self__, "administration_role_arn", administration_role_arn) + _setter("administration_role_arn", administration_role_arn) if auto_deployment is not None: - pulumi.set(__self__, "auto_deployment", auto_deployment) + _setter("auto_deployment", auto_deployment) if call_as is not None: - pulumi.set(__self__, "call_as", call_as) + _setter("call_as", call_as) if capabilities is not None: - pulumi.set(__self__, "capabilities", capabilities) + _setter("capabilities", capabilities) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if execution_role_name is not None: - pulumi.set(__self__, "execution_role_name", execution_role_name) + _setter("execution_role_name", execution_role_name) if managed_execution is not None: - pulumi.set(__self__, "managed_execution", managed_execution) + _setter("managed_execution", managed_execution) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if operation_preferences is not None: - pulumi.set(__self__, "operation_preferences", operation_preferences) + _setter("operation_preferences", operation_preferences) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if permission_model is not None: - pulumi.set(__self__, "permission_model", permission_model) + _setter("permission_model", permission_model) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if template_body is not None: - pulumi.set(__self__, "template_body", template_body) + _setter("template_body", template_body) if template_url is not None: - pulumi.set(__self__, "template_url", template_url) + _setter("template_url", template_url) @property @pulumi.getter(name="administrationRoleArn") @@ -285,43 +340,108 @@ def __init__(__self__, *, :param pulumi.Input[str] template_body: String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `template_url`. :param pulumi.Input[str] template_url: String containing the location of a file containing the CloudFormation template body. The URL must point to a template that is located in an Amazon S3 bucket. Maximum location file size: 460,800 bytes. Conflicts with `template_body`. """ + _StackSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + administration_role_arn=administration_role_arn, + arn=arn, + auto_deployment=auto_deployment, + call_as=call_as, + capabilities=capabilities, + description=description, + execution_role_name=execution_role_name, + managed_execution=managed_execution, + name=name, + operation_preferences=operation_preferences, + parameters=parameters, + permission_model=permission_model, + stack_set_id=stack_set_id, + tags=tags, + tags_all=tags_all, + template_body=template_body, + template_url=template_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + administration_role_arn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_deployment: Optional[pulumi.Input['StackSetAutoDeploymentArgs']] = None, + call_as: Optional[pulumi.Input[str]] = None, + capabilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_role_name: Optional[pulumi.Input[str]] = None, + managed_execution: Optional[pulumi.Input['StackSetManagedExecutionArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + operation_preferences: Optional[pulumi.Input['StackSetOperationPreferencesArgs']] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + permission_model: Optional[pulumi.Input[str]] = None, + stack_set_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_body: Optional[pulumi.Input[str]] = None, + template_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if administration_role_arn is None and 'administrationRoleArn' in kwargs: + administration_role_arn = kwargs['administrationRoleArn'] + if auto_deployment is None and 'autoDeployment' in kwargs: + auto_deployment = kwargs['autoDeployment'] + if call_as is None and 'callAs' in kwargs: + call_as = kwargs['callAs'] + if execution_role_name is None and 'executionRoleName' in kwargs: + execution_role_name = kwargs['executionRoleName'] + if managed_execution is None and 'managedExecution' in kwargs: + managed_execution = kwargs['managedExecution'] + if operation_preferences is None and 'operationPreferences' in kwargs: + operation_preferences = kwargs['operationPreferences'] + if permission_model is None and 'permissionModel' in kwargs: + permission_model = kwargs['permissionModel'] + if stack_set_id is None and 'stackSetId' in kwargs: + stack_set_id = kwargs['stackSetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if template_url is None and 'templateUrl' in kwargs: + template_url = kwargs['templateUrl'] + if administration_role_arn is not None: - pulumi.set(__self__, "administration_role_arn", administration_role_arn) + _setter("administration_role_arn", administration_role_arn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_deployment is not None: - pulumi.set(__self__, "auto_deployment", auto_deployment) + _setter("auto_deployment", auto_deployment) if call_as is not None: - pulumi.set(__self__, "call_as", call_as) + _setter("call_as", call_as) if capabilities is not None: - pulumi.set(__self__, "capabilities", capabilities) + _setter("capabilities", capabilities) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if execution_role_name is not None: - pulumi.set(__self__, "execution_role_name", execution_role_name) + _setter("execution_role_name", execution_role_name) if managed_execution is not None: - pulumi.set(__self__, "managed_execution", managed_execution) + _setter("managed_execution", managed_execution) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if operation_preferences is not None: - pulumi.set(__self__, "operation_preferences", operation_preferences) + _setter("operation_preferences", operation_preferences) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if permission_model is not None: - pulumi.set(__self__, "permission_model", permission_model) + _setter("permission_model", permission_model) if stack_set_id is not None: - pulumi.set(__self__, "stack_set_id", stack_set_id) + _setter("stack_set_id", stack_set_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if template_body is not None: - pulumi.set(__self__, "template_body", template_body) + _setter("template_body", template_body) if template_url is not None: - pulumi.set(__self__, "template_url", template_url) + _setter("template_url", template_url) @property @pulumi.getter(name="administrationRoleArn") @@ -736,6 +856,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StackSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -765,13 +889,16 @@ def _internal_init(__self__, __props__ = StackSetArgs.__new__(StackSetArgs) __props__.__dict__["administration_role_arn"] = administration_role_arn + auto_deployment = _utilities.configure(auto_deployment, StackSetAutoDeploymentArgs, True) __props__.__dict__["auto_deployment"] = auto_deployment __props__.__dict__["call_as"] = call_as __props__.__dict__["capabilities"] = capabilities __props__.__dict__["description"] = description __props__.__dict__["execution_role_name"] = execution_role_name + managed_execution = _utilities.configure(managed_execution, StackSetManagedExecutionArgs, True) __props__.__dict__["managed_execution"] = managed_execution __props__.__dict__["name"] = name + operation_preferences = _utilities.configure(operation_preferences, StackSetOperationPreferencesArgs, True) __props__.__dict__["operation_preferences"] = operation_preferences __props__.__dict__["parameters"] = parameters __props__.__dict__["permission_model"] = permission_model diff --git a/sdk/python/pulumi_aws/cloudformation/stack_set_instance.py b/sdk/python/pulumi_aws/cloudformation/stack_set_instance.py index 6547c80f5ff..7630a88412b 100644 --- a/sdk/python/pulumi_aws/cloudformation/stack_set_instance.py +++ b/sdk/python/pulumi_aws/cloudformation/stack_set_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,21 +35,62 @@ def __init__(__self__, *, :param pulumi.Input[str] region: Target AWS Region to create a Stack based on the StackSet. Defaults to current region. :param pulumi.Input[bool] retain_stack: During resource destroy, remove Instance from StackSet while keeping the Stack and its associated resources. Must be enabled in the state _before_ destroy operation to take effect. You cannot reassociate a retained Stack or add an existing, saved Stack to a new StackSet. Defaults to `false`. """ - pulumi.set(__self__, "stack_set_name", stack_set_name) + StackSetInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_set_name=stack_set_name, + account_id=account_id, + call_as=call_as, + deployment_targets=deployment_targets, + operation_preferences=operation_preferences, + parameter_overrides=parameter_overrides, + region=region, + retain_stack=retain_stack, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_set_name: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + call_as: Optional[pulumi.Input[str]] = None, + deployment_targets: Optional[pulumi.Input['StackSetInstanceDeploymentTargetsArgs']] = None, + operation_preferences: Optional[pulumi.Input['StackSetInstanceOperationPreferencesArgs']] = None, + parameter_overrides: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + region: Optional[pulumi.Input[str]] = None, + retain_stack: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_set_name is None and 'stackSetName' in kwargs: + stack_set_name = kwargs['stackSetName'] + if stack_set_name is None: + raise TypeError("Missing 'stack_set_name' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if call_as is None and 'callAs' in kwargs: + call_as = kwargs['callAs'] + if deployment_targets is None and 'deploymentTargets' in kwargs: + deployment_targets = kwargs['deploymentTargets'] + if operation_preferences is None and 'operationPreferences' in kwargs: + operation_preferences = kwargs['operationPreferences'] + if parameter_overrides is None and 'parameterOverrides' in kwargs: + parameter_overrides = kwargs['parameterOverrides'] + if retain_stack is None and 'retainStack' in kwargs: + retain_stack = kwargs['retainStack'] + + _setter("stack_set_name", stack_set_name) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if call_as is not None: - pulumi.set(__self__, "call_as", call_as) + _setter("call_as", call_as) if deployment_targets is not None: - pulumi.set(__self__, "deployment_targets", deployment_targets) + _setter("deployment_targets", deployment_targets) if operation_preferences is not None: - pulumi.set(__self__, "operation_preferences", operation_preferences) + _setter("operation_preferences", operation_preferences) if parameter_overrides is not None: - pulumi.set(__self__, "parameter_overrides", parameter_overrides) + _setter("parameter_overrides", parameter_overrides) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if retain_stack is not None: - pulumi.set(__self__, "retain_stack", retain_stack) + _setter("retain_stack", retain_stack) @property @pulumi.getter(name="stackSetName") @@ -176,28 +217,79 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['StackSetInstanceStackInstanceSummaryArgs']]] stack_instance_summaries: List of stack instances created from an organizational unit deployment target. This will only be populated when `deployment_targets` is set. See `stack_instance_summaries`. :param pulumi.Input[str] stack_set_name: Name of the StackSet. """ + _StackSetInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + call_as=call_as, + deployment_targets=deployment_targets, + operation_preferences=operation_preferences, + organizational_unit_id=organizational_unit_id, + parameter_overrides=parameter_overrides, + region=region, + retain_stack=retain_stack, + stack_id=stack_id, + stack_instance_summaries=stack_instance_summaries, + stack_set_name=stack_set_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + call_as: Optional[pulumi.Input[str]] = None, + deployment_targets: Optional[pulumi.Input['StackSetInstanceDeploymentTargetsArgs']] = None, + operation_preferences: Optional[pulumi.Input['StackSetInstanceOperationPreferencesArgs']] = None, + organizational_unit_id: Optional[pulumi.Input[str]] = None, + parameter_overrides: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + region: Optional[pulumi.Input[str]] = None, + retain_stack: Optional[pulumi.Input[bool]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + stack_instance_summaries: Optional[pulumi.Input[Sequence[pulumi.Input['StackSetInstanceStackInstanceSummaryArgs']]]] = None, + stack_set_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if call_as is None and 'callAs' in kwargs: + call_as = kwargs['callAs'] + if deployment_targets is None and 'deploymentTargets' in kwargs: + deployment_targets = kwargs['deploymentTargets'] + if operation_preferences is None and 'operationPreferences' in kwargs: + operation_preferences = kwargs['operationPreferences'] + if organizational_unit_id is None and 'organizationalUnitId' in kwargs: + organizational_unit_id = kwargs['organizationalUnitId'] + if parameter_overrides is None and 'parameterOverrides' in kwargs: + parameter_overrides = kwargs['parameterOverrides'] + if retain_stack is None and 'retainStack' in kwargs: + retain_stack = kwargs['retainStack'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_instance_summaries is None and 'stackInstanceSummaries' in kwargs: + stack_instance_summaries = kwargs['stackInstanceSummaries'] + if stack_set_name is None and 'stackSetName' in kwargs: + stack_set_name = kwargs['stackSetName'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if call_as is not None: - pulumi.set(__self__, "call_as", call_as) + _setter("call_as", call_as) if deployment_targets is not None: - pulumi.set(__self__, "deployment_targets", deployment_targets) + _setter("deployment_targets", deployment_targets) if operation_preferences is not None: - pulumi.set(__self__, "operation_preferences", operation_preferences) + _setter("operation_preferences", operation_preferences) if organizational_unit_id is not None: - pulumi.set(__self__, "organizational_unit_id", organizational_unit_id) + _setter("organizational_unit_id", organizational_unit_id) if parameter_overrides is not None: - pulumi.set(__self__, "parameter_overrides", parameter_overrides) + _setter("parameter_overrides", parameter_overrides) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if retain_stack is not None: - pulumi.set(__self__, "retain_stack", retain_stack) + _setter("retain_stack", retain_stack) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if stack_instance_summaries is not None: - pulumi.set(__self__, "stack_instance_summaries", stack_instance_summaries) + _setter("stack_instance_summaries", stack_instance_summaries) if stack_set_name is not None: - pulumi.set(__self__, "stack_set_name", stack_set_name) + _setter("stack_set_name", stack_set_name) @property @pulumi.getter(name="accountId") @@ -539,6 +631,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StackSetInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -563,7 +659,9 @@ def _internal_init(__self__, __props__.__dict__["account_id"] = account_id __props__.__dict__["call_as"] = call_as + deployment_targets = _utilities.configure(deployment_targets, StackSetInstanceDeploymentTargetsArgs, True) __props__.__dict__["deployment_targets"] = deployment_targets + operation_preferences = _utilities.configure(operation_preferences, StackSetInstanceOperationPreferencesArgs, True) __props__.__dict__["operation_preferences"] = operation_preferences __props__.__dict__["parameter_overrides"] = parameter_overrides __props__.__dict__["region"] = region diff --git a/sdk/python/pulumi_aws/cloudfront/_inputs.py b/sdk/python/pulumi_aws/cloudfront/_inputs.py index 27446a4e9d9..3e543e86860 100644 --- a/sdk/python/pulumi_aws/cloudfront/_inputs.py +++ b/sdk/python/pulumi_aws/cloudfront/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -102,13 +102,48 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_accept_encoding_brotli: Flag determines whether the Accept-Encoding HTTP header is included in the cache key and in requests that CloudFront sends to the origin. :param pulumi.Input[bool] enable_accept_encoding_gzip: Whether the Accept-Encoding HTTP header is included in the cache key and in requests sent to the origin by CloudFront. """ - pulumi.set(__self__, "cookies_config", cookies_config) - pulumi.set(__self__, "headers_config", headers_config) - pulumi.set(__self__, "query_strings_config", query_strings_config) + CachePolicyParametersInCacheKeyAndForwardedToOriginArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies_config=cookies_config, + headers_config=headers_config, + query_strings_config=query_strings_config, + enable_accept_encoding_brotli=enable_accept_encoding_brotli, + enable_accept_encoding_gzip=enable_accept_encoding_gzip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies_config: Optional[pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigArgs']] = None, + headers_config: Optional[pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigArgs']] = None, + query_strings_config: Optional[pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigArgs']] = None, + enable_accept_encoding_brotli: Optional[pulumi.Input[bool]] = None, + enable_accept_encoding_gzip: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies_config is None and 'cookiesConfig' in kwargs: + cookies_config = kwargs['cookiesConfig'] + if cookies_config is None: + raise TypeError("Missing 'cookies_config' argument") + if headers_config is None and 'headersConfig' in kwargs: + headers_config = kwargs['headersConfig'] + if headers_config is None: + raise TypeError("Missing 'headers_config' argument") + if query_strings_config is None and 'queryStringsConfig' in kwargs: + query_strings_config = kwargs['queryStringsConfig'] + if query_strings_config is None: + raise TypeError("Missing 'query_strings_config' argument") + if enable_accept_encoding_brotli is None and 'enableAcceptEncodingBrotli' in kwargs: + enable_accept_encoding_brotli = kwargs['enableAcceptEncodingBrotli'] + if enable_accept_encoding_gzip is None and 'enableAcceptEncodingGzip' in kwargs: + enable_accept_encoding_gzip = kwargs['enableAcceptEncodingGzip'] + + _setter("cookies_config", cookies_config) + _setter("headers_config", headers_config) + _setter("query_strings_config", query_strings_config) if enable_accept_encoding_brotli is not None: - pulumi.set(__self__, "enable_accept_encoding_brotli", enable_accept_encoding_brotli) + _setter("enable_accept_encoding_brotli", enable_accept_encoding_brotli) if enable_accept_encoding_gzip is not None: - pulumi.set(__self__, "enable_accept_encoding_gzip", enable_accept_encoding_gzip) + _setter("enable_accept_encoding_gzip", enable_accept_encoding_gzip) @property @pulumi.getter(name="cookiesConfig") @@ -180,9 +215,26 @@ def __init__(__self__, *, :param pulumi.Input[str] cookie_behavior: Whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values for `cookie_behavior` are `none`, `whitelist`, `allExcept`, and `all`. :param pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs'] cookies: Object that contains a list of cookie names. See Items for more information. """ - pulumi.set(__self__, "cookie_behavior", cookie_behavior) + CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_behavior=cookie_behavior, + cookies=cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_behavior: Optional[pulumi.Input[str]] = None, + cookies: Optional[pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_behavior is None and 'cookieBehavior' in kwargs: + cookie_behavior = kwargs['cookieBehavior'] + if cookie_behavior is None: + raise TypeError("Missing 'cookie_behavior' argument") + + _setter("cookie_behavior", cookie_behavior) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) @property @pulumi.getter(name="cookieBehavior") @@ -213,12 +265,29 @@ def cookies(self, value: Optional[pulumi.Input['CachePolicyParametersInCacheKeyA class CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] items: List of item names, such as cookies, headers, or query strings. + """ + CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def items(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of item names, such as cookies, headers, or query strings. + """ return pulumi.get(self, "items") @items.setter @@ -235,10 +304,25 @@ def __init__(__self__, *, :param pulumi.Input[str] header_behavior: Whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values for `header_behavior` are `none` and `whitelist`. :param pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs'] headers: Object contains a list of header names. See Items for more information. """ + CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_behavior=header_behavior, + headers=headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_behavior: Optional[pulumi.Input[str]] = None, + headers: Optional[pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_behavior is None and 'headerBehavior' in kwargs: + header_behavior = kwargs['headerBehavior'] + if header_behavior is not None: - pulumi.set(__self__, "header_behavior", header_behavior) + _setter("header_behavior", header_behavior) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) @property @pulumi.getter(name="headerBehavior") @@ -269,12 +353,29 @@ def headers(self, value: Optional[pulumi.Input['CachePolicyParametersInCacheKeyA class CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] items: List of item names, such as cookies, headers, or query strings. + """ + CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def items(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of item names, such as cookies, headers, or query strings. + """ return pulumi.get(self, "items") @items.setter @@ -291,9 +392,28 @@ def __init__(__self__, *, :param pulumi.Input[str] query_string_behavior: Whether URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values for `query_string_behavior` are `none`, `whitelist`, `allExcept`, and `all`. :param pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs'] query_strings: Configuration parameter that contains a list of query string names. See Items for more information. """ - pulumi.set(__self__, "query_string_behavior", query_string_behavior) + CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_string_behavior=query_string_behavior, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_string_behavior: Optional[pulumi.Input[str]] = None, + query_strings: Optional[pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_string_behavior is None and 'queryStringBehavior' in kwargs: + query_string_behavior = kwargs['queryStringBehavior'] + if query_string_behavior is None: + raise TypeError("Missing 'query_string_behavior' argument") + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + + _setter("query_string_behavior", query_string_behavior) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) @property @pulumi.getter(name="queryStringBehavior") @@ -324,12 +444,29 @@ def query_strings(self, value: Optional[pulumi.Input['CachePolicyParametersInCac class CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] items: List of item names, such as cookies, headers, or query strings. + """ + CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def items(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of item names, such as cookies, headers, or query strings. + """ return pulumi.get(self, "items") @items.setter @@ -346,9 +483,24 @@ def __init__(__self__, *, :param pulumi.Input[int] quantity: Number of CloudFront domain names in the staging distribution. :param pulumi.Input[Sequence[pulumi.Input[str]]] items: A list of CloudFront domain names for the staging distribution. """ - pulumi.set(__self__, "quantity", quantity) + ContinuousDeploymentPolicyStagingDistributionDnsNamesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + quantity=quantity, + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + quantity: Optional[pulumi.Input[int]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if quantity is None: + raise TypeError("Missing 'quantity' argument") + + _setter("quantity", quantity) if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -386,11 +538,32 @@ def __init__(__self__, *, :param pulumi.Input['ContinuousDeploymentPolicyTrafficConfigSingleHeaderConfigArgs'] single_header_config: Determines which HTTP requests are sent to the staging distribution. See `single_header_config`. :param pulumi.Input['ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigArgs'] single_weight_config: Contains the percentage of traffic to send to the staging distribution. See `single_weight_config`. """ - pulumi.set(__self__, "type", type) + ContinuousDeploymentPolicyTrafficConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + single_header_config=single_header_config, + single_weight_config=single_weight_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + single_header_config: Optional[pulumi.Input['ContinuousDeploymentPolicyTrafficConfigSingleHeaderConfigArgs']] = None, + single_weight_config: Optional[pulumi.Input['ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if single_header_config is None and 'singleHeaderConfig' in kwargs: + single_header_config = kwargs['singleHeaderConfig'] + if single_weight_config is None and 'singleWeightConfig' in kwargs: + single_weight_config = kwargs['singleWeightConfig'] + + _setter("type", type) if single_header_config is not None: - pulumi.set(__self__, "single_header_config", single_header_config) + _setter("single_header_config", single_header_config) if single_weight_config is not None: - pulumi.set(__self__, "single_weight_config", single_weight_config) + _setter("single_weight_config", single_weight_config) @property @pulumi.getter @@ -438,8 +611,25 @@ def __init__(__self__, *, :param pulumi.Input[str] header: Request header name to send to the staging distribution. The header must contain the prefix `aws-cf-cd-`. :param pulumi.Input[str] value: Request header value. """ - pulumi.set(__self__, "header", header) - pulumi.set(__self__, "value", value) + ContinuousDeploymentPolicyTrafficConfigSingleHeaderConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is None: + raise TypeError("Missing 'header' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("header", header) + _setter("value", value) @property @pulumi.getter @@ -475,9 +665,26 @@ def __init__(__self__, *, :param pulumi.Input[float] weight: The percentage of traffic to send to a staging distribution, expressed as a decimal number between `0` and `.15`. :param pulumi.Input['ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigSessionStickinessConfigArgs'] session_stickiness_config: Session stickiness provides the ability to define multiple requests from a single viewer as a single session. This prevents the potentially inconsistent experience of sending some of a given user's requests to the staging distribution, while others are sent to the primary distribution. Define the session duration using TTL values. See `session_stickiness_config`. """ - pulumi.set(__self__, "weight", weight) + ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + weight=weight, + session_stickiness_config=session_stickiness_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weight: Optional[pulumi.Input[float]] = None, + session_stickiness_config: Optional[pulumi.Input['ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigSessionStickinessConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weight is None: + raise TypeError("Missing 'weight' argument") + if session_stickiness_config is None and 'sessionStickinessConfig' in kwargs: + session_stickiness_config = kwargs['sessionStickinessConfig'] + + _setter("weight", weight) if session_stickiness_config is not None: - pulumi.set(__self__, "session_stickiness_config", session_stickiness_config) + _setter("session_stickiness_config", session_stickiness_config) @property @pulumi.getter @@ -513,8 +720,29 @@ def __init__(__self__, *, :param pulumi.Input[int] idle_ttl: The amount of time in seconds after which sessions will cease if no requests are received. Valid values are `300` – `3600` (5–60 minutes). The value must be less than or equal to `maximum_ttl`. :param pulumi.Input[int] maximum_ttl: The maximum amount of time in seconds to consider requests from the viewer as being part of the same session. Valid values are `300` – `3600` (5–60 minutes). The value must be greater than or equal to `idle_ttl`. """ - pulumi.set(__self__, "idle_ttl", idle_ttl) - pulumi.set(__self__, "maximum_ttl", maximum_ttl) + ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigSessionStickinessConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle_ttl=idle_ttl, + maximum_ttl=maximum_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle_ttl: Optional[pulumi.Input[int]] = None, + maximum_ttl: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle_ttl is None and 'idleTtl' in kwargs: + idle_ttl = kwargs['idleTtl'] + if idle_ttl is None: + raise TypeError("Missing 'idle_ttl' argument") + if maximum_ttl is None and 'maximumTtl' in kwargs: + maximum_ttl = kwargs['maximumTtl'] + if maximum_ttl is None: + raise TypeError("Missing 'maximum_ttl' argument") + + _setter("idle_ttl", idle_ttl) + _setter("maximum_ttl", maximum_ttl) @property @pulumi.getter(name="idleTtl") @@ -554,13 +782,40 @@ def __init__(__self__, *, :param pulumi.Input[int] response_code: HTTP status code that you want CloudFront to return with the custom error page to the viewer. :param pulumi.Input[str] response_page_path: Path of the custom error page (for example, `/custom_404.html`). """ - pulumi.set(__self__, "error_code", error_code) + DistributionCustomErrorResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_code=error_code, + error_caching_min_ttl=error_caching_min_ttl, + response_code=response_code, + response_page_path=response_page_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_code: Optional[pulumi.Input[int]] = None, + error_caching_min_ttl: Optional[pulumi.Input[int]] = None, + response_code: Optional[pulumi.Input[int]] = None, + response_page_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_code is None and 'errorCode' in kwargs: + error_code = kwargs['errorCode'] + if error_code is None: + raise TypeError("Missing 'error_code' argument") + if error_caching_min_ttl is None and 'errorCachingMinTtl' in kwargs: + error_caching_min_ttl = kwargs['errorCachingMinTtl'] + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_page_path is None and 'responsePagePath' in kwargs: + response_page_path = kwargs['responsePagePath'] + + _setter("error_code", error_code) if error_caching_min_ttl is not None: - pulumi.set(__self__, "error_caching_min_ttl", error_caching_min_ttl) + _setter("error_caching_min_ttl", error_caching_min_ttl) if response_code is not None: - pulumi.set(__self__, "response_code", response_code) + _setter("response_code", response_code) if response_page_path is not None: - pulumi.set(__self__, "response_page_path", response_page_path) + _setter("response_page_path", response_page_path) @property @pulumi.getter(name="errorCode") @@ -654,40 +909,131 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_key_groups: List of key group IDs that CloudFront can use to validate signed URLs or signed cookies. See the [CloudFront User Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html) for more information about this feature. :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_signers: List of AWS account IDs (or `self`) that you want to allow to create signed URLs for private content. See the [CloudFront User Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html) for more information about this feature. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "cached_methods", cached_methods) - pulumi.set(__self__, "target_origin_id", target_origin_id) - pulumi.set(__self__, "viewer_protocol_policy", viewer_protocol_policy) + DistributionDefaultCacheBehaviorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + cached_methods=cached_methods, + target_origin_id=target_origin_id, + viewer_protocol_policy=viewer_protocol_policy, + cache_policy_id=cache_policy_id, + compress=compress, + default_ttl=default_ttl, + field_level_encryption_id=field_level_encryption_id, + forwarded_values=forwarded_values, + function_associations=function_associations, + lambda_function_associations=lambda_function_associations, + max_ttl=max_ttl, + min_ttl=min_ttl, + origin_request_policy_id=origin_request_policy_id, + realtime_log_config_arn=realtime_log_config_arn, + response_headers_policy_id=response_headers_policy_id, + smooth_streaming=smooth_streaming, + trusted_key_groups=trusted_key_groups, + trusted_signers=trusted_signers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cached_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + target_origin_id: Optional[pulumi.Input[str]] = None, + viewer_protocol_policy: Optional[pulumi.Input[str]] = None, + cache_policy_id: Optional[pulumi.Input[str]] = None, + compress: Optional[pulumi.Input[bool]] = None, + default_ttl: Optional[pulumi.Input[int]] = None, + field_level_encryption_id: Optional[pulumi.Input[str]] = None, + forwarded_values: Optional[pulumi.Input['DistributionDefaultCacheBehaviorForwardedValuesArgs']] = None, + function_associations: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionDefaultCacheBehaviorFunctionAssociationArgs']]]] = None, + lambda_function_associations: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionDefaultCacheBehaviorLambdaFunctionAssociationArgs']]]] = None, + max_ttl: Optional[pulumi.Input[int]] = None, + min_ttl: Optional[pulumi.Input[int]] = None, + origin_request_policy_id: Optional[pulumi.Input[str]] = None, + realtime_log_config_arn: Optional[pulumi.Input[str]] = None, + response_headers_policy_id: Optional[pulumi.Input[str]] = None, + smooth_streaming: Optional[pulumi.Input[bool]] = None, + trusted_key_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + trusted_signers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if cached_methods is None and 'cachedMethods' in kwargs: + cached_methods = kwargs['cachedMethods'] + if cached_methods is None: + raise TypeError("Missing 'cached_methods' argument") + if target_origin_id is None and 'targetOriginId' in kwargs: + target_origin_id = kwargs['targetOriginId'] + if target_origin_id is None: + raise TypeError("Missing 'target_origin_id' argument") + if viewer_protocol_policy is None and 'viewerProtocolPolicy' in kwargs: + viewer_protocol_policy = kwargs['viewerProtocolPolicy'] + if viewer_protocol_policy is None: + raise TypeError("Missing 'viewer_protocol_policy' argument") + if cache_policy_id is None and 'cachePolicyId' in kwargs: + cache_policy_id = kwargs['cachePolicyId'] + if default_ttl is None and 'defaultTtl' in kwargs: + default_ttl = kwargs['defaultTtl'] + if field_level_encryption_id is None and 'fieldLevelEncryptionId' in kwargs: + field_level_encryption_id = kwargs['fieldLevelEncryptionId'] + if forwarded_values is None and 'forwardedValues' in kwargs: + forwarded_values = kwargs['forwardedValues'] + if function_associations is None and 'functionAssociations' in kwargs: + function_associations = kwargs['functionAssociations'] + if lambda_function_associations is None and 'lambdaFunctionAssociations' in kwargs: + lambda_function_associations = kwargs['lambdaFunctionAssociations'] + if max_ttl is None and 'maxTtl' in kwargs: + max_ttl = kwargs['maxTtl'] + if min_ttl is None and 'minTtl' in kwargs: + min_ttl = kwargs['minTtl'] + if origin_request_policy_id is None and 'originRequestPolicyId' in kwargs: + origin_request_policy_id = kwargs['originRequestPolicyId'] + if realtime_log_config_arn is None and 'realtimeLogConfigArn' in kwargs: + realtime_log_config_arn = kwargs['realtimeLogConfigArn'] + if response_headers_policy_id is None and 'responseHeadersPolicyId' in kwargs: + response_headers_policy_id = kwargs['responseHeadersPolicyId'] + if smooth_streaming is None and 'smoothStreaming' in kwargs: + smooth_streaming = kwargs['smoothStreaming'] + if trusted_key_groups is None and 'trustedKeyGroups' in kwargs: + trusted_key_groups = kwargs['trustedKeyGroups'] + if trusted_signers is None and 'trustedSigners' in kwargs: + trusted_signers = kwargs['trustedSigners'] + + _setter("allowed_methods", allowed_methods) + _setter("cached_methods", cached_methods) + _setter("target_origin_id", target_origin_id) + _setter("viewer_protocol_policy", viewer_protocol_policy) if cache_policy_id is not None: - pulumi.set(__self__, "cache_policy_id", cache_policy_id) + _setter("cache_policy_id", cache_policy_id) if compress is not None: - pulumi.set(__self__, "compress", compress) + _setter("compress", compress) if default_ttl is not None: - pulumi.set(__self__, "default_ttl", default_ttl) + _setter("default_ttl", default_ttl) if field_level_encryption_id is not None: - pulumi.set(__self__, "field_level_encryption_id", field_level_encryption_id) + _setter("field_level_encryption_id", field_level_encryption_id) if forwarded_values is not None: - pulumi.set(__self__, "forwarded_values", forwarded_values) + _setter("forwarded_values", forwarded_values) if function_associations is not None: - pulumi.set(__self__, "function_associations", function_associations) + _setter("function_associations", function_associations) if lambda_function_associations is not None: - pulumi.set(__self__, "lambda_function_associations", lambda_function_associations) + _setter("lambda_function_associations", lambda_function_associations) if max_ttl is not None: - pulumi.set(__self__, "max_ttl", max_ttl) + _setter("max_ttl", max_ttl) if min_ttl is not None: - pulumi.set(__self__, "min_ttl", min_ttl) + _setter("min_ttl", min_ttl) if origin_request_policy_id is not None: - pulumi.set(__self__, "origin_request_policy_id", origin_request_policy_id) + _setter("origin_request_policy_id", origin_request_policy_id) if realtime_log_config_arn is not None: - pulumi.set(__self__, "realtime_log_config_arn", realtime_log_config_arn) + _setter("realtime_log_config_arn", realtime_log_config_arn) if response_headers_policy_id is not None: - pulumi.set(__self__, "response_headers_policy_id", response_headers_policy_id) + _setter("response_headers_policy_id", response_headers_policy_id) if smooth_streaming is not None: - pulumi.set(__self__, "smooth_streaming", smooth_streaming) + _setter("smooth_streaming", smooth_streaming) if trusted_key_groups is not None: - pulumi.set(__self__, "trusted_key_groups", trusted_key_groups) + _setter("trusted_key_groups", trusted_key_groups) if trusted_signers is not None: - pulumi.set(__self__, "trusted_signers", trusted_signers) + _setter("trusted_signers", trusted_signers) @property @pulumi.getter(name="allowedMethods") @@ -931,12 +1277,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] headers: Headers, if any, that you want CloudFront to vary upon for this cache behavior. Specify `*` to include all headers. :param pulumi.Input[Sequence[pulumi.Input[str]]] query_string_cache_keys: When specified, along with a value of `true` for `query_string`, all query strings are forwarded, however only the query string keys listed in this argument are cached. When omitted with a value of `true` for `query_string`, all query string keys are cached. """ - pulumi.set(__self__, "cookies", cookies) - pulumi.set(__self__, "query_string", query_string) + DistributionDefaultCacheBehaviorForwardedValuesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies=cookies, + query_string=query_string, + headers=headers, + query_string_cache_keys=query_string_cache_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies: Optional[pulumi.Input['DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs']] = None, + query_string: Optional[pulumi.Input[bool]] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + query_string_cache_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies is None: + raise TypeError("Missing 'cookies' argument") + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if query_string is None: + raise TypeError("Missing 'query_string' argument") + if query_string_cache_keys is None and 'queryStringCacheKeys' in kwargs: + query_string_cache_keys = kwargs['queryStringCacheKeys'] + + _setter("cookies", cookies) + _setter("query_string", query_string) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if query_string_cache_keys is not None: - pulumi.set(__self__, "query_string_cache_keys", query_string_cache_keys) + _setter("query_string_cache_keys", query_string_cache_keys) @property @pulumi.getter @@ -996,9 +1367,26 @@ def __init__(__self__, *, :param pulumi.Input[str] forward: Whether you want CloudFront to forward cookies to the origin that is associated with this cache behavior. You can specify `all`, `none` or `whitelist`. If `whitelist`, you must include the subsequent `whitelisted_names`. :param pulumi.Input[Sequence[pulumi.Input[str]]] whitelisted_names: If you have specified `whitelist` to `forward`, the whitelisted cookies that you want CloudFront to forward to your origin. """ - pulumi.set(__self__, "forward", forward) + DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + forward=forward, + whitelisted_names=whitelisted_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + forward: Optional[pulumi.Input[str]] = None, + whitelisted_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forward is None: + raise TypeError("Missing 'forward' argument") + if whitelisted_names is None and 'whitelistedNames' in kwargs: + whitelisted_names = kwargs['whitelistedNames'] + + _setter("forward", forward) if whitelisted_names is not None: - pulumi.set(__self__, "whitelisted_names", whitelisted_names) + _setter("whitelisted_names", whitelisted_names) @property @pulumi.getter @@ -1034,8 +1422,29 @@ def __init__(__self__, *, :param pulumi.Input[str] event_type: Specific event to trigger this function. Valid values: `viewer-request` or `viewer-response`. :param pulumi.Input[str] function_arn: ARN of the CloudFront function. """ - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "function_arn", function_arn) + DistributionDefaultCacheBehaviorFunctionAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_type=event_type, + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_type: Optional[pulumi.Input[str]] = None, + function_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("event_type", event_type) + _setter("function_arn", function_arn) @property @pulumi.getter(name="eventType") @@ -1073,10 +1482,35 @@ def __init__(__self__, *, :param pulumi.Input[str] lambda_arn: ARN of the Lambda function. :param pulumi.Input[bool] include_body: When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: `true`, `false`. """ - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "lambda_arn", lambda_arn) + DistributionDefaultCacheBehaviorLambdaFunctionAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_type=event_type, + lambda_arn=lambda_arn, + include_body=include_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_type: Optional[pulumi.Input[str]] = None, + lambda_arn: Optional[pulumi.Input[str]] = None, + include_body: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if include_body is None and 'includeBody' in kwargs: + include_body = kwargs['includeBody'] + + _setter("event_type", event_type) + _setter("lambda_arn", lambda_arn) if include_body is not None: - pulumi.set(__self__, "include_body", include_body) + _setter("include_body", include_body) @property @pulumi.getter(name="eventType") @@ -1126,11 +1560,30 @@ def __init__(__self__, *, :param pulumi.Input[bool] include_cookies: Whether to include cookies in access logs (default: `false`). :param pulumi.Input[str] prefix: Prefix to the access log filenames for this distribution, for example, `myprefix/`. """ - pulumi.set(__self__, "bucket", bucket) + DistributionLoggingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + include_cookies=include_cookies, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + include_cookies: Optional[pulumi.Input[bool]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if include_cookies is None and 'includeCookies' in kwargs: + include_cookies = kwargs['includeCookies'] + + _setter("bucket", bucket) if include_cookies is not None: - pulumi.set(__self__, "include_cookies", include_cookies) + _setter("include_cookies", include_cookies) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -1214,41 +1667,138 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_key_groups: List of key group IDs that CloudFront can use to validate signed URLs or signed cookies. See the [CloudFront User Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html) for more information about this feature. :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_signers: List of AWS account IDs (or `self`) that you want to allow to create signed URLs for private content. See the [CloudFront User Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html) for more information about this feature. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "cached_methods", cached_methods) - pulumi.set(__self__, "path_pattern", path_pattern) - pulumi.set(__self__, "target_origin_id", target_origin_id) - pulumi.set(__self__, "viewer_protocol_policy", viewer_protocol_policy) + DistributionOrderedCacheBehaviorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + cached_methods=cached_methods, + path_pattern=path_pattern, + target_origin_id=target_origin_id, + viewer_protocol_policy=viewer_protocol_policy, + cache_policy_id=cache_policy_id, + compress=compress, + default_ttl=default_ttl, + field_level_encryption_id=field_level_encryption_id, + forwarded_values=forwarded_values, + function_associations=function_associations, + lambda_function_associations=lambda_function_associations, + max_ttl=max_ttl, + min_ttl=min_ttl, + origin_request_policy_id=origin_request_policy_id, + realtime_log_config_arn=realtime_log_config_arn, + response_headers_policy_id=response_headers_policy_id, + smooth_streaming=smooth_streaming, + trusted_key_groups=trusted_key_groups, + trusted_signers=trusted_signers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cached_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + path_pattern: Optional[pulumi.Input[str]] = None, + target_origin_id: Optional[pulumi.Input[str]] = None, + viewer_protocol_policy: Optional[pulumi.Input[str]] = None, + cache_policy_id: Optional[pulumi.Input[str]] = None, + compress: Optional[pulumi.Input[bool]] = None, + default_ttl: Optional[pulumi.Input[int]] = None, + field_level_encryption_id: Optional[pulumi.Input[str]] = None, + forwarded_values: Optional[pulumi.Input['DistributionOrderedCacheBehaviorForwardedValuesArgs']] = None, + function_associations: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOrderedCacheBehaviorFunctionAssociationArgs']]]] = None, + lambda_function_associations: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOrderedCacheBehaviorLambdaFunctionAssociationArgs']]]] = None, + max_ttl: Optional[pulumi.Input[int]] = None, + min_ttl: Optional[pulumi.Input[int]] = None, + origin_request_policy_id: Optional[pulumi.Input[str]] = None, + realtime_log_config_arn: Optional[pulumi.Input[str]] = None, + response_headers_policy_id: Optional[pulumi.Input[str]] = None, + smooth_streaming: Optional[pulumi.Input[bool]] = None, + trusted_key_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + trusted_signers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if cached_methods is None and 'cachedMethods' in kwargs: + cached_methods = kwargs['cachedMethods'] + if cached_methods is None: + raise TypeError("Missing 'cached_methods' argument") + if path_pattern is None and 'pathPattern' in kwargs: + path_pattern = kwargs['pathPattern'] + if path_pattern is None: + raise TypeError("Missing 'path_pattern' argument") + if target_origin_id is None and 'targetOriginId' in kwargs: + target_origin_id = kwargs['targetOriginId'] + if target_origin_id is None: + raise TypeError("Missing 'target_origin_id' argument") + if viewer_protocol_policy is None and 'viewerProtocolPolicy' in kwargs: + viewer_protocol_policy = kwargs['viewerProtocolPolicy'] + if viewer_protocol_policy is None: + raise TypeError("Missing 'viewer_protocol_policy' argument") + if cache_policy_id is None and 'cachePolicyId' in kwargs: + cache_policy_id = kwargs['cachePolicyId'] + if default_ttl is None and 'defaultTtl' in kwargs: + default_ttl = kwargs['defaultTtl'] + if field_level_encryption_id is None and 'fieldLevelEncryptionId' in kwargs: + field_level_encryption_id = kwargs['fieldLevelEncryptionId'] + if forwarded_values is None and 'forwardedValues' in kwargs: + forwarded_values = kwargs['forwardedValues'] + if function_associations is None and 'functionAssociations' in kwargs: + function_associations = kwargs['functionAssociations'] + if lambda_function_associations is None and 'lambdaFunctionAssociations' in kwargs: + lambda_function_associations = kwargs['lambdaFunctionAssociations'] + if max_ttl is None and 'maxTtl' in kwargs: + max_ttl = kwargs['maxTtl'] + if min_ttl is None and 'minTtl' in kwargs: + min_ttl = kwargs['minTtl'] + if origin_request_policy_id is None and 'originRequestPolicyId' in kwargs: + origin_request_policy_id = kwargs['originRequestPolicyId'] + if realtime_log_config_arn is None and 'realtimeLogConfigArn' in kwargs: + realtime_log_config_arn = kwargs['realtimeLogConfigArn'] + if response_headers_policy_id is None and 'responseHeadersPolicyId' in kwargs: + response_headers_policy_id = kwargs['responseHeadersPolicyId'] + if smooth_streaming is None and 'smoothStreaming' in kwargs: + smooth_streaming = kwargs['smoothStreaming'] + if trusted_key_groups is None and 'trustedKeyGroups' in kwargs: + trusted_key_groups = kwargs['trustedKeyGroups'] + if trusted_signers is None and 'trustedSigners' in kwargs: + trusted_signers = kwargs['trustedSigners'] + + _setter("allowed_methods", allowed_methods) + _setter("cached_methods", cached_methods) + _setter("path_pattern", path_pattern) + _setter("target_origin_id", target_origin_id) + _setter("viewer_protocol_policy", viewer_protocol_policy) if cache_policy_id is not None: - pulumi.set(__self__, "cache_policy_id", cache_policy_id) + _setter("cache_policy_id", cache_policy_id) if compress is not None: - pulumi.set(__self__, "compress", compress) + _setter("compress", compress) if default_ttl is not None: - pulumi.set(__self__, "default_ttl", default_ttl) + _setter("default_ttl", default_ttl) if field_level_encryption_id is not None: - pulumi.set(__self__, "field_level_encryption_id", field_level_encryption_id) + _setter("field_level_encryption_id", field_level_encryption_id) if forwarded_values is not None: - pulumi.set(__self__, "forwarded_values", forwarded_values) + _setter("forwarded_values", forwarded_values) if function_associations is not None: - pulumi.set(__self__, "function_associations", function_associations) + _setter("function_associations", function_associations) if lambda_function_associations is not None: - pulumi.set(__self__, "lambda_function_associations", lambda_function_associations) + _setter("lambda_function_associations", lambda_function_associations) if max_ttl is not None: - pulumi.set(__self__, "max_ttl", max_ttl) + _setter("max_ttl", max_ttl) if min_ttl is not None: - pulumi.set(__self__, "min_ttl", min_ttl) + _setter("min_ttl", min_ttl) if origin_request_policy_id is not None: - pulumi.set(__self__, "origin_request_policy_id", origin_request_policy_id) + _setter("origin_request_policy_id", origin_request_policy_id) if realtime_log_config_arn is not None: - pulumi.set(__self__, "realtime_log_config_arn", realtime_log_config_arn) + _setter("realtime_log_config_arn", realtime_log_config_arn) if response_headers_policy_id is not None: - pulumi.set(__self__, "response_headers_policy_id", response_headers_policy_id) + _setter("response_headers_policy_id", response_headers_policy_id) if smooth_streaming is not None: - pulumi.set(__self__, "smooth_streaming", smooth_streaming) + _setter("smooth_streaming", smooth_streaming) if trusted_key_groups is not None: - pulumi.set(__self__, "trusted_key_groups", trusted_key_groups) + _setter("trusted_key_groups", trusted_key_groups) if trusted_signers is not None: - pulumi.set(__self__, "trusted_signers", trusted_signers) + _setter("trusted_signers", trusted_signers) @property @pulumi.getter(name="allowedMethods") @@ -1504,12 +2054,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] headers: Headers, if any, that you want CloudFront to vary upon for this cache behavior. Specify `*` to include all headers. :param pulumi.Input[Sequence[pulumi.Input[str]]] query_string_cache_keys: When specified, along with a value of `true` for `query_string`, all query strings are forwarded, however only the query string keys listed in this argument are cached. When omitted with a value of `true` for `query_string`, all query string keys are cached. """ - pulumi.set(__self__, "cookies", cookies) - pulumi.set(__self__, "query_string", query_string) + DistributionOrderedCacheBehaviorForwardedValuesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies=cookies, + query_string=query_string, + headers=headers, + query_string_cache_keys=query_string_cache_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies: Optional[pulumi.Input['DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs']] = None, + query_string: Optional[pulumi.Input[bool]] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + query_string_cache_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies is None: + raise TypeError("Missing 'cookies' argument") + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if query_string is None: + raise TypeError("Missing 'query_string' argument") + if query_string_cache_keys is None and 'queryStringCacheKeys' in kwargs: + query_string_cache_keys = kwargs['queryStringCacheKeys'] + + _setter("cookies", cookies) + _setter("query_string", query_string) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if query_string_cache_keys is not None: - pulumi.set(__self__, "query_string_cache_keys", query_string_cache_keys) + _setter("query_string_cache_keys", query_string_cache_keys) @property @pulumi.getter @@ -1569,9 +2144,26 @@ def __init__(__self__, *, :param pulumi.Input[str] forward: Whether you want CloudFront to forward cookies to the origin that is associated with this cache behavior. You can specify `all`, `none` or `whitelist`. If `whitelist`, you must include the subsequent `whitelisted_names`. :param pulumi.Input[Sequence[pulumi.Input[str]]] whitelisted_names: If you have specified `whitelist` to `forward`, the whitelisted cookies that you want CloudFront to forward to your origin. """ - pulumi.set(__self__, "forward", forward) + DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + forward=forward, + whitelisted_names=whitelisted_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + forward: Optional[pulumi.Input[str]] = None, + whitelisted_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forward is None: + raise TypeError("Missing 'forward' argument") + if whitelisted_names is None and 'whitelistedNames' in kwargs: + whitelisted_names = kwargs['whitelistedNames'] + + _setter("forward", forward) if whitelisted_names is not None: - pulumi.set(__self__, "whitelisted_names", whitelisted_names) + _setter("whitelisted_names", whitelisted_names) @property @pulumi.getter @@ -1607,8 +2199,29 @@ def __init__(__self__, *, :param pulumi.Input[str] event_type: Specific event to trigger this function. Valid values: `viewer-request` or `viewer-response`. :param pulumi.Input[str] function_arn: ARN of the CloudFront function. """ - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "function_arn", function_arn) + DistributionOrderedCacheBehaviorFunctionAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_type=event_type, + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_type: Optional[pulumi.Input[str]] = None, + function_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("event_type", event_type) + _setter("function_arn", function_arn) @property @pulumi.getter(name="eventType") @@ -1646,10 +2259,35 @@ def __init__(__self__, *, :param pulumi.Input[str] lambda_arn: ARN of the Lambda function. :param pulumi.Input[bool] include_body: When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: `true`, `false`. """ - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "lambda_arn", lambda_arn) + DistributionOrderedCacheBehaviorLambdaFunctionAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_type=event_type, + lambda_arn=lambda_arn, + include_body=include_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_type: Optional[pulumi.Input[str]] = None, + lambda_arn: Optional[pulumi.Input[str]] = None, + include_body: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if include_body is None and 'includeBody' in kwargs: + include_body = kwargs['includeBody'] + + _setter("event_type", event_type) + _setter("lambda_arn", lambda_arn) if include_body is not None: - pulumi.set(__self__, "include_body", include_body) + _setter("include_body", include_body) @property @pulumi.getter(name="eventType") @@ -1703,7 +2341,7 @@ def __init__(__self__, *, s3_origin_config: Optional[pulumi.Input['DistributionOriginS3OriginConfigArgs']] = None): """ :param pulumi.Input[str] domain_name: DNS domain name of either the S3 bucket, or web site of your custom origin. - :param pulumi.Input[str] origin_id: Unique identifier for the origin. + :param pulumi.Input[str] origin_id: Unique identifier of the member origin. :param pulumi.Input[int] connection_attempts: Number of times that CloudFront attempts to connect to the origin. Must be between 1-3. Defaults to 3. :param pulumi.Input[int] connection_timeout: Number of seconds that CloudFront waits when trying to establish a connection to the origin. Must be between 1-10. Defaults to 10. :param pulumi.Input[Sequence[pulumi.Input['DistributionOriginCustomHeaderArgs']]] custom_headers: One or more sub-resources with `name` and `value` parameters that specify header data that will be sent to the origin (multiples allowed). @@ -1713,24 +2351,77 @@ def __init__(__self__, *, :param pulumi.Input['DistributionOriginOriginShieldArgs'] origin_shield: CloudFront Origin Shield configuration information. Using Origin Shield can help reduce the load on your origin. For more information, see [Using Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) in the Amazon CloudFront Developer Guide. :param pulumi.Input['DistributionOriginS3OriginConfigArgs'] s3_origin_config: CloudFront S3 origin configuration information. If a custom origin is required, use `custom_origin_config` instead. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "origin_id", origin_id) + DistributionOriginArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + origin_id=origin_id, + connection_attempts=connection_attempts, + connection_timeout=connection_timeout, + custom_headers=custom_headers, + custom_origin_config=custom_origin_config, + origin_access_control_id=origin_access_control_id, + origin_path=origin_path, + origin_shield=origin_shield, + s3_origin_config=s3_origin_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + origin_id: Optional[pulumi.Input[str]] = None, + connection_attempts: Optional[pulumi.Input[int]] = None, + connection_timeout: Optional[pulumi.Input[int]] = None, + custom_headers: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOriginCustomHeaderArgs']]]] = None, + custom_origin_config: Optional[pulumi.Input['DistributionOriginCustomOriginConfigArgs']] = None, + origin_access_control_id: Optional[pulumi.Input[str]] = None, + origin_path: Optional[pulumi.Input[str]] = None, + origin_shield: Optional[pulumi.Input['DistributionOriginOriginShieldArgs']] = None, + s3_origin_config: Optional[pulumi.Input['DistributionOriginS3OriginConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if origin_id is None and 'originId' in kwargs: + origin_id = kwargs['originId'] + if origin_id is None: + raise TypeError("Missing 'origin_id' argument") + if connection_attempts is None and 'connectionAttempts' in kwargs: + connection_attempts = kwargs['connectionAttempts'] + if connection_timeout is None and 'connectionTimeout' in kwargs: + connection_timeout = kwargs['connectionTimeout'] + if custom_headers is None and 'customHeaders' in kwargs: + custom_headers = kwargs['customHeaders'] + if custom_origin_config is None and 'customOriginConfig' in kwargs: + custom_origin_config = kwargs['customOriginConfig'] + if origin_access_control_id is None and 'originAccessControlId' in kwargs: + origin_access_control_id = kwargs['originAccessControlId'] + if origin_path is None and 'originPath' in kwargs: + origin_path = kwargs['originPath'] + if origin_shield is None and 'originShield' in kwargs: + origin_shield = kwargs['originShield'] + if s3_origin_config is None and 's3OriginConfig' in kwargs: + s3_origin_config = kwargs['s3OriginConfig'] + + _setter("domain_name", domain_name) + _setter("origin_id", origin_id) if connection_attempts is not None: - pulumi.set(__self__, "connection_attempts", connection_attempts) + _setter("connection_attempts", connection_attempts) if connection_timeout is not None: - pulumi.set(__self__, "connection_timeout", connection_timeout) + _setter("connection_timeout", connection_timeout) if custom_headers is not None: - pulumi.set(__self__, "custom_headers", custom_headers) + _setter("custom_headers", custom_headers) if custom_origin_config is not None: - pulumi.set(__self__, "custom_origin_config", custom_origin_config) + _setter("custom_origin_config", custom_origin_config) if origin_access_control_id is not None: - pulumi.set(__self__, "origin_access_control_id", origin_access_control_id) + _setter("origin_access_control_id", origin_access_control_id) if origin_path is not None: - pulumi.set(__self__, "origin_path", origin_path) + _setter("origin_path", origin_path) if origin_shield is not None: - pulumi.set(__self__, "origin_shield", origin_shield) + _setter("origin_shield", origin_shield) if s3_origin_config is not None: - pulumi.set(__self__, "s3_origin_config", s3_origin_config) + _setter("s3_origin_config", s3_origin_config) @property @pulumi.getter(name="domainName") @@ -1748,7 +2439,7 @@ def domain_name(self, value: pulumi.Input[str]): @pulumi.getter(name="originId") def origin_id(self) -> pulumi.Input[str]: """ - Unique identifier for the origin. + Unique identifier of the member origin. """ return pulumi.get(self, "origin_id") @@ -1858,8 +2549,25 @@ class DistributionOriginCustomHeaderArgs: def __init__(__self__, *, name: pulumi.Input[str], value: pulumi.Input[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + DistributionOriginCustomHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1897,14 +2605,55 @@ def __init__(__self__, *, :param pulumi.Input[int] origin_keepalive_timeout: The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. :param pulumi.Input[int] origin_read_timeout: The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. """ - pulumi.set(__self__, "http_port", http_port) - pulumi.set(__self__, "https_port", https_port) - pulumi.set(__self__, "origin_protocol_policy", origin_protocol_policy) - pulumi.set(__self__, "origin_ssl_protocols", origin_ssl_protocols) + DistributionOriginCustomOriginConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_port=http_port, + https_port=https_port, + origin_protocol_policy=origin_protocol_policy, + origin_ssl_protocols=origin_ssl_protocols, + origin_keepalive_timeout=origin_keepalive_timeout, + origin_read_timeout=origin_read_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_port: Optional[pulumi.Input[int]] = None, + https_port: Optional[pulumi.Input[int]] = None, + origin_protocol_policy: Optional[pulumi.Input[str]] = None, + origin_ssl_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + origin_keepalive_timeout: Optional[pulumi.Input[int]] = None, + origin_read_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_port is None and 'httpPort' in kwargs: + http_port = kwargs['httpPort'] + if http_port is None: + raise TypeError("Missing 'http_port' argument") + if https_port is None and 'httpsPort' in kwargs: + https_port = kwargs['httpsPort'] + if https_port is None: + raise TypeError("Missing 'https_port' argument") + if origin_protocol_policy is None and 'originProtocolPolicy' in kwargs: + origin_protocol_policy = kwargs['originProtocolPolicy'] + if origin_protocol_policy is None: + raise TypeError("Missing 'origin_protocol_policy' argument") + if origin_ssl_protocols is None and 'originSslProtocols' in kwargs: + origin_ssl_protocols = kwargs['originSslProtocols'] + if origin_ssl_protocols is None: + raise TypeError("Missing 'origin_ssl_protocols' argument") + if origin_keepalive_timeout is None and 'originKeepaliveTimeout' in kwargs: + origin_keepalive_timeout = kwargs['originKeepaliveTimeout'] + if origin_read_timeout is None and 'originReadTimeout' in kwargs: + origin_read_timeout = kwargs['originReadTimeout'] + + _setter("http_port", http_port) + _setter("https_port", https_port) + _setter("origin_protocol_policy", origin_protocol_policy) + _setter("origin_ssl_protocols", origin_ssl_protocols) if origin_keepalive_timeout is not None: - pulumi.set(__self__, "origin_keepalive_timeout", origin_keepalive_timeout) + _setter("origin_keepalive_timeout", origin_keepalive_timeout) if origin_read_timeout is not None: - pulumi.set(__self__, "origin_read_timeout", origin_read_timeout) + _setter("origin_read_timeout", origin_read_timeout) @property @pulumi.getter(name="httpPort") @@ -1988,11 +2737,36 @@ def __init__(__self__, *, """ :param pulumi.Input['DistributionOriginGroupFailoverCriteriaArgs'] failover_criteria: The failover criteria for when to failover to the secondary origin. :param pulumi.Input[Sequence[pulumi.Input['DistributionOriginGroupMemberArgs']]] members: Ordered member configuration blocks assigned to the origin group, where the first member is the primary origin. You must specify two members. - :param pulumi.Input[str] origin_id: Unique identifier for the origin. - """ - pulumi.set(__self__, "failover_criteria", failover_criteria) - pulumi.set(__self__, "members", members) - pulumi.set(__self__, "origin_id", origin_id) + :param pulumi.Input[str] origin_id: Unique identifier of the member origin. + """ + DistributionOriginGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failover_criteria=failover_criteria, + members=members, + origin_id=origin_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failover_criteria: Optional[pulumi.Input['DistributionOriginGroupFailoverCriteriaArgs']] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOriginGroupMemberArgs']]]] = None, + origin_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failover_criteria is None and 'failoverCriteria' in kwargs: + failover_criteria = kwargs['failoverCriteria'] + if failover_criteria is None: + raise TypeError("Missing 'failover_criteria' argument") + if members is None: + raise TypeError("Missing 'members' argument") + if origin_id is None and 'originId' in kwargs: + origin_id = kwargs['originId'] + if origin_id is None: + raise TypeError("Missing 'origin_id' argument") + + _setter("failover_criteria", failover_criteria) + _setter("members", members) + _setter("origin_id", origin_id) @property @pulumi.getter(name="failoverCriteria") @@ -2022,7 +2796,7 @@ def members(self, value: pulumi.Input[Sequence[pulumi.Input['DistributionOriginG @pulumi.getter(name="originId") def origin_id(self) -> pulumi.Input[str]: """ - Unique identifier for the origin. + Unique identifier of the member origin. """ return pulumi.get(self, "origin_id") @@ -2038,7 +2812,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[int]]] status_codes: List of HTTP status codes for the origin group. """ - pulumi.set(__self__, "status_codes", status_codes) + DistributionOriginGroupFailoverCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_codes=status_codes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_codes: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_codes is None and 'statusCodes' in kwargs: + status_codes = kwargs['statusCodes'] + if status_codes is None: + raise TypeError("Missing 'status_codes' argument") + + _setter("status_codes", status_codes) @property @pulumi.getter(name="statusCodes") @@ -2058,15 +2847,30 @@ class DistributionOriginGroupMemberArgs: def __init__(__self__, *, origin_id: pulumi.Input[str]): """ - :param pulumi.Input[str] origin_id: Unique identifier for the origin. + :param pulumi.Input[str] origin_id: Unique identifier of the member origin. """ - pulumi.set(__self__, "origin_id", origin_id) + DistributionOriginGroupMemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + origin_id=origin_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + origin_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if origin_id is None and 'originId' in kwargs: + origin_id = kwargs['originId'] + if origin_id is None: + raise TypeError("Missing 'origin_id' argument") + + _setter("origin_id", origin_id) @property @pulumi.getter(name="originId") def origin_id(self) -> pulumi.Input[str]: """ - Unique identifier for the origin. + Unique identifier of the member origin. """ return pulumi.get(self, "origin_id") @@ -2081,18 +2885,35 @@ def __init__(__self__, *, enabled: pulumi.Input[bool], origin_shield_region: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[bool] enabled: Whether the distribution is enabled to accept end user requests for content. + :param pulumi.Input[bool] enabled: Whether Origin Shield is enabled. :param pulumi.Input[str] origin_shield_region: AWS Region for Origin Shield. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as `us-east-2`. """ - pulumi.set(__self__, "enabled", enabled) + DistributionOriginOriginShieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + origin_shield_region=origin_shield_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + origin_shield_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if origin_shield_region is None and 'originShieldRegion' in kwargs: + origin_shield_region = kwargs['originShieldRegion'] + + _setter("enabled", enabled) if origin_shield_region is not None: - pulumi.set(__self__, "origin_shield_region", origin_shield_region) + _setter("origin_shield_region", origin_shield_region) @property @pulumi.getter def enabled(self) -> pulumi.Input[bool]: """ - Whether the distribution is enabled to accept end user requests for content. + Whether Origin Shield is enabled. """ return pulumi.get(self, "enabled") @@ -2120,7 +2941,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] origin_access_identity: The CloudFront origin access identity to associate with the origin. """ - pulumi.set(__self__, "origin_access_identity", origin_access_identity) + DistributionOriginS3OriginConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + origin_access_identity=origin_access_identity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + origin_access_identity: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if origin_access_identity is None and 'originAccessIdentity' in kwargs: + origin_access_identity = kwargs['originAccessIdentity'] + if origin_access_identity is None: + raise TypeError("Missing 'origin_access_identity' argument") + + _setter("origin_access_identity", origin_access_identity) @property @pulumi.getter(name="originAccessIdentity") @@ -2139,7 +2975,22 @@ def origin_access_identity(self, value: pulumi.Input[str]): class DistributionRestrictionsArgs: def __init__(__self__, *, geo_restriction: pulumi.Input['DistributionRestrictionsGeoRestrictionArgs']): - pulumi.set(__self__, "geo_restriction", geo_restriction) + DistributionRestrictionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + geo_restriction=geo_restriction, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + geo_restriction: Optional[pulumi.Input['DistributionRestrictionsGeoRestrictionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if geo_restriction is None and 'geoRestriction' in kwargs: + geo_restriction = kwargs['geoRestriction'] + if geo_restriction is None: + raise TypeError("Missing 'geo_restriction' argument") + + _setter("geo_restriction", geo_restriction) @property @pulumi.getter(name="geoRestriction") @@ -2160,9 +3011,26 @@ def __init__(__self__, *, :param pulumi.Input[str] restriction_type: Method that you want to use to restrict distribution of your content by country: `none`, `whitelist`, or `blacklist`. :param pulumi.Input[Sequence[pulumi.Input[str]]] locations: [ISO 3166-1-alpha-2 codes][4] for which you want CloudFront either to distribute your content (`whitelist`) or not distribute your content (`blacklist`). If the type is specified as `none` an empty array can be used. """ - pulumi.set(__self__, "restriction_type", restriction_type) + DistributionRestrictionsGeoRestrictionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + restriction_type=restriction_type, + locations=locations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + restriction_type: Optional[pulumi.Input[str]] = None, + locations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if restriction_type is None and 'restrictionType' in kwargs: + restriction_type = kwargs['restrictionType'] + if restriction_type is None: + raise TypeError("Missing 'restriction_type' argument") + + _setter("restriction_type", restriction_type) if locations is not None: - pulumi.set(__self__, "locations", locations) + _setter("locations", locations) @property @pulumi.getter(name="restrictionType") @@ -2195,19 +3063,32 @@ def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, items: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionTrustedKeyGroupItemArgs']]]] = None): """ - :param pulumi.Input[bool] enabled: Whether the distribution is enabled to accept end user requests for content. + :param pulumi.Input[bool] enabled: Whether Origin Shield is enabled. :param pulumi.Input[Sequence[pulumi.Input['DistributionTrustedKeyGroupItemArgs']]] items: List of nested attributes for each trusted signer """ + DistributionTrustedKeyGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionTrustedKeyGroupItemArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def enabled(self) -> Optional[pulumi.Input[bool]]: """ - Whether the distribution is enabled to accept end user requests for content. + Whether Origin Shield is enabled. """ return pulumi.get(self, "enabled") @@ -2237,10 +3118,27 @@ def __init__(__self__, *, :param pulumi.Input[str] key_group_id: ID of the key group that contains the public keys. :param pulumi.Input[Sequence[pulumi.Input[str]]] key_pair_ids: Set of active CloudFront key pairs associated with the signer account """ + DistributionTrustedKeyGroupItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_group_id=key_group_id, + key_pair_ids=key_pair_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_group_id: Optional[pulumi.Input[str]] = None, + key_pair_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_group_id is None and 'keyGroupId' in kwargs: + key_group_id = kwargs['keyGroupId'] + if key_pair_ids is None and 'keyPairIds' in kwargs: + key_pair_ids = kwargs['keyPairIds'] + if key_group_id is not None: - pulumi.set(__self__, "key_group_id", key_group_id) + _setter("key_group_id", key_group_id) if key_pair_ids is not None: - pulumi.set(__self__, "key_pair_ids", key_pair_ids) + _setter("key_pair_ids", key_pair_ids) @property @pulumi.getter(name="keyGroupId") @@ -2273,19 +3171,32 @@ def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, items: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionTrustedSignerItemArgs']]]] = None): """ - :param pulumi.Input[bool] enabled: Whether the distribution is enabled to accept end user requests for content. + :param pulumi.Input[bool] enabled: Whether Origin Shield is enabled. :param pulumi.Input[Sequence[pulumi.Input['DistributionTrustedSignerItemArgs']]] items: List of nested attributes for each trusted signer """ + DistributionTrustedSignerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionTrustedSignerItemArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def enabled(self) -> Optional[pulumi.Input[bool]]: """ - Whether the distribution is enabled to accept end user requests for content. + Whether Origin Shield is enabled. """ return pulumi.get(self, "enabled") @@ -2315,10 +3226,27 @@ def __init__(__self__, *, :param pulumi.Input[str] aws_account_number: AWS account ID or `self` :param pulumi.Input[Sequence[pulumi.Input[str]]] key_pair_ids: Set of active CloudFront key pairs associated with the signer account """ + DistributionTrustedSignerItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_account_number=aws_account_number, + key_pair_ids=key_pair_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_account_number: Optional[pulumi.Input[str]] = None, + key_pair_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_number is None and 'awsAccountNumber' in kwargs: + aws_account_number = kwargs['awsAccountNumber'] + if key_pair_ids is None and 'keyPairIds' in kwargs: + key_pair_ids = kwargs['keyPairIds'] + if aws_account_number is not None: - pulumi.set(__self__, "aws_account_number", aws_account_number) + _setter("aws_account_number", aws_account_number) if key_pair_ids is not None: - pulumi.set(__self__, "key_pair_ids", key_pair_ids) + _setter("key_pair_ids", key_pair_ids) @property @pulumi.getter(name="awsAccountNumber") @@ -2360,16 +3288,45 @@ def __init__(__self__, *, :param pulumi.Input[str] minimum_protocol_version: Minimum version of the SSL protocol that you want CloudFront to use for HTTPS connections. Can only be set if `cloudfront_default_certificate = false`. See all possible values in [this](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html) table under "Security policy." Some examples include: `TLSv1.2_2019` and `TLSv1.2_2021`. Default: `TLSv1`. **NOTE**: If you are using a custom certificate (specified with `acm_certificate_arn` or `iam_certificate_id`), and have specified `sni-only` in `ssl_support_method`, `TLSv1` or later must be specified. If you have specified `vip` in `ssl_support_method`, only `SSLv3` or `TLSv1` can be specified. If you have specified `cloudfront_default_certificate`, `TLSv1` must be specified. :param pulumi.Input[str] ssl_support_method: How you want CloudFront to serve HTTPS requests. One of `vip` or `sni-only`. Required if you specify `acm_certificate_arn` or `iam_certificate_id`. **NOTE:** `vip` causes CloudFront to use a dedicated IP address and may incur extra charges. """ + DistributionViewerCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm_certificate_arn=acm_certificate_arn, + cloudfront_default_certificate=cloudfront_default_certificate, + iam_certificate_id=iam_certificate_id, + minimum_protocol_version=minimum_protocol_version, + ssl_support_method=ssl_support_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm_certificate_arn: Optional[pulumi.Input[str]] = None, + cloudfront_default_certificate: Optional[pulumi.Input[bool]] = None, + iam_certificate_id: Optional[pulumi.Input[str]] = None, + minimum_protocol_version: Optional[pulumi.Input[str]] = None, + ssl_support_method: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm_certificate_arn is None and 'acmCertificateArn' in kwargs: + acm_certificate_arn = kwargs['acmCertificateArn'] + if cloudfront_default_certificate is None and 'cloudfrontDefaultCertificate' in kwargs: + cloudfront_default_certificate = kwargs['cloudfrontDefaultCertificate'] + if iam_certificate_id is None and 'iamCertificateId' in kwargs: + iam_certificate_id = kwargs['iamCertificateId'] + if minimum_protocol_version is None and 'minimumProtocolVersion' in kwargs: + minimum_protocol_version = kwargs['minimumProtocolVersion'] + if ssl_support_method is None and 'sslSupportMethod' in kwargs: + ssl_support_method = kwargs['sslSupportMethod'] + if acm_certificate_arn is not None: - pulumi.set(__self__, "acm_certificate_arn", acm_certificate_arn) + _setter("acm_certificate_arn", acm_certificate_arn) if cloudfront_default_certificate is not None: - pulumi.set(__self__, "cloudfront_default_certificate", cloudfront_default_certificate) + _setter("cloudfront_default_certificate", cloudfront_default_certificate) if iam_certificate_id is not None: - pulumi.set(__self__, "iam_certificate_id", iam_certificate_id) + _setter("iam_certificate_id", iam_certificate_id) if minimum_protocol_version is not None: - pulumi.set(__self__, "minimum_protocol_version", minimum_protocol_version) + _setter("minimum_protocol_version", minimum_protocol_version) if ssl_support_method is not None: - pulumi.set(__self__, "ssl_support_method", ssl_support_method) + _setter("ssl_support_method", ssl_support_method) @property @pulumi.getter(name="acmCertificateArn") @@ -2441,8 +3398,29 @@ def __init__(__self__, *, :param pulumi.Input['FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesArgs'] content_type_profiles: Object that contains an attribute `items` that contains the list of configurations for a field-level encryption content type-profile. See Content Type Profile. :param pulumi.Input[bool] forward_when_content_type_is_unknown: specifies what to do when an unknown content type is provided for the profile. If true, content is forwarded without being encrypted when the content type is unknown. If false (the default), an error is returned when the content type is unknown. """ - pulumi.set(__self__, "content_type_profiles", content_type_profiles) - pulumi.set(__self__, "forward_when_content_type_is_unknown", forward_when_content_type_is_unknown) + FieldLevelEncryptionConfigContentTypeProfileConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type_profiles=content_type_profiles, + forward_when_content_type_is_unknown=forward_when_content_type_is_unknown, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type_profiles: Optional[pulumi.Input['FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesArgs']] = None, + forward_when_content_type_is_unknown: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type_profiles is None and 'contentTypeProfiles' in kwargs: + content_type_profiles = kwargs['contentTypeProfiles'] + if content_type_profiles is None: + raise TypeError("Missing 'content_type_profiles' argument") + if forward_when_content_type_is_unknown is None and 'forwardWhenContentTypeIsUnknown' in kwargs: + forward_when_content_type_is_unknown = kwargs['forwardWhenContentTypeIsUnknown'] + if forward_when_content_type_is_unknown is None: + raise TypeError("Missing 'forward_when_content_type_is_unknown' argument") + + _setter("content_type_profiles", content_type_profiles) + _setter("forward_when_content_type_is_unknown", forward_when_content_type_is_unknown) @property @pulumi.getter(name="contentTypeProfiles") @@ -2473,7 +3451,20 @@ def forward_when_content_type_is_unknown(self, value: pulumi.Input[bool]): class FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesArgs: def __init__(__self__, *, items: pulumi.Input[Sequence[pulumi.Input['FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesItemArgs']]]): - pulumi.set(__self__, "items", items) + FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input['FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesItemArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -2496,10 +3487,33 @@ def __init__(__self__, *, :param pulumi.Input[str] format: The format for a field-level encryption content type-profile mapping. Valid value is `URLEncoded`. :param pulumi.Input[str] profile_id: The profile ID for a field-level encryption content type-profile mapping. """ - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "format", format) + FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + format=format, + profile_id=profile_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + profile_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if profile_id is None and 'profileId' in kwargs: + profile_id = kwargs['profileId'] + + _setter("content_type", content_type) + _setter("format", format) if profile_id is not None: - pulumi.set(__self__, "profile_id", profile_id) + _setter("profile_id", profile_id) @property @pulumi.getter(name="contentType") @@ -2547,9 +3561,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] forward_when_query_arg_profile_is_unknown: Flag to set if you want a request to be forwarded to the origin even if the profile specified by the field-level encryption query argument, fle-profile, is unknown. :param pulumi.Input['FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesArgs'] query_arg_profiles: Object that contains an attribute `items` that contains the list ofrofiles specified for query argument-profile mapping for field-level encryption. see Query Arg Profile. """ - pulumi.set(__self__, "forward_when_query_arg_profile_is_unknown", forward_when_query_arg_profile_is_unknown) + FieldLevelEncryptionConfigQueryArgProfileConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + forward_when_query_arg_profile_is_unknown=forward_when_query_arg_profile_is_unknown, + query_arg_profiles=query_arg_profiles, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + forward_when_query_arg_profile_is_unknown: Optional[pulumi.Input[bool]] = None, + query_arg_profiles: Optional[pulumi.Input['FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forward_when_query_arg_profile_is_unknown is None and 'forwardWhenQueryArgProfileIsUnknown' in kwargs: + forward_when_query_arg_profile_is_unknown = kwargs['forwardWhenQueryArgProfileIsUnknown'] + if forward_when_query_arg_profile_is_unknown is None: + raise TypeError("Missing 'forward_when_query_arg_profile_is_unknown' argument") + if query_arg_profiles is None and 'queryArgProfiles' in kwargs: + query_arg_profiles = kwargs['queryArgProfiles'] + + _setter("forward_when_query_arg_profile_is_unknown", forward_when_query_arg_profile_is_unknown) if query_arg_profiles is not None: - pulumi.set(__self__, "query_arg_profiles", query_arg_profiles) + _setter("query_arg_profiles", query_arg_profiles) @property @pulumi.getter(name="forwardWhenQueryArgProfileIsUnknown") @@ -2580,8 +3613,19 @@ def query_arg_profiles(self, value: Optional[pulumi.Input['FieldLevelEncryptionC class FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input['FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesItemArgs']]]] = None): + FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input['FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesItemArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -2602,8 +3646,29 @@ def __init__(__self__, *, :param pulumi.Input[str] profile_id: The profile ID for a field-level encryption content type-profile mapping. :param pulumi.Input[str] query_arg: Query argument for field-level encryption query argument-profile mapping. """ - pulumi.set(__self__, "profile_id", profile_id) - pulumi.set(__self__, "query_arg", query_arg) + FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + profile_id=profile_id, + query_arg=query_arg, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + profile_id: Optional[pulumi.Input[str]] = None, + query_arg: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if profile_id is None and 'profileId' in kwargs: + profile_id = kwargs['profileId'] + if profile_id is None: + raise TypeError("Missing 'profile_id' argument") + if query_arg is None and 'queryArg' in kwargs: + query_arg = kwargs['queryArg'] + if query_arg is None: + raise TypeError("Missing 'query_arg' argument") + + _setter("profile_id", profile_id) + _setter("query_arg", query_arg) @property @pulumi.getter(name="profileId") @@ -2634,8 +3699,19 @@ def query_arg(self, value: pulumi.Input[str]): class FieldLevelEncryptionProfileEncryptionEntitiesArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input['FieldLevelEncryptionProfileEncryptionEntitiesItemArgs']]]] = None): + FieldLevelEncryptionProfileEncryptionEntitiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input['FieldLevelEncryptionProfileEncryptionEntitiesItemArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -2658,9 +3734,36 @@ def __init__(__self__, *, :param pulumi.Input[str] provider_id: The provider associated with the public key being used for encryption. :param pulumi.Input[str] public_key_id: The public key associated with a set of field-level encryption patterns, to be used when encrypting the fields that match the patterns. """ - pulumi.set(__self__, "field_patterns", field_patterns) - pulumi.set(__self__, "provider_id", provider_id) - pulumi.set(__self__, "public_key_id", public_key_id) + FieldLevelEncryptionProfileEncryptionEntitiesItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_patterns=field_patterns, + provider_id=provider_id, + public_key_id=public_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_patterns: Optional[pulumi.Input['FieldLevelEncryptionProfileEncryptionEntitiesItemFieldPatternsArgs']] = None, + provider_id: Optional[pulumi.Input[str]] = None, + public_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_patterns is None and 'fieldPatterns' in kwargs: + field_patterns = kwargs['fieldPatterns'] + if field_patterns is None: + raise TypeError("Missing 'field_patterns' argument") + if provider_id is None and 'providerId' in kwargs: + provider_id = kwargs['providerId'] + if provider_id is None: + raise TypeError("Missing 'provider_id' argument") + if public_key_id is None and 'publicKeyId' in kwargs: + public_key_id = kwargs['publicKeyId'] + if public_key_id is None: + raise TypeError("Missing 'public_key_id' argument") + + _setter("field_patterns", field_patterns) + _setter("provider_id", provider_id) + _setter("public_key_id", public_key_id) @property @pulumi.getter(name="fieldPatterns") @@ -2703,8 +3806,19 @@ def public_key_id(self, value: pulumi.Input[str]): class FieldLevelEncryptionProfileEncryptionEntitiesItemFieldPatternsArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + FieldLevelEncryptionProfileEncryptionEntitiesItemFieldPatternsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -2723,7 +3837,22 @@ def __init__(__self__, *, """ :param pulumi.Input['MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs'] realtime_metrics_subscription_config: A subscription configuration for additional CloudWatch metrics. See below. """ - pulumi.set(__self__, "realtime_metrics_subscription_config", realtime_metrics_subscription_config) + MonitoringSubscriptionMonitoringSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + realtime_metrics_subscription_config=realtime_metrics_subscription_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + realtime_metrics_subscription_config: Optional[pulumi.Input['MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if realtime_metrics_subscription_config is None and 'realtimeMetricsSubscriptionConfig' in kwargs: + realtime_metrics_subscription_config = kwargs['realtimeMetricsSubscriptionConfig'] + if realtime_metrics_subscription_config is None: + raise TypeError("Missing 'realtime_metrics_subscription_config' argument") + + _setter("realtime_metrics_subscription_config", realtime_metrics_subscription_config) @property @pulumi.getter(name="realtimeMetricsSubscriptionConfig") @@ -2745,7 +3874,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] realtime_metrics_subscription_status: A flag that indicates whether additional CloudWatch metrics are enabled for a given CloudFront distribution. Valid values are `Enabled` and `Disabled`. See below. """ - pulumi.set(__self__, "realtime_metrics_subscription_status", realtime_metrics_subscription_status) + MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + realtime_metrics_subscription_status=realtime_metrics_subscription_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + realtime_metrics_subscription_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if realtime_metrics_subscription_status is None and 'realtimeMetricsSubscriptionStatus' in kwargs: + realtime_metrics_subscription_status = kwargs['realtimeMetricsSubscriptionStatus'] + if realtime_metrics_subscription_status is None: + raise TypeError("Missing 'realtime_metrics_subscription_status' argument") + + _setter("realtime_metrics_subscription_status", realtime_metrics_subscription_status) @property @pulumi.getter(name="realtimeMetricsSubscriptionStatus") @@ -2765,9 +3909,26 @@ class OriginRequestPolicyCookiesConfigArgs: def __init__(__self__, *, cookie_behavior: pulumi.Input[str], cookies: Optional[pulumi.Input['OriginRequestPolicyCookiesConfigCookiesArgs']] = None): - pulumi.set(__self__, "cookie_behavior", cookie_behavior) + OriginRequestPolicyCookiesConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_behavior=cookie_behavior, + cookies=cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_behavior: Optional[pulumi.Input[str]] = None, + cookies: Optional[pulumi.Input['OriginRequestPolicyCookiesConfigCookiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_behavior is None and 'cookieBehavior' in kwargs: + cookie_behavior = kwargs['cookieBehavior'] + if cookie_behavior is None: + raise TypeError("Missing 'cookie_behavior' argument") + + _setter("cookie_behavior", cookie_behavior) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) @property @pulumi.getter(name="cookieBehavior") @@ -2792,8 +3953,19 @@ def cookies(self, value: Optional[pulumi.Input['OriginRequestPolicyCookiesConfig class OriginRequestPolicyCookiesConfigCookiesArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + OriginRequestPolicyCookiesConfigCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -2810,10 +3982,25 @@ class OriginRequestPolicyHeadersConfigArgs: def __init__(__self__, *, header_behavior: Optional[pulumi.Input[str]] = None, headers: Optional[pulumi.Input['OriginRequestPolicyHeadersConfigHeadersArgs']] = None): + OriginRequestPolicyHeadersConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_behavior=header_behavior, + headers=headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_behavior: Optional[pulumi.Input[str]] = None, + headers: Optional[pulumi.Input['OriginRequestPolicyHeadersConfigHeadersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_behavior is None and 'headerBehavior' in kwargs: + header_behavior = kwargs['headerBehavior'] + if header_behavior is not None: - pulumi.set(__self__, "header_behavior", header_behavior) + _setter("header_behavior", header_behavior) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) @property @pulumi.getter(name="headerBehavior") @@ -2838,8 +4025,19 @@ def headers(self, value: Optional[pulumi.Input['OriginRequestPolicyHeadersConfig class OriginRequestPolicyHeadersConfigHeadersArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + OriginRequestPolicyHeadersConfigHeadersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -2856,9 +4054,28 @@ class OriginRequestPolicyQueryStringsConfigArgs: def __init__(__self__, *, query_string_behavior: pulumi.Input[str], query_strings: Optional[pulumi.Input['OriginRequestPolicyQueryStringsConfigQueryStringsArgs']] = None): - pulumi.set(__self__, "query_string_behavior", query_string_behavior) + OriginRequestPolicyQueryStringsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_string_behavior=query_string_behavior, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_string_behavior: Optional[pulumi.Input[str]] = None, + query_strings: Optional[pulumi.Input['OriginRequestPolicyQueryStringsConfigQueryStringsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_string_behavior is None and 'queryStringBehavior' in kwargs: + query_string_behavior = kwargs['queryStringBehavior'] + if query_string_behavior is None: + raise TypeError("Missing 'query_string_behavior' argument") + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + + _setter("query_string_behavior", query_string_behavior) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) @property @pulumi.getter(name="queryStringBehavior") @@ -2883,8 +4100,19 @@ def query_strings(self, value: Optional[pulumi.Input['OriginRequestPolicyQuerySt class OriginRequestPolicyQueryStringsConfigQueryStringsArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + OriginRequestPolicyQueryStringsConfigQueryStringsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -2905,8 +4133,29 @@ def __init__(__self__, *, :param pulumi.Input['RealtimeLogConfigEndpointKinesisStreamConfigArgs'] kinesis_stream_config: The Amazon Kinesis data stream configuration. :param pulumi.Input[str] stream_type: The type of data stream where real-time log data is sent. The only valid value is `Kinesis`. """ - pulumi.set(__self__, "kinesis_stream_config", kinesis_stream_config) - pulumi.set(__self__, "stream_type", stream_type) + RealtimeLogConfigEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kinesis_stream_config=kinesis_stream_config, + stream_type=stream_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kinesis_stream_config: Optional[pulumi.Input['RealtimeLogConfigEndpointKinesisStreamConfigArgs']] = None, + stream_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kinesis_stream_config is None and 'kinesisStreamConfig' in kwargs: + kinesis_stream_config = kwargs['kinesisStreamConfig'] + if kinesis_stream_config is None: + raise TypeError("Missing 'kinesis_stream_config' argument") + if stream_type is None and 'streamType' in kwargs: + stream_type = kwargs['streamType'] + if stream_type is None: + raise TypeError("Missing 'stream_type' argument") + + _setter("kinesis_stream_config", kinesis_stream_config) + _setter("stream_type", stream_type) @property @pulumi.getter(name="kinesisStreamConfig") @@ -2943,8 +4192,29 @@ def __init__(__self__, *, See the [AWS documentation](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role) for more information. :param pulumi.Input[str] stream_arn: The ARN of the Kinesis data stream. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_arn", stream_arn) + RealtimeLogConfigEndpointKinesisStreamConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + stream_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("role_arn", role_arn) + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="roleArn") @@ -2991,15 +4261,62 @@ def __init__(__self__, *, :param pulumi.Input['ResponseHeadersPolicyCorsConfigAccessControlExposeHeadersArgs'] access_control_expose_headers: Object that contains an attribute `items` that contains a list of HTTP headers that CloudFront includes as values for the `Access-Control-Expose-Headers` HTTP response header. :param pulumi.Input[int] access_control_max_age_sec: A number that CloudFront uses as the value for the `Access-Control-Max-Age` HTTP response header. """ - pulumi.set(__self__, "access_control_allow_credentials", access_control_allow_credentials) - pulumi.set(__self__, "access_control_allow_headers", access_control_allow_headers) - pulumi.set(__self__, "access_control_allow_methods", access_control_allow_methods) - pulumi.set(__self__, "access_control_allow_origins", access_control_allow_origins) - pulumi.set(__self__, "origin_override", origin_override) + ResponseHeadersPolicyCorsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_control_allow_credentials=access_control_allow_credentials, + access_control_allow_headers=access_control_allow_headers, + access_control_allow_methods=access_control_allow_methods, + access_control_allow_origins=access_control_allow_origins, + origin_override=origin_override, + access_control_expose_headers=access_control_expose_headers, + access_control_max_age_sec=access_control_max_age_sec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_control_allow_credentials: Optional[pulumi.Input[bool]] = None, + access_control_allow_headers: Optional[pulumi.Input['ResponseHeadersPolicyCorsConfigAccessControlAllowHeadersArgs']] = None, + access_control_allow_methods: Optional[pulumi.Input['ResponseHeadersPolicyCorsConfigAccessControlAllowMethodsArgs']] = None, + access_control_allow_origins: Optional[pulumi.Input['ResponseHeadersPolicyCorsConfigAccessControlAllowOriginsArgs']] = None, + origin_override: Optional[pulumi.Input[bool]] = None, + access_control_expose_headers: Optional[pulumi.Input['ResponseHeadersPolicyCorsConfigAccessControlExposeHeadersArgs']] = None, + access_control_max_age_sec: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_control_allow_credentials is None and 'accessControlAllowCredentials' in kwargs: + access_control_allow_credentials = kwargs['accessControlAllowCredentials'] + if access_control_allow_credentials is None: + raise TypeError("Missing 'access_control_allow_credentials' argument") + if access_control_allow_headers is None and 'accessControlAllowHeaders' in kwargs: + access_control_allow_headers = kwargs['accessControlAllowHeaders'] + if access_control_allow_headers is None: + raise TypeError("Missing 'access_control_allow_headers' argument") + if access_control_allow_methods is None and 'accessControlAllowMethods' in kwargs: + access_control_allow_methods = kwargs['accessControlAllowMethods'] + if access_control_allow_methods is None: + raise TypeError("Missing 'access_control_allow_methods' argument") + if access_control_allow_origins is None and 'accessControlAllowOrigins' in kwargs: + access_control_allow_origins = kwargs['accessControlAllowOrigins'] + if access_control_allow_origins is None: + raise TypeError("Missing 'access_control_allow_origins' argument") + if origin_override is None and 'originOverride' in kwargs: + origin_override = kwargs['originOverride'] + if origin_override is None: + raise TypeError("Missing 'origin_override' argument") + if access_control_expose_headers is None and 'accessControlExposeHeaders' in kwargs: + access_control_expose_headers = kwargs['accessControlExposeHeaders'] + if access_control_max_age_sec is None and 'accessControlMaxAgeSec' in kwargs: + access_control_max_age_sec = kwargs['accessControlMaxAgeSec'] + + _setter("access_control_allow_credentials", access_control_allow_credentials) + _setter("access_control_allow_headers", access_control_allow_headers) + _setter("access_control_allow_methods", access_control_allow_methods) + _setter("access_control_allow_origins", access_control_allow_origins) + _setter("origin_override", origin_override) if access_control_expose_headers is not None: - pulumi.set(__self__, "access_control_expose_headers", access_control_expose_headers) + _setter("access_control_expose_headers", access_control_expose_headers) if access_control_max_age_sec is not None: - pulumi.set(__self__, "access_control_max_age_sec", access_control_max_age_sec) + _setter("access_control_max_age_sec", access_control_max_age_sec) @property @pulumi.getter(name="accessControlAllowCredentials") @@ -3090,8 +4407,19 @@ def access_control_max_age_sec(self, value: Optional[pulumi.Input[int]]): class ResponseHeadersPolicyCorsConfigAccessControlAllowHeadersArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + ResponseHeadersPolicyCorsConfigAccessControlAllowHeadersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3107,8 +4435,19 @@ def items(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): class ResponseHeadersPolicyCorsConfigAccessControlAllowMethodsArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + ResponseHeadersPolicyCorsConfigAccessControlAllowMethodsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3124,8 +4463,19 @@ def items(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): class ResponseHeadersPolicyCorsConfigAccessControlAllowOriginsArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + ResponseHeadersPolicyCorsConfigAccessControlAllowOriginsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3141,8 +4491,19 @@ def items(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): class ResponseHeadersPolicyCorsConfigAccessControlExposeHeadersArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + ResponseHeadersPolicyCorsConfigAccessControlExposeHeadersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3158,8 +4519,19 @@ def items(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): class ResponseHeadersPolicyCustomHeadersConfigArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input['ResponseHeadersPolicyCustomHeadersConfigItemArgs']]]] = None): + ResponseHeadersPolicyCustomHeadersConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input['ResponseHeadersPolicyCustomHeadersConfigItemArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3179,12 +4551,33 @@ def __init__(__self__, *, value: pulumi.Input[str]): """ :param pulumi.Input[str] header: The HTTP response header name. - :param pulumi.Input[bool] override: Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + :param pulumi.Input[bool] override: Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. :param pulumi.Input[str] value: The value for the HTTP response header. """ - pulumi.set(__self__, "header", header) - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "value", value) + ResponseHeadersPolicyCustomHeadersConfigItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + override=override, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[pulumi.Input[str]] = None, + override: Optional[pulumi.Input[bool]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is None: + raise TypeError("Missing 'header' argument") + if override is None: + raise TypeError("Missing 'override' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("header", header) + _setter("override", override) + _setter("value", value) @property @pulumi.getter @@ -3202,7 +4595,7 @@ def header(self, value: pulumi.Input[str]): @pulumi.getter def override(self) -> pulumi.Input[bool]: """ - Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. """ return pulumi.get(self, "override") @@ -3227,8 +4620,19 @@ def value(self, value: pulumi.Input[str]): class ResponseHeadersPolicyRemoveHeadersConfigArgs: def __init__(__self__, *, items: Optional[pulumi.Input[Sequence[pulumi.Input['ResponseHeadersPolicyRemoveHeadersConfigItemArgs']]]] = None): + ResponseHeadersPolicyRemoveHeadersConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input['ResponseHeadersPolicyRemoveHeadersConfigItemArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3247,7 +4651,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] header: The HTTP response header name. """ - pulumi.set(__self__, "header", header) + ResponseHeadersPolicyRemoveHeadersConfigItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is None: + raise TypeError("Missing 'header' argument") + + _setter("header", header) @property @pulumi.getter @@ -3279,18 +4696,51 @@ def __init__(__self__, *, :param pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurityArgs'] strict_transport_security: Determines whether CloudFront includes the `Strict-Transport-Security` HTTP response header and the header’s value. See Strict Transport Security for more information. :param pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigXssProtectionArgs'] xss_protection: Determine whether CloudFront includes the `X-XSS-Protection` HTTP response header and the header’s value. See XSS Protection for more information. """ + ResponseHeadersPolicySecurityHeadersConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_security_policy=content_security_policy, + content_type_options=content_type_options, + frame_options=frame_options, + referrer_policy=referrer_policy, + strict_transport_security=strict_transport_security, + xss_protection=xss_protection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_security_policy: Optional[pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigContentSecurityPolicyArgs']] = None, + content_type_options: Optional[pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigContentTypeOptionsArgs']] = None, + frame_options: Optional[pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigFrameOptionsArgs']] = None, + referrer_policy: Optional[pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigReferrerPolicyArgs']] = None, + strict_transport_security: Optional[pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurityArgs']] = None, + xss_protection: Optional[pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigXssProtectionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_security_policy is None and 'contentSecurityPolicy' in kwargs: + content_security_policy = kwargs['contentSecurityPolicy'] + if content_type_options is None and 'contentTypeOptions' in kwargs: + content_type_options = kwargs['contentTypeOptions'] + if frame_options is None and 'frameOptions' in kwargs: + frame_options = kwargs['frameOptions'] + if referrer_policy is None and 'referrerPolicy' in kwargs: + referrer_policy = kwargs['referrerPolicy'] + if strict_transport_security is None and 'strictTransportSecurity' in kwargs: + strict_transport_security = kwargs['strictTransportSecurity'] + if xss_protection is None and 'xssProtection' in kwargs: + xss_protection = kwargs['xssProtection'] + if content_security_policy is not None: - pulumi.set(__self__, "content_security_policy", content_security_policy) + _setter("content_security_policy", content_security_policy) if content_type_options is not None: - pulumi.set(__self__, "content_type_options", content_type_options) + _setter("content_type_options", content_type_options) if frame_options is not None: - pulumi.set(__self__, "frame_options", frame_options) + _setter("frame_options", frame_options) if referrer_policy is not None: - pulumi.set(__self__, "referrer_policy", referrer_policy) + _setter("referrer_policy", referrer_policy) if strict_transport_security is not None: - pulumi.set(__self__, "strict_transport_security", strict_transport_security) + _setter("strict_transport_security", strict_transport_security) if xss_protection is not None: - pulumi.set(__self__, "xss_protection", xss_protection) + _setter("xss_protection", xss_protection) @property @pulumi.getter(name="contentSecurityPolicy") @@ -3374,8 +4824,27 @@ def __init__(__self__, *, :param pulumi.Input[str] content_security_policy: The policy directives and their values that CloudFront includes as values for the `Content-Security-Policy` HTTP response header. :param pulumi.Input[bool] override: Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. """ - pulumi.set(__self__, "content_security_policy", content_security_policy) - pulumi.set(__self__, "override", override) + ResponseHeadersPolicySecurityHeadersConfigContentSecurityPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_security_policy=content_security_policy, + override=override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_security_policy: Optional[pulumi.Input[str]] = None, + override: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_security_policy is None and 'contentSecurityPolicy' in kwargs: + content_security_policy = kwargs['contentSecurityPolicy'] + if content_security_policy is None: + raise TypeError("Missing 'content_security_policy' argument") + if override is None: + raise TypeError("Missing 'override' argument") + + _setter("content_security_policy", content_security_policy) + _setter("override", override) @property @pulumi.getter(name="contentSecurityPolicy") @@ -3409,7 +4878,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] override: Whether CloudFront overrides the `X-Content-Type-Options` HTTP response header received from the origin with the one specified in this response headers policy. """ - pulumi.set(__self__, "override", override) + ResponseHeadersPolicySecurityHeadersConfigContentTypeOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + override=override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + override: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if override is None: + raise TypeError("Missing 'override' argument") + + _setter("override", override) @property @pulumi.getter @@ -3433,8 +4915,27 @@ def __init__(__self__, *, :param pulumi.Input[str] frame_option: The value of the `X-Frame-Options` HTTP response header. Valid values: `DENY` | `SAMEORIGIN` :param pulumi.Input[bool] override: Whether CloudFront overrides the `X-Frame-Options` HTTP response header received from the origin with the one specified in this response headers policy. """ - pulumi.set(__self__, "frame_option", frame_option) - pulumi.set(__self__, "override", override) + ResponseHeadersPolicySecurityHeadersConfigFrameOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + frame_option=frame_option, + override=override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frame_option: Optional[pulumi.Input[str]] = None, + override: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frame_option is None and 'frameOption' in kwargs: + frame_option = kwargs['frameOption'] + if frame_option is None: + raise TypeError("Missing 'frame_option' argument") + if override is None: + raise TypeError("Missing 'override' argument") + + _setter("frame_option", frame_option) + _setter("override", override) @property @pulumi.getter(name="frameOption") @@ -3470,8 +4971,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] override: Whether CloudFront overrides the `Referrer-Policy` HTTP response header received from the origin with the one specified in this response headers policy. :param pulumi.Input[str] referrer_policy: The value of the `Referrer-Policy` HTTP response header. Valid Values: `no-referrer` | `no-referrer-when-downgrade` | `origin` | `origin-when-cross-origin` | `same-origin` | `strict-origin` | `strict-origin-when-cross-origin` | `unsafe-url` """ - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "referrer_policy", referrer_policy) + ResponseHeadersPolicySecurityHeadersConfigReferrerPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + override=override, + referrer_policy=referrer_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + override: Optional[pulumi.Input[bool]] = None, + referrer_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if override is None: + raise TypeError("Missing 'override' argument") + if referrer_policy is None and 'referrerPolicy' in kwargs: + referrer_policy = kwargs['referrerPolicy'] + if referrer_policy is None: + raise TypeError("Missing 'referrer_policy' argument") + + _setter("override", override) + _setter("referrer_policy", referrer_policy) @property @pulumi.getter @@ -3511,12 +5031,37 @@ def __init__(__self__, *, :param pulumi.Input[bool] include_subdomains: Whether CloudFront includes the `includeSubDomains` directive in the `Strict-Transport-Security` HTTP response header. :param pulumi.Input[bool] preload: Whether CloudFront includes the `preload` directive in the `Strict-Transport-Security` HTTP response header. """ - pulumi.set(__self__, "access_control_max_age_sec", access_control_max_age_sec) - pulumi.set(__self__, "override", override) + ResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_control_max_age_sec=access_control_max_age_sec, + override=override, + include_subdomains=include_subdomains, + preload=preload, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_control_max_age_sec: Optional[pulumi.Input[int]] = None, + override: Optional[pulumi.Input[bool]] = None, + include_subdomains: Optional[pulumi.Input[bool]] = None, + preload: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_control_max_age_sec is None and 'accessControlMaxAgeSec' in kwargs: + access_control_max_age_sec = kwargs['accessControlMaxAgeSec'] + if access_control_max_age_sec is None: + raise TypeError("Missing 'access_control_max_age_sec' argument") + if override is None: + raise TypeError("Missing 'override' argument") + if include_subdomains is None and 'includeSubdomains' in kwargs: + include_subdomains = kwargs['includeSubdomains'] + + _setter("access_control_max_age_sec", access_control_max_age_sec) + _setter("override", override) if include_subdomains is not None: - pulumi.set(__self__, "include_subdomains", include_subdomains) + _setter("include_subdomains", include_subdomains) if preload is not None: - pulumi.set(__self__, "preload", preload) + _setter("preload", preload) @property @pulumi.getter(name="accessControlMaxAgeSec") @@ -3580,12 +5125,37 @@ def __init__(__self__, *, :param pulumi.Input[bool] mode_block: Whether CloudFront includes the `mode=block` directive in the `X-XSS-Protection` header. :param pulumi.Input[str] report_uri: A reporting URI, which CloudFront uses as the value of the report directive in the `X-XSS-Protection` header. You cannot specify a `report_uri` when `mode_block` is `true`. """ - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "protection", protection) + ResponseHeadersPolicySecurityHeadersConfigXssProtectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + override=override, + protection=protection, + mode_block=mode_block, + report_uri=report_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + override: Optional[pulumi.Input[bool]] = None, + protection: Optional[pulumi.Input[bool]] = None, + mode_block: Optional[pulumi.Input[bool]] = None, + report_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if override is None: + raise TypeError("Missing 'override' argument") + if protection is None: + raise TypeError("Missing 'protection' argument") + if mode_block is None and 'modeBlock' in kwargs: + mode_block = kwargs['modeBlock'] + if report_uri is None and 'reportUri' in kwargs: + report_uri = kwargs['reportUri'] + + _setter("override", override) + _setter("protection", protection) if mode_block is not None: - pulumi.set(__self__, "mode_block", mode_block) + _setter("mode_block", mode_block) if report_uri is not None: - pulumi.set(__self__, "report_uri", report_uri) + _setter("report_uri", report_uri) @property @pulumi.getter @@ -3645,8 +5215,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: A Whether CloudFront adds the `Server-Timing` header to HTTP responses that it sends in response to requests that match a cache behavior that's associated with this response headers policy. :param pulumi.Input[float] sampling_rate: A number 0–100 (inclusive) that specifies the percentage of responses that you want CloudFront to add the Server-Timing header to. Valid range: Minimum value of 0.0. Maximum value of 100.0. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "sampling_rate", sampling_rate) + ResponseHeadersPolicyServerTimingHeadersConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + sampling_rate=sampling_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + sampling_rate: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if sampling_rate is None and 'samplingRate' in kwargs: + sampling_rate = kwargs['samplingRate'] + if sampling_rate is None: + raise TypeError("Missing 'sampling_rate' argument") + + _setter("enabled", enabled) + _setter("sampling_rate", sampling_rate) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/cloudfront/cache_policy.py b/sdk/python/pulumi_aws/cloudfront/cache_policy.py index e87f28c4f32..1173bef94a2 100644 --- a/sdk/python/pulumi_aws/cloudfront/cache_policy.py +++ b/sdk/python/pulumi_aws/cloudfront/cache_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,17 +31,48 @@ def __init__(__self__, *, :param pulumi.Input[int] min_ttl: Minimum amount of time, in seconds, that objects should remain in the CloudFront cache before a new request is sent to the origin to check for updates. :param pulumi.Input[str] name: Unique name used to identify the cache policy. """ - pulumi.set(__self__, "parameters_in_cache_key_and_forwarded_to_origin", parameters_in_cache_key_and_forwarded_to_origin) + CachePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameters_in_cache_key_and_forwarded_to_origin=parameters_in_cache_key_and_forwarded_to_origin, + comment=comment, + default_ttl=default_ttl, + max_ttl=max_ttl, + min_ttl=min_ttl, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameters_in_cache_key_and_forwarded_to_origin: Optional[pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginArgs']] = None, + comment: Optional[pulumi.Input[str]] = None, + default_ttl: Optional[pulumi.Input[int]] = None, + max_ttl: Optional[pulumi.Input[int]] = None, + min_ttl: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameters_in_cache_key_and_forwarded_to_origin is None and 'parametersInCacheKeyAndForwardedToOrigin' in kwargs: + parameters_in_cache_key_and_forwarded_to_origin = kwargs['parametersInCacheKeyAndForwardedToOrigin'] + if parameters_in_cache_key_and_forwarded_to_origin is None: + raise TypeError("Missing 'parameters_in_cache_key_and_forwarded_to_origin' argument") + if default_ttl is None and 'defaultTtl' in kwargs: + default_ttl = kwargs['defaultTtl'] + if max_ttl is None and 'maxTtl' in kwargs: + max_ttl = kwargs['maxTtl'] + if min_ttl is None and 'minTtl' in kwargs: + min_ttl = kwargs['minTtl'] + + _setter("parameters_in_cache_key_and_forwarded_to_origin", parameters_in_cache_key_and_forwarded_to_origin) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if default_ttl is not None: - pulumi.set(__self__, "default_ttl", default_ttl) + _setter("default_ttl", default_ttl) if max_ttl is not None: - pulumi.set(__self__, "max_ttl", max_ttl) + _setter("max_ttl", max_ttl) if min_ttl is not None: - pulumi.set(__self__, "min_ttl", min_ttl) + _setter("min_ttl", min_ttl) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="parametersInCacheKeyAndForwardedToOrigin") @@ -136,20 +167,51 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Unique name used to identify the cache policy. :param pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginArgs'] parameters_in_cache_key_and_forwarded_to_origin: Configuration for including HTTP headers, cookies, and URL query strings in the cache key. For more information, refer to the Parameters In Cache Key And Forwarded To Origin section. """ + _CachePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + default_ttl=default_ttl, + etag=etag, + max_ttl=max_ttl, + min_ttl=min_ttl, + name=name, + parameters_in_cache_key_and_forwarded_to_origin=parameters_in_cache_key_and_forwarded_to_origin, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + default_ttl: Optional[pulumi.Input[int]] = None, + etag: Optional[pulumi.Input[str]] = None, + max_ttl: Optional[pulumi.Input[int]] = None, + min_ttl: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters_in_cache_key_and_forwarded_to_origin: Optional[pulumi.Input['CachePolicyParametersInCacheKeyAndForwardedToOriginArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_ttl is None and 'defaultTtl' in kwargs: + default_ttl = kwargs['defaultTtl'] + if max_ttl is None and 'maxTtl' in kwargs: + max_ttl = kwargs['maxTtl'] + if min_ttl is None and 'minTtl' in kwargs: + min_ttl = kwargs['minTtl'] + if parameters_in_cache_key_and_forwarded_to_origin is None and 'parametersInCacheKeyAndForwardedToOrigin' in kwargs: + parameters_in_cache_key_and_forwarded_to_origin = kwargs['parametersInCacheKeyAndForwardedToOrigin'] + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if default_ttl is not None: - pulumi.set(__self__, "default_ttl", default_ttl) + _setter("default_ttl", default_ttl) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if max_ttl is not None: - pulumi.set(__self__, "max_ttl", max_ttl) + _setter("max_ttl", max_ttl) if min_ttl is not None: - pulumi.set(__self__, "min_ttl", min_ttl) + _setter("min_ttl", min_ttl) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters_in_cache_key_and_forwarded_to_origin is not None: - pulumi.set(__self__, "parameters_in_cache_key_and_forwarded_to_origin", parameters_in_cache_key_and_forwarded_to_origin) + _setter("parameters_in_cache_key_and_forwarded_to_origin", parameters_in_cache_key_and_forwarded_to_origin) @property @pulumi.getter @@ -361,6 +423,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CachePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -386,6 +452,7 @@ def _internal_init(__self__, __props__.__dict__["max_ttl"] = max_ttl __props__.__dict__["min_ttl"] = min_ttl __props__.__dict__["name"] = name + parameters_in_cache_key_and_forwarded_to_origin = _utilities.configure(parameters_in_cache_key_and_forwarded_to_origin, CachePolicyParametersInCacheKeyAndForwardedToOriginArgs, True) if parameters_in_cache_key_and_forwarded_to_origin is None and not opts.urn: raise TypeError("Missing required property 'parameters_in_cache_key_and_forwarded_to_origin'") __props__.__dict__["parameters_in_cache_key_and_forwarded_to_origin"] = parameters_in_cache_key_and_forwarded_to_origin diff --git a/sdk/python/pulumi_aws/cloudfront/continuous_deployment_policy.py b/sdk/python/pulumi_aws/cloudfront/continuous_deployment_policy.py index 711a6a9c927..5894706cc6f 100644 --- a/sdk/python/pulumi_aws/cloudfront/continuous_deployment_policy.py +++ b/sdk/python/pulumi_aws/cloudfront/continuous_deployment_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,32 @@ def __init__(__self__, *, :param pulumi.Input['ContinuousDeploymentPolicyStagingDistributionDnsNamesArgs'] staging_distribution_dns_names: CloudFront domain name of the staging distribution. See `staging_distribution_dns_names`. :param pulumi.Input['ContinuousDeploymentPolicyTrafficConfigArgs'] traffic_config: Parameters for routing production traffic from primary to staging distributions. See `traffic_config`. """ - pulumi.set(__self__, "enabled", enabled) + ContinuousDeploymentPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + staging_distribution_dns_names=staging_distribution_dns_names, + traffic_config=traffic_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + staging_distribution_dns_names: Optional[pulumi.Input['ContinuousDeploymentPolicyStagingDistributionDnsNamesArgs']] = None, + traffic_config: Optional[pulumi.Input['ContinuousDeploymentPolicyTrafficConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if staging_distribution_dns_names is None and 'stagingDistributionDnsNames' in kwargs: + staging_distribution_dns_names = kwargs['stagingDistributionDnsNames'] + if traffic_config is None and 'trafficConfig' in kwargs: + traffic_config = kwargs['trafficConfig'] + + _setter("enabled", enabled) if staging_distribution_dns_names is not None: - pulumi.set(__self__, "staging_distribution_dns_names", staging_distribution_dns_names) + _setter("staging_distribution_dns_names", staging_distribution_dns_names) if traffic_config is not None: - pulumi.set(__self__, "traffic_config", traffic_config) + _setter("traffic_config", traffic_config) @property @pulumi.getter @@ -84,16 +105,41 @@ def __init__(__self__, *, :param pulumi.Input['ContinuousDeploymentPolicyStagingDistributionDnsNamesArgs'] staging_distribution_dns_names: CloudFront domain name of the staging distribution. See `staging_distribution_dns_names`. :param pulumi.Input['ContinuousDeploymentPolicyTrafficConfigArgs'] traffic_config: Parameters for routing production traffic from primary to staging distributions. See `traffic_config`. """ + _ContinuousDeploymentPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + etag=etag, + last_modified_time=last_modified_time, + staging_distribution_dns_names=staging_distribution_dns_names, + traffic_config=traffic_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + etag: Optional[pulumi.Input[str]] = None, + last_modified_time: Optional[pulumi.Input[str]] = None, + staging_distribution_dns_names: Optional[pulumi.Input['ContinuousDeploymentPolicyStagingDistributionDnsNamesArgs']] = None, + traffic_config: Optional[pulumi.Input['ContinuousDeploymentPolicyTrafficConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if last_modified_time is None and 'lastModifiedTime' in kwargs: + last_modified_time = kwargs['lastModifiedTime'] + if staging_distribution_dns_names is None and 'stagingDistributionDnsNames' in kwargs: + staging_distribution_dns_names = kwargs['stagingDistributionDnsNames'] + if traffic_config is None and 'trafficConfig' in kwargs: + traffic_config = kwargs['trafficConfig'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if last_modified_time is not None: - pulumi.set(__self__, "last_modified_time", last_modified_time) + _setter("last_modified_time", last_modified_time) if staging_distribution_dns_names is not None: - pulumi.set(__self__, "staging_distribution_dns_names", staging_distribution_dns_names) + _setter("staging_distribution_dns_names", staging_distribution_dns_names) if traffic_config is not None: - pulumi.set(__self__, "traffic_config", traffic_config) + _setter("traffic_config", traffic_config) @property @pulumi.getter @@ -353,6 +399,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContinuousDeploymentPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -373,7 +423,9 @@ def _internal_init(__self__, if enabled is None and not opts.urn: raise TypeError("Missing required property 'enabled'") __props__.__dict__["enabled"] = enabled + staging_distribution_dns_names = _utilities.configure(staging_distribution_dns_names, ContinuousDeploymentPolicyStagingDistributionDnsNamesArgs, True) __props__.__dict__["staging_distribution_dns_names"] = staging_distribution_dns_names + traffic_config = _utilities.configure(traffic_config, ContinuousDeploymentPolicyTrafficConfigArgs, True) __props__.__dict__["traffic_config"] = traffic_config __props__.__dict__["etag"] = None __props__.__dict__["last_modified_time"] = None diff --git a/sdk/python/pulumi_aws/cloudfront/distribution.py b/sdk/python/pulumi_aws/cloudfront/distribution.py index cc2eb34d1fa..4da3c6ea1b1 100644 --- a/sdk/python/pulumi_aws/cloudfront/distribution.py +++ b/sdk/python/pulumi_aws/cloudfront/distribution.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -40,7 +40,7 @@ def __init__(__self__, *, """ The set of arguments for constructing a Distribution resource. :param pulumi.Input['DistributionDefaultCacheBehaviorArgs'] default_cache_behavior: Default cache behavior for this distribution (maximum one). Requires either `cache_policy_id` (preferred) or `forwarded_values` (deprecated) be set. - :param pulumi.Input[bool] enabled: Whether the distribution is enabled to accept end user requests for content. + :param pulumi.Input[bool] enabled: Whether Origin Shield is enabled. :param pulumi.Input[Sequence[pulumi.Input['DistributionOriginArgs']]] origins: One or more origins for this distribution (multiples allowed). :param pulumi.Input['DistributionRestrictionsArgs'] restrictions: The restriction configuration for this distribution (maximum one). :param pulumi.Input['DistributionViewerCertificateArgs'] viewer_certificate: The SSL configuration for this distribution (maximum one). @@ -61,43 +61,132 @@ def __init__(__self__, *, :param pulumi.Input[bool] wait_for_deployment: If enabled, the resource will wait for the distribution status to change from `InProgress` to `Deployed`. Setting this to`false` will skip the process. Default: `true`. :param pulumi.Input[str] web_acl_id: Unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of AWS WAF (WAFv2), use the ACL ARN, for example `aws_wafv2_web_acl.example.arn`. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `aws_waf_web_acl.example.id`. The WAF Web ACL must exist in the WAF Global (CloudFront) region and the credentials configuring this argument must have `waf:GetWebACL` permissions assigned. """ - pulumi.set(__self__, "default_cache_behavior", default_cache_behavior) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "origins", origins) - pulumi.set(__self__, "restrictions", restrictions) - pulumi.set(__self__, "viewer_certificate", viewer_certificate) + DistributionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_cache_behavior=default_cache_behavior, + enabled=enabled, + origins=origins, + restrictions=restrictions, + viewer_certificate=viewer_certificate, + aliases=aliases, + comment=comment, + continuous_deployment_policy_id=continuous_deployment_policy_id, + custom_error_responses=custom_error_responses, + default_root_object=default_root_object, + http_version=http_version, + is_ipv6_enabled=is_ipv6_enabled, + logging_config=logging_config, + ordered_cache_behaviors=ordered_cache_behaviors, + origin_groups=origin_groups, + price_class=price_class, + retain_on_delete=retain_on_delete, + staging=staging, + tags=tags, + wait_for_deployment=wait_for_deployment, + web_acl_id=web_acl_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_cache_behavior: Optional[pulumi.Input['DistributionDefaultCacheBehaviorArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + origins: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOriginArgs']]]] = None, + restrictions: Optional[pulumi.Input['DistributionRestrictionsArgs']] = None, + viewer_certificate: Optional[pulumi.Input['DistributionViewerCertificateArgs']] = None, + aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + comment: Optional[pulumi.Input[str]] = None, + continuous_deployment_policy_id: Optional[pulumi.Input[str]] = None, + custom_error_responses: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionCustomErrorResponseArgs']]]] = None, + default_root_object: Optional[pulumi.Input[str]] = None, + http_version: Optional[pulumi.Input[str]] = None, + is_ipv6_enabled: Optional[pulumi.Input[bool]] = None, + logging_config: Optional[pulumi.Input['DistributionLoggingConfigArgs']] = None, + ordered_cache_behaviors: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOrderedCacheBehaviorArgs']]]] = None, + origin_groups: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOriginGroupArgs']]]] = None, + price_class: Optional[pulumi.Input[str]] = None, + retain_on_delete: Optional[pulumi.Input[bool]] = None, + staging: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + wait_for_deployment: Optional[pulumi.Input[bool]] = None, + web_acl_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_cache_behavior is None and 'defaultCacheBehavior' in kwargs: + default_cache_behavior = kwargs['defaultCacheBehavior'] + if default_cache_behavior is None: + raise TypeError("Missing 'default_cache_behavior' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if origins is None: + raise TypeError("Missing 'origins' argument") + if restrictions is None: + raise TypeError("Missing 'restrictions' argument") + if viewer_certificate is None and 'viewerCertificate' in kwargs: + viewer_certificate = kwargs['viewerCertificate'] + if viewer_certificate is None: + raise TypeError("Missing 'viewer_certificate' argument") + if continuous_deployment_policy_id is None and 'continuousDeploymentPolicyId' in kwargs: + continuous_deployment_policy_id = kwargs['continuousDeploymentPolicyId'] + if custom_error_responses is None and 'customErrorResponses' in kwargs: + custom_error_responses = kwargs['customErrorResponses'] + if default_root_object is None and 'defaultRootObject' in kwargs: + default_root_object = kwargs['defaultRootObject'] + if http_version is None and 'httpVersion' in kwargs: + http_version = kwargs['httpVersion'] + if is_ipv6_enabled is None and 'isIpv6Enabled' in kwargs: + is_ipv6_enabled = kwargs['isIpv6Enabled'] + if logging_config is None and 'loggingConfig' in kwargs: + logging_config = kwargs['loggingConfig'] + if ordered_cache_behaviors is None and 'orderedCacheBehaviors' in kwargs: + ordered_cache_behaviors = kwargs['orderedCacheBehaviors'] + if origin_groups is None and 'originGroups' in kwargs: + origin_groups = kwargs['originGroups'] + if price_class is None and 'priceClass' in kwargs: + price_class = kwargs['priceClass'] + if retain_on_delete is None and 'retainOnDelete' in kwargs: + retain_on_delete = kwargs['retainOnDelete'] + if wait_for_deployment is None and 'waitForDeployment' in kwargs: + wait_for_deployment = kwargs['waitForDeployment'] + if web_acl_id is None and 'webAclId' in kwargs: + web_acl_id = kwargs['webAclId'] + + _setter("default_cache_behavior", default_cache_behavior) + _setter("enabled", enabled) + _setter("origins", origins) + _setter("restrictions", restrictions) + _setter("viewer_certificate", viewer_certificate) if aliases is not None: - pulumi.set(__self__, "aliases", aliases) + _setter("aliases", aliases) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if continuous_deployment_policy_id is not None: - pulumi.set(__self__, "continuous_deployment_policy_id", continuous_deployment_policy_id) + _setter("continuous_deployment_policy_id", continuous_deployment_policy_id) if custom_error_responses is not None: - pulumi.set(__self__, "custom_error_responses", custom_error_responses) + _setter("custom_error_responses", custom_error_responses) if default_root_object is not None: - pulumi.set(__self__, "default_root_object", default_root_object) + _setter("default_root_object", default_root_object) if http_version is not None: - pulumi.set(__self__, "http_version", http_version) + _setter("http_version", http_version) if is_ipv6_enabled is not None: - pulumi.set(__self__, "is_ipv6_enabled", is_ipv6_enabled) + _setter("is_ipv6_enabled", is_ipv6_enabled) if logging_config is not None: - pulumi.set(__self__, "logging_config", logging_config) + _setter("logging_config", logging_config) if ordered_cache_behaviors is not None: - pulumi.set(__self__, "ordered_cache_behaviors", ordered_cache_behaviors) + _setter("ordered_cache_behaviors", ordered_cache_behaviors) if origin_groups is not None: - pulumi.set(__self__, "origin_groups", origin_groups) + _setter("origin_groups", origin_groups) if price_class is not None: - pulumi.set(__self__, "price_class", price_class) + _setter("price_class", price_class) if retain_on_delete is not None: - pulumi.set(__self__, "retain_on_delete", retain_on_delete) + _setter("retain_on_delete", retain_on_delete) if staging is not None: - pulumi.set(__self__, "staging", staging) + _setter("staging", staging) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if wait_for_deployment is not None: - pulumi.set(__self__, "wait_for_deployment", wait_for_deployment) + _setter("wait_for_deployment", wait_for_deployment) if web_acl_id is not None: - pulumi.set(__self__, "web_acl_id", web_acl_id) + _setter("web_acl_id", web_acl_id) @property @pulumi.getter(name="defaultCacheBehavior") @@ -115,7 +204,7 @@ def default_cache_behavior(self, value: pulumi.Input['DistributionDefaultCacheBe @pulumi.getter def enabled(self) -> pulumi.Input[bool]: """ - Whether the distribution is enabled to accept end user requests for content. + Whether Origin Shield is enabled. """ return pulumi.get(self, "enabled") @@ -398,7 +487,7 @@ def __init__(__self__, *, :param pulumi.Input['DistributionDefaultCacheBehaviorArgs'] default_cache_behavior: Default cache behavior for this distribution (maximum one). Requires either `cache_policy_id` (preferred) or `forwarded_values` (deprecated) be set. :param pulumi.Input[str] default_root_object: Object that you want CloudFront to return (for example, index.html) when an end user requests the root URL. :param pulumi.Input[str] domain_name: DNS domain name of either the S3 bucket, or web site of your custom origin. - :param pulumi.Input[bool] enabled: Whether the distribution is enabled to accept end user requests for content. + :param pulumi.Input[bool] enabled: Whether Origin Shield is enabled. :param pulumi.Input[str] etag: Current version of the distribution's information. For example: `E2QWRUHAPOMQZL`. :param pulumi.Input[str] hosted_zone_id: CloudFront Route 53 zone ID that can be used to route an [Alias Resource Record Set](http://docs.aws.amazon.com/Route53/latest/APIReference/CreateAliasRRSAPI.html) to. This attribute is simply an alias for the zone ID `Z2FDTNDATAQYW2`. :param pulumi.Input[str] http_version: Maximum HTTP version to support on the distribution. Allowed values are `http1.1`, `http2`, `http2and3` and `http3`. The default is `http2`. @@ -422,73 +511,190 @@ def __init__(__self__, *, :param pulumi.Input[bool] wait_for_deployment: If enabled, the resource will wait for the distribution status to change from `InProgress` to `Deployed`. Setting this to`false` will skip the process. Default: `true`. :param pulumi.Input[str] web_acl_id: Unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of AWS WAF (WAFv2), use the ACL ARN, for example `aws_wafv2_web_acl.example.arn`. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `aws_waf_web_acl.example.id`. The WAF Web ACL must exist in the WAF Global (CloudFront) region and the credentials configuring this argument must have `waf:GetWebACL` permissions assigned. """ + _DistributionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + aliases=aliases, + arn=arn, + caller_reference=caller_reference, + comment=comment, + continuous_deployment_policy_id=continuous_deployment_policy_id, + custom_error_responses=custom_error_responses, + default_cache_behavior=default_cache_behavior, + default_root_object=default_root_object, + domain_name=domain_name, + enabled=enabled, + etag=etag, + hosted_zone_id=hosted_zone_id, + http_version=http_version, + in_progress_validation_batches=in_progress_validation_batches, + is_ipv6_enabled=is_ipv6_enabled, + last_modified_time=last_modified_time, + logging_config=logging_config, + ordered_cache_behaviors=ordered_cache_behaviors, + origin_groups=origin_groups, + origins=origins, + price_class=price_class, + restrictions=restrictions, + retain_on_delete=retain_on_delete, + staging=staging, + status=status, + tags=tags, + tags_all=tags_all, + trusted_key_groups=trusted_key_groups, + trusted_signers=trusted_signers, + viewer_certificate=viewer_certificate, + wait_for_deployment=wait_for_deployment, + web_acl_id=web_acl_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + caller_reference: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + continuous_deployment_policy_id: Optional[pulumi.Input[str]] = None, + custom_error_responses: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionCustomErrorResponseArgs']]]] = None, + default_cache_behavior: Optional[pulumi.Input['DistributionDefaultCacheBehaviorArgs']] = None, + default_root_object: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + etag: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + http_version: Optional[pulumi.Input[str]] = None, + in_progress_validation_batches: Optional[pulumi.Input[int]] = None, + is_ipv6_enabled: Optional[pulumi.Input[bool]] = None, + last_modified_time: Optional[pulumi.Input[str]] = None, + logging_config: Optional[pulumi.Input['DistributionLoggingConfigArgs']] = None, + ordered_cache_behaviors: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOrderedCacheBehaviorArgs']]]] = None, + origin_groups: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOriginGroupArgs']]]] = None, + origins: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionOriginArgs']]]] = None, + price_class: Optional[pulumi.Input[str]] = None, + restrictions: Optional[pulumi.Input['DistributionRestrictionsArgs']] = None, + retain_on_delete: Optional[pulumi.Input[bool]] = None, + staging: Optional[pulumi.Input[bool]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + trusted_key_groups: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionTrustedKeyGroupArgs']]]] = None, + trusted_signers: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionTrustedSignerArgs']]]] = None, + viewer_certificate: Optional[pulumi.Input['DistributionViewerCertificateArgs']] = None, + wait_for_deployment: Optional[pulumi.Input[bool]] = None, + web_acl_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caller_reference is None and 'callerReference' in kwargs: + caller_reference = kwargs['callerReference'] + if continuous_deployment_policy_id is None and 'continuousDeploymentPolicyId' in kwargs: + continuous_deployment_policy_id = kwargs['continuousDeploymentPolicyId'] + if custom_error_responses is None and 'customErrorResponses' in kwargs: + custom_error_responses = kwargs['customErrorResponses'] + if default_cache_behavior is None and 'defaultCacheBehavior' in kwargs: + default_cache_behavior = kwargs['defaultCacheBehavior'] + if default_root_object is None and 'defaultRootObject' in kwargs: + default_root_object = kwargs['defaultRootObject'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if http_version is None and 'httpVersion' in kwargs: + http_version = kwargs['httpVersion'] + if in_progress_validation_batches is None and 'inProgressValidationBatches' in kwargs: + in_progress_validation_batches = kwargs['inProgressValidationBatches'] + if is_ipv6_enabled is None and 'isIpv6Enabled' in kwargs: + is_ipv6_enabled = kwargs['isIpv6Enabled'] + if last_modified_time is None and 'lastModifiedTime' in kwargs: + last_modified_time = kwargs['lastModifiedTime'] + if logging_config is None and 'loggingConfig' in kwargs: + logging_config = kwargs['loggingConfig'] + if ordered_cache_behaviors is None and 'orderedCacheBehaviors' in kwargs: + ordered_cache_behaviors = kwargs['orderedCacheBehaviors'] + if origin_groups is None and 'originGroups' in kwargs: + origin_groups = kwargs['originGroups'] + if price_class is None and 'priceClass' in kwargs: + price_class = kwargs['priceClass'] + if retain_on_delete is None and 'retainOnDelete' in kwargs: + retain_on_delete = kwargs['retainOnDelete'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if trusted_key_groups is None and 'trustedKeyGroups' in kwargs: + trusted_key_groups = kwargs['trustedKeyGroups'] + if trusted_signers is None and 'trustedSigners' in kwargs: + trusted_signers = kwargs['trustedSigners'] + if viewer_certificate is None and 'viewerCertificate' in kwargs: + viewer_certificate = kwargs['viewerCertificate'] + if wait_for_deployment is None and 'waitForDeployment' in kwargs: + wait_for_deployment = kwargs['waitForDeployment'] + if web_acl_id is None and 'webAclId' in kwargs: + web_acl_id = kwargs['webAclId'] + if aliases is not None: - pulumi.set(__self__, "aliases", aliases) + _setter("aliases", aliases) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if caller_reference is not None: - pulumi.set(__self__, "caller_reference", caller_reference) + _setter("caller_reference", caller_reference) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if continuous_deployment_policy_id is not None: - pulumi.set(__self__, "continuous_deployment_policy_id", continuous_deployment_policy_id) + _setter("continuous_deployment_policy_id", continuous_deployment_policy_id) if custom_error_responses is not None: - pulumi.set(__self__, "custom_error_responses", custom_error_responses) + _setter("custom_error_responses", custom_error_responses) if default_cache_behavior is not None: - pulumi.set(__self__, "default_cache_behavior", default_cache_behavior) + _setter("default_cache_behavior", default_cache_behavior) if default_root_object is not None: - pulumi.set(__self__, "default_root_object", default_root_object) + _setter("default_root_object", default_root_object) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if http_version is not None: - pulumi.set(__self__, "http_version", http_version) + _setter("http_version", http_version) if in_progress_validation_batches is not None: - pulumi.set(__self__, "in_progress_validation_batches", in_progress_validation_batches) + _setter("in_progress_validation_batches", in_progress_validation_batches) if is_ipv6_enabled is not None: - pulumi.set(__self__, "is_ipv6_enabled", is_ipv6_enabled) + _setter("is_ipv6_enabled", is_ipv6_enabled) if last_modified_time is not None: - pulumi.set(__self__, "last_modified_time", last_modified_time) + _setter("last_modified_time", last_modified_time) if logging_config is not None: - pulumi.set(__self__, "logging_config", logging_config) + _setter("logging_config", logging_config) if ordered_cache_behaviors is not None: - pulumi.set(__self__, "ordered_cache_behaviors", ordered_cache_behaviors) + _setter("ordered_cache_behaviors", ordered_cache_behaviors) if origin_groups is not None: - pulumi.set(__self__, "origin_groups", origin_groups) + _setter("origin_groups", origin_groups) if origins is not None: - pulumi.set(__self__, "origins", origins) + _setter("origins", origins) if price_class is not None: - pulumi.set(__self__, "price_class", price_class) + _setter("price_class", price_class) if restrictions is not None: - pulumi.set(__self__, "restrictions", restrictions) + _setter("restrictions", restrictions) if retain_on_delete is not None: - pulumi.set(__self__, "retain_on_delete", retain_on_delete) + _setter("retain_on_delete", retain_on_delete) if staging is not None: - pulumi.set(__self__, "staging", staging) + _setter("staging", staging) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if trusted_key_groups is not None: - pulumi.set(__self__, "trusted_key_groups", trusted_key_groups) + _setter("trusted_key_groups", trusted_key_groups) if trusted_signers is not None: - pulumi.set(__self__, "trusted_signers", trusted_signers) + _setter("trusted_signers", trusted_signers) if viewer_certificate is not None: - pulumi.set(__self__, "viewer_certificate", viewer_certificate) + _setter("viewer_certificate", viewer_certificate) if wait_for_deployment is not None: - pulumi.set(__self__, "wait_for_deployment", wait_for_deployment) + _setter("wait_for_deployment", wait_for_deployment) if web_acl_id is not None: - pulumi.set(__self__, "web_acl_id", web_acl_id) + _setter("web_acl_id", web_acl_id) @property @pulumi.getter @@ -602,7 +808,7 @@ def domain_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def enabled(self) -> Optional[pulumi.Input[bool]]: """ - Whether the distribution is enabled to accept end user requests for content. + Whether Origin Shield is enabled. """ return pulumi.get(self, "enabled") @@ -1156,7 +1362,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DistributionCustomErrorResponseArgs']]]] custom_error_responses: One or more custom error response elements (multiples allowed). :param pulumi.Input[pulumi.InputType['DistributionDefaultCacheBehaviorArgs']] default_cache_behavior: Default cache behavior for this distribution (maximum one). Requires either `cache_policy_id` (preferred) or `forwarded_values` (deprecated) be set. :param pulumi.Input[str] default_root_object: Object that you want CloudFront to return (for example, index.html) when an end user requests the root URL. - :param pulumi.Input[bool] enabled: Whether the distribution is enabled to accept end user requests for content. + :param pulumi.Input[bool] enabled: Whether Origin Shield is enabled. :param pulumi.Input[str] http_version: Maximum HTTP version to support on the distribution. Allowed values are `http1.1`, `http2`, `http2and3` and `http3`. The default is `http2`. :param pulumi.Input[bool] is_ipv6_enabled: Whether the IPv6 is enabled for the distribution. :param pulumi.Input[pulumi.InputType['DistributionLoggingConfigArgs']] logging_config: The logging configuration that controls how logs are written to your distribution (maximum one). @@ -1431,6 +1637,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DistributionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1470,6 +1680,7 @@ def _internal_init(__self__, __props__.__dict__["comment"] = comment __props__.__dict__["continuous_deployment_policy_id"] = continuous_deployment_policy_id __props__.__dict__["custom_error_responses"] = custom_error_responses + default_cache_behavior = _utilities.configure(default_cache_behavior, DistributionDefaultCacheBehaviorArgs, True) if default_cache_behavior is None and not opts.urn: raise TypeError("Missing required property 'default_cache_behavior'") __props__.__dict__["default_cache_behavior"] = default_cache_behavior @@ -1479,6 +1690,7 @@ def _internal_init(__self__, __props__.__dict__["enabled"] = enabled __props__.__dict__["http_version"] = http_version __props__.__dict__["is_ipv6_enabled"] = is_ipv6_enabled + logging_config = _utilities.configure(logging_config, DistributionLoggingConfigArgs, True) __props__.__dict__["logging_config"] = logging_config __props__.__dict__["ordered_cache_behaviors"] = ordered_cache_behaviors __props__.__dict__["origin_groups"] = origin_groups @@ -1486,12 +1698,14 @@ def _internal_init(__self__, raise TypeError("Missing required property 'origins'") __props__.__dict__["origins"] = origins __props__.__dict__["price_class"] = price_class + restrictions = _utilities.configure(restrictions, DistributionRestrictionsArgs, True) if restrictions is None and not opts.urn: raise TypeError("Missing required property 'restrictions'") __props__.__dict__["restrictions"] = restrictions __props__.__dict__["retain_on_delete"] = retain_on_delete __props__.__dict__["staging"] = staging __props__.__dict__["tags"] = tags + viewer_certificate = _utilities.configure(viewer_certificate, DistributionViewerCertificateArgs, True) if viewer_certificate is None and not opts.urn: raise TypeError("Missing required property 'viewer_certificate'") __props__.__dict__["viewer_certificate"] = viewer_certificate @@ -1568,7 +1782,7 @@ def get(resource_name: str, :param pulumi.Input[pulumi.InputType['DistributionDefaultCacheBehaviorArgs']] default_cache_behavior: Default cache behavior for this distribution (maximum one). Requires either `cache_policy_id` (preferred) or `forwarded_values` (deprecated) be set. :param pulumi.Input[str] default_root_object: Object that you want CloudFront to return (for example, index.html) when an end user requests the root URL. :param pulumi.Input[str] domain_name: DNS domain name of either the S3 bucket, or web site of your custom origin. - :param pulumi.Input[bool] enabled: Whether the distribution is enabled to accept end user requests for content. + :param pulumi.Input[bool] enabled: Whether Origin Shield is enabled. :param pulumi.Input[str] etag: Current version of the distribution's information. For example: `E2QWRUHAPOMQZL`. :param pulumi.Input[str] hosted_zone_id: CloudFront Route 53 zone ID that can be used to route an [Alias Resource Record Set](http://docs.aws.amazon.com/Route53/latest/APIReference/CreateAliasRRSAPI.html) to. This attribute is simply an alias for the zone ID `Z2FDTNDATAQYW2`. :param pulumi.Input[str] http_version: Maximum HTTP version to support on the distribution. Allowed values are `http1.1`, `http2`, `http2and3` and `http3`. The default is `http2`. @@ -1706,7 +1920,7 @@ def domain_name(self) -> pulumi.Output[str]: @pulumi.getter def enabled(self) -> pulumi.Output[bool]: """ - Whether the distribution is enabled to accept end user requests for content. + Whether Origin Shield is enabled. """ return pulumi.get(self, "enabled") diff --git a/sdk/python/pulumi_aws/cloudfront/field_level_encryption_config.py b/sdk/python/pulumi_aws/cloudfront/field_level_encryption_config.py index e15d1508417..44868a8cc9c 100644 --- a/sdk/python/pulumi_aws/cloudfront/field_level_encryption_config.py +++ b/sdk/python/pulumi_aws/cloudfront/field_level_encryption_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,33 @@ def __init__(__self__, *, :param pulumi.Input['FieldLevelEncryptionConfigQueryArgProfileConfigArgs'] query_arg_profile_config: Query Arg Profile Config that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request. :param pulumi.Input[str] comment: An optional comment about the Field Level Encryption Config. """ - pulumi.set(__self__, "content_type_profile_config", content_type_profile_config) - pulumi.set(__self__, "query_arg_profile_config", query_arg_profile_config) + FieldLevelEncryptionConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type_profile_config=content_type_profile_config, + query_arg_profile_config=query_arg_profile_config, + comment=comment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type_profile_config: Optional[pulumi.Input['FieldLevelEncryptionConfigContentTypeProfileConfigArgs']] = None, + query_arg_profile_config: Optional[pulumi.Input['FieldLevelEncryptionConfigQueryArgProfileConfigArgs']] = None, + comment: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type_profile_config is None and 'contentTypeProfileConfig' in kwargs: + content_type_profile_config = kwargs['contentTypeProfileConfig'] + if content_type_profile_config is None: + raise TypeError("Missing 'content_type_profile_config' argument") + if query_arg_profile_config is None and 'queryArgProfileConfig' in kwargs: + query_arg_profile_config = kwargs['queryArgProfileConfig'] + if query_arg_profile_config is None: + raise TypeError("Missing 'query_arg_profile_config' argument") + + _setter("content_type_profile_config", content_type_profile_config) + _setter("query_arg_profile_config", query_arg_profile_config) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) @property @pulumi.getter(name="contentTypeProfileConfig") @@ -83,16 +106,41 @@ def __init__(__self__, *, :param pulumi.Input[str] etag: The current version of the Field Level Encryption Config. For example: `E2QWRUHAPOMQZL`. :param pulumi.Input['FieldLevelEncryptionConfigQueryArgProfileConfigArgs'] query_arg_profile_config: Query Arg Profile Config that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request. """ + _FieldLevelEncryptionConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + caller_reference=caller_reference, + comment=comment, + content_type_profile_config=content_type_profile_config, + etag=etag, + query_arg_profile_config=query_arg_profile_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caller_reference: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + content_type_profile_config: Optional[pulumi.Input['FieldLevelEncryptionConfigContentTypeProfileConfigArgs']] = None, + etag: Optional[pulumi.Input[str]] = None, + query_arg_profile_config: Optional[pulumi.Input['FieldLevelEncryptionConfigQueryArgProfileConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caller_reference is None and 'callerReference' in kwargs: + caller_reference = kwargs['callerReference'] + if content_type_profile_config is None and 'contentTypeProfileConfig' in kwargs: + content_type_profile_config = kwargs['contentTypeProfileConfig'] + if query_arg_profile_config is None and 'queryArgProfileConfig' in kwargs: + query_arg_profile_config = kwargs['queryArgProfileConfig'] + if caller_reference is not None: - pulumi.set(__self__, "caller_reference", caller_reference) + _setter("caller_reference", caller_reference) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if content_type_profile_config is not None: - pulumi.set(__self__, "content_type_profile_config", content_type_profile_config) + _setter("content_type_profile_config", content_type_profile_config) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if query_arg_profile_config is not None: - pulumi.set(__self__, "query_arg_profile_config", query_arg_profile_config) + _setter("query_arg_profile_config", query_arg_profile_config) @property @pulumi.getter(name="callerReference") @@ -264,6 +312,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FieldLevelEncryptionConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -282,9 +334,11 @@ def _internal_init(__self__, __props__ = FieldLevelEncryptionConfigArgs.__new__(FieldLevelEncryptionConfigArgs) __props__.__dict__["comment"] = comment + content_type_profile_config = _utilities.configure(content_type_profile_config, FieldLevelEncryptionConfigContentTypeProfileConfigArgs, True) if content_type_profile_config is None and not opts.urn: raise TypeError("Missing required property 'content_type_profile_config'") __props__.__dict__["content_type_profile_config"] = content_type_profile_config + query_arg_profile_config = _utilities.configure(query_arg_profile_config, FieldLevelEncryptionConfigQueryArgProfileConfigArgs, True) if query_arg_profile_config is None and not opts.urn: raise TypeError("Missing required property 'query_arg_profile_config'") __props__.__dict__["query_arg_profile_config"] = query_arg_profile_config diff --git a/sdk/python/pulumi_aws/cloudfront/field_level_encryption_profile.py b/sdk/python/pulumi_aws/cloudfront/field_level_encryption_profile.py index 6376a40b523..8457553d6f3 100644 --- a/sdk/python/pulumi_aws/cloudfront/field_level_encryption_profile.py +++ b/sdk/python/pulumi_aws/cloudfront/field_level_encryption_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] comment: An optional comment about the Field Level Encryption Profile. :param pulumi.Input[str] name: The name of the Field Level Encryption Profile. """ - pulumi.set(__self__, "encryption_entities", encryption_entities) + FieldLevelEncryptionProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_entities=encryption_entities, + comment=comment, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_entities: Optional[pulumi.Input['FieldLevelEncryptionProfileEncryptionEntitiesArgs']] = None, + comment: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_entities is None and 'encryptionEntities' in kwargs: + encryption_entities = kwargs['encryptionEntities'] + if encryption_entities is None: + raise TypeError("Missing 'encryption_entities' argument") + + _setter("encryption_entities", encryption_entities) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="encryptionEntities") @@ -84,16 +103,39 @@ def __init__(__self__, *, :param pulumi.Input[str] etag: The current version of the Field Level Encryption Profile. For example: `E2QWRUHAPOMQZL`. :param pulumi.Input[str] name: The name of the Field Level Encryption Profile. """ + _FieldLevelEncryptionProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + caller_reference=caller_reference, + comment=comment, + encryption_entities=encryption_entities, + etag=etag, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caller_reference: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + encryption_entities: Optional[pulumi.Input['FieldLevelEncryptionProfileEncryptionEntitiesArgs']] = None, + etag: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caller_reference is None and 'callerReference' in kwargs: + caller_reference = kwargs['callerReference'] + if encryption_entities is None and 'encryptionEntities' in kwargs: + encryption_entities = kwargs['encryptionEntities'] + if caller_reference is not None: - pulumi.set(__self__, "caller_reference", caller_reference) + _setter("caller_reference", caller_reference) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if encryption_entities is not None: - pulumi.set(__self__, "encryption_entities", encryption_entities) + _setter("encryption_entities", encryption_entities) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="callerReference") @@ -253,6 +295,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FieldLevelEncryptionProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -271,6 +317,7 @@ def _internal_init(__self__, __props__ = FieldLevelEncryptionProfileArgs.__new__(FieldLevelEncryptionProfileArgs) __props__.__dict__["comment"] = comment + encryption_entities = _utilities.configure(encryption_entities, FieldLevelEncryptionProfileEncryptionEntitiesArgs, True) if encryption_entities is None and not opts.urn: raise TypeError("Missing required property 'encryption_entities'") __props__.__dict__["encryption_entities"] = encryption_entities diff --git a/sdk/python/pulumi_aws/cloudfront/function.py b/sdk/python/pulumi_aws/cloudfront/function.py index 9248f98b7ec..8ae28c7f35f 100644 --- a/sdk/python/pulumi_aws/cloudfront/function.py +++ b/sdk/python/pulumi_aws/cloudfront/function.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['FunctionArgs', 'Function'] @@ -29,14 +29,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Unique name for your CloudFront Function. :param pulumi.Input[bool] publish: Whether to publish creation/change as Live CloudFront Function Version. Defaults to `true`. """ - pulumi.set(__self__, "code", code) - pulumi.set(__self__, "runtime", runtime) + FunctionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + code=code, + runtime=runtime, + comment=comment, + name=name, + publish=publish, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code: Optional[pulumi.Input[str]] = None, + runtime: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + publish: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code is None: + raise TypeError("Missing 'code' argument") + if runtime is None: + raise TypeError("Missing 'runtime' argument") + + _setter("code", code) + _setter("runtime", runtime) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if publish is not None: - pulumi.set(__self__, "publish", publish) + _setter("publish", publish) @property @pulumi.getter @@ -127,24 +150,53 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] status: Status of the function. Can be `UNPUBLISHED`, `UNASSOCIATED` or `ASSOCIATED`. """ + _FunctionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + code=code, + comment=comment, + etag=etag, + live_stage_etag=live_stage_etag, + name=name, + publish=publish, + runtime=runtime, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + code: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + live_stage_etag: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + publish: Optional[pulumi.Input[bool]] = None, + runtime: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if live_stage_etag is None and 'liveStageEtag' in kwargs: + live_stage_etag = kwargs['liveStageEtag'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if live_stage_etag is not None: - pulumi.set(__self__, "live_stage_etag", live_stage_etag) + _setter("live_stage_etag", live_stage_etag) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if publish is not None: - pulumi.set(__self__, "publish", publish) + _setter("publish", publish) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -352,6 +404,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FunctionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudfront/get_cache_policy.py b/sdk/python/pulumi_aws/cloudfront/get_cache_policy.py index 0f4afad34e5..af5dd9085a2 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_cache_policy.py +++ b/sdk/python/pulumi_aws/cloudfront/get_cache_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/cloudfront/get_distribution.py b/sdk/python/pulumi_aws/cloudfront/get_distribution.py index 7289be07ee7..d6794af3540 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_distribution.py +++ b/sdk/python/pulumi_aws/cloudfront/get_distribution.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudfront/get_function.py b/sdk/python/pulumi_aws/cloudfront/get_function.py index 6481ee373a9..c190a1b50c5 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_function.py +++ b/sdk/python/pulumi_aws/cloudfront/get_function.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudfront/get_log_delivery_canonical_user_id.py b/sdk/python/pulumi_aws/cloudfront/get_log_delivery_canonical_user_id.py index 0edbe443c08..00cc90e7651 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_log_delivery_canonical_user_id.py +++ b/sdk/python/pulumi_aws/cloudfront/get_log_delivery_canonical_user_id.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudfront/get_origin_access_identities.py b/sdk/python/pulumi_aws/cloudfront/get_origin_access_identities.py index aae5426a295..484b87529b0 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_origin_access_identities.py +++ b/sdk/python/pulumi_aws/cloudfront/get_origin_access_identities.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudfront/get_origin_access_identity.py b/sdk/python/pulumi_aws/cloudfront/get_origin_access_identity.py index 221e71ea63f..e550043fff8 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_origin_access_identity.py +++ b/sdk/python/pulumi_aws/cloudfront/get_origin_access_identity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudfront/get_origin_request_policy.py b/sdk/python/pulumi_aws/cloudfront/get_origin_request_policy.py index 63fd67dc2d7..88e092871e6 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_origin_request_policy.py +++ b/sdk/python/pulumi_aws/cloudfront/get_origin_request_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/cloudfront/get_realtime_log_config.py b/sdk/python/pulumi_aws/cloudfront/get_realtime_log_config.py index 1c4ae1d9ffe..4007b5a8187 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_realtime_log_config.py +++ b/sdk/python/pulumi_aws/cloudfront/get_realtime_log_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/cloudfront/get_response_headers_policy.py b/sdk/python/pulumi_aws/cloudfront/get_response_headers_policy.py index 85f8959d87b..136ce263098 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_response_headers_policy.py +++ b/sdk/python/pulumi_aws/cloudfront/get_response_headers_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/cloudfront/key_group.py b/sdk/python/pulumi_aws/cloudfront/key_group.py index ac4ac940d74..42be2403a5d 100644 --- a/sdk/python/pulumi_aws/cloudfront/key_group.py +++ b/sdk/python/pulumi_aws/cloudfront/key_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KeyGroupArgs', 'KeyGroup'] @@ -23,11 +23,28 @@ def __init__(__self__, *, :param pulumi.Input[str] comment: A comment to describe the key group.. :param pulumi.Input[str] name: A name to identify the key group. """ - pulumi.set(__self__, "items", items) + KeyGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + comment=comment, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + comment: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -80,14 +97,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] items: A list of the identifiers of the public keys in the key group. :param pulumi.Input[str] name: A name to identify the key group. """ + _KeyGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + etag=etag, + items=items, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + items: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -219,6 +253,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KeyGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudfront/monitoring_subscription.py b/sdk/python/pulumi_aws/cloudfront/monitoring_subscription.py index 0bfe1abce2a..648d13560a8 100644 --- a/sdk/python/pulumi_aws/cloudfront/monitoring_subscription.py +++ b/sdk/python/pulumi_aws/cloudfront/monitoring_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] distribution_id: The ID of the distribution that you are enabling metrics for. :param pulumi.Input['MonitoringSubscriptionMonitoringSubscriptionArgs'] monitoring_subscription: A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. """ - pulumi.set(__self__, "distribution_id", distribution_id) - pulumi.set(__self__, "monitoring_subscription", monitoring_subscription) + MonitoringSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + distribution_id=distribution_id, + monitoring_subscription=monitoring_subscription, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + distribution_id: Optional[pulumi.Input[str]] = None, + monitoring_subscription: Optional[pulumi.Input['MonitoringSubscriptionMonitoringSubscriptionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if distribution_id is None and 'distributionId' in kwargs: + distribution_id = kwargs['distributionId'] + if distribution_id is None: + raise TypeError("Missing 'distribution_id' argument") + if monitoring_subscription is None and 'monitoringSubscription' in kwargs: + monitoring_subscription = kwargs['monitoringSubscription'] + if monitoring_subscription is None: + raise TypeError("Missing 'monitoring_subscription' argument") + + _setter("distribution_id", distribution_id) + _setter("monitoring_subscription", monitoring_subscription) @property @pulumi.getter(name="distributionId") @@ -61,10 +82,27 @@ def __init__(__self__, *, :param pulumi.Input[str] distribution_id: The ID of the distribution that you are enabling metrics for. :param pulumi.Input['MonitoringSubscriptionMonitoringSubscriptionArgs'] monitoring_subscription: A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. """ + _MonitoringSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + distribution_id=distribution_id, + monitoring_subscription=monitoring_subscription, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + distribution_id: Optional[pulumi.Input[str]] = None, + monitoring_subscription: Optional[pulumi.Input['MonitoringSubscriptionMonitoringSubscriptionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if distribution_id is None and 'distributionId' in kwargs: + distribution_id = kwargs['distributionId'] + if monitoring_subscription is None and 'monitoringSubscription' in kwargs: + monitoring_subscription = kwargs['monitoringSubscription'] + if distribution_id is not None: - pulumi.set(__self__, "distribution_id", distribution_id) + _setter("distribution_id", distribution_id) if monitoring_subscription is not None: - pulumi.set(__self__, "monitoring_subscription", monitoring_subscription) + _setter("monitoring_subscription", monitoring_subscription) @property @pulumi.getter(name="distributionId") @@ -172,6 +210,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MonitoringSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -191,6 +233,7 @@ def _internal_init(__self__, if distribution_id is None and not opts.urn: raise TypeError("Missing required property 'distribution_id'") __props__.__dict__["distribution_id"] = distribution_id + monitoring_subscription = _utilities.configure(monitoring_subscription, MonitoringSubscriptionMonitoringSubscriptionArgs, True) if monitoring_subscription is None and not opts.urn: raise TypeError("Missing required property 'monitoring_subscription'") __props__.__dict__["monitoring_subscription"] = monitoring_subscription diff --git a/sdk/python/pulumi_aws/cloudfront/origin_access_control.py b/sdk/python/pulumi_aws/cloudfront/origin_access_control.py index dde9230e5fd..874cbf0a375 100644 --- a/sdk/python/pulumi_aws/cloudfront/origin_access_control.py +++ b/sdk/python/pulumi_aws/cloudfront/origin_access_control.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OriginAccessControlArgs', 'OriginAccessControl'] @@ -27,13 +27,44 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The description of the Origin Access Control. Defaults to "Managed by Pulumi" if omitted. :param pulumi.Input[str] name: A name that identifies the Origin Access Control. """ - pulumi.set(__self__, "origin_access_control_origin_type", origin_access_control_origin_type) - pulumi.set(__self__, "signing_behavior", signing_behavior) - pulumi.set(__self__, "signing_protocol", signing_protocol) + OriginAccessControlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + origin_access_control_origin_type=origin_access_control_origin_type, + signing_behavior=signing_behavior, + signing_protocol=signing_protocol, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + origin_access_control_origin_type: Optional[pulumi.Input[str]] = None, + signing_behavior: Optional[pulumi.Input[str]] = None, + signing_protocol: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if origin_access_control_origin_type is None and 'originAccessControlOriginType' in kwargs: + origin_access_control_origin_type = kwargs['originAccessControlOriginType'] + if origin_access_control_origin_type is None: + raise TypeError("Missing 'origin_access_control_origin_type' argument") + if signing_behavior is None and 'signingBehavior' in kwargs: + signing_behavior = kwargs['signingBehavior'] + if signing_behavior is None: + raise TypeError("Missing 'signing_behavior' argument") + if signing_protocol is None and 'signingProtocol' in kwargs: + signing_protocol = kwargs['signingProtocol'] + if signing_protocol is None: + raise TypeError("Missing 'signing_protocol' argument") + + _setter("origin_access_control_origin_type", origin_access_control_origin_type) + _setter("signing_behavior", signing_behavior) + _setter("signing_protocol", signing_protocol) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="originAccessControlOriginType") @@ -114,18 +145,45 @@ def __init__(__self__, *, :param pulumi.Input[str] signing_behavior: Specifies which requests CloudFront signs. Specify `always` for the most common use case. Allowed values: `always`, `never`, and `no-override`. :param pulumi.Input[str] signing_protocol: Determines how CloudFront signs (authenticates) requests. The only valid value is `sigv4`. """ + _OriginAccessControlState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + etag=etag, + name=name, + origin_access_control_origin_type=origin_access_control_origin_type, + signing_behavior=signing_behavior, + signing_protocol=signing_protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + origin_access_control_origin_type: Optional[pulumi.Input[str]] = None, + signing_behavior: Optional[pulumi.Input[str]] = None, + signing_protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if origin_access_control_origin_type is None and 'originAccessControlOriginType' in kwargs: + origin_access_control_origin_type = kwargs['originAccessControlOriginType'] + if signing_behavior is None and 'signingBehavior' in kwargs: + signing_behavior = kwargs['signingBehavior'] + if signing_protocol is None and 'signingProtocol' in kwargs: + signing_protocol = kwargs['signingProtocol'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if origin_access_control_origin_type is not None: - pulumi.set(__self__, "origin_access_control_origin_type", origin_access_control_origin_type) + _setter("origin_access_control_origin_type", origin_access_control_origin_type) if signing_behavior is not None: - pulumi.set(__self__, "signing_behavior", signing_behavior) + _setter("signing_behavior", signing_behavior) if signing_protocol is not None: - pulumi.set(__self__, "signing_protocol", signing_protocol) + _setter("signing_protocol", signing_protocol) @property @pulumi.getter @@ -289,6 +347,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OriginAccessControlArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudfront/origin_access_identity.py b/sdk/python/pulumi_aws/cloudfront/origin_access_identity.py index ac71733e100..0c2432c32d6 100644 --- a/sdk/python/pulumi_aws/cloudfront/origin_access_identity.py +++ b/sdk/python/pulumi_aws/cloudfront/origin_access_identity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OriginAccessIdentityArgs', 'OriginAccessIdentity'] @@ -19,8 +19,19 @@ def __init__(__self__, *, The set of arguments for constructing a OriginAccessIdentity resource. :param pulumi.Input[str] comment: An optional comment for the origin access identity. """ + OriginAccessIdentityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) @property @pulumi.getter @@ -60,18 +71,47 @@ def __init__(__self__, *, access identity, which you use when giving the origin access identity read permission to an object in Amazon S3. """ + _OriginAccessIdentityState._configure( + lambda key, value: pulumi.set(__self__, key, value), + caller_reference=caller_reference, + cloudfront_access_identity_path=cloudfront_access_identity_path, + comment=comment, + etag=etag, + iam_arn=iam_arn, + s3_canonical_user_id=s3_canonical_user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caller_reference: Optional[pulumi.Input[str]] = None, + cloudfront_access_identity_path: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + iam_arn: Optional[pulumi.Input[str]] = None, + s3_canonical_user_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caller_reference is None and 'callerReference' in kwargs: + caller_reference = kwargs['callerReference'] + if cloudfront_access_identity_path is None and 'cloudfrontAccessIdentityPath' in kwargs: + cloudfront_access_identity_path = kwargs['cloudfrontAccessIdentityPath'] + if iam_arn is None and 'iamArn' in kwargs: + iam_arn = kwargs['iamArn'] + if s3_canonical_user_id is None and 's3CanonicalUserId' in kwargs: + s3_canonical_user_id = kwargs['s3CanonicalUserId'] + if caller_reference is not None: - pulumi.set(__self__, "caller_reference", caller_reference) + _setter("caller_reference", caller_reference) if cloudfront_access_identity_path is not None: - pulumi.set(__self__, "cloudfront_access_identity_path", cloudfront_access_identity_path) + _setter("cloudfront_access_identity_path", cloudfront_access_identity_path) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if iam_arn is not None: - pulumi.set(__self__, "iam_arn", iam_arn) + _setter("iam_arn", iam_arn) if s3_canonical_user_id is not None: - pulumi.set(__self__, "s3_canonical_user_id", s3_canonical_user_id) + _setter("s3_canonical_user_id", s3_canonical_user_id) @property @pulumi.getter(name="callerReference") @@ -326,6 +366,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OriginAccessIdentityArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudfront/origin_request_policy.py b/sdk/python/pulumi_aws/cloudfront/origin_request_policy.py index ecb63ec0e78..08327cc535b 100644 --- a/sdk/python/pulumi_aws/cloudfront/origin_request_policy.py +++ b/sdk/python/pulumi_aws/cloudfront/origin_request_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,44 @@ def __init__(__self__, *, :param pulumi.Input[str] comment: Comment to describe the origin request policy. :param pulumi.Input[str] name: Unique name to identify the origin request policy. """ - pulumi.set(__self__, "cookies_config", cookies_config) - pulumi.set(__self__, "headers_config", headers_config) - pulumi.set(__self__, "query_strings_config", query_strings_config) + OriginRequestPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies_config=cookies_config, + headers_config=headers_config, + query_strings_config=query_strings_config, + comment=comment, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies_config: Optional[pulumi.Input['OriginRequestPolicyCookiesConfigArgs']] = None, + headers_config: Optional[pulumi.Input['OriginRequestPolicyHeadersConfigArgs']] = None, + query_strings_config: Optional[pulumi.Input['OriginRequestPolicyQueryStringsConfigArgs']] = None, + comment: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies_config is None and 'cookiesConfig' in kwargs: + cookies_config = kwargs['cookiesConfig'] + if cookies_config is None: + raise TypeError("Missing 'cookies_config' argument") + if headers_config is None and 'headersConfig' in kwargs: + headers_config = kwargs['headersConfig'] + if headers_config is None: + raise TypeError("Missing 'headers_config' argument") + if query_strings_config is None and 'queryStringsConfig' in kwargs: + query_strings_config = kwargs['queryStringsConfig'] + if query_strings_config is None: + raise TypeError("Missing 'query_strings_config' argument") + + _setter("cookies_config", cookies_config) + _setter("headers_config", headers_config) + _setter("query_strings_config", query_strings_config) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="cookiesConfig") @@ -116,18 +147,45 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Unique name to identify the origin request policy. :param pulumi.Input['OriginRequestPolicyQueryStringsConfigArgs'] query_strings_config: Object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Query String Config for more information. """ + _OriginRequestPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + cookies_config=cookies_config, + etag=etag, + headers_config=headers_config, + name=name, + query_strings_config=query_strings_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + cookies_config: Optional[pulumi.Input['OriginRequestPolicyCookiesConfigArgs']] = None, + etag: Optional[pulumi.Input[str]] = None, + headers_config: Optional[pulumi.Input['OriginRequestPolicyHeadersConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + query_strings_config: Optional[pulumi.Input['OriginRequestPolicyQueryStringsConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies_config is None and 'cookiesConfig' in kwargs: + cookies_config = kwargs['cookiesConfig'] + if headers_config is None and 'headersConfig' in kwargs: + headers_config = kwargs['headersConfig'] + if query_strings_config is None and 'queryStringsConfig' in kwargs: + query_strings_config = kwargs['queryStringsConfig'] + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if cookies_config is not None: - pulumi.set(__self__, "cookies_config", cookies_config) + _setter("cookies_config", cookies_config) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if headers_config is not None: - pulumi.set(__self__, "headers_config", headers_config) + _setter("headers_config", headers_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if query_strings_config is not None: - pulumi.set(__self__, "query_strings_config", query_strings_config) + _setter("query_strings_config", query_strings_config) @property @pulumi.getter @@ -315,6 +373,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OriginRequestPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -335,13 +397,16 @@ def _internal_init(__self__, __props__ = OriginRequestPolicyArgs.__new__(OriginRequestPolicyArgs) __props__.__dict__["comment"] = comment + cookies_config = _utilities.configure(cookies_config, OriginRequestPolicyCookiesConfigArgs, True) if cookies_config is None and not opts.urn: raise TypeError("Missing required property 'cookies_config'") __props__.__dict__["cookies_config"] = cookies_config + headers_config = _utilities.configure(headers_config, OriginRequestPolicyHeadersConfigArgs, True) if headers_config is None and not opts.urn: raise TypeError("Missing required property 'headers_config'") __props__.__dict__["headers_config"] = headers_config __props__.__dict__["name"] = name + query_strings_config = _utilities.configure(query_strings_config, OriginRequestPolicyQueryStringsConfigArgs, True) if query_strings_config is None and not opts.urn: raise TypeError("Missing required property 'query_strings_config'") __props__.__dict__["query_strings_config"] = query_strings_config diff --git a/sdk/python/pulumi_aws/cloudfront/outputs.py b/sdk/python/pulumi_aws/cloudfront/outputs.py index 855d976634e..142048760b0 100644 --- a/sdk/python/pulumi_aws/cloudfront/outputs.py +++ b/sdk/python/pulumi_aws/cloudfront/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -160,13 +160,48 @@ def __init__(__self__, *, :param bool enable_accept_encoding_brotli: Flag determines whether the Accept-Encoding HTTP header is included in the cache key and in requests that CloudFront sends to the origin. :param bool enable_accept_encoding_gzip: Whether the Accept-Encoding HTTP header is included in the cache key and in requests sent to the origin by CloudFront. """ - pulumi.set(__self__, "cookies_config", cookies_config) - pulumi.set(__self__, "headers_config", headers_config) - pulumi.set(__self__, "query_strings_config", query_strings_config) + CachePolicyParametersInCacheKeyAndForwardedToOrigin._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies_config=cookies_config, + headers_config=headers_config, + query_strings_config=query_strings_config, + enable_accept_encoding_brotli=enable_accept_encoding_brotli, + enable_accept_encoding_gzip=enable_accept_encoding_gzip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies_config: Optional['outputs.CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfig'] = None, + headers_config: Optional['outputs.CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfig'] = None, + query_strings_config: Optional['outputs.CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfig'] = None, + enable_accept_encoding_brotli: Optional[bool] = None, + enable_accept_encoding_gzip: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies_config is None and 'cookiesConfig' in kwargs: + cookies_config = kwargs['cookiesConfig'] + if cookies_config is None: + raise TypeError("Missing 'cookies_config' argument") + if headers_config is None and 'headersConfig' in kwargs: + headers_config = kwargs['headersConfig'] + if headers_config is None: + raise TypeError("Missing 'headers_config' argument") + if query_strings_config is None and 'queryStringsConfig' in kwargs: + query_strings_config = kwargs['queryStringsConfig'] + if query_strings_config is None: + raise TypeError("Missing 'query_strings_config' argument") + if enable_accept_encoding_brotli is None and 'enableAcceptEncodingBrotli' in kwargs: + enable_accept_encoding_brotli = kwargs['enableAcceptEncodingBrotli'] + if enable_accept_encoding_gzip is None and 'enableAcceptEncodingGzip' in kwargs: + enable_accept_encoding_gzip = kwargs['enableAcceptEncodingGzip'] + + _setter("cookies_config", cookies_config) + _setter("headers_config", headers_config) + _setter("query_strings_config", query_strings_config) if enable_accept_encoding_brotli is not None: - pulumi.set(__self__, "enable_accept_encoding_brotli", enable_accept_encoding_brotli) + _setter("enable_accept_encoding_brotli", enable_accept_encoding_brotli) if enable_accept_encoding_gzip is not None: - pulumi.set(__self__, "enable_accept_encoding_gzip", enable_accept_encoding_gzip) + _setter("enable_accept_encoding_gzip", enable_accept_encoding_gzip) @property @pulumi.getter(name="cookiesConfig") @@ -235,9 +270,26 @@ def __init__(__self__, *, :param str cookie_behavior: Whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values for `cookie_behavior` are `none`, `whitelist`, `allExcept`, and `all`. :param 'CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookiesArgs' cookies: Object that contains a list of cookie names. See Items for more information. """ - pulumi.set(__self__, "cookie_behavior", cookie_behavior) + CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_behavior=cookie_behavior, + cookies=cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_behavior: Optional[str] = None, + cookies: Optional['outputs.CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_behavior is None and 'cookieBehavior' in kwargs: + cookie_behavior = kwargs['cookieBehavior'] + if cookie_behavior is None: + raise TypeError("Missing 'cookie_behavior' argument") + + _setter("cookie_behavior", cookie_behavior) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) @property @pulumi.getter(name="cookieBehavior") @@ -260,12 +312,29 @@ def cookies(self) -> Optional['outputs.CachePolicyParametersInCacheKeyAndForward class CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + """ + :param Sequence[str] items: List of item names, such as cookies, headers, or query strings. + """ + CachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def items(self) -> Optional[Sequence[str]]: + """ + List of item names, such as cookies, headers, or query strings. + """ return pulumi.get(self, "items") @@ -295,10 +364,25 @@ def __init__(__self__, *, :param str header_behavior: Whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values for `header_behavior` are `none` and `whitelist`. :param 'CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeadersArgs' headers: Object contains a list of header names. See Items for more information. """ + CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_behavior=header_behavior, + headers=headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_behavior: Optional[str] = None, + headers: Optional['outputs.CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_behavior is None and 'headerBehavior' in kwargs: + header_behavior = kwargs['headerBehavior'] + if header_behavior is not None: - pulumi.set(__self__, "header_behavior", header_behavior) + _setter("header_behavior", header_behavior) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) @property @pulumi.getter(name="headerBehavior") @@ -321,12 +405,29 @@ def headers(self) -> Optional['outputs.CachePolicyParametersInCacheKeyAndForward class CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + """ + :param Sequence[str] items: List of item names, such as cookies, headers, or query strings. + """ + CachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaders._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def items(self) -> Optional[Sequence[str]]: + """ + List of item names, such as cookies, headers, or query strings. + """ return pulumi.get(self, "items") @@ -358,9 +459,28 @@ def __init__(__self__, *, :param str query_string_behavior: Whether URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values for `query_string_behavior` are `none`, `whitelist`, `allExcept`, and `all`. :param 'CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringsArgs' query_strings: Configuration parameter that contains a list of query string names. See Items for more information. """ - pulumi.set(__self__, "query_string_behavior", query_string_behavior) + CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_string_behavior=query_string_behavior, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_string_behavior: Optional[str] = None, + query_strings: Optional['outputs.CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_string_behavior is None and 'queryStringBehavior' in kwargs: + query_string_behavior = kwargs['queryStringBehavior'] + if query_string_behavior is None: + raise TypeError("Missing 'query_string_behavior' argument") + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + + _setter("query_string_behavior", query_string_behavior) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) @property @pulumi.getter(name="queryStringBehavior") @@ -383,12 +503,29 @@ def query_strings(self) -> Optional['outputs.CachePolicyParametersInCacheKeyAndF class CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + """ + :param Sequence[str] items: List of item names, such as cookies, headers, or query strings. + """ + CachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStrings._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def items(self) -> Optional[Sequence[str]]: + """ + List of item names, such as cookies, headers, or query strings. + """ return pulumi.get(self, "items") @@ -401,9 +538,24 @@ def __init__(__self__, *, :param int quantity: Number of CloudFront domain names in the staging distribution. :param Sequence[str] items: A list of CloudFront domain names for the staging distribution. """ - pulumi.set(__self__, "quantity", quantity) + ContinuousDeploymentPolicyStagingDistributionDnsNames._configure( + lambda key, value: pulumi.set(__self__, key, value), + quantity=quantity, + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + quantity: Optional[int] = None, + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if quantity is None: + raise TypeError("Missing 'quantity' argument") + + _setter("quantity", quantity) if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -452,11 +604,32 @@ def __init__(__self__, *, :param 'ContinuousDeploymentPolicyTrafficConfigSingleHeaderConfigArgs' single_header_config: Determines which HTTP requests are sent to the staging distribution. See `single_header_config`. :param 'ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigArgs' single_weight_config: Contains the percentage of traffic to send to the staging distribution. See `single_weight_config`. """ - pulumi.set(__self__, "type", type) + ContinuousDeploymentPolicyTrafficConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + single_header_config=single_header_config, + single_weight_config=single_weight_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + single_header_config: Optional['outputs.ContinuousDeploymentPolicyTrafficConfigSingleHeaderConfig'] = None, + single_weight_config: Optional['outputs.ContinuousDeploymentPolicyTrafficConfigSingleWeightConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if single_header_config is None and 'singleHeaderConfig' in kwargs: + single_header_config = kwargs['singleHeaderConfig'] + if single_weight_config is None and 'singleWeightConfig' in kwargs: + single_weight_config = kwargs['singleWeightConfig'] + + _setter("type", type) if single_header_config is not None: - pulumi.set(__self__, "single_header_config", single_header_config) + _setter("single_header_config", single_header_config) if single_weight_config is not None: - pulumi.set(__self__, "single_weight_config", single_weight_config) + _setter("single_weight_config", single_weight_config) @property @pulumi.getter @@ -492,8 +665,25 @@ def __init__(__self__, *, :param str header: Request header name to send to the staging distribution. The header must contain the prefix `aws-cf-cd-`. :param str value: Request header value. """ - pulumi.set(__self__, "header", header) - pulumi.set(__self__, "value", value) + ContinuousDeploymentPolicyTrafficConfigSingleHeaderConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is None: + raise TypeError("Missing 'header' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("header", header) + _setter("value", value) @property @pulumi.getter @@ -538,9 +728,26 @@ def __init__(__self__, *, :param float weight: The percentage of traffic to send to a staging distribution, expressed as a decimal number between `0` and `.15`. :param 'ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigSessionStickinessConfigArgs' session_stickiness_config: Session stickiness provides the ability to define multiple requests from a single viewer as a single session. This prevents the potentially inconsistent experience of sending some of a given user's requests to the staging distribution, while others are sent to the primary distribution. Define the session duration using TTL values. See `session_stickiness_config`. """ - pulumi.set(__self__, "weight", weight) + ContinuousDeploymentPolicyTrafficConfigSingleWeightConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + weight=weight, + session_stickiness_config=session_stickiness_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weight: Optional[float] = None, + session_stickiness_config: Optional['outputs.ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigSessionStickinessConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weight is None: + raise TypeError("Missing 'weight' argument") + if session_stickiness_config is None and 'sessionStickinessConfig' in kwargs: + session_stickiness_config = kwargs['sessionStickinessConfig'] + + _setter("weight", weight) if session_stickiness_config is not None: - pulumi.set(__self__, "session_stickiness_config", session_stickiness_config) + _setter("session_stickiness_config", session_stickiness_config) @property @pulumi.getter @@ -587,8 +794,29 @@ def __init__(__self__, *, :param int idle_ttl: The amount of time in seconds after which sessions will cease if no requests are received. Valid values are `300` – `3600` (5–60 minutes). The value must be less than or equal to `maximum_ttl`. :param int maximum_ttl: The maximum amount of time in seconds to consider requests from the viewer as being part of the same session. Valid values are `300` – `3600` (5–60 minutes). The value must be greater than or equal to `idle_ttl`. """ - pulumi.set(__self__, "idle_ttl", idle_ttl) - pulumi.set(__self__, "maximum_ttl", maximum_ttl) + ContinuousDeploymentPolicyTrafficConfigSingleWeightConfigSessionStickinessConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle_ttl=idle_ttl, + maximum_ttl=maximum_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle_ttl: Optional[int] = None, + maximum_ttl: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle_ttl is None and 'idleTtl' in kwargs: + idle_ttl = kwargs['idleTtl'] + if idle_ttl is None: + raise TypeError("Missing 'idle_ttl' argument") + if maximum_ttl is None and 'maximumTtl' in kwargs: + maximum_ttl = kwargs['maximumTtl'] + if maximum_ttl is None: + raise TypeError("Missing 'maximum_ttl' argument") + + _setter("idle_ttl", idle_ttl) + _setter("maximum_ttl", maximum_ttl) @property @pulumi.getter(name="idleTtl") @@ -643,13 +871,40 @@ def __init__(__self__, *, :param int response_code: HTTP status code that you want CloudFront to return with the custom error page to the viewer. :param str response_page_path: Path of the custom error page (for example, `/custom_404.html`). """ - pulumi.set(__self__, "error_code", error_code) + DistributionCustomErrorResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_code=error_code, + error_caching_min_ttl=error_caching_min_ttl, + response_code=response_code, + response_page_path=response_page_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_code: Optional[int] = None, + error_caching_min_ttl: Optional[int] = None, + response_code: Optional[int] = None, + response_page_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_code is None and 'errorCode' in kwargs: + error_code = kwargs['errorCode'] + if error_code is None: + raise TypeError("Missing 'error_code' argument") + if error_caching_min_ttl is None and 'errorCachingMinTtl' in kwargs: + error_caching_min_ttl = kwargs['errorCachingMinTtl'] + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_page_path is None and 'responsePagePath' in kwargs: + response_page_path = kwargs['responsePagePath'] + + _setter("error_code", error_code) if error_caching_min_ttl is not None: - pulumi.set(__self__, "error_caching_min_ttl", error_caching_min_ttl) + _setter("error_caching_min_ttl", error_caching_min_ttl) if response_code is not None: - pulumi.set(__self__, "response_code", response_code) + _setter("response_code", response_code) if response_page_path is not None: - pulumi.set(__self__, "response_page_path", response_page_path) + _setter("response_page_path", response_page_path) @property @pulumi.getter(name="errorCode") @@ -778,40 +1033,131 @@ def __init__(__self__, *, :param Sequence[str] trusted_key_groups: List of key group IDs that CloudFront can use to validate signed URLs or signed cookies. See the [CloudFront User Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html) for more information about this feature. :param Sequence[str] trusted_signers: List of AWS account IDs (or `self`) that you want to allow to create signed URLs for private content. See the [CloudFront User Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html) for more information about this feature. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "cached_methods", cached_methods) - pulumi.set(__self__, "target_origin_id", target_origin_id) - pulumi.set(__self__, "viewer_protocol_policy", viewer_protocol_policy) + DistributionDefaultCacheBehavior._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + cached_methods=cached_methods, + target_origin_id=target_origin_id, + viewer_protocol_policy=viewer_protocol_policy, + cache_policy_id=cache_policy_id, + compress=compress, + default_ttl=default_ttl, + field_level_encryption_id=field_level_encryption_id, + forwarded_values=forwarded_values, + function_associations=function_associations, + lambda_function_associations=lambda_function_associations, + max_ttl=max_ttl, + min_ttl=min_ttl, + origin_request_policy_id=origin_request_policy_id, + realtime_log_config_arn=realtime_log_config_arn, + response_headers_policy_id=response_headers_policy_id, + smooth_streaming=smooth_streaming, + trusted_key_groups=trusted_key_groups, + trusted_signers=trusted_signers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[Sequence[str]] = None, + cached_methods: Optional[Sequence[str]] = None, + target_origin_id: Optional[str] = None, + viewer_protocol_policy: Optional[str] = None, + cache_policy_id: Optional[str] = None, + compress: Optional[bool] = None, + default_ttl: Optional[int] = None, + field_level_encryption_id: Optional[str] = None, + forwarded_values: Optional['outputs.DistributionDefaultCacheBehaviorForwardedValues'] = None, + function_associations: Optional[Sequence['outputs.DistributionDefaultCacheBehaviorFunctionAssociation']] = None, + lambda_function_associations: Optional[Sequence['outputs.DistributionDefaultCacheBehaviorLambdaFunctionAssociation']] = None, + max_ttl: Optional[int] = None, + min_ttl: Optional[int] = None, + origin_request_policy_id: Optional[str] = None, + realtime_log_config_arn: Optional[str] = None, + response_headers_policy_id: Optional[str] = None, + smooth_streaming: Optional[bool] = None, + trusted_key_groups: Optional[Sequence[str]] = None, + trusted_signers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if cached_methods is None and 'cachedMethods' in kwargs: + cached_methods = kwargs['cachedMethods'] + if cached_methods is None: + raise TypeError("Missing 'cached_methods' argument") + if target_origin_id is None and 'targetOriginId' in kwargs: + target_origin_id = kwargs['targetOriginId'] + if target_origin_id is None: + raise TypeError("Missing 'target_origin_id' argument") + if viewer_protocol_policy is None and 'viewerProtocolPolicy' in kwargs: + viewer_protocol_policy = kwargs['viewerProtocolPolicy'] + if viewer_protocol_policy is None: + raise TypeError("Missing 'viewer_protocol_policy' argument") + if cache_policy_id is None and 'cachePolicyId' in kwargs: + cache_policy_id = kwargs['cachePolicyId'] + if default_ttl is None and 'defaultTtl' in kwargs: + default_ttl = kwargs['defaultTtl'] + if field_level_encryption_id is None and 'fieldLevelEncryptionId' in kwargs: + field_level_encryption_id = kwargs['fieldLevelEncryptionId'] + if forwarded_values is None and 'forwardedValues' in kwargs: + forwarded_values = kwargs['forwardedValues'] + if function_associations is None and 'functionAssociations' in kwargs: + function_associations = kwargs['functionAssociations'] + if lambda_function_associations is None and 'lambdaFunctionAssociations' in kwargs: + lambda_function_associations = kwargs['lambdaFunctionAssociations'] + if max_ttl is None and 'maxTtl' in kwargs: + max_ttl = kwargs['maxTtl'] + if min_ttl is None and 'minTtl' in kwargs: + min_ttl = kwargs['minTtl'] + if origin_request_policy_id is None and 'originRequestPolicyId' in kwargs: + origin_request_policy_id = kwargs['originRequestPolicyId'] + if realtime_log_config_arn is None and 'realtimeLogConfigArn' in kwargs: + realtime_log_config_arn = kwargs['realtimeLogConfigArn'] + if response_headers_policy_id is None and 'responseHeadersPolicyId' in kwargs: + response_headers_policy_id = kwargs['responseHeadersPolicyId'] + if smooth_streaming is None and 'smoothStreaming' in kwargs: + smooth_streaming = kwargs['smoothStreaming'] + if trusted_key_groups is None and 'trustedKeyGroups' in kwargs: + trusted_key_groups = kwargs['trustedKeyGroups'] + if trusted_signers is None and 'trustedSigners' in kwargs: + trusted_signers = kwargs['trustedSigners'] + + _setter("allowed_methods", allowed_methods) + _setter("cached_methods", cached_methods) + _setter("target_origin_id", target_origin_id) + _setter("viewer_protocol_policy", viewer_protocol_policy) if cache_policy_id is not None: - pulumi.set(__self__, "cache_policy_id", cache_policy_id) + _setter("cache_policy_id", cache_policy_id) if compress is not None: - pulumi.set(__self__, "compress", compress) + _setter("compress", compress) if default_ttl is not None: - pulumi.set(__self__, "default_ttl", default_ttl) + _setter("default_ttl", default_ttl) if field_level_encryption_id is not None: - pulumi.set(__self__, "field_level_encryption_id", field_level_encryption_id) + _setter("field_level_encryption_id", field_level_encryption_id) if forwarded_values is not None: - pulumi.set(__self__, "forwarded_values", forwarded_values) + _setter("forwarded_values", forwarded_values) if function_associations is not None: - pulumi.set(__self__, "function_associations", function_associations) + _setter("function_associations", function_associations) if lambda_function_associations is not None: - pulumi.set(__self__, "lambda_function_associations", lambda_function_associations) + _setter("lambda_function_associations", lambda_function_associations) if max_ttl is not None: - pulumi.set(__self__, "max_ttl", max_ttl) + _setter("max_ttl", max_ttl) if min_ttl is not None: - pulumi.set(__self__, "min_ttl", min_ttl) + _setter("min_ttl", min_ttl) if origin_request_policy_id is not None: - pulumi.set(__self__, "origin_request_policy_id", origin_request_policy_id) + _setter("origin_request_policy_id", origin_request_policy_id) if realtime_log_config_arn is not None: - pulumi.set(__self__, "realtime_log_config_arn", realtime_log_config_arn) + _setter("realtime_log_config_arn", realtime_log_config_arn) if response_headers_policy_id is not None: - pulumi.set(__self__, "response_headers_policy_id", response_headers_policy_id) + _setter("response_headers_policy_id", response_headers_policy_id) if smooth_streaming is not None: - pulumi.set(__self__, "smooth_streaming", smooth_streaming) + _setter("smooth_streaming", smooth_streaming) if trusted_key_groups is not None: - pulumi.set(__self__, "trusted_key_groups", trusted_key_groups) + _setter("trusted_key_groups", trusted_key_groups) if trusted_signers is not None: - pulumi.set(__self__, "trusted_signers", trusted_signers) + _setter("trusted_signers", trusted_signers) @property @pulumi.getter(name="allowedMethods") @@ -998,12 +1344,37 @@ def __init__(__self__, *, :param Sequence[str] headers: Headers, if any, that you want CloudFront to vary upon for this cache behavior. Specify `*` to include all headers. :param Sequence[str] query_string_cache_keys: When specified, along with a value of `true` for `query_string`, all query strings are forwarded, however only the query string keys listed in this argument are cached. When omitted with a value of `true` for `query_string`, all query string keys are cached. """ - pulumi.set(__self__, "cookies", cookies) - pulumi.set(__self__, "query_string", query_string) + DistributionDefaultCacheBehaviorForwardedValues._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies=cookies, + query_string=query_string, + headers=headers, + query_string_cache_keys=query_string_cache_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies: Optional['outputs.DistributionDefaultCacheBehaviorForwardedValuesCookies'] = None, + query_string: Optional[bool] = None, + headers: Optional[Sequence[str]] = None, + query_string_cache_keys: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies is None: + raise TypeError("Missing 'cookies' argument") + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if query_string is None: + raise TypeError("Missing 'query_string' argument") + if query_string_cache_keys is None and 'queryStringCacheKeys' in kwargs: + query_string_cache_keys = kwargs['queryStringCacheKeys'] + + _setter("cookies", cookies) + _setter("query_string", query_string) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if query_string_cache_keys is not None: - pulumi.set(__self__, "query_string_cache_keys", query_string_cache_keys) + _setter("query_string_cache_keys", query_string_cache_keys) @property @pulumi.getter @@ -1064,9 +1435,26 @@ def __init__(__self__, *, :param str forward: Whether you want CloudFront to forward cookies to the origin that is associated with this cache behavior. You can specify `all`, `none` or `whitelist`. If `whitelist`, you must include the subsequent `whitelisted_names`. :param Sequence[str] whitelisted_names: If you have specified `whitelist` to `forward`, the whitelisted cookies that you want CloudFront to forward to your origin. """ - pulumi.set(__self__, "forward", forward) + DistributionDefaultCacheBehaviorForwardedValuesCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + forward=forward, + whitelisted_names=whitelisted_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + forward: Optional[str] = None, + whitelisted_names: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forward is None: + raise TypeError("Missing 'forward' argument") + if whitelisted_names is None and 'whitelistedNames' in kwargs: + whitelisted_names = kwargs['whitelistedNames'] + + _setter("forward", forward) if whitelisted_names is not None: - pulumi.set(__self__, "whitelisted_names", whitelisted_names) + _setter("whitelisted_names", whitelisted_names) @property @pulumi.getter @@ -1113,8 +1501,29 @@ def __init__(__self__, *, :param str event_type: Specific event to trigger this function. Valid values: `viewer-request` or `viewer-response`. :param str function_arn: ARN of the CloudFront function. """ - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "function_arn", function_arn) + DistributionDefaultCacheBehaviorFunctionAssociation._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_type=event_type, + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_type: Optional[str] = None, + function_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("event_type", event_type) + _setter("function_arn", function_arn) @property @pulumi.getter(name="eventType") @@ -1165,10 +1574,35 @@ def __init__(__self__, *, :param str lambda_arn: ARN of the Lambda function. :param bool include_body: When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: `true`, `false`. """ - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "lambda_arn", lambda_arn) + DistributionDefaultCacheBehaviorLambdaFunctionAssociation._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_type=event_type, + lambda_arn=lambda_arn, + include_body=include_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_type: Optional[str] = None, + lambda_arn: Optional[str] = None, + include_body: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if include_body is None and 'includeBody' in kwargs: + include_body = kwargs['includeBody'] + + _setter("event_type", event_type) + _setter("lambda_arn", lambda_arn) if include_body is not None: - pulumi.set(__self__, "include_body", include_body) + _setter("include_body", include_body) @property @pulumi.getter(name="eventType") @@ -1223,11 +1657,30 @@ def __init__(__self__, *, :param bool include_cookies: Whether to include cookies in access logs (default: `false`). :param str prefix: Prefix to the access log filenames for this distribution, for example, `myprefix/`. """ - pulumi.set(__self__, "bucket", bucket) + DistributionLoggingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + include_cookies=include_cookies, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + include_cookies: Optional[bool] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if include_cookies is None and 'includeCookies' in kwargs: + include_cookies = kwargs['includeCookies'] + + _setter("bucket", bucket) if include_cookies is not None: - pulumi.set(__self__, "include_cookies", include_cookies) + _setter("include_cookies", include_cookies) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -1352,41 +1805,138 @@ def __init__(__self__, *, :param Sequence[str] trusted_key_groups: List of key group IDs that CloudFront can use to validate signed URLs or signed cookies. See the [CloudFront User Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html) for more information about this feature. :param Sequence[str] trusted_signers: List of AWS account IDs (or `self`) that you want to allow to create signed URLs for private content. See the [CloudFront User Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html) for more information about this feature. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "cached_methods", cached_methods) - pulumi.set(__self__, "path_pattern", path_pattern) - pulumi.set(__self__, "target_origin_id", target_origin_id) - pulumi.set(__self__, "viewer_protocol_policy", viewer_protocol_policy) + DistributionOrderedCacheBehavior._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + cached_methods=cached_methods, + path_pattern=path_pattern, + target_origin_id=target_origin_id, + viewer_protocol_policy=viewer_protocol_policy, + cache_policy_id=cache_policy_id, + compress=compress, + default_ttl=default_ttl, + field_level_encryption_id=field_level_encryption_id, + forwarded_values=forwarded_values, + function_associations=function_associations, + lambda_function_associations=lambda_function_associations, + max_ttl=max_ttl, + min_ttl=min_ttl, + origin_request_policy_id=origin_request_policy_id, + realtime_log_config_arn=realtime_log_config_arn, + response_headers_policy_id=response_headers_policy_id, + smooth_streaming=smooth_streaming, + trusted_key_groups=trusted_key_groups, + trusted_signers=trusted_signers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[Sequence[str]] = None, + cached_methods: Optional[Sequence[str]] = None, + path_pattern: Optional[str] = None, + target_origin_id: Optional[str] = None, + viewer_protocol_policy: Optional[str] = None, + cache_policy_id: Optional[str] = None, + compress: Optional[bool] = None, + default_ttl: Optional[int] = None, + field_level_encryption_id: Optional[str] = None, + forwarded_values: Optional['outputs.DistributionOrderedCacheBehaviorForwardedValues'] = None, + function_associations: Optional[Sequence['outputs.DistributionOrderedCacheBehaviorFunctionAssociation']] = None, + lambda_function_associations: Optional[Sequence['outputs.DistributionOrderedCacheBehaviorLambdaFunctionAssociation']] = None, + max_ttl: Optional[int] = None, + min_ttl: Optional[int] = None, + origin_request_policy_id: Optional[str] = None, + realtime_log_config_arn: Optional[str] = None, + response_headers_policy_id: Optional[str] = None, + smooth_streaming: Optional[bool] = None, + trusted_key_groups: Optional[Sequence[str]] = None, + trusted_signers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if cached_methods is None and 'cachedMethods' in kwargs: + cached_methods = kwargs['cachedMethods'] + if cached_methods is None: + raise TypeError("Missing 'cached_methods' argument") + if path_pattern is None and 'pathPattern' in kwargs: + path_pattern = kwargs['pathPattern'] + if path_pattern is None: + raise TypeError("Missing 'path_pattern' argument") + if target_origin_id is None and 'targetOriginId' in kwargs: + target_origin_id = kwargs['targetOriginId'] + if target_origin_id is None: + raise TypeError("Missing 'target_origin_id' argument") + if viewer_protocol_policy is None and 'viewerProtocolPolicy' in kwargs: + viewer_protocol_policy = kwargs['viewerProtocolPolicy'] + if viewer_protocol_policy is None: + raise TypeError("Missing 'viewer_protocol_policy' argument") + if cache_policy_id is None and 'cachePolicyId' in kwargs: + cache_policy_id = kwargs['cachePolicyId'] + if default_ttl is None and 'defaultTtl' in kwargs: + default_ttl = kwargs['defaultTtl'] + if field_level_encryption_id is None and 'fieldLevelEncryptionId' in kwargs: + field_level_encryption_id = kwargs['fieldLevelEncryptionId'] + if forwarded_values is None and 'forwardedValues' in kwargs: + forwarded_values = kwargs['forwardedValues'] + if function_associations is None and 'functionAssociations' in kwargs: + function_associations = kwargs['functionAssociations'] + if lambda_function_associations is None and 'lambdaFunctionAssociations' in kwargs: + lambda_function_associations = kwargs['lambdaFunctionAssociations'] + if max_ttl is None and 'maxTtl' in kwargs: + max_ttl = kwargs['maxTtl'] + if min_ttl is None and 'minTtl' in kwargs: + min_ttl = kwargs['minTtl'] + if origin_request_policy_id is None and 'originRequestPolicyId' in kwargs: + origin_request_policy_id = kwargs['originRequestPolicyId'] + if realtime_log_config_arn is None and 'realtimeLogConfigArn' in kwargs: + realtime_log_config_arn = kwargs['realtimeLogConfigArn'] + if response_headers_policy_id is None and 'responseHeadersPolicyId' in kwargs: + response_headers_policy_id = kwargs['responseHeadersPolicyId'] + if smooth_streaming is None and 'smoothStreaming' in kwargs: + smooth_streaming = kwargs['smoothStreaming'] + if trusted_key_groups is None and 'trustedKeyGroups' in kwargs: + trusted_key_groups = kwargs['trustedKeyGroups'] + if trusted_signers is None and 'trustedSigners' in kwargs: + trusted_signers = kwargs['trustedSigners'] + + _setter("allowed_methods", allowed_methods) + _setter("cached_methods", cached_methods) + _setter("path_pattern", path_pattern) + _setter("target_origin_id", target_origin_id) + _setter("viewer_protocol_policy", viewer_protocol_policy) if cache_policy_id is not None: - pulumi.set(__self__, "cache_policy_id", cache_policy_id) + _setter("cache_policy_id", cache_policy_id) if compress is not None: - pulumi.set(__self__, "compress", compress) + _setter("compress", compress) if default_ttl is not None: - pulumi.set(__self__, "default_ttl", default_ttl) + _setter("default_ttl", default_ttl) if field_level_encryption_id is not None: - pulumi.set(__self__, "field_level_encryption_id", field_level_encryption_id) + _setter("field_level_encryption_id", field_level_encryption_id) if forwarded_values is not None: - pulumi.set(__self__, "forwarded_values", forwarded_values) + _setter("forwarded_values", forwarded_values) if function_associations is not None: - pulumi.set(__self__, "function_associations", function_associations) + _setter("function_associations", function_associations) if lambda_function_associations is not None: - pulumi.set(__self__, "lambda_function_associations", lambda_function_associations) + _setter("lambda_function_associations", lambda_function_associations) if max_ttl is not None: - pulumi.set(__self__, "max_ttl", max_ttl) + _setter("max_ttl", max_ttl) if min_ttl is not None: - pulumi.set(__self__, "min_ttl", min_ttl) + _setter("min_ttl", min_ttl) if origin_request_policy_id is not None: - pulumi.set(__self__, "origin_request_policy_id", origin_request_policy_id) + _setter("origin_request_policy_id", origin_request_policy_id) if realtime_log_config_arn is not None: - pulumi.set(__self__, "realtime_log_config_arn", realtime_log_config_arn) + _setter("realtime_log_config_arn", realtime_log_config_arn) if response_headers_policy_id is not None: - pulumi.set(__self__, "response_headers_policy_id", response_headers_policy_id) + _setter("response_headers_policy_id", response_headers_policy_id) if smooth_streaming is not None: - pulumi.set(__self__, "smooth_streaming", smooth_streaming) + _setter("smooth_streaming", smooth_streaming) if trusted_key_groups is not None: - pulumi.set(__self__, "trusted_key_groups", trusted_key_groups) + _setter("trusted_key_groups", trusted_key_groups) if trusted_signers is not None: - pulumi.set(__self__, "trusted_signers", trusted_signers) + _setter("trusted_signers", trusted_signers) @property @pulumi.getter(name="allowedMethods") @@ -1581,12 +2131,37 @@ def __init__(__self__, *, :param Sequence[str] headers: Headers, if any, that you want CloudFront to vary upon for this cache behavior. Specify `*` to include all headers. :param Sequence[str] query_string_cache_keys: When specified, along with a value of `true` for `query_string`, all query strings are forwarded, however only the query string keys listed in this argument are cached. When omitted with a value of `true` for `query_string`, all query string keys are cached. """ - pulumi.set(__self__, "cookies", cookies) - pulumi.set(__self__, "query_string", query_string) + DistributionOrderedCacheBehaviorForwardedValues._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies=cookies, + query_string=query_string, + headers=headers, + query_string_cache_keys=query_string_cache_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies: Optional['outputs.DistributionOrderedCacheBehaviorForwardedValuesCookies'] = None, + query_string: Optional[bool] = None, + headers: Optional[Sequence[str]] = None, + query_string_cache_keys: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies is None: + raise TypeError("Missing 'cookies' argument") + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if query_string is None: + raise TypeError("Missing 'query_string' argument") + if query_string_cache_keys is None and 'queryStringCacheKeys' in kwargs: + query_string_cache_keys = kwargs['queryStringCacheKeys'] + + _setter("cookies", cookies) + _setter("query_string", query_string) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if query_string_cache_keys is not None: - pulumi.set(__self__, "query_string_cache_keys", query_string_cache_keys) + _setter("query_string_cache_keys", query_string_cache_keys) @property @pulumi.getter @@ -1647,9 +2222,26 @@ def __init__(__self__, *, :param str forward: Whether you want CloudFront to forward cookies to the origin that is associated with this cache behavior. You can specify `all`, `none` or `whitelist`. If `whitelist`, you must include the subsequent `whitelisted_names`. :param Sequence[str] whitelisted_names: If you have specified `whitelist` to `forward`, the whitelisted cookies that you want CloudFront to forward to your origin. """ - pulumi.set(__self__, "forward", forward) + DistributionOrderedCacheBehaviorForwardedValuesCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + forward=forward, + whitelisted_names=whitelisted_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + forward: Optional[str] = None, + whitelisted_names: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forward is None: + raise TypeError("Missing 'forward' argument") + if whitelisted_names is None and 'whitelistedNames' in kwargs: + whitelisted_names = kwargs['whitelistedNames'] + + _setter("forward", forward) if whitelisted_names is not None: - pulumi.set(__self__, "whitelisted_names", whitelisted_names) + _setter("whitelisted_names", whitelisted_names) @property @pulumi.getter @@ -1696,8 +2288,29 @@ def __init__(__self__, *, :param str event_type: Specific event to trigger this function. Valid values: `viewer-request` or `viewer-response`. :param str function_arn: ARN of the CloudFront function. """ - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "function_arn", function_arn) + DistributionOrderedCacheBehaviorFunctionAssociation._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_type=event_type, + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_type: Optional[str] = None, + function_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("event_type", event_type) + _setter("function_arn", function_arn) @property @pulumi.getter(name="eventType") @@ -1748,10 +2361,35 @@ def __init__(__self__, *, :param str lambda_arn: ARN of the Lambda function. :param bool include_body: When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: `true`, `false`. """ - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "lambda_arn", lambda_arn) + DistributionOrderedCacheBehaviorLambdaFunctionAssociation._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_type=event_type, + lambda_arn=lambda_arn, + include_body=include_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_type: Optional[str] = None, + lambda_arn: Optional[str] = None, + include_body: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if include_body is None and 'includeBody' in kwargs: + include_body = kwargs['includeBody'] + + _setter("event_type", event_type) + _setter("lambda_arn", lambda_arn) if include_body is not None: - pulumi.set(__self__, "include_body", include_body) + _setter("include_body", include_body) @property @pulumi.getter(name="eventType") @@ -1828,7 +2466,7 @@ def __init__(__self__, *, s3_origin_config: Optional['outputs.DistributionOriginS3OriginConfig'] = None): """ :param str domain_name: DNS domain name of either the S3 bucket, or web site of your custom origin. - :param str origin_id: Unique identifier for the origin. + :param str origin_id: Unique identifier of the member origin. :param int connection_attempts: Number of times that CloudFront attempts to connect to the origin. Must be between 1-3. Defaults to 3. :param int connection_timeout: Number of seconds that CloudFront waits when trying to establish a connection to the origin. Must be between 1-10. Defaults to 10. :param Sequence['DistributionOriginCustomHeaderArgs'] custom_headers: One or more sub-resources with `name` and `value` parameters that specify header data that will be sent to the origin (multiples allowed). @@ -1838,24 +2476,77 @@ def __init__(__self__, *, :param 'DistributionOriginOriginShieldArgs' origin_shield: CloudFront Origin Shield configuration information. Using Origin Shield can help reduce the load on your origin. For more information, see [Using Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) in the Amazon CloudFront Developer Guide. :param 'DistributionOriginS3OriginConfigArgs' s3_origin_config: CloudFront S3 origin configuration information. If a custom origin is required, use `custom_origin_config` instead. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "origin_id", origin_id) + DistributionOrigin._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + origin_id=origin_id, + connection_attempts=connection_attempts, + connection_timeout=connection_timeout, + custom_headers=custom_headers, + custom_origin_config=custom_origin_config, + origin_access_control_id=origin_access_control_id, + origin_path=origin_path, + origin_shield=origin_shield, + s3_origin_config=s3_origin_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + origin_id: Optional[str] = None, + connection_attempts: Optional[int] = None, + connection_timeout: Optional[int] = None, + custom_headers: Optional[Sequence['outputs.DistributionOriginCustomHeader']] = None, + custom_origin_config: Optional['outputs.DistributionOriginCustomOriginConfig'] = None, + origin_access_control_id: Optional[str] = None, + origin_path: Optional[str] = None, + origin_shield: Optional['outputs.DistributionOriginOriginShield'] = None, + s3_origin_config: Optional['outputs.DistributionOriginS3OriginConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if origin_id is None and 'originId' in kwargs: + origin_id = kwargs['originId'] + if origin_id is None: + raise TypeError("Missing 'origin_id' argument") + if connection_attempts is None and 'connectionAttempts' in kwargs: + connection_attempts = kwargs['connectionAttempts'] + if connection_timeout is None and 'connectionTimeout' in kwargs: + connection_timeout = kwargs['connectionTimeout'] + if custom_headers is None and 'customHeaders' in kwargs: + custom_headers = kwargs['customHeaders'] + if custom_origin_config is None and 'customOriginConfig' in kwargs: + custom_origin_config = kwargs['customOriginConfig'] + if origin_access_control_id is None and 'originAccessControlId' in kwargs: + origin_access_control_id = kwargs['originAccessControlId'] + if origin_path is None and 'originPath' in kwargs: + origin_path = kwargs['originPath'] + if origin_shield is None and 'originShield' in kwargs: + origin_shield = kwargs['originShield'] + if s3_origin_config is None and 's3OriginConfig' in kwargs: + s3_origin_config = kwargs['s3OriginConfig'] + + _setter("domain_name", domain_name) + _setter("origin_id", origin_id) if connection_attempts is not None: - pulumi.set(__self__, "connection_attempts", connection_attempts) + _setter("connection_attempts", connection_attempts) if connection_timeout is not None: - pulumi.set(__self__, "connection_timeout", connection_timeout) + _setter("connection_timeout", connection_timeout) if custom_headers is not None: - pulumi.set(__self__, "custom_headers", custom_headers) + _setter("custom_headers", custom_headers) if custom_origin_config is not None: - pulumi.set(__self__, "custom_origin_config", custom_origin_config) + _setter("custom_origin_config", custom_origin_config) if origin_access_control_id is not None: - pulumi.set(__self__, "origin_access_control_id", origin_access_control_id) + _setter("origin_access_control_id", origin_access_control_id) if origin_path is not None: - pulumi.set(__self__, "origin_path", origin_path) + _setter("origin_path", origin_path) if origin_shield is not None: - pulumi.set(__self__, "origin_shield", origin_shield) + _setter("origin_shield", origin_shield) if s3_origin_config is not None: - pulumi.set(__self__, "s3_origin_config", s3_origin_config) + _setter("s3_origin_config", s3_origin_config) @property @pulumi.getter(name="domainName") @@ -1869,7 +2560,7 @@ def domain_name(self) -> str: @pulumi.getter(name="originId") def origin_id(self) -> str: """ - Unique identifier for the origin. + Unique identifier of the member origin. """ return pulumi.get(self, "origin_id") @@ -1943,8 +2634,25 @@ class DistributionOriginCustomHeader(dict): def __init__(__self__, *, name: str, value: str): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + DistributionOriginCustomHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2001,14 +2709,55 @@ def __init__(__self__, *, :param int origin_keepalive_timeout: The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. :param int origin_read_timeout: The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. """ - pulumi.set(__self__, "http_port", http_port) - pulumi.set(__self__, "https_port", https_port) - pulumi.set(__self__, "origin_protocol_policy", origin_protocol_policy) - pulumi.set(__self__, "origin_ssl_protocols", origin_ssl_protocols) + DistributionOriginCustomOriginConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_port=http_port, + https_port=https_port, + origin_protocol_policy=origin_protocol_policy, + origin_ssl_protocols=origin_ssl_protocols, + origin_keepalive_timeout=origin_keepalive_timeout, + origin_read_timeout=origin_read_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_port: Optional[int] = None, + https_port: Optional[int] = None, + origin_protocol_policy: Optional[str] = None, + origin_ssl_protocols: Optional[Sequence[str]] = None, + origin_keepalive_timeout: Optional[int] = None, + origin_read_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_port is None and 'httpPort' in kwargs: + http_port = kwargs['httpPort'] + if http_port is None: + raise TypeError("Missing 'http_port' argument") + if https_port is None and 'httpsPort' in kwargs: + https_port = kwargs['httpsPort'] + if https_port is None: + raise TypeError("Missing 'https_port' argument") + if origin_protocol_policy is None and 'originProtocolPolicy' in kwargs: + origin_protocol_policy = kwargs['originProtocolPolicy'] + if origin_protocol_policy is None: + raise TypeError("Missing 'origin_protocol_policy' argument") + if origin_ssl_protocols is None and 'originSslProtocols' in kwargs: + origin_ssl_protocols = kwargs['originSslProtocols'] + if origin_ssl_protocols is None: + raise TypeError("Missing 'origin_ssl_protocols' argument") + if origin_keepalive_timeout is None and 'originKeepaliveTimeout' in kwargs: + origin_keepalive_timeout = kwargs['originKeepaliveTimeout'] + if origin_read_timeout is None and 'originReadTimeout' in kwargs: + origin_read_timeout = kwargs['originReadTimeout'] + + _setter("http_port", http_port) + _setter("https_port", https_port) + _setter("origin_protocol_policy", origin_protocol_policy) + _setter("origin_ssl_protocols", origin_ssl_protocols) if origin_keepalive_timeout is not None: - pulumi.set(__self__, "origin_keepalive_timeout", origin_keepalive_timeout) + _setter("origin_keepalive_timeout", origin_keepalive_timeout) if origin_read_timeout is not None: - pulumi.set(__self__, "origin_read_timeout", origin_read_timeout) + _setter("origin_read_timeout", origin_read_timeout) @property @pulumi.getter(name="httpPort") @@ -2087,11 +2836,36 @@ def __init__(__self__, *, """ :param 'DistributionOriginGroupFailoverCriteriaArgs' failover_criteria: The failover criteria for when to failover to the secondary origin. :param Sequence['DistributionOriginGroupMemberArgs'] members: Ordered member configuration blocks assigned to the origin group, where the first member is the primary origin. You must specify two members. - :param str origin_id: Unique identifier for the origin. - """ - pulumi.set(__self__, "failover_criteria", failover_criteria) - pulumi.set(__self__, "members", members) - pulumi.set(__self__, "origin_id", origin_id) + :param str origin_id: Unique identifier of the member origin. + """ + DistributionOriginGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + failover_criteria=failover_criteria, + members=members, + origin_id=origin_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failover_criteria: Optional['outputs.DistributionOriginGroupFailoverCriteria'] = None, + members: Optional[Sequence['outputs.DistributionOriginGroupMember']] = None, + origin_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failover_criteria is None and 'failoverCriteria' in kwargs: + failover_criteria = kwargs['failoverCriteria'] + if failover_criteria is None: + raise TypeError("Missing 'failover_criteria' argument") + if members is None: + raise TypeError("Missing 'members' argument") + if origin_id is None and 'originId' in kwargs: + origin_id = kwargs['originId'] + if origin_id is None: + raise TypeError("Missing 'origin_id' argument") + + _setter("failover_criteria", failover_criteria) + _setter("members", members) + _setter("origin_id", origin_id) @property @pulumi.getter(name="failoverCriteria") @@ -2113,7 +2887,7 @@ def members(self) -> Sequence['outputs.DistributionOriginGroupMember']: @pulumi.getter(name="originId") def origin_id(self) -> str: """ - Unique identifier for the origin. + Unique identifier of the member origin. """ return pulumi.get(self, "origin_id") @@ -2142,7 +2916,22 @@ def __init__(__self__, *, """ :param Sequence[int] status_codes: List of HTTP status codes for the origin group. """ - pulumi.set(__self__, "status_codes", status_codes) + DistributionOriginGroupFailoverCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_codes=status_codes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_codes: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_codes is None and 'statusCodes' in kwargs: + status_codes = kwargs['statusCodes'] + if status_codes is None: + raise TypeError("Missing 'status_codes' argument") + + _setter("status_codes", status_codes) @property @pulumi.getter(name="statusCodes") @@ -2175,15 +2964,30 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, origin_id: str): """ - :param str origin_id: Unique identifier for the origin. + :param str origin_id: Unique identifier of the member origin. """ - pulumi.set(__self__, "origin_id", origin_id) + DistributionOriginGroupMember._configure( + lambda key, value: pulumi.set(__self__, key, value), + origin_id=origin_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + origin_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if origin_id is None and 'originId' in kwargs: + origin_id = kwargs['originId'] + if origin_id is None: + raise TypeError("Missing 'origin_id' argument") + + _setter("origin_id", origin_id) @property @pulumi.getter(name="originId") def origin_id(self) -> str: """ - Unique identifier for the origin. + Unique identifier of the member origin. """ return pulumi.get(self, "origin_id") @@ -2211,18 +3015,35 @@ def __init__(__self__, *, enabled: bool, origin_shield_region: Optional[str] = None): """ - :param bool enabled: Whether the distribution is enabled to accept end user requests for content. + :param bool enabled: Whether Origin Shield is enabled. :param str origin_shield_region: AWS Region for Origin Shield. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as `us-east-2`. """ - pulumi.set(__self__, "enabled", enabled) + DistributionOriginOriginShield._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + origin_shield_region=origin_shield_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + origin_shield_region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if origin_shield_region is None and 'originShieldRegion' in kwargs: + origin_shield_region = kwargs['originShieldRegion'] + + _setter("enabled", enabled) if origin_shield_region is not None: - pulumi.set(__self__, "origin_shield_region", origin_shield_region) + _setter("origin_shield_region", origin_shield_region) @property @pulumi.getter def enabled(self) -> bool: """ - Whether the distribution is enabled to accept end user requests for content. + Whether Origin Shield is enabled. """ return pulumi.get(self, "enabled") @@ -2259,7 +3080,22 @@ def __init__(__self__, *, """ :param str origin_access_identity: The CloudFront origin access identity to associate with the origin. """ - pulumi.set(__self__, "origin_access_identity", origin_access_identity) + DistributionOriginS3OriginConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + origin_access_identity=origin_access_identity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + origin_access_identity: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if origin_access_identity is None and 'originAccessIdentity' in kwargs: + origin_access_identity = kwargs['originAccessIdentity'] + if origin_access_identity is None: + raise TypeError("Missing 'origin_access_identity' argument") + + _setter("origin_access_identity", origin_access_identity) @property @pulumi.getter(name="originAccessIdentity") @@ -2291,7 +3127,22 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, geo_restriction: 'outputs.DistributionRestrictionsGeoRestriction'): - pulumi.set(__self__, "geo_restriction", geo_restriction) + DistributionRestrictions._configure( + lambda key, value: pulumi.set(__self__, key, value), + geo_restriction=geo_restriction, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + geo_restriction: Optional['outputs.DistributionRestrictionsGeoRestriction'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if geo_restriction is None and 'geoRestriction' in kwargs: + geo_restriction = kwargs['geoRestriction'] + if geo_restriction is None: + raise TypeError("Missing 'geo_restriction' argument") + + _setter("geo_restriction", geo_restriction) @property @pulumi.getter(name="geoRestriction") @@ -2325,9 +3176,26 @@ def __init__(__self__, *, :param str restriction_type: Method that you want to use to restrict distribution of your content by country: `none`, `whitelist`, or `blacklist`. :param Sequence[str] locations: [ISO 3166-1-alpha-2 codes][4] for which you want CloudFront either to distribute your content (`whitelist`) or not distribute your content (`blacklist`). If the type is specified as `none` an empty array can be used. """ - pulumi.set(__self__, "restriction_type", restriction_type) + DistributionRestrictionsGeoRestriction._configure( + lambda key, value: pulumi.set(__self__, key, value), + restriction_type=restriction_type, + locations=locations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + restriction_type: Optional[str] = None, + locations: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if restriction_type is None and 'restrictionType' in kwargs: + restriction_type = kwargs['restrictionType'] + if restriction_type is None: + raise TypeError("Missing 'restriction_type' argument") + + _setter("restriction_type", restriction_type) if locations is not None: - pulumi.set(__self__, "locations", locations) + _setter("locations", locations) @property @pulumi.getter(name="restrictionType") @@ -2352,19 +3220,32 @@ def __init__(__self__, *, enabled: Optional[bool] = None, items: Optional[Sequence['outputs.DistributionTrustedKeyGroupItem']] = None): """ - :param bool enabled: Whether the distribution is enabled to accept end user requests for content. + :param bool enabled: Whether Origin Shield is enabled. :param Sequence['DistributionTrustedKeyGroupItemArgs'] items: List of nested attributes for each trusted signer """ + DistributionTrustedKeyGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + items: Optional[Sequence['outputs.DistributionTrustedKeyGroupItem']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def enabled(self) -> Optional[bool]: """ - Whether the distribution is enabled to accept end user requests for content. + Whether Origin Shield is enabled. """ return pulumi.get(self, "enabled") @@ -2405,10 +3286,27 @@ def __init__(__self__, *, :param str key_group_id: ID of the key group that contains the public keys. :param Sequence[str] key_pair_ids: Set of active CloudFront key pairs associated with the signer account """ + DistributionTrustedKeyGroupItem._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_group_id=key_group_id, + key_pair_ids=key_pair_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_group_id: Optional[str] = None, + key_pair_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_group_id is None and 'keyGroupId' in kwargs: + key_group_id = kwargs['keyGroupId'] + if key_pair_ids is None and 'keyPairIds' in kwargs: + key_pair_ids = kwargs['keyPairIds'] + if key_group_id is not None: - pulumi.set(__self__, "key_group_id", key_group_id) + _setter("key_group_id", key_group_id) if key_pair_ids is not None: - pulumi.set(__self__, "key_pair_ids", key_pair_ids) + _setter("key_pair_ids", key_pair_ids) @property @pulumi.getter(name="keyGroupId") @@ -2433,19 +3331,32 @@ def __init__(__self__, *, enabled: Optional[bool] = None, items: Optional[Sequence['outputs.DistributionTrustedSignerItem']] = None): """ - :param bool enabled: Whether the distribution is enabled to accept end user requests for content. + :param bool enabled: Whether Origin Shield is enabled. :param Sequence['DistributionTrustedSignerItemArgs'] items: List of nested attributes for each trusted signer """ + DistributionTrustedSigner._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + items: Optional[Sequence['outputs.DistributionTrustedSignerItem']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter def enabled(self) -> Optional[bool]: """ - Whether the distribution is enabled to accept end user requests for content. + Whether Origin Shield is enabled. """ return pulumi.get(self, "enabled") @@ -2486,10 +3397,27 @@ def __init__(__self__, *, :param str aws_account_number: AWS account ID or `self` :param Sequence[str] key_pair_ids: Set of active CloudFront key pairs associated with the signer account """ + DistributionTrustedSignerItem._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_account_number=aws_account_number, + key_pair_ids=key_pair_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_account_number: Optional[str] = None, + key_pair_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_number is None and 'awsAccountNumber' in kwargs: + aws_account_number = kwargs['awsAccountNumber'] + if key_pair_ids is None and 'keyPairIds' in kwargs: + key_pair_ids = kwargs['keyPairIds'] + if aws_account_number is not None: - pulumi.set(__self__, "aws_account_number", aws_account_number) + _setter("aws_account_number", aws_account_number) if key_pair_ids is not None: - pulumi.set(__self__, "key_pair_ids", key_pair_ids) + _setter("key_pair_ids", key_pair_ids) @property @pulumi.getter(name="awsAccountNumber") @@ -2548,16 +3476,45 @@ def __init__(__self__, *, :param str minimum_protocol_version: Minimum version of the SSL protocol that you want CloudFront to use for HTTPS connections. Can only be set if `cloudfront_default_certificate = false`. See all possible values in [this](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html) table under "Security policy." Some examples include: `TLSv1.2_2019` and `TLSv1.2_2021`. Default: `TLSv1`. **NOTE**: If you are using a custom certificate (specified with `acm_certificate_arn` or `iam_certificate_id`), and have specified `sni-only` in `ssl_support_method`, `TLSv1` or later must be specified. If you have specified `vip` in `ssl_support_method`, only `SSLv3` or `TLSv1` can be specified. If you have specified `cloudfront_default_certificate`, `TLSv1` must be specified. :param str ssl_support_method: How you want CloudFront to serve HTTPS requests. One of `vip` or `sni-only`. Required if you specify `acm_certificate_arn` or `iam_certificate_id`. **NOTE:** `vip` causes CloudFront to use a dedicated IP address and may incur extra charges. """ + DistributionViewerCertificate._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm_certificate_arn=acm_certificate_arn, + cloudfront_default_certificate=cloudfront_default_certificate, + iam_certificate_id=iam_certificate_id, + minimum_protocol_version=minimum_protocol_version, + ssl_support_method=ssl_support_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm_certificate_arn: Optional[str] = None, + cloudfront_default_certificate: Optional[bool] = None, + iam_certificate_id: Optional[str] = None, + minimum_protocol_version: Optional[str] = None, + ssl_support_method: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm_certificate_arn is None and 'acmCertificateArn' in kwargs: + acm_certificate_arn = kwargs['acmCertificateArn'] + if cloudfront_default_certificate is None and 'cloudfrontDefaultCertificate' in kwargs: + cloudfront_default_certificate = kwargs['cloudfrontDefaultCertificate'] + if iam_certificate_id is None and 'iamCertificateId' in kwargs: + iam_certificate_id = kwargs['iamCertificateId'] + if minimum_protocol_version is None and 'minimumProtocolVersion' in kwargs: + minimum_protocol_version = kwargs['minimumProtocolVersion'] + if ssl_support_method is None and 'sslSupportMethod' in kwargs: + ssl_support_method = kwargs['sslSupportMethod'] + if acm_certificate_arn is not None: - pulumi.set(__self__, "acm_certificate_arn", acm_certificate_arn) + _setter("acm_certificate_arn", acm_certificate_arn) if cloudfront_default_certificate is not None: - pulumi.set(__self__, "cloudfront_default_certificate", cloudfront_default_certificate) + _setter("cloudfront_default_certificate", cloudfront_default_certificate) if iam_certificate_id is not None: - pulumi.set(__self__, "iam_certificate_id", iam_certificate_id) + _setter("iam_certificate_id", iam_certificate_id) if minimum_protocol_version is not None: - pulumi.set(__self__, "minimum_protocol_version", minimum_protocol_version) + _setter("minimum_protocol_version", minimum_protocol_version) if ssl_support_method is not None: - pulumi.set(__self__, "ssl_support_method", ssl_support_method) + _setter("ssl_support_method", ssl_support_method) @property @pulumi.getter(name="acmCertificateArn") @@ -2628,8 +3585,29 @@ def __init__(__self__, *, :param 'FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesArgs' content_type_profiles: Object that contains an attribute `items` that contains the list of configurations for a field-level encryption content type-profile. See Content Type Profile. :param bool forward_when_content_type_is_unknown: specifies what to do when an unknown content type is provided for the profile. If true, content is forwarded without being encrypted when the content type is unknown. If false (the default), an error is returned when the content type is unknown. """ - pulumi.set(__self__, "content_type_profiles", content_type_profiles) - pulumi.set(__self__, "forward_when_content_type_is_unknown", forward_when_content_type_is_unknown) + FieldLevelEncryptionConfigContentTypeProfileConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type_profiles=content_type_profiles, + forward_when_content_type_is_unknown=forward_when_content_type_is_unknown, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type_profiles: Optional['outputs.FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfiles'] = None, + forward_when_content_type_is_unknown: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type_profiles is None and 'contentTypeProfiles' in kwargs: + content_type_profiles = kwargs['contentTypeProfiles'] + if content_type_profiles is None: + raise TypeError("Missing 'content_type_profiles' argument") + if forward_when_content_type_is_unknown is None and 'forwardWhenContentTypeIsUnknown' in kwargs: + forward_when_content_type_is_unknown = kwargs['forwardWhenContentTypeIsUnknown'] + if forward_when_content_type_is_unknown is None: + raise TypeError("Missing 'forward_when_content_type_is_unknown' argument") + + _setter("content_type_profiles", content_type_profiles) + _setter("forward_when_content_type_is_unknown", forward_when_content_type_is_unknown) @property @pulumi.getter(name="contentTypeProfiles") @@ -2652,7 +3630,20 @@ def forward_when_content_type_is_unknown(self) -> bool: class FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfiles(dict): def __init__(__self__, *, items: Sequence['outputs.FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesItem']): - pulumi.set(__self__, "items", items) + FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfiles._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence['outputs.FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesItem']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -2690,10 +3681,33 @@ def __init__(__self__, *, :param str format: The format for a field-level encryption content type-profile mapping. Valid value is `URLEncoded`. :param str profile_id: The profile ID for a field-level encryption content type-profile mapping. """ - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "format", format) + FieldLevelEncryptionConfigContentTypeProfileConfigContentTypeProfilesItem._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + format=format, + profile_id=profile_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[str] = None, + format: Optional[str] = None, + profile_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if profile_id is None and 'profileId' in kwargs: + profile_id = kwargs['profileId'] + + _setter("content_type", content_type) + _setter("format", format) if profile_id is not None: - pulumi.set(__self__, "profile_id", profile_id) + _setter("profile_id", profile_id) @property @pulumi.getter(name="contentType") @@ -2748,9 +3762,28 @@ def __init__(__self__, *, :param bool forward_when_query_arg_profile_is_unknown: Flag to set if you want a request to be forwarded to the origin even if the profile specified by the field-level encryption query argument, fle-profile, is unknown. :param 'FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesArgs' query_arg_profiles: Object that contains an attribute `items` that contains the list ofrofiles specified for query argument-profile mapping for field-level encryption. see Query Arg Profile. """ - pulumi.set(__self__, "forward_when_query_arg_profile_is_unknown", forward_when_query_arg_profile_is_unknown) + FieldLevelEncryptionConfigQueryArgProfileConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + forward_when_query_arg_profile_is_unknown=forward_when_query_arg_profile_is_unknown, + query_arg_profiles=query_arg_profiles, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + forward_when_query_arg_profile_is_unknown: Optional[bool] = None, + query_arg_profiles: Optional['outputs.FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfiles'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forward_when_query_arg_profile_is_unknown is None and 'forwardWhenQueryArgProfileIsUnknown' in kwargs: + forward_when_query_arg_profile_is_unknown = kwargs['forwardWhenQueryArgProfileIsUnknown'] + if forward_when_query_arg_profile_is_unknown is None: + raise TypeError("Missing 'forward_when_query_arg_profile_is_unknown' argument") + if query_arg_profiles is None and 'queryArgProfiles' in kwargs: + query_arg_profiles = kwargs['queryArgProfiles'] + + _setter("forward_when_query_arg_profile_is_unknown", forward_when_query_arg_profile_is_unknown) if query_arg_profiles is not None: - pulumi.set(__self__, "query_arg_profiles", query_arg_profiles) + _setter("query_arg_profiles", query_arg_profiles) @property @pulumi.getter(name="forwardWhenQueryArgProfileIsUnknown") @@ -2773,8 +3806,19 @@ def query_arg_profiles(self) -> Optional['outputs.FieldLevelEncryptionConfigQuer class FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfiles(dict): def __init__(__self__, *, items: Optional[Sequence['outputs.FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesItem']] = None): + FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfiles._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence['outputs.FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesItem']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -2810,8 +3854,29 @@ def __init__(__self__, *, :param str profile_id: The profile ID for a field-level encryption content type-profile mapping. :param str query_arg: Query argument for field-level encryption query argument-profile mapping. """ - pulumi.set(__self__, "profile_id", profile_id) - pulumi.set(__self__, "query_arg", query_arg) + FieldLevelEncryptionConfigQueryArgProfileConfigQueryArgProfilesItem._configure( + lambda key, value: pulumi.set(__self__, key, value), + profile_id=profile_id, + query_arg=query_arg, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + profile_id: Optional[str] = None, + query_arg: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if profile_id is None and 'profileId' in kwargs: + profile_id = kwargs['profileId'] + if profile_id is None: + raise TypeError("Missing 'profile_id' argument") + if query_arg is None and 'queryArg' in kwargs: + query_arg = kwargs['queryArg'] + if query_arg is None: + raise TypeError("Missing 'query_arg' argument") + + _setter("profile_id", profile_id) + _setter("query_arg", query_arg) @property @pulumi.getter(name="profileId") @@ -2834,8 +3899,19 @@ def query_arg(self) -> str: class FieldLevelEncryptionProfileEncryptionEntities(dict): def __init__(__self__, *, items: Optional[Sequence['outputs.FieldLevelEncryptionProfileEncryptionEntitiesItem']] = None): + FieldLevelEncryptionProfileEncryptionEntities._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence['outputs.FieldLevelEncryptionProfileEncryptionEntitiesItem']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -2875,9 +3951,36 @@ def __init__(__self__, *, :param str provider_id: The provider associated with the public key being used for encryption. :param str public_key_id: The public key associated with a set of field-level encryption patterns, to be used when encrypting the fields that match the patterns. """ - pulumi.set(__self__, "field_patterns", field_patterns) - pulumi.set(__self__, "provider_id", provider_id) - pulumi.set(__self__, "public_key_id", public_key_id) + FieldLevelEncryptionProfileEncryptionEntitiesItem._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_patterns=field_patterns, + provider_id=provider_id, + public_key_id=public_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_patterns: Optional['outputs.FieldLevelEncryptionProfileEncryptionEntitiesItemFieldPatterns'] = None, + provider_id: Optional[str] = None, + public_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_patterns is None and 'fieldPatterns' in kwargs: + field_patterns = kwargs['fieldPatterns'] + if field_patterns is None: + raise TypeError("Missing 'field_patterns' argument") + if provider_id is None and 'providerId' in kwargs: + provider_id = kwargs['providerId'] + if provider_id is None: + raise TypeError("Missing 'provider_id' argument") + if public_key_id is None and 'publicKeyId' in kwargs: + public_key_id = kwargs['publicKeyId'] + if public_key_id is None: + raise TypeError("Missing 'public_key_id' argument") + + _setter("field_patterns", field_patterns) + _setter("provider_id", provider_id) + _setter("public_key_id", public_key_id) @property @pulumi.getter(name="fieldPatterns") @@ -2908,8 +4011,19 @@ def public_key_id(self) -> str: class FieldLevelEncryptionProfileEncryptionEntitiesItemFieldPatterns(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + FieldLevelEncryptionProfileEncryptionEntitiesItemFieldPatterns._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -2941,7 +4055,22 @@ def __init__(__self__, *, """ :param 'MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs' realtime_metrics_subscription_config: A subscription configuration for additional CloudWatch metrics. See below. """ - pulumi.set(__self__, "realtime_metrics_subscription_config", realtime_metrics_subscription_config) + MonitoringSubscriptionMonitoringSubscription._configure( + lambda key, value: pulumi.set(__self__, key, value), + realtime_metrics_subscription_config=realtime_metrics_subscription_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + realtime_metrics_subscription_config: Optional['outputs.MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if realtime_metrics_subscription_config is None and 'realtimeMetricsSubscriptionConfig' in kwargs: + realtime_metrics_subscription_config = kwargs['realtimeMetricsSubscriptionConfig'] + if realtime_metrics_subscription_config is None: + raise TypeError("Missing 'realtime_metrics_subscription_config' argument") + + _setter("realtime_metrics_subscription_config", realtime_metrics_subscription_config) @property @pulumi.getter(name="realtimeMetricsSubscriptionConfig") @@ -2976,7 +4105,22 @@ def __init__(__self__, *, """ :param str realtime_metrics_subscription_status: A flag that indicates whether additional CloudWatch metrics are enabled for a given CloudFront distribution. Valid values are `Enabled` and `Disabled`. See below. """ - pulumi.set(__self__, "realtime_metrics_subscription_status", realtime_metrics_subscription_status) + MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + realtime_metrics_subscription_status=realtime_metrics_subscription_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + realtime_metrics_subscription_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if realtime_metrics_subscription_status is None and 'realtimeMetricsSubscriptionStatus' in kwargs: + realtime_metrics_subscription_status = kwargs['realtimeMetricsSubscriptionStatus'] + if realtime_metrics_subscription_status is None: + raise TypeError("Missing 'realtime_metrics_subscription_status' argument") + + _setter("realtime_metrics_subscription_status", realtime_metrics_subscription_status) @property @pulumi.getter(name="realtimeMetricsSubscriptionStatus") @@ -3009,9 +4153,26 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, cookie_behavior: str, cookies: Optional['outputs.OriginRequestPolicyCookiesConfigCookies'] = None): - pulumi.set(__self__, "cookie_behavior", cookie_behavior) + OriginRequestPolicyCookiesConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_behavior=cookie_behavior, + cookies=cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_behavior: Optional[str] = None, + cookies: Optional['outputs.OriginRequestPolicyCookiesConfigCookies'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_behavior is None and 'cookieBehavior' in kwargs: + cookie_behavior = kwargs['cookieBehavior'] + if cookie_behavior is None: + raise TypeError("Missing 'cookie_behavior' argument") + + _setter("cookie_behavior", cookie_behavior) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) @property @pulumi.getter(name="cookieBehavior") @@ -3028,8 +4189,19 @@ def cookies(self) -> Optional['outputs.OriginRequestPolicyCookiesConfigCookies'] class OriginRequestPolicyCookiesConfigCookies(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + OriginRequestPolicyCookiesConfigCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3059,10 +4231,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, header_behavior: Optional[str] = None, headers: Optional['outputs.OriginRequestPolicyHeadersConfigHeaders'] = None): + OriginRequestPolicyHeadersConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_behavior=header_behavior, + headers=headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_behavior: Optional[str] = None, + headers: Optional['outputs.OriginRequestPolicyHeadersConfigHeaders'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_behavior is None and 'headerBehavior' in kwargs: + header_behavior = kwargs['headerBehavior'] + if header_behavior is not None: - pulumi.set(__self__, "header_behavior", header_behavior) + _setter("header_behavior", header_behavior) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) @property @pulumi.getter(name="headerBehavior") @@ -3079,8 +4266,19 @@ def headers(self) -> Optional['outputs.OriginRequestPolicyHeadersConfigHeaders'] class OriginRequestPolicyHeadersConfigHeaders(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + OriginRequestPolicyHeadersConfigHeaders._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3112,9 +4310,28 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, query_string_behavior: str, query_strings: Optional['outputs.OriginRequestPolicyQueryStringsConfigQueryStrings'] = None): - pulumi.set(__self__, "query_string_behavior", query_string_behavior) + OriginRequestPolicyQueryStringsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_string_behavior=query_string_behavior, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_string_behavior: Optional[str] = None, + query_strings: Optional['outputs.OriginRequestPolicyQueryStringsConfigQueryStrings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_string_behavior is None and 'queryStringBehavior' in kwargs: + query_string_behavior = kwargs['queryStringBehavior'] + if query_string_behavior is None: + raise TypeError("Missing 'query_string_behavior' argument") + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + + _setter("query_string_behavior", query_string_behavior) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) @property @pulumi.getter(name="queryStringBehavior") @@ -3131,8 +4348,19 @@ def query_strings(self) -> Optional['outputs.OriginRequestPolicyQueryStringsConf class OriginRequestPolicyQueryStringsConfigQueryStrings(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + OriginRequestPolicyQueryStringsConfigQueryStrings._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3168,8 +4396,29 @@ def __init__(__self__, *, :param 'RealtimeLogConfigEndpointKinesisStreamConfigArgs' kinesis_stream_config: The Amazon Kinesis data stream configuration. :param str stream_type: The type of data stream where real-time log data is sent. The only valid value is `Kinesis`. """ - pulumi.set(__self__, "kinesis_stream_config", kinesis_stream_config) - pulumi.set(__self__, "stream_type", stream_type) + RealtimeLogConfigEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + kinesis_stream_config=kinesis_stream_config, + stream_type=stream_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kinesis_stream_config: Optional['outputs.RealtimeLogConfigEndpointKinesisStreamConfig'] = None, + stream_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kinesis_stream_config is None and 'kinesisStreamConfig' in kwargs: + kinesis_stream_config = kwargs['kinesisStreamConfig'] + if kinesis_stream_config is None: + raise TypeError("Missing 'kinesis_stream_config' argument") + if stream_type is None and 'streamType' in kwargs: + stream_type = kwargs['streamType'] + if stream_type is None: + raise TypeError("Missing 'stream_type' argument") + + _setter("kinesis_stream_config", kinesis_stream_config) + _setter("stream_type", stream_type) @property @pulumi.getter(name="kinesisStreamConfig") @@ -3217,8 +4466,29 @@ def __init__(__self__, *, See the [AWS documentation](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role) for more information. :param str stream_arn: The ARN of the Kinesis data stream. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_arn", stream_arn) + RealtimeLogConfigEndpointKinesisStreamConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + stream_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("role_arn", role_arn) + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="roleArn") @@ -3286,15 +4556,62 @@ def __init__(__self__, *, :param 'ResponseHeadersPolicyCorsConfigAccessControlExposeHeadersArgs' access_control_expose_headers: Object that contains an attribute `items` that contains a list of HTTP headers that CloudFront includes as values for the `Access-Control-Expose-Headers` HTTP response header. :param int access_control_max_age_sec: A number that CloudFront uses as the value for the `Access-Control-Max-Age` HTTP response header. """ - pulumi.set(__self__, "access_control_allow_credentials", access_control_allow_credentials) - pulumi.set(__self__, "access_control_allow_headers", access_control_allow_headers) - pulumi.set(__self__, "access_control_allow_methods", access_control_allow_methods) - pulumi.set(__self__, "access_control_allow_origins", access_control_allow_origins) - pulumi.set(__self__, "origin_override", origin_override) + ResponseHeadersPolicyCorsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_control_allow_credentials=access_control_allow_credentials, + access_control_allow_headers=access_control_allow_headers, + access_control_allow_methods=access_control_allow_methods, + access_control_allow_origins=access_control_allow_origins, + origin_override=origin_override, + access_control_expose_headers=access_control_expose_headers, + access_control_max_age_sec=access_control_max_age_sec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_control_allow_credentials: Optional[bool] = None, + access_control_allow_headers: Optional['outputs.ResponseHeadersPolicyCorsConfigAccessControlAllowHeaders'] = None, + access_control_allow_methods: Optional['outputs.ResponseHeadersPolicyCorsConfigAccessControlAllowMethods'] = None, + access_control_allow_origins: Optional['outputs.ResponseHeadersPolicyCorsConfigAccessControlAllowOrigins'] = None, + origin_override: Optional[bool] = None, + access_control_expose_headers: Optional['outputs.ResponseHeadersPolicyCorsConfigAccessControlExposeHeaders'] = None, + access_control_max_age_sec: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_control_allow_credentials is None and 'accessControlAllowCredentials' in kwargs: + access_control_allow_credentials = kwargs['accessControlAllowCredentials'] + if access_control_allow_credentials is None: + raise TypeError("Missing 'access_control_allow_credentials' argument") + if access_control_allow_headers is None and 'accessControlAllowHeaders' in kwargs: + access_control_allow_headers = kwargs['accessControlAllowHeaders'] + if access_control_allow_headers is None: + raise TypeError("Missing 'access_control_allow_headers' argument") + if access_control_allow_methods is None and 'accessControlAllowMethods' in kwargs: + access_control_allow_methods = kwargs['accessControlAllowMethods'] + if access_control_allow_methods is None: + raise TypeError("Missing 'access_control_allow_methods' argument") + if access_control_allow_origins is None and 'accessControlAllowOrigins' in kwargs: + access_control_allow_origins = kwargs['accessControlAllowOrigins'] + if access_control_allow_origins is None: + raise TypeError("Missing 'access_control_allow_origins' argument") + if origin_override is None and 'originOverride' in kwargs: + origin_override = kwargs['originOverride'] + if origin_override is None: + raise TypeError("Missing 'origin_override' argument") + if access_control_expose_headers is None and 'accessControlExposeHeaders' in kwargs: + access_control_expose_headers = kwargs['accessControlExposeHeaders'] + if access_control_max_age_sec is None and 'accessControlMaxAgeSec' in kwargs: + access_control_max_age_sec = kwargs['accessControlMaxAgeSec'] + + _setter("access_control_allow_credentials", access_control_allow_credentials) + _setter("access_control_allow_headers", access_control_allow_headers) + _setter("access_control_allow_methods", access_control_allow_methods) + _setter("access_control_allow_origins", access_control_allow_origins) + _setter("origin_override", origin_override) if access_control_expose_headers is not None: - pulumi.set(__self__, "access_control_expose_headers", access_control_expose_headers) + _setter("access_control_expose_headers", access_control_expose_headers) if access_control_max_age_sec is not None: - pulumi.set(__self__, "access_control_max_age_sec", access_control_max_age_sec) + _setter("access_control_max_age_sec", access_control_max_age_sec) @property @pulumi.getter(name="accessControlAllowCredentials") @@ -3357,8 +4674,19 @@ def access_control_max_age_sec(self) -> Optional[int]: class ResponseHeadersPolicyCorsConfigAccessControlAllowHeaders(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + ResponseHeadersPolicyCorsConfigAccessControlAllowHeaders._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3370,8 +4698,19 @@ def items(self) -> Optional[Sequence[str]]: class ResponseHeadersPolicyCorsConfigAccessControlAllowMethods(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + ResponseHeadersPolicyCorsConfigAccessControlAllowMethods._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3383,8 +4722,19 @@ def items(self) -> Optional[Sequence[str]]: class ResponseHeadersPolicyCorsConfigAccessControlAllowOrigins(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + ResponseHeadersPolicyCorsConfigAccessControlAllowOrigins._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3396,8 +4746,19 @@ def items(self) -> Optional[Sequence[str]]: class ResponseHeadersPolicyCorsConfigAccessControlExposeHeaders(dict): def __init__(__self__, *, items: Optional[Sequence[str]] = None): + ResponseHeadersPolicyCorsConfigAccessControlExposeHeaders._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3409,8 +4770,19 @@ def items(self) -> Optional[Sequence[str]]: class ResponseHeadersPolicyCustomHeadersConfig(dict): def __init__(__self__, *, items: Optional[Sequence['outputs.ResponseHeadersPolicyCustomHeadersConfigItem']] = None): + ResponseHeadersPolicyCustomHeadersConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence['outputs.ResponseHeadersPolicyCustomHeadersConfigItem']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3426,12 +4798,33 @@ def __init__(__self__, *, value: str): """ :param str header: The HTTP response header name. - :param bool override: Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + :param bool override: Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. :param str value: The value for the HTTP response header. """ - pulumi.set(__self__, "header", header) - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "value", value) + ResponseHeadersPolicyCustomHeadersConfigItem._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + override=override, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[str] = None, + override: Optional[bool] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is None: + raise TypeError("Missing 'header' argument") + if override is None: + raise TypeError("Missing 'override' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("header", header) + _setter("override", override) + _setter("value", value) @property @pulumi.getter @@ -3445,7 +4838,7 @@ def header(self) -> str: @pulumi.getter def override(self) -> bool: """ - Whether CloudFront overrides a response header with the same name received from the origin with the header specifies here. + Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. """ return pulumi.get(self, "override") @@ -3462,8 +4855,19 @@ def value(self) -> str: class ResponseHeadersPolicyRemoveHeadersConfig(dict): def __init__(__self__, *, items: Optional[Sequence['outputs.ResponseHeadersPolicyRemoveHeadersConfigItem']] = None): + ResponseHeadersPolicyRemoveHeadersConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence['outputs.ResponseHeadersPolicyRemoveHeadersConfigItem']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) @property @pulumi.getter @@ -3478,7 +4882,20 @@ def __init__(__self__, *, """ :param str header: The HTTP response header name. """ - pulumi.set(__self__, "header", header) + ResponseHeadersPolicyRemoveHeadersConfigItem._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is None: + raise TypeError("Missing 'header' argument") + + _setter("header", header) @property @pulumi.getter @@ -3533,18 +4950,51 @@ def __init__(__self__, *, :param 'ResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurityArgs' strict_transport_security: Determines whether CloudFront includes the `Strict-Transport-Security` HTTP response header and the header’s value. See Strict Transport Security for more information. :param 'ResponseHeadersPolicySecurityHeadersConfigXssProtectionArgs' xss_protection: Determine whether CloudFront includes the `X-XSS-Protection` HTTP response header and the header’s value. See XSS Protection for more information. """ + ResponseHeadersPolicySecurityHeadersConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_security_policy=content_security_policy, + content_type_options=content_type_options, + frame_options=frame_options, + referrer_policy=referrer_policy, + strict_transport_security=strict_transport_security, + xss_protection=xss_protection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_security_policy: Optional['outputs.ResponseHeadersPolicySecurityHeadersConfigContentSecurityPolicy'] = None, + content_type_options: Optional['outputs.ResponseHeadersPolicySecurityHeadersConfigContentTypeOptions'] = None, + frame_options: Optional['outputs.ResponseHeadersPolicySecurityHeadersConfigFrameOptions'] = None, + referrer_policy: Optional['outputs.ResponseHeadersPolicySecurityHeadersConfigReferrerPolicy'] = None, + strict_transport_security: Optional['outputs.ResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurity'] = None, + xss_protection: Optional['outputs.ResponseHeadersPolicySecurityHeadersConfigXssProtection'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_security_policy is None and 'contentSecurityPolicy' in kwargs: + content_security_policy = kwargs['contentSecurityPolicy'] + if content_type_options is None and 'contentTypeOptions' in kwargs: + content_type_options = kwargs['contentTypeOptions'] + if frame_options is None and 'frameOptions' in kwargs: + frame_options = kwargs['frameOptions'] + if referrer_policy is None and 'referrerPolicy' in kwargs: + referrer_policy = kwargs['referrerPolicy'] + if strict_transport_security is None and 'strictTransportSecurity' in kwargs: + strict_transport_security = kwargs['strictTransportSecurity'] + if xss_protection is None and 'xssProtection' in kwargs: + xss_protection = kwargs['xssProtection'] + if content_security_policy is not None: - pulumi.set(__self__, "content_security_policy", content_security_policy) + _setter("content_security_policy", content_security_policy) if content_type_options is not None: - pulumi.set(__self__, "content_type_options", content_type_options) + _setter("content_type_options", content_type_options) if frame_options is not None: - pulumi.set(__self__, "frame_options", frame_options) + _setter("frame_options", frame_options) if referrer_policy is not None: - pulumi.set(__self__, "referrer_policy", referrer_policy) + _setter("referrer_policy", referrer_policy) if strict_transport_security is not None: - pulumi.set(__self__, "strict_transport_security", strict_transport_security) + _setter("strict_transport_security", strict_transport_security) if xss_protection is not None: - pulumi.set(__self__, "xss_protection", xss_protection) + _setter("xss_protection", xss_protection) @property @pulumi.getter(name="contentSecurityPolicy") @@ -3621,8 +5071,27 @@ def __init__(__self__, *, :param str content_security_policy: The policy directives and their values that CloudFront includes as values for the `Content-Security-Policy` HTTP response header. :param bool override: Whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy. """ - pulumi.set(__self__, "content_security_policy", content_security_policy) - pulumi.set(__self__, "override", override) + ResponseHeadersPolicySecurityHeadersConfigContentSecurityPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_security_policy=content_security_policy, + override=override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_security_policy: Optional[str] = None, + override: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_security_policy is None and 'contentSecurityPolicy' in kwargs: + content_security_policy = kwargs['contentSecurityPolicy'] + if content_security_policy is None: + raise TypeError("Missing 'content_security_policy' argument") + if override is None: + raise TypeError("Missing 'override' argument") + + _setter("content_security_policy", content_security_policy) + _setter("override", override) @property @pulumi.getter(name="contentSecurityPolicy") @@ -3648,7 +5117,20 @@ def __init__(__self__, *, """ :param bool override: Whether CloudFront overrides the `X-Content-Type-Options` HTTP response header received from the origin with the one specified in this response headers policy. """ - pulumi.set(__self__, "override", override) + ResponseHeadersPolicySecurityHeadersConfigContentTypeOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + override=override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + override: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if override is None: + raise TypeError("Missing 'override' argument") + + _setter("override", override) @property @pulumi.getter @@ -3685,8 +5167,27 @@ def __init__(__self__, *, :param str frame_option: The value of the `X-Frame-Options` HTTP response header. Valid values: `DENY` | `SAMEORIGIN` :param bool override: Whether CloudFront overrides the `X-Frame-Options` HTTP response header received from the origin with the one specified in this response headers policy. """ - pulumi.set(__self__, "frame_option", frame_option) - pulumi.set(__self__, "override", override) + ResponseHeadersPolicySecurityHeadersConfigFrameOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + frame_option=frame_option, + override=override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frame_option: Optional[str] = None, + override: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frame_option is None and 'frameOption' in kwargs: + frame_option = kwargs['frameOption'] + if frame_option is None: + raise TypeError("Missing 'frame_option' argument") + if override is None: + raise TypeError("Missing 'override' argument") + + _setter("frame_option", frame_option) + _setter("override", override) @property @pulumi.getter(name="frameOption") @@ -3731,8 +5232,27 @@ def __init__(__self__, *, :param bool override: Whether CloudFront overrides the `Referrer-Policy` HTTP response header received from the origin with the one specified in this response headers policy. :param str referrer_policy: The value of the `Referrer-Policy` HTTP response header. Valid Values: `no-referrer` | `no-referrer-when-downgrade` | `origin` | `origin-when-cross-origin` | `same-origin` | `strict-origin` | `strict-origin-when-cross-origin` | `unsafe-url` """ - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "referrer_policy", referrer_policy) + ResponseHeadersPolicySecurityHeadersConfigReferrerPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + override=override, + referrer_policy=referrer_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + override: Optional[bool] = None, + referrer_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if override is None: + raise TypeError("Missing 'override' argument") + if referrer_policy is None and 'referrerPolicy' in kwargs: + referrer_policy = kwargs['referrerPolicy'] + if referrer_policy is None: + raise TypeError("Missing 'referrer_policy' argument") + + _setter("override", override) + _setter("referrer_policy", referrer_policy) @property @pulumi.getter @@ -3783,12 +5303,37 @@ def __init__(__self__, *, :param bool include_subdomains: Whether CloudFront includes the `includeSubDomains` directive in the `Strict-Transport-Security` HTTP response header. :param bool preload: Whether CloudFront includes the `preload` directive in the `Strict-Transport-Security` HTTP response header. """ - pulumi.set(__self__, "access_control_max_age_sec", access_control_max_age_sec) - pulumi.set(__self__, "override", override) + ResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurity._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_control_max_age_sec=access_control_max_age_sec, + override=override, + include_subdomains=include_subdomains, + preload=preload, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_control_max_age_sec: Optional[int] = None, + override: Optional[bool] = None, + include_subdomains: Optional[bool] = None, + preload: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_control_max_age_sec is None and 'accessControlMaxAgeSec' in kwargs: + access_control_max_age_sec = kwargs['accessControlMaxAgeSec'] + if access_control_max_age_sec is None: + raise TypeError("Missing 'access_control_max_age_sec' argument") + if override is None: + raise TypeError("Missing 'override' argument") + if include_subdomains is None and 'includeSubdomains' in kwargs: + include_subdomains = kwargs['includeSubdomains'] + + _setter("access_control_max_age_sec", access_control_max_age_sec) + _setter("override", override) if include_subdomains is not None: - pulumi.set(__self__, "include_subdomains", include_subdomains) + _setter("include_subdomains", include_subdomains) if preload is not None: - pulumi.set(__self__, "preload", preload) + _setter("preload", preload) @property @pulumi.getter(name="accessControlMaxAgeSec") @@ -3855,12 +5400,37 @@ def __init__(__self__, *, :param bool mode_block: Whether CloudFront includes the `mode=block` directive in the `X-XSS-Protection` header. :param str report_uri: A reporting URI, which CloudFront uses as the value of the report directive in the `X-XSS-Protection` header. You cannot specify a `report_uri` when `mode_block` is `true`. """ - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "protection", protection) + ResponseHeadersPolicySecurityHeadersConfigXssProtection._configure( + lambda key, value: pulumi.set(__self__, key, value), + override=override, + protection=protection, + mode_block=mode_block, + report_uri=report_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + override: Optional[bool] = None, + protection: Optional[bool] = None, + mode_block: Optional[bool] = None, + report_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if override is None: + raise TypeError("Missing 'override' argument") + if protection is None: + raise TypeError("Missing 'protection' argument") + if mode_block is None and 'modeBlock' in kwargs: + mode_block = kwargs['modeBlock'] + if report_uri is None and 'reportUri' in kwargs: + report_uri = kwargs['reportUri'] + + _setter("override", override) + _setter("protection", protection) if mode_block is not None: - pulumi.set(__self__, "mode_block", mode_block) + _setter("mode_block", mode_block) if report_uri is not None: - pulumi.set(__self__, "report_uri", report_uri) + _setter("report_uri", report_uri) @property @pulumi.getter @@ -3921,8 +5491,27 @@ def __init__(__self__, *, :param bool enabled: A Whether CloudFront adds the `Server-Timing` header to HTTP responses that it sends in response to requests that match a cache behavior that's associated with this response headers policy. :param float sampling_rate: A number 0–100 (inclusive) that specifies the percentage of responses that you want CloudFront to add the Server-Timing header to. Valid range: Minimum value of 0.0. Maximum value of 100.0. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "sampling_rate", sampling_rate) + ResponseHeadersPolicyServerTimingHeadersConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + sampling_rate=sampling_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + sampling_rate: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if sampling_rate is None and 'samplingRate' in kwargs: + sampling_rate = kwargs['samplingRate'] + if sampling_rate is None: + raise TypeError("Missing 'sampling_rate' argument") + + _setter("enabled", enabled) + _setter("sampling_rate", sampling_rate) @property @pulumi.getter @@ -3956,11 +5545,50 @@ def __init__(__self__, *, :param Sequence['GetCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigArgs'] headers_configs: Object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin. See Headers Config for more information. :param Sequence['GetCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigArgs'] query_strings_configs: Object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the cache key and automatically included in requests that CloudFront sends to the origin. See Query String Config for more information. """ - pulumi.set(__self__, "cookies_configs", cookies_configs) - pulumi.set(__self__, "enable_accept_encoding_brotli", enable_accept_encoding_brotli) - pulumi.set(__self__, "enable_accept_encoding_gzip", enable_accept_encoding_gzip) - pulumi.set(__self__, "headers_configs", headers_configs) - pulumi.set(__self__, "query_strings_configs", query_strings_configs) + GetCachePolicyParametersInCacheKeyAndForwardedToOriginResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies_configs=cookies_configs, + enable_accept_encoding_brotli=enable_accept_encoding_brotli, + enable_accept_encoding_gzip=enable_accept_encoding_gzip, + headers_configs=headers_configs, + query_strings_configs=query_strings_configs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies_configs: Optional[Sequence['outputs.GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigResult']] = None, + enable_accept_encoding_brotli: Optional[bool] = None, + enable_accept_encoding_gzip: Optional[bool] = None, + headers_configs: Optional[Sequence['outputs.GetCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigResult']] = None, + query_strings_configs: Optional[Sequence['outputs.GetCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies_configs is None and 'cookiesConfigs' in kwargs: + cookies_configs = kwargs['cookiesConfigs'] + if cookies_configs is None: + raise TypeError("Missing 'cookies_configs' argument") + if enable_accept_encoding_brotli is None and 'enableAcceptEncodingBrotli' in kwargs: + enable_accept_encoding_brotli = kwargs['enableAcceptEncodingBrotli'] + if enable_accept_encoding_brotli is None: + raise TypeError("Missing 'enable_accept_encoding_brotli' argument") + if enable_accept_encoding_gzip is None and 'enableAcceptEncodingGzip' in kwargs: + enable_accept_encoding_gzip = kwargs['enableAcceptEncodingGzip'] + if enable_accept_encoding_gzip is None: + raise TypeError("Missing 'enable_accept_encoding_gzip' argument") + if headers_configs is None and 'headersConfigs' in kwargs: + headers_configs = kwargs['headersConfigs'] + if headers_configs is None: + raise TypeError("Missing 'headers_configs' argument") + if query_strings_configs is None and 'queryStringsConfigs' in kwargs: + query_strings_configs = kwargs['queryStringsConfigs'] + if query_strings_configs is None: + raise TypeError("Missing 'query_strings_configs' argument") + + _setter("cookies_configs", cookies_configs) + _setter("enable_accept_encoding_brotli", enable_accept_encoding_brotli) + _setter("enable_accept_encoding_gzip", enable_accept_encoding_gzip) + _setter("headers_configs", headers_configs) + _setter("query_strings_configs", query_strings_configs) @property @pulumi.getter(name="cookiesConfigs") @@ -4012,8 +5640,27 @@ def __init__(__self__, *, :param str cookie_behavior: Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values are `none`, `whitelist`, `allExcept`, `all`. :param Sequence['GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookieArgs'] cookies: Object that contains a list of cookie names. See Items for more information. """ - pulumi.set(__self__, "cookie_behavior", cookie_behavior) - pulumi.set(__self__, "cookies", cookies) + GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_behavior=cookie_behavior, + cookies=cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_behavior: Optional[str] = None, + cookies: Optional[Sequence['outputs.GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookieResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_behavior is None and 'cookieBehavior' in kwargs: + cookie_behavior = kwargs['cookieBehavior'] + if cookie_behavior is None: + raise TypeError("Missing 'cookie_behavior' argument") + if cookies is None: + raise TypeError("Missing 'cookies' argument") + + _setter("cookie_behavior", cookie_behavior) + _setter("cookies", cookies) @property @pulumi.getter(name="cookieBehavior") @@ -4039,7 +5686,20 @@ def __init__(__self__, *, """ :param Sequence[str] items: List of item names (`cookies`, `headers`, or `query_strings`). """ - pulumi.set(__self__, "items", items) + GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookieResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4059,8 +5719,27 @@ def __init__(__self__, *, :param str header_behavior: Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values are `none`, `whitelist`. :param Sequence['GetCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaderArgs'] headers: Object that contains a list of header names. See Items for more information. """ - pulumi.set(__self__, "header_behavior", header_behavior) - pulumi.set(__self__, "headers", headers) + GetCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_behavior=header_behavior, + headers=headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_behavior: Optional[str] = None, + headers: Optional[Sequence['outputs.GetCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaderResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_behavior is None and 'headerBehavior' in kwargs: + header_behavior = kwargs['headerBehavior'] + if header_behavior is None: + raise TypeError("Missing 'header_behavior' argument") + if headers is None: + raise TypeError("Missing 'headers' argument") + + _setter("header_behavior", header_behavior) + _setter("headers", headers) @property @pulumi.getter(name="headerBehavior") @@ -4086,7 +5765,20 @@ def __init__(__self__, *, """ :param Sequence[str] items: List of item names (`cookies`, `headers`, or `query_strings`). """ - pulumi.set(__self__, "items", items) + GetCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfigHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4106,8 +5798,29 @@ def __init__(__self__, *, :param str query_string_behavior: Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values are `none`, `whitelist`, `allExcept`, `all`. :param Sequence['GetCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringArgs'] query_strings: Object that contains a list of query string names. See Items for more information. """ - pulumi.set(__self__, "query_string_behavior", query_string_behavior) - pulumi.set(__self__, "query_strings", query_strings) + GetCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_string_behavior=query_string_behavior, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_string_behavior: Optional[str] = None, + query_strings: Optional[Sequence['outputs.GetCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_string_behavior is None and 'queryStringBehavior' in kwargs: + query_string_behavior = kwargs['queryStringBehavior'] + if query_string_behavior is None: + raise TypeError("Missing 'query_string_behavior' argument") + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if query_strings is None: + raise TypeError("Missing 'query_strings' argument") + + _setter("query_string_behavior", query_string_behavior) + _setter("query_strings", query_strings) @property @pulumi.getter(name="queryStringBehavior") @@ -4133,7 +5846,20 @@ def __init__(__self__, *, """ :param Sequence[str] items: List of item names (`cookies`, `headers`, or `query_strings`). """ - pulumi.set(__self__, "items", items) + GetCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfigQueryStringResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4149,8 +5875,27 @@ class GetOriginRequestPolicyCookiesConfigResult(dict): def __init__(__self__, *, cookie_behavior: str, cookies: Sequence['outputs.GetOriginRequestPolicyCookiesConfigCookieResult']): - pulumi.set(__self__, "cookie_behavior", cookie_behavior) - pulumi.set(__self__, "cookies", cookies) + GetOriginRequestPolicyCookiesConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_behavior=cookie_behavior, + cookies=cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_behavior: Optional[str] = None, + cookies: Optional[Sequence['outputs.GetOriginRequestPolicyCookiesConfigCookieResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_behavior is None and 'cookieBehavior' in kwargs: + cookie_behavior = kwargs['cookieBehavior'] + if cookie_behavior is None: + raise TypeError("Missing 'cookie_behavior' argument") + if cookies is None: + raise TypeError("Missing 'cookies' argument") + + _setter("cookie_behavior", cookie_behavior) + _setter("cookies", cookies) @property @pulumi.getter(name="cookieBehavior") @@ -4167,7 +5912,20 @@ def cookies(self) -> Sequence['outputs.GetOriginRequestPolicyCookiesConfigCookie class GetOriginRequestPolicyCookiesConfigCookieResult(dict): def __init__(__self__, *, items: Sequence[str]): - pulumi.set(__self__, "items", items) + GetOriginRequestPolicyCookiesConfigCookieResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4180,8 +5938,27 @@ class GetOriginRequestPolicyHeadersConfigResult(dict): def __init__(__self__, *, header_behavior: str, headers: Sequence['outputs.GetOriginRequestPolicyHeadersConfigHeaderResult']): - pulumi.set(__self__, "header_behavior", header_behavior) - pulumi.set(__self__, "headers", headers) + GetOriginRequestPolicyHeadersConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_behavior=header_behavior, + headers=headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_behavior: Optional[str] = None, + headers: Optional[Sequence['outputs.GetOriginRequestPolicyHeadersConfigHeaderResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_behavior is None and 'headerBehavior' in kwargs: + header_behavior = kwargs['headerBehavior'] + if header_behavior is None: + raise TypeError("Missing 'header_behavior' argument") + if headers is None: + raise TypeError("Missing 'headers' argument") + + _setter("header_behavior", header_behavior) + _setter("headers", headers) @property @pulumi.getter(name="headerBehavior") @@ -4198,7 +5975,20 @@ def headers(self) -> Sequence['outputs.GetOriginRequestPolicyHeadersConfigHeader class GetOriginRequestPolicyHeadersConfigHeaderResult(dict): def __init__(__self__, *, items: Sequence[str]): - pulumi.set(__self__, "items", items) + GetOriginRequestPolicyHeadersConfigHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4211,8 +6001,29 @@ class GetOriginRequestPolicyQueryStringsConfigResult(dict): def __init__(__self__, *, query_string_behavior: str, query_strings: Sequence['outputs.GetOriginRequestPolicyQueryStringsConfigQueryStringResult']): - pulumi.set(__self__, "query_string_behavior", query_string_behavior) - pulumi.set(__self__, "query_strings", query_strings) + GetOriginRequestPolicyQueryStringsConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_string_behavior=query_string_behavior, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_string_behavior: Optional[str] = None, + query_strings: Optional[Sequence['outputs.GetOriginRequestPolicyQueryStringsConfigQueryStringResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_string_behavior is None and 'queryStringBehavior' in kwargs: + query_string_behavior = kwargs['queryStringBehavior'] + if query_string_behavior is None: + raise TypeError("Missing 'query_string_behavior' argument") + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if query_strings is None: + raise TypeError("Missing 'query_strings' argument") + + _setter("query_string_behavior", query_string_behavior) + _setter("query_strings", query_strings) @property @pulumi.getter(name="queryStringBehavior") @@ -4229,7 +6040,20 @@ def query_strings(self) -> Sequence['outputs.GetOriginRequestPolicyQueryStringsC class GetOriginRequestPolicyQueryStringsConfigQueryStringResult(dict): def __init__(__self__, *, items: Sequence[str]): - pulumi.set(__self__, "items", items) + GetOriginRequestPolicyQueryStringsConfigQueryStringResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4246,8 +6070,29 @@ def __init__(__self__, *, :param Sequence['GetRealtimeLogConfigEndpointKinesisStreamConfigArgs'] kinesis_stream_configs: (Required) Amazon Kinesis data stream configuration. :param str stream_type: (Required) Type of data stream where real-time log data is sent. The only valid value is `Kinesis`. """ - pulumi.set(__self__, "kinesis_stream_configs", kinesis_stream_configs) - pulumi.set(__self__, "stream_type", stream_type) + GetRealtimeLogConfigEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + kinesis_stream_configs=kinesis_stream_configs, + stream_type=stream_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kinesis_stream_configs: Optional[Sequence['outputs.GetRealtimeLogConfigEndpointKinesisStreamConfigResult']] = None, + stream_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kinesis_stream_configs is None and 'kinesisStreamConfigs' in kwargs: + kinesis_stream_configs = kwargs['kinesisStreamConfigs'] + if kinesis_stream_configs is None: + raise TypeError("Missing 'kinesis_stream_configs' argument") + if stream_type is None and 'streamType' in kwargs: + stream_type = kwargs['streamType'] + if stream_type is None: + raise TypeError("Missing 'stream_type' argument") + + _setter("kinesis_stream_configs", kinesis_stream_configs) + _setter("stream_type", stream_type) @property @pulumi.getter(name="kinesisStreamConfigs") @@ -4276,8 +6121,29 @@ def __init__(__self__, *, See the [AWS documentation](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role) for more information. :param str stream_arn: (Required) ARN of the Kinesis data stream. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_arn", stream_arn) + GetRealtimeLogConfigEndpointKinesisStreamConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + stream_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("role_arn", role_arn) + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="roleArn") @@ -4315,13 +6181,64 @@ def __init__(__self__, *, :param Sequence['GetResponseHeadersPolicyCorsConfigAccessControlExposeHeaderArgs'] access_control_expose_headers: Object that contains an attribute `items` that contains a list of HTTP headers that CloudFront includes as values for the Access-Control-Expose-Headers HTTP response header. :param int access_control_max_age_sec: A number that CloudFront uses as the value for the max-age directive in the Strict-Transport-Security HTTP response header. """ - pulumi.set(__self__, "access_control_allow_credentials", access_control_allow_credentials) - pulumi.set(__self__, "access_control_allow_headers", access_control_allow_headers) - pulumi.set(__self__, "access_control_allow_methods", access_control_allow_methods) - pulumi.set(__self__, "access_control_allow_origins", access_control_allow_origins) - pulumi.set(__self__, "access_control_expose_headers", access_control_expose_headers) - pulumi.set(__self__, "access_control_max_age_sec", access_control_max_age_sec) - pulumi.set(__self__, "origin_override", origin_override) + GetResponseHeadersPolicyCorsConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_control_allow_credentials=access_control_allow_credentials, + access_control_allow_headers=access_control_allow_headers, + access_control_allow_methods=access_control_allow_methods, + access_control_allow_origins=access_control_allow_origins, + access_control_expose_headers=access_control_expose_headers, + access_control_max_age_sec=access_control_max_age_sec, + origin_override=origin_override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_control_allow_credentials: Optional[bool] = None, + access_control_allow_headers: Optional[Sequence['outputs.GetResponseHeadersPolicyCorsConfigAccessControlAllowHeaderResult']] = None, + access_control_allow_methods: Optional[Sequence['outputs.GetResponseHeadersPolicyCorsConfigAccessControlAllowMethodResult']] = None, + access_control_allow_origins: Optional[Sequence['outputs.GetResponseHeadersPolicyCorsConfigAccessControlAllowOriginResult']] = None, + access_control_expose_headers: Optional[Sequence['outputs.GetResponseHeadersPolicyCorsConfigAccessControlExposeHeaderResult']] = None, + access_control_max_age_sec: Optional[int] = None, + origin_override: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_control_allow_credentials is None and 'accessControlAllowCredentials' in kwargs: + access_control_allow_credentials = kwargs['accessControlAllowCredentials'] + if access_control_allow_credentials is None: + raise TypeError("Missing 'access_control_allow_credentials' argument") + if access_control_allow_headers is None and 'accessControlAllowHeaders' in kwargs: + access_control_allow_headers = kwargs['accessControlAllowHeaders'] + if access_control_allow_headers is None: + raise TypeError("Missing 'access_control_allow_headers' argument") + if access_control_allow_methods is None and 'accessControlAllowMethods' in kwargs: + access_control_allow_methods = kwargs['accessControlAllowMethods'] + if access_control_allow_methods is None: + raise TypeError("Missing 'access_control_allow_methods' argument") + if access_control_allow_origins is None and 'accessControlAllowOrigins' in kwargs: + access_control_allow_origins = kwargs['accessControlAllowOrigins'] + if access_control_allow_origins is None: + raise TypeError("Missing 'access_control_allow_origins' argument") + if access_control_expose_headers is None and 'accessControlExposeHeaders' in kwargs: + access_control_expose_headers = kwargs['accessControlExposeHeaders'] + if access_control_expose_headers is None: + raise TypeError("Missing 'access_control_expose_headers' argument") + if access_control_max_age_sec is None and 'accessControlMaxAgeSec' in kwargs: + access_control_max_age_sec = kwargs['accessControlMaxAgeSec'] + if access_control_max_age_sec is None: + raise TypeError("Missing 'access_control_max_age_sec' argument") + if origin_override is None and 'originOverride' in kwargs: + origin_override = kwargs['originOverride'] + if origin_override is None: + raise TypeError("Missing 'origin_override' argument") + + _setter("access_control_allow_credentials", access_control_allow_credentials) + _setter("access_control_allow_headers", access_control_allow_headers) + _setter("access_control_allow_methods", access_control_allow_methods) + _setter("access_control_allow_origins", access_control_allow_origins) + _setter("access_control_expose_headers", access_control_expose_headers) + _setter("access_control_max_age_sec", access_control_max_age_sec) + _setter("origin_override", origin_override) @property @pulumi.getter(name="accessControlAllowCredentials") @@ -4381,7 +6298,20 @@ def origin_override(self) -> bool: class GetResponseHeadersPolicyCorsConfigAccessControlAllowHeaderResult(dict): def __init__(__self__, *, items: Sequence[str]): - pulumi.set(__self__, "items", items) + GetResponseHeadersPolicyCorsConfigAccessControlAllowHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4393,7 +6323,20 @@ def items(self) -> Sequence[str]: class GetResponseHeadersPolicyCorsConfigAccessControlAllowMethodResult(dict): def __init__(__self__, *, items: Sequence[str]): - pulumi.set(__self__, "items", items) + GetResponseHeadersPolicyCorsConfigAccessControlAllowMethodResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4405,7 +6348,20 @@ def items(self) -> Sequence[str]: class GetResponseHeadersPolicyCorsConfigAccessControlAllowOriginResult(dict): def __init__(__self__, *, items: Sequence[str]): - pulumi.set(__self__, "items", items) + GetResponseHeadersPolicyCorsConfigAccessControlAllowOriginResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4417,7 +6373,20 @@ def items(self) -> Sequence[str]: class GetResponseHeadersPolicyCorsConfigAccessControlExposeHeaderResult(dict): def __init__(__self__, *, items: Sequence[str]): - pulumi.set(__self__, "items", items) + GetResponseHeadersPolicyCorsConfigAccessControlExposeHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4429,7 +6398,20 @@ def items(self) -> Sequence[str]: class GetResponseHeadersPolicyCustomHeadersConfigResult(dict): def __init__(__self__, *, items: Sequence['outputs.GetResponseHeadersPolicyCustomHeadersConfigItemResult']): - pulumi.set(__self__, "items", items) + GetResponseHeadersPolicyCustomHeadersConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence['outputs.GetResponseHeadersPolicyCustomHeadersConfigItemResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4448,9 +6430,30 @@ def __init__(__self__, *, :param bool override: Whether CloudFront overrides the X-XSS-Protection HTTP response header received from the origin with the one specified in this response headers policy. :param str value: Value for the HTTP response header. """ - pulumi.set(__self__, "header", header) - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "value", value) + GetResponseHeadersPolicyCustomHeadersConfigItemResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + override=override, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[str] = None, + override: Optional[bool] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is None: + raise TypeError("Missing 'header' argument") + if override is None: + raise TypeError("Missing 'override' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("header", header) + _setter("override", override) + _setter("value", value) @property @pulumi.getter @@ -4481,7 +6484,20 @@ def value(self) -> str: class GetResponseHeadersPolicyRemoveHeadersConfigResult(dict): def __init__(__self__, *, items: Sequence['outputs.GetResponseHeadersPolicyRemoveHeadersConfigItemResult']): - pulumi.set(__self__, "items", items) + GetResponseHeadersPolicyRemoveHeadersConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + items=items, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + items: Optional[Sequence['outputs.GetResponseHeadersPolicyRemoveHeadersConfigItemResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if items is None: + raise TypeError("Missing 'items' argument") + + _setter("items", items) @property @pulumi.getter @@ -4496,7 +6512,20 @@ def __init__(__self__, *, """ :param str header: The HTTP header name. """ - pulumi.set(__self__, "header", header) + GetResponseHeadersPolicyRemoveHeadersConfigItemResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is None: + raise TypeError("Missing 'header' argument") + + _setter("header", header) @property @pulumi.getter @@ -4524,12 +6553,57 @@ def __init__(__self__, *, :param Sequence['GetResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurityArgs'] strict_transport_securities: Settings that determine whether CloudFront includes the Strict-Transport-Security HTTP response header and the header’s value. See Strict Transport Security for more information. :param Sequence['GetResponseHeadersPolicySecurityHeadersConfigXssProtectionArgs'] xss_protections: Settings that determine whether CloudFront includes the X-XSS-Protection HTTP response header and the header’s value. See XSS Protection for more information. """ - pulumi.set(__self__, "content_security_policies", content_security_policies) - pulumi.set(__self__, "content_type_options", content_type_options) - pulumi.set(__self__, "frame_options", frame_options) - pulumi.set(__self__, "referrer_policies", referrer_policies) - pulumi.set(__self__, "strict_transport_securities", strict_transport_securities) - pulumi.set(__self__, "xss_protections", xss_protections) + GetResponseHeadersPolicySecurityHeadersConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_security_policies=content_security_policies, + content_type_options=content_type_options, + frame_options=frame_options, + referrer_policies=referrer_policies, + strict_transport_securities=strict_transport_securities, + xss_protections=xss_protections, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_security_policies: Optional[Sequence['outputs.GetResponseHeadersPolicySecurityHeadersConfigContentSecurityPolicyResult']] = None, + content_type_options: Optional[Sequence['outputs.GetResponseHeadersPolicySecurityHeadersConfigContentTypeOptionResult']] = None, + frame_options: Optional[Sequence['outputs.GetResponseHeadersPolicySecurityHeadersConfigFrameOptionResult']] = None, + referrer_policies: Optional[Sequence['outputs.GetResponseHeadersPolicySecurityHeadersConfigReferrerPolicyResult']] = None, + strict_transport_securities: Optional[Sequence['outputs.GetResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurityResult']] = None, + xss_protections: Optional[Sequence['outputs.GetResponseHeadersPolicySecurityHeadersConfigXssProtectionResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_security_policies is None and 'contentSecurityPolicies' in kwargs: + content_security_policies = kwargs['contentSecurityPolicies'] + if content_security_policies is None: + raise TypeError("Missing 'content_security_policies' argument") + if content_type_options is None and 'contentTypeOptions' in kwargs: + content_type_options = kwargs['contentTypeOptions'] + if content_type_options is None: + raise TypeError("Missing 'content_type_options' argument") + if frame_options is None and 'frameOptions' in kwargs: + frame_options = kwargs['frameOptions'] + if frame_options is None: + raise TypeError("Missing 'frame_options' argument") + if referrer_policies is None and 'referrerPolicies' in kwargs: + referrer_policies = kwargs['referrerPolicies'] + if referrer_policies is None: + raise TypeError("Missing 'referrer_policies' argument") + if strict_transport_securities is None and 'strictTransportSecurities' in kwargs: + strict_transport_securities = kwargs['strictTransportSecurities'] + if strict_transport_securities is None: + raise TypeError("Missing 'strict_transport_securities' argument") + if xss_protections is None and 'xssProtections' in kwargs: + xss_protections = kwargs['xssProtections'] + if xss_protections is None: + raise TypeError("Missing 'xss_protections' argument") + + _setter("content_security_policies", content_security_policies) + _setter("content_type_options", content_type_options) + _setter("frame_options", frame_options) + _setter("referrer_policies", referrer_policies) + _setter("strict_transport_securities", strict_transport_securities) + _setter("xss_protections", xss_protections) @property @pulumi.getter(name="contentSecurityPolicies") @@ -4589,8 +6663,27 @@ def __init__(__self__, *, :param str content_security_policy: The policy directives and their values that CloudFront includes as values for the Content-Security-Policy HTTP response header. :param bool override: Whether CloudFront overrides the X-XSS-Protection HTTP response header received from the origin with the one specified in this response headers policy. """ - pulumi.set(__self__, "content_security_policy", content_security_policy) - pulumi.set(__self__, "override", override) + GetResponseHeadersPolicySecurityHeadersConfigContentSecurityPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_security_policy=content_security_policy, + override=override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_security_policy: Optional[str] = None, + override: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_security_policy is None and 'contentSecurityPolicy' in kwargs: + content_security_policy = kwargs['contentSecurityPolicy'] + if content_security_policy is None: + raise TypeError("Missing 'content_security_policy' argument") + if override is None: + raise TypeError("Missing 'override' argument") + + _setter("content_security_policy", content_security_policy) + _setter("override", override) @property @pulumi.getter(name="contentSecurityPolicy") @@ -4616,7 +6709,20 @@ def __init__(__self__, *, """ :param bool override: Whether CloudFront overrides the X-XSS-Protection HTTP response header received from the origin with the one specified in this response headers policy. """ - pulumi.set(__self__, "override", override) + GetResponseHeadersPolicySecurityHeadersConfigContentTypeOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + override=override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + override: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if override is None: + raise TypeError("Missing 'override' argument") + + _setter("override", override) @property @pulumi.getter @@ -4636,8 +6742,27 @@ def __init__(__self__, *, :param str frame_option: Value of the X-Frame-Options HTTP response header. Valid values: `DENY` | `SAMEORIGIN` :param bool override: Whether CloudFront overrides the X-XSS-Protection HTTP response header received from the origin with the one specified in this response headers policy. """ - pulumi.set(__self__, "frame_option", frame_option) - pulumi.set(__self__, "override", override) + GetResponseHeadersPolicySecurityHeadersConfigFrameOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + frame_option=frame_option, + override=override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frame_option: Optional[str] = None, + override: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frame_option is None and 'frameOption' in kwargs: + frame_option = kwargs['frameOption'] + if frame_option is None: + raise TypeError("Missing 'frame_option' argument") + if override is None: + raise TypeError("Missing 'override' argument") + + _setter("frame_option", frame_option) + _setter("override", override) @property @pulumi.getter(name="frameOption") @@ -4665,8 +6790,27 @@ def __init__(__self__, *, :param bool override: Whether CloudFront overrides the X-XSS-Protection HTTP response header received from the origin with the one specified in this response headers policy. :param str referrer_policy: Value of the Referrer-Policy HTTP response header. Valid Values: `no-referrer` | `no-referrer-when-downgrade` | `origin` | `origin-when-cross-origin` | `same-origin` | `strict-origin` | `strict-origin-when-cross-origin` | `unsafe-url` """ - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "referrer_policy", referrer_policy) + GetResponseHeadersPolicySecurityHeadersConfigReferrerPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + override=override, + referrer_policy=referrer_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + override: Optional[bool] = None, + referrer_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if override is None: + raise TypeError("Missing 'override' argument") + if referrer_policy is None and 'referrerPolicy' in kwargs: + referrer_policy = kwargs['referrerPolicy'] + if referrer_policy is None: + raise TypeError("Missing 'referrer_policy' argument") + + _setter("override", override) + _setter("referrer_policy", referrer_policy) @property @pulumi.getter @@ -4698,10 +6842,39 @@ def __init__(__self__, *, :param bool override: Whether CloudFront overrides the X-XSS-Protection HTTP response header received from the origin with the one specified in this response headers policy. :param bool preload: Whether CloudFront includes the preload directive in the Strict-Transport-Security HTTP response header. """ - pulumi.set(__self__, "access_control_max_age_sec", access_control_max_age_sec) - pulumi.set(__self__, "include_subdomains", include_subdomains) - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "preload", preload) + GetResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurityResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_control_max_age_sec=access_control_max_age_sec, + include_subdomains=include_subdomains, + override=override, + preload=preload, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_control_max_age_sec: Optional[int] = None, + include_subdomains: Optional[bool] = None, + override: Optional[bool] = None, + preload: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_control_max_age_sec is None and 'accessControlMaxAgeSec' in kwargs: + access_control_max_age_sec = kwargs['accessControlMaxAgeSec'] + if access_control_max_age_sec is None: + raise TypeError("Missing 'access_control_max_age_sec' argument") + if include_subdomains is None and 'includeSubdomains' in kwargs: + include_subdomains = kwargs['includeSubdomains'] + if include_subdomains is None: + raise TypeError("Missing 'include_subdomains' argument") + if override is None: + raise TypeError("Missing 'override' argument") + if preload is None: + raise TypeError("Missing 'preload' argument") + + _setter("access_control_max_age_sec", access_control_max_age_sec) + _setter("include_subdomains", include_subdomains) + _setter("override", override) + _setter("preload", preload) @property @pulumi.getter(name="accessControlMaxAgeSec") @@ -4749,10 +6922,39 @@ def __init__(__self__, *, :param bool protection: Boolean value that determines the value of the X-XSS-Protection HTTP response header. When this setting is true, the value of the X-XSS-Protection header is 1. When this setting is false, the value of the X-XSS-Protection header is 0. :param str report_uri: Whether CloudFront sets a reporting URI in the X-XSS-Protection header. """ - pulumi.set(__self__, "mode_block", mode_block) - pulumi.set(__self__, "override", override) - pulumi.set(__self__, "protection", protection) - pulumi.set(__self__, "report_uri", report_uri) + GetResponseHeadersPolicySecurityHeadersConfigXssProtectionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode_block=mode_block, + override=override, + protection=protection, + report_uri=report_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode_block: Optional[bool] = None, + override: Optional[bool] = None, + protection: Optional[bool] = None, + report_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode_block is None and 'modeBlock' in kwargs: + mode_block = kwargs['modeBlock'] + if mode_block is None: + raise TypeError("Missing 'mode_block' argument") + if override is None: + raise TypeError("Missing 'override' argument") + if protection is None: + raise TypeError("Missing 'protection' argument") + if report_uri is None and 'reportUri' in kwargs: + report_uri = kwargs['reportUri'] + if report_uri is None: + raise TypeError("Missing 'report_uri' argument") + + _setter("mode_block", mode_block) + _setter("override", override) + _setter("protection", protection) + _setter("report_uri", report_uri) @property @pulumi.getter(name="modeBlock") @@ -4796,8 +6998,27 @@ def __init__(__self__, *, :param bool enabled: Whether CloudFront adds the `Server-Timing` header to HTTP responses that it sends in response to requests that match a cache behavior that's associated with this response headers policy. :param float sampling_rate: Number 0–100 (inclusive) that specifies the percentage of responses that you want CloudFront to add the Server-Timing header to. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "sampling_rate", sampling_rate) + GetResponseHeadersPolicyServerTimingHeadersConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + sampling_rate=sampling_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + sampling_rate: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if sampling_rate is None and 'samplingRate' in kwargs: + sampling_rate = kwargs['samplingRate'] + if sampling_rate is None: + raise TypeError("Missing 'sampling_rate' argument") + + _setter("enabled", enabled) + _setter("sampling_rate", sampling_rate) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/cloudfront/public_key.py b/sdk/python/pulumi_aws/cloudfront/public_key.py index ab9c30e5bbb..bd22824c405 100644 --- a/sdk/python/pulumi_aws/cloudfront/public_key.py +++ b/sdk/python/pulumi_aws/cloudfront/public_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PublicKeyArgs', 'PublicKey'] @@ -27,13 +27,36 @@ def __init__(__self__, *, **NOTE:** When setting `encoded_key` value, there needs a newline at the end of string. Otherwise, multiple runs of pulumi will want to recreate the `cloudfront.PublicKey` resource. """ - pulumi.set(__self__, "encoded_key", encoded_key) + PublicKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encoded_key=encoded_key, + comment=comment, + name=name, + name_prefix=name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encoded_key: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encoded_key is None and 'encodedKey' in kwargs: + encoded_key = kwargs['encodedKey'] + if encoded_key is None: + raise TypeError("Missing 'encoded_key' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("encoded_key", encoded_key) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) @property @pulumi.getter(name="encodedKey") @@ -106,18 +129,45 @@ def __init__(__self__, *, **NOTE:** When setting `encoded_key` value, there needs a newline at the end of string. Otherwise, multiple runs of pulumi will want to recreate the `cloudfront.PublicKey` resource. """ + _PublicKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + caller_reference=caller_reference, + comment=comment, + encoded_key=encoded_key, + etag=etag, + name=name, + name_prefix=name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caller_reference: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + encoded_key: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caller_reference is None and 'callerReference' in kwargs: + caller_reference = kwargs['callerReference'] + if encoded_key is None and 'encodedKey' in kwargs: + encoded_key = kwargs['encodedKey'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if caller_reference is not None: - pulumi.set(__self__, "caller_reference", caller_reference) + _setter("caller_reference", caller_reference) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if encoded_key is not None: - pulumi.set(__self__, "encoded_key", encoded_key) + _setter("encoded_key", encoded_key) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) @property @pulumi.getter(name="callerReference") @@ -273,6 +323,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PublicKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudfront/realtime_log_config.py b/sdk/python/pulumi_aws/cloudfront/realtime_log_config.py index b3926371c49..2e0af9be653 100644 --- a/sdk/python/pulumi_aws/cloudfront/realtime_log_config.py +++ b/sdk/python/pulumi_aws/cloudfront/realtime_log_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,11 +27,36 @@ def __init__(__self__, *, :param pulumi.Input[int] sampling_rate: The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. An integer between `1` and `100`, inclusive. :param pulumi.Input[str] name: The unique name to identify this real-time log configuration. """ - pulumi.set(__self__, "endpoint", endpoint) - pulumi.set(__self__, "fields", fields) - pulumi.set(__self__, "sampling_rate", sampling_rate) + RealtimeLogConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + fields=fields, + sampling_rate=sampling_rate, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[pulumi.Input['RealtimeLogConfigEndpointArgs']] = None, + fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sampling_rate: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + if fields is None: + raise TypeError("Missing 'fields' argument") + if sampling_rate is None and 'samplingRate' in kwargs: + sampling_rate = kwargs['samplingRate'] + if sampling_rate is None: + raise TypeError("Missing 'sampling_rate' argument") + + _setter("endpoint", endpoint) + _setter("fields", fields) + _setter("sampling_rate", sampling_rate) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -98,16 +123,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The unique name to identify this real-time log configuration. :param pulumi.Input[int] sampling_rate: The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. An integer between `1` and `100`, inclusive. """ + _RealtimeLogConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + endpoint=endpoint, + fields=fields, + name=name, + sampling_rate=sampling_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input['RealtimeLogConfigEndpointArgs']] = None, + fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + sampling_rate: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sampling_rate is None and 'samplingRate' in kwargs: + sampling_rate = kwargs['samplingRate'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if fields is not None: - pulumi.set(__self__, "fields", fields) + _setter("fields", fields) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sampling_rate is not None: - pulumi.set(__self__, "sampling_rate", sampling_rate) + _setter("sampling_rate", sampling_rate) @property @pulumi.getter @@ -313,6 +359,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RealtimeLogConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -331,6 +381,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = RealtimeLogConfigArgs.__new__(RealtimeLogConfigArgs) + endpoint = _utilities.configure(endpoint, RealtimeLogConfigEndpointArgs, True) if endpoint is None and not opts.urn: raise TypeError("Missing required property 'endpoint'") __props__.__dict__["endpoint"] = endpoint diff --git a/sdk/python/pulumi_aws/cloudfront/response_headers_policy.py b/sdk/python/pulumi_aws/cloudfront/response_headers_policy.py index e5b42b7fd83..c5ccbda1d1b 100644 --- a/sdk/python/pulumi_aws/cloudfront/response_headers_policy.py +++ b/sdk/python/pulumi_aws/cloudfront/response_headers_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,22 +35,57 @@ def __init__(__self__, *, :param pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigArgs'] security_headers_config: A configuration for a set of security-related HTTP response headers. See Security Headers Config for more information. :param pulumi.Input['ResponseHeadersPolicyServerTimingHeadersConfigArgs'] server_timing_headers_config: A configuration for enabling the Server-Timing header in HTTP responses sent from CloudFront. See Server Timing Headers Config for more information. """ + ResponseHeadersPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + cors_config=cors_config, + custom_headers_config=custom_headers_config, + etag=etag, + name=name, + remove_headers_config=remove_headers_config, + security_headers_config=security_headers_config, + server_timing_headers_config=server_timing_headers_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + cors_config: Optional[pulumi.Input['ResponseHeadersPolicyCorsConfigArgs']] = None, + custom_headers_config: Optional[pulumi.Input['ResponseHeadersPolicyCustomHeadersConfigArgs']] = None, + etag: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + remove_headers_config: Optional[pulumi.Input['ResponseHeadersPolicyRemoveHeadersConfigArgs']] = None, + security_headers_config: Optional[pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigArgs']] = None, + server_timing_headers_config: Optional[pulumi.Input['ResponseHeadersPolicyServerTimingHeadersConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cors_config is None and 'corsConfig' in kwargs: + cors_config = kwargs['corsConfig'] + if custom_headers_config is None and 'customHeadersConfig' in kwargs: + custom_headers_config = kwargs['customHeadersConfig'] + if remove_headers_config is None and 'removeHeadersConfig' in kwargs: + remove_headers_config = kwargs['removeHeadersConfig'] + if security_headers_config is None and 'securityHeadersConfig' in kwargs: + security_headers_config = kwargs['securityHeadersConfig'] + if server_timing_headers_config is None and 'serverTimingHeadersConfig' in kwargs: + server_timing_headers_config = kwargs['serverTimingHeadersConfig'] + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if cors_config is not None: - pulumi.set(__self__, "cors_config", cors_config) + _setter("cors_config", cors_config) if custom_headers_config is not None: - pulumi.set(__self__, "custom_headers_config", custom_headers_config) + _setter("custom_headers_config", custom_headers_config) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if remove_headers_config is not None: - pulumi.set(__self__, "remove_headers_config", remove_headers_config) + _setter("remove_headers_config", remove_headers_config) if security_headers_config is not None: - pulumi.set(__self__, "security_headers_config", security_headers_config) + _setter("security_headers_config", security_headers_config) if server_timing_headers_config is not None: - pulumi.set(__self__, "server_timing_headers_config", server_timing_headers_config) + _setter("server_timing_headers_config", server_timing_headers_config) @property @pulumi.getter @@ -171,22 +206,57 @@ def __init__(__self__, *, :param pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigArgs'] security_headers_config: A configuration for a set of security-related HTTP response headers. See Security Headers Config for more information. :param pulumi.Input['ResponseHeadersPolicyServerTimingHeadersConfigArgs'] server_timing_headers_config: A configuration for enabling the Server-Timing header in HTTP responses sent from CloudFront. See Server Timing Headers Config for more information. """ + _ResponseHeadersPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + cors_config=cors_config, + custom_headers_config=custom_headers_config, + etag=etag, + name=name, + remove_headers_config=remove_headers_config, + security_headers_config=security_headers_config, + server_timing_headers_config=server_timing_headers_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + cors_config: Optional[pulumi.Input['ResponseHeadersPolicyCorsConfigArgs']] = None, + custom_headers_config: Optional[pulumi.Input['ResponseHeadersPolicyCustomHeadersConfigArgs']] = None, + etag: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + remove_headers_config: Optional[pulumi.Input['ResponseHeadersPolicyRemoveHeadersConfigArgs']] = None, + security_headers_config: Optional[pulumi.Input['ResponseHeadersPolicySecurityHeadersConfigArgs']] = None, + server_timing_headers_config: Optional[pulumi.Input['ResponseHeadersPolicyServerTimingHeadersConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cors_config is None and 'corsConfig' in kwargs: + cors_config = kwargs['corsConfig'] + if custom_headers_config is None and 'customHeadersConfig' in kwargs: + custom_headers_config = kwargs['customHeadersConfig'] + if remove_headers_config is None and 'removeHeadersConfig' in kwargs: + remove_headers_config = kwargs['removeHeadersConfig'] + if security_headers_config is None and 'securityHeadersConfig' in kwargs: + security_headers_config = kwargs['securityHeadersConfig'] + if server_timing_headers_config is None and 'serverTimingHeadersConfig' in kwargs: + server_timing_headers_config = kwargs['serverTimingHeadersConfig'] + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if cors_config is not None: - pulumi.set(__self__, "cors_config", cors_config) + _setter("cors_config", cors_config) if custom_headers_config is not None: - pulumi.set(__self__, "custom_headers_config", custom_headers_config) + _setter("custom_headers_config", custom_headers_config) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if remove_headers_config is not None: - pulumi.set(__self__, "remove_headers_config", remove_headers_config) + _setter("remove_headers_config", remove_headers_config) if security_headers_config is not None: - pulumi.set(__self__, "security_headers_config", security_headers_config) + _setter("security_headers_config", security_headers_config) if server_timing_headers_config is not None: - pulumi.set(__self__, "server_timing_headers_config", server_timing_headers_config) + _setter("server_timing_headers_config", server_timing_headers_config) @property @pulumi.getter @@ -488,6 +558,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResponseHeadersPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -511,12 +585,17 @@ def _internal_init(__self__, __props__ = ResponseHeadersPolicyArgs.__new__(ResponseHeadersPolicyArgs) __props__.__dict__["comment"] = comment + cors_config = _utilities.configure(cors_config, ResponseHeadersPolicyCorsConfigArgs, True) __props__.__dict__["cors_config"] = cors_config + custom_headers_config = _utilities.configure(custom_headers_config, ResponseHeadersPolicyCustomHeadersConfigArgs, True) __props__.__dict__["custom_headers_config"] = custom_headers_config __props__.__dict__["etag"] = etag __props__.__dict__["name"] = name + remove_headers_config = _utilities.configure(remove_headers_config, ResponseHeadersPolicyRemoveHeadersConfigArgs, True) __props__.__dict__["remove_headers_config"] = remove_headers_config + security_headers_config = _utilities.configure(security_headers_config, ResponseHeadersPolicySecurityHeadersConfigArgs, True) __props__.__dict__["security_headers_config"] = security_headers_config + server_timing_headers_config = _utilities.configure(server_timing_headers_config, ResponseHeadersPolicyServerTimingHeadersConfigArgs, True) __props__.__dict__["server_timing_headers_config"] = server_timing_headers_config super(ResponseHeadersPolicy, __self__).__init__( 'aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy', diff --git a/sdk/python/pulumi_aws/cloudhsmv2/_inputs.py b/sdk/python/pulumi_aws/cloudhsmv2/_inputs.py index 52e39a1768b..ffef779d425 100644 --- a/sdk/python/pulumi_aws/cloudhsmv2/_inputs.py +++ b/sdk/python/pulumi_aws/cloudhsmv2/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -21,16 +21,45 @@ def __init__(__self__, *, cluster_csr: Optional[pulumi.Input[str]] = None, hsm_certificate: Optional[pulumi.Input[str]] = None, manufacturer_hardware_certificate: Optional[pulumi.Input[str]] = None): + ClusterClusterCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_hardware_certificate=aws_hardware_certificate, + cluster_certificate=cluster_certificate, + cluster_csr=cluster_csr, + hsm_certificate=hsm_certificate, + manufacturer_hardware_certificate=manufacturer_hardware_certificate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_hardware_certificate: Optional[pulumi.Input[str]] = None, + cluster_certificate: Optional[pulumi.Input[str]] = None, + cluster_csr: Optional[pulumi.Input[str]] = None, + hsm_certificate: Optional[pulumi.Input[str]] = None, + manufacturer_hardware_certificate: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_hardware_certificate is None and 'awsHardwareCertificate' in kwargs: + aws_hardware_certificate = kwargs['awsHardwareCertificate'] + if cluster_certificate is None and 'clusterCertificate' in kwargs: + cluster_certificate = kwargs['clusterCertificate'] + if cluster_csr is None and 'clusterCsr' in kwargs: + cluster_csr = kwargs['clusterCsr'] + if hsm_certificate is None and 'hsmCertificate' in kwargs: + hsm_certificate = kwargs['hsmCertificate'] + if manufacturer_hardware_certificate is None and 'manufacturerHardwareCertificate' in kwargs: + manufacturer_hardware_certificate = kwargs['manufacturerHardwareCertificate'] + if aws_hardware_certificate is not None: - pulumi.set(__self__, "aws_hardware_certificate", aws_hardware_certificate) + _setter("aws_hardware_certificate", aws_hardware_certificate) if cluster_certificate is not None: - pulumi.set(__self__, "cluster_certificate", cluster_certificate) + _setter("cluster_certificate", cluster_certificate) if cluster_csr is not None: - pulumi.set(__self__, "cluster_csr", cluster_csr) + _setter("cluster_csr", cluster_csr) if hsm_certificate is not None: - pulumi.set(__self__, "hsm_certificate", hsm_certificate) + _setter("hsm_certificate", hsm_certificate) if manufacturer_hardware_certificate is not None: - pulumi.set(__self__, "manufacturer_hardware_certificate", manufacturer_hardware_certificate) + _setter("manufacturer_hardware_certificate", manufacturer_hardware_certificate) @property @pulumi.getter(name="awsHardwareCertificate") diff --git a/sdk/python/pulumi_aws/cloudhsmv2/cluster.py b/sdk/python/pulumi_aws/cloudhsmv2/cluster.py index d9b8938c3c8..4790fdaf43b 100644 --- a/sdk/python/pulumi_aws/cloudhsmv2/cluster.py +++ b/sdk/python/pulumi_aws/cloudhsmv2/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[str] source_backup_identifier: ID of Cloud HSM v2 cluster backup to be restored. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "hsm_type", hsm_type) - pulumi.set(__self__, "subnet_ids", subnet_ids) + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hsm_type=hsm_type, + subnet_ids=subnet_ids, + source_backup_identifier=source_backup_identifier, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hsm_type: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_backup_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hsm_type is None and 'hsmType' in kwargs: + hsm_type = kwargs['hsmType'] + if hsm_type is None: + raise TypeError("Missing 'hsm_type' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if source_backup_identifier is None and 'sourceBackupIdentifier' in kwargs: + source_backup_identifier = kwargs['sourceBackupIdentifier'] + + _setter("hsm_type", hsm_type) + _setter("subnet_ids", subnet_ids) if source_backup_identifier is not None: - pulumi.set(__self__, "source_backup_identifier", source_backup_identifier) + _setter("source_backup_identifier", source_backup_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="hsmType") @@ -114,29 +141,76 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The id of the VPC that the CloudHSM cluster resides in. """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_certificates=cluster_certificates, + cluster_id=cluster_id, + cluster_state=cluster_state, + hsm_type=hsm_type, + security_group_id=security_group_id, + source_backup_identifier=source_backup_identifier, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_certificates: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterClusterCertificateArgs']]]] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + cluster_state: Optional[pulumi.Input[str]] = None, + hsm_type: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + source_backup_identifier: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_certificates is None and 'clusterCertificates' in kwargs: + cluster_certificates = kwargs['clusterCertificates'] + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if cluster_state is None and 'clusterState' in kwargs: + cluster_state = kwargs['clusterState'] + if hsm_type is None and 'hsmType' in kwargs: + hsm_type = kwargs['hsmType'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if source_backup_identifier is None and 'sourceBackupIdentifier' in kwargs: + source_backup_identifier = kwargs['sourceBackupIdentifier'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if cluster_certificates is not None: - pulumi.set(__self__, "cluster_certificates", cluster_certificates) + _setter("cluster_certificates", cluster_certificates) if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if cluster_state is not None: - pulumi.set(__self__, "cluster_state", cluster_state) + _setter("cluster_state", cluster_state) if hsm_type is not None: - pulumi.set(__self__, "hsm_type", hsm_type) + _setter("hsm_type", hsm_type) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) if source_backup_identifier is not None: - pulumi.set(__self__, "source_backup_identifier", source_backup_identifier) + _setter("source_backup_identifier", source_backup_identifier) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="clusterCertificates") @@ -340,6 +414,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudhsmv2/get_cluster.py b/sdk/python/pulumi_aws/cloudhsmv2/get_cluster.py index 5acea4946ec..2e1e30f4588 100644 --- a/sdk/python/pulumi_aws/cloudhsmv2/get_cluster.py +++ b/sdk/python/pulumi_aws/cloudhsmv2/get_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/cloudhsmv2/hsm.py b/sdk/python/pulumi_aws/cloudhsmv2/hsm.py index 47446ae3297..a8a51b2c980 100644 --- a/sdk/python/pulumi_aws/cloudhsmv2/hsm.py +++ b/sdk/python/pulumi_aws/cloudhsmv2/hsm.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HsmArgs', 'Hsm'] @@ -25,13 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] ip_address: The IP address of HSM module. Must be within the CIDR of selected subnet. :param pulumi.Input[str] subnet_id: The ID of subnet in which HSM module will be located. Conflicts with `availability_zone`. """ - pulumi.set(__self__, "cluster_id", cluster_id) + HsmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_id=cluster_id, + availability_zone=availability_zone, + ip_address=ip_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_id: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if cluster_id is None: + raise TypeError("Missing 'cluster_id' argument") + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + + _setter("cluster_id", cluster_id) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="clusterId") @@ -102,20 +129,57 @@ def __init__(__self__, *, :param pulumi.Input[str] ip_address: The IP address of HSM module. Must be within the CIDR of selected subnet. :param pulumi.Input[str] subnet_id: The ID of subnet in which HSM module will be located. Conflicts with `availability_zone`. """ + _HsmState._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + cluster_id=cluster_id, + hsm_eni_id=hsm_eni_id, + hsm_id=hsm_id, + hsm_state=hsm_state, + ip_address=ip_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + hsm_eni_id: Optional[pulumi.Input[str]] = None, + hsm_id: Optional[pulumi.Input[str]] = None, + hsm_state: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if hsm_eni_id is None and 'hsmEniId' in kwargs: + hsm_eni_id = kwargs['hsmEniId'] + if hsm_id is None and 'hsmId' in kwargs: + hsm_id = kwargs['hsmId'] + if hsm_state is None and 'hsmState' in kwargs: + hsm_state = kwargs['hsmState'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if hsm_eni_id is not None: - pulumi.set(__self__, "hsm_eni_id", hsm_eni_id) + _setter("hsm_eni_id", hsm_eni_id) if hsm_id is not None: - pulumi.set(__self__, "hsm_id", hsm_id) + _setter("hsm_id", hsm_id) if hsm_state is not None: - pulumi.set(__self__, "hsm_state", hsm_state) + _setter("hsm_state", hsm_state) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") @@ -285,6 +349,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HsmArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudhsmv2/outputs.py b/sdk/python/pulumi_aws/cloudhsmv2/outputs.py index 3b2c7795002..16729488573 100644 --- a/sdk/python/pulumi_aws/cloudhsmv2/outputs.py +++ b/sdk/python/pulumi_aws/cloudhsmv2/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -47,16 +47,45 @@ def __init__(__self__, *, cluster_csr: Optional[str] = None, hsm_certificate: Optional[str] = None, manufacturer_hardware_certificate: Optional[str] = None): + ClusterClusterCertificate._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_hardware_certificate=aws_hardware_certificate, + cluster_certificate=cluster_certificate, + cluster_csr=cluster_csr, + hsm_certificate=hsm_certificate, + manufacturer_hardware_certificate=manufacturer_hardware_certificate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_hardware_certificate: Optional[str] = None, + cluster_certificate: Optional[str] = None, + cluster_csr: Optional[str] = None, + hsm_certificate: Optional[str] = None, + manufacturer_hardware_certificate: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_hardware_certificate is None and 'awsHardwareCertificate' in kwargs: + aws_hardware_certificate = kwargs['awsHardwareCertificate'] + if cluster_certificate is None and 'clusterCertificate' in kwargs: + cluster_certificate = kwargs['clusterCertificate'] + if cluster_csr is None and 'clusterCsr' in kwargs: + cluster_csr = kwargs['clusterCsr'] + if hsm_certificate is None and 'hsmCertificate' in kwargs: + hsm_certificate = kwargs['hsmCertificate'] + if manufacturer_hardware_certificate is None and 'manufacturerHardwareCertificate' in kwargs: + manufacturer_hardware_certificate = kwargs['manufacturerHardwareCertificate'] + if aws_hardware_certificate is not None: - pulumi.set(__self__, "aws_hardware_certificate", aws_hardware_certificate) + _setter("aws_hardware_certificate", aws_hardware_certificate) if cluster_certificate is not None: - pulumi.set(__self__, "cluster_certificate", cluster_certificate) + _setter("cluster_certificate", cluster_certificate) if cluster_csr is not None: - pulumi.set(__self__, "cluster_csr", cluster_csr) + _setter("cluster_csr", cluster_csr) if hsm_certificate is not None: - pulumi.set(__self__, "hsm_certificate", hsm_certificate) + _setter("hsm_certificate", hsm_certificate) if manufacturer_hardware_certificate is not None: - pulumi.set(__self__, "manufacturer_hardware_certificate", manufacturer_hardware_certificate) + _setter("manufacturer_hardware_certificate", manufacturer_hardware_certificate) @property @pulumi.getter(name="awsHardwareCertificate") @@ -92,11 +121,50 @@ def __init__(__self__, *, cluster_csr: str, hsm_certificate: str, manufacturer_hardware_certificate: str): - pulumi.set(__self__, "aws_hardware_certificate", aws_hardware_certificate) - pulumi.set(__self__, "cluster_certificate", cluster_certificate) - pulumi.set(__self__, "cluster_csr", cluster_csr) - pulumi.set(__self__, "hsm_certificate", hsm_certificate) - pulumi.set(__self__, "manufacturer_hardware_certificate", manufacturer_hardware_certificate) + GetClusterClusterCertificateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_hardware_certificate=aws_hardware_certificate, + cluster_certificate=cluster_certificate, + cluster_csr=cluster_csr, + hsm_certificate=hsm_certificate, + manufacturer_hardware_certificate=manufacturer_hardware_certificate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_hardware_certificate: Optional[str] = None, + cluster_certificate: Optional[str] = None, + cluster_csr: Optional[str] = None, + hsm_certificate: Optional[str] = None, + manufacturer_hardware_certificate: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_hardware_certificate is None and 'awsHardwareCertificate' in kwargs: + aws_hardware_certificate = kwargs['awsHardwareCertificate'] + if aws_hardware_certificate is None: + raise TypeError("Missing 'aws_hardware_certificate' argument") + if cluster_certificate is None and 'clusterCertificate' in kwargs: + cluster_certificate = kwargs['clusterCertificate'] + if cluster_certificate is None: + raise TypeError("Missing 'cluster_certificate' argument") + if cluster_csr is None and 'clusterCsr' in kwargs: + cluster_csr = kwargs['clusterCsr'] + if cluster_csr is None: + raise TypeError("Missing 'cluster_csr' argument") + if hsm_certificate is None and 'hsmCertificate' in kwargs: + hsm_certificate = kwargs['hsmCertificate'] + if hsm_certificate is None: + raise TypeError("Missing 'hsm_certificate' argument") + if manufacturer_hardware_certificate is None and 'manufacturerHardwareCertificate' in kwargs: + manufacturer_hardware_certificate = kwargs['manufacturerHardwareCertificate'] + if manufacturer_hardware_certificate is None: + raise TypeError("Missing 'manufacturer_hardware_certificate' argument") + + _setter("aws_hardware_certificate", aws_hardware_certificate) + _setter("cluster_certificate", cluster_certificate) + _setter("cluster_csr", cluster_csr) + _setter("hsm_certificate", hsm_certificate) + _setter("manufacturer_hardware_certificate", manufacturer_hardware_certificate) @property @pulumi.getter(name="awsHardwareCertificate") diff --git a/sdk/python/pulumi_aws/cloudsearch/_inputs.py b/sdk/python/pulumi_aws/cloudsearch/_inputs.py index 337c549e4e2..7099985389f 100644 --- a/sdk/python/pulumi_aws/cloudsearch/_inputs.py +++ b/sdk/python/pulumi_aws/cloudsearch/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,10 +24,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] enforce_https: Enables or disables the requirement that all requests to the domain arrive over HTTPS. :param pulumi.Input[str] tls_security_policy: The minimum required TLS version. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/API_DomainEndpointOptions.html) for valid values. """ + DomainEndpointOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enforce_https=enforce_https, + tls_security_policy=tls_security_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enforce_https: Optional[pulumi.Input[bool]] = None, + tls_security_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enforce_https is None and 'enforceHttps' in kwargs: + enforce_https = kwargs['enforceHttps'] + if tls_security_policy is None and 'tlsSecurityPolicy' in kwargs: + tls_security_policy = kwargs['tlsSecurityPolicy'] + if enforce_https is not None: - pulumi.set(__self__, "enforce_https", enforce_https) + _setter("enforce_https", enforce_https) if tls_security_policy is not None: - pulumi.set(__self__, "tls_security_policy", tls_security_policy) + _setter("tls_security_policy", tls_security_policy) @property @pulumi.getter(name="enforceHttps") @@ -79,24 +96,65 @@ def __init__(__self__, *, :param pulumi.Input[bool] sort: You can enable the property to be sortable. :param pulumi.Input[str] source_fields: A comma-separated list of source fields to map to the field. Specifying a source field copies data from one field to another, enabling you to use the same source data in different ways by configuring different options for the fields. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + DomainIndexFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + analysis_scheme=analysis_scheme, + default_value=default_value, + facet=facet, + highlight=highlight, + return_=return_, + search=search, + sort=sort, + source_fields=source_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + analysis_scheme: Optional[pulumi.Input[str]] = None, + default_value: Optional[pulumi.Input[str]] = None, + facet: Optional[pulumi.Input[bool]] = None, + highlight: Optional[pulumi.Input[bool]] = None, + return_: Optional[pulumi.Input[bool]] = None, + search: Optional[pulumi.Input[bool]] = None, + sort: Optional[pulumi.Input[bool]] = None, + source_fields: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if analysis_scheme is None and 'analysisScheme' in kwargs: + analysis_scheme = kwargs['analysisScheme'] + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + if return_ is None and 'return' in kwargs: + return_ = kwargs['return'] + if source_fields is None and 'sourceFields' in kwargs: + source_fields = kwargs['sourceFields'] + + _setter("name", name) + _setter("type", type) if analysis_scheme is not None: - pulumi.set(__self__, "analysis_scheme", analysis_scheme) + _setter("analysis_scheme", analysis_scheme) if default_value is not None: - pulumi.set(__self__, "default_value", default_value) + _setter("default_value", default_value) if facet is not None: - pulumi.set(__self__, "facet", facet) + _setter("facet", facet) if highlight is not None: - pulumi.set(__self__, "highlight", highlight) + _setter("highlight", highlight) if return_ is not None: - pulumi.set(__self__, "return_", return_) + _setter("return_", return_) if search is not None: - pulumi.set(__self__, "search", search) + _setter("search", search) if sort is not None: - pulumi.set(__self__, "sort", sort) + _setter("sort", sort) if source_fields is not None: - pulumi.set(__self__, "source_fields", source_fields) + _setter("source_fields", source_fields) @property @pulumi.getter @@ -230,12 +288,33 @@ def __init__(__self__, *, :param pulumi.Input[int] desired_partition_count: The number of partitions you want to preconfigure for your domain. Only valid when you select `search.2xlarge` as the instance type. :param pulumi.Input[int] desired_replication_count: The number of replicas you want to preconfigure for each index partition. """ + DomainScalingParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_instance_type=desired_instance_type, + desired_partition_count=desired_partition_count, + desired_replication_count=desired_replication_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_instance_type: Optional[pulumi.Input[str]] = None, + desired_partition_count: Optional[pulumi.Input[int]] = None, + desired_replication_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_instance_type is None and 'desiredInstanceType' in kwargs: + desired_instance_type = kwargs['desiredInstanceType'] + if desired_partition_count is None and 'desiredPartitionCount' in kwargs: + desired_partition_count = kwargs['desiredPartitionCount'] + if desired_replication_count is None and 'desiredReplicationCount' in kwargs: + desired_replication_count = kwargs['desiredReplicationCount'] + if desired_instance_type is not None: - pulumi.set(__self__, "desired_instance_type", desired_instance_type) + _setter("desired_instance_type", desired_instance_type) if desired_partition_count is not None: - pulumi.set(__self__, "desired_partition_count", desired_partition_count) + _setter("desired_partition_count", desired_partition_count) if desired_replication_count is not None: - pulumi.set(__self__, "desired_replication_count", desired_replication_count) + _setter("desired_replication_count", desired_replication_count) @property @pulumi.getter(name="desiredInstanceType") diff --git a/sdk/python/pulumi_aws/cloudsearch/domain.py b/sdk/python/pulumi_aws/cloudsearch/domain.py index 82a0fdfb406..fceb9a53c95 100644 --- a/sdk/python/pulumi_aws/cloudsearch/domain.py +++ b/sdk/python/pulumi_aws/cloudsearch/domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,16 +29,43 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the CloudSearch domain. :param pulumi.Input['DomainScalingParametersArgs'] scaling_parameters: Domain scaling parameters. Documented below. """ + DomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_options=endpoint_options, + index_fields=index_fields, + multi_az=multi_az, + name=name, + scaling_parameters=scaling_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_options: Optional[pulumi.Input['DomainEndpointOptionsArgs']] = None, + index_fields: Optional[pulumi.Input[Sequence[pulumi.Input['DomainIndexFieldArgs']]]] = None, + multi_az: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + scaling_parameters: Optional[pulumi.Input['DomainScalingParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_options is None and 'endpointOptions' in kwargs: + endpoint_options = kwargs['endpointOptions'] + if index_fields is None and 'indexFields' in kwargs: + index_fields = kwargs['indexFields'] + if multi_az is None and 'multiAz' in kwargs: + multi_az = kwargs['multiAz'] + if scaling_parameters is None and 'scalingParameters' in kwargs: + scaling_parameters = kwargs['scalingParameters'] + if endpoint_options is not None: - pulumi.set(__self__, "endpoint_options", endpoint_options) + _setter("endpoint_options", endpoint_options) if index_fields is not None: - pulumi.set(__self__, "index_fields", index_fields) + _setter("index_fields", index_fields) if multi_az is not None: - pulumi.set(__self__, "multi_az", multi_az) + _setter("multi_az", multi_az) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if scaling_parameters is not None: - pulumi.set(__self__, "scaling_parameters", scaling_parameters) + _setter("scaling_parameters", scaling_parameters) @property @pulumi.getter(name="endpointOptions") @@ -125,24 +152,65 @@ def __init__(__self__, *, :param pulumi.Input['DomainScalingParametersArgs'] scaling_parameters: Domain scaling parameters. Documented below. :param pulumi.Input[str] search_service_endpoint: The service endpoint for requesting search results from a search domain. """ + _DomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + document_service_endpoint=document_service_endpoint, + domain_id=domain_id, + endpoint_options=endpoint_options, + index_fields=index_fields, + multi_az=multi_az, + name=name, + scaling_parameters=scaling_parameters, + search_service_endpoint=search_service_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + document_service_endpoint: Optional[pulumi.Input[str]] = None, + domain_id: Optional[pulumi.Input[str]] = None, + endpoint_options: Optional[pulumi.Input['DomainEndpointOptionsArgs']] = None, + index_fields: Optional[pulumi.Input[Sequence[pulumi.Input['DomainIndexFieldArgs']]]] = None, + multi_az: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + scaling_parameters: Optional[pulumi.Input['DomainScalingParametersArgs']] = None, + search_service_endpoint: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if document_service_endpoint is None and 'documentServiceEndpoint' in kwargs: + document_service_endpoint = kwargs['documentServiceEndpoint'] + if domain_id is None and 'domainId' in kwargs: + domain_id = kwargs['domainId'] + if endpoint_options is None and 'endpointOptions' in kwargs: + endpoint_options = kwargs['endpointOptions'] + if index_fields is None and 'indexFields' in kwargs: + index_fields = kwargs['indexFields'] + if multi_az is None and 'multiAz' in kwargs: + multi_az = kwargs['multiAz'] + if scaling_parameters is None and 'scalingParameters' in kwargs: + scaling_parameters = kwargs['scalingParameters'] + if search_service_endpoint is None and 'searchServiceEndpoint' in kwargs: + search_service_endpoint = kwargs['searchServiceEndpoint'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if document_service_endpoint is not None: - pulumi.set(__self__, "document_service_endpoint", document_service_endpoint) + _setter("document_service_endpoint", document_service_endpoint) if domain_id is not None: - pulumi.set(__self__, "domain_id", domain_id) + _setter("domain_id", domain_id) if endpoint_options is not None: - pulumi.set(__self__, "endpoint_options", endpoint_options) + _setter("endpoint_options", endpoint_options) if index_fields is not None: - pulumi.set(__self__, "index_fields", index_fields) + _setter("index_fields", index_fields) if multi_az is not None: - pulumi.set(__self__, "multi_az", multi_az) + _setter("multi_az", multi_az) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if scaling_parameters is not None: - pulumi.set(__self__, "scaling_parameters", scaling_parameters) + _setter("scaling_parameters", scaling_parameters) if search_service_endpoint is not None: - pulumi.set(__self__, "search_service_endpoint", search_service_endpoint) + _setter("search_service_endpoint", search_service_endpoint) @property @pulumi.getter @@ -378,6 +446,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -397,10 +469,12 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DomainArgs.__new__(DomainArgs) + endpoint_options = _utilities.configure(endpoint_options, DomainEndpointOptionsArgs, True) __props__.__dict__["endpoint_options"] = endpoint_options __props__.__dict__["index_fields"] = index_fields __props__.__dict__["multi_az"] = multi_az __props__.__dict__["name"] = name + scaling_parameters = _utilities.configure(scaling_parameters, DomainScalingParametersArgs, True) __props__.__dict__["scaling_parameters"] = scaling_parameters __props__.__dict__["arn"] = None __props__.__dict__["document_service_endpoint"] = None diff --git a/sdk/python/pulumi_aws/cloudsearch/domain_service_access_policy.py b/sdk/python/pulumi_aws/cloudsearch/domain_service_access_policy.py index 6f18cd8eddb..54d458f93e9 100644 --- a/sdk/python/pulumi_aws/cloudsearch/domain_service_access_policy.py +++ b/sdk/python/pulumi_aws/cloudsearch/domain_service_access_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainServiceAccessPolicyArgs', 'DomainServiceAccessPolicy'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] access_policy: The access rules you want to configure. These rules replace any existing rules. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html) for details. :param pulumi.Input[str] domain_name: The CloudSearch domain name the policy applies to. """ - pulumi.set(__self__, "access_policy", access_policy) - pulumi.set(__self__, "domain_name", domain_name) + DomainServiceAccessPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policy=access_policy, + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policy: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policy is None and 'accessPolicy' in kwargs: + access_policy = kwargs['accessPolicy'] + if access_policy is None: + raise TypeError("Missing 'access_policy' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + + _setter("access_policy", access_policy) + _setter("domain_name", domain_name) @property @pulumi.getter(name="accessPolicy") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] access_policy: The access rules you want to configure. These rules replace any existing rules. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html) for details. :param pulumi.Input[str] domain_name: The CloudSearch domain name the policy applies to. """ + _DomainServiceAccessPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policy=access_policy, + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policy: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policy is None and 'accessPolicy' in kwargs: + access_policy = kwargs['accessPolicy'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if access_policy is not None: - pulumi.set(__self__, "access_policy", access_policy) + _setter("access_policy", access_policy) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) @property @pulumi.getter(name="accessPolicy") @@ -202,6 +240,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainServiceAccessPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudsearch/outputs.py b/sdk/python/pulumi_aws/cloudsearch/outputs.py index d42c64114c5..f971d99cfca 100644 --- a/sdk/python/pulumi_aws/cloudsearch/outputs.py +++ b/sdk/python/pulumi_aws/cloudsearch/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -43,10 +43,27 @@ def __init__(__self__, *, :param bool enforce_https: Enables or disables the requirement that all requests to the domain arrive over HTTPS. :param str tls_security_policy: The minimum required TLS version. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/API_DomainEndpointOptions.html) for valid values. """ + DomainEndpointOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enforce_https=enforce_https, + tls_security_policy=tls_security_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enforce_https: Optional[bool] = None, + tls_security_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enforce_https is None and 'enforceHttps' in kwargs: + enforce_https = kwargs['enforceHttps'] + if tls_security_policy is None and 'tlsSecurityPolicy' in kwargs: + tls_security_policy = kwargs['tlsSecurityPolicy'] + if enforce_https is not None: - pulumi.set(__self__, "enforce_https", enforce_https) + _setter("enforce_https", enforce_https) if tls_security_policy is not None: - pulumi.set(__self__, "tls_security_policy", tls_security_policy) + _setter("tls_security_policy", tls_security_policy) @property @pulumi.getter(name="enforceHttps") @@ -113,24 +130,65 @@ def __init__(__self__, *, :param bool sort: You can enable the property to be sortable. :param str source_fields: A comma-separated list of source fields to map to the field. Specifying a source field copies data from one field to another, enabling you to use the same source data in different ways by configuring different options for the fields. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + DomainIndexField._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + analysis_scheme=analysis_scheme, + default_value=default_value, + facet=facet, + highlight=highlight, + return_=return_, + search=search, + sort=sort, + source_fields=source_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + analysis_scheme: Optional[str] = None, + default_value: Optional[str] = None, + facet: Optional[bool] = None, + highlight: Optional[bool] = None, + return_: Optional[bool] = None, + search: Optional[bool] = None, + sort: Optional[bool] = None, + source_fields: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if analysis_scheme is None and 'analysisScheme' in kwargs: + analysis_scheme = kwargs['analysisScheme'] + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + if return_ is None and 'return' in kwargs: + return_ = kwargs['return'] + if source_fields is None and 'sourceFields' in kwargs: + source_fields = kwargs['sourceFields'] + + _setter("name", name) + _setter("type", type) if analysis_scheme is not None: - pulumi.set(__self__, "analysis_scheme", analysis_scheme) + _setter("analysis_scheme", analysis_scheme) if default_value is not None: - pulumi.set(__self__, "default_value", default_value) + _setter("default_value", default_value) if facet is not None: - pulumi.set(__self__, "facet", facet) + _setter("facet", facet) if highlight is not None: - pulumi.set(__self__, "highlight", highlight) + _setter("highlight", highlight) if return_ is not None: - pulumi.set(__self__, "return_", return_) + _setter("return_", return_) if search is not None: - pulumi.set(__self__, "search", search) + _setter("search", search) if sort is not None: - pulumi.set(__self__, "sort", sort) + _setter("sort", sort) if source_fields is not None: - pulumi.set(__self__, "source_fields", source_fields) + _setter("source_fields", source_fields) @property @pulumi.getter @@ -245,12 +303,33 @@ def __init__(__self__, *, :param int desired_partition_count: The number of partitions you want to preconfigure for your domain. Only valid when you select `search.2xlarge` as the instance type. :param int desired_replication_count: The number of replicas you want to preconfigure for each index partition. """ + DomainScalingParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_instance_type=desired_instance_type, + desired_partition_count=desired_partition_count, + desired_replication_count=desired_replication_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_instance_type: Optional[str] = None, + desired_partition_count: Optional[int] = None, + desired_replication_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_instance_type is None and 'desiredInstanceType' in kwargs: + desired_instance_type = kwargs['desiredInstanceType'] + if desired_partition_count is None and 'desiredPartitionCount' in kwargs: + desired_partition_count = kwargs['desiredPartitionCount'] + if desired_replication_count is None and 'desiredReplicationCount' in kwargs: + desired_replication_count = kwargs['desiredReplicationCount'] + if desired_instance_type is not None: - pulumi.set(__self__, "desired_instance_type", desired_instance_type) + _setter("desired_instance_type", desired_instance_type) if desired_partition_count is not None: - pulumi.set(__self__, "desired_partition_count", desired_partition_count) + _setter("desired_partition_count", desired_partition_count) if desired_replication_count is not None: - pulumi.set(__self__, "desired_replication_count", desired_replication_count) + _setter("desired_replication_count", desired_replication_count) @property @pulumi.getter(name="desiredInstanceType") diff --git a/sdk/python/pulumi_aws/cloudtrail/_inputs.py b/sdk/python/pulumi_aws/cloudtrail/_inputs.py index 2e6fdeb91a2..71b50f5a508 100644 --- a/sdk/python/pulumi_aws/cloudtrail/_inputs.py +++ b/sdk/python/pulumi_aws/cloudtrail/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,10 +28,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['EventDataStoreAdvancedEventSelectorFieldSelectorArgs']]] field_selectors: Specifies the selector statements in an advanced event selector. Fields documented below. :param pulumi.Input[str] name: Specifies the name of the advanced event selector. """ + EventDataStoreAdvancedEventSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_selectors=field_selectors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['EventDataStoreAdvancedEventSelectorFieldSelectorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_selectors is None and 'fieldSelectors' in kwargs: + field_selectors = kwargs['fieldSelectors'] + if field_selectors is not None: - pulumi.set(__self__, "field_selectors", field_selectors) + _setter("field_selectors", field_selectors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="fieldSelectors") @@ -77,20 +92,53 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] not_starts_withs: A list of values that excludes events that match the first few characters of the event record field specified as the value of `field`. :param pulumi.Input[Sequence[pulumi.Input[str]]] starts_withs: A list of values that includes events that match the first few characters of the event record field specified as the value of `field`. """ + EventDataStoreAdvancedEventSelectorFieldSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ends_withs=ends_withs, + equals=equals, + field=field, + not_ends_withs=not_ends_withs, + not_equals=not_equals, + not_starts_withs=not_starts_withs, + starts_withs=starts_withs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ends_withs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + equals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + field: Optional[pulumi.Input[str]] = None, + not_ends_withs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + not_equals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + not_starts_withs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + starts_withs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ends_withs is None and 'endsWiths' in kwargs: + ends_withs = kwargs['endsWiths'] + if not_ends_withs is None and 'notEndsWiths' in kwargs: + not_ends_withs = kwargs['notEndsWiths'] + if not_equals is None and 'notEquals' in kwargs: + not_equals = kwargs['notEquals'] + if not_starts_withs is None and 'notStartsWiths' in kwargs: + not_starts_withs = kwargs['notStartsWiths'] + if starts_withs is None and 'startsWiths' in kwargs: + starts_withs = kwargs['startsWiths'] + if ends_withs is not None: - pulumi.set(__self__, "ends_withs", ends_withs) + _setter("ends_withs", ends_withs) if equals is not None: - pulumi.set(__self__, "equals", equals) + _setter("equals", equals) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) if not_ends_withs is not None: - pulumi.set(__self__, "not_ends_withs", not_ends_withs) + _setter("not_ends_withs", not_ends_withs) if not_equals is not None: - pulumi.set(__self__, "not_equals", not_equals) + _setter("not_equals", not_equals) if not_starts_withs is not None: - pulumi.set(__self__, "not_starts_withs", not_starts_withs) + _setter("not_starts_withs", not_starts_withs) if starts_withs is not None: - pulumi.set(__self__, "starts_withs", starts_withs) + _setter("starts_withs", starts_withs) @property @pulumi.getter(name="endsWiths") @@ -186,9 +234,26 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['TrailAdvancedEventSelectorFieldSelectorArgs']]] field_selectors: Specifies the selector statements in an advanced event selector. Fields documented below. :param pulumi.Input[str] name: Name of the trail. """ - pulumi.set(__self__, "field_selectors", field_selectors) + TrailAdvancedEventSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_selectors=field_selectors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['TrailAdvancedEventSelectorFieldSelectorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_selectors is None and 'fieldSelectors' in kwargs: + field_selectors = kwargs['fieldSelectors'] + if field_selectors is None: + raise TypeError("Missing 'field_selectors' argument") + + _setter("field_selectors", field_selectors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="fieldSelectors") @@ -234,19 +299,54 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] not_starts_withs: A list of values that excludes events that match the first few characters of the event record field specified as the value of `field`. :param pulumi.Input[Sequence[pulumi.Input[str]]] starts_withs: A list of values that includes events that match the first few characters of the event record field specified as the value of `field`. """ - pulumi.set(__self__, "field", field) + TrailAdvancedEventSelectorFieldSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + ends_withs=ends_withs, + equals=equals, + not_ends_withs=not_ends_withs, + not_equals=not_equals, + not_starts_withs=not_starts_withs, + starts_withs=starts_withs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[pulumi.Input[str]] = None, + ends_withs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + equals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + not_ends_withs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + not_equals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + not_starts_withs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + starts_withs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is None: + raise TypeError("Missing 'field' argument") + if ends_withs is None and 'endsWiths' in kwargs: + ends_withs = kwargs['endsWiths'] + if not_ends_withs is None and 'notEndsWiths' in kwargs: + not_ends_withs = kwargs['notEndsWiths'] + if not_equals is None and 'notEquals' in kwargs: + not_equals = kwargs['notEquals'] + if not_starts_withs is None and 'notStartsWiths' in kwargs: + not_starts_withs = kwargs['notStartsWiths'] + if starts_withs is None and 'startsWiths' in kwargs: + starts_withs = kwargs['startsWiths'] + + _setter("field", field) if ends_withs is not None: - pulumi.set(__self__, "ends_withs", ends_withs) + _setter("ends_withs", ends_withs) if equals is not None: - pulumi.set(__self__, "equals", equals) + _setter("equals", equals) if not_ends_withs is not None: - pulumi.set(__self__, "not_ends_withs", not_ends_withs) + _setter("not_ends_withs", not_ends_withs) if not_equals is not None: - pulumi.set(__self__, "not_equals", not_equals) + _setter("not_equals", not_equals) if not_starts_withs is not None: - pulumi.set(__self__, "not_starts_withs", not_starts_withs) + _setter("not_starts_withs", not_starts_withs) if starts_withs is not None: - pulumi.set(__self__, "starts_withs", starts_withs) + _setter("starts_withs", starts_withs) @property @pulumi.getter @@ -346,14 +446,39 @@ def __init__(__self__, *, :param pulumi.Input[bool] include_management_events: Whether to include management events for your trail. Defaults to `true`. :param pulumi.Input[str] read_write_type: Type of events to log. Valid values are `ReadOnly`, `WriteOnly`, `All`. Default value is `All`. """ + TrailEventSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_resources=data_resources, + exclude_management_event_sources=exclude_management_event_sources, + include_management_events=include_management_events, + read_write_type=read_write_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_resources: Optional[pulumi.Input[Sequence[pulumi.Input['TrailEventSelectorDataResourceArgs']]]] = None, + exclude_management_event_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + include_management_events: Optional[pulumi.Input[bool]] = None, + read_write_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_resources is None and 'dataResources' in kwargs: + data_resources = kwargs['dataResources'] + if exclude_management_event_sources is None and 'excludeManagementEventSources' in kwargs: + exclude_management_event_sources = kwargs['excludeManagementEventSources'] + if include_management_events is None and 'includeManagementEvents' in kwargs: + include_management_events = kwargs['includeManagementEvents'] + if read_write_type is None and 'readWriteType' in kwargs: + read_write_type = kwargs['readWriteType'] + if data_resources is not None: - pulumi.set(__self__, "data_resources", data_resources) + _setter("data_resources", data_resources) if exclude_management_event_sources is not None: - pulumi.set(__self__, "exclude_management_event_sources", exclude_management_event_sources) + _setter("exclude_management_event_sources", exclude_management_event_sources) if include_management_events is not None: - pulumi.set(__self__, "include_management_events", include_management_events) + _setter("include_management_events", include_management_events) if read_write_type is not None: - pulumi.set(__self__, "read_write_type", read_write_type) + _setter("read_write_type", read_write_type) @property @pulumi.getter(name="dataResources") @@ -413,8 +538,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Resource type in which you want to log data events. You can specify only the following value: "AWS::S3::Object", "AWS::Lambda::Function" and "AWS::DynamoDB::Table". :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of ARN strings or partial ARN strings to specify selectors for data audit events over data resources. ARN list is specific to single-valued `type`. For example, `arn:aws:s3:::/` for all objects in a bucket, `arn:aws:s3:::/key` for specific objects, `arn:aws:lambda` for all lambda events within an account, `arn:aws:lambda:::function:` for a specific Lambda function, `arn:aws:dynamodb` for all DDB events for all tables within an account, or `arn:aws:dynamodb:::table/` for a specific DynamoDB table. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "values", values) + TrailEventSelectorDataResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("type", type) + _setter("values", values) @property @pulumi.getter @@ -448,7 +590,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] insight_type: Type of insights to log on a trail. Valid values are: `ApiCallRateInsight` and `ApiErrorRateInsight`. """ - pulumi.set(__self__, "insight_type", insight_type) + TrailInsightSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insight_type=insight_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insight_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insight_type is None and 'insightType' in kwargs: + insight_type = kwargs['insightType'] + if insight_type is None: + raise TypeError("Missing 'insight_type' argument") + + _setter("insight_type", insight_type) @property @pulumi.getter(name="insightType") diff --git a/sdk/python/pulumi_aws/cloudtrail/event_data_store.py b/sdk/python/pulumi_aws/cloudtrail/event_data_store.py index 16d1cefc7c3..9cee9eca683 100644 --- a/sdk/python/pulumi_aws/cloudtrail/event_data_store.py +++ b/sdk/python/pulumi_aws/cloudtrail/event_data_store.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,22 +35,59 @@ def __init__(__self__, *, :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[bool] termination_protection_enabled: Specifies whether termination protection is enabled for the event data store. If termination protection is enabled, you cannot delete the event data store until termination protection is disabled. Default: `true`. """ + EventDataStoreArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + advanced_event_selectors=advanced_event_selectors, + kms_key_id=kms_key_id, + multi_region_enabled=multi_region_enabled, + name=name, + organization_enabled=organization_enabled, + retention_period=retention_period, + tags=tags, + termination_protection_enabled=termination_protection_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + advanced_event_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['EventDataStoreAdvancedEventSelectorArgs']]]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + multi_region_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + organization_enabled: Optional[pulumi.Input[bool]] = None, + retention_period: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + termination_protection_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if advanced_event_selectors is None and 'advancedEventSelectors' in kwargs: + advanced_event_selectors = kwargs['advancedEventSelectors'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if multi_region_enabled is None and 'multiRegionEnabled' in kwargs: + multi_region_enabled = kwargs['multiRegionEnabled'] + if organization_enabled is None and 'organizationEnabled' in kwargs: + organization_enabled = kwargs['organizationEnabled'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if termination_protection_enabled is None and 'terminationProtectionEnabled' in kwargs: + termination_protection_enabled = kwargs['terminationProtectionEnabled'] + if advanced_event_selectors is not None: - pulumi.set(__self__, "advanced_event_selectors", advanced_event_selectors) + _setter("advanced_event_selectors", advanced_event_selectors) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if multi_region_enabled is not None: - pulumi.set(__self__, "multi_region_enabled", multi_region_enabled) + _setter("multi_region_enabled", multi_region_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if organization_enabled is not None: - pulumi.set(__self__, "organization_enabled", organization_enabled) + _setter("organization_enabled", organization_enabled) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if termination_protection_enabled is not None: - pulumi.set(__self__, "termination_protection_enabled", termination_protection_enabled) + _setter("termination_protection_enabled", termination_protection_enabled) @property @pulumi.getter(name="advancedEventSelectors") @@ -175,29 +212,72 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[bool] termination_protection_enabled: Specifies whether termination protection is enabled for the event data store. If termination protection is enabled, you cannot delete the event data store until termination protection is disabled. Default: `true`. """ + _EventDataStoreState._configure( + lambda key, value: pulumi.set(__self__, key, value), + advanced_event_selectors=advanced_event_selectors, + arn=arn, + kms_key_id=kms_key_id, + multi_region_enabled=multi_region_enabled, + name=name, + organization_enabled=organization_enabled, + retention_period=retention_period, + tags=tags, + tags_all=tags_all, + termination_protection_enabled=termination_protection_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + advanced_event_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['EventDataStoreAdvancedEventSelectorArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + multi_region_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + organization_enabled: Optional[pulumi.Input[bool]] = None, + retention_period: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + termination_protection_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if advanced_event_selectors is None and 'advancedEventSelectors' in kwargs: + advanced_event_selectors = kwargs['advancedEventSelectors'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if multi_region_enabled is None and 'multiRegionEnabled' in kwargs: + multi_region_enabled = kwargs['multiRegionEnabled'] + if organization_enabled is None and 'organizationEnabled' in kwargs: + organization_enabled = kwargs['organizationEnabled'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if termination_protection_enabled is None and 'terminationProtectionEnabled' in kwargs: + termination_protection_enabled = kwargs['terminationProtectionEnabled'] + if advanced_event_selectors is not None: - pulumi.set(__self__, "advanced_event_selectors", advanced_event_selectors) + _setter("advanced_event_selectors", advanced_event_selectors) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if multi_region_enabled is not None: - pulumi.set(__self__, "multi_region_enabled", multi_region_enabled) + _setter("multi_region_enabled", multi_region_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if organization_enabled is not None: - pulumi.set(__self__, "organization_enabled", organization_enabled) + _setter("organization_enabled", organization_enabled) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if termination_protection_enabled is not None: - pulumi.set(__self__, "termination_protection_enabled", termination_protection_enabled) + _setter("termination_protection_enabled", termination_protection_enabled) @property @pulumi.getter(name="advancedEventSelectors") @@ -488,6 +568,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventDataStoreArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudtrail/get_service_account.py b/sdk/python/pulumi_aws/cloudtrail/get_service_account.py index 5ffa05661e7..8d780e21fff 100644 --- a/sdk/python/pulumi_aws/cloudtrail/get_service_account.py +++ b/sdk/python/pulumi_aws/cloudtrail/get_service_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudtrail/outputs.py b/sdk/python/pulumi_aws/cloudtrail/outputs.py index 13cdf4b1b1e..77bf68c97b4 100644 --- a/sdk/python/pulumi_aws/cloudtrail/outputs.py +++ b/sdk/python/pulumi_aws/cloudtrail/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -46,10 +46,25 @@ def __init__(__self__, *, :param Sequence['EventDataStoreAdvancedEventSelectorFieldSelectorArgs'] field_selectors: Specifies the selector statements in an advanced event selector. Fields documented below. :param str name: Specifies the name of the advanced event selector. """ + EventDataStoreAdvancedEventSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_selectors=field_selectors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_selectors: Optional[Sequence['outputs.EventDataStoreAdvancedEventSelectorFieldSelector']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_selectors is None and 'fieldSelectors' in kwargs: + field_selectors = kwargs['fieldSelectors'] + if field_selectors is not None: - pulumi.set(__self__, "field_selectors", field_selectors) + _setter("field_selectors", field_selectors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="fieldSelectors") @@ -112,20 +127,53 @@ def __init__(__self__, *, :param Sequence[str] not_starts_withs: A list of values that excludes events that match the first few characters of the event record field specified as the value of `field`. :param Sequence[str] starts_withs: A list of values that includes events that match the first few characters of the event record field specified as the value of `field`. """ + EventDataStoreAdvancedEventSelectorFieldSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + ends_withs=ends_withs, + equals=equals, + field=field, + not_ends_withs=not_ends_withs, + not_equals=not_equals, + not_starts_withs=not_starts_withs, + starts_withs=starts_withs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ends_withs: Optional[Sequence[str]] = None, + equals: Optional[Sequence[str]] = None, + field: Optional[str] = None, + not_ends_withs: Optional[Sequence[str]] = None, + not_equals: Optional[Sequence[str]] = None, + not_starts_withs: Optional[Sequence[str]] = None, + starts_withs: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ends_withs is None and 'endsWiths' in kwargs: + ends_withs = kwargs['endsWiths'] + if not_ends_withs is None and 'notEndsWiths' in kwargs: + not_ends_withs = kwargs['notEndsWiths'] + if not_equals is None and 'notEquals' in kwargs: + not_equals = kwargs['notEquals'] + if not_starts_withs is None and 'notStartsWiths' in kwargs: + not_starts_withs = kwargs['notStartsWiths'] + if starts_withs is None and 'startsWiths' in kwargs: + starts_withs = kwargs['startsWiths'] + if ends_withs is not None: - pulumi.set(__self__, "ends_withs", ends_withs) + _setter("ends_withs", ends_withs) if equals is not None: - pulumi.set(__self__, "equals", equals) + _setter("equals", equals) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) if not_ends_withs is not None: - pulumi.set(__self__, "not_ends_withs", not_ends_withs) + _setter("not_ends_withs", not_ends_withs) if not_equals is not None: - pulumi.set(__self__, "not_equals", not_equals) + _setter("not_equals", not_equals) if not_starts_withs is not None: - pulumi.set(__self__, "not_starts_withs", not_starts_withs) + _setter("not_starts_withs", not_starts_withs) if starts_withs is not None: - pulumi.set(__self__, "starts_withs", starts_withs) + _setter("starts_withs", starts_withs) @property @pulumi.getter(name="endsWiths") @@ -210,9 +258,26 @@ def __init__(__self__, *, :param Sequence['TrailAdvancedEventSelectorFieldSelectorArgs'] field_selectors: Specifies the selector statements in an advanced event selector. Fields documented below. :param str name: Name of the trail. """ - pulumi.set(__self__, "field_selectors", field_selectors) + TrailAdvancedEventSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_selectors=field_selectors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_selectors: Optional[Sequence['outputs.TrailAdvancedEventSelectorFieldSelector']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_selectors is None and 'fieldSelectors' in kwargs: + field_selectors = kwargs['fieldSelectors'] + if field_selectors is None: + raise TypeError("Missing 'field_selectors' argument") + + _setter("field_selectors", field_selectors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="fieldSelectors") @@ -275,19 +340,54 @@ def __init__(__self__, *, :param Sequence[str] not_starts_withs: A list of values that excludes events that match the first few characters of the event record field specified as the value of `field`. :param Sequence[str] starts_withs: A list of values that includes events that match the first few characters of the event record field specified as the value of `field`. """ - pulumi.set(__self__, "field", field) + TrailAdvancedEventSelectorFieldSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + ends_withs=ends_withs, + equals=equals, + not_ends_withs=not_ends_withs, + not_equals=not_equals, + not_starts_withs=not_starts_withs, + starts_withs=starts_withs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[str] = None, + ends_withs: Optional[Sequence[str]] = None, + equals: Optional[Sequence[str]] = None, + not_ends_withs: Optional[Sequence[str]] = None, + not_equals: Optional[Sequence[str]] = None, + not_starts_withs: Optional[Sequence[str]] = None, + starts_withs: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is None: + raise TypeError("Missing 'field' argument") + if ends_withs is None and 'endsWiths' in kwargs: + ends_withs = kwargs['endsWiths'] + if not_ends_withs is None and 'notEndsWiths' in kwargs: + not_ends_withs = kwargs['notEndsWiths'] + if not_equals is None and 'notEquals' in kwargs: + not_equals = kwargs['notEquals'] + if not_starts_withs is None and 'notStartsWiths' in kwargs: + not_starts_withs = kwargs['notStartsWiths'] + if starts_withs is None and 'startsWiths' in kwargs: + starts_withs = kwargs['startsWiths'] + + _setter("field", field) if ends_withs is not None: - pulumi.set(__self__, "ends_withs", ends_withs) + _setter("ends_withs", ends_withs) if equals is not None: - pulumi.set(__self__, "equals", equals) + _setter("equals", equals) if not_ends_withs is not None: - pulumi.set(__self__, "not_ends_withs", not_ends_withs) + _setter("not_ends_withs", not_ends_withs) if not_equals is not None: - pulumi.set(__self__, "not_equals", not_equals) + _setter("not_equals", not_equals) if not_starts_withs is not None: - pulumi.set(__self__, "not_starts_withs", not_starts_withs) + _setter("not_starts_withs", not_starts_withs) if starts_withs is not None: - pulumi.set(__self__, "starts_withs", starts_withs) + _setter("starts_withs", starts_withs) @property @pulumi.getter @@ -382,14 +482,39 @@ def __init__(__self__, *, :param bool include_management_events: Whether to include management events for your trail. Defaults to `true`. :param str read_write_type: Type of events to log. Valid values are `ReadOnly`, `WriteOnly`, `All`. Default value is `All`. """ + TrailEventSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_resources=data_resources, + exclude_management_event_sources=exclude_management_event_sources, + include_management_events=include_management_events, + read_write_type=read_write_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_resources: Optional[Sequence['outputs.TrailEventSelectorDataResource']] = None, + exclude_management_event_sources: Optional[Sequence[str]] = None, + include_management_events: Optional[bool] = None, + read_write_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_resources is None and 'dataResources' in kwargs: + data_resources = kwargs['dataResources'] + if exclude_management_event_sources is None and 'excludeManagementEventSources' in kwargs: + exclude_management_event_sources = kwargs['excludeManagementEventSources'] + if include_management_events is None and 'includeManagementEvents' in kwargs: + include_management_events = kwargs['includeManagementEvents'] + if read_write_type is None and 'readWriteType' in kwargs: + read_write_type = kwargs['readWriteType'] + if data_resources is not None: - pulumi.set(__self__, "data_resources", data_resources) + _setter("data_resources", data_resources) if exclude_management_event_sources is not None: - pulumi.set(__self__, "exclude_management_event_sources", exclude_management_event_sources) + _setter("exclude_management_event_sources", exclude_management_event_sources) if include_management_events is not None: - pulumi.set(__self__, "include_management_events", include_management_events) + _setter("include_management_events", include_management_events) if read_write_type is not None: - pulumi.set(__self__, "read_write_type", read_write_type) + _setter("read_write_type", read_write_type) @property @pulumi.getter(name="dataResources") @@ -433,8 +558,25 @@ def __init__(__self__, *, :param str type: Resource type in which you want to log data events. You can specify only the following value: "AWS::S3::Object", "AWS::Lambda::Function" and "AWS::DynamoDB::Table". :param Sequence[str] values: List of ARN strings or partial ARN strings to specify selectors for data audit events over data resources. ARN list is specific to single-valued `type`. For example, `arn:aws:s3:::/` for all objects in a bucket, `arn:aws:s3:::/key` for specific objects, `arn:aws:lambda` for all lambda events within an account, `arn:aws:lambda:::function:` for a specific Lambda function, `arn:aws:dynamodb` for all DDB events for all tables within an account, or `arn:aws:dynamodb:::table/
` for a specific DynamoDB table. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "values", values) + TrailEventSelectorDataResource._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("type", type) + _setter("values", values) @property @pulumi.getter @@ -477,7 +619,22 @@ def __init__(__self__, *, """ :param str insight_type: Type of insights to log on a trail. Valid values are: `ApiCallRateInsight` and `ApiErrorRateInsight`. """ - pulumi.set(__self__, "insight_type", insight_type) + TrailInsightSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + insight_type=insight_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insight_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insight_type is None and 'insightType' in kwargs: + insight_type = kwargs['insightType'] + if insight_type is None: + raise TypeError("Missing 'insight_type' argument") + + _setter("insight_type", insight_type) @property @pulumi.getter(name="insightType") diff --git a/sdk/python/pulumi_aws/cloudtrail/trail.py b/sdk/python/pulumi_aws/cloudtrail/trail.py index b21839016cf..45dddd68b4e 100644 --- a/sdk/python/pulumi_aws/cloudtrail/trail.py +++ b/sdk/python/pulumi_aws/cloudtrail/trail.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -53,37 +53,108 @@ def __init__(__self__, *, :param pulumi.Input[str] sns_topic_name: Name of the Amazon SNS topic defined for notification of log file delivery. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the trail. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + TrailArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + advanced_event_selectors=advanced_event_selectors, + cloud_watch_logs_group_arn=cloud_watch_logs_group_arn, + cloud_watch_logs_role_arn=cloud_watch_logs_role_arn, + enable_log_file_validation=enable_log_file_validation, + enable_logging=enable_logging, + event_selectors=event_selectors, + include_global_service_events=include_global_service_events, + insight_selectors=insight_selectors, + is_multi_region_trail=is_multi_region_trail, + is_organization_trail=is_organization_trail, + kms_key_id=kms_key_id, + name=name, + s3_key_prefix=s3_key_prefix, + sns_topic_name=sns_topic_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[pulumi.Input[str]] = None, + advanced_event_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['TrailAdvancedEventSelectorArgs']]]] = None, + cloud_watch_logs_group_arn: Optional[pulumi.Input[str]] = None, + cloud_watch_logs_role_arn: Optional[pulumi.Input[str]] = None, + enable_log_file_validation: Optional[pulumi.Input[bool]] = None, + enable_logging: Optional[pulumi.Input[bool]] = None, + event_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['TrailEventSelectorArgs']]]] = None, + include_global_service_events: Optional[pulumi.Input[bool]] = None, + insight_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['TrailInsightSelectorArgs']]]] = None, + is_multi_region_trail: Optional[pulumi.Input[bool]] = None, + is_organization_trail: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + s3_key_prefix: Optional[pulumi.Input[str]] = None, + sns_topic_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if advanced_event_selectors is None and 'advancedEventSelectors' in kwargs: + advanced_event_selectors = kwargs['advancedEventSelectors'] + if cloud_watch_logs_group_arn is None and 'cloudWatchLogsGroupArn' in kwargs: + cloud_watch_logs_group_arn = kwargs['cloudWatchLogsGroupArn'] + if cloud_watch_logs_role_arn is None and 'cloudWatchLogsRoleArn' in kwargs: + cloud_watch_logs_role_arn = kwargs['cloudWatchLogsRoleArn'] + if enable_log_file_validation is None and 'enableLogFileValidation' in kwargs: + enable_log_file_validation = kwargs['enableLogFileValidation'] + if enable_logging is None and 'enableLogging' in kwargs: + enable_logging = kwargs['enableLogging'] + if event_selectors is None and 'eventSelectors' in kwargs: + event_selectors = kwargs['eventSelectors'] + if include_global_service_events is None and 'includeGlobalServiceEvents' in kwargs: + include_global_service_events = kwargs['includeGlobalServiceEvents'] + if insight_selectors is None and 'insightSelectors' in kwargs: + insight_selectors = kwargs['insightSelectors'] + if is_multi_region_trail is None and 'isMultiRegionTrail' in kwargs: + is_multi_region_trail = kwargs['isMultiRegionTrail'] + if is_organization_trail is None and 'isOrganizationTrail' in kwargs: + is_organization_trail = kwargs['isOrganizationTrail'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if sns_topic_name is None and 'snsTopicName' in kwargs: + sns_topic_name = kwargs['snsTopicName'] + + _setter("s3_bucket_name", s3_bucket_name) if advanced_event_selectors is not None: - pulumi.set(__self__, "advanced_event_selectors", advanced_event_selectors) + _setter("advanced_event_selectors", advanced_event_selectors) if cloud_watch_logs_group_arn is not None: - pulumi.set(__self__, "cloud_watch_logs_group_arn", cloud_watch_logs_group_arn) + _setter("cloud_watch_logs_group_arn", cloud_watch_logs_group_arn) if cloud_watch_logs_role_arn is not None: - pulumi.set(__self__, "cloud_watch_logs_role_arn", cloud_watch_logs_role_arn) + _setter("cloud_watch_logs_role_arn", cloud_watch_logs_role_arn) if enable_log_file_validation is not None: - pulumi.set(__self__, "enable_log_file_validation", enable_log_file_validation) + _setter("enable_log_file_validation", enable_log_file_validation) if enable_logging is not None: - pulumi.set(__self__, "enable_logging", enable_logging) + _setter("enable_logging", enable_logging) if event_selectors is not None: - pulumi.set(__self__, "event_selectors", event_selectors) + _setter("event_selectors", event_selectors) if include_global_service_events is not None: - pulumi.set(__self__, "include_global_service_events", include_global_service_events) + _setter("include_global_service_events", include_global_service_events) if insight_selectors is not None: - pulumi.set(__self__, "insight_selectors", insight_selectors) + _setter("insight_selectors", insight_selectors) if is_multi_region_trail is not None: - pulumi.set(__self__, "is_multi_region_trail", is_multi_region_trail) + _setter("is_multi_region_trail", is_multi_region_trail) if is_organization_trail is not None: - pulumi.set(__self__, "is_organization_trail", is_organization_trail) + _setter("is_organization_trail", is_organization_trail) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) if sns_topic_name is not None: - pulumi.set(__self__, "sns_topic_name", sns_topic_name) + _setter("sns_topic_name", sns_topic_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="s3BucketName") @@ -326,47 +397,126 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the trail. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _TrailState._configure( + lambda key, value: pulumi.set(__self__, key, value), + advanced_event_selectors=advanced_event_selectors, + arn=arn, + cloud_watch_logs_group_arn=cloud_watch_logs_group_arn, + cloud_watch_logs_role_arn=cloud_watch_logs_role_arn, + enable_log_file_validation=enable_log_file_validation, + enable_logging=enable_logging, + event_selectors=event_selectors, + home_region=home_region, + include_global_service_events=include_global_service_events, + insight_selectors=insight_selectors, + is_multi_region_trail=is_multi_region_trail, + is_organization_trail=is_organization_trail, + kms_key_id=kms_key_id, + name=name, + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + sns_topic_name=sns_topic_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + advanced_event_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['TrailAdvancedEventSelectorArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + cloud_watch_logs_group_arn: Optional[pulumi.Input[str]] = None, + cloud_watch_logs_role_arn: Optional[pulumi.Input[str]] = None, + enable_log_file_validation: Optional[pulumi.Input[bool]] = None, + enable_logging: Optional[pulumi.Input[bool]] = None, + event_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['TrailEventSelectorArgs']]]] = None, + home_region: Optional[pulumi.Input[str]] = None, + include_global_service_events: Optional[pulumi.Input[bool]] = None, + insight_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['TrailInsightSelectorArgs']]]] = None, + is_multi_region_trail: Optional[pulumi.Input[bool]] = None, + is_organization_trail: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + s3_bucket_name: Optional[pulumi.Input[str]] = None, + s3_key_prefix: Optional[pulumi.Input[str]] = None, + sns_topic_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if advanced_event_selectors is None and 'advancedEventSelectors' in kwargs: + advanced_event_selectors = kwargs['advancedEventSelectors'] + if cloud_watch_logs_group_arn is None and 'cloudWatchLogsGroupArn' in kwargs: + cloud_watch_logs_group_arn = kwargs['cloudWatchLogsGroupArn'] + if cloud_watch_logs_role_arn is None and 'cloudWatchLogsRoleArn' in kwargs: + cloud_watch_logs_role_arn = kwargs['cloudWatchLogsRoleArn'] + if enable_log_file_validation is None and 'enableLogFileValidation' in kwargs: + enable_log_file_validation = kwargs['enableLogFileValidation'] + if enable_logging is None and 'enableLogging' in kwargs: + enable_logging = kwargs['enableLogging'] + if event_selectors is None and 'eventSelectors' in kwargs: + event_selectors = kwargs['eventSelectors'] + if home_region is None and 'homeRegion' in kwargs: + home_region = kwargs['homeRegion'] + if include_global_service_events is None and 'includeGlobalServiceEvents' in kwargs: + include_global_service_events = kwargs['includeGlobalServiceEvents'] + if insight_selectors is None and 'insightSelectors' in kwargs: + insight_selectors = kwargs['insightSelectors'] + if is_multi_region_trail is None and 'isMultiRegionTrail' in kwargs: + is_multi_region_trail = kwargs['isMultiRegionTrail'] + if is_organization_trail is None and 'isOrganizationTrail' in kwargs: + is_organization_trail = kwargs['isOrganizationTrail'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if sns_topic_name is None and 'snsTopicName' in kwargs: + sns_topic_name = kwargs['snsTopicName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if advanced_event_selectors is not None: - pulumi.set(__self__, "advanced_event_selectors", advanced_event_selectors) + _setter("advanced_event_selectors", advanced_event_selectors) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cloud_watch_logs_group_arn is not None: - pulumi.set(__self__, "cloud_watch_logs_group_arn", cloud_watch_logs_group_arn) + _setter("cloud_watch_logs_group_arn", cloud_watch_logs_group_arn) if cloud_watch_logs_role_arn is not None: - pulumi.set(__self__, "cloud_watch_logs_role_arn", cloud_watch_logs_role_arn) + _setter("cloud_watch_logs_role_arn", cloud_watch_logs_role_arn) if enable_log_file_validation is not None: - pulumi.set(__self__, "enable_log_file_validation", enable_log_file_validation) + _setter("enable_log_file_validation", enable_log_file_validation) if enable_logging is not None: - pulumi.set(__self__, "enable_logging", enable_logging) + _setter("enable_logging", enable_logging) if event_selectors is not None: - pulumi.set(__self__, "event_selectors", event_selectors) + _setter("event_selectors", event_selectors) if home_region is not None: - pulumi.set(__self__, "home_region", home_region) + _setter("home_region", home_region) if include_global_service_events is not None: - pulumi.set(__self__, "include_global_service_events", include_global_service_events) + _setter("include_global_service_events", include_global_service_events) if insight_selectors is not None: - pulumi.set(__self__, "insight_selectors", insight_selectors) + _setter("insight_selectors", insight_selectors) if is_multi_region_trail is not None: - pulumi.set(__self__, "is_multi_region_trail", is_multi_region_trail) + _setter("is_multi_region_trail", is_multi_region_trail) if is_organization_trail is not None: - pulumi.set(__self__, "is_organization_trail", is_organization_trail) + _setter("is_organization_trail", is_organization_trail) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if s3_bucket_name is not None: - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + _setter("s3_bucket_name", s3_bucket_name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) if sns_topic_name is not None: - pulumi.set(__self__, "sns_topic_name", sns_topic_name) + _setter("sns_topic_name", sns_topic_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="advancedEventSelectors") @@ -939,6 +1089,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrailArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/_inputs.py b/sdk/python/pulumi_aws/cloudwatch/_inputs.py index 2dba7beadd4..5da7e7979e5 100644 --- a/sdk/python/pulumi_aws/cloudwatch/_inputs.py +++ b/sdk/python/pulumi_aws/cloudwatch/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -79,9 +79,34 @@ def __init__(__self__, *, :param pulumi.Input[int] extension_period: The maximum time in seconds that the composite alarm waits after suppressor alarm goes out of the `ALARM` state. After this time, the composite alarm performs its actions. :param pulumi.Input[int] wait_period: The maximum time in seconds that the composite alarm waits for the suppressor alarm to go into the `ALARM` state. After this time, the composite alarm performs its actions. """ - pulumi.set(__self__, "alarm", alarm) - pulumi.set(__self__, "extension_period", extension_period) - pulumi.set(__self__, "wait_period", wait_period) + CompositeAlarmActionsSuppressorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm=alarm, + extension_period=extension_period, + wait_period=wait_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm: Optional[pulumi.Input[str]] = None, + extension_period: Optional[pulumi.Input[int]] = None, + wait_period: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm is None: + raise TypeError("Missing 'alarm' argument") + if extension_period is None and 'extensionPeriod' in kwargs: + extension_period = kwargs['extensionPeriod'] + if extension_period is None: + raise TypeError("Missing 'extension_period' argument") + if wait_period is None and 'waitPeriod' in kwargs: + wait_period = kwargs['waitPeriod'] + if wait_period is None: + raise TypeError("Missing 'wait_period' argument") + + _setter("alarm", alarm) + _setter("extension_period", extension_period) + _setter("wait_period", wait_period) @property @pulumi.getter @@ -133,14 +158,35 @@ def __init__(__self__, *, :param pulumi.Input['EventConnectionAuthParametersInvocationHttpParametersArgs'] invocation_http_parameters: Invocation Http Parameters are additional credentials used to sign each Invocation of the ApiDestination created from this Connection. If the ApiDestination Rule Target has additional HttpParameters, the values will be merged together, with the Connection Invocation Http Parameters taking precedence. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. :param pulumi.Input['EventConnectionAuthParametersOauthArgs'] oauth: Parameters used for OAUTH_CLIENT_CREDENTIALS authorization. A maximum of 1 are allowed. Conflicts with `basic` and `api_key`. Documented below. """ + EventConnectionAuthParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + basic=basic, + invocation_http_parameters=invocation_http_parameters, + oauth=oauth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[pulumi.Input['EventConnectionAuthParametersApiKeyArgs']] = None, + basic: Optional[pulumi.Input['EventConnectionAuthParametersBasicArgs']] = None, + invocation_http_parameters: Optional[pulumi.Input['EventConnectionAuthParametersInvocationHttpParametersArgs']] = None, + oauth: Optional[pulumi.Input['EventConnectionAuthParametersOauthArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if invocation_http_parameters is None and 'invocationHttpParameters' in kwargs: + invocation_http_parameters = kwargs['invocationHttpParameters'] + if api_key is not None: - pulumi.set(__self__, "api_key", api_key) + _setter("api_key", api_key) if basic is not None: - pulumi.set(__self__, "basic", basic) + _setter("basic", basic) if invocation_http_parameters is not None: - pulumi.set(__self__, "invocation_http_parameters", invocation_http_parameters) + _setter("invocation_http_parameters", invocation_http_parameters) if oauth is not None: - pulumi.set(__self__, "oauth", oauth) + _setter("oauth", oauth) @property @pulumi.getter(name="apiKey") @@ -200,8 +246,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Header Name. :param pulumi.Input[str] value: Header Value. Created and stored in AWS Secrets Manager. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + EventConnectionAuthParametersApiKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -237,8 +300,25 @@ def __init__(__self__, *, :param pulumi.Input[str] password: A password for the authorization. Created and stored in AWS Secrets Manager. :param pulumi.Input[str] username: A username for the authorization. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + EventConnectionAuthParametersBasicArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -276,12 +356,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersInvocationHttpParametersHeaderArgs']]] headers: Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: :param pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs']]] query_strings: Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: """ + EventConnectionAuthParametersInvocationHttpParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bodies=bodies, + headers=headers, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bodies: Optional[pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersInvocationHttpParametersBodyArgs']]]] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersInvocationHttpParametersHeaderArgs']]]] = None, + query_strings: Optional[pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if bodies is not None: - pulumi.set(__self__, "bodies", bodies) + _setter("bodies", bodies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) @property @pulumi.getter @@ -331,12 +428,29 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Header Name. :param pulumi.Input[str] value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersInvocationHttpParametersBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -386,12 +500,29 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Header Name. :param pulumi.Input[str] value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersInvocationHttpParametersHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -441,12 +572,29 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Header Name. :param pulumi.Input[str] value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -498,11 +646,42 @@ def __init__(__self__, *, :param pulumi.Input['EventConnectionAuthParametersOauthOauthHttpParametersArgs'] oauth_http_parameters: OAuth Http Parameters are additional credentials used to sign the request to the authorization endpoint to exchange the OAuth Client information for an access token. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. :param pulumi.Input['EventConnectionAuthParametersOauthClientParametersArgs'] client_parameters: Contains the client parameters for OAuth authorization. Contains the following two parameters. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "http_method", http_method) - pulumi.set(__self__, "oauth_http_parameters", oauth_http_parameters) + EventConnectionAuthParametersOauthArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + http_method=http_method, + oauth_http_parameters=oauth_http_parameters, + client_parameters=client_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[pulumi.Input[str]] = None, + http_method: Optional[pulumi.Input[str]] = None, + oauth_http_parameters: Optional[pulumi.Input['EventConnectionAuthParametersOauthOauthHttpParametersArgs']] = None, + client_parameters: Optional[pulumi.Input['EventConnectionAuthParametersOauthClientParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if http_method is None: + raise TypeError("Missing 'http_method' argument") + if oauth_http_parameters is None and 'oauthHttpParameters' in kwargs: + oauth_http_parameters = kwargs['oauthHttpParameters'] + if oauth_http_parameters is None: + raise TypeError("Missing 'oauth_http_parameters' argument") + if client_parameters is None and 'clientParameters' in kwargs: + client_parameters = kwargs['clientParameters'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("http_method", http_method) + _setter("oauth_http_parameters", oauth_http_parameters) if client_parameters is not None: - pulumi.set(__self__, "client_parameters", client_parameters) + _setter("client_parameters", client_parameters) @property @pulumi.getter(name="authorizationEndpoint") @@ -562,8 +741,29 @@ def __init__(__self__, *, :param pulumi.Input[str] client_id: The client ID for the credentials to use for authorization. Created and stored in AWS Secrets Manager. :param pulumi.Input[str] client_secret: The client secret for the credentials to use for authorization. Created and stored in AWS Secrets Manager. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + EventConnectionAuthParametersOauthClientParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + + _setter("client_id", client_id) + _setter("client_secret", client_secret) @property @pulumi.getter(name="clientId") @@ -601,12 +801,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs']]] headers: Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: :param pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs']]] query_strings: Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: """ + EventConnectionAuthParametersOauthOauthHttpParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bodies=bodies, + headers=headers, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bodies: Optional[pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs']]]] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs']]]] = None, + query_strings: Optional[pulumi.Input[Sequence[pulumi.Input['EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if bodies is not None: - pulumi.set(__self__, "bodies", bodies) + _setter("bodies", bodies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) @property @pulumi.getter @@ -656,12 +873,29 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Header Name. :param pulumi.Input[str] value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -711,12 +945,29 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Header Name. :param pulumi.Input[str] value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -766,12 +1017,29 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Header Name. :param pulumi.Input[str] value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -817,7 +1085,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] event_bus_arn: The ARN of the event bus the endpoint is associated with. """ - pulumi.set(__self__, "event_bus_arn", event_bus_arn) + EventEndpointEventBusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_bus_arn=event_bus_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_bus_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_bus_arn is None and 'eventBusArn' in kwargs: + event_bus_arn = kwargs['eventBusArn'] + if event_bus_arn is None: + raise TypeError("Missing 'event_bus_arn' argument") + + _setter("event_bus_arn", event_bus_arn) @property @pulumi.getter(name="eventBusArn") @@ -839,8 +1122,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] state: The state of event replication. Valid values: `ENABLED`, `DISABLED`. The default state is `ENABLED`, which means you must supply a `role_arn`. If you don't have a `role_arn` or you don't want event replication enabled, set `state` to `DISABLED`. """ + EventEndpointReplicationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter @@ -862,7 +1156,22 @@ def __init__(__self__, *, """ :param pulumi.Input['EventEndpointRoutingConfigFailoverConfigArgs'] failover_config: Parameters used for failover. This includes what triggers failover and what happens when it's triggered. Documented below. """ - pulumi.set(__self__, "failover_config", failover_config) + EventEndpointRoutingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failover_config=failover_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failover_config: Optional[pulumi.Input['EventEndpointRoutingConfigFailoverConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failover_config is None and 'failoverConfig' in kwargs: + failover_config = kwargs['failoverConfig'] + if failover_config is None: + raise TypeError("Missing 'failover_config' argument") + + _setter("failover_config", failover_config) @property @pulumi.getter(name="failoverConfig") @@ -886,8 +1195,25 @@ def __init__(__self__, *, :param pulumi.Input['EventEndpointRoutingConfigFailoverConfigPrimaryArgs'] primary: Parameters used for the primary Region. Documented below. :param pulumi.Input['EventEndpointRoutingConfigFailoverConfigSecondaryArgs'] secondary: Parameters used for the secondary Region, the Region that events are routed to when failover is triggered or event replication is enabled. Documented below. """ - pulumi.set(__self__, "primary", primary) - pulumi.set(__self__, "secondary", secondary) + EventEndpointRoutingConfigFailoverConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary=primary, + secondary=secondary, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary: Optional[pulumi.Input['EventEndpointRoutingConfigFailoverConfigPrimaryArgs']] = None, + secondary: Optional[pulumi.Input['EventEndpointRoutingConfigFailoverConfigSecondaryArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary is None: + raise TypeError("Missing 'primary' argument") + if secondary is None: + raise TypeError("Missing 'secondary' argument") + + _setter("primary", primary) + _setter("secondary", secondary) @property @pulumi.getter @@ -921,8 +1247,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] health_check: The ARN of the health check used by the endpoint to determine whether failover is triggered. """ + EventEndpointRoutingConfigFailoverConfigPrimaryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + health_check=health_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + health_check: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) @property @pulumi.getter(name="healthCheck") @@ -944,8 +1283,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] route: The name of the secondary Region. """ + EventEndpointRoutingConfigFailoverConfigSecondaryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + route=route, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route is not None: - pulumi.set(__self__, "route", route) + _setter("route", route) @property @pulumi.getter @@ -971,9 +1321,30 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of condition. Value values: `StringEquals`. :param pulumi.Input[str] value: Value for the key. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EventPermissionConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -1025,12 +1396,41 @@ def __init__(__self__, *, :param pulumi.Input[int] array_size: The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000. :param pulumi.Input[int] job_attempts: The number of times to attempt to retry, if the job fails. Valid values are 1 to 10. """ - pulumi.set(__self__, "job_definition", job_definition) - pulumi.set(__self__, "job_name", job_name) + EventTargetBatchTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_definition=job_definition, + job_name=job_name, + array_size=array_size, + job_attempts=job_attempts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_definition: Optional[pulumi.Input[str]] = None, + job_name: Optional[pulumi.Input[str]] = None, + array_size: Optional[pulumi.Input[int]] = None, + job_attempts: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_definition is None and 'jobDefinition' in kwargs: + job_definition = kwargs['jobDefinition'] + if job_definition is None: + raise TypeError("Missing 'job_definition' argument") + if job_name is None and 'jobName' in kwargs: + job_name = kwargs['jobName'] + if job_name is None: + raise TypeError("Missing 'job_name' argument") + if array_size is None and 'arraySize' in kwargs: + array_size = kwargs['arraySize'] + if job_attempts is None and 'jobAttempts' in kwargs: + job_attempts = kwargs['jobAttempts'] + + _setter("job_definition", job_definition) + _setter("job_name", job_name) if array_size is not None: - pulumi.set(__self__, "array_size", array_size) + _setter("array_size", array_size) if job_attempts is not None: - pulumi.set(__self__, "job_attempts", job_attempts) + _setter("job_attempts", job_attempts) @property @pulumi.getter(name="jobDefinition") @@ -1088,8 +1488,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] arn: ARN of the SQS queue specified as the target for the dead-letter queue. """ + EventTargetDeadLetterConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) @property @pulumi.getter @@ -1135,31 +1546,90 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to ecs resources. :param pulumi.Input[int] task_count: The number of tasks to create based on the TaskDefinition. Defaults to `1`. """ - pulumi.set(__self__, "task_definition_arn", task_definition_arn) + EventTargetEcsTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + task_definition_arn=task_definition_arn, + capacity_provider_strategies=capacity_provider_strategies, + enable_ecs_managed_tags=enable_ecs_managed_tags, + enable_execute_command=enable_execute_command, + group=group, + launch_type=launch_type, + network_configuration=network_configuration, + ordered_placement_strategies=ordered_placement_strategies, + placement_constraints=placement_constraints, + platform_version=platform_version, + propagate_tags=propagate_tags, + tags=tags, + task_count=task_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + task_definition_arn: Optional[pulumi.Input[str]] = None, + capacity_provider_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['EventTargetEcsTargetCapacityProviderStrategyArgs']]]] = None, + enable_ecs_managed_tags: Optional[pulumi.Input[bool]] = None, + enable_execute_command: Optional[pulumi.Input[bool]] = None, + group: Optional[pulumi.Input[str]] = None, + launch_type: Optional[pulumi.Input[str]] = None, + network_configuration: Optional[pulumi.Input['EventTargetEcsTargetNetworkConfigurationArgs']] = None, + ordered_placement_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['EventTargetEcsTargetOrderedPlacementStrategyArgs']]]] = None, + placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['EventTargetEcsTargetPlacementConstraintArgs']]]] = None, + platform_version: Optional[pulumi.Input[str]] = None, + propagate_tags: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + task_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if task_definition_arn is None and 'taskDefinitionArn' in kwargs: + task_definition_arn = kwargs['taskDefinitionArn'] + if task_definition_arn is None: + raise TypeError("Missing 'task_definition_arn' argument") + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if enable_ecs_managed_tags is None and 'enableEcsManagedTags' in kwargs: + enable_ecs_managed_tags = kwargs['enableEcsManagedTags'] + if enable_execute_command is None and 'enableExecuteCommand' in kwargs: + enable_execute_command = kwargs['enableExecuteCommand'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if ordered_placement_strategies is None and 'orderedPlacementStrategies' in kwargs: + ordered_placement_strategies = kwargs['orderedPlacementStrategies'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if task_count is None and 'taskCount' in kwargs: + task_count = kwargs['taskCount'] + + _setter("task_definition_arn", task_definition_arn) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if enable_ecs_managed_tags is not None: - pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) + _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - pulumi.set(__self__, "enable_execute_command", enable_execute_command) + _setter("enable_execute_command", enable_execute_command) if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if ordered_placement_strategies is not None: - pulumi.set(__self__, "ordered_placement_strategies", ordered_placement_strategies) + _setter("ordered_placement_strategies", ordered_placement_strategies) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if task_count is not None: - pulumi.set(__self__, "task_count", task_count) + _setter("task_count", task_count) @property @pulumi.getter(name="taskDefinitionArn") @@ -1329,11 +1799,30 @@ def __init__(__self__, *, :param pulumi.Input[int] base: The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. :param pulumi.Input[int] weight: The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + EventTargetEcsTargetCapacityProviderStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[pulumi.Input[str]] = None, + base: Optional[pulumi.Input[int]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -1385,11 +1874,32 @@ def __init__(__self__, *, For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. """ - pulumi.set(__self__, "subnets", subnets) + EventTargetEcsTargetNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + assign_public_ip: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -1439,9 +1949,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of placement strategy. The only valid values at this time are `binpack`, `random` and `spread`. :param pulumi.Input[str] field: The field to apply the placement strategy against. For the `spread` placement strategy, valid values are `instanceId` (or `host`, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as `attribute:ecs.availability-zone`. For the `binpack` placement strategy, valid values are `cpu` and `memory`. For the `random` placement strategy, this field is not used. For more information, see [Amazon ECS task placement strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html). """ - pulumi.set(__self__, "type", type) + EventTargetEcsTargetOrderedPlacementStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + field=field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + field: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) @property @pulumi.getter @@ -1477,9 +2002,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. :param pulumi.Input[str] expression: Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). """ - pulumi.set(__self__, "type", type) + EventTargetEcsTargetPlacementConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -1517,12 +2057,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] path_parameter_values: The list of values that correspond sequentially to any path variables in your endpoint ARN (for example `arn:aws:execute-api:us-east-1:123456:myapi/*/POST/pets/*`). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] query_string_parameters: Represents keys/values of query string parameters that are appended to the invoked endpoint. """ + EventTargetHttpTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_parameters=header_parameters, + path_parameter_values=path_parameter_values, + query_string_parameters=query_string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + path_parameter_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + query_string_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_parameters is None and 'headerParameters' in kwargs: + header_parameters = kwargs['headerParameters'] + if path_parameter_values is None and 'pathParameterValues' in kwargs: + path_parameter_values = kwargs['pathParameterValues'] + if query_string_parameters is None and 'queryStringParameters' in kwargs: + query_string_parameters = kwargs['queryStringParameters'] + if header_parameters is not None: - pulumi.set(__self__, "header_parameters", header_parameters) + _setter("header_parameters", header_parameters) if path_parameter_values is not None: - pulumi.set(__self__, "path_parameter_values", path_parameter_values) + _setter("path_parameter_values", path_parameter_values) if query_string_parameters is not None: - pulumi.set(__self__, "query_string_parameters", query_string_parameters) + _setter("query_string_parameters", query_string_parameters) @property @pulumi.getter(name="headerParameters") @@ -1573,9 +2134,28 @@ def __init__(__self__, *, * You must use JSON dot notation, not bracket notation. * The keys can't start with "AWS". """ - pulumi.set(__self__, "input_template", input_template) + EventTargetInputTransformerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_template=input_template, + input_paths=input_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_template: Optional[pulumi.Input[str]] = None, + input_paths: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_template is None and 'inputTemplate' in kwargs: + input_template = kwargs['inputTemplate'] + if input_template is None: + raise TypeError("Missing 'input_template' argument") + if input_paths is None and 'inputPaths' in kwargs: + input_paths = kwargs['inputPaths'] + + _setter("input_template", input_template) if input_paths is not None: - pulumi.set(__self__, "input_paths", input_paths) + _setter("input_paths", input_paths) @property @pulumi.getter(name="inputTemplate") @@ -1612,8 +2192,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] partition_key_path: The JSON path to be extracted from the event and used as the partition key. """ + EventTargetKinesisTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + partition_key_path=partition_key_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + partition_key_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if partition_key_path is None and 'partitionKeyPath' in kwargs: + partition_key_path = kwargs['partitionKeyPath'] + if partition_key_path is not None: - pulumi.set(__self__, "partition_key_path", partition_key_path) + _setter("partition_key_path", partition_key_path) @property @pulumi.getter(name="partitionKeyPath") @@ -1645,17 +2238,48 @@ def __init__(__self__, *, :param pulumi.Input[str] statement_name: The name of the SQL statement. :param pulumi.Input[bool] with_event: Indicates whether to send an event back to EventBridge after the SQL statement runs. """ - pulumi.set(__self__, "database", database) + EventTargetRedshiftTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + db_user=db_user, + secrets_manager_arn=secrets_manager_arn, + sql=sql, + statement_name=statement_name, + with_event=with_event, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + db_user: Optional[pulumi.Input[str]] = None, + secrets_manager_arn: Optional[pulumi.Input[str]] = None, + sql: Optional[pulumi.Input[str]] = None, + statement_name: Optional[pulumi.Input[str]] = None, + with_event: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if db_user is None and 'dbUser' in kwargs: + db_user = kwargs['dbUser'] + if secrets_manager_arn is None and 'secretsManagerArn' in kwargs: + secrets_manager_arn = kwargs['secretsManagerArn'] + if statement_name is None and 'statementName' in kwargs: + statement_name = kwargs['statementName'] + if with_event is None and 'withEvent' in kwargs: + with_event = kwargs['withEvent'] + + _setter("database", database) if db_user is not None: - pulumi.set(__self__, "db_user", db_user) + _setter("db_user", db_user) if secrets_manager_arn is not None: - pulumi.set(__self__, "secrets_manager_arn", secrets_manager_arn) + _setter("secrets_manager_arn", secrets_manager_arn) if sql is not None: - pulumi.set(__self__, "sql", sql) + _setter("sql", sql) if statement_name is not None: - pulumi.set(__self__, "statement_name", statement_name) + _setter("statement_name", statement_name) if with_event is not None: - pulumi.set(__self__, "with_event", with_event) + _setter("with_event", with_event) @property @pulumi.getter @@ -1739,10 +2363,27 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_event_age_in_seconds: The age in seconds to continue to make retry attempts. :param pulumi.Input[int] maximum_retry_attempts: maximum number of retry attempts to make before the request fails """ + EventTargetRetryPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_event_age_in_seconds=maximum_event_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_event_age_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_retry_attempts: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_event_age_in_seconds is None and 'maximumEventAgeInSeconds' in kwargs: + maximum_event_age_in_seconds = kwargs['maximumEventAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if maximum_event_age_in_seconds is not None: - pulumi.set(__self__, "maximum_event_age_in_seconds", maximum_event_age_in_seconds) + _setter("maximum_event_age_in_seconds", maximum_event_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) @property @pulumi.getter(name="maximumEventAgeInSeconds") @@ -1778,8 +2419,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Can be either `tag:tag-key` or `InstanceIds`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: If Key is `tag:tag-key`, Values is a list of tag values. If Key is `InstanceIds`, Values is a list of Amazon EC2 instance IDs. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + EventTargetRunCommandTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -1813,8 +2471,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['EventTargetSagemakerPipelineTargetPipelineParameterListArgs']]] pipeline_parameter_lists: List of Parameter names and values for SageMaker Model Building Pipeline execution. """ + EventTargetSagemakerPipelineTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pipeline_parameter_lists=pipeline_parameter_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pipeline_parameter_lists: Optional[pulumi.Input[Sequence[pulumi.Input['EventTargetSagemakerPipelineTargetPipelineParameterListArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pipeline_parameter_lists is None and 'pipelineParameterLists' in kwargs: + pipeline_parameter_lists = kwargs['pipelineParameterLists'] + if pipeline_parameter_lists is not None: - pulumi.set(__self__, "pipeline_parameter_lists", pipeline_parameter_lists) + _setter("pipeline_parameter_lists", pipeline_parameter_lists) @property @pulumi.getter(name="pipelineParameterLists") @@ -1838,8 +2509,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of parameter to start execution of a SageMaker Model Building Pipeline. :param pulumi.Input[str] value: Value of parameter to start execution of a SageMaker Model Building Pipeline. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + EventTargetSagemakerPipelineTargetPipelineParameterListArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1873,8 +2561,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] message_group_id: The FIFO message group ID to use as the target. """ + EventTargetSqsTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_group_id=message_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_group_id is None and 'messageGroupId' in kwargs: + message_group_id = kwargs['messageGroupId'] + if message_group_id is not None: - pulumi.set(__self__, "message_group_id", message_group_id) + _setter("message_group_id", message_group_id) @property @pulumi.getter(name="messageGroupId") @@ -1898,10 +2599,27 @@ def __init__(__self__, *, :param pulumi.Input[float] availability_score_threshold: The health event threshold percentage set for availability scores. :param pulumi.Input[float] performance_score_threshold: The health event threshold percentage set for performance scores. """ + InternetMonitorHealthEventsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_score_threshold=availability_score_threshold, + performance_score_threshold=performance_score_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_score_threshold: Optional[pulumi.Input[float]] = None, + performance_score_threshold: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_score_threshold is None and 'availabilityScoreThreshold' in kwargs: + availability_score_threshold = kwargs['availabilityScoreThreshold'] + if performance_score_threshold is None and 'performanceScoreThreshold' in kwargs: + performance_score_threshold = kwargs['performanceScoreThreshold'] + if availability_score_threshold is not None: - pulumi.set(__self__, "availability_score_threshold", availability_score_threshold) + _setter("availability_score_threshold", availability_score_threshold) if performance_score_threshold is not None: - pulumi.set(__self__, "performance_score_threshold", performance_score_threshold) + _setter("performance_score_threshold", performance_score_threshold) @property @pulumi.getter(name="availabilityScoreThreshold") @@ -1932,8 +2650,21 @@ def performance_score_threshold(self, value: Optional[pulumi.Input[float]]): class InternetMonitorInternetMeasurementsLogDeliveryArgs: def __init__(__self__, *, s3_config: Optional[pulumi.Input['InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs']] = None): + InternetMonitorInternetMeasurementsLogDeliveryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_config=s3_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_config: Optional[pulumi.Input['InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_config is None and 's3Config' in kwargs: + s3_config = kwargs['s3Config'] + if s3_config is not None: - pulumi.set(__self__, "s3_config", s3_config) + _setter("s3_config", s3_config) @property @pulumi.getter(name="s3Config") @@ -1951,11 +2682,34 @@ def __init__(__self__, *, bucket_name: pulumi.Input[str], bucket_prefix: Optional[pulumi.Input[str]] = None, log_delivery_status: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "bucket_name", bucket_name) + InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + log_delivery_status=log_delivery_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + log_delivery_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if log_delivery_status is None and 'logDeliveryStatus' in kwargs: + log_delivery_status = kwargs['logDeliveryStatus'] + + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if log_delivery_status is not None: - pulumi.set(__self__, "log_delivery_status", log_delivery_status) + _setter("log_delivery_status", log_delivery_status) @property @pulumi.getter(name="bucketName") @@ -2002,15 +2756,44 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: Map of fields to use as dimensions for the metric. Up to 3 dimensions are allowed. Conflicts with `default_value`. :param pulumi.Input[str] unit: The unit to assign to the metric. If you omit this, the unit is set as `None`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "value", value) + LogMetricFilterMetricTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + namespace=namespace, + value=value, + default_value=default_value, + dimensions=dimensions, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + default_value: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + + _setter("name", name) + _setter("namespace", namespace) + _setter("value", value) if default_value is not None: - pulumi.set(__self__, "default_value", default_value) + _setter("default_value", default_value) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -2108,19 +2891,48 @@ def __init__(__self__, *, > **NOTE:** You must specify either `metric` or `expression`. Not both. """ - pulumi.set(__self__, "id", id) + MetricAlarmMetricQueryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + account_id=account_id, + expression=expression, + label=label, + metric=metric, + period=period, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + label: Optional[pulumi.Input[str]] = None, + metric: Optional[pulumi.Input['MetricAlarmMetricQueryMetricArgs']] = None, + period: Optional[pulumi.Input[int]] = None, + return_data: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric is not None: - pulumi.set(__self__, "metric", metric) + _setter("metric", metric) if period is not None: - pulumi.set(__self__, "period", period) + _setter("period", period) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -2233,15 +3045,44 @@ def __init__(__self__, *, See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). :param pulumi.Input[str] unit: The unit for this metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "period", period) - pulumi.set(__self__, "stat", stat) + MetricAlarmMetricQueryMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + period=period, + stat=stat, + dimensions=dimensions, + namespace=namespace, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + period: Optional[pulumi.Input[int]] = None, + stat: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + namespace: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if period is None: + raise TypeError("Missing 'period' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric_name", metric_name) + _setter("period", period) + _setter("stat", stat) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="metricName") @@ -2330,9 +3171,26 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: Name of the metric namespace in the filter. :param pulumi.Input[Sequence[pulumi.Input[str]]] metric_names: An array that defines the metrics you want to exclude for this metric namespace """ - pulumi.set(__self__, "namespace", namespace) + MetricStreamExcludeFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + metric_names=metric_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[pulumi.Input[str]] = None, + metric_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if metric_names is None and 'metricNames' in kwargs: + metric_names = kwargs['metricNames'] + + _setter("namespace", namespace) if metric_names is not None: - pulumi.set(__self__, "metric_names", metric_names) + _setter("metric_names", metric_names) @property @pulumi.getter @@ -2368,9 +3226,26 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: Name of the metric namespace in the filter. :param pulumi.Input[Sequence[pulumi.Input[str]]] metric_names: An array that defines the metrics you want to include for this metric namespace """ - pulumi.set(__self__, "namespace", namespace) + MetricStreamIncludeFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + metric_names=metric_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[pulumi.Input[str]] = None, + metric_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if metric_names is None and 'metricNames' in kwargs: + metric_names = kwargs['metricNames'] + + _setter("namespace", namespace) if metric_names is not None: - pulumi.set(__self__, "metric_names", metric_names) + _setter("metric_names", metric_names) @property @pulumi.getter @@ -2406,8 +3281,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] additional_statistics: The additional statistics to stream for the metrics listed in `include_metrics`. :param pulumi.Input[Sequence[pulumi.Input['MetricStreamStatisticsConfigurationIncludeMetricArgs']]] include_metrics: An array that defines the metrics that are to have additional statistics streamed. See details below. """ - pulumi.set(__self__, "additional_statistics", additional_statistics) - pulumi.set(__self__, "include_metrics", include_metrics) + MetricStreamStatisticsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_statistics=additional_statistics, + include_metrics=include_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_statistics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + include_metrics: Optional[pulumi.Input[Sequence[pulumi.Input['MetricStreamStatisticsConfigurationIncludeMetricArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_statistics is None and 'additionalStatistics' in kwargs: + additional_statistics = kwargs['additionalStatistics'] + if additional_statistics is None: + raise TypeError("Missing 'additional_statistics' argument") + if include_metrics is None and 'includeMetrics' in kwargs: + include_metrics = kwargs['includeMetrics'] + if include_metrics is None: + raise TypeError("Missing 'include_metrics' argument") + + _setter("additional_statistics", additional_statistics) + _setter("include_metrics", include_metrics) @property @pulumi.getter(name="additionalStatistics") @@ -2443,8 +3339,27 @@ def __init__(__self__, *, :param pulumi.Input[str] metric_name: The name of the metric. :param pulumi.Input[str] namespace: Name of the metric namespace in the filter. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + MetricStreamStatisticsConfigurationIncludeMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) @property @pulumi.getter(name="metricName") @@ -2482,10 +3397,31 @@ def __init__(__self__, *, :param 'GetLogDataProtectionPolicyDocumentStatementOperationArgs' operation: Configures the data protection operation applied by this statement. :param str sid: Name of this statement. """ - pulumi.set(__self__, "data_identifiers", data_identifiers) - pulumi.set(__self__, "operation", operation) + GetLogDataProtectionPolicyDocumentStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_identifiers=data_identifiers, + operation=operation, + sid=sid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_identifiers: Optional[Sequence[str]] = None, + operation: Optional['GetLogDataProtectionPolicyDocumentStatementOperationArgs'] = None, + sid: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_identifiers is None and 'dataIdentifiers' in kwargs: + data_identifiers = kwargs['dataIdentifiers'] + if data_identifiers is None: + raise TypeError("Missing 'data_identifiers' argument") + if operation is None: + raise TypeError("Missing 'operation' argument") + + _setter("data_identifiers", data_identifiers) + _setter("operation", operation) if sid is not None: - pulumi.set(__self__, "sid", sid) + _setter("sid", sid) @property @pulumi.getter(name="dataIdentifiers") @@ -2535,10 +3471,23 @@ def __init__(__self__, *, > Every policy statement must specify exactly one operation. """ + GetLogDataProtectionPolicyDocumentStatementOperationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit=audit, + deidentify=deidentify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit: Optional['GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs'] = None, + deidentify: Optional['GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit is not None: - pulumi.set(__self__, "audit", audit) + _setter("audit", audit) if deidentify is not None: - pulumi.set(__self__, "deidentify", deidentify) + _setter("deidentify", deidentify) @property @pulumi.getter @@ -2574,7 +3523,22 @@ def __init__(__self__, *, """ :param 'GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs' findings_destination: Configures destinations to send audit findings to. """ - pulumi.set(__self__, "findings_destination", findings_destination) + GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + findings_destination=findings_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + findings_destination: Optional['GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if findings_destination is None and 'findingsDestination' in kwargs: + findings_destination = kwargs['findingsDestination'] + if findings_destination is None: + raise TypeError("Missing 'findings_destination' argument") + + _setter("findings_destination", findings_destination) @property @pulumi.getter(name="findingsDestination") @@ -2600,12 +3564,29 @@ def __init__(__self__, *, :param 'GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs' firehose: Configures Kinesis Firehose as a findings destination. :param 'GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args' s3: Configures S3 as a findings destination. """ + GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + firehose=firehose, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional['GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs'] = None, + firehose: Optional['GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs'] = None, + s3: Optional['GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -2651,7 +3632,22 @@ def __init__(__self__, *, """ :param str log_group: Name of the CloudWatch Log Group to send findings to. """ - pulumi.set(__self__, "log_group", log_group) + GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + if log_group is None: + raise TypeError("Missing 'log_group' argument") + + _setter("log_group", log_group) @property @pulumi.getter(name="logGroup") @@ -2673,7 +3669,22 @@ def __init__(__self__, *, """ :param str delivery_stream: Name of the Kinesis Firehose Delivery Stream to send findings to. """ - pulumi.set(__self__, "delivery_stream", delivery_stream) + GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream=delivery_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream is None and 'deliveryStream' in kwargs: + delivery_stream = kwargs['deliveryStream'] + if delivery_stream is None: + raise TypeError("Missing 'delivery_stream' argument") + + _setter("delivery_stream", delivery_stream) @property @pulumi.getter(name="deliveryStream") @@ -2695,7 +3706,20 @@ def __init__(__self__, *, """ :param str bucket: Name of the S3 Bucket to send findings to. """ - pulumi.set(__self__, "bucket", bucket) + GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) @property @pulumi.getter @@ -2717,7 +3741,22 @@ def __init__(__self__, *, """ :param 'GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs' mask_config: An empty object that configures masking. """ - pulumi.set(__self__, "mask_config", mask_config) + GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mask_config=mask_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mask_config: Optional['GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mask_config is None and 'maskConfig' in kwargs: + mask_config = kwargs['maskConfig'] + if mask_config is None: + raise TypeError("Missing 'mask_config' argument") + + _setter("mask_config", mask_config) @property @pulumi.getter(name="maskConfig") @@ -2736,5 +3775,12 @@ def mask_config(self, value: 'GetLogDataProtectionPolicyDocumentStatementOperati class GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + diff --git a/sdk/python/pulumi_aws/cloudwatch/composite_alarm.py b/sdk/python/pulumi_aws/cloudwatch/composite_alarm.py index b4f72ee6525..fc55111e2d0 100644 --- a/sdk/python/pulumi_aws/cloudwatch/composite_alarm.py +++ b/sdk/python/pulumi_aws/cloudwatch/composite_alarm.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,22 +37,69 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] ok_actions: The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "alarm_name", alarm_name) - pulumi.set(__self__, "alarm_rule", alarm_rule) + CompositeAlarmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_name=alarm_name, + alarm_rule=alarm_rule, + actions_enabled=actions_enabled, + actions_suppressor=actions_suppressor, + alarm_actions=alarm_actions, + alarm_description=alarm_description, + insufficient_data_actions=insufficient_data_actions, + ok_actions=ok_actions, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_name: Optional[pulumi.Input[str]] = None, + alarm_rule: Optional[pulumi.Input[str]] = None, + actions_enabled: Optional[pulumi.Input[bool]] = None, + actions_suppressor: Optional[pulumi.Input['CompositeAlarmActionsSuppressorArgs']] = None, + alarm_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + alarm_description: Optional[pulumi.Input[str]] = None, + insufficient_data_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_name is None and 'alarmName' in kwargs: + alarm_name = kwargs['alarmName'] + if alarm_name is None: + raise TypeError("Missing 'alarm_name' argument") + if alarm_rule is None and 'alarmRule' in kwargs: + alarm_rule = kwargs['alarmRule'] + if alarm_rule is None: + raise TypeError("Missing 'alarm_rule' argument") + if actions_enabled is None and 'actionsEnabled' in kwargs: + actions_enabled = kwargs['actionsEnabled'] + if actions_suppressor is None and 'actionsSuppressor' in kwargs: + actions_suppressor = kwargs['actionsSuppressor'] + if alarm_actions is None and 'alarmActions' in kwargs: + alarm_actions = kwargs['alarmActions'] + if alarm_description is None and 'alarmDescription' in kwargs: + alarm_description = kwargs['alarmDescription'] + if insufficient_data_actions is None and 'insufficientDataActions' in kwargs: + insufficient_data_actions = kwargs['insufficientDataActions'] + if ok_actions is None and 'okActions' in kwargs: + ok_actions = kwargs['okActions'] + + _setter("alarm_name", alarm_name) + _setter("alarm_rule", alarm_rule) if actions_enabled is not None: - pulumi.set(__self__, "actions_enabled", actions_enabled) + _setter("actions_enabled", actions_enabled) if actions_suppressor is not None: - pulumi.set(__self__, "actions_suppressor", actions_suppressor) + _setter("actions_suppressor", actions_suppressor) if alarm_actions is not None: - pulumi.set(__self__, "alarm_actions", alarm_actions) + _setter("alarm_actions", alarm_actions) if alarm_description is not None: - pulumi.set(__self__, "alarm_description", alarm_description) + _setter("alarm_description", alarm_description) if insufficient_data_actions is not None: - pulumi.set(__self__, "insufficient_data_actions", insufficient_data_actions) + _setter("insufficient_data_actions", insufficient_data_actions) if ok_actions is not None: - pulumi.set(__self__, "ok_actions", ok_actions) + _setter("ok_actions", ok_actions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="alarmName") @@ -191,31 +238,80 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to associate with the alarm. Up to 50 tags are allowed. .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. """ + _CompositeAlarmState._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions_enabled=actions_enabled, + actions_suppressor=actions_suppressor, + alarm_actions=alarm_actions, + alarm_description=alarm_description, + alarm_name=alarm_name, + alarm_rule=alarm_rule, + arn=arn, + insufficient_data_actions=insufficient_data_actions, + ok_actions=ok_actions, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions_enabled: Optional[pulumi.Input[bool]] = None, + actions_suppressor: Optional[pulumi.Input['CompositeAlarmActionsSuppressorArgs']] = None, + alarm_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + alarm_description: Optional[pulumi.Input[str]] = None, + alarm_name: Optional[pulumi.Input[str]] = None, + alarm_rule: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + insufficient_data_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions_enabled is None and 'actionsEnabled' in kwargs: + actions_enabled = kwargs['actionsEnabled'] + if actions_suppressor is None and 'actionsSuppressor' in kwargs: + actions_suppressor = kwargs['actionsSuppressor'] + if alarm_actions is None and 'alarmActions' in kwargs: + alarm_actions = kwargs['alarmActions'] + if alarm_description is None and 'alarmDescription' in kwargs: + alarm_description = kwargs['alarmDescription'] + if alarm_name is None and 'alarmName' in kwargs: + alarm_name = kwargs['alarmName'] + if alarm_rule is None and 'alarmRule' in kwargs: + alarm_rule = kwargs['alarmRule'] + if insufficient_data_actions is None and 'insufficientDataActions' in kwargs: + insufficient_data_actions = kwargs['insufficientDataActions'] + if ok_actions is None and 'okActions' in kwargs: + ok_actions = kwargs['okActions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if actions_enabled is not None: - pulumi.set(__self__, "actions_enabled", actions_enabled) + _setter("actions_enabled", actions_enabled) if actions_suppressor is not None: - pulumi.set(__self__, "actions_suppressor", actions_suppressor) + _setter("actions_suppressor", actions_suppressor) if alarm_actions is not None: - pulumi.set(__self__, "alarm_actions", alarm_actions) + _setter("alarm_actions", alarm_actions) if alarm_description is not None: - pulumi.set(__self__, "alarm_description", alarm_description) + _setter("alarm_description", alarm_description) if alarm_name is not None: - pulumi.set(__self__, "alarm_name", alarm_name) + _setter("alarm_name", alarm_name) if alarm_rule is not None: - pulumi.set(__self__, "alarm_rule", alarm_rule) + _setter("alarm_rule", alarm_rule) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if insufficient_data_actions is not None: - pulumi.set(__self__, "insufficient_data_actions", insufficient_data_actions) + _setter("insufficient_data_actions", insufficient_data_actions) if ok_actions is not None: - pulumi.set(__self__, "ok_actions", ok_actions) + _setter("ok_actions", ok_actions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="actionsEnabled") @@ -464,6 +560,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CompositeAlarmArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -488,6 +588,7 @@ def _internal_init(__self__, __props__ = CompositeAlarmArgs.__new__(CompositeAlarmArgs) __props__.__dict__["actions_enabled"] = actions_enabled + actions_suppressor = _utilities.configure(actions_suppressor, CompositeAlarmActionsSuppressorArgs, True) __props__.__dict__["actions_suppressor"] = actions_suppressor __props__.__dict__["alarm_actions"] = alarm_actions __props__.__dict__["alarm_description"] = alarm_description diff --git a/sdk/python/pulumi_aws/cloudwatch/dashboard.py b/sdk/python/pulumi_aws/cloudwatch/dashboard.py index 1908bae0889..8a90cef28c8 100644 --- a/sdk/python/pulumi_aws/cloudwatch/dashboard.py +++ b/sdk/python/pulumi_aws/cloudwatch/dashboard.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DashboardArgs', 'Dashboard'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] dashboard_body: The detailed information about the dashboard, including what widgets are included and their location on the dashboard. You can read more about the body structure in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html). :param pulumi.Input[str] dashboard_name: The name of the dashboard. """ - pulumi.set(__self__, "dashboard_body", dashboard_body) - pulumi.set(__self__, "dashboard_name", dashboard_name) + DashboardArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dashboard_body=dashboard_body, + dashboard_name=dashboard_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dashboard_body: Optional[pulumi.Input[str]] = None, + dashboard_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dashboard_body is None and 'dashboardBody' in kwargs: + dashboard_body = kwargs['dashboardBody'] + if dashboard_body is None: + raise TypeError("Missing 'dashboard_body' argument") + if dashboard_name is None and 'dashboardName' in kwargs: + dashboard_name = kwargs['dashboardName'] + if dashboard_name is None: + raise TypeError("Missing 'dashboard_name' argument") + + _setter("dashboard_body", dashboard_body) + _setter("dashboard_name", dashboard_name) @property @pulumi.getter(name="dashboardBody") @@ -61,12 +82,33 @@ def __init__(__self__, *, :param pulumi.Input[str] dashboard_body: The detailed information about the dashboard, including what widgets are included and their location on the dashboard. You can read more about the body structure in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html). :param pulumi.Input[str] dashboard_name: The name of the dashboard. """ + _DashboardState._configure( + lambda key, value: pulumi.set(__self__, key, value), + dashboard_arn=dashboard_arn, + dashboard_body=dashboard_body, + dashboard_name=dashboard_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dashboard_arn: Optional[pulumi.Input[str]] = None, + dashboard_body: Optional[pulumi.Input[str]] = None, + dashboard_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dashboard_arn is None and 'dashboardArn' in kwargs: + dashboard_arn = kwargs['dashboardArn'] + if dashboard_body is None and 'dashboardBody' in kwargs: + dashboard_body = kwargs['dashboardBody'] + if dashboard_name is None and 'dashboardName' in kwargs: + dashboard_name = kwargs['dashboardName'] + if dashboard_arn is not None: - pulumi.set(__self__, "dashboard_arn", dashboard_arn) + _setter("dashboard_arn", dashboard_arn) if dashboard_body is not None: - pulumi.set(__self__, "dashboard_body", dashboard_body) + _setter("dashboard_body", dashboard_body) if dashboard_name is not None: - pulumi.set(__self__, "dashboard_name", dashboard_name) + _setter("dashboard_name", dashboard_name) @property @pulumi.getter(name="dashboardArn") @@ -244,6 +286,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DashboardArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/event_api_destination.py b/sdk/python/pulumi_aws/cloudwatch/event_api_destination.py index 1510cc82371..260182a68b8 100644 --- a/sdk/python/pulumi_aws/cloudwatch/event_api_destination.py +++ b/sdk/python/pulumi_aws/cloudwatch/event_api_destination.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventApiDestinationArgs', 'EventApiDestination'] @@ -29,15 +29,50 @@ def __init__(__self__, *, :param pulumi.Input[int] invocation_rate_limit_per_second: Enter the maximum number of invocations per second to allow for this destination. Enter a value greater than 0 (default 300). :param pulumi.Input[str] name: The name of the new API Destination. The name must be unique for your account. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. """ - pulumi.set(__self__, "connection_arn", connection_arn) - pulumi.set(__self__, "http_method", http_method) - pulumi.set(__self__, "invocation_endpoint", invocation_endpoint) + EventApiDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_arn=connection_arn, + http_method=http_method, + invocation_endpoint=invocation_endpoint, + description=description, + invocation_rate_limit_per_second=invocation_rate_limit_per_second, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_arn: Optional[pulumi.Input[str]] = None, + http_method: Optional[pulumi.Input[str]] = None, + invocation_endpoint: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + invocation_rate_limit_per_second: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_arn is None and 'connectionArn' in kwargs: + connection_arn = kwargs['connectionArn'] + if connection_arn is None: + raise TypeError("Missing 'connection_arn' argument") + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if http_method is None: + raise TypeError("Missing 'http_method' argument") + if invocation_endpoint is None and 'invocationEndpoint' in kwargs: + invocation_endpoint = kwargs['invocationEndpoint'] + if invocation_endpoint is None: + raise TypeError("Missing 'invocation_endpoint' argument") + if invocation_rate_limit_per_second is None and 'invocationRateLimitPerSecond' in kwargs: + invocation_rate_limit_per_second = kwargs['invocationRateLimitPerSecond'] + + _setter("connection_arn", connection_arn) + _setter("http_method", http_method) + _setter("invocation_endpoint", invocation_endpoint) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if invocation_rate_limit_per_second is not None: - pulumi.set(__self__, "invocation_rate_limit_per_second", invocation_rate_limit_per_second) + _setter("invocation_rate_limit_per_second", invocation_rate_limit_per_second) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="connectionArn") @@ -132,20 +167,51 @@ def __init__(__self__, *, :param pulumi.Input[int] invocation_rate_limit_per_second: Enter the maximum number of invocations per second to allow for this destination. Enter a value greater than 0 (default 300). :param pulumi.Input[str] name: The name of the new API Destination. The name must be unique for your account. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. """ + _EventApiDestinationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + connection_arn=connection_arn, + description=description, + http_method=http_method, + invocation_endpoint=invocation_endpoint, + invocation_rate_limit_per_second=invocation_rate_limit_per_second, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + connection_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + http_method: Optional[pulumi.Input[str]] = None, + invocation_endpoint: Optional[pulumi.Input[str]] = None, + invocation_rate_limit_per_second: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_arn is None and 'connectionArn' in kwargs: + connection_arn = kwargs['connectionArn'] + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if invocation_endpoint is None and 'invocationEndpoint' in kwargs: + invocation_endpoint = kwargs['invocationEndpoint'] + if invocation_rate_limit_per_second is None and 'invocationRateLimitPerSecond' in kwargs: + invocation_rate_limit_per_second = kwargs['invocationRateLimitPerSecond'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if connection_arn is not None: - pulumi.set(__self__, "connection_arn", connection_arn) + _setter("connection_arn", connection_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if invocation_endpoint is not None: - pulumi.set(__self__, "invocation_endpoint", invocation_endpoint) + _setter("invocation_endpoint", invocation_endpoint) if invocation_rate_limit_per_second is not None: - pulumi.set(__self__, "invocation_rate_limit_per_second", invocation_rate_limit_per_second) + _setter("invocation_rate_limit_per_second", invocation_rate_limit_per_second) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -323,6 +389,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventApiDestinationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/event_archive.py b/sdk/python/pulumi_aws/cloudwatch/event_archive.py index a234253bb00..df69545e425 100644 --- a/sdk/python/pulumi_aws/cloudwatch/event_archive.py +++ b/sdk/python/pulumi_aws/cloudwatch/event_archive.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventArchiveArgs', 'EventArchive'] @@ -27,15 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the new event archive. The archive name cannot exceed 48 characters. :param pulumi.Input[int] retention_days: The maximum number of days to retain events in the new event archive. By default, it archives indefinitely. """ - pulumi.set(__self__, "event_source_arn", event_source_arn) + EventArchiveArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_source_arn=event_source_arn, + description=description, + event_pattern=event_pattern, + name=name, + retention_days=retention_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_source_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + event_pattern: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + retention_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_source_arn is None and 'eventSourceArn' in kwargs: + event_source_arn = kwargs['eventSourceArn'] + if event_source_arn is None: + raise TypeError("Missing 'event_source_arn' argument") + if event_pattern is None and 'eventPattern' in kwargs: + event_pattern = kwargs['eventPattern'] + if retention_days is None and 'retentionDays' in kwargs: + retention_days = kwargs['retentionDays'] + + _setter("event_source_arn", event_source_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if event_pattern is not None: - pulumi.set(__self__, "event_pattern", event_pattern) + _setter("event_pattern", event_pattern) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if retention_days is not None: - pulumi.set(__self__, "retention_days", retention_days) + _setter("retention_days", retention_days) @property @pulumi.getter(name="eventSourceArn") @@ -116,18 +143,45 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the new event archive. The archive name cannot exceed 48 characters. :param pulumi.Input[int] retention_days: The maximum number of days to retain events in the new event archive. By default, it archives indefinitely. """ + _EventArchiveState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + event_pattern=event_pattern, + event_source_arn=event_source_arn, + name=name, + retention_days=retention_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + event_pattern: Optional[pulumi.Input[str]] = None, + event_source_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + retention_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_pattern is None and 'eventPattern' in kwargs: + event_pattern = kwargs['eventPattern'] + if event_source_arn is None and 'eventSourceArn' in kwargs: + event_source_arn = kwargs['eventSourceArn'] + if retention_days is None and 'retentionDays' in kwargs: + retention_days = kwargs['retentionDays'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if event_pattern is not None: - pulumi.set(__self__, "event_pattern", event_pattern) + _setter("event_pattern", event_pattern) if event_source_arn is not None: - pulumi.set(__self__, "event_source_arn", event_source_arn) + _setter("event_source_arn", event_source_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if retention_days is not None: - pulumi.set(__self__, "retention_days", retention_days) + _setter("retention_days", retention_days) @property @pulumi.getter @@ -315,6 +369,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventArchiveArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/event_bus.py b/sdk/python/pulumi_aws/cloudwatch/event_bus.py index 1d52b62a110..76593b39547 100644 --- a/sdk/python/pulumi_aws/cloudwatch/event_bus.py +++ b/sdk/python/pulumi_aws/cloudwatch/event_bus.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventBusArgs', 'EventBus'] @@ -23,12 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the new event bus. The names of custom event buses can't contain the / character. To create a partner event bus, ensure the `name` matches the `event_source_name`. :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. """ + EventBusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_source_name=event_source_name, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_source_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_source_name is None and 'eventSourceName' in kwargs: + event_source_name = kwargs['eventSourceName'] + if event_source_name is not None: - pulumi.set(__self__, "event_source_name", event_source_name) + _setter("event_source_name", event_source_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="eventSourceName") @@ -83,19 +100,42 @@ def __init__(__self__, *, :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. """ + _EventBusState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + event_source_name=event_source_name, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + event_source_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_source_name is None and 'eventSourceName' in kwargs: + event_source_name = kwargs['eventSourceName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if event_source_name is not None: - pulumi.set(__self__, "event_source_name", event_source_name) + _setter("event_source_name", event_source_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -252,6 +292,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventBusArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/event_bus_policy.py b/sdk/python/pulumi_aws/cloudwatch/event_bus_policy.py index abc2136c804..fed2d5774ed 100644 --- a/sdk/python/pulumi_aws/cloudwatch/event_bus_policy.py +++ b/sdk/python/pulumi_aws/cloudwatch/event_bus_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventBusPolicyArgs', 'EventBusPolicy'] @@ -22,9 +22,26 @@ def __init__(__self__, *, :param pulumi.Input[str] event_bus_name: The name of the event bus to set the permissions on. If you omit this, the permissions are set on the `default` event bus. """ - pulumi.set(__self__, "policy", policy) + EventBusPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + event_bus_name=event_bus_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + event_bus_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if event_bus_name is None and 'eventBusName' in kwargs: + event_bus_name = kwargs['eventBusName'] + + _setter("policy", policy) if event_bus_name is not None: - pulumi.set(__self__, "event_bus_name", event_bus_name) + _setter("event_bus_name", event_bus_name) @property @pulumi.getter @@ -63,10 +80,25 @@ def __init__(__self__, *, If you omit this, the permissions are set on the `default` event bus. :param pulumi.Input[str] policy: The text of the policy. """ + _EventBusPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_bus_name=event_bus_name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_bus_name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_bus_name is None and 'eventBusName' in kwargs: + event_bus_name = kwargs['eventBusName'] + if event_bus_name is not None: - pulumi.set(__self__, "event_bus_name", event_bus_name) + _setter("event_bus_name", event_bus_name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="eventBusName") @@ -354,6 +386,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventBusPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/event_connection.py b/sdk/python/pulumi_aws/cloudwatch/event_connection.py index 490a2eee77b..16e587faeb4 100644 --- a/sdk/python/pulumi_aws/cloudwatch/event_connection.py +++ b/sdk/python/pulumi_aws/cloudwatch/event_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,37 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Enter a description for the connection. Maximum of 512 characters. :param pulumi.Input[str] name: The name of the new connection. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. """ - pulumi.set(__self__, "auth_parameters", auth_parameters) - pulumi.set(__self__, "authorization_type", authorization_type) + EventConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_parameters=auth_parameters, + authorization_type=authorization_type, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_parameters: Optional[pulumi.Input['EventConnectionAuthParametersArgs']] = None, + authorization_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_parameters is None and 'authParameters' in kwargs: + auth_parameters = kwargs['authParameters'] + if auth_parameters is None: + raise TypeError("Missing 'auth_parameters' argument") + if authorization_type is None and 'authorizationType' in kwargs: + authorization_type = kwargs['authorizationType'] + if authorization_type is None: + raise TypeError("Missing 'authorization_type' argument") + + _setter("auth_parameters", auth_parameters) + _setter("authorization_type", authorization_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="authParameters") @@ -101,18 +126,45 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the new connection. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. :param pulumi.Input[str] secret_arn: The Amazon Resource Name (ARN) of the secret created from the authorization parameters specified for the connection. """ + _EventConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auth_parameters=auth_parameters, + authorization_type=authorization_type, + description=description, + name=name, + secret_arn=secret_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auth_parameters: Optional[pulumi.Input['EventConnectionAuthParametersArgs']] = None, + authorization_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_parameters is None and 'authParameters' in kwargs: + auth_parameters = kwargs['authParameters'] + if authorization_type is None and 'authorizationType' in kwargs: + authorization_type = kwargs['authorizationType'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auth_parameters is not None: - pulumi.set(__self__, "auth_parameters", auth_parameters) + _setter("auth_parameters", auth_parameters) if authorization_type is not None: - pulumi.set(__self__, "authorization_type", authorization_type) + _setter("authorization_type", authorization_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) @property @pulumi.getter @@ -312,6 +364,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -330,6 +386,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = EventConnectionArgs.__new__(EventConnectionArgs) + auth_parameters = _utilities.configure(auth_parameters, EventConnectionAuthParametersArgs, True) if auth_parameters is None and not opts.urn: raise TypeError("Missing required property 'auth_parameters'") __props__.__dict__["auth_parameters"] = auth_parameters diff --git a/sdk/python/pulumi_aws/cloudwatch/event_endpoint.py b/sdk/python/pulumi_aws/cloudwatch/event_endpoint.py index 36684fec81c..2ed2b9ca9ba 100644 --- a/sdk/python/pulumi_aws/cloudwatch/event_endpoint.py +++ b/sdk/python/pulumi_aws/cloudwatch/event_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,49 @@ def __init__(__self__, *, :param pulumi.Input['EventEndpointReplicationConfigArgs'] replication_config: Parameters used for replication. Documented below. :param pulumi.Input[str] role_arn: The ARN of the IAM role used for replication between event buses. """ - pulumi.set(__self__, "event_buses", event_buses) - pulumi.set(__self__, "routing_config", routing_config) + EventEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_buses=event_buses, + routing_config=routing_config, + description=description, + name=name, + replication_config=replication_config, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_buses: Optional[pulumi.Input[Sequence[pulumi.Input['EventEndpointEventBusArgs']]]] = None, + routing_config: Optional[pulumi.Input['EventEndpointRoutingConfigArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + replication_config: Optional[pulumi.Input['EventEndpointReplicationConfigArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_buses is None and 'eventBuses' in kwargs: + event_buses = kwargs['eventBuses'] + if event_buses is None: + raise TypeError("Missing 'event_buses' argument") + if routing_config is None and 'routingConfig' in kwargs: + routing_config = kwargs['routingConfig'] + if routing_config is None: + raise TypeError("Missing 'routing_config' argument") + if replication_config is None and 'replicationConfig' in kwargs: + replication_config = kwargs['replicationConfig'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("event_buses", event_buses) + _setter("routing_config", routing_config) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if replication_config is not None: - pulumi.set(__self__, "replication_config", replication_config) + _setter("replication_config", replication_config) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="eventBuses") @@ -137,22 +170,57 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the IAM role used for replication between event buses. :param pulumi.Input['EventEndpointRoutingConfigArgs'] routing_config: Parameters used for routing, including the health check and secondary Region. Documented below. """ + _EventEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + endpoint_url=endpoint_url, + event_buses=event_buses, + name=name, + replication_config=replication_config, + role_arn=role_arn, + routing_config=routing_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + endpoint_url: Optional[pulumi.Input[str]] = None, + event_buses: Optional[pulumi.Input[Sequence[pulumi.Input['EventEndpointEventBusArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + replication_config: Optional[pulumi.Input['EventEndpointReplicationConfigArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + routing_config: Optional[pulumi.Input['EventEndpointRoutingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_url is None and 'endpointUrl' in kwargs: + endpoint_url = kwargs['endpointUrl'] + if event_buses is None and 'eventBuses' in kwargs: + event_buses = kwargs['eventBuses'] + if replication_config is None and 'replicationConfig' in kwargs: + replication_config = kwargs['replicationConfig'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if routing_config is None and 'routingConfig' in kwargs: + routing_config = kwargs['routingConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if endpoint_url is not None: - pulumi.set(__self__, "endpoint_url", endpoint_url) + _setter("endpoint_url", endpoint_url) if event_buses is not None: - pulumi.set(__self__, "event_buses", event_buses) + _setter("event_buses", event_buses) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if replication_config is not None: - pulumi.set(__self__, "replication_config", replication_config) + _setter("replication_config", replication_config) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if routing_config is not None: - pulumi.set(__self__, "routing_config", routing_config) + _setter("routing_config", routing_config) @property @pulumi.getter @@ -376,6 +444,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -401,8 +473,10 @@ def _internal_init(__self__, raise TypeError("Missing required property 'event_buses'") __props__.__dict__["event_buses"] = event_buses __props__.__dict__["name"] = name + replication_config = _utilities.configure(replication_config, EventEndpointReplicationConfigArgs, True) __props__.__dict__["replication_config"] = replication_config __props__.__dict__["role_arn"] = role_arn + routing_config = _utilities.configure(routing_config, EventEndpointRoutingConfigArgs, True) if routing_config is None and not opts.urn: raise TypeError("Missing required property 'routing_config'") __props__.__dict__["routing_config"] = routing_config diff --git a/sdk/python/pulumi_aws/cloudwatch/event_permission.py b/sdk/python/pulumi_aws/cloudwatch/event_permission.py index a1f86d91c21..ada65511f7f 100644 --- a/sdk/python/pulumi_aws/cloudwatch/event_permission.py +++ b/sdk/python/pulumi_aws/cloudwatch/event_permission.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -30,14 +30,41 @@ def __init__(__self__, *, :param pulumi.Input[str] event_bus_name: The name of the event bus to set the permissions on. If you omit this, the permissions are set on the `default` event bus. """ - pulumi.set(__self__, "principal", principal) - pulumi.set(__self__, "statement_id", statement_id) + EventPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + principal=principal, + statement_id=statement_id, + action=action, + condition=condition, + event_bus_name=event_bus_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + principal: Optional[pulumi.Input[str]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + action: Optional[pulumi.Input[str]] = None, + condition: Optional[pulumi.Input['EventPermissionConditionArgs']] = None, + event_bus_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if principal is None: + raise TypeError("Missing 'principal' argument") + if statement_id is None and 'statementId' in kwargs: + statement_id = kwargs['statementId'] + if statement_id is None: + raise TypeError("Missing 'statement_id' argument") + if event_bus_name is None and 'eventBusName' in kwargs: + event_bus_name = kwargs['eventBusName'] + + _setter("principal", principal) + _setter("statement_id", statement_id) if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if condition is not None: - pulumi.set(__self__, "condition", condition) + _setter("condition", condition) if event_bus_name is not None: - pulumi.set(__self__, "event_bus_name", event_bus_name) + _setter("event_bus_name", event_bus_name) @property @pulumi.getter @@ -118,16 +145,39 @@ def __init__(__self__, *, :param pulumi.Input[str] principal: The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify `*` to permit any account to put events to your default event bus, optionally limited by `condition`. :param pulumi.Input[str] statement_id: An identifier string for the external account that you are granting permissions to. """ + _EventPermissionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + condition=condition, + event_bus_name=event_bus_name, + principal=principal, + statement_id=statement_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + condition: Optional[pulumi.Input['EventPermissionConditionArgs']] = None, + event_bus_name: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_bus_name is None and 'eventBusName' in kwargs: + event_bus_name = kwargs['eventBusName'] + if statement_id is None and 'statementId' in kwargs: + statement_id = kwargs['statementId'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if condition is not None: - pulumi.set(__self__, "condition", condition) + _setter("condition", condition) if event_bus_name is not None: - pulumi.set(__self__, "event_bus_name", event_bus_name) + _setter("event_bus_name", event_bus_name) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if statement_id is not None: - pulumi.set(__self__, "statement_id", statement_id) + _setter("statement_id", statement_id) @property @pulumi.getter @@ -311,6 +361,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventPermissionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -331,6 +385,7 @@ def _internal_init(__self__, __props__ = EventPermissionArgs.__new__(EventPermissionArgs) __props__.__dict__["action"] = action + condition = _utilities.configure(condition, EventPermissionConditionArgs, True) __props__.__dict__["condition"] = condition __props__.__dict__["event_bus_name"] = event_bus_name if principal is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/cloudwatch/event_rule.py b/sdk/python/pulumi_aws/cloudwatch/event_rule.py index 65192460e4f..1ab5176ae4b 100644 --- a/sdk/python/pulumi_aws/cloudwatch/event_rule.py +++ b/sdk/python/pulumi_aws/cloudwatch/event_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventRuleArgs', 'EventRule'] @@ -36,24 +36,63 @@ def __init__(__self__, *, :param pulumi.Input[str] schedule_expression: The scheduling expression. For example, `cron(0 20 * * ? *)` or `rate(5 minutes)`. At least one of `schedule_expression` or `event_pattern` is required. Can only be used on the default event bus. For more information, refer to the AWS documentation [Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html). :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. """ + EventRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + event_bus_name=event_bus_name, + event_pattern=event_pattern, + is_enabled=is_enabled, + name=name, + name_prefix=name_prefix, + role_arn=role_arn, + schedule_expression=schedule_expression, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + event_bus_name: Optional[pulumi.Input[str]] = None, + event_pattern: Optional[pulumi.Input[str]] = None, + is_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + schedule_expression: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_bus_name is None and 'eventBusName' in kwargs: + event_bus_name = kwargs['eventBusName'] + if event_pattern is None and 'eventPattern' in kwargs: + event_pattern = kwargs['eventPattern'] + if is_enabled is None and 'isEnabled' in kwargs: + is_enabled = kwargs['isEnabled'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if event_bus_name is not None: - pulumi.set(__self__, "event_bus_name", event_bus_name) + _setter("event_bus_name", event_bus_name) if event_pattern is not None: - pulumi.set(__self__, "event_pattern", event_pattern) + _setter("event_pattern", event_pattern) if is_enabled is not None: - pulumi.set(__self__, "is_enabled", is_enabled) + _setter("is_enabled", is_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if schedule_expression is not None: - pulumi.set(__self__, "schedule_expression", schedule_expression) + _setter("schedule_expression", schedule_expression) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -194,31 +233,76 @@ def __init__(__self__, *, :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. """ + _EventRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + event_bus_name=event_bus_name, + event_pattern=event_pattern, + is_enabled=is_enabled, + name=name, + name_prefix=name_prefix, + role_arn=role_arn, + schedule_expression=schedule_expression, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + event_bus_name: Optional[pulumi.Input[str]] = None, + event_pattern: Optional[pulumi.Input[str]] = None, + is_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + schedule_expression: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_bus_name is None and 'eventBusName' in kwargs: + event_bus_name = kwargs['eventBusName'] + if event_pattern is None and 'eventPattern' in kwargs: + event_pattern = kwargs['eventPattern'] + if is_enabled is None and 'isEnabled' in kwargs: + is_enabled = kwargs['isEnabled'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if event_bus_name is not None: - pulumi.set(__self__, "event_bus_name", event_bus_name) + _setter("event_bus_name", event_bus_name) if event_pattern is not None: - pulumi.set(__self__, "event_pattern", event_pattern) + _setter("event_pattern", event_pattern) if is_enabled is not None: - pulumi.set(__self__, "is_enabled", is_enabled) + _setter("is_enabled", is_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if schedule_expression is not None: - pulumi.set(__self__, "schedule_expression", schedule_expression) + _setter("schedule_expression", schedule_expression) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -487,6 +571,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/event_target.py b/sdk/python/pulumi_aws/cloudwatch/event_target.py index cbef95b2665..93f24c92f02 100644 --- a/sdk/python/pulumi_aws/cloudwatch/event_target.py +++ b/sdk/python/pulumi_aws/cloudwatch/event_target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -58,40 +58,119 @@ def __init__(__self__, *, :param pulumi.Input['EventTargetSqsTargetArgs'] sqs_target: Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed. :param pulumi.Input[str] target_id: The unique target assignment ID. If missing, will generate a random, unique id. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "rule", rule) + EventTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + rule=rule, + batch_target=batch_target, + dead_letter_config=dead_letter_config, + ecs_target=ecs_target, + event_bus_name=event_bus_name, + http_target=http_target, + input=input, + input_path=input_path, + input_transformer=input_transformer, + kinesis_target=kinesis_target, + redshift_target=redshift_target, + retry_policy=retry_policy, + role_arn=role_arn, + run_command_targets=run_command_targets, + sagemaker_pipeline_target=sagemaker_pipeline_target, + sqs_target=sqs_target, + target_id=target_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + rule: Optional[pulumi.Input[str]] = None, + batch_target: Optional[pulumi.Input['EventTargetBatchTargetArgs']] = None, + dead_letter_config: Optional[pulumi.Input['EventTargetDeadLetterConfigArgs']] = None, + ecs_target: Optional[pulumi.Input['EventTargetEcsTargetArgs']] = None, + event_bus_name: Optional[pulumi.Input[str]] = None, + http_target: Optional[pulumi.Input['EventTargetHttpTargetArgs']] = None, + input: Optional[pulumi.Input[str]] = None, + input_path: Optional[pulumi.Input[str]] = None, + input_transformer: Optional[pulumi.Input['EventTargetInputTransformerArgs']] = None, + kinesis_target: Optional[pulumi.Input['EventTargetKinesisTargetArgs']] = None, + redshift_target: Optional[pulumi.Input['EventTargetRedshiftTargetArgs']] = None, + retry_policy: Optional[pulumi.Input['EventTargetRetryPolicyArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + run_command_targets: Optional[pulumi.Input[Sequence[pulumi.Input['EventTargetRunCommandTargetArgs']]]] = None, + sagemaker_pipeline_target: Optional[pulumi.Input['EventTargetSagemakerPipelineTargetArgs']] = None, + sqs_target: Optional[pulumi.Input['EventTargetSqsTargetArgs']] = None, + target_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if rule is None: + raise TypeError("Missing 'rule' argument") + if batch_target is None and 'batchTarget' in kwargs: + batch_target = kwargs['batchTarget'] + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if ecs_target is None and 'ecsTarget' in kwargs: + ecs_target = kwargs['ecsTarget'] + if event_bus_name is None and 'eventBusName' in kwargs: + event_bus_name = kwargs['eventBusName'] + if http_target is None and 'httpTarget' in kwargs: + http_target = kwargs['httpTarget'] + if input_path is None and 'inputPath' in kwargs: + input_path = kwargs['inputPath'] + if input_transformer is None and 'inputTransformer' in kwargs: + input_transformer = kwargs['inputTransformer'] + if kinesis_target is None and 'kinesisTarget' in kwargs: + kinesis_target = kwargs['kinesisTarget'] + if redshift_target is None and 'redshiftTarget' in kwargs: + redshift_target = kwargs['redshiftTarget'] + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if run_command_targets is None and 'runCommandTargets' in kwargs: + run_command_targets = kwargs['runCommandTargets'] + if sagemaker_pipeline_target is None and 'sagemakerPipelineTarget' in kwargs: + sagemaker_pipeline_target = kwargs['sagemakerPipelineTarget'] + if sqs_target is None and 'sqsTarget' in kwargs: + sqs_target = kwargs['sqsTarget'] + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + + _setter("arn", arn) + _setter("rule", rule) if batch_target is not None: - pulumi.set(__self__, "batch_target", batch_target) + _setter("batch_target", batch_target) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if ecs_target is not None: - pulumi.set(__self__, "ecs_target", ecs_target) + _setter("ecs_target", ecs_target) if event_bus_name is not None: - pulumi.set(__self__, "event_bus_name", event_bus_name) + _setter("event_bus_name", event_bus_name) if http_target is not None: - pulumi.set(__self__, "http_target", http_target) + _setter("http_target", http_target) if input is not None: - pulumi.set(__self__, "input", input) + _setter("input", input) if input_path is not None: - pulumi.set(__self__, "input_path", input_path) + _setter("input_path", input_path) if input_transformer is not None: - pulumi.set(__self__, "input_transformer", input_transformer) + _setter("input_transformer", input_transformer) if kinesis_target is not None: - pulumi.set(__self__, "kinesis_target", kinesis_target) + _setter("kinesis_target", kinesis_target) if redshift_target is not None: - pulumi.set(__self__, "redshift_target", redshift_target) + _setter("redshift_target", redshift_target) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if run_command_targets is not None: - pulumi.set(__self__, "run_command_targets", run_command_targets) + _setter("run_command_targets", run_command_targets) if sagemaker_pipeline_target is not None: - pulumi.set(__self__, "sagemaker_pipeline_target", sagemaker_pipeline_target) + _setter("sagemaker_pipeline_target", sagemaker_pipeline_target) if sqs_target is not None: - pulumi.set(__self__, "sqs_target", sqs_target) + _setter("sqs_target", sqs_target) if target_id is not None: - pulumi.set(__self__, "target_id", target_id) + _setter("target_id", target_id) @property @pulumi.getter @@ -358,42 +437,117 @@ def __init__(__self__, *, :param pulumi.Input['EventTargetSqsTargetArgs'] sqs_target: Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed. :param pulumi.Input[str] target_id: The unique target assignment ID. If missing, will generate a random, unique id. """ + _EventTargetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + batch_target=batch_target, + dead_letter_config=dead_letter_config, + ecs_target=ecs_target, + event_bus_name=event_bus_name, + http_target=http_target, + input=input, + input_path=input_path, + input_transformer=input_transformer, + kinesis_target=kinesis_target, + redshift_target=redshift_target, + retry_policy=retry_policy, + role_arn=role_arn, + rule=rule, + run_command_targets=run_command_targets, + sagemaker_pipeline_target=sagemaker_pipeline_target, + sqs_target=sqs_target, + target_id=target_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + batch_target: Optional[pulumi.Input['EventTargetBatchTargetArgs']] = None, + dead_letter_config: Optional[pulumi.Input['EventTargetDeadLetterConfigArgs']] = None, + ecs_target: Optional[pulumi.Input['EventTargetEcsTargetArgs']] = None, + event_bus_name: Optional[pulumi.Input[str]] = None, + http_target: Optional[pulumi.Input['EventTargetHttpTargetArgs']] = None, + input: Optional[pulumi.Input[str]] = None, + input_path: Optional[pulumi.Input[str]] = None, + input_transformer: Optional[pulumi.Input['EventTargetInputTransformerArgs']] = None, + kinesis_target: Optional[pulumi.Input['EventTargetKinesisTargetArgs']] = None, + redshift_target: Optional[pulumi.Input['EventTargetRedshiftTargetArgs']] = None, + retry_policy: Optional[pulumi.Input['EventTargetRetryPolicyArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + rule: Optional[pulumi.Input[str]] = None, + run_command_targets: Optional[pulumi.Input[Sequence[pulumi.Input['EventTargetRunCommandTargetArgs']]]] = None, + sagemaker_pipeline_target: Optional[pulumi.Input['EventTargetSagemakerPipelineTargetArgs']] = None, + sqs_target: Optional[pulumi.Input['EventTargetSqsTargetArgs']] = None, + target_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if batch_target is None and 'batchTarget' in kwargs: + batch_target = kwargs['batchTarget'] + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if ecs_target is None and 'ecsTarget' in kwargs: + ecs_target = kwargs['ecsTarget'] + if event_bus_name is None and 'eventBusName' in kwargs: + event_bus_name = kwargs['eventBusName'] + if http_target is None and 'httpTarget' in kwargs: + http_target = kwargs['httpTarget'] + if input_path is None and 'inputPath' in kwargs: + input_path = kwargs['inputPath'] + if input_transformer is None and 'inputTransformer' in kwargs: + input_transformer = kwargs['inputTransformer'] + if kinesis_target is None and 'kinesisTarget' in kwargs: + kinesis_target = kwargs['kinesisTarget'] + if redshift_target is None and 'redshiftTarget' in kwargs: + redshift_target = kwargs['redshiftTarget'] + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if run_command_targets is None and 'runCommandTargets' in kwargs: + run_command_targets = kwargs['runCommandTargets'] + if sagemaker_pipeline_target is None and 'sagemakerPipelineTarget' in kwargs: + sagemaker_pipeline_target = kwargs['sagemakerPipelineTarget'] + if sqs_target is None and 'sqsTarget' in kwargs: + sqs_target = kwargs['sqsTarget'] + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if batch_target is not None: - pulumi.set(__self__, "batch_target", batch_target) + _setter("batch_target", batch_target) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if ecs_target is not None: - pulumi.set(__self__, "ecs_target", ecs_target) + _setter("ecs_target", ecs_target) if event_bus_name is not None: - pulumi.set(__self__, "event_bus_name", event_bus_name) + _setter("event_bus_name", event_bus_name) if http_target is not None: - pulumi.set(__self__, "http_target", http_target) + _setter("http_target", http_target) if input is not None: - pulumi.set(__self__, "input", input) + _setter("input", input) if input_path is not None: - pulumi.set(__self__, "input_path", input_path) + _setter("input_path", input_path) if input_transformer is not None: - pulumi.set(__self__, "input_transformer", input_transformer) + _setter("input_transformer", input_transformer) if kinesis_target is not None: - pulumi.set(__self__, "kinesis_target", kinesis_target) + _setter("kinesis_target", kinesis_target) if redshift_target is not None: - pulumi.set(__self__, "redshift_target", redshift_target) + _setter("redshift_target", redshift_target) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if rule is not None: - pulumi.set(__self__, "rule", rule) + _setter("rule", rule) if run_command_targets is not None: - pulumi.set(__self__, "run_command_targets", run_command_targets) + _setter("run_command_targets", run_command_targets) if sagemaker_pipeline_target is not None: - pulumi.set(__self__, "sagemaker_pipeline_target", sagemaker_pipeline_target) + _setter("sagemaker_pipeline_target", sagemaker_pipeline_target) if sqs_target is not None: - pulumi.set(__self__, "sqs_target", sqs_target) + _setter("sqs_target", sqs_target) if target_id is not None: - pulumi.set(__self__, "target_id", target_id) + _setter("target_id", target_id) @property @pulumi.getter @@ -1247,6 +1401,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventTargetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1282,23 +1440,33 @@ def _internal_init(__self__, if arn is None and not opts.urn: raise TypeError("Missing required property 'arn'") __props__.__dict__["arn"] = arn + batch_target = _utilities.configure(batch_target, EventTargetBatchTargetArgs, True) __props__.__dict__["batch_target"] = batch_target + dead_letter_config = _utilities.configure(dead_letter_config, EventTargetDeadLetterConfigArgs, True) __props__.__dict__["dead_letter_config"] = dead_letter_config + ecs_target = _utilities.configure(ecs_target, EventTargetEcsTargetArgs, True) __props__.__dict__["ecs_target"] = ecs_target __props__.__dict__["event_bus_name"] = event_bus_name + http_target = _utilities.configure(http_target, EventTargetHttpTargetArgs, True) __props__.__dict__["http_target"] = http_target __props__.__dict__["input"] = input __props__.__dict__["input_path"] = input_path + input_transformer = _utilities.configure(input_transformer, EventTargetInputTransformerArgs, True) __props__.__dict__["input_transformer"] = input_transformer + kinesis_target = _utilities.configure(kinesis_target, EventTargetKinesisTargetArgs, True) __props__.__dict__["kinesis_target"] = kinesis_target + redshift_target = _utilities.configure(redshift_target, EventTargetRedshiftTargetArgs, True) __props__.__dict__["redshift_target"] = redshift_target + retry_policy = _utilities.configure(retry_policy, EventTargetRetryPolicyArgs, True) __props__.__dict__["retry_policy"] = retry_policy __props__.__dict__["role_arn"] = role_arn if rule is None and not opts.urn: raise TypeError("Missing required property 'rule'") __props__.__dict__["rule"] = rule __props__.__dict__["run_command_targets"] = run_command_targets + sagemaker_pipeline_target = _utilities.configure(sagemaker_pipeline_target, EventTargetSagemakerPipelineTargetArgs, True) __props__.__dict__["sagemaker_pipeline_target"] = sagemaker_pipeline_target + sqs_target = _utilities.configure(sqs_target, EventTargetSqsTargetArgs, True) __props__.__dict__["sqs_target"] = sqs_target __props__.__dict__["target_id"] = target_id super(EventTarget, __self__).__init__( diff --git a/sdk/python/pulumi_aws/cloudwatch/get_event_bus.py b/sdk/python/pulumi_aws/cloudwatch/get_event_bus.py index 7394239086a..e33878a2a9d 100644 --- a/sdk/python/pulumi_aws/cloudwatch/get_event_bus.py +++ b/sdk/python/pulumi_aws/cloudwatch/get_event_bus.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudwatch/get_event_connection.py b/sdk/python/pulumi_aws/cloudwatch/get_event_connection.py index c11d1e31b6d..9ece65da7f9 100644 --- a/sdk/python/pulumi_aws/cloudwatch/get_event_connection.py +++ b/sdk/python/pulumi_aws/cloudwatch/get_event_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudwatch/get_event_source.py b/sdk/python/pulumi_aws/cloudwatch/get_event_source.py index 8eeba7bd0e8..8b4d3d18c06 100644 --- a/sdk/python/pulumi_aws/cloudwatch/get_event_source.py +++ b/sdk/python/pulumi_aws/cloudwatch/get_event_source.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudwatch/get_log_data_protection_policy_document.py b/sdk/python/pulumi_aws/cloudwatch/get_log_data_protection_policy_document.py index 8ba4382d3c2..ccbca6c19cf 100644 --- a/sdk/python/pulumi_aws/cloudwatch/get_log_data_protection_policy_document.py +++ b/sdk/python/pulumi_aws/cloudwatch/get_log_data_protection_policy_document.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/cloudwatch/get_log_group.py b/sdk/python/pulumi_aws/cloudwatch/get_log_group.py index c2b8e308ab7..c0b8b27631d 100644 --- a/sdk/python/pulumi_aws/cloudwatch/get_log_group.py +++ b/sdk/python/pulumi_aws/cloudwatch/get_log_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudwatch/get_log_groups.py b/sdk/python/pulumi_aws/cloudwatch/get_log_groups.py index 517eb8a606c..df1af7f86db 100644 --- a/sdk/python/pulumi_aws/cloudwatch/get_log_groups.py +++ b/sdk/python/pulumi_aws/cloudwatch/get_log_groups.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cloudwatch/internet_monitor.py b/sdk/python/pulumi_aws/cloudwatch/internet_monitor.py index 0ea3581b2c3..8b5e22ee5de 100644 --- a/sdk/python/pulumi_aws/cloudwatch/internet_monitor.py +++ b/sdk/python/pulumi_aws/cloudwatch/internet_monitor.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,21 +37,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[int] traffic_percentage_to_monitor: The percentage of the internet-facing traffic for your application that you want to monitor with this monitor. """ - pulumi.set(__self__, "monitor_name", monitor_name) + InternetMonitorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + monitor_name=monitor_name, + health_events_config=health_events_config, + internet_measurements_log_delivery=internet_measurements_log_delivery, + max_city_networks_to_monitor=max_city_networks_to_monitor, + resources=resources, + status=status, + tags=tags, + traffic_percentage_to_monitor=traffic_percentage_to_monitor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + monitor_name: Optional[pulumi.Input[str]] = None, + health_events_config: Optional[pulumi.Input['InternetMonitorHealthEventsConfigArgs']] = None, + internet_measurements_log_delivery: Optional[pulumi.Input['InternetMonitorInternetMeasurementsLogDeliveryArgs']] = None, + max_city_networks_to_monitor: Optional[pulumi.Input[int]] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + traffic_percentage_to_monitor: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if monitor_name is None and 'monitorName' in kwargs: + monitor_name = kwargs['monitorName'] + if monitor_name is None: + raise TypeError("Missing 'monitor_name' argument") + if health_events_config is None and 'healthEventsConfig' in kwargs: + health_events_config = kwargs['healthEventsConfig'] + if internet_measurements_log_delivery is None and 'internetMeasurementsLogDelivery' in kwargs: + internet_measurements_log_delivery = kwargs['internetMeasurementsLogDelivery'] + if max_city_networks_to_monitor is None and 'maxCityNetworksToMonitor' in kwargs: + max_city_networks_to_monitor = kwargs['maxCityNetworksToMonitor'] + if traffic_percentage_to_monitor is None and 'trafficPercentageToMonitor' in kwargs: + traffic_percentage_to_monitor = kwargs['trafficPercentageToMonitor'] + + _setter("monitor_name", monitor_name) if health_events_config is not None: - pulumi.set(__self__, "health_events_config", health_events_config) + _setter("health_events_config", health_events_config) if internet_measurements_log_delivery is not None: - pulumi.set(__self__, "internet_measurements_log_delivery", internet_measurements_log_delivery) + _setter("internet_measurements_log_delivery", internet_measurements_log_delivery) if max_city_networks_to_monitor is not None: - pulumi.set(__self__, "max_city_networks_to_monitor", max_city_networks_to_monitor) + _setter("max_city_networks_to_monitor", max_city_networks_to_monitor) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if traffic_percentage_to_monitor is not None: - pulumi.set(__self__, "traffic_percentage_to_monitor", traffic_percentage_to_monitor) + _setter("traffic_percentage_to_monitor", traffic_percentage_to_monitor) @property @pulumi.getter(name="monitorName") @@ -180,29 +217,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] traffic_percentage_to_monitor: The percentage of the internet-facing traffic for your application that you want to monitor with this monitor. """ + _InternetMonitorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + health_events_config=health_events_config, + internet_measurements_log_delivery=internet_measurements_log_delivery, + max_city_networks_to_monitor=max_city_networks_to_monitor, + monitor_name=monitor_name, + resources=resources, + status=status, + tags=tags, + tags_all=tags_all, + traffic_percentage_to_monitor=traffic_percentage_to_monitor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + health_events_config: Optional[pulumi.Input['InternetMonitorHealthEventsConfigArgs']] = None, + internet_measurements_log_delivery: Optional[pulumi.Input['InternetMonitorInternetMeasurementsLogDeliveryArgs']] = None, + max_city_networks_to_monitor: Optional[pulumi.Input[int]] = None, + monitor_name: Optional[pulumi.Input[str]] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + traffic_percentage_to_monitor: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if health_events_config is None and 'healthEventsConfig' in kwargs: + health_events_config = kwargs['healthEventsConfig'] + if internet_measurements_log_delivery is None and 'internetMeasurementsLogDelivery' in kwargs: + internet_measurements_log_delivery = kwargs['internetMeasurementsLogDelivery'] + if max_city_networks_to_monitor is None and 'maxCityNetworksToMonitor' in kwargs: + max_city_networks_to_monitor = kwargs['maxCityNetworksToMonitor'] + if monitor_name is None and 'monitorName' in kwargs: + monitor_name = kwargs['monitorName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if traffic_percentage_to_monitor is None and 'trafficPercentageToMonitor' in kwargs: + traffic_percentage_to_monitor = kwargs['trafficPercentageToMonitor'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if health_events_config is not None: - pulumi.set(__self__, "health_events_config", health_events_config) + _setter("health_events_config", health_events_config) if internet_measurements_log_delivery is not None: - pulumi.set(__self__, "internet_measurements_log_delivery", internet_measurements_log_delivery) + _setter("internet_measurements_log_delivery", internet_measurements_log_delivery) if max_city_networks_to_monitor is not None: - pulumi.set(__self__, "max_city_networks_to_monitor", max_city_networks_to_monitor) + _setter("max_city_networks_to_monitor", max_city_networks_to_monitor) if monitor_name is not None: - pulumi.set(__self__, "monitor_name", monitor_name) + _setter("monitor_name", monitor_name) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if traffic_percentage_to_monitor is not None: - pulumi.set(__self__, "traffic_percentage_to_monitor", traffic_percentage_to_monitor) + _setter("traffic_percentage_to_monitor", traffic_percentage_to_monitor) @property @pulumi.getter @@ -413,6 +491,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InternetMonitorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -435,7 +517,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = InternetMonitorArgs.__new__(InternetMonitorArgs) + health_events_config = _utilities.configure(health_events_config, InternetMonitorHealthEventsConfigArgs, True) __props__.__dict__["health_events_config"] = health_events_config + internet_measurements_log_delivery = _utilities.configure(internet_measurements_log_delivery, InternetMonitorInternetMeasurementsLogDeliveryArgs, True) __props__.__dict__["internet_measurements_log_delivery"] = internet_measurements_log_delivery __props__.__dict__["max_city_networks_to_monitor"] = max_city_networks_to_monitor if monitor_name is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/cloudwatch/log_data_protection_policy.py b/sdk/python/pulumi_aws/cloudwatch/log_data_protection_policy.py index 2a15fe2655f..52d32d39d91 100644 --- a/sdk/python/pulumi_aws/cloudwatch/log_data_protection_policy.py +++ b/sdk/python/pulumi_aws/cloudwatch/log_data_protection_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LogDataProtectionPolicyArgs', 'LogDataProtectionPolicy'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_name: The name of the log group under which the log stream is to be created. :param pulumi.Input[str] policy_document: Specifies the data protection policy in JSON. Read more at [Data protection policy syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-start.html#mask-sensitive-log-data-policysyntax). """ - pulumi.set(__self__, "log_group_name", log_group_name) - pulumi.set(__self__, "policy_document", policy_document) + LogDataProtectionPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + policy_document=policy_document, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if policy_document is None: + raise TypeError("Missing 'policy_document' argument") + + _setter("log_group_name", log_group_name) + _setter("policy_document", policy_document) @property @pulumi.getter(name="logGroupName") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_name: The name of the log group under which the log stream is to be created. :param pulumi.Input[str] policy_document: Specifies the data protection policy in JSON. Read more at [Data protection policy syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-start.html#mask-sensitive-log-data-policysyntax). """ + _LogDataProtectionPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + policy_document=policy_document, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if policy_document is not None: - pulumi.set(__self__, "policy_document", policy_document) + _setter("policy_document", policy_document) @property @pulumi.getter(name="logGroupName") @@ -226,6 +264,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LogDataProtectionPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/log_destination.py b/sdk/python/pulumi_aws/cloudwatch/log_destination.py index 61e473c9e50..9fa271ed3e0 100644 --- a/sdk/python/pulumi_aws/cloudwatch/log_destination.py +++ b/sdk/python/pulumi_aws/cloudwatch/log_destination.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LogDestinationArgs', 'LogDestination'] @@ -25,12 +25,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name for the log destination. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "target_arn", target_arn) + LogDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + target_arn=target_arn, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + + _setter("role_arn", role_arn) + _setter("target_arn", target_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="roleArn") @@ -99,21 +124,48 @@ def __init__(__self__, *, :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] target_arn: The ARN of the target Amazon Kinesis stream resource for the destination. """ + _LogDestinationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + role_arn=role_arn, + tags=tags, + tags_all=tags_all, + target_arn=target_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_arn is not None: - pulumi.set(__self__, "target_arn", target_arn) + _setter("target_arn", target_arn) @property @pulumi.getter @@ -268,6 +320,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LogDestinationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/log_destination_policy.py b/sdk/python/pulumi_aws/cloudwatch/log_destination_policy.py index e82b7625c65..c87a6f0b979 100644 --- a/sdk/python/pulumi_aws/cloudwatch/log_destination_policy.py +++ b/sdk/python/pulumi_aws/cloudwatch/log_destination_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LogDestinationPolicyArgs', 'LogDestinationPolicy'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_name: A name for the subscription filter :param pulumi.Input[bool] force_update: Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual AWS accounts. """ - pulumi.set(__self__, "access_policy", access_policy) - pulumi.set(__self__, "destination_name", destination_name) + LogDestinationPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policy=access_policy, + destination_name=destination_name, + force_update=force_update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policy: Optional[pulumi.Input[str]] = None, + destination_name: Optional[pulumi.Input[str]] = None, + force_update: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policy is None and 'accessPolicy' in kwargs: + access_policy = kwargs['accessPolicy'] + if access_policy is None: + raise TypeError("Missing 'access_policy' argument") + if destination_name is None and 'destinationName' in kwargs: + destination_name = kwargs['destinationName'] + if destination_name is None: + raise TypeError("Missing 'destination_name' argument") + if force_update is None and 'forceUpdate' in kwargs: + force_update = kwargs['forceUpdate'] + + _setter("access_policy", access_policy) + _setter("destination_name", destination_name) if force_update is not None: - pulumi.set(__self__, "force_update", force_update) + _setter("force_update", force_update) @property @pulumi.getter(name="accessPolicy") @@ -77,12 +102,33 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_name: A name for the subscription filter :param pulumi.Input[bool] force_update: Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual AWS accounts. """ + _LogDestinationPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policy=access_policy, + destination_name=destination_name, + force_update=force_update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policy: Optional[pulumi.Input[str]] = None, + destination_name: Optional[pulumi.Input[str]] = None, + force_update: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policy is None and 'accessPolicy' in kwargs: + access_policy = kwargs['accessPolicy'] + if destination_name is None and 'destinationName' in kwargs: + destination_name = kwargs['destinationName'] + if force_update is None and 'forceUpdate' in kwargs: + force_update = kwargs['forceUpdate'] + if access_policy is not None: - pulumi.set(__self__, "access_policy", access_policy) + _setter("access_policy", access_policy) if destination_name is not None: - pulumi.set(__self__, "destination_name", destination_name) + _setter("destination_name", destination_name) if force_update is not None: - pulumi.set(__self__, "force_update", force_update) + _setter("force_update", force_update) @property @pulumi.getter(name="accessPolicy") @@ -220,6 +266,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LogDestinationPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/log_group.py b/sdk/python/pulumi_aws/cloudwatch/log_group.py index b5fba155afb..f923336ed55 100644 --- a/sdk/python/pulumi_aws/cloudwatch/log_group.py +++ b/sdk/python/pulumi_aws/cloudwatch/log_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LogGroupArgs', 'LogGroup'] @@ -33,18 +33,47 @@ def __init__(__self__, *, :param pulumi.Input[bool] skip_destroy: Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. :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. """ + LogGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + name=name, + name_prefix=name_prefix, + retention_in_days=retention_in_days, + skip_destroy=skip_destroy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + retention_in_days: Optional[pulumi.Input[int]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if retention_in_days is None and 'retentionInDays' in kwargs: + retention_in_days = kwargs['retentionInDays'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if retention_in_days is not None: - pulumi.set(__self__, "retention_in_days", retention_in_days) + _setter("retention_in_days", retention_in_days) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="kmsKeyId") @@ -149,25 +178,60 @@ def __init__(__self__, *, :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. """ + _LogGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + kms_key_id=kms_key_id, + name=name, + name_prefix=name_prefix, + retention_in_days=retention_in_days, + skip_destroy=skip_destroy, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + retention_in_days: Optional[pulumi.Input[int]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if retention_in_days is None and 'retentionInDays' in kwargs: + retention_in_days = kwargs['retentionInDays'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if retention_in_days is not None: - pulumi.set(__self__, "retention_in_days", retention_in_days) + _setter("retention_in_days", retention_in_days) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -360,6 +424,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LogGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/log_metric_filter.py b/sdk/python/pulumi_aws/cloudwatch/log_metric_filter.py index 4e841f30113..9f1695cb383 100644 --- a/sdk/python/pulumi_aws/cloudwatch/log_metric_filter.py +++ b/sdk/python/pulumi_aws/cloudwatch/log_metric_filter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -28,11 +28,38 @@ def __init__(__self__, *, for extracting metric data out of ingested log events. :param pulumi.Input[str] name: A name for the metric filter. """ - pulumi.set(__self__, "log_group_name", log_group_name) - pulumi.set(__self__, "metric_transformation", metric_transformation) - pulumi.set(__self__, "pattern", pattern) + LogMetricFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + metric_transformation=metric_transformation, + pattern=pattern, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + metric_transformation: Optional[pulumi.Input['LogMetricFilterMetricTransformationArgs']] = None, + pattern: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if metric_transformation is None and 'metricTransformation' in kwargs: + metric_transformation = kwargs['metricTransformation'] + if metric_transformation is None: + raise TypeError("Missing 'metric_transformation' argument") + if pattern is None: + raise TypeError("Missing 'pattern' argument") + + _setter("log_group_name", log_group_name) + _setter("metric_transformation", metric_transformation) + _setter("pattern", pattern) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="logGroupName") @@ -99,14 +126,35 @@ def __init__(__self__, *, :param pulumi.Input[str] pattern: A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) for extracting metric data out of ingested log events. """ + _LogMetricFilterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + metric_transformation=metric_transformation, + name=name, + pattern=pattern, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + metric_transformation: Optional[pulumi.Input['LogMetricFilterMetricTransformationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + pattern: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if metric_transformation is None and 'metricTransformation' in kwargs: + metric_transformation = kwargs['metricTransformation'] + if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if metric_transformation is not None: - pulumi.set(__self__, "metric_transformation", metric_transformation) + _setter("metric_transformation", metric_transformation) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if pattern is not None: - pulumi.set(__self__, "pattern", pattern) + _setter("pattern", pattern) @property @pulumi.getter(name="logGroupName") @@ -248,6 +296,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LogMetricFilterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -269,6 +321,7 @@ def _internal_init(__self__, if log_group_name is None and not opts.urn: raise TypeError("Missing required property 'log_group_name'") __props__.__dict__["log_group_name"] = log_group_name + metric_transformation = _utilities.configure(metric_transformation, LogMetricFilterMetricTransformationArgs, True) if metric_transformation is None and not opts.urn: raise TypeError("Missing required property 'metric_transformation'") __props__.__dict__["metric_transformation"] = metric_transformation diff --git a/sdk/python/pulumi_aws/cloudwatch/log_resource_policy.py b/sdk/python/pulumi_aws/cloudwatch/log_resource_policy.py index a708933c543..9625f6e73dd 100644 --- a/sdk/python/pulumi_aws/cloudwatch/log_resource_policy.py +++ b/sdk/python/pulumi_aws/cloudwatch/log_resource_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LogResourcePolicyArgs', 'LogResourcePolicy'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_document: Details of the resource policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. Maximum length of 5120 characters. :param pulumi.Input[str] policy_name: Name of the resource policy. """ - pulumi.set(__self__, "policy_document", policy_document) - pulumi.set(__self__, "policy_name", policy_name) + LogResourcePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_document=policy_document, + policy_name=policy_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_document: Optional[pulumi.Input[str]] = None, + policy_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if policy_document is None: + raise TypeError("Missing 'policy_document' argument") + if policy_name is None and 'policyName' in kwargs: + policy_name = kwargs['policyName'] + if policy_name is None: + raise TypeError("Missing 'policy_name' argument") + + _setter("policy_document", policy_document) + _setter("policy_name", policy_name) @property @pulumi.getter(name="policyDocument") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_document: Details of the resource policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. Maximum length of 5120 characters. :param pulumi.Input[str] policy_name: Name of the resource policy. """ + _LogResourcePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_document=policy_document, + policy_name=policy_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_document: Optional[pulumi.Input[str]] = None, + policy_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if policy_name is None and 'policyName' in kwargs: + policy_name = kwargs['policyName'] + if policy_document is not None: - pulumi.set(__self__, "policy_document", policy_document) + _setter("policy_document", policy_document) if policy_name is not None: - pulumi.set(__self__, "policy_name", policy_name) + _setter("policy_name", policy_name) @property @pulumi.getter(name="policyDocument") @@ -230,6 +268,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LogResourcePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/log_stream.py b/sdk/python/pulumi_aws/cloudwatch/log_stream.py index efcdc243df3..782ab754332 100644 --- a/sdk/python/pulumi_aws/cloudwatch/log_stream.py +++ b/sdk/python/pulumi_aws/cloudwatch/log_stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LogStreamArgs', 'LogStream'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_name: The name of the log group under which the log stream is to be created. :param pulumi.Input[str] name: The name of the log stream. Must not be longer than 512 characters and must not contain `:` """ - pulumi.set(__self__, "log_group_name", log_group_name) + LogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + + _setter("log_group_name", log_group_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="logGroupName") @@ -62,12 +79,29 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_name: The name of the log group under which the log stream is to be created. :param pulumi.Input[str] name: The name of the log stream. Must not be longer than 512 characters and must not contain `:` """ + _LogStreamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + log_group_name=log_group_name, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -177,6 +211,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LogStreamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/log_subscription_filter.py b/sdk/python/pulumi_aws/cloudwatch/log_subscription_filter.py index 08034949dc6..de3aeb8593c 100644 --- a/sdk/python/pulumi_aws/cloudwatch/log_subscription_filter.py +++ b/sdk/python/pulumi_aws/cloudwatch/log_subscription_filter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LogSubscriptionFilterArgs', 'LogSubscriptionFilter'] @@ -29,15 +29,50 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name for the subscription filter :param pulumi.Input[str] role_arn: The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to deliver ingested log events to the destination. If you use Lambda as a destination, you should skip this argument and use `lambda.Permission` resource for granting access from CloudWatch logs to the destination Lambda function. """ - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "filter_pattern", filter_pattern) - pulumi.set(__self__, "log_group", log_group) + LogSubscriptionFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + filter_pattern=filter_pattern, + log_group=log_group, + distribution=distribution, + name=name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + filter_pattern: Optional[pulumi.Input[str]] = None, + log_group: Optional[pulumi.Input[str]] = None, + distribution: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if filter_pattern is None and 'filterPattern' in kwargs: + filter_pattern = kwargs['filterPattern'] + if filter_pattern is None: + raise TypeError("Missing 'filter_pattern' argument") + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + if log_group is None: + raise TypeError("Missing 'log_group' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("destination_arn", destination_arn) + _setter("filter_pattern", filter_pattern) + _setter("log_group", log_group) if distribution is not None: - pulumi.set(__self__, "distribution", distribution) + _setter("distribution", distribution) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="destinationArn") @@ -130,18 +165,47 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name for the subscription filter :param pulumi.Input[str] role_arn: The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to deliver ingested log events to the destination. If you use Lambda as a destination, you should skip this argument and use `lambda.Permission` resource for granting access from CloudWatch logs to the destination Lambda function. """ + _LogSubscriptionFilterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + distribution=distribution, + filter_pattern=filter_pattern, + log_group=log_group, + name=name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + distribution: Optional[pulumi.Input[str]] = None, + filter_pattern: Optional[pulumi.Input[str]] = None, + log_group: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if filter_pattern is None and 'filterPattern' in kwargs: + filter_pattern = kwargs['filterPattern'] + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if destination_arn is not None: - pulumi.set(__self__, "destination_arn", destination_arn) + _setter("destination_arn", destination_arn) if distribution is not None: - pulumi.set(__self__, "distribution", distribution) + _setter("distribution", distribution) if filter_pattern is not None: - pulumi.set(__self__, "filter_pattern", filter_pattern) + _setter("filter_pattern", filter_pattern) if log_group is not None: - pulumi.set(__self__, "log_group", log_group) + _setter("log_group", log_group) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="destinationArn") @@ -303,6 +367,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LogSubscriptionFilterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/metric_alarm.py b/sdk/python/pulumi_aws/cloudwatch/metric_alarm.py index 1701a0c073b..e54d469725f 100644 --- a/sdk/python/pulumi_aws/cloudwatch/metric_alarm.py +++ b/sdk/python/pulumi_aws/cloudwatch/metric_alarm.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -72,48 +72,133 @@ def __init__(__self__, *, :param pulumi.Input[str] treat_missing_data: Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`. :param pulumi.Input[str] unit: The unit for the alarm's associated metric. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "evaluation_periods", evaluation_periods) + MetricAlarmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + evaluation_periods=evaluation_periods, + actions_enabled=actions_enabled, + alarm_actions=alarm_actions, + alarm_description=alarm_description, + datapoints_to_alarm=datapoints_to_alarm, + dimensions=dimensions, + evaluate_low_sample_count_percentiles=evaluate_low_sample_count_percentiles, + extended_statistic=extended_statistic, + insufficient_data_actions=insufficient_data_actions, + metric_name=metric_name, + metric_queries=metric_queries, + name=name, + namespace=namespace, + ok_actions=ok_actions, + period=period, + statistic=statistic, + tags=tags, + threshold=threshold, + threshold_metric_id=threshold_metric_id, + treat_missing_data=treat_missing_data, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[pulumi.Input[str]] = None, + evaluation_periods: Optional[pulumi.Input[int]] = None, + actions_enabled: Optional[pulumi.Input[bool]] = None, + alarm_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + alarm_description: Optional[pulumi.Input[str]] = None, + datapoints_to_alarm: Optional[pulumi.Input[int]] = None, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + evaluate_low_sample_count_percentiles: Optional[pulumi.Input[str]] = None, + extended_statistic: Optional[pulumi.Input[str]] = None, + insufficient_data_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + metric_queries: Optional[pulumi.Input[Sequence[pulumi.Input['MetricAlarmMetricQueryArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + period: Optional[pulumi.Input[int]] = None, + statistic: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + threshold: Optional[pulumi.Input[float]] = None, + threshold_metric_id: Optional[pulumi.Input[str]] = None, + treat_missing_data: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if evaluation_periods is None and 'evaluationPeriods' in kwargs: + evaluation_periods = kwargs['evaluationPeriods'] + if evaluation_periods is None: + raise TypeError("Missing 'evaluation_periods' argument") + if actions_enabled is None and 'actionsEnabled' in kwargs: + actions_enabled = kwargs['actionsEnabled'] + if alarm_actions is None and 'alarmActions' in kwargs: + alarm_actions = kwargs['alarmActions'] + if alarm_description is None and 'alarmDescription' in kwargs: + alarm_description = kwargs['alarmDescription'] + if datapoints_to_alarm is None and 'datapointsToAlarm' in kwargs: + datapoints_to_alarm = kwargs['datapointsToAlarm'] + if evaluate_low_sample_count_percentiles is None and 'evaluateLowSampleCountPercentiles' in kwargs: + evaluate_low_sample_count_percentiles = kwargs['evaluateLowSampleCountPercentiles'] + if extended_statistic is None and 'extendedStatistic' in kwargs: + extended_statistic = kwargs['extendedStatistic'] + if insufficient_data_actions is None and 'insufficientDataActions' in kwargs: + insufficient_data_actions = kwargs['insufficientDataActions'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_queries is None and 'metricQueries' in kwargs: + metric_queries = kwargs['metricQueries'] + if ok_actions is None and 'okActions' in kwargs: + ok_actions = kwargs['okActions'] + if threshold_metric_id is None and 'thresholdMetricId' in kwargs: + threshold_metric_id = kwargs['thresholdMetricId'] + if treat_missing_data is None and 'treatMissingData' in kwargs: + treat_missing_data = kwargs['treatMissingData'] + + _setter("comparison_operator", comparison_operator) + _setter("evaluation_periods", evaluation_periods) if actions_enabled is not None: - pulumi.set(__self__, "actions_enabled", actions_enabled) + _setter("actions_enabled", actions_enabled) if alarm_actions is not None: - pulumi.set(__self__, "alarm_actions", alarm_actions) + _setter("alarm_actions", alarm_actions) if alarm_description is not None: - pulumi.set(__self__, "alarm_description", alarm_description) + _setter("alarm_description", alarm_description) if datapoints_to_alarm is not None: - pulumi.set(__self__, "datapoints_to_alarm", datapoints_to_alarm) + _setter("datapoints_to_alarm", datapoints_to_alarm) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if evaluate_low_sample_count_percentiles is not None: - pulumi.set(__self__, "evaluate_low_sample_count_percentiles", evaluate_low_sample_count_percentiles) + _setter("evaluate_low_sample_count_percentiles", evaluate_low_sample_count_percentiles) if extended_statistic is not None: - pulumi.set(__self__, "extended_statistic", extended_statistic) + _setter("extended_statistic", extended_statistic) if insufficient_data_actions is not None: - pulumi.set(__self__, "insufficient_data_actions", insufficient_data_actions) + _setter("insufficient_data_actions", insufficient_data_actions) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if metric_queries is not None: - pulumi.set(__self__, "metric_queries", metric_queries) + _setter("metric_queries", metric_queries) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if ok_actions is not None: - pulumi.set(__self__, "ok_actions", ok_actions) + _setter("ok_actions", ok_actions) if period is not None: - pulumi.set(__self__, "period", period) + _setter("period", period) if statistic is not None: - pulumi.set(__self__, "statistic", statistic) + _setter("statistic", statistic) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if threshold is not None: - pulumi.set(__self__, "threshold", threshold) + _setter("threshold", threshold) if threshold_metric_id is not None: - pulumi.set(__self__, "threshold_metric_id", threshold_metric_id) + _setter("threshold_metric_id", threshold_metric_id) if treat_missing_data is not None: - pulumi.set(__self__, "treat_missing_data", treat_missing_data) + _setter("treat_missing_data", treat_missing_data) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="comparisonOperator") @@ -452,57 +537,144 @@ def __init__(__self__, *, :param pulumi.Input[str] treat_missing_data: Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`. :param pulumi.Input[str] unit: The unit for the alarm's associated metric. """ + _MetricAlarmState._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions_enabled=actions_enabled, + alarm_actions=alarm_actions, + alarm_description=alarm_description, + arn=arn, + comparison_operator=comparison_operator, + datapoints_to_alarm=datapoints_to_alarm, + dimensions=dimensions, + evaluate_low_sample_count_percentiles=evaluate_low_sample_count_percentiles, + evaluation_periods=evaluation_periods, + extended_statistic=extended_statistic, + insufficient_data_actions=insufficient_data_actions, + metric_name=metric_name, + metric_queries=metric_queries, + name=name, + namespace=namespace, + ok_actions=ok_actions, + period=period, + statistic=statistic, + tags=tags, + tags_all=tags_all, + threshold=threshold, + threshold_metric_id=threshold_metric_id, + treat_missing_data=treat_missing_data, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions_enabled: Optional[pulumi.Input[bool]] = None, + alarm_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + alarm_description: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + comparison_operator: Optional[pulumi.Input[str]] = None, + datapoints_to_alarm: Optional[pulumi.Input[int]] = None, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + evaluate_low_sample_count_percentiles: Optional[pulumi.Input[str]] = None, + evaluation_periods: Optional[pulumi.Input[int]] = None, + extended_statistic: Optional[pulumi.Input[str]] = None, + insufficient_data_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + metric_queries: Optional[pulumi.Input[Sequence[pulumi.Input['MetricAlarmMetricQueryArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + period: Optional[pulumi.Input[int]] = None, + statistic: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + threshold: Optional[pulumi.Input[float]] = None, + threshold_metric_id: Optional[pulumi.Input[str]] = None, + treat_missing_data: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions_enabled is None and 'actionsEnabled' in kwargs: + actions_enabled = kwargs['actionsEnabled'] + if alarm_actions is None and 'alarmActions' in kwargs: + alarm_actions = kwargs['alarmActions'] + if alarm_description is None and 'alarmDescription' in kwargs: + alarm_description = kwargs['alarmDescription'] + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if datapoints_to_alarm is None and 'datapointsToAlarm' in kwargs: + datapoints_to_alarm = kwargs['datapointsToAlarm'] + if evaluate_low_sample_count_percentiles is None and 'evaluateLowSampleCountPercentiles' in kwargs: + evaluate_low_sample_count_percentiles = kwargs['evaluateLowSampleCountPercentiles'] + if evaluation_periods is None and 'evaluationPeriods' in kwargs: + evaluation_periods = kwargs['evaluationPeriods'] + if extended_statistic is None and 'extendedStatistic' in kwargs: + extended_statistic = kwargs['extendedStatistic'] + if insufficient_data_actions is None and 'insufficientDataActions' in kwargs: + insufficient_data_actions = kwargs['insufficientDataActions'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_queries is None and 'metricQueries' in kwargs: + metric_queries = kwargs['metricQueries'] + if ok_actions is None and 'okActions' in kwargs: + ok_actions = kwargs['okActions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if threshold_metric_id is None and 'thresholdMetricId' in kwargs: + threshold_metric_id = kwargs['thresholdMetricId'] + if treat_missing_data is None and 'treatMissingData' in kwargs: + treat_missing_data = kwargs['treatMissingData'] + if actions_enabled is not None: - pulumi.set(__self__, "actions_enabled", actions_enabled) + _setter("actions_enabled", actions_enabled) if alarm_actions is not None: - pulumi.set(__self__, "alarm_actions", alarm_actions) + _setter("alarm_actions", alarm_actions) if alarm_description is not None: - pulumi.set(__self__, "alarm_description", alarm_description) + _setter("alarm_description", alarm_description) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if comparison_operator is not None: - pulumi.set(__self__, "comparison_operator", comparison_operator) + _setter("comparison_operator", comparison_operator) if datapoints_to_alarm is not None: - pulumi.set(__self__, "datapoints_to_alarm", datapoints_to_alarm) + _setter("datapoints_to_alarm", datapoints_to_alarm) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if evaluate_low_sample_count_percentiles is not None: - pulumi.set(__self__, "evaluate_low_sample_count_percentiles", evaluate_low_sample_count_percentiles) + _setter("evaluate_low_sample_count_percentiles", evaluate_low_sample_count_percentiles) if evaluation_periods is not None: - pulumi.set(__self__, "evaluation_periods", evaluation_periods) + _setter("evaluation_periods", evaluation_periods) if extended_statistic is not None: - pulumi.set(__self__, "extended_statistic", extended_statistic) + _setter("extended_statistic", extended_statistic) if insufficient_data_actions is not None: - pulumi.set(__self__, "insufficient_data_actions", insufficient_data_actions) + _setter("insufficient_data_actions", insufficient_data_actions) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if metric_queries is not None: - pulumi.set(__self__, "metric_queries", metric_queries) + _setter("metric_queries", metric_queries) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if ok_actions is not None: - pulumi.set(__self__, "ok_actions", ok_actions) + _setter("ok_actions", ok_actions) if period is not None: - pulumi.set(__self__, "period", period) + _setter("period", period) if statistic is not None: - pulumi.set(__self__, "statistic", statistic) + _setter("statistic", statistic) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if threshold is not None: - pulumi.set(__self__, "threshold", threshold) + _setter("threshold", threshold) if threshold_metric_id is not None: - pulumi.set(__self__, "threshold_metric_id", threshold_metric_id) + _setter("threshold_metric_id", threshold_metric_id) if treat_missing_data is not None: - pulumi.set(__self__, "treat_missing_data", treat_missing_data) + _setter("treat_missing_data", treat_missing_data) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="actionsEnabled") @@ -1209,6 +1381,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MetricAlarmArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/metric_stream.py b/sdk/python/pulumi_aws/cloudwatch/metric_stream.py index be4cc64a009..ad85a8688fe 100644 --- a/sdk/python/pulumi_aws/cloudwatch/metric_stream.py +++ b/sdk/python/pulumi_aws/cloudwatch/metric_stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,23 +41,74 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['MetricStreamStatisticsConfigurationArgs']]] statistics_configurations: For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's `output_format`. If the OutputFormat is `json`, you can stream any additional statistic that is supported by CloudWatch, listed in [CloudWatch statistics definitions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html.html). If the OutputFormat is `opentelemetry0.7`, you can stream percentile statistics (p99 etc.). See details below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "firehose_arn", firehose_arn) - pulumi.set(__self__, "output_format", output_format) - pulumi.set(__self__, "role_arn", role_arn) + MetricStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + firehose_arn=firehose_arn, + output_format=output_format, + role_arn=role_arn, + exclude_filters=exclude_filters, + include_filters=include_filters, + include_linked_accounts_metrics=include_linked_accounts_metrics, + name=name, + name_prefix=name_prefix, + statistics_configurations=statistics_configurations, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firehose_arn: Optional[pulumi.Input[str]] = None, + output_format: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + exclude_filters: Optional[pulumi.Input[Sequence[pulumi.Input['MetricStreamExcludeFilterArgs']]]] = None, + include_filters: Optional[pulumi.Input[Sequence[pulumi.Input['MetricStreamIncludeFilterArgs']]]] = None, + include_linked_accounts_metrics: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + statistics_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['MetricStreamStatisticsConfigurationArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firehose_arn is None and 'firehoseArn' in kwargs: + firehose_arn = kwargs['firehoseArn'] + if firehose_arn is None: + raise TypeError("Missing 'firehose_arn' argument") + if output_format is None and 'outputFormat' in kwargs: + output_format = kwargs['outputFormat'] + if output_format is None: + raise TypeError("Missing 'output_format' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if exclude_filters is None and 'excludeFilters' in kwargs: + exclude_filters = kwargs['excludeFilters'] + if include_filters is None and 'includeFilters' in kwargs: + include_filters = kwargs['includeFilters'] + if include_linked_accounts_metrics is None and 'includeLinkedAccountsMetrics' in kwargs: + include_linked_accounts_metrics = kwargs['includeLinkedAccountsMetrics'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if statistics_configurations is None and 'statisticsConfigurations' in kwargs: + statistics_configurations = kwargs['statisticsConfigurations'] + + _setter("firehose_arn", firehose_arn) + _setter("output_format", output_format) + _setter("role_arn", role_arn) if exclude_filters is not None: - pulumi.set(__self__, "exclude_filters", exclude_filters) + _setter("exclude_filters", exclude_filters) if include_filters is not None: - pulumi.set(__self__, "include_filters", include_filters) + _setter("include_filters", include_filters) if include_linked_accounts_metrics is not None: - pulumi.set(__self__, "include_linked_accounts_metrics", include_linked_accounts_metrics) + _setter("include_linked_accounts_metrics", include_linked_accounts_metrics) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if statistics_configurations is not None: - pulumi.set(__self__, "statistics_configurations", statistics_configurations) + _setter("statistics_configurations", statistics_configurations) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="firehoseArn") @@ -220,39 +271,100 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _MetricStreamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_date=creation_date, + exclude_filters=exclude_filters, + firehose_arn=firehose_arn, + include_filters=include_filters, + include_linked_accounts_metrics=include_linked_accounts_metrics, + last_update_date=last_update_date, + name=name, + name_prefix=name_prefix, + output_format=output_format, + role_arn=role_arn, + state=state, + statistics_configurations=statistics_configurations, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + exclude_filters: Optional[pulumi.Input[Sequence[pulumi.Input['MetricStreamExcludeFilterArgs']]]] = None, + firehose_arn: Optional[pulumi.Input[str]] = None, + include_filters: Optional[pulumi.Input[Sequence[pulumi.Input['MetricStreamIncludeFilterArgs']]]] = None, + include_linked_accounts_metrics: Optional[pulumi.Input[bool]] = None, + last_update_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + output_format: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + statistics_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['MetricStreamStatisticsConfigurationArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if exclude_filters is None and 'excludeFilters' in kwargs: + exclude_filters = kwargs['excludeFilters'] + if firehose_arn is None and 'firehoseArn' in kwargs: + firehose_arn = kwargs['firehoseArn'] + if include_filters is None and 'includeFilters' in kwargs: + include_filters = kwargs['includeFilters'] + if include_linked_accounts_metrics is None and 'includeLinkedAccountsMetrics' in kwargs: + include_linked_accounts_metrics = kwargs['includeLinkedAccountsMetrics'] + if last_update_date is None and 'lastUpdateDate' in kwargs: + last_update_date = kwargs['lastUpdateDate'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if output_format is None and 'outputFormat' in kwargs: + output_format = kwargs['outputFormat'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if statistics_configurations is None and 'statisticsConfigurations' in kwargs: + statistics_configurations = kwargs['statisticsConfigurations'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if exclude_filters is not None: - pulumi.set(__self__, "exclude_filters", exclude_filters) + _setter("exclude_filters", exclude_filters) if firehose_arn is not None: - pulumi.set(__self__, "firehose_arn", firehose_arn) + _setter("firehose_arn", firehose_arn) if include_filters is not None: - pulumi.set(__self__, "include_filters", include_filters) + _setter("include_filters", include_filters) if include_linked_accounts_metrics is not None: - pulumi.set(__self__, "include_linked_accounts_metrics", include_linked_accounts_metrics) + _setter("include_linked_accounts_metrics", include_linked_accounts_metrics) if last_update_date is not None: - pulumi.set(__self__, "last_update_date", last_update_date) + _setter("last_update_date", last_update_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if output_format is not None: - pulumi.set(__self__, "output_format", output_format) + _setter("output_format", output_format) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if statistics_configurations is not None: - pulumi.set(__self__, "statistics_configurations", statistics_configurations) + _setter("statistics_configurations", statistics_configurations) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -735,6 +847,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MetricStreamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cloudwatch/outputs.py b/sdk/python/pulumi_aws/cloudwatch/outputs.py index 4646b07d16f..a9b855ef5fd 100644 --- a/sdk/python/pulumi_aws/cloudwatch/outputs.py +++ b/sdk/python/pulumi_aws/cloudwatch/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -99,9 +99,34 @@ def __init__(__self__, *, :param int extension_period: The maximum time in seconds that the composite alarm waits after suppressor alarm goes out of the `ALARM` state. After this time, the composite alarm performs its actions. :param int wait_period: The maximum time in seconds that the composite alarm waits for the suppressor alarm to go into the `ALARM` state. After this time, the composite alarm performs its actions. """ - pulumi.set(__self__, "alarm", alarm) - pulumi.set(__self__, "extension_period", extension_period) - pulumi.set(__self__, "wait_period", wait_period) + CompositeAlarmActionsSuppressor._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm=alarm, + extension_period=extension_period, + wait_period=wait_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm: Optional[str] = None, + extension_period: Optional[int] = None, + wait_period: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm is None: + raise TypeError("Missing 'alarm' argument") + if extension_period is None and 'extensionPeriod' in kwargs: + extension_period = kwargs['extensionPeriod'] + if extension_period is None: + raise TypeError("Missing 'extension_period' argument") + if wait_period is None and 'waitPeriod' in kwargs: + wait_period = kwargs['waitPeriod'] + if wait_period is None: + raise TypeError("Missing 'wait_period' argument") + + _setter("alarm", alarm) + _setter("extension_period", extension_period) + _setter("wait_period", wait_period) @property @pulumi.getter @@ -160,14 +185,35 @@ def __init__(__self__, *, :param 'EventConnectionAuthParametersInvocationHttpParametersArgs' invocation_http_parameters: Invocation Http Parameters are additional credentials used to sign each Invocation of the ApiDestination created from this Connection. If the ApiDestination Rule Target has additional HttpParameters, the values will be merged together, with the Connection Invocation Http Parameters taking precedence. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. :param 'EventConnectionAuthParametersOauthArgs' oauth: Parameters used for OAUTH_CLIENT_CREDENTIALS authorization. A maximum of 1 are allowed. Conflicts with `basic` and `api_key`. Documented below. """ + EventConnectionAuthParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + basic=basic, + invocation_http_parameters=invocation_http_parameters, + oauth=oauth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional['outputs.EventConnectionAuthParametersApiKey'] = None, + basic: Optional['outputs.EventConnectionAuthParametersBasic'] = None, + invocation_http_parameters: Optional['outputs.EventConnectionAuthParametersInvocationHttpParameters'] = None, + oauth: Optional['outputs.EventConnectionAuthParametersOauth'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if invocation_http_parameters is None and 'invocationHttpParameters' in kwargs: + invocation_http_parameters = kwargs['invocationHttpParameters'] + if api_key is not None: - pulumi.set(__self__, "api_key", api_key) + _setter("api_key", api_key) if basic is not None: - pulumi.set(__self__, "basic", basic) + _setter("basic", basic) if invocation_http_parameters is not None: - pulumi.set(__self__, "invocation_http_parameters", invocation_http_parameters) + _setter("invocation_http_parameters", invocation_http_parameters) if oauth is not None: - pulumi.set(__self__, "oauth", oauth) + _setter("oauth", oauth) @property @pulumi.getter(name="apiKey") @@ -211,8 +257,25 @@ def __init__(__self__, *, :param str key: Header Name. :param str value: Header Value. Created and stored in AWS Secrets Manager. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + EventConnectionAuthParametersApiKey._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -240,8 +303,25 @@ def __init__(__self__, *, :param str password: A password for the authorization. Created and stored in AWS Secrets Manager. :param str username: A username for the authorization. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + EventConnectionAuthParametersBasic._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -288,12 +368,29 @@ def __init__(__self__, *, :param Sequence['EventConnectionAuthParametersInvocationHttpParametersHeaderArgs'] headers: Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: :param Sequence['EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs'] query_strings: Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: """ + EventConnectionAuthParametersInvocationHttpParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + bodies=bodies, + headers=headers, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bodies: Optional[Sequence['outputs.EventConnectionAuthParametersInvocationHttpParametersBody']] = None, + headers: Optional[Sequence['outputs.EventConnectionAuthParametersInvocationHttpParametersHeader']] = None, + query_strings: Optional[Sequence['outputs.EventConnectionAuthParametersInvocationHttpParametersQueryString']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if bodies is not None: - pulumi.set(__self__, "bodies", bodies) + _setter("bodies", bodies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) @property @pulumi.getter @@ -348,12 +445,29 @@ def __init__(__self__, *, :param str key: Header Name. :param str value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersInvocationHttpParametersBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[bool] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -408,12 +522,29 @@ def __init__(__self__, *, :param str key: Header Name. :param str value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersInvocationHttpParametersHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[bool] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -468,12 +599,29 @@ def __init__(__self__, *, :param str key: Header Name. :param str value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersInvocationHttpParametersQueryString._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[bool] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -536,11 +684,42 @@ def __init__(__self__, *, :param 'EventConnectionAuthParametersOauthOauthHttpParametersArgs' oauth_http_parameters: OAuth Http Parameters are additional credentials used to sign the request to the authorization endpoint to exchange the OAuth Client information for an access token. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. :param 'EventConnectionAuthParametersOauthClientParametersArgs' client_parameters: Contains the client parameters for OAuth authorization. Contains the following two parameters. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "http_method", http_method) - pulumi.set(__self__, "oauth_http_parameters", oauth_http_parameters) + EventConnectionAuthParametersOauth._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + http_method=http_method, + oauth_http_parameters=oauth_http_parameters, + client_parameters=client_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[str] = None, + http_method: Optional[str] = None, + oauth_http_parameters: Optional['outputs.EventConnectionAuthParametersOauthOauthHttpParameters'] = None, + client_parameters: Optional['outputs.EventConnectionAuthParametersOauthClientParameters'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if http_method is None: + raise TypeError("Missing 'http_method' argument") + if oauth_http_parameters is None and 'oauthHttpParameters' in kwargs: + oauth_http_parameters = kwargs['oauthHttpParameters'] + if oauth_http_parameters is None: + raise TypeError("Missing 'oauth_http_parameters' argument") + if client_parameters is None and 'clientParameters' in kwargs: + client_parameters = kwargs['clientParameters'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("http_method", http_method) + _setter("oauth_http_parameters", oauth_http_parameters) if client_parameters is not None: - pulumi.set(__self__, "client_parameters", client_parameters) + _setter("client_parameters", client_parameters) @property @pulumi.getter(name="authorizationEndpoint") @@ -603,8 +782,29 @@ def __init__(__self__, *, :param str client_id: The client ID for the credentials to use for authorization. Created and stored in AWS Secrets Manager. :param str client_secret: The client secret for the credentials to use for authorization. Created and stored in AWS Secrets Manager. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + EventConnectionAuthParametersOauthClientParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + client_secret=client_secret, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + + _setter("client_id", client_id) + _setter("client_secret", client_secret) @property @pulumi.getter(name="clientId") @@ -651,12 +851,29 @@ def __init__(__self__, *, :param Sequence['EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs'] headers: Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: :param Sequence['EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs'] query_strings: Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: """ + EventConnectionAuthParametersOauthOauthHttpParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + bodies=bodies, + headers=headers, + query_strings=query_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bodies: Optional[Sequence['outputs.EventConnectionAuthParametersOauthOauthHttpParametersBody']] = None, + headers: Optional[Sequence['outputs.EventConnectionAuthParametersOauthOauthHttpParametersHeader']] = None, + query_strings: Optional[Sequence['outputs.EventConnectionAuthParametersOauthOauthHttpParametersQueryString']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if bodies is not None: - pulumi.set(__self__, "bodies", bodies) + _setter("bodies", bodies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) @property @pulumi.getter @@ -711,12 +928,29 @@ def __init__(__self__, *, :param str key: Header Name. :param str value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersOauthOauthHttpParametersBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[bool] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -771,12 +1005,29 @@ def __init__(__self__, *, :param str key: Header Name. :param str value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersOauthOauthHttpParametersHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[bool] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -831,12 +1082,29 @@ def __init__(__self__, *, :param str key: Header Name. :param str value: Header Value. Created and stored in AWS Secrets Manager. """ + EventConnectionAuthParametersOauthOauthHttpParametersQueryString._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_value_secret=is_value_secret, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_value_secret: Optional[bool] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_value_secret is None and 'isValueSecret' in kwargs: + is_value_secret = kwargs['isValueSecret'] + if is_value_secret is not None: - pulumi.set(__self__, "is_value_secret", is_value_secret) + _setter("is_value_secret", is_value_secret) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="isValueSecret") @@ -887,7 +1155,22 @@ def __init__(__self__, *, """ :param str event_bus_arn: The ARN of the event bus the endpoint is associated with. """ - pulumi.set(__self__, "event_bus_arn", event_bus_arn) + EventEndpointEventBus._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_bus_arn=event_bus_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_bus_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_bus_arn is None and 'eventBusArn' in kwargs: + event_bus_arn = kwargs['eventBusArn'] + if event_bus_arn is None: + raise TypeError("Missing 'event_bus_arn' argument") + + _setter("event_bus_arn", event_bus_arn) @property @pulumi.getter(name="eventBusArn") @@ -905,8 +1188,19 @@ def __init__(__self__, *, """ :param str state: The state of event replication. Valid values: `ENABLED`, `DISABLED`. The default state is `ENABLED`, which means you must supply a `role_arn`. If you don't have a `role_arn` or you don't want event replication enabled, set `state` to `DISABLED`. """ + EventEndpointReplicationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter @@ -941,7 +1235,22 @@ def __init__(__self__, *, """ :param 'EventEndpointRoutingConfigFailoverConfigArgs' failover_config: Parameters used for failover. This includes what triggers failover and what happens when it's triggered. Documented below. """ - pulumi.set(__self__, "failover_config", failover_config) + EventEndpointRoutingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + failover_config=failover_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failover_config: Optional['outputs.EventEndpointRoutingConfigFailoverConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failover_config is None and 'failoverConfig' in kwargs: + failover_config = kwargs['failoverConfig'] + if failover_config is None: + raise TypeError("Missing 'failover_config' argument") + + _setter("failover_config", failover_config) @property @pulumi.getter(name="failoverConfig") @@ -961,8 +1270,25 @@ def __init__(__self__, *, :param 'EventEndpointRoutingConfigFailoverConfigPrimaryArgs' primary: Parameters used for the primary Region. Documented below. :param 'EventEndpointRoutingConfigFailoverConfigSecondaryArgs' secondary: Parameters used for the secondary Region, the Region that events are routed to when failover is triggered or event replication is enabled. Documented below. """ - pulumi.set(__self__, "primary", primary) - pulumi.set(__self__, "secondary", secondary) + EventEndpointRoutingConfigFailoverConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary=primary, + secondary=secondary, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary: Optional['outputs.EventEndpointRoutingConfigFailoverConfigPrimary'] = None, + secondary: Optional['outputs.EventEndpointRoutingConfigFailoverConfigSecondary'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary is None: + raise TypeError("Missing 'primary' argument") + if secondary is None: + raise TypeError("Missing 'secondary' argument") + + _setter("primary", primary) + _setter("secondary", secondary) @property @pulumi.getter @@ -1005,8 +1331,21 @@ def __init__(__self__, *, """ :param str health_check: The ARN of the health check used by the endpoint to determine whether failover is triggered. """ + EventEndpointRoutingConfigFailoverConfigPrimary._configure( + lambda key, value: pulumi.set(__self__, key, value), + health_check=health_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + health_check: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) @property @pulumi.getter(name="healthCheck") @@ -1024,8 +1363,19 @@ def __init__(__self__, *, """ :param str route: The name of the secondary Region. """ + EventEndpointRoutingConfigFailoverConfigSecondary._configure( + lambda key, value: pulumi.set(__self__, key, value), + route=route, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route is not None: - pulumi.set(__self__, "route", route) + _setter("route", route) @property @pulumi.getter @@ -1047,9 +1397,30 @@ def __init__(__self__, *, :param str type: Type of condition. Value values: `StringEquals`. :param str value: Value for the key. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EventPermissionCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -1112,12 +1483,41 @@ def __init__(__self__, *, :param int array_size: The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000. :param int job_attempts: The number of times to attempt to retry, if the job fails. Valid values are 1 to 10. """ - pulumi.set(__self__, "job_definition", job_definition) - pulumi.set(__self__, "job_name", job_name) + EventTargetBatchTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_definition=job_definition, + job_name=job_name, + array_size=array_size, + job_attempts=job_attempts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_definition: Optional[str] = None, + job_name: Optional[str] = None, + array_size: Optional[int] = None, + job_attempts: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_definition is None and 'jobDefinition' in kwargs: + job_definition = kwargs['jobDefinition'] + if job_definition is None: + raise TypeError("Missing 'job_definition' argument") + if job_name is None and 'jobName' in kwargs: + job_name = kwargs['jobName'] + if job_name is None: + raise TypeError("Missing 'job_name' argument") + if array_size is None and 'arraySize' in kwargs: + array_size = kwargs['arraySize'] + if job_attempts is None and 'jobAttempts' in kwargs: + job_attempts = kwargs['jobAttempts'] + + _setter("job_definition", job_definition) + _setter("job_name", job_name) if array_size is not None: - pulumi.set(__self__, "array_size", array_size) + _setter("array_size", array_size) if job_attempts is not None: - pulumi.set(__self__, "job_attempts", job_attempts) + _setter("job_attempts", job_attempts) @property @pulumi.getter(name="jobDefinition") @@ -1159,8 +1559,19 @@ def __init__(__self__, *, """ :param str arn: ARN of the SQS queue specified as the target for the dead-letter queue. """ + EventTargetDeadLetterConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) @property @pulumi.getter @@ -1239,31 +1650,90 @@ def __init__(__self__, *, :param Mapping[str, str] tags: A map of tags to assign to ecs resources. :param int task_count: The number of tasks to create based on the TaskDefinition. Defaults to `1`. """ - pulumi.set(__self__, "task_definition_arn", task_definition_arn) + EventTargetEcsTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + task_definition_arn=task_definition_arn, + capacity_provider_strategies=capacity_provider_strategies, + enable_ecs_managed_tags=enable_ecs_managed_tags, + enable_execute_command=enable_execute_command, + group=group, + launch_type=launch_type, + network_configuration=network_configuration, + ordered_placement_strategies=ordered_placement_strategies, + placement_constraints=placement_constraints, + platform_version=platform_version, + propagate_tags=propagate_tags, + tags=tags, + task_count=task_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + task_definition_arn: Optional[str] = None, + capacity_provider_strategies: Optional[Sequence['outputs.EventTargetEcsTargetCapacityProviderStrategy']] = None, + enable_ecs_managed_tags: Optional[bool] = None, + enable_execute_command: Optional[bool] = None, + group: Optional[str] = None, + launch_type: Optional[str] = None, + network_configuration: Optional['outputs.EventTargetEcsTargetNetworkConfiguration'] = None, + ordered_placement_strategies: Optional[Sequence['outputs.EventTargetEcsTargetOrderedPlacementStrategy']] = None, + placement_constraints: Optional[Sequence['outputs.EventTargetEcsTargetPlacementConstraint']] = None, + platform_version: Optional[str] = None, + propagate_tags: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + task_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if task_definition_arn is None and 'taskDefinitionArn' in kwargs: + task_definition_arn = kwargs['taskDefinitionArn'] + if task_definition_arn is None: + raise TypeError("Missing 'task_definition_arn' argument") + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if enable_ecs_managed_tags is None and 'enableEcsManagedTags' in kwargs: + enable_ecs_managed_tags = kwargs['enableEcsManagedTags'] + if enable_execute_command is None and 'enableExecuteCommand' in kwargs: + enable_execute_command = kwargs['enableExecuteCommand'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if ordered_placement_strategies is None and 'orderedPlacementStrategies' in kwargs: + ordered_placement_strategies = kwargs['orderedPlacementStrategies'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if task_count is None and 'taskCount' in kwargs: + task_count = kwargs['taskCount'] + + _setter("task_definition_arn", task_definition_arn) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if enable_ecs_managed_tags is not None: - pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) + _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - pulumi.set(__self__, "enable_execute_command", enable_execute_command) + _setter("enable_execute_command", enable_execute_command) if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if ordered_placement_strategies is not None: - pulumi.set(__self__, "ordered_placement_strategies", ordered_placement_strategies) + _setter("ordered_placement_strategies", ordered_placement_strategies) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if task_count is not None: - pulumi.set(__self__, "task_count", task_count) + _setter("task_count", task_count) @property @pulumi.getter(name="taskDefinitionArn") @@ -1398,11 +1868,30 @@ def __init__(__self__, *, :param int base: The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. :param int weight: The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + EventTargetEcsTargetCapacityProviderStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[str] = None, + base: Optional[int] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -1461,11 +1950,32 @@ def __init__(__self__, *, For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) :param Sequence[str] security_groups: The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. """ - pulumi.set(__self__, "subnets", subnets) + EventTargetEcsTargetNetworkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[Sequence[str]] = None, + assign_public_ip: Optional[bool] = None, + security_groups: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -1503,9 +2013,24 @@ def __init__(__self__, *, :param str type: Type of placement strategy. The only valid values at this time are `binpack`, `random` and `spread`. :param str field: The field to apply the placement strategy against. For the `spread` placement strategy, valid values are `instanceId` (or `host`, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as `attribute:ecs.availability-zone`. For the `binpack` placement strategy, valid values are `cpu` and `memory`. For the `random` placement strategy, this field is not used. For more information, see [Amazon ECS task placement strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html). """ - pulumi.set(__self__, "type", type) + EventTargetEcsTargetOrderedPlacementStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + field=field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + field: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) @property @pulumi.getter @@ -1533,9 +2058,24 @@ def __init__(__self__, *, :param str type: Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. :param str expression: Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). """ - pulumi.set(__self__, "type", type) + EventTargetEcsTargetPlacementConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -1586,12 +2126,33 @@ def __init__(__self__, *, :param Sequence[str] path_parameter_values: The list of values that correspond sequentially to any path variables in your endpoint ARN (for example `arn:aws:execute-api:us-east-1:123456:myapi/*/POST/pets/*`). :param Mapping[str, str] query_string_parameters: Represents keys/values of query string parameters that are appended to the invoked endpoint. """ + EventTargetHttpTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_parameters=header_parameters, + path_parameter_values=path_parameter_values, + query_string_parameters=query_string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_parameters: Optional[Mapping[str, str]] = None, + path_parameter_values: Optional[Sequence[str]] = None, + query_string_parameters: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_parameters is None and 'headerParameters' in kwargs: + header_parameters = kwargs['headerParameters'] + if path_parameter_values is None and 'pathParameterValues' in kwargs: + path_parameter_values = kwargs['pathParameterValues'] + if query_string_parameters is None and 'queryStringParameters' in kwargs: + query_string_parameters = kwargs['queryStringParameters'] + if header_parameters is not None: - pulumi.set(__self__, "header_parameters", header_parameters) + _setter("header_parameters", header_parameters) if path_parameter_values is not None: - pulumi.set(__self__, "path_parameter_values", path_parameter_values) + _setter("path_parameter_values", path_parameter_values) if query_string_parameters is not None: - pulumi.set(__self__, "query_string_parameters", query_string_parameters) + _setter("query_string_parameters", query_string_parameters) @property @pulumi.getter(name="headerParameters") @@ -1649,9 +2210,28 @@ def __init__(__self__, *, * You must use JSON dot notation, not bracket notation. * The keys can't start with "AWS". """ - pulumi.set(__self__, "input_template", input_template) + EventTargetInputTransformer._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_template=input_template, + input_paths=input_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_template: Optional[str] = None, + input_paths: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_template is None and 'inputTemplate' in kwargs: + input_template = kwargs['inputTemplate'] + if input_template is None: + raise TypeError("Missing 'input_template' argument") + if input_paths is None and 'inputPaths' in kwargs: + input_paths = kwargs['inputPaths'] + + _setter("input_template", input_template) if input_paths is not None: - pulumi.set(__self__, "input_paths", input_paths) + _setter("input_paths", input_paths) @property @pulumi.getter(name="inputTemplate") @@ -1697,8 +2277,21 @@ def __init__(__self__, *, """ :param str partition_key_path: The JSON path to be extracted from the event and used as the partition key. """ + EventTargetKinesisTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + partition_key_path=partition_key_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + partition_key_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if partition_key_path is None and 'partitionKeyPath' in kwargs: + partition_key_path = kwargs['partitionKeyPath'] + if partition_key_path is not None: - pulumi.set(__self__, "partition_key_path", partition_key_path) + _setter("partition_key_path", partition_key_path) @property @pulumi.getter(name="partitionKeyPath") @@ -1749,17 +2342,48 @@ def __init__(__self__, *, :param str statement_name: The name of the SQL statement. :param bool with_event: Indicates whether to send an event back to EventBridge after the SQL statement runs. """ - pulumi.set(__self__, "database", database) + EventTargetRedshiftTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + db_user=db_user, + secrets_manager_arn=secrets_manager_arn, + sql=sql, + statement_name=statement_name, + with_event=with_event, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + db_user: Optional[str] = None, + secrets_manager_arn: Optional[str] = None, + sql: Optional[str] = None, + statement_name: Optional[str] = None, + with_event: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if db_user is None and 'dbUser' in kwargs: + db_user = kwargs['dbUser'] + if secrets_manager_arn is None and 'secretsManagerArn' in kwargs: + secrets_manager_arn = kwargs['secretsManagerArn'] + if statement_name is None and 'statementName' in kwargs: + statement_name = kwargs['statementName'] + if with_event is None and 'withEvent' in kwargs: + with_event = kwargs['withEvent'] + + _setter("database", database) if db_user is not None: - pulumi.set(__self__, "db_user", db_user) + _setter("db_user", db_user) if secrets_manager_arn is not None: - pulumi.set(__self__, "secrets_manager_arn", secrets_manager_arn) + _setter("secrets_manager_arn", secrets_manager_arn) if sql is not None: - pulumi.set(__self__, "sql", sql) + _setter("sql", sql) if statement_name is not None: - pulumi.set(__self__, "statement_name", statement_name) + _setter("statement_name", statement_name) if with_event is not None: - pulumi.set(__self__, "with_event", with_event) + _setter("with_event", with_event) @property @pulumi.getter @@ -1838,10 +2462,27 @@ def __init__(__self__, *, :param int maximum_event_age_in_seconds: The age in seconds to continue to make retry attempts. :param int maximum_retry_attempts: maximum number of retry attempts to make before the request fails """ + EventTargetRetryPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_event_age_in_seconds=maximum_event_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_event_age_in_seconds: Optional[int] = None, + maximum_retry_attempts: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_event_age_in_seconds is None and 'maximumEventAgeInSeconds' in kwargs: + maximum_event_age_in_seconds = kwargs['maximumEventAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if maximum_event_age_in_seconds is not None: - pulumi.set(__self__, "maximum_event_age_in_seconds", maximum_event_age_in_seconds) + _setter("maximum_event_age_in_seconds", maximum_event_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) @property @pulumi.getter(name="maximumEventAgeInSeconds") @@ -1869,8 +2510,25 @@ def __init__(__self__, *, :param str key: Can be either `tag:tag-key` or `InstanceIds`. :param Sequence[str] values: If Key is `tag:tag-key`, Values is a list of tag values. If Key is `InstanceIds`, Values is a list of Amazon EC2 instance IDs. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + EventTargetRunCommandTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -1913,8 +2571,21 @@ def __init__(__self__, *, """ :param Sequence['EventTargetSagemakerPipelineTargetPipelineParameterListArgs'] pipeline_parameter_lists: List of Parameter names and values for SageMaker Model Building Pipeline execution. """ + EventTargetSagemakerPipelineTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + pipeline_parameter_lists=pipeline_parameter_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pipeline_parameter_lists: Optional[Sequence['outputs.EventTargetSagemakerPipelineTargetPipelineParameterList']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pipeline_parameter_lists is None and 'pipelineParameterLists' in kwargs: + pipeline_parameter_lists = kwargs['pipelineParameterLists'] + if pipeline_parameter_lists is not None: - pulumi.set(__self__, "pipeline_parameter_lists", pipeline_parameter_lists) + _setter("pipeline_parameter_lists", pipeline_parameter_lists) @property @pulumi.getter(name="pipelineParameterLists") @@ -1934,8 +2605,25 @@ def __init__(__self__, *, :param str name: Name of parameter to start execution of a SageMaker Model Building Pipeline. :param str value: Value of parameter to start execution of a SageMaker Model Building Pipeline. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + EventTargetSagemakerPipelineTargetPipelineParameterList._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1978,8 +2666,21 @@ def __init__(__self__, *, """ :param str message_group_id: The FIFO message group ID to use as the target. """ + EventTargetSqsTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_group_id=message_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_group_id is None and 'messageGroupId' in kwargs: + message_group_id = kwargs['messageGroupId'] + if message_group_id is not None: - pulumi.set(__self__, "message_group_id", message_group_id) + _setter("message_group_id", message_group_id) @property @pulumi.getter(name="messageGroupId") @@ -2018,10 +2719,27 @@ def __init__(__self__, *, :param float availability_score_threshold: The health event threshold percentage set for availability scores. :param float performance_score_threshold: The health event threshold percentage set for performance scores. """ + InternetMonitorHealthEventsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_score_threshold=availability_score_threshold, + performance_score_threshold=performance_score_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_score_threshold: Optional[float] = None, + performance_score_threshold: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_score_threshold is None and 'availabilityScoreThreshold' in kwargs: + availability_score_threshold = kwargs['availabilityScoreThreshold'] + if performance_score_threshold is None and 'performanceScoreThreshold' in kwargs: + performance_score_threshold = kwargs['performanceScoreThreshold'] + if availability_score_threshold is not None: - pulumi.set(__self__, "availability_score_threshold", availability_score_threshold) + _setter("availability_score_threshold", availability_score_threshold) if performance_score_threshold is not None: - pulumi.set(__self__, "performance_score_threshold", performance_score_threshold) + _setter("performance_score_threshold", performance_score_threshold) @property @pulumi.getter(name="availabilityScoreThreshold") @@ -2061,8 +2779,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, s3_config: Optional['outputs.InternetMonitorInternetMeasurementsLogDeliveryS3Config'] = None): + InternetMonitorInternetMeasurementsLogDelivery._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_config=s3_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_config: Optional['outputs.InternetMonitorInternetMeasurementsLogDeliveryS3Config'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_config is None and 's3Config' in kwargs: + s3_config = kwargs['s3Config'] + if s3_config is not None: - pulumi.set(__self__, "s3_config", s3_config) + _setter("s3_config", s3_config) @property @pulumi.getter(name="s3Config") @@ -2097,11 +2828,34 @@ def __init__(__self__, *, bucket_name: str, bucket_prefix: Optional[str] = None, log_delivery_status: Optional[str] = None): - pulumi.set(__self__, "bucket_name", bucket_name) + InternetMonitorInternetMeasurementsLogDeliveryS3Config._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + log_delivery_status=log_delivery_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + log_delivery_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if log_delivery_status is None and 'logDeliveryStatus' in kwargs: + log_delivery_status = kwargs['logDeliveryStatus'] + + _setter("bucket_name", bucket_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if log_delivery_status is not None: - pulumi.set(__self__, "log_delivery_status", log_delivery_status) + _setter("log_delivery_status", log_delivery_status) @property @pulumi.getter(name="bucketName") @@ -2153,15 +2907,44 @@ def __init__(__self__, *, :param Mapping[str, str] dimensions: Map of fields to use as dimensions for the metric. Up to 3 dimensions are allowed. Conflicts with `default_value`. :param str unit: The unit to assign to the metric. If you omit this, the unit is set as `None`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "value", value) + LogMetricFilterMetricTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + namespace=namespace, + value=value, + default_value=default_value, + dimensions=dimensions, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + namespace: Optional[str] = None, + value: Optional[str] = None, + default_value: Optional[str] = None, + dimensions: Optional[Mapping[str, str]] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + + _setter("name", name) + _setter("namespace", namespace) + _setter("value", value) if default_value is not None: - pulumi.set(__self__, "default_value", default_value) + _setter("default_value", default_value) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter @@ -2254,19 +3037,48 @@ def __init__(__self__, *, > **NOTE:** You must specify either `metric` or `expression`. Not both. """ - pulumi.set(__self__, "id", id) + MetricAlarmMetricQuery._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + account_id=account_id, + expression=expression, + label=label, + metric=metric, + period=period, + return_data=return_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + account_id: Optional[str] = None, + expression: Optional[str] = None, + label: Optional[str] = None, + metric: Optional['outputs.MetricAlarmMetricQueryMetric'] = None, + period: Optional[int] = None, + return_data: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if return_data is None and 'returnData' in kwargs: + return_data = kwargs['returnData'] + + _setter("id", id) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if metric is not None: - pulumi.set(__self__, "metric", metric) + _setter("metric", metric) if period is not None: - pulumi.set(__self__, "period", period) + _setter("period", period) if return_data is not None: - pulumi.set(__self__, "return_data", return_data) + _setter("return_data", return_data) @property @pulumi.getter @@ -2368,15 +3180,44 @@ def __init__(__self__, *, See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). :param str unit: The unit for this metric. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "period", period) - pulumi.set(__self__, "stat", stat) + MetricAlarmMetricQueryMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + period=period, + stat=stat, + dimensions=dimensions, + namespace=namespace, + unit=unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + period: Optional[int] = None, + stat: Optional[str] = None, + dimensions: Optional[Mapping[str, str]] = None, + namespace: Optional[str] = None, + unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if period is None: + raise TypeError("Missing 'period' argument") + if stat is None: + raise TypeError("Missing 'stat' argument") + + _setter("metric_name", metric_name) + _setter("period", period) + _setter("stat", stat) if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) + _setter("dimensions", dimensions) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) @property @pulumi.getter(name="metricName") @@ -2458,9 +3299,26 @@ def __init__(__self__, *, :param str namespace: Name of the metric namespace in the filter. :param Sequence[str] metric_names: An array that defines the metrics you want to exclude for this metric namespace """ - pulumi.set(__self__, "namespace", namespace) + MetricStreamExcludeFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + metric_names=metric_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[str] = None, + metric_names: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if metric_names is None and 'metricNames' in kwargs: + metric_names = kwargs['metricNames'] + + _setter("namespace", namespace) if metric_names is not None: - pulumi.set(__self__, "metric_names", metric_names) + _setter("metric_names", metric_names) @property @pulumi.getter @@ -2505,9 +3363,26 @@ def __init__(__self__, *, :param str namespace: Name of the metric namespace in the filter. :param Sequence[str] metric_names: An array that defines the metrics you want to include for this metric namespace """ - pulumi.set(__self__, "namespace", namespace) + MetricStreamIncludeFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + metric_names=metric_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[str] = None, + metric_names: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if metric_names is None and 'metricNames' in kwargs: + metric_names = kwargs['metricNames'] + + _setter("namespace", namespace) if metric_names is not None: - pulumi.set(__self__, "metric_names", metric_names) + _setter("metric_names", metric_names) @property @pulumi.getter @@ -2554,8 +3429,29 @@ def __init__(__self__, *, :param Sequence[str] additional_statistics: The additional statistics to stream for the metrics listed in `include_metrics`. :param Sequence['MetricStreamStatisticsConfigurationIncludeMetricArgs'] include_metrics: An array that defines the metrics that are to have additional statistics streamed. See details below. """ - pulumi.set(__self__, "additional_statistics", additional_statistics) - pulumi.set(__self__, "include_metrics", include_metrics) + MetricStreamStatisticsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_statistics=additional_statistics, + include_metrics=include_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_statistics: Optional[Sequence[str]] = None, + include_metrics: Optional[Sequence['outputs.MetricStreamStatisticsConfigurationIncludeMetric']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_statistics is None and 'additionalStatistics' in kwargs: + additional_statistics = kwargs['additionalStatistics'] + if additional_statistics is None: + raise TypeError("Missing 'additional_statistics' argument") + if include_metrics is None and 'includeMetrics' in kwargs: + include_metrics = kwargs['includeMetrics'] + if include_metrics is None: + raise TypeError("Missing 'include_metrics' argument") + + _setter("additional_statistics", additional_statistics) + _setter("include_metrics", include_metrics) @property @pulumi.getter(name="additionalStatistics") @@ -2600,8 +3496,27 @@ def __init__(__self__, *, :param str metric_name: The name of the metric. :param str namespace: Name of the metric namespace in the filter. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) + MetricStreamStatisticsConfigurationIncludeMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + namespace: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("metric_name", metric_name) + _setter("namespace", namespace) @property @pulumi.getter(name="metricName") @@ -2631,10 +3546,31 @@ def __init__(__self__, *, :param 'GetLogDataProtectionPolicyDocumentStatementOperationArgs' operation: Configures the data protection operation applied by this statement. :param str sid: Name of this statement. """ - pulumi.set(__self__, "data_identifiers", data_identifiers) - pulumi.set(__self__, "operation", operation) + GetLogDataProtectionPolicyDocumentStatementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_identifiers=data_identifiers, + operation=operation, + sid=sid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_identifiers: Optional[Sequence[str]] = None, + operation: Optional['outputs.GetLogDataProtectionPolicyDocumentStatementOperationResult'] = None, + sid: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_identifiers is None and 'dataIdentifiers' in kwargs: + data_identifiers = kwargs['dataIdentifiers'] + if data_identifiers is None: + raise TypeError("Missing 'data_identifiers' argument") + if operation is None: + raise TypeError("Missing 'operation' argument") + + _setter("data_identifiers", data_identifiers) + _setter("operation", operation) if sid is not None: - pulumi.set(__self__, "sid", sid) + _setter("sid", sid) @property @pulumi.getter(name="dataIdentifiers") @@ -2672,10 +3608,23 @@ def __init__(__self__, *, > Every policy statement must specify exactly one operation. """ + GetLogDataProtectionPolicyDocumentStatementOperationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit=audit, + deidentify=deidentify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit: Optional['outputs.GetLogDataProtectionPolicyDocumentStatementOperationAuditResult'] = None, + deidentify: Optional['outputs.GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit is not None: - pulumi.set(__self__, "audit", audit) + _setter("audit", audit) if deidentify is not None: - pulumi.set(__self__, "deidentify", deidentify) + _setter("deidentify", deidentify) @property @pulumi.getter @@ -2703,7 +3652,22 @@ def __init__(__self__, *, """ :param 'GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs' findings_destination: Configures destinations to send audit findings to. """ - pulumi.set(__self__, "findings_destination", findings_destination) + GetLogDataProtectionPolicyDocumentStatementOperationAuditResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + findings_destination=findings_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + findings_destination: Optional['outputs.GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if findings_destination is None and 'findingsDestination' in kwargs: + findings_destination = kwargs['findingsDestination'] + if findings_destination is None: + raise TypeError("Missing 'findings_destination' argument") + + _setter("findings_destination", findings_destination) @property @pulumi.getter(name="findingsDestination") @@ -2725,12 +3689,29 @@ def __init__(__self__, *, :param 'GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs' firehose: Configures Kinesis Firehose as a findings destination. :param 'GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args' s3: Configures S3 as a findings destination. """ + GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + firehose=firehose, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional['outputs.GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsResult'] = None, + firehose: Optional['outputs.GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseResult'] = None, + s3: Optional['outputs.GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Result'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -2764,7 +3745,22 @@ def __init__(__self__, *, """ :param str log_group: Name of the CloudWatch Log Group to send findings to. """ - pulumi.set(__self__, "log_group", log_group) + GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + if log_group is None: + raise TypeError("Missing 'log_group' argument") + + _setter("log_group", log_group) @property @pulumi.getter(name="logGroup") @@ -2782,7 +3778,22 @@ def __init__(__self__, *, """ :param str delivery_stream: Name of the Kinesis Firehose Delivery Stream to send findings to. """ - pulumi.set(__self__, "delivery_stream", delivery_stream) + GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream=delivery_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream is None and 'deliveryStream' in kwargs: + delivery_stream = kwargs['deliveryStream'] + if delivery_stream is None: + raise TypeError("Missing 'delivery_stream' argument") + + _setter("delivery_stream", delivery_stream) @property @pulumi.getter(name="deliveryStream") @@ -2800,7 +3811,20 @@ def __init__(__self__, *, """ :param str bucket: Name of the S3 Bucket to send findings to. """ - pulumi.set(__self__, "bucket", bucket) + GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Result._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) @property @pulumi.getter @@ -2818,7 +3842,22 @@ def __init__(__self__, *, """ :param 'GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs' mask_config: An empty object that configures masking. """ - pulumi.set(__self__, "mask_config", mask_config) + GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + mask_config=mask_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mask_config: Optional['outputs.GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mask_config is None and 'maskConfig' in kwargs: + mask_config = kwargs['maskConfig'] + if mask_config is None: + raise TypeError("Missing 'mask_config' argument") + + _setter("mask_config", mask_config) @property @pulumi.getter(name="maskConfig") @@ -2833,5 +3872,12 @@ def mask_config(self) -> 'outputs.GetLogDataProtectionPolicyDocumentStatementOpe class GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigResult(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + diff --git a/sdk/python/pulumi_aws/cloudwatch/query_definition.py b/sdk/python/pulumi_aws/cloudwatch/query_definition.py index 2ce4f17fbe2..7468aebc915 100644 --- a/sdk/python/pulumi_aws/cloudwatch/query_definition.py +++ b/sdk/python/pulumi_aws/cloudwatch/query_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['QueryDefinitionArgs', 'QueryDefinition'] @@ -23,11 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] log_group_names: Specific log groups to use with the query. :param pulumi.Input[str] name: The name of the query. """ - pulumi.set(__self__, "query_string", query_string) + QueryDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_string=query_string, + log_group_names=log_group_names, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_string: Optional[pulumi.Input[str]] = None, + log_group_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if query_string is None: + raise TypeError("Missing 'query_string' argument") + if log_group_names is None and 'logGroupNames' in kwargs: + log_group_names = kwargs['logGroupNames'] + + _setter("query_string", query_string) if log_group_names is not None: - pulumi.set(__self__, "log_group_names", log_group_names) + _setter("log_group_names", log_group_names) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="queryString") @@ -80,14 +101,37 @@ def __init__(__self__, *, :param pulumi.Input[str] query_definition_id: The query definition ID. :param pulumi.Input[str] query_string: The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). """ + _QueryDefinitionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_names=log_group_names, + name=name, + query_definition_id=query_definition_id, + query_string=query_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + query_definition_id: Optional[pulumi.Input[str]] = None, + query_string: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_names is None and 'logGroupNames' in kwargs: + log_group_names = kwargs['logGroupNames'] + if query_definition_id is None and 'queryDefinitionId' in kwargs: + query_definition_id = kwargs['queryDefinitionId'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if log_group_names is not None: - pulumi.set(__self__, "log_group_names", log_group_names) + _setter("log_group_names", log_group_names) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if query_definition_id is not None: - pulumi.set(__self__, "query_definition_id", query_definition_id) + _setter("query_definition_id", query_definition_id) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) @property @pulumi.getter(name="logGroupNames") @@ -227,6 +271,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + QueryDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codeartifact/_inputs.py b/sdk/python/pulumi_aws/codeartifact/_inputs.py index d1abb83ad7e..45c3eae1dbe 100644 --- a/sdk/python/pulumi_aws/codeartifact/_inputs.py +++ b/sdk/python/pulumi_aws/codeartifact/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,11 +23,32 @@ def __init__(__self__, *, """ :param pulumi.Input[str] external_connection_name: The name of the external connection associated with a repository. """ - pulumi.set(__self__, "external_connection_name", external_connection_name) + RepositoryExternalConnectionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_connection_name=external_connection_name, + package_format=package_format, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_connection_name: Optional[pulumi.Input[str]] = None, + package_format: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_connection_name is None and 'externalConnectionName' in kwargs: + external_connection_name = kwargs['externalConnectionName'] + if external_connection_name is None: + raise TypeError("Missing 'external_connection_name' argument") + if package_format is None and 'packageFormat' in kwargs: + package_format = kwargs['packageFormat'] + + _setter("external_connection_name", external_connection_name) if package_format is not None: - pulumi.set(__self__, "package_format", package_format) + _setter("package_format", package_format) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="externalConnectionName") @@ -67,7 +88,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] repository_name: The name of an upstream repository. """ - pulumi.set(__self__, "repository_name", repository_name) + RepositoryUpstreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + + _setter("repository_name", repository_name) @property @pulumi.getter(name="repositoryName") diff --git a/sdk/python/pulumi_aws/codeartifact/domain.py b/sdk/python/pulumi_aws/codeartifact/domain.py index b66dfd21a86..31f9bfb20d3 100644 --- a/sdk/python/pulumi_aws/codeartifact/domain.py +++ b/sdk/python/pulumi_aws/codeartifact/domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainArgs', 'Domain'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] encryption_key: The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. :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. """ - pulumi.set(__self__, "domain", domain) + DomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + encryption_key=encryption_key, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + encryption_key: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + if encryption_key is None and 'encryptionKey' in kwargs: + encryption_key = kwargs['encryptionKey'] + + _setter("domain", domain) if encryption_key is not None: - pulumi.set(__self__, "encryption_key", encryption_key) + _setter("encryption_key", encryption_key) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -90,27 +109,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _DomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + asset_size_bytes=asset_size_bytes, + created_time=created_time, + domain=domain, + encryption_key=encryption_key, + owner=owner, + repository_count=repository_count, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + asset_size_bytes: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + encryption_key: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + repository_count: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if asset_size_bytes is None and 'assetSizeBytes' in kwargs: + asset_size_bytes = kwargs['assetSizeBytes'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if encryption_key is None and 'encryptionKey' in kwargs: + encryption_key = kwargs['encryptionKey'] + if repository_count is None and 'repositoryCount' in kwargs: + repository_count = kwargs['repositoryCount'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if asset_size_bytes is not None: - pulumi.set(__self__, "asset_size_bytes", asset_size_bytes) + _setter("asset_size_bytes", asset_size_bytes) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if encryption_key is not None: - pulumi.set(__self__, "encryption_key", encryption_key) + _setter("encryption_key", encryption_key) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if repository_count is not None: - pulumi.set(__self__, "repository_count", repository_count) + _setter("repository_count", repository_count) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -295,6 +351,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codeartifact/domain_permissions.py b/sdk/python/pulumi_aws/codeartifact/domain_permissions.py index 81358e14bec..6c9dd417e18 100644 --- a/sdk/python/pulumi_aws/codeartifact/domain_permissions.py +++ b/sdk/python/pulumi_aws/codeartifact/domain_permissions.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainPermissionsArgs', 'DomainPermissions'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_owner: The account number of the AWS account that owns the domain. :param pulumi.Input[str] policy_revision: The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. """ - pulumi.set(__self__, "domain", domain) - pulumi.set(__self__, "policy_document", policy_document) + DomainPermissionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + policy_document=policy_document, + domain_owner=domain_owner, + policy_revision=policy_revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + domain_owner: Optional[pulumi.Input[str]] = None, + policy_revision: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if policy_document is None: + raise TypeError("Missing 'policy_document' argument") + if domain_owner is None and 'domainOwner' in kwargs: + domain_owner = kwargs['domainOwner'] + if policy_revision is None and 'policyRevision' in kwargs: + policy_revision = kwargs['policyRevision'] + + _setter("domain", domain) + _setter("policy_document", policy_document) if domain_owner is not None: - pulumi.set(__self__, "domain_owner", domain_owner) + _setter("domain_owner", domain_owner) if policy_revision is not None: - pulumi.set(__self__, "policy_revision", policy_revision) + _setter("policy_revision", policy_revision) @property @pulumi.getter @@ -97,16 +124,43 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_revision: The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. :param pulumi.Input[str] resource_arn: The ARN of the resource associated with the resource policy. """ + _DomainPermissionsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + domain_owner=domain_owner, + policy_document=policy_document, + policy_revision=policy_revision, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + domain_owner: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + policy_revision: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_owner is None and 'domainOwner' in kwargs: + domain_owner = kwargs['domainOwner'] + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if policy_revision is None and 'policyRevision' in kwargs: + policy_revision = kwargs['policyRevision'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if domain_owner is not None: - pulumi.set(__self__, "domain_owner", domain_owner) + _setter("domain_owner", domain_owner) if policy_document is not None: - pulumi.set(__self__, "policy_document", policy_document) + _setter("policy_document", policy_document) if policy_revision is not None: - pulumi.set(__self__, "policy_revision", policy_revision) + _setter("policy_revision", policy_revision) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -272,6 +326,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainPermissionsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codeartifact/get_authorization_token.py b/sdk/python/pulumi_aws/codeartifact/get_authorization_token.py index 410e091cfb6..f2a35ab8fb4 100644 --- a/sdk/python/pulumi_aws/codeartifact/get_authorization_token.py +++ b/sdk/python/pulumi_aws/codeartifact/get_authorization_token.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/codeartifact/get_repository_endpoint.py b/sdk/python/pulumi_aws/codeartifact/get_repository_endpoint.py index 397ab09a7cb..09ade03abac 100644 --- a/sdk/python/pulumi_aws/codeartifact/get_repository_endpoint.py +++ b/sdk/python/pulumi_aws/codeartifact/get_repository_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/codeartifact/outputs.py b/sdk/python/pulumi_aws/codeartifact/outputs.py index cc60461365a..64ed199dbf1 100644 --- a/sdk/python/pulumi_aws/codeartifact/outputs.py +++ b/sdk/python/pulumi_aws/codeartifact/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -42,11 +42,32 @@ def __init__(__self__, *, """ :param str external_connection_name: The name of the external connection associated with a repository. """ - pulumi.set(__self__, "external_connection_name", external_connection_name) + RepositoryExternalConnections._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_connection_name=external_connection_name, + package_format=package_format, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_connection_name: Optional[str] = None, + package_format: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_connection_name is None and 'externalConnectionName' in kwargs: + external_connection_name = kwargs['externalConnectionName'] + if external_connection_name is None: + raise TypeError("Missing 'external_connection_name' argument") + if package_format is None and 'packageFormat' in kwargs: + package_format = kwargs['packageFormat'] + + _setter("external_connection_name", external_connection_name) if package_format is not None: - pulumi.set(__self__, "package_format", package_format) + _setter("package_format", package_format) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="externalConnectionName") @@ -91,7 +112,22 @@ def __init__(__self__, *, """ :param str repository_name: The name of an upstream repository. """ - pulumi.set(__self__, "repository_name", repository_name) + RepositoryUpstream._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + + _setter("repository_name", repository_name) @property @pulumi.getter(name="repositoryName") diff --git a/sdk/python/pulumi_aws/codeartifact/repository.py b/sdk/python/pulumi_aws/codeartifact/repository.py index 0d40489aa7b..452e320436e 100644 --- a/sdk/python/pulumi_aws/codeartifact/repository.py +++ b/sdk/python/pulumi_aws/codeartifact/repository.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,18 +33,49 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['RepositoryUpstreamArgs']]] upstreams: A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. see Upstream """ - pulumi.set(__self__, "domain", domain) - pulumi.set(__self__, "repository", repository) + RepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + repository=repository, + description=description, + domain_owner=domain_owner, + external_connections=external_connections, + tags=tags, + upstreams=upstreams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + repository: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_owner: Optional[pulumi.Input[str]] = None, + external_connections: Optional[pulumi.Input['RepositoryExternalConnectionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + upstreams: Optional[pulumi.Input[Sequence[pulumi.Input['RepositoryUpstreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + if repository is None: + raise TypeError("Missing 'repository' argument") + if domain_owner is None and 'domainOwner' in kwargs: + domain_owner = kwargs['domainOwner'] + if external_connections is None and 'externalConnections' in kwargs: + external_connections = kwargs['externalConnections'] + + _setter("domain", domain) + _setter("repository", repository) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if domain_owner is not None: - pulumi.set(__self__, "domain_owner", domain_owner) + _setter("domain_owner", domain_owner) if external_connections is not None: - pulumi.set(__self__, "external_connections", external_connections) + _setter("external_connections", external_connections) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if upstreams is not None: - pulumi.set(__self__, "upstreams", upstreams) + _setter("upstreams", upstreams) @property @pulumi.getter @@ -157,29 +188,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input['RepositoryUpstreamArgs']]] upstreams: A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. see Upstream """ + _RepositoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + administrator_account=administrator_account, + arn=arn, + description=description, + domain=domain, + domain_owner=domain_owner, + external_connections=external_connections, + repository=repository, + tags=tags, + tags_all=tags_all, + upstreams=upstreams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + administrator_account: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + domain_owner: Optional[pulumi.Input[str]] = None, + external_connections: Optional[pulumi.Input['RepositoryExternalConnectionsArgs']] = None, + repository: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + upstreams: Optional[pulumi.Input[Sequence[pulumi.Input['RepositoryUpstreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if administrator_account is None and 'administratorAccount' in kwargs: + administrator_account = kwargs['administratorAccount'] + if domain_owner is None and 'domainOwner' in kwargs: + domain_owner = kwargs['domainOwner'] + if external_connections is None and 'externalConnections' in kwargs: + external_connections = kwargs['externalConnections'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if administrator_account is not None: - pulumi.set(__self__, "administrator_account", administrator_account) + _setter("administrator_account", administrator_account) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if domain_owner is not None: - pulumi.set(__self__, "domain_owner", domain_owner) + _setter("domain_owner", domain_owner) if external_connections is not None: - pulumi.set(__self__, "external_connections", external_connections) + _setter("external_connections", external_connections) if repository is not None: - pulumi.set(__self__, "repository", repository) + _setter("repository", repository) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if upstreams is not None: - pulumi.set(__self__, "upstreams", upstreams) + _setter("upstreams", upstreams) @property @pulumi.getter(name="administratorAccount") @@ -460,6 +528,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RepositoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -486,6 +558,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'domain'") __props__.__dict__["domain"] = domain __props__.__dict__["domain_owner"] = domain_owner + external_connections = _utilities.configure(external_connections, RepositoryExternalConnectionsArgs, True) __props__.__dict__["external_connections"] = external_connections if repository is None and not opts.urn: raise TypeError("Missing required property 'repository'") diff --git a/sdk/python/pulumi_aws/codeartifact/repository_permissions_policy.py b/sdk/python/pulumi_aws/codeartifact/repository_permissions_policy.py index 85ebe085a3a..48b3524b8e4 100644 --- a/sdk/python/pulumi_aws/codeartifact/repository_permissions_policy.py +++ b/sdk/python/pulumi_aws/codeartifact/repository_permissions_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RepositoryPermissionsPolicyArgs', 'RepositoryPermissionsPolicy'] @@ -27,13 +27,44 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_owner: The account number of the AWS account that owns the domain. :param pulumi.Input[str] policy_revision: The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. """ - pulumi.set(__self__, "domain", domain) - pulumi.set(__self__, "policy_document", policy_document) - pulumi.set(__self__, "repository", repository) + RepositoryPermissionsPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + policy_document=policy_document, + repository=repository, + domain_owner=domain_owner, + policy_revision=policy_revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + repository: Optional[pulumi.Input[str]] = None, + domain_owner: Optional[pulumi.Input[str]] = None, + policy_revision: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if policy_document is None: + raise TypeError("Missing 'policy_document' argument") + if repository is None: + raise TypeError("Missing 'repository' argument") + if domain_owner is None and 'domainOwner' in kwargs: + domain_owner = kwargs['domainOwner'] + if policy_revision is None and 'policyRevision' in kwargs: + policy_revision = kwargs['policyRevision'] + + _setter("domain", domain) + _setter("policy_document", policy_document) + _setter("repository", repository) if domain_owner is not None: - pulumi.set(__self__, "domain_owner", domain_owner) + _setter("domain_owner", domain_owner) if policy_revision is not None: - pulumi.set(__self__, "policy_revision", policy_revision) + _setter("policy_revision", policy_revision) @property @pulumi.getter @@ -114,18 +145,47 @@ def __init__(__self__, *, :param pulumi.Input[str] repository: The name of the repository to set the resource policy on. :param pulumi.Input[str] resource_arn: The ARN of the resource associated with the resource policy. """ + _RepositoryPermissionsPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + domain_owner=domain_owner, + policy_document=policy_document, + policy_revision=policy_revision, + repository=repository, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + domain_owner: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + policy_revision: Optional[pulumi.Input[str]] = None, + repository: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_owner is None and 'domainOwner' in kwargs: + domain_owner = kwargs['domainOwner'] + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if policy_revision is None and 'policyRevision' in kwargs: + policy_revision = kwargs['policyRevision'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if domain_owner is not None: - pulumi.set(__self__, "domain_owner", domain_owner) + _setter("domain_owner", domain_owner) if policy_document is not None: - pulumi.set(__self__, "policy_document", policy_document) + _setter("policy_document", policy_document) if policy_revision is not None: - pulumi.set(__self__, "policy_revision", policy_revision) + _setter("policy_revision", policy_revision) if repository is not None: - pulumi.set(__self__, "repository", repository) + _setter("repository", repository) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -313,6 +373,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RepositoryPermissionsPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codebuild/_inputs.py b/sdk/python/pulumi_aws/codebuild/_inputs.py index b9318ecfc8d..71b34b764e4 100644 --- a/sdk/python/pulumi_aws/codebuild/_inputs.py +++ b/sdk/python/pulumi_aws/codebuild/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -61,25 +61,66 @@ def __init__(__self__, *, :param pulumi.Input[str] packaging: Type of build output artifact to create. If `type` is set to `S3`, valid values are `NONE`, `ZIP` :param pulumi.Input[str] path: If `type` is set to `S3`, this is the path to the output artifact. """ - pulumi.set(__self__, "type", type) + ProjectArtifactsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + artifact_identifier=artifact_identifier, + bucket_owner_access=bucket_owner_access, + encryption_disabled=encryption_disabled, + location=location, + name=name, + namespace_type=namespace_type, + override_artifact_name=override_artifact_name, + packaging=packaging, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + artifact_identifier: Optional[pulumi.Input[str]] = None, + bucket_owner_access: Optional[pulumi.Input[str]] = None, + encryption_disabled: Optional[pulumi.Input[bool]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + namespace_type: Optional[pulumi.Input[str]] = None, + override_artifact_name: Optional[pulumi.Input[bool]] = None, + packaging: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if artifact_identifier is None and 'artifactIdentifier' in kwargs: + artifact_identifier = kwargs['artifactIdentifier'] + if bucket_owner_access is None and 'bucketOwnerAccess' in kwargs: + bucket_owner_access = kwargs['bucketOwnerAccess'] + if encryption_disabled is None and 'encryptionDisabled' in kwargs: + encryption_disabled = kwargs['encryptionDisabled'] + if namespace_type is None and 'namespaceType' in kwargs: + namespace_type = kwargs['namespaceType'] + if override_artifact_name is None and 'overrideArtifactName' in kwargs: + override_artifact_name = kwargs['overrideArtifactName'] + + _setter("type", type) if artifact_identifier is not None: - pulumi.set(__self__, "artifact_identifier", artifact_identifier) + _setter("artifact_identifier", artifact_identifier) if bucket_owner_access is not None: - pulumi.set(__self__, "bucket_owner_access", bucket_owner_access) + _setter("bucket_owner_access", bucket_owner_access) if encryption_disabled is not None: - pulumi.set(__self__, "encryption_disabled", encryption_disabled) + _setter("encryption_disabled", encryption_disabled) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if namespace_type is not None: - pulumi.set(__self__, "namespace_type", namespace_type) + _setter("namespace_type", namespace_type) if override_artifact_name is not None: - pulumi.set(__self__, "override_artifact_name", override_artifact_name) + _setter("override_artifact_name", override_artifact_name) if packaging is not None: - pulumi.set(__self__, "packaging", packaging) + _setter("packaging", packaging) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter @@ -215,13 +256,38 @@ def __init__(__self__, *, :param pulumi.Input['ProjectBuildBatchConfigRestrictionsArgs'] restrictions: Configuration block specifying the restrictions for the batch build. Detailed below. :param pulumi.Input[int] timeout_in_mins: Specifies the maximum amount of time, in minutes, that the batch build must be completed in. """ - pulumi.set(__self__, "service_role", service_role) + ProjectBuildBatchConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_role=service_role, + combine_artifacts=combine_artifacts, + restrictions=restrictions, + timeout_in_mins=timeout_in_mins, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_role: Optional[pulumi.Input[str]] = None, + combine_artifacts: Optional[pulumi.Input[bool]] = None, + restrictions: Optional[pulumi.Input['ProjectBuildBatchConfigRestrictionsArgs']] = None, + timeout_in_mins: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if service_role is None: + raise TypeError("Missing 'service_role' argument") + if combine_artifacts is None and 'combineArtifacts' in kwargs: + combine_artifacts = kwargs['combineArtifacts'] + if timeout_in_mins is None and 'timeoutInMins' in kwargs: + timeout_in_mins = kwargs['timeoutInMins'] + + _setter("service_role", service_role) if combine_artifacts is not None: - pulumi.set(__self__, "combine_artifacts", combine_artifacts) + _setter("combine_artifacts", combine_artifacts) if restrictions is not None: - pulumi.set(__self__, "restrictions", restrictions) + _setter("restrictions", restrictions) if timeout_in_mins is not None: - pulumi.set(__self__, "timeout_in_mins", timeout_in_mins) + _setter("timeout_in_mins", timeout_in_mins) @property @pulumi.getter(name="serviceRole") @@ -281,10 +347,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] compute_types_alloweds: An array of strings that specify the compute types that are allowed for the batch build. See [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the AWS CodeBuild User Guide for these values. :param pulumi.Input[int] maximum_builds_allowed: Specifies the maximum number of builds allowed. """ + ProjectBuildBatchConfigRestrictionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_types_alloweds=compute_types_alloweds, + maximum_builds_allowed=maximum_builds_allowed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_types_alloweds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + maximum_builds_allowed: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_types_alloweds is None and 'computeTypesAlloweds' in kwargs: + compute_types_alloweds = kwargs['computeTypesAlloweds'] + if maximum_builds_allowed is None and 'maximumBuildsAllowed' in kwargs: + maximum_builds_allowed = kwargs['maximumBuildsAllowed'] + if compute_types_alloweds is not None: - pulumi.set(__self__, "compute_types_alloweds", compute_types_alloweds) + _setter("compute_types_alloweds", compute_types_alloweds) if maximum_builds_allowed is not None: - pulumi.set(__self__, "maximum_builds_allowed", maximum_builds_allowed) + _setter("maximum_builds_allowed", maximum_builds_allowed) @property @pulumi.getter(name="computeTypesAlloweds") @@ -322,12 +405,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] modes: Specifies settings that AWS CodeBuild uses to store and reuse build dependencies. Valid values: `LOCAL_SOURCE_CACHE`, `LOCAL_DOCKER_LAYER_CACHE`, `LOCAL_CUSTOM_CACHE`. :param pulumi.Input[str] type: Type of storage that will be used for the AWS CodeBuild project cache. Valid values: `NO_CACHE`, `LOCAL`, `S3`. Defaults to `NO_CACHE`. """ + ProjectCacheArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + location=location, + modes=modes, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + location: Optional[pulumi.Input[str]] = None, + modes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if modes is not None: - pulumi.set(__self__, "modes", modes) + _setter("modes", modes) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -387,19 +485,60 @@ def __init__(__self__, *, :param pulumi.Input[bool] privileged_mode: Whether to enable running the Docker daemon inside a Docker container. Defaults to `false`. :param pulumi.Input['ProjectEnvironmentRegistryCredentialArgs'] registry_credential: Configuration block. Detailed below. """ - pulumi.set(__self__, "compute_type", compute_type) - pulumi.set(__self__, "image", image) - pulumi.set(__self__, "type", type) + ProjectEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_type=compute_type, + image=image, + type=type, + certificate=certificate, + environment_variables=environment_variables, + image_pull_credentials_type=image_pull_credentials_type, + privileged_mode=privileged_mode, + registry_credential=registry_credential, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_type: Optional[pulumi.Input[str]] = None, + image: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectEnvironmentEnvironmentVariableArgs']]]] = None, + image_pull_credentials_type: Optional[pulumi.Input[str]] = None, + privileged_mode: Optional[pulumi.Input[bool]] = None, + registry_credential: Optional[pulumi.Input['ProjectEnvironmentRegistryCredentialArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_type is None and 'computeType' in kwargs: + compute_type = kwargs['computeType'] + if compute_type is None: + raise TypeError("Missing 'compute_type' argument") + if image is None: + raise TypeError("Missing 'image' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if image_pull_credentials_type is None and 'imagePullCredentialsType' in kwargs: + image_pull_credentials_type = kwargs['imagePullCredentialsType'] + if privileged_mode is None and 'privilegedMode' in kwargs: + privileged_mode = kwargs['privilegedMode'] + if registry_credential is None and 'registryCredential' in kwargs: + registry_credential = kwargs['registryCredential'] + + _setter("compute_type", compute_type) + _setter("image", image) + _setter("type", type) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if image_pull_credentials_type is not None: - pulumi.set(__self__, "image_pull_credentials_type", image_pull_credentials_type) + _setter("image_pull_credentials_type", image_pull_credentials_type) if privileged_mode is not None: - pulumi.set(__self__, "privileged_mode", privileged_mode) + _setter("privileged_mode", privileged_mode) if registry_credential is not None: - pulumi.set(__self__, "registry_credential", registry_credential) + _setter("registry_credential", registry_credential) @property @pulumi.getter(name="computeType") @@ -509,10 +648,29 @@ def __init__(__self__, *, :param pulumi.Input[str] value: Environment variable's value. :param pulumi.Input[str] type: Build output artifact's type. Valid values: `CODEPIPELINE`, `NO_ARTIFACTS`, `S3`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ProjectEnvironmentEnvironmentVariableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -560,8 +718,27 @@ def __init__(__self__, *, :param pulumi.Input[str] credential: ARN or name of credentials created using AWS Secrets Manager. :param pulumi.Input[str] credential_provider: Service that created the credentials to access a private Docker registry. Valid value: `SECRETS_MANAGER` (AWS Secrets Manager). """ - pulumi.set(__self__, "credential", credential) - pulumi.set(__self__, "credential_provider", credential_provider) + ProjectEnvironmentRegistryCredentialArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + credential=credential, + credential_provider=credential_provider, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credential: Optional[pulumi.Input[str]] = None, + credential_provider: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credential is None: + raise TypeError("Missing 'credential' argument") + if credential_provider is None and 'credentialProvider' in kwargs: + credential_provider = kwargs['credentialProvider'] + if credential_provider is None: + raise TypeError("Missing 'credential_provider' argument") + + _setter("credential", credential) + _setter("credential_provider", credential_provider) @property @pulumi.getter @@ -603,16 +780,39 @@ def __init__(__self__, *, :param pulumi.Input[str] mount_point: The location in the container where you mount the file system. :param pulumi.Input[str] type: The type of the file system. The one supported type is `EFS`. """ + ProjectFileSystemLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + location=location, + mount_options=mount_options, + mount_point=mount_point, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + mount_options: Optional[pulumi.Input[str]] = None, + mount_point: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if mount_options is not None: - pulumi.set(__self__, "mount_options", mount_options) + _setter("mount_options", mount_options) if mount_point is not None: - pulumi.set(__self__, "mount_point", mount_point) + _setter("mount_point", mount_point) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -684,10 +884,27 @@ def __init__(__self__, *, :param pulumi.Input['ProjectLogsConfigCloudwatchLogsArgs'] cloudwatch_logs: Configuration block. Detailed below. :param pulumi.Input['ProjectLogsConfigS3LogsArgs'] s3_logs: Configuration block. Detailed below. """ + ProjectLogsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + s3_logs=s3_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional[pulumi.Input['ProjectLogsConfigCloudwatchLogsArgs']] = None, + s3_logs: Optional[pulumi.Input['ProjectLogsConfigS3LogsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if s3_logs is None and 's3Logs' in kwargs: + s3_logs = kwargs['s3Logs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if s3_logs is not None: - pulumi.set(__self__, "s3_logs", s3_logs) + _setter("s3_logs", s3_logs) @property @pulumi.getter(name="cloudwatchLogs") @@ -722,15 +939,34 @@ def __init__(__self__, *, stream_name: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] group_name: Group name of the logs in CloudWatch Logs. - :param pulumi.Input[str] status: Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + :param pulumi.Input[str] status: Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. :param pulumi.Input[str] stream_name: Stream name of the logs in CloudWatch Logs. """ + ProjectLogsConfigCloudwatchLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + status=status, + stream_name=stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if stream_name is not None: - pulumi.set(__self__, "stream_name", stream_name) + _setter("stream_name", stream_name) @property @pulumi.getter(name="groupName") @@ -748,7 +984,7 @@ def group_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def status(self) -> Optional[pulumi.Input[str]]: """ - Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. """ return pulumi.get(self, "status") @@ -780,16 +1016,37 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_owner_access: Specifies the bucket owner's access for objects that another account uploads to their Amazon S3 bucket. By default, only the account that uploads the objects to the bucket has access to these objects. This property allows you to give the bucket owner access to these objects. Valid values are `NONE`, `READ_ONLY`, and `FULL`. your CodeBuild service role must have the `s3:PutBucketAcl` permission. This permission allows CodeBuild to modify the access control list for the bucket. :param pulumi.Input[bool] encryption_disabled: Whether to disable encrypting output artifacts. If `type` is set to `NO_ARTIFACTS`, this value is ignored. Defaults to `false`. :param pulumi.Input[str] location: Information about the build output artifact location. If `type` is set to `CODEPIPELINE` or `NO_ARTIFACTS`, this value is ignored. If `type` is set to `S3`, this is the name of the output bucket. - :param pulumi.Input[str] status: Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. - """ + :param pulumi.Input[str] status: Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. + """ + ProjectLogsConfigS3LogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_owner_access=bucket_owner_access, + encryption_disabled=encryption_disabled, + location=location, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_owner_access: Optional[pulumi.Input[str]] = None, + encryption_disabled: Optional[pulumi.Input[bool]] = None, + location: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_owner_access is None and 'bucketOwnerAccess' in kwargs: + bucket_owner_access = kwargs['bucketOwnerAccess'] + if encryption_disabled is None and 'encryptionDisabled' in kwargs: + encryption_disabled = kwargs['encryptionDisabled'] + if bucket_owner_access is not None: - pulumi.set(__self__, "bucket_owner_access", bucket_owner_access) + _setter("bucket_owner_access", bucket_owner_access) if encryption_disabled is not None: - pulumi.set(__self__, "encryption_disabled", encryption_disabled) + _setter("encryption_disabled", encryption_disabled) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="bucketOwnerAccess") @@ -831,7 +1088,7 @@ def location(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def status(self) -> Optional[pulumi.Input[str]]: """ - Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. """ return pulumi.get(self, "status") @@ -865,24 +1122,67 @@ def __init__(__self__, *, :param pulumi.Input[str] packaging: Type of build output artifact to create. If `type` is set to `CODEPIPELINE` or `NO_ARTIFACTS`, this value is ignored if specified. If `type` is set to `S3`, valid values are `NONE` or `ZIP`. :param pulumi.Input[str] path: Along with `namespace_type` and `name`, the pattern that AWS CodeBuild uses to name and store the output artifact. If `type` is set to `CODEPIPELINE` or `NO_ARTIFACTS`, this value is ignored if specified. If `type` is set to `S3`, this is the path to the output artifact. """ - pulumi.set(__self__, "artifact_identifier", artifact_identifier) - pulumi.set(__self__, "type", type) + ProjectSecondaryArtifactArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + artifact_identifier=artifact_identifier, + type=type, + bucket_owner_access=bucket_owner_access, + encryption_disabled=encryption_disabled, + location=location, + name=name, + namespace_type=namespace_type, + override_artifact_name=override_artifact_name, + packaging=packaging, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + artifact_identifier: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + bucket_owner_access: Optional[pulumi.Input[str]] = None, + encryption_disabled: Optional[pulumi.Input[bool]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + namespace_type: Optional[pulumi.Input[str]] = None, + override_artifact_name: Optional[pulumi.Input[bool]] = None, + packaging: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if artifact_identifier is None and 'artifactIdentifier' in kwargs: + artifact_identifier = kwargs['artifactIdentifier'] + if artifact_identifier is None: + raise TypeError("Missing 'artifact_identifier' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if bucket_owner_access is None and 'bucketOwnerAccess' in kwargs: + bucket_owner_access = kwargs['bucketOwnerAccess'] + if encryption_disabled is None and 'encryptionDisabled' in kwargs: + encryption_disabled = kwargs['encryptionDisabled'] + if namespace_type is None and 'namespaceType' in kwargs: + namespace_type = kwargs['namespaceType'] + if override_artifact_name is None and 'overrideArtifactName' in kwargs: + override_artifact_name = kwargs['overrideArtifactName'] + + _setter("artifact_identifier", artifact_identifier) + _setter("type", type) if bucket_owner_access is not None: - pulumi.set(__self__, "bucket_owner_access", bucket_owner_access) + _setter("bucket_owner_access", bucket_owner_access) if encryption_disabled is not None: - pulumi.set(__self__, "encryption_disabled", encryption_disabled) + _setter("encryption_disabled", encryption_disabled) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if namespace_type is not None: - pulumi.set(__self__, "namespace_type", namespace_type) + _setter("namespace_type", namespace_type) if override_artifact_name is not None: - pulumi.set(__self__, "override_artifact_name", override_artifact_name) + _setter("override_artifact_name", override_artifact_name) if packaging is not None: - pulumi.set(__self__, "packaging", packaging) + _setter("packaging", packaging) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="artifactIdentifier") @@ -1028,22 +1328,65 @@ def __init__(__self__, *, :param pulumi.Input[str] location: Location of the source code from git or s3. :param pulumi.Input[bool] report_build_status: Whether to report the status of a build's start and finish to your source provider. This option is only valid when your source provider is `GITHUB`, `BITBUCKET`, or `GITHUB_ENTERPRISE`. """ - pulumi.set(__self__, "source_identifier", source_identifier) - pulumi.set(__self__, "type", type) + ProjectSecondarySourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_identifier=source_identifier, + type=type, + build_status_config=build_status_config, + buildspec=buildspec, + git_clone_depth=git_clone_depth, + git_submodules_config=git_submodules_config, + insecure_ssl=insecure_ssl, + location=location, + report_build_status=report_build_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_identifier: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + build_status_config: Optional[pulumi.Input['ProjectSecondarySourceBuildStatusConfigArgs']] = None, + buildspec: Optional[pulumi.Input[str]] = None, + git_clone_depth: Optional[pulumi.Input[int]] = None, + git_submodules_config: Optional[pulumi.Input['ProjectSecondarySourceGitSubmodulesConfigArgs']] = None, + insecure_ssl: Optional[pulumi.Input[bool]] = None, + location: Optional[pulumi.Input[str]] = None, + report_build_status: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_identifier is None and 'sourceIdentifier' in kwargs: + source_identifier = kwargs['sourceIdentifier'] + if source_identifier is None: + raise TypeError("Missing 'source_identifier' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if build_status_config is None and 'buildStatusConfig' in kwargs: + build_status_config = kwargs['buildStatusConfig'] + if git_clone_depth is None and 'gitCloneDepth' in kwargs: + git_clone_depth = kwargs['gitCloneDepth'] + if git_submodules_config is None and 'gitSubmodulesConfig' in kwargs: + git_submodules_config = kwargs['gitSubmodulesConfig'] + if insecure_ssl is None and 'insecureSsl' in kwargs: + insecure_ssl = kwargs['insecureSsl'] + if report_build_status is None and 'reportBuildStatus' in kwargs: + report_build_status = kwargs['reportBuildStatus'] + + _setter("source_identifier", source_identifier) + _setter("type", type) if build_status_config is not None: - pulumi.set(__self__, "build_status_config", build_status_config) + _setter("build_status_config", build_status_config) if buildspec is not None: - pulumi.set(__self__, "buildspec", buildspec) + _setter("buildspec", buildspec) if git_clone_depth is not None: - pulumi.set(__self__, "git_clone_depth", git_clone_depth) + _setter("git_clone_depth", git_clone_depth) if git_submodules_config is not None: - pulumi.set(__self__, "git_submodules_config", git_submodules_config) + _setter("git_submodules_config", git_submodules_config) if insecure_ssl is not None: - pulumi.set(__self__, "insecure_ssl", insecure_ssl) + _setter("insecure_ssl", insecure_ssl) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if report_build_status is not None: - pulumi.set(__self__, "report_build_status", report_build_status) + _setter("report_build_status", report_build_status) @property @pulumi.getter(name="sourceIdentifier") @@ -1163,10 +1506,25 @@ def __init__(__self__, *, :param pulumi.Input[str] context: Specifies the context of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. :param pulumi.Input[str] target_url: Specifies the target url of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. """ + ProjectSecondarySourceBuildStatusConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + context=context, + target_url=target_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + context: Optional[pulumi.Input[str]] = None, + target_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_url is None and 'targetUrl' in kwargs: + target_url = kwargs['targetUrl'] + if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if target_url is not None: - pulumi.set(__self__, "target_url", target_url) + _setter("target_url", target_url) @property @pulumi.getter @@ -1200,7 +1558,22 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] fetch_submodules: Whether to fetch Git submodules for the AWS CodeBuild build project. """ - pulumi.set(__self__, "fetch_submodules", fetch_submodules) + ProjectSecondarySourceGitSubmodulesConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fetch_submodules=fetch_submodules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fetch_submodules: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fetch_submodules is None and 'fetchSubmodules' in kwargs: + fetch_submodules = kwargs['fetchSubmodules'] + if fetch_submodules is None: + raise TypeError("Missing 'fetch_submodules' argument") + + _setter("fetch_submodules", fetch_submodules) @property @pulumi.getter(name="fetchSubmodules") @@ -1224,8 +1597,29 @@ def __init__(__self__, *, :param pulumi.Input[str] source_identifier: An identifier for a source in the build project. :param pulumi.Input[str] source_version: The source version for the corresponding source identifier. See [AWS docs](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSourceVersion.html#CodeBuild-Type-ProjectSourceVersion-sourceVersion) for more details. """ - pulumi.set(__self__, "source_identifier", source_identifier) - pulumi.set(__self__, "source_version", source_version) + ProjectSecondarySourceVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_identifier=source_identifier, + source_version=source_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_identifier: Optional[pulumi.Input[str]] = None, + source_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_identifier is None and 'sourceIdentifier' in kwargs: + source_identifier = kwargs['sourceIdentifier'] + if source_identifier is None: + raise TypeError("Missing 'source_identifier' argument") + if source_version is None and 'sourceVersion' in kwargs: + source_version = kwargs['sourceVersion'] + if source_version is None: + raise TypeError("Missing 'source_version' argument") + + _setter("source_identifier", source_identifier) + _setter("source_version", source_version) @property @pulumi.getter(name="sourceIdentifier") @@ -1273,21 +1667,58 @@ def __init__(__self__, *, :param pulumi.Input[str] location: Location of the source code from git or s3. :param pulumi.Input[bool] report_build_status: Whether to report the status of a build's start and finish to your source provider. This option is only valid when the `type` is `BITBUCKET` or `GITHUB`. """ - pulumi.set(__self__, "type", type) + ProjectSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + build_status_config=build_status_config, + buildspec=buildspec, + git_clone_depth=git_clone_depth, + git_submodules_config=git_submodules_config, + insecure_ssl=insecure_ssl, + location=location, + report_build_status=report_build_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + build_status_config: Optional[pulumi.Input['ProjectSourceBuildStatusConfigArgs']] = None, + buildspec: Optional[pulumi.Input[str]] = None, + git_clone_depth: Optional[pulumi.Input[int]] = None, + git_submodules_config: Optional[pulumi.Input['ProjectSourceGitSubmodulesConfigArgs']] = None, + insecure_ssl: Optional[pulumi.Input[bool]] = None, + location: Optional[pulumi.Input[str]] = None, + report_build_status: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if build_status_config is None and 'buildStatusConfig' in kwargs: + build_status_config = kwargs['buildStatusConfig'] + if git_clone_depth is None and 'gitCloneDepth' in kwargs: + git_clone_depth = kwargs['gitCloneDepth'] + if git_submodules_config is None and 'gitSubmodulesConfig' in kwargs: + git_submodules_config = kwargs['gitSubmodulesConfig'] + if insecure_ssl is None and 'insecureSsl' in kwargs: + insecure_ssl = kwargs['insecureSsl'] + if report_build_status is None and 'reportBuildStatus' in kwargs: + report_build_status = kwargs['reportBuildStatus'] + + _setter("type", type) if build_status_config is not None: - pulumi.set(__self__, "build_status_config", build_status_config) + _setter("build_status_config", build_status_config) if buildspec is not None: - pulumi.set(__self__, "buildspec", buildspec) + _setter("buildspec", buildspec) if git_clone_depth is not None: - pulumi.set(__self__, "git_clone_depth", git_clone_depth) + _setter("git_clone_depth", git_clone_depth) if git_submodules_config is not None: - pulumi.set(__self__, "git_submodules_config", git_submodules_config) + _setter("git_submodules_config", git_submodules_config) if insecure_ssl is not None: - pulumi.set(__self__, "insecure_ssl", insecure_ssl) + _setter("insecure_ssl", insecure_ssl) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if report_build_status is not None: - pulumi.set(__self__, "report_build_status", report_build_status) + _setter("report_build_status", report_build_status) @property @pulumi.getter @@ -1395,10 +1826,25 @@ def __init__(__self__, *, :param pulumi.Input[str] context: Specifies the context of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. :param pulumi.Input[str] target_url: Specifies the target url of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. """ + ProjectSourceBuildStatusConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + context=context, + target_url=target_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + context: Optional[pulumi.Input[str]] = None, + target_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_url is None and 'targetUrl' in kwargs: + target_url = kwargs['targetUrl'] + if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if target_url is not None: - pulumi.set(__self__, "target_url", target_url) + _setter("target_url", target_url) @property @pulumi.getter @@ -1432,7 +1878,22 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] fetch_submodules: Whether to fetch Git submodules for the AWS CodeBuild build project. """ - pulumi.set(__self__, "fetch_submodules", fetch_submodules) + ProjectSourceGitSubmodulesConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fetch_submodules=fetch_submodules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fetch_submodules: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fetch_submodules is None and 'fetchSubmodules' in kwargs: + fetch_submodules = kwargs['fetchSubmodules'] + if fetch_submodules is None: + raise TypeError("Missing 'fetch_submodules' argument") + + _setter("fetch_submodules", fetch_submodules) @property @pulumi.getter(name="fetchSubmodules") @@ -1458,9 +1919,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: Subnet IDs within which to run builds. :param pulumi.Input[str] vpc_id: ID of the VPC within which to run builds. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) - pulumi.set(__self__, "vpc_id", vpc_id) + ProjectVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") @@ -1508,9 +1994,26 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The export configuration type. Valid values are `S3` and `NO_EXPORT`. :param pulumi.Input['ReportGroupExportConfigS3DestinationArgs'] s3_destination: contains information about the S3 bucket where the run of a report is exported. see S3 Destination documented below. """ - pulumi.set(__self__, "type", type) + ReportGroupExportConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + s3_destination=s3_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + s3_destination: Optional[pulumi.Input['ReportGroupExportConfigS3DestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if s3_destination is None and 's3Destination' in kwargs: + s3_destination = kwargs['s3Destination'] + + _setter("type", type) if s3_destination is not None: - pulumi.set(__self__, "s3_destination", s3_destination) + _setter("s3_destination", s3_destination) @property @pulumi.getter @@ -1553,14 +2056,41 @@ def __init__(__self__, *, :param pulumi.Input[str] packaging: The type of build output artifact to create. Valid values are: `NONE` (default) and `ZIP`. :param pulumi.Input[str] path: The path to the exported report's raw data results. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "encryption_key", encryption_key) + ReportGroupExportConfigS3DestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + encryption_key=encryption_key, + encryption_disabled=encryption_disabled, + packaging=packaging, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + encryption_key: Optional[pulumi.Input[str]] = None, + encryption_disabled: Optional[pulumi.Input[bool]] = None, + packaging: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if encryption_key is None and 'encryptionKey' in kwargs: + encryption_key = kwargs['encryptionKey'] + if encryption_key is None: + raise TypeError("Missing 'encryption_key' argument") + if encryption_disabled is None and 'encryptionDisabled' in kwargs: + encryption_disabled = kwargs['encryptionDisabled'] + + _setter("bucket", bucket) + _setter("encryption_key", encryption_key) if encryption_disabled is not None: - pulumi.set(__self__, "encryption_disabled", encryption_disabled) + _setter("encryption_disabled", encryption_disabled) if packaging is not None: - pulumi.set(__self__, "packaging", packaging) + _setter("packaging", packaging) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter @@ -1631,8 +2161,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupFilterArgs']]] filters: A webhook filter for the group. Filter blocks are documented below. """ + WebhookFilterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filters=filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filters: Optional[pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupFilterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) @property @pulumi.getter @@ -1658,10 +2199,31 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The webhook filter group's type. Valid values for this parameter are: `EVENT`, `BASE_REF`, `HEAD_REF`, `ACTOR_ACCOUNT_ID`, `FILE_PATH`, `COMMIT_MESSAGE`. At least one filter group must specify `EVENT` as its type. :param pulumi.Input[bool] exclude_matched_pattern: If set to `true`, the specified filter does *not* trigger a build. Defaults to `false`. """ - pulumi.set(__self__, "pattern", pattern) - pulumi.set(__self__, "type", type) + WebhookFilterGroupFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pattern=pattern, + type=type, + exclude_matched_pattern=exclude_matched_pattern, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pattern: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + exclude_matched_pattern: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pattern is None: + raise TypeError("Missing 'pattern' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if exclude_matched_pattern is None and 'excludeMatchedPattern' in kwargs: + exclude_matched_pattern = kwargs['excludeMatchedPattern'] + + _setter("pattern", pattern) + _setter("type", type) if exclude_matched_pattern is not None: - pulumi.set(__self__, "exclude_matched_pattern", exclude_matched_pattern) + _setter("exclude_matched_pattern", exclude_matched_pattern) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/codebuild/outputs.py b/sdk/python/pulumi_aws/codebuild/outputs.py index 09b440f4697..8668adc58a3 100644 --- a/sdk/python/pulumi_aws/codebuild/outputs.py +++ b/sdk/python/pulumi_aws/codebuild/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -87,25 +87,66 @@ def __init__(__self__, *, :param str packaging: Type of build output artifact to create. If `type` is set to `S3`, valid values are `NONE`, `ZIP` :param str path: If `type` is set to `S3`, this is the path to the output artifact. """ - pulumi.set(__self__, "type", type) + ProjectArtifacts._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + artifact_identifier=artifact_identifier, + bucket_owner_access=bucket_owner_access, + encryption_disabled=encryption_disabled, + location=location, + name=name, + namespace_type=namespace_type, + override_artifact_name=override_artifact_name, + packaging=packaging, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + artifact_identifier: Optional[str] = None, + bucket_owner_access: Optional[str] = None, + encryption_disabled: Optional[bool] = None, + location: Optional[str] = None, + name: Optional[str] = None, + namespace_type: Optional[str] = None, + override_artifact_name: Optional[bool] = None, + packaging: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if artifact_identifier is None and 'artifactIdentifier' in kwargs: + artifact_identifier = kwargs['artifactIdentifier'] + if bucket_owner_access is None and 'bucketOwnerAccess' in kwargs: + bucket_owner_access = kwargs['bucketOwnerAccess'] + if encryption_disabled is None and 'encryptionDisabled' in kwargs: + encryption_disabled = kwargs['encryptionDisabled'] + if namespace_type is None and 'namespaceType' in kwargs: + namespace_type = kwargs['namespaceType'] + if override_artifact_name is None and 'overrideArtifactName' in kwargs: + override_artifact_name = kwargs['overrideArtifactName'] + + _setter("type", type) if artifact_identifier is not None: - pulumi.set(__self__, "artifact_identifier", artifact_identifier) + _setter("artifact_identifier", artifact_identifier) if bucket_owner_access is not None: - pulumi.set(__self__, "bucket_owner_access", bucket_owner_access) + _setter("bucket_owner_access", bucket_owner_access) if encryption_disabled is not None: - pulumi.set(__self__, "encryption_disabled", encryption_disabled) + _setter("encryption_disabled", encryption_disabled) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if namespace_type is not None: - pulumi.set(__self__, "namespace_type", namespace_type) + _setter("namespace_type", namespace_type) if override_artifact_name is not None: - pulumi.set(__self__, "override_artifact_name", override_artifact_name) + _setter("override_artifact_name", override_artifact_name) if packaging is not None: - pulumi.set(__self__, "packaging", packaging) + _setter("packaging", packaging) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter @@ -222,13 +263,38 @@ def __init__(__self__, *, :param 'ProjectBuildBatchConfigRestrictionsArgs' restrictions: Configuration block specifying the restrictions for the batch build. Detailed below. :param int timeout_in_mins: Specifies the maximum amount of time, in minutes, that the batch build must be completed in. """ - pulumi.set(__self__, "service_role", service_role) + ProjectBuildBatchConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_role=service_role, + combine_artifacts=combine_artifacts, + restrictions=restrictions, + timeout_in_mins=timeout_in_mins, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_role: Optional[str] = None, + combine_artifacts: Optional[bool] = None, + restrictions: Optional['outputs.ProjectBuildBatchConfigRestrictions'] = None, + timeout_in_mins: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if service_role is None: + raise TypeError("Missing 'service_role' argument") + if combine_artifacts is None and 'combineArtifacts' in kwargs: + combine_artifacts = kwargs['combineArtifacts'] + if timeout_in_mins is None and 'timeoutInMins' in kwargs: + timeout_in_mins = kwargs['timeoutInMins'] + + _setter("service_role", service_role) if combine_artifacts is not None: - pulumi.set(__self__, "combine_artifacts", combine_artifacts) + _setter("combine_artifacts", combine_artifacts) if restrictions is not None: - pulumi.set(__self__, "restrictions", restrictions) + _setter("restrictions", restrictions) if timeout_in_mins is not None: - pulumi.set(__self__, "timeout_in_mins", timeout_in_mins) + _setter("timeout_in_mins", timeout_in_mins) @property @pulumi.getter(name="serviceRole") @@ -291,10 +357,27 @@ def __init__(__self__, *, :param Sequence[str] compute_types_alloweds: An array of strings that specify the compute types that are allowed for the batch build. See [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the AWS CodeBuild User Guide for these values. :param int maximum_builds_allowed: Specifies the maximum number of builds allowed. """ + ProjectBuildBatchConfigRestrictions._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_types_alloweds=compute_types_alloweds, + maximum_builds_allowed=maximum_builds_allowed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_types_alloweds: Optional[Sequence[str]] = None, + maximum_builds_allowed: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_types_alloweds is None and 'computeTypesAlloweds' in kwargs: + compute_types_alloweds = kwargs['computeTypesAlloweds'] + if maximum_builds_allowed is None and 'maximumBuildsAllowed' in kwargs: + maximum_builds_allowed = kwargs['maximumBuildsAllowed'] + if compute_types_alloweds is not None: - pulumi.set(__self__, "compute_types_alloweds", compute_types_alloweds) + _setter("compute_types_alloweds", compute_types_alloweds) if maximum_builds_allowed is not None: - pulumi.set(__self__, "maximum_builds_allowed", maximum_builds_allowed) + _setter("maximum_builds_allowed", maximum_builds_allowed) @property @pulumi.getter(name="computeTypesAlloweds") @@ -324,12 +407,27 @@ def __init__(__self__, *, :param Sequence[str] modes: Specifies settings that AWS CodeBuild uses to store and reuse build dependencies. Valid values: `LOCAL_SOURCE_CACHE`, `LOCAL_DOCKER_LAYER_CACHE`, `LOCAL_CUSTOM_CACHE`. :param str type: Type of storage that will be used for the AWS CodeBuild project cache. Valid values: `NO_CACHE`, `LOCAL`, `S3`. Defaults to `NO_CACHE`. """ + ProjectCache._configure( + lambda key, value: pulumi.set(__self__, key, value), + location=location, + modes=modes, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + location: Optional[str] = None, + modes: Optional[Sequence[str]] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if modes is not None: - pulumi.set(__self__, "modes", modes) + _setter("modes", modes) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -402,19 +500,60 @@ def __init__(__self__, *, :param bool privileged_mode: Whether to enable running the Docker daemon inside a Docker container. Defaults to `false`. :param 'ProjectEnvironmentRegistryCredentialArgs' registry_credential: Configuration block. Detailed below. """ - pulumi.set(__self__, "compute_type", compute_type) - pulumi.set(__self__, "image", image) - pulumi.set(__self__, "type", type) + ProjectEnvironment._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_type=compute_type, + image=image, + type=type, + certificate=certificate, + environment_variables=environment_variables, + image_pull_credentials_type=image_pull_credentials_type, + privileged_mode=privileged_mode, + registry_credential=registry_credential, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_type: Optional[str] = None, + image: Optional[str] = None, + type: Optional[str] = None, + certificate: Optional[str] = None, + environment_variables: Optional[Sequence['outputs.ProjectEnvironmentEnvironmentVariable']] = None, + image_pull_credentials_type: Optional[str] = None, + privileged_mode: Optional[bool] = None, + registry_credential: Optional['outputs.ProjectEnvironmentRegistryCredential'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_type is None and 'computeType' in kwargs: + compute_type = kwargs['computeType'] + if compute_type is None: + raise TypeError("Missing 'compute_type' argument") + if image is None: + raise TypeError("Missing 'image' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if image_pull_credentials_type is None and 'imagePullCredentialsType' in kwargs: + image_pull_credentials_type = kwargs['imagePullCredentialsType'] + if privileged_mode is None and 'privilegedMode' in kwargs: + privileged_mode = kwargs['privilegedMode'] + if registry_credential is None and 'registryCredential' in kwargs: + registry_credential = kwargs['registryCredential'] + + _setter("compute_type", compute_type) + _setter("image", image) + _setter("type", type) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if image_pull_credentials_type is not None: - pulumi.set(__self__, "image_pull_credentials_type", image_pull_credentials_type) + _setter("image_pull_credentials_type", image_pull_credentials_type) if privileged_mode is not None: - pulumi.set(__self__, "privileged_mode", privileged_mode) + _setter("privileged_mode", privileged_mode) if registry_credential is not None: - pulumi.set(__self__, "registry_credential", registry_credential) + _setter("registry_credential", registry_credential) @property @pulumi.getter(name="computeType") @@ -492,10 +631,29 @@ def __init__(__self__, *, :param str value: Environment variable's value. :param str type: Build output artifact's type. Valid values: `CODEPIPELINE`, `NO_ARTIFACTS`, `S3`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ProjectEnvironmentEnvironmentVariable._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -548,8 +706,27 @@ def __init__(__self__, *, :param str credential: ARN or name of credentials created using AWS Secrets Manager. :param str credential_provider: Service that created the credentials to access a private Docker registry. Valid value: `SECRETS_MANAGER` (AWS Secrets Manager). """ - pulumi.set(__self__, "credential", credential) - pulumi.set(__self__, "credential_provider", credential_provider) + ProjectEnvironmentRegistryCredential._configure( + lambda key, value: pulumi.set(__self__, key, value), + credential=credential, + credential_provider=credential_provider, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credential: Optional[str] = None, + credential_provider: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credential is None: + raise TypeError("Missing 'credential' argument") + if credential_provider is None and 'credentialProvider' in kwargs: + credential_provider = kwargs['credentialProvider'] + if credential_provider is None: + raise TypeError("Missing 'credential_provider' argument") + + _setter("credential", credential) + _setter("credential_provider", credential_provider) @property @pulumi.getter @@ -602,16 +779,39 @@ def __init__(__self__, *, :param str mount_point: The location in the container where you mount the file system. :param str type: The type of the file system. The one supported type is `EFS`. """ + ProjectFileSystemLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + location=location, + mount_options=mount_options, + mount_point=mount_point, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + location: Optional[str] = None, + mount_options: Optional[str] = None, + mount_point: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if mount_options is not None: - pulumi.set(__self__, "mount_options", mount_options) + _setter("mount_options", mount_options) if mount_point is not None: - pulumi.set(__self__, "mount_point", mount_point) + _setter("mount_point", mount_point) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -682,10 +882,27 @@ def __init__(__self__, *, :param 'ProjectLogsConfigCloudwatchLogsArgs' cloudwatch_logs: Configuration block. Detailed below. :param 'ProjectLogsConfigS3LogsArgs' s3_logs: Configuration block. Detailed below. """ + ProjectLogsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + s3_logs=s3_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional['outputs.ProjectLogsConfigCloudwatchLogs'] = None, + s3_logs: Optional['outputs.ProjectLogsConfigS3Logs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if s3_logs is None and 's3Logs' in kwargs: + s3_logs = kwargs['s3Logs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if s3_logs is not None: - pulumi.set(__self__, "s3_logs", s3_logs) + _setter("s3_logs", s3_logs) @property @pulumi.getter(name="cloudwatchLogs") @@ -731,15 +948,34 @@ def __init__(__self__, *, stream_name: Optional[str] = None): """ :param str group_name: Group name of the logs in CloudWatch Logs. - :param str status: Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + :param str status: Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. :param str stream_name: Stream name of the logs in CloudWatch Logs. """ + ProjectLogsConfigCloudwatchLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + status=status, + stream_name=stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[str] = None, + status: Optional[str] = None, + stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if stream_name is not None: - pulumi.set(__self__, "stream_name", stream_name) + _setter("stream_name", stream_name) @property @pulumi.getter(name="groupName") @@ -753,7 +989,7 @@ def group_name(self) -> Optional[str]: @pulumi.getter def status(self) -> Optional[str]: """ - Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. """ return pulumi.get(self, "status") @@ -796,16 +1032,37 @@ def __init__(__self__, *, :param str bucket_owner_access: Specifies the bucket owner's access for objects that another account uploads to their Amazon S3 bucket. By default, only the account that uploads the objects to the bucket has access to these objects. This property allows you to give the bucket owner access to these objects. Valid values are `NONE`, `READ_ONLY`, and `FULL`. your CodeBuild service role must have the `s3:PutBucketAcl` permission. This permission allows CodeBuild to modify the access control list for the bucket. :param bool encryption_disabled: Whether to disable encrypting output artifacts. If `type` is set to `NO_ARTIFACTS`, this value is ignored. Defaults to `false`. :param str location: Information about the build output artifact location. If `type` is set to `CODEPIPELINE` or `NO_ARTIFACTS`, this value is ignored. If `type` is set to `S3`, this is the name of the output bucket. - :param str status: Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. - """ + :param str status: Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. + """ + ProjectLogsConfigS3Logs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_owner_access=bucket_owner_access, + encryption_disabled=encryption_disabled, + location=location, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_owner_access: Optional[str] = None, + encryption_disabled: Optional[bool] = None, + location: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_owner_access is None and 'bucketOwnerAccess' in kwargs: + bucket_owner_access = kwargs['bucketOwnerAccess'] + if encryption_disabled is None and 'encryptionDisabled' in kwargs: + encryption_disabled = kwargs['encryptionDisabled'] + if bucket_owner_access is not None: - pulumi.set(__self__, "bucket_owner_access", bucket_owner_access) + _setter("bucket_owner_access", bucket_owner_access) if encryption_disabled is not None: - pulumi.set(__self__, "encryption_disabled", encryption_disabled) + _setter("encryption_disabled", encryption_disabled) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="bucketOwnerAccess") @@ -835,7 +1092,7 @@ def location(self) -> Optional[str]: @pulumi.getter def status(self) -> Optional[str]: """ - Current status of logs in CloudWatch Logs for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `ENABLED`. + Current status of logs in S3 for a build project. Valid values: `ENABLED`, `DISABLED`. Defaults to `DISABLED`. """ return pulumi.get(self, "status") @@ -890,24 +1147,67 @@ def __init__(__self__, *, :param str packaging: Type of build output artifact to create. If `type` is set to `CODEPIPELINE` or `NO_ARTIFACTS`, this value is ignored if specified. If `type` is set to `S3`, valid values are `NONE` or `ZIP`. :param str path: Along with `namespace_type` and `name`, the pattern that AWS CodeBuild uses to name and store the output artifact. If `type` is set to `CODEPIPELINE` or `NO_ARTIFACTS`, this value is ignored if specified. If `type` is set to `S3`, this is the path to the output artifact. """ - pulumi.set(__self__, "artifact_identifier", artifact_identifier) - pulumi.set(__self__, "type", type) + ProjectSecondaryArtifact._configure( + lambda key, value: pulumi.set(__self__, key, value), + artifact_identifier=artifact_identifier, + type=type, + bucket_owner_access=bucket_owner_access, + encryption_disabled=encryption_disabled, + location=location, + name=name, + namespace_type=namespace_type, + override_artifact_name=override_artifact_name, + packaging=packaging, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + artifact_identifier: Optional[str] = None, + type: Optional[str] = None, + bucket_owner_access: Optional[str] = None, + encryption_disabled: Optional[bool] = None, + location: Optional[str] = None, + name: Optional[str] = None, + namespace_type: Optional[str] = None, + override_artifact_name: Optional[bool] = None, + packaging: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if artifact_identifier is None and 'artifactIdentifier' in kwargs: + artifact_identifier = kwargs['artifactIdentifier'] + if artifact_identifier is None: + raise TypeError("Missing 'artifact_identifier' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if bucket_owner_access is None and 'bucketOwnerAccess' in kwargs: + bucket_owner_access = kwargs['bucketOwnerAccess'] + if encryption_disabled is None and 'encryptionDisabled' in kwargs: + encryption_disabled = kwargs['encryptionDisabled'] + if namespace_type is None and 'namespaceType' in kwargs: + namespace_type = kwargs['namespaceType'] + if override_artifact_name is None and 'overrideArtifactName' in kwargs: + override_artifact_name = kwargs['overrideArtifactName'] + + _setter("artifact_identifier", artifact_identifier) + _setter("type", type) if bucket_owner_access is not None: - pulumi.set(__self__, "bucket_owner_access", bucket_owner_access) + _setter("bucket_owner_access", bucket_owner_access) if encryption_disabled is not None: - pulumi.set(__self__, "encryption_disabled", encryption_disabled) + _setter("encryption_disabled", encryption_disabled) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if namespace_type is not None: - pulumi.set(__self__, "namespace_type", namespace_type) + _setter("namespace_type", namespace_type) if override_artifact_name is not None: - pulumi.set(__self__, "override_artifact_name", override_artifact_name) + _setter("override_artifact_name", override_artifact_name) if packaging is not None: - pulumi.set(__self__, "packaging", packaging) + _setter("packaging", packaging) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="artifactIdentifier") @@ -1040,22 +1340,65 @@ def __init__(__self__, *, :param str location: Location of the source code from git or s3. :param bool report_build_status: Whether to report the status of a build's start and finish to your source provider. This option is only valid when your source provider is `GITHUB`, `BITBUCKET`, or `GITHUB_ENTERPRISE`. """ - pulumi.set(__self__, "source_identifier", source_identifier) - pulumi.set(__self__, "type", type) + ProjectSecondarySource._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_identifier=source_identifier, + type=type, + build_status_config=build_status_config, + buildspec=buildspec, + git_clone_depth=git_clone_depth, + git_submodules_config=git_submodules_config, + insecure_ssl=insecure_ssl, + location=location, + report_build_status=report_build_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_identifier: Optional[str] = None, + type: Optional[str] = None, + build_status_config: Optional['outputs.ProjectSecondarySourceBuildStatusConfig'] = None, + buildspec: Optional[str] = None, + git_clone_depth: Optional[int] = None, + git_submodules_config: Optional['outputs.ProjectSecondarySourceGitSubmodulesConfig'] = None, + insecure_ssl: Optional[bool] = None, + location: Optional[str] = None, + report_build_status: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_identifier is None and 'sourceIdentifier' in kwargs: + source_identifier = kwargs['sourceIdentifier'] + if source_identifier is None: + raise TypeError("Missing 'source_identifier' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if build_status_config is None and 'buildStatusConfig' in kwargs: + build_status_config = kwargs['buildStatusConfig'] + if git_clone_depth is None and 'gitCloneDepth' in kwargs: + git_clone_depth = kwargs['gitCloneDepth'] + if git_submodules_config is None and 'gitSubmodulesConfig' in kwargs: + git_submodules_config = kwargs['gitSubmodulesConfig'] + if insecure_ssl is None and 'insecureSsl' in kwargs: + insecure_ssl = kwargs['insecureSsl'] + if report_build_status is None and 'reportBuildStatus' in kwargs: + report_build_status = kwargs['reportBuildStatus'] + + _setter("source_identifier", source_identifier) + _setter("type", type) if build_status_config is not None: - pulumi.set(__self__, "build_status_config", build_status_config) + _setter("build_status_config", build_status_config) if buildspec is not None: - pulumi.set(__self__, "buildspec", buildspec) + _setter("buildspec", buildspec) if git_clone_depth is not None: - pulumi.set(__self__, "git_clone_depth", git_clone_depth) + _setter("git_clone_depth", git_clone_depth) if git_submodules_config is not None: - pulumi.set(__self__, "git_submodules_config", git_submodules_config) + _setter("git_submodules_config", git_submodules_config) if insecure_ssl is not None: - pulumi.set(__self__, "insecure_ssl", insecure_ssl) + _setter("insecure_ssl", insecure_ssl) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if report_build_status is not None: - pulumi.set(__self__, "report_build_status", report_build_status) + _setter("report_build_status", report_build_status) @property @pulumi.getter(name="sourceIdentifier") @@ -1156,10 +1499,25 @@ def __init__(__self__, *, :param str context: Specifies the context of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. :param str target_url: Specifies the target url of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. """ + ProjectSecondarySourceBuildStatusConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + context=context, + target_url=target_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + context: Optional[str] = None, + target_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_url is None and 'targetUrl' in kwargs: + target_url = kwargs['targetUrl'] + if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if target_url is not None: - pulumi.set(__self__, "target_url", target_url) + _setter("target_url", target_url) @property @pulumi.getter @@ -1202,7 +1560,22 @@ def __init__(__self__, *, """ :param bool fetch_submodules: Whether to fetch Git submodules for the AWS CodeBuild build project. """ - pulumi.set(__self__, "fetch_submodules", fetch_submodules) + ProjectSecondarySourceGitSubmodulesConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fetch_submodules=fetch_submodules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fetch_submodules: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fetch_submodules is None and 'fetchSubmodules' in kwargs: + fetch_submodules = kwargs['fetchSubmodules'] + if fetch_submodules is None: + raise TypeError("Missing 'fetch_submodules' argument") + + _setter("fetch_submodules", fetch_submodules) @property @pulumi.getter(name="fetchSubmodules") @@ -1241,8 +1614,29 @@ def __init__(__self__, *, :param str source_identifier: An identifier for a source in the build project. :param str source_version: The source version for the corresponding source identifier. See [AWS docs](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSourceVersion.html#CodeBuild-Type-ProjectSourceVersion-sourceVersion) for more details. """ - pulumi.set(__self__, "source_identifier", source_identifier) - pulumi.set(__self__, "source_version", source_version) + ProjectSecondarySourceVersion._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_identifier=source_identifier, + source_version=source_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_identifier: Optional[str] = None, + source_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_identifier is None and 'sourceIdentifier' in kwargs: + source_identifier = kwargs['sourceIdentifier'] + if source_identifier is None: + raise TypeError("Missing 'source_identifier' argument") + if source_version is None and 'sourceVersion' in kwargs: + source_version = kwargs['sourceVersion'] + if source_version is None: + raise TypeError("Missing 'source_version' argument") + + _setter("source_identifier", source_identifier) + _setter("source_version", source_version) @property @pulumi.getter(name="sourceIdentifier") @@ -1307,21 +1701,58 @@ def __init__(__self__, *, :param str location: Location of the source code from git or s3. :param bool report_build_status: Whether to report the status of a build's start and finish to your source provider. This option is only valid when the `type` is `BITBUCKET` or `GITHUB`. """ - pulumi.set(__self__, "type", type) + ProjectSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + build_status_config=build_status_config, + buildspec=buildspec, + git_clone_depth=git_clone_depth, + git_submodules_config=git_submodules_config, + insecure_ssl=insecure_ssl, + location=location, + report_build_status=report_build_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + build_status_config: Optional['outputs.ProjectSourceBuildStatusConfig'] = None, + buildspec: Optional[str] = None, + git_clone_depth: Optional[int] = None, + git_submodules_config: Optional['outputs.ProjectSourceGitSubmodulesConfig'] = None, + insecure_ssl: Optional[bool] = None, + location: Optional[str] = None, + report_build_status: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if build_status_config is None and 'buildStatusConfig' in kwargs: + build_status_config = kwargs['buildStatusConfig'] + if git_clone_depth is None and 'gitCloneDepth' in kwargs: + git_clone_depth = kwargs['gitCloneDepth'] + if git_submodules_config is None and 'gitSubmodulesConfig' in kwargs: + git_submodules_config = kwargs['gitSubmodulesConfig'] + if insecure_ssl is None and 'insecureSsl' in kwargs: + insecure_ssl = kwargs['insecureSsl'] + if report_build_status is None and 'reportBuildStatus' in kwargs: + report_build_status = kwargs['reportBuildStatus'] + + _setter("type", type) if build_status_config is not None: - pulumi.set(__self__, "build_status_config", build_status_config) + _setter("build_status_config", build_status_config) if buildspec is not None: - pulumi.set(__self__, "buildspec", buildspec) + _setter("buildspec", buildspec) if git_clone_depth is not None: - pulumi.set(__self__, "git_clone_depth", git_clone_depth) + _setter("git_clone_depth", git_clone_depth) if git_submodules_config is not None: - pulumi.set(__self__, "git_submodules_config", git_submodules_config) + _setter("git_submodules_config", git_submodules_config) if insecure_ssl is not None: - pulumi.set(__self__, "insecure_ssl", insecure_ssl) + _setter("insecure_ssl", insecure_ssl) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if report_build_status is not None: - pulumi.set(__self__, "report_build_status", report_build_status) + _setter("report_build_status", report_build_status) @property @pulumi.getter @@ -1414,10 +1845,25 @@ def __init__(__self__, *, :param str context: Specifies the context of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. :param str target_url: Specifies the target url of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. """ + ProjectSourceBuildStatusConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + context=context, + target_url=target_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + context: Optional[str] = None, + target_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_url is None and 'targetUrl' in kwargs: + target_url = kwargs['targetUrl'] + if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if target_url is not None: - pulumi.set(__self__, "target_url", target_url) + _setter("target_url", target_url) @property @pulumi.getter @@ -1460,7 +1906,22 @@ def __init__(__self__, *, """ :param bool fetch_submodules: Whether to fetch Git submodules for the AWS CodeBuild build project. """ - pulumi.set(__self__, "fetch_submodules", fetch_submodules) + ProjectSourceGitSubmodulesConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fetch_submodules=fetch_submodules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fetch_submodules: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fetch_submodules is None and 'fetchSubmodules' in kwargs: + fetch_submodules = kwargs['fetchSubmodules'] + if fetch_submodules is None: + raise TypeError("Missing 'fetch_submodules' argument") + + _setter("fetch_submodules", fetch_submodules) @property @pulumi.getter(name="fetchSubmodules") @@ -1501,9 +1962,34 @@ def __init__(__self__, *, :param Sequence[str] subnets: Subnet IDs within which to run builds. :param str vpc_id: ID of the VPC within which to run builds. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) - pulumi.set(__self__, "vpc_id", vpc_id) + ProjectVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnets: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") @@ -1556,9 +2042,26 @@ def __init__(__self__, *, :param str type: The export configuration type. Valid values are `S3` and `NO_EXPORT`. :param 'ReportGroupExportConfigS3DestinationArgs' s3_destination: contains information about the S3 bucket where the run of a report is exported. see S3 Destination documented below. """ - pulumi.set(__self__, "type", type) + ReportGroupExportConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + s3_destination=s3_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + s3_destination: Optional['outputs.ReportGroupExportConfigS3Destination'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if s3_destination is None and 's3Destination' in kwargs: + s3_destination = kwargs['s3Destination'] + + _setter("type", type) if s3_destination is not None: - pulumi.set(__self__, "s3_destination", s3_destination) + _setter("s3_destination", s3_destination) @property @pulumi.getter @@ -1612,14 +2115,41 @@ def __init__(__self__, *, :param str packaging: The type of build output artifact to create. Valid values are: `NONE` (default) and `ZIP`. :param str path: The path to the exported report's raw data results. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "encryption_key", encryption_key) + ReportGroupExportConfigS3Destination._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + encryption_key=encryption_key, + encryption_disabled=encryption_disabled, + packaging=packaging, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + encryption_key: Optional[str] = None, + encryption_disabled: Optional[bool] = None, + packaging: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if encryption_key is None and 'encryptionKey' in kwargs: + encryption_key = kwargs['encryptionKey'] + if encryption_key is None: + raise TypeError("Missing 'encryption_key' argument") + if encryption_disabled is None and 'encryptionDisabled' in kwargs: + encryption_disabled = kwargs['encryptionDisabled'] + + _setter("bucket", bucket) + _setter("encryption_key", encryption_key) if encryption_disabled is not None: - pulumi.set(__self__, "encryption_disabled", encryption_disabled) + _setter("encryption_disabled", encryption_disabled) if packaging is not None: - pulumi.set(__self__, "packaging", packaging) + _setter("packaging", packaging) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter @@ -1670,8 +2200,19 @@ def __init__(__self__, *, """ :param Sequence['WebhookFilterGroupFilterArgs'] filters: A webhook filter for the group. Filter blocks are documented below. """ + WebhookFilterGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + filters=filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filters: Optional[Sequence['outputs.WebhookFilterGroupFilter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) @property @pulumi.getter @@ -1710,10 +2251,31 @@ def __init__(__self__, *, :param str type: The webhook filter group's type. Valid values for this parameter are: `EVENT`, `BASE_REF`, `HEAD_REF`, `ACTOR_ACCOUNT_ID`, `FILE_PATH`, `COMMIT_MESSAGE`. At least one filter group must specify `EVENT` as its type. :param bool exclude_matched_pattern: If set to `true`, the specified filter does *not* trigger a build. Defaults to `false`. """ - pulumi.set(__self__, "pattern", pattern) - pulumi.set(__self__, "type", type) + WebhookFilterGroupFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + pattern=pattern, + type=type, + exclude_matched_pattern=exclude_matched_pattern, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pattern: Optional[str] = None, + type: Optional[str] = None, + exclude_matched_pattern: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pattern is None: + raise TypeError("Missing 'pattern' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if exclude_matched_pattern is None and 'excludeMatchedPattern' in kwargs: + exclude_matched_pattern = kwargs['excludeMatchedPattern'] + + _setter("pattern", pattern) + _setter("type", type) if exclude_matched_pattern is not None: - pulumi.set(__self__, "exclude_matched_pattern", exclude_matched_pattern) + _setter("exclude_matched_pattern", exclude_matched_pattern) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/codebuild/project.py b/sdk/python/pulumi_aws/codebuild/project.py index 88301391b38..6312e3c2847 100644 --- a/sdk/python/pulumi_aws/codebuild/project.py +++ b/sdk/python/pulumi_aws/codebuild/project.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -67,48 +67,143 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['ProjectVpcConfigArgs'] vpc_config: Configuration block. Detailed below. """ - pulumi.set(__self__, "artifacts", artifacts) - pulumi.set(__self__, "environment", environment) - pulumi.set(__self__, "service_role", service_role) - pulumi.set(__self__, "source", source) + ProjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + artifacts=artifacts, + environment=environment, + service_role=service_role, + source=source, + badge_enabled=badge_enabled, + build_batch_config=build_batch_config, + build_timeout=build_timeout, + cache=cache, + concurrent_build_limit=concurrent_build_limit, + description=description, + encryption_key=encryption_key, + file_system_locations=file_system_locations, + logs_config=logs_config, + name=name, + project_visibility=project_visibility, + queued_timeout=queued_timeout, + resource_access_role=resource_access_role, + secondary_artifacts=secondary_artifacts, + secondary_source_versions=secondary_source_versions, + secondary_sources=secondary_sources, + source_version=source_version, + tags=tags, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + artifacts: Optional[pulumi.Input['ProjectArtifactsArgs']] = None, + environment: Optional[pulumi.Input['ProjectEnvironmentArgs']] = None, + service_role: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input['ProjectSourceArgs']] = None, + badge_enabled: Optional[pulumi.Input[bool]] = None, + build_batch_config: Optional[pulumi.Input['ProjectBuildBatchConfigArgs']] = None, + build_timeout: Optional[pulumi.Input[int]] = None, + cache: Optional[pulumi.Input['ProjectCacheArgs']] = None, + concurrent_build_limit: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + encryption_key: Optional[pulumi.Input[str]] = None, + file_system_locations: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectFileSystemLocationArgs']]]] = None, + logs_config: Optional[pulumi.Input['ProjectLogsConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + project_visibility: Optional[pulumi.Input[str]] = None, + queued_timeout: Optional[pulumi.Input[int]] = None, + resource_access_role: Optional[pulumi.Input[str]] = None, + secondary_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectSecondaryArtifactArgs']]]] = None, + secondary_source_versions: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectSecondarySourceVersionArgs']]]] = None, + secondary_sources: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectSecondarySourceArgs']]]] = None, + source_version: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['ProjectVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if artifacts is None: + raise TypeError("Missing 'artifacts' argument") + if environment is None: + raise TypeError("Missing 'environment' argument") + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if service_role is None: + raise TypeError("Missing 'service_role' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if badge_enabled is None and 'badgeEnabled' in kwargs: + badge_enabled = kwargs['badgeEnabled'] + if build_batch_config is None and 'buildBatchConfig' in kwargs: + build_batch_config = kwargs['buildBatchConfig'] + if build_timeout is None and 'buildTimeout' in kwargs: + build_timeout = kwargs['buildTimeout'] + if concurrent_build_limit is None and 'concurrentBuildLimit' in kwargs: + concurrent_build_limit = kwargs['concurrentBuildLimit'] + if encryption_key is None and 'encryptionKey' in kwargs: + encryption_key = kwargs['encryptionKey'] + if file_system_locations is None and 'fileSystemLocations' in kwargs: + file_system_locations = kwargs['fileSystemLocations'] + if logs_config is None and 'logsConfig' in kwargs: + logs_config = kwargs['logsConfig'] + if project_visibility is None and 'projectVisibility' in kwargs: + project_visibility = kwargs['projectVisibility'] + if queued_timeout is None and 'queuedTimeout' in kwargs: + queued_timeout = kwargs['queuedTimeout'] + if resource_access_role is None and 'resourceAccessRole' in kwargs: + resource_access_role = kwargs['resourceAccessRole'] + if secondary_artifacts is None and 'secondaryArtifacts' in kwargs: + secondary_artifacts = kwargs['secondaryArtifacts'] + if secondary_source_versions is None and 'secondarySourceVersions' in kwargs: + secondary_source_versions = kwargs['secondarySourceVersions'] + if secondary_sources is None and 'secondarySources' in kwargs: + secondary_sources = kwargs['secondarySources'] + if source_version is None and 'sourceVersion' in kwargs: + source_version = kwargs['sourceVersion'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("artifacts", artifacts) + _setter("environment", environment) + _setter("service_role", service_role) + _setter("source", source) if badge_enabled is not None: - pulumi.set(__self__, "badge_enabled", badge_enabled) + _setter("badge_enabled", badge_enabled) if build_batch_config is not None: - pulumi.set(__self__, "build_batch_config", build_batch_config) + _setter("build_batch_config", build_batch_config) if build_timeout is not None: - pulumi.set(__self__, "build_timeout", build_timeout) + _setter("build_timeout", build_timeout) if cache is not None: - pulumi.set(__self__, "cache", cache) + _setter("cache", cache) if concurrent_build_limit is not None: - pulumi.set(__self__, "concurrent_build_limit", concurrent_build_limit) + _setter("concurrent_build_limit", concurrent_build_limit) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encryption_key is not None: - pulumi.set(__self__, "encryption_key", encryption_key) + _setter("encryption_key", encryption_key) if file_system_locations is not None: - pulumi.set(__self__, "file_system_locations", file_system_locations) + _setter("file_system_locations", file_system_locations) if logs_config is not None: - pulumi.set(__self__, "logs_config", logs_config) + _setter("logs_config", logs_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if project_visibility is not None: - pulumi.set(__self__, "project_visibility", project_visibility) + _setter("project_visibility", project_visibility) if queued_timeout is not None: - pulumi.set(__self__, "queued_timeout", queued_timeout) + _setter("queued_timeout", queued_timeout) if resource_access_role is not None: - pulumi.set(__self__, "resource_access_role", resource_access_role) + _setter("resource_access_role", resource_access_role) if secondary_artifacts is not None: - pulumi.set(__self__, "secondary_artifacts", secondary_artifacts) + _setter("secondary_artifacts", secondary_artifacts) if secondary_source_versions is not None: - pulumi.set(__self__, "secondary_source_versions", secondary_source_versions) + _setter("secondary_source_versions", secondary_source_versions) if secondary_sources is not None: - pulumi.set(__self__, "secondary_sources", secondary_sources) + _setter("secondary_sources", secondary_sources) if source_version is not None: - pulumi.set(__self__, "source_version", source_version) + _setter("source_version", source_version) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -451,63 +546,164 @@ def __init__(__self__, *, :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['ProjectVpcConfigArgs'] vpc_config: Configuration block. Detailed below. """ + _ProjectState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + artifacts=artifacts, + badge_enabled=badge_enabled, + badge_url=badge_url, + build_batch_config=build_batch_config, + build_timeout=build_timeout, + cache=cache, + concurrent_build_limit=concurrent_build_limit, + description=description, + encryption_key=encryption_key, + environment=environment, + file_system_locations=file_system_locations, + logs_config=logs_config, + name=name, + project_visibility=project_visibility, + public_project_alias=public_project_alias, + queued_timeout=queued_timeout, + resource_access_role=resource_access_role, + secondary_artifacts=secondary_artifacts, + secondary_source_versions=secondary_source_versions, + secondary_sources=secondary_sources, + service_role=service_role, + source=source, + source_version=source_version, + tags=tags, + tags_all=tags_all, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + artifacts: Optional[pulumi.Input['ProjectArtifactsArgs']] = None, + badge_enabled: Optional[pulumi.Input[bool]] = None, + badge_url: Optional[pulumi.Input[str]] = None, + build_batch_config: Optional[pulumi.Input['ProjectBuildBatchConfigArgs']] = None, + build_timeout: Optional[pulumi.Input[int]] = None, + cache: Optional[pulumi.Input['ProjectCacheArgs']] = None, + concurrent_build_limit: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + encryption_key: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input['ProjectEnvironmentArgs']] = None, + file_system_locations: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectFileSystemLocationArgs']]]] = None, + logs_config: Optional[pulumi.Input['ProjectLogsConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + project_visibility: Optional[pulumi.Input[str]] = None, + public_project_alias: Optional[pulumi.Input[str]] = None, + queued_timeout: Optional[pulumi.Input[int]] = None, + resource_access_role: Optional[pulumi.Input[str]] = None, + secondary_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectSecondaryArtifactArgs']]]] = None, + secondary_source_versions: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectSecondarySourceVersionArgs']]]] = None, + secondary_sources: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectSecondarySourceArgs']]]] = None, + service_role: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input['ProjectSourceArgs']] = None, + source_version: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['ProjectVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if badge_enabled is None and 'badgeEnabled' in kwargs: + badge_enabled = kwargs['badgeEnabled'] + if badge_url is None and 'badgeUrl' in kwargs: + badge_url = kwargs['badgeUrl'] + if build_batch_config is None and 'buildBatchConfig' in kwargs: + build_batch_config = kwargs['buildBatchConfig'] + if build_timeout is None and 'buildTimeout' in kwargs: + build_timeout = kwargs['buildTimeout'] + if concurrent_build_limit is None and 'concurrentBuildLimit' in kwargs: + concurrent_build_limit = kwargs['concurrentBuildLimit'] + if encryption_key is None and 'encryptionKey' in kwargs: + encryption_key = kwargs['encryptionKey'] + if file_system_locations is None and 'fileSystemLocations' in kwargs: + file_system_locations = kwargs['fileSystemLocations'] + if logs_config is None and 'logsConfig' in kwargs: + logs_config = kwargs['logsConfig'] + if project_visibility is None and 'projectVisibility' in kwargs: + project_visibility = kwargs['projectVisibility'] + if public_project_alias is None and 'publicProjectAlias' in kwargs: + public_project_alias = kwargs['publicProjectAlias'] + if queued_timeout is None and 'queuedTimeout' in kwargs: + queued_timeout = kwargs['queuedTimeout'] + if resource_access_role is None and 'resourceAccessRole' in kwargs: + resource_access_role = kwargs['resourceAccessRole'] + if secondary_artifacts is None and 'secondaryArtifacts' in kwargs: + secondary_artifacts = kwargs['secondaryArtifacts'] + if secondary_source_versions is None and 'secondarySourceVersions' in kwargs: + secondary_source_versions = kwargs['secondarySourceVersions'] + if secondary_sources is None and 'secondarySources' in kwargs: + secondary_sources = kwargs['secondarySources'] + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if source_version is None and 'sourceVersion' in kwargs: + source_version = kwargs['sourceVersion'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if artifacts is not None: - pulumi.set(__self__, "artifacts", artifacts) + _setter("artifacts", artifacts) if badge_enabled is not None: - pulumi.set(__self__, "badge_enabled", badge_enabled) + _setter("badge_enabled", badge_enabled) if badge_url is not None: - pulumi.set(__self__, "badge_url", badge_url) + _setter("badge_url", badge_url) if build_batch_config is not None: - pulumi.set(__self__, "build_batch_config", build_batch_config) + _setter("build_batch_config", build_batch_config) if build_timeout is not None: - pulumi.set(__self__, "build_timeout", build_timeout) + _setter("build_timeout", build_timeout) if cache is not None: - pulumi.set(__self__, "cache", cache) + _setter("cache", cache) if concurrent_build_limit is not None: - pulumi.set(__self__, "concurrent_build_limit", concurrent_build_limit) + _setter("concurrent_build_limit", concurrent_build_limit) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encryption_key is not None: - pulumi.set(__self__, "encryption_key", encryption_key) + _setter("encryption_key", encryption_key) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if file_system_locations is not None: - pulumi.set(__self__, "file_system_locations", file_system_locations) + _setter("file_system_locations", file_system_locations) if logs_config is not None: - pulumi.set(__self__, "logs_config", logs_config) + _setter("logs_config", logs_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if project_visibility is not None: - pulumi.set(__self__, "project_visibility", project_visibility) + _setter("project_visibility", project_visibility) if public_project_alias is not None: - pulumi.set(__self__, "public_project_alias", public_project_alias) + _setter("public_project_alias", public_project_alias) if queued_timeout is not None: - pulumi.set(__self__, "queued_timeout", queued_timeout) + _setter("queued_timeout", queued_timeout) if resource_access_role is not None: - pulumi.set(__self__, "resource_access_role", resource_access_role) + _setter("resource_access_role", resource_access_role) if secondary_artifacts is not None: - pulumi.set(__self__, "secondary_artifacts", secondary_artifacts) + _setter("secondary_artifacts", secondary_artifacts) if secondary_source_versions is not None: - pulumi.set(__self__, "secondary_source_versions", secondary_source_versions) + _setter("secondary_source_versions", secondary_source_versions) if secondary_sources is not None: - pulumi.set(__self__, "secondary_sources", secondary_sources) + _setter("secondary_sources", secondary_sources) if service_role is not None: - pulumi.set(__self__, "service_role", service_role) + _setter("service_role", service_role) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if source_version is not None: - pulumi.set(__self__, "source_version", source_version) + _setter("source_version", source_version) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -1274,6 +1470,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProjectArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1311,20 +1511,25 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ProjectArgs.__new__(ProjectArgs) + artifacts = _utilities.configure(artifacts, ProjectArtifactsArgs, True) if artifacts is None and not opts.urn: raise TypeError("Missing required property 'artifacts'") __props__.__dict__["artifacts"] = artifacts __props__.__dict__["badge_enabled"] = badge_enabled + build_batch_config = _utilities.configure(build_batch_config, ProjectBuildBatchConfigArgs, True) __props__.__dict__["build_batch_config"] = build_batch_config __props__.__dict__["build_timeout"] = build_timeout + cache = _utilities.configure(cache, ProjectCacheArgs, True) __props__.__dict__["cache"] = cache __props__.__dict__["concurrent_build_limit"] = concurrent_build_limit __props__.__dict__["description"] = description __props__.__dict__["encryption_key"] = encryption_key + environment = _utilities.configure(environment, ProjectEnvironmentArgs, True) if environment is None and not opts.urn: raise TypeError("Missing required property 'environment'") __props__.__dict__["environment"] = environment __props__.__dict__["file_system_locations"] = file_system_locations + logs_config = _utilities.configure(logs_config, ProjectLogsConfigArgs, True) __props__.__dict__["logs_config"] = logs_config __props__.__dict__["name"] = name __props__.__dict__["project_visibility"] = project_visibility @@ -1336,11 +1541,13 @@ def _internal_init(__self__, if service_role is None and not opts.urn: raise TypeError("Missing required property 'service_role'") __props__.__dict__["service_role"] = service_role + source = _utilities.configure(source, ProjectSourceArgs, True) if source is None and not opts.urn: raise TypeError("Missing required property 'source'") __props__.__dict__["source"] = source __props__.__dict__["source_version"] = source_version __props__.__dict__["tags"] = tags + vpc_config = _utilities.configure(vpc_config, ProjectVpcConfigArgs, True) __props__.__dict__["vpc_config"] = vpc_config __props__.__dict__["arn"] = None __props__.__dict__["badge_url"] = None diff --git a/sdk/python/pulumi_aws/codebuild/report_group.py b/sdk/python/pulumi_aws/codebuild/report_group.py index d0c380238b4..b88577e293f 100644 --- a/sdk/python/pulumi_aws/codebuild/report_group.py +++ b/sdk/python/pulumi_aws/codebuild/report_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of a Report Group. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "export_config", export_config) - pulumi.set(__self__, "type", type) + ReportGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + export_config=export_config, + type=type, + delete_reports=delete_reports, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + export_config: Optional[pulumi.Input['ReportGroupExportConfigArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + delete_reports: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if export_config is None and 'exportConfig' in kwargs: + export_config = kwargs['exportConfig'] + if export_config is None: + raise TypeError("Missing 'export_config' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if delete_reports is None and 'deleteReports' in kwargs: + delete_reports = kwargs['deleteReports'] + + _setter("export_config", export_config) + _setter("type", type) if delete_reports is not None: - pulumi.set(__self__, "delete_reports", delete_reports) + _setter("delete_reports", delete_reports) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="exportConfig") @@ -121,25 +148,56 @@ def __init__(__self__, *, :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] type: The type of the Report Group. Valid value are `TEST` and `CODE_COVERAGE`. """ + _ReportGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created=created, + delete_reports=delete_reports, + export_config=export_config, + name=name, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created: Optional[pulumi.Input[str]] = None, + delete_reports: Optional[pulumi.Input[bool]] = None, + export_config: Optional[pulumi.Input['ReportGroupExportConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_reports is None and 'deleteReports' in kwargs: + delete_reports = kwargs['deleteReports'] + if export_config is None and 'exportConfig' in kwargs: + export_config = kwargs['exportConfig'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created is not None: - pulumi.set(__self__, "created", created) + _setter("created", created) if delete_reports is not None: - pulumi.set(__self__, "delete_reports", delete_reports) + _setter("delete_reports", delete_reports) if export_config is not None: - pulumi.set(__self__, "export_config", export_config) + _setter("export_config", export_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -370,6 +428,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReportGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -390,6 +452,7 @@ def _internal_init(__self__, __props__ = ReportGroupArgs.__new__(ReportGroupArgs) __props__.__dict__["delete_reports"] = delete_reports + export_config = _utilities.configure(export_config, ReportGroupExportConfigArgs, True) if export_config is None and not opts.urn: raise TypeError("Missing required property 'export_config'") __props__.__dict__["export_config"] = export_config diff --git a/sdk/python/pulumi_aws/codebuild/resource_policy.py b/sdk/python/pulumi_aws/codebuild/resource_policy.py index 3bcfc6a7344..4d4e62dfa6d 100644 --- a/sdk/python/pulumi_aws/codebuild/resource_policy.py +++ b/sdk/python/pulumi_aws/codebuild/resource_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourcePolicyArgs', 'ResourcePolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: A JSON-formatted resource policy. For more information, see [Sharing a Projec](https://docs.aws.amazon.com/codebuild/latest/userguide/project-sharing.html#project-sharing-share) and [Sharing a Report Group](https://docs.aws.amazon.com/codebuild/latest/userguide/report-groups-sharing.html#report-groups-sharing-share). :param pulumi.Input[str] resource_arn: The ARN of the Project or ReportGroup resource you want to associate with a resource policy. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "resource_arn", resource_arn) + ResourcePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("policy", policy) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: A JSON-formatted resource policy. For more information, see [Sharing a Projec](https://docs.aws.amazon.com/codebuild/latest/userguide/project-sharing.html#project-sharing-share) and [Sharing a Report Group](https://docs.aws.amazon.com/codebuild/latest/userguide/report-groups-sharing.html#report-groups-sharing-share). :param pulumi.Input[str] resource_arn: The ARN of the Project or ReportGroup resource you want to associate with a resource policy. """ + _ResourcePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -212,6 +246,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourcePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codebuild/source_credential.py b/sdk/python/pulumi_aws/codebuild/source_credential.py index 65d777c9dd4..7183075ee56 100644 --- a/sdk/python/pulumi_aws/codebuild/source_credential.py +++ b/sdk/python/pulumi_aws/codebuild/source_credential.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SourceCredentialArgs', 'SourceCredential'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] token: For `GitHub` or `GitHub Enterprise`, this is the personal access token. For `Bitbucket`, this is the app password. :param pulumi.Input[str] user_name: The Bitbucket username when the authType is `BASIC_AUTH`. This parameter is not valid for other types of source providers or connections. """ - pulumi.set(__self__, "auth_type", auth_type) - pulumi.set(__self__, "server_type", server_type) - pulumi.set(__self__, "token", token) + SourceCredentialArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_type=auth_type, + server_type=server_type, + token=token, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_type: Optional[pulumi.Input[str]] = None, + server_type: Optional[pulumi.Input[str]] = None, + token: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if auth_type is None: + raise TypeError("Missing 'auth_type' argument") + if server_type is None and 'serverType' in kwargs: + server_type = kwargs['serverType'] + if server_type is None: + raise TypeError("Missing 'server_type' argument") + if token is None: + raise TypeError("Missing 'token' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + + _setter("auth_type", auth_type) + _setter("server_type", server_type) + _setter("token", token) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter(name="authType") @@ -96,16 +125,41 @@ def __init__(__self__, *, :param pulumi.Input[str] token: For `GitHub` or `GitHub Enterprise`, this is the personal access token. For `Bitbucket`, this is the app password. :param pulumi.Input[str] user_name: The Bitbucket username when the authType is `BASIC_AUTH`. This parameter is not valid for other types of source providers or connections. """ + _SourceCredentialState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auth_type=auth_type, + server_type=server_type, + token=token, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auth_type: Optional[pulumi.Input[str]] = None, + server_type: Optional[pulumi.Input[str]] = None, + token: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if server_type is None and 'serverType' in kwargs: + server_type = kwargs['serverType'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auth_type is not None: - pulumi.set(__self__, "auth_type", auth_type) + _setter("auth_type", auth_type) if server_type is not None: - pulumi.set(__self__, "server_type", server_type) + _setter("server_type", server_type) if token is not None: - pulumi.set(__self__, "token", token) + _setter("token", token) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter @@ -277,6 +331,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SourceCredentialArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codebuild/webhook.py b/sdk/python/pulumi_aws/codebuild/webhook.py index 285d8ca7e98..55d4c2cb89a 100644 --- a/sdk/python/pulumi_aws/codebuild/webhook.py +++ b/sdk/python/pulumi_aws/codebuild/webhook.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,40 @@ def __init__(__self__, *, :param pulumi.Input[str] build_type: The type of build this webhook will trigger. Valid values for this parameter are: `BUILD`, `BUILD_BATCH`. :param pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupArgs']]] filter_groups: Information about the webhook's trigger. Filter group blocks are documented below. """ - pulumi.set(__self__, "project_name", project_name) + WebhookArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + project_name=project_name, + branch_filter=branch_filter, + build_type=build_type, + filter_groups=filter_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + project_name: Optional[pulumi.Input[str]] = None, + branch_filter: Optional[pulumi.Input[str]] = None, + build_type: Optional[pulumi.Input[str]] = None, + filter_groups: Optional[pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if project_name is None and 'projectName' in kwargs: + project_name = kwargs['projectName'] + if project_name is None: + raise TypeError("Missing 'project_name' argument") + if branch_filter is None and 'branchFilter' in kwargs: + branch_filter = kwargs['branchFilter'] + if build_type is None and 'buildType' in kwargs: + build_type = kwargs['buildType'] + if filter_groups is None and 'filterGroups' in kwargs: + filter_groups = kwargs['filterGroups'] + + _setter("project_name", project_name) if branch_filter is not None: - pulumi.set(__self__, "branch_filter", branch_filter) + _setter("branch_filter", branch_filter) if build_type is not None: - pulumi.set(__self__, "build_type", build_type) + _setter("build_type", build_type) if filter_groups is not None: - pulumi.set(__self__, "filter_groups", filter_groups) + _setter("filter_groups", filter_groups) @property @pulumi.getter(name="projectName") @@ -104,20 +131,53 @@ def __init__(__self__, *, :param pulumi.Input[str] secret: The secret token of the associated repository. Not returned by the CodeBuild API for all source types. :param pulumi.Input[str] url: The URL to the webhook. """ + _WebhookState._configure( + lambda key, value: pulumi.set(__self__, key, value), + branch_filter=branch_filter, + build_type=build_type, + filter_groups=filter_groups, + payload_url=payload_url, + project_name=project_name, + secret=secret, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + branch_filter: Optional[pulumi.Input[str]] = None, + build_type: Optional[pulumi.Input[str]] = None, + filter_groups: Optional[pulumi.Input[Sequence[pulumi.Input['WebhookFilterGroupArgs']]]] = None, + payload_url: Optional[pulumi.Input[str]] = None, + project_name: Optional[pulumi.Input[str]] = None, + secret: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if branch_filter is None and 'branchFilter' in kwargs: + branch_filter = kwargs['branchFilter'] + if build_type is None and 'buildType' in kwargs: + build_type = kwargs['buildType'] + if filter_groups is None and 'filterGroups' in kwargs: + filter_groups = kwargs['filterGroups'] + if payload_url is None and 'payloadUrl' in kwargs: + payload_url = kwargs['payloadUrl'] + if project_name is None and 'projectName' in kwargs: + project_name = kwargs['projectName'] + if branch_filter is not None: - pulumi.set(__self__, "branch_filter", branch_filter) + _setter("branch_filter", branch_filter) if build_type is not None: - pulumi.set(__self__, "build_type", build_type) + _setter("build_type", build_type) if filter_groups is not None: - pulumi.set(__self__, "filter_groups", filter_groups) + _setter("filter_groups", filter_groups) if payload_url is not None: - pulumi.set(__self__, "payload_url", payload_url) + _setter("payload_url", payload_url) if project_name is not None: - pulumi.set(__self__, "project_name", project_name) + _setter("project_name", project_name) if secret is not None: - pulumi.set(__self__, "secret", secret) + _setter("secret", secret) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter(name="branchFilter") @@ -365,6 +425,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebhookArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codecatalyst/_inputs.py b/sdk/python/pulumi_aws/codecatalyst/_inputs.py index 87eb21e6ce7..12e86696f51 100644 --- a/sdk/python/pulumi_aws/codecatalyst/_inputs.py +++ b/sdk/python/pulumi_aws/codecatalyst/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -25,10 +25,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the IDE. Valid values include Cloud9, IntelliJ, PyCharm, GoLand, and VSCode. :param pulumi.Input[str] runtime: A link to the IDE runtime image. This parameter is not required if the name is VSCode. Values of the runtime can be for example public.ecr.aws/jetbrains/py,public.ecr.aws/jetbrains/go """ + DevEnvironmentIdesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + runtime=runtime, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + runtime: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) @property @pulumi.getter @@ -62,7 +75,20 @@ def __init__(__self__, *, """ :param pulumi.Input[int] size: The size of the persistent storage in gigabytes (specifically GiB). Valid values for storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64. """ - pulumi.set(__self__, "size", size) + DevEnvironmentPersistentStorageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + + _setter("size", size) @property @pulumi.getter @@ -88,9 +114,28 @@ def __init__(__self__, *, persistent storage (` persistent_storage`) supports the following: """ - pulumi.set(__self__, "repository_name", repository_name) + DevEnvironmentRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + branch_name=branch_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[pulumi.Input[str]] = None, + branch_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + + _setter("repository_name", repository_name) if branch_name is not None: - pulumi.set(__self__, "branch_name", branch_name) + _setter("branch_name", branch_name) @property @pulumi.getter(name="repositoryName") @@ -124,8 +169,29 @@ class GetDevEnvironmentRepositoryArgs: def __init__(__self__, *, branch_name: str, repository_name: str): - pulumi.set(__self__, "branch_name", branch_name) - pulumi.set(__self__, "repository_name", repository_name) + GetDevEnvironmentRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + branch_name=branch_name, + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + branch_name: Optional[str] = None, + repository_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if branch_name is None: + raise TypeError("Missing 'branch_name' argument") + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + + _setter("branch_name", branch_name) + _setter("repository_name", repository_name) @property @pulumi.getter(name="branchName") diff --git a/sdk/python/pulumi_aws/codecatalyst/dev_environment.py b/sdk/python/pulumi_aws/codecatalyst/dev_environment.py index 9eb7c1f1eb6..5ad889890e6 100644 --- a/sdk/python/pulumi_aws/codecatalyst/dev_environment.py +++ b/sdk/python/pulumi_aws/codecatalyst/dev_environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -36,17 +36,62 @@ def __init__(__self__, *, :param pulumi.Input[int] inactivity_timeout_minutes: The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running. :param pulumi.Input[Sequence[pulumi.Input['DevEnvironmentRepositoryArgs']]] repositories: The source repository that contains the branch to clone into the Dev Environment. """ - pulumi.set(__self__, "ides", ides) - pulumi.set(__self__, "instance_type", instance_type) - pulumi.set(__self__, "persistent_storage", persistent_storage) - pulumi.set(__self__, "project_name", project_name) - pulumi.set(__self__, "space_name", space_name) + DevEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ides=ides, + instance_type=instance_type, + persistent_storage=persistent_storage, + project_name=project_name, + space_name=space_name, + alias=alias, + inactivity_timeout_minutes=inactivity_timeout_minutes, + repositories=repositories, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ides: Optional[pulumi.Input['DevEnvironmentIdesArgs']] = None, + instance_type: Optional[pulumi.Input[str]] = None, + persistent_storage: Optional[pulumi.Input['DevEnvironmentPersistentStorageArgs']] = None, + project_name: Optional[pulumi.Input[str]] = None, + space_name: Optional[pulumi.Input[str]] = None, + alias: Optional[pulumi.Input[str]] = None, + inactivity_timeout_minutes: Optional[pulumi.Input[int]] = None, + repositories: Optional[pulumi.Input[Sequence[pulumi.Input['DevEnvironmentRepositoryArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ides is None: + raise TypeError("Missing 'ides' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if persistent_storage is None and 'persistentStorage' in kwargs: + persistent_storage = kwargs['persistentStorage'] + if persistent_storage is None: + raise TypeError("Missing 'persistent_storage' argument") + if project_name is None and 'projectName' in kwargs: + project_name = kwargs['projectName'] + if project_name is None: + raise TypeError("Missing 'project_name' argument") + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if space_name is None: + raise TypeError("Missing 'space_name' argument") + if inactivity_timeout_minutes is None and 'inactivityTimeoutMinutes' in kwargs: + inactivity_timeout_minutes = kwargs['inactivityTimeoutMinutes'] + + _setter("ides", ides) + _setter("instance_type", instance_type) + _setter("persistent_storage", persistent_storage) + _setter("project_name", project_name) + _setter("space_name", space_name) if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if inactivity_timeout_minutes is not None: - pulumi.set(__self__, "inactivity_timeout_minutes", inactivity_timeout_minutes) + _setter("inactivity_timeout_minutes", inactivity_timeout_minutes) if repositories is not None: - pulumi.set(__self__, "repositories", repositories) + _setter("repositories", repositories) @property @pulumi.getter @@ -167,22 +212,57 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DevEnvironmentRepositoryArgs']]] repositories: The source repository that contains the branch to clone into the Dev Environment. :param pulumi.Input[str] space_name: The name of the space. """ + _DevEnvironmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + ides=ides, + inactivity_timeout_minutes=inactivity_timeout_minutes, + instance_type=instance_type, + persistent_storage=persistent_storage, + project_name=project_name, + repositories=repositories, + space_name=space_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[pulumi.Input[str]] = None, + ides: Optional[pulumi.Input['DevEnvironmentIdesArgs']] = None, + inactivity_timeout_minutes: Optional[pulumi.Input[int]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + persistent_storage: Optional[pulumi.Input['DevEnvironmentPersistentStorageArgs']] = None, + project_name: Optional[pulumi.Input[str]] = None, + repositories: Optional[pulumi.Input[Sequence[pulumi.Input['DevEnvironmentRepositoryArgs']]]] = None, + space_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inactivity_timeout_minutes is None and 'inactivityTimeoutMinutes' in kwargs: + inactivity_timeout_minutes = kwargs['inactivityTimeoutMinutes'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if persistent_storage is None and 'persistentStorage' in kwargs: + persistent_storage = kwargs['persistentStorage'] + if project_name is None and 'projectName' in kwargs: + project_name = kwargs['projectName'] + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if ides is not None: - pulumi.set(__self__, "ides", ides) + _setter("ides", ides) if inactivity_timeout_minutes is not None: - pulumi.set(__self__, "inactivity_timeout_minutes", inactivity_timeout_minutes) + _setter("inactivity_timeout_minutes", inactivity_timeout_minutes) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if persistent_storage is not None: - pulumi.set(__self__, "persistent_storage", persistent_storage) + _setter("persistent_storage", persistent_storage) if project_name is not None: - pulumi.set(__self__, "project_name", project_name) + _setter("project_name", project_name) if repositories is not None: - pulumi.set(__self__, "repositories", repositories) + _setter("repositories", repositories) if space_name is not None: - pulumi.set(__self__, "space_name", space_name) + _setter("space_name", space_name) @property @pulumi.getter @@ -378,6 +458,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DevEnvironmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -401,6 +485,7 @@ def _internal_init(__self__, __props__ = DevEnvironmentArgs.__new__(DevEnvironmentArgs) __props__.__dict__["alias"] = alias + ides = _utilities.configure(ides, DevEnvironmentIdesArgs, True) if ides is None and not opts.urn: raise TypeError("Missing required property 'ides'") __props__.__dict__["ides"] = ides @@ -408,6 +493,7 @@ def _internal_init(__self__, if instance_type is None and not opts.urn: raise TypeError("Missing required property 'instance_type'") __props__.__dict__["instance_type"] = instance_type + persistent_storage = _utilities.configure(persistent_storage, DevEnvironmentPersistentStorageArgs, True) if persistent_storage is None and not opts.urn: raise TypeError("Missing required property 'persistent_storage'") __props__.__dict__["persistent_storage"] = persistent_storage diff --git a/sdk/python/pulumi_aws/codecatalyst/get_dev_environment.py b/sdk/python/pulumi_aws/codecatalyst/get_dev_environment.py index 5784d7f24de..e8880007ce2 100644 --- a/sdk/python/pulumi_aws/codecatalyst/get_dev_environment.py +++ b/sdk/python/pulumi_aws/codecatalyst/get_dev_environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/codecatalyst/outputs.py b/sdk/python/pulumi_aws/codecatalyst/outputs.py index f228d0846c6..1be52b2a989 100644 --- a/sdk/python/pulumi_aws/codecatalyst/outputs.py +++ b/sdk/python/pulumi_aws/codecatalyst/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -27,10 +27,23 @@ def __init__(__self__, *, :param str name: The name of the IDE. Valid values include Cloud9, IntelliJ, PyCharm, GoLand, and VSCode. :param str runtime: A link to the IDE runtime image. This parameter is not required if the name is VSCode. Values of the runtime can be for example public.ecr.aws/jetbrains/py,public.ecr.aws/jetbrains/go """ + DevEnvironmentIdes._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + runtime=runtime, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + runtime: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) @property @pulumi.getter @@ -56,7 +69,20 @@ def __init__(__self__, *, """ :param int size: The size of the persistent storage in gigabytes (specifically GiB). Valid values for storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64. """ - pulumi.set(__self__, "size", size) + DevEnvironmentPersistentStorage._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + + _setter("size", size) @property @pulumi.getter @@ -97,9 +123,28 @@ def __init__(__self__, *, persistent storage (` persistent_storage`) supports the following: """ - pulumi.set(__self__, "repository_name", repository_name) + DevEnvironmentRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + branch_name=branch_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[str] = None, + branch_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + + _setter("repository_name", repository_name) if branch_name is not None: - pulumi.set(__self__, "branch_name", branch_name) + _setter("branch_name", branch_name) @property @pulumi.getter(name="repositoryName") @@ -125,8 +170,25 @@ class GetDevEnvironmentIdeResult(dict): def __init__(__self__, *, name: str, runtime: str): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "runtime", runtime) + GetDevEnvironmentIdeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + runtime=runtime, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + runtime: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if runtime is None: + raise TypeError("Missing 'runtime' argument") + + _setter("name", name) + _setter("runtime", runtime) @property @pulumi.getter @@ -143,7 +205,20 @@ def runtime(self) -> str: class GetDevEnvironmentPersistentStorageResult(dict): def __init__(__self__, *, size: int): - pulumi.set(__self__, "size", size) + GetDevEnvironmentPersistentStorageResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + + _setter("size", size) @property @pulumi.getter @@ -156,8 +231,29 @@ class GetDevEnvironmentRepositoryResult(dict): def __init__(__self__, *, branch_name: str, repository_name: str): - pulumi.set(__self__, "branch_name", branch_name) - pulumi.set(__self__, "repository_name", repository_name) + GetDevEnvironmentRepositoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + branch_name=branch_name, + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + branch_name: Optional[str] = None, + repository_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if branch_name is None and 'branchName' in kwargs: + branch_name = kwargs['branchName'] + if branch_name is None: + raise TypeError("Missing 'branch_name' argument") + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + + _setter("branch_name", branch_name) + _setter("repository_name", repository_name) @property @pulumi.getter(name="branchName") diff --git a/sdk/python/pulumi_aws/codecatalyst/project.py b/sdk/python/pulumi_aws/codecatalyst/project.py index 1d706ec3a97..563832a44ce 100644 --- a/sdk/python/pulumi_aws/codecatalyst/project.py +++ b/sdk/python/pulumi_aws/codecatalyst/project.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProjectArgs', 'Project'] @@ -25,10 +25,33 @@ def __init__(__self__, *, :param pulumi.Input[str] space_name: The name of the space. :param pulumi.Input[str] description: The description of the project. This description will be displayed to all users of the project. We recommend providing a brief description of the project and its intended purpose. """ - pulumi.set(__self__, "display_name", display_name) - pulumi.set(__self__, "space_name", space_name) + ProjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + display_name=display_name, + space_name=space_name, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + display_name: Optional[pulumi.Input[str]] = None, + space_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if display_name is None: + raise TypeError("Missing 'display_name' argument") + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if space_name is None: + raise TypeError("Missing 'space_name' argument") + + _setter("display_name", display_name) + _setter("space_name", space_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="displayName") @@ -85,14 +108,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the project in the space. :param pulumi.Input[str] space_name: The name of the space. """ + _ProjectState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + display_name=display_name, + name=name, + space_name=space_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + space_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if space_name is not None: - pulumi.set(__self__, "space_name", space_name) + _setter("space_name", space_name) @property @pulumi.getter @@ -226,6 +270,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProjectArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codecatalyst/source_repository.py b/sdk/python/pulumi_aws/codecatalyst/source_repository.py index 25f6553f044..0c3ef3b6e6c 100644 --- a/sdk/python/pulumi_aws/codecatalyst/source_repository.py +++ b/sdk/python/pulumi_aws/codecatalyst/source_repository.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SourceRepositoryArgs', 'SourceRepository'] @@ -27,12 +27,37 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The description of the project. This description will be displayed to all users of the project. We recommend providing a brief description of the project and its intended purpose. :param pulumi.Input[str] name: The name of the source repository. For more information about name requirements, see [Quotas for source repositories](https://docs.aws.amazon.com/codecatalyst/latest/userguide/source-quotas.html). """ - pulumi.set(__self__, "project_name", project_name) - pulumi.set(__self__, "space_name", space_name) + SourceRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + project_name=project_name, + space_name=space_name, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + project_name: Optional[pulumi.Input[str]] = None, + space_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if project_name is None and 'projectName' in kwargs: + project_name = kwargs['projectName'] + if project_name is None: + raise TypeError("Missing 'project_name' argument") + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if space_name is None: + raise TypeError("Missing 'space_name' argument") + + _setter("project_name", project_name) + _setter("space_name", space_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="projectName") @@ -101,14 +126,35 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] space_name: The name of the CodeCatalyst space. """ + _SourceRepositoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + project_name=project_name, + space_name=space_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_name: Optional[pulumi.Input[str]] = None, + space_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if project_name is None and 'projectName' in kwargs: + project_name = kwargs['projectName'] + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if project_name is not None: - pulumi.set(__self__, "project_name", project_name) + _setter("project_name", project_name) if space_name is not None: - pulumi.set(__self__, "space_name", space_name) + _setter("space_name", space_name) @property @pulumi.getter @@ -242,6 +288,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SourceRepositoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codecommit/_inputs.py b/sdk/python/pulumi_aws/codecommit/_inputs.py index 84916540eeb..651e4adc318 100644 --- a/sdk/python/pulumi_aws/codecommit/_inputs.py +++ b/sdk/python/pulumi_aws/codecommit/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,13 +28,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] branches: The branches that will be included in the trigger configuration. If no branches are specified, the trigger will apply to all branches. :param pulumi.Input[str] custom_data: Any custom data associated with the trigger that will be included in the information sent to the target of the trigger. """ - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "events", events) - pulumi.set(__self__, "name", name) + TriggerTriggerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + events=events, + name=name, + branches=branches, + custom_data=custom_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + branches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if events is None: + raise TypeError("Missing 'events' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if custom_data is None and 'customData' in kwargs: + custom_data = kwargs['customData'] + + _setter("destination_arn", destination_arn) + _setter("events", events) + _setter("name", name) if branches is not None: - pulumi.set(__self__, "branches", branches) + _setter("branches", branches) if custom_data is not None: - pulumi.set(__self__, "custom_data", custom_data) + _setter("custom_data", custom_data) @property @pulumi.getter(name="destinationArn") diff --git a/sdk/python/pulumi_aws/codecommit/approval_rule_template.py b/sdk/python/pulumi_aws/codecommit/approval_rule_template.py index 444413c302e..a2d65c97fbb 100644 --- a/sdk/python/pulumi_aws/codecommit/approval_rule_template.py +++ b/sdk/python/pulumi_aws/codecommit/approval_rule_template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApprovalRuleTemplateArgs', 'ApprovalRuleTemplate'] @@ -23,11 +23,28 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The description of the approval rule template. Maximum of 1000 characters. :param pulumi.Input[str] name: The name for the approval rule template. Maximum of 100 characters. """ - pulumi.set(__self__, "content", content) + ApprovalRuleTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + + _setter("content", content) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -88,22 +105,57 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name for the approval rule template. Maximum of 100 characters. :param pulumi.Input[str] rule_content_sha256: The SHA-256 hash signature for the content of the approval rule template. """ + _ApprovalRuleTemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + approval_rule_template_id=approval_rule_template_id, + content=content, + creation_date=creation_date, + description=description, + last_modified_date=last_modified_date, + last_modified_user=last_modified_user, + name=name, + rule_content_sha256=rule_content_sha256, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + approval_rule_template_id: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + last_modified_date: Optional[pulumi.Input[str]] = None, + last_modified_user: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rule_content_sha256: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if approval_rule_template_id is None and 'approvalRuleTemplateId' in kwargs: + approval_rule_template_id = kwargs['approvalRuleTemplateId'] + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if last_modified_date is None and 'lastModifiedDate' in kwargs: + last_modified_date = kwargs['lastModifiedDate'] + if last_modified_user is None and 'lastModifiedUser' in kwargs: + last_modified_user = kwargs['lastModifiedUser'] + if rule_content_sha256 is None and 'ruleContentSha256' in kwargs: + rule_content_sha256 = kwargs['ruleContentSha256'] + if approval_rule_template_id is not None: - pulumi.set(__self__, "approval_rule_template_id", approval_rule_template_id) + _setter("approval_rule_template_id", approval_rule_template_id) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if last_modified_date is not None: - pulumi.set(__self__, "last_modified_date", last_modified_date) + _setter("last_modified_date", last_modified_date) if last_modified_user is not None: - pulumi.set(__self__, "last_modified_user", last_modified_user) + _setter("last_modified_user", last_modified_user) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rule_content_sha256 is not None: - pulumi.set(__self__, "rule_content_sha256", rule_content_sha256) + _setter("rule_content_sha256", rule_content_sha256) @property @pulumi.getter(name="approvalRuleTemplateId") @@ -295,6 +347,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApprovalRuleTemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codecommit/approval_rule_template_association.py b/sdk/python/pulumi_aws/codecommit/approval_rule_template_association.py index a183a26dfdf..08cb01b292d 100644 --- a/sdk/python/pulumi_aws/codecommit/approval_rule_template_association.py +++ b/sdk/python/pulumi_aws/codecommit/approval_rule_template_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApprovalRuleTemplateAssociationArgs', 'ApprovalRuleTemplateAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] approval_rule_template_name: The name for the approval rule template. :param pulumi.Input[str] repository_name: The name of the repository that you want to associate with the template. """ - pulumi.set(__self__, "approval_rule_template_name", approval_rule_template_name) - pulumi.set(__self__, "repository_name", repository_name) + ApprovalRuleTemplateAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + approval_rule_template_name=approval_rule_template_name, + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + approval_rule_template_name: Optional[pulumi.Input[str]] = None, + repository_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if approval_rule_template_name is None and 'approvalRuleTemplateName' in kwargs: + approval_rule_template_name = kwargs['approvalRuleTemplateName'] + if approval_rule_template_name is None: + raise TypeError("Missing 'approval_rule_template_name' argument") + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + + _setter("approval_rule_template_name", approval_rule_template_name) + _setter("repository_name", repository_name) @property @pulumi.getter(name="approvalRuleTemplateName") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] approval_rule_template_name: The name for the approval rule template. :param pulumi.Input[str] repository_name: The name of the repository that you want to associate with the template. """ + _ApprovalRuleTemplateAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + approval_rule_template_name=approval_rule_template_name, + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + approval_rule_template_name: Optional[pulumi.Input[str]] = None, + repository_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if approval_rule_template_name is None and 'approvalRuleTemplateName' in kwargs: + approval_rule_template_name = kwargs['approvalRuleTemplateName'] + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if approval_rule_template_name is not None: - pulumi.set(__self__, "approval_rule_template_name", approval_rule_template_name) + _setter("approval_rule_template_name", approval_rule_template_name) if repository_name is not None: - pulumi.set(__self__, "repository_name", repository_name) + _setter("repository_name", repository_name) @property @pulumi.getter(name="approvalRuleTemplateName") @@ -162,6 +200,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApprovalRuleTemplateAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codecommit/get_approval_rule_template.py b/sdk/python/pulumi_aws/codecommit/get_approval_rule_template.py index 7c7d2efb7e0..b19dbbc4b6e 100644 --- a/sdk/python/pulumi_aws/codecommit/get_approval_rule_template.py +++ b/sdk/python/pulumi_aws/codecommit/get_approval_rule_template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/codecommit/get_repository.py b/sdk/python/pulumi_aws/codecommit/get_repository.py index 2284439b6f4..d89b5548a9b 100644 --- a/sdk/python/pulumi_aws/codecommit/get_repository.py +++ b/sdk/python/pulumi_aws/codecommit/get_repository.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/codecommit/outputs.py b/sdk/python/pulumi_aws/codecommit/outputs.py index 44f7eb7e1fe..e0842c4b76f 100644 --- a/sdk/python/pulumi_aws/codecommit/outputs.py +++ b/sdk/python/pulumi_aws/codecommit/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -47,13 +47,42 @@ def __init__(__self__, *, :param Sequence[str] branches: The branches that will be included in the trigger configuration. If no branches are specified, the trigger will apply to all branches. :param str custom_data: Any custom data associated with the trigger that will be included in the information sent to the target of the trigger. """ - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "events", events) - pulumi.set(__self__, "name", name) + TriggerTrigger._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + events=events, + name=name, + branches=branches, + custom_data=custom_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[str] = None, + events: Optional[Sequence[str]] = None, + name: Optional[str] = None, + branches: Optional[Sequence[str]] = None, + custom_data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if events is None: + raise TypeError("Missing 'events' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if custom_data is None and 'customData' in kwargs: + custom_data = kwargs['customData'] + + _setter("destination_arn", destination_arn) + _setter("events", events) + _setter("name", name) if branches is not None: - pulumi.set(__self__, "branches", branches) + _setter("branches", branches) if custom_data is not None: - pulumi.set(__self__, "custom_data", custom_data) + _setter("custom_data", custom_data) @property @pulumi.getter(name="destinationArn") diff --git a/sdk/python/pulumi_aws/codecommit/repository.py b/sdk/python/pulumi_aws/codecommit/repository.py index 9761ad52ed2..7b91666e427 100644 --- a/sdk/python/pulumi_aws/codecommit/repository.py +++ b/sdk/python/pulumi_aws/codecommit/repository.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RepositoryArgs', 'Repository'] @@ -25,13 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The description of the repository. This needs to be less than 1000 characters :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. """ - pulumi.set(__self__, "repository_name", repository_name) + RepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + default_branch=default_branch, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[pulumi.Input[str]] = None, + default_branch: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if default_branch is None and 'defaultBranch' in kwargs: + default_branch = kwargs['defaultBranch'] + + _setter("repository_name", repository_name) if default_branch is not None: - pulumi.set(__self__, "default_branch", default_branch) + _setter("default_branch", default_branch) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="repositoryName") @@ -106,27 +129,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RepositoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + clone_url_http=clone_url_http, + clone_url_ssh=clone_url_ssh, + default_branch=default_branch, + description=description, + repository_id=repository_id, + repository_name=repository_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + clone_url_http: Optional[pulumi.Input[str]] = None, + clone_url_ssh: Optional[pulumi.Input[str]] = None, + default_branch: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + repository_id: Optional[pulumi.Input[str]] = None, + repository_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if clone_url_http is None and 'cloneUrlHttp' in kwargs: + clone_url_http = kwargs['cloneUrlHttp'] + if clone_url_ssh is None and 'cloneUrlSsh' in kwargs: + clone_url_ssh = kwargs['cloneUrlSsh'] + if default_branch is None and 'defaultBranch' in kwargs: + default_branch = kwargs['defaultBranch'] + if repository_id is None and 'repositoryId' in kwargs: + repository_id = kwargs['repositoryId'] + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if clone_url_http is not None: - pulumi.set(__self__, "clone_url_http", clone_url_http) + _setter("clone_url_http", clone_url_http) if clone_url_ssh is not None: - pulumi.set(__self__, "clone_url_ssh", clone_url_ssh) + _setter("clone_url_ssh", clone_url_ssh) if default_branch is not None: - pulumi.set(__self__, "default_branch", default_branch) + _setter("default_branch", default_branch) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if repository_id is not None: - pulumi.set(__self__, "repository_id", repository_id) + _setter("repository_id", repository_id) if repository_name is not None: - pulumi.set(__self__, "repository_name", repository_name) + _setter("repository_name", repository_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -317,6 +379,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RepositoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codecommit/trigger.py b/sdk/python/pulumi_aws/codecommit/trigger.py index ca68aec6959..f2d27815f7f 100644 --- a/sdk/python/pulumi_aws/codecommit/trigger.py +++ b/sdk/python/pulumi_aws/codecommit/trigger.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -22,8 +22,27 @@ def __init__(__self__, *, The set of arguments for constructing a Trigger resource. :param pulumi.Input[str] repository_name: The name for the repository. This needs to be less than 100 characters. """ - pulumi.set(__self__, "repository_name", repository_name) - pulumi.set(__self__, "triggers", triggers) + TriggerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Sequence[pulumi.Input['TriggerTriggerArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if triggers is None: + raise TypeError("Missing 'triggers' argument") + + _setter("repository_name", repository_name) + _setter("triggers", triggers) @property @pulumi.getter(name="repositoryName") @@ -58,12 +77,31 @@ def __init__(__self__, *, :param pulumi.Input[str] configuration_id: System-generated unique identifier. :param pulumi.Input[str] repository_name: The name for the repository. This needs to be less than 100 characters. """ + _TriggerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_id=configuration_id, + repository_name=repository_name, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_id: Optional[pulumi.Input[str]] = None, + repository_name: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Sequence[pulumi.Input['TriggerTriggerArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_id is None and 'configurationId' in kwargs: + configuration_id = kwargs['configurationId'] + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if configuration_id is not None: - pulumi.set(__self__, "configuration_id", configuration_id) + _setter("configuration_id", configuration_id) if repository_name is not None: - pulumi.set(__self__, "repository_name", repository_name) + _setter("repository_name", repository_name) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter(name="configurationId") @@ -165,6 +203,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TriggerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codedeploy/_inputs.py b/sdk/python/pulumi_aws/codedeploy/_inputs.py index e2415aa44c0..7aee9b592cf 100644 --- a/sdk/python/pulumi_aws/codedeploy/_inputs.py +++ b/sdk/python/pulumi_aws/codedeploy/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -48,10 +48,23 @@ def __init__(__self__, *, deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances as an absolute value. """ + DeploymentConfigMinimumHealthyHostsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -92,12 +105,31 @@ def __init__(__self__, *, :param pulumi.Input['DeploymentConfigTrafficRoutingConfigTimeBasedLinearArgs'] time_based_linear: The time based linear configuration information. If `type` is `TimeBasedCanary`, use `time_based_canary` instead. :param pulumi.Input[str] type: Type of traffic routing config. One of `TimeBasedCanary`, `TimeBasedLinear`, `AllAtOnce`. """ + DeploymentConfigTrafficRoutingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + time_based_canary=time_based_canary, + time_based_linear=time_based_linear, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + time_based_canary: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigTimeBasedCanaryArgs']] = None, + time_based_linear: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigTimeBasedLinearArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if time_based_canary is None and 'timeBasedCanary' in kwargs: + time_based_canary = kwargs['timeBasedCanary'] + if time_based_linear is None and 'timeBasedLinear' in kwargs: + time_based_linear = kwargs['timeBasedLinear'] + if time_based_canary is not None: - pulumi.set(__self__, "time_based_canary", time_based_canary) + _setter("time_based_canary", time_based_canary) if time_based_linear is not None: - pulumi.set(__self__, "time_based_linear", time_based_linear) + _setter("time_based_linear", time_based_linear) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="timeBasedCanary") @@ -145,10 +177,23 @@ def __init__(__self__, *, :param pulumi.Input[int] interval: The number of minutes between the first and second traffic shifts of a `TimeBasedCanary` deployment. :param pulumi.Input[int] percentage: The percentage of traffic to shift in the first increment of a `TimeBasedCanary` deployment. """ + DeploymentConfigTrafficRoutingConfigTimeBasedCanaryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + percentage=percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[pulumi.Input[int]] = None, + percentage: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if percentage is not None: - pulumi.set(__self__, "percentage", percentage) + _setter("percentage", percentage) @property @pulumi.getter @@ -184,10 +229,23 @@ def __init__(__self__, *, :param pulumi.Input[int] interval: The number of minutes between each incremental traffic shift of a `TimeBasedLinear` deployment. :param pulumi.Input[int] percentage: The percentage of traffic that is shifted at the start of each increment of a `TimeBasedLinear` deployment. """ + DeploymentConfigTrafficRoutingConfigTimeBasedLinearArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + percentage=percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[pulumi.Input[int]] = None, + percentage: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if percentage is not None: - pulumi.set(__self__, "percentage", percentage) + _setter("percentage", percentage) @property @pulumi.getter @@ -225,12 +283,29 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Indicates whether the alarm configuration is enabled. This option is useful when you want to temporarily deactivate alarm monitoring for a deployment group without having to add the same alarms again later. :param pulumi.Input[bool] ignore_poll_alarm_failure: Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from CloudWatch. The default value is `false`. """ + DeploymentGroupAlarmConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + enabled=enabled, + ignore_poll_alarm_failure=ignore_poll_alarm_failure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + ignore_poll_alarm_failure: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ignore_poll_alarm_failure is None and 'ignorePollAlarmFailure' in kwargs: + ignore_poll_alarm_failure = kwargs['ignorePollAlarmFailure'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if ignore_poll_alarm_failure is not None: - pulumi.set(__self__, "ignore_poll_alarm_failure", ignore_poll_alarm_failure) + _setter("ignore_poll_alarm_failure", ignore_poll_alarm_failure) @property @pulumi.getter @@ -280,10 +355,23 @@ def __init__(__self__, *, _Only one `auto_rollback_configuration` is allowed_. """ + DeploymentGroupAutoRollbackConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + events=events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if events is not None: - pulumi.set(__self__, "events", events) + _setter("events", events) @property @pulumi.getter @@ -325,12 +413,33 @@ def __init__(__self__, *, _Only one `blue_green_deployment_config` is allowed_. """ + DeploymentGroupBlueGreenDeploymentConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment_ready_option=deployment_ready_option, + green_fleet_provisioning_option=green_fleet_provisioning_option, + terminate_blue_instances_on_deployment_success=terminate_blue_instances_on_deployment_success, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment_ready_option: Optional[pulumi.Input['DeploymentGroupBlueGreenDeploymentConfigDeploymentReadyOptionArgs']] = None, + green_fleet_provisioning_option: Optional[pulumi.Input['DeploymentGroupBlueGreenDeploymentConfigGreenFleetProvisioningOptionArgs']] = None, + terminate_blue_instances_on_deployment_success: Optional[pulumi.Input['DeploymentGroupBlueGreenDeploymentConfigTerminateBlueInstancesOnDeploymentSuccessArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_ready_option is None and 'deploymentReadyOption' in kwargs: + deployment_ready_option = kwargs['deploymentReadyOption'] + if green_fleet_provisioning_option is None and 'greenFleetProvisioningOption' in kwargs: + green_fleet_provisioning_option = kwargs['greenFleetProvisioningOption'] + if terminate_blue_instances_on_deployment_success is None and 'terminateBlueInstancesOnDeploymentSuccess' in kwargs: + terminate_blue_instances_on_deployment_success = kwargs['terminateBlueInstancesOnDeploymentSuccess'] + if deployment_ready_option is not None: - pulumi.set(__self__, "deployment_ready_option", deployment_ready_option) + _setter("deployment_ready_option", deployment_ready_option) if green_fleet_provisioning_option is not None: - pulumi.set(__self__, "green_fleet_provisioning_option", green_fleet_provisioning_option) + _setter("green_fleet_provisioning_option", green_fleet_provisioning_option) if terminate_blue_instances_on_deployment_success is not None: - pulumi.set(__self__, "terminate_blue_instances_on_deployment_success", terminate_blue_instances_on_deployment_success) + _setter("terminate_blue_instances_on_deployment_success", terminate_blue_instances_on_deployment_success) @property @pulumi.getter(name="deploymentReadyOption") @@ -380,10 +489,27 @@ def __init__(__self__, *, :param pulumi.Input[str] action_on_timeout: When to reroute traffic from an original environment to a replacement environment in a blue/green deployment. :param pulumi.Input[int] wait_time_in_minutes: The number of minutes to wait before the status of a blue/green deployment changed to Stopped if rerouting is not started manually. Applies only to the `STOP_DEPLOYMENT` option for `action_on_timeout`. """ + DeploymentGroupBlueGreenDeploymentConfigDeploymentReadyOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_on_timeout=action_on_timeout, + wait_time_in_minutes=wait_time_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_on_timeout: Optional[pulumi.Input[str]] = None, + wait_time_in_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_on_timeout is None and 'actionOnTimeout' in kwargs: + action_on_timeout = kwargs['actionOnTimeout'] + if wait_time_in_minutes is None and 'waitTimeInMinutes' in kwargs: + wait_time_in_minutes = kwargs['waitTimeInMinutes'] + if action_on_timeout is not None: - pulumi.set(__self__, "action_on_timeout", action_on_timeout) + _setter("action_on_timeout", action_on_timeout) if wait_time_in_minutes is not None: - pulumi.set(__self__, "wait_time_in_minutes", wait_time_in_minutes) + _setter("wait_time_in_minutes", wait_time_in_minutes) @property @pulumi.getter(name="actionOnTimeout") @@ -417,8 +543,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] action: The method used to add instances to a replacement environment. """ + DeploymentGroupBlueGreenDeploymentConfigGreenFleetProvisioningOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) @property @pulumi.getter @@ -442,10 +579,25 @@ def __init__(__self__, *, :param pulumi.Input[str] action: The action to take on instances in the original environment after a successful blue/green deployment. :param pulumi.Input[int] termination_wait_time_in_minutes: The number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment. """ + DeploymentGroupBlueGreenDeploymentConfigTerminateBlueInstancesOnDeploymentSuccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + termination_wait_time_in_minutes=termination_wait_time_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + termination_wait_time_in_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if termination_wait_time_in_minutes is None and 'terminationWaitTimeInMinutes' in kwargs: + termination_wait_time_in_minutes = kwargs['terminationWaitTimeInMinutes'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if termination_wait_time_in_minutes is not None: - pulumi.set(__self__, "termination_wait_time_in_minutes", termination_wait_time_in_minutes) + _setter("termination_wait_time_in_minutes", termination_wait_time_in_minutes) @property @pulumi.getter @@ -483,10 +635,27 @@ def __init__(__self__, *, _Only one `deployment_style` is allowed_. """ + DeploymentGroupDeploymentStyleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment_option=deployment_option, + deployment_type=deployment_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment_option: Optional[pulumi.Input[str]] = None, + deployment_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_option is None and 'deploymentOption' in kwargs: + deployment_option = kwargs['deploymentOption'] + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if deployment_option is not None: - pulumi.set(__self__, "deployment_option", deployment_option) + _setter("deployment_option", deployment_option) if deployment_type is not None: - pulumi.set(__self__, "deployment_type", deployment_type) + _setter("deployment_type", deployment_type) @property @pulumi.getter(name="deploymentOption") @@ -528,12 +697,27 @@ def __init__(__self__, *, Multiple occurrences of `ec2_tag_filter` are allowed, where any instance that matches to at least one of the tag filters is selected. """ + DeploymentGroupEc2TagFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -581,8 +765,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['DeploymentGroupEc2TagSetEc2TagFilterArgs']]] ec2_tag_filters: Tag filters associated with the deployment group. See the AWS docs for details. """ + DeploymentGroupEc2TagSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ec2_tag_filters=ec2_tag_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ec2_tag_filters: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupEc2TagSetEc2TagFilterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ec2_tag_filters is None and 'ec2TagFilters' in kwargs: + ec2_tag_filters = kwargs['ec2TagFilters'] + if ec2_tag_filters is not None: - pulumi.set(__self__, "ec2_tag_filters", ec2_tag_filters) + _setter("ec2_tag_filters", ec2_tag_filters) @property @pulumi.getter(name="ec2TagFilters") @@ -610,12 +807,27 @@ def __init__(__self__, *, Multiple occurrences of `ec2_tag_filter` are allowed, where any instance that matches to at least one of the tag filters is selected. """ + DeploymentGroupEc2TagSetEc2TagFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -665,8 +877,29 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_name: The name of the ECS cluster. :param pulumi.Input[str] service_name: The name of the ECS service. """ - pulumi.set(__self__, "cluster_name", cluster_name) - pulumi.set(__self__, "service_name", service_name) + DeploymentGroupEcsServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_name=cluster_name, + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_name: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_name is None: + raise TypeError("Missing 'cluster_name' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("cluster_name", cluster_name) + _setter("service_name", service_name) @property @pulumi.getter(name="clusterName") @@ -704,12 +937,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DeploymentGroupLoadBalancerInfoTargetGroupInfoArgs']]] target_group_infos: The (Application/Network Load Balancer) target group to use in a deployment. Conflicts with `elb_info` and `target_group_pair_info`. :param pulumi.Input['DeploymentGroupLoadBalancerInfoTargetGroupPairInfoArgs'] target_group_pair_info: The (Application/Network Load Balancer) target group pair to use in a deployment. Conflicts with `elb_info` and `target_group_info`. """ + DeploymentGroupLoadBalancerInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + elb_infos=elb_infos, + target_group_infos=target_group_infos, + target_group_pair_info=target_group_pair_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + elb_infos: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupLoadBalancerInfoElbInfoArgs']]]] = None, + target_group_infos: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupLoadBalancerInfoTargetGroupInfoArgs']]]] = None, + target_group_pair_info: Optional[pulumi.Input['DeploymentGroupLoadBalancerInfoTargetGroupPairInfoArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if elb_infos is None and 'elbInfos' in kwargs: + elb_infos = kwargs['elbInfos'] + if target_group_infos is None and 'targetGroupInfos' in kwargs: + target_group_infos = kwargs['targetGroupInfos'] + if target_group_pair_info is None and 'targetGroupPairInfo' in kwargs: + target_group_pair_info = kwargs['targetGroupPairInfo'] + if elb_infos is not None: - pulumi.set(__self__, "elb_infos", elb_infos) + _setter("elb_infos", elb_infos) if target_group_infos is not None: - pulumi.set(__self__, "target_group_infos", target_group_infos) + _setter("target_group_infos", target_group_infos) if target_group_pair_info is not None: - pulumi.set(__self__, "target_group_pair_info", target_group_pair_info) + _setter("target_group_pair_info", target_group_pair_info) @property @pulumi.getter(name="elbInfos") @@ -755,8 +1009,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the load balancer that will be used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. """ + DeploymentGroupLoadBalancerInfoElbInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -778,8 +1043,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. """ + DeploymentGroupLoadBalancerInfoTargetGroupInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -805,10 +1081,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTargetGroupArgs']]] target_groups: Configuration blocks for a target group within a target group pair (documented below). :param pulumi.Input['DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTestTrafficRouteArgs'] test_traffic_route: Configuration block for the test traffic route (documented below). """ - pulumi.set(__self__, "prod_traffic_route", prod_traffic_route) - pulumi.set(__self__, "target_groups", target_groups) + DeploymentGroupLoadBalancerInfoTargetGroupPairInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prod_traffic_route=prod_traffic_route, + target_groups=target_groups, + test_traffic_route=test_traffic_route, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prod_traffic_route: Optional[pulumi.Input['DeploymentGroupLoadBalancerInfoTargetGroupPairInfoProdTrafficRouteArgs']] = None, + target_groups: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTargetGroupArgs']]]] = None, + test_traffic_route: Optional[pulumi.Input['DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTestTrafficRouteArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prod_traffic_route is None and 'prodTrafficRoute' in kwargs: + prod_traffic_route = kwargs['prodTrafficRoute'] + if prod_traffic_route is None: + raise TypeError("Missing 'prod_traffic_route' argument") + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + if test_traffic_route is None and 'testTrafficRoute' in kwargs: + test_traffic_route = kwargs['testTrafficRoute'] + + _setter("prod_traffic_route", prod_traffic_route) + _setter("target_groups", target_groups) if test_traffic_route is not None: - pulumi.set(__self__, "test_traffic_route", test_traffic_route) + _setter("test_traffic_route", test_traffic_route) @property @pulumi.getter(name="prodTrafficRoute") @@ -854,7 +1155,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] listener_arns: List of Amazon Resource Names (ARNs) of the load balancer listeners. Must contain exactly one listener ARN. """ - pulumi.set(__self__, "listener_arns", listener_arns) + DeploymentGroupLoadBalancerInfoTargetGroupPairInfoProdTrafficRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + listener_arns=listener_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listener_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listener_arns is None and 'listenerArns' in kwargs: + listener_arns = kwargs['listenerArns'] + if listener_arns is None: + raise TypeError("Missing 'listener_arns' argument") + + _setter("listener_arns", listener_arns) @property @pulumi.getter(name="listenerArns") @@ -876,7 +1192,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the target group. """ - pulumi.set(__self__, "name", name) + DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -898,7 +1227,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] listener_arns: List of Amazon Resource Names (ARNs) of the load balancer listeners. """ - pulumi.set(__self__, "listener_arns", listener_arns) + DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTestTrafficRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + listener_arns=listener_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listener_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listener_arns is None and 'listenerArns' in kwargs: + listener_arns = kwargs['listenerArns'] + if listener_arns is None: + raise TypeError("Missing 'listener_arns' argument") + + _setter("listener_arns", listener_arns) @property @pulumi.getter(name="listenerArns") @@ -924,12 +1268,27 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of the tag filter, either `KEY_ONLY`, `VALUE_ONLY`, or `KEY_AND_VALUE`. :param pulumi.Input[str] value: The value of the tag filter. """ + DeploymentGroupOnPremisesInstanceTagFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -979,9 +1338,36 @@ def __init__(__self__, *, :param pulumi.Input[str] trigger_name: The name of the notification trigger. :param pulumi.Input[str] trigger_target_arn: The ARN of the SNS topic through which notifications are sent. """ - pulumi.set(__self__, "trigger_events", trigger_events) - pulumi.set(__self__, "trigger_name", trigger_name) - pulumi.set(__self__, "trigger_target_arn", trigger_target_arn) + DeploymentGroupTriggerConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + trigger_events=trigger_events, + trigger_name=trigger_name, + trigger_target_arn=trigger_target_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trigger_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + trigger_name: Optional[pulumi.Input[str]] = None, + trigger_target_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trigger_events is None and 'triggerEvents' in kwargs: + trigger_events = kwargs['triggerEvents'] + if trigger_events is None: + raise TypeError("Missing 'trigger_events' argument") + if trigger_name is None and 'triggerName' in kwargs: + trigger_name = kwargs['triggerName'] + if trigger_name is None: + raise TypeError("Missing 'trigger_name' argument") + if trigger_target_arn is None and 'triggerTargetArn' in kwargs: + trigger_target_arn = kwargs['triggerTargetArn'] + if trigger_target_arn is None: + raise TypeError("Missing 'trigger_target_arn' argument") + + _setter("trigger_events", trigger_events) + _setter("trigger_name", trigger_name) + _setter("trigger_target_arn", trigger_target_arn) @property @pulumi.getter(name="triggerEvents") diff --git a/sdk/python/pulumi_aws/codedeploy/application.py b/sdk/python/pulumi_aws/codedeploy/application.py index 0e2e6d6cd9e..afa4a5513d5 100644 --- a/sdk/python/pulumi_aws/codedeploy/application.py +++ b/sdk/python/pulumi_aws/codedeploy/application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApplicationArgs', 'Application'] @@ -23,12 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the application. :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. """ + ApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_platform=compute_platform, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_platform: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_platform is None and 'computePlatform' in kwargs: + compute_platform = kwargs['computePlatform'] + if compute_platform is not None: - pulumi.set(__self__, "compute_platform", compute_platform) + _setter("compute_platform", compute_platform) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="computePlatform") @@ -89,25 +106,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + arn=arn, + compute_platform=compute_platform, + github_account_name=github_account_name, + linked_to_github=linked_to_github, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + compute_platform: Optional[pulumi.Input[str]] = None, + github_account_name: Optional[pulumi.Input[str]] = None, + linked_to_github: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if compute_platform is None and 'computePlatform' in kwargs: + compute_platform = kwargs['computePlatform'] + if github_account_name is None and 'githubAccountName' in kwargs: + github_account_name = kwargs['githubAccountName'] + if linked_to_github is None and 'linkedToGithub' in kwargs: + linked_to_github = kwargs['linkedToGithub'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if compute_platform is not None: - pulumi.set(__self__, "compute_platform", compute_platform) + _setter("compute_platform", compute_platform) if github_account_name is not None: - pulumi.set(__self__, "github_account_name", github_account_name) + _setter("github_account_name", github_account_name) if linked_to_github is not None: - pulumi.set(__self__, "linked_to_github", linked_to_github) + _setter("linked_to_github", linked_to_github) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="applicationId") @@ -314,6 +366,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codedeploy/deployment_config.py b/sdk/python/pulumi_aws/codedeploy/deployment_config.py index a0b6f7b366e..68435abb8fe 100644 --- a/sdk/python/pulumi_aws/codedeploy/deployment_config.py +++ b/sdk/python/pulumi_aws/codedeploy/deployment_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,14 +27,39 @@ def __init__(__self__, *, :param pulumi.Input['DeploymentConfigMinimumHealthyHostsArgs'] minimum_healthy_hosts: A minimum_healthy_hosts block. Required for `Server` compute platform. Minimum Healthy Hosts are documented below. :param pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs'] traffic_routing_config: A traffic_routing_config block. Traffic Routing Config is documented below. """ + DeploymentConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_platform=compute_platform, + deployment_config_name=deployment_config_name, + minimum_healthy_hosts=minimum_healthy_hosts, + traffic_routing_config=traffic_routing_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_platform: Optional[pulumi.Input[str]] = None, + deployment_config_name: Optional[pulumi.Input[str]] = None, + minimum_healthy_hosts: Optional[pulumi.Input['DeploymentConfigMinimumHealthyHostsArgs']] = None, + traffic_routing_config: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_platform is None and 'computePlatform' in kwargs: + compute_platform = kwargs['computePlatform'] + if deployment_config_name is None and 'deploymentConfigName' in kwargs: + deployment_config_name = kwargs['deploymentConfigName'] + if minimum_healthy_hosts is None and 'minimumHealthyHosts' in kwargs: + minimum_healthy_hosts = kwargs['minimumHealthyHosts'] + if traffic_routing_config is None and 'trafficRoutingConfig' in kwargs: + traffic_routing_config = kwargs['trafficRoutingConfig'] + if compute_platform is not None: - pulumi.set(__self__, "compute_platform", compute_platform) + _setter("compute_platform", compute_platform) if deployment_config_name is not None: - pulumi.set(__self__, "deployment_config_name", deployment_config_name) + _setter("deployment_config_name", deployment_config_name) if minimum_healthy_hosts is not None: - pulumi.set(__self__, "minimum_healthy_hosts", minimum_healthy_hosts) + _setter("minimum_healthy_hosts", minimum_healthy_hosts) if traffic_routing_config is not None: - pulumi.set(__self__, "traffic_routing_config", traffic_routing_config) + _setter("traffic_routing_config", traffic_routing_config) @property @pulumi.getter(name="computePlatform") @@ -101,16 +126,45 @@ def __init__(__self__, *, :param pulumi.Input['DeploymentConfigMinimumHealthyHostsArgs'] minimum_healthy_hosts: A minimum_healthy_hosts block. Required for `Server` compute platform. Minimum Healthy Hosts are documented below. :param pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs'] traffic_routing_config: A traffic_routing_config block. Traffic Routing Config is documented below. """ + _DeploymentConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_platform=compute_platform, + deployment_config_id=deployment_config_id, + deployment_config_name=deployment_config_name, + minimum_healthy_hosts=minimum_healthy_hosts, + traffic_routing_config=traffic_routing_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_platform: Optional[pulumi.Input[str]] = None, + deployment_config_id: Optional[pulumi.Input[str]] = None, + deployment_config_name: Optional[pulumi.Input[str]] = None, + minimum_healthy_hosts: Optional[pulumi.Input['DeploymentConfigMinimumHealthyHostsArgs']] = None, + traffic_routing_config: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_platform is None and 'computePlatform' in kwargs: + compute_platform = kwargs['computePlatform'] + if deployment_config_id is None and 'deploymentConfigId' in kwargs: + deployment_config_id = kwargs['deploymentConfigId'] + if deployment_config_name is None and 'deploymentConfigName' in kwargs: + deployment_config_name = kwargs['deploymentConfigName'] + if minimum_healthy_hosts is None and 'minimumHealthyHosts' in kwargs: + minimum_healthy_hosts = kwargs['minimumHealthyHosts'] + if traffic_routing_config is None and 'trafficRoutingConfig' in kwargs: + traffic_routing_config = kwargs['trafficRoutingConfig'] + if compute_platform is not None: - pulumi.set(__self__, "compute_platform", compute_platform) + _setter("compute_platform", compute_platform) if deployment_config_id is not None: - pulumi.set(__self__, "deployment_config_id", deployment_config_id) + _setter("deployment_config_id", deployment_config_id) if deployment_config_name is not None: - pulumi.set(__self__, "deployment_config_name", deployment_config_name) + _setter("deployment_config_name", deployment_config_name) if minimum_healthy_hosts is not None: - pulumi.set(__self__, "minimum_healthy_hosts", minimum_healthy_hosts) + _setter("minimum_healthy_hosts", minimum_healthy_hosts) if traffic_routing_config is not None: - pulumi.set(__self__, "traffic_routing_config", traffic_routing_config) + _setter("traffic_routing_config", traffic_routing_config) @property @pulumi.getter(name="computePlatform") @@ -364,6 +418,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeploymentConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -384,7 +442,9 @@ def _internal_init(__self__, __props__.__dict__["compute_platform"] = compute_platform __props__.__dict__["deployment_config_name"] = deployment_config_name + minimum_healthy_hosts = _utilities.configure(minimum_healthy_hosts, DeploymentConfigMinimumHealthyHostsArgs, True) __props__.__dict__["minimum_healthy_hosts"] = minimum_healthy_hosts + traffic_routing_config = _utilities.configure(traffic_routing_config, DeploymentConfigTrafficRoutingConfigArgs, True) __props__.__dict__["traffic_routing_config"] = traffic_routing_config __props__.__dict__["deployment_config_id"] = None super(DeploymentConfig, __self__).__init__( diff --git a/sdk/python/pulumi_aws/codedeploy/deployment_group.py b/sdk/python/pulumi_aws/codedeploy/deployment_group.py index 7c86d460bf9..49380ffe987 100644 --- a/sdk/python/pulumi_aws/codedeploy/deployment_group.py +++ b/sdk/python/pulumi_aws/codedeploy/deployment_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -53,37 +53,118 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['DeploymentGroupTriggerConfigurationArgs']]] trigger_configurations: Configuration block(s) of the triggers for the deployment group (documented below). """ - pulumi.set(__self__, "app_name", app_name) - pulumi.set(__self__, "deployment_group_name", deployment_group_name) - pulumi.set(__self__, "service_role_arn", service_role_arn) + DeploymentGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_name=app_name, + deployment_group_name=deployment_group_name, + service_role_arn=service_role_arn, + alarm_configuration=alarm_configuration, + auto_rollback_configuration=auto_rollback_configuration, + autoscaling_groups=autoscaling_groups, + blue_green_deployment_config=blue_green_deployment_config, + deployment_config_name=deployment_config_name, + deployment_style=deployment_style, + ec2_tag_filters=ec2_tag_filters, + ec2_tag_sets=ec2_tag_sets, + ecs_service=ecs_service, + load_balancer_info=load_balancer_info, + on_premises_instance_tag_filters=on_premises_instance_tag_filters, + outdated_instances_strategy=outdated_instances_strategy, + tags=tags, + trigger_configurations=trigger_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_name: Optional[pulumi.Input[str]] = None, + deployment_group_name: Optional[pulumi.Input[str]] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + alarm_configuration: Optional[pulumi.Input['DeploymentGroupAlarmConfigurationArgs']] = None, + auto_rollback_configuration: Optional[pulumi.Input['DeploymentGroupAutoRollbackConfigurationArgs']] = None, + autoscaling_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + blue_green_deployment_config: Optional[pulumi.Input['DeploymentGroupBlueGreenDeploymentConfigArgs']] = None, + deployment_config_name: Optional[pulumi.Input[str]] = None, + deployment_style: Optional[pulumi.Input['DeploymentGroupDeploymentStyleArgs']] = None, + ec2_tag_filters: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupEc2TagFilterArgs']]]] = None, + ec2_tag_sets: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupEc2TagSetArgs']]]] = None, + ecs_service: Optional[pulumi.Input['DeploymentGroupEcsServiceArgs']] = None, + load_balancer_info: Optional[pulumi.Input['DeploymentGroupLoadBalancerInfoArgs']] = None, + on_premises_instance_tag_filters: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupOnPremisesInstanceTagFilterArgs']]]] = None, + outdated_instances_strategy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + trigger_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupTriggerConfigurationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_name is None and 'appName' in kwargs: + app_name = kwargs['appName'] + if app_name is None: + raise TypeError("Missing 'app_name' argument") + if deployment_group_name is None and 'deploymentGroupName' in kwargs: + deployment_group_name = kwargs['deploymentGroupName'] + if deployment_group_name is None: + raise TypeError("Missing 'deployment_group_name' argument") + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if service_role_arn is None: + raise TypeError("Missing 'service_role_arn' argument") + if alarm_configuration is None and 'alarmConfiguration' in kwargs: + alarm_configuration = kwargs['alarmConfiguration'] + if auto_rollback_configuration is None and 'autoRollbackConfiguration' in kwargs: + auto_rollback_configuration = kwargs['autoRollbackConfiguration'] + if autoscaling_groups is None and 'autoscalingGroups' in kwargs: + autoscaling_groups = kwargs['autoscalingGroups'] + if blue_green_deployment_config is None and 'blueGreenDeploymentConfig' in kwargs: + blue_green_deployment_config = kwargs['blueGreenDeploymentConfig'] + if deployment_config_name is None and 'deploymentConfigName' in kwargs: + deployment_config_name = kwargs['deploymentConfigName'] + if deployment_style is None and 'deploymentStyle' in kwargs: + deployment_style = kwargs['deploymentStyle'] + if ec2_tag_filters is None and 'ec2TagFilters' in kwargs: + ec2_tag_filters = kwargs['ec2TagFilters'] + if ec2_tag_sets is None and 'ec2TagSets' in kwargs: + ec2_tag_sets = kwargs['ec2TagSets'] + if ecs_service is None and 'ecsService' in kwargs: + ecs_service = kwargs['ecsService'] + if load_balancer_info is None and 'loadBalancerInfo' in kwargs: + load_balancer_info = kwargs['loadBalancerInfo'] + if on_premises_instance_tag_filters is None and 'onPremisesInstanceTagFilters' in kwargs: + on_premises_instance_tag_filters = kwargs['onPremisesInstanceTagFilters'] + if outdated_instances_strategy is None and 'outdatedInstancesStrategy' in kwargs: + outdated_instances_strategy = kwargs['outdatedInstancesStrategy'] + if trigger_configurations is None and 'triggerConfigurations' in kwargs: + trigger_configurations = kwargs['triggerConfigurations'] + + _setter("app_name", app_name) + _setter("deployment_group_name", deployment_group_name) + _setter("service_role_arn", service_role_arn) if alarm_configuration is not None: - pulumi.set(__self__, "alarm_configuration", alarm_configuration) + _setter("alarm_configuration", alarm_configuration) if auto_rollback_configuration is not None: - pulumi.set(__self__, "auto_rollback_configuration", auto_rollback_configuration) + _setter("auto_rollback_configuration", auto_rollback_configuration) if autoscaling_groups is not None: - pulumi.set(__self__, "autoscaling_groups", autoscaling_groups) + _setter("autoscaling_groups", autoscaling_groups) if blue_green_deployment_config is not None: - pulumi.set(__self__, "blue_green_deployment_config", blue_green_deployment_config) + _setter("blue_green_deployment_config", blue_green_deployment_config) if deployment_config_name is not None: - pulumi.set(__self__, "deployment_config_name", deployment_config_name) + _setter("deployment_config_name", deployment_config_name) if deployment_style is not None: - pulumi.set(__self__, "deployment_style", deployment_style) + _setter("deployment_style", deployment_style) if ec2_tag_filters is not None: - pulumi.set(__self__, "ec2_tag_filters", ec2_tag_filters) + _setter("ec2_tag_filters", ec2_tag_filters) if ec2_tag_sets is not None: - pulumi.set(__self__, "ec2_tag_sets", ec2_tag_sets) + _setter("ec2_tag_sets", ec2_tag_sets) if ecs_service is not None: - pulumi.set(__self__, "ecs_service", ecs_service) + _setter("ecs_service", ecs_service) if load_balancer_info is not None: - pulumi.set(__self__, "load_balancer_info", load_balancer_info) + _setter("load_balancer_info", load_balancer_info) if on_premises_instance_tag_filters is not None: - pulumi.set(__self__, "on_premises_instance_tag_filters", on_premises_instance_tag_filters) + _setter("on_premises_instance_tag_filters", on_premises_instance_tag_filters) if outdated_instances_strategy is not None: - pulumi.set(__self__, "outdated_instances_strategy", outdated_instances_strategy) + _setter("outdated_instances_strategy", outdated_instances_strategy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if trigger_configurations is not None: - pulumi.set(__self__, "trigger_configurations", trigger_configurations) + _setter("trigger_configurations", trigger_configurations) @property @pulumi.getter(name="appName") @@ -338,51 +419,140 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input['DeploymentGroupTriggerConfigurationArgs']]] trigger_configurations: Configuration block(s) of the triggers for the deployment group (documented below). """ + _DeploymentGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_configuration=alarm_configuration, + app_name=app_name, + arn=arn, + auto_rollback_configuration=auto_rollback_configuration, + autoscaling_groups=autoscaling_groups, + blue_green_deployment_config=blue_green_deployment_config, + compute_platform=compute_platform, + deployment_config_name=deployment_config_name, + deployment_group_id=deployment_group_id, + deployment_group_name=deployment_group_name, + deployment_style=deployment_style, + ec2_tag_filters=ec2_tag_filters, + ec2_tag_sets=ec2_tag_sets, + ecs_service=ecs_service, + load_balancer_info=load_balancer_info, + on_premises_instance_tag_filters=on_premises_instance_tag_filters, + outdated_instances_strategy=outdated_instances_strategy, + service_role_arn=service_role_arn, + tags=tags, + tags_all=tags_all, + trigger_configurations=trigger_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_configuration: Optional[pulumi.Input['DeploymentGroupAlarmConfigurationArgs']] = None, + app_name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_rollback_configuration: Optional[pulumi.Input['DeploymentGroupAutoRollbackConfigurationArgs']] = None, + autoscaling_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + blue_green_deployment_config: Optional[pulumi.Input['DeploymentGroupBlueGreenDeploymentConfigArgs']] = None, + compute_platform: Optional[pulumi.Input[str]] = None, + deployment_config_name: Optional[pulumi.Input[str]] = None, + deployment_group_id: Optional[pulumi.Input[str]] = None, + deployment_group_name: Optional[pulumi.Input[str]] = None, + deployment_style: Optional[pulumi.Input['DeploymentGroupDeploymentStyleArgs']] = None, + ec2_tag_filters: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupEc2TagFilterArgs']]]] = None, + ec2_tag_sets: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupEc2TagSetArgs']]]] = None, + ecs_service: Optional[pulumi.Input['DeploymentGroupEcsServiceArgs']] = None, + load_balancer_info: Optional[pulumi.Input['DeploymentGroupLoadBalancerInfoArgs']] = None, + on_premises_instance_tag_filters: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupOnPremisesInstanceTagFilterArgs']]]] = None, + outdated_instances_strategy: Optional[pulumi.Input[str]] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + trigger_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['DeploymentGroupTriggerConfigurationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_configuration is None and 'alarmConfiguration' in kwargs: + alarm_configuration = kwargs['alarmConfiguration'] + if app_name is None and 'appName' in kwargs: + app_name = kwargs['appName'] + if auto_rollback_configuration is None and 'autoRollbackConfiguration' in kwargs: + auto_rollback_configuration = kwargs['autoRollbackConfiguration'] + if autoscaling_groups is None and 'autoscalingGroups' in kwargs: + autoscaling_groups = kwargs['autoscalingGroups'] + if blue_green_deployment_config is None and 'blueGreenDeploymentConfig' in kwargs: + blue_green_deployment_config = kwargs['blueGreenDeploymentConfig'] + if compute_platform is None and 'computePlatform' in kwargs: + compute_platform = kwargs['computePlatform'] + if deployment_config_name is None and 'deploymentConfigName' in kwargs: + deployment_config_name = kwargs['deploymentConfigName'] + if deployment_group_id is None and 'deploymentGroupId' in kwargs: + deployment_group_id = kwargs['deploymentGroupId'] + if deployment_group_name is None and 'deploymentGroupName' in kwargs: + deployment_group_name = kwargs['deploymentGroupName'] + if deployment_style is None and 'deploymentStyle' in kwargs: + deployment_style = kwargs['deploymentStyle'] + if ec2_tag_filters is None and 'ec2TagFilters' in kwargs: + ec2_tag_filters = kwargs['ec2TagFilters'] + if ec2_tag_sets is None and 'ec2TagSets' in kwargs: + ec2_tag_sets = kwargs['ec2TagSets'] + if ecs_service is None and 'ecsService' in kwargs: + ecs_service = kwargs['ecsService'] + if load_balancer_info is None and 'loadBalancerInfo' in kwargs: + load_balancer_info = kwargs['loadBalancerInfo'] + if on_premises_instance_tag_filters is None and 'onPremisesInstanceTagFilters' in kwargs: + on_premises_instance_tag_filters = kwargs['onPremisesInstanceTagFilters'] + if outdated_instances_strategy is None and 'outdatedInstancesStrategy' in kwargs: + outdated_instances_strategy = kwargs['outdatedInstancesStrategy'] + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if trigger_configurations is None and 'triggerConfigurations' in kwargs: + trigger_configurations = kwargs['triggerConfigurations'] + if alarm_configuration is not None: - pulumi.set(__self__, "alarm_configuration", alarm_configuration) + _setter("alarm_configuration", alarm_configuration) if app_name is not None: - pulumi.set(__self__, "app_name", app_name) + _setter("app_name", app_name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_rollback_configuration is not None: - pulumi.set(__self__, "auto_rollback_configuration", auto_rollback_configuration) + _setter("auto_rollback_configuration", auto_rollback_configuration) if autoscaling_groups is not None: - pulumi.set(__self__, "autoscaling_groups", autoscaling_groups) + _setter("autoscaling_groups", autoscaling_groups) if blue_green_deployment_config is not None: - pulumi.set(__self__, "blue_green_deployment_config", blue_green_deployment_config) + _setter("blue_green_deployment_config", blue_green_deployment_config) if compute_platform is not None: - pulumi.set(__self__, "compute_platform", compute_platform) + _setter("compute_platform", compute_platform) if deployment_config_name is not None: - pulumi.set(__self__, "deployment_config_name", deployment_config_name) + _setter("deployment_config_name", deployment_config_name) if deployment_group_id is not None: - pulumi.set(__self__, "deployment_group_id", deployment_group_id) + _setter("deployment_group_id", deployment_group_id) if deployment_group_name is not None: - pulumi.set(__self__, "deployment_group_name", deployment_group_name) + _setter("deployment_group_name", deployment_group_name) if deployment_style is not None: - pulumi.set(__self__, "deployment_style", deployment_style) + _setter("deployment_style", deployment_style) if ec2_tag_filters is not None: - pulumi.set(__self__, "ec2_tag_filters", ec2_tag_filters) + _setter("ec2_tag_filters", ec2_tag_filters) if ec2_tag_sets is not None: - pulumi.set(__self__, "ec2_tag_sets", ec2_tag_sets) + _setter("ec2_tag_sets", ec2_tag_sets) if ecs_service is not None: - pulumi.set(__self__, "ecs_service", ecs_service) + _setter("ecs_service", ecs_service) if load_balancer_info is not None: - pulumi.set(__self__, "load_balancer_info", load_balancer_info) + _setter("load_balancer_info", load_balancer_info) if on_premises_instance_tag_filters is not None: - pulumi.set(__self__, "on_premises_instance_tag_filters", on_premises_instance_tag_filters) + _setter("on_premises_instance_tag_filters", on_premises_instance_tag_filters) if outdated_instances_strategy is not None: - pulumi.set(__self__, "outdated_instances_strategy", outdated_instances_strategy) + _setter("outdated_instances_strategy", outdated_instances_strategy) if service_role_arn is not None: - pulumi.set(__self__, "service_role_arn", service_role_arn) + _setter("service_role_arn", service_role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if trigger_configurations is not None: - pulumi.set(__self__, "trigger_configurations", trigger_configurations) + _setter("trigger_configurations", trigger_configurations) @property @pulumi.getter(name="alarmConfiguration") @@ -997,6 +1167,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeploymentGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1028,21 +1202,27 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DeploymentGroupArgs.__new__(DeploymentGroupArgs) + alarm_configuration = _utilities.configure(alarm_configuration, DeploymentGroupAlarmConfigurationArgs, True) __props__.__dict__["alarm_configuration"] = alarm_configuration if app_name is None and not opts.urn: raise TypeError("Missing required property 'app_name'") __props__.__dict__["app_name"] = app_name + auto_rollback_configuration = _utilities.configure(auto_rollback_configuration, DeploymentGroupAutoRollbackConfigurationArgs, True) __props__.__dict__["auto_rollback_configuration"] = auto_rollback_configuration __props__.__dict__["autoscaling_groups"] = autoscaling_groups + blue_green_deployment_config = _utilities.configure(blue_green_deployment_config, DeploymentGroupBlueGreenDeploymentConfigArgs, True) __props__.__dict__["blue_green_deployment_config"] = blue_green_deployment_config __props__.__dict__["deployment_config_name"] = deployment_config_name if deployment_group_name is None and not opts.urn: raise TypeError("Missing required property 'deployment_group_name'") __props__.__dict__["deployment_group_name"] = deployment_group_name + deployment_style = _utilities.configure(deployment_style, DeploymentGroupDeploymentStyleArgs, True) __props__.__dict__["deployment_style"] = deployment_style __props__.__dict__["ec2_tag_filters"] = ec2_tag_filters __props__.__dict__["ec2_tag_sets"] = ec2_tag_sets + ecs_service = _utilities.configure(ecs_service, DeploymentGroupEcsServiceArgs, True) __props__.__dict__["ecs_service"] = ecs_service + load_balancer_info = _utilities.configure(load_balancer_info, DeploymentGroupLoadBalancerInfoArgs, True) __props__.__dict__["load_balancer_info"] = load_balancer_info __props__.__dict__["on_premises_instance_tag_filters"] = on_premises_instance_tag_filters __props__.__dict__["outdated_instances_strategy"] = outdated_instances_strategy diff --git a/sdk/python/pulumi_aws/codedeploy/outputs.py b/sdk/python/pulumi_aws/codedeploy/outputs.py index ff3e8fc1824..18b3c8b4a68 100644 --- a/sdk/python/pulumi_aws/codedeploy/outputs.py +++ b/sdk/python/pulumi_aws/codedeploy/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -49,10 +49,23 @@ def __init__(__self__, *, deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances as an absolute value. """ + DeploymentConfigMinimumHealthyHosts._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -104,12 +117,31 @@ def __init__(__self__, *, :param 'DeploymentConfigTrafficRoutingConfigTimeBasedLinearArgs' time_based_linear: The time based linear configuration information. If `type` is `TimeBasedCanary`, use `time_based_canary` instead. :param str type: Type of traffic routing config. One of `TimeBasedCanary`, `TimeBasedLinear`, `AllAtOnce`. """ + DeploymentConfigTrafficRoutingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + time_based_canary=time_based_canary, + time_based_linear=time_based_linear, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + time_based_canary: Optional['outputs.DeploymentConfigTrafficRoutingConfigTimeBasedCanary'] = None, + time_based_linear: Optional['outputs.DeploymentConfigTrafficRoutingConfigTimeBasedLinear'] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if time_based_canary is None and 'timeBasedCanary' in kwargs: + time_based_canary = kwargs['timeBasedCanary'] + if time_based_linear is None and 'timeBasedLinear' in kwargs: + time_based_linear = kwargs['timeBasedLinear'] + if time_based_canary is not None: - pulumi.set(__self__, "time_based_canary", time_based_canary) + _setter("time_based_canary", time_based_canary) if time_based_linear is not None: - pulumi.set(__self__, "time_based_linear", time_based_linear) + _setter("time_based_linear", time_based_linear) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="timeBasedCanary") @@ -145,10 +177,23 @@ def __init__(__self__, *, :param int interval: The number of minutes between the first and second traffic shifts of a `TimeBasedCanary` deployment. :param int percentage: The percentage of traffic to shift in the first increment of a `TimeBasedCanary` deployment. """ + DeploymentConfigTrafficRoutingConfigTimeBasedCanary._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + percentage=percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[int] = None, + percentage: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if percentage is not None: - pulumi.set(__self__, "percentage", percentage) + _setter("percentage", percentage) @property @pulumi.getter @@ -176,10 +221,23 @@ def __init__(__self__, *, :param int interval: The number of minutes between each incremental traffic shift of a `TimeBasedLinear` deployment. :param int percentage: The percentage of traffic that is shifted at the start of each increment of a `TimeBasedLinear` deployment. """ + DeploymentConfigTrafficRoutingConfigTimeBasedLinear._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + percentage=percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[int] = None, + percentage: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if percentage is not None: - pulumi.set(__self__, "percentage", percentage) + _setter("percentage", percentage) @property @pulumi.getter @@ -226,12 +284,29 @@ def __init__(__self__, *, :param bool enabled: Indicates whether the alarm configuration is enabled. This option is useful when you want to temporarily deactivate alarm monitoring for a deployment group without having to add the same alarms again later. :param bool ignore_poll_alarm_failure: Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from CloudWatch. The default value is `false`. """ + DeploymentGroupAlarmConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + enabled=enabled, + ignore_poll_alarm_failure=ignore_poll_alarm_failure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + enabled: Optional[bool] = None, + ignore_poll_alarm_failure: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ignore_poll_alarm_failure is None and 'ignorePollAlarmFailure' in kwargs: + ignore_poll_alarm_failure = kwargs['ignorePollAlarmFailure'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if ignore_poll_alarm_failure is not None: - pulumi.set(__self__, "ignore_poll_alarm_failure", ignore_poll_alarm_failure) + _setter("ignore_poll_alarm_failure", ignore_poll_alarm_failure) @property @pulumi.getter @@ -269,10 +344,23 @@ def __init__(__self__, *, _Only one `auto_rollback_configuration` is allowed_. """ + DeploymentGroupAutoRollbackConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + events=events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + events: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if events is not None: - pulumi.set(__self__, "events", events) + _setter("events", events) @property @pulumi.getter @@ -327,12 +415,33 @@ def __init__(__self__, *, _Only one `blue_green_deployment_config` is allowed_. """ + DeploymentGroupBlueGreenDeploymentConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment_ready_option=deployment_ready_option, + green_fleet_provisioning_option=green_fleet_provisioning_option, + terminate_blue_instances_on_deployment_success=terminate_blue_instances_on_deployment_success, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment_ready_option: Optional['outputs.DeploymentGroupBlueGreenDeploymentConfigDeploymentReadyOption'] = None, + green_fleet_provisioning_option: Optional['outputs.DeploymentGroupBlueGreenDeploymentConfigGreenFleetProvisioningOption'] = None, + terminate_blue_instances_on_deployment_success: Optional['outputs.DeploymentGroupBlueGreenDeploymentConfigTerminateBlueInstancesOnDeploymentSuccess'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_ready_option is None and 'deploymentReadyOption' in kwargs: + deployment_ready_option = kwargs['deploymentReadyOption'] + if green_fleet_provisioning_option is None and 'greenFleetProvisioningOption' in kwargs: + green_fleet_provisioning_option = kwargs['greenFleetProvisioningOption'] + if terminate_blue_instances_on_deployment_success is None and 'terminateBlueInstancesOnDeploymentSuccess' in kwargs: + terminate_blue_instances_on_deployment_success = kwargs['terminateBlueInstancesOnDeploymentSuccess'] + if deployment_ready_option is not None: - pulumi.set(__self__, "deployment_ready_option", deployment_ready_option) + _setter("deployment_ready_option", deployment_ready_option) if green_fleet_provisioning_option is not None: - pulumi.set(__self__, "green_fleet_provisioning_option", green_fleet_provisioning_option) + _setter("green_fleet_provisioning_option", green_fleet_provisioning_option) if terminate_blue_instances_on_deployment_success is not None: - pulumi.set(__self__, "terminate_blue_instances_on_deployment_success", terminate_blue_instances_on_deployment_success) + _setter("terminate_blue_instances_on_deployment_success", terminate_blue_instances_on_deployment_success) @property @pulumi.getter(name="deploymentReadyOption") @@ -389,10 +498,27 @@ def __init__(__self__, *, :param str action_on_timeout: When to reroute traffic from an original environment to a replacement environment in a blue/green deployment. :param int wait_time_in_minutes: The number of minutes to wait before the status of a blue/green deployment changed to Stopped if rerouting is not started manually. Applies only to the `STOP_DEPLOYMENT` option for `action_on_timeout`. """ + DeploymentGroupBlueGreenDeploymentConfigDeploymentReadyOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_on_timeout=action_on_timeout, + wait_time_in_minutes=wait_time_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_on_timeout: Optional[str] = None, + wait_time_in_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_on_timeout is None and 'actionOnTimeout' in kwargs: + action_on_timeout = kwargs['actionOnTimeout'] + if wait_time_in_minutes is None and 'waitTimeInMinutes' in kwargs: + wait_time_in_minutes = kwargs['waitTimeInMinutes'] + if action_on_timeout is not None: - pulumi.set(__self__, "action_on_timeout", action_on_timeout) + _setter("action_on_timeout", action_on_timeout) if wait_time_in_minutes is not None: - pulumi.set(__self__, "wait_time_in_minutes", wait_time_in_minutes) + _setter("wait_time_in_minutes", wait_time_in_minutes) @property @pulumi.getter(name="actionOnTimeout") @@ -418,8 +544,19 @@ def __init__(__self__, *, """ :param str action: The method used to add instances to a replacement environment. """ + DeploymentGroupBlueGreenDeploymentConfigGreenFleetProvisioningOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) @property @pulumi.getter @@ -456,10 +593,25 @@ def __init__(__self__, *, :param str action: The action to take on instances in the original environment after a successful blue/green deployment. :param int termination_wait_time_in_minutes: The number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment. """ + DeploymentGroupBlueGreenDeploymentConfigTerminateBlueInstancesOnDeploymentSuccess._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + termination_wait_time_in_minutes=termination_wait_time_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + termination_wait_time_in_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if termination_wait_time_in_minutes is None and 'terminationWaitTimeInMinutes' in kwargs: + termination_wait_time_in_minutes = kwargs['terminationWaitTimeInMinutes'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if termination_wait_time_in_minutes is not None: - pulumi.set(__self__, "termination_wait_time_in_minutes", termination_wait_time_in_minutes) + _setter("termination_wait_time_in_minutes", termination_wait_time_in_minutes) @property @pulumi.getter @@ -508,10 +660,27 @@ def __init__(__self__, *, _Only one `deployment_style` is allowed_. """ + DeploymentGroupDeploymentStyle._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment_option=deployment_option, + deployment_type=deployment_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment_option: Optional[str] = None, + deployment_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_option is None and 'deploymentOption' in kwargs: + deployment_option = kwargs['deploymentOption'] + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if deployment_option is not None: - pulumi.set(__self__, "deployment_option", deployment_option) + _setter("deployment_option", deployment_option) if deployment_type is not None: - pulumi.set(__self__, "deployment_type", deployment_type) + _setter("deployment_type", deployment_type) @property @pulumi.getter(name="deploymentOption") @@ -545,12 +714,27 @@ def __init__(__self__, *, Multiple occurrences of `ec2_tag_filter` are allowed, where any instance that matches to at least one of the tag filters is selected. """ + DeploymentGroupEc2TagFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -603,8 +787,21 @@ def __init__(__self__, *, """ :param Sequence['DeploymentGroupEc2TagSetEc2TagFilterArgs'] ec2_tag_filters: Tag filters associated with the deployment group. See the AWS docs for details. """ + DeploymentGroupEc2TagSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + ec2_tag_filters=ec2_tag_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ec2_tag_filters: Optional[Sequence['outputs.DeploymentGroupEc2TagSetEc2TagFilter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ec2_tag_filters is None and 'ec2TagFilters' in kwargs: + ec2_tag_filters = kwargs['ec2TagFilters'] + if ec2_tag_filters is not None: - pulumi.set(__self__, "ec2_tag_filters", ec2_tag_filters) + _setter("ec2_tag_filters", ec2_tag_filters) @property @pulumi.getter(name="ec2TagFilters") @@ -628,12 +825,27 @@ def __init__(__self__, *, Multiple occurrences of `ec2_tag_filter` are allowed, where any instance that matches to at least one of the tag filters is selected. """ + DeploymentGroupEc2TagSetEc2TagFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -690,8 +902,29 @@ def __init__(__self__, *, :param str cluster_name: The name of the ECS cluster. :param str service_name: The name of the ECS service. """ - pulumi.set(__self__, "cluster_name", cluster_name) - pulumi.set(__self__, "service_name", service_name) + DeploymentGroupEcsService._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_name=cluster_name, + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_name: Optional[str] = None, + service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_name is None: + raise TypeError("Missing 'cluster_name' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("cluster_name", cluster_name) + _setter("service_name", service_name) @property @pulumi.getter(name="clusterName") @@ -742,12 +975,33 @@ def __init__(__self__, *, :param Sequence['DeploymentGroupLoadBalancerInfoTargetGroupInfoArgs'] target_group_infos: The (Application/Network Load Balancer) target group to use in a deployment. Conflicts with `elb_info` and `target_group_pair_info`. :param 'DeploymentGroupLoadBalancerInfoTargetGroupPairInfoArgs' target_group_pair_info: The (Application/Network Load Balancer) target group pair to use in a deployment. Conflicts with `elb_info` and `target_group_info`. """ + DeploymentGroupLoadBalancerInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + elb_infos=elb_infos, + target_group_infos=target_group_infos, + target_group_pair_info=target_group_pair_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + elb_infos: Optional[Sequence['outputs.DeploymentGroupLoadBalancerInfoElbInfo']] = None, + target_group_infos: Optional[Sequence['outputs.DeploymentGroupLoadBalancerInfoTargetGroupInfo']] = None, + target_group_pair_info: Optional['outputs.DeploymentGroupLoadBalancerInfoTargetGroupPairInfo'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if elb_infos is None and 'elbInfos' in kwargs: + elb_infos = kwargs['elbInfos'] + if target_group_infos is None and 'targetGroupInfos' in kwargs: + target_group_infos = kwargs['targetGroupInfos'] + if target_group_pair_info is None and 'targetGroupPairInfo' in kwargs: + target_group_pair_info = kwargs['targetGroupPairInfo'] + if elb_infos is not None: - pulumi.set(__self__, "elb_infos", elb_infos) + _setter("elb_infos", elb_infos) if target_group_infos is not None: - pulumi.set(__self__, "target_group_infos", target_group_infos) + _setter("target_group_infos", target_group_infos) if target_group_pair_info is not None: - pulumi.set(__self__, "target_group_pair_info", target_group_pair_info) + _setter("target_group_pair_info", target_group_pair_info) @property @pulumi.getter(name="elbInfos") @@ -781,8 +1035,19 @@ def __init__(__self__, *, """ :param str name: The name of the load balancer that will be used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. """ + DeploymentGroupLoadBalancerInfoElbInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -800,8 +1065,19 @@ def __init__(__self__, *, """ :param str name: The name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. """ + DeploymentGroupLoadBalancerInfoTargetGroupInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -844,10 +1120,35 @@ def __init__(__self__, *, :param Sequence['DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTargetGroupArgs'] target_groups: Configuration blocks for a target group within a target group pair (documented below). :param 'DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTestTrafficRouteArgs' test_traffic_route: Configuration block for the test traffic route (documented below). """ - pulumi.set(__self__, "prod_traffic_route", prod_traffic_route) - pulumi.set(__self__, "target_groups", target_groups) + DeploymentGroupLoadBalancerInfoTargetGroupPairInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + prod_traffic_route=prod_traffic_route, + target_groups=target_groups, + test_traffic_route=test_traffic_route, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prod_traffic_route: Optional['outputs.DeploymentGroupLoadBalancerInfoTargetGroupPairInfoProdTrafficRoute'] = None, + target_groups: Optional[Sequence['outputs.DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTargetGroup']] = None, + test_traffic_route: Optional['outputs.DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTestTrafficRoute'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prod_traffic_route is None and 'prodTrafficRoute' in kwargs: + prod_traffic_route = kwargs['prodTrafficRoute'] + if prod_traffic_route is None: + raise TypeError("Missing 'prod_traffic_route' argument") + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + if test_traffic_route is None and 'testTrafficRoute' in kwargs: + test_traffic_route = kwargs['testTrafficRoute'] + + _setter("prod_traffic_route", prod_traffic_route) + _setter("target_groups", target_groups) if test_traffic_route is not None: - pulumi.set(__self__, "test_traffic_route", test_traffic_route) + _setter("test_traffic_route", test_traffic_route) @property @pulumi.getter(name="prodTrafficRoute") @@ -898,7 +1199,22 @@ def __init__(__self__, *, """ :param Sequence[str] listener_arns: List of Amazon Resource Names (ARNs) of the load balancer listeners. Must contain exactly one listener ARN. """ - pulumi.set(__self__, "listener_arns", listener_arns) + DeploymentGroupLoadBalancerInfoTargetGroupPairInfoProdTrafficRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + listener_arns=listener_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listener_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listener_arns is None and 'listenerArns' in kwargs: + listener_arns = kwargs['listenerArns'] + if listener_arns is None: + raise TypeError("Missing 'listener_arns' argument") + + _setter("listener_arns", listener_arns) @property @pulumi.getter(name="listenerArns") @@ -916,7 +1232,20 @@ def __init__(__self__, *, """ :param str name: Name of the target group. """ - pulumi.set(__self__, "name", name) + DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTargetGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -951,7 +1280,22 @@ def __init__(__self__, *, """ :param Sequence[str] listener_arns: List of Amazon Resource Names (ARNs) of the load balancer listeners. """ - pulumi.set(__self__, "listener_arns", listener_arns) + DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTestTrafficRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + listener_arns=listener_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listener_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listener_arns is None and 'listenerArns' in kwargs: + listener_arns = kwargs['listenerArns'] + if listener_arns is None: + raise TypeError("Missing 'listener_arns' argument") + + _setter("listener_arns", listener_arns) @property @pulumi.getter(name="listenerArns") @@ -973,12 +1317,27 @@ def __init__(__self__, *, :param str type: The type of the tag filter, either `KEY_ONLY`, `VALUE_ONLY`, or `KEY_AND_VALUE`. :param str value: The value of the tag filter. """ + DeploymentGroupOnPremisesInstanceTagFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1037,9 +1396,36 @@ def __init__(__self__, *, :param str trigger_name: The name of the notification trigger. :param str trigger_target_arn: The ARN of the SNS topic through which notifications are sent. """ - pulumi.set(__self__, "trigger_events", trigger_events) - pulumi.set(__self__, "trigger_name", trigger_name) - pulumi.set(__self__, "trigger_target_arn", trigger_target_arn) + DeploymentGroupTriggerConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + trigger_events=trigger_events, + trigger_name=trigger_name, + trigger_target_arn=trigger_target_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trigger_events: Optional[Sequence[str]] = None, + trigger_name: Optional[str] = None, + trigger_target_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trigger_events is None and 'triggerEvents' in kwargs: + trigger_events = kwargs['triggerEvents'] + if trigger_events is None: + raise TypeError("Missing 'trigger_events' argument") + if trigger_name is None and 'triggerName' in kwargs: + trigger_name = kwargs['triggerName'] + if trigger_name is None: + raise TypeError("Missing 'trigger_name' argument") + if trigger_target_arn is None and 'triggerTargetArn' in kwargs: + trigger_target_arn = kwargs['triggerTargetArn'] + if trigger_target_arn is None: + raise TypeError("Missing 'trigger_target_arn' argument") + + _setter("trigger_events", trigger_events) + _setter("trigger_name", trigger_name) + _setter("trigger_target_arn", trigger_target_arn) @property @pulumi.getter(name="triggerEvents") diff --git a/sdk/python/pulumi_aws/codegurureviewer/_inputs.py b/sdk/python/pulumi_aws/codegurureviewer/_inputs.py index ea0ff22da1e..1f60d5da2db 100644 --- a/sdk/python/pulumi_aws/codegurureviewer/_inputs.py +++ b/sdk/python/pulumi_aws/codegurureviewer/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,10 +29,27 @@ def __init__(__self__, *, :param pulumi.Input[str] encryption_option: The encryption option for a repository association. It is either owned by AWS Key Management Service (KMS) (`AWS_OWNED_CMK`) or customer managed (`CUSTOMER_MANAGED_CMK`). :param pulumi.Input[str] kms_key_id: The ID of the AWS KMS key that is associated with a repository association. """ + RepositoryAssociationKmsKeyDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_option=encryption_option, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_option: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_option is None and 'encryptionOption' in kwargs: + encryption_option = kwargs['encryptionOption'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if encryption_option is not None: - pulumi.set(__self__, "encryption_option", encryption_option) + _setter("encryption_option", encryption_option) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="encryptionOption") @@ -66,14 +83,35 @@ def __init__(__self__, *, codecommit: Optional[pulumi.Input['RepositoryAssociationRepositoryCodecommitArgs']] = None, github_enterprise_server: Optional[pulumi.Input['RepositoryAssociationRepositoryGithubEnterpriseServerArgs']] = None, s3_bucket: Optional[pulumi.Input['RepositoryAssociationRepositoryS3BucketArgs']] = None): + RepositoryAssociationRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitbucket=bitbucket, + codecommit=codecommit, + github_enterprise_server=github_enterprise_server, + s3_bucket=s3_bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitbucket: Optional[pulumi.Input['RepositoryAssociationRepositoryBitbucketArgs']] = None, + codecommit: Optional[pulumi.Input['RepositoryAssociationRepositoryCodecommitArgs']] = None, + github_enterprise_server: Optional[pulumi.Input['RepositoryAssociationRepositoryGithubEnterpriseServerArgs']] = None, + s3_bucket: Optional[pulumi.Input['RepositoryAssociationRepositoryS3BucketArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if github_enterprise_server is None and 'githubEnterpriseServer' in kwargs: + github_enterprise_server = kwargs['githubEnterpriseServer'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if bitbucket is not None: - pulumi.set(__self__, "bitbucket", bitbucket) + _setter("bitbucket", bitbucket) if codecommit is not None: - pulumi.set(__self__, "codecommit", codecommit) + _setter("codecommit", codecommit) if github_enterprise_server is not None: - pulumi.set(__self__, "github_enterprise_server", github_enterprise_server) + _setter("github_enterprise_server", github_enterprise_server) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) @property @pulumi.getter @@ -123,9 +161,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the third party source repository. :param pulumi.Input[str] owner: The username for the account that owns the repository. """ - pulumi.set(__self__, "connection_arn", connection_arn) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "owner", owner) + RepositoryAssociationRepositoryBitbucketArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_arn=connection_arn, + name=name, + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_arn is None and 'connectionArn' in kwargs: + connection_arn = kwargs['connectionArn'] + if connection_arn is None: + raise TypeError("Missing 'connection_arn' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("connection_arn", connection_arn) + _setter("name", name) + _setter("owner", owner) @property @pulumi.getter(name="connectionArn") @@ -171,7 +232,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the AWS CodeCommit repository. """ - pulumi.set(__self__, "name", name) + RepositoryAssociationRepositoryCodecommitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -197,9 +271,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the third party source repository. :param pulumi.Input[str] owner: The username for the account that owns the repository. """ - pulumi.set(__self__, "connection_arn", connection_arn) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "owner", owner) + RepositoryAssociationRepositoryGithubEnterpriseServerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_arn=connection_arn, + name=name, + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_arn is None and 'connectionArn' in kwargs: + connection_arn = kwargs['connectionArn'] + if connection_arn is None: + raise TypeError("Missing 'connection_arn' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("connection_arn", connection_arn) + _setter("name", name) + _setter("owner", owner) @property @pulumi.getter(name="connectionArn") @@ -247,8 +344,27 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_name: The name of the S3 bucket used for associating a new S3 repository. Note: The name must begin with `codeguru-reviewer-`. :param pulumi.Input[str] name: The name of the third party source repository. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "name", name) + RepositoryAssociationRepositoryS3BucketArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("bucket_name", bucket_name) + _setter("name", name) @property @pulumi.getter(name="bucketName") @@ -283,10 +399,27 @@ def __init__(__self__, *, """ :param pulumi.Input[str] bucket_name: The name of the S3 bucket used for associating a new S3 repository. Note: The name must begin with `codeguru-reviewer-`. """ + RepositoryAssociationS3RepositoryDetailArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + code_artifacts=code_artifacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + code_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input['RepositoryAssociationS3RepositoryDetailCodeArtifactArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if code_artifacts is None and 'codeArtifacts' in kwargs: + code_artifacts = kwargs['codeArtifacts'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if code_artifacts is not None: - pulumi.set(__self__, "code_artifacts", code_artifacts) + _setter("code_artifacts", code_artifacts) @property @pulumi.getter(name="bucketName") @@ -315,10 +448,27 @@ class RepositoryAssociationS3RepositoryDetailCodeArtifactArgs: def __init__(__self__, *, build_artifacts_object_key: Optional[pulumi.Input[str]] = None, source_code_artifacts_object_key: Optional[pulumi.Input[str]] = None): + RepositoryAssociationS3RepositoryDetailCodeArtifactArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + build_artifacts_object_key=build_artifacts_object_key, + source_code_artifacts_object_key=source_code_artifacts_object_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + build_artifacts_object_key: Optional[pulumi.Input[str]] = None, + source_code_artifacts_object_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if build_artifacts_object_key is None and 'buildArtifactsObjectKey' in kwargs: + build_artifacts_object_key = kwargs['buildArtifactsObjectKey'] + if source_code_artifacts_object_key is None and 'sourceCodeArtifactsObjectKey' in kwargs: + source_code_artifacts_object_key = kwargs['sourceCodeArtifactsObjectKey'] + if build_artifacts_object_key is not None: - pulumi.set(__self__, "build_artifacts_object_key", build_artifacts_object_key) + _setter("build_artifacts_object_key", build_artifacts_object_key) if source_code_artifacts_object_key is not None: - pulumi.set(__self__, "source_code_artifacts_object_key", source_code_artifacts_object_key) + _setter("source_code_artifacts_object_key", source_code_artifacts_object_key) @property @pulumi.getter(name="buildArtifactsObjectKey") diff --git a/sdk/python/pulumi_aws/codegurureviewer/outputs.py b/sdk/python/pulumi_aws/codegurureviewer/outputs.py index dba547d98fb..443e3b58b78 100644 --- a/sdk/python/pulumi_aws/codegurureviewer/outputs.py +++ b/sdk/python/pulumi_aws/codegurureviewer/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -49,10 +49,27 @@ def __init__(__self__, *, :param str encryption_option: The encryption option for a repository association. It is either owned by AWS Key Management Service (KMS) (`AWS_OWNED_CMK`) or customer managed (`CUSTOMER_MANAGED_CMK`). :param str kms_key_id: The ID of the AWS KMS key that is associated with a repository association. """ + RepositoryAssociationKmsKeyDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_option=encryption_option, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_option: Optional[str] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_option is None and 'encryptionOption' in kwargs: + encryption_option = kwargs['encryptionOption'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if encryption_option is not None: - pulumi.set(__self__, "encryption_option", encryption_option) + _setter("encryption_option", encryption_option) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="encryptionOption") @@ -97,14 +114,35 @@ def __init__(__self__, *, codecommit: Optional['outputs.RepositoryAssociationRepositoryCodecommit'] = None, github_enterprise_server: Optional['outputs.RepositoryAssociationRepositoryGithubEnterpriseServer'] = None, s3_bucket: Optional['outputs.RepositoryAssociationRepositoryS3Bucket'] = None): + RepositoryAssociationRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitbucket=bitbucket, + codecommit=codecommit, + github_enterprise_server=github_enterprise_server, + s3_bucket=s3_bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitbucket: Optional['outputs.RepositoryAssociationRepositoryBitbucket'] = None, + codecommit: Optional['outputs.RepositoryAssociationRepositoryCodecommit'] = None, + github_enterprise_server: Optional['outputs.RepositoryAssociationRepositoryGithubEnterpriseServer'] = None, + s3_bucket: Optional['outputs.RepositoryAssociationRepositoryS3Bucket'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if github_enterprise_server is None and 'githubEnterpriseServer' in kwargs: + github_enterprise_server = kwargs['githubEnterpriseServer'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if bitbucket is not None: - pulumi.set(__self__, "bitbucket", bitbucket) + _setter("bitbucket", bitbucket) if codecommit is not None: - pulumi.set(__self__, "codecommit", codecommit) + _setter("codecommit", codecommit) if github_enterprise_server is not None: - pulumi.set(__self__, "github_enterprise_server", github_enterprise_server) + _setter("github_enterprise_server", github_enterprise_server) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) @property @pulumi.getter @@ -155,9 +193,32 @@ def __init__(__self__, *, :param str name: The name of the third party source repository. :param str owner: The username for the account that owns the repository. """ - pulumi.set(__self__, "connection_arn", connection_arn) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "owner", owner) + RepositoryAssociationRepositoryBitbucket._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_arn=connection_arn, + name=name, + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_arn: Optional[str] = None, + name: Optional[str] = None, + owner: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_arn is None and 'connectionArn' in kwargs: + connection_arn = kwargs['connectionArn'] + if connection_arn is None: + raise TypeError("Missing 'connection_arn' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("connection_arn", connection_arn) + _setter("name", name) + _setter("owner", owner) @property @pulumi.getter(name="connectionArn") @@ -191,7 +252,20 @@ def __init__(__self__, *, """ :param str name: The name of the AWS CodeCommit repository. """ - pulumi.set(__self__, "name", name) + RepositoryAssociationRepositoryCodecommit._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -230,9 +304,32 @@ def __init__(__self__, *, :param str name: The name of the third party source repository. :param str owner: The username for the account that owns the repository. """ - pulumi.set(__self__, "connection_arn", connection_arn) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "owner", owner) + RepositoryAssociationRepositoryGithubEnterpriseServer._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_arn=connection_arn, + name=name, + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_arn: Optional[str] = None, + name: Optional[str] = None, + owner: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_arn is None and 'connectionArn' in kwargs: + connection_arn = kwargs['connectionArn'] + if connection_arn is None: + raise TypeError("Missing 'connection_arn' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("connection_arn", connection_arn) + _setter("name", name) + _setter("owner", owner) @property @pulumi.getter(name="connectionArn") @@ -285,8 +382,27 @@ def __init__(__self__, *, :param str bucket_name: The name of the S3 bucket used for associating a new S3 repository. Note: The name must begin with `codeguru-reviewer-`. :param str name: The name of the third party source repository. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "name", name) + RepositoryAssociationRepositoryS3Bucket._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("bucket_name", bucket_name) + _setter("name", name) @property @pulumi.getter(name="bucketName") @@ -332,10 +448,27 @@ def __init__(__self__, *, """ :param str bucket_name: The name of the S3 bucket used for associating a new S3 repository. Note: The name must begin with `codeguru-reviewer-`. """ + RepositoryAssociationS3RepositoryDetail._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + code_artifacts=code_artifacts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + code_artifacts: Optional[Sequence['outputs.RepositoryAssociationS3RepositoryDetailCodeArtifact']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if code_artifacts is None and 'codeArtifacts' in kwargs: + code_artifacts = kwargs['codeArtifacts'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if code_artifacts is not None: - pulumi.set(__self__, "code_artifacts", code_artifacts) + _setter("code_artifacts", code_artifacts) @property @pulumi.getter(name="bucketName") @@ -375,10 +508,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, build_artifacts_object_key: Optional[str] = None, source_code_artifacts_object_key: Optional[str] = None): + RepositoryAssociationS3RepositoryDetailCodeArtifact._configure( + lambda key, value: pulumi.set(__self__, key, value), + build_artifacts_object_key=build_artifacts_object_key, + source_code_artifacts_object_key=source_code_artifacts_object_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + build_artifacts_object_key: Optional[str] = None, + source_code_artifacts_object_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if build_artifacts_object_key is None and 'buildArtifactsObjectKey' in kwargs: + build_artifacts_object_key = kwargs['buildArtifactsObjectKey'] + if source_code_artifacts_object_key is None and 'sourceCodeArtifactsObjectKey' in kwargs: + source_code_artifacts_object_key = kwargs['sourceCodeArtifactsObjectKey'] + if build_artifacts_object_key is not None: - pulumi.set(__self__, "build_artifacts_object_key", build_artifacts_object_key) + _setter("build_artifacts_object_key", build_artifacts_object_key) if source_code_artifacts_object_key is not None: - pulumi.set(__self__, "source_code_artifacts_object_key", source_code_artifacts_object_key) + _setter("source_code_artifacts_object_key", source_code_artifacts_object_key) @property @pulumi.getter(name="buildArtifactsObjectKey") diff --git a/sdk/python/pulumi_aws/codegurureviewer/repository_association.py b/sdk/python/pulumi_aws/codegurureviewer/repository_association.py index ad306c7e323..5a9f19d0c9d 100644 --- a/sdk/python/pulumi_aws/codegurureviewer/repository_association.py +++ b/sdk/python/pulumi_aws/codegurureviewer/repository_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -26,11 +26,30 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['RepositoryAssociationKmsKeyDetailsArgs'] kms_key_details: An object describing the KMS key to asssociate. Block is documented below. """ - pulumi.set(__self__, "repository", repository) + RepositoryAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository=repository, + kms_key_details=kms_key_details, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository: Optional[pulumi.Input['RepositoryAssociationRepositoryArgs']] = None, + kms_key_details: Optional[pulumi.Input['RepositoryAssociationKmsKeyDetailsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository is None: + raise TypeError("Missing 'repository' argument") + if kms_key_details is None and 'kmsKeyDetails' in kwargs: + kms_key_details = kwargs['kmsKeyDetails'] + + _setter("repository", repository) if kms_key_details is not None: - pulumi.set(__self__, "kms_key_details", kms_key_details) + _setter("kms_key_details", kms_key_details) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -99,35 +118,84 @@ def __init__(__self__, *, :param pulumi.Input[str] state: The state of the repository association. :param pulumi.Input[str] state_reason: A description of why the repository association is in the current state. """ + _RepositoryAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + association_id=association_id, + connection_arn=connection_arn, + kms_key_details=kms_key_details, + name=name, + owner=owner, + provider_type=provider_type, + repository=repository, + s3_repository_details=s3_repository_details, + state=state, + state_reason=state_reason, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + association_id: Optional[pulumi.Input[str]] = None, + connection_arn: Optional[pulumi.Input[str]] = None, + kms_key_details: Optional[pulumi.Input['RepositoryAssociationKmsKeyDetailsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + repository: Optional[pulumi.Input['RepositoryAssociationRepositoryArgs']] = None, + s3_repository_details: Optional[pulumi.Input[Sequence[pulumi.Input['RepositoryAssociationS3RepositoryDetailArgs']]]] = None, + state: Optional[pulumi.Input[str]] = None, + state_reason: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if connection_arn is None and 'connectionArn' in kwargs: + connection_arn = kwargs['connectionArn'] + if kms_key_details is None and 'kmsKeyDetails' in kwargs: + kms_key_details = kwargs['kmsKeyDetails'] + if provider_type is None and 'providerType' in kwargs: + provider_type = kwargs['providerType'] + if s3_repository_details is None and 's3RepositoryDetails' in kwargs: + s3_repository_details = kwargs['s3RepositoryDetails'] + if state_reason is None and 'stateReason' in kwargs: + state_reason = kwargs['stateReason'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if association_id is not None: - pulumi.set(__self__, "association_id", association_id) + _setter("association_id", association_id) if connection_arn is not None: - pulumi.set(__self__, "connection_arn", connection_arn) + _setter("connection_arn", connection_arn) if kms_key_details is not None: - pulumi.set(__self__, "kms_key_details", kms_key_details) + _setter("kms_key_details", kms_key_details) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if provider_type is not None: - pulumi.set(__self__, "provider_type", provider_type) + _setter("provider_type", provider_type) if repository is not None: - pulumi.set(__self__, "repository", repository) + _setter("repository", repository) if s3_repository_details is not None: - pulumi.set(__self__, "s3_repository_details", s3_repository_details) + _setter("s3_repository_details", s3_repository_details) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if state_reason is not None: - pulumi.set(__self__, "state_reason", state_reason) + _setter("state_reason", state_reason) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -360,6 +428,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RepositoryAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -377,7 +449,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = RepositoryAssociationArgs.__new__(RepositoryAssociationArgs) + kms_key_details = _utilities.configure(kms_key_details, RepositoryAssociationKmsKeyDetailsArgs, True) __props__.__dict__["kms_key_details"] = kms_key_details + repository = _utilities.configure(repository, RepositoryAssociationRepositoryArgs, True) if repository is None and not opts.urn: raise TypeError("Missing required property 'repository'") __props__.__dict__["repository"] = repository diff --git a/sdk/python/pulumi_aws/codepipeline/_inputs.py b/sdk/python/pulumi_aws/codepipeline/_inputs.py index f56a90e9fca..ccc601c1f6b 100644 --- a/sdk/python/pulumi_aws/codepipeline/_inputs.py +++ b/sdk/python/pulumi_aws/codepipeline/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,16 +41,47 @@ def __init__(__self__, *, :param pulumi.Input[bool] queryable: Indicates that the property will be used in conjunction with PollForJobs. :param pulumi.Input[str] type: The type of the configuration property. Valid values: `String`, `Number`, `Boolean` """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "required", required) - pulumi.set(__self__, "secret", secret) + CustomActionTypeConfigurationPropertyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + name=name, + required=required, + secret=secret, + description=description, + queryable=queryable, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + required: Optional[pulumi.Input[bool]] = None, + secret: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + queryable: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if required is None: + raise TypeError("Missing 'required' argument") + if secret is None: + raise TypeError("Missing 'secret' argument") + + _setter("key", key) + _setter("name", name) + _setter("required", required) + _setter("secret", secret) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if queryable is not None: - pulumi.set(__self__, "queryable", queryable) + _setter("queryable", queryable) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -146,8 +177,29 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_count: The maximum number of artifacts allowed for the action type. Min: 0, Max: 5 :param pulumi.Input[int] minimum_count: The minimum number of artifacts allowed for the action type. Min: 0, Max: 5 """ - pulumi.set(__self__, "maximum_count", maximum_count) - pulumi.set(__self__, "minimum_count", minimum_count) + CustomActionTypeInputArtifactDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_count=maximum_count, + minimum_count=minimum_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_count: Optional[pulumi.Input[int]] = None, + minimum_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_count is None and 'maximumCount' in kwargs: + maximum_count = kwargs['maximumCount'] + if maximum_count is None: + raise TypeError("Missing 'maximum_count' argument") + if minimum_count is None and 'minimumCount' in kwargs: + minimum_count = kwargs['minimumCount'] + if minimum_count is None: + raise TypeError("Missing 'minimum_count' argument") + + _setter("maximum_count", maximum_count) + _setter("minimum_count", minimum_count) @property @pulumi.getter(name="maximumCount") @@ -183,8 +235,29 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_count: The maximum number of artifacts allowed for the action type. Min: 0, Max: 5 :param pulumi.Input[int] minimum_count: The minimum number of artifacts allowed for the action type. Min: 0, Max: 5 """ - pulumi.set(__self__, "maximum_count", maximum_count) - pulumi.set(__self__, "minimum_count", minimum_count) + CustomActionTypeOutputArtifactDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_count=maximum_count, + minimum_count=minimum_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_count: Optional[pulumi.Input[int]] = None, + minimum_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_count is None and 'maximumCount' in kwargs: + maximum_count = kwargs['maximumCount'] + if maximum_count is None: + raise TypeError("Missing 'maximum_count' argument") + if minimum_count is None and 'minimumCount' in kwargs: + minimum_count = kwargs['minimumCount'] + if minimum_count is None: + raise TypeError("Missing 'minimum_count' argument") + + _setter("maximum_count", maximum_count) + _setter("minimum_count", minimum_count) @property @pulumi.getter(name="maximumCount") @@ -224,14 +297,39 @@ def __init__(__self__, *, :param pulumi.Input[str] revision_url_template: The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action. :param pulumi.Input[str] third_party_configuration_url: The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service. """ + CustomActionTypeSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_url_template=entity_url_template, + execution_url_template=execution_url_template, + revision_url_template=revision_url_template, + third_party_configuration_url=third_party_configuration_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_url_template: Optional[pulumi.Input[str]] = None, + execution_url_template: Optional[pulumi.Input[str]] = None, + revision_url_template: Optional[pulumi.Input[str]] = None, + third_party_configuration_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_url_template is None and 'entityUrlTemplate' in kwargs: + entity_url_template = kwargs['entityUrlTemplate'] + if execution_url_template is None and 'executionUrlTemplate' in kwargs: + execution_url_template = kwargs['executionUrlTemplate'] + if revision_url_template is None and 'revisionUrlTemplate' in kwargs: + revision_url_template = kwargs['revisionUrlTemplate'] + if third_party_configuration_url is None and 'thirdPartyConfigurationUrl' in kwargs: + third_party_configuration_url = kwargs['thirdPartyConfigurationUrl'] + if entity_url_template is not None: - pulumi.set(__self__, "entity_url_template", entity_url_template) + _setter("entity_url_template", entity_url_template) if execution_url_template is not None: - pulumi.set(__self__, "execution_url_template", execution_url_template) + _setter("execution_url_template", execution_url_template) if revision_url_template is not None: - pulumi.set(__self__, "revision_url_template", revision_url_template) + _setter("revision_url_template", revision_url_template) if third_party_configuration_url is not None: - pulumi.set(__self__, "third_party_configuration_url", third_party_configuration_url) + _setter("third_party_configuration_url", third_party_configuration_url) @property @pulumi.getter(name="entityUrlTemplate") @@ -295,12 +393,35 @@ def __init__(__self__, *, :param pulumi.Input['PipelineArtifactStoreEncryptionKeyArgs'] encryption_key: The encryption key block AWS CodePipeline uses to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If you don't specify a key, AWS CodePipeline uses the default key for Amazon Simple Storage Service (Amazon S3). An `encryption_key` block is documented below. :param pulumi.Input[str] region: The region where the artifact store is located. Required for a cross-region CodePipeline, do not provide for a single-region CodePipeline. """ - pulumi.set(__self__, "location", location) - pulumi.set(__self__, "type", type) + PipelineArtifactStoreArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + location=location, + type=type, + encryption_key=encryption_key, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + location: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + encryption_key: Optional[pulumi.Input['PipelineArtifactStoreEncryptionKeyArgs']] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if location is None: + raise TypeError("Missing 'location' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if encryption_key is None and 'encryptionKey' in kwargs: + encryption_key = kwargs['encryptionKey'] + + _setter("location", location) + _setter("type", type) if encryption_key is not None: - pulumi.set(__self__, "encryption_key", encryption_key) + _setter("encryption_key", encryption_key) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -360,8 +481,25 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The KMS key ARN or ID :param pulumi.Input[str] type: The type of key; currently only `KMS` is supported """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "type", type) + PipelineArtifactStoreEncryptionKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("id", id) + _setter("type", type) @property @pulumi.getter @@ -397,8 +535,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['PipelineStageActionArgs']]] actions: The action(s) to include in the stage. Defined as an `action` block below :param pulumi.Input[str] name: The name of the stage. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "name", name) + PipelineStageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineStageActionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("actions", actions) + _setter("name", name) @property @pulumi.getter @@ -456,25 +611,76 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the IAM service role that will perform the declared action. This is assumed through the roleArn for the pipeline. :param pulumi.Input[int] run_order: The order in which actions are run. """ - pulumi.set(__self__, "category", category) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "owner", owner) - pulumi.set(__self__, "provider", provider) - pulumi.set(__self__, "version", version) + PipelineStageActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + category=category, + name=name, + owner=owner, + provider=provider, + version=version, + configuration=configuration, + input_artifacts=input_artifacts, + namespace=namespace, + output_artifacts=output_artifacts, + region=region, + role_arn=role_arn, + run_order=run_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + category: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + provider: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + input_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + namespace: Optional[pulumi.Input[str]] = None, + output_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + region: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + run_order: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if category is None: + raise TypeError("Missing 'category' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if owner is None: + raise TypeError("Missing 'owner' argument") + if provider is None: + raise TypeError("Missing 'provider' argument") + if version is None: + raise TypeError("Missing 'version' argument") + if input_artifacts is None and 'inputArtifacts' in kwargs: + input_artifacts = kwargs['inputArtifacts'] + if output_artifacts is None and 'outputArtifacts' in kwargs: + output_artifacts = kwargs['outputArtifacts'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if run_order is None and 'runOrder' in kwargs: + run_order = kwargs['runOrder'] + + _setter("category", category) + _setter("name", name) + _setter("owner", owner) + _setter("provider", provider) + _setter("version", version) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if input_artifacts is not None: - pulumi.set(__self__, "input_artifacts", input_artifacts) + _setter("input_artifacts", input_artifacts) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if output_artifacts is not None: - pulumi.set(__self__, "output_artifacts", output_artifacts) + _setter("output_artifacts", output_artifacts) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if run_order is not None: - pulumi.set(__self__, "run_order", run_order) + _setter("run_order", run_order) @property @pulumi.getter @@ -632,10 +838,27 @@ def __init__(__self__, *, :param pulumi.Input[str] allowed_ip_range: A valid CIDR block for `IP` filtering. Required for `IP`. :param pulumi.Input[str] secret_token: The shared secret for the GitHub repository webhook. Set this as `secret` in your `github_repository_webhook`'s `configuration` block. Required for `GITHUB_HMAC`. """ + WebhookAuthenticationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_ip_range=allowed_ip_range, + secret_token=secret_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_ip_range: Optional[pulumi.Input[str]] = None, + secret_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_ip_range is None and 'allowedIpRange' in kwargs: + allowed_ip_range = kwargs['allowedIpRange'] + if secret_token is None and 'secretToken' in kwargs: + secret_token = kwargs['secretToken'] + if allowed_ip_range is not None: - pulumi.set(__self__, "allowed_ip_range", allowed_ip_range) + _setter("allowed_ip_range", allowed_ip_range) if secret_token is not None: - pulumi.set(__self__, "secret_token", secret_token) + _setter("secret_token", secret_token) @property @pulumi.getter(name="allowedIpRange") @@ -671,8 +894,29 @@ def __init__(__self__, *, :param pulumi.Input[str] json_path: The [JSON path](https://github.com/json-path/JsonPath) to filter on. :param pulumi.Input[str] match_equals: The value to match on (e.g., `refs/heads/{Branch}`). See [AWS docs](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_WebhookFilterRule.html) for details. """ - pulumi.set(__self__, "json_path", json_path) - pulumi.set(__self__, "match_equals", match_equals) + WebhookFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + json_path=json_path, + match_equals=match_equals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + json_path: Optional[pulumi.Input[str]] = None, + match_equals: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if json_path is None and 'jsonPath' in kwargs: + json_path = kwargs['jsonPath'] + if json_path is None: + raise TypeError("Missing 'json_path' argument") + if match_equals is None and 'matchEquals' in kwargs: + match_equals = kwargs['matchEquals'] + if match_equals is None: + raise TypeError("Missing 'match_equals' argument") + + _setter("json_path", json_path) + _setter("match_equals", match_equals) @property @pulumi.getter(name="jsonPath") diff --git a/sdk/python/pulumi_aws/codepipeline/custom_action_type.py b/sdk/python/pulumi_aws/codepipeline/custom_action_type.py index bbe17afa5b6..a804cc8fa48 100644 --- a/sdk/python/pulumi_aws/codepipeline/custom_action_type.py +++ b/sdk/python/pulumi_aws/codepipeline/custom_action_type.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,17 +35,60 @@ def __init__(__self__, *, :param pulumi.Input['CustomActionTypeSettingsArgs'] settings: The settings for an action type. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "category", category) - pulumi.set(__self__, "input_artifact_details", input_artifact_details) - pulumi.set(__self__, "output_artifact_details", output_artifact_details) - pulumi.set(__self__, "provider_name", provider_name) - pulumi.set(__self__, "version", version) + CustomActionTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + category=category, + input_artifact_details=input_artifact_details, + output_artifact_details=output_artifact_details, + provider_name=provider_name, + version=version, + configuration_properties=configuration_properties, + settings=settings, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + category: Optional[pulumi.Input[str]] = None, + input_artifact_details: Optional[pulumi.Input['CustomActionTypeInputArtifactDetailsArgs']] = None, + output_artifact_details: Optional[pulumi.Input['CustomActionTypeOutputArtifactDetailsArgs']] = None, + provider_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + configuration_properties: Optional[pulumi.Input[Sequence[pulumi.Input['CustomActionTypeConfigurationPropertyArgs']]]] = None, + settings: Optional[pulumi.Input['CustomActionTypeSettingsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if category is None: + raise TypeError("Missing 'category' argument") + if input_artifact_details is None and 'inputArtifactDetails' in kwargs: + input_artifact_details = kwargs['inputArtifactDetails'] + if input_artifact_details is None: + raise TypeError("Missing 'input_artifact_details' argument") + if output_artifact_details is None and 'outputArtifactDetails' in kwargs: + output_artifact_details = kwargs['outputArtifactDetails'] + if output_artifact_details is None: + raise TypeError("Missing 'output_artifact_details' argument") + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if provider_name is None: + raise TypeError("Missing 'provider_name' argument") + if version is None: + raise TypeError("Missing 'version' argument") + if configuration_properties is None and 'configurationProperties' in kwargs: + configuration_properties = kwargs['configurationProperties'] + + _setter("category", category) + _setter("input_artifact_details", input_artifact_details) + _setter("output_artifact_details", output_artifact_details) + _setter("provider_name", provider_name) + _setter("version", version) if configuration_properties is not None: - pulumi.set(__self__, "configuration_properties", configuration_properties) + _setter("configuration_properties", configuration_properties) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -172,31 +215,72 @@ def __init__(__self__, *, :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: The version identifier of the custom action. """ + _CustomActionTypeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + category=category, + configuration_properties=configuration_properties, + input_artifact_details=input_artifact_details, + output_artifact_details=output_artifact_details, + owner=owner, + provider_name=provider_name, + settings=settings, + tags=tags, + tags_all=tags_all, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + category: Optional[pulumi.Input[str]] = None, + configuration_properties: Optional[pulumi.Input[Sequence[pulumi.Input['CustomActionTypeConfigurationPropertyArgs']]]] = None, + input_artifact_details: Optional[pulumi.Input['CustomActionTypeInputArtifactDetailsArgs']] = None, + output_artifact_details: Optional[pulumi.Input['CustomActionTypeOutputArtifactDetailsArgs']] = None, + owner: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input['CustomActionTypeSettingsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_properties is None and 'configurationProperties' in kwargs: + configuration_properties = kwargs['configurationProperties'] + if input_artifact_details is None and 'inputArtifactDetails' in kwargs: + input_artifact_details = kwargs['inputArtifactDetails'] + if output_artifact_details is None and 'outputArtifactDetails' in kwargs: + output_artifact_details = kwargs['outputArtifactDetails'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if category is not None: - pulumi.set(__self__, "category", category) + _setter("category", category) if configuration_properties is not None: - pulumi.set(__self__, "configuration_properties", configuration_properties) + _setter("configuration_properties", configuration_properties) if input_artifact_details is not None: - pulumi.set(__self__, "input_artifact_details", input_artifact_details) + _setter("input_artifact_details", input_artifact_details) if output_artifact_details is not None: - pulumi.set(__self__, "output_artifact_details", output_artifact_details) + _setter("output_artifact_details", output_artifact_details) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -437,6 +521,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomActionTypeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -463,15 +551,18 @@ def _internal_init(__self__, raise TypeError("Missing required property 'category'") __props__.__dict__["category"] = category __props__.__dict__["configuration_properties"] = configuration_properties + input_artifact_details = _utilities.configure(input_artifact_details, CustomActionTypeInputArtifactDetailsArgs, True) if input_artifact_details is None and not opts.urn: raise TypeError("Missing required property 'input_artifact_details'") __props__.__dict__["input_artifact_details"] = input_artifact_details + output_artifact_details = _utilities.configure(output_artifact_details, CustomActionTypeOutputArtifactDetailsArgs, True) if output_artifact_details is None and not opts.urn: raise TypeError("Missing required property 'output_artifact_details'") __props__.__dict__["output_artifact_details"] = output_artifact_details if provider_name is None and not opts.urn: raise TypeError("Missing required property 'provider_name'") __props__.__dict__["provider_name"] = provider_name + settings = _utilities.configure(settings, CustomActionTypeSettingsArgs, True) __props__.__dict__["settings"] = settings __props__.__dict__["tags"] = tags if version is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/codepipeline/outputs.py b/sdk/python/pulumi_aws/codepipeline/outputs.py index c5264f2d04e..4ab95daf481 100644 --- a/sdk/python/pulumi_aws/codepipeline/outputs.py +++ b/sdk/python/pulumi_aws/codepipeline/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -42,16 +42,47 @@ def __init__(__self__, *, :param bool queryable: Indicates that the property will be used in conjunction with PollForJobs. :param str type: The type of the configuration property. Valid values: `String`, `Number`, `Boolean` """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "required", required) - pulumi.set(__self__, "secret", secret) + CustomActionTypeConfigurationProperty._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + name=name, + required=required, + secret=secret, + description=description, + queryable=queryable, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[bool] = None, + name: Optional[str] = None, + required: Optional[bool] = None, + secret: Optional[bool] = None, + description: Optional[str] = None, + queryable: Optional[bool] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if required is None: + raise TypeError("Missing 'required' argument") + if secret is None: + raise TypeError("Missing 'secret' argument") + + _setter("key", key) + _setter("name", name) + _setter("required", required) + _setter("secret", secret) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if queryable is not None: - pulumi.set(__self__, "queryable", queryable) + _setter("queryable", queryable) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -138,8 +169,29 @@ def __init__(__self__, *, :param int maximum_count: The maximum number of artifacts allowed for the action type. Min: 0, Max: 5 :param int minimum_count: The minimum number of artifacts allowed for the action type. Min: 0, Max: 5 """ - pulumi.set(__self__, "maximum_count", maximum_count) - pulumi.set(__self__, "minimum_count", minimum_count) + CustomActionTypeInputArtifactDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_count=maximum_count, + minimum_count=minimum_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_count: Optional[int] = None, + minimum_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_count is None and 'maximumCount' in kwargs: + maximum_count = kwargs['maximumCount'] + if maximum_count is None: + raise TypeError("Missing 'maximum_count' argument") + if minimum_count is None and 'minimumCount' in kwargs: + minimum_count = kwargs['minimumCount'] + if minimum_count is None: + raise TypeError("Missing 'minimum_count' argument") + + _setter("maximum_count", maximum_count) + _setter("minimum_count", minimum_count) @property @pulumi.getter(name="maximumCount") @@ -186,8 +238,29 @@ def __init__(__self__, *, :param int maximum_count: The maximum number of artifacts allowed for the action type. Min: 0, Max: 5 :param int minimum_count: The minimum number of artifacts allowed for the action type. Min: 0, Max: 5 """ - pulumi.set(__self__, "maximum_count", maximum_count) - pulumi.set(__self__, "minimum_count", minimum_count) + CustomActionTypeOutputArtifactDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_count=maximum_count, + minimum_count=minimum_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_count: Optional[int] = None, + minimum_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_count is None and 'maximumCount' in kwargs: + maximum_count = kwargs['maximumCount'] + if maximum_count is None: + raise TypeError("Missing 'maximum_count' argument") + if minimum_count is None and 'minimumCount' in kwargs: + minimum_count = kwargs['minimumCount'] + if minimum_count is None: + raise TypeError("Missing 'minimum_count' argument") + + _setter("maximum_count", maximum_count) + _setter("minimum_count", minimum_count) @property @pulumi.getter(name="maximumCount") @@ -242,14 +315,39 @@ def __init__(__self__, *, :param str revision_url_template: The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action. :param str third_party_configuration_url: The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service. """ + CustomActionTypeSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_url_template=entity_url_template, + execution_url_template=execution_url_template, + revision_url_template=revision_url_template, + third_party_configuration_url=third_party_configuration_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_url_template: Optional[str] = None, + execution_url_template: Optional[str] = None, + revision_url_template: Optional[str] = None, + third_party_configuration_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_url_template is None and 'entityUrlTemplate' in kwargs: + entity_url_template = kwargs['entityUrlTemplate'] + if execution_url_template is None and 'executionUrlTemplate' in kwargs: + execution_url_template = kwargs['executionUrlTemplate'] + if revision_url_template is None and 'revisionUrlTemplate' in kwargs: + revision_url_template = kwargs['revisionUrlTemplate'] + if third_party_configuration_url is None and 'thirdPartyConfigurationUrl' in kwargs: + third_party_configuration_url = kwargs['thirdPartyConfigurationUrl'] + if entity_url_template is not None: - pulumi.set(__self__, "entity_url_template", entity_url_template) + _setter("entity_url_template", entity_url_template) if execution_url_template is not None: - pulumi.set(__self__, "execution_url_template", execution_url_template) + _setter("execution_url_template", execution_url_template) if revision_url_template is not None: - pulumi.set(__self__, "revision_url_template", revision_url_template) + _setter("revision_url_template", revision_url_template) if third_party_configuration_url is not None: - pulumi.set(__self__, "third_party_configuration_url", third_party_configuration_url) + _setter("third_party_configuration_url", third_party_configuration_url) @property @pulumi.getter(name="entityUrlTemplate") @@ -314,12 +412,35 @@ def __init__(__self__, *, :param 'PipelineArtifactStoreEncryptionKeyArgs' encryption_key: The encryption key block AWS CodePipeline uses to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If you don't specify a key, AWS CodePipeline uses the default key for Amazon Simple Storage Service (Amazon S3). An `encryption_key` block is documented below. :param str region: The region where the artifact store is located. Required for a cross-region CodePipeline, do not provide for a single-region CodePipeline. """ - pulumi.set(__self__, "location", location) - pulumi.set(__self__, "type", type) + PipelineArtifactStore._configure( + lambda key, value: pulumi.set(__self__, key, value), + location=location, + type=type, + encryption_key=encryption_key, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + location: Optional[str] = None, + type: Optional[str] = None, + encryption_key: Optional['outputs.PipelineArtifactStoreEncryptionKey'] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if location is None: + raise TypeError("Missing 'location' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if encryption_key is None and 'encryptionKey' in kwargs: + encryption_key = kwargs['encryptionKey'] + + _setter("location", location) + _setter("type", type) if encryption_key is not None: - pulumi.set(__self__, "encryption_key", encryption_key) + _setter("encryption_key", encryption_key) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -363,8 +484,25 @@ def __init__(__self__, *, :param str id: The KMS key ARN or ID :param str type: The type of key; currently only `KMS` is supported """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "type", type) + PipelineArtifactStoreEncryptionKey._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("id", id) + _setter("type", type) @property @pulumi.getter @@ -392,8 +530,25 @@ def __init__(__self__, *, :param Sequence['PipelineStageActionArgs'] actions: The action(s) to include in the stage. Defined as an `action` block below :param str name: The name of the stage. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "name", name) + PipelineStage._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence['outputs.PipelineStageAction']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("actions", actions) + _setter("name", name) @property @pulumi.getter @@ -466,25 +621,76 @@ def __init__(__self__, *, :param str role_arn: The ARN of the IAM service role that will perform the declared action. This is assumed through the roleArn for the pipeline. :param int run_order: The order in which actions are run. """ - pulumi.set(__self__, "category", category) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "owner", owner) - pulumi.set(__self__, "provider", provider) - pulumi.set(__self__, "version", version) + PipelineStageAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + category=category, + name=name, + owner=owner, + provider=provider, + version=version, + configuration=configuration, + input_artifacts=input_artifacts, + namespace=namespace, + output_artifacts=output_artifacts, + region=region, + role_arn=role_arn, + run_order=run_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + category: Optional[str] = None, + name: Optional[str] = None, + owner: Optional[str] = None, + provider: Optional[str] = None, + version: Optional[str] = None, + configuration: Optional[Mapping[str, str]] = None, + input_artifacts: Optional[Sequence[str]] = None, + namespace: Optional[str] = None, + output_artifacts: Optional[Sequence[str]] = None, + region: Optional[str] = None, + role_arn: Optional[str] = None, + run_order: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if category is None: + raise TypeError("Missing 'category' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if owner is None: + raise TypeError("Missing 'owner' argument") + if provider is None: + raise TypeError("Missing 'provider' argument") + if version is None: + raise TypeError("Missing 'version' argument") + if input_artifacts is None and 'inputArtifacts' in kwargs: + input_artifacts = kwargs['inputArtifacts'] + if output_artifacts is None and 'outputArtifacts' in kwargs: + output_artifacts = kwargs['outputArtifacts'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if run_order is None and 'runOrder' in kwargs: + run_order = kwargs['runOrder'] + + _setter("category", category) + _setter("name", name) + _setter("owner", owner) + _setter("provider", provider) + _setter("version", version) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if input_artifacts is not None: - pulumi.set(__self__, "input_artifacts", input_artifacts) + _setter("input_artifacts", input_artifacts) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if output_artifacts is not None: - pulumi.set(__self__, "output_artifacts", output_artifacts) + _setter("output_artifacts", output_artifacts) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if run_order is not None: - pulumi.set(__self__, "run_order", run_order) + _setter("run_order", run_order) @property @pulumi.getter @@ -613,10 +819,27 @@ def __init__(__self__, *, :param str allowed_ip_range: A valid CIDR block for `IP` filtering. Required for `IP`. :param str secret_token: The shared secret for the GitHub repository webhook. Set this as `secret` in your `github_repository_webhook`'s `configuration` block. Required for `GITHUB_HMAC`. """ + WebhookAuthenticationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_ip_range=allowed_ip_range, + secret_token=secret_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_ip_range: Optional[str] = None, + secret_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_ip_range is None and 'allowedIpRange' in kwargs: + allowed_ip_range = kwargs['allowedIpRange'] + if secret_token is None and 'secretToken' in kwargs: + secret_token = kwargs['secretToken'] + if allowed_ip_range is not None: - pulumi.set(__self__, "allowed_ip_range", allowed_ip_range) + _setter("allowed_ip_range", allowed_ip_range) if secret_token is not None: - pulumi.set(__self__, "secret_token", secret_token) + _setter("secret_token", secret_token) @property @pulumi.getter(name="allowedIpRange") @@ -663,8 +886,29 @@ def __init__(__self__, *, :param str json_path: The [JSON path](https://github.com/json-path/JsonPath) to filter on. :param str match_equals: The value to match on (e.g., `refs/heads/{Branch}`). See [AWS docs](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_WebhookFilterRule.html) for details. """ - pulumi.set(__self__, "json_path", json_path) - pulumi.set(__self__, "match_equals", match_equals) + WebhookFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + json_path=json_path, + match_equals=match_equals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + json_path: Optional[str] = None, + match_equals: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if json_path is None and 'jsonPath' in kwargs: + json_path = kwargs['jsonPath'] + if json_path is None: + raise TypeError("Missing 'json_path' argument") + if match_equals is None and 'matchEquals' in kwargs: + match_equals = kwargs['matchEquals'] + if match_equals is None: + raise TypeError("Missing 'match_equals' argument") + + _setter("json_path", json_path) + _setter("match_equals", match_equals) @property @pulumi.getter(name="jsonPath") diff --git a/sdk/python/pulumi_aws/codepipeline/pipeline.py b/sdk/python/pulumi_aws/codepipeline/pipeline.py index 41a627324cd..21cd34cc2b0 100644 --- a/sdk/python/pulumi_aws/codepipeline/pipeline.py +++ b/sdk/python/pulumi_aws/codepipeline/pipeline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the pipeline. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "artifact_stores", artifact_stores) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stages", stages) + PipelineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + artifact_stores=artifact_stores, + role_arn=role_arn, + stages=stages, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + artifact_stores: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineArtifactStoreArgs']]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + stages: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineStageArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if artifact_stores is None and 'artifactStores' in kwargs: + artifact_stores = kwargs['artifactStores'] + if artifact_stores is None: + raise TypeError("Missing 'artifact_stores' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stages is None: + raise TypeError("Missing 'stages' argument") + + _setter("artifact_stores", artifact_stores) + _setter("role_arn", role_arn) + _setter("stages", stages) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="artifactStores") @@ -118,23 +147,52 @@ def __init__(__self__, *, :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. """ + _PipelineState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + artifact_stores=artifact_stores, + name=name, + role_arn=role_arn, + stages=stages, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + artifact_stores: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineArtifactStoreArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + stages: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineStageArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if artifact_stores is None and 'artifactStores' in kwargs: + artifact_stores = kwargs['artifactStores'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if artifact_stores is not None: - pulumi.set(__self__, "artifact_stores", artifact_stores) + _setter("artifact_stores", artifact_stores) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if stages is not None: - pulumi.set(__self__, "stages", stages) + _setter("stages", stages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -513,6 +571,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PipelineArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codepipeline/webhook.py b/sdk/python/pulumi_aws/codepipeline/webhook.py index 0c28bb1d2e5..ca4d5ffa70a 100644 --- a/sdk/python/pulumi_aws/codepipeline/webhook.py +++ b/sdk/python/pulumi_aws/codepipeline/webhook.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,16 +33,53 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the webhook. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "authentication", authentication) - pulumi.set(__self__, "filters", filters) - pulumi.set(__self__, "target_action", target_action) - pulumi.set(__self__, "target_pipeline", target_pipeline) + WebhookArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication=authentication, + filters=filters, + target_action=target_action, + target_pipeline=target_pipeline, + authentication_configuration=authentication_configuration, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication: Optional[pulumi.Input[str]] = None, + filters: Optional[pulumi.Input[Sequence[pulumi.Input['WebhookFilterArgs']]]] = None, + target_action: Optional[pulumi.Input[str]] = None, + target_pipeline: Optional[pulumi.Input[str]] = None, + authentication_configuration: Optional[pulumi.Input['WebhookAuthenticationConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication is None: + raise TypeError("Missing 'authentication' argument") + if filters is None: + raise TypeError("Missing 'filters' argument") + if target_action is None and 'targetAction' in kwargs: + target_action = kwargs['targetAction'] + if target_action is None: + raise TypeError("Missing 'target_action' argument") + if target_pipeline is None and 'targetPipeline' in kwargs: + target_pipeline = kwargs['targetPipeline'] + if target_pipeline is None: + raise TypeError("Missing 'target_pipeline' argument") + if authentication_configuration is None and 'authenticationConfiguration' in kwargs: + authentication_configuration = kwargs['authenticationConfiguration'] + + _setter("authentication", authentication) + _setter("filters", filters) + _setter("target_action", target_action) + _setter("target_pipeline", target_pipeline) if authentication_configuration is not None: - pulumi.set(__self__, "authentication_configuration", authentication_configuration) + _setter("authentication_configuration", authentication_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -155,29 +192,66 @@ def __init__(__self__, *, :param pulumi.Input[str] target_pipeline: The name of the pipeline. :param pulumi.Input[str] url: The CodePipeline webhook's URL. POST events to this endpoint to trigger the target. """ + _WebhookState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + authentication=authentication, + authentication_configuration=authentication_configuration, + filters=filters, + name=name, + tags=tags, + tags_all=tags_all, + target_action=target_action, + target_pipeline=target_pipeline, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + authentication: Optional[pulumi.Input[str]] = None, + authentication_configuration: Optional[pulumi.Input['WebhookAuthenticationConfigurationArgs']] = None, + filters: Optional[pulumi.Input[Sequence[pulumi.Input['WebhookFilterArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_action: Optional[pulumi.Input[str]] = None, + target_pipeline: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_configuration is None and 'authenticationConfiguration' in kwargs: + authentication_configuration = kwargs['authenticationConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_action is None and 'targetAction' in kwargs: + target_action = kwargs['targetAction'] + if target_pipeline is None and 'targetPipeline' in kwargs: + target_pipeline = kwargs['targetPipeline'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication is not None: - pulumi.set(__self__, "authentication", authentication) + _setter("authentication", authentication) if authentication_configuration is not None: - pulumi.set(__self__, "authentication_configuration", authentication_configuration) + _setter("authentication_configuration", authentication_configuration) if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_action is not None: - pulumi.set(__self__, "target_action", target_action) + _setter("target_action", target_action) if target_pipeline is not None: - pulumi.set(__self__, "target_pipeline", target_pipeline) + _setter("target_pipeline", target_pipeline) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter @@ -510,6 +584,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebhookArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -534,6 +612,7 @@ def _internal_init(__self__, if authentication is None and not opts.urn: raise TypeError("Missing required property 'authentication'") __props__.__dict__["authentication"] = authentication + authentication_configuration = _utilities.configure(authentication_configuration, WebhookAuthenticationConfigurationArgs, True) __props__.__dict__["authentication_configuration"] = authentication_configuration if filters is None and not opts.urn: raise TypeError("Missing required property 'filters'") diff --git a/sdk/python/pulumi_aws/codestarconnections/_inputs.py b/sdk/python/pulumi_aws/codestarconnections/_inputs.py index 3a51f473448..00974c824ac 100644 --- a/sdk/python/pulumi_aws/codestarconnections/_inputs.py +++ b/sdk/python/pulumi_aws/codestarconnections/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -26,11 +26,42 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. :param pulumi.Input[str] tls_certificate: The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + HostVpcConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + tls_certificate=tls_certificate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + tls_certificate: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if tls_certificate is None and 'tlsCertificate' in kwargs: + tls_certificate = kwargs['tlsCertificate'] + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if tls_certificate is not None: - pulumi.set(__self__, "tls_certificate", tls_certificate) + _setter("tls_certificate", tls_certificate) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/codestarconnections/connection.py b/sdk/python/pulumi_aws/codestarconnections/connection.py index b05c717557c..e3f996d2c10 100644 --- a/sdk/python/pulumi_aws/codestarconnections/connection.py +++ b/sdk/python/pulumi_aws/codestarconnections/connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConnectionArgs', 'Connection'] @@ -25,14 +25,35 @@ def __init__(__self__, *, :param pulumi.Input[str] provider_type: The name of the external provider where your third-party code repository is configured. Valid values are `Bitbucket`, `GitHub` or `GitHubEnterpriseServer`. Changing `provider_type` will create a new resource. Conflicts with `host_arn` :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of key-value resource tags to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + ConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + host_arn=host_arn, + name=name, + provider_type=provider_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_arn is None and 'hostArn' in kwargs: + host_arn = kwargs['hostArn'] + if provider_type is None and 'providerType' in kwargs: + provider_type = kwargs['providerType'] + if host_arn is not None: - pulumi.set(__self__, "host_arn", host_arn) + _setter("host_arn", host_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provider_type is not None: - pulumi.set(__self__, "provider_type", provider_type) + _setter("provider_type", provider_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="hostArn") @@ -103,23 +124,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of key-value resource tags to associate with 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. """ + _ConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + connection_status=connection_status, + host_arn=host_arn, + name=name, + provider_type=provider_type, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + connection_status: Optional[pulumi.Input[str]] = None, + host_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_status is None and 'connectionStatus' in kwargs: + connection_status = kwargs['connectionStatus'] + if host_arn is None and 'hostArn' in kwargs: + host_arn = kwargs['hostArn'] + if provider_type is None and 'providerType' in kwargs: + provider_type = kwargs['providerType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if connection_status is not None: - pulumi.set(__self__, "connection_status", connection_status) + _setter("connection_status", connection_status) if host_arn is not None: - pulumi.set(__self__, "host_arn", host_arn) + _setter("host_arn", host_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provider_type is not None: - pulumi.set(__self__, "provider_type", provider_type) + _setter("provider_type", provider_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -344,6 +396,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codestarconnections/get_connection.py b/sdk/python/pulumi_aws/codestarconnections/get_connection.py index fa865470b87..3371d1c98d9 100644 --- a/sdk/python/pulumi_aws/codestarconnections/get_connection.py +++ b/sdk/python/pulumi_aws/codestarconnections/get_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/codestarconnections/host.py b/sdk/python/pulumi_aws/codestarconnections/host.py index 306e4c17022..c7074d4e84b 100644 --- a/sdk/python/pulumi_aws/codestarconnections/host.py +++ b/sdk/python/pulumi_aws/codestarconnections/host.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the host to be created. The name must be unique in the calling AWS account. :param pulumi.Input['HostVpcConfigurationArgs'] vpc_configuration: The VPC configuration to be provisioned for the host. A VPC must be configured, and the infrastructure to be represented by the host must already be connected to the VPC. """ - pulumi.set(__self__, "provider_endpoint", provider_endpoint) - pulumi.set(__self__, "provider_type", provider_type) + HostArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + provider_endpoint=provider_endpoint, + provider_type=provider_type, + name=name, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provider_endpoint: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + vpc_configuration: Optional[pulumi.Input['HostVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider_endpoint is None and 'providerEndpoint' in kwargs: + provider_endpoint = kwargs['providerEndpoint'] + if provider_endpoint is None: + raise TypeError("Missing 'provider_endpoint' argument") + if provider_type is None and 'providerType' in kwargs: + provider_type = kwargs['providerType'] + if provider_type is None: + raise TypeError("Missing 'provider_type' argument") + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + + _setter("provider_endpoint", provider_endpoint) + _setter("provider_type", provider_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter(name="providerEndpoint") @@ -101,18 +128,45 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The CodeStar Host status. Possible values are `PENDING`, `AVAILABLE`, `VPC_CONFIG_DELETING`, `VPC_CONFIG_INITIALIZING`, and `VPC_CONFIG_FAILED_INITIALIZATION`. :param pulumi.Input['HostVpcConfigurationArgs'] vpc_configuration: The VPC configuration to be provisioned for the host. A VPC must be configured, and the infrastructure to be represented by the host must already be connected to the VPC. """ + _HostState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + provider_endpoint=provider_endpoint, + provider_type=provider_type, + status=status, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + provider_endpoint: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + vpc_configuration: Optional[pulumi.Input['HostVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider_endpoint is None and 'providerEndpoint' in kwargs: + provider_endpoint = kwargs['providerEndpoint'] + if provider_type is None and 'providerType' in kwargs: + provider_type = kwargs['providerType'] + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provider_endpoint is not None: - pulumi.set(__self__, "provider_endpoint", provider_endpoint) + _setter("provider_endpoint", provider_endpoint) if provider_type is not None: - pulumi.set(__self__, "provider_type", provider_type) + _setter("provider_type", provider_type) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter @@ -268,6 +322,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -293,6 +351,7 @@ def _internal_init(__self__, if provider_type is None and not opts.urn: raise TypeError("Missing required property 'provider_type'") __props__.__dict__["provider_type"] = provider_type + vpc_configuration = _utilities.configure(vpc_configuration, HostVpcConfigurationArgs, True) __props__.__dict__["vpc_configuration"] = vpc_configuration __props__.__dict__["arn"] = None __props__.__dict__["status"] = None diff --git a/sdk/python/pulumi_aws/codestarconnections/outputs.py b/sdk/python/pulumi_aws/codestarconnections/outputs.py index df0febd160f..a4c2bca268c 100644 --- a/sdk/python/pulumi_aws/codestarconnections/outputs.py +++ b/sdk/python/pulumi_aws/codestarconnections/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -49,11 +49,42 @@ def __init__(__self__, *, :param str vpc_id: The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. :param str tls_certificate: The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + HostVpcConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + tls_certificate=tls_certificate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + tls_certificate: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if tls_certificate is None and 'tlsCertificate' in kwargs: + tls_certificate = kwargs['tlsCertificate'] + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if tls_certificate is not None: - pulumi.set(__self__, "tls_certificate", tls_certificate) + _setter("tls_certificate", tls_certificate) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/codestarnotifications/_inputs.py b/sdk/python/pulumi_aws/codestarnotifications/_inputs.py index d50f2ef38f8..1fd558f66ec 100644 --- a/sdk/python/pulumi_aws/codestarnotifications/_inputs.py +++ b/sdk/python/pulumi_aws/codestarnotifications/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,11 +24,28 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The status of the notification rule. Possible values are `ENABLED` and `DISABLED`, default is `ENABLED`. :param pulumi.Input[str] type: The type of the notification target. Default value is `SNS`. """ - pulumi.set(__self__, "address", address) + NotificationRuleTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + status=status, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + + _setter("address", address) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/codestarnotifications/notification_rule.py b/sdk/python/pulumi_aws/codestarnotifications/notification_rule.py index 0a5b16a7892..88b5e320419 100644 --- a/sdk/python/pulumi_aws/codestarnotifications/notification_rule.py +++ b/sdk/python/pulumi_aws/codestarnotifications/notification_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -34,17 +34,50 @@ def __init__(__self__, *, :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[Sequence[pulumi.Input['NotificationRuleTargetArgs']]] targets: Configuration blocks containing notification target information. Can be specified multiple times. At least one target must be specified on creation. """ - pulumi.set(__self__, "detail_type", detail_type) - pulumi.set(__self__, "event_type_ids", event_type_ids) - pulumi.set(__self__, "resource", resource) + NotificationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + detail_type=detail_type, + event_type_ids=event_type_ids, + resource=resource, + name=name, + status=status, + tags=tags, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + detail_type: Optional[pulumi.Input[str]] = None, + event_type_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['NotificationRuleTargetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detail_type is None and 'detailType' in kwargs: + detail_type = kwargs['detailType'] + if detail_type is None: + raise TypeError("Missing 'detail_type' argument") + if event_type_ids is None and 'eventTypeIds' in kwargs: + event_type_ids = kwargs['eventTypeIds'] + if event_type_ids is None: + raise TypeError("Missing 'event_type_ids' argument") + if resource is None: + raise TypeError("Missing 'resource' argument") + + _setter("detail_type", detail_type) + _setter("event_type_ids", event_type_ids) + _setter("resource", resource) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) @property @pulumi.getter(name="detailType") @@ -157,27 +190,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input['NotificationRuleTargetArgs']]] targets: Configuration blocks containing notification target information. Can be specified multiple times. At least one target must be specified on creation. """ + _NotificationRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + detail_type=detail_type, + event_type_ids=event_type_ids, + name=name, + resource=resource, + status=status, + tags=tags, + tags_all=tags_all, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + detail_type: Optional[pulumi.Input[str]] = None, + event_type_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + resource: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['NotificationRuleTargetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detail_type is None and 'detailType' in kwargs: + detail_type = kwargs['detailType'] + if event_type_ids is None and 'eventTypeIds' in kwargs: + event_type_ids = kwargs['eventTypeIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if detail_type is not None: - pulumi.set(__self__, "detail_type", detail_type) + _setter("detail_type", detail_type) if event_type_ids is not None: - pulumi.set(__self__, "event_type_ids", event_type_ids) + _setter("event_type_ids", event_type_ids) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource is not None: - pulumi.set(__self__, "resource", resource) + _setter("resource", resource) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) @property @pulumi.getter @@ -410,6 +476,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NotificationRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/codestarnotifications/outputs.py b/sdk/python/pulumi_aws/codestarnotifications/outputs.py index a0f3fe91be8..61e5117b3bb 100644 --- a/sdk/python/pulumi_aws/codestarnotifications/outputs.py +++ b/sdk/python/pulumi_aws/codestarnotifications/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,11 +24,28 @@ def __init__(__self__, *, :param str status: The status of the notification rule. Possible values are `ENABLED` and `DISABLED`, default is `ENABLED`. :param str type: The type of the notification target. Default value is `SNS`. """ - pulumi.set(__self__, "address", address) + NotificationRuleTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + status=status, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + status: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + + _setter("address", address) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/cognito/_inputs.py b/sdk/python/pulumi_aws/cognito/_inputs.py index 2b5833f2ad9..00384652d7f 100644 --- a/sdk/python/pulumi_aws/cognito/_inputs.py +++ b/sdk/python/pulumi_aws/cognito/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -62,12 +62,33 @@ def __init__(__self__, *, :param pulumi.Input[str] provider_name: The provider name for an Amazon Cognito Identity User Pool. :param pulumi.Input[bool] server_side_token_check: Whether server-side token validation is enabled for the identity provider’s token or not. """ + IdentityPoolCognitoIdentityProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + provider_name=provider_name, + server_side_token_check=server_side_token_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + server_side_token_check: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if server_side_token_check is None and 'serverSideTokenCheck' in kwargs: + server_side_token_check = kwargs['serverSideTokenCheck'] + if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if server_side_token_check is not None: - pulumi.set(__self__, "server_side_token_check", server_side_token_check) + _setter("server_side_token_check", server_side_token_check) @property @pulumi.getter(name="clientId") @@ -119,12 +140,39 @@ def __init__(__self__, *, :param pulumi.Input[str] ambiguous_role_resolution: Specifies the action to be taken if either no rules match the claim value for the Rules type, or there is no cognito:preferred_role claim and there are multiple cognito:roles matches for the Token type. `Required` if you specify Token or Rules as the Type. :param pulumi.Input[Sequence[pulumi.Input['IdentityPoolRoleAttachmentRoleMappingMappingRuleArgs']]] mapping_rules: The Rules Configuration to be used for mapping users to roles. You can specify up to 25 rules per identity provider. Rules are evaluated in order. The first one to match specifies the role. """ - pulumi.set(__self__, "identity_provider", identity_provider) - pulumi.set(__self__, "type", type) + IdentityPoolRoleAttachmentRoleMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_provider=identity_provider, + type=type, + ambiguous_role_resolution=ambiguous_role_resolution, + mapping_rules=mapping_rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_provider: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + ambiguous_role_resolution: Optional[pulumi.Input[str]] = None, + mapping_rules: Optional[pulumi.Input[Sequence[pulumi.Input['IdentityPoolRoleAttachmentRoleMappingMappingRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_provider is None and 'identityProvider' in kwargs: + identity_provider = kwargs['identityProvider'] + if identity_provider is None: + raise TypeError("Missing 'identity_provider' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if ambiguous_role_resolution is None and 'ambiguousRoleResolution' in kwargs: + ambiguous_role_resolution = kwargs['ambiguousRoleResolution'] + if mapping_rules is None and 'mappingRules' in kwargs: + mapping_rules = kwargs['mappingRules'] + + _setter("identity_provider", identity_provider) + _setter("type", type) if ambiguous_role_resolution is not None: - pulumi.set(__self__, "ambiguous_role_resolution", ambiguous_role_resolution) + _setter("ambiguous_role_resolution", ambiguous_role_resolution) if mapping_rules is not None: - pulumi.set(__self__, "mapping_rules", mapping_rules) + _setter("mapping_rules", mapping_rules) @property @pulumi.getter(name="identityProvider") @@ -188,10 +236,39 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The role ARN. :param pulumi.Input[str] value: A brief string that the claim must match, for example, "paid" or "yes". """ - pulumi.set(__self__, "claim", claim) - pulumi.set(__self__, "match_type", match_type) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "value", value) + IdentityPoolRoleAttachmentRoleMappingMappingRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + claim=claim, + match_type=match_type, + role_arn=role_arn, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + claim: Optional[pulumi.Input[str]] = None, + match_type: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if claim is None: + raise TypeError("Missing 'claim' argument") + if match_type is None and 'matchType' in kwargs: + match_type = kwargs['matchType'] + if match_type is None: + raise TypeError("Missing 'match_type' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("claim", claim) + _setter("match_type", match_type) + _setter("role_arn", role_arn) + _setter("value", value) @property @pulumi.getter @@ -257,16 +334,45 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics. It conflicts with `application_arn`. :param pulumi.Input[bool] user_data_shared: If `user_data_shared` is set to `true`, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics. """ + ManagedUserPoolClientAnalyticsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_arn=application_arn, + application_id=application_id, + external_id=external_id, + role_arn=role_arn, + user_data_shared=user_data_shared, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_arn: Optional[pulumi.Input[str]] = None, + application_id: Optional[pulumi.Input[str]] = None, + external_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + user_data_shared: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_arn is None and 'applicationArn' in kwargs: + application_arn = kwargs['applicationArn'] + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if user_data_shared is None and 'userDataShared' in kwargs: + user_data_shared = kwargs['userDataShared'] + if application_arn is not None: - pulumi.set(__self__, "application_arn", application_arn) + _setter("application_arn", application_arn) if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if user_data_shared is not None: - pulumi.set(__self__, "user_data_shared", user_data_shared) + _setter("user_data_shared", user_data_shared) @property @pulumi.getter(name="applicationArn") @@ -340,12 +446,33 @@ def __init__(__self__, *, :param pulumi.Input[str] id_token: Time unit for the value in `id_token_validity`, and it defaults to `hours`. :param pulumi.Input[str] refresh_token: Time unit for the value in `refresh_token_validity` and defaults to `days`. """ + ManagedUserPoolClientTokenValidityUnitsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + id_token=id_token, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[pulumi.Input[str]] = None, + id_token: Optional[pulumi.Input[str]] = None, + refresh_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if id_token is None and 'idToken' in kwargs: + id_token = kwargs['idToken'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if id_token is not None: - pulumi.set(__self__, "id_token", id_token) + _setter("id_token", id_token) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -393,8 +520,29 @@ def __init__(__self__, *, :param pulumi.Input[str] scope_description: The scope description. :param pulumi.Input[str] scope_name: The scope name. """ - pulumi.set(__self__, "scope_description", scope_description) - pulumi.set(__self__, "scope_name", scope_name) + ResourceServerScopeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + scope_description=scope_description, + scope_name=scope_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scope_description: Optional[pulumi.Input[str]] = None, + scope_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scope_description is None and 'scopeDescription' in kwargs: + scope_description = kwargs['scopeDescription'] + if scope_description is None: + raise TypeError("Missing 'scope_description' argument") + if scope_name is None and 'scopeName' in kwargs: + scope_name = kwargs['scopeName'] + if scope_name is None: + raise TypeError("Missing 'scope_name' argument") + + _setter("scope_description", scope_description) + _setter("scope_name", scope_name) @property @pulumi.getter(name="scopeDescription") @@ -430,8 +578,27 @@ def __init__(__self__, *, :param pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationActionsArgs'] actions: Account takeover risk configuration actions. See details below. :param pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationArgs'] notify_configuration: The notify configuration used to construct email notifications. See details below. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "notify_configuration", notify_configuration) + RiskConfigurationAccountTakeoverRiskConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + notify_configuration=notify_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationActionsArgs']] = None, + notify_configuration: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if notify_configuration is None and 'notifyConfiguration' in kwargs: + notify_configuration = kwargs['notifyConfiguration'] + if notify_configuration is None: + raise TypeError("Missing 'notify_configuration' argument") + + _setter("actions", actions) + _setter("notify_configuration", notify_configuration) @property @pulumi.getter @@ -469,12 +636,33 @@ def __init__(__self__, *, :param pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs'] low_action: Action to take for a low risk. See action block below. :param pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs'] medium_action: Action to take for a medium risk. See action block below. """ + RiskConfigurationAccountTakeoverRiskConfigurationActionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + high_action=high_action, + low_action=low_action, + medium_action=medium_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + high_action: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs']] = None, + low_action: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs']] = None, + medium_action: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if high_action is None and 'highAction' in kwargs: + high_action = kwargs['highAction'] + if low_action is None and 'lowAction' in kwargs: + low_action = kwargs['lowAction'] + if medium_action is None and 'mediumAction' in kwargs: + medium_action = kwargs['mediumAction'] + if high_action is not None: - pulumi.set(__self__, "high_action", high_action) + _setter("high_action", high_action) if low_action is not None: - pulumi.set(__self__, "low_action", low_action) + _setter("low_action", low_action) if medium_action is not None: - pulumi.set(__self__, "medium_action", medium_action) + _setter("medium_action", medium_action) @property @pulumi.getter(name="highAction") @@ -520,9 +708,29 @@ def __init__(__self__, *, notify: pulumi.Input[bool]): """ :param pulumi.Input[str] event_action: The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. - """ - pulumi.set(__self__, "event_action", event_action) - pulumi.set(__self__, "notify", notify) + :param pulumi.Input[bool] notify: Whether to send a notification. + """ + RiskConfigurationAccountTakeoverRiskConfigurationActionsHighActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_action=event_action, + notify=notify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_action: Optional[pulumi.Input[str]] = None, + notify: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_action is None and 'eventAction' in kwargs: + event_action = kwargs['eventAction'] + if event_action is None: + raise TypeError("Missing 'event_action' argument") + if notify is None: + raise TypeError("Missing 'notify' argument") + + _setter("event_action", event_action) + _setter("notify", notify) @property @pulumi.getter(name="eventAction") @@ -539,6 +747,9 @@ def event_action(self, value: pulumi.Input[str]): @property @pulumi.getter def notify(self) -> pulumi.Input[bool]: + """ + Whether to send a notification. + """ return pulumi.get(self, "notify") @notify.setter @@ -553,9 +764,29 @@ def __init__(__self__, *, notify: pulumi.Input[bool]): """ :param pulumi.Input[str] event_action: The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. - """ - pulumi.set(__self__, "event_action", event_action) - pulumi.set(__self__, "notify", notify) + :param pulumi.Input[bool] notify: Whether to send a notification. + """ + RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_action=event_action, + notify=notify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_action: Optional[pulumi.Input[str]] = None, + notify: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_action is None and 'eventAction' in kwargs: + event_action = kwargs['eventAction'] + if event_action is None: + raise TypeError("Missing 'event_action' argument") + if notify is None: + raise TypeError("Missing 'notify' argument") + + _setter("event_action", event_action) + _setter("notify", notify) @property @pulumi.getter(name="eventAction") @@ -572,6 +803,9 @@ def event_action(self, value: pulumi.Input[str]): @property @pulumi.getter def notify(self) -> pulumi.Input[bool]: + """ + Whether to send a notification. + """ return pulumi.get(self, "notify") @notify.setter @@ -586,9 +820,29 @@ def __init__(__self__, *, notify: pulumi.Input[bool]): """ :param pulumi.Input[str] event_action: The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. - """ - pulumi.set(__self__, "event_action", event_action) - pulumi.set(__self__, "notify", notify) + :param pulumi.Input[bool] notify: Whether to send a notification. + """ + RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_action=event_action, + notify=notify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_action: Optional[pulumi.Input[str]] = None, + notify: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_action is None and 'eventAction' in kwargs: + event_action = kwargs['eventAction'] + if event_action is None: + raise TypeError("Missing 'event_action' argument") + if notify is None: + raise TypeError("Missing 'notify' argument") + + _setter("event_action", event_action) + _setter("notify", notify) @property @pulumi.getter(name="eventAction") @@ -605,6 +859,9 @@ def event_action(self, value: pulumi.Input[str]): @property @pulumi.getter def notify(self) -> pulumi.Input[bool]: + """ + Whether to send a notification. + """ return pulumi.get(self, "notify") @notify.setter @@ -629,17 +886,52 @@ def __init__(__self__, *, :param pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationNoActionEmailArgs'] no_action_email: The email template used when a detected risk event is allowed. See notify email type below. :param pulumi.Input[str] reply_to: The destination to which the receiver of an email should reply to. """ - pulumi.set(__self__, "source_arn", source_arn) + RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_arn=source_arn, + block_email=block_email, + from_=from_, + mfa_email=mfa_email, + no_action_email=no_action_email, + reply_to=reply_to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_arn: Optional[pulumi.Input[str]] = None, + block_email: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationBlockEmailArgs']] = None, + from_: Optional[pulumi.Input[str]] = None, + mfa_email: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationMfaEmailArgs']] = None, + no_action_email: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationNoActionEmailArgs']] = None, + reply_to: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if source_arn is None: + raise TypeError("Missing 'source_arn' argument") + if block_email is None and 'blockEmail' in kwargs: + block_email = kwargs['blockEmail'] + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if mfa_email is None and 'mfaEmail' in kwargs: + mfa_email = kwargs['mfaEmail'] + if no_action_email is None and 'noActionEmail' in kwargs: + no_action_email = kwargs['noActionEmail'] + if reply_to is None and 'replyTo' in kwargs: + reply_to = kwargs['replyTo'] + + _setter("source_arn", source_arn) if block_email is not None: - pulumi.set(__self__, "block_email", block_email) + _setter("block_email", block_email) if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if mfa_email is not None: - pulumi.set(__self__, "mfa_email", mfa_email) + _setter("mfa_email", mfa_email) if no_action_email is not None: - pulumi.set(__self__, "no_action_email", no_action_email) + _setter("no_action_email", no_action_email) if reply_to is not None: - pulumi.set(__self__, "reply_to", reply_to) + _setter("reply_to", reply_to) @property @pulumi.getter(name="sourceArn") @@ -725,9 +1017,34 @@ def __init__(__self__, *, :param pulumi.Input[str] subject: The email subject. :param pulumi.Input[str] text_body: The email text body. """ - pulumi.set(__self__, "html_body", html_body) - pulumi.set(__self__, "subject", subject) - pulumi.set(__self__, "text_body", text_body) + RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationBlockEmailArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + html_body=html_body, + subject=subject, + text_body=text_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + html_body: Optional[pulumi.Input[str]] = None, + subject: Optional[pulumi.Input[str]] = None, + text_body: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if html_body is None and 'htmlBody' in kwargs: + html_body = kwargs['htmlBody'] + if html_body is None: + raise TypeError("Missing 'html_body' argument") + if subject is None: + raise TypeError("Missing 'subject' argument") + if text_body is None and 'textBody' in kwargs: + text_body = kwargs['textBody'] + if text_body is None: + raise TypeError("Missing 'text_body' argument") + + _setter("html_body", html_body) + _setter("subject", subject) + _setter("text_body", text_body) @property @pulumi.getter(name="htmlBody") @@ -777,9 +1094,34 @@ def __init__(__self__, *, :param pulumi.Input[str] subject: The email subject. :param pulumi.Input[str] text_body: The email text body. """ - pulumi.set(__self__, "html_body", html_body) - pulumi.set(__self__, "subject", subject) - pulumi.set(__self__, "text_body", text_body) + RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationMfaEmailArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + html_body=html_body, + subject=subject, + text_body=text_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + html_body: Optional[pulumi.Input[str]] = None, + subject: Optional[pulumi.Input[str]] = None, + text_body: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if html_body is None and 'htmlBody' in kwargs: + html_body = kwargs['htmlBody'] + if html_body is None: + raise TypeError("Missing 'html_body' argument") + if subject is None: + raise TypeError("Missing 'subject' argument") + if text_body is None and 'textBody' in kwargs: + text_body = kwargs['textBody'] + if text_body is None: + raise TypeError("Missing 'text_body' argument") + + _setter("html_body", html_body) + _setter("subject", subject) + _setter("text_body", text_body) @property @pulumi.getter(name="htmlBody") @@ -829,9 +1171,34 @@ def __init__(__self__, *, :param pulumi.Input[str] subject: The email subject. :param pulumi.Input[str] text_body: The email text body. """ - pulumi.set(__self__, "html_body", html_body) - pulumi.set(__self__, "subject", subject) - pulumi.set(__self__, "text_body", text_body) + RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationNoActionEmailArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + html_body=html_body, + subject=subject, + text_body=text_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + html_body: Optional[pulumi.Input[str]] = None, + subject: Optional[pulumi.Input[str]] = None, + text_body: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if html_body is None and 'htmlBody' in kwargs: + html_body = kwargs['htmlBody'] + if html_body is None: + raise TypeError("Missing 'html_body' argument") + if subject is None: + raise TypeError("Missing 'subject' argument") + if text_body is None and 'textBody' in kwargs: + text_body = kwargs['textBody'] + if text_body is None: + raise TypeError("Missing 'text_body' argument") + + _setter("html_body", html_body) + _setter("subject", subject) + _setter("text_body", text_body) @property @pulumi.getter(name="htmlBody") @@ -879,9 +1246,26 @@ def __init__(__self__, *, :param pulumi.Input['RiskConfigurationCompromisedCredentialsRiskConfigurationActionsArgs'] actions: The compromised credentials risk configuration actions. See details below. :param pulumi.Input[Sequence[pulumi.Input[str]]] event_filters: Perform the action for these events. The default is to perform all events if no event filter is specified. Valid values are `SIGN_IN`, `PASSWORD_CHANGE`, and `SIGN_UP`. """ - pulumi.set(__self__, "actions", actions) + RiskConfigurationCompromisedCredentialsRiskConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + event_filters=event_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input['RiskConfigurationCompromisedCredentialsRiskConfigurationActionsArgs']] = None, + event_filters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if event_filters is None and 'eventFilters' in kwargs: + event_filters = kwargs['eventFilters'] + + _setter("actions", actions) if event_filters is not None: - pulumi.set(__self__, "event_filters", event_filters) + _setter("event_filters", event_filters) @property @pulumi.getter @@ -915,7 +1299,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] event_action: The event action. Valid values are `BLOCK` or `NO_ACTION`. """ - pulumi.set(__self__, "event_action", event_action) + RiskConfigurationCompromisedCredentialsRiskConfigurationActionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_action=event_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_action: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_action is None and 'eventAction' in kwargs: + event_action = kwargs['eventAction'] + if event_action is None: + raise TypeError("Missing 'event_action' argument") + + _setter("event_action", event_action) @property @pulumi.getter(name="eventAction") @@ -943,10 +1342,27 @@ def __init__(__self__, *, The IP range is in CIDR notation. Can contain a maximum of 200 items. """ + RiskConfigurationRiskExceptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + blocked_ip_range_lists=blocked_ip_range_lists, + skipped_ip_range_lists=skipped_ip_range_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + blocked_ip_range_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + skipped_ip_range_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if blocked_ip_range_lists is None and 'blockedIpRangeLists' in kwargs: + blocked_ip_range_lists = kwargs['blockedIpRangeLists'] + if skipped_ip_range_lists is None and 'skippedIpRangeLists' in kwargs: + skipped_ip_range_lists = kwargs['skippedIpRangeLists'] + if blocked_ip_range_lists is not None: - pulumi.set(__self__, "blocked_ip_range_lists", blocked_ip_range_lists) + _setter("blocked_ip_range_lists", blocked_ip_range_lists) if skipped_ip_range_lists is not None: - pulumi.set(__self__, "skipped_ip_range_lists", skipped_ip_range_lists) + _setter("skipped_ip_range_lists", skipped_ip_range_lists) @property @pulumi.getter(name="blockedIpRangeLists") @@ -984,8 +1400,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['UserPoolAccountRecoverySettingRecoveryMechanismArgs']]] recovery_mechanisms: List of Account Recovery Options of the following structure: """ + UserPoolAccountRecoverySettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + recovery_mechanisms=recovery_mechanisms, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + recovery_mechanisms: Optional[pulumi.Input[Sequence[pulumi.Input['UserPoolAccountRecoverySettingRecoveryMechanismArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recovery_mechanisms is None and 'recoveryMechanisms' in kwargs: + recovery_mechanisms = kwargs['recoveryMechanisms'] + if recovery_mechanisms is not None: - pulumi.set(__self__, "recovery_mechanisms", recovery_mechanisms) + _setter("recovery_mechanisms", recovery_mechanisms) @property @pulumi.getter(name="recoveryMechanisms") @@ -1011,8 +1440,25 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[int] priority: Positive integer specifying priority of a method with 1 being the highest priority. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "priority", priority) + UserPoolAccountRecoverySettingRecoveryMechanismArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + + _setter("name", name) + _setter("priority", priority) @property @pulumi.getter @@ -1050,10 +1496,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] allow_admin_create_user_only: Set to True if only the administrator is allowed to create user profiles. Set to False if users can sign themselves up via an app. :param pulumi.Input['UserPoolAdminCreateUserConfigInviteMessageTemplateArgs'] invite_message_template: Invite message template structure. Detailed below. """ + UserPoolAdminCreateUserConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_admin_create_user_only=allow_admin_create_user_only, + invite_message_template=invite_message_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_admin_create_user_only: Optional[pulumi.Input[bool]] = None, + invite_message_template: Optional[pulumi.Input['UserPoolAdminCreateUserConfigInviteMessageTemplateArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_admin_create_user_only is None and 'allowAdminCreateUserOnly' in kwargs: + allow_admin_create_user_only = kwargs['allowAdminCreateUserOnly'] + if invite_message_template is None and 'inviteMessageTemplate' in kwargs: + invite_message_template = kwargs['inviteMessageTemplate'] + if allow_admin_create_user_only is not None: - pulumi.set(__self__, "allow_admin_create_user_only", allow_admin_create_user_only) + _setter("allow_admin_create_user_only", allow_admin_create_user_only) if invite_message_template is not None: - pulumi.set(__self__, "invite_message_template", invite_message_template) + _setter("invite_message_template", invite_message_template) @property @pulumi.getter(name="allowAdminCreateUserOnly") @@ -1091,12 +1554,33 @@ def __init__(__self__, *, :param pulumi.Input[str] email_subject: Subject line for email messages. :param pulumi.Input[str] sms_message: Message template for SMS messages. Must contain `{username}` and `{####}` placeholders, for username and temporary password, respectively. """ + UserPoolAdminCreateUserConfigInviteMessageTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + email_message=email_message, + email_subject=email_subject, + sms_message=sms_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email_message: Optional[pulumi.Input[str]] = None, + email_subject: Optional[pulumi.Input[str]] = None, + sms_message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email_message is None and 'emailMessage' in kwargs: + email_message = kwargs['emailMessage'] + if email_subject is None and 'emailSubject' in kwargs: + email_subject = kwargs['emailSubject'] + if sms_message is None and 'smsMessage' in kwargs: + sms_message = kwargs['smsMessage'] + if email_message is not None: - pulumi.set(__self__, "email_message", email_message) + _setter("email_message", email_message) if email_subject is not None: - pulumi.set(__self__, "email_subject", email_subject) + _setter("email_subject", email_subject) if sms_message is not None: - pulumi.set(__self__, "sms_message", sms_message) + _setter("sms_message", sms_message) @property @pulumi.getter(name="emailMessage") @@ -1150,16 +1634,45 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics. Conflicts with `application_arn`. :param pulumi.Input[bool] user_data_shared: If set to `true`, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics. """ + UserPoolClientAnalyticsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_arn=application_arn, + application_id=application_id, + external_id=external_id, + role_arn=role_arn, + user_data_shared=user_data_shared, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_arn: Optional[pulumi.Input[str]] = None, + application_id: Optional[pulumi.Input[str]] = None, + external_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + user_data_shared: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_arn is None and 'applicationArn' in kwargs: + application_arn = kwargs['applicationArn'] + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if user_data_shared is None and 'userDataShared' in kwargs: + user_data_shared = kwargs['userDataShared'] + if application_arn is not None: - pulumi.set(__self__, "application_arn", application_arn) + _setter("application_arn", application_arn) if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if user_data_shared is not None: - pulumi.set(__self__, "user_data_shared", user_data_shared) + _setter("user_data_shared", user_data_shared) @property @pulumi.getter(name="applicationArn") @@ -1233,12 +1746,33 @@ def __init__(__self__, *, :param pulumi.Input[str] id_token: Time unit in for the value in `id_token_validity`, defaults to `hours`. :param pulumi.Input[str] refresh_token: Time unit in for the value in `refresh_token_validity`, defaults to `days`. """ + UserPoolClientTokenValidityUnitsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + id_token=id_token, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[pulumi.Input[str]] = None, + id_token: Optional[pulumi.Input[str]] = None, + refresh_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if id_token is None and 'idToken' in kwargs: + id_token = kwargs['idToken'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if id_token is not None: - pulumi.set(__self__, "id_token", id_token) + _setter("id_token", id_token) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -1286,10 +1820,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] challenge_required_on_new_device: Whether a challenge is required on a new device. Only applicable to a new device. :param pulumi.Input[bool] device_only_remembered_on_user_prompt: Whether a device is only remembered on user prompt. `false` equates to "Always" remember, `true` is "User Opt In," and not using a `device_configuration` block is "No." """ + UserPoolDeviceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + challenge_required_on_new_device=challenge_required_on_new_device, + device_only_remembered_on_user_prompt=device_only_remembered_on_user_prompt, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + challenge_required_on_new_device: Optional[pulumi.Input[bool]] = None, + device_only_remembered_on_user_prompt: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if challenge_required_on_new_device is None and 'challengeRequiredOnNewDevice' in kwargs: + challenge_required_on_new_device = kwargs['challengeRequiredOnNewDevice'] + if device_only_remembered_on_user_prompt is None and 'deviceOnlyRememberedOnUserPrompt' in kwargs: + device_only_remembered_on_user_prompt = kwargs['deviceOnlyRememberedOnUserPrompt'] + if challenge_required_on_new_device is not None: - pulumi.set(__self__, "challenge_required_on_new_device", challenge_required_on_new_device) + _setter("challenge_required_on_new_device", challenge_required_on_new_device) if device_only_remembered_on_user_prompt is not None: - pulumi.set(__self__, "device_only_remembered_on_user_prompt", device_only_remembered_on_user_prompt) + _setter("device_only_remembered_on_user_prompt", device_only_remembered_on_user_prompt) @property @pulumi.getter(name="challengeRequiredOnNewDevice") @@ -1331,16 +1882,45 @@ def __init__(__self__, *, :param pulumi.Input[str] reply_to_email_address: REPLY-TO email address. :param pulumi.Input[str] source_arn: ARN of the SES verified email identity to use. Required if `email_sending_account` is set to `DEVELOPER`. """ + UserPoolEmailConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_set=configuration_set, + email_sending_account=email_sending_account, + from_email_address=from_email_address, + reply_to_email_address=reply_to_email_address, + source_arn=source_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_set: Optional[pulumi.Input[str]] = None, + email_sending_account: Optional[pulumi.Input[str]] = None, + from_email_address: Optional[pulumi.Input[str]] = None, + reply_to_email_address: Optional[pulumi.Input[str]] = None, + source_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_set is None and 'configurationSet' in kwargs: + configuration_set = kwargs['configurationSet'] + if email_sending_account is None and 'emailSendingAccount' in kwargs: + email_sending_account = kwargs['emailSendingAccount'] + if from_email_address is None and 'fromEmailAddress' in kwargs: + from_email_address = kwargs['fromEmailAddress'] + if reply_to_email_address is None and 'replyToEmailAddress' in kwargs: + reply_to_email_address = kwargs['replyToEmailAddress'] + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if configuration_set is not None: - pulumi.set(__self__, "configuration_set", configuration_set) + _setter("configuration_set", configuration_set) if email_sending_account is not None: - pulumi.set(__self__, "email_sending_account", email_sending_account) + _setter("email_sending_account", email_sending_account) if from_email_address is not None: - pulumi.set(__self__, "from_email_address", from_email_address) + _setter("from_email_address", from_email_address) if reply_to_email_address is not None: - pulumi.set(__self__, "reply_to_email_address", reply_to_email_address) + _setter("reply_to_email_address", reply_to_email_address) if source_arn is not None: - pulumi.set(__self__, "source_arn", source_arn) + _setter("source_arn", source_arn) @property @pulumi.getter(name="configurationSet") @@ -1434,32 +2014,93 @@ def __init__(__self__, *, :param pulumi.Input[str] user_migration: User migration Lambda config type. :param pulumi.Input[str] verify_auth_challenge_response: Verifies the authentication challenge response. """ + UserPoolLambdaConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create_auth_challenge=create_auth_challenge, + custom_email_sender=custom_email_sender, + custom_message=custom_message, + custom_sms_sender=custom_sms_sender, + define_auth_challenge=define_auth_challenge, + kms_key_id=kms_key_id, + post_authentication=post_authentication, + post_confirmation=post_confirmation, + pre_authentication=pre_authentication, + pre_sign_up=pre_sign_up, + pre_token_generation=pre_token_generation, + user_migration=user_migration, + verify_auth_challenge_response=verify_auth_challenge_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create_auth_challenge: Optional[pulumi.Input[str]] = None, + custom_email_sender: Optional[pulumi.Input['UserPoolLambdaConfigCustomEmailSenderArgs']] = None, + custom_message: Optional[pulumi.Input[str]] = None, + custom_sms_sender: Optional[pulumi.Input['UserPoolLambdaConfigCustomSmsSenderArgs']] = None, + define_auth_challenge: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + post_authentication: Optional[pulumi.Input[str]] = None, + post_confirmation: Optional[pulumi.Input[str]] = None, + pre_authentication: Optional[pulumi.Input[str]] = None, + pre_sign_up: Optional[pulumi.Input[str]] = None, + pre_token_generation: Optional[pulumi.Input[str]] = None, + user_migration: Optional[pulumi.Input[str]] = None, + verify_auth_challenge_response: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_auth_challenge is None and 'createAuthChallenge' in kwargs: + create_auth_challenge = kwargs['createAuthChallenge'] + if custom_email_sender is None and 'customEmailSender' in kwargs: + custom_email_sender = kwargs['customEmailSender'] + if custom_message is None and 'customMessage' in kwargs: + custom_message = kwargs['customMessage'] + if custom_sms_sender is None and 'customSmsSender' in kwargs: + custom_sms_sender = kwargs['customSmsSender'] + if define_auth_challenge is None and 'defineAuthChallenge' in kwargs: + define_auth_challenge = kwargs['defineAuthChallenge'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if post_authentication is None and 'postAuthentication' in kwargs: + post_authentication = kwargs['postAuthentication'] + if post_confirmation is None and 'postConfirmation' in kwargs: + post_confirmation = kwargs['postConfirmation'] + if pre_authentication is None and 'preAuthentication' in kwargs: + pre_authentication = kwargs['preAuthentication'] + if pre_sign_up is None and 'preSignUp' in kwargs: + pre_sign_up = kwargs['preSignUp'] + if pre_token_generation is None and 'preTokenGeneration' in kwargs: + pre_token_generation = kwargs['preTokenGeneration'] + if user_migration is None and 'userMigration' in kwargs: + user_migration = kwargs['userMigration'] + if verify_auth_challenge_response is None and 'verifyAuthChallengeResponse' in kwargs: + verify_auth_challenge_response = kwargs['verifyAuthChallengeResponse'] + if create_auth_challenge is not None: - pulumi.set(__self__, "create_auth_challenge", create_auth_challenge) + _setter("create_auth_challenge", create_auth_challenge) if custom_email_sender is not None: - pulumi.set(__self__, "custom_email_sender", custom_email_sender) + _setter("custom_email_sender", custom_email_sender) if custom_message is not None: - pulumi.set(__self__, "custom_message", custom_message) + _setter("custom_message", custom_message) if custom_sms_sender is not None: - pulumi.set(__self__, "custom_sms_sender", custom_sms_sender) + _setter("custom_sms_sender", custom_sms_sender) if define_auth_challenge is not None: - pulumi.set(__self__, "define_auth_challenge", define_auth_challenge) + _setter("define_auth_challenge", define_auth_challenge) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if post_authentication is not None: - pulumi.set(__self__, "post_authentication", post_authentication) + _setter("post_authentication", post_authentication) if post_confirmation is not None: - pulumi.set(__self__, "post_confirmation", post_confirmation) + _setter("post_confirmation", post_confirmation) if pre_authentication is not None: - pulumi.set(__self__, "pre_authentication", pre_authentication) + _setter("pre_authentication", pre_authentication) if pre_sign_up is not None: - pulumi.set(__self__, "pre_sign_up", pre_sign_up) + _setter("pre_sign_up", pre_sign_up) if pre_token_generation is not None: - pulumi.set(__self__, "pre_token_generation", pre_token_generation) + _setter("pre_token_generation", pre_token_generation) if user_migration is not None: - pulumi.set(__self__, "user_migration", user_migration) + _setter("user_migration", user_migration) if verify_auth_challenge_response is not None: - pulumi.set(__self__, "verify_auth_challenge_response", verify_auth_challenge_response) + _setter("verify_auth_challenge_response", verify_auth_challenge_response) @property @pulumi.getter(name="createAuthChallenge") @@ -1627,8 +2268,29 @@ def __init__(__self__, *, :param pulumi.Input[str] lambda_arn: The Lambda Amazon Resource Name of the Lambda function that Amazon Cognito triggers to send email notifications to users. :param pulumi.Input[str] lambda_version: The Lambda version represents the signature of the "request" attribute in the "event" information Amazon Cognito passes to your custom email Lambda function. The only supported value is `V1_0`. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) - pulumi.set(__self__, "lambda_version", lambda_version) + UserPoolLambdaConfigCustomEmailSenderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + lambda_version=lambda_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[pulumi.Input[str]] = None, + lambda_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if lambda_version is None and 'lambdaVersion' in kwargs: + lambda_version = kwargs['lambdaVersion'] + if lambda_version is None: + raise TypeError("Missing 'lambda_version' argument") + + _setter("lambda_arn", lambda_arn) + _setter("lambda_version", lambda_version) @property @pulumi.getter(name="lambdaArn") @@ -1664,8 +2326,29 @@ def __init__(__self__, *, :param pulumi.Input[str] lambda_arn: The Lambda Amazon Resource Name of the Lambda function that Amazon Cognito triggers to send SMS notifications to users. :param pulumi.Input[str] lambda_version: The Lambda version represents the signature of the "request" attribute in the "event" information Amazon Cognito passes to your custom SMS Lambda function. The only supported value is `V1_0`. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) - pulumi.set(__self__, "lambda_version", lambda_version) + UserPoolLambdaConfigCustomSmsSenderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + lambda_version=lambda_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[pulumi.Input[str]] = None, + lambda_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if lambda_version is None and 'lambdaVersion' in kwargs: + lambda_version = kwargs['lambdaVersion'] + if lambda_version is None: + raise TypeError("Missing 'lambda_version' argument") + + _setter("lambda_arn", lambda_arn) + _setter("lambda_version", lambda_version) @property @pulumi.getter(name="lambdaArn") @@ -1709,18 +2392,51 @@ def __init__(__self__, *, :param pulumi.Input[bool] require_uppercase: Whether you have required users to use at least one uppercase letter in their password. :param pulumi.Input[int] temporary_password_validity_days: In the password policy you have set, refers to the number of days a temporary password is valid. If the user does not sign-in during this time, their password will need to be reset by an administrator. """ + UserPoolPasswordPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + minimum_length=minimum_length, + require_lowercase=require_lowercase, + require_numbers=require_numbers, + require_symbols=require_symbols, + require_uppercase=require_uppercase, + temporary_password_validity_days=temporary_password_validity_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minimum_length: Optional[pulumi.Input[int]] = None, + require_lowercase: Optional[pulumi.Input[bool]] = None, + require_numbers: Optional[pulumi.Input[bool]] = None, + require_symbols: Optional[pulumi.Input[bool]] = None, + require_uppercase: Optional[pulumi.Input[bool]] = None, + temporary_password_validity_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minimum_length is None and 'minimumLength' in kwargs: + minimum_length = kwargs['minimumLength'] + if require_lowercase is None and 'requireLowercase' in kwargs: + require_lowercase = kwargs['requireLowercase'] + if require_numbers is None and 'requireNumbers' in kwargs: + require_numbers = kwargs['requireNumbers'] + if require_symbols is None and 'requireSymbols' in kwargs: + require_symbols = kwargs['requireSymbols'] + if require_uppercase is None and 'requireUppercase' in kwargs: + require_uppercase = kwargs['requireUppercase'] + if temporary_password_validity_days is None and 'temporaryPasswordValidityDays' in kwargs: + temporary_password_validity_days = kwargs['temporaryPasswordValidityDays'] + if minimum_length is not None: - pulumi.set(__self__, "minimum_length", minimum_length) + _setter("minimum_length", minimum_length) if require_lowercase is not None: - pulumi.set(__self__, "require_lowercase", require_lowercase) + _setter("require_lowercase", require_lowercase) if require_numbers is not None: - pulumi.set(__self__, "require_numbers", require_numbers) + _setter("require_numbers", require_numbers) if require_symbols is not None: - pulumi.set(__self__, "require_symbols", require_symbols) + _setter("require_symbols", require_symbols) if require_uppercase is not None: - pulumi.set(__self__, "require_uppercase", require_uppercase) + _setter("require_uppercase", require_uppercase) if temporary_password_validity_days is not None: - pulumi.set(__self__, "temporary_password_validity_days", temporary_password_validity_days) + _setter("temporary_password_validity_days", temporary_password_validity_days) @property @pulumi.getter(name="minimumLength") @@ -1814,18 +2530,53 @@ def __init__(__self__, *, :param pulumi.Input[bool] required: Whether a user pool attribute is required. If the attribute is required and the user does not provide a value, registration or sign-in will fail. :param pulumi.Input['UserPoolSchemaStringAttributeConstraintsArgs'] string_attribute_constraints: Constraints for an attribute of the string type. Detailed below. """ - pulumi.set(__self__, "attribute_data_type", attribute_data_type) - pulumi.set(__self__, "name", name) + UserPoolSchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_data_type=attribute_data_type, + name=name, + developer_only_attribute=developer_only_attribute, + mutable=mutable, + number_attribute_constraints=number_attribute_constraints, + required=required, + string_attribute_constraints=string_attribute_constraints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_data_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + developer_only_attribute: Optional[pulumi.Input[bool]] = None, + mutable: Optional[pulumi.Input[bool]] = None, + number_attribute_constraints: Optional[pulumi.Input['UserPoolSchemaNumberAttributeConstraintsArgs']] = None, + required: Optional[pulumi.Input[bool]] = None, + string_attribute_constraints: Optional[pulumi.Input['UserPoolSchemaStringAttributeConstraintsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_data_type is None and 'attributeDataType' in kwargs: + attribute_data_type = kwargs['attributeDataType'] + if attribute_data_type is None: + raise TypeError("Missing 'attribute_data_type' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if developer_only_attribute is None and 'developerOnlyAttribute' in kwargs: + developer_only_attribute = kwargs['developerOnlyAttribute'] + if number_attribute_constraints is None and 'numberAttributeConstraints' in kwargs: + number_attribute_constraints = kwargs['numberAttributeConstraints'] + if string_attribute_constraints is None and 'stringAttributeConstraints' in kwargs: + string_attribute_constraints = kwargs['stringAttributeConstraints'] + + _setter("attribute_data_type", attribute_data_type) + _setter("name", name) if developer_only_attribute is not None: - pulumi.set(__self__, "developer_only_attribute", developer_only_attribute) + _setter("developer_only_attribute", developer_only_attribute) if mutable is not None: - pulumi.set(__self__, "mutable", mutable) + _setter("mutable", mutable) if number_attribute_constraints is not None: - pulumi.set(__self__, "number_attribute_constraints", number_attribute_constraints) + _setter("number_attribute_constraints", number_attribute_constraints) if required is not None: - pulumi.set(__self__, "required", required) + _setter("required", required) if string_attribute_constraints is not None: - pulumi.set(__self__, "string_attribute_constraints", string_attribute_constraints) + _setter("string_attribute_constraints", string_attribute_constraints) @property @pulumi.getter(name="attributeDataType") @@ -1921,10 +2672,27 @@ def __init__(__self__, *, :param pulumi.Input[str] max_value: Maximum value of an attribute that is of the number data type. :param pulumi.Input[str] min_value: Minimum value of an attribute that is of the number data type. """ + UserPoolSchemaNumberAttributeConstraintsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_value=max_value, + min_value=min_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_value: Optional[pulumi.Input[str]] = None, + min_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_value is None and 'maxValue' in kwargs: + max_value = kwargs['maxValue'] + if min_value is None and 'minValue' in kwargs: + min_value = kwargs['minValue'] + if max_value is not None: - pulumi.set(__self__, "max_value", max_value) + _setter("max_value", max_value) if min_value is not None: - pulumi.set(__self__, "min_value", min_value) + _setter("min_value", min_value) @property @pulumi.getter(name="maxValue") @@ -1960,10 +2728,27 @@ def __init__(__self__, *, :param pulumi.Input[str] max_length: Maximum length of an attribute value of the string type. :param pulumi.Input[str] min_length: Minimum length of an attribute value of the string type. """ + UserPoolSchemaStringAttributeConstraintsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_length=max_length, + min_length=min_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_length: Optional[pulumi.Input[str]] = None, + min_length: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_length is None and 'maxLength' in kwargs: + max_length = kwargs['maxLength'] + if min_length is None and 'minLength' in kwargs: + min_length = kwargs['minLength'] + if max_length is not None: - pulumi.set(__self__, "max_length", max_length) + _setter("max_length", max_length) if min_length is not None: - pulumi.set(__self__, "min_length", min_length) + _setter("min_length", min_length) @property @pulumi.getter(name="maxLength") @@ -2001,10 +2786,35 @@ def __init__(__self__, *, :param pulumi.Input[str] sns_caller_arn: ARN of the Amazon SNS caller. This is usually the IAM role that you've given Cognito permission to assume. :param pulumi.Input[str] sns_region: The AWS Region to use with Amazon SNS integration. You can choose the same Region as your user pool, or a supported Legacy Amazon SNS alternate Region. Amazon Cognito resources in the Asia Pacific (Seoul) AWS Region must use your Amazon SNS configuration in the Asia Pacific (Tokyo) Region. For more information, see [SMS message settings for Amazon Cognito user pools](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html). """ - pulumi.set(__self__, "external_id", external_id) - pulumi.set(__self__, "sns_caller_arn", sns_caller_arn) + UserPoolSmsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_id=external_id, + sns_caller_arn=sns_caller_arn, + sns_region=sns_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_id: Optional[pulumi.Input[str]] = None, + sns_caller_arn: Optional[pulumi.Input[str]] = None, + sns_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if external_id is None: + raise TypeError("Missing 'external_id' argument") + if sns_caller_arn is None and 'snsCallerArn' in kwargs: + sns_caller_arn = kwargs['snsCallerArn'] + if sns_caller_arn is None: + raise TypeError("Missing 'sns_caller_arn' argument") + if sns_region is None and 'snsRegion' in kwargs: + sns_region = kwargs['snsRegion'] + + _setter("external_id", external_id) + _setter("sns_caller_arn", sns_caller_arn) if sns_region is not None: - pulumi.set(__self__, "sns_region", sns_region) + _setter("sns_region", sns_region) @property @pulumi.getter(name="externalId") @@ -2050,7 +2860,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Boolean whether to enable software token Multi-Factor (MFA) tokens, such as Time-based One-Time Password (TOTP). To disable software token MFA When `sms_configuration` is not present, the `mfa_configuration` argument must be set to `OFF` and the `software_token_mfa_configuration` configuration block must be fully removed. """ - pulumi.set(__self__, "enabled", enabled) + UserPoolSoftwareTokenMfaConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -2072,7 +2895,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] attributes_require_verification_before_updates: A list of attributes requiring verification before update. If set, the provided value(s) must also be set in `auto_verified_attributes`. Valid values: `email`, `phone_number`. """ - pulumi.set(__self__, "attributes_require_verification_before_updates", attributes_require_verification_before_updates) + UserPoolUserAttributeUpdateSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes_require_verification_before_updates=attributes_require_verification_before_updates, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes_require_verification_before_updates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attributes_require_verification_before_updates is None and 'attributesRequireVerificationBeforeUpdates' in kwargs: + attributes_require_verification_before_updates = kwargs['attributesRequireVerificationBeforeUpdates'] + if attributes_require_verification_before_updates is None: + raise TypeError("Missing 'attributes_require_verification_before_updates' argument") + + _setter("attributes_require_verification_before_updates", attributes_require_verification_before_updates) @property @pulumi.getter(name="attributesRequireVerificationBeforeUpdates") @@ -2094,7 +2932,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] advanced_security_mode: Mode for advanced security, must be one of `OFF`, `AUDIT` or `ENFORCED`. """ - pulumi.set(__self__, "advanced_security_mode", advanced_security_mode) + UserPoolUserPoolAddOnsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + advanced_security_mode=advanced_security_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + advanced_security_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if advanced_security_mode is None and 'advancedSecurityMode' in kwargs: + advanced_security_mode = kwargs['advancedSecurityMode'] + if advanced_security_mode is None: + raise TypeError("Missing 'advanced_security_mode' argument") + + _setter("advanced_security_mode", advanced_security_mode) @property @pulumi.getter(name="advancedSecurityMode") @@ -2116,7 +2969,22 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] case_sensitive: Whether username case sensitivity will be applied for all users in the user pool through Cognito APIs. """ - pulumi.set(__self__, "case_sensitive", case_sensitive) + UserPoolUsernameConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + case_sensitive=case_sensitive, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + case_sensitive: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if case_sensitive is None and 'caseSensitive' in kwargs: + case_sensitive = kwargs['caseSensitive'] + if case_sensitive is None: + raise TypeError("Missing 'case_sensitive' argument") + + _setter("case_sensitive", case_sensitive) @property @pulumi.getter(name="caseSensitive") @@ -2148,18 +3016,51 @@ def __init__(__self__, *, :param pulumi.Input[str] email_subject_by_link: Subject line for the email message template for sending a confirmation link to the user. :param pulumi.Input[str] sms_message: SMS message template. Must contain the `{####}` placeholder. Conflicts with `sms_verification_message` argument. """ + UserPoolVerificationMessageTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_email_option=default_email_option, + email_message=email_message, + email_message_by_link=email_message_by_link, + email_subject=email_subject, + email_subject_by_link=email_subject_by_link, + sms_message=sms_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_email_option: Optional[pulumi.Input[str]] = None, + email_message: Optional[pulumi.Input[str]] = None, + email_message_by_link: Optional[pulumi.Input[str]] = None, + email_subject: Optional[pulumi.Input[str]] = None, + email_subject_by_link: Optional[pulumi.Input[str]] = None, + sms_message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_email_option is None and 'defaultEmailOption' in kwargs: + default_email_option = kwargs['defaultEmailOption'] + if email_message is None and 'emailMessage' in kwargs: + email_message = kwargs['emailMessage'] + if email_message_by_link is None and 'emailMessageByLink' in kwargs: + email_message_by_link = kwargs['emailMessageByLink'] + if email_subject is None and 'emailSubject' in kwargs: + email_subject = kwargs['emailSubject'] + if email_subject_by_link is None and 'emailSubjectByLink' in kwargs: + email_subject_by_link = kwargs['emailSubjectByLink'] + if sms_message is None and 'smsMessage' in kwargs: + sms_message = kwargs['smsMessage'] + if default_email_option is not None: - pulumi.set(__self__, "default_email_option", default_email_option) + _setter("default_email_option", default_email_option) if email_message is not None: - pulumi.set(__self__, "email_message", email_message) + _setter("email_message", email_message) if email_message_by_link is not None: - pulumi.set(__self__, "email_message_by_link", email_message_by_link) + _setter("email_message_by_link", email_message_by_link) if email_subject is not None: - pulumi.set(__self__, "email_subject", email_subject) + _setter("email_subject", email_subject) if email_subject_by_link is not None: - pulumi.set(__self__, "email_subject_by_link", email_subject_by_link) + _setter("email_subject_by_link", email_subject_by_link) if sms_message is not None: - pulumi.set(__self__, "sms_message", sms_message) + _setter("sms_message", sms_message) @property @pulumi.getter(name="defaultEmailOption") diff --git a/sdk/python/pulumi_aws/cognito/get_identity_pool.py b/sdk/python/pulumi_aws/cognito/get_identity_pool.py index d0a18e2e60b..92a757e7340 100644 --- a/sdk/python/pulumi_aws/cognito/get_identity_pool.py +++ b/sdk/python/pulumi_aws/cognito/get_identity_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/cognito/get_user_pool_client.py b/sdk/python/pulumi_aws/cognito/get_user_pool_client.py index f6e4f71f929..a5d3238e78c 100644 --- a/sdk/python/pulumi_aws/cognito/get_user_pool_client.py +++ b/sdk/python/pulumi_aws/cognito/get_user_pool_client.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/cognito/get_user_pool_clients.py b/sdk/python/pulumi_aws/cognito/get_user_pool_clients.py index 59dc667a70b..5541df3c6b7 100644 --- a/sdk/python/pulumi_aws/cognito/get_user_pool_clients.py +++ b/sdk/python/pulumi_aws/cognito/get_user_pool_clients.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cognito/get_user_pool_signing_certificate.py b/sdk/python/pulumi_aws/cognito/get_user_pool_signing_certificate.py index 5b147c010c6..06b1b3eaec3 100644 --- a/sdk/python/pulumi_aws/cognito/get_user_pool_signing_certificate.py +++ b/sdk/python/pulumi_aws/cognito/get_user_pool_signing_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cognito/get_user_pools.py b/sdk/python/pulumi_aws/cognito/get_user_pools.py index 797aacefdec..088d460d672 100644 --- a/sdk/python/pulumi_aws/cognito/get_user_pools.py +++ b/sdk/python/pulumi_aws/cognito/get_user_pools.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cognito/identity_pool.py b/sdk/python/pulumi_aws/cognito/identity_pool.py index bda13648ecd..db68543901a 100644 --- a/sdk/python/pulumi_aws/cognito/identity_pool.py +++ b/sdk/python/pulumi_aws/cognito/identity_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -38,23 +38,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] supported_login_providers: Key-Value pairs mapping provider names to provider app IDs. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the Identity Pool. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "identity_pool_name", identity_pool_name) + IdentityPoolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_pool_name=identity_pool_name, + allow_classic_flow=allow_classic_flow, + allow_unauthenticated_identities=allow_unauthenticated_identities, + cognito_identity_providers=cognito_identity_providers, + developer_provider_name=developer_provider_name, + openid_connect_provider_arns=openid_connect_provider_arns, + saml_provider_arns=saml_provider_arns, + supported_login_providers=supported_login_providers, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_pool_name: Optional[pulumi.Input[str]] = None, + allow_classic_flow: Optional[pulumi.Input[bool]] = None, + allow_unauthenticated_identities: Optional[pulumi.Input[bool]] = None, + cognito_identity_providers: Optional[pulumi.Input[Sequence[pulumi.Input['IdentityPoolCognitoIdentityProviderArgs']]]] = None, + developer_provider_name: Optional[pulumi.Input[str]] = None, + openid_connect_provider_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + saml_provider_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + supported_login_providers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_pool_name is None and 'identityPoolName' in kwargs: + identity_pool_name = kwargs['identityPoolName'] + if identity_pool_name is None: + raise TypeError("Missing 'identity_pool_name' argument") + if allow_classic_flow is None and 'allowClassicFlow' in kwargs: + allow_classic_flow = kwargs['allowClassicFlow'] + if allow_unauthenticated_identities is None and 'allowUnauthenticatedIdentities' in kwargs: + allow_unauthenticated_identities = kwargs['allowUnauthenticatedIdentities'] + if cognito_identity_providers is None and 'cognitoIdentityProviders' in kwargs: + cognito_identity_providers = kwargs['cognitoIdentityProviders'] + if developer_provider_name is None and 'developerProviderName' in kwargs: + developer_provider_name = kwargs['developerProviderName'] + if openid_connect_provider_arns is None and 'openidConnectProviderArns' in kwargs: + openid_connect_provider_arns = kwargs['openidConnectProviderArns'] + if saml_provider_arns is None and 'samlProviderArns' in kwargs: + saml_provider_arns = kwargs['samlProviderArns'] + if supported_login_providers is None and 'supportedLoginProviders' in kwargs: + supported_login_providers = kwargs['supportedLoginProviders'] + + _setter("identity_pool_name", identity_pool_name) if allow_classic_flow is not None: - pulumi.set(__self__, "allow_classic_flow", allow_classic_flow) + _setter("allow_classic_flow", allow_classic_flow) if allow_unauthenticated_identities is not None: - pulumi.set(__self__, "allow_unauthenticated_identities", allow_unauthenticated_identities) + _setter("allow_unauthenticated_identities", allow_unauthenticated_identities) if cognito_identity_providers is not None: - pulumi.set(__self__, "cognito_identity_providers", cognito_identity_providers) + _setter("cognito_identity_providers", cognito_identity_providers) if developer_provider_name is not None: - pulumi.set(__self__, "developer_provider_name", developer_provider_name) + _setter("developer_provider_name", developer_provider_name) if openid_connect_provider_arns is not None: - pulumi.set(__self__, "openid_connect_provider_arns", openid_connect_provider_arns) + _setter("openid_connect_provider_arns", openid_connect_provider_arns) if saml_provider_arns is not None: - pulumi.set(__self__, "saml_provider_arns", saml_provider_arns) + _setter("saml_provider_arns", saml_provider_arns) if supported_login_providers is not None: - pulumi.set(__self__, "supported_login_providers", supported_login_providers) + _setter("supported_login_providers", supported_login_providers) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="identityPoolName") @@ -195,31 +240,80 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the Identity Pool. 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. """ + _IdentityPoolState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_classic_flow=allow_classic_flow, + allow_unauthenticated_identities=allow_unauthenticated_identities, + arn=arn, + cognito_identity_providers=cognito_identity_providers, + developer_provider_name=developer_provider_name, + identity_pool_name=identity_pool_name, + openid_connect_provider_arns=openid_connect_provider_arns, + saml_provider_arns=saml_provider_arns, + supported_login_providers=supported_login_providers, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_classic_flow: Optional[pulumi.Input[bool]] = None, + allow_unauthenticated_identities: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + cognito_identity_providers: Optional[pulumi.Input[Sequence[pulumi.Input['IdentityPoolCognitoIdentityProviderArgs']]]] = None, + developer_provider_name: Optional[pulumi.Input[str]] = None, + identity_pool_name: Optional[pulumi.Input[str]] = None, + openid_connect_provider_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + saml_provider_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + supported_login_providers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_classic_flow is None and 'allowClassicFlow' in kwargs: + allow_classic_flow = kwargs['allowClassicFlow'] + if allow_unauthenticated_identities is None and 'allowUnauthenticatedIdentities' in kwargs: + allow_unauthenticated_identities = kwargs['allowUnauthenticatedIdentities'] + if cognito_identity_providers is None and 'cognitoIdentityProviders' in kwargs: + cognito_identity_providers = kwargs['cognitoIdentityProviders'] + if developer_provider_name is None and 'developerProviderName' in kwargs: + developer_provider_name = kwargs['developerProviderName'] + if identity_pool_name is None and 'identityPoolName' in kwargs: + identity_pool_name = kwargs['identityPoolName'] + if openid_connect_provider_arns is None and 'openidConnectProviderArns' in kwargs: + openid_connect_provider_arns = kwargs['openidConnectProviderArns'] + if saml_provider_arns is None and 'samlProviderArns' in kwargs: + saml_provider_arns = kwargs['samlProviderArns'] + if supported_login_providers is None and 'supportedLoginProviders' in kwargs: + supported_login_providers = kwargs['supportedLoginProviders'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if allow_classic_flow is not None: - pulumi.set(__self__, "allow_classic_flow", allow_classic_flow) + _setter("allow_classic_flow", allow_classic_flow) if allow_unauthenticated_identities is not None: - pulumi.set(__self__, "allow_unauthenticated_identities", allow_unauthenticated_identities) + _setter("allow_unauthenticated_identities", allow_unauthenticated_identities) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cognito_identity_providers is not None: - pulumi.set(__self__, "cognito_identity_providers", cognito_identity_providers) + _setter("cognito_identity_providers", cognito_identity_providers) if developer_provider_name is not None: - pulumi.set(__self__, "developer_provider_name", developer_provider_name) + _setter("developer_provider_name", developer_provider_name) if identity_pool_name is not None: - pulumi.set(__self__, "identity_pool_name", identity_pool_name) + _setter("identity_pool_name", identity_pool_name) if openid_connect_provider_arns is not None: - pulumi.set(__self__, "openid_connect_provider_arns", openid_connect_provider_arns) + _setter("openid_connect_provider_arns", openid_connect_provider_arns) if saml_provider_arns is not None: - pulumi.set(__self__, "saml_provider_arns", saml_provider_arns) + _setter("saml_provider_arns", saml_provider_arns) if supported_login_providers is not None: - pulumi.set(__self__, "supported_login_providers", supported_login_providers) + _setter("supported_login_providers", supported_login_providers) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="allowClassicFlow") @@ -486,6 +580,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IdentityPoolArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cognito/identity_pool_provider_principal_tag.py b/sdk/python/pulumi_aws/cognito/identity_pool_provider_principal_tag.py index da85cf75fb8..652666582ac 100644 --- a/sdk/python/pulumi_aws/cognito/identity_pool_provider_principal_tag.py +++ b/sdk/python/pulumi_aws/cognito/identity_pool_provider_principal_tag.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['IdentityPoolProviderPrincipalTagArgs', 'IdentityPoolProviderPrincipalTag'] @@ -25,12 +25,41 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] principal_tags: String to string map of variables. :param pulumi.Input[bool] use_defaults: use default (username and clientID) attribute mappings. """ - pulumi.set(__self__, "identity_pool_id", identity_pool_id) - pulumi.set(__self__, "identity_provider_name", identity_provider_name) + IdentityPoolProviderPrincipalTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_pool_id=identity_pool_id, + identity_provider_name=identity_provider_name, + principal_tags=principal_tags, + use_defaults=use_defaults, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_pool_id: Optional[pulumi.Input[str]] = None, + identity_provider_name: Optional[pulumi.Input[str]] = None, + principal_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_defaults: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if identity_pool_id is None: + raise TypeError("Missing 'identity_pool_id' argument") + if identity_provider_name is None and 'identityProviderName' in kwargs: + identity_provider_name = kwargs['identityProviderName'] + if identity_provider_name is None: + raise TypeError("Missing 'identity_provider_name' argument") + if principal_tags is None and 'principalTags' in kwargs: + principal_tags = kwargs['principalTags'] + if use_defaults is None and 'useDefaults' in kwargs: + use_defaults = kwargs['useDefaults'] + + _setter("identity_pool_id", identity_pool_id) + _setter("identity_provider_name", identity_provider_name) if principal_tags is not None: - pulumi.set(__self__, "principal_tags", principal_tags) + _setter("principal_tags", principal_tags) if use_defaults is not None: - pulumi.set(__self__, "use_defaults", use_defaults) + _setter("use_defaults", use_defaults) @property @pulumi.getter(name="identityPoolId") @@ -95,14 +124,39 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] principal_tags: String to string map of variables. :param pulumi.Input[bool] use_defaults: use default (username and clientID) attribute mappings. """ + _IdentityPoolProviderPrincipalTagState._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_pool_id=identity_pool_id, + identity_provider_name=identity_provider_name, + principal_tags=principal_tags, + use_defaults=use_defaults, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_pool_id: Optional[pulumi.Input[str]] = None, + identity_provider_name: Optional[pulumi.Input[str]] = None, + principal_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_defaults: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if identity_provider_name is None and 'identityProviderName' in kwargs: + identity_provider_name = kwargs['identityProviderName'] + if principal_tags is None and 'principalTags' in kwargs: + principal_tags = kwargs['principalTags'] + if use_defaults is None and 'useDefaults' in kwargs: + use_defaults = kwargs['useDefaults'] + if identity_pool_id is not None: - pulumi.set(__self__, "identity_pool_id", identity_pool_id) + _setter("identity_pool_id", identity_pool_id) if identity_provider_name is not None: - pulumi.set(__self__, "identity_provider_name", identity_provider_name) + _setter("identity_provider_name", identity_provider_name) if principal_tags is not None: - pulumi.set(__self__, "principal_tags", principal_tags) + _setter("principal_tags", principal_tags) if use_defaults is not None: - pulumi.set(__self__, "use_defaults", use_defaults) + _setter("use_defaults", use_defaults) @property @pulumi.getter(name="identityPoolId") @@ -208,6 +262,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IdentityPoolProviderPrincipalTagArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cognito/identity_pool_role_attachment.py b/sdk/python/pulumi_aws/cognito/identity_pool_role_attachment.py index 33d161690e0..a8648f264a3 100644 --- a/sdk/python/pulumi_aws/cognito/identity_pool_role_attachment.py +++ b/sdk/python/pulumi_aws/cognito/identity_pool_role_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,33 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] roles: The map of roles associated with this pool. For a given role, the key will be either "authenticated" or "unauthenticated" and the value will be the Role ARN. :param pulumi.Input[Sequence[pulumi.Input['IdentityPoolRoleAttachmentRoleMappingArgs']]] role_mappings: A List of Role Mapping. """ - pulumi.set(__self__, "identity_pool_id", identity_pool_id) - pulumi.set(__self__, "roles", roles) + IdentityPoolRoleAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_pool_id=identity_pool_id, + roles=roles, + role_mappings=role_mappings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_pool_id: Optional[pulumi.Input[str]] = None, + roles: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + role_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['IdentityPoolRoleAttachmentRoleMappingArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if identity_pool_id is None: + raise TypeError("Missing 'identity_pool_id' argument") + if roles is None: + raise TypeError("Missing 'roles' argument") + if role_mappings is None and 'roleMappings' in kwargs: + role_mappings = kwargs['roleMappings'] + + _setter("identity_pool_id", identity_pool_id) + _setter("roles", roles) if role_mappings is not None: - pulumi.set(__self__, "role_mappings", role_mappings) + _setter("role_mappings", role_mappings) @property @pulumi.getter(name="identityPoolId") @@ -79,12 +102,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['IdentityPoolRoleAttachmentRoleMappingArgs']]] role_mappings: A List of Role Mapping. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] roles: The map of roles associated with this pool. For a given role, the key will be either "authenticated" or "unauthenticated" and the value will be the Role ARN. """ + _IdentityPoolRoleAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_pool_id=identity_pool_id, + role_mappings=role_mappings, + roles=roles, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_pool_id: Optional[pulumi.Input[str]] = None, + role_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['IdentityPoolRoleAttachmentRoleMappingArgs']]]] = None, + roles: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if role_mappings is None and 'roleMappings' in kwargs: + role_mappings = kwargs['roleMappings'] + if identity_pool_id is not None: - pulumi.set(__self__, "identity_pool_id", identity_pool_id) + _setter("identity_pool_id", identity_pool_id) if role_mappings is not None: - pulumi.set(__self__, "role_mappings", role_mappings) + _setter("role_mappings", role_mappings) if roles is not None: - pulumi.set(__self__, "roles", roles) + _setter("roles", roles) @property @pulumi.getter(name="identityPoolId") @@ -176,6 +218,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IdentityPoolRoleAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cognito/identity_provider.py b/sdk/python/pulumi_aws/cognito/identity_provider.py index b6e3b0c1508..e59209793d1 100644 --- a/sdk/python/pulumi_aws/cognito/identity_provider.py +++ b/sdk/python/pulumi_aws/cognito/identity_provider.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['IdentityProviderArgs', 'IdentityProvider'] @@ -29,14 +29,55 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] attribute_mapping: The map of attribute mapping of user pool attributes. [AttributeMapping in AWS API documentation](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html#CognitoUserPools-CreateIdentityProvider-request-AttributeMapping) :param pulumi.Input[Sequence[pulumi.Input[str]]] idp_identifiers: The list of identity providers. """ - pulumi.set(__self__, "provider_details", provider_details) - pulumi.set(__self__, "provider_name", provider_name) - pulumi.set(__self__, "provider_type", provider_type) - pulumi.set(__self__, "user_pool_id", user_pool_id) + IdentityProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + provider_details=provider_details, + provider_name=provider_name, + provider_type=provider_type, + user_pool_id=user_pool_id, + attribute_mapping=attribute_mapping, + idp_identifiers=idp_identifiers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provider_details: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + attribute_mapping: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + idp_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider_details is None and 'providerDetails' in kwargs: + provider_details = kwargs['providerDetails'] + if provider_details is None: + raise TypeError("Missing 'provider_details' argument") + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if provider_name is None: + raise TypeError("Missing 'provider_name' argument") + if provider_type is None and 'providerType' in kwargs: + provider_type = kwargs['providerType'] + if provider_type is None: + raise TypeError("Missing 'provider_type' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if attribute_mapping is None and 'attributeMapping' in kwargs: + attribute_mapping = kwargs['attributeMapping'] + if idp_identifiers is None and 'idpIdentifiers' in kwargs: + idp_identifiers = kwargs['idpIdentifiers'] + + _setter("provider_details", provider_details) + _setter("provider_name", provider_name) + _setter("provider_type", provider_type) + _setter("user_pool_id", user_pool_id) if attribute_mapping is not None: - pulumi.set(__self__, "attribute_mapping", attribute_mapping) + _setter("attribute_mapping", attribute_mapping) if idp_identifiers is not None: - pulumi.set(__self__, "idp_identifiers", idp_identifiers) + _setter("idp_identifiers", idp_identifiers) @property @pulumi.getter(name="providerDetails") @@ -129,18 +170,51 @@ def __init__(__self__, *, :param pulumi.Input[str] provider_type: The provider type. [See AWS API for valid values](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html#CognitoUserPools-CreateIdentityProvider-request-ProviderType) :param pulumi.Input[str] user_pool_id: The user pool id """ + _IdentityProviderState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_mapping=attribute_mapping, + idp_identifiers=idp_identifiers, + provider_details=provider_details, + provider_name=provider_name, + provider_type=provider_type, + user_pool_id=user_pool_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_mapping: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + idp_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + provider_details: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_mapping is None and 'attributeMapping' in kwargs: + attribute_mapping = kwargs['attributeMapping'] + if idp_identifiers is None and 'idpIdentifiers' in kwargs: + idp_identifiers = kwargs['idpIdentifiers'] + if provider_details is None and 'providerDetails' in kwargs: + provider_details = kwargs['providerDetails'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if provider_type is None and 'providerType' in kwargs: + provider_type = kwargs['providerType'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if attribute_mapping is not None: - pulumi.set(__self__, "attribute_mapping", attribute_mapping) + _setter("attribute_mapping", attribute_mapping) if idp_identifiers is not None: - pulumi.set(__self__, "idp_identifiers", idp_identifiers) + _setter("idp_identifiers", idp_identifiers) if provider_details is not None: - pulumi.set(__self__, "provider_details", provider_details) + _setter("provider_details", provider_details) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if provider_type is not None: - pulumi.set(__self__, "provider_type", provider_type) + _setter("provider_type", provider_type) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) @property @pulumi.getter(name="attributeMapping") @@ -318,6 +392,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IdentityProviderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cognito/managed_user_pool_client.py b/sdk/python/pulumi_aws/cognito/managed_user_pool_client.py index a4b9b08a74e..7df4a939de5 100644 --- a/sdk/python/pulumi_aws/cognito/managed_user_pool_client.py +++ b/sdk/python/pulumi_aws/cognito/managed_user_pool_client.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -65,49 +65,148 @@ def __init__(__self__, *, :param pulumi.Input['ManagedUserPoolClientTokenValidityUnitsArgs'] token_validity_units: Configuration block for representing the validity times in units. See details below. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[str]]] write_attributes: List of user pool attributes that the application client can write to. """ - pulumi.set(__self__, "user_pool_id", user_pool_id) + ManagedUserPoolClientArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_id=user_pool_id, + access_token_validity=access_token_validity, + allowed_oauth_flows=allowed_oauth_flows, + allowed_oauth_flows_user_pool_client=allowed_oauth_flows_user_pool_client, + allowed_oauth_scopes=allowed_oauth_scopes, + analytics_configuration=analytics_configuration, + auth_session_validity=auth_session_validity, + callback_urls=callback_urls, + default_redirect_uri=default_redirect_uri, + enable_propagate_additional_user_context_data=enable_propagate_additional_user_context_data, + enable_token_revocation=enable_token_revocation, + explicit_auth_flows=explicit_auth_flows, + id_token_validity=id_token_validity, + logout_urls=logout_urls, + name_pattern=name_pattern, + name_prefix=name_prefix, + prevent_user_existence_errors=prevent_user_existence_errors, + read_attributes=read_attributes, + refresh_token_validity=refresh_token_validity, + supported_identity_providers=supported_identity_providers, + token_validity_units=token_validity_units, + write_attributes=write_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_id: Optional[pulumi.Input[str]] = None, + access_token_validity: Optional[pulumi.Input[int]] = None, + allowed_oauth_flows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_oauth_flows_user_pool_client: Optional[pulumi.Input[bool]] = None, + allowed_oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + analytics_configuration: Optional[pulumi.Input['ManagedUserPoolClientAnalyticsConfigurationArgs']] = None, + auth_session_validity: Optional[pulumi.Input[int]] = None, + callback_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_redirect_uri: Optional[pulumi.Input[str]] = None, + enable_propagate_additional_user_context_data: Optional[pulumi.Input[bool]] = None, + enable_token_revocation: Optional[pulumi.Input[bool]] = None, + explicit_auth_flows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + id_token_validity: Optional[pulumi.Input[int]] = None, + logout_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name_pattern: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + prevent_user_existence_errors: Optional[pulumi.Input[str]] = None, + read_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + refresh_token_validity: Optional[pulumi.Input[int]] = None, + supported_identity_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_validity_units: Optional[pulumi.Input['ManagedUserPoolClientTokenValidityUnitsArgs']] = None, + write_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if access_token_validity is None and 'accessTokenValidity' in kwargs: + access_token_validity = kwargs['accessTokenValidity'] + if allowed_oauth_flows is None and 'allowedOauthFlows' in kwargs: + allowed_oauth_flows = kwargs['allowedOauthFlows'] + if allowed_oauth_flows_user_pool_client is None and 'allowedOauthFlowsUserPoolClient' in kwargs: + allowed_oauth_flows_user_pool_client = kwargs['allowedOauthFlowsUserPoolClient'] + if allowed_oauth_scopes is None and 'allowedOauthScopes' in kwargs: + allowed_oauth_scopes = kwargs['allowedOauthScopes'] + if analytics_configuration is None and 'analyticsConfiguration' in kwargs: + analytics_configuration = kwargs['analyticsConfiguration'] + if auth_session_validity is None and 'authSessionValidity' in kwargs: + auth_session_validity = kwargs['authSessionValidity'] + if callback_urls is None and 'callbackUrls' in kwargs: + callback_urls = kwargs['callbackUrls'] + if default_redirect_uri is None and 'defaultRedirectUri' in kwargs: + default_redirect_uri = kwargs['defaultRedirectUri'] + if enable_propagate_additional_user_context_data is None and 'enablePropagateAdditionalUserContextData' in kwargs: + enable_propagate_additional_user_context_data = kwargs['enablePropagateAdditionalUserContextData'] + if enable_token_revocation is None and 'enableTokenRevocation' in kwargs: + enable_token_revocation = kwargs['enableTokenRevocation'] + if explicit_auth_flows is None and 'explicitAuthFlows' in kwargs: + explicit_auth_flows = kwargs['explicitAuthFlows'] + if id_token_validity is None and 'idTokenValidity' in kwargs: + id_token_validity = kwargs['idTokenValidity'] + if logout_urls is None and 'logoutUrls' in kwargs: + logout_urls = kwargs['logoutUrls'] + if name_pattern is None and 'namePattern' in kwargs: + name_pattern = kwargs['namePattern'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if prevent_user_existence_errors is None and 'preventUserExistenceErrors' in kwargs: + prevent_user_existence_errors = kwargs['preventUserExistenceErrors'] + if read_attributes is None and 'readAttributes' in kwargs: + read_attributes = kwargs['readAttributes'] + if refresh_token_validity is None and 'refreshTokenValidity' in kwargs: + refresh_token_validity = kwargs['refreshTokenValidity'] + if supported_identity_providers is None and 'supportedIdentityProviders' in kwargs: + supported_identity_providers = kwargs['supportedIdentityProviders'] + if token_validity_units is None and 'tokenValidityUnits' in kwargs: + token_validity_units = kwargs['tokenValidityUnits'] + if write_attributes is None and 'writeAttributes' in kwargs: + write_attributes = kwargs['writeAttributes'] + + _setter("user_pool_id", user_pool_id) if access_token_validity is not None: - pulumi.set(__self__, "access_token_validity", access_token_validity) + _setter("access_token_validity", access_token_validity) if allowed_oauth_flows is not None: - pulumi.set(__self__, "allowed_oauth_flows", allowed_oauth_flows) + _setter("allowed_oauth_flows", allowed_oauth_flows) if allowed_oauth_flows_user_pool_client is not None: - pulumi.set(__self__, "allowed_oauth_flows_user_pool_client", allowed_oauth_flows_user_pool_client) + _setter("allowed_oauth_flows_user_pool_client", allowed_oauth_flows_user_pool_client) if allowed_oauth_scopes is not None: - pulumi.set(__self__, "allowed_oauth_scopes", allowed_oauth_scopes) + _setter("allowed_oauth_scopes", allowed_oauth_scopes) if analytics_configuration is not None: - pulumi.set(__self__, "analytics_configuration", analytics_configuration) + _setter("analytics_configuration", analytics_configuration) if auth_session_validity is not None: - pulumi.set(__self__, "auth_session_validity", auth_session_validity) + _setter("auth_session_validity", auth_session_validity) if callback_urls is not None: - pulumi.set(__self__, "callback_urls", callback_urls) + _setter("callback_urls", callback_urls) if default_redirect_uri is not None: - pulumi.set(__self__, "default_redirect_uri", default_redirect_uri) + _setter("default_redirect_uri", default_redirect_uri) if enable_propagate_additional_user_context_data is not None: - pulumi.set(__self__, "enable_propagate_additional_user_context_data", enable_propagate_additional_user_context_data) + _setter("enable_propagate_additional_user_context_data", enable_propagate_additional_user_context_data) if enable_token_revocation is not None: - pulumi.set(__self__, "enable_token_revocation", enable_token_revocation) + _setter("enable_token_revocation", enable_token_revocation) if explicit_auth_flows is not None: - pulumi.set(__self__, "explicit_auth_flows", explicit_auth_flows) + _setter("explicit_auth_flows", explicit_auth_flows) if id_token_validity is not None: - pulumi.set(__self__, "id_token_validity", id_token_validity) + _setter("id_token_validity", id_token_validity) if logout_urls is not None: - pulumi.set(__self__, "logout_urls", logout_urls) + _setter("logout_urls", logout_urls) if name_pattern is not None: - pulumi.set(__self__, "name_pattern", name_pattern) + _setter("name_pattern", name_pattern) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if prevent_user_existence_errors is not None: - pulumi.set(__self__, "prevent_user_existence_errors", prevent_user_existence_errors) + _setter("prevent_user_existence_errors", prevent_user_existence_errors) if read_attributes is not None: - pulumi.set(__self__, "read_attributes", read_attributes) + _setter("read_attributes", read_attributes) if refresh_token_validity is not None: - pulumi.set(__self__, "refresh_token_validity", refresh_token_validity) + _setter("refresh_token_validity", refresh_token_validity) if supported_identity_providers is not None: - pulumi.set(__self__, "supported_identity_providers", supported_identity_providers) + _setter("supported_identity_providers", supported_identity_providers) if token_validity_units is not None: - pulumi.set(__self__, "token_validity_units", token_validity_units) + _setter("token_validity_units", token_validity_units) if write_attributes is not None: - pulumi.set(__self__, "write_attributes", write_attributes) + _setter("write_attributes", write_attributes) @property @pulumi.getter(name="userPoolId") @@ -432,54 +531,157 @@ def __init__(__self__, *, :param pulumi.Input[str] user_pool_id: User pool that the client belongs to. :param pulumi.Input[Sequence[pulumi.Input[str]]] write_attributes: List of user pool attributes that the application client can write to. """ + _ManagedUserPoolClientState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token_validity=access_token_validity, + allowed_oauth_flows=allowed_oauth_flows, + allowed_oauth_flows_user_pool_client=allowed_oauth_flows_user_pool_client, + allowed_oauth_scopes=allowed_oauth_scopes, + analytics_configuration=analytics_configuration, + auth_session_validity=auth_session_validity, + callback_urls=callback_urls, + client_secret=client_secret, + default_redirect_uri=default_redirect_uri, + enable_propagate_additional_user_context_data=enable_propagate_additional_user_context_data, + enable_token_revocation=enable_token_revocation, + explicit_auth_flows=explicit_auth_flows, + id_token_validity=id_token_validity, + logout_urls=logout_urls, + name=name, + name_pattern=name_pattern, + name_prefix=name_prefix, + prevent_user_existence_errors=prevent_user_existence_errors, + read_attributes=read_attributes, + refresh_token_validity=refresh_token_validity, + supported_identity_providers=supported_identity_providers, + token_validity_units=token_validity_units, + user_pool_id=user_pool_id, + write_attributes=write_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token_validity: Optional[pulumi.Input[int]] = None, + allowed_oauth_flows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_oauth_flows_user_pool_client: Optional[pulumi.Input[bool]] = None, + allowed_oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + analytics_configuration: Optional[pulumi.Input['ManagedUserPoolClientAnalyticsConfigurationArgs']] = None, + auth_session_validity: Optional[pulumi.Input[int]] = None, + callback_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + default_redirect_uri: Optional[pulumi.Input[str]] = None, + enable_propagate_additional_user_context_data: Optional[pulumi.Input[bool]] = None, + enable_token_revocation: Optional[pulumi.Input[bool]] = None, + explicit_auth_flows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + id_token_validity: Optional[pulumi.Input[int]] = None, + logout_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_pattern: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + prevent_user_existence_errors: Optional[pulumi.Input[str]] = None, + read_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + refresh_token_validity: Optional[pulumi.Input[int]] = None, + supported_identity_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_validity_units: Optional[pulumi.Input['ManagedUserPoolClientTokenValidityUnitsArgs']] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + write_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token_validity is None and 'accessTokenValidity' in kwargs: + access_token_validity = kwargs['accessTokenValidity'] + if allowed_oauth_flows is None and 'allowedOauthFlows' in kwargs: + allowed_oauth_flows = kwargs['allowedOauthFlows'] + if allowed_oauth_flows_user_pool_client is None and 'allowedOauthFlowsUserPoolClient' in kwargs: + allowed_oauth_flows_user_pool_client = kwargs['allowedOauthFlowsUserPoolClient'] + if allowed_oauth_scopes is None and 'allowedOauthScopes' in kwargs: + allowed_oauth_scopes = kwargs['allowedOauthScopes'] + if analytics_configuration is None and 'analyticsConfiguration' in kwargs: + analytics_configuration = kwargs['analyticsConfiguration'] + if auth_session_validity is None and 'authSessionValidity' in kwargs: + auth_session_validity = kwargs['authSessionValidity'] + if callback_urls is None and 'callbackUrls' in kwargs: + callback_urls = kwargs['callbackUrls'] + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if default_redirect_uri is None and 'defaultRedirectUri' in kwargs: + default_redirect_uri = kwargs['defaultRedirectUri'] + if enable_propagate_additional_user_context_data is None and 'enablePropagateAdditionalUserContextData' in kwargs: + enable_propagate_additional_user_context_data = kwargs['enablePropagateAdditionalUserContextData'] + if enable_token_revocation is None and 'enableTokenRevocation' in kwargs: + enable_token_revocation = kwargs['enableTokenRevocation'] + if explicit_auth_flows is None and 'explicitAuthFlows' in kwargs: + explicit_auth_flows = kwargs['explicitAuthFlows'] + if id_token_validity is None and 'idTokenValidity' in kwargs: + id_token_validity = kwargs['idTokenValidity'] + if logout_urls is None and 'logoutUrls' in kwargs: + logout_urls = kwargs['logoutUrls'] + if name_pattern is None and 'namePattern' in kwargs: + name_pattern = kwargs['namePattern'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if prevent_user_existence_errors is None and 'preventUserExistenceErrors' in kwargs: + prevent_user_existence_errors = kwargs['preventUserExistenceErrors'] + if read_attributes is None and 'readAttributes' in kwargs: + read_attributes = kwargs['readAttributes'] + if refresh_token_validity is None and 'refreshTokenValidity' in kwargs: + refresh_token_validity = kwargs['refreshTokenValidity'] + if supported_identity_providers is None and 'supportedIdentityProviders' in kwargs: + supported_identity_providers = kwargs['supportedIdentityProviders'] + if token_validity_units is None and 'tokenValidityUnits' in kwargs: + token_validity_units = kwargs['tokenValidityUnits'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if write_attributes is None and 'writeAttributes' in kwargs: + write_attributes = kwargs['writeAttributes'] + if access_token_validity is not None: - pulumi.set(__self__, "access_token_validity", access_token_validity) + _setter("access_token_validity", access_token_validity) if allowed_oauth_flows is not None: - pulumi.set(__self__, "allowed_oauth_flows", allowed_oauth_flows) + _setter("allowed_oauth_flows", allowed_oauth_flows) if allowed_oauth_flows_user_pool_client is not None: - pulumi.set(__self__, "allowed_oauth_flows_user_pool_client", allowed_oauth_flows_user_pool_client) + _setter("allowed_oauth_flows_user_pool_client", allowed_oauth_flows_user_pool_client) if allowed_oauth_scopes is not None: - pulumi.set(__self__, "allowed_oauth_scopes", allowed_oauth_scopes) + _setter("allowed_oauth_scopes", allowed_oauth_scopes) if analytics_configuration is not None: - pulumi.set(__self__, "analytics_configuration", analytics_configuration) + _setter("analytics_configuration", analytics_configuration) if auth_session_validity is not None: - pulumi.set(__self__, "auth_session_validity", auth_session_validity) + _setter("auth_session_validity", auth_session_validity) if callback_urls is not None: - pulumi.set(__self__, "callback_urls", callback_urls) + _setter("callback_urls", callback_urls) if client_secret is not None: - pulumi.set(__self__, "client_secret", client_secret) + _setter("client_secret", client_secret) if default_redirect_uri is not None: - pulumi.set(__self__, "default_redirect_uri", default_redirect_uri) + _setter("default_redirect_uri", default_redirect_uri) if enable_propagate_additional_user_context_data is not None: - pulumi.set(__self__, "enable_propagate_additional_user_context_data", enable_propagate_additional_user_context_data) + _setter("enable_propagate_additional_user_context_data", enable_propagate_additional_user_context_data) if enable_token_revocation is not None: - pulumi.set(__self__, "enable_token_revocation", enable_token_revocation) + _setter("enable_token_revocation", enable_token_revocation) if explicit_auth_flows is not None: - pulumi.set(__self__, "explicit_auth_flows", explicit_auth_flows) + _setter("explicit_auth_flows", explicit_auth_flows) if id_token_validity is not None: - pulumi.set(__self__, "id_token_validity", id_token_validity) + _setter("id_token_validity", id_token_validity) if logout_urls is not None: - pulumi.set(__self__, "logout_urls", logout_urls) + _setter("logout_urls", logout_urls) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_pattern is not None: - pulumi.set(__self__, "name_pattern", name_pattern) + _setter("name_pattern", name_pattern) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if prevent_user_existence_errors is not None: - pulumi.set(__self__, "prevent_user_existence_errors", prevent_user_existence_errors) + _setter("prevent_user_existence_errors", prevent_user_existence_errors) if read_attributes is not None: - pulumi.set(__self__, "read_attributes", read_attributes) + _setter("read_attributes", read_attributes) if refresh_token_validity is not None: - pulumi.set(__self__, "refresh_token_validity", refresh_token_validity) + _setter("refresh_token_validity", refresh_token_validity) if supported_identity_providers is not None: - pulumi.set(__self__, "supported_identity_providers", supported_identity_providers) + _setter("supported_identity_providers", supported_identity_providers) if token_validity_units is not None: - pulumi.set(__self__, "token_validity_units", token_validity_units) + _setter("token_validity_units", token_validity_units) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) if write_attributes is not None: - pulumi.set(__self__, "write_attributes", write_attributes) + _setter("write_attributes", write_attributes) @property @pulumi.getter(name="accessTokenValidity") @@ -967,6 +1169,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ManagedUserPoolClientArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1007,6 +1213,7 @@ def _internal_init(__self__, __props__.__dict__["allowed_oauth_flows"] = allowed_oauth_flows __props__.__dict__["allowed_oauth_flows_user_pool_client"] = allowed_oauth_flows_user_pool_client __props__.__dict__["allowed_oauth_scopes"] = allowed_oauth_scopes + analytics_configuration = _utilities.configure(analytics_configuration, ManagedUserPoolClientAnalyticsConfigurationArgs, True) __props__.__dict__["analytics_configuration"] = analytics_configuration __props__.__dict__["auth_session_validity"] = auth_session_validity __props__.__dict__["callback_urls"] = callback_urls @@ -1022,6 +1229,7 @@ def _internal_init(__self__, __props__.__dict__["read_attributes"] = read_attributes __props__.__dict__["refresh_token_validity"] = refresh_token_validity __props__.__dict__["supported_identity_providers"] = supported_identity_providers + token_validity_units = _utilities.configure(token_validity_units, ManagedUserPoolClientTokenValidityUnitsArgs, True) __props__.__dict__["token_validity_units"] = token_validity_units if user_pool_id is None and not opts.urn: raise TypeError("Missing required property 'user_pool_id'") diff --git a/sdk/python/pulumi_aws/cognito/outputs.py b/sdk/python/pulumi_aws/cognito/outputs.py index c8c96dcda42..88f2b40f8b0 100644 --- a/sdk/python/pulumi_aws/cognito/outputs.py +++ b/sdk/python/pulumi_aws/cognito/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -87,12 +87,33 @@ def __init__(__self__, *, :param str provider_name: The provider name for an Amazon Cognito Identity User Pool. :param bool server_side_token_check: Whether server-side token validation is enabled for the identity provider’s token or not. """ + IdentityPoolCognitoIdentityProvider._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + provider_name=provider_name, + server_side_token_check=server_side_token_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + provider_name: Optional[str] = None, + server_side_token_check: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if server_side_token_check is None and 'serverSideTokenCheck' in kwargs: + server_side_token_check = kwargs['serverSideTokenCheck'] + if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if server_side_token_check is not None: - pulumi.set(__self__, "server_side_token_check", server_side_token_check) + _setter("server_side_token_check", server_side_token_check) @property @pulumi.getter(name="clientId") @@ -153,12 +174,39 @@ def __init__(__self__, *, :param str ambiguous_role_resolution: Specifies the action to be taken if either no rules match the claim value for the Rules type, or there is no cognito:preferred_role claim and there are multiple cognito:roles matches for the Token type. `Required` if you specify Token or Rules as the Type. :param Sequence['IdentityPoolRoleAttachmentRoleMappingMappingRuleArgs'] mapping_rules: The Rules Configuration to be used for mapping users to roles. You can specify up to 25 rules per identity provider. Rules are evaluated in order. The first one to match specifies the role. """ - pulumi.set(__self__, "identity_provider", identity_provider) - pulumi.set(__self__, "type", type) + IdentityPoolRoleAttachmentRoleMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_provider=identity_provider, + type=type, + ambiguous_role_resolution=ambiguous_role_resolution, + mapping_rules=mapping_rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_provider: Optional[str] = None, + type: Optional[str] = None, + ambiguous_role_resolution: Optional[str] = None, + mapping_rules: Optional[Sequence['outputs.IdentityPoolRoleAttachmentRoleMappingMappingRule']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_provider is None and 'identityProvider' in kwargs: + identity_provider = kwargs['identityProvider'] + if identity_provider is None: + raise TypeError("Missing 'identity_provider' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if ambiguous_role_resolution is None and 'ambiguousRoleResolution' in kwargs: + ambiguous_role_resolution = kwargs['ambiguousRoleResolution'] + if mapping_rules is None and 'mappingRules' in kwargs: + mapping_rules = kwargs['mappingRules'] + + _setter("identity_provider", identity_provider) + _setter("type", type) if ambiguous_role_resolution is not None: - pulumi.set(__self__, "ambiguous_role_resolution", ambiguous_role_resolution) + _setter("ambiguous_role_resolution", ambiguous_role_resolution) if mapping_rules is not None: - pulumi.set(__self__, "mapping_rules", mapping_rules) + _setter("mapping_rules", mapping_rules) @property @pulumi.getter(name="identityProvider") @@ -225,10 +273,39 @@ def __init__(__self__, *, :param str role_arn: The role ARN. :param str value: A brief string that the claim must match, for example, "paid" or "yes". """ - pulumi.set(__self__, "claim", claim) - pulumi.set(__self__, "match_type", match_type) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "value", value) + IdentityPoolRoleAttachmentRoleMappingMappingRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + claim=claim, + match_type=match_type, + role_arn=role_arn, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + claim: Optional[str] = None, + match_type: Optional[str] = None, + role_arn: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if claim is None: + raise TypeError("Missing 'claim' argument") + if match_type is None and 'matchType' in kwargs: + match_type = kwargs['matchType'] + if match_type is None: + raise TypeError("Missing 'match_type' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("claim", claim) + _setter("match_type", match_type) + _setter("role_arn", role_arn) + _setter("value", value) @property @pulumi.getter @@ -303,16 +380,45 @@ def __init__(__self__, *, :param str role_arn: ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics. It conflicts with `application_arn`. :param bool user_data_shared: If `user_data_shared` is set to `true`, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics. """ + ManagedUserPoolClientAnalyticsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_arn=application_arn, + application_id=application_id, + external_id=external_id, + role_arn=role_arn, + user_data_shared=user_data_shared, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_arn: Optional[str] = None, + application_id: Optional[str] = None, + external_id: Optional[str] = None, + role_arn: Optional[str] = None, + user_data_shared: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_arn is None and 'applicationArn' in kwargs: + application_arn = kwargs['applicationArn'] + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if user_data_shared is None and 'userDataShared' in kwargs: + user_data_shared = kwargs['userDataShared'] + if application_arn is not None: - pulumi.set(__self__, "application_arn", application_arn) + _setter("application_arn", application_arn) if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if user_data_shared is not None: - pulumi.set(__self__, "user_data_shared", user_data_shared) + _setter("user_data_shared", user_data_shared) @property @pulumi.getter(name="applicationArn") @@ -387,12 +493,33 @@ def __init__(__self__, *, :param str id_token: Time unit for the value in `id_token_validity`, and it defaults to `hours`. :param str refresh_token: Time unit for the value in `refresh_token_validity` and defaults to `days`. """ + ManagedUserPoolClientTokenValidityUnits._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + id_token=id_token, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[str] = None, + id_token: Optional[str] = None, + refresh_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if id_token is None and 'idToken' in kwargs: + id_token = kwargs['idToken'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if id_token is not None: - pulumi.set(__self__, "id_token", id_token) + _setter("id_token", id_token) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -447,8 +574,29 @@ def __init__(__self__, *, :param str scope_description: The scope description. :param str scope_name: The scope name. """ - pulumi.set(__self__, "scope_description", scope_description) - pulumi.set(__self__, "scope_name", scope_name) + ResourceServerScope._configure( + lambda key, value: pulumi.set(__self__, key, value), + scope_description=scope_description, + scope_name=scope_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scope_description: Optional[str] = None, + scope_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scope_description is None and 'scopeDescription' in kwargs: + scope_description = kwargs['scopeDescription'] + if scope_description is None: + raise TypeError("Missing 'scope_description' argument") + if scope_name is None and 'scopeName' in kwargs: + scope_name = kwargs['scopeName'] + if scope_name is None: + raise TypeError("Missing 'scope_name' argument") + + _setter("scope_description", scope_description) + _setter("scope_name", scope_name) @property @pulumi.getter(name="scopeDescription") @@ -493,8 +641,27 @@ def __init__(__self__, *, :param 'RiskConfigurationAccountTakeoverRiskConfigurationActionsArgs' actions: Account takeover risk configuration actions. See details below. :param 'RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationArgs' notify_configuration: The notify configuration used to construct email notifications. See details below. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "notify_configuration", notify_configuration) + RiskConfigurationAccountTakeoverRiskConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + notify_configuration=notify_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional['outputs.RiskConfigurationAccountTakeoverRiskConfigurationActions'] = None, + notify_configuration: Optional['outputs.RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if notify_configuration is None and 'notifyConfiguration' in kwargs: + notify_configuration = kwargs['notifyConfiguration'] + if notify_configuration is None: + raise TypeError("Missing 'notify_configuration' argument") + + _setter("actions", actions) + _setter("notify_configuration", notify_configuration) @property @pulumi.getter @@ -545,12 +712,33 @@ def __init__(__self__, *, :param 'RiskConfigurationAccountTakeoverRiskConfigurationActionsLowActionArgs' low_action: Action to take for a low risk. See action block below. :param 'RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumActionArgs' medium_action: Action to take for a medium risk. See action block below. """ + RiskConfigurationAccountTakeoverRiskConfigurationActions._configure( + lambda key, value: pulumi.set(__self__, key, value), + high_action=high_action, + low_action=low_action, + medium_action=medium_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + high_action: Optional['outputs.RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction'] = None, + low_action: Optional['outputs.RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction'] = None, + medium_action: Optional['outputs.RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if high_action is None and 'highAction' in kwargs: + high_action = kwargs['highAction'] + if low_action is None and 'lowAction' in kwargs: + low_action = kwargs['lowAction'] + if medium_action is None and 'mediumAction' in kwargs: + medium_action = kwargs['mediumAction'] + if high_action is not None: - pulumi.set(__self__, "high_action", high_action) + _setter("high_action", high_action) if low_action is not None: - pulumi.set(__self__, "low_action", low_action) + _setter("low_action", low_action) if medium_action is not None: - pulumi.set(__self__, "medium_action", medium_action) + _setter("medium_action", medium_action) @property @pulumi.getter(name="highAction") @@ -601,9 +789,29 @@ def __init__(__self__, *, notify: bool): """ :param str event_action: The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. + :param bool notify: Whether to send a notification. """ - pulumi.set(__self__, "event_action", event_action) - pulumi.set(__self__, "notify", notify) + RiskConfigurationAccountTakeoverRiskConfigurationActionsHighAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_action=event_action, + notify=notify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_action: Optional[str] = None, + notify: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_action is None and 'eventAction' in kwargs: + event_action = kwargs['eventAction'] + if event_action is None: + raise TypeError("Missing 'event_action' argument") + if notify is None: + raise TypeError("Missing 'notify' argument") + + _setter("event_action", event_action) + _setter("notify", notify) @property @pulumi.getter(name="eventAction") @@ -616,6 +824,9 @@ def event_action(self) -> str: @property @pulumi.getter def notify(self) -> bool: + """ + Whether to send a notification. + """ return pulumi.get(self, "notify") @@ -643,9 +854,29 @@ def __init__(__self__, *, notify: bool): """ :param str event_action: The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. + :param bool notify: Whether to send a notification. """ - pulumi.set(__self__, "event_action", event_action) - pulumi.set(__self__, "notify", notify) + RiskConfigurationAccountTakeoverRiskConfigurationActionsLowAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_action=event_action, + notify=notify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_action: Optional[str] = None, + notify: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_action is None and 'eventAction' in kwargs: + event_action = kwargs['eventAction'] + if event_action is None: + raise TypeError("Missing 'event_action' argument") + if notify is None: + raise TypeError("Missing 'notify' argument") + + _setter("event_action", event_action) + _setter("notify", notify) @property @pulumi.getter(name="eventAction") @@ -658,6 +889,9 @@ def event_action(self) -> str: @property @pulumi.getter def notify(self) -> bool: + """ + Whether to send a notification. + """ return pulumi.get(self, "notify") @@ -685,9 +919,29 @@ def __init__(__self__, *, notify: bool): """ :param str event_action: The action to take in response to the account takeover action. Valid values are `BLOCK`, `MFA_IF_CONFIGURED`, `MFA_REQUIRED` and `NO_ACTION`. + :param bool notify: Whether to send a notification. """ - pulumi.set(__self__, "event_action", event_action) - pulumi.set(__self__, "notify", notify) + RiskConfigurationAccountTakeoverRiskConfigurationActionsMediumAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_action=event_action, + notify=notify, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_action: Optional[str] = None, + notify: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_action is None and 'eventAction' in kwargs: + event_action = kwargs['eventAction'] + if event_action is None: + raise TypeError("Missing 'event_action' argument") + if notify is None: + raise TypeError("Missing 'notify' argument") + + _setter("event_action", event_action) + _setter("notify", notify) @property @pulumi.getter(name="eventAction") @@ -700,6 +954,9 @@ def event_action(self) -> str: @property @pulumi.getter def notify(self) -> bool: + """ + Whether to send a notification. + """ return pulumi.get(self, "notify") @@ -747,17 +1004,52 @@ def __init__(__self__, *, :param 'RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationNoActionEmailArgs' no_action_email: The email template used when a detected risk event is allowed. See notify email type below. :param str reply_to: The destination to which the receiver of an email should reply to. """ - pulumi.set(__self__, "source_arn", source_arn) + RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_arn=source_arn, + block_email=block_email, + from_=from_, + mfa_email=mfa_email, + no_action_email=no_action_email, + reply_to=reply_to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_arn: Optional[str] = None, + block_email: Optional['outputs.RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationBlockEmail'] = None, + from_: Optional[str] = None, + mfa_email: Optional['outputs.RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationMfaEmail'] = None, + no_action_email: Optional['outputs.RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationNoActionEmail'] = None, + reply_to: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if source_arn is None: + raise TypeError("Missing 'source_arn' argument") + if block_email is None and 'blockEmail' in kwargs: + block_email = kwargs['blockEmail'] + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if mfa_email is None and 'mfaEmail' in kwargs: + mfa_email = kwargs['mfaEmail'] + if no_action_email is None and 'noActionEmail' in kwargs: + no_action_email = kwargs['noActionEmail'] + if reply_to is None and 'replyTo' in kwargs: + reply_to = kwargs['replyTo'] + + _setter("source_arn", source_arn) if block_email is not None: - pulumi.set(__self__, "block_email", block_email) + _setter("block_email", block_email) if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if mfa_email is not None: - pulumi.set(__self__, "mfa_email", mfa_email) + _setter("mfa_email", mfa_email) if no_action_email is not None: - pulumi.set(__self__, "no_action_email", no_action_email) + _setter("no_action_email", no_action_email) if reply_to is not None: - pulumi.set(__self__, "reply_to", reply_to) + _setter("reply_to", reply_to) @property @pulumi.getter(name="sourceArn") @@ -838,9 +1130,34 @@ def __init__(__self__, *, :param str subject: The email subject. :param str text_body: The email text body. """ - pulumi.set(__self__, "html_body", html_body) - pulumi.set(__self__, "subject", subject) - pulumi.set(__self__, "text_body", text_body) + RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationBlockEmail._configure( + lambda key, value: pulumi.set(__self__, key, value), + html_body=html_body, + subject=subject, + text_body=text_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + html_body: Optional[str] = None, + subject: Optional[str] = None, + text_body: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if html_body is None and 'htmlBody' in kwargs: + html_body = kwargs['htmlBody'] + if html_body is None: + raise TypeError("Missing 'html_body' argument") + if subject is None: + raise TypeError("Missing 'subject' argument") + if text_body is None and 'textBody' in kwargs: + text_body = kwargs['textBody'] + if text_body is None: + raise TypeError("Missing 'text_body' argument") + + _setter("html_body", html_body) + _setter("subject", subject) + _setter("text_body", text_body) @property @pulumi.getter(name="htmlBody") @@ -897,9 +1214,34 @@ def __init__(__self__, *, :param str subject: The email subject. :param str text_body: The email text body. """ - pulumi.set(__self__, "html_body", html_body) - pulumi.set(__self__, "subject", subject) - pulumi.set(__self__, "text_body", text_body) + RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationMfaEmail._configure( + lambda key, value: pulumi.set(__self__, key, value), + html_body=html_body, + subject=subject, + text_body=text_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + html_body: Optional[str] = None, + subject: Optional[str] = None, + text_body: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if html_body is None and 'htmlBody' in kwargs: + html_body = kwargs['htmlBody'] + if html_body is None: + raise TypeError("Missing 'html_body' argument") + if subject is None: + raise TypeError("Missing 'subject' argument") + if text_body is None and 'textBody' in kwargs: + text_body = kwargs['textBody'] + if text_body is None: + raise TypeError("Missing 'text_body' argument") + + _setter("html_body", html_body) + _setter("subject", subject) + _setter("text_body", text_body) @property @pulumi.getter(name="htmlBody") @@ -956,9 +1298,34 @@ def __init__(__self__, *, :param str subject: The email subject. :param str text_body: The email text body. """ - pulumi.set(__self__, "html_body", html_body) - pulumi.set(__self__, "subject", subject) - pulumi.set(__self__, "text_body", text_body) + RiskConfigurationAccountTakeoverRiskConfigurationNotifyConfigurationNoActionEmail._configure( + lambda key, value: pulumi.set(__self__, key, value), + html_body=html_body, + subject=subject, + text_body=text_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + html_body: Optional[str] = None, + subject: Optional[str] = None, + text_body: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if html_body is None and 'htmlBody' in kwargs: + html_body = kwargs['htmlBody'] + if html_body is None: + raise TypeError("Missing 'html_body' argument") + if subject is None: + raise TypeError("Missing 'subject' argument") + if text_body is None and 'textBody' in kwargs: + text_body = kwargs['textBody'] + if text_body is None: + raise TypeError("Missing 'text_body' argument") + + _setter("html_body", html_body) + _setter("subject", subject) + _setter("text_body", text_body) @property @pulumi.getter(name="htmlBody") @@ -1011,9 +1378,26 @@ def __init__(__self__, *, :param 'RiskConfigurationCompromisedCredentialsRiskConfigurationActionsArgs' actions: The compromised credentials risk configuration actions. See details below. :param Sequence[str] event_filters: Perform the action for these events. The default is to perform all events if no event filter is specified. Valid values are `SIGN_IN`, `PASSWORD_CHANGE`, and `SIGN_UP`. """ - pulumi.set(__self__, "actions", actions) + RiskConfigurationCompromisedCredentialsRiskConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + event_filters=event_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional['outputs.RiskConfigurationCompromisedCredentialsRiskConfigurationActions'] = None, + event_filters: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if event_filters is None and 'eventFilters' in kwargs: + event_filters = kwargs['eventFilters'] + + _setter("actions", actions) if event_filters is not None: - pulumi.set(__self__, "event_filters", event_filters) + _setter("event_filters", event_filters) @property @pulumi.getter @@ -1056,7 +1440,22 @@ def __init__(__self__, *, """ :param str event_action: The event action. Valid values are `BLOCK` or `NO_ACTION`. """ - pulumi.set(__self__, "event_action", event_action) + RiskConfigurationCompromisedCredentialsRiskConfigurationActions._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_action=event_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_action: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_action is None and 'eventAction' in kwargs: + event_action = kwargs['eventAction'] + if event_action is None: + raise TypeError("Missing 'event_action' argument") + + _setter("event_action", event_action) @property @pulumi.getter(name="eventAction") @@ -1099,10 +1498,27 @@ def __init__(__self__, *, The IP range is in CIDR notation. Can contain a maximum of 200 items. """ + RiskConfigurationRiskExceptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + blocked_ip_range_lists=blocked_ip_range_lists, + skipped_ip_range_lists=skipped_ip_range_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + blocked_ip_range_lists: Optional[Sequence[str]] = None, + skipped_ip_range_lists: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if blocked_ip_range_lists is None and 'blockedIpRangeLists' in kwargs: + blocked_ip_range_lists = kwargs['blockedIpRangeLists'] + if skipped_ip_range_lists is None and 'skippedIpRangeLists' in kwargs: + skipped_ip_range_lists = kwargs['skippedIpRangeLists'] + if blocked_ip_range_lists is not None: - pulumi.set(__self__, "blocked_ip_range_lists", blocked_ip_range_lists) + _setter("blocked_ip_range_lists", blocked_ip_range_lists) if skipped_ip_range_lists is not None: - pulumi.set(__self__, "skipped_ip_range_lists", skipped_ip_range_lists) + _setter("skipped_ip_range_lists", skipped_ip_range_lists) @property @pulumi.getter(name="blockedIpRangeLists") @@ -1149,8 +1565,21 @@ def __init__(__self__, *, """ :param Sequence['UserPoolAccountRecoverySettingRecoveryMechanismArgs'] recovery_mechanisms: List of Account Recovery Options of the following structure: """ + UserPoolAccountRecoverySetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + recovery_mechanisms=recovery_mechanisms, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + recovery_mechanisms: Optional[Sequence['outputs.UserPoolAccountRecoverySettingRecoveryMechanism']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recovery_mechanisms is None and 'recoveryMechanisms' in kwargs: + recovery_mechanisms = kwargs['recoveryMechanisms'] + if recovery_mechanisms is not None: - pulumi.set(__self__, "recovery_mechanisms", recovery_mechanisms) + _setter("recovery_mechanisms", recovery_mechanisms) @property @pulumi.getter(name="recoveryMechanisms") @@ -1172,8 +1601,25 @@ def __init__(__self__, *, The following arguments are optional: :param int priority: Positive integer specifying priority of a method with 1 being the highest priority. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "priority", priority) + UserPoolAccountRecoverySettingRecoveryMechanism._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + priority: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + + _setter("name", name) + _setter("priority", priority) @property @pulumi.getter @@ -1222,10 +1668,27 @@ def __init__(__self__, *, :param bool allow_admin_create_user_only: Set to True if only the administrator is allowed to create user profiles. Set to False if users can sign themselves up via an app. :param 'UserPoolAdminCreateUserConfigInviteMessageTemplateArgs' invite_message_template: Invite message template structure. Detailed below. """ + UserPoolAdminCreateUserConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_admin_create_user_only=allow_admin_create_user_only, + invite_message_template=invite_message_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_admin_create_user_only: Optional[bool] = None, + invite_message_template: Optional['outputs.UserPoolAdminCreateUserConfigInviteMessageTemplate'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_admin_create_user_only is None and 'allowAdminCreateUserOnly' in kwargs: + allow_admin_create_user_only = kwargs['allowAdminCreateUserOnly'] + if invite_message_template is None and 'inviteMessageTemplate' in kwargs: + invite_message_template = kwargs['inviteMessageTemplate'] + if allow_admin_create_user_only is not None: - pulumi.set(__self__, "allow_admin_create_user_only", allow_admin_create_user_only) + _setter("allow_admin_create_user_only", allow_admin_create_user_only) if invite_message_template is not None: - pulumi.set(__self__, "invite_message_template", invite_message_template) + _setter("invite_message_template", invite_message_template) @property @pulumi.getter(name="allowAdminCreateUserOnly") @@ -1276,12 +1739,33 @@ def __init__(__self__, *, :param str email_subject: Subject line for email messages. :param str sms_message: Message template for SMS messages. Must contain `{username}` and `{####}` placeholders, for username and temporary password, respectively. """ + UserPoolAdminCreateUserConfigInviteMessageTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + email_message=email_message, + email_subject=email_subject, + sms_message=sms_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email_message: Optional[str] = None, + email_subject: Optional[str] = None, + sms_message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email_message is None and 'emailMessage' in kwargs: + email_message = kwargs['emailMessage'] + if email_subject is None and 'emailSubject' in kwargs: + email_subject = kwargs['emailSubject'] + if sms_message is None and 'smsMessage' in kwargs: + sms_message = kwargs['smsMessage'] + if email_message is not None: - pulumi.set(__self__, "email_message", email_message) + _setter("email_message", email_message) if email_subject is not None: - pulumi.set(__self__, "email_subject", email_subject) + _setter("email_subject", email_subject) if sms_message is not None: - pulumi.set(__self__, "sms_message", sms_message) + _setter("sms_message", sms_message) @property @pulumi.getter(name="emailMessage") @@ -1348,16 +1832,45 @@ def __init__(__self__, *, :param str role_arn: ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics. Conflicts with `application_arn`. :param bool user_data_shared: If set to `true`, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics. """ + UserPoolClientAnalyticsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_arn=application_arn, + application_id=application_id, + external_id=external_id, + role_arn=role_arn, + user_data_shared=user_data_shared, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_arn: Optional[str] = None, + application_id: Optional[str] = None, + external_id: Optional[str] = None, + role_arn: Optional[str] = None, + user_data_shared: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_arn is None and 'applicationArn' in kwargs: + application_arn = kwargs['applicationArn'] + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if user_data_shared is None and 'userDataShared' in kwargs: + user_data_shared = kwargs['userDataShared'] + if application_arn is not None: - pulumi.set(__self__, "application_arn", application_arn) + _setter("application_arn", application_arn) if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if user_data_shared is not None: - pulumi.set(__self__, "user_data_shared", user_data_shared) + _setter("user_data_shared", user_data_shared) @property @pulumi.getter(name="applicationArn") @@ -1432,12 +1945,33 @@ def __init__(__self__, *, :param str id_token: Time unit in for the value in `id_token_validity`, defaults to `hours`. :param str refresh_token: Time unit in for the value in `refresh_token_validity`, defaults to `days`. """ + UserPoolClientTokenValidityUnits._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + id_token=id_token, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[str] = None, + id_token: Optional[str] = None, + refresh_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if id_token is None and 'idToken' in kwargs: + id_token = kwargs['idToken'] + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if access_token is not None: - pulumi.set(__self__, "access_token", access_token) + _setter("access_token", access_token) if id_token is not None: - pulumi.set(__self__, "id_token", id_token) + _setter("id_token", id_token) if refresh_token is not None: - pulumi.set(__self__, "refresh_token", refresh_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") @@ -1492,10 +2026,27 @@ def __init__(__self__, *, :param bool challenge_required_on_new_device: Whether a challenge is required on a new device. Only applicable to a new device. :param bool device_only_remembered_on_user_prompt: Whether a device is only remembered on user prompt. `false` equates to "Always" remember, `true` is "User Opt In," and not using a `device_configuration` block is "No." """ + UserPoolDeviceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + challenge_required_on_new_device=challenge_required_on_new_device, + device_only_remembered_on_user_prompt=device_only_remembered_on_user_prompt, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + challenge_required_on_new_device: Optional[bool] = None, + device_only_remembered_on_user_prompt: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if challenge_required_on_new_device is None and 'challengeRequiredOnNewDevice' in kwargs: + challenge_required_on_new_device = kwargs['challengeRequiredOnNewDevice'] + if device_only_remembered_on_user_prompt is None and 'deviceOnlyRememberedOnUserPrompt' in kwargs: + device_only_remembered_on_user_prompt = kwargs['deviceOnlyRememberedOnUserPrompt'] + if challenge_required_on_new_device is not None: - pulumi.set(__self__, "challenge_required_on_new_device", challenge_required_on_new_device) + _setter("challenge_required_on_new_device", challenge_required_on_new_device) if device_only_remembered_on_user_prompt is not None: - pulumi.set(__self__, "device_only_remembered_on_user_prompt", device_only_remembered_on_user_prompt) + _setter("device_only_remembered_on_user_prompt", device_only_remembered_on_user_prompt) @property @pulumi.getter(name="challengeRequiredOnNewDevice") @@ -1554,16 +2105,45 @@ def __init__(__self__, *, :param str reply_to_email_address: REPLY-TO email address. :param str source_arn: ARN of the SES verified email identity to use. Required if `email_sending_account` is set to `DEVELOPER`. """ + UserPoolEmailConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_set=configuration_set, + email_sending_account=email_sending_account, + from_email_address=from_email_address, + reply_to_email_address=reply_to_email_address, + source_arn=source_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_set: Optional[str] = None, + email_sending_account: Optional[str] = None, + from_email_address: Optional[str] = None, + reply_to_email_address: Optional[str] = None, + source_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_set is None and 'configurationSet' in kwargs: + configuration_set = kwargs['configurationSet'] + if email_sending_account is None and 'emailSendingAccount' in kwargs: + email_sending_account = kwargs['emailSendingAccount'] + if from_email_address is None and 'fromEmailAddress' in kwargs: + from_email_address = kwargs['fromEmailAddress'] + if reply_to_email_address is None and 'replyToEmailAddress' in kwargs: + reply_to_email_address = kwargs['replyToEmailAddress'] + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if configuration_set is not None: - pulumi.set(__self__, "configuration_set", configuration_set) + _setter("configuration_set", configuration_set) if email_sending_account is not None: - pulumi.set(__self__, "email_sending_account", email_sending_account) + _setter("email_sending_account", email_sending_account) if from_email_address is not None: - pulumi.set(__self__, "from_email_address", from_email_address) + _setter("from_email_address", from_email_address) if reply_to_email_address is not None: - pulumi.set(__self__, "reply_to_email_address", reply_to_email_address) + _setter("reply_to_email_address", reply_to_email_address) if source_arn is not None: - pulumi.set(__self__, "source_arn", source_arn) + _setter("source_arn", source_arn) @property @pulumi.getter(name="configurationSet") @@ -1678,32 +2258,93 @@ def __init__(__self__, *, :param str user_migration: User migration Lambda config type. :param str verify_auth_challenge_response: Verifies the authentication challenge response. """ + UserPoolLambdaConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + create_auth_challenge=create_auth_challenge, + custom_email_sender=custom_email_sender, + custom_message=custom_message, + custom_sms_sender=custom_sms_sender, + define_auth_challenge=define_auth_challenge, + kms_key_id=kms_key_id, + post_authentication=post_authentication, + post_confirmation=post_confirmation, + pre_authentication=pre_authentication, + pre_sign_up=pre_sign_up, + pre_token_generation=pre_token_generation, + user_migration=user_migration, + verify_auth_challenge_response=verify_auth_challenge_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create_auth_challenge: Optional[str] = None, + custom_email_sender: Optional['outputs.UserPoolLambdaConfigCustomEmailSender'] = None, + custom_message: Optional[str] = None, + custom_sms_sender: Optional['outputs.UserPoolLambdaConfigCustomSmsSender'] = None, + define_auth_challenge: Optional[str] = None, + kms_key_id: Optional[str] = None, + post_authentication: Optional[str] = None, + post_confirmation: Optional[str] = None, + pre_authentication: Optional[str] = None, + pre_sign_up: Optional[str] = None, + pre_token_generation: Optional[str] = None, + user_migration: Optional[str] = None, + verify_auth_challenge_response: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_auth_challenge is None and 'createAuthChallenge' in kwargs: + create_auth_challenge = kwargs['createAuthChallenge'] + if custom_email_sender is None and 'customEmailSender' in kwargs: + custom_email_sender = kwargs['customEmailSender'] + if custom_message is None and 'customMessage' in kwargs: + custom_message = kwargs['customMessage'] + if custom_sms_sender is None and 'customSmsSender' in kwargs: + custom_sms_sender = kwargs['customSmsSender'] + if define_auth_challenge is None and 'defineAuthChallenge' in kwargs: + define_auth_challenge = kwargs['defineAuthChallenge'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if post_authentication is None and 'postAuthentication' in kwargs: + post_authentication = kwargs['postAuthentication'] + if post_confirmation is None and 'postConfirmation' in kwargs: + post_confirmation = kwargs['postConfirmation'] + if pre_authentication is None and 'preAuthentication' in kwargs: + pre_authentication = kwargs['preAuthentication'] + if pre_sign_up is None and 'preSignUp' in kwargs: + pre_sign_up = kwargs['preSignUp'] + if pre_token_generation is None and 'preTokenGeneration' in kwargs: + pre_token_generation = kwargs['preTokenGeneration'] + if user_migration is None and 'userMigration' in kwargs: + user_migration = kwargs['userMigration'] + if verify_auth_challenge_response is None and 'verifyAuthChallengeResponse' in kwargs: + verify_auth_challenge_response = kwargs['verifyAuthChallengeResponse'] + if create_auth_challenge is not None: - pulumi.set(__self__, "create_auth_challenge", create_auth_challenge) + _setter("create_auth_challenge", create_auth_challenge) if custom_email_sender is not None: - pulumi.set(__self__, "custom_email_sender", custom_email_sender) + _setter("custom_email_sender", custom_email_sender) if custom_message is not None: - pulumi.set(__self__, "custom_message", custom_message) + _setter("custom_message", custom_message) if custom_sms_sender is not None: - pulumi.set(__self__, "custom_sms_sender", custom_sms_sender) + _setter("custom_sms_sender", custom_sms_sender) if define_auth_challenge is not None: - pulumi.set(__self__, "define_auth_challenge", define_auth_challenge) + _setter("define_auth_challenge", define_auth_challenge) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if post_authentication is not None: - pulumi.set(__self__, "post_authentication", post_authentication) + _setter("post_authentication", post_authentication) if post_confirmation is not None: - pulumi.set(__self__, "post_confirmation", post_confirmation) + _setter("post_confirmation", post_confirmation) if pre_authentication is not None: - pulumi.set(__self__, "pre_authentication", pre_authentication) + _setter("pre_authentication", pre_authentication) if pre_sign_up is not None: - pulumi.set(__self__, "pre_sign_up", pre_sign_up) + _setter("pre_sign_up", pre_sign_up) if pre_token_generation is not None: - pulumi.set(__self__, "pre_token_generation", pre_token_generation) + _setter("pre_token_generation", pre_token_generation) if user_migration is not None: - pulumi.set(__self__, "user_migration", user_migration) + _setter("user_migration", user_migration) if verify_auth_challenge_response is not None: - pulumi.set(__self__, "verify_auth_challenge_response", verify_auth_challenge_response) + _setter("verify_auth_challenge_response", verify_auth_challenge_response) @property @pulumi.getter(name="createAuthChallenge") @@ -1838,8 +2479,29 @@ def __init__(__self__, *, :param str lambda_arn: The Lambda Amazon Resource Name of the Lambda function that Amazon Cognito triggers to send email notifications to users. :param str lambda_version: The Lambda version represents the signature of the "request" attribute in the "event" information Amazon Cognito passes to your custom email Lambda function. The only supported value is `V1_0`. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) - pulumi.set(__self__, "lambda_version", lambda_version) + UserPoolLambdaConfigCustomEmailSender._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + lambda_version=lambda_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[str] = None, + lambda_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if lambda_version is None and 'lambdaVersion' in kwargs: + lambda_version = kwargs['lambdaVersion'] + if lambda_version is None: + raise TypeError("Missing 'lambda_version' argument") + + _setter("lambda_arn", lambda_arn) + _setter("lambda_version", lambda_version) @property @pulumi.getter(name="lambdaArn") @@ -1886,8 +2548,29 @@ def __init__(__self__, *, :param str lambda_arn: The Lambda Amazon Resource Name of the Lambda function that Amazon Cognito triggers to send SMS notifications to users. :param str lambda_version: The Lambda version represents the signature of the "request" attribute in the "event" information Amazon Cognito passes to your custom SMS Lambda function. The only supported value is `V1_0`. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) - pulumi.set(__self__, "lambda_version", lambda_version) + UserPoolLambdaConfigCustomSmsSender._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + lambda_version=lambda_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[str] = None, + lambda_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if lambda_version is None and 'lambdaVersion' in kwargs: + lambda_version = kwargs['lambdaVersion'] + if lambda_version is None: + raise TypeError("Missing 'lambda_version' argument") + + _setter("lambda_arn", lambda_arn) + _setter("lambda_version", lambda_version) @property @pulumi.getter(name="lambdaArn") @@ -1950,18 +2633,51 @@ def __init__(__self__, *, :param bool require_uppercase: Whether you have required users to use at least one uppercase letter in their password. :param int temporary_password_validity_days: In the password policy you have set, refers to the number of days a temporary password is valid. If the user does not sign-in during this time, their password will need to be reset by an administrator. """ + UserPoolPasswordPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + minimum_length=minimum_length, + require_lowercase=require_lowercase, + require_numbers=require_numbers, + require_symbols=require_symbols, + require_uppercase=require_uppercase, + temporary_password_validity_days=temporary_password_validity_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minimum_length: Optional[int] = None, + require_lowercase: Optional[bool] = None, + require_numbers: Optional[bool] = None, + require_symbols: Optional[bool] = None, + require_uppercase: Optional[bool] = None, + temporary_password_validity_days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minimum_length is None and 'minimumLength' in kwargs: + minimum_length = kwargs['minimumLength'] + if require_lowercase is None and 'requireLowercase' in kwargs: + require_lowercase = kwargs['requireLowercase'] + if require_numbers is None and 'requireNumbers' in kwargs: + require_numbers = kwargs['requireNumbers'] + if require_symbols is None and 'requireSymbols' in kwargs: + require_symbols = kwargs['requireSymbols'] + if require_uppercase is None and 'requireUppercase' in kwargs: + require_uppercase = kwargs['requireUppercase'] + if temporary_password_validity_days is None and 'temporaryPasswordValidityDays' in kwargs: + temporary_password_validity_days = kwargs['temporaryPasswordValidityDays'] + if minimum_length is not None: - pulumi.set(__self__, "minimum_length", minimum_length) + _setter("minimum_length", minimum_length) if require_lowercase is not None: - pulumi.set(__self__, "require_lowercase", require_lowercase) + _setter("require_lowercase", require_lowercase) if require_numbers is not None: - pulumi.set(__self__, "require_numbers", require_numbers) + _setter("require_numbers", require_numbers) if require_symbols is not None: - pulumi.set(__self__, "require_symbols", require_symbols) + _setter("require_symbols", require_symbols) if require_uppercase is not None: - pulumi.set(__self__, "require_uppercase", require_uppercase) + _setter("require_uppercase", require_uppercase) if temporary_password_validity_days is not None: - pulumi.set(__self__, "temporary_password_validity_days", temporary_password_validity_days) + _setter("temporary_password_validity_days", temporary_password_validity_days) @property @pulumi.getter(name="minimumLength") @@ -2054,18 +2770,53 @@ def __init__(__self__, *, :param bool required: Whether a user pool attribute is required. If the attribute is required and the user does not provide a value, registration or sign-in will fail. :param 'UserPoolSchemaStringAttributeConstraintsArgs' string_attribute_constraints: Constraints for an attribute of the string type. Detailed below. """ - pulumi.set(__self__, "attribute_data_type", attribute_data_type) - pulumi.set(__self__, "name", name) + UserPoolSchema._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_data_type=attribute_data_type, + name=name, + developer_only_attribute=developer_only_attribute, + mutable=mutable, + number_attribute_constraints=number_attribute_constraints, + required=required, + string_attribute_constraints=string_attribute_constraints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_data_type: Optional[str] = None, + name: Optional[str] = None, + developer_only_attribute: Optional[bool] = None, + mutable: Optional[bool] = None, + number_attribute_constraints: Optional['outputs.UserPoolSchemaNumberAttributeConstraints'] = None, + required: Optional[bool] = None, + string_attribute_constraints: Optional['outputs.UserPoolSchemaStringAttributeConstraints'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_data_type is None and 'attributeDataType' in kwargs: + attribute_data_type = kwargs['attributeDataType'] + if attribute_data_type is None: + raise TypeError("Missing 'attribute_data_type' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if developer_only_attribute is None and 'developerOnlyAttribute' in kwargs: + developer_only_attribute = kwargs['developerOnlyAttribute'] + if number_attribute_constraints is None and 'numberAttributeConstraints' in kwargs: + number_attribute_constraints = kwargs['numberAttributeConstraints'] + if string_attribute_constraints is None and 'stringAttributeConstraints' in kwargs: + string_attribute_constraints = kwargs['stringAttributeConstraints'] + + _setter("attribute_data_type", attribute_data_type) + _setter("name", name) if developer_only_attribute is not None: - pulumi.set(__self__, "developer_only_attribute", developer_only_attribute) + _setter("developer_only_attribute", developer_only_attribute) if mutable is not None: - pulumi.set(__self__, "mutable", mutable) + _setter("mutable", mutable) if number_attribute_constraints is not None: - pulumi.set(__self__, "number_attribute_constraints", number_attribute_constraints) + _setter("number_attribute_constraints", number_attribute_constraints) if required is not None: - pulumi.set(__self__, "required", required) + _setter("required", required) if string_attribute_constraints is not None: - pulumi.set(__self__, "string_attribute_constraints", string_attribute_constraints) + _setter("string_attribute_constraints", string_attribute_constraints) @property @pulumi.getter(name="attributeDataType") @@ -2152,10 +2903,27 @@ def __init__(__self__, *, :param str max_value: Maximum value of an attribute that is of the number data type. :param str min_value: Minimum value of an attribute that is of the number data type. """ + UserPoolSchemaNumberAttributeConstraints._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_value=max_value, + min_value=min_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_value: Optional[str] = None, + min_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_value is None and 'maxValue' in kwargs: + max_value = kwargs['maxValue'] + if min_value is None and 'minValue' in kwargs: + min_value = kwargs['minValue'] + if max_value is not None: - pulumi.set(__self__, "max_value", max_value) + _setter("max_value", max_value) if min_value is not None: - pulumi.set(__self__, "min_value", min_value) + _setter("min_value", min_value) @property @pulumi.getter(name="maxValue") @@ -2202,10 +2970,27 @@ def __init__(__self__, *, :param str max_length: Maximum length of an attribute value of the string type. :param str min_length: Minimum length of an attribute value of the string type. """ + UserPoolSchemaStringAttributeConstraints._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_length=max_length, + min_length=min_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_length: Optional[str] = None, + min_length: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_length is None and 'maxLength' in kwargs: + max_length = kwargs['maxLength'] + if min_length is None and 'minLength' in kwargs: + min_length = kwargs['minLength'] + if max_length is not None: - pulumi.set(__self__, "max_length", max_length) + _setter("max_length", max_length) if min_length is not None: - pulumi.set(__self__, "min_length", min_length) + _setter("min_length", min_length) @property @pulumi.getter(name="maxLength") @@ -2256,10 +3041,35 @@ def __init__(__self__, *, :param str sns_caller_arn: ARN of the Amazon SNS caller. This is usually the IAM role that you've given Cognito permission to assume. :param str sns_region: The AWS Region to use with Amazon SNS integration. You can choose the same Region as your user pool, or a supported Legacy Amazon SNS alternate Region. Amazon Cognito resources in the Asia Pacific (Seoul) AWS Region must use your Amazon SNS configuration in the Asia Pacific (Tokyo) Region. For more information, see [SMS message settings for Amazon Cognito user pools](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html). """ - pulumi.set(__self__, "external_id", external_id) - pulumi.set(__self__, "sns_caller_arn", sns_caller_arn) + UserPoolSmsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_id=external_id, + sns_caller_arn=sns_caller_arn, + sns_region=sns_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_id: Optional[str] = None, + sns_caller_arn: Optional[str] = None, + sns_region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if external_id is None: + raise TypeError("Missing 'external_id' argument") + if sns_caller_arn is None and 'snsCallerArn' in kwargs: + sns_caller_arn = kwargs['snsCallerArn'] + if sns_caller_arn is None: + raise TypeError("Missing 'sns_caller_arn' argument") + if sns_region is None and 'snsRegion' in kwargs: + sns_region = kwargs['snsRegion'] + + _setter("external_id", external_id) + _setter("sns_caller_arn", sns_caller_arn) if sns_region is not None: - pulumi.set(__self__, "sns_region", sns_region) + _setter("sns_region", sns_region) @property @pulumi.getter(name="externalId") @@ -2293,7 +3103,20 @@ def __init__(__self__, *, """ :param bool enabled: Boolean whether to enable software token Multi-Factor (MFA) tokens, such as Time-based One-Time Password (TOTP). To disable software token MFA When `sms_configuration` is not present, the `mfa_configuration` argument must be set to `OFF` and the `software_token_mfa_configuration` configuration block must be fully removed. """ - pulumi.set(__self__, "enabled", enabled) + UserPoolSoftwareTokenMfaConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -2328,7 +3151,22 @@ def __init__(__self__, *, """ :param Sequence[str] attributes_require_verification_before_updates: A list of attributes requiring verification before update. If set, the provided value(s) must also be set in `auto_verified_attributes`. Valid values: `email`, `phone_number`. """ - pulumi.set(__self__, "attributes_require_verification_before_updates", attributes_require_verification_before_updates) + UserPoolUserAttributeUpdateSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes_require_verification_before_updates=attributes_require_verification_before_updates, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes_require_verification_before_updates: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attributes_require_verification_before_updates is None and 'attributesRequireVerificationBeforeUpdates' in kwargs: + attributes_require_verification_before_updates = kwargs['attributesRequireVerificationBeforeUpdates'] + if attributes_require_verification_before_updates is None: + raise TypeError("Missing 'attributes_require_verification_before_updates' argument") + + _setter("attributes_require_verification_before_updates", attributes_require_verification_before_updates) @property @pulumi.getter(name="attributesRequireVerificationBeforeUpdates") @@ -2363,7 +3201,22 @@ def __init__(__self__, *, """ :param str advanced_security_mode: Mode for advanced security, must be one of `OFF`, `AUDIT` or `ENFORCED`. """ - pulumi.set(__self__, "advanced_security_mode", advanced_security_mode) + UserPoolUserPoolAddOns._configure( + lambda key, value: pulumi.set(__self__, key, value), + advanced_security_mode=advanced_security_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + advanced_security_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if advanced_security_mode is None and 'advancedSecurityMode' in kwargs: + advanced_security_mode = kwargs['advancedSecurityMode'] + if advanced_security_mode is None: + raise TypeError("Missing 'advanced_security_mode' argument") + + _setter("advanced_security_mode", advanced_security_mode) @property @pulumi.getter(name="advancedSecurityMode") @@ -2398,7 +3251,22 @@ def __init__(__self__, *, """ :param bool case_sensitive: Whether username case sensitivity will be applied for all users in the user pool through Cognito APIs. """ - pulumi.set(__self__, "case_sensitive", case_sensitive) + UserPoolUsernameConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + case_sensitive=case_sensitive, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + case_sensitive: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if case_sensitive is None and 'caseSensitive' in kwargs: + case_sensitive = kwargs['caseSensitive'] + if case_sensitive is None: + raise TypeError("Missing 'case_sensitive' argument") + + _setter("case_sensitive", case_sensitive) @property @pulumi.getter(name="caseSensitive") @@ -2453,18 +3321,51 @@ def __init__(__self__, *, :param str email_subject_by_link: Subject line for the email message template for sending a confirmation link to the user. :param str sms_message: SMS message template. Must contain the `{####}` placeholder. Conflicts with `sms_verification_message` argument. """ + UserPoolVerificationMessageTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_email_option=default_email_option, + email_message=email_message, + email_message_by_link=email_message_by_link, + email_subject=email_subject, + email_subject_by_link=email_subject_by_link, + sms_message=sms_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_email_option: Optional[str] = None, + email_message: Optional[str] = None, + email_message_by_link: Optional[str] = None, + email_subject: Optional[str] = None, + email_subject_by_link: Optional[str] = None, + sms_message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_email_option is None and 'defaultEmailOption' in kwargs: + default_email_option = kwargs['defaultEmailOption'] + if email_message is None and 'emailMessage' in kwargs: + email_message = kwargs['emailMessage'] + if email_message_by_link is None and 'emailMessageByLink' in kwargs: + email_message_by_link = kwargs['emailMessageByLink'] + if email_subject is None and 'emailSubject' in kwargs: + email_subject = kwargs['emailSubject'] + if email_subject_by_link is None and 'emailSubjectByLink' in kwargs: + email_subject_by_link = kwargs['emailSubjectByLink'] + if sms_message is None and 'smsMessage' in kwargs: + sms_message = kwargs['smsMessage'] + if default_email_option is not None: - pulumi.set(__self__, "default_email_option", default_email_option) + _setter("default_email_option", default_email_option) if email_message is not None: - pulumi.set(__self__, "email_message", email_message) + _setter("email_message", email_message) if email_message_by_link is not None: - pulumi.set(__self__, "email_message_by_link", email_message_by_link) + _setter("email_message_by_link", email_message_by_link) if email_subject is not None: - pulumi.set(__self__, "email_subject", email_subject) + _setter("email_subject", email_subject) if email_subject_by_link is not None: - pulumi.set(__self__, "email_subject_by_link", email_subject_by_link) + _setter("email_subject_by_link", email_subject_by_link) if sms_message is not None: - pulumi.set(__self__, "sms_message", sms_message) + _setter("sms_message", sms_message) @property @pulumi.getter(name="defaultEmailOption") @@ -2521,9 +3422,36 @@ def __init__(__self__, *, client_id: str, provider_name: str, server_side_token_check: bool): - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "provider_name", provider_name) - pulumi.set(__self__, "server_side_token_check", server_side_token_check) + GetIdentityPoolCognitoIdentityProviderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + provider_name=provider_name, + server_side_token_check=server_side_token_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + provider_name: Optional[str] = None, + server_side_token_check: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if provider_name is None: + raise TypeError("Missing 'provider_name' argument") + if server_side_token_check is None and 'serverSideTokenCheck' in kwargs: + server_side_token_check = kwargs['serverSideTokenCheck'] + if server_side_token_check is None: + raise TypeError("Missing 'server_side_token_check' argument") + + _setter("client_id", client_id) + _setter("provider_name", provider_name) + _setter("server_side_token_check", server_side_token_check) @property @pulumi.getter(name="clientId") @@ -2556,11 +3484,50 @@ def __init__(__self__, *, :param str role_arn: (Optional) ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics. Conflicts with `application_arn`. :param bool user_data_shared: (Optional) If set to `true`, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics. """ - pulumi.set(__self__, "application_arn", application_arn) - pulumi.set(__self__, "application_id", application_id) - pulumi.set(__self__, "external_id", external_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "user_data_shared", user_data_shared) + GetUserPoolClientAnalyticsConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_arn=application_arn, + application_id=application_id, + external_id=external_id, + role_arn=role_arn, + user_data_shared=user_data_shared, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_arn: Optional[str] = None, + application_id: Optional[str] = None, + external_id: Optional[str] = None, + role_arn: Optional[str] = None, + user_data_shared: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_arn is None and 'applicationArn' in kwargs: + application_arn = kwargs['applicationArn'] + if application_arn is None: + raise TypeError("Missing 'application_arn' argument") + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if external_id is None: + raise TypeError("Missing 'external_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if user_data_shared is None and 'userDataShared' in kwargs: + user_data_shared = kwargs['userDataShared'] + if user_data_shared is None: + raise TypeError("Missing 'user_data_shared' argument") + + _setter("application_arn", application_arn) + _setter("application_id", application_id) + _setter("external_id", external_id) + _setter("role_arn", role_arn) + _setter("user_data_shared", user_data_shared) @property @pulumi.getter(name="applicationArn") @@ -2614,9 +3581,36 @@ def __init__(__self__, *, :param str id_token: (Optional) Time unit in for the value in `id_token_validity`, defaults to `hours`. :param str refresh_token: (Optional) Time unit in for the value in `refresh_token_validity`, defaults to `days`. """ - pulumi.set(__self__, "access_token", access_token) - pulumi.set(__self__, "id_token", id_token) - pulumi.set(__self__, "refresh_token", refresh_token) + GetUserPoolClientTokenValidityUnitResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token=access_token, + id_token=id_token, + refresh_token=refresh_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token: Optional[str] = None, + id_token: Optional[str] = None, + refresh_token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token is None and 'accessToken' in kwargs: + access_token = kwargs['accessToken'] + if access_token is None: + raise TypeError("Missing 'access_token' argument") + if id_token is None and 'idToken' in kwargs: + id_token = kwargs['idToken'] + if id_token is None: + raise TypeError("Missing 'id_token' argument") + if refresh_token is None and 'refreshToken' in kwargs: + refresh_token = kwargs['refreshToken'] + if refresh_token is None: + raise TypeError("Missing 'refresh_token' argument") + + _setter("access_token", access_token) + _setter("id_token", id_token) + _setter("refresh_token", refresh_token) @property @pulumi.getter(name="accessToken") diff --git a/sdk/python/pulumi_aws/cognito/resource_server.py b/sdk/python/pulumi_aws/cognito/resource_server.py index 59af01b0347..69b4f7046a2 100644 --- a/sdk/python/pulumi_aws/cognito/resource_server.py +++ b/sdk/python/pulumi_aws/cognito/resource_server.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -26,12 +26,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name for the resource server. :param pulumi.Input[Sequence[pulumi.Input['ResourceServerScopeArgs']]] scopes: A list of Authorization Scope. """ - pulumi.set(__self__, "identifier", identifier) - pulumi.set(__self__, "user_pool_id", user_pool_id) + ResourceServerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + user_pool_id=user_pool_id, + name=name, + scopes=scopes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceServerScopeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + + _setter("identifier", identifier) + _setter("user_pool_id", user_pool_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if scopes is not None: - pulumi.set(__self__, "scopes", scopes) + _setter("scopes", scopes) @property @pulumi.getter @@ -94,16 +117,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] scope_identifiers: A list of all scopes configured for this resource server in the format identifier/scope_name. :param pulumi.Input[Sequence[pulumi.Input['ResourceServerScopeArgs']]] scopes: A list of Authorization Scope. """ + _ResourceServerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + name=name, + scope_identifiers=scope_identifiers, + scopes=scopes, + user_pool_id=user_pool_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + scope_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceServerScopeArgs']]]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scope_identifiers is None and 'scopeIdentifiers' in kwargs: + scope_identifiers = kwargs['scopeIdentifiers'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if scope_identifiers is not None: - pulumi.set(__self__, "scope_identifiers", scope_identifiers) + _setter("scope_identifiers", scope_identifiers) if scopes is not None: - pulumi.set(__self__, "scopes", scopes) + _setter("scopes", scopes) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) @property @pulumi.getter @@ -273,6 +319,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceServerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cognito/risk_configuration.py b/sdk/python/pulumi_aws/cognito/risk_configuration.py index 79061c47ce1..bccceae883e 100644 --- a/sdk/python/pulumi_aws/cognito/risk_configuration.py +++ b/sdk/python/pulumi_aws/cognito/risk_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,46 @@ def __init__(__self__, *, :param pulumi.Input['RiskConfigurationCompromisedCredentialsRiskConfigurationArgs'] compromised_credentials_risk_configuration: The compromised credentials risk configuration. See details below. :param pulumi.Input['RiskConfigurationRiskExceptionConfigurationArgs'] risk_exception_configuration: The configuration to override the risk decision. See details below. """ - pulumi.set(__self__, "user_pool_id", user_pool_id) + RiskConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_id=user_pool_id, + account_takeover_risk_configuration=account_takeover_risk_configuration, + client_id=client_id, + compromised_credentials_risk_configuration=compromised_credentials_risk_configuration, + risk_exception_configuration=risk_exception_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_id: Optional[pulumi.Input[str]] = None, + account_takeover_risk_configuration: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationArgs']] = None, + client_id: Optional[pulumi.Input[str]] = None, + compromised_credentials_risk_configuration: Optional[pulumi.Input['RiskConfigurationCompromisedCredentialsRiskConfigurationArgs']] = None, + risk_exception_configuration: Optional[pulumi.Input['RiskConfigurationRiskExceptionConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if account_takeover_risk_configuration is None and 'accountTakeoverRiskConfiguration' in kwargs: + account_takeover_risk_configuration = kwargs['accountTakeoverRiskConfiguration'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if compromised_credentials_risk_configuration is None and 'compromisedCredentialsRiskConfiguration' in kwargs: + compromised_credentials_risk_configuration = kwargs['compromisedCredentialsRiskConfiguration'] + if risk_exception_configuration is None and 'riskExceptionConfiguration' in kwargs: + risk_exception_configuration = kwargs['riskExceptionConfiguration'] + + _setter("user_pool_id", user_pool_id) if account_takeover_risk_configuration is not None: - pulumi.set(__self__, "account_takeover_risk_configuration", account_takeover_risk_configuration) + _setter("account_takeover_risk_configuration", account_takeover_risk_configuration) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if compromised_credentials_risk_configuration is not None: - pulumi.set(__self__, "compromised_credentials_risk_configuration", compromised_credentials_risk_configuration) + _setter("compromised_credentials_risk_configuration", compromised_credentials_risk_configuration) if risk_exception_configuration is not None: - pulumi.set(__self__, "risk_exception_configuration", risk_exception_configuration) + _setter("risk_exception_configuration", risk_exception_configuration) @property @pulumi.getter(name="userPoolId") @@ -116,16 +147,45 @@ def __init__(__self__, *, :param pulumi.Input['RiskConfigurationRiskExceptionConfigurationArgs'] risk_exception_configuration: The configuration to override the risk decision. See details below. :param pulumi.Input[str] user_pool_id: The user pool ID. """ + _RiskConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_takeover_risk_configuration=account_takeover_risk_configuration, + client_id=client_id, + compromised_credentials_risk_configuration=compromised_credentials_risk_configuration, + risk_exception_configuration=risk_exception_configuration, + user_pool_id=user_pool_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_takeover_risk_configuration: Optional[pulumi.Input['RiskConfigurationAccountTakeoverRiskConfigurationArgs']] = None, + client_id: Optional[pulumi.Input[str]] = None, + compromised_credentials_risk_configuration: Optional[pulumi.Input['RiskConfigurationCompromisedCredentialsRiskConfigurationArgs']] = None, + risk_exception_configuration: Optional[pulumi.Input['RiskConfigurationRiskExceptionConfigurationArgs']] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_takeover_risk_configuration is None and 'accountTakeoverRiskConfiguration' in kwargs: + account_takeover_risk_configuration = kwargs['accountTakeoverRiskConfiguration'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if compromised_credentials_risk_configuration is None and 'compromisedCredentialsRiskConfiguration' in kwargs: + compromised_credentials_risk_configuration = kwargs['compromisedCredentialsRiskConfiguration'] + if risk_exception_configuration is None and 'riskExceptionConfiguration' in kwargs: + risk_exception_configuration = kwargs['riskExceptionConfiguration'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if account_takeover_risk_configuration is not None: - pulumi.set(__self__, "account_takeover_risk_configuration", account_takeover_risk_configuration) + _setter("account_takeover_risk_configuration", account_takeover_risk_configuration) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if compromised_credentials_risk_configuration is not None: - pulumi.set(__self__, "compromised_credentials_risk_configuration", compromised_credentials_risk_configuration) + _setter("compromised_credentials_risk_configuration", compromised_credentials_risk_configuration) if risk_exception_configuration is not None: - pulumi.set(__self__, "risk_exception_configuration", risk_exception_configuration) + _setter("risk_exception_configuration", risk_exception_configuration) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) @property @pulumi.getter(name="accountTakeoverRiskConfiguration") @@ -289,6 +349,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RiskConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -308,9 +372,12 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = RiskConfigurationArgs.__new__(RiskConfigurationArgs) + account_takeover_risk_configuration = _utilities.configure(account_takeover_risk_configuration, RiskConfigurationAccountTakeoverRiskConfigurationArgs, True) __props__.__dict__["account_takeover_risk_configuration"] = account_takeover_risk_configuration __props__.__dict__["client_id"] = client_id + compromised_credentials_risk_configuration = _utilities.configure(compromised_credentials_risk_configuration, RiskConfigurationCompromisedCredentialsRiskConfigurationArgs, True) __props__.__dict__["compromised_credentials_risk_configuration"] = compromised_credentials_risk_configuration + risk_exception_configuration = _utilities.configure(risk_exception_configuration, RiskConfigurationRiskExceptionConfigurationArgs, True) __props__.__dict__["risk_exception_configuration"] = risk_exception_configuration if user_pool_id is None and not opts.urn: raise TypeError("Missing required property 'user_pool_id'") diff --git a/sdk/python/pulumi_aws/cognito/user.py b/sdk/python/pulumi_aws/cognito/user.py index 4251f690e3a..8c557d82e8e 100644 --- a/sdk/python/pulumi_aws/cognito/user.py +++ b/sdk/python/pulumi_aws/cognito/user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserArgs', 'User'] @@ -43,26 +43,75 @@ def __init__(__self__, *, > **NOTE:** Clearing `password` or `temporary_password` does not reset user's password in Cognito. """ - pulumi.set(__self__, "user_pool_id", user_pool_id) - pulumi.set(__self__, "username", username) + UserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_id=user_pool_id, + username=username, + attributes=attributes, + client_metadata=client_metadata, + desired_delivery_mediums=desired_delivery_mediums, + enabled=enabled, + force_alias_creation=force_alias_creation, + message_action=message_action, + password=password, + temporary_password=temporary_password, + validation_data=validation_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_id: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + client_metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + desired_delivery_mediums: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + force_alias_creation: Optional[pulumi.Input[bool]] = None, + message_action: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + temporary_password: Optional[pulumi.Input[str]] = None, + validation_data: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if client_metadata is None and 'clientMetadata' in kwargs: + client_metadata = kwargs['clientMetadata'] + if desired_delivery_mediums is None and 'desiredDeliveryMediums' in kwargs: + desired_delivery_mediums = kwargs['desiredDeliveryMediums'] + if force_alias_creation is None and 'forceAliasCreation' in kwargs: + force_alias_creation = kwargs['forceAliasCreation'] + if message_action is None and 'messageAction' in kwargs: + message_action = kwargs['messageAction'] + if temporary_password is None and 'temporaryPassword' in kwargs: + temporary_password = kwargs['temporaryPassword'] + if validation_data is None and 'validationData' in kwargs: + validation_data = kwargs['validationData'] + + _setter("user_pool_id", user_pool_id) + _setter("username", username) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if client_metadata is not None: - pulumi.set(__self__, "client_metadata", client_metadata) + _setter("client_metadata", client_metadata) if desired_delivery_mediums is not None: - pulumi.set(__self__, "desired_delivery_mediums", desired_delivery_mediums) + _setter("desired_delivery_mediums", desired_delivery_mediums) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if force_alias_creation is not None: - pulumi.set(__self__, "force_alias_creation", force_alias_creation) + _setter("force_alias_creation", force_alias_creation) if message_action is not None: - pulumi.set(__self__, "message_action", message_action) + _setter("message_action", message_action) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if temporary_password is not None: - pulumi.set(__self__, "temporary_password", temporary_password) + _setter("temporary_password", temporary_password) if validation_data is not None: - pulumi.set(__self__, "validation_data", validation_data) + _setter("validation_data", validation_data) @property @pulumi.getter(name="userPoolId") @@ -241,40 +290,105 @@ def __init__(__self__, *, > **NOTE:** Clearing `password` or `temporary_password` does not reset user's password in Cognito. """ + _UserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + client_metadata=client_metadata, + creation_date=creation_date, + desired_delivery_mediums=desired_delivery_mediums, + enabled=enabled, + force_alias_creation=force_alias_creation, + last_modified_date=last_modified_date, + message_action=message_action, + mfa_setting_lists=mfa_setting_lists, + password=password, + preferred_mfa_setting=preferred_mfa_setting, + status=status, + sub=sub, + temporary_password=temporary_password, + user_pool_id=user_pool_id, + username=username, + validation_data=validation_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + client_metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + desired_delivery_mediums: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + force_alias_creation: Optional[pulumi.Input[bool]] = None, + last_modified_date: Optional[pulumi.Input[str]] = None, + message_action: Optional[pulumi.Input[str]] = None, + mfa_setting_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + password: Optional[pulumi.Input[str]] = None, + preferred_mfa_setting: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + sub: Optional[pulumi.Input[str]] = None, + temporary_password: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + validation_data: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_metadata is None and 'clientMetadata' in kwargs: + client_metadata = kwargs['clientMetadata'] + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if desired_delivery_mediums is None and 'desiredDeliveryMediums' in kwargs: + desired_delivery_mediums = kwargs['desiredDeliveryMediums'] + if force_alias_creation is None and 'forceAliasCreation' in kwargs: + force_alias_creation = kwargs['forceAliasCreation'] + if last_modified_date is None and 'lastModifiedDate' in kwargs: + last_modified_date = kwargs['lastModifiedDate'] + if message_action is None and 'messageAction' in kwargs: + message_action = kwargs['messageAction'] + if mfa_setting_lists is None and 'mfaSettingLists' in kwargs: + mfa_setting_lists = kwargs['mfaSettingLists'] + if preferred_mfa_setting is None and 'preferredMfaSetting' in kwargs: + preferred_mfa_setting = kwargs['preferredMfaSetting'] + if temporary_password is None and 'temporaryPassword' in kwargs: + temporary_password = kwargs['temporaryPassword'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if validation_data is None and 'validationData' in kwargs: + validation_data = kwargs['validationData'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if client_metadata is not None: - pulumi.set(__self__, "client_metadata", client_metadata) + _setter("client_metadata", client_metadata) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if desired_delivery_mediums is not None: - pulumi.set(__self__, "desired_delivery_mediums", desired_delivery_mediums) + _setter("desired_delivery_mediums", desired_delivery_mediums) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if force_alias_creation is not None: - pulumi.set(__self__, "force_alias_creation", force_alias_creation) + _setter("force_alias_creation", force_alias_creation) if last_modified_date is not None: - pulumi.set(__self__, "last_modified_date", last_modified_date) + _setter("last_modified_date", last_modified_date) if message_action is not None: - pulumi.set(__self__, "message_action", message_action) + _setter("message_action", message_action) if mfa_setting_lists is not None: - pulumi.set(__self__, "mfa_setting_lists", mfa_setting_lists) + _setter("mfa_setting_lists", mfa_setting_lists) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if preferred_mfa_setting is not None: - pulumi.set(__self__, "preferred_mfa_setting", preferred_mfa_setting) + _setter("preferred_mfa_setting", preferred_mfa_setting) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if sub is not None: - pulumi.set(__self__, "sub", sub) + _setter("sub", sub) if temporary_password is not None: - pulumi.set(__self__, "temporary_password", temporary_password) + _setter("temporary_password", temporary_password) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) if validation_data is not None: - pulumi.set(__self__, "validation_data", validation_data) + _setter("validation_data", validation_data) @property @pulumi.getter @@ -638,6 +752,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cognito/user_group.py b/sdk/python/pulumi_aws/cognito/user_group.py index b48bcf3cf86..e2d0b7efbff 100644 --- a/sdk/python/pulumi_aws/cognito/user_group.py +++ b/sdk/python/pulumi_aws/cognito/user_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserGroupArgs', 'UserGroup'] @@ -27,15 +27,40 @@ def __init__(__self__, *, :param pulumi.Input[int] precedence: The precedence of the user group. :param pulumi.Input[str] role_arn: The ARN of the IAM role to be associated with the user group. """ - pulumi.set(__self__, "user_pool_id", user_pool_id) + UserGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_id=user_pool_id, + description=description, + name=name, + precedence=precedence, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + precedence: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("user_pool_id", user_pool_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if precedence is not None: - pulumi.set(__self__, "precedence", precedence) + _setter("precedence", precedence) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="userPoolId") @@ -114,16 +139,39 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the IAM role to be associated with the user group. :param pulumi.Input[str] user_pool_id: The user pool ID. """ + _UserGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + precedence=precedence, + role_arn=role_arn, + user_pool_id=user_pool_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + precedence: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if precedence is not None: - pulumi.set(__self__, "precedence", precedence) + _setter("precedence", precedence) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) @property @pulumi.getter @@ -313,6 +361,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cognito/user_in_group.py b/sdk/python/pulumi_aws/cognito/user_in_group.py index 6bf3c15ca51..941004b3f45 100644 --- a/sdk/python/pulumi_aws/cognito/user_in_group.py +++ b/sdk/python/pulumi_aws/cognito/user_in_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserInGroupArgs', 'UserInGroup'] @@ -23,9 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[str] user_pool_id: The user pool ID of the user and group. :param pulumi.Input[str] username: The username of the user to be added to the group. """ - pulumi.set(__self__, "group_name", group_name) - pulumi.set(__self__, "user_pool_id", user_pool_id) - pulumi.set(__self__, "username", username) + UserInGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + user_pool_id=user_pool_id, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("group_name", group_name) + _setter("user_pool_id", user_pool_id) + _setter("username", username) @property @pulumi.getter(name="groupName") @@ -76,12 +101,31 @@ def __init__(__self__, *, :param pulumi.Input[str] user_pool_id: The user pool ID of the user and group. :param pulumi.Input[str] username: The username of the user to be added to the group. """ + _UserInGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + user_pool_id=user_pool_id, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter(name="groupName") @@ -203,6 +247,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserInGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cognito/user_pool.py b/sdk/python/pulumi_aws/cognito/user_pool.py index 481d6a40372..cae4d7523a9 100644 --- a/sdk/python/pulumi_aws/cognito/user_pool.py +++ b/sdk/python/pulumi_aws/cognito/user_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -69,54 +69,153 @@ def __init__(__self__, *, :param pulumi.Input['UserPoolUsernameConfigurationArgs'] username_configuration: Configuration block for username configuration. Detailed below. :param pulumi.Input['UserPoolVerificationMessageTemplateArgs'] verification_message_template: Configuration block for verification message templates. Detailed below. """ + UserPoolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_recovery_setting=account_recovery_setting, + admin_create_user_config=admin_create_user_config, + alias_attributes=alias_attributes, + auto_verified_attributes=auto_verified_attributes, + deletion_protection=deletion_protection, + device_configuration=device_configuration, + email_configuration=email_configuration, + email_verification_message=email_verification_message, + email_verification_subject=email_verification_subject, + lambda_config=lambda_config, + mfa_configuration=mfa_configuration, + name=name, + password_policy=password_policy, + schemas=schemas, + sms_authentication_message=sms_authentication_message, + sms_configuration=sms_configuration, + sms_verification_message=sms_verification_message, + software_token_mfa_configuration=software_token_mfa_configuration, + tags=tags, + user_attribute_update_settings=user_attribute_update_settings, + user_pool_add_ons=user_pool_add_ons, + username_attributes=username_attributes, + username_configuration=username_configuration, + verification_message_template=verification_message_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_recovery_setting: Optional[pulumi.Input['UserPoolAccountRecoverySettingArgs']] = None, + admin_create_user_config: Optional[pulumi.Input['UserPoolAdminCreateUserConfigArgs']] = None, + alias_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + auto_verified_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + deletion_protection: Optional[pulumi.Input[str]] = None, + device_configuration: Optional[pulumi.Input['UserPoolDeviceConfigurationArgs']] = None, + email_configuration: Optional[pulumi.Input['UserPoolEmailConfigurationArgs']] = None, + email_verification_message: Optional[pulumi.Input[str]] = None, + email_verification_subject: Optional[pulumi.Input[str]] = None, + lambda_config: Optional[pulumi.Input['UserPoolLambdaConfigArgs']] = None, + mfa_configuration: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + password_policy: Optional[pulumi.Input['UserPoolPasswordPolicyArgs']] = None, + schemas: Optional[pulumi.Input[Sequence[pulumi.Input['UserPoolSchemaArgs']]]] = None, + sms_authentication_message: Optional[pulumi.Input[str]] = None, + sms_configuration: Optional[pulumi.Input['UserPoolSmsConfigurationArgs']] = None, + sms_verification_message: Optional[pulumi.Input[str]] = None, + software_token_mfa_configuration: Optional[pulumi.Input['UserPoolSoftwareTokenMfaConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_attribute_update_settings: Optional[pulumi.Input['UserPoolUserAttributeUpdateSettingsArgs']] = None, + user_pool_add_ons: Optional[pulumi.Input['UserPoolUserPoolAddOnsArgs']] = None, + username_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + username_configuration: Optional[pulumi.Input['UserPoolUsernameConfigurationArgs']] = None, + verification_message_template: Optional[pulumi.Input['UserPoolVerificationMessageTemplateArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_recovery_setting is None and 'accountRecoverySetting' in kwargs: + account_recovery_setting = kwargs['accountRecoverySetting'] + if admin_create_user_config is None and 'adminCreateUserConfig' in kwargs: + admin_create_user_config = kwargs['adminCreateUserConfig'] + if alias_attributes is None and 'aliasAttributes' in kwargs: + alias_attributes = kwargs['aliasAttributes'] + if auto_verified_attributes is None and 'autoVerifiedAttributes' in kwargs: + auto_verified_attributes = kwargs['autoVerifiedAttributes'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if device_configuration is None and 'deviceConfiguration' in kwargs: + device_configuration = kwargs['deviceConfiguration'] + if email_configuration is None and 'emailConfiguration' in kwargs: + email_configuration = kwargs['emailConfiguration'] + if email_verification_message is None and 'emailVerificationMessage' in kwargs: + email_verification_message = kwargs['emailVerificationMessage'] + if email_verification_subject is None and 'emailVerificationSubject' in kwargs: + email_verification_subject = kwargs['emailVerificationSubject'] + if lambda_config is None and 'lambdaConfig' in kwargs: + lambda_config = kwargs['lambdaConfig'] + if mfa_configuration is None and 'mfaConfiguration' in kwargs: + mfa_configuration = kwargs['mfaConfiguration'] + if password_policy is None and 'passwordPolicy' in kwargs: + password_policy = kwargs['passwordPolicy'] + if sms_authentication_message is None and 'smsAuthenticationMessage' in kwargs: + sms_authentication_message = kwargs['smsAuthenticationMessage'] + if sms_configuration is None and 'smsConfiguration' in kwargs: + sms_configuration = kwargs['smsConfiguration'] + if sms_verification_message is None and 'smsVerificationMessage' in kwargs: + sms_verification_message = kwargs['smsVerificationMessage'] + if software_token_mfa_configuration is None and 'softwareTokenMfaConfiguration' in kwargs: + software_token_mfa_configuration = kwargs['softwareTokenMfaConfiguration'] + if user_attribute_update_settings is None and 'userAttributeUpdateSettings' in kwargs: + user_attribute_update_settings = kwargs['userAttributeUpdateSettings'] + if user_pool_add_ons is None and 'userPoolAddOns' in kwargs: + user_pool_add_ons = kwargs['userPoolAddOns'] + if username_attributes is None and 'usernameAttributes' in kwargs: + username_attributes = kwargs['usernameAttributes'] + if username_configuration is None and 'usernameConfiguration' in kwargs: + username_configuration = kwargs['usernameConfiguration'] + if verification_message_template is None and 'verificationMessageTemplate' in kwargs: + verification_message_template = kwargs['verificationMessageTemplate'] + if account_recovery_setting is not None: - pulumi.set(__self__, "account_recovery_setting", account_recovery_setting) + _setter("account_recovery_setting", account_recovery_setting) if admin_create_user_config is not None: - pulumi.set(__self__, "admin_create_user_config", admin_create_user_config) + _setter("admin_create_user_config", admin_create_user_config) if alias_attributes is not None: - pulumi.set(__self__, "alias_attributes", alias_attributes) + _setter("alias_attributes", alias_attributes) if auto_verified_attributes is not None: - pulumi.set(__self__, "auto_verified_attributes", auto_verified_attributes) + _setter("auto_verified_attributes", auto_verified_attributes) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if device_configuration is not None: - pulumi.set(__self__, "device_configuration", device_configuration) + _setter("device_configuration", device_configuration) if email_configuration is not None: - pulumi.set(__self__, "email_configuration", email_configuration) + _setter("email_configuration", email_configuration) if email_verification_message is not None: - pulumi.set(__self__, "email_verification_message", email_verification_message) + _setter("email_verification_message", email_verification_message) if email_verification_subject is not None: - pulumi.set(__self__, "email_verification_subject", email_verification_subject) + _setter("email_verification_subject", email_verification_subject) if lambda_config is not None: - pulumi.set(__self__, "lambda_config", lambda_config) + _setter("lambda_config", lambda_config) if mfa_configuration is not None: - pulumi.set(__self__, "mfa_configuration", mfa_configuration) + _setter("mfa_configuration", mfa_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if password_policy is not None: - pulumi.set(__self__, "password_policy", password_policy) + _setter("password_policy", password_policy) if schemas is not None: - pulumi.set(__self__, "schemas", schemas) + _setter("schemas", schemas) if sms_authentication_message is not None: - pulumi.set(__self__, "sms_authentication_message", sms_authentication_message) + _setter("sms_authentication_message", sms_authentication_message) if sms_configuration is not None: - pulumi.set(__self__, "sms_configuration", sms_configuration) + _setter("sms_configuration", sms_configuration) if sms_verification_message is not None: - pulumi.set(__self__, "sms_verification_message", sms_verification_message) + _setter("sms_verification_message", sms_verification_message) if software_token_mfa_configuration is not None: - pulumi.set(__self__, "software_token_mfa_configuration", software_token_mfa_configuration) + _setter("software_token_mfa_configuration", software_token_mfa_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_attribute_update_settings is not None: - pulumi.set(__self__, "user_attribute_update_settings", user_attribute_update_settings) + _setter("user_attribute_update_settings", user_attribute_update_settings) if user_pool_add_ons is not None: - pulumi.set(__self__, "user_pool_add_ons", user_pool_add_ons) + _setter("user_pool_add_ons", user_pool_add_ons) if username_attributes is not None: - pulumi.set(__self__, "username_attributes", username_attributes) + _setter("username_attributes", username_attributes) if username_configuration is not None: - pulumi.set(__self__, "username_configuration", username_configuration) + _setter("username_configuration", username_configuration) if verification_message_template is not None: - pulumi.set(__self__, "verification_message_template", verification_message_template) + _setter("verification_message_template", verification_message_template) @property @pulumi.getter(name="accountRecoverySetting") @@ -481,73 +580,198 @@ def __init__(__self__, *, :param pulumi.Input['UserPoolUsernameConfigurationArgs'] username_configuration: Configuration block for username configuration. Detailed below. :param pulumi.Input['UserPoolVerificationMessageTemplateArgs'] verification_message_template: Configuration block for verification message templates. Detailed below. """ + _UserPoolState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_recovery_setting=account_recovery_setting, + admin_create_user_config=admin_create_user_config, + alias_attributes=alias_attributes, + arn=arn, + auto_verified_attributes=auto_verified_attributes, + creation_date=creation_date, + custom_domain=custom_domain, + deletion_protection=deletion_protection, + device_configuration=device_configuration, + domain=domain, + email_configuration=email_configuration, + email_verification_message=email_verification_message, + email_verification_subject=email_verification_subject, + endpoint=endpoint, + estimated_number_of_users=estimated_number_of_users, + lambda_config=lambda_config, + last_modified_date=last_modified_date, + mfa_configuration=mfa_configuration, + name=name, + password_policy=password_policy, + schemas=schemas, + sms_authentication_message=sms_authentication_message, + sms_configuration=sms_configuration, + sms_verification_message=sms_verification_message, + software_token_mfa_configuration=software_token_mfa_configuration, + tags=tags, + tags_all=tags_all, + user_attribute_update_settings=user_attribute_update_settings, + user_pool_add_ons=user_pool_add_ons, + username_attributes=username_attributes, + username_configuration=username_configuration, + verification_message_template=verification_message_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_recovery_setting: Optional[pulumi.Input['UserPoolAccountRecoverySettingArgs']] = None, + admin_create_user_config: Optional[pulumi.Input['UserPoolAdminCreateUserConfigArgs']] = None, + alias_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_verified_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + custom_domain: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[str]] = None, + device_configuration: Optional[pulumi.Input['UserPoolDeviceConfigurationArgs']] = None, + domain: Optional[pulumi.Input[str]] = None, + email_configuration: Optional[pulumi.Input['UserPoolEmailConfigurationArgs']] = None, + email_verification_message: Optional[pulumi.Input[str]] = None, + email_verification_subject: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + estimated_number_of_users: Optional[pulumi.Input[int]] = None, + lambda_config: Optional[pulumi.Input['UserPoolLambdaConfigArgs']] = None, + last_modified_date: Optional[pulumi.Input[str]] = None, + mfa_configuration: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + password_policy: Optional[pulumi.Input['UserPoolPasswordPolicyArgs']] = None, + schemas: Optional[pulumi.Input[Sequence[pulumi.Input['UserPoolSchemaArgs']]]] = None, + sms_authentication_message: Optional[pulumi.Input[str]] = None, + sms_configuration: Optional[pulumi.Input['UserPoolSmsConfigurationArgs']] = None, + sms_verification_message: Optional[pulumi.Input[str]] = None, + software_token_mfa_configuration: Optional[pulumi.Input['UserPoolSoftwareTokenMfaConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_attribute_update_settings: Optional[pulumi.Input['UserPoolUserAttributeUpdateSettingsArgs']] = None, + user_pool_add_ons: Optional[pulumi.Input['UserPoolUserPoolAddOnsArgs']] = None, + username_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + username_configuration: Optional[pulumi.Input['UserPoolUsernameConfigurationArgs']] = None, + verification_message_template: Optional[pulumi.Input['UserPoolVerificationMessageTemplateArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_recovery_setting is None and 'accountRecoverySetting' in kwargs: + account_recovery_setting = kwargs['accountRecoverySetting'] + if admin_create_user_config is None and 'adminCreateUserConfig' in kwargs: + admin_create_user_config = kwargs['adminCreateUserConfig'] + if alias_attributes is None and 'aliasAttributes' in kwargs: + alias_attributes = kwargs['aliasAttributes'] + if auto_verified_attributes is None and 'autoVerifiedAttributes' in kwargs: + auto_verified_attributes = kwargs['autoVerifiedAttributes'] + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if custom_domain is None and 'customDomain' in kwargs: + custom_domain = kwargs['customDomain'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if device_configuration is None and 'deviceConfiguration' in kwargs: + device_configuration = kwargs['deviceConfiguration'] + if email_configuration is None and 'emailConfiguration' in kwargs: + email_configuration = kwargs['emailConfiguration'] + if email_verification_message is None and 'emailVerificationMessage' in kwargs: + email_verification_message = kwargs['emailVerificationMessage'] + if email_verification_subject is None and 'emailVerificationSubject' in kwargs: + email_verification_subject = kwargs['emailVerificationSubject'] + if estimated_number_of_users is None and 'estimatedNumberOfUsers' in kwargs: + estimated_number_of_users = kwargs['estimatedNumberOfUsers'] + if lambda_config is None and 'lambdaConfig' in kwargs: + lambda_config = kwargs['lambdaConfig'] + if last_modified_date is None and 'lastModifiedDate' in kwargs: + last_modified_date = kwargs['lastModifiedDate'] + if mfa_configuration is None and 'mfaConfiguration' in kwargs: + mfa_configuration = kwargs['mfaConfiguration'] + if password_policy is None and 'passwordPolicy' in kwargs: + password_policy = kwargs['passwordPolicy'] + if sms_authentication_message is None and 'smsAuthenticationMessage' in kwargs: + sms_authentication_message = kwargs['smsAuthenticationMessage'] + if sms_configuration is None and 'smsConfiguration' in kwargs: + sms_configuration = kwargs['smsConfiguration'] + if sms_verification_message is None and 'smsVerificationMessage' in kwargs: + sms_verification_message = kwargs['smsVerificationMessage'] + if software_token_mfa_configuration is None and 'softwareTokenMfaConfiguration' in kwargs: + software_token_mfa_configuration = kwargs['softwareTokenMfaConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_attribute_update_settings is None and 'userAttributeUpdateSettings' in kwargs: + user_attribute_update_settings = kwargs['userAttributeUpdateSettings'] + if user_pool_add_ons is None and 'userPoolAddOns' in kwargs: + user_pool_add_ons = kwargs['userPoolAddOns'] + if username_attributes is None and 'usernameAttributes' in kwargs: + username_attributes = kwargs['usernameAttributes'] + if username_configuration is None and 'usernameConfiguration' in kwargs: + username_configuration = kwargs['usernameConfiguration'] + if verification_message_template is None and 'verificationMessageTemplate' in kwargs: + verification_message_template = kwargs['verificationMessageTemplate'] + if account_recovery_setting is not None: - pulumi.set(__self__, "account_recovery_setting", account_recovery_setting) + _setter("account_recovery_setting", account_recovery_setting) if admin_create_user_config is not None: - pulumi.set(__self__, "admin_create_user_config", admin_create_user_config) + _setter("admin_create_user_config", admin_create_user_config) if alias_attributes is not None: - pulumi.set(__self__, "alias_attributes", alias_attributes) + _setter("alias_attributes", alias_attributes) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_verified_attributes is not None: - pulumi.set(__self__, "auto_verified_attributes", auto_verified_attributes) + _setter("auto_verified_attributes", auto_verified_attributes) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if custom_domain is not None: - pulumi.set(__self__, "custom_domain", custom_domain) + _setter("custom_domain", custom_domain) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if device_configuration is not None: - pulumi.set(__self__, "device_configuration", device_configuration) + _setter("device_configuration", device_configuration) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if email_configuration is not None: - pulumi.set(__self__, "email_configuration", email_configuration) + _setter("email_configuration", email_configuration) if email_verification_message is not None: - pulumi.set(__self__, "email_verification_message", email_verification_message) + _setter("email_verification_message", email_verification_message) if email_verification_subject is not None: - pulumi.set(__self__, "email_verification_subject", email_verification_subject) + _setter("email_verification_subject", email_verification_subject) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if estimated_number_of_users is not None: - pulumi.set(__self__, "estimated_number_of_users", estimated_number_of_users) + _setter("estimated_number_of_users", estimated_number_of_users) if lambda_config is not None: - pulumi.set(__self__, "lambda_config", lambda_config) + _setter("lambda_config", lambda_config) if last_modified_date is not None: - pulumi.set(__self__, "last_modified_date", last_modified_date) + _setter("last_modified_date", last_modified_date) if mfa_configuration is not None: - pulumi.set(__self__, "mfa_configuration", mfa_configuration) + _setter("mfa_configuration", mfa_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if password_policy is not None: - pulumi.set(__self__, "password_policy", password_policy) + _setter("password_policy", password_policy) if schemas is not None: - pulumi.set(__self__, "schemas", schemas) + _setter("schemas", schemas) if sms_authentication_message is not None: - pulumi.set(__self__, "sms_authentication_message", sms_authentication_message) + _setter("sms_authentication_message", sms_authentication_message) if sms_configuration is not None: - pulumi.set(__self__, "sms_configuration", sms_configuration) + _setter("sms_configuration", sms_configuration) if sms_verification_message is not None: - pulumi.set(__self__, "sms_verification_message", sms_verification_message) + _setter("sms_verification_message", sms_verification_message) if software_token_mfa_configuration is not None: - pulumi.set(__self__, "software_token_mfa_configuration", software_token_mfa_configuration) + _setter("software_token_mfa_configuration", software_token_mfa_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_attribute_update_settings is not None: - pulumi.set(__self__, "user_attribute_update_settings", user_attribute_update_settings) + _setter("user_attribute_update_settings", user_attribute_update_settings) if user_pool_add_ons is not None: - pulumi.set(__self__, "user_pool_add_ons", user_pool_add_ons) + _setter("user_pool_add_ons", user_pool_add_ons) if username_attributes is not None: - pulumi.set(__self__, "username_attributes", username_attributes) + _setter("username_attributes", username_attributes) if username_configuration is not None: - pulumi.set(__self__, "username_configuration", username_configuration) + _setter("username_configuration", username_configuration) if verification_message_template is not None: - pulumi.set(__self__, "verification_message_template", verification_message_template) + _setter("verification_message_template", verification_message_template) @property @pulumi.getter(name="accountRecoverySetting") @@ -1132,6 +1356,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserPoolArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1170,29 +1398,41 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = UserPoolArgs.__new__(UserPoolArgs) + account_recovery_setting = _utilities.configure(account_recovery_setting, UserPoolAccountRecoverySettingArgs, True) __props__.__dict__["account_recovery_setting"] = account_recovery_setting + admin_create_user_config = _utilities.configure(admin_create_user_config, UserPoolAdminCreateUserConfigArgs, True) __props__.__dict__["admin_create_user_config"] = admin_create_user_config __props__.__dict__["alias_attributes"] = alias_attributes __props__.__dict__["auto_verified_attributes"] = auto_verified_attributes __props__.__dict__["deletion_protection"] = deletion_protection + device_configuration = _utilities.configure(device_configuration, UserPoolDeviceConfigurationArgs, True) __props__.__dict__["device_configuration"] = device_configuration + email_configuration = _utilities.configure(email_configuration, UserPoolEmailConfigurationArgs, True) __props__.__dict__["email_configuration"] = email_configuration __props__.__dict__["email_verification_message"] = email_verification_message __props__.__dict__["email_verification_subject"] = email_verification_subject + lambda_config = _utilities.configure(lambda_config, UserPoolLambdaConfigArgs, True) __props__.__dict__["lambda_config"] = lambda_config __props__.__dict__["mfa_configuration"] = mfa_configuration __props__.__dict__["name"] = name + password_policy = _utilities.configure(password_policy, UserPoolPasswordPolicyArgs, True) __props__.__dict__["password_policy"] = password_policy __props__.__dict__["schemas"] = schemas __props__.__dict__["sms_authentication_message"] = sms_authentication_message + sms_configuration = _utilities.configure(sms_configuration, UserPoolSmsConfigurationArgs, True) __props__.__dict__["sms_configuration"] = sms_configuration __props__.__dict__["sms_verification_message"] = sms_verification_message + software_token_mfa_configuration = _utilities.configure(software_token_mfa_configuration, UserPoolSoftwareTokenMfaConfigurationArgs, True) __props__.__dict__["software_token_mfa_configuration"] = software_token_mfa_configuration __props__.__dict__["tags"] = tags + user_attribute_update_settings = _utilities.configure(user_attribute_update_settings, UserPoolUserAttributeUpdateSettingsArgs, True) __props__.__dict__["user_attribute_update_settings"] = user_attribute_update_settings + user_pool_add_ons = _utilities.configure(user_pool_add_ons, UserPoolUserPoolAddOnsArgs, True) __props__.__dict__["user_pool_add_ons"] = user_pool_add_ons __props__.__dict__["username_attributes"] = username_attributes + username_configuration = _utilities.configure(username_configuration, UserPoolUsernameConfigurationArgs, True) __props__.__dict__["username_configuration"] = username_configuration + verification_message_template = _utilities.configure(verification_message_template, UserPoolVerificationMessageTemplateArgs, True) __props__.__dict__["verification_message_template"] = verification_message_template __props__.__dict__["arn"] = None __props__.__dict__["creation_date"] = None diff --git a/sdk/python/pulumi_aws/cognito/user_pool_client.py b/sdk/python/pulumi_aws/cognito/user_pool_client.py index 4da84f4ef55..c0d78e69250 100644 --- a/sdk/python/pulumi_aws/cognito/user_pool_client.py +++ b/sdk/python/pulumi_aws/cognito/user_pool_client.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -71,49 +71,146 @@ def __init__(__self__, *, :param pulumi.Input['UserPoolClientTokenValidityUnitsArgs'] token_validity_units: Configuration block for units in which the validity times are represented in. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[str]]] write_attributes: List of user pool attributes the application client can write to. """ - pulumi.set(__self__, "user_pool_id", user_pool_id) + UserPoolClientArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_id=user_pool_id, + access_token_validity=access_token_validity, + allowed_oauth_flows=allowed_oauth_flows, + allowed_oauth_flows_user_pool_client=allowed_oauth_flows_user_pool_client, + allowed_oauth_scopes=allowed_oauth_scopes, + analytics_configuration=analytics_configuration, + auth_session_validity=auth_session_validity, + callback_urls=callback_urls, + default_redirect_uri=default_redirect_uri, + enable_propagate_additional_user_context_data=enable_propagate_additional_user_context_data, + enable_token_revocation=enable_token_revocation, + explicit_auth_flows=explicit_auth_flows, + generate_secret=generate_secret, + id_token_validity=id_token_validity, + logout_urls=logout_urls, + name=name, + prevent_user_existence_errors=prevent_user_existence_errors, + read_attributes=read_attributes, + refresh_token_validity=refresh_token_validity, + supported_identity_providers=supported_identity_providers, + token_validity_units=token_validity_units, + write_attributes=write_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_id: Optional[pulumi.Input[str]] = None, + access_token_validity: Optional[pulumi.Input[int]] = None, + allowed_oauth_flows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_oauth_flows_user_pool_client: Optional[pulumi.Input[bool]] = None, + allowed_oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + analytics_configuration: Optional[pulumi.Input['UserPoolClientAnalyticsConfigurationArgs']] = None, + auth_session_validity: Optional[pulumi.Input[int]] = None, + callback_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_redirect_uri: Optional[pulumi.Input[str]] = None, + enable_propagate_additional_user_context_data: Optional[pulumi.Input[bool]] = None, + enable_token_revocation: Optional[pulumi.Input[bool]] = None, + explicit_auth_flows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + generate_secret: Optional[pulumi.Input[bool]] = None, + id_token_validity: Optional[pulumi.Input[int]] = None, + logout_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + prevent_user_existence_errors: Optional[pulumi.Input[str]] = None, + read_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + refresh_token_validity: Optional[pulumi.Input[int]] = None, + supported_identity_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_validity_units: Optional[pulumi.Input['UserPoolClientTokenValidityUnitsArgs']] = None, + write_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if access_token_validity is None and 'accessTokenValidity' in kwargs: + access_token_validity = kwargs['accessTokenValidity'] + if allowed_oauth_flows is None and 'allowedOauthFlows' in kwargs: + allowed_oauth_flows = kwargs['allowedOauthFlows'] + if allowed_oauth_flows_user_pool_client is None and 'allowedOauthFlowsUserPoolClient' in kwargs: + allowed_oauth_flows_user_pool_client = kwargs['allowedOauthFlowsUserPoolClient'] + if allowed_oauth_scopes is None and 'allowedOauthScopes' in kwargs: + allowed_oauth_scopes = kwargs['allowedOauthScopes'] + if analytics_configuration is None and 'analyticsConfiguration' in kwargs: + analytics_configuration = kwargs['analyticsConfiguration'] + if auth_session_validity is None and 'authSessionValidity' in kwargs: + auth_session_validity = kwargs['authSessionValidity'] + if callback_urls is None and 'callbackUrls' in kwargs: + callback_urls = kwargs['callbackUrls'] + if default_redirect_uri is None and 'defaultRedirectUri' in kwargs: + default_redirect_uri = kwargs['defaultRedirectUri'] + if enable_propagate_additional_user_context_data is None and 'enablePropagateAdditionalUserContextData' in kwargs: + enable_propagate_additional_user_context_data = kwargs['enablePropagateAdditionalUserContextData'] + if enable_token_revocation is None and 'enableTokenRevocation' in kwargs: + enable_token_revocation = kwargs['enableTokenRevocation'] + if explicit_auth_flows is None and 'explicitAuthFlows' in kwargs: + explicit_auth_flows = kwargs['explicitAuthFlows'] + if generate_secret is None and 'generateSecret' in kwargs: + generate_secret = kwargs['generateSecret'] + if id_token_validity is None and 'idTokenValidity' in kwargs: + id_token_validity = kwargs['idTokenValidity'] + if logout_urls is None and 'logoutUrls' in kwargs: + logout_urls = kwargs['logoutUrls'] + if prevent_user_existence_errors is None and 'preventUserExistenceErrors' in kwargs: + prevent_user_existence_errors = kwargs['preventUserExistenceErrors'] + if read_attributes is None and 'readAttributes' in kwargs: + read_attributes = kwargs['readAttributes'] + if refresh_token_validity is None and 'refreshTokenValidity' in kwargs: + refresh_token_validity = kwargs['refreshTokenValidity'] + if supported_identity_providers is None and 'supportedIdentityProviders' in kwargs: + supported_identity_providers = kwargs['supportedIdentityProviders'] + if token_validity_units is None and 'tokenValidityUnits' in kwargs: + token_validity_units = kwargs['tokenValidityUnits'] + if write_attributes is None and 'writeAttributes' in kwargs: + write_attributes = kwargs['writeAttributes'] + + _setter("user_pool_id", user_pool_id) if access_token_validity is not None: - pulumi.set(__self__, "access_token_validity", access_token_validity) + _setter("access_token_validity", access_token_validity) if allowed_oauth_flows is not None: - pulumi.set(__self__, "allowed_oauth_flows", allowed_oauth_flows) + _setter("allowed_oauth_flows", allowed_oauth_flows) if allowed_oauth_flows_user_pool_client is not None: - pulumi.set(__self__, "allowed_oauth_flows_user_pool_client", allowed_oauth_flows_user_pool_client) + _setter("allowed_oauth_flows_user_pool_client", allowed_oauth_flows_user_pool_client) if allowed_oauth_scopes is not None: - pulumi.set(__self__, "allowed_oauth_scopes", allowed_oauth_scopes) + _setter("allowed_oauth_scopes", allowed_oauth_scopes) if analytics_configuration is not None: - pulumi.set(__self__, "analytics_configuration", analytics_configuration) + _setter("analytics_configuration", analytics_configuration) if auth_session_validity is not None: - pulumi.set(__self__, "auth_session_validity", auth_session_validity) + _setter("auth_session_validity", auth_session_validity) if callback_urls is not None: - pulumi.set(__self__, "callback_urls", callback_urls) + _setter("callback_urls", callback_urls) if default_redirect_uri is not None: - pulumi.set(__self__, "default_redirect_uri", default_redirect_uri) + _setter("default_redirect_uri", default_redirect_uri) if enable_propagate_additional_user_context_data is not None: - pulumi.set(__self__, "enable_propagate_additional_user_context_data", enable_propagate_additional_user_context_data) + _setter("enable_propagate_additional_user_context_data", enable_propagate_additional_user_context_data) if enable_token_revocation is not None: - pulumi.set(__self__, "enable_token_revocation", enable_token_revocation) + _setter("enable_token_revocation", enable_token_revocation) if explicit_auth_flows is not None: - pulumi.set(__self__, "explicit_auth_flows", explicit_auth_flows) + _setter("explicit_auth_flows", explicit_auth_flows) if generate_secret is not None: - pulumi.set(__self__, "generate_secret", generate_secret) + _setter("generate_secret", generate_secret) if id_token_validity is not None: - pulumi.set(__self__, "id_token_validity", id_token_validity) + _setter("id_token_validity", id_token_validity) if logout_urls is not None: - pulumi.set(__self__, "logout_urls", logout_urls) + _setter("logout_urls", logout_urls) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if prevent_user_existence_errors is not None: - pulumi.set(__self__, "prevent_user_existence_errors", prevent_user_existence_errors) + _setter("prevent_user_existence_errors", prevent_user_existence_errors) if read_attributes is not None: - pulumi.set(__self__, "read_attributes", read_attributes) + _setter("read_attributes", read_attributes) if refresh_token_validity is not None: - pulumi.set(__self__, "refresh_token_validity", refresh_token_validity) + _setter("refresh_token_validity", refresh_token_validity) if supported_identity_providers is not None: - pulumi.set(__self__, "supported_identity_providers", supported_identity_providers) + _setter("supported_identity_providers", supported_identity_providers) if token_validity_units is not None: - pulumi.set(__self__, "token_validity_units", token_validity_units) + _setter("token_validity_units", token_validity_units) if write_attributes is not None: - pulumi.set(__self__, "write_attributes", write_attributes) + _setter("write_attributes", write_attributes) @property @pulumi.getter(name="userPoolId") @@ -448,52 +545,151 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Sequence[pulumi.Input[str]]] write_attributes: List of user pool attributes the application client can write to. """ + _UserPoolClientState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_token_validity=access_token_validity, + allowed_oauth_flows=allowed_oauth_flows, + allowed_oauth_flows_user_pool_client=allowed_oauth_flows_user_pool_client, + allowed_oauth_scopes=allowed_oauth_scopes, + analytics_configuration=analytics_configuration, + auth_session_validity=auth_session_validity, + callback_urls=callback_urls, + client_secret=client_secret, + default_redirect_uri=default_redirect_uri, + enable_propagate_additional_user_context_data=enable_propagate_additional_user_context_data, + enable_token_revocation=enable_token_revocation, + explicit_auth_flows=explicit_auth_flows, + generate_secret=generate_secret, + id_token_validity=id_token_validity, + logout_urls=logout_urls, + name=name, + prevent_user_existence_errors=prevent_user_existence_errors, + read_attributes=read_attributes, + refresh_token_validity=refresh_token_validity, + supported_identity_providers=supported_identity_providers, + token_validity_units=token_validity_units, + user_pool_id=user_pool_id, + write_attributes=write_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_token_validity: Optional[pulumi.Input[int]] = None, + allowed_oauth_flows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_oauth_flows_user_pool_client: Optional[pulumi.Input[bool]] = None, + allowed_oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + analytics_configuration: Optional[pulumi.Input['UserPoolClientAnalyticsConfigurationArgs']] = None, + auth_session_validity: Optional[pulumi.Input[int]] = None, + callback_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + default_redirect_uri: Optional[pulumi.Input[str]] = None, + enable_propagate_additional_user_context_data: Optional[pulumi.Input[bool]] = None, + enable_token_revocation: Optional[pulumi.Input[bool]] = None, + explicit_auth_flows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + generate_secret: Optional[pulumi.Input[bool]] = None, + id_token_validity: Optional[pulumi.Input[int]] = None, + logout_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + prevent_user_existence_errors: Optional[pulumi.Input[str]] = None, + read_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + refresh_token_validity: Optional[pulumi.Input[int]] = None, + supported_identity_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_validity_units: Optional[pulumi.Input['UserPoolClientTokenValidityUnitsArgs']] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + write_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_token_validity is None and 'accessTokenValidity' in kwargs: + access_token_validity = kwargs['accessTokenValidity'] + if allowed_oauth_flows is None and 'allowedOauthFlows' in kwargs: + allowed_oauth_flows = kwargs['allowedOauthFlows'] + if allowed_oauth_flows_user_pool_client is None and 'allowedOauthFlowsUserPoolClient' in kwargs: + allowed_oauth_flows_user_pool_client = kwargs['allowedOauthFlowsUserPoolClient'] + if allowed_oauth_scopes is None and 'allowedOauthScopes' in kwargs: + allowed_oauth_scopes = kwargs['allowedOauthScopes'] + if analytics_configuration is None and 'analyticsConfiguration' in kwargs: + analytics_configuration = kwargs['analyticsConfiguration'] + if auth_session_validity is None and 'authSessionValidity' in kwargs: + auth_session_validity = kwargs['authSessionValidity'] + if callback_urls is None and 'callbackUrls' in kwargs: + callback_urls = kwargs['callbackUrls'] + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if default_redirect_uri is None and 'defaultRedirectUri' in kwargs: + default_redirect_uri = kwargs['defaultRedirectUri'] + if enable_propagate_additional_user_context_data is None and 'enablePropagateAdditionalUserContextData' in kwargs: + enable_propagate_additional_user_context_data = kwargs['enablePropagateAdditionalUserContextData'] + if enable_token_revocation is None and 'enableTokenRevocation' in kwargs: + enable_token_revocation = kwargs['enableTokenRevocation'] + if explicit_auth_flows is None and 'explicitAuthFlows' in kwargs: + explicit_auth_flows = kwargs['explicitAuthFlows'] + if generate_secret is None and 'generateSecret' in kwargs: + generate_secret = kwargs['generateSecret'] + if id_token_validity is None and 'idTokenValidity' in kwargs: + id_token_validity = kwargs['idTokenValidity'] + if logout_urls is None and 'logoutUrls' in kwargs: + logout_urls = kwargs['logoutUrls'] + if prevent_user_existence_errors is None and 'preventUserExistenceErrors' in kwargs: + prevent_user_existence_errors = kwargs['preventUserExistenceErrors'] + if read_attributes is None and 'readAttributes' in kwargs: + read_attributes = kwargs['readAttributes'] + if refresh_token_validity is None and 'refreshTokenValidity' in kwargs: + refresh_token_validity = kwargs['refreshTokenValidity'] + if supported_identity_providers is None and 'supportedIdentityProviders' in kwargs: + supported_identity_providers = kwargs['supportedIdentityProviders'] + if token_validity_units is None and 'tokenValidityUnits' in kwargs: + token_validity_units = kwargs['tokenValidityUnits'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if write_attributes is None and 'writeAttributes' in kwargs: + write_attributes = kwargs['writeAttributes'] + if access_token_validity is not None: - pulumi.set(__self__, "access_token_validity", access_token_validity) + _setter("access_token_validity", access_token_validity) if allowed_oauth_flows is not None: - pulumi.set(__self__, "allowed_oauth_flows", allowed_oauth_flows) + _setter("allowed_oauth_flows", allowed_oauth_flows) if allowed_oauth_flows_user_pool_client is not None: - pulumi.set(__self__, "allowed_oauth_flows_user_pool_client", allowed_oauth_flows_user_pool_client) + _setter("allowed_oauth_flows_user_pool_client", allowed_oauth_flows_user_pool_client) if allowed_oauth_scopes is not None: - pulumi.set(__self__, "allowed_oauth_scopes", allowed_oauth_scopes) + _setter("allowed_oauth_scopes", allowed_oauth_scopes) if analytics_configuration is not None: - pulumi.set(__self__, "analytics_configuration", analytics_configuration) + _setter("analytics_configuration", analytics_configuration) if auth_session_validity is not None: - pulumi.set(__self__, "auth_session_validity", auth_session_validity) + _setter("auth_session_validity", auth_session_validity) if callback_urls is not None: - pulumi.set(__self__, "callback_urls", callback_urls) + _setter("callback_urls", callback_urls) if client_secret is not None: - pulumi.set(__self__, "client_secret", client_secret) + _setter("client_secret", client_secret) if default_redirect_uri is not None: - pulumi.set(__self__, "default_redirect_uri", default_redirect_uri) + _setter("default_redirect_uri", default_redirect_uri) if enable_propagate_additional_user_context_data is not None: - pulumi.set(__self__, "enable_propagate_additional_user_context_data", enable_propagate_additional_user_context_data) + _setter("enable_propagate_additional_user_context_data", enable_propagate_additional_user_context_data) if enable_token_revocation is not None: - pulumi.set(__self__, "enable_token_revocation", enable_token_revocation) + _setter("enable_token_revocation", enable_token_revocation) if explicit_auth_flows is not None: - pulumi.set(__self__, "explicit_auth_flows", explicit_auth_flows) + _setter("explicit_auth_flows", explicit_auth_flows) if generate_secret is not None: - pulumi.set(__self__, "generate_secret", generate_secret) + _setter("generate_secret", generate_secret) if id_token_validity is not None: - pulumi.set(__self__, "id_token_validity", id_token_validity) + _setter("id_token_validity", id_token_validity) if logout_urls is not None: - pulumi.set(__self__, "logout_urls", logout_urls) + _setter("logout_urls", logout_urls) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if prevent_user_existence_errors is not None: - pulumi.set(__self__, "prevent_user_existence_errors", prevent_user_existence_errors) + _setter("prevent_user_existence_errors", prevent_user_existence_errors) if read_attributes is not None: - pulumi.set(__self__, "read_attributes", read_attributes) + _setter("read_attributes", read_attributes) if refresh_token_validity is not None: - pulumi.set(__self__, "refresh_token_validity", refresh_token_validity) + _setter("refresh_token_validity", refresh_token_validity) if supported_identity_providers is not None: - pulumi.set(__self__, "supported_identity_providers", supported_identity_providers) + _setter("supported_identity_providers", supported_identity_providers) if token_validity_units is not None: - pulumi.set(__self__, "token_validity_units", token_validity_units) + _setter("token_validity_units", token_validity_units) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) if write_attributes is not None: - pulumi.set(__self__, "write_attributes", write_attributes) + _setter("write_attributes", write_attributes) @property @pulumi.getter(name="accessTokenValidity") @@ -1049,6 +1245,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserPoolClientArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1089,6 +1289,7 @@ def _internal_init(__self__, __props__.__dict__["allowed_oauth_flows"] = allowed_oauth_flows __props__.__dict__["allowed_oauth_flows_user_pool_client"] = allowed_oauth_flows_user_pool_client __props__.__dict__["allowed_oauth_scopes"] = allowed_oauth_scopes + analytics_configuration = _utilities.configure(analytics_configuration, UserPoolClientAnalyticsConfigurationArgs, True) __props__.__dict__["analytics_configuration"] = analytics_configuration __props__.__dict__["auth_session_validity"] = auth_session_validity __props__.__dict__["callback_urls"] = callback_urls @@ -1104,6 +1305,7 @@ def _internal_init(__self__, __props__.__dict__["read_attributes"] = read_attributes __props__.__dict__["refresh_token_validity"] = refresh_token_validity __props__.__dict__["supported_identity_providers"] = supported_identity_providers + token_validity_units = _utilities.configure(token_validity_units, UserPoolClientTokenValidityUnitsArgs, True) __props__.__dict__["token_validity_units"] = token_validity_units if user_pool_id is None and not opts.urn: raise TypeError("Missing required property 'user_pool_id'") diff --git a/sdk/python/pulumi_aws/cognito/user_pool_domain.py b/sdk/python/pulumi_aws/cognito/user_pool_domain.py index f5ce428e5b7..57cfa0d5db0 100644 --- a/sdk/python/pulumi_aws/cognito/user_pool_domain.py +++ b/sdk/python/pulumi_aws/cognito/user_pool_domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserPoolDomainArgs', 'UserPoolDomain'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] user_pool_id: The user pool ID. :param pulumi.Input[str] certificate_arn: The ARN of an ISSUED ACM certificate in us-east-1 for a custom domain. """ - pulumi.set(__self__, "domain", domain) - pulumi.set(__self__, "user_pool_id", user_pool_id) + UserPoolDomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + user_pool_id=user_pool_id, + certificate_arn=certificate_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + + _setter("domain", domain) + _setter("user_pool_id", user_pool_id) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) @property @pulumi.getter @@ -89,24 +112,65 @@ def __init__(__self__, *, :param pulumi.Input[str] user_pool_id: The user pool ID. :param pulumi.Input[str] version: The app version. """ + _UserPoolDomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_account_id=aws_account_id, + certificate_arn=certificate_arn, + cloudfront_distribution=cloudfront_distribution, + cloudfront_distribution_arn=cloudfront_distribution_arn, + cloudfront_distribution_zone_id=cloudfront_distribution_zone_id, + domain=domain, + s3_bucket=s3_bucket, + user_pool_id=user_pool_id, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_account_id: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + cloudfront_distribution: Optional[pulumi.Input[str]] = None, + cloudfront_distribution_arn: Optional[pulumi.Input[str]] = None, + cloudfront_distribution_zone_id: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if cloudfront_distribution is None and 'cloudfrontDistribution' in kwargs: + cloudfront_distribution = kwargs['cloudfrontDistribution'] + if cloudfront_distribution_arn is None and 'cloudfrontDistributionArn' in kwargs: + cloudfront_distribution_arn = kwargs['cloudfrontDistributionArn'] + if cloudfront_distribution_zone_id is None and 'cloudfrontDistributionZoneId' in kwargs: + cloudfront_distribution_zone_id = kwargs['cloudfrontDistributionZoneId'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if cloudfront_distribution is not None: - pulumi.set(__self__, "cloudfront_distribution", cloudfront_distribution) + _setter("cloudfront_distribution", cloudfront_distribution) if cloudfront_distribution_arn is not None: - pulumi.set(__self__, "cloudfront_distribution_arn", cloudfront_distribution_arn) + _setter("cloudfront_distribution_arn", cloudfront_distribution_arn) if cloudfront_distribution_zone_id is not None: - pulumi.set(__self__, "cloudfront_distribution_zone_id", cloudfront_distribution_zone_id) + _setter("cloudfront_distribution_zone_id", cloudfront_distribution_zone_id) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="awsAccountId") @@ -340,6 +404,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserPoolDomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/cognito/user_pool_ui_customization.py b/sdk/python/pulumi_aws/cognito/user_pool_ui_customization.py index 126d72d0b38..f5619a65e3c 100644 --- a/sdk/python/pulumi_aws/cognito/user_pool_ui_customization.py +++ b/sdk/python/pulumi_aws/cognito/user_pool_ui_customization.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserPoolUICustomizationArgs', 'UserPoolUICustomization'] @@ -25,13 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[str] css: The CSS values in the UI customization, provided as a String. At least one of `css` or `image_file` is required. :param pulumi.Input[str] image_file: The uploaded logo image for the UI customization, provided as a base64-encoded String. Drift detection is not possible for this argument. At least one of `css` or `image_file` is required. """ - pulumi.set(__self__, "user_pool_id", user_pool_id) + UserPoolUICustomizationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_id=user_pool_id, + client_id=client_id, + css=css, + image_file=image_file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_id: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + css: Optional[pulumi.Input[str]] = None, + image_file: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if image_file is None and 'imageFile' in kwargs: + image_file = kwargs['imageFile'] + + _setter("user_pool_id", user_pool_id) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if css is not None: - pulumi.set(__self__, "css", css) + _setter("css", css) if image_file is not None: - pulumi.set(__self__, "image_file", image_file) + _setter("image_file", image_file) @property @pulumi.getter(name="userPoolId") @@ -104,22 +129,61 @@ def __init__(__self__, *, :param pulumi.Input[str] last_modified_date: The last-modified date in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) for the UI customization. :param pulumi.Input[str] user_pool_id: The user pool ID for the user pool. """ + _UserPoolUICustomizationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + creation_date=creation_date, + css=css, + css_version=css_version, + image_file=image_file, + image_url=image_url, + last_modified_date=last_modified_date, + user_pool_id=user_pool_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + css: Optional[pulumi.Input[str]] = None, + css_version: Optional[pulumi.Input[str]] = None, + image_file: Optional[pulumi.Input[str]] = None, + image_url: Optional[pulumi.Input[str]] = None, + last_modified_date: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if css_version is None and 'cssVersion' in kwargs: + css_version = kwargs['cssVersion'] + if image_file is None and 'imageFile' in kwargs: + image_file = kwargs['imageFile'] + if image_url is None and 'imageUrl' in kwargs: + image_url = kwargs['imageUrl'] + if last_modified_date is None and 'lastModifiedDate' in kwargs: + last_modified_date = kwargs['lastModifiedDate'] + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if css is not None: - pulumi.set(__self__, "css", css) + _setter("css", css) if css_version is not None: - pulumi.set(__self__, "css_version", css_version) + _setter("css_version", css_version) if image_file is not None: - pulumi.set(__self__, "image_file", image_file) + _setter("image_file", image_file) if image_url is not None: - pulumi.set(__self__, "image_url", image_url) + _setter("image_url", image_url) if last_modified_date is not None: - pulumi.set(__self__, "last_modified_date", last_modified_date) + _setter("last_modified_date", last_modified_date) if user_pool_id is not None: - pulumi.set(__self__, "user_pool_id", user_pool_id) + _setter("user_pool_id", user_pool_id) @property @pulumi.getter(name="clientId") @@ -349,6 +413,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserPoolUICustomizationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/comprehend/_inputs.py b/sdk/python/pulumi_aws/comprehend/_inputs.py index 37cf5f64f83..b8b67c0b2e7 100644 --- a/sdk/python/pulumi_aws/comprehend/_inputs.py +++ b/sdk/python/pulumi_aws/comprehend/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -43,16 +43,45 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_uri: Location of training documents. Used if `data_format` is `COMPREHEND_CSV`. """ + DocumentClassifierInputDataConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + augmented_manifests=augmented_manifests, + data_format=data_format, + label_delimiter=label_delimiter, + s3_uri=s3_uri, + test_s3_uri=test_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + augmented_manifests: Optional[pulumi.Input[Sequence[pulumi.Input['DocumentClassifierInputDataConfigAugmentedManifestArgs']]]] = None, + data_format: Optional[pulumi.Input[str]] = None, + label_delimiter: Optional[pulumi.Input[str]] = None, + s3_uri: Optional[pulumi.Input[str]] = None, + test_s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if augmented_manifests is None and 'augmentedManifests' in kwargs: + augmented_manifests = kwargs['augmentedManifests'] + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if label_delimiter is None and 'labelDelimiter' in kwargs: + label_delimiter = kwargs['labelDelimiter'] + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if test_s3_uri is None and 'testS3Uri' in kwargs: + test_s3_uri = kwargs['testS3Uri'] + if augmented_manifests is not None: - pulumi.set(__self__, "augmented_manifests", augmented_manifests) + _setter("augmented_manifests", augmented_manifests) if data_format is not None: - pulumi.set(__self__, "data_format", data_format) + _setter("data_format", data_format) if label_delimiter is not None: - pulumi.set(__self__, "label_delimiter", label_delimiter) + _setter("label_delimiter", label_delimiter) if s3_uri is not None: - pulumi.set(__self__, "s3_uri", s3_uri) + _setter("s3_uri", s3_uri) if test_s3_uri is not None: - pulumi.set(__self__, "test_s3_uri", test_s3_uri) + _setter("test_s3_uri", test_s3_uri) @property @pulumi.getter(name="augmentedManifests") @@ -137,16 +166,51 @@ def __init__(__self__, *, :param pulumi.Input[str] split: Purpose of data in augmented manifest. One of `TRAIN` or `TEST`. """ - pulumi.set(__self__, "attribute_names", attribute_names) - pulumi.set(__self__, "s3_uri", s3_uri) + DocumentClassifierInputDataConfigAugmentedManifestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_names=attribute_names, + s3_uri=s3_uri, + annotation_data_s3_uri=annotation_data_s3_uri, + document_type=document_type, + source_documents_s3_uri=source_documents_s3_uri, + split=split, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_uri: Optional[pulumi.Input[str]] = None, + annotation_data_s3_uri: Optional[pulumi.Input[str]] = None, + document_type: Optional[pulumi.Input[str]] = None, + source_documents_s3_uri: Optional[pulumi.Input[str]] = None, + split: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_names is None and 'attributeNames' in kwargs: + attribute_names = kwargs['attributeNames'] + if attribute_names is None: + raise TypeError("Missing 'attribute_names' argument") + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if annotation_data_s3_uri is None and 'annotationDataS3Uri' in kwargs: + annotation_data_s3_uri = kwargs['annotationDataS3Uri'] + if document_type is None and 'documentType' in kwargs: + document_type = kwargs['documentType'] + if source_documents_s3_uri is None and 'sourceDocumentsS3Uri' in kwargs: + source_documents_s3_uri = kwargs['sourceDocumentsS3Uri'] + + _setter("attribute_names", attribute_names) + _setter("s3_uri", s3_uri) if annotation_data_s3_uri is not None: - pulumi.set(__self__, "annotation_data_s3_uri", annotation_data_s3_uri) + _setter("annotation_data_s3_uri", annotation_data_s3_uri) if document_type is not None: - pulumi.set(__self__, "document_type", document_type) + _setter("document_type", document_type) if source_documents_s3_uri is not None: - pulumi.set(__self__, "source_documents_s3_uri", source_documents_s3_uri) + _setter("source_documents_s3_uri", source_documents_s3_uri) if split is not None: - pulumi.set(__self__, "split", split) + _setter("split", split) @property @pulumi.getter(name="attributeNames") @@ -236,11 +300,34 @@ def __init__(__self__, *, Can be a KMS Key ID, a KMS Key ARN, a KMS Alias name, or a KMS Alias ARN. :param pulumi.Input[str] output_s3_uri: Full path for the output documents. """ - pulumi.set(__self__, "s3_uri", s3_uri) + DocumentClassifierOutputDataConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + kms_key_id=kms_key_id, + output_s3_uri=output_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + output_s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if output_s3_uri is None and 'outputS3Uri' in kwargs: + output_s3_uri = kwargs['outputS3Uri'] + + _setter("s3_uri", s3_uri) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if output_s3_uri is not None: - pulumi.set(__self__, "output_s3_uri", output_s3_uri) + _setter("output_s3_uri", output_s3_uri) @property @pulumi.getter(name="s3Uri") @@ -290,8 +377,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of security group IDs. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: List of VPC subnets. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) + DocumentClassifierVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroupIds") @@ -346,17 +452,48 @@ def __init__(__self__, *, See the `entity_list` Configuration Block section below. One of `entity_list` or `annotations` is required. """ - pulumi.set(__self__, "entity_types", entity_types) + EntityRecognizerInputDataConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_types=entity_types, + annotations=annotations, + augmented_manifests=augmented_manifests, + data_format=data_format, + documents=documents, + entity_list=entity_list, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_types: Optional[pulumi.Input[Sequence[pulumi.Input['EntityRecognizerInputDataConfigEntityTypeArgs']]]] = None, + annotations: Optional[pulumi.Input['EntityRecognizerInputDataConfigAnnotationsArgs']] = None, + augmented_manifests: Optional[pulumi.Input[Sequence[pulumi.Input['EntityRecognizerInputDataConfigAugmentedManifestArgs']]]] = None, + data_format: Optional[pulumi.Input[str]] = None, + documents: Optional[pulumi.Input['EntityRecognizerInputDataConfigDocumentsArgs']] = None, + entity_list: Optional[pulumi.Input['EntityRecognizerInputDataConfigEntityListArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_types is None and 'entityTypes' in kwargs: + entity_types = kwargs['entityTypes'] + if entity_types is None: + raise TypeError("Missing 'entity_types' argument") + if augmented_manifests is None and 'augmentedManifests' in kwargs: + augmented_manifests = kwargs['augmentedManifests'] + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if entity_list is None and 'entityList' in kwargs: + entity_list = kwargs['entityList'] + + _setter("entity_types", entity_types) if annotations is not None: - pulumi.set(__self__, "annotations", annotations) + _setter("annotations", annotations) if augmented_manifests is not None: - pulumi.set(__self__, "augmented_manifests", augmented_manifests) + _setter("augmented_manifests", augmented_manifests) if data_format is not None: - pulumi.set(__self__, "data_format", data_format) + _setter("data_format", data_format) if documents is not None: - pulumi.set(__self__, "documents", documents) + _setter("documents", documents) if entity_list is not None: - pulumi.set(__self__, "entity_list", entity_list) + _setter("entity_list", entity_list) @property @pulumi.getter(name="entityTypes") @@ -450,9 +587,28 @@ def __init__(__self__, *, """ :param pulumi.Input[str] s3_uri: Location of training annotations. """ - pulumi.set(__self__, "s3_uri", s3_uri) + EntityRecognizerInputDataConfigAnnotationsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + test_s3_uri=test_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[pulumi.Input[str]] = None, + test_s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if test_s3_uri is None and 'testS3Uri' in kwargs: + test_s3_uri = kwargs['testS3Uri'] + + _setter("s3_uri", s3_uri) if test_s3_uri is not None: - pulumi.set(__self__, "test_s3_uri", test_s3_uri) + _setter("test_s3_uri", test_s3_uri) @property @pulumi.getter(name="s3Uri") @@ -495,16 +651,51 @@ def __init__(__self__, *, :param pulumi.Input[str] split: Purpose of data in augmented manifest. One of `TRAIN` or `TEST`. """ - pulumi.set(__self__, "attribute_names", attribute_names) - pulumi.set(__self__, "s3_uri", s3_uri) + EntityRecognizerInputDataConfigAugmentedManifestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_names=attribute_names, + s3_uri=s3_uri, + annotation_data_s3_uri=annotation_data_s3_uri, + document_type=document_type, + source_documents_s3_uri=source_documents_s3_uri, + split=split, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_uri: Optional[pulumi.Input[str]] = None, + annotation_data_s3_uri: Optional[pulumi.Input[str]] = None, + document_type: Optional[pulumi.Input[str]] = None, + source_documents_s3_uri: Optional[pulumi.Input[str]] = None, + split: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_names is None and 'attributeNames' in kwargs: + attribute_names = kwargs['attributeNames'] + if attribute_names is None: + raise TypeError("Missing 'attribute_names' argument") + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if annotation_data_s3_uri is None and 'annotationDataS3Uri' in kwargs: + annotation_data_s3_uri = kwargs['annotationDataS3Uri'] + if document_type is None and 'documentType' in kwargs: + document_type = kwargs['documentType'] + if source_documents_s3_uri is None and 'sourceDocumentsS3Uri' in kwargs: + source_documents_s3_uri = kwargs['sourceDocumentsS3Uri'] + + _setter("attribute_names", attribute_names) + _setter("s3_uri", s3_uri) if annotation_data_s3_uri is not None: - pulumi.set(__self__, "annotation_data_s3_uri", annotation_data_s3_uri) + _setter("annotation_data_s3_uri", annotation_data_s3_uri) if document_type is not None: - pulumi.set(__self__, "document_type", document_type) + _setter("document_type", document_type) if source_documents_s3_uri is not None: - pulumi.set(__self__, "source_documents_s3_uri", source_documents_s3_uri) + _setter("source_documents_s3_uri", source_documents_s3_uri) if split is not None: - pulumi.set(__self__, "split", split) + _setter("split", split) @property @pulumi.getter(name="attributeNames") @@ -592,11 +783,34 @@ def __init__(__self__, *, :param pulumi.Input[str] input_format: Specifies how the input files should be processed. One of `ONE_DOC_PER_LINE` or `ONE_DOC_PER_FILE`. """ - pulumi.set(__self__, "s3_uri", s3_uri) + EntityRecognizerInputDataConfigDocumentsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + input_format=input_format, + test_s3_uri=test_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[pulumi.Input[str]] = None, + input_format: Optional[pulumi.Input[str]] = None, + test_s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if input_format is None and 'inputFormat' in kwargs: + input_format = kwargs['inputFormat'] + if test_s3_uri is None and 'testS3Uri' in kwargs: + test_s3_uri = kwargs['testS3Uri'] + + _setter("s3_uri", s3_uri) if input_format is not None: - pulumi.set(__self__, "input_format", input_format) + _setter("input_format", input_format) if test_s3_uri is not None: - pulumi.set(__self__, "test_s3_uri", test_s3_uri) + _setter("test_s3_uri", test_s3_uri) @property @pulumi.getter(name="s3Uri") @@ -640,7 +854,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] s3_uri: Location of entity list. """ - pulumi.set(__self__, "s3_uri", s3_uri) + EntityRecognizerInputDataConfigEntityListArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + + _setter("s3_uri", s3_uri) @property @pulumi.getter(name="s3Uri") @@ -663,7 +892,20 @@ def __init__(__self__, *, :param pulumi.Input[str] type: An entity type to be matched by the Entity Recognizer. Cannot contain a newline (`\\n`), carriage return (`\\r`), or tab (`\\t`). """ - pulumi.set(__self__, "type", type) + EntityRecognizerInputDataConfigEntityTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -688,8 +930,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of security group IDs. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: List of VPC subnets. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) + EntityRecognizerVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/comprehend/document_classifier.py b/sdk/python/pulumi_aws/comprehend/document_classifier.py index 2cbbdb30c2b..2078fa391bb 100644 --- a/sdk/python/pulumi_aws/comprehend/document_classifier.py +++ b/sdk/python/pulumi_aws/comprehend/document_classifier.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -64,27 +64,84 @@ def __init__(__self__, *, :param pulumi.Input['DocumentClassifierVpcConfigArgs'] vpc_config: Configuration parameters for VPC to contain Document Classifier resources. See the `vpc_config` Configuration Block section below. """ - pulumi.set(__self__, "data_access_role_arn", data_access_role_arn) - pulumi.set(__self__, "input_data_config", input_data_config) - pulumi.set(__self__, "language_code", language_code) + DocumentClassifierArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_access_role_arn=data_access_role_arn, + input_data_config=input_data_config, + language_code=language_code, + mode=mode, + model_kms_key_id=model_kms_key_id, + name=name, + output_data_config=output_data_config, + tags=tags, + version_name=version_name, + version_name_prefix=version_name_prefix, + volume_kms_key_id=volume_kms_key_id, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_access_role_arn: Optional[pulumi.Input[str]] = None, + input_data_config: Optional[pulumi.Input['DocumentClassifierInputDataConfigArgs']] = None, + language_code: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + model_kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + output_data_config: Optional[pulumi.Input['DocumentClassifierOutputDataConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_name: Optional[pulumi.Input[str]] = None, + version_name_prefix: Optional[pulumi.Input[str]] = None, + volume_kms_key_id: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['DocumentClassifierVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_access_role_arn is None and 'dataAccessRoleArn' in kwargs: + data_access_role_arn = kwargs['dataAccessRoleArn'] + if data_access_role_arn is None: + raise TypeError("Missing 'data_access_role_arn' argument") + if input_data_config is None and 'inputDataConfig' in kwargs: + input_data_config = kwargs['inputDataConfig'] + if input_data_config is None: + raise TypeError("Missing 'input_data_config' argument") + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if model_kms_key_id is None and 'modelKmsKeyId' in kwargs: + model_kms_key_id = kwargs['modelKmsKeyId'] + if output_data_config is None and 'outputDataConfig' in kwargs: + output_data_config = kwargs['outputDataConfig'] + if version_name is None and 'versionName' in kwargs: + version_name = kwargs['versionName'] + if version_name_prefix is None and 'versionNamePrefix' in kwargs: + version_name_prefix = kwargs['versionNamePrefix'] + if volume_kms_key_id is None and 'volumeKmsKeyId' in kwargs: + volume_kms_key_id = kwargs['volumeKmsKeyId'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("data_access_role_arn", data_access_role_arn) + _setter("input_data_config", input_data_config) + _setter("language_code", language_code) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if model_kms_key_id is not None: - pulumi.set(__self__, "model_kms_key_id", model_kms_key_id) + _setter("model_kms_key_id", model_kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if output_data_config is not None: - pulumi.set(__self__, "output_data_config", output_data_config) + _setter("output_data_config", output_data_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if version_name is not None: - pulumi.set(__self__, "version_name", version_name) + _setter("version_name", version_name) if version_name_prefix is not None: - pulumi.set(__self__, "version_name_prefix", version_name_prefix) + _setter("version_name_prefix", version_name_prefix) if volume_kms_key_id is not None: - pulumi.set(__self__, "volume_kms_key_id", volume_kms_key_id) + _setter("volume_kms_key_id", volume_kms_key_id) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="dataAccessRoleArn") @@ -307,37 +364,94 @@ def __init__(__self__, *, :param pulumi.Input['DocumentClassifierVpcConfigArgs'] vpc_config: Configuration parameters for VPC to contain Document Classifier resources. See the `vpc_config` Configuration Block section below. """ + _DocumentClassifierState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_access_role_arn=data_access_role_arn, + input_data_config=input_data_config, + language_code=language_code, + mode=mode, + model_kms_key_id=model_kms_key_id, + name=name, + output_data_config=output_data_config, + tags=tags, + tags_all=tags_all, + version_name=version_name, + version_name_prefix=version_name_prefix, + volume_kms_key_id=volume_kms_key_id, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + data_access_role_arn: Optional[pulumi.Input[str]] = None, + input_data_config: Optional[pulumi.Input['DocumentClassifierInputDataConfigArgs']] = None, + language_code: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + model_kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + output_data_config: Optional[pulumi.Input['DocumentClassifierOutputDataConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_name: Optional[pulumi.Input[str]] = None, + version_name_prefix: Optional[pulumi.Input[str]] = None, + volume_kms_key_id: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['DocumentClassifierVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_access_role_arn is None and 'dataAccessRoleArn' in kwargs: + data_access_role_arn = kwargs['dataAccessRoleArn'] + if input_data_config is None and 'inputDataConfig' in kwargs: + input_data_config = kwargs['inputDataConfig'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if model_kms_key_id is None and 'modelKmsKeyId' in kwargs: + model_kms_key_id = kwargs['modelKmsKeyId'] + if output_data_config is None and 'outputDataConfig' in kwargs: + output_data_config = kwargs['outputDataConfig'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if version_name is None and 'versionName' in kwargs: + version_name = kwargs['versionName'] + if version_name_prefix is None and 'versionNamePrefix' in kwargs: + version_name_prefix = kwargs['versionNamePrefix'] + if volume_kms_key_id is None and 'volumeKmsKeyId' in kwargs: + volume_kms_key_id = kwargs['volumeKmsKeyId'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if data_access_role_arn is not None: - pulumi.set(__self__, "data_access_role_arn", data_access_role_arn) + _setter("data_access_role_arn", data_access_role_arn) if input_data_config is not None: - pulumi.set(__self__, "input_data_config", input_data_config) + _setter("input_data_config", input_data_config) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if model_kms_key_id is not None: - pulumi.set(__self__, "model_kms_key_id", model_kms_key_id) + _setter("model_kms_key_id", model_kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if output_data_config is not None: - pulumi.set(__self__, "output_data_config", output_data_config) + _setter("output_data_config", output_data_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version_name is not None: - pulumi.set(__self__, "version_name", version_name) + _setter("version_name", version_name) if version_name_prefix is not None: - pulumi.set(__self__, "version_name_prefix", version_name_prefix) + _setter("version_name_prefix", version_name_prefix) if volume_kms_key_id is not None: - pulumi.set(__self__, "volume_kms_key_id", volume_kms_key_id) + _setter("volume_kms_key_id", volume_kms_key_id) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -664,6 +778,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DocumentClassifierArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -693,6 +811,7 @@ def _internal_init(__self__, if data_access_role_arn is None and not opts.urn: raise TypeError("Missing required property 'data_access_role_arn'") __props__.__dict__["data_access_role_arn"] = data_access_role_arn + input_data_config = _utilities.configure(input_data_config, DocumentClassifierInputDataConfigArgs, True) if input_data_config is None and not opts.urn: raise TypeError("Missing required property 'input_data_config'") __props__.__dict__["input_data_config"] = input_data_config @@ -702,11 +821,13 @@ def _internal_init(__self__, __props__.__dict__["mode"] = mode __props__.__dict__["model_kms_key_id"] = model_kms_key_id __props__.__dict__["name"] = name + output_data_config = _utilities.configure(output_data_config, DocumentClassifierOutputDataConfigArgs, True) __props__.__dict__["output_data_config"] = output_data_config __props__.__dict__["tags"] = tags __props__.__dict__["version_name"] = version_name __props__.__dict__["version_name_prefix"] = version_name_prefix __props__.__dict__["volume_kms_key_id"] = volume_kms_key_id + vpc_config = _utilities.configure(vpc_config, DocumentClassifierVpcConfigArgs, True) __props__.__dict__["vpc_config"] = vpc_config __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/comprehend/entity_recognizer.py b/sdk/python/pulumi_aws/comprehend/entity_recognizer.py index 6c7bc7b3a2c..e960ae51971 100644 --- a/sdk/python/pulumi_aws/comprehend/entity_recognizer.py +++ b/sdk/python/pulumi_aws/comprehend/entity_recognizer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -55,23 +55,74 @@ def __init__(__self__, *, :param pulumi.Input['EntityRecognizerVpcConfigArgs'] vpc_config: Configuration parameters for VPC to contain Entity Recognizer resources. See the `vpc_config` Configuration Block section below. """ - pulumi.set(__self__, "data_access_role_arn", data_access_role_arn) - pulumi.set(__self__, "input_data_config", input_data_config) - pulumi.set(__self__, "language_code", language_code) + EntityRecognizerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_access_role_arn=data_access_role_arn, + input_data_config=input_data_config, + language_code=language_code, + model_kms_key_id=model_kms_key_id, + name=name, + tags=tags, + version_name=version_name, + version_name_prefix=version_name_prefix, + volume_kms_key_id=volume_kms_key_id, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_access_role_arn: Optional[pulumi.Input[str]] = None, + input_data_config: Optional[pulumi.Input['EntityRecognizerInputDataConfigArgs']] = None, + language_code: Optional[pulumi.Input[str]] = None, + model_kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_name: Optional[pulumi.Input[str]] = None, + version_name_prefix: Optional[pulumi.Input[str]] = None, + volume_kms_key_id: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['EntityRecognizerVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_access_role_arn is None and 'dataAccessRoleArn' in kwargs: + data_access_role_arn = kwargs['dataAccessRoleArn'] + if data_access_role_arn is None: + raise TypeError("Missing 'data_access_role_arn' argument") + if input_data_config is None and 'inputDataConfig' in kwargs: + input_data_config = kwargs['inputDataConfig'] + if input_data_config is None: + raise TypeError("Missing 'input_data_config' argument") + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if model_kms_key_id is None and 'modelKmsKeyId' in kwargs: + model_kms_key_id = kwargs['modelKmsKeyId'] + if version_name is None and 'versionName' in kwargs: + version_name = kwargs['versionName'] + if version_name_prefix is None and 'versionNamePrefix' in kwargs: + version_name_prefix = kwargs['versionNamePrefix'] + if volume_kms_key_id is None and 'volumeKmsKeyId' in kwargs: + volume_kms_key_id = kwargs['volumeKmsKeyId'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("data_access_role_arn", data_access_role_arn) + _setter("input_data_config", input_data_config) + _setter("language_code", language_code) if model_kms_key_id is not None: - pulumi.set(__self__, "model_kms_key_id", model_kms_key_id) + _setter("model_kms_key_id", model_kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if version_name is not None: - pulumi.set(__self__, "version_name", version_name) + _setter("version_name", version_name) if version_name_prefix is not None: - pulumi.set(__self__, "version_name_prefix", version_name_prefix) + _setter("version_name_prefix", version_name_prefix) if volume_kms_key_id is not None: - pulumi.set(__self__, "volume_kms_key_id", volume_kms_key_id) + _setter("volume_kms_key_id", volume_kms_key_id) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="dataAccessRoleArn") @@ -256,33 +307,84 @@ def __init__(__self__, *, :param pulumi.Input['EntityRecognizerVpcConfigArgs'] vpc_config: Configuration parameters for VPC to contain Entity Recognizer resources. See the `vpc_config` Configuration Block section below. """ + _EntityRecognizerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_access_role_arn=data_access_role_arn, + input_data_config=input_data_config, + language_code=language_code, + model_kms_key_id=model_kms_key_id, + name=name, + tags=tags, + tags_all=tags_all, + version_name=version_name, + version_name_prefix=version_name_prefix, + volume_kms_key_id=volume_kms_key_id, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + data_access_role_arn: Optional[pulumi.Input[str]] = None, + input_data_config: Optional[pulumi.Input['EntityRecognizerInputDataConfigArgs']] = None, + language_code: Optional[pulumi.Input[str]] = None, + model_kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_name: Optional[pulumi.Input[str]] = None, + version_name_prefix: Optional[pulumi.Input[str]] = None, + volume_kms_key_id: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['EntityRecognizerVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_access_role_arn is None and 'dataAccessRoleArn' in kwargs: + data_access_role_arn = kwargs['dataAccessRoleArn'] + if input_data_config is None and 'inputDataConfig' in kwargs: + input_data_config = kwargs['inputDataConfig'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if model_kms_key_id is None and 'modelKmsKeyId' in kwargs: + model_kms_key_id = kwargs['modelKmsKeyId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if version_name is None and 'versionName' in kwargs: + version_name = kwargs['versionName'] + if version_name_prefix is None and 'versionNamePrefix' in kwargs: + version_name_prefix = kwargs['versionNamePrefix'] + if volume_kms_key_id is None and 'volumeKmsKeyId' in kwargs: + volume_kms_key_id = kwargs['volumeKmsKeyId'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if data_access_role_arn is not None: - pulumi.set(__self__, "data_access_role_arn", data_access_role_arn) + _setter("data_access_role_arn", data_access_role_arn) if input_data_config is not None: - pulumi.set(__self__, "input_data_config", input_data_config) + _setter("input_data_config", input_data_config) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if model_kms_key_id is not None: - pulumi.set(__self__, "model_kms_key_id", model_kms_key_id) + _setter("model_kms_key_id", model_kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version_name is not None: - pulumi.set(__self__, "version_name", version_name) + _setter("version_name", version_name) if version_name_prefix is not None: - pulumi.set(__self__, "version_name_prefix", version_name_prefix) + _setter("version_name_prefix", version_name_prefix) if volume_kms_key_id is not None: - pulumi.set(__self__, "volume_kms_key_id", volume_kms_key_id) + _setter("volume_kms_key_id", volume_kms_key_id) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -597,6 +699,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EntityRecognizerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -624,6 +730,7 @@ def _internal_init(__self__, if data_access_role_arn is None and not opts.urn: raise TypeError("Missing required property 'data_access_role_arn'") __props__.__dict__["data_access_role_arn"] = data_access_role_arn + input_data_config = _utilities.configure(input_data_config, EntityRecognizerInputDataConfigArgs, True) if input_data_config is None and not opts.urn: raise TypeError("Missing required property 'input_data_config'") __props__.__dict__["input_data_config"] = input_data_config @@ -636,6 +743,7 @@ def _internal_init(__self__, __props__.__dict__["version_name"] = version_name __props__.__dict__["version_name_prefix"] = version_name_prefix __props__.__dict__["volume_kms_key_id"] = volume_kms_key_id + vpc_config = _utilities.configure(vpc_config, EntityRecognizerVpcConfigArgs, True) __props__.__dict__["vpc_config"] = vpc_config __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/comprehend/outputs.py b/sdk/python/pulumi_aws/comprehend/outputs.py index b675738252a..123d8b71b12 100644 --- a/sdk/python/pulumi_aws/comprehend/outputs.py +++ b/sdk/python/pulumi_aws/comprehend/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -69,16 +69,45 @@ def __init__(__self__, *, :param str s3_uri: Location of training documents. Used if `data_format` is `COMPREHEND_CSV`. """ + DocumentClassifierInputDataConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + augmented_manifests=augmented_manifests, + data_format=data_format, + label_delimiter=label_delimiter, + s3_uri=s3_uri, + test_s3_uri=test_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + augmented_manifests: Optional[Sequence['outputs.DocumentClassifierInputDataConfigAugmentedManifest']] = None, + data_format: Optional[str] = None, + label_delimiter: Optional[str] = None, + s3_uri: Optional[str] = None, + test_s3_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if augmented_manifests is None and 'augmentedManifests' in kwargs: + augmented_manifests = kwargs['augmentedManifests'] + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if label_delimiter is None and 'labelDelimiter' in kwargs: + label_delimiter = kwargs['labelDelimiter'] + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if test_s3_uri is None and 'testS3Uri' in kwargs: + test_s3_uri = kwargs['testS3Uri'] + if augmented_manifests is not None: - pulumi.set(__self__, "augmented_manifests", augmented_manifests) + _setter("augmented_manifests", augmented_manifests) if data_format is not None: - pulumi.set(__self__, "data_format", data_format) + _setter("data_format", data_format) if label_delimiter is not None: - pulumi.set(__self__, "label_delimiter", label_delimiter) + _setter("label_delimiter", label_delimiter) if s3_uri is not None: - pulumi.set(__self__, "s3_uri", s3_uri) + _setter("s3_uri", s3_uri) if test_s3_uri is not None: - pulumi.set(__self__, "test_s3_uri", test_s3_uri) + _setter("test_s3_uri", test_s3_uri) @property @pulumi.getter(name="augmentedManifests") @@ -168,16 +197,51 @@ def __init__(__self__, *, :param str split: Purpose of data in augmented manifest. One of `TRAIN` or `TEST`. """ - pulumi.set(__self__, "attribute_names", attribute_names) - pulumi.set(__self__, "s3_uri", s3_uri) + DocumentClassifierInputDataConfigAugmentedManifest._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_names=attribute_names, + s3_uri=s3_uri, + annotation_data_s3_uri=annotation_data_s3_uri, + document_type=document_type, + source_documents_s3_uri=source_documents_s3_uri, + split=split, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_names: Optional[Sequence[str]] = None, + s3_uri: Optional[str] = None, + annotation_data_s3_uri: Optional[str] = None, + document_type: Optional[str] = None, + source_documents_s3_uri: Optional[str] = None, + split: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_names is None and 'attributeNames' in kwargs: + attribute_names = kwargs['attributeNames'] + if attribute_names is None: + raise TypeError("Missing 'attribute_names' argument") + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if annotation_data_s3_uri is None and 'annotationDataS3Uri' in kwargs: + annotation_data_s3_uri = kwargs['annotationDataS3Uri'] + if document_type is None and 'documentType' in kwargs: + document_type = kwargs['documentType'] + if source_documents_s3_uri is None and 'sourceDocumentsS3Uri' in kwargs: + source_documents_s3_uri = kwargs['sourceDocumentsS3Uri'] + + _setter("attribute_names", attribute_names) + _setter("s3_uri", s3_uri) if annotation_data_s3_uri is not None: - pulumi.set(__self__, "annotation_data_s3_uri", annotation_data_s3_uri) + _setter("annotation_data_s3_uri", annotation_data_s3_uri) if document_type is not None: - pulumi.set(__self__, "document_type", document_type) + _setter("document_type", document_type) if source_documents_s3_uri is not None: - pulumi.set(__self__, "source_documents_s3_uri", source_documents_s3_uri) + _setter("source_documents_s3_uri", source_documents_s3_uri) if split is not None: - pulumi.set(__self__, "split", split) + _setter("split", split) @property @pulumi.getter(name="attributeNames") @@ -264,11 +328,34 @@ def __init__(__self__, *, Can be a KMS Key ID, a KMS Key ARN, a KMS Alias name, or a KMS Alias ARN. :param str output_s3_uri: Full path for the output documents. """ - pulumi.set(__self__, "s3_uri", s3_uri) + DocumentClassifierOutputDataConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + kms_key_id=kms_key_id, + output_s3_uri=output_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[str] = None, + kms_key_id: Optional[str] = None, + output_s3_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if output_s3_uri is None and 'outputS3Uri' in kwargs: + output_s3_uri = kwargs['outputS3Uri'] + + _setter("s3_uri", s3_uri) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if output_s3_uri is not None: - pulumi.set(__self__, "output_s3_uri", output_s3_uri) + _setter("output_s3_uri", output_s3_uri) @property @pulumi.getter(name="s3Uri") @@ -323,8 +410,27 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: List of security group IDs. :param Sequence[str] subnets: List of VPC subnets. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) + DocumentClassifierVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroupIds") @@ -394,17 +500,48 @@ def __init__(__self__, *, See the `entity_list` Configuration Block section below. One of `entity_list` or `annotations` is required. """ - pulumi.set(__self__, "entity_types", entity_types) + EntityRecognizerInputDataConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_types=entity_types, + annotations=annotations, + augmented_manifests=augmented_manifests, + data_format=data_format, + documents=documents, + entity_list=entity_list, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_types: Optional[Sequence['outputs.EntityRecognizerInputDataConfigEntityType']] = None, + annotations: Optional['outputs.EntityRecognizerInputDataConfigAnnotations'] = None, + augmented_manifests: Optional[Sequence['outputs.EntityRecognizerInputDataConfigAugmentedManifest']] = None, + data_format: Optional[str] = None, + documents: Optional['outputs.EntityRecognizerInputDataConfigDocuments'] = None, + entity_list: Optional['outputs.EntityRecognizerInputDataConfigEntityList'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_types is None and 'entityTypes' in kwargs: + entity_types = kwargs['entityTypes'] + if entity_types is None: + raise TypeError("Missing 'entity_types' argument") + if augmented_manifests is None and 'augmentedManifests' in kwargs: + augmented_manifests = kwargs['augmentedManifests'] + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if entity_list is None and 'entityList' in kwargs: + entity_list = kwargs['entityList'] + + _setter("entity_types", entity_types) if annotations is not None: - pulumi.set(__self__, "annotations", annotations) + _setter("annotations", annotations) if augmented_manifests is not None: - pulumi.set(__self__, "augmented_manifests", augmented_manifests) + _setter("augmented_manifests", augmented_manifests) if data_format is not None: - pulumi.set(__self__, "data_format", data_format) + _setter("data_format", data_format) if documents is not None: - pulumi.set(__self__, "documents", documents) + _setter("documents", documents) if entity_list is not None: - pulumi.set(__self__, "entity_list", entity_list) + _setter("entity_list", entity_list) @property @pulumi.getter(name="entityTypes") @@ -493,9 +630,28 @@ def __init__(__self__, *, """ :param str s3_uri: Location of training annotations. """ - pulumi.set(__self__, "s3_uri", s3_uri) + EntityRecognizerInputDataConfigAnnotations._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + test_s3_uri=test_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[str] = None, + test_s3_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if test_s3_uri is None and 'testS3Uri' in kwargs: + test_s3_uri = kwargs['testS3Uri'] + + _setter("s3_uri", s3_uri) if test_s3_uri is not None: - pulumi.set(__self__, "test_s3_uri", test_s3_uri) + _setter("test_s3_uri", test_s3_uri) @property @pulumi.getter(name="s3Uri") @@ -555,16 +711,51 @@ def __init__(__self__, *, :param str split: Purpose of data in augmented manifest. One of `TRAIN` or `TEST`. """ - pulumi.set(__self__, "attribute_names", attribute_names) - pulumi.set(__self__, "s3_uri", s3_uri) + EntityRecognizerInputDataConfigAugmentedManifest._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_names=attribute_names, + s3_uri=s3_uri, + annotation_data_s3_uri=annotation_data_s3_uri, + document_type=document_type, + source_documents_s3_uri=source_documents_s3_uri, + split=split, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_names: Optional[Sequence[str]] = None, + s3_uri: Optional[str] = None, + annotation_data_s3_uri: Optional[str] = None, + document_type: Optional[str] = None, + source_documents_s3_uri: Optional[str] = None, + split: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_names is None and 'attributeNames' in kwargs: + attribute_names = kwargs['attributeNames'] + if attribute_names is None: + raise TypeError("Missing 'attribute_names' argument") + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if annotation_data_s3_uri is None and 'annotationDataS3Uri' in kwargs: + annotation_data_s3_uri = kwargs['annotationDataS3Uri'] + if document_type is None and 'documentType' in kwargs: + document_type = kwargs['documentType'] + if source_documents_s3_uri is None and 'sourceDocumentsS3Uri' in kwargs: + source_documents_s3_uri = kwargs['sourceDocumentsS3Uri'] + + _setter("attribute_names", attribute_names) + _setter("s3_uri", s3_uri) if annotation_data_s3_uri is not None: - pulumi.set(__self__, "annotation_data_s3_uri", annotation_data_s3_uri) + _setter("annotation_data_s3_uri", annotation_data_s3_uri) if document_type is not None: - pulumi.set(__self__, "document_type", document_type) + _setter("document_type", document_type) if source_documents_s3_uri is not None: - pulumi.set(__self__, "source_documents_s3_uri", source_documents_s3_uri) + _setter("source_documents_s3_uri", source_documents_s3_uri) if split is not None: - pulumi.set(__self__, "split", split) + _setter("split", split) @property @pulumi.getter(name="attributeNames") @@ -649,11 +840,34 @@ def __init__(__self__, *, :param str input_format: Specifies how the input files should be processed. One of `ONE_DOC_PER_LINE` or `ONE_DOC_PER_FILE`. """ - pulumi.set(__self__, "s3_uri", s3_uri) + EntityRecognizerInputDataConfigDocuments._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + input_format=input_format, + test_s3_uri=test_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[str] = None, + input_format: Optional[str] = None, + test_s3_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if input_format is None and 'inputFormat' in kwargs: + input_format = kwargs['inputFormat'] + if test_s3_uri is None and 'testS3Uri' in kwargs: + test_s3_uri = kwargs['testS3Uri'] + + _setter("s3_uri", s3_uri) if input_format is not None: - pulumi.set(__self__, "input_format", input_format) + _setter("input_format", input_format) if test_s3_uri is not None: - pulumi.set(__self__, "test_s3_uri", test_s3_uri) + _setter("test_s3_uri", test_s3_uri) @property @pulumi.getter(name="s3Uri") @@ -702,7 +916,22 @@ def __init__(__self__, *, """ :param str s3_uri: Location of entity list. """ - pulumi.set(__self__, "s3_uri", s3_uri) + EntityRecognizerInputDataConfigEntityList._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + + _setter("s3_uri", s3_uri) @property @pulumi.getter(name="s3Uri") @@ -721,7 +950,20 @@ def __init__(__self__, *, :param str type: An entity type to be matched by the Entity Recognizer. Cannot contain a newline (`\\n`), carriage return (`\\r`), or tab (`\\t`). """ - pulumi.set(__self__, "type", type) + EntityRecognizerInputDataConfigEntityType._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -759,8 +1001,27 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: List of security group IDs. :param Sequence[str] subnets: List of VPC subnets. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) + EntityRecognizerVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/config/__init__.pyi b/sdk/python/pulumi_aws/config/__init__.pyi index cab6ec34000..3f106c7b626 100644 --- a/sdk/python/pulumi_aws/config/__init__.pyi +++ b/sdk/python/pulumi_aws/config/__init__.pyi @@ -6,7 +6,7 @@ import copy import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/config/outputs.py b/sdk/python/pulumi_aws/config/outputs.py index 0b008a89787..272635015b1 100644 --- a/sdk/python/pulumi_aws/config/outputs.py +++ b/sdk/python/pulumi_aws/config/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,24 +29,63 @@ def __init__(__self__, *, source_identity: Optional[str] = None, tags: Optional[Mapping[str, str]] = None, transitive_tag_keys: Optional[Sequence[str]] = None): + AssumeRole._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + external_id=external_id, + policy=policy, + policy_arns=policy_arns, + role_arn=role_arn, + session_name=session_name, + source_identity=source_identity, + tags=tags, + transitive_tag_keys=transitive_tag_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[str] = None, + external_id: Optional[str] = None, + policy: Optional[str] = None, + policy_arns: Optional[Sequence[str]] = None, + role_arn: Optional[str] = None, + session_name: Optional[str] = None, + source_identity: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + transitive_tag_keys: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if policy_arns is None and 'policyArns' in kwargs: + policy_arns = kwargs['policyArns'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if session_name is None and 'sessionName' in kwargs: + session_name = kwargs['sessionName'] + if source_identity is None and 'sourceIdentity' in kwargs: + source_identity = kwargs['sourceIdentity'] + if transitive_tag_keys is None and 'transitiveTagKeys' in kwargs: + transitive_tag_keys = kwargs['transitiveTagKeys'] + if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if policy_arns is not None: - pulumi.set(__self__, "policy_arns", policy_arns) + _setter("policy_arns", policy_arns) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if session_name is not None: - pulumi.set(__self__, "session_name", session_name) + _setter("session_name", session_name) if source_identity is not None: - pulumi.set(__self__, "source_identity", source_identity) + _setter("source_identity", source_identity) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transitive_tag_keys is not None: - pulumi.set(__self__, "transitive_tag_keys", transitive_tag_keys) + _setter("transitive_tag_keys", transitive_tag_keys) @property @pulumi.getter @@ -104,20 +143,53 @@ def __init__(__self__, *, session_name: Optional[str] = None, web_identity_token: Optional[str] = None, web_identity_token_file: Optional[str] = None): + AssumeRoleWithWebIdentity._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + policy=policy, + policy_arns=policy_arns, + role_arn=role_arn, + session_name=session_name, + web_identity_token=web_identity_token, + web_identity_token_file=web_identity_token_file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[str] = None, + policy: Optional[str] = None, + policy_arns: Optional[Sequence[str]] = None, + role_arn: Optional[str] = None, + session_name: Optional[str] = None, + web_identity_token: Optional[str] = None, + web_identity_token_file: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arns is None and 'policyArns' in kwargs: + policy_arns = kwargs['policyArns'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if session_name is None and 'sessionName' in kwargs: + session_name = kwargs['sessionName'] + if web_identity_token is None and 'webIdentityToken' in kwargs: + web_identity_token = kwargs['webIdentityToken'] + if web_identity_token_file is None and 'webIdentityTokenFile' in kwargs: + web_identity_token_file = kwargs['webIdentityTokenFile'] + if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if policy_arns is not None: - pulumi.set(__self__, "policy_arns", policy_arns) + _setter("policy_arns", policy_arns) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if session_name is not None: - pulumi.set(__self__, "session_name", session_name) + _setter("session_name", session_name) if web_identity_token is not None: - pulumi.set(__self__, "web_identity_token", web_identity_token) + _setter("web_identity_token", web_identity_token) if web_identity_token_file is not None: - pulumi.set(__self__, "web_identity_token_file", web_identity_token_file) + _setter("web_identity_token_file", web_identity_token_file) @property @pulumi.getter @@ -159,8 +231,19 @@ def web_identity_token_file(self) -> Optional[str]: class DefaultTags(dict): def __init__(__self__, *, tags: Optional[Mapping[str, str]] = None): + DefaultTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -421,506 +504,1017 @@ def __init__(__self__, *, worklink: Optional[str] = None, workspaces: Optional[str] = None, xray: Optional[str] = None): + Endpoints._configure( + lambda key, value: pulumi.set(__self__, key, value), + accessanalyzer=accessanalyzer, + account=account, + acm=acm, + acmpca=acmpca, + amg=amg, + amp=amp, + amplify=amplify, + apigateway=apigateway, + apigatewayv2=apigatewayv2, + appautoscaling=appautoscaling, + appconfig=appconfig, + appflow=appflow, + appintegrations=appintegrations, + appintegrationsservice=appintegrationsservice, + applicationautoscaling=applicationautoscaling, + applicationinsights=applicationinsights, + appmesh=appmesh, + apprunner=apprunner, + appstream=appstream, + appsync=appsync, + athena=athena, + auditmanager=auditmanager, + autoscaling=autoscaling, + autoscalingplans=autoscalingplans, + backup=backup, + batch=batch, + beanstalk=beanstalk, + bedrock=bedrock, + budgets=budgets, + ce=ce, + chime=chime, + chimesdkmediapipelines=chimesdkmediapipelines, + chimesdkvoice=chimesdkvoice, + cleanrooms=cleanrooms, + cloud9=cloud9, + cloudcontrol=cloudcontrol, + cloudcontrolapi=cloudcontrolapi, + cloudformation=cloudformation, + cloudfront=cloudfront, + cloudhsm=cloudhsm, + cloudhsmv2=cloudhsmv2, + cloudsearch=cloudsearch, + cloudtrail=cloudtrail, + cloudwatch=cloudwatch, + cloudwatchevents=cloudwatchevents, + cloudwatchevidently=cloudwatchevidently, + cloudwatchlog=cloudwatchlog, + cloudwatchlogs=cloudwatchlogs, + cloudwatchobservabilityaccessmanager=cloudwatchobservabilityaccessmanager, + cloudwatchrum=cloudwatchrum, + codeartifact=codeartifact, + codebuild=codebuild, + codecatalyst=codecatalyst, + codecommit=codecommit, + codedeploy=codedeploy, + codegurureviewer=codegurureviewer, + codepipeline=codepipeline, + codestarconnections=codestarconnections, + codestarnotifications=codestarnotifications, + cognitoidentity=cognitoidentity, + cognitoidentityprovider=cognitoidentityprovider, + cognitoidp=cognitoidp, + comprehend=comprehend, + computeoptimizer=computeoptimizer, + config=config, + configservice=configservice, + connect=connect, + controltower=controltower, + costandusagereportservice=costandusagereportservice, + costexplorer=costexplorer, + cur=cur, + databasemigration=databasemigration, + databasemigrationservice=databasemigrationservice, + dataexchange=dataexchange, + datapipeline=datapipeline, + datasync=datasync, + dax=dax, + deploy=deploy, + detective=detective, + devicefarm=devicefarm, + directconnect=directconnect, + directoryservice=directoryservice, + dlm=dlm, + dms=dms, + docdb=docdb, + docdbelastic=docdbelastic, + ds=ds, + dynamodb=dynamodb, + ec2=ec2, + ecr=ecr, + ecrpublic=ecrpublic, + ecs=ecs, + efs=efs, + eks=eks, + elasticache=elasticache, + elasticbeanstalk=elasticbeanstalk, + elasticloadbalancing=elasticloadbalancing, + elasticloadbalancingv2=elasticloadbalancingv2, + elasticsearch=elasticsearch, + elasticsearchservice=elasticsearchservice, + elastictranscoder=elastictranscoder, + elb=elb, + elbv2=elbv2, + emr=emr, + emrcontainers=emrcontainers, + emrserverless=emrserverless, + es=es, + eventbridge=eventbridge, + events=events, + evidently=evidently, + finspace=finspace, + firehose=firehose, + fis=fis, + fms=fms, + fsx=fsx, + gamelift=gamelift, + glacier=glacier, + globalaccelerator=globalaccelerator, + glue=glue, + grafana=grafana, + greengrass=greengrass, + guardduty=guardduty, + healthlake=healthlake, + iam=iam, + identitystore=identitystore, + imagebuilder=imagebuilder, + inspector=inspector, + inspector2=inspector2, + inspectorv2=inspectorv2, + internetmonitor=internetmonitor, + iot=iot, + iotanalytics=iotanalytics, + iotevents=iotevents, + ivs=ivs, + ivschat=ivschat, + kafka=kafka, + kafkaconnect=kafkaconnect, + kendra=kendra, + keyspaces=keyspaces, + kinesis=kinesis, + kinesisanalytics=kinesisanalytics, + kinesisanalyticsv2=kinesisanalyticsv2, + kinesisvideo=kinesisvideo, + kms=kms, + lakeformation=lakeformation, + lambda_=lambda_, + lex=lex, + lexmodelbuilding=lexmodelbuilding, + lexmodelbuildingservice=lexmodelbuildingservice, + lexmodels=lexmodels, + lexmodelsv2=lexmodelsv2, + lexv2models=lexv2models, + licensemanager=licensemanager, + lightsail=lightsail, + location=location, + locationservice=locationservice, + logs=logs, + macie2=macie2, + managedgrafana=managedgrafana, + mediaconnect=mediaconnect, + mediaconvert=mediaconvert, + medialive=medialive, + mediapackage=mediapackage, + mediastore=mediastore, + memorydb=memorydb, + mq=mq, + msk=msk, + mwaa=mwaa, + neptune=neptune, + networkfirewall=networkfirewall, + networkmanager=networkmanager, + oam=oam, + opensearch=opensearch, + opensearchserverless=opensearchserverless, + opensearchservice=opensearchservice, + opsworks=opsworks, + organizations=organizations, + outposts=outposts, + pinpoint=pinpoint, + pipes=pipes, + pricing=pricing, + prometheus=prometheus, + prometheusservice=prometheusservice, + qldb=qldb, + quicksight=quicksight, + ram=ram, + rbin=rbin, + rds=rds, + recyclebin=recyclebin, + redshift=redshift, + redshiftdata=redshiftdata, + redshiftdataapiservice=redshiftdataapiservice, + redshiftserverless=redshiftserverless, + resourceexplorer2=resourceexplorer2, + resourcegroups=resourcegroups, + resourcegroupstagging=resourcegroupstagging, + resourcegroupstaggingapi=resourcegroupstaggingapi, + rolesanywhere=rolesanywhere, + route53=route53, + route53domains=route53domains, + route53recoverycontrolconfig=route53recoverycontrolconfig, + route53recoveryreadiness=route53recoveryreadiness, + route53resolver=route53resolver, + rum=rum, + s3=s3, + s3api=s3api, + s3control=s3control, + s3outposts=s3outposts, + sagemaker=sagemaker, + scheduler=scheduler, + schemas=schemas, + sdb=sdb, + secretsmanager=secretsmanager, + securityhub=securityhub, + securitylake=securitylake, + serverlessapplicationrepository=serverlessapplicationrepository, + serverlessapprepo=serverlessapprepo, + serverlessrepo=serverlessrepo, + servicecatalog=servicecatalog, + servicediscovery=servicediscovery, + servicequotas=servicequotas, + ses=ses, + sesv2=sesv2, + sfn=sfn, + shield=shield, + signer=signer, + simpledb=simpledb, + sns=sns, + sqs=sqs, + ssm=ssm, + ssmcontacts=ssmcontacts, + ssmincidents=ssmincidents, + ssoadmin=ssoadmin, + stepfunctions=stepfunctions, + storagegateway=storagegateway, + sts=sts, + swf=swf, + synthetics=synthetics, + timestreamwrite=timestreamwrite, + transcribe=transcribe, + transcribeservice=transcribeservice, + transfer=transfer, + verifiedpermissions=verifiedpermissions, + vpclattice=vpclattice, + waf=waf, + wafregional=wafregional, + wafv2=wafv2, + worklink=worklink, + workspaces=workspaces, + xray=xray, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accessanalyzer: Optional[str] = None, + account: Optional[str] = None, + acm: Optional[str] = None, + acmpca: Optional[str] = None, + amg: Optional[str] = None, + amp: Optional[str] = None, + amplify: Optional[str] = None, + apigateway: Optional[str] = None, + apigatewayv2: Optional[str] = None, + appautoscaling: Optional[str] = None, + appconfig: Optional[str] = None, + appflow: Optional[str] = None, + appintegrations: Optional[str] = None, + appintegrationsservice: Optional[str] = None, + applicationautoscaling: Optional[str] = None, + applicationinsights: Optional[str] = None, + appmesh: Optional[str] = None, + apprunner: Optional[str] = None, + appstream: Optional[str] = None, + appsync: Optional[str] = None, + athena: Optional[str] = None, + auditmanager: Optional[str] = None, + autoscaling: Optional[str] = None, + autoscalingplans: Optional[str] = None, + backup: Optional[str] = None, + batch: Optional[str] = None, + beanstalk: Optional[str] = None, + bedrock: Optional[str] = None, + budgets: Optional[str] = None, + ce: Optional[str] = None, + chime: Optional[str] = None, + chimesdkmediapipelines: Optional[str] = None, + chimesdkvoice: Optional[str] = None, + cleanrooms: Optional[str] = None, + cloud9: Optional[str] = None, + cloudcontrol: Optional[str] = None, + cloudcontrolapi: Optional[str] = None, + cloudformation: Optional[str] = None, + cloudfront: Optional[str] = None, + cloudhsm: Optional[str] = None, + cloudhsmv2: Optional[str] = None, + cloudsearch: Optional[str] = None, + cloudtrail: Optional[str] = None, + cloudwatch: Optional[str] = None, + cloudwatchevents: Optional[str] = None, + cloudwatchevidently: Optional[str] = None, + cloudwatchlog: Optional[str] = None, + cloudwatchlogs: Optional[str] = None, + cloudwatchobservabilityaccessmanager: Optional[str] = None, + cloudwatchrum: Optional[str] = None, + codeartifact: Optional[str] = None, + codebuild: Optional[str] = None, + codecatalyst: Optional[str] = None, + codecommit: Optional[str] = None, + codedeploy: Optional[str] = None, + codegurureviewer: Optional[str] = None, + codepipeline: Optional[str] = None, + codestarconnections: Optional[str] = None, + codestarnotifications: Optional[str] = None, + cognitoidentity: Optional[str] = None, + cognitoidentityprovider: Optional[str] = None, + cognitoidp: Optional[str] = None, + comprehend: Optional[str] = None, + computeoptimizer: Optional[str] = None, + config: Optional[str] = None, + configservice: Optional[str] = None, + connect: Optional[str] = None, + controltower: Optional[str] = None, + costandusagereportservice: Optional[str] = None, + costexplorer: Optional[str] = None, + cur: Optional[str] = None, + databasemigration: Optional[str] = None, + databasemigrationservice: Optional[str] = None, + dataexchange: Optional[str] = None, + datapipeline: Optional[str] = None, + datasync: Optional[str] = None, + dax: Optional[str] = None, + deploy: Optional[str] = None, + detective: Optional[str] = None, + devicefarm: Optional[str] = None, + directconnect: Optional[str] = None, + directoryservice: Optional[str] = None, + dlm: Optional[str] = None, + dms: Optional[str] = None, + docdb: Optional[str] = None, + docdbelastic: Optional[str] = None, + ds: Optional[str] = None, + dynamodb: Optional[str] = None, + ec2: Optional[str] = None, + ecr: Optional[str] = None, + ecrpublic: Optional[str] = None, + ecs: Optional[str] = None, + efs: Optional[str] = None, + eks: Optional[str] = None, + elasticache: Optional[str] = None, + elasticbeanstalk: Optional[str] = None, + elasticloadbalancing: Optional[str] = None, + elasticloadbalancingv2: Optional[str] = None, + elasticsearch: Optional[str] = None, + elasticsearchservice: Optional[str] = None, + elastictranscoder: Optional[str] = None, + elb: Optional[str] = None, + elbv2: Optional[str] = None, + emr: Optional[str] = None, + emrcontainers: Optional[str] = None, + emrserverless: Optional[str] = None, + es: Optional[str] = None, + eventbridge: Optional[str] = None, + events: Optional[str] = None, + evidently: Optional[str] = None, + finspace: Optional[str] = None, + firehose: Optional[str] = None, + fis: Optional[str] = None, + fms: Optional[str] = None, + fsx: Optional[str] = None, + gamelift: Optional[str] = None, + glacier: Optional[str] = None, + globalaccelerator: Optional[str] = None, + glue: Optional[str] = None, + grafana: Optional[str] = None, + greengrass: Optional[str] = None, + guardduty: Optional[str] = None, + healthlake: Optional[str] = None, + iam: Optional[str] = None, + identitystore: Optional[str] = None, + imagebuilder: Optional[str] = None, + inspector: Optional[str] = None, + inspector2: Optional[str] = None, + inspectorv2: Optional[str] = None, + internetmonitor: Optional[str] = None, + iot: Optional[str] = None, + iotanalytics: Optional[str] = None, + iotevents: Optional[str] = None, + ivs: Optional[str] = None, + ivschat: Optional[str] = None, + kafka: Optional[str] = None, + kafkaconnect: Optional[str] = None, + kendra: Optional[str] = None, + keyspaces: Optional[str] = None, + kinesis: Optional[str] = None, + kinesisanalytics: Optional[str] = None, + kinesisanalyticsv2: Optional[str] = None, + kinesisvideo: Optional[str] = None, + kms: Optional[str] = None, + lakeformation: Optional[str] = None, + lambda_: Optional[str] = None, + lex: Optional[str] = None, + lexmodelbuilding: Optional[str] = None, + lexmodelbuildingservice: Optional[str] = None, + lexmodels: Optional[str] = None, + lexmodelsv2: Optional[str] = None, + lexv2models: Optional[str] = None, + licensemanager: Optional[str] = None, + lightsail: Optional[str] = None, + location: Optional[str] = None, + locationservice: Optional[str] = None, + logs: Optional[str] = None, + macie2: Optional[str] = None, + managedgrafana: Optional[str] = None, + mediaconnect: Optional[str] = None, + mediaconvert: Optional[str] = None, + medialive: Optional[str] = None, + mediapackage: Optional[str] = None, + mediastore: Optional[str] = None, + memorydb: Optional[str] = None, + mq: Optional[str] = None, + msk: Optional[str] = None, + mwaa: Optional[str] = None, + neptune: Optional[str] = None, + networkfirewall: Optional[str] = None, + networkmanager: Optional[str] = None, + oam: Optional[str] = None, + opensearch: Optional[str] = None, + opensearchserverless: Optional[str] = None, + opensearchservice: Optional[str] = None, + opsworks: Optional[str] = None, + organizations: Optional[str] = None, + outposts: Optional[str] = None, + pinpoint: Optional[str] = None, + pipes: Optional[str] = None, + pricing: Optional[str] = None, + prometheus: Optional[str] = None, + prometheusservice: Optional[str] = None, + qldb: Optional[str] = None, + quicksight: Optional[str] = None, + ram: Optional[str] = None, + rbin: Optional[str] = None, + rds: Optional[str] = None, + recyclebin: Optional[str] = None, + redshift: Optional[str] = None, + redshiftdata: Optional[str] = None, + redshiftdataapiservice: Optional[str] = None, + redshiftserverless: Optional[str] = None, + resourceexplorer2: Optional[str] = None, + resourcegroups: Optional[str] = None, + resourcegroupstagging: Optional[str] = None, + resourcegroupstaggingapi: Optional[str] = None, + rolesanywhere: Optional[str] = None, + route53: Optional[str] = None, + route53domains: Optional[str] = None, + route53recoverycontrolconfig: Optional[str] = None, + route53recoveryreadiness: Optional[str] = None, + route53resolver: Optional[str] = None, + rum: Optional[str] = None, + s3: Optional[str] = None, + s3api: Optional[str] = None, + s3control: Optional[str] = None, + s3outposts: Optional[str] = None, + sagemaker: Optional[str] = None, + scheduler: Optional[str] = None, + schemas: Optional[str] = None, + sdb: Optional[str] = None, + secretsmanager: Optional[str] = None, + securityhub: Optional[str] = None, + securitylake: Optional[str] = None, + serverlessapplicationrepository: Optional[str] = None, + serverlessapprepo: Optional[str] = None, + serverlessrepo: Optional[str] = None, + servicecatalog: Optional[str] = None, + servicediscovery: Optional[str] = None, + servicequotas: Optional[str] = None, + ses: Optional[str] = None, + sesv2: Optional[str] = None, + sfn: Optional[str] = None, + shield: Optional[str] = None, + signer: Optional[str] = None, + simpledb: Optional[str] = None, + sns: Optional[str] = None, + sqs: Optional[str] = None, + ssm: Optional[str] = None, + ssmcontacts: Optional[str] = None, + ssmincidents: Optional[str] = None, + ssoadmin: Optional[str] = None, + stepfunctions: Optional[str] = None, + storagegateway: Optional[str] = None, + sts: Optional[str] = None, + swf: Optional[str] = None, + synthetics: Optional[str] = None, + timestreamwrite: Optional[str] = None, + transcribe: Optional[str] = None, + transcribeservice: Optional[str] = None, + transfer: Optional[str] = None, + verifiedpermissions: Optional[str] = None, + vpclattice: Optional[str] = None, + waf: Optional[str] = None, + wafregional: Optional[str] = None, + wafv2: Optional[str] = None, + worklink: Optional[str] = None, + workspaces: Optional[str] = None, + xray: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + if accessanalyzer is not None: - pulumi.set(__self__, "accessanalyzer", accessanalyzer) + _setter("accessanalyzer", accessanalyzer) if account is not None: - pulumi.set(__self__, "account", account) + _setter("account", account) if acm is not None: - pulumi.set(__self__, "acm", acm) + _setter("acm", acm) if acmpca is not None: - pulumi.set(__self__, "acmpca", acmpca) + _setter("acmpca", acmpca) if amg is not None: - pulumi.set(__self__, "amg", amg) + _setter("amg", amg) if amp is not None: - pulumi.set(__self__, "amp", amp) + _setter("amp", amp) if amplify is not None: - pulumi.set(__self__, "amplify", amplify) + _setter("amplify", amplify) if apigateway is not None: - pulumi.set(__self__, "apigateway", apigateway) + _setter("apigateway", apigateway) if apigatewayv2 is not None: - pulumi.set(__self__, "apigatewayv2", apigatewayv2) + _setter("apigatewayv2", apigatewayv2) if appautoscaling is not None: - pulumi.set(__self__, "appautoscaling", appautoscaling) + _setter("appautoscaling", appautoscaling) if appconfig is not None: - pulumi.set(__self__, "appconfig", appconfig) + _setter("appconfig", appconfig) if appflow is not None: - pulumi.set(__self__, "appflow", appflow) + _setter("appflow", appflow) if appintegrations is not None: - pulumi.set(__self__, "appintegrations", appintegrations) + _setter("appintegrations", appintegrations) if appintegrationsservice is not None: - pulumi.set(__self__, "appintegrationsservice", appintegrationsservice) + _setter("appintegrationsservice", appintegrationsservice) if applicationautoscaling is not None: - pulumi.set(__self__, "applicationautoscaling", applicationautoscaling) + _setter("applicationautoscaling", applicationautoscaling) if applicationinsights is not None: - pulumi.set(__self__, "applicationinsights", applicationinsights) + _setter("applicationinsights", applicationinsights) if appmesh is not None: - pulumi.set(__self__, "appmesh", appmesh) + _setter("appmesh", appmesh) if apprunner is not None: - pulumi.set(__self__, "apprunner", apprunner) + _setter("apprunner", apprunner) if appstream is not None: - pulumi.set(__self__, "appstream", appstream) + _setter("appstream", appstream) if appsync is not None: - pulumi.set(__self__, "appsync", appsync) + _setter("appsync", appsync) if athena is not None: - pulumi.set(__self__, "athena", athena) + _setter("athena", athena) if auditmanager is not None: - pulumi.set(__self__, "auditmanager", auditmanager) + _setter("auditmanager", auditmanager) if autoscaling is not None: - pulumi.set(__self__, "autoscaling", autoscaling) + _setter("autoscaling", autoscaling) if autoscalingplans is not None: - pulumi.set(__self__, "autoscalingplans", autoscalingplans) + _setter("autoscalingplans", autoscalingplans) if backup is not None: - pulumi.set(__self__, "backup", backup) + _setter("backup", backup) if batch is not None: - pulumi.set(__self__, "batch", batch) + _setter("batch", batch) if beanstalk is not None: - pulumi.set(__self__, "beanstalk", beanstalk) + _setter("beanstalk", beanstalk) if bedrock is not None: - pulumi.set(__self__, "bedrock", bedrock) + _setter("bedrock", bedrock) if budgets is not None: - pulumi.set(__self__, "budgets", budgets) + _setter("budgets", budgets) if ce is not None: - pulumi.set(__self__, "ce", ce) + _setter("ce", ce) if chime is not None: - pulumi.set(__self__, "chime", chime) + _setter("chime", chime) if chimesdkmediapipelines is not None: - pulumi.set(__self__, "chimesdkmediapipelines", chimesdkmediapipelines) + _setter("chimesdkmediapipelines", chimesdkmediapipelines) if chimesdkvoice is not None: - pulumi.set(__self__, "chimesdkvoice", chimesdkvoice) + _setter("chimesdkvoice", chimesdkvoice) if cleanrooms is not None: - pulumi.set(__self__, "cleanrooms", cleanrooms) + _setter("cleanrooms", cleanrooms) if cloud9 is not None: - pulumi.set(__self__, "cloud9", cloud9) + _setter("cloud9", cloud9) if cloudcontrol is not None: - pulumi.set(__self__, "cloudcontrol", cloudcontrol) + _setter("cloudcontrol", cloudcontrol) if cloudcontrolapi is not None: - pulumi.set(__self__, "cloudcontrolapi", cloudcontrolapi) + _setter("cloudcontrolapi", cloudcontrolapi) if cloudformation is not None: - pulumi.set(__self__, "cloudformation", cloudformation) + _setter("cloudformation", cloudformation) if cloudfront is not None: - pulumi.set(__self__, "cloudfront", cloudfront) + _setter("cloudfront", cloudfront) if cloudhsm is not None: - pulumi.set(__self__, "cloudhsm", cloudhsm) + _setter("cloudhsm", cloudhsm) if cloudhsmv2 is not None: - pulumi.set(__self__, "cloudhsmv2", cloudhsmv2) + _setter("cloudhsmv2", cloudhsmv2) if cloudsearch is not None: - pulumi.set(__self__, "cloudsearch", cloudsearch) + _setter("cloudsearch", cloudsearch) if cloudtrail is not None: - pulumi.set(__self__, "cloudtrail", cloudtrail) + _setter("cloudtrail", cloudtrail) if cloudwatch is not None: - pulumi.set(__self__, "cloudwatch", cloudwatch) + _setter("cloudwatch", cloudwatch) if cloudwatchevents is not None: - pulumi.set(__self__, "cloudwatchevents", cloudwatchevents) + _setter("cloudwatchevents", cloudwatchevents) if cloudwatchevidently is not None: - pulumi.set(__self__, "cloudwatchevidently", cloudwatchevidently) + _setter("cloudwatchevidently", cloudwatchevidently) if cloudwatchlog is not None: - pulumi.set(__self__, "cloudwatchlog", cloudwatchlog) + _setter("cloudwatchlog", cloudwatchlog) if cloudwatchlogs is not None: - pulumi.set(__self__, "cloudwatchlogs", cloudwatchlogs) + _setter("cloudwatchlogs", cloudwatchlogs) if cloudwatchobservabilityaccessmanager is not None: - pulumi.set(__self__, "cloudwatchobservabilityaccessmanager", cloudwatchobservabilityaccessmanager) + _setter("cloudwatchobservabilityaccessmanager", cloudwatchobservabilityaccessmanager) if cloudwatchrum is not None: - pulumi.set(__self__, "cloudwatchrum", cloudwatchrum) + _setter("cloudwatchrum", cloudwatchrum) if codeartifact is not None: - pulumi.set(__self__, "codeartifact", codeartifact) + _setter("codeartifact", codeartifact) if codebuild is not None: - pulumi.set(__self__, "codebuild", codebuild) + _setter("codebuild", codebuild) if codecatalyst is not None: - pulumi.set(__self__, "codecatalyst", codecatalyst) + _setter("codecatalyst", codecatalyst) if codecommit is not None: - pulumi.set(__self__, "codecommit", codecommit) + _setter("codecommit", codecommit) if codedeploy is not None: - pulumi.set(__self__, "codedeploy", codedeploy) + _setter("codedeploy", codedeploy) if codegurureviewer is not None: - pulumi.set(__self__, "codegurureviewer", codegurureviewer) + _setter("codegurureviewer", codegurureviewer) if codepipeline is not None: - pulumi.set(__self__, "codepipeline", codepipeline) + _setter("codepipeline", codepipeline) if codestarconnections is not None: - pulumi.set(__self__, "codestarconnections", codestarconnections) + _setter("codestarconnections", codestarconnections) if codestarnotifications is not None: - pulumi.set(__self__, "codestarnotifications", codestarnotifications) + _setter("codestarnotifications", codestarnotifications) if cognitoidentity is not None: - pulumi.set(__self__, "cognitoidentity", cognitoidentity) + _setter("cognitoidentity", cognitoidentity) if cognitoidentityprovider is not None: - pulumi.set(__self__, "cognitoidentityprovider", cognitoidentityprovider) + _setter("cognitoidentityprovider", cognitoidentityprovider) if cognitoidp is not None: - pulumi.set(__self__, "cognitoidp", cognitoidp) + _setter("cognitoidp", cognitoidp) if comprehend is not None: - pulumi.set(__self__, "comprehend", comprehend) + _setter("comprehend", comprehend) if computeoptimizer is not None: - pulumi.set(__self__, "computeoptimizer", computeoptimizer) + _setter("computeoptimizer", computeoptimizer) if config is not None: - pulumi.set(__self__, "config", config) + _setter("config", config) if configservice is not None: - pulumi.set(__self__, "configservice", configservice) + _setter("configservice", configservice) if connect is not None: - pulumi.set(__self__, "connect", connect) + _setter("connect", connect) if controltower is not None: - pulumi.set(__self__, "controltower", controltower) + _setter("controltower", controltower) if costandusagereportservice is not None: - pulumi.set(__self__, "costandusagereportservice", costandusagereportservice) + _setter("costandusagereportservice", costandusagereportservice) if costexplorer is not None: - pulumi.set(__self__, "costexplorer", costexplorer) + _setter("costexplorer", costexplorer) if cur is not None: - pulumi.set(__self__, "cur", cur) + _setter("cur", cur) if databasemigration is not None: - pulumi.set(__self__, "databasemigration", databasemigration) + _setter("databasemigration", databasemigration) if databasemigrationservice is not None: - pulumi.set(__self__, "databasemigrationservice", databasemigrationservice) + _setter("databasemigrationservice", databasemigrationservice) if dataexchange is not None: - pulumi.set(__self__, "dataexchange", dataexchange) + _setter("dataexchange", dataexchange) if datapipeline is not None: - pulumi.set(__self__, "datapipeline", datapipeline) + _setter("datapipeline", datapipeline) if datasync is not None: - pulumi.set(__self__, "datasync", datasync) + _setter("datasync", datasync) if dax is not None: - pulumi.set(__self__, "dax", dax) + _setter("dax", dax) if deploy is not None: - pulumi.set(__self__, "deploy", deploy) + _setter("deploy", deploy) if detective is not None: - pulumi.set(__self__, "detective", detective) + _setter("detective", detective) if devicefarm is not None: - pulumi.set(__self__, "devicefarm", devicefarm) + _setter("devicefarm", devicefarm) if directconnect is not None: - pulumi.set(__self__, "directconnect", directconnect) + _setter("directconnect", directconnect) if directoryservice is not None: - pulumi.set(__self__, "directoryservice", directoryservice) + _setter("directoryservice", directoryservice) if dlm is not None: - pulumi.set(__self__, "dlm", dlm) + _setter("dlm", dlm) if dms is not None: - pulumi.set(__self__, "dms", dms) + _setter("dms", dms) if docdb is not None: - pulumi.set(__self__, "docdb", docdb) + _setter("docdb", docdb) if docdbelastic is not None: - pulumi.set(__self__, "docdbelastic", docdbelastic) + _setter("docdbelastic", docdbelastic) if ds is not None: - pulumi.set(__self__, "ds", ds) + _setter("ds", ds) if dynamodb is not None: - pulumi.set(__self__, "dynamodb", dynamodb) + _setter("dynamodb", dynamodb) if ec2 is not None: - pulumi.set(__self__, "ec2", ec2) + _setter("ec2", ec2) if ecr is not None: - pulumi.set(__self__, "ecr", ecr) + _setter("ecr", ecr) if ecrpublic is not None: - pulumi.set(__self__, "ecrpublic", ecrpublic) + _setter("ecrpublic", ecrpublic) if ecs is not None: - pulumi.set(__self__, "ecs", ecs) + _setter("ecs", ecs) if efs is not None: - pulumi.set(__self__, "efs", efs) + _setter("efs", efs) if eks is not None: - pulumi.set(__self__, "eks", eks) + _setter("eks", eks) if elasticache is not None: - pulumi.set(__self__, "elasticache", elasticache) + _setter("elasticache", elasticache) if elasticbeanstalk is not None: - pulumi.set(__self__, "elasticbeanstalk", elasticbeanstalk) + _setter("elasticbeanstalk", elasticbeanstalk) if elasticloadbalancing is not None: - pulumi.set(__self__, "elasticloadbalancing", elasticloadbalancing) + _setter("elasticloadbalancing", elasticloadbalancing) if elasticloadbalancingv2 is not None: - pulumi.set(__self__, "elasticloadbalancingv2", elasticloadbalancingv2) + _setter("elasticloadbalancingv2", elasticloadbalancingv2) if elasticsearch is not None: - pulumi.set(__self__, "elasticsearch", elasticsearch) + _setter("elasticsearch", elasticsearch) if elasticsearchservice is not None: - pulumi.set(__self__, "elasticsearchservice", elasticsearchservice) + _setter("elasticsearchservice", elasticsearchservice) if elastictranscoder is not None: - pulumi.set(__self__, "elastictranscoder", elastictranscoder) + _setter("elastictranscoder", elastictranscoder) if elb is not None: - pulumi.set(__self__, "elb", elb) + _setter("elb", elb) if elbv2 is not None: - pulumi.set(__self__, "elbv2", elbv2) + _setter("elbv2", elbv2) if emr is not None: - pulumi.set(__self__, "emr", emr) + _setter("emr", emr) if emrcontainers is not None: - pulumi.set(__self__, "emrcontainers", emrcontainers) + _setter("emrcontainers", emrcontainers) if emrserverless is not None: - pulumi.set(__self__, "emrserverless", emrserverless) + _setter("emrserverless", emrserverless) if es is not None: - pulumi.set(__self__, "es", es) + _setter("es", es) if eventbridge is not None: - pulumi.set(__self__, "eventbridge", eventbridge) + _setter("eventbridge", eventbridge) if events is not None: - pulumi.set(__self__, "events", events) + _setter("events", events) if evidently is not None: - pulumi.set(__self__, "evidently", evidently) + _setter("evidently", evidently) if finspace is not None: - pulumi.set(__self__, "finspace", finspace) + _setter("finspace", finspace) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if fis is not None: - pulumi.set(__self__, "fis", fis) + _setter("fis", fis) if fms is not None: - pulumi.set(__self__, "fms", fms) + _setter("fms", fms) if fsx is not None: - pulumi.set(__self__, "fsx", fsx) + _setter("fsx", fsx) if gamelift is not None: - pulumi.set(__self__, "gamelift", gamelift) + _setter("gamelift", gamelift) if glacier is not None: - pulumi.set(__self__, "glacier", glacier) + _setter("glacier", glacier) if globalaccelerator is not None: - pulumi.set(__self__, "globalaccelerator", globalaccelerator) + _setter("globalaccelerator", globalaccelerator) if glue is not None: - pulumi.set(__self__, "glue", glue) + _setter("glue", glue) if grafana is not None: - pulumi.set(__self__, "grafana", grafana) + _setter("grafana", grafana) if greengrass is not None: - pulumi.set(__self__, "greengrass", greengrass) + _setter("greengrass", greengrass) if guardduty is not None: - pulumi.set(__self__, "guardduty", guardduty) + _setter("guardduty", guardduty) if healthlake is not None: - pulumi.set(__self__, "healthlake", healthlake) + _setter("healthlake", healthlake) if iam is not None: - pulumi.set(__self__, "iam", iam) + _setter("iam", iam) if identitystore is not None: - pulumi.set(__self__, "identitystore", identitystore) + _setter("identitystore", identitystore) if imagebuilder is not None: - pulumi.set(__self__, "imagebuilder", imagebuilder) + _setter("imagebuilder", imagebuilder) if inspector is not None: - pulumi.set(__self__, "inspector", inspector) + _setter("inspector", inspector) if inspector2 is not None: - pulumi.set(__self__, "inspector2", inspector2) + _setter("inspector2", inspector2) if inspectorv2 is not None: - pulumi.set(__self__, "inspectorv2", inspectorv2) + _setter("inspectorv2", inspectorv2) if internetmonitor is not None: - pulumi.set(__self__, "internetmonitor", internetmonitor) + _setter("internetmonitor", internetmonitor) if iot is not None: - pulumi.set(__self__, "iot", iot) + _setter("iot", iot) if iotanalytics is not None: - pulumi.set(__self__, "iotanalytics", iotanalytics) + _setter("iotanalytics", iotanalytics) if iotevents is not None: - pulumi.set(__self__, "iotevents", iotevents) + _setter("iotevents", iotevents) if ivs is not None: - pulumi.set(__self__, "ivs", ivs) + _setter("ivs", ivs) if ivschat is not None: - pulumi.set(__self__, "ivschat", ivschat) + _setter("ivschat", ivschat) if kafka is not None: - pulumi.set(__self__, "kafka", kafka) + _setter("kafka", kafka) if kafkaconnect is not None: - pulumi.set(__self__, "kafkaconnect", kafkaconnect) + _setter("kafkaconnect", kafkaconnect) if kendra is not None: - pulumi.set(__self__, "kendra", kendra) + _setter("kendra", kendra) if keyspaces is not None: - pulumi.set(__self__, "keyspaces", keyspaces) + _setter("keyspaces", keyspaces) if kinesis is not None: - pulumi.set(__self__, "kinesis", kinesis) + _setter("kinesis", kinesis) if kinesisanalytics is not None: - pulumi.set(__self__, "kinesisanalytics", kinesisanalytics) + _setter("kinesisanalytics", kinesisanalytics) if kinesisanalyticsv2 is not None: - pulumi.set(__self__, "kinesisanalyticsv2", kinesisanalyticsv2) + _setter("kinesisanalyticsv2", kinesisanalyticsv2) if kinesisvideo is not None: - pulumi.set(__self__, "kinesisvideo", kinesisvideo) + _setter("kinesisvideo", kinesisvideo) if kms is not None: - pulumi.set(__self__, "kms", kms) + _setter("kms", kms) if lakeformation is not None: - pulumi.set(__self__, "lakeformation", lakeformation) + _setter("lakeformation", lakeformation) if lambda_ is not None: - pulumi.set(__self__, "lambda_", lambda_) + _setter("lambda_", lambda_) if lex is not None: - pulumi.set(__self__, "lex", lex) + _setter("lex", lex) if lexmodelbuilding is not None: - pulumi.set(__self__, "lexmodelbuilding", lexmodelbuilding) + _setter("lexmodelbuilding", lexmodelbuilding) if lexmodelbuildingservice is not None: - pulumi.set(__self__, "lexmodelbuildingservice", lexmodelbuildingservice) + _setter("lexmodelbuildingservice", lexmodelbuildingservice) if lexmodels is not None: - pulumi.set(__self__, "lexmodels", lexmodels) + _setter("lexmodels", lexmodels) if lexmodelsv2 is not None: - pulumi.set(__self__, "lexmodelsv2", lexmodelsv2) + _setter("lexmodelsv2", lexmodelsv2) if lexv2models is not None: - pulumi.set(__self__, "lexv2models", lexv2models) + _setter("lexv2models", lexv2models) if licensemanager is not None: - pulumi.set(__self__, "licensemanager", licensemanager) + _setter("licensemanager", licensemanager) if lightsail is not None: - pulumi.set(__self__, "lightsail", lightsail) + _setter("lightsail", lightsail) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if locationservice is not None: - pulumi.set(__self__, "locationservice", locationservice) + _setter("locationservice", locationservice) if logs is not None: - pulumi.set(__self__, "logs", logs) + _setter("logs", logs) if macie2 is not None: - pulumi.set(__self__, "macie2", macie2) + _setter("macie2", macie2) if managedgrafana is not None: - pulumi.set(__self__, "managedgrafana", managedgrafana) + _setter("managedgrafana", managedgrafana) if mediaconnect is not None: - pulumi.set(__self__, "mediaconnect", mediaconnect) + _setter("mediaconnect", mediaconnect) if mediaconvert is not None: - pulumi.set(__self__, "mediaconvert", mediaconvert) + _setter("mediaconvert", mediaconvert) if medialive is not None: - pulumi.set(__self__, "medialive", medialive) + _setter("medialive", medialive) if mediapackage is not None: - pulumi.set(__self__, "mediapackage", mediapackage) + _setter("mediapackage", mediapackage) if mediastore is not None: - pulumi.set(__self__, "mediastore", mediastore) + _setter("mediastore", mediastore) if memorydb is not None: - pulumi.set(__self__, "memorydb", memorydb) + _setter("memorydb", memorydb) if mq is not None: - pulumi.set(__self__, "mq", mq) + _setter("mq", mq) if msk is not None: - pulumi.set(__self__, "msk", msk) + _setter("msk", msk) if mwaa is not None: - pulumi.set(__self__, "mwaa", mwaa) + _setter("mwaa", mwaa) if neptune is not None: - pulumi.set(__self__, "neptune", neptune) + _setter("neptune", neptune) if networkfirewall is not None: - pulumi.set(__self__, "networkfirewall", networkfirewall) + _setter("networkfirewall", networkfirewall) if networkmanager is not None: - pulumi.set(__self__, "networkmanager", networkmanager) + _setter("networkmanager", networkmanager) if oam is not None: - pulumi.set(__self__, "oam", oam) + _setter("oam", oam) if opensearch is not None: - pulumi.set(__self__, "opensearch", opensearch) + _setter("opensearch", opensearch) if opensearchserverless is not None: - pulumi.set(__self__, "opensearchserverless", opensearchserverless) + _setter("opensearchserverless", opensearchserverless) if opensearchservice is not None: - pulumi.set(__self__, "opensearchservice", opensearchservice) + _setter("opensearchservice", opensearchservice) if opsworks is not None: - pulumi.set(__self__, "opsworks", opsworks) + _setter("opsworks", opsworks) if organizations is not None: - pulumi.set(__self__, "organizations", organizations) + _setter("organizations", organizations) if outposts is not None: - pulumi.set(__self__, "outposts", outposts) + _setter("outposts", outposts) if pinpoint is not None: - pulumi.set(__self__, "pinpoint", pinpoint) + _setter("pinpoint", pinpoint) if pipes is not None: - pulumi.set(__self__, "pipes", pipes) + _setter("pipes", pipes) if pricing is not None: - pulumi.set(__self__, "pricing", pricing) + _setter("pricing", pricing) if prometheus is not None: - pulumi.set(__self__, "prometheus", prometheus) + _setter("prometheus", prometheus) if prometheusservice is not None: - pulumi.set(__self__, "prometheusservice", prometheusservice) + _setter("prometheusservice", prometheusservice) if qldb is not None: - pulumi.set(__self__, "qldb", qldb) + _setter("qldb", qldb) if quicksight is not None: - pulumi.set(__self__, "quicksight", quicksight) + _setter("quicksight", quicksight) if ram is not None: - pulumi.set(__self__, "ram", ram) + _setter("ram", ram) if rbin is not None: - pulumi.set(__self__, "rbin", rbin) + _setter("rbin", rbin) if rds is not None: - pulumi.set(__self__, "rds", rds) + _setter("rds", rds) if recyclebin is not None: - pulumi.set(__self__, "recyclebin", recyclebin) + _setter("recyclebin", recyclebin) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if redshiftdata is not None: - pulumi.set(__self__, "redshiftdata", redshiftdata) + _setter("redshiftdata", redshiftdata) if redshiftdataapiservice is not None: - pulumi.set(__self__, "redshiftdataapiservice", redshiftdataapiservice) + _setter("redshiftdataapiservice", redshiftdataapiservice) if redshiftserverless is not None: - pulumi.set(__self__, "redshiftserverless", redshiftserverless) + _setter("redshiftserverless", redshiftserverless) if resourceexplorer2 is not None: - pulumi.set(__self__, "resourceexplorer2", resourceexplorer2) + _setter("resourceexplorer2", resourceexplorer2) if resourcegroups is not None: - pulumi.set(__self__, "resourcegroups", resourcegroups) + _setter("resourcegroups", resourcegroups) if resourcegroupstagging is not None: - pulumi.set(__self__, "resourcegroupstagging", resourcegroupstagging) + _setter("resourcegroupstagging", resourcegroupstagging) if resourcegroupstaggingapi is not None: - pulumi.set(__self__, "resourcegroupstaggingapi", resourcegroupstaggingapi) + _setter("resourcegroupstaggingapi", resourcegroupstaggingapi) if rolesanywhere is not None: - pulumi.set(__self__, "rolesanywhere", rolesanywhere) + _setter("rolesanywhere", rolesanywhere) if route53 is not None: - pulumi.set(__self__, "route53", route53) + _setter("route53", route53) if route53domains is not None: - pulumi.set(__self__, "route53domains", route53domains) + _setter("route53domains", route53domains) if route53recoverycontrolconfig is not None: - pulumi.set(__self__, "route53recoverycontrolconfig", route53recoverycontrolconfig) + _setter("route53recoverycontrolconfig", route53recoverycontrolconfig) if route53recoveryreadiness is not None: - pulumi.set(__self__, "route53recoveryreadiness", route53recoveryreadiness) + _setter("route53recoveryreadiness", route53recoveryreadiness) if route53resolver is not None: - pulumi.set(__self__, "route53resolver", route53resolver) + _setter("route53resolver", route53resolver) if rum is not None: - pulumi.set(__self__, "rum", rum) + _setter("rum", rum) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if s3api is not None: - pulumi.set(__self__, "s3api", s3api) + _setter("s3api", s3api) if s3control is not None: - pulumi.set(__self__, "s3control", s3control) + _setter("s3control", s3control) if s3outposts is not None: - pulumi.set(__self__, "s3outposts", s3outposts) + _setter("s3outposts", s3outposts) if sagemaker is not None: - pulumi.set(__self__, "sagemaker", sagemaker) + _setter("sagemaker", sagemaker) if scheduler is not None: - pulumi.set(__self__, "scheduler", scheduler) + _setter("scheduler", scheduler) if schemas is not None: - pulumi.set(__self__, "schemas", schemas) + _setter("schemas", schemas) if sdb is not None: - pulumi.set(__self__, "sdb", sdb) + _setter("sdb", sdb) if secretsmanager is not None: - pulumi.set(__self__, "secretsmanager", secretsmanager) + _setter("secretsmanager", secretsmanager) if securityhub is not None: - pulumi.set(__self__, "securityhub", securityhub) + _setter("securityhub", securityhub) if securitylake is not None: - pulumi.set(__self__, "securitylake", securitylake) + _setter("securitylake", securitylake) if serverlessapplicationrepository is not None: - pulumi.set(__self__, "serverlessapplicationrepository", serverlessapplicationrepository) + _setter("serverlessapplicationrepository", serverlessapplicationrepository) if serverlessapprepo is not None: - pulumi.set(__self__, "serverlessapprepo", serverlessapprepo) + _setter("serverlessapprepo", serverlessapprepo) if serverlessrepo is not None: - pulumi.set(__self__, "serverlessrepo", serverlessrepo) + _setter("serverlessrepo", serverlessrepo) if servicecatalog is not None: - pulumi.set(__self__, "servicecatalog", servicecatalog) + _setter("servicecatalog", servicecatalog) if servicediscovery is not None: - pulumi.set(__self__, "servicediscovery", servicediscovery) + _setter("servicediscovery", servicediscovery) if servicequotas is not None: - pulumi.set(__self__, "servicequotas", servicequotas) + _setter("servicequotas", servicequotas) if ses is not None: - pulumi.set(__self__, "ses", ses) + _setter("ses", ses) if sesv2 is not None: - pulumi.set(__self__, "sesv2", sesv2) + _setter("sesv2", sesv2) if sfn is not None: - pulumi.set(__self__, "sfn", sfn) + _setter("sfn", sfn) if shield is not None: - pulumi.set(__self__, "shield", shield) + _setter("shield", shield) if signer is not None: - pulumi.set(__self__, "signer", signer) + _setter("signer", signer) if simpledb is not None: - pulumi.set(__self__, "simpledb", simpledb) + _setter("simpledb", simpledb) if sns is not None: - pulumi.set(__self__, "sns", sns) + _setter("sns", sns) if sqs is not None: - pulumi.set(__self__, "sqs", sqs) + _setter("sqs", sqs) if ssm is not None: - pulumi.set(__self__, "ssm", ssm) + _setter("ssm", ssm) if ssmcontacts is not None: - pulumi.set(__self__, "ssmcontacts", ssmcontacts) + _setter("ssmcontacts", ssmcontacts) if ssmincidents is not None: - pulumi.set(__self__, "ssmincidents", ssmincidents) + _setter("ssmincidents", ssmincidents) if ssoadmin is not None: - pulumi.set(__self__, "ssoadmin", ssoadmin) + _setter("ssoadmin", ssoadmin) if stepfunctions is not None: - pulumi.set(__self__, "stepfunctions", stepfunctions) + _setter("stepfunctions", stepfunctions) if storagegateway is not None: - pulumi.set(__self__, "storagegateway", storagegateway) + _setter("storagegateway", storagegateway) if sts is not None: - pulumi.set(__self__, "sts", sts) + _setter("sts", sts) if swf is not None: - pulumi.set(__self__, "swf", swf) + _setter("swf", swf) if synthetics is not None: - pulumi.set(__self__, "synthetics", synthetics) + _setter("synthetics", synthetics) if timestreamwrite is not None: - pulumi.set(__self__, "timestreamwrite", timestreamwrite) + _setter("timestreamwrite", timestreamwrite) if transcribe is not None: - pulumi.set(__self__, "transcribe", transcribe) + _setter("transcribe", transcribe) if transcribeservice is not None: - pulumi.set(__self__, "transcribeservice", transcribeservice) + _setter("transcribeservice", transcribeservice) if transfer is not None: - pulumi.set(__self__, "transfer", transfer) + _setter("transfer", transfer) if verifiedpermissions is not None: - pulumi.set(__self__, "verifiedpermissions", verifiedpermissions) + _setter("verifiedpermissions", verifiedpermissions) if vpclattice is not None: - pulumi.set(__self__, "vpclattice", vpclattice) + _setter("vpclattice", vpclattice) if waf is not None: - pulumi.set(__self__, "waf", waf) + _setter("waf", waf) if wafregional is not None: - pulumi.set(__self__, "wafregional", wafregional) + _setter("wafregional", wafregional) if wafv2 is not None: - pulumi.set(__self__, "wafv2", wafv2) + _setter("wafv2", wafv2) if worklink is not None: - pulumi.set(__self__, "worklink", worklink) + _setter("worklink", worklink) if workspaces is not None: - pulumi.set(__self__, "workspaces", workspaces) + _setter("workspaces", workspaces) if xray is not None: - pulumi.set(__self__, "xray", xray) + _setter("xray", xray) @property @pulumi.getter @@ -2178,10 +2772,25 @@ class IgnoreTags(dict): def __init__(__self__, *, key_prefixes: Optional[Sequence[str]] = None, keys: Optional[Sequence[str]] = None): + IgnoreTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_prefixes=key_prefixes, + keys=keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_prefixes: Optional[Sequence[str]] = None, + keys: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_prefixes is None and 'keyPrefixes' in kwargs: + key_prefixes = kwargs['keyPrefixes'] + if key_prefixes is not None: - pulumi.set(__self__, "key_prefixes", key_prefixes) + _setter("key_prefixes", key_prefixes) if keys is not None: - pulumi.set(__self__, "keys", keys) + _setter("keys", keys) @property @pulumi.getter(name="keyPrefixes") diff --git a/sdk/python/pulumi_aws/config/vars.py b/sdk/python/pulumi_aws/config/vars.py index 6574296230c..20bf1021185 100644 --- a/sdk/python/pulumi_aws/config/vars.py +++ b/sdk/python/pulumi_aws/config/vars.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/connect/_inputs.py b/sdk/python/pulumi_aws/connect/_inputs.py index 67ed62d0bf3..50219efb38c 100644 --- a/sdk/python/pulumi_aws/connect/_inputs.py +++ b/sdk/python/pulumi_aws/connect/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -55,9 +55,26 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Amazon Lex (V1) bot. :param pulumi.Input[str] lex_region: The Region that the Amazon Lex (V1) bot was created in. Defaults to current region. """ - pulumi.set(__self__, "name", name) + BotAssociationLexBotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + lex_region=lex_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + lex_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if lex_region is None and 'lexRegion' in kwargs: + lex_region = kwargs['lexRegion'] + + _setter("name", name) if lex_region is not None: - pulumi.set(__self__, "lex_region", lex_region) + _setter("lex_region", lex_region) @property @pulumi.getter @@ -95,9 +112,34 @@ def __init__(__self__, *, :param pulumi.Input['HoursOfOperationConfigEndTimeArgs'] end_time: A end time block specifies the time that your contact center closes. The `end_time` is documented below. :param pulumi.Input['HoursOfOperationConfigStartTimeArgs'] start_time: A start time block specifies the time that your contact center opens. The `start_time` is documented below. """ - pulumi.set(__self__, "day", day) - pulumi.set(__self__, "end_time", end_time) - pulumi.set(__self__, "start_time", start_time) + HoursOfOperationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + day=day, + end_time=end_time, + start_time=start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + day: Optional[pulumi.Input[str]] = None, + end_time: Optional[pulumi.Input['HoursOfOperationConfigEndTimeArgs']] = None, + start_time: Optional[pulumi.Input['HoursOfOperationConfigStartTimeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if day is None: + raise TypeError("Missing 'day' argument") + if end_time is None and 'endTime' in kwargs: + end_time = kwargs['endTime'] + if end_time is None: + raise TypeError("Missing 'end_time' argument") + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if start_time is None: + raise TypeError("Missing 'start_time' argument") + + _setter("day", day) + _setter("end_time", end_time) + _setter("start_time", start_time) @property @pulumi.getter @@ -145,8 +187,25 @@ def __init__(__self__, *, :param pulumi.Input[int] hours: Specifies the hour of closing. :param pulumi.Input[int] minutes: Specifies the minute of closing. """ - pulumi.set(__self__, "hours", hours) - pulumi.set(__self__, "minutes", minutes) + HoursOfOperationConfigEndTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[pulumi.Input[int]] = None, + minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is None: + raise TypeError("Missing 'hours' argument") + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("hours", hours) + _setter("minutes", minutes) @property @pulumi.getter @@ -182,8 +241,25 @@ def __init__(__self__, *, :param pulumi.Input[int] hours: Specifies the hour of opening. :param pulumi.Input[int] minutes: Specifies the minute of opening. """ - pulumi.set(__self__, "hours", hours) - pulumi.set(__self__, "minutes", minutes) + HoursOfOperationConfigStartTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[pulumi.Input[int]] = None, + minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is None: + raise TypeError("Missing 'hours' argument") + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("hours", hours) + _setter("minutes", minutes) @property @pulumi.getter @@ -225,15 +301,46 @@ def __init__(__self__, *, :param pulumi.Input['InstanceStorageConfigStorageConfigKinesisVideoStreamConfigArgs'] kinesis_video_stream_config: A block that specifies the configuration of the Kinesis video stream. Documented below. :param pulumi.Input['InstanceStorageConfigStorageConfigS3ConfigArgs'] s3_config: A block that specifies the configuration of S3 Bucket. Documented below. """ - pulumi.set(__self__, "storage_type", storage_type) + InstanceStorageConfigStorageConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_type=storage_type, + kinesis_firehose_config=kinesis_firehose_config, + kinesis_stream_config=kinesis_stream_config, + kinesis_video_stream_config=kinesis_video_stream_config, + s3_config=s3_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_type: Optional[pulumi.Input[str]] = None, + kinesis_firehose_config: Optional[pulumi.Input['InstanceStorageConfigStorageConfigKinesisFirehoseConfigArgs']] = None, + kinesis_stream_config: Optional[pulumi.Input['InstanceStorageConfigStorageConfigKinesisStreamConfigArgs']] = None, + kinesis_video_stream_config: Optional[pulumi.Input['InstanceStorageConfigStorageConfigKinesisVideoStreamConfigArgs']] = None, + s3_config: Optional[pulumi.Input['InstanceStorageConfigStorageConfigS3ConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if storage_type is None: + raise TypeError("Missing 'storage_type' argument") + if kinesis_firehose_config is None and 'kinesisFirehoseConfig' in kwargs: + kinesis_firehose_config = kwargs['kinesisFirehoseConfig'] + if kinesis_stream_config is None and 'kinesisStreamConfig' in kwargs: + kinesis_stream_config = kwargs['kinesisStreamConfig'] + if kinesis_video_stream_config is None and 'kinesisVideoStreamConfig' in kwargs: + kinesis_video_stream_config = kwargs['kinesisVideoStreamConfig'] + if s3_config is None and 's3Config' in kwargs: + s3_config = kwargs['s3Config'] + + _setter("storage_type", storage_type) if kinesis_firehose_config is not None: - pulumi.set(__self__, "kinesis_firehose_config", kinesis_firehose_config) + _setter("kinesis_firehose_config", kinesis_firehose_config) if kinesis_stream_config is not None: - pulumi.set(__self__, "kinesis_stream_config", kinesis_stream_config) + _setter("kinesis_stream_config", kinesis_stream_config) if kinesis_video_stream_config is not None: - pulumi.set(__self__, "kinesis_video_stream_config", kinesis_video_stream_config) + _setter("kinesis_video_stream_config", kinesis_video_stream_config) if s3_config is not None: - pulumi.set(__self__, "s3_config", s3_config) + _setter("s3_config", s3_config) @property @pulumi.getter(name="storageType") @@ -303,7 +410,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] firehose_arn: The Amazon Resource Name (ARN) of the delivery stream. """ - pulumi.set(__self__, "firehose_arn", firehose_arn) + InstanceStorageConfigStorageConfigKinesisFirehoseConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + firehose_arn=firehose_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firehose_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firehose_arn is None and 'firehoseArn' in kwargs: + firehose_arn = kwargs['firehoseArn'] + if firehose_arn is None: + raise TypeError("Missing 'firehose_arn' argument") + + _setter("firehose_arn", firehose_arn) @property @pulumi.getter(name="firehoseArn") @@ -325,7 +447,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] stream_arn: The Amazon Resource Name (ARN) of the data stream. """ - pulumi.set(__self__, "stream_arn", stream_arn) + InstanceStorageConfigStorageConfigKinesisStreamConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="streamArn") @@ -351,9 +488,34 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: The prefix of the video stream. Minimum length of `1`. Maximum length of `128`. When read from the state, the value returned is `-connect--contact-` since the API appends additional details to the `prefix`. :param pulumi.Input[int] retention_period_hours: The number of hours data is retained in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream. Minimum value of `0`. Maximum value of `87600`. A value of `0`, indicates that the stream does not persist data. """ - pulumi.set(__self__, "encryption_config", encryption_config) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "retention_period_hours", retention_period_hours) + InstanceStorageConfigStorageConfigKinesisVideoStreamConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_config=encryption_config, + prefix=prefix, + retention_period_hours=retention_period_hours, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_config: Optional[pulumi.Input['InstanceStorageConfigStorageConfigKinesisVideoStreamConfigEncryptionConfigArgs']] = None, + prefix: Optional[pulumi.Input[str]] = None, + retention_period_hours: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_config is None and 'encryptionConfig' in kwargs: + encryption_config = kwargs['encryptionConfig'] + if encryption_config is None: + raise TypeError("Missing 'encryption_config' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if retention_period_hours is None and 'retentionPeriodHours' in kwargs: + retention_period_hours = kwargs['retentionPeriodHours'] + if retention_period_hours is None: + raise TypeError("Missing 'retention_period_hours' argument") + + _setter("encryption_config", encryption_config) + _setter("prefix", prefix) + _setter("retention_period_hours", retention_period_hours) @property @pulumi.getter(name="encryptionConfig") @@ -401,8 +563,29 @@ def __init__(__self__, *, :param pulumi.Input[str] encryption_type: The type of encryption. Valid Values: `KMS`. :param pulumi.Input[str] key_id: The full ARN of the encryption key. Be sure to provide the full ARN of the encryption key, not just the ID. """ - pulumi.set(__self__, "encryption_type", encryption_type) - pulumi.set(__self__, "key_id", key_id) + InstanceStorageConfigStorageConfigKinesisVideoStreamConfigEncryptionConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if encryption_type is None: + raise TypeError("Missing 'encryption_type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("encryption_type", encryption_type) + _setter("key_id", key_id) @property @pulumi.getter(name="encryptionType") @@ -440,10 +623,35 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_prefix: The S3 bucket prefix. :param pulumi.Input['InstanceStorageConfigStorageConfigS3ConfigEncryptionConfigArgs'] encryption_config: The encryption configuration. Documented below. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + InstanceStorageConfigStorageConfigS3ConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + encryption_config=encryption_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + encryption_config: Optional[pulumi.Input['InstanceStorageConfigStorageConfigS3ConfigEncryptionConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if bucket_prefix is None: + raise TypeError("Missing 'bucket_prefix' argument") + if encryption_config is None and 'encryptionConfig' in kwargs: + encryption_config = kwargs['encryptionConfig'] + + _setter("bucket_name", bucket_name) + _setter("bucket_prefix", bucket_prefix) if encryption_config is not None: - pulumi.set(__self__, "encryption_config", encryption_config) + _setter("encryption_config", encryption_config) @property @pulumi.getter(name="bucketName") @@ -491,8 +699,29 @@ def __init__(__self__, *, :param pulumi.Input[str] encryption_type: The type of encryption. Valid Values: `KMS`. :param pulumi.Input[str] key_id: The full ARN of the encryption key. Be sure to provide the full ARN of the encryption key, not just the ID. """ - pulumi.set(__self__, "encryption_type", encryption_type) - pulumi.set(__self__, "key_id", key_id) + InstanceStorageConfigStorageConfigS3ConfigEncryptionConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if encryption_type is None: + raise TypeError("Missing 'encryption_type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("encryption_type", encryption_type) + _setter("key_id", key_id) @property @pulumi.getter(name="encryptionType") @@ -528,10 +757,23 @@ def __init__(__self__, *, :param pulumi.Input[str] message: The status message. :param pulumi.Input[str] status: The status of the phone number. Valid Values: `CLAIMED` | `IN_PROGRESS` | `FAILED`. """ + PhoneNumberStatusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + message=message, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -569,12 +811,33 @@ def __init__(__self__, *, :param pulumi.Input[str] outbound_caller_id_number_id: Specifies the caller ID number. :param pulumi.Input[str] outbound_flow_id: Specifies outbound whisper flow to be used during an outbound call. """ + QueueOutboundCallerConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + outbound_caller_id_name=outbound_caller_id_name, + outbound_caller_id_number_id=outbound_caller_id_number_id, + outbound_flow_id=outbound_flow_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + outbound_caller_id_name: Optional[pulumi.Input[str]] = None, + outbound_caller_id_number_id: Optional[pulumi.Input[str]] = None, + outbound_flow_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if outbound_caller_id_name is None and 'outboundCallerIdName' in kwargs: + outbound_caller_id_name = kwargs['outboundCallerIdName'] + if outbound_caller_id_number_id is None and 'outboundCallerIdNumberId' in kwargs: + outbound_caller_id_number_id = kwargs['outboundCallerIdNumberId'] + if outbound_flow_id is None and 'outboundFlowId' in kwargs: + outbound_flow_id = kwargs['outboundFlowId'] + if outbound_caller_id_name is not None: - pulumi.set(__self__, "outbound_caller_id_name", outbound_caller_id_name) + _setter("outbound_caller_id_name", outbound_caller_id_name) if outbound_caller_id_number_id is not None: - pulumi.set(__self__, "outbound_caller_id_number_id", outbound_caller_id_number_id) + _setter("outbound_caller_id_number_id", outbound_caller_id_number_id) if outbound_flow_id is not None: - pulumi.set(__self__, "outbound_flow_id", outbound_flow_id) + _setter("outbound_flow_id", outbound_flow_id) @property @pulumi.getter(name="outboundCallerIdName") @@ -626,13 +889,40 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigQueueConfigArgs']]] queue_configs: Specifies the queue configuration of the Quick Connect. This is required only if `quick_connect_type` is `QUEUE`. The `queue_config` block is documented below. :param pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigUserConfigArgs']]] user_configs: Specifies the user configuration of the Quick Connect. This is required only if `quick_connect_type` is `USER`. The `user_config` block is documented below. """ - pulumi.set(__self__, "quick_connect_type", quick_connect_type) + QuickConnectQuickConnectConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + quick_connect_type=quick_connect_type, + phone_configs=phone_configs, + queue_configs=queue_configs, + user_configs=user_configs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + quick_connect_type: Optional[pulumi.Input[str]] = None, + phone_configs: Optional[pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigPhoneConfigArgs']]]] = None, + queue_configs: Optional[pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigQueueConfigArgs']]]] = None, + user_configs: Optional[pulumi.Input[Sequence[pulumi.Input['QuickConnectQuickConnectConfigUserConfigArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if quick_connect_type is None and 'quickConnectType' in kwargs: + quick_connect_type = kwargs['quickConnectType'] + if quick_connect_type is None: + raise TypeError("Missing 'quick_connect_type' argument") + if phone_configs is None and 'phoneConfigs' in kwargs: + phone_configs = kwargs['phoneConfigs'] + if queue_configs is None and 'queueConfigs' in kwargs: + queue_configs = kwargs['queueConfigs'] + if user_configs is None and 'userConfigs' in kwargs: + user_configs = kwargs['userConfigs'] + + _setter("quick_connect_type", quick_connect_type) if phone_configs is not None: - pulumi.set(__self__, "phone_configs", phone_configs) + _setter("phone_configs", phone_configs) if queue_configs is not None: - pulumi.set(__self__, "queue_configs", queue_configs) + _setter("queue_configs", queue_configs) if user_configs is not None: - pulumi.set(__self__, "user_configs", user_configs) + _setter("user_configs", user_configs) @property @pulumi.getter(name="quickConnectType") @@ -690,7 +980,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] phone_number: Specifies the phone number in in E.164 format. """ - pulumi.set(__self__, "phone_number", phone_number) + QuickConnectQuickConnectConfigPhoneConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + phone_number=phone_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + phone_number: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if phone_number is None: + raise TypeError("Missing 'phone_number' argument") + + _setter("phone_number", phone_number) @property @pulumi.getter(name="phoneNumber") @@ -714,8 +1019,29 @@ def __init__(__self__, *, :param pulumi.Input[str] contact_flow_id: Specifies the identifier of the contact flow. :param pulumi.Input[str] queue_id: Specifies the identifier for the queue. """ - pulumi.set(__self__, "contact_flow_id", contact_flow_id) - pulumi.set(__self__, "queue_id", queue_id) + QuickConnectQuickConnectConfigQueueConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_flow_id=contact_flow_id, + queue_id=queue_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_flow_id: Optional[pulumi.Input[str]] = None, + queue_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_flow_id is None and 'contactFlowId' in kwargs: + contact_flow_id = kwargs['contactFlowId'] + if contact_flow_id is None: + raise TypeError("Missing 'contact_flow_id' argument") + if queue_id is None and 'queueId' in kwargs: + queue_id = kwargs['queueId'] + if queue_id is None: + raise TypeError("Missing 'queue_id' argument") + + _setter("contact_flow_id", contact_flow_id) + _setter("queue_id", queue_id) @property @pulumi.getter(name="contactFlowId") @@ -751,8 +1077,29 @@ def __init__(__self__, *, :param pulumi.Input[str] contact_flow_id: Specifies the identifier of the contact flow. :param pulumi.Input[str] user_id: Specifies the identifier for the user. """ - pulumi.set(__self__, "contact_flow_id", contact_flow_id) - pulumi.set(__self__, "user_id", user_id) + QuickConnectQuickConnectConfigUserConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_flow_id=contact_flow_id, + user_id=user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_flow_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_flow_id is None and 'contactFlowId' in kwargs: + contact_flow_id = kwargs['contactFlowId'] + if contact_flow_id is None: + raise TypeError("Missing 'contact_flow_id' argument") + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_id is None: + raise TypeError("Missing 'user_id' argument") + + _setter("contact_flow_id", contact_flow_id) + _setter("user_id", user_id) @property @pulumi.getter(name="contactFlowId") @@ -788,8 +1135,25 @@ def __init__(__self__, *, :param pulumi.Input[str] channel: Specifies the channels that agents can handle in the Contact Control Panel (CCP). Valid values are `VOICE`, `CHAT`, `TASK`. :param pulumi.Input[int] concurrency: Specifies the number of contacts an agent can have on a channel simultaneously. Valid Range for `VOICE`: Minimum value of 1. Maximum value of 1. Valid Range for `CHAT`: Minimum value of 1. Maximum value of 10. Valid Range for `TASK`: Minimum value of 1. Maximum value of 10. """ - pulumi.set(__self__, "channel", channel) - pulumi.set(__self__, "concurrency", concurrency) + RoutingProfileMediaConcurrencyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel=channel, + concurrency=concurrency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel: Optional[pulumi.Input[str]] = None, + concurrency: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel is None: + raise TypeError("Missing 'channel' argument") + if concurrency is None: + raise TypeError("Missing 'concurrency' argument") + + _setter("channel", channel) + _setter("concurrency", concurrency) @property @pulumi.getter @@ -833,14 +1197,49 @@ def __init__(__self__, *, :param pulumi.Input[str] queue_arn: ARN for the queue. :param pulumi.Input[str] queue_name: Name for the queue. """ - pulumi.set(__self__, "channel", channel) - pulumi.set(__self__, "delay", delay) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "queue_id", queue_id) + RoutingProfileQueueConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel=channel, + delay=delay, + priority=priority, + queue_id=queue_id, + queue_arn=queue_arn, + queue_name=queue_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel: Optional[pulumi.Input[str]] = None, + delay: Optional[pulumi.Input[int]] = None, + priority: Optional[pulumi.Input[int]] = None, + queue_id: Optional[pulumi.Input[str]] = None, + queue_arn: Optional[pulumi.Input[str]] = None, + queue_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel is None: + raise TypeError("Missing 'channel' argument") + if delay is None: + raise TypeError("Missing 'delay' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if queue_id is None and 'queueId' in kwargs: + queue_id = kwargs['queueId'] + if queue_id is None: + raise TypeError("Missing 'queue_id' argument") + if queue_arn is None and 'queueArn' in kwargs: + queue_arn = kwargs['queueArn'] + if queue_name is None and 'queueName' in kwargs: + queue_name = kwargs['queueName'] + + _setter("channel", channel) + _setter("delay", delay) + _setter("priority", priority) + _setter("queue_id", queue_id) if queue_arn is not None: - pulumi.set(__self__, "queue_arn", queue_arn) + _setter("queue_arn", queue_arn) if queue_name is not None: - pulumi.set(__self__, "queue_name", queue_name) + _setter("queue_name", queue_name) @property @pulumi.getter @@ -930,16 +1329,45 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelThreeArgs']]] level_threes: A block that defines the details of level three. The level block is documented below. :param pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelTwoArgs']]] level_twos: A block that defines the details of level two. The level block is documented below. """ + UserHierarchyGroupHierarchyPathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + level_fives=level_fives, + level_fours=level_fours, + level_ones=level_ones, + level_threes=level_threes, + level_twos=level_twos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + level_fives: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelFifeArgs']]]] = None, + level_fours: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelFourArgs']]]] = None, + level_ones: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelOneArgs']]]] = None, + level_threes: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelThreeArgs']]]] = None, + level_twos: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathLevelTwoArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if level_fives is None and 'levelFives' in kwargs: + level_fives = kwargs['levelFives'] + if level_fours is None and 'levelFours' in kwargs: + level_fours = kwargs['levelFours'] + if level_ones is None and 'levelOnes' in kwargs: + level_ones = kwargs['levelOnes'] + if level_threes is None and 'levelThrees' in kwargs: + level_threes = kwargs['levelThrees'] + if level_twos is None and 'levelTwos' in kwargs: + level_twos = kwargs['levelTwos'] + if level_fives is not None: - pulumi.set(__self__, "level_fives", level_fives) + _setter("level_fives", level_fives) if level_fours is not None: - pulumi.set(__self__, "level_fours", level_fours) + _setter("level_fours", level_fours) if level_ones is not None: - pulumi.set(__self__, "level_ones", level_ones) + _setter("level_ones", level_ones) if level_threes is not None: - pulumi.set(__self__, "level_threes", level_threes) + _setter("level_threes", level_threes) if level_twos is not None: - pulumi.set(__self__, "level_twos", level_twos) + _setter("level_twos", level_twos) @property @pulumi.getter(name="levelFives") @@ -1013,12 +1441,27 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The identifier of the hierarchy group. :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelFifeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1068,12 +1511,27 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The identifier of the hierarchy group. :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelFourArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1123,12 +1581,27 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The identifier of the hierarchy group. :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelOneArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1178,12 +1651,27 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The identifier of the hierarchy group. :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelThreeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1233,12 +1721,27 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The identifier of the hierarchy group. :param pulumi.Input[str] name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelTwoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1294,16 +1797,45 @@ def __init__(__self__, *, :param pulumi.Input['UserHierarchyStructureHierarchyStructureLevelThreeArgs'] level_three: A block that defines the details of level three. The level block is documented below. :param pulumi.Input['UserHierarchyStructureHierarchyStructureLevelTwoArgs'] level_two: A block that defines the details of level two. The level block is documented below. """ + UserHierarchyStructureHierarchyStructureArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + level_five=level_five, + level_four=level_four, + level_one=level_one, + level_three=level_three, + level_two=level_two, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + level_five: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelFiveArgs']] = None, + level_four: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelFourArgs']] = None, + level_one: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelOneArgs']] = None, + level_three: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelThreeArgs']] = None, + level_two: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureLevelTwoArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if level_five is None and 'levelFive' in kwargs: + level_five = kwargs['levelFive'] + if level_four is None and 'levelFour' in kwargs: + level_four = kwargs['levelFour'] + if level_one is None and 'levelOne' in kwargs: + level_one = kwargs['levelOne'] + if level_three is None and 'levelThree' in kwargs: + level_three = kwargs['levelThree'] + if level_two is None and 'levelTwo' in kwargs: + level_two = kwargs['levelTwo'] + if level_five is not None: - pulumi.set(__self__, "level_five", level_five) + _setter("level_five", level_five) if level_four is not None: - pulumi.set(__self__, "level_four", level_four) + _setter("level_four", level_four) if level_one is not None: - pulumi.set(__self__, "level_one", level_one) + _setter("level_one", level_one) if level_three is not None: - pulumi.set(__self__, "level_three", level_three) + _setter("level_three", level_three) if level_two is not None: - pulumi.set(__self__, "level_two", level_two) + _setter("level_two", level_two) @property @pulumi.getter(name="levelFive") @@ -1379,11 +1911,28 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level. :param pulumi.Input[str] id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelFiveArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1433,11 +1982,28 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level. :param pulumi.Input[str] id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelFourArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1487,11 +2053,28 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level. :param pulumi.Input[str] id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelOneArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1541,11 +2124,28 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level. :param pulumi.Input[str] id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelThreeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1595,11 +2195,28 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the hierarchy level. :param pulumi.Input[str] id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelTwoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1649,12 +2266,31 @@ def __init__(__self__, *, :param pulumi.Input[str] first_name: The first name. This is required if you are using Amazon Connect or SAML for identity management. Minimum length of 1. Maximum length of 100. :param pulumi.Input[str] last_name: The last name. This is required if you are using Amazon Connect or SAML for identity management. Minimum length of 1. Maximum length of 100. """ + UserIdentityInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + email=email, + first_name=first_name, + last_name=last_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email: Optional[pulumi.Input[str]] = None, + first_name: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) @property @pulumi.getter @@ -1706,13 +2342,40 @@ def __init__(__self__, *, :param pulumi.Input[bool] auto_accept: When Auto-Accept Call is enabled for an available agent, the agent connects to contacts automatically. :param pulumi.Input[str] desk_phone_number: The phone number for the user's desk phone. Required if `phone_type` is set as `DESK_PHONE`. """ - pulumi.set(__self__, "phone_type", phone_type) + UserPhoneConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + phone_type=phone_type, + after_contact_work_time_limit=after_contact_work_time_limit, + auto_accept=auto_accept, + desk_phone_number=desk_phone_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + phone_type: Optional[pulumi.Input[str]] = None, + after_contact_work_time_limit: Optional[pulumi.Input[int]] = None, + auto_accept: Optional[pulumi.Input[bool]] = None, + desk_phone_number: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if phone_type is None and 'phoneType' in kwargs: + phone_type = kwargs['phoneType'] + if phone_type is None: + raise TypeError("Missing 'phone_type' argument") + if after_contact_work_time_limit is None and 'afterContactWorkTimeLimit' in kwargs: + after_contact_work_time_limit = kwargs['afterContactWorkTimeLimit'] + if auto_accept is None and 'autoAccept' in kwargs: + auto_accept = kwargs['autoAccept'] + if desk_phone_number is None and 'deskPhoneNumber' in kwargs: + desk_phone_number = kwargs['deskPhoneNumber'] + + _setter("phone_type", phone_type) if after_contact_work_time_limit is not None: - pulumi.set(__self__, "after_contact_work_time_limit", after_contact_work_time_limit) + _setter("after_contact_work_time_limit", after_contact_work_time_limit) if auto_accept is not None: - pulumi.set(__self__, "auto_accept", auto_accept) + _setter("auto_accept", auto_accept) if desk_phone_number is not None: - pulumi.set(__self__, "desk_phone_number", desk_phone_number) + _setter("desk_phone_number", desk_phone_number) @property @pulumi.getter(name="phoneType") @@ -1772,8 +2435,27 @@ def __init__(__self__, *, :param str lex_region: Region that the Amazon Lex (V1) bot was created in. :param str name: Name of the Amazon Lex (V1) bot. """ - pulumi.set(__self__, "lex_region", lex_region) - pulumi.set(__self__, "name", name) + GetBotAssociationLexBotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lex_region=lex_region, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lex_region: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lex_region is None and 'lexRegion' in kwargs: + lex_region = kwargs['lexRegion'] + if lex_region is None: + raise TypeError("Missing 'lex_region' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("lex_region", lex_region) + _setter("name", name) @property @pulumi.getter(name="lexRegion") diff --git a/sdk/python/pulumi_aws/connect/bot_association.py b/sdk/python/pulumi_aws/connect/bot_association.py index 9cb2a97cc80..cd7ebd067b6 100644 --- a/sdk/python/pulumi_aws/connect/bot_association.py +++ b/sdk/python/pulumi_aws/connect/bot_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_id: The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance. :param pulumi.Input['BotAssociationLexBotArgs'] lex_bot: Configuration information of an Amazon Lex (V1) bot. Detailed below. """ - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "lex_bot", lex_bot) + BotAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + lex_bot=lex_bot, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + lex_bot: Optional[pulumi.Input['BotAssociationLexBotArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if lex_bot is None and 'lexBot' in kwargs: + lex_bot = kwargs['lexBot'] + if lex_bot is None: + raise TypeError("Missing 'lex_bot' argument") + + _setter("instance_id", instance_id) + _setter("lex_bot", lex_bot) @property @pulumi.getter(name="instanceId") @@ -61,10 +82,27 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_id: The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance. :param pulumi.Input['BotAssociationLexBotArgs'] lex_bot: Configuration information of an Amazon Lex (V1) bot. Detailed below. """ + _BotAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + lex_bot=lex_bot, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + lex_bot: Optional[pulumi.Input['BotAssociationLexBotArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if lex_bot is None and 'lexBot' in kwargs: + lex_bot = kwargs['lexBot'] + if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if lex_bot is not None: - pulumi.set(__self__, "lex_bot", lex_bot) + _setter("lex_bot", lex_bot) @property @pulumi.getter(name="instanceId") @@ -262,6 +300,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BotAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -281,6 +323,7 @@ def _internal_init(__self__, if instance_id is None and not opts.urn: raise TypeError("Missing required property 'instance_id'") __props__.__dict__["instance_id"] = instance_id + lex_bot = _utilities.configure(lex_bot, BotAssociationLexBotArgs, True) if lex_bot is None and not opts.urn: raise TypeError("Missing required property 'lex_bot'") __props__.__dict__["lex_bot"] = lex_bot diff --git a/sdk/python/pulumi_aws/connect/contact_flow.py b/sdk/python/pulumi_aws/connect/contact_flow.py index 6c63473d185..9870d4ecb83 100644 --- a/sdk/python/pulumi_aws/connect/contact_flow.py +++ b/sdk/python/pulumi_aws/connect/contact_flow.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ContactFlowArgs', 'ContactFlow'] @@ -33,21 +33,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Contact Flow. 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] type: Specifies the type of the Contact Flow. Defaults to `CONTACT_FLOW`. Allowed Values are: `CONTACT_FLOW`, `CUSTOMER_QUEUE`, `CUSTOMER_HOLD`, `CUSTOMER_WHISPER`, `AGENT_HOLD`, `AGENT_WHISPER`, `OUTBOUND_WHISPER`, `AGENT_TRANSFER`, `QUEUE_TRANSFER`. """ - pulumi.set(__self__, "instance_id", instance_id) + ContactFlowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + content=content, + content_hash=content_hash, + description=description, + filename=filename, + name=name, + tags=tags, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_hash: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filename: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if content_hash is None and 'contentHash' in kwargs: + content_hash = kwargs['contentHash'] + + _setter("instance_id", instance_id) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_hash is not None: - pulumi.set(__self__, "content_hash", content_hash) + _setter("content_hash", content_hash) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if filename is not None: - pulumi.set(__self__, "filename", filename) + _setter("filename", filename) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="instanceId") @@ -174,31 +205,70 @@ def __init__(__self__, *, :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] type: Specifies the type of the Contact Flow. Defaults to `CONTACT_FLOW`. Allowed Values are: `CONTACT_FLOW`, `CUSTOMER_QUEUE`, `CUSTOMER_HOLD`, `CUSTOMER_WHISPER`, `AGENT_HOLD`, `AGENT_WHISPER`, `OUTBOUND_WHISPER`, `AGENT_TRANSFER`, `QUEUE_TRANSFER`. """ + _ContactFlowState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + contact_flow_id=contact_flow_id, + content=content, + content_hash=content_hash, + description=description, + filename=filename, + instance_id=instance_id, + name=name, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + contact_flow_id: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_hash: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filename: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_flow_id is None and 'contactFlowId' in kwargs: + contact_flow_id = kwargs['contactFlowId'] + if content_hash is None and 'contentHash' in kwargs: + content_hash = kwargs['contentHash'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if contact_flow_id is not None: - pulumi.set(__self__, "contact_flow_id", contact_flow_id) + _setter("contact_flow_id", contact_flow_id) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_hash is not None: - pulumi.set(__self__, "content_hash", content_hash) + _setter("content_hash", content_hash) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if filename is not None: - pulumi.set(__self__, "filename", filename) + _setter("filename", filename) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -499,6 +569,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContactFlowArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/connect/contact_flow_module.py b/sdk/python/pulumi_aws/connect/contact_flow_module.py index b7eacf44364..4f3b7208a15 100644 --- a/sdk/python/pulumi_aws/connect/contact_flow_module.py +++ b/sdk/python/pulumi_aws/connect/contact_flow_module.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ContactFlowModuleArgs', 'ContactFlowModule'] @@ -31,19 +31,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Specifies the name of the Contact Flow Module. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Contact Flow Module. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "instance_id", instance_id) + ContactFlowModuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + content=content, + content_hash=content_hash, + description=description, + filename=filename, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_hash: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filename: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if content_hash is None and 'contentHash' in kwargs: + content_hash = kwargs['contentHash'] + + _setter("instance_id", instance_id) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_hash is not None: - pulumi.set(__self__, "content_hash", content_hash) + _setter("content_hash", content_hash) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if filename is not None: - pulumi.set(__self__, "filename", filename) + _setter("filename", filename) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="instanceId") @@ -156,29 +185,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Contact Flow Module. 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. """ + _ContactFlowModuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + contact_flow_module_id=contact_flow_module_id, + content=content, + content_hash=content_hash, + description=description, + filename=filename, + instance_id=instance_id, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + contact_flow_module_id: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_hash: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filename: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_flow_module_id is None and 'contactFlowModuleId' in kwargs: + contact_flow_module_id = kwargs['contactFlowModuleId'] + if content_hash is None and 'contentHash' in kwargs: + content_hash = kwargs['contentHash'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if contact_flow_module_id is not None: - pulumi.set(__self__, "contact_flow_module_id", contact_flow_module_id) + _setter("contact_flow_module_id", contact_flow_module_id) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_hash is not None: - pulumi.set(__self__, "content_hash", content_hash) + _setter("content_hash", content_hash) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if filename is not None: - pulumi.set(__self__, "filename", filename) + _setter("filename", filename) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -495,6 +561,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContactFlowModuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/connect/get_bot_association.py b/sdk/python/pulumi_aws/connect/get_bot_association.py index 5e5110f54ae..c5a7891724b 100644 --- a/sdk/python/pulumi_aws/connect/get_bot_association.py +++ b/sdk/python/pulumi_aws/connect/get_bot_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/connect/get_contact_flow.py b/sdk/python/pulumi_aws/connect/get_contact_flow.py index c45de5e3c5d..3175972755c 100644 --- a/sdk/python/pulumi_aws/connect/get_contact_flow.py +++ b/sdk/python/pulumi_aws/connect/get_contact_flow.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/connect/get_contact_flow_module.py b/sdk/python/pulumi_aws/connect/get_contact_flow_module.py index 4878870930d..b621e0ec03a 100644 --- a/sdk/python/pulumi_aws/connect/get_contact_flow_module.py +++ b/sdk/python/pulumi_aws/connect/get_contact_flow_module.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/connect/get_hours_of_operation.py b/sdk/python/pulumi_aws/connect/get_hours_of_operation.py index 06672fd8a01..ba0f53374bd 100644 --- a/sdk/python/pulumi_aws/connect/get_hours_of_operation.py +++ b/sdk/python/pulumi_aws/connect/get_hours_of_operation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/connect/get_instance.py b/sdk/python/pulumi_aws/connect/get_instance.py index 323dfb8ac95..d0f56f1459d 100644 --- a/sdk/python/pulumi_aws/connect/get_instance.py +++ b/sdk/python/pulumi_aws/connect/get_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/connect/get_instance_storage_config.py b/sdk/python/pulumi_aws/connect/get_instance_storage_config.py index 59892015322..ca0c1d81e92 100644 --- a/sdk/python/pulumi_aws/connect/get_instance_storage_config.py +++ b/sdk/python/pulumi_aws/connect/get_instance_storage_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/connect/get_lambda_function_association.py b/sdk/python/pulumi_aws/connect/get_lambda_function_association.py index 4a54cf45254..e6a921ee40b 100644 --- a/sdk/python/pulumi_aws/connect/get_lambda_function_association.py +++ b/sdk/python/pulumi_aws/connect/get_lambda_function_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/connect/get_prompt.py b/sdk/python/pulumi_aws/connect/get_prompt.py index 56921fdee72..819c391ba69 100644 --- a/sdk/python/pulumi_aws/connect/get_prompt.py +++ b/sdk/python/pulumi_aws/connect/get_prompt.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/connect/get_queue.py b/sdk/python/pulumi_aws/connect/get_queue.py index baa326d6e2c..33134ab5e6e 100644 --- a/sdk/python/pulumi_aws/connect/get_queue.py +++ b/sdk/python/pulumi_aws/connect/get_queue.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/connect/get_quick_connect.py b/sdk/python/pulumi_aws/connect/get_quick_connect.py index 33715086def..7f79f80d820 100644 --- a/sdk/python/pulumi_aws/connect/get_quick_connect.py +++ b/sdk/python/pulumi_aws/connect/get_quick_connect.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/connect/get_routing_profile.py b/sdk/python/pulumi_aws/connect/get_routing_profile.py index 7de8e7e000d..4d9490f3d84 100644 --- a/sdk/python/pulumi_aws/connect/get_routing_profile.py +++ b/sdk/python/pulumi_aws/connect/get_routing_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/connect/get_security_profile.py b/sdk/python/pulumi_aws/connect/get_security_profile.py index 7eca1e1bccf..701e051754b 100644 --- a/sdk/python/pulumi_aws/connect/get_security_profile.py +++ b/sdk/python/pulumi_aws/connect/get_security_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/connect/get_user.py b/sdk/python/pulumi_aws/connect/get_user.py index 75848a1cbce..1325169af87 100644 --- a/sdk/python/pulumi_aws/connect/get_user.py +++ b/sdk/python/pulumi_aws/connect/get_user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/connect/get_user_hierarchy_group.py b/sdk/python/pulumi_aws/connect/get_user_hierarchy_group.py index 1b7be5d7b54..1ebec4850c6 100644 --- a/sdk/python/pulumi_aws/connect/get_user_hierarchy_group.py +++ b/sdk/python/pulumi_aws/connect/get_user_hierarchy_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/connect/get_user_hierarchy_structure.py b/sdk/python/pulumi_aws/connect/get_user_hierarchy_structure.py index eec11a6c074..745449f9990 100644 --- a/sdk/python/pulumi_aws/connect/get_user_hierarchy_structure.py +++ b/sdk/python/pulumi_aws/connect/get_user_hierarchy_structure.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/connect/get_vocabulary.py b/sdk/python/pulumi_aws/connect/get_vocabulary.py index 4d214ccf7c4..c3a58215095 100644 --- a/sdk/python/pulumi_aws/connect/get_vocabulary.py +++ b/sdk/python/pulumi_aws/connect/get_vocabulary.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/connect/hours_of_operation.py b/sdk/python/pulumi_aws/connect/hours_of_operation.py index a151886ca7f..7b3b2ca89a8 100644 --- a/sdk/python/pulumi_aws/connect/hours_of_operation.py +++ b/sdk/python/pulumi_aws/connect/hours_of_operation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,46 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Specifies the name of the Hours of Operation. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Hours of Operation. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "configs", configs) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "time_zone", time_zone) + HoursOfOperationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configs=configs, + instance_id=instance_id, + time_zone=time_zone, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configs: Optional[pulumi.Input[Sequence[pulumi.Input['HoursOfOperationConfigArgs']]]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configs is None: + raise TypeError("Missing 'configs' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + if time_zone is None: + raise TypeError("Missing 'time_zone' argument") + + _setter("configs", configs) + _setter("instance_id", instance_id) + _setter("time_zone", time_zone) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -138,27 +169,62 @@ def __init__(__self__, *, :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] time_zone: Specifies the time zone of the Hours of Operation. """ + _HoursOfOperationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + configs=configs, + description=description, + hours_of_operation_id=hours_of_operation_id, + instance_id=instance_id, + name=name, + tags=tags, + tags_all=tags_all, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + configs: Optional[pulumi.Input[Sequence[pulumi.Input['HoursOfOperationConfigArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + hours_of_operation_id: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours_of_operation_id is None and 'hoursOfOperationId' in kwargs: + hours_of_operation_id = kwargs['hoursOfOperationId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configs is not None: - pulumi.set(__self__, "configs", configs) + _setter("configs", configs) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if hours_of_operation_id is not None: - pulumi.set(__self__, "hours_of_operation_id", hours_of_operation_id) + _setter("hours_of_operation_id", hours_of_operation_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -411,6 +477,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HoursOfOperationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/connect/instance.py b/sdk/python/pulumi_aws/connect/instance.py index 0dd4010ab80..6474b829fa9 100644 --- a/sdk/python/pulumi_aws/connect/instance.py +++ b/sdk/python/pulumi_aws/connect/instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InstanceArgs', 'Instance'] @@ -38,23 +38,78 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_alias: Specifies the name of the instance. Required if `directory_id` not specified. :param pulumi.Input[bool] multi_party_conference_enabled: Specifies whether multi-party calls/conference is enabled. Defaults to `false`. """ - pulumi.set(__self__, "identity_management_type", identity_management_type) - pulumi.set(__self__, "inbound_calls_enabled", inbound_calls_enabled) - pulumi.set(__self__, "outbound_calls_enabled", outbound_calls_enabled) + InstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_management_type=identity_management_type, + inbound_calls_enabled=inbound_calls_enabled, + outbound_calls_enabled=outbound_calls_enabled, + auto_resolve_best_voices_enabled=auto_resolve_best_voices_enabled, + contact_flow_logs_enabled=contact_flow_logs_enabled, + contact_lens_enabled=contact_lens_enabled, + directory_id=directory_id, + early_media_enabled=early_media_enabled, + instance_alias=instance_alias, + multi_party_conference_enabled=multi_party_conference_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_management_type: Optional[pulumi.Input[str]] = None, + inbound_calls_enabled: Optional[pulumi.Input[bool]] = None, + outbound_calls_enabled: Optional[pulumi.Input[bool]] = None, + auto_resolve_best_voices_enabled: Optional[pulumi.Input[bool]] = None, + contact_flow_logs_enabled: Optional[pulumi.Input[bool]] = None, + contact_lens_enabled: Optional[pulumi.Input[bool]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + early_media_enabled: Optional[pulumi.Input[bool]] = None, + instance_alias: Optional[pulumi.Input[str]] = None, + multi_party_conference_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_management_type is None and 'identityManagementType' in kwargs: + identity_management_type = kwargs['identityManagementType'] + if identity_management_type is None: + raise TypeError("Missing 'identity_management_type' argument") + if inbound_calls_enabled is None and 'inboundCallsEnabled' in kwargs: + inbound_calls_enabled = kwargs['inboundCallsEnabled'] + if inbound_calls_enabled is None: + raise TypeError("Missing 'inbound_calls_enabled' argument") + if outbound_calls_enabled is None and 'outboundCallsEnabled' in kwargs: + outbound_calls_enabled = kwargs['outboundCallsEnabled'] + if outbound_calls_enabled is None: + raise TypeError("Missing 'outbound_calls_enabled' argument") + if auto_resolve_best_voices_enabled is None and 'autoResolveBestVoicesEnabled' in kwargs: + auto_resolve_best_voices_enabled = kwargs['autoResolveBestVoicesEnabled'] + if contact_flow_logs_enabled is None and 'contactFlowLogsEnabled' in kwargs: + contact_flow_logs_enabled = kwargs['contactFlowLogsEnabled'] + if contact_lens_enabled is None and 'contactLensEnabled' in kwargs: + contact_lens_enabled = kwargs['contactLensEnabled'] + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if early_media_enabled is None and 'earlyMediaEnabled' in kwargs: + early_media_enabled = kwargs['earlyMediaEnabled'] + if instance_alias is None and 'instanceAlias' in kwargs: + instance_alias = kwargs['instanceAlias'] + if multi_party_conference_enabled is None and 'multiPartyConferenceEnabled' in kwargs: + multi_party_conference_enabled = kwargs['multiPartyConferenceEnabled'] + + _setter("identity_management_type", identity_management_type) + _setter("inbound_calls_enabled", inbound_calls_enabled) + _setter("outbound_calls_enabled", outbound_calls_enabled) if auto_resolve_best_voices_enabled is not None: - pulumi.set(__self__, "auto_resolve_best_voices_enabled", auto_resolve_best_voices_enabled) + _setter("auto_resolve_best_voices_enabled", auto_resolve_best_voices_enabled) if contact_flow_logs_enabled is not None: - pulumi.set(__self__, "contact_flow_logs_enabled", contact_flow_logs_enabled) + _setter("contact_flow_logs_enabled", contact_flow_logs_enabled) if contact_lens_enabled is not None: - pulumi.set(__self__, "contact_lens_enabled", contact_lens_enabled) + _setter("contact_lens_enabled", contact_lens_enabled) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if early_media_enabled is not None: - pulumi.set(__self__, "early_media_enabled", early_media_enabled) + _setter("early_media_enabled", early_media_enabled) if instance_alias is not None: - pulumi.set(__self__, "instance_alias", instance_alias) + _setter("instance_alias", instance_alias) if multi_party_conference_enabled is not None: - pulumi.set(__self__, "multi_party_conference_enabled", multi_party_conference_enabled) + _setter("multi_party_conference_enabled", multi_party_conference_enabled) @property @pulumi.getter(name="identityManagementType") @@ -213,34 +268,95 @@ def __init__(__self__, *, :param pulumi.Input[str] service_role: The service role of the instance. :param pulumi.Input[str] status: The state of the instance. """ + _InstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_resolve_best_voices_enabled=auto_resolve_best_voices_enabled, + contact_flow_logs_enabled=contact_flow_logs_enabled, + contact_lens_enabled=contact_lens_enabled, + created_time=created_time, + directory_id=directory_id, + early_media_enabled=early_media_enabled, + identity_management_type=identity_management_type, + inbound_calls_enabled=inbound_calls_enabled, + instance_alias=instance_alias, + multi_party_conference_enabled=multi_party_conference_enabled, + outbound_calls_enabled=outbound_calls_enabled, + service_role=service_role, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_resolve_best_voices_enabled: Optional[pulumi.Input[bool]] = None, + contact_flow_logs_enabled: Optional[pulumi.Input[bool]] = None, + contact_lens_enabled: Optional[pulumi.Input[bool]] = None, + created_time: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + early_media_enabled: Optional[pulumi.Input[bool]] = None, + identity_management_type: Optional[pulumi.Input[str]] = None, + inbound_calls_enabled: Optional[pulumi.Input[bool]] = None, + instance_alias: Optional[pulumi.Input[str]] = None, + multi_party_conference_enabled: Optional[pulumi.Input[bool]] = None, + outbound_calls_enabled: Optional[pulumi.Input[bool]] = None, + service_role: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_resolve_best_voices_enabled is None and 'autoResolveBestVoicesEnabled' in kwargs: + auto_resolve_best_voices_enabled = kwargs['autoResolveBestVoicesEnabled'] + if contact_flow_logs_enabled is None and 'contactFlowLogsEnabled' in kwargs: + contact_flow_logs_enabled = kwargs['contactFlowLogsEnabled'] + if contact_lens_enabled is None and 'contactLensEnabled' in kwargs: + contact_lens_enabled = kwargs['contactLensEnabled'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if early_media_enabled is None and 'earlyMediaEnabled' in kwargs: + early_media_enabled = kwargs['earlyMediaEnabled'] + if identity_management_type is None and 'identityManagementType' in kwargs: + identity_management_type = kwargs['identityManagementType'] + if inbound_calls_enabled is None and 'inboundCallsEnabled' in kwargs: + inbound_calls_enabled = kwargs['inboundCallsEnabled'] + if instance_alias is None and 'instanceAlias' in kwargs: + instance_alias = kwargs['instanceAlias'] + if multi_party_conference_enabled is None and 'multiPartyConferenceEnabled' in kwargs: + multi_party_conference_enabled = kwargs['multiPartyConferenceEnabled'] + if outbound_calls_enabled is None and 'outboundCallsEnabled' in kwargs: + outbound_calls_enabled = kwargs['outboundCallsEnabled'] + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_resolve_best_voices_enabled is not None: - pulumi.set(__self__, "auto_resolve_best_voices_enabled", auto_resolve_best_voices_enabled) + _setter("auto_resolve_best_voices_enabled", auto_resolve_best_voices_enabled) if contact_flow_logs_enabled is not None: - pulumi.set(__self__, "contact_flow_logs_enabled", contact_flow_logs_enabled) + _setter("contact_flow_logs_enabled", contact_flow_logs_enabled) if contact_lens_enabled is not None: - pulumi.set(__self__, "contact_lens_enabled", contact_lens_enabled) + _setter("contact_lens_enabled", contact_lens_enabled) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if early_media_enabled is not None: - pulumi.set(__self__, "early_media_enabled", early_media_enabled) + _setter("early_media_enabled", early_media_enabled) if identity_management_type is not None: - pulumi.set(__self__, "identity_management_type", identity_management_type) + _setter("identity_management_type", identity_management_type) if inbound_calls_enabled is not None: - pulumi.set(__self__, "inbound_calls_enabled", inbound_calls_enabled) + _setter("inbound_calls_enabled", inbound_calls_enabled) if instance_alias is not None: - pulumi.set(__self__, "instance_alias", instance_alias) + _setter("instance_alias", instance_alias) if multi_party_conference_enabled is not None: - pulumi.set(__self__, "multi_party_conference_enabled", multi_party_conference_enabled) + _setter("multi_party_conference_enabled", multi_party_conference_enabled) if outbound_calls_enabled is not None: - pulumi.set(__self__, "outbound_calls_enabled", outbound_calls_enabled) + _setter("outbound_calls_enabled", outbound_calls_enabled) if service_role is not None: - pulumi.set(__self__, "service_role", service_role) + _setter("service_role", service_role) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -562,6 +678,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/connect/instance_storage_config.py b/sdk/python/pulumi_aws/connect/instance_storage_config.py index b8cadc26b98..6c78bf7dfbd 100644 --- a/sdk/python/pulumi_aws/connect/instance_storage_config.py +++ b/sdk/python/pulumi_aws/connect/instance_storage_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_type: A valid resource type. Valid Values: `AGENT_EVENTS` | `ATTACHMENTS` | `CALL_RECORDINGS` | `CHAT_TRANSCRIPTS` | `CONTACT_EVALUATIONS` | `CONTACT_TRACE_RECORDS` | `MEDIA_STREAMS` | `REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` | `SCHEDULED_REPORTS` | `SCREEN_RECORDINGS`. :param pulumi.Input['InstanceStorageConfigStorageConfigArgs'] storage_config: Specifies the storage configuration options for the Connect Instance. Documented below. """ - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "storage_config", storage_config) + InstanceStorageConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + resource_type=resource_type, + storage_config=storage_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + storage_config: Optional[pulumi.Input['InstanceStorageConfigStorageConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if storage_config is None and 'storageConfig' in kwargs: + storage_config = kwargs['storageConfig'] + if storage_config is None: + raise TypeError("Missing 'storage_config' argument") + + _setter("instance_id", instance_id) + _setter("resource_type", resource_type) + _setter("storage_config", storage_config) @property @pulumi.getter(name="instanceId") @@ -80,14 +107,39 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_type: A valid resource type. Valid Values: `AGENT_EVENTS` | `ATTACHMENTS` | `CALL_RECORDINGS` | `CHAT_TRANSCRIPTS` | `CONTACT_EVALUATIONS` | `CONTACT_TRACE_RECORDS` | `MEDIA_STREAMS` | `REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` | `SCHEDULED_REPORTS` | `SCREEN_RECORDINGS`. :param pulumi.Input['InstanceStorageConfigStorageConfigArgs'] storage_config: Specifies the storage configuration options for the Connect Instance. Documented below. """ + _InstanceStorageConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + association_id=association_id, + instance_id=instance_id, + resource_type=resource_type, + storage_config=storage_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + association_id: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + storage_config: Optional[pulumi.Input['InstanceStorageConfigStorageConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if storage_config is None and 'storageConfig' in kwargs: + storage_config = kwargs['storageConfig'] + if association_id is not None: - pulumi.set(__self__, "association_id", association_id) + _setter("association_id", association_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if storage_config is not None: - pulumi.set(__self__, "storage_config", storage_config) + _setter("storage_config", storage_config) @property @pulumi.getter(name="associationId") @@ -379,6 +431,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceStorageConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -402,6 +458,7 @@ def _internal_init(__self__, if resource_type is None and not opts.urn: raise TypeError("Missing required property 'resource_type'") __props__.__dict__["resource_type"] = resource_type + storage_config = _utilities.configure(storage_config, InstanceStorageConfigStorageConfigArgs, True) if storage_config is None and not opts.urn: raise TypeError("Missing required property 'storage_config'") __props__.__dict__["storage_config"] = storage_config diff --git a/sdk/python/pulumi_aws/connect/lambda_function_association.py b/sdk/python/pulumi_aws/connect/lambda_function_association.py index 85ea7827768..373fa82fcad 100644 --- a/sdk/python/pulumi_aws/connect/lambda_function_association.py +++ b/sdk/python/pulumi_aws/connect/lambda_function_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LambdaFunctionAssociationArgs', 'LambdaFunctionAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] function_arn: Amazon Resource Name (ARN) of the Lambda Function, omitting any version or alias qualifier. :param pulumi.Input[str] instance_id: The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance. """ - pulumi.set(__self__, "function_arn", function_arn) - pulumi.set(__self__, "instance_id", instance_id) + LambdaFunctionAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + instance_id=instance_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + + _setter("function_arn", function_arn) + _setter("instance_id", instance_id) @property @pulumi.getter(name="functionArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] function_arn: Amazon Resource Name (ARN) of the Lambda Function, omitting any version or alias qualifier. :param pulumi.Input[str] instance_id: The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance. """ + _LambdaFunctionAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + instance_id=instance_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if function_arn is not None: - pulumi.set(__self__, "function_arn", function_arn) + _setter("function_arn", function_arn) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) @property @pulumi.getter(name="functionArn") @@ -164,6 +202,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LambdaFunctionAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/connect/outputs.py b/sdk/python/pulumi_aws/connect/outputs.py index 68adae512d9..166bc1ae957 100644 --- a/sdk/python/pulumi_aws/connect/outputs.py +++ b/sdk/python/pulumi_aws/connect/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -104,9 +104,26 @@ def __init__(__self__, *, :param str name: The name of the Amazon Lex (V1) bot. :param str lex_region: The Region that the Amazon Lex (V1) bot was created in. Defaults to current region. """ - pulumi.set(__self__, "name", name) + BotAssociationLexBot._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + lex_region=lex_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + lex_region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if lex_region is None and 'lexRegion' in kwargs: + lex_region = kwargs['lexRegion'] + + _setter("name", name) if lex_region is not None: - pulumi.set(__self__, "lex_region", lex_region) + _setter("lex_region", lex_region) @property @pulumi.getter @@ -155,9 +172,34 @@ def __init__(__self__, *, :param 'HoursOfOperationConfigEndTimeArgs' end_time: A end time block specifies the time that your contact center closes. The `end_time` is documented below. :param 'HoursOfOperationConfigStartTimeArgs' start_time: A start time block specifies the time that your contact center opens. The `start_time` is documented below. """ - pulumi.set(__self__, "day", day) - pulumi.set(__self__, "end_time", end_time) - pulumi.set(__self__, "start_time", start_time) + HoursOfOperationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + day=day, + end_time=end_time, + start_time=start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + day: Optional[str] = None, + end_time: Optional['outputs.HoursOfOperationConfigEndTime'] = None, + start_time: Optional['outputs.HoursOfOperationConfigStartTime'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if day is None: + raise TypeError("Missing 'day' argument") + if end_time is None and 'endTime' in kwargs: + end_time = kwargs['endTime'] + if end_time is None: + raise TypeError("Missing 'end_time' argument") + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if start_time is None: + raise TypeError("Missing 'start_time' argument") + + _setter("day", day) + _setter("end_time", end_time) + _setter("start_time", start_time) @property @pulumi.getter @@ -193,8 +235,25 @@ def __init__(__self__, *, :param int hours: Specifies the hour of closing. :param int minutes: Specifies the minute of closing. """ - pulumi.set(__self__, "hours", hours) - pulumi.set(__self__, "minutes", minutes) + HoursOfOperationConfigEndTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[int] = None, + minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is None: + raise TypeError("Missing 'hours' argument") + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("hours", hours) + _setter("minutes", minutes) @property @pulumi.getter @@ -222,8 +281,25 @@ def __init__(__self__, *, :param int hours: Specifies the hour of opening. :param int minutes: Specifies the minute of opening. """ - pulumi.set(__self__, "hours", hours) - pulumi.set(__self__, "minutes", minutes) + HoursOfOperationConfigStartTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[int] = None, + minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is None: + raise TypeError("Missing 'hours' argument") + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("hours", hours) + _setter("minutes", minutes) @property @pulumi.getter @@ -282,15 +358,46 @@ def __init__(__self__, *, :param 'InstanceStorageConfigStorageConfigKinesisVideoStreamConfigArgs' kinesis_video_stream_config: A block that specifies the configuration of the Kinesis video stream. Documented below. :param 'InstanceStorageConfigStorageConfigS3ConfigArgs' s3_config: A block that specifies the configuration of S3 Bucket. Documented below. """ - pulumi.set(__self__, "storage_type", storage_type) + InstanceStorageConfigStorageConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_type=storage_type, + kinesis_firehose_config=kinesis_firehose_config, + kinesis_stream_config=kinesis_stream_config, + kinesis_video_stream_config=kinesis_video_stream_config, + s3_config=s3_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_type: Optional[str] = None, + kinesis_firehose_config: Optional['outputs.InstanceStorageConfigStorageConfigKinesisFirehoseConfig'] = None, + kinesis_stream_config: Optional['outputs.InstanceStorageConfigStorageConfigKinesisStreamConfig'] = None, + kinesis_video_stream_config: Optional['outputs.InstanceStorageConfigStorageConfigKinesisVideoStreamConfig'] = None, + s3_config: Optional['outputs.InstanceStorageConfigStorageConfigS3Config'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if storage_type is None: + raise TypeError("Missing 'storage_type' argument") + if kinesis_firehose_config is None and 'kinesisFirehoseConfig' in kwargs: + kinesis_firehose_config = kwargs['kinesisFirehoseConfig'] + if kinesis_stream_config is None and 'kinesisStreamConfig' in kwargs: + kinesis_stream_config = kwargs['kinesisStreamConfig'] + if kinesis_video_stream_config is None and 'kinesisVideoStreamConfig' in kwargs: + kinesis_video_stream_config = kwargs['kinesisVideoStreamConfig'] + if s3_config is None and 's3Config' in kwargs: + s3_config = kwargs['s3Config'] + + _setter("storage_type", storage_type) if kinesis_firehose_config is not None: - pulumi.set(__self__, "kinesis_firehose_config", kinesis_firehose_config) + _setter("kinesis_firehose_config", kinesis_firehose_config) if kinesis_stream_config is not None: - pulumi.set(__self__, "kinesis_stream_config", kinesis_stream_config) + _setter("kinesis_stream_config", kinesis_stream_config) if kinesis_video_stream_config is not None: - pulumi.set(__self__, "kinesis_video_stream_config", kinesis_video_stream_config) + _setter("kinesis_video_stream_config", kinesis_video_stream_config) if s3_config is not None: - pulumi.set(__self__, "s3_config", s3_config) + _setter("s3_config", s3_config) @property @pulumi.getter(name="storageType") @@ -357,7 +464,22 @@ def __init__(__self__, *, """ :param str firehose_arn: The Amazon Resource Name (ARN) of the delivery stream. """ - pulumi.set(__self__, "firehose_arn", firehose_arn) + InstanceStorageConfigStorageConfigKinesisFirehoseConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + firehose_arn=firehose_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firehose_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firehose_arn is None and 'firehoseArn' in kwargs: + firehose_arn = kwargs['firehoseArn'] + if firehose_arn is None: + raise TypeError("Missing 'firehose_arn' argument") + + _setter("firehose_arn", firehose_arn) @property @pulumi.getter(name="firehoseArn") @@ -392,7 +514,22 @@ def __init__(__self__, *, """ :param str stream_arn: The Amazon Resource Name (ARN) of the data stream. """ - pulumi.set(__self__, "stream_arn", stream_arn) + InstanceStorageConfigStorageConfigKinesisStreamConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="streamArn") @@ -433,9 +570,34 @@ def __init__(__self__, *, :param str prefix: The prefix of the video stream. Minimum length of `1`. Maximum length of `128`. When read from the state, the value returned is `-connect--contact-` since the API appends additional details to the `prefix`. :param int retention_period_hours: The number of hours data is retained in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream. Minimum value of `0`. Maximum value of `87600`. A value of `0`, indicates that the stream does not persist data. """ - pulumi.set(__self__, "encryption_config", encryption_config) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "retention_period_hours", retention_period_hours) + InstanceStorageConfigStorageConfigKinesisVideoStreamConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_config=encryption_config, + prefix=prefix, + retention_period_hours=retention_period_hours, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_config: Optional['outputs.InstanceStorageConfigStorageConfigKinesisVideoStreamConfigEncryptionConfig'] = None, + prefix: Optional[str] = None, + retention_period_hours: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_config is None and 'encryptionConfig' in kwargs: + encryption_config = kwargs['encryptionConfig'] + if encryption_config is None: + raise TypeError("Missing 'encryption_config' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if retention_period_hours is None and 'retentionPeriodHours' in kwargs: + retention_period_hours = kwargs['retentionPeriodHours'] + if retention_period_hours is None: + raise TypeError("Missing 'retention_period_hours' argument") + + _setter("encryption_config", encryption_config) + _setter("prefix", prefix) + _setter("retention_period_hours", retention_period_hours) @property @pulumi.getter(name="encryptionConfig") @@ -490,8 +652,29 @@ def __init__(__self__, *, :param str encryption_type: The type of encryption. Valid Values: `KMS`. :param str key_id: The full ARN of the encryption key. Be sure to provide the full ARN of the encryption key, not just the ID. """ - pulumi.set(__self__, "encryption_type", encryption_type) - pulumi.set(__self__, "key_id", key_id) + InstanceStorageConfigStorageConfigKinesisVideoStreamConfigEncryptionConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[str] = None, + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if encryption_type is None: + raise TypeError("Missing 'encryption_type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("encryption_type", encryption_type) + _setter("key_id", key_id) @property @pulumi.getter(name="encryptionType") @@ -542,10 +725,35 @@ def __init__(__self__, *, :param str bucket_prefix: The S3 bucket prefix. :param 'InstanceStorageConfigStorageConfigS3ConfigEncryptionConfigArgs' encryption_config: The encryption configuration. Documented below. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + InstanceStorageConfigStorageConfigS3Config._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + encryption_config=encryption_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + encryption_config: Optional['outputs.InstanceStorageConfigStorageConfigS3ConfigEncryptionConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if bucket_prefix is None: + raise TypeError("Missing 'bucket_prefix' argument") + if encryption_config is None and 'encryptionConfig' in kwargs: + encryption_config = kwargs['encryptionConfig'] + + _setter("bucket_name", bucket_name) + _setter("bucket_prefix", bucket_prefix) if encryption_config is not None: - pulumi.set(__self__, "encryption_config", encryption_config) + _setter("encryption_config", encryption_config) @property @pulumi.getter(name="bucketName") @@ -600,8 +808,29 @@ def __init__(__self__, *, :param str encryption_type: The type of encryption. Valid Values: `KMS`. :param str key_id: The full ARN of the encryption key. Be sure to provide the full ARN of the encryption key, not just the ID. """ - pulumi.set(__self__, "encryption_type", encryption_type) - pulumi.set(__self__, "key_id", key_id) + InstanceStorageConfigStorageConfigS3ConfigEncryptionConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[str] = None, + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if encryption_type is None: + raise TypeError("Missing 'encryption_type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("encryption_type", encryption_type) + _setter("key_id", key_id) @property @pulumi.getter(name="encryptionType") @@ -629,10 +858,23 @@ def __init__(__self__, *, :param str message: The status message. :param str status: The status of the phone number. Valid Values: `CLAIMED` | `IN_PROGRESS` | `FAILED`. """ + PhoneNumberStatus._configure( + lambda key, value: pulumi.set(__self__, key, value), + message=message, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -683,12 +925,33 @@ def __init__(__self__, *, :param str outbound_caller_id_number_id: Specifies the caller ID number. :param str outbound_flow_id: Specifies outbound whisper flow to be used during an outbound call. """ + QueueOutboundCallerConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + outbound_caller_id_name=outbound_caller_id_name, + outbound_caller_id_number_id=outbound_caller_id_number_id, + outbound_flow_id=outbound_flow_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + outbound_caller_id_name: Optional[str] = None, + outbound_caller_id_number_id: Optional[str] = None, + outbound_flow_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if outbound_caller_id_name is None and 'outboundCallerIdName' in kwargs: + outbound_caller_id_name = kwargs['outboundCallerIdName'] + if outbound_caller_id_number_id is None and 'outboundCallerIdNumberId' in kwargs: + outbound_caller_id_number_id = kwargs['outboundCallerIdNumberId'] + if outbound_flow_id is None and 'outboundFlowId' in kwargs: + outbound_flow_id = kwargs['outboundFlowId'] + if outbound_caller_id_name is not None: - pulumi.set(__self__, "outbound_caller_id_name", outbound_caller_id_name) + _setter("outbound_caller_id_name", outbound_caller_id_name) if outbound_caller_id_number_id is not None: - pulumi.set(__self__, "outbound_caller_id_number_id", outbound_caller_id_number_id) + _setter("outbound_caller_id_number_id", outbound_caller_id_number_id) if outbound_flow_id is not None: - pulumi.set(__self__, "outbound_flow_id", outbound_flow_id) + _setter("outbound_flow_id", outbound_flow_id) @property @pulumi.getter(name="outboundCallerIdName") @@ -751,13 +1014,40 @@ def __init__(__self__, *, :param Sequence['QuickConnectQuickConnectConfigQueueConfigArgs'] queue_configs: Specifies the queue configuration of the Quick Connect. This is required only if `quick_connect_type` is `QUEUE`. The `queue_config` block is documented below. :param Sequence['QuickConnectQuickConnectConfigUserConfigArgs'] user_configs: Specifies the user configuration of the Quick Connect. This is required only if `quick_connect_type` is `USER`. The `user_config` block is documented below. """ - pulumi.set(__self__, "quick_connect_type", quick_connect_type) + QuickConnectQuickConnectConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + quick_connect_type=quick_connect_type, + phone_configs=phone_configs, + queue_configs=queue_configs, + user_configs=user_configs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + quick_connect_type: Optional[str] = None, + phone_configs: Optional[Sequence['outputs.QuickConnectQuickConnectConfigPhoneConfig']] = None, + queue_configs: Optional[Sequence['outputs.QuickConnectQuickConnectConfigQueueConfig']] = None, + user_configs: Optional[Sequence['outputs.QuickConnectQuickConnectConfigUserConfig']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if quick_connect_type is None and 'quickConnectType' in kwargs: + quick_connect_type = kwargs['quickConnectType'] + if quick_connect_type is None: + raise TypeError("Missing 'quick_connect_type' argument") + if phone_configs is None and 'phoneConfigs' in kwargs: + phone_configs = kwargs['phoneConfigs'] + if queue_configs is None and 'queueConfigs' in kwargs: + queue_configs = kwargs['queueConfigs'] + if user_configs is None and 'userConfigs' in kwargs: + user_configs = kwargs['userConfigs'] + + _setter("quick_connect_type", quick_connect_type) if phone_configs is not None: - pulumi.set(__self__, "phone_configs", phone_configs) + _setter("phone_configs", phone_configs) if queue_configs is not None: - pulumi.set(__self__, "queue_configs", queue_configs) + _setter("queue_configs", queue_configs) if user_configs is not None: - pulumi.set(__self__, "user_configs", user_configs) + _setter("user_configs", user_configs) @property @pulumi.getter(name="quickConnectType") @@ -816,7 +1106,22 @@ def __init__(__self__, *, """ :param str phone_number: Specifies the phone number in in E.164 format. """ - pulumi.set(__self__, "phone_number", phone_number) + QuickConnectQuickConnectConfigPhoneConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + phone_number=phone_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + phone_number: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if phone_number is None: + raise TypeError("Missing 'phone_number' argument") + + _setter("phone_number", phone_number) @property @pulumi.getter(name="phoneNumber") @@ -855,8 +1160,29 @@ def __init__(__self__, *, :param str contact_flow_id: Specifies the identifier of the contact flow. :param str queue_id: Specifies the identifier for the queue. """ - pulumi.set(__self__, "contact_flow_id", contact_flow_id) - pulumi.set(__self__, "queue_id", queue_id) + QuickConnectQuickConnectConfigQueueConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_flow_id=contact_flow_id, + queue_id=queue_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_flow_id: Optional[str] = None, + queue_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_flow_id is None and 'contactFlowId' in kwargs: + contact_flow_id = kwargs['contactFlowId'] + if contact_flow_id is None: + raise TypeError("Missing 'contact_flow_id' argument") + if queue_id is None and 'queueId' in kwargs: + queue_id = kwargs['queueId'] + if queue_id is None: + raise TypeError("Missing 'queue_id' argument") + + _setter("contact_flow_id", contact_flow_id) + _setter("queue_id", queue_id) @property @pulumi.getter(name="contactFlowId") @@ -903,8 +1229,29 @@ def __init__(__self__, *, :param str contact_flow_id: Specifies the identifier of the contact flow. :param str user_id: Specifies the identifier for the user. """ - pulumi.set(__self__, "contact_flow_id", contact_flow_id) - pulumi.set(__self__, "user_id", user_id) + QuickConnectQuickConnectConfigUserConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_flow_id=contact_flow_id, + user_id=user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_flow_id: Optional[str] = None, + user_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_flow_id is None and 'contactFlowId' in kwargs: + contact_flow_id = kwargs['contactFlowId'] + if contact_flow_id is None: + raise TypeError("Missing 'contact_flow_id' argument") + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_id is None: + raise TypeError("Missing 'user_id' argument") + + _setter("contact_flow_id", contact_flow_id) + _setter("user_id", user_id) @property @pulumi.getter(name="contactFlowId") @@ -932,8 +1279,25 @@ def __init__(__self__, *, :param str channel: Specifies the channels that agents can handle in the Contact Control Panel (CCP). Valid values are `VOICE`, `CHAT`, `TASK`. :param int concurrency: Specifies the number of contacts an agent can have on a channel simultaneously. Valid Range for `VOICE`: Minimum value of 1. Maximum value of 1. Valid Range for `CHAT`: Minimum value of 1. Maximum value of 10. Valid Range for `TASK`: Minimum value of 1. Maximum value of 10. """ - pulumi.set(__self__, "channel", channel) - pulumi.set(__self__, "concurrency", concurrency) + RoutingProfileMediaConcurrency._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel=channel, + concurrency=concurrency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel: Optional[str] = None, + concurrency: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel is None: + raise TypeError("Missing 'channel' argument") + if concurrency is None: + raise TypeError("Missing 'concurrency' argument") + + _setter("channel", channel) + _setter("concurrency", concurrency) @property @pulumi.getter @@ -990,14 +1354,49 @@ def __init__(__self__, *, :param str queue_arn: ARN for the queue. :param str queue_name: Name for the queue. """ - pulumi.set(__self__, "channel", channel) - pulumi.set(__self__, "delay", delay) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "queue_id", queue_id) + RoutingProfileQueueConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel=channel, + delay=delay, + priority=priority, + queue_id=queue_id, + queue_arn=queue_arn, + queue_name=queue_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel: Optional[str] = None, + delay: Optional[int] = None, + priority: Optional[int] = None, + queue_id: Optional[str] = None, + queue_arn: Optional[str] = None, + queue_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel is None: + raise TypeError("Missing 'channel' argument") + if delay is None: + raise TypeError("Missing 'delay' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if queue_id is None and 'queueId' in kwargs: + queue_id = kwargs['queueId'] + if queue_id is None: + raise TypeError("Missing 'queue_id' argument") + if queue_arn is None and 'queueArn' in kwargs: + queue_arn = kwargs['queueArn'] + if queue_name is None and 'queueName' in kwargs: + queue_name = kwargs['queueName'] + + _setter("channel", channel) + _setter("delay", delay) + _setter("priority", priority) + _setter("queue_id", queue_id) if queue_arn is not None: - pulumi.set(__self__, "queue_arn", queue_arn) + _setter("queue_arn", queue_arn) if queue_name is not None: - pulumi.set(__self__, "queue_name", queue_name) + _setter("queue_name", queue_name) @property @pulumi.getter @@ -1088,16 +1487,45 @@ def __init__(__self__, *, :param Sequence['UserHierarchyGroupHierarchyPathLevelThreeArgs'] level_threes: A block that defines the details of level three. The level block is documented below. :param Sequence['UserHierarchyGroupHierarchyPathLevelTwoArgs'] level_twos: A block that defines the details of level two. The level block is documented below. """ + UserHierarchyGroupHierarchyPath._configure( + lambda key, value: pulumi.set(__self__, key, value), + level_fives=level_fives, + level_fours=level_fours, + level_ones=level_ones, + level_threes=level_threes, + level_twos=level_twos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + level_fives: Optional[Sequence['outputs.UserHierarchyGroupHierarchyPathLevelFife']] = None, + level_fours: Optional[Sequence['outputs.UserHierarchyGroupHierarchyPathLevelFour']] = None, + level_ones: Optional[Sequence['outputs.UserHierarchyGroupHierarchyPathLevelOne']] = None, + level_threes: Optional[Sequence['outputs.UserHierarchyGroupHierarchyPathLevelThree']] = None, + level_twos: Optional[Sequence['outputs.UserHierarchyGroupHierarchyPathLevelTwo']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if level_fives is None and 'levelFives' in kwargs: + level_fives = kwargs['levelFives'] + if level_fours is None and 'levelFours' in kwargs: + level_fours = kwargs['levelFours'] + if level_ones is None and 'levelOnes' in kwargs: + level_ones = kwargs['levelOnes'] + if level_threes is None and 'levelThrees' in kwargs: + level_threes = kwargs['levelThrees'] + if level_twos is None and 'levelTwos' in kwargs: + level_twos = kwargs['levelTwos'] + if level_fives is not None: - pulumi.set(__self__, "level_fives", level_fives) + _setter("level_fives", level_fives) if level_fours is not None: - pulumi.set(__self__, "level_fours", level_fours) + _setter("level_fours", level_fours) if level_ones is not None: - pulumi.set(__self__, "level_ones", level_ones) + _setter("level_ones", level_ones) if level_threes is not None: - pulumi.set(__self__, "level_threes", level_threes) + _setter("level_threes", level_threes) if level_twos is not None: - pulumi.set(__self__, "level_twos", level_twos) + _setter("level_twos", level_twos) @property @pulumi.getter(name="levelFives") @@ -1151,12 +1579,27 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelFife._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1194,12 +1637,27 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelFour._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1237,12 +1695,27 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelOne._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1280,12 +1753,27 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelThree._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1323,12 +1811,27 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: The name of the user hierarchy group. Must not be more than 100 characters. """ + UserHierarchyGroupHierarchyPathLevelTwo._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -1397,16 +1900,45 @@ def __init__(__self__, *, :param 'UserHierarchyStructureHierarchyStructureLevelThreeArgs' level_three: A block that defines the details of level three. The level block is documented below. :param 'UserHierarchyStructureHierarchyStructureLevelTwoArgs' level_two: A block that defines the details of level two. The level block is documented below. """ + UserHierarchyStructureHierarchyStructure._configure( + lambda key, value: pulumi.set(__self__, key, value), + level_five=level_five, + level_four=level_four, + level_one=level_one, + level_three=level_three, + level_two=level_two, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + level_five: Optional['outputs.UserHierarchyStructureHierarchyStructureLevelFive'] = None, + level_four: Optional['outputs.UserHierarchyStructureHierarchyStructureLevelFour'] = None, + level_one: Optional['outputs.UserHierarchyStructureHierarchyStructureLevelOne'] = None, + level_three: Optional['outputs.UserHierarchyStructureHierarchyStructureLevelThree'] = None, + level_two: Optional['outputs.UserHierarchyStructureHierarchyStructureLevelTwo'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if level_five is None and 'levelFive' in kwargs: + level_five = kwargs['levelFive'] + if level_four is None and 'levelFour' in kwargs: + level_four = kwargs['levelFour'] + if level_one is None and 'levelOne' in kwargs: + level_one = kwargs['levelOne'] + if level_three is None and 'levelThree' in kwargs: + level_three = kwargs['levelThree'] + if level_two is None and 'levelTwo' in kwargs: + level_two = kwargs['levelTwo'] + if level_five is not None: - pulumi.set(__self__, "level_five", level_five) + _setter("level_five", level_five) if level_four is not None: - pulumi.set(__self__, "level_four", level_four) + _setter("level_four", level_four) if level_one is not None: - pulumi.set(__self__, "level_one", level_one) + _setter("level_one", level_one) if level_three is not None: - pulumi.set(__self__, "level_three", level_three) + _setter("level_three", level_three) if level_two is not None: - pulumi.set(__self__, "level_two", level_two) + _setter("level_two", level_two) @property @pulumi.getter(name="levelFive") @@ -1462,11 +1994,28 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the hierarchy level. :param str id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelFive._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + arn: Optional[str] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1504,11 +2053,28 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the hierarchy level. :param str id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelFour._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + arn: Optional[str] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1546,11 +2112,28 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the hierarchy level. :param str id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelOne._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + arn: Optional[str] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1588,11 +2171,28 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the hierarchy level. :param str id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelThree._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + arn: Optional[str] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1630,11 +2230,28 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the hierarchy level. :param str id: The identifier of the hierarchy level. """ - pulumi.set(__self__, "name", name) + UserHierarchyStructureHierarchyStructureLevelTwo._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + arn=arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + arn: Optional[str] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1691,12 +2308,31 @@ def __init__(__self__, *, :param str first_name: The first name. This is required if you are using Amazon Connect or SAML for identity management. Minimum length of 1. Maximum length of 100. :param str last_name: The last name. This is required if you are using Amazon Connect or SAML for identity management. Minimum length of 1. Maximum length of 100. """ + UserIdentityInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + email=email, + first_name=first_name, + last_name=last_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email: Optional[str] = None, + first_name: Optional[str] = None, + last_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) @property @pulumi.getter @@ -1759,13 +2395,40 @@ def __init__(__self__, *, :param bool auto_accept: When Auto-Accept Call is enabled for an available agent, the agent connects to contacts automatically. :param str desk_phone_number: The phone number for the user's desk phone. Required if `phone_type` is set as `DESK_PHONE`. """ - pulumi.set(__self__, "phone_type", phone_type) + UserPhoneConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + phone_type=phone_type, + after_contact_work_time_limit=after_contact_work_time_limit, + auto_accept=auto_accept, + desk_phone_number=desk_phone_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + phone_type: Optional[str] = None, + after_contact_work_time_limit: Optional[int] = None, + auto_accept: Optional[bool] = None, + desk_phone_number: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if phone_type is None and 'phoneType' in kwargs: + phone_type = kwargs['phoneType'] + if phone_type is None: + raise TypeError("Missing 'phone_type' argument") + if after_contact_work_time_limit is None and 'afterContactWorkTimeLimit' in kwargs: + after_contact_work_time_limit = kwargs['afterContactWorkTimeLimit'] + if auto_accept is None and 'autoAccept' in kwargs: + auto_accept = kwargs['autoAccept'] + if desk_phone_number is None and 'deskPhoneNumber' in kwargs: + desk_phone_number = kwargs['deskPhoneNumber'] + + _setter("phone_type", phone_type) if after_contact_work_time_limit is not None: - pulumi.set(__self__, "after_contact_work_time_limit", after_contact_work_time_limit) + _setter("after_contact_work_time_limit", after_contact_work_time_limit) if auto_accept is not None: - pulumi.set(__self__, "auto_accept", auto_accept) + _setter("auto_accept", auto_accept) if desk_phone_number is not None: - pulumi.set(__self__, "desk_phone_number", desk_phone_number) + _setter("desk_phone_number", desk_phone_number) @property @pulumi.getter(name="phoneType") @@ -1809,8 +2472,27 @@ def __init__(__self__, *, :param str lex_region: Region that the Amazon Lex (V1) bot was created in. :param str name: Name of the Amazon Lex (V1) bot. """ - pulumi.set(__self__, "lex_region", lex_region) - pulumi.set(__self__, "name", name) + GetBotAssociationLexBotResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + lex_region=lex_region, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lex_region: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lex_region is None and 'lexRegion' in kwargs: + lex_region = kwargs['lexRegion'] + if lex_region is None: + raise TypeError("Missing 'lex_region' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("lex_region", lex_region) + _setter("name", name) @property @pulumi.getter(name="lexRegion") @@ -1840,9 +2522,34 @@ def __init__(__self__, *, :param Sequence['GetHoursOfOperationConfigEndTimeArgs'] end_times: End time block specifies the time that your contact center closes. The `end_time` is documented below. :param Sequence['GetHoursOfOperationConfigStartTimeArgs'] start_times: Start time block specifies the time that your contact center opens. The `start_time` is documented below. """ - pulumi.set(__self__, "day", day) - pulumi.set(__self__, "end_times", end_times) - pulumi.set(__self__, "start_times", start_times) + GetHoursOfOperationConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + day=day, + end_times=end_times, + start_times=start_times, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + day: Optional[str] = None, + end_times: Optional[Sequence['outputs.GetHoursOfOperationConfigEndTimeResult']] = None, + start_times: Optional[Sequence['outputs.GetHoursOfOperationConfigStartTimeResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if day is None: + raise TypeError("Missing 'day' argument") + if end_times is None and 'endTimes' in kwargs: + end_times = kwargs['endTimes'] + if end_times is None: + raise TypeError("Missing 'end_times' argument") + if start_times is None and 'startTimes' in kwargs: + start_times = kwargs['startTimes'] + if start_times is None: + raise TypeError("Missing 'start_times' argument") + + _setter("day", day) + _setter("end_times", end_times) + _setter("start_times", start_times) @property @pulumi.getter @@ -1878,8 +2585,25 @@ def __init__(__self__, *, :param int hours: Hour of opening. :param int minutes: Minute of opening. """ - pulumi.set(__self__, "hours", hours) - pulumi.set(__self__, "minutes", minutes) + GetHoursOfOperationConfigEndTimeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[int] = None, + minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is None: + raise TypeError("Missing 'hours' argument") + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("hours", hours) + _setter("minutes", minutes) @property @pulumi.getter @@ -1907,8 +2631,25 @@ def __init__(__self__, *, :param int hours: Hour of opening. :param int minutes: Minute of opening. """ - pulumi.set(__self__, "hours", hours) - pulumi.set(__self__, "minutes", minutes) + GetHoursOfOperationConfigStartTimeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[int] = None, + minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is None: + raise TypeError("Missing 'hours' argument") + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("hours", hours) + _setter("minutes", minutes) @property @pulumi.getter @@ -1942,11 +2683,50 @@ def __init__(__self__, *, :param Sequence['GetInstanceStorageConfigStorageConfigS3ConfigArgs'] s3_configs: A block that specifies the configuration of S3 Bucket. Documented below. :param str storage_type: A valid storage type. Valid Values: `S3` | `KINESIS_VIDEO_STREAM` | `KINESIS_STREAM` | `KINESIS_FIREHOSE`. """ - pulumi.set(__self__, "kinesis_firehose_configs", kinesis_firehose_configs) - pulumi.set(__self__, "kinesis_stream_configs", kinesis_stream_configs) - pulumi.set(__self__, "kinesis_video_stream_configs", kinesis_video_stream_configs) - pulumi.set(__self__, "s3_configs", s3_configs) - pulumi.set(__self__, "storage_type", storage_type) + GetInstanceStorageConfigStorageConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + kinesis_firehose_configs=kinesis_firehose_configs, + kinesis_stream_configs=kinesis_stream_configs, + kinesis_video_stream_configs=kinesis_video_stream_configs, + s3_configs=s3_configs, + storage_type=storage_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kinesis_firehose_configs: Optional[Sequence['outputs.GetInstanceStorageConfigStorageConfigKinesisFirehoseConfigResult']] = None, + kinesis_stream_configs: Optional[Sequence['outputs.GetInstanceStorageConfigStorageConfigKinesisStreamConfigResult']] = None, + kinesis_video_stream_configs: Optional[Sequence['outputs.GetInstanceStorageConfigStorageConfigKinesisVideoStreamConfigResult']] = None, + s3_configs: Optional[Sequence['outputs.GetInstanceStorageConfigStorageConfigS3ConfigResult']] = None, + storage_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kinesis_firehose_configs is None and 'kinesisFirehoseConfigs' in kwargs: + kinesis_firehose_configs = kwargs['kinesisFirehoseConfigs'] + if kinesis_firehose_configs is None: + raise TypeError("Missing 'kinesis_firehose_configs' argument") + if kinesis_stream_configs is None and 'kinesisStreamConfigs' in kwargs: + kinesis_stream_configs = kwargs['kinesisStreamConfigs'] + if kinesis_stream_configs is None: + raise TypeError("Missing 'kinesis_stream_configs' argument") + if kinesis_video_stream_configs is None and 'kinesisVideoStreamConfigs' in kwargs: + kinesis_video_stream_configs = kwargs['kinesisVideoStreamConfigs'] + if kinesis_video_stream_configs is None: + raise TypeError("Missing 'kinesis_video_stream_configs' argument") + if s3_configs is None and 's3Configs' in kwargs: + s3_configs = kwargs['s3Configs'] + if s3_configs is None: + raise TypeError("Missing 's3_configs' argument") + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if storage_type is None: + raise TypeError("Missing 'storage_type' argument") + + _setter("kinesis_firehose_configs", kinesis_firehose_configs) + _setter("kinesis_stream_configs", kinesis_stream_configs) + _setter("kinesis_video_stream_configs", kinesis_video_stream_configs) + _setter("s3_configs", s3_configs) + _setter("storage_type", storage_type) @property @pulumi.getter(name="kinesisFirehoseConfigs") @@ -1996,7 +2776,22 @@ def __init__(__self__, *, """ :param str firehose_arn: The Amazon Resource Name (ARN) of the delivery stream. """ - pulumi.set(__self__, "firehose_arn", firehose_arn) + GetInstanceStorageConfigStorageConfigKinesisFirehoseConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + firehose_arn=firehose_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firehose_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firehose_arn is None and 'firehoseArn' in kwargs: + firehose_arn = kwargs['firehoseArn'] + if firehose_arn is None: + raise TypeError("Missing 'firehose_arn' argument") + + _setter("firehose_arn", firehose_arn) @property @pulumi.getter(name="firehoseArn") @@ -2014,7 +2809,22 @@ def __init__(__self__, *, """ :param str stream_arn: The Amazon Resource Name (ARN) of the data stream. """ - pulumi.set(__self__, "stream_arn", stream_arn) + GetInstanceStorageConfigStorageConfigKinesisStreamConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="streamArn") @@ -2036,9 +2846,34 @@ def __init__(__self__, *, :param str prefix: The prefix of the video stream. Minimum length of `1`. Maximum length of `128`. When read from the state, the value returned is `-connect--contact-` since the API appends additional details to the `prefix`. :param int retention_period_hours: The number of hours to retain the data in a data store associated with the stream. Minimum value of `0`. Maximum value of `87600`. A value of `0` indicates that the stream does not persist data. """ - pulumi.set(__self__, "encryption_configs", encryption_configs) - pulumi.set(__self__, "prefix", prefix) - pulumi.set(__self__, "retention_period_hours", retention_period_hours) + GetInstanceStorageConfigStorageConfigKinesisVideoStreamConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_configs=encryption_configs, + prefix=prefix, + retention_period_hours=retention_period_hours, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_configs: Optional[Sequence['outputs.GetInstanceStorageConfigStorageConfigKinesisVideoStreamConfigEncryptionConfigResult']] = None, + prefix: Optional[str] = None, + retention_period_hours: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_configs is None and 'encryptionConfigs' in kwargs: + encryption_configs = kwargs['encryptionConfigs'] + if encryption_configs is None: + raise TypeError("Missing 'encryption_configs' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + if retention_period_hours is None and 'retentionPeriodHours' in kwargs: + retention_period_hours = kwargs['retentionPeriodHours'] + if retention_period_hours is None: + raise TypeError("Missing 'retention_period_hours' argument") + + _setter("encryption_configs", encryption_configs) + _setter("prefix", prefix) + _setter("retention_period_hours", retention_period_hours) @property @pulumi.getter(name="encryptionConfigs") @@ -2074,8 +2909,29 @@ def __init__(__self__, *, :param str encryption_type: The type of encryption. Valid Values: `KMS`. :param str key_id: The full ARN of the encryption key. Be sure to provide the full ARN of the encryption key, not just the ID. """ - pulumi.set(__self__, "encryption_type", encryption_type) - pulumi.set(__self__, "key_id", key_id) + GetInstanceStorageConfigStorageConfigKinesisVideoStreamConfigEncryptionConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[str] = None, + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if encryption_type is None: + raise TypeError("Missing 'encryption_type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("encryption_type", encryption_type) + _setter("key_id", key_id) @property @pulumi.getter(name="encryptionType") @@ -2105,9 +2961,36 @@ def __init__(__self__, *, :param str bucket_prefix: The S3 bucket prefix. :param Sequence['GetInstanceStorageConfigStorageConfigS3ConfigEncryptionConfigArgs'] encryption_configs: The encryption configuration. Documented below. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "bucket_prefix", bucket_prefix) - pulumi.set(__self__, "encryption_configs", encryption_configs) + GetInstanceStorageConfigStorageConfigS3ConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + bucket_prefix=bucket_prefix, + encryption_configs=encryption_configs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + bucket_prefix: Optional[str] = None, + encryption_configs: Optional[Sequence['outputs.GetInstanceStorageConfigStorageConfigS3ConfigEncryptionConfigResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if bucket_prefix is None: + raise TypeError("Missing 'bucket_prefix' argument") + if encryption_configs is None and 'encryptionConfigs' in kwargs: + encryption_configs = kwargs['encryptionConfigs'] + if encryption_configs is None: + raise TypeError("Missing 'encryption_configs' argument") + + _setter("bucket_name", bucket_name) + _setter("bucket_prefix", bucket_prefix) + _setter("encryption_configs", encryption_configs) @property @pulumi.getter(name="bucketName") @@ -2143,8 +3026,29 @@ def __init__(__self__, *, :param str encryption_type: The type of encryption. Valid Values: `KMS`. :param str key_id: The full ARN of the encryption key. Be sure to provide the full ARN of the encryption key, not just the ID. """ - pulumi.set(__self__, "encryption_type", encryption_type) - pulumi.set(__self__, "key_id", key_id) + GetInstanceStorageConfigStorageConfigS3ConfigEncryptionConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[str] = None, + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if encryption_type is None: + raise TypeError("Missing 'encryption_type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("encryption_type", encryption_type) + _setter("key_id", key_id) @property @pulumi.getter(name="encryptionType") @@ -2174,9 +3078,36 @@ def __init__(__self__, *, :param str outbound_caller_id_number_id: Specifies the caller ID number. :param str outbound_flow_id: Outbound whisper flow to be used during an outbound call. """ - pulumi.set(__self__, "outbound_caller_id_name", outbound_caller_id_name) - pulumi.set(__self__, "outbound_caller_id_number_id", outbound_caller_id_number_id) - pulumi.set(__self__, "outbound_flow_id", outbound_flow_id) + GetQueueOutboundCallerConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + outbound_caller_id_name=outbound_caller_id_name, + outbound_caller_id_number_id=outbound_caller_id_number_id, + outbound_flow_id=outbound_flow_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + outbound_caller_id_name: Optional[str] = None, + outbound_caller_id_number_id: Optional[str] = None, + outbound_flow_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if outbound_caller_id_name is None and 'outboundCallerIdName' in kwargs: + outbound_caller_id_name = kwargs['outboundCallerIdName'] + if outbound_caller_id_name is None: + raise TypeError("Missing 'outbound_caller_id_name' argument") + if outbound_caller_id_number_id is None and 'outboundCallerIdNumberId' in kwargs: + outbound_caller_id_number_id = kwargs['outboundCallerIdNumberId'] + if outbound_caller_id_number_id is None: + raise TypeError("Missing 'outbound_caller_id_number_id' argument") + if outbound_flow_id is None and 'outboundFlowId' in kwargs: + outbound_flow_id = kwargs['outboundFlowId'] + if outbound_flow_id is None: + raise TypeError("Missing 'outbound_flow_id' argument") + + _setter("outbound_caller_id_name", outbound_caller_id_name) + _setter("outbound_caller_id_number_id", outbound_caller_id_number_id) + _setter("outbound_flow_id", outbound_flow_id) @property @pulumi.getter(name="outboundCallerIdName") @@ -2216,10 +3147,43 @@ def __init__(__self__, *, :param str quick_connect_type: Configuration type of the Quick Connect. Valid values are `PHONE_NUMBER`, `QUEUE`, `USER`. :param Sequence['GetQuickConnectQuickConnectConfigUserConfigArgs'] user_configs: User configuration of the Quick Connect. This is returned only if `quick_connect_type` is `USER`. The `user_config` block is documented below. """ - pulumi.set(__self__, "phone_configs", phone_configs) - pulumi.set(__self__, "queue_configs", queue_configs) - pulumi.set(__self__, "quick_connect_type", quick_connect_type) - pulumi.set(__self__, "user_configs", user_configs) + GetQuickConnectQuickConnectConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + phone_configs=phone_configs, + queue_configs=queue_configs, + quick_connect_type=quick_connect_type, + user_configs=user_configs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + phone_configs: Optional[Sequence['outputs.GetQuickConnectQuickConnectConfigPhoneConfigResult']] = None, + queue_configs: Optional[Sequence['outputs.GetQuickConnectQuickConnectConfigQueueConfigResult']] = None, + quick_connect_type: Optional[str] = None, + user_configs: Optional[Sequence['outputs.GetQuickConnectQuickConnectConfigUserConfigResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if phone_configs is None and 'phoneConfigs' in kwargs: + phone_configs = kwargs['phoneConfigs'] + if phone_configs is None: + raise TypeError("Missing 'phone_configs' argument") + if queue_configs is None and 'queueConfigs' in kwargs: + queue_configs = kwargs['queueConfigs'] + if queue_configs is None: + raise TypeError("Missing 'queue_configs' argument") + if quick_connect_type is None and 'quickConnectType' in kwargs: + quick_connect_type = kwargs['quickConnectType'] + if quick_connect_type is None: + raise TypeError("Missing 'quick_connect_type' argument") + if user_configs is None and 'userConfigs' in kwargs: + user_configs = kwargs['userConfigs'] + if user_configs is None: + raise TypeError("Missing 'user_configs' argument") + + _setter("phone_configs", phone_configs) + _setter("queue_configs", queue_configs) + _setter("quick_connect_type", quick_connect_type) + _setter("user_configs", user_configs) @property @pulumi.getter(name="phoneConfigs") @@ -2261,7 +3225,22 @@ def __init__(__self__, *, """ :param str phone_number: Phone number in in E.164 format. """ - pulumi.set(__self__, "phone_number", phone_number) + GetQuickConnectQuickConnectConfigPhoneConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + phone_number=phone_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + phone_number: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if phone_number is None: + raise TypeError("Missing 'phone_number' argument") + + _setter("phone_number", phone_number) @property @pulumi.getter(name="phoneNumber") @@ -2281,8 +3260,29 @@ def __init__(__self__, *, :param str contact_flow_id: Identifier of the contact flow. :param str queue_id: Identifier for the queue. """ - pulumi.set(__self__, "contact_flow_id", contact_flow_id) - pulumi.set(__self__, "queue_id", queue_id) + GetQuickConnectQuickConnectConfigQueueConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_flow_id=contact_flow_id, + queue_id=queue_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_flow_id: Optional[str] = None, + queue_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_flow_id is None and 'contactFlowId' in kwargs: + contact_flow_id = kwargs['contactFlowId'] + if contact_flow_id is None: + raise TypeError("Missing 'contact_flow_id' argument") + if queue_id is None and 'queueId' in kwargs: + queue_id = kwargs['queueId'] + if queue_id is None: + raise TypeError("Missing 'queue_id' argument") + + _setter("contact_flow_id", contact_flow_id) + _setter("queue_id", queue_id) @property @pulumi.getter(name="contactFlowId") @@ -2310,8 +3310,29 @@ def __init__(__self__, *, :param str contact_flow_id: Identifier of the contact flow. :param str user_id: Identifier for the user. """ - pulumi.set(__self__, "contact_flow_id", contact_flow_id) - pulumi.set(__self__, "user_id", user_id) + GetQuickConnectQuickConnectConfigUserConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_flow_id=contact_flow_id, + user_id=user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_flow_id: Optional[str] = None, + user_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_flow_id is None and 'contactFlowId' in kwargs: + contact_flow_id = kwargs['contactFlowId'] + if contact_flow_id is None: + raise TypeError("Missing 'contact_flow_id' argument") + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_id is None: + raise TypeError("Missing 'user_id' argument") + + _setter("contact_flow_id", contact_flow_id) + _setter("user_id", user_id) @property @pulumi.getter(name="contactFlowId") @@ -2339,8 +3360,25 @@ def __init__(__self__, *, :param str channel: Channels agents can handle in the Contact Control Panel (CCP) for this routing profile. Valid values are `VOICE`, `CHAT`, `TASK`. :param int concurrency: Number of contacts an agent can have on a channel simultaneously. Valid Range for `VOICE`: Minimum value of 1. Maximum value of 1. Valid Range for `CHAT`: Minimum value of 1. Maximum value of 10. Valid Range for `TASK`: Minimum value of 1. Maximum value of 10. """ - pulumi.set(__self__, "channel", channel) - pulumi.set(__self__, "concurrency", concurrency) + GetRoutingProfileMediaConcurrencyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel=channel, + concurrency=concurrency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel: Optional[str] = None, + concurrency: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel is None: + raise TypeError("Missing 'channel' argument") + if concurrency is None: + raise TypeError("Missing 'concurrency' argument") + + _setter("channel", channel) + _setter("concurrency", concurrency) @property @pulumi.getter @@ -2376,12 +3414,51 @@ def __init__(__self__, *, :param str queue_id: Identifier for the queue. :param str queue_name: Name for the queue. """ - pulumi.set(__self__, "channel", channel) - pulumi.set(__self__, "delay", delay) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "queue_arn", queue_arn) - pulumi.set(__self__, "queue_id", queue_id) - pulumi.set(__self__, "queue_name", queue_name) + GetRoutingProfileQueueConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel=channel, + delay=delay, + priority=priority, + queue_arn=queue_arn, + queue_id=queue_id, + queue_name=queue_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel: Optional[str] = None, + delay: Optional[int] = None, + priority: Optional[int] = None, + queue_arn: Optional[str] = None, + queue_id: Optional[str] = None, + queue_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel is None: + raise TypeError("Missing 'channel' argument") + if delay is None: + raise TypeError("Missing 'delay' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if queue_arn is None and 'queueArn' in kwargs: + queue_arn = kwargs['queueArn'] + if queue_arn is None: + raise TypeError("Missing 'queue_arn' argument") + if queue_id is None and 'queueId' in kwargs: + queue_id = kwargs['queueId'] + if queue_id is None: + raise TypeError("Missing 'queue_id' argument") + if queue_name is None and 'queueName' in kwargs: + queue_name = kwargs['queueName'] + if queue_name is None: + raise TypeError("Missing 'queue_name' argument") + + _setter("channel", channel) + _setter("delay", delay) + _setter("priority", priority) + _setter("queue_arn", queue_arn) + _setter("queue_id", queue_id) + _setter("queue_name", queue_name) @property @pulumi.getter @@ -2447,11 +3524,50 @@ def __init__(__self__, *, :param Sequence['GetUserHierarchyGroupHierarchyPathLevelThreeArgs'] level_threes: Details of level three. See below. :param Sequence['GetUserHierarchyGroupHierarchyPathLevelTwoArgs'] level_twos: Details of level two. See below. """ - pulumi.set(__self__, "level_fives", level_fives) - pulumi.set(__self__, "level_fours", level_fours) - pulumi.set(__self__, "level_ones", level_ones) - pulumi.set(__self__, "level_threes", level_threes) - pulumi.set(__self__, "level_twos", level_twos) + GetUserHierarchyGroupHierarchyPathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + level_fives=level_fives, + level_fours=level_fours, + level_ones=level_ones, + level_threes=level_threes, + level_twos=level_twos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + level_fives: Optional[Sequence['outputs.GetUserHierarchyGroupHierarchyPathLevelFifeResult']] = None, + level_fours: Optional[Sequence['outputs.GetUserHierarchyGroupHierarchyPathLevelFourResult']] = None, + level_ones: Optional[Sequence['outputs.GetUserHierarchyGroupHierarchyPathLevelOneResult']] = None, + level_threes: Optional[Sequence['outputs.GetUserHierarchyGroupHierarchyPathLevelThreeResult']] = None, + level_twos: Optional[Sequence['outputs.GetUserHierarchyGroupHierarchyPathLevelTwoResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if level_fives is None and 'levelFives' in kwargs: + level_fives = kwargs['levelFives'] + if level_fives is None: + raise TypeError("Missing 'level_fives' argument") + if level_fours is None and 'levelFours' in kwargs: + level_fours = kwargs['levelFours'] + if level_fours is None: + raise TypeError("Missing 'level_fours' argument") + if level_ones is None and 'levelOnes' in kwargs: + level_ones = kwargs['levelOnes'] + if level_ones is None: + raise TypeError("Missing 'level_ones' argument") + if level_threes is None and 'levelThrees' in kwargs: + level_threes = kwargs['levelThrees'] + if level_threes is None: + raise TypeError("Missing 'level_threes' argument") + if level_twos is None and 'levelTwos' in kwargs: + level_twos = kwargs['levelTwos'] + if level_twos is None: + raise TypeError("Missing 'level_twos' argument") + + _setter("level_fives", level_fives) + _setter("level_fours", level_fours) + _setter("level_ones", level_ones) + _setter("level_threes", level_threes) + _setter("level_twos", level_twos) @property @pulumi.getter(name="levelFives") @@ -2505,9 +3621,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: Returns information on a specific hierarchy group by name """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyGroupHierarchyPathLevelFifeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2545,9 +3682,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: Returns information on a specific hierarchy group by name """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyGroupHierarchyPathLevelFourResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2585,9 +3743,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: Returns information on a specific hierarchy group by name """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyGroupHierarchyPathLevelOneResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2625,9 +3804,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: Returns information on a specific hierarchy group by name """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyGroupHierarchyPathLevelThreeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2665,9 +3865,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy group. :param str name: Returns information on a specific hierarchy group by name """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyGroupHierarchyPathLevelTwoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2709,11 +3930,50 @@ def __init__(__self__, *, :param Sequence['GetUserHierarchyStructureHierarchyStructureLevelThreeArgs'] level_threes: Details of level three. See below. :param Sequence['GetUserHierarchyStructureHierarchyStructureLevelTwoArgs'] level_twos: Details of level two. See below. """ - pulumi.set(__self__, "level_fives", level_fives) - pulumi.set(__self__, "level_fours", level_fours) - pulumi.set(__self__, "level_ones", level_ones) - pulumi.set(__self__, "level_threes", level_threes) - pulumi.set(__self__, "level_twos", level_twos) + GetUserHierarchyStructureHierarchyStructureResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + level_fives=level_fives, + level_fours=level_fours, + level_ones=level_ones, + level_threes=level_threes, + level_twos=level_twos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + level_fives: Optional[Sequence['outputs.GetUserHierarchyStructureHierarchyStructureLevelFifeResult']] = None, + level_fours: Optional[Sequence['outputs.GetUserHierarchyStructureHierarchyStructureLevelFourResult']] = None, + level_ones: Optional[Sequence['outputs.GetUserHierarchyStructureHierarchyStructureLevelOneResult']] = None, + level_threes: Optional[Sequence['outputs.GetUserHierarchyStructureHierarchyStructureLevelThreeResult']] = None, + level_twos: Optional[Sequence['outputs.GetUserHierarchyStructureHierarchyStructureLevelTwoResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if level_fives is None and 'levelFives' in kwargs: + level_fives = kwargs['levelFives'] + if level_fives is None: + raise TypeError("Missing 'level_fives' argument") + if level_fours is None and 'levelFours' in kwargs: + level_fours = kwargs['levelFours'] + if level_fours is None: + raise TypeError("Missing 'level_fours' argument") + if level_ones is None and 'levelOnes' in kwargs: + level_ones = kwargs['levelOnes'] + if level_ones is None: + raise TypeError("Missing 'level_ones' argument") + if level_threes is None and 'levelThrees' in kwargs: + level_threes = kwargs['levelThrees'] + if level_threes is None: + raise TypeError("Missing 'level_threes' argument") + if level_twos is None and 'levelTwos' in kwargs: + level_twos = kwargs['levelTwos'] + if level_twos is None: + raise TypeError("Missing 'level_twos' argument") + + _setter("level_fives", level_fives) + _setter("level_fours", level_fours) + _setter("level_ones", level_ones) + _setter("level_threes", level_threes) + _setter("level_twos", level_twos) @property @pulumi.getter(name="levelFives") @@ -2767,9 +4027,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy level. :param str name: Name of the user hierarchy level. Must not be more than 50 characters. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyStructureHierarchyStructureLevelFifeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2807,9 +4088,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy level. :param str name: Name of the user hierarchy level. Must not be more than 50 characters. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyStructureHierarchyStructureLevelFourResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2847,9 +4149,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy level. :param str name: Name of the user hierarchy level. Must not be more than 50 characters. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyStructureHierarchyStructureLevelOneResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2887,9 +4210,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy level. :param str name: Name of the user hierarchy level. Must not be more than 50 characters. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyStructureHierarchyStructureLevelThreeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2927,9 +4271,30 @@ def __init__(__self__, *, :param str id: The identifier of the hierarchy level. :param str name: Name of the user hierarchy level. Must not be more than 50 characters. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetUserHierarchyStructureHierarchyStructureLevelTwoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -2967,9 +4332,34 @@ def __init__(__self__, *, :param str first_name: The first name. :param str last_name: The last name. """ - pulumi.set(__self__, "email", email) - pulumi.set(__self__, "first_name", first_name) - pulumi.set(__self__, "last_name", last_name) + GetUserIdentityInfoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + email=email, + first_name=first_name, + last_name=last_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email: Optional[str] = None, + first_name: Optional[str] = None, + last_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email is None: + raise TypeError("Missing 'email' argument") + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if first_name is None: + raise TypeError("Missing 'first_name' argument") + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if last_name is None: + raise TypeError("Missing 'last_name' argument") + + _setter("email", email) + _setter("first_name", first_name) + _setter("last_name", last_name) @property @pulumi.getter @@ -3009,10 +4399,43 @@ def __init__(__self__, *, :param str desk_phone_number: The phone number for the user's desk phone. :param str phone_type: The phone type. Valid values are `DESK_PHONE` and `SOFT_PHONE`. """ - pulumi.set(__self__, "after_contact_work_time_limit", after_contact_work_time_limit) - pulumi.set(__self__, "auto_accept", auto_accept) - pulumi.set(__self__, "desk_phone_number", desk_phone_number) - pulumi.set(__self__, "phone_type", phone_type) + GetUserPhoneConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + after_contact_work_time_limit=after_contact_work_time_limit, + auto_accept=auto_accept, + desk_phone_number=desk_phone_number, + phone_type=phone_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + after_contact_work_time_limit: Optional[int] = None, + auto_accept: Optional[bool] = None, + desk_phone_number: Optional[str] = None, + phone_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if after_contact_work_time_limit is None and 'afterContactWorkTimeLimit' in kwargs: + after_contact_work_time_limit = kwargs['afterContactWorkTimeLimit'] + if after_contact_work_time_limit is None: + raise TypeError("Missing 'after_contact_work_time_limit' argument") + if auto_accept is None and 'autoAccept' in kwargs: + auto_accept = kwargs['autoAccept'] + if auto_accept is None: + raise TypeError("Missing 'auto_accept' argument") + if desk_phone_number is None and 'deskPhoneNumber' in kwargs: + desk_phone_number = kwargs['deskPhoneNumber'] + if desk_phone_number is None: + raise TypeError("Missing 'desk_phone_number' argument") + if phone_type is None and 'phoneType' in kwargs: + phone_type = kwargs['phoneType'] + if phone_type is None: + raise TypeError("Missing 'phone_type' argument") + + _setter("after_contact_work_time_limit", after_contact_work_time_limit) + _setter("auto_accept", auto_accept) + _setter("desk_phone_number", desk_phone_number) + _setter("phone_type", phone_type) @property @pulumi.getter(name="afterContactWorkTimeLimit") diff --git a/sdk/python/pulumi_aws/connect/phone_number.py b/sdk/python/pulumi_aws/connect/phone_number.py index 7209ff633dc..60f5fa07213 100644 --- a/sdk/python/pulumi_aws/connect/phone_number.py +++ b/sdk/python/pulumi_aws/connect/phone_number.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,46 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: The prefix of the phone number that is used to filter available phone numbers. If provided, it must contain `+` as part of the country code. Do not specify this argument when importing the resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Phone Number. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "country_code", country_code) - pulumi.set(__self__, "target_arn", target_arn) - pulumi.set(__self__, "type", type) + PhoneNumberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_code=country_code, + target_arn=target_arn, + type=type, + description=description, + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_code: Optional[pulumi.Input[str]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if country_code is None: + raise TypeError("Missing 'country_code' argument") + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("country_code", country_code) + _setter("target_arn", target_arn) + _setter("type", type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="countryCode") @@ -140,29 +171,66 @@ def __init__(__self__, *, :param pulumi.Input[str] target_arn: The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to. :param pulumi.Input[str] type: The type of phone number. Valid Values: `TOLL_FREE` | `DID`. """ + _PhoneNumberState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + country_code=country_code, + description=description, + phone_number=phone_number, + prefix=prefix, + statuses=statuses, + tags=tags, + tags_all=tags_all, + target_arn=target_arn, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + country_code: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + phone_number: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + statuses: Optional[pulumi.Input[Sequence[pulumi.Input['PhoneNumberStatusArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if country_code is not None: - pulumi.set(__self__, "country_code", country_code) + _setter("country_code", country_code) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if phone_number is not None: - pulumi.set(__self__, "phone_number", phone_number) + _setter("phone_number", phone_number) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if statuses is not None: - pulumi.set(__self__, "statuses", statuses) + _setter("statuses", statuses) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_arn is not None: - pulumi.set(__self__, "target_arn", target_arn) + _setter("target_arn", target_arn) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -429,6 +497,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PhoneNumberArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/connect/queue.py b/sdk/python/pulumi_aws/connect/queue.py index 74bddb6d98e..6e66ba86bc4 100644 --- a/sdk/python/pulumi_aws/connect/queue.py +++ b/sdk/python/pulumi_aws/connect/queue.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,22 +37,63 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Specifies the description of the Queue. Valid values are `ENABLED`, `DISABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Queue. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "hours_of_operation_id", hours_of_operation_id) - pulumi.set(__self__, "instance_id", instance_id) + QueueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours_of_operation_id=hours_of_operation_id, + instance_id=instance_id, + description=description, + max_contacts=max_contacts, + name=name, + outbound_caller_config=outbound_caller_config, + quick_connect_ids=quick_connect_ids, + status=status, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours_of_operation_id: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + max_contacts: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + outbound_caller_config: Optional[pulumi.Input['QueueOutboundCallerConfigArgs']] = None, + quick_connect_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours_of_operation_id is None and 'hoursOfOperationId' in kwargs: + hours_of_operation_id = kwargs['hoursOfOperationId'] + if hours_of_operation_id is None: + raise TypeError("Missing 'hours_of_operation_id' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if max_contacts is None and 'maxContacts' in kwargs: + max_contacts = kwargs['maxContacts'] + if outbound_caller_config is None and 'outboundCallerConfig' in kwargs: + outbound_caller_config = kwargs['outboundCallerConfig'] + if quick_connect_ids is None and 'quickConnectIds' in kwargs: + quick_connect_ids = kwargs['quickConnectIds'] + + _setter("hours_of_operation_id", hours_of_operation_id) + _setter("instance_id", instance_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if max_contacts is not None: - pulumi.set(__self__, "max_contacts", max_contacts) + _setter("max_contacts", max_contacts) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if outbound_caller_config is not None: - pulumi.set(__self__, "outbound_caller_config", outbound_caller_config) + _setter("outbound_caller_config", outbound_caller_config) if quick_connect_ids is not None: - pulumi.set(__self__, "quick_connect_ids", quick_connect_ids) + _setter("quick_connect_ids", quick_connect_ids) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="hoursOfOperationId") @@ -193,33 +234,80 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Queue. 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. """ + _QueueState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + hours_of_operation_id=hours_of_operation_id, + instance_id=instance_id, + max_contacts=max_contacts, + name=name, + outbound_caller_config=outbound_caller_config, + queue_id=queue_id, + quick_connect_ids=quick_connect_ids, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + hours_of_operation_id: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + max_contacts: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + outbound_caller_config: Optional[pulumi.Input['QueueOutboundCallerConfigArgs']] = None, + queue_id: Optional[pulumi.Input[str]] = None, + quick_connect_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours_of_operation_id is None and 'hoursOfOperationId' in kwargs: + hours_of_operation_id = kwargs['hoursOfOperationId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if max_contacts is None and 'maxContacts' in kwargs: + max_contacts = kwargs['maxContacts'] + if outbound_caller_config is None and 'outboundCallerConfig' in kwargs: + outbound_caller_config = kwargs['outboundCallerConfig'] + if queue_id is None and 'queueId' in kwargs: + queue_id = kwargs['queueId'] + if quick_connect_ids is None and 'quickConnectIds' in kwargs: + quick_connect_ids = kwargs['quickConnectIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if hours_of_operation_id is not None: - pulumi.set(__self__, "hours_of_operation_id", hours_of_operation_id) + _setter("hours_of_operation_id", hours_of_operation_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if max_contacts is not None: - pulumi.set(__self__, "max_contacts", max_contacts) + _setter("max_contacts", max_contacts) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if outbound_caller_config is not None: - pulumi.set(__self__, "outbound_caller_config", outbound_caller_config) + _setter("outbound_caller_config", outbound_caller_config) if queue_id is not None: - pulumi.set(__self__, "queue_id", queue_id) + _setter("queue_id", queue_id) if quick_connect_ids is not None: - pulumi.set(__self__, "quick_connect_ids", quick_connect_ids) + _setter("quick_connect_ids", quick_connect_ids) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -536,6 +624,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + QueueArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -568,6 +660,7 @@ def _internal_init(__self__, __props__.__dict__["instance_id"] = instance_id __props__.__dict__["max_contacts"] = max_contacts __props__.__dict__["name"] = name + outbound_caller_config = _utilities.configure(outbound_caller_config, QueueOutboundCallerConfigArgs, True) __props__.__dict__["outbound_caller_config"] = outbound_caller_config __props__.__dict__["quick_connect_ids"] = quick_connect_ids __props__.__dict__["status"] = status diff --git a/sdk/python/pulumi_aws/connect/quick_connect.py b/sdk/python/pulumi_aws/connect/quick_connect.py index c5370de6245..188ba3ee30a 100644 --- a/sdk/python/pulumi_aws/connect/quick_connect.py +++ b/sdk/python/pulumi_aws/connect/quick_connect.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Specifies the name of the Quick Connect. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Quick Connect. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "quick_connect_config", quick_connect_config) + QuickConnectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + quick_connect_config=quick_connect_config, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + quick_connect_config: Optional[pulumi.Input['QuickConnectQuickConnectConfigArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if quick_connect_config is None and 'quickConnectConfig' in kwargs: + quick_connect_config = kwargs['quickConnectConfig'] + if quick_connect_config is None: + raise TypeError("Missing 'quick_connect_config' argument") + + _setter("instance_id", instance_id) + _setter("quick_connect_config", quick_connect_config) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="instanceId") @@ -121,25 +148,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Quick Connect. 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. """ + _QuickConnectState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + instance_id=instance_id, + name=name, + quick_connect_config=quick_connect_config, + quick_connect_id=quick_connect_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + quick_connect_config: Optional[pulumi.Input['QuickConnectQuickConnectConfigArgs']] = None, + quick_connect_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if quick_connect_config is None and 'quickConnectConfig' in kwargs: + quick_connect_config = kwargs['quickConnectConfig'] + if quick_connect_id is None and 'quickConnectId' in kwargs: + quick_connect_id = kwargs['quickConnectId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if quick_connect_config is not None: - pulumi.set(__self__, "quick_connect_config", quick_connect_config) + _setter("quick_connect_config", quick_connect_config) if quick_connect_id is not None: - pulumi.set(__self__, "quick_connect_id", quick_connect_id) + _setter("quick_connect_id", quick_connect_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -340,6 +400,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + QuickConnectArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -364,6 +428,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'instance_id'") __props__.__dict__["instance_id"] = instance_id __props__.__dict__["name"] = name + quick_connect_config = _utilities.configure(quick_connect_config, QuickConnectQuickConnectConfigArgs, True) if quick_connect_config is None and not opts.urn: raise TypeError("Missing required property 'quick_connect_config'") __props__.__dict__["quick_connect_config"] = quick_connect_config diff --git a/sdk/python/pulumi_aws/connect/routing_profile.py b/sdk/python/pulumi_aws/connect/routing_profile.py index e52106fd0ec..e39aa9b7477 100644 --- a/sdk/python/pulumi_aws/connect/routing_profile.py +++ b/sdk/python/pulumi_aws/connect/routing_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -34,16 +34,55 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Routing Profile. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "default_outbound_queue_id", default_outbound_queue_id) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "media_concurrencies", media_concurrencies) + RoutingProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_outbound_queue_id=default_outbound_queue_id, + description=description, + instance_id=instance_id, + media_concurrencies=media_concurrencies, + name=name, + queue_configs=queue_configs, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_outbound_queue_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + media_concurrencies: Optional[pulumi.Input[Sequence[pulumi.Input['RoutingProfileMediaConcurrencyArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + queue_configs: Optional[pulumi.Input[Sequence[pulumi.Input['RoutingProfileQueueConfigArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_outbound_queue_id is None and 'defaultOutboundQueueId' in kwargs: + default_outbound_queue_id = kwargs['defaultOutboundQueueId'] + if default_outbound_queue_id is None: + raise TypeError("Missing 'default_outbound_queue_id' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if media_concurrencies is None and 'mediaConcurrencies' in kwargs: + media_concurrencies = kwargs['mediaConcurrencies'] + if media_concurrencies is None: + raise TypeError("Missing 'media_concurrencies' argument") + if queue_configs is None and 'queueConfigs' in kwargs: + queue_configs = kwargs['queueConfigs'] + + _setter("default_outbound_queue_id", default_outbound_queue_id) + _setter("description", description) + _setter("instance_id", instance_id) + _setter("media_concurrencies", media_concurrencies) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if queue_configs is not None: - pulumi.set(__self__, "queue_configs", queue_configs) + _setter("queue_configs", queue_configs) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultOutboundQueueId") @@ -158,29 +197,70 @@ def __init__(__self__, *, `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. """ + _RoutingProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_outbound_queue_id=default_outbound_queue_id, + description=description, + instance_id=instance_id, + media_concurrencies=media_concurrencies, + name=name, + queue_configs=queue_configs, + routing_profile_id=routing_profile_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_outbound_queue_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + media_concurrencies: Optional[pulumi.Input[Sequence[pulumi.Input['RoutingProfileMediaConcurrencyArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + queue_configs: Optional[pulumi.Input[Sequence[pulumi.Input['RoutingProfileQueueConfigArgs']]]] = None, + routing_profile_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_outbound_queue_id is None and 'defaultOutboundQueueId' in kwargs: + default_outbound_queue_id = kwargs['defaultOutboundQueueId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if media_concurrencies is None and 'mediaConcurrencies' in kwargs: + media_concurrencies = kwargs['mediaConcurrencies'] + if queue_configs is None and 'queueConfigs' in kwargs: + queue_configs = kwargs['queueConfigs'] + if routing_profile_id is None and 'routingProfileId' in kwargs: + routing_profile_id = kwargs['routingProfileId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_outbound_queue_id is not None: - pulumi.set(__self__, "default_outbound_queue_id", default_outbound_queue_id) + _setter("default_outbound_queue_id", default_outbound_queue_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if media_concurrencies is not None: - pulumi.set(__self__, "media_concurrencies", media_concurrencies) + _setter("media_concurrencies", media_concurrencies) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if queue_configs is not None: - pulumi.set(__self__, "queue_configs", queue_configs) + _setter("queue_configs", queue_configs) if routing_profile_id is not None: - pulumi.set(__self__, "routing_profile_id", routing_profile_id) + _setter("routing_profile_id", routing_profile_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -421,6 +501,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RoutingProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/connect/security_profile.py b/sdk/python/pulumi_aws/connect/security_profile.py index 6d3b94cf6a5..695191a16df 100644 --- a/sdk/python/pulumi_aws/connect/security_profile.py +++ b/sdk/python/pulumi_aws/connect/security_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SecurityProfileArgs', 'SecurityProfile'] @@ -28,15 +28,38 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the Security Profile. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "instance_id", instance_id) + SecurityProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + description=description, + name=name, + permissions=permissions, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + + _setter("instance_id", instance_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="instanceId") @@ -125,27 +148,62 @@ def __init__(__self__, *, `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. """ + _SecurityProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + instance_id=instance_id, + name=name, + organization_resource_id=organization_resource_id, + permissions=permissions, + security_profile_id=security_profile_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + organization_resource_id: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_profile_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if organization_resource_id is None and 'organizationResourceId' in kwargs: + organization_resource_id = kwargs['organizationResourceId'] + if security_profile_id is None and 'securityProfileId' in kwargs: + security_profile_id = kwargs['securityProfileId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if organization_resource_id is not None: - pulumi.set(__self__, "organization_resource_id", organization_resource_id) + _setter("organization_resource_id", organization_resource_id) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if security_profile_id is not None: - pulumi.set(__self__, "security_profile_id", security_profile_id) + _setter("security_profile_id", security_profile_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -356,6 +414,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecurityProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/connect/user.py b/sdk/python/pulumi_aws/connect/user.py index 785c24b377d..4c33ac3c4cc 100644 --- a/sdk/python/pulumi_aws/connect/user.py +++ b/sdk/python/pulumi_aws/connect/user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -40,22 +40,73 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the user. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "phone_config", phone_config) - pulumi.set(__self__, "routing_profile_id", routing_profile_id) - pulumi.set(__self__, "security_profile_ids", security_profile_ids) + UserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + phone_config=phone_config, + routing_profile_id=routing_profile_id, + security_profile_ids=security_profile_ids, + directory_user_id=directory_user_id, + hierarchy_group_id=hierarchy_group_id, + identity_info=identity_info, + name=name, + password=password, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + phone_config: Optional[pulumi.Input['UserPhoneConfigArgs']] = None, + routing_profile_id: Optional[pulumi.Input[str]] = None, + security_profile_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + directory_user_id: Optional[pulumi.Input[str]] = None, + hierarchy_group_id: Optional[pulumi.Input[str]] = None, + identity_info: Optional[pulumi.Input['UserIdentityInfoArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if phone_config is None and 'phoneConfig' in kwargs: + phone_config = kwargs['phoneConfig'] + if phone_config is None: + raise TypeError("Missing 'phone_config' argument") + if routing_profile_id is None and 'routingProfileId' in kwargs: + routing_profile_id = kwargs['routingProfileId'] + if routing_profile_id is None: + raise TypeError("Missing 'routing_profile_id' argument") + if security_profile_ids is None and 'securityProfileIds' in kwargs: + security_profile_ids = kwargs['securityProfileIds'] + if security_profile_ids is None: + raise TypeError("Missing 'security_profile_ids' argument") + if directory_user_id is None and 'directoryUserId' in kwargs: + directory_user_id = kwargs['directoryUserId'] + if hierarchy_group_id is None and 'hierarchyGroupId' in kwargs: + hierarchy_group_id = kwargs['hierarchyGroupId'] + if identity_info is None and 'identityInfo' in kwargs: + identity_info = kwargs['identityInfo'] + + _setter("instance_id", instance_id) + _setter("phone_config", phone_config) + _setter("routing_profile_id", routing_profile_id) + _setter("security_profile_ids", security_profile_ids) if directory_user_id is not None: - pulumi.set(__self__, "directory_user_id", directory_user_id) + _setter("directory_user_id", directory_user_id) if hierarchy_group_id is not None: - pulumi.set(__self__, "hierarchy_group_id", hierarchy_group_id) + _setter("hierarchy_group_id", hierarchy_group_id) if identity_info is not None: - pulumi.set(__self__, "identity_info", identity_info) + _setter("identity_info", identity_info) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="instanceId") @@ -212,35 +263,88 @@ def __init__(__self__, *, :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] user_id: The identifier for the user. """ + _UserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + directory_user_id=directory_user_id, + hierarchy_group_id=hierarchy_group_id, + identity_info=identity_info, + instance_id=instance_id, + name=name, + password=password, + phone_config=phone_config, + routing_profile_id=routing_profile_id, + security_profile_ids=security_profile_ids, + tags=tags, + tags_all=tags_all, + user_id=user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + directory_user_id: Optional[pulumi.Input[str]] = None, + hierarchy_group_id: Optional[pulumi.Input[str]] = None, + identity_info: Optional[pulumi.Input['UserIdentityInfoArgs']] = None, + instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + phone_config: Optional[pulumi.Input['UserPhoneConfigArgs']] = None, + routing_profile_id: Optional[pulumi.Input[str]] = None, + security_profile_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_user_id is None and 'directoryUserId' in kwargs: + directory_user_id = kwargs['directoryUserId'] + if hierarchy_group_id is None and 'hierarchyGroupId' in kwargs: + hierarchy_group_id = kwargs['hierarchyGroupId'] + if identity_info is None and 'identityInfo' in kwargs: + identity_info = kwargs['identityInfo'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if phone_config is None and 'phoneConfig' in kwargs: + phone_config = kwargs['phoneConfig'] + if routing_profile_id is None and 'routingProfileId' in kwargs: + routing_profile_id = kwargs['routingProfileId'] + if security_profile_ids is None and 'securityProfileIds' in kwargs: + security_profile_ids = kwargs['securityProfileIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if directory_user_id is not None: - pulumi.set(__self__, "directory_user_id", directory_user_id) + _setter("directory_user_id", directory_user_id) if hierarchy_group_id is not None: - pulumi.set(__self__, "hierarchy_group_id", hierarchy_group_id) + _setter("hierarchy_group_id", hierarchy_group_id) if identity_info is not None: - pulumi.set(__self__, "identity_info", identity_info) + _setter("identity_info", identity_info) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if phone_config is not None: - pulumi.set(__self__, "phone_config", phone_config) + _setter("phone_config", phone_config) if routing_profile_id is not None: - pulumi.set(__self__, "routing_profile_id", routing_profile_id) + _setter("routing_profile_id", routing_profile_id) if security_profile_ids is not None: - pulumi.set(__self__, "security_profile_ids", security_profile_ids) + _setter("security_profile_ids", security_profile_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_id is not None: - pulumi.set(__self__, "user_id", user_id) + _setter("user_id", user_id) @property @pulumi.getter @@ -675,6 +779,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -701,12 +809,14 @@ def _internal_init(__self__, __props__.__dict__["directory_user_id"] = directory_user_id __props__.__dict__["hierarchy_group_id"] = hierarchy_group_id + identity_info = _utilities.configure(identity_info, UserIdentityInfoArgs, True) __props__.__dict__["identity_info"] = identity_info if instance_id is None and not opts.urn: raise TypeError("Missing required property 'instance_id'") __props__.__dict__["instance_id"] = instance_id __props__.__dict__["name"] = name __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password) + phone_config = _utilities.configure(phone_config, UserPhoneConfigArgs, True) if phone_config is None and not opts.urn: raise TypeError("Missing required property 'phone_config'") __props__.__dict__["phone_config"] = phone_config diff --git a/sdk/python/pulumi_aws/connect/user_hierarchy_group.py b/sdk/python/pulumi_aws/connect/user_hierarchy_group.py index 725914f0055..a7f03661803 100644 --- a/sdk/python/pulumi_aws/connect/user_hierarchy_group.py +++ b/sdk/python/pulumi_aws/connect/user_hierarchy_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -28,13 +28,36 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the hierarchy group. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "instance_id", instance_id) + UserHierarchyGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + name=name, + parent_group_id=parent_group_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_group_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if parent_group_id is None and 'parentGroupId' in kwargs: + parent_group_id = kwargs['parentGroupId'] + + _setter("instance_id", instance_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_group_id is not None: - pulumi.set(__self__, "parent_group_id", parent_group_id) + _setter("parent_group_id", parent_group_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="instanceId") @@ -111,27 +134,66 @@ def __init__(__self__, *, `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. """ + _UserHierarchyGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + hierarchy_group_id=hierarchy_group_id, + hierarchy_paths=hierarchy_paths, + instance_id=instance_id, + level_id=level_id, + name=name, + parent_group_id=parent_group_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + hierarchy_group_id: Optional[pulumi.Input[str]] = None, + hierarchy_paths: Optional[pulumi.Input[Sequence[pulumi.Input['UserHierarchyGroupHierarchyPathArgs']]]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + level_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_group_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hierarchy_group_id is None and 'hierarchyGroupId' in kwargs: + hierarchy_group_id = kwargs['hierarchyGroupId'] + if hierarchy_paths is None and 'hierarchyPaths' in kwargs: + hierarchy_paths = kwargs['hierarchyPaths'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if level_id is None and 'levelId' in kwargs: + level_id = kwargs['levelId'] + if parent_group_id is None and 'parentGroupId' in kwargs: + parent_group_id = kwargs['parentGroupId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if hierarchy_group_id is not None: - pulumi.set(__self__, "hierarchy_group_id", hierarchy_group_id) + _setter("hierarchy_group_id", hierarchy_group_id) if hierarchy_paths is not None: - pulumi.set(__self__, "hierarchy_paths", hierarchy_paths) + _setter("hierarchy_paths", hierarchy_paths) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if level_id is not None: - pulumi.set(__self__, "level_id", level_id) + _setter("level_id", level_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_group_id is not None: - pulumi.set(__self__, "parent_group_id", parent_group_id) + _setter("parent_group_id", parent_group_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -372,6 +434,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserHierarchyGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/connect/user_hierarchy_structure.py b/sdk/python/pulumi_aws/connect/user_hierarchy_structure.py index 79cb22142bb..5ac30e04eef 100644 --- a/sdk/python/pulumi_aws/connect/user_hierarchy_structure.py +++ b/sdk/python/pulumi_aws/connect/user_hierarchy_structure.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input['UserHierarchyStructureHierarchyStructureArgs'] hierarchy_structure: A block that defines the hierarchy structure's levels. The `hierarchy_structure` block is documented below. :param pulumi.Input[str] instance_id: Specifies the identifier of the hosting Amazon Connect Instance. """ - pulumi.set(__self__, "hierarchy_structure", hierarchy_structure) - pulumi.set(__self__, "instance_id", instance_id) + UserHierarchyStructureArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hierarchy_structure=hierarchy_structure, + instance_id=instance_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hierarchy_structure: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureArgs']] = None, + instance_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hierarchy_structure is None and 'hierarchyStructure' in kwargs: + hierarchy_structure = kwargs['hierarchyStructure'] + if hierarchy_structure is None: + raise TypeError("Missing 'hierarchy_structure' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + + _setter("hierarchy_structure", hierarchy_structure) + _setter("instance_id", instance_id) @property @pulumi.getter(name="hierarchyStructure") @@ -61,10 +82,27 @@ def __init__(__self__, *, :param pulumi.Input['UserHierarchyStructureHierarchyStructureArgs'] hierarchy_structure: A block that defines the hierarchy structure's levels. The `hierarchy_structure` block is documented below. :param pulumi.Input[str] instance_id: Specifies the identifier of the hosting Amazon Connect Instance. """ + _UserHierarchyStructureState._configure( + lambda key, value: pulumi.set(__self__, key, value), + hierarchy_structure=hierarchy_structure, + instance_id=instance_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hierarchy_structure: Optional[pulumi.Input['UserHierarchyStructureHierarchyStructureArgs']] = None, + instance_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hierarchy_structure is None and 'hierarchyStructure' in kwargs: + hierarchy_structure = kwargs['hierarchyStructure'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if hierarchy_structure is not None: - pulumi.set(__self__, "hierarchy_structure", hierarchy_structure) + _setter("hierarchy_structure", hierarchy_structure) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) @property @pulumi.getter(name="hierarchyStructure") @@ -228,6 +266,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserHierarchyStructureArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -244,6 +286,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = UserHierarchyStructureArgs.__new__(UserHierarchyStructureArgs) + hierarchy_structure = _utilities.configure(hierarchy_structure, UserHierarchyStructureHierarchyStructureArgs, True) if hierarchy_structure is None and not opts.urn: raise TypeError("Missing required property 'hierarchy_structure'") __props__.__dict__["hierarchy_structure"] = hierarchy_structure diff --git a/sdk/python/pulumi_aws/connect/vocabulary.py b/sdk/python/pulumi_aws/connect/vocabulary.py index e3ed3eb73bf..42a1f05f740 100644 --- a/sdk/python/pulumi_aws/connect/vocabulary.py +++ b/sdk/python/pulumi_aws/connect/vocabulary.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VocabularyArgs', 'Vocabulary'] @@ -28,13 +28,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the vocabulary. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "language_code", language_code) + VocabularyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + instance_id=instance_id, + language_code=language_code, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + + _setter("content", content) + _setter("instance_id", instance_id) + _setter("language_code", language_code) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -127,31 +156,74 @@ def __init__(__self__, *, :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] vocabulary_id: The identifier of the custom vocabulary. """ + _VocabularyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + content=content, + failure_reason=failure_reason, + instance_id=instance_id, + language_code=language_code, + last_modified_time=last_modified_time, + name=name, + state=state, + tags=tags, + tags_all=tags_all, + vocabulary_id=vocabulary_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + failure_reason: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + last_modified_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vocabulary_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_reason is None and 'failureReason' in kwargs: + failure_reason = kwargs['failureReason'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if last_modified_time is None and 'lastModifiedTime' in kwargs: + last_modified_time = kwargs['lastModifiedTime'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vocabulary_id is None and 'vocabularyId' in kwargs: + vocabulary_id = kwargs['vocabularyId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if failure_reason is not None: - pulumi.set(__self__, "failure_reason", failure_reason) + _setter("failure_reason", failure_reason) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if last_modified_time is not None: - pulumi.set(__self__, "last_modified_time", last_modified_time) + _setter("last_modified_time", last_modified_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vocabulary_id is not None: - pulumi.set(__self__, "vocabulary_id", vocabulary_id) + _setter("vocabulary_id", vocabulary_id) @property @pulumi.getter @@ -388,6 +460,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VocabularyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/controltower/control_tower_control.py b/sdk/python/pulumi_aws/controltower/control_tower_control.py index 5a19a011195..3115a667a5f 100644 --- a/sdk/python/pulumi_aws/controltower/control_tower_control.py +++ b/sdk/python/pulumi_aws/controltower/control_tower_control.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ControlTowerControlArgs', 'ControlTowerControl'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] control_identifier: The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny guardrail. :param pulumi.Input[str] target_identifier: The ARN of the organizational unit. """ - pulumi.set(__self__, "control_identifier", control_identifier) - pulumi.set(__self__, "target_identifier", target_identifier) + ControlTowerControlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + control_identifier=control_identifier, + target_identifier=target_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + control_identifier: Optional[pulumi.Input[str]] = None, + target_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if control_identifier is None and 'controlIdentifier' in kwargs: + control_identifier = kwargs['controlIdentifier'] + if control_identifier is None: + raise TypeError("Missing 'control_identifier' argument") + if target_identifier is None and 'targetIdentifier' in kwargs: + target_identifier = kwargs['targetIdentifier'] + if target_identifier is None: + raise TypeError("Missing 'target_identifier' argument") + + _setter("control_identifier", control_identifier) + _setter("target_identifier", target_identifier) @property @pulumi.getter(name="controlIdentifier") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] control_identifier: The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny guardrail. :param pulumi.Input[str] target_identifier: The ARN of the organizational unit. """ + _ControlTowerControlState._configure( + lambda key, value: pulumi.set(__self__, key, value), + control_identifier=control_identifier, + target_identifier=target_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + control_identifier: Optional[pulumi.Input[str]] = None, + target_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if control_identifier is None and 'controlIdentifier' in kwargs: + control_identifier = kwargs['controlIdentifier'] + if target_identifier is None and 'targetIdentifier' in kwargs: + target_identifier = kwargs['targetIdentifier'] + if control_identifier is not None: - pulumi.set(__self__, "control_identifier", control_identifier) + _setter("control_identifier", control_identifier) if target_identifier is not None: - pulumi.set(__self__, "target_identifier", target_identifier) + _setter("target_identifier", target_identifier) @property @pulumi.getter(name="controlIdentifier") @@ -170,6 +208,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ControlTowerControlArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/controltower/get_controls.py b/sdk/python/pulumi_aws/controltower/get_controls.py index 0c0a89ea54d..0fe42e0220f 100644 --- a/sdk/python/pulumi_aws/controltower/get_controls.py +++ b/sdk/python/pulumi_aws/controltower/get_controls.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/costexplorer/_inputs.py b/sdk/python/pulumi_aws/costexplorer/_inputs.py index 23b41e833d8..83fc4ab4fd0 100644 --- a/sdk/python/pulumi_aws/costexplorer/_inputs.py +++ b/sdk/python/pulumi_aws/costexplorer/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -76,8 +76,25 @@ def __init__(__self__, *, :param pulumi.Input[str] address: The address of the subscriber. If type is `SNS`, this will be the arn of the sns topic. If type is `EMAIL`, this will be the destination email address. :param pulumi.Input[str] type: The type of subscription. Valid Values: `SNS` | `EMAIL`. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "type", type) + AnomalySubscriptionSubscriberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("address", address) + _setter("type", type) @property @pulumi.getter @@ -121,18 +138,43 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionThresholdExpressionOrArgs']]] ors: Return results that match both Dimension object. :param pulumi.Input['AnomalySubscriptionThresholdExpressionTagsArgs'] tags: Configuration block for the specific Tag to use for. See Tags below. """ + AnomalySubscriptionThresholdExpressionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + cost_category=cost_category, + dimension=dimension, + not_=not_, + ors=ors, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionThresholdExpressionAndArgs']]]] = None, + cost_category: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionCostCategoryArgs']] = None, + dimension: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionDimensionArgs']] = None, + not_: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionNotArgs']] = None, + ors: Optional[pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionThresholdExpressionOrArgs']]]] = None, + tags: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionTagsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if not_ is None and 'not' in kwargs: + not_ = kwargs['not'] + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if not_ is not None: - pulumi.set(__self__, "not_", not_) + _setter("not_", not_) if ors is not None: - pulumi.set(__self__, "ors", ors) + _setter("ors", ors) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -218,12 +260,29 @@ def __init__(__self__, *, :param pulumi.Input['AnomalySubscriptionThresholdExpressionAndDimensionArgs'] dimension: Configuration block for the specific Dimension to use for. :param pulumi.Input['AnomalySubscriptionThresholdExpressionAndTagsArgs'] 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. """ + AnomalySubscriptionThresholdExpressionAndArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionAndCostCategoryArgs']] = None, + dimension: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionAndDimensionArgs']] = None, + tags: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionAndTagsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -273,12 +332,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionAndCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -328,12 +404,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionAndDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -383,12 +476,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionAndTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -438,12 +548,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -493,12 +620,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -548,12 +692,29 @@ def __init__(__self__, *, :param pulumi.Input['AnomalySubscriptionThresholdExpressionNotDimensionArgs'] dimension: Configuration block for the specific Dimension to use for. :param pulumi.Input['AnomalySubscriptionThresholdExpressionNotTagsArgs'] 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. """ + AnomalySubscriptionThresholdExpressionNotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionNotCostCategoryArgs']] = None, + dimension: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionNotDimensionArgs']] = None, + tags: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionNotTagsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -603,12 +764,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionNotCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -658,12 +836,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionNotDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -713,12 +908,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionNotTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -768,12 +980,29 @@ def __init__(__self__, *, :param pulumi.Input['AnomalySubscriptionThresholdExpressionOrDimensionArgs'] dimension: Configuration block for the specific Dimension to use for. :param pulumi.Input['AnomalySubscriptionThresholdExpressionOrTagsArgs'] 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. """ + AnomalySubscriptionThresholdExpressionOrArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionOrCostCategoryArgs']] = None, + dimension: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionOrDimensionArgs']] = None, + tags: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionOrTagsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -823,12 +1052,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionOrCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -878,12 +1124,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionOrDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -933,12 +1196,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionOrTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -988,12 +1268,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1045,14 +1342,33 @@ def __init__(__self__, *, :param pulumi.Input[str] type: You can define the CostCategoryRule rule type as either `REGULAR` or `INHERITED_VALUE`. :param pulumi.Input[str] value: Default value for the cost category. """ + CostCategoryRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + inherited_value=inherited_value, + rule=rule, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inherited_value: Optional[pulumi.Input['CostCategoryRuleInheritedValueArgs']] = None, + rule: Optional[pulumi.Input['CostCategoryRuleRuleArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inherited_value is None and 'inheritedValue' in kwargs: + inherited_value = kwargs['inheritedValue'] + if inherited_value is not None: - pulumi.set(__self__, "inherited_value", inherited_value) + _setter("inherited_value", inherited_value) if rule is not None: - pulumi.set(__self__, "rule", rule) + _setter("rule", rule) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="inheritedValue") @@ -1112,10 +1428,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dimension_key: Key to extract cost category values. :param pulumi.Input[str] dimension_name: Name of the dimension that's used to group costs. If you specify `LINKED_ACCOUNT_NAME`, the cost category value is based on account name. If you specify `TAG`, the cost category value will be based on the value of the specified tag key. Valid values are `LINKED_ACCOUNT_NAME`, `TAG` """ + CostCategoryRuleInheritedValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimension_key=dimension_key, + dimension_name=dimension_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimension_key: Optional[pulumi.Input[str]] = None, + dimension_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimension_key is None and 'dimensionKey' in kwargs: + dimension_key = kwargs['dimensionKey'] + if dimension_name is None and 'dimensionName' in kwargs: + dimension_name = kwargs['dimensionName'] + if dimension_key is not None: - pulumi.set(__self__, "dimension_key", dimension_key) + _setter("dimension_key", dimension_key) if dimension_name is not None: - pulumi.set(__self__, "dimension_name", dimension_name) + _setter("dimension_name", dimension_name) @property @pulumi.getter(name="dimensionKey") @@ -1159,18 +1492,43 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['CostCategoryRuleRuleOrArgs']]] ors: Return results that match both `Dimension` object. :param pulumi.Input['CostCategoryRuleRuleTagsArgs'] tags: Configuration block for the specific `Tag` to use for `Expression`. See below. """ + CostCategoryRuleRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + cost_category=cost_category, + dimension=dimension, + not_=not_, + ors=ors, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[pulumi.Input[Sequence[pulumi.Input['CostCategoryRuleRuleAndArgs']]]] = None, + cost_category: Optional[pulumi.Input['CostCategoryRuleRuleCostCategoryArgs']] = None, + dimension: Optional[pulumi.Input['CostCategoryRuleRuleDimensionArgs']] = None, + not_: Optional[pulumi.Input['CostCategoryRuleRuleNotArgs']] = None, + ors: Optional[pulumi.Input[Sequence[pulumi.Input['CostCategoryRuleRuleOrArgs']]]] = None, + tags: Optional[pulumi.Input['CostCategoryRuleRuleTagsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if not_ is None and 'not' in kwargs: + not_ = kwargs['not'] + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if not_ is not None: - pulumi.set(__self__, "not_", not_) + _setter("not_", not_) if ors is not None: - pulumi.set(__self__, "ors", ors) + _setter("ors", ors) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -1256,12 +1614,29 @@ def __init__(__self__, *, :param pulumi.Input['CostCategoryRuleRuleAndDimensionArgs'] dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param pulumi.Input['CostCategoryRuleRuleAndTagsArgs'] tags: Key-value mapping 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. """ + CostCategoryRuleRuleAndArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional[pulumi.Input['CostCategoryRuleRuleAndCostCategoryArgs']] = None, + dimension: Optional[pulumi.Input['CostCategoryRuleRuleAndDimensionArgs']] = None, + tags: Optional[pulumi.Input['CostCategoryRuleRuleAndTagsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -1311,12 +1686,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleAndCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1366,12 +1758,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleAndDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1421,12 +1830,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleAndTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1476,12 +1902,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1531,12 +1974,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1586,12 +2046,29 @@ def __init__(__self__, *, :param pulumi.Input['CostCategoryRuleRuleNotDimensionArgs'] dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param pulumi.Input['CostCategoryRuleRuleNotTagsArgs'] tags: Key-value mapping 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. """ + CostCategoryRuleRuleNotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional[pulumi.Input['CostCategoryRuleRuleNotCostCategoryArgs']] = None, + dimension: Optional[pulumi.Input['CostCategoryRuleRuleNotDimensionArgs']] = None, + tags: Optional[pulumi.Input['CostCategoryRuleRuleNotTagsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -1641,12 +2118,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleNotCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1696,12 +2190,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleNotDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1751,12 +2262,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleNotTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1806,12 +2334,29 @@ def __init__(__self__, *, :param pulumi.Input['CostCategoryRuleRuleOrDimensionArgs'] dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param pulumi.Input['CostCategoryRuleRuleOrTagsArgs'] tags: Key-value mapping 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. """ + CostCategoryRuleRuleOrArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional[pulumi.Input['CostCategoryRuleRuleOrCostCategoryArgs']] = None, + dimension: Optional[pulumi.Input['CostCategoryRuleRuleOrDimensionArgs']] = None, + tags: Optional[pulumi.Input['CostCategoryRuleRuleOrTagsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -1861,12 +2406,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleOrCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1916,12 +2478,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleOrDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1971,12 +2550,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleOrTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2026,12 +2622,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + match_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2083,11 +2696,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] targets: Cost Category values that you want to split costs across. These values can't be used as a source in other split charge rules. :param pulumi.Input[Sequence[pulumi.Input['CostCategorySplitChargeRuleParameterArgs']]] parameters: Configuration block for the parameters for a split charge method. This is only required for the `FIXED` method. See below. """ - pulumi.set(__self__, "method", method) - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "targets", targets) + CostCategorySplitChargeRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + method=method, + source=source, + targets=targets, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + method: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['CostCategorySplitChargeRuleParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if method is None: + raise TypeError("Missing 'method' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if targets is None: + raise TypeError("Missing 'targets' argument") + + _setter("method", method) + _setter("source", source) + _setter("targets", targets) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -2147,10 +2783,23 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Parameter type. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Parameter values. """ + CostCategorySplitChargeRuleParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2194,18 +2843,43 @@ def __init__(__self__, *, :param Sequence['GetTagsFilterOrArgs'] ors: Return results that match both `Dimension` object. :param 'GetTagsFilterTagsArgs' tags: Tags that match your request. """ + GetTagsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + cost_category=cost_category, + dimension=dimension, + not_=not_, + ors=ors, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[Sequence['GetTagsFilterAndArgs']] = None, + cost_category: Optional['GetTagsFilterCostCategoryArgs'] = None, + dimension: Optional['GetTagsFilterDimensionArgs'] = None, + not_: Optional['GetTagsFilterNotArgs'] = None, + ors: Optional[Sequence['GetTagsFilterOrArgs']] = None, + tags: Optional['GetTagsFilterTagsArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if not_ is None and 'not' in kwargs: + not_ = kwargs['not'] + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if not_ is not None: - pulumi.set(__self__, "not_", not_) + _setter("not_", not_) if ors is not None: - pulumi.set(__self__, "ors", ors) + _setter("ors", ors) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -2291,12 +2965,29 @@ def __init__(__self__, *, :param 'GetTagsFilterAndDimensionArgs' dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param 'GetTagsFilterAndTagsArgs' tags: Tags that match your request. """ + GetTagsFilterAndArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['GetTagsFilterAndCostCategoryArgs'] = None, + dimension: Optional['GetTagsFilterAndDimensionArgs'] = None, + tags: Optional['GetTagsFilterAndTagsArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -2346,12 +3037,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterAndCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2401,12 +3109,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterAndDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2456,12 +3181,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterAndTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2511,12 +3253,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2566,12 +3325,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2621,12 +3397,29 @@ def __init__(__self__, *, :param 'GetTagsFilterNotDimensionArgs' dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param 'GetTagsFilterNotTagsArgs' tags: Tags that match your request. """ + GetTagsFilterNotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['GetTagsFilterNotCostCategoryArgs'] = None, + dimension: Optional['GetTagsFilterNotDimensionArgs'] = None, + tags: Optional['GetTagsFilterNotTagsArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -2676,12 +3469,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterNotCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2731,12 +3541,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterNotDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2786,12 +3613,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterNotTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2841,12 +3685,29 @@ def __init__(__self__, *, :param 'GetTagsFilterOrDimensionArgs' dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param 'GetTagsFilterOrTagsArgs' tags: Tags that match your request. """ + GetTagsFilterOrArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['GetTagsFilterOrCostCategoryArgs'] = None, + dimension: Optional['GetTagsFilterOrDimensionArgs'] = None, + tags: Optional['GetTagsFilterOrTagsArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -2896,12 +3757,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterOrCostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2951,12 +3829,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterOrDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3006,12 +3901,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterOrTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3061,12 +3973,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3114,10 +4043,25 @@ def __init__(__self__, *, :param str key: key that's used to sort the data. Valid values are: `BlendedCost`, `UnblendedCost`, `AmortizedCost`, `NetAmortizedCost`, `NetUnblendedCost`, `UsageQuantity`, `NormalizedUsageAmount`. :param str sort_order: order that's used to sort the data. Valid values are: `ASCENDING`, `DESCENDING`. """ + GetTagsSortByArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + sort_order=sort_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + sort_order: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sort_order is None and 'sortOrder' in kwargs: + sort_order = kwargs['sortOrder'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if sort_order is not None: - pulumi.set(__self__, "sort_order", sort_order) + _setter("sort_order", sort_order) @property @pulumi.getter @@ -3153,8 +4097,25 @@ def __init__(__self__, *, :param str end: Beginning of the time period. :param str start: End of the time period. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GetTagsTimePeriodArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/costexplorer/anomaly_monitor.py b/sdk/python/pulumi_aws/costexplorer/anomaly_monitor.py index c6e0c926bbe..806951b78db 100644 --- a/sdk/python/pulumi_aws/costexplorer/anomaly_monitor.py +++ b/sdk/python/pulumi_aws/costexplorer/anomaly_monitor.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AnomalyMonitorArgs', 'AnomalyMonitor'] @@ -27,15 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the monitor. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "monitor_type", monitor_type) + AnomalyMonitorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + monitor_type=monitor_type, + monitor_dimension=monitor_dimension, + monitor_specification=monitor_specification, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + monitor_type: Optional[pulumi.Input[str]] = None, + monitor_dimension: Optional[pulumi.Input[str]] = None, + monitor_specification: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if monitor_type is None and 'monitorType' in kwargs: + monitor_type = kwargs['monitorType'] + if monitor_type is None: + raise TypeError("Missing 'monitor_type' argument") + if monitor_dimension is None and 'monitorDimension' in kwargs: + monitor_dimension = kwargs['monitorDimension'] + if monitor_specification is None and 'monitorSpecification' in kwargs: + monitor_specification = kwargs['monitorSpecification'] + + _setter("monitor_type", monitor_type) if monitor_dimension is not None: - pulumi.set(__self__, "monitor_dimension", monitor_dimension) + _setter("monitor_dimension", monitor_dimension) if monitor_specification is not None: - pulumi.set(__self__, "monitor_specification", monitor_specification) + _setter("monitor_specification", monitor_specification) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="monitorType") @@ -118,23 +145,54 @@ def __init__(__self__, *, :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. """ + _AnomalyMonitorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + monitor_dimension=monitor_dimension, + monitor_specification=monitor_specification, + monitor_type=monitor_type, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + monitor_dimension: Optional[pulumi.Input[str]] = None, + monitor_specification: Optional[pulumi.Input[str]] = None, + monitor_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if monitor_dimension is None and 'monitorDimension' in kwargs: + monitor_dimension = kwargs['monitorDimension'] + if monitor_specification is None and 'monitorSpecification' in kwargs: + monitor_specification = kwargs['monitorSpecification'] + if monitor_type is None and 'monitorType' in kwargs: + monitor_type = kwargs['monitorType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if monitor_dimension is not None: - pulumi.set(__self__, "monitor_dimension", monitor_dimension) + _setter("monitor_dimension", monitor_dimension) if monitor_specification is not None: - pulumi.set(__self__, "monitor_specification", monitor_specification) + _setter("monitor_specification", monitor_specification) if monitor_type is not None: - pulumi.set(__self__, "monitor_type", monitor_type) + _setter("monitor_type", monitor_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -353,6 +411,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AnomalyMonitorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/costexplorer/anomaly_subscription.py b/sdk/python/pulumi_aws/costexplorer/anomaly_subscription.py index cd028007e54..ce4110bbb42 100644 --- a/sdk/python/pulumi_aws/costexplorer/anomaly_subscription.py +++ b/sdk/python/pulumi_aws/costexplorer/anomaly_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,17 +33,52 @@ def __init__(__self__, *, :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['AnomalySubscriptionThresholdExpressionArgs'] threshold_expression: An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression. """ - pulumi.set(__self__, "frequency", frequency) - pulumi.set(__self__, "monitor_arn_lists", monitor_arn_lists) - pulumi.set(__self__, "subscribers", subscribers) + AnomalySubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + frequency=frequency, + monitor_arn_lists=monitor_arn_lists, + subscribers=subscribers, + account_id=account_id, + name=name, + tags=tags, + threshold_expression=threshold_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frequency: Optional[pulumi.Input[str]] = None, + monitor_arn_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subscribers: Optional[pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionSubscriberArgs']]]] = None, + account_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + threshold_expression: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frequency is None: + raise TypeError("Missing 'frequency' argument") + if monitor_arn_lists is None and 'monitorArnLists' in kwargs: + monitor_arn_lists = kwargs['monitorArnLists'] + if monitor_arn_lists is None: + raise TypeError("Missing 'monitor_arn_lists' argument") + if subscribers is None: + raise TypeError("Missing 'subscribers' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if threshold_expression is None and 'thresholdExpression' in kwargs: + threshold_expression = kwargs['thresholdExpression'] + + _setter("frequency", frequency) + _setter("monitor_arn_lists", monitor_arn_lists) + _setter("subscribers", subscribers) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if threshold_expression is not None: - pulumi.set(__self__, "threshold_expression", threshold_expression) + _setter("threshold_expression", threshold_expression) @property @pulumi.getter @@ -154,27 +189,62 @@ def __init__(__self__, *, :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['AnomalySubscriptionThresholdExpressionArgs'] threshold_expression: An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression. """ + _AnomalySubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + arn=arn, + frequency=frequency, + monitor_arn_lists=monitor_arn_lists, + name=name, + subscribers=subscribers, + tags=tags, + tags_all=tags_all, + threshold_expression=threshold_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + frequency: Optional[pulumi.Input[str]] = None, + monitor_arn_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + subscribers: Optional[pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionSubscriberArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + threshold_expression: Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if monitor_arn_lists is None and 'monitorArnLists' in kwargs: + monitor_arn_lists = kwargs['monitorArnLists'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if threshold_expression is None and 'thresholdExpression' in kwargs: + threshold_expression = kwargs['thresholdExpression'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if frequency is not None: - pulumi.set(__self__, "frequency", frequency) + _setter("frequency", frequency) if monitor_arn_lists is not None: - pulumi.set(__self__, "monitor_arn_lists", monitor_arn_lists) + _setter("monitor_arn_lists", monitor_arn_lists) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subscribers is not None: - pulumi.set(__self__, "subscribers", subscribers) + _setter("subscribers", subscribers) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if threshold_expression is not None: - pulumi.set(__self__, "threshold_expression", threshold_expression) + _setter("threshold_expression", threshold_expression) @property @pulumi.getter(name="accountId") @@ -463,6 +533,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AnomalySubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -496,6 +570,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'subscribers'") __props__.__dict__["subscribers"] = subscribers __props__.__dict__["tags"] = tags + threshold_expression = _utilities.configure(threshold_expression, AnomalySubscriptionThresholdExpressionArgs, True) __props__.__dict__["threshold_expression"] = threshold_expression __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/costexplorer/cost_allocation_tag.py b/sdk/python/pulumi_aws/costexplorer/cost_allocation_tag.py index 821738db147..1993fb50905 100644 --- a/sdk/python/pulumi_aws/costexplorer/cost_allocation_tag.py +++ b/sdk/python/pulumi_aws/costexplorer/cost_allocation_tag.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CostAllocationTagArgs', 'CostAllocationTag'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The status of a cost allocation tag. Valid values are `Active` and `Inactive`. :param pulumi.Input[str] tag_key: The key for the cost allocation tag. """ - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "tag_key", tag_key) + CostAllocationTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + tag_key=tag_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + tag_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + if tag_key is None and 'tagKey' in kwargs: + tag_key = kwargs['tagKey'] + if tag_key is None: + raise TypeError("Missing 'tag_key' argument") + + _setter("status", status) + _setter("tag_key", tag_key) @property @pulumi.getter @@ -61,12 +80,29 @@ def __init__(__self__, *, :param pulumi.Input[str] tag_key: The key for the cost allocation tag. :param pulumi.Input[str] type: The type of cost allocation tag. """ + _CostAllocationTagState._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + tag_key=tag_key, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + tag_key: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_key is None and 'tagKey' in kwargs: + tag_key = kwargs['tagKey'] + if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tag_key is not None: - pulumi.set(__self__, "tag_key", tag_key) + _setter("tag_key", tag_key) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -178,6 +214,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CostAllocationTagArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/costexplorer/cost_category.py b/sdk/python/pulumi_aws/costexplorer/cost_category.py index c17dec58d1f..021d6cec564 100644 --- a/sdk/python/pulumi_aws/costexplorer/cost_category.py +++ b/sdk/python/pulumi_aws/costexplorer/cost_category.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,18 +35,53 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['CostCategorySplitChargeRuleArgs']]] split_charge_rules: Configuration block for the split charge rules used to allocate your charges between your Cost Category values. See below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "rule_version", rule_version) - pulumi.set(__self__, "rules", rules) + CostCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_version=rule_version, + rules=rules, + default_value=default_value, + effective_start=effective_start, + name=name, + split_charge_rules=split_charge_rules, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_version: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['CostCategoryRuleArgs']]]] = None, + default_value: Optional[pulumi.Input[str]] = None, + effective_start: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + split_charge_rules: Optional[pulumi.Input[Sequence[pulumi.Input['CostCategorySplitChargeRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_version is None and 'ruleVersion' in kwargs: + rule_version = kwargs['ruleVersion'] + if rule_version is None: + raise TypeError("Missing 'rule_version' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + if effective_start is None and 'effectiveStart' in kwargs: + effective_start = kwargs['effectiveStart'] + if split_charge_rules is None and 'splitChargeRules' in kwargs: + split_charge_rules = kwargs['splitChargeRules'] + + _setter("rule_version", rule_version) + _setter("rules", rules) if default_value is not None: - pulumi.set(__self__, "default_value", default_value) + _setter("default_value", default_value) if effective_start is not None: - pulumi.set(__self__, "effective_start", effective_start) + _setter("effective_start", effective_start) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if split_charge_rules is not None: - pulumi.set(__self__, "split_charge_rules", split_charge_rules) + _setter("split_charge_rules", split_charge_rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="ruleVersion") @@ -163,29 +198,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _CostCategoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_value=default_value, + effective_end=effective_end, + effective_start=effective_start, + name=name, + rule_version=rule_version, + rules=rules, + split_charge_rules=split_charge_rules, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_value: Optional[pulumi.Input[str]] = None, + effective_end: Optional[pulumi.Input[str]] = None, + effective_start: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rule_version: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['CostCategoryRuleArgs']]]] = None, + split_charge_rules: Optional[pulumi.Input[Sequence[pulumi.Input['CostCategorySplitChargeRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + if effective_end is None and 'effectiveEnd' in kwargs: + effective_end = kwargs['effectiveEnd'] + if effective_start is None and 'effectiveStart' in kwargs: + effective_start = kwargs['effectiveStart'] + if rule_version is None and 'ruleVersion' in kwargs: + rule_version = kwargs['ruleVersion'] + if split_charge_rules is None and 'splitChargeRules' in kwargs: + split_charge_rules = kwargs['splitChargeRules'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_value is not None: - pulumi.set(__self__, "default_value", default_value) + _setter("default_value", default_value) if effective_end is not None: - pulumi.set(__self__, "effective_end", effective_end) + _setter("effective_end", effective_end) if effective_start is not None: - pulumi.set(__self__, "effective_start", effective_start) + _setter("effective_start", effective_start) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rule_version is not None: - pulumi.set(__self__, "rule_version", rule_version) + _setter("rule_version", rule_version) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if split_charge_rules is not None: - pulumi.set(__self__, "split_charge_rules", split_charge_rules) + _setter("split_charge_rules", split_charge_rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -460,6 +536,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CostCategoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/costexplorer/get_cost_category.py b/sdk/python/pulumi_aws/costexplorer/get_cost_category.py index ffb4215622d..14773177549 100644 --- a/sdk/python/pulumi_aws/costexplorer/get_cost_category.py +++ b/sdk/python/pulumi_aws/costexplorer/get_cost_category.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/costexplorer/get_tags.py b/sdk/python/pulumi_aws/costexplorer/get_tags.py index 77ea1f624d4..8d9706deb8d 100644 --- a/sdk/python/pulumi_aws/costexplorer/get_tags.py +++ b/sdk/python/pulumi_aws/costexplorer/get_tags.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/costexplorer/outputs.py b/sdk/python/pulumi_aws/costexplorer/outputs.py index 0be535261c9..48908916d17 100644 --- a/sdk/python/pulumi_aws/costexplorer/outputs.py +++ b/sdk/python/pulumi_aws/costexplorer/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -97,8 +97,25 @@ def __init__(__self__, *, :param str address: The address of the subscriber. If type is `SNS`, this will be the arn of the sns topic. If type is `EMAIL`, this will be the destination email address. :param str type: The type of subscription. Valid Values: `SNS` | `EMAIL`. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "type", type) + AnomalySubscriptionSubscriber._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("address", address) + _setter("type", type) @property @pulumi.getter @@ -153,18 +170,43 @@ def __init__(__self__, *, :param Sequence['AnomalySubscriptionThresholdExpressionOrArgs'] ors: Return results that match both Dimension object. :param 'AnomalySubscriptionThresholdExpressionTagsArgs' tags: Configuration block for the specific Tag to use for. See Tags below. """ + AnomalySubscriptionThresholdExpression._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + cost_category=cost_category, + dimension=dimension, + not_=not_, + ors=ors, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[Sequence['outputs.AnomalySubscriptionThresholdExpressionAnd']] = None, + cost_category: Optional['outputs.AnomalySubscriptionThresholdExpressionCostCategory'] = None, + dimension: Optional['outputs.AnomalySubscriptionThresholdExpressionDimension'] = None, + not_: Optional['outputs.AnomalySubscriptionThresholdExpressionNot'] = None, + ors: Optional[Sequence['outputs.AnomalySubscriptionThresholdExpressionOr']] = None, + tags: Optional['outputs.AnomalySubscriptionThresholdExpressionTags'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if not_ is None and 'not' in kwargs: + not_ = kwargs['not'] + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if not_ is not None: - pulumi.set(__self__, "not_", not_) + _setter("not_", not_) if ors is not None: - pulumi.set(__self__, "ors", ors) + _setter("ors", ors) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -243,12 +285,29 @@ def __init__(__self__, *, :param 'AnomalySubscriptionThresholdExpressionAndDimensionArgs' dimension: Configuration block for the specific Dimension to use for. :param 'AnomalySubscriptionThresholdExpressionAndTagsArgs' 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. """ + AnomalySubscriptionThresholdExpressionAnd._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['outputs.AnomalySubscriptionThresholdExpressionAndCostCategory'] = None, + dimension: Optional['outputs.AnomalySubscriptionThresholdExpressionAndDimension'] = None, + tags: Optional['outputs.AnomalySubscriptionThresholdExpressionAndTags'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -303,12 +362,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionAndCostCategory._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -363,12 +439,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionAndDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -423,12 +516,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionAndTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -483,12 +593,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionCostCategory._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -543,12 +670,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -603,12 +747,29 @@ def __init__(__self__, *, :param 'AnomalySubscriptionThresholdExpressionNotDimensionArgs' dimension: Configuration block for the specific Dimension to use for. :param 'AnomalySubscriptionThresholdExpressionNotTagsArgs' 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. """ + AnomalySubscriptionThresholdExpressionNot._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['outputs.AnomalySubscriptionThresholdExpressionNotCostCategory'] = None, + dimension: Optional['outputs.AnomalySubscriptionThresholdExpressionNotDimension'] = None, + tags: Optional['outputs.AnomalySubscriptionThresholdExpressionNotTags'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -663,12 +824,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionNotCostCategory._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -723,12 +901,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionNotDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -783,12 +978,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionNotTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -843,12 +1055,29 @@ def __init__(__self__, *, :param 'AnomalySubscriptionThresholdExpressionOrDimensionArgs' dimension: Configuration block for the specific Dimension to use for. :param 'AnomalySubscriptionThresholdExpressionOrTagsArgs' 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. """ + AnomalySubscriptionThresholdExpressionOr._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['outputs.AnomalySubscriptionThresholdExpressionOrCostCategory'] = None, + dimension: Optional['outputs.AnomalySubscriptionThresholdExpressionOrDimension'] = None, + tags: Optional['outputs.AnomalySubscriptionThresholdExpressionOrTags'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -903,12 +1132,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionOrCostCategory._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -963,12 +1209,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionOrDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1023,12 +1286,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionOrTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1083,12 +1363,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + AnomalySubscriptionThresholdExpressionTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1145,14 +1442,33 @@ def __init__(__self__, *, :param str type: You can define the CostCategoryRule rule type as either `REGULAR` or `INHERITED_VALUE`. :param str value: Default value for the cost category. """ + CostCategoryRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + inherited_value=inherited_value, + rule=rule, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inherited_value: Optional['outputs.CostCategoryRuleInheritedValue'] = None, + rule: Optional['outputs.CostCategoryRuleRule'] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inherited_value is None and 'inheritedValue' in kwargs: + inherited_value = kwargs['inheritedValue'] + if inherited_value is not None: - pulumi.set(__self__, "inherited_value", inherited_value) + _setter("inherited_value", inherited_value) if rule is not None: - pulumi.set(__self__, "rule", rule) + _setter("rule", rule) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="inheritedValue") @@ -1215,10 +1531,27 @@ def __init__(__self__, *, :param str dimension_key: Key to extract cost category values. :param str dimension_name: Name of the dimension that's used to group costs. If you specify `LINKED_ACCOUNT_NAME`, the cost category value is based on account name. If you specify `TAG`, the cost category value will be based on the value of the specified tag key. Valid values are `LINKED_ACCOUNT_NAME`, `TAG` """ + CostCategoryRuleInheritedValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimension_key=dimension_key, + dimension_name=dimension_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimension_key: Optional[str] = None, + dimension_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimension_key is None and 'dimensionKey' in kwargs: + dimension_key = kwargs['dimensionKey'] + if dimension_name is None and 'dimensionName' in kwargs: + dimension_name = kwargs['dimensionName'] + if dimension_key is not None: - pulumi.set(__self__, "dimension_key", dimension_key) + _setter("dimension_key", dimension_key) if dimension_name is not None: - pulumi.set(__self__, "dimension_name", dimension_name) + _setter("dimension_name", dimension_name) @property @pulumi.getter(name="dimensionKey") @@ -1273,18 +1606,43 @@ def __init__(__self__, *, :param Sequence['CostCategoryRuleRuleOrArgs'] ors: Return results that match both `Dimension` object. :param 'CostCategoryRuleRuleTagsArgs' tags: Configuration block for the specific `Tag` to use for `Expression`. See below. """ + CostCategoryRuleRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + cost_category=cost_category, + dimension=dimension, + not_=not_, + ors=ors, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[Sequence['outputs.CostCategoryRuleRuleAnd']] = None, + cost_category: Optional['outputs.CostCategoryRuleRuleCostCategory'] = None, + dimension: Optional['outputs.CostCategoryRuleRuleDimension'] = None, + not_: Optional['outputs.CostCategoryRuleRuleNot'] = None, + ors: Optional[Sequence['outputs.CostCategoryRuleRuleOr']] = None, + tags: Optional['outputs.CostCategoryRuleRuleTags'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if not_ is None and 'not' in kwargs: + not_ = kwargs['not'] + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if not_ is not None: - pulumi.set(__self__, "not_", not_) + _setter("not_", not_) if ors is not None: - pulumi.set(__self__, "ors", ors) + _setter("ors", ors) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -1363,12 +1721,29 @@ def __init__(__self__, *, :param 'CostCategoryRuleRuleAndDimensionArgs' dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param 'CostCategoryRuleRuleAndTagsArgs' tags: Key-value mapping 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. """ + CostCategoryRuleRuleAnd._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['outputs.CostCategoryRuleRuleAndCostCategory'] = None, + dimension: Optional['outputs.CostCategoryRuleRuleAndDimension'] = None, + tags: Optional['outputs.CostCategoryRuleRuleAndTags'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -1423,12 +1798,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleAndCostCategory._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1483,12 +1875,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleAndDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1543,12 +1952,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleAndTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1603,12 +2029,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleCostCategory._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1663,12 +2106,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1723,12 +2183,29 @@ def __init__(__self__, *, :param 'CostCategoryRuleRuleNotDimensionArgs' dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param 'CostCategoryRuleRuleNotTagsArgs' tags: Key-value mapping 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. """ + CostCategoryRuleRuleNot._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['outputs.CostCategoryRuleRuleNotCostCategory'] = None, + dimension: Optional['outputs.CostCategoryRuleRuleNotDimension'] = None, + tags: Optional['outputs.CostCategoryRuleRuleNotTags'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -1783,12 +2260,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleNotCostCategory._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1843,12 +2337,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleNotDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1903,12 +2414,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleNotTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1963,12 +2491,29 @@ def __init__(__self__, *, :param 'CostCategoryRuleRuleOrDimensionArgs' dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param 'CostCategoryRuleRuleOrTagsArgs' tags: Key-value mapping 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. """ + CostCategoryRuleRuleOr._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['outputs.CostCategoryRuleRuleOrCostCategory'] = None, + dimension: Optional['outputs.CostCategoryRuleRuleOrDimension'] = None, + tags: Optional['outputs.CostCategoryRuleRuleOrTags'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -2023,12 +2568,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleOrCostCategory._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2083,12 +2645,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleOrDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2143,12 +2722,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleOrTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2203,12 +2799,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + CostCategoryRuleRuleTags._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2248,11 +2861,34 @@ def __init__(__self__, *, :param Sequence[str] targets: Cost Category values that you want to split costs across. These values can't be used as a source in other split charge rules. :param Sequence['CostCategorySplitChargeRuleParameterArgs'] parameters: Configuration block for the parameters for a split charge method. This is only required for the `FIXED` method. See below. """ - pulumi.set(__self__, "method", method) - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "targets", targets) + CostCategorySplitChargeRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + method=method, + source=source, + targets=targets, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + method: Optional[str] = None, + source: Optional[str] = None, + targets: Optional[Sequence[str]] = None, + parameters: Optional[Sequence['outputs.CostCategorySplitChargeRuleParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if method is None: + raise TypeError("Missing 'method' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if targets is None: + raise TypeError("Missing 'targets' argument") + + _setter("method", method) + _setter("source", source) + _setter("targets", targets) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -2296,10 +2932,23 @@ def __init__(__self__, *, :param str type: Parameter type. :param Sequence[str] values: Parameter values. """ + CostCategorySplitChargeRuleParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -2331,10 +2980,37 @@ def __init__(__self__, *, :param str type: Parameter type. :param str value: Default value for the cost category. """ - pulumi.set(__self__, "inherited_values", inherited_values) - pulumi.set(__self__, "rules", rules) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GetCostCategoryRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + inherited_values=inherited_values, + rules=rules, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inherited_values: Optional[Sequence['outputs.GetCostCategoryRuleInheritedValueResult']] = None, + rules: Optional[Sequence['outputs.GetCostCategoryRuleRuleResult']] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inherited_values is None and 'inheritedValues' in kwargs: + inherited_values = kwargs['inheritedValues'] + if inherited_values is None: + raise TypeError("Missing 'inherited_values' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("inherited_values", inherited_values) + _setter("rules", rules) + _setter("type", type) + _setter("value", value) @property @pulumi.getter(name="inheritedValues") @@ -2378,8 +3054,29 @@ def __init__(__self__, *, :param str dimension_key: Key to extract cost category values. :param str dimension_name: Name of the dimension that's used to group costs. If you specify `LINKED_ACCOUNT_NAME`, the cost category value is based on account name. If you specify `TAG`, the cost category value will be based on the value of the specified tag key. Valid values are `LINKED_ACCOUNT_NAME`, `TAG` """ - pulumi.set(__self__, "dimension_key", dimension_key) - pulumi.set(__self__, "dimension_name", dimension_name) + GetCostCategoryRuleInheritedValueResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimension_key=dimension_key, + dimension_name=dimension_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimension_key: Optional[str] = None, + dimension_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimension_key is None and 'dimensionKey' in kwargs: + dimension_key = kwargs['dimensionKey'] + if dimension_key is None: + raise TypeError("Missing 'dimension_key' argument") + if dimension_name is None and 'dimensionName' in kwargs: + dimension_name = kwargs['dimensionName'] + if dimension_name is None: + raise TypeError("Missing 'dimension_name' argument") + + _setter("dimension_key", dimension_key) + _setter("dimension_name", dimension_name) @property @pulumi.getter(name="dimensionKey") @@ -2415,12 +3112,47 @@ def __init__(__self__, *, :param Sequence['GetCostCategoryRuleRuleOrArgs'] ors: Return results that match either `Dimension` object. :param Sequence['GetCostCategoryRuleRuleTagArgs'] tags: Configuration block for the specific `Tag` to use for `Expression`. See below. """ - pulumi.set(__self__, "ands", ands) - pulumi.set(__self__, "cost_categories", cost_categories) - pulumi.set(__self__, "dimensions", dimensions) - pulumi.set(__self__, "nots", nots) - pulumi.set(__self__, "ors", ors) - pulumi.set(__self__, "tags", tags) + GetCostCategoryRuleRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + cost_categories=cost_categories, + dimensions=dimensions, + nots=nots, + ors=ors, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[Sequence['outputs.GetCostCategoryRuleRuleAndResult']] = None, + cost_categories: Optional[Sequence['outputs.GetCostCategoryRuleRuleCostCategoryResult']] = None, + dimensions: Optional[Sequence['outputs.GetCostCategoryRuleRuleDimensionResult']] = None, + nots: Optional[Sequence['outputs.GetCostCategoryRuleRuleNotResult']] = None, + ors: Optional[Sequence['outputs.GetCostCategoryRuleRuleOrResult']] = None, + tags: Optional[Sequence['outputs.GetCostCategoryRuleRuleTagResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ands is None: + raise TypeError("Missing 'ands' argument") + if cost_categories is None and 'costCategories' in kwargs: + cost_categories = kwargs['costCategories'] + if cost_categories is None: + raise TypeError("Missing 'cost_categories' argument") + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + if nots is None: + raise TypeError("Missing 'nots' argument") + if ors is None: + raise TypeError("Missing 'ors' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("ands", ands) + _setter("cost_categories", cost_categories) + _setter("dimensions", dimensions) + _setter("nots", nots) + _setter("ors", ors) + _setter("tags", tags) @property @pulumi.getter @@ -2482,9 +3214,32 @@ def __init__(__self__, *, :param Sequence['GetCostCategoryRuleRuleAndDimensionArgs'] dimensions: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param Sequence['GetCostCategoryRuleRuleAndTagArgs'] tags: Configuration block for the specific `Tag` to use for `Expression`. See below. """ - pulumi.set(__self__, "cost_categories", cost_categories) - pulumi.set(__self__, "dimensions", dimensions) - pulumi.set(__self__, "tags", tags) + GetCostCategoryRuleRuleAndResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_categories=cost_categories, + dimensions=dimensions, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_categories: Optional[Sequence['outputs.GetCostCategoryRuleRuleAndCostCategoryResult']] = None, + dimensions: Optional[Sequence['outputs.GetCostCategoryRuleRuleAndDimensionResult']] = None, + tags: Optional[Sequence['outputs.GetCostCategoryRuleRuleAndTagResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_categories is None and 'costCategories' in kwargs: + cost_categories = kwargs['costCategories'] + if cost_categories is None: + raise TypeError("Missing 'cost_categories' argument") + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("cost_categories", cost_categories) + _setter("dimensions", dimensions) + _setter("tags", tags) @property @pulumi.getter(name="costCategories") @@ -2522,9 +3277,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleAndCostCategoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -2562,9 +3340,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleAndDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -2602,9 +3403,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleAndTagResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -2642,9 +3466,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleCostCategoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -2682,9 +3529,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -2722,9 +3592,32 @@ def __init__(__self__, *, :param Sequence['GetCostCategoryRuleRuleNotDimensionArgs'] dimensions: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param Sequence['GetCostCategoryRuleRuleNotTagArgs'] tags: Configuration block for the specific `Tag` to use for `Expression`. See below. """ - pulumi.set(__self__, "cost_categories", cost_categories) - pulumi.set(__self__, "dimensions", dimensions) - pulumi.set(__self__, "tags", tags) + GetCostCategoryRuleRuleNotResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_categories=cost_categories, + dimensions=dimensions, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_categories: Optional[Sequence['outputs.GetCostCategoryRuleRuleNotCostCategoryResult']] = None, + dimensions: Optional[Sequence['outputs.GetCostCategoryRuleRuleNotDimensionResult']] = None, + tags: Optional[Sequence['outputs.GetCostCategoryRuleRuleNotTagResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_categories is None and 'costCategories' in kwargs: + cost_categories = kwargs['costCategories'] + if cost_categories is None: + raise TypeError("Missing 'cost_categories' argument") + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("cost_categories", cost_categories) + _setter("dimensions", dimensions) + _setter("tags", tags) @property @pulumi.getter(name="costCategories") @@ -2762,9 +3655,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleNotCostCategoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -2802,9 +3718,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleNotDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -2842,9 +3781,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleNotTagResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -2882,9 +3844,32 @@ def __init__(__self__, *, :param Sequence['GetCostCategoryRuleRuleOrDimensionArgs'] dimensions: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param Sequence['GetCostCategoryRuleRuleOrTagArgs'] tags: Configuration block for the specific `Tag` to use for `Expression`. See below. """ - pulumi.set(__self__, "cost_categories", cost_categories) - pulumi.set(__self__, "dimensions", dimensions) - pulumi.set(__self__, "tags", tags) + GetCostCategoryRuleRuleOrResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_categories=cost_categories, + dimensions=dimensions, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_categories: Optional[Sequence['outputs.GetCostCategoryRuleRuleOrCostCategoryResult']] = None, + dimensions: Optional[Sequence['outputs.GetCostCategoryRuleRuleOrDimensionResult']] = None, + tags: Optional[Sequence['outputs.GetCostCategoryRuleRuleOrTagResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_categories is None and 'costCategories' in kwargs: + cost_categories = kwargs['costCategories'] + if cost_categories is None: + raise TypeError("Missing 'cost_categories' argument") + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("cost_categories", cost_categories) + _setter("dimensions", dimensions) + _setter("tags", tags) @property @pulumi.getter(name="costCategories") @@ -2922,9 +3907,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleOrCostCategoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -2962,9 +3970,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleOrDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -3002,9 +4033,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleOrTagResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -3042,9 +4096,32 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "match_options", match_options) - pulumi.set(__self__, "values", values) + GetCostCategoryRuleRuleTagResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if match_options is None: + raise TypeError("Missing 'match_options' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("match_options", match_options) + _setter("values", values) @property @pulumi.getter @@ -3084,10 +4161,35 @@ def __init__(__self__, *, :param str source: Cost Category value that you want to split. :param Sequence[str] targets: Cost Category values that you want to split costs across. These values can't be used as a source in other split charge rules. """ - pulumi.set(__self__, "method", method) - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "targets", targets) + GetCostCategorySplitChargeRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + method=method, + parameters=parameters, + source=source, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + method: Optional[str] = None, + parameters: Optional[Sequence['outputs.GetCostCategorySplitChargeRuleParameterResult']] = None, + source: Optional[str] = None, + targets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if method is None: + raise TypeError("Missing 'method' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if targets is None: + raise TypeError("Missing 'targets' argument") + + _setter("method", method) + _setter("parameters", parameters) + _setter("source", source) + _setter("targets", targets) @property @pulumi.getter @@ -3131,8 +4233,25 @@ def __init__(__self__, *, :param str type: Parameter type. :param Sequence[str] values: Parameter values. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "values", values) + GetCostCategorySplitChargeRuleParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("type", type) + _setter("values", values) @property @pulumi.getter @@ -3168,18 +4287,43 @@ def __init__(__self__, *, :param Sequence['GetTagsFilterOrArgs'] ors: Return results that match both `Dimension` object. :param 'GetTagsFilterTagsArgs' tags: Tags that match your request. """ + GetTagsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + cost_category=cost_category, + dimension=dimension, + not_=not_, + ors=ors, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[Sequence['outputs.GetTagsFilterAndResult']] = None, + cost_category: Optional['outputs.GetTagsFilterCostCategoryResult'] = None, + dimension: Optional['outputs.GetTagsFilterDimensionResult'] = None, + not_: Optional['outputs.GetTagsFilterNotResult'] = None, + ors: Optional[Sequence['outputs.GetTagsFilterOrResult']] = None, + tags: Optional['outputs.GetTagsFilterTagsResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if not_ is None and 'not' in kwargs: + not_ = kwargs['not'] + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if not_ is not None: - pulumi.set(__self__, "not_", not_) + _setter("not_", not_) if ors is not None: - pulumi.set(__self__, "ors", ors) + _setter("ors", ors) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -3241,12 +4385,29 @@ def __init__(__self__, *, :param 'GetTagsFilterAndDimensionArgs' dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param 'GetTagsFilterAndTagsArgs' tags: Tags that match your request. """ + GetTagsFilterAndResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['outputs.GetTagsFilterAndCostCategoryResult'] = None, + dimension: Optional['outputs.GetTagsFilterAndDimensionResult'] = None, + tags: Optional['outputs.GetTagsFilterAndTagsResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -3284,12 +4445,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterAndCostCategoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3327,12 +4505,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterAndDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3370,12 +4565,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterAndTagsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3413,12 +4625,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterCostCategoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3456,12 +4685,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3499,12 +4745,29 @@ def __init__(__self__, *, :param 'GetTagsFilterNotDimensionArgs' dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param 'GetTagsFilterNotTagsArgs' tags: Tags that match your request. """ + GetTagsFilterNotResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['outputs.GetTagsFilterNotCostCategoryResult'] = None, + dimension: Optional['outputs.GetTagsFilterNotDimensionResult'] = None, + tags: Optional['outputs.GetTagsFilterNotTagsResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -3542,12 +4805,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterNotCostCategoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3585,12 +4865,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterNotDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3628,12 +4925,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterNotTagsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3671,12 +4985,29 @@ def __init__(__self__, *, :param 'GetTagsFilterOrDimensionArgs' dimension: Configuration block for the specific `Dimension` to use for `Expression`. See below. :param 'GetTagsFilterOrTagsArgs' tags: Tags that match your request. """ + GetTagsFilterOrResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cost_category=cost_category, + dimension=dimension, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cost_category: Optional['outputs.GetTagsFilterOrCostCategoryResult'] = None, + dimension: Optional['outputs.GetTagsFilterOrDimensionResult'] = None, + tags: Optional['outputs.GetTagsFilterOrTagsResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cost_category is None and 'costCategory' in kwargs: + cost_category = kwargs['costCategory'] + if cost_category is not None: - pulumi.set(__self__, "cost_category", cost_category) + _setter("cost_category", cost_category) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="costCategory") @@ -3714,12 +5045,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterOrCostCategoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3757,12 +5105,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterOrDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3800,12 +5165,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterOrTagsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3843,12 +5225,29 @@ def __init__(__self__, *, :param Sequence[str] match_options: Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is `EQUALS` and `CASE_SENSITIVE`. Valid values are: `EQUALS`, `ABSENT`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CASE_SENSITIVE`, `CASE_INSENSITIVE`. :param Sequence[str] values: Specific value of the Cost Category. """ + GetTagsFilterTagsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + match_options=match_options, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + match_options: Optional[Sequence[str]] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_options is None and 'matchOptions' in kwargs: + match_options = kwargs['matchOptions'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if match_options is not None: - pulumi.set(__self__, "match_options", match_options) + _setter("match_options", match_options) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -3884,10 +5283,25 @@ def __init__(__self__, *, :param str key: key that's used to sort the data. Valid values are: `BlendedCost`, `UnblendedCost`, `AmortizedCost`, `NetAmortizedCost`, `NetUnblendedCost`, `UsageQuantity`, `NormalizedUsageAmount`. :param str sort_order: order that's used to sort the data. Valid values are: `ASCENDING`, `DESCENDING`. """ + GetTagsSortByResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + sort_order=sort_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + sort_order: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sort_order is None and 'sortOrder' in kwargs: + sort_order = kwargs['sortOrder'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if sort_order is not None: - pulumi.set(__self__, "sort_order", sort_order) + _setter("sort_order", sort_order) @property @pulumi.getter @@ -3915,8 +5329,25 @@ def __init__(__self__, *, :param str end: Beginning of the time period. :param str start: End of the time period. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + GetTagsTimePeriodResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is None: + raise TypeError("Missing 'end' argument") + if start is None: + raise TypeError("Missing 'start' argument") + + _setter("end", end) + _setter("start", start) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/cur/get_report_definition.py b/sdk/python/pulumi_aws/cur/get_report_definition.py index b1775fdd8f4..b5a2f7a564b 100644 --- a/sdk/python/pulumi_aws/cur/get_report_definition.py +++ b/sdk/python/pulumi_aws/cur/get_report_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/cur/report_definition.py b/sdk/python/pulumi_aws/cur/report_definition.py index 42734086598..3591d02232b 100644 --- a/sdk/python/pulumi_aws/cur/report_definition.py +++ b/sdk/python/pulumi_aws/cur/report_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ReportDefinitionArgs', 'ReportDefinition'] @@ -39,21 +39,84 @@ def __init__(__self__, *, :param pulumi.Input[str] report_versioning: Overwrite the previous version of each report or to deliver the report in addition to the previous versions. Valid values are: `CREATE_NEW_REPORT` and `OVERWRITE_REPORT`. :param pulumi.Input[str] s3_prefix: Report path prefix. Limited to 256 characters. """ - pulumi.set(__self__, "additional_schema_elements", additional_schema_elements) - pulumi.set(__self__, "compression", compression) - pulumi.set(__self__, "format", format) - pulumi.set(__self__, "report_name", report_name) - pulumi.set(__self__, "s3_bucket", s3_bucket) - pulumi.set(__self__, "s3_region", s3_region) - pulumi.set(__self__, "time_unit", time_unit) + ReportDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_schema_elements=additional_schema_elements, + compression=compression, + format=format, + report_name=report_name, + s3_bucket=s3_bucket, + s3_region=s3_region, + time_unit=time_unit, + additional_artifacts=additional_artifacts, + refresh_closed_reports=refresh_closed_reports, + report_versioning=report_versioning, + s3_prefix=s3_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_schema_elements: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + compression: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + report_name: Optional[pulumi.Input[str]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_region: Optional[pulumi.Input[str]] = None, + time_unit: Optional[pulumi.Input[str]] = None, + additional_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + refresh_closed_reports: Optional[pulumi.Input[bool]] = None, + report_versioning: Optional[pulumi.Input[str]] = None, + s3_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_schema_elements is None and 'additionalSchemaElements' in kwargs: + additional_schema_elements = kwargs['additionalSchemaElements'] + if additional_schema_elements is None: + raise TypeError("Missing 'additional_schema_elements' argument") + if compression is None: + raise TypeError("Missing 'compression' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if report_name is None and 'reportName' in kwargs: + report_name = kwargs['reportName'] + if report_name is None: + raise TypeError("Missing 'report_name' argument") + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_bucket is None: + raise TypeError("Missing 's3_bucket' argument") + if s3_region is None and 's3Region' in kwargs: + s3_region = kwargs['s3Region'] + if s3_region is None: + raise TypeError("Missing 's3_region' argument") + if time_unit is None and 'timeUnit' in kwargs: + time_unit = kwargs['timeUnit'] + if time_unit is None: + raise TypeError("Missing 'time_unit' argument") + if additional_artifacts is None and 'additionalArtifacts' in kwargs: + additional_artifacts = kwargs['additionalArtifacts'] + if refresh_closed_reports is None and 'refreshClosedReports' in kwargs: + refresh_closed_reports = kwargs['refreshClosedReports'] + if report_versioning is None and 'reportVersioning' in kwargs: + report_versioning = kwargs['reportVersioning'] + if s3_prefix is None and 's3Prefix' in kwargs: + s3_prefix = kwargs['s3Prefix'] + + _setter("additional_schema_elements", additional_schema_elements) + _setter("compression", compression) + _setter("format", format) + _setter("report_name", report_name) + _setter("s3_bucket", s3_bucket) + _setter("s3_region", s3_region) + _setter("time_unit", time_unit) if additional_artifacts is not None: - pulumi.set(__self__, "additional_artifacts", additional_artifacts) + _setter("additional_artifacts", additional_artifacts) if refresh_closed_reports is not None: - pulumi.set(__self__, "refresh_closed_reports", refresh_closed_reports) + _setter("refresh_closed_reports", refresh_closed_reports) if report_versioning is not None: - pulumi.set(__self__, "report_versioning", report_versioning) + _setter("report_versioning", report_versioning) if s3_prefix is not None: - pulumi.set(__self__, "s3_prefix", s3_prefix) + _setter("s3_prefix", s3_prefix) @property @pulumi.getter(name="additionalSchemaElements") @@ -218,30 +281,81 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_region: Region of the existing S3 bucket to hold generated reports. :param pulumi.Input[str] time_unit: The frequency on which report data are measured and displayed. Valid values are: `DAILY`, `HOURLY`, `MONTHLY`. """ + _ReportDefinitionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_artifacts=additional_artifacts, + additional_schema_elements=additional_schema_elements, + arn=arn, + compression=compression, + format=format, + refresh_closed_reports=refresh_closed_reports, + report_name=report_name, + report_versioning=report_versioning, + s3_bucket=s3_bucket, + s3_prefix=s3_prefix, + s3_region=s3_region, + time_unit=time_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_artifacts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + additional_schema_elements: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + compression: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + refresh_closed_reports: Optional[pulumi.Input[bool]] = None, + report_name: Optional[pulumi.Input[str]] = None, + report_versioning: Optional[pulumi.Input[str]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_prefix: Optional[pulumi.Input[str]] = None, + s3_region: Optional[pulumi.Input[str]] = None, + time_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_artifacts is None and 'additionalArtifacts' in kwargs: + additional_artifacts = kwargs['additionalArtifacts'] + if additional_schema_elements is None and 'additionalSchemaElements' in kwargs: + additional_schema_elements = kwargs['additionalSchemaElements'] + if refresh_closed_reports is None and 'refreshClosedReports' in kwargs: + refresh_closed_reports = kwargs['refreshClosedReports'] + if report_name is None and 'reportName' in kwargs: + report_name = kwargs['reportName'] + if report_versioning is None and 'reportVersioning' in kwargs: + report_versioning = kwargs['reportVersioning'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_prefix is None and 's3Prefix' in kwargs: + s3_prefix = kwargs['s3Prefix'] + if s3_region is None and 's3Region' in kwargs: + s3_region = kwargs['s3Region'] + if time_unit is None and 'timeUnit' in kwargs: + time_unit = kwargs['timeUnit'] + if additional_artifacts is not None: - pulumi.set(__self__, "additional_artifacts", additional_artifacts) + _setter("additional_artifacts", additional_artifacts) if additional_schema_elements is not None: - pulumi.set(__self__, "additional_schema_elements", additional_schema_elements) + _setter("additional_schema_elements", additional_schema_elements) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if compression is not None: - pulumi.set(__self__, "compression", compression) + _setter("compression", compression) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if refresh_closed_reports is not None: - pulumi.set(__self__, "refresh_closed_reports", refresh_closed_reports) + _setter("refresh_closed_reports", refresh_closed_reports) if report_name is not None: - pulumi.set(__self__, "report_name", report_name) + _setter("report_name", report_name) if report_versioning is not None: - pulumi.set(__self__, "report_versioning", report_versioning) + _setter("report_versioning", report_versioning) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) if s3_prefix is not None: - pulumi.set(__self__, "s3_prefix", s3_prefix) + _setter("s3_prefix", s3_prefix) if s3_region is not None: - pulumi.set(__self__, "s3_region", s3_region) + _setter("s3_region", s3_region) if time_unit is not None: - pulumi.set(__self__, "time_unit", time_unit) + _setter("time_unit", time_unit) @property @pulumi.getter(name="additionalArtifacts") @@ -507,6 +621,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReportDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dataexchange/data_set.py b/sdk/python/pulumi_aws/dataexchange/data_set.py index 206dce8c0f3..3819e39d262 100644 --- a/sdk/python/pulumi_aws/dataexchange/data_set.py +++ b/sdk/python/pulumi_aws/dataexchange/data_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DataSetArgs', 'DataSet'] @@ -25,12 +25,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the data set. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "asset_type", asset_type) - pulumi.set(__self__, "description", description) + DataSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + asset_type=asset_type, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + asset_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if asset_type is None and 'assetType' in kwargs: + asset_type = kwargs['assetType'] + if asset_type is None: + raise TypeError("Missing 'asset_type' argument") + if description is None: + raise TypeError("Missing 'description' argument") + + _setter("asset_type", asset_type) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="assetType") @@ -99,21 +122,46 @@ def __init__(__self__, *, :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. """ + _DataSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + asset_type=asset_type, + description=description, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + asset_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if asset_type is None and 'assetType' in kwargs: + asset_type = kwargs['assetType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if asset_type is not None: - pulumi.set(__self__, "asset_type", asset_type) + _setter("asset_type", asset_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -268,6 +316,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dataexchange/revision.py b/sdk/python/pulumi_aws/dataexchange/revision.py index 87d564320e8..d67cf7aa117 100644 --- a/sdk/python/pulumi_aws/dataexchange/revision.py +++ b/sdk/python/pulumi_aws/dataexchange/revision.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RevisionArgs', 'Revision'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] comment: An optional comment about the revision. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "data_set_id", data_set_id) + RevisionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_id=data_set_id, + comment=comment, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_id: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_id is None and 'dataSetId' in kwargs: + data_set_id = kwargs['dataSetId'] + if data_set_id is None: + raise TypeError("Missing 'data_set_id' argument") + + _setter("data_set_id", data_set_id) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dataSetId") @@ -84,21 +103,48 @@ def __init__(__self__, *, :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. """ + _RevisionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + comment=comment, + data_set_id=data_set_id, + revision_id=revision_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + data_set_id: Optional[pulumi.Input[str]] = None, + revision_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_id is None and 'dataSetId' in kwargs: + data_set_id = kwargs['dataSetId'] + if revision_id is None and 'revisionId' in kwargs: + revision_id = kwargs['revisionId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if data_set_id is not None: - pulumi.set(__self__, "data_set_id", data_set_id) + _setter("data_set_id", data_set_id) if revision_id is not None: - pulumi.set(__self__, "revision_id", revision_id) + _setter("revision_id", revision_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -247,6 +293,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RevisionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/datapipeline/_inputs.py b/sdk/python/pulumi_aws/datapipeline/_inputs.py index ac6e07e7149..d9b89ec66bd 100644 --- a/sdk/python/pulumi_aws/datapipeline/_inputs.py +++ b/sdk/python/pulumi_aws/datapipeline/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -27,9 +27,24 @@ def __init__(__self__, *, :param pulumi.Input[str] id: ID of the parameter object. :param pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionParameterObjectAttributeArgs']]] attributes: Configuration block for attributes of the parameter object. See below """ - pulumi.set(__self__, "id", id) + PipelineDefinitionParameterObjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + attributes=attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + attributes: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionParameterObjectAttributeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) @property @pulumi.getter @@ -65,8 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Field identifier. :param pulumi.Input[str] string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "string_value", string_value) + PipelineDefinitionParameterObjectAttributeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + string_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if string_value is None: + raise TypeError("Missing 'string_value' argument") + + _setter("key", key) + _setter("string_value", string_value) @property @pulumi.getter @@ -102,8 +136,27 @@ def __init__(__self__, *, :param pulumi.Input[str] id: ID of the parameter value. :param pulumi.Input[str] string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "string_value", string_value) + PipelineDefinitionParameterValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + string_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if string_value is None: + raise TypeError("Missing 'string_value' argument") + + _setter("id", id) + _setter("string_value", string_value) @property @pulumi.getter @@ -141,10 +194,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: ARN of the storage connector. :param pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionPipelineObjectFieldArgs']]] fields: Configuration block for Key-value pairs that define the properties of the object. See below """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + PipelineDefinitionPipelineObjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + fields=fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + fields: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionPipelineObjectFieldArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("id", id) + _setter("name", name) if fields is not None: - pulumi.set(__self__, "fields", fields) + _setter("fields", fields) @property @pulumi.getter @@ -194,11 +266,32 @@ def __init__(__self__, *, :param pulumi.Input[str] ref_value: Field value, expressed as the identifier of another object :param pulumi.Input[str] string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "key", key) + PipelineDefinitionPipelineObjectFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + ref_value=ref_value, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + ref_value: Optional[pulumi.Input[str]] = None, + string_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if ref_value is None and 'refValue' in kwargs: + ref_value = kwargs['refValue'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + + _setter("key", key) if ref_value is not None: - pulumi.set(__self__, "ref_value", ref_value) + _setter("ref_value", ref_value) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter @@ -246,8 +339,27 @@ def __init__(__self__, *, :param str id: ID of the object. :param str string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "string_value", string_value) + GetPipelineDefinitionParameterValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if string_value is None: + raise TypeError("Missing 'string_value' argument") + + _setter("id", id) + _setter("string_value", string_value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/datapipeline/get_pipeline.py b/sdk/python/pulumi_aws/datapipeline/get_pipeline.py index 1e334a52649..a150c2e1727 100644 --- a/sdk/python/pulumi_aws/datapipeline/get_pipeline.py +++ b/sdk/python/pulumi_aws/datapipeline/get_pipeline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/datapipeline/get_pipeline_definition.py b/sdk/python/pulumi_aws/datapipeline/get_pipeline_definition.py index 8d7d6a7c6ca..9a286248819 100644 --- a/sdk/python/pulumi_aws/datapipeline/get_pipeline_definition.py +++ b/sdk/python/pulumi_aws/datapipeline/get_pipeline_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/datapipeline/outputs.py b/sdk/python/pulumi_aws/datapipeline/outputs.py index b2eb078fac0..7c33394099a 100644 --- a/sdk/python/pulumi_aws/datapipeline/outputs.py +++ b/sdk/python/pulumi_aws/datapipeline/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -32,9 +32,24 @@ def __init__(__self__, *, :param str id: ID of the parameter object. :param Sequence['PipelineDefinitionParameterObjectAttributeArgs'] attributes: Configuration block for attributes of the parameter object. See below """ - pulumi.set(__self__, "id", id) + PipelineDefinitionParameterObject._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + attributes=attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + attributes: Optional[Sequence['outputs.PipelineDefinitionParameterObjectAttribute']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) @property @pulumi.getter @@ -79,8 +94,27 @@ def __init__(__self__, *, :param str key: Field identifier. :param str string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "string_value", string_value) + PipelineDefinitionParameterObjectAttribute._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if string_value is None: + raise TypeError("Missing 'string_value' argument") + + _setter("key", key) + _setter("string_value", string_value) @property @pulumi.getter @@ -125,8 +159,27 @@ def __init__(__self__, *, :param str id: ID of the parameter value. :param str string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "string_value", string_value) + PipelineDefinitionParameterValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if string_value is None: + raise TypeError("Missing 'string_value' argument") + + _setter("id", id) + _setter("string_value", string_value) @property @pulumi.getter @@ -156,10 +209,29 @@ def __init__(__self__, *, :param str name: ARN of the storage connector. :param Sequence['PipelineDefinitionPipelineObjectFieldArgs'] fields: Configuration block for Key-value pairs that define the properties of the object. See below """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + PipelineDefinitionPipelineObject._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + fields=fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + fields: Optional[Sequence['outputs.PipelineDefinitionPipelineObjectField']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("id", id) + _setter("name", name) if fields is not None: - pulumi.set(__self__, "fields", fields) + _setter("fields", fields) @property @pulumi.getter @@ -216,11 +288,32 @@ def __init__(__self__, *, :param str ref_value: Field value, expressed as the identifier of another object :param str string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "key", key) + PipelineDefinitionPipelineObjectField._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + ref_value=ref_value, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + ref_value: Optional[str] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if ref_value is None and 'refValue' in kwargs: + ref_value = kwargs['refValue'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + + _setter("key", key) if ref_value is not None: - pulumi.set(__self__, "ref_value", ref_value) + _setter("ref_value", ref_value) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter @@ -255,8 +348,25 @@ def __init__(__self__, *, """ :param str id: ID of the object. """ - pulumi.set(__self__, "attributes", attributes) - pulumi.set(__self__, "id", id) + GetPipelineDefinitionParameterObjectResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[Sequence['outputs.GetPipelineDefinitionParameterObjectAttributeResult']] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attributes is None: + raise TypeError("Missing 'attributes' argument") + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("attributes", attributes) + _setter("id", id) @property @pulumi.getter @@ -281,8 +391,27 @@ def __init__(__self__, *, :param str key: Field identifier. :param str string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "string_value", string_value) + GetPipelineDefinitionParameterObjectAttributeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if string_value is None: + raise TypeError("Missing 'string_value' argument") + + _setter("key", key) + _setter("string_value", string_value) @property @pulumi.getter @@ -310,8 +439,27 @@ def __init__(__self__, *, :param str id: ID of the object. :param str string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "string_value", string_value) + GetPipelineDefinitionParameterValueResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if string_value is None: + raise TypeError("Missing 'string_value' argument") + + _setter("id", id) + _setter("string_value", string_value) @property @pulumi.getter @@ -341,10 +489,29 @@ def __init__(__self__, *, :param str name: ARN of the storage connector. :param Sequence['GetPipelineDefinitionPipelineObjectFieldArgs'] fields: Key-value pairs that define the properties of the object. See below """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetPipelineDefinitionPipelineObjectResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + fields=fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + fields: Optional[Sequence['outputs.GetPipelineDefinitionPipelineObjectFieldResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("id", id) + _setter("name", name) if fields is not None: - pulumi.set(__self__, "fields", fields) + _setter("fields", fields) @property @pulumi.getter @@ -382,9 +549,34 @@ def __init__(__self__, *, :param str ref_value: Field value, expressed as the identifier of another object :param str string_value: Field value, expressed as a String. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "ref_value", ref_value) - pulumi.set(__self__, "string_value", string_value) + GetPipelineDefinitionPipelineObjectFieldResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + ref_value=ref_value, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + ref_value: Optional[str] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if ref_value is None and 'refValue' in kwargs: + ref_value = kwargs['refValue'] + if ref_value is None: + raise TypeError("Missing 'ref_value' argument") + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if string_value is None: + raise TypeError("Missing 'string_value' argument") + + _setter("key", key) + _setter("ref_value", ref_value) + _setter("string_value", string_value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/datapipeline/pipeline.py b/sdk/python/pulumi_aws/datapipeline/pipeline.py index 9872bcd4b80..352a50daded 100644 --- a/sdk/python/pulumi_aws/datapipeline/pipeline.py +++ b/sdk/python/pulumi_aws/datapipeline/pipeline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PipelineArgs', 'Pipeline'] @@ -23,12 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of Pipeline. :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. """ + PipelineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -81,17 +96,36 @@ def __init__(__self__, *, :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. """ + _PipelineState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -216,6 +250,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PipelineArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/datapipeline/pipeline_definition.py b/sdk/python/pulumi_aws/datapipeline/pipeline_definition.py index 1ee47b2a983..9f038ea4369 100644 --- a/sdk/python/pulumi_aws/datapipeline/pipeline_definition.py +++ b/sdk/python/pulumi_aws/datapipeline/pipeline_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,12 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionParameterObjectArgs']]] parameter_objects: Configuration block for the parameter objects used in the pipeline definition. See below :param pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionParameterValueArgs']]] parameter_values: Configuration block for the parameter values used in the pipeline definition. See below """ - pulumi.set(__self__, "pipeline_id", pipeline_id) - pulumi.set(__self__, "pipeline_objects", pipeline_objects) + PipelineDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pipeline_id=pipeline_id, + pipeline_objects=pipeline_objects, + parameter_objects=parameter_objects, + parameter_values=parameter_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pipeline_id: Optional[pulumi.Input[str]] = None, + pipeline_objects: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionPipelineObjectArgs']]]] = None, + parameter_objects: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionParameterObjectArgs']]]] = None, + parameter_values: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionParameterValueArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pipeline_id is None and 'pipelineId' in kwargs: + pipeline_id = kwargs['pipelineId'] + if pipeline_id is None: + raise TypeError("Missing 'pipeline_id' argument") + if pipeline_objects is None and 'pipelineObjects' in kwargs: + pipeline_objects = kwargs['pipelineObjects'] + if pipeline_objects is None: + raise TypeError("Missing 'pipeline_objects' argument") + if parameter_objects is None and 'parameterObjects' in kwargs: + parameter_objects = kwargs['parameterObjects'] + if parameter_values is None and 'parameterValues' in kwargs: + parameter_values = kwargs['parameterValues'] + + _setter("pipeline_id", pipeline_id) + _setter("pipeline_objects", pipeline_objects) if parameter_objects is not None: - pulumi.set(__self__, "parameter_objects", parameter_objects) + _setter("parameter_objects", parameter_objects) if parameter_values is not None: - pulumi.set(__self__, "parameter_values", parameter_values) + _setter("parameter_values", parameter_values) @property @pulumi.getter(name="pipelineId") @@ -103,14 +132,39 @@ def __init__(__self__, *, The following arguments are optional: """ + _PipelineDefinitionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_objects=parameter_objects, + parameter_values=parameter_values, + pipeline_id=pipeline_id, + pipeline_objects=pipeline_objects, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_objects: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionParameterObjectArgs']]]] = None, + parameter_values: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionParameterValueArgs']]]] = None, + pipeline_id: Optional[pulumi.Input[str]] = None, + pipeline_objects: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineDefinitionPipelineObjectArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_objects is None and 'parameterObjects' in kwargs: + parameter_objects = kwargs['parameterObjects'] + if parameter_values is None and 'parameterValues' in kwargs: + parameter_values = kwargs['parameterValues'] + if pipeline_id is None and 'pipelineId' in kwargs: + pipeline_id = kwargs['pipelineId'] + if pipeline_objects is None and 'pipelineObjects' in kwargs: + pipeline_objects = kwargs['pipelineObjects'] + if parameter_objects is not None: - pulumi.set(__self__, "parameter_objects", parameter_objects) + _setter("parameter_objects", parameter_objects) if parameter_values is not None: - pulumi.set(__self__, "parameter_values", parameter_values) + _setter("parameter_values", parameter_values) if pipeline_id is not None: - pulumi.set(__self__, "pipeline_id", pipeline_id) + _setter("pipeline_id", pipeline_id) if pipeline_objects is not None: - pulumi.set(__self__, "pipeline_objects", pipeline_objects) + _setter("pipeline_objects", pipeline_objects) @property @pulumi.getter(name="parameterObjects") @@ -350,6 +404,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PipelineDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/datasync/_inputs.py b/sdk/python/pulumi_aws/datasync/_inputs.py index 21df31b709b..a9bcadeb3ee 100644 --- a/sdk/python/pulumi_aws/datasync/_inputs.py +++ b/sdk/python/pulumi_aws/datasync/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,8 +41,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_arns: List of Amazon Resource Names (ARNs) of the EC2 Security Groups that are associated with the EFS Mount Target. :param pulumi.Input[str] subnet_arn: Amazon Resource Name (ARN) of the EC2 Subnet that is associated with the EFS Mount Target. """ - pulumi.set(__self__, "security_group_arns", security_group_arns) - pulumi.set(__self__, "subnet_arn", subnet_arn) + EfsLocationEc2ConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_arns=security_group_arns, + subnet_arn=subnet_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if security_group_arns is None: + raise TypeError("Missing 'security_group_arns' argument") + if subnet_arn is None and 'subnetArn' in kwargs: + subnet_arn = kwargs['subnetArn'] + if subnet_arn is None: + raise TypeError("Missing 'subnet_arn' argument") + + _setter("security_group_arns", security_group_arns) + _setter("subnet_arn", subnet_arn) @property @pulumi.getter(name="securityGroupArns") @@ -76,7 +97,20 @@ def __init__(__self__, *, """ :param pulumi.Input['FsxOpenZfsFileSystemProtocolNfsArgs'] nfs: Represents the Network File System (NFS) protocol that DataSync uses to access your FSx for OpenZFS file system. See below. """ - pulumi.set(__self__, "nfs", nfs) + FsxOpenZfsFileSystemProtocolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + nfs=nfs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nfs: Optional[pulumi.Input['FsxOpenZfsFileSystemProtocolNfsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nfs is None: + raise TypeError("Missing 'nfs' argument") + + _setter("nfs", nfs) @property @pulumi.getter @@ -98,7 +132,22 @@ def __init__(__self__, *, """ :param pulumi.Input['FsxOpenZfsFileSystemProtocolNfsMountOptionsArgs'] mount_options: Represents the mount options that are available for DataSync to access an NFS location. See below. """ - pulumi.set(__self__, "mount_options", mount_options) + FsxOpenZfsFileSystemProtocolNfsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_options=mount_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_options: Optional[pulumi.Input['FsxOpenZfsFileSystemProtocolNfsMountOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if mount_options is None: + raise TypeError("Missing 'mount_options' argument") + + _setter("mount_options", mount_options) @property @pulumi.getter(name="mountOptions") @@ -120,8 +169,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] version: The specific NFS version that you want DataSync to use for mounting your NFS share. Valid values: `AUTOMATIC`, `NFS3`, `NFS4_0` and `NFS4_1`. Default: `AUTOMATIC` """ + FsxOpenZfsFileSystemProtocolNfsMountOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -143,7 +203,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] token: A SAS token that provides permissions to access your Azure Blob Storage. """ - pulumi.set(__self__, "token", token) + LocationAzureBlobSasConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + token=token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if token is None: + raise TypeError("Missing 'token' argument") + + _setter("token", token) @property @pulumi.getter @@ -167,10 +240,23 @@ def __init__(__self__, *, :param pulumi.Input['LocationFsxOntapFileSystemProtocolNfsArgs'] nfs: Network File System (NFS) protocol that DataSync uses to access your FSx ONTAP file system. See NFS below. :param pulumi.Input['LocationFsxOntapFileSystemProtocolSmbArgs'] smb: Server Message Block (SMB) protocol that DataSync uses to access your FSx ONTAP file system. See [SMB] (#smb) below. """ + LocationFsxOntapFileSystemProtocolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + nfs=nfs, + smb=smb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nfs: Optional[pulumi.Input['LocationFsxOntapFileSystemProtocolNfsArgs']] = None, + smb: Optional[pulumi.Input['LocationFsxOntapFileSystemProtocolSmbArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nfs is not None: - pulumi.set(__self__, "nfs", nfs) + _setter("nfs", nfs) if smb is not None: - pulumi.set(__self__, "smb", smb) + _setter("smb", smb) @property @pulumi.getter @@ -204,7 +290,22 @@ def __init__(__self__, *, """ :param pulumi.Input['LocationFsxOntapFileSystemProtocolNfsMountOptionsArgs'] mount_options: Mount options that are available for DataSync to access an NFS location. See NFS Mount Options below. """ - pulumi.set(__self__, "mount_options", mount_options) + LocationFsxOntapFileSystemProtocolNfsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_options=mount_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_options: Optional[pulumi.Input['LocationFsxOntapFileSystemProtocolNfsMountOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if mount_options is None: + raise TypeError("Missing 'mount_options' argument") + + _setter("mount_options", mount_options) @property @pulumi.getter(name="mountOptions") @@ -226,8 +327,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] version: The specific NFS version that you want DataSync to use for mounting your NFS share. Valid values: `NFS3`. Default: `NFS3` """ + LocationFsxOntapFileSystemProtocolNfsMountOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -255,11 +367,36 @@ def __init__(__self__, *, :param pulumi.Input[str] user: Username that can mount the location and access the files, folders, and metadata that you need in the SVM. :param pulumi.Input[str] domain: Fully qualified domain name of the Microsoft Active Directory (AD) that your storage virtual machine belongs to. """ - pulumi.set(__self__, "mount_options", mount_options) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "user", user) + LocationFsxOntapFileSystemProtocolSmbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_options=mount_options, + password=password, + user=user, + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_options: Optional[pulumi.Input['LocationFsxOntapFileSystemProtocolSmbMountOptionsArgs']] = None, + password: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if mount_options is None: + raise TypeError("Missing 'mount_options' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if user is None: + raise TypeError("Missing 'user' argument") + + _setter("mount_options", mount_options) + _setter("password", password) + _setter("user", user) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) @property @pulumi.getter(name="mountOptions") @@ -317,8 +454,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] version: The specific NFS version that you want DataSync to use for mounting your NFS share. Valid values: `NFS3`. Default: `NFS3` """ + LocationFsxOntapFileSystemProtocolSmbMountOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -342,8 +490,25 @@ def __init__(__self__, *, :param pulumi.Input[str] hostname: The hostname of the NameNode in the HDFS cluster. This value is the IP address or Domain Name Service (DNS) name of the NameNode. An agent that's installed on-premises uses this hostname to communicate with the NameNode in the network. :param pulumi.Input[int] port: The port that the NameNode uses to listen to client requests. """ - pulumi.set(__self__, "hostname", hostname) - pulumi.set(__self__, "port", port) + LocationHdfsNameNodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostname=hostname, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostname: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostname is None: + raise TypeError("Missing 'hostname' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("hostname", hostname) + _setter("port", port) @property @pulumi.getter @@ -379,10 +544,27 @@ def __init__(__self__, *, :param pulumi.Input[str] data_transfer_protection: The data transfer protection setting configured on the HDFS cluster. This setting corresponds to your dfs.data.transfer.protection setting in the hdfs-site.xml file on your Hadoop cluster. Valid values are `DISABLED`, `AUTHENTICATION`, `INTEGRITY` and `PRIVACY`. :param pulumi.Input[str] rpc_protection: The RPC protection setting configured on the HDFS cluster. This setting corresponds to your hadoop.rpc.protection setting in your core-site.xml file on your Hadoop cluster. Valid values are `DISABLED`, `AUTHENTICATION`, `INTEGRITY` and `PRIVACY`. """ + LocationHdfsQopConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_transfer_protection=data_transfer_protection, + rpc_protection=rpc_protection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_transfer_protection: Optional[pulumi.Input[str]] = None, + rpc_protection: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_transfer_protection is None and 'dataTransferProtection' in kwargs: + data_transfer_protection = kwargs['dataTransferProtection'] + if rpc_protection is None and 'rpcProtection' in kwargs: + rpc_protection = kwargs['rpcProtection'] + if data_transfer_protection is not None: - pulumi.set(__self__, "data_transfer_protection", data_transfer_protection) + _setter("data_transfer_protection", data_transfer_protection) if rpc_protection is not None: - pulumi.set(__self__, "rpc_protection", rpc_protection) + _setter("rpc_protection", rpc_protection) @property @pulumi.getter(name="dataTransferProtection") @@ -416,8 +598,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] version: The specific SMB version that you want DataSync to use for mounting your SMB share. Valid values: `AUTOMATIC`, `SMB2`, and `SMB3`. Default: `AUTOMATIC` """ + LocationSmbMountOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -439,8 +632,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] version: The specific NFS version that you want DataSync to use for mounting your NFS share. Valid values: `AUTOMATIC`, `NFS3`, `NFS4_0` and `NFS4_1`. Default: `AUTOMATIC` """ + NfsLocationMountOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -462,7 +666,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] agent_arns: List of Amazon Resource Names (ARNs) of the DataSync Agents used to connect to the NFS server. """ - pulumi.set(__self__, "agent_arns", agent_arns) + NfsLocationOnPremConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_arns=agent_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if agent_arns is None: + raise TypeError("Missing 'agent_arns' argument") + + _setter("agent_arns", agent_arns) @property @pulumi.getter(name="agentArns") @@ -484,7 +703,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] bucket_access_role_arn: ARN of the IAM Role used to connect to the S3 Bucket. """ - pulumi.set(__self__, "bucket_access_role_arn", bucket_access_role_arn) + S3LocationS3ConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_access_role_arn=bucket_access_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_access_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_access_role_arn is None and 'bucketAccessRoleArn' in kwargs: + bucket_access_role_arn = kwargs['bucketAccessRoleArn'] + if bucket_access_role_arn is None: + raise TypeError("Missing 'bucket_access_role_arn' argument") + + _setter("bucket_access_role_arn", bucket_access_role_arn) @property @pulumi.getter(name="bucketAccessRoleArn") @@ -508,10 +742,25 @@ def __init__(__self__, *, :param pulumi.Input[str] filter_type: The type of filter rule to apply. Valid values: `SIMPLE_PATTERN`. :param pulumi.Input[str] value: A single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example: `/folder1|/folder2` """ + TaskExcludesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter_type=filter_type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter_type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter_type is None and 'filterType' in kwargs: + filter_type = kwargs['filterType'] + if filter_type is not None: - pulumi.set(__self__, "filter_type", filter_type) + _setter("filter_type", filter_type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="filterType") @@ -547,10 +796,25 @@ def __init__(__self__, *, :param pulumi.Input[str] filter_type: The type of filter rule to apply. Valid values: `SIMPLE_PATTERN`. :param pulumi.Input[str] value: A single filter string that consists of the patterns to include. The patterns are delimited by "|" (that is, a pipe), for example: `/folder1|/folder2` """ + TaskIncludesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter_type=filter_type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter_type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter_type is None and 'filterType' in kwargs: + filter_type = kwargs['filterType'] + if filter_type is not None: - pulumi.set(__self__, "filter_type", filter_type) + _setter("filter_type", filter_type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="filterType") @@ -612,36 +876,97 @@ def __init__(__self__, *, :param pulumi.Input[str] uid: User identifier of the file's owners. Valid values: `BOTH`, `INT_VALUE`, `NAME`, `NONE`. Default: `INT_VALUE` (preserve integer value of the ID). :param pulumi.Input[str] verify_mode: Whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. Valid values: `NONE`, `POINT_IN_TIME_CONSISTENT`, `ONLY_FILES_TRANSFERRED`. Default: `POINT_IN_TIME_CONSISTENT`. """ + TaskOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + atime=atime, + bytes_per_second=bytes_per_second, + gid=gid, + log_level=log_level, + mtime=mtime, + object_tags=object_tags, + overwrite_mode=overwrite_mode, + posix_permissions=posix_permissions, + preserve_deleted_files=preserve_deleted_files, + preserve_devices=preserve_devices, + security_descriptor_copy_flags=security_descriptor_copy_flags, + task_queueing=task_queueing, + transfer_mode=transfer_mode, + uid=uid, + verify_mode=verify_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + atime: Optional[pulumi.Input[str]] = None, + bytes_per_second: Optional[pulumi.Input[int]] = None, + gid: Optional[pulumi.Input[str]] = None, + log_level: Optional[pulumi.Input[str]] = None, + mtime: Optional[pulumi.Input[str]] = None, + object_tags: Optional[pulumi.Input[str]] = None, + overwrite_mode: Optional[pulumi.Input[str]] = None, + posix_permissions: Optional[pulumi.Input[str]] = None, + preserve_deleted_files: Optional[pulumi.Input[str]] = None, + preserve_devices: Optional[pulumi.Input[str]] = None, + security_descriptor_copy_flags: Optional[pulumi.Input[str]] = None, + task_queueing: Optional[pulumi.Input[str]] = None, + transfer_mode: Optional[pulumi.Input[str]] = None, + uid: Optional[pulumi.Input[str]] = None, + verify_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bytes_per_second is None and 'bytesPerSecond' in kwargs: + bytes_per_second = kwargs['bytesPerSecond'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if object_tags is None and 'objectTags' in kwargs: + object_tags = kwargs['objectTags'] + if overwrite_mode is None and 'overwriteMode' in kwargs: + overwrite_mode = kwargs['overwriteMode'] + if posix_permissions is None and 'posixPermissions' in kwargs: + posix_permissions = kwargs['posixPermissions'] + if preserve_deleted_files is None and 'preserveDeletedFiles' in kwargs: + preserve_deleted_files = kwargs['preserveDeletedFiles'] + if preserve_devices is None and 'preserveDevices' in kwargs: + preserve_devices = kwargs['preserveDevices'] + if security_descriptor_copy_flags is None and 'securityDescriptorCopyFlags' in kwargs: + security_descriptor_copy_flags = kwargs['securityDescriptorCopyFlags'] + if task_queueing is None and 'taskQueueing' in kwargs: + task_queueing = kwargs['taskQueueing'] + if transfer_mode is None and 'transferMode' in kwargs: + transfer_mode = kwargs['transferMode'] + if verify_mode is None and 'verifyMode' in kwargs: + verify_mode = kwargs['verifyMode'] + if atime is not None: - pulumi.set(__self__, "atime", atime) + _setter("atime", atime) if bytes_per_second is not None: - pulumi.set(__self__, "bytes_per_second", bytes_per_second) + _setter("bytes_per_second", bytes_per_second) if gid is not None: - pulumi.set(__self__, "gid", gid) + _setter("gid", gid) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) if mtime is not None: - pulumi.set(__self__, "mtime", mtime) + _setter("mtime", mtime) if object_tags is not None: - pulumi.set(__self__, "object_tags", object_tags) + _setter("object_tags", object_tags) if overwrite_mode is not None: - pulumi.set(__self__, "overwrite_mode", overwrite_mode) + _setter("overwrite_mode", overwrite_mode) if posix_permissions is not None: - pulumi.set(__self__, "posix_permissions", posix_permissions) + _setter("posix_permissions", posix_permissions) if preserve_deleted_files is not None: - pulumi.set(__self__, "preserve_deleted_files", preserve_deleted_files) + _setter("preserve_deleted_files", preserve_deleted_files) if preserve_devices is not None: - pulumi.set(__self__, "preserve_devices", preserve_devices) + _setter("preserve_devices", preserve_devices) if security_descriptor_copy_flags is not None: - pulumi.set(__self__, "security_descriptor_copy_flags", security_descriptor_copy_flags) + _setter("security_descriptor_copy_flags", security_descriptor_copy_flags) if task_queueing is not None: - pulumi.set(__self__, "task_queueing", task_queueing) + _setter("task_queueing", task_queueing) if transfer_mode is not None: - pulumi.set(__self__, "transfer_mode", transfer_mode) + _setter("transfer_mode", transfer_mode) if uid is not None: - pulumi.set(__self__, "uid", uid) + _setter("uid", uid) if verify_mode is not None: - pulumi.set(__self__, "verify_mode", verify_mode) + _setter("verify_mode", verify_mode) @property @pulumi.getter @@ -831,7 +1156,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] schedule_expression: Specifies the schedule you want your task to use for repeated executions. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html). """ - pulumi.set(__self__, "schedule_expression", schedule_expression) + TaskScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schedule_expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="scheduleExpression") diff --git a/sdk/python/pulumi_aws/datasync/agent.py b/sdk/python/pulumi_aws/datasync/agent.py index cb1a64aa4ee..14989f8bb4e 100644 --- a/sdk/python/pulumi_aws/datasync/agent.py +++ b/sdk/python/pulumi_aws/datasync/agent.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AgentArgs', 'Agent'] @@ -33,22 +33,59 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Agent. 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] vpc_endpoint_id: The ID of the VPC (virtual private cloud) endpoint that the agent has access to. """ + AgentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + activation_key=activation_key, + ip_address=ip_address, + name=name, + private_link_endpoint=private_link_endpoint, + security_group_arns=security_group_arns, + subnet_arns=subnet_arns, + tags=tags, + vpc_endpoint_id=vpc_endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activation_key: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + private_link_endpoint: Optional[pulumi.Input[str]] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activation_key is None and 'activationKey' in kwargs: + activation_key = kwargs['activationKey'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if private_link_endpoint is None and 'privateLinkEndpoint' in kwargs: + private_link_endpoint = kwargs['privateLinkEndpoint'] + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if subnet_arns is None and 'subnetArns' in kwargs: + subnet_arns = kwargs['subnetArns'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if activation_key is not None: - pulumi.set(__self__, "activation_key", activation_key) + _setter("activation_key", activation_key) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if private_link_endpoint is not None: - pulumi.set(__self__, "private_link_endpoint", private_link_endpoint) + _setter("private_link_endpoint", private_link_endpoint) if security_group_arns is not None: - pulumi.set(__self__, "security_group_arns", security_group_arns) + _setter("security_group_arns", security_group_arns) if subnet_arns is not None: - pulumi.set(__self__, "subnet_arns", subnet_arns) + _setter("subnet_arns", subnet_arns) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) @property @pulumi.getter(name="activationKey") @@ -173,29 +210,72 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_endpoint_id: The ID of the VPC (virtual private cloud) endpoint that the agent has access to. """ + _AgentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + activation_key=activation_key, + arn=arn, + ip_address=ip_address, + name=name, + private_link_endpoint=private_link_endpoint, + security_group_arns=security_group_arns, + subnet_arns=subnet_arns, + tags=tags, + tags_all=tags_all, + vpc_endpoint_id=vpc_endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activation_key: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + private_link_endpoint: Optional[pulumi.Input[str]] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activation_key is None and 'activationKey' in kwargs: + activation_key = kwargs['activationKey'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if private_link_endpoint is None and 'privateLinkEndpoint' in kwargs: + private_link_endpoint = kwargs['privateLinkEndpoint'] + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if subnet_arns is None and 'subnetArns' in kwargs: + subnet_arns = kwargs['subnetArns'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if activation_key is not None: - pulumi.set(__self__, "activation_key", activation_key) + _setter("activation_key", activation_key) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if private_link_endpoint is not None: - pulumi.set(__self__, "private_link_endpoint", private_link_endpoint) + _setter("private_link_endpoint", private_link_endpoint) if security_group_arns is not None: - pulumi.set(__self__, "security_group_arns", security_group_arns) + _setter("security_group_arns", security_group_arns) if subnet_arns is not None: - pulumi.set(__self__, "subnet_arns", subnet_arns) + _setter("subnet_arns", subnet_arns) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) @property @pulumi.getter(name="activationKey") @@ -406,6 +486,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AgentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/datasync/efs_location.py b/sdk/python/pulumi_aws/datasync/efs_location.py index 6a584ff356e..73104d07003 100644 --- a/sdk/python/pulumi_aws/datasync/efs_location.py +++ b/sdk/python/pulumi_aws/datasync/efs_location.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,18 +33,55 @@ def __init__(__self__, *, :param pulumi.Input[str] subdirectory: Subdirectory to perform actions as source or destination. Default `/`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "ec2_config", ec2_config) - pulumi.set(__self__, "efs_file_system_arn", efs_file_system_arn) + EfsLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ec2_config=ec2_config, + efs_file_system_arn=efs_file_system_arn, + access_point_arn=access_point_arn, + file_system_access_role_arn=file_system_access_role_arn, + in_transit_encryption=in_transit_encryption, + subdirectory=subdirectory, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ec2_config: Optional[pulumi.Input['EfsLocationEc2ConfigArgs']] = None, + efs_file_system_arn: Optional[pulumi.Input[str]] = None, + access_point_arn: Optional[pulumi.Input[str]] = None, + file_system_access_role_arn: Optional[pulumi.Input[str]] = None, + in_transit_encryption: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ec2_config is None and 'ec2Config' in kwargs: + ec2_config = kwargs['ec2Config'] + if ec2_config is None: + raise TypeError("Missing 'ec2_config' argument") + if efs_file_system_arn is None and 'efsFileSystemArn' in kwargs: + efs_file_system_arn = kwargs['efsFileSystemArn'] + if efs_file_system_arn is None: + raise TypeError("Missing 'efs_file_system_arn' argument") + if access_point_arn is None and 'accessPointArn' in kwargs: + access_point_arn = kwargs['accessPointArn'] + if file_system_access_role_arn is None and 'fileSystemAccessRoleArn' in kwargs: + file_system_access_role_arn = kwargs['fileSystemAccessRoleArn'] + if in_transit_encryption is None and 'inTransitEncryption' in kwargs: + in_transit_encryption = kwargs['inTransitEncryption'] + + _setter("ec2_config", ec2_config) + _setter("efs_file_system_arn", efs_file_system_arn) if access_point_arn is not None: - pulumi.set(__self__, "access_point_arn", access_point_arn) + _setter("access_point_arn", access_point_arn) if file_system_access_role_arn is not None: - pulumi.set(__self__, "file_system_access_role_arn", file_system_access_role_arn) + _setter("file_system_access_role_arn", file_system_access_role_arn) if in_transit_encryption is not None: - pulumi.set(__self__, "in_transit_encryption", in_transit_encryption) + _setter("in_transit_encryption", in_transit_encryption) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="ec2Config") @@ -156,29 +193,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. .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. """ + _EfsLocationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_point_arn=access_point_arn, + arn=arn, + ec2_config=ec2_config, + efs_file_system_arn=efs_file_system_arn, + file_system_access_role_arn=file_system_access_role_arn, + in_transit_encryption=in_transit_encryption, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_point_arn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + ec2_config: Optional[pulumi.Input['EfsLocationEc2ConfigArgs']] = None, + efs_file_system_arn: Optional[pulumi.Input[str]] = None, + file_system_access_role_arn: Optional[pulumi.Input[str]] = None, + in_transit_encryption: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_point_arn is None and 'accessPointArn' in kwargs: + access_point_arn = kwargs['accessPointArn'] + if ec2_config is None and 'ec2Config' in kwargs: + ec2_config = kwargs['ec2Config'] + if efs_file_system_arn is None and 'efsFileSystemArn' in kwargs: + efs_file_system_arn = kwargs['efsFileSystemArn'] + if file_system_access_role_arn is None and 'fileSystemAccessRoleArn' in kwargs: + file_system_access_role_arn = kwargs['fileSystemAccessRoleArn'] + if in_transit_encryption is None and 'inTransitEncryption' in kwargs: + in_transit_encryption = kwargs['inTransitEncryption'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if access_point_arn is not None: - pulumi.set(__self__, "access_point_arn", access_point_arn) + _setter("access_point_arn", access_point_arn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if ec2_config is not None: - pulumi.set(__self__, "ec2_config", ec2_config) + _setter("ec2_config", ec2_config) if efs_file_system_arn is not None: - pulumi.set(__self__, "efs_file_system_arn", efs_file_system_arn) + _setter("efs_file_system_arn", efs_file_system_arn) if file_system_access_role_arn is not None: - pulumi.set(__self__, "file_system_access_role_arn", file_system_access_role_arn) + _setter("file_system_access_role_arn", file_system_access_role_arn) if in_transit_encryption is not None: - pulumi.set(__self__, "in_transit_encryption", in_transit_encryption) + _setter("in_transit_encryption", in_transit_encryption) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter(name="accessPointArn") @@ -394,6 +472,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EfsLocationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -416,6 +498,7 @@ def _internal_init(__self__, __props__ = EfsLocationArgs.__new__(EfsLocationArgs) __props__.__dict__["access_point_arn"] = access_point_arn + ec2_config = _utilities.configure(ec2_config, EfsLocationEc2ConfigArgs, True) if ec2_config is None and not opts.urn: raise TypeError("Missing required property 'ec2_config'") __props__.__dict__["ec2_config"] = ec2_config diff --git a/sdk/python/pulumi_aws/datasync/fsx_open_zfs_file_system.py b/sdk/python/pulumi_aws/datasync/fsx_open_zfs_file_system.py index 5242fca0c03..500930defb0 100644 --- a/sdk/python/pulumi_aws/datasync/fsx_open_zfs_file_system.py +++ b/sdk/python/pulumi_aws/datasync/fsx_open_zfs_file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,42 @@ def __init__(__self__, *, :param pulumi.Input[str] subdirectory: Subdirectory to perform actions as source or destination. Must start with `/fsx`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "fsx_filesystem_arn", fsx_filesystem_arn) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "security_group_arns", security_group_arns) + FsxOpenZfsFileSystemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fsx_filesystem_arn=fsx_filesystem_arn, + protocol=protocol, + security_group_arns=security_group_arns, + subdirectory=subdirectory, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fsx_filesystem_arn: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input['FsxOpenZfsFileSystemProtocolArgs']] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fsx_filesystem_arn is None and 'fsxFilesystemArn' in kwargs: + fsx_filesystem_arn = kwargs['fsxFilesystemArn'] + if fsx_filesystem_arn is None: + raise TypeError("Missing 'fsx_filesystem_arn' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if security_group_arns is None: + raise TypeError("Missing 'security_group_arns' argument") + + _setter("fsx_filesystem_arn", fsx_filesystem_arn) + _setter("protocol", protocol) + _setter("security_group_arns", security_group_arns) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="fsxFilesystemArn") @@ -122,27 +151,62 @@ def __init__(__self__, *, :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] uri: The URL of the FSx for openzfs location that was described. """ + _FsxOpenZfsFileSystemState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_time=creation_time, + fsx_filesystem_arn=fsx_filesystem_arn, + protocol=protocol, + security_group_arns=security_group_arns, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + fsx_filesystem_arn: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input['FsxOpenZfsFileSystemProtocolArgs']] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if fsx_filesystem_arn is None and 'fsxFilesystemArn' in kwargs: + fsx_filesystem_arn = kwargs['fsxFilesystemArn'] + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if fsx_filesystem_arn is not None: - pulumi.set(__self__, "fsx_filesystem_arn", fsx_filesystem_arn) + _setter("fsx_filesystem_arn", fsx_filesystem_arn) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if security_group_arns is not None: - pulumi.set(__self__, "security_group_arns", security_group_arns) + _setter("security_group_arns", security_group_arns) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -349,6 +413,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FsxOpenZfsFileSystemArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -371,6 +439,7 @@ def _internal_init(__self__, if fsx_filesystem_arn is None and not opts.urn: raise TypeError("Missing required property 'fsx_filesystem_arn'") __props__.__dict__["fsx_filesystem_arn"] = fsx_filesystem_arn + protocol = _utilities.configure(protocol, FsxOpenZfsFileSystemProtocolArgs, True) if protocol is None and not opts.urn: raise TypeError("Missing required property 'protocol'") __props__.__dict__["protocol"] = protocol diff --git a/sdk/python/pulumi_aws/datasync/location_azure_blob.py b/sdk/python/pulumi_aws/datasync/location_azure_blob.py index bc0e35f59d7..e2e220737e3 100644 --- a/sdk/python/pulumi_aws/datasync/location_azure_blob.py +++ b/sdk/python/pulumi_aws/datasync/location_azure_blob.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,19 +35,62 @@ def __init__(__self__, *, :param pulumi.Input[str] subdirectory: Path segments if you want to limit your transfer to a virtual directory in the container. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "agent_arns", agent_arns) - pulumi.set(__self__, "authentication_type", authentication_type) - pulumi.set(__self__, "container_url", container_url) + LocationAzureBlobArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_arns=agent_arns, + authentication_type=authentication_type, + container_url=container_url, + access_tier=access_tier, + blob_type=blob_type, + sas_configuration=sas_configuration, + subdirectory=subdirectory, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + authentication_type: Optional[pulumi.Input[str]] = None, + container_url: Optional[pulumi.Input[str]] = None, + access_tier: Optional[pulumi.Input[str]] = None, + blob_type: Optional[pulumi.Input[str]] = None, + sas_configuration: Optional[pulumi.Input['LocationAzureBlobSasConfigurationArgs']] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if agent_arns is None: + raise TypeError("Missing 'agent_arns' argument") + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is None: + raise TypeError("Missing 'authentication_type' argument") + if container_url is None and 'containerUrl' in kwargs: + container_url = kwargs['containerUrl'] + if container_url is None: + raise TypeError("Missing 'container_url' argument") + if access_tier is None and 'accessTier' in kwargs: + access_tier = kwargs['accessTier'] + if blob_type is None and 'blobType' in kwargs: + blob_type = kwargs['blobType'] + if sas_configuration is None and 'sasConfiguration' in kwargs: + sas_configuration = kwargs['sasConfiguration'] + + _setter("agent_arns", agent_arns) + _setter("authentication_type", authentication_type) + _setter("container_url", container_url) if access_tier is not None: - pulumi.set(__self__, "access_tier", access_tier) + _setter("access_tier", access_tier) if blob_type is not None: - pulumi.set(__self__, "blob_type", blob_type) + _setter("blob_type", blob_type) if sas_configuration is not None: - pulumi.set(__self__, "sas_configuration", sas_configuration) + _setter("sas_configuration", sas_configuration) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="agentArns") @@ -173,31 +216,76 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. 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. """ + _LocationAzureBlobState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_tier=access_tier, + agent_arns=agent_arns, + arn=arn, + authentication_type=authentication_type, + blob_type=blob_type, + container_url=container_url, + sas_configuration=sas_configuration, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_tier: Optional[pulumi.Input[str]] = None, + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + authentication_type: Optional[pulumi.Input[str]] = None, + blob_type: Optional[pulumi.Input[str]] = None, + container_url: Optional[pulumi.Input[str]] = None, + sas_configuration: Optional[pulumi.Input['LocationAzureBlobSasConfigurationArgs']] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_tier is None and 'accessTier' in kwargs: + access_tier = kwargs['accessTier'] + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if blob_type is None and 'blobType' in kwargs: + blob_type = kwargs['blobType'] + if container_url is None and 'containerUrl' in kwargs: + container_url = kwargs['containerUrl'] + if sas_configuration is None and 'sasConfiguration' in kwargs: + sas_configuration = kwargs['sasConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if access_tier is not None: - pulumi.set(__self__, "access_tier", access_tier) + _setter("access_tier", access_tier) if agent_arns is not None: - pulumi.set(__self__, "agent_arns", agent_arns) + _setter("agent_arns", agent_arns) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_type is not None: - pulumi.set(__self__, "authentication_type", authentication_type) + _setter("authentication_type", authentication_type) if blob_type is not None: - pulumi.set(__self__, "blob_type", blob_type) + _setter("blob_type", blob_type) if container_url is not None: - pulumi.set(__self__, "container_url", container_url) + _setter("container_url", container_url) if sas_configuration is not None: - pulumi.set(__self__, "sas_configuration", sas_configuration) + _setter("sas_configuration", sas_configuration) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter(name="accessTier") @@ -429,6 +517,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LocationAzureBlobArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -462,6 +554,7 @@ def _internal_init(__self__, if container_url is None and not opts.urn: raise TypeError("Missing required property 'container_url'") __props__.__dict__["container_url"] = container_url + sas_configuration = _utilities.configure(sas_configuration, LocationAzureBlobSasConfigurationArgs, True) __props__.__dict__["sas_configuration"] = sas_configuration __props__.__dict__["subdirectory"] = subdirectory __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/datasync/location_fsx_lustre.py b/sdk/python/pulumi_aws/datasync/location_fsx_lustre.py index 0e16a1e18cb..b389820420e 100644 --- a/sdk/python/pulumi_aws/datasync/location_fsx_lustre.py +++ b/sdk/python/pulumi_aws/datasync/location_fsx_lustre.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LocationFsxLustreArgs', 'LocationFsxLustre'] @@ -25,12 +25,37 @@ def __init__(__self__, *, :param pulumi.Input[str] subdirectory: Subdirectory to perform actions as source or destination. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "fsx_filesystem_arn", fsx_filesystem_arn) - pulumi.set(__self__, "security_group_arns", security_group_arns) + LocationFsxLustreArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fsx_filesystem_arn=fsx_filesystem_arn, + security_group_arns=security_group_arns, + subdirectory=subdirectory, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fsx_filesystem_arn: Optional[pulumi.Input[str]] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fsx_filesystem_arn is None and 'fsxFilesystemArn' in kwargs: + fsx_filesystem_arn = kwargs['fsxFilesystemArn'] + if fsx_filesystem_arn is None: + raise TypeError("Missing 'fsx_filesystem_arn' argument") + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if security_group_arns is None: + raise TypeError("Missing 'security_group_arns' argument") + + _setter("fsx_filesystem_arn", fsx_filesystem_arn) + _setter("security_group_arns", security_group_arns) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="fsxFilesystemArn") @@ -103,25 +128,58 @@ def __init__(__self__, *, :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] uri: The URL of the FSx for Lustre location that was described. """ + _LocationFsxLustreState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_time=creation_time, + fsx_filesystem_arn=fsx_filesystem_arn, + security_group_arns=security_group_arns, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + fsx_filesystem_arn: Optional[pulumi.Input[str]] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if fsx_filesystem_arn is None and 'fsxFilesystemArn' in kwargs: + fsx_filesystem_arn = kwargs['fsxFilesystemArn'] + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if fsx_filesystem_arn is not None: - pulumi.set(__self__, "fsx_filesystem_arn", fsx_filesystem_arn) + _setter("fsx_filesystem_arn", fsx_filesystem_arn) if security_group_arns is not None: - pulumi.set(__self__, "security_group_arns", security_group_arns) + _setter("security_group_arns", security_group_arns) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -300,6 +358,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LocationFsxLustreArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/datasync/location_fsx_ontap_file_system.py b/sdk/python/pulumi_aws/datasync/location_fsx_ontap_file_system.py index facff2a172c..7e7eaff7597 100644 --- a/sdk/python/pulumi_aws/datasync/location_fsx_ontap_file_system.py +++ b/sdk/python/pulumi_aws/datasync/location_fsx_ontap_file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,13 +33,42 @@ def __init__(__self__, *, :param pulumi.Input[str] subdirectory: Path to the file share in the SVM where you'll copy your data. You can specify a junction path (also known as a mount point), qtree path (for NFS file shares), or share name (for SMB file shares) (e.g. `/vol1`, `/vol1/tree1`, `share1`). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "security_group_arns", security_group_arns) - pulumi.set(__self__, "storage_virtual_machine_arn", storage_virtual_machine_arn) + LocationFsxOntapFileSystemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + protocol=protocol, + security_group_arns=security_group_arns, + storage_virtual_machine_arn=storage_virtual_machine_arn, + subdirectory=subdirectory, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + protocol: Optional[pulumi.Input['LocationFsxOntapFileSystemProtocolArgs']] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_virtual_machine_arn: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if security_group_arns is None: + raise TypeError("Missing 'security_group_arns' argument") + if storage_virtual_machine_arn is None and 'storageVirtualMachineArn' in kwargs: + storage_virtual_machine_arn = kwargs['storageVirtualMachineArn'] + if storage_virtual_machine_arn is None: + raise TypeError("Missing 'storage_virtual_machine_arn' argument") + + _setter("protocol", protocol) + _setter("security_group_arns", security_group_arns) + _setter("storage_virtual_machine_arn", storage_virtual_machine_arn) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -134,29 +163,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. 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] uri: URI of the FSx ONTAP file system location """ + _LocationFsxOntapFileSystemState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_time=creation_time, + fsx_filesystem_arn=fsx_filesystem_arn, + protocol=protocol, + security_group_arns=security_group_arns, + storage_virtual_machine_arn=storage_virtual_machine_arn, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + fsx_filesystem_arn: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input['LocationFsxOntapFileSystemProtocolArgs']] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_virtual_machine_arn: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if fsx_filesystem_arn is None and 'fsxFilesystemArn' in kwargs: + fsx_filesystem_arn = kwargs['fsxFilesystemArn'] + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if storage_virtual_machine_arn is None and 'storageVirtualMachineArn' in kwargs: + storage_virtual_machine_arn = kwargs['storageVirtualMachineArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if fsx_filesystem_arn is not None: - pulumi.set(__self__, "fsx_filesystem_arn", fsx_filesystem_arn) + _setter("fsx_filesystem_arn", fsx_filesystem_arn) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if security_group_arns is not None: - pulumi.set(__self__, "security_group_arns", security_group_arns) + _setter("security_group_arns", security_group_arns) if storage_virtual_machine_arn is not None: - pulumi.set(__self__, "storage_virtual_machine_arn", storage_virtual_machine_arn) + _setter("storage_virtual_machine_arn", storage_virtual_machine_arn) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -345,6 +413,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LocationFsxOntapFileSystemArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -364,6 +436,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = LocationFsxOntapFileSystemArgs.__new__(LocationFsxOntapFileSystemArgs) + protocol = _utilities.configure(protocol, LocationFsxOntapFileSystemProtocolArgs, True) if protocol is None and not opts.urn: raise TypeError("Missing required property 'protocol'") __props__.__dict__["protocol"] = protocol diff --git a/sdk/python/pulumi_aws/datasync/location_fsx_windows.py b/sdk/python/pulumi_aws/datasync/location_fsx_windows.py index 0b91e4a8f2c..cfee14c3466 100644 --- a/sdk/python/pulumi_aws/datasync/location_fsx_windows.py +++ b/sdk/python/pulumi_aws/datasync/location_fsx_windows.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LocationFsxWindowsArgs', 'LocationFsxWindows'] @@ -31,16 +31,51 @@ def __init__(__self__, *, :param pulumi.Input[str] subdirectory: Subdirectory to perform actions as source or destination. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "fsx_filesystem_arn", fsx_filesystem_arn) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "security_group_arns", security_group_arns) - pulumi.set(__self__, "user", user) + LocationFsxWindowsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fsx_filesystem_arn=fsx_filesystem_arn, + password=password, + security_group_arns=security_group_arns, + user=user, + domain=domain, + subdirectory=subdirectory, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fsx_filesystem_arn: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fsx_filesystem_arn is None and 'fsxFilesystemArn' in kwargs: + fsx_filesystem_arn = kwargs['fsxFilesystemArn'] + if fsx_filesystem_arn is None: + raise TypeError("Missing 'fsx_filesystem_arn' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if security_group_arns is None: + raise TypeError("Missing 'security_group_arns' argument") + if user is None: + raise TypeError("Missing 'user' argument") + + _setter("fsx_filesystem_arn", fsx_filesystem_arn) + _setter("password", password) + _setter("security_group_arns", security_group_arns) + _setter("user", user) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="fsxFilesystemArn") @@ -155,31 +190,70 @@ def __init__(__self__, *, :param pulumi.Input[str] uri: The URL of the FSx for Windows location that was described. :param pulumi.Input[str] user: The user who has the permissions to access files and folders in the FSx for Windows file system. """ + _LocationFsxWindowsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_time=creation_time, + domain=domain, + fsx_filesystem_arn=fsx_filesystem_arn, + password=password, + security_group_arns=security_group_arns, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + user=user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + fsx_filesystem_arn: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + security_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if fsx_filesystem_arn is None and 'fsxFilesystemArn' in kwargs: + fsx_filesystem_arn = kwargs['fsxFilesystemArn'] + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if fsx_filesystem_arn is not None: - pulumi.set(__self__, "fsx_filesystem_arn", fsx_filesystem_arn) + _setter("fsx_filesystem_arn", fsx_filesystem_arn) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if security_group_arns is not None: - pulumi.set(__self__, "security_group_arns", security_group_arns) + _setter("security_group_arns", security_group_arns) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) if user is not None: - pulumi.set(__self__, "user", user) + _setter("user", user) @property @pulumi.getter @@ -404,6 +478,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LocationFsxWindowsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/datasync/location_hdfs.py b/sdk/python/pulumi_aws/datasync/location_hdfs.py index d9d54647374..fd7b1ae26ee 100644 --- a/sdk/python/pulumi_aws/datasync/location_hdfs.py +++ b/sdk/python/pulumi_aws/datasync/location_hdfs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,30 +45,91 @@ def __init__(__self__, *, :param pulumi.Input[str] subdirectory: A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write data to the HDFS cluster. If the subdirectory isn't specified, it will default to /. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "agent_arns", agent_arns) - pulumi.set(__self__, "name_nodes", name_nodes) + LocationHdfsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_arns=agent_arns, + name_nodes=name_nodes, + authentication_type=authentication_type, + block_size=block_size, + kerberos_keytab=kerberos_keytab, + kerberos_krb5_conf=kerberos_krb5_conf, + kerberos_principal=kerberos_principal, + kms_key_provider_uri=kms_key_provider_uri, + qop_configuration=qop_configuration, + replication_factor=replication_factor, + simple_user=simple_user, + subdirectory=subdirectory, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name_nodes: Optional[pulumi.Input[Sequence[pulumi.Input['LocationHdfsNameNodeArgs']]]] = None, + authentication_type: Optional[pulumi.Input[str]] = None, + block_size: Optional[pulumi.Input[int]] = None, + kerberos_keytab: Optional[pulumi.Input[str]] = None, + kerberos_krb5_conf: Optional[pulumi.Input[str]] = None, + kerberos_principal: Optional[pulumi.Input[str]] = None, + kms_key_provider_uri: Optional[pulumi.Input[str]] = None, + qop_configuration: Optional[pulumi.Input['LocationHdfsQopConfigurationArgs']] = None, + replication_factor: Optional[pulumi.Input[int]] = None, + simple_user: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if agent_arns is None: + raise TypeError("Missing 'agent_arns' argument") + if name_nodes is None and 'nameNodes' in kwargs: + name_nodes = kwargs['nameNodes'] + if name_nodes is None: + raise TypeError("Missing 'name_nodes' argument") + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if block_size is None and 'blockSize' in kwargs: + block_size = kwargs['blockSize'] + if kerberos_keytab is None and 'kerberosKeytab' in kwargs: + kerberos_keytab = kwargs['kerberosKeytab'] + if kerberos_krb5_conf is None and 'kerberosKrb5Conf' in kwargs: + kerberos_krb5_conf = kwargs['kerberosKrb5Conf'] + if kerberos_principal is None and 'kerberosPrincipal' in kwargs: + kerberos_principal = kwargs['kerberosPrincipal'] + if kms_key_provider_uri is None and 'kmsKeyProviderUri' in kwargs: + kms_key_provider_uri = kwargs['kmsKeyProviderUri'] + if qop_configuration is None and 'qopConfiguration' in kwargs: + qop_configuration = kwargs['qopConfiguration'] + if replication_factor is None and 'replicationFactor' in kwargs: + replication_factor = kwargs['replicationFactor'] + if simple_user is None and 'simpleUser' in kwargs: + simple_user = kwargs['simpleUser'] + + _setter("agent_arns", agent_arns) + _setter("name_nodes", name_nodes) if authentication_type is not None: - pulumi.set(__self__, "authentication_type", authentication_type) + _setter("authentication_type", authentication_type) if block_size is not None: - pulumi.set(__self__, "block_size", block_size) + _setter("block_size", block_size) if kerberos_keytab is not None: - pulumi.set(__self__, "kerberos_keytab", kerberos_keytab) + _setter("kerberos_keytab", kerberos_keytab) if kerberos_krb5_conf is not None: - pulumi.set(__self__, "kerberos_krb5_conf", kerberos_krb5_conf) + _setter("kerberos_krb5_conf", kerberos_krb5_conf) if kerberos_principal is not None: - pulumi.set(__self__, "kerberos_principal", kerberos_principal) + _setter("kerberos_principal", kerberos_principal) if kms_key_provider_uri is not None: - pulumi.set(__self__, "kms_key_provider_uri", kms_key_provider_uri) + _setter("kms_key_provider_uri", kms_key_provider_uri) if qop_configuration is not None: - pulumi.set(__self__, "qop_configuration", qop_configuration) + _setter("qop_configuration", qop_configuration) if replication_factor is not None: - pulumi.set(__self__, "replication_factor", replication_factor) + _setter("replication_factor", replication_factor) if simple_user is not None: - pulumi.set(__self__, "simple_user", simple_user) + _setter("simple_user", simple_user) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="agentArns") @@ -264,41 +325,106 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. 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. """ + _LocationHdfsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_arns=agent_arns, + arn=arn, + authentication_type=authentication_type, + block_size=block_size, + kerberos_keytab=kerberos_keytab, + kerberos_krb5_conf=kerberos_krb5_conf, + kerberos_principal=kerberos_principal, + kms_key_provider_uri=kms_key_provider_uri, + name_nodes=name_nodes, + qop_configuration=qop_configuration, + replication_factor=replication_factor, + simple_user=simple_user, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + authentication_type: Optional[pulumi.Input[str]] = None, + block_size: Optional[pulumi.Input[int]] = None, + kerberos_keytab: Optional[pulumi.Input[str]] = None, + kerberos_krb5_conf: Optional[pulumi.Input[str]] = None, + kerberos_principal: Optional[pulumi.Input[str]] = None, + kms_key_provider_uri: Optional[pulumi.Input[str]] = None, + name_nodes: Optional[pulumi.Input[Sequence[pulumi.Input['LocationHdfsNameNodeArgs']]]] = None, + qop_configuration: Optional[pulumi.Input['LocationHdfsQopConfigurationArgs']] = None, + replication_factor: Optional[pulumi.Input[int]] = None, + simple_user: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if block_size is None and 'blockSize' in kwargs: + block_size = kwargs['blockSize'] + if kerberos_keytab is None and 'kerberosKeytab' in kwargs: + kerberos_keytab = kwargs['kerberosKeytab'] + if kerberos_krb5_conf is None and 'kerberosKrb5Conf' in kwargs: + kerberos_krb5_conf = kwargs['kerberosKrb5Conf'] + if kerberos_principal is None and 'kerberosPrincipal' in kwargs: + kerberos_principal = kwargs['kerberosPrincipal'] + if kms_key_provider_uri is None and 'kmsKeyProviderUri' in kwargs: + kms_key_provider_uri = kwargs['kmsKeyProviderUri'] + if name_nodes is None and 'nameNodes' in kwargs: + name_nodes = kwargs['nameNodes'] + if qop_configuration is None and 'qopConfiguration' in kwargs: + qop_configuration = kwargs['qopConfiguration'] + if replication_factor is None and 'replicationFactor' in kwargs: + replication_factor = kwargs['replicationFactor'] + if simple_user is None and 'simpleUser' in kwargs: + simple_user = kwargs['simpleUser'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if agent_arns is not None: - pulumi.set(__self__, "agent_arns", agent_arns) + _setter("agent_arns", agent_arns) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_type is not None: - pulumi.set(__self__, "authentication_type", authentication_type) + _setter("authentication_type", authentication_type) if block_size is not None: - pulumi.set(__self__, "block_size", block_size) + _setter("block_size", block_size) if kerberos_keytab is not None: - pulumi.set(__self__, "kerberos_keytab", kerberos_keytab) + _setter("kerberos_keytab", kerberos_keytab) if kerberos_krb5_conf is not None: - pulumi.set(__self__, "kerberos_krb5_conf", kerberos_krb5_conf) + _setter("kerberos_krb5_conf", kerberos_krb5_conf) if kerberos_principal is not None: - pulumi.set(__self__, "kerberos_principal", kerberos_principal) + _setter("kerberos_principal", kerberos_principal) if kms_key_provider_uri is not None: - pulumi.set(__self__, "kms_key_provider_uri", kms_key_provider_uri) + _setter("kms_key_provider_uri", kms_key_provider_uri) if name_nodes is not None: - pulumi.set(__self__, "name_nodes", name_nodes) + _setter("name_nodes", name_nodes) if qop_configuration is not None: - pulumi.set(__self__, "qop_configuration", qop_configuration) + _setter("qop_configuration", qop_configuration) if replication_factor is not None: - pulumi.set(__self__, "replication_factor", replication_factor) + _setter("replication_factor", replication_factor) if simple_user is not None: - pulumi.set(__self__, "simple_user", simple_user) + _setter("simple_user", simple_user) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter(name="agentArns") @@ -602,6 +728,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LocationHdfsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -641,6 +771,7 @@ def _internal_init(__self__, if name_nodes is None and not opts.urn: raise TypeError("Missing required property 'name_nodes'") __props__.__dict__["name_nodes"] = name_nodes + qop_configuration = _utilities.configure(qop_configuration, LocationHdfsQopConfigurationArgs, True) __props__.__dict__["qop_configuration"] = qop_configuration __props__.__dict__["replication_factor"] = replication_factor __props__.__dict__["simple_user"] = simple_user diff --git a/sdk/python/pulumi_aws/datasync/location_object_storage.py b/sdk/python/pulumi_aws/datasync/location_object_storage.py index 65defa28054..a5ceed43eef 100644 --- a/sdk/python/pulumi_aws/datasync/location_object_storage.py +++ b/sdk/python/pulumi_aws/datasync/location_object_storage.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LocationObjectStorageArgs', 'LocationObjectStorage'] @@ -37,23 +37,74 @@ def __init__(__self__, *, :param pulumi.Input[str] subdirectory: A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write data to the HDFS cluster. If the subdirectory isn't specified, it will default to /. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "agent_arns", agent_arns) - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "server_hostname", server_hostname) + LocationObjectStorageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_arns=agent_arns, + bucket_name=bucket_name, + server_hostname=server_hostname, + access_key=access_key, + secret_key=secret_key, + server_certificate=server_certificate, + server_port=server_port, + server_protocol=server_protocol, + subdirectory=subdirectory, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + bucket_name: Optional[pulumi.Input[str]] = None, + server_hostname: Optional[pulumi.Input[str]] = None, + access_key: Optional[pulumi.Input[str]] = None, + secret_key: Optional[pulumi.Input[str]] = None, + server_certificate: Optional[pulumi.Input[str]] = None, + server_port: Optional[pulumi.Input[int]] = None, + server_protocol: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if agent_arns is None: + raise TypeError("Missing 'agent_arns' argument") + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if server_hostname is None and 'serverHostname' in kwargs: + server_hostname = kwargs['serverHostname'] + if server_hostname is None: + raise TypeError("Missing 'server_hostname' argument") + if access_key is None and 'accessKey' in kwargs: + access_key = kwargs['accessKey'] + if secret_key is None and 'secretKey' in kwargs: + secret_key = kwargs['secretKey'] + if server_certificate is None and 'serverCertificate' in kwargs: + server_certificate = kwargs['serverCertificate'] + if server_port is None and 'serverPort' in kwargs: + server_port = kwargs['serverPort'] + if server_protocol is None and 'serverProtocol' in kwargs: + server_protocol = kwargs['serverProtocol'] + + _setter("agent_arns", agent_arns) + _setter("bucket_name", bucket_name) + _setter("server_hostname", server_hostname) if access_key is not None: - pulumi.set(__self__, "access_key", access_key) + _setter("access_key", access_key) if secret_key is not None: - pulumi.set(__self__, "secret_key", secret_key) + _setter("secret_key", secret_key) if server_certificate is not None: - pulumi.set(__self__, "server_certificate", server_certificate) + _setter("server_certificate", server_certificate) if server_port is not None: - pulumi.set(__self__, "server_port", server_port) + _setter("server_port", server_port) if server_protocol is not None: - pulumi.set(__self__, "server_protocol", server_protocol) + _setter("server_protocol", server_protocol) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="agentArns") @@ -208,35 +259,88 @@ def __init__(__self__, *, :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] uri: The URL of the Object Storage location that was described. """ + _LocationObjectStorageState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_key=access_key, + agent_arns=agent_arns, + arn=arn, + bucket_name=bucket_name, + secret_key=secret_key, + server_certificate=server_certificate, + server_hostname=server_hostname, + server_port=server_port, + server_protocol=server_protocol, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_key: Optional[pulumi.Input[str]] = None, + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + bucket_name: Optional[pulumi.Input[str]] = None, + secret_key: Optional[pulumi.Input[str]] = None, + server_certificate: Optional[pulumi.Input[str]] = None, + server_hostname: Optional[pulumi.Input[str]] = None, + server_port: Optional[pulumi.Input[int]] = None, + server_protocol: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_key is None and 'accessKey' in kwargs: + access_key = kwargs['accessKey'] + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if secret_key is None and 'secretKey' in kwargs: + secret_key = kwargs['secretKey'] + if server_certificate is None and 'serverCertificate' in kwargs: + server_certificate = kwargs['serverCertificate'] + if server_hostname is None and 'serverHostname' in kwargs: + server_hostname = kwargs['serverHostname'] + if server_port is None and 'serverPort' in kwargs: + server_port = kwargs['serverPort'] + if server_protocol is None and 'serverProtocol' in kwargs: + server_protocol = kwargs['serverProtocol'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if access_key is not None: - pulumi.set(__self__, "access_key", access_key) + _setter("access_key", access_key) if agent_arns is not None: - pulumi.set(__self__, "agent_arns", agent_arns) + _setter("agent_arns", agent_arns) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if secret_key is not None: - pulumi.set(__self__, "secret_key", secret_key) + _setter("secret_key", secret_key) if server_certificate is not None: - pulumi.set(__self__, "server_certificate", server_certificate) + _setter("server_certificate", server_certificate) if server_hostname is not None: - pulumi.set(__self__, "server_hostname", server_hostname) + _setter("server_hostname", server_hostname) if server_port is not None: - pulumi.set(__self__, "server_port", server_port) + _setter("server_port", server_port) if server_protocol is not None: - pulumi.set(__self__, "server_protocol", server_protocol) + _setter("server_protocol", server_protocol) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter(name="accessKey") @@ -493,6 +597,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LocationObjectStorageArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/datasync/location_smb.py b/sdk/python/pulumi_aws/datasync/location_smb.py index 92f5e3937a2..381464c3288 100644 --- a/sdk/python/pulumi_aws/datasync/location_smb.py +++ b/sdk/python/pulumi_aws/datasync/location_smb.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,17 +35,58 @@ def __init__(__self__, *, :param pulumi.Input['LocationSmbMountOptionsArgs'] mount_options: Configuration block containing mount options used by DataSync to access the SMB Server. Can be `AUTOMATIC`, `SMB2`, or `SMB3`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "agent_arns", agent_arns) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "server_hostname", server_hostname) - pulumi.set(__self__, "subdirectory", subdirectory) - pulumi.set(__self__, "user", user) + LocationSmbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_arns=agent_arns, + password=password, + server_hostname=server_hostname, + subdirectory=subdirectory, + user=user, + domain=domain, + mount_options=mount_options, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + password: Optional[pulumi.Input[str]] = None, + server_hostname: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + mount_options: Optional[pulumi.Input['LocationSmbMountOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if agent_arns is None: + raise TypeError("Missing 'agent_arns' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if server_hostname is None and 'serverHostname' in kwargs: + server_hostname = kwargs['serverHostname'] + if server_hostname is None: + raise TypeError("Missing 'server_hostname' argument") + if subdirectory is None: + raise TypeError("Missing 'subdirectory' argument") + if user is None: + raise TypeError("Missing 'user' argument") + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + + _setter("agent_arns", agent_arns) + _setter("password", password) + _setter("server_hostname", server_hostname) + _setter("subdirectory", subdirectory) + _setter("user", user) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if mount_options is not None: - pulumi.set(__self__, "mount_options", mount_options) + _setter("mount_options", mount_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="agentArns") @@ -171,31 +212,70 @@ def __init__(__self__, *, :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] user: The user who can mount the share and has file and folder permissions in the SMB share. """ + _LocationSmbState._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_arns=agent_arns, + arn=arn, + domain=domain, + mount_options=mount_options, + password=password, + server_hostname=server_hostname, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + user=user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + mount_options: Optional[pulumi.Input['LocationSmbMountOptionsArgs']] = None, + password: Optional[pulumi.Input[str]] = None, + server_hostname: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if server_hostname is None and 'serverHostname' in kwargs: + server_hostname = kwargs['serverHostname'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if agent_arns is not None: - pulumi.set(__self__, "agent_arns", agent_arns) + _setter("agent_arns", agent_arns) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if mount_options is not None: - pulumi.set(__self__, "mount_options", mount_options) + _setter("mount_options", mount_options) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if server_hostname is not None: - pulumi.set(__self__, "server_hostname", server_hostname) + _setter("server_hostname", server_hostname) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) if user is not None: - pulumi.set(__self__, "user", user) + _setter("user", user) @property @pulumi.getter(name="agentArns") @@ -425,6 +505,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LocationSmbArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -451,6 +535,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'agent_arns'") __props__.__dict__["agent_arns"] = agent_arns __props__.__dict__["domain"] = domain + mount_options = _utilities.configure(mount_options, LocationSmbMountOptionsArgs, True) __props__.__dict__["mount_options"] = mount_options if password is None and not opts.urn: raise TypeError("Missing required property 'password'") diff --git a/sdk/python/pulumi_aws/datasync/nfs_location.py b/sdk/python/pulumi_aws/datasync/nfs_location.py index df1aba9cce7..897b945a703 100644 --- a/sdk/python/pulumi_aws/datasync/nfs_location.py +++ b/sdk/python/pulumi_aws/datasync/nfs_location.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,44 @@ def __init__(__self__, *, :param pulumi.Input['NfsLocationMountOptionsArgs'] mount_options: Configuration block containing mount options used by DataSync to access the NFS Server. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "on_prem_config", on_prem_config) - pulumi.set(__self__, "server_hostname", server_hostname) - pulumi.set(__self__, "subdirectory", subdirectory) + NfsLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_prem_config=on_prem_config, + server_hostname=server_hostname, + subdirectory=subdirectory, + mount_options=mount_options, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_prem_config: Optional[pulumi.Input['NfsLocationOnPremConfigArgs']] = None, + server_hostname: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + mount_options: Optional[pulumi.Input['NfsLocationMountOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_prem_config is None and 'onPremConfig' in kwargs: + on_prem_config = kwargs['onPremConfig'] + if on_prem_config is None: + raise TypeError("Missing 'on_prem_config' argument") + if server_hostname is None and 'serverHostname' in kwargs: + server_hostname = kwargs['serverHostname'] + if server_hostname is None: + raise TypeError("Missing 'server_hostname' argument") + if subdirectory is None: + raise TypeError("Missing 'subdirectory' argument") + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + + _setter("on_prem_config", on_prem_config) + _setter("server_hostname", server_hostname) + _setter("subdirectory", subdirectory) if mount_options is not None: - pulumi.set(__self__, "mount_options", mount_options) + _setter("mount_options", mount_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="onPremConfig") @@ -119,25 +150,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. .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. """ + _NfsLocationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + mount_options=mount_options, + on_prem_config=on_prem_config, + server_hostname=server_hostname, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + mount_options: Optional[pulumi.Input['NfsLocationMountOptionsArgs']] = None, + on_prem_config: Optional[pulumi.Input['NfsLocationOnPremConfigArgs']] = None, + server_hostname: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if on_prem_config is None and 'onPremConfig' in kwargs: + on_prem_config = kwargs['onPremConfig'] + if server_hostname is None and 'serverHostname' in kwargs: + server_hostname = kwargs['serverHostname'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if mount_options is not None: - pulumi.set(__self__, "mount_options", mount_options) + _setter("mount_options", mount_options) if on_prem_config is not None: - pulumi.set(__self__, "on_prem_config", on_prem_config) + _setter("on_prem_config", on_prem_config) if server_hostname is not None: - pulumi.set(__self__, "server_hostname", server_hostname) + _setter("server_hostname", server_hostname) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -325,6 +389,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NfsLocationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -344,7 +412,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = NfsLocationArgs.__new__(NfsLocationArgs) + mount_options = _utilities.configure(mount_options, NfsLocationMountOptionsArgs, True) __props__.__dict__["mount_options"] = mount_options + on_prem_config = _utilities.configure(on_prem_config, NfsLocationOnPremConfigArgs, True) if on_prem_config is None and not opts.urn: raise TypeError("Missing required property 'on_prem_config'") __props__.__dict__["on_prem_config"] = on_prem_config diff --git a/sdk/python/pulumi_aws/datasync/outputs.py b/sdk/python/pulumi_aws/datasync/outputs.py index 3ebda7415e7..7ae522e0f41 100644 --- a/sdk/python/pulumi_aws/datasync/outputs.py +++ b/sdk/python/pulumi_aws/datasync/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -61,8 +61,29 @@ def __init__(__self__, *, :param Sequence[str] security_group_arns: List of Amazon Resource Names (ARNs) of the EC2 Security Groups that are associated with the EFS Mount Target. :param str subnet_arn: Amazon Resource Name (ARN) of the EC2 Subnet that is associated with the EFS Mount Target. """ - pulumi.set(__self__, "security_group_arns", security_group_arns) - pulumi.set(__self__, "subnet_arn", subnet_arn) + EfsLocationEc2Config._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_arns=security_group_arns, + subnet_arn=subnet_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_arns: Optional[Sequence[str]] = None, + subnet_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_arns is None and 'securityGroupArns' in kwargs: + security_group_arns = kwargs['securityGroupArns'] + if security_group_arns is None: + raise TypeError("Missing 'security_group_arns' argument") + if subnet_arn is None and 'subnetArn' in kwargs: + subnet_arn = kwargs['subnetArn'] + if subnet_arn is None: + raise TypeError("Missing 'subnet_arn' argument") + + _setter("security_group_arns", security_group_arns) + _setter("subnet_arn", subnet_arn) @property @pulumi.getter(name="securityGroupArns") @@ -88,7 +109,20 @@ def __init__(__self__, *, """ :param 'FsxOpenZfsFileSystemProtocolNfsArgs' nfs: Represents the Network File System (NFS) protocol that DataSync uses to access your FSx for OpenZFS file system. See below. """ - pulumi.set(__self__, "nfs", nfs) + FsxOpenZfsFileSystemProtocol._configure( + lambda key, value: pulumi.set(__self__, key, value), + nfs=nfs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nfs: Optional['outputs.FsxOpenZfsFileSystemProtocolNfs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nfs is None: + raise TypeError("Missing 'nfs' argument") + + _setter("nfs", nfs) @property @pulumi.getter @@ -123,7 +157,22 @@ def __init__(__self__, *, """ :param 'FsxOpenZfsFileSystemProtocolNfsMountOptionsArgs' mount_options: Represents the mount options that are available for DataSync to access an NFS location. See below. """ - pulumi.set(__self__, "mount_options", mount_options) + FsxOpenZfsFileSystemProtocolNfs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_options=mount_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_options: Optional['outputs.FsxOpenZfsFileSystemProtocolNfsMountOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if mount_options is None: + raise TypeError("Missing 'mount_options' argument") + + _setter("mount_options", mount_options) @property @pulumi.getter(name="mountOptions") @@ -141,8 +190,19 @@ def __init__(__self__, *, """ :param str version: The specific NFS version that you want DataSync to use for mounting your NFS share. Valid values: `AUTOMATIC`, `NFS3`, `NFS4_0` and `NFS4_1`. Default: `AUTOMATIC` """ + FsxOpenZfsFileSystemProtocolNfsMountOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -160,7 +220,20 @@ def __init__(__self__, *, """ :param str token: A SAS token that provides permissions to access your Azure Blob Storage. """ - pulumi.set(__self__, "token", token) + LocationAzureBlobSasConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + token=token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if token is None: + raise TypeError("Missing 'token' argument") + + _setter("token", token) @property @pulumi.getter @@ -180,10 +253,23 @@ def __init__(__self__, *, :param 'LocationFsxOntapFileSystemProtocolNfsArgs' nfs: Network File System (NFS) protocol that DataSync uses to access your FSx ONTAP file system. See NFS below. :param 'LocationFsxOntapFileSystemProtocolSmbArgs' smb: Server Message Block (SMB) protocol that DataSync uses to access your FSx ONTAP file system. See [SMB] (#smb) below. """ + LocationFsxOntapFileSystemProtocol._configure( + lambda key, value: pulumi.set(__self__, key, value), + nfs=nfs, + smb=smb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nfs: Optional['outputs.LocationFsxOntapFileSystemProtocolNfs'] = None, + smb: Optional['outputs.LocationFsxOntapFileSystemProtocolSmb'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nfs is not None: - pulumi.set(__self__, "nfs", nfs) + _setter("nfs", nfs) if smb is not None: - pulumi.set(__self__, "smb", smb) + _setter("smb", smb) @property @pulumi.getter @@ -226,7 +312,22 @@ def __init__(__self__, *, """ :param 'LocationFsxOntapFileSystemProtocolNfsMountOptionsArgs' mount_options: Mount options that are available for DataSync to access an NFS location. See NFS Mount Options below. """ - pulumi.set(__self__, "mount_options", mount_options) + LocationFsxOntapFileSystemProtocolNfs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_options=mount_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_options: Optional['outputs.LocationFsxOntapFileSystemProtocolNfsMountOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if mount_options is None: + raise TypeError("Missing 'mount_options' argument") + + _setter("mount_options", mount_options) @property @pulumi.getter(name="mountOptions") @@ -244,8 +345,19 @@ def __init__(__self__, *, """ :param str version: The specific NFS version that you want DataSync to use for mounting your NFS share. Valid values: `NFS3`. Default: `NFS3` """ + LocationFsxOntapFileSystemProtocolNfsMountOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -286,11 +398,36 @@ def __init__(__self__, *, :param str user: Username that can mount the location and access the files, folders, and metadata that you need in the SVM. :param str domain: Fully qualified domain name of the Microsoft Active Directory (AD) that your storage virtual machine belongs to. """ - pulumi.set(__self__, "mount_options", mount_options) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "user", user) + LocationFsxOntapFileSystemProtocolSmb._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_options=mount_options, + password=password, + user=user, + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_options: Optional['outputs.LocationFsxOntapFileSystemProtocolSmbMountOptions'] = None, + password: Optional[str] = None, + user: Optional[str] = None, + domain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_options is None and 'mountOptions' in kwargs: + mount_options = kwargs['mountOptions'] + if mount_options is None: + raise TypeError("Missing 'mount_options' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if user is None: + raise TypeError("Missing 'user' argument") + + _setter("mount_options", mount_options) + _setter("password", password) + _setter("user", user) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) @property @pulumi.getter(name="mountOptions") @@ -332,8 +469,19 @@ def __init__(__self__, *, """ :param str version: The specific NFS version that you want DataSync to use for mounting your NFS share. Valid values: `NFS3`. Default: `NFS3` """ + LocationFsxOntapFileSystemProtocolSmbMountOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -353,8 +501,25 @@ def __init__(__self__, *, :param str hostname: The hostname of the NameNode in the HDFS cluster. This value is the IP address or Domain Name Service (DNS) name of the NameNode. An agent that's installed on-premises uses this hostname to communicate with the NameNode in the network. :param int port: The port that the NameNode uses to listen to client requests. """ - pulumi.set(__self__, "hostname", hostname) - pulumi.set(__self__, "port", port) + LocationHdfsNameNode._configure( + lambda key, value: pulumi.set(__self__, key, value), + hostname=hostname, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hostname: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hostname is None: + raise TypeError("Missing 'hostname' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("hostname", hostname) + _setter("port", port) @property @pulumi.getter @@ -401,10 +566,27 @@ def __init__(__self__, *, :param str data_transfer_protection: The data transfer protection setting configured on the HDFS cluster. This setting corresponds to your dfs.data.transfer.protection setting in the hdfs-site.xml file on your Hadoop cluster. Valid values are `DISABLED`, `AUTHENTICATION`, `INTEGRITY` and `PRIVACY`. :param str rpc_protection: The RPC protection setting configured on the HDFS cluster. This setting corresponds to your hadoop.rpc.protection setting in your core-site.xml file on your Hadoop cluster. Valid values are `DISABLED`, `AUTHENTICATION`, `INTEGRITY` and `PRIVACY`. """ + LocationHdfsQopConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_transfer_protection=data_transfer_protection, + rpc_protection=rpc_protection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_transfer_protection: Optional[str] = None, + rpc_protection: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_transfer_protection is None and 'dataTransferProtection' in kwargs: + data_transfer_protection = kwargs['dataTransferProtection'] + if rpc_protection is None and 'rpcProtection' in kwargs: + rpc_protection = kwargs['rpcProtection'] + if data_transfer_protection is not None: - pulumi.set(__self__, "data_transfer_protection", data_transfer_protection) + _setter("data_transfer_protection", data_transfer_protection) if rpc_protection is not None: - pulumi.set(__self__, "rpc_protection", rpc_protection) + _setter("rpc_protection", rpc_protection) @property @pulumi.getter(name="dataTransferProtection") @@ -430,8 +612,19 @@ def __init__(__self__, *, """ :param str version: The specific SMB version that you want DataSync to use for mounting your SMB share. Valid values: `AUTOMATIC`, `SMB2`, and `SMB3`. Default: `AUTOMATIC` """ + LocationSmbMountOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -449,8 +642,19 @@ def __init__(__self__, *, """ :param str version: The specific NFS version that you want DataSync to use for mounting your NFS share. Valid values: `AUTOMATIC`, `NFS3`, `NFS4_0` and `NFS4_1`. Default: `AUTOMATIC` """ + NfsLocationMountOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -485,7 +689,22 @@ def __init__(__self__, *, """ :param Sequence[str] agent_arns: List of Amazon Resource Names (ARNs) of the DataSync Agents used to connect to the NFS server. """ - pulumi.set(__self__, "agent_arns", agent_arns) + NfsLocationOnPremConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_arns=agent_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if agent_arns is None: + raise TypeError("Missing 'agent_arns' argument") + + _setter("agent_arns", agent_arns) @property @pulumi.getter(name="agentArns") @@ -520,7 +739,22 @@ def __init__(__self__, *, """ :param str bucket_access_role_arn: ARN of the IAM Role used to connect to the S3 Bucket. """ - pulumi.set(__self__, "bucket_access_role_arn", bucket_access_role_arn) + S3LocationS3Config._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_access_role_arn=bucket_access_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_access_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_access_role_arn is None and 'bucketAccessRoleArn' in kwargs: + bucket_access_role_arn = kwargs['bucketAccessRoleArn'] + if bucket_access_role_arn is None: + raise TypeError("Missing 'bucket_access_role_arn' argument") + + _setter("bucket_access_role_arn", bucket_access_role_arn) @property @pulumi.getter(name="bucketAccessRoleArn") @@ -557,10 +791,25 @@ def __init__(__self__, *, :param str filter_type: The type of filter rule to apply. Valid values: `SIMPLE_PATTERN`. :param str value: A single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example: `/folder1|/folder2` """ + TaskExcludes._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter_type=filter_type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter_type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter_type is None and 'filterType' in kwargs: + filter_type = kwargs['filterType'] + if filter_type is not None: - pulumi.set(__self__, "filter_type", filter_type) + _setter("filter_type", filter_type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="filterType") @@ -605,10 +854,25 @@ def __init__(__self__, *, :param str filter_type: The type of filter rule to apply. Valid values: `SIMPLE_PATTERN`. :param str value: A single filter string that consists of the patterns to include. The patterns are delimited by "|" (that is, a pipe), for example: `/folder1|/folder2` """ + TaskIncludes._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter_type=filter_type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter_type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter_type is None and 'filterType' in kwargs: + filter_type = kwargs['filterType'] + if filter_type is not None: - pulumi.set(__self__, "filter_type", filter_type) + _setter("filter_type", filter_type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="filterType") @@ -699,36 +963,97 @@ def __init__(__self__, *, :param str uid: User identifier of the file's owners. Valid values: `BOTH`, `INT_VALUE`, `NAME`, `NONE`. Default: `INT_VALUE` (preserve integer value of the ID). :param str verify_mode: Whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. Valid values: `NONE`, `POINT_IN_TIME_CONSISTENT`, `ONLY_FILES_TRANSFERRED`. Default: `POINT_IN_TIME_CONSISTENT`. """ + TaskOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + atime=atime, + bytes_per_second=bytes_per_second, + gid=gid, + log_level=log_level, + mtime=mtime, + object_tags=object_tags, + overwrite_mode=overwrite_mode, + posix_permissions=posix_permissions, + preserve_deleted_files=preserve_deleted_files, + preserve_devices=preserve_devices, + security_descriptor_copy_flags=security_descriptor_copy_flags, + task_queueing=task_queueing, + transfer_mode=transfer_mode, + uid=uid, + verify_mode=verify_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + atime: Optional[str] = None, + bytes_per_second: Optional[int] = None, + gid: Optional[str] = None, + log_level: Optional[str] = None, + mtime: Optional[str] = None, + object_tags: Optional[str] = None, + overwrite_mode: Optional[str] = None, + posix_permissions: Optional[str] = None, + preserve_deleted_files: Optional[str] = None, + preserve_devices: Optional[str] = None, + security_descriptor_copy_flags: Optional[str] = None, + task_queueing: Optional[str] = None, + transfer_mode: Optional[str] = None, + uid: Optional[str] = None, + verify_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bytes_per_second is None and 'bytesPerSecond' in kwargs: + bytes_per_second = kwargs['bytesPerSecond'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if object_tags is None and 'objectTags' in kwargs: + object_tags = kwargs['objectTags'] + if overwrite_mode is None and 'overwriteMode' in kwargs: + overwrite_mode = kwargs['overwriteMode'] + if posix_permissions is None and 'posixPermissions' in kwargs: + posix_permissions = kwargs['posixPermissions'] + if preserve_deleted_files is None and 'preserveDeletedFiles' in kwargs: + preserve_deleted_files = kwargs['preserveDeletedFiles'] + if preserve_devices is None and 'preserveDevices' in kwargs: + preserve_devices = kwargs['preserveDevices'] + if security_descriptor_copy_flags is None and 'securityDescriptorCopyFlags' in kwargs: + security_descriptor_copy_flags = kwargs['securityDescriptorCopyFlags'] + if task_queueing is None and 'taskQueueing' in kwargs: + task_queueing = kwargs['taskQueueing'] + if transfer_mode is None and 'transferMode' in kwargs: + transfer_mode = kwargs['transferMode'] + if verify_mode is None and 'verifyMode' in kwargs: + verify_mode = kwargs['verifyMode'] + if atime is not None: - pulumi.set(__self__, "atime", atime) + _setter("atime", atime) if bytes_per_second is not None: - pulumi.set(__self__, "bytes_per_second", bytes_per_second) + _setter("bytes_per_second", bytes_per_second) if gid is not None: - pulumi.set(__self__, "gid", gid) + _setter("gid", gid) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) if mtime is not None: - pulumi.set(__self__, "mtime", mtime) + _setter("mtime", mtime) if object_tags is not None: - pulumi.set(__self__, "object_tags", object_tags) + _setter("object_tags", object_tags) if overwrite_mode is not None: - pulumi.set(__self__, "overwrite_mode", overwrite_mode) + _setter("overwrite_mode", overwrite_mode) if posix_permissions is not None: - pulumi.set(__self__, "posix_permissions", posix_permissions) + _setter("posix_permissions", posix_permissions) if preserve_deleted_files is not None: - pulumi.set(__self__, "preserve_deleted_files", preserve_deleted_files) + _setter("preserve_deleted_files", preserve_deleted_files) if preserve_devices is not None: - pulumi.set(__self__, "preserve_devices", preserve_devices) + _setter("preserve_devices", preserve_devices) if security_descriptor_copy_flags is not None: - pulumi.set(__self__, "security_descriptor_copy_flags", security_descriptor_copy_flags) + _setter("security_descriptor_copy_flags", security_descriptor_copy_flags) if task_queueing is not None: - pulumi.set(__self__, "task_queueing", task_queueing) + _setter("task_queueing", task_queueing) if transfer_mode is not None: - pulumi.set(__self__, "transfer_mode", transfer_mode) + _setter("transfer_mode", transfer_mode) if uid is not None: - pulumi.set(__self__, "uid", uid) + _setter("uid", uid) if verify_mode is not None: - pulumi.set(__self__, "verify_mode", verify_mode) + _setter("verify_mode", verify_mode) @property @pulumi.getter @@ -875,7 +1200,22 @@ def __init__(__self__, *, """ :param str schedule_expression: Specifies the schedule you want your task to use for repeated executions. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html). """ - pulumi.set(__self__, "schedule_expression", schedule_expression) + TaskSchedule._configure( + lambda key, value: pulumi.set(__self__, key, value), + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schedule_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="scheduleExpression") diff --git a/sdk/python/pulumi_aws/datasync/s3_location.py b/sdk/python/pulumi_aws/datasync/s3_location.py index d0fa7fa475a..cf8fb7dbbf5 100644 --- a/sdk/python/pulumi_aws/datasync/s3_location.py +++ b/sdk/python/pulumi_aws/datasync/s3_location.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,50 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_storage_class: The Amazon S3 storage class that you want to store your files in when this location is used as a task destination. [Valid values](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes) :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "s3_bucket_arn", s3_bucket_arn) - pulumi.set(__self__, "s3_config", s3_config) - pulumi.set(__self__, "subdirectory", subdirectory) + S3LocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_arn=s3_bucket_arn, + s3_config=s3_config, + subdirectory=subdirectory, + agent_arns=agent_arns, + s3_storage_class=s3_storage_class, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_arn: Optional[pulumi.Input[str]] = None, + s3_config: Optional[pulumi.Input['S3LocationS3ConfigArgs']] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_storage_class: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_arn is None and 's3BucketArn' in kwargs: + s3_bucket_arn = kwargs['s3BucketArn'] + if s3_bucket_arn is None: + raise TypeError("Missing 's3_bucket_arn' argument") + if s3_config is None and 's3Config' in kwargs: + s3_config = kwargs['s3Config'] + if s3_config is None: + raise TypeError("Missing 's3_config' argument") + if subdirectory is None: + raise TypeError("Missing 'subdirectory' argument") + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if s3_storage_class is None and 's3StorageClass' in kwargs: + s3_storage_class = kwargs['s3StorageClass'] + + _setter("s3_bucket_arn", s3_bucket_arn) + _setter("s3_config", s3_config) + _setter("subdirectory", subdirectory) if agent_arns is not None: - pulumi.set(__self__, "agent_arns", agent_arns) + _setter("agent_arns", agent_arns) if s3_storage_class is not None: - pulumi.set(__self__, "s3_storage_class", s3_storage_class) + _setter("s3_storage_class", s3_storage_class) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="s3BucketArn") @@ -137,27 +172,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Location. 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. """ + _S3LocationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_arns=agent_arns, + arn=arn, + s3_bucket_arn=s3_bucket_arn, + s3_config=s3_config, + s3_storage_class=s3_storage_class, + subdirectory=subdirectory, + tags=tags, + tags_all=tags_all, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + s3_bucket_arn: Optional[pulumi.Input[str]] = None, + s3_config: Optional[pulumi.Input['S3LocationS3ConfigArgs']] = None, + s3_storage_class: Optional[pulumi.Input[str]] = None, + subdirectory: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_arns is None and 'agentArns' in kwargs: + agent_arns = kwargs['agentArns'] + if s3_bucket_arn is None and 's3BucketArn' in kwargs: + s3_bucket_arn = kwargs['s3BucketArn'] + if s3_config is None and 's3Config' in kwargs: + s3_config = kwargs['s3Config'] + if s3_storage_class is None and 's3StorageClass' in kwargs: + s3_storage_class = kwargs['s3StorageClass'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if agent_arns is not None: - pulumi.set(__self__, "agent_arns", agent_arns) + _setter("agent_arns", agent_arns) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if s3_bucket_arn is not None: - pulumi.set(__self__, "s3_bucket_arn", s3_bucket_arn) + _setter("s3_bucket_arn", s3_bucket_arn) if s3_config is not None: - pulumi.set(__self__, "s3_config", s3_config) + _setter("s3_config", s3_config) if s3_storage_class is not None: - pulumi.set(__self__, "s3_storage_class", s3_storage_class) + _setter("s3_storage_class", s3_storage_class) if subdirectory is not None: - pulumi.set(__self__, "subdirectory", subdirectory) + _setter("subdirectory", subdirectory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter(name="agentArns") @@ -355,6 +427,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + S3LocationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -379,6 +455,7 @@ def _internal_init(__self__, if s3_bucket_arn is None and not opts.urn: raise TypeError("Missing required property 's3_bucket_arn'") __props__.__dict__["s3_bucket_arn"] = s3_bucket_arn + s3_config = _utilities.configure(s3_config, S3LocationS3ConfigArgs, True) if s3_config is None and not opts.urn: raise TypeError("Missing required property 's3_config'") __props__.__dict__["s3_config"] = s3_config diff --git a/sdk/python/pulumi_aws/datasync/task.py b/sdk/python/pulumi_aws/datasync/task.py index c1d4e97bf60..0cfe18fc527 100644 --- a/sdk/python/pulumi_aws/datasync/task.py +++ b/sdk/python/pulumi_aws/datasync/task.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,22 +37,59 @@ def __init__(__self__, *, :param pulumi.Input['TaskScheduleArgs'] schedule: Specifies a schedule used to periodically transfer files from a source to a destination location. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Task. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "destination_location_arn", destination_location_arn) - pulumi.set(__self__, "source_location_arn", source_location_arn) + TaskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_location_arn=destination_location_arn, + source_location_arn=source_location_arn, + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + excludes=excludes, + includes=includes, + name=name, + options=options, + schedule=schedule, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_location_arn: Optional[pulumi.Input[str]] = None, + source_location_arn: Optional[pulumi.Input[str]] = None, + cloudwatch_log_group_arn: Optional[pulumi.Input[str]] = None, + excludes: Optional[pulumi.Input['TaskExcludesArgs']] = None, + includes: Optional[pulumi.Input['TaskIncludesArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input['TaskOptionsArgs']] = None, + schedule: Optional[pulumi.Input['TaskScheduleArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_location_arn is None and 'destinationLocationArn' in kwargs: + destination_location_arn = kwargs['destinationLocationArn'] + if destination_location_arn is None: + raise TypeError("Missing 'destination_location_arn' argument") + if source_location_arn is None and 'sourceLocationArn' in kwargs: + source_location_arn = kwargs['sourceLocationArn'] + if source_location_arn is None: + raise TypeError("Missing 'source_location_arn' argument") + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + + _setter("destination_location_arn", destination_location_arn) + _setter("source_location_arn", source_location_arn) if cloudwatch_log_group_arn is not None: - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) if excludes is not None: - pulumi.set(__self__, "excludes", excludes) + _setter("excludes", excludes) if includes is not None: - pulumi.set(__self__, "includes", includes) + _setter("includes", includes) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="destinationLocationArn") @@ -191,31 +228,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value pairs of resource tags to assign to the DataSync Task. 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. """ + _TaskState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + destination_location_arn=destination_location_arn, + excludes=excludes, + includes=includes, + name=name, + options=options, + schedule=schedule, + source_location_arn=source_location_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cloudwatch_log_group_arn: Optional[pulumi.Input[str]] = None, + destination_location_arn: Optional[pulumi.Input[str]] = None, + excludes: Optional[pulumi.Input['TaskExcludesArgs']] = None, + includes: Optional[pulumi.Input['TaskIncludesArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input['TaskOptionsArgs']] = None, + schedule: Optional[pulumi.Input['TaskScheduleArgs']] = None, + source_location_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if destination_location_arn is None and 'destinationLocationArn' in kwargs: + destination_location_arn = kwargs['destinationLocationArn'] + if source_location_arn is None and 'sourceLocationArn' in kwargs: + source_location_arn = kwargs['sourceLocationArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cloudwatch_log_group_arn is not None: - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) if destination_location_arn is not None: - pulumi.set(__self__, "destination_location_arn", destination_location_arn) + _setter("destination_location_arn", destination_location_arn) if excludes is not None: - pulumi.set(__self__, "excludes", excludes) + _setter("excludes", excludes) if includes is not None: - pulumi.set(__self__, "includes", includes) + _setter("includes", includes) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if source_location_arn is not None: - pulumi.set(__self__, "source_location_arn", source_location_arn) + _setter("source_location_arn", source_location_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -484,6 +560,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TaskArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -511,10 +591,14 @@ def _internal_init(__self__, if destination_location_arn is None and not opts.urn: raise TypeError("Missing required property 'destination_location_arn'") __props__.__dict__["destination_location_arn"] = destination_location_arn + excludes = _utilities.configure(excludes, TaskExcludesArgs, True) __props__.__dict__["excludes"] = excludes + includes = _utilities.configure(includes, TaskIncludesArgs, True) __props__.__dict__["includes"] = includes __props__.__dict__["name"] = name + options = _utilities.configure(options, TaskOptionsArgs, True) __props__.__dict__["options"] = options + schedule = _utilities.configure(schedule, TaskScheduleArgs, True) __props__.__dict__["schedule"] = schedule if source_location_arn is None and not opts.urn: raise TypeError("Missing required property 'source_location_arn'") diff --git a/sdk/python/pulumi_aws/dax/_inputs.py b/sdk/python/pulumi_aws/dax/_inputs.py index 45349acaac1..9cf50acb33b 100644 --- a/sdk/python/pulumi_aws/dax/_inputs.py +++ b/sdk/python/pulumi_aws/dax/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -25,14 +25,33 @@ def __init__(__self__, *, """ :param pulumi.Input[int] port: The port used by the configuration endpoint """ + ClusterNodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + availability_zone=availability_zone, + id=id, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -81,8 +100,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether to enable encryption at rest. Defaults to `false`. """ + ClusterServerSideEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -106,8 +136,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the parameter. :param pulumi.Input[str] value: The value for the parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/dax/cluster.py b/sdk/python/pulumi_aws/dax/cluster.py index 323e9d84ace..caeb48ba946 100644 --- a/sdk/python/pulumi_aws/dax/cluster.py +++ b/sdk/python/pulumi_aws/dax/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -64,30 +64,99 @@ def __init__(__self__, *, cluster :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "cluster_name", cluster_name) - pulumi.set(__self__, "iam_role_arn", iam_role_arn) - pulumi.set(__self__, "node_type", node_type) - pulumi.set(__self__, "replication_factor", replication_factor) + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_name=cluster_name, + iam_role_arn=iam_role_arn, + node_type=node_type, + replication_factor=replication_factor, + availability_zones=availability_zones, + cluster_endpoint_encryption_type=cluster_endpoint_encryption_type, + description=description, + maintenance_window=maintenance_window, + notification_topic_arn=notification_topic_arn, + parameter_group_name=parameter_group_name, + security_group_ids=security_group_ids, + server_side_encryption=server_side_encryption, + subnet_group_name=subnet_group_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_name: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + replication_factor: Optional[pulumi.Input[int]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cluster_endpoint_encryption_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + notification_topic_arn: Optional[pulumi.Input[str]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + server_side_encryption: Optional[pulumi.Input['ClusterServerSideEncryptionArgs']] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_name is None: + raise TypeError("Missing 'cluster_name' argument") + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if iam_role_arn is None: + raise TypeError("Missing 'iam_role_arn' argument") + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if node_type is None: + raise TypeError("Missing 'node_type' argument") + if replication_factor is None and 'replicationFactor' in kwargs: + replication_factor = kwargs['replicationFactor'] + if replication_factor is None: + raise TypeError("Missing 'replication_factor' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if cluster_endpoint_encryption_type is None and 'clusterEndpointEncryptionType' in kwargs: + cluster_endpoint_encryption_type = kwargs['clusterEndpointEncryptionType'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if notification_topic_arn is None and 'notificationTopicArn' in kwargs: + notification_topic_arn = kwargs['notificationTopicArn'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + + _setter("cluster_name", cluster_name) + _setter("iam_role_arn", iam_role_arn) + _setter("node_type", node_type) + _setter("replication_factor", replication_factor) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if cluster_endpoint_encryption_type is not None: - pulumi.set(__self__, "cluster_endpoint_encryption_type", cluster_endpoint_encryption_type) + _setter("cluster_endpoint_encryption_type", cluster_endpoint_encryption_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if notification_topic_arn is not None: - pulumi.set(__self__, "notification_topic_arn", notification_topic_arn) + _setter("notification_topic_arn", notification_topic_arn) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterName") @@ -341,49 +410,128 @@ def __init__(__self__, *, :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. """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zones=availability_zones, + cluster_address=cluster_address, + cluster_endpoint_encryption_type=cluster_endpoint_encryption_type, + cluster_name=cluster_name, + configuration_endpoint=configuration_endpoint, + description=description, + iam_role_arn=iam_role_arn, + maintenance_window=maintenance_window, + node_type=node_type, + nodes=nodes, + notification_topic_arn=notification_topic_arn, + parameter_group_name=parameter_group_name, + port=port, + replication_factor=replication_factor, + security_group_ids=security_group_ids, + server_side_encryption=server_side_encryption, + subnet_group_name=subnet_group_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cluster_address: Optional[pulumi.Input[str]] = None, + cluster_endpoint_encryption_type: Optional[pulumi.Input[str]] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + configuration_endpoint: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + nodes: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNodeArgs']]]] = None, + notification_topic_arn: Optional[pulumi.Input[str]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + replication_factor: Optional[pulumi.Input[int]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + server_side_encryption: Optional[pulumi.Input['ClusterServerSideEncryptionArgs']] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if cluster_address is None and 'clusterAddress' in kwargs: + cluster_address = kwargs['clusterAddress'] + if cluster_endpoint_encryption_type is None and 'clusterEndpointEncryptionType' in kwargs: + cluster_endpoint_encryption_type = kwargs['clusterEndpointEncryptionType'] + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if configuration_endpoint is None and 'configurationEndpoint' in kwargs: + configuration_endpoint = kwargs['configurationEndpoint'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if notification_topic_arn is None and 'notificationTopicArn' in kwargs: + notification_topic_arn = kwargs['notificationTopicArn'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if replication_factor is None and 'replicationFactor' in kwargs: + replication_factor = kwargs['replicationFactor'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if cluster_address is not None: - pulumi.set(__self__, "cluster_address", cluster_address) + _setter("cluster_address", cluster_address) if cluster_endpoint_encryption_type is not None: - pulumi.set(__self__, "cluster_endpoint_encryption_type", cluster_endpoint_encryption_type) + _setter("cluster_endpoint_encryption_type", cluster_endpoint_encryption_type) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if configuration_endpoint is not None: - pulumi.set(__self__, "configuration_endpoint", configuration_endpoint) + _setter("configuration_endpoint", configuration_endpoint) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if nodes is not None: - pulumi.set(__self__, "nodes", nodes) + _setter("nodes", nodes) if notification_topic_arn is not None: - pulumi.set(__self__, "notification_topic_arn", notification_topic_arn) + _setter("notification_topic_arn", notification_topic_arn) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if replication_factor is not None: - pulumi.set(__self__, "replication_factor", replication_factor) + _setter("replication_factor", replication_factor) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -767,6 +915,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -814,6 +966,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'replication_factor'") __props__.__dict__["replication_factor"] = replication_factor __props__.__dict__["security_group_ids"] = security_group_ids + server_side_encryption = _utilities.configure(server_side_encryption, ClusterServerSideEncryptionArgs, True) __props__.__dict__["server_side_encryption"] = server_side_encryption __props__.__dict__["subnet_group_name"] = subnet_group_name __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/dax/outputs.py b/sdk/python/pulumi_aws/dax/outputs.py index 72bc0550ea9..e9d902823db 100644 --- a/sdk/python/pulumi_aws/dax/outputs.py +++ b/sdk/python/pulumi_aws/dax/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -42,14 +42,33 @@ def __init__(__self__, *, """ :param int port: The port used by the configuration endpoint """ + ClusterNode._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + availability_zone=availability_zone, + id=id, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + availability_zone: Optional[str] = None, + id: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -82,8 +101,19 @@ def __init__(__self__, *, """ :param bool enabled: Whether to enable encryption at rest. Defaults to `false`. """ + ClusterServerSideEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -103,8 +133,25 @@ def __init__(__self__, *, :param str name: The name of the parameter. :param str value: The value for the parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/dax/parameter_group.py b/sdk/python/pulumi_aws/dax/parameter_group.py index aacdce4d40a..25a741bc525 100644 --- a/sdk/python/pulumi_aws/dax/parameter_group.py +++ b/sdk/python/pulumi_aws/dax/parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,12 +25,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the parameter group. :param pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]] parameters: The parameters of the parameter group. """ + ParameterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -81,12 +96,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the parameter group. :param pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]] parameters: The parameters of the parameter group. """ + _ParameterGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -214,6 +244,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ParameterGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dax/subnet_group.py b/sdk/python/pulumi_aws/dax/subnet_group.py index 76d3858bfdd..ea84ee23f6e 100644 --- a/sdk/python/pulumi_aws/dax/subnet_group.py +++ b/sdk/python/pulumi_aws/dax/subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SubnetGroupArgs', 'SubnetGroup'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description of the subnet group. :param pulumi.Input[str] name: The name of the subnet group. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + SubnetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + + _setter("subnet_ids", subnet_ids) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="subnetIds") @@ -80,14 +99,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of VPC subnet IDs for the subnet group. :param pulumi.Input[str] vpc_id: VPC ID of the subnet group. """ + _SubnetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -215,6 +255,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SubnetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/detective/graph.py b/sdk/python/pulumi_aws/detective/graph.py index 92950a0f2b5..3c5c6ce64b2 100644 --- a/sdk/python/pulumi_aws/detective/graph.py +++ b/sdk/python/pulumi_aws/detective/graph.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GraphArgs', 'Graph'] @@ -19,8 +19,19 @@ def __init__(__self__, *, The set of arguments for constructing a Graph resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the instance. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + GraphArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -48,17 +59,40 @@ def __init__(__self__, *, :param pulumi.Input[str] graph_arn: ARN of the Detective Graph. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the instance. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + _GraphState._configure( + lambda key, value: pulumi.set(__self__, key, value), + created_time=created_time, + graph_arn=graph_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + created_time: Optional[pulumi.Input[str]] = None, + graph_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if graph_arn is None and 'graphArn' in kwargs: + graph_arn = kwargs['graphArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if graph_arn is not None: - pulumi.set(__self__, "graph_arn", graph_arn) + _setter("graph_arn", graph_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="createdTime") @@ -180,6 +214,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GraphArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/detective/invitation_accepter.py b/sdk/python/pulumi_aws/detective/invitation_accepter.py index 3134b29a753..c76c483ffd7 100644 --- a/sdk/python/pulumi_aws/detective/invitation_accepter.py +++ b/sdk/python/pulumi_aws/detective/invitation_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InvitationAccepterArgs', 'InvitationAccepter'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a InvitationAccepter resource. :param pulumi.Input[str] graph_arn: ARN of the behavior graph that the member account is accepting the invitation for. """ - pulumi.set(__self__, "graph_arn", graph_arn) + InvitationAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + graph_arn=graph_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + graph_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if graph_arn is None and 'graphArn' in kwargs: + graph_arn = kwargs['graphArn'] + if graph_arn is None: + raise TypeError("Missing 'graph_arn' argument") + + _setter("graph_arn", graph_arn) @property @pulumi.getter(name="graphArn") @@ -42,8 +57,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering InvitationAccepter resources. :param pulumi.Input[str] graph_arn: ARN of the behavior graph that the member account is accepting the invitation for. """ + _InvitationAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + graph_arn=graph_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + graph_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if graph_arn is None and 'graphArn' in kwargs: + graph_arn = kwargs['graphArn'] + if graph_arn is not None: - pulumi.set(__self__, "graph_arn", graph_arn) + _setter("graph_arn", graph_arn) @property @pulumi.getter(name="graphArn") @@ -141,6 +169,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InvitationAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/detective/member.py b/sdk/python/pulumi_aws/detective/member.py index aad9efb8ca3..331759a780b 100644 --- a/sdk/python/pulumi_aws/detective/member.py +++ b/sdk/python/pulumi_aws/detective/member.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MemberArgs', 'Member'] @@ -27,13 +27,46 @@ def __init__(__self__, *, :param pulumi.Input[bool] disable_email_notification: If set to true, then the root user of the invited account will _not_ receive an email notification. This notification is in addition to an alert that the root user receives in AWS Personal Health Dashboard. By default, this is set to `false`. :param pulumi.Input[str] message: A custom message to include in the invitation. Amazon Detective adds this message to the standard content that it sends for an invitation. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "email_address", email_address) - pulumi.set(__self__, "graph_arn", graph_arn) + MemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + email_address=email_address, + graph_arn=graph_arn, + disable_email_notification=disable_email_notification, + message=message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + email_address: Optional[pulumi.Input[str]] = None, + graph_arn: Optional[pulumi.Input[str]] = None, + disable_email_notification: Optional[pulumi.Input[bool]] = None, + message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + if email_address is None: + raise TypeError("Missing 'email_address' argument") + if graph_arn is None and 'graphArn' in kwargs: + graph_arn = kwargs['graphArn'] + if graph_arn is None: + raise TypeError("Missing 'graph_arn' argument") + if disable_email_notification is None and 'disableEmailNotification' in kwargs: + disable_email_notification = kwargs['disableEmailNotification'] + + _setter("account_id", account_id) + _setter("email_address", email_address) + _setter("graph_arn", graph_arn) if disable_email_notification is not None: - pulumi.set(__self__, "disable_email_notification", disable_email_notification) + _setter("disable_email_notification", disable_email_notification) if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) @property @pulumi.getter(name="accountId") @@ -123,28 +156,77 @@ def __init__(__self__, *, :param pulumi.Input[str] updated_time: Date and time, in UTC and extended RFC 3339 format, of the most recent change to the member account's status. :param pulumi.Input[str] volume_usage_in_bytes: Data volume in bytes per day for the member account. """ + _MemberState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + administrator_id=administrator_id, + disable_email_notification=disable_email_notification, + disabled_reason=disabled_reason, + email_address=email_address, + graph_arn=graph_arn, + invited_time=invited_time, + message=message, + status=status, + updated_time=updated_time, + volume_usage_in_bytes=volume_usage_in_bytes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + administrator_id: Optional[pulumi.Input[str]] = None, + disable_email_notification: Optional[pulumi.Input[bool]] = None, + disabled_reason: Optional[pulumi.Input[str]] = None, + email_address: Optional[pulumi.Input[str]] = None, + graph_arn: Optional[pulumi.Input[str]] = None, + invited_time: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + updated_time: Optional[pulumi.Input[str]] = None, + volume_usage_in_bytes: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if administrator_id is None and 'administratorId' in kwargs: + administrator_id = kwargs['administratorId'] + if disable_email_notification is None and 'disableEmailNotification' in kwargs: + disable_email_notification = kwargs['disableEmailNotification'] + if disabled_reason is None and 'disabledReason' in kwargs: + disabled_reason = kwargs['disabledReason'] + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + if graph_arn is None and 'graphArn' in kwargs: + graph_arn = kwargs['graphArn'] + if invited_time is None and 'invitedTime' in kwargs: + invited_time = kwargs['invitedTime'] + if updated_time is None and 'updatedTime' in kwargs: + updated_time = kwargs['updatedTime'] + if volume_usage_in_bytes is None and 'volumeUsageInBytes' in kwargs: + volume_usage_in_bytes = kwargs['volumeUsageInBytes'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if administrator_id is not None: - pulumi.set(__self__, "administrator_id", administrator_id) + _setter("administrator_id", administrator_id) if disable_email_notification is not None: - pulumi.set(__self__, "disable_email_notification", disable_email_notification) + _setter("disable_email_notification", disable_email_notification) if disabled_reason is not None: - pulumi.set(__self__, "disabled_reason", disabled_reason) + _setter("disabled_reason", disabled_reason) if email_address is not None: - pulumi.set(__self__, "email_address", email_address) + _setter("email_address", email_address) if graph_arn is not None: - pulumi.set(__self__, "graph_arn", graph_arn) + _setter("graph_arn", graph_arn) if invited_time is not None: - pulumi.set(__self__, "invited_time", invited_time) + _setter("invited_time", invited_time) if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if updated_time is not None: - pulumi.set(__self__, "updated_time", updated_time) + _setter("updated_time", updated_time) if volume_usage_in_bytes is not None: - pulumi.set(__self__, "volume_usage_in_bytes", volume_usage_in_bytes) + _setter("volume_usage_in_bytes", volume_usage_in_bytes) @property @pulumi.getter(name="accountId") @@ -363,6 +445,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MemberArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/devicefarm/_inputs.py b/sdk/python/pulumi_aws/devicefarm/_inputs.py index f5ef3904c7d..ff8fb69e89a 100644 --- a/sdk/python/pulumi_aws/devicefarm/_inputs.py +++ b/sdk/python/pulumi_aws/devicefarm/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -25,12 +25,27 @@ def __init__(__self__, *, :param pulumi.Input[str] operator: Specifies how Device Farm compares the rule's attribute to the value. For the operators that are supported by each attribute. Valid values are: `EQUALS`, `NOT_IN`, `IN`, `GREATER_THAN`, `GREATER_THAN_OR_EQUALS`, `LESS_THAN`, `LESS_THAN_OR_EQUALS`, `CONTAINS`. :param pulumi.Input[str] value: The rule's value. """ + DevicePoolRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute=attribute, + operator=operator, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute: Optional[pulumi.Input[str]] = None, + operator: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute is not None: - pulumi.set(__self__, "attribute", attribute) + _setter("attribute", attribute) if operator is not None: - pulumi.set(__self__, "operator", operator) + _setter("operator", operator) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -80,9 +95,36 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of VPC subnet IDs in your Amazon VPC. :param pulumi.Input[str] vpc_id: The ID of the Amazon VPC. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + TestGridProjectVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/devicefarm/device_pool.py b/sdk/python/pulumi_aws/devicefarm/device_pool.py index 0a1ccec59f1..ecc1bf06d06 100644 --- a/sdk/python/pulumi_aws/devicefarm/device_pool.py +++ b/sdk/python/pulumi_aws/devicefarm/device_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,45 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Device Pool :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "project_arn", project_arn) - pulumi.set(__self__, "rules", rules) + DevicePoolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + project_arn=project_arn, + rules=rules, + description=description, + max_devices=max_devices, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + project_arn: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['DevicePoolRuleArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + max_devices: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if project_arn is None and 'projectArn' in kwargs: + project_arn = kwargs['projectArn'] + if project_arn is None: + raise TypeError("Missing 'project_arn' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + if max_devices is None and 'maxDevices' in kwargs: + max_devices = kwargs['maxDevices'] + + _setter("project_arn", project_arn) + _setter("rules", rules) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if max_devices is not None: - pulumi.set(__self__, "max_devices", max_devices) + _setter("max_devices", max_devices) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="projectArn") @@ -138,27 +167,60 @@ def __init__(__self__, *, :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. """ + _DevicePoolState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + max_devices=max_devices, + name=name, + project_arn=project_arn, + rules=rules, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + max_devices: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + project_arn: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['DevicePoolRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_devices is None and 'maxDevices' in kwargs: + max_devices = kwargs['maxDevices'] + if project_arn is None and 'projectArn' in kwargs: + project_arn = kwargs['projectArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if max_devices is not None: - pulumi.set(__self__, "max_devices", max_devices) + _setter("max_devices", max_devices) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if project_arn is not None: - pulumi.set(__self__, "project_arn", project_arn) + _setter("project_arn", project_arn) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -358,6 +420,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DevicePoolArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/devicefarm/instance_profile.py b/sdk/python/pulumi_aws/devicefarm/instance_profile.py index 6f20224f69c..beb188f6c1b 100644 --- a/sdk/python/pulumi_aws/devicefarm/instance_profile.py +++ b/sdk/python/pulumi_aws/devicefarm/instance_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InstanceProfileArgs', 'InstanceProfile'] @@ -29,18 +29,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] reboot_after_use: When set to `true`, Device Farm reboots the instance after a test run. The default value is `true`. :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. """ + InstanceProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + exclude_app_packages_from_cleanups=exclude_app_packages_from_cleanups, + name=name, + package_cleanup=package_cleanup, + reboot_after_use=reboot_after_use, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + exclude_app_packages_from_cleanups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + package_cleanup: Optional[pulumi.Input[bool]] = None, + reboot_after_use: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exclude_app_packages_from_cleanups is None and 'excludeAppPackagesFromCleanups' in kwargs: + exclude_app_packages_from_cleanups = kwargs['excludeAppPackagesFromCleanups'] + if package_cleanup is None and 'packageCleanup' in kwargs: + package_cleanup = kwargs['packageCleanup'] + if reboot_after_use is None and 'rebootAfterUse' in kwargs: + reboot_after_use = kwargs['rebootAfterUse'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if exclude_app_packages_from_cleanups is not None: - pulumi.set(__self__, "exclude_app_packages_from_cleanups", exclude_app_packages_from_cleanups) + _setter("exclude_app_packages_from_cleanups", exclude_app_packages_from_cleanups) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if package_cleanup is not None: - pulumi.set(__self__, "package_cleanup", package_cleanup) + _setter("package_cleanup", package_cleanup) if reboot_after_use is not None: - pulumi.set(__self__, "reboot_after_use", reboot_after_use) + _setter("reboot_after_use", reboot_after_use) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -137,25 +164,58 @@ def __init__(__self__, *, :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. """ + _InstanceProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + exclude_app_packages_from_cleanups=exclude_app_packages_from_cleanups, + name=name, + package_cleanup=package_cleanup, + reboot_after_use=reboot_after_use, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + exclude_app_packages_from_cleanups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + package_cleanup: Optional[pulumi.Input[bool]] = None, + reboot_after_use: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exclude_app_packages_from_cleanups is None and 'excludeAppPackagesFromCleanups' in kwargs: + exclude_app_packages_from_cleanups = kwargs['excludeAppPackagesFromCleanups'] + if package_cleanup is None and 'packageCleanup' in kwargs: + package_cleanup = kwargs['packageCleanup'] + if reboot_after_use is None and 'rebootAfterUse' in kwargs: + reboot_after_use = kwargs['rebootAfterUse'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if exclude_app_packages_from_cleanups is not None: - pulumi.set(__self__, "exclude_app_packages_from_cleanups", exclude_app_packages_from_cleanups) + _setter("exclude_app_packages_from_cleanups", exclude_app_packages_from_cleanups) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if package_cleanup is not None: - pulumi.set(__self__, "package_cleanup", package_cleanup) + _setter("package_cleanup", package_cleanup) if reboot_after_use is not None: - pulumi.set(__self__, "reboot_after_use", reboot_after_use) + _setter("reboot_after_use", reboot_after_use) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -338,6 +398,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/devicefarm/network_profile.py b/sdk/python/pulumi_aws/devicefarm/network_profile.py index c5cc19bcd75..12fadf073da 100644 --- a/sdk/python/pulumi_aws/devicefarm/network_profile.py +++ b/sdk/python/pulumi_aws/devicefarm/network_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NetworkProfileArgs', 'NetworkProfile'] @@ -43,31 +43,86 @@ def __init__(__self__, *, :param pulumi.Input[int] uplink_jitter_ms: Time variation in the delay of received packets in milliseconds as an integer from `0` to `2000`. :param pulumi.Input[int] uplink_loss_percent: Proportion of received packets that fail to arrive from `0` to `100` percent. """ - pulumi.set(__self__, "project_arn", project_arn) + NetworkProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + project_arn=project_arn, + description=description, + downlink_bandwidth_bits=downlink_bandwidth_bits, + downlink_delay_ms=downlink_delay_ms, + downlink_jitter_ms=downlink_jitter_ms, + downlink_loss_percent=downlink_loss_percent, + name=name, + tags=tags, + type=type, + uplink_bandwidth_bits=uplink_bandwidth_bits, + uplink_delay_ms=uplink_delay_ms, + uplink_jitter_ms=uplink_jitter_ms, + uplink_loss_percent=uplink_loss_percent, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + project_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + downlink_bandwidth_bits: Optional[pulumi.Input[int]] = None, + downlink_delay_ms: Optional[pulumi.Input[int]] = None, + downlink_jitter_ms: Optional[pulumi.Input[int]] = None, + downlink_loss_percent: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + uplink_bandwidth_bits: Optional[pulumi.Input[int]] = None, + uplink_delay_ms: Optional[pulumi.Input[int]] = None, + uplink_jitter_ms: Optional[pulumi.Input[int]] = None, + uplink_loss_percent: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if project_arn is None and 'projectArn' in kwargs: + project_arn = kwargs['projectArn'] + if project_arn is None: + raise TypeError("Missing 'project_arn' argument") + if downlink_bandwidth_bits is None and 'downlinkBandwidthBits' in kwargs: + downlink_bandwidth_bits = kwargs['downlinkBandwidthBits'] + if downlink_delay_ms is None and 'downlinkDelayMs' in kwargs: + downlink_delay_ms = kwargs['downlinkDelayMs'] + if downlink_jitter_ms is None and 'downlinkJitterMs' in kwargs: + downlink_jitter_ms = kwargs['downlinkJitterMs'] + if downlink_loss_percent is None and 'downlinkLossPercent' in kwargs: + downlink_loss_percent = kwargs['downlinkLossPercent'] + if uplink_bandwidth_bits is None and 'uplinkBandwidthBits' in kwargs: + uplink_bandwidth_bits = kwargs['uplinkBandwidthBits'] + if uplink_delay_ms is None and 'uplinkDelayMs' in kwargs: + uplink_delay_ms = kwargs['uplinkDelayMs'] + if uplink_jitter_ms is None and 'uplinkJitterMs' in kwargs: + uplink_jitter_ms = kwargs['uplinkJitterMs'] + if uplink_loss_percent is None and 'uplinkLossPercent' in kwargs: + uplink_loss_percent = kwargs['uplinkLossPercent'] + + _setter("project_arn", project_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if downlink_bandwidth_bits is not None: - pulumi.set(__self__, "downlink_bandwidth_bits", downlink_bandwidth_bits) + _setter("downlink_bandwidth_bits", downlink_bandwidth_bits) if downlink_delay_ms is not None: - pulumi.set(__self__, "downlink_delay_ms", downlink_delay_ms) + _setter("downlink_delay_ms", downlink_delay_ms) if downlink_jitter_ms is not None: - pulumi.set(__self__, "downlink_jitter_ms", downlink_jitter_ms) + _setter("downlink_jitter_ms", downlink_jitter_ms) if downlink_loss_percent is not None: - pulumi.set(__self__, "downlink_loss_percent", downlink_loss_percent) + _setter("downlink_loss_percent", downlink_loss_percent) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if uplink_bandwidth_bits is not None: - pulumi.set(__self__, "uplink_bandwidth_bits", uplink_bandwidth_bits) + _setter("uplink_bandwidth_bits", uplink_bandwidth_bits) if uplink_delay_ms is not None: - pulumi.set(__self__, "uplink_delay_ms", uplink_delay_ms) + _setter("uplink_delay_ms", uplink_delay_ms) if uplink_jitter_ms is not None: - pulumi.set(__self__, "uplink_jitter_ms", uplink_jitter_ms) + _setter("uplink_jitter_ms", uplink_jitter_ms) if uplink_loss_percent is not None: - pulumi.set(__self__, "uplink_loss_percent", uplink_loss_percent) + _setter("uplink_loss_percent", uplink_loss_percent) @property @pulumi.getter(name="projectArn") @@ -262,39 +317,98 @@ def __init__(__self__, *, :param pulumi.Input[int] uplink_jitter_ms: Time variation in the delay of received packets in milliseconds as an integer from `0` to `2000`. :param pulumi.Input[int] uplink_loss_percent: Proportion of received packets that fail to arrive from `0` to `100` percent. """ + _NetworkProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + downlink_bandwidth_bits=downlink_bandwidth_bits, + downlink_delay_ms=downlink_delay_ms, + downlink_jitter_ms=downlink_jitter_ms, + downlink_loss_percent=downlink_loss_percent, + name=name, + project_arn=project_arn, + tags=tags, + tags_all=tags_all, + type=type, + uplink_bandwidth_bits=uplink_bandwidth_bits, + uplink_delay_ms=uplink_delay_ms, + uplink_jitter_ms=uplink_jitter_ms, + uplink_loss_percent=uplink_loss_percent, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + downlink_bandwidth_bits: Optional[pulumi.Input[int]] = None, + downlink_delay_ms: Optional[pulumi.Input[int]] = None, + downlink_jitter_ms: Optional[pulumi.Input[int]] = None, + downlink_loss_percent: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + project_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + uplink_bandwidth_bits: Optional[pulumi.Input[int]] = None, + uplink_delay_ms: Optional[pulumi.Input[int]] = None, + uplink_jitter_ms: Optional[pulumi.Input[int]] = None, + uplink_loss_percent: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downlink_bandwidth_bits is None and 'downlinkBandwidthBits' in kwargs: + downlink_bandwidth_bits = kwargs['downlinkBandwidthBits'] + if downlink_delay_ms is None and 'downlinkDelayMs' in kwargs: + downlink_delay_ms = kwargs['downlinkDelayMs'] + if downlink_jitter_ms is None and 'downlinkJitterMs' in kwargs: + downlink_jitter_ms = kwargs['downlinkJitterMs'] + if downlink_loss_percent is None and 'downlinkLossPercent' in kwargs: + downlink_loss_percent = kwargs['downlinkLossPercent'] + if project_arn is None and 'projectArn' in kwargs: + project_arn = kwargs['projectArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if uplink_bandwidth_bits is None and 'uplinkBandwidthBits' in kwargs: + uplink_bandwidth_bits = kwargs['uplinkBandwidthBits'] + if uplink_delay_ms is None and 'uplinkDelayMs' in kwargs: + uplink_delay_ms = kwargs['uplinkDelayMs'] + if uplink_jitter_ms is None and 'uplinkJitterMs' in kwargs: + uplink_jitter_ms = kwargs['uplinkJitterMs'] + if uplink_loss_percent is None and 'uplinkLossPercent' in kwargs: + uplink_loss_percent = kwargs['uplinkLossPercent'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if downlink_bandwidth_bits is not None: - pulumi.set(__self__, "downlink_bandwidth_bits", downlink_bandwidth_bits) + _setter("downlink_bandwidth_bits", downlink_bandwidth_bits) if downlink_delay_ms is not None: - pulumi.set(__self__, "downlink_delay_ms", downlink_delay_ms) + _setter("downlink_delay_ms", downlink_delay_ms) if downlink_jitter_ms is not None: - pulumi.set(__self__, "downlink_jitter_ms", downlink_jitter_ms) + _setter("downlink_jitter_ms", downlink_jitter_ms) if downlink_loss_percent is not None: - pulumi.set(__self__, "downlink_loss_percent", downlink_loss_percent) + _setter("downlink_loss_percent", downlink_loss_percent) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if project_arn is not None: - pulumi.set(__self__, "project_arn", project_arn) + _setter("project_arn", project_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if uplink_bandwidth_bits is not None: - pulumi.set(__self__, "uplink_bandwidth_bits", uplink_bandwidth_bits) + _setter("uplink_bandwidth_bits", uplink_bandwidth_bits) if uplink_delay_ms is not None: - pulumi.set(__self__, "uplink_delay_ms", uplink_delay_ms) + _setter("uplink_delay_ms", uplink_delay_ms) if uplink_jitter_ms is not None: - pulumi.set(__self__, "uplink_jitter_ms", uplink_jitter_ms) + _setter("uplink_jitter_ms", uplink_jitter_ms) if uplink_loss_percent is not None: - pulumi.set(__self__, "uplink_loss_percent", uplink_loss_percent) + _setter("uplink_loss_percent", uplink_loss_percent) @property @pulumi.getter @@ -577,6 +691,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/devicefarm/outputs.py b/sdk/python/pulumi_aws/devicefarm/outputs.py index 1489f694026..3e657f9918d 100644 --- a/sdk/python/pulumi_aws/devicefarm/outputs.py +++ b/sdk/python/pulumi_aws/devicefarm/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -25,12 +25,27 @@ def __init__(__self__, *, :param str operator: Specifies how Device Farm compares the rule's attribute to the value. For the operators that are supported by each attribute. Valid values are: `EQUALS`, `NOT_IN`, `IN`, `GREATER_THAN`, `GREATER_THAN_OR_EQUALS`, `LESS_THAN`, `LESS_THAN_OR_EQUALS`, `CONTAINS`. :param str value: The rule's value. """ + DevicePoolRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute=attribute, + operator=operator, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute: Optional[str] = None, + operator: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute is not None: - pulumi.set(__self__, "attribute", attribute) + _setter("attribute", attribute) if operator is not None: - pulumi.set(__self__, "operator", operator) + _setter("operator", operator) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -89,9 +104,36 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: A list of VPC subnet IDs in your Amazon VPC. :param str vpc_id: The ID of the Amazon VPC. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + TestGridProjectVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/devicefarm/project.py b/sdk/python/pulumi_aws/devicefarm/project.py index e94d022118d..31dfb1f3c15 100644 --- a/sdk/python/pulumi_aws/devicefarm/project.py +++ b/sdk/python/pulumi_aws/devicefarm/project.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProjectArgs', 'Project'] @@ -23,12 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the project :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. """ + ProjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_job_timeout_minutes=default_job_timeout_minutes, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_job_timeout_minutes: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_job_timeout_minutes is None and 'defaultJobTimeoutMinutes' in kwargs: + default_job_timeout_minutes = kwargs['defaultJobTimeoutMinutes'] + if default_job_timeout_minutes is not None: - pulumi.set(__self__, "default_job_timeout_minutes", default_job_timeout_minutes) + _setter("default_job_timeout_minutes", default_job_timeout_minutes) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultJobTimeoutMinutes") @@ -83,19 +100,42 @@ def __init__(__self__, *, :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. """ + _ProjectState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_job_timeout_minutes=default_job_timeout_minutes, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_job_timeout_minutes: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_job_timeout_minutes is None and 'defaultJobTimeoutMinutes' in kwargs: + default_job_timeout_minutes = kwargs['defaultJobTimeoutMinutes'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_job_timeout_minutes is not None: - pulumi.set(__self__, "default_job_timeout_minutes", default_job_timeout_minutes) + _setter("default_job_timeout_minutes", default_job_timeout_minutes) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -242,6 +282,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProjectArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/devicefarm/test_grid_project.py b/sdk/python/pulumi_aws/devicefarm/test_grid_project.py index 29c5324c1cf..f49acba1906 100644 --- a/sdk/python/pulumi_aws/devicefarm/test_grid_project.py +++ b/sdk/python/pulumi_aws/devicefarm/test_grid_project.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,14 +27,33 @@ def __init__(__self__, *, :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['TestGridProjectVpcConfigArgs'] vpc_config: The VPC security groups and subnets that are attached to a project. See VPC Config below. """ + TestGridProjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + tags=tags, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['TestGridProjectVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -103,21 +122,46 @@ def __init__(__self__, *, :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['TestGridProjectVpcConfigArgs'] vpc_config: The VPC security groups and subnets that are attached to a project. See VPC Config below. """ + _TestGridProjectState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + tags=tags, + tags_all=tags_all, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['TestGridProjectVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -254,6 +298,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TestGridProjectArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -275,6 +323,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags + vpc_config = _utilities.configure(vpc_config, TestGridProjectVpcConfigArgs, True) __props__.__dict__["vpc_config"] = vpc_config __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/devicefarm/upload.py b/sdk/python/pulumi_aws/devicefarm/upload.py index 3fdc1d03060..2f3e20f4813 100644 --- a/sdk/python/pulumi_aws/devicefarm/upload.py +++ b/sdk/python/pulumi_aws/devicefarm/upload.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UploadArgs', 'Upload'] @@ -25,12 +25,37 @@ def __init__(__self__, *, :param pulumi.Input[str] content_type: The upload's content type (for example, application/octet-stream). :param pulumi.Input[str] name: The upload's file name. The name should not contain any forward slashes (/). If you are uploading an iOS app, the file name must end with the .ipa extension. If you are uploading an Android app, the file name must end with the .apk extension. For all others, the file name must end with the .zip file extension. """ - pulumi.set(__self__, "project_arn", project_arn) - pulumi.set(__self__, "type", type) + UploadArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + project_arn=project_arn, + type=type, + content_type=content_type, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + project_arn: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if project_arn is None and 'projectArn' in kwargs: + project_arn = kwargs['projectArn'] + if project_arn is None: + raise TypeError("Missing 'project_arn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + + _setter("project_arn", project_arn) + _setter("type", type) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="projectArn") @@ -103,22 +128,51 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The upload's upload type. See [AWS Docs](https://docs.aws.amazon.com/devicefarm/latest/APIReference/API_CreateUpload.html#API_CreateUpload_RequestSyntax) for valid list of values. :param pulumi.Input[str] url: The presigned Amazon S3 URL that was used to store a file using a PUT request. """ + _UploadState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + category=category, + content_type=content_type, + metadata=metadata, + name=name, + project_arn=project_arn, + type=type, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + category: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_arn: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if project_arn is None and 'projectArn' in kwargs: + project_arn = kwargs['projectArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if category is not None: - pulumi.set(__self__, "category", category) + _setter("category", category) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if metadata is not None: - pulumi.set(__self__, "metadata", metadata) + _setter("metadata", metadata) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if project_arn is not None: - pulumi.set(__self__, "project_arn", project_arn) + _setter("project_arn", project_arn) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter @@ -300,6 +354,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UploadArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/bgp_peer.py b/sdk/python/pulumi_aws/directconnect/bgp_peer.py index a074f167657..ad577b6e811 100644 --- a/sdk/python/pulumi_aws/directconnect/bgp_peer.py +++ b/sdk/python/pulumi_aws/directconnect/bgp_peer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BgpPeerArgs', 'BgpPeer'] @@ -31,15 +31,54 @@ def __init__(__self__, *, :param pulumi.Input[str] customer_address: The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers on public virtual interfaces. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "bgp_asn", bgp_asn) - pulumi.set(__self__, "virtual_interface_id", virtual_interface_id) + BgpPeerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + bgp_asn=bgp_asn, + virtual_interface_id=virtual_interface_id, + amazon_address=amazon_address, + bgp_auth_key=bgp_auth_key, + customer_address=customer_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + virtual_interface_id: Optional[pulumi.Input[str]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_asn is None: + raise TypeError("Missing 'bgp_asn' argument") + if virtual_interface_id is None and 'virtualInterfaceId' in kwargs: + virtual_interface_id = kwargs['virtualInterfaceId'] + if virtual_interface_id is None: + raise TypeError("Missing 'virtual_interface_id' argument") + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + + _setter("address_family", address_family) + _setter("bgp_asn", bgp_asn) + _setter("virtual_interface_id", virtual_interface_id) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) @property @pulumi.getter(name="addressFamily") @@ -142,24 +181,69 @@ def __init__(__self__, *, Required for IPv4 BGP peers on public virtual interfaces. :param pulumi.Input[str] virtual_interface_id: The ID of the Direct Connect virtual interface on which to create the BGP peer. """ + _BgpPeerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + amazon_address=amazon_address, + aws_device=aws_device, + bgp_asn=bgp_asn, + bgp_auth_key=bgp_auth_key, + bgp_peer_id=bgp_peer_id, + bgp_status=bgp_status, + customer_address=customer_address, + virtual_interface_id=virtual_interface_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + aws_device: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + bgp_peer_id: Optional[pulumi.Input[str]] = None, + bgp_status: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + virtual_interface_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if aws_device is None and 'awsDevice' in kwargs: + aws_device = kwargs['awsDevice'] + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if bgp_peer_id is None and 'bgpPeerId' in kwargs: + bgp_peer_id = kwargs['bgpPeerId'] + if bgp_status is None and 'bgpStatus' in kwargs: + bgp_status = kwargs['bgpStatus'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + if virtual_interface_id is None and 'virtualInterfaceId' in kwargs: + virtual_interface_id = kwargs['virtualInterfaceId'] + if address_family is not None: - pulumi.set(__self__, "address_family", address_family) + _setter("address_family", address_family) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if aws_device is not None: - pulumi.set(__self__, "aws_device", aws_device) + _setter("aws_device", aws_device) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if bgp_peer_id is not None: - pulumi.set(__self__, "bgp_peer_id", bgp_peer_id) + _setter("bgp_peer_id", bgp_peer_id) if bgp_status is not None: - pulumi.set(__self__, "bgp_status", bgp_status) + _setter("bgp_status", bgp_status) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if virtual_interface_id is not None: - pulumi.set(__self__, "virtual_interface_id", virtual_interface_id) + _setter("virtual_interface_id", virtual_interface_id) @property @pulumi.getter(name="addressFamily") @@ -341,6 +425,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BgpPeerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/connection.py b/sdk/python/pulumi_aws/directconnect/connection.py index 7573a54cc8c..2904ce0697a 100644 --- a/sdk/python/pulumi_aws/directconnect/connection.py +++ b/sdk/python/pulumi_aws/directconnect/connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConnectionArgs', 'Connection'] @@ -35,20 +35,57 @@ def __init__(__self__, *, :param pulumi.Input[bool] skip_destroy: Set to true if you do not wish the connection to be deleted at destroy time, and instead just removed from the state. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "bandwidth", bandwidth) - pulumi.set(__self__, "location", location) + ConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bandwidth=bandwidth, + location=location, + encryption_mode=encryption_mode, + name=name, + provider_name=provider_name, + request_macsec=request_macsec, + skip_destroy=skip_destroy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bandwidth: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + encryption_mode: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + request_macsec: Optional[pulumi.Input[bool]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bandwidth is None: + raise TypeError("Missing 'bandwidth' argument") + if location is None: + raise TypeError("Missing 'location' argument") + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if request_macsec is None and 'requestMacsec' in kwargs: + request_macsec = kwargs['requestMacsec'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + + _setter("bandwidth", bandwidth) + _setter("location", location) if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if request_macsec is not None: - pulumi.set(__self__, "request_macsec", request_macsec) + _setter("request_macsec", request_macsec) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -193,45 +230,116 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] vlan_id: The VLAN ID. """ + _ConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_device=aws_device, + bandwidth=bandwidth, + encryption_mode=encryption_mode, + has_logical_redundancy=has_logical_redundancy, + jumbo_frame_capable=jumbo_frame_capable, + location=location, + macsec_capable=macsec_capable, + name=name, + owner_account_id=owner_account_id, + partner_name=partner_name, + port_encryption_status=port_encryption_status, + provider_name=provider_name, + request_macsec=request_macsec, + skip_destroy=skip_destroy, + tags=tags, + tags_all=tags_all, + vlan_id=vlan_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_device: Optional[pulumi.Input[str]] = None, + bandwidth: Optional[pulumi.Input[str]] = None, + encryption_mode: Optional[pulumi.Input[str]] = None, + has_logical_redundancy: Optional[pulumi.Input[str]] = None, + jumbo_frame_capable: Optional[pulumi.Input[bool]] = None, + location: Optional[pulumi.Input[str]] = None, + macsec_capable: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + partner_name: Optional[pulumi.Input[str]] = None, + port_encryption_status: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + request_macsec: Optional[pulumi.Input[bool]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vlan_id: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_device is None and 'awsDevice' in kwargs: + aws_device = kwargs['awsDevice'] + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if has_logical_redundancy is None and 'hasLogicalRedundancy' in kwargs: + has_logical_redundancy = kwargs['hasLogicalRedundancy'] + if jumbo_frame_capable is None and 'jumboFrameCapable' in kwargs: + jumbo_frame_capable = kwargs['jumboFrameCapable'] + if macsec_capable is None and 'macsecCapable' in kwargs: + macsec_capable = kwargs['macsecCapable'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if partner_name is None and 'partnerName' in kwargs: + partner_name = kwargs['partnerName'] + if port_encryption_status is None and 'portEncryptionStatus' in kwargs: + port_encryption_status = kwargs['portEncryptionStatus'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if request_macsec is None and 'requestMacsec' in kwargs: + request_macsec = kwargs['requestMacsec'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vlan_id is None and 'vlanId' in kwargs: + vlan_id = kwargs['vlanId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_device is not None: - pulumi.set(__self__, "aws_device", aws_device) + _setter("aws_device", aws_device) if bandwidth is not None: - pulumi.set(__self__, "bandwidth", bandwidth) + _setter("bandwidth", bandwidth) if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if has_logical_redundancy is not None: - pulumi.set(__self__, "has_logical_redundancy", has_logical_redundancy) + _setter("has_logical_redundancy", has_logical_redundancy) if jumbo_frame_capable is not None: - pulumi.set(__self__, "jumbo_frame_capable", jumbo_frame_capable) + _setter("jumbo_frame_capable", jumbo_frame_capable) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if macsec_capable is not None: - pulumi.set(__self__, "macsec_capable", macsec_capable) + _setter("macsec_capable", macsec_capable) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if partner_name is not None: - pulumi.set(__self__, "partner_name", partner_name) + _setter("partner_name", partner_name) if port_encryption_status is not None: - pulumi.set(__self__, "port_encryption_status", port_encryption_status) + _setter("port_encryption_status", port_encryption_status) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if request_macsec is not None: - pulumi.set(__self__, "request_macsec", request_macsec) + _setter("request_macsec", request_macsec) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vlan_id is not None: - pulumi.set(__self__, "vlan_id", vlan_id) + _setter("vlan_id", vlan_id) @property @pulumi.getter @@ -594,6 +702,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/connection_association.py b/sdk/python/pulumi_aws/directconnect/connection_association.py index d2d965a178a..ade3b7ed1a7 100644 --- a/sdk/python/pulumi_aws/directconnect/connection_association.py +++ b/sdk/python/pulumi_aws/directconnect/connection_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConnectionAssociationArgs', 'ConnectionAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] connection_id: The ID of the connection. :param pulumi.Input[str] lag_id: The ID of the LAG with which to associate the connection. """ - pulumi.set(__self__, "connection_id", connection_id) - pulumi.set(__self__, "lag_id", lag_id) + ConnectionAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_id=connection_id, + lag_id=lag_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_id: Optional[pulumi.Input[str]] = None, + lag_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + if lag_id is None and 'lagId' in kwargs: + lag_id = kwargs['lagId'] + if lag_id is None: + raise TypeError("Missing 'lag_id' argument") + + _setter("connection_id", connection_id) + _setter("lag_id", lag_id) @property @pulumi.getter(name="connectionId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] connection_id: The ID of the connection. :param pulumi.Input[str] lag_id: The ID of the LAG with which to associate the connection. """ + _ConnectionAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_id=connection_id, + lag_id=lag_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_id: Optional[pulumi.Input[str]] = None, + lag_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if lag_id is None and 'lagId' in kwargs: + lag_id = kwargs['lagId'] + if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if lag_id is not None: - pulumi.set(__self__, "lag_id", lag_id) + _setter("lag_id", lag_id) @property @pulumi.getter(name="connectionId") @@ -158,6 +196,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectionAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/connection_confirmation.py b/sdk/python/pulumi_aws/directconnect/connection_confirmation.py index 3b893734a5a..442055a3b5a 100644 --- a/sdk/python/pulumi_aws/directconnect/connection_confirmation.py +++ b/sdk/python/pulumi_aws/directconnect/connection_confirmation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConnectionConfirmationArgs', 'ConnectionConfirmation'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a ConnectionConfirmation resource. :param pulumi.Input[str] connection_id: The ID of the hosted connection. """ - pulumi.set(__self__, "connection_id", connection_id) + ConnectionConfirmationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_id=connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + + _setter("connection_id", connection_id) @property @pulumi.getter(name="connectionId") @@ -42,8 +57,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering ConnectionConfirmation resources. :param pulumi.Input[str] connection_id: The ID of the hosted connection. """ + _ConnectionConfirmationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_id=connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) @property @pulumi.getter(name="connectionId") @@ -109,6 +137,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectionConfirmationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/gateway.py b/sdk/python/pulumi_aws/directconnect/gateway.py index 2eafc78481d..55aa003ba78 100644 --- a/sdk/python/pulumi_aws/directconnect/gateway.py +++ b/sdk/python/pulumi_aws/directconnect/gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GatewayArgs', 'Gateway'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] amazon_side_asn: The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294. :param pulumi.Input[str] name: The name of the connection. """ - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + GatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_side_asn=amazon_side_asn, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_side_asn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if amazon_side_asn is None: + raise TypeError("Missing 'amazon_side_asn' argument") + + _setter("amazon_side_asn", amazon_side_asn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="amazonSideAsn") @@ -62,12 +79,31 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the connection. :param pulumi.Input[str] owner_account_id: AWS Account ID of the gateway. """ + _GatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_side_asn=amazon_side_asn, + name=name, + owner_account_id=owner_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_side_asn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) @property @pulumi.getter(name="amazonSideAsn") @@ -175,6 +211,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/gateway_association.py b/sdk/python/pulumi_aws/directconnect/gateway_association.py index 9585281ce73..945bdf63963 100644 --- a/sdk/python/pulumi_aws/directconnect/gateway_association.py +++ b/sdk/python/pulumi_aws/directconnect/gateway_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GatewayAssociationArgs', 'GatewayAssociation'] @@ -31,20 +31,55 @@ def __init__(__self__, *, :param pulumi.Input[str] proposal_id: The ID of the Direct Connect gateway association proposal. Used for cross-account Direct Connect gateway associations. """ - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) + GatewayAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dx_gateway_id=dx_gateway_id, + allowed_prefixes=allowed_prefixes, + associated_gateway_id=associated_gateway_id, + associated_gateway_owner_account_id=associated_gateway_owner_account_id, + proposal_id=proposal_id, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dx_gateway_id: Optional[pulumi.Input[str]] = None, + allowed_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + associated_gateway_id: Optional[pulumi.Input[str]] = None, + associated_gateway_owner_account_id: Optional[pulumi.Input[str]] = None, + proposal_id: Optional[pulumi.Input[str]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if dx_gateway_id is None: + raise TypeError("Missing 'dx_gateway_id' argument") + if allowed_prefixes is None and 'allowedPrefixes' in kwargs: + allowed_prefixes = kwargs['allowedPrefixes'] + if associated_gateway_id is None and 'associatedGatewayId' in kwargs: + associated_gateway_id = kwargs['associatedGatewayId'] + if associated_gateway_owner_account_id is None and 'associatedGatewayOwnerAccountId' in kwargs: + associated_gateway_owner_account_id = kwargs['associatedGatewayOwnerAccountId'] + if proposal_id is None and 'proposalId' in kwargs: + proposal_id = kwargs['proposalId'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + + _setter("dx_gateway_id", dx_gateway_id) if allowed_prefixes is not None: - pulumi.set(__self__, "allowed_prefixes", allowed_prefixes) + _setter("allowed_prefixes", allowed_prefixes) if associated_gateway_id is not None: - pulumi.set(__self__, "associated_gateway_id", associated_gateway_id) + _setter("associated_gateway_id", associated_gateway_id) if associated_gateway_owner_account_id is not None: - pulumi.set(__self__, "associated_gateway_owner_account_id", associated_gateway_owner_account_id) + _setter("associated_gateway_owner_account_id", associated_gateway_owner_account_id) if proposal_id is not None: - pulumi.set(__self__, "proposal_id", proposal_id) + _setter("proposal_id", proposal_id) if vpn_gateway_id is not None: warnings.warn("""use 'associated_gateway_id' argument instead""", DeprecationWarning) pulumi.log.warn("""vpn_gateway_id is deprecated: use 'associated_gateway_id' argument instead""") if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="dxGatewayId") @@ -148,27 +183,72 @@ def __init__(__self__, *, :param pulumi.Input[str] proposal_id: The ID of the Direct Connect gateway association proposal. Used for cross-account Direct Connect gateway associations. """ + _GatewayAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_prefixes=allowed_prefixes, + associated_gateway_id=associated_gateway_id, + associated_gateway_owner_account_id=associated_gateway_owner_account_id, + associated_gateway_type=associated_gateway_type, + dx_gateway_association_id=dx_gateway_association_id, + dx_gateway_id=dx_gateway_id, + dx_gateway_owner_account_id=dx_gateway_owner_account_id, + proposal_id=proposal_id, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + associated_gateway_id: Optional[pulumi.Input[str]] = None, + associated_gateway_owner_account_id: Optional[pulumi.Input[str]] = None, + associated_gateway_type: Optional[pulumi.Input[str]] = None, + dx_gateway_association_id: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + dx_gateway_owner_account_id: Optional[pulumi.Input[str]] = None, + proposal_id: Optional[pulumi.Input[str]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_prefixes is None and 'allowedPrefixes' in kwargs: + allowed_prefixes = kwargs['allowedPrefixes'] + if associated_gateway_id is None and 'associatedGatewayId' in kwargs: + associated_gateway_id = kwargs['associatedGatewayId'] + if associated_gateway_owner_account_id is None and 'associatedGatewayOwnerAccountId' in kwargs: + associated_gateway_owner_account_id = kwargs['associatedGatewayOwnerAccountId'] + if associated_gateway_type is None and 'associatedGatewayType' in kwargs: + associated_gateway_type = kwargs['associatedGatewayType'] + if dx_gateway_association_id is None and 'dxGatewayAssociationId' in kwargs: + dx_gateway_association_id = kwargs['dxGatewayAssociationId'] + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if dx_gateway_owner_account_id is None and 'dxGatewayOwnerAccountId' in kwargs: + dx_gateway_owner_account_id = kwargs['dxGatewayOwnerAccountId'] + if proposal_id is None and 'proposalId' in kwargs: + proposal_id = kwargs['proposalId'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + if allowed_prefixes is not None: - pulumi.set(__self__, "allowed_prefixes", allowed_prefixes) + _setter("allowed_prefixes", allowed_prefixes) if associated_gateway_id is not None: - pulumi.set(__self__, "associated_gateway_id", associated_gateway_id) + _setter("associated_gateway_id", associated_gateway_id) if associated_gateway_owner_account_id is not None: - pulumi.set(__self__, "associated_gateway_owner_account_id", associated_gateway_owner_account_id) + _setter("associated_gateway_owner_account_id", associated_gateway_owner_account_id) if associated_gateway_type is not None: - pulumi.set(__self__, "associated_gateway_type", associated_gateway_type) + _setter("associated_gateway_type", associated_gateway_type) if dx_gateway_association_id is not None: - pulumi.set(__self__, "dx_gateway_association_id", dx_gateway_association_id) + _setter("dx_gateway_association_id", dx_gateway_association_id) if dx_gateway_id is not None: - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) + _setter("dx_gateway_id", dx_gateway_id) if dx_gateway_owner_account_id is not None: - pulumi.set(__self__, "dx_gateway_owner_account_id", dx_gateway_owner_account_id) + _setter("dx_gateway_owner_account_id", dx_gateway_owner_account_id) if proposal_id is not None: - pulumi.set(__self__, "proposal_id", proposal_id) + _setter("proposal_id", proposal_id) if vpn_gateway_id is not None: warnings.warn("""use 'associated_gateway_id' argument instead""", DeprecationWarning) pulumi.log.warn("""vpn_gateway_id is deprecated: use 'associated_gateway_id' argument instead""") if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="allowedPrefixes") @@ -447,6 +527,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GatewayAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -474,9 +558,6 @@ def _internal_init(__self__, raise TypeError("Missing required property 'dx_gateway_id'") __props__.__dict__["dx_gateway_id"] = dx_gateway_id __props__.__dict__["proposal_id"] = proposal_id - if vpn_gateway_id is not None and not opts.urn: - warnings.warn("""use 'associated_gateway_id' argument instead""", DeprecationWarning) - pulumi.log.warn("""vpn_gateway_id is deprecated: use 'associated_gateway_id' argument instead""") __props__.__dict__["vpn_gateway_id"] = vpn_gateway_id __props__.__dict__["associated_gateway_type"] = None __props__.__dict__["dx_gateway_association_id"] = None diff --git a/sdk/python/pulumi_aws/directconnect/gateway_association_proposal.py b/sdk/python/pulumi_aws/directconnect/gateway_association_proposal.py index 9db6ea0afe3..019094add15 100644 --- a/sdk/python/pulumi_aws/directconnect/gateway_association_proposal.py +++ b/sdk/python/pulumi_aws/directconnect/gateway_association_proposal.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GatewayAssociationProposalArgs', 'GatewayAssociationProposal'] @@ -25,11 +25,42 @@ def __init__(__self__, *, :param pulumi.Input[str] dx_gateway_owner_account_id: AWS Account identifier of the Direct Connect Gateway's owner. :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_prefixes: VPC prefixes (CIDRs) to advertise to the Direct Connect gateway. Defaults to the CIDR block of the VPC associated with the Virtual Gateway. To enable drift detection, must be configured. """ - pulumi.set(__self__, "associated_gateway_id", associated_gateway_id) - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) - pulumi.set(__self__, "dx_gateway_owner_account_id", dx_gateway_owner_account_id) + GatewayAssociationProposalArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + associated_gateway_id=associated_gateway_id, + dx_gateway_id=dx_gateway_id, + dx_gateway_owner_account_id=dx_gateway_owner_account_id, + allowed_prefixes=allowed_prefixes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + associated_gateway_id: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + dx_gateway_owner_account_id: Optional[pulumi.Input[str]] = None, + allowed_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associated_gateway_id is None and 'associatedGatewayId' in kwargs: + associated_gateway_id = kwargs['associatedGatewayId'] + if associated_gateway_id is None: + raise TypeError("Missing 'associated_gateway_id' argument") + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if dx_gateway_id is None: + raise TypeError("Missing 'dx_gateway_id' argument") + if dx_gateway_owner_account_id is None and 'dxGatewayOwnerAccountId' in kwargs: + dx_gateway_owner_account_id = kwargs['dxGatewayOwnerAccountId'] + if dx_gateway_owner_account_id is None: + raise TypeError("Missing 'dx_gateway_owner_account_id' argument") + if allowed_prefixes is None and 'allowedPrefixes' in kwargs: + allowed_prefixes = kwargs['allowedPrefixes'] + + _setter("associated_gateway_id", associated_gateway_id) + _setter("dx_gateway_id", dx_gateway_id) + _setter("dx_gateway_owner_account_id", dx_gateway_owner_account_id) if allowed_prefixes is not None: - pulumi.set(__self__, "allowed_prefixes", allowed_prefixes) + _setter("allowed_prefixes", allowed_prefixes) @property @pulumi.getter(name="associatedGatewayId") @@ -98,18 +129,51 @@ def __init__(__self__, *, :param pulumi.Input[str] dx_gateway_id: Direct Connect Gateway identifier. :param pulumi.Input[str] dx_gateway_owner_account_id: AWS Account identifier of the Direct Connect Gateway's owner. """ + _GatewayAssociationProposalState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_prefixes=allowed_prefixes, + associated_gateway_id=associated_gateway_id, + associated_gateway_owner_account_id=associated_gateway_owner_account_id, + associated_gateway_type=associated_gateway_type, + dx_gateway_id=dx_gateway_id, + dx_gateway_owner_account_id=dx_gateway_owner_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + associated_gateway_id: Optional[pulumi.Input[str]] = None, + associated_gateway_owner_account_id: Optional[pulumi.Input[str]] = None, + associated_gateway_type: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + dx_gateway_owner_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_prefixes is None and 'allowedPrefixes' in kwargs: + allowed_prefixes = kwargs['allowedPrefixes'] + if associated_gateway_id is None and 'associatedGatewayId' in kwargs: + associated_gateway_id = kwargs['associatedGatewayId'] + if associated_gateway_owner_account_id is None and 'associatedGatewayOwnerAccountId' in kwargs: + associated_gateway_owner_account_id = kwargs['associatedGatewayOwnerAccountId'] + if associated_gateway_type is None and 'associatedGatewayType' in kwargs: + associated_gateway_type = kwargs['associatedGatewayType'] + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if dx_gateway_owner_account_id is None and 'dxGatewayOwnerAccountId' in kwargs: + dx_gateway_owner_account_id = kwargs['dxGatewayOwnerAccountId'] + if allowed_prefixes is not None: - pulumi.set(__self__, "allowed_prefixes", allowed_prefixes) + _setter("allowed_prefixes", allowed_prefixes) if associated_gateway_id is not None: - pulumi.set(__self__, "associated_gateway_id", associated_gateway_id) + _setter("associated_gateway_id", associated_gateway_id) if associated_gateway_owner_account_id is not None: - pulumi.set(__self__, "associated_gateway_owner_account_id", associated_gateway_owner_account_id) + _setter("associated_gateway_owner_account_id", associated_gateway_owner_account_id) if associated_gateway_type is not None: - pulumi.set(__self__, "associated_gateway_type", associated_gateway_type) + _setter("associated_gateway_type", associated_gateway_type) if dx_gateway_id is not None: - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) + _setter("dx_gateway_id", dx_gateway_id) if dx_gateway_owner_account_id is not None: - pulumi.set(__self__, "dx_gateway_owner_account_id", dx_gateway_owner_account_id) + _setter("dx_gateway_owner_account_id", dx_gateway_owner_account_id) @property @pulumi.getter(name="allowedPrefixes") @@ -283,6 +347,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GatewayAssociationProposalArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/get_connection.py b/sdk/python/pulumi_aws/directconnect/get_connection.py index a06c4d661dd..5a930093bb9 100644 --- a/sdk/python/pulumi_aws/directconnect/get_connection.py +++ b/sdk/python/pulumi_aws/directconnect/get_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/directconnect/get_gateway.py b/sdk/python/pulumi_aws/directconnect/get_gateway.py index 746c8d1dc50..c8abacb6c40 100644 --- a/sdk/python/pulumi_aws/directconnect/get_gateway.py +++ b/sdk/python/pulumi_aws/directconnect/get_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/directconnect/get_location.py b/sdk/python/pulumi_aws/directconnect/get_location.py index 75442ebf17f..3e1f6a757b4 100644 --- a/sdk/python/pulumi_aws/directconnect/get_location.py +++ b/sdk/python/pulumi_aws/directconnect/get_location.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/directconnect/get_locations.py b/sdk/python/pulumi_aws/directconnect/get_locations.py index 864aeddaead..67e122c7ddc 100644 --- a/sdk/python/pulumi_aws/directconnect/get_locations.py +++ b/sdk/python/pulumi_aws/directconnect/get_locations.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetLocationsResult', 'AwaitableGetLocationsResult', 'get_locations', + 'get_locations_output', ] @pulumi.output_type @@ -78,3 +79,23 @@ def get_locations(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLo return AwaitableGetLocationsResult( id=pulumi.get(__ret__, 'id'), location_codes=pulumi.get(__ret__, 'location_codes')) + + +@_utilities.lift_output_func(get_locations) +def get_locations_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetLocationsResult]: + """ + Retrieve information about the AWS Direct Connect locations in the current AWS Region. + These are the locations that can be specified when configuring `directconnect.Connection` or `directconnect.LinkAggregationGroup` resources. + + > **Note:** This data source is different from the `directconnect_get_location` data source which retrieves information about a specific AWS Direct Connect location in the current AWS Region. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + available = aws.directconnect.get_locations() + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/directconnect/get_router_configuration.py b/sdk/python/pulumi_aws/directconnect/get_router_configuration.py index 61525eeaa1b..25c1e2fafbc 100644 --- a/sdk/python/pulumi_aws/directconnect/get_router_configuration.py +++ b/sdk/python/pulumi_aws/directconnect/get_router_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/directconnect/hosted_connection.py b/sdk/python/pulumi_aws/directconnect/hosted_connection.py index 2ceb1ecabbf..8d31e563e46 100644 --- a/sdk/python/pulumi_aws/directconnect/hosted_connection.py +++ b/sdk/python/pulumi_aws/directconnect/hosted_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HostedConnectionArgs', 'HostedConnection'] @@ -27,12 +27,43 @@ def __init__(__self__, *, :param pulumi.Input[int] vlan: The dedicated VLAN provisioned to the hosted connection. :param pulumi.Input[str] name: The name of the connection. """ - pulumi.set(__self__, "bandwidth", bandwidth) - pulumi.set(__self__, "connection_id", connection_id) - pulumi.set(__self__, "owner_account_id", owner_account_id) - pulumi.set(__self__, "vlan", vlan) + HostedConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bandwidth=bandwidth, + connection_id=connection_id, + owner_account_id=owner_account_id, + vlan=vlan, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bandwidth: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + vlan: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bandwidth is None: + raise TypeError("Missing 'bandwidth' argument") + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if owner_account_id is None: + raise TypeError("Missing 'owner_account_id' argument") + if vlan is None: + raise TypeError("Missing 'vlan' argument") + + _setter("bandwidth", bandwidth) + _setter("connection_id", connection_id) + _setter("owner_account_id", owner_account_id) + _setter("vlan", vlan) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -131,36 +162,93 @@ def __init__(__self__, *, :param pulumi.Input[str] state: The state of the connection. Possible values include: ordering, requested, pending, available, down, deleting, deleted, rejected, unknown. See [AllocateHostedConnection](https://docs.aws.amazon.com/directconnect/latest/APIReference/API_AllocateHostedConnection.html) for a description of each connection state. :param pulumi.Input[int] vlan: The dedicated VLAN provisioned to the hosted connection. """ + _HostedConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_device=aws_device, + bandwidth=bandwidth, + connection_id=connection_id, + has_logical_redundancy=has_logical_redundancy, + jumbo_frame_capable=jumbo_frame_capable, + lag_id=lag_id, + loa_issue_time=loa_issue_time, + location=location, + name=name, + owner_account_id=owner_account_id, + partner_name=partner_name, + provider_name=provider_name, + region=region, + state=state, + vlan=vlan, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_device: Optional[pulumi.Input[str]] = None, + bandwidth: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + has_logical_redundancy: Optional[pulumi.Input[str]] = None, + jumbo_frame_capable: Optional[pulumi.Input[bool]] = None, + lag_id: Optional[pulumi.Input[str]] = None, + loa_issue_time: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + partner_name: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + vlan: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_device is None and 'awsDevice' in kwargs: + aws_device = kwargs['awsDevice'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if has_logical_redundancy is None and 'hasLogicalRedundancy' in kwargs: + has_logical_redundancy = kwargs['hasLogicalRedundancy'] + if jumbo_frame_capable is None and 'jumboFrameCapable' in kwargs: + jumbo_frame_capable = kwargs['jumboFrameCapable'] + if lag_id is None and 'lagId' in kwargs: + lag_id = kwargs['lagId'] + if loa_issue_time is None and 'loaIssueTime' in kwargs: + loa_issue_time = kwargs['loaIssueTime'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if partner_name is None and 'partnerName' in kwargs: + partner_name = kwargs['partnerName'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if aws_device is not None: - pulumi.set(__self__, "aws_device", aws_device) + _setter("aws_device", aws_device) if bandwidth is not None: - pulumi.set(__self__, "bandwidth", bandwidth) + _setter("bandwidth", bandwidth) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if has_logical_redundancy is not None: - pulumi.set(__self__, "has_logical_redundancy", has_logical_redundancy) + _setter("has_logical_redundancy", has_logical_redundancy) if jumbo_frame_capable is not None: - pulumi.set(__self__, "jumbo_frame_capable", jumbo_frame_capable) + _setter("jumbo_frame_capable", jumbo_frame_capable) if lag_id is not None: - pulumi.set(__self__, "lag_id", lag_id) + _setter("lag_id", lag_id) if loa_issue_time is not None: - pulumi.set(__self__, "loa_issue_time", loa_issue_time) + _setter("loa_issue_time", loa_issue_time) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if partner_name is not None: - pulumi.set(__self__, "partner_name", partner_name) + _setter("partner_name", partner_name) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if vlan is not None: - pulumi.set(__self__, "vlan", vlan) + _setter("vlan", vlan) @property @pulumi.getter(name="awsDevice") @@ -410,6 +498,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostedConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/hosted_private_virtual_interface.py b/sdk/python/pulumi_aws/directconnect/hosted_private_virtual_interface.py index f34aaad3673..a7845aa6c27 100644 --- a/sdk/python/pulumi_aws/directconnect/hosted_private_virtual_interface.py +++ b/sdk/python/pulumi_aws/directconnect/hosted_private_virtual_interface.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HostedPrivateVirtualInterfaceArgs', 'HostedPrivateVirtualInterface'] @@ -37,21 +37,74 @@ def __init__(__self__, *, :param pulumi.Input[int] mtu: The maximum transmission unit (MTU) is the size, in bytes, of the largest permissible packet that can be passed over the connection. The MTU of a virtual private interface can be either `1500` or `9001` (jumbo frames). Default is `1500`. :param pulumi.Input[str] name: The name for the virtual interface. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "bgp_asn", bgp_asn) - pulumi.set(__self__, "connection_id", connection_id) - pulumi.set(__self__, "owner_account_id", owner_account_id) - pulumi.set(__self__, "vlan", vlan) + HostedPrivateVirtualInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + bgp_asn=bgp_asn, + connection_id=connection_id, + owner_account_id=owner_account_id, + vlan=vlan, + amazon_address=amazon_address, + bgp_auth_key=bgp_auth_key, + customer_address=customer_address, + mtu=mtu, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + vlan: Optional[pulumi.Input[int]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + mtu: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_asn is None: + raise TypeError("Missing 'bgp_asn' argument") + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if owner_account_id is None: + raise TypeError("Missing 'owner_account_id' argument") + if vlan is None: + raise TypeError("Missing 'vlan' argument") + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + + _setter("address_family", address_family) + _setter("bgp_asn", bgp_asn) + _setter("connection_id", connection_id) + _setter("owner_account_id", owner_account_id) + _setter("vlan", vlan) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if mtu is not None: - pulumi.set(__self__, "mtu", mtu) + _setter("mtu", mtu) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="addressFamily") @@ -207,34 +260,91 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_account_id: The AWS account that will own the new virtual interface. :param pulumi.Input[int] vlan: The VLAN ID. """ + _HostedPrivateVirtualInterfaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + amazon_address=amazon_address, + amazon_side_asn=amazon_side_asn, + arn=arn, + aws_device=aws_device, + bgp_asn=bgp_asn, + bgp_auth_key=bgp_auth_key, + connection_id=connection_id, + customer_address=customer_address, + jumbo_frame_capable=jumbo_frame_capable, + mtu=mtu, + name=name, + owner_account_id=owner_account_id, + vlan=vlan, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + amazon_side_asn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + aws_device: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + jumbo_frame_capable: Optional[pulumi.Input[bool]] = None, + mtu: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + vlan: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if aws_device is None and 'awsDevice' in kwargs: + aws_device = kwargs['awsDevice'] + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + if jumbo_frame_capable is None and 'jumboFrameCapable' in kwargs: + jumbo_frame_capable = kwargs['jumboFrameCapable'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if address_family is not None: - pulumi.set(__self__, "address_family", address_family) + _setter("address_family", address_family) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_device is not None: - pulumi.set(__self__, "aws_device", aws_device) + _setter("aws_device", aws_device) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if jumbo_frame_capable is not None: - pulumi.set(__self__, "jumbo_frame_capable", jumbo_frame_capable) + _setter("jumbo_frame_capable", jumbo_frame_capable) if mtu is not None: - pulumi.set(__self__, "mtu", mtu) + _setter("mtu", mtu) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if vlan is not None: - pulumi.set(__self__, "vlan", vlan) + _setter("vlan", vlan) @property @pulumi.getter(name="addressFamily") @@ -497,6 +607,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostedPrivateVirtualInterfaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/hosted_private_virtual_interface_accepter.py b/sdk/python/pulumi_aws/directconnect/hosted_private_virtual_interface_accepter.py index ad3851c55d6..35084f6b567 100644 --- a/sdk/python/pulumi_aws/directconnect/hosted_private_virtual_interface_accepter.py +++ b/sdk/python/pulumi_aws/directconnect/hosted_private_virtual_interface_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HostedPrivateVirtualInterfaceAccepterArgs', 'HostedPrivateVirtualInterfaceAccepter'] @@ -25,13 +25,38 @@ def __init__(__self__, *, :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] vpn_gateway_id: The ID of the virtual private gateway to which to connect the virtual interface. """ - pulumi.set(__self__, "virtual_interface_id", virtual_interface_id) + HostedPrivateVirtualInterfaceAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_interface_id=virtual_interface_id, + dx_gateway_id=dx_gateway_id, + tags=tags, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_interface_id: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_interface_id is None and 'virtualInterfaceId' in kwargs: + virtual_interface_id = kwargs['virtualInterfaceId'] + if virtual_interface_id is None: + raise TypeError("Missing 'virtual_interface_id' argument") + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + + _setter("virtual_interface_id", virtual_interface_id) if dx_gateway_id is not None: - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) + _setter("dx_gateway_id", dx_gateway_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="virtualInterfaceId") @@ -100,21 +125,50 @@ def __init__(__self__, *, :param pulumi.Input[str] virtual_interface_id: The ID of the Direct Connect virtual interface to accept. :param pulumi.Input[str] vpn_gateway_id: The ID of the virtual private gateway to which to connect the virtual interface. """ + _HostedPrivateVirtualInterfaceAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + dx_gateway_id=dx_gateway_id, + tags=tags, + tags_all=tags_all, + virtual_interface_id=virtual_interface_id, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + virtual_interface_id: Optional[pulumi.Input[str]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if virtual_interface_id is None and 'virtualInterfaceId' in kwargs: + virtual_interface_id = kwargs['virtualInterfaceId'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if dx_gateway_id is not None: - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) + _setter("dx_gateway_id", dx_gateway_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if virtual_interface_id is not None: - pulumi.set(__self__, "virtual_interface_id", virtual_interface_id) + _setter("virtual_interface_id", virtual_interface_id) if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter @@ -305,6 +359,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostedPrivateVirtualInterfaceAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/hosted_public_virtual_interface.py b/sdk/python/pulumi_aws/directconnect/hosted_public_virtual_interface.py index ce72b5805a0..9a729439346 100644 --- a/sdk/python/pulumi_aws/directconnect/hosted_public_virtual_interface.py +++ b/sdk/python/pulumi_aws/directconnect/hosted_public_virtual_interface.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HostedPublicVirtualInterfaceArgs', 'HostedPublicVirtualInterface'] @@ -37,20 +37,77 @@ def __init__(__self__, *, :param pulumi.Input[str] customer_address: The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers. :param pulumi.Input[str] name: The name for the virtual interface. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "bgp_asn", bgp_asn) - pulumi.set(__self__, "connection_id", connection_id) - pulumi.set(__self__, "owner_account_id", owner_account_id) - pulumi.set(__self__, "route_filter_prefixes", route_filter_prefixes) - pulumi.set(__self__, "vlan", vlan) + HostedPublicVirtualInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + bgp_asn=bgp_asn, + connection_id=connection_id, + owner_account_id=owner_account_id, + route_filter_prefixes=route_filter_prefixes, + vlan=vlan, + amazon_address=amazon_address, + bgp_auth_key=bgp_auth_key, + customer_address=customer_address, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + route_filter_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vlan: Optional[pulumi.Input[int]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_asn is None: + raise TypeError("Missing 'bgp_asn' argument") + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if owner_account_id is None: + raise TypeError("Missing 'owner_account_id' argument") + if route_filter_prefixes is None and 'routeFilterPrefixes' in kwargs: + route_filter_prefixes = kwargs['routeFilterPrefixes'] + if route_filter_prefixes is None: + raise TypeError("Missing 'route_filter_prefixes' argument") + if vlan is None: + raise TypeError("Missing 'vlan' argument") + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + + _setter("address_family", address_family) + _setter("bgp_asn", bgp_asn) + _setter("connection_id", connection_id) + _setter("owner_account_id", owner_account_id) + _setter("route_filter_prefixes", route_filter_prefixes) + _setter("vlan", vlan) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="addressFamily") @@ -204,32 +261,87 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] route_filter_prefixes: A list of routes to be advertised to the AWS network in this region. :param pulumi.Input[int] vlan: The VLAN ID. """ + _HostedPublicVirtualInterfaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + amazon_address=amazon_address, + amazon_side_asn=amazon_side_asn, + arn=arn, + aws_device=aws_device, + bgp_asn=bgp_asn, + bgp_auth_key=bgp_auth_key, + connection_id=connection_id, + customer_address=customer_address, + name=name, + owner_account_id=owner_account_id, + route_filter_prefixes=route_filter_prefixes, + vlan=vlan, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + amazon_side_asn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + aws_device: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + route_filter_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vlan: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if aws_device is None and 'awsDevice' in kwargs: + aws_device = kwargs['awsDevice'] + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if route_filter_prefixes is None and 'routeFilterPrefixes' in kwargs: + route_filter_prefixes = kwargs['routeFilterPrefixes'] + if address_family is not None: - pulumi.set(__self__, "address_family", address_family) + _setter("address_family", address_family) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_device is not None: - pulumi.set(__self__, "aws_device", aws_device) + _setter("aws_device", aws_device) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if route_filter_prefixes is not None: - pulumi.set(__self__, "route_filter_prefixes", route_filter_prefixes) + _setter("route_filter_prefixes", route_filter_prefixes) if vlan is not None: - pulumi.set(__self__, "vlan", vlan) + _setter("vlan", vlan) @property @pulumi.getter(name="addressFamily") @@ -492,6 +604,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostedPublicVirtualInterfaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/hosted_public_virtual_interface_accepter.py b/sdk/python/pulumi_aws/directconnect/hosted_public_virtual_interface_accepter.py index 57227917d6b..59a85417b8f 100644 --- a/sdk/python/pulumi_aws/directconnect/hosted_public_virtual_interface_accepter.py +++ b/sdk/python/pulumi_aws/directconnect/hosted_public_virtual_interface_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HostedPublicVirtualInterfaceAccepterArgs', 'HostedPublicVirtualInterfaceAccepter'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] virtual_interface_id: The ID of the Direct Connect virtual interface to accept. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "virtual_interface_id", virtual_interface_id) + HostedPublicVirtualInterfaceAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_interface_id=virtual_interface_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_interface_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_interface_id is None and 'virtualInterfaceId' in kwargs: + virtual_interface_id = kwargs['virtualInterfaceId'] + if virtual_interface_id is None: + raise TypeError("Missing 'virtual_interface_id' argument") + + _setter("virtual_interface_id", virtual_interface_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="virtualInterfaceId") @@ -64,17 +81,38 @@ def __init__(__self__, *, :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] virtual_interface_id: The ID of the Direct Connect virtual interface to accept. """ + _HostedPublicVirtualInterfaceAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + tags=tags, + tags_all=tags_all, + virtual_interface_id=virtual_interface_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + virtual_interface_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if virtual_interface_id is None and 'virtualInterfaceId' in kwargs: + virtual_interface_id = kwargs['virtualInterfaceId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if virtual_interface_id is not None: - pulumi.set(__self__, "virtual_interface_id", virtual_interface_id) + _setter("virtual_interface_id", virtual_interface_id) @property @pulumi.getter @@ -243,6 +281,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostedPublicVirtualInterfaceAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/hosted_transit_virtual_interface.py b/sdk/python/pulumi_aws/directconnect/hosted_transit_virtual_interface.py index 609e836d7c7..6b8e0b48e33 100644 --- a/sdk/python/pulumi_aws/directconnect/hosted_transit_virtual_interface.py +++ b/sdk/python/pulumi_aws/directconnect/hosted_transit_virtual_interface.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HostedTransitVirtualInterfaceArgs', 'HostedTransitVirtualInterface'] @@ -37,21 +37,74 @@ def __init__(__self__, *, :param pulumi.Input[int] mtu: The maximum transmission unit (MTU) is the size, in bytes, of the largest permissible packet that can be passed over the connection. The MTU of a virtual transit interface can be either `1500` or `8500` (jumbo frames). Default is `1500`. :param pulumi.Input[str] name: The name for the virtual interface. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "bgp_asn", bgp_asn) - pulumi.set(__self__, "connection_id", connection_id) - pulumi.set(__self__, "owner_account_id", owner_account_id) - pulumi.set(__self__, "vlan", vlan) + HostedTransitVirtualInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + bgp_asn=bgp_asn, + connection_id=connection_id, + owner_account_id=owner_account_id, + vlan=vlan, + amazon_address=amazon_address, + bgp_auth_key=bgp_auth_key, + customer_address=customer_address, + mtu=mtu, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + vlan: Optional[pulumi.Input[int]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + mtu: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_asn is None: + raise TypeError("Missing 'bgp_asn' argument") + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if owner_account_id is None: + raise TypeError("Missing 'owner_account_id' argument") + if vlan is None: + raise TypeError("Missing 'vlan' argument") + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + + _setter("address_family", address_family) + _setter("bgp_asn", bgp_asn) + _setter("connection_id", connection_id) + _setter("owner_account_id", owner_account_id) + _setter("vlan", vlan) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if mtu is not None: - pulumi.set(__self__, "mtu", mtu) + _setter("mtu", mtu) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="addressFamily") @@ -207,34 +260,91 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_account_id: The AWS account that will own the new virtual interface. :param pulumi.Input[int] vlan: The VLAN ID. """ + _HostedTransitVirtualInterfaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + amazon_address=amazon_address, + amazon_side_asn=amazon_side_asn, + arn=arn, + aws_device=aws_device, + bgp_asn=bgp_asn, + bgp_auth_key=bgp_auth_key, + connection_id=connection_id, + customer_address=customer_address, + jumbo_frame_capable=jumbo_frame_capable, + mtu=mtu, + name=name, + owner_account_id=owner_account_id, + vlan=vlan, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + amazon_side_asn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + aws_device: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + jumbo_frame_capable: Optional[pulumi.Input[bool]] = None, + mtu: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + vlan: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if aws_device is None and 'awsDevice' in kwargs: + aws_device = kwargs['awsDevice'] + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + if jumbo_frame_capable is None and 'jumboFrameCapable' in kwargs: + jumbo_frame_capable = kwargs['jumboFrameCapable'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if address_family is not None: - pulumi.set(__self__, "address_family", address_family) + _setter("address_family", address_family) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_device is not None: - pulumi.set(__self__, "aws_device", aws_device) + _setter("aws_device", aws_device) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if jumbo_frame_capable is not None: - pulumi.set(__self__, "jumbo_frame_capable", jumbo_frame_capable) + _setter("jumbo_frame_capable", jumbo_frame_capable) if mtu is not None: - pulumi.set(__self__, "mtu", mtu) + _setter("mtu", mtu) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if vlan is not None: - pulumi.set(__self__, "vlan", vlan) + _setter("vlan", vlan) @property @pulumi.getter(name="addressFamily") @@ -499,6 +609,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostedTransitVirtualInterfaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/hosted_transit_virtual_interface_acceptor.py b/sdk/python/pulumi_aws/directconnect/hosted_transit_virtual_interface_acceptor.py index ff991ff121c..a118cb7796c 100644 --- a/sdk/python/pulumi_aws/directconnect/hosted_transit_virtual_interface_acceptor.py +++ b/sdk/python/pulumi_aws/directconnect/hosted_transit_virtual_interface_acceptor.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HostedTransitVirtualInterfaceAcceptorArgs', 'HostedTransitVirtualInterfaceAcceptor'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] virtual_interface_id: The ID of the Direct Connect virtual interface to accept. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) - pulumi.set(__self__, "virtual_interface_id", virtual_interface_id) + HostedTransitVirtualInterfaceAcceptorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dx_gateway_id=dx_gateway_id, + virtual_interface_id=virtual_interface_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dx_gateway_id: Optional[pulumi.Input[str]] = None, + virtual_interface_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if dx_gateway_id is None: + raise TypeError("Missing 'dx_gateway_id' argument") + if virtual_interface_id is None and 'virtualInterfaceId' in kwargs: + virtual_interface_id = kwargs['virtualInterfaceId'] + if virtual_interface_id is None: + raise TypeError("Missing 'virtual_interface_id' argument") + + _setter("dx_gateway_id", dx_gateway_id) + _setter("virtual_interface_id", virtual_interface_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dxGatewayId") @@ -81,19 +104,44 @@ def __init__(__self__, *, :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] virtual_interface_id: The ID of the Direct Connect virtual interface to accept. """ + _HostedTransitVirtualInterfaceAcceptorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + dx_gateway_id=dx_gateway_id, + tags=tags, + tags_all=tags_all, + virtual_interface_id=virtual_interface_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + virtual_interface_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if virtual_interface_id is None and 'virtualInterfaceId' in kwargs: + virtual_interface_id = kwargs['virtualInterfaceId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if dx_gateway_id is not None: - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) + _setter("dx_gateway_id", dx_gateway_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if virtual_interface_id is not None: - pulumi.set(__self__, "virtual_interface_id", virtual_interface_id) + _setter("virtual_interface_id", virtual_interface_id) @property @pulumi.getter @@ -276,6 +324,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostedTransitVirtualInterfaceAcceptorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/link_aggregation_group.py b/sdk/python/pulumi_aws/directconnect/link_aggregation_group.py index 758e2af4dc0..2a3772ea990 100644 --- a/sdk/python/pulumi_aws/directconnect/link_aggregation_group.py +++ b/sdk/python/pulumi_aws/directconnect/link_aggregation_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LinkAggregationGroupArgs', 'LinkAggregationGroup'] @@ -31,18 +31,53 @@ def __init__(__self__, *, :param pulumi.Input[str] provider_name: The name of the service provider associated with the LAG. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "connections_bandwidth", connections_bandwidth) - pulumi.set(__self__, "location", location) + LinkAggregationGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connections_bandwidth=connections_bandwidth, + location=location, + connection_id=connection_id, + force_destroy=force_destroy, + name=name, + provider_name=provider_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connections_bandwidth: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connections_bandwidth is None and 'connectionsBandwidth' in kwargs: + connections_bandwidth = kwargs['connectionsBandwidth'] + if connections_bandwidth is None: + raise TypeError("Missing 'connections_bandwidth' argument") + if location is None: + raise TypeError("Missing 'location' argument") + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + + _setter("connections_bandwidth", connections_bandwidth) + _setter("location", location) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="connectionsBandwidth") @@ -159,33 +194,82 @@ def __init__(__self__, *, :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. """ + _LinkAggregationGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + connection_id=connection_id, + connections_bandwidth=connections_bandwidth, + force_destroy=force_destroy, + has_logical_redundancy=has_logical_redundancy, + jumbo_frame_capable=jumbo_frame_capable, + location=location, + name=name, + owner_account_id=owner_account_id, + provider_name=provider_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + connections_bandwidth: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + has_logical_redundancy: Optional[pulumi.Input[str]] = None, + jumbo_frame_capable: Optional[pulumi.Input[bool]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connections_bandwidth is None and 'connectionsBandwidth' in kwargs: + connections_bandwidth = kwargs['connectionsBandwidth'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if has_logical_redundancy is None and 'hasLogicalRedundancy' in kwargs: + has_logical_redundancy = kwargs['hasLogicalRedundancy'] + if jumbo_frame_capable is None and 'jumboFrameCapable' in kwargs: + jumbo_frame_capable = kwargs['jumboFrameCapable'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if connections_bandwidth is not None: - pulumi.set(__self__, "connections_bandwidth", connections_bandwidth) + _setter("connections_bandwidth", connections_bandwidth) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if has_logical_redundancy is not None: - pulumi.set(__self__, "has_logical_redundancy", has_logical_redundancy) + _setter("has_logical_redundancy", has_logical_redundancy) if jumbo_frame_capable is not None: - pulumi.set(__self__, "jumbo_frame_capable", jumbo_frame_capable) + _setter("jumbo_frame_capable", jumbo_frame_capable) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -424,6 +508,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LinkAggregationGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/macsec_key_association.py b/sdk/python/pulumi_aws/directconnect/macsec_key_association.py index 7093581723f..de401825f8e 100644 --- a/sdk/python/pulumi_aws/directconnect/macsec_key_association.py +++ b/sdk/python/pulumi_aws/directconnect/macsec_key_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MacsecKeyAssociationArgs', 'MacsecKeyAssociation'] @@ -27,13 +27,36 @@ def __init__(__self__, *, > **Note:** `ckn` and `cak` are mutually exclusive with `secret_arn` - these arguments cannot be used together. If you use `ckn` and `cak`, you should not use `secret_arn`. If you use the `secret_arn` argument to reference an existing MAC Security (MACSec) secret key, you should not use `ckn` or `cak`. """ - pulumi.set(__self__, "connection_id", connection_id) + MacsecKeyAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_id=connection_id, + cak=cak, + ckn=ckn, + secret_arn=secret_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_id: Optional[pulumi.Input[str]] = None, + cak: Optional[pulumi.Input[str]] = None, + ckn: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + + _setter("connection_id", connection_id) if cak is not None: - pulumi.set(__self__, "cak", cak) + _setter("cak", cak) if ckn is not None: - pulumi.set(__self__, "ckn", ckn) + _setter("ckn", ckn) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) @property @pulumi.getter(name="connectionId") @@ -106,18 +129,45 @@ def __init__(__self__, *, :param pulumi.Input[str] start_on: The date in UTC format that the MAC Security (MACsec) secret key takes effect. :param pulumi.Input[str] state: The state of the MAC Security (MACsec) secret key. The possible values are: associating, associated, disassociating, disassociated. See [MacSecKey](https://docs.aws.amazon.com/directconnect/latest/APIReference/API_MacSecKey.html#DX-Type-MacSecKey-state) for descriptions of each state. """ + _MacsecKeyAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cak=cak, + ckn=ckn, + connection_id=connection_id, + secret_arn=secret_arn, + start_on=start_on, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cak: Optional[pulumi.Input[str]] = None, + ckn: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + start_on: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if start_on is None and 'startOn' in kwargs: + start_on = kwargs['startOn'] + if cak is not None: - pulumi.set(__self__, "cak", cak) + _setter("cak", cak) if ckn is not None: - pulumi.set(__self__, "ckn", ckn) + _setter("ckn", ckn) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) if start_on is not None: - pulumi.set(__self__, "start_on", start_on) + _setter("start_on", start_on) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter @@ -297,6 +347,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MacsecKeyAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/outputs.py b/sdk/python/pulumi_aws/directconnect/outputs.py index 41ab378b4b7..31867e34b4b 100644 --- a/sdk/python/pulumi_aws/directconnect/outputs.py +++ b/sdk/python/pulumi_aws/directconnect/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -35,12 +35,51 @@ def __init__(__self__, *, :param str vendor: Router vendor :param str xslt_template_name: Router XSLT Template Name """ - pulumi.set(__self__, "platform", platform) - pulumi.set(__self__, "router_type_identifier", router_type_identifier) - pulumi.set(__self__, "software", software) - pulumi.set(__self__, "vendor", vendor) - pulumi.set(__self__, "xslt_template_name", xslt_template_name) - pulumi.set(__self__, "xslt_template_name_for_mac_sec", xslt_template_name_for_mac_sec) + GetRouterConfigurationRouterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + platform=platform, + router_type_identifier=router_type_identifier, + software=software, + vendor=vendor, + xslt_template_name=xslt_template_name, + xslt_template_name_for_mac_sec=xslt_template_name_for_mac_sec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + platform: Optional[str] = None, + router_type_identifier: Optional[str] = None, + software: Optional[str] = None, + vendor: Optional[str] = None, + xslt_template_name: Optional[str] = None, + xslt_template_name_for_mac_sec: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if platform is None: + raise TypeError("Missing 'platform' argument") + if router_type_identifier is None and 'routerTypeIdentifier' in kwargs: + router_type_identifier = kwargs['routerTypeIdentifier'] + if router_type_identifier is None: + raise TypeError("Missing 'router_type_identifier' argument") + if software is None: + raise TypeError("Missing 'software' argument") + if vendor is None: + raise TypeError("Missing 'vendor' argument") + if xslt_template_name is None and 'xsltTemplateName' in kwargs: + xslt_template_name = kwargs['xsltTemplateName'] + if xslt_template_name is None: + raise TypeError("Missing 'xslt_template_name' argument") + if xslt_template_name_for_mac_sec is None and 'xsltTemplateNameForMacSec' in kwargs: + xslt_template_name_for_mac_sec = kwargs['xsltTemplateNameForMacSec'] + if xslt_template_name_for_mac_sec is None: + raise TypeError("Missing 'xslt_template_name_for_mac_sec' argument") + + _setter("platform", platform) + _setter("router_type_identifier", router_type_identifier) + _setter("software", software) + _setter("vendor", vendor) + _setter("xslt_template_name", xslt_template_name) + _setter("xslt_template_name_for_mac_sec", xslt_template_name_for_mac_sec) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/directconnect/private_virtual_interface.py b/sdk/python/pulumi_aws/directconnect/private_virtual_interface.py index f70496869dd..e046ad4b4e0 100644 --- a/sdk/python/pulumi_aws/directconnect/private_virtual_interface.py +++ b/sdk/python/pulumi_aws/directconnect/private_virtual_interface.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PrivateVirtualInterfaceArgs', 'PrivateVirtualInterface'] @@ -44,28 +44,89 @@ def __init__(__self__, *, :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] vpn_gateway_id: The ID of the virtual private gateway to which to connect the virtual interface. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "bgp_asn", bgp_asn) - pulumi.set(__self__, "connection_id", connection_id) - pulumi.set(__self__, "vlan", vlan) + PrivateVirtualInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + bgp_asn=bgp_asn, + connection_id=connection_id, + vlan=vlan, + amazon_address=amazon_address, + bgp_auth_key=bgp_auth_key, + customer_address=customer_address, + dx_gateway_id=dx_gateway_id, + mtu=mtu, + name=name, + sitelink_enabled=sitelink_enabled, + tags=tags, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + vlan: Optional[pulumi.Input[int]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + mtu: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + sitelink_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_asn is None: + raise TypeError("Missing 'bgp_asn' argument") + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + if vlan is None: + raise TypeError("Missing 'vlan' argument") + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if sitelink_enabled is None and 'sitelinkEnabled' in kwargs: + sitelink_enabled = kwargs['sitelinkEnabled'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + + _setter("address_family", address_family) + _setter("bgp_asn", bgp_asn) + _setter("connection_id", connection_id) + _setter("vlan", vlan) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if dx_gateway_id is not None: - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) + _setter("dx_gateway_id", dx_gateway_id) if mtu is not None: - pulumi.set(__self__, "mtu", mtu) + _setter("mtu", mtu) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sitelink_enabled is not None: - pulumi.set(__self__, "sitelink_enabled", sitelink_enabled) + _setter("sitelink_enabled", sitelink_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="addressFamily") @@ -267,45 +328,116 @@ def __init__(__self__, *, :param pulumi.Input[int] vlan: The VLAN ID. :param pulumi.Input[str] vpn_gateway_id: The ID of the virtual private gateway to which to connect the virtual interface. """ + _PrivateVirtualInterfaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + amazon_address=amazon_address, + amazon_side_asn=amazon_side_asn, + arn=arn, + aws_device=aws_device, + bgp_asn=bgp_asn, + bgp_auth_key=bgp_auth_key, + connection_id=connection_id, + customer_address=customer_address, + dx_gateway_id=dx_gateway_id, + jumbo_frame_capable=jumbo_frame_capable, + mtu=mtu, + name=name, + sitelink_enabled=sitelink_enabled, + tags=tags, + tags_all=tags_all, + vlan=vlan, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + amazon_side_asn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + aws_device: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + jumbo_frame_capable: Optional[pulumi.Input[bool]] = None, + mtu: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + sitelink_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vlan: Optional[pulumi.Input[int]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if aws_device is None and 'awsDevice' in kwargs: + aws_device = kwargs['awsDevice'] + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if jumbo_frame_capable is None and 'jumboFrameCapable' in kwargs: + jumbo_frame_capable = kwargs['jumboFrameCapable'] + if sitelink_enabled is None and 'sitelinkEnabled' in kwargs: + sitelink_enabled = kwargs['sitelinkEnabled'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + if address_family is not None: - pulumi.set(__self__, "address_family", address_family) + _setter("address_family", address_family) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_device is not None: - pulumi.set(__self__, "aws_device", aws_device) + _setter("aws_device", aws_device) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if dx_gateway_id is not None: - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) + _setter("dx_gateway_id", dx_gateway_id) if jumbo_frame_capable is not None: - pulumi.set(__self__, "jumbo_frame_capable", jumbo_frame_capable) + _setter("jumbo_frame_capable", jumbo_frame_capable) if mtu is not None: - pulumi.set(__self__, "mtu", mtu) + _setter("mtu", mtu) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sitelink_enabled is not None: - pulumi.set(__self__, "sitelink_enabled", sitelink_enabled) + _setter("sitelink_enabled", sitelink_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vlan is not None: - pulumi.set(__self__, "vlan", vlan) + _setter("vlan", vlan) if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="addressFamily") @@ -625,6 +757,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PrivateVirtualInterfaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/public_virtual_interface.py b/sdk/python/pulumi_aws/directconnect/public_virtual_interface.py index 6c5eb251fb8..0732394b61f 100644 --- a/sdk/python/pulumi_aws/directconnect/public_virtual_interface.py +++ b/sdk/python/pulumi_aws/directconnect/public_virtual_interface.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PublicVirtualInterfaceArgs', 'PublicVirtualInterface'] @@ -37,21 +37,74 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name for the virtual interface. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "bgp_asn", bgp_asn) - pulumi.set(__self__, "connection_id", connection_id) - pulumi.set(__self__, "route_filter_prefixes", route_filter_prefixes) - pulumi.set(__self__, "vlan", vlan) + PublicVirtualInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + bgp_asn=bgp_asn, + connection_id=connection_id, + route_filter_prefixes=route_filter_prefixes, + vlan=vlan, + amazon_address=amazon_address, + bgp_auth_key=bgp_auth_key, + customer_address=customer_address, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + route_filter_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vlan: Optional[pulumi.Input[int]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_asn is None: + raise TypeError("Missing 'bgp_asn' argument") + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + if route_filter_prefixes is None and 'routeFilterPrefixes' in kwargs: + route_filter_prefixes = kwargs['routeFilterPrefixes'] + if route_filter_prefixes is None: + raise TypeError("Missing 'route_filter_prefixes' argument") + if vlan is None: + raise TypeError("Missing 'vlan' argument") + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + + _setter("address_family", address_family) + _setter("bgp_asn", bgp_asn) + _setter("connection_id", connection_id) + _setter("route_filter_prefixes", route_filter_prefixes) + _setter("vlan", vlan) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="addressFamily") @@ -207,37 +260,94 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] vlan: The VLAN ID. """ + _PublicVirtualInterfaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + amazon_address=amazon_address, + amazon_side_asn=amazon_side_asn, + arn=arn, + aws_device=aws_device, + bgp_asn=bgp_asn, + bgp_auth_key=bgp_auth_key, + connection_id=connection_id, + customer_address=customer_address, + name=name, + route_filter_prefixes=route_filter_prefixes, + tags=tags, + tags_all=tags_all, + vlan=vlan, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + amazon_side_asn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + aws_device: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + route_filter_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vlan: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if aws_device is None and 'awsDevice' in kwargs: + aws_device = kwargs['awsDevice'] + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + if route_filter_prefixes is None and 'routeFilterPrefixes' in kwargs: + route_filter_prefixes = kwargs['routeFilterPrefixes'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if address_family is not None: - pulumi.set(__self__, "address_family", address_family) + _setter("address_family", address_family) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_device is not None: - pulumi.set(__self__, "aws_device", aws_device) + _setter("aws_device", aws_device) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if route_filter_prefixes is not None: - pulumi.set(__self__, "route_filter_prefixes", route_filter_prefixes) + _setter("route_filter_prefixes", route_filter_prefixes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vlan is not None: - pulumi.set(__self__, "vlan", vlan) + _setter("vlan", vlan) @property @pulumi.getter(name="addressFamily") @@ -513,6 +623,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PublicVirtualInterfaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directconnect/transit_virtual_interface.py b/sdk/python/pulumi_aws/directconnect/transit_virtual_interface.py index 185aeab6011..0274fa77314 100644 --- a/sdk/python/pulumi_aws/directconnect/transit_virtual_interface.py +++ b/sdk/python/pulumi_aws/directconnect/transit_virtual_interface.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TransitVirtualInterfaceArgs', 'TransitVirtualInterface'] @@ -42,25 +42,84 @@ def __init__(__self__, *, :param pulumi.Input[bool] sitelink_enabled: Indicates whether to enable or disable SiteLink. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "bgp_asn", bgp_asn) - pulumi.set(__self__, "connection_id", connection_id) - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) - pulumi.set(__self__, "vlan", vlan) + TransitVirtualInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + bgp_asn=bgp_asn, + connection_id=connection_id, + dx_gateway_id=dx_gateway_id, + vlan=vlan, + amazon_address=amazon_address, + bgp_auth_key=bgp_auth_key, + customer_address=customer_address, + mtu=mtu, + name=name, + sitelink_enabled=sitelink_enabled, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + vlan: Optional[pulumi.Input[int]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + mtu: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + sitelink_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_asn is None: + raise TypeError("Missing 'bgp_asn' argument") + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if dx_gateway_id is None: + raise TypeError("Missing 'dx_gateway_id' argument") + if vlan is None: + raise TypeError("Missing 'vlan' argument") + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + if sitelink_enabled is None and 'sitelinkEnabled' in kwargs: + sitelink_enabled = kwargs['sitelinkEnabled'] + + _setter("address_family", address_family) + _setter("bgp_asn", bgp_asn) + _setter("connection_id", connection_id) + _setter("dx_gateway_id", dx_gateway_id) + _setter("vlan", vlan) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if mtu is not None: - pulumi.set(__self__, "mtu", mtu) + _setter("mtu", mtu) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sitelink_enabled is not None: - pulumi.set(__self__, "sitelink_enabled", sitelink_enabled) + _setter("sitelink_enabled", sitelink_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="addressFamily") @@ -248,43 +307,110 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] vlan: The VLAN ID. """ + _TransitVirtualInterfaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + amazon_address=amazon_address, + amazon_side_asn=amazon_side_asn, + arn=arn, + aws_device=aws_device, + bgp_asn=bgp_asn, + bgp_auth_key=bgp_auth_key, + connection_id=connection_id, + customer_address=customer_address, + dx_gateway_id=dx_gateway_id, + jumbo_frame_capable=jumbo_frame_capable, + mtu=mtu, + name=name, + sitelink_enabled=sitelink_enabled, + tags=tags, + tags_all=tags_all, + vlan=vlan, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + amazon_address: Optional[pulumi.Input[str]] = None, + amazon_side_asn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + aws_device: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[int]] = None, + bgp_auth_key: Optional[pulumi.Input[str]] = None, + connection_id: Optional[pulumi.Input[str]] = None, + customer_address: Optional[pulumi.Input[str]] = None, + dx_gateway_id: Optional[pulumi.Input[str]] = None, + jumbo_frame_capable: Optional[pulumi.Input[bool]] = None, + mtu: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + sitelink_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vlan: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if amazon_address is None and 'amazonAddress' in kwargs: + amazon_address = kwargs['amazonAddress'] + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if aws_device is None and 'awsDevice' in kwargs: + aws_device = kwargs['awsDevice'] + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_auth_key is None and 'bgpAuthKey' in kwargs: + bgp_auth_key = kwargs['bgpAuthKey'] + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if customer_address is None and 'customerAddress' in kwargs: + customer_address = kwargs['customerAddress'] + if dx_gateway_id is None and 'dxGatewayId' in kwargs: + dx_gateway_id = kwargs['dxGatewayId'] + if jumbo_frame_capable is None and 'jumboFrameCapable' in kwargs: + jumbo_frame_capable = kwargs['jumboFrameCapable'] + if sitelink_enabled is None and 'sitelinkEnabled' in kwargs: + sitelink_enabled = kwargs['sitelinkEnabled'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if address_family is not None: - pulumi.set(__self__, "address_family", address_family) + _setter("address_family", address_family) if amazon_address is not None: - pulumi.set(__self__, "amazon_address", amazon_address) + _setter("amazon_address", amazon_address) if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_device is not None: - pulumi.set(__self__, "aws_device", aws_device) + _setter("aws_device", aws_device) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if bgp_auth_key is not None: - pulumi.set(__self__, "bgp_auth_key", bgp_auth_key) + _setter("bgp_auth_key", bgp_auth_key) if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if customer_address is not None: - pulumi.set(__self__, "customer_address", customer_address) + _setter("customer_address", customer_address) if dx_gateway_id is not None: - pulumi.set(__self__, "dx_gateway_id", dx_gateway_id) + _setter("dx_gateway_id", dx_gateway_id) if jumbo_frame_capable is not None: - pulumi.set(__self__, "jumbo_frame_capable", jumbo_frame_capable) + _setter("jumbo_frame_capable", jumbo_frame_capable) if mtu is not None: - pulumi.set(__self__, "mtu", mtu) + _setter("mtu", mtu) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sitelink_enabled is not None: - pulumi.set(__self__, "sitelink_enabled", sitelink_enabled) + _setter("sitelink_enabled", sitelink_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vlan is not None: - pulumi.set(__self__, "vlan", vlan) + _setter("vlan", vlan) @property @pulumi.getter(name="addressFamily") @@ -596,6 +722,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TransitVirtualInterfaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directoryservice/_inputs.py b/sdk/python/pulumi_aws/directoryservice/_inputs.py index 1f4a2965085..b87a6da95c5 100644 --- a/sdk/python/pulumi_aws/directoryservice/_inputs.py +++ b/sdk/python/pulumi_aws/directoryservice/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -32,14 +32,55 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The identifier of the VPC that the directory is in. :param pulumi.Input[Sequence[pulumi.Input[str]]] connect_ips: The IP addresses of the AD Connector servers. """ - pulumi.set(__self__, "customer_dns_ips", customer_dns_ips) - pulumi.set(__self__, "customer_username", customer_username) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + DirectoryConnectSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_dns_ips=customer_dns_ips, + customer_username=customer_username, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + availability_zones=availability_zones, + connect_ips=connect_ips, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_dns_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + customer_username: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + connect_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_dns_ips is None and 'customerDnsIps' in kwargs: + customer_dns_ips = kwargs['customerDnsIps'] + if customer_dns_ips is None: + raise TypeError("Missing 'customer_dns_ips' argument") + if customer_username is None and 'customerUsername' in kwargs: + customer_username = kwargs['customerUsername'] + if customer_username is None: + raise TypeError("Missing 'customer_username' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if connect_ips is None and 'connectIps' in kwargs: + connect_ips = kwargs['connectIps'] + + _setter("customer_dns_ips", customer_dns_ips) + _setter("customer_username", customer_username) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if connect_ips is not None: - pulumi.set(__self__, "connect_ips", connect_ips) + _setter("connect_ips", connect_ips) @property @pulumi.getter(name="customerDnsIps") @@ -121,10 +162,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The identifiers of the subnets for the directory servers (2 subnets in 2 different AZs). :param pulumi.Input[str] vpc_id: The identifier of the VPC that the directory is in. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + DirectoryVpcSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + vpc_id=vpc_id, + availability_zones=availability_zones, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) @property @pulumi.getter(name="subnetIds") @@ -169,8 +235,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The identifiers of the subnets for the directory servers. :param pulumi.Input[str] vpc_id: The identifier of the VPC in which to create the directory. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + ServiceRegionVpcSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="subnetIds") @@ -206,9 +293,24 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Identifier of the directory consumer account. :param pulumi.Input[str] type: Type of identifier to be used in the `id` field. Valid value is `ACCOUNT`. Default is `ACCOUNT`. """ - pulumi.set(__self__, "id", id) + SharedDirectoryTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/directoryservice/conditional_forwader.py b/sdk/python/pulumi_aws/directoryservice/conditional_forwader.py index 497e19659a3..5c39baa8eb9 100644 --- a/sdk/python/pulumi_aws/directoryservice/conditional_forwader.py +++ b/sdk/python/pulumi_aws/directoryservice/conditional_forwader.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConditionalForwaderArgs', 'ConditionalForwader'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_ips: A list of forwarder IP addresses. :param pulumi.Input[str] remote_domain_name: The fully qualified domain name of the remote domain for which forwarders will be used. """ - pulumi.set(__self__, "directory_id", directory_id) - pulumi.set(__self__, "dns_ips", dns_ips) - pulumi.set(__self__, "remote_domain_name", remote_domain_name) + ConditionalForwaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_id=directory_id, + dns_ips=dns_ips, + remote_domain_name=remote_domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_id: Optional[pulumi.Input[str]] = None, + dns_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + remote_domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if directory_id is None: + raise TypeError("Missing 'directory_id' argument") + if dns_ips is None and 'dnsIps' in kwargs: + dns_ips = kwargs['dnsIps'] + if dns_ips is None: + raise TypeError("Missing 'dns_ips' argument") + if remote_domain_name is None and 'remoteDomainName' in kwargs: + remote_domain_name = kwargs['remoteDomainName'] + if remote_domain_name is None: + raise TypeError("Missing 'remote_domain_name' argument") + + _setter("directory_id", directory_id) + _setter("dns_ips", dns_ips) + _setter("remote_domain_name", remote_domain_name) @property @pulumi.getter(name="directoryId") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_ips: A list of forwarder IP addresses. :param pulumi.Input[str] remote_domain_name: The fully qualified domain name of the remote domain for which forwarders will be used. """ + _ConditionalForwaderState._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_id=directory_id, + dns_ips=dns_ips, + remote_domain_name=remote_domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_id: Optional[pulumi.Input[str]] = None, + dns_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + remote_domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if dns_ips is None and 'dnsIps' in kwargs: + dns_ips = kwargs['dnsIps'] + if remote_domain_name is None and 'remoteDomainName' in kwargs: + remote_domain_name = kwargs['remoteDomainName'] + if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if dns_ips is not None: - pulumi.set(__self__, "dns_ips", dns_ips) + _setter("dns_ips", dns_ips) if remote_domain_name is not None: - pulumi.set(__self__, "remote_domain_name", remote_domain_name) + _setter("remote_domain_name", remote_domain_name) @property @pulumi.getter(name="directoryId") @@ -203,6 +251,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConditionalForwaderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directoryservice/directory.py b/sdk/python/pulumi_aws/directoryservice/directory.py index f51959c90ee..e5727831cdf 100644 --- a/sdk/python/pulumi_aws/directoryservice/directory.py +++ b/sdk/python/pulumi_aws/directoryservice/directory.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,30 +45,79 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The directory type (`SimpleAD`, `ADConnector` or `MicrosoftAD` are accepted values). Defaults to `SimpleAD`. :param pulumi.Input['DirectoryVpcSettingsArgs'] vpc_settings: VPC related information about the directory. Fields documented below. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "password", password) + DirectoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + password=password, + alias=alias, + connect_settings=connect_settings, + description=description, + desired_number_of_domain_controllers=desired_number_of_domain_controllers, + edition=edition, + enable_sso=enable_sso, + short_name=short_name, + size=size, + tags=tags, + type=type, + vpc_settings=vpc_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + alias: Optional[pulumi.Input[str]] = None, + connect_settings: Optional[pulumi.Input['DirectoryConnectSettingsArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + desired_number_of_domain_controllers: Optional[pulumi.Input[int]] = None, + edition: Optional[pulumi.Input[str]] = None, + enable_sso: Optional[pulumi.Input[bool]] = None, + short_name: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + vpc_settings: Optional[pulumi.Input['DirectoryVpcSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if connect_settings is None and 'connectSettings' in kwargs: + connect_settings = kwargs['connectSettings'] + if desired_number_of_domain_controllers is None and 'desiredNumberOfDomainControllers' in kwargs: + desired_number_of_domain_controllers = kwargs['desiredNumberOfDomainControllers'] + if enable_sso is None and 'enableSso' in kwargs: + enable_sso = kwargs['enableSso'] + if short_name is None and 'shortName' in kwargs: + short_name = kwargs['shortName'] + if vpc_settings is None and 'vpcSettings' in kwargs: + vpc_settings = kwargs['vpcSettings'] + + _setter("name", name) + _setter("password", password) if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if connect_settings is not None: - pulumi.set(__self__, "connect_settings", connect_settings) + _setter("connect_settings", connect_settings) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if desired_number_of_domain_controllers is not None: - pulumi.set(__self__, "desired_number_of_domain_controllers", desired_number_of_domain_controllers) + _setter("desired_number_of_domain_controllers", desired_number_of_domain_controllers) if edition is not None: - pulumi.set(__self__, "edition", edition) + _setter("edition", edition) if enable_sso is not None: - pulumi.set(__self__, "enable_sso", enable_sso) + _setter("enable_sso", enable_sso) if short_name is not None: - pulumi.set(__self__, "short_name", short_name) + _setter("short_name", short_name) if size is not None: - pulumi.set(__self__, "size", size) + _setter("size", size) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if vpc_settings is not None: - pulumi.set(__self__, "vpc_settings", vpc_settings) + _setter("vpc_settings", vpc_settings) @property @pulumi.getter @@ -267,43 +316,104 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The directory type (`SimpleAD`, `ADConnector` or `MicrosoftAD` are accepted values). Defaults to `SimpleAD`. :param pulumi.Input['DirectoryVpcSettingsArgs'] vpc_settings: VPC related information about the directory. Fields documented below. """ + _DirectoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_url=access_url, + alias=alias, + connect_settings=connect_settings, + description=description, + desired_number_of_domain_controllers=desired_number_of_domain_controllers, + dns_ip_addresses=dns_ip_addresses, + edition=edition, + enable_sso=enable_sso, + name=name, + password=password, + security_group_id=security_group_id, + short_name=short_name, + size=size, + tags=tags, + tags_all=tags_all, + type=type, + vpc_settings=vpc_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_url: Optional[pulumi.Input[str]] = None, + alias: Optional[pulumi.Input[str]] = None, + connect_settings: Optional[pulumi.Input['DirectoryConnectSettingsArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + desired_number_of_domain_controllers: Optional[pulumi.Input[int]] = None, + dns_ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + edition: Optional[pulumi.Input[str]] = None, + enable_sso: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + short_name: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + vpc_settings: Optional[pulumi.Input['DirectoryVpcSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_url is None and 'accessUrl' in kwargs: + access_url = kwargs['accessUrl'] + if connect_settings is None and 'connectSettings' in kwargs: + connect_settings = kwargs['connectSettings'] + if desired_number_of_domain_controllers is None and 'desiredNumberOfDomainControllers' in kwargs: + desired_number_of_domain_controllers = kwargs['desiredNumberOfDomainControllers'] + if dns_ip_addresses is None and 'dnsIpAddresses' in kwargs: + dns_ip_addresses = kwargs['dnsIpAddresses'] + if enable_sso is None and 'enableSso' in kwargs: + enable_sso = kwargs['enableSso'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if short_name is None and 'shortName' in kwargs: + short_name = kwargs['shortName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_settings is None and 'vpcSettings' in kwargs: + vpc_settings = kwargs['vpcSettings'] + if access_url is not None: - pulumi.set(__self__, "access_url", access_url) + _setter("access_url", access_url) if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if connect_settings is not None: - pulumi.set(__self__, "connect_settings", connect_settings) + _setter("connect_settings", connect_settings) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if desired_number_of_domain_controllers is not None: - pulumi.set(__self__, "desired_number_of_domain_controllers", desired_number_of_domain_controllers) + _setter("desired_number_of_domain_controllers", desired_number_of_domain_controllers) if dns_ip_addresses is not None: - pulumi.set(__self__, "dns_ip_addresses", dns_ip_addresses) + _setter("dns_ip_addresses", dns_ip_addresses) if edition is not None: - pulumi.set(__self__, "edition", edition) + _setter("edition", edition) if enable_sso is not None: - pulumi.set(__self__, "enable_sso", enable_sso) + _setter("enable_sso", enable_sso) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) if short_name is not None: - pulumi.set(__self__, "short_name", short_name) + _setter("short_name", short_name) if size is not None: - pulumi.set(__self__, "size", size) + _setter("size", size) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if vpc_settings is not None: - pulumi.set(__self__, "vpc_settings", vpc_settings) + _setter("vpc_settings", vpc_settings) @property @pulumi.getter(name="accessUrl") @@ -772,6 +882,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DirectoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -800,6 +914,7 @@ def _internal_init(__self__, __props__ = DirectoryArgs.__new__(DirectoryArgs) __props__.__dict__["alias"] = alias + connect_settings = _utilities.configure(connect_settings, DirectoryConnectSettingsArgs, True) __props__.__dict__["connect_settings"] = connect_settings __props__.__dict__["description"] = description __props__.__dict__["desired_number_of_domain_controllers"] = desired_number_of_domain_controllers @@ -815,6 +930,7 @@ def _internal_init(__self__, __props__.__dict__["size"] = size __props__.__dict__["tags"] = tags __props__.__dict__["type"] = type + vpc_settings = _utilities.configure(vpc_settings, DirectoryVpcSettingsArgs, True) __props__.__dict__["vpc_settings"] = vpc_settings __props__.__dict__["access_url"] = None __props__.__dict__["dns_ip_addresses"] = None diff --git a/sdk/python/pulumi_aws/directoryservice/get_directory.py b/sdk/python/pulumi_aws/directoryservice/get_directory.py index 091ad442c92..c78bdba8c96 100644 --- a/sdk/python/pulumi_aws/directoryservice/get_directory.py +++ b/sdk/python/pulumi_aws/directoryservice/get_directory.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/directoryservice/log_service.py b/sdk/python/pulumi_aws/directoryservice/log_service.py index 76329edeecd..a749676f0e9 100644 --- a/sdk/python/pulumi_aws/directoryservice/log_service.py +++ b/sdk/python/pulumi_aws/directoryservice/log_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LogServiceArgs', 'LogService'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] directory_id: ID of directory. :param pulumi.Input[str] log_group_name: Name of the cloudwatch log group to which the logs should be published. The log group should be already created and the directory service principal should be provided with required permission to create stream and publish logs. Changing this value would delete the current subscription and create a new one. A directory can only have one log subscription at a time. """ - pulumi.set(__self__, "directory_id", directory_id) - pulumi.set(__self__, "log_group_name", log_group_name) + LogServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_id=directory_id, + log_group_name=log_group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_id: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if directory_id is None: + raise TypeError("Missing 'directory_id' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + + _setter("directory_id", directory_id) + _setter("log_group_name", log_group_name) @property @pulumi.getter(name="directoryId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] directory_id: ID of directory. :param pulumi.Input[str] log_group_name: Name of the cloudwatch log group to which the logs should be published. The log group should be already created and the directory service principal should be provided with required permission to create stream and publish logs. Changing this value would delete the current subscription and create a new one. A directory can only have one log subscription at a time. """ + _LogServiceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_id=directory_id, + log_group_name=log_group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_id: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) @property @pulumi.getter(name="directoryId") @@ -194,6 +232,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LogServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directoryservice/outputs.py b/sdk/python/pulumi_aws/directoryservice/outputs.py index 1f0b7afc2cc..361d7f0de1c 100644 --- a/sdk/python/pulumi_aws/directoryservice/outputs.py +++ b/sdk/python/pulumi_aws/directoryservice/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -62,14 +62,55 @@ def __init__(__self__, *, :param str vpc_id: The identifier of the VPC that the directory is in. :param Sequence[str] connect_ips: The IP addresses of the AD Connector servers. """ - pulumi.set(__self__, "customer_dns_ips", customer_dns_ips) - pulumi.set(__self__, "customer_username", customer_username) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + DirectoryConnectSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_dns_ips=customer_dns_ips, + customer_username=customer_username, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + availability_zones=availability_zones, + connect_ips=connect_ips, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_dns_ips: Optional[Sequence[str]] = None, + customer_username: Optional[str] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + availability_zones: Optional[Sequence[str]] = None, + connect_ips: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_dns_ips is None and 'customerDnsIps' in kwargs: + customer_dns_ips = kwargs['customerDnsIps'] + if customer_dns_ips is None: + raise TypeError("Missing 'customer_dns_ips' argument") + if customer_username is None and 'customerUsername' in kwargs: + customer_username = kwargs['customerUsername'] + if customer_username is None: + raise TypeError("Missing 'customer_username' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if connect_ips is None and 'connectIps' in kwargs: + connect_ips = kwargs['connectIps'] + + _setter("customer_dns_ips", customer_dns_ips) + _setter("customer_username", customer_username) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if connect_ips is not None: - pulumi.set(__self__, "connect_ips", connect_ips) + _setter("connect_ips", connect_ips) @property @pulumi.getter(name="customerDnsIps") @@ -148,10 +189,35 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: The identifiers of the subnets for the directory servers (2 subnets in 2 different AZs). :param str vpc_id: The identifier of the VPC that the directory is in. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + DirectoryVpcSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + vpc_id=vpc_id, + availability_zones=availability_zones, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + availability_zones: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) @property @pulumi.getter(name="subnetIds") @@ -203,8 +269,29 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: The identifiers of the subnets for the directory servers. :param str vpc_id: The identifier of the VPC in which to create the directory. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + ServiceRegionVpcSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="subnetIds") @@ -232,9 +319,24 @@ def __init__(__self__, *, :param str id: Identifier of the directory consumer account. :param str type: Type of identifier to be used in the `id` field. Valid value is `ACCOUNT`. Default is `ACCOUNT`. """ - pulumi.set(__self__, "id", id) + SharedDirectoryTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -269,12 +371,57 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: Identifiers of the subnets for the connector servers (2 subnets in 2 different AZs). :param str vpc_id: ID of the VPC that the connector is in. """ - pulumi.set(__self__, "availability_zones", availability_zones) - pulumi.set(__self__, "connect_ips", connect_ips) - pulumi.set(__self__, "customer_dns_ips", customer_dns_ips) - pulumi.set(__self__, "customer_username", customer_username) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + GetDirectoryConnectSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + connect_ips=connect_ips, + customer_dns_ips=customer_dns_ips, + customer_username=customer_username, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[Sequence[str]] = None, + connect_ips: Optional[Sequence[str]] = None, + customer_dns_ips: Optional[Sequence[str]] = None, + customer_username: Optional[str] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if availability_zones is None: + raise TypeError("Missing 'availability_zones' argument") + if connect_ips is None and 'connectIps' in kwargs: + connect_ips = kwargs['connectIps'] + if connect_ips is None: + raise TypeError("Missing 'connect_ips' argument") + if customer_dns_ips is None and 'customerDnsIps' in kwargs: + customer_dns_ips = kwargs['customerDnsIps'] + if customer_dns_ips is None: + raise TypeError("Missing 'customer_dns_ips' argument") + if customer_username is None and 'customerUsername' in kwargs: + customer_username = kwargs['customerUsername'] + if customer_username is None: + raise TypeError("Missing 'customer_username' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("availability_zones", availability_zones) + _setter("connect_ips", connect_ips) + _setter("customer_dns_ips", customer_dns_ips) + _setter("customer_username", customer_username) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="availabilityZones") @@ -341,13 +488,64 @@ def __init__(__self__, *, :param int radius_timeout: Amount of time, in seconds, to wait for the RADIUS server to respond. :param bool use_same_username: Not currently used. """ - pulumi.set(__self__, "authentication_protocol", authentication_protocol) - pulumi.set(__self__, "display_label", display_label) - pulumi.set(__self__, "radius_port", radius_port) - pulumi.set(__self__, "radius_retries", radius_retries) - pulumi.set(__self__, "radius_servers", radius_servers) - pulumi.set(__self__, "radius_timeout", radius_timeout) - pulumi.set(__self__, "use_same_username", use_same_username) + GetDirectoryRadiusSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_protocol=authentication_protocol, + display_label=display_label, + radius_port=radius_port, + radius_retries=radius_retries, + radius_servers=radius_servers, + radius_timeout=radius_timeout, + use_same_username=use_same_username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_protocol: Optional[str] = None, + display_label: Optional[str] = None, + radius_port: Optional[int] = None, + radius_retries: Optional[int] = None, + radius_servers: Optional[Sequence[str]] = None, + radius_timeout: Optional[int] = None, + use_same_username: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_protocol is None and 'authenticationProtocol' in kwargs: + authentication_protocol = kwargs['authenticationProtocol'] + if authentication_protocol is None: + raise TypeError("Missing 'authentication_protocol' argument") + if display_label is None and 'displayLabel' in kwargs: + display_label = kwargs['displayLabel'] + if display_label is None: + raise TypeError("Missing 'display_label' argument") + if radius_port is None and 'radiusPort' in kwargs: + radius_port = kwargs['radiusPort'] + if radius_port is None: + raise TypeError("Missing 'radius_port' argument") + if radius_retries is None and 'radiusRetries' in kwargs: + radius_retries = kwargs['radiusRetries'] + if radius_retries is None: + raise TypeError("Missing 'radius_retries' argument") + if radius_servers is None and 'radiusServers' in kwargs: + radius_servers = kwargs['radiusServers'] + if radius_servers is None: + raise TypeError("Missing 'radius_servers' argument") + if radius_timeout is None and 'radiusTimeout' in kwargs: + radius_timeout = kwargs['radiusTimeout'] + if radius_timeout is None: + raise TypeError("Missing 'radius_timeout' argument") + if use_same_username is None and 'useSameUsername' in kwargs: + use_same_username = kwargs['useSameUsername'] + if use_same_username is None: + raise TypeError("Missing 'use_same_username' argument") + + _setter("authentication_protocol", authentication_protocol) + _setter("display_label", display_label) + _setter("radius_port", radius_port) + _setter("radius_retries", radius_retries) + _setter("radius_servers", radius_servers) + _setter("radius_timeout", radius_timeout) + _setter("use_same_username", use_same_username) @property @pulumi.getter(name="authenticationProtocol") @@ -416,9 +614,36 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: Identifiers of the subnets for the connector servers (2 subnets in 2 different AZs). :param str vpc_id: ID of the VPC that the connector is in. """ - pulumi.set(__self__, "availability_zones", availability_zones) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + GetDirectoryVpcSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if availability_zones is None: + raise TypeError("Missing 'availability_zones' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("availability_zones", availability_zones) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="availabilityZones") diff --git a/sdk/python/pulumi_aws/directoryservice/radius_settings.py b/sdk/python/pulumi_aws/directoryservice/radius_settings.py index 59bb6f1b0b4..f9e942a88cc 100644 --- a/sdk/python/pulumi_aws/directoryservice/radius_settings.py +++ b/sdk/python/pulumi_aws/directoryservice/radius_settings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RadiusSettingsArgs', 'RadiusSettings'] @@ -35,16 +35,77 @@ def __init__(__self__, *, :param pulumi.Input[str] shared_secret: Required for enabling RADIUS on the directory. :param pulumi.Input[bool] use_same_username: Not currently used. """ - pulumi.set(__self__, "authentication_protocol", authentication_protocol) - pulumi.set(__self__, "directory_id", directory_id) - pulumi.set(__self__, "display_label", display_label) - pulumi.set(__self__, "radius_port", radius_port) - pulumi.set(__self__, "radius_retries", radius_retries) - pulumi.set(__self__, "radius_servers", radius_servers) - pulumi.set(__self__, "radius_timeout", radius_timeout) - pulumi.set(__self__, "shared_secret", shared_secret) + RadiusSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_protocol=authentication_protocol, + directory_id=directory_id, + display_label=display_label, + radius_port=radius_port, + radius_retries=radius_retries, + radius_servers=radius_servers, + radius_timeout=radius_timeout, + shared_secret=shared_secret, + use_same_username=use_same_username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_protocol: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + display_label: Optional[pulumi.Input[str]] = None, + radius_port: Optional[pulumi.Input[int]] = None, + radius_retries: Optional[pulumi.Input[int]] = None, + radius_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + radius_timeout: Optional[pulumi.Input[int]] = None, + shared_secret: Optional[pulumi.Input[str]] = None, + use_same_username: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_protocol is None and 'authenticationProtocol' in kwargs: + authentication_protocol = kwargs['authenticationProtocol'] + if authentication_protocol is None: + raise TypeError("Missing 'authentication_protocol' argument") + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if directory_id is None: + raise TypeError("Missing 'directory_id' argument") + if display_label is None and 'displayLabel' in kwargs: + display_label = kwargs['displayLabel'] + if display_label is None: + raise TypeError("Missing 'display_label' argument") + if radius_port is None and 'radiusPort' in kwargs: + radius_port = kwargs['radiusPort'] + if radius_port is None: + raise TypeError("Missing 'radius_port' argument") + if radius_retries is None and 'radiusRetries' in kwargs: + radius_retries = kwargs['radiusRetries'] + if radius_retries is None: + raise TypeError("Missing 'radius_retries' argument") + if radius_servers is None and 'radiusServers' in kwargs: + radius_servers = kwargs['radiusServers'] + if radius_servers is None: + raise TypeError("Missing 'radius_servers' argument") + if radius_timeout is None and 'radiusTimeout' in kwargs: + radius_timeout = kwargs['radiusTimeout'] + if radius_timeout is None: + raise TypeError("Missing 'radius_timeout' argument") + if shared_secret is None and 'sharedSecret' in kwargs: + shared_secret = kwargs['sharedSecret'] + if shared_secret is None: + raise TypeError("Missing 'shared_secret' argument") + if use_same_username is None and 'useSameUsername' in kwargs: + use_same_username = kwargs['useSameUsername'] + + _setter("authentication_protocol", authentication_protocol) + _setter("directory_id", directory_id) + _setter("display_label", display_label) + _setter("radius_port", radius_port) + _setter("radius_retries", radius_retries) + _setter("radius_servers", radius_servers) + _setter("radius_timeout", radius_timeout) + _setter("shared_secret", shared_secret) if use_same_username is not None: - pulumi.set(__self__, "use_same_username", use_same_username) + _setter("use_same_username", use_same_username) @property @pulumi.getter(name="authenticationProtocol") @@ -179,24 +240,69 @@ def __init__(__self__, *, :param pulumi.Input[str] shared_secret: Required for enabling RADIUS on the directory. :param pulumi.Input[bool] use_same_username: Not currently used. """ + _RadiusSettingsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_protocol=authentication_protocol, + directory_id=directory_id, + display_label=display_label, + radius_port=radius_port, + radius_retries=radius_retries, + radius_servers=radius_servers, + radius_timeout=radius_timeout, + shared_secret=shared_secret, + use_same_username=use_same_username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_protocol: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + display_label: Optional[pulumi.Input[str]] = None, + radius_port: Optional[pulumi.Input[int]] = None, + radius_retries: Optional[pulumi.Input[int]] = None, + radius_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + radius_timeout: Optional[pulumi.Input[int]] = None, + shared_secret: Optional[pulumi.Input[str]] = None, + use_same_username: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_protocol is None and 'authenticationProtocol' in kwargs: + authentication_protocol = kwargs['authenticationProtocol'] + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if display_label is None and 'displayLabel' in kwargs: + display_label = kwargs['displayLabel'] + if radius_port is None and 'radiusPort' in kwargs: + radius_port = kwargs['radiusPort'] + if radius_retries is None and 'radiusRetries' in kwargs: + radius_retries = kwargs['radiusRetries'] + if radius_servers is None and 'radiusServers' in kwargs: + radius_servers = kwargs['radiusServers'] + if radius_timeout is None and 'radiusTimeout' in kwargs: + radius_timeout = kwargs['radiusTimeout'] + if shared_secret is None and 'sharedSecret' in kwargs: + shared_secret = kwargs['sharedSecret'] + if use_same_username is None and 'useSameUsername' in kwargs: + use_same_username = kwargs['useSameUsername'] + if authentication_protocol is not None: - pulumi.set(__self__, "authentication_protocol", authentication_protocol) + _setter("authentication_protocol", authentication_protocol) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if display_label is not None: - pulumi.set(__self__, "display_label", display_label) + _setter("display_label", display_label) if radius_port is not None: - pulumi.set(__self__, "radius_port", radius_port) + _setter("radius_port", radius_port) if radius_retries is not None: - pulumi.set(__self__, "radius_retries", radius_retries) + _setter("radius_retries", radius_retries) if radius_servers is not None: - pulumi.set(__self__, "radius_servers", radius_servers) + _setter("radius_servers", radius_servers) if radius_timeout is not None: - pulumi.set(__self__, "radius_timeout", radius_timeout) + _setter("radius_timeout", radius_timeout) if shared_secret is not None: - pulumi.set(__self__, "shared_secret", shared_secret) + _setter("shared_secret", shared_secret) if use_same_username is not None: - pulumi.set(__self__, "use_same_username", use_same_username) + _setter("use_same_username", use_same_username) @property @pulumi.getter(name="authenticationProtocol") @@ -406,6 +512,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RadiusSettingsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directoryservice/service_region.py b/sdk/python/pulumi_aws/directoryservice/service_region.py index 652d6dd2c96..3d5b6f95c63 100644 --- a/sdk/python/pulumi_aws/directoryservice/service_region.py +++ b/sdk/python/pulumi_aws/directoryservice/service_region.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,46 @@ def __init__(__self__, *, :param pulumi.Input[int] desired_number_of_domain_controllers: The number of domain controllers desired in the replicated directory. Minimum value of `2`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "directory_id", directory_id) - pulumi.set(__self__, "region_name", region_name) - pulumi.set(__self__, "vpc_settings", vpc_settings) + ServiceRegionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_id=directory_id, + region_name=region_name, + vpc_settings=vpc_settings, + desired_number_of_domain_controllers=desired_number_of_domain_controllers, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_id: Optional[pulumi.Input[str]] = None, + region_name: Optional[pulumi.Input[str]] = None, + vpc_settings: Optional[pulumi.Input['ServiceRegionVpcSettingsArgs']] = None, + desired_number_of_domain_controllers: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if directory_id is None: + raise TypeError("Missing 'directory_id' argument") + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + if vpc_settings is None and 'vpcSettings' in kwargs: + vpc_settings = kwargs['vpcSettings'] + if vpc_settings is None: + raise TypeError("Missing 'vpc_settings' argument") + if desired_number_of_domain_controllers is None and 'desiredNumberOfDomainControllers' in kwargs: + desired_number_of_domain_controllers = kwargs['desiredNumberOfDomainControllers'] + + _setter("directory_id", directory_id) + _setter("region_name", region_name) + _setter("vpc_settings", vpc_settings) if desired_number_of_domain_controllers is not None: - pulumi.set(__self__, "desired_number_of_domain_controllers", desired_number_of_domain_controllers) + _setter("desired_number_of_domain_controllers", desired_number_of_domain_controllers) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="directoryId") @@ -116,21 +149,52 @@ def __init__(__self__, *, :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['ServiceRegionVpcSettingsArgs'] vpc_settings: VPC information in the replicated Region. Detailed below. """ + _ServiceRegionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_number_of_domain_controllers=desired_number_of_domain_controllers, + directory_id=directory_id, + region_name=region_name, + tags=tags, + tags_all=tags_all, + vpc_settings=vpc_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_number_of_domain_controllers: Optional[pulumi.Input[int]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + region_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_settings: Optional[pulumi.Input['ServiceRegionVpcSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_number_of_domain_controllers is None and 'desiredNumberOfDomainControllers' in kwargs: + desired_number_of_domain_controllers = kwargs['desiredNumberOfDomainControllers'] + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_settings is None and 'vpcSettings' in kwargs: + vpc_settings = kwargs['vpcSettings'] + if desired_number_of_domain_controllers is not None: - pulumi.set(__self__, "desired_number_of_domain_controllers", desired_number_of_domain_controllers) + _setter("desired_number_of_domain_controllers", desired_number_of_domain_controllers) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if region_name is not None: - pulumi.set(__self__, "region_name", region_name) + _setter("region_name", region_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_settings is not None: - pulumi.set(__self__, "vpc_settings", vpc_settings) + _setter("vpc_settings", vpc_settings) @property @pulumi.getter(name="desiredNumberOfDomainControllers") @@ -267,6 +331,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceRegionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -294,6 +362,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'region_name'") __props__.__dict__["region_name"] = region_name __props__.__dict__["tags"] = tags + vpc_settings = _utilities.configure(vpc_settings, ServiceRegionVpcSettingsArgs, True) if vpc_settings is None and not opts.urn: raise TypeError("Missing required property 'vpc_settings'") __props__.__dict__["vpc_settings"] = vpc_settings diff --git a/sdk/python/pulumi_aws/directoryservice/shared_directory.py b/sdk/python/pulumi_aws/directoryservice/shared_directory.py index 59698ca1156..8900c15532f 100644 --- a/sdk/python/pulumi_aws/directoryservice/shared_directory.py +++ b/sdk/python/pulumi_aws/directoryservice/shared_directory.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,12 +29,35 @@ def __init__(__self__, *, :param pulumi.Input[str] method: Method used when sharing a directory. Valid values are `ORGANIZATIONS` and `HANDSHAKE`. Default is `HANDSHAKE`. :param pulumi.Input[str] notes: Message sent by the directory owner to the directory consumer to help the directory consumer administrator determine whether to approve or reject the share invitation. """ - pulumi.set(__self__, "directory_id", directory_id) - pulumi.set(__self__, "target", target) + SharedDirectoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_id=directory_id, + target=target, + method=method, + notes=notes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_id: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input['SharedDirectoryTargetArgs']] = None, + method: Optional[pulumi.Input[str]] = None, + notes: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if directory_id is None: + raise TypeError("Missing 'directory_id' argument") + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("directory_id", directory_id) + _setter("target", target) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if notes is not None: - pulumi.set(__self__, "notes", notes) + _setter("notes", notes) @property @pulumi.getter(name="directoryId") @@ -105,16 +128,39 @@ def __init__(__self__, *, The following arguments are optional: """ + _SharedDirectoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_id=directory_id, + method=method, + notes=notes, + shared_directory_id=shared_directory_id, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_id: Optional[pulumi.Input[str]] = None, + method: Optional[pulumi.Input[str]] = None, + notes: Optional[pulumi.Input[str]] = None, + shared_directory_id: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input['SharedDirectoryTargetArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if shared_directory_id is None and 'sharedDirectoryId' in kwargs: + shared_directory_id = kwargs['sharedDirectoryId'] + if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if notes is not None: - pulumi.set(__self__, "notes", notes) + _setter("notes", notes) if shared_directory_id is not None: - pulumi.set(__self__, "shared_directory_id", shared_directory_id) + _setter("shared_directory_id", shared_directory_id) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter(name="directoryId") @@ -282,6 +328,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SharedDirectoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -305,6 +355,7 @@ def _internal_init(__self__, __props__.__dict__["directory_id"] = directory_id __props__.__dict__["method"] = method __props__.__dict__["notes"] = None if notes is None else pulumi.Output.secret(notes) + target = _utilities.configure(target, SharedDirectoryTargetArgs, True) if target is None and not opts.urn: raise TypeError("Missing required property 'target'") __props__.__dict__["target"] = target diff --git a/sdk/python/pulumi_aws/directoryservice/shared_directory_accepter.py b/sdk/python/pulumi_aws/directoryservice/shared_directory_accepter.py index e4b5744bf2c..55ca02228cc 100644 --- a/sdk/python/pulumi_aws/directoryservice/shared_directory_accepter.py +++ b/sdk/python/pulumi_aws/directoryservice/shared_directory_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SharedDirectoryAccepterArgs', 'SharedDirectoryAccepter'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a SharedDirectoryAccepter resource. :param pulumi.Input[str] shared_directory_id: Identifier of the directory that is stored in the directory consumer account that corresponds to the shared directory in the owner account. """ - pulumi.set(__self__, "shared_directory_id", shared_directory_id) + SharedDirectoryAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + shared_directory_id=shared_directory_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + shared_directory_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if shared_directory_id is None and 'sharedDirectoryId' in kwargs: + shared_directory_id = kwargs['sharedDirectoryId'] + if shared_directory_id is None: + raise TypeError("Missing 'shared_directory_id' argument") + + _setter("shared_directory_id", shared_directory_id) @property @pulumi.getter(name="sharedDirectoryId") @@ -50,16 +65,41 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_directory_id: Identifier of the Managed Microsoft AD directory from the perspective of the directory owner. :param pulumi.Input[str] shared_directory_id: Identifier of the directory that is stored in the directory consumer account that corresponds to the shared directory in the owner account. """ + _SharedDirectoryAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + method=method, + notes=notes, + owner_account_id=owner_account_id, + owner_directory_id=owner_directory_id, + shared_directory_id=shared_directory_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + method: Optional[pulumi.Input[str]] = None, + notes: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + owner_directory_id: Optional[pulumi.Input[str]] = None, + shared_directory_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if owner_directory_id is None and 'ownerDirectoryId' in kwargs: + owner_directory_id = kwargs['ownerDirectoryId'] + if shared_directory_id is None and 'sharedDirectoryId' in kwargs: + shared_directory_id = kwargs['sharedDirectoryId'] + if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if notes is not None: - pulumi.set(__self__, "notes", notes) + _setter("notes", notes) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if owner_directory_id is not None: - pulumi.set(__self__, "owner_directory_id", owner_directory_id) + _setter("owner_directory_id", owner_directory_id) if shared_directory_id is not None: - pulumi.set(__self__, "shared_directory_id", shared_directory_id) + _setter("shared_directory_id", shared_directory_id) @property @pulumi.getter @@ -207,6 +247,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SharedDirectoryAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/directoryservice/trust.py b/sdk/python/pulumi_aws/directoryservice/trust.py index b5f5238462b..2df5430c358 100644 --- a/sdk/python/pulumi_aws/directoryservice/trust.py +++ b/sdk/python/pulumi_aws/directoryservice/trust.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TrustArgs', 'Trust'] @@ -42,18 +42,67 @@ def __init__(__self__, *, Valid values are `Forest` and `External`. Default value is `Forest`. """ - pulumi.set(__self__, "directory_id", directory_id) - pulumi.set(__self__, "remote_domain_name", remote_domain_name) - pulumi.set(__self__, "trust_direction", trust_direction) - pulumi.set(__self__, "trust_password", trust_password) + TrustArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_id=directory_id, + remote_domain_name=remote_domain_name, + trust_direction=trust_direction, + trust_password=trust_password, + conditional_forwarder_ip_addrs=conditional_forwarder_ip_addrs, + delete_associated_conditional_forwarder=delete_associated_conditional_forwarder, + selective_auth=selective_auth, + trust_type=trust_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_id: Optional[pulumi.Input[str]] = None, + remote_domain_name: Optional[pulumi.Input[str]] = None, + trust_direction: Optional[pulumi.Input[str]] = None, + trust_password: Optional[pulumi.Input[str]] = None, + conditional_forwarder_ip_addrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + delete_associated_conditional_forwarder: Optional[pulumi.Input[bool]] = None, + selective_auth: Optional[pulumi.Input[str]] = None, + trust_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if directory_id is None: + raise TypeError("Missing 'directory_id' argument") + if remote_domain_name is None and 'remoteDomainName' in kwargs: + remote_domain_name = kwargs['remoteDomainName'] + if remote_domain_name is None: + raise TypeError("Missing 'remote_domain_name' argument") + if trust_direction is None and 'trustDirection' in kwargs: + trust_direction = kwargs['trustDirection'] + if trust_direction is None: + raise TypeError("Missing 'trust_direction' argument") + if trust_password is None and 'trustPassword' in kwargs: + trust_password = kwargs['trustPassword'] + if trust_password is None: + raise TypeError("Missing 'trust_password' argument") + if conditional_forwarder_ip_addrs is None and 'conditionalForwarderIpAddrs' in kwargs: + conditional_forwarder_ip_addrs = kwargs['conditionalForwarderIpAddrs'] + if delete_associated_conditional_forwarder is None and 'deleteAssociatedConditionalForwarder' in kwargs: + delete_associated_conditional_forwarder = kwargs['deleteAssociatedConditionalForwarder'] + if selective_auth is None and 'selectiveAuth' in kwargs: + selective_auth = kwargs['selectiveAuth'] + if trust_type is None and 'trustType' in kwargs: + trust_type = kwargs['trustType'] + + _setter("directory_id", directory_id) + _setter("remote_domain_name", remote_domain_name) + _setter("trust_direction", trust_direction) + _setter("trust_password", trust_password) if conditional_forwarder_ip_addrs is not None: - pulumi.set(__self__, "conditional_forwarder_ip_addrs", conditional_forwarder_ip_addrs) + _setter("conditional_forwarder_ip_addrs", conditional_forwarder_ip_addrs) if delete_associated_conditional_forwarder is not None: - pulumi.set(__self__, "delete_associated_conditional_forwarder", delete_associated_conditional_forwarder) + _setter("delete_associated_conditional_forwarder", delete_associated_conditional_forwarder) if selective_auth is not None: - pulumi.set(__self__, "selective_auth", selective_auth) + _setter("selective_auth", selective_auth) if trust_type is not None: - pulumi.set(__self__, "trust_type", trust_type) + _setter("trust_type", trust_type) @property @pulumi.getter(name="directoryId") @@ -203,32 +252,93 @@ def __init__(__self__, *, Valid values are `Forest` and `External`. Default value is `Forest`. """ + _TrustState._configure( + lambda key, value: pulumi.set(__self__, key, value), + conditional_forwarder_ip_addrs=conditional_forwarder_ip_addrs, + created_date_time=created_date_time, + delete_associated_conditional_forwarder=delete_associated_conditional_forwarder, + directory_id=directory_id, + last_updated_date_time=last_updated_date_time, + remote_domain_name=remote_domain_name, + selective_auth=selective_auth, + state_last_updated_date_time=state_last_updated_date_time, + trust_direction=trust_direction, + trust_password=trust_password, + trust_state=trust_state, + trust_state_reason=trust_state_reason, + trust_type=trust_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + conditional_forwarder_ip_addrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + created_date_time: Optional[pulumi.Input[str]] = None, + delete_associated_conditional_forwarder: Optional[pulumi.Input[bool]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + last_updated_date_time: Optional[pulumi.Input[str]] = None, + remote_domain_name: Optional[pulumi.Input[str]] = None, + selective_auth: Optional[pulumi.Input[str]] = None, + state_last_updated_date_time: Optional[pulumi.Input[str]] = None, + trust_direction: Optional[pulumi.Input[str]] = None, + trust_password: Optional[pulumi.Input[str]] = None, + trust_state: Optional[pulumi.Input[str]] = None, + trust_state_reason: Optional[pulumi.Input[str]] = None, + trust_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if conditional_forwarder_ip_addrs is None and 'conditionalForwarderIpAddrs' in kwargs: + conditional_forwarder_ip_addrs = kwargs['conditionalForwarderIpAddrs'] + if created_date_time is None and 'createdDateTime' in kwargs: + created_date_time = kwargs['createdDateTime'] + if delete_associated_conditional_forwarder is None and 'deleteAssociatedConditionalForwarder' in kwargs: + delete_associated_conditional_forwarder = kwargs['deleteAssociatedConditionalForwarder'] + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if last_updated_date_time is None and 'lastUpdatedDateTime' in kwargs: + last_updated_date_time = kwargs['lastUpdatedDateTime'] + if remote_domain_name is None and 'remoteDomainName' in kwargs: + remote_domain_name = kwargs['remoteDomainName'] + if selective_auth is None and 'selectiveAuth' in kwargs: + selective_auth = kwargs['selectiveAuth'] + if state_last_updated_date_time is None and 'stateLastUpdatedDateTime' in kwargs: + state_last_updated_date_time = kwargs['stateLastUpdatedDateTime'] + if trust_direction is None and 'trustDirection' in kwargs: + trust_direction = kwargs['trustDirection'] + if trust_password is None and 'trustPassword' in kwargs: + trust_password = kwargs['trustPassword'] + if trust_state is None and 'trustState' in kwargs: + trust_state = kwargs['trustState'] + if trust_state_reason is None and 'trustStateReason' in kwargs: + trust_state_reason = kwargs['trustStateReason'] + if trust_type is None and 'trustType' in kwargs: + trust_type = kwargs['trustType'] + if conditional_forwarder_ip_addrs is not None: - pulumi.set(__self__, "conditional_forwarder_ip_addrs", conditional_forwarder_ip_addrs) + _setter("conditional_forwarder_ip_addrs", conditional_forwarder_ip_addrs) if created_date_time is not None: - pulumi.set(__self__, "created_date_time", created_date_time) + _setter("created_date_time", created_date_time) if delete_associated_conditional_forwarder is not None: - pulumi.set(__self__, "delete_associated_conditional_forwarder", delete_associated_conditional_forwarder) + _setter("delete_associated_conditional_forwarder", delete_associated_conditional_forwarder) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if last_updated_date_time is not None: - pulumi.set(__self__, "last_updated_date_time", last_updated_date_time) + _setter("last_updated_date_time", last_updated_date_time) if remote_domain_name is not None: - pulumi.set(__self__, "remote_domain_name", remote_domain_name) + _setter("remote_domain_name", remote_domain_name) if selective_auth is not None: - pulumi.set(__self__, "selective_auth", selective_auth) + _setter("selective_auth", selective_auth) if state_last_updated_date_time is not None: - pulumi.set(__self__, "state_last_updated_date_time", state_last_updated_date_time) + _setter("state_last_updated_date_time", state_last_updated_date_time) if trust_direction is not None: - pulumi.set(__self__, "trust_direction", trust_direction) + _setter("trust_direction", trust_direction) if trust_password is not None: - pulumi.set(__self__, "trust_password", trust_password) + _setter("trust_password", trust_password) if trust_state is not None: - pulumi.set(__self__, "trust_state", trust_state) + _setter("trust_state", trust_state) if trust_state_reason is not None: - pulumi.set(__self__, "trust_state_reason", trust_state_reason) + _setter("trust_state_reason", trust_state_reason) if trust_type is not None: - pulumi.set(__self__, "trust_type", trust_type) + _setter("trust_type", trust_type) @property @pulumi.getter(name="conditionalForwarderIpAddrs") @@ -593,6 +703,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrustArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dlm/_inputs.py b/sdk/python/pulumi_aws/dlm/_inputs.py index 1b8162347a5..a75eb90bd9f 100644 --- a/sdk/python/pulumi_aws/dlm/_inputs.py +++ b/sdk/python/pulumi_aws/dlm/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -43,7 +43,7 @@ def __init__(__self__, *, """ :param pulumi.Input['LifecyclePolicyPolicyDetailsActionArgs'] action: The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the `action` configuration block. :param pulumi.Input['LifecyclePolicyPolicyDetailsEventSourceArgs'] event_source: The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the `event_source` configuration block. - :param pulumi.Input['LifecyclePolicyPolicyDetailsParametersArgs'] parameters: A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + :param pulumi.Input['LifecyclePolicyPolicyDetailsParametersArgs'] parameters: Information about the event. See the `parameters` configuration block. :param pulumi.Input[str] policy_type: The valid target resource types and actions a policy can manage. Specify `EBS_SNAPSHOT_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify `IMAGE_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify `EVENT_BASED_POLICY` to create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value is `EBS_SNAPSHOT_MANAGEMENT`. :param pulumi.Input[str] resource_locations: The location of the resources to backup. If the source resources are located in an AWS Region, specify `CLOUD`. If the source resources are located on an Outpost in your account, specify `OUTPOST`. If you specify `OUTPOST`, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account. Valid values are `CLOUD` and `OUTPOST`. :param pulumi.Input[Sequence[pulumi.Input[str]]] resource_types: A list of resource types that should be targeted by the lifecycle policy. Valid values are `VOLUME` and `INSTANCE`. @@ -52,22 +52,57 @@ def __init__(__self__, *, > Note: You cannot have overlapping lifecycle policies that share the same `target_tags`. Pulumi is unable to detect this at plan time but it will fail during apply. """ + LifecyclePolicyPolicyDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + event_source=event_source, + parameters=parameters, + policy_type=policy_type, + resource_locations=resource_locations, + resource_types=resource_types, + schedules=schedules, + target_tags=target_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsActionArgs']] = None, + event_source: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsEventSourceArgs']] = None, + parameters: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsParametersArgs']] = None, + policy_type: Optional[pulumi.Input[str]] = None, + resource_locations: Optional[pulumi.Input[str]] = None, + resource_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + schedules: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleArgs']]]] = None, + target_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_source is None and 'eventSource' in kwargs: + event_source = kwargs['eventSource'] + if policy_type is None and 'policyType' in kwargs: + policy_type = kwargs['policyType'] + if resource_locations is None and 'resourceLocations' in kwargs: + resource_locations = kwargs['resourceLocations'] + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if target_tags is None and 'targetTags' in kwargs: + target_tags = kwargs['targetTags'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if event_source is not None: - pulumi.set(__self__, "event_source", event_source) + _setter("event_source", event_source) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if policy_type is not None: - pulumi.set(__self__, "policy_type", policy_type) + _setter("policy_type", policy_type) if resource_locations is not None: - pulumi.set(__self__, "resource_locations", resource_locations) + _setter("resource_locations", resource_locations) if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) if schedules is not None: - pulumi.set(__self__, "schedules", schedules) + _setter("schedules", schedules) if target_tags is not None: - pulumi.set(__self__, "target_tags", target_tags) + _setter("target_tags", target_tags) @property @pulumi.getter @@ -97,7 +132,7 @@ def event_source(self, value: Optional[pulumi.Input['LifecyclePolicyPolicyDetail @pulumi.getter def parameters(self) -> Optional[pulumi.Input['LifecyclePolicyPolicyDetailsParametersArgs']]: """ - A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + Information about the event. See the `parameters` configuration block. """ return pulumi.get(self, "parameters") @@ -177,8 +212,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs']]] cross_region_copies: The rule for copying shared snapshots across Regions. See the `cross_region_copy` configuration block. :param pulumi.Input[str] name: A descriptive name for the action. """ - pulumi.set(__self__, "cross_region_copies", cross_region_copies) - pulumi.set(__self__, "name", name) + LifecyclePolicyPolicyDetailsActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cross_region_copies=cross_region_copies, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cross_region_copies: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cross_region_copies is None and 'crossRegionCopies' in kwargs: + cross_region_copies = kwargs['crossRegionCopies'] + if cross_region_copies is None: + raise TypeError("Missing 'cross_region_copies' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("cross_region_copies", cross_region_copies) + _setter("name", name) @property @pulumi.getter(name="crossRegionCopies") @@ -216,10 +270,33 @@ def __init__(__self__, *, :param pulumi.Input[str] target: The target Region or the Amazon Resource Name (ARN) of the target Outpost for the snapshot copies. :param pulumi.Input['LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs'] retain_rule: Specifies the retention rule for cross-Region snapshot copies. See the `retain_rule` block. Max of 1 per action. """ - pulumi.set(__self__, "encryption_configuration", encryption_configuration) - pulumi.set(__self__, "target", target) + LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_configuration=encryption_configuration, + target=target, + retain_rule=retain_rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_configuration: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs']] = None, + target: Optional[pulumi.Input[str]] = None, + retain_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if encryption_configuration is None: + raise TypeError("Missing 'encryption_configuration' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if retain_rule is None and 'retainRule' in kwargs: + retain_rule = kwargs['retainRule'] + + _setter("encryption_configuration", encryption_configuration) + _setter("target", target) if retain_rule is not None: - pulumi.set(__self__, "retain_rule", retain_rule) + _setter("retain_rule", retain_rule) @property @pulumi.getter(name="encryptionConfiguration") @@ -264,19 +341,34 @@ def __init__(__self__, *, cmk_arn: Optional[pulumi.Input[str]] = None, encrypted: Optional[pulumi.Input[bool]] = None): """ - :param pulumi.Input[str] cmk_arn: The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. - :param pulumi.Input[bool] encrypted: To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. - """ + :param pulumi.Input[str] cmk_arn: The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. + :param pulumi.Input[bool] encrypted: To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. + """ + LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cmk_arn=cmk_arn, + encrypted=encrypted, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cmk_arn: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cmk_arn is None and 'cmkArn' in kwargs: + cmk_arn = kwargs['cmkArn'] + if cmk_arn is not None: - pulumi.set(__self__, "cmk_arn", cmk_arn) + _setter("cmk_arn", cmk_arn) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) @property @pulumi.getter(name="cmkArn") def cmk_arn(self) -> Optional[pulumi.Input[str]]: """ - The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. """ return pulumi.get(self, "cmk_arn") @@ -288,7 +380,7 @@ def cmk_arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def encrypted(self) -> Optional[pulumi.Input[bool]]: """ - To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. """ return pulumi.get(self, "encrypted") @@ -306,8 +398,27 @@ def __init__(__self__, *, :param pulumi.Input[int] interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param pulumi.Input[str] interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "interval_unit", interval_unit) + LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[pulumi.Input[int]] = None, + interval_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is None: + raise TypeError("Missing 'interval' argument") + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if interval_unit is None: + raise TypeError("Missing 'interval_unit' argument") + + _setter("interval", interval) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -340,17 +451,34 @@ def __init__(__self__, *, parameters: pulumi.Input['LifecyclePolicyPolicyDetailsEventSourceParametersArgs'], type: pulumi.Input[str]): """ - :param pulumi.Input['LifecyclePolicyPolicyDetailsEventSourceParametersArgs'] parameters: A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + :param pulumi.Input['LifecyclePolicyPolicyDetailsEventSourceParametersArgs'] parameters: Information about the event. See the `parameters` configuration block. :param pulumi.Input[str] type: The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are `MANAGED_CWE`. """ - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "type", type) + LifecyclePolicyPolicyDetailsEventSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameters=parameters, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameters: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsEventSourceParametersArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("parameters", parameters) + _setter("type", type) @property @pulumi.getter def parameters(self) -> pulumi.Input['LifecyclePolicyPolicyDetailsEventSourceParametersArgs']: """ - A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + Information about the event. See the `parameters` configuration block. """ return pulumi.get(self, "parameters") @@ -382,9 +510,36 @@ def __init__(__self__, *, :param pulumi.Input[str] event_type: The type of event. Currently, only `shareSnapshot` events are supported. :param pulumi.Input[Sequence[pulumi.Input[str]]] snapshot_owners: The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account. The policy only runs if one of the specified AWS accounts shares a snapshot with your account. """ - pulumi.set(__self__, "description_regex", description_regex) - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "snapshot_owners", snapshot_owners) + LifecyclePolicyPolicyDetailsEventSourceParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description_regex=description_regex, + event_type=event_type, + snapshot_owners=snapshot_owners, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description_regex: Optional[pulumi.Input[str]] = None, + event_type: Optional[pulumi.Input[str]] = None, + snapshot_owners: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description_regex is None and 'descriptionRegex' in kwargs: + description_regex = kwargs['descriptionRegex'] + if description_regex is None: + raise TypeError("Missing 'description_regex' argument") + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if snapshot_owners is None and 'snapshotOwners' in kwargs: + snapshot_owners = kwargs['snapshotOwners'] + if snapshot_owners is None: + raise TypeError("Missing 'snapshot_owners' argument") + + _setter("description_regex", description_regex) + _setter("event_type", event_type) + _setter("snapshot_owners", snapshot_owners) @property @pulumi.getter(name="descriptionRegex") @@ -432,10 +587,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] exclude_boot_volume: Indicates whether to exclude the root volume from snapshots created using CreateSnapshots. The default is `false`. :param pulumi.Input[bool] no_reboot: Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. `true` indicates that targeted instances are not rebooted when the policy runs. `false` indicates that target instances are rebooted when the policy runs. The default is `true` (instances are not rebooted). """ + LifecyclePolicyPolicyDetailsParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exclude_boot_volume=exclude_boot_volume, + no_reboot=no_reboot, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exclude_boot_volume: Optional[pulumi.Input[bool]] = None, + no_reboot: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exclude_boot_volume is None and 'excludeBootVolume' in kwargs: + exclude_boot_volume = kwargs['excludeBootVolume'] + if no_reboot is None and 'noReboot' in kwargs: + no_reboot = kwargs['noReboot'] + if exclude_boot_volume is not None: - pulumi.set(__self__, "exclude_boot_volume", exclude_boot_volume) + _setter("exclude_boot_volume", exclude_boot_volume) if no_reboot is not None: - pulumi.set(__self__, "no_reboot", no_reboot) + _setter("no_reboot", no_reboot) @property @pulumi.getter(name="excludeBootVolume") @@ -479,31 +651,84 @@ def __init__(__self__, *, :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs'] create_rule: See the `create_rule` block. Max of 1 per schedule. :param pulumi.Input[str] name: A descriptive name for the action. :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs'] retain_rule: Specifies the retention rule for cross-Region snapshot copies. See the `retain_rule` block. Max of 1 per action. - :param pulumi.Input[bool] copy_tags: Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + :param pulumi.Input[bool] copy_tags: Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. :param pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs']]] cross_region_copy_rules: See the `cross_region_copy_rule` block. Max of 3 per schedule. - :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs'] deprecate_rule: See the `deprecate_rule` block. Max of 1 per schedule. + :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs'] deprecate_rule: The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleFastRestoreRuleArgs'] fast_restore_rule: See the `fast_restore_rule` block. Max of 1 per schedule. :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleShareRuleArgs'] share_rule: See the `share_rule` block. Max of 1 per schedule. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_to_add: A map of tag keys and their values. DLM lifecycle policies will already tag the snapshot with the tags on the volume. This configuration adds extra tags on top of these. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] variable_tags: A map of tag keys and variable values, where the values are determined when the policy is executed. Only `$(instance-id)` or `$(timestamp)` are valid values. Can only be used when `resource_types` is `INSTANCE`. """ - pulumi.set(__self__, "create_rule", create_rule) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "retain_rule", retain_rule) + LifecyclePolicyPolicyDetailsScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create_rule=create_rule, + name=name, + retain_rule=retain_rule, + copy_tags=copy_tags, + cross_region_copy_rules=cross_region_copy_rules, + deprecate_rule=deprecate_rule, + fast_restore_rule=fast_restore_rule, + share_rule=share_rule, + tags_to_add=tags_to_add, + variable_tags=variable_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + retain_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs']] = None, + copy_tags: Optional[pulumi.Input[bool]] = None, + cross_region_copy_rules: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs']]]] = None, + deprecate_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs']] = None, + fast_restore_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleFastRestoreRuleArgs']] = None, + share_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleShareRuleArgs']] = None, + tags_to_add: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + variable_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_rule is None and 'createRule' in kwargs: + create_rule = kwargs['createRule'] + if create_rule is None: + raise TypeError("Missing 'create_rule' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if retain_rule is None and 'retainRule' in kwargs: + retain_rule = kwargs['retainRule'] + if retain_rule is None: + raise TypeError("Missing 'retain_rule' argument") + if copy_tags is None and 'copyTags' in kwargs: + copy_tags = kwargs['copyTags'] + if cross_region_copy_rules is None and 'crossRegionCopyRules' in kwargs: + cross_region_copy_rules = kwargs['crossRegionCopyRules'] + if deprecate_rule is None and 'deprecateRule' in kwargs: + deprecate_rule = kwargs['deprecateRule'] + if fast_restore_rule is None and 'fastRestoreRule' in kwargs: + fast_restore_rule = kwargs['fastRestoreRule'] + if share_rule is None and 'shareRule' in kwargs: + share_rule = kwargs['shareRule'] + if tags_to_add is None and 'tagsToAdd' in kwargs: + tags_to_add = kwargs['tagsToAdd'] + if variable_tags is None and 'variableTags' in kwargs: + variable_tags = kwargs['variableTags'] + + _setter("create_rule", create_rule) + _setter("name", name) + _setter("retain_rule", retain_rule) if copy_tags is not None: - pulumi.set(__self__, "copy_tags", copy_tags) + _setter("copy_tags", copy_tags) if cross_region_copy_rules is not None: - pulumi.set(__self__, "cross_region_copy_rules", cross_region_copy_rules) + _setter("cross_region_copy_rules", cross_region_copy_rules) if deprecate_rule is not None: - pulumi.set(__self__, "deprecate_rule", deprecate_rule) + _setter("deprecate_rule", deprecate_rule) if fast_restore_rule is not None: - pulumi.set(__self__, "fast_restore_rule", fast_restore_rule) + _setter("fast_restore_rule", fast_restore_rule) if share_rule is not None: - pulumi.set(__self__, "share_rule", share_rule) + _setter("share_rule", share_rule) if tags_to_add is not None: - pulumi.set(__self__, "tags_to_add", tags_to_add) + _setter("tags_to_add", tags_to_add) if variable_tags is not None: - pulumi.set(__self__, "variable_tags", variable_tags) + _setter("variable_tags", variable_tags) @property @pulumi.getter(name="createRule") @@ -545,7 +770,7 @@ def retain_rule(self, value: pulumi.Input['LifecyclePolicyPolicyDetailsScheduleR @pulumi.getter(name="copyTags") def copy_tags(self) -> Optional[pulumi.Input[bool]]: """ - Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. """ return pulumi.get(self, "copy_tags") @@ -569,7 +794,7 @@ def cross_region_copy_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.I @pulumi.getter(name="deprecateRule") def deprecate_rule(self) -> Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs']]: """ - See the `deprecate_rule` block. Max of 1 per schedule. + The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. """ return pulumi.get(self, "deprecate_rule") @@ -641,16 +866,39 @@ def __init__(__self__, *, :param pulumi.Input[str] location: Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify `CLOUD`. To create snapshots on the same Outpost as the source resource, specify `OUTPOST_LOCAL`. If you omit this parameter, `CLOUD` is used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values are `CLOUD` and `OUTPOST_LOCAL`. :param pulumi.Input[str] times: A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with `cron_expression`. Must be set if `interval` is set. """ + LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cron_expression=cron_expression, + interval=interval, + interval_unit=interval_unit, + location=location, + times=times, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cron_expression: Optional[pulumi.Input[str]] = None, + interval: Optional[pulumi.Input[int]] = None, + interval_unit: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + times: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cron_expression is None and 'cronExpression' in kwargs: + cron_expression = kwargs['cronExpression'] + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if cron_expression is not None: - pulumi.set(__self__, "cron_expression", cron_expression) + _setter("cron_expression", cron_expression) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if interval_unit is not None: - pulumi.set(__self__, "interval_unit", interval_unit) + _setter("interval_unit", interval_unit) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if times is not None: - pulumi.set(__self__, "times", times) + _setter("times", times) @property @pulumi.getter(name="cronExpression") @@ -723,29 +971,62 @@ def __init__(__self__, *, deprecate_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs']] = None, retain_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs']] = None): """ - :param pulumi.Input[bool] encrypted: To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + :param pulumi.Input[bool] encrypted: To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. :param pulumi.Input[str] target: The target Region or the Amazon Resource Name (ARN) of the target Outpost for the snapshot copies. - :param pulumi.Input[str] cmk_arn: The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. - :param pulumi.Input[bool] copy_tags: Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. - :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs'] deprecate_rule: See the `deprecate_rule` block. Max of 1 per schedule. + :param pulumi.Input[str] cmk_arn: The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. + :param pulumi.Input[bool] copy_tags: Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. + :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs'] deprecate_rule: The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs'] retain_rule: Specifies the retention rule for cross-Region snapshot copies. See the `retain_rule` block. Max of 1 per action. """ - pulumi.set(__self__, "encrypted", encrypted) - pulumi.set(__self__, "target", target) + LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encrypted=encrypted, + target=target, + cmk_arn=cmk_arn, + copy_tags=copy_tags, + deprecate_rule=deprecate_rule, + retain_rule=retain_rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encrypted: Optional[pulumi.Input[bool]] = None, + target: Optional[pulumi.Input[str]] = None, + cmk_arn: Optional[pulumi.Input[str]] = None, + copy_tags: Optional[pulumi.Input[bool]] = None, + deprecate_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs']] = None, + retain_rule: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encrypted is None: + raise TypeError("Missing 'encrypted' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if cmk_arn is None and 'cmkArn' in kwargs: + cmk_arn = kwargs['cmkArn'] + if copy_tags is None and 'copyTags' in kwargs: + copy_tags = kwargs['copyTags'] + if deprecate_rule is None and 'deprecateRule' in kwargs: + deprecate_rule = kwargs['deprecateRule'] + if retain_rule is None and 'retainRule' in kwargs: + retain_rule = kwargs['retainRule'] + + _setter("encrypted", encrypted) + _setter("target", target) if cmk_arn is not None: - pulumi.set(__self__, "cmk_arn", cmk_arn) + _setter("cmk_arn", cmk_arn) if copy_tags is not None: - pulumi.set(__self__, "copy_tags", copy_tags) + _setter("copy_tags", copy_tags) if deprecate_rule is not None: - pulumi.set(__self__, "deprecate_rule", deprecate_rule) + _setter("deprecate_rule", deprecate_rule) if retain_rule is not None: - pulumi.set(__self__, "retain_rule", retain_rule) + _setter("retain_rule", retain_rule) @property @pulumi.getter def encrypted(self) -> pulumi.Input[bool]: """ - To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. """ return pulumi.get(self, "encrypted") @@ -769,7 +1050,7 @@ def target(self, value: pulumi.Input[str]): @pulumi.getter(name="cmkArn") def cmk_arn(self) -> Optional[pulumi.Input[str]]: """ - The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. """ return pulumi.get(self, "cmk_arn") @@ -781,7 +1062,7 @@ def cmk_arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="copyTags") def copy_tags(self) -> Optional[pulumi.Input[bool]]: """ - Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. """ return pulumi.get(self, "copy_tags") @@ -793,7 +1074,7 @@ def copy_tags(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="deprecateRule") def deprecate_rule(self) -> Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs']]: """ - See the `deprecate_rule` block. Max of 1 per schedule. + The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. """ return pulumi.get(self, "deprecate_rule") @@ -823,8 +1104,27 @@ def __init__(__self__, *, :param pulumi.Input[int] interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param pulumi.Input[str] interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "interval_unit", interval_unit) + LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[pulumi.Input[int]] = None, + interval_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is None: + raise TypeError("Missing 'interval' argument") + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if interval_unit is None: + raise TypeError("Missing 'interval_unit' argument") + + _setter("interval", interval) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -860,8 +1160,27 @@ def __init__(__self__, *, :param pulumi.Input[int] interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param pulumi.Input[str] interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "interval_unit", interval_unit) + LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[pulumi.Input[int]] = None, + interval_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is None: + raise TypeError("Missing 'interval' argument") + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if interval_unit is None: + raise TypeError("Missing 'interval_unit' argument") + + _setter("interval", interval) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -899,12 +1218,29 @@ def __init__(__self__, *, :param pulumi.Input[int] interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param pulumi.Input[str] interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ + LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[pulumi.Input[int]] = None, + interval: Optional[pulumi.Input[int]] = None, + interval_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if interval_unit is not None: - pulumi.set(__self__, "interval_unit", interval_unit) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -956,13 +1292,36 @@ def __init__(__self__, *, :param pulumi.Input[int] interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param pulumi.Input[str] interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ - pulumi.set(__self__, "availability_zones", availability_zones) + LifecyclePolicyPolicyDetailsScheduleFastRestoreRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + count=count, + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + count: Optional[pulumi.Input[int]] = None, + interval: Optional[pulumi.Input[int]] = None, + interval_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if availability_zones is None: + raise TypeError("Missing 'availability_zones' argument") + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + + _setter("availability_zones", availability_zones) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if interval_unit is not None: - pulumi.set(__self__, "interval_unit", interval_unit) + _setter("interval_unit", interval_unit) @property @pulumi.getter(name="availabilityZones") @@ -1024,12 +1383,29 @@ def __init__(__self__, *, :param pulumi.Input[int] interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param pulumi.Input[str] interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ + LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[pulumi.Input[int]] = None, + interval: Optional[pulumi.Input[int]] = None, + interval_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if interval_unit is not None: - pulumi.set(__self__, "interval_unit", interval_unit) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -1077,11 +1453,34 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_accounts: The IDs of the AWS accounts with which to share the snapshots. """ - pulumi.set(__self__, "target_accounts", target_accounts) + LifecyclePolicyPolicyDetailsScheduleShareRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_accounts=target_accounts, + unshare_interval=unshare_interval, + unshare_interval_unit=unshare_interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + unshare_interval: Optional[pulumi.Input[int]] = None, + unshare_interval_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_accounts is None and 'targetAccounts' in kwargs: + target_accounts = kwargs['targetAccounts'] + if target_accounts is None: + raise TypeError("Missing 'target_accounts' argument") + if unshare_interval is None and 'unshareInterval' in kwargs: + unshare_interval = kwargs['unshareInterval'] + if unshare_interval_unit is None and 'unshareIntervalUnit' in kwargs: + unshare_interval_unit = kwargs['unshareIntervalUnit'] + + _setter("target_accounts", target_accounts) if unshare_interval is not None: - pulumi.set(__self__, "unshare_interval", unshare_interval) + _setter("unshare_interval", unshare_interval) if unshare_interval_unit is not None: - pulumi.set(__self__, "unshare_interval_unit", unshare_interval_unit) + _setter("unshare_interval_unit", unshare_interval_unit) @property @pulumi.getter(name="targetAccounts") diff --git a/sdk/python/pulumi_aws/dlm/lifecycle_policy.py b/sdk/python/pulumi_aws/dlm/lifecycle_policy.py index 0dfb7b3f3e7..8b33b256abf 100644 --- a/sdk/python/pulumi_aws/dlm/lifecycle_policy.py +++ b/sdk/python/pulumi_aws/dlm/lifecycle_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,42 @@ def __init__(__self__, *, :param pulumi.Input[str] state: Whether the lifecycle policy should be enabled or disabled. `ENABLED` or `DISABLED` are valid values. Defaults to `ENABLED`. :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. """ - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "execution_role_arn", execution_role_arn) - pulumi.set(__self__, "policy_details", policy_details) + LifecyclePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + execution_role_arn=execution_role_arn, + policy_details=policy_details, + state=state, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + policy_details: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsArgs']] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is None: + raise TypeError("Missing 'description' argument") + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if execution_role_arn is None: + raise TypeError("Missing 'execution_role_arn' argument") + if policy_details is None and 'policyDetails' in kwargs: + policy_details = kwargs['policyDetails'] + if policy_details is None: + raise TypeError("Missing 'policy_details' argument") + + _setter("description", description) + _setter("execution_role_arn", execution_role_arn) + _setter("policy_details", policy_details) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -118,23 +147,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _LifecyclePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + execution_role_arn=execution_role_arn, + policy_details=policy_details, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + policy_details: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsArgs']] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if policy_details is None and 'policyDetails' in kwargs: + policy_details = kwargs['policyDetails'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if policy_details is not None: - pulumi.set(__self__, "policy_details", policy_details) + _setter("policy_details", policy_details) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -359,6 +417,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LifecyclePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -384,6 +446,7 @@ def _internal_init(__self__, if execution_role_arn is None and not opts.urn: raise TypeError("Missing required property 'execution_role_arn'") __props__.__dict__["execution_role_arn"] = execution_role_arn + policy_details = _utilities.configure(policy_details, LifecyclePolicyPolicyDetailsArgs, True) if policy_details is None and not opts.urn: raise TypeError("Missing required property 'policy_details'") __props__.__dict__["policy_details"] = policy_details diff --git a/sdk/python/pulumi_aws/dlm/outputs.py b/sdk/python/pulumi_aws/dlm/outputs.py index e5f76bc3316..6c15dc2f1df 100644 --- a/sdk/python/pulumi_aws/dlm/outputs.py +++ b/sdk/python/pulumi_aws/dlm/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -69,7 +69,7 @@ def __init__(__self__, *, """ :param 'LifecyclePolicyPolicyDetailsActionArgs' action: The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the `action` configuration block. :param 'LifecyclePolicyPolicyDetailsEventSourceArgs' event_source: The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the `event_source` configuration block. - :param 'LifecyclePolicyPolicyDetailsParametersArgs' parameters: A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + :param 'LifecyclePolicyPolicyDetailsParametersArgs' parameters: Information about the event. See the `parameters` configuration block. :param str policy_type: The valid target resource types and actions a policy can manage. Specify `EBS_SNAPSHOT_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify `IMAGE_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify `EVENT_BASED_POLICY` to create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value is `EBS_SNAPSHOT_MANAGEMENT`. :param str resource_locations: The location of the resources to backup. If the source resources are located in an AWS Region, specify `CLOUD`. If the source resources are located on an Outpost in your account, specify `OUTPOST`. If you specify `OUTPOST`, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account. Valid values are `CLOUD` and `OUTPOST`. :param Sequence[str] resource_types: A list of resource types that should be targeted by the lifecycle policy. Valid values are `VOLUME` and `INSTANCE`. @@ -78,22 +78,57 @@ def __init__(__self__, *, > Note: You cannot have overlapping lifecycle policies that share the same `target_tags`. Pulumi is unable to detect this at plan time but it will fail during apply. """ + LifecyclePolicyPolicyDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + event_source=event_source, + parameters=parameters, + policy_type=policy_type, + resource_locations=resource_locations, + resource_types=resource_types, + schedules=schedules, + target_tags=target_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.LifecyclePolicyPolicyDetailsAction'] = None, + event_source: Optional['outputs.LifecyclePolicyPolicyDetailsEventSource'] = None, + parameters: Optional['outputs.LifecyclePolicyPolicyDetailsParameters'] = None, + policy_type: Optional[str] = None, + resource_locations: Optional[str] = None, + resource_types: Optional[Sequence[str]] = None, + schedules: Optional[Sequence['outputs.LifecyclePolicyPolicyDetailsSchedule']] = None, + target_tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_source is None and 'eventSource' in kwargs: + event_source = kwargs['eventSource'] + if policy_type is None and 'policyType' in kwargs: + policy_type = kwargs['policyType'] + if resource_locations is None and 'resourceLocations' in kwargs: + resource_locations = kwargs['resourceLocations'] + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if target_tags is None and 'targetTags' in kwargs: + target_tags = kwargs['targetTags'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if event_source is not None: - pulumi.set(__self__, "event_source", event_source) + _setter("event_source", event_source) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if policy_type is not None: - pulumi.set(__self__, "policy_type", policy_type) + _setter("policy_type", policy_type) if resource_locations is not None: - pulumi.set(__self__, "resource_locations", resource_locations) + _setter("resource_locations", resource_locations) if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) if schedules is not None: - pulumi.set(__self__, "schedules", schedules) + _setter("schedules", schedules) if target_tags is not None: - pulumi.set(__self__, "target_tags", target_tags) + _setter("target_tags", target_tags) @property @pulumi.getter @@ -115,7 +150,7 @@ def event_source(self) -> Optional['outputs.LifecyclePolicyPolicyDetailsEventSou @pulumi.getter def parameters(self) -> Optional['outputs.LifecyclePolicyPolicyDetailsParameters']: """ - A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + Information about the event. See the `parameters` configuration block. """ return pulumi.get(self, "parameters") @@ -188,8 +223,27 @@ def __init__(__self__, *, :param Sequence['LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs'] cross_region_copies: The rule for copying shared snapshots across Regions. See the `cross_region_copy` configuration block. :param str name: A descriptive name for the action. """ - pulumi.set(__self__, "cross_region_copies", cross_region_copies) - pulumi.set(__self__, "name", name) + LifecyclePolicyPolicyDetailsAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + cross_region_copies=cross_region_copies, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cross_region_copies: Optional[Sequence['outputs.LifecyclePolicyPolicyDetailsActionCrossRegionCopy']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cross_region_copies is None and 'crossRegionCopies' in kwargs: + cross_region_copies = kwargs['crossRegionCopies'] + if cross_region_copies is None: + raise TypeError("Missing 'cross_region_copies' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("cross_region_copies", cross_region_copies) + _setter("name", name) @property @pulumi.getter(name="crossRegionCopies") @@ -238,10 +292,33 @@ def __init__(__self__, *, :param str target: The target Region or the Amazon Resource Name (ARN) of the target Outpost for the snapshot copies. :param 'LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs' retain_rule: Specifies the retention rule for cross-Region snapshot copies. See the `retain_rule` block. Max of 1 per action. """ - pulumi.set(__self__, "encryption_configuration", encryption_configuration) - pulumi.set(__self__, "target", target) + LifecyclePolicyPolicyDetailsActionCrossRegionCopy._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_configuration=encryption_configuration, + target=target, + retain_rule=retain_rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_configuration: Optional['outputs.LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration'] = None, + target: Optional[str] = None, + retain_rule: Optional['outputs.LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRule'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if encryption_configuration is None: + raise TypeError("Missing 'encryption_configuration' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if retain_rule is None and 'retainRule' in kwargs: + retain_rule = kwargs['retainRule'] + + _setter("encryption_configuration", encryption_configuration) + _setter("target", target) if retain_rule is not None: - pulumi.set(__self__, "retain_rule", retain_rule) + _setter("retain_rule", retain_rule) @property @pulumi.getter(name="encryptionConfiguration") @@ -291,19 +368,34 @@ def __init__(__self__, *, cmk_arn: Optional[str] = None, encrypted: Optional[bool] = None): """ - :param str cmk_arn: The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. - :param bool encrypted: To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + :param str cmk_arn: The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. + :param bool encrypted: To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. """ + LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cmk_arn=cmk_arn, + encrypted=encrypted, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cmk_arn: Optional[str] = None, + encrypted: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cmk_arn is None and 'cmkArn' in kwargs: + cmk_arn = kwargs['cmkArn'] + if cmk_arn is not None: - pulumi.set(__self__, "cmk_arn", cmk_arn) + _setter("cmk_arn", cmk_arn) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) @property @pulumi.getter(name="cmkArn") def cmk_arn(self) -> Optional[str]: """ - The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. """ return pulumi.get(self, "cmk_arn") @@ -311,7 +403,7 @@ def cmk_arn(self) -> Optional[str]: @pulumi.getter def encrypted(self) -> Optional[bool]: """ - To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. """ return pulumi.get(self, "encrypted") @@ -342,8 +434,27 @@ def __init__(__self__, *, :param int interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param str interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "interval_unit", interval_unit) + LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[int] = None, + interval_unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is None: + raise TypeError("Missing 'interval' argument") + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if interval_unit is None: + raise TypeError("Missing 'interval_unit' argument") + + _setter("interval", interval) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -368,17 +479,34 @@ def __init__(__self__, *, parameters: 'outputs.LifecyclePolicyPolicyDetailsEventSourceParameters', type: str): """ - :param 'LifecyclePolicyPolicyDetailsEventSourceParametersArgs' parameters: A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + :param 'LifecyclePolicyPolicyDetailsEventSourceParametersArgs' parameters: Information about the event. See the `parameters` configuration block. :param str type: The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are `MANAGED_CWE`. """ - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "type", type) + LifecyclePolicyPolicyDetailsEventSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameters=parameters, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameters: Optional['outputs.LifecyclePolicyPolicyDetailsEventSourceParameters'] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("parameters", parameters) + _setter("type", type) @property @pulumi.getter def parameters(self) -> 'outputs.LifecyclePolicyPolicyDetailsEventSourceParameters': """ - A set of optional parameters for snapshot and AMI lifecycle policies. See the `parameters` configuration block. + Information about the event. See the `parameters` configuration block. """ return pulumi.get(self, "parameters") @@ -423,9 +551,36 @@ def __init__(__self__, *, :param str event_type: The type of event. Currently, only `shareSnapshot` events are supported. :param Sequence[str] snapshot_owners: The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account. The policy only runs if one of the specified AWS accounts shares a snapshot with your account. """ - pulumi.set(__self__, "description_regex", description_regex) - pulumi.set(__self__, "event_type", event_type) - pulumi.set(__self__, "snapshot_owners", snapshot_owners) + LifecyclePolicyPolicyDetailsEventSourceParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + description_regex=description_regex, + event_type=event_type, + snapshot_owners=snapshot_owners, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description_regex: Optional[str] = None, + event_type: Optional[str] = None, + snapshot_owners: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description_regex is None and 'descriptionRegex' in kwargs: + description_regex = kwargs['descriptionRegex'] + if description_regex is None: + raise TypeError("Missing 'description_regex' argument") + if event_type is None and 'eventType' in kwargs: + event_type = kwargs['eventType'] + if event_type is None: + raise TypeError("Missing 'event_type' argument") + if snapshot_owners is None and 'snapshotOwners' in kwargs: + snapshot_owners = kwargs['snapshotOwners'] + if snapshot_owners is None: + raise TypeError("Missing 'snapshot_owners' argument") + + _setter("description_regex", description_regex) + _setter("event_type", event_type) + _setter("snapshot_owners", snapshot_owners) @property @pulumi.getter(name="descriptionRegex") @@ -480,10 +635,27 @@ def __init__(__self__, *, :param bool exclude_boot_volume: Indicates whether to exclude the root volume from snapshots created using CreateSnapshots. The default is `false`. :param bool no_reboot: Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. `true` indicates that targeted instances are not rebooted when the policy runs. `false` indicates that target instances are rebooted when the policy runs. The default is `true` (instances are not rebooted). """ + LifecyclePolicyPolicyDetailsParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + exclude_boot_volume=exclude_boot_volume, + no_reboot=no_reboot, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exclude_boot_volume: Optional[bool] = None, + no_reboot: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exclude_boot_volume is None and 'excludeBootVolume' in kwargs: + exclude_boot_volume = kwargs['excludeBootVolume'] + if no_reboot is None and 'noReboot' in kwargs: + no_reboot = kwargs['noReboot'] + if exclude_boot_volume is not None: - pulumi.set(__self__, "exclude_boot_volume", exclude_boot_volume) + _setter("exclude_boot_volume", exclude_boot_volume) if no_reboot is not None: - pulumi.set(__self__, "no_reboot", no_reboot) + _setter("no_reboot", no_reboot) @property @pulumi.getter(name="excludeBootVolume") @@ -552,31 +724,84 @@ def __init__(__self__, *, :param 'LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs' create_rule: See the `create_rule` block. Max of 1 per schedule. :param str name: A descriptive name for the action. :param 'LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs' retain_rule: Specifies the retention rule for cross-Region snapshot copies. See the `retain_rule` block. Max of 1 per action. - :param bool copy_tags: Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + :param bool copy_tags: Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. :param Sequence['LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs'] cross_region_copy_rules: See the `cross_region_copy_rule` block. Max of 3 per schedule. - :param 'LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs' deprecate_rule: See the `deprecate_rule` block. Max of 1 per schedule. + :param 'LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs' deprecate_rule: The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. :param 'LifecyclePolicyPolicyDetailsScheduleFastRestoreRuleArgs' fast_restore_rule: See the `fast_restore_rule` block. Max of 1 per schedule. :param 'LifecyclePolicyPolicyDetailsScheduleShareRuleArgs' share_rule: See the `share_rule` block. Max of 1 per schedule. :param Mapping[str, str] tags_to_add: A map of tag keys and their values. DLM lifecycle policies will already tag the snapshot with the tags on the volume. This configuration adds extra tags on top of these. :param Mapping[str, str] variable_tags: A map of tag keys and variable values, where the values are determined when the policy is executed. Only `$(instance-id)` or `$(timestamp)` are valid values. Can only be used when `resource_types` is `INSTANCE`. """ - pulumi.set(__self__, "create_rule", create_rule) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "retain_rule", retain_rule) + LifecyclePolicyPolicyDetailsSchedule._configure( + lambda key, value: pulumi.set(__self__, key, value), + create_rule=create_rule, + name=name, + retain_rule=retain_rule, + copy_tags=copy_tags, + cross_region_copy_rules=cross_region_copy_rules, + deprecate_rule=deprecate_rule, + fast_restore_rule=fast_restore_rule, + share_rule=share_rule, + tags_to_add=tags_to_add, + variable_tags=variable_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create_rule: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleCreateRule'] = None, + name: Optional[str] = None, + retain_rule: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleRetainRule'] = None, + copy_tags: Optional[bool] = None, + cross_region_copy_rules: Optional[Sequence['outputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule']] = None, + deprecate_rule: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleDeprecateRule'] = None, + fast_restore_rule: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleFastRestoreRule'] = None, + share_rule: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleShareRule'] = None, + tags_to_add: Optional[Mapping[str, str]] = None, + variable_tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_rule is None and 'createRule' in kwargs: + create_rule = kwargs['createRule'] + if create_rule is None: + raise TypeError("Missing 'create_rule' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if retain_rule is None and 'retainRule' in kwargs: + retain_rule = kwargs['retainRule'] + if retain_rule is None: + raise TypeError("Missing 'retain_rule' argument") + if copy_tags is None and 'copyTags' in kwargs: + copy_tags = kwargs['copyTags'] + if cross_region_copy_rules is None and 'crossRegionCopyRules' in kwargs: + cross_region_copy_rules = kwargs['crossRegionCopyRules'] + if deprecate_rule is None and 'deprecateRule' in kwargs: + deprecate_rule = kwargs['deprecateRule'] + if fast_restore_rule is None and 'fastRestoreRule' in kwargs: + fast_restore_rule = kwargs['fastRestoreRule'] + if share_rule is None and 'shareRule' in kwargs: + share_rule = kwargs['shareRule'] + if tags_to_add is None and 'tagsToAdd' in kwargs: + tags_to_add = kwargs['tagsToAdd'] + if variable_tags is None and 'variableTags' in kwargs: + variable_tags = kwargs['variableTags'] + + _setter("create_rule", create_rule) + _setter("name", name) + _setter("retain_rule", retain_rule) if copy_tags is not None: - pulumi.set(__self__, "copy_tags", copy_tags) + _setter("copy_tags", copy_tags) if cross_region_copy_rules is not None: - pulumi.set(__self__, "cross_region_copy_rules", cross_region_copy_rules) + _setter("cross_region_copy_rules", cross_region_copy_rules) if deprecate_rule is not None: - pulumi.set(__self__, "deprecate_rule", deprecate_rule) + _setter("deprecate_rule", deprecate_rule) if fast_restore_rule is not None: - pulumi.set(__self__, "fast_restore_rule", fast_restore_rule) + _setter("fast_restore_rule", fast_restore_rule) if share_rule is not None: - pulumi.set(__self__, "share_rule", share_rule) + _setter("share_rule", share_rule) if tags_to_add is not None: - pulumi.set(__self__, "tags_to_add", tags_to_add) + _setter("tags_to_add", tags_to_add) if variable_tags is not None: - pulumi.set(__self__, "variable_tags", variable_tags) + _setter("variable_tags", variable_tags) @property @pulumi.getter(name="createRule") @@ -606,7 +831,7 @@ def retain_rule(self) -> 'outputs.LifecyclePolicyPolicyDetailsScheduleRetainRule @pulumi.getter(name="copyTags") def copy_tags(self) -> Optional[bool]: """ - Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. """ return pulumi.get(self, "copy_tags") @@ -622,7 +847,7 @@ def cross_region_copy_rules(self) -> Optional[Sequence['outputs.LifecyclePolicyP @pulumi.getter(name="deprecateRule") def deprecate_rule(self) -> Optional['outputs.LifecyclePolicyPolicyDetailsScheduleDeprecateRule']: """ - See the `deprecate_rule` block. Max of 1 per schedule. + The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. """ return pulumi.get(self, "deprecate_rule") @@ -693,16 +918,39 @@ def __init__(__self__, *, :param str location: Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify `CLOUD`. To create snapshots on the same Outpost as the source resource, specify `OUTPOST_LOCAL`. If you omit this parameter, `CLOUD` is used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values are `CLOUD` and `OUTPOST_LOCAL`. :param str times: A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with `cron_expression`. Must be set if `interval` is set. """ + LifecyclePolicyPolicyDetailsScheduleCreateRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cron_expression=cron_expression, + interval=interval, + interval_unit=interval_unit, + location=location, + times=times, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cron_expression: Optional[str] = None, + interval: Optional[int] = None, + interval_unit: Optional[str] = None, + location: Optional[str] = None, + times: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cron_expression is None and 'cronExpression' in kwargs: + cron_expression = kwargs['cronExpression'] + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if cron_expression is not None: - pulumi.set(__self__, "cron_expression", cron_expression) + _setter("cron_expression", cron_expression) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if interval_unit is not None: - pulumi.set(__self__, "interval_unit", interval_unit) + _setter("interval_unit", interval_unit) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if times is not None: - pulumi.set(__self__, "times", times) + _setter("times", times) @property @pulumi.getter(name="cronExpression") @@ -778,29 +1026,62 @@ def __init__(__self__, *, deprecate_rule: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule'] = None, retain_rule: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRule'] = None): """ - :param bool encrypted: To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + :param bool encrypted: To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. :param str target: The target Region or the Amazon Resource Name (ARN) of the target Outpost for the snapshot copies. - :param str cmk_arn: The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. - :param bool copy_tags: Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. - :param 'LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs' deprecate_rule: See the `deprecate_rule` block. Max of 1 per schedule. + :param str cmk_arn: The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. + :param bool copy_tags: Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. + :param 'LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs' deprecate_rule: The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. :param 'LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs' retain_rule: Specifies the retention rule for cross-Region snapshot copies. See the `retain_rule` block. Max of 1 per action. """ - pulumi.set(__self__, "encrypted", encrypted) - pulumi.set(__self__, "target", target) + LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + encrypted=encrypted, + target=target, + cmk_arn=cmk_arn, + copy_tags=copy_tags, + deprecate_rule=deprecate_rule, + retain_rule=retain_rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encrypted: Optional[bool] = None, + target: Optional[str] = None, + cmk_arn: Optional[str] = None, + copy_tags: Optional[bool] = None, + deprecate_rule: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule'] = None, + retain_rule: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRule'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encrypted is None: + raise TypeError("Missing 'encrypted' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if cmk_arn is None and 'cmkArn' in kwargs: + cmk_arn = kwargs['cmkArn'] + if copy_tags is None and 'copyTags' in kwargs: + copy_tags = kwargs['copyTags'] + if deprecate_rule is None and 'deprecateRule' in kwargs: + deprecate_rule = kwargs['deprecateRule'] + if retain_rule is None and 'retainRule' in kwargs: + retain_rule = kwargs['retainRule'] + + _setter("encrypted", encrypted) + _setter("target", target) if cmk_arn is not None: - pulumi.set(__self__, "cmk_arn", cmk_arn) + _setter("cmk_arn", cmk_arn) if copy_tags is not None: - pulumi.set(__self__, "copy_tags", copy_tags) + _setter("copy_tags", copy_tags) if deprecate_rule is not None: - pulumi.set(__self__, "deprecate_rule", deprecate_rule) + _setter("deprecate_rule", deprecate_rule) if retain_rule is not None: - pulumi.set(__self__, "retain_rule", retain_rule) + _setter("retain_rule", retain_rule) @property @pulumi.getter def encrypted(self) -> bool: """ - To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled. + To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled. """ return pulumi.get(self, "encrypted") @@ -816,7 +1097,7 @@ def target(self) -> str: @pulumi.getter(name="cmkArn") def cmk_arn(self) -> Optional[str]: """ - The Amazon Resource Name (ARN) of the AWS KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used. + The Amazon Resource Name (ARN) of the AWS KMS customer master key (CMK) to use for EBS encryption. If this argument is not specified, the default KMS key for the account is used. """ return pulumi.get(self, "cmk_arn") @@ -824,7 +1105,7 @@ def cmk_arn(self) -> Optional[str]: @pulumi.getter(name="copyTags") def copy_tags(self) -> Optional[bool]: """ - Copy all user-defined tags on a source volume to snapshots of the volume created by this policy. + Whether to copy all user-defined tags from the source snapshot to the cross-region snapshot copy. """ return pulumi.get(self, "copy_tags") @@ -832,7 +1113,7 @@ def copy_tags(self) -> Optional[bool]: @pulumi.getter(name="deprecateRule") def deprecate_rule(self) -> Optional['outputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule']: """ - See the `deprecate_rule` block. Max of 1 per schedule. + The AMI deprecation rule for cross-Region AMI copies created by the rule. See the `deprecate_rule` block. """ return pulumi.get(self, "deprecate_rule") @@ -871,8 +1152,27 @@ def __init__(__self__, *, :param int interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param str interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "interval_unit", interval_unit) + LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[int] = None, + interval_unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is None: + raise TypeError("Missing 'interval' argument") + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if interval_unit is None: + raise TypeError("Missing 'interval_unit' argument") + + _setter("interval", interval) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -917,8 +1217,27 @@ def __init__(__self__, *, :param int interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param str interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "interval_unit", interval_unit) + LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[int] = None, + interval_unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is None: + raise TypeError("Missing 'interval' argument") + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if interval_unit is None: + raise TypeError("Missing 'interval_unit' argument") + + _setter("interval", interval) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -965,12 +1284,29 @@ def __init__(__self__, *, :param int interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param str interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ + LifecyclePolicyPolicyDetailsScheduleDeprecateRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[int] = None, + interval: Optional[int] = None, + interval_unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if interval_unit is not None: - pulumi.set(__self__, "interval_unit", interval_unit) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -1029,13 +1365,36 @@ def __init__(__self__, *, :param int interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param str interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ - pulumi.set(__self__, "availability_zones", availability_zones) + LifecyclePolicyPolicyDetailsScheduleFastRestoreRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + count=count, + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[Sequence[str]] = None, + count: Optional[int] = None, + interval: Optional[int] = None, + interval_unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if availability_zones is None: + raise TypeError("Missing 'availability_zones' argument") + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + + _setter("availability_zones", availability_zones) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if interval_unit is not None: - pulumi.set(__self__, "interval_unit", interval_unit) + _setter("interval_unit", interval_unit) @property @pulumi.getter(name="availabilityZones") @@ -1098,12 +1457,29 @@ def __init__(__self__, *, :param int interval: How often this lifecycle policy should be evaluated. `1`, `2`,`3`,`4`,`6`,`8`,`12` or `24` are valid values. Conflicts with `cron_expression`. If set, `interval_unit` and `times` must also be set. :param str interval_unit: The unit for how often the lifecycle policy should be evaluated. `HOURS` is currently the only allowed value and also the default value. Conflicts with `cron_expression`. Must be set if `interval` is set. """ + LifecyclePolicyPolicyDetailsScheduleRetainRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + interval=interval, + interval_unit=interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[int] = None, + interval: Optional[int] = None, + interval_unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval_unit is None and 'intervalUnit' in kwargs: + interval_unit = kwargs['intervalUnit'] + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if interval_unit is not None: - pulumi.set(__self__, "interval_unit", interval_unit) + _setter("interval_unit", interval_unit) @property @pulumi.getter @@ -1160,11 +1536,34 @@ def __init__(__self__, *, """ :param Sequence[str] target_accounts: The IDs of the AWS accounts with which to share the snapshots. """ - pulumi.set(__self__, "target_accounts", target_accounts) + LifecyclePolicyPolicyDetailsScheduleShareRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_accounts=target_accounts, + unshare_interval=unshare_interval, + unshare_interval_unit=unshare_interval_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_accounts: Optional[Sequence[str]] = None, + unshare_interval: Optional[int] = None, + unshare_interval_unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_accounts is None and 'targetAccounts' in kwargs: + target_accounts = kwargs['targetAccounts'] + if target_accounts is None: + raise TypeError("Missing 'target_accounts' argument") + if unshare_interval is None and 'unshareInterval' in kwargs: + unshare_interval = kwargs['unshareInterval'] + if unshare_interval_unit is None and 'unshareIntervalUnit' in kwargs: + unshare_interval_unit = kwargs['unshareIntervalUnit'] + + _setter("target_accounts", target_accounts) if unshare_interval is not None: - pulumi.set(__self__, "unshare_interval", unshare_interval) + _setter("unshare_interval", unshare_interval) if unshare_interval_unit is not None: - pulumi.set(__self__, "unshare_interval_unit", unshare_interval_unit) + _setter("unshare_interval_unit", unshare_interval_unit) @property @pulumi.getter(name="targetAccounts") diff --git a/sdk/python/pulumi_aws/dms/_inputs.py b/sdk/python/pulumi_aws/dms/_inputs.py index fd0835a7478..9ab22b95d49 100644 --- a/sdk/python/pulumi_aws/dms/_inputs.py +++ b/sdk/python/pulumi_aws/dms/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -33,12 +33,41 @@ def __init__(__self__, *, :param pulumi.Input[int] error_retry_duration: Maximum number of seconds for which DMS retries failed API requests to the OpenSearch cluster. Default is `300`. :param pulumi.Input[int] full_load_error_percentage: Maximum percentage of records that can fail to be written before a full load operation stops. Default is `10`. """ - pulumi.set(__self__, "endpoint_uri", endpoint_uri) - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + EndpointElasticsearchSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_uri=endpoint_uri, + service_access_role_arn=service_access_role_arn, + error_retry_duration=error_retry_duration, + full_load_error_percentage=full_load_error_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_uri: Optional[pulumi.Input[str]] = None, + service_access_role_arn: Optional[pulumi.Input[str]] = None, + error_retry_duration: Optional[pulumi.Input[int]] = None, + full_load_error_percentage: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_uri is None and 'endpointUri' in kwargs: + endpoint_uri = kwargs['endpointUri'] + if endpoint_uri is None: + raise TypeError("Missing 'endpoint_uri' argument") + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if service_access_role_arn is None: + raise TypeError("Missing 'service_access_role_arn' argument") + if error_retry_duration is None and 'errorRetryDuration' in kwargs: + error_retry_duration = kwargs['errorRetryDuration'] + if full_load_error_percentage is None and 'fullLoadErrorPercentage' in kwargs: + full_load_error_percentage = kwargs['fullLoadErrorPercentage'] + + _setter("endpoint_uri", endpoint_uri) + _setter("service_access_role_arn", service_access_role_arn) if error_retry_duration is not None: - pulumi.set(__self__, "error_retry_duration", error_retry_duration) + _setter("error_retry_duration", error_retry_duration) if full_load_error_percentage is not None: - pulumi.set(__self__, "full_load_error_percentage", full_load_error_percentage) + _setter("full_load_error_percentage", full_load_error_percentage) @property @pulumi.getter(name="endpointUri") @@ -130,41 +159,120 @@ def __init__(__self__, *, :param pulumi.Input[str] ssl_client_key_password: Password for the client private key used to securely connect to a Kafka target endpoint. :param pulumi.Input[str] topic: Kafka topic for migration. Default is `kafka-default-topic`. """ - pulumi.set(__self__, "broker", broker) + EndpointKafkaSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + broker=broker, + include_control_details=include_control_details, + include_null_and_empty=include_null_and_empty, + include_partition_value=include_partition_value, + include_table_alter_operations=include_table_alter_operations, + include_transaction_details=include_transaction_details, + message_format=message_format, + message_max_bytes=message_max_bytes, + no_hex_prefix=no_hex_prefix, + partition_include_schema_table=partition_include_schema_table, + sasl_password=sasl_password, + sasl_username=sasl_username, + security_protocol=security_protocol, + ssl_ca_certificate_arn=ssl_ca_certificate_arn, + ssl_client_certificate_arn=ssl_client_certificate_arn, + ssl_client_key_arn=ssl_client_key_arn, + ssl_client_key_password=ssl_client_key_password, + topic=topic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + broker: Optional[pulumi.Input[str]] = None, + include_control_details: Optional[pulumi.Input[bool]] = None, + include_null_and_empty: Optional[pulumi.Input[bool]] = None, + include_partition_value: Optional[pulumi.Input[bool]] = None, + include_table_alter_operations: Optional[pulumi.Input[bool]] = None, + include_transaction_details: Optional[pulumi.Input[bool]] = None, + message_format: Optional[pulumi.Input[str]] = None, + message_max_bytes: Optional[pulumi.Input[int]] = None, + no_hex_prefix: Optional[pulumi.Input[bool]] = None, + partition_include_schema_table: Optional[pulumi.Input[bool]] = None, + sasl_password: Optional[pulumi.Input[str]] = None, + sasl_username: Optional[pulumi.Input[str]] = None, + security_protocol: Optional[pulumi.Input[str]] = None, + ssl_ca_certificate_arn: Optional[pulumi.Input[str]] = None, + ssl_client_certificate_arn: Optional[pulumi.Input[str]] = None, + ssl_client_key_arn: Optional[pulumi.Input[str]] = None, + ssl_client_key_password: Optional[pulumi.Input[str]] = None, + topic: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if broker is None: + raise TypeError("Missing 'broker' argument") + if include_control_details is None and 'includeControlDetails' in kwargs: + include_control_details = kwargs['includeControlDetails'] + if include_null_and_empty is None and 'includeNullAndEmpty' in kwargs: + include_null_and_empty = kwargs['includeNullAndEmpty'] + if include_partition_value is None and 'includePartitionValue' in kwargs: + include_partition_value = kwargs['includePartitionValue'] + if include_table_alter_operations is None and 'includeTableAlterOperations' in kwargs: + include_table_alter_operations = kwargs['includeTableAlterOperations'] + if include_transaction_details is None and 'includeTransactionDetails' in kwargs: + include_transaction_details = kwargs['includeTransactionDetails'] + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + if message_max_bytes is None and 'messageMaxBytes' in kwargs: + message_max_bytes = kwargs['messageMaxBytes'] + if no_hex_prefix is None and 'noHexPrefix' in kwargs: + no_hex_prefix = kwargs['noHexPrefix'] + if partition_include_schema_table is None and 'partitionIncludeSchemaTable' in kwargs: + partition_include_schema_table = kwargs['partitionIncludeSchemaTable'] + if sasl_password is None and 'saslPassword' in kwargs: + sasl_password = kwargs['saslPassword'] + if sasl_username is None and 'saslUsername' in kwargs: + sasl_username = kwargs['saslUsername'] + if security_protocol is None and 'securityProtocol' in kwargs: + security_protocol = kwargs['securityProtocol'] + if ssl_ca_certificate_arn is None and 'sslCaCertificateArn' in kwargs: + ssl_ca_certificate_arn = kwargs['sslCaCertificateArn'] + if ssl_client_certificate_arn is None and 'sslClientCertificateArn' in kwargs: + ssl_client_certificate_arn = kwargs['sslClientCertificateArn'] + if ssl_client_key_arn is None and 'sslClientKeyArn' in kwargs: + ssl_client_key_arn = kwargs['sslClientKeyArn'] + if ssl_client_key_password is None and 'sslClientKeyPassword' in kwargs: + ssl_client_key_password = kwargs['sslClientKeyPassword'] + + _setter("broker", broker) if include_control_details is not None: - pulumi.set(__self__, "include_control_details", include_control_details) + _setter("include_control_details", include_control_details) if include_null_and_empty is not None: - pulumi.set(__self__, "include_null_and_empty", include_null_and_empty) + _setter("include_null_and_empty", include_null_and_empty) if include_partition_value is not None: - pulumi.set(__self__, "include_partition_value", include_partition_value) + _setter("include_partition_value", include_partition_value) if include_table_alter_operations is not None: - pulumi.set(__self__, "include_table_alter_operations", include_table_alter_operations) + _setter("include_table_alter_operations", include_table_alter_operations) if include_transaction_details is not None: - pulumi.set(__self__, "include_transaction_details", include_transaction_details) + _setter("include_transaction_details", include_transaction_details) if message_format is not None: - pulumi.set(__self__, "message_format", message_format) + _setter("message_format", message_format) if message_max_bytes is not None: - pulumi.set(__self__, "message_max_bytes", message_max_bytes) + _setter("message_max_bytes", message_max_bytes) if no_hex_prefix is not None: - pulumi.set(__self__, "no_hex_prefix", no_hex_prefix) + _setter("no_hex_prefix", no_hex_prefix) if partition_include_schema_table is not None: - pulumi.set(__self__, "partition_include_schema_table", partition_include_schema_table) + _setter("partition_include_schema_table", partition_include_schema_table) if sasl_password is not None: - pulumi.set(__self__, "sasl_password", sasl_password) + _setter("sasl_password", sasl_password) if sasl_username is not None: - pulumi.set(__self__, "sasl_username", sasl_username) + _setter("sasl_username", sasl_username) if security_protocol is not None: - pulumi.set(__self__, "security_protocol", security_protocol) + _setter("security_protocol", security_protocol) if ssl_ca_certificate_arn is not None: - pulumi.set(__self__, "ssl_ca_certificate_arn", ssl_ca_certificate_arn) + _setter("ssl_ca_certificate_arn", ssl_ca_certificate_arn) if ssl_client_certificate_arn is not None: - pulumi.set(__self__, "ssl_client_certificate_arn", ssl_client_certificate_arn) + _setter("ssl_client_certificate_arn", ssl_client_certificate_arn) if ssl_client_key_arn is not None: - pulumi.set(__self__, "ssl_client_key_arn", ssl_client_key_arn) + _setter("ssl_client_key_arn", ssl_client_key_arn) if ssl_client_key_password is not None: - pulumi.set(__self__, "ssl_client_key_password", ssl_client_key_password) + _setter("ssl_client_key_password", ssl_client_key_password) if topic is not None: - pulumi.set(__self__, "topic", topic) + _setter("topic", topic) @property @pulumi.getter @@ -406,24 +514,69 @@ def __init__(__self__, *, :param pulumi.Input[str] service_access_role_arn: ARN of the IAM Role with permissions to write to the Kinesis data stream. :param pulumi.Input[str] stream_arn: ARN of the Kinesis data stream. """ + EndpointKinesisSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + include_control_details=include_control_details, + include_null_and_empty=include_null_and_empty, + include_partition_value=include_partition_value, + include_table_alter_operations=include_table_alter_operations, + include_transaction_details=include_transaction_details, + message_format=message_format, + partition_include_schema_table=partition_include_schema_table, + service_access_role_arn=service_access_role_arn, + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + include_control_details: Optional[pulumi.Input[bool]] = None, + include_null_and_empty: Optional[pulumi.Input[bool]] = None, + include_partition_value: Optional[pulumi.Input[bool]] = None, + include_table_alter_operations: Optional[pulumi.Input[bool]] = None, + include_transaction_details: Optional[pulumi.Input[bool]] = None, + message_format: Optional[pulumi.Input[str]] = None, + partition_include_schema_table: Optional[pulumi.Input[bool]] = None, + service_access_role_arn: Optional[pulumi.Input[str]] = None, + stream_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if include_control_details is None and 'includeControlDetails' in kwargs: + include_control_details = kwargs['includeControlDetails'] + if include_null_and_empty is None and 'includeNullAndEmpty' in kwargs: + include_null_and_empty = kwargs['includeNullAndEmpty'] + if include_partition_value is None and 'includePartitionValue' in kwargs: + include_partition_value = kwargs['includePartitionValue'] + if include_table_alter_operations is None and 'includeTableAlterOperations' in kwargs: + include_table_alter_operations = kwargs['includeTableAlterOperations'] + if include_transaction_details is None and 'includeTransactionDetails' in kwargs: + include_transaction_details = kwargs['includeTransactionDetails'] + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + if partition_include_schema_table is None and 'partitionIncludeSchemaTable' in kwargs: + partition_include_schema_table = kwargs['partitionIncludeSchemaTable'] + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if include_control_details is not None: - pulumi.set(__self__, "include_control_details", include_control_details) + _setter("include_control_details", include_control_details) if include_null_and_empty is not None: - pulumi.set(__self__, "include_null_and_empty", include_null_and_empty) + _setter("include_null_and_empty", include_null_and_empty) if include_partition_value is not None: - pulumi.set(__self__, "include_partition_value", include_partition_value) + _setter("include_partition_value", include_partition_value) if include_table_alter_operations is not None: - pulumi.set(__self__, "include_table_alter_operations", include_table_alter_operations) + _setter("include_table_alter_operations", include_table_alter_operations) if include_transaction_details is not None: - pulumi.set(__self__, "include_transaction_details", include_transaction_details) + _setter("include_transaction_details", include_transaction_details) if message_format is not None: - pulumi.set(__self__, "message_format", message_format) + _setter("message_format", message_format) if partition_include_schema_table is not None: - pulumi.set(__self__, "partition_include_schema_table", partition_include_schema_table) + _setter("partition_include_schema_table", partition_include_schema_table) if service_access_role_arn is not None: - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + _setter("service_access_role_arn", service_access_role_arn) if stream_arn is not None: - pulumi.set(__self__, "stream_arn", stream_arn) + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="includeControlDetails") @@ -551,18 +704,51 @@ def __init__(__self__, *, :param pulumi.Input[str] extract_doc_id: Document ID. Use this setting when `nesting_level` is set to `none`. Default is `false`. :param pulumi.Input[str] nesting_level: Specifies either document or table mode. Default is `none`. Valid values are `one` (table mode) and `none` (document mode). """ + EndpointMongodbSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_mechanism=auth_mechanism, + auth_source=auth_source, + auth_type=auth_type, + docs_to_investigate=docs_to_investigate, + extract_doc_id=extract_doc_id, + nesting_level=nesting_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_mechanism: Optional[pulumi.Input[str]] = None, + auth_source: Optional[pulumi.Input[str]] = None, + auth_type: Optional[pulumi.Input[str]] = None, + docs_to_investigate: Optional[pulumi.Input[str]] = None, + extract_doc_id: Optional[pulumi.Input[str]] = None, + nesting_level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_mechanism is None and 'authMechanism' in kwargs: + auth_mechanism = kwargs['authMechanism'] + if auth_source is None and 'authSource' in kwargs: + auth_source = kwargs['authSource'] + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if docs_to_investigate is None and 'docsToInvestigate' in kwargs: + docs_to_investigate = kwargs['docsToInvestigate'] + if extract_doc_id is None and 'extractDocId' in kwargs: + extract_doc_id = kwargs['extractDocId'] + if nesting_level is None and 'nestingLevel' in kwargs: + nesting_level = kwargs['nestingLevel'] + if auth_mechanism is not None: - pulumi.set(__self__, "auth_mechanism", auth_mechanism) + _setter("auth_mechanism", auth_mechanism) if auth_source is not None: - pulumi.set(__self__, "auth_source", auth_source) + _setter("auth_source", auth_source) if auth_type is not None: - pulumi.set(__self__, "auth_type", auth_type) + _setter("auth_type", auth_type) if docs_to_investigate is not None: - pulumi.set(__self__, "docs_to_investigate", docs_to_investigate) + _setter("docs_to_investigate", docs_to_investigate) if extract_doc_id is not None: - pulumi.set(__self__, "extract_doc_id", extract_doc_id) + _setter("extract_doc_id", extract_doc_id) if nesting_level is not None: - pulumi.set(__self__, "nesting_level", nesting_level) + _setter("nesting_level", nesting_level) @property @pulumi.getter(name="authMechanism") @@ -656,17 +842,58 @@ def __init__(__self__, *, :param pulumi.Input[str] ssl_ca_certificate_arn: The Amazon Resource Name (ARN) for the certificate authority (CA) that DMS uses to connect to your Redis target endpoint. :param pulumi.Input[str] ssl_security_protocol: The plaintext option doesn't provide Transport Layer Security (TLS) encryption for traffic between endpoint and database. Options include `plaintext`, `ssl-encryption`. The default is `ssl-encryption`. """ - pulumi.set(__self__, "auth_type", auth_type) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "server_name", server_name) + EndpointRedisSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_type=auth_type, + port=port, + server_name=server_name, + auth_password=auth_password, + auth_user_name=auth_user_name, + ssl_ca_certificate_arn=ssl_ca_certificate_arn, + ssl_security_protocol=ssl_security_protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_type: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + server_name: Optional[pulumi.Input[str]] = None, + auth_password: Optional[pulumi.Input[str]] = None, + auth_user_name: Optional[pulumi.Input[str]] = None, + ssl_ca_certificate_arn: Optional[pulumi.Input[str]] = None, + ssl_security_protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if auth_type is None: + raise TypeError("Missing 'auth_type' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if server_name is None and 'serverName' in kwargs: + server_name = kwargs['serverName'] + if server_name is None: + raise TypeError("Missing 'server_name' argument") + if auth_password is None and 'authPassword' in kwargs: + auth_password = kwargs['authPassword'] + if auth_user_name is None and 'authUserName' in kwargs: + auth_user_name = kwargs['authUserName'] + if ssl_ca_certificate_arn is None and 'sslCaCertificateArn' in kwargs: + ssl_ca_certificate_arn = kwargs['sslCaCertificateArn'] + if ssl_security_protocol is None and 'sslSecurityProtocol' in kwargs: + ssl_security_protocol = kwargs['sslSecurityProtocol'] + + _setter("auth_type", auth_type) + _setter("port", port) + _setter("server_name", server_name) if auth_password is not None: - pulumi.set(__self__, "auth_password", auth_password) + _setter("auth_password", auth_password) if auth_user_name is not None: - pulumi.set(__self__, "auth_user_name", auth_user_name) + _setter("auth_user_name", auth_user_name) if ssl_ca_certificate_arn is not None: - pulumi.set(__self__, "ssl_ca_certificate_arn", ssl_ca_certificate_arn) + _setter("ssl_ca_certificate_arn", ssl_ca_certificate_arn) if ssl_security_protocol is not None: - pulumi.set(__self__, "ssl_security_protocol", ssl_security_protocol) + _setter("ssl_security_protocol", ssl_security_protocol) @property @pulumi.getter(name="authType") @@ -768,16 +995,45 @@ def __init__(__self__, *, :param pulumi.Input[str] server_side_encryption_kms_key_id: ARN or Id of KMS Key to use when `encryption_mode` is `SSE_KMS`. :param pulumi.Input[str] service_access_role_arn: Amazon Resource Name (ARN) of the IAM Role with permissions to read from or write to the S3 Bucket for intermediate storage. """ + EndpointRedshiftSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_folder=bucket_folder, + bucket_name=bucket_name, + encryption_mode=encryption_mode, + server_side_encryption_kms_key_id=server_side_encryption_kms_key_id, + service_access_role_arn=service_access_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_folder: Optional[pulumi.Input[str]] = None, + bucket_name: Optional[pulumi.Input[str]] = None, + encryption_mode: Optional[pulumi.Input[str]] = None, + server_side_encryption_kms_key_id: Optional[pulumi.Input[str]] = None, + service_access_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_folder is None and 'bucketFolder' in kwargs: + bucket_folder = kwargs['bucketFolder'] + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if server_side_encryption_kms_key_id is None and 'serverSideEncryptionKmsKeyId' in kwargs: + server_side_encryption_kms_key_id = kwargs['serverSideEncryptionKmsKeyId'] + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if bucket_folder is not None: - pulumi.set(__self__, "bucket_folder", bucket_folder) + _setter("bucket_folder", bucket_folder) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if server_side_encryption_kms_key_id is not None: - pulumi.set(__self__, "server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) + _setter("server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) if service_access_role_arn is not None: - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + _setter("service_access_role_arn", service_access_role_arn) @property @pulumi.getter(name="bucketFolder") @@ -921,82 +1177,241 @@ def __init__(__self__, *, :param pulumi.Input[bool] use_csv_no_sup_value: Whether to use `csv_no_sup_value` for columns not included in the supplemental log. :param pulumi.Input[bool] use_task_start_time_for_full_load_timestamp: When set to true, uses the task start time as the timestamp column value instead of the time data is written to target. For full load, when set to true, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time. When set to false, the full load timestamp in the timestamp column increments with the time data arrives at the target. Default is `false`. """ + EndpointS3SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + add_column_name=add_column_name, + bucket_folder=bucket_folder, + bucket_name=bucket_name, + canned_acl_for_objects=canned_acl_for_objects, + cdc_inserts_and_updates=cdc_inserts_and_updates, + cdc_inserts_only=cdc_inserts_only, + cdc_max_batch_interval=cdc_max_batch_interval, + cdc_min_file_size=cdc_min_file_size, + cdc_path=cdc_path, + compression_type=compression_type, + csv_delimiter=csv_delimiter, + csv_no_sup_value=csv_no_sup_value, + csv_null_value=csv_null_value, + csv_row_delimiter=csv_row_delimiter, + data_format=data_format, + data_page_size=data_page_size, + date_partition_delimiter=date_partition_delimiter, + date_partition_enabled=date_partition_enabled, + date_partition_sequence=date_partition_sequence, + dict_page_size_limit=dict_page_size_limit, + enable_statistics=enable_statistics, + encoding_type=encoding_type, + encryption_mode=encryption_mode, + external_table_definition=external_table_definition, + glue_catalog_generation=glue_catalog_generation, + ignore_header_rows=ignore_header_rows, + include_op_for_full_load=include_op_for_full_load, + max_file_size=max_file_size, + parquet_timestamp_in_millisecond=parquet_timestamp_in_millisecond, + parquet_version=parquet_version, + preserve_transactions=preserve_transactions, + rfc4180=rfc4180, + row_group_length=row_group_length, + server_side_encryption_kms_key_id=server_side_encryption_kms_key_id, + service_access_role_arn=service_access_role_arn, + timestamp_column_name=timestamp_column_name, + use_csv_no_sup_value=use_csv_no_sup_value, + use_task_start_time_for_full_load_timestamp=use_task_start_time_for_full_load_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + add_column_name: Optional[pulumi.Input[bool]] = None, + bucket_folder: Optional[pulumi.Input[str]] = None, + bucket_name: Optional[pulumi.Input[str]] = None, + canned_acl_for_objects: Optional[pulumi.Input[str]] = None, + cdc_inserts_and_updates: Optional[pulumi.Input[bool]] = None, + cdc_inserts_only: Optional[pulumi.Input[bool]] = None, + cdc_max_batch_interval: Optional[pulumi.Input[int]] = None, + cdc_min_file_size: Optional[pulumi.Input[int]] = None, + cdc_path: Optional[pulumi.Input[str]] = None, + compression_type: Optional[pulumi.Input[str]] = None, + csv_delimiter: Optional[pulumi.Input[str]] = None, + csv_no_sup_value: Optional[pulumi.Input[str]] = None, + csv_null_value: Optional[pulumi.Input[str]] = None, + csv_row_delimiter: Optional[pulumi.Input[str]] = None, + data_format: Optional[pulumi.Input[str]] = None, + data_page_size: Optional[pulumi.Input[int]] = None, + date_partition_delimiter: Optional[pulumi.Input[str]] = None, + date_partition_enabled: Optional[pulumi.Input[bool]] = None, + date_partition_sequence: Optional[pulumi.Input[str]] = None, + dict_page_size_limit: Optional[pulumi.Input[int]] = None, + enable_statistics: Optional[pulumi.Input[bool]] = None, + encoding_type: Optional[pulumi.Input[str]] = None, + encryption_mode: Optional[pulumi.Input[str]] = None, + external_table_definition: Optional[pulumi.Input[str]] = None, + glue_catalog_generation: Optional[pulumi.Input[bool]] = None, + ignore_header_rows: Optional[pulumi.Input[int]] = None, + include_op_for_full_load: Optional[pulumi.Input[bool]] = None, + max_file_size: Optional[pulumi.Input[int]] = None, + parquet_timestamp_in_millisecond: Optional[pulumi.Input[bool]] = None, + parquet_version: Optional[pulumi.Input[str]] = None, + preserve_transactions: Optional[pulumi.Input[bool]] = None, + rfc4180: Optional[pulumi.Input[bool]] = None, + row_group_length: Optional[pulumi.Input[int]] = None, + server_side_encryption_kms_key_id: Optional[pulumi.Input[str]] = None, + service_access_role_arn: Optional[pulumi.Input[str]] = None, + timestamp_column_name: Optional[pulumi.Input[str]] = None, + use_csv_no_sup_value: Optional[pulumi.Input[bool]] = None, + use_task_start_time_for_full_load_timestamp: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if add_column_name is None and 'addColumnName' in kwargs: + add_column_name = kwargs['addColumnName'] + if bucket_folder is None and 'bucketFolder' in kwargs: + bucket_folder = kwargs['bucketFolder'] + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if canned_acl_for_objects is None and 'cannedAclForObjects' in kwargs: + canned_acl_for_objects = kwargs['cannedAclForObjects'] + if cdc_inserts_and_updates is None and 'cdcInsertsAndUpdates' in kwargs: + cdc_inserts_and_updates = kwargs['cdcInsertsAndUpdates'] + if cdc_inserts_only is None and 'cdcInsertsOnly' in kwargs: + cdc_inserts_only = kwargs['cdcInsertsOnly'] + if cdc_max_batch_interval is None and 'cdcMaxBatchInterval' in kwargs: + cdc_max_batch_interval = kwargs['cdcMaxBatchInterval'] + if cdc_min_file_size is None and 'cdcMinFileSize' in kwargs: + cdc_min_file_size = kwargs['cdcMinFileSize'] + if cdc_path is None and 'cdcPath' in kwargs: + cdc_path = kwargs['cdcPath'] + if compression_type is None and 'compressionType' in kwargs: + compression_type = kwargs['compressionType'] + if csv_delimiter is None and 'csvDelimiter' in kwargs: + csv_delimiter = kwargs['csvDelimiter'] + if csv_no_sup_value is None and 'csvNoSupValue' in kwargs: + csv_no_sup_value = kwargs['csvNoSupValue'] + if csv_null_value is None and 'csvNullValue' in kwargs: + csv_null_value = kwargs['csvNullValue'] + if csv_row_delimiter is None and 'csvRowDelimiter' in kwargs: + csv_row_delimiter = kwargs['csvRowDelimiter'] + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if data_page_size is None and 'dataPageSize' in kwargs: + data_page_size = kwargs['dataPageSize'] + if date_partition_delimiter is None and 'datePartitionDelimiter' in kwargs: + date_partition_delimiter = kwargs['datePartitionDelimiter'] + if date_partition_enabled is None and 'datePartitionEnabled' in kwargs: + date_partition_enabled = kwargs['datePartitionEnabled'] + if date_partition_sequence is None and 'datePartitionSequence' in kwargs: + date_partition_sequence = kwargs['datePartitionSequence'] + if dict_page_size_limit is None and 'dictPageSizeLimit' in kwargs: + dict_page_size_limit = kwargs['dictPageSizeLimit'] + if enable_statistics is None and 'enableStatistics' in kwargs: + enable_statistics = kwargs['enableStatistics'] + if encoding_type is None and 'encodingType' in kwargs: + encoding_type = kwargs['encodingType'] + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if external_table_definition is None and 'externalTableDefinition' in kwargs: + external_table_definition = kwargs['externalTableDefinition'] + if glue_catalog_generation is None and 'glueCatalogGeneration' in kwargs: + glue_catalog_generation = kwargs['glueCatalogGeneration'] + if ignore_header_rows is None and 'ignoreHeaderRows' in kwargs: + ignore_header_rows = kwargs['ignoreHeaderRows'] + if include_op_for_full_load is None and 'includeOpForFullLoad' in kwargs: + include_op_for_full_load = kwargs['includeOpForFullLoad'] + if max_file_size is None and 'maxFileSize' in kwargs: + max_file_size = kwargs['maxFileSize'] + if parquet_timestamp_in_millisecond is None and 'parquetTimestampInMillisecond' in kwargs: + parquet_timestamp_in_millisecond = kwargs['parquetTimestampInMillisecond'] + if parquet_version is None and 'parquetVersion' in kwargs: + parquet_version = kwargs['parquetVersion'] + if preserve_transactions is None and 'preserveTransactions' in kwargs: + preserve_transactions = kwargs['preserveTransactions'] + if row_group_length is None and 'rowGroupLength' in kwargs: + row_group_length = kwargs['rowGroupLength'] + if server_side_encryption_kms_key_id is None and 'serverSideEncryptionKmsKeyId' in kwargs: + server_side_encryption_kms_key_id = kwargs['serverSideEncryptionKmsKeyId'] + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if timestamp_column_name is None and 'timestampColumnName' in kwargs: + timestamp_column_name = kwargs['timestampColumnName'] + if use_csv_no_sup_value is None and 'useCsvNoSupValue' in kwargs: + use_csv_no_sup_value = kwargs['useCsvNoSupValue'] + if use_task_start_time_for_full_load_timestamp is None and 'useTaskStartTimeForFullLoadTimestamp' in kwargs: + use_task_start_time_for_full_load_timestamp = kwargs['useTaskStartTimeForFullLoadTimestamp'] + if add_column_name is not None: - pulumi.set(__self__, "add_column_name", add_column_name) + _setter("add_column_name", add_column_name) if bucket_folder is not None: - pulumi.set(__self__, "bucket_folder", bucket_folder) + _setter("bucket_folder", bucket_folder) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if canned_acl_for_objects is not None: - pulumi.set(__self__, "canned_acl_for_objects", canned_acl_for_objects) + _setter("canned_acl_for_objects", canned_acl_for_objects) if cdc_inserts_and_updates is not None: - pulumi.set(__self__, "cdc_inserts_and_updates", cdc_inserts_and_updates) + _setter("cdc_inserts_and_updates", cdc_inserts_and_updates) if cdc_inserts_only is not None: - pulumi.set(__self__, "cdc_inserts_only", cdc_inserts_only) + _setter("cdc_inserts_only", cdc_inserts_only) if cdc_max_batch_interval is not None: - pulumi.set(__self__, "cdc_max_batch_interval", cdc_max_batch_interval) + _setter("cdc_max_batch_interval", cdc_max_batch_interval) if cdc_min_file_size is not None: - pulumi.set(__self__, "cdc_min_file_size", cdc_min_file_size) + _setter("cdc_min_file_size", cdc_min_file_size) if cdc_path is not None: - pulumi.set(__self__, "cdc_path", cdc_path) + _setter("cdc_path", cdc_path) if compression_type is not None: - pulumi.set(__self__, "compression_type", compression_type) + _setter("compression_type", compression_type) if csv_delimiter is not None: - pulumi.set(__self__, "csv_delimiter", csv_delimiter) + _setter("csv_delimiter", csv_delimiter) if csv_no_sup_value is not None: - pulumi.set(__self__, "csv_no_sup_value", csv_no_sup_value) + _setter("csv_no_sup_value", csv_no_sup_value) if csv_null_value is not None: - pulumi.set(__self__, "csv_null_value", csv_null_value) + _setter("csv_null_value", csv_null_value) if csv_row_delimiter is not None: - pulumi.set(__self__, "csv_row_delimiter", csv_row_delimiter) + _setter("csv_row_delimiter", csv_row_delimiter) if data_format is not None: - pulumi.set(__self__, "data_format", data_format) + _setter("data_format", data_format) if data_page_size is not None: - pulumi.set(__self__, "data_page_size", data_page_size) + _setter("data_page_size", data_page_size) if date_partition_delimiter is not None: - pulumi.set(__self__, "date_partition_delimiter", date_partition_delimiter) + _setter("date_partition_delimiter", date_partition_delimiter) if date_partition_enabled is not None: - pulumi.set(__self__, "date_partition_enabled", date_partition_enabled) + _setter("date_partition_enabled", date_partition_enabled) if date_partition_sequence is not None: - pulumi.set(__self__, "date_partition_sequence", date_partition_sequence) + _setter("date_partition_sequence", date_partition_sequence) if dict_page_size_limit is not None: - pulumi.set(__self__, "dict_page_size_limit", dict_page_size_limit) + _setter("dict_page_size_limit", dict_page_size_limit) if enable_statistics is not None: - pulumi.set(__self__, "enable_statistics", enable_statistics) + _setter("enable_statistics", enable_statistics) if encoding_type is not None: - pulumi.set(__self__, "encoding_type", encoding_type) + _setter("encoding_type", encoding_type) if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if external_table_definition is not None: - pulumi.set(__self__, "external_table_definition", external_table_definition) + _setter("external_table_definition", external_table_definition) if glue_catalog_generation is not None: - pulumi.set(__self__, "glue_catalog_generation", glue_catalog_generation) + _setter("glue_catalog_generation", glue_catalog_generation) if ignore_header_rows is not None: - pulumi.set(__self__, "ignore_header_rows", ignore_header_rows) + _setter("ignore_header_rows", ignore_header_rows) if include_op_for_full_load is not None: - pulumi.set(__self__, "include_op_for_full_load", include_op_for_full_load) + _setter("include_op_for_full_load", include_op_for_full_load) if max_file_size is not None: - pulumi.set(__self__, "max_file_size", max_file_size) + _setter("max_file_size", max_file_size) if parquet_timestamp_in_millisecond is not None: - pulumi.set(__self__, "parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) + _setter("parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) if parquet_version is not None: - pulumi.set(__self__, "parquet_version", parquet_version) + _setter("parquet_version", parquet_version) if preserve_transactions is not None: - pulumi.set(__self__, "preserve_transactions", preserve_transactions) + _setter("preserve_transactions", preserve_transactions) if rfc4180 is not None: - pulumi.set(__self__, "rfc4180", rfc4180) + _setter("rfc4180", rfc4180) if row_group_length is not None: - pulumi.set(__self__, "row_group_length", row_group_length) + _setter("row_group_length", row_group_length) if server_side_encryption_kms_key_id is not None: - pulumi.set(__self__, "server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) + _setter("server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) if service_access_role_arn is not None: - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + _setter("service_access_role_arn", service_access_role_arn) if timestamp_column_name is not None: - pulumi.set(__self__, "timestamp_column_name", timestamp_column_name) + _setter("timestamp_column_name", timestamp_column_name) if use_csv_no_sup_value is not None: - pulumi.set(__self__, "use_csv_no_sup_value", use_csv_no_sup_value) + _setter("use_csv_no_sup_value", use_csv_no_sup_value) if use_task_start_time_for_full_load_timestamp is not None: - pulumi.set(__self__, "use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) + _setter("use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) @property @pulumi.getter(name="addColumnName") @@ -1483,23 +1898,70 @@ def __init__(__self__, *, - Constraints: Minimum 30-minute window. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: Specifies the virtual private cloud (VPC) security group to use with the DMS Serverless replication. The VPC security group must work with the VPC containing the replication. """ - pulumi.set(__self__, "replication_subnet_group_id", replication_subnet_group_id) + ReplicationConfigComputeConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + replication_subnet_group_id=replication_subnet_group_id, + availability_zone=availability_zone, + dns_name_servers=dns_name_servers, + kms_key_id=kms_key_id, + max_capacity_units=max_capacity_units, + min_capacity_units=min_capacity_units, + multi_az=multi_az, + preferred_maintenance_window=preferred_maintenance_window, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replication_subnet_group_id: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + dns_name_servers: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + max_capacity_units: Optional[pulumi.Input[int]] = None, + min_capacity_units: Optional[pulumi.Input[int]] = None, + multi_az: Optional[pulumi.Input[bool]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replication_subnet_group_id is None and 'replicationSubnetGroupId' in kwargs: + replication_subnet_group_id = kwargs['replicationSubnetGroupId'] + if replication_subnet_group_id is None: + raise TypeError("Missing 'replication_subnet_group_id' argument") + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if dns_name_servers is None and 'dnsNameServers' in kwargs: + dns_name_servers = kwargs['dnsNameServers'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if max_capacity_units is None and 'maxCapacityUnits' in kwargs: + max_capacity_units = kwargs['maxCapacityUnits'] + if min_capacity_units is None and 'minCapacityUnits' in kwargs: + min_capacity_units = kwargs['minCapacityUnits'] + if multi_az is None and 'multiAz' in kwargs: + multi_az = kwargs['multiAz'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("replication_subnet_group_id", replication_subnet_group_id) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if dns_name_servers is not None: - pulumi.set(__self__, "dns_name_servers", dns_name_servers) + _setter("dns_name_servers", dns_name_servers) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if max_capacity_units is not None: - pulumi.set(__self__, "max_capacity_units", max_capacity_units) + _setter("max_capacity_units", max_capacity_units) if min_capacity_units is not None: - pulumi.set(__self__, "min_capacity_units", min_capacity_units) + _setter("min_capacity_units", min_capacity_units) if multi_az is not None: - pulumi.set(__self__, "multi_az", multi_az) + _setter("multi_az", multi_az) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="replicationSubnetGroupId") diff --git a/sdk/python/pulumi_aws/dms/certificate.py b/sdk/python/pulumi_aws/dms/certificate.py index 002ddf7b8d7..df4469a4826 100644 --- a/sdk/python/pulumi_aws/dms/certificate.py +++ b/sdk/python/pulumi_aws/dms/certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CertificateArgs', 'Certificate'] @@ -27,13 +27,38 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_wallet: The contents of the Oracle Wallet certificate for use with SSL, provided as a base64-encoded String. Either `certificate_pem` or `certificate_wallet` must be set. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "certificate_id", certificate_id) + CertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_id=certificate_id, + certificate_pem=certificate_pem, + certificate_wallet=certificate_wallet, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_id: Optional[pulumi.Input[str]] = None, + certificate_pem: Optional[pulumi.Input[str]] = None, + certificate_wallet: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_id is None and 'certificateId' in kwargs: + certificate_id = kwargs['certificateId'] + if certificate_id is None: + raise TypeError("Missing 'certificate_id' argument") + if certificate_pem is None and 'certificatePem' in kwargs: + certificate_pem = kwargs['certificatePem'] + if certificate_wallet is None and 'certificateWallet' in kwargs: + certificate_wallet = kwargs['certificateWallet'] + + _setter("certificate_id", certificate_id) if certificate_pem is not None: - pulumi.set(__self__, "certificate_pem", certificate_pem) + _setter("certificate_pem", certificate_pem) if certificate_wallet is not None: - pulumi.set(__self__, "certificate_wallet", certificate_wallet) + _setter("certificate_wallet", certificate_wallet) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="certificateId") @@ -106,21 +131,52 @@ def __init__(__self__, *, :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. """ + _CertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + certificate_id=certificate_id, + certificate_pem=certificate_pem, + certificate_wallet=certificate_wallet, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + certificate_id: Optional[pulumi.Input[str]] = None, + certificate_pem: Optional[pulumi.Input[str]] = None, + certificate_wallet: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_id is None and 'certificateId' in kwargs: + certificate_id = kwargs['certificateId'] + if certificate_pem is None and 'certificatePem' in kwargs: + certificate_pem = kwargs['certificatePem'] + if certificate_wallet is None and 'certificateWallet' in kwargs: + certificate_wallet = kwargs['certificateWallet'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if certificate_id is not None: - pulumi.set(__self__, "certificate_id", certificate_id) + _setter("certificate_id", certificate_id) if certificate_pem is not None: - pulumi.set(__self__, "certificate_pem", certificate_pem) + _setter("certificate_pem", certificate_pem) if certificate_wallet is not None: - pulumi.set(__self__, "certificate_wallet", certificate_wallet) + _setter("certificate_wallet", certificate_wallet) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="certificateArn") @@ -287,6 +343,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dms/endpoint.py b/sdk/python/pulumi_aws/dms/endpoint.py index 8c3c03bbfb1..038bde3ad69 100644 --- a/sdk/python/pulumi_aws/dms/endpoint.py +++ b/sdk/python/pulumi_aws/dms/endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -66,49 +66,148 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] username: User name to be used to login to the endpoint database. """ - pulumi.set(__self__, "endpoint_id", endpoint_id) - pulumi.set(__self__, "endpoint_type", endpoint_type) - pulumi.set(__self__, "engine_name", engine_name) + EndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_id=endpoint_id, + endpoint_type=endpoint_type, + engine_name=engine_name, + certificate_arn=certificate_arn, + database_name=database_name, + elasticsearch_settings=elasticsearch_settings, + extra_connection_attributes=extra_connection_attributes, + kafka_settings=kafka_settings, + kinesis_settings=kinesis_settings, + kms_key_arn=kms_key_arn, + mongodb_settings=mongodb_settings, + password=password, + port=port, + redis_settings=redis_settings, + redshift_settings=redshift_settings, + s3_settings=s3_settings, + secrets_manager_access_role_arn=secrets_manager_access_role_arn, + secrets_manager_arn=secrets_manager_arn, + server_name=server_name, + service_access_role=service_access_role, + ssl_mode=ssl_mode, + tags=tags, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_id: Optional[pulumi.Input[str]] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + engine_name: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + elasticsearch_settings: Optional[pulumi.Input['EndpointElasticsearchSettingsArgs']] = None, + extra_connection_attributes: Optional[pulumi.Input[str]] = None, + kafka_settings: Optional[pulumi.Input['EndpointKafkaSettingsArgs']] = None, + kinesis_settings: Optional[pulumi.Input['EndpointKinesisSettingsArgs']] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + mongodb_settings: Optional[pulumi.Input['EndpointMongodbSettingsArgs']] = None, + password: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + redis_settings: Optional[pulumi.Input['EndpointRedisSettingsArgs']] = None, + redshift_settings: Optional[pulumi.Input['EndpointRedshiftSettingsArgs']] = None, + s3_settings: Optional[pulumi.Input['EndpointS3SettingsArgs']] = None, + secrets_manager_access_role_arn: Optional[pulumi.Input[str]] = None, + secrets_manager_arn: Optional[pulumi.Input[str]] = None, + server_name: Optional[pulumi.Input[str]] = None, + service_access_role: Optional[pulumi.Input[str]] = None, + ssl_mode: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if endpoint_id is None: + raise TypeError("Missing 'endpoint_id' argument") + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + if engine_name is None and 'engineName' in kwargs: + engine_name = kwargs['engineName'] + if engine_name is None: + raise TypeError("Missing 'engine_name' argument") + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if elasticsearch_settings is None and 'elasticsearchSettings' in kwargs: + elasticsearch_settings = kwargs['elasticsearchSettings'] + if extra_connection_attributes is None and 'extraConnectionAttributes' in kwargs: + extra_connection_attributes = kwargs['extraConnectionAttributes'] + if kafka_settings is None and 'kafkaSettings' in kwargs: + kafka_settings = kwargs['kafkaSettings'] + if kinesis_settings is None and 'kinesisSettings' in kwargs: + kinesis_settings = kwargs['kinesisSettings'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if mongodb_settings is None and 'mongodbSettings' in kwargs: + mongodb_settings = kwargs['mongodbSettings'] + if redis_settings is None and 'redisSettings' in kwargs: + redis_settings = kwargs['redisSettings'] + if redshift_settings is None and 'redshiftSettings' in kwargs: + redshift_settings = kwargs['redshiftSettings'] + if s3_settings is None and 's3Settings' in kwargs: + s3_settings = kwargs['s3Settings'] + if secrets_manager_access_role_arn is None and 'secretsManagerAccessRoleArn' in kwargs: + secrets_manager_access_role_arn = kwargs['secretsManagerAccessRoleArn'] + if secrets_manager_arn is None and 'secretsManagerArn' in kwargs: + secrets_manager_arn = kwargs['secretsManagerArn'] + if server_name is None and 'serverName' in kwargs: + server_name = kwargs['serverName'] + if service_access_role is None and 'serviceAccessRole' in kwargs: + service_access_role = kwargs['serviceAccessRole'] + if ssl_mode is None and 'sslMode' in kwargs: + ssl_mode = kwargs['sslMode'] + + _setter("endpoint_id", endpoint_id) + _setter("endpoint_type", endpoint_type) + _setter("engine_name", engine_name) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if elasticsearch_settings is not None: - pulumi.set(__self__, "elasticsearch_settings", elasticsearch_settings) + _setter("elasticsearch_settings", elasticsearch_settings) if extra_connection_attributes is not None: - pulumi.set(__self__, "extra_connection_attributes", extra_connection_attributes) + _setter("extra_connection_attributes", extra_connection_attributes) if kafka_settings is not None: - pulumi.set(__self__, "kafka_settings", kafka_settings) + _setter("kafka_settings", kafka_settings) if kinesis_settings is not None: - pulumi.set(__self__, "kinesis_settings", kinesis_settings) + _setter("kinesis_settings", kinesis_settings) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if mongodb_settings is not None: - pulumi.set(__self__, "mongodb_settings", mongodb_settings) + _setter("mongodb_settings", mongodb_settings) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if redis_settings is not None: - pulumi.set(__self__, "redis_settings", redis_settings) + _setter("redis_settings", redis_settings) if redshift_settings is not None: - pulumi.set(__self__, "redshift_settings", redshift_settings) + _setter("redshift_settings", redshift_settings) if s3_settings is not None: - pulumi.set(__self__, "s3_settings", s3_settings) + _setter("s3_settings", s3_settings) if secrets_manager_access_role_arn is not None: - pulumi.set(__self__, "secrets_manager_access_role_arn", secrets_manager_access_role_arn) + _setter("secrets_manager_access_role_arn", secrets_manager_access_role_arn) if secrets_manager_arn is not None: - pulumi.set(__self__, "secrets_manager_arn", secrets_manager_arn) + _setter("secrets_manager_arn", secrets_manager_arn) if server_name is not None: - pulumi.set(__self__, "server_name", server_name) + _setter("server_name", server_name) if service_access_role is not None: - pulumi.set(__self__, "service_access_role", service_access_role) + _setter("service_access_role", service_access_role) if ssl_mode is not None: - pulumi.set(__self__, "ssl_mode", ssl_mode) + _setter("ssl_mode", ssl_mode) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter(name="endpointId") @@ -443,59 +542,160 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] username: User name to be used to login to the endpoint database. """ + _EndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + database_name=database_name, + elasticsearch_settings=elasticsearch_settings, + endpoint_arn=endpoint_arn, + endpoint_id=endpoint_id, + endpoint_type=endpoint_type, + engine_name=engine_name, + extra_connection_attributes=extra_connection_attributes, + kafka_settings=kafka_settings, + kinesis_settings=kinesis_settings, + kms_key_arn=kms_key_arn, + mongodb_settings=mongodb_settings, + password=password, + port=port, + redis_settings=redis_settings, + redshift_settings=redshift_settings, + s3_settings=s3_settings, + secrets_manager_access_role_arn=secrets_manager_access_role_arn, + secrets_manager_arn=secrets_manager_arn, + server_name=server_name, + service_access_role=service_access_role, + ssl_mode=ssl_mode, + tags=tags, + tags_all=tags_all, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + elasticsearch_settings: Optional[pulumi.Input['EndpointElasticsearchSettingsArgs']] = None, + endpoint_arn: Optional[pulumi.Input[str]] = None, + endpoint_id: Optional[pulumi.Input[str]] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + engine_name: Optional[pulumi.Input[str]] = None, + extra_connection_attributes: Optional[pulumi.Input[str]] = None, + kafka_settings: Optional[pulumi.Input['EndpointKafkaSettingsArgs']] = None, + kinesis_settings: Optional[pulumi.Input['EndpointKinesisSettingsArgs']] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + mongodb_settings: Optional[pulumi.Input['EndpointMongodbSettingsArgs']] = None, + password: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + redis_settings: Optional[pulumi.Input['EndpointRedisSettingsArgs']] = None, + redshift_settings: Optional[pulumi.Input['EndpointRedshiftSettingsArgs']] = None, + s3_settings: Optional[pulumi.Input['EndpointS3SettingsArgs']] = None, + secrets_manager_access_role_arn: Optional[pulumi.Input[str]] = None, + secrets_manager_arn: Optional[pulumi.Input[str]] = None, + server_name: Optional[pulumi.Input[str]] = None, + service_access_role: Optional[pulumi.Input[str]] = None, + ssl_mode: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if elasticsearch_settings is None and 'elasticsearchSettings' in kwargs: + elasticsearch_settings = kwargs['elasticsearchSettings'] + if endpoint_arn is None and 'endpointArn' in kwargs: + endpoint_arn = kwargs['endpointArn'] + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if engine_name is None and 'engineName' in kwargs: + engine_name = kwargs['engineName'] + if extra_connection_attributes is None and 'extraConnectionAttributes' in kwargs: + extra_connection_attributes = kwargs['extraConnectionAttributes'] + if kafka_settings is None and 'kafkaSettings' in kwargs: + kafka_settings = kwargs['kafkaSettings'] + if kinesis_settings is None and 'kinesisSettings' in kwargs: + kinesis_settings = kwargs['kinesisSettings'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if mongodb_settings is None and 'mongodbSettings' in kwargs: + mongodb_settings = kwargs['mongodbSettings'] + if redis_settings is None and 'redisSettings' in kwargs: + redis_settings = kwargs['redisSettings'] + if redshift_settings is None and 'redshiftSettings' in kwargs: + redshift_settings = kwargs['redshiftSettings'] + if s3_settings is None and 's3Settings' in kwargs: + s3_settings = kwargs['s3Settings'] + if secrets_manager_access_role_arn is None and 'secretsManagerAccessRoleArn' in kwargs: + secrets_manager_access_role_arn = kwargs['secretsManagerAccessRoleArn'] + if secrets_manager_arn is None and 'secretsManagerArn' in kwargs: + secrets_manager_arn = kwargs['secretsManagerArn'] + if server_name is None and 'serverName' in kwargs: + server_name = kwargs['serverName'] + if service_access_role is None and 'serviceAccessRole' in kwargs: + service_access_role = kwargs['serviceAccessRole'] + if ssl_mode is None and 'sslMode' in kwargs: + ssl_mode = kwargs['sslMode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if elasticsearch_settings is not None: - pulumi.set(__self__, "elasticsearch_settings", elasticsearch_settings) + _setter("elasticsearch_settings", elasticsearch_settings) if endpoint_arn is not None: - pulumi.set(__self__, "endpoint_arn", endpoint_arn) + _setter("endpoint_arn", endpoint_arn) if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) if endpoint_type is not None: - pulumi.set(__self__, "endpoint_type", endpoint_type) + _setter("endpoint_type", endpoint_type) if engine_name is not None: - pulumi.set(__self__, "engine_name", engine_name) + _setter("engine_name", engine_name) if extra_connection_attributes is not None: - pulumi.set(__self__, "extra_connection_attributes", extra_connection_attributes) + _setter("extra_connection_attributes", extra_connection_attributes) if kafka_settings is not None: - pulumi.set(__self__, "kafka_settings", kafka_settings) + _setter("kafka_settings", kafka_settings) if kinesis_settings is not None: - pulumi.set(__self__, "kinesis_settings", kinesis_settings) + _setter("kinesis_settings", kinesis_settings) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if mongodb_settings is not None: - pulumi.set(__self__, "mongodb_settings", mongodb_settings) + _setter("mongodb_settings", mongodb_settings) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if redis_settings is not None: - pulumi.set(__self__, "redis_settings", redis_settings) + _setter("redis_settings", redis_settings) if redshift_settings is not None: - pulumi.set(__self__, "redshift_settings", redshift_settings) + _setter("redshift_settings", redshift_settings) if s3_settings is not None: - pulumi.set(__self__, "s3_settings", s3_settings) + _setter("s3_settings", s3_settings) if secrets_manager_access_role_arn is not None: - pulumi.set(__self__, "secrets_manager_access_role_arn", secrets_manager_access_role_arn) + _setter("secrets_manager_access_role_arn", secrets_manager_access_role_arn) if secrets_manager_arn is not None: - pulumi.set(__self__, "secrets_manager_arn", secrets_manager_arn) + _setter("secrets_manager_arn", secrets_manager_arn) if server_name is not None: - pulumi.set(__self__, "server_name", server_name) + _setter("server_name", server_name) if service_access_role is not None: - pulumi.set(__self__, "service_access_role", service_access_role) + _setter("service_access_role", service_access_role) if ssl_mode is not None: - pulumi.set(__self__, "ssl_mode", ssl_mode) + _setter("ssl_mode", ssl_mode) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter(name="certificateArn") @@ -948,6 +1148,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -987,6 +1191,7 @@ def _internal_init(__self__, __props__.__dict__["certificate_arn"] = certificate_arn __props__.__dict__["database_name"] = database_name + elasticsearch_settings = _utilities.configure(elasticsearch_settings, EndpointElasticsearchSettingsArgs, True) __props__.__dict__["elasticsearch_settings"] = elasticsearch_settings if endpoint_id is None and not opts.urn: raise TypeError("Missing required property 'endpoint_id'") @@ -998,14 +1203,20 @@ def _internal_init(__self__, raise TypeError("Missing required property 'engine_name'") __props__.__dict__["engine_name"] = engine_name __props__.__dict__["extra_connection_attributes"] = extra_connection_attributes + kafka_settings = _utilities.configure(kafka_settings, EndpointKafkaSettingsArgs, True) __props__.__dict__["kafka_settings"] = kafka_settings + kinesis_settings = _utilities.configure(kinesis_settings, EndpointKinesisSettingsArgs, True) __props__.__dict__["kinesis_settings"] = kinesis_settings __props__.__dict__["kms_key_arn"] = kms_key_arn + mongodb_settings = _utilities.configure(mongodb_settings, EndpointMongodbSettingsArgs, True) __props__.__dict__["mongodb_settings"] = mongodb_settings __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password) __props__.__dict__["port"] = port + redis_settings = _utilities.configure(redis_settings, EndpointRedisSettingsArgs, True) __props__.__dict__["redis_settings"] = redis_settings + redshift_settings = _utilities.configure(redshift_settings, EndpointRedshiftSettingsArgs, True) __props__.__dict__["redshift_settings"] = redshift_settings + s3_settings = _utilities.configure(s3_settings, EndpointS3SettingsArgs, True) __props__.__dict__["s3_settings"] = s3_settings __props__.__dict__["secrets_manager_access_role_arn"] = secrets_manager_access_role_arn __props__.__dict__["secrets_manager_arn"] = secrets_manager_arn diff --git a/sdk/python/pulumi_aws/dms/event_subscription.py b/sdk/python/pulumi_aws/dms/event_subscription.py index 0c0641d2084..61bab65bd0a 100644 --- a/sdk/python/pulumi_aws/dms/event_subscription.py +++ b/sdk/python/pulumi_aws/dms/event_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventSubscriptionArgs', 'EventSubscription'] @@ -31,18 +31,53 @@ def __init__(__self__, *, :param pulumi.Input[str] source_type: Type of source for events. Valid values: `replication-instance` or `replication-task` :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "event_categories", event_categories) - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + EventSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_categories=event_categories, + sns_topic_arn=sns_topic_arn, + enabled=enabled, + name=name, + source_ids=source_ids, + source_type=source_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if event_categories is None: + raise TypeError("Missing 'event_categories' argument") + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if sns_topic_arn is None: + raise TypeError("Missing 'sns_topic_arn' argument") + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + + _setter("event_categories", event_categories) + _setter("sns_topic_arn", sns_topic_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="eventCategories") @@ -153,27 +188,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource 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. """ + _EventSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + enabled=enabled, + event_categories=event_categories, + name=name, + sns_topic_arn=sns_topic_arn, + source_ids=source_ids, + source_type=source_type, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_categories is not None: - pulumi.set(__self__, "event_categories", event_categories) + _setter("event_categories", event_categories) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -388,6 +460,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dms/get_certificate.py b/sdk/python/pulumi_aws/dms/get_certificate.py index 998f12d9436..64e49c92a61 100644 --- a/sdk/python/pulumi_aws/dms/get_certificate.py +++ b/sdk/python/pulumi_aws/dms/get_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/dms/get_endpoint.py b/sdk/python/pulumi_aws/dms/get_endpoint.py index cfa224d1bf4..f6d2d93c8dc 100644 --- a/sdk/python/pulumi_aws/dms/get_endpoint.py +++ b/sdk/python/pulumi_aws/dms/get_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/dms/get_replication_instance.py b/sdk/python/pulumi_aws/dms/get_replication_instance.py index 519b988bff0..e5631783df0 100644 --- a/sdk/python/pulumi_aws/dms/get_replication_instance.py +++ b/sdk/python/pulumi_aws/dms/get_replication_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/dms/get_replication_subnet_group.py b/sdk/python/pulumi_aws/dms/get_replication_subnet_group.py index e7b492734a1..7c44bf5a9aa 100644 --- a/sdk/python/pulumi_aws/dms/get_replication_subnet_group.py +++ b/sdk/python/pulumi_aws/dms/get_replication_subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/dms/get_replication_task.py b/sdk/python/pulumi_aws/dms/get_replication_task.py index 6acf6fb7e48..5ed7e545212 100644 --- a/sdk/python/pulumi_aws/dms/get_replication_task.py +++ b/sdk/python/pulumi_aws/dms/get_replication_task.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/dms/outputs.py b/sdk/python/pulumi_aws/dms/outputs.py index 59754ccdbea..31b8221f39c 100644 --- a/sdk/python/pulumi_aws/dms/outputs.py +++ b/sdk/python/pulumi_aws/dms/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -63,12 +63,41 @@ def __init__(__self__, *, :param int error_retry_duration: Maximum number of seconds for which DMS retries failed API requests to the OpenSearch cluster. Default is `300`. :param int full_load_error_percentage: Maximum percentage of records that can fail to be written before a full load operation stops. Default is `10`. """ - pulumi.set(__self__, "endpoint_uri", endpoint_uri) - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + EndpointElasticsearchSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_uri=endpoint_uri, + service_access_role_arn=service_access_role_arn, + error_retry_duration=error_retry_duration, + full_load_error_percentage=full_load_error_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_uri: Optional[str] = None, + service_access_role_arn: Optional[str] = None, + error_retry_duration: Optional[int] = None, + full_load_error_percentage: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_uri is None and 'endpointUri' in kwargs: + endpoint_uri = kwargs['endpointUri'] + if endpoint_uri is None: + raise TypeError("Missing 'endpoint_uri' argument") + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if service_access_role_arn is None: + raise TypeError("Missing 'service_access_role_arn' argument") + if error_retry_duration is None and 'errorRetryDuration' in kwargs: + error_retry_duration = kwargs['errorRetryDuration'] + if full_load_error_percentage is None and 'fullLoadErrorPercentage' in kwargs: + full_load_error_percentage = kwargs['fullLoadErrorPercentage'] + + _setter("endpoint_uri", endpoint_uri) + _setter("service_access_role_arn", service_access_role_arn) if error_retry_duration is not None: - pulumi.set(__self__, "error_retry_duration", error_retry_duration) + _setter("error_retry_duration", error_retry_duration) if full_load_error_percentage is not None: - pulumi.set(__self__, "full_load_error_percentage", full_load_error_percentage) + _setter("full_load_error_percentage", full_load_error_percentage) @property @pulumi.getter(name="endpointUri") @@ -191,41 +220,120 @@ def __init__(__self__, *, :param str ssl_client_key_password: Password for the client private key used to securely connect to a Kafka target endpoint. :param str topic: Kafka topic for migration. Default is `kafka-default-topic`. """ - pulumi.set(__self__, "broker", broker) + EndpointKafkaSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + broker=broker, + include_control_details=include_control_details, + include_null_and_empty=include_null_and_empty, + include_partition_value=include_partition_value, + include_table_alter_operations=include_table_alter_operations, + include_transaction_details=include_transaction_details, + message_format=message_format, + message_max_bytes=message_max_bytes, + no_hex_prefix=no_hex_prefix, + partition_include_schema_table=partition_include_schema_table, + sasl_password=sasl_password, + sasl_username=sasl_username, + security_protocol=security_protocol, + ssl_ca_certificate_arn=ssl_ca_certificate_arn, + ssl_client_certificate_arn=ssl_client_certificate_arn, + ssl_client_key_arn=ssl_client_key_arn, + ssl_client_key_password=ssl_client_key_password, + topic=topic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + broker: Optional[str] = None, + include_control_details: Optional[bool] = None, + include_null_and_empty: Optional[bool] = None, + include_partition_value: Optional[bool] = None, + include_table_alter_operations: Optional[bool] = None, + include_transaction_details: Optional[bool] = None, + message_format: Optional[str] = None, + message_max_bytes: Optional[int] = None, + no_hex_prefix: Optional[bool] = None, + partition_include_schema_table: Optional[bool] = None, + sasl_password: Optional[str] = None, + sasl_username: Optional[str] = None, + security_protocol: Optional[str] = None, + ssl_ca_certificate_arn: Optional[str] = None, + ssl_client_certificate_arn: Optional[str] = None, + ssl_client_key_arn: Optional[str] = None, + ssl_client_key_password: Optional[str] = None, + topic: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if broker is None: + raise TypeError("Missing 'broker' argument") + if include_control_details is None and 'includeControlDetails' in kwargs: + include_control_details = kwargs['includeControlDetails'] + if include_null_and_empty is None and 'includeNullAndEmpty' in kwargs: + include_null_and_empty = kwargs['includeNullAndEmpty'] + if include_partition_value is None and 'includePartitionValue' in kwargs: + include_partition_value = kwargs['includePartitionValue'] + if include_table_alter_operations is None and 'includeTableAlterOperations' in kwargs: + include_table_alter_operations = kwargs['includeTableAlterOperations'] + if include_transaction_details is None and 'includeTransactionDetails' in kwargs: + include_transaction_details = kwargs['includeTransactionDetails'] + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + if message_max_bytes is None and 'messageMaxBytes' in kwargs: + message_max_bytes = kwargs['messageMaxBytes'] + if no_hex_prefix is None and 'noHexPrefix' in kwargs: + no_hex_prefix = kwargs['noHexPrefix'] + if partition_include_schema_table is None and 'partitionIncludeSchemaTable' in kwargs: + partition_include_schema_table = kwargs['partitionIncludeSchemaTable'] + if sasl_password is None and 'saslPassword' in kwargs: + sasl_password = kwargs['saslPassword'] + if sasl_username is None and 'saslUsername' in kwargs: + sasl_username = kwargs['saslUsername'] + if security_protocol is None and 'securityProtocol' in kwargs: + security_protocol = kwargs['securityProtocol'] + if ssl_ca_certificate_arn is None and 'sslCaCertificateArn' in kwargs: + ssl_ca_certificate_arn = kwargs['sslCaCertificateArn'] + if ssl_client_certificate_arn is None and 'sslClientCertificateArn' in kwargs: + ssl_client_certificate_arn = kwargs['sslClientCertificateArn'] + if ssl_client_key_arn is None and 'sslClientKeyArn' in kwargs: + ssl_client_key_arn = kwargs['sslClientKeyArn'] + if ssl_client_key_password is None and 'sslClientKeyPassword' in kwargs: + ssl_client_key_password = kwargs['sslClientKeyPassword'] + + _setter("broker", broker) if include_control_details is not None: - pulumi.set(__self__, "include_control_details", include_control_details) + _setter("include_control_details", include_control_details) if include_null_and_empty is not None: - pulumi.set(__self__, "include_null_and_empty", include_null_and_empty) + _setter("include_null_and_empty", include_null_and_empty) if include_partition_value is not None: - pulumi.set(__self__, "include_partition_value", include_partition_value) + _setter("include_partition_value", include_partition_value) if include_table_alter_operations is not None: - pulumi.set(__self__, "include_table_alter_operations", include_table_alter_operations) + _setter("include_table_alter_operations", include_table_alter_operations) if include_transaction_details is not None: - pulumi.set(__self__, "include_transaction_details", include_transaction_details) + _setter("include_transaction_details", include_transaction_details) if message_format is not None: - pulumi.set(__self__, "message_format", message_format) + _setter("message_format", message_format) if message_max_bytes is not None: - pulumi.set(__self__, "message_max_bytes", message_max_bytes) + _setter("message_max_bytes", message_max_bytes) if no_hex_prefix is not None: - pulumi.set(__self__, "no_hex_prefix", no_hex_prefix) + _setter("no_hex_prefix", no_hex_prefix) if partition_include_schema_table is not None: - pulumi.set(__self__, "partition_include_schema_table", partition_include_schema_table) + _setter("partition_include_schema_table", partition_include_schema_table) if sasl_password is not None: - pulumi.set(__self__, "sasl_password", sasl_password) + _setter("sasl_password", sasl_password) if sasl_username is not None: - pulumi.set(__self__, "sasl_username", sasl_username) + _setter("sasl_username", sasl_username) if security_protocol is not None: - pulumi.set(__self__, "security_protocol", security_protocol) + _setter("security_protocol", security_protocol) if ssl_ca_certificate_arn is not None: - pulumi.set(__self__, "ssl_ca_certificate_arn", ssl_ca_certificate_arn) + _setter("ssl_ca_certificate_arn", ssl_ca_certificate_arn) if ssl_client_certificate_arn is not None: - pulumi.set(__self__, "ssl_client_certificate_arn", ssl_client_certificate_arn) + _setter("ssl_client_certificate_arn", ssl_client_certificate_arn) if ssl_client_key_arn is not None: - pulumi.set(__self__, "ssl_client_key_arn", ssl_client_key_arn) + _setter("ssl_client_key_arn", ssl_client_key_arn) if ssl_client_key_password is not None: - pulumi.set(__self__, "ssl_client_key_password", ssl_client_key_password) + _setter("ssl_client_key_password", ssl_client_key_password) if topic is not None: - pulumi.set(__self__, "topic", topic) + _setter("topic", topic) @property @pulumi.getter @@ -428,24 +536,69 @@ def __init__(__self__, *, :param str service_access_role_arn: ARN of the IAM Role with permissions to write to the Kinesis data stream. :param str stream_arn: ARN of the Kinesis data stream. """ + EndpointKinesisSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + include_control_details=include_control_details, + include_null_and_empty=include_null_and_empty, + include_partition_value=include_partition_value, + include_table_alter_operations=include_table_alter_operations, + include_transaction_details=include_transaction_details, + message_format=message_format, + partition_include_schema_table=partition_include_schema_table, + service_access_role_arn=service_access_role_arn, + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + include_control_details: Optional[bool] = None, + include_null_and_empty: Optional[bool] = None, + include_partition_value: Optional[bool] = None, + include_table_alter_operations: Optional[bool] = None, + include_transaction_details: Optional[bool] = None, + message_format: Optional[str] = None, + partition_include_schema_table: Optional[bool] = None, + service_access_role_arn: Optional[str] = None, + stream_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if include_control_details is None and 'includeControlDetails' in kwargs: + include_control_details = kwargs['includeControlDetails'] + if include_null_and_empty is None and 'includeNullAndEmpty' in kwargs: + include_null_and_empty = kwargs['includeNullAndEmpty'] + if include_partition_value is None and 'includePartitionValue' in kwargs: + include_partition_value = kwargs['includePartitionValue'] + if include_table_alter_operations is None and 'includeTableAlterOperations' in kwargs: + include_table_alter_operations = kwargs['includeTableAlterOperations'] + if include_transaction_details is None and 'includeTransactionDetails' in kwargs: + include_transaction_details = kwargs['includeTransactionDetails'] + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + if partition_include_schema_table is None and 'partitionIncludeSchemaTable' in kwargs: + partition_include_schema_table = kwargs['partitionIncludeSchemaTable'] + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if include_control_details is not None: - pulumi.set(__self__, "include_control_details", include_control_details) + _setter("include_control_details", include_control_details) if include_null_and_empty is not None: - pulumi.set(__self__, "include_null_and_empty", include_null_and_empty) + _setter("include_null_and_empty", include_null_and_empty) if include_partition_value is not None: - pulumi.set(__self__, "include_partition_value", include_partition_value) + _setter("include_partition_value", include_partition_value) if include_table_alter_operations is not None: - pulumi.set(__self__, "include_table_alter_operations", include_table_alter_operations) + _setter("include_table_alter_operations", include_table_alter_operations) if include_transaction_details is not None: - pulumi.set(__self__, "include_transaction_details", include_transaction_details) + _setter("include_transaction_details", include_transaction_details) if message_format is not None: - pulumi.set(__self__, "message_format", message_format) + _setter("message_format", message_format) if partition_include_schema_table is not None: - pulumi.set(__self__, "partition_include_schema_table", partition_include_schema_table) + _setter("partition_include_schema_table", partition_include_schema_table) if service_access_role_arn is not None: - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + _setter("service_access_role_arn", service_access_role_arn) if stream_arn is not None: - pulumi.set(__self__, "stream_arn", stream_arn) + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="includeControlDetails") @@ -564,18 +717,51 @@ def __init__(__self__, *, :param str extract_doc_id: Document ID. Use this setting when `nesting_level` is set to `none`. Default is `false`. :param str nesting_level: Specifies either document or table mode. Default is `none`. Valid values are `one` (table mode) and `none` (document mode). """ + EndpointMongodbSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_mechanism=auth_mechanism, + auth_source=auth_source, + auth_type=auth_type, + docs_to_investigate=docs_to_investigate, + extract_doc_id=extract_doc_id, + nesting_level=nesting_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_mechanism: Optional[str] = None, + auth_source: Optional[str] = None, + auth_type: Optional[str] = None, + docs_to_investigate: Optional[str] = None, + extract_doc_id: Optional[str] = None, + nesting_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_mechanism is None and 'authMechanism' in kwargs: + auth_mechanism = kwargs['authMechanism'] + if auth_source is None and 'authSource' in kwargs: + auth_source = kwargs['authSource'] + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if docs_to_investigate is None and 'docsToInvestigate' in kwargs: + docs_to_investigate = kwargs['docsToInvestigate'] + if extract_doc_id is None and 'extractDocId' in kwargs: + extract_doc_id = kwargs['extractDocId'] + if nesting_level is None and 'nestingLevel' in kwargs: + nesting_level = kwargs['nestingLevel'] + if auth_mechanism is not None: - pulumi.set(__self__, "auth_mechanism", auth_mechanism) + _setter("auth_mechanism", auth_mechanism) if auth_source is not None: - pulumi.set(__self__, "auth_source", auth_source) + _setter("auth_source", auth_source) if auth_type is not None: - pulumi.set(__self__, "auth_type", auth_type) + _setter("auth_type", auth_type) if docs_to_investigate is not None: - pulumi.set(__self__, "docs_to_investigate", docs_to_investigate) + _setter("docs_to_investigate", docs_to_investigate) if extract_doc_id is not None: - pulumi.set(__self__, "extract_doc_id", extract_doc_id) + _setter("extract_doc_id", extract_doc_id) if nesting_level is not None: - pulumi.set(__self__, "nesting_level", nesting_level) + _setter("nesting_level", nesting_level) @property @pulumi.getter(name="authMechanism") @@ -672,17 +858,58 @@ def __init__(__self__, *, :param str ssl_ca_certificate_arn: The Amazon Resource Name (ARN) for the certificate authority (CA) that DMS uses to connect to your Redis target endpoint. :param str ssl_security_protocol: The plaintext option doesn't provide Transport Layer Security (TLS) encryption for traffic between endpoint and database. Options include `plaintext`, `ssl-encryption`. The default is `ssl-encryption`. """ - pulumi.set(__self__, "auth_type", auth_type) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "server_name", server_name) + EndpointRedisSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_type=auth_type, + port=port, + server_name=server_name, + auth_password=auth_password, + auth_user_name=auth_user_name, + ssl_ca_certificate_arn=ssl_ca_certificate_arn, + ssl_security_protocol=ssl_security_protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_type: Optional[str] = None, + port: Optional[int] = None, + server_name: Optional[str] = None, + auth_password: Optional[str] = None, + auth_user_name: Optional[str] = None, + ssl_ca_certificate_arn: Optional[str] = None, + ssl_security_protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if auth_type is None: + raise TypeError("Missing 'auth_type' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if server_name is None and 'serverName' in kwargs: + server_name = kwargs['serverName'] + if server_name is None: + raise TypeError("Missing 'server_name' argument") + if auth_password is None and 'authPassword' in kwargs: + auth_password = kwargs['authPassword'] + if auth_user_name is None and 'authUserName' in kwargs: + auth_user_name = kwargs['authUserName'] + if ssl_ca_certificate_arn is None and 'sslCaCertificateArn' in kwargs: + ssl_ca_certificate_arn = kwargs['sslCaCertificateArn'] + if ssl_security_protocol is None and 'sslSecurityProtocol' in kwargs: + ssl_security_protocol = kwargs['sslSecurityProtocol'] + + _setter("auth_type", auth_type) + _setter("port", port) + _setter("server_name", server_name) if auth_password is not None: - pulumi.set(__self__, "auth_password", auth_password) + _setter("auth_password", auth_password) if auth_user_name is not None: - pulumi.set(__self__, "auth_user_name", auth_user_name) + _setter("auth_user_name", auth_user_name) if ssl_ca_certificate_arn is not None: - pulumi.set(__self__, "ssl_ca_certificate_arn", ssl_ca_certificate_arn) + _setter("ssl_ca_certificate_arn", ssl_ca_certificate_arn) if ssl_security_protocol is not None: - pulumi.set(__self__, "ssl_security_protocol", ssl_security_protocol) + _setter("ssl_security_protocol", ssl_security_protocol) @property @pulumi.getter(name="authType") @@ -781,16 +1008,45 @@ def __init__(__self__, *, :param str server_side_encryption_kms_key_id: ARN or Id of KMS Key to use when `encryption_mode` is `SSE_KMS`. :param str service_access_role_arn: Amazon Resource Name (ARN) of the IAM Role with permissions to read from or write to the S3 Bucket for intermediate storage. """ + EndpointRedshiftSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_folder=bucket_folder, + bucket_name=bucket_name, + encryption_mode=encryption_mode, + server_side_encryption_kms_key_id=server_side_encryption_kms_key_id, + service_access_role_arn=service_access_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_folder: Optional[str] = None, + bucket_name: Optional[str] = None, + encryption_mode: Optional[str] = None, + server_side_encryption_kms_key_id: Optional[str] = None, + service_access_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_folder is None and 'bucketFolder' in kwargs: + bucket_folder = kwargs['bucketFolder'] + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if server_side_encryption_kms_key_id is None and 'serverSideEncryptionKmsKeyId' in kwargs: + server_side_encryption_kms_key_id = kwargs['serverSideEncryptionKmsKeyId'] + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if bucket_folder is not None: - pulumi.set(__self__, "bucket_folder", bucket_folder) + _setter("bucket_folder", bucket_folder) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if server_side_encryption_kms_key_id is not None: - pulumi.set(__self__, "server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) + _setter("server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) if service_access_role_arn is not None: - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + _setter("service_access_role_arn", service_access_role_arn) @property @pulumi.getter(name="bucketFolder") @@ -1003,82 +1259,241 @@ def __init__(__self__, *, :param bool use_csv_no_sup_value: Whether to use `csv_no_sup_value` for columns not included in the supplemental log. :param bool use_task_start_time_for_full_load_timestamp: When set to true, uses the task start time as the timestamp column value instead of the time data is written to target. For full load, when set to true, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time. When set to false, the full load timestamp in the timestamp column increments with the time data arrives at the target. Default is `false`. """ + EndpointS3Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + add_column_name=add_column_name, + bucket_folder=bucket_folder, + bucket_name=bucket_name, + canned_acl_for_objects=canned_acl_for_objects, + cdc_inserts_and_updates=cdc_inserts_and_updates, + cdc_inserts_only=cdc_inserts_only, + cdc_max_batch_interval=cdc_max_batch_interval, + cdc_min_file_size=cdc_min_file_size, + cdc_path=cdc_path, + compression_type=compression_type, + csv_delimiter=csv_delimiter, + csv_no_sup_value=csv_no_sup_value, + csv_null_value=csv_null_value, + csv_row_delimiter=csv_row_delimiter, + data_format=data_format, + data_page_size=data_page_size, + date_partition_delimiter=date_partition_delimiter, + date_partition_enabled=date_partition_enabled, + date_partition_sequence=date_partition_sequence, + dict_page_size_limit=dict_page_size_limit, + enable_statistics=enable_statistics, + encoding_type=encoding_type, + encryption_mode=encryption_mode, + external_table_definition=external_table_definition, + glue_catalog_generation=glue_catalog_generation, + ignore_header_rows=ignore_header_rows, + include_op_for_full_load=include_op_for_full_load, + max_file_size=max_file_size, + parquet_timestamp_in_millisecond=parquet_timestamp_in_millisecond, + parquet_version=parquet_version, + preserve_transactions=preserve_transactions, + rfc4180=rfc4180, + row_group_length=row_group_length, + server_side_encryption_kms_key_id=server_side_encryption_kms_key_id, + service_access_role_arn=service_access_role_arn, + timestamp_column_name=timestamp_column_name, + use_csv_no_sup_value=use_csv_no_sup_value, + use_task_start_time_for_full_load_timestamp=use_task_start_time_for_full_load_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + add_column_name: Optional[bool] = None, + bucket_folder: Optional[str] = None, + bucket_name: Optional[str] = None, + canned_acl_for_objects: Optional[str] = None, + cdc_inserts_and_updates: Optional[bool] = None, + cdc_inserts_only: Optional[bool] = None, + cdc_max_batch_interval: Optional[int] = None, + cdc_min_file_size: Optional[int] = None, + cdc_path: Optional[str] = None, + compression_type: Optional[str] = None, + csv_delimiter: Optional[str] = None, + csv_no_sup_value: Optional[str] = None, + csv_null_value: Optional[str] = None, + csv_row_delimiter: Optional[str] = None, + data_format: Optional[str] = None, + data_page_size: Optional[int] = None, + date_partition_delimiter: Optional[str] = None, + date_partition_enabled: Optional[bool] = None, + date_partition_sequence: Optional[str] = None, + dict_page_size_limit: Optional[int] = None, + enable_statistics: Optional[bool] = None, + encoding_type: Optional[str] = None, + encryption_mode: Optional[str] = None, + external_table_definition: Optional[str] = None, + glue_catalog_generation: Optional[bool] = None, + ignore_header_rows: Optional[int] = None, + include_op_for_full_load: Optional[bool] = None, + max_file_size: Optional[int] = None, + parquet_timestamp_in_millisecond: Optional[bool] = None, + parquet_version: Optional[str] = None, + preserve_transactions: Optional[bool] = None, + rfc4180: Optional[bool] = None, + row_group_length: Optional[int] = None, + server_side_encryption_kms_key_id: Optional[str] = None, + service_access_role_arn: Optional[str] = None, + timestamp_column_name: Optional[str] = None, + use_csv_no_sup_value: Optional[bool] = None, + use_task_start_time_for_full_load_timestamp: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if add_column_name is None and 'addColumnName' in kwargs: + add_column_name = kwargs['addColumnName'] + if bucket_folder is None and 'bucketFolder' in kwargs: + bucket_folder = kwargs['bucketFolder'] + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if canned_acl_for_objects is None and 'cannedAclForObjects' in kwargs: + canned_acl_for_objects = kwargs['cannedAclForObjects'] + if cdc_inserts_and_updates is None and 'cdcInsertsAndUpdates' in kwargs: + cdc_inserts_and_updates = kwargs['cdcInsertsAndUpdates'] + if cdc_inserts_only is None and 'cdcInsertsOnly' in kwargs: + cdc_inserts_only = kwargs['cdcInsertsOnly'] + if cdc_max_batch_interval is None and 'cdcMaxBatchInterval' in kwargs: + cdc_max_batch_interval = kwargs['cdcMaxBatchInterval'] + if cdc_min_file_size is None and 'cdcMinFileSize' in kwargs: + cdc_min_file_size = kwargs['cdcMinFileSize'] + if cdc_path is None and 'cdcPath' in kwargs: + cdc_path = kwargs['cdcPath'] + if compression_type is None and 'compressionType' in kwargs: + compression_type = kwargs['compressionType'] + if csv_delimiter is None and 'csvDelimiter' in kwargs: + csv_delimiter = kwargs['csvDelimiter'] + if csv_no_sup_value is None and 'csvNoSupValue' in kwargs: + csv_no_sup_value = kwargs['csvNoSupValue'] + if csv_null_value is None and 'csvNullValue' in kwargs: + csv_null_value = kwargs['csvNullValue'] + if csv_row_delimiter is None and 'csvRowDelimiter' in kwargs: + csv_row_delimiter = kwargs['csvRowDelimiter'] + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if data_page_size is None and 'dataPageSize' in kwargs: + data_page_size = kwargs['dataPageSize'] + if date_partition_delimiter is None and 'datePartitionDelimiter' in kwargs: + date_partition_delimiter = kwargs['datePartitionDelimiter'] + if date_partition_enabled is None and 'datePartitionEnabled' in kwargs: + date_partition_enabled = kwargs['datePartitionEnabled'] + if date_partition_sequence is None and 'datePartitionSequence' in kwargs: + date_partition_sequence = kwargs['datePartitionSequence'] + if dict_page_size_limit is None and 'dictPageSizeLimit' in kwargs: + dict_page_size_limit = kwargs['dictPageSizeLimit'] + if enable_statistics is None and 'enableStatistics' in kwargs: + enable_statistics = kwargs['enableStatistics'] + if encoding_type is None and 'encodingType' in kwargs: + encoding_type = kwargs['encodingType'] + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if external_table_definition is None and 'externalTableDefinition' in kwargs: + external_table_definition = kwargs['externalTableDefinition'] + if glue_catalog_generation is None and 'glueCatalogGeneration' in kwargs: + glue_catalog_generation = kwargs['glueCatalogGeneration'] + if ignore_header_rows is None and 'ignoreHeaderRows' in kwargs: + ignore_header_rows = kwargs['ignoreHeaderRows'] + if include_op_for_full_load is None and 'includeOpForFullLoad' in kwargs: + include_op_for_full_load = kwargs['includeOpForFullLoad'] + if max_file_size is None and 'maxFileSize' in kwargs: + max_file_size = kwargs['maxFileSize'] + if parquet_timestamp_in_millisecond is None and 'parquetTimestampInMillisecond' in kwargs: + parquet_timestamp_in_millisecond = kwargs['parquetTimestampInMillisecond'] + if parquet_version is None and 'parquetVersion' in kwargs: + parquet_version = kwargs['parquetVersion'] + if preserve_transactions is None and 'preserveTransactions' in kwargs: + preserve_transactions = kwargs['preserveTransactions'] + if row_group_length is None and 'rowGroupLength' in kwargs: + row_group_length = kwargs['rowGroupLength'] + if server_side_encryption_kms_key_id is None and 'serverSideEncryptionKmsKeyId' in kwargs: + server_side_encryption_kms_key_id = kwargs['serverSideEncryptionKmsKeyId'] + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if timestamp_column_name is None and 'timestampColumnName' in kwargs: + timestamp_column_name = kwargs['timestampColumnName'] + if use_csv_no_sup_value is None and 'useCsvNoSupValue' in kwargs: + use_csv_no_sup_value = kwargs['useCsvNoSupValue'] + if use_task_start_time_for_full_load_timestamp is None and 'useTaskStartTimeForFullLoadTimestamp' in kwargs: + use_task_start_time_for_full_load_timestamp = kwargs['useTaskStartTimeForFullLoadTimestamp'] + if add_column_name is not None: - pulumi.set(__self__, "add_column_name", add_column_name) + _setter("add_column_name", add_column_name) if bucket_folder is not None: - pulumi.set(__self__, "bucket_folder", bucket_folder) + _setter("bucket_folder", bucket_folder) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if canned_acl_for_objects is not None: - pulumi.set(__self__, "canned_acl_for_objects", canned_acl_for_objects) + _setter("canned_acl_for_objects", canned_acl_for_objects) if cdc_inserts_and_updates is not None: - pulumi.set(__self__, "cdc_inserts_and_updates", cdc_inserts_and_updates) + _setter("cdc_inserts_and_updates", cdc_inserts_and_updates) if cdc_inserts_only is not None: - pulumi.set(__self__, "cdc_inserts_only", cdc_inserts_only) + _setter("cdc_inserts_only", cdc_inserts_only) if cdc_max_batch_interval is not None: - pulumi.set(__self__, "cdc_max_batch_interval", cdc_max_batch_interval) + _setter("cdc_max_batch_interval", cdc_max_batch_interval) if cdc_min_file_size is not None: - pulumi.set(__self__, "cdc_min_file_size", cdc_min_file_size) + _setter("cdc_min_file_size", cdc_min_file_size) if cdc_path is not None: - pulumi.set(__self__, "cdc_path", cdc_path) + _setter("cdc_path", cdc_path) if compression_type is not None: - pulumi.set(__self__, "compression_type", compression_type) + _setter("compression_type", compression_type) if csv_delimiter is not None: - pulumi.set(__self__, "csv_delimiter", csv_delimiter) + _setter("csv_delimiter", csv_delimiter) if csv_no_sup_value is not None: - pulumi.set(__self__, "csv_no_sup_value", csv_no_sup_value) + _setter("csv_no_sup_value", csv_no_sup_value) if csv_null_value is not None: - pulumi.set(__self__, "csv_null_value", csv_null_value) + _setter("csv_null_value", csv_null_value) if csv_row_delimiter is not None: - pulumi.set(__self__, "csv_row_delimiter", csv_row_delimiter) + _setter("csv_row_delimiter", csv_row_delimiter) if data_format is not None: - pulumi.set(__self__, "data_format", data_format) + _setter("data_format", data_format) if data_page_size is not None: - pulumi.set(__self__, "data_page_size", data_page_size) + _setter("data_page_size", data_page_size) if date_partition_delimiter is not None: - pulumi.set(__self__, "date_partition_delimiter", date_partition_delimiter) + _setter("date_partition_delimiter", date_partition_delimiter) if date_partition_enabled is not None: - pulumi.set(__self__, "date_partition_enabled", date_partition_enabled) + _setter("date_partition_enabled", date_partition_enabled) if date_partition_sequence is not None: - pulumi.set(__self__, "date_partition_sequence", date_partition_sequence) + _setter("date_partition_sequence", date_partition_sequence) if dict_page_size_limit is not None: - pulumi.set(__self__, "dict_page_size_limit", dict_page_size_limit) + _setter("dict_page_size_limit", dict_page_size_limit) if enable_statistics is not None: - pulumi.set(__self__, "enable_statistics", enable_statistics) + _setter("enable_statistics", enable_statistics) if encoding_type is not None: - pulumi.set(__self__, "encoding_type", encoding_type) + _setter("encoding_type", encoding_type) if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if external_table_definition is not None: - pulumi.set(__self__, "external_table_definition", external_table_definition) + _setter("external_table_definition", external_table_definition) if glue_catalog_generation is not None: - pulumi.set(__self__, "glue_catalog_generation", glue_catalog_generation) + _setter("glue_catalog_generation", glue_catalog_generation) if ignore_header_rows is not None: - pulumi.set(__self__, "ignore_header_rows", ignore_header_rows) + _setter("ignore_header_rows", ignore_header_rows) if include_op_for_full_load is not None: - pulumi.set(__self__, "include_op_for_full_load", include_op_for_full_load) + _setter("include_op_for_full_load", include_op_for_full_load) if max_file_size is not None: - pulumi.set(__self__, "max_file_size", max_file_size) + _setter("max_file_size", max_file_size) if parquet_timestamp_in_millisecond is not None: - pulumi.set(__self__, "parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) + _setter("parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) if parquet_version is not None: - pulumi.set(__self__, "parquet_version", parquet_version) + _setter("parquet_version", parquet_version) if preserve_transactions is not None: - pulumi.set(__self__, "preserve_transactions", preserve_transactions) + _setter("preserve_transactions", preserve_transactions) if rfc4180 is not None: - pulumi.set(__self__, "rfc4180", rfc4180) + _setter("rfc4180", rfc4180) if row_group_length is not None: - pulumi.set(__self__, "row_group_length", row_group_length) + _setter("row_group_length", row_group_length) if server_side_encryption_kms_key_id is not None: - pulumi.set(__self__, "server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) + _setter("server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) if service_access_role_arn is not None: - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + _setter("service_access_role_arn", service_access_role_arn) if timestamp_column_name is not None: - pulumi.set(__self__, "timestamp_column_name", timestamp_column_name) + _setter("timestamp_column_name", timestamp_column_name) if use_csv_no_sup_value is not None: - pulumi.set(__self__, "use_csv_no_sup_value", use_csv_no_sup_value) + _setter("use_csv_no_sup_value", use_csv_no_sup_value) if use_task_start_time_for_full_load_timestamp is not None: - pulumi.set(__self__, "use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) + _setter("use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) @property @pulumi.getter(name="addColumnName") @@ -1446,23 +1861,70 @@ def __init__(__self__, *, - Constraints: Minimum 30-minute window. :param Sequence[str] vpc_security_group_ids: Specifies the virtual private cloud (VPC) security group to use with the DMS Serverless replication. The VPC security group must work with the VPC containing the replication. """ - pulumi.set(__self__, "replication_subnet_group_id", replication_subnet_group_id) + ReplicationConfigComputeConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + replication_subnet_group_id=replication_subnet_group_id, + availability_zone=availability_zone, + dns_name_servers=dns_name_servers, + kms_key_id=kms_key_id, + max_capacity_units=max_capacity_units, + min_capacity_units=min_capacity_units, + multi_az=multi_az, + preferred_maintenance_window=preferred_maintenance_window, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replication_subnet_group_id: Optional[str] = None, + availability_zone: Optional[str] = None, + dns_name_servers: Optional[str] = None, + kms_key_id: Optional[str] = None, + max_capacity_units: Optional[int] = None, + min_capacity_units: Optional[int] = None, + multi_az: Optional[bool] = None, + preferred_maintenance_window: Optional[str] = None, + vpc_security_group_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replication_subnet_group_id is None and 'replicationSubnetGroupId' in kwargs: + replication_subnet_group_id = kwargs['replicationSubnetGroupId'] + if replication_subnet_group_id is None: + raise TypeError("Missing 'replication_subnet_group_id' argument") + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if dns_name_servers is None and 'dnsNameServers' in kwargs: + dns_name_servers = kwargs['dnsNameServers'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if max_capacity_units is None and 'maxCapacityUnits' in kwargs: + max_capacity_units = kwargs['maxCapacityUnits'] + if min_capacity_units is None and 'minCapacityUnits' in kwargs: + min_capacity_units = kwargs['minCapacityUnits'] + if multi_az is None and 'multiAz' in kwargs: + multi_az = kwargs['multiAz'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("replication_subnet_group_id", replication_subnet_group_id) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if dns_name_servers is not None: - pulumi.set(__self__, "dns_name_servers", dns_name_servers) + _setter("dns_name_servers", dns_name_servers) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if max_capacity_units is not None: - pulumi.set(__self__, "max_capacity_units", max_capacity_units) + _setter("max_capacity_units", max_capacity_units) if min_capacity_units is not None: - pulumi.set(__self__, "min_capacity_units", min_capacity_units) + _setter("min_capacity_units", min_capacity_units) if multi_az is not None: - pulumi.set(__self__, "multi_az", multi_az) + _setter("multi_az", multi_az) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="replicationSubnetGroupId") @@ -1549,10 +2011,43 @@ def __init__(__self__, *, error_retry_duration: int, full_load_error_percentage: int, service_access_role_arn: str): - pulumi.set(__self__, "endpoint_uri", endpoint_uri) - pulumi.set(__self__, "error_retry_duration", error_retry_duration) - pulumi.set(__self__, "full_load_error_percentage", full_load_error_percentage) - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + GetEndpointElasticsearchSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_uri=endpoint_uri, + error_retry_duration=error_retry_duration, + full_load_error_percentage=full_load_error_percentage, + service_access_role_arn=service_access_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_uri: Optional[str] = None, + error_retry_duration: Optional[int] = None, + full_load_error_percentage: Optional[int] = None, + service_access_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_uri is None and 'endpointUri' in kwargs: + endpoint_uri = kwargs['endpointUri'] + if endpoint_uri is None: + raise TypeError("Missing 'endpoint_uri' argument") + if error_retry_duration is None and 'errorRetryDuration' in kwargs: + error_retry_duration = kwargs['errorRetryDuration'] + if error_retry_duration is None: + raise TypeError("Missing 'error_retry_duration' argument") + if full_load_error_percentage is None and 'fullLoadErrorPercentage' in kwargs: + full_load_error_percentage = kwargs['fullLoadErrorPercentage'] + if full_load_error_percentage is None: + raise TypeError("Missing 'full_load_error_percentage' argument") + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if service_access_role_arn is None: + raise TypeError("Missing 'service_access_role_arn' argument") + + _setter("endpoint_uri", endpoint_uri) + _setter("error_retry_duration", error_retry_duration) + _setter("full_load_error_percentage", full_load_error_percentage) + _setter("service_access_role_arn", service_access_role_arn) @property @pulumi.getter(name="endpointUri") @@ -1596,24 +2091,137 @@ def __init__(__self__, *, ssl_client_key_arn: str, ssl_client_key_password: str, topic: str): - pulumi.set(__self__, "broker", broker) - pulumi.set(__self__, "include_control_details", include_control_details) - pulumi.set(__self__, "include_null_and_empty", include_null_and_empty) - pulumi.set(__self__, "include_partition_value", include_partition_value) - pulumi.set(__self__, "include_table_alter_operations", include_table_alter_operations) - pulumi.set(__self__, "include_transaction_details", include_transaction_details) - pulumi.set(__self__, "message_format", message_format) - pulumi.set(__self__, "message_max_bytes", message_max_bytes) - pulumi.set(__self__, "no_hex_prefix", no_hex_prefix) - pulumi.set(__self__, "partition_include_schema_table", partition_include_schema_table) - pulumi.set(__self__, "sasl_password", sasl_password) - pulumi.set(__self__, "sasl_username", sasl_username) - pulumi.set(__self__, "security_protocol", security_protocol) - pulumi.set(__self__, "ssl_ca_certificate_arn", ssl_ca_certificate_arn) - pulumi.set(__self__, "ssl_client_certificate_arn", ssl_client_certificate_arn) - pulumi.set(__self__, "ssl_client_key_arn", ssl_client_key_arn) - pulumi.set(__self__, "ssl_client_key_password", ssl_client_key_password) - pulumi.set(__self__, "topic", topic) + GetEndpointKafkaSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + broker=broker, + include_control_details=include_control_details, + include_null_and_empty=include_null_and_empty, + include_partition_value=include_partition_value, + include_table_alter_operations=include_table_alter_operations, + include_transaction_details=include_transaction_details, + message_format=message_format, + message_max_bytes=message_max_bytes, + no_hex_prefix=no_hex_prefix, + partition_include_schema_table=partition_include_schema_table, + sasl_password=sasl_password, + sasl_username=sasl_username, + security_protocol=security_protocol, + ssl_ca_certificate_arn=ssl_ca_certificate_arn, + ssl_client_certificate_arn=ssl_client_certificate_arn, + ssl_client_key_arn=ssl_client_key_arn, + ssl_client_key_password=ssl_client_key_password, + topic=topic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + broker: Optional[str] = None, + include_control_details: Optional[bool] = None, + include_null_and_empty: Optional[bool] = None, + include_partition_value: Optional[bool] = None, + include_table_alter_operations: Optional[bool] = None, + include_transaction_details: Optional[bool] = None, + message_format: Optional[str] = None, + message_max_bytes: Optional[int] = None, + no_hex_prefix: Optional[bool] = None, + partition_include_schema_table: Optional[bool] = None, + sasl_password: Optional[str] = None, + sasl_username: Optional[str] = None, + security_protocol: Optional[str] = None, + ssl_ca_certificate_arn: Optional[str] = None, + ssl_client_certificate_arn: Optional[str] = None, + ssl_client_key_arn: Optional[str] = None, + ssl_client_key_password: Optional[str] = None, + topic: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if broker is None: + raise TypeError("Missing 'broker' argument") + if include_control_details is None and 'includeControlDetails' in kwargs: + include_control_details = kwargs['includeControlDetails'] + if include_control_details is None: + raise TypeError("Missing 'include_control_details' argument") + if include_null_and_empty is None and 'includeNullAndEmpty' in kwargs: + include_null_and_empty = kwargs['includeNullAndEmpty'] + if include_null_and_empty is None: + raise TypeError("Missing 'include_null_and_empty' argument") + if include_partition_value is None and 'includePartitionValue' in kwargs: + include_partition_value = kwargs['includePartitionValue'] + if include_partition_value is None: + raise TypeError("Missing 'include_partition_value' argument") + if include_table_alter_operations is None and 'includeTableAlterOperations' in kwargs: + include_table_alter_operations = kwargs['includeTableAlterOperations'] + if include_table_alter_operations is None: + raise TypeError("Missing 'include_table_alter_operations' argument") + if include_transaction_details is None and 'includeTransactionDetails' in kwargs: + include_transaction_details = kwargs['includeTransactionDetails'] + if include_transaction_details is None: + raise TypeError("Missing 'include_transaction_details' argument") + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + if message_format is None: + raise TypeError("Missing 'message_format' argument") + if message_max_bytes is None and 'messageMaxBytes' in kwargs: + message_max_bytes = kwargs['messageMaxBytes'] + if message_max_bytes is None: + raise TypeError("Missing 'message_max_bytes' argument") + if no_hex_prefix is None and 'noHexPrefix' in kwargs: + no_hex_prefix = kwargs['noHexPrefix'] + if no_hex_prefix is None: + raise TypeError("Missing 'no_hex_prefix' argument") + if partition_include_schema_table is None and 'partitionIncludeSchemaTable' in kwargs: + partition_include_schema_table = kwargs['partitionIncludeSchemaTable'] + if partition_include_schema_table is None: + raise TypeError("Missing 'partition_include_schema_table' argument") + if sasl_password is None and 'saslPassword' in kwargs: + sasl_password = kwargs['saslPassword'] + if sasl_password is None: + raise TypeError("Missing 'sasl_password' argument") + if sasl_username is None and 'saslUsername' in kwargs: + sasl_username = kwargs['saslUsername'] + if sasl_username is None: + raise TypeError("Missing 'sasl_username' argument") + if security_protocol is None and 'securityProtocol' in kwargs: + security_protocol = kwargs['securityProtocol'] + if security_protocol is None: + raise TypeError("Missing 'security_protocol' argument") + if ssl_ca_certificate_arn is None and 'sslCaCertificateArn' in kwargs: + ssl_ca_certificate_arn = kwargs['sslCaCertificateArn'] + if ssl_ca_certificate_arn is None: + raise TypeError("Missing 'ssl_ca_certificate_arn' argument") + if ssl_client_certificate_arn is None and 'sslClientCertificateArn' in kwargs: + ssl_client_certificate_arn = kwargs['sslClientCertificateArn'] + if ssl_client_certificate_arn is None: + raise TypeError("Missing 'ssl_client_certificate_arn' argument") + if ssl_client_key_arn is None and 'sslClientKeyArn' in kwargs: + ssl_client_key_arn = kwargs['sslClientKeyArn'] + if ssl_client_key_arn is None: + raise TypeError("Missing 'ssl_client_key_arn' argument") + if ssl_client_key_password is None and 'sslClientKeyPassword' in kwargs: + ssl_client_key_password = kwargs['sslClientKeyPassword'] + if ssl_client_key_password is None: + raise TypeError("Missing 'ssl_client_key_password' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + + _setter("broker", broker) + _setter("include_control_details", include_control_details) + _setter("include_null_and_empty", include_null_and_empty) + _setter("include_partition_value", include_partition_value) + _setter("include_table_alter_operations", include_table_alter_operations) + _setter("include_transaction_details", include_transaction_details) + _setter("message_format", message_format) + _setter("message_max_bytes", message_max_bytes) + _setter("no_hex_prefix", no_hex_prefix) + _setter("partition_include_schema_table", partition_include_schema_table) + _setter("sasl_password", sasl_password) + _setter("sasl_username", sasl_username) + _setter("security_protocol", security_protocol) + _setter("ssl_ca_certificate_arn", ssl_ca_certificate_arn) + _setter("ssl_client_certificate_arn", ssl_client_certificate_arn) + _setter("ssl_client_key_arn", ssl_client_key_arn) + _setter("ssl_client_key_password", ssl_client_key_password) + _setter("topic", topic) @property @pulumi.getter @@ -1718,15 +2326,78 @@ def __init__(__self__, *, partition_include_schema_table: bool, service_access_role_arn: str, stream_arn: str): - pulumi.set(__self__, "include_control_details", include_control_details) - pulumi.set(__self__, "include_null_and_empty", include_null_and_empty) - pulumi.set(__self__, "include_partition_value", include_partition_value) - pulumi.set(__self__, "include_table_alter_operations", include_table_alter_operations) - pulumi.set(__self__, "include_transaction_details", include_transaction_details) - pulumi.set(__self__, "message_format", message_format) - pulumi.set(__self__, "partition_include_schema_table", partition_include_schema_table) - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) - pulumi.set(__self__, "stream_arn", stream_arn) + GetEndpointKinesisSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + include_control_details=include_control_details, + include_null_and_empty=include_null_and_empty, + include_partition_value=include_partition_value, + include_table_alter_operations=include_table_alter_operations, + include_transaction_details=include_transaction_details, + message_format=message_format, + partition_include_schema_table=partition_include_schema_table, + service_access_role_arn=service_access_role_arn, + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + include_control_details: Optional[bool] = None, + include_null_and_empty: Optional[bool] = None, + include_partition_value: Optional[bool] = None, + include_table_alter_operations: Optional[bool] = None, + include_transaction_details: Optional[bool] = None, + message_format: Optional[str] = None, + partition_include_schema_table: Optional[bool] = None, + service_access_role_arn: Optional[str] = None, + stream_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if include_control_details is None and 'includeControlDetails' in kwargs: + include_control_details = kwargs['includeControlDetails'] + if include_control_details is None: + raise TypeError("Missing 'include_control_details' argument") + if include_null_and_empty is None and 'includeNullAndEmpty' in kwargs: + include_null_and_empty = kwargs['includeNullAndEmpty'] + if include_null_and_empty is None: + raise TypeError("Missing 'include_null_and_empty' argument") + if include_partition_value is None and 'includePartitionValue' in kwargs: + include_partition_value = kwargs['includePartitionValue'] + if include_partition_value is None: + raise TypeError("Missing 'include_partition_value' argument") + if include_table_alter_operations is None and 'includeTableAlterOperations' in kwargs: + include_table_alter_operations = kwargs['includeTableAlterOperations'] + if include_table_alter_operations is None: + raise TypeError("Missing 'include_table_alter_operations' argument") + if include_transaction_details is None and 'includeTransactionDetails' in kwargs: + include_transaction_details = kwargs['includeTransactionDetails'] + if include_transaction_details is None: + raise TypeError("Missing 'include_transaction_details' argument") + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + if message_format is None: + raise TypeError("Missing 'message_format' argument") + if partition_include_schema_table is None and 'partitionIncludeSchemaTable' in kwargs: + partition_include_schema_table = kwargs['partitionIncludeSchemaTable'] + if partition_include_schema_table is None: + raise TypeError("Missing 'partition_include_schema_table' argument") + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if service_access_role_arn is None: + raise TypeError("Missing 'service_access_role_arn' argument") + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("include_control_details", include_control_details) + _setter("include_null_and_empty", include_null_and_empty) + _setter("include_partition_value", include_partition_value) + _setter("include_table_alter_operations", include_table_alter_operations) + _setter("include_transaction_details", include_transaction_details) + _setter("message_format", message_format) + _setter("partition_include_schema_table", partition_include_schema_table) + _setter("service_access_role_arn", service_access_role_arn) + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="includeControlDetails") @@ -1783,12 +2454,57 @@ def __init__(__self__, *, docs_to_investigate: str, extract_doc_id: str, nesting_level: str): - pulumi.set(__self__, "auth_mechanism", auth_mechanism) - pulumi.set(__self__, "auth_source", auth_source) - pulumi.set(__self__, "auth_type", auth_type) - pulumi.set(__self__, "docs_to_investigate", docs_to_investigate) - pulumi.set(__self__, "extract_doc_id", extract_doc_id) - pulumi.set(__self__, "nesting_level", nesting_level) + GetEndpointMongodbSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_mechanism=auth_mechanism, + auth_source=auth_source, + auth_type=auth_type, + docs_to_investigate=docs_to_investigate, + extract_doc_id=extract_doc_id, + nesting_level=nesting_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_mechanism: Optional[str] = None, + auth_source: Optional[str] = None, + auth_type: Optional[str] = None, + docs_to_investigate: Optional[str] = None, + extract_doc_id: Optional[str] = None, + nesting_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_mechanism is None and 'authMechanism' in kwargs: + auth_mechanism = kwargs['authMechanism'] + if auth_mechanism is None: + raise TypeError("Missing 'auth_mechanism' argument") + if auth_source is None and 'authSource' in kwargs: + auth_source = kwargs['authSource'] + if auth_source is None: + raise TypeError("Missing 'auth_source' argument") + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if auth_type is None: + raise TypeError("Missing 'auth_type' argument") + if docs_to_investigate is None and 'docsToInvestigate' in kwargs: + docs_to_investigate = kwargs['docsToInvestigate'] + if docs_to_investigate is None: + raise TypeError("Missing 'docs_to_investigate' argument") + if extract_doc_id is None and 'extractDocId' in kwargs: + extract_doc_id = kwargs['extractDocId'] + if extract_doc_id is None: + raise TypeError("Missing 'extract_doc_id' argument") + if nesting_level is None and 'nestingLevel' in kwargs: + nesting_level = kwargs['nestingLevel'] + if nesting_level is None: + raise TypeError("Missing 'nesting_level' argument") + + _setter("auth_mechanism", auth_mechanism) + _setter("auth_source", auth_source) + _setter("auth_type", auth_type) + _setter("docs_to_investigate", docs_to_investigate) + _setter("extract_doc_id", extract_doc_id) + _setter("nesting_level", nesting_level) @property @pulumi.getter(name="authMechanism") @@ -1831,13 +2547,62 @@ def __init__(__self__, *, server_name: str, ssl_ca_certificate_arn: str, ssl_security_protocol: str): - pulumi.set(__self__, "auth_password", auth_password) - pulumi.set(__self__, "auth_type", auth_type) - pulumi.set(__self__, "auth_user_name", auth_user_name) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "server_name", server_name) - pulumi.set(__self__, "ssl_ca_certificate_arn", ssl_ca_certificate_arn) - pulumi.set(__self__, "ssl_security_protocol", ssl_security_protocol) + GetEndpointRedisSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_password=auth_password, + auth_type=auth_type, + auth_user_name=auth_user_name, + port=port, + server_name=server_name, + ssl_ca_certificate_arn=ssl_ca_certificate_arn, + ssl_security_protocol=ssl_security_protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_password: Optional[str] = None, + auth_type: Optional[str] = None, + auth_user_name: Optional[str] = None, + port: Optional[int] = None, + server_name: Optional[str] = None, + ssl_ca_certificate_arn: Optional[str] = None, + ssl_security_protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_password is None and 'authPassword' in kwargs: + auth_password = kwargs['authPassword'] + if auth_password is None: + raise TypeError("Missing 'auth_password' argument") + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if auth_type is None: + raise TypeError("Missing 'auth_type' argument") + if auth_user_name is None and 'authUserName' in kwargs: + auth_user_name = kwargs['authUserName'] + if auth_user_name is None: + raise TypeError("Missing 'auth_user_name' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if server_name is None and 'serverName' in kwargs: + server_name = kwargs['serverName'] + if server_name is None: + raise TypeError("Missing 'server_name' argument") + if ssl_ca_certificate_arn is None and 'sslCaCertificateArn' in kwargs: + ssl_ca_certificate_arn = kwargs['sslCaCertificateArn'] + if ssl_ca_certificate_arn is None: + raise TypeError("Missing 'ssl_ca_certificate_arn' argument") + if ssl_security_protocol is None and 'sslSecurityProtocol' in kwargs: + ssl_security_protocol = kwargs['sslSecurityProtocol'] + if ssl_security_protocol is None: + raise TypeError("Missing 'ssl_security_protocol' argument") + + _setter("auth_password", auth_password) + _setter("auth_type", auth_type) + _setter("auth_user_name", auth_user_name) + _setter("port", port) + _setter("server_name", server_name) + _setter("ssl_ca_certificate_arn", ssl_ca_certificate_arn) + _setter("ssl_security_protocol", ssl_security_protocol) @property @pulumi.getter(name="authPassword") @@ -1883,11 +2648,50 @@ def __init__(__self__, *, encryption_mode: str, server_side_encryption_kms_key_id: str, service_access_role_arn: str): - pulumi.set(__self__, "bucket_folder", bucket_folder) - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "encryption_mode", encryption_mode) - pulumi.set(__self__, "server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + GetEndpointRedshiftSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_folder=bucket_folder, + bucket_name=bucket_name, + encryption_mode=encryption_mode, + server_side_encryption_kms_key_id=server_side_encryption_kms_key_id, + service_access_role_arn=service_access_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_folder: Optional[str] = None, + bucket_name: Optional[str] = None, + encryption_mode: Optional[str] = None, + server_side_encryption_kms_key_id: Optional[str] = None, + service_access_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_folder is None and 'bucketFolder' in kwargs: + bucket_folder = kwargs['bucketFolder'] + if bucket_folder is None: + raise TypeError("Missing 'bucket_folder' argument") + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if encryption_mode is None: + raise TypeError("Missing 'encryption_mode' argument") + if server_side_encryption_kms_key_id is None and 'serverSideEncryptionKmsKeyId' in kwargs: + server_side_encryption_kms_key_id = kwargs['serverSideEncryptionKmsKeyId'] + if server_side_encryption_kms_key_id is None: + raise TypeError("Missing 'server_side_encryption_kms_key_id' argument") + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if service_access_role_arn is None: + raise TypeError("Missing 'service_access_role_arn' argument") + + _setter("bucket_folder", bucket_folder) + _setter("bucket_name", bucket_name) + _setter("encryption_mode", encryption_mode) + _setter("server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) + _setter("service_access_role_arn", service_access_role_arn) @property @pulumi.getter(name="bucketFolder") @@ -1957,45 +2761,286 @@ def __init__(__self__, *, timestamp_column_name: str, use_csv_no_sup_value: bool, use_task_start_time_for_full_load_timestamp: bool): - pulumi.set(__self__, "add_column_name", add_column_name) - pulumi.set(__self__, "bucket_folder", bucket_folder) - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "canned_acl_for_objects", canned_acl_for_objects) - pulumi.set(__self__, "cdc_inserts_and_updates", cdc_inserts_and_updates) - pulumi.set(__self__, "cdc_inserts_only", cdc_inserts_only) - pulumi.set(__self__, "cdc_max_batch_interval", cdc_max_batch_interval) - pulumi.set(__self__, "cdc_min_file_size", cdc_min_file_size) - pulumi.set(__self__, "cdc_path", cdc_path) - pulumi.set(__self__, "compression_type", compression_type) - pulumi.set(__self__, "csv_delimiter", csv_delimiter) - pulumi.set(__self__, "csv_no_sup_value", csv_no_sup_value) - pulumi.set(__self__, "csv_null_value", csv_null_value) - pulumi.set(__self__, "csv_row_delimiter", csv_row_delimiter) - pulumi.set(__self__, "data_format", data_format) - pulumi.set(__self__, "data_page_size", data_page_size) - pulumi.set(__self__, "date_partition_delimiter", date_partition_delimiter) - pulumi.set(__self__, "date_partition_enabled", date_partition_enabled) - pulumi.set(__self__, "date_partition_sequence", date_partition_sequence) - pulumi.set(__self__, "dict_page_size_limit", dict_page_size_limit) - pulumi.set(__self__, "enable_statistics", enable_statistics) - pulumi.set(__self__, "encoding_type", encoding_type) - pulumi.set(__self__, "encryption_mode", encryption_mode) - pulumi.set(__self__, "external_table_definition", external_table_definition) - pulumi.set(__self__, "glue_catalog_generation", glue_catalog_generation) - pulumi.set(__self__, "ignore_header_rows", ignore_header_rows) - pulumi.set(__self__, "ignore_headers_row", ignore_headers_row) - pulumi.set(__self__, "include_op_for_full_load", include_op_for_full_load) - pulumi.set(__self__, "max_file_size", max_file_size) - pulumi.set(__self__, "parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) - pulumi.set(__self__, "parquet_version", parquet_version) - pulumi.set(__self__, "preserve_transactions", preserve_transactions) - pulumi.set(__self__, "rfc4180", rfc4180) - pulumi.set(__self__, "row_group_length", row_group_length) - pulumi.set(__self__, "server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) - pulumi.set(__self__, "timestamp_column_name", timestamp_column_name) - pulumi.set(__self__, "use_csv_no_sup_value", use_csv_no_sup_value) - pulumi.set(__self__, "use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) + GetEndpointS3SettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + add_column_name=add_column_name, + bucket_folder=bucket_folder, + bucket_name=bucket_name, + canned_acl_for_objects=canned_acl_for_objects, + cdc_inserts_and_updates=cdc_inserts_and_updates, + cdc_inserts_only=cdc_inserts_only, + cdc_max_batch_interval=cdc_max_batch_interval, + cdc_min_file_size=cdc_min_file_size, + cdc_path=cdc_path, + compression_type=compression_type, + csv_delimiter=csv_delimiter, + csv_no_sup_value=csv_no_sup_value, + csv_null_value=csv_null_value, + csv_row_delimiter=csv_row_delimiter, + data_format=data_format, + data_page_size=data_page_size, + date_partition_delimiter=date_partition_delimiter, + date_partition_enabled=date_partition_enabled, + date_partition_sequence=date_partition_sequence, + dict_page_size_limit=dict_page_size_limit, + enable_statistics=enable_statistics, + encoding_type=encoding_type, + encryption_mode=encryption_mode, + external_table_definition=external_table_definition, + glue_catalog_generation=glue_catalog_generation, + ignore_header_rows=ignore_header_rows, + ignore_headers_row=ignore_headers_row, + include_op_for_full_load=include_op_for_full_load, + max_file_size=max_file_size, + parquet_timestamp_in_millisecond=parquet_timestamp_in_millisecond, + parquet_version=parquet_version, + preserve_transactions=preserve_transactions, + rfc4180=rfc4180, + row_group_length=row_group_length, + server_side_encryption_kms_key_id=server_side_encryption_kms_key_id, + service_access_role_arn=service_access_role_arn, + timestamp_column_name=timestamp_column_name, + use_csv_no_sup_value=use_csv_no_sup_value, + use_task_start_time_for_full_load_timestamp=use_task_start_time_for_full_load_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + add_column_name: Optional[bool] = None, + bucket_folder: Optional[str] = None, + bucket_name: Optional[str] = None, + canned_acl_for_objects: Optional[str] = None, + cdc_inserts_and_updates: Optional[bool] = None, + cdc_inserts_only: Optional[bool] = None, + cdc_max_batch_interval: Optional[int] = None, + cdc_min_file_size: Optional[int] = None, + cdc_path: Optional[str] = None, + compression_type: Optional[str] = None, + csv_delimiter: Optional[str] = None, + csv_no_sup_value: Optional[str] = None, + csv_null_value: Optional[str] = None, + csv_row_delimiter: Optional[str] = None, + data_format: Optional[str] = None, + data_page_size: Optional[int] = None, + date_partition_delimiter: Optional[str] = None, + date_partition_enabled: Optional[bool] = None, + date_partition_sequence: Optional[str] = None, + dict_page_size_limit: Optional[int] = None, + enable_statistics: Optional[bool] = None, + encoding_type: Optional[str] = None, + encryption_mode: Optional[str] = None, + external_table_definition: Optional[str] = None, + glue_catalog_generation: Optional[bool] = None, + ignore_header_rows: Optional[int] = None, + ignore_headers_row: Optional[int] = None, + include_op_for_full_load: Optional[bool] = None, + max_file_size: Optional[int] = None, + parquet_timestamp_in_millisecond: Optional[bool] = None, + parquet_version: Optional[str] = None, + preserve_transactions: Optional[bool] = None, + rfc4180: Optional[bool] = None, + row_group_length: Optional[int] = None, + server_side_encryption_kms_key_id: Optional[str] = None, + service_access_role_arn: Optional[str] = None, + timestamp_column_name: Optional[str] = None, + use_csv_no_sup_value: Optional[bool] = None, + use_task_start_time_for_full_load_timestamp: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if add_column_name is None and 'addColumnName' in kwargs: + add_column_name = kwargs['addColumnName'] + if add_column_name is None: + raise TypeError("Missing 'add_column_name' argument") + if bucket_folder is None and 'bucketFolder' in kwargs: + bucket_folder = kwargs['bucketFolder'] + if bucket_folder is None: + raise TypeError("Missing 'bucket_folder' argument") + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if canned_acl_for_objects is None and 'cannedAclForObjects' in kwargs: + canned_acl_for_objects = kwargs['cannedAclForObjects'] + if canned_acl_for_objects is None: + raise TypeError("Missing 'canned_acl_for_objects' argument") + if cdc_inserts_and_updates is None and 'cdcInsertsAndUpdates' in kwargs: + cdc_inserts_and_updates = kwargs['cdcInsertsAndUpdates'] + if cdc_inserts_and_updates is None: + raise TypeError("Missing 'cdc_inserts_and_updates' argument") + if cdc_inserts_only is None and 'cdcInsertsOnly' in kwargs: + cdc_inserts_only = kwargs['cdcInsertsOnly'] + if cdc_inserts_only is None: + raise TypeError("Missing 'cdc_inserts_only' argument") + if cdc_max_batch_interval is None and 'cdcMaxBatchInterval' in kwargs: + cdc_max_batch_interval = kwargs['cdcMaxBatchInterval'] + if cdc_max_batch_interval is None: + raise TypeError("Missing 'cdc_max_batch_interval' argument") + if cdc_min_file_size is None and 'cdcMinFileSize' in kwargs: + cdc_min_file_size = kwargs['cdcMinFileSize'] + if cdc_min_file_size is None: + raise TypeError("Missing 'cdc_min_file_size' argument") + if cdc_path is None and 'cdcPath' in kwargs: + cdc_path = kwargs['cdcPath'] + if cdc_path is None: + raise TypeError("Missing 'cdc_path' argument") + if compression_type is None and 'compressionType' in kwargs: + compression_type = kwargs['compressionType'] + if compression_type is None: + raise TypeError("Missing 'compression_type' argument") + if csv_delimiter is None and 'csvDelimiter' in kwargs: + csv_delimiter = kwargs['csvDelimiter'] + if csv_delimiter is None: + raise TypeError("Missing 'csv_delimiter' argument") + if csv_no_sup_value is None and 'csvNoSupValue' in kwargs: + csv_no_sup_value = kwargs['csvNoSupValue'] + if csv_no_sup_value is None: + raise TypeError("Missing 'csv_no_sup_value' argument") + if csv_null_value is None and 'csvNullValue' in kwargs: + csv_null_value = kwargs['csvNullValue'] + if csv_null_value is None: + raise TypeError("Missing 'csv_null_value' argument") + if csv_row_delimiter is None and 'csvRowDelimiter' in kwargs: + csv_row_delimiter = kwargs['csvRowDelimiter'] + if csv_row_delimiter is None: + raise TypeError("Missing 'csv_row_delimiter' argument") + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if data_format is None: + raise TypeError("Missing 'data_format' argument") + if data_page_size is None and 'dataPageSize' in kwargs: + data_page_size = kwargs['dataPageSize'] + if data_page_size is None: + raise TypeError("Missing 'data_page_size' argument") + if date_partition_delimiter is None and 'datePartitionDelimiter' in kwargs: + date_partition_delimiter = kwargs['datePartitionDelimiter'] + if date_partition_delimiter is None: + raise TypeError("Missing 'date_partition_delimiter' argument") + if date_partition_enabled is None and 'datePartitionEnabled' in kwargs: + date_partition_enabled = kwargs['datePartitionEnabled'] + if date_partition_enabled is None: + raise TypeError("Missing 'date_partition_enabled' argument") + if date_partition_sequence is None and 'datePartitionSequence' in kwargs: + date_partition_sequence = kwargs['datePartitionSequence'] + if date_partition_sequence is None: + raise TypeError("Missing 'date_partition_sequence' argument") + if dict_page_size_limit is None and 'dictPageSizeLimit' in kwargs: + dict_page_size_limit = kwargs['dictPageSizeLimit'] + if dict_page_size_limit is None: + raise TypeError("Missing 'dict_page_size_limit' argument") + if enable_statistics is None and 'enableStatistics' in kwargs: + enable_statistics = kwargs['enableStatistics'] + if enable_statistics is None: + raise TypeError("Missing 'enable_statistics' argument") + if encoding_type is None and 'encodingType' in kwargs: + encoding_type = kwargs['encodingType'] + if encoding_type is None: + raise TypeError("Missing 'encoding_type' argument") + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if encryption_mode is None: + raise TypeError("Missing 'encryption_mode' argument") + if external_table_definition is None and 'externalTableDefinition' in kwargs: + external_table_definition = kwargs['externalTableDefinition'] + if external_table_definition is None: + raise TypeError("Missing 'external_table_definition' argument") + if glue_catalog_generation is None and 'glueCatalogGeneration' in kwargs: + glue_catalog_generation = kwargs['glueCatalogGeneration'] + if glue_catalog_generation is None: + raise TypeError("Missing 'glue_catalog_generation' argument") + if ignore_header_rows is None and 'ignoreHeaderRows' in kwargs: + ignore_header_rows = kwargs['ignoreHeaderRows'] + if ignore_header_rows is None: + raise TypeError("Missing 'ignore_header_rows' argument") + if ignore_headers_row is None and 'ignoreHeadersRow' in kwargs: + ignore_headers_row = kwargs['ignoreHeadersRow'] + if ignore_headers_row is None: + raise TypeError("Missing 'ignore_headers_row' argument") + if include_op_for_full_load is None and 'includeOpForFullLoad' in kwargs: + include_op_for_full_load = kwargs['includeOpForFullLoad'] + if include_op_for_full_load is None: + raise TypeError("Missing 'include_op_for_full_load' argument") + if max_file_size is None and 'maxFileSize' in kwargs: + max_file_size = kwargs['maxFileSize'] + if max_file_size is None: + raise TypeError("Missing 'max_file_size' argument") + if parquet_timestamp_in_millisecond is None and 'parquetTimestampInMillisecond' in kwargs: + parquet_timestamp_in_millisecond = kwargs['parquetTimestampInMillisecond'] + if parquet_timestamp_in_millisecond is None: + raise TypeError("Missing 'parquet_timestamp_in_millisecond' argument") + if parquet_version is None and 'parquetVersion' in kwargs: + parquet_version = kwargs['parquetVersion'] + if parquet_version is None: + raise TypeError("Missing 'parquet_version' argument") + if preserve_transactions is None and 'preserveTransactions' in kwargs: + preserve_transactions = kwargs['preserveTransactions'] + if preserve_transactions is None: + raise TypeError("Missing 'preserve_transactions' argument") + if rfc4180 is None: + raise TypeError("Missing 'rfc4180' argument") + if row_group_length is None and 'rowGroupLength' in kwargs: + row_group_length = kwargs['rowGroupLength'] + if row_group_length is None: + raise TypeError("Missing 'row_group_length' argument") + if server_side_encryption_kms_key_id is None and 'serverSideEncryptionKmsKeyId' in kwargs: + server_side_encryption_kms_key_id = kwargs['serverSideEncryptionKmsKeyId'] + if server_side_encryption_kms_key_id is None: + raise TypeError("Missing 'server_side_encryption_kms_key_id' argument") + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if service_access_role_arn is None: + raise TypeError("Missing 'service_access_role_arn' argument") + if timestamp_column_name is None and 'timestampColumnName' in kwargs: + timestamp_column_name = kwargs['timestampColumnName'] + if timestamp_column_name is None: + raise TypeError("Missing 'timestamp_column_name' argument") + if use_csv_no_sup_value is None and 'useCsvNoSupValue' in kwargs: + use_csv_no_sup_value = kwargs['useCsvNoSupValue'] + if use_csv_no_sup_value is None: + raise TypeError("Missing 'use_csv_no_sup_value' argument") + if use_task_start_time_for_full_load_timestamp is None and 'useTaskStartTimeForFullLoadTimestamp' in kwargs: + use_task_start_time_for_full_load_timestamp = kwargs['useTaskStartTimeForFullLoadTimestamp'] + if use_task_start_time_for_full_load_timestamp is None: + raise TypeError("Missing 'use_task_start_time_for_full_load_timestamp' argument") + + _setter("add_column_name", add_column_name) + _setter("bucket_folder", bucket_folder) + _setter("bucket_name", bucket_name) + _setter("canned_acl_for_objects", canned_acl_for_objects) + _setter("cdc_inserts_and_updates", cdc_inserts_and_updates) + _setter("cdc_inserts_only", cdc_inserts_only) + _setter("cdc_max_batch_interval", cdc_max_batch_interval) + _setter("cdc_min_file_size", cdc_min_file_size) + _setter("cdc_path", cdc_path) + _setter("compression_type", compression_type) + _setter("csv_delimiter", csv_delimiter) + _setter("csv_no_sup_value", csv_no_sup_value) + _setter("csv_null_value", csv_null_value) + _setter("csv_row_delimiter", csv_row_delimiter) + _setter("data_format", data_format) + _setter("data_page_size", data_page_size) + _setter("date_partition_delimiter", date_partition_delimiter) + _setter("date_partition_enabled", date_partition_enabled) + _setter("date_partition_sequence", date_partition_sequence) + _setter("dict_page_size_limit", dict_page_size_limit) + _setter("enable_statistics", enable_statistics) + _setter("encoding_type", encoding_type) + _setter("encryption_mode", encryption_mode) + _setter("external_table_definition", external_table_definition) + _setter("glue_catalog_generation", glue_catalog_generation) + _setter("ignore_header_rows", ignore_header_rows) + _setter("ignore_headers_row", ignore_headers_row) + _setter("include_op_for_full_load", include_op_for_full_load) + _setter("max_file_size", max_file_size) + _setter("parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) + _setter("parquet_version", parquet_version) + _setter("preserve_transactions", preserve_transactions) + _setter("rfc4180", rfc4180) + _setter("row_group_length", row_group_length) + _setter("server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) + _setter("service_access_role_arn", service_access_role_arn) + _setter("timestamp_column_name", timestamp_column_name) + _setter("use_csv_no_sup_value", use_csv_no_sup_value) + _setter("use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) @property @pulumi.getter(name="addColumnName") diff --git a/sdk/python/pulumi_aws/dms/replication_config.py b/sdk/python/pulumi_aws/dms/replication_config.py index bbd0717497a..257bcaf3f60 100644 --- a/sdk/python/pulumi_aws/dms/replication_config.py +++ b/sdk/python/pulumi_aws/dms/replication_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,22 +41,85 @@ def __init__(__self__, *, :param pulumi.Input[str] supplemental_settings: JSON settings for specifying supplemental data. For more information see [Specifying supplemental data for task settings](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html) :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "compute_config", compute_config) - pulumi.set(__self__, "replication_config_identifier", replication_config_identifier) - pulumi.set(__self__, "replication_type", replication_type) - pulumi.set(__self__, "source_endpoint_arn", source_endpoint_arn) - pulumi.set(__self__, "table_mappings", table_mappings) - pulumi.set(__self__, "target_endpoint_arn", target_endpoint_arn) + ReplicationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_config=compute_config, + replication_config_identifier=replication_config_identifier, + replication_type=replication_type, + source_endpoint_arn=source_endpoint_arn, + table_mappings=table_mappings, + target_endpoint_arn=target_endpoint_arn, + replication_settings=replication_settings, + resource_identifier=resource_identifier, + start_replication=start_replication, + supplemental_settings=supplemental_settings, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_config: Optional[pulumi.Input['ReplicationConfigComputeConfigArgs']] = None, + replication_config_identifier: Optional[pulumi.Input[str]] = None, + replication_type: Optional[pulumi.Input[str]] = None, + source_endpoint_arn: Optional[pulumi.Input[str]] = None, + table_mappings: Optional[pulumi.Input[str]] = None, + target_endpoint_arn: Optional[pulumi.Input[str]] = None, + replication_settings: Optional[pulumi.Input[str]] = None, + resource_identifier: Optional[pulumi.Input[str]] = None, + start_replication: Optional[pulumi.Input[bool]] = None, + supplemental_settings: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_config is None and 'computeConfig' in kwargs: + compute_config = kwargs['computeConfig'] + if compute_config is None: + raise TypeError("Missing 'compute_config' argument") + if replication_config_identifier is None and 'replicationConfigIdentifier' in kwargs: + replication_config_identifier = kwargs['replicationConfigIdentifier'] + if replication_config_identifier is None: + raise TypeError("Missing 'replication_config_identifier' argument") + if replication_type is None and 'replicationType' in kwargs: + replication_type = kwargs['replicationType'] + if replication_type is None: + raise TypeError("Missing 'replication_type' argument") + if source_endpoint_arn is None and 'sourceEndpointArn' in kwargs: + source_endpoint_arn = kwargs['sourceEndpointArn'] + if source_endpoint_arn is None: + raise TypeError("Missing 'source_endpoint_arn' argument") + if table_mappings is None and 'tableMappings' in kwargs: + table_mappings = kwargs['tableMappings'] + if table_mappings is None: + raise TypeError("Missing 'table_mappings' argument") + if target_endpoint_arn is None and 'targetEndpointArn' in kwargs: + target_endpoint_arn = kwargs['targetEndpointArn'] + if target_endpoint_arn is None: + raise TypeError("Missing 'target_endpoint_arn' argument") + if replication_settings is None and 'replicationSettings' in kwargs: + replication_settings = kwargs['replicationSettings'] + if resource_identifier is None and 'resourceIdentifier' in kwargs: + resource_identifier = kwargs['resourceIdentifier'] + if start_replication is None and 'startReplication' in kwargs: + start_replication = kwargs['startReplication'] + if supplemental_settings is None and 'supplementalSettings' in kwargs: + supplemental_settings = kwargs['supplementalSettings'] + + _setter("compute_config", compute_config) + _setter("replication_config_identifier", replication_config_identifier) + _setter("replication_type", replication_type) + _setter("source_endpoint_arn", source_endpoint_arn) + _setter("table_mappings", table_mappings) + _setter("target_endpoint_arn", target_endpoint_arn) if replication_settings is not None: - pulumi.set(__self__, "replication_settings", replication_settings) + _setter("replication_settings", replication_settings) if resource_identifier is not None: - pulumi.set(__self__, "resource_identifier", resource_identifier) + _setter("resource_identifier", resource_identifier) if start_replication is not None: - pulumi.set(__self__, "start_replication", start_replication) + _setter("start_replication", start_replication) if supplemental_settings is not None: - pulumi.set(__self__, "supplemental_settings", supplemental_settings) + _setter("supplemental_settings", supplemental_settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="computeConfig") @@ -223,35 +286,92 @@ def __init__(__self__, *, :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] target_endpoint_arn: The Amazon Resource Name (ARN) string that uniquely identifies the target endpoint. """ + _ReplicationConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + compute_config=compute_config, + replication_config_identifier=replication_config_identifier, + replication_settings=replication_settings, + replication_type=replication_type, + resource_identifier=resource_identifier, + source_endpoint_arn=source_endpoint_arn, + start_replication=start_replication, + supplemental_settings=supplemental_settings, + table_mappings=table_mappings, + tags=tags, + tags_all=tags_all, + target_endpoint_arn=target_endpoint_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + compute_config: Optional[pulumi.Input['ReplicationConfigComputeConfigArgs']] = None, + replication_config_identifier: Optional[pulumi.Input[str]] = None, + replication_settings: Optional[pulumi.Input[str]] = None, + replication_type: Optional[pulumi.Input[str]] = None, + resource_identifier: Optional[pulumi.Input[str]] = None, + source_endpoint_arn: Optional[pulumi.Input[str]] = None, + start_replication: Optional[pulumi.Input[bool]] = None, + supplemental_settings: Optional[pulumi.Input[str]] = None, + table_mappings: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_endpoint_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_config is None and 'computeConfig' in kwargs: + compute_config = kwargs['computeConfig'] + if replication_config_identifier is None and 'replicationConfigIdentifier' in kwargs: + replication_config_identifier = kwargs['replicationConfigIdentifier'] + if replication_settings is None and 'replicationSettings' in kwargs: + replication_settings = kwargs['replicationSettings'] + if replication_type is None and 'replicationType' in kwargs: + replication_type = kwargs['replicationType'] + if resource_identifier is None and 'resourceIdentifier' in kwargs: + resource_identifier = kwargs['resourceIdentifier'] + if source_endpoint_arn is None and 'sourceEndpointArn' in kwargs: + source_endpoint_arn = kwargs['sourceEndpointArn'] + if start_replication is None and 'startReplication' in kwargs: + start_replication = kwargs['startReplication'] + if supplemental_settings is None and 'supplementalSettings' in kwargs: + supplemental_settings = kwargs['supplementalSettings'] + if table_mappings is None and 'tableMappings' in kwargs: + table_mappings = kwargs['tableMappings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_endpoint_arn is None and 'targetEndpointArn' in kwargs: + target_endpoint_arn = kwargs['targetEndpointArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if compute_config is not None: - pulumi.set(__self__, "compute_config", compute_config) + _setter("compute_config", compute_config) if replication_config_identifier is not None: - pulumi.set(__self__, "replication_config_identifier", replication_config_identifier) + _setter("replication_config_identifier", replication_config_identifier) if replication_settings is not None: - pulumi.set(__self__, "replication_settings", replication_settings) + _setter("replication_settings", replication_settings) if replication_type is not None: - pulumi.set(__self__, "replication_type", replication_type) + _setter("replication_type", replication_type) if resource_identifier is not None: - pulumi.set(__self__, "resource_identifier", resource_identifier) + _setter("resource_identifier", resource_identifier) if source_endpoint_arn is not None: - pulumi.set(__self__, "source_endpoint_arn", source_endpoint_arn) + _setter("source_endpoint_arn", source_endpoint_arn) if start_replication is not None: - pulumi.set(__self__, "start_replication", start_replication) + _setter("start_replication", start_replication) if supplemental_settings is not None: - pulumi.set(__self__, "supplemental_settings", supplemental_settings) + _setter("supplemental_settings", supplemental_settings) if table_mappings is not None: - pulumi.set(__self__, "table_mappings", table_mappings) + _setter("table_mappings", table_mappings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_endpoint_arn is not None: - pulumi.set(__self__, "target_endpoint_arn", target_endpoint_arn) + _setter("target_endpoint_arn", target_endpoint_arn) @property @pulumi.getter @@ -536,6 +656,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicationConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -561,6 +685,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ReplicationConfigArgs.__new__(ReplicationConfigArgs) + compute_config = _utilities.configure(compute_config, ReplicationConfigComputeConfigArgs, True) if compute_config is None and not opts.urn: raise TypeError("Missing required property 'compute_config'") __props__.__dict__["compute_config"] = compute_config diff --git a/sdk/python/pulumi_aws/dms/replication_instance.py b/sdk/python/pulumi_aws/dms/replication_instance.py index a03405d08cb..e1c14e0d0ba 100644 --- a/sdk/python/pulumi_aws/dms/replication_instance.py +++ b/sdk/python/pulumi_aws/dms/replication_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ReplicationInstanceArgs', 'ReplicationInstance'] @@ -59,36 +59,111 @@ def __init__(__self__, *, :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[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of VPC security group IDs to be used with the replication instance. The VPC security groups must work with the VPC containing the replication instance. """ - pulumi.set(__self__, "replication_instance_class", replication_instance_class) - pulumi.set(__self__, "replication_instance_id", replication_instance_id) + ReplicationInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + replication_instance_class=replication_instance_class, + replication_instance_id=replication_instance_id, + allocated_storage=allocated_storage, + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + engine_version=engine_version, + kms_key_arn=kms_key_arn, + multi_az=multi_az, + network_type=network_type, + preferred_maintenance_window=preferred_maintenance_window, + publicly_accessible=publicly_accessible, + replication_subnet_group_id=replication_subnet_group_id, + tags=tags, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replication_instance_class: Optional[pulumi.Input[str]] = None, + replication_instance_id: Optional[pulumi.Input[str]] = None, + allocated_storage: Optional[pulumi.Input[int]] = None, + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + multi_az: Optional[pulumi.Input[bool]] = None, + network_type: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + replication_subnet_group_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replication_instance_class is None and 'replicationInstanceClass' in kwargs: + replication_instance_class = kwargs['replicationInstanceClass'] + if replication_instance_class is None: + raise TypeError("Missing 'replication_instance_class' argument") + if replication_instance_id is None and 'replicationInstanceId' in kwargs: + replication_instance_id = kwargs['replicationInstanceId'] + if replication_instance_id is None: + raise TypeError("Missing 'replication_instance_id' argument") + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if multi_az is None and 'multiAz' in kwargs: + multi_az = kwargs['multiAz'] + if network_type is None and 'networkType' in kwargs: + network_type = kwargs['networkType'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if replication_subnet_group_id is None and 'replicationSubnetGroupId' in kwargs: + replication_subnet_group_id = kwargs['replicationSubnetGroupId'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("replication_instance_class", replication_instance_class) + _setter("replication_instance_id", replication_instance_id) if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if multi_az is not None: - pulumi.set(__self__, "multi_az", multi_az) + _setter("multi_az", multi_az) if network_type is not None: - pulumi.set(__self__, "network_type", network_type) + _setter("network_type", network_type) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if replication_subnet_group_id is not None: - pulumi.set(__self__, "replication_subnet_group_id", replication_subnet_group_id) + _setter("replication_subnet_group_id", replication_subnet_group_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="replicationInstanceClass") @@ -349,49 +424,136 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of VPC security group IDs to be used with the replication instance. The VPC security groups must work with the VPC containing the replication instance. """ + _ReplicationInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocated_storage=allocated_storage, + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + engine_version=engine_version, + kms_key_arn=kms_key_arn, + multi_az=multi_az, + network_type=network_type, + preferred_maintenance_window=preferred_maintenance_window, + publicly_accessible=publicly_accessible, + replication_instance_arn=replication_instance_arn, + replication_instance_class=replication_instance_class, + replication_instance_id=replication_instance_id, + replication_instance_private_ips=replication_instance_private_ips, + replication_instance_public_ips=replication_instance_public_ips, + replication_subnet_group_id=replication_subnet_group_id, + tags=tags, + tags_all=tags_all, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocated_storage: Optional[pulumi.Input[int]] = None, + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + multi_az: Optional[pulumi.Input[bool]] = None, + network_type: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + replication_instance_arn: Optional[pulumi.Input[str]] = None, + replication_instance_class: Optional[pulumi.Input[str]] = None, + replication_instance_id: Optional[pulumi.Input[str]] = None, + replication_instance_private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + replication_instance_public_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + replication_subnet_group_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if multi_az is None and 'multiAz' in kwargs: + multi_az = kwargs['multiAz'] + if network_type is None and 'networkType' in kwargs: + network_type = kwargs['networkType'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if replication_instance_arn is None and 'replicationInstanceArn' in kwargs: + replication_instance_arn = kwargs['replicationInstanceArn'] + if replication_instance_class is None and 'replicationInstanceClass' in kwargs: + replication_instance_class = kwargs['replicationInstanceClass'] + if replication_instance_id is None and 'replicationInstanceId' in kwargs: + replication_instance_id = kwargs['replicationInstanceId'] + if replication_instance_private_ips is None and 'replicationInstancePrivateIps' in kwargs: + replication_instance_private_ips = kwargs['replicationInstancePrivateIps'] + if replication_instance_public_ips is None and 'replicationInstancePublicIps' in kwargs: + replication_instance_public_ips = kwargs['replicationInstancePublicIps'] + if replication_subnet_group_id is None and 'replicationSubnetGroupId' in kwargs: + replication_subnet_group_id = kwargs['replicationSubnetGroupId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if multi_az is not None: - pulumi.set(__self__, "multi_az", multi_az) + _setter("multi_az", multi_az) if network_type is not None: - pulumi.set(__self__, "network_type", network_type) + _setter("network_type", network_type) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if replication_instance_arn is not None: - pulumi.set(__self__, "replication_instance_arn", replication_instance_arn) + _setter("replication_instance_arn", replication_instance_arn) if replication_instance_class is not None: - pulumi.set(__self__, "replication_instance_class", replication_instance_class) + _setter("replication_instance_class", replication_instance_class) if replication_instance_id is not None: - pulumi.set(__self__, "replication_instance_id", replication_instance_id) + _setter("replication_instance_id", replication_instance_id) if replication_instance_private_ips is not None: - pulumi.set(__self__, "replication_instance_private_ips", replication_instance_private_ips) + _setter("replication_instance_private_ips", replication_instance_private_ips) if replication_instance_public_ips is not None: - pulumi.set(__self__, "replication_instance_public_ips", replication_instance_public_ips) + _setter("replication_instance_public_ips", replication_instance_public_ips) if replication_subnet_group_id is not None: - pulumi.set(__self__, "replication_subnet_group_id", replication_subnet_group_id) + _setter("replication_subnet_group_id", replication_subnet_group_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="allocatedStorage") @@ -840,6 +1002,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicationInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dms/replication_subnet_group.py b/sdk/python/pulumi_aws/dms/replication_subnet_group.py index 19a11ef7429..6cd9de51a1d 100644 --- a/sdk/python/pulumi_aws/dms/replication_subnet_group.py +++ b/sdk/python/pulumi_aws/dms/replication_subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ReplicationSubnetGroupArgs', 'ReplicationSubnetGroup'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of at least 2 EC2 subnet IDs for the subnet group. The subnets must cover at least 2 availability zones. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "replication_subnet_group_description", replication_subnet_group_description) - pulumi.set(__self__, "replication_subnet_group_id", replication_subnet_group_id) - pulumi.set(__self__, "subnet_ids", subnet_ids) + ReplicationSubnetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + replication_subnet_group_description=replication_subnet_group_description, + replication_subnet_group_id=replication_subnet_group_id, + subnet_ids=subnet_ids, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replication_subnet_group_description: Optional[pulumi.Input[str]] = None, + replication_subnet_group_id: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replication_subnet_group_description is None and 'replicationSubnetGroupDescription' in kwargs: + replication_subnet_group_description = kwargs['replicationSubnetGroupDescription'] + if replication_subnet_group_description is None: + raise TypeError("Missing 'replication_subnet_group_description' argument") + if replication_subnet_group_id is None and 'replicationSubnetGroupId' in kwargs: + replication_subnet_group_id = kwargs['replicationSubnetGroupId'] + if replication_subnet_group_id is None: + raise TypeError("Missing 'replication_subnet_group_id' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + + _setter("replication_subnet_group_description", replication_subnet_group_description) + _setter("replication_subnet_group_id", replication_subnet_group_id) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="replicationSubnetGroupDescription") @@ -99,23 +128,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The ID of the VPC the subnet group is in. """ + _ReplicationSubnetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + replication_subnet_group_arn=replication_subnet_group_arn, + replication_subnet_group_description=replication_subnet_group_description, + replication_subnet_group_id=replication_subnet_group_id, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replication_subnet_group_arn: Optional[pulumi.Input[str]] = None, + replication_subnet_group_description: Optional[pulumi.Input[str]] = None, + replication_subnet_group_id: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replication_subnet_group_arn is None and 'replicationSubnetGroupArn' in kwargs: + replication_subnet_group_arn = kwargs['replicationSubnetGroupArn'] + if replication_subnet_group_description is None and 'replicationSubnetGroupDescription' in kwargs: + replication_subnet_group_description = kwargs['replicationSubnetGroupDescription'] + if replication_subnet_group_id is None and 'replicationSubnetGroupId' in kwargs: + replication_subnet_group_id = kwargs['replicationSubnetGroupId'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if replication_subnet_group_arn is not None: - pulumi.set(__self__, "replication_subnet_group_arn", replication_subnet_group_arn) + _setter("replication_subnet_group_arn", replication_subnet_group_arn) if replication_subnet_group_description is not None: - pulumi.set(__self__, "replication_subnet_group_description", replication_subnet_group_description) + _setter("replication_subnet_group_description", replication_subnet_group_description) if replication_subnet_group_id is not None: - pulumi.set(__self__, "replication_subnet_group_id", replication_subnet_group_id) + _setter("replication_subnet_group_id", replication_subnet_group_id) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="replicationSubnetGroupArn") @@ -373,6 +437,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicationSubnetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dms/replication_task.py b/sdk/python/pulumi_aws/dms/replication_task.py index eb552238826..be8c55ae6d6 100644 --- a/sdk/python/pulumi_aws/dms/replication_task.py +++ b/sdk/python/pulumi_aws/dms/replication_task.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ReplicationTaskArgs', 'ReplicationTask'] @@ -44,22 +44,85 @@ def __init__(__self__, *, :param pulumi.Input[bool] start_replication_task: Whether to run or stop the replication task. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "migration_type", migration_type) - pulumi.set(__self__, "replication_instance_arn", replication_instance_arn) - pulumi.set(__self__, "replication_task_id", replication_task_id) - pulumi.set(__self__, "source_endpoint_arn", source_endpoint_arn) - pulumi.set(__self__, "table_mappings", table_mappings) - pulumi.set(__self__, "target_endpoint_arn", target_endpoint_arn) + ReplicationTaskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + migration_type=migration_type, + replication_instance_arn=replication_instance_arn, + replication_task_id=replication_task_id, + source_endpoint_arn=source_endpoint_arn, + table_mappings=table_mappings, + target_endpoint_arn=target_endpoint_arn, + cdc_start_position=cdc_start_position, + cdc_start_time=cdc_start_time, + replication_task_settings=replication_task_settings, + start_replication_task=start_replication_task, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + migration_type: Optional[pulumi.Input[str]] = None, + replication_instance_arn: Optional[pulumi.Input[str]] = None, + replication_task_id: Optional[pulumi.Input[str]] = None, + source_endpoint_arn: Optional[pulumi.Input[str]] = None, + table_mappings: Optional[pulumi.Input[str]] = None, + target_endpoint_arn: Optional[pulumi.Input[str]] = None, + cdc_start_position: Optional[pulumi.Input[str]] = None, + cdc_start_time: Optional[pulumi.Input[str]] = None, + replication_task_settings: Optional[pulumi.Input[str]] = None, + start_replication_task: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if migration_type is None and 'migrationType' in kwargs: + migration_type = kwargs['migrationType'] + if migration_type is None: + raise TypeError("Missing 'migration_type' argument") + if replication_instance_arn is None and 'replicationInstanceArn' in kwargs: + replication_instance_arn = kwargs['replicationInstanceArn'] + if replication_instance_arn is None: + raise TypeError("Missing 'replication_instance_arn' argument") + if replication_task_id is None and 'replicationTaskId' in kwargs: + replication_task_id = kwargs['replicationTaskId'] + if replication_task_id is None: + raise TypeError("Missing 'replication_task_id' argument") + if source_endpoint_arn is None and 'sourceEndpointArn' in kwargs: + source_endpoint_arn = kwargs['sourceEndpointArn'] + if source_endpoint_arn is None: + raise TypeError("Missing 'source_endpoint_arn' argument") + if table_mappings is None and 'tableMappings' in kwargs: + table_mappings = kwargs['tableMappings'] + if table_mappings is None: + raise TypeError("Missing 'table_mappings' argument") + if target_endpoint_arn is None and 'targetEndpointArn' in kwargs: + target_endpoint_arn = kwargs['targetEndpointArn'] + if target_endpoint_arn is None: + raise TypeError("Missing 'target_endpoint_arn' argument") + if cdc_start_position is None and 'cdcStartPosition' in kwargs: + cdc_start_position = kwargs['cdcStartPosition'] + if cdc_start_time is None and 'cdcStartTime' in kwargs: + cdc_start_time = kwargs['cdcStartTime'] + if replication_task_settings is None and 'replicationTaskSettings' in kwargs: + replication_task_settings = kwargs['replicationTaskSettings'] + if start_replication_task is None and 'startReplicationTask' in kwargs: + start_replication_task = kwargs['startReplicationTask'] + + _setter("migration_type", migration_type) + _setter("replication_instance_arn", replication_instance_arn) + _setter("replication_task_id", replication_task_id) + _setter("source_endpoint_arn", source_endpoint_arn) + _setter("table_mappings", table_mappings) + _setter("target_endpoint_arn", target_endpoint_arn) if cdc_start_position is not None: - pulumi.set(__self__, "cdc_start_position", cdc_start_position) + _setter("cdc_start_position", cdc_start_position) if cdc_start_time is not None: - pulumi.set(__self__, "cdc_start_time", cdc_start_time) + _setter("cdc_start_time", cdc_start_time) if replication_task_settings is not None: - pulumi.set(__self__, "replication_task_settings", replication_task_settings) + _setter("replication_task_settings", replication_task_settings) if start_replication_task is not None: - pulumi.set(__self__, "start_replication_task", start_replication_task) + _setter("start_replication_task", start_replication_task) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="migrationType") @@ -238,37 +301,98 @@ def __init__(__self__, *, :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] target_endpoint_arn: The Amazon Resource Name (ARN) string that uniquely identifies the target endpoint. """ + _ReplicationTaskState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cdc_start_position=cdc_start_position, + cdc_start_time=cdc_start_time, + migration_type=migration_type, + replication_instance_arn=replication_instance_arn, + replication_task_arn=replication_task_arn, + replication_task_id=replication_task_id, + replication_task_settings=replication_task_settings, + source_endpoint_arn=source_endpoint_arn, + start_replication_task=start_replication_task, + status=status, + table_mappings=table_mappings, + tags=tags, + tags_all=tags_all, + target_endpoint_arn=target_endpoint_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cdc_start_position: Optional[pulumi.Input[str]] = None, + cdc_start_time: Optional[pulumi.Input[str]] = None, + migration_type: Optional[pulumi.Input[str]] = None, + replication_instance_arn: Optional[pulumi.Input[str]] = None, + replication_task_arn: Optional[pulumi.Input[str]] = None, + replication_task_id: Optional[pulumi.Input[str]] = None, + replication_task_settings: Optional[pulumi.Input[str]] = None, + source_endpoint_arn: Optional[pulumi.Input[str]] = None, + start_replication_task: Optional[pulumi.Input[bool]] = None, + status: Optional[pulumi.Input[str]] = None, + table_mappings: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_endpoint_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cdc_start_position is None and 'cdcStartPosition' in kwargs: + cdc_start_position = kwargs['cdcStartPosition'] + if cdc_start_time is None and 'cdcStartTime' in kwargs: + cdc_start_time = kwargs['cdcStartTime'] + if migration_type is None and 'migrationType' in kwargs: + migration_type = kwargs['migrationType'] + if replication_instance_arn is None and 'replicationInstanceArn' in kwargs: + replication_instance_arn = kwargs['replicationInstanceArn'] + if replication_task_arn is None and 'replicationTaskArn' in kwargs: + replication_task_arn = kwargs['replicationTaskArn'] + if replication_task_id is None and 'replicationTaskId' in kwargs: + replication_task_id = kwargs['replicationTaskId'] + if replication_task_settings is None and 'replicationTaskSettings' in kwargs: + replication_task_settings = kwargs['replicationTaskSettings'] + if source_endpoint_arn is None and 'sourceEndpointArn' in kwargs: + source_endpoint_arn = kwargs['sourceEndpointArn'] + if start_replication_task is None and 'startReplicationTask' in kwargs: + start_replication_task = kwargs['startReplicationTask'] + if table_mappings is None and 'tableMappings' in kwargs: + table_mappings = kwargs['tableMappings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_endpoint_arn is None and 'targetEndpointArn' in kwargs: + target_endpoint_arn = kwargs['targetEndpointArn'] + if cdc_start_position is not None: - pulumi.set(__self__, "cdc_start_position", cdc_start_position) + _setter("cdc_start_position", cdc_start_position) if cdc_start_time is not None: - pulumi.set(__self__, "cdc_start_time", cdc_start_time) + _setter("cdc_start_time", cdc_start_time) if migration_type is not None: - pulumi.set(__self__, "migration_type", migration_type) + _setter("migration_type", migration_type) if replication_instance_arn is not None: - pulumi.set(__self__, "replication_instance_arn", replication_instance_arn) + _setter("replication_instance_arn", replication_instance_arn) if replication_task_arn is not None: - pulumi.set(__self__, "replication_task_arn", replication_task_arn) + _setter("replication_task_arn", replication_task_arn) if replication_task_id is not None: - pulumi.set(__self__, "replication_task_id", replication_task_id) + _setter("replication_task_id", replication_task_id) if replication_task_settings is not None: - pulumi.set(__self__, "replication_task_settings", replication_task_settings) + _setter("replication_task_settings", replication_task_settings) if source_endpoint_arn is not None: - pulumi.set(__self__, "source_endpoint_arn", source_endpoint_arn) + _setter("source_endpoint_arn", source_endpoint_arn) if start_replication_task is not None: - pulumi.set(__self__, "start_replication_task", start_replication_task) + _setter("start_replication_task", start_replication_task) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if table_mappings is not None: - pulumi.set(__self__, "table_mappings", table_mappings) + _setter("table_mappings", table_mappings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_endpoint_arn is not None: - pulumi.set(__self__, "target_endpoint_arn", target_endpoint_arn) + _setter("target_endpoint_arn", target_endpoint_arn) @property @pulumi.getter(name="cdcStartPosition") @@ -567,6 +691,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicationTaskArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dms/s3_endpoint.py b/sdk/python/pulumi_aws/dms/s3_endpoint.py index 4e31122b138..f86b7a53059 100644 --- a/sdk/python/pulumi_aws/dms/s3_endpoint.py +++ b/sdk/python/pulumi_aws/dms/s3_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['S3EndpointArgs', 'S3Endpoint'] @@ -115,98 +115,303 @@ def __init__(__self__, *, :param pulumi.Input[bool] use_csv_no_sup_value: Whether to use `csv_no_sup_value` for columns not included in the supplemental log. (Ignored for source endpoints.) :param pulumi.Input[bool] use_task_start_time_for_full_load_timestamp: When set to `true`, uses the task start time as the timestamp column value instead of the time data is written to target. For full load, when set to `true`, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.When set to false, the full load timestamp in the timestamp column increments with the time data arrives at the target. Default is `false`. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "endpoint_id", endpoint_id) - pulumi.set(__self__, "endpoint_type", endpoint_type) - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + S3EndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + endpoint_id=endpoint_id, + endpoint_type=endpoint_type, + service_access_role_arn=service_access_role_arn, + add_column_name=add_column_name, + add_trailing_padding_character=add_trailing_padding_character, + bucket_folder=bucket_folder, + canned_acl_for_objects=canned_acl_for_objects, + cdc_inserts_and_updates=cdc_inserts_and_updates, + cdc_inserts_only=cdc_inserts_only, + cdc_max_batch_interval=cdc_max_batch_interval, + cdc_min_file_size=cdc_min_file_size, + cdc_path=cdc_path, + certificate_arn=certificate_arn, + compression_type=compression_type, + csv_delimiter=csv_delimiter, + csv_no_sup_value=csv_no_sup_value, + csv_null_value=csv_null_value, + csv_row_delimiter=csv_row_delimiter, + data_format=data_format, + data_page_size=data_page_size, + date_partition_delimiter=date_partition_delimiter, + date_partition_enabled=date_partition_enabled, + date_partition_sequence=date_partition_sequence, + date_partition_timezone=date_partition_timezone, + detach_target_on_lob_lookup_failure_parquet=detach_target_on_lob_lookup_failure_parquet, + dict_page_size_limit=dict_page_size_limit, + enable_statistics=enable_statistics, + encoding_type=encoding_type, + encryption_mode=encryption_mode, + expected_bucket_owner=expected_bucket_owner, + external_table_definition=external_table_definition, + glue_catalog_generation=glue_catalog_generation, + ignore_header_rows=ignore_header_rows, + include_op_for_full_load=include_op_for_full_load, + kms_key_arn=kms_key_arn, + max_file_size=max_file_size, + parquet_timestamp_in_millisecond=parquet_timestamp_in_millisecond, + parquet_version=parquet_version, + preserve_transactions=preserve_transactions, + rfc4180=rfc4180, + row_group_length=row_group_length, + server_side_encryption_kms_key_id=server_side_encryption_kms_key_id, + ssl_mode=ssl_mode, + tags=tags, + timestamp_column_name=timestamp_column_name, + use_csv_no_sup_value=use_csv_no_sup_value, + use_task_start_time_for_full_load_timestamp=use_task_start_time_for_full_load_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + endpoint_id: Optional[pulumi.Input[str]] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + service_access_role_arn: Optional[pulumi.Input[str]] = None, + add_column_name: Optional[pulumi.Input[bool]] = None, + add_trailing_padding_character: Optional[pulumi.Input[bool]] = None, + bucket_folder: Optional[pulumi.Input[str]] = None, + canned_acl_for_objects: Optional[pulumi.Input[str]] = None, + cdc_inserts_and_updates: Optional[pulumi.Input[bool]] = None, + cdc_inserts_only: Optional[pulumi.Input[bool]] = None, + cdc_max_batch_interval: Optional[pulumi.Input[int]] = None, + cdc_min_file_size: Optional[pulumi.Input[int]] = None, + cdc_path: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + compression_type: Optional[pulumi.Input[str]] = None, + csv_delimiter: Optional[pulumi.Input[str]] = None, + csv_no_sup_value: Optional[pulumi.Input[str]] = None, + csv_null_value: Optional[pulumi.Input[str]] = None, + csv_row_delimiter: Optional[pulumi.Input[str]] = None, + data_format: Optional[pulumi.Input[str]] = None, + data_page_size: Optional[pulumi.Input[int]] = None, + date_partition_delimiter: Optional[pulumi.Input[str]] = None, + date_partition_enabled: Optional[pulumi.Input[bool]] = None, + date_partition_sequence: Optional[pulumi.Input[str]] = None, + date_partition_timezone: Optional[pulumi.Input[str]] = None, + detach_target_on_lob_lookup_failure_parquet: Optional[pulumi.Input[bool]] = None, + dict_page_size_limit: Optional[pulumi.Input[int]] = None, + enable_statistics: Optional[pulumi.Input[bool]] = None, + encoding_type: Optional[pulumi.Input[str]] = None, + encryption_mode: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + external_table_definition: Optional[pulumi.Input[str]] = None, + glue_catalog_generation: Optional[pulumi.Input[bool]] = None, + ignore_header_rows: Optional[pulumi.Input[int]] = None, + include_op_for_full_load: Optional[pulumi.Input[bool]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + max_file_size: Optional[pulumi.Input[int]] = None, + parquet_timestamp_in_millisecond: Optional[pulumi.Input[bool]] = None, + parquet_version: Optional[pulumi.Input[str]] = None, + preserve_transactions: Optional[pulumi.Input[bool]] = None, + rfc4180: Optional[pulumi.Input[bool]] = None, + row_group_length: Optional[pulumi.Input[int]] = None, + server_side_encryption_kms_key_id: Optional[pulumi.Input[str]] = None, + ssl_mode: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timestamp_column_name: Optional[pulumi.Input[str]] = None, + use_csv_no_sup_value: Optional[pulumi.Input[bool]] = None, + use_task_start_time_for_full_load_timestamp: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if endpoint_id is None: + raise TypeError("Missing 'endpoint_id' argument") + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if service_access_role_arn is None: + raise TypeError("Missing 'service_access_role_arn' argument") + if add_column_name is None and 'addColumnName' in kwargs: + add_column_name = kwargs['addColumnName'] + if add_trailing_padding_character is None and 'addTrailingPaddingCharacter' in kwargs: + add_trailing_padding_character = kwargs['addTrailingPaddingCharacter'] + if bucket_folder is None and 'bucketFolder' in kwargs: + bucket_folder = kwargs['bucketFolder'] + if canned_acl_for_objects is None and 'cannedAclForObjects' in kwargs: + canned_acl_for_objects = kwargs['cannedAclForObjects'] + if cdc_inserts_and_updates is None and 'cdcInsertsAndUpdates' in kwargs: + cdc_inserts_and_updates = kwargs['cdcInsertsAndUpdates'] + if cdc_inserts_only is None and 'cdcInsertsOnly' in kwargs: + cdc_inserts_only = kwargs['cdcInsertsOnly'] + if cdc_max_batch_interval is None and 'cdcMaxBatchInterval' in kwargs: + cdc_max_batch_interval = kwargs['cdcMaxBatchInterval'] + if cdc_min_file_size is None and 'cdcMinFileSize' in kwargs: + cdc_min_file_size = kwargs['cdcMinFileSize'] + if cdc_path is None and 'cdcPath' in kwargs: + cdc_path = kwargs['cdcPath'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if compression_type is None and 'compressionType' in kwargs: + compression_type = kwargs['compressionType'] + if csv_delimiter is None and 'csvDelimiter' in kwargs: + csv_delimiter = kwargs['csvDelimiter'] + if csv_no_sup_value is None and 'csvNoSupValue' in kwargs: + csv_no_sup_value = kwargs['csvNoSupValue'] + if csv_null_value is None and 'csvNullValue' in kwargs: + csv_null_value = kwargs['csvNullValue'] + if csv_row_delimiter is None and 'csvRowDelimiter' in kwargs: + csv_row_delimiter = kwargs['csvRowDelimiter'] + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if data_page_size is None and 'dataPageSize' in kwargs: + data_page_size = kwargs['dataPageSize'] + if date_partition_delimiter is None and 'datePartitionDelimiter' in kwargs: + date_partition_delimiter = kwargs['datePartitionDelimiter'] + if date_partition_enabled is None and 'datePartitionEnabled' in kwargs: + date_partition_enabled = kwargs['datePartitionEnabled'] + if date_partition_sequence is None and 'datePartitionSequence' in kwargs: + date_partition_sequence = kwargs['datePartitionSequence'] + if date_partition_timezone is None and 'datePartitionTimezone' in kwargs: + date_partition_timezone = kwargs['datePartitionTimezone'] + if detach_target_on_lob_lookup_failure_parquet is None and 'detachTargetOnLobLookupFailureParquet' in kwargs: + detach_target_on_lob_lookup_failure_parquet = kwargs['detachTargetOnLobLookupFailureParquet'] + if dict_page_size_limit is None and 'dictPageSizeLimit' in kwargs: + dict_page_size_limit = kwargs['dictPageSizeLimit'] + if enable_statistics is None and 'enableStatistics' in kwargs: + enable_statistics = kwargs['enableStatistics'] + if encoding_type is None and 'encodingType' in kwargs: + encoding_type = kwargs['encodingType'] + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if external_table_definition is None and 'externalTableDefinition' in kwargs: + external_table_definition = kwargs['externalTableDefinition'] + if glue_catalog_generation is None and 'glueCatalogGeneration' in kwargs: + glue_catalog_generation = kwargs['glueCatalogGeneration'] + if ignore_header_rows is None and 'ignoreHeaderRows' in kwargs: + ignore_header_rows = kwargs['ignoreHeaderRows'] + if include_op_for_full_load is None and 'includeOpForFullLoad' in kwargs: + include_op_for_full_load = kwargs['includeOpForFullLoad'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if max_file_size is None and 'maxFileSize' in kwargs: + max_file_size = kwargs['maxFileSize'] + if parquet_timestamp_in_millisecond is None and 'parquetTimestampInMillisecond' in kwargs: + parquet_timestamp_in_millisecond = kwargs['parquetTimestampInMillisecond'] + if parquet_version is None and 'parquetVersion' in kwargs: + parquet_version = kwargs['parquetVersion'] + if preserve_transactions is None and 'preserveTransactions' in kwargs: + preserve_transactions = kwargs['preserveTransactions'] + if row_group_length is None and 'rowGroupLength' in kwargs: + row_group_length = kwargs['rowGroupLength'] + if server_side_encryption_kms_key_id is None and 'serverSideEncryptionKmsKeyId' in kwargs: + server_side_encryption_kms_key_id = kwargs['serverSideEncryptionKmsKeyId'] + if ssl_mode is None and 'sslMode' in kwargs: + ssl_mode = kwargs['sslMode'] + if timestamp_column_name is None and 'timestampColumnName' in kwargs: + timestamp_column_name = kwargs['timestampColumnName'] + if use_csv_no_sup_value is None and 'useCsvNoSupValue' in kwargs: + use_csv_no_sup_value = kwargs['useCsvNoSupValue'] + if use_task_start_time_for_full_load_timestamp is None and 'useTaskStartTimeForFullLoadTimestamp' in kwargs: + use_task_start_time_for_full_load_timestamp = kwargs['useTaskStartTimeForFullLoadTimestamp'] + + _setter("bucket_name", bucket_name) + _setter("endpoint_id", endpoint_id) + _setter("endpoint_type", endpoint_type) + _setter("service_access_role_arn", service_access_role_arn) if add_column_name is not None: - pulumi.set(__self__, "add_column_name", add_column_name) + _setter("add_column_name", add_column_name) if add_trailing_padding_character is not None: - pulumi.set(__self__, "add_trailing_padding_character", add_trailing_padding_character) + _setter("add_trailing_padding_character", add_trailing_padding_character) if bucket_folder is not None: - pulumi.set(__self__, "bucket_folder", bucket_folder) + _setter("bucket_folder", bucket_folder) if canned_acl_for_objects is not None: - pulumi.set(__self__, "canned_acl_for_objects", canned_acl_for_objects) + _setter("canned_acl_for_objects", canned_acl_for_objects) if cdc_inserts_and_updates is not None: - pulumi.set(__self__, "cdc_inserts_and_updates", cdc_inserts_and_updates) + _setter("cdc_inserts_and_updates", cdc_inserts_and_updates) if cdc_inserts_only is not None: - pulumi.set(__self__, "cdc_inserts_only", cdc_inserts_only) + _setter("cdc_inserts_only", cdc_inserts_only) if cdc_max_batch_interval is not None: - pulumi.set(__self__, "cdc_max_batch_interval", cdc_max_batch_interval) + _setter("cdc_max_batch_interval", cdc_max_batch_interval) if cdc_min_file_size is not None: - pulumi.set(__self__, "cdc_min_file_size", cdc_min_file_size) + _setter("cdc_min_file_size", cdc_min_file_size) if cdc_path is not None: - pulumi.set(__self__, "cdc_path", cdc_path) + _setter("cdc_path", cdc_path) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if compression_type is not None: - pulumi.set(__self__, "compression_type", compression_type) + _setter("compression_type", compression_type) if csv_delimiter is not None: - pulumi.set(__self__, "csv_delimiter", csv_delimiter) + _setter("csv_delimiter", csv_delimiter) if csv_no_sup_value is not None: - pulumi.set(__self__, "csv_no_sup_value", csv_no_sup_value) + _setter("csv_no_sup_value", csv_no_sup_value) if csv_null_value is not None: - pulumi.set(__self__, "csv_null_value", csv_null_value) + _setter("csv_null_value", csv_null_value) if csv_row_delimiter is not None: - pulumi.set(__self__, "csv_row_delimiter", csv_row_delimiter) + _setter("csv_row_delimiter", csv_row_delimiter) if data_format is not None: - pulumi.set(__self__, "data_format", data_format) + _setter("data_format", data_format) if data_page_size is not None: - pulumi.set(__self__, "data_page_size", data_page_size) + _setter("data_page_size", data_page_size) if date_partition_delimiter is not None: - pulumi.set(__self__, "date_partition_delimiter", date_partition_delimiter) + _setter("date_partition_delimiter", date_partition_delimiter) if date_partition_enabled is not None: - pulumi.set(__self__, "date_partition_enabled", date_partition_enabled) + _setter("date_partition_enabled", date_partition_enabled) if date_partition_sequence is not None: - pulumi.set(__self__, "date_partition_sequence", date_partition_sequence) + _setter("date_partition_sequence", date_partition_sequence) if date_partition_timezone is not None: - pulumi.set(__self__, "date_partition_timezone", date_partition_timezone) + _setter("date_partition_timezone", date_partition_timezone) if detach_target_on_lob_lookup_failure_parquet is not None: - pulumi.set(__self__, "detach_target_on_lob_lookup_failure_parquet", detach_target_on_lob_lookup_failure_parquet) + _setter("detach_target_on_lob_lookup_failure_parquet", detach_target_on_lob_lookup_failure_parquet) if dict_page_size_limit is not None: - pulumi.set(__self__, "dict_page_size_limit", dict_page_size_limit) + _setter("dict_page_size_limit", dict_page_size_limit) if enable_statistics is not None: - pulumi.set(__self__, "enable_statistics", enable_statistics) + _setter("enable_statistics", enable_statistics) if encoding_type is not None: - pulumi.set(__self__, "encoding_type", encoding_type) + _setter("encoding_type", encoding_type) if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if external_table_definition is not None: - pulumi.set(__self__, "external_table_definition", external_table_definition) + _setter("external_table_definition", external_table_definition) if glue_catalog_generation is not None: - pulumi.set(__self__, "glue_catalog_generation", glue_catalog_generation) + _setter("glue_catalog_generation", glue_catalog_generation) if ignore_header_rows is not None: - pulumi.set(__self__, "ignore_header_rows", ignore_header_rows) + _setter("ignore_header_rows", ignore_header_rows) if include_op_for_full_load is not None: - pulumi.set(__self__, "include_op_for_full_load", include_op_for_full_load) + _setter("include_op_for_full_load", include_op_for_full_load) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if max_file_size is not None: - pulumi.set(__self__, "max_file_size", max_file_size) + _setter("max_file_size", max_file_size) if parquet_timestamp_in_millisecond is not None: - pulumi.set(__self__, "parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) + _setter("parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) if parquet_version is not None: - pulumi.set(__self__, "parquet_version", parquet_version) + _setter("parquet_version", parquet_version) if preserve_transactions is not None: - pulumi.set(__self__, "preserve_transactions", preserve_transactions) + _setter("preserve_transactions", preserve_transactions) if rfc4180 is not None: - pulumi.set(__self__, "rfc4180", rfc4180) + _setter("rfc4180", rfc4180) if row_group_length is not None: - pulumi.set(__self__, "row_group_length", row_group_length) + _setter("row_group_length", row_group_length) if server_side_encryption_kms_key_id is not None: - pulumi.set(__self__, "server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) + _setter("server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) if ssl_mode is not None: - pulumi.set(__self__, "ssl_mode", ssl_mode) + _setter("ssl_mode", ssl_mode) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timestamp_column_name is not None: - pulumi.set(__self__, "timestamp_column_name", timestamp_column_name) + _setter("timestamp_column_name", timestamp_column_name) if use_csv_no_sup_value is not None: - pulumi.set(__self__, "use_csv_no_sup_value", use_csv_no_sup_value) + _setter("use_csv_no_sup_value", use_csv_no_sup_value) if use_task_start_time_for_full_load_timestamp is not None: - pulumi.set(__self__, "use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) + _setter("use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) @property @pulumi.getter(name="bucketName") @@ -901,115 +1106,330 @@ def __init__(__self__, *, :param pulumi.Input[bool] use_csv_no_sup_value: Whether to use `csv_no_sup_value` for columns not included in the supplemental log. (Ignored for source endpoints.) :param pulumi.Input[bool] use_task_start_time_for_full_load_timestamp: When set to `true`, uses the task start time as the timestamp column value instead of the time data is written to target. For full load, when set to `true`, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.When set to false, the full load timestamp in the timestamp column increments with the time data arrives at the target. Default is `false`. """ + _S3EndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + add_column_name=add_column_name, + add_trailing_padding_character=add_trailing_padding_character, + bucket_folder=bucket_folder, + bucket_name=bucket_name, + canned_acl_for_objects=canned_acl_for_objects, + cdc_inserts_and_updates=cdc_inserts_and_updates, + cdc_inserts_only=cdc_inserts_only, + cdc_max_batch_interval=cdc_max_batch_interval, + cdc_min_file_size=cdc_min_file_size, + cdc_path=cdc_path, + certificate_arn=certificate_arn, + compression_type=compression_type, + csv_delimiter=csv_delimiter, + csv_no_sup_value=csv_no_sup_value, + csv_null_value=csv_null_value, + csv_row_delimiter=csv_row_delimiter, + data_format=data_format, + data_page_size=data_page_size, + date_partition_delimiter=date_partition_delimiter, + date_partition_enabled=date_partition_enabled, + date_partition_sequence=date_partition_sequence, + date_partition_timezone=date_partition_timezone, + detach_target_on_lob_lookup_failure_parquet=detach_target_on_lob_lookup_failure_parquet, + dict_page_size_limit=dict_page_size_limit, + enable_statistics=enable_statistics, + encoding_type=encoding_type, + encryption_mode=encryption_mode, + endpoint_arn=endpoint_arn, + endpoint_id=endpoint_id, + endpoint_type=endpoint_type, + engine_display_name=engine_display_name, + expected_bucket_owner=expected_bucket_owner, + external_id=external_id, + external_table_definition=external_table_definition, + glue_catalog_generation=glue_catalog_generation, + ignore_header_rows=ignore_header_rows, + include_op_for_full_load=include_op_for_full_load, + kms_key_arn=kms_key_arn, + max_file_size=max_file_size, + parquet_timestamp_in_millisecond=parquet_timestamp_in_millisecond, + parquet_version=parquet_version, + preserve_transactions=preserve_transactions, + rfc4180=rfc4180, + row_group_length=row_group_length, + server_side_encryption_kms_key_id=server_side_encryption_kms_key_id, + service_access_role_arn=service_access_role_arn, + ssl_mode=ssl_mode, + status=status, + tags=tags, + tags_all=tags_all, + timestamp_column_name=timestamp_column_name, + use_csv_no_sup_value=use_csv_no_sup_value, + use_task_start_time_for_full_load_timestamp=use_task_start_time_for_full_load_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + add_column_name: Optional[pulumi.Input[bool]] = None, + add_trailing_padding_character: Optional[pulumi.Input[bool]] = None, + bucket_folder: Optional[pulumi.Input[str]] = None, + bucket_name: Optional[pulumi.Input[str]] = None, + canned_acl_for_objects: Optional[pulumi.Input[str]] = None, + cdc_inserts_and_updates: Optional[pulumi.Input[bool]] = None, + cdc_inserts_only: Optional[pulumi.Input[bool]] = None, + cdc_max_batch_interval: Optional[pulumi.Input[int]] = None, + cdc_min_file_size: Optional[pulumi.Input[int]] = None, + cdc_path: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + compression_type: Optional[pulumi.Input[str]] = None, + csv_delimiter: Optional[pulumi.Input[str]] = None, + csv_no_sup_value: Optional[pulumi.Input[str]] = None, + csv_null_value: Optional[pulumi.Input[str]] = None, + csv_row_delimiter: Optional[pulumi.Input[str]] = None, + data_format: Optional[pulumi.Input[str]] = None, + data_page_size: Optional[pulumi.Input[int]] = None, + date_partition_delimiter: Optional[pulumi.Input[str]] = None, + date_partition_enabled: Optional[pulumi.Input[bool]] = None, + date_partition_sequence: Optional[pulumi.Input[str]] = None, + date_partition_timezone: Optional[pulumi.Input[str]] = None, + detach_target_on_lob_lookup_failure_parquet: Optional[pulumi.Input[bool]] = None, + dict_page_size_limit: Optional[pulumi.Input[int]] = None, + enable_statistics: Optional[pulumi.Input[bool]] = None, + encoding_type: Optional[pulumi.Input[str]] = None, + encryption_mode: Optional[pulumi.Input[str]] = None, + endpoint_arn: Optional[pulumi.Input[str]] = None, + endpoint_id: Optional[pulumi.Input[str]] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + engine_display_name: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + external_id: Optional[pulumi.Input[str]] = None, + external_table_definition: Optional[pulumi.Input[str]] = None, + glue_catalog_generation: Optional[pulumi.Input[bool]] = None, + ignore_header_rows: Optional[pulumi.Input[int]] = None, + include_op_for_full_load: Optional[pulumi.Input[bool]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + max_file_size: Optional[pulumi.Input[int]] = None, + parquet_timestamp_in_millisecond: Optional[pulumi.Input[bool]] = None, + parquet_version: Optional[pulumi.Input[str]] = None, + preserve_transactions: Optional[pulumi.Input[bool]] = None, + rfc4180: Optional[pulumi.Input[bool]] = None, + row_group_length: Optional[pulumi.Input[int]] = None, + server_side_encryption_kms_key_id: Optional[pulumi.Input[str]] = None, + service_access_role_arn: Optional[pulumi.Input[str]] = None, + ssl_mode: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timestamp_column_name: Optional[pulumi.Input[str]] = None, + use_csv_no_sup_value: Optional[pulumi.Input[bool]] = None, + use_task_start_time_for_full_load_timestamp: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if add_column_name is None and 'addColumnName' in kwargs: + add_column_name = kwargs['addColumnName'] + if add_trailing_padding_character is None and 'addTrailingPaddingCharacter' in kwargs: + add_trailing_padding_character = kwargs['addTrailingPaddingCharacter'] + if bucket_folder is None and 'bucketFolder' in kwargs: + bucket_folder = kwargs['bucketFolder'] + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if canned_acl_for_objects is None and 'cannedAclForObjects' in kwargs: + canned_acl_for_objects = kwargs['cannedAclForObjects'] + if cdc_inserts_and_updates is None and 'cdcInsertsAndUpdates' in kwargs: + cdc_inserts_and_updates = kwargs['cdcInsertsAndUpdates'] + if cdc_inserts_only is None and 'cdcInsertsOnly' in kwargs: + cdc_inserts_only = kwargs['cdcInsertsOnly'] + if cdc_max_batch_interval is None and 'cdcMaxBatchInterval' in kwargs: + cdc_max_batch_interval = kwargs['cdcMaxBatchInterval'] + if cdc_min_file_size is None and 'cdcMinFileSize' in kwargs: + cdc_min_file_size = kwargs['cdcMinFileSize'] + if cdc_path is None and 'cdcPath' in kwargs: + cdc_path = kwargs['cdcPath'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if compression_type is None and 'compressionType' in kwargs: + compression_type = kwargs['compressionType'] + if csv_delimiter is None and 'csvDelimiter' in kwargs: + csv_delimiter = kwargs['csvDelimiter'] + if csv_no_sup_value is None and 'csvNoSupValue' in kwargs: + csv_no_sup_value = kwargs['csvNoSupValue'] + if csv_null_value is None and 'csvNullValue' in kwargs: + csv_null_value = kwargs['csvNullValue'] + if csv_row_delimiter is None and 'csvRowDelimiter' in kwargs: + csv_row_delimiter = kwargs['csvRowDelimiter'] + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if data_page_size is None and 'dataPageSize' in kwargs: + data_page_size = kwargs['dataPageSize'] + if date_partition_delimiter is None and 'datePartitionDelimiter' in kwargs: + date_partition_delimiter = kwargs['datePartitionDelimiter'] + if date_partition_enabled is None and 'datePartitionEnabled' in kwargs: + date_partition_enabled = kwargs['datePartitionEnabled'] + if date_partition_sequence is None and 'datePartitionSequence' in kwargs: + date_partition_sequence = kwargs['datePartitionSequence'] + if date_partition_timezone is None and 'datePartitionTimezone' in kwargs: + date_partition_timezone = kwargs['datePartitionTimezone'] + if detach_target_on_lob_lookup_failure_parquet is None and 'detachTargetOnLobLookupFailureParquet' in kwargs: + detach_target_on_lob_lookup_failure_parquet = kwargs['detachTargetOnLobLookupFailureParquet'] + if dict_page_size_limit is None and 'dictPageSizeLimit' in kwargs: + dict_page_size_limit = kwargs['dictPageSizeLimit'] + if enable_statistics is None and 'enableStatistics' in kwargs: + enable_statistics = kwargs['enableStatistics'] + if encoding_type is None and 'encodingType' in kwargs: + encoding_type = kwargs['encodingType'] + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if endpoint_arn is None and 'endpointArn' in kwargs: + endpoint_arn = kwargs['endpointArn'] + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if engine_display_name is None and 'engineDisplayName' in kwargs: + engine_display_name = kwargs['engineDisplayName'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if external_table_definition is None and 'externalTableDefinition' in kwargs: + external_table_definition = kwargs['externalTableDefinition'] + if glue_catalog_generation is None and 'glueCatalogGeneration' in kwargs: + glue_catalog_generation = kwargs['glueCatalogGeneration'] + if ignore_header_rows is None and 'ignoreHeaderRows' in kwargs: + ignore_header_rows = kwargs['ignoreHeaderRows'] + if include_op_for_full_load is None and 'includeOpForFullLoad' in kwargs: + include_op_for_full_load = kwargs['includeOpForFullLoad'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if max_file_size is None and 'maxFileSize' in kwargs: + max_file_size = kwargs['maxFileSize'] + if parquet_timestamp_in_millisecond is None and 'parquetTimestampInMillisecond' in kwargs: + parquet_timestamp_in_millisecond = kwargs['parquetTimestampInMillisecond'] + if parquet_version is None and 'parquetVersion' in kwargs: + parquet_version = kwargs['parquetVersion'] + if preserve_transactions is None and 'preserveTransactions' in kwargs: + preserve_transactions = kwargs['preserveTransactions'] + if row_group_length is None and 'rowGroupLength' in kwargs: + row_group_length = kwargs['rowGroupLength'] + if server_side_encryption_kms_key_id is None and 'serverSideEncryptionKmsKeyId' in kwargs: + server_side_encryption_kms_key_id = kwargs['serverSideEncryptionKmsKeyId'] + if service_access_role_arn is None and 'serviceAccessRoleArn' in kwargs: + service_access_role_arn = kwargs['serviceAccessRoleArn'] + if ssl_mode is None and 'sslMode' in kwargs: + ssl_mode = kwargs['sslMode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if timestamp_column_name is None and 'timestampColumnName' in kwargs: + timestamp_column_name = kwargs['timestampColumnName'] + if use_csv_no_sup_value is None and 'useCsvNoSupValue' in kwargs: + use_csv_no_sup_value = kwargs['useCsvNoSupValue'] + if use_task_start_time_for_full_load_timestamp is None and 'useTaskStartTimeForFullLoadTimestamp' in kwargs: + use_task_start_time_for_full_load_timestamp = kwargs['useTaskStartTimeForFullLoadTimestamp'] + if add_column_name is not None: - pulumi.set(__self__, "add_column_name", add_column_name) + _setter("add_column_name", add_column_name) if add_trailing_padding_character is not None: - pulumi.set(__self__, "add_trailing_padding_character", add_trailing_padding_character) + _setter("add_trailing_padding_character", add_trailing_padding_character) if bucket_folder is not None: - pulumi.set(__self__, "bucket_folder", bucket_folder) + _setter("bucket_folder", bucket_folder) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if canned_acl_for_objects is not None: - pulumi.set(__self__, "canned_acl_for_objects", canned_acl_for_objects) + _setter("canned_acl_for_objects", canned_acl_for_objects) if cdc_inserts_and_updates is not None: - pulumi.set(__self__, "cdc_inserts_and_updates", cdc_inserts_and_updates) + _setter("cdc_inserts_and_updates", cdc_inserts_and_updates) if cdc_inserts_only is not None: - pulumi.set(__self__, "cdc_inserts_only", cdc_inserts_only) + _setter("cdc_inserts_only", cdc_inserts_only) if cdc_max_batch_interval is not None: - pulumi.set(__self__, "cdc_max_batch_interval", cdc_max_batch_interval) + _setter("cdc_max_batch_interval", cdc_max_batch_interval) if cdc_min_file_size is not None: - pulumi.set(__self__, "cdc_min_file_size", cdc_min_file_size) + _setter("cdc_min_file_size", cdc_min_file_size) if cdc_path is not None: - pulumi.set(__self__, "cdc_path", cdc_path) + _setter("cdc_path", cdc_path) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if compression_type is not None: - pulumi.set(__self__, "compression_type", compression_type) + _setter("compression_type", compression_type) if csv_delimiter is not None: - pulumi.set(__self__, "csv_delimiter", csv_delimiter) + _setter("csv_delimiter", csv_delimiter) if csv_no_sup_value is not None: - pulumi.set(__self__, "csv_no_sup_value", csv_no_sup_value) + _setter("csv_no_sup_value", csv_no_sup_value) if csv_null_value is not None: - pulumi.set(__self__, "csv_null_value", csv_null_value) + _setter("csv_null_value", csv_null_value) if csv_row_delimiter is not None: - pulumi.set(__self__, "csv_row_delimiter", csv_row_delimiter) + _setter("csv_row_delimiter", csv_row_delimiter) if data_format is not None: - pulumi.set(__self__, "data_format", data_format) + _setter("data_format", data_format) if data_page_size is not None: - pulumi.set(__self__, "data_page_size", data_page_size) + _setter("data_page_size", data_page_size) if date_partition_delimiter is not None: - pulumi.set(__self__, "date_partition_delimiter", date_partition_delimiter) + _setter("date_partition_delimiter", date_partition_delimiter) if date_partition_enabled is not None: - pulumi.set(__self__, "date_partition_enabled", date_partition_enabled) + _setter("date_partition_enabled", date_partition_enabled) if date_partition_sequence is not None: - pulumi.set(__self__, "date_partition_sequence", date_partition_sequence) + _setter("date_partition_sequence", date_partition_sequence) if date_partition_timezone is not None: - pulumi.set(__self__, "date_partition_timezone", date_partition_timezone) + _setter("date_partition_timezone", date_partition_timezone) if detach_target_on_lob_lookup_failure_parquet is not None: - pulumi.set(__self__, "detach_target_on_lob_lookup_failure_parquet", detach_target_on_lob_lookup_failure_parquet) + _setter("detach_target_on_lob_lookup_failure_parquet", detach_target_on_lob_lookup_failure_parquet) if dict_page_size_limit is not None: - pulumi.set(__self__, "dict_page_size_limit", dict_page_size_limit) + _setter("dict_page_size_limit", dict_page_size_limit) if enable_statistics is not None: - pulumi.set(__self__, "enable_statistics", enable_statistics) + _setter("enable_statistics", enable_statistics) if encoding_type is not None: - pulumi.set(__self__, "encoding_type", encoding_type) + _setter("encoding_type", encoding_type) if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if endpoint_arn is not None: - pulumi.set(__self__, "endpoint_arn", endpoint_arn) + _setter("endpoint_arn", endpoint_arn) if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) if endpoint_type is not None: - pulumi.set(__self__, "endpoint_type", endpoint_type) + _setter("endpoint_type", endpoint_type) if engine_display_name is not None: - pulumi.set(__self__, "engine_display_name", engine_display_name) + _setter("engine_display_name", engine_display_name) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if external_table_definition is not None: - pulumi.set(__self__, "external_table_definition", external_table_definition) + _setter("external_table_definition", external_table_definition) if glue_catalog_generation is not None: - pulumi.set(__self__, "glue_catalog_generation", glue_catalog_generation) + _setter("glue_catalog_generation", glue_catalog_generation) if ignore_header_rows is not None: - pulumi.set(__self__, "ignore_header_rows", ignore_header_rows) + _setter("ignore_header_rows", ignore_header_rows) if include_op_for_full_load is not None: - pulumi.set(__self__, "include_op_for_full_load", include_op_for_full_load) + _setter("include_op_for_full_load", include_op_for_full_load) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if max_file_size is not None: - pulumi.set(__self__, "max_file_size", max_file_size) + _setter("max_file_size", max_file_size) if parquet_timestamp_in_millisecond is not None: - pulumi.set(__self__, "parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) + _setter("parquet_timestamp_in_millisecond", parquet_timestamp_in_millisecond) if parquet_version is not None: - pulumi.set(__self__, "parquet_version", parquet_version) + _setter("parquet_version", parquet_version) if preserve_transactions is not None: - pulumi.set(__self__, "preserve_transactions", preserve_transactions) + _setter("preserve_transactions", preserve_transactions) if rfc4180 is not None: - pulumi.set(__self__, "rfc4180", rfc4180) + _setter("rfc4180", rfc4180) if row_group_length is not None: - pulumi.set(__self__, "row_group_length", row_group_length) + _setter("row_group_length", row_group_length) if server_side_encryption_kms_key_id is not None: - pulumi.set(__self__, "server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) + _setter("server_side_encryption_kms_key_id", server_side_encryption_kms_key_id) if service_access_role_arn is not None: - pulumi.set(__self__, "service_access_role_arn", service_access_role_arn) + _setter("service_access_role_arn", service_access_role_arn) if ssl_mode is not None: - pulumi.set(__self__, "ssl_mode", ssl_mode) + _setter("ssl_mode", ssl_mode) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timestamp_column_name is not None: - pulumi.set(__self__, "timestamp_column_name", timestamp_column_name) + _setter("timestamp_column_name", timestamp_column_name) if use_csv_no_sup_value is not None: - pulumi.set(__self__, "use_csv_no_sup_value", use_csv_no_sup_value) + _setter("use_csv_no_sup_value", use_csv_no_sup_value) if use_task_start_time_for_full_load_timestamp is not None: - pulumi.set(__self__, "use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) + _setter("use_task_start_time_for_full_load_timestamp", use_task_start_time_for_full_load_timestamp) @property @pulumi.getter(name="addColumnName") @@ -1956,6 +2376,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + S3EndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/docdb/_inputs.py b/sdk/python/pulumi_aws/docdb/_inputs.py index a1651ea6893..a40110cb02b 100644 --- a/sdk/python/pulumi_aws/docdb/_inputs.py +++ b/sdk/python/pulumi_aws/docdb/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -25,10 +25,31 @@ def __init__(__self__, *, :param pulumi.Input[str] value: The value of the DocumentDB parameter. :param pulumi.Input[str] apply_method: Valid values are `immediate` and `pending-reboot`. Defaults to `pending-reboot`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ClusterParameterGroupParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + apply_method: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter @@ -76,10 +97,27 @@ def __init__(__self__, *, :param pulumi.Input[str] db_cluster_arn: Amazon Resource Name (ARN) of member DB Cluster. :param pulumi.Input[bool] is_writer: Whether the member is the primary DB Cluster. """ + GlobalClusterGlobalClusterMemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_arn=db_cluster_arn, + is_writer=is_writer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_arn: Optional[pulumi.Input[str]] = None, + is_writer: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_arn is None and 'dbClusterArn' in kwargs: + db_cluster_arn = kwargs['dbClusterArn'] + if is_writer is None and 'isWriter' in kwargs: + is_writer = kwargs['isWriter'] + if db_cluster_arn is not None: - pulumi.set(__self__, "db_cluster_arn", db_cluster_arn) + _setter("db_cluster_arn", db_cluster_arn) if is_writer is not None: - pulumi.set(__self__, "is_writer", is_writer) + _setter("is_writer", is_writer) @property @pulumi.getter(name="dbClusterArn") diff --git a/sdk/python/pulumi_aws/docdb/cluster.py b/sdk/python/pulumi_aws/docdb/cluster.py index b32a7f9640c..4c8799838fc 100644 --- a/sdk/python/pulumi_aws/docdb/cluster.py +++ b/sdk/python/pulumi_aws/docdb/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterArgs', 'Cluster'] @@ -78,58 +78,165 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of VPC security groups to associate with the Cluster """ + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + availability_zones=availability_zones, + backup_retention_period=backup_retention_period, + cluster_identifier=cluster_identifier, + cluster_identifier_prefix=cluster_identifier_prefix, + cluster_members=cluster_members, + db_cluster_parameter_group_name=db_cluster_parameter_group_name, + db_subnet_group_name=db_subnet_group_name, + deletion_protection=deletion_protection, + enabled_cloudwatch_logs_exports=enabled_cloudwatch_logs_exports, + engine=engine, + engine_version=engine_version, + final_snapshot_identifier=final_snapshot_identifier, + global_cluster_identifier=global_cluster_identifier, + kms_key_id=kms_key_id, + master_password=master_password, + master_username=master_username, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + skip_final_snapshot=skip_final_snapshot, + snapshot_identifier=snapshot_identifier, + storage_encrypted=storage_encrypted, + tags=tags, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier_prefix: Optional[pulumi.Input[str]] = None, + cluster_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + db_cluster_parameter_group_name: Optional[pulumi.Input[str]] = None, + db_subnet_group_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + master_password: Optional[pulumi.Input[str]] = None, + master_username: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if backup_retention_period is None and 'backupRetentionPeriod' in kwargs: + backup_retention_period = kwargs['backupRetentionPeriod'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier_prefix is None and 'clusterIdentifierPrefix' in kwargs: + cluster_identifier_prefix = kwargs['clusterIdentifierPrefix'] + if cluster_members is None and 'clusterMembers' in kwargs: + cluster_members = kwargs['clusterMembers'] + if db_cluster_parameter_group_name is None and 'dbClusterParameterGroupName' in kwargs: + db_cluster_parameter_group_name = kwargs['dbClusterParameterGroupName'] + if db_subnet_group_name is None and 'dbSubnetGroupName' in kwargs: + db_subnet_group_name = kwargs['dbSubnetGroupName'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if enabled_cloudwatch_logs_exports is None and 'enabledCloudwatchLogsExports' in kwargs: + enabled_cloudwatch_logs_exports = kwargs['enabledCloudwatchLogsExports'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if master_password is None and 'masterPassword' in kwargs: + master_password = kwargs['masterPassword'] + if master_username is None and 'masterUsername' in kwargs: + master_username = kwargs['masterUsername'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if backup_retention_period is not None: - pulumi.set(__self__, "backup_retention_period", backup_retention_period) + _setter("backup_retention_period", backup_retention_period) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if cluster_identifier_prefix is not None: - pulumi.set(__self__, "cluster_identifier_prefix", cluster_identifier_prefix) + _setter("cluster_identifier_prefix", cluster_identifier_prefix) if cluster_members is not None: - pulumi.set(__self__, "cluster_members", cluster_members) + _setter("cluster_members", cluster_members) if db_cluster_parameter_group_name is not None: - pulumi.set(__self__, "db_cluster_parameter_group_name", db_cluster_parameter_group_name) + _setter("db_cluster_parameter_group_name", db_cluster_parameter_group_name) if db_subnet_group_name is not None: - pulumi.set(__self__, "db_subnet_group_name", db_subnet_group_name) + _setter("db_subnet_group_name", db_subnet_group_name) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if enabled_cloudwatch_logs_exports is not None: - pulumi.set(__self__, "enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) + _setter("enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if global_cluster_identifier is not None: - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + _setter("global_cluster_identifier", global_cluster_identifier) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if master_password is not None: - pulumi.set(__self__, "master_password", master_password) + _setter("master_password", master_password) if master_username is not None: - pulumi.set(__self__, "master_username", master_username) + _setter("master_username", master_username) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="allowMajorVersionUpgrade") @@ -532,73 +639,200 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of VPC security groups to associate with the Cluster """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + arn=arn, + availability_zones=availability_zones, + backup_retention_period=backup_retention_period, + cluster_identifier=cluster_identifier, + cluster_identifier_prefix=cluster_identifier_prefix, + cluster_members=cluster_members, + cluster_resource_id=cluster_resource_id, + db_cluster_parameter_group_name=db_cluster_parameter_group_name, + db_subnet_group_name=db_subnet_group_name, + deletion_protection=deletion_protection, + enabled_cloudwatch_logs_exports=enabled_cloudwatch_logs_exports, + endpoint=endpoint, + engine=engine, + engine_version=engine_version, + final_snapshot_identifier=final_snapshot_identifier, + global_cluster_identifier=global_cluster_identifier, + hosted_zone_id=hosted_zone_id, + kms_key_id=kms_key_id, + master_password=master_password, + master_username=master_username, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + reader_endpoint=reader_endpoint, + skip_final_snapshot=skip_final_snapshot, + snapshot_identifier=snapshot_identifier, + storage_encrypted=storage_encrypted, + tags=tags, + tags_all=tags_all, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier_prefix: Optional[pulumi.Input[str]] = None, + cluster_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cluster_resource_id: Optional[pulumi.Input[str]] = None, + db_cluster_parameter_group_name: Optional[pulumi.Input[str]] = None, + db_subnet_group_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + master_password: Optional[pulumi.Input[str]] = None, + master_username: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + reader_endpoint: Optional[pulumi.Input[str]] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if backup_retention_period is None and 'backupRetentionPeriod' in kwargs: + backup_retention_period = kwargs['backupRetentionPeriod'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier_prefix is None and 'clusterIdentifierPrefix' in kwargs: + cluster_identifier_prefix = kwargs['clusterIdentifierPrefix'] + if cluster_members is None and 'clusterMembers' in kwargs: + cluster_members = kwargs['clusterMembers'] + if cluster_resource_id is None and 'clusterResourceId' in kwargs: + cluster_resource_id = kwargs['clusterResourceId'] + if db_cluster_parameter_group_name is None and 'dbClusterParameterGroupName' in kwargs: + db_cluster_parameter_group_name = kwargs['dbClusterParameterGroupName'] + if db_subnet_group_name is None and 'dbSubnetGroupName' in kwargs: + db_subnet_group_name = kwargs['dbSubnetGroupName'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if enabled_cloudwatch_logs_exports is None and 'enabledCloudwatchLogsExports' in kwargs: + enabled_cloudwatch_logs_exports = kwargs['enabledCloudwatchLogsExports'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if master_password is None and 'masterPassword' in kwargs: + master_password = kwargs['masterPassword'] + if master_username is None and 'masterUsername' in kwargs: + master_username = kwargs['masterUsername'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if reader_endpoint is None and 'readerEndpoint' in kwargs: + reader_endpoint = kwargs['readerEndpoint'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if backup_retention_period is not None: - pulumi.set(__self__, "backup_retention_period", backup_retention_period) + _setter("backup_retention_period", backup_retention_period) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if cluster_identifier_prefix is not None: - pulumi.set(__self__, "cluster_identifier_prefix", cluster_identifier_prefix) + _setter("cluster_identifier_prefix", cluster_identifier_prefix) if cluster_members is not None: - pulumi.set(__self__, "cluster_members", cluster_members) + _setter("cluster_members", cluster_members) if cluster_resource_id is not None: - pulumi.set(__self__, "cluster_resource_id", cluster_resource_id) + _setter("cluster_resource_id", cluster_resource_id) if db_cluster_parameter_group_name is not None: - pulumi.set(__self__, "db_cluster_parameter_group_name", db_cluster_parameter_group_name) + _setter("db_cluster_parameter_group_name", db_cluster_parameter_group_name) if db_subnet_group_name is not None: - pulumi.set(__self__, "db_subnet_group_name", db_subnet_group_name) + _setter("db_subnet_group_name", db_subnet_group_name) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if enabled_cloudwatch_logs_exports is not None: - pulumi.set(__self__, "enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) + _setter("enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if global_cluster_identifier is not None: - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + _setter("global_cluster_identifier", global_cluster_identifier) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if master_password is not None: - pulumi.set(__self__, "master_password", master_password) + _setter("master_password", master_password) if master_username is not None: - pulumi.set(__self__, "master_username", master_username) + _setter("master_username", master_username) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if reader_endpoint is not None: - pulumi.set(__self__, "reader_endpoint", reader_endpoint) + _setter("reader_endpoint", reader_endpoint) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="allowMajorVersionUpgrade") @@ -1155,6 +1389,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/docdb/cluster_instance.py b/sdk/python/pulumi_aws/docdb/cluster_instance.py index 503fc356ced..68d27d7e9af 100644 --- a/sdk/python/pulumi_aws/docdb/cluster_instance.py +++ b/sdk/python/pulumi_aws/docdb/cluster_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterInstanceArgs', 'ClusterInstance'] @@ -72,34 +72,101 @@ def __init__(__self__, *, :param pulumi.Input[int] promotion_tier: Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the instance. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "instance_class", instance_class) + ClusterInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + instance_class=instance_class, + apply_immediately=apply_immediately, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + ca_cert_identifier=ca_cert_identifier, + copy_tags_to_snapshot=copy_tags_to_snapshot, + enable_performance_insights=enable_performance_insights, + engine=engine, + identifier=identifier, + identifier_prefix=identifier_prefix, + performance_insights_kms_key_id=performance_insights_kms_key_id, + preferred_maintenance_window=preferred_maintenance_window, + promotion_tier=promotion_tier, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + instance_class: Optional[pulumi.Input[str]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + ca_cert_identifier: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + enable_performance_insights: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + performance_insights_kms_key_id: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + promotion_tier: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if instance_class is None and 'instanceClass' in kwargs: + instance_class = kwargs['instanceClass'] + if instance_class is None: + raise TypeError("Missing 'instance_class' argument") + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if ca_cert_identifier is None and 'caCertIdentifier' in kwargs: + ca_cert_identifier = kwargs['caCertIdentifier'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if enable_performance_insights is None and 'enablePerformanceInsights' in kwargs: + enable_performance_insights = kwargs['enablePerformanceInsights'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + if performance_insights_kms_key_id is None and 'performanceInsightsKmsKeyId' in kwargs: + performance_insights_kms_key_id = kwargs['performanceInsightsKmsKeyId'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if promotion_tier is None and 'promotionTier' in kwargs: + promotion_tier = kwargs['promotionTier'] + + _setter("cluster_identifier", cluster_identifier) + _setter("instance_class", instance_class) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if ca_cert_identifier is not None: - pulumi.set(__self__, "ca_cert_identifier", ca_cert_identifier) + _setter("ca_cert_identifier", ca_cert_identifier) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if enable_performance_insights is not None: - pulumi.set(__self__, "enable_performance_insights", enable_performance_insights) + _setter("enable_performance_insights", enable_performance_insights) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if performance_insights_kms_key_id is not None: - pulumi.set(__self__, "performance_insights_kms_key_id", performance_insights_kms_key_id) + _setter("performance_insights_kms_key_id", performance_insights_kms_key_id) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if promotion_tier is not None: - pulumi.set(__self__, "promotion_tier", promotion_tier) + _setter("promotion_tier", promotion_tier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterIdentifier") @@ -391,63 +458,166 @@ def __init__(__self__, *, :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[bool] writer: Boolean indicating if this instance is writable. `False` indicates this instance is a read replica. """ + _ClusterInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_immediately=apply_immediately, + arn=arn, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + ca_cert_identifier=ca_cert_identifier, + cluster_identifier=cluster_identifier, + copy_tags_to_snapshot=copy_tags_to_snapshot, + db_subnet_group_name=db_subnet_group_name, + dbi_resource_id=dbi_resource_id, + enable_performance_insights=enable_performance_insights, + endpoint=endpoint, + engine=engine, + engine_version=engine_version, + identifier=identifier, + identifier_prefix=identifier_prefix, + instance_class=instance_class, + kms_key_id=kms_key_id, + performance_insights_kms_key_id=performance_insights_kms_key_id, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + promotion_tier=promotion_tier, + publicly_accessible=publicly_accessible, + storage_encrypted=storage_encrypted, + tags=tags, + tags_all=tags_all, + writer=writer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + ca_cert_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + db_subnet_group_name: Optional[pulumi.Input[str]] = None, + dbi_resource_id: Optional[pulumi.Input[str]] = None, + enable_performance_insights: Optional[pulumi.Input[bool]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + instance_class: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + performance_insights_kms_key_id: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + promotion_tier: Optional[pulumi.Input[int]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + writer: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if ca_cert_identifier is None and 'caCertIdentifier' in kwargs: + ca_cert_identifier = kwargs['caCertIdentifier'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if db_subnet_group_name is None and 'dbSubnetGroupName' in kwargs: + db_subnet_group_name = kwargs['dbSubnetGroupName'] + if dbi_resource_id is None and 'dbiResourceId' in kwargs: + dbi_resource_id = kwargs['dbiResourceId'] + if enable_performance_insights is None and 'enablePerformanceInsights' in kwargs: + enable_performance_insights = kwargs['enablePerformanceInsights'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + if instance_class is None and 'instanceClass' in kwargs: + instance_class = kwargs['instanceClass'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if performance_insights_kms_key_id is None and 'performanceInsightsKmsKeyId' in kwargs: + performance_insights_kms_key_id = kwargs['performanceInsightsKmsKeyId'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if promotion_tier is None and 'promotionTier' in kwargs: + promotion_tier = kwargs['promotionTier'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if ca_cert_identifier is not None: - pulumi.set(__self__, "ca_cert_identifier", ca_cert_identifier) + _setter("ca_cert_identifier", ca_cert_identifier) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if db_subnet_group_name is not None: - pulumi.set(__self__, "db_subnet_group_name", db_subnet_group_name) + _setter("db_subnet_group_name", db_subnet_group_name) if dbi_resource_id is not None: - pulumi.set(__self__, "dbi_resource_id", dbi_resource_id) + _setter("dbi_resource_id", dbi_resource_id) if enable_performance_insights is not None: - pulumi.set(__self__, "enable_performance_insights", enable_performance_insights) + _setter("enable_performance_insights", enable_performance_insights) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if instance_class is not None: - pulumi.set(__self__, "instance_class", instance_class) + _setter("instance_class", instance_class) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if performance_insights_kms_key_id is not None: - pulumi.set(__self__, "performance_insights_kms_key_id", performance_insights_kms_key_id) + _setter("performance_insights_kms_key_id", performance_insights_kms_key_id) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if promotion_tier is not None: - pulumi.set(__self__, "promotion_tier", promotion_tier) + _setter("promotion_tier", promotion_tier) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if writer is not None: - pulumi.set(__self__, "writer", writer) + _setter("writer", writer) @property @pulumi.getter(name="applyImmediately") @@ -961,6 +1131,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/docdb/cluster_parameter_group.py b/sdk/python/pulumi_aws/docdb/cluster_parameter_group.py index 9cf4d4e3b36..b80f2237d19 100644 --- a/sdk/python/pulumi_aws/docdb/cluster_parameter_group.py +++ b/sdk/python/pulumi_aws/docdb/cluster_parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,17 +31,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClusterParameterGroupParameterArgs']]] parameters: A list of DocumentDB parameters to apply. Setting parameters to system default values may show a difference on imported resources. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "family", family) + ClusterParameterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + family=family, + description=description, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family is None: + raise TypeError("Missing 'family' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("family", family) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -138,25 +163,54 @@ def __init__(__self__, *, :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. """ + _ClusterParameterGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + family=family, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if family is not None: - pulumi.set(__self__, "family", family) + _setter("family", family) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -347,6 +401,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterParameterGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/docdb/cluster_snapshot.py b/sdk/python/pulumi_aws/docdb/cluster_snapshot.py index 6fb961e829b..b18bd4c2dda 100644 --- a/sdk/python/pulumi_aws/docdb/cluster_snapshot.py +++ b/sdk/python/pulumi_aws/docdb/cluster_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterSnapshotArgs', 'ClusterSnapshot'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] db_cluster_identifier: The DocumentDB Cluster Identifier from which to take the snapshot. :param pulumi.Input[str] db_cluster_snapshot_identifier: The Identifier for the snapshot. """ - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) - pulumi.set(__self__, "db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) + ClusterSnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_identifier=db_cluster_identifier, + db_cluster_snapshot_identifier=db_cluster_snapshot_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_cluster_identifier is None: + raise TypeError("Missing 'db_cluster_identifier' argument") + if db_cluster_snapshot_identifier is None and 'dbClusterSnapshotIdentifier' in kwargs: + db_cluster_snapshot_identifier = kwargs['dbClusterSnapshotIdentifier'] + if db_cluster_snapshot_identifier is None: + raise TypeError("Missing 'db_cluster_snapshot_identifier' argument") + + _setter("db_cluster_identifier", db_cluster_identifier) + _setter("db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) @property @pulumi.getter(name="dbClusterIdentifier") @@ -79,32 +100,87 @@ def __init__(__self__, *, :param pulumi.Input[bool] storage_encrypted: Specifies whether the DocumentDB cluster snapshot is encrypted. :param pulumi.Input[str] vpc_id: The VPC ID associated with the DocumentDB cluster snapshot. """ + _ClusterSnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + db_cluster_identifier=db_cluster_identifier, + db_cluster_snapshot_arn=db_cluster_snapshot_arn, + db_cluster_snapshot_identifier=db_cluster_snapshot_identifier, + engine=engine, + engine_version=engine_version, + kms_key_id=kms_key_id, + port=port, + snapshot_type=snapshot_type, + source_db_cluster_snapshot_arn=source_db_cluster_snapshot_arn, + status=status, + storage_encrypted=storage_encrypted, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + db_cluster_snapshot_arn: Optional[pulumi.Input[str]] = None, + db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + snapshot_type: Optional[pulumi.Input[str]] = None, + source_db_cluster_snapshot_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_cluster_snapshot_arn is None and 'dbClusterSnapshotArn' in kwargs: + db_cluster_snapshot_arn = kwargs['dbClusterSnapshotArn'] + if db_cluster_snapshot_identifier is None and 'dbClusterSnapshotIdentifier' in kwargs: + db_cluster_snapshot_identifier = kwargs['dbClusterSnapshotIdentifier'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_type is None and 'snapshotType' in kwargs: + snapshot_type = kwargs['snapshotType'] + if source_db_cluster_snapshot_arn is None and 'sourceDbClusterSnapshotArn' in kwargs: + source_db_cluster_snapshot_arn = kwargs['sourceDbClusterSnapshotArn'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if db_cluster_identifier is not None: - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) + _setter("db_cluster_identifier", db_cluster_identifier) if db_cluster_snapshot_arn is not None: - pulumi.set(__self__, "db_cluster_snapshot_arn", db_cluster_snapshot_arn) + _setter("db_cluster_snapshot_arn", db_cluster_snapshot_arn) if db_cluster_snapshot_identifier is not None: - pulumi.set(__self__, "db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) + _setter("db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if snapshot_type is not None: - pulumi.set(__self__, "snapshot_type", snapshot_type) + _setter("snapshot_type", snapshot_type) if source_db_cluster_snapshot_arn is not None: - pulumi.set(__self__, "source_db_cluster_snapshot_arn", source_db_cluster_snapshot_arn) + _setter("source_db_cluster_snapshot_arn", source_db_cluster_snapshot_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="availabilityZones") @@ -330,6 +406,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterSnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/docdb/event_subscription.py b/sdk/python/pulumi_aws/docdb/event_subscription.py index 2b4148358ba..651f3c0f4df 100644 --- a/sdk/python/pulumi_aws/docdb/event_subscription.py +++ b/sdk/python/pulumi_aws/docdb/event_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventSubscriptionArgs', 'EventSubscription'] @@ -32,21 +32,58 @@ def __init__(__self__, *, :param pulumi.Input[str] source_type: The type of source that will be generating the events. Valid options are `db-instance`, `db-cluster`, `db-parameter-group`, `db-security-group`,` db-cluster-snapshot`. If not set, all sources will be subscribed to. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + EventSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sns_topic_arn=sns_topic_arn, + enabled=enabled, + event_categories=event_categories, + name=name, + name_prefix=name_prefix, + source_ids=source_ids, + source_type=source_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sns_topic_arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if sns_topic_arn is None: + raise TypeError("Missing 'sns_topic_arn' argument") + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + + _setter("sns_topic_arn", sns_topic_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_categories is not None: - pulumi.set(__self__, "event_categories", event_categories) + _setter("event_categories", event_categories) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="snsTopicArn") @@ -169,31 +206,76 @@ def __init__(__self__, *, :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. """ + _EventSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + customer_aws_id=customer_aws_id, + enabled=enabled, + event_categories=event_categories, + name=name, + name_prefix=name_prefix, + sns_topic_arn=sns_topic_arn, + source_ids=source_ids, + source_type=source_type, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + customer_aws_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_aws_id is None and 'customerAwsId' in kwargs: + customer_aws_id = kwargs['customerAwsId'] + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if customer_aws_id is not None: - pulumi.set(__self__, "customer_aws_id", customer_aws_id) + _setter("customer_aws_id", customer_aws_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_categories is not None: - pulumi.set(__self__, "event_categories", event_categories) + _setter("event_categories", event_categories) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -446,6 +528,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/docdb/get_engine_version.py b/sdk/python/pulumi_aws/docdb/get_engine_version.py index 2bab53c0e8d..034cae26955 100644 --- a/sdk/python/pulumi_aws/docdb/get_engine_version.py +++ b/sdk/python/pulumi_aws/docdb/get_engine_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/docdb/get_orderable_db_instance.py b/sdk/python/pulumi_aws/docdb/get_orderable_db_instance.py index ad24e4858a2..795e8c052aa 100644 --- a/sdk/python/pulumi_aws/docdb/get_orderable_db_instance.py +++ b/sdk/python/pulumi_aws/docdb/get_orderable_db_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/docdb/global_cluster.py b/sdk/python/pulumi_aws/docdb/global_cluster.py index 35a20624266..70f16b4ea8a 100644 --- a/sdk/python/pulumi_aws/docdb/global_cluster.py +++ b/sdk/python/pulumi_aws/docdb/global_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -34,19 +34,56 @@ def __init__(__self__, *, :param pulumi.Input[str] source_db_cluster_identifier: Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value. :param pulumi.Input[bool] storage_encrypted: Specifies whether the DB cluster is encrypted. The default is `false` unless `source_db_cluster_identifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided. """ - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + GlobalClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_cluster_identifier=global_cluster_identifier, + database_name=database_name, + deletion_protection=deletion_protection, + engine=engine, + engine_version=engine_version, + source_db_cluster_identifier=source_db_cluster_identifier, + storage_encrypted=storage_encrypted, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + source_db_cluster_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if global_cluster_identifier is None: + raise TypeError("Missing 'global_cluster_identifier' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if source_db_cluster_identifier is None and 'sourceDbClusterIdentifier' in kwargs: + source_db_cluster_identifier = kwargs['sourceDbClusterIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + + _setter("global_cluster_identifier", global_cluster_identifier) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if source_db_cluster_identifier is not None: - pulumi.set(__self__, "source_db_cluster_identifier", source_db_cluster_identifier) + _setter("source_db_cluster_identifier", source_db_cluster_identifier) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) @property @pulumi.getter(name="globalClusterIdentifier") @@ -162,28 +199,75 @@ def __init__(__self__, *, :param pulumi.Input[str] source_db_cluster_identifier: Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value. :param pulumi.Input[bool] storage_encrypted: Specifies whether the DB cluster is encrypted. The default is `false` unless `source_db_cluster_identifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided. """ + _GlobalClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + database_name=database_name, + deletion_protection=deletion_protection, + engine=engine, + engine_version=engine_version, + global_cluster_identifier=global_cluster_identifier, + global_cluster_members=global_cluster_members, + global_cluster_resource_id=global_cluster_resource_id, + source_db_cluster_identifier=source_db_cluster_identifier, + status=status, + storage_encrypted=storage_encrypted, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + global_cluster_members: Optional[pulumi.Input[Sequence[pulumi.Input['GlobalClusterGlobalClusterMemberArgs']]]] = None, + global_cluster_resource_id: Optional[pulumi.Input[str]] = None, + source_db_cluster_identifier: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if global_cluster_members is None and 'globalClusterMembers' in kwargs: + global_cluster_members = kwargs['globalClusterMembers'] + if global_cluster_resource_id is None and 'globalClusterResourceId' in kwargs: + global_cluster_resource_id = kwargs['globalClusterResourceId'] + if source_db_cluster_identifier is None and 'sourceDbClusterIdentifier' in kwargs: + source_db_cluster_identifier = kwargs['sourceDbClusterIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if global_cluster_identifier is not None: - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + _setter("global_cluster_identifier", global_cluster_identifier) if global_cluster_members is not None: - pulumi.set(__self__, "global_cluster_members", global_cluster_members) + _setter("global_cluster_members", global_cluster_members) if global_cluster_resource_id is not None: - pulumi.set(__self__, "global_cluster_resource_id", global_cluster_resource_id) + _setter("global_cluster_resource_id", global_cluster_resource_id) if source_db_cluster_identifier is not None: - pulumi.set(__self__, "source_db_cluster_identifier", source_db_cluster_identifier) + _setter("source_db_cluster_identifier", source_db_cluster_identifier) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) @property @pulumi.getter @@ -498,6 +582,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GlobalClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/docdb/outputs.py b/sdk/python/pulumi_aws/docdb/outputs.py index 3069b2941bd..63e25fdb18a 100644 --- a/sdk/python/pulumi_aws/docdb/outputs.py +++ b/sdk/python/pulumi_aws/docdb/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -42,10 +42,31 @@ def __init__(__self__, *, :param str value: The value of the DocumentDB parameter. :param str apply_method: Valid values are `immediate` and `pending-reboot`. Defaults to `pending-reboot`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ClusterParameterGroupParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + apply_method: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter @@ -100,10 +121,27 @@ def __init__(__self__, *, :param str db_cluster_arn: Amazon Resource Name (ARN) of member DB Cluster. :param bool is_writer: Whether the member is the primary DB Cluster. """ + GlobalClusterGlobalClusterMember._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_arn=db_cluster_arn, + is_writer=is_writer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_arn: Optional[str] = None, + is_writer: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_arn is None and 'dbClusterArn' in kwargs: + db_cluster_arn = kwargs['dbClusterArn'] + if is_writer is None and 'isWriter' in kwargs: + is_writer = kwargs['isWriter'] + if db_cluster_arn is not None: - pulumi.set(__self__, "db_cluster_arn", db_cluster_arn) + _setter("db_cluster_arn", db_cluster_arn) if is_writer is not None: - pulumi.set(__self__, "is_writer", is_writer) + _setter("is_writer", is_writer) @property @pulumi.getter(name="dbClusterArn") diff --git a/sdk/python/pulumi_aws/docdb/subnet_group.py b/sdk/python/pulumi_aws/docdb/subnet_group.py index fa940899cb1..ce75db17bdc 100644 --- a/sdk/python/pulumi_aws/docdb/subnet_group.py +++ b/sdk/python/pulumi_aws/docdb/subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SubnetGroupArgs', 'SubnetGroup'] @@ -27,17 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + SubnetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + description=description, + name=name, + name_prefix=name_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("subnet_ids", subnet_ids) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="subnetIds") @@ -120,25 +145,54 @@ def __init__(__self__, *, :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. """ + _SubnetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + name_prefix=name_prefix, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -317,6 +371,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SubnetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dynamodb/_inputs.py b/sdk/python/pulumi_aws/dynamodb/_inputs.py index 52d62a0ef51..7cbfe9492e1 100644 --- a/sdk/python/pulumi_aws/dynamodb/_inputs.py +++ b/sdk/python/pulumi_aws/dynamodb/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -32,7 +32,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] region_name: AWS region name of replica DynamoDB TableE.g., `us-east-1` """ - pulumi.set(__self__, "region_name", region_name) + GlobalTableReplicaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + region_name=region_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + + _setter("region_name", region_name) @property @pulumi.getter(name="regionName") @@ -56,8 +71,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the attribute :param pulumi.Input[str] type: Attribute type. Valid values are `S` (string), `N` (number), `B` (binary). """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + TableAttributeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -103,17 +135,58 @@ def __init__(__self__, *, :param pulumi.Input[int] read_capacity: Number of read units for this index. Must be set if billing_mode is set to PROVISIONED. :param pulumi.Input[int] write_capacity: Number of write units for this index. Must be set if billing_mode is set to PROVISIONED. """ - pulumi.set(__self__, "hash_key", hash_key) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "projection_type", projection_type) + TableGlobalSecondaryIndexArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hash_key=hash_key, + name=name, + projection_type=projection_type, + non_key_attributes=non_key_attributes, + range_key=range_key, + read_capacity=read_capacity, + write_capacity=write_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hash_key: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + projection_type: Optional[pulumi.Input[str]] = None, + non_key_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + range_key: Optional[pulumi.Input[str]] = None, + read_capacity: Optional[pulumi.Input[int]] = None, + write_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hash_key is None and 'hashKey' in kwargs: + hash_key = kwargs['hashKey'] + if hash_key is None: + raise TypeError("Missing 'hash_key' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if projection_type is None and 'projectionType' in kwargs: + projection_type = kwargs['projectionType'] + if projection_type is None: + raise TypeError("Missing 'projection_type' argument") + if non_key_attributes is None and 'nonKeyAttributes' in kwargs: + non_key_attributes = kwargs['nonKeyAttributes'] + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + if read_capacity is None and 'readCapacity' in kwargs: + read_capacity = kwargs['readCapacity'] + if write_capacity is None and 'writeCapacity' in kwargs: + write_capacity = kwargs['writeCapacity'] + + _setter("hash_key", hash_key) + _setter("name", name) + _setter("projection_type", projection_type) if non_key_attributes is not None: - pulumi.set(__self__, "non_key_attributes", non_key_attributes) + _setter("non_key_attributes", non_key_attributes) if range_key is not None: - pulumi.set(__self__, "range_key", range_key) + _setter("range_key", range_key) if read_capacity is not None: - pulumi.set(__self__, "read_capacity", read_capacity) + _setter("read_capacity", read_capacity) if write_capacity is not None: - pulumi.set(__self__, "write_capacity", write_capacity) + _setter("write_capacity", write_capacity) @property @pulumi.getter(name="hashKey") @@ -213,12 +286,41 @@ def __init__(__self__, *, :param pulumi.Input[str] input_compression_type: Type of compression to be used on the input coming from the imported table. Valid values are `GZIP`, `ZSTD` and `NONE`. :param pulumi.Input['TableImportTableInputFormatOptionsArgs'] input_format_options: Describe the format options for the data that was imported into the target table. There is one value, `csv`. See below. """ - pulumi.set(__self__, "input_format", input_format) - pulumi.set(__self__, "s3_bucket_source", s3_bucket_source) + TableImportTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_format=input_format, + s3_bucket_source=s3_bucket_source, + input_compression_type=input_compression_type, + input_format_options=input_format_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_format: Optional[pulumi.Input[str]] = None, + s3_bucket_source: Optional[pulumi.Input['TableImportTableS3BucketSourceArgs']] = None, + input_compression_type: Optional[pulumi.Input[str]] = None, + input_format_options: Optional[pulumi.Input['TableImportTableInputFormatOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_format is None and 'inputFormat' in kwargs: + input_format = kwargs['inputFormat'] + if input_format is None: + raise TypeError("Missing 'input_format' argument") + if s3_bucket_source is None and 's3BucketSource' in kwargs: + s3_bucket_source = kwargs['s3BucketSource'] + if s3_bucket_source is None: + raise TypeError("Missing 's3_bucket_source' argument") + if input_compression_type is None and 'inputCompressionType' in kwargs: + input_compression_type = kwargs['inputCompressionType'] + if input_format_options is None and 'inputFormatOptions' in kwargs: + input_format_options = kwargs['inputFormatOptions'] + + _setter("input_format", input_format) + _setter("s3_bucket_source", s3_bucket_source) if input_compression_type is not None: - pulumi.set(__self__, "input_compression_type", input_compression_type) + _setter("input_compression_type", input_compression_type) if input_format_options is not None: - pulumi.set(__self__, "input_format_options", input_format_options) + _setter("input_format_options", input_format_options) @property @pulumi.getter(name="inputFormat") @@ -276,8 +378,19 @@ def __init__(__self__, *, """ :param pulumi.Input['TableImportTableInputFormatOptionsCsvArgs'] csv: This block contains the processing options for the CSV file being imported: """ + TableImportTableInputFormatOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv=csv, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv: Optional[pulumi.Input['TableImportTableInputFormatOptionsCsvArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv is not None: - pulumi.set(__self__, "csv", csv) + _setter("csv", csv) @property @pulumi.getter @@ -301,10 +414,25 @@ def __init__(__self__, *, :param pulumi.Input[str] delimiter: The delimiter used for separating items in the CSV file being imported. :param pulumi.Input[Sequence[pulumi.Input[str]]] header_lists: List of the headers used to specify a common header for all source CSV files being imported. """ + TableImportTableInputFormatOptionsCsvArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delimiter=delimiter, + header_lists=header_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delimiter: Optional[pulumi.Input[str]] = None, + header_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_lists is None and 'headerLists' in kwargs: + header_lists = kwargs['headerLists'] + if delimiter is not None: - pulumi.set(__self__, "delimiter", delimiter) + _setter("delimiter", delimiter) if header_lists is not None: - pulumi.set(__self__, "header_lists", header_lists) + _setter("header_lists", header_lists) @property @pulumi.getter @@ -342,11 +470,32 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_owner: The account number of the S3 bucket that is being imported from. :param pulumi.Input[str] key_prefix: The key prefix shared by all S3 Objects that are being imported. """ - pulumi.set(__self__, "bucket", bucket) + TableImportTableS3BucketSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + bucket_owner=bucket_owner, + key_prefix=key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + bucket_owner: Optional[pulumi.Input[str]] = None, + key_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_owner is None and 'bucketOwner' in kwargs: + bucket_owner = kwargs['bucketOwner'] + if key_prefix is None and 'keyPrefix' in kwargs: + key_prefix = kwargs['keyPrefix'] + + _setter("bucket", bucket) if bucket_owner is not None: - pulumi.set(__self__, "bucket_owner", bucket_owner) + _setter("bucket_owner", bucket_owner) if key_prefix is not None: - pulumi.set(__self__, "key_prefix", key_prefix) + _setter("key_prefix", key_prefix) @property @pulumi.getter @@ -398,11 +547,40 @@ def __init__(__self__, *, :param pulumi.Input[str] range_key: Name of the range key. :param pulumi.Input[Sequence[pulumi.Input[str]]] non_key_attributes: Only required with `INCLUDE` as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "projection_type", projection_type) - pulumi.set(__self__, "range_key", range_key) + TableLocalSecondaryIndexArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + projection_type=projection_type, + range_key=range_key, + non_key_attributes=non_key_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + projection_type: Optional[pulumi.Input[str]] = None, + range_key: Optional[pulumi.Input[str]] = None, + non_key_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if projection_type is None and 'projectionType' in kwargs: + projection_type = kwargs['projectionType'] + if projection_type is None: + raise TypeError("Missing 'projection_type' argument") + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + if range_key is None: + raise TypeError("Missing 'range_key' argument") + if non_key_attributes is None and 'nonKeyAttributes' in kwargs: + non_key_attributes = kwargs['nonKeyAttributes'] + + _setter("name", name) + _setter("projection_type", projection_type) + _setter("range_key", range_key) if non_key_attributes is not None: - pulumi.set(__self__, "non_key_attributes", non_key_attributes) + _setter("non_key_attributes", non_key_attributes) @property @pulumi.getter @@ -460,7 +638,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the `point_in_time_recovery` block is not provided, this defaults to `false`. """ - pulumi.set(__self__, "enabled", enabled) + TablePointInTimeRecoveryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -494,19 +685,56 @@ def __init__(__self__, *, :param pulumi.Input[str] stream_arn: ARN of the Table Stream. Only available when `stream_enabled = true` :param pulumi.Input[str] stream_label: Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when `stream_enabled = true`. """ - pulumi.set(__self__, "region_name", region_name) + TableReplicaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + region_name=region_name, + arn=arn, + kms_key_arn=kms_key_arn, + point_in_time_recovery=point_in_time_recovery, + propagate_tags=propagate_tags, + stream_arn=stream_arn, + stream_label=stream_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region_name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + point_in_time_recovery: Optional[pulumi.Input[bool]] = None, + propagate_tags: Optional[pulumi.Input[bool]] = None, + stream_arn: Optional[pulumi.Input[str]] = None, + stream_label: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if point_in_time_recovery is None and 'pointInTimeRecovery' in kwargs: + point_in_time_recovery = kwargs['pointInTimeRecovery'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_label is None and 'streamLabel' in kwargs: + stream_label = kwargs['streamLabel'] + + _setter("region_name", region_name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if point_in_time_recovery is not None: - pulumi.set(__self__, "point_in_time_recovery", point_in_time_recovery) + _setter("point_in_time_recovery", point_in_time_recovery) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if stream_arn is not None: - pulumi.set(__self__, "stream_arn", stream_arn) + _setter("stream_arn", stream_arn) if stream_label is not None: - pulumi.set(__self__, "stream_label", stream_label) + _setter("stream_label", stream_label) @property @pulumi.getter(name="regionName") @@ -602,9 +830,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If `enabled` is `false` then server-side encryption is set to AWS-_owned_ key (shown as `DEFAULT` in the AWS console). Potentially confusingly, if `enabled` is `true` and no `kms_key_arn` is specified then server-side encryption is set to the _default_ KMS-_managed_ key (shown as `KMS` in the AWS console). The [AWS KMS documentation](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) explains the difference between AWS-_owned_ and KMS-_managed_ keys. :param pulumi.Input[str] kms_key_arn: ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, `alias/aws/dynamodb`. **Note:** This attribute will _not_ be populated with the ARN of _default_ keys. """ - pulumi.set(__self__, "enabled", enabled) + TableServerSideEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("enabled", enabled) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter @@ -640,9 +885,26 @@ def __init__(__self__, *, :param pulumi.Input[str] attribute_name: Name of the table attribute to store the TTL timestamp in. :param pulumi.Input[bool] enabled: Whether TTL is enabled. """ - pulumi.set(__self__, "attribute_name", attribute_name) + TableTtlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_name=attribute_name, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_name: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_name is None and 'attributeName' in kwargs: + attribute_name = kwargs['attributeName'] + if attribute_name is None: + raise TypeError("Missing 'attribute_name' argument") + + _setter("attribute_name", attribute_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="attributeName") @@ -674,8 +936,27 @@ class GetTableServerSideEncryptionArgs: def __init__(__self__, *, enabled: bool, kms_key_arn: str): - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + GetTableServerSideEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + kms_key_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if kms_key_arn is None: + raise TypeError("Missing 'kms_key_arn' argument") + + _setter("enabled", enabled) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/dynamodb/contributor_insights.py b/sdk/python/pulumi_aws/dynamodb/contributor_insights.py index 0b9b2eb00c3..c001fc9fadd 100644 --- a/sdk/python/pulumi_aws/dynamodb/contributor_insights.py +++ b/sdk/python/pulumi_aws/dynamodb/contributor_insights.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ContributorInsightsArgs', 'ContributorInsights'] @@ -21,9 +21,28 @@ def __init__(__self__, *, :param pulumi.Input[str] table_name: The name of the table to enable contributor insights :param pulumi.Input[str] index_name: The global secondary index name """ - pulumi.set(__self__, "table_name", table_name) + ContributorInsightsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + table_name=table_name, + index_name=index_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + table_name: Optional[pulumi.Input[str]] = None, + index_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + + _setter("table_name", table_name) if index_name is not None: - pulumi.set(__self__, "index_name", index_name) + _setter("index_name", index_name) @property @pulumi.getter(name="tableName") @@ -60,10 +79,27 @@ def __init__(__self__, *, :param pulumi.Input[str] index_name: The global secondary index name :param pulumi.Input[str] table_name: The name of the table to enable contributor insights """ + _ContributorInsightsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if index_name is not None: - pulumi.set(__self__, "index_name", index_name) + _setter("index_name", index_name) if table_name is not None: - pulumi.set(__self__, "table_name", table_name) + _setter("table_name", table_name) @property @pulumi.getter(name="indexName") @@ -159,6 +195,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContributorInsightsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dynamodb/get_table.py b/sdk/python/pulumi_aws/dynamodb/get_table.py index da4761f7e4e..af702ac098f 100644 --- a/sdk/python/pulumi_aws/dynamodb/get_table.py +++ b/sdk/python/pulumi_aws/dynamodb/get_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/dynamodb/get_table_item.py b/sdk/python/pulumi_aws/dynamodb/get_table_item.py index f5e2eca8413..0f677359407 100644 --- a/sdk/python/pulumi_aws/dynamodb/get_table_item.py +++ b/sdk/python/pulumi_aws/dynamodb/get_table_item.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/dynamodb/global_table.py b/sdk/python/pulumi_aws/dynamodb/global_table.py index 0c2dc4e1139..f57fea57257 100644 --- a/sdk/python/pulumi_aws/dynamodb/global_table.py +++ b/sdk/python/pulumi_aws/dynamodb/global_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,24 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['GlobalTableReplicaArgs']]] replicas: Underlying DynamoDB Table. At least 1 replica must be defined. See below. :param pulumi.Input[str] name: The name of the global table. Must match underlying DynamoDB Table names in all regions. """ - pulumi.set(__self__, "replicas", replicas) + GlobalTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + replicas=replicas, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replicas: Optional[pulumi.Input[Sequence[pulumi.Input['GlobalTableReplicaArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replicas is None: + raise TypeError("Missing 'replicas' argument") + + _setter("replicas", replicas) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -64,12 +79,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the global table. Must match underlying DynamoDB Table names in all regions. :param pulumi.Input[Sequence[pulumi.Input['GlobalTableReplicaArgs']]] replicas: Underlying DynamoDB Table. At least 1 replica must be defined. See below. """ + _GlobalTableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + replicas=replicas, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + replicas: Optional[pulumi.Input[Sequence[pulumi.Input['GlobalTableReplicaArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if replicas is not None: - pulumi.set(__self__, "replicas", replicas) + _setter("replicas", replicas) @property @pulumi.getter @@ -257,6 +287,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GlobalTableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dynamodb/kinesis_streaming_destination.py b/sdk/python/pulumi_aws/dynamodb/kinesis_streaming_destination.py index 73c88e02388..c1b555f00d7 100644 --- a/sdk/python/pulumi_aws/dynamodb/kinesis_streaming_destination.py +++ b/sdk/python/pulumi_aws/dynamodb/kinesis_streaming_destination.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KinesisStreamingDestinationArgs', 'KinesisStreamingDestination'] @@ -22,8 +22,29 @@ def __init__(__self__, *, :param pulumi.Input[str] table_name: The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. """ - pulumi.set(__self__, "stream_arn", stream_arn) - pulumi.set(__self__, "table_name", table_name) + KinesisStreamingDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_arn=stream_arn, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_arn: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("stream_arn", stream_arn) + _setter("table_name", table_name) @property @pulumi.getter(name="streamArn") @@ -62,10 +83,27 @@ def __init__(__self__, *, :param pulumi.Input[str] table_name: The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. """ + _KinesisStreamingDestinationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_arn=stream_arn, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_arn: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if stream_arn is not None: - pulumi.set(__self__, "stream_arn", stream_arn) + _setter("stream_arn", stream_arn) if table_name is not None: - pulumi.set(__self__, "table_name", table_name) + _setter("table_name", table_name) @property @pulumi.getter(name="streamArn") @@ -181,6 +219,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KinesisStreamingDestinationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dynamodb/outputs.py b/sdk/python/pulumi_aws/dynamodb/outputs.py index a3a1193397a..b654bcb1be4 100644 --- a/sdk/python/pulumi_aws/dynamodb/outputs.py +++ b/sdk/python/pulumi_aws/dynamodb/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -56,7 +56,22 @@ def __init__(__self__, *, """ :param str region_name: AWS region name of replica DynamoDB TableE.g., `us-east-1` """ - pulumi.set(__self__, "region_name", region_name) + GlobalTableReplica._configure( + lambda key, value: pulumi.set(__self__, key, value), + region_name=region_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + + _setter("region_name", region_name) @property @pulumi.getter(name="regionName") @@ -76,8 +91,25 @@ def __init__(__self__, *, :param str name: Name of the attribute :param str type: Attribute type. Valid values are `S` (string), `N` (number), `B` (binary). """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + TableAttribute._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -142,17 +174,58 @@ def __init__(__self__, *, :param int read_capacity: Number of read units for this index. Must be set if billing_mode is set to PROVISIONED. :param int write_capacity: Number of write units for this index. Must be set if billing_mode is set to PROVISIONED. """ - pulumi.set(__self__, "hash_key", hash_key) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "projection_type", projection_type) + TableGlobalSecondaryIndex._configure( + lambda key, value: pulumi.set(__self__, key, value), + hash_key=hash_key, + name=name, + projection_type=projection_type, + non_key_attributes=non_key_attributes, + range_key=range_key, + read_capacity=read_capacity, + write_capacity=write_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hash_key: Optional[str] = None, + name: Optional[str] = None, + projection_type: Optional[str] = None, + non_key_attributes: Optional[Sequence[str]] = None, + range_key: Optional[str] = None, + read_capacity: Optional[int] = None, + write_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hash_key is None and 'hashKey' in kwargs: + hash_key = kwargs['hashKey'] + if hash_key is None: + raise TypeError("Missing 'hash_key' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if projection_type is None and 'projectionType' in kwargs: + projection_type = kwargs['projectionType'] + if projection_type is None: + raise TypeError("Missing 'projection_type' argument") + if non_key_attributes is None and 'nonKeyAttributes' in kwargs: + non_key_attributes = kwargs['nonKeyAttributes'] + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + if read_capacity is None and 'readCapacity' in kwargs: + read_capacity = kwargs['readCapacity'] + if write_capacity is None and 'writeCapacity' in kwargs: + write_capacity = kwargs['writeCapacity'] + + _setter("hash_key", hash_key) + _setter("name", name) + _setter("projection_type", projection_type) if non_key_attributes is not None: - pulumi.set(__self__, "non_key_attributes", non_key_attributes) + _setter("non_key_attributes", non_key_attributes) if range_key is not None: - pulumi.set(__self__, "range_key", range_key) + _setter("range_key", range_key) if read_capacity is not None: - pulumi.set(__self__, "read_capacity", read_capacity) + _setter("read_capacity", read_capacity) if write_capacity is not None: - pulumi.set(__self__, "write_capacity", write_capacity) + _setter("write_capacity", write_capacity) @property @pulumi.getter(name="hashKey") @@ -247,12 +320,41 @@ def __init__(__self__, *, :param str input_compression_type: Type of compression to be used on the input coming from the imported table. Valid values are `GZIP`, `ZSTD` and `NONE`. :param 'TableImportTableInputFormatOptionsArgs' input_format_options: Describe the format options for the data that was imported into the target table. There is one value, `csv`. See below. """ - pulumi.set(__self__, "input_format", input_format) - pulumi.set(__self__, "s3_bucket_source", s3_bucket_source) + TableImportTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_format=input_format, + s3_bucket_source=s3_bucket_source, + input_compression_type=input_compression_type, + input_format_options=input_format_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_format: Optional[str] = None, + s3_bucket_source: Optional['outputs.TableImportTableS3BucketSource'] = None, + input_compression_type: Optional[str] = None, + input_format_options: Optional['outputs.TableImportTableInputFormatOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_format is None and 'inputFormat' in kwargs: + input_format = kwargs['inputFormat'] + if input_format is None: + raise TypeError("Missing 'input_format' argument") + if s3_bucket_source is None and 's3BucketSource' in kwargs: + s3_bucket_source = kwargs['s3BucketSource'] + if s3_bucket_source is None: + raise TypeError("Missing 's3_bucket_source' argument") + if input_compression_type is None and 'inputCompressionType' in kwargs: + input_compression_type = kwargs['inputCompressionType'] + if input_format_options is None and 'inputFormatOptions' in kwargs: + input_format_options = kwargs['inputFormatOptions'] + + _setter("input_format", input_format) + _setter("s3_bucket_source", s3_bucket_source) if input_compression_type is not None: - pulumi.set(__self__, "input_compression_type", input_compression_type) + _setter("input_compression_type", input_compression_type) if input_format_options is not None: - pulumi.set(__self__, "input_format_options", input_format_options) + _setter("input_format_options", input_format_options) @property @pulumi.getter(name="inputFormat") @@ -294,8 +396,19 @@ def __init__(__self__, *, """ :param 'TableImportTableInputFormatOptionsCsvArgs' csv: This block contains the processing options for the CSV file being imported: """ + TableImportTableInputFormatOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv=csv, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv: Optional['outputs.TableImportTableInputFormatOptionsCsv'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv is not None: - pulumi.set(__self__, "csv", csv) + _setter("csv", csv) @property @pulumi.getter @@ -332,10 +445,25 @@ def __init__(__self__, *, :param str delimiter: The delimiter used for separating items in the CSV file being imported. :param Sequence[str] header_lists: List of the headers used to specify a common header for all source CSV files being imported. """ + TableImportTableInputFormatOptionsCsv._configure( + lambda key, value: pulumi.set(__self__, key, value), + delimiter=delimiter, + header_lists=header_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delimiter: Optional[str] = None, + header_lists: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_lists is None and 'headerLists' in kwargs: + header_lists = kwargs['headerLists'] + if delimiter is not None: - pulumi.set(__self__, "delimiter", delimiter) + _setter("delimiter", delimiter) if header_lists is not None: - pulumi.set(__self__, "header_lists", header_lists) + _setter("header_lists", header_lists) @property @pulumi.getter @@ -384,11 +512,32 @@ def __init__(__self__, *, :param str bucket_owner: The account number of the S3 bucket that is being imported from. :param str key_prefix: The key prefix shared by all S3 Objects that are being imported. """ - pulumi.set(__self__, "bucket", bucket) + TableImportTableS3BucketSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + bucket_owner=bucket_owner, + key_prefix=key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + bucket_owner: Optional[str] = None, + key_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_owner is None and 'bucketOwner' in kwargs: + bucket_owner = kwargs['bucketOwner'] + if key_prefix is None and 'keyPrefix' in kwargs: + key_prefix = kwargs['keyPrefix'] + + _setter("bucket", bucket) if bucket_owner is not None: - pulumi.set(__self__, "bucket_owner", bucket_owner) + _setter("bucket_owner", bucket_owner) if key_prefix is not None: - pulumi.set(__self__, "key_prefix", key_prefix) + _setter("key_prefix", key_prefix) @property @pulumi.getter @@ -449,11 +598,40 @@ def __init__(__self__, *, :param str range_key: Name of the range key. :param Sequence[str] non_key_attributes: Only required with `INCLUDE` as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "projection_type", projection_type) - pulumi.set(__self__, "range_key", range_key) + TableLocalSecondaryIndex._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + projection_type=projection_type, + range_key=range_key, + non_key_attributes=non_key_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + projection_type: Optional[str] = None, + range_key: Optional[str] = None, + non_key_attributes: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if projection_type is None and 'projectionType' in kwargs: + projection_type = kwargs['projectionType'] + if projection_type is None: + raise TypeError("Missing 'projection_type' argument") + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + if range_key is None: + raise TypeError("Missing 'range_key' argument") + if non_key_attributes is None and 'nonKeyAttributes' in kwargs: + non_key_attributes = kwargs['nonKeyAttributes'] + + _setter("name", name) + _setter("projection_type", projection_type) + _setter("range_key", range_key) if non_key_attributes is not None: - pulumi.set(__self__, "non_key_attributes", non_key_attributes) + _setter("non_key_attributes", non_key_attributes) @property @pulumi.getter @@ -495,7 +673,20 @@ def __init__(__self__, *, """ :param bool enabled: Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the `point_in_time_recovery` block is not provided, this defaults to `false`. """ - pulumi.set(__self__, "enabled", enabled) + TablePointInTimeRecovery._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -552,19 +743,56 @@ def __init__(__self__, *, :param str stream_arn: ARN of the Table Stream. Only available when `stream_enabled = true` :param str stream_label: Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when `stream_enabled = true`. """ - pulumi.set(__self__, "region_name", region_name) + TableReplica._configure( + lambda key, value: pulumi.set(__self__, key, value), + region_name=region_name, + arn=arn, + kms_key_arn=kms_key_arn, + point_in_time_recovery=point_in_time_recovery, + propagate_tags=propagate_tags, + stream_arn=stream_arn, + stream_label=stream_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region_name: Optional[str] = None, + arn: Optional[str] = None, + kms_key_arn: Optional[str] = None, + point_in_time_recovery: Optional[bool] = None, + propagate_tags: Optional[bool] = None, + stream_arn: Optional[str] = None, + stream_label: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if point_in_time_recovery is None and 'pointInTimeRecovery' in kwargs: + point_in_time_recovery = kwargs['pointInTimeRecovery'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_label is None and 'streamLabel' in kwargs: + stream_label = kwargs['streamLabel'] + + _setter("region_name", region_name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if point_in_time_recovery is not None: - pulumi.set(__self__, "point_in_time_recovery", point_in_time_recovery) + _setter("point_in_time_recovery", point_in_time_recovery) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if stream_arn is not None: - pulumi.set(__self__, "stream_arn", stream_arn) + _setter("stream_arn", stream_arn) if stream_label is not None: - pulumi.set(__self__, "stream_label", stream_label) + _setter("stream_label", stream_label) @property @pulumi.getter(name="regionName") @@ -649,9 +877,26 @@ def __init__(__self__, *, :param bool enabled: Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If `enabled` is `false` then server-side encryption is set to AWS-_owned_ key (shown as `DEFAULT` in the AWS console). Potentially confusingly, if `enabled` is `true` and no `kms_key_arn` is specified then server-side encryption is set to the _default_ KMS-_managed_ key (shown as `KMS` in the AWS console). The [AWS KMS documentation](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) explains the difference between AWS-_owned_ and KMS-_managed_ keys. :param str kms_key_arn: ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, `alias/aws/dynamodb`. **Note:** This attribute will _not_ be populated with the ARN of _default_ keys. """ - pulumi.set(__self__, "enabled", enabled) + TableServerSideEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + kms_key_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("enabled", enabled) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter @@ -696,9 +941,26 @@ def __init__(__self__, *, :param str attribute_name: Name of the table attribute to store the TTL timestamp in. :param bool enabled: Whether TTL is enabled. """ - pulumi.set(__self__, "attribute_name", attribute_name) + TableTtl._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_name=attribute_name, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_name: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_name is None and 'attributeName' in kwargs: + attribute_name = kwargs['attributeName'] + if attribute_name is None: + raise TypeError("Missing 'attribute_name' argument") + + _setter("attribute_name", attribute_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="attributeName") @@ -725,8 +987,25 @@ def __init__(__self__, *, """ :param str name: Name of the DynamoDB table. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + GetTableAttributeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -755,13 +1034,62 @@ def __init__(__self__, *, """ :param str name: Name of the DynamoDB table. """ - pulumi.set(__self__, "hash_key", hash_key) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "non_key_attributes", non_key_attributes) - pulumi.set(__self__, "projection_type", projection_type) - pulumi.set(__self__, "range_key", range_key) - pulumi.set(__self__, "read_capacity", read_capacity) - pulumi.set(__self__, "write_capacity", write_capacity) + GetTableGlobalSecondaryIndexResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + hash_key=hash_key, + name=name, + non_key_attributes=non_key_attributes, + projection_type=projection_type, + range_key=range_key, + read_capacity=read_capacity, + write_capacity=write_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hash_key: Optional[str] = None, + name: Optional[str] = None, + non_key_attributes: Optional[Sequence[str]] = None, + projection_type: Optional[str] = None, + range_key: Optional[str] = None, + read_capacity: Optional[int] = None, + write_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hash_key is None and 'hashKey' in kwargs: + hash_key = kwargs['hashKey'] + if hash_key is None: + raise TypeError("Missing 'hash_key' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if non_key_attributes is None and 'nonKeyAttributes' in kwargs: + non_key_attributes = kwargs['nonKeyAttributes'] + if non_key_attributes is None: + raise TypeError("Missing 'non_key_attributes' argument") + if projection_type is None and 'projectionType' in kwargs: + projection_type = kwargs['projectionType'] + if projection_type is None: + raise TypeError("Missing 'projection_type' argument") + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + if range_key is None: + raise TypeError("Missing 'range_key' argument") + if read_capacity is None and 'readCapacity' in kwargs: + read_capacity = kwargs['readCapacity'] + if read_capacity is None: + raise TypeError("Missing 'read_capacity' argument") + if write_capacity is None and 'writeCapacity' in kwargs: + write_capacity = kwargs['writeCapacity'] + if write_capacity is None: + raise TypeError("Missing 'write_capacity' argument") + + _setter("hash_key", hash_key) + _setter("name", name) + _setter("non_key_attributes", non_key_attributes) + _setter("projection_type", projection_type) + _setter("range_key", range_key) + _setter("read_capacity", read_capacity) + _setter("write_capacity", write_capacity) @property @pulumi.getter(name="hashKey") @@ -812,10 +1140,41 @@ def __init__(__self__, *, """ :param str name: Name of the DynamoDB table. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "non_key_attributes", non_key_attributes) - pulumi.set(__self__, "projection_type", projection_type) - pulumi.set(__self__, "range_key", range_key) + GetTableLocalSecondaryIndexResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + non_key_attributes=non_key_attributes, + projection_type=projection_type, + range_key=range_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + non_key_attributes: Optional[Sequence[str]] = None, + projection_type: Optional[str] = None, + range_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if non_key_attributes is None and 'nonKeyAttributes' in kwargs: + non_key_attributes = kwargs['nonKeyAttributes'] + if non_key_attributes is None: + raise TypeError("Missing 'non_key_attributes' argument") + if projection_type is None and 'projectionType' in kwargs: + projection_type = kwargs['projectionType'] + if projection_type is None: + raise TypeError("Missing 'projection_type' argument") + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + if range_key is None: + raise TypeError("Missing 'range_key' argument") + + _setter("name", name) + _setter("non_key_attributes", non_key_attributes) + _setter("projection_type", projection_type) + _setter("range_key", range_key) @property @pulumi.getter @@ -845,7 +1204,20 @@ def range_key(self) -> str: class GetTablePointInTimeRecoveryResult(dict): def __init__(__self__, *, enabled: bool): - pulumi.set(__self__, "enabled", enabled) + GetTablePointInTimeRecoveryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -858,8 +1230,29 @@ class GetTableReplicaResult(dict): def __init__(__self__, *, kms_key_arn: str, region_name: str): - pulumi.set(__self__, "kms_key_arn", kms_key_arn) - pulumi.set(__self__, "region_name", region_name) + GetTableReplicaResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_arn=kms_key_arn, + region_name=region_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_arn: Optional[str] = None, + region_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if kms_key_arn is None: + raise TypeError("Missing 'kms_key_arn' argument") + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + + _setter("kms_key_arn", kms_key_arn) + _setter("region_name", region_name) @property @pulumi.getter(name="kmsKeyArn") @@ -877,8 +1270,27 @@ class GetTableServerSideEncryptionResult(dict): def __init__(__self__, *, enabled: bool, kms_key_arn: str): - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + GetTableServerSideEncryptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + kms_key_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if kms_key_arn is None: + raise TypeError("Missing 'kms_key_arn' argument") + + _setter("enabled", enabled) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter @@ -896,8 +1308,27 @@ class GetTableTtlResult(dict): def __init__(__self__, *, attribute_name: str, enabled: bool): - pulumi.set(__self__, "attribute_name", attribute_name) - pulumi.set(__self__, "enabled", enabled) + GetTableTtlResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_name=attribute_name, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_name: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_name is None and 'attributeName' in kwargs: + attribute_name = kwargs['attributeName'] + if attribute_name is None: + raise TypeError("Missing 'attribute_name' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("attribute_name", attribute_name) + _setter("enabled", enabled) @property @pulumi.getter(name="attributeName") diff --git a/sdk/python/pulumi_aws/dynamodb/table.py b/sdk/python/pulumi_aws/dynamodb/table.py index 8874710a4c6..3d7bcb9edf1 100644 --- a/sdk/python/pulumi_aws/dynamodb/table.py +++ b/sdk/python/pulumi_aws/dynamodb/table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -67,50 +67,137 @@ def __init__(__self__, *, :param pulumi.Input['TableTtlArgs'] ttl: Configuration block for TTL. See below. :param pulumi.Input[int] write_capacity: Number of write units for this table. If the `billing_mode` is `PROVISIONED`, this field is required. """ + TableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + billing_mode=billing_mode, + deletion_protection_enabled=deletion_protection_enabled, + global_secondary_indexes=global_secondary_indexes, + hash_key=hash_key, + import_table=import_table, + local_secondary_indexes=local_secondary_indexes, + name=name, + point_in_time_recovery=point_in_time_recovery, + range_key=range_key, + read_capacity=read_capacity, + replicas=replicas, + restore_date_time=restore_date_time, + restore_source_name=restore_source_name, + restore_to_latest_time=restore_to_latest_time, + server_side_encryption=server_side_encryption, + stream_enabled=stream_enabled, + stream_view_type=stream_view_type, + table_class=table_class, + tags=tags, + ttl=ttl, + write_capacity=write_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input[Sequence[pulumi.Input['TableAttributeArgs']]]] = None, + billing_mode: Optional[pulumi.Input[str]] = None, + deletion_protection_enabled: Optional[pulumi.Input[bool]] = None, + global_secondary_indexes: Optional[pulumi.Input[Sequence[pulumi.Input['TableGlobalSecondaryIndexArgs']]]] = None, + hash_key: Optional[pulumi.Input[str]] = None, + import_table: Optional[pulumi.Input['TableImportTableArgs']] = None, + local_secondary_indexes: Optional[pulumi.Input[Sequence[pulumi.Input['TableLocalSecondaryIndexArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + point_in_time_recovery: Optional[pulumi.Input['TablePointInTimeRecoveryArgs']] = None, + range_key: Optional[pulumi.Input[str]] = None, + read_capacity: Optional[pulumi.Input[int]] = None, + replicas: Optional[pulumi.Input[Sequence[pulumi.Input['TableReplicaArgs']]]] = None, + restore_date_time: Optional[pulumi.Input[str]] = None, + restore_source_name: Optional[pulumi.Input[str]] = None, + restore_to_latest_time: Optional[pulumi.Input[bool]] = None, + server_side_encryption: Optional[pulumi.Input['TableServerSideEncryptionArgs']] = None, + stream_enabled: Optional[pulumi.Input[bool]] = None, + stream_view_type: Optional[pulumi.Input[str]] = None, + table_class: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + ttl: Optional[pulumi.Input['TableTtlArgs']] = None, + write_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if billing_mode is None and 'billingMode' in kwargs: + billing_mode = kwargs['billingMode'] + if deletion_protection_enabled is None and 'deletionProtectionEnabled' in kwargs: + deletion_protection_enabled = kwargs['deletionProtectionEnabled'] + if global_secondary_indexes is None and 'globalSecondaryIndexes' in kwargs: + global_secondary_indexes = kwargs['globalSecondaryIndexes'] + if hash_key is None and 'hashKey' in kwargs: + hash_key = kwargs['hashKey'] + if import_table is None and 'importTable' in kwargs: + import_table = kwargs['importTable'] + if local_secondary_indexes is None and 'localSecondaryIndexes' in kwargs: + local_secondary_indexes = kwargs['localSecondaryIndexes'] + if point_in_time_recovery is None and 'pointInTimeRecovery' in kwargs: + point_in_time_recovery = kwargs['pointInTimeRecovery'] + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + if read_capacity is None and 'readCapacity' in kwargs: + read_capacity = kwargs['readCapacity'] + if restore_date_time is None and 'restoreDateTime' in kwargs: + restore_date_time = kwargs['restoreDateTime'] + if restore_source_name is None and 'restoreSourceName' in kwargs: + restore_source_name = kwargs['restoreSourceName'] + if restore_to_latest_time is None and 'restoreToLatestTime' in kwargs: + restore_to_latest_time = kwargs['restoreToLatestTime'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if stream_enabled is None and 'streamEnabled' in kwargs: + stream_enabled = kwargs['streamEnabled'] + if stream_view_type is None and 'streamViewType' in kwargs: + stream_view_type = kwargs['streamViewType'] + if table_class is None and 'tableClass' in kwargs: + table_class = kwargs['tableClass'] + if write_capacity is None and 'writeCapacity' in kwargs: + write_capacity = kwargs['writeCapacity'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if billing_mode is not None: - pulumi.set(__self__, "billing_mode", billing_mode) + _setter("billing_mode", billing_mode) if deletion_protection_enabled is not None: - pulumi.set(__self__, "deletion_protection_enabled", deletion_protection_enabled) + _setter("deletion_protection_enabled", deletion_protection_enabled) if global_secondary_indexes is not None: - pulumi.set(__self__, "global_secondary_indexes", global_secondary_indexes) + _setter("global_secondary_indexes", global_secondary_indexes) if hash_key is not None: - pulumi.set(__self__, "hash_key", hash_key) + _setter("hash_key", hash_key) if import_table is not None: - pulumi.set(__self__, "import_table", import_table) + _setter("import_table", import_table) if local_secondary_indexes is not None: - pulumi.set(__self__, "local_secondary_indexes", local_secondary_indexes) + _setter("local_secondary_indexes", local_secondary_indexes) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if point_in_time_recovery is not None: - pulumi.set(__self__, "point_in_time_recovery", point_in_time_recovery) + _setter("point_in_time_recovery", point_in_time_recovery) if range_key is not None: - pulumi.set(__self__, "range_key", range_key) + _setter("range_key", range_key) if read_capacity is not None: - pulumi.set(__self__, "read_capacity", read_capacity) + _setter("read_capacity", read_capacity) if replicas is not None: - pulumi.set(__self__, "replicas", replicas) + _setter("replicas", replicas) if restore_date_time is not None: - pulumi.set(__self__, "restore_date_time", restore_date_time) + _setter("restore_date_time", restore_date_time) if restore_source_name is not None: - pulumi.set(__self__, "restore_source_name", restore_source_name) + _setter("restore_source_name", restore_source_name) if restore_to_latest_time is not None: - pulumi.set(__self__, "restore_to_latest_time", restore_to_latest_time) + _setter("restore_to_latest_time", restore_to_latest_time) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if stream_enabled is not None: - pulumi.set(__self__, "stream_enabled", stream_enabled) + _setter("stream_enabled", stream_enabled) if stream_view_type is not None: - pulumi.set(__self__, "stream_view_type", stream_view_type) + _setter("stream_view_type", stream_view_type) if table_class is not None: - pulumi.set(__self__, "table_class", table_class) + _setter("table_class", table_class) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) if write_capacity is not None: - pulumi.set(__self__, "write_capacity", write_capacity) + _setter("write_capacity", write_capacity) @property @pulumi.getter @@ -443,61 +530,162 @@ def __init__(__self__, *, :param pulumi.Input['TableTtlArgs'] ttl: Configuration block for TTL. See below. :param pulumi.Input[int] write_capacity: Number of write units for this table. If the `billing_mode` is `PROVISIONED`, this field is required. """ + _TableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attributes=attributes, + billing_mode=billing_mode, + deletion_protection_enabled=deletion_protection_enabled, + global_secondary_indexes=global_secondary_indexes, + hash_key=hash_key, + import_table=import_table, + local_secondary_indexes=local_secondary_indexes, + name=name, + point_in_time_recovery=point_in_time_recovery, + range_key=range_key, + read_capacity=read_capacity, + replicas=replicas, + restore_date_time=restore_date_time, + restore_source_name=restore_source_name, + restore_to_latest_time=restore_to_latest_time, + server_side_encryption=server_side_encryption, + stream_arn=stream_arn, + stream_enabled=stream_enabled, + stream_label=stream_label, + stream_view_type=stream_view_type, + table_class=table_class, + tags=tags, + tags_all=tags_all, + ttl=ttl, + write_capacity=write_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attributes: Optional[pulumi.Input[Sequence[pulumi.Input['TableAttributeArgs']]]] = None, + billing_mode: Optional[pulumi.Input[str]] = None, + deletion_protection_enabled: Optional[pulumi.Input[bool]] = None, + global_secondary_indexes: Optional[pulumi.Input[Sequence[pulumi.Input['TableGlobalSecondaryIndexArgs']]]] = None, + hash_key: Optional[pulumi.Input[str]] = None, + import_table: Optional[pulumi.Input['TableImportTableArgs']] = None, + local_secondary_indexes: Optional[pulumi.Input[Sequence[pulumi.Input['TableLocalSecondaryIndexArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + point_in_time_recovery: Optional[pulumi.Input['TablePointInTimeRecoveryArgs']] = None, + range_key: Optional[pulumi.Input[str]] = None, + read_capacity: Optional[pulumi.Input[int]] = None, + replicas: Optional[pulumi.Input[Sequence[pulumi.Input['TableReplicaArgs']]]] = None, + restore_date_time: Optional[pulumi.Input[str]] = None, + restore_source_name: Optional[pulumi.Input[str]] = None, + restore_to_latest_time: Optional[pulumi.Input[bool]] = None, + server_side_encryption: Optional[pulumi.Input['TableServerSideEncryptionArgs']] = None, + stream_arn: Optional[pulumi.Input[str]] = None, + stream_enabled: Optional[pulumi.Input[bool]] = None, + stream_label: Optional[pulumi.Input[str]] = None, + stream_view_type: Optional[pulumi.Input[str]] = None, + table_class: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + ttl: Optional[pulumi.Input['TableTtlArgs']] = None, + write_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if billing_mode is None and 'billingMode' in kwargs: + billing_mode = kwargs['billingMode'] + if deletion_protection_enabled is None and 'deletionProtectionEnabled' in kwargs: + deletion_protection_enabled = kwargs['deletionProtectionEnabled'] + if global_secondary_indexes is None and 'globalSecondaryIndexes' in kwargs: + global_secondary_indexes = kwargs['globalSecondaryIndexes'] + if hash_key is None and 'hashKey' in kwargs: + hash_key = kwargs['hashKey'] + if import_table is None and 'importTable' in kwargs: + import_table = kwargs['importTable'] + if local_secondary_indexes is None and 'localSecondaryIndexes' in kwargs: + local_secondary_indexes = kwargs['localSecondaryIndexes'] + if point_in_time_recovery is None and 'pointInTimeRecovery' in kwargs: + point_in_time_recovery = kwargs['pointInTimeRecovery'] + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + if read_capacity is None and 'readCapacity' in kwargs: + read_capacity = kwargs['readCapacity'] + if restore_date_time is None and 'restoreDateTime' in kwargs: + restore_date_time = kwargs['restoreDateTime'] + if restore_source_name is None and 'restoreSourceName' in kwargs: + restore_source_name = kwargs['restoreSourceName'] + if restore_to_latest_time is None and 'restoreToLatestTime' in kwargs: + restore_to_latest_time = kwargs['restoreToLatestTime'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_enabled is None and 'streamEnabled' in kwargs: + stream_enabled = kwargs['streamEnabled'] + if stream_label is None and 'streamLabel' in kwargs: + stream_label = kwargs['streamLabel'] + if stream_view_type is None and 'streamViewType' in kwargs: + stream_view_type = kwargs['streamViewType'] + if table_class is None and 'tableClass' in kwargs: + table_class = kwargs['tableClass'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if write_capacity is None and 'writeCapacity' in kwargs: + write_capacity = kwargs['writeCapacity'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if billing_mode is not None: - pulumi.set(__self__, "billing_mode", billing_mode) + _setter("billing_mode", billing_mode) if deletion_protection_enabled is not None: - pulumi.set(__self__, "deletion_protection_enabled", deletion_protection_enabled) + _setter("deletion_protection_enabled", deletion_protection_enabled) if global_secondary_indexes is not None: - pulumi.set(__self__, "global_secondary_indexes", global_secondary_indexes) + _setter("global_secondary_indexes", global_secondary_indexes) if hash_key is not None: - pulumi.set(__self__, "hash_key", hash_key) + _setter("hash_key", hash_key) if import_table is not None: - pulumi.set(__self__, "import_table", import_table) + _setter("import_table", import_table) if local_secondary_indexes is not None: - pulumi.set(__self__, "local_secondary_indexes", local_secondary_indexes) + _setter("local_secondary_indexes", local_secondary_indexes) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if point_in_time_recovery is not None: - pulumi.set(__self__, "point_in_time_recovery", point_in_time_recovery) + _setter("point_in_time_recovery", point_in_time_recovery) if range_key is not None: - pulumi.set(__self__, "range_key", range_key) + _setter("range_key", range_key) if read_capacity is not None: - pulumi.set(__self__, "read_capacity", read_capacity) + _setter("read_capacity", read_capacity) if replicas is not None: - pulumi.set(__self__, "replicas", replicas) + _setter("replicas", replicas) if restore_date_time is not None: - pulumi.set(__self__, "restore_date_time", restore_date_time) + _setter("restore_date_time", restore_date_time) if restore_source_name is not None: - pulumi.set(__self__, "restore_source_name", restore_source_name) + _setter("restore_source_name", restore_source_name) if restore_to_latest_time is not None: - pulumi.set(__self__, "restore_to_latest_time", restore_to_latest_time) + _setter("restore_to_latest_time", restore_to_latest_time) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if stream_arn is not None: - pulumi.set(__self__, "stream_arn", stream_arn) + _setter("stream_arn", stream_arn) if stream_enabled is not None: - pulumi.set(__self__, "stream_enabled", stream_enabled) + _setter("stream_enabled", stream_enabled) if stream_label is not None: - pulumi.set(__self__, "stream_label", stream_label) + _setter("stream_label", stream_label) if stream_view_type is not None: - pulumi.set(__self__, "stream_view_type", stream_view_type) + _setter("stream_view_type", stream_view_type) if table_class is not None: - pulumi.set(__self__, "table_class", table_class) + _setter("table_class", table_class) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) if write_capacity is not None: - pulumi.set(__self__, "write_capacity", write_capacity) + _setter("write_capacity", write_capacity) @property @pulumi.getter @@ -1092,6 +1280,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1133,9 +1325,11 @@ def _internal_init(__self__, __props__.__dict__["deletion_protection_enabled"] = deletion_protection_enabled __props__.__dict__["global_secondary_indexes"] = global_secondary_indexes __props__.__dict__["hash_key"] = hash_key + import_table = _utilities.configure(import_table, TableImportTableArgs, True) __props__.__dict__["import_table"] = import_table __props__.__dict__["local_secondary_indexes"] = local_secondary_indexes __props__.__dict__["name"] = name + point_in_time_recovery = _utilities.configure(point_in_time_recovery, TablePointInTimeRecoveryArgs, True) __props__.__dict__["point_in_time_recovery"] = point_in_time_recovery __props__.__dict__["range_key"] = range_key __props__.__dict__["read_capacity"] = read_capacity @@ -1143,11 +1337,13 @@ def _internal_init(__self__, __props__.__dict__["restore_date_time"] = restore_date_time __props__.__dict__["restore_source_name"] = restore_source_name __props__.__dict__["restore_to_latest_time"] = restore_to_latest_time + server_side_encryption = _utilities.configure(server_side_encryption, TableServerSideEncryptionArgs, True) __props__.__dict__["server_side_encryption"] = server_side_encryption __props__.__dict__["stream_enabled"] = stream_enabled __props__.__dict__["stream_view_type"] = stream_view_type __props__.__dict__["table_class"] = table_class __props__.__dict__["tags"] = tags + ttl = _utilities.configure(ttl, TableTtlArgs, True) __props__.__dict__["ttl"] = ttl __props__.__dict__["write_capacity"] = write_capacity __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/dynamodb/table_item.py b/sdk/python/pulumi_aws/dynamodb/table_item.py index 8cae8fd2e47..f70b72ab182 100644 --- a/sdk/python/pulumi_aws/dynamodb/table_item.py +++ b/sdk/python/pulumi_aws/dynamodb/table_item.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TableItemArgs', 'TableItem'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] table_name: Name of the table to contain the item. :param pulumi.Input[str] range_key: Range key to use for lookups and identification of the item. Required if there is range key defined in the table. """ - pulumi.set(__self__, "hash_key", hash_key) - pulumi.set(__self__, "item", item) - pulumi.set(__self__, "table_name", table_name) + TableItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hash_key=hash_key, + item=item, + table_name=table_name, + range_key=range_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hash_key: Optional[pulumi.Input[str]] = None, + item: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + range_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hash_key is None and 'hashKey' in kwargs: + hash_key = kwargs['hashKey'] + if hash_key is None: + raise TypeError("Missing 'hash_key' argument") + if item is None: + raise TypeError("Missing 'item' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + + _setter("hash_key", hash_key) + _setter("item", item) + _setter("table_name", table_name) if range_key is not None: - pulumi.set(__self__, "range_key", range_key) + _setter("range_key", range_key) @property @pulumi.getter(name="hashKey") @@ -94,14 +123,37 @@ def __init__(__self__, *, :param pulumi.Input[str] range_key: Range key to use for lookups and identification of the item. Required if there is range key defined in the table. :param pulumi.Input[str] table_name: Name of the table to contain the item. """ + _TableItemState._configure( + lambda key, value: pulumi.set(__self__, key, value), + hash_key=hash_key, + item=item, + range_key=range_key, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hash_key: Optional[pulumi.Input[str]] = None, + item: Optional[pulumi.Input[str]] = None, + range_key: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hash_key is None and 'hashKey' in kwargs: + hash_key = kwargs['hashKey'] + if range_key is None and 'rangeKey' in kwargs: + range_key = kwargs['rangeKey'] + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if hash_key is not None: - pulumi.set(__self__, "hash_key", hash_key) + _setter("hash_key", hash_key) if item is not None: - pulumi.set(__self__, "item", item) + _setter("item", item) if range_key is not None: - pulumi.set(__self__, "range_key", range_key) + _setter("range_key", range_key) if table_name is not None: - pulumi.set(__self__, "table_name", table_name) + _setter("table_name", table_name) @property @pulumi.getter(name="hashKey") @@ -259,6 +311,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TableItemArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dynamodb/table_replica.py b/sdk/python/pulumi_aws/dynamodb/table_replica.py index bd6b836f3b2..a8365c9fa52 100644 --- a/sdk/python/pulumi_aws/dynamodb/table_replica.py +++ b/sdk/python/pulumi_aws/dynamodb/table_replica.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TableReplicaInitArgs', 'TableReplica'] @@ -29,15 +29,44 @@ def __init__(__self__, *, :param pulumi.Input[str] table_class_override: Storage class of the table replica. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`. If not used, the table replica will use the same class as the global table. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to populate on the created table. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "global_table_arn", global_table_arn) + TableReplicaInitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_table_arn=global_table_arn, + kms_key_arn=kms_key_arn, + point_in_time_recovery=point_in_time_recovery, + table_class_override=table_class_override, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_table_arn: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + point_in_time_recovery: Optional[pulumi.Input[bool]] = None, + table_class_override: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_table_arn is None and 'globalTableArn' in kwargs: + global_table_arn = kwargs['globalTableArn'] + if global_table_arn is None: + raise TypeError("Missing 'global_table_arn' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if point_in_time_recovery is None and 'pointInTimeRecovery' in kwargs: + point_in_time_recovery = kwargs['pointInTimeRecovery'] + if table_class_override is None and 'tableClassOverride' in kwargs: + table_class_override = kwargs['tableClassOverride'] + + _setter("global_table_arn", global_table_arn) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if point_in_time_recovery is not None: - pulumi.set(__self__, "point_in_time_recovery", point_in_time_recovery) + _setter("point_in_time_recovery", point_in_time_recovery) if table_class_override is not None: - pulumi.set(__self__, "table_class_override", table_class_override) + _setter("table_class_override", table_class_override) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="globalTableArn") @@ -124,23 +153,56 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to populate on the created table. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _TableReplicaState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + global_table_arn=global_table_arn, + kms_key_arn=kms_key_arn, + point_in_time_recovery=point_in_time_recovery, + table_class_override=table_class_override, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + global_table_arn: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + point_in_time_recovery: Optional[pulumi.Input[bool]] = None, + table_class_override: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_table_arn is None and 'globalTableArn' in kwargs: + global_table_arn = kwargs['globalTableArn'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if point_in_time_recovery is None and 'pointInTimeRecovery' in kwargs: + point_in_time_recovery = kwargs['pointInTimeRecovery'] + if table_class_override is None and 'tableClassOverride' in kwargs: + table_class_override = kwargs['tableClassOverride'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if global_table_arn is not None: - pulumi.set(__self__, "global_table_arn", global_table_arn) + _setter("global_table_arn", global_table_arn) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if point_in_time_recovery is not None: - pulumi.set(__self__, "point_in_time_recovery", point_in_time_recovery) + _setter("point_in_time_recovery", point_in_time_recovery) if table_class_override is not None: - pulumi.set(__self__, "table_class_override", table_class_override) + _setter("table_class_override", table_class_override) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -359,6 +421,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TableReplicaInitArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/dynamodb/tag.py b/sdk/python/pulumi_aws/dynamodb/tag.py index fb2e446cf84..c6cf72e6a46 100644 --- a/sdk/python/pulumi_aws/dynamodb/tag.py +++ b/sdk/python/pulumi_aws/dynamodb/tag.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TagArgs', 'Tag'] @@ -23,9 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the DynamoDB resource to tag. :param pulumi.Input[str] value: Tag value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "value", value) + TagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + resource_arn=resource_arn, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("resource_arn", resource_arn) + _setter("value", value) @property @pulumi.getter @@ -76,12 +99,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the DynamoDB resource to tag. :param pulumi.Input[str] value: Tag value. """ + _TagState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + resource_arn=resource_arn, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -181,6 +221,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TagArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ebs/_inputs.py b/sdk/python/pulumi_aws/ebs/_inputs.py index ce97732cc48..8f556a60a10 100644 --- a/sdk/python/pulumi_aws/ebs/_inputs.py +++ b/sdk/python/pulumi_aws/ebs/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -32,14 +32,37 @@ def __init__(__self__, *, :param pulumi.Input[float] upload_size: The size of the uploaded disk image, in GiB. :param pulumi.Input[str] upload_start: The time that the disk upload starts. """ + SnapshotImportClientDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + upload_end=upload_end, + upload_size=upload_size, + upload_start=upload_start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + upload_end: Optional[pulumi.Input[str]] = None, + upload_size: Optional[pulumi.Input[float]] = None, + upload_start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if upload_end is None and 'uploadEnd' in kwargs: + upload_end = kwargs['uploadEnd'] + if upload_size is None and 'uploadSize' in kwargs: + upload_size = kwargs['uploadSize'] + if upload_start is None and 'uploadStart' in kwargs: + upload_start = kwargs['uploadStart'] + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if upload_end is not None: - pulumi.set(__self__, "upload_end", upload_end) + _setter("upload_end", upload_end) if upload_size is not None: - pulumi.set(__self__, "upload_size", upload_size) + _setter("upload_size", upload_size) if upload_start is not None: - pulumi.set(__self__, "upload_start", upload_start) + _setter("upload_start", upload_start) @property @pulumi.getter @@ -103,13 +126,34 @@ def __init__(__self__, *, :param pulumi.Input[str] url: The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..). One of `url` or `user_bucket` must be set. :param pulumi.Input['SnapshotImportDiskContainerUserBucketArgs'] user_bucket: The Amazon S3 bucket for the disk image. One of `url` or `user_bucket` must be set. Detailed below. """ - pulumi.set(__self__, "format", format) + SnapshotImportDiskContainerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + format=format, + description=description, + url=url, + user_bucket=user_bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + format: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + user_bucket: Optional[pulumi.Input['SnapshotImportDiskContainerUserBucketArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if format is None: + raise TypeError("Missing 'format' argument") + if user_bucket is None and 'userBucket' in kwargs: + user_bucket = kwargs['userBucket'] + + _setter("format", format) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if user_bucket is not None: - pulumi.set(__self__, "user_bucket", user_bucket) + _setter("user_bucket", user_bucket) @property @pulumi.getter @@ -169,8 +213,29 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_bucket: The name of the Amazon S3 bucket where the disk image is located. :param pulumi.Input[str] s3_key: The file name of the disk image. """ - pulumi.set(__self__, "s3_bucket", s3_bucket) - pulumi.set(__self__, "s3_key", s3_key) + SnapshotImportDiskContainerUserBucketArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket=s3_bucket, + s3_key=s3_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_bucket is None: + raise TypeError("Missing 's3_bucket' argument") + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_key is None: + raise TypeError("Missing 's3_key' argument") + + _setter("s3_bucket", s3_bucket) + _setter("s3_key", s3_key) @property @pulumi.getter(name="s3Bucket") @@ -222,8 +287,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. EBS Volume IDs will be selected if any one of the given values match. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetEbsVolumesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -271,8 +353,25 @@ class GetSnapshotFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSnapshotFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -298,8 +397,25 @@ class GetSnapshotIdsFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSnapshotIdsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -325,8 +441,25 @@ class GetVolumeFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVolumeFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ebs/default_kms_key.py b/sdk/python/pulumi_aws/ebs/default_kms_key.py index b08ce01e7ce..e6633c06d24 100644 --- a/sdk/python/pulumi_aws/ebs/default_kms_key.py +++ b/sdk/python/pulumi_aws/ebs/default_kms_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DefaultKmsKeyArgs', 'DefaultKmsKey'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a DefaultKmsKey resource. :param pulumi.Input[str] key_arn: The ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use to encrypt the EBS volume. """ - pulumi.set(__self__, "key_arn", key_arn) + DefaultKmsKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_arn=key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_arn is None and 'keyArn' in kwargs: + key_arn = kwargs['keyArn'] + if key_arn is None: + raise TypeError("Missing 'key_arn' argument") + + _setter("key_arn", key_arn) @property @pulumi.getter(name="keyArn") @@ -42,8 +57,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering DefaultKmsKey resources. :param pulumi.Input[str] key_arn: The ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use to encrypt the EBS volume. """ + _DefaultKmsKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_arn=key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_arn is None and 'keyArn' in kwargs: + key_arn = kwargs['keyArn'] + if key_arn is not None: - pulumi.set(__self__, "key_arn", key_arn) + _setter("key_arn", key_arn) @property @pulumi.getter(name="keyArn") @@ -139,6 +167,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DefaultKmsKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ebs/encryption_by_default.py b/sdk/python/pulumi_aws/ebs/encryption_by_default.py index 1c86c76d8bc..ffce6f61d33 100644 --- a/sdk/python/pulumi_aws/ebs/encryption_by_default.py +++ b/sdk/python/pulumi_aws/ebs/encryption_by_default.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EncryptionByDefaultArgs', 'EncryptionByDefault'] @@ -19,8 +19,19 @@ def __init__(__self__, *, The set of arguments for constructing a EncryptionByDefault resource. :param pulumi.Input[bool] enabled: Whether or not default EBS encryption is enabled. Valid values are `true` or `false`. Defaults to `true`. """ + EncryptionByDefaultArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -43,8 +54,19 @@ def __init__(__self__, *, Input properties used for looking up and filtering EncryptionByDefault resources. :param pulumi.Input[bool] enabled: Whether or not default EBS encryption is enabled. Valid values are `true` or `false`. Defaults to `true`. """ + _EncryptionByDefaultState._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -130,6 +152,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EncryptionByDefaultArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ebs/get_default_kms_key.py b/sdk/python/pulumi_aws/ebs/get_default_kms_key.py index b22991a6e82..4c2e58facc0 100644 --- a/sdk/python/pulumi_aws/ebs/get_default_kms_key.py +++ b/sdk/python/pulumi_aws/ebs/get_default_kms_key.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetDefaultKmsKeyResult', 'AwaitableGetDefaultKmsKeyResult', 'get_default_kms_key', + 'get_default_kms_key_output', ] @pulumi.output_type @@ -79,3 +80,24 @@ def get_default_kms_key(opts: Optional[pulumi.InvokeOptions] = None) -> Awaitabl return AwaitableGetDefaultKmsKeyResult( id=pulumi.get(__ret__, 'id'), key_arn=pulumi.get(__ret__, 'key_arn')) + + +@_utilities.lift_output_func(get_default_kms_key) +def get_default_kms_key_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDefaultKmsKeyResult]: + """ + Use this data source to get the default EBS encryption KMS key in the current region. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + current = aws.ebs.get_default_kms_key() + example = aws.ebs.Volume("example", + availability_zone="us-west-2a", + encrypted=True, + kms_key_id=current.key_arn) + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/ebs/get_ebs_volumes.py b/sdk/python/pulumi_aws/ebs/get_ebs_volumes.py index 42b223c60ac..82bd9a3c378 100644 --- a/sdk/python/pulumi_aws/ebs/get_ebs_volumes.py +++ b/sdk/python/pulumi_aws/ebs/get_ebs_volumes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ebs/get_encryption_by_default.py b/sdk/python/pulumi_aws/ebs/get_encryption_by_default.py index beb4d172afe..cbb485b2e25 100644 --- a/sdk/python/pulumi_aws/ebs/get_encryption_by_default.py +++ b/sdk/python/pulumi_aws/ebs/get_encryption_by_default.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetEncryptionByDefaultResult', 'AwaitableGetEncryptionByDefaultResult', 'get_encryption_by_default', + 'get_encryption_by_default_output', ] @pulumi.output_type @@ -75,3 +76,20 @@ def get_encryption_by_default(opts: Optional[pulumi.InvokeOptions] = None) -> Aw return AwaitableGetEncryptionByDefaultResult( enabled=pulumi.get(__ret__, 'enabled'), id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_encryption_by_default) +def get_encryption_by_default_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetEncryptionByDefaultResult]: + """ + Provides a way to check whether default EBS encryption is enabled for your AWS account in the current AWS region. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + current = aws.ebs.get_encryption_by_default() + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/ebs/get_snapshot.py b/sdk/python/pulumi_aws/ebs/get_snapshot.py index 8a0a03642d0..eaee958b6aa 100644 --- a/sdk/python/pulumi_aws/ebs/get_snapshot.py +++ b/sdk/python/pulumi_aws/ebs/get_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ebs/get_snapshot_ids.py b/sdk/python/pulumi_aws/ebs/get_snapshot_ids.py index fb76142fea7..eb867f2bf76 100644 --- a/sdk/python/pulumi_aws/ebs/get_snapshot_ids.py +++ b/sdk/python/pulumi_aws/ebs/get_snapshot_ids.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ebs/get_volume.py b/sdk/python/pulumi_aws/ebs/get_volume.py index 81d19a7ce21..e3770e1a7df 100644 --- a/sdk/python/pulumi_aws/ebs/get_volume.py +++ b/sdk/python/pulumi_aws/ebs/get_volume.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ebs/outputs.py b/sdk/python/pulumi_aws/ebs/outputs.py index b4324bad790..7d83cde54dd 100644 --- a/sdk/python/pulumi_aws/ebs/outputs.py +++ b/sdk/python/pulumi_aws/ebs/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -54,14 +54,37 @@ def __init__(__self__, *, :param float upload_size: The size of the uploaded disk image, in GiB. :param str upload_start: The time that the disk upload starts. """ + SnapshotImportClientData._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + upload_end=upload_end, + upload_size=upload_size, + upload_start=upload_start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[str] = None, + upload_end: Optional[str] = None, + upload_size: Optional[float] = None, + upload_start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if upload_end is None and 'uploadEnd' in kwargs: + upload_end = kwargs['uploadEnd'] + if upload_size is None and 'uploadSize' in kwargs: + upload_size = kwargs['uploadSize'] + if upload_start is None and 'uploadStart' in kwargs: + upload_start = kwargs['uploadStart'] + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if upload_end is not None: - pulumi.set(__self__, "upload_end", upload_end) + _setter("upload_end", upload_end) if upload_size is not None: - pulumi.set(__self__, "upload_size", upload_size) + _setter("upload_size", upload_size) if upload_start is not None: - pulumi.set(__self__, "upload_start", upload_start) + _setter("upload_start", upload_start) @property @pulumi.getter @@ -126,13 +149,34 @@ def __init__(__self__, *, :param str url: The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..). One of `url` or `user_bucket` must be set. :param 'SnapshotImportDiskContainerUserBucketArgs' user_bucket: The Amazon S3 bucket for the disk image. One of `url` or `user_bucket` must be set. Detailed below. """ - pulumi.set(__self__, "format", format) + SnapshotImportDiskContainer._configure( + lambda key, value: pulumi.set(__self__, key, value), + format=format, + description=description, + url=url, + user_bucket=user_bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + format: Optional[str] = None, + description: Optional[str] = None, + url: Optional[str] = None, + user_bucket: Optional['outputs.SnapshotImportDiskContainerUserBucket'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if format is None: + raise TypeError("Missing 'format' argument") + if user_bucket is None and 'userBucket' in kwargs: + user_bucket = kwargs['userBucket'] + + _setter("format", format) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if user_bucket is not None: - pulumi.set(__self__, "user_bucket", user_bucket) + _setter("user_bucket", user_bucket) @property @pulumi.getter @@ -195,8 +239,29 @@ def __init__(__self__, *, :param str s3_bucket: The name of the Amazon S3 bucket where the disk image is located. :param str s3_key: The file name of the disk image. """ - pulumi.set(__self__, "s3_bucket", s3_bucket) - pulumi.set(__self__, "s3_key", s3_key) + SnapshotImportDiskContainerUserBucket._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket=s3_bucket, + s3_key=s3_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket: Optional[str] = None, + s3_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_bucket is None: + raise TypeError("Missing 's3_bucket' argument") + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_key is None: + raise TypeError("Missing 's3_key' argument") + + _setter("s3_bucket", s3_bucket) + _setter("s3_key", s3_key) @property @pulumi.getter(name="s3Bucket") @@ -240,8 +305,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. EBS Volume IDs will be selected if any one of the given values match. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetEbsVolumesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -281,8 +363,25 @@ class GetSnapshotFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSnapshotFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -300,8 +399,25 @@ class GetSnapshotIdsFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSnapshotIdsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -319,8 +435,25 @@ class GetVolumeFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVolumeFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ebs/snapshot.py b/sdk/python/pulumi_aws/ebs/snapshot.py index 97b61c837a5..0ab33c0bc07 100644 --- a/sdk/python/pulumi_aws/ebs/snapshot.py +++ b/sdk/python/pulumi_aws/ebs/snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SnapshotArgs', 'Snapshot'] @@ -31,19 +31,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the snapshot. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[int] temporary_restore_days: Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period. """ - pulumi.set(__self__, "volume_id", volume_id) + SnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + volume_id=volume_id, + description=description, + outpost_arn=outpost_arn, + permanent_restore=permanent_restore, + storage_tier=storage_tier, + tags=tags, + temporary_restore_days=temporary_restore_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + volume_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + permanent_restore: Optional[pulumi.Input[bool]] = None, + storage_tier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + temporary_restore_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_id is None: + raise TypeError("Missing 'volume_id' argument") + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if permanent_restore is None and 'permanentRestore' in kwargs: + permanent_restore = kwargs['permanentRestore'] + if storage_tier is None and 'storageTier' in kwargs: + storage_tier = kwargs['storageTier'] + if temporary_restore_days is None and 'temporaryRestoreDays' in kwargs: + temporary_restore_days = kwargs['temporaryRestoreDays'] + + _setter("volume_id", volume_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if permanent_restore is not None: - pulumi.set(__self__, "permanent_restore", permanent_restore) + _setter("permanent_restore", permanent_restore) if storage_tier is not None: - pulumi.set(__self__, "storage_tier", storage_tier) + _setter("storage_tier", storage_tier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if temporary_restore_days is not None: - pulumi.set(__self__, "temporary_restore_days", temporary_restore_days) + _setter("temporary_restore_days", temporary_restore_days) @property @pulumi.getter(name="volumeId") @@ -166,39 +201,100 @@ def __init__(__self__, *, :param pulumi.Input[str] volume_id: The Volume ID of which to make a snapshot. :param pulumi.Input[int] volume_size: The size of the drive in GiBs. """ + _SnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_encryption_key_id=data_encryption_key_id, + description=description, + encrypted=encrypted, + kms_key_id=kms_key_id, + outpost_arn=outpost_arn, + owner_alias=owner_alias, + owner_id=owner_id, + permanent_restore=permanent_restore, + storage_tier=storage_tier, + tags=tags, + tags_all=tags_all, + temporary_restore_days=temporary_restore_days, + volume_id=volume_id, + volume_size=volume_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + data_encryption_key_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + owner_alias: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + permanent_restore: Optional[pulumi.Input[bool]] = None, + storage_tier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + temporary_restore_days: Optional[pulumi.Input[int]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_encryption_key_id is None and 'dataEncryptionKeyId' in kwargs: + data_encryption_key_id = kwargs['dataEncryptionKeyId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if owner_alias is None and 'ownerAlias' in kwargs: + owner_alias = kwargs['ownerAlias'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if permanent_restore is None and 'permanentRestore' in kwargs: + permanent_restore = kwargs['permanentRestore'] + if storage_tier is None and 'storageTier' in kwargs: + storage_tier = kwargs['storageTier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if temporary_restore_days is None and 'temporaryRestoreDays' in kwargs: + temporary_restore_days = kwargs['temporaryRestoreDays'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if data_encryption_key_id is not None: - pulumi.set(__self__, "data_encryption_key_id", data_encryption_key_id) + _setter("data_encryption_key_id", data_encryption_key_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if owner_alias is not None: - pulumi.set(__self__, "owner_alias", owner_alias) + _setter("owner_alias", owner_alias) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if permanent_restore is not None: - pulumi.set(__self__, "permanent_restore", permanent_restore) + _setter("permanent_restore", permanent_restore) if storage_tier is not None: - pulumi.set(__self__, "storage_tier", storage_tier) + _setter("storage_tier", storage_tier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if temporary_restore_days is not None: - pulumi.set(__self__, "temporary_restore_days", temporary_restore_days) + _setter("temporary_restore_days", temporary_restore_days) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) @property @pulumi.getter @@ -483,6 +579,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ebs/snapshot_copy.py b/sdk/python/pulumi_aws/ebs/snapshot_copy.py index ee72ebdc690..4765e50d808 100644 --- a/sdk/python/pulumi_aws/ebs/snapshot_copy.py +++ b/sdk/python/pulumi_aws/ebs/snapshot_copy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SnapshotCopyArgs', 'SnapshotCopy'] @@ -35,22 +35,65 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags for the snapshot. :param pulumi.Input[int] temporary_restore_days: Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period. """ - pulumi.set(__self__, "source_region", source_region) - pulumi.set(__self__, "source_snapshot_id", source_snapshot_id) + SnapshotCopyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_region=source_region, + source_snapshot_id=source_snapshot_id, + description=description, + encrypted=encrypted, + kms_key_id=kms_key_id, + permanent_restore=permanent_restore, + storage_tier=storage_tier, + tags=tags, + temporary_restore_days=temporary_restore_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_region: Optional[pulumi.Input[str]] = None, + source_snapshot_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + permanent_restore: Optional[pulumi.Input[bool]] = None, + storage_tier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + temporary_restore_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_region is None and 'sourceRegion' in kwargs: + source_region = kwargs['sourceRegion'] + if source_region is None: + raise TypeError("Missing 'source_region' argument") + if source_snapshot_id is None and 'sourceSnapshotId' in kwargs: + source_snapshot_id = kwargs['sourceSnapshotId'] + if source_snapshot_id is None: + raise TypeError("Missing 'source_snapshot_id' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if permanent_restore is None and 'permanentRestore' in kwargs: + permanent_restore = kwargs['permanentRestore'] + if storage_tier is None and 'storageTier' in kwargs: + storage_tier = kwargs['storageTier'] + if temporary_restore_days is None and 'temporaryRestoreDays' in kwargs: + temporary_restore_days = kwargs['temporaryRestoreDays'] + + _setter("source_region", source_region) + _setter("source_snapshot_id", source_snapshot_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if permanent_restore is not None: - pulumi.set(__self__, "permanent_restore", permanent_restore) + _setter("permanent_restore", permanent_restore) if storage_tier is not None: - pulumi.set(__self__, "storage_tier", storage_tier) + _setter("storage_tier", storage_tier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if temporary_restore_days is not None: - pulumi.set(__self__, "temporary_restore_days", temporary_restore_days) + _setter("temporary_restore_days", temporary_restore_days) @property @pulumi.getter(name="sourceRegion") @@ -199,43 +242,112 @@ def __init__(__self__, *, :param pulumi.Input[int] temporary_restore_days: Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period. :param pulumi.Input[int] volume_size: The size of the drive in GiBs. """ + _SnapshotCopyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_encryption_key_id=data_encryption_key_id, + description=description, + encrypted=encrypted, + kms_key_id=kms_key_id, + outpost_arn=outpost_arn, + owner_alias=owner_alias, + owner_id=owner_id, + permanent_restore=permanent_restore, + source_region=source_region, + source_snapshot_id=source_snapshot_id, + storage_tier=storage_tier, + tags=tags, + tags_all=tags_all, + temporary_restore_days=temporary_restore_days, + volume_id=volume_id, + volume_size=volume_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + data_encryption_key_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + owner_alias: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + permanent_restore: Optional[pulumi.Input[bool]] = None, + source_region: Optional[pulumi.Input[str]] = None, + source_snapshot_id: Optional[pulumi.Input[str]] = None, + storage_tier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + temporary_restore_days: Optional[pulumi.Input[int]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_encryption_key_id is None and 'dataEncryptionKeyId' in kwargs: + data_encryption_key_id = kwargs['dataEncryptionKeyId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if owner_alias is None and 'ownerAlias' in kwargs: + owner_alias = kwargs['ownerAlias'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if permanent_restore is None and 'permanentRestore' in kwargs: + permanent_restore = kwargs['permanentRestore'] + if source_region is None and 'sourceRegion' in kwargs: + source_region = kwargs['sourceRegion'] + if source_snapshot_id is None and 'sourceSnapshotId' in kwargs: + source_snapshot_id = kwargs['sourceSnapshotId'] + if storage_tier is None and 'storageTier' in kwargs: + storage_tier = kwargs['storageTier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if temporary_restore_days is None and 'temporaryRestoreDays' in kwargs: + temporary_restore_days = kwargs['temporaryRestoreDays'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if data_encryption_key_id is not None: - pulumi.set(__self__, "data_encryption_key_id", data_encryption_key_id) + _setter("data_encryption_key_id", data_encryption_key_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if owner_alias is not None: - pulumi.set(__self__, "owner_alias", owner_alias) + _setter("owner_alias", owner_alias) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if permanent_restore is not None: - pulumi.set(__self__, "permanent_restore", permanent_restore) + _setter("permanent_restore", permanent_restore) if source_region is not None: - pulumi.set(__self__, "source_region", source_region) + _setter("source_region", source_region) if source_snapshot_id is not None: - pulumi.set(__self__, "source_snapshot_id", source_snapshot_id) + _setter("source_snapshot_id", source_snapshot_id) if storage_tier is not None: - pulumi.set(__self__, "storage_tier", storage_tier) + _setter("storage_tier", storage_tier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if temporary_restore_days is not None: - pulumi.set(__self__, "temporary_restore_days", temporary_restore_days) + _setter("temporary_restore_days", temporary_restore_days) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) @property @pulumi.getter @@ -538,6 +650,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotCopyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ebs/snapshot_import.py b/sdk/python/pulumi_aws/ebs/snapshot_import.py index 1fafa2644dd..d7cc7c3b413 100644 --- a/sdk/python/pulumi_aws/ebs/snapshot_import.py +++ b/sdk/python/pulumi_aws/ebs/snapshot_import.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,25 +39,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the snapshot. :param pulumi.Input[int] temporary_restore_days: Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period. """ - pulumi.set(__self__, "disk_container", disk_container) + SnapshotImportArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + disk_container=disk_container, + client_data=client_data, + description=description, + encrypted=encrypted, + kms_key_id=kms_key_id, + permanent_restore=permanent_restore, + role_name=role_name, + storage_tier=storage_tier, + tags=tags, + temporary_restore_days=temporary_restore_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disk_container: Optional[pulumi.Input['SnapshotImportDiskContainerArgs']] = None, + client_data: Optional[pulumi.Input['SnapshotImportClientDataArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + permanent_restore: Optional[pulumi.Input[bool]] = None, + role_name: Optional[pulumi.Input[str]] = None, + storage_tier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + temporary_restore_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disk_container is None and 'diskContainer' in kwargs: + disk_container = kwargs['diskContainer'] + if disk_container is None: + raise TypeError("Missing 'disk_container' argument") + if client_data is None and 'clientData' in kwargs: + client_data = kwargs['clientData'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if permanent_restore is None and 'permanentRestore' in kwargs: + permanent_restore = kwargs['permanentRestore'] + if role_name is None and 'roleName' in kwargs: + role_name = kwargs['roleName'] + if storage_tier is None and 'storageTier' in kwargs: + storage_tier = kwargs['storageTier'] + if temporary_restore_days is None and 'temporaryRestoreDays' in kwargs: + temporary_restore_days = kwargs['temporaryRestoreDays'] + + _setter("disk_container", disk_container) if client_data is not None: - pulumi.set(__self__, "client_data", client_data) + _setter("client_data", client_data) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if permanent_restore is not None: - pulumi.set(__self__, "permanent_restore", permanent_restore) + _setter("permanent_restore", permanent_restore) if role_name is not None: - pulumi.set(__self__, "role_name", role_name) + _setter("role_name", role_name) if storage_tier is not None: - pulumi.set(__self__, "storage_tier", storage_tier) + _setter("storage_tier", storage_tier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if temporary_restore_days is not None: - pulumi.set(__self__, "temporary_restore_days", temporary_restore_days) + _setter("temporary_restore_days", temporary_restore_days) @property @pulumi.getter(name="diskContainer") @@ -220,45 +265,118 @@ def __init__(__self__, *, :param pulumi.Input[int] temporary_restore_days: Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period. :param pulumi.Input[int] volume_size: The size of the drive in GiBs. """ + _SnapshotImportState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + client_data=client_data, + data_encryption_key_id=data_encryption_key_id, + description=description, + disk_container=disk_container, + encrypted=encrypted, + kms_key_id=kms_key_id, + outpost_arn=outpost_arn, + owner_alias=owner_alias, + owner_id=owner_id, + permanent_restore=permanent_restore, + role_name=role_name, + storage_tier=storage_tier, + tags=tags, + tags_all=tags_all, + temporary_restore_days=temporary_restore_days, + volume_id=volume_id, + volume_size=volume_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + client_data: Optional[pulumi.Input['SnapshotImportClientDataArgs']] = None, + data_encryption_key_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disk_container: Optional[pulumi.Input['SnapshotImportDiskContainerArgs']] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + owner_alias: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + permanent_restore: Optional[pulumi.Input[bool]] = None, + role_name: Optional[pulumi.Input[str]] = None, + storage_tier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + temporary_restore_days: Optional[pulumi.Input[int]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_data is None and 'clientData' in kwargs: + client_data = kwargs['clientData'] + if data_encryption_key_id is None and 'dataEncryptionKeyId' in kwargs: + data_encryption_key_id = kwargs['dataEncryptionKeyId'] + if disk_container is None and 'diskContainer' in kwargs: + disk_container = kwargs['diskContainer'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if owner_alias is None and 'ownerAlias' in kwargs: + owner_alias = kwargs['ownerAlias'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if permanent_restore is None and 'permanentRestore' in kwargs: + permanent_restore = kwargs['permanentRestore'] + if role_name is None and 'roleName' in kwargs: + role_name = kwargs['roleName'] + if storage_tier is None and 'storageTier' in kwargs: + storage_tier = kwargs['storageTier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if temporary_restore_days is None and 'temporaryRestoreDays' in kwargs: + temporary_restore_days = kwargs['temporaryRestoreDays'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if client_data is not None: - pulumi.set(__self__, "client_data", client_data) + _setter("client_data", client_data) if data_encryption_key_id is not None: - pulumi.set(__self__, "data_encryption_key_id", data_encryption_key_id) + _setter("data_encryption_key_id", data_encryption_key_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disk_container is not None: - pulumi.set(__self__, "disk_container", disk_container) + _setter("disk_container", disk_container) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if owner_alias is not None: - pulumi.set(__self__, "owner_alias", owner_alias) + _setter("owner_alias", owner_alias) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if permanent_restore is not None: - pulumi.set(__self__, "permanent_restore", permanent_restore) + _setter("permanent_restore", permanent_restore) if role_name is not None: - pulumi.set(__self__, "role_name", role_name) + _setter("role_name", role_name) if storage_tier is not None: - pulumi.set(__self__, "storage_tier", storage_tier) + _setter("storage_tier", storage_tier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if temporary_restore_days is not None: - pulumi.set(__self__, "temporary_restore_days", temporary_restore_days) + _setter("temporary_restore_days", temporary_restore_days) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) @property @pulumi.getter @@ -565,6 +683,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotImportArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -589,8 +711,10 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = SnapshotImportArgs.__new__(SnapshotImportArgs) + client_data = _utilities.configure(client_data, SnapshotImportClientDataArgs, True) __props__.__dict__["client_data"] = client_data __props__.__dict__["description"] = description + disk_container = _utilities.configure(disk_container, SnapshotImportDiskContainerArgs, True) if disk_container is None and not opts.urn: raise TypeError("Missing required property 'disk_container'") __props__.__dict__["disk_container"] = disk_container diff --git a/sdk/python/pulumi_aws/ebs/volume.py b/sdk/python/pulumi_aws/ebs/volume.py index 3e96c5afb51..3119e124d49 100644 --- a/sdk/python/pulumi_aws/ebs/volume.py +++ b/sdk/python/pulumi_aws/ebs/volume.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VolumeArgs', 'Volume'] @@ -43,29 +43,76 @@ def __init__(__self__, *, > **NOTE:** When changing the `size`, `iops` or `type` of an instance, there are [considerations](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/considerations.html) to be aware of. :param pulumi.Input[str] type: The type of EBS volume. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `gp2`). """ - pulumi.set(__self__, "availability_zone", availability_zone) + VolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + encrypted=encrypted, + final_snapshot=final_snapshot, + iops=iops, + kms_key_id=kms_key_id, + multi_attach_enabled=multi_attach_enabled, + outpost_arn=outpost_arn, + size=size, + snapshot_id=snapshot_id, + tags=tags, + throughput=throughput, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + final_snapshot: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + multi_attach_enabled: Optional[pulumi.Input[bool]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if final_snapshot is None and 'finalSnapshot' in kwargs: + final_snapshot = kwargs['finalSnapshot'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if multi_attach_enabled is None and 'multiAttachEnabled' in kwargs: + multi_attach_enabled = kwargs['multiAttachEnabled'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + + _setter("availability_zone", availability_zone) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if final_snapshot is not None: - pulumi.set(__self__, "final_snapshot", final_snapshot) + _setter("final_snapshot", final_snapshot) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if multi_attach_enabled is not None: - pulumi.set(__self__, "multi_attach_enabled", multi_attach_enabled) + _setter("multi_attach_enabled", multi_attach_enabled) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if size is not None: - pulumi.set(__self__, "size", size) + _setter("size", size) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="availabilityZone") @@ -250,37 +297,88 @@ def __init__(__self__, *, > **NOTE:** When changing the `size`, `iops` or `type` of an instance, there are [considerations](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/considerations.html) to be aware of. :param pulumi.Input[str] type: The type of EBS volume. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `gp2`). """ + _VolumeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zone=availability_zone, + encrypted=encrypted, + final_snapshot=final_snapshot, + iops=iops, + kms_key_id=kms_key_id, + multi_attach_enabled=multi_attach_enabled, + outpost_arn=outpost_arn, + size=size, + snapshot_id=snapshot_id, + tags=tags, + tags_all=tags_all, + throughput=throughput, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + final_snapshot: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + multi_attach_enabled: Optional[pulumi.Input[bool]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if final_snapshot is None and 'finalSnapshot' in kwargs: + final_snapshot = kwargs['finalSnapshot'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if multi_attach_enabled is None and 'multiAttachEnabled' in kwargs: + multi_attach_enabled = kwargs['multiAttachEnabled'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if final_snapshot is not None: - pulumi.set(__self__, "final_snapshot", final_snapshot) + _setter("final_snapshot", final_snapshot) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if multi_attach_enabled is not None: - pulumi.set(__self__, "multi_attach_enabled", multi_attach_enabled) + _setter("multi_attach_enabled", multi_attach_enabled) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if size is not None: - pulumi.set(__self__, "size", size) + _setter("size", size) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -561,6 +659,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VolumeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/_inputs.py b/sdk/python/pulumi_aws/ec2/_inputs.py index abde0dc2beb..6c6f3351b62 100644 --- a/sdk/python/pulumi_aws/ec2/_inputs.py +++ b/sdk/python/pulumi_aws/ec2/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -320,24 +320,63 @@ def __init__(__self__, *, as the selected snapshot. :param pulumi.Input[str] volume_type: Type of EBS volume to create. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `standard`). """ + AmiCopyEbsBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + outpost_arn=outpost_arn, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[bool]] = None, + device_name: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -466,10 +505,27 @@ def __init__(__self__, *, :param pulumi.Input[str] virtual_name: Name for the ephemeral device, of the form "ephemeralN" where *N* is a volume number starting from zero. """ + AmiCopyEphemeralBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -528,23 +584,64 @@ def __init__(__self__, *, as the selected snapshot. :param pulumi.Input[str] volume_type: Type of EBS volume to create. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `standard`). """ - pulumi.set(__self__, "device_name", device_name) + AmiEbsBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + outpost_arn=outpost_arn, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + delete_on_termination: Optional[pulumi.Input[bool]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -673,8 +770,29 @@ def __init__(__self__, *, :param pulumi.Input[str] virtual_name: Name for the ephemeral device, of the form "ephemeralN" where *N* is a volume number starting from zero. """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "virtual_name", virtual_name) + AmiEphemeralBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -733,24 +851,63 @@ def __init__(__self__, *, as the selected snapshot. :param pulumi.Input[str] volume_type: Type of EBS volume to create. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `standard`). """ + AmiFromInstanceEbsBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + outpost_arn=outpost_arn, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[bool]] = None, + device_name: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -879,10 +1036,27 @@ def __init__(__self__, *, :param pulumi.Input[str] virtual_name: Name for the ephemeral device, of the form "ephemeralN" where *N* is a volume number starting from zero. """ + AmiFromInstanceEphemeralBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -937,19 +1111,70 @@ def __init__(__self__, *, > For more information on ICMP types and codes, see [Internet Control Message Protocol (ICMP) Parameters](https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml). """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_no", rule_no) - pulumi.set(__self__, "to_port", to_port) + DefaultNetworkAclEgressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + from_port=from_port, + protocol=protocol, + rule_no=rule_no, + to_port=to_port, + cidr_block=cidr_block, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_no: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + icmp_code: Optional[pulumi.Input[int]] = None, + icmp_type: Optional[pulumi.Input[int]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_no is None and 'ruleNo' in kwargs: + rule_no = kwargs['ruleNo'] + if rule_no is None: + raise TypeError("Missing 'rule_no' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + + _setter("action", action) + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("rule_no", rule_no) + _setter("to_port", to_port) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) @property @pulumi.getter @@ -1091,19 +1316,70 @@ def __init__(__self__, *, > For more information on ICMP types and codes, see [Internet Control Message Protocol (ICMP) Parameters](https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml). """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_no", rule_no) - pulumi.set(__self__, "to_port", to_port) + DefaultNetworkAclIngressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + from_port=from_port, + protocol=protocol, + rule_no=rule_no, + to_port=to_port, + cidr_block=cidr_block, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_no: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + icmp_code: Optional[pulumi.Input[int]] = None, + icmp_type: Optional[pulumi.Input[int]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_no is None and 'ruleNo' in kwargs: + rule_no = kwargs['ruleNo'] + if rule_no is None: + raise TypeError("Missing 'rule_no' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + + _setter("action", action) + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("rule_no", rule_no) + _setter("to_port", to_port) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) @property @pulumi.getter @@ -1251,30 +1527,87 @@ def __init__(__self__, *, Note that the default route, mapping the VPC's CIDR block to "local", is created implicitly and cannot be specified. """ + DefaultRouteTableRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + core_network_arn=core_network_arn, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_gateway_id=egress_only_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + ipv6_cidr_block=ipv6_cidr_block, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + transit_gateway_id=transit_gateway_id, + vpc_endpoint_id=vpc_endpoint_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + destination_prefix_list_id: Optional[pulumi.Input[str]] = None, + egress_only_gateway_id: Optional[pulumi.Input[str]] = None, + gateway_id: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + nat_gateway_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_gateway_id is None and 'egressOnlyGatewayId' in kwargs: + egress_only_gateway_id = kwargs['egressOnlyGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_gateway_id is not None: - pulumi.set(__self__, "egress_only_gateway_id", egress_only_gateway_id) + _setter("egress_only_gateway_id", egress_only_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="cidrBlock") @@ -1448,21 +1781,66 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. :param pulumi.Input[bool] self: Whether the security group itself will be added as a source to this egress rule. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + DefaultSecurityGroupEgressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_blocks=cidr_blocks, + description=description, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + security_groups=security_groups, + self=self, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + to_port: Optional[pulumi.Input[int]] = None, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + ipv6_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + prefix_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) @property @pulumi.getter(name="fromPort") @@ -1596,21 +1974,66 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. :param pulumi.Input[bool] self: Whether the security group itself will be added as a source to this egress rule. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + DefaultSecurityGroupIngressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_blocks=cidr_blocks, + description=description, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + security_groups=security_groups, + self=self, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + to_port: Optional[pulumi.Input[int]] = None, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + ipv6_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + prefix_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) @property @pulumi.getter(name="fromPort") @@ -1734,14 +2157,35 @@ def __init__(__self__, *, :param pulumi.Input[str] lifecycle: Indicates if the instance that was launched is a Spot Instance or On-Demand Instance. :param pulumi.Input[str] platform: The value is `Windows` for Windows instances. Otherwise, the value is blank. """ + FleetFleetInstanceSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_ids=instance_ids, + instance_type=instance_type, + lifecycle=lifecycle, + platform=platform, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_ids is None and 'instanceIds' in kwargs: + instance_ids = kwargs['instanceIds'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_ids is not None: - pulumi.set(__self__, "instance_ids", instance_ids) + _setter("instance_ids", instance_ids) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle is not None: - pulumi.set(__self__, "lifecycle", lifecycle) + _setter("lifecycle", lifecycle) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) @property @pulumi.getter(name="instanceIds") @@ -1801,10 +2245,25 @@ def __init__(__self__, *, :param pulumi.Input['FleetLaunchTemplateConfigLaunchTemplateSpecificationArgs'] launch_template_specification: Nested argument containing EC2 Launch Template to use. Defined below. :param pulumi.Input[Sequence[pulumi.Input['FleetLaunchTemplateConfigOverrideArgs']]] overrides: Nested argument(s) containing parameters to override the same parameters in the Launch Template. Defined below. """ + FleetLaunchTemplateConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_specification=launch_template_specification, + overrides=overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_specification: Optional[pulumi.Input['FleetLaunchTemplateConfigLaunchTemplateSpecificationArgs']] = None, + overrides: Optional[pulumi.Input[Sequence[pulumi.Input['FleetLaunchTemplateConfigOverrideArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_specification is None and 'launchTemplateSpecification' in kwargs: + launch_template_specification = kwargs['launchTemplateSpecification'] + if launch_template_specification is not None: - pulumi.set(__self__, "launch_template_specification", launch_template_specification) + _setter("launch_template_specification", launch_template_specification) if overrides is not None: - pulumi.set(__self__, "overrides", overrides) + _setter("overrides", overrides) @property @pulumi.getter(name="launchTemplateSpecification") @@ -1842,11 +2301,32 @@ def __init__(__self__, *, :param pulumi.Input[str] launch_template_id: The ID of the launch template. :param pulumi.Input[str] launch_template_name: The name of the launch template. """ - pulumi.set(__self__, "version", version) + FleetLaunchTemplateConfigLaunchTemplateSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[pulumi.Input[str]] = None, + launch_template_id: Optional[pulumi.Input[str]] = None, + launch_template_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is None: + raise TypeError("Missing 'version' argument") + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + + _setter("version", version) if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) @property @pulumi.getter @@ -1904,20 +2384,55 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_id: ID of the subnet in which to launch the instances. :param pulumi.Input[float] weighted_capacity: Number of units provided by the specified instance type. """ + FleetLaunchTemplateConfigOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + instance_requirements=instance_requirements, + instance_type=instance_type, + max_price=max_price, + priority=priority, + subnet_id=subnet_id, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + instance_requirements: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs']] = None, + instance_type: Optional[pulumi.Input[str]] = None, + max_price: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[float]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + weighted_capacity: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if instance_requirements is None and 'instanceRequirements' in kwargs: + instance_requirements = kwargs['instanceRequirements'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if max_price is None and 'maxPrice' in kwargs: + max_price = kwargs['maxPrice'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if instance_requirements is not None: - pulumi.set(__self__, "instance_requirements", instance_requirements) + _setter("instance_requirements", instance_requirements) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if max_price is not None: - pulumi.set(__self__, "max_price", max_price) + _setter("max_price", max_price) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="availabilityZone") @@ -2064,50 +2579,155 @@ def __init__(__self__, *, If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price. :param pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs'] total_local_storage_gb: Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum. """ - pulumi.set(__self__, "memory_mib", memory_mib) - pulumi.set(__self__, "vcpu_count", vcpu_count) + FleetLaunchTemplateConfigOverrideInstanceRequirementsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + memory_mib=memory_mib, + vcpu_count=vcpu_count, + accelerator_count=accelerator_count, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mib=accelerator_total_memory_mib, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpu=memory_gib_per_vcpu, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_count=network_interface_count, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gb=total_local_storage_gb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + memory_mib: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs']] = None, + vcpu_count: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs']] = None, + accelerator_count: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs']] = None, + accelerator_manufacturers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + accelerator_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + accelerator_total_memory_mib: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs']] = None, + accelerator_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + bare_metal: Optional[pulumi.Input[str]] = None, + baseline_ebs_bandwidth_mbps: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs']] = None, + burstable_performance: Optional[pulumi.Input[str]] = None, + cpu_manufacturers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + excluded_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_generations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + local_storage: Optional[pulumi.Input[str]] = None, + local_storage_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + memory_gib_per_vcpu: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs']] = None, + network_bandwidth_gbps: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs']] = None, + network_interface_count: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs']] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[pulumi.Input[int]] = None, + require_hibernate_support: Optional[pulumi.Input[bool]] = None, + spot_max_price_percentage_over_lowest_price: Optional[pulumi.Input[int]] = None, + total_local_storage_gb: Optional[pulumi.Input['FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if memory_mib is None and 'memoryMib' in kwargs: + memory_mib = kwargs['memoryMib'] + if memory_mib is None: + raise TypeError("Missing 'memory_mib' argument") + if vcpu_count is None and 'vcpuCount' in kwargs: + vcpu_count = kwargs['vcpuCount'] + if vcpu_count is None: + raise TypeError("Missing 'vcpu_count' argument") + if accelerator_count is None and 'acceleratorCount' in kwargs: + accelerator_count = kwargs['acceleratorCount'] + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_total_memory_mib is None and 'acceleratorTotalMemoryMib' in kwargs: + accelerator_total_memory_mib = kwargs['acceleratorTotalMemoryMib'] + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if memory_gib_per_vcpu is None and 'memoryGibPerVcpu' in kwargs: + memory_gib_per_vcpu = kwargs['memoryGibPerVcpu'] + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_interface_count is None and 'networkInterfaceCount' in kwargs: + network_interface_count = kwargs['networkInterfaceCount'] + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if total_local_storage_gb is None and 'totalLocalStorageGb' in kwargs: + total_local_storage_gb = kwargs['totalLocalStorageGb'] + + _setter("memory_mib", memory_mib) + _setter("vcpu_count", vcpu_count) if accelerator_count is not None: - pulumi.set(__self__, "accelerator_count", accelerator_count) + _setter("accelerator_count", accelerator_count) if accelerator_manufacturers is not None: - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_manufacturers", accelerator_manufacturers) if accelerator_names is not None: - pulumi.set(__self__, "accelerator_names", accelerator_names) + _setter("accelerator_names", accelerator_names) if accelerator_total_memory_mib is not None: - pulumi.set(__self__, "accelerator_total_memory_mib", accelerator_total_memory_mib) + _setter("accelerator_total_memory_mib", accelerator_total_memory_mib) if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if allowed_instance_types is not None: - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + _setter("allowed_instance_types", allowed_instance_types) if bare_metal is not None: - pulumi.set(__self__, "bare_metal", bare_metal) + _setter("bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) if burstable_performance is not None: - pulumi.set(__self__, "burstable_performance", burstable_performance) + _setter("burstable_performance", burstable_performance) if cpu_manufacturers is not None: - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) + _setter("cpu_manufacturers", cpu_manufacturers) if excluded_instance_types is not None: - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + _setter("excluded_instance_types", excluded_instance_types) if instance_generations is not None: - pulumi.set(__self__, "instance_generations", instance_generations) + _setter("instance_generations", instance_generations) if local_storage is not None: - pulumi.set(__self__, "local_storage", local_storage) + _setter("local_storage", local_storage) if local_storage_types is not None: - pulumi.set(__self__, "local_storage_types", local_storage_types) + _setter("local_storage_types", local_storage_types) if memory_gib_per_vcpu is not None: - pulumi.set(__self__, "memory_gib_per_vcpu", memory_gib_per_vcpu) + _setter("memory_gib_per_vcpu", memory_gib_per_vcpu) if network_bandwidth_gbps is not None: - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) if network_interface_count is not None: - pulumi.set(__self__, "network_interface_count", network_interface_count) + _setter("network_interface_count", network_interface_count) if on_demand_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) if require_hibernate_support is not None: - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) + _setter("require_hibernate_support", require_hibernate_support) if spot_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) if total_local_storage_gb is not None: - pulumi.set(__self__, "total_local_storage_gb", total_local_storage_gb) + _setter("total_local_storage_gb", total_local_storage_gb) @property @pulumi.getter(name="memoryMib") @@ -2401,19 +3021,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. - :param pulumi.Input[int] min: Minimum. - """ + :param pulumi.Input[int] max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param pulumi.Input[int] min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2425,7 +3058,7 @@ def max(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def min(self) -> Optional[pulumi.Input[int]]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2440,19 +3073,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. - :param pulumi.Input[int] min: Minimum. - """ + :param pulumi.Input[int] max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param pulumi.Input[int] min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2464,7 +3110,7 @@ def max(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def min(self) -> Optional[pulumi.Input[int]]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2479,19 +3125,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. - :param pulumi.Input[int] min: Minimum. - """ + :param pulumi.Input[int] max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param pulumi.Input[int] min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2503,7 +3162,7 @@ def max(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def min(self) -> Optional[pulumi.Input[int]]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2518,19 +3177,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. - :param pulumi.Input[float] min: Minimum. - """ + :param pulumi.Input[float] max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param pulumi.Input[float] min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2542,7 +3214,7 @@ def max(self, value: Optional[pulumi.Input[float]]): @pulumi.getter def min(self) -> Optional[pulumi.Input[float]]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2557,18 +3229,33 @@ def __init__(__self__, *, min: pulumi.Input[int], max: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] min: Minimum. - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. - """ - pulumi.set(__self__, "min", min) + :param pulumi.Input[int] min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + :param pulumi.Input[int] max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + min=min, + max=max, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + min: Optional[pulumi.Input[int]] = None, + max: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("min", min) if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) @property @pulumi.getter def min(self) -> pulumi.Input[int]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2580,7 +3267,7 @@ def min(self, value: pulumi.Input[int]): @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2595,19 +3282,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. - :param pulumi.Input[float] min: Minimum. - """ + :param pulumi.Input[float] max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param pulumi.Input[float] min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2619,7 +3319,7 @@ def max(self, value: Optional[pulumi.Input[float]]): @pulumi.getter def min(self) -> Optional[pulumi.Input[float]]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2634,19 +3334,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. - :param pulumi.Input[int] min: Minimum. - """ + :param pulumi.Input[int] max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param pulumi.Input[int] min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2658,7 +3371,7 @@ def max(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def min(self) -> Optional[pulumi.Input[int]]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2673,19 +3386,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. - :param pulumi.Input[float] min: Minimum. - """ + :param pulumi.Input[float] max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param pulumi.Input[float] min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2697,7 +3423,7 @@ def max(self, value: Optional[pulumi.Input[float]]): @pulumi.getter def min(self) -> Optional[pulumi.Input[float]]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2712,18 +3438,33 @@ def __init__(__self__, *, min: pulumi.Input[int], max: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] min: Minimum. - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. - """ - pulumi.set(__self__, "min", min) + :param pulumi.Input[int] min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + :param pulumi.Input[int] max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + min=min, + max=max, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + min: Optional[pulumi.Input[int]] = None, + max: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("min", min) if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) @property @pulumi.getter def min(self) -> pulumi.Input[int]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2735,7 +3476,7 @@ def min(self, value: pulumi.Input[int]): @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2760,16 +3501,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] single_availability_zone: Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type `instant`. :param pulumi.Input[bool] single_instance_type: Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type `instant`. """ + FleetOnDemandOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + max_total_price=max_total_price, + min_target_capacity=min_target_capacity, + single_availability_zone=single_availability_zone, + single_instance_type=single_instance_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[pulumi.Input[str]] = None, + max_total_price: Optional[pulumi.Input[str]] = None, + min_target_capacity: Optional[pulumi.Input[int]] = None, + single_availability_zone: Optional[pulumi.Input[bool]] = None, + single_instance_type: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if max_total_price is None and 'maxTotalPrice' in kwargs: + max_total_price = kwargs['maxTotalPrice'] + if min_target_capacity is None and 'minTargetCapacity' in kwargs: + min_target_capacity = kwargs['minTargetCapacity'] + if single_availability_zone is None and 'singleAvailabilityZone' in kwargs: + single_availability_zone = kwargs['singleAvailabilityZone'] + if single_instance_type is None and 'singleInstanceType' in kwargs: + single_instance_type = kwargs['singleInstanceType'] + if allocation_strategy is not None: - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + _setter("allocation_strategy", allocation_strategy) if max_total_price is not None: - pulumi.set(__self__, "max_total_price", max_total_price) + _setter("max_total_price", max_total_price) if min_target_capacity is not None: - pulumi.set(__self__, "min_target_capacity", min_target_capacity) + _setter("min_target_capacity", min_target_capacity) if single_availability_zone is not None: - pulumi.set(__self__, "single_availability_zone", single_availability_zone) + _setter("single_availability_zone", single_availability_zone) if single_instance_type is not None: - pulumi.set(__self__, "single_instance_type", single_instance_type) + _setter("single_instance_type", single_instance_type) @property @pulumi.getter(name="allocationStrategy") @@ -2846,14 +3616,39 @@ def __init__(__self__, *, :param pulumi.Input[int] instance_pools_to_use_count: Number of Spot pools across which to allocate your target Spot capacity. Valid only when Spot `allocation_strategy` is set to `lowestPrice`. Default: `1`. :param pulumi.Input['FleetSpotOptionsMaintenanceStrategiesArgs'] maintenance_strategies: Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below. """ + FleetSpotOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + instance_interruption_behavior=instance_interruption_behavior, + instance_pools_to_use_count=instance_pools_to_use_count, + maintenance_strategies=maintenance_strategies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[pulumi.Input[str]] = None, + instance_interruption_behavior: Optional[pulumi.Input[str]] = None, + instance_pools_to_use_count: Optional[pulumi.Input[int]] = None, + maintenance_strategies: Optional[pulumi.Input['FleetSpotOptionsMaintenanceStrategiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if instance_interruption_behavior is None and 'instanceInterruptionBehavior' in kwargs: + instance_interruption_behavior = kwargs['instanceInterruptionBehavior'] + if instance_pools_to_use_count is None and 'instancePoolsToUseCount' in kwargs: + instance_pools_to_use_count = kwargs['instancePoolsToUseCount'] + if maintenance_strategies is None and 'maintenanceStrategies' in kwargs: + maintenance_strategies = kwargs['maintenanceStrategies'] + if allocation_strategy is not None: - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + _setter("allocation_strategy", allocation_strategy) if instance_interruption_behavior is not None: - pulumi.set(__self__, "instance_interruption_behavior", instance_interruption_behavior) + _setter("instance_interruption_behavior", instance_interruption_behavior) if instance_pools_to_use_count is not None: - pulumi.set(__self__, "instance_pools_to_use_count", instance_pools_to_use_count) + _setter("instance_pools_to_use_count", instance_pools_to_use_count) if maintenance_strategies is not None: - pulumi.set(__self__, "maintenance_strategies", maintenance_strategies) + _setter("maintenance_strategies", maintenance_strategies) @property @pulumi.getter(name="allocationStrategy") @@ -2911,8 +3706,21 @@ def __init__(__self__, *, """ :param pulumi.Input['FleetSpotOptionsMaintenanceStrategiesCapacityRebalanceArgs'] capacity_rebalance: Nested argument containing the capacity rebalance for your fleet request. Defined below. """ + FleetSpotOptionsMaintenanceStrategiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_rebalance=capacity_rebalance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_rebalance: Optional[pulumi.Input['FleetSpotOptionsMaintenanceStrategiesCapacityRebalanceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_rebalance is None and 'capacityRebalance' in kwargs: + capacity_rebalance = kwargs['capacityRebalance'] + if capacity_rebalance is not None: - pulumi.set(__self__, "capacity_rebalance", capacity_rebalance) + _setter("capacity_rebalance", capacity_rebalance) @property @pulumi.getter(name="capacityRebalance") @@ -2935,10 +3743,27 @@ def __init__(__self__, *, """ :param pulumi.Input[str] replacement_strategy: The replacement strategy to use. Only available for fleets of `type` set to `maintain`. Valid values: `launch`. """ + FleetSpotOptionsMaintenanceStrategiesCapacityRebalanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + replacement_strategy=replacement_strategy, + termination_delay=termination_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replacement_strategy: Optional[pulumi.Input[str]] = None, + termination_delay: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replacement_strategy is None and 'replacementStrategy' in kwargs: + replacement_strategy = kwargs['replacementStrategy'] + if termination_delay is None and 'terminationDelay' in kwargs: + termination_delay = kwargs['terminationDelay'] + if replacement_strategy is not None: - pulumi.set(__self__, "replacement_strategy", replacement_strategy) + _setter("replacement_strategy", replacement_strategy) if termination_delay is not None: - pulumi.set(__self__, "termination_delay", termination_delay) + _setter("termination_delay", termination_delay) @property @pulumi.getter(name="replacementStrategy") @@ -2978,14 +3803,47 @@ def __init__(__self__, *, :param pulumi.Input[str] target_capacity_unit_type: The unit for the target capacity. If you specify `target_capacity_unit_type`, `instance_requirements` must be specified. """ - pulumi.set(__self__, "default_target_capacity_type", default_target_capacity_type) - pulumi.set(__self__, "total_target_capacity", total_target_capacity) + FleetTargetCapacitySpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_target_capacity_type=default_target_capacity_type, + total_target_capacity=total_target_capacity, + on_demand_target_capacity=on_demand_target_capacity, + spot_target_capacity=spot_target_capacity, + target_capacity_unit_type=target_capacity_unit_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_target_capacity_type: Optional[pulumi.Input[str]] = None, + total_target_capacity: Optional[pulumi.Input[int]] = None, + on_demand_target_capacity: Optional[pulumi.Input[int]] = None, + spot_target_capacity: Optional[pulumi.Input[int]] = None, + target_capacity_unit_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_target_capacity_type is None and 'defaultTargetCapacityType' in kwargs: + default_target_capacity_type = kwargs['defaultTargetCapacityType'] + if default_target_capacity_type is None: + raise TypeError("Missing 'default_target_capacity_type' argument") + if total_target_capacity is None and 'totalTargetCapacity' in kwargs: + total_target_capacity = kwargs['totalTargetCapacity'] + if total_target_capacity is None: + raise TypeError("Missing 'total_target_capacity' argument") + if on_demand_target_capacity is None and 'onDemandTargetCapacity' in kwargs: + on_demand_target_capacity = kwargs['onDemandTargetCapacity'] + if spot_target_capacity is None and 'spotTargetCapacity' in kwargs: + spot_target_capacity = kwargs['spotTargetCapacity'] + if target_capacity_unit_type is None and 'targetCapacityUnitType' in kwargs: + target_capacity_unit_type = kwargs['targetCapacityUnitType'] + + _setter("default_target_capacity_type", default_target_capacity_type) + _setter("total_target_capacity", total_target_capacity) if on_demand_target_capacity is not None: - pulumi.set(__self__, "on_demand_target_capacity", on_demand_target_capacity) + _setter("on_demand_target_capacity", on_demand_target_capacity) if spot_target_capacity is not None: - pulumi.set(__self__, "spot_target_capacity", spot_target_capacity) + _setter("spot_target_capacity", spot_target_capacity) if target_capacity_unit_type is not None: - pulumi.set(__self__, "target_capacity_unit_type", target_capacity_unit_type) + _setter("target_capacity_unit_type", target_capacity_unit_type) @property @pulumi.getter(name="defaultTargetCapacityType") @@ -3060,12 +3918,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] hive_compatible_partitions: Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3. Default value: `false`. :param pulumi.Input[bool] per_hour_partition: Indicates whether to partition the flow log per hour. This reduces the cost and response time for queries. Default value: `false`. """ + FlowLogDestinationOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_format=file_format, + hive_compatible_partitions=hive_compatible_partitions, + per_hour_partition=per_hour_partition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_format: Optional[pulumi.Input[str]] = None, + hive_compatible_partitions: Optional[pulumi.Input[bool]] = None, + per_hour_partition: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_format is None and 'fileFormat' in kwargs: + file_format = kwargs['fileFormat'] + if hive_compatible_partitions is None and 'hiveCompatiblePartitions' in kwargs: + hive_compatible_partitions = kwargs['hiveCompatiblePartitions'] + if per_hour_partition is None and 'perHourPartition' in kwargs: + per_hour_partition = kwargs['perHourPartition'] + if file_format is not None: - pulumi.set(__self__, "file_format", file_format) + _setter("file_format", file_format) if hive_compatible_partitions is not None: - pulumi.set(__self__, "hive_compatible_partitions", hive_compatible_partitions) + _setter("hive_compatible_partitions", hive_compatible_partitions) if per_hour_partition is not None: - pulumi.set(__self__, "per_hour_partition", per_hour_partition) + _setter("per_hour_partition", per_hour_partition) @property @pulumi.getter(name="fileFormat") @@ -3115,10 +3994,27 @@ def __init__(__self__, *, For more information, see the documentation on [Capacity Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-using.html). """ + InstanceCapacityReservationSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_preference=capacity_reservation_preference, + capacity_reservation_target=capacity_reservation_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_preference: Optional[pulumi.Input[str]] = None, + capacity_reservation_target: Optional[pulumi.Input['InstanceCapacityReservationSpecificationCapacityReservationTargetArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_preference is None and 'capacityReservationPreference' in kwargs: + capacity_reservation_preference = kwargs['capacityReservationPreference'] + if capacity_reservation_target is None and 'capacityReservationTarget' in kwargs: + capacity_reservation_target = kwargs['capacityReservationTarget'] + if capacity_reservation_preference is not None: - pulumi.set(__self__, "capacity_reservation_preference", capacity_reservation_preference) + _setter("capacity_reservation_preference", capacity_reservation_preference) if capacity_reservation_target is not None: - pulumi.set(__self__, "capacity_reservation_target", capacity_reservation_target) + _setter("capacity_reservation_target", capacity_reservation_target) @property @pulumi.getter(name="capacityReservationPreference") @@ -3156,10 +4052,27 @@ def __init__(__self__, *, :param pulumi.Input[str] capacity_reservation_id: ID of the Capacity Reservation in which to run the instance. :param pulumi.Input[str] capacity_reservation_resource_group_arn: ARN of the Capacity Reservation resource group in which to run the instance. """ + InstanceCapacityReservationSpecificationCapacityReservationTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_id=capacity_reservation_id, + capacity_reservation_resource_group_arn=capacity_reservation_resource_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_id: Optional[pulumi.Input[str]] = None, + capacity_reservation_resource_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_id is None and 'capacityReservationId' in kwargs: + capacity_reservation_id = kwargs['capacityReservationId'] + if capacity_reservation_resource_group_arn is None and 'capacityReservationResourceGroupArn' in kwargs: + capacity_reservation_resource_group_arn = kwargs['capacityReservationResourceGroupArn'] + if capacity_reservation_id is not None: - pulumi.set(__self__, "capacity_reservation_id", capacity_reservation_id) + _setter("capacity_reservation_id", capacity_reservation_id) if capacity_reservation_resource_group_arn is not None: - pulumi.set(__self__, "capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) + _setter("capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) @property @pulumi.getter(name="capacityReservationId") @@ -3199,12 +4112,33 @@ def __init__(__self__, *, For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). """ + InstanceCpuOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amd_sev_snp=amd_sev_snp, + core_count=core_count, + threads_per_core=threads_per_core, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amd_sev_snp: Optional[pulumi.Input[str]] = None, + core_count: Optional[pulumi.Input[int]] = None, + threads_per_core: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amd_sev_snp is None and 'amdSevSnp' in kwargs: + amd_sev_snp = kwargs['amdSevSnp'] + if core_count is None and 'coreCount' in kwargs: + core_count = kwargs['coreCount'] + if threads_per_core is None and 'threadsPerCore' in kwargs: + threads_per_core = kwargs['threadsPerCore'] + if amd_sev_snp is not None: - pulumi.set(__self__, "amd_sev_snp", amd_sev_snp) + _setter("amd_sev_snp", amd_sev_snp) if core_count is not None: - pulumi.set(__self__, "core_count", core_count) + _setter("core_count", core_count) if threads_per_core is not None: - pulumi.set(__self__, "threads_per_core", threads_per_core) + _setter("threads_per_core", threads_per_core) @property @pulumi.getter(name="amdSevSnp") @@ -3252,8 +4186,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cpu_credits: Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ + InstanceCreditSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_credits=cpu_credits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_credits: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_credits is None and 'cpuCredits' in kwargs: + cpu_credits = kwargs['cpuCredits'] + if cpu_credits is not None: - pulumi.set(__self__, "cpu_credits", cpu_credits) + _setter("cpu_credits", cpu_credits) @property @pulumi.getter(name="cpuCredits") @@ -3297,27 +4244,74 @@ def __init__(__self__, *, > **NOTE:** Currently, changes to the `ebs_block_device` configuration of _existing_ resources cannot be automatically detected by this provider. To manage changes and attachments of an EBS block to an instance, use the `ebs.Volume` and `ec2.VolumeAttachment` resources instead. If you use `ebs_block_device` on an `ec2.Instance`, this provider will assume management over the full set of non-root EBS block devices for the instance, treating additional block devices as drift. For this reason, `ebs_block_device` cannot be mixed with external `ebs.Volume` and `ec2.VolumeAttachment` resources for a given instance. """ - pulumi.set(__self__, "device_name", device_name) + InstanceEbsBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + delete_on_termination: Optional[pulumi.Input[bool]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -3463,8 +4457,19 @@ def __init__(__self__, *, For more information, see the documentation on [Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html). """ + InstanceEnclaveOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -3494,11 +4499,34 @@ def __init__(__self__, *, Each AWS Instance type has a different set of Instance Store block devices available for attachment. AWS [publishes a list](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#StorageOnInstanceTypes) of which ephemeral devices are available on each type. The devices are always identified by the `virtual_name` in the format `ephemeral{0..N}`. """ - pulumi.set(__self__, "device_name", device_name) + InstanceEphemeralBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + no_device: Optional[pulumi.Input[bool]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + + _setter("device_name", device_name) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -3548,10 +4576,27 @@ def __init__(__self__, *, :param pulumi.Input[str] market_type: Type of market for the instance. Valid value is `spot`. Defaults to `spot`. :param pulumi.Input['InstanceInstanceMarketOptionsSpotOptionsArgs'] spot_options: Block to configure the options for Spot Instances. See Spot Options below for details on attributes. """ + InstanceInstanceMarketOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + market_type=market_type, + spot_options=spot_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + market_type: Optional[pulumi.Input[str]] = None, + spot_options: Optional[pulumi.Input['InstanceInstanceMarketOptionsSpotOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if market_type is None and 'marketType' in kwargs: + market_type = kwargs['marketType'] + if spot_options is None and 'spotOptions' in kwargs: + spot_options = kwargs['spotOptions'] + if market_type is not None: - pulumi.set(__self__, "market_type", market_type) + _setter("market_type", market_type) if spot_options is not None: - pulumi.set(__self__, "spot_options", spot_options) + _setter("spot_options", spot_options) @property @pulumi.getter(name="marketType") @@ -3591,14 +4636,39 @@ def __init__(__self__, *, :param pulumi.Input[str] spot_instance_type: The Spot Instance request type. Valid values include `one-time`, `persistent`. Persistent Spot Instance requests are only supported when the instance interruption behavior is either hibernate or stop. The default is `one-time`. :param pulumi.Input[str] valid_until: The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. """ + InstanceInstanceMarketOptionsSpotOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_interruption_behavior=instance_interruption_behavior, + max_price=max_price, + spot_instance_type=spot_instance_type, + valid_until=valid_until, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_interruption_behavior: Optional[pulumi.Input[str]] = None, + max_price: Optional[pulumi.Input[str]] = None, + spot_instance_type: Optional[pulumi.Input[str]] = None, + valid_until: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_interruption_behavior is None and 'instanceInterruptionBehavior' in kwargs: + instance_interruption_behavior = kwargs['instanceInterruptionBehavior'] + if max_price is None and 'maxPrice' in kwargs: + max_price = kwargs['maxPrice'] + if spot_instance_type is None and 'spotInstanceType' in kwargs: + spot_instance_type = kwargs['spotInstanceType'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if instance_interruption_behavior is not None: - pulumi.set(__self__, "instance_interruption_behavior", instance_interruption_behavior) + _setter("instance_interruption_behavior", instance_interruption_behavior) if max_price is not None: - pulumi.set(__self__, "max_price", max_price) + _setter("max_price", max_price) if spot_instance_type is not None: - pulumi.set(__self__, "spot_instance_type", spot_instance_type) + _setter("spot_instance_type", spot_instance_type) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) @property @pulumi.getter(name="instanceInterruptionBehavior") @@ -3660,12 +4730,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the launch template. Conflicts with `id`. :param pulumi.Input[str] version: Template version. Can be a specific version number, `$Latest` or `$Default`. The default value is `$Default`. """ + InstanceLaunchTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -3711,8 +4796,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] auto_recovery: Automatic recovery behavior of the Instance. Can be `"default"` or `"disabled"`. See [Recover your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html) for more details. """ + InstanceMaintenanceOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_recovery=auto_recovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_recovery: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_recovery is None and 'autoRecovery' in kwargs: + auto_recovery = kwargs['autoRecovery'] + if auto_recovery is not None: - pulumi.set(__self__, "auto_recovery", auto_recovery) + _setter("auto_recovery", auto_recovery) @property @pulumi.getter(name="autoRecovery") @@ -3744,16 +4842,45 @@ def __init__(__self__, *, For more information, see the documentation on the [Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html). """ + InstanceMetadataOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_protocol_ipv6=http_protocol_ipv6, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + instance_metadata_tags=instance_metadata_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[pulumi.Input[str]] = None, + http_protocol_ipv6: Optional[pulumi.Input[str]] = None, + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + instance_metadata_tags: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_protocol_ipv6 is None and 'httpProtocolIpv6' in kwargs: + http_protocol_ipv6 = kwargs['httpProtocolIpv6'] + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if instance_metadata_tags is None and 'instanceMetadataTags' in kwargs: + instance_metadata_tags = kwargs['instanceMetadataTags'] + if http_endpoint is not None: - pulumi.set(__self__, "http_endpoint", http_endpoint) + _setter("http_endpoint", http_endpoint) if http_protocol_ipv6 is not None: - pulumi.set(__self__, "http_protocol_ipv6", http_protocol_ipv6) + _setter("http_protocol_ipv6", http_protocol_ipv6) if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) if instance_metadata_tags is not None: - pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + _setter("instance_metadata_tags", instance_metadata_tags) @property @pulumi.getter(name="httpEndpoint") @@ -3831,12 +4958,41 @@ def __init__(__self__, *, :param pulumi.Input[bool] delete_on_termination: Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. :param pulumi.Input[int] network_card_index: Integer index of the network card. Limited by instance type. The default index is `0`. """ - pulumi.set(__self__, "device_index", device_index) - pulumi.set(__self__, "network_interface_id", network_interface_id) + InstanceNetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_index=device_index, + network_interface_id=network_interface_id, + delete_on_termination=delete_on_termination, + network_card_index=network_card_index, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_index: Optional[pulumi.Input[int]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + delete_on_termination: Optional[pulumi.Input[bool]] = None, + network_card_index: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if device_index is None: + raise TypeError("Missing 'device_index' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if network_card_index is None and 'networkCardIndex' in kwargs: + network_card_index = kwargs['networkCardIndex'] + + _setter("device_index", device_index) + _setter("network_interface_id", network_interface_id) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if network_card_index is not None: - pulumi.set(__self__, "network_card_index", network_card_index) + _setter("network_card_index", network_card_index) @property @pulumi.getter(name="deviceIndex") @@ -3898,12 +5054,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_resource_name_dns_aaaa_record: Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. :param pulumi.Input[str] hostname_type: Type of hostname for Amazon EC2 instances. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 native subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: `ip-name` and `resource-name`. """ + InstancePrivateDnsNameOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_resource_name_dns_a_record=enable_resource_name_dns_a_record, + enable_resource_name_dns_aaaa_record=enable_resource_name_dns_aaaa_record, + hostname_type=hostname_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_resource_name_dns_a_record: Optional[pulumi.Input[bool]] = None, + enable_resource_name_dns_aaaa_record: Optional[pulumi.Input[bool]] = None, + hostname_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_resource_name_dns_a_record is None and 'enableResourceNameDnsARecord' in kwargs: + enable_resource_name_dns_a_record = kwargs['enableResourceNameDnsARecord'] + if enable_resource_name_dns_aaaa_record is None and 'enableResourceNameDnsAaaaRecord' in kwargs: + enable_resource_name_dns_aaaa_record = kwargs['enableResourceNameDnsAaaaRecord'] + if hostname_type is None and 'hostnameType' in kwargs: + hostname_type = kwargs['hostnameType'] + if enable_resource_name_dns_a_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) + _setter("enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) if enable_resource_name_dns_aaaa_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) + _setter("enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) if hostname_type is not None: - pulumi.set(__self__, "hostname_type", hostname_type) + _setter("hostname_type", hostname_type) @property @pulumi.getter(name="enableResourceNameDnsARecord") @@ -3969,26 +5146,67 @@ def __init__(__self__, *, Modifying the `encrypted` or `kms_key_id` settings of the `root_block_device` requires resource replacement. """ + InstanceRootBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[bool]] = None, + device_name: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -4125,23 +5343,64 @@ def __init__(__self__, *, throughput: Optional[pulumi.Input[int]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "device_name", device_name) + LaunchConfigurationEbsBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + no_device=no_device, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + delete_on_termination: Optional[pulumi.Input[bool]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + no_device: Optional[pulumi.Input[bool]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -4231,11 +5490,34 @@ def __init__(__self__, *, device_name: pulumi.Input[str], no_device: Optional[pulumi.Input[bool]] = None, virtual_name: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "device_name", device_name) + LaunchConfigurationEphemeralBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + no_device: Optional[pulumi.Input[bool]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + + _setter("device_name", device_name) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -4276,12 +5558,33 @@ def __init__(__self__, *, :param pulumi.Input[int] http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. :param pulumi.Input[str] http_tokens: If session tokens are required: `optional`, `required`. """ + LaunchConfigurationMetadataOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[pulumi.Input[str]] = None, + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if http_endpoint is not None: - pulumi.set(__self__, "http_endpoint", http_endpoint) + _setter("http_endpoint", http_endpoint) if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) @property @pulumi.getter(name="httpEndpoint") @@ -4329,18 +5632,45 @@ def __init__(__self__, *, throughput: Optional[pulumi.Input[int]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): + LaunchConfigurationRootBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[bool]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -4412,14 +5742,37 @@ def __init__(__self__, *, Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g., `"ephemeral0"`). """ + LaunchTemplateBlockDeviceMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + ebs: Optional[pulumi.Input['LaunchTemplateBlockDeviceMappingEbsArgs']] = None, + no_device: Optional[pulumi.Input[str]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if ebs is not None: - pulumi.set(__self__, "ebs", ebs) + _setter("ebs", ebs) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -4498,22 +5851,57 @@ def __init__(__self__, *, :param pulumi.Input[str] volume_type: The volume type. Can be one of `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1`. """ + LaunchTemplateBlockDeviceMappingEbsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -4626,10 +6014,27 @@ def __init__(__self__, *, :param pulumi.Input[str] capacity_reservation_preference: Indicates the instance's Capacity Reservation preferences. Can be `open` or `none`. (Default `none`). :param pulumi.Input['LaunchTemplateCapacityReservationSpecificationCapacityReservationTargetArgs'] capacity_reservation_target: Used to target a specific Capacity Reservation: """ + LaunchTemplateCapacityReservationSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_preference=capacity_reservation_preference, + capacity_reservation_target=capacity_reservation_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_preference: Optional[pulumi.Input[str]] = None, + capacity_reservation_target: Optional[pulumi.Input['LaunchTemplateCapacityReservationSpecificationCapacityReservationTargetArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_preference is None and 'capacityReservationPreference' in kwargs: + capacity_reservation_preference = kwargs['capacityReservationPreference'] + if capacity_reservation_target is None and 'capacityReservationTarget' in kwargs: + capacity_reservation_target = kwargs['capacityReservationTarget'] + if capacity_reservation_preference is not None: - pulumi.set(__self__, "capacity_reservation_preference", capacity_reservation_preference) + _setter("capacity_reservation_preference", capacity_reservation_preference) if capacity_reservation_target is not None: - pulumi.set(__self__, "capacity_reservation_target", capacity_reservation_target) + _setter("capacity_reservation_target", capacity_reservation_target) @property @pulumi.getter(name="capacityReservationPreference") @@ -4665,10 +6070,27 @@ def __init__(__self__, *, :param pulumi.Input[str] capacity_reservation_id: The ID of the Capacity Reservation in which to run the instance. :param pulumi.Input[str] capacity_reservation_resource_group_arn: The ARN of the Capacity Reservation resource group in which to run the instance. """ + LaunchTemplateCapacityReservationSpecificationCapacityReservationTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_id=capacity_reservation_id, + capacity_reservation_resource_group_arn=capacity_reservation_resource_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_id: Optional[pulumi.Input[str]] = None, + capacity_reservation_resource_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_id is None and 'capacityReservationId' in kwargs: + capacity_reservation_id = kwargs['capacityReservationId'] + if capacity_reservation_resource_group_arn is None and 'capacityReservationResourceGroupArn' in kwargs: + capacity_reservation_resource_group_arn = kwargs['capacityReservationResourceGroupArn'] + if capacity_reservation_id is not None: - pulumi.set(__self__, "capacity_reservation_id", capacity_reservation_id) + _setter("capacity_reservation_id", capacity_reservation_id) if capacity_reservation_resource_group_arn is not None: - pulumi.set(__self__, "capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) + _setter("capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) @property @pulumi.getter(name="capacityReservationId") @@ -4710,12 +6132,33 @@ def __init__(__self__, *, Both number of CPU cores and threads per core must be specified. Valid number of CPU cores and threads per core for the instance type can be found in the [CPU Options Documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html?shortFooter=true#cpu-options-supported-instances-values) """ + LaunchTemplateCpuOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amd_sev_snp=amd_sev_snp, + core_count=core_count, + threads_per_core=threads_per_core, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amd_sev_snp: Optional[pulumi.Input[str]] = None, + core_count: Optional[pulumi.Input[int]] = None, + threads_per_core: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amd_sev_snp is None and 'amdSevSnp' in kwargs: + amd_sev_snp = kwargs['amdSevSnp'] + if core_count is None and 'coreCount' in kwargs: + core_count = kwargs['coreCount'] + if threads_per_core is None and 'threadsPerCore' in kwargs: + threads_per_core = kwargs['threadsPerCore'] + if amd_sev_snp is not None: - pulumi.set(__self__, "amd_sev_snp", amd_sev_snp) + _setter("amd_sev_snp", amd_sev_snp) if core_count is not None: - pulumi.set(__self__, "core_count", core_count) + _setter("core_count", core_count) if threads_per_core is not None: - pulumi.set(__self__, "threads_per_core", threads_per_core) + _setter("threads_per_core", threads_per_core) @property @pulumi.getter(name="amdSevSnp") @@ -4768,8 +6211,21 @@ def __init__(__self__, *, T3 instances are launched as `unlimited` by default. T2 instances are launched as `standard` by default. """ + LaunchTemplateCreditSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_credits=cpu_credits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_credits: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_credits is None and 'cpuCredits' in kwargs: + cpu_credits = kwargs['cpuCredits'] + if cpu_credits is not None: - pulumi.set(__self__, "cpu_credits", cpu_credits) + _setter("cpu_credits", cpu_credits) @property @pulumi.getter(name="cpuCredits") @@ -4794,7 +6250,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] type: The [Elastic GPU Type](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-gpus.html#elastic-gpus-basics) """ - pulumi.set(__self__, "type", type) + LaunchTemplateElasticGpuSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -4816,7 +6285,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] type: Accelerator type. """ - pulumi.set(__self__, "type", type) + LaunchTemplateElasticInferenceAcceleratorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -4840,8 +6322,19 @@ def __init__(__self__, *, For more information, see the documentation on [Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html). """ + LaunchTemplateEnclaveOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -4865,7 +6358,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] configured: If set to `true`, the launched EC2 instance will hibernation enabled. """ - pulumi.set(__self__, "configured", configured) + LaunchTemplateHibernationOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configured=configured, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configured: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configured is None: + raise TypeError("Missing 'configured' argument") + + _setter("configured", configured) @property @pulumi.getter @@ -4889,10 +6395,23 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the instance profile. :param pulumi.Input[str] name: The name of the instance profile. """ + LaunchTemplateIamInstanceProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -4928,10 +6447,27 @@ def __init__(__self__, *, :param pulumi.Input[str] market_type: The market type. Can be `spot`. :param pulumi.Input['LaunchTemplateInstanceMarketOptionsSpotOptionsArgs'] spot_options: The options for [Spot Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) """ + LaunchTemplateInstanceMarketOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + market_type=market_type, + spot_options=spot_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + market_type: Optional[pulumi.Input[str]] = None, + spot_options: Optional[pulumi.Input['LaunchTemplateInstanceMarketOptionsSpotOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if market_type is None and 'marketType' in kwargs: + market_type = kwargs['marketType'] + if spot_options is None and 'spotOptions' in kwargs: + spot_options = kwargs['spotOptions'] + if market_type is not None: - pulumi.set(__self__, "market_type", market_type) + _setter("market_type", market_type) if spot_options is not None: - pulumi.set(__self__, "spot_options", spot_options) + _setter("spot_options", spot_options) @property @pulumi.getter(name="marketType") @@ -4974,16 +6510,45 @@ def __init__(__self__, *, :param pulumi.Input[str] spot_instance_type: The Spot Instance request type. Can be `one-time`, or `persistent`. :param pulumi.Input[str] valid_until: The end date of the request. """ + LaunchTemplateInstanceMarketOptionsSpotOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_duration_minutes=block_duration_minutes, + instance_interruption_behavior=instance_interruption_behavior, + max_price=max_price, + spot_instance_type=spot_instance_type, + valid_until=valid_until, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_duration_minutes: Optional[pulumi.Input[int]] = None, + instance_interruption_behavior: Optional[pulumi.Input[str]] = None, + max_price: Optional[pulumi.Input[str]] = None, + spot_instance_type: Optional[pulumi.Input[str]] = None, + valid_until: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + if instance_interruption_behavior is None and 'instanceInterruptionBehavior' in kwargs: + instance_interruption_behavior = kwargs['instanceInterruptionBehavior'] + if max_price is None and 'maxPrice' in kwargs: + max_price = kwargs['maxPrice'] + if spot_instance_type is None and 'spotInstanceType' in kwargs: + spot_instance_type = kwargs['spotInstanceType'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) if instance_interruption_behavior is not None: - pulumi.set(__self__, "instance_interruption_behavior", instance_interruption_behavior) + _setter("instance_interruption_behavior", instance_interruption_behavior) if max_price is not None: - pulumi.set(__self__, "max_price", max_price) + _setter("max_price", max_price) if spot_instance_type is not None: - pulumi.set(__self__, "spot_instance_type", spot_instance_type) + _setter("spot_instance_type", spot_instance_type) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) @property @pulumi.getter(name="blockDurationMinutes") @@ -5132,50 +6697,155 @@ def __init__(__self__, *, If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price. :param pulumi.Input['LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs'] total_local_storage_gb: Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum. """ - pulumi.set(__self__, "memory_mib", memory_mib) - pulumi.set(__self__, "vcpu_count", vcpu_count) + LaunchTemplateInstanceRequirementsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + memory_mib=memory_mib, + vcpu_count=vcpu_count, + accelerator_count=accelerator_count, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mib=accelerator_total_memory_mib, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpu=memory_gib_per_vcpu, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_count=network_interface_count, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gb=total_local_storage_gb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + memory_mib: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsMemoryMibArgs']] = None, + vcpu_count: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsVcpuCountArgs']] = None, + accelerator_count: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsAcceleratorCountArgs']] = None, + accelerator_manufacturers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + accelerator_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + accelerator_total_memory_mib: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs']] = None, + accelerator_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + bare_metal: Optional[pulumi.Input[str]] = None, + baseline_ebs_bandwidth_mbps: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs']] = None, + burstable_performance: Optional[pulumi.Input[str]] = None, + cpu_manufacturers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + excluded_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_generations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + local_storage: Optional[pulumi.Input[str]] = None, + local_storage_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + memory_gib_per_vcpu: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs']] = None, + network_bandwidth_gbps: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs']] = None, + network_interface_count: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs']] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[pulumi.Input[int]] = None, + require_hibernate_support: Optional[pulumi.Input[bool]] = None, + spot_max_price_percentage_over_lowest_price: Optional[pulumi.Input[int]] = None, + total_local_storage_gb: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if memory_mib is None and 'memoryMib' in kwargs: + memory_mib = kwargs['memoryMib'] + if memory_mib is None: + raise TypeError("Missing 'memory_mib' argument") + if vcpu_count is None and 'vcpuCount' in kwargs: + vcpu_count = kwargs['vcpuCount'] + if vcpu_count is None: + raise TypeError("Missing 'vcpu_count' argument") + if accelerator_count is None and 'acceleratorCount' in kwargs: + accelerator_count = kwargs['acceleratorCount'] + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_total_memory_mib is None and 'acceleratorTotalMemoryMib' in kwargs: + accelerator_total_memory_mib = kwargs['acceleratorTotalMemoryMib'] + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if memory_gib_per_vcpu is None and 'memoryGibPerVcpu' in kwargs: + memory_gib_per_vcpu = kwargs['memoryGibPerVcpu'] + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_interface_count is None and 'networkInterfaceCount' in kwargs: + network_interface_count = kwargs['networkInterfaceCount'] + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if total_local_storage_gb is None and 'totalLocalStorageGb' in kwargs: + total_local_storage_gb = kwargs['totalLocalStorageGb'] + + _setter("memory_mib", memory_mib) + _setter("vcpu_count", vcpu_count) if accelerator_count is not None: - pulumi.set(__self__, "accelerator_count", accelerator_count) + _setter("accelerator_count", accelerator_count) if accelerator_manufacturers is not None: - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_manufacturers", accelerator_manufacturers) if accelerator_names is not None: - pulumi.set(__self__, "accelerator_names", accelerator_names) + _setter("accelerator_names", accelerator_names) if accelerator_total_memory_mib is not None: - pulumi.set(__self__, "accelerator_total_memory_mib", accelerator_total_memory_mib) + _setter("accelerator_total_memory_mib", accelerator_total_memory_mib) if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if allowed_instance_types is not None: - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + _setter("allowed_instance_types", allowed_instance_types) if bare_metal is not None: - pulumi.set(__self__, "bare_metal", bare_metal) + _setter("bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) if burstable_performance is not None: - pulumi.set(__self__, "burstable_performance", burstable_performance) + _setter("burstable_performance", burstable_performance) if cpu_manufacturers is not None: - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) + _setter("cpu_manufacturers", cpu_manufacturers) if excluded_instance_types is not None: - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + _setter("excluded_instance_types", excluded_instance_types) if instance_generations is not None: - pulumi.set(__self__, "instance_generations", instance_generations) + _setter("instance_generations", instance_generations) if local_storage is not None: - pulumi.set(__self__, "local_storage", local_storage) + _setter("local_storage", local_storage) if local_storage_types is not None: - pulumi.set(__self__, "local_storage_types", local_storage_types) + _setter("local_storage_types", local_storage_types) if memory_gib_per_vcpu is not None: - pulumi.set(__self__, "memory_gib_per_vcpu", memory_gib_per_vcpu) + _setter("memory_gib_per_vcpu", memory_gib_per_vcpu) if network_bandwidth_gbps is not None: - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) if network_interface_count is not None: - pulumi.set(__self__, "network_interface_count", network_interface_count) + _setter("network_interface_count", network_interface_count) if on_demand_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) if require_hibernate_support is not None: - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) + _setter("require_hibernate_support", require_hibernate_support) if spot_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) if total_local_storage_gb is not None: - pulumi.set(__self__, "total_local_storage_gb", total_local_storage_gb) + _setter("total_local_storage_gb", total_local_storage_gb) @property @pulumi.getter(name="memoryMib") @@ -5494,19 +7164,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + LaunchTemplateInstanceRequirementsAcceleratorCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5533,19 +7216,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5572,19 +7268,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5611,19 +7320,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[float] max: Maximum. :param pulumi.Input[float] min: Minimum. """ + LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5651,11 +7373,26 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None): """ :param pulumi.Input[int] min: Minimum. - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. - """ - pulumi.set(__self__, "min", min) + :param pulumi.Input[int] max: Maximum. + """ + LaunchTemplateInstanceRequirementsMemoryMibArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + min=min, + max=max, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + min: Optional[pulumi.Input[int]] = None, + max: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("min", min) if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) @property @pulumi.getter @@ -5673,7 +7410,7 @@ def min(self, value: pulumi.Input[int]): @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5688,19 +7425,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[float] max: Maximum. :param pulumi.Input[float] min: Minimum. """ + LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5727,19 +7477,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5766,19 +7529,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[float] max: Maximum. :param pulumi.Input[float] min: Minimum. """ + LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5806,11 +7582,26 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None): """ :param pulumi.Input[int] min: Minimum. - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. - """ - pulumi.set(__self__, "min", min) + :param pulumi.Input[int] max: Maximum. + """ + LaunchTemplateInstanceRequirementsVcpuCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + min=min, + max=max, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + min: Optional[pulumi.Input[int]] = None, + max: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("min", min) if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) @property @pulumi.getter @@ -5828,7 +7619,7 @@ def min(self, value: pulumi.Input[int]): @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5844,7 +7635,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] license_configuration_arn: ARN of the license configuration. """ - pulumi.set(__self__, "license_configuration_arn", license_configuration_arn) + LaunchTemplateLicenseSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + license_configuration_arn=license_configuration_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + license_configuration_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if license_configuration_arn is None and 'licenseConfigurationArn' in kwargs: + license_configuration_arn = kwargs['licenseConfigurationArn'] + if license_configuration_arn is None: + raise TypeError("Missing 'license_configuration_arn' argument") + + _setter("license_configuration_arn", license_configuration_arn) @property @pulumi.getter(name="licenseConfigurationArn") @@ -5866,8 +7672,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] auto_recovery: Disables the automatic recovery behavior of your instance or sets it to default. Can be `"default"` or `"disabled"`. See [Recover your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html) for more details. """ + LaunchTemplateMaintenanceOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_recovery=auto_recovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_recovery: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_recovery is None and 'autoRecovery' in kwargs: + auto_recovery = kwargs['autoRecovery'] + if auto_recovery is not None: - pulumi.set(__self__, "auto_recovery", auto_recovery) + _setter("auto_recovery", auto_recovery) @property @pulumi.getter(name="autoRecovery") @@ -5899,16 +7718,45 @@ def __init__(__self__, *, For more information, see the documentation on the [Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html). """ + LaunchTemplateMetadataOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_protocol_ipv6=http_protocol_ipv6, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + instance_metadata_tags=instance_metadata_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[pulumi.Input[str]] = None, + http_protocol_ipv6: Optional[pulumi.Input[str]] = None, + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + instance_metadata_tags: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_protocol_ipv6 is None and 'httpProtocolIpv6' in kwargs: + http_protocol_ipv6 = kwargs['httpProtocolIpv6'] + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if instance_metadata_tags is None and 'instanceMetadataTags' in kwargs: + instance_metadata_tags = kwargs['instanceMetadataTags'] + if http_endpoint is not None: - pulumi.set(__self__, "http_endpoint", http_endpoint) + _setter("http_endpoint", http_endpoint) if http_protocol_ipv6 is not None: - pulumi.set(__self__, "http_protocol_ipv6", http_protocol_ipv6) + _setter("http_protocol_ipv6", http_protocol_ipv6) if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) if instance_metadata_tags is not None: - pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + _setter("instance_metadata_tags", instance_metadata_tags) @property @pulumi.getter(name="httpEndpoint") @@ -5980,8 +7828,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: If `true`, the launched EC2 instance will have detailed monitoring enabled. """ + LaunchTemplateMonitoringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -6042,44 +7901,127 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of security group IDs to associate. :param pulumi.Input[str] subnet_id: The VPC Subnet ID to associate. """ + LaunchTemplateNetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + associate_carrier_ip_address=associate_carrier_ip_address, + associate_public_ip_address=associate_public_ip_address, + delete_on_termination=delete_on_termination, + description=description, + device_index=device_index, + interface_type=interface_type, + ipv4_address_count=ipv4_address_count, + ipv4_addresses=ipv4_addresses, + ipv4_prefix_count=ipv4_prefix_count, + ipv4_prefixes=ipv4_prefixes, + ipv6_address_count=ipv6_address_count, + ipv6_addresses=ipv6_addresses, + ipv6_prefix_count=ipv6_prefix_count, + ipv6_prefixes=ipv6_prefixes, + network_card_index=network_card_index, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + security_groups=security_groups, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + associate_carrier_ip_address: Optional[pulumi.Input[str]] = None, + associate_public_ip_address: Optional[pulumi.Input[str]] = None, + delete_on_termination: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + device_index: Optional[pulumi.Input[int]] = None, + interface_type: Optional[pulumi.Input[str]] = None, + ipv4_address_count: Optional[pulumi.Input[int]] = None, + ipv4_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv4_prefix_count: Optional[pulumi.Input[int]] = None, + ipv4_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv6_address_count: Optional[pulumi.Input[int]] = None, + ipv6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv6_prefix_count: Optional[pulumi.Input[int]] = None, + ipv6_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + network_card_index: Optional[pulumi.Input[int]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + private_ip_address: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associate_carrier_ip_address is None and 'associateCarrierIpAddress' in kwargs: + associate_carrier_ip_address = kwargs['associateCarrierIpAddress'] + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if interface_type is None and 'interfaceType' in kwargs: + interface_type = kwargs['interfaceType'] + if ipv4_address_count is None and 'ipv4AddressCount' in kwargs: + ipv4_address_count = kwargs['ipv4AddressCount'] + if ipv4_addresses is None and 'ipv4Addresses' in kwargs: + ipv4_addresses = kwargs['ipv4Addresses'] + if ipv4_prefix_count is None and 'ipv4PrefixCount' in kwargs: + ipv4_prefix_count = kwargs['ipv4PrefixCount'] + if ipv4_prefixes is None and 'ipv4Prefixes' in kwargs: + ipv4_prefixes = kwargs['ipv4Prefixes'] + if ipv6_address_count is None and 'ipv6AddressCount' in kwargs: + ipv6_address_count = kwargs['ipv6AddressCount'] + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if ipv6_prefix_count is None and 'ipv6PrefixCount' in kwargs: + ipv6_prefix_count = kwargs['ipv6PrefixCount'] + if ipv6_prefixes is None and 'ipv6Prefixes' in kwargs: + ipv6_prefixes = kwargs['ipv6Prefixes'] + if network_card_index is None and 'networkCardIndex' in kwargs: + network_card_index = kwargs['networkCardIndex'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if associate_carrier_ip_address is not None: - pulumi.set(__self__, "associate_carrier_ip_address", associate_carrier_ip_address) + _setter("associate_carrier_ip_address", associate_carrier_ip_address) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if device_index is not None: - pulumi.set(__self__, "device_index", device_index) + _setter("device_index", device_index) if interface_type is not None: - pulumi.set(__self__, "interface_type", interface_type) + _setter("interface_type", interface_type) if ipv4_address_count is not None: - pulumi.set(__self__, "ipv4_address_count", ipv4_address_count) + _setter("ipv4_address_count", ipv4_address_count) if ipv4_addresses is not None: - pulumi.set(__self__, "ipv4_addresses", ipv4_addresses) + _setter("ipv4_addresses", ipv4_addresses) if ipv4_prefix_count is not None: - pulumi.set(__self__, "ipv4_prefix_count", ipv4_prefix_count) + _setter("ipv4_prefix_count", ipv4_prefix_count) if ipv4_prefixes is not None: - pulumi.set(__self__, "ipv4_prefixes", ipv4_prefixes) + _setter("ipv4_prefixes", ipv4_prefixes) if ipv6_address_count is not None: - pulumi.set(__self__, "ipv6_address_count", ipv6_address_count) + _setter("ipv6_address_count", ipv6_address_count) if ipv6_addresses is not None: - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) + _setter("ipv6_addresses", ipv6_addresses) if ipv6_prefix_count is not None: - pulumi.set(__self__, "ipv6_prefix_count", ipv6_prefix_count) + _setter("ipv6_prefix_count", ipv6_prefix_count) if ipv6_prefixes is not None: - pulumi.set(__self__, "ipv6_prefixes", ipv6_prefixes) + _setter("ipv6_prefixes", ipv6_prefixes) if network_card_index is not None: - pulumi.set(__self__, "network_card_index", network_card_index) + _setter("network_card_index", network_card_index) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="associateCarrierIpAddress") @@ -6334,22 +8276,59 @@ def __init__(__self__, *, :param pulumi.Input[str] spread_domain: Reserved for future use. :param pulumi.Input[str] tenancy: The tenancy of the instance (if the instance is running in a VPC). Can be `default`, `dedicated`, or `host`. """ + LaunchTemplatePlacementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + affinity=affinity, + availability_zone=availability_zone, + group_name=group_name, + host_id=host_id, + host_resource_group_arn=host_resource_group_arn, + partition_number=partition_number, + spread_domain=spread_domain, + tenancy=tenancy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + affinity: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + group_name: Optional[pulumi.Input[str]] = None, + host_id: Optional[pulumi.Input[str]] = None, + host_resource_group_arn: Optional[pulumi.Input[str]] = None, + partition_number: Optional[pulumi.Input[int]] = None, + spread_domain: Optional[pulumi.Input[str]] = None, + tenancy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if host_id is None and 'hostId' in kwargs: + host_id = kwargs['hostId'] + if host_resource_group_arn is None and 'hostResourceGroupArn' in kwargs: + host_resource_group_arn = kwargs['hostResourceGroupArn'] + if partition_number is None and 'partitionNumber' in kwargs: + partition_number = kwargs['partitionNumber'] + if spread_domain is None and 'spreadDomain' in kwargs: + spread_domain = kwargs['spreadDomain'] + if affinity is not None: - pulumi.set(__self__, "affinity", affinity) + _setter("affinity", affinity) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if host_id is not None: - pulumi.set(__self__, "host_id", host_id) + _setter("host_id", host_id) if host_resource_group_arn is not None: - pulumi.set(__self__, "host_resource_group_arn", host_resource_group_arn) + _setter("host_resource_group_arn", host_resource_group_arn) if partition_number is not None: - pulumi.set(__self__, "partition_number", partition_number) + _setter("partition_number", partition_number) if spread_domain is not None: - pulumi.set(__self__, "spread_domain", spread_domain) + _setter("spread_domain", spread_domain) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) @property @pulumi.getter @@ -6459,12 +8438,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_resource_name_dns_aaaa_record: Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. :param pulumi.Input[str] hostname_type: The type of hostname for Amazon EC2 instances. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 native subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: `ip-name` and `resource-name`. """ + LaunchTemplatePrivateDnsNameOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_resource_name_dns_a_record=enable_resource_name_dns_a_record, + enable_resource_name_dns_aaaa_record=enable_resource_name_dns_aaaa_record, + hostname_type=hostname_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_resource_name_dns_a_record: Optional[pulumi.Input[bool]] = None, + enable_resource_name_dns_aaaa_record: Optional[pulumi.Input[bool]] = None, + hostname_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_resource_name_dns_a_record is None and 'enableResourceNameDnsARecord' in kwargs: + enable_resource_name_dns_a_record = kwargs['enableResourceNameDnsARecord'] + if enable_resource_name_dns_aaaa_record is None and 'enableResourceNameDnsAaaaRecord' in kwargs: + enable_resource_name_dns_aaaa_record = kwargs['enableResourceNameDnsAaaaRecord'] + if hostname_type is None and 'hostnameType' in kwargs: + hostname_type = kwargs['hostnameType'] + if enable_resource_name_dns_a_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) + _setter("enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) if enable_resource_name_dns_aaaa_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) + _setter("enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) if hostname_type is not None: - pulumi.set(__self__, "hostname_type", hostname_type) + _setter("hostname_type", hostname_type) @property @pulumi.getter(name="enableResourceNameDnsARecord") @@ -6512,10 +8512,25 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_type: The type of resource to tag. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. """ + LaunchTemplateTagSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_type=resource_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="resourceType") @@ -6551,9 +8566,24 @@ def __init__(__self__, *, :param pulumi.Input[str] cidr: CIDR block of this entry. :param pulumi.Input[str] description: Description of this entry. Due to API limitations, updating only the description of an existing entry requires temporarily removing and re-adding the entry. """ - pulumi.set(__self__, "cidr", cidr) + ManagedPrefixListEntryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -6607,19 +8637,70 @@ def __init__(__self__, *, :param pulumi.Input[int] icmp_type: The ICMP type to be used. Default 0. :param pulumi.Input[str] ipv6_cidr_block: The IPv6 CIDR block. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_no", rule_no) - pulumi.set(__self__, "to_port", to_port) + NetworkAclEgressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + from_port=from_port, + protocol=protocol, + rule_no=rule_no, + to_port=to_port, + cidr_block=cidr_block, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_no: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + icmp_code: Optional[pulumi.Input[int]] = None, + icmp_type: Optional[pulumi.Input[int]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_no is None and 'ruleNo' in kwargs: + rule_no = kwargs['ruleNo'] + if rule_no is None: + raise TypeError("Missing 'rule_no' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + + _setter("action", action) + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("rule_no", rule_no) + _setter("to_port", to_port) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) @property @pulumi.getter @@ -6761,19 +8842,70 @@ def __init__(__self__, *, :param pulumi.Input[int] icmp_type: The ICMP type to be used. Default 0. :param pulumi.Input[str] ipv6_cidr_block: The IPv6 CIDR block. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_no", rule_no) - pulumi.set(__self__, "to_port", to_port) + NetworkAclIngressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + from_port=from_port, + protocol=protocol, + rule_no=rule_no, + to_port=to_port, + cidr_block=cidr_block, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_no: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + icmp_code: Optional[pulumi.Input[int]] = None, + icmp_type: Optional[pulumi.Input[int]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_no is None and 'ruleNo' in kwargs: + rule_no = kwargs['ruleNo'] + if rule_no is None: + raise TypeError("Missing 'rule_no' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + + _setter("action", action) + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("rule_no", rule_no) + _setter("to_port", to_port) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) @property @pulumi.getter @@ -6897,10 +9029,27 @@ def __init__(__self__, *, :param pulumi.Input[str] component_arn: The Amazon Resource Name (ARN) of the component. :param pulumi.Input[str] component_id: The ID of the component. """ + NetworkInsightsAnalysisAlternatePathHintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_arn=component_arn, + component_id=component_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_arn: Optional[pulumi.Input[str]] = None, + component_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_arn is None and 'componentArn' in kwargs: + component_arn = kwargs['componentArn'] + if component_id is None and 'componentId' in kwargs: + component_id = kwargs['componentId'] + if component_arn is not None: - pulumi.set(__self__, "component_arn", component_arn) + _setter("component_arn", component_arn) if component_id is not None: - pulumi.set(__self__, "component_id", component_id) + _setter("component_id", component_id) @property @pulumi.getter(name="componentArn") @@ -6978,102 +9127,279 @@ def __init__(__self__, *, vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationVpcArgs']]]] = None, vpn_connections: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationVpnConnectionArgs']]]] = None, vpn_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationVpnGatewayArgs']]]] = None): + NetworkInsightsAnalysisExplanationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_rules=acl_rules, + acls=acls, + address=address, + addresses=addresses, + attached_tos=attached_tos, + availability_zones=availability_zones, + cidrs=cidrs, + classic_load_balancer_listeners=classic_load_balancer_listeners, + components=components, + customer_gateways=customer_gateways, + destination_vpcs=destination_vpcs, + destinations=destinations, + direction=direction, + elastic_load_balancer_listeners=elastic_load_balancer_listeners, + explanation_code=explanation_code, + ingress_route_tables=ingress_route_tables, + internet_gateways=internet_gateways, + load_balancer_arn=load_balancer_arn, + load_balancer_listener_port=load_balancer_listener_port, + load_balancer_target_group=load_balancer_target_group, + load_balancer_target_groups=load_balancer_target_groups, + load_balancer_target_port=load_balancer_target_port, + missing_component=missing_component, + nat_gateways=nat_gateways, + network_interfaces=network_interfaces, + packet_field=packet_field, + port=port, + port_ranges=port_ranges, + prefix_lists=prefix_lists, + protocols=protocols, + route_table_routes=route_table_routes, + route_tables=route_tables, + security_group=security_group, + security_group_rules=security_group_rules, + security_groups=security_groups, + source_vpcs=source_vpcs, + state=state, + subnet_route_tables=subnet_route_tables, + subnets=subnets, + transit_gateway_attachments=transit_gateway_attachments, + transit_gateway_route_table_routes=transit_gateway_route_table_routes, + transit_gateway_route_tables=transit_gateway_route_tables, + transit_gateways=transit_gateways, + vpc_endpoints=vpc_endpoints, + vpc_peering_connections=vpc_peering_connections, + vpcs=vpcs, + vpn_connections=vpn_connections, + vpn_gateways=vpn_gateways, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationAclRuleArgs']]]] = None, + acls: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationAclArgs']]]] = None, + address: Optional[pulumi.Input[str]] = None, + addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + attached_tos: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationAttachedToArgs']]]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + classic_load_balancer_listeners: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationClassicLoadBalancerListenerArgs']]]] = None, + components: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationComponentArgs']]]] = None, + customer_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationCustomerGatewayArgs']]]] = None, + destination_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationDestinationVpcArgs']]]] = None, + destinations: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationDestinationArgs']]]] = None, + direction: Optional[pulumi.Input[str]] = None, + elastic_load_balancer_listeners: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationElasticLoadBalancerListenerArgs']]]] = None, + explanation_code: Optional[pulumi.Input[str]] = None, + ingress_route_tables: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationIngressRouteTableArgs']]]] = None, + internet_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationInternetGatewayArgs']]]] = None, + load_balancer_arn: Optional[pulumi.Input[str]] = None, + load_balancer_listener_port: Optional[pulumi.Input[int]] = None, + load_balancer_target_group: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationLoadBalancerTargetGroupArgs']]]] = None, + load_balancer_target_groups: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationLoadBalancerTargetGroupArgs']]]] = None, + load_balancer_target_port: Optional[pulumi.Input[int]] = None, + missing_component: Optional[pulumi.Input[str]] = None, + nat_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationNatGatewayArgs']]]] = None, + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationNetworkInterfaceArgs']]]] = None, + packet_field: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationPortRangeArgs']]]] = None, + prefix_lists: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationPrefixListArgs']]]] = None, + protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + route_table_routes: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationRouteTableRouteArgs']]]] = None, + route_tables: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationRouteTableArgs']]]] = None, + security_group: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationSecurityGroupArgs']]]] = None, + security_group_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationSecurityGroupRuleArgs']]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationSecurityGroupArgs']]]] = None, + source_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationSourceVpcArgs']]]] = None, + state: Optional[pulumi.Input[str]] = None, + subnet_route_tables: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationSubnetRouteTableArgs']]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationSubnetArgs']]]] = None, + transit_gateway_attachments: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationTransitGatewayAttachmentArgs']]]] = None, + transit_gateway_route_table_routes: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationTransitGatewayRouteTableRouteArgs']]]] = None, + transit_gateway_route_tables: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationTransitGatewayRouteTableArgs']]]] = None, + transit_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationTransitGatewayArgs']]]] = None, + vpc_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationVpcEndpointArgs']]]] = None, + vpc_peering_connections: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationVpcPeeringConnectionArgs']]]] = None, + vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationVpcArgs']]]] = None, + vpn_connections: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationVpnConnectionArgs']]]] = None, + vpn_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationVpnGatewayArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_rules is None and 'aclRules' in kwargs: + acl_rules = kwargs['aclRules'] + if attached_tos is None and 'attachedTos' in kwargs: + attached_tos = kwargs['attachedTos'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if classic_load_balancer_listeners is None and 'classicLoadBalancerListeners' in kwargs: + classic_load_balancer_listeners = kwargs['classicLoadBalancerListeners'] + if customer_gateways is None and 'customerGateways' in kwargs: + customer_gateways = kwargs['customerGateways'] + if destination_vpcs is None and 'destinationVpcs' in kwargs: + destination_vpcs = kwargs['destinationVpcs'] + if elastic_load_balancer_listeners is None and 'elasticLoadBalancerListeners' in kwargs: + elastic_load_balancer_listeners = kwargs['elasticLoadBalancerListeners'] + if explanation_code is None and 'explanationCode' in kwargs: + explanation_code = kwargs['explanationCode'] + if ingress_route_tables is None and 'ingressRouteTables' in kwargs: + ingress_route_tables = kwargs['ingressRouteTables'] + if internet_gateways is None and 'internetGateways' in kwargs: + internet_gateways = kwargs['internetGateways'] + if load_balancer_arn is None and 'loadBalancerArn' in kwargs: + load_balancer_arn = kwargs['loadBalancerArn'] + if load_balancer_listener_port is None and 'loadBalancerListenerPort' in kwargs: + load_balancer_listener_port = kwargs['loadBalancerListenerPort'] + if load_balancer_target_group is None and 'loadBalancerTargetGroup' in kwargs: + load_balancer_target_group = kwargs['loadBalancerTargetGroup'] + if load_balancer_target_groups is None and 'loadBalancerTargetGroups' in kwargs: + load_balancer_target_groups = kwargs['loadBalancerTargetGroups'] + if load_balancer_target_port is None and 'loadBalancerTargetPort' in kwargs: + load_balancer_target_port = kwargs['loadBalancerTargetPort'] + if missing_component is None and 'missingComponent' in kwargs: + missing_component = kwargs['missingComponent'] + if nat_gateways is None and 'natGateways' in kwargs: + nat_gateways = kwargs['natGateways'] + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if packet_field is None and 'packetField' in kwargs: + packet_field = kwargs['packetField'] + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if prefix_lists is None and 'prefixLists' in kwargs: + prefix_lists = kwargs['prefixLists'] + if route_table_routes is None and 'routeTableRoutes' in kwargs: + route_table_routes = kwargs['routeTableRoutes'] + if route_tables is None and 'routeTables' in kwargs: + route_tables = kwargs['routeTables'] + if security_group is None and 'securityGroup' in kwargs: + security_group = kwargs['securityGroup'] + if security_group_rules is None and 'securityGroupRules' in kwargs: + security_group_rules = kwargs['securityGroupRules'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_vpcs is None and 'sourceVpcs' in kwargs: + source_vpcs = kwargs['sourceVpcs'] + if subnet_route_tables is None and 'subnetRouteTables' in kwargs: + subnet_route_tables = kwargs['subnetRouteTables'] + if transit_gateway_attachments is None and 'transitGatewayAttachments' in kwargs: + transit_gateway_attachments = kwargs['transitGatewayAttachments'] + if transit_gateway_route_table_routes is None and 'transitGatewayRouteTableRoutes' in kwargs: + transit_gateway_route_table_routes = kwargs['transitGatewayRouteTableRoutes'] + if transit_gateway_route_tables is None and 'transitGatewayRouteTables' in kwargs: + transit_gateway_route_tables = kwargs['transitGatewayRouteTables'] + if transit_gateways is None and 'transitGateways' in kwargs: + transit_gateways = kwargs['transitGateways'] + if vpc_endpoints is None and 'vpcEndpoints' in kwargs: + vpc_endpoints = kwargs['vpcEndpoints'] + if vpc_peering_connections is None and 'vpcPeeringConnections' in kwargs: + vpc_peering_connections = kwargs['vpcPeeringConnections'] + if vpn_connections is None and 'vpnConnections' in kwargs: + vpn_connections = kwargs['vpnConnections'] + if vpn_gateways is None and 'vpnGateways' in kwargs: + vpn_gateways = kwargs['vpnGateways'] + if acl_rules is not None: - pulumi.set(__self__, "acl_rules", acl_rules) + _setter("acl_rules", acl_rules) if acls is not None: - pulumi.set(__self__, "acls", acls) + _setter("acls", acls) if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if addresses is not None: - pulumi.set(__self__, "addresses", addresses) + _setter("addresses", addresses) if attached_tos is not None: - pulumi.set(__self__, "attached_tos", attached_tos) + _setter("attached_tos", attached_tos) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if cidrs is not None: - pulumi.set(__self__, "cidrs", cidrs) + _setter("cidrs", cidrs) if classic_load_balancer_listeners is not None: - pulumi.set(__self__, "classic_load_balancer_listeners", classic_load_balancer_listeners) + _setter("classic_load_balancer_listeners", classic_load_balancer_listeners) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) if customer_gateways is not None: - pulumi.set(__self__, "customer_gateways", customer_gateways) + _setter("customer_gateways", customer_gateways) if destination_vpcs is not None: - pulumi.set(__self__, "destination_vpcs", destination_vpcs) + _setter("destination_vpcs", destination_vpcs) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if direction is not None: - pulumi.set(__self__, "direction", direction) + _setter("direction", direction) if elastic_load_balancer_listeners is not None: - pulumi.set(__self__, "elastic_load_balancer_listeners", elastic_load_balancer_listeners) + _setter("elastic_load_balancer_listeners", elastic_load_balancer_listeners) if explanation_code is not None: - pulumi.set(__self__, "explanation_code", explanation_code) + _setter("explanation_code", explanation_code) if ingress_route_tables is not None: - pulumi.set(__self__, "ingress_route_tables", ingress_route_tables) + _setter("ingress_route_tables", ingress_route_tables) if internet_gateways is not None: - pulumi.set(__self__, "internet_gateways", internet_gateways) + _setter("internet_gateways", internet_gateways) if load_balancer_arn is not None: - pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) + _setter("load_balancer_arn", load_balancer_arn) if load_balancer_listener_port is not None: - pulumi.set(__self__, "load_balancer_listener_port", load_balancer_listener_port) + _setter("load_balancer_listener_port", load_balancer_listener_port) if load_balancer_target_group is not None: - pulumi.set(__self__, "load_balancer_target_group", load_balancer_target_group) + _setter("load_balancer_target_group", load_balancer_target_group) if load_balancer_target_groups is not None: - pulumi.set(__self__, "load_balancer_target_groups", load_balancer_target_groups) + _setter("load_balancer_target_groups", load_balancer_target_groups) if load_balancer_target_port is not None: - pulumi.set(__self__, "load_balancer_target_port", load_balancer_target_port) + _setter("load_balancer_target_port", load_balancer_target_port) if missing_component is not None: - pulumi.set(__self__, "missing_component", missing_component) + _setter("missing_component", missing_component) if nat_gateways is not None: - pulumi.set(__self__, "nat_gateways", nat_gateways) + _setter("nat_gateways", nat_gateways) if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if packet_field is not None: - pulumi.set(__self__, "packet_field", packet_field) + _setter("packet_field", packet_field) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if prefix_lists is not None: - pulumi.set(__self__, "prefix_lists", prefix_lists) + _setter("prefix_lists", prefix_lists) if protocols is not None: - pulumi.set(__self__, "protocols", protocols) + _setter("protocols", protocols) if route_table_routes is not None: - pulumi.set(__self__, "route_table_routes", route_table_routes) + _setter("route_table_routes", route_table_routes) if route_tables is not None: - pulumi.set(__self__, "route_tables", route_tables) + _setter("route_tables", route_tables) if security_group is not None: - pulumi.set(__self__, "security_group", security_group) + _setter("security_group", security_group) if security_group_rules is not None: - pulumi.set(__self__, "security_group_rules", security_group_rules) + _setter("security_group_rules", security_group_rules) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_vpcs is not None: - pulumi.set(__self__, "source_vpcs", source_vpcs) + _setter("source_vpcs", source_vpcs) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if subnet_route_tables is not None: - pulumi.set(__self__, "subnet_route_tables", subnet_route_tables) + _setter("subnet_route_tables", subnet_route_tables) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if transit_gateway_attachments is not None: - pulumi.set(__self__, "transit_gateway_attachments", transit_gateway_attachments) + _setter("transit_gateway_attachments", transit_gateway_attachments) if transit_gateway_route_table_routes is not None: - pulumi.set(__self__, "transit_gateway_route_table_routes", transit_gateway_route_table_routes) + _setter("transit_gateway_route_table_routes", transit_gateway_route_table_routes) if transit_gateway_route_tables is not None: - pulumi.set(__self__, "transit_gateway_route_tables", transit_gateway_route_tables) + _setter("transit_gateway_route_tables", transit_gateway_route_tables) if transit_gateways is not None: - pulumi.set(__self__, "transit_gateways", transit_gateways) + _setter("transit_gateways", transit_gateways) if vpc_endpoints is not None: - pulumi.set(__self__, "vpc_endpoints", vpc_endpoints) + _setter("vpc_endpoints", vpc_endpoints) if vpc_peering_connections is not None: - pulumi.set(__self__, "vpc_peering_connections", vpc_peering_connections) + _setter("vpc_peering_connections", vpc_peering_connections) if vpcs is not None: - pulumi.set(__self__, "vpcs", vpcs) + _setter("vpcs", vpcs) if vpn_connections is not None: - pulumi.set(__self__, "vpn_connections", vpn_connections) + _setter("vpn_connections", vpn_connections) if vpn_gateways is not None: - pulumi.set(__self__, "vpn_gateways", vpn_gateways) + _setter("vpn_gateways", vpn_gateways) @property @pulumi.getter(name="aclRules") @@ -7518,12 +9844,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationAclArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7568,18 +9909,45 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None, rule_action: Optional[pulumi.Input[str]] = None, rule_number: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisExplanationAclRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + egress=egress, + port_ranges=port_ranges, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[bool]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationAclRulePortRangeArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_action: Optional[pulumi.Input[str]] = None, + rule_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if rule_action is not None: - pulumi.set(__self__, "rule_action", rule_action) + _setter("rule_action", rule_action) if rule_number is not None: - pulumi.set(__self__, "rule_number", rule_number) + _setter("rule_number", rule_number) @property @pulumi.getter @@ -7641,10 +10009,25 @@ class NetworkInsightsAnalysisExplanationAclRulePortRangeArgs: def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisExplanationAclRulePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -7675,12 +10058,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationAttachedToArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7721,10 +10119,27 @@ class NetworkInsightsAnalysisExplanationClassicLoadBalancerListenerArgs: def __init__(__self__, *, instance_port: Optional[pulumi.Input[int]] = None, load_balancer_port: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisExplanationClassicLoadBalancerListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_port=instance_port, + load_balancer_port=load_balancer_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_port: Optional[pulumi.Input[int]] = None, + load_balancer_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if load_balancer_port is None and 'loadBalancerPort' in kwargs: + load_balancer_port = kwargs['loadBalancerPort'] + if instance_port is not None: - pulumi.set(__self__, "instance_port", instance_port) + _setter("instance_port", instance_port) if load_balancer_port is not None: - pulumi.set(__self__, "load_balancer_port", load_balancer_port) + _setter("load_balancer_port", load_balancer_port) @property @pulumi.getter(name="instancePort") @@ -7755,12 +10170,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7806,12 +10236,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationCustomerGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7857,12 +10302,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7908,12 +10368,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationDestinationVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7959,12 +10434,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationElasticLoadBalancerListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8010,12 +10500,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationIngressRouteTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8061,12 +10566,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationInternetGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8112,12 +10632,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationLoadBalancerTargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8163,12 +10698,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationNatGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8214,12 +10764,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationNetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8260,10 +10825,25 @@ class NetworkInsightsAnalysisExplanationPortRangeArgs: def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisExplanationPortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -8294,12 +10874,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationPrefixListArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8345,12 +10940,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationRouteTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8399,26 +11009,73 @@ def __init__(__self__, *, origin: Optional[pulumi.Input[str]] = None, transit_gateway_id: Optional[pulumi.Input[str]] = None, vpc_peering_connection_id: Optional[pulumi.Input[str]] = None): + NetworkInsightsAnalysisExplanationRouteTableRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr=destination_cidr, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_internet_gateway_id=egress_only_internet_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + transit_gateway_id=transit_gateway_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr: Optional[pulumi.Input[str]] = None, + destination_prefix_list_id: Optional[pulumi.Input[str]] = None, + egress_only_internet_gateway_id: Optional[pulumi.Input[str]] = None, + gateway_id: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + nat_gateway_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + origin: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_internet_gateway_id is None and 'egressOnlyInternetGatewayId' in kwargs: + egress_only_internet_gateway_id = kwargs['egressOnlyInternetGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_internet_gateway_id is not None: - pulumi.set(__self__, "egress_only_internet_gateway_id", egress_only_internet_gateway_id) + _setter("egress_only_internet_gateway_id", egress_only_internet_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if origin is not None: - pulumi.set(__self__, "origin", origin) + _setter("origin", origin) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="destinationCidr") @@ -8521,12 +11178,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationSecurityGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8571,18 +11243,45 @@ def __init__(__self__, *, prefix_list_id: Optional[pulumi.Input[str]] = None, protocol: Optional[pulumi.Input[str]] = None, security_group_id: Optional[pulumi.Input[str]] = None): + NetworkInsightsAnalysisExplanationSecurityGroupRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + direction=direction, + port_ranges=port_ranges, + prefix_list_id=prefix_list_id, + protocol=protocol, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + direction: Optional[pulumi.Input[str]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationSecurityGroupRulePortRangeArgs']]]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if direction is not None: - pulumi.set(__self__, "direction", direction) + _setter("direction", direction) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) @property @pulumi.getter @@ -8644,10 +11343,25 @@ class NetworkInsightsAnalysisExplanationSecurityGroupRulePortRangeArgs: def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisExplanationSecurityGroupRulePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -8678,12 +11392,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationSourceVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8729,12 +11458,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationSubnetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8780,12 +11524,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationSubnetRouteTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8831,12 +11590,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationTransitGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8882,12 +11656,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationTransitGatewayAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8933,12 +11722,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationTransitGatewayRouteTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8984,20 +11788,55 @@ def __init__(__self__, *, resource_type: Optional[pulumi.Input[str]] = None, route_origin: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None): + NetworkInsightsAnalysisExplanationTransitGatewayRouteTableRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + destination_cidr=destination_cidr, + prefix_list_id=prefix_list_id, + resource_id=resource_id, + resource_type=resource_type, + route_origin=route_origin, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[pulumi.Input[str]] = None, + destination_cidr: Optional[pulumi.Input[str]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + route_origin: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if route_origin is None and 'routeOrigin' in kwargs: + route_origin = kwargs['routeOrigin'] + if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if route_origin is not None: - pulumi.set(__self__, "route_origin", route_origin) + _setter("route_origin", route_origin) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -9073,12 +11912,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9124,12 +11978,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpcEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9175,12 +12044,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpcPeeringConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9226,12 +12110,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpnConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9277,12 +12176,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpnGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9336,36 +12250,99 @@ def __init__(__self__, *, transit_gateway_route_table_routes: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentTransitGatewayRouteTableRouteArgs']]]] = None, transit_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentTransitGatewayArgs']]]] = None, vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentVpcArgs']]]] = None): + NetworkInsightsAnalysisForwardPathComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_rules=acl_rules, + additional_details=additional_details, + attached_tos=attached_tos, + components=components, + destination_vpcs=destination_vpcs, + inbound_headers=inbound_headers, + outbound_headers=outbound_headers, + route_table_routes=route_table_routes, + security_group_rules=security_group_rules, + sequence_number=sequence_number, + source_vpcs=source_vpcs, + subnets=subnets, + transit_gateway_route_table_routes=transit_gateway_route_table_routes, + transit_gateways=transit_gateways, + vpcs=vpcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentAclRuleArgs']]]] = None, + additional_details: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentAdditionalDetailArgs']]]] = None, + attached_tos: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentAttachedToArgs']]]] = None, + components: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentComponentArgs']]]] = None, + destination_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentDestinationVpcArgs']]]] = None, + inbound_headers: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentInboundHeaderArgs']]]] = None, + outbound_headers: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentOutboundHeaderArgs']]]] = None, + route_table_routes: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentRouteTableRouteArgs']]]] = None, + security_group_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentSecurityGroupRuleArgs']]]] = None, + sequence_number: Optional[pulumi.Input[int]] = None, + source_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentSourceVpcArgs']]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentSubnetArgs']]]] = None, + transit_gateway_route_table_routes: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentTransitGatewayRouteTableRouteArgs']]]] = None, + transit_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentTransitGatewayArgs']]]] = None, + vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentVpcArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_rules is None and 'aclRules' in kwargs: + acl_rules = kwargs['aclRules'] + if additional_details is None and 'additionalDetails' in kwargs: + additional_details = kwargs['additionalDetails'] + if attached_tos is None and 'attachedTos' in kwargs: + attached_tos = kwargs['attachedTos'] + if destination_vpcs is None and 'destinationVpcs' in kwargs: + destination_vpcs = kwargs['destinationVpcs'] + if inbound_headers is None and 'inboundHeaders' in kwargs: + inbound_headers = kwargs['inboundHeaders'] + if outbound_headers is None and 'outboundHeaders' in kwargs: + outbound_headers = kwargs['outboundHeaders'] + if route_table_routes is None and 'routeTableRoutes' in kwargs: + route_table_routes = kwargs['routeTableRoutes'] + if security_group_rules is None and 'securityGroupRules' in kwargs: + security_group_rules = kwargs['securityGroupRules'] + if sequence_number is None and 'sequenceNumber' in kwargs: + sequence_number = kwargs['sequenceNumber'] + if source_vpcs is None and 'sourceVpcs' in kwargs: + source_vpcs = kwargs['sourceVpcs'] + if transit_gateway_route_table_routes is None and 'transitGatewayRouteTableRoutes' in kwargs: + transit_gateway_route_table_routes = kwargs['transitGatewayRouteTableRoutes'] + if transit_gateways is None and 'transitGateways' in kwargs: + transit_gateways = kwargs['transitGateways'] + if acl_rules is not None: - pulumi.set(__self__, "acl_rules", acl_rules) + _setter("acl_rules", acl_rules) if additional_details is not None: - pulumi.set(__self__, "additional_details", additional_details) + _setter("additional_details", additional_details) if attached_tos is not None: - pulumi.set(__self__, "attached_tos", attached_tos) + _setter("attached_tos", attached_tos) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) if destination_vpcs is not None: - pulumi.set(__self__, "destination_vpcs", destination_vpcs) + _setter("destination_vpcs", destination_vpcs) if inbound_headers is not None: - pulumi.set(__self__, "inbound_headers", inbound_headers) + _setter("inbound_headers", inbound_headers) if outbound_headers is not None: - pulumi.set(__self__, "outbound_headers", outbound_headers) + _setter("outbound_headers", outbound_headers) if route_table_routes is not None: - pulumi.set(__self__, "route_table_routes", route_table_routes) + _setter("route_table_routes", route_table_routes) if security_group_rules is not None: - pulumi.set(__self__, "security_group_rules", security_group_rules) + _setter("security_group_rules", security_group_rules) if sequence_number is not None: - pulumi.set(__self__, "sequence_number", sequence_number) + _setter("sequence_number", sequence_number) if source_vpcs is not None: - pulumi.set(__self__, "source_vpcs", source_vpcs) + _setter("source_vpcs", source_vpcs) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if transit_gateway_route_table_routes is not None: - pulumi.set(__self__, "transit_gateway_route_table_routes", transit_gateway_route_table_routes) + _setter("transit_gateway_route_table_routes", transit_gateway_route_table_routes) if transit_gateways is not None: - pulumi.set(__self__, "transit_gateways", transit_gateways) + _setter("transit_gateways", transit_gateways) if vpcs is not None: - pulumi.set(__self__, "vpcs", vpcs) + _setter("vpcs", vpcs) @property @pulumi.getter(name="aclRules") @@ -9512,18 +12489,45 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None, rule_action: Optional[pulumi.Input[str]] = None, rule_number: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisForwardPathComponentAclRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + egress=egress, + port_ranges=port_ranges, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[bool]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentAclRulePortRangeArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_action: Optional[pulumi.Input[str]] = None, + rule_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if rule_action is not None: - pulumi.set(__self__, "rule_action", rule_action) + _setter("rule_action", rule_action) if rule_number is not None: - pulumi.set(__self__, "rule_number", rule_number) + _setter("rule_number", rule_number) @property @pulumi.getter @@ -9585,10 +12589,25 @@ class NetworkInsightsAnalysisForwardPathComponentAclRulePortRangeArgs: def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisForwardPathComponentAclRulePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -9614,10 +12633,25 @@ class NetworkInsightsAnalysisForwardPathComponentAdditionalDetailArgs: def __init__(__self__, *, additional_detail_type: Optional[pulumi.Input[str]] = None, components: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentAdditionalDetailComponentArgs']]]] = None): + NetworkInsightsAnalysisForwardPathComponentAdditionalDetailArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_detail_type=additional_detail_type, + components=components, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_detail_type: Optional[pulumi.Input[str]] = None, + components: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentAdditionalDetailComponentArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_detail_type is None and 'additionalDetailType' in kwargs: + additional_detail_type = kwargs['additionalDetailType'] + if additional_detail_type is not None: - pulumi.set(__self__, "additional_detail_type", additional_detail_type) + _setter("additional_detail_type", additional_detail_type) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) @property @pulumi.getter(name="additionalDetailType") @@ -9648,12 +12682,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentAdditionalDetailComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9699,12 +12748,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentAttachedToArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9750,12 +12814,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9801,12 +12880,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentDestinationVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9850,16 +12944,43 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None, source_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, source_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRangeArgs']]]] = None): + NetworkInsightsAnalysisForwardPathComponentInboundHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + destination_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentInboundHeaderDestinationPortRangeArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + source_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRangeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if destination_addresses is not None: - pulumi.set(__self__, "destination_addresses", destination_addresses) + _setter("destination_addresses", destination_addresses) if destination_port_ranges is not None: - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) + _setter("destination_port_ranges", destination_port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source_addresses is not None: - pulumi.set(__self__, "source_addresses", source_addresses) + _setter("source_addresses", source_addresses) if source_port_ranges is not None: - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -9912,10 +13033,25 @@ class NetworkInsightsAnalysisForwardPathComponentInboundHeaderDestinationPortRan def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisForwardPathComponentInboundHeaderDestinationPortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -9941,10 +13077,25 @@ class NetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRangeArg def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -9973,16 +13124,43 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None, source_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, source_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRangeArgs']]]] = None): + NetworkInsightsAnalysisForwardPathComponentOutboundHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + destination_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentOutboundHeaderDestinationPortRangeArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + source_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRangeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if destination_addresses is not None: - pulumi.set(__self__, "destination_addresses", destination_addresses) + _setter("destination_addresses", destination_addresses) if destination_port_ranges is not None: - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) + _setter("destination_port_ranges", destination_port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source_addresses is not None: - pulumi.set(__self__, "source_addresses", source_addresses) + _setter("source_addresses", source_addresses) if source_port_ranges is not None: - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -10035,10 +13213,25 @@ class NetworkInsightsAnalysisForwardPathComponentOutboundHeaderDestinationPortRa def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisForwardPathComponentOutboundHeaderDestinationPortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -10064,10 +13257,25 @@ class NetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRangeAr def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -10101,26 +13309,73 @@ def __init__(__self__, *, origin: Optional[pulumi.Input[str]] = None, transit_gateway_id: Optional[pulumi.Input[str]] = None, vpc_peering_connection_id: Optional[pulumi.Input[str]] = None): + NetworkInsightsAnalysisForwardPathComponentRouteTableRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr=destination_cidr, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_internet_gateway_id=egress_only_internet_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + transit_gateway_id=transit_gateway_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr: Optional[pulumi.Input[str]] = None, + destination_prefix_list_id: Optional[pulumi.Input[str]] = None, + egress_only_internet_gateway_id: Optional[pulumi.Input[str]] = None, + gateway_id: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + nat_gateway_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + origin: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_internet_gateway_id is None and 'egressOnlyInternetGatewayId' in kwargs: + egress_only_internet_gateway_id = kwargs['egressOnlyInternetGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_internet_gateway_id is not None: - pulumi.set(__self__, "egress_only_internet_gateway_id", egress_only_internet_gateway_id) + _setter("egress_only_internet_gateway_id", egress_only_internet_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if origin is not None: - pulumi.set(__self__, "origin", origin) + _setter("origin", origin) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="destinationCidr") @@ -10222,18 +13477,45 @@ def __init__(__self__, *, prefix_list_id: Optional[pulumi.Input[str]] = None, protocol: Optional[pulumi.Input[str]] = None, security_group_id: Optional[pulumi.Input[str]] = None): + NetworkInsightsAnalysisForwardPathComponentSecurityGroupRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + direction=direction, + port_ranges=port_ranges, + prefix_list_id=prefix_list_id, + protocol=protocol, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + direction: Optional[pulumi.Input[str]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentSecurityGroupRulePortRangeArgs']]]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if direction is not None: - pulumi.set(__self__, "direction", direction) + _setter("direction", direction) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) @property @pulumi.getter @@ -10295,10 +13577,25 @@ class NetworkInsightsAnalysisForwardPathComponentSecurityGroupRulePortRangeArgs: def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisForwardPathComponentSecurityGroupRulePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -10329,12 +13626,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentSourceVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10380,12 +13692,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentSubnetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10431,12 +13758,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentTransitGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10482,20 +13824,55 @@ def __init__(__self__, *, resource_type: Optional[pulumi.Input[str]] = None, route_origin: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None): + NetworkInsightsAnalysisForwardPathComponentTransitGatewayRouteTableRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + destination_cidr=destination_cidr, + prefix_list_id=prefix_list_id, + resource_id=resource_id, + resource_type=resource_type, + route_origin=route_origin, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[pulumi.Input[str]] = None, + destination_cidr: Optional[pulumi.Input[str]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + route_origin: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if route_origin is None and 'routeOrigin' in kwargs: + route_origin = kwargs['routeOrigin'] + if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if route_origin is not None: - pulumi.set(__self__, "route_origin", route_origin) + _setter("route_origin", route_origin) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -10571,12 +13948,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10630,36 +14022,99 @@ def __init__(__self__, *, transit_gateway_route_table_routes: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs']]]] = None, transit_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentTransitGatewayArgs']]]] = None, vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentVpcArgs']]]] = None): + NetworkInsightsAnalysisReturnPathComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_rules=acl_rules, + additional_details=additional_details, + attached_tos=attached_tos, + components=components, + destination_vpcs=destination_vpcs, + inbound_headers=inbound_headers, + outbound_headers=outbound_headers, + route_table_routes=route_table_routes, + security_group_rules=security_group_rules, + sequence_number=sequence_number, + source_vpcs=source_vpcs, + subnets=subnets, + transit_gateway_route_table_routes=transit_gateway_route_table_routes, + transit_gateways=transit_gateways, + vpcs=vpcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentAclRuleArgs']]]] = None, + additional_details: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentAdditionalDetailArgs']]]] = None, + attached_tos: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentAttachedToArgs']]]] = None, + components: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentComponentArgs']]]] = None, + destination_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentDestinationVpcArgs']]]] = None, + inbound_headers: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentInboundHeaderArgs']]]] = None, + outbound_headers: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentOutboundHeaderArgs']]]] = None, + route_table_routes: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentRouteTableRouteArgs']]]] = None, + security_group_rules: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentSecurityGroupRuleArgs']]]] = None, + sequence_number: Optional[pulumi.Input[int]] = None, + source_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentSourceVpcArgs']]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentSubnetArgs']]]] = None, + transit_gateway_route_table_routes: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs']]]] = None, + transit_gateways: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentTransitGatewayArgs']]]] = None, + vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentVpcArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_rules is None and 'aclRules' in kwargs: + acl_rules = kwargs['aclRules'] + if additional_details is None and 'additionalDetails' in kwargs: + additional_details = kwargs['additionalDetails'] + if attached_tos is None and 'attachedTos' in kwargs: + attached_tos = kwargs['attachedTos'] + if destination_vpcs is None and 'destinationVpcs' in kwargs: + destination_vpcs = kwargs['destinationVpcs'] + if inbound_headers is None and 'inboundHeaders' in kwargs: + inbound_headers = kwargs['inboundHeaders'] + if outbound_headers is None and 'outboundHeaders' in kwargs: + outbound_headers = kwargs['outboundHeaders'] + if route_table_routes is None and 'routeTableRoutes' in kwargs: + route_table_routes = kwargs['routeTableRoutes'] + if security_group_rules is None and 'securityGroupRules' in kwargs: + security_group_rules = kwargs['securityGroupRules'] + if sequence_number is None and 'sequenceNumber' in kwargs: + sequence_number = kwargs['sequenceNumber'] + if source_vpcs is None and 'sourceVpcs' in kwargs: + source_vpcs = kwargs['sourceVpcs'] + if transit_gateway_route_table_routes is None and 'transitGatewayRouteTableRoutes' in kwargs: + transit_gateway_route_table_routes = kwargs['transitGatewayRouteTableRoutes'] + if transit_gateways is None and 'transitGateways' in kwargs: + transit_gateways = kwargs['transitGateways'] + if acl_rules is not None: - pulumi.set(__self__, "acl_rules", acl_rules) + _setter("acl_rules", acl_rules) if additional_details is not None: - pulumi.set(__self__, "additional_details", additional_details) + _setter("additional_details", additional_details) if attached_tos is not None: - pulumi.set(__self__, "attached_tos", attached_tos) + _setter("attached_tos", attached_tos) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) if destination_vpcs is not None: - pulumi.set(__self__, "destination_vpcs", destination_vpcs) + _setter("destination_vpcs", destination_vpcs) if inbound_headers is not None: - pulumi.set(__self__, "inbound_headers", inbound_headers) + _setter("inbound_headers", inbound_headers) if outbound_headers is not None: - pulumi.set(__self__, "outbound_headers", outbound_headers) + _setter("outbound_headers", outbound_headers) if route_table_routes is not None: - pulumi.set(__self__, "route_table_routes", route_table_routes) + _setter("route_table_routes", route_table_routes) if security_group_rules is not None: - pulumi.set(__self__, "security_group_rules", security_group_rules) + _setter("security_group_rules", security_group_rules) if sequence_number is not None: - pulumi.set(__self__, "sequence_number", sequence_number) + _setter("sequence_number", sequence_number) if source_vpcs is not None: - pulumi.set(__self__, "source_vpcs", source_vpcs) + _setter("source_vpcs", source_vpcs) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if transit_gateway_route_table_routes is not None: - pulumi.set(__self__, "transit_gateway_route_table_routes", transit_gateway_route_table_routes) + _setter("transit_gateway_route_table_routes", transit_gateway_route_table_routes) if transit_gateways is not None: - pulumi.set(__self__, "transit_gateways", transit_gateways) + _setter("transit_gateways", transit_gateways) if vpcs is not None: - pulumi.set(__self__, "vpcs", vpcs) + _setter("vpcs", vpcs) @property @pulumi.getter(name="aclRules") @@ -10806,18 +14261,45 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None, rule_action: Optional[pulumi.Input[str]] = None, rule_number: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisReturnPathComponentAclRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + egress=egress, + port_ranges=port_ranges, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[bool]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentAclRulePortRangeArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_action: Optional[pulumi.Input[str]] = None, + rule_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if rule_action is not None: - pulumi.set(__self__, "rule_action", rule_action) + _setter("rule_action", rule_action) if rule_number is not None: - pulumi.set(__self__, "rule_number", rule_number) + _setter("rule_number", rule_number) @property @pulumi.getter @@ -10879,10 +14361,25 @@ class NetworkInsightsAnalysisReturnPathComponentAclRulePortRangeArgs: def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisReturnPathComponentAclRulePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -10908,10 +14405,25 @@ class NetworkInsightsAnalysisReturnPathComponentAdditionalDetailArgs: def __init__(__self__, *, additional_detail_type: Optional[pulumi.Input[str]] = None, components: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentAdditionalDetailComponentArgs']]]] = None): + NetworkInsightsAnalysisReturnPathComponentAdditionalDetailArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_detail_type=additional_detail_type, + components=components, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_detail_type: Optional[pulumi.Input[str]] = None, + components: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentAdditionalDetailComponentArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_detail_type is None and 'additionalDetailType' in kwargs: + additional_detail_type = kwargs['additionalDetailType'] + if additional_detail_type is not None: - pulumi.set(__self__, "additional_detail_type", additional_detail_type) + _setter("additional_detail_type", additional_detail_type) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) @property @pulumi.getter(name="additionalDetailType") @@ -10942,12 +14454,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentAdditionalDetailComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10993,12 +14520,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentAttachedToArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11044,12 +14586,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11095,12 +14652,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentDestinationVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11144,16 +14716,43 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None, source_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, source_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRangeArgs']]]] = None): + NetworkInsightsAnalysisReturnPathComponentInboundHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + destination_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentInboundHeaderDestinationPortRangeArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + source_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRangeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if destination_addresses is not None: - pulumi.set(__self__, "destination_addresses", destination_addresses) + _setter("destination_addresses", destination_addresses) if destination_port_ranges is not None: - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) + _setter("destination_port_ranges", destination_port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source_addresses is not None: - pulumi.set(__self__, "source_addresses", source_addresses) + _setter("source_addresses", source_addresses) if source_port_ranges is not None: - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -11206,10 +14805,25 @@ class NetworkInsightsAnalysisReturnPathComponentInboundHeaderDestinationPortRang def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisReturnPathComponentInboundHeaderDestinationPortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -11235,10 +14849,25 @@ class NetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRangeArgs def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -11267,16 +14896,43 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None, source_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, source_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRangeArgs']]]] = None): + NetworkInsightsAnalysisReturnPathComponentOutboundHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + destination_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentOutboundHeaderDestinationPortRangeArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + source_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRangeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if destination_addresses is not None: - pulumi.set(__self__, "destination_addresses", destination_addresses) + _setter("destination_addresses", destination_addresses) if destination_port_ranges is not None: - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) + _setter("destination_port_ranges", destination_port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source_addresses is not None: - pulumi.set(__self__, "source_addresses", source_addresses) + _setter("source_addresses", source_addresses) if source_port_ranges is not None: - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -11329,10 +14985,25 @@ class NetworkInsightsAnalysisReturnPathComponentOutboundHeaderDestinationPortRan def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisReturnPathComponentOutboundHeaderDestinationPortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -11358,10 +15029,25 @@ class NetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRangeArg def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -11395,26 +15081,73 @@ def __init__(__self__, *, origin: Optional[pulumi.Input[str]] = None, transit_gateway_id: Optional[pulumi.Input[str]] = None, vpc_peering_connection_id: Optional[pulumi.Input[str]] = None): + NetworkInsightsAnalysisReturnPathComponentRouteTableRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr=destination_cidr, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_internet_gateway_id=egress_only_internet_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + transit_gateway_id=transit_gateway_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr: Optional[pulumi.Input[str]] = None, + destination_prefix_list_id: Optional[pulumi.Input[str]] = None, + egress_only_internet_gateway_id: Optional[pulumi.Input[str]] = None, + gateway_id: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + nat_gateway_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + origin: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_internet_gateway_id is None and 'egressOnlyInternetGatewayId' in kwargs: + egress_only_internet_gateway_id = kwargs['egressOnlyInternetGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_internet_gateway_id is not None: - pulumi.set(__self__, "egress_only_internet_gateway_id", egress_only_internet_gateway_id) + _setter("egress_only_internet_gateway_id", egress_only_internet_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if origin is not None: - pulumi.set(__self__, "origin", origin) + _setter("origin", origin) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="destinationCidr") @@ -11516,18 +15249,45 @@ def __init__(__self__, *, prefix_list_id: Optional[pulumi.Input[str]] = None, protocol: Optional[pulumi.Input[str]] = None, security_group_id: Optional[pulumi.Input[str]] = None): + NetworkInsightsAnalysisReturnPathComponentSecurityGroupRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + direction=direction, + port_ranges=port_ranges, + prefix_list_id=prefix_list_id, + protocol=protocol, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + direction: Optional[pulumi.Input[str]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentSecurityGroupRulePortRangeArgs']]]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if direction is not None: - pulumi.set(__self__, "direction", direction) + _setter("direction", direction) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) @property @pulumi.getter @@ -11589,10 +15349,25 @@ class NetworkInsightsAnalysisReturnPathComponentSecurityGroupRulePortRangeArgs: def __init__(__self__, *, from_: Optional[pulumi.Input[int]] = None, to: Optional[pulumi.Input[int]] = None): + NetworkInsightsAnalysisReturnPathComponentSecurityGroupRulePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -11623,12 +15398,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentSourceVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11674,12 +15464,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentSubnetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11725,12 +15530,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentTransitGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11776,20 +15596,55 @@ def __init__(__self__, *, resource_type: Optional[pulumi.Input[str]] = None, route_origin: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None): + NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + destination_cidr=destination_cidr, + prefix_list_id=prefix_list_id, + resource_id=resource_id, + resource_type=resource_type, + route_origin=route_origin, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[pulumi.Input[str]] = None, + destination_cidr: Optional[pulumi.Input[str]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + route_origin: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if route_origin is None and 'routeOrigin' in kwargs: + route_origin = kwargs['routeOrigin'] + if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if route_origin is not None: - pulumi.set(__self__, "route_origin", route_origin) + _setter("route_origin", route_origin) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -11865,12 +15720,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: ARN of the Network Insights Analysis. :param pulumi.Input[str] id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11916,10 +15786,33 @@ def __init__(__self__, *, :param pulumi.Input[int] device_index: Integer to define the devices index. :param pulumi.Input[str] instance: ID of the instance to attach to. """ - pulumi.set(__self__, "device_index", device_index) - pulumi.set(__self__, "instance", instance) + NetworkInterfaceAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_index=device_index, + instance=instance, + attachment_id=attachment_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_index: Optional[pulumi.Input[int]] = None, + instance: Optional[pulumi.Input[str]] = None, + attachment_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if device_index is None: + raise TypeError("Missing 'device_index' argument") + if instance is None: + raise TypeError("Missing 'instance' argument") + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + + _setter("device_index", device_index) + _setter("instance", instance) if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) @property @pulumi.getter(name="deviceIndex") @@ -11962,8 +15855,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] allow_remote_vpc_dns_resolution: Allow a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. """ + PeeringConnectionOptionsAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -11985,8 +15891,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] allow_remote_vpc_dns_resolution: Allow a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. """ + PeeringConnectionOptionsRequesterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -12036,32 +15955,93 @@ def __init__(__self__, *, Note that the default route, mapping the VPC's CIDR block to "local", is created implicitly and cannot be specified. """ + RouteTableRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + carrier_gateway_id=carrier_gateway_id, + cidr_block=cidr_block, + core_network_arn=core_network_arn, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_gateway_id=egress_only_gateway_id, + gateway_id=gateway_id, + ipv6_cidr_block=ipv6_cidr_block, + local_gateway_id=local_gateway_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + transit_gateway_id=transit_gateway_id, + vpc_endpoint_id=vpc_endpoint_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + carrier_gateway_id: Optional[pulumi.Input[str]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + destination_prefix_list_id: Optional[pulumi.Input[str]] = None, + egress_only_gateway_id: Optional[pulumi.Input[str]] = None, + gateway_id: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + local_gateway_id: Optional[pulumi.Input[str]] = None, + nat_gateway_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if carrier_gateway_id is None and 'carrierGatewayId' in kwargs: + carrier_gateway_id = kwargs['carrierGatewayId'] + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_gateway_id is None and 'egressOnlyGatewayId' in kwargs: + egress_only_gateway_id = kwargs['egressOnlyGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if local_gateway_id is None and 'localGatewayId' in kwargs: + local_gateway_id = kwargs['localGatewayId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if carrier_gateway_id is not None: - pulumi.set(__self__, "carrier_gateway_id", carrier_gateway_id) + _setter("carrier_gateway_id", carrier_gateway_id) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_gateway_id is not None: - pulumi.set(__self__, "egress_only_gateway_id", egress_only_gateway_id) + _setter("egress_only_gateway_id", egress_only_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if local_gateway_id is not None: - pulumi.set(__self__, "local_gateway_id", local_gateway_id) + _setter("local_gateway_id", local_gateway_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="carrierGatewayId") @@ -12251,21 +16231,66 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. :param pulumi.Input[bool] self: Whether the security group itself will be added as a source to this egress rule. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + SecurityGroupEgressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_blocks=cidr_blocks, + description=description, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + security_groups=security_groups, + self=self, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + to_port: Optional[pulumi.Input[int]] = None, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + ipv6_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + prefix_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) @property @pulumi.getter(name="fromPort") @@ -12407,21 +16432,66 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. :param pulumi.Input[bool] self: Whether the security group itself will be added as a source to this ingress rule. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + SecurityGroupIngressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_blocks=cidr_blocks, + description=description, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + security_groups=security_groups, + self=self, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + to_port: Optional[pulumi.Input[int]] = None, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + ipv6_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + prefix_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) @property @pulumi.getter(name="fromPort") @@ -12567,44 +16637,131 @@ def __init__(__self__, *, :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] weighted_capacity: The capacity added to the fleet by a fulfilled request. """ - pulumi.set(__self__, "ami", ami) - pulumi.set(__self__, "instance_type", instance_type) + SpotFleetRequestLaunchSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami=ami, + instance_type=instance_type, + associate_public_ip_address=associate_public_ip_address, + availability_zone=availability_zone, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + ephemeral_block_devices=ephemeral_block_devices, + iam_instance_profile=iam_instance_profile, + iam_instance_profile_arn=iam_instance_profile_arn, + key_name=key_name, + monitoring=monitoring, + placement_group=placement_group, + placement_tenancy=placement_tenancy, + root_block_devices=root_block_devices, + spot_price=spot_price, + subnet_id=subnet_id, + tags=tags, + user_data=user_data, + vpc_security_group_ids=vpc_security_group_ids, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + associate_public_ip_address: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['SpotFleetRequestLaunchSpecificationEbsBlockDeviceArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['SpotFleetRequestLaunchSpecificationEphemeralBlockDeviceArgs']]]] = None, + iam_instance_profile: Optional[pulumi.Input[str]] = None, + iam_instance_profile_arn: Optional[pulumi.Input[str]] = None, + key_name: Optional[pulumi.Input[str]] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + placement_group: Optional[pulumi.Input[str]] = None, + placement_tenancy: Optional[pulumi.Input[str]] = None, + root_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['SpotFleetRequestLaunchSpecificationRootBlockDeviceArgs']]]] = None, + spot_price: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_data: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + weighted_capacity: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ami is None: + raise TypeError("Missing 'ami' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if iam_instance_profile_arn is None and 'iamInstanceProfileArn' in kwargs: + iam_instance_profile_arn = kwargs['iamInstanceProfileArn'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if placement_tenancy is None and 'placementTenancy' in kwargs: + placement_tenancy = kwargs['placementTenancy'] + if root_block_devices is None and 'rootBlockDevices' in kwargs: + root_block_devices = kwargs['rootBlockDevices'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("ami", ami) + _setter("instance_type", instance_type) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if iam_instance_profile_arn is not None: - pulumi.set(__self__, "iam_instance_profile_arn", iam_instance_profile_arn) + _setter("iam_instance_profile_arn", iam_instance_profile_arn) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if monitoring is not None: - pulumi.set(__self__, "monitoring", monitoring) + _setter("monitoring", monitoring) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if placement_tenancy is not None: - pulumi.set(__self__, "placement_tenancy", placement_tenancy) + _setter("placement_tenancy", placement_tenancy) if root_block_devices is not None: - pulumi.set(__self__, "root_block_devices", root_block_devices) + _setter("root_block_devices", root_block_devices) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter @@ -12817,23 +16974,64 @@ def __init__(__self__, *, throughput: Optional[pulumi.Input[int]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "device_name", device_name) + SpotFleetRequestLaunchSpecificationEbsBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + delete_on_termination: Optional[pulumi.Input[bool]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -12922,8 +17120,29 @@ class SpotFleetRequestLaunchSpecificationEphemeralBlockDeviceArgs: def __init__(__self__, *, device_name: pulumi.Input[str], virtual_name: pulumi.Input[str]): - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "virtual_name", virtual_name) + SpotFleetRequestLaunchSpecificationEphemeralBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -12954,20 +17173,51 @@ def __init__(__self__, *, throughput: Optional[pulumi.Input[int]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): + SpotFleetRequestLaunchSpecificationRootBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[bool]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -13042,9 +17292,26 @@ def __init__(__self__, *, :param pulumi.Input['SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs'] launch_template_specification: Launch template specification. See Launch Template Specification below for more details. :param pulumi.Input[Sequence[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideArgs']]] overrides: One or more override configurations. See Overrides below for more details. """ - pulumi.set(__self__, "launch_template_specification", launch_template_specification) + SpotFleetRequestLaunchTemplateConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_specification=launch_template_specification, + overrides=overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_specification: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs']] = None, + overrides: Optional[pulumi.Input[Sequence[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_specification is None and 'launchTemplateSpecification' in kwargs: + launch_template_specification = kwargs['launchTemplateSpecification'] + if launch_template_specification is None: + raise TypeError("Missing 'launch_template_specification' argument") + + _setter("launch_template_specification", launch_template_specification) if overrides is not None: - pulumi.set(__self__, "overrides", overrides) + _setter("overrides", overrides) @property @pulumi.getter(name="launchTemplateSpecification") @@ -13086,12 +17353,27 @@ def __init__(__self__, *, inputs of `ec2.LaunchTemplate`. There are limitations on what you can specify as spot fleet does not support all the attributes that are supported by autoscaling groups. [AWS documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#launch-templates-spot-fleet) is currently sparse, but at least `instance_initiated_shutdown_behavior` is confirmed unsupported. """ + SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -13153,20 +17435,55 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_id: The subnet in which to launch the requested instance. :param pulumi.Input[float] weighted_capacity: The capacity added to the fleet by a fulfilled request. """ + SpotFleetRequestLaunchTemplateConfigOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + instance_requirements=instance_requirements, + instance_type=instance_type, + priority=priority, + spot_price=spot_price, + subnet_id=subnet_id, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + instance_requirements: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsArgs']] = None, + instance_type: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[float]] = None, + spot_price: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + weighted_capacity: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if instance_requirements is None and 'instanceRequirements' in kwargs: + instance_requirements = kwargs['instanceRequirements'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if instance_requirements is not None: - pulumi.set(__self__, "instance_requirements", instance_requirements) + _setter("instance_requirements", instance_requirements) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="availabilityZone") @@ -13338,52 +17655,153 @@ def __init__(__self__, *, :param pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs'] total_local_storage_gb: Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum. :param pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs'] vcpu_count: Block describing the minimum and maximum number of vCPUs. Default is no maximum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_count=accelerator_count, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mib=accelerator_total_memory_mib, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpu=memory_gib_per_vcpu, + memory_mib=memory_mib, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_count=network_interface_count, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gb=total_local_storage_gb, + vcpu_count=vcpu_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_count: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs']] = None, + accelerator_manufacturers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + accelerator_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + accelerator_total_memory_mib: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs']] = None, + accelerator_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + bare_metal: Optional[pulumi.Input[str]] = None, + baseline_ebs_bandwidth_mbps: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs']] = None, + burstable_performance: Optional[pulumi.Input[str]] = None, + cpu_manufacturers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + excluded_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_generations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + local_storage: Optional[pulumi.Input[str]] = None, + local_storage_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + memory_gib_per_vcpu: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs']] = None, + memory_mib: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs']] = None, + network_bandwidth_gbps: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs']] = None, + network_interface_count: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs']] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[pulumi.Input[int]] = None, + require_hibernate_support: Optional[pulumi.Input[bool]] = None, + spot_max_price_percentage_over_lowest_price: Optional[pulumi.Input[int]] = None, + total_local_storage_gb: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs']] = None, + vcpu_count: Optional[pulumi.Input['SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_count is None and 'acceleratorCount' in kwargs: + accelerator_count = kwargs['acceleratorCount'] + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_total_memory_mib is None and 'acceleratorTotalMemoryMib' in kwargs: + accelerator_total_memory_mib = kwargs['acceleratorTotalMemoryMib'] + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if memory_gib_per_vcpu is None and 'memoryGibPerVcpu' in kwargs: + memory_gib_per_vcpu = kwargs['memoryGibPerVcpu'] + if memory_mib is None and 'memoryMib' in kwargs: + memory_mib = kwargs['memoryMib'] + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_interface_count is None and 'networkInterfaceCount' in kwargs: + network_interface_count = kwargs['networkInterfaceCount'] + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if total_local_storage_gb is None and 'totalLocalStorageGb' in kwargs: + total_local_storage_gb = kwargs['totalLocalStorageGb'] + if vcpu_count is None and 'vcpuCount' in kwargs: + vcpu_count = kwargs['vcpuCount'] + if accelerator_count is not None: - pulumi.set(__self__, "accelerator_count", accelerator_count) + _setter("accelerator_count", accelerator_count) if accelerator_manufacturers is not None: - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_manufacturers", accelerator_manufacturers) if accelerator_names is not None: - pulumi.set(__self__, "accelerator_names", accelerator_names) + _setter("accelerator_names", accelerator_names) if accelerator_total_memory_mib is not None: - pulumi.set(__self__, "accelerator_total_memory_mib", accelerator_total_memory_mib) + _setter("accelerator_total_memory_mib", accelerator_total_memory_mib) if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if allowed_instance_types is not None: - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + _setter("allowed_instance_types", allowed_instance_types) if bare_metal is not None: - pulumi.set(__self__, "bare_metal", bare_metal) + _setter("bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) if burstable_performance is not None: - pulumi.set(__self__, "burstable_performance", burstable_performance) + _setter("burstable_performance", burstable_performance) if cpu_manufacturers is not None: - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) + _setter("cpu_manufacturers", cpu_manufacturers) if excluded_instance_types is not None: - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + _setter("excluded_instance_types", excluded_instance_types) if instance_generations is not None: - pulumi.set(__self__, "instance_generations", instance_generations) + _setter("instance_generations", instance_generations) if local_storage is not None: - pulumi.set(__self__, "local_storage", local_storage) + _setter("local_storage", local_storage) if local_storage_types is not None: - pulumi.set(__self__, "local_storage_types", local_storage_types) + _setter("local_storage_types", local_storage_types) if memory_gib_per_vcpu is not None: - pulumi.set(__self__, "memory_gib_per_vcpu", memory_gib_per_vcpu) + _setter("memory_gib_per_vcpu", memory_gib_per_vcpu) if memory_mib is not None: - pulumi.set(__self__, "memory_mib", memory_mib) + _setter("memory_mib", memory_mib) if network_bandwidth_gbps is not None: - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) if network_interface_count is not None: - pulumi.set(__self__, "network_interface_count", network_interface_count) + _setter("network_interface_count", network_interface_count) if on_demand_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) if require_hibernate_support is not None: - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) + _setter("require_hibernate_support", require_hibernate_support) if spot_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) if total_local_storage_gb is not None: - pulumi.set(__self__, "total_local_storage_gb", total_local_storage_gb) + _setter("total_local_storage_gb", total_local_storage_gb) if vcpu_count is not None: - pulumi.set(__self__, "vcpu_count", vcpu_count) + _setter("vcpu_count", vcpu_count) @property @pulumi.getter(name="acceleratorCount") @@ -13702,19 +18120,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13741,19 +18172,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13780,19 +18224,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13819,19 +18276,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[float] max: Maximum. :param pulumi.Input[float] min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpuArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13858,19 +18328,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMibArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13897,19 +18380,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[float] max: Maximum. :param pulumi.Input[float] min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbpsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13936,19 +18432,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13975,19 +18484,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[float]] = None, min: Optional[pulumi.Input[float]] = None): """ - :param pulumi.Input[float] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[float] max: Maximum. :param pulumi.Input[float] min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[float]] = None, + min: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[float]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -14014,19 +18536,32 @@ def __init__(__self__, *, max: Optional[pulumi.Input[int]] = None, min: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[int] max: Maximum. Set to `0` to exclude instance types with accelerators. + :param pulumi.Input[int] max: Maximum. :param pulumi.Input[int] min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[pulumi.Input[int]] = None, + min: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[pulumi.Input[int]]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -14054,8 +18589,21 @@ def __init__(__self__, *, """ :param pulumi.Input['SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalanceArgs'] capacity_rebalance: Nested argument containing the capacity rebalance for your fleet request. Defined below. """ + SpotFleetRequestSpotMaintenanceStrategiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_rebalance=capacity_rebalance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_rebalance: Optional[pulumi.Input['SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalanceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_rebalance is None and 'capacityRebalance' in kwargs: + capacity_rebalance = kwargs['capacityRebalance'] + if capacity_rebalance is not None: - pulumi.set(__self__, "capacity_rebalance", capacity_rebalance) + _setter("capacity_rebalance", capacity_rebalance) @property @pulumi.getter(name="capacityRebalance") @@ -14077,8 +18625,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] replacement_strategy: The replacement strategy to use. Only available for spot fleets with `fleet_type` set to `maintain`. Valid values: `launch`. """ + SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + replacement_strategy=replacement_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replacement_strategy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replacement_strategy is None and 'replacementStrategy' in kwargs: + replacement_strategy = kwargs['replacementStrategy'] + if replacement_strategy is not None: - pulumi.set(__self__, "replacement_strategy", replacement_strategy) + _setter("replacement_strategy", replacement_strategy) @property @pulumi.getter(name="replacementStrategy") @@ -14104,10 +18665,27 @@ def __init__(__self__, *, For more information, see the documentation on [Capacity Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-using.html). """ + SpotInstanceRequestCapacityReservationSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_preference=capacity_reservation_preference, + capacity_reservation_target=capacity_reservation_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_preference: Optional[pulumi.Input[str]] = None, + capacity_reservation_target: Optional[pulumi.Input['SpotInstanceRequestCapacityReservationSpecificationCapacityReservationTargetArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_preference is None and 'capacityReservationPreference' in kwargs: + capacity_reservation_preference = kwargs['capacityReservationPreference'] + if capacity_reservation_target is None and 'capacityReservationTarget' in kwargs: + capacity_reservation_target = kwargs['capacityReservationTarget'] + if capacity_reservation_preference is not None: - pulumi.set(__self__, "capacity_reservation_preference", capacity_reservation_preference) + _setter("capacity_reservation_preference", capacity_reservation_preference) if capacity_reservation_target is not None: - pulumi.set(__self__, "capacity_reservation_target", capacity_reservation_target) + _setter("capacity_reservation_target", capacity_reservation_target) @property @pulumi.getter(name="capacityReservationPreference") @@ -14145,10 +18723,27 @@ def __init__(__self__, *, :param pulumi.Input[str] capacity_reservation_id: ID of the Capacity Reservation in which to run the instance. :param pulumi.Input[str] capacity_reservation_resource_group_arn: ARN of the Capacity Reservation resource group in which to run the instance. """ + SpotInstanceRequestCapacityReservationSpecificationCapacityReservationTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_id=capacity_reservation_id, + capacity_reservation_resource_group_arn=capacity_reservation_resource_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_id: Optional[pulumi.Input[str]] = None, + capacity_reservation_resource_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_id is None and 'capacityReservationId' in kwargs: + capacity_reservation_id = kwargs['capacityReservationId'] + if capacity_reservation_resource_group_arn is None and 'capacityReservationResourceGroupArn' in kwargs: + capacity_reservation_resource_group_arn = kwargs['capacityReservationResourceGroupArn'] + if capacity_reservation_id is not None: - pulumi.set(__self__, "capacity_reservation_id", capacity_reservation_id) + _setter("capacity_reservation_id", capacity_reservation_id) if capacity_reservation_resource_group_arn is not None: - pulumi.set(__self__, "capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) + _setter("capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) @property @pulumi.getter(name="capacityReservationId") @@ -14188,12 +18783,33 @@ def __init__(__self__, *, For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). """ + SpotInstanceRequestCpuOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amd_sev_snp=amd_sev_snp, + core_count=core_count, + threads_per_core=threads_per_core, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amd_sev_snp: Optional[pulumi.Input[str]] = None, + core_count: Optional[pulumi.Input[int]] = None, + threads_per_core: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amd_sev_snp is None and 'amdSevSnp' in kwargs: + amd_sev_snp = kwargs['amdSevSnp'] + if core_count is None and 'coreCount' in kwargs: + core_count = kwargs['coreCount'] + if threads_per_core is None and 'threadsPerCore' in kwargs: + threads_per_core = kwargs['threadsPerCore'] + if amd_sev_snp is not None: - pulumi.set(__self__, "amd_sev_snp", amd_sev_snp) + _setter("amd_sev_snp", amd_sev_snp) if core_count is not None: - pulumi.set(__self__, "core_count", core_count) + _setter("core_count", core_count) if threads_per_core is not None: - pulumi.set(__self__, "threads_per_core", threads_per_core) + _setter("threads_per_core", threads_per_core) @property @pulumi.getter(name="amdSevSnp") @@ -14241,8 +18857,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cpu_credits: Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ + SpotInstanceRequestCreditSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_credits=cpu_credits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_credits: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_credits is None and 'cpuCredits' in kwargs: + cpu_credits = kwargs['cpuCredits'] + if cpu_credits is not None: - pulumi.set(__self__, "cpu_credits", cpu_credits) + _setter("cpu_credits", cpu_credits) @property @pulumi.getter(name="cpuCredits") @@ -14285,27 +18914,74 @@ def __init__(__self__, *, > **NOTE:** Currently, changes to the `ebs_block_device` configuration of _existing_ resources cannot be automatically detected by this provider. To manage changes and attachments of an EBS block to an instance, use the `ebs.Volume` and `ec2.VolumeAttachment` resources instead. If you use `ebs_block_device` on an `ec2.Instance`, this provider will assume management over the full set of non-root EBS block devices for the instance, treating additional block devices as drift. For this reason, `ebs_block_device` cannot be mixed with external `ebs.Volume` and `ec2.VolumeAttachment` resources for a given instance. """ - pulumi.set(__self__, "device_name", device_name) + SpotInstanceRequestEbsBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + delete_on_termination: Optional[pulumi.Input[bool]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -14448,8 +19124,19 @@ def __init__(__self__, *, For more information, see the documentation on [Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html). """ + SpotInstanceRequestEnclaveOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -14479,11 +19166,34 @@ def __init__(__self__, *, Each AWS Instance type has a different set of Instance Store block devices available for attachment. AWS [publishes a list](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#StorageOnInstanceTypes) of which ephemeral devices are available on each type. The devices are always identified by the `virtual_name` in the format `ephemeral{0..N}`. """ - pulumi.set(__self__, "device_name", device_name) + SpotInstanceRequestEphemeralBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + no_device: Optional[pulumi.Input[bool]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + + _setter("device_name", device_name) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -14535,12 +19245,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the launch template. Conflicts with `id`. :param pulumi.Input[str] version: Template version. Can be a specific version number, `$Latest` or `$Default`. The default value is `$Default`. """ + SpotInstanceRequestLaunchTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -14586,8 +19311,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] auto_recovery: Automatic recovery behavior of the Instance. Can be `"default"` or `"disabled"`. See [Recover your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html) for more details. """ + SpotInstanceRequestMaintenanceOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_recovery=auto_recovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_recovery: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_recovery is None and 'autoRecovery' in kwargs: + auto_recovery = kwargs['autoRecovery'] + if auto_recovery is not None: - pulumi.set(__self__, "auto_recovery", auto_recovery) + _setter("auto_recovery", auto_recovery) @property @pulumi.getter(name="autoRecovery") @@ -14619,16 +19357,45 @@ def __init__(__self__, *, For more information, see the documentation on the [Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html). """ + SpotInstanceRequestMetadataOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_protocol_ipv6=http_protocol_ipv6, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + instance_metadata_tags=instance_metadata_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[pulumi.Input[str]] = None, + http_protocol_ipv6: Optional[pulumi.Input[str]] = None, + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + instance_metadata_tags: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_protocol_ipv6 is None and 'httpProtocolIpv6' in kwargs: + http_protocol_ipv6 = kwargs['httpProtocolIpv6'] + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if instance_metadata_tags is None and 'instanceMetadataTags' in kwargs: + instance_metadata_tags = kwargs['instanceMetadataTags'] + if http_endpoint is not None: - pulumi.set(__self__, "http_endpoint", http_endpoint) + _setter("http_endpoint", http_endpoint) if http_protocol_ipv6 is not None: - pulumi.set(__self__, "http_protocol_ipv6", http_protocol_ipv6) + _setter("http_protocol_ipv6", http_protocol_ipv6) if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) if instance_metadata_tags is not None: - pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + _setter("instance_metadata_tags", instance_metadata_tags) @property @pulumi.getter(name="httpEndpoint") @@ -14706,12 +19473,41 @@ def __init__(__self__, *, :param pulumi.Input[bool] delete_on_termination: Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. :param pulumi.Input[int] network_card_index: Integer index of the network card. Limited by instance type. The default index is `0`. """ - pulumi.set(__self__, "device_index", device_index) - pulumi.set(__self__, "network_interface_id", network_interface_id) + SpotInstanceRequestNetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_index=device_index, + network_interface_id=network_interface_id, + delete_on_termination=delete_on_termination, + network_card_index=network_card_index, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_index: Optional[pulumi.Input[int]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + delete_on_termination: Optional[pulumi.Input[bool]] = None, + network_card_index: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if device_index is None: + raise TypeError("Missing 'device_index' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if network_card_index is None and 'networkCardIndex' in kwargs: + network_card_index = kwargs['networkCardIndex'] + + _setter("device_index", device_index) + _setter("network_interface_id", network_interface_id) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if network_card_index is not None: - pulumi.set(__self__, "network_card_index", network_card_index) + _setter("network_card_index", network_card_index) @property @pulumi.getter(name="deviceIndex") @@ -14773,12 +19569,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_resource_name_dns_aaaa_record: Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. :param pulumi.Input[str] hostname_type: Type of hostname for Amazon EC2 instances. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 native subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: `ip-name` and `resource-name`. """ + SpotInstanceRequestPrivateDnsNameOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_resource_name_dns_a_record=enable_resource_name_dns_a_record, + enable_resource_name_dns_aaaa_record=enable_resource_name_dns_aaaa_record, + hostname_type=hostname_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_resource_name_dns_a_record: Optional[pulumi.Input[bool]] = None, + enable_resource_name_dns_aaaa_record: Optional[pulumi.Input[bool]] = None, + hostname_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_resource_name_dns_a_record is None and 'enableResourceNameDnsARecord' in kwargs: + enable_resource_name_dns_a_record = kwargs['enableResourceNameDnsARecord'] + if enable_resource_name_dns_aaaa_record is None and 'enableResourceNameDnsAaaaRecord' in kwargs: + enable_resource_name_dns_aaaa_record = kwargs['enableResourceNameDnsAaaaRecord'] + if hostname_type is None and 'hostnameType' in kwargs: + hostname_type = kwargs['hostnameType'] + if enable_resource_name_dns_a_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) + _setter("enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) if enable_resource_name_dns_aaaa_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) + _setter("enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) if hostname_type is not None: - pulumi.set(__self__, "hostname_type", hostname_type) + _setter("hostname_type", hostname_type) @property @pulumi.getter(name="enableResourceNameDnsARecord") @@ -14843,26 +19660,67 @@ def __init__(__self__, *, Modifying the `encrypted` or `kms_key_id` settings of the `root_block_device` requires resource replacement. """ + SpotInstanceRequestRootBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[bool]] = None, + device_name: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -14993,10 +19851,27 @@ def __init__(__self__, *, :param pulumi.Input[int] from_port: Starting port of the range :param pulumi.Input[int] to_port: Ending port of the range """ + TrafficMirrorFilterRuleDestinationPortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -15032,10 +19907,27 @@ def __init__(__self__, *, :param pulumi.Input[int] from_port: Starting port of the range :param pulumi.Input[int] to_port: Ending port of the range """ + TrafficMirrorFilterRuleSourcePortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -15071,10 +19963,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dns_name: The DNS name. :param pulumi.Input[str] hosted_zone_id: The ID of the private hosted zone. """ + VpcEndpointDnsEntryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + hosted_zone_id=hosted_zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) @property @pulumi.getter(name="dnsName") @@ -15110,10 +20019,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dns_record_ip_type: The DNS records created for the endpoint. Valid values are `ipv4`, `dualstack`, `service-defined`, and `ipv6`. :param pulumi.Input[bool] private_dns_only_for_inbound_resolver_endpoint: 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`. """ + VpcEndpointDnsOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_record_ip_type=dns_record_ip_type, + private_dns_only_for_inbound_resolver_endpoint=private_dns_only_for_inbound_resolver_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_record_ip_type: Optional[pulumi.Input[str]] = None, + private_dns_only_for_inbound_resolver_endpoint: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_record_ip_type is None and 'dnsRecordIpType' in kwargs: + dns_record_ip_type = kwargs['dnsRecordIpType'] + if private_dns_only_for_inbound_resolver_endpoint is None and 'privateDnsOnlyForInboundResolverEndpoint' in kwargs: + private_dns_only_for_inbound_resolver_endpoint = kwargs['privateDnsOnlyForInboundResolverEndpoint'] + if dns_record_ip_type is not None: - pulumi.set(__self__, "dns_record_ip_type", dns_record_ip_type) + _setter("dns_record_ip_type", dns_record_ip_type) if private_dns_only_for_inbound_resolver_endpoint is not None: - pulumi.set(__self__, "private_dns_only_for_inbound_resolver_endpoint", private_dns_only_for_inbound_resolver_endpoint) + _setter("private_dns_only_for_inbound_resolver_endpoint", private_dns_only_for_inbound_resolver_endpoint) @property @pulumi.getter(name="dnsRecordIpType") @@ -15153,14 +20079,31 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Endpoint service verification type, for example `TXT`. :param pulumi.Input[str] value: Value the service provider adds to the private DNS name domain record before verification. """ + VpcEndpointServicePrivateDnsNameConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + state=state, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -15218,7 +20161,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] region_name: The name of the Region you want to add to the IPAM. """ - pulumi.set(__self__, "region_name", region_name) + VpcIpamOperatingRegionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + region_name=region_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + + _setter("region_name", region_name) @property @pulumi.getter(name="regionName") @@ -15242,10 +20200,23 @@ def __init__(__self__, *, :param pulumi.Input[str] message: The plain-text authorization message for the prefix and account. :param pulumi.Input[str] signature: The signed authorization message for the prefix and account. """ + VpcIpamPoolCidrCidrAuthorizationContextArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + message=message, + signature=signature, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message: Optional[pulumi.Input[str]] = None, + signature: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) if signature is not None: - pulumi.set(__self__, "signature", signature) + _setter("signature", signature) @property @pulumi.getter @@ -15279,7 +20250,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] region_name: The name of the Region you want to add to the IPAM. """ - pulumi.set(__self__, "region_name", region_name) + VpcIpamResourceDiscoveryOperatingRegionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + region_name=region_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + + _setter("region_name", region_name) @property @pulumi.getter(name="regionName") @@ -15302,8 +20288,21 @@ def __init__(__self__, *, :param pulumi.Input[bool] allow_remote_vpc_dns_resolution: Allow a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. """ + VpcPeeringConnectionAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -15327,8 +20326,21 @@ def __init__(__self__, *, :param pulumi.Input[bool] allow_remote_vpc_dns_resolution: Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC. """ + VpcPeeringConnectionAccepterAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -15352,8 +20364,21 @@ def __init__(__self__, *, :param pulumi.Input[bool] allow_remote_vpc_dns_resolution: Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC. """ + VpcPeeringConnectionAccepterRequesterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -15377,8 +20402,21 @@ def __init__(__self__, *, :param pulumi.Input[bool] allow_remote_vpc_dns_resolution: Allow a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. """ + VpcPeeringConnectionRequesterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -15405,12 +20443,29 @@ def __init__(__self__, *, :param pulumi.Input[str] source: Indicates how the routes were provided. :param pulumi.Input[str] state: The current state of the static route. """ + VpnConnectionRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr_block=destination_cidr_block, + source=source, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr_block: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_cidr_block is not None: - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) + _setter("destination_cidr_block", destination_cidr_block) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="destinationCidrBlock") @@ -15456,8 +20511,21 @@ def __init__(__self__, *, """ :param pulumi.Input['VpnConnectionTunnel1LogOptionsCloudwatchLogOptionsArgs'] cloudwatch_log_options: Options for sending VPN tunnel logs to CloudWatch. See CloudWatch Log Options below for more details. """ + VpnConnectionTunnel1LogOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_options=cloudwatch_log_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_options: Optional[pulumi.Input['VpnConnectionTunnel1LogOptionsCloudwatchLogOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_options is None and 'cloudwatchLogOptions' in kwargs: + cloudwatch_log_options = kwargs['cloudwatchLogOptions'] + if cloudwatch_log_options is not None: - pulumi.set(__self__, "cloudwatch_log_options", cloudwatch_log_options) + _setter("cloudwatch_log_options", cloudwatch_log_options) @property @pulumi.getter(name="cloudwatchLogOptions") @@ -15483,12 +20551,33 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_arn: The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to. :param pulumi.Input[str] log_output_format: Set log format. Default format is json. Possible values are: `json` and `text`. The default is `json`. """ + VpnConnectionTunnel1LogOptionsCloudwatchLogOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_enabled=log_enabled, + log_group_arn=log_group_arn, + log_output_format=log_output_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_enabled: Optional[pulumi.Input[bool]] = None, + log_group_arn: Optional[pulumi.Input[str]] = None, + log_output_format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_enabled is None and 'logEnabled' in kwargs: + log_enabled = kwargs['logEnabled'] + if log_group_arn is None and 'logGroupArn' in kwargs: + log_group_arn = kwargs['logGroupArn'] + if log_output_format is None and 'logOutputFormat' in kwargs: + log_output_format = kwargs['logOutputFormat'] + if log_enabled is not None: - pulumi.set(__self__, "log_enabled", log_enabled) + _setter("log_enabled", log_enabled) if log_group_arn is not None: - pulumi.set(__self__, "log_group_arn", log_group_arn) + _setter("log_group_arn", log_group_arn) if log_output_format is not None: - pulumi.set(__self__, "log_output_format", log_output_format) + _setter("log_output_format", log_output_format) @property @pulumi.getter(name="logEnabled") @@ -15534,8 +20623,21 @@ def __init__(__self__, *, """ :param pulumi.Input['VpnConnectionTunnel2LogOptionsCloudwatchLogOptionsArgs'] cloudwatch_log_options: Options for sending VPN tunnel logs to CloudWatch. See CloudWatch Log Options below for more details. """ + VpnConnectionTunnel2LogOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_options=cloudwatch_log_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_options: Optional[pulumi.Input['VpnConnectionTunnel2LogOptionsCloudwatchLogOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_options is None and 'cloudwatchLogOptions' in kwargs: + cloudwatch_log_options = kwargs['cloudwatchLogOptions'] + if cloudwatch_log_options is not None: - pulumi.set(__self__, "cloudwatch_log_options", cloudwatch_log_options) + _setter("cloudwatch_log_options", cloudwatch_log_options) @property @pulumi.getter(name="cloudwatchLogOptions") @@ -15561,12 +20663,33 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_arn: The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to. :param pulumi.Input[str] log_output_format: Set log format. Default format is json. Possible values are: `json` and `text`. The default is `json`. """ + VpnConnectionTunnel2LogOptionsCloudwatchLogOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_enabled=log_enabled, + log_group_arn=log_group_arn, + log_output_format=log_output_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_enabled: Optional[pulumi.Input[bool]] = None, + log_group_arn: Optional[pulumi.Input[str]] = None, + log_output_format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_enabled is None and 'logEnabled' in kwargs: + log_enabled = kwargs['logEnabled'] + if log_group_arn is None and 'logGroupArn' in kwargs: + log_group_arn = kwargs['logGroupArn'] + if log_output_format is None and 'logOutputFormat' in kwargs: + log_output_format = kwargs['logOutputFormat'] + if log_enabled is not None: - pulumi.set(__self__, "log_enabled", log_enabled) + _setter("log_enabled", log_enabled) if log_group_arn is not None: - pulumi.set(__self__, "log_group_arn", log_group_arn) + _setter("log_group_arn", log_group_arn) if log_output_format is not None: - pulumi.set(__self__, "log_output_format", log_output_format) + _setter("log_output_format", log_output_format) @property @pulumi.getter(name="logEnabled") @@ -15622,18 +20745,49 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The status of the VPN tunnel. :param pulumi.Input[str] status_message: If an error occurs, a description of the error. """ + VpnConnectionVgwTelemetryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accepted_route_count=accepted_route_count, + certificate_arn=certificate_arn, + last_status_change=last_status_change, + outside_ip_address=outside_ip_address, + status=status, + status_message=status_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accepted_route_count: Optional[pulumi.Input[int]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + last_status_change: Optional[pulumi.Input[str]] = None, + outside_ip_address: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + status_message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accepted_route_count is None and 'acceptedRouteCount' in kwargs: + accepted_route_count = kwargs['acceptedRouteCount'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if last_status_change is None and 'lastStatusChange' in kwargs: + last_status_change = kwargs['lastStatusChange'] + if outside_ip_address is None and 'outsideIpAddress' in kwargs: + outside_ip_address = kwargs['outsideIpAddress'] + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + if accepted_route_count is not None: - pulumi.set(__self__, "accepted_route_count", accepted_route_count) + _setter("accepted_route_count", accepted_route_count) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if last_status_change is not None: - pulumi.set(__self__, "last_status_change", last_status_change) + _setter("last_status_change", last_status_change) if outside_ip_address is not None: - pulumi.set(__self__, "outside_ip_address", outside_ip_address) + _setter("outside_ip_address", outside_ip_address) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_message is not None: - pulumi.set(__self__, "status_message", status_message) + _setter("status_message", status_message) @property @pulumi.getter(name="acceptedRouteCount") @@ -15716,8 +20870,25 @@ def __init__(__self__, *, """ :param str name: Name of the AMI that was provided during image creation. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAmiFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15746,8 +20917,25 @@ class GetAmiIdsFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAmiIdsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15779,8 +20967,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A COIP Pool will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetCoipPoolFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15820,8 +21025,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A COIP Pool will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetCoipPoolsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15855,8 +21077,25 @@ class GetCustomerGatewayFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetCustomerGatewayFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15886,8 +21125,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeHosts.html). :param Sequence[str] values: Set of values that are accepted for the given field. A host will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetDedicatedHostFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15924,8 +21180,25 @@ def __init__(__self__, *, [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAddresses.html). :param Sequence[str] values: Set of values that are accepted for the given field. An Elastic IP will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetEipsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15958,8 +21231,25 @@ class GetElasticIpFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetElasticIpFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15985,8 +21275,25 @@ class GetInstanceFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstanceFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16016,8 +21323,25 @@ def __init__(__self__, *, :param str name: Name of the filter. The `location` filter depends on the top-level `location_type` argument and if not specified, defaults to the current region. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstanceTypeOfferingFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16053,8 +21377,25 @@ def __init__(__self__, *, :param str name: Name of the filter. The `location` filter depends on the top-level `location_type` argument and if not specified, defaults to the current region. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstanceTypeOfferingsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16090,8 +21431,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstanceTypesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16123,8 +21481,25 @@ class GetInstancesFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstancesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16156,8 +21531,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. An Internet Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInternetGatewayFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16195,8 +21587,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeKeyPairs API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeKeyPairs.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetKeyPairFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16232,8 +21641,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeLaunchTemplates API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLaunchTemplateFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16271,8 +21697,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Local Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16312,8 +21755,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A local gateway route table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayRouteTableFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16353,8 +21813,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Local Gateway Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayRouteTablesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16392,8 +21869,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayVirtualInterfaceFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16429,8 +21923,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayVirtualInterfaceGroupFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16466,8 +21977,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayVirtualInterfaceGroupsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16505,8 +22033,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Local Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewaysFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16544,8 +22089,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the EC2 [DescribeManagedPrefixLists](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeManagedPrefixLists.html) API Reference. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetManagedPrefixListFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16583,8 +22145,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A managed prefix list will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetManagedPrefixListsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16624,8 +22203,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. An Nat Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNatGatewayFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16665,8 +22261,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Nat Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNatGatewaysFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16706,8 +22319,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkAclsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16745,8 +22375,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkInsightsAnalysisFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16782,8 +22429,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsPaths`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsPaths.html) API Reference. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkInsightsPathFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16815,8 +22479,25 @@ class GetNetworkInterfaceFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkInterfaceFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16847,8 +22528,25 @@ def __init__(__self__, *, [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html). :param Sequence[str] values: Set of values that are accepted for the given field. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkInterfacesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16885,8 +22583,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribePrefixLists API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePrefixLists.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetPrefixListFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16922,8 +22637,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePublicIpv4Pools.html). :param Sequence[str] values: Set of values that are accepted for the given field. Pool IDs will be selected if any one of the given values match. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetPublicIpv4PoolsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16959,8 +22691,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRouteTables.html). :param Sequence[str] values: Set of values that are accepted for the given field. A Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTableFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16998,8 +22747,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTablesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17039,8 +22805,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Security Group will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecurityGroupFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17074,8 +22857,25 @@ class GetSecurityGroupsFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecurityGroupsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17105,8 +22905,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSpotPriceFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17142,8 +22959,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html). :param Sequence[str] values: Set of values that are accepted for the given field. A subnet will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSubnetFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17192,8 +23026,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. Subnet IDs will be selected if any one of the given values match. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSubnetsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17244,8 +23095,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Transit Gateway Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetTransitGatewayRouteTablesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17283,8 +23151,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter. :param Sequence[str] values: Set of values for filtering. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcDhcpOptionsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17322,8 +23207,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC Endpoint will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcEndpointFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17361,8 +23263,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeVpcEndpointServices API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcEndpointServices.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcEndpointServiceFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17400,8 +23319,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17435,8 +23371,25 @@ class GetVpcIamPoolCidrsFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIamPoolCidrsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17466,8 +23419,25 @@ def __init__(__self__, *, :param str name: The name of the filter. Filter names are case-sensitive. :param Sequence[str] values: The filter values. Filter values are case-sensitive. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIamPoolFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17503,8 +23473,25 @@ def __init__(__self__, *, :param str name: The name of the filter. Filter names are case-sensitive. :param Sequence[str] values: The filter values. Filter values are case-sensitive. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIamPoolsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17536,8 +23523,25 @@ class GetVpcIpamPoolCidrsFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIpamPoolCidrsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17567,8 +23571,25 @@ def __init__(__self__, *, :param str name: The name of the filter. Filter names are case-sensitive. :param Sequence[str] values: The filter values. Filter values are case-sensitive. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIpamPoolFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17604,8 +23625,25 @@ def __init__(__self__, *, :param str name: The name of the filter. Filter names are case-sensitive. :param Sequence[str] values: The filter values. Filter values are case-sensitive. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIpamPoolsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17643,8 +23681,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC Peering Connection will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcPeeringConnectionFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17684,8 +23739,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC Peering Connection will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcPeeringConnectionsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17725,8 +23797,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17766,8 +23855,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPN Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpnGatewayFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ec2/ami.py b/sdk/python/pulumi_aws/ec2/ami.py index 3a7295df228..ee7434950e4 100644 --- a/sdk/python/pulumi_aws/ec2/ami.py +++ b/sdk/python/pulumi_aws/ec2/ami.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -61,40 +61,109 @@ def __init__(__self__, *, will use. Can be either "paravirtual" (the default) or "hvm". The choice of virtualization type changes the set of further arguments that are required, as described below. """ + AmiArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + architecture=architecture, + boot_mode=boot_mode, + deprecation_time=deprecation_time, + description=description, + ebs_block_devices=ebs_block_devices, + ena_support=ena_support, + ephemeral_block_devices=ephemeral_block_devices, + image_location=image_location, + imds_support=imds_support, + kernel_id=kernel_id, + name=name, + ramdisk_id=ramdisk_id, + root_device_name=root_device_name, + sriov_net_support=sriov_net_support, + tags=tags, + tpm_support=tpm_support, + virtualization_type=virtualization_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + architecture: Optional[pulumi.Input[str]] = None, + boot_mode: Optional[pulumi.Input[str]] = None, + deprecation_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiEbsBlockDeviceArgs']]]] = None, + ena_support: Optional[pulumi.Input[bool]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiEphemeralBlockDeviceArgs']]]] = None, + image_location: Optional[pulumi.Input[str]] = None, + imds_support: Optional[pulumi.Input[str]] = None, + kernel_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + ramdisk_id: Optional[pulumi.Input[str]] = None, + root_device_name: Optional[pulumi.Input[str]] = None, + sriov_net_support: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tpm_support: Optional[pulumi.Input[str]] = None, + virtualization_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if boot_mode is None and 'bootMode' in kwargs: + boot_mode = kwargs['bootMode'] + if deprecation_time is None and 'deprecationTime' in kwargs: + deprecation_time = kwargs['deprecationTime'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ena_support is None and 'enaSupport' in kwargs: + ena_support = kwargs['enaSupport'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if image_location is None and 'imageLocation' in kwargs: + image_location = kwargs['imageLocation'] + if imds_support is None and 'imdsSupport' in kwargs: + imds_support = kwargs['imdsSupport'] + if kernel_id is None and 'kernelId' in kwargs: + kernel_id = kwargs['kernelId'] + if ramdisk_id is None and 'ramdiskId' in kwargs: + ramdisk_id = kwargs['ramdiskId'] + if root_device_name is None and 'rootDeviceName' in kwargs: + root_device_name = kwargs['rootDeviceName'] + if sriov_net_support is None and 'sriovNetSupport' in kwargs: + sriov_net_support = kwargs['sriovNetSupport'] + if tpm_support is None and 'tpmSupport' in kwargs: + tpm_support = kwargs['tpmSupport'] + if virtualization_type is None and 'virtualizationType' in kwargs: + virtualization_type = kwargs['virtualizationType'] + if architecture is not None: - pulumi.set(__self__, "architecture", architecture) + _setter("architecture", architecture) if boot_mode is not None: - pulumi.set(__self__, "boot_mode", boot_mode) + _setter("boot_mode", boot_mode) if deprecation_time is not None: - pulumi.set(__self__, "deprecation_time", deprecation_time) + _setter("deprecation_time", deprecation_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ena_support is not None: - pulumi.set(__self__, "ena_support", ena_support) + _setter("ena_support", ena_support) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if image_location is not None: - pulumi.set(__self__, "image_location", image_location) + _setter("image_location", image_location) if imds_support is not None: - pulumi.set(__self__, "imds_support", imds_support) + _setter("imds_support", imds_support) if kernel_id is not None: - pulumi.set(__self__, "kernel_id", kernel_id) + _setter("kernel_id", kernel_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if ramdisk_id is not None: - pulumi.set(__self__, "ramdisk_id", ramdisk_id) + _setter("ramdisk_id", ramdisk_id) if root_device_name is not None: - pulumi.set(__self__, "root_device_name", root_device_name) + _setter("root_device_name", root_device_name) if sriov_net_support is not None: - pulumi.set(__self__, "sriov_net_support", sriov_net_support) + _setter("sriov_net_support", sriov_net_support) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tpm_support is not None: - pulumi.set(__self__, "tpm_support", tpm_support) + _setter("tpm_support", tpm_support) if virtualization_type is not None: - pulumi.set(__self__, "virtualization_type", virtualization_type) + _setter("virtualization_type", virtualization_type) @property @pulumi.getter @@ -380,67 +449,176 @@ def __init__(__self__, *, will use. Can be either "paravirtual" (the default) or "hvm". The choice of virtualization type changes the set of further arguments that are required, as described below. """ + _AmiState._configure( + lambda key, value: pulumi.set(__self__, key, value), + architecture=architecture, + arn=arn, + boot_mode=boot_mode, + deprecation_time=deprecation_time, + description=description, + ebs_block_devices=ebs_block_devices, + ena_support=ena_support, + ephemeral_block_devices=ephemeral_block_devices, + hypervisor=hypervisor, + image_location=image_location, + image_owner_alias=image_owner_alias, + image_type=image_type, + imds_support=imds_support, + kernel_id=kernel_id, + manage_ebs_snapshots=manage_ebs_snapshots, + name=name, + owner_id=owner_id, + platform=platform, + platform_details=platform_details, + public=public, + ramdisk_id=ramdisk_id, + root_device_name=root_device_name, + root_snapshot_id=root_snapshot_id, + sriov_net_support=sriov_net_support, + tags=tags, + tags_all=tags_all, + tpm_support=tpm_support, + usage_operation=usage_operation, + virtualization_type=virtualization_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + architecture: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + boot_mode: Optional[pulumi.Input[str]] = None, + deprecation_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiEbsBlockDeviceArgs']]]] = None, + ena_support: Optional[pulumi.Input[bool]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiEphemeralBlockDeviceArgs']]]] = None, + hypervisor: Optional[pulumi.Input[str]] = None, + image_location: Optional[pulumi.Input[str]] = None, + image_owner_alias: Optional[pulumi.Input[str]] = None, + image_type: Optional[pulumi.Input[str]] = None, + imds_support: Optional[pulumi.Input[str]] = None, + kernel_id: Optional[pulumi.Input[str]] = None, + manage_ebs_snapshots: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + platform_details: Optional[pulumi.Input[str]] = None, + public: Optional[pulumi.Input[bool]] = None, + ramdisk_id: Optional[pulumi.Input[str]] = None, + root_device_name: Optional[pulumi.Input[str]] = None, + root_snapshot_id: Optional[pulumi.Input[str]] = None, + sriov_net_support: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tpm_support: Optional[pulumi.Input[str]] = None, + usage_operation: Optional[pulumi.Input[str]] = None, + virtualization_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if boot_mode is None and 'bootMode' in kwargs: + boot_mode = kwargs['bootMode'] + if deprecation_time is None and 'deprecationTime' in kwargs: + deprecation_time = kwargs['deprecationTime'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ena_support is None and 'enaSupport' in kwargs: + ena_support = kwargs['enaSupport'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if image_location is None and 'imageLocation' in kwargs: + image_location = kwargs['imageLocation'] + if image_owner_alias is None and 'imageOwnerAlias' in kwargs: + image_owner_alias = kwargs['imageOwnerAlias'] + if image_type is None and 'imageType' in kwargs: + image_type = kwargs['imageType'] + if imds_support is None and 'imdsSupport' in kwargs: + imds_support = kwargs['imdsSupport'] + if kernel_id is None and 'kernelId' in kwargs: + kernel_id = kwargs['kernelId'] + if manage_ebs_snapshots is None and 'manageEbsSnapshots' in kwargs: + manage_ebs_snapshots = kwargs['manageEbsSnapshots'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if platform_details is None and 'platformDetails' in kwargs: + platform_details = kwargs['platformDetails'] + if ramdisk_id is None and 'ramdiskId' in kwargs: + ramdisk_id = kwargs['ramdiskId'] + if root_device_name is None and 'rootDeviceName' in kwargs: + root_device_name = kwargs['rootDeviceName'] + if root_snapshot_id is None and 'rootSnapshotId' in kwargs: + root_snapshot_id = kwargs['rootSnapshotId'] + if sriov_net_support is None and 'sriovNetSupport' in kwargs: + sriov_net_support = kwargs['sriovNetSupport'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tpm_support is None and 'tpmSupport' in kwargs: + tpm_support = kwargs['tpmSupport'] + if usage_operation is None and 'usageOperation' in kwargs: + usage_operation = kwargs['usageOperation'] + if virtualization_type is None and 'virtualizationType' in kwargs: + virtualization_type = kwargs['virtualizationType'] + if architecture is not None: - pulumi.set(__self__, "architecture", architecture) + _setter("architecture", architecture) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if boot_mode is not None: - pulumi.set(__self__, "boot_mode", boot_mode) + _setter("boot_mode", boot_mode) if deprecation_time is not None: - pulumi.set(__self__, "deprecation_time", deprecation_time) + _setter("deprecation_time", deprecation_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ena_support is not None: - pulumi.set(__self__, "ena_support", ena_support) + _setter("ena_support", ena_support) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if hypervisor is not None: - pulumi.set(__self__, "hypervisor", hypervisor) + _setter("hypervisor", hypervisor) if image_location is not None: - pulumi.set(__self__, "image_location", image_location) + _setter("image_location", image_location) if image_owner_alias is not None: - pulumi.set(__self__, "image_owner_alias", image_owner_alias) + _setter("image_owner_alias", image_owner_alias) if image_type is not None: - pulumi.set(__self__, "image_type", image_type) + _setter("image_type", image_type) if imds_support is not None: - pulumi.set(__self__, "imds_support", imds_support) + _setter("imds_support", imds_support) if kernel_id is not None: - pulumi.set(__self__, "kernel_id", kernel_id) + _setter("kernel_id", kernel_id) if manage_ebs_snapshots is not None: - pulumi.set(__self__, "manage_ebs_snapshots", manage_ebs_snapshots) + _setter("manage_ebs_snapshots", manage_ebs_snapshots) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if platform_details is not None: - pulumi.set(__self__, "platform_details", platform_details) + _setter("platform_details", platform_details) if public is not None: - pulumi.set(__self__, "public", public) + _setter("public", public) if ramdisk_id is not None: - pulumi.set(__self__, "ramdisk_id", ramdisk_id) + _setter("ramdisk_id", ramdisk_id) if root_device_name is not None: - pulumi.set(__self__, "root_device_name", root_device_name) + _setter("root_device_name", root_device_name) if root_snapshot_id is not None: - pulumi.set(__self__, "root_snapshot_id", root_snapshot_id) + _setter("root_snapshot_id", root_snapshot_id) if sriov_net_support is not None: - pulumi.set(__self__, "sriov_net_support", sriov_net_support) + _setter("sriov_net_support", sriov_net_support) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tpm_support is not None: - pulumi.set(__self__, "tpm_support", tpm_support) + _setter("tpm_support", tpm_support) if usage_operation is not None: - pulumi.set(__self__, "usage_operation", usage_operation) + _setter("usage_operation", usage_operation) if virtualization_type is not None: - pulumi.set(__self__, "virtualization_type", virtualization_type) + _setter("virtualization_type", virtualization_type) @property @pulumi.getter @@ -942,6 +1120,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AmiArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/ami_copy.py b/sdk/python/pulumi_aws/ec2/ami_copy.py index 932ccede9a7..a210d52ffea 100644 --- a/sdk/python/pulumi_aws/ec2/ami_copy.py +++ b/sdk/python/pulumi_aws/ec2/ami_copy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,33 +39,82 @@ def __init__(__self__, *, Only specify this parameter when copying an AMI from an AWS Region to an Outpost. The AMI must be in the Region of the destination Outpost. :param pulumi.Input[Sequence[pulumi.Input['AmiCopyEbsBlockDeviceArgs']]] ebs_block_devices: Nested block describing an EBS block device that should be attached to created instances. The structure of this block is described below. - :param pulumi.Input[bool] encrypted: Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + :param pulumi.Input[bool] encrypted: Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` :param pulumi.Input[Sequence[pulumi.Input['AmiCopyEphemeralBlockDeviceArgs']]] ephemeral_block_devices: Nested block describing an ephemeral block device that should be attached to created instances. The structure of this block is described below. :param pulumi.Input[str] kms_key_id: Full ARN of the KMS Key to use when encrypting the snapshots of an image during a copy operation. If not specified, then the default AWS KMS Key will be used :param pulumi.Input[str] name: Region-unique name for the AMI. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "source_ami_id", source_ami_id) - pulumi.set(__self__, "source_ami_region", source_ami_region) + AmiCopyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_ami_id=source_ami_id, + source_ami_region=source_ami_region, + deprecation_time=deprecation_time, + description=description, + destination_outpost_arn=destination_outpost_arn, + ebs_block_devices=ebs_block_devices, + encrypted=encrypted, + ephemeral_block_devices=ephemeral_block_devices, + kms_key_id=kms_key_id, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_ami_id: Optional[pulumi.Input[str]] = None, + source_ami_region: Optional[pulumi.Input[str]] = None, + deprecation_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + destination_outpost_arn: Optional[pulumi.Input[str]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiCopyEbsBlockDeviceArgs']]]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiCopyEphemeralBlockDeviceArgs']]]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_ami_id is None and 'sourceAmiId' in kwargs: + source_ami_id = kwargs['sourceAmiId'] + if source_ami_id is None: + raise TypeError("Missing 'source_ami_id' argument") + if source_ami_region is None and 'sourceAmiRegion' in kwargs: + source_ami_region = kwargs['sourceAmiRegion'] + if source_ami_region is None: + raise TypeError("Missing 'source_ami_region' argument") + if deprecation_time is None and 'deprecationTime' in kwargs: + deprecation_time = kwargs['deprecationTime'] + if destination_outpost_arn is None and 'destinationOutpostArn' in kwargs: + destination_outpost_arn = kwargs['destinationOutpostArn'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("source_ami_id", source_ami_id) + _setter("source_ami_region", source_ami_region) if deprecation_time is not None: - pulumi.set(__self__, "deprecation_time", deprecation_time) + _setter("deprecation_time", deprecation_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if destination_outpost_arn is not None: - pulumi.set(__self__, "destination_outpost_arn", destination_outpost_arn) + _setter("destination_outpost_arn", destination_outpost_arn) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="sourceAmiId") @@ -147,7 +196,7 @@ def ebs_block_devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[' @pulumi.getter def encrypted(self) -> Optional[pulumi.Input[bool]]: """ - Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` """ return pulumi.get(self, "encrypted") @@ -254,7 +303,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['AmiCopyEbsBlockDeviceArgs']]] ebs_block_devices: Nested block describing an EBS block device that should be attached to created instances. The structure of this block is described below. :param pulumi.Input[bool] ena_support: Whether enhanced networking with ENA is enabled. Defaults to `false`. - :param pulumi.Input[bool] encrypted: Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + :param pulumi.Input[bool] encrypted: Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` :param pulumi.Input[Sequence[pulumi.Input['AmiCopyEphemeralBlockDeviceArgs']]] ephemeral_block_devices: Nested block describing an ephemeral block device that should be attached to created instances. The structure of this block is described below. :param pulumi.Input[str] image_location: Path to an S3 object containing an image manifest, e.g., created @@ -279,77 +328,204 @@ def __init__(__self__, *, will use. Can be either "paravirtual" (the default) or "hvm". The choice of virtualization type changes the set of further arguments that are required, as described below. """ + _AmiCopyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + architecture=architecture, + arn=arn, + boot_mode=boot_mode, + deprecation_time=deprecation_time, + description=description, + destination_outpost_arn=destination_outpost_arn, + ebs_block_devices=ebs_block_devices, + ena_support=ena_support, + encrypted=encrypted, + ephemeral_block_devices=ephemeral_block_devices, + hypervisor=hypervisor, + image_location=image_location, + image_owner_alias=image_owner_alias, + image_type=image_type, + imds_support=imds_support, + kernel_id=kernel_id, + kms_key_id=kms_key_id, + manage_ebs_snapshots=manage_ebs_snapshots, + name=name, + owner_id=owner_id, + platform=platform, + platform_details=platform_details, + public=public, + ramdisk_id=ramdisk_id, + root_device_name=root_device_name, + root_snapshot_id=root_snapshot_id, + source_ami_id=source_ami_id, + source_ami_region=source_ami_region, + sriov_net_support=sriov_net_support, + tags=tags, + tags_all=tags_all, + tpm_support=tpm_support, + usage_operation=usage_operation, + virtualization_type=virtualization_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + architecture: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + boot_mode: Optional[pulumi.Input[str]] = None, + deprecation_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + destination_outpost_arn: Optional[pulumi.Input[str]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiCopyEbsBlockDeviceArgs']]]] = None, + ena_support: Optional[pulumi.Input[bool]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiCopyEphemeralBlockDeviceArgs']]]] = None, + hypervisor: Optional[pulumi.Input[str]] = None, + image_location: Optional[pulumi.Input[str]] = None, + image_owner_alias: Optional[pulumi.Input[str]] = None, + image_type: Optional[pulumi.Input[str]] = None, + imds_support: Optional[pulumi.Input[str]] = None, + kernel_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + manage_ebs_snapshots: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + platform_details: Optional[pulumi.Input[str]] = None, + public: Optional[pulumi.Input[bool]] = None, + ramdisk_id: Optional[pulumi.Input[str]] = None, + root_device_name: Optional[pulumi.Input[str]] = None, + root_snapshot_id: Optional[pulumi.Input[str]] = None, + source_ami_id: Optional[pulumi.Input[str]] = None, + source_ami_region: Optional[pulumi.Input[str]] = None, + sriov_net_support: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tpm_support: Optional[pulumi.Input[str]] = None, + usage_operation: Optional[pulumi.Input[str]] = None, + virtualization_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if boot_mode is None and 'bootMode' in kwargs: + boot_mode = kwargs['bootMode'] + if deprecation_time is None and 'deprecationTime' in kwargs: + deprecation_time = kwargs['deprecationTime'] + if destination_outpost_arn is None and 'destinationOutpostArn' in kwargs: + destination_outpost_arn = kwargs['destinationOutpostArn'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ena_support is None and 'enaSupport' in kwargs: + ena_support = kwargs['enaSupport'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if image_location is None and 'imageLocation' in kwargs: + image_location = kwargs['imageLocation'] + if image_owner_alias is None and 'imageOwnerAlias' in kwargs: + image_owner_alias = kwargs['imageOwnerAlias'] + if image_type is None and 'imageType' in kwargs: + image_type = kwargs['imageType'] + if imds_support is None and 'imdsSupport' in kwargs: + imds_support = kwargs['imdsSupport'] + if kernel_id is None and 'kernelId' in kwargs: + kernel_id = kwargs['kernelId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if manage_ebs_snapshots is None and 'manageEbsSnapshots' in kwargs: + manage_ebs_snapshots = kwargs['manageEbsSnapshots'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if platform_details is None and 'platformDetails' in kwargs: + platform_details = kwargs['platformDetails'] + if ramdisk_id is None and 'ramdiskId' in kwargs: + ramdisk_id = kwargs['ramdiskId'] + if root_device_name is None and 'rootDeviceName' in kwargs: + root_device_name = kwargs['rootDeviceName'] + if root_snapshot_id is None and 'rootSnapshotId' in kwargs: + root_snapshot_id = kwargs['rootSnapshotId'] + if source_ami_id is None and 'sourceAmiId' in kwargs: + source_ami_id = kwargs['sourceAmiId'] + if source_ami_region is None and 'sourceAmiRegion' in kwargs: + source_ami_region = kwargs['sourceAmiRegion'] + if sriov_net_support is None and 'sriovNetSupport' in kwargs: + sriov_net_support = kwargs['sriovNetSupport'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tpm_support is None and 'tpmSupport' in kwargs: + tpm_support = kwargs['tpmSupport'] + if usage_operation is None and 'usageOperation' in kwargs: + usage_operation = kwargs['usageOperation'] + if virtualization_type is None and 'virtualizationType' in kwargs: + virtualization_type = kwargs['virtualizationType'] + if architecture is not None: - pulumi.set(__self__, "architecture", architecture) + _setter("architecture", architecture) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if boot_mode is not None: - pulumi.set(__self__, "boot_mode", boot_mode) + _setter("boot_mode", boot_mode) if deprecation_time is not None: - pulumi.set(__self__, "deprecation_time", deprecation_time) + _setter("deprecation_time", deprecation_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if destination_outpost_arn is not None: - pulumi.set(__self__, "destination_outpost_arn", destination_outpost_arn) + _setter("destination_outpost_arn", destination_outpost_arn) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ena_support is not None: - pulumi.set(__self__, "ena_support", ena_support) + _setter("ena_support", ena_support) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if hypervisor is not None: - pulumi.set(__self__, "hypervisor", hypervisor) + _setter("hypervisor", hypervisor) if image_location is not None: - pulumi.set(__self__, "image_location", image_location) + _setter("image_location", image_location) if image_owner_alias is not None: - pulumi.set(__self__, "image_owner_alias", image_owner_alias) + _setter("image_owner_alias", image_owner_alias) if image_type is not None: - pulumi.set(__self__, "image_type", image_type) + _setter("image_type", image_type) if imds_support is not None: - pulumi.set(__self__, "imds_support", imds_support) + _setter("imds_support", imds_support) if kernel_id is not None: - pulumi.set(__self__, "kernel_id", kernel_id) + _setter("kernel_id", kernel_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if manage_ebs_snapshots is not None: - pulumi.set(__self__, "manage_ebs_snapshots", manage_ebs_snapshots) + _setter("manage_ebs_snapshots", manage_ebs_snapshots) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if platform_details is not None: - pulumi.set(__self__, "platform_details", platform_details) + _setter("platform_details", platform_details) if public is not None: - pulumi.set(__self__, "public", public) + _setter("public", public) if ramdisk_id is not None: - pulumi.set(__self__, "ramdisk_id", ramdisk_id) + _setter("ramdisk_id", ramdisk_id) if root_device_name is not None: - pulumi.set(__self__, "root_device_name", root_device_name) + _setter("root_device_name", root_device_name) if root_snapshot_id is not None: - pulumi.set(__self__, "root_snapshot_id", root_snapshot_id) + _setter("root_snapshot_id", root_snapshot_id) if source_ami_id is not None: - pulumi.set(__self__, "source_ami_id", source_ami_id) + _setter("source_ami_id", source_ami_id) if source_ami_region is not None: - pulumi.set(__self__, "source_ami_region", source_ami_region) + _setter("source_ami_region", source_ami_region) if sriov_net_support is not None: - pulumi.set(__self__, "sriov_net_support", sriov_net_support) + _setter("sriov_net_support", sriov_net_support) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tpm_support is not None: - pulumi.set(__self__, "tpm_support", tpm_support) + _setter("tpm_support", tpm_support) if usage_operation is not None: - pulumi.set(__self__, "usage_operation", usage_operation) + _setter("usage_operation", usage_operation) if virtualization_type is not None: - pulumi.set(__self__, "virtualization_type", virtualization_type) + _setter("virtualization_type", virtualization_type) @property @pulumi.getter @@ -453,7 +629,7 @@ def ena_support(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def encrypted(self) -> Optional[pulumi.Input[bool]]: """ - Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` """ return pulumi.get(self, "encrypted") @@ -794,7 +970,7 @@ def __init__(__self__, Only specify this parameter when copying an AMI from an AWS Region to an Outpost. The AMI must be in the Region of the destination Outpost. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AmiCopyEbsBlockDeviceArgs']]]] ebs_block_devices: Nested block describing an EBS block device that should be attached to created instances. The structure of this block is described below. - :param pulumi.Input[bool] encrypted: Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + :param pulumi.Input[bool] encrypted: Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AmiCopyEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Nested block describing an ephemeral block device that should be attached to created instances. The structure of this block is described below. :param pulumi.Input[str] kms_key_id: Full ARN of the KMS Key to use when encrypting the snapshots of an image during a copy operation. If not specified, then the default AWS KMS Key will be used @@ -849,6 +1025,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AmiCopyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -975,7 +1155,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AmiCopyEbsBlockDeviceArgs']]]] ebs_block_devices: Nested block describing an EBS block device that should be attached to created instances. The structure of this block is described below. :param pulumi.Input[bool] ena_support: Whether enhanced networking with ENA is enabled. Defaults to `false`. - :param pulumi.Input[bool] encrypted: Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + :param pulumi.Input[bool] encrypted: Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AmiCopyEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Nested block describing an ephemeral block device that should be attached to created instances. The structure of this block is described below. :param pulumi.Input[str] image_location: Path to an S3 object containing an image manifest, e.g., created @@ -1110,7 +1290,7 @@ def ena_support(self) -> pulumi.Output[bool]: @pulumi.getter def encrypted(self) -> pulumi.Output[Optional[bool]]: """ - Boolean controlling whether the created EBS volumes will be encrypted. Can't be used with `snapshot_id`. + Whether the destination snapshots of the copied image should be encrypted. Defaults to `false` """ return pulumi.get(self, "encrypted") diff --git a/sdk/python/pulumi_aws/ec2/ami_from_instance.py b/sdk/python/pulumi_aws/ec2/ami_from_instance.py index 1989f4fa018..f138f287ada 100644 --- a/sdk/python/pulumi_aws/ec2/ami_from_instance.py +++ b/sdk/python/pulumi_aws/ec2/ami_from_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -40,21 +40,58 @@ def __init__(__self__, *, guarantees that no filesystem writes will be underway at the time of snapshot. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "source_instance_id", source_instance_id) + AmiFromInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_instance_id=source_instance_id, + deprecation_time=deprecation_time, + description=description, + ebs_block_devices=ebs_block_devices, + ephemeral_block_devices=ephemeral_block_devices, + name=name, + snapshot_without_reboot=snapshot_without_reboot, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_instance_id: Optional[pulumi.Input[str]] = None, + deprecation_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiFromInstanceEbsBlockDeviceArgs']]]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiFromInstanceEphemeralBlockDeviceArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + snapshot_without_reboot: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_instance_id is None and 'sourceInstanceId' in kwargs: + source_instance_id = kwargs['sourceInstanceId'] + if source_instance_id is None: + raise TypeError("Missing 'source_instance_id' argument") + if deprecation_time is None and 'deprecationTime' in kwargs: + deprecation_time = kwargs['deprecationTime'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if snapshot_without_reboot is None and 'snapshotWithoutReboot' in kwargs: + snapshot_without_reboot = kwargs['snapshotWithoutReboot'] + + _setter("source_instance_id", source_instance_id) if deprecation_time is not None: - pulumi.set(__self__, "deprecation_time", deprecation_time) + _setter("deprecation_time", deprecation_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if snapshot_without_reboot is not None: - pulumi.set(__self__, "snapshot_without_reboot", snapshot_without_reboot) + _setter("snapshot_without_reboot", snapshot_without_reboot) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="sourceInstanceId") @@ -226,71 +263,188 @@ def __init__(__self__, *, will use. Can be either "paravirtual" (the default) or "hvm". The choice of virtualization type changes the set of further arguments that are required, as described below. """ + _AmiFromInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + architecture=architecture, + arn=arn, + boot_mode=boot_mode, + deprecation_time=deprecation_time, + description=description, + ebs_block_devices=ebs_block_devices, + ena_support=ena_support, + ephemeral_block_devices=ephemeral_block_devices, + hypervisor=hypervisor, + image_location=image_location, + image_owner_alias=image_owner_alias, + image_type=image_type, + imds_support=imds_support, + kernel_id=kernel_id, + manage_ebs_snapshots=manage_ebs_snapshots, + name=name, + owner_id=owner_id, + platform=platform, + platform_details=platform_details, + public=public, + ramdisk_id=ramdisk_id, + root_device_name=root_device_name, + root_snapshot_id=root_snapshot_id, + snapshot_without_reboot=snapshot_without_reboot, + source_instance_id=source_instance_id, + sriov_net_support=sriov_net_support, + tags=tags, + tags_all=tags_all, + tpm_support=tpm_support, + usage_operation=usage_operation, + virtualization_type=virtualization_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + architecture: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + boot_mode: Optional[pulumi.Input[str]] = None, + deprecation_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiFromInstanceEbsBlockDeviceArgs']]]] = None, + ena_support: Optional[pulumi.Input[bool]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['AmiFromInstanceEphemeralBlockDeviceArgs']]]] = None, + hypervisor: Optional[pulumi.Input[str]] = None, + image_location: Optional[pulumi.Input[str]] = None, + image_owner_alias: Optional[pulumi.Input[str]] = None, + image_type: Optional[pulumi.Input[str]] = None, + imds_support: Optional[pulumi.Input[str]] = None, + kernel_id: Optional[pulumi.Input[str]] = None, + manage_ebs_snapshots: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + platform_details: Optional[pulumi.Input[str]] = None, + public: Optional[pulumi.Input[bool]] = None, + ramdisk_id: Optional[pulumi.Input[str]] = None, + root_device_name: Optional[pulumi.Input[str]] = None, + root_snapshot_id: Optional[pulumi.Input[str]] = None, + snapshot_without_reboot: Optional[pulumi.Input[bool]] = None, + source_instance_id: Optional[pulumi.Input[str]] = None, + sriov_net_support: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tpm_support: Optional[pulumi.Input[str]] = None, + usage_operation: Optional[pulumi.Input[str]] = None, + virtualization_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if boot_mode is None and 'bootMode' in kwargs: + boot_mode = kwargs['bootMode'] + if deprecation_time is None and 'deprecationTime' in kwargs: + deprecation_time = kwargs['deprecationTime'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ena_support is None and 'enaSupport' in kwargs: + ena_support = kwargs['enaSupport'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if image_location is None and 'imageLocation' in kwargs: + image_location = kwargs['imageLocation'] + if image_owner_alias is None and 'imageOwnerAlias' in kwargs: + image_owner_alias = kwargs['imageOwnerAlias'] + if image_type is None and 'imageType' in kwargs: + image_type = kwargs['imageType'] + if imds_support is None and 'imdsSupport' in kwargs: + imds_support = kwargs['imdsSupport'] + if kernel_id is None and 'kernelId' in kwargs: + kernel_id = kwargs['kernelId'] + if manage_ebs_snapshots is None and 'manageEbsSnapshots' in kwargs: + manage_ebs_snapshots = kwargs['manageEbsSnapshots'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if platform_details is None and 'platformDetails' in kwargs: + platform_details = kwargs['platformDetails'] + if ramdisk_id is None and 'ramdiskId' in kwargs: + ramdisk_id = kwargs['ramdiskId'] + if root_device_name is None and 'rootDeviceName' in kwargs: + root_device_name = kwargs['rootDeviceName'] + if root_snapshot_id is None and 'rootSnapshotId' in kwargs: + root_snapshot_id = kwargs['rootSnapshotId'] + if snapshot_without_reboot is None and 'snapshotWithoutReboot' in kwargs: + snapshot_without_reboot = kwargs['snapshotWithoutReboot'] + if source_instance_id is None and 'sourceInstanceId' in kwargs: + source_instance_id = kwargs['sourceInstanceId'] + if sriov_net_support is None and 'sriovNetSupport' in kwargs: + sriov_net_support = kwargs['sriovNetSupport'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tpm_support is None and 'tpmSupport' in kwargs: + tpm_support = kwargs['tpmSupport'] + if usage_operation is None and 'usageOperation' in kwargs: + usage_operation = kwargs['usageOperation'] + if virtualization_type is None and 'virtualizationType' in kwargs: + virtualization_type = kwargs['virtualizationType'] + if architecture is not None: - pulumi.set(__self__, "architecture", architecture) + _setter("architecture", architecture) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if boot_mode is not None: - pulumi.set(__self__, "boot_mode", boot_mode) + _setter("boot_mode", boot_mode) if deprecation_time is not None: - pulumi.set(__self__, "deprecation_time", deprecation_time) + _setter("deprecation_time", deprecation_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ena_support is not None: - pulumi.set(__self__, "ena_support", ena_support) + _setter("ena_support", ena_support) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if hypervisor is not None: - pulumi.set(__self__, "hypervisor", hypervisor) + _setter("hypervisor", hypervisor) if image_location is not None: - pulumi.set(__self__, "image_location", image_location) + _setter("image_location", image_location) if image_owner_alias is not None: - pulumi.set(__self__, "image_owner_alias", image_owner_alias) + _setter("image_owner_alias", image_owner_alias) if image_type is not None: - pulumi.set(__self__, "image_type", image_type) + _setter("image_type", image_type) if imds_support is not None: - pulumi.set(__self__, "imds_support", imds_support) + _setter("imds_support", imds_support) if kernel_id is not None: - pulumi.set(__self__, "kernel_id", kernel_id) + _setter("kernel_id", kernel_id) if manage_ebs_snapshots is not None: - pulumi.set(__self__, "manage_ebs_snapshots", manage_ebs_snapshots) + _setter("manage_ebs_snapshots", manage_ebs_snapshots) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if platform_details is not None: - pulumi.set(__self__, "platform_details", platform_details) + _setter("platform_details", platform_details) if public is not None: - pulumi.set(__self__, "public", public) + _setter("public", public) if ramdisk_id is not None: - pulumi.set(__self__, "ramdisk_id", ramdisk_id) + _setter("ramdisk_id", ramdisk_id) if root_device_name is not None: - pulumi.set(__self__, "root_device_name", root_device_name) + _setter("root_device_name", root_device_name) if root_snapshot_id is not None: - pulumi.set(__self__, "root_snapshot_id", root_snapshot_id) + _setter("root_snapshot_id", root_snapshot_id) if snapshot_without_reboot is not None: - pulumi.set(__self__, "snapshot_without_reboot", snapshot_without_reboot) + _setter("snapshot_without_reboot", snapshot_without_reboot) if source_instance_id is not None: - pulumi.set(__self__, "source_instance_id", source_instance_id) + _setter("source_instance_id", source_instance_id) if sriov_net_support is not None: - pulumi.set(__self__, "sriov_net_support", sriov_net_support) + _setter("sriov_net_support", sriov_net_support) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tpm_support is not None: - pulumi.set(__self__, "tpm_support", tpm_support) + _setter("tpm_support", tpm_support) if usage_operation is not None: - pulumi.set(__self__, "usage_operation", usage_operation) + _setter("usage_operation", usage_operation) if virtualization_type is not None: - pulumi.set(__self__, "virtualization_type", virtualization_type) + _setter("virtualization_type", virtualization_type) @property @pulumi.getter @@ -748,6 +902,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AmiFromInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/ami_launch_permission.py b/sdk/python/pulumi_aws/ec2/ami_launch_permission.py index 720f99fe8bf..70eff5e3181 100644 --- a/sdk/python/pulumi_aws/ec2/ami_launch_permission.py +++ b/sdk/python/pulumi_aws/ec2/ami_launch_permission.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AmiLaunchPermissionArgs', 'AmiLaunchPermission'] @@ -27,15 +27,44 @@ def __init__(__self__, *, :param pulumi.Input[str] organization_arn: ARN of an organization for the launch permission. :param pulumi.Input[str] organizational_unit_arn: ARN of an organizational unit for the launch permission. """ - pulumi.set(__self__, "image_id", image_id) + AmiLaunchPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_id=image_id, + account_id=account_id, + group=group, + organization_arn=organization_arn, + organizational_unit_arn=organizational_unit_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_id: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + group: Optional[pulumi.Input[str]] = None, + organization_arn: Optional[pulumi.Input[str]] = None, + organizational_unit_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if image_id is None: + raise TypeError("Missing 'image_id' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if organization_arn is None and 'organizationArn' in kwargs: + organization_arn = kwargs['organizationArn'] + if organizational_unit_arn is None and 'organizationalUnitArn' in kwargs: + organizational_unit_arn = kwargs['organizationalUnitArn'] + + _setter("image_id", image_id) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if organization_arn is not None: - pulumi.set(__self__, "organization_arn", organization_arn) + _setter("organization_arn", organization_arn) if organizational_unit_arn is not None: - pulumi.set(__self__, "organizational_unit_arn", organizational_unit_arn) + _setter("organizational_unit_arn", organizational_unit_arn) @property @pulumi.getter(name="imageId") @@ -114,16 +143,43 @@ def __init__(__self__, *, :param pulumi.Input[str] organization_arn: ARN of an organization for the launch permission. :param pulumi.Input[str] organizational_unit_arn: ARN of an organizational unit for the launch permission. """ + _AmiLaunchPermissionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + group=group, + image_id=image_id, + organization_arn=organization_arn, + organizational_unit_arn=organizational_unit_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + group: Optional[pulumi.Input[str]] = None, + image_id: Optional[pulumi.Input[str]] = None, + organization_arn: Optional[pulumi.Input[str]] = None, + organizational_unit_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if organization_arn is None and 'organizationArn' in kwargs: + organization_arn = kwargs['organizationArn'] + if organizational_unit_arn is None and 'organizationalUnitArn' in kwargs: + organizational_unit_arn = kwargs['organizationalUnitArn'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if image_id is not None: - pulumi.set(__self__, "image_id", image_id) + _setter("image_id", image_id) if organization_arn is not None: - pulumi.set(__self__, "organization_arn", organization_arn) + _setter("organization_arn", organization_arn) if organizational_unit_arn is not None: - pulumi.set(__self__, "organizational_unit_arn", organizational_unit_arn) + _setter("organizational_unit_arn", organizational_unit_arn) @property @pulumi.getter(name="accountId") @@ -309,6 +365,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AmiLaunchPermissionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/availability_zone_group.py b/sdk/python/pulumi_aws/ec2/availability_zone_group.py index 1953c278743..d0c2845f388 100644 --- a/sdk/python/pulumi_aws/ec2/availability_zone_group.py +++ b/sdk/python/pulumi_aws/ec2/availability_zone_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AvailabilityZoneGroupArgs', 'AvailabilityZoneGroup'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] group_name: Name of the Availability Zone Group. :param pulumi.Input[str] opt_in_status: Indicates whether to enable or disable Availability Zone Group. Valid values: `opted-in` or `not-opted-in`. """ - pulumi.set(__self__, "group_name", group_name) - pulumi.set(__self__, "opt_in_status", opt_in_status) + AvailabilityZoneGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + opt_in_status=opt_in_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[pulumi.Input[str]] = None, + opt_in_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + if opt_in_status is None and 'optInStatus' in kwargs: + opt_in_status = kwargs['optInStatus'] + if opt_in_status is None: + raise TypeError("Missing 'opt_in_status' argument") + + _setter("group_name", group_name) + _setter("opt_in_status", opt_in_status) @property @pulumi.getter(name="groupName") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] group_name: Name of the Availability Zone Group. :param pulumi.Input[str] opt_in_status: Indicates whether to enable or disable Availability Zone Group. Valid values: `opted-in` or `not-opted-in`. """ + _AvailabilityZoneGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + opt_in_status=opt_in_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[pulumi.Input[str]] = None, + opt_in_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if opt_in_status is None and 'optInStatus' in kwargs: + opt_in_status = kwargs['optInStatus'] + if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if opt_in_status is not None: - pulumi.set(__self__, "opt_in_status", opt_in_status) + _setter("opt_in_status", opt_in_status) @property @pulumi.getter(name="groupName") @@ -166,6 +204,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AvailabilityZoneGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/capacity_reservation.py b/sdk/python/pulumi_aws/ec2/capacity_reservation.py index 50341b7dc48..7092d349763 100644 --- a/sdk/python/pulumi_aws/ec2/capacity_reservation.py +++ b/sdk/python/pulumi_aws/ec2/capacity_reservation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -44,28 +44,93 @@ def __init__(__self__, *, :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[Union[str, 'Tenancy']] tenancy: Indicates the tenancy of the Capacity Reservation. Specify either `default` or `dedicated`. """ - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "instance_count", instance_count) - pulumi.set(__self__, "instance_platform", instance_platform) - pulumi.set(__self__, "instance_type", instance_type) + CapacityReservationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + instance_count=instance_count, + instance_platform=instance_platform, + instance_type=instance_type, + ebs_optimized=ebs_optimized, + end_date=end_date, + end_date_type=end_date_type, + ephemeral_storage=ephemeral_storage, + instance_match_criteria=instance_match_criteria, + outpost_arn=outpost_arn, + placement_group_arn=placement_group_arn, + tags=tags, + tenancy=tenancy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + instance_platform: Optional[pulumi.Input[Union[str, 'InstancePlatform']]] = None, + instance_type: Optional[pulumi.Input[Union[str, 'InstanceType']]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + end_date: Optional[pulumi.Input[str]] = None, + end_date_type: Optional[pulumi.Input[str]] = None, + ephemeral_storage: Optional[pulumi.Input[bool]] = None, + instance_match_criteria: Optional[pulumi.Input[str]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + placement_group_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tenancy: Optional[pulumi.Input[Union[str, 'Tenancy']]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_count is None: + raise TypeError("Missing 'instance_count' argument") + if instance_platform is None and 'instancePlatform' in kwargs: + instance_platform = kwargs['instancePlatform'] + if instance_platform is None: + raise TypeError("Missing 'instance_platform' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if end_date is None and 'endDate' in kwargs: + end_date = kwargs['endDate'] + if end_date_type is None and 'endDateType' in kwargs: + end_date_type = kwargs['endDateType'] + if ephemeral_storage is None and 'ephemeralStorage' in kwargs: + ephemeral_storage = kwargs['ephemeralStorage'] + if instance_match_criteria is None and 'instanceMatchCriteria' in kwargs: + instance_match_criteria = kwargs['instanceMatchCriteria'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if placement_group_arn is None and 'placementGroupArn' in kwargs: + placement_group_arn = kwargs['placementGroupArn'] + + _setter("availability_zone", availability_zone) + _setter("instance_count", instance_count) + _setter("instance_platform", instance_platform) + _setter("instance_type", instance_type) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if end_date is not None: - pulumi.set(__self__, "end_date", end_date) + _setter("end_date", end_date) if end_date_type is not None: - pulumi.set(__self__, "end_date_type", end_date_type) + _setter("end_date_type", end_date_type) if ephemeral_storage is not None: - pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) + _setter("ephemeral_storage", ephemeral_storage) if instance_match_criteria is not None: - pulumi.set(__self__, "instance_match_criteria", instance_match_criteria) + _setter("instance_match_criteria", instance_match_criteria) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if placement_group_arn is not None: - pulumi.set(__self__, "placement_group_arn", placement_group_arn) + _setter("placement_group_arn", placement_group_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) @property @pulumi.getter(name="availabilityZone") @@ -262,41 +327,108 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block :param pulumi.Input[Union[str, 'Tenancy']] tenancy: Indicates the tenancy of the Capacity Reservation. Specify either `default` or `dedicated`. """ + _CapacityReservationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zone=availability_zone, + ebs_optimized=ebs_optimized, + end_date=end_date, + end_date_type=end_date_type, + ephemeral_storage=ephemeral_storage, + instance_count=instance_count, + instance_match_criteria=instance_match_criteria, + instance_platform=instance_platform, + instance_type=instance_type, + outpost_arn=outpost_arn, + owner_id=owner_id, + placement_group_arn=placement_group_arn, + tags=tags, + tags_all=tags_all, + tenancy=tenancy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + end_date: Optional[pulumi.Input[str]] = None, + end_date_type: Optional[pulumi.Input[str]] = None, + ephemeral_storage: Optional[pulumi.Input[bool]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + instance_match_criteria: Optional[pulumi.Input[str]] = None, + instance_platform: Optional[pulumi.Input[Union[str, 'InstancePlatform']]] = None, + instance_type: Optional[pulumi.Input[Union[str, 'InstanceType']]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + placement_group_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tenancy: Optional[pulumi.Input[Union[str, 'Tenancy']]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if end_date is None and 'endDate' in kwargs: + end_date = kwargs['endDate'] + if end_date_type is None and 'endDateType' in kwargs: + end_date_type = kwargs['endDateType'] + if ephemeral_storage is None and 'ephemeralStorage' in kwargs: + ephemeral_storage = kwargs['ephemeralStorage'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_match_criteria is None and 'instanceMatchCriteria' in kwargs: + instance_match_criteria = kwargs['instanceMatchCriteria'] + if instance_platform is None and 'instancePlatform' in kwargs: + instance_platform = kwargs['instancePlatform'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if placement_group_arn is None and 'placementGroupArn' in kwargs: + placement_group_arn = kwargs['placementGroupArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if end_date is not None: - pulumi.set(__self__, "end_date", end_date) + _setter("end_date", end_date) if end_date_type is not None: - pulumi.set(__self__, "end_date_type", end_date_type) + _setter("end_date_type", end_date_type) if ephemeral_storage is not None: - pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) + _setter("ephemeral_storage", ephemeral_storage) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if instance_match_criteria is not None: - pulumi.set(__self__, "instance_match_criteria", instance_match_criteria) + _setter("instance_match_criteria", instance_match_criteria) if instance_platform is not None: - pulumi.set(__self__, "instance_platform", instance_platform) + _setter("instance_platform", instance_platform) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if placement_group_arn is not None: - pulumi.set(__self__, "placement_group_arn", placement_group_arn) + _setter("placement_group_arn", placement_group_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) @property @pulumi.getter @@ -593,6 +725,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CapacityReservationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/carrier_gateway.py b/sdk/python/pulumi_aws/ec2/carrier_gateway.py index 9096d10c90b..b4e583d0913 100644 --- a/sdk/python/pulumi_aws/ec2/carrier_gateway.py +++ b/sdk/python/pulumi_aws/ec2/carrier_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CarrierGatewayArgs', 'CarrierGateway'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The ID of the VPC to associate with the carrier gateway. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "vpc_id", vpc_id) + CarrierGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("vpc_id", vpc_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="vpcId") @@ -66,19 +83,44 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The ID of the VPC to associate with the carrier gateway. """ + _CarrierGatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -221,6 +263,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CarrierGatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/customer_gateway.py b/sdk/python/pulumi_aws/ec2/customer_gateway.py index fdb893f8450..551485e8196 100644 --- a/sdk/python/pulumi_aws/ec2/customer_gateway.py +++ b/sdk/python/pulumi_aws/ec2/customer_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CustomerGatewayArgs', 'CustomerGateway'] @@ -30,16 +30,49 @@ def __init__(__self__, *, :param pulumi.Input[str] ip_address: The IPv4 address for the customer gateway device's outside interface. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the gateway. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "bgp_asn", bgp_asn) - pulumi.set(__self__, "type", type) + CustomerGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bgp_asn=bgp_asn, + type=type, + certificate_arn=certificate_arn, + device_name=device_name, + ip_address=ip_address, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bgp_asn: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + device_name: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_asn is None: + raise TypeError("Missing 'bgp_asn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + + _setter("bgp_asn", bgp_asn) + _setter("type", type) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="bgpAsn") @@ -138,25 +171,60 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of customer gateway. The only type AWS supports at this time is "ipsec.1". """ + _CustomerGatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bgp_asn=bgp_asn, + certificate_arn=certificate_arn, + device_name=device_name, + ip_address=ip_address, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + device_name: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -349,6 +417,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomerGatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/dedicated_host.py b/sdk/python/pulumi_aws/ec2/dedicated_host.py index 9063076fe3a..1144939e37d 100644 --- a/sdk/python/pulumi_aws/ec2/dedicated_host.py +++ b/sdk/python/pulumi_aws/ec2/dedicated_host.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DedicatedHostArgs', 'DedicatedHost'] @@ -33,21 +33,62 @@ def __init__(__self__, *, :param pulumi.Input[str] outpost_arn: The Amazon Resource Name (ARN) of the AWS Outpost on which to allocate the Dedicated Host. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "availability_zone", availability_zone) + DedicatedHostArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + asset_id=asset_id, + auto_placement=auto_placement, + host_recovery=host_recovery, + instance_family=instance_family, + instance_type=instance_type, + outpost_arn=outpost_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + asset_id: Optional[pulumi.Input[str]] = None, + auto_placement: Optional[pulumi.Input[str]] = None, + host_recovery: Optional[pulumi.Input[str]] = None, + instance_family: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if asset_id is None and 'assetId' in kwargs: + asset_id = kwargs['assetId'] + if auto_placement is None and 'autoPlacement' in kwargs: + auto_placement = kwargs['autoPlacement'] + if host_recovery is None and 'hostRecovery' in kwargs: + host_recovery = kwargs['hostRecovery'] + if instance_family is None and 'instanceFamily' in kwargs: + instance_family = kwargs['instanceFamily'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + + _setter("availability_zone", availability_zone) if asset_id is not None: - pulumi.set(__self__, "asset_id", asset_id) + _setter("asset_id", asset_id) if auto_placement is not None: - pulumi.set(__self__, "auto_placement", auto_placement) + _setter("auto_placement", auto_placement) if host_recovery is not None: - pulumi.set(__self__, "host_recovery", host_recovery) + _setter("host_recovery", host_recovery) if instance_family is not None: - pulumi.set(__self__, "instance_family", instance_family) + _setter("instance_family", instance_family) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="availabilityZone") @@ -174,31 +215,80 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this 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. """ + _DedicatedHostState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + asset_id=asset_id, + auto_placement=auto_placement, + availability_zone=availability_zone, + host_recovery=host_recovery, + instance_family=instance_family, + instance_type=instance_type, + outpost_arn=outpost_arn, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + asset_id: Optional[pulumi.Input[str]] = None, + auto_placement: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + host_recovery: Optional[pulumi.Input[str]] = None, + instance_family: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if asset_id is None and 'assetId' in kwargs: + asset_id = kwargs['assetId'] + if auto_placement is None and 'autoPlacement' in kwargs: + auto_placement = kwargs['autoPlacement'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if host_recovery is None and 'hostRecovery' in kwargs: + host_recovery = kwargs['hostRecovery'] + if instance_family is None and 'instanceFamily' in kwargs: + instance_family = kwargs['instanceFamily'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if asset_id is not None: - pulumi.set(__self__, "asset_id", asset_id) + _setter("asset_id", asset_id) if auto_placement is not None: - pulumi.set(__self__, "auto_placement", auto_placement) + _setter("auto_placement", auto_placement) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if host_recovery is not None: - pulumi.set(__self__, "host_recovery", host_recovery) + _setter("host_recovery", host_recovery) if instance_family is not None: - pulumi.set(__self__, "instance_family", instance_family) + _setter("instance_family", instance_family) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -429,6 +519,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DedicatedHostArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/default_network_acl.py b/sdk/python/pulumi_aws/ec2/default_network_acl.py index e2e79751d77..b461a05bac6 100644 --- a/sdk/python/pulumi_aws/ec2/default_network_acl.py +++ b/sdk/python/pulumi_aws/ec2/default_network_acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,40 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of Subnet IDs to apply the ACL to. See the notes above on Managing Subnets in the Default Network ACL :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "default_network_acl_id", default_network_acl_id) + DefaultNetworkAclArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_network_acl_id=default_network_acl_id, + egress=egress, + ingress=ingress, + subnet_ids=subnet_ids, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_network_acl_id: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultNetworkAclEgressArgs']]]] = None, + ingress: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultNetworkAclIngressArgs']]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_network_acl_id is None and 'defaultNetworkAclId' in kwargs: + default_network_acl_id = kwargs['defaultNetworkAclId'] + if default_network_acl_id is None: + raise TypeError("Missing 'default_network_acl_id' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + + _setter("default_network_acl_id", default_network_acl_id) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if ingress is not None: - pulumi.set(__self__, "ingress", ingress) + _setter("ingress", ingress) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultNetworkAclId") @@ -130,27 +155,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: ID of the associated VPC """ + _DefaultNetworkAclState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_network_acl_id=default_network_acl_id, + egress=egress, + ingress=ingress, + owner_id=owner_id, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_network_acl_id: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultNetworkAclEgressArgs']]]] = None, + ingress: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultNetworkAclIngressArgs']]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_network_acl_id is None and 'defaultNetworkAclId' in kwargs: + default_network_acl_id = kwargs['defaultNetworkAclId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_network_acl_id is not None: - pulumi.set(__self__, "default_network_acl_id", default_network_acl_id) + _setter("default_network_acl_id", default_network_acl_id) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if ingress is not None: - pulumi.set(__self__, "ingress", ingress) + _setter("ingress", ingress) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -505,6 +567,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DefaultNetworkAclArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/default_route_table.py b/sdk/python/pulumi_aws/ec2/default_route_table.py index 4a840ee4212..0ba1d8d02ac 100644 --- a/sdk/python/pulumi_aws/ec2/default_route_table.py +++ b/sdk/python/pulumi_aws/ec2/default_route_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,36 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DefaultRouteTableRouteArgs']]] routes: Set of objects. Detailed below :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "default_route_table_id", default_route_table_id) + DefaultRouteTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_route_table_id=default_route_table_id, + propagating_vgws=propagating_vgws, + routes=routes, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_route_table_id: Optional[pulumi.Input[str]] = None, + propagating_vgws: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + routes: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultRouteTableRouteArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_route_table_id is None and 'defaultRouteTableId' in kwargs: + default_route_table_id = kwargs['defaultRouteTableId'] + if default_route_table_id is None: + raise TypeError("Missing 'default_route_table_id' argument") + if propagating_vgws is None and 'propagatingVgws' in kwargs: + propagating_vgws = kwargs['propagatingVgws'] + + _setter("default_route_table_id", default_route_table_id) if propagating_vgws is not None: - pulumi.set(__self__, "propagating_vgws", propagating_vgws) + _setter("propagating_vgws", propagating_vgws) if routes is not None: - pulumi.set(__self__, "routes", routes) + _setter("routes", routes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultRouteTableId") @@ -112,25 +135,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: ID of the VPC. """ + _DefaultRouteTableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_route_table_id=default_route_table_id, + owner_id=owner_id, + propagating_vgws=propagating_vgws, + routes=routes, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_route_table_id: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + propagating_vgws: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + routes: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultRouteTableRouteArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_route_table_id is None and 'defaultRouteTableId' in kwargs: + default_route_table_id = kwargs['defaultRouteTableId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if propagating_vgws is None and 'propagatingVgws' in kwargs: + propagating_vgws = kwargs['propagatingVgws'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_route_table_id is not None: - pulumi.set(__self__, "default_route_table_id", default_route_table_id) + _setter("default_route_table_id", default_route_table_id) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if propagating_vgws is not None: - pulumi.set(__self__, "propagating_vgws", propagating_vgws) + _setter("propagating_vgws", propagating_vgws) if routes is not None: - pulumi.set(__self__, "routes", routes) + _setter("routes", routes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -377,6 +435,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DefaultRouteTableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/default_security_group.py b/sdk/python/pulumi_aws/ec2/default_security_group.py index 5f3fcf84195..c86e04f6c3c 100644 --- a/sdk/python/pulumi_aws/ec2/default_security_group.py +++ b/sdk/python/pulumi_aws/ec2/default_security_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -28,16 +28,39 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] vpc_id: VPC ID. **Note that changing the `vpc_id` will _not_ restore any default security group rules that were modified, added, or removed.** It will be left in its current state. """ + DefaultSecurityGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + egress=egress, + ingress=ingress, + revoke_rules_on_delete=revoke_rules_on_delete, + tags=tags, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + egress: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultSecurityGroupEgressArgs']]]] = None, + ingress: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultSecurityGroupIngressArgs']]]] = None, + revoke_rules_on_delete: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if revoke_rules_on_delete is None and 'revokeRulesOnDelete' in kwargs: + revoke_rules_on_delete = kwargs['revokeRulesOnDelete'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if ingress is not None: - pulumi.set(__self__, "ingress", ingress) + _setter("ingress", ingress) if revoke_rules_on_delete is not None: - pulumi.set(__self__, "revoke_rules_on_delete", revoke_rules_on_delete) + _setter("revoke_rules_on_delete", revoke_rules_on_delete) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -123,31 +146,72 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: VPC ID. **Note that changing the `vpc_id` will _not_ restore any default security group rules that were modified, added, or removed.** It will be left in its current state. """ + _DefaultSecurityGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + egress=egress, + ingress=ingress, + name=name, + name_prefix=name_prefix, + owner_id=owner_id, + revoke_rules_on_delete=revoke_rules_on_delete, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultSecurityGroupEgressArgs']]]] = None, + ingress: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultSecurityGroupIngressArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + revoke_rules_on_delete: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if revoke_rules_on_delete is None and 'revokeRulesOnDelete' in kwargs: + revoke_rules_on_delete = kwargs['revokeRulesOnDelete'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if ingress is not None: - pulumi.set(__self__, "ingress", ingress) + _setter("ingress", ingress) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if revoke_rules_on_delete is not None: - pulumi.set(__self__, "revoke_rules_on_delete", revoke_rules_on_delete) + _setter("revoke_rules_on_delete", revoke_rules_on_delete) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -443,6 +507,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DefaultSecurityGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/default_subnet.py b/sdk/python/pulumi_aws/ec2/default_subnet.py index 44af88cee04..d3d5459789e 100644 --- a/sdk/python/pulumi_aws/ec2/default_subnet.py +++ b/sdk/python/pulumi_aws/ec2/default_subnet.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DefaultSubnetArgs', 'DefaultSubnet'] @@ -36,31 +36,92 @@ def __init__(__self__, *, This resource supports the following additional arguments: :param pulumi.Input[bool] force_destroy: Whether destroying the resource deletes the default subnet. Default: `false` """ - pulumi.set(__self__, "availability_zone", availability_zone) + DefaultSubnetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + assign_ipv6_address_on_creation=assign_ipv6_address_on_creation, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + enable_dns64=enable_dns64, + enable_resource_name_dns_a_record_on_launch=enable_resource_name_dns_a_record_on_launch, + enable_resource_name_dns_aaaa_record_on_launch=enable_resource_name_dns_aaaa_record_on_launch, + force_destroy=force_destroy, + ipv6_cidr_block=ipv6_cidr_block, + ipv6_native=ipv6_native, + map_customer_owned_ip_on_launch=map_customer_owned_ip_on_launch, + map_public_ip_on_launch=map_public_ip_on_launch, + private_dns_hostname_type_on_launch=private_dns_hostname_type_on_launch, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + assign_ipv6_address_on_creation: Optional[pulumi.Input[bool]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + enable_dns64: Optional[pulumi.Input[bool]] = None, + enable_resource_name_dns_a_record_on_launch: Optional[pulumi.Input[bool]] = None, + enable_resource_name_dns_aaaa_record_on_launch: Optional[pulumi.Input[bool]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_native: Optional[pulumi.Input[bool]] = None, + map_customer_owned_ip_on_launch: Optional[pulumi.Input[bool]] = None, + map_public_ip_on_launch: Optional[pulumi.Input[bool]] = None, + private_dns_hostname_type_on_launch: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if assign_ipv6_address_on_creation is None and 'assignIpv6AddressOnCreation' in kwargs: + assign_ipv6_address_on_creation = kwargs['assignIpv6AddressOnCreation'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if enable_dns64 is None and 'enableDns64' in kwargs: + enable_dns64 = kwargs['enableDns64'] + if enable_resource_name_dns_a_record_on_launch is None and 'enableResourceNameDnsARecordOnLaunch' in kwargs: + enable_resource_name_dns_a_record_on_launch = kwargs['enableResourceNameDnsARecordOnLaunch'] + if enable_resource_name_dns_aaaa_record_on_launch is None and 'enableResourceNameDnsAaaaRecordOnLaunch' in kwargs: + enable_resource_name_dns_aaaa_record_on_launch = kwargs['enableResourceNameDnsAaaaRecordOnLaunch'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_native is None and 'ipv6Native' in kwargs: + ipv6_native = kwargs['ipv6Native'] + if map_customer_owned_ip_on_launch is None and 'mapCustomerOwnedIpOnLaunch' in kwargs: + map_customer_owned_ip_on_launch = kwargs['mapCustomerOwnedIpOnLaunch'] + if map_public_ip_on_launch is None and 'mapPublicIpOnLaunch' in kwargs: + map_public_ip_on_launch = kwargs['mapPublicIpOnLaunch'] + if private_dns_hostname_type_on_launch is None and 'privateDnsHostnameTypeOnLaunch' in kwargs: + private_dns_hostname_type_on_launch = kwargs['privateDnsHostnameTypeOnLaunch'] + + _setter("availability_zone", availability_zone) if assign_ipv6_address_on_creation is not None: - pulumi.set(__self__, "assign_ipv6_address_on_creation", assign_ipv6_address_on_creation) + _setter("assign_ipv6_address_on_creation", assign_ipv6_address_on_creation) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if enable_dns64 is not None: - pulumi.set(__self__, "enable_dns64", enable_dns64) + _setter("enable_dns64", enable_dns64) if enable_resource_name_dns_a_record_on_launch is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record_on_launch", enable_resource_name_dns_a_record_on_launch) + _setter("enable_resource_name_dns_a_record_on_launch", enable_resource_name_dns_a_record_on_launch) if enable_resource_name_dns_aaaa_record_on_launch is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record_on_launch", enable_resource_name_dns_aaaa_record_on_launch) + _setter("enable_resource_name_dns_aaaa_record_on_launch", enable_resource_name_dns_aaaa_record_on_launch) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_native is not None: - pulumi.set(__self__, "ipv6_native", ipv6_native) + _setter("ipv6_native", ipv6_native) if map_customer_owned_ip_on_launch is not None: - pulumi.set(__self__, "map_customer_owned_ip_on_launch", map_customer_owned_ip_on_launch) + _setter("map_customer_owned_ip_on_launch", map_customer_owned_ip_on_launch) if map_public_ip_on_launch is not None: - pulumi.set(__self__, "map_public_ip_on_launch", map_public_ip_on_launch) + _setter("map_public_ip_on_launch", map_public_ip_on_launch) if private_dns_hostname_type_on_launch is not None: - pulumi.set(__self__, "private_dns_hostname_type_on_launch", private_dns_hostname_type_on_launch) + _setter("private_dns_hostname_type_on_launch", private_dns_hostname_type_on_launch) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="availabilityZone") @@ -228,55 +289,152 @@ def __init__(__self__, *, :param pulumi.Input[bool] force_destroy: Whether destroying the resource deletes the default subnet. Default: `false` :param pulumi.Input[str] vpc_id: The ID of the VPC the subnet is in """ + _DefaultSubnetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + assign_ipv6_address_on_creation=assign_ipv6_address_on_creation, + availability_zone=availability_zone, + availability_zone_id=availability_zone_id, + cidr_block=cidr_block, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + enable_dns64=enable_dns64, + enable_lni_at_device_index=enable_lni_at_device_index, + enable_resource_name_dns_a_record_on_launch=enable_resource_name_dns_a_record_on_launch, + enable_resource_name_dns_aaaa_record_on_launch=enable_resource_name_dns_aaaa_record_on_launch, + existing_default_subnet=existing_default_subnet, + force_destroy=force_destroy, + ipv6_cidr_block=ipv6_cidr_block, + ipv6_cidr_block_association_id=ipv6_cidr_block_association_id, + ipv6_native=ipv6_native, + map_customer_owned_ip_on_launch=map_customer_owned_ip_on_launch, + map_public_ip_on_launch=map_public_ip_on_launch, + outpost_arn=outpost_arn, + owner_id=owner_id, + private_dns_hostname_type_on_launch=private_dns_hostname_type_on_launch, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + assign_ipv6_address_on_creation: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + availability_zone_id: Optional[pulumi.Input[str]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + enable_dns64: Optional[pulumi.Input[bool]] = None, + enable_lni_at_device_index: Optional[pulumi.Input[int]] = None, + enable_resource_name_dns_a_record_on_launch: Optional[pulumi.Input[bool]] = None, + enable_resource_name_dns_aaaa_record_on_launch: Optional[pulumi.Input[bool]] = None, + existing_default_subnet: Optional[pulumi.Input[bool]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block_association_id: Optional[pulumi.Input[str]] = None, + ipv6_native: Optional[pulumi.Input[bool]] = None, + map_customer_owned_ip_on_launch: Optional[pulumi.Input[bool]] = None, + map_public_ip_on_launch: Optional[pulumi.Input[bool]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + private_dns_hostname_type_on_launch: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assign_ipv6_address_on_creation is None and 'assignIpv6AddressOnCreation' in kwargs: + assign_ipv6_address_on_creation = kwargs['assignIpv6AddressOnCreation'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone_id is None and 'availabilityZoneId' in kwargs: + availability_zone_id = kwargs['availabilityZoneId'] + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if enable_dns64 is None and 'enableDns64' in kwargs: + enable_dns64 = kwargs['enableDns64'] + if enable_lni_at_device_index is None and 'enableLniAtDeviceIndex' in kwargs: + enable_lni_at_device_index = kwargs['enableLniAtDeviceIndex'] + if enable_resource_name_dns_a_record_on_launch is None and 'enableResourceNameDnsARecordOnLaunch' in kwargs: + enable_resource_name_dns_a_record_on_launch = kwargs['enableResourceNameDnsARecordOnLaunch'] + if enable_resource_name_dns_aaaa_record_on_launch is None and 'enableResourceNameDnsAaaaRecordOnLaunch' in kwargs: + enable_resource_name_dns_aaaa_record_on_launch = kwargs['enableResourceNameDnsAaaaRecordOnLaunch'] + if existing_default_subnet is None and 'existingDefaultSubnet' in kwargs: + existing_default_subnet = kwargs['existingDefaultSubnet'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_cidr_block_association_id is None and 'ipv6CidrBlockAssociationId' in kwargs: + ipv6_cidr_block_association_id = kwargs['ipv6CidrBlockAssociationId'] + if ipv6_native is None and 'ipv6Native' in kwargs: + ipv6_native = kwargs['ipv6Native'] + if map_customer_owned_ip_on_launch is None and 'mapCustomerOwnedIpOnLaunch' in kwargs: + map_customer_owned_ip_on_launch = kwargs['mapCustomerOwnedIpOnLaunch'] + if map_public_ip_on_launch is None and 'mapPublicIpOnLaunch' in kwargs: + map_public_ip_on_launch = kwargs['mapPublicIpOnLaunch'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if private_dns_hostname_type_on_launch is None and 'privateDnsHostnameTypeOnLaunch' in kwargs: + private_dns_hostname_type_on_launch = kwargs['privateDnsHostnameTypeOnLaunch'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if assign_ipv6_address_on_creation is not None: - pulumi.set(__self__, "assign_ipv6_address_on_creation", assign_ipv6_address_on_creation) + _setter("assign_ipv6_address_on_creation", assign_ipv6_address_on_creation) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if availability_zone_id is not None: - pulumi.set(__self__, "availability_zone_id", availability_zone_id) + _setter("availability_zone_id", availability_zone_id) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if enable_dns64 is not None: - pulumi.set(__self__, "enable_dns64", enable_dns64) + _setter("enable_dns64", enable_dns64) if enable_lni_at_device_index is not None: - pulumi.set(__self__, "enable_lni_at_device_index", enable_lni_at_device_index) + _setter("enable_lni_at_device_index", enable_lni_at_device_index) if enable_resource_name_dns_a_record_on_launch is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record_on_launch", enable_resource_name_dns_a_record_on_launch) + _setter("enable_resource_name_dns_a_record_on_launch", enable_resource_name_dns_a_record_on_launch) if enable_resource_name_dns_aaaa_record_on_launch is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record_on_launch", enable_resource_name_dns_aaaa_record_on_launch) + _setter("enable_resource_name_dns_aaaa_record_on_launch", enable_resource_name_dns_aaaa_record_on_launch) if existing_default_subnet is not None: - pulumi.set(__self__, "existing_default_subnet", existing_default_subnet) + _setter("existing_default_subnet", existing_default_subnet) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_cidr_block_association_id is not None: - pulumi.set(__self__, "ipv6_cidr_block_association_id", ipv6_cidr_block_association_id) + _setter("ipv6_cidr_block_association_id", ipv6_cidr_block_association_id) if ipv6_native is not None: - pulumi.set(__self__, "ipv6_native", ipv6_native) + _setter("ipv6_native", ipv6_native) if map_customer_owned_ip_on_launch is not None: - pulumi.set(__self__, "map_customer_owned_ip_on_launch", map_customer_owned_ip_on_launch) + _setter("map_customer_owned_ip_on_launch", map_customer_owned_ip_on_launch) if map_public_ip_on_launch is not None: - pulumi.set(__self__, "map_public_ip_on_launch", map_public_ip_on_launch) + _setter("map_public_ip_on_launch", map_public_ip_on_launch) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if private_dns_hostname_type_on_launch is not None: - pulumi.set(__self__, "private_dns_hostname_type_on_launch", private_dns_hostname_type_on_launch) + _setter("private_dns_hostname_type_on_launch", private_dns_hostname_type_on_launch) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -614,6 +772,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DefaultSubnetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/default_vpc.py b/sdk/python/pulumi_aws/ec2/default_vpc.py index b046baf132e..d5c9b67f3d1 100644 --- a/sdk/python/pulumi_aws/ec2/default_vpc.py +++ b/sdk/python/pulumi_aws/ec2/default_vpc.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DefaultVpcArgs', 'DefaultVpc'] @@ -28,26 +28,73 @@ def __init__(__self__, *, The set of arguments for constructing a DefaultVpc resource. :param pulumi.Input[bool] force_destroy: Whether destroying the resource deletes the default VPC. Default: `false` """ + DefaultVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + assign_generated_ipv6_cidr_block=assign_generated_ipv6_cidr_block, + enable_dns_hostnames=enable_dns_hostnames, + enable_dns_support=enable_dns_support, + enable_network_address_usage_metrics=enable_network_address_usage_metrics, + force_destroy=force_destroy, + ipv6_cidr_block=ipv6_cidr_block, + ipv6_cidr_block_network_border_group=ipv6_cidr_block_network_border_group, + ipv6_ipam_pool_id=ipv6_ipam_pool_id, + ipv6_netmask_length=ipv6_netmask_length, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assign_generated_ipv6_cidr_block: Optional[pulumi.Input[bool]] = None, + enable_dns_hostnames: Optional[pulumi.Input[bool]] = None, + enable_dns_support: Optional[pulumi.Input[bool]] = None, + enable_network_address_usage_metrics: Optional[pulumi.Input[bool]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block_network_border_group: Optional[pulumi.Input[str]] = None, + ipv6_ipam_pool_id: Optional[pulumi.Input[str]] = None, + ipv6_netmask_length: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assign_generated_ipv6_cidr_block is None and 'assignGeneratedIpv6CidrBlock' in kwargs: + assign_generated_ipv6_cidr_block = kwargs['assignGeneratedIpv6CidrBlock'] + if enable_dns_hostnames is None and 'enableDnsHostnames' in kwargs: + enable_dns_hostnames = kwargs['enableDnsHostnames'] + if enable_dns_support is None and 'enableDnsSupport' in kwargs: + enable_dns_support = kwargs['enableDnsSupport'] + if enable_network_address_usage_metrics is None and 'enableNetworkAddressUsageMetrics' in kwargs: + enable_network_address_usage_metrics = kwargs['enableNetworkAddressUsageMetrics'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_cidr_block_network_border_group is None and 'ipv6CidrBlockNetworkBorderGroup' in kwargs: + ipv6_cidr_block_network_border_group = kwargs['ipv6CidrBlockNetworkBorderGroup'] + if ipv6_ipam_pool_id is None and 'ipv6IpamPoolId' in kwargs: + ipv6_ipam_pool_id = kwargs['ipv6IpamPoolId'] + if ipv6_netmask_length is None and 'ipv6NetmaskLength' in kwargs: + ipv6_netmask_length = kwargs['ipv6NetmaskLength'] + if assign_generated_ipv6_cidr_block is not None: - pulumi.set(__self__, "assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) + _setter("assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) if enable_dns_hostnames is not None: - pulumi.set(__self__, "enable_dns_hostnames", enable_dns_hostnames) + _setter("enable_dns_hostnames", enable_dns_hostnames) if enable_dns_support is not None: - pulumi.set(__self__, "enable_dns_support", enable_dns_support) + _setter("enable_dns_support", enable_dns_support) if enable_network_address_usage_metrics is not None: - pulumi.set(__self__, "enable_network_address_usage_metrics", enable_network_address_usage_metrics) + _setter("enable_network_address_usage_metrics", enable_network_address_usage_metrics) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_cidr_block_network_border_group is not None: - pulumi.set(__self__, "ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) + _setter("ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) if ipv6_ipam_pool_id is not None: - pulumi.set(__self__, "ipv6_ipam_pool_id", ipv6_ipam_pool_id) + _setter("ipv6_ipam_pool_id", ipv6_ipam_pool_id) if ipv6_netmask_length is not None: - pulumi.set(__self__, "ipv6_netmask_length", ipv6_netmask_length) + _setter("ipv6_netmask_length", ipv6_netmask_length) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="assignGeneratedIpv6CidrBlock") @@ -174,53 +221,146 @@ def __init__(__self__, *, :param pulumi.Input[bool] force_destroy: Whether destroying the resource deletes the default VPC. Default: `false` :param pulumi.Input[str] instance_tenancy: The allowed tenancy of instances launched into the VPC """ + _DefaultVpcState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + assign_generated_ipv6_cidr_block=assign_generated_ipv6_cidr_block, + cidr_block=cidr_block, + default_network_acl_id=default_network_acl_id, + default_route_table_id=default_route_table_id, + default_security_group_id=default_security_group_id, + dhcp_options_id=dhcp_options_id, + enable_dns_hostnames=enable_dns_hostnames, + enable_dns_support=enable_dns_support, + enable_network_address_usage_metrics=enable_network_address_usage_metrics, + existing_default_vpc=existing_default_vpc, + force_destroy=force_destroy, + instance_tenancy=instance_tenancy, + ipv6_association_id=ipv6_association_id, + ipv6_cidr_block=ipv6_cidr_block, + ipv6_cidr_block_network_border_group=ipv6_cidr_block_network_border_group, + ipv6_ipam_pool_id=ipv6_ipam_pool_id, + ipv6_netmask_length=ipv6_netmask_length, + main_route_table_id=main_route_table_id, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + assign_generated_ipv6_cidr_block: Optional[pulumi.Input[bool]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + default_network_acl_id: Optional[pulumi.Input[str]] = None, + default_route_table_id: Optional[pulumi.Input[str]] = None, + default_security_group_id: Optional[pulumi.Input[str]] = None, + dhcp_options_id: Optional[pulumi.Input[str]] = None, + enable_dns_hostnames: Optional[pulumi.Input[bool]] = None, + enable_dns_support: Optional[pulumi.Input[bool]] = None, + enable_network_address_usage_metrics: Optional[pulumi.Input[bool]] = None, + existing_default_vpc: Optional[pulumi.Input[bool]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + instance_tenancy: Optional[pulumi.Input[str]] = None, + ipv6_association_id: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block_network_border_group: Optional[pulumi.Input[str]] = None, + ipv6_ipam_pool_id: Optional[pulumi.Input[str]] = None, + ipv6_netmask_length: Optional[pulumi.Input[int]] = None, + main_route_table_id: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assign_generated_ipv6_cidr_block is None and 'assignGeneratedIpv6CidrBlock' in kwargs: + assign_generated_ipv6_cidr_block = kwargs['assignGeneratedIpv6CidrBlock'] + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if default_network_acl_id is None and 'defaultNetworkAclId' in kwargs: + default_network_acl_id = kwargs['defaultNetworkAclId'] + if default_route_table_id is None and 'defaultRouteTableId' in kwargs: + default_route_table_id = kwargs['defaultRouteTableId'] + if default_security_group_id is None and 'defaultSecurityGroupId' in kwargs: + default_security_group_id = kwargs['defaultSecurityGroupId'] + if dhcp_options_id is None and 'dhcpOptionsId' in kwargs: + dhcp_options_id = kwargs['dhcpOptionsId'] + if enable_dns_hostnames is None and 'enableDnsHostnames' in kwargs: + enable_dns_hostnames = kwargs['enableDnsHostnames'] + if enable_dns_support is None and 'enableDnsSupport' in kwargs: + enable_dns_support = kwargs['enableDnsSupport'] + if enable_network_address_usage_metrics is None and 'enableNetworkAddressUsageMetrics' in kwargs: + enable_network_address_usage_metrics = kwargs['enableNetworkAddressUsageMetrics'] + if existing_default_vpc is None and 'existingDefaultVpc' in kwargs: + existing_default_vpc = kwargs['existingDefaultVpc'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if instance_tenancy is None and 'instanceTenancy' in kwargs: + instance_tenancy = kwargs['instanceTenancy'] + if ipv6_association_id is None and 'ipv6AssociationId' in kwargs: + ipv6_association_id = kwargs['ipv6AssociationId'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_cidr_block_network_border_group is None and 'ipv6CidrBlockNetworkBorderGroup' in kwargs: + ipv6_cidr_block_network_border_group = kwargs['ipv6CidrBlockNetworkBorderGroup'] + if ipv6_ipam_pool_id is None and 'ipv6IpamPoolId' in kwargs: + ipv6_ipam_pool_id = kwargs['ipv6IpamPoolId'] + if ipv6_netmask_length is None and 'ipv6NetmaskLength' in kwargs: + ipv6_netmask_length = kwargs['ipv6NetmaskLength'] + if main_route_table_id is None and 'mainRouteTableId' in kwargs: + main_route_table_id = kwargs['mainRouteTableId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if assign_generated_ipv6_cidr_block is not None: - pulumi.set(__self__, "assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) + _setter("assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if default_network_acl_id is not None: - pulumi.set(__self__, "default_network_acl_id", default_network_acl_id) + _setter("default_network_acl_id", default_network_acl_id) if default_route_table_id is not None: - pulumi.set(__self__, "default_route_table_id", default_route_table_id) + _setter("default_route_table_id", default_route_table_id) if default_security_group_id is not None: - pulumi.set(__self__, "default_security_group_id", default_security_group_id) + _setter("default_security_group_id", default_security_group_id) if dhcp_options_id is not None: - pulumi.set(__self__, "dhcp_options_id", dhcp_options_id) + _setter("dhcp_options_id", dhcp_options_id) if enable_dns_hostnames is not None: - pulumi.set(__self__, "enable_dns_hostnames", enable_dns_hostnames) + _setter("enable_dns_hostnames", enable_dns_hostnames) if enable_dns_support is not None: - pulumi.set(__self__, "enable_dns_support", enable_dns_support) + _setter("enable_dns_support", enable_dns_support) if enable_network_address_usage_metrics is not None: - pulumi.set(__self__, "enable_network_address_usage_metrics", enable_network_address_usage_metrics) + _setter("enable_network_address_usage_metrics", enable_network_address_usage_metrics) if existing_default_vpc is not None: - pulumi.set(__self__, "existing_default_vpc", existing_default_vpc) + _setter("existing_default_vpc", existing_default_vpc) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if instance_tenancy is not None: - pulumi.set(__self__, "instance_tenancy", instance_tenancy) + _setter("instance_tenancy", instance_tenancy) if ipv6_association_id is not None: - pulumi.set(__self__, "ipv6_association_id", ipv6_association_id) + _setter("ipv6_association_id", ipv6_association_id) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_cidr_block_network_border_group is not None: - pulumi.set(__self__, "ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) + _setter("ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) if ipv6_ipam_pool_id is not None: - pulumi.set(__self__, "ipv6_ipam_pool_id", ipv6_ipam_pool_id) + _setter("ipv6_ipam_pool_id", ipv6_ipam_pool_id) if ipv6_netmask_length is not None: - pulumi.set(__self__, "ipv6_netmask_length", ipv6_netmask_length) + _setter("ipv6_netmask_length", ipv6_netmask_length) if main_route_table_id is not None: - pulumi.set(__self__, "main_route_table_id", main_route_table_id) + _setter("main_route_table_id", main_route_table_id) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -537,6 +677,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DefaultVpcArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/default_vpc_dhcp_options.py b/sdk/python/pulumi_aws/ec2/default_vpc_dhcp_options.py index 171773092d9..e5b4d3b3865 100644 --- a/sdk/python/pulumi_aws/ec2/default_vpc_dhcp_options.py +++ b/sdk/python/pulumi_aws/ec2/default_vpc_dhcp_options.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DefaultVpcDhcpOptionsArgs', 'DefaultVpcDhcpOptions'] @@ -21,10 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_id: The ID of the AWS account that owns the DHCP options set. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. """ + DefaultVpcDhcpOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner_id=owner_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="ownerId") @@ -71,27 +86,68 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_id: The ID of the AWS account that owns the DHCP options set. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. """ + _DefaultVpcDhcpOptionsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domain_name=domain_name, + domain_name_servers=domain_name_servers, + netbios_name_servers=netbios_name_servers, + netbios_node_type=netbios_node_type, + ntp_servers=ntp_servers, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + domain_name_servers: Optional[pulumi.Input[str]] = None, + netbios_name_servers: Optional[pulumi.Input[str]] = None, + netbios_node_type: Optional[pulumi.Input[str]] = None, + ntp_servers: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name_servers is None and 'domainNameServers' in kwargs: + domain_name_servers = kwargs['domainNameServers'] + if netbios_name_servers is None and 'netbiosNameServers' in kwargs: + netbios_name_servers = kwargs['netbiosNameServers'] + if netbios_node_type is None and 'netbiosNodeType' in kwargs: + netbios_node_type = kwargs['netbiosNodeType'] + if ntp_servers is None and 'ntpServers' in kwargs: + ntp_servers = kwargs['ntpServers'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if domain_name_servers is not None: - pulumi.set(__self__, "domain_name_servers", domain_name_servers) + _setter("domain_name_servers", domain_name_servers) if netbios_name_servers is not None: - pulumi.set(__self__, "netbios_name_servers", netbios_name_servers) + _setter("netbios_name_servers", netbios_name_servers) if netbios_node_type is not None: - pulumi.set(__self__, "netbios_node_type", netbios_node_type) + _setter("netbios_node_type", netbios_node_type) if ntp_servers is not None: - pulumi.set(__self__, "ntp_servers", ntp_servers) + _setter("ntp_servers", ntp_servers) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -288,6 +344,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DefaultVpcDhcpOptionsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/egress_only_internet_gateway.py b/sdk/python/pulumi_aws/ec2/egress_only_internet_gateway.py index 47cde9d8e57..cd05473121a 100644 --- a/sdk/python/pulumi_aws/ec2/egress_only_internet_gateway.py +++ b/sdk/python/pulumi_aws/ec2/egress_only_internet_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EgressOnlyInternetGatewayArgs', 'EgressOnlyInternetGateway'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The VPC ID to create in. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "vpc_id", vpc_id) + EgressOnlyInternetGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("vpc_id", vpc_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="vpcId") @@ -62,15 +79,34 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The VPC ID to create in. """ + _EgressOnlyInternetGatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -201,6 +237,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EgressOnlyInternetGatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/eip.py b/sdk/python/pulumi_aws/ec2/eip.py index 25cdd508602..55590e696e2 100644 --- a/sdk/python/pulumi_aws/ec2/eip.py +++ b/sdk/python/pulumi_aws/ec2/eip.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EipArgs', 'Eip'] @@ -44,29 +44,68 @@ def __init__(__self__, *, > **NOTE:** Specifying both `public_ipv4_pool` and `address` won't cause an error but `address` will be used in the case both options are defined as the api only requires one or the other. """ + EipArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + associate_with_private_ip=associate_with_private_ip, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + domain=domain, + instance=instance, + network_border_group=network_border_group, + network_interface=network_interface, + public_ipv4_pool=public_ipv4_pool, + tags=tags, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + associate_with_private_ip: Optional[pulumi.Input[str]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + instance: Optional[pulumi.Input[str]] = None, + network_border_group: Optional[pulumi.Input[str]] = None, + network_interface: Optional[pulumi.Input[str]] = None, + public_ipv4_pool: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associate_with_private_ip is None and 'associateWithPrivateIp' in kwargs: + associate_with_private_ip = kwargs['associateWithPrivateIp'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if network_border_group is None and 'networkBorderGroup' in kwargs: + network_border_group = kwargs['networkBorderGroup'] + if network_interface is None and 'networkInterface' in kwargs: + network_interface = kwargs['networkInterface'] + if public_ipv4_pool is None and 'publicIpv4Pool' in kwargs: + public_ipv4_pool = kwargs['publicIpv4Pool'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if associate_with_private_ip is not None: - pulumi.set(__self__, "associate_with_private_ip", associate_with_private_ip) + _setter("associate_with_private_ip", associate_with_private_ip) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if instance is not None: - pulumi.set(__self__, "instance", instance) + _setter("instance", instance) if network_border_group is not None: - pulumi.set(__self__, "network_border_group", network_border_group) + _setter("network_border_group", network_border_group) if network_interface is not None: - pulumi.set(__self__, "network_interface", network_interface) + _setter("network_interface", network_interface) if public_ipv4_pool is not None: - pulumi.set(__self__, "public_ipv4_pool", public_ipv4_pool) + _setter("public_ipv4_pool", public_ipv4_pool) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc is not None: warnings.warn("""use domain attribute instead""", DeprecationWarning) pulumi.log.warn("""vpc is deprecated: use domain attribute instead""") if vpc is not None: - pulumi.set(__self__, "vpc", vpc) + _setter("vpc", vpc) @property @pulumi.getter @@ -250,50 +289,125 @@ def __init__(__self__, *, > **NOTE:** Specifying both `public_ipv4_pool` and `address` won't cause an error but `address` will be used in the case both options are defined as the api only requires one or the other. """ + _EipState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + allocation_id=allocation_id, + associate_with_private_ip=associate_with_private_ip, + association_id=association_id, + carrier_ip=carrier_ip, + customer_owned_ip=customer_owned_ip, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + domain=domain, + instance=instance, + network_border_group=network_border_group, + network_interface=network_interface, + private_dns=private_dns, + private_ip=private_ip, + public_dns=public_dns, + public_ip=public_ip, + public_ipv4_pool=public_ipv4_pool, + tags=tags, + tags_all=tags_all, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + allocation_id: Optional[pulumi.Input[str]] = None, + associate_with_private_ip: Optional[pulumi.Input[str]] = None, + association_id: Optional[pulumi.Input[str]] = None, + carrier_ip: Optional[pulumi.Input[str]] = None, + customer_owned_ip: Optional[pulumi.Input[str]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + instance: Optional[pulumi.Input[str]] = None, + network_border_group: Optional[pulumi.Input[str]] = None, + network_interface: Optional[pulumi.Input[str]] = None, + private_dns: Optional[pulumi.Input[str]] = None, + private_ip: Optional[pulumi.Input[str]] = None, + public_dns: Optional[pulumi.Input[str]] = None, + public_ip: Optional[pulumi.Input[str]] = None, + public_ipv4_pool: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if associate_with_private_ip is None and 'associateWithPrivateIp' in kwargs: + associate_with_private_ip = kwargs['associateWithPrivateIp'] + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if carrier_ip is None and 'carrierIp' in kwargs: + carrier_ip = kwargs['carrierIp'] + if customer_owned_ip is None and 'customerOwnedIp' in kwargs: + customer_owned_ip = kwargs['customerOwnedIp'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if network_border_group is None and 'networkBorderGroup' in kwargs: + network_border_group = kwargs['networkBorderGroup'] + if network_interface is None and 'networkInterface' in kwargs: + network_interface = kwargs['networkInterface'] + if private_dns is None and 'privateDns' in kwargs: + private_dns = kwargs['privateDns'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if public_dns is None and 'publicDns' in kwargs: + public_dns = kwargs['publicDns'] + if public_ip is None and 'publicIp' in kwargs: + public_ip = kwargs['publicIp'] + if public_ipv4_pool is None and 'publicIpv4Pool' in kwargs: + public_ipv4_pool = kwargs['publicIpv4Pool'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if allocation_id is not None: - pulumi.set(__self__, "allocation_id", allocation_id) + _setter("allocation_id", allocation_id) if associate_with_private_ip is not None: - pulumi.set(__self__, "associate_with_private_ip", associate_with_private_ip) + _setter("associate_with_private_ip", associate_with_private_ip) if association_id is not None: - pulumi.set(__self__, "association_id", association_id) + _setter("association_id", association_id) if carrier_ip is not None: - pulumi.set(__self__, "carrier_ip", carrier_ip) + _setter("carrier_ip", carrier_ip) if customer_owned_ip is not None: - pulumi.set(__self__, "customer_owned_ip", customer_owned_ip) + _setter("customer_owned_ip", customer_owned_ip) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if instance is not None: - pulumi.set(__self__, "instance", instance) + _setter("instance", instance) if network_border_group is not None: - pulumi.set(__self__, "network_border_group", network_border_group) + _setter("network_border_group", network_border_group) if network_interface is not None: - pulumi.set(__self__, "network_interface", network_interface) + _setter("network_interface", network_interface) if private_dns is not None: - pulumi.set(__self__, "private_dns", private_dns) + _setter("private_dns", private_dns) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if public_dns is not None: - pulumi.set(__self__, "public_dns", public_dns) + _setter("public_dns", public_dns) if public_ip is not None: - pulumi.set(__self__, "public_ip", public_ip) + _setter("public_ip", public_ip) if public_ipv4_pool is not None: - pulumi.set(__self__, "public_ipv4_pool", public_ipv4_pool) + _setter("public_ipv4_pool", public_ipv4_pool) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc is not None: warnings.warn("""use domain attribute instead""", DeprecationWarning) pulumi.log.warn("""vpc is deprecated: use domain attribute instead""") if vpc is not None: - pulumi.set(__self__, "vpc", vpc) + _setter("vpc", vpc) @property @pulumi.getter @@ -757,6 +871,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EipArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -790,9 +908,6 @@ def _internal_init(__self__, __props__.__dict__["network_interface"] = network_interface __props__.__dict__["public_ipv4_pool"] = public_ipv4_pool __props__.__dict__["tags"] = tags - if vpc is not None and not opts.urn: - warnings.warn("""use domain attribute instead""", DeprecationWarning) - pulumi.log.warn("""vpc is deprecated: use domain attribute instead""") __props__.__dict__["vpc"] = vpc __props__.__dict__["allocation_id"] = None __props__.__dict__["association_id"] = None diff --git a/sdk/python/pulumi_aws/ec2/eip_association.py b/sdk/python/pulumi_aws/ec2/eip_association.py index c82aadd37a8..0969581bf81 100644 --- a/sdk/python/pulumi_aws/ec2/eip_association.py +++ b/sdk/python/pulumi_aws/ec2/eip_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EipAssociationArgs', 'EipAssociation'] @@ -38,18 +38,51 @@ def __init__(__self__, *, address. :param pulumi.Input[str] public_ip: The Elastic IP address. This is required for EC2-Classic. """ + EipAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_id=allocation_id, + allow_reassociation=allow_reassociation, + instance_id=instance_id, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + public_ip=public_ip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_id: Optional[pulumi.Input[str]] = None, + allow_reassociation: Optional[pulumi.Input[bool]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + private_ip_address: Optional[pulumi.Input[str]] = None, + public_ip: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if allow_reassociation is None and 'allowReassociation' in kwargs: + allow_reassociation = kwargs['allowReassociation'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if public_ip is None and 'publicIp' in kwargs: + public_ip = kwargs['publicIp'] + if allocation_id is not None: - pulumi.set(__self__, "allocation_id", allocation_id) + _setter("allocation_id", allocation_id) if allow_reassociation is not None: - pulumi.set(__self__, "allow_reassociation", allow_reassociation) + _setter("allow_reassociation", allow_reassociation) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if public_ip is not None: - pulumi.set(__self__, "public_ip", public_ip) + _setter("public_ip", public_ip) @property @pulumi.getter(name="allocationId") @@ -160,18 +193,51 @@ def __init__(__self__, *, address. :param pulumi.Input[str] public_ip: The Elastic IP address. This is required for EC2-Classic. """ + _EipAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_id=allocation_id, + allow_reassociation=allow_reassociation, + instance_id=instance_id, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + public_ip=public_ip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_id: Optional[pulumi.Input[str]] = None, + allow_reassociation: Optional[pulumi.Input[bool]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + private_ip_address: Optional[pulumi.Input[str]] = None, + public_ip: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if allow_reassociation is None and 'allowReassociation' in kwargs: + allow_reassociation = kwargs['allowReassociation'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if public_ip is None and 'publicIp' in kwargs: + public_ip = kwargs['publicIp'] + if allocation_id is not None: - pulumi.set(__self__, "allocation_id", allocation_id) + _setter("allocation_id", allocation_id) if allow_reassociation is not None: - pulumi.set(__self__, "allow_reassociation", allow_reassociation) + _setter("allow_reassociation", allow_reassociation) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if public_ip is not None: - pulumi.set(__self__, "public_ip", public_ip) + _setter("public_ip", public_ip) @property @pulumi.getter(name="allocationId") @@ -373,6 +439,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EipAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/fleet.py b/sdk/python/pulumi_aws/ec2/fleet.py index dabcaba89d1..18c99b70ffc 100644 --- a/sdk/python/pulumi_aws/ec2/fleet.py +++ b/sdk/python/pulumi_aws/ec2/fleet.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -53,38 +53,113 @@ def __init__(__self__, *, :param pulumi.Input[str] valid_from: The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. :param pulumi.Input[str] valid_until: The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it. """ - pulumi.set(__self__, "launch_template_configs", launch_template_configs) - pulumi.set(__self__, "target_capacity_specification", target_capacity_specification) + FleetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_configs=launch_template_configs, + target_capacity_specification=target_capacity_specification, + context=context, + excess_capacity_termination_policy=excess_capacity_termination_policy, + fleet_instance_sets=fleet_instance_sets, + fleet_state=fleet_state, + fulfilled_capacity=fulfilled_capacity, + fulfilled_on_demand_capacity=fulfilled_on_demand_capacity, + on_demand_options=on_demand_options, + replace_unhealthy_instances=replace_unhealthy_instances, + spot_options=spot_options, + tags=tags, + terminate_instances=terminate_instances, + terminate_instances_with_expiration=terminate_instances_with_expiration, + type=type, + valid_from=valid_from, + valid_until=valid_until, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_configs: Optional[pulumi.Input[Sequence[pulumi.Input['FleetLaunchTemplateConfigArgs']]]] = None, + target_capacity_specification: Optional[pulumi.Input['FleetTargetCapacitySpecificationArgs']] = None, + context: Optional[pulumi.Input[str]] = None, + excess_capacity_termination_policy: Optional[pulumi.Input[str]] = None, + fleet_instance_sets: Optional[pulumi.Input[Sequence[pulumi.Input['FleetFleetInstanceSetArgs']]]] = None, + fleet_state: Optional[pulumi.Input[str]] = None, + fulfilled_capacity: Optional[pulumi.Input[float]] = None, + fulfilled_on_demand_capacity: Optional[pulumi.Input[float]] = None, + on_demand_options: Optional[pulumi.Input['FleetOnDemandOptionsArgs']] = None, + replace_unhealthy_instances: Optional[pulumi.Input[bool]] = None, + spot_options: Optional[pulumi.Input['FleetSpotOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + terminate_instances: Optional[pulumi.Input[bool]] = None, + terminate_instances_with_expiration: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + valid_from: Optional[pulumi.Input[str]] = None, + valid_until: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_configs is None and 'launchTemplateConfigs' in kwargs: + launch_template_configs = kwargs['launchTemplateConfigs'] + if launch_template_configs is None: + raise TypeError("Missing 'launch_template_configs' argument") + if target_capacity_specification is None and 'targetCapacitySpecification' in kwargs: + target_capacity_specification = kwargs['targetCapacitySpecification'] + if target_capacity_specification is None: + raise TypeError("Missing 'target_capacity_specification' argument") + if excess_capacity_termination_policy is None and 'excessCapacityTerminationPolicy' in kwargs: + excess_capacity_termination_policy = kwargs['excessCapacityTerminationPolicy'] + if fleet_instance_sets is None and 'fleetInstanceSets' in kwargs: + fleet_instance_sets = kwargs['fleetInstanceSets'] + if fleet_state is None and 'fleetState' in kwargs: + fleet_state = kwargs['fleetState'] + if fulfilled_capacity is None and 'fulfilledCapacity' in kwargs: + fulfilled_capacity = kwargs['fulfilledCapacity'] + if fulfilled_on_demand_capacity is None and 'fulfilledOnDemandCapacity' in kwargs: + fulfilled_on_demand_capacity = kwargs['fulfilledOnDemandCapacity'] + if on_demand_options is None and 'onDemandOptions' in kwargs: + on_demand_options = kwargs['onDemandOptions'] + if replace_unhealthy_instances is None and 'replaceUnhealthyInstances' in kwargs: + replace_unhealthy_instances = kwargs['replaceUnhealthyInstances'] + if spot_options is None and 'spotOptions' in kwargs: + spot_options = kwargs['spotOptions'] + if terminate_instances is None and 'terminateInstances' in kwargs: + terminate_instances = kwargs['terminateInstances'] + if terminate_instances_with_expiration is None and 'terminateInstancesWithExpiration' in kwargs: + terminate_instances_with_expiration = kwargs['terminateInstancesWithExpiration'] + if valid_from is None and 'validFrom' in kwargs: + valid_from = kwargs['validFrom'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + + _setter("launch_template_configs", launch_template_configs) + _setter("target_capacity_specification", target_capacity_specification) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if excess_capacity_termination_policy is not None: - pulumi.set(__self__, "excess_capacity_termination_policy", excess_capacity_termination_policy) + _setter("excess_capacity_termination_policy", excess_capacity_termination_policy) if fleet_instance_sets is not None: - pulumi.set(__self__, "fleet_instance_sets", fleet_instance_sets) + _setter("fleet_instance_sets", fleet_instance_sets) if fleet_state is not None: - pulumi.set(__self__, "fleet_state", fleet_state) + _setter("fleet_state", fleet_state) if fulfilled_capacity is not None: - pulumi.set(__self__, "fulfilled_capacity", fulfilled_capacity) + _setter("fulfilled_capacity", fulfilled_capacity) if fulfilled_on_demand_capacity is not None: - pulumi.set(__self__, "fulfilled_on_demand_capacity", fulfilled_on_demand_capacity) + _setter("fulfilled_on_demand_capacity", fulfilled_on_demand_capacity) if on_demand_options is not None: - pulumi.set(__self__, "on_demand_options", on_demand_options) + _setter("on_demand_options", on_demand_options) if replace_unhealthy_instances is not None: - pulumi.set(__self__, "replace_unhealthy_instances", replace_unhealthy_instances) + _setter("replace_unhealthy_instances", replace_unhealthy_instances) if spot_options is not None: - pulumi.set(__self__, "spot_options", spot_options) + _setter("spot_options", spot_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if terminate_instances is not None: - pulumi.set(__self__, "terminate_instances", terminate_instances) + _setter("terminate_instances", terminate_instances) if terminate_instances_with_expiration is not None: - pulumi.set(__self__, "terminate_instances_with_expiration", terminate_instances_with_expiration) + _setter("terminate_instances_with_expiration", terminate_instances_with_expiration) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if valid_from is not None: - pulumi.set(__self__, "valid_from", valid_from) + _setter("valid_from", valid_from) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) @property @pulumi.getter(name="launchTemplateConfigs") @@ -335,47 +410,124 @@ def __init__(__self__, *, :param pulumi.Input[str] valid_from: The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. :param pulumi.Input[str] valid_until: The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it. """ + _FleetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + context=context, + excess_capacity_termination_policy=excess_capacity_termination_policy, + fleet_instance_sets=fleet_instance_sets, + fleet_state=fleet_state, + fulfilled_capacity=fulfilled_capacity, + fulfilled_on_demand_capacity=fulfilled_on_demand_capacity, + launch_template_configs=launch_template_configs, + on_demand_options=on_demand_options, + replace_unhealthy_instances=replace_unhealthy_instances, + spot_options=spot_options, + tags=tags, + tags_all=tags_all, + target_capacity_specification=target_capacity_specification, + terminate_instances=terminate_instances, + terminate_instances_with_expiration=terminate_instances_with_expiration, + type=type, + valid_from=valid_from, + valid_until=valid_until, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + context: Optional[pulumi.Input[str]] = None, + excess_capacity_termination_policy: Optional[pulumi.Input[str]] = None, + fleet_instance_sets: Optional[pulumi.Input[Sequence[pulumi.Input['FleetFleetInstanceSetArgs']]]] = None, + fleet_state: Optional[pulumi.Input[str]] = None, + fulfilled_capacity: Optional[pulumi.Input[float]] = None, + fulfilled_on_demand_capacity: Optional[pulumi.Input[float]] = None, + launch_template_configs: Optional[pulumi.Input[Sequence[pulumi.Input['FleetLaunchTemplateConfigArgs']]]] = None, + on_demand_options: Optional[pulumi.Input['FleetOnDemandOptionsArgs']] = None, + replace_unhealthy_instances: Optional[pulumi.Input[bool]] = None, + spot_options: Optional[pulumi.Input['FleetSpotOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_capacity_specification: Optional[pulumi.Input['FleetTargetCapacitySpecificationArgs']] = None, + terminate_instances: Optional[pulumi.Input[bool]] = None, + terminate_instances_with_expiration: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + valid_from: Optional[pulumi.Input[str]] = None, + valid_until: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excess_capacity_termination_policy is None and 'excessCapacityTerminationPolicy' in kwargs: + excess_capacity_termination_policy = kwargs['excessCapacityTerminationPolicy'] + if fleet_instance_sets is None and 'fleetInstanceSets' in kwargs: + fleet_instance_sets = kwargs['fleetInstanceSets'] + if fleet_state is None and 'fleetState' in kwargs: + fleet_state = kwargs['fleetState'] + if fulfilled_capacity is None and 'fulfilledCapacity' in kwargs: + fulfilled_capacity = kwargs['fulfilledCapacity'] + if fulfilled_on_demand_capacity is None and 'fulfilledOnDemandCapacity' in kwargs: + fulfilled_on_demand_capacity = kwargs['fulfilledOnDemandCapacity'] + if launch_template_configs is None and 'launchTemplateConfigs' in kwargs: + launch_template_configs = kwargs['launchTemplateConfigs'] + if on_demand_options is None and 'onDemandOptions' in kwargs: + on_demand_options = kwargs['onDemandOptions'] + if replace_unhealthy_instances is None and 'replaceUnhealthyInstances' in kwargs: + replace_unhealthy_instances = kwargs['replaceUnhealthyInstances'] + if spot_options is None and 'spotOptions' in kwargs: + spot_options = kwargs['spotOptions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_capacity_specification is None and 'targetCapacitySpecification' in kwargs: + target_capacity_specification = kwargs['targetCapacitySpecification'] + if terminate_instances is None and 'terminateInstances' in kwargs: + terminate_instances = kwargs['terminateInstances'] + if terminate_instances_with_expiration is None and 'terminateInstancesWithExpiration' in kwargs: + terminate_instances_with_expiration = kwargs['terminateInstancesWithExpiration'] + if valid_from is None and 'validFrom' in kwargs: + valid_from = kwargs['validFrom'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if excess_capacity_termination_policy is not None: - pulumi.set(__self__, "excess_capacity_termination_policy", excess_capacity_termination_policy) + _setter("excess_capacity_termination_policy", excess_capacity_termination_policy) if fleet_instance_sets is not None: - pulumi.set(__self__, "fleet_instance_sets", fleet_instance_sets) + _setter("fleet_instance_sets", fleet_instance_sets) if fleet_state is not None: - pulumi.set(__self__, "fleet_state", fleet_state) + _setter("fleet_state", fleet_state) if fulfilled_capacity is not None: - pulumi.set(__self__, "fulfilled_capacity", fulfilled_capacity) + _setter("fulfilled_capacity", fulfilled_capacity) if fulfilled_on_demand_capacity is not None: - pulumi.set(__self__, "fulfilled_on_demand_capacity", fulfilled_on_demand_capacity) + _setter("fulfilled_on_demand_capacity", fulfilled_on_demand_capacity) if launch_template_configs is not None: - pulumi.set(__self__, "launch_template_configs", launch_template_configs) + _setter("launch_template_configs", launch_template_configs) if on_demand_options is not None: - pulumi.set(__self__, "on_demand_options", on_demand_options) + _setter("on_demand_options", on_demand_options) if replace_unhealthy_instances is not None: - pulumi.set(__self__, "replace_unhealthy_instances", replace_unhealthy_instances) + _setter("replace_unhealthy_instances", replace_unhealthy_instances) if spot_options is not None: - pulumi.set(__self__, "spot_options", spot_options) + _setter("spot_options", spot_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_capacity_specification is not None: - pulumi.set(__self__, "target_capacity_specification", target_capacity_specification) + _setter("target_capacity_specification", target_capacity_specification) if terminate_instances is not None: - pulumi.set(__self__, "terminate_instances", terminate_instances) + _setter("terminate_instances", terminate_instances) if terminate_instances_with_expiration is not None: - pulumi.set(__self__, "terminate_instances_with_expiration", terminate_instances_with_expiration) + _setter("terminate_instances_with_expiration", terminate_instances_with_expiration) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if valid_from is not None: - pulumi.set(__self__, "valid_from", valid_from) + _setter("valid_from", valid_from) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) @property @pulumi.getter @@ -728,6 +880,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FleetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -768,10 +924,13 @@ def _internal_init(__self__, if launch_template_configs is None and not opts.urn: raise TypeError("Missing required property 'launch_template_configs'") __props__.__dict__["launch_template_configs"] = launch_template_configs + on_demand_options = _utilities.configure(on_demand_options, FleetOnDemandOptionsArgs, True) __props__.__dict__["on_demand_options"] = on_demand_options __props__.__dict__["replace_unhealthy_instances"] = replace_unhealthy_instances + spot_options = _utilities.configure(spot_options, FleetSpotOptionsArgs, True) __props__.__dict__["spot_options"] = spot_options __props__.__dict__["tags"] = tags + target_capacity_specification = _utilities.configure(target_capacity_specification, FleetTargetCapacitySpecificationArgs, True) if target_capacity_specification is None and not opts.urn: raise TypeError("Missing required property 'target_capacity_specification'") __props__.__dict__["target_capacity_specification"] = target_capacity_specification diff --git a/sdk/python/pulumi_aws/ec2/flow_log.py b/sdk/python/pulumi_aws/ec2/flow_log.py index 0a611590f53..fbba93ab856 100644 --- a/sdk/python/pulumi_aws/ec2/flow_log.py +++ b/sdk/python/pulumi_aws/ec2/flow_log.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -52,39 +52,106 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_id: Transit Gateway ID to attach to :param pulumi.Input[str] vpc_id: VPC ID to attach to """ + FlowLogArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deliver_cross_account_role=deliver_cross_account_role, + destination_options=destination_options, + eni_id=eni_id, + iam_role_arn=iam_role_arn, + log_destination=log_destination, + log_destination_type=log_destination_type, + log_format=log_format, + log_group_name=log_group_name, + max_aggregation_interval=max_aggregation_interval, + subnet_id=subnet_id, + tags=tags, + traffic_type=traffic_type, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_id=transit_gateway_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deliver_cross_account_role: Optional[pulumi.Input[str]] = None, + destination_options: Optional[pulumi.Input['FlowLogDestinationOptionsArgs']] = None, + eni_id: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + log_destination: Optional[pulumi.Input[str]] = None, + log_destination_type: Optional[pulumi.Input[str]] = None, + log_format: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + max_aggregation_interval: Optional[pulumi.Input[int]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + traffic_type: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deliver_cross_account_role is None and 'deliverCrossAccountRole' in kwargs: + deliver_cross_account_role = kwargs['deliverCrossAccountRole'] + if destination_options is None and 'destinationOptions' in kwargs: + destination_options = kwargs['destinationOptions'] + if eni_id is None and 'eniId' in kwargs: + eni_id = kwargs['eniId'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if log_destination_type is None and 'logDestinationType' in kwargs: + log_destination_type = kwargs['logDestinationType'] + if log_format is None and 'logFormat' in kwargs: + log_format = kwargs['logFormat'] + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if max_aggregation_interval is None and 'maxAggregationInterval' in kwargs: + max_aggregation_interval = kwargs['maxAggregationInterval'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if traffic_type is None and 'trafficType' in kwargs: + traffic_type = kwargs['trafficType'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if deliver_cross_account_role is not None: - pulumi.set(__self__, "deliver_cross_account_role", deliver_cross_account_role) + _setter("deliver_cross_account_role", deliver_cross_account_role) if destination_options is not None: - pulumi.set(__self__, "destination_options", destination_options) + _setter("destination_options", destination_options) if eni_id is not None: - pulumi.set(__self__, "eni_id", eni_id) + _setter("eni_id", eni_id) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if log_destination is not None: - pulumi.set(__self__, "log_destination", log_destination) + _setter("log_destination", log_destination) if log_destination_type is not None: - pulumi.set(__self__, "log_destination_type", log_destination_type) + _setter("log_destination_type", log_destination_type) if log_format is not None: - pulumi.set(__self__, "log_format", log_format) + _setter("log_format", log_format) if log_group_name is not None: warnings.warn("""use 'log_destination' argument instead""", DeprecationWarning) pulumi.log.warn("""log_group_name is deprecated: use 'log_destination' argument instead""") if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if max_aggregation_interval is not None: - pulumi.set(__self__, "max_aggregation_interval", max_aggregation_interval) + _setter("max_aggregation_interval", max_aggregation_interval) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if traffic_type is not None: - pulumi.set(__self__, "traffic_type", traffic_type) + _setter("traffic_type", traffic_type) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="deliverCrossAccountRole") @@ -316,46 +383,119 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_id: Transit Gateway ID to attach to :param pulumi.Input[str] vpc_id: VPC ID to attach to """ + _FlowLogState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + deliver_cross_account_role=deliver_cross_account_role, + destination_options=destination_options, + eni_id=eni_id, + iam_role_arn=iam_role_arn, + log_destination=log_destination, + log_destination_type=log_destination_type, + log_format=log_format, + log_group_name=log_group_name, + max_aggregation_interval=max_aggregation_interval, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + traffic_type=traffic_type, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_id=transit_gateway_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + deliver_cross_account_role: Optional[pulumi.Input[str]] = None, + destination_options: Optional[pulumi.Input['FlowLogDestinationOptionsArgs']] = None, + eni_id: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + log_destination: Optional[pulumi.Input[str]] = None, + log_destination_type: Optional[pulumi.Input[str]] = None, + log_format: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + max_aggregation_interval: Optional[pulumi.Input[int]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + traffic_type: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deliver_cross_account_role is None and 'deliverCrossAccountRole' in kwargs: + deliver_cross_account_role = kwargs['deliverCrossAccountRole'] + if destination_options is None and 'destinationOptions' in kwargs: + destination_options = kwargs['destinationOptions'] + if eni_id is None and 'eniId' in kwargs: + eni_id = kwargs['eniId'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if log_destination_type is None and 'logDestinationType' in kwargs: + log_destination_type = kwargs['logDestinationType'] + if log_format is None and 'logFormat' in kwargs: + log_format = kwargs['logFormat'] + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if max_aggregation_interval is None and 'maxAggregationInterval' in kwargs: + max_aggregation_interval = kwargs['maxAggregationInterval'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if traffic_type is None and 'trafficType' in kwargs: + traffic_type = kwargs['trafficType'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if deliver_cross_account_role is not None: - pulumi.set(__self__, "deliver_cross_account_role", deliver_cross_account_role) + _setter("deliver_cross_account_role", deliver_cross_account_role) if destination_options is not None: - pulumi.set(__self__, "destination_options", destination_options) + _setter("destination_options", destination_options) if eni_id is not None: - pulumi.set(__self__, "eni_id", eni_id) + _setter("eni_id", eni_id) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if log_destination is not None: - pulumi.set(__self__, "log_destination", log_destination) + _setter("log_destination", log_destination) if log_destination_type is not None: - pulumi.set(__self__, "log_destination_type", log_destination_type) + _setter("log_destination_type", log_destination_type) if log_format is not None: - pulumi.set(__self__, "log_format", log_format) + _setter("log_format", log_format) if log_group_name is not None: warnings.warn("""use 'log_destination' argument instead""", DeprecationWarning) pulumi.log.warn("""log_group_name is deprecated: use 'log_destination' argument instead""") if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if max_aggregation_interval is not None: - pulumi.set(__self__, "max_aggregation_interval", max_aggregation_interval) + _setter("max_aggregation_interval", max_aggregation_interval) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if traffic_type is not None: - pulumi.set(__self__, "traffic_type", traffic_type) + _setter("traffic_type", traffic_type) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -789,6 +929,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FlowLogArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -819,15 +963,13 @@ def _internal_init(__self__, __props__ = FlowLogArgs.__new__(FlowLogArgs) __props__.__dict__["deliver_cross_account_role"] = deliver_cross_account_role + destination_options = _utilities.configure(destination_options, FlowLogDestinationOptionsArgs, True) __props__.__dict__["destination_options"] = destination_options __props__.__dict__["eni_id"] = eni_id __props__.__dict__["iam_role_arn"] = iam_role_arn __props__.__dict__["log_destination"] = log_destination __props__.__dict__["log_destination_type"] = log_destination_type __props__.__dict__["log_format"] = log_format - if log_group_name is not None and not opts.urn: - warnings.warn("""use 'log_destination' argument instead""", DeprecationWarning) - pulumi.log.warn("""log_group_name is deprecated: use 'log_destination' argument instead""") __props__.__dict__["log_group_name"] = log_group_name __props__.__dict__["max_aggregation_interval"] = max_aggregation_interval __props__.__dict__["subnet_id"] = subnet_id diff --git a/sdk/python/pulumi_aws/ec2/get_ami.py b/sdk/python/pulumi_aws/ec2/get_ami.py index 3a3c76dc27d..b75f982c74b 100644 --- a/sdk/python/pulumi_aws/ec2/get_ami.py +++ b/sdk/python/pulumi_aws/ec2/get_ami.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_ami_ids.py b/sdk/python/pulumi_aws/ec2/get_ami_ids.py index 929eafb7d84..5fc19abc329 100644 --- a/sdk/python/pulumi_aws/ec2/get_ami_ids.py +++ b/sdk/python/pulumi_aws/ec2/get_ami_ids.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_coip_pool.py b/sdk/python/pulumi_aws/ec2/get_coip_pool.py index 8ffa4315a3c..2e4b91a9520 100644 --- a/sdk/python/pulumi_aws/ec2/get_coip_pool.py +++ b/sdk/python/pulumi_aws/ec2/get_coip_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_coip_pools.py b/sdk/python/pulumi_aws/ec2/get_coip_pools.py index 8acdab8163c..8442d55fc03 100644 --- a/sdk/python/pulumi_aws/ec2/get_coip_pools.py +++ b/sdk/python/pulumi_aws/ec2/get_coip_pools.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_customer_gateway.py b/sdk/python/pulumi_aws/ec2/get_customer_gateway.py index cc331b9f674..f756292dd13 100644 --- a/sdk/python/pulumi_aws/ec2/get_customer_gateway.py +++ b/sdk/python/pulumi_aws/ec2/get_customer_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_dedicated_host.py b/sdk/python/pulumi_aws/ec2/get_dedicated_host.py index d87ffcd54c2..f0eb56e965e 100644 --- a/sdk/python/pulumi_aws/ec2/get_dedicated_host.py +++ b/sdk/python/pulumi_aws/ec2/get_dedicated_host.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_eips.py b/sdk/python/pulumi_aws/ec2/get_eips.py index ff49f0ea613..fbcb2075083 100644 --- a/sdk/python/pulumi_aws/ec2/get_eips.py +++ b/sdk/python/pulumi_aws/ec2/get_eips.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_elastic_ip.py b/sdk/python/pulumi_aws/ec2/get_elastic_ip.py index cd498a1e5d9..6099336d666 100644 --- a/sdk/python/pulumi_aws/ec2/get_elastic_ip.py +++ b/sdk/python/pulumi_aws/ec2/get_elastic_ip.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_instance.py b/sdk/python/pulumi_aws/ec2/get_instance.py index 3367f608ed8..6de4d86d53c 100644 --- a/sdk/python/pulumi_aws/ec2/get_instance.py +++ b/sdk/python/pulumi_aws/ec2/get_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_instance_type.py b/sdk/python/pulumi_aws/ec2/get_instance_type.py index 4fc6d0f7c48..ed534b8c4be 100644 --- a/sdk/python/pulumi_aws/ec2/get_instance_type.py +++ b/sdk/python/pulumi_aws/ec2/get_instance_type.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ec2/get_instance_type_offering.py b/sdk/python/pulumi_aws/ec2/get_instance_type_offering.py index 8630f78e908..69a6354e86c 100644 --- a/sdk/python/pulumi_aws/ec2/get_instance_type_offering.py +++ b/sdk/python/pulumi_aws/ec2/get_instance_type_offering.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_instance_type_offerings.py b/sdk/python/pulumi_aws/ec2/get_instance_type_offerings.py index 5db2bdd36e2..6dba19e2e3b 100644 --- a/sdk/python/pulumi_aws/ec2/get_instance_type_offerings.py +++ b/sdk/python/pulumi_aws/ec2/get_instance_type_offerings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_instance_types.py b/sdk/python/pulumi_aws/ec2/get_instance_types.py index fcb2319e910..7cca936e771 100644 --- a/sdk/python/pulumi_aws/ec2/get_instance_types.py +++ b/sdk/python/pulumi_aws/ec2/get_instance_types.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_instances.py b/sdk/python/pulumi_aws/ec2/get_instances.py index 2b95f7982be..2261b85bfda 100644 --- a/sdk/python/pulumi_aws/ec2/get_instances.py +++ b/sdk/python/pulumi_aws/ec2/get_instances.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_internet_gateway.py b/sdk/python/pulumi_aws/ec2/get_internet_gateway.py index d51149362ab..3c7f49f3a76 100644 --- a/sdk/python/pulumi_aws/ec2/get_internet_gateway.py +++ b/sdk/python/pulumi_aws/ec2/get_internet_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_ipam_preview_next_cidr.py b/sdk/python/pulumi_aws/ec2/get_ipam_preview_next_cidr.py index 6ba6de8fa72..4d3b164be1a 100644 --- a/sdk/python/pulumi_aws/ec2/get_ipam_preview_next_cidr.py +++ b/sdk/python/pulumi_aws/ec2/get_ipam_preview_next_cidr.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ec2/get_key_pair.py b/sdk/python/pulumi_aws/ec2/get_key_pair.py index cbc0457e05e..b5be548b005 100644 --- a/sdk/python/pulumi_aws/ec2/get_key_pair.py +++ b/sdk/python/pulumi_aws/ec2/get_key_pair.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_launch_configuration.py b/sdk/python/pulumi_aws/ec2/get_launch_configuration.py index 6c70700250e..6a5fc9a7587 100644 --- a/sdk/python/pulumi_aws/ec2/get_launch_configuration.py +++ b/sdk/python/pulumi_aws/ec2/get_launch_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ec2/get_launch_template.py b/sdk/python/pulumi_aws/ec2/get_launch_template.py index f8800cc6156..a848085cc62 100644 --- a/sdk/python/pulumi_aws/ec2/get_launch_template.py +++ b/sdk/python/pulumi_aws/ec2/get_launch_template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_local_gateway.py b/sdk/python/pulumi_aws/ec2/get_local_gateway.py index 4dbc29a5fc9..1d751745a27 100644 --- a/sdk/python/pulumi_aws/ec2/get_local_gateway.py +++ b/sdk/python/pulumi_aws/ec2/get_local_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_local_gateway_route_table.py b/sdk/python/pulumi_aws/ec2/get_local_gateway_route_table.py index 0d52080d3f1..a019706b6ac 100644 --- a/sdk/python/pulumi_aws/ec2/get_local_gateway_route_table.py +++ b/sdk/python/pulumi_aws/ec2/get_local_gateway_route_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_local_gateway_route_tables.py b/sdk/python/pulumi_aws/ec2/get_local_gateway_route_tables.py index 3bbf181caa9..b1a47207f89 100644 --- a/sdk/python/pulumi_aws/ec2/get_local_gateway_route_tables.py +++ b/sdk/python/pulumi_aws/ec2/get_local_gateway_route_tables.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface.py b/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface.py index 3b98332a483..1ca4081ceb0 100644 --- a/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface.py +++ b/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface_group.py b/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface_group.py index 61a85e52e3d..dd6b1fbb5a5 100644 --- a/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface_group.py +++ b/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface_groups.py b/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface_groups.py index fbfbad1410a..f270cc88545 100644 --- a/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface_groups.py +++ b/sdk/python/pulumi_aws/ec2/get_local_gateway_virtual_interface_groups.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_local_gateways.py b/sdk/python/pulumi_aws/ec2/get_local_gateways.py index 294075cd2ab..3580d1ba351 100644 --- a/sdk/python/pulumi_aws/ec2/get_local_gateways.py +++ b/sdk/python/pulumi_aws/ec2/get_local_gateways.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_managed_prefix_list.py b/sdk/python/pulumi_aws/ec2/get_managed_prefix_list.py index 76e838034f4..d30449b6db9 100644 --- a/sdk/python/pulumi_aws/ec2/get_managed_prefix_list.py +++ b/sdk/python/pulumi_aws/ec2/get_managed_prefix_list.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_managed_prefix_lists.py b/sdk/python/pulumi_aws/ec2/get_managed_prefix_lists.py index 7dc264e02cf..1864987cb6f 100644 --- a/sdk/python/pulumi_aws/ec2/get_managed_prefix_lists.py +++ b/sdk/python/pulumi_aws/ec2/get_managed_prefix_lists.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_nat_gateway.py b/sdk/python/pulumi_aws/ec2/get_nat_gateway.py index c2dbb319bc7..13929f06307 100644 --- a/sdk/python/pulumi_aws/ec2/get_nat_gateway.py +++ b/sdk/python/pulumi_aws/ec2/get_nat_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_nat_gateways.py b/sdk/python/pulumi_aws/ec2/get_nat_gateways.py index bd4b05f4a32..75baa63ed52 100644 --- a/sdk/python/pulumi_aws/ec2/get_nat_gateways.py +++ b/sdk/python/pulumi_aws/ec2/get_nat_gateways.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_network_acls.py b/sdk/python/pulumi_aws/ec2/get_network_acls.py index eba2594d78c..b6c2d59b9d4 100644 --- a/sdk/python/pulumi_aws/ec2/get_network_acls.py +++ b/sdk/python/pulumi_aws/ec2/get_network_acls.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_network_insights_analysis.py b/sdk/python/pulumi_aws/ec2/get_network_insights_analysis.py index 00969b41539..3d41a4d5dca 100644 --- a/sdk/python/pulumi_aws/ec2/get_network_insights_analysis.py +++ b/sdk/python/pulumi_aws/ec2/get_network_insights_analysis.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_network_insights_path.py b/sdk/python/pulumi_aws/ec2/get_network_insights_path.py index aedcfb12bd7..94ab1fcc841 100644 --- a/sdk/python/pulumi_aws/ec2/get_network_insights_path.py +++ b/sdk/python/pulumi_aws/ec2/get_network_insights_path.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_network_interface.py b/sdk/python/pulumi_aws/ec2/get_network_interface.py index e7f2ddd22dc..e9f73b1e811 100644 --- a/sdk/python/pulumi_aws/ec2/get_network_interface.py +++ b/sdk/python/pulumi_aws/ec2/get_network_interface.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_network_interfaces.py b/sdk/python/pulumi_aws/ec2/get_network_interfaces.py index 10f5501c869..8de665b0828 100644 --- a/sdk/python/pulumi_aws/ec2/get_network_interfaces.py +++ b/sdk/python/pulumi_aws/ec2/get_network_interfaces.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_prefix_list.py b/sdk/python/pulumi_aws/ec2/get_prefix_list.py index b6bf8c641d3..17551714277 100644 --- a/sdk/python/pulumi_aws/ec2/get_prefix_list.py +++ b/sdk/python/pulumi_aws/ec2/get_prefix_list.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_public_ipv4_pool.py b/sdk/python/pulumi_aws/ec2/get_public_ipv4_pool.py index 8309645f7bb..3547401da26 100644 --- a/sdk/python/pulumi_aws/ec2/get_public_ipv4_pool.py +++ b/sdk/python/pulumi_aws/ec2/get_public_ipv4_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ec2/get_public_ipv4_pools.py b/sdk/python/pulumi_aws/ec2/get_public_ipv4_pools.py index 879ab90feff..ea52fccc568 100644 --- a/sdk/python/pulumi_aws/ec2/get_public_ipv4_pools.py +++ b/sdk/python/pulumi_aws/ec2/get_public_ipv4_pools.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_route.py b/sdk/python/pulumi_aws/ec2/get_route.py index c3360d1e814..bf9961f4602 100644 --- a/sdk/python/pulumi_aws/ec2/get_route.py +++ b/sdk/python/pulumi_aws/ec2/get_route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ec2/get_route_table.py b/sdk/python/pulumi_aws/ec2/get_route_table.py index 695f4572e18..a2064ce22fb 100644 --- a/sdk/python/pulumi_aws/ec2/get_route_table.py +++ b/sdk/python/pulumi_aws/ec2/get_route_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_route_tables.py b/sdk/python/pulumi_aws/ec2/get_route_tables.py index c335f5594e3..9587318e685 100644 --- a/sdk/python/pulumi_aws/ec2/get_route_tables.py +++ b/sdk/python/pulumi_aws/ec2/get_route_tables.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_security_group.py b/sdk/python/pulumi_aws/ec2/get_security_group.py index 4f761828e13..e875960124a 100644 --- a/sdk/python/pulumi_aws/ec2/get_security_group.py +++ b/sdk/python/pulumi_aws/ec2/get_security_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_security_groups.py b/sdk/python/pulumi_aws/ec2/get_security_groups.py index c1f977f831b..94f6e93aade 100644 --- a/sdk/python/pulumi_aws/ec2/get_security_groups.py +++ b/sdk/python/pulumi_aws/ec2/get_security_groups.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_serial_console_access.py b/sdk/python/pulumi_aws/ec2/get_serial_console_access.py index b1a0bf9e1c4..8b3e701ee6c 100644 --- a/sdk/python/pulumi_aws/ec2/get_serial_console_access.py +++ b/sdk/python/pulumi_aws/ec2/get_serial_console_access.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetSerialConsoleAccessResult', 'AwaitableGetSerialConsoleAccessResult', 'get_serial_console_access', + 'get_serial_console_access_output', ] @pulumi.output_type @@ -75,3 +76,20 @@ def get_serial_console_access(opts: Optional[pulumi.InvokeOptions] = None) -> Aw return AwaitableGetSerialConsoleAccessResult( enabled=pulumi.get(__ret__, 'enabled'), id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_serial_console_access) +def get_serial_console_access_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSerialConsoleAccessResult]: + """ + Provides a way to check whether serial console access is enabled for your AWS account in the current AWS region. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + current = aws.ec2.get_serial_console_access() + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/ec2/get_spot_price.py b/sdk/python/pulumi_aws/ec2/get_spot_price.py index cd094cac97e..12dfd7d4464 100644 --- a/sdk/python/pulumi_aws/ec2/get_spot_price.py +++ b/sdk/python/pulumi_aws/ec2/get_spot_price.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_subnet.py b/sdk/python/pulumi_aws/ec2/get_subnet.py index 8c72378ccc1..dc285ab5179 100644 --- a/sdk/python/pulumi_aws/ec2/get_subnet.py +++ b/sdk/python/pulumi_aws/ec2/get_subnet.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_subnets.py b/sdk/python/pulumi_aws/ec2/get_subnets.py index 30391c993ae..de7c9dd3e15 100644 --- a/sdk/python/pulumi_aws/ec2/get_subnets.py +++ b/sdk/python/pulumi_aws/ec2/get_subnets.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_transit_gateway_route_tables.py b/sdk/python/pulumi_aws/ec2/get_transit_gateway_route_tables.py index 8fa6e6212e7..e8fb7cd1ef5 100644 --- a/sdk/python/pulumi_aws/ec2/get_transit_gateway_route_tables.py +++ b/sdk/python/pulumi_aws/ec2/get_transit_gateway_route_tables.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc.py b/sdk/python/pulumi_aws/ec2/get_vpc.py index b5275d5ecd8..243fdb5c56f 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_dhcp_options.py b/sdk/python/pulumi_aws/ec2/get_vpc_dhcp_options.py index 2b449a6af94..f00049ad3c7 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_dhcp_options.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_dhcp_options.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_endpoint.py b/sdk/python/pulumi_aws/ec2/get_vpc_endpoint.py index 3403c322e5c..9e6ccfc2893 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_endpoint.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_endpoint_service.py b/sdk/python/pulumi_aws/ec2/get_vpc_endpoint_service.py index 1137c10865b..81d6a006f49 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_endpoint_service.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_endpoint_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_iam_pool.py b/sdk/python/pulumi_aws/ec2/get_vpc_iam_pool.py index d4382041fcc..86fc41378fe 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_iam_pool.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_iam_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_iam_pool_cidrs.py b/sdk/python/pulumi_aws/ec2/get_vpc_iam_pool_cidrs.py index 31859d2c6b7..2c82c332ce3 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_iam_pool_cidrs.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_iam_pool_cidrs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_iam_pools.py b/sdk/python/pulumi_aws/ec2/get_vpc_iam_pools.py index 81acb2a01e2..89fff5c4b97 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_iam_pools.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_iam_pools.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pool.py b/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pool.py index f47a50295a1..49a157fa7eb 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pool.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pool_cidrs.py b/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pool_cidrs.py index 945eaca5ce0..b7f3396269d 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pool_cidrs.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pool_cidrs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pools.py b/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pools.py index fbf7b171b00..6d58ccc4e88 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pools.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_ipam_pools.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_peering_connection.py b/sdk/python/pulumi_aws/ec2/get_vpc_peering_connection.py index f5248e71149..7110766a599 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_peering_connection.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_peering_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_peering_connections.py b/sdk/python/pulumi_aws/ec2/get_vpc_peering_connections.py index eb9fda76469..efc887c150d 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_peering_connections.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_peering_connections.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpcs.py b/sdk/python/pulumi_aws/ec2/get_vpcs.py index 72672b8c44a..530ca26932c 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpcs.py +++ b/sdk/python/pulumi_aws/ec2/get_vpcs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/get_vpn_gateway.py b/sdk/python/pulumi_aws/ec2/get_vpn_gateway.py index b4207c40eba..e60c380d889 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpn_gateway.py +++ b/sdk/python/pulumi_aws/ec2/get_vpn_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2/image_block_public_access.py b/sdk/python/pulumi_aws/ec2/image_block_public_access.py index 93c9441ff89..aff8c4b42fd 100644 --- a/sdk/python/pulumi_aws/ec2/image_block_public_access.py +++ b/sdk/python/pulumi_aws/ec2/image_block_public_access.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ImageBlockPublicAccessArgs', 'ImageBlockPublicAccess'] @@ -19,7 +19,20 @@ def __init__(__self__, *, The set of arguments for constructing a ImageBlockPublicAccess resource. :param pulumi.Input[str] state: The state of block public access for AMIs at the account level in the configured AWS Region. Valid values: `unblocked` and `block-new-sharing`. """ - pulumi.set(__self__, "state", state) + ImageBlockPublicAccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if state is None: + raise TypeError("Missing 'state' argument") + + _setter("state", state) @property @pulumi.getter @@ -42,8 +55,19 @@ def __init__(__self__, *, Input properties used for looking up and filtering ImageBlockPublicAccess resources. :param pulumi.Input[str] state: The state of block public access for AMIs at the account level in the configured AWS Region. Valid values: `unblocked` and `block-new-sharing`. """ + _ImageBlockPublicAccessState._configure( + lambda key, value: pulumi.set(__self__, key, value), + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter @@ -125,6 +149,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ImageBlockPublicAccessArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/instance.py b/sdk/python/pulumi_aws/ec2/instance.py index e69426434f0..dfe58828539 100644 --- a/sdk/python/pulumi_aws/ec2/instance.py +++ b/sdk/python/pulumi_aws/ec2/instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -118,107 +118,290 @@ def __init__(__self__, *, > **NOTE:** Do not use `volume_tags` if you plan to manage block device tags outside the `ec2.Instance` configuration, such as using `tags` in an `ebs.Volume` resource attached via `ec2.VolumeAttachment`. Doing so will result in resource cycling and inconsistent behavior. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of security group IDs to associate with. """ + InstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami=ami, + associate_public_ip_address=associate_public_ip_address, + availability_zone=availability_zone, + capacity_reservation_specification=capacity_reservation_specification, + cpu_core_count=cpu_core_count, + cpu_options=cpu_options, + cpu_threads_per_core=cpu_threads_per_core, + credit_specification=credit_specification, + disable_api_stop=disable_api_stop, + disable_api_termination=disable_api_termination, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + enclave_options=enclave_options, + ephemeral_block_devices=ephemeral_block_devices, + get_password_data=get_password_data, + hibernation=hibernation, + host_id=host_id, + host_resource_group_arn=host_resource_group_arn, + iam_instance_profile=iam_instance_profile, + instance_initiated_shutdown_behavior=instance_initiated_shutdown_behavior, + instance_market_options=instance_market_options, + instance_type=instance_type, + ipv6_address_count=ipv6_address_count, + ipv6_addresses=ipv6_addresses, + key_name=key_name, + launch_template=launch_template, + maintenance_options=maintenance_options, + metadata_options=metadata_options, + monitoring=monitoring, + network_interfaces=network_interfaces, + placement_group=placement_group, + placement_partition_number=placement_partition_number, + private_dns_name_options=private_dns_name_options, + private_ip=private_ip, + root_block_device=root_block_device, + secondary_private_ips=secondary_private_ips, + security_groups=security_groups, + source_dest_check=source_dest_check, + subnet_id=subnet_id, + tags=tags, + tenancy=tenancy, + user_data=user_data, + user_data_base64=user_data_base64, + user_data_replace_on_change=user_data_replace_on_change, + volume_tags=volume_tags, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami: Optional[pulumi.Input[str]] = None, + associate_public_ip_address: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + capacity_reservation_specification: Optional[pulumi.Input['InstanceCapacityReservationSpecificationArgs']] = None, + cpu_core_count: Optional[pulumi.Input[int]] = None, + cpu_options: Optional[pulumi.Input['InstanceCpuOptionsArgs']] = None, + cpu_threads_per_core: Optional[pulumi.Input[int]] = None, + credit_specification: Optional[pulumi.Input['InstanceCreditSpecificationArgs']] = None, + disable_api_stop: Optional[pulumi.Input[bool]] = None, + disable_api_termination: Optional[pulumi.Input[bool]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEbsBlockDeviceArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + enclave_options: Optional[pulumi.Input['InstanceEnclaveOptionsArgs']] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEphemeralBlockDeviceArgs']]]] = None, + get_password_data: Optional[pulumi.Input[bool]] = None, + hibernation: Optional[pulumi.Input[bool]] = None, + host_id: Optional[pulumi.Input[str]] = None, + host_resource_group_arn: Optional[pulumi.Input[str]] = None, + iam_instance_profile: Optional[pulumi.Input[str]] = None, + instance_initiated_shutdown_behavior: Optional[pulumi.Input[str]] = None, + instance_market_options: Optional[pulumi.Input['InstanceInstanceMarketOptionsArgs']] = None, + instance_type: Optional[pulumi.Input[Union[str, 'InstanceType']]] = None, + ipv6_address_count: Optional[pulumi.Input[int]] = None, + ipv6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + key_name: Optional[pulumi.Input[str]] = None, + launch_template: Optional[pulumi.Input['InstanceLaunchTemplateArgs']] = None, + maintenance_options: Optional[pulumi.Input['InstanceMaintenanceOptionsArgs']] = None, + metadata_options: Optional[pulumi.Input['InstanceMetadataOptionsArgs']] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceNetworkInterfaceArgs']]]] = None, + placement_group: Optional[pulumi.Input[str]] = None, + placement_partition_number: Optional[pulumi.Input[int]] = None, + private_dns_name_options: Optional[pulumi.Input['InstancePrivateDnsNameOptionsArgs']] = None, + private_ip: Optional[pulumi.Input[str]] = None, + root_block_device: Optional[pulumi.Input['InstanceRootBlockDeviceArgs']] = None, + secondary_private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_dest_check: Optional[pulumi.Input[bool]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tenancy: Optional[pulumi.Input[Union[str, 'Tenancy']]] = None, + user_data: Optional[pulumi.Input[str]] = None, + user_data_base64: Optional[pulumi.Input[str]] = None, + user_data_replace_on_change: Optional[pulumi.Input[bool]] = None, + volume_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if capacity_reservation_specification is None and 'capacityReservationSpecification' in kwargs: + capacity_reservation_specification = kwargs['capacityReservationSpecification'] + if cpu_core_count is None and 'cpuCoreCount' in kwargs: + cpu_core_count = kwargs['cpuCoreCount'] + if cpu_options is None and 'cpuOptions' in kwargs: + cpu_options = kwargs['cpuOptions'] + if cpu_threads_per_core is None and 'cpuThreadsPerCore' in kwargs: + cpu_threads_per_core = kwargs['cpuThreadsPerCore'] + if credit_specification is None and 'creditSpecification' in kwargs: + credit_specification = kwargs['creditSpecification'] + if disable_api_stop is None and 'disableApiStop' in kwargs: + disable_api_stop = kwargs['disableApiStop'] + if disable_api_termination is None and 'disableApiTermination' in kwargs: + disable_api_termination = kwargs['disableApiTermination'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if enclave_options is None and 'enclaveOptions' in kwargs: + enclave_options = kwargs['enclaveOptions'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if get_password_data is None and 'getPasswordData' in kwargs: + get_password_data = kwargs['getPasswordData'] + if host_id is None and 'hostId' in kwargs: + host_id = kwargs['hostId'] + if host_resource_group_arn is None and 'hostResourceGroupArn' in kwargs: + host_resource_group_arn = kwargs['hostResourceGroupArn'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if instance_initiated_shutdown_behavior is None and 'instanceInitiatedShutdownBehavior' in kwargs: + instance_initiated_shutdown_behavior = kwargs['instanceInitiatedShutdownBehavior'] + if instance_market_options is None and 'instanceMarketOptions' in kwargs: + instance_market_options = kwargs['instanceMarketOptions'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if ipv6_address_count is None and 'ipv6AddressCount' in kwargs: + ipv6_address_count = kwargs['ipv6AddressCount'] + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if maintenance_options is None and 'maintenanceOptions' in kwargs: + maintenance_options = kwargs['maintenanceOptions'] + if metadata_options is None and 'metadataOptions' in kwargs: + metadata_options = kwargs['metadataOptions'] + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if placement_partition_number is None and 'placementPartitionNumber' in kwargs: + placement_partition_number = kwargs['placementPartitionNumber'] + if private_dns_name_options is None and 'privateDnsNameOptions' in kwargs: + private_dns_name_options = kwargs['privateDnsNameOptions'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if root_block_device is None and 'rootBlockDevice' in kwargs: + root_block_device = kwargs['rootBlockDevice'] + if secondary_private_ips is None and 'secondaryPrivateIps' in kwargs: + secondary_private_ips = kwargs['secondaryPrivateIps'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_dest_check is None and 'sourceDestCheck' in kwargs: + source_dest_check = kwargs['sourceDestCheck'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if user_data_base64 is None and 'userDataBase64' in kwargs: + user_data_base64 = kwargs['userDataBase64'] + if user_data_replace_on_change is None and 'userDataReplaceOnChange' in kwargs: + user_data_replace_on_change = kwargs['userDataReplaceOnChange'] + if volume_tags is None and 'volumeTags' in kwargs: + volume_tags = kwargs['volumeTags'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if ami is not None: - pulumi.set(__self__, "ami", ami) + _setter("ami", ami) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if capacity_reservation_specification is not None: - pulumi.set(__self__, "capacity_reservation_specification", capacity_reservation_specification) + _setter("capacity_reservation_specification", capacity_reservation_specification) if cpu_core_count is not None: warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) pulumi.log.warn("""cpu_core_count is deprecated: use 'cpu_options' argument instead""") if cpu_core_count is not None: - pulumi.set(__self__, "cpu_core_count", cpu_core_count) + _setter("cpu_core_count", cpu_core_count) if cpu_options is not None: - pulumi.set(__self__, "cpu_options", cpu_options) + _setter("cpu_options", cpu_options) if cpu_threads_per_core is not None: warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) pulumi.log.warn("""cpu_threads_per_core is deprecated: use 'cpu_options' argument instead""") if cpu_threads_per_core is not None: - pulumi.set(__self__, "cpu_threads_per_core", cpu_threads_per_core) + _setter("cpu_threads_per_core", cpu_threads_per_core) if credit_specification is not None: - pulumi.set(__self__, "credit_specification", credit_specification) + _setter("credit_specification", credit_specification) if disable_api_stop is not None: - pulumi.set(__self__, "disable_api_stop", disable_api_stop) + _setter("disable_api_stop", disable_api_stop) if disable_api_termination is not None: - pulumi.set(__self__, "disable_api_termination", disable_api_termination) + _setter("disable_api_termination", disable_api_termination) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if enclave_options is not None: - pulumi.set(__self__, "enclave_options", enclave_options) + _setter("enclave_options", enclave_options) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if get_password_data is not None: - pulumi.set(__self__, "get_password_data", get_password_data) + _setter("get_password_data", get_password_data) if hibernation is not None: - pulumi.set(__self__, "hibernation", hibernation) + _setter("hibernation", hibernation) if host_id is not None: - pulumi.set(__self__, "host_id", host_id) + _setter("host_id", host_id) if host_resource_group_arn is not None: - pulumi.set(__self__, "host_resource_group_arn", host_resource_group_arn) + _setter("host_resource_group_arn", host_resource_group_arn) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if instance_initiated_shutdown_behavior is not None: - pulumi.set(__self__, "instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) + _setter("instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) if instance_market_options is not None: - pulumi.set(__self__, "instance_market_options", instance_market_options) + _setter("instance_market_options", instance_market_options) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if ipv6_address_count is not None: - pulumi.set(__self__, "ipv6_address_count", ipv6_address_count) + _setter("ipv6_address_count", ipv6_address_count) if ipv6_addresses is not None: - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) + _setter("ipv6_addresses", ipv6_addresses) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if maintenance_options is not None: - pulumi.set(__self__, "maintenance_options", maintenance_options) + _setter("maintenance_options", maintenance_options) if metadata_options is not None: - pulumi.set(__self__, "metadata_options", metadata_options) + _setter("metadata_options", metadata_options) if monitoring is not None: - pulumi.set(__self__, "monitoring", monitoring) + _setter("monitoring", monitoring) if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if placement_partition_number is not None: - pulumi.set(__self__, "placement_partition_number", placement_partition_number) + _setter("placement_partition_number", placement_partition_number) if private_dns_name_options is not None: - pulumi.set(__self__, "private_dns_name_options", private_dns_name_options) + _setter("private_dns_name_options", private_dns_name_options) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if root_block_device is not None: - pulumi.set(__self__, "root_block_device", root_block_device) + _setter("root_block_device", root_block_device) if secondary_private_ips is not None: - pulumi.set(__self__, "secondary_private_ips", secondary_private_ips) + _setter("secondary_private_ips", secondary_private_ips) if security_groups is not None: warnings.warn("""Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates.""", DeprecationWarning) pulumi.log.warn("""security_groups is deprecated: Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates.""") if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_dest_check is not None: - pulumi.set(__self__, "source_dest_check", source_dest_check) + _setter("source_dest_check", source_dest_check) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if user_data_base64 is not None: - pulumi.set(__self__, "user_data_base64", user_data_base64) + _setter("user_data_base64", user_data_base64) if user_data_replace_on_change is not None: - pulumi.set(__self__, "user_data_replace_on_change", user_data_replace_on_change) + _setter("user_data_replace_on_change", user_data_replace_on_change) if volume_tags is not None: - pulumi.set(__self__, "volume_tags", volume_tags) + _setter("volume_tags", volume_tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter @@ -914,132 +1097,357 @@ def __init__(__self__, *, > **NOTE:** Do not use `volume_tags` if you plan to manage block device tags outside the `ec2.Instance` configuration, such as using `tags` in an `ebs.Volume` resource attached via `ec2.VolumeAttachment`. Doing so will result in resource cycling and inconsistent behavior. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of security group IDs to associate with. """ + _InstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami=ami, + arn=arn, + associate_public_ip_address=associate_public_ip_address, + availability_zone=availability_zone, + capacity_reservation_specification=capacity_reservation_specification, + cpu_core_count=cpu_core_count, + cpu_options=cpu_options, + cpu_threads_per_core=cpu_threads_per_core, + credit_specification=credit_specification, + disable_api_stop=disable_api_stop, + disable_api_termination=disable_api_termination, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + enclave_options=enclave_options, + ephemeral_block_devices=ephemeral_block_devices, + get_password_data=get_password_data, + hibernation=hibernation, + host_id=host_id, + host_resource_group_arn=host_resource_group_arn, + iam_instance_profile=iam_instance_profile, + instance_initiated_shutdown_behavior=instance_initiated_shutdown_behavior, + instance_lifecycle=instance_lifecycle, + instance_market_options=instance_market_options, + instance_state=instance_state, + instance_type=instance_type, + ipv6_address_count=ipv6_address_count, + ipv6_addresses=ipv6_addresses, + key_name=key_name, + launch_template=launch_template, + maintenance_options=maintenance_options, + metadata_options=metadata_options, + monitoring=monitoring, + network_interfaces=network_interfaces, + outpost_arn=outpost_arn, + password_data=password_data, + placement_group=placement_group, + placement_partition_number=placement_partition_number, + primary_network_interface_id=primary_network_interface_id, + private_dns=private_dns, + private_dns_name_options=private_dns_name_options, + private_ip=private_ip, + public_dns=public_dns, + public_ip=public_ip, + root_block_device=root_block_device, + secondary_private_ips=secondary_private_ips, + security_groups=security_groups, + source_dest_check=source_dest_check, + spot_instance_request_id=spot_instance_request_id, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + tenancy=tenancy, + user_data=user_data, + user_data_base64=user_data_base64, + user_data_replace_on_change=user_data_replace_on_change, + volume_tags=volume_tags, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + associate_public_ip_address: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + capacity_reservation_specification: Optional[pulumi.Input['InstanceCapacityReservationSpecificationArgs']] = None, + cpu_core_count: Optional[pulumi.Input[int]] = None, + cpu_options: Optional[pulumi.Input['InstanceCpuOptionsArgs']] = None, + cpu_threads_per_core: Optional[pulumi.Input[int]] = None, + credit_specification: Optional[pulumi.Input['InstanceCreditSpecificationArgs']] = None, + disable_api_stop: Optional[pulumi.Input[bool]] = None, + disable_api_termination: Optional[pulumi.Input[bool]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEbsBlockDeviceArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + enclave_options: Optional[pulumi.Input['InstanceEnclaveOptionsArgs']] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEphemeralBlockDeviceArgs']]]] = None, + get_password_data: Optional[pulumi.Input[bool]] = None, + hibernation: Optional[pulumi.Input[bool]] = None, + host_id: Optional[pulumi.Input[str]] = None, + host_resource_group_arn: Optional[pulumi.Input[str]] = None, + iam_instance_profile: Optional[pulumi.Input[str]] = None, + instance_initiated_shutdown_behavior: Optional[pulumi.Input[str]] = None, + instance_lifecycle: Optional[pulumi.Input[str]] = None, + instance_market_options: Optional[pulumi.Input['InstanceInstanceMarketOptionsArgs']] = None, + instance_state: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[Union[str, 'InstanceType']]] = None, + ipv6_address_count: Optional[pulumi.Input[int]] = None, + ipv6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + key_name: Optional[pulumi.Input[str]] = None, + launch_template: Optional[pulumi.Input['InstanceLaunchTemplateArgs']] = None, + maintenance_options: Optional[pulumi.Input['InstanceMaintenanceOptionsArgs']] = None, + metadata_options: Optional[pulumi.Input['InstanceMetadataOptionsArgs']] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceNetworkInterfaceArgs']]]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + password_data: Optional[pulumi.Input[str]] = None, + placement_group: Optional[pulumi.Input[str]] = None, + placement_partition_number: Optional[pulumi.Input[int]] = None, + primary_network_interface_id: Optional[pulumi.Input[str]] = None, + private_dns: Optional[pulumi.Input[str]] = None, + private_dns_name_options: Optional[pulumi.Input['InstancePrivateDnsNameOptionsArgs']] = None, + private_ip: Optional[pulumi.Input[str]] = None, + public_dns: Optional[pulumi.Input[str]] = None, + public_ip: Optional[pulumi.Input[str]] = None, + root_block_device: Optional[pulumi.Input['InstanceRootBlockDeviceArgs']] = None, + secondary_private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_dest_check: Optional[pulumi.Input[bool]] = None, + spot_instance_request_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tenancy: Optional[pulumi.Input[Union[str, 'Tenancy']]] = None, + user_data: Optional[pulumi.Input[str]] = None, + user_data_base64: Optional[pulumi.Input[str]] = None, + user_data_replace_on_change: Optional[pulumi.Input[bool]] = None, + volume_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if capacity_reservation_specification is None and 'capacityReservationSpecification' in kwargs: + capacity_reservation_specification = kwargs['capacityReservationSpecification'] + if cpu_core_count is None and 'cpuCoreCount' in kwargs: + cpu_core_count = kwargs['cpuCoreCount'] + if cpu_options is None and 'cpuOptions' in kwargs: + cpu_options = kwargs['cpuOptions'] + if cpu_threads_per_core is None and 'cpuThreadsPerCore' in kwargs: + cpu_threads_per_core = kwargs['cpuThreadsPerCore'] + if credit_specification is None and 'creditSpecification' in kwargs: + credit_specification = kwargs['creditSpecification'] + if disable_api_stop is None and 'disableApiStop' in kwargs: + disable_api_stop = kwargs['disableApiStop'] + if disable_api_termination is None and 'disableApiTermination' in kwargs: + disable_api_termination = kwargs['disableApiTermination'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if enclave_options is None and 'enclaveOptions' in kwargs: + enclave_options = kwargs['enclaveOptions'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if get_password_data is None and 'getPasswordData' in kwargs: + get_password_data = kwargs['getPasswordData'] + if host_id is None and 'hostId' in kwargs: + host_id = kwargs['hostId'] + if host_resource_group_arn is None and 'hostResourceGroupArn' in kwargs: + host_resource_group_arn = kwargs['hostResourceGroupArn'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if instance_initiated_shutdown_behavior is None and 'instanceInitiatedShutdownBehavior' in kwargs: + instance_initiated_shutdown_behavior = kwargs['instanceInitiatedShutdownBehavior'] + if instance_lifecycle is None and 'instanceLifecycle' in kwargs: + instance_lifecycle = kwargs['instanceLifecycle'] + if instance_market_options is None and 'instanceMarketOptions' in kwargs: + instance_market_options = kwargs['instanceMarketOptions'] + if instance_state is None and 'instanceState' in kwargs: + instance_state = kwargs['instanceState'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if ipv6_address_count is None and 'ipv6AddressCount' in kwargs: + ipv6_address_count = kwargs['ipv6AddressCount'] + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if maintenance_options is None and 'maintenanceOptions' in kwargs: + maintenance_options = kwargs['maintenanceOptions'] + if metadata_options is None and 'metadataOptions' in kwargs: + metadata_options = kwargs['metadataOptions'] + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if password_data is None and 'passwordData' in kwargs: + password_data = kwargs['passwordData'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if placement_partition_number is None and 'placementPartitionNumber' in kwargs: + placement_partition_number = kwargs['placementPartitionNumber'] + if primary_network_interface_id is None and 'primaryNetworkInterfaceId' in kwargs: + primary_network_interface_id = kwargs['primaryNetworkInterfaceId'] + if private_dns is None and 'privateDns' in kwargs: + private_dns = kwargs['privateDns'] + if private_dns_name_options is None and 'privateDnsNameOptions' in kwargs: + private_dns_name_options = kwargs['privateDnsNameOptions'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if public_dns is None and 'publicDns' in kwargs: + public_dns = kwargs['publicDns'] + if public_ip is None and 'publicIp' in kwargs: + public_ip = kwargs['publicIp'] + if root_block_device is None and 'rootBlockDevice' in kwargs: + root_block_device = kwargs['rootBlockDevice'] + if secondary_private_ips is None and 'secondaryPrivateIps' in kwargs: + secondary_private_ips = kwargs['secondaryPrivateIps'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_dest_check is None and 'sourceDestCheck' in kwargs: + source_dest_check = kwargs['sourceDestCheck'] + if spot_instance_request_id is None and 'spotInstanceRequestId' in kwargs: + spot_instance_request_id = kwargs['spotInstanceRequestId'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if user_data_base64 is None and 'userDataBase64' in kwargs: + user_data_base64 = kwargs['userDataBase64'] + if user_data_replace_on_change is None and 'userDataReplaceOnChange' in kwargs: + user_data_replace_on_change = kwargs['userDataReplaceOnChange'] + if volume_tags is None and 'volumeTags' in kwargs: + volume_tags = kwargs['volumeTags'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if ami is not None: - pulumi.set(__self__, "ami", ami) + _setter("ami", ami) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if capacity_reservation_specification is not None: - pulumi.set(__self__, "capacity_reservation_specification", capacity_reservation_specification) + _setter("capacity_reservation_specification", capacity_reservation_specification) if cpu_core_count is not None: warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) pulumi.log.warn("""cpu_core_count is deprecated: use 'cpu_options' argument instead""") if cpu_core_count is not None: - pulumi.set(__self__, "cpu_core_count", cpu_core_count) + _setter("cpu_core_count", cpu_core_count) if cpu_options is not None: - pulumi.set(__self__, "cpu_options", cpu_options) + _setter("cpu_options", cpu_options) if cpu_threads_per_core is not None: warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) pulumi.log.warn("""cpu_threads_per_core is deprecated: use 'cpu_options' argument instead""") if cpu_threads_per_core is not None: - pulumi.set(__self__, "cpu_threads_per_core", cpu_threads_per_core) + _setter("cpu_threads_per_core", cpu_threads_per_core) if credit_specification is not None: - pulumi.set(__self__, "credit_specification", credit_specification) + _setter("credit_specification", credit_specification) if disable_api_stop is not None: - pulumi.set(__self__, "disable_api_stop", disable_api_stop) + _setter("disable_api_stop", disable_api_stop) if disable_api_termination is not None: - pulumi.set(__self__, "disable_api_termination", disable_api_termination) + _setter("disable_api_termination", disable_api_termination) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if enclave_options is not None: - pulumi.set(__self__, "enclave_options", enclave_options) + _setter("enclave_options", enclave_options) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if get_password_data is not None: - pulumi.set(__self__, "get_password_data", get_password_data) + _setter("get_password_data", get_password_data) if hibernation is not None: - pulumi.set(__self__, "hibernation", hibernation) + _setter("hibernation", hibernation) if host_id is not None: - pulumi.set(__self__, "host_id", host_id) + _setter("host_id", host_id) if host_resource_group_arn is not None: - pulumi.set(__self__, "host_resource_group_arn", host_resource_group_arn) + _setter("host_resource_group_arn", host_resource_group_arn) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if instance_initiated_shutdown_behavior is not None: - pulumi.set(__self__, "instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) + _setter("instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) if instance_lifecycle is not None: - pulumi.set(__self__, "instance_lifecycle", instance_lifecycle) + _setter("instance_lifecycle", instance_lifecycle) if instance_market_options is not None: - pulumi.set(__self__, "instance_market_options", instance_market_options) + _setter("instance_market_options", instance_market_options) if instance_state is not None: - pulumi.set(__self__, "instance_state", instance_state) + _setter("instance_state", instance_state) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if ipv6_address_count is not None: - pulumi.set(__self__, "ipv6_address_count", ipv6_address_count) + _setter("ipv6_address_count", ipv6_address_count) if ipv6_addresses is not None: - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) + _setter("ipv6_addresses", ipv6_addresses) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if maintenance_options is not None: - pulumi.set(__self__, "maintenance_options", maintenance_options) + _setter("maintenance_options", maintenance_options) if metadata_options is not None: - pulumi.set(__self__, "metadata_options", metadata_options) + _setter("metadata_options", metadata_options) if monitoring is not None: - pulumi.set(__self__, "monitoring", monitoring) + _setter("monitoring", monitoring) if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if password_data is not None: - pulumi.set(__self__, "password_data", password_data) + _setter("password_data", password_data) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if placement_partition_number is not None: - pulumi.set(__self__, "placement_partition_number", placement_partition_number) + _setter("placement_partition_number", placement_partition_number) if primary_network_interface_id is not None: - pulumi.set(__self__, "primary_network_interface_id", primary_network_interface_id) + _setter("primary_network_interface_id", primary_network_interface_id) if private_dns is not None: - pulumi.set(__self__, "private_dns", private_dns) + _setter("private_dns", private_dns) if private_dns_name_options is not None: - pulumi.set(__self__, "private_dns_name_options", private_dns_name_options) + _setter("private_dns_name_options", private_dns_name_options) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if public_dns is not None: - pulumi.set(__self__, "public_dns", public_dns) + _setter("public_dns", public_dns) if public_ip is not None: - pulumi.set(__self__, "public_ip", public_ip) + _setter("public_ip", public_ip) if root_block_device is not None: - pulumi.set(__self__, "root_block_device", root_block_device) + _setter("root_block_device", root_block_device) if secondary_private_ips is not None: - pulumi.set(__self__, "secondary_private_ips", secondary_private_ips) + _setter("secondary_private_ips", secondary_private_ips) if security_groups is not None: warnings.warn("""Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates.""", DeprecationWarning) pulumi.log.warn("""security_groups is deprecated: Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates.""") if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_dest_check is not None: - pulumi.set(__self__, "source_dest_check", source_dest_check) + _setter("source_dest_check", source_dest_check) if spot_instance_request_id is not None: - pulumi.set(__self__, "spot_instance_request_id", spot_instance_request_id) + _setter("spot_instance_request_id", spot_instance_request_id) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if user_data_base64 is not None: - pulumi.set(__self__, "user_data_base64", user_data_base64) + _setter("user_data_base64", user_data_base64) if user_data_replace_on_change is not None: - pulumi.set(__self__, "user_data_replace_on_change", user_data_replace_on_change) + _setter("user_data_replace_on_change", user_data_replace_on_change) if volume_tags is not None: - pulumi.set(__self__, "volume_tags", volume_tags) + _setter("volume_tags", volume_tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter @@ -2177,6 +2585,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -2240,21 +2652,19 @@ def _internal_init(__self__, __props__.__dict__["ami"] = ami __props__.__dict__["associate_public_ip_address"] = associate_public_ip_address __props__.__dict__["availability_zone"] = availability_zone + capacity_reservation_specification = _utilities.configure(capacity_reservation_specification, InstanceCapacityReservationSpecificationArgs, True) __props__.__dict__["capacity_reservation_specification"] = capacity_reservation_specification - if cpu_core_count is not None and not opts.urn: - warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) - pulumi.log.warn("""cpu_core_count is deprecated: use 'cpu_options' argument instead""") __props__.__dict__["cpu_core_count"] = cpu_core_count + cpu_options = _utilities.configure(cpu_options, InstanceCpuOptionsArgs, True) __props__.__dict__["cpu_options"] = cpu_options - if cpu_threads_per_core is not None and not opts.urn: - warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) - pulumi.log.warn("""cpu_threads_per_core is deprecated: use 'cpu_options' argument instead""") __props__.__dict__["cpu_threads_per_core"] = cpu_threads_per_core + credit_specification = _utilities.configure(credit_specification, InstanceCreditSpecificationArgs, True) __props__.__dict__["credit_specification"] = credit_specification __props__.__dict__["disable_api_stop"] = disable_api_stop __props__.__dict__["disable_api_termination"] = disable_api_termination __props__.__dict__["ebs_block_devices"] = ebs_block_devices __props__.__dict__["ebs_optimized"] = ebs_optimized + enclave_options = _utilities.configure(enclave_options, InstanceEnclaveOptionsArgs, True) __props__.__dict__["enclave_options"] = enclave_options __props__.__dict__["ephemeral_block_devices"] = ephemeral_block_devices __props__.__dict__["get_password_data"] = get_password_data @@ -2263,25 +2673,28 @@ def _internal_init(__self__, __props__.__dict__["host_resource_group_arn"] = host_resource_group_arn __props__.__dict__["iam_instance_profile"] = iam_instance_profile __props__.__dict__["instance_initiated_shutdown_behavior"] = instance_initiated_shutdown_behavior + instance_market_options = _utilities.configure(instance_market_options, InstanceInstanceMarketOptionsArgs, True) __props__.__dict__["instance_market_options"] = instance_market_options __props__.__dict__["instance_type"] = instance_type __props__.__dict__["ipv6_address_count"] = ipv6_address_count __props__.__dict__["ipv6_addresses"] = ipv6_addresses __props__.__dict__["key_name"] = key_name + launch_template = _utilities.configure(launch_template, InstanceLaunchTemplateArgs, True) __props__.__dict__["launch_template"] = launch_template + maintenance_options = _utilities.configure(maintenance_options, InstanceMaintenanceOptionsArgs, True) __props__.__dict__["maintenance_options"] = maintenance_options + metadata_options = _utilities.configure(metadata_options, InstanceMetadataOptionsArgs, True) __props__.__dict__["metadata_options"] = metadata_options __props__.__dict__["monitoring"] = monitoring __props__.__dict__["network_interfaces"] = network_interfaces __props__.__dict__["placement_group"] = placement_group __props__.__dict__["placement_partition_number"] = placement_partition_number + private_dns_name_options = _utilities.configure(private_dns_name_options, InstancePrivateDnsNameOptionsArgs, True) __props__.__dict__["private_dns_name_options"] = private_dns_name_options __props__.__dict__["private_ip"] = private_ip + root_block_device = _utilities.configure(root_block_device, InstanceRootBlockDeviceArgs, True) __props__.__dict__["root_block_device"] = root_block_device __props__.__dict__["secondary_private_ips"] = secondary_private_ips - if security_groups is not None and not opts.urn: - warnings.warn("""Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates.""", DeprecationWarning) - pulumi.log.warn("""security_groups is deprecated: Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates.""") __props__.__dict__["security_groups"] = security_groups __props__.__dict__["source_dest_check"] = source_dest_check __props__.__dict__["subnet_id"] = subnet_id diff --git a/sdk/python/pulumi_aws/ec2/internet_gateway.py b/sdk/python/pulumi_aws/ec2/internet_gateway.py index 45ddf5c3616..22e77473694 100644 --- a/sdk/python/pulumi_aws/ec2/internet_gateway.py +++ b/sdk/python/pulumi_aws/ec2/internet_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InternetGatewayArgs', 'InternetGateway'] @@ -32,10 +32,25 @@ def __init__(__self__, *, ``` :param pulumi.Input[str] vpc_id: The VPC ID to create in. See the ec2.InternetGatewayAttachment resource for an alternate way to attach an Internet Gateway to a VPC. """ + InternetGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tags=tags, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -100,19 +115,44 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The VPC ID to create in. See the ec2.InternetGatewayAttachment resource for an alternate way to attach an Internet Gateway to a VPC. """ + _InternetGatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -277,6 +317,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InternetGatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/internet_gateway_attachment.py b/sdk/python/pulumi_aws/ec2/internet_gateway_attachment.py index 4d21d685d6b..f2489298d7c 100644 --- a/sdk/python/pulumi_aws/ec2/internet_gateway_attachment.py +++ b/sdk/python/pulumi_aws/ec2/internet_gateway_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InternetGatewayAttachmentArgs', 'InternetGatewayAttachment'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] internet_gateway_id: The ID of the internet gateway. :param pulumi.Input[str] vpc_id: The ID of the VPC. """ - pulumi.set(__self__, "internet_gateway_id", internet_gateway_id) - pulumi.set(__self__, "vpc_id", vpc_id) + InternetGatewayAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + internet_gateway_id=internet_gateway_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + internet_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if internet_gateway_id is None and 'internetGatewayId' in kwargs: + internet_gateway_id = kwargs['internetGatewayId'] + if internet_gateway_id is None: + raise TypeError("Missing 'internet_gateway_id' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("internet_gateway_id", internet_gateway_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="internetGatewayId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] internet_gateway_id: The ID of the internet gateway. :param pulumi.Input[str] vpc_id: The ID of the VPC. """ + _InternetGatewayAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + internet_gateway_id=internet_gateway_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + internet_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if internet_gateway_id is None and 'internetGatewayId' in kwargs: + internet_gateway_id = kwargs['internetGatewayId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if internet_gateway_id is not None: - pulumi.set(__self__, "internet_gateway_id", internet_gateway_id) + _setter("internet_gateway_id", internet_gateway_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="internetGatewayId") @@ -166,6 +204,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InternetGatewayAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/key_pair.py b/sdk/python/pulumi_aws/ec2/key_pair.py index 3a8fc6627a2..8bea7d0543a 100644 --- a/sdk/python/pulumi_aws/ec2/key_pair.py +++ b/sdk/python/pulumi_aws/ec2/key_pair.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KeyPairArgs', 'KeyPair'] @@ -25,13 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[str] key_name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `key_name`. If neither `key_name` nor `key_name_prefix` is provided, the provider will create a unique key name. :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. """ - pulumi.set(__self__, "public_key", public_key) + KeyPairArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + public_key=public_key, + key_name=key_name, + key_name_prefix=key_name_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + public_key: Optional[pulumi.Input[str]] = None, + key_name: Optional[pulumi.Input[str]] = None, + key_name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if public_key is None: + raise TypeError("Missing 'public_key' argument") + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if key_name_prefix is None and 'keyNamePrefix' in kwargs: + key_name_prefix = kwargs['keyNamePrefix'] + + _setter("public_key", public_key) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if key_name_prefix is not None: - pulumi.set(__self__, "key_name_prefix", key_name_prefix) + _setter("key_name_prefix", key_name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="publicKey") @@ -106,27 +131,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _KeyPairState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + fingerprint=fingerprint, + key_name=key_name, + key_name_prefix=key_name_prefix, + key_pair_id=key_pair_id, + key_type=key_type, + public_key=public_key, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + fingerprint: Optional[pulumi.Input[str]] = None, + key_name: Optional[pulumi.Input[str]] = None, + key_name_prefix: Optional[pulumi.Input[str]] = None, + key_pair_id: Optional[pulumi.Input[str]] = None, + key_type: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if key_name_prefix is None and 'keyNamePrefix' in kwargs: + key_name_prefix = kwargs['keyNamePrefix'] + if key_pair_id is None and 'keyPairId' in kwargs: + key_pair_id = kwargs['keyPairId'] + if key_type is None and 'keyType' in kwargs: + key_type = kwargs['keyType'] + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if fingerprint is not None: - pulumi.set(__self__, "fingerprint", fingerprint) + _setter("fingerprint", fingerprint) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if key_name_prefix is not None: - pulumi.set(__self__, "key_name_prefix", key_name_prefix) + _setter("key_name_prefix", key_name_prefix) if key_pair_id is not None: - pulumi.set(__self__, "key_pair_id", key_pair_id) + _setter("key_pair_id", key_pair_id) if key_type is not None: - pulumi.set(__self__, "key_type", key_type) + _setter("key_type", key_type) if public_key is not None: - pulumi.set(__self__, "public_key", public_key) + _setter("public_key", public_key) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -331,6 +395,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KeyPairArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/launch_configuration.py b/sdk/python/pulumi_aws/ec2/launch_configuration.py index 5626118bd6c..f48b7ac9bcc 100644 --- a/sdk/python/pulumi_aws/ec2/launch_configuration.py +++ b/sdk/python/pulumi_aws/ec2/launch_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -57,40 +57,123 @@ def __init__(__self__, *, :param pulumi.Input[str] user_data: The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. """ - pulumi.set(__self__, "image_id", image_id) - pulumi.set(__self__, "instance_type", instance_type) + LaunchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_id=image_id, + instance_type=instance_type, + associate_public_ip_address=associate_public_ip_address, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + enable_monitoring=enable_monitoring, + ephemeral_block_devices=ephemeral_block_devices, + iam_instance_profile=iam_instance_profile, + key_name=key_name, + metadata_options=metadata_options, + name=name, + name_prefix=name_prefix, + placement_tenancy=placement_tenancy, + root_block_device=root_block_device, + security_groups=security_groups, + spot_price=spot_price, + user_data=user_data, + user_data_base64=user_data_base64, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_id: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + associate_public_ip_address: Optional[pulumi.Input[bool]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchConfigurationEbsBlockDeviceArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + enable_monitoring: Optional[pulumi.Input[bool]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchConfigurationEphemeralBlockDeviceArgs']]]] = None, + iam_instance_profile: Optional[pulumi.Input[str]] = None, + key_name: Optional[pulumi.Input[str]] = None, + metadata_options: Optional[pulumi.Input['LaunchConfigurationMetadataOptionsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + placement_tenancy: Optional[pulumi.Input[str]] = None, + root_block_device: Optional[pulumi.Input['LaunchConfigurationRootBlockDeviceArgs']] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + spot_price: Optional[pulumi.Input[str]] = None, + user_data: Optional[pulumi.Input[str]] = None, + user_data_base64: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if image_id is None: + raise TypeError("Missing 'image_id' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if enable_monitoring is None and 'enableMonitoring' in kwargs: + enable_monitoring = kwargs['enableMonitoring'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if metadata_options is None and 'metadataOptions' in kwargs: + metadata_options = kwargs['metadataOptions'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if placement_tenancy is None and 'placementTenancy' in kwargs: + placement_tenancy = kwargs['placementTenancy'] + if root_block_device is None and 'rootBlockDevice' in kwargs: + root_block_device = kwargs['rootBlockDevice'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if user_data_base64 is None and 'userDataBase64' in kwargs: + user_data_base64 = kwargs['userDataBase64'] + + _setter("image_id", image_id) + _setter("instance_type", instance_type) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if enable_monitoring is not None: - pulumi.set(__self__, "enable_monitoring", enable_monitoring) + _setter("enable_monitoring", enable_monitoring) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if metadata_options is not None: - pulumi.set(__self__, "metadata_options", metadata_options) + _setter("metadata_options", metadata_options) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if placement_tenancy is not None: - pulumi.set(__self__, "placement_tenancy", placement_tenancy) + _setter("placement_tenancy", placement_tenancy) if root_block_device is not None: - pulumi.set(__self__, "root_block_device", root_block_device) + _setter("root_block_device", root_block_device) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if user_data_base64 is not None: - pulumi.set(__self__, "user_data_base64", user_data_base64) + _setter("user_data_base64", user_data_base64) @property @pulumi.getter(name="imageId") @@ -357,44 +440,125 @@ def __init__(__self__, *, :param pulumi.Input[str] user_data: The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. """ + _LaunchConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + associate_public_ip_address=associate_public_ip_address, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + enable_monitoring=enable_monitoring, + ephemeral_block_devices=ephemeral_block_devices, + iam_instance_profile=iam_instance_profile, + image_id=image_id, + instance_type=instance_type, + key_name=key_name, + metadata_options=metadata_options, + name=name, + name_prefix=name_prefix, + placement_tenancy=placement_tenancy, + root_block_device=root_block_device, + security_groups=security_groups, + spot_price=spot_price, + user_data=user_data, + user_data_base64=user_data_base64, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + associate_public_ip_address: Optional[pulumi.Input[bool]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchConfigurationEbsBlockDeviceArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + enable_monitoring: Optional[pulumi.Input[bool]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchConfigurationEphemeralBlockDeviceArgs']]]] = None, + iam_instance_profile: Optional[pulumi.Input[str]] = None, + image_id: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + key_name: Optional[pulumi.Input[str]] = None, + metadata_options: Optional[pulumi.Input['LaunchConfigurationMetadataOptionsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + placement_tenancy: Optional[pulumi.Input[str]] = None, + root_block_device: Optional[pulumi.Input['LaunchConfigurationRootBlockDeviceArgs']] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + spot_price: Optional[pulumi.Input[str]] = None, + user_data: Optional[pulumi.Input[str]] = None, + user_data_base64: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if enable_monitoring is None and 'enableMonitoring' in kwargs: + enable_monitoring = kwargs['enableMonitoring'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if metadata_options is None and 'metadataOptions' in kwargs: + metadata_options = kwargs['metadataOptions'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if placement_tenancy is None and 'placementTenancy' in kwargs: + placement_tenancy = kwargs['placementTenancy'] + if root_block_device is None and 'rootBlockDevice' in kwargs: + root_block_device = kwargs['rootBlockDevice'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if user_data_base64 is None and 'userDataBase64' in kwargs: + user_data_base64 = kwargs['userDataBase64'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if enable_monitoring is not None: - pulumi.set(__self__, "enable_monitoring", enable_monitoring) + _setter("enable_monitoring", enable_monitoring) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if image_id is not None: - pulumi.set(__self__, "image_id", image_id) + _setter("image_id", image_id) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if metadata_options is not None: - pulumi.set(__self__, "metadata_options", metadata_options) + _setter("metadata_options", metadata_options) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if placement_tenancy is not None: - pulumi.set(__self__, "placement_tenancy", placement_tenancy) + _setter("placement_tenancy", placement_tenancy) if root_block_device is not None: - pulumi.set(__self__, "root_block_device", root_block_device) + _setter("root_block_device", root_block_device) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if user_data_base64 is not None: - pulumi.set(__self__, "user_data_base64", user_data_base64) + _setter("user_data_base64", user_data_base64) @property @pulumi.getter @@ -1012,6 +1176,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LaunchConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1057,10 +1225,12 @@ def _internal_init(__self__, raise TypeError("Missing required property 'instance_type'") __props__.__dict__["instance_type"] = instance_type __props__.__dict__["key_name"] = key_name + metadata_options = _utilities.configure(metadata_options, LaunchConfigurationMetadataOptionsArgs, True) __props__.__dict__["metadata_options"] = metadata_options __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix __props__.__dict__["placement_tenancy"] = placement_tenancy + root_block_device = _utilities.configure(root_block_device, LaunchConfigurationRootBlockDeviceArgs, True) __props__.__dict__["root_block_device"] = root_block_device __props__.__dict__["security_groups"] = security_groups __props__.__dict__["spot_price"] = spot_price diff --git a/sdk/python/pulumi_aws/ec2/launch_template.py b/sdk/python/pulumi_aws/ec2/launch_template.py index 264cd35d8f3..3a5c0f86b8f 100644 --- a/sdk/python/pulumi_aws/ec2/launch_template.py +++ b/sdk/python/pulumi_aws/ec2/launch_template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -102,80 +102,227 @@ def __init__(__self__, *, :param pulumi.Input[str] user_data: The base64-encoded user data to provide when launching the instance. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of security group IDs to associate with. Conflicts with `network_interfaces.security_groups` """ + LaunchTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_device_mappings=block_device_mappings, + capacity_reservation_specification=capacity_reservation_specification, + cpu_options=cpu_options, + credit_specification=credit_specification, + default_version=default_version, + description=description, + disable_api_stop=disable_api_stop, + disable_api_termination=disable_api_termination, + ebs_optimized=ebs_optimized, + elastic_gpu_specifications=elastic_gpu_specifications, + elastic_inference_accelerator=elastic_inference_accelerator, + enclave_options=enclave_options, + hibernation_options=hibernation_options, + iam_instance_profile=iam_instance_profile, + image_id=image_id, + instance_initiated_shutdown_behavior=instance_initiated_shutdown_behavior, + instance_market_options=instance_market_options, + instance_requirements=instance_requirements, + instance_type=instance_type, + kernel_id=kernel_id, + key_name=key_name, + license_specifications=license_specifications, + maintenance_options=maintenance_options, + metadata_options=metadata_options, + monitoring=monitoring, + name=name, + name_prefix=name_prefix, + network_interfaces=network_interfaces, + placement=placement, + private_dns_name_options=private_dns_name_options, + ram_disk_id=ram_disk_id, + security_group_names=security_group_names, + tag_specifications=tag_specifications, + tags=tags, + update_default_version=update_default_version, + user_data=user_data, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateBlockDeviceMappingArgs']]]] = None, + capacity_reservation_specification: Optional[pulumi.Input['LaunchTemplateCapacityReservationSpecificationArgs']] = None, + cpu_options: Optional[pulumi.Input['LaunchTemplateCpuOptionsArgs']] = None, + credit_specification: Optional[pulumi.Input['LaunchTemplateCreditSpecificationArgs']] = None, + default_version: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + disable_api_stop: Optional[pulumi.Input[bool]] = None, + disable_api_termination: Optional[pulumi.Input[bool]] = None, + ebs_optimized: Optional[pulumi.Input[str]] = None, + elastic_gpu_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateElasticGpuSpecificationArgs']]]] = None, + elastic_inference_accelerator: Optional[pulumi.Input['LaunchTemplateElasticInferenceAcceleratorArgs']] = None, + enclave_options: Optional[pulumi.Input['LaunchTemplateEnclaveOptionsArgs']] = None, + hibernation_options: Optional[pulumi.Input['LaunchTemplateHibernationOptionsArgs']] = None, + iam_instance_profile: Optional[pulumi.Input['LaunchTemplateIamInstanceProfileArgs']] = None, + image_id: Optional[pulumi.Input[str]] = None, + instance_initiated_shutdown_behavior: Optional[pulumi.Input[str]] = None, + instance_market_options: Optional[pulumi.Input['LaunchTemplateInstanceMarketOptionsArgs']] = None, + instance_requirements: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsArgs']] = None, + instance_type: Optional[pulumi.Input[str]] = None, + kernel_id: Optional[pulumi.Input[str]] = None, + key_name: Optional[pulumi.Input[str]] = None, + license_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateLicenseSpecificationArgs']]]] = None, + maintenance_options: Optional[pulumi.Input['LaunchTemplateMaintenanceOptionsArgs']] = None, + metadata_options: Optional[pulumi.Input['LaunchTemplateMetadataOptionsArgs']] = None, + monitoring: Optional[pulumi.Input['LaunchTemplateMonitoringArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateNetworkInterfaceArgs']]]] = None, + placement: Optional[pulumi.Input['LaunchTemplatePlacementArgs']] = None, + private_dns_name_options: Optional[pulumi.Input['LaunchTemplatePrivateDnsNameOptionsArgs']] = None, + ram_disk_id: Optional[pulumi.Input[str]] = None, + security_group_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateTagSpecificationArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_default_version: Optional[pulumi.Input[bool]] = None, + user_data: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_device_mappings is None and 'blockDeviceMappings' in kwargs: + block_device_mappings = kwargs['blockDeviceMappings'] + if capacity_reservation_specification is None and 'capacityReservationSpecification' in kwargs: + capacity_reservation_specification = kwargs['capacityReservationSpecification'] + if cpu_options is None and 'cpuOptions' in kwargs: + cpu_options = kwargs['cpuOptions'] + if credit_specification is None and 'creditSpecification' in kwargs: + credit_specification = kwargs['creditSpecification'] + if default_version is None and 'defaultVersion' in kwargs: + default_version = kwargs['defaultVersion'] + if disable_api_stop is None and 'disableApiStop' in kwargs: + disable_api_stop = kwargs['disableApiStop'] + if disable_api_termination is None and 'disableApiTermination' in kwargs: + disable_api_termination = kwargs['disableApiTermination'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if elastic_gpu_specifications is None and 'elasticGpuSpecifications' in kwargs: + elastic_gpu_specifications = kwargs['elasticGpuSpecifications'] + if elastic_inference_accelerator is None and 'elasticInferenceAccelerator' in kwargs: + elastic_inference_accelerator = kwargs['elasticInferenceAccelerator'] + if enclave_options is None and 'enclaveOptions' in kwargs: + enclave_options = kwargs['enclaveOptions'] + if hibernation_options is None and 'hibernationOptions' in kwargs: + hibernation_options = kwargs['hibernationOptions'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if instance_initiated_shutdown_behavior is None and 'instanceInitiatedShutdownBehavior' in kwargs: + instance_initiated_shutdown_behavior = kwargs['instanceInitiatedShutdownBehavior'] + if instance_market_options is None and 'instanceMarketOptions' in kwargs: + instance_market_options = kwargs['instanceMarketOptions'] + if instance_requirements is None and 'instanceRequirements' in kwargs: + instance_requirements = kwargs['instanceRequirements'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if kernel_id is None and 'kernelId' in kwargs: + kernel_id = kwargs['kernelId'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if license_specifications is None and 'licenseSpecifications' in kwargs: + license_specifications = kwargs['licenseSpecifications'] + if maintenance_options is None and 'maintenanceOptions' in kwargs: + maintenance_options = kwargs['maintenanceOptions'] + if metadata_options is None and 'metadataOptions' in kwargs: + metadata_options = kwargs['metadataOptions'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if private_dns_name_options is None and 'privateDnsNameOptions' in kwargs: + private_dns_name_options = kwargs['privateDnsNameOptions'] + if ram_disk_id is None and 'ramDiskId' in kwargs: + ram_disk_id = kwargs['ramDiskId'] + if security_group_names is None and 'securityGroupNames' in kwargs: + security_group_names = kwargs['securityGroupNames'] + if tag_specifications is None and 'tagSpecifications' in kwargs: + tag_specifications = kwargs['tagSpecifications'] + if update_default_version is None and 'updateDefaultVersion' in kwargs: + update_default_version = kwargs['updateDefaultVersion'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if block_device_mappings is not None: - pulumi.set(__self__, "block_device_mappings", block_device_mappings) + _setter("block_device_mappings", block_device_mappings) if capacity_reservation_specification is not None: - pulumi.set(__self__, "capacity_reservation_specification", capacity_reservation_specification) + _setter("capacity_reservation_specification", capacity_reservation_specification) if cpu_options is not None: - pulumi.set(__self__, "cpu_options", cpu_options) + _setter("cpu_options", cpu_options) if credit_specification is not None: - pulumi.set(__self__, "credit_specification", credit_specification) + _setter("credit_specification", credit_specification) if default_version is not None: - pulumi.set(__self__, "default_version", default_version) + _setter("default_version", default_version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_api_stop is not None: - pulumi.set(__self__, "disable_api_stop", disable_api_stop) + _setter("disable_api_stop", disable_api_stop) if disable_api_termination is not None: - pulumi.set(__self__, "disable_api_termination", disable_api_termination) + _setter("disable_api_termination", disable_api_termination) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if elastic_gpu_specifications is not None: - pulumi.set(__self__, "elastic_gpu_specifications", elastic_gpu_specifications) + _setter("elastic_gpu_specifications", elastic_gpu_specifications) if elastic_inference_accelerator is not None: - pulumi.set(__self__, "elastic_inference_accelerator", elastic_inference_accelerator) + _setter("elastic_inference_accelerator", elastic_inference_accelerator) if enclave_options is not None: - pulumi.set(__self__, "enclave_options", enclave_options) + _setter("enclave_options", enclave_options) if hibernation_options is not None: - pulumi.set(__self__, "hibernation_options", hibernation_options) + _setter("hibernation_options", hibernation_options) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if image_id is not None: - pulumi.set(__self__, "image_id", image_id) + _setter("image_id", image_id) if instance_initiated_shutdown_behavior is not None: - pulumi.set(__self__, "instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) + _setter("instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) if instance_market_options is not None: - pulumi.set(__self__, "instance_market_options", instance_market_options) + _setter("instance_market_options", instance_market_options) if instance_requirements is not None: - pulumi.set(__self__, "instance_requirements", instance_requirements) + _setter("instance_requirements", instance_requirements) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if kernel_id is not None: - pulumi.set(__self__, "kernel_id", kernel_id) + _setter("kernel_id", kernel_id) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if license_specifications is not None: - pulumi.set(__self__, "license_specifications", license_specifications) + _setter("license_specifications", license_specifications) if maintenance_options is not None: - pulumi.set(__self__, "maintenance_options", maintenance_options) + _setter("maintenance_options", maintenance_options) if metadata_options is not None: - pulumi.set(__self__, "metadata_options", metadata_options) + _setter("metadata_options", metadata_options) if monitoring is not None: - pulumi.set(__self__, "monitoring", monitoring) + _setter("monitoring", monitoring) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if placement is not None: - pulumi.set(__self__, "placement", placement) + _setter("placement", placement) if private_dns_name_options is not None: - pulumi.set(__self__, "private_dns_name_options", private_dns_name_options) + _setter("private_dns_name_options", private_dns_name_options) if ram_disk_id is not None: - pulumi.set(__self__, "ram_disk_id", ram_disk_id) + _setter("ram_disk_id", ram_disk_id) if security_group_names is not None: - pulumi.set(__self__, "security_group_names", security_group_names) + _setter("security_group_names", security_group_names) if tag_specifications is not None: - pulumi.set(__self__, "tag_specifications", tag_specifications) + _setter("tag_specifications", tag_specifications) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if update_default_version is not None: - pulumi.set(__self__, "update_default_version", update_default_version) + _setter("update_default_version", update_default_version) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="blockDeviceMappings") @@ -726,89 +873,246 @@ def __init__(__self__, *, :param pulumi.Input[str] user_data: The base64-encoded user data to provide when launching the instance. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of security group IDs to associate with. Conflicts with `network_interfaces.security_groups` """ + _LaunchTemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + block_device_mappings=block_device_mappings, + capacity_reservation_specification=capacity_reservation_specification, + cpu_options=cpu_options, + credit_specification=credit_specification, + default_version=default_version, + description=description, + disable_api_stop=disable_api_stop, + disable_api_termination=disable_api_termination, + ebs_optimized=ebs_optimized, + elastic_gpu_specifications=elastic_gpu_specifications, + elastic_inference_accelerator=elastic_inference_accelerator, + enclave_options=enclave_options, + hibernation_options=hibernation_options, + iam_instance_profile=iam_instance_profile, + image_id=image_id, + instance_initiated_shutdown_behavior=instance_initiated_shutdown_behavior, + instance_market_options=instance_market_options, + instance_requirements=instance_requirements, + instance_type=instance_type, + kernel_id=kernel_id, + key_name=key_name, + latest_version=latest_version, + license_specifications=license_specifications, + maintenance_options=maintenance_options, + metadata_options=metadata_options, + monitoring=monitoring, + name=name, + name_prefix=name_prefix, + network_interfaces=network_interfaces, + placement=placement, + private_dns_name_options=private_dns_name_options, + ram_disk_id=ram_disk_id, + security_group_names=security_group_names, + tag_specifications=tag_specifications, + tags=tags, + tags_all=tags_all, + update_default_version=update_default_version, + user_data=user_data, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateBlockDeviceMappingArgs']]]] = None, + capacity_reservation_specification: Optional[pulumi.Input['LaunchTemplateCapacityReservationSpecificationArgs']] = None, + cpu_options: Optional[pulumi.Input['LaunchTemplateCpuOptionsArgs']] = None, + credit_specification: Optional[pulumi.Input['LaunchTemplateCreditSpecificationArgs']] = None, + default_version: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + disable_api_stop: Optional[pulumi.Input[bool]] = None, + disable_api_termination: Optional[pulumi.Input[bool]] = None, + ebs_optimized: Optional[pulumi.Input[str]] = None, + elastic_gpu_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateElasticGpuSpecificationArgs']]]] = None, + elastic_inference_accelerator: Optional[pulumi.Input['LaunchTemplateElasticInferenceAcceleratorArgs']] = None, + enclave_options: Optional[pulumi.Input['LaunchTemplateEnclaveOptionsArgs']] = None, + hibernation_options: Optional[pulumi.Input['LaunchTemplateHibernationOptionsArgs']] = None, + iam_instance_profile: Optional[pulumi.Input['LaunchTemplateIamInstanceProfileArgs']] = None, + image_id: Optional[pulumi.Input[str]] = None, + instance_initiated_shutdown_behavior: Optional[pulumi.Input[str]] = None, + instance_market_options: Optional[pulumi.Input['LaunchTemplateInstanceMarketOptionsArgs']] = None, + instance_requirements: Optional[pulumi.Input['LaunchTemplateInstanceRequirementsArgs']] = None, + instance_type: Optional[pulumi.Input[str]] = None, + kernel_id: Optional[pulumi.Input[str]] = None, + key_name: Optional[pulumi.Input[str]] = None, + latest_version: Optional[pulumi.Input[int]] = None, + license_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateLicenseSpecificationArgs']]]] = None, + maintenance_options: Optional[pulumi.Input['LaunchTemplateMaintenanceOptionsArgs']] = None, + metadata_options: Optional[pulumi.Input['LaunchTemplateMetadataOptionsArgs']] = None, + monitoring: Optional[pulumi.Input['LaunchTemplateMonitoringArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateNetworkInterfaceArgs']]]] = None, + placement: Optional[pulumi.Input['LaunchTemplatePlacementArgs']] = None, + private_dns_name_options: Optional[pulumi.Input['LaunchTemplatePrivateDnsNameOptionsArgs']] = None, + ram_disk_id: Optional[pulumi.Input[str]] = None, + security_group_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchTemplateTagSpecificationArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_default_version: Optional[pulumi.Input[bool]] = None, + user_data: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_device_mappings is None and 'blockDeviceMappings' in kwargs: + block_device_mappings = kwargs['blockDeviceMappings'] + if capacity_reservation_specification is None and 'capacityReservationSpecification' in kwargs: + capacity_reservation_specification = kwargs['capacityReservationSpecification'] + if cpu_options is None and 'cpuOptions' in kwargs: + cpu_options = kwargs['cpuOptions'] + if credit_specification is None and 'creditSpecification' in kwargs: + credit_specification = kwargs['creditSpecification'] + if default_version is None and 'defaultVersion' in kwargs: + default_version = kwargs['defaultVersion'] + if disable_api_stop is None and 'disableApiStop' in kwargs: + disable_api_stop = kwargs['disableApiStop'] + if disable_api_termination is None and 'disableApiTermination' in kwargs: + disable_api_termination = kwargs['disableApiTermination'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if elastic_gpu_specifications is None and 'elasticGpuSpecifications' in kwargs: + elastic_gpu_specifications = kwargs['elasticGpuSpecifications'] + if elastic_inference_accelerator is None and 'elasticInferenceAccelerator' in kwargs: + elastic_inference_accelerator = kwargs['elasticInferenceAccelerator'] + if enclave_options is None and 'enclaveOptions' in kwargs: + enclave_options = kwargs['enclaveOptions'] + if hibernation_options is None and 'hibernationOptions' in kwargs: + hibernation_options = kwargs['hibernationOptions'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if instance_initiated_shutdown_behavior is None and 'instanceInitiatedShutdownBehavior' in kwargs: + instance_initiated_shutdown_behavior = kwargs['instanceInitiatedShutdownBehavior'] + if instance_market_options is None and 'instanceMarketOptions' in kwargs: + instance_market_options = kwargs['instanceMarketOptions'] + if instance_requirements is None and 'instanceRequirements' in kwargs: + instance_requirements = kwargs['instanceRequirements'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if kernel_id is None and 'kernelId' in kwargs: + kernel_id = kwargs['kernelId'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if latest_version is None and 'latestVersion' in kwargs: + latest_version = kwargs['latestVersion'] + if license_specifications is None and 'licenseSpecifications' in kwargs: + license_specifications = kwargs['licenseSpecifications'] + if maintenance_options is None and 'maintenanceOptions' in kwargs: + maintenance_options = kwargs['maintenanceOptions'] + if metadata_options is None and 'metadataOptions' in kwargs: + metadata_options = kwargs['metadataOptions'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if private_dns_name_options is None and 'privateDnsNameOptions' in kwargs: + private_dns_name_options = kwargs['privateDnsNameOptions'] + if ram_disk_id is None and 'ramDiskId' in kwargs: + ram_disk_id = kwargs['ramDiskId'] + if security_group_names is None and 'securityGroupNames' in kwargs: + security_group_names = kwargs['securityGroupNames'] + if tag_specifications is None and 'tagSpecifications' in kwargs: + tag_specifications = kwargs['tagSpecifications'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_default_version is None and 'updateDefaultVersion' in kwargs: + update_default_version = kwargs['updateDefaultVersion'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if block_device_mappings is not None: - pulumi.set(__self__, "block_device_mappings", block_device_mappings) + _setter("block_device_mappings", block_device_mappings) if capacity_reservation_specification is not None: - pulumi.set(__self__, "capacity_reservation_specification", capacity_reservation_specification) + _setter("capacity_reservation_specification", capacity_reservation_specification) if cpu_options is not None: - pulumi.set(__self__, "cpu_options", cpu_options) + _setter("cpu_options", cpu_options) if credit_specification is not None: - pulumi.set(__self__, "credit_specification", credit_specification) + _setter("credit_specification", credit_specification) if default_version is not None: - pulumi.set(__self__, "default_version", default_version) + _setter("default_version", default_version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_api_stop is not None: - pulumi.set(__self__, "disable_api_stop", disable_api_stop) + _setter("disable_api_stop", disable_api_stop) if disable_api_termination is not None: - pulumi.set(__self__, "disable_api_termination", disable_api_termination) + _setter("disable_api_termination", disable_api_termination) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if elastic_gpu_specifications is not None: - pulumi.set(__self__, "elastic_gpu_specifications", elastic_gpu_specifications) + _setter("elastic_gpu_specifications", elastic_gpu_specifications) if elastic_inference_accelerator is not None: - pulumi.set(__self__, "elastic_inference_accelerator", elastic_inference_accelerator) + _setter("elastic_inference_accelerator", elastic_inference_accelerator) if enclave_options is not None: - pulumi.set(__self__, "enclave_options", enclave_options) + _setter("enclave_options", enclave_options) if hibernation_options is not None: - pulumi.set(__self__, "hibernation_options", hibernation_options) + _setter("hibernation_options", hibernation_options) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if image_id is not None: - pulumi.set(__self__, "image_id", image_id) + _setter("image_id", image_id) if instance_initiated_shutdown_behavior is not None: - pulumi.set(__self__, "instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) + _setter("instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) if instance_market_options is not None: - pulumi.set(__self__, "instance_market_options", instance_market_options) + _setter("instance_market_options", instance_market_options) if instance_requirements is not None: - pulumi.set(__self__, "instance_requirements", instance_requirements) + _setter("instance_requirements", instance_requirements) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if kernel_id is not None: - pulumi.set(__self__, "kernel_id", kernel_id) + _setter("kernel_id", kernel_id) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if latest_version is not None: - pulumi.set(__self__, "latest_version", latest_version) + _setter("latest_version", latest_version) if license_specifications is not None: - pulumi.set(__self__, "license_specifications", license_specifications) + _setter("license_specifications", license_specifications) if maintenance_options is not None: - pulumi.set(__self__, "maintenance_options", maintenance_options) + _setter("maintenance_options", maintenance_options) if metadata_options is not None: - pulumi.set(__self__, "metadata_options", metadata_options) + _setter("metadata_options", metadata_options) if monitoring is not None: - pulumi.set(__self__, "monitoring", monitoring) + _setter("monitoring", monitoring) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if placement is not None: - pulumi.set(__self__, "placement", placement) + _setter("placement", placement) if private_dns_name_options is not None: - pulumi.set(__self__, "private_dns_name_options", private_dns_name_options) + _setter("private_dns_name_options", private_dns_name_options) if ram_disk_id is not None: - pulumi.set(__self__, "ram_disk_id", ram_disk_id) + _setter("ram_disk_id", ram_disk_id) if security_group_names is not None: - pulumi.set(__self__, "security_group_names", security_group_names) + _setter("security_group_names", security_group_names) if tag_specifications is not None: - pulumi.set(__self__, "tag_specifications", tag_specifications) + _setter("tag_specifications", tag_specifications) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if update_default_version is not None: - pulumi.set(__self__, "update_default_version", update_default_version) + _setter("update_default_version", update_default_version) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter @@ -1579,6 +1883,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LaunchTemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1631,8 +1939,11 @@ def _internal_init(__self__, __props__ = LaunchTemplateArgs.__new__(LaunchTemplateArgs) __props__.__dict__["block_device_mappings"] = block_device_mappings + capacity_reservation_specification = _utilities.configure(capacity_reservation_specification, LaunchTemplateCapacityReservationSpecificationArgs, True) __props__.__dict__["capacity_reservation_specification"] = capacity_reservation_specification + cpu_options = _utilities.configure(cpu_options, LaunchTemplateCpuOptionsArgs, True) __props__.__dict__["cpu_options"] = cpu_options + credit_specification = _utilities.configure(credit_specification, LaunchTemplateCreditSpecificationArgs, True) __props__.__dict__["credit_specification"] = credit_specification __props__.__dict__["default_version"] = default_version __props__.__dict__["description"] = description @@ -1640,25 +1951,36 @@ def _internal_init(__self__, __props__.__dict__["disable_api_termination"] = disable_api_termination __props__.__dict__["ebs_optimized"] = ebs_optimized __props__.__dict__["elastic_gpu_specifications"] = elastic_gpu_specifications + elastic_inference_accelerator = _utilities.configure(elastic_inference_accelerator, LaunchTemplateElasticInferenceAcceleratorArgs, True) __props__.__dict__["elastic_inference_accelerator"] = elastic_inference_accelerator + enclave_options = _utilities.configure(enclave_options, LaunchTemplateEnclaveOptionsArgs, True) __props__.__dict__["enclave_options"] = enclave_options + hibernation_options = _utilities.configure(hibernation_options, LaunchTemplateHibernationOptionsArgs, True) __props__.__dict__["hibernation_options"] = hibernation_options + iam_instance_profile = _utilities.configure(iam_instance_profile, LaunchTemplateIamInstanceProfileArgs, True) __props__.__dict__["iam_instance_profile"] = iam_instance_profile __props__.__dict__["image_id"] = image_id __props__.__dict__["instance_initiated_shutdown_behavior"] = instance_initiated_shutdown_behavior + instance_market_options = _utilities.configure(instance_market_options, LaunchTemplateInstanceMarketOptionsArgs, True) __props__.__dict__["instance_market_options"] = instance_market_options + instance_requirements = _utilities.configure(instance_requirements, LaunchTemplateInstanceRequirementsArgs, True) __props__.__dict__["instance_requirements"] = instance_requirements __props__.__dict__["instance_type"] = instance_type __props__.__dict__["kernel_id"] = kernel_id __props__.__dict__["key_name"] = key_name __props__.__dict__["license_specifications"] = license_specifications + maintenance_options = _utilities.configure(maintenance_options, LaunchTemplateMaintenanceOptionsArgs, True) __props__.__dict__["maintenance_options"] = maintenance_options + metadata_options = _utilities.configure(metadata_options, LaunchTemplateMetadataOptionsArgs, True) __props__.__dict__["metadata_options"] = metadata_options + monitoring = _utilities.configure(monitoring, LaunchTemplateMonitoringArgs, True) __props__.__dict__["monitoring"] = monitoring __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix __props__.__dict__["network_interfaces"] = network_interfaces + placement = _utilities.configure(placement, LaunchTemplatePlacementArgs, True) __props__.__dict__["placement"] = placement + private_dns_name_options = _utilities.configure(private_dns_name_options, LaunchTemplatePrivateDnsNameOptionsArgs, True) __props__.__dict__["private_dns_name_options"] = private_dns_name_options __props__.__dict__["ram_disk_id"] = ram_disk_id __props__.__dict__["security_group_names"] = security_group_names diff --git a/sdk/python/pulumi_aws/ec2/local_gateway_route.py b/sdk/python/pulumi_aws/ec2/local_gateway_route.py index 0e1f6c325a6..a2a6e1d02e0 100644 --- a/sdk/python/pulumi_aws/ec2/local_gateway_route.py +++ b/sdk/python/pulumi_aws/ec2/local_gateway_route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LocalGatewayRouteArgs', 'LocalGatewayRoute'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] local_gateway_route_table_id: Identifier of EC2 Local Gateway Route Table. :param pulumi.Input[str] local_gateway_virtual_interface_group_id: Identifier of EC2 Local Gateway Virtual Interface Group. """ - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) - pulumi.set(__self__, "local_gateway_route_table_id", local_gateway_route_table_id) - pulumi.set(__self__, "local_gateway_virtual_interface_group_id", local_gateway_virtual_interface_group_id) + LocalGatewayRouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr_block=destination_cidr_block, + local_gateway_route_table_id=local_gateway_route_table_id, + local_gateway_virtual_interface_group_id=local_gateway_virtual_interface_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr_block: Optional[pulumi.Input[str]] = None, + local_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + local_gateway_virtual_interface_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_cidr_block is None: + raise TypeError("Missing 'destination_cidr_block' argument") + if local_gateway_route_table_id is None and 'localGatewayRouteTableId' in kwargs: + local_gateway_route_table_id = kwargs['localGatewayRouteTableId'] + if local_gateway_route_table_id is None: + raise TypeError("Missing 'local_gateway_route_table_id' argument") + if local_gateway_virtual_interface_group_id is None and 'localGatewayVirtualInterfaceGroupId' in kwargs: + local_gateway_virtual_interface_group_id = kwargs['localGatewayVirtualInterfaceGroupId'] + if local_gateway_virtual_interface_group_id is None: + raise TypeError("Missing 'local_gateway_virtual_interface_group_id' argument") + + _setter("destination_cidr_block", destination_cidr_block) + _setter("local_gateway_route_table_id", local_gateway_route_table_id) + _setter("local_gateway_virtual_interface_group_id", local_gateway_virtual_interface_group_id) @property @pulumi.getter(name="destinationCidrBlock") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] local_gateway_route_table_id: Identifier of EC2 Local Gateway Route Table. :param pulumi.Input[str] local_gateway_virtual_interface_group_id: Identifier of EC2 Local Gateway Virtual Interface Group. """ + _LocalGatewayRouteState._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr_block=destination_cidr_block, + local_gateway_route_table_id=local_gateway_route_table_id, + local_gateway_virtual_interface_group_id=local_gateway_virtual_interface_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr_block: Optional[pulumi.Input[str]] = None, + local_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + local_gateway_virtual_interface_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if local_gateway_route_table_id is None and 'localGatewayRouteTableId' in kwargs: + local_gateway_route_table_id = kwargs['localGatewayRouteTableId'] + if local_gateway_virtual_interface_group_id is None and 'localGatewayVirtualInterfaceGroupId' in kwargs: + local_gateway_virtual_interface_group_id = kwargs['localGatewayVirtualInterfaceGroupId'] + if destination_cidr_block is not None: - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) + _setter("destination_cidr_block", destination_cidr_block) if local_gateway_route_table_id is not None: - pulumi.set(__self__, "local_gateway_route_table_id", local_gateway_route_table_id) + _setter("local_gateway_route_table_id", local_gateway_route_table_id) if local_gateway_virtual_interface_group_id is not None: - pulumi.set(__self__, "local_gateway_virtual_interface_group_id", local_gateway_virtual_interface_group_id) + _setter("local_gateway_virtual_interface_group_id", local_gateway_virtual_interface_group_id) @property @pulumi.getter(name="destinationCidrBlock") @@ -197,6 +245,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LocalGatewayRouteArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/local_gateway_route_table_vpc_association.py b/sdk/python/pulumi_aws/ec2/local_gateway_route_table_vpc_association.py index d6fa2a0576a..ecffdeb634e 100644 --- a/sdk/python/pulumi_aws/ec2/local_gateway_route_table_vpc_association.py +++ b/sdk/python/pulumi_aws/ec2/local_gateway_route_table_vpc_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LocalGatewayRouteTableVpcAssociationArgs', 'LocalGatewayRouteTableVpcAssociation'] @@ -25,10 +25,33 @@ def __init__(__self__, *, The following arguments are optional: :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. """ - pulumi.set(__self__, "local_gateway_route_table_id", local_gateway_route_table_id) - pulumi.set(__self__, "vpc_id", vpc_id) + LocalGatewayRouteTableVpcAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + local_gateway_route_table_id=local_gateway_route_table_id, + vpc_id=vpc_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + local_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if local_gateway_route_table_id is None and 'localGatewayRouteTableId' in kwargs: + local_gateway_route_table_id = kwargs['localGatewayRouteTableId'] + if local_gateway_route_table_id is None: + raise TypeError("Missing 'local_gateway_route_table_id' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("local_gateway_route_table_id", local_gateway_route_table_id) + _setter("vpc_id", vpc_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="localGatewayRouteTableId") @@ -86,19 +109,46 @@ def __init__(__self__, *, The following arguments are optional: """ + _LocalGatewayRouteTableVpcAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + local_gateway_id=local_gateway_id, + local_gateway_route_table_id=local_gateway_route_table_id, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + local_gateway_id: Optional[pulumi.Input[str]] = None, + local_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if local_gateway_id is None and 'localGatewayId' in kwargs: + local_gateway_id = kwargs['localGatewayId'] + if local_gateway_route_table_id is None and 'localGatewayRouteTableId' in kwargs: + local_gateway_route_table_id = kwargs['localGatewayRouteTableId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if local_gateway_id is not None: - pulumi.set(__self__, "local_gateway_id", local_gateway_id) + _setter("local_gateway_id", local_gateway_id) if local_gateway_route_table_id is not None: - pulumi.set(__self__, "local_gateway_route_table_id", local_gateway_route_table_id) + _setter("local_gateway_route_table_id", local_gateway_route_table_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="localGatewayId") @@ -244,6 +294,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LocalGatewayRouteTableVpcAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/main_route_table_association.py b/sdk/python/pulumi_aws/ec2/main_route_table_association.py index 0ab01cb172f..670144fce4f 100644 --- a/sdk/python/pulumi_aws/ec2/main_route_table_association.py +++ b/sdk/python/pulumi_aws/ec2/main_route_table_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MainRouteTableAssociationArgs', 'MainRouteTableAssociation'] @@ -22,8 +22,29 @@ def __init__(__self__, *, main route table for the target VPC :param pulumi.Input[str] vpc_id: The ID of the VPC whose main route table should be set """ - pulumi.set(__self__, "route_table_id", route_table_id) - pulumi.set(__self__, "vpc_id", vpc_id) + MainRouteTableAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + route_table_id=route_table_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route_table_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if route_table_id is None: + raise TypeError("Missing 'route_table_id' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("route_table_id", route_table_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="routeTableId") @@ -64,12 +85,33 @@ def __init__(__self__, *, main route table for the target VPC :param pulumi.Input[str] vpc_id: The ID of the VPC whose main route table should be set """ + _MainRouteTableAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + original_route_table_id=original_route_table_id, + route_table_id=route_table_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + original_route_table_id: Optional[pulumi.Input[str]] = None, + route_table_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if original_route_table_id is None and 'originalRouteTableId' in kwargs: + original_route_table_id = kwargs['originalRouteTableId'] + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if original_route_table_id is not None: - pulumi.set(__self__, "original_route_table_id", original_route_table_id) + _setter("original_route_table_id", original_route_table_id) if route_table_id is not None: - pulumi.set(__self__, "route_table_id", route_table_id) + _setter("route_table_id", route_table_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="originalRouteTableId") @@ -189,6 +231,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MainRouteTableAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/managed_prefix_list.py b/sdk/python/pulumi_aws/ec2/managed_prefix_list.py index 79517fe81cd..7ff2f4c5a71 100644 --- a/sdk/python/pulumi_aws/ec2/managed_prefix_list.py +++ b/sdk/python/pulumi_aws/ec2/managed_prefix_list.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of this resource. The name must not start with `com.amazonaws`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "max_entries", max_entries) + ManagedPrefixListArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + max_entries=max_entries, + entries=entries, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + max_entries: Optional[pulumi.Input[int]] = None, + entries: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedPrefixListEntryArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if max_entries is None and 'maxEntries' in kwargs: + max_entries = kwargs['maxEntries'] + if max_entries is None: + raise TypeError("Missing 'max_entries' argument") + + _setter("address_family", address_family) + _setter("max_entries", max_entries) if entries is not None: - pulumi.set(__self__, "entries", entries) + _setter("entries", entries) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="addressFamily") @@ -123,27 +150,62 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] version: Latest version of this prefix list. """ + _ManagedPrefixListState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + arn=arn, + entries=entries, + max_entries=max_entries, + name=name, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + entries: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedPrefixListEntryArgs']]]] = None, + max_entries: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if max_entries is None and 'maxEntries' in kwargs: + max_entries = kwargs['maxEntries'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if address_family is not None: - pulumi.set(__self__, "address_family", address_family) + _setter("address_family", address_family) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if entries is not None: - pulumi.set(__self__, "entries", entries) + _setter("entries", entries) if max_entries is not None: - pulumi.set(__self__, "max_entries", max_entries) + _setter("max_entries", max_entries) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="addressFamily") @@ -390,6 +452,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ManagedPrefixListArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/managed_prefix_list_entry.py b/sdk/python/pulumi_aws/ec2/managed_prefix_list_entry.py index c1011ccc70d..a128970ab40 100644 --- a/sdk/python/pulumi_aws/ec2/managed_prefix_list_entry.py +++ b/sdk/python/pulumi_aws/ec2/managed_prefix_list_entry.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ManagedPrefixListEntryInitArgs', 'ManagedPrefixListEntry'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix_list_id: CIDR block of this entry. :param pulumi.Input[str] description: Description of this entry. Please note that due to API limitations, updating only the description of an entry will require recreating the entry. """ - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + ManagedPrefixListEntryInitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + prefix_list_id=prefix_list_id, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_id is None: + raise TypeError("Missing 'prefix_list_id' argument") + + _setter("cidr", cidr) + _setter("prefix_list_id", prefix_list_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -77,12 +98,29 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of this entry. Please note that due to API limitations, updating only the description of an entry will require recreating the entry. :param pulumi.Input[str] prefix_list_id: CIDR block of this entry. """ + _ManagedPrefixListEntryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + description=description, + prefix_list_id=prefix_list_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) @property @pulumi.getter @@ -222,6 +260,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ManagedPrefixListEntryInitArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/nat_gateway.py b/sdk/python/pulumi_aws/ec2/nat_gateway.py index 744807d8d21..4920595be92 100644 --- a/sdk/python/pulumi_aws/ec2/nat_gateway.py +++ b/sdk/python/pulumi_aws/ec2/nat_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NatGatewayArgs', 'NatGateway'] @@ -33,21 +33,62 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] secondary_private_ip_addresses: A list of secondary private IPv4 addresses to assign to the NAT Gateway. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "subnet_id", subnet_id) + NatGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + allocation_id=allocation_id, + connectivity_type=connectivity_type, + private_ip=private_ip, + secondary_allocation_ids=secondary_allocation_ids, + secondary_private_ip_address_count=secondary_private_ip_address_count, + secondary_private_ip_addresses=secondary_private_ip_addresses, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + allocation_id: Optional[pulumi.Input[str]] = None, + connectivity_type: Optional[pulumi.Input[str]] = None, + private_ip: Optional[pulumi.Input[str]] = None, + secondary_allocation_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + secondary_private_ip_address_count: Optional[pulumi.Input[int]] = None, + secondary_private_ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if connectivity_type is None and 'connectivityType' in kwargs: + connectivity_type = kwargs['connectivityType'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if secondary_allocation_ids is None and 'secondaryAllocationIds' in kwargs: + secondary_allocation_ids = kwargs['secondaryAllocationIds'] + if secondary_private_ip_address_count is None and 'secondaryPrivateIpAddressCount' in kwargs: + secondary_private_ip_address_count = kwargs['secondaryPrivateIpAddressCount'] + if secondary_private_ip_addresses is None and 'secondaryPrivateIpAddresses' in kwargs: + secondary_private_ip_addresses = kwargs['secondaryPrivateIpAddresses'] + + _setter("subnet_id", subnet_id) if allocation_id is not None: - pulumi.set(__self__, "allocation_id", allocation_id) + _setter("allocation_id", allocation_id) if connectivity_type is not None: - pulumi.set(__self__, "connectivity_type", connectivity_type) + _setter("connectivity_type", connectivity_type) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if secondary_allocation_ids is not None: - pulumi.set(__self__, "secondary_allocation_ids", secondary_allocation_ids) + _setter("secondary_allocation_ids", secondary_allocation_ids) if secondary_private_ip_address_count is not None: - pulumi.set(__self__, "secondary_private_ip_address_count", secondary_private_ip_address_count) + _setter("secondary_private_ip_address_count", secondary_private_ip_address_count) if secondary_private_ip_addresses is not None: - pulumi.set(__self__, "secondary_private_ip_addresses", secondary_private_ip_addresses) + _setter("secondary_private_ip_addresses", secondary_private_ip_addresses) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="subnetId") @@ -176,33 +217,88 @@ def __init__(__self__, *, :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. """ + _NatGatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_id=allocation_id, + association_id=association_id, + connectivity_type=connectivity_type, + network_interface_id=network_interface_id, + private_ip=private_ip, + public_ip=public_ip, + secondary_allocation_ids=secondary_allocation_ids, + secondary_private_ip_address_count=secondary_private_ip_address_count, + secondary_private_ip_addresses=secondary_private_ip_addresses, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_id: Optional[pulumi.Input[str]] = None, + association_id: Optional[pulumi.Input[str]] = None, + connectivity_type: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + private_ip: Optional[pulumi.Input[str]] = None, + public_ip: Optional[pulumi.Input[str]] = None, + secondary_allocation_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + secondary_private_ip_address_count: Optional[pulumi.Input[int]] = None, + secondary_private_ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if connectivity_type is None and 'connectivityType' in kwargs: + connectivity_type = kwargs['connectivityType'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if public_ip is None and 'publicIp' in kwargs: + public_ip = kwargs['publicIp'] + if secondary_allocation_ids is None and 'secondaryAllocationIds' in kwargs: + secondary_allocation_ids = kwargs['secondaryAllocationIds'] + if secondary_private_ip_address_count is None and 'secondaryPrivateIpAddressCount' in kwargs: + secondary_private_ip_address_count = kwargs['secondaryPrivateIpAddressCount'] + if secondary_private_ip_addresses is None and 'secondaryPrivateIpAddresses' in kwargs: + secondary_private_ip_addresses = kwargs['secondaryPrivateIpAddresses'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if allocation_id is not None: - pulumi.set(__self__, "allocation_id", allocation_id) + _setter("allocation_id", allocation_id) if association_id is not None: - pulumi.set(__self__, "association_id", association_id) + _setter("association_id", association_id) if connectivity_type is not None: - pulumi.set(__self__, "connectivity_type", connectivity_type) + _setter("connectivity_type", connectivity_type) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if public_ip is not None: - pulumi.set(__self__, "public_ip", public_ip) + _setter("public_ip", public_ip) if secondary_allocation_ids is not None: - pulumi.set(__self__, "secondary_allocation_ids", secondary_allocation_ids) + _setter("secondary_allocation_ids", secondary_allocation_ids) if secondary_private_ip_address_count is not None: - pulumi.set(__self__, "secondary_private_ip_address_count", secondary_private_ip_address_count) + _setter("secondary_private_ip_address_count", secondary_private_ip_address_count) if secondary_private_ip_addresses is not None: - pulumi.set(__self__, "secondary_private_ip_addresses", secondary_private_ip_addresses) + _setter("secondary_private_ip_addresses", secondary_private_ip_addresses) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="allocationId") @@ -513,6 +609,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NatGatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/network_acl.py b/sdk/python/pulumi_aws/ec2/network_acl.py index 19be1d205d6..f22493ec815 100644 --- a/sdk/python/pulumi_aws/ec2/network_acl.py +++ b/sdk/python/pulumi_aws/ec2/network_acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,40 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of Subnet IDs to apply the ACL to :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "vpc_id", vpc_id) + NetworkAclArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + egress=egress, + ingress=ingress, + subnet_ids=subnet_ids, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkAclEgressArgs']]]] = None, + ingress: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkAclIngressArgs']]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + + _setter("vpc_id", vpc_id) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if ingress is not None: - pulumi.set(__self__, "ingress", ingress) + _setter("ingress", ingress) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="vpcId") @@ -122,25 +147,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The ID of the associated VPC. """ + _NetworkAclState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + egress=egress, + ingress=ingress, + owner_id=owner_id, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkAclEgressArgs']]]] = None, + ingress: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkAclIngressArgs']]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if ingress is not None: - pulumi.set(__self__, "ingress", ingress) + _setter("ingress", ingress) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -379,6 +437,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkAclArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/network_acl_association.py b/sdk/python/pulumi_aws/ec2/network_acl_association.py index eef34e668b7..56b35fb9ff9 100644 --- a/sdk/python/pulumi_aws/ec2/network_acl_association.py +++ b/sdk/python/pulumi_aws/ec2/network_acl_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NetworkAclAssociationArgs', 'NetworkAclAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] network_acl_id: The ID of the network ACL. :param pulumi.Input[str] subnet_id: The ID of the associated Subnet. """ - pulumi.set(__self__, "network_acl_id", network_acl_id) - pulumi.set(__self__, "subnet_id", subnet_id) + NetworkAclAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_acl_id=network_acl_id, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_acl_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_acl_id is None and 'networkAclId' in kwargs: + network_acl_id = kwargs['networkAclId'] + if network_acl_id is None: + raise TypeError("Missing 'network_acl_id' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("network_acl_id", network_acl_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="networkAclId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] network_acl_id: The ID of the network ACL. :param pulumi.Input[str] subnet_id: The ID of the associated Subnet. """ + _NetworkAclAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_acl_id=network_acl_id, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_acl_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_acl_id is None and 'networkAclId' in kwargs: + network_acl_id = kwargs['networkAclId'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if network_acl_id is not None: - pulumi.set(__self__, "network_acl_id", network_acl_id) + _setter("network_acl_id", network_acl_id) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="networkAclId") @@ -154,6 +192,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkAclAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/network_acl_rule.py b/sdk/python/pulumi_aws/ec2/network_acl_rule.py index 675b9be826f..734ae0ddf91 100644 --- a/sdk/python/pulumi_aws/ec2/network_acl_rule.py +++ b/sdk/python/pulumi_aws/ec2/network_acl_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NetworkAclRuleArgs', 'NetworkAclRule'] @@ -45,24 +45,81 @@ def __init__(__self__, *, :param pulumi.Input[str] ipv6_cidr_block: The IPv6 CIDR block to allow or deny. :param pulumi.Input[int] to_port: The to port to match. """ - pulumi.set(__self__, "network_acl_id", network_acl_id) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_action", rule_action) - pulumi.set(__self__, "rule_number", rule_number) + NetworkAclRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_acl_id=network_acl_id, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + cidr_block=cidr_block, + egress=egress, + from_port=from_port, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_acl_id: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_action: Optional[pulumi.Input[str]] = None, + rule_number: Optional[pulumi.Input[int]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[bool]] = None, + from_port: Optional[pulumi.Input[int]] = None, + icmp_code: Optional[pulumi.Input[int]] = None, + icmp_type: Optional[pulumi.Input[int]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_acl_id is None and 'networkAclId' in kwargs: + network_acl_id = kwargs['networkAclId'] + if network_acl_id is None: + raise TypeError("Missing 'network_acl_id' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_action is None: + raise TypeError("Missing 'rule_action' argument") + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if rule_number is None: + raise TypeError("Missing 'rule_number' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + + _setter("network_acl_id", network_acl_id) + _setter("protocol", protocol) + _setter("rule_action", rule_action) + _setter("rule_number", rule_number) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="networkAclId") @@ -237,28 +294,77 @@ def __init__(__self__, *, :param pulumi.Input[int] rule_number: The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number. :param pulumi.Input[int] to_port: The to port to match. """ + _NetworkAclRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + egress=egress, + from_port=from_port, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + network_acl_id=network_acl_id, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[bool]] = None, + from_port: Optional[pulumi.Input[int]] = None, + icmp_code: Optional[pulumi.Input[int]] = None, + icmp_type: Optional[pulumi.Input[int]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + network_acl_id: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_action: Optional[pulumi.Input[str]] = None, + rule_number: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if network_acl_id is None and 'networkAclId' in kwargs: + network_acl_id = kwargs['networkAclId'] + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if network_acl_id is not None: - pulumi.set(__self__, "network_acl_id", network_acl_id) + _setter("network_acl_id", network_acl_id) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if rule_action is not None: - pulumi.set(__self__, "rule_action", rule_action) + _setter("rule_action", rule_action) if rule_number is not None: - pulumi.set(__self__, "rule_number", rule_number) + _setter("rule_number", rule_number) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="cidrBlock") @@ -544,6 +650,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkAclRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/network_insights_analysis.py b/sdk/python/pulumi_aws/ec2/network_insights_analysis.py index efc533c655a..194b6dc2e3c 100644 --- a/sdk/python/pulumi_aws/ec2/network_insights_analysis.py +++ b/sdk/python/pulumi_aws/ec2/network_insights_analysis.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,38 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[bool] wait_for_completion: If enabled, the resource will wait for the Network Insights Analysis status to change to `succeeded` or `failed`. Setting this to `false` will skip the process. Default: `true`. """ - pulumi.set(__self__, "network_insights_path_id", network_insights_path_id) + NetworkInsightsAnalysisArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_insights_path_id=network_insights_path_id, + filter_in_arns=filter_in_arns, + tags=tags, + wait_for_completion=wait_for_completion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_insights_path_id: Optional[pulumi.Input[str]] = None, + filter_in_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + wait_for_completion: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_insights_path_id is None and 'networkInsightsPathId' in kwargs: + network_insights_path_id = kwargs['networkInsightsPathId'] + if network_insights_path_id is None: + raise TypeError("Missing 'network_insights_path_id' argument") + if filter_in_arns is None and 'filterInArns' in kwargs: + filter_in_arns = kwargs['filterInArns'] + if wait_for_completion is None and 'waitForCompletion' in kwargs: + wait_for_completion = kwargs['waitForCompletion'] + + _setter("network_insights_path_id", network_insights_path_id) if filter_in_arns is not None: - pulumi.set(__self__, "filter_in_arns", filter_in_arns) + _setter("filter_in_arns", filter_in_arns) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if wait_for_completion is not None: - pulumi.set(__self__, "wait_for_completion", wait_for_completion) + _setter("wait_for_completion", wait_for_completion) @property @pulumi.getter(name="networkInsightsPathId") @@ -126,39 +151,100 @@ def __init__(__self__, *, :param pulumi.Input[bool] wait_for_completion: If enabled, the resource will wait for the Network Insights Analysis status to change to `succeeded` or `failed`. Setting this to `false` will skip the process. Default: `true`. :param pulumi.Input[str] warning_message: The warning message. """ + _NetworkInsightsAnalysisState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alternate_path_hints=alternate_path_hints, + arn=arn, + explanations=explanations, + filter_in_arns=filter_in_arns, + forward_path_components=forward_path_components, + network_insights_path_id=network_insights_path_id, + path_found=path_found, + return_path_components=return_path_components, + start_date=start_date, + status=status, + status_message=status_message, + tags=tags, + tags_all=tags_all, + wait_for_completion=wait_for_completion, + warning_message=warning_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alternate_path_hints: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisAlternatePathHintArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + explanations: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisExplanationArgs']]]] = None, + filter_in_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + forward_path_components: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisForwardPathComponentArgs']]]] = None, + network_insights_path_id: Optional[pulumi.Input[str]] = None, + path_found: Optional[pulumi.Input[bool]] = None, + return_path_components: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInsightsAnalysisReturnPathComponentArgs']]]] = None, + start_date: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + status_message: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + wait_for_completion: Optional[pulumi.Input[bool]] = None, + warning_message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alternate_path_hints is None and 'alternatePathHints' in kwargs: + alternate_path_hints = kwargs['alternatePathHints'] + if filter_in_arns is None and 'filterInArns' in kwargs: + filter_in_arns = kwargs['filterInArns'] + if forward_path_components is None and 'forwardPathComponents' in kwargs: + forward_path_components = kwargs['forwardPathComponents'] + if network_insights_path_id is None and 'networkInsightsPathId' in kwargs: + network_insights_path_id = kwargs['networkInsightsPathId'] + if path_found is None and 'pathFound' in kwargs: + path_found = kwargs['pathFound'] + if return_path_components is None and 'returnPathComponents' in kwargs: + return_path_components = kwargs['returnPathComponents'] + if start_date is None and 'startDate' in kwargs: + start_date = kwargs['startDate'] + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if wait_for_completion is None and 'waitForCompletion' in kwargs: + wait_for_completion = kwargs['waitForCompletion'] + if warning_message is None and 'warningMessage' in kwargs: + warning_message = kwargs['warningMessage'] + if alternate_path_hints is not None: - pulumi.set(__self__, "alternate_path_hints", alternate_path_hints) + _setter("alternate_path_hints", alternate_path_hints) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if explanations is not None: - pulumi.set(__self__, "explanations", explanations) + _setter("explanations", explanations) if filter_in_arns is not None: - pulumi.set(__self__, "filter_in_arns", filter_in_arns) + _setter("filter_in_arns", filter_in_arns) if forward_path_components is not None: - pulumi.set(__self__, "forward_path_components", forward_path_components) + _setter("forward_path_components", forward_path_components) if network_insights_path_id is not None: - pulumi.set(__self__, "network_insights_path_id", network_insights_path_id) + _setter("network_insights_path_id", network_insights_path_id) if path_found is not None: - pulumi.set(__self__, "path_found", path_found) + _setter("path_found", path_found) if return_path_components is not None: - pulumi.set(__self__, "return_path_components", return_path_components) + _setter("return_path_components", return_path_components) if start_date is not None: - pulumi.set(__self__, "start_date", start_date) + _setter("start_date", start_date) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_message is not None: - pulumi.set(__self__, "status_message", status_message) + _setter("status_message", status_message) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if wait_for_completion is not None: - pulumi.set(__self__, "wait_for_completion", wait_for_completion) + _setter("wait_for_completion", wait_for_completion) if warning_message is not None: - pulumi.set(__self__, "warning_message", warning_message) + _setter("warning_message", warning_message) @property @pulumi.getter(name="alternatePathHints") @@ -429,6 +515,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkInsightsAnalysisArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/network_insights_path.py b/sdk/python/pulumi_aws/ec2/network_insights_path.py index f5d9ed2c749..392f4f333f7 100644 --- a/sdk/python/pulumi_aws/ec2/network_insights_path.py +++ b/sdk/python/pulumi_aws/ec2/network_insights_path.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NetworkInsightsPathArgs', 'NetworkInsightsPath'] @@ -33,17 +33,52 @@ def __init__(__self__, *, :param pulumi.Input[str] source_ip: IP address of the source resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "source", source) + NetworkInsightsPathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + protocol=protocol, + source=source, + destination_ip=destination_ip, + destination_port=destination_port, + source_ip=source_ip, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + destination_ip: Optional[pulumi.Input[str]] = None, + destination_port: Optional[pulumi.Input[int]] = None, + source_ip: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if destination_ip is None and 'destinationIp' in kwargs: + destination_ip = kwargs['destinationIp'] + if destination_port is None and 'destinationPort' in kwargs: + destination_port = kwargs['destinationPort'] + if source_ip is None and 'sourceIp' in kwargs: + source_ip = kwargs['sourceIp'] + + _setter("destination", destination) + _setter("protocol", protocol) + _setter("source", source) if destination_ip is not None: - pulumi.set(__self__, "destination_ip", destination_ip) + _setter("destination_ip", destination_ip) if destination_port is not None: - pulumi.set(__self__, "destination_port", destination_port) + _setter("destination_port", destination_port) if source_ip is not None: - pulumi.set(__self__, "source_ip", source_ip) + _setter("source_ip", source_ip) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -162,31 +197,74 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _NetworkInsightsPathState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + destination=destination, + destination_arn=destination_arn, + destination_ip=destination_ip, + destination_port=destination_port, + protocol=protocol, + source=source, + source_arn=source_arn, + source_ip=source_ip, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input[str]] = None, + destination_arn: Optional[pulumi.Input[str]] = None, + destination_ip: Optional[pulumi.Input[str]] = None, + destination_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + source_arn: Optional[pulumi.Input[str]] = None, + source_ip: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_ip is None and 'destinationIp' in kwargs: + destination_ip = kwargs['destinationIp'] + if destination_port is None and 'destinationPort' in kwargs: + destination_port = kwargs['destinationPort'] + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if source_ip is None and 'sourceIp' in kwargs: + source_ip = kwargs['sourceIp'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if destination_arn is not None: - pulumi.set(__self__, "destination_arn", destination_arn) + _setter("destination_arn", destination_arn) if destination_ip is not None: - pulumi.set(__self__, "destination_ip", destination_ip) + _setter("destination_ip", destination_ip) if destination_port is not None: - pulumi.set(__self__, "destination_port", destination_port) + _setter("destination_port", destination_port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if source_arn is not None: - pulumi.set(__self__, "source_arn", source_arn) + _setter("source_arn", source_arn) if source_ip is not None: - pulumi.set(__self__, "source_ip", source_ip) + _setter("source_ip", source_ip) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -413,6 +491,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkInsightsPathArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/network_interface.py b/sdk/python/pulumi_aws/ec2/network_interface.py index 5d7cb5a8758..5be4a4ee2b5 100644 --- a/sdk/python/pulumi_aws/ec2/network_interface.py +++ b/sdk/python/pulumi_aws/ec2/network_interface.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -60,45 +60,130 @@ def __init__(__self__, *, :param pulumi.Input[bool] source_dest_check: Whether to enable source destination checking for the ENI. Default true. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "subnet_id", subnet_id) + NetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + attachments=attachments, + description=description, + interface_type=interface_type, + ipv4_prefix_count=ipv4_prefix_count, + ipv4_prefixes=ipv4_prefixes, + ipv6_address_count=ipv6_address_count, + ipv6_address_list_enabled=ipv6_address_list_enabled, + ipv6_address_lists=ipv6_address_lists, + ipv6_addresses=ipv6_addresses, + ipv6_prefix_count=ipv6_prefix_count, + ipv6_prefixes=ipv6_prefixes, + private_ip=private_ip, + private_ip_list_enabled=private_ip_list_enabled, + private_ip_lists=private_ip_lists, + private_ips=private_ips, + private_ips_count=private_ips_count, + security_groups=security_groups, + source_dest_check=source_dest_check, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + attachments: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInterfaceAttachmentArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + interface_type: Optional[pulumi.Input[str]] = None, + ipv4_prefix_count: Optional[pulumi.Input[int]] = None, + ipv4_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv6_address_count: Optional[pulumi.Input[int]] = None, + ipv6_address_list_enabled: Optional[pulumi.Input[bool]] = None, + ipv6_address_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv6_prefix_count: Optional[pulumi.Input[int]] = None, + ipv6_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + private_ip: Optional[pulumi.Input[str]] = None, + private_ip_list_enabled: Optional[pulumi.Input[bool]] = None, + private_ip_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + private_ips_count: Optional[pulumi.Input[int]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_dest_check: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if interface_type is None and 'interfaceType' in kwargs: + interface_type = kwargs['interfaceType'] + if ipv4_prefix_count is None and 'ipv4PrefixCount' in kwargs: + ipv4_prefix_count = kwargs['ipv4PrefixCount'] + if ipv4_prefixes is None and 'ipv4Prefixes' in kwargs: + ipv4_prefixes = kwargs['ipv4Prefixes'] + if ipv6_address_count is None and 'ipv6AddressCount' in kwargs: + ipv6_address_count = kwargs['ipv6AddressCount'] + if ipv6_address_list_enabled is None and 'ipv6AddressListEnabled' in kwargs: + ipv6_address_list_enabled = kwargs['ipv6AddressListEnabled'] + if ipv6_address_lists is None and 'ipv6AddressLists' in kwargs: + ipv6_address_lists = kwargs['ipv6AddressLists'] + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if ipv6_prefix_count is None and 'ipv6PrefixCount' in kwargs: + ipv6_prefix_count = kwargs['ipv6PrefixCount'] + if ipv6_prefixes is None and 'ipv6Prefixes' in kwargs: + ipv6_prefixes = kwargs['ipv6Prefixes'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if private_ip_list_enabled is None and 'privateIpListEnabled' in kwargs: + private_ip_list_enabled = kwargs['privateIpListEnabled'] + if private_ip_lists is None and 'privateIpLists' in kwargs: + private_ip_lists = kwargs['privateIpLists'] + if private_ips is None and 'privateIps' in kwargs: + private_ips = kwargs['privateIps'] + if private_ips_count is None and 'privateIpsCount' in kwargs: + private_ips_count = kwargs['privateIpsCount'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_dest_check is None and 'sourceDestCheck' in kwargs: + source_dest_check = kwargs['sourceDestCheck'] + + _setter("subnet_id", subnet_id) if attachments is not None: - pulumi.set(__self__, "attachments", attachments) + _setter("attachments", attachments) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if interface_type is not None: - pulumi.set(__self__, "interface_type", interface_type) + _setter("interface_type", interface_type) if ipv4_prefix_count is not None: - pulumi.set(__self__, "ipv4_prefix_count", ipv4_prefix_count) + _setter("ipv4_prefix_count", ipv4_prefix_count) if ipv4_prefixes is not None: - pulumi.set(__self__, "ipv4_prefixes", ipv4_prefixes) + _setter("ipv4_prefixes", ipv4_prefixes) if ipv6_address_count is not None: - pulumi.set(__self__, "ipv6_address_count", ipv6_address_count) + _setter("ipv6_address_count", ipv6_address_count) if ipv6_address_list_enabled is not None: - pulumi.set(__self__, "ipv6_address_list_enabled", ipv6_address_list_enabled) + _setter("ipv6_address_list_enabled", ipv6_address_list_enabled) if ipv6_address_lists is not None: - pulumi.set(__self__, "ipv6_address_lists", ipv6_address_lists) + _setter("ipv6_address_lists", ipv6_address_lists) if ipv6_addresses is not None: - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) + _setter("ipv6_addresses", ipv6_addresses) if ipv6_prefix_count is not None: - pulumi.set(__self__, "ipv6_prefix_count", ipv6_prefix_count) + _setter("ipv6_prefix_count", ipv6_prefix_count) if ipv6_prefixes is not None: - pulumi.set(__self__, "ipv6_prefixes", ipv6_prefixes) + _setter("ipv6_prefixes", ipv6_prefixes) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if private_ip_list_enabled is not None: - pulumi.set(__self__, "private_ip_list_enabled", private_ip_list_enabled) + _setter("private_ip_list_enabled", private_ip_list_enabled) if private_ip_lists is not None: - pulumi.set(__self__, "private_ip_lists", private_ip_lists) + _setter("private_ip_lists", private_ip_lists) if private_ips is not None: - pulumi.set(__self__, "private_ips", private_ips) + _setter("private_ips", private_ips) if private_ips_count is not None: - pulumi.set(__self__, "private_ips_count", private_ips_count) + _setter("private_ips_count", private_ips_count) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_dest_check is not None: - pulumi.set(__self__, "source_dest_check", source_dest_check) + _setter("source_dest_check", source_dest_check) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="subnetId") @@ -398,61 +483,166 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _NetworkInterfaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attachments=attachments, + description=description, + interface_type=interface_type, + ipv4_prefix_count=ipv4_prefix_count, + ipv4_prefixes=ipv4_prefixes, + ipv6_address_count=ipv6_address_count, + ipv6_address_list_enabled=ipv6_address_list_enabled, + ipv6_address_lists=ipv6_address_lists, + ipv6_addresses=ipv6_addresses, + ipv6_prefix_count=ipv6_prefix_count, + ipv6_prefixes=ipv6_prefixes, + mac_address=mac_address, + outpost_arn=outpost_arn, + owner_id=owner_id, + private_dns_name=private_dns_name, + private_ip=private_ip, + private_ip_list_enabled=private_ip_list_enabled, + private_ip_lists=private_ip_lists, + private_ips=private_ips, + private_ips_count=private_ips_count, + security_groups=security_groups, + source_dest_check=source_dest_check, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attachments: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkInterfaceAttachmentArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + interface_type: Optional[pulumi.Input[str]] = None, + ipv4_prefix_count: Optional[pulumi.Input[int]] = None, + ipv4_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv6_address_count: Optional[pulumi.Input[int]] = None, + ipv6_address_list_enabled: Optional[pulumi.Input[bool]] = None, + ipv6_address_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv6_prefix_count: Optional[pulumi.Input[int]] = None, + ipv6_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + mac_address: Optional[pulumi.Input[str]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + private_dns_name: Optional[pulumi.Input[str]] = None, + private_ip: Optional[pulumi.Input[str]] = None, + private_ip_list_enabled: Optional[pulumi.Input[bool]] = None, + private_ip_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + private_ips_count: Optional[pulumi.Input[int]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_dest_check: Optional[pulumi.Input[bool]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interface_type is None and 'interfaceType' in kwargs: + interface_type = kwargs['interfaceType'] + if ipv4_prefix_count is None and 'ipv4PrefixCount' in kwargs: + ipv4_prefix_count = kwargs['ipv4PrefixCount'] + if ipv4_prefixes is None and 'ipv4Prefixes' in kwargs: + ipv4_prefixes = kwargs['ipv4Prefixes'] + if ipv6_address_count is None and 'ipv6AddressCount' in kwargs: + ipv6_address_count = kwargs['ipv6AddressCount'] + if ipv6_address_list_enabled is None and 'ipv6AddressListEnabled' in kwargs: + ipv6_address_list_enabled = kwargs['ipv6AddressListEnabled'] + if ipv6_address_lists is None and 'ipv6AddressLists' in kwargs: + ipv6_address_lists = kwargs['ipv6AddressLists'] + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if ipv6_prefix_count is None and 'ipv6PrefixCount' in kwargs: + ipv6_prefix_count = kwargs['ipv6PrefixCount'] + if ipv6_prefixes is None and 'ipv6Prefixes' in kwargs: + ipv6_prefixes = kwargs['ipv6Prefixes'] + if mac_address is None and 'macAddress' in kwargs: + mac_address = kwargs['macAddress'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if private_dns_name is None and 'privateDnsName' in kwargs: + private_dns_name = kwargs['privateDnsName'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if private_ip_list_enabled is None and 'privateIpListEnabled' in kwargs: + private_ip_list_enabled = kwargs['privateIpListEnabled'] + if private_ip_lists is None and 'privateIpLists' in kwargs: + private_ip_lists = kwargs['privateIpLists'] + if private_ips is None and 'privateIps' in kwargs: + private_ips = kwargs['privateIps'] + if private_ips_count is None and 'privateIpsCount' in kwargs: + private_ips_count = kwargs['privateIpsCount'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_dest_check is None and 'sourceDestCheck' in kwargs: + source_dest_check = kwargs['sourceDestCheck'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attachments is not None: - pulumi.set(__self__, "attachments", attachments) + _setter("attachments", attachments) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if interface_type is not None: - pulumi.set(__self__, "interface_type", interface_type) + _setter("interface_type", interface_type) if ipv4_prefix_count is not None: - pulumi.set(__self__, "ipv4_prefix_count", ipv4_prefix_count) + _setter("ipv4_prefix_count", ipv4_prefix_count) if ipv4_prefixes is not None: - pulumi.set(__self__, "ipv4_prefixes", ipv4_prefixes) + _setter("ipv4_prefixes", ipv4_prefixes) if ipv6_address_count is not None: - pulumi.set(__self__, "ipv6_address_count", ipv6_address_count) + _setter("ipv6_address_count", ipv6_address_count) if ipv6_address_list_enabled is not None: - pulumi.set(__self__, "ipv6_address_list_enabled", ipv6_address_list_enabled) + _setter("ipv6_address_list_enabled", ipv6_address_list_enabled) if ipv6_address_lists is not None: - pulumi.set(__self__, "ipv6_address_lists", ipv6_address_lists) + _setter("ipv6_address_lists", ipv6_address_lists) if ipv6_addresses is not None: - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) + _setter("ipv6_addresses", ipv6_addresses) if ipv6_prefix_count is not None: - pulumi.set(__self__, "ipv6_prefix_count", ipv6_prefix_count) + _setter("ipv6_prefix_count", ipv6_prefix_count) if ipv6_prefixes is not None: - pulumi.set(__self__, "ipv6_prefixes", ipv6_prefixes) + _setter("ipv6_prefixes", ipv6_prefixes) if mac_address is not None: - pulumi.set(__self__, "mac_address", mac_address) + _setter("mac_address", mac_address) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if private_dns_name is not None: - pulumi.set(__self__, "private_dns_name", private_dns_name) + _setter("private_dns_name", private_dns_name) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if private_ip_list_enabled is not None: - pulumi.set(__self__, "private_ip_list_enabled", private_ip_list_enabled) + _setter("private_ip_list_enabled", private_ip_list_enabled) if private_ip_lists is not None: - pulumi.set(__self__, "private_ip_lists", private_ip_lists) + _setter("private_ip_lists", private_ip_lists) if private_ips is not None: - pulumi.set(__self__, "private_ips", private_ips) + _setter("private_ips", private_ips) if private_ips_count is not None: - pulumi.set(__self__, "private_ips_count", private_ips_count) + _setter("private_ips_count", private_ips_count) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_dest_check is not None: - pulumi.set(__self__, "source_dest_check", source_dest_check) + _setter("source_dest_check", source_dest_check) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -918,6 +1108,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkInterfaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/network_interface_attachment.py b/sdk/python/pulumi_aws/ec2/network_interface_attachment.py index 86996326f66..64c018f2c22 100644 --- a/sdk/python/pulumi_aws/ec2/network_interface_attachment.py +++ b/sdk/python/pulumi_aws/ec2/network_interface_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NetworkInterfaceAttachmentInitArgs', 'NetworkInterfaceAttachment'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_id: Instance ID to attach. :param pulumi.Input[str] network_interface_id: ENI ID to attach. """ - pulumi.set(__self__, "device_index", device_index) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "network_interface_id", network_interface_id) + NetworkInterfaceAttachmentInitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_index=device_index, + instance_id=instance_id, + network_interface_id=network_interface_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_index: Optional[pulumi.Input[int]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if device_index is None: + raise TypeError("Missing 'device_index' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + + _setter("device_index", device_index) + _setter("instance_id", instance_id) + _setter("network_interface_id", network_interface_id) @property @pulumi.getter(name="deviceIndex") @@ -80,16 +107,43 @@ def __init__(__self__, *, :param pulumi.Input[str] network_interface_id: ENI ID to attach. :param pulumi.Input[str] status: The status of the Network Interface Attachment. """ + _NetworkInterfaceAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + device_index=device_index, + instance_id=instance_id, + network_interface_id=network_interface_id, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[pulumi.Input[str]] = None, + device_index: Optional[pulumi.Input[int]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) if device_index is not None: - pulumi.set(__self__, "device_index", device_index) + _setter("device_index", device_index) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="attachmentId") @@ -229,6 +283,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkInterfaceAttachmentInitArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/network_interface_security_group_attachment.py b/sdk/python/pulumi_aws/ec2/network_interface_security_group_attachment.py index 32361ceaa0e..66f457e3840 100644 --- a/sdk/python/pulumi_aws/ec2/network_interface_security_group_attachment.py +++ b/sdk/python/pulumi_aws/ec2/network_interface_security_group_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NetworkInterfaceSecurityGroupAttachmentArgs', 'NetworkInterfaceSecurityGroupAttachment'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] network_interface_id: The ID of the network interface to attach to. :param pulumi.Input[str] security_group_id: The ID of the security group. """ - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "security_group_id", security_group_id) + NetworkInterfaceSecurityGroupAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interface_id=network_interface_id, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interface_id: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_id is None: + raise TypeError("Missing 'security_group_id' argument") + + _setter("network_interface_id", network_interface_id) + _setter("security_group_id", security_group_id) @property @pulumi.getter(name="networkInterfaceId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] network_interface_id: The ID of the network interface to attach to. :param pulumi.Input[str] security_group_id: The ID of the security group. """ + _NetworkInterfaceSecurityGroupAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interface_id=network_interface_id, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interface_id: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) @property @pulumi.getter(name="networkInterfaceId") @@ -256,6 +294,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkInterfaceSecurityGroupAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/outputs.py b/sdk/python/pulumi_aws/ec2/outputs.py index 001cbb82b1c..908e52a6ca0 100644 --- a/sdk/python/pulumi_aws/ec2/outputs.py +++ b/sdk/python/pulumi_aws/ec2/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -493,24 +493,63 @@ def __init__(__self__, *, as the selected snapshot. :param str volume_type: Type of EBS volume to create. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `standard`). """ + AmiCopyEbsBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + outpost_arn=outpost_arn, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + device_name: Optional[str] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + outpost_arn: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -622,10 +661,27 @@ def __init__(__self__, *, :param str virtual_name: Name for the ephemeral device, of the form "ephemeralN" where *N* is a volume number starting from zero. """ + AmiCopyEphemeralBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -703,23 +759,64 @@ def __init__(__self__, *, as the selected snapshot. :param str volume_type: Type of EBS volume to create. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `standard`). """ - pulumi.set(__self__, "device_name", device_name) + AmiEbsBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + outpost_arn=outpost_arn, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + outpost_arn: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -831,8 +928,29 @@ def __init__(__self__, *, :param str virtual_name: Name for the ephemeral device, of the form "ephemeralN" where *N* is a volume number starting from zero. """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "virtual_name", virtual_name) + AmiEphemeralBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -910,24 +1028,63 @@ def __init__(__self__, *, as the selected snapshot. :param str volume_type: Type of EBS volume to create. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `standard`). """ + AmiFromInstanceEbsBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + outpost_arn=outpost_arn, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + device_name: Optional[str] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + outpost_arn: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -1039,10 +1196,27 @@ def __init__(__self__, *, :param str virtual_name: Name for the ephemeral device, of the form "ephemeralN" where *N* is a volume number starting from zero. """ + AmiFromInstanceEphemeralBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -1118,19 +1292,70 @@ def __init__(__self__, *, > For more information on ICMP types and codes, see [Internet Control Message Protocol (ICMP) Parameters](https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml). """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_no", rule_no) - pulumi.set(__self__, "to_port", to_port) + DefaultNetworkAclEgress._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + from_port=from_port, + protocol=protocol, + rule_no=rule_no, + to_port=to_port, + cidr_block=cidr_block, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + from_port: Optional[int] = None, + protocol: Optional[str] = None, + rule_no: Optional[int] = None, + to_port: Optional[int] = None, + cidr_block: Optional[str] = None, + icmp_code: Optional[int] = None, + icmp_type: Optional[int] = None, + ipv6_cidr_block: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_no is None and 'ruleNo' in kwargs: + rule_no = kwargs['ruleNo'] + if rule_no is None: + raise TypeError("Missing 'rule_no' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + + _setter("action", action) + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("rule_no", rule_no) + _setter("to_port", to_port) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) @property @pulumi.getter @@ -1265,19 +1490,70 @@ def __init__(__self__, *, > For more information on ICMP types and codes, see [Internet Control Message Protocol (ICMP) Parameters](https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml). """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_no", rule_no) - pulumi.set(__self__, "to_port", to_port) + DefaultNetworkAclIngress._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + from_port=from_port, + protocol=protocol, + rule_no=rule_no, + to_port=to_port, + cidr_block=cidr_block, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + from_port: Optional[int] = None, + protocol: Optional[str] = None, + rule_no: Optional[int] = None, + to_port: Optional[int] = None, + cidr_block: Optional[str] = None, + icmp_code: Optional[int] = None, + icmp_type: Optional[int] = None, + ipv6_cidr_block: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_no is None and 'ruleNo' in kwargs: + rule_no = kwargs['ruleNo'] + if rule_no is None: + raise TypeError("Missing 'rule_no' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + + _setter("action", action) + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("rule_no", rule_no) + _setter("to_port", to_port) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) @property @pulumi.getter @@ -1428,30 +1704,87 @@ def __init__(__self__, *, Note that the default route, mapping the VPC's CIDR block to "local", is created implicitly and cannot be specified. """ + DefaultRouteTableRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + core_network_arn=core_network_arn, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_gateway_id=egress_only_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + ipv6_cidr_block=ipv6_cidr_block, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + transit_gateway_id=transit_gateway_id, + vpc_endpoint_id=vpc_endpoint_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[str] = None, + core_network_arn: Optional[str] = None, + destination_prefix_list_id: Optional[str] = None, + egress_only_gateway_id: Optional[str] = None, + gateway_id: Optional[str] = None, + instance_id: Optional[str] = None, + ipv6_cidr_block: Optional[str] = None, + nat_gateway_id: Optional[str] = None, + network_interface_id: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + vpc_endpoint_id: Optional[str] = None, + vpc_peering_connection_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_gateway_id is None and 'egressOnlyGatewayId' in kwargs: + egress_only_gateway_id = kwargs['egressOnlyGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_gateway_id is not None: - pulumi.set(__self__, "egress_only_gateway_id", egress_only_gateway_id) + _setter("egress_only_gateway_id", egress_only_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="cidrBlock") @@ -1604,21 +1937,66 @@ def __init__(__self__, *, :param Sequence[str] security_groups: List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. :param bool self: Whether the security group itself will be added as a source to this egress rule. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + DefaultSecurityGroupEgress._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_blocks=cidr_blocks, + description=description, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + security_groups=security_groups, + self=self, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + protocol: Optional[str] = None, + to_port: Optional[int] = None, + cidr_blocks: Optional[Sequence[str]] = None, + description: Optional[str] = None, + ipv6_cidr_blocks: Optional[Sequence[str]] = None, + prefix_list_ids: Optional[Sequence[str]] = None, + security_groups: Optional[Sequence[str]] = None, + self: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) @property @pulumi.getter(name="fromPort") @@ -1743,21 +2121,66 @@ def __init__(__self__, *, :param Sequence[str] security_groups: List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. :param bool self: Whether the security group itself will be added as a source to this egress rule. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + DefaultSecurityGroupIngress._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_blocks=cidr_blocks, + description=description, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + security_groups=security_groups, + self=self, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + protocol: Optional[str] = None, + to_port: Optional[int] = None, + cidr_blocks: Optional[Sequence[str]] = None, + description: Optional[str] = None, + ipv6_cidr_blocks: Optional[Sequence[str]] = None, + prefix_list_ids: Optional[Sequence[str]] = None, + security_groups: Optional[Sequence[str]] = None, + self: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) @property @pulumi.getter(name="fromPort") @@ -1864,14 +2287,35 @@ def __init__(__self__, *, :param str lifecycle: Indicates if the instance that was launched is a Spot Instance or On-Demand Instance. :param str platform: The value is `Windows` for Windows instances. Otherwise, the value is blank. """ + FleetFleetInstanceSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_ids=instance_ids, + instance_type=instance_type, + lifecycle=lifecycle, + platform=platform, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_ids: Optional[Sequence[str]] = None, + instance_type: Optional[str] = None, + lifecycle: Optional[str] = None, + platform: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_ids is None and 'instanceIds' in kwargs: + instance_ids = kwargs['instanceIds'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_ids is not None: - pulumi.set(__self__, "instance_ids", instance_ids) + _setter("instance_ids", instance_ids) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle is not None: - pulumi.set(__self__, "lifecycle", lifecycle) + _setter("lifecycle", lifecycle) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) @property @pulumi.getter(name="instanceIds") @@ -1932,10 +2376,25 @@ def __init__(__self__, *, :param 'FleetLaunchTemplateConfigLaunchTemplateSpecificationArgs' launch_template_specification: Nested argument containing EC2 Launch Template to use. Defined below. :param Sequence['FleetLaunchTemplateConfigOverrideArgs'] overrides: Nested argument(s) containing parameters to override the same parameters in the Launch Template. Defined below. """ + FleetLaunchTemplateConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_specification=launch_template_specification, + overrides=overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_specification: Optional['outputs.FleetLaunchTemplateConfigLaunchTemplateSpecification'] = None, + overrides: Optional[Sequence['outputs.FleetLaunchTemplateConfigOverride']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_specification is None and 'launchTemplateSpecification' in kwargs: + launch_template_specification = kwargs['launchTemplateSpecification'] + if launch_template_specification is not None: - pulumi.set(__self__, "launch_template_specification", launch_template_specification) + _setter("launch_template_specification", launch_template_specification) if overrides is not None: - pulumi.set(__self__, "overrides", overrides) + _setter("overrides", overrides) @property @pulumi.getter(name="launchTemplateSpecification") @@ -1984,11 +2443,32 @@ def __init__(__self__, *, :param str launch_template_id: The ID of the launch template. :param str launch_template_name: The name of the launch template. """ - pulumi.set(__self__, "version", version) + FleetLaunchTemplateConfigLaunchTemplateSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[str] = None, + launch_template_id: Optional[str] = None, + launch_template_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is None: + raise TypeError("Missing 'version' argument") + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + + _setter("version", version) if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) @property @pulumi.getter @@ -2061,20 +2541,55 @@ def __init__(__self__, *, :param str subnet_id: ID of the subnet in which to launch the instances. :param float weighted_capacity: Number of units provided by the specified instance type. """ + FleetLaunchTemplateConfigOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + instance_requirements=instance_requirements, + instance_type=instance_type, + max_price=max_price, + priority=priority, + subnet_id=subnet_id, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + instance_requirements: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirements'] = None, + instance_type: Optional[str] = None, + max_price: Optional[str] = None, + priority: Optional[float] = None, + subnet_id: Optional[str] = None, + weighted_capacity: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if instance_requirements is None and 'instanceRequirements' in kwargs: + instance_requirements = kwargs['instanceRequirements'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if max_price is None and 'maxPrice' in kwargs: + max_price = kwargs['maxPrice'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if instance_requirements is not None: - pulumi.set(__self__, "instance_requirements", instance_requirements) + _setter("instance_requirements", instance_requirements) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if max_price is not None: - pulumi.set(__self__, "max_price", max_price) + _setter("max_price", max_price) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="availabilityZone") @@ -2254,50 +2769,155 @@ def __init__(__self__, *, If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price. :param 'FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs' total_local_storage_gb: Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum. """ - pulumi.set(__self__, "memory_mib", memory_mib) - pulumi.set(__self__, "vcpu_count", vcpu_count) + FleetLaunchTemplateConfigOverrideInstanceRequirements._configure( + lambda key, value: pulumi.set(__self__, key, value), + memory_mib=memory_mib, + vcpu_count=vcpu_count, + accelerator_count=accelerator_count, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mib=accelerator_total_memory_mib, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpu=memory_gib_per_vcpu, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_count=network_interface_count, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gb=total_local_storage_gb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + memory_mib: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib'] = None, + vcpu_count: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount'] = None, + accelerator_count: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount'] = None, + accelerator_manufacturers: Optional[Sequence[str]] = None, + accelerator_names: Optional[Sequence[str]] = None, + accelerator_total_memory_mib: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib'] = None, + accelerator_types: Optional[Sequence[str]] = None, + allowed_instance_types: Optional[Sequence[str]] = None, + bare_metal: Optional[str] = None, + baseline_ebs_bandwidth_mbps: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps'] = None, + burstable_performance: Optional[str] = None, + cpu_manufacturers: Optional[Sequence[str]] = None, + excluded_instance_types: Optional[Sequence[str]] = None, + instance_generations: Optional[Sequence[str]] = None, + local_storage: Optional[str] = None, + local_storage_types: Optional[Sequence[str]] = None, + memory_gib_per_vcpu: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu'] = None, + network_bandwidth_gbps: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps'] = None, + network_interface_count: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount'] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[int] = None, + require_hibernate_support: Optional[bool] = None, + spot_max_price_percentage_over_lowest_price: Optional[int] = None, + total_local_storage_gb: Optional['outputs.FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if memory_mib is None and 'memoryMib' in kwargs: + memory_mib = kwargs['memoryMib'] + if memory_mib is None: + raise TypeError("Missing 'memory_mib' argument") + if vcpu_count is None and 'vcpuCount' in kwargs: + vcpu_count = kwargs['vcpuCount'] + if vcpu_count is None: + raise TypeError("Missing 'vcpu_count' argument") + if accelerator_count is None and 'acceleratorCount' in kwargs: + accelerator_count = kwargs['acceleratorCount'] + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_total_memory_mib is None and 'acceleratorTotalMemoryMib' in kwargs: + accelerator_total_memory_mib = kwargs['acceleratorTotalMemoryMib'] + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if memory_gib_per_vcpu is None and 'memoryGibPerVcpu' in kwargs: + memory_gib_per_vcpu = kwargs['memoryGibPerVcpu'] + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_interface_count is None and 'networkInterfaceCount' in kwargs: + network_interface_count = kwargs['networkInterfaceCount'] + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if total_local_storage_gb is None and 'totalLocalStorageGb' in kwargs: + total_local_storage_gb = kwargs['totalLocalStorageGb'] + + _setter("memory_mib", memory_mib) + _setter("vcpu_count", vcpu_count) if accelerator_count is not None: - pulumi.set(__self__, "accelerator_count", accelerator_count) + _setter("accelerator_count", accelerator_count) if accelerator_manufacturers is not None: - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_manufacturers", accelerator_manufacturers) if accelerator_names is not None: - pulumi.set(__self__, "accelerator_names", accelerator_names) + _setter("accelerator_names", accelerator_names) if accelerator_total_memory_mib is not None: - pulumi.set(__self__, "accelerator_total_memory_mib", accelerator_total_memory_mib) + _setter("accelerator_total_memory_mib", accelerator_total_memory_mib) if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if allowed_instance_types is not None: - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + _setter("allowed_instance_types", allowed_instance_types) if bare_metal is not None: - pulumi.set(__self__, "bare_metal", bare_metal) + _setter("bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) if burstable_performance is not None: - pulumi.set(__self__, "burstable_performance", burstable_performance) + _setter("burstable_performance", burstable_performance) if cpu_manufacturers is not None: - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) + _setter("cpu_manufacturers", cpu_manufacturers) if excluded_instance_types is not None: - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + _setter("excluded_instance_types", excluded_instance_types) if instance_generations is not None: - pulumi.set(__self__, "instance_generations", instance_generations) + _setter("instance_generations", instance_generations) if local_storage is not None: - pulumi.set(__self__, "local_storage", local_storage) + _setter("local_storage", local_storage) if local_storage_types is not None: - pulumi.set(__self__, "local_storage_types", local_storage_types) + _setter("local_storage_types", local_storage_types) if memory_gib_per_vcpu is not None: - pulumi.set(__self__, "memory_gib_per_vcpu", memory_gib_per_vcpu) + _setter("memory_gib_per_vcpu", memory_gib_per_vcpu) if network_bandwidth_gbps is not None: - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) if network_interface_count is not None: - pulumi.set(__self__, "network_interface_count", network_interface_count) + _setter("network_interface_count", network_interface_count) if on_demand_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) if require_hibernate_support is not None: - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) + _setter("require_hibernate_support", require_hibernate_support) if spot_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) if total_local_storage_gb is not None: - pulumi.set(__self__, "total_local_storage_gb", total_local_storage_gb) + _setter("total_local_storage_gb", total_local_storage_gb) @property @pulumi.getter(name="memoryMib") @@ -2499,19 +3119,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. - :param int min: Minimum. + :param int max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param int min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2519,7 +3152,7 @@ def max(self) -> Optional[int]: @pulumi.getter def min(self) -> Optional[int]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2530,19 +3163,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. - :param int min: Minimum. + :param int max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param int min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2550,7 +3196,7 @@ def max(self) -> Optional[int]: @pulumi.getter def min(self) -> Optional[int]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2561,19 +3207,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. - :param int min: Minimum. + :param int max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param int min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2581,7 +3240,7 @@ def max(self) -> Optional[int]: @pulumi.getter def min(self) -> Optional[int]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2592,19 +3251,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. - :param float min: Minimum. + :param float max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param float min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2612,7 +3284,7 @@ def max(self) -> Optional[float]: @pulumi.getter def min(self) -> Optional[float]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2623,18 +3295,33 @@ def __init__(__self__, *, min: int, max: Optional[int] = None): """ - :param int min: Minimum. - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + :param int max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ - pulumi.set(__self__, "min", min) + FleetLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib._configure( + lambda key, value: pulumi.set(__self__, key, value), + min=min, + max=max, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + min: Optional[int] = None, + max: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("min", min) if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) @property @pulumi.getter def min(self) -> int: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2642,7 +3329,7 @@ def min(self) -> int: @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2653,19 +3340,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. - :param float min: Minimum. + :param float max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param float min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2673,7 +3373,7 @@ def max(self) -> Optional[float]: @pulumi.getter def min(self) -> Optional[float]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2684,19 +3384,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. - :param int min: Minimum. + :param int max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param int min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2704,7 +3417,7 @@ def max(self) -> Optional[int]: @pulumi.getter def min(self) -> Optional[int]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2715,19 +3428,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. - :param float min: Minimum. + :param float max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. + :param float min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ + FleetLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2735,7 +3461,7 @@ def max(self) -> Optional[float]: @pulumi.getter def min(self) -> Optional[float]: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2746,18 +3472,33 @@ def __init__(__self__, *, min: int, max: Optional[int] = None): """ - :param int min: Minimum. - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int min: The minimum number of vCPUs. To specify no minimum limit, specify `0`. + :param int max: The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ - pulumi.set(__self__, "min", min) + FleetLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + min=min, + max=max, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + min: Optional[int] = None, + max: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("min", min) if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) @property @pulumi.getter def min(self) -> int: """ - Minimum. + The minimum number of vCPUs. To specify no minimum limit, specify `0`. """ return pulumi.get(self, "min") @@ -2765,7 +3506,7 @@ def min(self) -> int: @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + The maximum number of vCPUs. To specify no maximum limit, omit this parameter. """ return pulumi.get(self, "max") @@ -2811,16 +3552,45 @@ def __init__(__self__, *, :param bool single_availability_zone: Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type `instant`. :param bool single_instance_type: Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type `instant`. """ + FleetOnDemandOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + max_total_price=max_total_price, + min_target_capacity=min_target_capacity, + single_availability_zone=single_availability_zone, + single_instance_type=single_instance_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[str] = None, + max_total_price: Optional[str] = None, + min_target_capacity: Optional[int] = None, + single_availability_zone: Optional[bool] = None, + single_instance_type: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if max_total_price is None and 'maxTotalPrice' in kwargs: + max_total_price = kwargs['maxTotalPrice'] + if min_target_capacity is None and 'minTargetCapacity' in kwargs: + min_target_capacity = kwargs['minTargetCapacity'] + if single_availability_zone is None and 'singleAvailabilityZone' in kwargs: + single_availability_zone = kwargs['singleAvailabilityZone'] + if single_instance_type is None and 'singleInstanceType' in kwargs: + single_instance_type = kwargs['singleInstanceType'] + if allocation_strategy is not None: - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + _setter("allocation_strategy", allocation_strategy) if max_total_price is not None: - pulumi.set(__self__, "max_total_price", max_total_price) + _setter("max_total_price", max_total_price) if min_target_capacity is not None: - pulumi.set(__self__, "min_target_capacity", min_target_capacity) + _setter("min_target_capacity", min_target_capacity) if single_availability_zone is not None: - pulumi.set(__self__, "single_availability_zone", single_availability_zone) + _setter("single_availability_zone", single_availability_zone) if single_instance_type is not None: - pulumi.set(__self__, "single_instance_type", single_instance_type) + _setter("single_instance_type", single_instance_type) @property @pulumi.getter(name="allocationStrategy") @@ -2900,14 +3670,39 @@ def __init__(__self__, *, :param int instance_pools_to_use_count: Number of Spot pools across which to allocate your target Spot capacity. Valid only when Spot `allocation_strategy` is set to `lowestPrice`. Default: `1`. :param 'FleetSpotOptionsMaintenanceStrategiesArgs' maintenance_strategies: Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below. """ + FleetSpotOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + instance_interruption_behavior=instance_interruption_behavior, + instance_pools_to_use_count=instance_pools_to_use_count, + maintenance_strategies=maintenance_strategies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[str] = None, + instance_interruption_behavior: Optional[str] = None, + instance_pools_to_use_count: Optional[int] = None, + maintenance_strategies: Optional['outputs.FleetSpotOptionsMaintenanceStrategies'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if instance_interruption_behavior is None and 'instanceInterruptionBehavior' in kwargs: + instance_interruption_behavior = kwargs['instanceInterruptionBehavior'] + if instance_pools_to_use_count is None and 'instancePoolsToUseCount' in kwargs: + instance_pools_to_use_count = kwargs['instancePoolsToUseCount'] + if maintenance_strategies is None and 'maintenanceStrategies' in kwargs: + maintenance_strategies = kwargs['maintenanceStrategies'] + if allocation_strategy is not None: - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + _setter("allocation_strategy", allocation_strategy) if instance_interruption_behavior is not None: - pulumi.set(__self__, "instance_interruption_behavior", instance_interruption_behavior) + _setter("instance_interruption_behavior", instance_interruption_behavior) if instance_pools_to_use_count is not None: - pulumi.set(__self__, "instance_pools_to_use_count", instance_pools_to_use_count) + _setter("instance_pools_to_use_count", instance_pools_to_use_count) if maintenance_strategies is not None: - pulumi.set(__self__, "maintenance_strategies", maintenance_strategies) + _setter("maintenance_strategies", maintenance_strategies) @property @pulumi.getter(name="allocationStrategy") @@ -2966,8 +3761,21 @@ def __init__(__self__, *, """ :param 'FleetSpotOptionsMaintenanceStrategiesCapacityRebalanceArgs' capacity_rebalance: Nested argument containing the capacity rebalance for your fleet request. Defined below. """ + FleetSpotOptionsMaintenanceStrategies._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_rebalance=capacity_rebalance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_rebalance: Optional['outputs.FleetSpotOptionsMaintenanceStrategiesCapacityRebalance'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_rebalance is None and 'capacityRebalance' in kwargs: + capacity_rebalance = kwargs['capacityRebalance'] + if capacity_rebalance is not None: - pulumi.set(__self__, "capacity_rebalance", capacity_rebalance) + _setter("capacity_rebalance", capacity_rebalance) @property @pulumi.getter(name="capacityRebalance") @@ -3005,10 +3813,27 @@ def __init__(__self__, *, """ :param str replacement_strategy: The replacement strategy to use. Only available for fleets of `type` set to `maintain`. Valid values: `launch`. """ + FleetSpotOptionsMaintenanceStrategiesCapacityRebalance._configure( + lambda key, value: pulumi.set(__self__, key, value), + replacement_strategy=replacement_strategy, + termination_delay=termination_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replacement_strategy: Optional[str] = None, + termination_delay: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replacement_strategy is None and 'replacementStrategy' in kwargs: + replacement_strategy = kwargs['replacementStrategy'] + if termination_delay is None and 'terminationDelay' in kwargs: + termination_delay = kwargs['terminationDelay'] + if replacement_strategy is not None: - pulumi.set(__self__, "replacement_strategy", replacement_strategy) + _setter("replacement_strategy", replacement_strategy) if termination_delay is not None: - pulumi.set(__self__, "termination_delay", termination_delay) + _setter("termination_delay", termination_delay) @property @pulumi.getter(name="replacementStrategy") @@ -3065,14 +3890,47 @@ def __init__(__self__, *, :param str target_capacity_unit_type: The unit for the target capacity. If you specify `target_capacity_unit_type`, `instance_requirements` must be specified. """ - pulumi.set(__self__, "default_target_capacity_type", default_target_capacity_type) - pulumi.set(__self__, "total_target_capacity", total_target_capacity) + FleetTargetCapacitySpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_target_capacity_type=default_target_capacity_type, + total_target_capacity=total_target_capacity, + on_demand_target_capacity=on_demand_target_capacity, + spot_target_capacity=spot_target_capacity, + target_capacity_unit_type=target_capacity_unit_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_target_capacity_type: Optional[str] = None, + total_target_capacity: Optional[int] = None, + on_demand_target_capacity: Optional[int] = None, + spot_target_capacity: Optional[int] = None, + target_capacity_unit_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_target_capacity_type is None and 'defaultTargetCapacityType' in kwargs: + default_target_capacity_type = kwargs['defaultTargetCapacityType'] + if default_target_capacity_type is None: + raise TypeError("Missing 'default_target_capacity_type' argument") + if total_target_capacity is None and 'totalTargetCapacity' in kwargs: + total_target_capacity = kwargs['totalTargetCapacity'] + if total_target_capacity is None: + raise TypeError("Missing 'total_target_capacity' argument") + if on_demand_target_capacity is None and 'onDemandTargetCapacity' in kwargs: + on_demand_target_capacity = kwargs['onDemandTargetCapacity'] + if spot_target_capacity is None and 'spotTargetCapacity' in kwargs: + spot_target_capacity = kwargs['spotTargetCapacity'] + if target_capacity_unit_type is None and 'targetCapacityUnitType' in kwargs: + target_capacity_unit_type = kwargs['targetCapacityUnitType'] + + _setter("default_target_capacity_type", default_target_capacity_type) + _setter("total_target_capacity", total_target_capacity) if on_demand_target_capacity is not None: - pulumi.set(__self__, "on_demand_target_capacity", on_demand_target_capacity) + _setter("on_demand_target_capacity", on_demand_target_capacity) if spot_target_capacity is not None: - pulumi.set(__self__, "spot_target_capacity", spot_target_capacity) + _setter("spot_target_capacity", spot_target_capacity) if target_capacity_unit_type is not None: - pulumi.set(__self__, "target_capacity_unit_type", target_capacity_unit_type) + _setter("target_capacity_unit_type", target_capacity_unit_type) @property @pulumi.getter(name="defaultTargetCapacityType") @@ -3148,12 +4006,33 @@ def __init__(__self__, *, :param bool hive_compatible_partitions: Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3. Default value: `false`. :param bool per_hour_partition: Indicates whether to partition the flow log per hour. This reduces the cost and response time for queries. Default value: `false`. """ + FlowLogDestinationOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_format=file_format, + hive_compatible_partitions=hive_compatible_partitions, + per_hour_partition=per_hour_partition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_format: Optional[str] = None, + hive_compatible_partitions: Optional[bool] = None, + per_hour_partition: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_format is None and 'fileFormat' in kwargs: + file_format = kwargs['fileFormat'] + if hive_compatible_partitions is None and 'hiveCompatiblePartitions' in kwargs: + hive_compatible_partitions = kwargs['hiveCompatiblePartitions'] + if per_hour_partition is None and 'perHourPartition' in kwargs: + per_hour_partition = kwargs['perHourPartition'] + if file_format is not None: - pulumi.set(__self__, "file_format", file_format) + _setter("file_format", file_format) if hive_compatible_partitions is not None: - pulumi.set(__self__, "hive_compatible_partitions", hive_compatible_partitions) + _setter("hive_compatible_partitions", hive_compatible_partitions) if per_hour_partition is not None: - pulumi.set(__self__, "per_hour_partition", per_hour_partition) + _setter("per_hour_partition", per_hour_partition) @property @pulumi.getter(name="fileFormat") @@ -3210,10 +4089,27 @@ def __init__(__self__, *, For more information, see the documentation on [Capacity Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-using.html). """ + InstanceCapacityReservationSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_preference=capacity_reservation_preference, + capacity_reservation_target=capacity_reservation_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_preference: Optional[str] = None, + capacity_reservation_target: Optional['outputs.InstanceCapacityReservationSpecificationCapacityReservationTarget'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_preference is None and 'capacityReservationPreference' in kwargs: + capacity_reservation_preference = kwargs['capacityReservationPreference'] + if capacity_reservation_target is None and 'capacityReservationTarget' in kwargs: + capacity_reservation_target = kwargs['capacityReservationTarget'] + if capacity_reservation_preference is not None: - pulumi.set(__self__, "capacity_reservation_preference", capacity_reservation_preference) + _setter("capacity_reservation_preference", capacity_reservation_preference) if capacity_reservation_target is not None: - pulumi.set(__self__, "capacity_reservation_target", capacity_reservation_target) + _setter("capacity_reservation_target", capacity_reservation_target) @property @pulumi.getter(name="capacityReservationPreference") @@ -3262,10 +4158,27 @@ def __init__(__self__, *, :param str capacity_reservation_id: ID of the Capacity Reservation in which to run the instance. :param str capacity_reservation_resource_group_arn: ARN of the Capacity Reservation resource group in which to run the instance. """ + InstanceCapacityReservationSpecificationCapacityReservationTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_id=capacity_reservation_id, + capacity_reservation_resource_group_arn=capacity_reservation_resource_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_id: Optional[str] = None, + capacity_reservation_resource_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_id is None and 'capacityReservationId' in kwargs: + capacity_reservation_id = kwargs['capacityReservationId'] + if capacity_reservation_resource_group_arn is None and 'capacityReservationResourceGroupArn' in kwargs: + capacity_reservation_resource_group_arn = kwargs['capacityReservationResourceGroupArn'] + if capacity_reservation_id is not None: - pulumi.set(__self__, "capacity_reservation_id", capacity_reservation_id) + _setter("capacity_reservation_id", capacity_reservation_id) if capacity_reservation_resource_group_arn is not None: - pulumi.set(__self__, "capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) + _setter("capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) @property @pulumi.getter(name="capacityReservationId") @@ -3318,12 +4231,33 @@ def __init__(__self__, *, For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). """ + InstanceCpuOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + amd_sev_snp=amd_sev_snp, + core_count=core_count, + threads_per_core=threads_per_core, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amd_sev_snp: Optional[str] = None, + core_count: Optional[int] = None, + threads_per_core: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amd_sev_snp is None and 'amdSevSnp' in kwargs: + amd_sev_snp = kwargs['amdSevSnp'] + if core_count is None and 'coreCount' in kwargs: + core_count = kwargs['coreCount'] + if threads_per_core is None and 'threadsPerCore' in kwargs: + threads_per_core = kwargs['threadsPerCore'] + if amd_sev_snp is not None: - pulumi.set(__self__, "amd_sev_snp", amd_sev_snp) + _setter("amd_sev_snp", amd_sev_snp) if core_count is not None: - pulumi.set(__self__, "core_count", core_count) + _setter("core_count", core_count) if threads_per_core is not None: - pulumi.set(__self__, "threads_per_core", threads_per_core) + _setter("threads_per_core", threads_per_core) @property @pulumi.getter(name="amdSevSnp") @@ -3376,8 +4310,21 @@ def __init__(__self__, *, """ :param str cpu_credits: Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ + InstanceCreditSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_credits=cpu_credits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_credits: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_credits is None and 'cpuCredits' in kwargs: + cpu_credits = kwargs['cpuCredits'] + if cpu_credits is not None: - pulumi.set(__self__, "cpu_credits", cpu_credits) + _setter("cpu_credits", cpu_credits) @property @pulumi.getter(name="cpuCredits") @@ -3446,27 +4393,74 @@ def __init__(__self__, *, > **NOTE:** Currently, changes to the `ebs_block_device` configuration of _existing_ resources cannot be automatically detected by this provider. To manage changes and attachments of an EBS block to an instance, use the `ebs.Volume` and `ec2.VolumeAttachment` resources instead. If you use `ebs_block_device` on an `ec2.Instance`, this provider will assume management over the full set of non-root EBS block devices for the instance, treating additional block devices as drift. For this reason, `ebs_block_device` cannot be mixed with external `ebs.Volume` and `ec2.VolumeAttachment` resources for a given instance. """ - pulumi.set(__self__, "device_name", device_name) + InstanceEbsBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + throughput: Optional[int] = None, + volume_id: Optional[str] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -3568,8 +4562,19 @@ def __init__(__self__, *, For more information, see the documentation on [Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html). """ + InstanceEnclaveOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -3616,11 +4621,34 @@ def __init__(__self__, *, Each AWS Instance type has a different set of Instance Store block devices available for attachment. AWS [publishes a list](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#StorageOnInstanceTypes) of which ephemeral devices are available on each type. The devices are always identified by the `virtual_name` in the format `ephemeral{0..N}`. """ - pulumi.set(__self__, "device_name", device_name) + InstanceEphemeralBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + no_device: Optional[bool] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + + _setter("device_name", device_name) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -3677,10 +4705,27 @@ def __init__(__self__, *, :param str market_type: Type of market for the instance. Valid value is `spot`. Defaults to `spot`. :param 'InstanceInstanceMarketOptionsSpotOptionsArgs' spot_options: Block to configure the options for Spot Instances. See Spot Options below for details on attributes. """ + InstanceInstanceMarketOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + market_type=market_type, + spot_options=spot_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + market_type: Optional[str] = None, + spot_options: Optional['outputs.InstanceInstanceMarketOptionsSpotOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if market_type is None and 'marketType' in kwargs: + market_type = kwargs['marketType'] + if spot_options is None and 'spotOptions' in kwargs: + spot_options = kwargs['spotOptions'] + if market_type is not None: - pulumi.set(__self__, "market_type", market_type) + _setter("market_type", market_type) if spot_options is not None: - pulumi.set(__self__, "spot_options", spot_options) + _setter("spot_options", spot_options) @property @pulumi.getter(name="marketType") @@ -3735,14 +4780,39 @@ def __init__(__self__, *, :param str spot_instance_type: The Spot Instance request type. Valid values include `one-time`, `persistent`. Persistent Spot Instance requests are only supported when the instance interruption behavior is either hibernate or stop. The default is `one-time`. :param str valid_until: The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. """ + InstanceInstanceMarketOptionsSpotOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_interruption_behavior=instance_interruption_behavior, + max_price=max_price, + spot_instance_type=spot_instance_type, + valid_until=valid_until, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_interruption_behavior: Optional[str] = None, + max_price: Optional[str] = None, + spot_instance_type: Optional[str] = None, + valid_until: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_interruption_behavior is None and 'instanceInterruptionBehavior' in kwargs: + instance_interruption_behavior = kwargs['instanceInterruptionBehavior'] + if max_price is None and 'maxPrice' in kwargs: + max_price = kwargs['maxPrice'] + if spot_instance_type is None and 'spotInstanceType' in kwargs: + spot_instance_type = kwargs['spotInstanceType'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if instance_interruption_behavior is not None: - pulumi.set(__self__, "instance_interruption_behavior", instance_interruption_behavior) + _setter("instance_interruption_behavior", instance_interruption_behavior) if max_price is not None: - pulumi.set(__self__, "max_price", max_price) + _setter("max_price", max_price) if spot_instance_type is not None: - pulumi.set(__self__, "spot_instance_type", spot_instance_type) + _setter("spot_instance_type", spot_instance_type) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) @property @pulumi.getter(name="instanceInterruptionBehavior") @@ -3788,12 +4858,27 @@ def __init__(__self__, *, :param str name: Name of the launch template. Conflicts with `id`. :param str version: Template version. Can be a specific version number, `$Latest` or `$Default`. The default value is `$Default`. """ + InstanceLaunchTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -3844,8 +4929,21 @@ def __init__(__self__, *, """ :param str auto_recovery: Automatic recovery behavior of the Instance. Can be `"default"` or `"disabled"`. See [Recover your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html) for more details. """ + InstanceMaintenanceOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_recovery=auto_recovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_recovery: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_recovery is None and 'autoRecovery' in kwargs: + auto_recovery = kwargs['autoRecovery'] + if auto_recovery is not None: - pulumi.set(__self__, "auto_recovery", auto_recovery) + _setter("auto_recovery", auto_recovery) @property @pulumi.getter(name="autoRecovery") @@ -3898,16 +4996,45 @@ def __init__(__self__, *, For more information, see the documentation on the [Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html). """ + InstanceMetadataOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_protocol_ipv6=http_protocol_ipv6, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + instance_metadata_tags=instance_metadata_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[str] = None, + http_protocol_ipv6: Optional[str] = None, + http_put_response_hop_limit: Optional[int] = None, + http_tokens: Optional[str] = None, + instance_metadata_tags: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_protocol_ipv6 is None and 'httpProtocolIpv6' in kwargs: + http_protocol_ipv6 = kwargs['httpProtocolIpv6'] + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if instance_metadata_tags is None and 'instanceMetadataTags' in kwargs: + instance_metadata_tags = kwargs['instanceMetadataTags'] + if http_endpoint is not None: - pulumi.set(__self__, "http_endpoint", http_endpoint) + _setter("http_endpoint", http_endpoint) if http_protocol_ipv6 is not None: - pulumi.set(__self__, "http_protocol_ipv6", http_protocol_ipv6) + _setter("http_protocol_ipv6", http_protocol_ipv6) if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) if instance_metadata_tags is not None: - pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + _setter("instance_metadata_tags", instance_metadata_tags) @property @pulumi.getter(name="httpEndpoint") @@ -3988,12 +5115,41 @@ def __init__(__self__, *, :param bool delete_on_termination: Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. :param int network_card_index: Integer index of the network card. Limited by instance type. The default index is `0`. """ - pulumi.set(__self__, "device_index", device_index) - pulumi.set(__self__, "network_interface_id", network_interface_id) + InstanceNetworkInterface._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_index=device_index, + network_interface_id=network_interface_id, + delete_on_termination=delete_on_termination, + network_card_index=network_card_index, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_index: Optional[int] = None, + network_interface_id: Optional[str] = None, + delete_on_termination: Optional[bool] = None, + network_card_index: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if device_index is None: + raise TypeError("Missing 'device_index' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if network_card_index is None and 'networkCardIndex' in kwargs: + network_card_index = kwargs['networkCardIndex'] + + _setter("device_index", device_index) + _setter("network_interface_id", network_interface_id) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if network_card_index is not None: - pulumi.set(__self__, "network_card_index", network_card_index) + _setter("network_card_index", network_card_index) @property @pulumi.getter(name="deviceIndex") @@ -4060,12 +5216,33 @@ def __init__(__self__, *, :param bool enable_resource_name_dns_aaaa_record: Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. :param str hostname_type: Type of hostname for Amazon EC2 instances. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 native subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: `ip-name` and `resource-name`. """ + InstancePrivateDnsNameOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_resource_name_dns_a_record=enable_resource_name_dns_a_record, + enable_resource_name_dns_aaaa_record=enable_resource_name_dns_aaaa_record, + hostname_type=hostname_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_resource_name_dns_a_record: Optional[bool] = None, + enable_resource_name_dns_aaaa_record: Optional[bool] = None, + hostname_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_resource_name_dns_a_record is None and 'enableResourceNameDnsARecord' in kwargs: + enable_resource_name_dns_a_record = kwargs['enableResourceNameDnsARecord'] + if enable_resource_name_dns_aaaa_record is None and 'enableResourceNameDnsAaaaRecord' in kwargs: + enable_resource_name_dns_aaaa_record = kwargs['enableResourceNameDnsAaaaRecord'] + if hostname_type is None and 'hostnameType' in kwargs: + hostname_type = kwargs['hostnameType'] + if enable_resource_name_dns_a_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) + _setter("enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) if enable_resource_name_dns_aaaa_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) + _setter("enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) if hostname_type is not None: - pulumi.set(__self__, "hostname_type", hostname_type) + _setter("hostname_type", hostname_type) @property @pulumi.getter(name="enableResourceNameDnsARecord") @@ -4146,26 +5323,67 @@ def __init__(__self__, *, Modifying the `encrypted` or `kms_key_id` settings of the `root_block_device` requires resource replacement. """ + InstanceRootBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + device_name: Optional[str] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + throughput: Optional[int] = None, + volume_id: Optional[str] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -4289,23 +5507,64 @@ def __init__(__self__, *, throughput: Optional[int] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): - pulumi.set(__self__, "device_name", device_name) + LaunchConfigurationEbsBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + no_device=no_device, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + no_device: Optional[bool] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -4380,11 +5639,34 @@ def __init__(__self__, *, device_name: str, no_device: Optional[bool] = None, virtual_name: Optional[str] = None): - pulumi.set(__self__, "device_name", device_name) + LaunchConfigurationEphemeralBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + no_device: Optional[bool] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + + _setter("device_name", device_name) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -4434,12 +5716,33 @@ def __init__(__self__, *, :param int http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. :param str http_tokens: If session tokens are required: `optional`, `required`. """ + LaunchConfigurationMetadataOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[str] = None, + http_put_response_hop_limit: Optional[int] = None, + http_tokens: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if http_endpoint is not None: - pulumi.set(__self__, "http_endpoint", http_endpoint) + _setter("http_endpoint", http_endpoint) if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) @property @pulumi.getter(name="httpEndpoint") @@ -4496,18 +5799,45 @@ def __init__(__self__, *, throughput: Optional[int] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): + LaunchConfigurationRootBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -4576,14 +5906,37 @@ def __init__(__self__, *, Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g., `"ephemeral0"`). """ + LaunchTemplateBlockDeviceMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + ebs: Optional['outputs.LaunchTemplateBlockDeviceMappingEbs'] = None, + no_device: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if ebs is not None: - pulumi.set(__self__, "ebs", ebs) + _setter("ebs", ebs) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -4671,22 +6024,57 @@ def __init__(__self__, *, :param str volume_type: The volume type. Can be one of `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1`. """ + LaunchTemplateBlockDeviceMappingEbs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[str] = None, + encrypted: Optional[str] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -4786,10 +6174,27 @@ def __init__(__self__, *, :param str capacity_reservation_preference: Indicates the instance's Capacity Reservation preferences. Can be `open` or `none`. (Default `none`). :param 'LaunchTemplateCapacityReservationSpecificationCapacityReservationTargetArgs' capacity_reservation_target: Used to target a specific Capacity Reservation: """ + LaunchTemplateCapacityReservationSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_preference=capacity_reservation_preference, + capacity_reservation_target=capacity_reservation_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_preference: Optional[str] = None, + capacity_reservation_target: Optional['outputs.LaunchTemplateCapacityReservationSpecificationCapacityReservationTarget'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_preference is None and 'capacityReservationPreference' in kwargs: + capacity_reservation_preference = kwargs['capacityReservationPreference'] + if capacity_reservation_target is None and 'capacityReservationTarget' in kwargs: + capacity_reservation_target = kwargs['capacityReservationTarget'] + if capacity_reservation_preference is not None: - pulumi.set(__self__, "capacity_reservation_preference", capacity_reservation_preference) + _setter("capacity_reservation_preference", capacity_reservation_preference) if capacity_reservation_target is not None: - pulumi.set(__self__, "capacity_reservation_target", capacity_reservation_target) + _setter("capacity_reservation_target", capacity_reservation_target) @property @pulumi.getter(name="capacityReservationPreference") @@ -4836,10 +6241,27 @@ def __init__(__self__, *, :param str capacity_reservation_id: The ID of the Capacity Reservation in which to run the instance. :param str capacity_reservation_resource_group_arn: The ARN of the Capacity Reservation resource group in which to run the instance. """ + LaunchTemplateCapacityReservationSpecificationCapacityReservationTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_id=capacity_reservation_id, + capacity_reservation_resource_group_arn=capacity_reservation_resource_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_id: Optional[str] = None, + capacity_reservation_resource_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_id is None and 'capacityReservationId' in kwargs: + capacity_reservation_id = kwargs['capacityReservationId'] + if capacity_reservation_resource_group_arn is None and 'capacityReservationResourceGroupArn' in kwargs: + capacity_reservation_resource_group_arn = kwargs['capacityReservationResourceGroupArn'] + if capacity_reservation_id is not None: - pulumi.set(__self__, "capacity_reservation_id", capacity_reservation_id) + _setter("capacity_reservation_id", capacity_reservation_id) if capacity_reservation_resource_group_arn is not None: - pulumi.set(__self__, "capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) + _setter("capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) @property @pulumi.getter(name="capacityReservationId") @@ -4894,12 +6316,33 @@ def __init__(__self__, *, Both number of CPU cores and threads per core must be specified. Valid number of CPU cores and threads per core for the instance type can be found in the [CPU Options Documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html?shortFooter=true#cpu-options-supported-instances-values) """ + LaunchTemplateCpuOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + amd_sev_snp=amd_sev_snp, + core_count=core_count, + threads_per_core=threads_per_core, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amd_sev_snp: Optional[str] = None, + core_count: Optional[int] = None, + threads_per_core: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amd_sev_snp is None and 'amdSevSnp' in kwargs: + amd_sev_snp = kwargs['amdSevSnp'] + if core_count is None and 'coreCount' in kwargs: + core_count = kwargs['coreCount'] + if threads_per_core is None and 'threadsPerCore' in kwargs: + threads_per_core = kwargs['threadsPerCore'] + if amd_sev_snp is not None: - pulumi.set(__self__, "amd_sev_snp", amd_sev_snp) + _setter("amd_sev_snp", amd_sev_snp) if core_count is not None: - pulumi.set(__self__, "core_count", core_count) + _setter("core_count", core_count) if threads_per_core is not None: - pulumi.set(__self__, "threads_per_core", threads_per_core) + _setter("threads_per_core", threads_per_core) @property @pulumi.getter(name="amdSevSnp") @@ -4957,8 +6400,21 @@ def __init__(__self__, *, T3 instances are launched as `unlimited` by default. T2 instances are launched as `standard` by default. """ + LaunchTemplateCreditSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_credits=cpu_credits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_credits: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_credits is None and 'cpuCredits' in kwargs: + cpu_credits = kwargs['cpuCredits'] + if cpu_credits is not None: - pulumi.set(__self__, "cpu_credits", cpu_credits) + _setter("cpu_credits", cpu_credits) @property @pulumi.getter(name="cpuCredits") @@ -4979,7 +6435,20 @@ def __init__(__self__, *, """ :param str type: The [Elastic GPU Type](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-gpus.html#elastic-gpus-basics) """ - pulumi.set(__self__, "type", type) + LaunchTemplateElasticGpuSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -4997,7 +6466,20 @@ def __init__(__self__, *, """ :param str type: Accelerator type. """ - pulumi.set(__self__, "type", type) + LaunchTemplateElasticInferenceAccelerator._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -5017,8 +6499,19 @@ def __init__(__self__, *, For more information, see the documentation on [Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html). """ + LaunchTemplateEnclaveOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -5038,7 +6531,20 @@ def __init__(__self__, *, """ :param bool configured: If set to `true`, the launched EC2 instance will hibernation enabled. """ - pulumi.set(__self__, "configured", configured) + LaunchTemplateHibernationOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + configured=configured, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configured: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configured is None: + raise TypeError("Missing 'configured' argument") + + _setter("configured", configured) @property @pulumi.getter @@ -5058,10 +6564,23 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the instance profile. :param str name: The name of the instance profile. """ + LaunchTemplateIamInstanceProfile._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -5108,10 +6627,27 @@ def __init__(__self__, *, :param str market_type: The market type. Can be `spot`. :param 'LaunchTemplateInstanceMarketOptionsSpotOptionsArgs' spot_options: The options for [Spot Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) """ + LaunchTemplateInstanceMarketOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + market_type=market_type, + spot_options=spot_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + market_type: Optional[str] = None, + spot_options: Optional['outputs.LaunchTemplateInstanceMarketOptionsSpotOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if market_type is None and 'marketType' in kwargs: + market_type = kwargs['marketType'] + if spot_options is None and 'spotOptions' in kwargs: + spot_options = kwargs['spotOptions'] + if market_type is not None: - pulumi.set(__self__, "market_type", market_type) + _setter("market_type", market_type) if spot_options is not None: - pulumi.set(__self__, "spot_options", spot_options) + _setter("spot_options", spot_options) @property @pulumi.getter(name="marketType") @@ -5171,16 +6707,45 @@ def __init__(__self__, *, :param str spot_instance_type: The Spot Instance request type. Can be `one-time`, or `persistent`. :param str valid_until: The end date of the request. """ + LaunchTemplateInstanceMarketOptionsSpotOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_duration_minutes=block_duration_minutes, + instance_interruption_behavior=instance_interruption_behavior, + max_price=max_price, + spot_instance_type=spot_instance_type, + valid_until=valid_until, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_duration_minutes: Optional[int] = None, + instance_interruption_behavior: Optional[str] = None, + max_price: Optional[str] = None, + spot_instance_type: Optional[str] = None, + valid_until: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + if instance_interruption_behavior is None and 'instanceInterruptionBehavior' in kwargs: + instance_interruption_behavior = kwargs['instanceInterruptionBehavior'] + if max_price is None and 'maxPrice' in kwargs: + max_price = kwargs['maxPrice'] + if spot_instance_type is None and 'spotInstanceType' in kwargs: + spot_instance_type = kwargs['spotInstanceType'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) if instance_interruption_behavior is not None: - pulumi.set(__self__, "instance_interruption_behavior", instance_interruption_behavior) + _setter("instance_interruption_behavior", instance_interruption_behavior) if max_price is not None: - pulumi.set(__self__, "max_price", max_price) + _setter("max_price", max_price) if spot_instance_type is not None: - pulumi.set(__self__, "spot_instance_type", spot_instance_type) + _setter("spot_instance_type", spot_instance_type) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) @property @pulumi.getter(name="blockDurationMinutes") @@ -5370,50 +6935,155 @@ def __init__(__self__, *, If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price. :param 'LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs' total_local_storage_gb: Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum. """ - pulumi.set(__self__, "memory_mib", memory_mib) - pulumi.set(__self__, "vcpu_count", vcpu_count) + LaunchTemplateInstanceRequirements._configure( + lambda key, value: pulumi.set(__self__, key, value), + memory_mib=memory_mib, + vcpu_count=vcpu_count, + accelerator_count=accelerator_count, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mib=accelerator_total_memory_mib, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpu=memory_gib_per_vcpu, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_count=network_interface_count, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gb=total_local_storage_gb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + memory_mib: Optional['outputs.LaunchTemplateInstanceRequirementsMemoryMib'] = None, + vcpu_count: Optional['outputs.LaunchTemplateInstanceRequirementsVcpuCount'] = None, + accelerator_count: Optional['outputs.LaunchTemplateInstanceRequirementsAcceleratorCount'] = None, + accelerator_manufacturers: Optional[Sequence[str]] = None, + accelerator_names: Optional[Sequence[str]] = None, + accelerator_total_memory_mib: Optional['outputs.LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib'] = None, + accelerator_types: Optional[Sequence[str]] = None, + allowed_instance_types: Optional[Sequence[str]] = None, + bare_metal: Optional[str] = None, + baseline_ebs_bandwidth_mbps: Optional['outputs.LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps'] = None, + burstable_performance: Optional[str] = None, + cpu_manufacturers: Optional[Sequence[str]] = None, + excluded_instance_types: Optional[Sequence[str]] = None, + instance_generations: Optional[Sequence[str]] = None, + local_storage: Optional[str] = None, + local_storage_types: Optional[Sequence[str]] = None, + memory_gib_per_vcpu: Optional['outputs.LaunchTemplateInstanceRequirementsMemoryGibPerVcpu'] = None, + network_bandwidth_gbps: Optional['outputs.LaunchTemplateInstanceRequirementsNetworkBandwidthGbps'] = None, + network_interface_count: Optional['outputs.LaunchTemplateInstanceRequirementsNetworkInterfaceCount'] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[int] = None, + require_hibernate_support: Optional[bool] = None, + spot_max_price_percentage_over_lowest_price: Optional[int] = None, + total_local_storage_gb: Optional['outputs.LaunchTemplateInstanceRequirementsTotalLocalStorageGb'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if memory_mib is None and 'memoryMib' in kwargs: + memory_mib = kwargs['memoryMib'] + if memory_mib is None: + raise TypeError("Missing 'memory_mib' argument") + if vcpu_count is None and 'vcpuCount' in kwargs: + vcpu_count = kwargs['vcpuCount'] + if vcpu_count is None: + raise TypeError("Missing 'vcpu_count' argument") + if accelerator_count is None and 'acceleratorCount' in kwargs: + accelerator_count = kwargs['acceleratorCount'] + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_total_memory_mib is None and 'acceleratorTotalMemoryMib' in kwargs: + accelerator_total_memory_mib = kwargs['acceleratorTotalMemoryMib'] + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if memory_gib_per_vcpu is None and 'memoryGibPerVcpu' in kwargs: + memory_gib_per_vcpu = kwargs['memoryGibPerVcpu'] + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_interface_count is None and 'networkInterfaceCount' in kwargs: + network_interface_count = kwargs['networkInterfaceCount'] + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if total_local_storage_gb is None and 'totalLocalStorageGb' in kwargs: + total_local_storage_gb = kwargs['totalLocalStorageGb'] + + _setter("memory_mib", memory_mib) + _setter("vcpu_count", vcpu_count) if accelerator_count is not None: - pulumi.set(__self__, "accelerator_count", accelerator_count) + _setter("accelerator_count", accelerator_count) if accelerator_manufacturers is not None: - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_manufacturers", accelerator_manufacturers) if accelerator_names is not None: - pulumi.set(__self__, "accelerator_names", accelerator_names) + _setter("accelerator_names", accelerator_names) if accelerator_total_memory_mib is not None: - pulumi.set(__self__, "accelerator_total_memory_mib", accelerator_total_memory_mib) + _setter("accelerator_total_memory_mib", accelerator_total_memory_mib) if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if allowed_instance_types is not None: - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + _setter("allowed_instance_types", allowed_instance_types) if bare_metal is not None: - pulumi.set(__self__, "bare_metal", bare_metal) + _setter("bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) if burstable_performance is not None: - pulumi.set(__self__, "burstable_performance", burstable_performance) + _setter("burstable_performance", burstable_performance) if cpu_manufacturers is not None: - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) + _setter("cpu_manufacturers", cpu_manufacturers) if excluded_instance_types is not None: - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + _setter("excluded_instance_types", excluded_instance_types) if instance_generations is not None: - pulumi.set(__self__, "instance_generations", instance_generations) + _setter("instance_generations", instance_generations) if local_storage is not None: - pulumi.set(__self__, "local_storage", local_storage) + _setter("local_storage", local_storage) if local_storage_types is not None: - pulumi.set(__self__, "local_storage_types", local_storage_types) + _setter("local_storage_types", local_storage_types) if memory_gib_per_vcpu is not None: - pulumi.set(__self__, "memory_gib_per_vcpu", memory_gib_per_vcpu) + _setter("memory_gib_per_vcpu", memory_gib_per_vcpu) if network_bandwidth_gbps is not None: - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) if network_interface_count is not None: - pulumi.set(__self__, "network_interface_count", network_interface_count) + _setter("network_interface_count", network_interface_count) if on_demand_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) if require_hibernate_support is not None: - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) + _setter("require_hibernate_support", require_hibernate_support) if spot_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) if total_local_storage_gb is not None: - pulumi.set(__self__, "total_local_storage_gb", total_local_storage_gb) + _setter("total_local_storage_gb", total_local_storage_gb) @property @pulumi.getter(name="memoryMib") @@ -5640,19 +7310,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + LaunchTemplateInstanceRequirementsAcceleratorCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5671,19 +7354,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMib._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5702,19 +7398,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbps._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5733,19 +7442,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. + :param float max: Maximum. :param float min: Minimum. """ + LaunchTemplateInstanceRequirementsMemoryGibPerVcpu._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5765,11 +7487,26 @@ def __init__(__self__, *, max: Optional[int] = None): """ :param int min: Minimum. - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. """ - pulumi.set(__self__, "min", min) + LaunchTemplateInstanceRequirementsMemoryMib._configure( + lambda key, value: pulumi.set(__self__, key, value), + min=min, + max=max, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + min: Optional[int] = None, + max: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("min", min) if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) @property @pulumi.getter @@ -5783,7 +7520,7 @@ def min(self) -> int: @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5794,19 +7531,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. + :param float max: Maximum. :param float min: Minimum. """ + LaunchTemplateInstanceRequirementsNetworkBandwidthGbps._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5825,19 +7575,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + LaunchTemplateInstanceRequirementsNetworkInterfaceCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5856,19 +7619,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. + :param float max: Maximum. :param float min: Minimum. """ + LaunchTemplateInstanceRequirementsTotalLocalStorageGb._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5888,11 +7664,26 @@ def __init__(__self__, *, max: Optional[int] = None): """ :param int min: Minimum. - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. """ - pulumi.set(__self__, "min", min) + LaunchTemplateInstanceRequirementsVcpuCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + min=min, + max=max, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + min: Optional[int] = None, + max: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("min", min) if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) @property @pulumi.getter @@ -5906,7 +7697,7 @@ def min(self) -> int: @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -5935,7 +7726,22 @@ def __init__(__self__, *, """ :param str license_configuration_arn: ARN of the license configuration. """ - pulumi.set(__self__, "license_configuration_arn", license_configuration_arn) + LaunchTemplateLicenseSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + license_configuration_arn=license_configuration_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + license_configuration_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if license_configuration_arn is None and 'licenseConfigurationArn' in kwargs: + license_configuration_arn = kwargs['licenseConfigurationArn'] + if license_configuration_arn is None: + raise TypeError("Missing 'license_configuration_arn' argument") + + _setter("license_configuration_arn", license_configuration_arn) @property @pulumi.getter(name="licenseConfigurationArn") @@ -5970,8 +7776,21 @@ def __init__(__self__, *, """ :param str auto_recovery: Disables the automatic recovery behavior of your instance or sets it to default. Can be `"default"` or `"disabled"`. See [Recover your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html) for more details. """ + LaunchTemplateMaintenanceOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_recovery=auto_recovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_recovery: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_recovery is None and 'autoRecovery' in kwargs: + auto_recovery = kwargs['autoRecovery'] + if auto_recovery is not None: - pulumi.set(__self__, "auto_recovery", auto_recovery) + _setter("auto_recovery", auto_recovery) @property @pulumi.getter(name="autoRecovery") @@ -6024,16 +7843,45 @@ def __init__(__self__, *, For more information, see the documentation on the [Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html). """ + LaunchTemplateMetadataOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_protocol_ipv6=http_protocol_ipv6, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + instance_metadata_tags=instance_metadata_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[str] = None, + http_protocol_ipv6: Optional[str] = None, + http_put_response_hop_limit: Optional[int] = None, + http_tokens: Optional[str] = None, + instance_metadata_tags: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_protocol_ipv6 is None and 'httpProtocolIpv6' in kwargs: + http_protocol_ipv6 = kwargs['httpProtocolIpv6'] + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if instance_metadata_tags is None and 'instanceMetadataTags' in kwargs: + instance_metadata_tags = kwargs['instanceMetadataTags'] + if http_endpoint is not None: - pulumi.set(__self__, "http_endpoint", http_endpoint) + _setter("http_endpoint", http_endpoint) if http_protocol_ipv6 is not None: - pulumi.set(__self__, "http_protocol_ipv6", http_protocol_ipv6) + _setter("http_protocol_ipv6", http_protocol_ipv6) if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) if instance_metadata_tags is not None: - pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + _setter("instance_metadata_tags", instance_metadata_tags) @property @pulumi.getter(name="httpEndpoint") @@ -6085,8 +7933,19 @@ def __init__(__self__, *, """ :param bool enabled: If `true`, the launched EC2 instance will have detailed monitoring enabled. """ + LaunchTemplateMonitoring._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -6194,44 +8053,127 @@ def __init__(__self__, *, :param Sequence[str] security_groups: A list of security group IDs to associate. :param str subnet_id: The VPC Subnet ID to associate. """ + LaunchTemplateNetworkInterface._configure( + lambda key, value: pulumi.set(__self__, key, value), + associate_carrier_ip_address=associate_carrier_ip_address, + associate_public_ip_address=associate_public_ip_address, + delete_on_termination=delete_on_termination, + description=description, + device_index=device_index, + interface_type=interface_type, + ipv4_address_count=ipv4_address_count, + ipv4_addresses=ipv4_addresses, + ipv4_prefix_count=ipv4_prefix_count, + ipv4_prefixes=ipv4_prefixes, + ipv6_address_count=ipv6_address_count, + ipv6_addresses=ipv6_addresses, + ipv6_prefix_count=ipv6_prefix_count, + ipv6_prefixes=ipv6_prefixes, + network_card_index=network_card_index, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + security_groups=security_groups, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + associate_carrier_ip_address: Optional[str] = None, + associate_public_ip_address: Optional[str] = None, + delete_on_termination: Optional[str] = None, + description: Optional[str] = None, + device_index: Optional[int] = None, + interface_type: Optional[str] = None, + ipv4_address_count: Optional[int] = None, + ipv4_addresses: Optional[Sequence[str]] = None, + ipv4_prefix_count: Optional[int] = None, + ipv4_prefixes: Optional[Sequence[str]] = None, + ipv6_address_count: Optional[int] = None, + ipv6_addresses: Optional[Sequence[str]] = None, + ipv6_prefix_count: Optional[int] = None, + ipv6_prefixes: Optional[Sequence[str]] = None, + network_card_index: Optional[int] = None, + network_interface_id: Optional[str] = None, + private_ip_address: Optional[str] = None, + security_groups: Optional[Sequence[str]] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associate_carrier_ip_address is None and 'associateCarrierIpAddress' in kwargs: + associate_carrier_ip_address = kwargs['associateCarrierIpAddress'] + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if interface_type is None and 'interfaceType' in kwargs: + interface_type = kwargs['interfaceType'] + if ipv4_address_count is None and 'ipv4AddressCount' in kwargs: + ipv4_address_count = kwargs['ipv4AddressCount'] + if ipv4_addresses is None and 'ipv4Addresses' in kwargs: + ipv4_addresses = kwargs['ipv4Addresses'] + if ipv4_prefix_count is None and 'ipv4PrefixCount' in kwargs: + ipv4_prefix_count = kwargs['ipv4PrefixCount'] + if ipv4_prefixes is None and 'ipv4Prefixes' in kwargs: + ipv4_prefixes = kwargs['ipv4Prefixes'] + if ipv6_address_count is None and 'ipv6AddressCount' in kwargs: + ipv6_address_count = kwargs['ipv6AddressCount'] + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if ipv6_prefix_count is None and 'ipv6PrefixCount' in kwargs: + ipv6_prefix_count = kwargs['ipv6PrefixCount'] + if ipv6_prefixes is None and 'ipv6Prefixes' in kwargs: + ipv6_prefixes = kwargs['ipv6Prefixes'] + if network_card_index is None and 'networkCardIndex' in kwargs: + network_card_index = kwargs['networkCardIndex'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if associate_carrier_ip_address is not None: - pulumi.set(__self__, "associate_carrier_ip_address", associate_carrier_ip_address) + _setter("associate_carrier_ip_address", associate_carrier_ip_address) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if device_index is not None: - pulumi.set(__self__, "device_index", device_index) + _setter("device_index", device_index) if interface_type is not None: - pulumi.set(__self__, "interface_type", interface_type) + _setter("interface_type", interface_type) if ipv4_address_count is not None: - pulumi.set(__self__, "ipv4_address_count", ipv4_address_count) + _setter("ipv4_address_count", ipv4_address_count) if ipv4_addresses is not None: - pulumi.set(__self__, "ipv4_addresses", ipv4_addresses) + _setter("ipv4_addresses", ipv4_addresses) if ipv4_prefix_count is not None: - pulumi.set(__self__, "ipv4_prefix_count", ipv4_prefix_count) + _setter("ipv4_prefix_count", ipv4_prefix_count) if ipv4_prefixes is not None: - pulumi.set(__self__, "ipv4_prefixes", ipv4_prefixes) + _setter("ipv4_prefixes", ipv4_prefixes) if ipv6_address_count is not None: - pulumi.set(__self__, "ipv6_address_count", ipv6_address_count) + _setter("ipv6_address_count", ipv6_address_count) if ipv6_addresses is not None: - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) + _setter("ipv6_addresses", ipv6_addresses) if ipv6_prefix_count is not None: - pulumi.set(__self__, "ipv6_prefix_count", ipv6_prefix_count) + _setter("ipv6_prefix_count", ipv6_prefix_count) if ipv6_prefixes is not None: - pulumi.set(__self__, "ipv6_prefixes", ipv6_prefixes) + _setter("ipv6_prefixes", ipv6_prefixes) if network_card_index is not None: - pulumi.set(__self__, "network_card_index", network_card_index) + _setter("network_card_index", network_card_index) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="associateCarrierIpAddress") @@ -6437,22 +8379,59 @@ def __init__(__self__, *, :param str spread_domain: Reserved for future use. :param str tenancy: The tenancy of the instance (if the instance is running in a VPC). Can be `default`, `dedicated`, or `host`. """ + LaunchTemplatePlacement._configure( + lambda key, value: pulumi.set(__self__, key, value), + affinity=affinity, + availability_zone=availability_zone, + group_name=group_name, + host_id=host_id, + host_resource_group_arn=host_resource_group_arn, + partition_number=partition_number, + spread_domain=spread_domain, + tenancy=tenancy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + affinity: Optional[str] = None, + availability_zone: Optional[str] = None, + group_name: Optional[str] = None, + host_id: Optional[str] = None, + host_resource_group_arn: Optional[str] = None, + partition_number: Optional[int] = None, + spread_domain: Optional[str] = None, + tenancy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if host_id is None and 'hostId' in kwargs: + host_id = kwargs['hostId'] + if host_resource_group_arn is None and 'hostResourceGroupArn' in kwargs: + host_resource_group_arn = kwargs['hostResourceGroupArn'] + if partition_number is None and 'partitionNumber' in kwargs: + partition_number = kwargs['partitionNumber'] + if spread_domain is None and 'spreadDomain' in kwargs: + spread_domain = kwargs['spreadDomain'] + if affinity is not None: - pulumi.set(__self__, "affinity", affinity) + _setter("affinity", affinity) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if host_id is not None: - pulumi.set(__self__, "host_id", host_id) + _setter("host_id", host_id) if host_resource_group_arn is not None: - pulumi.set(__self__, "host_resource_group_arn", host_resource_group_arn) + _setter("host_resource_group_arn", host_resource_group_arn) if partition_number is not None: - pulumi.set(__self__, "partition_number", partition_number) + _setter("partition_number", partition_number) if spread_domain is not None: - pulumi.set(__self__, "spread_domain", spread_domain) + _setter("spread_domain", spread_domain) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) @property @pulumi.getter @@ -6551,12 +8530,33 @@ def __init__(__self__, *, :param bool enable_resource_name_dns_aaaa_record: Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. :param str hostname_type: The type of hostname for Amazon EC2 instances. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 native subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: `ip-name` and `resource-name`. """ + LaunchTemplatePrivateDnsNameOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_resource_name_dns_a_record=enable_resource_name_dns_a_record, + enable_resource_name_dns_aaaa_record=enable_resource_name_dns_aaaa_record, + hostname_type=hostname_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_resource_name_dns_a_record: Optional[bool] = None, + enable_resource_name_dns_aaaa_record: Optional[bool] = None, + hostname_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_resource_name_dns_a_record is None and 'enableResourceNameDnsARecord' in kwargs: + enable_resource_name_dns_a_record = kwargs['enableResourceNameDnsARecord'] + if enable_resource_name_dns_aaaa_record is None and 'enableResourceNameDnsAaaaRecord' in kwargs: + enable_resource_name_dns_aaaa_record = kwargs['enableResourceNameDnsAaaaRecord'] + if hostname_type is None and 'hostnameType' in kwargs: + hostname_type = kwargs['hostnameType'] + if enable_resource_name_dns_a_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) + _setter("enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) if enable_resource_name_dns_aaaa_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) + _setter("enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) if hostname_type is not None: - pulumi.set(__self__, "hostname_type", hostname_type) + _setter("hostname_type", hostname_type) @property @pulumi.getter(name="enableResourceNameDnsARecord") @@ -6609,10 +8609,25 @@ def __init__(__self__, *, :param str resource_type: The type of resource to tag. :param Mapping[str, str] tags: A map of tags to assign to the resource. """ + LaunchTemplateTagSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_type=resource_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_type: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="resourceType") @@ -6640,9 +8655,24 @@ def __init__(__self__, *, :param str cidr: CIDR block of this entry. :param str description: Description of this entry. Due to API limitations, updating only the description of an existing entry requires temporarily removing and re-adding the entry. """ - pulumi.set(__self__, "cidr", cidr) + ManagedPrefixListEntry._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -6717,19 +8747,70 @@ def __init__(__self__, *, :param int icmp_type: The ICMP type to be used. Default 0. :param str ipv6_cidr_block: The IPv6 CIDR block. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_no", rule_no) - pulumi.set(__self__, "to_port", to_port) + NetworkAclEgress._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + from_port=from_port, + protocol=protocol, + rule_no=rule_no, + to_port=to_port, + cidr_block=cidr_block, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + from_port: Optional[int] = None, + protocol: Optional[str] = None, + rule_no: Optional[int] = None, + to_port: Optional[int] = None, + cidr_block: Optional[str] = None, + icmp_code: Optional[int] = None, + icmp_type: Optional[int] = None, + ipv6_cidr_block: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_no is None and 'ruleNo' in kwargs: + rule_no = kwargs['ruleNo'] + if rule_no is None: + raise TypeError("Missing 'rule_no' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + + _setter("action", action) + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("rule_no", rule_no) + _setter("to_port", to_port) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) @property @pulumi.getter @@ -6864,19 +8945,70 @@ def __init__(__self__, *, :param int icmp_type: The ICMP type to be used. Default 0. :param str ipv6_cidr_block: The IPv6 CIDR block. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_no", rule_no) - pulumi.set(__self__, "to_port", to_port) + NetworkAclIngress._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + from_port=from_port, + protocol=protocol, + rule_no=rule_no, + to_port=to_port, + cidr_block=cidr_block, + icmp_code=icmp_code, + icmp_type=icmp_type, + ipv6_cidr_block=ipv6_cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + from_port: Optional[int] = None, + protocol: Optional[str] = None, + rule_no: Optional[int] = None, + to_port: Optional[int] = None, + cidr_block: Optional[str] = None, + icmp_code: Optional[int] = None, + icmp_type: Optional[int] = None, + ipv6_cidr_block: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_no is None and 'ruleNo' in kwargs: + rule_no = kwargs['ruleNo'] + if rule_no is None: + raise TypeError("Missing 'rule_no' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if icmp_code is None and 'icmpCode' in kwargs: + icmp_code = kwargs['icmpCode'] + if icmp_type is None and 'icmpType' in kwargs: + icmp_type = kwargs['icmpType'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + + _setter("action", action) + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("rule_no", rule_no) + _setter("to_port", to_port) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if icmp_code is not None: - pulumi.set(__self__, "icmp_code", icmp_code) + _setter("icmp_code", icmp_code) if icmp_type is not None: - pulumi.set(__self__, "icmp_type", icmp_type) + _setter("icmp_type", icmp_type) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) @property @pulumi.getter @@ -6983,10 +9115,27 @@ def __init__(__self__, *, :param str component_arn: The Amazon Resource Name (ARN) of the component. :param str component_id: The ID of the component. """ + NetworkInsightsAnalysisAlternatePathHint._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_arn=component_arn, + component_id=component_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_arn: Optional[str] = None, + component_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_arn is None and 'componentArn' in kwargs: + component_arn = kwargs['componentArn'] + if component_id is None and 'componentId' in kwargs: + component_id = kwargs['componentId'] + if component_arn is not None: - pulumi.set(__self__, "component_arn", component_arn) + _setter("component_arn", component_arn) if component_id is not None: - pulumi.set(__self__, "component_id", component_id) + _setter("component_id", component_id) @property @pulumi.getter(name="componentArn") @@ -7143,102 +9292,279 @@ def __init__(__self__, *, vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationVpc']] = None, vpn_connections: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationVpnConnection']] = None, vpn_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationVpnGateway']] = None): + NetworkInsightsAnalysisExplanation._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_rules=acl_rules, + acls=acls, + address=address, + addresses=addresses, + attached_tos=attached_tos, + availability_zones=availability_zones, + cidrs=cidrs, + classic_load_balancer_listeners=classic_load_balancer_listeners, + components=components, + customer_gateways=customer_gateways, + destination_vpcs=destination_vpcs, + destinations=destinations, + direction=direction, + elastic_load_balancer_listeners=elastic_load_balancer_listeners, + explanation_code=explanation_code, + ingress_route_tables=ingress_route_tables, + internet_gateways=internet_gateways, + load_balancer_arn=load_balancer_arn, + load_balancer_listener_port=load_balancer_listener_port, + load_balancer_target_group=load_balancer_target_group, + load_balancer_target_groups=load_balancer_target_groups, + load_balancer_target_port=load_balancer_target_port, + missing_component=missing_component, + nat_gateways=nat_gateways, + network_interfaces=network_interfaces, + packet_field=packet_field, + port=port, + port_ranges=port_ranges, + prefix_lists=prefix_lists, + protocols=protocols, + route_table_routes=route_table_routes, + route_tables=route_tables, + security_group=security_group, + security_group_rules=security_group_rules, + security_groups=security_groups, + source_vpcs=source_vpcs, + state=state, + subnet_route_tables=subnet_route_tables, + subnets=subnets, + transit_gateway_attachments=transit_gateway_attachments, + transit_gateway_route_table_routes=transit_gateway_route_table_routes, + transit_gateway_route_tables=transit_gateway_route_tables, + transit_gateways=transit_gateways, + vpc_endpoints=vpc_endpoints, + vpc_peering_connections=vpc_peering_connections, + vpcs=vpcs, + vpn_connections=vpn_connections, + vpn_gateways=vpn_gateways, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_rules: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationAclRule']] = None, + acls: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationAcl']] = None, + address: Optional[str] = None, + addresses: Optional[Sequence[str]] = None, + attached_tos: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationAttachedTo']] = None, + availability_zones: Optional[Sequence[str]] = None, + cidrs: Optional[Sequence[str]] = None, + classic_load_balancer_listeners: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationClassicLoadBalancerListener']] = None, + components: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationComponent']] = None, + customer_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationCustomerGateway']] = None, + destination_vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationDestinationVpc']] = None, + destinations: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationDestination']] = None, + direction: Optional[str] = None, + elastic_load_balancer_listeners: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationElasticLoadBalancerListener']] = None, + explanation_code: Optional[str] = None, + ingress_route_tables: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationIngressRouteTable']] = None, + internet_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationInternetGateway']] = None, + load_balancer_arn: Optional[str] = None, + load_balancer_listener_port: Optional[int] = None, + load_balancer_target_group: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationLoadBalancerTargetGroup']] = None, + load_balancer_target_groups: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationLoadBalancerTargetGroup']] = None, + load_balancer_target_port: Optional[int] = None, + missing_component: Optional[str] = None, + nat_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationNatGateway']] = None, + network_interfaces: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationNetworkInterface']] = None, + packet_field: Optional[str] = None, + port: Optional[int] = None, + port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationPortRange']] = None, + prefix_lists: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationPrefixList']] = None, + protocols: Optional[Sequence[str]] = None, + route_table_routes: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationRouteTableRoute']] = None, + route_tables: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationRouteTable']] = None, + security_group: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationSecurityGroup']] = None, + security_group_rules: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationSecurityGroupRule']] = None, + security_groups: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationSecurityGroup']] = None, + source_vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationSourceVpc']] = None, + state: Optional[str] = None, + subnet_route_tables: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationSubnetRouteTable']] = None, + subnets: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationSubnet']] = None, + transit_gateway_attachments: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationTransitGatewayAttachment']] = None, + transit_gateway_route_table_routes: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationTransitGatewayRouteTableRoute']] = None, + transit_gateway_route_tables: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationTransitGatewayRouteTable']] = None, + transit_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationTransitGateway']] = None, + vpc_endpoints: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationVpcEndpoint']] = None, + vpc_peering_connections: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationVpcPeeringConnection']] = None, + vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationVpc']] = None, + vpn_connections: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationVpnConnection']] = None, + vpn_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationVpnGateway']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_rules is None and 'aclRules' in kwargs: + acl_rules = kwargs['aclRules'] + if attached_tos is None and 'attachedTos' in kwargs: + attached_tos = kwargs['attachedTos'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if classic_load_balancer_listeners is None and 'classicLoadBalancerListeners' in kwargs: + classic_load_balancer_listeners = kwargs['classicLoadBalancerListeners'] + if customer_gateways is None and 'customerGateways' in kwargs: + customer_gateways = kwargs['customerGateways'] + if destination_vpcs is None and 'destinationVpcs' in kwargs: + destination_vpcs = kwargs['destinationVpcs'] + if elastic_load_balancer_listeners is None and 'elasticLoadBalancerListeners' in kwargs: + elastic_load_balancer_listeners = kwargs['elasticLoadBalancerListeners'] + if explanation_code is None and 'explanationCode' in kwargs: + explanation_code = kwargs['explanationCode'] + if ingress_route_tables is None and 'ingressRouteTables' in kwargs: + ingress_route_tables = kwargs['ingressRouteTables'] + if internet_gateways is None and 'internetGateways' in kwargs: + internet_gateways = kwargs['internetGateways'] + if load_balancer_arn is None and 'loadBalancerArn' in kwargs: + load_balancer_arn = kwargs['loadBalancerArn'] + if load_balancer_listener_port is None and 'loadBalancerListenerPort' in kwargs: + load_balancer_listener_port = kwargs['loadBalancerListenerPort'] + if load_balancer_target_group is None and 'loadBalancerTargetGroup' in kwargs: + load_balancer_target_group = kwargs['loadBalancerTargetGroup'] + if load_balancer_target_groups is None and 'loadBalancerTargetGroups' in kwargs: + load_balancer_target_groups = kwargs['loadBalancerTargetGroups'] + if load_balancer_target_port is None and 'loadBalancerTargetPort' in kwargs: + load_balancer_target_port = kwargs['loadBalancerTargetPort'] + if missing_component is None and 'missingComponent' in kwargs: + missing_component = kwargs['missingComponent'] + if nat_gateways is None and 'natGateways' in kwargs: + nat_gateways = kwargs['natGateways'] + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if packet_field is None and 'packetField' in kwargs: + packet_field = kwargs['packetField'] + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if prefix_lists is None and 'prefixLists' in kwargs: + prefix_lists = kwargs['prefixLists'] + if route_table_routes is None and 'routeTableRoutes' in kwargs: + route_table_routes = kwargs['routeTableRoutes'] + if route_tables is None and 'routeTables' in kwargs: + route_tables = kwargs['routeTables'] + if security_group is None and 'securityGroup' in kwargs: + security_group = kwargs['securityGroup'] + if security_group_rules is None and 'securityGroupRules' in kwargs: + security_group_rules = kwargs['securityGroupRules'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_vpcs is None and 'sourceVpcs' in kwargs: + source_vpcs = kwargs['sourceVpcs'] + if subnet_route_tables is None and 'subnetRouteTables' in kwargs: + subnet_route_tables = kwargs['subnetRouteTables'] + if transit_gateway_attachments is None and 'transitGatewayAttachments' in kwargs: + transit_gateway_attachments = kwargs['transitGatewayAttachments'] + if transit_gateway_route_table_routes is None and 'transitGatewayRouteTableRoutes' in kwargs: + transit_gateway_route_table_routes = kwargs['transitGatewayRouteTableRoutes'] + if transit_gateway_route_tables is None and 'transitGatewayRouteTables' in kwargs: + transit_gateway_route_tables = kwargs['transitGatewayRouteTables'] + if transit_gateways is None and 'transitGateways' in kwargs: + transit_gateways = kwargs['transitGateways'] + if vpc_endpoints is None and 'vpcEndpoints' in kwargs: + vpc_endpoints = kwargs['vpcEndpoints'] + if vpc_peering_connections is None and 'vpcPeeringConnections' in kwargs: + vpc_peering_connections = kwargs['vpcPeeringConnections'] + if vpn_connections is None and 'vpnConnections' in kwargs: + vpn_connections = kwargs['vpnConnections'] + if vpn_gateways is None and 'vpnGateways' in kwargs: + vpn_gateways = kwargs['vpnGateways'] + if acl_rules is not None: - pulumi.set(__self__, "acl_rules", acl_rules) + _setter("acl_rules", acl_rules) if acls is not None: - pulumi.set(__self__, "acls", acls) + _setter("acls", acls) if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if addresses is not None: - pulumi.set(__self__, "addresses", addresses) + _setter("addresses", addresses) if attached_tos is not None: - pulumi.set(__self__, "attached_tos", attached_tos) + _setter("attached_tos", attached_tos) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if cidrs is not None: - pulumi.set(__self__, "cidrs", cidrs) + _setter("cidrs", cidrs) if classic_load_balancer_listeners is not None: - pulumi.set(__self__, "classic_load_balancer_listeners", classic_load_balancer_listeners) + _setter("classic_load_balancer_listeners", classic_load_balancer_listeners) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) if customer_gateways is not None: - pulumi.set(__self__, "customer_gateways", customer_gateways) + _setter("customer_gateways", customer_gateways) if destination_vpcs is not None: - pulumi.set(__self__, "destination_vpcs", destination_vpcs) + _setter("destination_vpcs", destination_vpcs) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if direction is not None: - pulumi.set(__self__, "direction", direction) + _setter("direction", direction) if elastic_load_balancer_listeners is not None: - pulumi.set(__self__, "elastic_load_balancer_listeners", elastic_load_balancer_listeners) + _setter("elastic_load_balancer_listeners", elastic_load_balancer_listeners) if explanation_code is not None: - pulumi.set(__self__, "explanation_code", explanation_code) + _setter("explanation_code", explanation_code) if ingress_route_tables is not None: - pulumi.set(__self__, "ingress_route_tables", ingress_route_tables) + _setter("ingress_route_tables", ingress_route_tables) if internet_gateways is not None: - pulumi.set(__self__, "internet_gateways", internet_gateways) + _setter("internet_gateways", internet_gateways) if load_balancer_arn is not None: - pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) + _setter("load_balancer_arn", load_balancer_arn) if load_balancer_listener_port is not None: - pulumi.set(__self__, "load_balancer_listener_port", load_balancer_listener_port) + _setter("load_balancer_listener_port", load_balancer_listener_port) if load_balancer_target_group is not None: - pulumi.set(__self__, "load_balancer_target_group", load_balancer_target_group) + _setter("load_balancer_target_group", load_balancer_target_group) if load_balancer_target_groups is not None: - pulumi.set(__self__, "load_balancer_target_groups", load_balancer_target_groups) + _setter("load_balancer_target_groups", load_balancer_target_groups) if load_balancer_target_port is not None: - pulumi.set(__self__, "load_balancer_target_port", load_balancer_target_port) + _setter("load_balancer_target_port", load_balancer_target_port) if missing_component is not None: - pulumi.set(__self__, "missing_component", missing_component) + _setter("missing_component", missing_component) if nat_gateways is not None: - pulumi.set(__self__, "nat_gateways", nat_gateways) + _setter("nat_gateways", nat_gateways) if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if packet_field is not None: - pulumi.set(__self__, "packet_field", packet_field) + _setter("packet_field", packet_field) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if prefix_lists is not None: - pulumi.set(__self__, "prefix_lists", prefix_lists) + _setter("prefix_lists", prefix_lists) if protocols is not None: - pulumi.set(__self__, "protocols", protocols) + _setter("protocols", protocols) if route_table_routes is not None: - pulumi.set(__self__, "route_table_routes", route_table_routes) + _setter("route_table_routes", route_table_routes) if route_tables is not None: - pulumi.set(__self__, "route_tables", route_tables) + _setter("route_tables", route_tables) if security_group is not None: - pulumi.set(__self__, "security_group", security_group) + _setter("security_group", security_group) if security_group_rules is not None: - pulumi.set(__self__, "security_group_rules", security_group_rules) + _setter("security_group_rules", security_group_rules) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_vpcs is not None: - pulumi.set(__self__, "source_vpcs", source_vpcs) + _setter("source_vpcs", source_vpcs) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if subnet_route_tables is not None: - pulumi.set(__self__, "subnet_route_tables", subnet_route_tables) + _setter("subnet_route_tables", subnet_route_tables) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if transit_gateway_attachments is not None: - pulumi.set(__self__, "transit_gateway_attachments", transit_gateway_attachments) + _setter("transit_gateway_attachments", transit_gateway_attachments) if transit_gateway_route_table_routes is not None: - pulumi.set(__self__, "transit_gateway_route_table_routes", transit_gateway_route_table_routes) + _setter("transit_gateway_route_table_routes", transit_gateway_route_table_routes) if transit_gateway_route_tables is not None: - pulumi.set(__self__, "transit_gateway_route_tables", transit_gateway_route_tables) + _setter("transit_gateway_route_tables", transit_gateway_route_tables) if transit_gateways is not None: - pulumi.set(__self__, "transit_gateways", transit_gateways) + _setter("transit_gateways", transit_gateways) if vpc_endpoints is not None: - pulumi.set(__self__, "vpc_endpoints", vpc_endpoints) + _setter("vpc_endpoints", vpc_endpoints) if vpc_peering_connections is not None: - pulumi.set(__self__, "vpc_peering_connections", vpc_peering_connections) + _setter("vpc_peering_connections", vpc_peering_connections) if vpcs is not None: - pulumi.set(__self__, "vpcs", vpcs) + _setter("vpcs", vpcs) if vpn_connections is not None: - pulumi.set(__self__, "vpn_connections", vpn_connections) + _setter("vpn_connections", vpn_connections) if vpn_gateways is not None: - pulumi.set(__self__, "vpn_gateways", vpn_gateways) + _setter("vpn_gateways", vpn_gateways) @property @pulumi.getter(name="aclRules") @@ -7491,12 +9817,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationAcl._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7550,18 +9891,45 @@ def __init__(__self__, *, protocol: Optional[str] = None, rule_action: Optional[str] = None, rule_number: Optional[int] = None): + NetworkInsightsAnalysisExplanationAclRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + egress=egress, + port_ranges=port_ranges, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + egress: Optional[bool] = None, + port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationAclRulePortRange']] = None, + protocol: Optional[str] = None, + rule_action: Optional[str] = None, + rule_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if rule_action is not None: - pulumi.set(__self__, "rule_action", rule_action) + _setter("rule_action", rule_action) if rule_number is not None: - pulumi.set(__self__, "rule_number", rule_number) + _setter("rule_number", rule_number) @property @pulumi.getter @@ -7616,10 +9984,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisExplanationAclRulePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -7642,12 +10025,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationAttachedTo._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7695,10 +10093,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, instance_port: Optional[int] = None, load_balancer_port: Optional[int] = None): + NetworkInsightsAnalysisExplanationClassicLoadBalancerListener._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_port=instance_port, + load_balancer_port=load_balancer_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_port: Optional[int] = None, + load_balancer_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if load_balancer_port is None and 'loadBalancerPort' in kwargs: + load_balancer_port = kwargs['loadBalancerPort'] + if instance_port is not None: - pulumi.set(__self__, "instance_port", instance_port) + _setter("instance_port", instance_port) if load_balancer_port is not None: - pulumi.set(__self__, "load_balancer_port", load_balancer_port) + _setter("load_balancer_port", load_balancer_port) @property @pulumi.getter(name="instancePort") @@ -7721,12 +10136,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationComponent._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7760,12 +10190,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationCustomerGateway._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7799,12 +10244,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7838,12 +10298,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationDestinationVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7877,12 +10352,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationElasticLoadBalancerListener._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7916,12 +10406,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationIngressRouteTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7955,12 +10460,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationInternetGateway._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -7994,12 +10514,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationLoadBalancerTargetGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8033,12 +10568,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationNatGateway._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8072,12 +10622,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationNetworkInterface._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8123,10 +10688,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisExplanationPortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -8149,12 +10729,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationPrefixList._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8188,12 +10783,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationRouteTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8263,26 +10873,73 @@ def __init__(__self__, *, origin: Optional[str] = None, transit_gateway_id: Optional[str] = None, vpc_peering_connection_id: Optional[str] = None): + NetworkInsightsAnalysisExplanationRouteTableRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr=destination_cidr, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_internet_gateway_id=egress_only_internet_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + transit_gateway_id=transit_gateway_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr: Optional[str] = None, + destination_prefix_list_id: Optional[str] = None, + egress_only_internet_gateway_id: Optional[str] = None, + gateway_id: Optional[str] = None, + instance_id: Optional[str] = None, + nat_gateway_id: Optional[str] = None, + network_interface_id: Optional[str] = None, + origin: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + vpc_peering_connection_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_internet_gateway_id is None and 'egressOnlyInternetGatewayId' in kwargs: + egress_only_internet_gateway_id = kwargs['egressOnlyInternetGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_internet_gateway_id is not None: - pulumi.set(__self__, "egress_only_internet_gateway_id", egress_only_internet_gateway_id) + _setter("egress_only_internet_gateway_id", egress_only_internet_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if origin is not None: - pulumi.set(__self__, "origin", origin) + _setter("origin", origin) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="destinationCidr") @@ -8345,12 +11002,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationSecurityGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8404,18 +11076,45 @@ def __init__(__self__, *, prefix_list_id: Optional[str] = None, protocol: Optional[str] = None, security_group_id: Optional[str] = None): + NetworkInsightsAnalysisExplanationSecurityGroupRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + direction=direction, + port_ranges=port_ranges, + prefix_list_id=prefix_list_id, + protocol=protocol, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + direction: Optional[str] = None, + port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisExplanationSecurityGroupRulePortRange']] = None, + prefix_list_id: Optional[str] = None, + protocol: Optional[str] = None, + security_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if direction is not None: - pulumi.set(__self__, "direction", direction) + _setter("direction", direction) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) @property @pulumi.getter @@ -8470,10 +11169,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisExplanationSecurityGroupRulePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -8496,12 +11210,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationSourceVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8535,12 +11264,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationSubnet._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8574,12 +11318,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationSubnetRouteTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8613,12 +11372,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationTransitGateway._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8652,12 +11426,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationTransitGatewayAttachment._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8691,12 +11480,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationTransitGatewayRouteTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8757,20 +11561,55 @@ def __init__(__self__, *, resource_type: Optional[str] = None, route_origin: Optional[str] = None, state: Optional[str] = None): + NetworkInsightsAnalysisExplanationTransitGatewayRouteTableRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + destination_cidr=destination_cidr, + prefix_list_id=prefix_list_id, + resource_id=resource_id, + resource_type=resource_type, + route_origin=route_origin, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[str] = None, + destination_cidr: Optional[str] = None, + prefix_list_id: Optional[str] = None, + resource_id: Optional[str] = None, + resource_type: Optional[str] = None, + route_origin: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if route_origin is None and 'routeOrigin' in kwargs: + route_origin = kwargs['routeOrigin'] + if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if route_origin is not None: - pulumi.set(__self__, "route_origin", route_origin) + _setter("route_origin", route_origin) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -8818,12 +11657,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8857,12 +11711,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpcEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8896,12 +11765,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpcPeeringConnection._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8935,12 +11819,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpnConnection._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -8974,12 +11873,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisExplanationVpnGateway._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9060,36 +11974,99 @@ def __init__(__self__, *, transit_gateway_route_table_routes: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentTransitGatewayRouteTableRoute']] = None, transit_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentTransitGateway']] = None, vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentVpc']] = None): + NetworkInsightsAnalysisForwardPathComponent._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_rules=acl_rules, + additional_details=additional_details, + attached_tos=attached_tos, + components=components, + destination_vpcs=destination_vpcs, + inbound_headers=inbound_headers, + outbound_headers=outbound_headers, + route_table_routes=route_table_routes, + security_group_rules=security_group_rules, + sequence_number=sequence_number, + source_vpcs=source_vpcs, + subnets=subnets, + transit_gateway_route_table_routes=transit_gateway_route_table_routes, + transit_gateways=transit_gateways, + vpcs=vpcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_rules: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentAclRule']] = None, + additional_details: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentAdditionalDetail']] = None, + attached_tos: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentAttachedTo']] = None, + components: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentComponent']] = None, + destination_vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentDestinationVpc']] = None, + inbound_headers: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentInboundHeader']] = None, + outbound_headers: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentOutboundHeader']] = None, + route_table_routes: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentRouteTableRoute']] = None, + security_group_rules: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentSecurityGroupRule']] = None, + sequence_number: Optional[int] = None, + source_vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentSourceVpc']] = None, + subnets: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentSubnet']] = None, + transit_gateway_route_table_routes: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentTransitGatewayRouteTableRoute']] = None, + transit_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentTransitGateway']] = None, + vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentVpc']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_rules is None and 'aclRules' in kwargs: + acl_rules = kwargs['aclRules'] + if additional_details is None and 'additionalDetails' in kwargs: + additional_details = kwargs['additionalDetails'] + if attached_tos is None and 'attachedTos' in kwargs: + attached_tos = kwargs['attachedTos'] + if destination_vpcs is None and 'destinationVpcs' in kwargs: + destination_vpcs = kwargs['destinationVpcs'] + if inbound_headers is None and 'inboundHeaders' in kwargs: + inbound_headers = kwargs['inboundHeaders'] + if outbound_headers is None and 'outboundHeaders' in kwargs: + outbound_headers = kwargs['outboundHeaders'] + if route_table_routes is None and 'routeTableRoutes' in kwargs: + route_table_routes = kwargs['routeTableRoutes'] + if security_group_rules is None and 'securityGroupRules' in kwargs: + security_group_rules = kwargs['securityGroupRules'] + if sequence_number is None and 'sequenceNumber' in kwargs: + sequence_number = kwargs['sequenceNumber'] + if source_vpcs is None and 'sourceVpcs' in kwargs: + source_vpcs = kwargs['sourceVpcs'] + if transit_gateway_route_table_routes is None and 'transitGatewayRouteTableRoutes' in kwargs: + transit_gateway_route_table_routes = kwargs['transitGatewayRouteTableRoutes'] + if transit_gateways is None and 'transitGateways' in kwargs: + transit_gateways = kwargs['transitGateways'] + if acl_rules is not None: - pulumi.set(__self__, "acl_rules", acl_rules) + _setter("acl_rules", acl_rules) if additional_details is not None: - pulumi.set(__self__, "additional_details", additional_details) + _setter("additional_details", additional_details) if attached_tos is not None: - pulumi.set(__self__, "attached_tos", attached_tos) + _setter("attached_tos", attached_tos) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) if destination_vpcs is not None: - pulumi.set(__self__, "destination_vpcs", destination_vpcs) + _setter("destination_vpcs", destination_vpcs) if inbound_headers is not None: - pulumi.set(__self__, "inbound_headers", inbound_headers) + _setter("inbound_headers", inbound_headers) if outbound_headers is not None: - pulumi.set(__self__, "outbound_headers", outbound_headers) + _setter("outbound_headers", outbound_headers) if route_table_routes is not None: - pulumi.set(__self__, "route_table_routes", route_table_routes) + _setter("route_table_routes", route_table_routes) if security_group_rules is not None: - pulumi.set(__self__, "security_group_rules", security_group_rules) + _setter("security_group_rules", security_group_rules) if sequence_number is not None: - pulumi.set(__self__, "sequence_number", sequence_number) + _setter("sequence_number", sequence_number) if source_vpcs is not None: - pulumi.set(__self__, "source_vpcs", source_vpcs) + _setter("source_vpcs", source_vpcs) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if transit_gateway_route_table_routes is not None: - pulumi.set(__self__, "transit_gateway_route_table_routes", transit_gateway_route_table_routes) + _setter("transit_gateway_route_table_routes", transit_gateway_route_table_routes) if transit_gateways is not None: - pulumi.set(__self__, "transit_gateways", transit_gateways) + _setter("transit_gateways", transit_gateways) if vpcs is not None: - pulumi.set(__self__, "vpcs", vpcs) + _setter("vpcs", vpcs) @property @pulumi.getter(name="aclRules") @@ -9197,18 +12174,45 @@ def __init__(__self__, *, protocol: Optional[str] = None, rule_action: Optional[str] = None, rule_number: Optional[int] = None): + NetworkInsightsAnalysisForwardPathComponentAclRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + egress=egress, + port_ranges=port_ranges, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + egress: Optional[bool] = None, + port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentAclRulePortRange']] = None, + protocol: Optional[str] = None, + rule_action: Optional[str] = None, + rule_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if rule_action is not None: - pulumi.set(__self__, "rule_action", rule_action) + _setter("rule_action", rule_action) if rule_number is not None: - pulumi.set(__self__, "rule_number", rule_number) + _setter("rule_number", rule_number) @property @pulumi.getter @@ -9263,10 +12267,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisForwardPathComponentAclRulePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -9301,10 +12320,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, additional_detail_type: Optional[str] = None, components: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentAdditionalDetailComponent']] = None): + NetworkInsightsAnalysisForwardPathComponentAdditionalDetail._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_detail_type=additional_detail_type, + components=components, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_detail_type: Optional[str] = None, + components: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentAdditionalDetailComponent']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_detail_type is None and 'additionalDetailType' in kwargs: + additional_detail_type = kwargs['additionalDetailType'] + if additional_detail_type is not None: - pulumi.set(__self__, "additional_detail_type", additional_detail_type) + _setter("additional_detail_type", additional_detail_type) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) @property @pulumi.getter(name="additionalDetailType") @@ -9327,12 +12361,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentAdditionalDetailComponent._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9366,12 +12415,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentAttachedTo._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9405,12 +12469,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentComponent._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9444,12 +12523,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentDestinationVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -9504,16 +12598,43 @@ def __init__(__self__, *, protocol: Optional[str] = None, source_addresses: Optional[Sequence[str]] = None, source_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRange']] = None): + NetworkInsightsAnalysisForwardPathComponentInboundHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[Sequence[str]] = None, + destination_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentInboundHeaderDestinationPortRange']] = None, + protocol: Optional[str] = None, + source_addresses: Optional[Sequence[str]] = None, + source_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRange']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if destination_addresses is not None: - pulumi.set(__self__, "destination_addresses", destination_addresses) + _setter("destination_addresses", destination_addresses) if destination_port_ranges is not None: - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) + _setter("destination_port_ranges", destination_port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source_addresses is not None: - pulumi.set(__self__, "source_addresses", source_addresses) + _setter("source_addresses", source_addresses) if source_port_ranges is not None: - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -9563,10 +12684,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisForwardPathComponentInboundHeaderDestinationPortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -9601,10 +12737,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -9648,16 +12799,43 @@ def __init__(__self__, *, protocol: Optional[str] = None, source_addresses: Optional[Sequence[str]] = None, source_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRange']] = None): + NetworkInsightsAnalysisForwardPathComponentOutboundHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[Sequence[str]] = None, + destination_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentOutboundHeaderDestinationPortRange']] = None, + protocol: Optional[str] = None, + source_addresses: Optional[Sequence[str]] = None, + source_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRange']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if destination_addresses is not None: - pulumi.set(__self__, "destination_addresses", destination_addresses) + _setter("destination_addresses", destination_addresses) if destination_port_ranges is not None: - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) + _setter("destination_port_ranges", destination_port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source_addresses is not None: - pulumi.set(__self__, "source_addresses", source_addresses) + _setter("source_addresses", source_addresses) if source_port_ranges is not None: - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -9707,10 +12885,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisForwardPathComponentOutboundHeaderDestinationPortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -9745,10 +12938,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -9807,26 +13015,73 @@ def __init__(__self__, *, origin: Optional[str] = None, transit_gateway_id: Optional[str] = None, vpc_peering_connection_id: Optional[str] = None): + NetworkInsightsAnalysisForwardPathComponentRouteTableRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr=destination_cidr, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_internet_gateway_id=egress_only_internet_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + transit_gateway_id=transit_gateway_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr: Optional[str] = None, + destination_prefix_list_id: Optional[str] = None, + egress_only_internet_gateway_id: Optional[str] = None, + gateway_id: Optional[str] = None, + instance_id: Optional[str] = None, + nat_gateway_id: Optional[str] = None, + network_interface_id: Optional[str] = None, + origin: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + vpc_peering_connection_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_internet_gateway_id is None and 'egressOnlyInternetGatewayId' in kwargs: + egress_only_internet_gateway_id = kwargs['egressOnlyInternetGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_internet_gateway_id is not None: - pulumi.set(__self__, "egress_only_internet_gateway_id", egress_only_internet_gateway_id) + _setter("egress_only_internet_gateway_id", egress_only_internet_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if origin is not None: - pulumi.set(__self__, "origin", origin) + _setter("origin", origin) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="destinationCidr") @@ -9909,18 +13164,45 @@ def __init__(__self__, *, prefix_list_id: Optional[str] = None, protocol: Optional[str] = None, security_group_id: Optional[str] = None): + NetworkInsightsAnalysisForwardPathComponentSecurityGroupRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + direction=direction, + port_ranges=port_ranges, + prefix_list_id=prefix_list_id, + protocol=protocol, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + direction: Optional[str] = None, + port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisForwardPathComponentSecurityGroupRulePortRange']] = None, + prefix_list_id: Optional[str] = None, + protocol: Optional[str] = None, + security_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if direction is not None: - pulumi.set(__self__, "direction", direction) + _setter("direction", direction) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) @property @pulumi.getter @@ -9975,10 +13257,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisForwardPathComponentSecurityGroupRulePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -10001,12 +13298,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentSourceVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10040,12 +13352,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentSubnet._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10079,12 +13406,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentTransitGateway._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10145,20 +13487,55 @@ def __init__(__self__, *, resource_type: Optional[str] = None, route_origin: Optional[str] = None, state: Optional[str] = None): + NetworkInsightsAnalysisForwardPathComponentTransitGatewayRouteTableRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + destination_cidr=destination_cidr, + prefix_list_id=prefix_list_id, + resource_id=resource_id, + resource_type=resource_type, + route_origin=route_origin, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[str] = None, + destination_cidr: Optional[str] = None, + prefix_list_id: Optional[str] = None, + resource_id: Optional[str] = None, + resource_type: Optional[str] = None, + route_origin: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if route_origin is None and 'routeOrigin' in kwargs: + route_origin = kwargs['routeOrigin'] + if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if route_origin is not None: - pulumi.set(__self__, "route_origin", route_origin) + _setter("route_origin", route_origin) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -10206,12 +13583,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisForwardPathComponentVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10292,36 +13684,99 @@ def __init__(__self__, *, transit_gateway_route_table_routes: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRoute']] = None, transit_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentTransitGateway']] = None, vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentVpc']] = None): + NetworkInsightsAnalysisReturnPathComponent._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_rules=acl_rules, + additional_details=additional_details, + attached_tos=attached_tos, + components=components, + destination_vpcs=destination_vpcs, + inbound_headers=inbound_headers, + outbound_headers=outbound_headers, + route_table_routes=route_table_routes, + security_group_rules=security_group_rules, + sequence_number=sequence_number, + source_vpcs=source_vpcs, + subnets=subnets, + transit_gateway_route_table_routes=transit_gateway_route_table_routes, + transit_gateways=transit_gateways, + vpcs=vpcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_rules: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentAclRule']] = None, + additional_details: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentAdditionalDetail']] = None, + attached_tos: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentAttachedTo']] = None, + components: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentComponent']] = None, + destination_vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentDestinationVpc']] = None, + inbound_headers: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentInboundHeader']] = None, + outbound_headers: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentOutboundHeader']] = None, + route_table_routes: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentRouteTableRoute']] = None, + security_group_rules: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentSecurityGroupRule']] = None, + sequence_number: Optional[int] = None, + source_vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentSourceVpc']] = None, + subnets: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentSubnet']] = None, + transit_gateway_route_table_routes: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRoute']] = None, + transit_gateways: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentTransitGateway']] = None, + vpcs: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentVpc']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_rules is None and 'aclRules' in kwargs: + acl_rules = kwargs['aclRules'] + if additional_details is None and 'additionalDetails' in kwargs: + additional_details = kwargs['additionalDetails'] + if attached_tos is None and 'attachedTos' in kwargs: + attached_tos = kwargs['attachedTos'] + if destination_vpcs is None and 'destinationVpcs' in kwargs: + destination_vpcs = kwargs['destinationVpcs'] + if inbound_headers is None and 'inboundHeaders' in kwargs: + inbound_headers = kwargs['inboundHeaders'] + if outbound_headers is None and 'outboundHeaders' in kwargs: + outbound_headers = kwargs['outboundHeaders'] + if route_table_routes is None and 'routeTableRoutes' in kwargs: + route_table_routes = kwargs['routeTableRoutes'] + if security_group_rules is None and 'securityGroupRules' in kwargs: + security_group_rules = kwargs['securityGroupRules'] + if sequence_number is None and 'sequenceNumber' in kwargs: + sequence_number = kwargs['sequenceNumber'] + if source_vpcs is None and 'sourceVpcs' in kwargs: + source_vpcs = kwargs['sourceVpcs'] + if transit_gateway_route_table_routes is None and 'transitGatewayRouteTableRoutes' in kwargs: + transit_gateway_route_table_routes = kwargs['transitGatewayRouteTableRoutes'] + if transit_gateways is None and 'transitGateways' in kwargs: + transit_gateways = kwargs['transitGateways'] + if acl_rules is not None: - pulumi.set(__self__, "acl_rules", acl_rules) + _setter("acl_rules", acl_rules) if additional_details is not None: - pulumi.set(__self__, "additional_details", additional_details) + _setter("additional_details", additional_details) if attached_tos is not None: - pulumi.set(__self__, "attached_tos", attached_tos) + _setter("attached_tos", attached_tos) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) if destination_vpcs is not None: - pulumi.set(__self__, "destination_vpcs", destination_vpcs) + _setter("destination_vpcs", destination_vpcs) if inbound_headers is not None: - pulumi.set(__self__, "inbound_headers", inbound_headers) + _setter("inbound_headers", inbound_headers) if outbound_headers is not None: - pulumi.set(__self__, "outbound_headers", outbound_headers) + _setter("outbound_headers", outbound_headers) if route_table_routes is not None: - pulumi.set(__self__, "route_table_routes", route_table_routes) + _setter("route_table_routes", route_table_routes) if security_group_rules is not None: - pulumi.set(__self__, "security_group_rules", security_group_rules) + _setter("security_group_rules", security_group_rules) if sequence_number is not None: - pulumi.set(__self__, "sequence_number", sequence_number) + _setter("sequence_number", sequence_number) if source_vpcs is not None: - pulumi.set(__self__, "source_vpcs", source_vpcs) + _setter("source_vpcs", source_vpcs) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if transit_gateway_route_table_routes is not None: - pulumi.set(__self__, "transit_gateway_route_table_routes", transit_gateway_route_table_routes) + _setter("transit_gateway_route_table_routes", transit_gateway_route_table_routes) if transit_gateways is not None: - pulumi.set(__self__, "transit_gateways", transit_gateways) + _setter("transit_gateways", transit_gateways) if vpcs is not None: - pulumi.set(__self__, "vpcs", vpcs) + _setter("vpcs", vpcs) @property @pulumi.getter(name="aclRules") @@ -10429,18 +13884,45 @@ def __init__(__self__, *, protocol: Optional[str] = None, rule_action: Optional[str] = None, rule_number: Optional[int] = None): + NetworkInsightsAnalysisReturnPathComponentAclRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + egress=egress, + port_ranges=port_ranges, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + egress: Optional[bool] = None, + port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentAclRulePortRange']] = None, + protocol: Optional[str] = None, + rule_action: Optional[str] = None, + rule_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if rule_action is not None: - pulumi.set(__self__, "rule_action", rule_action) + _setter("rule_action", rule_action) if rule_number is not None: - pulumi.set(__self__, "rule_number", rule_number) + _setter("rule_number", rule_number) @property @pulumi.getter @@ -10495,10 +13977,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisReturnPathComponentAclRulePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -10533,10 +14030,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, additional_detail_type: Optional[str] = None, components: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentAdditionalDetailComponent']] = None): + NetworkInsightsAnalysisReturnPathComponentAdditionalDetail._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_detail_type=additional_detail_type, + components=components, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_detail_type: Optional[str] = None, + components: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentAdditionalDetailComponent']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_detail_type is None and 'additionalDetailType' in kwargs: + additional_detail_type = kwargs['additionalDetailType'] + if additional_detail_type is not None: - pulumi.set(__self__, "additional_detail_type", additional_detail_type) + _setter("additional_detail_type", additional_detail_type) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) @property @pulumi.getter(name="additionalDetailType") @@ -10559,12 +14071,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentAdditionalDetailComponent._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10598,12 +14125,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentAttachedTo._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10637,12 +14179,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentComponent._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10676,12 +14233,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentDestinationVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -10736,16 +14308,43 @@ def __init__(__self__, *, protocol: Optional[str] = None, source_addresses: Optional[Sequence[str]] = None, source_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRange']] = None): + NetworkInsightsAnalysisReturnPathComponentInboundHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[Sequence[str]] = None, + destination_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentInboundHeaderDestinationPortRange']] = None, + protocol: Optional[str] = None, + source_addresses: Optional[Sequence[str]] = None, + source_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRange']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if destination_addresses is not None: - pulumi.set(__self__, "destination_addresses", destination_addresses) + _setter("destination_addresses", destination_addresses) if destination_port_ranges is not None: - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) + _setter("destination_port_ranges", destination_port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source_addresses is not None: - pulumi.set(__self__, "source_addresses", source_addresses) + _setter("source_addresses", source_addresses) if source_port_ranges is not None: - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -10795,10 +14394,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisReturnPathComponentInboundHeaderDestinationPortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -10833,10 +14447,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -10880,16 +14509,43 @@ def __init__(__self__, *, protocol: Optional[str] = None, source_addresses: Optional[Sequence[str]] = None, source_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRange']] = None): + NetworkInsightsAnalysisReturnPathComponentOutboundHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[Sequence[str]] = None, + destination_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentOutboundHeaderDestinationPortRange']] = None, + protocol: Optional[str] = None, + source_addresses: Optional[Sequence[str]] = None, + source_port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRange']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if destination_addresses is not None: - pulumi.set(__self__, "destination_addresses", destination_addresses) + _setter("destination_addresses", destination_addresses) if destination_port_ranges is not None: - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) + _setter("destination_port_ranges", destination_port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source_addresses is not None: - pulumi.set(__self__, "source_addresses", source_addresses) + _setter("source_addresses", source_addresses) if source_port_ranges is not None: - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -10939,10 +14595,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisReturnPathComponentOutboundHeaderDestinationPortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -10977,10 +14648,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -11039,26 +14725,73 @@ def __init__(__self__, *, origin: Optional[str] = None, transit_gateway_id: Optional[str] = None, vpc_peering_connection_id: Optional[str] = None): + NetworkInsightsAnalysisReturnPathComponentRouteTableRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr=destination_cidr, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_internet_gateway_id=egress_only_internet_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + transit_gateway_id=transit_gateway_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr: Optional[str] = None, + destination_prefix_list_id: Optional[str] = None, + egress_only_internet_gateway_id: Optional[str] = None, + gateway_id: Optional[str] = None, + instance_id: Optional[str] = None, + nat_gateway_id: Optional[str] = None, + network_interface_id: Optional[str] = None, + origin: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + vpc_peering_connection_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_internet_gateway_id is None and 'egressOnlyInternetGatewayId' in kwargs: + egress_only_internet_gateway_id = kwargs['egressOnlyInternetGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_internet_gateway_id is not None: - pulumi.set(__self__, "egress_only_internet_gateway_id", egress_only_internet_gateway_id) + _setter("egress_only_internet_gateway_id", egress_only_internet_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if origin is not None: - pulumi.set(__self__, "origin", origin) + _setter("origin", origin) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="destinationCidr") @@ -11141,18 +14874,45 @@ def __init__(__self__, *, prefix_list_id: Optional[str] = None, protocol: Optional[str] = None, security_group_id: Optional[str] = None): + NetworkInsightsAnalysisReturnPathComponentSecurityGroupRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + direction=direction, + port_ranges=port_ranges, + prefix_list_id=prefix_list_id, + protocol=protocol, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + direction: Optional[str] = None, + port_ranges: Optional[Sequence['outputs.NetworkInsightsAnalysisReturnPathComponentSecurityGroupRulePortRange']] = None, + prefix_list_id: Optional[str] = None, + protocol: Optional[str] = None, + security_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if direction is not None: - pulumi.set(__self__, "direction", direction) + _setter("direction", direction) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) @property @pulumi.getter @@ -11207,10 +14967,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, from_: Optional[int] = None, to: Optional[int] = None): + NetworkInsightsAnalysisReturnPathComponentSecurityGroupRulePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is not None: - pulumi.set(__self__, "from_", from_) + _setter("from_", from_) if to is not None: - pulumi.set(__self__, "to", to) + _setter("to", to) @property @pulumi.getter(name="from") @@ -11233,12 +15008,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentSourceVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11272,12 +15062,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentSubnet._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11311,12 +15116,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentTransitGateway._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11377,20 +15197,55 @@ def __init__(__self__, *, resource_type: Optional[str] = None, route_origin: Optional[str] = None, state: Optional[str] = None): + NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + destination_cidr=destination_cidr, + prefix_list_id=prefix_list_id, + resource_id=resource_id, + resource_type=resource_type, + route_origin=route_origin, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[str] = None, + destination_cidr: Optional[str] = None, + prefix_list_id: Optional[str] = None, + resource_id: Optional[str] = None, + resource_type: Optional[str] = None, + route_origin: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if route_origin is None and 'routeOrigin' in kwargs: + route_origin = kwargs['routeOrigin'] + if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) if destination_cidr is not None: - pulumi.set(__self__, "destination_cidr", destination_cidr) + _setter("destination_cidr", destination_cidr) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if route_origin is not None: - pulumi.set(__self__, "route_origin", route_origin) + _setter("route_origin", route_origin) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -11438,12 +15293,27 @@ def __init__(__self__, *, :param str arn: ARN of the Network Insights Analysis. :param str id: ID of the Network Insights Analysis. """ + NetworkInsightsAnalysisReturnPathComponentVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -11496,10 +15366,33 @@ def __init__(__self__, *, :param int device_index: Integer to define the devices index. :param str instance: ID of the instance to attach to. """ - pulumi.set(__self__, "device_index", device_index) - pulumi.set(__self__, "instance", instance) + NetworkInterfaceAttachment._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_index=device_index, + instance=instance, + attachment_id=attachment_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_index: Optional[int] = None, + instance: Optional[str] = None, + attachment_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if device_index is None: + raise TypeError("Missing 'device_index' argument") + if instance is None: + raise TypeError("Missing 'instance' argument") + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + + _setter("device_index", device_index) + _setter("instance", instance) if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) @property @pulumi.getter(name="deviceIndex") @@ -11547,8 +15440,21 @@ def __init__(__self__, *, """ :param bool allow_remote_vpc_dns_resolution: Allow a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. """ + PeeringConnectionOptionsAccepter._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -11583,8 +15489,21 @@ def __init__(__self__, *, """ :param bool allow_remote_vpc_dns_resolution: Allow a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. """ + PeeringConnectionOptionsRequester._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -11671,32 +15590,93 @@ def __init__(__self__, *, Note that the default route, mapping the VPC's CIDR block to "local", is created implicitly and cannot be specified. """ + RouteTableRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + carrier_gateway_id=carrier_gateway_id, + cidr_block=cidr_block, + core_network_arn=core_network_arn, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_gateway_id=egress_only_gateway_id, + gateway_id=gateway_id, + ipv6_cidr_block=ipv6_cidr_block, + local_gateway_id=local_gateway_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + transit_gateway_id=transit_gateway_id, + vpc_endpoint_id=vpc_endpoint_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + carrier_gateway_id: Optional[str] = None, + cidr_block: Optional[str] = None, + core_network_arn: Optional[str] = None, + destination_prefix_list_id: Optional[str] = None, + egress_only_gateway_id: Optional[str] = None, + gateway_id: Optional[str] = None, + ipv6_cidr_block: Optional[str] = None, + local_gateway_id: Optional[str] = None, + nat_gateway_id: Optional[str] = None, + network_interface_id: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + vpc_endpoint_id: Optional[str] = None, + vpc_peering_connection_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if carrier_gateway_id is None and 'carrierGatewayId' in kwargs: + carrier_gateway_id = kwargs['carrierGatewayId'] + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_gateway_id is None and 'egressOnlyGatewayId' in kwargs: + egress_only_gateway_id = kwargs['egressOnlyGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if local_gateway_id is None and 'localGatewayId' in kwargs: + local_gateway_id = kwargs['localGatewayId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if carrier_gateway_id is not None: - pulumi.set(__self__, "carrier_gateway_id", carrier_gateway_id) + _setter("carrier_gateway_id", carrier_gateway_id) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_gateway_id is not None: - pulumi.set(__self__, "egress_only_gateway_id", egress_only_gateway_id) + _setter("egress_only_gateway_id", egress_only_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if local_gateway_id is not None: - pulumi.set(__self__, "local_gateway_id", local_gateway_id) + _setter("local_gateway_id", local_gateway_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="carrierGatewayId") @@ -11861,21 +15841,66 @@ def __init__(__self__, *, :param Sequence[str] security_groups: List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. :param bool self: Whether the security group itself will be added as a source to this egress rule. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + SecurityGroupEgress._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_blocks=cidr_blocks, + description=description, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + security_groups=security_groups, + self=self, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + protocol: Optional[str] = None, + to_port: Optional[int] = None, + cidr_blocks: Optional[Sequence[str]] = None, + description: Optional[str] = None, + ipv6_cidr_blocks: Optional[Sequence[str]] = None, + prefix_list_ids: Optional[Sequence[str]] = None, + security_groups: Optional[Sequence[str]] = None, + self: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) @property @pulumi.getter(name="fromPort") @@ -12008,21 +16033,66 @@ def __init__(__self__, *, :param Sequence[str] security_groups: List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. :param bool self: Whether the security group itself will be added as a source to this ingress rule. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + SecurityGroupIngress._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_blocks=cidr_blocks, + description=description, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + security_groups=security_groups, + self=self, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + protocol: Optional[str] = None, + to_port: Optional[int] = None, + cidr_blocks: Optional[Sequence[str]] = None, + description: Optional[str] = None, + ipv6_cidr_blocks: Optional[Sequence[str]] = None, + prefix_list_ids: Optional[Sequence[str]] = None, + security_groups: Optional[Sequence[str]] = None, + self: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) @property @pulumi.getter(name="fromPort") @@ -12181,44 +16251,131 @@ def __init__(__self__, *, :param Mapping[str, 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 str weighted_capacity: The capacity added to the fleet by a fulfilled request. """ - pulumi.set(__self__, "ami", ami) - pulumi.set(__self__, "instance_type", instance_type) + SpotFleetRequestLaunchSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami=ami, + instance_type=instance_type, + associate_public_ip_address=associate_public_ip_address, + availability_zone=availability_zone, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + ephemeral_block_devices=ephemeral_block_devices, + iam_instance_profile=iam_instance_profile, + iam_instance_profile_arn=iam_instance_profile_arn, + key_name=key_name, + monitoring=monitoring, + placement_group=placement_group, + placement_tenancy=placement_tenancy, + root_block_devices=root_block_devices, + spot_price=spot_price, + subnet_id=subnet_id, + tags=tags, + user_data=user_data, + vpc_security_group_ids=vpc_security_group_ids, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami: Optional[str] = None, + instance_type: Optional[str] = None, + associate_public_ip_address: Optional[bool] = None, + availability_zone: Optional[str] = None, + ebs_block_devices: Optional[Sequence['outputs.SpotFleetRequestLaunchSpecificationEbsBlockDevice']] = None, + ebs_optimized: Optional[bool] = None, + ephemeral_block_devices: Optional[Sequence['outputs.SpotFleetRequestLaunchSpecificationEphemeralBlockDevice']] = None, + iam_instance_profile: Optional[str] = None, + iam_instance_profile_arn: Optional[str] = None, + key_name: Optional[str] = None, + monitoring: Optional[bool] = None, + placement_group: Optional[str] = None, + placement_tenancy: Optional[str] = None, + root_block_devices: Optional[Sequence['outputs.SpotFleetRequestLaunchSpecificationRootBlockDevice']] = None, + spot_price: Optional[str] = None, + subnet_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + user_data: Optional[str] = None, + vpc_security_group_ids: Optional[Sequence[str]] = None, + weighted_capacity: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ami is None: + raise TypeError("Missing 'ami' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if iam_instance_profile_arn is None and 'iamInstanceProfileArn' in kwargs: + iam_instance_profile_arn = kwargs['iamInstanceProfileArn'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if placement_tenancy is None and 'placementTenancy' in kwargs: + placement_tenancy = kwargs['placementTenancy'] + if root_block_devices is None and 'rootBlockDevices' in kwargs: + root_block_devices = kwargs['rootBlockDevices'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("ami", ami) + _setter("instance_type", instance_type) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if iam_instance_profile_arn is not None: - pulumi.set(__self__, "iam_instance_profile_arn", iam_instance_profile_arn) + _setter("iam_instance_profile_arn", iam_instance_profile_arn) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if monitoring is not None: - pulumi.set(__self__, "monitoring", monitoring) + _setter("monitoring", monitoring) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if placement_tenancy is not None: - pulumi.set(__self__, "placement_tenancy", placement_tenancy) + _setter("placement_tenancy", placement_tenancy) if root_block_devices is not None: - pulumi.set(__self__, "root_block_devices", root_block_devices) + _setter("root_block_devices", root_block_devices) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter @@ -12378,23 +16535,64 @@ def __init__(__self__, *, throughput: Optional[int] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): - pulumi.set(__self__, "device_name", device_name) + SpotFleetRequestLaunchSpecificationEbsBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -12466,8 +16664,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, device_name: str, virtual_name: str): - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "virtual_name", virtual_name) + SpotFleetRequestLaunchSpecificationEphemeralBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -12513,20 +16732,51 @@ def __init__(__self__, *, throughput: Optional[int] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): + SpotFleetRequestLaunchSpecificationRootBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -12590,9 +16840,26 @@ def __init__(__self__, *, :param 'SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs' launch_template_specification: Launch template specification. See Launch Template Specification below for more details. :param Sequence['SpotFleetRequestLaunchTemplateConfigOverrideArgs'] overrides: One or more override configurations. See Overrides below for more details. """ - pulumi.set(__self__, "launch_template_specification", launch_template_specification) + SpotFleetRequestLaunchTemplateConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_specification=launch_template_specification, + overrides=overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_specification: Optional['outputs.SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecification'] = None, + overrides: Optional[Sequence['outputs.SpotFleetRequestLaunchTemplateConfigOverride']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_specification is None and 'launchTemplateSpecification' in kwargs: + launch_template_specification = kwargs['launchTemplateSpecification'] + if launch_template_specification is None: + raise TypeError("Missing 'launch_template_specification' argument") + + _setter("launch_template_specification", launch_template_specification) if overrides is not None: - pulumi.set(__self__, "overrides", overrides) + _setter("overrides", overrides) @property @pulumi.getter(name="launchTemplateSpecification") @@ -12626,12 +16893,27 @@ def __init__(__self__, *, inputs of `ec2.LaunchTemplate`. There are limitations on what you can specify as spot fleet does not support all the attributes that are supported by autoscaling groups. [AWS documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#launch-templates-spot-fleet) is currently sparse, but at least `instance_initiated_shutdown_behavior` is confirmed unsupported. """ + SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -12708,20 +16990,55 @@ def __init__(__self__, *, :param str subnet_id: The subnet in which to launch the requested instance. :param float weighted_capacity: The capacity added to the fleet by a fulfilled request. """ + SpotFleetRequestLaunchTemplateConfigOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + instance_requirements=instance_requirements, + instance_type=instance_type, + priority=priority, + spot_price=spot_price, + subnet_id=subnet_id, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + instance_requirements: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirements'] = None, + instance_type: Optional[str] = None, + priority: Optional[float] = None, + spot_price: Optional[str] = None, + subnet_id: Optional[str] = None, + weighted_capacity: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if instance_requirements is None and 'instanceRequirements' in kwargs: + instance_requirements = kwargs['instanceRequirements'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if instance_requirements is not None: - pulumi.set(__self__, "instance_requirements", instance_requirements) + _setter("instance_requirements", instance_requirements) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="availabilityZone") @@ -12926,52 +17243,153 @@ def __init__(__self__, *, :param 'SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGbArgs' total_local_storage_gb: Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum. :param 'SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCountArgs' vcpu_count: Block describing the minimum and maximum number of vCPUs. Default is no maximum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirements._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_count=accelerator_count, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mib=accelerator_total_memory_mib, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpu=memory_gib_per_vcpu, + memory_mib=memory_mib, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_count=network_interface_count, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gb=total_local_storage_gb, + vcpu_count=vcpu_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_count: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount'] = None, + accelerator_manufacturers: Optional[Sequence[str]] = None, + accelerator_names: Optional[Sequence[str]] = None, + accelerator_total_memory_mib: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib'] = None, + accelerator_types: Optional[Sequence[str]] = None, + allowed_instance_types: Optional[Sequence[str]] = None, + bare_metal: Optional[str] = None, + baseline_ebs_bandwidth_mbps: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps'] = None, + burstable_performance: Optional[str] = None, + cpu_manufacturers: Optional[Sequence[str]] = None, + excluded_instance_types: Optional[Sequence[str]] = None, + instance_generations: Optional[Sequence[str]] = None, + local_storage: Optional[str] = None, + local_storage_types: Optional[Sequence[str]] = None, + memory_gib_per_vcpu: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu'] = None, + memory_mib: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib'] = None, + network_bandwidth_gbps: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps'] = None, + network_interface_count: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount'] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[int] = None, + require_hibernate_support: Optional[bool] = None, + spot_max_price_percentage_over_lowest_price: Optional[int] = None, + total_local_storage_gb: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb'] = None, + vcpu_count: Optional['outputs.SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_count is None and 'acceleratorCount' in kwargs: + accelerator_count = kwargs['acceleratorCount'] + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_total_memory_mib is None and 'acceleratorTotalMemoryMib' in kwargs: + accelerator_total_memory_mib = kwargs['acceleratorTotalMemoryMib'] + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if memory_gib_per_vcpu is None and 'memoryGibPerVcpu' in kwargs: + memory_gib_per_vcpu = kwargs['memoryGibPerVcpu'] + if memory_mib is None and 'memoryMib' in kwargs: + memory_mib = kwargs['memoryMib'] + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_interface_count is None and 'networkInterfaceCount' in kwargs: + network_interface_count = kwargs['networkInterfaceCount'] + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if total_local_storage_gb is None and 'totalLocalStorageGb' in kwargs: + total_local_storage_gb = kwargs['totalLocalStorageGb'] + if vcpu_count is None and 'vcpuCount' in kwargs: + vcpu_count = kwargs['vcpuCount'] + if accelerator_count is not None: - pulumi.set(__self__, "accelerator_count", accelerator_count) + _setter("accelerator_count", accelerator_count) if accelerator_manufacturers is not None: - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_manufacturers", accelerator_manufacturers) if accelerator_names is not None: - pulumi.set(__self__, "accelerator_names", accelerator_names) + _setter("accelerator_names", accelerator_names) if accelerator_total_memory_mib is not None: - pulumi.set(__self__, "accelerator_total_memory_mib", accelerator_total_memory_mib) + _setter("accelerator_total_memory_mib", accelerator_total_memory_mib) if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if allowed_instance_types is not None: - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + _setter("allowed_instance_types", allowed_instance_types) if bare_metal is not None: - pulumi.set(__self__, "bare_metal", bare_metal) + _setter("bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) if burstable_performance is not None: - pulumi.set(__self__, "burstable_performance", burstable_performance) + _setter("burstable_performance", burstable_performance) if cpu_manufacturers is not None: - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) + _setter("cpu_manufacturers", cpu_manufacturers) if excluded_instance_types is not None: - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + _setter("excluded_instance_types", excluded_instance_types) if instance_generations is not None: - pulumi.set(__self__, "instance_generations", instance_generations) + _setter("instance_generations", instance_generations) if local_storage is not None: - pulumi.set(__self__, "local_storage", local_storage) + _setter("local_storage", local_storage) if local_storage_types is not None: - pulumi.set(__self__, "local_storage_types", local_storage_types) + _setter("local_storage_types", local_storage_types) if memory_gib_per_vcpu is not None: - pulumi.set(__self__, "memory_gib_per_vcpu", memory_gib_per_vcpu) + _setter("memory_gib_per_vcpu", memory_gib_per_vcpu) if memory_mib is not None: - pulumi.set(__self__, "memory_mib", memory_mib) + _setter("memory_mib", memory_mib) if network_bandwidth_gbps is not None: - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) if network_interface_count is not None: - pulumi.set(__self__, "network_interface_count", network_interface_count) + _setter("network_interface_count", network_interface_count) if on_demand_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) if require_hibernate_support is not None: - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) + _setter("require_hibernate_support", require_hibernate_support) if spot_max_price_percentage_over_lowest_price is not None: - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) if total_local_storage_gb is not None: - pulumi.set(__self__, "total_local_storage_gb", total_local_storage_gb) + _setter("total_local_storage_gb", total_local_storage_gb) if vcpu_count is not None: - pulumi.set(__self__, "vcpu_count", vcpu_count) + _setter("vcpu_count", vcpu_count) @property @pulumi.getter(name="acceleratorCount") @@ -13198,19 +17616,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13229,19 +17660,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsAcceleratorTotalMemoryMib._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13260,19 +17704,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsBaselineEbsBandwidthMbps._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13291,19 +17748,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. + :param float max: Maximum. :param float min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryGibPerVcpu._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13322,19 +17792,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsMemoryMib._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13353,19 +17836,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. + :param float max: Maximum. :param float min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkBandwidthGbps._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13384,19 +17880,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsNetworkInterfaceCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13415,19 +17924,32 @@ def __init__(__self__, *, max: Optional[float] = None, min: Optional[float] = None): """ - :param float max: Maximum. Set to `0` to exclude instance types with accelerators. + :param float max: Maximum. :param float min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsTotalLocalStorageGb._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[float]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13446,19 +17968,32 @@ def __init__(__self__, *, max: Optional[int] = None, min: Optional[int] = None): """ - :param int max: Maximum. Set to `0` to exclude instance types with accelerators. + :param int max: Maximum. :param int min: Minimum. """ + SpotFleetRequestLaunchTemplateConfigOverrideInstanceRequirementsVcpuCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is not None: - pulumi.set(__self__, "max", max) + _setter("max", max) if min is not None: - pulumi.set(__self__, "min", min) + _setter("min", min) @property @pulumi.getter def max(self) -> Optional[int]: """ - Maximum. Set to `0` to exclude instance types with accelerators. + Maximum. """ return pulumi.get(self, "max") @@ -13495,8 +18030,21 @@ def __init__(__self__, *, """ :param 'SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalanceArgs' capacity_rebalance: Nested argument containing the capacity rebalance for your fleet request. Defined below. """ + SpotFleetRequestSpotMaintenanceStrategies._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_rebalance=capacity_rebalance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_rebalance: Optional['outputs.SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalance'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_rebalance is None and 'capacityRebalance' in kwargs: + capacity_rebalance = kwargs['capacityRebalance'] + if capacity_rebalance is not None: - pulumi.set(__self__, "capacity_rebalance", capacity_rebalance) + _setter("capacity_rebalance", capacity_rebalance) @property @pulumi.getter(name="capacityRebalance") @@ -13531,8 +18079,21 @@ def __init__(__self__, *, """ :param str replacement_strategy: The replacement strategy to use. Only available for spot fleets with `fleet_type` set to `maintain`. Valid values: `launch`. """ + SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalance._configure( + lambda key, value: pulumi.set(__self__, key, value), + replacement_strategy=replacement_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replacement_strategy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replacement_strategy is None and 'replacementStrategy' in kwargs: + replacement_strategy = kwargs['replacementStrategy'] + if replacement_strategy is not None: - pulumi.set(__self__, "replacement_strategy", replacement_strategy) + _setter("replacement_strategy", replacement_strategy) @property @pulumi.getter(name="replacementStrategy") @@ -13573,10 +18134,27 @@ def __init__(__self__, *, For more information, see the documentation on [Capacity Reservations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-using.html). """ + SpotInstanceRequestCapacityReservationSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_preference=capacity_reservation_preference, + capacity_reservation_target=capacity_reservation_target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_preference: Optional[str] = None, + capacity_reservation_target: Optional['outputs.SpotInstanceRequestCapacityReservationSpecificationCapacityReservationTarget'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_preference is None and 'capacityReservationPreference' in kwargs: + capacity_reservation_preference = kwargs['capacityReservationPreference'] + if capacity_reservation_target is None and 'capacityReservationTarget' in kwargs: + capacity_reservation_target = kwargs['capacityReservationTarget'] + if capacity_reservation_preference is not None: - pulumi.set(__self__, "capacity_reservation_preference", capacity_reservation_preference) + _setter("capacity_reservation_preference", capacity_reservation_preference) if capacity_reservation_target is not None: - pulumi.set(__self__, "capacity_reservation_target", capacity_reservation_target) + _setter("capacity_reservation_target", capacity_reservation_target) @property @pulumi.getter(name="capacityReservationPreference") @@ -13625,10 +18203,27 @@ def __init__(__self__, *, :param str capacity_reservation_id: ID of the Capacity Reservation in which to run the instance. :param str capacity_reservation_resource_group_arn: ARN of the Capacity Reservation resource group in which to run the instance. """ + SpotInstanceRequestCapacityReservationSpecificationCapacityReservationTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_id=capacity_reservation_id, + capacity_reservation_resource_group_arn=capacity_reservation_resource_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_id: Optional[str] = None, + capacity_reservation_resource_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_id is None and 'capacityReservationId' in kwargs: + capacity_reservation_id = kwargs['capacityReservationId'] + if capacity_reservation_resource_group_arn is None and 'capacityReservationResourceGroupArn' in kwargs: + capacity_reservation_resource_group_arn = kwargs['capacityReservationResourceGroupArn'] + if capacity_reservation_id is not None: - pulumi.set(__self__, "capacity_reservation_id", capacity_reservation_id) + _setter("capacity_reservation_id", capacity_reservation_id) if capacity_reservation_resource_group_arn is not None: - pulumi.set(__self__, "capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) + _setter("capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) @property @pulumi.getter(name="capacityReservationId") @@ -13681,12 +18276,33 @@ def __init__(__self__, *, For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). """ + SpotInstanceRequestCpuOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + amd_sev_snp=amd_sev_snp, + core_count=core_count, + threads_per_core=threads_per_core, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amd_sev_snp: Optional[str] = None, + core_count: Optional[int] = None, + threads_per_core: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amd_sev_snp is None and 'amdSevSnp' in kwargs: + amd_sev_snp = kwargs['amdSevSnp'] + if core_count is None and 'coreCount' in kwargs: + core_count = kwargs['coreCount'] + if threads_per_core is None and 'threadsPerCore' in kwargs: + threads_per_core = kwargs['threadsPerCore'] + if amd_sev_snp is not None: - pulumi.set(__self__, "amd_sev_snp", amd_sev_snp) + _setter("amd_sev_snp", amd_sev_snp) if core_count is not None: - pulumi.set(__self__, "core_count", core_count) + _setter("core_count", core_count) if threads_per_core is not None: - pulumi.set(__self__, "threads_per_core", threads_per_core) + _setter("threads_per_core", threads_per_core) @property @pulumi.getter(name="amdSevSnp") @@ -13739,8 +18355,21 @@ def __init__(__self__, *, """ :param str cpu_credits: Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ + SpotInstanceRequestCreditSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_credits=cpu_credits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_credits: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_credits is None and 'cpuCredits' in kwargs: + cpu_credits = kwargs['cpuCredits'] + if cpu_credits is not None: - pulumi.set(__self__, "cpu_credits", cpu_credits) + _setter("cpu_credits", cpu_credits) @property @pulumi.getter(name="cpuCredits") @@ -13808,27 +18437,74 @@ def __init__(__self__, *, > **NOTE:** Currently, changes to the `ebs_block_device` configuration of _existing_ resources cannot be automatically detected by this provider. To manage changes and attachments of an EBS block to an instance, use the `ebs.Volume` and `ec2.VolumeAttachment` resources instead. If you use `ebs_block_device` on an `ec2.Instance`, this provider will assume management over the full set of non-root EBS block devices for the instance, treating additional block devices as drift. For this reason, `ebs_block_device` cannot be mixed with external `ebs.Volume` and `ec2.VolumeAttachment` resources for a given instance. """ - pulumi.set(__self__, "device_name", device_name) + SpotInstanceRequestEbsBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + throughput: Optional[int] = None, + volume_id: Optional[str] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -13927,8 +18603,19 @@ def __init__(__self__, *, For more information, see the documentation on [Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html). """ + SpotInstanceRequestEnclaveOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -13975,11 +18662,34 @@ def __init__(__self__, *, Each AWS Instance type has a different set of Instance Store block devices available for attachment. AWS [publishes a list](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#StorageOnInstanceTypes) of which ephemeral devices are available on each type. The devices are always identified by the `virtual_name` in the format `ephemeral{0..N}`. """ - pulumi.set(__self__, "device_name", device_name) + SpotInstanceRequestEphemeralBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + no_device: Optional[bool] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + + _setter("device_name", device_name) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -14019,12 +18729,27 @@ def __init__(__self__, *, :param str name: Name of the launch template. Conflicts with `id`. :param str version: Template version. Can be a specific version number, `$Latest` or `$Default`. The default value is `$Default`. """ + SpotInstanceRequestLaunchTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -14075,8 +18800,21 @@ def __init__(__self__, *, """ :param str auto_recovery: Automatic recovery behavior of the Instance. Can be `"default"` or `"disabled"`. See [Recover your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html) for more details. """ + SpotInstanceRequestMaintenanceOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_recovery=auto_recovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_recovery: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_recovery is None and 'autoRecovery' in kwargs: + auto_recovery = kwargs['autoRecovery'] + if auto_recovery is not None: - pulumi.set(__self__, "auto_recovery", auto_recovery) + _setter("auto_recovery", auto_recovery) @property @pulumi.getter(name="autoRecovery") @@ -14129,16 +18867,45 @@ def __init__(__self__, *, For more information, see the documentation on the [Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html). """ + SpotInstanceRequestMetadataOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_protocol_ipv6=http_protocol_ipv6, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + instance_metadata_tags=instance_metadata_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[str] = None, + http_protocol_ipv6: Optional[str] = None, + http_put_response_hop_limit: Optional[int] = None, + http_tokens: Optional[str] = None, + instance_metadata_tags: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_protocol_ipv6 is None and 'httpProtocolIpv6' in kwargs: + http_protocol_ipv6 = kwargs['httpProtocolIpv6'] + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if instance_metadata_tags is None and 'instanceMetadataTags' in kwargs: + instance_metadata_tags = kwargs['instanceMetadataTags'] + if http_endpoint is not None: - pulumi.set(__self__, "http_endpoint", http_endpoint) + _setter("http_endpoint", http_endpoint) if http_protocol_ipv6 is not None: - pulumi.set(__self__, "http_protocol_ipv6", http_protocol_ipv6) + _setter("http_protocol_ipv6", http_protocol_ipv6) if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) if instance_metadata_tags is not None: - pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + _setter("instance_metadata_tags", instance_metadata_tags) @property @pulumi.getter(name="httpEndpoint") @@ -14219,12 +18986,41 @@ def __init__(__self__, *, :param bool delete_on_termination: Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. :param int network_card_index: Integer index of the network card. Limited by instance type. The default index is `0`. """ - pulumi.set(__self__, "device_index", device_index) - pulumi.set(__self__, "network_interface_id", network_interface_id) + SpotInstanceRequestNetworkInterface._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_index=device_index, + network_interface_id=network_interface_id, + delete_on_termination=delete_on_termination, + network_card_index=network_card_index, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_index: Optional[int] = None, + network_interface_id: Optional[str] = None, + delete_on_termination: Optional[bool] = None, + network_card_index: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if device_index is None: + raise TypeError("Missing 'device_index' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if network_card_index is None and 'networkCardIndex' in kwargs: + network_card_index = kwargs['networkCardIndex'] + + _setter("device_index", device_index) + _setter("network_interface_id", network_interface_id) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if network_card_index is not None: - pulumi.set(__self__, "network_card_index", network_card_index) + _setter("network_card_index", network_card_index) @property @pulumi.getter(name="deviceIndex") @@ -14291,12 +19087,33 @@ def __init__(__self__, *, :param bool enable_resource_name_dns_aaaa_record: Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. :param str hostname_type: Type of hostname for Amazon EC2 instances. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 native subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: `ip-name` and `resource-name`. """ + SpotInstanceRequestPrivateDnsNameOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_resource_name_dns_a_record=enable_resource_name_dns_a_record, + enable_resource_name_dns_aaaa_record=enable_resource_name_dns_aaaa_record, + hostname_type=hostname_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_resource_name_dns_a_record: Optional[bool] = None, + enable_resource_name_dns_aaaa_record: Optional[bool] = None, + hostname_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_resource_name_dns_a_record is None and 'enableResourceNameDnsARecord' in kwargs: + enable_resource_name_dns_a_record = kwargs['enableResourceNameDnsARecord'] + if enable_resource_name_dns_aaaa_record is None and 'enableResourceNameDnsAaaaRecord' in kwargs: + enable_resource_name_dns_aaaa_record = kwargs['enableResourceNameDnsAaaaRecord'] + if hostname_type is None and 'hostnameType' in kwargs: + hostname_type = kwargs['hostnameType'] + if enable_resource_name_dns_a_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) + _setter("enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) if enable_resource_name_dns_aaaa_record is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) + _setter("enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) if hostname_type is not None: - pulumi.set(__self__, "hostname_type", hostname_type) + _setter("hostname_type", hostname_type) @property @pulumi.getter(name="enableResourceNameDnsARecord") @@ -14376,26 +19193,67 @@ def __init__(__self__, *, Modifying the `encrypted` or `kms_key_id` settings of the `root_block_device` requires resource replacement. """ + SpotInstanceRequestRootBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + device_name: Optional[str] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + throughput: Optional[int] = None, + volume_id: Optional[str] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -14505,10 +19363,27 @@ def __init__(__self__, *, :param int from_port: Starting port of the range :param int to_port: Ending port of the range """ + TrafficMirrorFilterRuleDestinationPortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + to_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -14555,10 +19430,27 @@ def __init__(__self__, *, :param int from_port: Starting port of the range :param int to_port: Ending port of the range """ + TrafficMirrorFilterRuleSourcePortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + to_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -14605,10 +19497,27 @@ def __init__(__self__, *, :param str dns_name: The DNS name. :param str hosted_zone_id: The ID of the private hosted zone. """ + VpcEndpointDnsEntry._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + hosted_zone_id=hosted_zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + hosted_zone_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) @property @pulumi.getter(name="dnsName") @@ -14655,10 +19564,27 @@ def __init__(__self__, *, :param str dns_record_ip_type: The DNS records created for the endpoint. Valid values are `ipv4`, `dualstack`, `service-defined`, and `ipv6`. :param bool private_dns_only_for_inbound_resolver_endpoint: 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`. """ + VpcEndpointDnsOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_record_ip_type=dns_record_ip_type, + private_dns_only_for_inbound_resolver_endpoint=private_dns_only_for_inbound_resolver_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_record_ip_type: Optional[str] = None, + private_dns_only_for_inbound_resolver_endpoint: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_record_ip_type is None and 'dnsRecordIpType' in kwargs: + dns_record_ip_type = kwargs['dnsRecordIpType'] + if private_dns_only_for_inbound_resolver_endpoint is None and 'privateDnsOnlyForInboundResolverEndpoint' in kwargs: + private_dns_only_for_inbound_resolver_endpoint = kwargs['privateDnsOnlyForInboundResolverEndpoint'] + if dns_record_ip_type is not None: - pulumi.set(__self__, "dns_record_ip_type", dns_record_ip_type) + _setter("dns_record_ip_type", dns_record_ip_type) if private_dns_only_for_inbound_resolver_endpoint is not None: - pulumi.set(__self__, "private_dns_only_for_inbound_resolver_endpoint", private_dns_only_for_inbound_resolver_endpoint) + _setter("private_dns_only_for_inbound_resolver_endpoint", private_dns_only_for_inbound_resolver_endpoint) @property @pulumi.getter(name="dnsRecordIpType") @@ -14690,14 +19616,31 @@ def __init__(__self__, *, :param str type: Endpoint service verification type, for example `TXT`. :param str value: Value the service provider adds to the private DNS name domain record before verification. """ + VpcEndpointServicePrivateDnsNameConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + state=state, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + state: Optional[str] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -14756,7 +19699,22 @@ def __init__(__self__, *, """ :param str region_name: The name of the Region you want to add to the IPAM. """ - pulumi.set(__self__, "region_name", region_name) + VpcIpamOperatingRegion._configure( + lambda key, value: pulumi.set(__self__, key, value), + region_name=region_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + + _setter("region_name", region_name) @property @pulumi.getter(name="regionName") @@ -14776,10 +19734,23 @@ def __init__(__self__, *, :param str message: The plain-text authorization message for the prefix and account. :param str signature: The signed authorization message for the prefix and account. """ + VpcIpamPoolCidrCidrAuthorizationContext._configure( + lambda key, value: pulumi.set(__self__, key, value), + message=message, + signature=signature, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message: Optional[str] = None, + signature: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) if signature is not None: - pulumi.set(__self__, "signature", signature) + _setter("signature", signature) @property @pulumi.getter @@ -14822,7 +19793,22 @@ def __init__(__self__, *, """ :param str region_name: The name of the Region you want to add to the IPAM. """ - pulumi.set(__self__, "region_name", region_name) + VpcIpamResourceDiscoveryOperatingRegion._configure( + lambda key, value: pulumi.set(__self__, key, value), + region_name=region_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + + _setter("region_name", region_name) @property @pulumi.getter(name="regionName") @@ -14858,8 +19844,21 @@ def __init__(__self__, *, :param bool allow_remote_vpc_dns_resolution: Allow a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. """ + VpcPeeringConnectionAccepter._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -14896,8 +19895,21 @@ def __init__(__self__, *, :param bool allow_remote_vpc_dns_resolution: Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC. """ + VpcPeeringConnectionAccepterAccepter._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -14934,8 +19946,21 @@ def __init__(__self__, *, :param bool allow_remote_vpc_dns_resolution: Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC. """ + VpcPeeringConnectionAccepterRequester._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -14972,8 +19997,21 @@ def __init__(__self__, *, :param bool allow_remote_vpc_dns_resolution: Allow a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. """ + VpcPeeringConnectionRequester._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_remote_vpc_dns_resolution=allow_remote_vpc_dns_resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_remote_vpc_dns_resolution: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_remote_vpc_dns_resolution is None and 'allowRemoteVpcDnsResolution' in kwargs: + allow_remote_vpc_dns_resolution = kwargs['allowRemoteVpcDnsResolution'] + if allow_remote_vpc_dns_resolution is not None: - pulumi.set(__self__, "allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) + _setter("allow_remote_vpc_dns_resolution", allow_remote_vpc_dns_resolution) @property @pulumi.getter(name="allowRemoteVpcDnsResolution") @@ -15013,12 +20051,29 @@ def __init__(__self__, *, :param str source: Indicates how the routes were provided. :param str state: The current state of the static route. """ + VpnConnectionRoute._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr_block=destination_cidr_block, + source=source, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr_block: Optional[str] = None, + source: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_cidr_block is not None: - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) + _setter("destination_cidr_block", destination_cidr_block) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="destinationCidrBlock") @@ -15069,8 +20124,21 @@ def __init__(__self__, *, """ :param 'VpnConnectionTunnel1LogOptionsCloudwatchLogOptionsArgs' cloudwatch_log_options: Options for sending VPN tunnel logs to CloudWatch. See CloudWatch Log Options below for more details. """ + VpnConnectionTunnel1LogOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_options=cloudwatch_log_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_options: Optional['outputs.VpnConnectionTunnel1LogOptionsCloudwatchLogOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_options is None and 'cloudwatchLogOptions' in kwargs: + cloudwatch_log_options = kwargs['cloudwatchLogOptions'] + if cloudwatch_log_options is not None: - pulumi.set(__self__, "cloudwatch_log_options", cloudwatch_log_options) + _setter("cloudwatch_log_options", cloudwatch_log_options) @property @pulumi.getter(name="cloudwatchLogOptions") @@ -15113,12 +20181,33 @@ def __init__(__self__, *, :param str log_group_arn: The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to. :param str log_output_format: Set log format. Default format is json. Possible values are: `json` and `text`. The default is `json`. """ + VpnConnectionTunnel1LogOptionsCloudwatchLogOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_enabled=log_enabled, + log_group_arn=log_group_arn, + log_output_format=log_output_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_enabled: Optional[bool] = None, + log_group_arn: Optional[str] = None, + log_output_format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_enabled is None and 'logEnabled' in kwargs: + log_enabled = kwargs['logEnabled'] + if log_group_arn is None and 'logGroupArn' in kwargs: + log_group_arn = kwargs['logGroupArn'] + if log_output_format is None and 'logOutputFormat' in kwargs: + log_output_format = kwargs['logOutputFormat'] + if log_enabled is not None: - pulumi.set(__self__, "log_enabled", log_enabled) + _setter("log_enabled", log_enabled) if log_group_arn is not None: - pulumi.set(__self__, "log_group_arn", log_group_arn) + _setter("log_group_arn", log_group_arn) if log_output_format is not None: - pulumi.set(__self__, "log_output_format", log_output_format) + _setter("log_output_format", log_output_format) @property @pulumi.getter(name="logEnabled") @@ -15169,8 +20258,21 @@ def __init__(__self__, *, """ :param 'VpnConnectionTunnel2LogOptionsCloudwatchLogOptionsArgs' cloudwatch_log_options: Options for sending VPN tunnel logs to CloudWatch. See CloudWatch Log Options below for more details. """ + VpnConnectionTunnel2LogOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_options=cloudwatch_log_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_options: Optional['outputs.VpnConnectionTunnel2LogOptionsCloudwatchLogOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_options is None and 'cloudwatchLogOptions' in kwargs: + cloudwatch_log_options = kwargs['cloudwatchLogOptions'] + if cloudwatch_log_options is not None: - pulumi.set(__self__, "cloudwatch_log_options", cloudwatch_log_options) + _setter("cloudwatch_log_options", cloudwatch_log_options) @property @pulumi.getter(name="cloudwatchLogOptions") @@ -15213,12 +20315,33 @@ def __init__(__self__, *, :param str log_group_arn: The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to. :param str log_output_format: Set log format. Default format is json. Possible values are: `json` and `text`. The default is `json`. """ + VpnConnectionTunnel2LogOptionsCloudwatchLogOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_enabled=log_enabled, + log_group_arn=log_group_arn, + log_output_format=log_output_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_enabled: Optional[bool] = None, + log_group_arn: Optional[str] = None, + log_output_format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_enabled is None and 'logEnabled' in kwargs: + log_enabled = kwargs['logEnabled'] + if log_group_arn is None and 'logGroupArn' in kwargs: + log_group_arn = kwargs['logGroupArn'] + if log_output_format is None and 'logOutputFormat' in kwargs: + log_output_format = kwargs['logOutputFormat'] + if log_enabled is not None: - pulumi.set(__self__, "log_enabled", log_enabled) + _setter("log_enabled", log_enabled) if log_group_arn is not None: - pulumi.set(__self__, "log_group_arn", log_group_arn) + _setter("log_group_arn", log_group_arn) if log_output_format is not None: - pulumi.set(__self__, "log_output_format", log_output_format) + _setter("log_output_format", log_output_format) @property @pulumi.getter(name="logEnabled") @@ -15287,18 +20410,49 @@ def __init__(__self__, *, :param str status: The status of the VPN tunnel. :param str status_message: If an error occurs, a description of the error. """ + VpnConnectionVgwTelemetry._configure( + lambda key, value: pulumi.set(__self__, key, value), + accepted_route_count=accepted_route_count, + certificate_arn=certificate_arn, + last_status_change=last_status_change, + outside_ip_address=outside_ip_address, + status=status, + status_message=status_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accepted_route_count: Optional[int] = None, + certificate_arn: Optional[str] = None, + last_status_change: Optional[str] = None, + outside_ip_address: Optional[str] = None, + status: Optional[str] = None, + status_message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accepted_route_count is None and 'acceptedRouteCount' in kwargs: + accepted_route_count = kwargs['acceptedRouteCount'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if last_status_change is None and 'lastStatusChange' in kwargs: + last_status_change = kwargs['lastStatusChange'] + if outside_ip_address is None and 'outsideIpAddress' in kwargs: + outside_ip_address = kwargs['outsideIpAddress'] + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + if accepted_route_count is not None: - pulumi.set(__self__, "accepted_route_count", accepted_route_count) + _setter("accepted_route_count", accepted_route_count) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if last_status_change is not None: - pulumi.set(__self__, "last_status_change", last_status_change) + _setter("last_status_change", last_status_change) if outside_ip_address is not None: - pulumi.set(__self__, "outside_ip_address", outside_ip_address) + _setter("outside_ip_address", outside_ip_address) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_message is not None: - pulumi.set(__self__, "status_message", status_message) + _setter("status_message", status_message) @property @pulumi.getter(name="acceptedRouteCount") @@ -15362,10 +20516,41 @@ def __init__(__self__, *, :param str no_device: Suppresses the specified device included in the block device mapping of the AMI. :param str virtual_name: Virtual device name (for instance stores). """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "ebs", ebs) - pulumi.set(__self__, "no_device", no_device) - pulumi.set(__self__, "virtual_name", virtual_name) + GetAmiBlockDeviceMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + ebs: Optional[Mapping[str, str]] = None, + no_device: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if ebs is None: + raise TypeError("Missing 'ebs' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if no_device is None: + raise TypeError("Missing 'no_device' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("ebs", ebs) + _setter("no_device", no_device) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -15408,8 +20593,25 @@ def __init__(__self__, *, """ :param str name: Name of the AMI that was provided during image creation. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAmiFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15430,8 +20632,25 @@ class GetAmiIdsFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAmiIdsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15449,8 +20668,29 @@ class GetAmiProductCodeResult(dict): def __init__(__self__, *, product_code_id: str, product_code_type: str): - pulumi.set(__self__, "product_code_id", product_code_id) - pulumi.set(__self__, "product_code_type", product_code_type) + GetAmiProductCodeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + product_code_id=product_code_id, + product_code_type=product_code_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + product_code_id: Optional[str] = None, + product_code_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if product_code_id is None and 'productCodeId' in kwargs: + product_code_id = kwargs['productCodeId'] + if product_code_id is None: + raise TypeError("Missing 'product_code_id' argument") + if product_code_type is None and 'productCodeType' in kwargs: + product_code_type = kwargs['productCodeType'] + if product_code_type is None: + raise TypeError("Missing 'product_code_type' argument") + + _setter("product_code_id", product_code_id) + _setter("product_code_type", product_code_type) @property @pulumi.getter(name="productCodeId") @@ -15474,8 +20714,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A COIP Pool will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetCoipPoolFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15507,8 +20764,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A COIP Pool will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetCoipPoolsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15534,8 +20808,25 @@ class GetCustomerGatewayFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetCustomerGatewayFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15557,8 +20848,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeHosts.html). :param Sequence[str] values: Set of values that are accepted for the given field. A host will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetDedicatedHostFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15587,8 +20895,25 @@ def __init__(__self__, *, [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAddresses.html). :param Sequence[str] values: Set of values that are accepted for the given field. An Elastic IP will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetEipsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15613,8 +20938,25 @@ class GetElasticIpFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetElasticIpFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15631,7 +20973,22 @@ def values(self) -> Sequence[str]: class GetInstanceCreditSpecificationResult(dict): def __init__(__self__, *, cpu_credits: str): - pulumi.set(__self__, "cpu_credits", cpu_credits) + GetInstanceCreditSpecificationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_credits=cpu_credits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_credits: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_credits is None and 'cpuCredits' in kwargs: + cpu_credits = kwargs['cpuCredits'] + if cpu_credits is None: + raise TypeError("Missing 'cpu_credits' argument") + + _setter("cpu_credits", cpu_credits) @property @pulumi.getter(name="cpuCredits") @@ -15664,17 +21021,84 @@ def __init__(__self__, *, :param int volume_size: Size of the volume, in GiB. :param str volume_type: Type of the volume. """ - pulumi.set(__self__, "delete_on_termination", delete_on_termination) - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "encrypted", encrypted) - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "snapshot_id", snapshot_id) - pulumi.set(__self__, "tags", tags) - pulumi.set(__self__, "throughput", throughput) - pulumi.set(__self__, "volume_id", volume_id) - pulumi.set(__self__, "volume_size", volume_size) - pulumi.set(__self__, "volume_type", volume_type) + GetInstanceEbsBlockDeviceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + device_name: Optional[str] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + throughput: Optional[int] = None, + volume_id: Optional[str] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if delete_on_termination is None: + raise TypeError("Missing 'delete_on_termination' argument") + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if encrypted is None: + raise TypeError("Missing 'encrypted' argument") + if iops is None: + raise TypeError("Missing 'iops' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if snapshot_id is None: + raise TypeError("Missing 'snapshot_id' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + if throughput is None: + raise TypeError("Missing 'throughput' argument") + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_id is None: + raise TypeError("Missing 'volume_id' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_size is None: + raise TypeError("Missing 'volume_size' argument") + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if volume_type is None: + raise TypeError("Missing 'volume_type' argument") + + _setter("delete_on_termination", delete_on_termination) + _setter("device_name", device_name) + _setter("encrypted", encrypted) + _setter("iops", iops) + _setter("kms_key_id", kms_key_id) + _setter("snapshot_id", snapshot_id) + _setter("tags", tags) + _setter("throughput", throughput) + _setter("volume_id", volume_id) + _setter("volume_size", volume_size) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -15766,7 +21190,20 @@ def __init__(__self__, *, """ :param bool enabled: Whether Nitro Enclaves are enabled. """ - pulumi.set(__self__, "enabled", enabled) + GetInstanceEnclaveOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -15788,11 +21225,34 @@ def __init__(__self__, *, :param bool no_device: Whether the specified device included in the device mapping was suppressed or not (Boolean). :param str virtual_name: Virtual device name. """ - pulumi.set(__self__, "device_name", device_name) + GetInstanceEphemeralBlockDeviceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + no_device: Optional[bool] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + + _setter("device_name", device_name) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -15824,8 +21284,25 @@ class GetInstanceFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstanceFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -15845,7 +21322,22 @@ def __init__(__self__, *, """ :param str auto_recovery: Automatic recovery behavior of the instance. """ - pulumi.set(__self__, "auto_recovery", auto_recovery) + GetInstanceMaintenanceOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_recovery=auto_recovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_recovery: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_recovery is None and 'autoRecovery' in kwargs: + auto_recovery = kwargs['autoRecovery'] + if auto_recovery is None: + raise TypeError("Missing 'auto_recovery' argument") + + _setter("auto_recovery", auto_recovery) @property @pulumi.getter(name="autoRecovery") @@ -15871,11 +21363,50 @@ def __init__(__self__, *, :param str http_tokens: If session tokens are required: `optional`, `required`. :param str instance_metadata_tags: If access to instance tags is allowed from the metadata service: `enabled`, `disabled`. """ - pulumi.set(__self__, "http_endpoint", http_endpoint) - pulumi.set(__self__, "http_protocol_ipv6", http_protocol_ipv6) - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) - pulumi.set(__self__, "http_tokens", http_tokens) - pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + GetInstanceMetadataOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_protocol_ipv6=http_protocol_ipv6, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + instance_metadata_tags=instance_metadata_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[str] = None, + http_protocol_ipv6: Optional[str] = None, + http_put_response_hop_limit: Optional[int] = None, + http_tokens: Optional[str] = None, + instance_metadata_tags: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_endpoint is None: + raise TypeError("Missing 'http_endpoint' argument") + if http_protocol_ipv6 is None and 'httpProtocolIpv6' in kwargs: + http_protocol_ipv6 = kwargs['httpProtocolIpv6'] + if http_protocol_ipv6 is None: + raise TypeError("Missing 'http_protocol_ipv6' argument") + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_put_response_hop_limit is None: + raise TypeError("Missing 'http_put_response_hop_limit' argument") + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if http_tokens is None: + raise TypeError("Missing 'http_tokens' argument") + if instance_metadata_tags is None and 'instanceMetadataTags' in kwargs: + instance_metadata_tags = kwargs['instanceMetadataTags'] + if instance_metadata_tags is None: + raise TypeError("Missing 'instance_metadata_tags' argument") + + _setter("http_endpoint", http_endpoint) + _setter("http_protocol_ipv6", http_protocol_ipv6) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_tokens", http_tokens) + _setter("instance_metadata_tags", instance_metadata_tags) @property @pulumi.getter(name="httpEndpoint") @@ -15929,9 +21460,36 @@ def __init__(__self__, *, :param bool enable_resource_name_dns_aaaa_record: Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. :param str hostname_type: Type of hostname for EC2 instances. """ - pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) - pulumi.set(__self__, "hostname_type", hostname_type) + GetInstancePrivateDnsNameOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_resource_name_dns_a_record=enable_resource_name_dns_a_record, + enable_resource_name_dns_aaaa_record=enable_resource_name_dns_aaaa_record, + hostname_type=hostname_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_resource_name_dns_a_record: Optional[bool] = None, + enable_resource_name_dns_aaaa_record: Optional[bool] = None, + hostname_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_resource_name_dns_a_record is None and 'enableResourceNameDnsARecord' in kwargs: + enable_resource_name_dns_a_record = kwargs['enableResourceNameDnsARecord'] + if enable_resource_name_dns_a_record is None: + raise TypeError("Missing 'enable_resource_name_dns_a_record' argument") + if enable_resource_name_dns_aaaa_record is None and 'enableResourceNameDnsAaaaRecord' in kwargs: + enable_resource_name_dns_aaaa_record = kwargs['enableResourceNameDnsAaaaRecord'] + if enable_resource_name_dns_aaaa_record is None: + raise TypeError("Missing 'enable_resource_name_dns_aaaa_record' argument") + if hostname_type is None and 'hostnameType' in kwargs: + hostname_type = kwargs['hostnameType'] + if hostname_type is None: + raise TypeError("Missing 'hostname_type' argument") + + _setter("enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) + _setter("enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) + _setter("hostname_type", hostname_type) @property @pulumi.getter(name="enableResourceNameDnsARecord") @@ -15981,16 +21539,77 @@ def __init__(__self__, *, :param int volume_size: Size of the volume, in GiB. :param str volume_type: Type of the volume. """ - pulumi.set(__self__, "delete_on_termination", delete_on_termination) - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "encrypted", encrypted) - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "tags", tags) - pulumi.set(__self__, "throughput", throughput) - pulumi.set(__self__, "volume_id", volume_id) - pulumi.set(__self__, "volume_size", volume_size) - pulumi.set(__self__, "volume_type", volume_type) + GetInstanceRootBlockDeviceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + tags=tags, + throughput=throughput, + volume_id=volume_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + device_name: Optional[str] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + throughput: Optional[int] = None, + volume_id: Optional[str] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if delete_on_termination is None: + raise TypeError("Missing 'delete_on_termination' argument") + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if encrypted is None: + raise TypeError("Missing 'encrypted' argument") + if iops is None: + raise TypeError("Missing 'iops' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + if throughput is None: + raise TypeError("Missing 'throughput' argument") + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_id is None: + raise TypeError("Missing 'volume_id' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_size is None: + raise TypeError("Missing 'volume_size' argument") + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if volume_type is None: + raise TypeError("Missing 'volume_type' argument") + + _setter("delete_on_termination", delete_on_termination) + _setter("device_name", device_name) + _setter("encrypted", encrypted) + _setter("iops", iops) + _setter("kms_key_id", kms_key_id) + _setter("tags", tags) + _setter("throughput", throughput) + _setter("volume_id", volume_id) + _setter("volume_size", volume_size) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -16077,10 +21696,37 @@ def __init__(__self__, *, """ :param int memory_size: Size of the instance memory, in MiB. """ - pulumi.set(__self__, "count", count) - pulumi.set(__self__, "manufacturer", manufacturer) - pulumi.set(__self__, "memory_size", memory_size) - pulumi.set(__self__, "name", name) + GetInstanceTypeFpgaResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + manufacturer=manufacturer, + memory_size=memory_size, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[int] = None, + manufacturer: Optional[str] = None, + memory_size: Optional[int] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is None: + raise TypeError("Missing 'count' argument") + if manufacturer is None: + raise TypeError("Missing 'manufacturer' argument") + if memory_size is None and 'memorySize' in kwargs: + memory_size = kwargs['memorySize'] + if memory_size is None: + raise TypeError("Missing 'memory_size' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("count", count) + _setter("manufacturer", manufacturer) + _setter("memory_size", memory_size) + _setter("name", name) @property @pulumi.getter @@ -16116,10 +21762,37 @@ def __init__(__self__, *, """ :param int memory_size: Size of the instance memory, in MiB. """ - pulumi.set(__self__, "count", count) - pulumi.set(__self__, "manufacturer", manufacturer) - pulumi.set(__self__, "memory_size", memory_size) - pulumi.set(__self__, "name", name) + GetInstanceTypeGpusResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + manufacturer=manufacturer, + memory_size=memory_size, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[int] = None, + manufacturer: Optional[str] = None, + memory_size: Optional[int] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is None: + raise TypeError("Missing 'count' argument") + if manufacturer is None: + raise TypeError("Missing 'manufacturer' argument") + if memory_size is None and 'memorySize' in kwargs: + memory_size = kwargs['memorySize'] + if memory_size is None: + raise TypeError("Missing 'memory_size' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("count", count) + _setter("manufacturer", manufacturer) + _setter("memory_size", memory_size) + _setter("name", name) @property @pulumi.getter @@ -16151,9 +21824,30 @@ def __init__(__self__, *, count: int, manufacturer: str, name: str): - pulumi.set(__self__, "count", count) - pulumi.set(__self__, "manufacturer", manufacturer) - pulumi.set(__self__, "name", name) + GetInstanceTypeInferenceAcceleratorResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + manufacturer=manufacturer, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[int] = None, + manufacturer: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is None: + raise TypeError("Missing 'count' argument") + if manufacturer is None: + raise TypeError("Missing 'manufacturer' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("count", count) + _setter("manufacturer", manufacturer) + _setter("name", name) @property @pulumi.getter @@ -16177,9 +21871,30 @@ def __init__(__self__, *, count: int, size: int, type: str): - pulumi.set(__self__, "count", count) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + GetInstanceTypeInstanceDiskResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + size=size, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[int] = None, + size: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is None: + raise TypeError("Missing 'count' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("count", count) + _setter("size", size) + _setter("type", type) @property @pulumi.getter @@ -16206,8 +21921,25 @@ def __init__(__self__, *, :param str name: Name of the filter. The `location` filter depends on the top-level `location_type` argument and if not specified, defaults to the current region. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstanceTypeOfferingFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16235,8 +21967,25 @@ def __init__(__self__, *, :param str name: Name of the filter. The `location` filter depends on the top-level `location_type` argument and if not specified, defaults to the current region. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstanceTypeOfferingsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16264,8 +22013,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstanceTypesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16289,8 +22055,25 @@ class GetInstancesFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstancesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16312,8 +22095,27 @@ def __init__(__self__, *, :param str state: Current state of the attachment between the gateway and the VPC. Present only if a VPC is attached :param str vpc_id: ID of an attached VPC. """ - pulumi.set(__self__, "state", state) - pulumi.set(__self__, "vpc_id", vpc_id) + GetInternetGatewayAttachmentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + state=state, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + state: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if state is None: + raise TypeError("Missing 'state' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("state", state) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -16343,8 +22145,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. An Internet Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInternetGatewayFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16374,8 +22193,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeKeyPairs API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeKeyPairs.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetKeyPairFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16417,15 +22253,72 @@ def __init__(__self__, *, :param int volume_size: Size of the volume. :param str volume_type: Type of the volume. """ - pulumi.set(__self__, "delete_on_termination", delete_on_termination) - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "encrypted", encrypted) - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "no_device", no_device) - pulumi.set(__self__, "snapshot_id", snapshot_id) - pulumi.set(__self__, "throughput", throughput) - pulumi.set(__self__, "volume_size", volume_size) - pulumi.set(__self__, "volume_type", volume_type) + GetLaunchConfigurationEbsBlockDeviceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + device_name=device_name, + encrypted=encrypted, + iops=iops, + no_device=no_device, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + device_name: Optional[str] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + no_device: Optional[bool] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if delete_on_termination is None: + raise TypeError("Missing 'delete_on_termination' argument") + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if encrypted is None: + raise TypeError("Missing 'encrypted' argument") + if iops is None: + raise TypeError("Missing 'iops' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if no_device is None: + raise TypeError("Missing 'no_device' argument") + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if snapshot_id is None: + raise TypeError("Missing 'snapshot_id' argument") + if throughput is None: + raise TypeError("Missing 'throughput' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_size is None: + raise TypeError("Missing 'volume_size' argument") + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if volume_type is None: + raise TypeError("Missing 'volume_type' argument") + + _setter("delete_on_termination", delete_on_termination) + _setter("device_name", device_name) + _setter("encrypted", encrypted) + _setter("iops", iops) + _setter("no_device", no_device) + _setter("snapshot_id", snapshot_id) + _setter("throughput", throughput) + _setter("volume_size", volume_size) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -16509,8 +22402,29 @@ def __init__(__self__, *, :param str device_name: Name of the device. :param str virtual_name: Virtual Name of the device. """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "virtual_name", virtual_name) + GetLaunchConfigurationEphemeralBlockDeviceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -16540,9 +22454,36 @@ def __init__(__self__, *, :param int http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. :param str http_tokens: If session tokens are required: `optional`, `required`. """ - pulumi.set(__self__, "http_endpoint", http_endpoint) - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) - pulumi.set(__self__, "http_tokens", http_tokens) + GetLaunchConfigurationMetadataOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[str] = None, + http_put_response_hop_limit: Optional[int] = None, + http_tokens: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_endpoint is None: + raise TypeError("Missing 'http_endpoint' argument") + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_put_response_hop_limit is None: + raise TypeError("Missing 'http_put_response_hop_limit' argument") + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if http_tokens is None: + raise TypeError("Missing 'http_tokens' argument") + + _setter("http_endpoint", http_endpoint) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_tokens", http_tokens) @property @pulumi.getter(name="httpEndpoint") @@ -16586,12 +22527,51 @@ def __init__(__self__, *, :param int volume_size: Size of the volume. :param str volume_type: Type of the volume. """ - pulumi.set(__self__, "delete_on_termination", delete_on_termination) - pulumi.set(__self__, "encrypted", encrypted) - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "throughput", throughput) - pulumi.set(__self__, "volume_size", volume_size) - pulumi.set(__self__, "volume_type", volume_type) + GetLaunchConfigurationRootBlockDeviceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if delete_on_termination is None: + raise TypeError("Missing 'delete_on_termination' argument") + if encrypted is None: + raise TypeError("Missing 'encrypted' argument") + if iops is None: + raise TypeError("Missing 'iops' argument") + if throughput is None: + raise TypeError("Missing 'throughput' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_size is None: + raise TypeError("Missing 'volume_size' argument") + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if volume_type is None: + raise TypeError("Missing 'volume_type' argument") + + _setter("delete_on_termination", delete_on_termination) + _setter("encrypted", encrypted) + _setter("iops", iops) + _setter("throughput", throughput) + _setter("volume_size", volume_size) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -16649,10 +22629,41 @@ def __init__(__self__, *, ebs: Sequence['outputs.GetLaunchTemplateBlockDeviceMappingEbResult'], no_device: str, virtual_name: str): - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "ebs", ebs) - pulumi.set(__self__, "no_device", no_device) - pulumi.set(__self__, "virtual_name", virtual_name) + GetLaunchTemplateBlockDeviceMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + ebs: Optional[Sequence['outputs.GetLaunchTemplateBlockDeviceMappingEbResult']] = None, + no_device: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if ebs is None: + raise TypeError("Missing 'ebs' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if no_device is None: + raise TypeError("Missing 'no_device' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("ebs", ebs) + _setter("no_device", no_device) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -16686,14 +22697,65 @@ def __init__(__self__, *, throughput: int, volume_size: int, volume_type: str): - pulumi.set(__self__, "delete_on_termination", delete_on_termination) - pulumi.set(__self__, "encrypted", encrypted) - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "snapshot_id", snapshot_id) - pulumi.set(__self__, "throughput", throughput) - pulumi.set(__self__, "volume_size", volume_size) - pulumi.set(__self__, "volume_type", volume_type) + GetLaunchTemplateBlockDeviceMappingEbResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[str] = None, + encrypted: Optional[str] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if delete_on_termination is None: + raise TypeError("Missing 'delete_on_termination' argument") + if encrypted is None: + raise TypeError("Missing 'encrypted' argument") + if iops is None: + raise TypeError("Missing 'iops' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if snapshot_id is None: + raise TypeError("Missing 'snapshot_id' argument") + if throughput is None: + raise TypeError("Missing 'throughput' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_size is None: + raise TypeError("Missing 'volume_size' argument") + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if volume_type is None: + raise TypeError("Missing 'volume_type' argument") + + _setter("delete_on_termination", delete_on_termination) + _setter("encrypted", encrypted) + _setter("iops", iops) + _setter("kms_key_id", kms_key_id) + _setter("snapshot_id", snapshot_id) + _setter("throughput", throughput) + _setter("volume_size", volume_size) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -16741,8 +22803,29 @@ class GetLaunchTemplateCapacityReservationSpecificationResult(dict): def __init__(__self__, *, capacity_reservation_preference: str, capacity_reservation_targets: Sequence['outputs.GetLaunchTemplateCapacityReservationSpecificationCapacityReservationTargetResult']): - pulumi.set(__self__, "capacity_reservation_preference", capacity_reservation_preference) - pulumi.set(__self__, "capacity_reservation_targets", capacity_reservation_targets) + GetLaunchTemplateCapacityReservationSpecificationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_preference=capacity_reservation_preference, + capacity_reservation_targets=capacity_reservation_targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_preference: Optional[str] = None, + capacity_reservation_targets: Optional[Sequence['outputs.GetLaunchTemplateCapacityReservationSpecificationCapacityReservationTargetResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_preference is None and 'capacityReservationPreference' in kwargs: + capacity_reservation_preference = kwargs['capacityReservationPreference'] + if capacity_reservation_preference is None: + raise TypeError("Missing 'capacity_reservation_preference' argument") + if capacity_reservation_targets is None and 'capacityReservationTargets' in kwargs: + capacity_reservation_targets = kwargs['capacityReservationTargets'] + if capacity_reservation_targets is None: + raise TypeError("Missing 'capacity_reservation_targets' argument") + + _setter("capacity_reservation_preference", capacity_reservation_preference) + _setter("capacity_reservation_targets", capacity_reservation_targets) @property @pulumi.getter(name="capacityReservationPreference") @@ -16760,8 +22843,29 @@ class GetLaunchTemplateCapacityReservationSpecificationCapacityReservationTarget def __init__(__self__, *, capacity_reservation_id: str, capacity_reservation_resource_group_arn: str): - pulumi.set(__self__, "capacity_reservation_id", capacity_reservation_id) - pulumi.set(__self__, "capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) + GetLaunchTemplateCapacityReservationSpecificationCapacityReservationTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_reservation_id=capacity_reservation_id, + capacity_reservation_resource_group_arn=capacity_reservation_resource_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_reservation_id: Optional[str] = None, + capacity_reservation_resource_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_reservation_id is None and 'capacityReservationId' in kwargs: + capacity_reservation_id = kwargs['capacityReservationId'] + if capacity_reservation_id is None: + raise TypeError("Missing 'capacity_reservation_id' argument") + if capacity_reservation_resource_group_arn is None and 'capacityReservationResourceGroupArn' in kwargs: + capacity_reservation_resource_group_arn = kwargs['capacityReservationResourceGroupArn'] + if capacity_reservation_resource_group_arn is None: + raise TypeError("Missing 'capacity_reservation_resource_group_arn' argument") + + _setter("capacity_reservation_id", capacity_reservation_id) + _setter("capacity_reservation_resource_group_arn", capacity_reservation_resource_group_arn) @property @pulumi.getter(name="capacityReservationId") @@ -16780,9 +22884,36 @@ def __init__(__self__, *, amd_sev_snp: str, core_count: int, threads_per_core: int): - pulumi.set(__self__, "amd_sev_snp", amd_sev_snp) - pulumi.set(__self__, "core_count", core_count) - pulumi.set(__self__, "threads_per_core", threads_per_core) + GetLaunchTemplateCpuOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + amd_sev_snp=amd_sev_snp, + core_count=core_count, + threads_per_core=threads_per_core, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amd_sev_snp: Optional[str] = None, + core_count: Optional[int] = None, + threads_per_core: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amd_sev_snp is None and 'amdSevSnp' in kwargs: + amd_sev_snp = kwargs['amdSevSnp'] + if amd_sev_snp is None: + raise TypeError("Missing 'amd_sev_snp' argument") + if core_count is None and 'coreCount' in kwargs: + core_count = kwargs['coreCount'] + if core_count is None: + raise TypeError("Missing 'core_count' argument") + if threads_per_core is None and 'threadsPerCore' in kwargs: + threads_per_core = kwargs['threadsPerCore'] + if threads_per_core is None: + raise TypeError("Missing 'threads_per_core' argument") + + _setter("amd_sev_snp", amd_sev_snp) + _setter("core_count", core_count) + _setter("threads_per_core", threads_per_core) @property @pulumi.getter(name="amdSevSnp") @@ -16804,7 +22935,22 @@ def threads_per_core(self) -> int: class GetLaunchTemplateCreditSpecificationResult(dict): def __init__(__self__, *, cpu_credits: str): - pulumi.set(__self__, "cpu_credits", cpu_credits) + GetLaunchTemplateCreditSpecificationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_credits=cpu_credits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_credits: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_credits is None and 'cpuCredits' in kwargs: + cpu_credits = kwargs['cpuCredits'] + if cpu_credits is None: + raise TypeError("Missing 'cpu_credits' argument") + + _setter("cpu_credits", cpu_credits) @property @pulumi.getter(name="cpuCredits") @@ -16816,7 +22962,20 @@ def cpu_credits(self) -> str: class GetLaunchTemplateElasticGpuSpecificationResult(dict): def __init__(__self__, *, type: str): - pulumi.set(__self__, "type", type) + GetLaunchTemplateElasticGpuSpecificationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -16828,7 +22987,20 @@ def type(self) -> str: class GetLaunchTemplateElasticInferenceAcceleratorResult(dict): def __init__(__self__, *, type: str): - pulumi.set(__self__, "type", type) + GetLaunchTemplateElasticInferenceAcceleratorResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -16840,7 +23012,20 @@ def type(self) -> str: class GetLaunchTemplateEnclaveOptionResult(dict): def __init__(__self__, *, enabled: bool): - pulumi.set(__self__, "enabled", enabled) + GetLaunchTemplateEnclaveOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -16857,8 +23042,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeLaunchTemplates API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLaunchTemplateFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -16881,7 +23083,20 @@ def values(self) -> Sequence[str]: class GetLaunchTemplateHibernationOptionResult(dict): def __init__(__self__, *, configured: bool): - pulumi.set(__self__, "configured", configured) + GetLaunchTemplateHibernationOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + configured=configured, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configured: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configured is None: + raise TypeError("Missing 'configured' argument") + + _setter("configured", configured) @property @pulumi.getter @@ -16897,8 +23112,25 @@ def __init__(__self__, *, """ :param str name: Name of the launch template. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "name", name) + GetLaunchTemplateIamInstanceProfileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("name", name) @property @pulumi.getter @@ -16919,8 +23151,29 @@ class GetLaunchTemplateInstanceMarketOptionResult(dict): def __init__(__self__, *, market_type: str, spot_options: Sequence['outputs.GetLaunchTemplateInstanceMarketOptionSpotOptionResult']): - pulumi.set(__self__, "market_type", market_type) - pulumi.set(__self__, "spot_options", spot_options) + GetLaunchTemplateInstanceMarketOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + market_type=market_type, + spot_options=spot_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + market_type: Optional[str] = None, + spot_options: Optional[Sequence['outputs.GetLaunchTemplateInstanceMarketOptionSpotOptionResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if market_type is None and 'marketType' in kwargs: + market_type = kwargs['marketType'] + if market_type is None: + raise TypeError("Missing 'market_type' argument") + if spot_options is None and 'spotOptions' in kwargs: + spot_options = kwargs['spotOptions'] + if spot_options is None: + raise TypeError("Missing 'spot_options' argument") + + _setter("market_type", market_type) + _setter("spot_options", spot_options) @property @pulumi.getter(name="marketType") @@ -16941,11 +23194,50 @@ def __init__(__self__, *, max_price: str, spot_instance_type: str, valid_until: str): - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) - pulumi.set(__self__, "instance_interruption_behavior", instance_interruption_behavior) - pulumi.set(__self__, "max_price", max_price) - pulumi.set(__self__, "spot_instance_type", spot_instance_type) - pulumi.set(__self__, "valid_until", valid_until) + GetLaunchTemplateInstanceMarketOptionSpotOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_duration_minutes=block_duration_minutes, + instance_interruption_behavior=instance_interruption_behavior, + max_price=max_price, + spot_instance_type=spot_instance_type, + valid_until=valid_until, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_duration_minutes: Optional[int] = None, + instance_interruption_behavior: Optional[str] = None, + max_price: Optional[str] = None, + spot_instance_type: Optional[str] = None, + valid_until: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + if block_duration_minutes is None: + raise TypeError("Missing 'block_duration_minutes' argument") + if instance_interruption_behavior is None and 'instanceInterruptionBehavior' in kwargs: + instance_interruption_behavior = kwargs['instanceInterruptionBehavior'] + if instance_interruption_behavior is None: + raise TypeError("Missing 'instance_interruption_behavior' argument") + if max_price is None and 'maxPrice' in kwargs: + max_price = kwargs['maxPrice'] + if max_price is None: + raise TypeError("Missing 'max_price' argument") + if spot_instance_type is None and 'spotInstanceType' in kwargs: + spot_instance_type = kwargs['spotInstanceType'] + if spot_instance_type is None: + raise TypeError("Missing 'spot_instance_type' argument") + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if valid_until is None: + raise TypeError("Missing 'valid_until' argument") + + _setter("block_duration_minutes", block_duration_minutes) + _setter("instance_interruption_behavior", instance_interruption_behavior) + _setter("max_price", max_price) + _setter("spot_instance_type", spot_instance_type) + _setter("valid_until", valid_until) @property @pulumi.getter(name="blockDurationMinutes") @@ -16999,29 +23291,176 @@ def __init__(__self__, *, spot_max_price_percentage_over_lowest_price: int, total_local_storage_gbs: Sequence['outputs.GetLaunchTemplateInstanceRequirementTotalLocalStorageGbResult'], vcpu_counts: Sequence['outputs.GetLaunchTemplateInstanceRequirementVcpuCountResult']): - pulumi.set(__self__, "accelerator_counts", accelerator_counts) - pulumi.set(__self__, "accelerator_manufacturers", accelerator_manufacturers) - pulumi.set(__self__, "accelerator_names", accelerator_names) - pulumi.set(__self__, "accelerator_total_memory_mibs", accelerator_total_memory_mibs) - pulumi.set(__self__, "accelerator_types", accelerator_types) - pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) - pulumi.set(__self__, "bare_metal", bare_metal) - pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) - pulumi.set(__self__, "burstable_performance", burstable_performance) - pulumi.set(__self__, "cpu_manufacturers", cpu_manufacturers) - pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) - pulumi.set(__self__, "instance_generations", instance_generations) - pulumi.set(__self__, "local_storage", local_storage) - pulumi.set(__self__, "local_storage_types", local_storage_types) - pulumi.set(__self__, "memory_gib_per_vcpus", memory_gib_per_vcpus) - pulumi.set(__self__, "memory_mibs", memory_mibs) - pulumi.set(__self__, "network_bandwidth_gbps", network_bandwidth_gbps) - pulumi.set(__self__, "network_interface_counts", network_interface_counts) - pulumi.set(__self__, "on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) - pulumi.set(__self__, "require_hibernate_support", require_hibernate_support) - pulumi.set(__self__, "spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) - pulumi.set(__self__, "total_local_storage_gbs", total_local_storage_gbs) - pulumi.set(__self__, "vcpu_counts", vcpu_counts) + GetLaunchTemplateInstanceRequirementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_counts=accelerator_counts, + accelerator_manufacturers=accelerator_manufacturers, + accelerator_names=accelerator_names, + accelerator_total_memory_mibs=accelerator_total_memory_mibs, + accelerator_types=accelerator_types, + allowed_instance_types=allowed_instance_types, + bare_metal=bare_metal, + baseline_ebs_bandwidth_mbps=baseline_ebs_bandwidth_mbps, + burstable_performance=burstable_performance, + cpu_manufacturers=cpu_manufacturers, + excluded_instance_types=excluded_instance_types, + instance_generations=instance_generations, + local_storage=local_storage, + local_storage_types=local_storage_types, + memory_gib_per_vcpus=memory_gib_per_vcpus, + memory_mibs=memory_mibs, + network_bandwidth_gbps=network_bandwidth_gbps, + network_interface_counts=network_interface_counts, + on_demand_max_price_percentage_over_lowest_price=on_demand_max_price_percentage_over_lowest_price, + require_hibernate_support=require_hibernate_support, + spot_max_price_percentage_over_lowest_price=spot_max_price_percentage_over_lowest_price, + total_local_storage_gbs=total_local_storage_gbs, + vcpu_counts=vcpu_counts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_counts: Optional[Sequence['outputs.GetLaunchTemplateInstanceRequirementAcceleratorCountResult']] = None, + accelerator_manufacturers: Optional[Sequence[str]] = None, + accelerator_names: Optional[Sequence[str]] = None, + accelerator_total_memory_mibs: Optional[Sequence['outputs.GetLaunchTemplateInstanceRequirementAcceleratorTotalMemoryMibResult']] = None, + accelerator_types: Optional[Sequence[str]] = None, + allowed_instance_types: Optional[Sequence[str]] = None, + bare_metal: Optional[str] = None, + baseline_ebs_bandwidth_mbps: Optional[Sequence['outputs.GetLaunchTemplateInstanceRequirementBaselineEbsBandwidthMbpResult']] = None, + burstable_performance: Optional[str] = None, + cpu_manufacturers: Optional[Sequence[str]] = None, + excluded_instance_types: Optional[Sequence[str]] = None, + instance_generations: Optional[Sequence[str]] = None, + local_storage: Optional[str] = None, + local_storage_types: Optional[Sequence[str]] = None, + memory_gib_per_vcpus: Optional[Sequence['outputs.GetLaunchTemplateInstanceRequirementMemoryGibPerVcpusResult']] = None, + memory_mibs: Optional[Sequence['outputs.GetLaunchTemplateInstanceRequirementMemoryMibResult']] = None, + network_bandwidth_gbps: Optional[Sequence['outputs.GetLaunchTemplateInstanceRequirementNetworkBandwidthGbpResult']] = None, + network_interface_counts: Optional[Sequence['outputs.GetLaunchTemplateInstanceRequirementNetworkInterfaceCountResult']] = None, + on_demand_max_price_percentage_over_lowest_price: Optional[int] = None, + require_hibernate_support: Optional[bool] = None, + spot_max_price_percentage_over_lowest_price: Optional[int] = None, + total_local_storage_gbs: Optional[Sequence['outputs.GetLaunchTemplateInstanceRequirementTotalLocalStorageGbResult']] = None, + vcpu_counts: Optional[Sequence['outputs.GetLaunchTemplateInstanceRequirementVcpuCountResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_counts is None and 'acceleratorCounts' in kwargs: + accelerator_counts = kwargs['acceleratorCounts'] + if accelerator_counts is None: + raise TypeError("Missing 'accelerator_counts' argument") + if accelerator_manufacturers is None and 'acceleratorManufacturers' in kwargs: + accelerator_manufacturers = kwargs['acceleratorManufacturers'] + if accelerator_manufacturers is None: + raise TypeError("Missing 'accelerator_manufacturers' argument") + if accelerator_names is None and 'acceleratorNames' in kwargs: + accelerator_names = kwargs['acceleratorNames'] + if accelerator_names is None: + raise TypeError("Missing 'accelerator_names' argument") + if accelerator_total_memory_mibs is None and 'acceleratorTotalMemoryMibs' in kwargs: + accelerator_total_memory_mibs = kwargs['acceleratorTotalMemoryMibs'] + if accelerator_total_memory_mibs is None: + raise TypeError("Missing 'accelerator_total_memory_mibs' argument") + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if accelerator_types is None: + raise TypeError("Missing 'accelerator_types' argument") + if allowed_instance_types is None and 'allowedInstanceTypes' in kwargs: + allowed_instance_types = kwargs['allowedInstanceTypes'] + if allowed_instance_types is None: + raise TypeError("Missing 'allowed_instance_types' argument") + if bare_metal is None and 'bareMetal' in kwargs: + bare_metal = kwargs['bareMetal'] + if bare_metal is None: + raise TypeError("Missing 'bare_metal' argument") + if baseline_ebs_bandwidth_mbps is None and 'baselineEbsBandwidthMbps' in kwargs: + baseline_ebs_bandwidth_mbps = kwargs['baselineEbsBandwidthMbps'] + if baseline_ebs_bandwidth_mbps is None: + raise TypeError("Missing 'baseline_ebs_bandwidth_mbps' argument") + if burstable_performance is None and 'burstablePerformance' in kwargs: + burstable_performance = kwargs['burstablePerformance'] + if burstable_performance is None: + raise TypeError("Missing 'burstable_performance' argument") + if cpu_manufacturers is None and 'cpuManufacturers' in kwargs: + cpu_manufacturers = kwargs['cpuManufacturers'] + if cpu_manufacturers is None: + raise TypeError("Missing 'cpu_manufacturers' argument") + if excluded_instance_types is None and 'excludedInstanceTypes' in kwargs: + excluded_instance_types = kwargs['excludedInstanceTypes'] + if excluded_instance_types is None: + raise TypeError("Missing 'excluded_instance_types' argument") + if instance_generations is None and 'instanceGenerations' in kwargs: + instance_generations = kwargs['instanceGenerations'] + if instance_generations is None: + raise TypeError("Missing 'instance_generations' argument") + if local_storage is None and 'localStorage' in kwargs: + local_storage = kwargs['localStorage'] + if local_storage is None: + raise TypeError("Missing 'local_storage' argument") + if local_storage_types is None and 'localStorageTypes' in kwargs: + local_storage_types = kwargs['localStorageTypes'] + if local_storage_types is None: + raise TypeError("Missing 'local_storage_types' argument") + if memory_gib_per_vcpus is None and 'memoryGibPerVcpus' in kwargs: + memory_gib_per_vcpus = kwargs['memoryGibPerVcpus'] + if memory_gib_per_vcpus is None: + raise TypeError("Missing 'memory_gib_per_vcpus' argument") + if memory_mibs is None and 'memoryMibs' in kwargs: + memory_mibs = kwargs['memoryMibs'] + if memory_mibs is None: + raise TypeError("Missing 'memory_mibs' argument") + if network_bandwidth_gbps is None and 'networkBandwidthGbps' in kwargs: + network_bandwidth_gbps = kwargs['networkBandwidthGbps'] + if network_bandwidth_gbps is None: + raise TypeError("Missing 'network_bandwidth_gbps' argument") + if network_interface_counts is None and 'networkInterfaceCounts' in kwargs: + network_interface_counts = kwargs['networkInterfaceCounts'] + if network_interface_counts is None: + raise TypeError("Missing 'network_interface_counts' argument") + if on_demand_max_price_percentage_over_lowest_price is None and 'onDemandMaxPricePercentageOverLowestPrice' in kwargs: + on_demand_max_price_percentage_over_lowest_price = kwargs['onDemandMaxPricePercentageOverLowestPrice'] + if on_demand_max_price_percentage_over_lowest_price is None: + raise TypeError("Missing 'on_demand_max_price_percentage_over_lowest_price' argument") + if require_hibernate_support is None and 'requireHibernateSupport' in kwargs: + require_hibernate_support = kwargs['requireHibernateSupport'] + if require_hibernate_support is None: + raise TypeError("Missing 'require_hibernate_support' argument") + if spot_max_price_percentage_over_lowest_price is None and 'spotMaxPricePercentageOverLowestPrice' in kwargs: + spot_max_price_percentage_over_lowest_price = kwargs['spotMaxPricePercentageOverLowestPrice'] + if spot_max_price_percentage_over_lowest_price is None: + raise TypeError("Missing 'spot_max_price_percentage_over_lowest_price' argument") + if total_local_storage_gbs is None and 'totalLocalStorageGbs' in kwargs: + total_local_storage_gbs = kwargs['totalLocalStorageGbs'] + if total_local_storage_gbs is None: + raise TypeError("Missing 'total_local_storage_gbs' argument") + if vcpu_counts is None and 'vcpuCounts' in kwargs: + vcpu_counts = kwargs['vcpuCounts'] + if vcpu_counts is None: + raise TypeError("Missing 'vcpu_counts' argument") + + _setter("accelerator_counts", accelerator_counts) + _setter("accelerator_manufacturers", accelerator_manufacturers) + _setter("accelerator_names", accelerator_names) + _setter("accelerator_total_memory_mibs", accelerator_total_memory_mibs) + _setter("accelerator_types", accelerator_types) + _setter("allowed_instance_types", allowed_instance_types) + _setter("bare_metal", bare_metal) + _setter("baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + _setter("burstable_performance", burstable_performance) + _setter("cpu_manufacturers", cpu_manufacturers) + _setter("excluded_instance_types", excluded_instance_types) + _setter("instance_generations", instance_generations) + _setter("local_storage", local_storage) + _setter("local_storage_types", local_storage_types) + _setter("memory_gib_per_vcpus", memory_gib_per_vcpus) + _setter("memory_mibs", memory_mibs) + _setter("network_bandwidth_gbps", network_bandwidth_gbps) + _setter("network_interface_counts", network_interface_counts) + _setter("on_demand_max_price_percentage_over_lowest_price", on_demand_max_price_percentage_over_lowest_price) + _setter("require_hibernate_support", require_hibernate_support) + _setter("spot_max_price_percentage_over_lowest_price", spot_max_price_percentage_over_lowest_price) + _setter("total_local_storage_gbs", total_local_storage_gbs) + _setter("vcpu_counts", vcpu_counts) @property @pulumi.getter(name="acceleratorCounts") @@ -17144,8 +23583,25 @@ class GetLaunchTemplateInstanceRequirementAcceleratorCountResult(dict): def __init__(__self__, *, max: int, min: int): - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetLaunchTemplateInstanceRequirementAcceleratorCountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -17163,8 +23619,25 @@ class GetLaunchTemplateInstanceRequirementAcceleratorTotalMemoryMibResult(dict): def __init__(__self__, *, max: int, min: int): - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetLaunchTemplateInstanceRequirementAcceleratorTotalMemoryMibResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -17182,8 +23655,25 @@ class GetLaunchTemplateInstanceRequirementBaselineEbsBandwidthMbpResult(dict): def __init__(__self__, *, max: int, min: int): - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetLaunchTemplateInstanceRequirementBaselineEbsBandwidthMbpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -17201,8 +23691,25 @@ class GetLaunchTemplateInstanceRequirementMemoryGibPerVcpusResult(dict): def __init__(__self__, *, max: float, min: float): - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetLaunchTemplateInstanceRequirementMemoryGibPerVcpusResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -17220,8 +23727,25 @@ class GetLaunchTemplateInstanceRequirementMemoryMibResult(dict): def __init__(__self__, *, max: int, min: int): - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetLaunchTemplateInstanceRequirementMemoryMibResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -17239,8 +23763,25 @@ class GetLaunchTemplateInstanceRequirementNetworkBandwidthGbpResult(dict): def __init__(__self__, *, max: float, min: float): - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetLaunchTemplateInstanceRequirementNetworkBandwidthGbpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -17258,8 +23799,25 @@ class GetLaunchTemplateInstanceRequirementNetworkInterfaceCountResult(dict): def __init__(__self__, *, max: int, min: int): - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetLaunchTemplateInstanceRequirementNetworkInterfaceCountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -17277,8 +23835,25 @@ class GetLaunchTemplateInstanceRequirementTotalLocalStorageGbResult(dict): def __init__(__self__, *, max: float, min: float): - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetLaunchTemplateInstanceRequirementTotalLocalStorageGbResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[float] = None, + min: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -17296,8 +23871,25 @@ class GetLaunchTemplateInstanceRequirementVcpuCountResult(dict): def __init__(__self__, *, max: int, min: int): - pulumi.set(__self__, "max", max) - pulumi.set(__self__, "min", min) + GetLaunchTemplateInstanceRequirementVcpuCountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max=max, + min=min, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max: Optional[int] = None, + min: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max is None: + raise TypeError("Missing 'max' argument") + if min is None: + raise TypeError("Missing 'min' argument") + + _setter("max", max) + _setter("min", min) @property @pulumi.getter @@ -17314,7 +23906,22 @@ def min(self) -> int: class GetLaunchTemplateLicenseSpecificationResult(dict): def __init__(__self__, *, license_configuration_arn: str): - pulumi.set(__self__, "license_configuration_arn", license_configuration_arn) + GetLaunchTemplateLicenseSpecificationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + license_configuration_arn=license_configuration_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + license_configuration_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if license_configuration_arn is None and 'licenseConfigurationArn' in kwargs: + license_configuration_arn = kwargs['licenseConfigurationArn'] + if license_configuration_arn is None: + raise TypeError("Missing 'license_configuration_arn' argument") + + _setter("license_configuration_arn", license_configuration_arn) @property @pulumi.getter(name="licenseConfigurationArn") @@ -17326,7 +23933,22 @@ def license_configuration_arn(self) -> str: class GetLaunchTemplateMaintenanceOptionResult(dict): def __init__(__self__, *, auto_recovery: str): - pulumi.set(__self__, "auto_recovery", auto_recovery) + GetLaunchTemplateMaintenanceOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_recovery=auto_recovery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_recovery: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_recovery is None and 'autoRecovery' in kwargs: + auto_recovery = kwargs['autoRecovery'] + if auto_recovery is None: + raise TypeError("Missing 'auto_recovery' argument") + + _setter("auto_recovery", auto_recovery) @property @pulumi.getter(name="autoRecovery") @@ -17342,11 +23964,50 @@ def __init__(__self__, *, http_put_response_hop_limit: int, http_tokens: str, instance_metadata_tags: str): - pulumi.set(__self__, "http_endpoint", http_endpoint) - pulumi.set(__self__, "http_protocol_ipv6", http_protocol_ipv6) - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) - pulumi.set(__self__, "http_tokens", http_tokens) - pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + GetLaunchTemplateMetadataOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_endpoint=http_endpoint, + http_protocol_ipv6=http_protocol_ipv6, + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + instance_metadata_tags=instance_metadata_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_endpoint: Optional[str] = None, + http_protocol_ipv6: Optional[str] = None, + http_put_response_hop_limit: Optional[int] = None, + http_tokens: Optional[str] = None, + instance_metadata_tags: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_endpoint is None and 'httpEndpoint' in kwargs: + http_endpoint = kwargs['httpEndpoint'] + if http_endpoint is None: + raise TypeError("Missing 'http_endpoint' argument") + if http_protocol_ipv6 is None and 'httpProtocolIpv6' in kwargs: + http_protocol_ipv6 = kwargs['httpProtocolIpv6'] + if http_protocol_ipv6 is None: + raise TypeError("Missing 'http_protocol_ipv6' argument") + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_put_response_hop_limit is None: + raise TypeError("Missing 'http_put_response_hop_limit' argument") + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if http_tokens is None: + raise TypeError("Missing 'http_tokens' argument") + if instance_metadata_tags is None and 'instanceMetadataTags' in kwargs: + instance_metadata_tags = kwargs['instanceMetadataTags'] + if instance_metadata_tags is None: + raise TypeError("Missing 'instance_metadata_tags' argument") + + _setter("http_endpoint", http_endpoint) + _setter("http_protocol_ipv6", http_protocol_ipv6) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_tokens", http_tokens) + _setter("instance_metadata_tags", instance_metadata_tags) @property @pulumi.getter(name="httpEndpoint") @@ -17378,7 +24039,20 @@ def instance_metadata_tags(self) -> str: class GetLaunchTemplateMonitoringResult(dict): def __init__(__self__, *, enabled: bool): - pulumi.set(__self__, "enabled", enabled) + GetLaunchTemplateMonitoringResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -17408,27 +24082,144 @@ def __init__(__self__, *, subnet_id: str, associate_public_ip_address: Optional[bool] = None, delete_on_termination: Optional[bool] = None): - pulumi.set(__self__, "associate_carrier_ip_address", associate_carrier_ip_address) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "device_index", device_index) - pulumi.set(__self__, "interface_type", interface_type) - pulumi.set(__self__, "ipv4_address_count", ipv4_address_count) - pulumi.set(__self__, "ipv4_addresses", ipv4_addresses) - pulumi.set(__self__, "ipv4_prefix_count", ipv4_prefix_count) - pulumi.set(__self__, "ipv4_prefixes", ipv4_prefixes) - pulumi.set(__self__, "ipv6_address_count", ipv6_address_count) - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) - pulumi.set(__self__, "ipv6_prefix_count", ipv6_prefix_count) - pulumi.set(__self__, "ipv6_prefixes", ipv6_prefixes) - pulumi.set(__self__, "network_card_index", network_card_index) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "private_ip_address", private_ip_address) - pulumi.set(__self__, "security_groups", security_groups) - pulumi.set(__self__, "subnet_id", subnet_id) + GetLaunchTemplateNetworkInterfaceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + associate_carrier_ip_address=associate_carrier_ip_address, + description=description, + device_index=device_index, + interface_type=interface_type, + ipv4_address_count=ipv4_address_count, + ipv4_addresses=ipv4_addresses, + ipv4_prefix_count=ipv4_prefix_count, + ipv4_prefixes=ipv4_prefixes, + ipv6_address_count=ipv6_address_count, + ipv6_addresses=ipv6_addresses, + ipv6_prefix_count=ipv6_prefix_count, + ipv6_prefixes=ipv6_prefixes, + network_card_index=network_card_index, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + security_groups=security_groups, + subnet_id=subnet_id, + associate_public_ip_address=associate_public_ip_address, + delete_on_termination=delete_on_termination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + associate_carrier_ip_address: Optional[str] = None, + description: Optional[str] = None, + device_index: Optional[int] = None, + interface_type: Optional[str] = None, + ipv4_address_count: Optional[int] = None, + ipv4_addresses: Optional[Sequence[str]] = None, + ipv4_prefix_count: Optional[int] = None, + ipv4_prefixes: Optional[Sequence[str]] = None, + ipv6_address_count: Optional[int] = None, + ipv6_addresses: Optional[Sequence[str]] = None, + ipv6_prefix_count: Optional[int] = None, + ipv6_prefixes: Optional[Sequence[str]] = None, + network_card_index: Optional[int] = None, + network_interface_id: Optional[str] = None, + private_ip_address: Optional[str] = None, + security_groups: Optional[Sequence[str]] = None, + subnet_id: Optional[str] = None, + associate_public_ip_address: Optional[bool] = None, + delete_on_termination: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associate_carrier_ip_address is None and 'associateCarrierIpAddress' in kwargs: + associate_carrier_ip_address = kwargs['associateCarrierIpAddress'] + if associate_carrier_ip_address is None: + raise TypeError("Missing 'associate_carrier_ip_address' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if device_index is None: + raise TypeError("Missing 'device_index' argument") + if interface_type is None and 'interfaceType' in kwargs: + interface_type = kwargs['interfaceType'] + if interface_type is None: + raise TypeError("Missing 'interface_type' argument") + if ipv4_address_count is None and 'ipv4AddressCount' in kwargs: + ipv4_address_count = kwargs['ipv4AddressCount'] + if ipv4_address_count is None: + raise TypeError("Missing 'ipv4_address_count' argument") + if ipv4_addresses is None and 'ipv4Addresses' in kwargs: + ipv4_addresses = kwargs['ipv4Addresses'] + if ipv4_addresses is None: + raise TypeError("Missing 'ipv4_addresses' argument") + if ipv4_prefix_count is None and 'ipv4PrefixCount' in kwargs: + ipv4_prefix_count = kwargs['ipv4PrefixCount'] + if ipv4_prefix_count is None: + raise TypeError("Missing 'ipv4_prefix_count' argument") + if ipv4_prefixes is None and 'ipv4Prefixes' in kwargs: + ipv4_prefixes = kwargs['ipv4Prefixes'] + if ipv4_prefixes is None: + raise TypeError("Missing 'ipv4_prefixes' argument") + if ipv6_address_count is None and 'ipv6AddressCount' in kwargs: + ipv6_address_count = kwargs['ipv6AddressCount'] + if ipv6_address_count is None: + raise TypeError("Missing 'ipv6_address_count' argument") + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if ipv6_addresses is None: + raise TypeError("Missing 'ipv6_addresses' argument") + if ipv6_prefix_count is None and 'ipv6PrefixCount' in kwargs: + ipv6_prefix_count = kwargs['ipv6PrefixCount'] + if ipv6_prefix_count is None: + raise TypeError("Missing 'ipv6_prefix_count' argument") + if ipv6_prefixes is None and 'ipv6Prefixes' in kwargs: + ipv6_prefixes = kwargs['ipv6Prefixes'] + if ipv6_prefixes is None: + raise TypeError("Missing 'ipv6_prefixes' argument") + if network_card_index is None and 'networkCardIndex' in kwargs: + network_card_index = kwargs['networkCardIndex'] + if network_card_index is None: + raise TypeError("Missing 'network_card_index' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if private_ip_address is None: + raise TypeError("Missing 'private_ip_address' argument") + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is None: + raise TypeError("Missing 'security_groups' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + + _setter("associate_carrier_ip_address", associate_carrier_ip_address) + _setter("description", description) + _setter("device_index", device_index) + _setter("interface_type", interface_type) + _setter("ipv4_address_count", ipv4_address_count) + _setter("ipv4_addresses", ipv4_addresses) + _setter("ipv4_prefix_count", ipv4_prefix_count) + _setter("ipv4_prefixes", ipv4_prefixes) + _setter("ipv6_address_count", ipv6_address_count) + _setter("ipv6_addresses", ipv6_addresses) + _setter("ipv6_prefix_count", ipv6_prefix_count) + _setter("ipv6_prefixes", ipv6_prefixes) + _setter("network_card_index", network_card_index) + _setter("network_interface_id", network_interface_id) + _setter("private_ip_address", private_ip_address) + _setter("security_groups", security_groups) + _setter("subnet_id", subnet_id) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) @property @pulumi.getter(name="associateCarrierIpAddress") @@ -17537,14 +24328,67 @@ def __init__(__self__, *, partition_number: int, spread_domain: str, tenancy: str): - pulumi.set(__self__, "affinity", affinity) - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "group_name", group_name) - pulumi.set(__self__, "host_id", host_id) - pulumi.set(__self__, "host_resource_group_arn", host_resource_group_arn) - pulumi.set(__self__, "partition_number", partition_number) - pulumi.set(__self__, "spread_domain", spread_domain) - pulumi.set(__self__, "tenancy", tenancy) + GetLaunchTemplatePlacementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + affinity=affinity, + availability_zone=availability_zone, + group_name=group_name, + host_id=host_id, + host_resource_group_arn=host_resource_group_arn, + partition_number=partition_number, + spread_domain=spread_domain, + tenancy=tenancy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + affinity: Optional[str] = None, + availability_zone: Optional[str] = None, + group_name: Optional[str] = None, + host_id: Optional[str] = None, + host_resource_group_arn: Optional[str] = None, + partition_number: Optional[int] = None, + spread_domain: Optional[str] = None, + tenancy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if affinity is None: + raise TypeError("Missing 'affinity' argument") + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + if host_id is None and 'hostId' in kwargs: + host_id = kwargs['hostId'] + if host_id is None: + raise TypeError("Missing 'host_id' argument") + if host_resource_group_arn is None and 'hostResourceGroupArn' in kwargs: + host_resource_group_arn = kwargs['hostResourceGroupArn'] + if host_resource_group_arn is None: + raise TypeError("Missing 'host_resource_group_arn' argument") + if partition_number is None and 'partitionNumber' in kwargs: + partition_number = kwargs['partitionNumber'] + if partition_number is None: + raise TypeError("Missing 'partition_number' argument") + if spread_domain is None and 'spreadDomain' in kwargs: + spread_domain = kwargs['spreadDomain'] + if spread_domain is None: + raise TypeError("Missing 'spread_domain' argument") + if tenancy is None: + raise TypeError("Missing 'tenancy' argument") + + _setter("affinity", affinity) + _setter("availability_zone", availability_zone) + _setter("group_name", group_name) + _setter("host_id", host_id) + _setter("host_resource_group_arn", host_resource_group_arn) + _setter("partition_number", partition_number) + _setter("spread_domain", spread_domain) + _setter("tenancy", tenancy) @property @pulumi.getter @@ -17593,9 +24437,36 @@ def __init__(__self__, *, enable_resource_name_dns_a_record: bool, enable_resource_name_dns_aaaa_record: bool, hostname_type: str): - pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) - pulumi.set(__self__, "hostname_type", hostname_type) + GetLaunchTemplatePrivateDnsNameOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_resource_name_dns_a_record=enable_resource_name_dns_a_record, + enable_resource_name_dns_aaaa_record=enable_resource_name_dns_aaaa_record, + hostname_type=hostname_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_resource_name_dns_a_record: Optional[bool] = None, + enable_resource_name_dns_aaaa_record: Optional[bool] = None, + hostname_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_resource_name_dns_a_record is None and 'enableResourceNameDnsARecord' in kwargs: + enable_resource_name_dns_a_record = kwargs['enableResourceNameDnsARecord'] + if enable_resource_name_dns_a_record is None: + raise TypeError("Missing 'enable_resource_name_dns_a_record' argument") + if enable_resource_name_dns_aaaa_record is None and 'enableResourceNameDnsAaaaRecord' in kwargs: + enable_resource_name_dns_aaaa_record = kwargs['enableResourceNameDnsAaaaRecord'] + if enable_resource_name_dns_aaaa_record is None: + raise TypeError("Missing 'enable_resource_name_dns_aaaa_record' argument") + if hostname_type is None and 'hostnameType' in kwargs: + hostname_type = kwargs['hostnameType'] + if hostname_type is None: + raise TypeError("Missing 'hostname_type' argument") + + _setter("enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) + _setter("enable_resource_name_dns_aaaa_record", enable_resource_name_dns_aaaa_record) + _setter("hostname_type", hostname_type) @property @pulumi.getter(name="enableResourceNameDnsARecord") @@ -17621,8 +24492,27 @@ def __init__(__self__, *, """ :param Mapping[str, str] tags: Map of tags, each pair of which must exactly match a pair on the desired Launch Template. """ - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "tags", tags) + GetLaunchTemplateTagSpecificationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_type=resource_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_type: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("resource_type", resource_type) + _setter("tags", tags) @property @pulumi.getter(name="resourceType") @@ -17649,8 +24539,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Local Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17682,8 +24589,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A local gateway route table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayRouteTableFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17715,8 +24639,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Local Gateway Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayRouteTablesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17746,8 +24687,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayVirtualInterfaceFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17775,8 +24733,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayVirtualInterfaceGroupFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17804,8 +24779,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewayVirtualInterfaceGroupsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17835,8 +24827,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Local Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLocalGatewaysFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17862,8 +24871,25 @@ class GetManagedPrefixListEntryResult(dict): def __init__(__self__, *, cidr: str, description: str): - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "description", description) + GetManagedPrefixListEntryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if description is None: + raise TypeError("Missing 'description' argument") + + _setter("cidr", cidr) + _setter("description", description) @property @pulumi.getter @@ -17885,8 +24911,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the EC2 [DescribeManagedPrefixLists](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeManagedPrefixLists.html) API Reference. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetManagedPrefixListFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17916,8 +24959,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A managed prefix list will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetManagedPrefixListsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17949,8 +25009,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. An Nat Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNatGatewayFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -17982,8 +25059,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Nat Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNatGatewaysFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -18015,8 +25109,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkAclsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -18042,8 +25153,29 @@ class GetNetworkInsightsAnalysisAlternatePathHintResult(dict): def __init__(__self__, *, component_arn: str, component_id: str): - pulumi.set(__self__, "component_arn", component_arn) - pulumi.set(__self__, "component_id", component_id) + GetNetworkInsightsAnalysisAlternatePathHintResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_arn=component_arn, + component_id=component_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_arn: Optional[str] = None, + component_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_arn is None and 'componentArn' in kwargs: + component_arn = kwargs['componentArn'] + if component_arn is None: + raise TypeError("Missing 'component_arn' argument") + if component_id is None and 'componentId' in kwargs: + component_id = kwargs['componentId'] + if component_id is None: + raise TypeError("Missing 'component_id' argument") + + _setter("component_arn", component_arn) + _setter("component_id", component_id) @property @pulumi.getter(name="componentArn") @@ -18107,54 +25239,327 @@ def __init__(__self__, *, vpcs: Sequence['outputs.GetNetworkInsightsAnalysisExplanationVpcResult'], vpn_connections: Sequence['outputs.GetNetworkInsightsAnalysisExplanationVpnConnectionResult'], vpn_gateways: Sequence['outputs.GetNetworkInsightsAnalysisExplanationVpnGatewayResult']): - pulumi.set(__self__, "acl_rules", acl_rules) - pulumi.set(__self__, "acls", acls) - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "addresses", addresses) - pulumi.set(__self__, "attached_tos", attached_tos) - pulumi.set(__self__, "availability_zones", availability_zones) - pulumi.set(__self__, "cidrs", cidrs) - pulumi.set(__self__, "classic_load_balancer_listeners", classic_load_balancer_listeners) - pulumi.set(__self__, "components", components) - pulumi.set(__self__, "customer_gateways", customer_gateways) - pulumi.set(__self__, "destination_vpcs", destination_vpcs) - pulumi.set(__self__, "destinations", destinations) - pulumi.set(__self__, "direction", direction) - pulumi.set(__self__, "elastic_load_balancer_listeners", elastic_load_balancer_listeners) - pulumi.set(__self__, "explanation_code", explanation_code) - pulumi.set(__self__, "ingress_route_tables", ingress_route_tables) - pulumi.set(__self__, "internet_gateways", internet_gateways) - pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) - pulumi.set(__self__, "load_balancer_listener_port", load_balancer_listener_port) - pulumi.set(__self__, "load_balancer_target_group", load_balancer_target_group) - pulumi.set(__self__, "load_balancer_target_groups", load_balancer_target_groups) - pulumi.set(__self__, "load_balancer_target_port", load_balancer_target_port) - pulumi.set(__self__, "missing_component", missing_component) - pulumi.set(__self__, "nat_gateways", nat_gateways) - pulumi.set(__self__, "network_interfaces", network_interfaces) - pulumi.set(__self__, "packet_field", packet_field) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "port_ranges", port_ranges) - pulumi.set(__self__, "prefix_lists", prefix_lists) - pulumi.set(__self__, "protocols", protocols) - pulumi.set(__self__, "route_table_routes", route_table_routes) - pulumi.set(__self__, "route_tables", route_tables) - pulumi.set(__self__, "security_group", security_group) - pulumi.set(__self__, "security_group_rules", security_group_rules) - pulumi.set(__self__, "security_groups", security_groups) - pulumi.set(__self__, "source_vpcs", source_vpcs) - pulumi.set(__self__, "state", state) - pulumi.set(__self__, "subnet_route_tables", subnet_route_tables) - pulumi.set(__self__, "subnets", subnets) - pulumi.set(__self__, "transit_gateway_attachments", transit_gateway_attachments) - pulumi.set(__self__, "transit_gateway_route_table_routes", transit_gateway_route_table_routes) - pulumi.set(__self__, "transit_gateway_route_tables", transit_gateway_route_tables) - pulumi.set(__self__, "transit_gateways", transit_gateways) - pulumi.set(__self__, "vpc_endpoints", vpc_endpoints) - pulumi.set(__self__, "vpc_peering_connections", vpc_peering_connections) - pulumi.set(__self__, "vpcs", vpcs) - pulumi.set(__self__, "vpn_connections", vpn_connections) - pulumi.set(__self__, "vpn_gateways", vpn_gateways) + GetNetworkInsightsAnalysisExplanationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_rules=acl_rules, + acls=acls, + address=address, + addresses=addresses, + attached_tos=attached_tos, + availability_zones=availability_zones, + cidrs=cidrs, + classic_load_balancer_listeners=classic_load_balancer_listeners, + components=components, + customer_gateways=customer_gateways, + destination_vpcs=destination_vpcs, + destinations=destinations, + direction=direction, + elastic_load_balancer_listeners=elastic_load_balancer_listeners, + explanation_code=explanation_code, + ingress_route_tables=ingress_route_tables, + internet_gateways=internet_gateways, + load_balancer_arn=load_balancer_arn, + load_balancer_listener_port=load_balancer_listener_port, + load_balancer_target_group=load_balancer_target_group, + load_balancer_target_groups=load_balancer_target_groups, + load_balancer_target_port=load_balancer_target_port, + missing_component=missing_component, + nat_gateways=nat_gateways, + network_interfaces=network_interfaces, + packet_field=packet_field, + port=port, + port_ranges=port_ranges, + prefix_lists=prefix_lists, + protocols=protocols, + route_table_routes=route_table_routes, + route_tables=route_tables, + security_group=security_group, + security_group_rules=security_group_rules, + security_groups=security_groups, + source_vpcs=source_vpcs, + state=state, + subnet_route_tables=subnet_route_tables, + subnets=subnets, + transit_gateway_attachments=transit_gateway_attachments, + transit_gateway_route_table_routes=transit_gateway_route_table_routes, + transit_gateway_route_tables=transit_gateway_route_tables, + transit_gateways=transit_gateways, + vpc_endpoints=vpc_endpoints, + vpc_peering_connections=vpc_peering_connections, + vpcs=vpcs, + vpn_connections=vpn_connections, + vpn_gateways=vpn_gateways, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_rules: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationAclRuleResult']] = None, + acls: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationAclResult']] = None, + address: Optional[str] = None, + addresses: Optional[Sequence[str]] = None, + attached_tos: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationAttachedToResult']] = None, + availability_zones: Optional[Sequence[str]] = None, + cidrs: Optional[Sequence[str]] = None, + classic_load_balancer_listeners: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationClassicLoadBalancerListenerResult']] = None, + components: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationComponentResult']] = None, + customer_gateways: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationCustomerGatewayResult']] = None, + destination_vpcs: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationDestinationVpcResult']] = None, + destinations: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationDestinationResult']] = None, + direction: Optional[str] = None, + elastic_load_balancer_listeners: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationElasticLoadBalancerListenerResult']] = None, + explanation_code: Optional[str] = None, + ingress_route_tables: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationIngressRouteTableResult']] = None, + internet_gateways: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationInternetGatewayResult']] = None, + load_balancer_arn: Optional[str] = None, + load_balancer_listener_port: Optional[int] = None, + load_balancer_target_group: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationLoadBalancerTargetGroupResult']] = None, + load_balancer_target_groups: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationLoadBalancerTargetGroupResult']] = None, + load_balancer_target_port: Optional[int] = None, + missing_component: Optional[str] = None, + nat_gateways: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationNatGatewayResult']] = None, + network_interfaces: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationNetworkInterfaceResult']] = None, + packet_field: Optional[str] = None, + port: Optional[int] = None, + port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationPortRangeResult']] = None, + prefix_lists: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationPrefixListResult']] = None, + protocols: Optional[Sequence[str]] = None, + route_table_routes: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationRouteTableRouteResult']] = None, + route_tables: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationRouteTableResult']] = None, + security_group: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationSecurityGroupResult']] = None, + security_group_rules: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationSecurityGroupRuleResult']] = None, + security_groups: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationSecurityGroupResult']] = None, + source_vpcs: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationSourceVpcResult']] = None, + state: Optional[str] = None, + subnet_route_tables: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationSubnetRouteTableResult']] = None, + subnets: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationSubnetResult']] = None, + transit_gateway_attachments: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationTransitGatewayAttachmentResult']] = None, + transit_gateway_route_table_routes: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationTransitGatewayRouteTableRouteResult']] = None, + transit_gateway_route_tables: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationTransitGatewayRouteTableResult']] = None, + transit_gateways: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationTransitGatewayResult']] = None, + vpc_endpoints: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationVpcEndpointResult']] = None, + vpc_peering_connections: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationVpcPeeringConnectionResult']] = None, + vpcs: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationVpcResult']] = None, + vpn_connections: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationVpnConnectionResult']] = None, + vpn_gateways: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationVpnGatewayResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_rules is None and 'aclRules' in kwargs: + acl_rules = kwargs['aclRules'] + if acl_rules is None: + raise TypeError("Missing 'acl_rules' argument") + if acls is None: + raise TypeError("Missing 'acls' argument") + if address is None: + raise TypeError("Missing 'address' argument") + if addresses is None: + raise TypeError("Missing 'addresses' argument") + if attached_tos is None and 'attachedTos' in kwargs: + attached_tos = kwargs['attachedTos'] + if attached_tos is None: + raise TypeError("Missing 'attached_tos' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if availability_zones is None: + raise TypeError("Missing 'availability_zones' argument") + if cidrs is None: + raise TypeError("Missing 'cidrs' argument") + if classic_load_balancer_listeners is None and 'classicLoadBalancerListeners' in kwargs: + classic_load_balancer_listeners = kwargs['classicLoadBalancerListeners'] + if classic_load_balancer_listeners is None: + raise TypeError("Missing 'classic_load_balancer_listeners' argument") + if components is None: + raise TypeError("Missing 'components' argument") + if customer_gateways is None and 'customerGateways' in kwargs: + customer_gateways = kwargs['customerGateways'] + if customer_gateways is None: + raise TypeError("Missing 'customer_gateways' argument") + if destination_vpcs is None and 'destinationVpcs' in kwargs: + destination_vpcs = kwargs['destinationVpcs'] + if destination_vpcs is None: + raise TypeError("Missing 'destination_vpcs' argument") + if destinations is None: + raise TypeError("Missing 'destinations' argument") + if direction is None: + raise TypeError("Missing 'direction' argument") + if elastic_load_balancer_listeners is None and 'elasticLoadBalancerListeners' in kwargs: + elastic_load_balancer_listeners = kwargs['elasticLoadBalancerListeners'] + if elastic_load_balancer_listeners is None: + raise TypeError("Missing 'elastic_load_balancer_listeners' argument") + if explanation_code is None and 'explanationCode' in kwargs: + explanation_code = kwargs['explanationCode'] + if explanation_code is None: + raise TypeError("Missing 'explanation_code' argument") + if ingress_route_tables is None and 'ingressRouteTables' in kwargs: + ingress_route_tables = kwargs['ingressRouteTables'] + if ingress_route_tables is None: + raise TypeError("Missing 'ingress_route_tables' argument") + if internet_gateways is None and 'internetGateways' in kwargs: + internet_gateways = kwargs['internetGateways'] + if internet_gateways is None: + raise TypeError("Missing 'internet_gateways' argument") + if load_balancer_arn is None and 'loadBalancerArn' in kwargs: + load_balancer_arn = kwargs['loadBalancerArn'] + if load_balancer_arn is None: + raise TypeError("Missing 'load_balancer_arn' argument") + if load_balancer_listener_port is None and 'loadBalancerListenerPort' in kwargs: + load_balancer_listener_port = kwargs['loadBalancerListenerPort'] + if load_balancer_listener_port is None: + raise TypeError("Missing 'load_balancer_listener_port' argument") + if load_balancer_target_group is None and 'loadBalancerTargetGroup' in kwargs: + load_balancer_target_group = kwargs['loadBalancerTargetGroup'] + if load_balancer_target_group is None: + raise TypeError("Missing 'load_balancer_target_group' argument") + if load_balancer_target_groups is None and 'loadBalancerTargetGroups' in kwargs: + load_balancer_target_groups = kwargs['loadBalancerTargetGroups'] + if load_balancer_target_groups is None: + raise TypeError("Missing 'load_balancer_target_groups' argument") + if load_balancer_target_port is None and 'loadBalancerTargetPort' in kwargs: + load_balancer_target_port = kwargs['loadBalancerTargetPort'] + if load_balancer_target_port is None: + raise TypeError("Missing 'load_balancer_target_port' argument") + if missing_component is None and 'missingComponent' in kwargs: + missing_component = kwargs['missingComponent'] + if missing_component is None: + raise TypeError("Missing 'missing_component' argument") + if nat_gateways is None and 'natGateways' in kwargs: + nat_gateways = kwargs['natGateways'] + if nat_gateways is None: + raise TypeError("Missing 'nat_gateways' argument") + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if network_interfaces is None: + raise TypeError("Missing 'network_interfaces' argument") + if packet_field is None and 'packetField' in kwargs: + packet_field = kwargs['packetField'] + if packet_field is None: + raise TypeError("Missing 'packet_field' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if port_ranges is None: + raise TypeError("Missing 'port_ranges' argument") + if prefix_lists is None and 'prefixLists' in kwargs: + prefix_lists = kwargs['prefixLists'] + if prefix_lists is None: + raise TypeError("Missing 'prefix_lists' argument") + if protocols is None: + raise TypeError("Missing 'protocols' argument") + if route_table_routes is None and 'routeTableRoutes' in kwargs: + route_table_routes = kwargs['routeTableRoutes'] + if route_table_routes is None: + raise TypeError("Missing 'route_table_routes' argument") + if route_tables is None and 'routeTables' in kwargs: + route_tables = kwargs['routeTables'] + if route_tables is None: + raise TypeError("Missing 'route_tables' argument") + if security_group is None and 'securityGroup' in kwargs: + security_group = kwargs['securityGroup'] + if security_group is None: + raise TypeError("Missing 'security_group' argument") + if security_group_rules is None and 'securityGroupRules' in kwargs: + security_group_rules = kwargs['securityGroupRules'] + if security_group_rules is None: + raise TypeError("Missing 'security_group_rules' argument") + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is None: + raise TypeError("Missing 'security_groups' argument") + if source_vpcs is None and 'sourceVpcs' in kwargs: + source_vpcs = kwargs['sourceVpcs'] + if source_vpcs is None: + raise TypeError("Missing 'source_vpcs' argument") + if state is None: + raise TypeError("Missing 'state' argument") + if subnet_route_tables is None and 'subnetRouteTables' in kwargs: + subnet_route_tables = kwargs['subnetRouteTables'] + if subnet_route_tables is None: + raise TypeError("Missing 'subnet_route_tables' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if transit_gateway_attachments is None and 'transitGatewayAttachments' in kwargs: + transit_gateway_attachments = kwargs['transitGatewayAttachments'] + if transit_gateway_attachments is None: + raise TypeError("Missing 'transit_gateway_attachments' argument") + if transit_gateway_route_table_routes is None and 'transitGatewayRouteTableRoutes' in kwargs: + transit_gateway_route_table_routes = kwargs['transitGatewayRouteTableRoutes'] + if transit_gateway_route_table_routes is None: + raise TypeError("Missing 'transit_gateway_route_table_routes' argument") + if transit_gateway_route_tables is None and 'transitGatewayRouteTables' in kwargs: + transit_gateway_route_tables = kwargs['transitGatewayRouteTables'] + if transit_gateway_route_tables is None: + raise TypeError("Missing 'transit_gateway_route_tables' argument") + if transit_gateways is None and 'transitGateways' in kwargs: + transit_gateways = kwargs['transitGateways'] + if transit_gateways is None: + raise TypeError("Missing 'transit_gateways' argument") + if vpc_endpoints is None and 'vpcEndpoints' in kwargs: + vpc_endpoints = kwargs['vpcEndpoints'] + if vpc_endpoints is None: + raise TypeError("Missing 'vpc_endpoints' argument") + if vpc_peering_connections is None and 'vpcPeeringConnections' in kwargs: + vpc_peering_connections = kwargs['vpcPeeringConnections'] + if vpc_peering_connections is None: + raise TypeError("Missing 'vpc_peering_connections' argument") + if vpcs is None: + raise TypeError("Missing 'vpcs' argument") + if vpn_connections is None and 'vpnConnections' in kwargs: + vpn_connections = kwargs['vpnConnections'] + if vpn_connections is None: + raise TypeError("Missing 'vpn_connections' argument") + if vpn_gateways is None and 'vpnGateways' in kwargs: + vpn_gateways = kwargs['vpnGateways'] + if vpn_gateways is None: + raise TypeError("Missing 'vpn_gateways' argument") + + _setter("acl_rules", acl_rules) + _setter("acls", acls) + _setter("address", address) + _setter("addresses", addresses) + _setter("attached_tos", attached_tos) + _setter("availability_zones", availability_zones) + _setter("cidrs", cidrs) + _setter("classic_load_balancer_listeners", classic_load_balancer_listeners) + _setter("components", components) + _setter("customer_gateways", customer_gateways) + _setter("destination_vpcs", destination_vpcs) + _setter("destinations", destinations) + _setter("direction", direction) + _setter("elastic_load_balancer_listeners", elastic_load_balancer_listeners) + _setter("explanation_code", explanation_code) + _setter("ingress_route_tables", ingress_route_tables) + _setter("internet_gateways", internet_gateways) + _setter("load_balancer_arn", load_balancer_arn) + _setter("load_balancer_listener_port", load_balancer_listener_port) + _setter("load_balancer_target_group", load_balancer_target_group) + _setter("load_balancer_target_groups", load_balancer_target_groups) + _setter("load_balancer_target_port", load_balancer_target_port) + _setter("missing_component", missing_component) + _setter("nat_gateways", nat_gateways) + _setter("network_interfaces", network_interfaces) + _setter("packet_field", packet_field) + _setter("port", port) + _setter("port_ranges", port_ranges) + _setter("prefix_lists", prefix_lists) + _setter("protocols", protocols) + _setter("route_table_routes", route_table_routes) + _setter("route_tables", route_tables) + _setter("security_group", security_group) + _setter("security_group_rules", security_group_rules) + _setter("security_groups", security_groups) + _setter("source_vpcs", source_vpcs) + _setter("state", state) + _setter("subnet_route_tables", subnet_route_tables) + _setter("subnets", subnets) + _setter("transit_gateway_attachments", transit_gateway_attachments) + _setter("transit_gateway_route_table_routes", transit_gateway_route_table_routes) + _setter("transit_gateway_route_tables", transit_gateway_route_tables) + _setter("transit_gateways", transit_gateways) + _setter("vpc_endpoints", vpc_endpoints) + _setter("vpc_peering_connections", vpc_peering_connections) + _setter("vpcs", vpcs) + _setter("vpn_connections", vpn_connections) + _setter("vpn_gateways", vpn_gateways) @property @pulumi.getter(name="aclRules") @@ -18407,9 +25812,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationAclResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18442,12 +25868,51 @@ def __init__(__self__, *, protocol: str, rule_action: str, rule_number: int): - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "egress", egress) - pulumi.set(__self__, "port_ranges", port_ranges) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_action", rule_action) - pulumi.set(__self__, "rule_number", rule_number) + GetNetworkInsightsAnalysisExplanationAclRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + egress=egress, + port_ranges=port_ranges, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + egress: Optional[bool] = None, + port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationAclRulePortRangeResult']] = None, + protocol: Optional[str] = None, + rule_action: Optional[str] = None, + rule_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if egress is None: + raise TypeError("Missing 'egress' argument") + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if port_ranges is None: + raise TypeError("Missing 'port_ranges' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_action is None: + raise TypeError("Missing 'rule_action' argument") + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if rule_number is None: + raise TypeError("Missing 'rule_number' argument") + + _setter("cidr", cidr) + _setter("egress", egress) + _setter("port_ranges", port_ranges) + _setter("protocol", protocol) + _setter("rule_action", rule_action) + _setter("rule_number", rule_number) @property @pulumi.getter @@ -18485,8 +25950,27 @@ class GetNetworkInsightsAnalysisExplanationAclRulePortRangeResult(dict): def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisExplanationAclRulePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -18509,9 +25993,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationAttachedToResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18540,8 +26045,29 @@ class GetNetworkInsightsAnalysisExplanationClassicLoadBalancerListenerResult(dic def __init__(__self__, *, instance_port: int, load_balancer_port: int): - pulumi.set(__self__, "instance_port", instance_port) - pulumi.set(__self__, "load_balancer_port", load_balancer_port) + GetNetworkInsightsAnalysisExplanationClassicLoadBalancerListenerResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_port=instance_port, + load_balancer_port=load_balancer_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_port: Optional[int] = None, + load_balancer_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if instance_port is None: + raise TypeError("Missing 'instance_port' argument") + if load_balancer_port is None and 'loadBalancerPort' in kwargs: + load_balancer_port = kwargs['loadBalancerPort'] + if load_balancer_port is None: + raise TypeError("Missing 'load_balancer_port' argument") + + _setter("instance_port", instance_port) + _setter("load_balancer_port", load_balancer_port) @property @pulumi.getter(name="instancePort") @@ -18564,9 +26090,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationComponentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18600,9 +26147,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationCustomerGatewayResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18636,9 +26204,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationDestinationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18672,9 +26261,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationDestinationVpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18708,9 +26318,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationElasticLoadBalancerListenerResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18744,9 +26375,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationIngressRouteTableResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18780,9 +26432,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationInternetGatewayResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18816,9 +26489,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationLoadBalancerTargetGroupResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18852,9 +26546,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationNatGatewayResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18888,9 +26603,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationNetworkInterfaceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18919,8 +26655,27 @@ class GetNetworkInsightsAnalysisExplanationPortRangeResult(dict): def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisExplanationPortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -18943,9 +26698,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationPrefixListResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -18979,9 +26755,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationRouteTableResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19018,16 +26815,83 @@ def __init__(__self__, *, origin: str, transit_gateway_id: str, vpc_peering_connection_id: str): - pulumi.set(__self__, "destination_cidr", destination_cidr) - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) - pulumi.set(__self__, "egress_only_internet_gateway_id", egress_only_internet_gateway_id) - pulumi.set(__self__, "gateway_id", gateway_id) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "origin", origin) - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + GetNetworkInsightsAnalysisExplanationRouteTableRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr=destination_cidr, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_internet_gateway_id=egress_only_internet_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + transit_gateway_id=transit_gateway_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr: Optional[str] = None, + destination_prefix_list_id: Optional[str] = None, + egress_only_internet_gateway_id: Optional[str] = None, + gateway_id: Optional[str] = None, + instance_id: Optional[str] = None, + nat_gateway_id: Optional[str] = None, + network_interface_id: Optional[str] = None, + origin: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + vpc_peering_connection_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_cidr is None: + raise TypeError("Missing 'destination_cidr' argument") + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if destination_prefix_list_id is None: + raise TypeError("Missing 'destination_prefix_list_id' argument") + if egress_only_internet_gateway_id is None and 'egressOnlyInternetGatewayId' in kwargs: + egress_only_internet_gateway_id = kwargs['egressOnlyInternetGatewayId'] + if egress_only_internet_gateway_id is None: + raise TypeError("Missing 'egress_only_internet_gateway_id' argument") + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if gateway_id is None: + raise TypeError("Missing 'gateway_id' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if nat_gateway_id is None: + raise TypeError("Missing 'nat_gateway_id' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if origin is None: + raise TypeError("Missing 'origin' argument") + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if vpc_peering_connection_id is None: + raise TypeError("Missing 'vpc_peering_connection_id' argument") + + _setter("destination_cidr", destination_cidr) + _setter("destination_prefix_list_id", destination_prefix_list_id) + _setter("egress_only_internet_gateway_id", egress_only_internet_gateway_id) + _setter("gateway_id", gateway_id) + _setter("instance_id", instance_id) + _setter("nat_gateway_id", nat_gateway_id) + _setter("network_interface_id", network_interface_id) + _setter("origin", origin) + _setter("transit_gateway_id", transit_gateway_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="destinationCidr") @@ -19090,9 +26954,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationSecurityGroupResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19125,12 +27010,51 @@ def __init__(__self__, *, prefix_list_id: str, protocol: str, security_group_id: str): - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "direction", direction) - pulumi.set(__self__, "port_ranges", port_ranges) - pulumi.set(__self__, "prefix_list_id", prefix_list_id) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "security_group_id", security_group_id) + GetNetworkInsightsAnalysisExplanationSecurityGroupRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + direction=direction, + port_ranges=port_ranges, + prefix_list_id=prefix_list_id, + protocol=protocol, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + direction: Optional[str] = None, + port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisExplanationSecurityGroupRulePortRangeResult']] = None, + prefix_list_id: Optional[str] = None, + protocol: Optional[str] = None, + security_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if direction is None: + raise TypeError("Missing 'direction' argument") + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if port_ranges is None: + raise TypeError("Missing 'port_ranges' argument") + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_id is None: + raise TypeError("Missing 'prefix_list_id' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_id is None: + raise TypeError("Missing 'security_group_id' argument") + + _setter("cidr", cidr) + _setter("direction", direction) + _setter("port_ranges", port_ranges) + _setter("prefix_list_id", prefix_list_id) + _setter("protocol", protocol) + _setter("security_group_id", security_group_id) @property @pulumi.getter @@ -19168,8 +27092,27 @@ class GetNetworkInsightsAnalysisExplanationSecurityGroupRulePortRangeResult(dict def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisExplanationSecurityGroupRulePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -19192,9 +27135,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationSourceVpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19228,9 +27192,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationSubnetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19264,9 +27249,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationSubnetRouteTableResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19300,9 +27306,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationTransitGatewayResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19336,9 +27363,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationTransitGatewayAttachmentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19372,9 +27420,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationTransitGatewayRouteTableResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19408,13 +27477,62 @@ def __init__(__self__, *, resource_type: str, route_origin: str, state: str): - pulumi.set(__self__, "attachment_id", attachment_id) - pulumi.set(__self__, "destination_cidr", destination_cidr) - pulumi.set(__self__, "prefix_list_id", prefix_list_id) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "route_origin", route_origin) - pulumi.set(__self__, "state", state) + GetNetworkInsightsAnalysisExplanationTransitGatewayRouteTableRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + destination_cidr=destination_cidr, + prefix_list_id=prefix_list_id, + resource_id=resource_id, + resource_type=resource_type, + route_origin=route_origin, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[str] = None, + destination_cidr: Optional[str] = None, + prefix_list_id: Optional[str] = None, + resource_id: Optional[str] = None, + resource_type: Optional[str] = None, + route_origin: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if attachment_id is None: + raise TypeError("Missing 'attachment_id' argument") + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_cidr is None: + raise TypeError("Missing 'destination_cidr' argument") + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_id is None: + raise TypeError("Missing 'prefix_list_id' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if route_origin is None and 'routeOrigin' in kwargs: + route_origin = kwargs['routeOrigin'] + if route_origin is None: + raise TypeError("Missing 'route_origin' argument") + if state is None: + raise TypeError("Missing 'state' argument") + + _setter("attachment_id", attachment_id) + _setter("destination_cidr", destination_cidr) + _setter("prefix_list_id", prefix_list_id) + _setter("resource_id", resource_id) + _setter("resource_type", resource_type) + _setter("route_origin", route_origin) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -19462,9 +27580,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationVpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19498,9 +27637,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationVpcEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19534,9 +27694,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationVpcPeeringConnectionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19570,9 +27751,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationVpnConnectionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19606,9 +27808,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisExplanationVpnGatewayResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19641,8 +27864,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkInsightsAnalysisFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -19679,21 +27919,114 @@ def __init__(__self__, *, transit_gateway_route_table_routes: Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentTransitGatewayRouteTableRouteResult'], transit_gateways: Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentTransitGatewayResult'], vpcs: Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentVpcResult']): - pulumi.set(__self__, "acl_rules", acl_rules) - pulumi.set(__self__, "additional_details", additional_details) - pulumi.set(__self__, "attached_tos", attached_tos) - pulumi.set(__self__, "components", components) - pulumi.set(__self__, "destination_vpcs", destination_vpcs) - pulumi.set(__self__, "inbound_headers", inbound_headers) - pulumi.set(__self__, "outbound_headers", outbound_headers) - pulumi.set(__self__, "route_table_routes", route_table_routes) - pulumi.set(__self__, "security_group_rules", security_group_rules) - pulumi.set(__self__, "sequence_number", sequence_number) - pulumi.set(__self__, "source_vpcs", source_vpcs) - pulumi.set(__self__, "subnets", subnets) - pulumi.set(__self__, "transit_gateway_route_table_routes", transit_gateway_route_table_routes) - pulumi.set(__self__, "transit_gateways", transit_gateways) - pulumi.set(__self__, "vpcs", vpcs) + GetNetworkInsightsAnalysisForwardPathComponentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_rules=acl_rules, + additional_details=additional_details, + attached_tos=attached_tos, + components=components, + destination_vpcs=destination_vpcs, + inbound_headers=inbound_headers, + outbound_headers=outbound_headers, + route_table_routes=route_table_routes, + security_group_rules=security_group_rules, + sequence_number=sequence_number, + source_vpcs=source_vpcs, + subnets=subnets, + transit_gateway_route_table_routes=transit_gateway_route_table_routes, + transit_gateways=transit_gateways, + vpcs=vpcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_rules: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentAclRuleResult']] = None, + additional_details: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentAdditionalDetailResult']] = None, + attached_tos: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentAttachedToResult']] = None, + components: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentComponentResult']] = None, + destination_vpcs: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentDestinationVpcResult']] = None, + inbound_headers: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentInboundHeaderResult']] = None, + outbound_headers: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentOutboundHeaderResult']] = None, + route_table_routes: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentRouteTableRouteResult']] = None, + security_group_rules: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentSecurityGroupRuleResult']] = None, + sequence_number: Optional[int] = None, + source_vpcs: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentSourceVpcResult']] = None, + subnets: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentSubnetResult']] = None, + transit_gateway_route_table_routes: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentTransitGatewayRouteTableRouteResult']] = None, + transit_gateways: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentTransitGatewayResult']] = None, + vpcs: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentVpcResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_rules is None and 'aclRules' in kwargs: + acl_rules = kwargs['aclRules'] + if acl_rules is None: + raise TypeError("Missing 'acl_rules' argument") + if additional_details is None and 'additionalDetails' in kwargs: + additional_details = kwargs['additionalDetails'] + if additional_details is None: + raise TypeError("Missing 'additional_details' argument") + if attached_tos is None and 'attachedTos' in kwargs: + attached_tos = kwargs['attachedTos'] + if attached_tos is None: + raise TypeError("Missing 'attached_tos' argument") + if components is None: + raise TypeError("Missing 'components' argument") + if destination_vpcs is None and 'destinationVpcs' in kwargs: + destination_vpcs = kwargs['destinationVpcs'] + if destination_vpcs is None: + raise TypeError("Missing 'destination_vpcs' argument") + if inbound_headers is None and 'inboundHeaders' in kwargs: + inbound_headers = kwargs['inboundHeaders'] + if inbound_headers is None: + raise TypeError("Missing 'inbound_headers' argument") + if outbound_headers is None and 'outboundHeaders' in kwargs: + outbound_headers = kwargs['outboundHeaders'] + if outbound_headers is None: + raise TypeError("Missing 'outbound_headers' argument") + if route_table_routes is None and 'routeTableRoutes' in kwargs: + route_table_routes = kwargs['routeTableRoutes'] + if route_table_routes is None: + raise TypeError("Missing 'route_table_routes' argument") + if security_group_rules is None and 'securityGroupRules' in kwargs: + security_group_rules = kwargs['securityGroupRules'] + if security_group_rules is None: + raise TypeError("Missing 'security_group_rules' argument") + if sequence_number is None and 'sequenceNumber' in kwargs: + sequence_number = kwargs['sequenceNumber'] + if sequence_number is None: + raise TypeError("Missing 'sequence_number' argument") + if source_vpcs is None and 'sourceVpcs' in kwargs: + source_vpcs = kwargs['sourceVpcs'] + if source_vpcs is None: + raise TypeError("Missing 'source_vpcs' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if transit_gateway_route_table_routes is None and 'transitGatewayRouteTableRoutes' in kwargs: + transit_gateway_route_table_routes = kwargs['transitGatewayRouteTableRoutes'] + if transit_gateway_route_table_routes is None: + raise TypeError("Missing 'transit_gateway_route_table_routes' argument") + if transit_gateways is None and 'transitGateways' in kwargs: + transit_gateways = kwargs['transitGateways'] + if transit_gateways is None: + raise TypeError("Missing 'transit_gateways' argument") + if vpcs is None: + raise TypeError("Missing 'vpcs' argument") + + _setter("acl_rules", acl_rules) + _setter("additional_details", additional_details) + _setter("attached_tos", attached_tos) + _setter("components", components) + _setter("destination_vpcs", destination_vpcs) + _setter("inbound_headers", inbound_headers) + _setter("outbound_headers", outbound_headers) + _setter("route_table_routes", route_table_routes) + _setter("security_group_rules", security_group_rules) + _setter("sequence_number", sequence_number) + _setter("source_vpcs", source_vpcs) + _setter("subnets", subnets) + _setter("transit_gateway_route_table_routes", transit_gateway_route_table_routes) + _setter("transit_gateways", transit_gateways) + _setter("vpcs", vpcs) @property @pulumi.getter(name="aclRules") @@ -19780,12 +28113,51 @@ def __init__(__self__, *, protocol: str, rule_action: str, rule_number: int): - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "egress", egress) - pulumi.set(__self__, "port_ranges", port_ranges) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_action", rule_action) - pulumi.set(__self__, "rule_number", rule_number) + GetNetworkInsightsAnalysisForwardPathComponentAclRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + egress=egress, + port_ranges=port_ranges, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + egress: Optional[bool] = None, + port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentAclRulePortRangeResult']] = None, + protocol: Optional[str] = None, + rule_action: Optional[str] = None, + rule_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if egress is None: + raise TypeError("Missing 'egress' argument") + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if port_ranges is None: + raise TypeError("Missing 'port_ranges' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_action is None: + raise TypeError("Missing 'rule_action' argument") + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if rule_number is None: + raise TypeError("Missing 'rule_number' argument") + + _setter("cidr", cidr) + _setter("egress", egress) + _setter("port_ranges", port_ranges) + _setter("protocol", protocol) + _setter("rule_action", rule_action) + _setter("rule_number", rule_number) @property @pulumi.getter @@ -19823,8 +28195,27 @@ class GetNetworkInsightsAnalysisForwardPathComponentAclRulePortRangeResult(dict) def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisForwardPathComponentAclRulePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -19842,8 +28233,27 @@ class GetNetworkInsightsAnalysisForwardPathComponentAdditionalDetailResult(dict) def __init__(__self__, *, additional_detail_type: str, components: Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentAdditionalDetailComponentResult']): - pulumi.set(__self__, "additional_detail_type", additional_detail_type) - pulumi.set(__self__, "components", components) + GetNetworkInsightsAnalysisForwardPathComponentAdditionalDetailResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_detail_type=additional_detail_type, + components=components, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_detail_type: Optional[str] = None, + components: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentAdditionalDetailComponentResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_detail_type is None and 'additionalDetailType' in kwargs: + additional_detail_type = kwargs['additionalDetailType'] + if additional_detail_type is None: + raise TypeError("Missing 'additional_detail_type' argument") + if components is None: + raise TypeError("Missing 'components' argument") + + _setter("additional_detail_type", additional_detail_type) + _setter("components", components) @property @pulumi.getter(name="additionalDetailType") @@ -19866,9 +28276,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisForwardPathComponentAdditionalDetailComponentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19902,9 +28333,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisForwardPathComponentAttachedToResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19938,9 +28390,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisForwardPathComponentComponentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -19974,9 +28447,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisForwardPathComponentDestinationVpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -20008,11 +28502,48 @@ def __init__(__self__, *, protocol: str, source_addresses: Sequence[str], source_port_ranges: Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRangeResult']): - pulumi.set(__self__, "destination_addresses", destination_addresses) - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "source_addresses", source_addresses) - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + GetNetworkInsightsAnalysisForwardPathComponentInboundHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[Sequence[str]] = None, + destination_port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentInboundHeaderDestinationPortRangeResult']] = None, + protocol: Optional[str] = None, + source_addresses: Optional[Sequence[str]] = None, + source_port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRangeResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_addresses is None: + raise TypeError("Missing 'destination_addresses' argument") + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if destination_port_ranges is None: + raise TypeError("Missing 'destination_port_ranges' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_addresses is None: + raise TypeError("Missing 'source_addresses' argument") + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if source_port_ranges is None: + raise TypeError("Missing 'source_port_ranges' argument") + + _setter("destination_addresses", destination_addresses) + _setter("destination_port_ranges", destination_port_ranges) + _setter("protocol", protocol) + _setter("source_addresses", source_addresses) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -20045,8 +28576,27 @@ class GetNetworkInsightsAnalysisForwardPathComponentInboundHeaderDestinationPort def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisForwardPathComponentInboundHeaderDestinationPortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -20064,8 +28614,27 @@ class GetNetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRange def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisForwardPathComponentInboundHeaderSourcePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -20086,11 +28655,48 @@ def __init__(__self__, *, protocol: str, source_addresses: Sequence[str], source_port_ranges: Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRangeResult']): - pulumi.set(__self__, "destination_addresses", destination_addresses) - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "source_addresses", source_addresses) - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + GetNetworkInsightsAnalysisForwardPathComponentOutboundHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[Sequence[str]] = None, + destination_port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentOutboundHeaderDestinationPortRangeResult']] = None, + protocol: Optional[str] = None, + source_addresses: Optional[Sequence[str]] = None, + source_port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRangeResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_addresses is None: + raise TypeError("Missing 'destination_addresses' argument") + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if destination_port_ranges is None: + raise TypeError("Missing 'destination_port_ranges' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_addresses is None: + raise TypeError("Missing 'source_addresses' argument") + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if source_port_ranges is None: + raise TypeError("Missing 'source_port_ranges' argument") + + _setter("destination_addresses", destination_addresses) + _setter("destination_port_ranges", destination_port_ranges) + _setter("protocol", protocol) + _setter("source_addresses", source_addresses) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -20123,8 +28729,27 @@ class GetNetworkInsightsAnalysisForwardPathComponentOutboundHeaderDestinationPor def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisForwardPathComponentOutboundHeaderDestinationPortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -20142,8 +28767,27 @@ class GetNetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRang def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisForwardPathComponentOutboundHeaderSourcePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -20169,16 +28813,83 @@ def __init__(__self__, *, origin: str, transit_gateway_id: str, vpc_peering_connection_id: str): - pulumi.set(__self__, "destination_cidr", destination_cidr) - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) - pulumi.set(__self__, "egress_only_internet_gateway_id", egress_only_internet_gateway_id) - pulumi.set(__self__, "gateway_id", gateway_id) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "origin", origin) - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + GetNetworkInsightsAnalysisForwardPathComponentRouteTableRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr=destination_cidr, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_internet_gateway_id=egress_only_internet_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + transit_gateway_id=transit_gateway_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr: Optional[str] = None, + destination_prefix_list_id: Optional[str] = None, + egress_only_internet_gateway_id: Optional[str] = None, + gateway_id: Optional[str] = None, + instance_id: Optional[str] = None, + nat_gateway_id: Optional[str] = None, + network_interface_id: Optional[str] = None, + origin: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + vpc_peering_connection_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_cidr is None: + raise TypeError("Missing 'destination_cidr' argument") + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if destination_prefix_list_id is None: + raise TypeError("Missing 'destination_prefix_list_id' argument") + if egress_only_internet_gateway_id is None and 'egressOnlyInternetGatewayId' in kwargs: + egress_only_internet_gateway_id = kwargs['egressOnlyInternetGatewayId'] + if egress_only_internet_gateway_id is None: + raise TypeError("Missing 'egress_only_internet_gateway_id' argument") + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if gateway_id is None: + raise TypeError("Missing 'gateway_id' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if nat_gateway_id is None: + raise TypeError("Missing 'nat_gateway_id' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if origin is None: + raise TypeError("Missing 'origin' argument") + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if vpc_peering_connection_id is None: + raise TypeError("Missing 'vpc_peering_connection_id' argument") + + _setter("destination_cidr", destination_cidr) + _setter("destination_prefix_list_id", destination_prefix_list_id) + _setter("egress_only_internet_gateway_id", egress_only_internet_gateway_id) + _setter("gateway_id", gateway_id) + _setter("instance_id", instance_id) + _setter("nat_gateway_id", nat_gateway_id) + _setter("network_interface_id", network_interface_id) + _setter("origin", origin) + _setter("transit_gateway_id", transit_gateway_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="destinationCidr") @@ -20240,12 +28951,51 @@ def __init__(__self__, *, prefix_list_id: str, protocol: str, security_group_id: str): - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "direction", direction) - pulumi.set(__self__, "port_ranges", port_ranges) - pulumi.set(__self__, "prefix_list_id", prefix_list_id) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "security_group_id", security_group_id) + GetNetworkInsightsAnalysisForwardPathComponentSecurityGroupRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + direction=direction, + port_ranges=port_ranges, + prefix_list_id=prefix_list_id, + protocol=protocol, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + direction: Optional[str] = None, + port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisForwardPathComponentSecurityGroupRulePortRangeResult']] = None, + prefix_list_id: Optional[str] = None, + protocol: Optional[str] = None, + security_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if direction is None: + raise TypeError("Missing 'direction' argument") + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if port_ranges is None: + raise TypeError("Missing 'port_ranges' argument") + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_id is None: + raise TypeError("Missing 'prefix_list_id' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_id is None: + raise TypeError("Missing 'security_group_id' argument") + + _setter("cidr", cidr) + _setter("direction", direction) + _setter("port_ranges", port_ranges) + _setter("prefix_list_id", prefix_list_id) + _setter("protocol", protocol) + _setter("security_group_id", security_group_id) @property @pulumi.getter @@ -20283,8 +29033,27 @@ class GetNetworkInsightsAnalysisForwardPathComponentSecurityGroupRulePortRangeRe def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisForwardPathComponentSecurityGroupRulePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -20307,9 +29076,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisForwardPathComponentSourceVpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -20343,9 +29133,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisForwardPathComponentSubnetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -20379,9 +29190,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisForwardPathComponentTransitGatewayResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -20415,13 +29247,62 @@ def __init__(__self__, *, resource_type: str, route_origin: str, state: str): - pulumi.set(__self__, "attachment_id", attachment_id) - pulumi.set(__self__, "destination_cidr", destination_cidr) - pulumi.set(__self__, "prefix_list_id", prefix_list_id) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "route_origin", route_origin) - pulumi.set(__self__, "state", state) + GetNetworkInsightsAnalysisForwardPathComponentTransitGatewayRouteTableRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + destination_cidr=destination_cidr, + prefix_list_id=prefix_list_id, + resource_id=resource_id, + resource_type=resource_type, + route_origin=route_origin, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[str] = None, + destination_cidr: Optional[str] = None, + prefix_list_id: Optional[str] = None, + resource_id: Optional[str] = None, + resource_type: Optional[str] = None, + route_origin: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if attachment_id is None: + raise TypeError("Missing 'attachment_id' argument") + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_cidr is None: + raise TypeError("Missing 'destination_cidr' argument") + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_id is None: + raise TypeError("Missing 'prefix_list_id' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if route_origin is None and 'routeOrigin' in kwargs: + route_origin = kwargs['routeOrigin'] + if route_origin is None: + raise TypeError("Missing 'route_origin' argument") + if state is None: + raise TypeError("Missing 'state' argument") + + _setter("attachment_id", attachment_id) + _setter("destination_cidr", destination_cidr) + _setter("prefix_list_id", prefix_list_id) + _setter("resource_id", resource_id) + _setter("resource_type", resource_type) + _setter("route_origin", route_origin) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -20469,9 +29350,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisForwardPathComponentVpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -20513,21 +29415,114 @@ def __init__(__self__, *, transit_gateway_route_table_routes: Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteResult'], transit_gateways: Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentTransitGatewayResult'], vpcs: Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentVpcResult']): - pulumi.set(__self__, "acl_rules", acl_rules) - pulumi.set(__self__, "additional_details", additional_details) - pulumi.set(__self__, "attached_tos", attached_tos) - pulumi.set(__self__, "components", components) - pulumi.set(__self__, "destination_vpcs", destination_vpcs) - pulumi.set(__self__, "inbound_headers", inbound_headers) - pulumi.set(__self__, "outbound_headers", outbound_headers) - pulumi.set(__self__, "route_table_routes", route_table_routes) - pulumi.set(__self__, "security_group_rules", security_group_rules) - pulumi.set(__self__, "sequence_number", sequence_number) - pulumi.set(__self__, "source_vpcs", source_vpcs) - pulumi.set(__self__, "subnets", subnets) - pulumi.set(__self__, "transit_gateway_route_table_routes", transit_gateway_route_table_routes) - pulumi.set(__self__, "transit_gateways", transit_gateways) - pulumi.set(__self__, "vpcs", vpcs) + GetNetworkInsightsAnalysisReturnPathComponentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_rules=acl_rules, + additional_details=additional_details, + attached_tos=attached_tos, + components=components, + destination_vpcs=destination_vpcs, + inbound_headers=inbound_headers, + outbound_headers=outbound_headers, + route_table_routes=route_table_routes, + security_group_rules=security_group_rules, + sequence_number=sequence_number, + source_vpcs=source_vpcs, + subnets=subnets, + transit_gateway_route_table_routes=transit_gateway_route_table_routes, + transit_gateways=transit_gateways, + vpcs=vpcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_rules: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentAclRuleResult']] = None, + additional_details: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentAdditionalDetailResult']] = None, + attached_tos: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentAttachedToResult']] = None, + components: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentComponentResult']] = None, + destination_vpcs: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentDestinationVpcResult']] = None, + inbound_headers: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentInboundHeaderResult']] = None, + outbound_headers: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentOutboundHeaderResult']] = None, + route_table_routes: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentRouteTableRouteResult']] = None, + security_group_rules: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentSecurityGroupRuleResult']] = None, + sequence_number: Optional[int] = None, + source_vpcs: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentSourceVpcResult']] = None, + subnets: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentSubnetResult']] = None, + transit_gateway_route_table_routes: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteResult']] = None, + transit_gateways: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentTransitGatewayResult']] = None, + vpcs: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentVpcResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_rules is None and 'aclRules' in kwargs: + acl_rules = kwargs['aclRules'] + if acl_rules is None: + raise TypeError("Missing 'acl_rules' argument") + if additional_details is None and 'additionalDetails' in kwargs: + additional_details = kwargs['additionalDetails'] + if additional_details is None: + raise TypeError("Missing 'additional_details' argument") + if attached_tos is None and 'attachedTos' in kwargs: + attached_tos = kwargs['attachedTos'] + if attached_tos is None: + raise TypeError("Missing 'attached_tos' argument") + if components is None: + raise TypeError("Missing 'components' argument") + if destination_vpcs is None and 'destinationVpcs' in kwargs: + destination_vpcs = kwargs['destinationVpcs'] + if destination_vpcs is None: + raise TypeError("Missing 'destination_vpcs' argument") + if inbound_headers is None and 'inboundHeaders' in kwargs: + inbound_headers = kwargs['inboundHeaders'] + if inbound_headers is None: + raise TypeError("Missing 'inbound_headers' argument") + if outbound_headers is None and 'outboundHeaders' in kwargs: + outbound_headers = kwargs['outboundHeaders'] + if outbound_headers is None: + raise TypeError("Missing 'outbound_headers' argument") + if route_table_routes is None and 'routeTableRoutes' in kwargs: + route_table_routes = kwargs['routeTableRoutes'] + if route_table_routes is None: + raise TypeError("Missing 'route_table_routes' argument") + if security_group_rules is None and 'securityGroupRules' in kwargs: + security_group_rules = kwargs['securityGroupRules'] + if security_group_rules is None: + raise TypeError("Missing 'security_group_rules' argument") + if sequence_number is None and 'sequenceNumber' in kwargs: + sequence_number = kwargs['sequenceNumber'] + if sequence_number is None: + raise TypeError("Missing 'sequence_number' argument") + if source_vpcs is None and 'sourceVpcs' in kwargs: + source_vpcs = kwargs['sourceVpcs'] + if source_vpcs is None: + raise TypeError("Missing 'source_vpcs' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if transit_gateway_route_table_routes is None and 'transitGatewayRouteTableRoutes' in kwargs: + transit_gateway_route_table_routes = kwargs['transitGatewayRouteTableRoutes'] + if transit_gateway_route_table_routes is None: + raise TypeError("Missing 'transit_gateway_route_table_routes' argument") + if transit_gateways is None and 'transitGateways' in kwargs: + transit_gateways = kwargs['transitGateways'] + if transit_gateways is None: + raise TypeError("Missing 'transit_gateways' argument") + if vpcs is None: + raise TypeError("Missing 'vpcs' argument") + + _setter("acl_rules", acl_rules) + _setter("additional_details", additional_details) + _setter("attached_tos", attached_tos) + _setter("components", components) + _setter("destination_vpcs", destination_vpcs) + _setter("inbound_headers", inbound_headers) + _setter("outbound_headers", outbound_headers) + _setter("route_table_routes", route_table_routes) + _setter("security_group_rules", security_group_rules) + _setter("sequence_number", sequence_number) + _setter("source_vpcs", source_vpcs) + _setter("subnets", subnets) + _setter("transit_gateway_route_table_routes", transit_gateway_route_table_routes) + _setter("transit_gateways", transit_gateways) + _setter("vpcs", vpcs) @property @pulumi.getter(name="aclRules") @@ -20614,12 +29609,51 @@ def __init__(__self__, *, protocol: str, rule_action: str, rule_number: int): - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "egress", egress) - pulumi.set(__self__, "port_ranges", port_ranges) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_action", rule_action) - pulumi.set(__self__, "rule_number", rule_number) + GetNetworkInsightsAnalysisReturnPathComponentAclRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + egress=egress, + port_ranges=port_ranges, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + egress: Optional[bool] = None, + port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentAclRulePortRangeResult']] = None, + protocol: Optional[str] = None, + rule_action: Optional[str] = None, + rule_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if egress is None: + raise TypeError("Missing 'egress' argument") + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if port_ranges is None: + raise TypeError("Missing 'port_ranges' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_action is None: + raise TypeError("Missing 'rule_action' argument") + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if rule_number is None: + raise TypeError("Missing 'rule_number' argument") + + _setter("cidr", cidr) + _setter("egress", egress) + _setter("port_ranges", port_ranges) + _setter("protocol", protocol) + _setter("rule_action", rule_action) + _setter("rule_number", rule_number) @property @pulumi.getter @@ -20657,8 +29691,27 @@ class GetNetworkInsightsAnalysisReturnPathComponentAclRulePortRangeResult(dict): def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisReturnPathComponentAclRulePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -20676,8 +29729,27 @@ class GetNetworkInsightsAnalysisReturnPathComponentAdditionalDetailResult(dict): def __init__(__self__, *, additional_detail_type: str, components: Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentAdditionalDetailComponentResult']): - pulumi.set(__self__, "additional_detail_type", additional_detail_type) - pulumi.set(__self__, "components", components) + GetNetworkInsightsAnalysisReturnPathComponentAdditionalDetailResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_detail_type=additional_detail_type, + components=components, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_detail_type: Optional[str] = None, + components: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentAdditionalDetailComponentResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_detail_type is None and 'additionalDetailType' in kwargs: + additional_detail_type = kwargs['additionalDetailType'] + if additional_detail_type is None: + raise TypeError("Missing 'additional_detail_type' argument") + if components is None: + raise TypeError("Missing 'components' argument") + + _setter("additional_detail_type", additional_detail_type) + _setter("components", components) @property @pulumi.getter(name="additionalDetailType") @@ -20700,9 +29772,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisReturnPathComponentAdditionalDetailComponentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -20736,9 +29829,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisReturnPathComponentAttachedToResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -20772,9 +29886,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisReturnPathComponentComponentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -20808,9 +29943,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisReturnPathComponentDestinationVpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -20842,11 +29998,48 @@ def __init__(__self__, *, protocol: str, source_addresses: Sequence[str], source_port_ranges: Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRangeResult']): - pulumi.set(__self__, "destination_addresses", destination_addresses) - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "source_addresses", source_addresses) - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + GetNetworkInsightsAnalysisReturnPathComponentInboundHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[Sequence[str]] = None, + destination_port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentInboundHeaderDestinationPortRangeResult']] = None, + protocol: Optional[str] = None, + source_addresses: Optional[Sequence[str]] = None, + source_port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRangeResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_addresses is None: + raise TypeError("Missing 'destination_addresses' argument") + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if destination_port_ranges is None: + raise TypeError("Missing 'destination_port_ranges' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_addresses is None: + raise TypeError("Missing 'source_addresses' argument") + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if source_port_ranges is None: + raise TypeError("Missing 'source_port_ranges' argument") + + _setter("destination_addresses", destination_addresses) + _setter("destination_port_ranges", destination_port_ranges) + _setter("protocol", protocol) + _setter("source_addresses", source_addresses) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -20879,8 +30072,27 @@ class GetNetworkInsightsAnalysisReturnPathComponentInboundHeaderDestinationPortR def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisReturnPathComponentInboundHeaderDestinationPortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -20898,8 +30110,27 @@ class GetNetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRangeR def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisReturnPathComponentInboundHeaderSourcePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -20920,11 +30151,48 @@ def __init__(__self__, *, protocol: str, source_addresses: Sequence[str], source_port_ranges: Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRangeResult']): - pulumi.set(__self__, "destination_addresses", destination_addresses) - pulumi.set(__self__, "destination_port_ranges", destination_port_ranges) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "source_addresses", source_addresses) - pulumi.set(__self__, "source_port_ranges", source_port_ranges) + GetNetworkInsightsAnalysisReturnPathComponentOutboundHeaderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_addresses=destination_addresses, + destination_port_ranges=destination_port_ranges, + protocol=protocol, + source_addresses=source_addresses, + source_port_ranges=source_port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_addresses: Optional[Sequence[str]] = None, + destination_port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentOutboundHeaderDestinationPortRangeResult']] = None, + protocol: Optional[str] = None, + source_addresses: Optional[Sequence[str]] = None, + source_port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRangeResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_addresses is None and 'destinationAddresses' in kwargs: + destination_addresses = kwargs['destinationAddresses'] + if destination_addresses is None: + raise TypeError("Missing 'destination_addresses' argument") + if destination_port_ranges is None and 'destinationPortRanges' in kwargs: + destination_port_ranges = kwargs['destinationPortRanges'] + if destination_port_ranges is None: + raise TypeError("Missing 'destination_port_ranges' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if source_addresses is None and 'sourceAddresses' in kwargs: + source_addresses = kwargs['sourceAddresses'] + if source_addresses is None: + raise TypeError("Missing 'source_addresses' argument") + if source_port_ranges is None and 'sourcePortRanges' in kwargs: + source_port_ranges = kwargs['sourcePortRanges'] + if source_port_ranges is None: + raise TypeError("Missing 'source_port_ranges' argument") + + _setter("destination_addresses", destination_addresses) + _setter("destination_port_ranges", destination_port_ranges) + _setter("protocol", protocol) + _setter("source_addresses", source_addresses) + _setter("source_port_ranges", source_port_ranges) @property @pulumi.getter(name="destinationAddresses") @@ -20957,8 +30225,27 @@ class GetNetworkInsightsAnalysisReturnPathComponentOutboundHeaderDestinationPort def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisReturnPathComponentOutboundHeaderDestinationPortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -20976,8 +30263,27 @@ class GetNetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRange def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisReturnPathComponentOutboundHeaderSourcePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -21003,16 +30309,83 @@ def __init__(__self__, *, origin: str, transit_gateway_id: str, vpc_peering_connection_id: str): - pulumi.set(__self__, "destination_cidr", destination_cidr) - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) - pulumi.set(__self__, "egress_only_internet_gateway_id", egress_only_internet_gateway_id) - pulumi.set(__self__, "gateway_id", gateway_id) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "origin", origin) - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + GetNetworkInsightsAnalysisReturnPathComponentRouteTableRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr=destination_cidr, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_internet_gateway_id=egress_only_internet_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + transit_gateway_id=transit_gateway_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr: Optional[str] = None, + destination_prefix_list_id: Optional[str] = None, + egress_only_internet_gateway_id: Optional[str] = None, + gateway_id: Optional[str] = None, + instance_id: Optional[str] = None, + nat_gateway_id: Optional[str] = None, + network_interface_id: Optional[str] = None, + origin: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + vpc_peering_connection_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_cidr is None: + raise TypeError("Missing 'destination_cidr' argument") + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if destination_prefix_list_id is None: + raise TypeError("Missing 'destination_prefix_list_id' argument") + if egress_only_internet_gateway_id is None and 'egressOnlyInternetGatewayId' in kwargs: + egress_only_internet_gateway_id = kwargs['egressOnlyInternetGatewayId'] + if egress_only_internet_gateway_id is None: + raise TypeError("Missing 'egress_only_internet_gateway_id' argument") + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if gateway_id is None: + raise TypeError("Missing 'gateway_id' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if nat_gateway_id is None: + raise TypeError("Missing 'nat_gateway_id' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if origin is None: + raise TypeError("Missing 'origin' argument") + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if vpc_peering_connection_id is None: + raise TypeError("Missing 'vpc_peering_connection_id' argument") + + _setter("destination_cidr", destination_cidr) + _setter("destination_prefix_list_id", destination_prefix_list_id) + _setter("egress_only_internet_gateway_id", egress_only_internet_gateway_id) + _setter("gateway_id", gateway_id) + _setter("instance_id", instance_id) + _setter("nat_gateway_id", nat_gateway_id) + _setter("network_interface_id", network_interface_id) + _setter("origin", origin) + _setter("transit_gateway_id", transit_gateway_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="destinationCidr") @@ -21074,12 +30447,51 @@ def __init__(__self__, *, prefix_list_id: str, protocol: str, security_group_id: str): - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "direction", direction) - pulumi.set(__self__, "port_ranges", port_ranges) - pulumi.set(__self__, "prefix_list_id", prefix_list_id) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "security_group_id", security_group_id) + GetNetworkInsightsAnalysisReturnPathComponentSecurityGroupRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + direction=direction, + port_ranges=port_ranges, + prefix_list_id=prefix_list_id, + protocol=protocol, + security_group_id=security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + direction: Optional[str] = None, + port_ranges: Optional[Sequence['outputs.GetNetworkInsightsAnalysisReturnPathComponentSecurityGroupRulePortRangeResult']] = None, + prefix_list_id: Optional[str] = None, + protocol: Optional[str] = None, + security_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if direction is None: + raise TypeError("Missing 'direction' argument") + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if port_ranges is None: + raise TypeError("Missing 'port_ranges' argument") + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_id is None: + raise TypeError("Missing 'prefix_list_id' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_id is None: + raise TypeError("Missing 'security_group_id' argument") + + _setter("cidr", cidr) + _setter("direction", direction) + _setter("port_ranges", port_ranges) + _setter("prefix_list_id", prefix_list_id) + _setter("protocol", protocol) + _setter("security_group_id", security_group_id) @property @pulumi.getter @@ -21117,8 +30529,27 @@ class GetNetworkInsightsAnalysisReturnPathComponentSecurityGroupRulePortRangeRes def __init__(__self__, *, from_: int, to: int): - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + GetNetworkInsightsAnalysisReturnPathComponentSecurityGroupRulePortRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") @@ -21141,9 +30572,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisReturnPathComponentSourceVpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -21177,9 +30629,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisReturnPathComponentSubnetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -21213,9 +30686,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisReturnPathComponentTransitGatewayResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -21249,13 +30743,62 @@ def __init__(__self__, *, resource_type: str, route_origin: str, state: str): - pulumi.set(__self__, "attachment_id", attachment_id) - pulumi.set(__self__, "destination_cidr", destination_cidr) - pulumi.set(__self__, "prefix_list_id", prefix_list_id) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "route_origin", route_origin) - pulumi.set(__self__, "state", state) + GetNetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + destination_cidr=destination_cidr, + prefix_list_id=prefix_list_id, + resource_id=resource_id, + resource_type=resource_type, + route_origin=route_origin, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[str] = None, + destination_cidr: Optional[str] = None, + prefix_list_id: Optional[str] = None, + resource_id: Optional[str] = None, + resource_type: Optional[str] = None, + route_origin: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if attachment_id is None: + raise TypeError("Missing 'attachment_id' argument") + if destination_cidr is None and 'destinationCidr' in kwargs: + destination_cidr = kwargs['destinationCidr'] + if destination_cidr is None: + raise TypeError("Missing 'destination_cidr' argument") + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_id is None: + raise TypeError("Missing 'prefix_list_id' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if route_origin is None and 'routeOrigin' in kwargs: + route_origin = kwargs['routeOrigin'] + if route_origin is None: + raise TypeError("Missing 'route_origin' argument") + if state is None: + raise TypeError("Missing 'state' argument") + + _setter("attachment_id", attachment_id) + _setter("destination_cidr", destination_cidr) + _setter("prefix_list_id", prefix_list_id) + _setter("resource_id", resource_id) + _setter("resource_type", resource_type) + _setter("route_origin", route_origin) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -21303,9 +30846,30 @@ def __init__(__self__, *, :param str arn: ARN of the selected Network Insights Analysis. :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsAnalyses`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsAnalyses.html) API Reference. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetNetworkInsightsAnalysisReturnPathComponentVpcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter @@ -21338,8 +30902,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeNetworkInsightsPaths`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInsightsPaths.html) API Reference. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkInsightsPathFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -21377,13 +30958,64 @@ def __init__(__self__, *, :param str public_dns_name: Public DNS name. :param str public_ip: Address of the Elastic IP address bound to the network interface. """ - pulumi.set(__self__, "allocation_id", allocation_id) - pulumi.set(__self__, "association_id", association_id) - pulumi.set(__self__, "carrier_ip", carrier_ip) - pulumi.set(__self__, "customer_owned_ip", customer_owned_ip) - pulumi.set(__self__, "ip_owner_id", ip_owner_id) - pulumi.set(__self__, "public_dns_name", public_dns_name) - pulumi.set(__self__, "public_ip", public_ip) + GetNetworkInterfaceAssociationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_id=allocation_id, + association_id=association_id, + carrier_ip=carrier_ip, + customer_owned_ip=customer_owned_ip, + ip_owner_id=ip_owner_id, + public_dns_name=public_dns_name, + public_ip=public_ip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_id: Optional[str] = None, + association_id: Optional[str] = None, + carrier_ip: Optional[str] = None, + customer_owned_ip: Optional[str] = None, + ip_owner_id: Optional[str] = None, + public_dns_name: Optional[str] = None, + public_ip: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if allocation_id is None: + raise TypeError("Missing 'allocation_id' argument") + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if association_id is None: + raise TypeError("Missing 'association_id' argument") + if carrier_ip is None and 'carrierIp' in kwargs: + carrier_ip = kwargs['carrierIp'] + if carrier_ip is None: + raise TypeError("Missing 'carrier_ip' argument") + if customer_owned_ip is None and 'customerOwnedIp' in kwargs: + customer_owned_ip = kwargs['customerOwnedIp'] + if customer_owned_ip is None: + raise TypeError("Missing 'customer_owned_ip' argument") + if ip_owner_id is None and 'ipOwnerId' in kwargs: + ip_owner_id = kwargs['ipOwnerId'] + if ip_owner_id is None: + raise TypeError("Missing 'ip_owner_id' argument") + if public_dns_name is None and 'publicDnsName' in kwargs: + public_dns_name = kwargs['publicDnsName'] + if public_dns_name is None: + raise TypeError("Missing 'public_dns_name' argument") + if public_ip is None and 'publicIp' in kwargs: + public_ip = kwargs['publicIp'] + if public_ip is None: + raise TypeError("Missing 'public_ip' argument") + + _setter("allocation_id", allocation_id) + _setter("association_id", association_id) + _setter("carrier_ip", carrier_ip) + _setter("customer_owned_ip", customer_owned_ip) + _setter("ip_owner_id", ip_owner_id) + _setter("public_dns_name", public_dns_name) + _setter("public_ip", public_ip) @property @pulumi.getter(name="allocationId") @@ -21449,10 +31081,43 @@ def __init__(__self__, *, device_index: int, instance_id: str, instance_owner_id: str): - pulumi.set(__self__, "attachment_id", attachment_id) - pulumi.set(__self__, "device_index", device_index) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "instance_owner_id", instance_owner_id) + GetNetworkInterfaceAttachmentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + device_index=device_index, + instance_id=instance_id, + instance_owner_id=instance_owner_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[str] = None, + device_index: Optional[int] = None, + instance_id: Optional[str] = None, + instance_owner_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if attachment_id is None: + raise TypeError("Missing 'attachment_id' argument") + if device_index is None and 'deviceIndex' in kwargs: + device_index = kwargs['deviceIndex'] + if device_index is None: + raise TypeError("Missing 'device_index' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if instance_owner_id is None and 'instanceOwnerId' in kwargs: + instance_owner_id = kwargs['instanceOwnerId'] + if instance_owner_id is None: + raise TypeError("Missing 'instance_owner_id' argument") + + _setter("attachment_id", attachment_id) + _setter("device_index", device_index) + _setter("instance_id", instance_id) + _setter("instance_owner_id", instance_owner_id) @property @pulumi.getter(name="attachmentId") @@ -21480,8 +31145,25 @@ class GetNetworkInterfaceFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkInterfaceFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -21504,8 +31186,25 @@ def __init__(__self__, *, [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html). :param Sequence[str] values: Set of values that are accepted for the given field. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetNetworkInterfacesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -21534,8 +31233,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribePrefixLists API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePrefixLists.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetPrefixListFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -21567,10 +31283,43 @@ def __init__(__self__, *, :param str first_address: First address in the range. :param str last_address: Last address in the range. """ - pulumi.set(__self__, "address_count", address_count) - pulumi.set(__self__, "available_address_count", available_address_count) - pulumi.set(__self__, "first_address", first_address) - pulumi.set(__self__, "last_address", last_address) + GetPublicIpv4PoolPoolAddressRangeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_count=address_count, + available_address_count=available_address_count, + first_address=first_address, + last_address=last_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_count: Optional[int] = None, + available_address_count: Optional[int] = None, + first_address: Optional[str] = None, + last_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_count is None and 'addressCount' in kwargs: + address_count = kwargs['addressCount'] + if address_count is None: + raise TypeError("Missing 'address_count' argument") + if available_address_count is None and 'availableAddressCount' in kwargs: + available_address_count = kwargs['availableAddressCount'] + if available_address_count is None: + raise TypeError("Missing 'available_address_count' argument") + if first_address is None and 'firstAddress' in kwargs: + first_address = kwargs['firstAddress'] + if first_address is None: + raise TypeError("Missing 'first_address' argument") + if last_address is None and 'lastAddress' in kwargs: + last_address = kwargs['lastAddress'] + if last_address is None: + raise TypeError("Missing 'last_address' argument") + + _setter("address_count", address_count) + _setter("available_address_count", available_address_count) + _setter("first_address", first_address) + _setter("last_address", last_address) @property @pulumi.getter(name="addressCount") @@ -21614,8 +31363,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePublicIpv4Pools.html). :param Sequence[str] values: Set of values that are accepted for the given field. Pool IDs will be selected if any one of the given values match. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetPublicIpv4PoolsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -21649,11 +31415,48 @@ def __init__(__self__, *, :param str route_table_id: ID of the specific Route Table to retrieve. :param str subnet_id: ID of a Subnet which is connected to the Route Table (not exported if not passed as a parameter). """ - pulumi.set(__self__, "gateway_id", gateway_id) - pulumi.set(__self__, "main", main) - pulumi.set(__self__, "route_table_association_id", route_table_association_id) - pulumi.set(__self__, "route_table_id", route_table_id) - pulumi.set(__self__, "subnet_id", subnet_id) + GetRouteTableAssociationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + gateway_id=gateway_id, + main=main, + route_table_association_id=route_table_association_id, + route_table_id=route_table_id, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gateway_id: Optional[str] = None, + main: Optional[bool] = None, + route_table_association_id: Optional[str] = None, + route_table_id: Optional[str] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if gateway_id is None: + raise TypeError("Missing 'gateway_id' argument") + if main is None: + raise TypeError("Missing 'main' argument") + if route_table_association_id is None and 'routeTableAssociationId' in kwargs: + route_table_association_id = kwargs['routeTableAssociationId'] + if route_table_association_id is None: + raise TypeError("Missing 'route_table_association_id' argument") + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if route_table_id is None: + raise TypeError("Missing 'route_table_id' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("gateway_id", gateway_id) + _setter("main", main) + _setter("route_table_association_id", route_table_association_id) + _setter("route_table_id", route_table_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="gatewayId") @@ -21705,8 +31508,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRouteTables.html). :param Sequence[str] values: Set of values that are accepted for the given field. A Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTableFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -21758,20 +31578,113 @@ def __init__(__self__, *, :param str vpc_endpoint_id: VPC Endpoint ID. :param str vpc_peering_connection_id: VPC Peering ID. """ - pulumi.set(__self__, "carrier_gateway_id", carrier_gateway_id) - pulumi.set(__self__, "cidr_block", cidr_block) - pulumi.set(__self__, "core_network_arn", core_network_arn) - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) - pulumi.set(__self__, "egress_only_gateway_id", egress_only_gateway_id) - pulumi.set(__self__, "gateway_id", gateway_id) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) - pulumi.set(__self__, "local_gateway_id", local_gateway_id) - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + GetRouteTableRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + carrier_gateway_id=carrier_gateway_id, + cidr_block=cidr_block, + core_network_arn=core_network_arn, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_gateway_id=egress_only_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + ipv6_cidr_block=ipv6_cidr_block, + local_gateway_id=local_gateway_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + transit_gateway_id=transit_gateway_id, + vpc_endpoint_id=vpc_endpoint_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + carrier_gateway_id: Optional[str] = None, + cidr_block: Optional[str] = None, + core_network_arn: Optional[str] = None, + destination_prefix_list_id: Optional[str] = None, + egress_only_gateway_id: Optional[str] = None, + gateway_id: Optional[str] = None, + instance_id: Optional[str] = None, + ipv6_cidr_block: Optional[str] = None, + local_gateway_id: Optional[str] = None, + nat_gateway_id: Optional[str] = None, + network_interface_id: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + vpc_endpoint_id: Optional[str] = None, + vpc_peering_connection_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if carrier_gateway_id is None and 'carrierGatewayId' in kwargs: + carrier_gateway_id = kwargs['carrierGatewayId'] + if carrier_gateway_id is None: + raise TypeError("Missing 'carrier_gateway_id' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if cidr_block is None: + raise TypeError("Missing 'cidr_block' argument") + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if core_network_arn is None: + raise TypeError("Missing 'core_network_arn' argument") + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if destination_prefix_list_id is None: + raise TypeError("Missing 'destination_prefix_list_id' argument") + if egress_only_gateway_id is None and 'egressOnlyGatewayId' in kwargs: + egress_only_gateway_id = kwargs['egressOnlyGatewayId'] + if egress_only_gateway_id is None: + raise TypeError("Missing 'egress_only_gateway_id' argument") + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if gateway_id is None: + raise TypeError("Missing 'gateway_id' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_cidr_block is None: + raise TypeError("Missing 'ipv6_cidr_block' argument") + if local_gateway_id is None and 'localGatewayId' in kwargs: + local_gateway_id = kwargs['localGatewayId'] + if local_gateway_id is None: + raise TypeError("Missing 'local_gateway_id' argument") + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if nat_gateway_id is None: + raise TypeError("Missing 'nat_gateway_id' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_id is None: + raise TypeError("Missing 'vpc_endpoint_id' argument") + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if vpc_peering_connection_id is None: + raise TypeError("Missing 'vpc_peering_connection_id' argument") + + _setter("carrier_gateway_id", carrier_gateway_id) + _setter("cidr_block", cidr_block) + _setter("core_network_arn", core_network_arn) + _setter("destination_prefix_list_id", destination_prefix_list_id) + _setter("egress_only_gateway_id", egress_only_gateway_id) + _setter("gateway_id", gateway_id) + _setter("instance_id", instance_id) + _setter("ipv6_cidr_block", ipv6_cidr_block) + _setter("local_gateway_id", local_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) + _setter("network_interface_id", network_interface_id) + _setter("transit_gateway_id", transit_gateway_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="carrierGatewayId") @@ -21897,8 +31810,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTablesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -21930,8 +31860,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Security Group will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecurityGroupFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -21957,8 +31904,25 @@ class GetSecurityGroupsFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecurityGroupsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -21980,8 +31944,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSpotPriceFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22009,8 +31990,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html). :param Sequence[str] values: Set of values that are accepted for the given field. A subnet will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSubnetFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22051,8 +32049,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. Subnet IDs will be selected if any one of the given values match. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSubnetsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22095,8 +32110,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Transit Gateway Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetTransitGatewayRouteTablesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22129,9 +32161,34 @@ def __init__(__self__, *, :param str state: Current state of the desired VPC. Can be either `"pending"` or `"available"`. """ - pulumi.set(__self__, "association_id", association_id) - pulumi.set(__self__, "cidr_block", cidr_block) - pulumi.set(__self__, "state", state) + GetVpcCidrBlockAssociationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + association_id=association_id, + cidr_block=cidr_block, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + association_id: Optional[str] = None, + cidr_block: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if association_id is None: + raise TypeError("Missing 'association_id' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if cidr_block is None: + raise TypeError("Missing 'cidr_block' argument") + if state is None: + raise TypeError("Missing 'state' argument") + + _setter("association_id", association_id) + _setter("cidr_block", cidr_block) + _setter("state", state) @property @pulumi.getter(name="associationId") @@ -22168,8 +32225,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter. :param Sequence[str] values: Set of values for filtering. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcDhcpOptionsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22197,8 +32271,29 @@ def __init__(__self__, *, :param str dns_name: DNS name. :param str hosted_zone_id: ID of the private hosted zone. """ - pulumi.set(__self__, "dns_name", dns_name) - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + GetVpcEndpointDnsEntryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + hosted_zone_id=hosted_zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + hosted_zone_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if dns_name is None: + raise TypeError("Missing 'dns_name' argument") + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if hosted_zone_id is None: + raise TypeError("Missing 'hosted_zone_id' argument") + + _setter("dns_name", dns_name) + _setter("hosted_zone_id", hosted_zone_id) @property @pulumi.getter(name="dnsName") @@ -22226,8 +32321,29 @@ def __init__(__self__, *, :param str dns_record_ip_type: The DNS records created for the endpoint. :param bool private_dns_only_for_inbound_resolver_endpoint: Indicates whether to enable private DNS only for inbound endpoints. """ - pulumi.set(__self__, "dns_record_ip_type", dns_record_ip_type) - pulumi.set(__self__, "private_dns_only_for_inbound_resolver_endpoint", private_dns_only_for_inbound_resolver_endpoint) + GetVpcEndpointDnsOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_record_ip_type=dns_record_ip_type, + private_dns_only_for_inbound_resolver_endpoint=private_dns_only_for_inbound_resolver_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_record_ip_type: Optional[str] = None, + private_dns_only_for_inbound_resolver_endpoint: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_record_ip_type is None and 'dnsRecordIpType' in kwargs: + dns_record_ip_type = kwargs['dnsRecordIpType'] + if dns_record_ip_type is None: + raise TypeError("Missing 'dns_record_ip_type' argument") + if private_dns_only_for_inbound_resolver_endpoint is None and 'privateDnsOnlyForInboundResolverEndpoint' in kwargs: + private_dns_only_for_inbound_resolver_endpoint = kwargs['privateDnsOnlyForInboundResolverEndpoint'] + if private_dns_only_for_inbound_resolver_endpoint is None: + raise TypeError("Missing 'private_dns_only_for_inbound_resolver_endpoint' argument") + + _setter("dns_record_ip_type", dns_record_ip_type) + _setter("private_dns_only_for_inbound_resolver_endpoint", private_dns_only_for_inbound_resolver_endpoint) @property @pulumi.getter(name="dnsRecordIpType") @@ -22257,8 +32373,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC Endpoint will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcEndpointFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22288,8 +32421,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeVpcEndpointServices API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcEndpointServices.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcEndpointServiceFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22319,8 +32469,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22346,8 +32513,25 @@ class GetVpcIamPoolCidrsFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIamPoolCidrsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22369,8 +32553,25 @@ def __init__(__self__, *, :param str cidr: A network CIDR. :param str state: The provisioning state of that CIDR. """ - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "state", state) + GetVpcIamPoolCidrsIpamPoolCidrResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if state is None: + raise TypeError("Missing 'state' argument") + + _setter("cidr", cidr) + _setter("state", state) @property @pulumi.getter @@ -22398,8 +32599,25 @@ def __init__(__self__, *, :param str name: The name of the filter. Filter names are case-sensitive. :param Sequence[str] values: The filter values. Filter values are case-sensitive. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIamPoolFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22427,8 +32645,25 @@ def __init__(__self__, *, :param str name: The name of the filter. Filter names are case-sensitive. :param Sequence[str] values: The filter values. Filter values are case-sensitive. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIamPoolsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22486,26 +32721,135 @@ def __init__(__self__, *, :param Mapping[str, str] tags: Map of tags to assigned to the resource. :param str id: ID of the IPAM pool. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "allocation_default_netmask_length", allocation_default_netmask_length) - pulumi.set(__self__, "allocation_max_netmask_length", allocation_max_netmask_length) - pulumi.set(__self__, "allocation_min_netmask_length", allocation_min_netmask_length) - pulumi.set(__self__, "allocation_resource_tags", allocation_resource_tags) - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "auto_import", auto_import) - pulumi.set(__self__, "aws_service", aws_service) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "ipam_pool_id", ipam_pool_id) - pulumi.set(__self__, "ipam_scope_id", ipam_scope_id) - pulumi.set(__self__, "ipam_scope_type", ipam_scope_type) - pulumi.set(__self__, "locale", locale) - pulumi.set(__self__, "pool_depth", pool_depth) - pulumi.set(__self__, "publicly_advertisable", publicly_advertisable) - pulumi.set(__self__, "source_ipam_pool_id", source_ipam_pool_id) - pulumi.set(__self__, "state", state) - pulumi.set(__self__, "tags", tags) + GetVpcIamPoolsIpamPoolResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + allocation_default_netmask_length=allocation_default_netmask_length, + allocation_max_netmask_length=allocation_max_netmask_length, + allocation_min_netmask_length=allocation_min_netmask_length, + allocation_resource_tags=allocation_resource_tags, + arn=arn, + auto_import=auto_import, + aws_service=aws_service, + description=description, + ipam_pool_id=ipam_pool_id, + ipam_scope_id=ipam_scope_id, + ipam_scope_type=ipam_scope_type, + locale=locale, + pool_depth=pool_depth, + publicly_advertisable=publicly_advertisable, + source_ipam_pool_id=source_ipam_pool_id, + state=state, + tags=tags, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[str] = None, + allocation_default_netmask_length: Optional[int] = None, + allocation_max_netmask_length: Optional[int] = None, + allocation_min_netmask_length: Optional[int] = None, + allocation_resource_tags: Optional[Mapping[str, str]] = None, + arn: Optional[str] = None, + auto_import: Optional[bool] = None, + aws_service: Optional[str] = None, + description: Optional[str] = None, + ipam_pool_id: Optional[str] = None, + ipam_scope_id: Optional[str] = None, + ipam_scope_type: Optional[str] = None, + locale: Optional[str] = None, + pool_depth: Optional[int] = None, + publicly_advertisable: Optional[bool] = None, + source_ipam_pool_id: Optional[str] = None, + state: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if allocation_default_netmask_length is None and 'allocationDefaultNetmaskLength' in kwargs: + allocation_default_netmask_length = kwargs['allocationDefaultNetmaskLength'] + if allocation_default_netmask_length is None: + raise TypeError("Missing 'allocation_default_netmask_length' argument") + if allocation_max_netmask_length is None and 'allocationMaxNetmaskLength' in kwargs: + allocation_max_netmask_length = kwargs['allocationMaxNetmaskLength'] + if allocation_max_netmask_length is None: + raise TypeError("Missing 'allocation_max_netmask_length' argument") + if allocation_min_netmask_length is None and 'allocationMinNetmaskLength' in kwargs: + allocation_min_netmask_length = kwargs['allocationMinNetmaskLength'] + if allocation_min_netmask_length is None: + raise TypeError("Missing 'allocation_min_netmask_length' argument") + if allocation_resource_tags is None and 'allocationResourceTags' in kwargs: + allocation_resource_tags = kwargs['allocationResourceTags'] + if allocation_resource_tags is None: + raise TypeError("Missing 'allocation_resource_tags' argument") + if arn is None: + raise TypeError("Missing 'arn' argument") + if auto_import is None and 'autoImport' in kwargs: + auto_import = kwargs['autoImport'] + if auto_import is None: + raise TypeError("Missing 'auto_import' argument") + if aws_service is None and 'awsService' in kwargs: + aws_service = kwargs['awsService'] + if aws_service is None: + raise TypeError("Missing 'aws_service' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if ipam_pool_id is None and 'ipamPoolId' in kwargs: + ipam_pool_id = kwargs['ipamPoolId'] + if ipam_pool_id is None: + raise TypeError("Missing 'ipam_pool_id' argument") + if ipam_scope_id is None and 'ipamScopeId' in kwargs: + ipam_scope_id = kwargs['ipamScopeId'] + if ipam_scope_id is None: + raise TypeError("Missing 'ipam_scope_id' argument") + if ipam_scope_type is None and 'ipamScopeType' in kwargs: + ipam_scope_type = kwargs['ipamScopeType'] + if ipam_scope_type is None: + raise TypeError("Missing 'ipam_scope_type' argument") + if locale is None: + raise TypeError("Missing 'locale' argument") + if pool_depth is None and 'poolDepth' in kwargs: + pool_depth = kwargs['poolDepth'] + if pool_depth is None: + raise TypeError("Missing 'pool_depth' argument") + if publicly_advertisable is None and 'publiclyAdvertisable' in kwargs: + publicly_advertisable = kwargs['publiclyAdvertisable'] + if publicly_advertisable is None: + raise TypeError("Missing 'publicly_advertisable' argument") + if source_ipam_pool_id is None and 'sourceIpamPoolId' in kwargs: + source_ipam_pool_id = kwargs['sourceIpamPoolId'] + if source_ipam_pool_id is None: + raise TypeError("Missing 'source_ipam_pool_id' argument") + if state is None: + raise TypeError("Missing 'state' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("address_family", address_family) + _setter("allocation_default_netmask_length", allocation_default_netmask_length) + _setter("allocation_max_netmask_length", allocation_max_netmask_length) + _setter("allocation_min_netmask_length", allocation_min_netmask_length) + _setter("allocation_resource_tags", allocation_resource_tags) + _setter("arn", arn) + _setter("auto_import", auto_import) + _setter("aws_service", aws_service) + _setter("description", description) + _setter("ipam_pool_id", ipam_pool_id) + _setter("ipam_scope_id", ipam_scope_id) + _setter("ipam_scope_type", ipam_scope_type) + _setter("locale", locale) + _setter("pool_depth", pool_depth) + _setter("publicly_advertisable", publicly_advertisable) + _setter("source_ipam_pool_id", source_ipam_pool_id) + _setter("state", state) + _setter("tags", tags) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter(name="addressFamily") @@ -22653,8 +32997,25 @@ class GetVpcIpamPoolCidrsFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIpamPoolCidrsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22676,8 +33037,25 @@ def __init__(__self__, *, :param str cidr: A network CIDR. :param str state: The provisioning state of that CIDR. """ - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "state", state) + GetVpcIpamPoolCidrsIpamPoolCidrResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if state is None: + raise TypeError("Missing 'state' argument") + + _setter("cidr", cidr) + _setter("state", state) @property @pulumi.getter @@ -22705,8 +33083,25 @@ def __init__(__self__, *, :param str name: The name of the filter. Filter names are case-sensitive. :param Sequence[str] values: The filter values. Filter values are case-sensitive. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIpamPoolFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22734,8 +33129,25 @@ def __init__(__self__, *, :param str name: The name of the filter. Filter names are case-sensitive. :param Sequence[str] values: The filter values. Filter values are case-sensitive. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcIpamPoolsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -22793,26 +33205,135 @@ def __init__(__self__, *, :param Mapping[str, str] tags: Map of tags to assigned to the resource. :param str id: ID of the IPAM pool. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "allocation_default_netmask_length", allocation_default_netmask_length) - pulumi.set(__self__, "allocation_max_netmask_length", allocation_max_netmask_length) - pulumi.set(__self__, "allocation_min_netmask_length", allocation_min_netmask_length) - pulumi.set(__self__, "allocation_resource_tags", allocation_resource_tags) - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "auto_import", auto_import) - pulumi.set(__self__, "aws_service", aws_service) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "ipam_pool_id", ipam_pool_id) - pulumi.set(__self__, "ipam_scope_id", ipam_scope_id) - pulumi.set(__self__, "ipam_scope_type", ipam_scope_type) - pulumi.set(__self__, "locale", locale) - pulumi.set(__self__, "pool_depth", pool_depth) - pulumi.set(__self__, "publicly_advertisable", publicly_advertisable) - pulumi.set(__self__, "source_ipam_pool_id", source_ipam_pool_id) - pulumi.set(__self__, "state", state) - pulumi.set(__self__, "tags", tags) + GetVpcIpamPoolsIpamPoolResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + allocation_default_netmask_length=allocation_default_netmask_length, + allocation_max_netmask_length=allocation_max_netmask_length, + allocation_min_netmask_length=allocation_min_netmask_length, + allocation_resource_tags=allocation_resource_tags, + arn=arn, + auto_import=auto_import, + aws_service=aws_service, + description=description, + ipam_pool_id=ipam_pool_id, + ipam_scope_id=ipam_scope_id, + ipam_scope_type=ipam_scope_type, + locale=locale, + pool_depth=pool_depth, + publicly_advertisable=publicly_advertisable, + source_ipam_pool_id=source_ipam_pool_id, + state=state, + tags=tags, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[str] = None, + allocation_default_netmask_length: Optional[int] = None, + allocation_max_netmask_length: Optional[int] = None, + allocation_min_netmask_length: Optional[int] = None, + allocation_resource_tags: Optional[Mapping[str, str]] = None, + arn: Optional[str] = None, + auto_import: Optional[bool] = None, + aws_service: Optional[str] = None, + description: Optional[str] = None, + ipam_pool_id: Optional[str] = None, + ipam_scope_id: Optional[str] = None, + ipam_scope_type: Optional[str] = None, + locale: Optional[str] = None, + pool_depth: Optional[int] = None, + publicly_advertisable: Optional[bool] = None, + source_ipam_pool_id: Optional[str] = None, + state: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if allocation_default_netmask_length is None and 'allocationDefaultNetmaskLength' in kwargs: + allocation_default_netmask_length = kwargs['allocationDefaultNetmaskLength'] + if allocation_default_netmask_length is None: + raise TypeError("Missing 'allocation_default_netmask_length' argument") + if allocation_max_netmask_length is None and 'allocationMaxNetmaskLength' in kwargs: + allocation_max_netmask_length = kwargs['allocationMaxNetmaskLength'] + if allocation_max_netmask_length is None: + raise TypeError("Missing 'allocation_max_netmask_length' argument") + if allocation_min_netmask_length is None and 'allocationMinNetmaskLength' in kwargs: + allocation_min_netmask_length = kwargs['allocationMinNetmaskLength'] + if allocation_min_netmask_length is None: + raise TypeError("Missing 'allocation_min_netmask_length' argument") + if allocation_resource_tags is None and 'allocationResourceTags' in kwargs: + allocation_resource_tags = kwargs['allocationResourceTags'] + if allocation_resource_tags is None: + raise TypeError("Missing 'allocation_resource_tags' argument") + if arn is None: + raise TypeError("Missing 'arn' argument") + if auto_import is None and 'autoImport' in kwargs: + auto_import = kwargs['autoImport'] + if auto_import is None: + raise TypeError("Missing 'auto_import' argument") + if aws_service is None and 'awsService' in kwargs: + aws_service = kwargs['awsService'] + if aws_service is None: + raise TypeError("Missing 'aws_service' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if ipam_pool_id is None and 'ipamPoolId' in kwargs: + ipam_pool_id = kwargs['ipamPoolId'] + if ipam_pool_id is None: + raise TypeError("Missing 'ipam_pool_id' argument") + if ipam_scope_id is None and 'ipamScopeId' in kwargs: + ipam_scope_id = kwargs['ipamScopeId'] + if ipam_scope_id is None: + raise TypeError("Missing 'ipam_scope_id' argument") + if ipam_scope_type is None and 'ipamScopeType' in kwargs: + ipam_scope_type = kwargs['ipamScopeType'] + if ipam_scope_type is None: + raise TypeError("Missing 'ipam_scope_type' argument") + if locale is None: + raise TypeError("Missing 'locale' argument") + if pool_depth is None and 'poolDepth' in kwargs: + pool_depth = kwargs['poolDepth'] + if pool_depth is None: + raise TypeError("Missing 'pool_depth' argument") + if publicly_advertisable is None and 'publiclyAdvertisable' in kwargs: + publicly_advertisable = kwargs['publiclyAdvertisable'] + if publicly_advertisable is None: + raise TypeError("Missing 'publicly_advertisable' argument") + if source_ipam_pool_id is None and 'sourceIpamPoolId' in kwargs: + source_ipam_pool_id = kwargs['sourceIpamPoolId'] + if source_ipam_pool_id is None: + raise TypeError("Missing 'source_ipam_pool_id' argument") + if state is None: + raise TypeError("Missing 'state' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("address_family", address_family) + _setter("allocation_default_netmask_length", allocation_default_netmask_length) + _setter("allocation_max_netmask_length", allocation_max_netmask_length) + _setter("allocation_min_netmask_length", allocation_min_netmask_length) + _setter("allocation_resource_tags", allocation_resource_tags) + _setter("arn", arn) + _setter("auto_import", auto_import) + _setter("aws_service", aws_service) + _setter("description", description) + _setter("ipam_pool_id", ipam_pool_id) + _setter("ipam_scope_id", ipam_scope_id) + _setter("ipam_scope_type", ipam_scope_type) + _setter("locale", locale) + _setter("pool_depth", pool_depth) + _setter("publicly_advertisable", publicly_advertisable) + _setter("source_ipam_pool_id", source_ipam_pool_id) + _setter("state", state) + _setter("tags", tags) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter(name="addressFamily") @@ -22962,7 +33483,22 @@ def __init__(__self__, *, """ :param str cidr_block: Primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. """ - pulumi.set(__self__, "cidr_block", cidr_block) + GetVpcPeeringConnectionCidrBlockSetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if cidr_block is None: + raise TypeError("Missing 'cidr_block' argument") + + _setter("cidr_block", cidr_block) @property @pulumi.getter(name="cidrBlock") @@ -22984,8 +33520,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC Peering Connection will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcPeeringConnectionFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -23013,7 +33566,22 @@ def __init__(__self__, *, """ :param str cidr_block: Primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. """ - pulumi.set(__self__, "cidr_block", cidr_block) + GetVpcPeeringConnectionPeerCidrBlockSetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if cidr_block is None: + raise TypeError("Missing 'cidr_block' argument") + + _setter("cidr_block", cidr_block) @property @pulumi.getter(name="cidrBlock") @@ -23035,8 +33603,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC Peering Connection will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcPeeringConnectionsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -23068,8 +33653,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPC will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -23101,8 +33703,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A VPN Gateway will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpnGatewayFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ec2/peering_connection_options.py b/sdk/python/pulumi_aws/ec2/peering_connection_options.py index 87bc9ff37fe..69c18d43132 100644 --- a/sdk/python/pulumi_aws/ec2/peering_connection_options.py +++ b/sdk/python/pulumi_aws/ec2/peering_connection_options.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input['PeeringConnectionOptionsAccepterArgs'] accepter: An optional configuration block that allows for [VPC Peering Connection](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options to be set for the VPC that acceptsthe peering connection (a maximum of one). :param pulumi.Input['PeeringConnectionOptionsRequesterArgs'] requester: A optional configuration block that allows for [VPC Peering Connection](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options to be set for the VPC that requeststhe peering connection (a maximum of one). """ - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + PeeringConnectionOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_peering_connection_id=vpc_peering_connection_id, + accepter=accepter, + requester=requester, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + accepter: Optional[pulumi.Input['PeeringConnectionOptionsAccepterArgs']] = None, + requester: Optional[pulumi.Input['PeeringConnectionOptionsRequesterArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if vpc_peering_connection_id is None: + raise TypeError("Missing 'vpc_peering_connection_id' argument") + + _setter("vpc_peering_connection_id", vpc_peering_connection_id) if accepter is not None: - pulumi.set(__self__, "accepter", accepter) + _setter("accepter", accepter) if requester is not None: - pulumi.set(__self__, "requester", requester) + _setter("requester", requester) @property @pulumi.getter(name="vpcPeeringConnectionId") @@ -80,12 +99,29 @@ def __init__(__self__, *, :param pulumi.Input['PeeringConnectionOptionsRequesterArgs'] requester: A optional configuration block that allows for [VPC Peering Connection](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options to be set for the VPC that requeststhe peering connection (a maximum of one). :param pulumi.Input[str] vpc_peering_connection_id: The ID of the requester VPC peering connection. """ + _PeeringConnectionOptionsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accepter=accepter, + requester=requester, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accepter: Optional[pulumi.Input['PeeringConnectionOptionsAccepterArgs']] = None, + requester: Optional[pulumi.Input['PeeringConnectionOptionsRequesterArgs']] = None, + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if accepter is not None: - pulumi.set(__self__, "accepter", accepter) + _setter("accepter", accepter) if requester is not None: - pulumi.set(__self__, "requester", requester) + _setter("requester", requester) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter @@ -339,6 +375,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PeeringConnectionOptionsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -356,7 +396,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = PeeringConnectionOptionsArgs.__new__(PeeringConnectionOptionsArgs) + accepter = _utilities.configure(accepter, PeeringConnectionOptionsAccepterArgs, True) __props__.__dict__["accepter"] = accepter + requester = _utilities.configure(requester, PeeringConnectionOptionsRequesterArgs, True) __props__.__dict__["requester"] = requester if vpc_peering_connection_id is None and not opts.urn: raise TypeError("Missing required property 'vpc_peering_connection_id'") diff --git a/sdk/python/pulumi_aws/ec2/placement_group.py b/sdk/python/pulumi_aws/ec2/placement_group.py index 21d6491206f..0244f92c3df 100644 --- a/sdk/python/pulumi_aws/ec2/placement_group.py +++ b/sdk/python/pulumi_aws/ec2/placement_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -31,15 +31,40 @@ def __init__(__self__, *, when the `strategy` is set to `spread`. Can be `host` or `rack`. `host` can only be used for Outpost placement groups. Defaults to `rack`. :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. """ - pulumi.set(__self__, "strategy", strategy) + PlacementGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + strategy=strategy, + name=name, + partition_count=partition_count, + spread_level=spread_level, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + strategy: Optional[pulumi.Input[Union[str, 'PlacementStrategy']]] = None, + name: Optional[pulumi.Input[str]] = None, + partition_count: Optional[pulumi.Input[int]] = None, + spread_level: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if strategy is None: + raise TypeError("Missing 'strategy' argument") + if partition_count is None and 'partitionCount' in kwargs: + partition_count = kwargs['partitionCount'] + if spread_level is None and 'spreadLevel' in kwargs: + spread_level = kwargs['spreadLevel'] + + _setter("strategy", strategy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if partition_count is not None: - pulumi.set(__self__, "partition_count", partition_count) + _setter("partition_count", partition_count) if spread_level is not None: - pulumi.set(__self__, "spread_level", spread_level) + _setter("spread_level", spread_level) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -130,25 +155,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _PlacementGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + partition_count=partition_count, + placement_group_id=placement_group_id, + spread_level=spread_level, + strategy=strategy, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + partition_count: Optional[pulumi.Input[int]] = None, + placement_group_id: Optional[pulumi.Input[str]] = None, + spread_level: Optional[pulumi.Input[str]] = None, + strategy: Optional[pulumi.Input[Union[str, 'PlacementStrategy']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if partition_count is None and 'partitionCount' in kwargs: + partition_count = kwargs['partitionCount'] + if placement_group_id is None and 'placementGroupId' in kwargs: + placement_group_id = kwargs['placementGroupId'] + if spread_level is None and 'spreadLevel' in kwargs: + spread_level = kwargs['spreadLevel'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if partition_count is not None: - pulumi.set(__self__, "partition_count", partition_count) + _setter("partition_count", partition_count) if placement_group_id is not None: - pulumi.set(__self__, "placement_group_id", placement_group_id) + _setter("placement_group_id", placement_group_id) if spread_level is not None: - pulumi.set(__self__, "spread_level", spread_level) + _setter("spread_level", spread_level) if strategy is not None: - pulumi.set(__self__, "strategy", strategy) + _setter("strategy", strategy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -333,6 +391,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PlacementGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/proxy_protocol_policy.py b/sdk/python/pulumi_aws/ec2/proxy_protocol_policy.py index e2e982aae5c..582d7c5538b 100644 --- a/sdk/python/pulumi_aws/ec2/proxy_protocol_policy.py +++ b/sdk/python/pulumi_aws/ec2/proxy_protocol_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProxyProtocolPolicyArgs', 'ProxyProtocolPolicy'] @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] load_balancer: The load balancer to which the policy should be attached. """ - pulumi.set(__self__, "instance_ports", instance_ports) - pulumi.set(__self__, "load_balancer", load_balancer) + ProxyProtocolPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_ports=instance_ports, + load_balancer=load_balancer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + load_balancer: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_ports is None and 'instancePorts' in kwargs: + instance_ports = kwargs['instancePorts'] + if instance_ports is None: + raise TypeError("Missing 'instance_ports' argument") + if load_balancer is None and 'loadBalancer' in kwargs: + load_balancer = kwargs['loadBalancer'] + if load_balancer is None: + raise TypeError("Missing 'load_balancer' argument") + + _setter("instance_ports", instance_ports) + _setter("load_balancer", load_balancer) @property @pulumi.getter(name="instancePorts") @@ -65,10 +86,27 @@ def __init__(__self__, *, :param pulumi.Input[str] load_balancer: The load balancer to which the policy should be attached. """ + _ProxyProtocolPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_ports=instance_ports, + load_balancer=load_balancer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + load_balancer: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_ports is None and 'instancePorts' in kwargs: + instance_ports = kwargs['instancePorts'] + if load_balancer is None and 'loadBalancer' in kwargs: + load_balancer = kwargs['loadBalancer'] + if instance_ports is not None: - pulumi.set(__self__, "instance_ports", instance_ports) + _setter("instance_ports", instance_ports) if load_balancer is not None: - pulumi.set(__self__, "load_balancer", load_balancer) + _setter("load_balancer", load_balancer) @property @pulumi.getter(name="instancePorts") @@ -194,6 +232,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProxyProtocolPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/route.py b/sdk/python/pulumi_aws/ec2/route.py index 78c8142bfb6..8383f9c60ae 100644 --- a/sdk/python/pulumi_aws/ec2/route.py +++ b/sdk/python/pulumi_aws/ec2/route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RouteArgs', 'Route'] @@ -51,33 +51,100 @@ def __init__(__self__, *, Note that the default route, mapping the VPC's CIDR block to "local", is created implicitly and cannot be specified. """ - pulumi.set(__self__, "route_table_id", route_table_id) + RouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + route_table_id=route_table_id, + carrier_gateway_id=carrier_gateway_id, + core_network_arn=core_network_arn, + destination_cidr_block=destination_cidr_block, + destination_ipv6_cidr_block=destination_ipv6_cidr_block, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_gateway_id=egress_only_gateway_id, + gateway_id=gateway_id, + local_gateway_id=local_gateway_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + transit_gateway_id=transit_gateway_id, + vpc_endpoint_id=vpc_endpoint_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route_table_id: Optional[pulumi.Input[str]] = None, + carrier_gateway_id: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + destination_cidr_block: Optional[pulumi.Input[str]] = None, + destination_ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + destination_prefix_list_id: Optional[pulumi.Input[str]] = None, + egress_only_gateway_id: Optional[pulumi.Input[str]] = None, + gateway_id: Optional[pulumi.Input[str]] = None, + local_gateway_id: Optional[pulumi.Input[str]] = None, + nat_gateway_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if route_table_id is None: + raise TypeError("Missing 'route_table_id' argument") + if carrier_gateway_id is None and 'carrierGatewayId' in kwargs: + carrier_gateway_id = kwargs['carrierGatewayId'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_ipv6_cidr_block is None and 'destinationIpv6CidrBlock' in kwargs: + destination_ipv6_cidr_block = kwargs['destinationIpv6CidrBlock'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_gateway_id is None and 'egressOnlyGatewayId' in kwargs: + egress_only_gateway_id = kwargs['egressOnlyGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if local_gateway_id is None and 'localGatewayId' in kwargs: + local_gateway_id = kwargs['localGatewayId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + + _setter("route_table_id", route_table_id) if carrier_gateway_id is not None: - pulumi.set(__self__, "carrier_gateway_id", carrier_gateway_id) + _setter("carrier_gateway_id", carrier_gateway_id) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if destination_cidr_block is not None: - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) + _setter("destination_cidr_block", destination_cidr_block) if destination_ipv6_cidr_block is not None: - pulumi.set(__self__, "destination_ipv6_cidr_block", destination_ipv6_cidr_block) + _setter("destination_ipv6_cidr_block", destination_ipv6_cidr_block) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_gateway_id is not None: - pulumi.set(__self__, "egress_only_gateway_id", egress_only_gateway_id) + _setter("egress_only_gateway_id", egress_only_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if local_gateway_id is not None: - pulumi.set(__self__, "local_gateway_id", local_gateway_id) + _setter("local_gateway_id", local_gateway_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="routeTableId") @@ -302,42 +369,119 @@ def __init__(__self__, *, Note that the default route, mapping the VPC's CIDR block to "local", is created implicitly and cannot be specified. """ + _RouteState._configure( + lambda key, value: pulumi.set(__self__, key, value), + carrier_gateway_id=carrier_gateway_id, + core_network_arn=core_network_arn, + destination_cidr_block=destination_cidr_block, + destination_ipv6_cidr_block=destination_ipv6_cidr_block, + destination_prefix_list_id=destination_prefix_list_id, + egress_only_gateway_id=egress_only_gateway_id, + gateway_id=gateway_id, + instance_id=instance_id, + instance_owner_id=instance_owner_id, + local_gateway_id=local_gateway_id, + nat_gateway_id=nat_gateway_id, + network_interface_id=network_interface_id, + origin=origin, + route_table_id=route_table_id, + state=state, + transit_gateway_id=transit_gateway_id, + vpc_endpoint_id=vpc_endpoint_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + carrier_gateway_id: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + destination_cidr_block: Optional[pulumi.Input[str]] = None, + destination_ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + destination_prefix_list_id: Optional[pulumi.Input[str]] = None, + egress_only_gateway_id: Optional[pulumi.Input[str]] = None, + gateway_id: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + instance_owner_id: Optional[pulumi.Input[str]] = None, + local_gateway_id: Optional[pulumi.Input[str]] = None, + nat_gateway_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + origin: Optional[pulumi.Input[str]] = None, + route_table_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if carrier_gateway_id is None and 'carrierGatewayId' in kwargs: + carrier_gateway_id = kwargs['carrierGatewayId'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_ipv6_cidr_block is None and 'destinationIpv6CidrBlock' in kwargs: + destination_ipv6_cidr_block = kwargs['destinationIpv6CidrBlock'] + if destination_prefix_list_id is None and 'destinationPrefixListId' in kwargs: + destination_prefix_list_id = kwargs['destinationPrefixListId'] + if egress_only_gateway_id is None and 'egressOnlyGatewayId' in kwargs: + egress_only_gateway_id = kwargs['egressOnlyGatewayId'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_owner_id is None and 'instanceOwnerId' in kwargs: + instance_owner_id = kwargs['instanceOwnerId'] + if local_gateway_id is None and 'localGatewayId' in kwargs: + local_gateway_id = kwargs['localGatewayId'] + if nat_gateway_id is None and 'natGatewayId' in kwargs: + nat_gateway_id = kwargs['natGatewayId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if carrier_gateway_id is not None: - pulumi.set(__self__, "carrier_gateway_id", carrier_gateway_id) + _setter("carrier_gateway_id", carrier_gateway_id) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if destination_cidr_block is not None: - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) + _setter("destination_cidr_block", destination_cidr_block) if destination_ipv6_cidr_block is not None: - pulumi.set(__self__, "destination_ipv6_cidr_block", destination_ipv6_cidr_block) + _setter("destination_ipv6_cidr_block", destination_ipv6_cidr_block) if destination_prefix_list_id is not None: - pulumi.set(__self__, "destination_prefix_list_id", destination_prefix_list_id) + _setter("destination_prefix_list_id", destination_prefix_list_id) if egress_only_gateway_id is not None: - pulumi.set(__self__, "egress_only_gateway_id", egress_only_gateway_id) + _setter("egress_only_gateway_id", egress_only_gateway_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if instance_owner_id is not None: - pulumi.set(__self__, "instance_owner_id", instance_owner_id) + _setter("instance_owner_id", instance_owner_id) if local_gateway_id is not None: - pulumi.set(__self__, "local_gateway_id", local_gateway_id) + _setter("local_gateway_id", local_gateway_id) if nat_gateway_id is not None: - pulumi.set(__self__, "nat_gateway_id", nat_gateway_id) + _setter("nat_gateway_id", nat_gateway_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if origin is not None: - pulumi.set(__self__, "origin", origin) + _setter("origin", origin) if route_table_id is not None: - pulumi.set(__self__, "route_table_id", route_table_id) + _setter("route_table_id", route_table_id) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="carrierGatewayId") @@ -739,6 +883,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/route_table.py b/sdk/python/pulumi_aws/ec2/route_table.py index 84ceb09030c..d913284e5a6 100644 --- a/sdk/python/pulumi_aws/ec2/route_table.py +++ b/sdk/python/pulumi_aws/ec2/route_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -28,13 +28,36 @@ def __init__(__self__, *, This means that omitting this argument is interpreted as ignoring any existing routes. To remove all managed routes an empty list should be specified. See the example above. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "vpc_id", vpc_id) + RouteTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + propagating_vgws=propagating_vgws, + routes=routes, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + propagating_vgws: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + routes: Optional[pulumi.Input[Sequence[pulumi.Input['RouteTableRouteArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if propagating_vgws is None and 'propagatingVgws' in kwargs: + propagating_vgws = kwargs['propagatingVgws'] + + _setter("vpc_id", vpc_id) if propagating_vgws is not None: - pulumi.set(__self__, "propagating_vgws", propagating_vgws) + _setter("propagating_vgws", propagating_vgws) if routes is not None: - pulumi.set(__self__, "routes", routes) + _setter("routes", routes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="vpcId") @@ -107,23 +130,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The VPC ID. """ + _RouteTableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + owner_id=owner_id, + propagating_vgws=propagating_vgws, + routes=routes, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + propagating_vgws: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + routes: Optional[pulumi.Input[Sequence[pulumi.Input['RouteTableRouteArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if propagating_vgws is None and 'propagatingVgws' in kwargs: + propagating_vgws = kwargs['propagatingVgws'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if propagating_vgws is not None: - pulumi.set(__self__, "propagating_vgws", propagating_vgws) + _setter("propagating_vgws", propagating_vgws) if routes is not None: - pulumi.set(__self__, "routes", routes) + _setter("routes", routes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -462,6 +516,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteTableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/route_table_association.py b/sdk/python/pulumi_aws/ec2/route_table_association.py index 02171f23c8e..6e6aef3c984 100644 --- a/sdk/python/pulumi_aws/ec2/route_table_association.py +++ b/sdk/python/pulumi_aws/ec2/route_table_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RouteTableAssociationArgs', 'RouteTableAssociation'] @@ -23,11 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[str] gateway_id: The gateway ID to create an association. Conflicts with `subnet_id`. :param pulumi.Input[str] subnet_id: The subnet ID to create an association. Conflicts with `gateway_id`. """ - pulumi.set(__self__, "route_table_id", route_table_id) + RouteTableAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + route_table_id=route_table_id, + gateway_id=gateway_id, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route_table_id: Optional[pulumi.Input[str]] = None, + gateway_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if route_table_id is None: + raise TypeError("Missing 'route_table_id' argument") + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + + _setter("route_table_id", route_table_id) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="routeTableId") @@ -78,12 +101,33 @@ def __init__(__self__, *, :param pulumi.Input[str] route_table_id: The ID of the routing table to associate with. :param pulumi.Input[str] subnet_id: The subnet ID to create an association. Conflicts with `gateway_id`. """ + _RouteTableAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + gateway_id=gateway_id, + route_table_id=route_table_id, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gateway_id: Optional[pulumi.Input[str]] = None, + route_table_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if route_table_id is not None: - pulumi.set(__self__, "route_table_id", route_table_id) + _setter("route_table_id", route_table_id) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="gatewayId") @@ -235,6 +279,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteTableAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/security_group.py b/sdk/python/pulumi_aws/ec2/security_group.py index 639bfc25c64..2c29e7cdabe 100644 --- a/sdk/python/pulumi_aws/ec2/security_group.py +++ b/sdk/python/pulumi_aws/ec2/security_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,24 +35,55 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] vpc_id: VPC ID. Defaults to the region's default VPC. """ + SecurityGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + egress=egress, + ingress=ingress, + name=name, + name_prefix=name_prefix, + revoke_rules_on_delete=revoke_rules_on_delete, + tags=tags, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityGroupEgressArgs']]]] = None, + ingress: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityGroupIngressArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + revoke_rules_on_delete: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if revoke_rules_on_delete is None and 'revokeRulesOnDelete' in kwargs: + revoke_rules_on_delete = kwargs['revokeRulesOnDelete'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if ingress is not None: - pulumi.set(__self__, "ingress", ingress) + _setter("ingress", ingress) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if revoke_rules_on_delete is not None: - pulumi.set(__self__, "revoke_rules_on_delete", revoke_rules_on_delete) + _setter("revoke_rules_on_delete", revoke_rules_on_delete) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -179,33 +210,74 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: VPC ID. Defaults to the region's default VPC. """ + _SecurityGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + egress=egress, + ingress=ingress, + name=name, + name_prefix=name_prefix, + owner_id=owner_id, + revoke_rules_on_delete=revoke_rules_on_delete, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + egress: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityGroupEgressArgs']]]] = None, + ingress: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityGroupIngressArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + revoke_rules_on_delete: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if revoke_rules_on_delete is None and 'revokeRulesOnDelete' in kwargs: + revoke_rules_on_delete = kwargs['revokeRulesOnDelete'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if egress is not None: - pulumi.set(__self__, "egress", egress) + _setter("egress", egress) if ingress is not None: - pulumi.set(__self__, "ingress", ingress) + _setter("ingress", ingress) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if revoke_rules_on_delete is not None: - pulumi.set(__self__, "revoke_rules_on_delete", revoke_rules_on_delete) + _setter("revoke_rules_on_delete", revoke_rules_on_delete) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -686,6 +758,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecurityGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/security_group_association.py b/sdk/python/pulumi_aws/ec2/security_group_association.py index df1c580c6ea..58a4f8732c3 100644 --- a/sdk/python/pulumi_aws/ec2/security_group_association.py +++ b/sdk/python/pulumi_aws/ec2/security_group_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SecurityGroupAssociationArgs', 'SecurityGroupAssociation'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: The ID of the VPC endpoint with which the security group will be associated. :param pulumi.Input[bool] replace_default_association: Whether this association should replace the association with the VPC's default security group that is created when no security groups are specified during VPC endpoint creation. At most 1 association per-VPC endpoint should be configured with `replace_default_association = true`. """ - pulumi.set(__self__, "security_group_id", security_group_id) - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + SecurityGroupAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_id=security_group_id, + vpc_endpoint_id=vpc_endpoint_id, + replace_default_association=replace_default_association, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + replace_default_association: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_id is None: + raise TypeError("Missing 'security_group_id' argument") + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_id is None: + raise TypeError("Missing 'vpc_endpoint_id' argument") + if replace_default_association is None and 'replaceDefaultAssociation' in kwargs: + replace_default_association = kwargs['replaceDefaultAssociation'] + + _setter("security_group_id", security_group_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if replace_default_association is not None: - pulumi.set(__self__, "replace_default_association", replace_default_association) + _setter("replace_default_association", replace_default_association) @property @pulumi.getter(name="securityGroupId") @@ -77,12 +102,33 @@ def __init__(__self__, *, :param pulumi.Input[str] security_group_id: The ID of the security group to be associated with the VPC endpoint. :param pulumi.Input[str] vpc_endpoint_id: The ID of the VPC endpoint with which the security group will be associated. """ + _SecurityGroupAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + replace_default_association=replace_default_association, + security_group_id=security_group_id, + vpc_endpoint_id=vpc_endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replace_default_association: Optional[pulumi.Input[bool]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replace_default_association is None and 'replaceDefaultAssociation' in kwargs: + replace_default_association = kwargs['replaceDefaultAssociation'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if replace_default_association is not None: - pulumi.set(__self__, "replace_default_association", replace_default_association) + _setter("replace_default_association", replace_default_association) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) @property @pulumi.getter(name="replaceDefaultAssociation") @@ -196,6 +242,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecurityGroupAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/security_group_rule.py b/sdk/python/pulumi_aws/ec2/security_group_rule.py index ea06e0c8d61..94f4004c97b 100644 --- a/sdk/python/pulumi_aws/ec2/security_group_rule.py +++ b/sdk/python/pulumi_aws/ec2/security_group_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -45,23 +45,78 @@ def __init__(__self__, *, :param pulumi.Input[bool] self: Whether the security group itself will be added as a source to this ingress rule. Cannot be specified with `cidr_blocks`, `ipv6_cidr_blocks`, or `source_security_group_id`. :param pulumi.Input[str] source_security_group_id: Security group id to allow access to/from, depending on the `type`. Cannot be specified with `cidr_blocks`, `ipv6_cidr_blocks`, or `self`. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "security_group_id", security_group_id) - pulumi.set(__self__, "to_port", to_port) - pulumi.set(__self__, "type", type) + SecurityGroupRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + security_group_id=security_group_id, + to_port=to_port, + type=type, + cidr_blocks=cidr_blocks, + description=description, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + self=self, + source_security_group_id=source_security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[Union[str, 'ProtocolType']]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + to_port: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + ipv6_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + prefix_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self: Optional[pulumi.Input[bool]] = None, + source_security_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_id is None: + raise TypeError("Missing 'security_group_id' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if source_security_group_id is None and 'sourceSecurityGroupId' in kwargs: + source_security_group_id = kwargs['sourceSecurityGroupId'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("security_group_id", security_group_id) + _setter("to_port", to_port) + _setter("type", type) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) if source_security_group_id is not None: - pulumi.set(__self__, "source_security_group_id", source_security_group_id) + _setter("source_security_group_id", source_security_group_id) @property @pulumi.getter(name="fromPort") @@ -236,30 +291,79 @@ def __init__(__self__, *, > **Note** Although `cidr_blocks`, `ipv6_cidr_blocks`, `prefix_list_ids`, and `source_security_group_id` are all marked as optional, you _must_ provide one of them in order to configure the source of the traffic. """ + _SecurityGroupRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_blocks=cidr_blocks, + description=description, + from_port=from_port, + ipv6_cidr_blocks=ipv6_cidr_blocks, + prefix_list_ids=prefix_list_ids, + protocol=protocol, + security_group_id=security_group_id, + security_group_rule_id=security_group_rule_id, + self=self, + source_security_group_id=source_security_group_id, + to_port=to_port, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + from_port: Optional[pulumi.Input[int]] = None, + ipv6_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + prefix_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + protocol: Optional[pulumi.Input[Union[str, 'ProtocolType']]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + security_group_rule_id: Optional[pulumi.Input[str]] = None, + self: Optional[pulumi.Input[bool]] = None, + source_security_group_id: Optional[pulumi.Input[str]] = None, + to_port: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if ipv6_cidr_blocks is None and 'ipv6CidrBlocks' in kwargs: + ipv6_cidr_blocks = kwargs['ipv6CidrBlocks'] + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_rule_id is None and 'securityGroupRuleId' in kwargs: + security_group_rule_id = kwargs['securityGroupRuleId'] + if source_security_group_id is None and 'sourceSecurityGroupId' in kwargs: + source_security_group_id = kwargs['sourceSecurityGroupId'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if ipv6_cidr_blocks is not None: - pulumi.set(__self__, "ipv6_cidr_blocks", ipv6_cidr_blocks) + _setter("ipv6_cidr_blocks", ipv6_cidr_blocks) if prefix_list_ids is not None: - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) + _setter("prefix_list_ids", prefix_list_ids) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) if security_group_rule_id is not None: - pulumi.set(__self__, "security_group_rule_id", security_group_rule_id) + _setter("security_group_rule_id", security_group_rule_id) if self is not None: - pulumi.set(__self__, "self", self) + _setter("self", self) if source_security_group_id is not None: - pulumi.set(__self__, "source_security_group_id", source_security_group_id) + _setter("source_security_group_id", source_security_group_id) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="cidrBlocks") @@ -717,6 +821,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecurityGroupRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/serial_console_access.py b/sdk/python/pulumi_aws/ec2/serial_console_access.py index 81af4416eee..8672c310c77 100644 --- a/sdk/python/pulumi_aws/ec2/serial_console_access.py +++ b/sdk/python/pulumi_aws/ec2/serial_console_access.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SerialConsoleAccessArgs', 'SerialConsoleAccess'] @@ -19,8 +19,19 @@ def __init__(__self__, *, The set of arguments for constructing a SerialConsoleAccess resource. :param pulumi.Input[bool] enabled: Whether or not serial console access is enabled. Valid values are `true` or `false`. Defaults to `true`. """ + SerialConsoleAccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -43,8 +54,19 @@ def __init__(__self__, *, Input properties used for looking up and filtering SerialConsoleAccess resources. :param pulumi.Input[bool] enabled: Whether or not serial console access is enabled. Valid values are `true` or `false`. Defaults to `true`. """ + _SerialConsoleAccessState._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -130,6 +152,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SerialConsoleAccessArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/snapshot_create_volume_permission.py b/sdk/python/pulumi_aws/ec2/snapshot_create_volume_permission.py index 48ef4ee964f..11619d56a38 100644 --- a/sdk/python/pulumi_aws/ec2/snapshot_create_volume_permission.py +++ b/sdk/python/pulumi_aws/ec2/snapshot_create_volume_permission.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SnapshotCreateVolumePermissionArgs', 'SnapshotCreateVolumePermission'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: An AWS Account ID to add create volume permissions. The AWS Account cannot be the snapshot's owner :param pulumi.Input[str] snapshot_id: A snapshot ID """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "snapshot_id", snapshot_id) + SnapshotCreateVolumePermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + snapshot_id=snapshot_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if snapshot_id is None: + raise TypeError("Missing 'snapshot_id' argument") + + _setter("account_id", account_id) + _setter("snapshot_id", snapshot_id) @property @pulumi.getter(name="accountId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: An AWS Account ID to add create volume permissions. The AWS Account cannot be the snapshot's owner :param pulumi.Input[str] snapshot_id: A snapshot ID """ + _SnapshotCreateVolumePermissionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + snapshot_id=snapshot_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) @property @pulumi.getter(name="accountId") @@ -154,6 +192,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotCreateVolumePermissionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/spot_datafeed_subscription.py b/sdk/python/pulumi_aws/ec2/spot_datafeed_subscription.py index 2c754a1bded..f57ed711764 100644 --- a/sdk/python/pulumi_aws/ec2/spot_datafeed_subscription.py +++ b/sdk/python/pulumi_aws/ec2/spot_datafeed_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SpotDatafeedSubscriptionArgs', 'SpotDatafeedSubscription'] @@ -21,9 +21,24 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: The Amazon S3 bucket in which to store the Spot instance data feed. :param pulumi.Input[str] prefix: Path of folder inside bucket to place spot pricing data. """ - pulumi.set(__self__, "bucket", bucket) + SpotDatafeedSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -60,10 +75,23 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: The Amazon S3 bucket in which to store the Spot instance data feed. :param pulumi.Input[str] prefix: Path of folder inside bucket to place spot pricing data. """ + _SpotDatafeedSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -171,6 +199,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SpotDatafeedSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/spot_fleet_request.py b/sdk/python/pulumi_aws/ec2/spot_fleet_request.py index 2b6329ecb5d..82e9c6d05b9 100644 --- a/sdk/python/pulumi_aws/ec2/spot_fleet_request.py +++ b/sdk/python/pulumi_aws/ec2/spot_fleet_request.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -97,54 +97,163 @@ def __init__(__self__, *, wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached. """ - pulumi.set(__self__, "iam_fleet_role", iam_fleet_role) - pulumi.set(__self__, "target_capacity", target_capacity) + SpotFleetRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam_fleet_role=iam_fleet_role, + target_capacity=target_capacity, + allocation_strategy=allocation_strategy, + context=context, + excess_capacity_termination_policy=excess_capacity_termination_policy, + fleet_type=fleet_type, + instance_interruption_behaviour=instance_interruption_behaviour, + instance_pools_to_use_count=instance_pools_to_use_count, + launch_specifications=launch_specifications, + launch_template_configs=launch_template_configs, + load_balancers=load_balancers, + on_demand_allocation_strategy=on_demand_allocation_strategy, + on_demand_max_total_price=on_demand_max_total_price, + on_demand_target_capacity=on_demand_target_capacity, + replace_unhealthy_instances=replace_unhealthy_instances, + spot_maintenance_strategies=spot_maintenance_strategies, + spot_price=spot_price, + tags=tags, + target_capacity_unit_type=target_capacity_unit_type, + target_group_arns=target_group_arns, + terminate_instances_on_delete=terminate_instances_on_delete, + terminate_instances_with_expiration=terminate_instances_with_expiration, + valid_from=valid_from, + valid_until=valid_until, + wait_for_fulfillment=wait_for_fulfillment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam_fleet_role: Optional[pulumi.Input[str]] = None, + target_capacity: Optional[pulumi.Input[int]] = None, + allocation_strategy: Optional[pulumi.Input[str]] = None, + context: Optional[pulumi.Input[str]] = None, + excess_capacity_termination_policy: Optional[pulumi.Input[str]] = None, + fleet_type: Optional[pulumi.Input[str]] = None, + instance_interruption_behaviour: Optional[pulumi.Input[str]] = None, + instance_pools_to_use_count: Optional[pulumi.Input[int]] = None, + launch_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['SpotFleetRequestLaunchSpecificationArgs']]]] = None, + launch_template_configs: Optional[pulumi.Input[Sequence[pulumi.Input['SpotFleetRequestLaunchTemplateConfigArgs']]]] = None, + load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + on_demand_allocation_strategy: Optional[pulumi.Input[str]] = None, + on_demand_max_total_price: Optional[pulumi.Input[str]] = None, + on_demand_target_capacity: Optional[pulumi.Input[int]] = None, + replace_unhealthy_instances: Optional[pulumi.Input[bool]] = None, + spot_maintenance_strategies: Optional[pulumi.Input['SpotFleetRequestSpotMaintenanceStrategiesArgs']] = None, + spot_price: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_capacity_unit_type: Optional[pulumi.Input[str]] = None, + target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + terminate_instances_on_delete: Optional[pulumi.Input[str]] = None, + terminate_instances_with_expiration: Optional[pulumi.Input[bool]] = None, + valid_from: Optional[pulumi.Input[str]] = None, + valid_until: Optional[pulumi.Input[str]] = None, + wait_for_fulfillment: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam_fleet_role is None and 'iamFleetRole' in kwargs: + iam_fleet_role = kwargs['iamFleetRole'] + if iam_fleet_role is None: + raise TypeError("Missing 'iam_fleet_role' argument") + if target_capacity is None and 'targetCapacity' in kwargs: + target_capacity = kwargs['targetCapacity'] + if target_capacity is None: + raise TypeError("Missing 'target_capacity' argument") + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if excess_capacity_termination_policy is None and 'excessCapacityTerminationPolicy' in kwargs: + excess_capacity_termination_policy = kwargs['excessCapacityTerminationPolicy'] + if fleet_type is None and 'fleetType' in kwargs: + fleet_type = kwargs['fleetType'] + if instance_interruption_behaviour is None and 'instanceInterruptionBehaviour' in kwargs: + instance_interruption_behaviour = kwargs['instanceInterruptionBehaviour'] + if instance_pools_to_use_count is None and 'instancePoolsToUseCount' in kwargs: + instance_pools_to_use_count = kwargs['instancePoolsToUseCount'] + if launch_specifications is None and 'launchSpecifications' in kwargs: + launch_specifications = kwargs['launchSpecifications'] + if launch_template_configs is None and 'launchTemplateConfigs' in kwargs: + launch_template_configs = kwargs['launchTemplateConfigs'] + if load_balancers is None and 'loadBalancers' in kwargs: + load_balancers = kwargs['loadBalancers'] + if on_demand_allocation_strategy is None and 'onDemandAllocationStrategy' in kwargs: + on_demand_allocation_strategy = kwargs['onDemandAllocationStrategy'] + if on_demand_max_total_price is None and 'onDemandMaxTotalPrice' in kwargs: + on_demand_max_total_price = kwargs['onDemandMaxTotalPrice'] + if on_demand_target_capacity is None and 'onDemandTargetCapacity' in kwargs: + on_demand_target_capacity = kwargs['onDemandTargetCapacity'] + if replace_unhealthy_instances is None and 'replaceUnhealthyInstances' in kwargs: + replace_unhealthy_instances = kwargs['replaceUnhealthyInstances'] + if spot_maintenance_strategies is None and 'spotMaintenanceStrategies' in kwargs: + spot_maintenance_strategies = kwargs['spotMaintenanceStrategies'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if target_capacity_unit_type is None and 'targetCapacityUnitType' in kwargs: + target_capacity_unit_type = kwargs['targetCapacityUnitType'] + if target_group_arns is None and 'targetGroupArns' in kwargs: + target_group_arns = kwargs['targetGroupArns'] + if terminate_instances_on_delete is None and 'terminateInstancesOnDelete' in kwargs: + terminate_instances_on_delete = kwargs['terminateInstancesOnDelete'] + if terminate_instances_with_expiration is None and 'terminateInstancesWithExpiration' in kwargs: + terminate_instances_with_expiration = kwargs['terminateInstancesWithExpiration'] + if valid_from is None and 'validFrom' in kwargs: + valid_from = kwargs['validFrom'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if wait_for_fulfillment is None and 'waitForFulfillment' in kwargs: + wait_for_fulfillment = kwargs['waitForFulfillment'] + + _setter("iam_fleet_role", iam_fleet_role) + _setter("target_capacity", target_capacity) if allocation_strategy is not None: - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + _setter("allocation_strategy", allocation_strategy) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if excess_capacity_termination_policy is not None: - pulumi.set(__self__, "excess_capacity_termination_policy", excess_capacity_termination_policy) + _setter("excess_capacity_termination_policy", excess_capacity_termination_policy) if fleet_type is not None: - pulumi.set(__self__, "fleet_type", fleet_type) + _setter("fleet_type", fleet_type) if instance_interruption_behaviour is not None: - pulumi.set(__self__, "instance_interruption_behaviour", instance_interruption_behaviour) + _setter("instance_interruption_behaviour", instance_interruption_behaviour) if instance_pools_to_use_count is not None: - pulumi.set(__self__, "instance_pools_to_use_count", instance_pools_to_use_count) + _setter("instance_pools_to_use_count", instance_pools_to_use_count) if launch_specifications is not None: - pulumi.set(__self__, "launch_specifications", launch_specifications) + _setter("launch_specifications", launch_specifications) if launch_template_configs is not None: - pulumi.set(__self__, "launch_template_configs", launch_template_configs) + _setter("launch_template_configs", launch_template_configs) if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) + _setter("load_balancers", load_balancers) if on_demand_allocation_strategy is not None: - pulumi.set(__self__, "on_demand_allocation_strategy", on_demand_allocation_strategy) + _setter("on_demand_allocation_strategy", on_demand_allocation_strategy) if on_demand_max_total_price is not None: - pulumi.set(__self__, "on_demand_max_total_price", on_demand_max_total_price) + _setter("on_demand_max_total_price", on_demand_max_total_price) if on_demand_target_capacity is not None: - pulumi.set(__self__, "on_demand_target_capacity", on_demand_target_capacity) + _setter("on_demand_target_capacity", on_demand_target_capacity) if replace_unhealthy_instances is not None: - pulumi.set(__self__, "replace_unhealthy_instances", replace_unhealthy_instances) + _setter("replace_unhealthy_instances", replace_unhealthy_instances) if spot_maintenance_strategies is not None: - pulumi.set(__self__, "spot_maintenance_strategies", spot_maintenance_strategies) + _setter("spot_maintenance_strategies", spot_maintenance_strategies) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_capacity_unit_type is not None: - pulumi.set(__self__, "target_capacity_unit_type", target_capacity_unit_type) + _setter("target_capacity_unit_type", target_capacity_unit_type) if target_group_arns is not None: - pulumi.set(__self__, "target_group_arns", target_group_arns) + _setter("target_group_arns", target_group_arns) if terminate_instances_on_delete is not None: - pulumi.set(__self__, "terminate_instances_on_delete", terminate_instances_on_delete) + _setter("terminate_instances_on_delete", terminate_instances_on_delete) if terminate_instances_with_expiration is not None: - pulumi.set(__self__, "terminate_instances_with_expiration", terminate_instances_with_expiration) + _setter("terminate_instances_with_expiration", terminate_instances_with_expiration) if valid_from is not None: - pulumi.set(__self__, "valid_from", valid_from) + _setter("valid_from", valid_from) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) if wait_for_fulfillment is not None: - pulumi.set(__self__, "wait_for_fulfillment", wait_for_fulfillment) + _setter("wait_for_fulfillment", wait_for_fulfillment) @property @pulumi.getter(name="iamFleetRole") @@ -564,65 +673,182 @@ def __init__(__self__, *, wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached. """ + _SpotFleetRequestState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + client_token=client_token, + context=context, + excess_capacity_termination_policy=excess_capacity_termination_policy, + fleet_type=fleet_type, + iam_fleet_role=iam_fleet_role, + instance_interruption_behaviour=instance_interruption_behaviour, + instance_pools_to_use_count=instance_pools_to_use_count, + launch_specifications=launch_specifications, + launch_template_configs=launch_template_configs, + load_balancers=load_balancers, + on_demand_allocation_strategy=on_demand_allocation_strategy, + on_demand_max_total_price=on_demand_max_total_price, + on_demand_target_capacity=on_demand_target_capacity, + replace_unhealthy_instances=replace_unhealthy_instances, + spot_maintenance_strategies=spot_maintenance_strategies, + spot_price=spot_price, + spot_request_state=spot_request_state, + tags=tags, + tags_all=tags_all, + target_capacity=target_capacity, + target_capacity_unit_type=target_capacity_unit_type, + target_group_arns=target_group_arns, + terminate_instances_on_delete=terminate_instances_on_delete, + terminate_instances_with_expiration=terminate_instances_with_expiration, + valid_from=valid_from, + valid_until=valid_until, + wait_for_fulfillment=wait_for_fulfillment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[pulumi.Input[str]] = None, + client_token: Optional[pulumi.Input[str]] = None, + context: Optional[pulumi.Input[str]] = None, + excess_capacity_termination_policy: Optional[pulumi.Input[str]] = None, + fleet_type: Optional[pulumi.Input[str]] = None, + iam_fleet_role: Optional[pulumi.Input[str]] = None, + instance_interruption_behaviour: Optional[pulumi.Input[str]] = None, + instance_pools_to_use_count: Optional[pulumi.Input[int]] = None, + launch_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['SpotFleetRequestLaunchSpecificationArgs']]]] = None, + launch_template_configs: Optional[pulumi.Input[Sequence[pulumi.Input['SpotFleetRequestLaunchTemplateConfigArgs']]]] = None, + load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + on_demand_allocation_strategy: Optional[pulumi.Input[str]] = None, + on_demand_max_total_price: Optional[pulumi.Input[str]] = None, + on_demand_target_capacity: Optional[pulumi.Input[int]] = None, + replace_unhealthy_instances: Optional[pulumi.Input[bool]] = None, + spot_maintenance_strategies: Optional[pulumi.Input['SpotFleetRequestSpotMaintenanceStrategiesArgs']] = None, + spot_price: Optional[pulumi.Input[str]] = None, + spot_request_state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_capacity: Optional[pulumi.Input[int]] = None, + target_capacity_unit_type: Optional[pulumi.Input[str]] = None, + target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + terminate_instances_on_delete: Optional[pulumi.Input[str]] = None, + terminate_instances_with_expiration: Optional[pulumi.Input[bool]] = None, + valid_from: Optional[pulumi.Input[str]] = None, + valid_until: Optional[pulumi.Input[str]] = None, + wait_for_fulfillment: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if client_token is None and 'clientToken' in kwargs: + client_token = kwargs['clientToken'] + if excess_capacity_termination_policy is None and 'excessCapacityTerminationPolicy' in kwargs: + excess_capacity_termination_policy = kwargs['excessCapacityTerminationPolicy'] + if fleet_type is None and 'fleetType' in kwargs: + fleet_type = kwargs['fleetType'] + if iam_fleet_role is None and 'iamFleetRole' in kwargs: + iam_fleet_role = kwargs['iamFleetRole'] + if instance_interruption_behaviour is None and 'instanceInterruptionBehaviour' in kwargs: + instance_interruption_behaviour = kwargs['instanceInterruptionBehaviour'] + if instance_pools_to_use_count is None and 'instancePoolsToUseCount' in kwargs: + instance_pools_to_use_count = kwargs['instancePoolsToUseCount'] + if launch_specifications is None and 'launchSpecifications' in kwargs: + launch_specifications = kwargs['launchSpecifications'] + if launch_template_configs is None and 'launchTemplateConfigs' in kwargs: + launch_template_configs = kwargs['launchTemplateConfigs'] + if load_balancers is None and 'loadBalancers' in kwargs: + load_balancers = kwargs['loadBalancers'] + if on_demand_allocation_strategy is None and 'onDemandAllocationStrategy' in kwargs: + on_demand_allocation_strategy = kwargs['onDemandAllocationStrategy'] + if on_demand_max_total_price is None and 'onDemandMaxTotalPrice' in kwargs: + on_demand_max_total_price = kwargs['onDemandMaxTotalPrice'] + if on_demand_target_capacity is None and 'onDemandTargetCapacity' in kwargs: + on_demand_target_capacity = kwargs['onDemandTargetCapacity'] + if replace_unhealthy_instances is None and 'replaceUnhealthyInstances' in kwargs: + replace_unhealthy_instances = kwargs['replaceUnhealthyInstances'] + if spot_maintenance_strategies is None and 'spotMaintenanceStrategies' in kwargs: + spot_maintenance_strategies = kwargs['spotMaintenanceStrategies'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if spot_request_state is None and 'spotRequestState' in kwargs: + spot_request_state = kwargs['spotRequestState'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_capacity is None and 'targetCapacity' in kwargs: + target_capacity = kwargs['targetCapacity'] + if target_capacity_unit_type is None and 'targetCapacityUnitType' in kwargs: + target_capacity_unit_type = kwargs['targetCapacityUnitType'] + if target_group_arns is None and 'targetGroupArns' in kwargs: + target_group_arns = kwargs['targetGroupArns'] + if terminate_instances_on_delete is None and 'terminateInstancesOnDelete' in kwargs: + terminate_instances_on_delete = kwargs['terminateInstancesOnDelete'] + if terminate_instances_with_expiration is None and 'terminateInstancesWithExpiration' in kwargs: + terminate_instances_with_expiration = kwargs['terminateInstancesWithExpiration'] + if valid_from is None and 'validFrom' in kwargs: + valid_from = kwargs['validFrom'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if wait_for_fulfillment is None and 'waitForFulfillment' in kwargs: + wait_for_fulfillment = kwargs['waitForFulfillment'] + if allocation_strategy is not None: - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + _setter("allocation_strategy", allocation_strategy) if client_token is not None: - pulumi.set(__self__, "client_token", client_token) + _setter("client_token", client_token) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if excess_capacity_termination_policy is not None: - pulumi.set(__self__, "excess_capacity_termination_policy", excess_capacity_termination_policy) + _setter("excess_capacity_termination_policy", excess_capacity_termination_policy) if fleet_type is not None: - pulumi.set(__self__, "fleet_type", fleet_type) + _setter("fleet_type", fleet_type) if iam_fleet_role is not None: - pulumi.set(__self__, "iam_fleet_role", iam_fleet_role) + _setter("iam_fleet_role", iam_fleet_role) if instance_interruption_behaviour is not None: - pulumi.set(__self__, "instance_interruption_behaviour", instance_interruption_behaviour) + _setter("instance_interruption_behaviour", instance_interruption_behaviour) if instance_pools_to_use_count is not None: - pulumi.set(__self__, "instance_pools_to_use_count", instance_pools_to_use_count) + _setter("instance_pools_to_use_count", instance_pools_to_use_count) if launch_specifications is not None: - pulumi.set(__self__, "launch_specifications", launch_specifications) + _setter("launch_specifications", launch_specifications) if launch_template_configs is not None: - pulumi.set(__self__, "launch_template_configs", launch_template_configs) + _setter("launch_template_configs", launch_template_configs) if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) + _setter("load_balancers", load_balancers) if on_demand_allocation_strategy is not None: - pulumi.set(__self__, "on_demand_allocation_strategy", on_demand_allocation_strategy) + _setter("on_demand_allocation_strategy", on_demand_allocation_strategy) if on_demand_max_total_price is not None: - pulumi.set(__self__, "on_demand_max_total_price", on_demand_max_total_price) + _setter("on_demand_max_total_price", on_demand_max_total_price) if on_demand_target_capacity is not None: - pulumi.set(__self__, "on_demand_target_capacity", on_demand_target_capacity) + _setter("on_demand_target_capacity", on_demand_target_capacity) if replace_unhealthy_instances is not None: - pulumi.set(__self__, "replace_unhealthy_instances", replace_unhealthy_instances) + _setter("replace_unhealthy_instances", replace_unhealthy_instances) if spot_maintenance_strategies is not None: - pulumi.set(__self__, "spot_maintenance_strategies", spot_maintenance_strategies) + _setter("spot_maintenance_strategies", spot_maintenance_strategies) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if spot_request_state is not None: - pulumi.set(__self__, "spot_request_state", spot_request_state) + _setter("spot_request_state", spot_request_state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_capacity is not None: - pulumi.set(__self__, "target_capacity", target_capacity) + _setter("target_capacity", target_capacity) if target_capacity_unit_type is not None: - pulumi.set(__self__, "target_capacity_unit_type", target_capacity_unit_type) + _setter("target_capacity_unit_type", target_capacity_unit_type) if target_group_arns is not None: - pulumi.set(__self__, "target_group_arns", target_group_arns) + _setter("target_group_arns", target_group_arns) if terminate_instances_on_delete is not None: - pulumi.set(__self__, "terminate_instances_on_delete", terminate_instances_on_delete) + _setter("terminate_instances_on_delete", terminate_instances_on_delete) if terminate_instances_with_expiration is not None: - pulumi.set(__self__, "terminate_instances_with_expiration", terminate_instances_with_expiration) + _setter("terminate_instances_with_expiration", terminate_instances_with_expiration) if valid_from is not None: - pulumi.set(__self__, "valid_from", valid_from) + _setter("valid_from", valid_from) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) if wait_for_fulfillment is not None: - pulumi.set(__self__, "wait_for_fulfillment", wait_for_fulfillment) + _setter("wait_for_fulfillment", wait_for_fulfillment) @property @pulumi.getter(name="allocationStrategy") @@ -1334,6 +1560,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SpotFleetRequestArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1389,6 +1619,7 @@ def _internal_init(__self__, __props__.__dict__["on_demand_max_total_price"] = on_demand_max_total_price __props__.__dict__["on_demand_target_capacity"] = on_demand_target_capacity __props__.__dict__["replace_unhealthy_instances"] = replace_unhealthy_instances + spot_maintenance_strategies = _utilities.configure(spot_maintenance_strategies, SpotFleetRequestSpotMaintenanceStrategiesArgs, True) __props__.__dict__["spot_maintenance_strategies"] = spot_maintenance_strategies __props__.__dict__["spot_price"] = spot_price __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/ec2/spot_instance_request.py b/sdk/python/pulumi_aws/ec2/spot_instance_request.py index 244a54da058..0b5b16de39a 100644 --- a/sdk/python/pulumi_aws/ec2/spot_instance_request.py +++ b/sdk/python/pulumi_aws/ec2/spot_instance_request.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -96,7 +96,7 @@ def __init__(__self__, *, :param pulumi.Input[str] host_resource_group_arn: ARN of the host resource group in which to launch the instances. If you specify an ARN, omit the `tenancy` parameter or set it to `host`. :param pulumi.Input[str] iam_instance_profile: IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. - :param pulumi.Input[str] instance_interruption_behavior: The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + :param pulumi.Input[str] instance_interruption_behavior: Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. :param pulumi.Input[str] instance_type: Instance type to use for the instance. Required unless `launch_template` is specified and the Launch Template specifies an instance type. If an instance type is specified in the Launch Template, setting `instance_type` will override the instance type specified in the Launch Template. Updates to this field will trigger a stop/start of the EC2 instance. :param pulumi.Input[int] ipv6_address_count: Number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. :param pulumi.Input[Sequence[pulumi.Input[str]]] ipv6_addresses: Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface @@ -128,7 +128,7 @@ def __init__(__self__, *, :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. Updates to this field will trigger a stop/start of the EC2 instance by default. If the `user_data_replace_on_change` is set then updates to this field will trigger a destroy and recreate. :param pulumi.Input[bool] user_data_replace_on_change: When used in combination with `user_data` or `user_data_base64` will trigger a destroy and recreate when set to `true`. Defaults to `false` if not set. :param pulumi.Input[str] valid_from: The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. - :param pulumi.Input[str] valid_until: The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + :param pulumi.Input[str] valid_until: The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: Map of tags to assign, at instance-creation time, to root and EBS volumes. > **NOTE:** Do not use `volume_tags` if you plan to manage block device tags outside the `ec2.Instance` configuration, such as using `tags` in an `ebs.Volume` resource attached via `ec2.VolumeAttachment`. Doing so will result in resource cycling and inconsistent behavior. @@ -137,118 +137,329 @@ def __init__(__self__, *, wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached. """ + SpotInstanceRequestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami=ami, + associate_public_ip_address=associate_public_ip_address, + availability_zone=availability_zone, + block_duration_minutes=block_duration_minutes, + capacity_reservation_specification=capacity_reservation_specification, + cpu_core_count=cpu_core_count, + cpu_options=cpu_options, + cpu_threads_per_core=cpu_threads_per_core, + credit_specification=credit_specification, + disable_api_stop=disable_api_stop, + disable_api_termination=disable_api_termination, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + enclave_options=enclave_options, + ephemeral_block_devices=ephemeral_block_devices, + get_password_data=get_password_data, + hibernation=hibernation, + host_id=host_id, + host_resource_group_arn=host_resource_group_arn, + iam_instance_profile=iam_instance_profile, + instance_initiated_shutdown_behavior=instance_initiated_shutdown_behavior, + instance_interruption_behavior=instance_interruption_behavior, + instance_type=instance_type, + ipv6_address_count=ipv6_address_count, + ipv6_addresses=ipv6_addresses, + key_name=key_name, + launch_group=launch_group, + launch_template=launch_template, + maintenance_options=maintenance_options, + metadata_options=metadata_options, + monitoring=monitoring, + network_interfaces=network_interfaces, + placement_group=placement_group, + placement_partition_number=placement_partition_number, + private_dns_name_options=private_dns_name_options, + private_ip=private_ip, + root_block_device=root_block_device, + secondary_private_ips=secondary_private_ips, + security_groups=security_groups, + source_dest_check=source_dest_check, + spot_price=spot_price, + spot_type=spot_type, + subnet_id=subnet_id, + tags=tags, + tenancy=tenancy, + user_data=user_data, + user_data_base64=user_data_base64, + user_data_replace_on_change=user_data_replace_on_change, + valid_from=valid_from, + valid_until=valid_until, + volume_tags=volume_tags, + vpc_security_group_ids=vpc_security_group_ids, + wait_for_fulfillment=wait_for_fulfillment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami: Optional[pulumi.Input[str]] = None, + associate_public_ip_address: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + block_duration_minutes: Optional[pulumi.Input[int]] = None, + capacity_reservation_specification: Optional[pulumi.Input['SpotInstanceRequestCapacityReservationSpecificationArgs']] = None, + cpu_core_count: Optional[pulumi.Input[int]] = None, + cpu_options: Optional[pulumi.Input['SpotInstanceRequestCpuOptionsArgs']] = None, + cpu_threads_per_core: Optional[pulumi.Input[int]] = None, + credit_specification: Optional[pulumi.Input['SpotInstanceRequestCreditSpecificationArgs']] = None, + disable_api_stop: Optional[pulumi.Input[bool]] = None, + disable_api_termination: Optional[pulumi.Input[bool]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['SpotInstanceRequestEbsBlockDeviceArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + enclave_options: Optional[pulumi.Input['SpotInstanceRequestEnclaveOptionsArgs']] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['SpotInstanceRequestEphemeralBlockDeviceArgs']]]] = None, + get_password_data: Optional[pulumi.Input[bool]] = None, + hibernation: Optional[pulumi.Input[bool]] = None, + host_id: Optional[pulumi.Input[str]] = None, + host_resource_group_arn: Optional[pulumi.Input[str]] = None, + iam_instance_profile: Optional[pulumi.Input[str]] = None, + instance_initiated_shutdown_behavior: Optional[pulumi.Input[str]] = None, + instance_interruption_behavior: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + ipv6_address_count: Optional[pulumi.Input[int]] = None, + ipv6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + key_name: Optional[pulumi.Input[str]] = None, + launch_group: Optional[pulumi.Input[str]] = None, + launch_template: Optional[pulumi.Input['SpotInstanceRequestLaunchTemplateArgs']] = None, + maintenance_options: Optional[pulumi.Input['SpotInstanceRequestMaintenanceOptionsArgs']] = None, + metadata_options: Optional[pulumi.Input['SpotInstanceRequestMetadataOptionsArgs']] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['SpotInstanceRequestNetworkInterfaceArgs']]]] = None, + placement_group: Optional[pulumi.Input[str]] = None, + placement_partition_number: Optional[pulumi.Input[int]] = None, + private_dns_name_options: Optional[pulumi.Input['SpotInstanceRequestPrivateDnsNameOptionsArgs']] = None, + private_ip: Optional[pulumi.Input[str]] = None, + root_block_device: Optional[pulumi.Input['SpotInstanceRequestRootBlockDeviceArgs']] = None, + secondary_private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_dest_check: Optional[pulumi.Input[bool]] = None, + spot_price: Optional[pulumi.Input[str]] = None, + spot_type: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tenancy: Optional[pulumi.Input[str]] = None, + user_data: Optional[pulumi.Input[str]] = None, + user_data_base64: Optional[pulumi.Input[str]] = None, + user_data_replace_on_change: Optional[pulumi.Input[bool]] = None, + valid_from: Optional[pulumi.Input[str]] = None, + valid_until: Optional[pulumi.Input[str]] = None, + volume_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + wait_for_fulfillment: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + if capacity_reservation_specification is None and 'capacityReservationSpecification' in kwargs: + capacity_reservation_specification = kwargs['capacityReservationSpecification'] + if cpu_core_count is None and 'cpuCoreCount' in kwargs: + cpu_core_count = kwargs['cpuCoreCount'] + if cpu_options is None and 'cpuOptions' in kwargs: + cpu_options = kwargs['cpuOptions'] + if cpu_threads_per_core is None and 'cpuThreadsPerCore' in kwargs: + cpu_threads_per_core = kwargs['cpuThreadsPerCore'] + if credit_specification is None and 'creditSpecification' in kwargs: + credit_specification = kwargs['creditSpecification'] + if disable_api_stop is None and 'disableApiStop' in kwargs: + disable_api_stop = kwargs['disableApiStop'] + if disable_api_termination is None and 'disableApiTermination' in kwargs: + disable_api_termination = kwargs['disableApiTermination'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if enclave_options is None and 'enclaveOptions' in kwargs: + enclave_options = kwargs['enclaveOptions'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if get_password_data is None and 'getPasswordData' in kwargs: + get_password_data = kwargs['getPasswordData'] + if host_id is None and 'hostId' in kwargs: + host_id = kwargs['hostId'] + if host_resource_group_arn is None and 'hostResourceGroupArn' in kwargs: + host_resource_group_arn = kwargs['hostResourceGroupArn'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if instance_initiated_shutdown_behavior is None and 'instanceInitiatedShutdownBehavior' in kwargs: + instance_initiated_shutdown_behavior = kwargs['instanceInitiatedShutdownBehavior'] + if instance_interruption_behavior is None and 'instanceInterruptionBehavior' in kwargs: + instance_interruption_behavior = kwargs['instanceInterruptionBehavior'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if ipv6_address_count is None and 'ipv6AddressCount' in kwargs: + ipv6_address_count = kwargs['ipv6AddressCount'] + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if launch_group is None and 'launchGroup' in kwargs: + launch_group = kwargs['launchGroup'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if maintenance_options is None and 'maintenanceOptions' in kwargs: + maintenance_options = kwargs['maintenanceOptions'] + if metadata_options is None and 'metadataOptions' in kwargs: + metadata_options = kwargs['metadataOptions'] + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if placement_partition_number is None and 'placementPartitionNumber' in kwargs: + placement_partition_number = kwargs['placementPartitionNumber'] + if private_dns_name_options is None and 'privateDnsNameOptions' in kwargs: + private_dns_name_options = kwargs['privateDnsNameOptions'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if root_block_device is None and 'rootBlockDevice' in kwargs: + root_block_device = kwargs['rootBlockDevice'] + if secondary_private_ips is None and 'secondaryPrivateIps' in kwargs: + secondary_private_ips = kwargs['secondaryPrivateIps'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_dest_check is None and 'sourceDestCheck' in kwargs: + source_dest_check = kwargs['sourceDestCheck'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if spot_type is None and 'spotType' in kwargs: + spot_type = kwargs['spotType'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if user_data_base64 is None and 'userDataBase64' in kwargs: + user_data_base64 = kwargs['userDataBase64'] + if user_data_replace_on_change is None and 'userDataReplaceOnChange' in kwargs: + user_data_replace_on_change = kwargs['userDataReplaceOnChange'] + if valid_from is None and 'validFrom' in kwargs: + valid_from = kwargs['validFrom'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if volume_tags is None and 'volumeTags' in kwargs: + volume_tags = kwargs['volumeTags'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if wait_for_fulfillment is None and 'waitForFulfillment' in kwargs: + wait_for_fulfillment = kwargs['waitForFulfillment'] + if ami is not None: - pulumi.set(__self__, "ami", ami) + _setter("ami", ami) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) if capacity_reservation_specification is not None: - pulumi.set(__self__, "capacity_reservation_specification", capacity_reservation_specification) + _setter("capacity_reservation_specification", capacity_reservation_specification) if cpu_core_count is not None: warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) pulumi.log.warn("""cpu_core_count is deprecated: use 'cpu_options' argument instead""") if cpu_core_count is not None: - pulumi.set(__self__, "cpu_core_count", cpu_core_count) + _setter("cpu_core_count", cpu_core_count) if cpu_options is not None: - pulumi.set(__self__, "cpu_options", cpu_options) + _setter("cpu_options", cpu_options) if cpu_threads_per_core is not None: warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) pulumi.log.warn("""cpu_threads_per_core is deprecated: use 'cpu_options' argument instead""") if cpu_threads_per_core is not None: - pulumi.set(__self__, "cpu_threads_per_core", cpu_threads_per_core) + _setter("cpu_threads_per_core", cpu_threads_per_core) if credit_specification is not None: - pulumi.set(__self__, "credit_specification", credit_specification) + _setter("credit_specification", credit_specification) if disable_api_stop is not None: - pulumi.set(__self__, "disable_api_stop", disable_api_stop) + _setter("disable_api_stop", disable_api_stop) if disable_api_termination is not None: - pulumi.set(__self__, "disable_api_termination", disable_api_termination) + _setter("disable_api_termination", disable_api_termination) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if enclave_options is not None: - pulumi.set(__self__, "enclave_options", enclave_options) + _setter("enclave_options", enclave_options) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if get_password_data is not None: - pulumi.set(__self__, "get_password_data", get_password_data) + _setter("get_password_data", get_password_data) if hibernation is not None: - pulumi.set(__self__, "hibernation", hibernation) + _setter("hibernation", hibernation) if host_id is not None: - pulumi.set(__self__, "host_id", host_id) + _setter("host_id", host_id) if host_resource_group_arn is not None: - pulumi.set(__self__, "host_resource_group_arn", host_resource_group_arn) + _setter("host_resource_group_arn", host_resource_group_arn) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if instance_initiated_shutdown_behavior is not None: - pulumi.set(__self__, "instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) + _setter("instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) if instance_interruption_behavior is not None: - pulumi.set(__self__, "instance_interruption_behavior", instance_interruption_behavior) + _setter("instance_interruption_behavior", instance_interruption_behavior) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if ipv6_address_count is not None: - pulumi.set(__self__, "ipv6_address_count", ipv6_address_count) + _setter("ipv6_address_count", ipv6_address_count) if ipv6_addresses is not None: - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) + _setter("ipv6_addresses", ipv6_addresses) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if launch_group is not None: - pulumi.set(__self__, "launch_group", launch_group) + _setter("launch_group", launch_group) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if maintenance_options is not None: - pulumi.set(__self__, "maintenance_options", maintenance_options) + _setter("maintenance_options", maintenance_options) if metadata_options is not None: - pulumi.set(__self__, "metadata_options", metadata_options) + _setter("metadata_options", metadata_options) if monitoring is not None: - pulumi.set(__self__, "monitoring", monitoring) + _setter("monitoring", monitoring) if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if placement_partition_number is not None: - pulumi.set(__self__, "placement_partition_number", placement_partition_number) + _setter("placement_partition_number", placement_partition_number) if private_dns_name_options is not None: - pulumi.set(__self__, "private_dns_name_options", private_dns_name_options) + _setter("private_dns_name_options", private_dns_name_options) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if root_block_device is not None: - pulumi.set(__self__, "root_block_device", root_block_device) + _setter("root_block_device", root_block_device) if secondary_private_ips is not None: - pulumi.set(__self__, "secondary_private_ips", secondary_private_ips) + _setter("secondary_private_ips", secondary_private_ips) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_dest_check is not None: - pulumi.set(__self__, "source_dest_check", source_dest_check) + _setter("source_dest_check", source_dest_check) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if spot_type is not None: - pulumi.set(__self__, "spot_type", spot_type) + _setter("spot_type", spot_type) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if user_data_base64 is not None: - pulumi.set(__self__, "user_data_base64", user_data_base64) + _setter("user_data_base64", user_data_base64) if user_data_replace_on_change is not None: - pulumi.set(__self__, "user_data_replace_on_change", user_data_replace_on_change) + _setter("user_data_replace_on_change", user_data_replace_on_change) if valid_from is not None: - pulumi.set(__self__, "valid_from", valid_from) + _setter("valid_from", valid_from) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) if volume_tags is not None: - pulumi.set(__self__, "volume_tags", volume_tags) + _setter("volume_tags", volume_tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) if wait_for_fulfillment is not None: - pulumi.set(__self__, "wait_for_fulfillment", wait_for_fulfillment) + _setter("wait_for_fulfillment", wait_for_fulfillment) @property @pulumi.getter @@ -516,7 +727,7 @@ def instance_initiated_shutdown_behavior(self, value: Optional[pulumi.Input[str] @pulumi.getter(name="instanceInterruptionBehavior") def instance_interruption_behavior(self) -> Optional[pulumi.Input[str]]: """ - The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. """ return pulumi.get(self, "instance_interruption_behavior") @@ -856,7 +1067,7 @@ def valid_from(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="validUntil") def valid_until(self) -> Optional[pulumi.Input[str]]: """ - The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. """ return pulumi.get(self, "valid_until") @@ -1000,7 +1211,7 @@ def __init__(__self__, *, :param pulumi.Input[str] host_resource_group_arn: ARN of the host resource group in which to launch the instances. If you specify an ARN, omit the `tenancy` parameter or set it to `host`. :param pulumi.Input[str] iam_instance_profile: IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. - :param pulumi.Input[str] instance_interruption_behavior: The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + :param pulumi.Input[str] instance_interruption_behavior: Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. :param pulumi.Input[str] instance_type: Instance type to use for the instance. Required unless `launch_template` is specified and the Launch Template specifies an instance type. If an instance type is specified in the Launch Template, setting `instance_type` will override the instance type specified in the Launch Template. Updates to this field will trigger a stop/start of the EC2 instance. :param pulumi.Input[int] ipv6_address_count: Number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. :param pulumi.Input[Sequence[pulumi.Input[str]]] ipv6_addresses: Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface @@ -1047,7 +1258,7 @@ def __init__(__self__, *, :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. Updates to this field will trigger a stop/start of the EC2 instance by default. If the `user_data_replace_on_change` is set then updates to this field will trigger a destroy and recreate. :param pulumi.Input[bool] user_data_replace_on_change: When used in combination with `user_data` or `user_data_base64` will trigger a destroy and recreate when set to `true`. Defaults to `false` if not set. :param pulumi.Input[str] valid_from: The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. - :param pulumi.Input[str] valid_until: The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + :param pulumi.Input[str] valid_until: The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: Map of tags to assign, at instance-creation time, to root and EBS volumes. > **NOTE:** Do not use `volume_tags` if you plan to manage block device tags outside the `ec2.Instance` configuration, such as using `tags` in an `ebs.Volume` resource attached via `ec2.VolumeAttachment`. Doing so will result in resource cycling and inconsistent behavior. @@ -1056,145 +1267,402 @@ def __init__(__self__, *, wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached. """ + _SpotInstanceRequestState._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami=ami, + arn=arn, + associate_public_ip_address=associate_public_ip_address, + availability_zone=availability_zone, + block_duration_minutes=block_duration_minutes, + capacity_reservation_specification=capacity_reservation_specification, + cpu_core_count=cpu_core_count, + cpu_options=cpu_options, + cpu_threads_per_core=cpu_threads_per_core, + credit_specification=credit_specification, + disable_api_stop=disable_api_stop, + disable_api_termination=disable_api_termination, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + enclave_options=enclave_options, + ephemeral_block_devices=ephemeral_block_devices, + get_password_data=get_password_data, + hibernation=hibernation, + host_id=host_id, + host_resource_group_arn=host_resource_group_arn, + iam_instance_profile=iam_instance_profile, + instance_initiated_shutdown_behavior=instance_initiated_shutdown_behavior, + instance_interruption_behavior=instance_interruption_behavior, + instance_state=instance_state, + instance_type=instance_type, + ipv6_address_count=ipv6_address_count, + ipv6_addresses=ipv6_addresses, + key_name=key_name, + launch_group=launch_group, + launch_template=launch_template, + maintenance_options=maintenance_options, + metadata_options=metadata_options, + monitoring=monitoring, + network_interfaces=network_interfaces, + outpost_arn=outpost_arn, + password_data=password_data, + placement_group=placement_group, + placement_partition_number=placement_partition_number, + primary_network_interface_id=primary_network_interface_id, + private_dns=private_dns, + private_dns_name_options=private_dns_name_options, + private_ip=private_ip, + public_dns=public_dns, + public_ip=public_ip, + root_block_device=root_block_device, + secondary_private_ips=secondary_private_ips, + security_groups=security_groups, + source_dest_check=source_dest_check, + spot_bid_status=spot_bid_status, + spot_instance_id=spot_instance_id, + spot_price=spot_price, + spot_request_state=spot_request_state, + spot_type=spot_type, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + tenancy=tenancy, + user_data=user_data, + user_data_base64=user_data_base64, + user_data_replace_on_change=user_data_replace_on_change, + valid_from=valid_from, + valid_until=valid_until, + volume_tags=volume_tags, + vpc_security_group_ids=vpc_security_group_ids, + wait_for_fulfillment=wait_for_fulfillment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + associate_public_ip_address: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + block_duration_minutes: Optional[pulumi.Input[int]] = None, + capacity_reservation_specification: Optional[pulumi.Input['SpotInstanceRequestCapacityReservationSpecificationArgs']] = None, + cpu_core_count: Optional[pulumi.Input[int]] = None, + cpu_options: Optional[pulumi.Input['SpotInstanceRequestCpuOptionsArgs']] = None, + cpu_threads_per_core: Optional[pulumi.Input[int]] = None, + credit_specification: Optional[pulumi.Input['SpotInstanceRequestCreditSpecificationArgs']] = None, + disable_api_stop: Optional[pulumi.Input[bool]] = None, + disable_api_termination: Optional[pulumi.Input[bool]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['SpotInstanceRequestEbsBlockDeviceArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + enclave_options: Optional[pulumi.Input['SpotInstanceRequestEnclaveOptionsArgs']] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['SpotInstanceRequestEphemeralBlockDeviceArgs']]]] = None, + get_password_data: Optional[pulumi.Input[bool]] = None, + hibernation: Optional[pulumi.Input[bool]] = None, + host_id: Optional[pulumi.Input[str]] = None, + host_resource_group_arn: Optional[pulumi.Input[str]] = None, + iam_instance_profile: Optional[pulumi.Input[str]] = None, + instance_initiated_shutdown_behavior: Optional[pulumi.Input[str]] = None, + instance_interruption_behavior: Optional[pulumi.Input[str]] = None, + instance_state: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + ipv6_address_count: Optional[pulumi.Input[int]] = None, + ipv6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + key_name: Optional[pulumi.Input[str]] = None, + launch_group: Optional[pulumi.Input[str]] = None, + launch_template: Optional[pulumi.Input['SpotInstanceRequestLaunchTemplateArgs']] = None, + maintenance_options: Optional[pulumi.Input['SpotInstanceRequestMaintenanceOptionsArgs']] = None, + metadata_options: Optional[pulumi.Input['SpotInstanceRequestMetadataOptionsArgs']] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['SpotInstanceRequestNetworkInterfaceArgs']]]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + password_data: Optional[pulumi.Input[str]] = None, + placement_group: Optional[pulumi.Input[str]] = None, + placement_partition_number: Optional[pulumi.Input[int]] = None, + primary_network_interface_id: Optional[pulumi.Input[str]] = None, + private_dns: Optional[pulumi.Input[str]] = None, + private_dns_name_options: Optional[pulumi.Input['SpotInstanceRequestPrivateDnsNameOptionsArgs']] = None, + private_ip: Optional[pulumi.Input[str]] = None, + public_dns: Optional[pulumi.Input[str]] = None, + public_ip: Optional[pulumi.Input[str]] = None, + root_block_device: Optional[pulumi.Input['SpotInstanceRequestRootBlockDeviceArgs']] = None, + secondary_private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_dest_check: Optional[pulumi.Input[bool]] = None, + spot_bid_status: Optional[pulumi.Input[str]] = None, + spot_instance_id: Optional[pulumi.Input[str]] = None, + spot_price: Optional[pulumi.Input[str]] = None, + spot_request_state: Optional[pulumi.Input[str]] = None, + spot_type: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tenancy: Optional[pulumi.Input[str]] = None, + user_data: Optional[pulumi.Input[str]] = None, + user_data_base64: Optional[pulumi.Input[str]] = None, + user_data_replace_on_change: Optional[pulumi.Input[bool]] = None, + valid_from: Optional[pulumi.Input[str]] = None, + valid_until: Optional[pulumi.Input[str]] = None, + volume_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + wait_for_fulfillment: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if associate_public_ip_address is None and 'associatePublicIpAddress' in kwargs: + associate_public_ip_address = kwargs['associatePublicIpAddress'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + if capacity_reservation_specification is None and 'capacityReservationSpecification' in kwargs: + capacity_reservation_specification = kwargs['capacityReservationSpecification'] + if cpu_core_count is None and 'cpuCoreCount' in kwargs: + cpu_core_count = kwargs['cpuCoreCount'] + if cpu_options is None and 'cpuOptions' in kwargs: + cpu_options = kwargs['cpuOptions'] + if cpu_threads_per_core is None and 'cpuThreadsPerCore' in kwargs: + cpu_threads_per_core = kwargs['cpuThreadsPerCore'] + if credit_specification is None and 'creditSpecification' in kwargs: + credit_specification = kwargs['creditSpecification'] + if disable_api_stop is None and 'disableApiStop' in kwargs: + disable_api_stop = kwargs['disableApiStop'] + if disable_api_termination is None and 'disableApiTermination' in kwargs: + disable_api_termination = kwargs['disableApiTermination'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if enclave_options is None and 'enclaveOptions' in kwargs: + enclave_options = kwargs['enclaveOptions'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if get_password_data is None and 'getPasswordData' in kwargs: + get_password_data = kwargs['getPasswordData'] + if host_id is None and 'hostId' in kwargs: + host_id = kwargs['hostId'] + if host_resource_group_arn is None and 'hostResourceGroupArn' in kwargs: + host_resource_group_arn = kwargs['hostResourceGroupArn'] + if iam_instance_profile is None and 'iamInstanceProfile' in kwargs: + iam_instance_profile = kwargs['iamInstanceProfile'] + if instance_initiated_shutdown_behavior is None and 'instanceInitiatedShutdownBehavior' in kwargs: + instance_initiated_shutdown_behavior = kwargs['instanceInitiatedShutdownBehavior'] + if instance_interruption_behavior is None and 'instanceInterruptionBehavior' in kwargs: + instance_interruption_behavior = kwargs['instanceInterruptionBehavior'] + if instance_state is None and 'instanceState' in kwargs: + instance_state = kwargs['instanceState'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if ipv6_address_count is None and 'ipv6AddressCount' in kwargs: + ipv6_address_count = kwargs['ipv6AddressCount'] + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if launch_group is None and 'launchGroup' in kwargs: + launch_group = kwargs['launchGroup'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if maintenance_options is None and 'maintenanceOptions' in kwargs: + maintenance_options = kwargs['maintenanceOptions'] + if metadata_options is None and 'metadataOptions' in kwargs: + metadata_options = kwargs['metadataOptions'] + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if password_data is None and 'passwordData' in kwargs: + password_data = kwargs['passwordData'] + if placement_group is None and 'placementGroup' in kwargs: + placement_group = kwargs['placementGroup'] + if placement_partition_number is None and 'placementPartitionNumber' in kwargs: + placement_partition_number = kwargs['placementPartitionNumber'] + if primary_network_interface_id is None and 'primaryNetworkInterfaceId' in kwargs: + primary_network_interface_id = kwargs['primaryNetworkInterfaceId'] + if private_dns is None and 'privateDns' in kwargs: + private_dns = kwargs['privateDns'] + if private_dns_name_options is None and 'privateDnsNameOptions' in kwargs: + private_dns_name_options = kwargs['privateDnsNameOptions'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if public_dns is None and 'publicDns' in kwargs: + public_dns = kwargs['publicDns'] + if public_ip is None and 'publicIp' in kwargs: + public_ip = kwargs['publicIp'] + if root_block_device is None and 'rootBlockDevice' in kwargs: + root_block_device = kwargs['rootBlockDevice'] + if secondary_private_ips is None and 'secondaryPrivateIps' in kwargs: + secondary_private_ips = kwargs['secondaryPrivateIps'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_dest_check is None and 'sourceDestCheck' in kwargs: + source_dest_check = kwargs['sourceDestCheck'] + if spot_bid_status is None and 'spotBidStatus' in kwargs: + spot_bid_status = kwargs['spotBidStatus'] + if spot_instance_id is None and 'spotInstanceId' in kwargs: + spot_instance_id = kwargs['spotInstanceId'] + if spot_price is None and 'spotPrice' in kwargs: + spot_price = kwargs['spotPrice'] + if spot_request_state is None and 'spotRequestState' in kwargs: + spot_request_state = kwargs['spotRequestState'] + if spot_type is None and 'spotType' in kwargs: + spot_type = kwargs['spotType'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if user_data_base64 is None and 'userDataBase64' in kwargs: + user_data_base64 = kwargs['userDataBase64'] + if user_data_replace_on_change is None and 'userDataReplaceOnChange' in kwargs: + user_data_replace_on_change = kwargs['userDataReplaceOnChange'] + if valid_from is None and 'validFrom' in kwargs: + valid_from = kwargs['validFrom'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if volume_tags is None and 'volumeTags' in kwargs: + volume_tags = kwargs['volumeTags'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if wait_for_fulfillment is None and 'waitForFulfillment' in kwargs: + wait_for_fulfillment = kwargs['waitForFulfillment'] + if ami is not None: - pulumi.set(__self__, "ami", ami) + _setter("ami", ami) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if associate_public_ip_address is not None: - pulumi.set(__self__, "associate_public_ip_address", associate_public_ip_address) + _setter("associate_public_ip_address", associate_public_ip_address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) if capacity_reservation_specification is not None: - pulumi.set(__self__, "capacity_reservation_specification", capacity_reservation_specification) + _setter("capacity_reservation_specification", capacity_reservation_specification) if cpu_core_count is not None: warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) pulumi.log.warn("""cpu_core_count is deprecated: use 'cpu_options' argument instead""") if cpu_core_count is not None: - pulumi.set(__self__, "cpu_core_count", cpu_core_count) + _setter("cpu_core_count", cpu_core_count) if cpu_options is not None: - pulumi.set(__self__, "cpu_options", cpu_options) + _setter("cpu_options", cpu_options) if cpu_threads_per_core is not None: warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) pulumi.log.warn("""cpu_threads_per_core is deprecated: use 'cpu_options' argument instead""") if cpu_threads_per_core is not None: - pulumi.set(__self__, "cpu_threads_per_core", cpu_threads_per_core) + _setter("cpu_threads_per_core", cpu_threads_per_core) if credit_specification is not None: - pulumi.set(__self__, "credit_specification", credit_specification) + _setter("credit_specification", credit_specification) if disable_api_stop is not None: - pulumi.set(__self__, "disable_api_stop", disable_api_stop) + _setter("disable_api_stop", disable_api_stop) if disable_api_termination is not None: - pulumi.set(__self__, "disable_api_termination", disable_api_termination) + _setter("disable_api_termination", disable_api_termination) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if enclave_options is not None: - pulumi.set(__self__, "enclave_options", enclave_options) + _setter("enclave_options", enclave_options) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if get_password_data is not None: - pulumi.set(__self__, "get_password_data", get_password_data) + _setter("get_password_data", get_password_data) if hibernation is not None: - pulumi.set(__self__, "hibernation", hibernation) + _setter("hibernation", hibernation) if host_id is not None: - pulumi.set(__self__, "host_id", host_id) + _setter("host_id", host_id) if host_resource_group_arn is not None: - pulumi.set(__self__, "host_resource_group_arn", host_resource_group_arn) + _setter("host_resource_group_arn", host_resource_group_arn) if iam_instance_profile is not None: - pulumi.set(__self__, "iam_instance_profile", iam_instance_profile) + _setter("iam_instance_profile", iam_instance_profile) if instance_initiated_shutdown_behavior is not None: - pulumi.set(__self__, "instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) + _setter("instance_initiated_shutdown_behavior", instance_initiated_shutdown_behavior) if instance_interruption_behavior is not None: - pulumi.set(__self__, "instance_interruption_behavior", instance_interruption_behavior) + _setter("instance_interruption_behavior", instance_interruption_behavior) if instance_state is not None: - pulumi.set(__self__, "instance_state", instance_state) + _setter("instance_state", instance_state) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if ipv6_address_count is not None: - pulumi.set(__self__, "ipv6_address_count", ipv6_address_count) + _setter("ipv6_address_count", ipv6_address_count) if ipv6_addresses is not None: - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) + _setter("ipv6_addresses", ipv6_addresses) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if launch_group is not None: - pulumi.set(__self__, "launch_group", launch_group) + _setter("launch_group", launch_group) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if maintenance_options is not None: - pulumi.set(__self__, "maintenance_options", maintenance_options) + _setter("maintenance_options", maintenance_options) if metadata_options is not None: - pulumi.set(__self__, "metadata_options", metadata_options) + _setter("metadata_options", metadata_options) if monitoring is not None: - pulumi.set(__self__, "monitoring", monitoring) + _setter("monitoring", monitoring) if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if password_data is not None: - pulumi.set(__self__, "password_data", password_data) + _setter("password_data", password_data) if placement_group is not None: - pulumi.set(__self__, "placement_group", placement_group) + _setter("placement_group", placement_group) if placement_partition_number is not None: - pulumi.set(__self__, "placement_partition_number", placement_partition_number) + _setter("placement_partition_number", placement_partition_number) if primary_network_interface_id is not None: - pulumi.set(__self__, "primary_network_interface_id", primary_network_interface_id) + _setter("primary_network_interface_id", primary_network_interface_id) if private_dns is not None: - pulumi.set(__self__, "private_dns", private_dns) + _setter("private_dns", private_dns) if private_dns_name_options is not None: - pulumi.set(__self__, "private_dns_name_options", private_dns_name_options) + _setter("private_dns_name_options", private_dns_name_options) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if public_dns is not None: - pulumi.set(__self__, "public_dns", public_dns) + _setter("public_dns", public_dns) if public_ip is not None: - pulumi.set(__self__, "public_ip", public_ip) + _setter("public_ip", public_ip) if root_block_device is not None: - pulumi.set(__self__, "root_block_device", root_block_device) + _setter("root_block_device", root_block_device) if secondary_private_ips is not None: - pulumi.set(__self__, "secondary_private_ips", secondary_private_ips) + _setter("secondary_private_ips", secondary_private_ips) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_dest_check is not None: - pulumi.set(__self__, "source_dest_check", source_dest_check) + _setter("source_dest_check", source_dest_check) if spot_bid_status is not None: - pulumi.set(__self__, "spot_bid_status", spot_bid_status) + _setter("spot_bid_status", spot_bid_status) if spot_instance_id is not None: - pulumi.set(__self__, "spot_instance_id", spot_instance_id) + _setter("spot_instance_id", spot_instance_id) if spot_price is not None: - pulumi.set(__self__, "spot_price", spot_price) + _setter("spot_price", spot_price) if spot_request_state is not None: - pulumi.set(__self__, "spot_request_state", spot_request_state) + _setter("spot_request_state", spot_request_state) if spot_type is not None: - pulumi.set(__self__, "spot_type", spot_type) + _setter("spot_type", spot_type) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if user_data_base64 is not None: - pulumi.set(__self__, "user_data_base64", user_data_base64) + _setter("user_data_base64", user_data_base64) if user_data_replace_on_change is not None: - pulumi.set(__self__, "user_data_replace_on_change", user_data_replace_on_change) + _setter("user_data_replace_on_change", user_data_replace_on_change) if valid_from is not None: - pulumi.set(__self__, "valid_from", valid_from) + _setter("valid_from", valid_from) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) if volume_tags is not None: - pulumi.set(__self__, "volume_tags", volume_tags) + _setter("volume_tags", volume_tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) if wait_for_fulfillment is not None: - pulumi.set(__self__, "wait_for_fulfillment", wait_for_fulfillment) + _setter("wait_for_fulfillment", wait_for_fulfillment) @property @pulumi.getter @@ -1471,7 +1939,7 @@ def instance_initiated_shutdown_behavior(self, value: Optional[pulumi.Input[str] @pulumi.getter(name="instanceInterruptionBehavior") def instance_interruption_behavior(self) -> Optional[pulumi.Input[str]]: """ - The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. """ return pulumi.get(self, "instance_interruption_behavior") @@ -1942,7 +2410,7 @@ def valid_from(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="validUntil") def valid_until(self) -> Optional[pulumi.Input[str]]: """ - The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. """ return pulumi.get(self, "valid_until") @@ -2120,7 +2588,7 @@ def __init__(__self__, :param pulumi.Input[str] host_resource_group_arn: ARN of the host resource group in which to launch the instances. If you specify an ARN, omit the `tenancy` parameter or set it to `host`. :param pulumi.Input[str] iam_instance_profile: IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. - :param pulumi.Input[str] instance_interruption_behavior: The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + :param pulumi.Input[str] instance_interruption_behavior: Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. :param pulumi.Input[str] instance_type: Instance type to use for the instance. Required unless `launch_template` is specified and the Launch Template specifies an instance type. If an instance type is specified in the Launch Template, setting `instance_type` will override the instance type specified in the Launch Template. Updates to this field will trigger a stop/start of the EC2 instance. :param pulumi.Input[int] ipv6_address_count: Number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. :param pulumi.Input[Sequence[pulumi.Input[str]]] ipv6_addresses: Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface @@ -2152,7 +2620,7 @@ def __init__(__self__, :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. Updates to this field will trigger a stop/start of the EC2 instance by default. If the `user_data_replace_on_change` is set then updates to this field will trigger a destroy and recreate. :param pulumi.Input[bool] user_data_replace_on_change: When used in combination with `user_data` or `user_data_base64` will trigger a destroy and recreate when set to `true`. Defaults to `false` if not set. :param pulumi.Input[str] valid_from: The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. - :param pulumi.Input[str] valid_until: The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + :param pulumi.Input[str] valid_until: The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: Map of tags to assign, at instance-creation time, to root and EBS volumes. > **NOTE:** Do not use `volume_tags` if you plan to manage block device tags outside the `ec2.Instance` configuration, such as using `tags` in an `ebs.Volume` resource attached via `ec2.VolumeAttachment`. Doing so will result in resource cycling and inconsistent behavior. @@ -2220,6 +2688,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SpotInstanceRequestArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -2291,21 +2763,19 @@ def _internal_init(__self__, __props__.__dict__["associate_public_ip_address"] = associate_public_ip_address __props__.__dict__["availability_zone"] = availability_zone __props__.__dict__["block_duration_minutes"] = block_duration_minutes + capacity_reservation_specification = _utilities.configure(capacity_reservation_specification, SpotInstanceRequestCapacityReservationSpecificationArgs, True) __props__.__dict__["capacity_reservation_specification"] = capacity_reservation_specification - if cpu_core_count is not None and not opts.urn: - warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) - pulumi.log.warn("""cpu_core_count is deprecated: use 'cpu_options' argument instead""") __props__.__dict__["cpu_core_count"] = cpu_core_count + cpu_options = _utilities.configure(cpu_options, SpotInstanceRequestCpuOptionsArgs, True) __props__.__dict__["cpu_options"] = cpu_options - if cpu_threads_per_core is not None and not opts.urn: - warnings.warn("""use 'cpu_options' argument instead""", DeprecationWarning) - pulumi.log.warn("""cpu_threads_per_core is deprecated: use 'cpu_options' argument instead""") __props__.__dict__["cpu_threads_per_core"] = cpu_threads_per_core + credit_specification = _utilities.configure(credit_specification, SpotInstanceRequestCreditSpecificationArgs, True) __props__.__dict__["credit_specification"] = credit_specification __props__.__dict__["disable_api_stop"] = disable_api_stop __props__.__dict__["disable_api_termination"] = disable_api_termination __props__.__dict__["ebs_block_devices"] = ebs_block_devices __props__.__dict__["ebs_optimized"] = ebs_optimized + enclave_options = _utilities.configure(enclave_options, SpotInstanceRequestEnclaveOptionsArgs, True) __props__.__dict__["enclave_options"] = enclave_options __props__.__dict__["ephemeral_block_devices"] = ephemeral_block_devices __props__.__dict__["get_password_data"] = get_password_data @@ -2320,15 +2790,20 @@ def _internal_init(__self__, __props__.__dict__["ipv6_addresses"] = ipv6_addresses __props__.__dict__["key_name"] = key_name __props__.__dict__["launch_group"] = launch_group + launch_template = _utilities.configure(launch_template, SpotInstanceRequestLaunchTemplateArgs, True) __props__.__dict__["launch_template"] = launch_template + maintenance_options = _utilities.configure(maintenance_options, SpotInstanceRequestMaintenanceOptionsArgs, True) __props__.__dict__["maintenance_options"] = maintenance_options + metadata_options = _utilities.configure(metadata_options, SpotInstanceRequestMetadataOptionsArgs, True) __props__.__dict__["metadata_options"] = metadata_options __props__.__dict__["monitoring"] = monitoring __props__.__dict__["network_interfaces"] = network_interfaces __props__.__dict__["placement_group"] = placement_group __props__.__dict__["placement_partition_number"] = placement_partition_number + private_dns_name_options = _utilities.configure(private_dns_name_options, SpotInstanceRequestPrivateDnsNameOptionsArgs, True) __props__.__dict__["private_dns_name_options"] = private_dns_name_options __props__.__dict__["private_ip"] = private_ip + root_block_device = _utilities.configure(root_block_device, SpotInstanceRequestRootBlockDeviceArgs, True) __props__.__dict__["root_block_device"] = root_block_device __props__.__dict__["secondary_private_ips"] = secondary_private_ips __props__.__dict__["security_groups"] = security_groups @@ -2467,7 +2942,7 @@ def get(resource_name: str, :param pulumi.Input[str] host_resource_group_arn: ARN of the host resource group in which to launch the instances. If you specify an ARN, omit the `tenancy` parameter or set it to `host`. :param pulumi.Input[str] iam_instance_profile: IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. - :param pulumi.Input[str] instance_interruption_behavior: The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + :param pulumi.Input[str] instance_interruption_behavior: Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. :param pulumi.Input[str] instance_type: Instance type to use for the instance. Required unless `launch_template` is specified and the Launch Template specifies an instance type. If an instance type is specified in the Launch Template, setting `instance_type` will override the instance type specified in the Launch Template. Updates to this field will trigger a stop/start of the EC2 instance. :param pulumi.Input[int] ipv6_address_count: Number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. :param pulumi.Input[Sequence[pulumi.Input[str]]] ipv6_addresses: Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface @@ -2514,7 +2989,7 @@ def get(resource_name: str, :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. Updates to this field will trigger a stop/start of the EC2 instance by default. If the `user_data_replace_on_change` is set then updates to this field will trigger a destroy and recreate. :param pulumi.Input[bool] user_data_replace_on_change: When used in combination with `user_data` or `user_data_base64` will trigger a destroy and recreate when set to `true`. Defaults to `false` if not set. :param pulumi.Input[str] valid_from: The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. - :param pulumi.Input[str] valid_until: The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + :param pulumi.Input[str] valid_until: The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: Map of tags to assign, at instance-creation time, to root and EBS volumes. > **NOTE:** Do not use `volume_tags` if you plan to manage block device tags outside the `ec2.Instance` configuration, such as using `tags` in an `ebs.Volume` resource attached via `ec2.VolumeAttachment`. Doing so will result in resource cycling and inconsistent behavior. @@ -2781,7 +3256,7 @@ def instance_initiated_shutdown_behavior(self) -> pulumi.Output[str]: @pulumi.getter(name="instanceInterruptionBehavior") def instance_interruption_behavior(self) -> pulumi.Output[Optional[str]]: """ - The behavior when a Spot Instance is interrupted. Valid values include `hibernate`, `stop`, `terminate` . The default is `terminate`. + Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `stop`, or `hibernate`. Default value is `terminate`. """ return pulumi.get(self, "instance_interruption_behavior") @@ -3096,7 +3571,7 @@ def valid_from(self) -> pulumi.Output[str]: @pulumi.getter(name="validUntil") def valid_until(self) -> pulumi.Output[str]: """ - The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. """ return pulumi.get(self, "valid_until") diff --git a/sdk/python/pulumi_aws/ec2/subnet.py b/sdk/python/pulumi_aws/ec2/subnet.py index f51617455d5..31ec5273f8b 100644 --- a/sdk/python/pulumi_aws/ec2/subnet.py +++ b/sdk/python/pulumi_aws/ec2/subnet.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SubnetArgs', 'Subnet'] @@ -56,39 +56,116 @@ def __init__(__self__, *, :param pulumi.Input[str] private_dns_hostname_type_on_launch: The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: `ip-name`, `resource-name`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "vpc_id", vpc_id) + SubnetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + assign_ipv6_address_on_creation=assign_ipv6_address_on_creation, + availability_zone=availability_zone, + availability_zone_id=availability_zone_id, + cidr_block=cidr_block, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + enable_dns64=enable_dns64, + enable_lni_at_device_index=enable_lni_at_device_index, + enable_resource_name_dns_a_record_on_launch=enable_resource_name_dns_a_record_on_launch, + enable_resource_name_dns_aaaa_record_on_launch=enable_resource_name_dns_aaaa_record_on_launch, + ipv6_cidr_block=ipv6_cidr_block, + ipv6_native=ipv6_native, + map_customer_owned_ip_on_launch=map_customer_owned_ip_on_launch, + map_public_ip_on_launch=map_public_ip_on_launch, + outpost_arn=outpost_arn, + private_dns_hostname_type_on_launch=private_dns_hostname_type_on_launch, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + assign_ipv6_address_on_creation: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + availability_zone_id: Optional[pulumi.Input[str]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + enable_dns64: Optional[pulumi.Input[bool]] = None, + enable_lni_at_device_index: Optional[pulumi.Input[int]] = None, + enable_resource_name_dns_a_record_on_launch: Optional[pulumi.Input[bool]] = None, + enable_resource_name_dns_aaaa_record_on_launch: Optional[pulumi.Input[bool]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_native: Optional[pulumi.Input[bool]] = None, + map_customer_owned_ip_on_launch: Optional[pulumi.Input[bool]] = None, + map_public_ip_on_launch: Optional[pulumi.Input[bool]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + private_dns_hostname_type_on_launch: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if assign_ipv6_address_on_creation is None and 'assignIpv6AddressOnCreation' in kwargs: + assign_ipv6_address_on_creation = kwargs['assignIpv6AddressOnCreation'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone_id is None and 'availabilityZoneId' in kwargs: + availability_zone_id = kwargs['availabilityZoneId'] + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if enable_dns64 is None and 'enableDns64' in kwargs: + enable_dns64 = kwargs['enableDns64'] + if enable_lni_at_device_index is None and 'enableLniAtDeviceIndex' in kwargs: + enable_lni_at_device_index = kwargs['enableLniAtDeviceIndex'] + if enable_resource_name_dns_a_record_on_launch is None and 'enableResourceNameDnsARecordOnLaunch' in kwargs: + enable_resource_name_dns_a_record_on_launch = kwargs['enableResourceNameDnsARecordOnLaunch'] + if enable_resource_name_dns_aaaa_record_on_launch is None and 'enableResourceNameDnsAaaaRecordOnLaunch' in kwargs: + enable_resource_name_dns_aaaa_record_on_launch = kwargs['enableResourceNameDnsAaaaRecordOnLaunch'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_native is None and 'ipv6Native' in kwargs: + ipv6_native = kwargs['ipv6Native'] + if map_customer_owned_ip_on_launch is None and 'mapCustomerOwnedIpOnLaunch' in kwargs: + map_customer_owned_ip_on_launch = kwargs['mapCustomerOwnedIpOnLaunch'] + if map_public_ip_on_launch is None and 'mapPublicIpOnLaunch' in kwargs: + map_public_ip_on_launch = kwargs['mapPublicIpOnLaunch'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if private_dns_hostname_type_on_launch is None and 'privateDnsHostnameTypeOnLaunch' in kwargs: + private_dns_hostname_type_on_launch = kwargs['privateDnsHostnameTypeOnLaunch'] + + _setter("vpc_id", vpc_id) if assign_ipv6_address_on_creation is not None: - pulumi.set(__self__, "assign_ipv6_address_on_creation", assign_ipv6_address_on_creation) + _setter("assign_ipv6_address_on_creation", assign_ipv6_address_on_creation) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if availability_zone_id is not None: - pulumi.set(__self__, "availability_zone_id", availability_zone_id) + _setter("availability_zone_id", availability_zone_id) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if enable_dns64 is not None: - pulumi.set(__self__, "enable_dns64", enable_dns64) + _setter("enable_dns64", enable_dns64) if enable_lni_at_device_index is not None: - pulumi.set(__self__, "enable_lni_at_device_index", enable_lni_at_device_index) + _setter("enable_lni_at_device_index", enable_lni_at_device_index) if enable_resource_name_dns_a_record_on_launch is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record_on_launch", enable_resource_name_dns_a_record_on_launch) + _setter("enable_resource_name_dns_a_record_on_launch", enable_resource_name_dns_a_record_on_launch) if enable_resource_name_dns_aaaa_record_on_launch is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record_on_launch", enable_resource_name_dns_aaaa_record_on_launch) + _setter("enable_resource_name_dns_aaaa_record_on_launch", enable_resource_name_dns_aaaa_record_on_launch) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_native is not None: - pulumi.set(__self__, "ipv6_native", ipv6_native) + _setter("ipv6_native", ipv6_native) if map_customer_owned_ip_on_launch is not None: - pulumi.set(__self__, "map_customer_owned_ip_on_launch", map_customer_owned_ip_on_launch) + _setter("map_customer_owned_ip_on_launch", map_customer_owned_ip_on_launch) if map_public_ip_on_launch is not None: - pulumi.set(__self__, "map_public_ip_on_launch", map_public_ip_on_launch) + _setter("map_public_ip_on_launch", map_public_ip_on_launch) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if private_dns_hostname_type_on_launch is not None: - pulumi.set(__self__, "private_dns_hostname_type_on_launch", private_dns_hostname_type_on_launch) + _setter("private_dns_hostname_type_on_launch", private_dns_hostname_type_on_launch) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="vpcId") @@ -353,51 +430,140 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The VPC ID. """ + _SubnetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + assign_ipv6_address_on_creation=assign_ipv6_address_on_creation, + availability_zone=availability_zone, + availability_zone_id=availability_zone_id, + cidr_block=cidr_block, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + enable_dns64=enable_dns64, + enable_lni_at_device_index=enable_lni_at_device_index, + enable_resource_name_dns_a_record_on_launch=enable_resource_name_dns_a_record_on_launch, + enable_resource_name_dns_aaaa_record_on_launch=enable_resource_name_dns_aaaa_record_on_launch, + ipv6_cidr_block=ipv6_cidr_block, + ipv6_cidr_block_association_id=ipv6_cidr_block_association_id, + ipv6_native=ipv6_native, + map_customer_owned_ip_on_launch=map_customer_owned_ip_on_launch, + map_public_ip_on_launch=map_public_ip_on_launch, + outpost_arn=outpost_arn, + owner_id=owner_id, + private_dns_hostname_type_on_launch=private_dns_hostname_type_on_launch, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + assign_ipv6_address_on_creation: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + availability_zone_id: Optional[pulumi.Input[str]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + enable_dns64: Optional[pulumi.Input[bool]] = None, + enable_lni_at_device_index: Optional[pulumi.Input[int]] = None, + enable_resource_name_dns_a_record_on_launch: Optional[pulumi.Input[bool]] = None, + enable_resource_name_dns_aaaa_record_on_launch: Optional[pulumi.Input[bool]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block_association_id: Optional[pulumi.Input[str]] = None, + ipv6_native: Optional[pulumi.Input[bool]] = None, + map_customer_owned_ip_on_launch: Optional[pulumi.Input[bool]] = None, + map_public_ip_on_launch: Optional[pulumi.Input[bool]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + private_dns_hostname_type_on_launch: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assign_ipv6_address_on_creation is None and 'assignIpv6AddressOnCreation' in kwargs: + assign_ipv6_address_on_creation = kwargs['assignIpv6AddressOnCreation'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone_id is None and 'availabilityZoneId' in kwargs: + availability_zone_id = kwargs['availabilityZoneId'] + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if enable_dns64 is None and 'enableDns64' in kwargs: + enable_dns64 = kwargs['enableDns64'] + if enable_lni_at_device_index is None and 'enableLniAtDeviceIndex' in kwargs: + enable_lni_at_device_index = kwargs['enableLniAtDeviceIndex'] + if enable_resource_name_dns_a_record_on_launch is None and 'enableResourceNameDnsARecordOnLaunch' in kwargs: + enable_resource_name_dns_a_record_on_launch = kwargs['enableResourceNameDnsARecordOnLaunch'] + if enable_resource_name_dns_aaaa_record_on_launch is None and 'enableResourceNameDnsAaaaRecordOnLaunch' in kwargs: + enable_resource_name_dns_aaaa_record_on_launch = kwargs['enableResourceNameDnsAaaaRecordOnLaunch'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_cidr_block_association_id is None and 'ipv6CidrBlockAssociationId' in kwargs: + ipv6_cidr_block_association_id = kwargs['ipv6CidrBlockAssociationId'] + if ipv6_native is None and 'ipv6Native' in kwargs: + ipv6_native = kwargs['ipv6Native'] + if map_customer_owned_ip_on_launch is None and 'mapCustomerOwnedIpOnLaunch' in kwargs: + map_customer_owned_ip_on_launch = kwargs['mapCustomerOwnedIpOnLaunch'] + if map_public_ip_on_launch is None and 'mapPublicIpOnLaunch' in kwargs: + map_public_ip_on_launch = kwargs['mapPublicIpOnLaunch'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if private_dns_hostname_type_on_launch is None and 'privateDnsHostnameTypeOnLaunch' in kwargs: + private_dns_hostname_type_on_launch = kwargs['privateDnsHostnameTypeOnLaunch'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if assign_ipv6_address_on_creation is not None: - pulumi.set(__self__, "assign_ipv6_address_on_creation", assign_ipv6_address_on_creation) + _setter("assign_ipv6_address_on_creation", assign_ipv6_address_on_creation) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if availability_zone_id is not None: - pulumi.set(__self__, "availability_zone_id", availability_zone_id) + _setter("availability_zone_id", availability_zone_id) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if enable_dns64 is not None: - pulumi.set(__self__, "enable_dns64", enable_dns64) + _setter("enable_dns64", enable_dns64) if enable_lni_at_device_index is not None: - pulumi.set(__self__, "enable_lni_at_device_index", enable_lni_at_device_index) + _setter("enable_lni_at_device_index", enable_lni_at_device_index) if enable_resource_name_dns_a_record_on_launch is not None: - pulumi.set(__self__, "enable_resource_name_dns_a_record_on_launch", enable_resource_name_dns_a_record_on_launch) + _setter("enable_resource_name_dns_a_record_on_launch", enable_resource_name_dns_a_record_on_launch) if enable_resource_name_dns_aaaa_record_on_launch is not None: - pulumi.set(__self__, "enable_resource_name_dns_aaaa_record_on_launch", enable_resource_name_dns_aaaa_record_on_launch) + _setter("enable_resource_name_dns_aaaa_record_on_launch", enable_resource_name_dns_aaaa_record_on_launch) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_cidr_block_association_id is not None: - pulumi.set(__self__, "ipv6_cidr_block_association_id", ipv6_cidr_block_association_id) + _setter("ipv6_cidr_block_association_id", ipv6_cidr_block_association_id) if ipv6_native is not None: - pulumi.set(__self__, "ipv6_native", ipv6_native) + _setter("ipv6_native", ipv6_native) if map_customer_owned_ip_on_launch is not None: - pulumi.set(__self__, "map_customer_owned_ip_on_launch", map_customer_owned_ip_on_launch) + _setter("map_customer_owned_ip_on_launch", map_customer_owned_ip_on_launch) if map_public_ip_on_launch is not None: - pulumi.set(__self__, "map_public_ip_on_launch", map_public_ip_on_launch) + _setter("map_public_ip_on_launch", map_public_ip_on_launch) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if private_dns_hostname_type_on_launch is not None: - pulumi.set(__self__, "private_dns_hostname_type_on_launch", private_dns_hostname_type_on_launch) + _setter("private_dns_hostname_type_on_launch", private_dns_hostname_type_on_launch) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -812,6 +978,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SubnetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/subnet_cidr_reservation.py b/sdk/python/pulumi_aws/ec2/subnet_cidr_reservation.py index 224347ed102..0c100cce7a8 100644 --- a/sdk/python/pulumi_aws/ec2/subnet_cidr_reservation.py +++ b/sdk/python/pulumi_aws/ec2/subnet_cidr_reservation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SubnetCidrReservationArgs', 'SubnetCidrReservation'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_id: The ID of the subnet to create the reservation for. :param pulumi.Input[str] description: A brief description of the reservation. """ - pulumi.set(__self__, "cidr_block", cidr_block) - pulumi.set(__self__, "reservation_type", reservation_type) - pulumi.set(__self__, "subnet_id", subnet_id) + SubnetCidrReservationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + reservation_type=reservation_type, + subnet_id=subnet_id, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[pulumi.Input[str]] = None, + reservation_type: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if cidr_block is None: + raise TypeError("Missing 'cidr_block' argument") + if reservation_type is None and 'reservationType' in kwargs: + reservation_type = kwargs['reservationType'] + if reservation_type is None: + raise TypeError("Missing 'reservation_type' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("cidr_block", cidr_block) + _setter("reservation_type", reservation_type) + _setter("subnet_id", subnet_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="cidrBlock") @@ -96,16 +125,43 @@ def __init__(__self__, *, :param pulumi.Input[str] reservation_type: The type of reservation to create. Valid values: `explicit`, `prefix` :param pulumi.Input[str] subnet_id: The ID of the subnet to create the reservation for. """ + _SubnetCidrReservationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + description=description, + owner_id=owner_id, + reservation_type=reservation_type, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + reservation_type: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if reservation_type is None and 'reservationType' in kwargs: + reservation_type = kwargs['reservationType'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if reservation_type is not None: - pulumi.set(__self__, "reservation_type", reservation_type) + _setter("reservation_type", reservation_type) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="cidrBlock") @@ -247,6 +303,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SubnetCidrReservationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/tag.py b/sdk/python/pulumi_aws/ec2/tag.py index b9692ab9aec..ec040462ee1 100644 --- a/sdk/python/pulumi_aws/ec2/tag.py +++ b/sdk/python/pulumi_aws/ec2/tag.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TagArgs', 'Tag'] @@ -23,9 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_id: The ID of the EC2 resource to manage the tag for. :param pulumi.Input[str] value: The value of the tag. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "value", value) + TagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + resource_id=resource_id, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("resource_id", resource_id) + _setter("value", value) @property @pulumi.getter @@ -76,12 +99,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_id: The ID of the EC2 resource to manage the tag for. :param pulumi.Input[str] value: The value of the tag. """ + _TagState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + resource_id=resource_id, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -219,6 +259,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TagArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/traffic_mirror_filter.py b/sdk/python/pulumi_aws/ec2/traffic_mirror_filter.py index bcc69e5fbb3..9e37bdf4374 100644 --- a/sdk/python/pulumi_aws/ec2/traffic_mirror_filter.py +++ b/sdk/python/pulumi_aws/ec2/traffic_mirror_filter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TrafficMirrorFilterArgs', 'TrafficMirrorFilter'] @@ -23,12 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] network_services: List of amazon network services that should be mirrored. Valid values: `amazon-dns`. :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. """ + TrafficMirrorFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + network_services=network_services, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + network_services: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_services is None and 'networkServices' in kwargs: + network_services = kwargs['networkServices'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if network_services is not None: - pulumi.set(__self__, "network_services", network_services) + _setter("network_services", network_services) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -83,19 +100,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _TrafficMirrorFilterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + network_services=network_services, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + network_services: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_services is None and 'networkServices' in kwargs: + network_services = kwargs['networkServices'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if network_services is not None: - pulumi.set(__self__, "network_services", network_services) + _setter("network_services", network_services) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -242,6 +282,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrafficMirrorFilterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/traffic_mirror_filter_rule.py b/sdk/python/pulumi_aws/ec2/traffic_mirror_filter_rule.py index eaf9a2b33f5..d069bdbffdf 100644 --- a/sdk/python/pulumi_aws/ec2/traffic_mirror_filter_rule.py +++ b/sdk/python/pulumi_aws/ec2/traffic_mirror_filter_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,20 +41,77 @@ def __init__(__self__, *, :param pulumi.Input[int] protocol: Protocol number, for example 17 (UDP), to assign to the Traffic Mirror rule. For information about the protocol value, see [Protocol Numbers](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) on the Internet Assigned Numbers Authority (IANA) website. :param pulumi.Input['TrafficMirrorFilterRuleSourcePortRangeArgs'] source_port_range: Source port range. Supported only when the protocol is set to TCP(6) or UDP(17). See Traffic mirror port range documented below """ - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) - pulumi.set(__self__, "rule_action", rule_action) - pulumi.set(__self__, "rule_number", rule_number) - pulumi.set(__self__, "source_cidr_block", source_cidr_block) - pulumi.set(__self__, "traffic_direction", traffic_direction) - pulumi.set(__self__, "traffic_mirror_filter_id", traffic_mirror_filter_id) + TrafficMirrorFilterRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr_block=destination_cidr_block, + rule_action=rule_action, + rule_number=rule_number, + source_cidr_block=source_cidr_block, + traffic_direction=traffic_direction, + traffic_mirror_filter_id=traffic_mirror_filter_id, + description=description, + destination_port_range=destination_port_range, + protocol=protocol, + source_port_range=source_port_range, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr_block: Optional[pulumi.Input[str]] = None, + rule_action: Optional[pulumi.Input[str]] = None, + rule_number: Optional[pulumi.Input[int]] = None, + source_cidr_block: Optional[pulumi.Input[str]] = None, + traffic_direction: Optional[pulumi.Input[str]] = None, + traffic_mirror_filter_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + destination_port_range: Optional[pulumi.Input['TrafficMirrorFilterRuleDestinationPortRangeArgs']] = None, + protocol: Optional[pulumi.Input[int]] = None, + source_port_range: Optional[pulumi.Input['TrafficMirrorFilterRuleSourcePortRangeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_cidr_block is None: + raise TypeError("Missing 'destination_cidr_block' argument") + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_action is None: + raise TypeError("Missing 'rule_action' argument") + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if rule_number is None: + raise TypeError("Missing 'rule_number' argument") + if source_cidr_block is None and 'sourceCidrBlock' in kwargs: + source_cidr_block = kwargs['sourceCidrBlock'] + if source_cidr_block is None: + raise TypeError("Missing 'source_cidr_block' argument") + if traffic_direction is None and 'trafficDirection' in kwargs: + traffic_direction = kwargs['trafficDirection'] + if traffic_direction is None: + raise TypeError("Missing 'traffic_direction' argument") + if traffic_mirror_filter_id is None and 'trafficMirrorFilterId' in kwargs: + traffic_mirror_filter_id = kwargs['trafficMirrorFilterId'] + if traffic_mirror_filter_id is None: + raise TypeError("Missing 'traffic_mirror_filter_id' argument") + if destination_port_range is None and 'destinationPortRange' in kwargs: + destination_port_range = kwargs['destinationPortRange'] + if source_port_range is None and 'sourcePortRange' in kwargs: + source_port_range = kwargs['sourcePortRange'] + + _setter("destination_cidr_block", destination_cidr_block) + _setter("rule_action", rule_action) + _setter("rule_number", rule_number) + _setter("source_cidr_block", source_cidr_block) + _setter("traffic_direction", traffic_direction) + _setter("traffic_mirror_filter_id", traffic_mirror_filter_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if destination_port_range is not None: - pulumi.set(__self__, "destination_port_range", destination_port_range) + _setter("destination_port_range", destination_port_range) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if source_port_range is not None: - pulumi.set(__self__, "source_port_range", source_port_range) + _setter("source_port_range", source_port_range) @property @pulumi.getter(name="destinationCidrBlock") @@ -209,28 +266,75 @@ def __init__(__self__, *, Traffic mirror port range support following attributes: :param pulumi.Input[str] traffic_mirror_filter_id: ID of the traffic mirror filter to which this rule should be added """ + _TrafficMirrorFilterRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + destination_cidr_block=destination_cidr_block, + destination_port_range=destination_port_range, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + source_cidr_block=source_cidr_block, + source_port_range=source_port_range, + traffic_direction=traffic_direction, + traffic_mirror_filter_id=traffic_mirror_filter_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + destination_cidr_block: Optional[pulumi.Input[str]] = None, + destination_port_range: Optional[pulumi.Input['TrafficMirrorFilterRuleDestinationPortRangeArgs']] = None, + protocol: Optional[pulumi.Input[int]] = None, + rule_action: Optional[pulumi.Input[str]] = None, + rule_number: Optional[pulumi.Input[int]] = None, + source_cidr_block: Optional[pulumi.Input[str]] = None, + source_port_range: Optional[pulumi.Input['TrafficMirrorFilterRuleSourcePortRangeArgs']] = None, + traffic_direction: Optional[pulumi.Input[str]] = None, + traffic_mirror_filter_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_port_range is None and 'destinationPortRange' in kwargs: + destination_port_range = kwargs['destinationPortRange'] + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if source_cidr_block is None and 'sourceCidrBlock' in kwargs: + source_cidr_block = kwargs['sourceCidrBlock'] + if source_port_range is None and 'sourcePortRange' in kwargs: + source_port_range = kwargs['sourcePortRange'] + if traffic_direction is None and 'trafficDirection' in kwargs: + traffic_direction = kwargs['trafficDirection'] + if traffic_mirror_filter_id is None and 'trafficMirrorFilterId' in kwargs: + traffic_mirror_filter_id = kwargs['trafficMirrorFilterId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if destination_cidr_block is not None: - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) + _setter("destination_cidr_block", destination_cidr_block) if destination_port_range is not None: - pulumi.set(__self__, "destination_port_range", destination_port_range) + _setter("destination_port_range", destination_port_range) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if rule_action is not None: - pulumi.set(__self__, "rule_action", rule_action) + _setter("rule_action", rule_action) if rule_number is not None: - pulumi.set(__self__, "rule_number", rule_number) + _setter("rule_number", rule_number) if source_cidr_block is not None: - pulumi.set(__self__, "source_cidr_block", source_cidr_block) + _setter("source_cidr_block", source_cidr_block) if source_port_range is not None: - pulumi.set(__self__, "source_port_range", source_port_range) + _setter("source_port_range", source_port_range) if traffic_direction is not None: - pulumi.set(__self__, "traffic_direction", traffic_direction) + _setter("traffic_direction", traffic_direction) if traffic_mirror_filter_id is not None: - pulumi.set(__self__, "traffic_mirror_filter_id", traffic_mirror_filter_id) + _setter("traffic_mirror_filter_id", traffic_mirror_filter_id) @property @pulumi.getter @@ -514,6 +618,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrafficMirrorFilterRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -542,6 +650,7 @@ def _internal_init(__self__, if destination_cidr_block is None and not opts.urn: raise TypeError("Missing required property 'destination_cidr_block'") __props__.__dict__["destination_cidr_block"] = destination_cidr_block + destination_port_range = _utilities.configure(destination_port_range, TrafficMirrorFilterRuleDestinationPortRangeArgs, True) __props__.__dict__["destination_port_range"] = destination_port_range __props__.__dict__["protocol"] = protocol if rule_action is None and not opts.urn: @@ -553,6 +662,7 @@ def _internal_init(__self__, if source_cidr_block is None and not opts.urn: raise TypeError("Missing required property 'source_cidr_block'") __props__.__dict__["source_cidr_block"] = source_cidr_block + source_port_range = _utilities.configure(source_port_range, TrafficMirrorFilterRuleSourcePortRangeArgs, True) __props__.__dict__["source_port_range"] = source_port_range if traffic_direction is None and not opts.urn: raise TypeError("Missing required property 'traffic_direction'") diff --git a/sdk/python/pulumi_aws/ec2/traffic_mirror_session.py b/sdk/python/pulumi_aws/ec2/traffic_mirror_session.py index d7e1f7298a3..ca4df31f3d0 100644 --- a/sdk/python/pulumi_aws/ec2/traffic_mirror_session.py +++ b/sdk/python/pulumi_aws/ec2/traffic_mirror_session.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TrafficMirrorSessionArgs', 'TrafficMirrorSession'] @@ -33,18 +33,63 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[int] virtual_network_id: The VXLAN ID for the Traffic Mirror session. For more information about the VXLAN protocol, see RFC 7348. If you do not specify a VirtualNetworkId, an account-wide unique id is chosen at random. """ - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "session_number", session_number) - pulumi.set(__self__, "traffic_mirror_filter_id", traffic_mirror_filter_id) - pulumi.set(__self__, "traffic_mirror_target_id", traffic_mirror_target_id) + TrafficMirrorSessionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interface_id=network_interface_id, + session_number=session_number, + traffic_mirror_filter_id=traffic_mirror_filter_id, + traffic_mirror_target_id=traffic_mirror_target_id, + description=description, + packet_length=packet_length, + tags=tags, + virtual_network_id=virtual_network_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interface_id: Optional[pulumi.Input[str]] = None, + session_number: Optional[pulumi.Input[int]] = None, + traffic_mirror_filter_id: Optional[pulumi.Input[str]] = None, + traffic_mirror_target_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + packet_length: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + virtual_network_id: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if session_number is None and 'sessionNumber' in kwargs: + session_number = kwargs['sessionNumber'] + if session_number is None: + raise TypeError("Missing 'session_number' argument") + if traffic_mirror_filter_id is None and 'trafficMirrorFilterId' in kwargs: + traffic_mirror_filter_id = kwargs['trafficMirrorFilterId'] + if traffic_mirror_filter_id is None: + raise TypeError("Missing 'traffic_mirror_filter_id' argument") + if traffic_mirror_target_id is None and 'trafficMirrorTargetId' in kwargs: + traffic_mirror_target_id = kwargs['trafficMirrorTargetId'] + if traffic_mirror_target_id is None: + raise TypeError("Missing 'traffic_mirror_target_id' argument") + if packet_length is None and 'packetLength' in kwargs: + packet_length = kwargs['packetLength'] + if virtual_network_id is None and 'virtualNetworkId' in kwargs: + virtual_network_id = kwargs['virtualNetworkId'] + + _setter("network_interface_id", network_interface_id) + _setter("session_number", session_number) + _setter("traffic_mirror_filter_id", traffic_mirror_filter_id) + _setter("traffic_mirror_target_id", traffic_mirror_target_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if packet_length is not None: - pulumi.set(__self__, "packet_length", packet_length) + _setter("packet_length", packet_length) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if virtual_network_id is not None: - pulumi.set(__self__, "virtual_network_id", virtual_network_id) + _setter("virtual_network_id", virtual_network_id) @property @pulumi.getter(name="networkInterfaceId") @@ -171,31 +216,78 @@ def __init__(__self__, *, :param pulumi.Input[str] traffic_mirror_target_id: ID of the traffic mirror target to be used :param pulumi.Input[int] virtual_network_id: The VXLAN ID for the Traffic Mirror session. For more information about the VXLAN protocol, see RFC 7348. If you do not specify a VirtualNetworkId, an account-wide unique id is chosen at random. """ + _TrafficMirrorSessionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + network_interface_id=network_interface_id, + owner_id=owner_id, + packet_length=packet_length, + session_number=session_number, + tags=tags, + tags_all=tags_all, + traffic_mirror_filter_id=traffic_mirror_filter_id, + traffic_mirror_target_id=traffic_mirror_target_id, + virtual_network_id=virtual_network_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + packet_length: Optional[pulumi.Input[int]] = None, + session_number: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + traffic_mirror_filter_id: Optional[pulumi.Input[str]] = None, + traffic_mirror_target_id: Optional[pulumi.Input[str]] = None, + virtual_network_id: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if packet_length is None and 'packetLength' in kwargs: + packet_length = kwargs['packetLength'] + if session_number is None and 'sessionNumber' in kwargs: + session_number = kwargs['sessionNumber'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if traffic_mirror_filter_id is None and 'trafficMirrorFilterId' in kwargs: + traffic_mirror_filter_id = kwargs['trafficMirrorFilterId'] + if traffic_mirror_target_id is None and 'trafficMirrorTargetId' in kwargs: + traffic_mirror_target_id = kwargs['trafficMirrorTargetId'] + if virtual_network_id is None and 'virtualNetworkId' in kwargs: + virtual_network_id = kwargs['virtualNetworkId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if packet_length is not None: - pulumi.set(__self__, "packet_length", packet_length) + _setter("packet_length", packet_length) if session_number is not None: - pulumi.set(__self__, "session_number", session_number) + _setter("session_number", session_number) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if traffic_mirror_filter_id is not None: - pulumi.set(__self__, "traffic_mirror_filter_id", traffic_mirror_filter_id) + _setter("traffic_mirror_filter_id", traffic_mirror_filter_id) if traffic_mirror_target_id is not None: - pulumi.set(__self__, "traffic_mirror_target_id", traffic_mirror_target_id) + _setter("traffic_mirror_target_id", traffic_mirror_target_id) if virtual_network_id is not None: - pulumi.set(__self__, "virtual_network_id", virtual_network_id) + _setter("virtual_network_id", virtual_network_id) @property @pulumi.getter @@ -438,6 +530,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrafficMirrorSessionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/traffic_mirror_target.py b/sdk/python/pulumi_aws/ec2/traffic_mirror_target.py index 8cf63ef06f6..3eba8c75b21 100644 --- a/sdk/python/pulumi_aws/ec2/traffic_mirror_target.py +++ b/sdk/python/pulumi_aws/ec2/traffic_mirror_target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TrafficMirrorTargetArgs', 'TrafficMirrorTarget'] @@ -29,16 +29,41 @@ def __init__(__self__, *, **NOTE:** Either `network_interface_id` or `network_load_balancer_arn` should be specified and both should not be specified together """ + TrafficMirrorTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + gateway_load_balancer_endpoint_id=gateway_load_balancer_endpoint_id, + network_interface_id=network_interface_id, + network_load_balancer_arn=network_load_balancer_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + gateway_load_balancer_endpoint_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + network_load_balancer_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gateway_load_balancer_endpoint_id is None and 'gatewayLoadBalancerEndpointId' in kwargs: + gateway_load_balancer_endpoint_id = kwargs['gatewayLoadBalancerEndpointId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_load_balancer_arn is None and 'networkLoadBalancerArn' in kwargs: + network_load_balancer_arn = kwargs['networkLoadBalancerArn'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if gateway_load_balancer_endpoint_id is not None: - pulumi.set(__self__, "gateway_load_balancer_endpoint_id", gateway_load_balancer_endpoint_id) + _setter("gateway_load_balancer_endpoint_id", gateway_load_balancer_endpoint_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if network_load_balancer_arn is not None: - pulumi.set(__self__, "network_load_balancer_arn", network_load_balancer_arn) + _setter("network_load_balancer_arn", network_load_balancer_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -127,25 +152,60 @@ def __init__(__self__, *, **NOTE:** Either `network_interface_id` or `network_load_balancer_arn` should be specified and both should not be specified together :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. """ + _TrafficMirrorTargetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + gateway_load_balancer_endpoint_id=gateway_load_balancer_endpoint_id, + network_interface_id=network_interface_id, + network_load_balancer_arn=network_load_balancer_arn, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + gateway_load_balancer_endpoint_id: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + network_load_balancer_arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gateway_load_balancer_endpoint_id is None and 'gatewayLoadBalancerEndpointId' in kwargs: + gateway_load_balancer_endpoint_id = kwargs['gatewayLoadBalancerEndpointId'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_load_balancer_arn is None and 'networkLoadBalancerArn' in kwargs: + network_load_balancer_arn = kwargs['networkLoadBalancerArn'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if gateway_load_balancer_endpoint_id is not None: - pulumi.set(__self__, "gateway_load_balancer_endpoint_id", gateway_load_balancer_endpoint_id) + _setter("gateway_load_balancer_endpoint_id", gateway_load_balancer_endpoint_id) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if network_load_balancer_arn is not None: - pulumi.set(__self__, "network_load_balancer_arn", network_load_balancer_arn) + _setter("network_load_balancer_arn", network_load_balancer_arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -348,6 +408,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrafficMirrorTargetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/volume_attachment.py b/sdk/python/pulumi_aws/ec2/volume_attachment.py index 6dd3ffdfd58..37595f20c68 100644 --- a/sdk/python/pulumi_aws/ec2/volume_attachment.py +++ b/sdk/python/pulumi_aws/ec2/volume_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VolumeAttachmentArgs', 'VolumeAttachment'] @@ -38,15 +38,54 @@ def __init__(__self__, *, :param pulumi.Input[bool] stop_instance_before_detaching: Set this to true to ensure that the target instance is stopped before trying to detach the volume. Stops the instance, if it is not already stopped. """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "volume_id", volume_id) + VolumeAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + instance_id=instance_id, + volume_id=volume_id, + force_detach=force_detach, + skip_destroy=skip_destroy, + stop_instance_before_detaching=stop_instance_before_detaching, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + force_detach: Optional[pulumi.Input[bool]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + stop_instance_before_detaching: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_id is None: + raise TypeError("Missing 'volume_id' argument") + if force_detach is None and 'forceDetach' in kwargs: + force_detach = kwargs['forceDetach'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if stop_instance_before_detaching is None and 'stopInstanceBeforeDetaching' in kwargs: + stop_instance_before_detaching = kwargs['stopInstanceBeforeDetaching'] + + _setter("device_name", device_name) + _setter("instance_id", instance_id) + _setter("volume_id", volume_id) if force_detach is not None: - pulumi.set(__self__, "force_detach", force_detach) + _setter("force_detach", force_detach) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if stop_instance_before_detaching is not None: - pulumi.set(__self__, "stop_instance_before_detaching", stop_instance_before_detaching) + _setter("stop_instance_before_detaching", stop_instance_before_detaching) @property @pulumi.getter(name="deviceName") @@ -157,18 +196,51 @@ def __init__(__self__, *, before trying to detach the volume. Stops the instance, if it is not already stopped. :param pulumi.Input[str] volume_id: ID of the Volume to be attached """ + _VolumeAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + force_detach=force_detach, + instance_id=instance_id, + skip_destroy=skip_destroy, + stop_instance_before_detaching=stop_instance_before_detaching, + volume_id=volume_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + force_detach: Optional[pulumi.Input[bool]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + stop_instance_before_detaching: Optional[pulumi.Input[bool]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if force_detach is None and 'forceDetach' in kwargs: + force_detach = kwargs['forceDetach'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if stop_instance_before_detaching is None and 'stopInstanceBeforeDetaching' in kwargs: + stop_instance_before_detaching = kwargs['stopInstanceBeforeDetaching'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if force_detach is not None: - pulumi.set(__self__, "force_detach", force_detach) + _setter("force_detach", force_detach) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if stop_instance_before_detaching is not None: - pulumi.set(__self__, "stop_instance_before_detaching", stop_instance_before_detaching) + _setter("stop_instance_before_detaching", stop_instance_before_detaching) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) @property @pulumi.getter(name="deviceName") @@ -370,6 +442,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VolumeAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc.py b/sdk/python/pulumi_aws/ec2/vpc.py index ec2ba6aea91..9d8f01efff6 100644 --- a/sdk/python/pulumi_aws/ec2/vpc.py +++ b/sdk/python/pulumi_aws/ec2/vpc.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcArgs', 'Vpc'] @@ -43,32 +43,91 @@ def __init__(__self__, *, :param pulumi.Input[int] ipv6_netmask_length: Netmask length to request from IPAM Pool. Conflicts with `ipv6_cidr_block`. This can be omitted if IPAM pool as a `allocation_default_netmask_length` set. Valid values: `56`. :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. """ + VpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + assign_generated_ipv6_cidr_block=assign_generated_ipv6_cidr_block, + cidr_block=cidr_block, + enable_dns_hostnames=enable_dns_hostnames, + enable_dns_support=enable_dns_support, + enable_network_address_usage_metrics=enable_network_address_usage_metrics, + instance_tenancy=instance_tenancy, + ipv4_ipam_pool_id=ipv4_ipam_pool_id, + ipv4_netmask_length=ipv4_netmask_length, + ipv6_cidr_block=ipv6_cidr_block, + ipv6_cidr_block_network_border_group=ipv6_cidr_block_network_border_group, + ipv6_ipam_pool_id=ipv6_ipam_pool_id, + ipv6_netmask_length=ipv6_netmask_length, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assign_generated_ipv6_cidr_block: Optional[pulumi.Input[bool]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + enable_dns_hostnames: Optional[pulumi.Input[bool]] = None, + enable_dns_support: Optional[pulumi.Input[bool]] = None, + enable_network_address_usage_metrics: Optional[pulumi.Input[bool]] = None, + instance_tenancy: Optional[pulumi.Input[str]] = None, + ipv4_ipam_pool_id: Optional[pulumi.Input[str]] = None, + ipv4_netmask_length: Optional[pulumi.Input[int]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block_network_border_group: Optional[pulumi.Input[str]] = None, + ipv6_ipam_pool_id: Optional[pulumi.Input[str]] = None, + ipv6_netmask_length: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assign_generated_ipv6_cidr_block is None and 'assignGeneratedIpv6CidrBlock' in kwargs: + assign_generated_ipv6_cidr_block = kwargs['assignGeneratedIpv6CidrBlock'] + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if enable_dns_hostnames is None and 'enableDnsHostnames' in kwargs: + enable_dns_hostnames = kwargs['enableDnsHostnames'] + if enable_dns_support is None and 'enableDnsSupport' in kwargs: + enable_dns_support = kwargs['enableDnsSupport'] + if enable_network_address_usage_metrics is None and 'enableNetworkAddressUsageMetrics' in kwargs: + enable_network_address_usage_metrics = kwargs['enableNetworkAddressUsageMetrics'] + if instance_tenancy is None and 'instanceTenancy' in kwargs: + instance_tenancy = kwargs['instanceTenancy'] + if ipv4_ipam_pool_id is None and 'ipv4IpamPoolId' in kwargs: + ipv4_ipam_pool_id = kwargs['ipv4IpamPoolId'] + if ipv4_netmask_length is None and 'ipv4NetmaskLength' in kwargs: + ipv4_netmask_length = kwargs['ipv4NetmaskLength'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_cidr_block_network_border_group is None and 'ipv6CidrBlockNetworkBorderGroup' in kwargs: + ipv6_cidr_block_network_border_group = kwargs['ipv6CidrBlockNetworkBorderGroup'] + if ipv6_ipam_pool_id is None and 'ipv6IpamPoolId' in kwargs: + ipv6_ipam_pool_id = kwargs['ipv6IpamPoolId'] + if ipv6_netmask_length is None and 'ipv6NetmaskLength' in kwargs: + ipv6_netmask_length = kwargs['ipv6NetmaskLength'] + if assign_generated_ipv6_cidr_block is not None: - pulumi.set(__self__, "assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) + _setter("assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if enable_dns_hostnames is not None: - pulumi.set(__self__, "enable_dns_hostnames", enable_dns_hostnames) + _setter("enable_dns_hostnames", enable_dns_hostnames) if enable_dns_support is not None: - pulumi.set(__self__, "enable_dns_support", enable_dns_support) + _setter("enable_dns_support", enable_dns_support) if enable_network_address_usage_metrics is not None: - pulumi.set(__self__, "enable_network_address_usage_metrics", enable_network_address_usage_metrics) + _setter("enable_network_address_usage_metrics", enable_network_address_usage_metrics) if instance_tenancy is not None: - pulumi.set(__self__, "instance_tenancy", instance_tenancy) + _setter("instance_tenancy", instance_tenancy) if ipv4_ipam_pool_id is not None: - pulumi.set(__self__, "ipv4_ipam_pool_id", ipv4_ipam_pool_id) + _setter("ipv4_ipam_pool_id", ipv4_ipam_pool_id) if ipv4_netmask_length is not None: - pulumi.set(__self__, "ipv4_netmask_length", ipv4_netmask_length) + _setter("ipv4_netmask_length", ipv4_netmask_length) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_cidr_block_network_border_group is not None: - pulumi.set(__self__, "ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) + _setter("ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) if ipv6_ipam_pool_id is not None: - pulumi.set(__self__, "ipv6_ipam_pool_id", ipv6_ipam_pool_id) + _setter("ipv6_ipam_pool_id", ipv6_ipam_pool_id) if ipv6_netmask_length is not None: - pulumi.set(__self__, "ipv6_netmask_length", ipv6_netmask_length) + _setter("ipv6_netmask_length", ipv6_netmask_length) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="assignGeneratedIpv6CidrBlock") @@ -278,53 +337,146 @@ def __init__(__self__, *, :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. """ + _VpcState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + assign_generated_ipv6_cidr_block=assign_generated_ipv6_cidr_block, + cidr_block=cidr_block, + default_network_acl_id=default_network_acl_id, + default_route_table_id=default_route_table_id, + default_security_group_id=default_security_group_id, + dhcp_options_id=dhcp_options_id, + enable_dns_hostnames=enable_dns_hostnames, + enable_dns_support=enable_dns_support, + enable_network_address_usage_metrics=enable_network_address_usage_metrics, + instance_tenancy=instance_tenancy, + ipv4_ipam_pool_id=ipv4_ipam_pool_id, + ipv4_netmask_length=ipv4_netmask_length, + ipv6_association_id=ipv6_association_id, + ipv6_cidr_block=ipv6_cidr_block, + ipv6_cidr_block_network_border_group=ipv6_cidr_block_network_border_group, + ipv6_ipam_pool_id=ipv6_ipam_pool_id, + ipv6_netmask_length=ipv6_netmask_length, + main_route_table_id=main_route_table_id, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + assign_generated_ipv6_cidr_block: Optional[pulumi.Input[bool]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + default_network_acl_id: Optional[pulumi.Input[str]] = None, + default_route_table_id: Optional[pulumi.Input[str]] = None, + default_security_group_id: Optional[pulumi.Input[str]] = None, + dhcp_options_id: Optional[pulumi.Input[str]] = None, + enable_dns_hostnames: Optional[pulumi.Input[bool]] = None, + enable_dns_support: Optional[pulumi.Input[bool]] = None, + enable_network_address_usage_metrics: Optional[pulumi.Input[bool]] = None, + instance_tenancy: Optional[pulumi.Input[str]] = None, + ipv4_ipam_pool_id: Optional[pulumi.Input[str]] = None, + ipv4_netmask_length: Optional[pulumi.Input[int]] = None, + ipv6_association_id: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block_network_border_group: Optional[pulumi.Input[str]] = None, + ipv6_ipam_pool_id: Optional[pulumi.Input[str]] = None, + ipv6_netmask_length: Optional[pulumi.Input[int]] = None, + main_route_table_id: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assign_generated_ipv6_cidr_block is None and 'assignGeneratedIpv6CidrBlock' in kwargs: + assign_generated_ipv6_cidr_block = kwargs['assignGeneratedIpv6CidrBlock'] + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if default_network_acl_id is None and 'defaultNetworkAclId' in kwargs: + default_network_acl_id = kwargs['defaultNetworkAclId'] + if default_route_table_id is None and 'defaultRouteTableId' in kwargs: + default_route_table_id = kwargs['defaultRouteTableId'] + if default_security_group_id is None and 'defaultSecurityGroupId' in kwargs: + default_security_group_id = kwargs['defaultSecurityGroupId'] + if dhcp_options_id is None and 'dhcpOptionsId' in kwargs: + dhcp_options_id = kwargs['dhcpOptionsId'] + if enable_dns_hostnames is None and 'enableDnsHostnames' in kwargs: + enable_dns_hostnames = kwargs['enableDnsHostnames'] + if enable_dns_support is None and 'enableDnsSupport' in kwargs: + enable_dns_support = kwargs['enableDnsSupport'] + if enable_network_address_usage_metrics is None and 'enableNetworkAddressUsageMetrics' in kwargs: + enable_network_address_usage_metrics = kwargs['enableNetworkAddressUsageMetrics'] + if instance_tenancy is None and 'instanceTenancy' in kwargs: + instance_tenancy = kwargs['instanceTenancy'] + if ipv4_ipam_pool_id is None and 'ipv4IpamPoolId' in kwargs: + ipv4_ipam_pool_id = kwargs['ipv4IpamPoolId'] + if ipv4_netmask_length is None and 'ipv4NetmaskLength' in kwargs: + ipv4_netmask_length = kwargs['ipv4NetmaskLength'] + if ipv6_association_id is None and 'ipv6AssociationId' in kwargs: + ipv6_association_id = kwargs['ipv6AssociationId'] + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_cidr_block_network_border_group is None and 'ipv6CidrBlockNetworkBorderGroup' in kwargs: + ipv6_cidr_block_network_border_group = kwargs['ipv6CidrBlockNetworkBorderGroup'] + if ipv6_ipam_pool_id is None and 'ipv6IpamPoolId' in kwargs: + ipv6_ipam_pool_id = kwargs['ipv6IpamPoolId'] + if ipv6_netmask_length is None and 'ipv6NetmaskLength' in kwargs: + ipv6_netmask_length = kwargs['ipv6NetmaskLength'] + if main_route_table_id is None and 'mainRouteTableId' in kwargs: + main_route_table_id = kwargs['mainRouteTableId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if assign_generated_ipv6_cidr_block is not None: - pulumi.set(__self__, "assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) + _setter("assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if default_network_acl_id is not None: - pulumi.set(__self__, "default_network_acl_id", default_network_acl_id) + _setter("default_network_acl_id", default_network_acl_id) if default_route_table_id is not None: - pulumi.set(__self__, "default_route_table_id", default_route_table_id) + _setter("default_route_table_id", default_route_table_id) if default_security_group_id is not None: - pulumi.set(__self__, "default_security_group_id", default_security_group_id) + _setter("default_security_group_id", default_security_group_id) if dhcp_options_id is not None: - pulumi.set(__self__, "dhcp_options_id", dhcp_options_id) + _setter("dhcp_options_id", dhcp_options_id) if enable_dns_hostnames is not None: - pulumi.set(__self__, "enable_dns_hostnames", enable_dns_hostnames) + _setter("enable_dns_hostnames", enable_dns_hostnames) if enable_dns_support is not None: - pulumi.set(__self__, "enable_dns_support", enable_dns_support) + _setter("enable_dns_support", enable_dns_support) if enable_network_address_usage_metrics is not None: - pulumi.set(__self__, "enable_network_address_usage_metrics", enable_network_address_usage_metrics) + _setter("enable_network_address_usage_metrics", enable_network_address_usage_metrics) if instance_tenancy is not None: - pulumi.set(__self__, "instance_tenancy", instance_tenancy) + _setter("instance_tenancy", instance_tenancy) if ipv4_ipam_pool_id is not None: - pulumi.set(__self__, "ipv4_ipam_pool_id", ipv4_ipam_pool_id) + _setter("ipv4_ipam_pool_id", ipv4_ipam_pool_id) if ipv4_netmask_length is not None: - pulumi.set(__self__, "ipv4_netmask_length", ipv4_netmask_length) + _setter("ipv4_netmask_length", ipv4_netmask_length) if ipv6_association_id is not None: - pulumi.set(__self__, "ipv6_association_id", ipv6_association_id) + _setter("ipv6_association_id", ipv6_association_id) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_cidr_block_network_border_group is not None: - pulumi.set(__self__, "ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) + _setter("ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) if ipv6_ipam_pool_id is not None: - pulumi.set(__self__, "ipv6_ipam_pool_id", ipv6_ipam_pool_id) + _setter("ipv6_ipam_pool_id", ipv6_ipam_pool_id) if ipv6_netmask_length is not None: - pulumi.set(__self__, "ipv6_netmask_length", ipv6_netmask_length) + _setter("ipv6_netmask_length", ipv6_netmask_length) if main_route_table_id is not None: - pulumi.set(__self__, "main_route_table_id", main_route_table_id) + _setter("main_route_table_id", main_route_table_id) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -762,6 +914,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_dhcp_options.py b/sdk/python/pulumi_aws/ec2/vpc_dhcp_options.py index 84e2b8d8608..03e5846908f 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_dhcp_options.py +++ b/sdk/python/pulumi_aws/ec2/vpc_dhcp_options.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcDhcpOptionsArgs', 'VpcDhcpOptions'] @@ -29,18 +29,49 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] ntp_servers: List of NTP servers to configure. :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. """ + VpcDhcpOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + domain_name_servers=domain_name_servers, + netbios_name_servers=netbios_name_servers, + netbios_node_type=netbios_node_type, + ntp_servers=ntp_servers, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + domain_name_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + netbios_name_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + netbios_node_type: Optional[pulumi.Input[str]] = None, + ntp_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name_servers is None and 'domainNameServers' in kwargs: + domain_name_servers = kwargs['domainNameServers'] + if netbios_name_servers is None and 'netbiosNameServers' in kwargs: + netbios_name_servers = kwargs['netbiosNameServers'] + if netbios_node_type is None and 'netbiosNodeType' in kwargs: + netbios_node_type = kwargs['netbiosNodeType'] + if ntp_servers is None and 'ntpServers' in kwargs: + ntp_servers = kwargs['ntpServers'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if domain_name_servers is not None: - pulumi.set(__self__, "domain_name_servers", domain_name_servers) + _setter("domain_name_servers", domain_name_servers) if netbios_name_servers is not None: - pulumi.set(__self__, "netbios_name_servers", netbios_name_servers) + _setter("netbios_name_servers", netbios_name_servers) if netbios_node_type is not None: - pulumi.set(__self__, "netbios_node_type", netbios_node_type) + _setter("netbios_node_type", netbios_node_type) if ntp_servers is not None: - pulumi.set(__self__, "ntp_servers", ntp_servers) + _setter("ntp_servers", ntp_servers) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="domainName") @@ -139,27 +170,68 @@ def __init__(__self__, *, :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. """ + _VpcDhcpOptionsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domain_name=domain_name, + domain_name_servers=domain_name_servers, + netbios_name_servers=netbios_name_servers, + netbios_node_type=netbios_node_type, + ntp_servers=ntp_servers, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + domain_name_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + netbios_name_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + netbios_node_type: Optional[pulumi.Input[str]] = None, + ntp_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name_servers is None and 'domainNameServers' in kwargs: + domain_name_servers = kwargs['domainNameServers'] + if netbios_name_servers is None and 'netbiosNameServers' in kwargs: + netbios_name_servers = kwargs['netbiosNameServers'] + if netbios_node_type is None and 'netbiosNodeType' in kwargs: + netbios_node_type = kwargs['netbiosNodeType'] + if ntp_servers is None and 'ntpServers' in kwargs: + ntp_servers = kwargs['ntpServers'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if domain_name_servers is not None: - pulumi.set(__self__, "domain_name_servers", domain_name_servers) + _setter("domain_name_servers", domain_name_servers) if netbios_name_servers is not None: - pulumi.set(__self__, "netbios_name_servers", netbios_name_servers) + _setter("netbios_name_servers", netbios_name_servers) if netbios_node_type is not None: - pulumi.set(__self__, "netbios_node_type", netbios_node_type) + _setter("netbios_node_type", netbios_node_type) if ntp_servers is not None: - pulumi.set(__self__, "ntp_servers", ntp_servers) + _setter("ntp_servers", ntp_servers) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -414,6 +486,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcDhcpOptionsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_dhcp_options_association.py b/sdk/python/pulumi_aws/ec2/vpc_dhcp_options_association.py index 10bed7613c2..81b75befe42 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_dhcp_options_association.py +++ b/sdk/python/pulumi_aws/ec2/vpc_dhcp_options_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcDhcpOptionsAssociationArgs', 'VpcDhcpOptionsAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] dhcp_options_id: The ID of the DHCP Options Set to associate to the VPC. :param pulumi.Input[str] vpc_id: The ID of the VPC to which we would like to associate a DHCP Options Set. """ - pulumi.set(__self__, "dhcp_options_id", dhcp_options_id) - pulumi.set(__self__, "vpc_id", vpc_id) + VpcDhcpOptionsAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dhcp_options_id=dhcp_options_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dhcp_options_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dhcp_options_id is None and 'dhcpOptionsId' in kwargs: + dhcp_options_id = kwargs['dhcpOptionsId'] + if dhcp_options_id is None: + raise TypeError("Missing 'dhcp_options_id' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("dhcp_options_id", dhcp_options_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="dhcpOptionsId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dhcp_options_id: The ID of the DHCP Options Set to associate to the VPC. :param pulumi.Input[str] vpc_id: The ID of the VPC to which we would like to associate a DHCP Options Set. """ + _VpcDhcpOptionsAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + dhcp_options_id=dhcp_options_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dhcp_options_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dhcp_options_id is None and 'dhcpOptionsId' in kwargs: + dhcp_options_id = kwargs['dhcpOptionsId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if dhcp_options_id is not None: - pulumi.set(__self__, "dhcp_options_id", dhcp_options_id) + _setter("dhcp_options_id", dhcp_options_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="dhcpOptionsId") @@ -170,6 +208,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcDhcpOptionsAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_endpoint.py b/sdk/python/pulumi_aws/ec2/vpc_endpoint.py index 79d0fe1fcd1..8692145735f 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_endpoint.py +++ b/sdk/python/pulumi_aws/ec2/vpc_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,28 +45,85 @@ def __init__(__self__, *, :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] vpc_endpoint_type: The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. """ - pulumi.set(__self__, "service_name", service_name) - pulumi.set(__self__, "vpc_id", vpc_id) + VpcEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_name=service_name, + vpc_id=vpc_id, + auto_accept=auto_accept, + dns_options=dns_options, + ip_address_type=ip_address_type, + policy=policy, + private_dns_enabled=private_dns_enabled, + route_table_ids=route_table_ids, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + tags=tags, + vpc_endpoint_type=vpc_endpoint_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_name: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + auto_accept: Optional[pulumi.Input[bool]] = None, + dns_options: Optional[pulumi.Input['VpcEndpointDnsOptionsArgs']] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + private_dns_enabled: Optional[pulumi.Input[bool]] = None, + route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_endpoint_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if auto_accept is None and 'autoAccept' in kwargs: + auto_accept = kwargs['autoAccept'] + if dns_options is None and 'dnsOptions' in kwargs: + dns_options = kwargs['dnsOptions'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if private_dns_enabled is None and 'privateDnsEnabled' in kwargs: + private_dns_enabled = kwargs['privateDnsEnabled'] + if route_table_ids is None and 'routeTableIds' in kwargs: + route_table_ids = kwargs['routeTableIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_endpoint_type is None and 'vpcEndpointType' in kwargs: + vpc_endpoint_type = kwargs['vpcEndpointType'] + + _setter("service_name", service_name) + _setter("vpc_id", vpc_id) if auto_accept is not None: - pulumi.set(__self__, "auto_accept", auto_accept) + _setter("auto_accept", auto_accept) if dns_options is not None: - pulumi.set(__self__, "dns_options", dns_options) + _setter("dns_options", dns_options) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if private_dns_enabled is not None: - pulumi.set(__self__, "private_dns_enabled", private_dns_enabled) + _setter("private_dns_enabled", private_dns_enabled) if route_table_ids is not None: - pulumi.set(__self__, "route_table_ids", route_table_ids) + _setter("route_table_ids", route_table_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_endpoint_type is not None: - pulumi.set(__self__, "vpc_endpoint_type", vpc_endpoint_type) + _setter("vpc_endpoint_type", vpc_endpoint_type) @property @pulumi.getter(name="serviceName") @@ -265,51 +322,136 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_type: The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. :param pulumi.Input[str] vpc_id: The ID of the VPC in which the endpoint will be used. """ + _VpcEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_accept=auto_accept, + cidr_blocks=cidr_blocks, + dns_entries=dns_entries, + dns_options=dns_options, + ip_address_type=ip_address_type, + network_interface_ids=network_interface_ids, + owner_id=owner_id, + policy=policy, + prefix_list_id=prefix_list_id, + private_dns_enabled=private_dns_enabled, + requester_managed=requester_managed, + route_table_ids=route_table_ids, + security_group_ids=security_group_ids, + service_name=service_name, + state=state, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + vpc_endpoint_type=vpc_endpoint_type, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_accept: Optional[pulumi.Input[bool]] = None, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + dns_entries: Optional[pulumi.Input[Sequence[pulumi.Input['VpcEndpointDnsEntryArgs']]]] = None, + dns_options: Optional[pulumi.Input['VpcEndpointDnsOptionsArgs']] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + private_dns_enabled: Optional[pulumi.Input[bool]] = None, + requester_managed: Optional[pulumi.Input[bool]] = None, + route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + service_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_endpoint_type: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_accept is None and 'autoAccept' in kwargs: + auto_accept = kwargs['autoAccept'] + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if dns_entries is None and 'dnsEntries' in kwargs: + dns_entries = kwargs['dnsEntries'] + if dns_options is None and 'dnsOptions' in kwargs: + dns_options = kwargs['dnsOptions'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if network_interface_ids is None and 'networkInterfaceIds' in kwargs: + network_interface_ids = kwargs['networkInterfaceIds'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if private_dns_enabled is None and 'privateDnsEnabled' in kwargs: + private_dns_enabled = kwargs['privateDnsEnabled'] + if requester_managed is None and 'requesterManaged' in kwargs: + requester_managed = kwargs['requesterManaged'] + if route_table_ids is None and 'routeTableIds' in kwargs: + route_table_ids = kwargs['routeTableIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_endpoint_type is None and 'vpcEndpointType' in kwargs: + vpc_endpoint_type = kwargs['vpcEndpointType'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_accept is not None: - pulumi.set(__self__, "auto_accept", auto_accept) + _setter("auto_accept", auto_accept) if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if dns_entries is not None: - pulumi.set(__self__, "dns_entries", dns_entries) + _setter("dns_entries", dns_entries) if dns_options is not None: - pulumi.set(__self__, "dns_options", dns_options) + _setter("dns_options", dns_options) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if network_interface_ids is not None: - pulumi.set(__self__, "network_interface_ids", network_interface_ids) + _setter("network_interface_ids", network_interface_ids) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if private_dns_enabled is not None: - pulumi.set(__self__, "private_dns_enabled", private_dns_enabled) + _setter("private_dns_enabled", private_dns_enabled) if requester_managed is not None: - pulumi.set(__self__, "requester_managed", requester_managed) + _setter("requester_managed", requester_managed) if route_table_ids is not None: - pulumi.set(__self__, "route_table_ids", route_table_ids) + _setter("route_table_ids", route_table_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_endpoint_type is not None: - pulumi.set(__self__, "vpc_endpoint_type", vpc_endpoint_type) + _setter("vpc_endpoint_type", vpc_endpoint_type) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -768,6 +910,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -795,6 +941,7 @@ def _internal_init(__self__, __props__ = VpcEndpointArgs.__new__(VpcEndpointArgs) __props__.__dict__["auto_accept"] = auto_accept + dns_options = _utilities.configure(dns_options, VpcEndpointDnsOptionsArgs, True) __props__.__dict__["dns_options"] = dns_options __props__.__dict__["ip_address_type"] = ip_address_type __props__.__dict__["policy"] = policy diff --git a/sdk/python/pulumi_aws/ec2/vpc_endpoint_connection_accepter.py b/sdk/python/pulumi_aws/ec2/vpc_endpoint_connection_accepter.py index 8abc6ccdf97..eb9e3d629ed 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_endpoint_connection_accepter.py +++ b/sdk/python/pulumi_aws/ec2/vpc_endpoint_connection_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcEndpointConnectionAccepterArgs', 'VpcEndpointConnectionAccepter'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: AWS VPC Endpoint ID. :param pulumi.Input[str] vpc_endpoint_service_id: AWS VPC Endpoint Service ID. """ - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) - pulumi.set(__self__, "vpc_endpoint_service_id", vpc_endpoint_service_id) + VpcEndpointConnectionAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_endpoint_id=vpc_endpoint_id, + vpc_endpoint_service_id=vpc_endpoint_service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_service_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_id is None: + raise TypeError("Missing 'vpc_endpoint_id' argument") + if vpc_endpoint_service_id is None and 'vpcEndpointServiceId' in kwargs: + vpc_endpoint_service_id = kwargs['vpcEndpointServiceId'] + if vpc_endpoint_service_id is None: + raise TypeError("Missing 'vpc_endpoint_service_id' argument") + + _setter("vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_service_id", vpc_endpoint_service_id) @property @pulumi.getter(name="vpcEndpointId") @@ -61,12 +82,33 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_service_id: AWS VPC Endpoint Service ID. :param pulumi.Input[str] vpc_endpoint_state: State of the VPC Endpoint. """ + _VpcEndpointConnectionAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_endpoint_id=vpc_endpoint_id, + vpc_endpoint_service_id=vpc_endpoint_service_id, + vpc_endpoint_state=vpc_endpoint_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_service_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_service_id is None and 'vpcEndpointServiceId' in kwargs: + vpc_endpoint_service_id = kwargs['vpcEndpointServiceId'] + if vpc_endpoint_state is None and 'vpcEndpointState' in kwargs: + vpc_endpoint_state = kwargs['vpcEndpointState'] + if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_endpoint_service_id is not None: - pulumi.set(__self__, "vpc_endpoint_service_id", vpc_endpoint_service_id) + _setter("vpc_endpoint_service_id", vpc_endpoint_service_id) if vpc_endpoint_state is not None: - pulumi.set(__self__, "vpc_endpoint_state", vpc_endpoint_state) + _setter("vpc_endpoint_state", vpc_endpoint_state) @property @pulumi.getter(name="vpcEndpointId") @@ -200,6 +242,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcEndpointConnectionAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_endpoint_connection_notification.py b/sdk/python/pulumi_aws/ec2/vpc_endpoint_connection_notification.py index c60542c208c..687bfd2b0de 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_endpoint_connection_notification.py +++ b/sdk/python/pulumi_aws/ec2/vpc_endpoint_connection_notification.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcEndpointConnectionNotificationArgs', 'VpcEndpointConnectionNotification'] @@ -27,12 +27,41 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: The ID of the VPC Endpoint to receive notifications for. :param pulumi.Input[str] vpc_endpoint_service_id: The ID of the VPC Endpoint Service to receive notifications for. """ - pulumi.set(__self__, "connection_events", connection_events) - pulumi.set(__self__, "connection_notification_arn", connection_notification_arn) + VpcEndpointConnectionNotificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_events=connection_events, + connection_notification_arn=connection_notification_arn, + vpc_endpoint_id=vpc_endpoint_id, + vpc_endpoint_service_id=vpc_endpoint_service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + connection_notification_arn: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_service_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_events is None and 'connectionEvents' in kwargs: + connection_events = kwargs['connectionEvents'] + if connection_events is None: + raise TypeError("Missing 'connection_events' argument") + if connection_notification_arn is None and 'connectionNotificationArn' in kwargs: + connection_notification_arn = kwargs['connectionNotificationArn'] + if connection_notification_arn is None: + raise TypeError("Missing 'connection_notification_arn' argument") + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_service_id is None and 'vpcEndpointServiceId' in kwargs: + vpc_endpoint_service_id = kwargs['vpcEndpointServiceId'] + + _setter("connection_events", connection_events) + _setter("connection_notification_arn", connection_notification_arn) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_endpoint_service_id is not None: - pulumi.set(__self__, "vpc_endpoint_service_id", vpc_endpoint_service_id) + _setter("vpc_endpoint_service_id", vpc_endpoint_service_id) @property @pulumi.getter(name="connectionEvents") @@ -105,18 +134,49 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: The ID of the VPC Endpoint to receive notifications for. :param pulumi.Input[str] vpc_endpoint_service_id: The ID of the VPC Endpoint Service to receive notifications for. """ + _VpcEndpointConnectionNotificationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_events=connection_events, + connection_notification_arn=connection_notification_arn, + notification_type=notification_type, + state=state, + vpc_endpoint_id=vpc_endpoint_id, + vpc_endpoint_service_id=vpc_endpoint_service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + connection_notification_arn: Optional[pulumi.Input[str]] = None, + notification_type: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_service_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_events is None and 'connectionEvents' in kwargs: + connection_events = kwargs['connectionEvents'] + if connection_notification_arn is None and 'connectionNotificationArn' in kwargs: + connection_notification_arn = kwargs['connectionNotificationArn'] + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_service_id is None and 'vpcEndpointServiceId' in kwargs: + vpc_endpoint_service_id = kwargs['vpcEndpointServiceId'] + if connection_events is not None: - pulumi.set(__self__, "connection_events", connection_events) + _setter("connection_events", connection_events) if connection_notification_arn is not None: - pulumi.set(__self__, "connection_notification_arn", connection_notification_arn) + _setter("connection_notification_arn", connection_notification_arn) if notification_type is not None: - pulumi.set(__self__, "notification_type", notification_type) + _setter("notification_type", notification_type) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_endpoint_service_id is not None: - pulumi.set(__self__, "vpc_endpoint_service_id", vpc_endpoint_service_id) + _setter("vpc_endpoint_service_id", vpc_endpoint_service_id) @property @pulumi.getter(name="connectionEvents") @@ -308,6 +368,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcEndpointConnectionNotificationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_endpoint_policy.py b/sdk/python/pulumi_aws/ec2/vpc_endpoint_policy.py index a51de48a5aa..c73d16a239b 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_endpoint_policy.py +++ b/sdk/python/pulumi_aws/ec2/vpc_endpoint_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcEndpointPolicyArgs', 'VpcEndpointPolicy'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: The VPC Endpoint ID. :param pulumi.Input[str] policy: A policy to attach to the endpoint that controls access to the service. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details. """ - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + VpcEndpointPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_endpoint_id=vpc_endpoint_id, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_id is None: + raise TypeError("Missing 'vpc_endpoint_id' argument") + + _setter("vpc_endpoint_id", vpc_endpoint_id) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="vpcEndpointId") @@ -60,10 +77,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: A policy to attach to the endpoint that controls access to the service. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details. :param pulumi.Input[str] vpc_endpoint_id: The VPC Endpoint ID. """ + _VpcEndpointPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + vpc_endpoint_id=vpc_endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) @property @pulumi.getter @@ -197,6 +229,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcEndpointPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_endpoint_route_table_association.py b/sdk/python/pulumi_aws/ec2/vpc_endpoint_route_table_association.py index 77f42466ae4..04546350601 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_endpoint_route_table_association.py +++ b/sdk/python/pulumi_aws/ec2/vpc_endpoint_route_table_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcEndpointRouteTableAssociationArgs', 'VpcEndpointRouteTableAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] route_table_id: Identifier of the EC2 Route Table to be associated with the VPC Endpoint. :param pulumi.Input[str] vpc_endpoint_id: Identifier of the VPC Endpoint with which the EC2 Route Table will be associated. """ - pulumi.set(__self__, "route_table_id", route_table_id) - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + VpcEndpointRouteTableAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + route_table_id=route_table_id, + vpc_endpoint_id=vpc_endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route_table_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if route_table_id is None: + raise TypeError("Missing 'route_table_id' argument") + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_id is None: + raise TypeError("Missing 'vpc_endpoint_id' argument") + + _setter("route_table_id", route_table_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) @property @pulumi.getter(name="routeTableId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] route_table_id: Identifier of the EC2 Route Table to be associated with the VPC Endpoint. :param pulumi.Input[str] vpc_endpoint_id: Identifier of the VPC Endpoint with which the EC2 Route Table will be associated. """ + _VpcEndpointRouteTableAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + route_table_id=route_table_id, + vpc_endpoint_id=vpc_endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route_table_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if route_table_id is not None: - pulumi.set(__self__, "route_table_id", route_table_id) + _setter("route_table_id", route_table_id) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) @property @pulumi.getter(name="routeTableId") @@ -162,6 +200,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcEndpointRouteTableAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_endpoint_service.py b/sdk/python/pulumi_aws/ec2/vpc_endpoint_service.py index 542bdf17d62..9ddbea084c0 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_endpoint_service.py +++ b/sdk/python/pulumi_aws/ec2/vpc_endpoint_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,19 +33,56 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] supported_ip_address_types: The supported IP address types. The possible values are `ipv4` and `ipv6`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "acceptance_required", acceptance_required) + VpcEndpointServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acceptance_required=acceptance_required, + allowed_principals=allowed_principals, + gateway_load_balancer_arns=gateway_load_balancer_arns, + network_load_balancer_arns=network_load_balancer_arns, + private_dns_name=private_dns_name, + supported_ip_address_types=supported_ip_address_types, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acceptance_required: Optional[pulumi.Input[bool]] = None, + allowed_principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + gateway_load_balancer_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + network_load_balancer_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + private_dns_name: Optional[pulumi.Input[str]] = None, + supported_ip_address_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acceptance_required is None and 'acceptanceRequired' in kwargs: + acceptance_required = kwargs['acceptanceRequired'] + if acceptance_required is None: + raise TypeError("Missing 'acceptance_required' argument") + if allowed_principals is None and 'allowedPrincipals' in kwargs: + allowed_principals = kwargs['allowedPrincipals'] + if gateway_load_balancer_arns is None and 'gatewayLoadBalancerArns' in kwargs: + gateway_load_balancer_arns = kwargs['gatewayLoadBalancerArns'] + if network_load_balancer_arns is None and 'networkLoadBalancerArns' in kwargs: + network_load_balancer_arns = kwargs['networkLoadBalancerArns'] + if private_dns_name is None and 'privateDnsName' in kwargs: + private_dns_name = kwargs['privateDnsName'] + if supported_ip_address_types is None and 'supportedIpAddressTypes' in kwargs: + supported_ip_address_types = kwargs['supportedIpAddressTypes'] + + _setter("acceptance_required", acceptance_required) if allowed_principals is not None: - pulumi.set(__self__, "allowed_principals", allowed_principals) + _setter("allowed_principals", allowed_principals) if gateway_load_balancer_arns is not None: - pulumi.set(__self__, "gateway_load_balancer_arns", gateway_load_balancer_arns) + _setter("gateway_load_balancer_arns", gateway_load_balancer_arns) if network_load_balancer_arns is not None: - pulumi.set(__self__, "network_load_balancer_arns", network_load_balancer_arns) + _setter("network_load_balancer_arns", network_load_balancer_arns) if private_dns_name is not None: - pulumi.set(__self__, "private_dns_name", private_dns_name) + _setter("private_dns_name", private_dns_name) if supported_ip_address_types is not None: - pulumi.set(__self__, "supported_ip_address_types", supported_ip_address_types) + _setter("supported_ip_address_types", supported_ip_address_types) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="acceptanceRequired") @@ -170,41 +207,108 @@ def __init__(__self__, *, :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. """ + _VpcEndpointServiceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + acceptance_required=acceptance_required, + allowed_principals=allowed_principals, + arn=arn, + availability_zones=availability_zones, + base_endpoint_dns_names=base_endpoint_dns_names, + gateway_load_balancer_arns=gateway_load_balancer_arns, + manages_vpc_endpoints=manages_vpc_endpoints, + network_load_balancer_arns=network_load_balancer_arns, + private_dns_name=private_dns_name, + private_dns_name_configurations=private_dns_name_configurations, + service_name=service_name, + service_type=service_type, + state=state, + supported_ip_address_types=supported_ip_address_types, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acceptance_required: Optional[pulumi.Input[bool]] = None, + allowed_principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + base_endpoint_dns_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + gateway_load_balancer_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + manages_vpc_endpoints: Optional[pulumi.Input[bool]] = None, + network_load_balancer_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + private_dns_name: Optional[pulumi.Input[str]] = None, + private_dns_name_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['VpcEndpointServicePrivateDnsNameConfigurationArgs']]]] = None, + service_name: Optional[pulumi.Input[str]] = None, + service_type: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + supported_ip_address_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acceptance_required is None and 'acceptanceRequired' in kwargs: + acceptance_required = kwargs['acceptanceRequired'] + if allowed_principals is None and 'allowedPrincipals' in kwargs: + allowed_principals = kwargs['allowedPrincipals'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if base_endpoint_dns_names is None and 'baseEndpointDnsNames' in kwargs: + base_endpoint_dns_names = kwargs['baseEndpointDnsNames'] + if gateway_load_balancer_arns is None and 'gatewayLoadBalancerArns' in kwargs: + gateway_load_balancer_arns = kwargs['gatewayLoadBalancerArns'] + if manages_vpc_endpoints is None and 'managesVpcEndpoints' in kwargs: + manages_vpc_endpoints = kwargs['managesVpcEndpoints'] + if network_load_balancer_arns is None and 'networkLoadBalancerArns' in kwargs: + network_load_balancer_arns = kwargs['networkLoadBalancerArns'] + if private_dns_name is None and 'privateDnsName' in kwargs: + private_dns_name = kwargs['privateDnsName'] + if private_dns_name_configurations is None and 'privateDnsNameConfigurations' in kwargs: + private_dns_name_configurations = kwargs['privateDnsNameConfigurations'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_type is None and 'serviceType' in kwargs: + service_type = kwargs['serviceType'] + if supported_ip_address_types is None and 'supportedIpAddressTypes' in kwargs: + supported_ip_address_types = kwargs['supportedIpAddressTypes'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if acceptance_required is not None: - pulumi.set(__self__, "acceptance_required", acceptance_required) + _setter("acceptance_required", acceptance_required) if allowed_principals is not None: - pulumi.set(__self__, "allowed_principals", allowed_principals) + _setter("allowed_principals", allowed_principals) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if base_endpoint_dns_names is not None: - pulumi.set(__self__, "base_endpoint_dns_names", base_endpoint_dns_names) + _setter("base_endpoint_dns_names", base_endpoint_dns_names) if gateway_load_balancer_arns is not None: - pulumi.set(__self__, "gateway_load_balancer_arns", gateway_load_balancer_arns) + _setter("gateway_load_balancer_arns", gateway_load_balancer_arns) if manages_vpc_endpoints is not None: - pulumi.set(__self__, "manages_vpc_endpoints", manages_vpc_endpoints) + _setter("manages_vpc_endpoints", manages_vpc_endpoints) if network_load_balancer_arns is not None: - pulumi.set(__self__, "network_load_balancer_arns", network_load_balancer_arns) + _setter("network_load_balancer_arns", network_load_balancer_arns) if private_dns_name is not None: - pulumi.set(__self__, "private_dns_name", private_dns_name) + _setter("private_dns_name", private_dns_name) if private_dns_name_configurations is not None: - pulumi.set(__self__, "private_dns_name_configurations", private_dns_name_configurations) + _setter("private_dns_name_configurations", private_dns_name_configurations) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if service_type is not None: - pulumi.set(__self__, "service_type", service_type) + _setter("service_type", service_type) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if supported_ip_address_types is not None: - pulumi.set(__self__, "supported_ip_address_types", supported_ip_address_types) + _setter("supported_ip_address_types", supported_ip_address_types) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="acceptanceRequired") @@ -521,6 +625,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcEndpointServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_endpoint_service_allowed_principle.py b/sdk/python/pulumi_aws/ec2/vpc_endpoint_service_allowed_principle.py index 55fc6800dac..1eb8cc2cea8 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_endpoint_service_allowed_principle.py +++ b/sdk/python/pulumi_aws/ec2/vpc_endpoint_service_allowed_principle.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcEndpointServiceAllowedPrincipleArgs', 'VpcEndpointServiceAllowedPrinciple'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] principal_arn: The ARN of the principal to allow permissions. :param pulumi.Input[str] vpc_endpoint_service_id: The ID of the VPC endpoint service to allow permission. """ - pulumi.set(__self__, "principal_arn", principal_arn) - pulumi.set(__self__, "vpc_endpoint_service_id", vpc_endpoint_service_id) + VpcEndpointServiceAllowedPrincipleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + principal_arn=principal_arn, + vpc_endpoint_service_id=vpc_endpoint_service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + principal_arn: Optional[pulumi.Input[str]] = None, + vpc_endpoint_service_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if principal_arn is None and 'principalArn' in kwargs: + principal_arn = kwargs['principalArn'] + if principal_arn is None: + raise TypeError("Missing 'principal_arn' argument") + if vpc_endpoint_service_id is None and 'vpcEndpointServiceId' in kwargs: + vpc_endpoint_service_id = kwargs['vpcEndpointServiceId'] + if vpc_endpoint_service_id is None: + raise TypeError("Missing 'vpc_endpoint_service_id' argument") + + _setter("principal_arn", principal_arn) + _setter("vpc_endpoint_service_id", vpc_endpoint_service_id) @property @pulumi.getter(name="principalArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] principal_arn: The ARN of the principal to allow permissions. :param pulumi.Input[str] vpc_endpoint_service_id: The ID of the VPC endpoint service to allow permission. """ + _VpcEndpointServiceAllowedPrincipleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + principal_arn=principal_arn, + vpc_endpoint_service_id=vpc_endpoint_service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + principal_arn: Optional[pulumi.Input[str]] = None, + vpc_endpoint_service_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if principal_arn is None and 'principalArn' in kwargs: + principal_arn = kwargs['principalArn'] + if vpc_endpoint_service_id is None and 'vpcEndpointServiceId' in kwargs: + vpc_endpoint_service_id = kwargs['vpcEndpointServiceId'] + if principal_arn is not None: - pulumi.set(__self__, "principal_arn", principal_arn) + _setter("principal_arn", principal_arn) if vpc_endpoint_service_id is not None: - pulumi.set(__self__, "vpc_endpoint_service_id", vpc_endpoint_service_id) + _setter("vpc_endpoint_service_id", vpc_endpoint_service_id) @property @pulumi.getter(name="principalArn") @@ -164,6 +202,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcEndpointServiceAllowedPrincipleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_endpoint_subnet_association.py b/sdk/python/pulumi_aws/ec2/vpc_endpoint_subnet_association.py index 9ab7fa1367f..95bcad8c426 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_endpoint_subnet_association.py +++ b/sdk/python/pulumi_aws/ec2/vpc_endpoint_subnet_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcEndpointSubnetAssociationArgs', 'VpcEndpointSubnetAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_id: The ID of the subnet to be associated with the VPC endpoint. :param pulumi.Input[str] vpc_endpoint_id: The ID of the VPC endpoint with which the subnet will be associated. """ - pulumi.set(__self__, "subnet_id", subnet_id) - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + VpcEndpointSubnetAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + vpc_endpoint_id=vpc_endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_id is None: + raise TypeError("Missing 'vpc_endpoint_id' argument") + + _setter("subnet_id", subnet_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) @property @pulumi.getter(name="subnetId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_id: The ID of the subnet to be associated with the VPC endpoint. :param pulumi.Input[str] vpc_endpoint_id: The ID of the VPC endpoint with which the subnet will be associated. """ + _VpcEndpointSubnetAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + vpc_endpoint_id=vpc_endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) @property @pulumi.getter(name="subnetId") @@ -178,6 +216,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcEndpointSubnetAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam.py b/sdk/python/pulumi_aws/ec2/vpc_ipam.py index b401e183196..330e10982b1 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,34 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description for the IPAM. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "operating_regions", operating_regions) + VpcIpamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + operating_regions=operating_regions, + cascade=cascade, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + operating_regions: Optional[pulumi.Input[Sequence[pulumi.Input['VpcIpamOperatingRegionArgs']]]] = None, + cascade: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if operating_regions is None and 'operatingRegions' in kwargs: + operating_regions = kwargs['operatingRegions'] + if operating_regions is None: + raise TypeError("Missing 'operating_regions' argument") + + _setter("operating_regions", operating_regions) if cascade is not None: - pulumi.set(__self__, "cascade", cascade) + _setter("cascade", cascade) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="operatingRegions") @@ -113,31 +134,76 @@ def __init__(__self__, *, :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. """ + _VpcIpamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cascade=cascade, + default_resource_discovery_association_id=default_resource_discovery_association_id, + default_resource_discovery_id=default_resource_discovery_id, + description=description, + operating_regions=operating_regions, + private_default_scope_id=private_default_scope_id, + public_default_scope_id=public_default_scope_id, + scope_count=scope_count, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cascade: Optional[pulumi.Input[bool]] = None, + default_resource_discovery_association_id: Optional[pulumi.Input[str]] = None, + default_resource_discovery_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + operating_regions: Optional[pulumi.Input[Sequence[pulumi.Input['VpcIpamOperatingRegionArgs']]]] = None, + private_default_scope_id: Optional[pulumi.Input[str]] = None, + public_default_scope_id: Optional[pulumi.Input[str]] = None, + scope_count: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_resource_discovery_association_id is None and 'defaultResourceDiscoveryAssociationId' in kwargs: + default_resource_discovery_association_id = kwargs['defaultResourceDiscoveryAssociationId'] + if default_resource_discovery_id is None and 'defaultResourceDiscoveryId' in kwargs: + default_resource_discovery_id = kwargs['defaultResourceDiscoveryId'] + if operating_regions is None and 'operatingRegions' in kwargs: + operating_regions = kwargs['operatingRegions'] + if private_default_scope_id is None and 'privateDefaultScopeId' in kwargs: + private_default_scope_id = kwargs['privateDefaultScopeId'] + if public_default_scope_id is None and 'publicDefaultScopeId' in kwargs: + public_default_scope_id = kwargs['publicDefaultScopeId'] + if scope_count is None and 'scopeCount' in kwargs: + scope_count = kwargs['scopeCount'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cascade is not None: - pulumi.set(__self__, "cascade", cascade) + _setter("cascade", cascade) if default_resource_discovery_association_id is not None: - pulumi.set(__self__, "default_resource_discovery_association_id", default_resource_discovery_association_id) + _setter("default_resource_discovery_association_id", default_resource_discovery_association_id) if default_resource_discovery_id is not None: - pulumi.set(__self__, "default_resource_discovery_id", default_resource_discovery_id) + _setter("default_resource_discovery_id", default_resource_discovery_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if operating_regions is not None: - pulumi.set(__self__, "operating_regions", operating_regions) + _setter("operating_regions", operating_regions) if private_default_scope_id is not None: - pulumi.set(__self__, "private_default_scope_id", private_default_scope_id) + _setter("private_default_scope_id", private_default_scope_id) if public_default_scope_id is not None: - pulumi.set(__self__, "public_default_scope_id", public_default_scope_id) + _setter("public_default_scope_id", public_default_scope_id) if scope_count is not None: - pulumi.set(__self__, "scope_count", scope_count) + _setter("scope_count", scope_count) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -331,6 +397,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam_organization_admin_account.py b/sdk/python/pulumi_aws/ec2/vpc_ipam_organization_admin_account.py index 08587cbeee2..e98c551125c 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam_organization_admin_account.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam_organization_admin_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcIpamOrganizationAdminAccountArgs', 'VpcIpamOrganizationAdminAccount'] @@ -18,7 +18,22 @@ def __init__(__self__, *, """ The set of arguments for constructing a VpcIpamOrganizationAdminAccount resource. """ - pulumi.set(__self__, "delegated_admin_account_id", delegated_admin_account_id) + VpcIpamOrganizationAdminAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delegated_admin_account_id=delegated_admin_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delegated_admin_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delegated_admin_account_id is None and 'delegatedAdminAccountId' in kwargs: + delegated_admin_account_id = kwargs['delegatedAdminAccountId'] + if delegated_admin_account_id is None: + raise TypeError("Missing 'delegated_admin_account_id' argument") + + _setter("delegated_admin_account_id", delegated_admin_account_id) @property @pulumi.getter(name="delegatedAdminAccountId") @@ -45,16 +60,39 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The Organizations name for the delegate account. :param pulumi.Input[str] service_principal: The AWS service principal. """ + _VpcIpamOrganizationAdminAccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + delegated_admin_account_id=delegated_admin_account_id, + email=email, + name=name, + service_principal=service_principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + delegated_admin_account_id: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delegated_admin_account_id is None and 'delegatedAdminAccountId' in kwargs: + delegated_admin_account_id = kwargs['delegatedAdminAccountId'] + if service_principal is None and 'servicePrincipal' in kwargs: + service_principal = kwargs['servicePrincipal'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if delegated_admin_account_id is not None: - pulumi.set(__self__, "delegated_admin_account_id", delegated_admin_account_id) + _setter("delegated_admin_account_id", delegated_admin_account_id) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if service_principal is not None: - pulumi.set(__self__, "service_principal", service_principal) + _setter("service_principal", service_principal) @property @pulumi.getter @@ -190,6 +228,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpamOrganizationAdminAccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam_pool.py b/sdk/python/pulumi_aws/ec2/vpc_ipam_pool.py index 0de41601d86..66e65af978e 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam_pool.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcIpamPoolArgs', 'VpcIpamPool'] @@ -46,32 +46,95 @@ def __init__(__self__, *, :param pulumi.Input[str] source_ipam_pool_id: The ID of the source IPAM pool. Use this argument to create a child pool within an existing pool. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "address_family", address_family) - pulumi.set(__self__, "ipam_scope_id", ipam_scope_id) + VpcIpamPoolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + ipam_scope_id=ipam_scope_id, + allocation_default_netmask_length=allocation_default_netmask_length, + allocation_max_netmask_length=allocation_max_netmask_length, + allocation_min_netmask_length=allocation_min_netmask_length, + allocation_resource_tags=allocation_resource_tags, + auto_import=auto_import, + aws_service=aws_service, + description=description, + locale=locale, + public_ip_source=public_ip_source, + publicly_advertisable=publicly_advertisable, + source_ipam_pool_id=source_ipam_pool_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + ipam_scope_id: Optional[pulumi.Input[str]] = None, + allocation_default_netmask_length: Optional[pulumi.Input[int]] = None, + allocation_max_netmask_length: Optional[pulumi.Input[int]] = None, + allocation_min_netmask_length: Optional[pulumi.Input[int]] = None, + allocation_resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + auto_import: Optional[pulumi.Input[bool]] = None, + aws_service: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + locale: Optional[pulumi.Input[str]] = None, + public_ip_source: Optional[pulumi.Input[str]] = None, + publicly_advertisable: Optional[pulumi.Input[bool]] = None, + source_ipam_pool_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if address_family is None: + raise TypeError("Missing 'address_family' argument") + if ipam_scope_id is None and 'ipamScopeId' in kwargs: + ipam_scope_id = kwargs['ipamScopeId'] + if ipam_scope_id is None: + raise TypeError("Missing 'ipam_scope_id' argument") + if allocation_default_netmask_length is None and 'allocationDefaultNetmaskLength' in kwargs: + allocation_default_netmask_length = kwargs['allocationDefaultNetmaskLength'] + if allocation_max_netmask_length is None and 'allocationMaxNetmaskLength' in kwargs: + allocation_max_netmask_length = kwargs['allocationMaxNetmaskLength'] + if allocation_min_netmask_length is None and 'allocationMinNetmaskLength' in kwargs: + allocation_min_netmask_length = kwargs['allocationMinNetmaskLength'] + if allocation_resource_tags is None and 'allocationResourceTags' in kwargs: + allocation_resource_tags = kwargs['allocationResourceTags'] + if auto_import is None and 'autoImport' in kwargs: + auto_import = kwargs['autoImport'] + if aws_service is None and 'awsService' in kwargs: + aws_service = kwargs['awsService'] + if public_ip_source is None and 'publicIpSource' in kwargs: + public_ip_source = kwargs['publicIpSource'] + if publicly_advertisable is None and 'publiclyAdvertisable' in kwargs: + publicly_advertisable = kwargs['publiclyAdvertisable'] + if source_ipam_pool_id is None and 'sourceIpamPoolId' in kwargs: + source_ipam_pool_id = kwargs['sourceIpamPoolId'] + + _setter("address_family", address_family) + _setter("ipam_scope_id", ipam_scope_id) if allocation_default_netmask_length is not None: - pulumi.set(__self__, "allocation_default_netmask_length", allocation_default_netmask_length) + _setter("allocation_default_netmask_length", allocation_default_netmask_length) if allocation_max_netmask_length is not None: - pulumi.set(__self__, "allocation_max_netmask_length", allocation_max_netmask_length) + _setter("allocation_max_netmask_length", allocation_max_netmask_length) if allocation_min_netmask_length is not None: - pulumi.set(__self__, "allocation_min_netmask_length", allocation_min_netmask_length) + _setter("allocation_min_netmask_length", allocation_min_netmask_length) if allocation_resource_tags is not None: - pulumi.set(__self__, "allocation_resource_tags", allocation_resource_tags) + _setter("allocation_resource_tags", allocation_resource_tags) if auto_import is not None: - pulumi.set(__self__, "auto_import", auto_import) + _setter("auto_import", auto_import) if aws_service is not None: - pulumi.set(__self__, "aws_service", aws_service) + _setter("aws_service", aws_service) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if locale is not None: - pulumi.set(__self__, "locale", locale) + _setter("locale", locale) if public_ip_source is not None: - pulumi.set(__self__, "public_ip_source", public_ip_source) + _setter("public_ip_source", public_ip_source) if publicly_advertisable is not None: - pulumi.set(__self__, "publicly_advertisable", publicly_advertisable) + _setter("publicly_advertisable", publicly_advertisable) if source_ipam_pool_id is not None: - pulumi.set(__self__, "source_ipam_pool_id", source_ipam_pool_id) + _setter("source_ipam_pool_id", source_ipam_pool_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="addressFamily") @@ -286,47 +349,122 @@ def __init__(__self__, *, :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. """ + _VpcIpamPoolState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_family=address_family, + allocation_default_netmask_length=allocation_default_netmask_length, + allocation_max_netmask_length=allocation_max_netmask_length, + allocation_min_netmask_length=allocation_min_netmask_length, + allocation_resource_tags=allocation_resource_tags, + arn=arn, + auto_import=auto_import, + aws_service=aws_service, + description=description, + ipam_scope_id=ipam_scope_id, + ipam_scope_type=ipam_scope_type, + locale=locale, + pool_depth=pool_depth, + public_ip_source=public_ip_source, + publicly_advertisable=publicly_advertisable, + source_ipam_pool_id=source_ipam_pool_id, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_family: Optional[pulumi.Input[str]] = None, + allocation_default_netmask_length: Optional[pulumi.Input[int]] = None, + allocation_max_netmask_length: Optional[pulumi.Input[int]] = None, + allocation_min_netmask_length: Optional[pulumi.Input[int]] = None, + allocation_resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_import: Optional[pulumi.Input[bool]] = None, + aws_service: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ipam_scope_id: Optional[pulumi.Input[str]] = None, + ipam_scope_type: Optional[pulumi.Input[str]] = None, + locale: Optional[pulumi.Input[str]] = None, + pool_depth: Optional[pulumi.Input[int]] = None, + public_ip_source: Optional[pulumi.Input[str]] = None, + publicly_advertisable: Optional[pulumi.Input[bool]] = None, + source_ipam_pool_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_family is None and 'addressFamily' in kwargs: + address_family = kwargs['addressFamily'] + if allocation_default_netmask_length is None and 'allocationDefaultNetmaskLength' in kwargs: + allocation_default_netmask_length = kwargs['allocationDefaultNetmaskLength'] + if allocation_max_netmask_length is None and 'allocationMaxNetmaskLength' in kwargs: + allocation_max_netmask_length = kwargs['allocationMaxNetmaskLength'] + if allocation_min_netmask_length is None and 'allocationMinNetmaskLength' in kwargs: + allocation_min_netmask_length = kwargs['allocationMinNetmaskLength'] + if allocation_resource_tags is None and 'allocationResourceTags' in kwargs: + allocation_resource_tags = kwargs['allocationResourceTags'] + if auto_import is None and 'autoImport' in kwargs: + auto_import = kwargs['autoImport'] + if aws_service is None and 'awsService' in kwargs: + aws_service = kwargs['awsService'] + if ipam_scope_id is None and 'ipamScopeId' in kwargs: + ipam_scope_id = kwargs['ipamScopeId'] + if ipam_scope_type is None and 'ipamScopeType' in kwargs: + ipam_scope_type = kwargs['ipamScopeType'] + if pool_depth is None and 'poolDepth' in kwargs: + pool_depth = kwargs['poolDepth'] + if public_ip_source is None and 'publicIpSource' in kwargs: + public_ip_source = kwargs['publicIpSource'] + if publicly_advertisable is None and 'publiclyAdvertisable' in kwargs: + publicly_advertisable = kwargs['publiclyAdvertisable'] + if source_ipam_pool_id is None and 'sourceIpamPoolId' in kwargs: + source_ipam_pool_id = kwargs['sourceIpamPoolId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if address_family is not None: - pulumi.set(__self__, "address_family", address_family) + _setter("address_family", address_family) if allocation_default_netmask_length is not None: - pulumi.set(__self__, "allocation_default_netmask_length", allocation_default_netmask_length) + _setter("allocation_default_netmask_length", allocation_default_netmask_length) if allocation_max_netmask_length is not None: - pulumi.set(__self__, "allocation_max_netmask_length", allocation_max_netmask_length) + _setter("allocation_max_netmask_length", allocation_max_netmask_length) if allocation_min_netmask_length is not None: - pulumi.set(__self__, "allocation_min_netmask_length", allocation_min_netmask_length) + _setter("allocation_min_netmask_length", allocation_min_netmask_length) if allocation_resource_tags is not None: - pulumi.set(__self__, "allocation_resource_tags", allocation_resource_tags) + _setter("allocation_resource_tags", allocation_resource_tags) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_import is not None: - pulumi.set(__self__, "auto_import", auto_import) + _setter("auto_import", auto_import) if aws_service is not None: - pulumi.set(__self__, "aws_service", aws_service) + _setter("aws_service", aws_service) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipam_scope_id is not None: - pulumi.set(__self__, "ipam_scope_id", ipam_scope_id) + _setter("ipam_scope_id", ipam_scope_id) if ipam_scope_type is not None: - pulumi.set(__self__, "ipam_scope_type", ipam_scope_type) + _setter("ipam_scope_type", ipam_scope_type) if locale is not None: - pulumi.set(__self__, "locale", locale) + _setter("locale", locale) if pool_depth is not None: - pulumi.set(__self__, "pool_depth", pool_depth) + _setter("pool_depth", pool_depth) if public_ip_source is not None: - pulumi.set(__self__, "public_ip_source", public_ip_source) + _setter("public_ip_source", public_ip_source) if publicly_advertisable is not None: - pulumi.set(__self__, "publicly_advertisable", publicly_advertisable) + _setter("publicly_advertisable", publicly_advertisable) if source_ipam_pool_id is not None: - pulumi.set(__self__, "source_ipam_pool_id", source_ipam_pool_id) + _setter("source_ipam_pool_id", source_ipam_pool_id) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="addressFamily") @@ -719,6 +857,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpamPoolArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam_pool_cidr.py b/sdk/python/pulumi_aws/ec2/vpc_ipam_pool_cidr.py index 3ae715aab76..e938b22db52 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam_pool_cidr.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam_pool_cidr.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,38 @@ def __init__(__self__, *, :param pulumi.Input['VpcIpamPoolCidrCidrAuthorizationContextArgs'] cidr_authorization_context: A signed document that proves that you are authorized to bring the specified IP address range to Amazon using BYOIP. This is not stored in the state file. See cidr_authorization_context for more information. :param pulumi.Input[int] netmask_length: If provided, the cidr provisioned into the specified pool will be the next available cidr given this declared netmask length. Conflicts with `cidr`. """ - pulumi.set(__self__, "ipam_pool_id", ipam_pool_id) + VpcIpamPoolCidrArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ipam_pool_id=ipam_pool_id, + cidr=cidr, + cidr_authorization_context=cidr_authorization_context, + netmask_length=netmask_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ipam_pool_id: Optional[pulumi.Input[str]] = None, + cidr: Optional[pulumi.Input[str]] = None, + cidr_authorization_context: Optional[pulumi.Input['VpcIpamPoolCidrCidrAuthorizationContextArgs']] = None, + netmask_length: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipam_pool_id is None and 'ipamPoolId' in kwargs: + ipam_pool_id = kwargs['ipamPoolId'] + if ipam_pool_id is None: + raise TypeError("Missing 'ipam_pool_id' argument") + if cidr_authorization_context is None and 'cidrAuthorizationContext' in kwargs: + cidr_authorization_context = kwargs['cidrAuthorizationContext'] + if netmask_length is None and 'netmaskLength' in kwargs: + netmask_length = kwargs['netmaskLength'] + + _setter("ipam_pool_id", ipam_pool_id) if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if cidr_authorization_context is not None: - pulumi.set(__self__, "cidr_authorization_context", cidr_authorization_context) + _setter("cidr_authorization_context", cidr_authorization_context) if netmask_length is not None: - pulumi.set(__self__, "netmask_length", netmask_length) + _setter("netmask_length", netmask_length) @property @pulumi.getter(name="ipamPoolId") @@ -100,16 +125,43 @@ def __init__(__self__, *, :param pulumi.Input[str] ipam_pool_id: The ID of the pool to which you want to assign a CIDR. :param pulumi.Input[int] netmask_length: If provided, the cidr provisioned into the specified pool will be the next available cidr given this declared netmask length. Conflicts with `cidr`. """ + _VpcIpamPoolCidrState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + cidr_authorization_context=cidr_authorization_context, + ipam_pool_cidr_id=ipam_pool_cidr_id, + ipam_pool_id=ipam_pool_id, + netmask_length=netmask_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + cidr_authorization_context: Optional[pulumi.Input['VpcIpamPoolCidrCidrAuthorizationContextArgs']] = None, + ipam_pool_cidr_id: Optional[pulumi.Input[str]] = None, + ipam_pool_id: Optional[pulumi.Input[str]] = None, + netmask_length: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_authorization_context is None and 'cidrAuthorizationContext' in kwargs: + cidr_authorization_context = kwargs['cidrAuthorizationContext'] + if ipam_pool_cidr_id is None and 'ipamPoolCidrId' in kwargs: + ipam_pool_cidr_id = kwargs['ipamPoolCidrId'] + if ipam_pool_id is None and 'ipamPoolId' in kwargs: + ipam_pool_id = kwargs['ipamPoolId'] + if netmask_length is None and 'netmaskLength' in kwargs: + netmask_length = kwargs['netmaskLength'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if cidr_authorization_context is not None: - pulumi.set(__self__, "cidr_authorization_context", cidr_authorization_context) + _setter("cidr_authorization_context", cidr_authorization_context) if ipam_pool_cidr_id is not None: - pulumi.set(__self__, "ipam_pool_cidr_id", ipam_pool_cidr_id) + _setter("ipam_pool_cidr_id", ipam_pool_cidr_id) if ipam_pool_id is not None: - pulumi.set(__self__, "ipam_pool_id", ipam_pool_id) + _setter("ipam_pool_id", ipam_pool_id) if netmask_length is not None: - pulumi.set(__self__, "netmask_length", netmask_length) + _setter("netmask_length", netmask_length) @property @pulumi.getter @@ -241,6 +293,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpamPoolCidrArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -260,6 +316,7 @@ def _internal_init(__self__, __props__ = VpcIpamPoolCidrArgs.__new__(VpcIpamPoolCidrArgs) __props__.__dict__["cidr"] = cidr + cidr_authorization_context = _utilities.configure(cidr_authorization_context, VpcIpamPoolCidrCidrAuthorizationContextArgs, True) __props__.__dict__["cidr_authorization_context"] = cidr_authorization_context if ipam_pool_id is None and not opts.urn: raise TypeError("Missing required property 'ipam_pool_id'") diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam_pool_cidr_allocation.py b/sdk/python/pulumi_aws/ec2/vpc_ipam_pool_cidr_allocation.py index 88b4b3ba21f..14f22ac9f48 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam_pool_cidr_allocation.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam_pool_cidr_allocation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcIpamPoolCidrAllocationArgs', 'VpcIpamPoolCidrAllocation'] @@ -27,15 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] disallowed_cidrs: Exclude a particular CIDR range from being returned by the pool. :param pulumi.Input[int] netmask_length: The netmask length of the CIDR you would like to allocate to the IPAM pool. Valid Values: `0-128`. """ - pulumi.set(__self__, "ipam_pool_id", ipam_pool_id) + VpcIpamPoolCidrAllocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ipam_pool_id=ipam_pool_id, + cidr=cidr, + description=description, + disallowed_cidrs=disallowed_cidrs, + netmask_length=netmask_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ipam_pool_id: Optional[pulumi.Input[str]] = None, + cidr: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disallowed_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + netmask_length: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipam_pool_id is None and 'ipamPoolId' in kwargs: + ipam_pool_id = kwargs['ipamPoolId'] + if ipam_pool_id is None: + raise TypeError("Missing 'ipam_pool_id' argument") + if disallowed_cidrs is None and 'disallowedCidrs' in kwargs: + disallowed_cidrs = kwargs['disallowedCidrs'] + if netmask_length is None and 'netmaskLength' in kwargs: + netmask_length = kwargs['netmaskLength'] + + _setter("ipam_pool_id", ipam_pool_id) if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disallowed_cidrs is not None: - pulumi.set(__self__, "disallowed_cidrs", disallowed_cidrs) + _setter("disallowed_cidrs", disallowed_cidrs) if netmask_length is not None: - pulumi.set(__self__, "netmask_length", netmask_length) + _setter("netmask_length", netmask_length) @property @pulumi.getter(name="ipamPoolId") @@ -121,24 +148,65 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_owner: The owner of the resource. :param pulumi.Input[str] resource_type: The type of the resource. """ + _VpcIpamPoolCidrAllocationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + description=description, + disallowed_cidrs=disallowed_cidrs, + ipam_pool_allocation_id=ipam_pool_allocation_id, + ipam_pool_id=ipam_pool_id, + netmask_length=netmask_length, + resource_id=resource_id, + resource_owner=resource_owner, + resource_type=resource_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disallowed_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipam_pool_allocation_id: Optional[pulumi.Input[str]] = None, + ipam_pool_id: Optional[pulumi.Input[str]] = None, + netmask_length: Optional[pulumi.Input[int]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disallowed_cidrs is None and 'disallowedCidrs' in kwargs: + disallowed_cidrs = kwargs['disallowedCidrs'] + if ipam_pool_allocation_id is None and 'ipamPoolAllocationId' in kwargs: + ipam_pool_allocation_id = kwargs['ipamPoolAllocationId'] + if ipam_pool_id is None and 'ipamPoolId' in kwargs: + ipam_pool_id = kwargs['ipamPoolId'] + if netmask_length is None and 'netmaskLength' in kwargs: + netmask_length = kwargs['netmaskLength'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disallowed_cidrs is not None: - pulumi.set(__self__, "disallowed_cidrs", disallowed_cidrs) + _setter("disallowed_cidrs", disallowed_cidrs) if ipam_pool_allocation_id is not None: - pulumi.set(__self__, "ipam_pool_allocation_id", ipam_pool_allocation_id) + _setter("ipam_pool_allocation_id", ipam_pool_allocation_id) if ipam_pool_id is not None: - pulumi.set(__self__, "ipam_pool_id", ipam_pool_id) + _setter("ipam_pool_id", ipam_pool_id) if netmask_length is not None: - pulumi.set(__self__, "netmask_length", netmask_length) + _setter("netmask_length", netmask_length) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) @property @pulumi.getter @@ -401,6 +469,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpamPoolCidrAllocationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam_preview_next_cidr.py b/sdk/python/pulumi_aws/ec2/vpc_ipam_preview_next_cidr.py index 248afeb0db5..25d29dd1951 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam_preview_next_cidr.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam_preview_next_cidr.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcIpamPreviewNextCidrArgs', 'VpcIpamPreviewNextCidr'] @@ -23,11 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] disallowed_cidrs: Exclude a particular CIDR range from being returned by the pool. :param pulumi.Input[int] netmask_length: The netmask length of the CIDR you would like to preview from the IPAM pool. """ - pulumi.set(__self__, "ipam_pool_id", ipam_pool_id) + VpcIpamPreviewNextCidrArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ipam_pool_id=ipam_pool_id, + disallowed_cidrs=disallowed_cidrs, + netmask_length=netmask_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ipam_pool_id: Optional[pulumi.Input[str]] = None, + disallowed_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + netmask_length: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipam_pool_id is None and 'ipamPoolId' in kwargs: + ipam_pool_id = kwargs['ipamPoolId'] + if ipam_pool_id is None: + raise TypeError("Missing 'ipam_pool_id' argument") + if disallowed_cidrs is None and 'disallowedCidrs' in kwargs: + disallowed_cidrs = kwargs['disallowedCidrs'] + if netmask_length is None and 'netmaskLength' in kwargs: + netmask_length = kwargs['netmaskLength'] + + _setter("ipam_pool_id", ipam_pool_id) if disallowed_cidrs is not None: - pulumi.set(__self__, "disallowed_cidrs", disallowed_cidrs) + _setter("disallowed_cidrs", disallowed_cidrs) if netmask_length is not None: - pulumi.set(__self__, "netmask_length", netmask_length) + _setter("netmask_length", netmask_length) @property @pulumi.getter(name="ipamPoolId") @@ -80,14 +103,37 @@ def __init__(__self__, *, :param pulumi.Input[str] ipam_pool_id: The ID of the pool to which you want to assign a CIDR. :param pulumi.Input[int] netmask_length: The netmask length of the CIDR you would like to preview from the IPAM pool. """ + _VpcIpamPreviewNextCidrState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + disallowed_cidrs=disallowed_cidrs, + ipam_pool_id=ipam_pool_id, + netmask_length=netmask_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + disallowed_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipam_pool_id: Optional[pulumi.Input[str]] = None, + netmask_length: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disallowed_cidrs is None and 'disallowedCidrs' in kwargs: + disallowed_cidrs = kwargs['disallowedCidrs'] + if ipam_pool_id is None and 'ipamPoolId' in kwargs: + ipam_pool_id = kwargs['ipamPoolId'] + if netmask_length is None and 'netmaskLength' in kwargs: + netmask_length = kwargs['netmaskLength'] + if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if disallowed_cidrs is not None: - pulumi.set(__self__, "disallowed_cidrs", disallowed_cidrs) + _setter("disallowed_cidrs", disallowed_cidrs) if ipam_pool_id is not None: - pulumi.set(__self__, "ipam_pool_id", ipam_pool_id) + _setter("ipam_pool_id", ipam_pool_id) if netmask_length is not None: - pulumi.set(__self__, "netmask_length", netmask_length) + _setter("netmask_length", netmask_length) @property @pulumi.getter @@ -227,6 +273,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpamPreviewNextCidrArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam_resource_discovery.py b/sdk/python/pulumi_aws/ec2/vpc_ipam_resource_discovery.py index 97ed80b368b..2419463eba2 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam_resource_discovery.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam_resource_discovery.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description for the IPAM Resource Discovery. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "operating_regions", operating_regions) + VpcIpamResourceDiscoveryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + operating_regions=operating_regions, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + operating_regions: Optional[pulumi.Input[Sequence[pulumi.Input['VpcIpamResourceDiscoveryOperatingRegionArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if operating_regions is None and 'operatingRegions' in kwargs: + operating_regions = kwargs['operatingRegions'] + if operating_regions is None: + raise TypeError("Missing 'operating_regions' argument") + + _setter("operating_regions", operating_regions) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="operatingRegions") @@ -90,25 +109,60 @@ def __init__(__self__, *, :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. """ + _VpcIpamResourceDiscoveryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + ipam_resource_discovery_region=ipam_resource_discovery_region, + is_default=is_default, + operating_regions=operating_regions, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ipam_resource_discovery_region: Optional[pulumi.Input[str]] = None, + is_default: Optional[pulumi.Input[bool]] = None, + operating_regions: Optional[pulumi.Input[Sequence[pulumi.Input['VpcIpamResourceDiscoveryOperatingRegionArgs']]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipam_resource_discovery_region is None and 'ipamResourceDiscoveryRegion' in kwargs: + ipam_resource_discovery_region = kwargs['ipamResourceDiscoveryRegion'] + if is_default is None and 'isDefault' in kwargs: + is_default = kwargs['isDefault'] + if operating_regions is None and 'operatingRegions' in kwargs: + operating_regions = kwargs['operatingRegions'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipam_resource_discovery_region is not None: - pulumi.set(__self__, "ipam_resource_discovery_region", ipam_resource_discovery_region) + _setter("ipam_resource_discovery_region", ipam_resource_discovery_region) if is_default is not None: - pulumi.set(__self__, "is_default", is_default) + _setter("is_default", is_default) if operating_regions is not None: - pulumi.set(__self__, "operating_regions", operating_regions) + _setter("operating_regions", operating_regions) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -301,6 +355,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpamResourceDiscoveryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam_resource_discovery_association.py b/sdk/python/pulumi_aws/ec2/vpc_ipam_resource_discovery_association.py index 56a835075ce..c9a8f207f3e 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam_resource_discovery_association.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam_resource_discovery_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcIpamResourceDiscoveryAssociationArgs', 'VpcIpamResourceDiscoveryAssociation'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] ipam_resource_discovery_id: The ID of the Resource Discovery to associate. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to add to the IPAM resource discovery association resource. """ - pulumi.set(__self__, "ipam_id", ipam_id) - pulumi.set(__self__, "ipam_resource_discovery_id", ipam_resource_discovery_id) + VpcIpamResourceDiscoveryAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ipam_id=ipam_id, + ipam_resource_discovery_id=ipam_resource_discovery_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ipam_id: Optional[pulumi.Input[str]] = None, + ipam_resource_discovery_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipam_id is None and 'ipamId' in kwargs: + ipam_id = kwargs['ipamId'] + if ipam_id is None: + raise TypeError("Missing 'ipam_id' argument") + if ipam_resource_discovery_id is None and 'ipamResourceDiscoveryId' in kwargs: + ipam_resource_discovery_id = kwargs['ipamResourceDiscoveryId'] + if ipam_resource_discovery_id is None: + raise TypeError("Missing 'ipam_resource_discovery_id' argument") + + _setter("ipam_id", ipam_id) + _setter("ipam_resource_discovery_id", ipam_resource_discovery_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="ipamId") @@ -91,29 +114,72 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to add to the IPAM resource discovery association resource. :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. """ + _VpcIpamResourceDiscoveryAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ipam_arn=ipam_arn, + ipam_id=ipam_id, + ipam_region=ipam_region, + ipam_resource_discovery_id=ipam_resource_discovery_id, + is_default=is_default, + owner_id=owner_id, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + ipam_arn: Optional[pulumi.Input[str]] = None, + ipam_id: Optional[pulumi.Input[str]] = None, + ipam_region: Optional[pulumi.Input[str]] = None, + ipam_resource_discovery_id: Optional[pulumi.Input[str]] = None, + is_default: Optional[pulumi.Input[bool]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipam_arn is None and 'ipamArn' in kwargs: + ipam_arn = kwargs['ipamArn'] + if ipam_id is None and 'ipamId' in kwargs: + ipam_id = kwargs['ipamId'] + if ipam_region is None and 'ipamRegion' in kwargs: + ipam_region = kwargs['ipamRegion'] + if ipam_resource_discovery_id is None and 'ipamResourceDiscoveryId' in kwargs: + ipam_resource_discovery_id = kwargs['ipamResourceDiscoveryId'] + if is_default is None and 'isDefault' in kwargs: + is_default = kwargs['isDefault'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if ipam_arn is not None: - pulumi.set(__self__, "ipam_arn", ipam_arn) + _setter("ipam_arn", ipam_arn) if ipam_id is not None: - pulumi.set(__self__, "ipam_id", ipam_id) + _setter("ipam_id", ipam_id) if ipam_region is not None: - pulumi.set(__self__, "ipam_region", ipam_region) + _setter("ipam_region", ipam_region) if ipam_resource_discovery_id is not None: - pulumi.set(__self__, "ipam_resource_discovery_id", ipam_resource_discovery_id) + _setter("ipam_resource_discovery_id", ipam_resource_discovery_id) if is_default is not None: - pulumi.set(__self__, "is_default", is_default) + _setter("is_default", is_default) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -328,6 +394,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpamResourceDiscoveryAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam_scope.py b/sdk/python/pulumi_aws/ec2/vpc_ipam_scope.py index e49fd40b11f..56459ee2b1b 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam_scope.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam_scope.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcIpamScopeArgs', 'VpcIpamScope'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description for the scope you're creating. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "ipam_id", ipam_id) + VpcIpamScopeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ipam_id=ipam_id, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ipam_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipam_id is None and 'ipamId' in kwargs: + ipam_id = kwargs['ipamId'] + if ipam_id is None: + raise TypeError("Missing 'ipam_id' argument") + + _setter("ipam_id", ipam_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="ipamId") @@ -88,27 +107,66 @@ def __init__(__self__, *, :param pulumi.Input[int] pool_count: The number of pools in the scope. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ + _VpcIpamScopeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + ipam_arn=ipam_arn, + ipam_id=ipam_id, + ipam_scope_type=ipam_scope_type, + is_default=is_default, + pool_count=pool_count, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ipam_arn: Optional[pulumi.Input[str]] = None, + ipam_id: Optional[pulumi.Input[str]] = None, + ipam_scope_type: Optional[pulumi.Input[str]] = None, + is_default: Optional[pulumi.Input[bool]] = None, + pool_count: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipam_arn is None and 'ipamArn' in kwargs: + ipam_arn = kwargs['ipamArn'] + if ipam_id is None and 'ipamId' in kwargs: + ipam_id = kwargs['ipamId'] + if ipam_scope_type is None and 'ipamScopeType' in kwargs: + ipam_scope_type = kwargs['ipamScopeType'] + if is_default is None and 'isDefault' in kwargs: + is_default = kwargs['isDefault'] + if pool_count is None and 'poolCount' in kwargs: + pool_count = kwargs['poolCount'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ipam_arn is not None: - pulumi.set(__self__, "ipam_arn", ipam_arn) + _setter("ipam_arn", ipam_arn) if ipam_id is not None: - pulumi.set(__self__, "ipam_id", ipam_id) + _setter("ipam_id", ipam_id) if ipam_scope_type is not None: - pulumi.set(__self__, "ipam_scope_type", ipam_scope_type) + _setter("ipam_scope_type", ipam_scope_type) if is_default is not None: - pulumi.set(__self__, "is_default", is_default) + _setter("is_default", is_default) if pool_count is not None: - pulumi.set(__self__, "pool_count", pool_count) + _setter("pool_count", pool_count) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -303,6 +361,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpamScopeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipv4_cidr_block_association.py b/sdk/python/pulumi_aws/ec2/vpc_ipv4_cidr_block_association.py index 2973c55c0b9..c3cccb9c27f 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipv4_cidr_block_association.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipv4_cidr_block_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcIpv4CidrBlockAssociationArgs', 'VpcIpv4CidrBlockAssociation'] @@ -25,13 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] ipv4_ipam_pool_id: The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization. :param pulumi.Input[int] ipv4_netmask_length: The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a `ipv4_ipam_pool_id`. """ - pulumi.set(__self__, "vpc_id", vpc_id) + VpcIpv4CidrBlockAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + cidr_block=cidr_block, + ipv4_ipam_pool_id=ipv4_ipam_pool_id, + ipv4_netmask_length=ipv4_netmask_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + ipv4_ipam_pool_id: Optional[pulumi.Input[str]] = None, + ipv4_netmask_length: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if ipv4_ipam_pool_id is None and 'ipv4IpamPoolId' in kwargs: + ipv4_ipam_pool_id = kwargs['ipv4IpamPoolId'] + if ipv4_netmask_length is None and 'ipv4NetmaskLength' in kwargs: + ipv4_netmask_length = kwargs['ipv4NetmaskLength'] + + _setter("vpc_id", vpc_id) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if ipv4_ipam_pool_id is not None: - pulumi.set(__self__, "ipv4_ipam_pool_id", ipv4_ipam_pool_id) + _setter("ipv4_ipam_pool_id", ipv4_ipam_pool_id) if ipv4_netmask_length is not None: - pulumi.set(__self__, "ipv4_netmask_length", ipv4_netmask_length) + _setter("ipv4_netmask_length", ipv4_netmask_length) @property @pulumi.getter(name="vpcId") @@ -96,14 +123,39 @@ def __init__(__self__, *, :param pulumi.Input[int] ipv4_netmask_length: The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a `ipv4_ipam_pool_id`. :param pulumi.Input[str] vpc_id: The ID of the VPC to make the association with. """ + _VpcIpv4CidrBlockAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + ipv4_ipam_pool_id=ipv4_ipam_pool_id, + ipv4_netmask_length=ipv4_netmask_length, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[pulumi.Input[str]] = None, + ipv4_ipam_pool_id: Optional[pulumi.Input[str]] = None, + ipv4_netmask_length: Optional[pulumi.Input[int]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if ipv4_ipam_pool_id is None and 'ipv4IpamPoolId' in kwargs: + ipv4_ipam_pool_id = kwargs['ipv4IpamPoolId'] + if ipv4_netmask_length is None and 'ipv4NetmaskLength' in kwargs: + ipv4_netmask_length = kwargs['ipv4NetmaskLength'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if ipv4_ipam_pool_id is not None: - pulumi.set(__self__, "ipv4_ipam_pool_id", ipv4_ipam_pool_id) + _setter("ipv4_ipam_pool_id", ipv4_ipam_pool_id) if ipv4_netmask_length is not None: - pulumi.set(__self__, "ipv4_netmask_length", ipv4_netmask_length) + _setter("ipv4_netmask_length", ipv4_netmask_length) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="cidrBlock") @@ -239,6 +291,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpv4CidrBlockAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipv6_cidr_block_association.py b/sdk/python/pulumi_aws/ec2/vpc_ipv6_cidr_block_association.py index f963fb9d85b..1c2619ce237 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipv6_cidr_block_association.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipv6_cidr_block_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcIpv6CidrBlockAssociationArgs', 'VpcIpv6CidrBlockAssociation'] @@ -25,12 +25,41 @@ def __init__(__self__, *, :param pulumi.Input[str] ipv6_cidr_block: The IPv6 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using `ipv6_netmask_length`. This parameter is required if `ipv6_netmask_length` is not set and he IPAM pool does not have `allocation_default_netmask` set. :param pulumi.Input[int] ipv6_netmask_length: The netmask length of the IPv6 CIDR you want to allocate to this VPC. Requires specifying a `ipv6_ipam_pool_id`. This parameter is optional if the IPAM pool has `allocation_default_netmask` set, otherwise it or `cidr_block` are required """ - pulumi.set(__self__, "ipv6_ipam_pool_id", ipv6_ipam_pool_id) - pulumi.set(__self__, "vpc_id", vpc_id) + VpcIpv6CidrBlockAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ipv6_ipam_pool_id=ipv6_ipam_pool_id, + vpc_id=vpc_id, + ipv6_cidr_block=ipv6_cidr_block, + ipv6_netmask_length=ipv6_netmask_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ipv6_ipam_pool_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_netmask_length: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipv6_ipam_pool_id is None and 'ipv6IpamPoolId' in kwargs: + ipv6_ipam_pool_id = kwargs['ipv6IpamPoolId'] + if ipv6_ipam_pool_id is None: + raise TypeError("Missing 'ipv6_ipam_pool_id' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_netmask_length is None and 'ipv6NetmaskLength' in kwargs: + ipv6_netmask_length = kwargs['ipv6NetmaskLength'] + + _setter("ipv6_ipam_pool_id", ipv6_ipam_pool_id) + _setter("vpc_id", vpc_id) if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_netmask_length is not None: - pulumi.set(__self__, "ipv6_netmask_length", ipv6_netmask_length) + _setter("ipv6_netmask_length", ipv6_netmask_length) @property @pulumi.getter(name="ipv6IpamPoolId") @@ -95,14 +124,39 @@ def __init__(__self__, *, :param pulumi.Input[int] ipv6_netmask_length: The netmask length of the IPv6 CIDR you want to allocate to this VPC. Requires specifying a `ipv6_ipam_pool_id`. This parameter is optional if the IPAM pool has `allocation_default_netmask` set, otherwise it or `cidr_block` are required :param pulumi.Input[str] vpc_id: The ID of the VPC to make the association with. """ + _VpcIpv6CidrBlockAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + ipv6_cidr_block=ipv6_cidr_block, + ipv6_ipam_pool_id=ipv6_ipam_pool_id, + ipv6_netmask_length=ipv6_netmask_length, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ipv6_cidr_block: Optional[pulumi.Input[str]] = None, + ipv6_ipam_pool_id: Optional[pulumi.Input[str]] = None, + ipv6_netmask_length: Optional[pulumi.Input[int]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipv6_cidr_block is None and 'ipv6CidrBlock' in kwargs: + ipv6_cidr_block = kwargs['ipv6CidrBlock'] + if ipv6_ipam_pool_id is None and 'ipv6IpamPoolId' in kwargs: + ipv6_ipam_pool_id = kwargs['ipv6IpamPoolId'] + if ipv6_netmask_length is None and 'ipv6NetmaskLength' in kwargs: + ipv6_netmask_length = kwargs['ipv6NetmaskLength'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if ipv6_cidr_block is not None: - pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) + _setter("ipv6_cidr_block", ipv6_cidr_block) if ipv6_ipam_pool_id is not None: - pulumi.set(__self__, "ipv6_ipam_pool_id", ipv6_ipam_pool_id) + _setter("ipv6_ipam_pool_id", ipv6_ipam_pool_id) if ipv6_netmask_length is not None: - pulumi.set(__self__, "ipv6_netmask_length", ipv6_netmask_length) + _setter("ipv6_netmask_length", ipv6_netmask_length) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="ipv6CidrBlock") @@ -236,6 +290,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcIpv6CidrBlockAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_network_performance_metric_subscription.py b/sdk/python/pulumi_aws/ec2/vpc_network_performance_metric_subscription.py index 21fc8e6180a..819262e0979 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_network_performance_metric_subscription.py +++ b/sdk/python/pulumi_aws/ec2/vpc_network_performance_metric_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcNetworkPerformanceMetricSubscriptionArgs', 'VpcNetworkPerformanceMetricSubscription'] @@ -25,12 +25,33 @@ def __init__(__self__, *, :param pulumi.Input[str] metric: The metric used for the enabled subscription. Valid values: `aggregate-latency`. Default: `aggregate-latency`. :param pulumi.Input[str] statistic: The statistic used for the enabled subscription. Valid values: `p50`. Default: `p50`. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "source", source) + VpcNetworkPerformanceMetricSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + source=source, + metric=metric, + statistic=statistic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + metric: Optional[pulumi.Input[str]] = None, + statistic: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("destination", destination) + _setter("source", source) if metric is not None: - pulumi.set(__self__, "metric", metric) + _setter("metric", metric) if statistic is not None: - pulumi.set(__self__, "statistic", statistic) + _setter("statistic", statistic) @property @pulumi.getter @@ -97,16 +118,35 @@ def __init__(__self__, *, :param pulumi.Input[str] source: The source Region or Availability Zone that the metric subscription is enabled for. For example, `us-east-1`. :param pulumi.Input[str] statistic: The statistic used for the enabled subscription. Valid values: `p50`. Default: `p50`. """ + _VpcNetworkPerformanceMetricSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + metric=metric, + period=period, + source=source, + statistic=statistic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + metric: Optional[pulumi.Input[str]] = None, + period: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + statistic: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if metric is not None: - pulumi.set(__self__, "metric", metric) + _setter("metric", metric) if period is not None: - pulumi.set(__self__, "period", period) + _setter("period", period) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if statistic is not None: - pulumi.set(__self__, "statistic", statistic) + _setter("statistic", statistic) @property @pulumi.getter @@ -230,6 +270,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcNetworkPerformanceMetricSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpc_peering_connection.py b/sdk/python/pulumi_aws/ec2/vpc_peering_connection.py index ef19b802d09..87ac3fab9a2 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_peering_connection.py +++ b/sdk/python/pulumi_aws/ec2/vpc_peering_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,20 +39,59 @@ def __init__(__self__, *, the peering connection (a maximum of one). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "peer_vpc_id", peer_vpc_id) - pulumi.set(__self__, "vpc_id", vpc_id) + VpcPeeringConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + peer_vpc_id=peer_vpc_id, + vpc_id=vpc_id, + accepter=accepter, + auto_accept=auto_accept, + peer_owner_id=peer_owner_id, + peer_region=peer_region, + requester=requester, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + peer_vpc_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + accepter: Optional[pulumi.Input['VpcPeeringConnectionAccepterArgs']] = None, + auto_accept: Optional[pulumi.Input[bool]] = None, + peer_owner_id: Optional[pulumi.Input[str]] = None, + peer_region: Optional[pulumi.Input[str]] = None, + requester: Optional[pulumi.Input['VpcPeeringConnectionRequesterArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if peer_vpc_id is None and 'peerVpcId' in kwargs: + peer_vpc_id = kwargs['peerVpcId'] + if peer_vpc_id is None: + raise TypeError("Missing 'peer_vpc_id' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if auto_accept is None and 'autoAccept' in kwargs: + auto_accept = kwargs['autoAccept'] + if peer_owner_id is None and 'peerOwnerId' in kwargs: + peer_owner_id = kwargs['peerOwnerId'] + if peer_region is None and 'peerRegion' in kwargs: + peer_region = kwargs['peerRegion'] + + _setter("peer_vpc_id", peer_vpc_id) + _setter("vpc_id", vpc_id) if accepter is not None: - pulumi.set(__self__, "accepter", accepter) + _setter("accepter", accepter) if auto_accept is not None: - pulumi.set(__self__, "auto_accept", auto_accept) + _setter("auto_accept", auto_accept) if peer_owner_id is not None: - pulumi.set(__self__, "peer_owner_id", peer_owner_id) + _setter("peer_owner_id", peer_owner_id) if peer_region is not None: - pulumi.set(__self__, "peer_region", peer_region) + _setter("peer_region", peer_region) if requester is not None: - pulumi.set(__self__, "requester", requester) + _setter("requester", requester) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="peerVpcId") @@ -185,29 +224,72 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The ID of the requester VPC. """ + _VpcPeeringConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_status=accept_status, + accepter=accepter, + auto_accept=auto_accept, + peer_owner_id=peer_owner_id, + peer_region=peer_region, + peer_vpc_id=peer_vpc_id, + requester=requester, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_status: Optional[pulumi.Input[str]] = None, + accepter: Optional[pulumi.Input['VpcPeeringConnectionAccepterArgs']] = None, + auto_accept: Optional[pulumi.Input[bool]] = None, + peer_owner_id: Optional[pulumi.Input[str]] = None, + peer_region: Optional[pulumi.Input[str]] = None, + peer_vpc_id: Optional[pulumi.Input[str]] = None, + requester: Optional[pulumi.Input['VpcPeeringConnectionRequesterArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_status is None and 'acceptStatus' in kwargs: + accept_status = kwargs['acceptStatus'] + if auto_accept is None and 'autoAccept' in kwargs: + auto_accept = kwargs['autoAccept'] + if peer_owner_id is None and 'peerOwnerId' in kwargs: + peer_owner_id = kwargs['peerOwnerId'] + if peer_region is None and 'peerRegion' in kwargs: + peer_region = kwargs['peerRegion'] + if peer_vpc_id is None and 'peerVpcId' in kwargs: + peer_vpc_id = kwargs['peerVpcId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if accept_status is not None: - pulumi.set(__self__, "accept_status", accept_status) + _setter("accept_status", accept_status) if accepter is not None: - pulumi.set(__self__, "accepter", accepter) + _setter("accepter", accepter) if auto_accept is not None: - pulumi.set(__self__, "auto_accept", auto_accept) + _setter("auto_accept", auto_accept) if peer_owner_id is not None: - pulumi.set(__self__, "peer_owner_id", peer_owner_id) + _setter("peer_owner_id", peer_owner_id) if peer_region is not None: - pulumi.set(__self__, "peer_region", peer_region) + _setter("peer_region", peer_region) if peer_vpc_id is not None: - pulumi.set(__self__, "peer_vpc_id", peer_vpc_id) + _setter("peer_vpc_id", peer_vpc_id) if requester is not None: - pulumi.set(__self__, "requester", requester) + _setter("requester", requester) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="acceptStatus") @@ -572,6 +654,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcPeeringConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -594,6 +680,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = VpcPeeringConnectionArgs.__new__(VpcPeeringConnectionArgs) + accepter = _utilities.configure(accepter, VpcPeeringConnectionAccepterArgs, True) __props__.__dict__["accepter"] = accepter __props__.__dict__["auto_accept"] = auto_accept __props__.__dict__["peer_owner_id"] = peer_owner_id @@ -601,6 +688,7 @@ def _internal_init(__self__, if peer_vpc_id is None and not opts.urn: raise TypeError("Missing required property 'peer_vpc_id'") __props__.__dict__["peer_vpc_id"] = peer_vpc_id + requester = _utilities.configure(requester, VpcPeeringConnectionRequesterArgs, True) __props__.__dict__["requester"] = requester __props__.__dict__["tags"] = tags if vpc_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/ec2/vpc_peering_connection_accepter.py b/sdk/python/pulumi_aws/ec2/vpc_peering_connection_accepter.py index 102b6eb2efe..1f4b4510958 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_peering_connection_accepter.py +++ b/sdk/python/pulumi_aws/ec2/vpc_peering_connection_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,40 @@ def __init__(__self__, *, (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the requester VPC. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + VpcPeeringConnectionAccepterInitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_peering_connection_id=vpc_peering_connection_id, + accepter=accepter, + auto_accept=auto_accept, + requester=requester, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + accepter: Optional[pulumi.Input['VpcPeeringConnectionAccepterAccepterArgs']] = None, + auto_accept: Optional[pulumi.Input[bool]] = None, + requester: Optional[pulumi.Input['VpcPeeringConnectionAccepterRequesterArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if vpc_peering_connection_id is None: + raise TypeError("Missing 'vpc_peering_connection_id' argument") + if auto_accept is None and 'autoAccept' in kwargs: + auto_accept = kwargs['autoAccept'] + + _setter("vpc_peering_connection_id", vpc_peering_connection_id) if accepter is not None: - pulumi.set(__self__, "accepter", accepter) + _setter("accepter", accepter) if auto_accept is not None: - pulumi.set(__self__, "auto_accept", auto_accept) + _setter("auto_accept", auto_accept) if requester is not None: - pulumi.set(__self__, "requester", requester) + _setter("requester", requester) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="vpcPeeringConnectionId") @@ -134,31 +159,78 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The ID of the accepter VPC. :param pulumi.Input[str] vpc_peering_connection_id: The VPC Peering Connection ID to manage. """ + _VpcPeeringConnectionAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_status=accept_status, + accepter=accepter, + auto_accept=auto_accept, + peer_owner_id=peer_owner_id, + peer_region=peer_region, + peer_vpc_id=peer_vpc_id, + requester=requester, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + vpc_peering_connection_id=vpc_peering_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_status: Optional[pulumi.Input[str]] = None, + accepter: Optional[pulumi.Input['VpcPeeringConnectionAccepterAccepterArgs']] = None, + auto_accept: Optional[pulumi.Input[bool]] = None, + peer_owner_id: Optional[pulumi.Input[str]] = None, + peer_region: Optional[pulumi.Input[str]] = None, + peer_vpc_id: Optional[pulumi.Input[str]] = None, + requester: Optional[pulumi.Input['VpcPeeringConnectionAccepterRequesterArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + vpc_peering_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_status is None and 'acceptStatus' in kwargs: + accept_status = kwargs['acceptStatus'] + if auto_accept is None and 'autoAccept' in kwargs: + auto_accept = kwargs['autoAccept'] + if peer_owner_id is None and 'peerOwnerId' in kwargs: + peer_owner_id = kwargs['peerOwnerId'] + if peer_region is None and 'peerRegion' in kwargs: + peer_region = kwargs['peerRegion'] + if peer_vpc_id is None and 'peerVpcId' in kwargs: + peer_vpc_id = kwargs['peerVpcId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_peering_connection_id is None and 'vpcPeeringConnectionId' in kwargs: + vpc_peering_connection_id = kwargs['vpcPeeringConnectionId'] + if accept_status is not None: - pulumi.set(__self__, "accept_status", accept_status) + _setter("accept_status", accept_status) if accepter is not None: - pulumi.set(__self__, "accepter", accepter) + _setter("accepter", accepter) if auto_accept is not None: - pulumi.set(__self__, "auto_accept", auto_accept) + _setter("auto_accept", auto_accept) if peer_owner_id is not None: - pulumi.set(__self__, "peer_owner_id", peer_owner_id) + _setter("peer_owner_id", peer_owner_id) if peer_region is not None: - pulumi.set(__self__, "peer_region", peer_region) + _setter("peer_region", peer_region) if peer_vpc_id is not None: - pulumi.set(__self__, "peer_vpc_id", peer_vpc_id) + _setter("peer_vpc_id", peer_vpc_id) if requester is not None: - pulumi.set(__self__, "requester", requester) + _setter("requester", requester) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if vpc_peering_connection_id is not None: - pulumi.set(__self__, "vpc_peering_connection_id", vpc_peering_connection_id) + _setter("vpc_peering_connection_id", vpc_peering_connection_id) @property @pulumi.getter(name="acceptStatus") @@ -437,6 +509,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcPeeringConnectionAccepterInitArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -456,8 +532,10 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = VpcPeeringConnectionAccepterInitArgs.__new__(VpcPeeringConnectionAccepterInitArgs) + accepter = _utilities.configure(accepter, VpcPeeringConnectionAccepterAccepterArgs, True) __props__.__dict__["accepter"] = accepter __props__.__dict__["auto_accept"] = auto_accept + requester = _utilities.configure(requester, VpcPeeringConnectionAccepterRequesterArgs, True) __props__.__dict__["requester"] = requester __props__.__dict__["tags"] = tags if vpc_peering_connection_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/ec2/vpn_connection.py b/sdk/python/pulumi_aws/ec2/vpn_connection.py index c9f9a520512..19314194e23 100644 --- a/sdk/python/pulumi_aws/ec2/vpn_connection.py +++ b/sdk/python/pulumi_aws/ec2/vpn_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -127,112 +127,337 @@ def __init__(__self__, *, :param pulumi.Input[str] tunnel_inside_ip_version: Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. Valid values are `ipv4 | ipv6`. `ipv6` Supports only EC2 Transit Gateway. :param pulumi.Input[str] vpn_gateway_id: The ID of the Virtual Private Gateway. """ - pulumi.set(__self__, "customer_gateway_id", customer_gateway_id) - pulumi.set(__self__, "type", type) + VpnConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_gateway_id=customer_gateway_id, + type=type, + enable_acceleration=enable_acceleration, + local_ipv4_network_cidr=local_ipv4_network_cidr, + local_ipv6_network_cidr=local_ipv6_network_cidr, + outside_ip_address_type=outside_ip_address_type, + remote_ipv4_network_cidr=remote_ipv4_network_cidr, + remote_ipv6_network_cidr=remote_ipv6_network_cidr, + static_routes_only=static_routes_only, + tags=tags, + transit_gateway_id=transit_gateway_id, + transport_transit_gateway_attachment_id=transport_transit_gateway_attachment_id, + tunnel1_dpd_timeout_action=tunnel1_dpd_timeout_action, + tunnel1_dpd_timeout_seconds=tunnel1_dpd_timeout_seconds, + tunnel1_enable_tunnel_lifecycle_control=tunnel1_enable_tunnel_lifecycle_control, + tunnel1_ike_versions=tunnel1_ike_versions, + tunnel1_inside_cidr=tunnel1_inside_cidr, + tunnel1_inside_ipv6_cidr=tunnel1_inside_ipv6_cidr, + tunnel1_log_options=tunnel1_log_options, + tunnel1_phase1_dh_group_numbers=tunnel1_phase1_dh_group_numbers, + tunnel1_phase1_encryption_algorithms=tunnel1_phase1_encryption_algorithms, + tunnel1_phase1_integrity_algorithms=tunnel1_phase1_integrity_algorithms, + tunnel1_phase1_lifetime_seconds=tunnel1_phase1_lifetime_seconds, + tunnel1_phase2_dh_group_numbers=tunnel1_phase2_dh_group_numbers, + tunnel1_phase2_encryption_algorithms=tunnel1_phase2_encryption_algorithms, + tunnel1_phase2_integrity_algorithms=tunnel1_phase2_integrity_algorithms, + tunnel1_phase2_lifetime_seconds=tunnel1_phase2_lifetime_seconds, + tunnel1_preshared_key=tunnel1_preshared_key, + tunnel1_rekey_fuzz_percentage=tunnel1_rekey_fuzz_percentage, + tunnel1_rekey_margin_time_seconds=tunnel1_rekey_margin_time_seconds, + tunnel1_replay_window_size=tunnel1_replay_window_size, + tunnel1_startup_action=tunnel1_startup_action, + tunnel2_dpd_timeout_action=tunnel2_dpd_timeout_action, + tunnel2_dpd_timeout_seconds=tunnel2_dpd_timeout_seconds, + tunnel2_enable_tunnel_lifecycle_control=tunnel2_enable_tunnel_lifecycle_control, + tunnel2_ike_versions=tunnel2_ike_versions, + tunnel2_inside_cidr=tunnel2_inside_cidr, + tunnel2_inside_ipv6_cidr=tunnel2_inside_ipv6_cidr, + tunnel2_log_options=tunnel2_log_options, + tunnel2_phase1_dh_group_numbers=tunnel2_phase1_dh_group_numbers, + tunnel2_phase1_encryption_algorithms=tunnel2_phase1_encryption_algorithms, + tunnel2_phase1_integrity_algorithms=tunnel2_phase1_integrity_algorithms, + tunnel2_phase1_lifetime_seconds=tunnel2_phase1_lifetime_seconds, + tunnel2_phase2_dh_group_numbers=tunnel2_phase2_dh_group_numbers, + tunnel2_phase2_encryption_algorithms=tunnel2_phase2_encryption_algorithms, + tunnel2_phase2_integrity_algorithms=tunnel2_phase2_integrity_algorithms, + tunnel2_phase2_lifetime_seconds=tunnel2_phase2_lifetime_seconds, + tunnel2_preshared_key=tunnel2_preshared_key, + tunnel2_rekey_fuzz_percentage=tunnel2_rekey_fuzz_percentage, + tunnel2_rekey_margin_time_seconds=tunnel2_rekey_margin_time_seconds, + tunnel2_replay_window_size=tunnel2_replay_window_size, + tunnel2_startup_action=tunnel2_startup_action, + tunnel_inside_ip_version=tunnel_inside_ip_version, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_gateway_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + enable_acceleration: Optional[pulumi.Input[bool]] = None, + local_ipv4_network_cidr: Optional[pulumi.Input[str]] = None, + local_ipv6_network_cidr: Optional[pulumi.Input[str]] = None, + outside_ip_address_type: Optional[pulumi.Input[str]] = None, + remote_ipv4_network_cidr: Optional[pulumi.Input[str]] = None, + remote_ipv6_network_cidr: Optional[pulumi.Input[str]] = None, + static_routes_only: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transport_transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + tunnel1_dpd_timeout_action: Optional[pulumi.Input[str]] = None, + tunnel1_dpd_timeout_seconds: Optional[pulumi.Input[int]] = None, + tunnel1_enable_tunnel_lifecycle_control: Optional[pulumi.Input[bool]] = None, + tunnel1_ike_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_inside_cidr: Optional[pulumi.Input[str]] = None, + tunnel1_inside_ipv6_cidr: Optional[pulumi.Input[str]] = None, + tunnel1_log_options: Optional[pulumi.Input['VpnConnectionTunnel1LogOptionsArgs']] = None, + tunnel1_phase1_dh_group_numbers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + tunnel1_phase1_encryption_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_phase1_integrity_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_phase1_lifetime_seconds: Optional[pulumi.Input[int]] = None, + tunnel1_phase2_dh_group_numbers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + tunnel1_phase2_encryption_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_phase2_integrity_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_phase2_lifetime_seconds: Optional[pulumi.Input[int]] = None, + tunnel1_preshared_key: Optional[pulumi.Input[str]] = None, + tunnel1_rekey_fuzz_percentage: Optional[pulumi.Input[int]] = None, + tunnel1_rekey_margin_time_seconds: Optional[pulumi.Input[int]] = None, + tunnel1_replay_window_size: Optional[pulumi.Input[int]] = None, + tunnel1_startup_action: Optional[pulumi.Input[str]] = None, + tunnel2_dpd_timeout_action: Optional[pulumi.Input[str]] = None, + tunnel2_dpd_timeout_seconds: Optional[pulumi.Input[int]] = None, + tunnel2_enable_tunnel_lifecycle_control: Optional[pulumi.Input[bool]] = None, + tunnel2_ike_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_inside_cidr: Optional[pulumi.Input[str]] = None, + tunnel2_inside_ipv6_cidr: Optional[pulumi.Input[str]] = None, + tunnel2_log_options: Optional[pulumi.Input['VpnConnectionTunnel2LogOptionsArgs']] = None, + tunnel2_phase1_dh_group_numbers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + tunnel2_phase1_encryption_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_phase1_integrity_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_phase1_lifetime_seconds: Optional[pulumi.Input[int]] = None, + tunnel2_phase2_dh_group_numbers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + tunnel2_phase2_encryption_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_phase2_integrity_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_phase2_lifetime_seconds: Optional[pulumi.Input[int]] = None, + tunnel2_preshared_key: Optional[pulumi.Input[str]] = None, + tunnel2_rekey_fuzz_percentage: Optional[pulumi.Input[int]] = None, + tunnel2_rekey_margin_time_seconds: Optional[pulumi.Input[int]] = None, + tunnel2_replay_window_size: Optional[pulumi.Input[int]] = None, + tunnel2_startup_action: Optional[pulumi.Input[str]] = None, + tunnel_inside_ip_version: Optional[pulumi.Input[str]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_gateway_id is None and 'customerGatewayId' in kwargs: + customer_gateway_id = kwargs['customerGatewayId'] + if customer_gateway_id is None: + raise TypeError("Missing 'customer_gateway_id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if enable_acceleration is None and 'enableAcceleration' in kwargs: + enable_acceleration = kwargs['enableAcceleration'] + if local_ipv4_network_cidr is None and 'localIpv4NetworkCidr' in kwargs: + local_ipv4_network_cidr = kwargs['localIpv4NetworkCidr'] + if local_ipv6_network_cidr is None and 'localIpv6NetworkCidr' in kwargs: + local_ipv6_network_cidr = kwargs['localIpv6NetworkCidr'] + if outside_ip_address_type is None and 'outsideIpAddressType' in kwargs: + outside_ip_address_type = kwargs['outsideIpAddressType'] + if remote_ipv4_network_cidr is None and 'remoteIpv4NetworkCidr' in kwargs: + remote_ipv4_network_cidr = kwargs['remoteIpv4NetworkCidr'] + if remote_ipv6_network_cidr is None and 'remoteIpv6NetworkCidr' in kwargs: + remote_ipv6_network_cidr = kwargs['remoteIpv6NetworkCidr'] + if static_routes_only is None and 'staticRoutesOnly' in kwargs: + static_routes_only = kwargs['staticRoutesOnly'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transport_transit_gateway_attachment_id is None and 'transportTransitGatewayAttachmentId' in kwargs: + transport_transit_gateway_attachment_id = kwargs['transportTransitGatewayAttachmentId'] + if tunnel1_dpd_timeout_action is None and 'tunnel1DpdTimeoutAction' in kwargs: + tunnel1_dpd_timeout_action = kwargs['tunnel1DpdTimeoutAction'] + if tunnel1_dpd_timeout_seconds is None and 'tunnel1DpdTimeoutSeconds' in kwargs: + tunnel1_dpd_timeout_seconds = kwargs['tunnel1DpdTimeoutSeconds'] + if tunnel1_enable_tunnel_lifecycle_control is None and 'tunnel1EnableTunnelLifecycleControl' in kwargs: + tunnel1_enable_tunnel_lifecycle_control = kwargs['tunnel1EnableTunnelLifecycleControl'] + if tunnel1_ike_versions is None and 'tunnel1IkeVersions' in kwargs: + tunnel1_ike_versions = kwargs['tunnel1IkeVersions'] + if tunnel1_inside_cidr is None and 'tunnel1InsideCidr' in kwargs: + tunnel1_inside_cidr = kwargs['tunnel1InsideCidr'] + if tunnel1_inside_ipv6_cidr is None and 'tunnel1InsideIpv6Cidr' in kwargs: + tunnel1_inside_ipv6_cidr = kwargs['tunnel1InsideIpv6Cidr'] + if tunnel1_log_options is None and 'tunnel1LogOptions' in kwargs: + tunnel1_log_options = kwargs['tunnel1LogOptions'] + if tunnel1_phase1_dh_group_numbers is None and 'tunnel1Phase1DhGroupNumbers' in kwargs: + tunnel1_phase1_dh_group_numbers = kwargs['tunnel1Phase1DhGroupNumbers'] + if tunnel1_phase1_encryption_algorithms is None and 'tunnel1Phase1EncryptionAlgorithms' in kwargs: + tunnel1_phase1_encryption_algorithms = kwargs['tunnel1Phase1EncryptionAlgorithms'] + if tunnel1_phase1_integrity_algorithms is None and 'tunnel1Phase1IntegrityAlgorithms' in kwargs: + tunnel1_phase1_integrity_algorithms = kwargs['tunnel1Phase1IntegrityAlgorithms'] + if tunnel1_phase1_lifetime_seconds is None and 'tunnel1Phase1LifetimeSeconds' in kwargs: + tunnel1_phase1_lifetime_seconds = kwargs['tunnel1Phase1LifetimeSeconds'] + if tunnel1_phase2_dh_group_numbers is None and 'tunnel1Phase2DhGroupNumbers' in kwargs: + tunnel1_phase2_dh_group_numbers = kwargs['tunnel1Phase2DhGroupNumbers'] + if tunnel1_phase2_encryption_algorithms is None and 'tunnel1Phase2EncryptionAlgorithms' in kwargs: + tunnel1_phase2_encryption_algorithms = kwargs['tunnel1Phase2EncryptionAlgorithms'] + if tunnel1_phase2_integrity_algorithms is None and 'tunnel1Phase2IntegrityAlgorithms' in kwargs: + tunnel1_phase2_integrity_algorithms = kwargs['tunnel1Phase2IntegrityAlgorithms'] + if tunnel1_phase2_lifetime_seconds is None and 'tunnel1Phase2LifetimeSeconds' in kwargs: + tunnel1_phase2_lifetime_seconds = kwargs['tunnel1Phase2LifetimeSeconds'] + if tunnel1_preshared_key is None and 'tunnel1PresharedKey' in kwargs: + tunnel1_preshared_key = kwargs['tunnel1PresharedKey'] + if tunnel1_rekey_fuzz_percentage is None and 'tunnel1RekeyFuzzPercentage' in kwargs: + tunnel1_rekey_fuzz_percentage = kwargs['tunnel1RekeyFuzzPercentage'] + if tunnel1_rekey_margin_time_seconds is None and 'tunnel1RekeyMarginTimeSeconds' in kwargs: + tunnel1_rekey_margin_time_seconds = kwargs['tunnel1RekeyMarginTimeSeconds'] + if tunnel1_replay_window_size is None and 'tunnel1ReplayWindowSize' in kwargs: + tunnel1_replay_window_size = kwargs['tunnel1ReplayWindowSize'] + if tunnel1_startup_action is None and 'tunnel1StartupAction' in kwargs: + tunnel1_startup_action = kwargs['tunnel1StartupAction'] + if tunnel2_dpd_timeout_action is None and 'tunnel2DpdTimeoutAction' in kwargs: + tunnel2_dpd_timeout_action = kwargs['tunnel2DpdTimeoutAction'] + if tunnel2_dpd_timeout_seconds is None and 'tunnel2DpdTimeoutSeconds' in kwargs: + tunnel2_dpd_timeout_seconds = kwargs['tunnel2DpdTimeoutSeconds'] + if tunnel2_enable_tunnel_lifecycle_control is None and 'tunnel2EnableTunnelLifecycleControl' in kwargs: + tunnel2_enable_tunnel_lifecycle_control = kwargs['tunnel2EnableTunnelLifecycleControl'] + if tunnel2_ike_versions is None and 'tunnel2IkeVersions' in kwargs: + tunnel2_ike_versions = kwargs['tunnel2IkeVersions'] + if tunnel2_inside_cidr is None and 'tunnel2InsideCidr' in kwargs: + tunnel2_inside_cidr = kwargs['tunnel2InsideCidr'] + if tunnel2_inside_ipv6_cidr is None and 'tunnel2InsideIpv6Cidr' in kwargs: + tunnel2_inside_ipv6_cidr = kwargs['tunnel2InsideIpv6Cidr'] + if tunnel2_log_options is None and 'tunnel2LogOptions' in kwargs: + tunnel2_log_options = kwargs['tunnel2LogOptions'] + if tunnel2_phase1_dh_group_numbers is None and 'tunnel2Phase1DhGroupNumbers' in kwargs: + tunnel2_phase1_dh_group_numbers = kwargs['tunnel2Phase1DhGroupNumbers'] + if tunnel2_phase1_encryption_algorithms is None and 'tunnel2Phase1EncryptionAlgorithms' in kwargs: + tunnel2_phase1_encryption_algorithms = kwargs['tunnel2Phase1EncryptionAlgorithms'] + if tunnel2_phase1_integrity_algorithms is None and 'tunnel2Phase1IntegrityAlgorithms' in kwargs: + tunnel2_phase1_integrity_algorithms = kwargs['tunnel2Phase1IntegrityAlgorithms'] + if tunnel2_phase1_lifetime_seconds is None and 'tunnel2Phase1LifetimeSeconds' in kwargs: + tunnel2_phase1_lifetime_seconds = kwargs['tunnel2Phase1LifetimeSeconds'] + if tunnel2_phase2_dh_group_numbers is None and 'tunnel2Phase2DhGroupNumbers' in kwargs: + tunnel2_phase2_dh_group_numbers = kwargs['tunnel2Phase2DhGroupNumbers'] + if tunnel2_phase2_encryption_algorithms is None and 'tunnel2Phase2EncryptionAlgorithms' in kwargs: + tunnel2_phase2_encryption_algorithms = kwargs['tunnel2Phase2EncryptionAlgorithms'] + if tunnel2_phase2_integrity_algorithms is None and 'tunnel2Phase2IntegrityAlgorithms' in kwargs: + tunnel2_phase2_integrity_algorithms = kwargs['tunnel2Phase2IntegrityAlgorithms'] + if tunnel2_phase2_lifetime_seconds is None and 'tunnel2Phase2LifetimeSeconds' in kwargs: + tunnel2_phase2_lifetime_seconds = kwargs['tunnel2Phase2LifetimeSeconds'] + if tunnel2_preshared_key is None and 'tunnel2PresharedKey' in kwargs: + tunnel2_preshared_key = kwargs['tunnel2PresharedKey'] + if tunnel2_rekey_fuzz_percentage is None and 'tunnel2RekeyFuzzPercentage' in kwargs: + tunnel2_rekey_fuzz_percentage = kwargs['tunnel2RekeyFuzzPercentage'] + if tunnel2_rekey_margin_time_seconds is None and 'tunnel2RekeyMarginTimeSeconds' in kwargs: + tunnel2_rekey_margin_time_seconds = kwargs['tunnel2RekeyMarginTimeSeconds'] + if tunnel2_replay_window_size is None and 'tunnel2ReplayWindowSize' in kwargs: + tunnel2_replay_window_size = kwargs['tunnel2ReplayWindowSize'] + if tunnel2_startup_action is None and 'tunnel2StartupAction' in kwargs: + tunnel2_startup_action = kwargs['tunnel2StartupAction'] + if tunnel_inside_ip_version is None and 'tunnelInsideIpVersion' in kwargs: + tunnel_inside_ip_version = kwargs['tunnelInsideIpVersion'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + + _setter("customer_gateway_id", customer_gateway_id) + _setter("type", type) if enable_acceleration is not None: - pulumi.set(__self__, "enable_acceleration", enable_acceleration) + _setter("enable_acceleration", enable_acceleration) if local_ipv4_network_cidr is not None: - pulumi.set(__self__, "local_ipv4_network_cidr", local_ipv4_network_cidr) + _setter("local_ipv4_network_cidr", local_ipv4_network_cidr) if local_ipv6_network_cidr is not None: - pulumi.set(__self__, "local_ipv6_network_cidr", local_ipv6_network_cidr) + _setter("local_ipv6_network_cidr", local_ipv6_network_cidr) if outside_ip_address_type is not None: - pulumi.set(__self__, "outside_ip_address_type", outside_ip_address_type) + _setter("outside_ip_address_type", outside_ip_address_type) if remote_ipv4_network_cidr is not None: - pulumi.set(__self__, "remote_ipv4_network_cidr", remote_ipv4_network_cidr) + _setter("remote_ipv4_network_cidr", remote_ipv4_network_cidr) if remote_ipv6_network_cidr is not None: - pulumi.set(__self__, "remote_ipv6_network_cidr", remote_ipv6_network_cidr) + _setter("remote_ipv6_network_cidr", remote_ipv6_network_cidr) if static_routes_only is not None: - pulumi.set(__self__, "static_routes_only", static_routes_only) + _setter("static_routes_only", static_routes_only) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if transport_transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transport_transit_gateway_attachment_id", transport_transit_gateway_attachment_id) + _setter("transport_transit_gateway_attachment_id", transport_transit_gateway_attachment_id) if tunnel1_dpd_timeout_action is not None: - pulumi.set(__self__, "tunnel1_dpd_timeout_action", tunnel1_dpd_timeout_action) + _setter("tunnel1_dpd_timeout_action", tunnel1_dpd_timeout_action) if tunnel1_dpd_timeout_seconds is not None: - pulumi.set(__self__, "tunnel1_dpd_timeout_seconds", tunnel1_dpd_timeout_seconds) + _setter("tunnel1_dpd_timeout_seconds", tunnel1_dpd_timeout_seconds) if tunnel1_enable_tunnel_lifecycle_control is not None: - pulumi.set(__self__, "tunnel1_enable_tunnel_lifecycle_control", tunnel1_enable_tunnel_lifecycle_control) + _setter("tunnel1_enable_tunnel_lifecycle_control", tunnel1_enable_tunnel_lifecycle_control) if tunnel1_ike_versions is not None: - pulumi.set(__self__, "tunnel1_ike_versions", tunnel1_ike_versions) + _setter("tunnel1_ike_versions", tunnel1_ike_versions) if tunnel1_inside_cidr is not None: - pulumi.set(__self__, "tunnel1_inside_cidr", tunnel1_inside_cidr) + _setter("tunnel1_inside_cidr", tunnel1_inside_cidr) if tunnel1_inside_ipv6_cidr is not None: - pulumi.set(__self__, "tunnel1_inside_ipv6_cidr", tunnel1_inside_ipv6_cidr) + _setter("tunnel1_inside_ipv6_cidr", tunnel1_inside_ipv6_cidr) if tunnel1_log_options is not None: - pulumi.set(__self__, "tunnel1_log_options", tunnel1_log_options) + _setter("tunnel1_log_options", tunnel1_log_options) if tunnel1_phase1_dh_group_numbers is not None: - pulumi.set(__self__, "tunnel1_phase1_dh_group_numbers", tunnel1_phase1_dh_group_numbers) + _setter("tunnel1_phase1_dh_group_numbers", tunnel1_phase1_dh_group_numbers) if tunnel1_phase1_encryption_algorithms is not None: - pulumi.set(__self__, "tunnel1_phase1_encryption_algorithms", tunnel1_phase1_encryption_algorithms) + _setter("tunnel1_phase1_encryption_algorithms", tunnel1_phase1_encryption_algorithms) if tunnel1_phase1_integrity_algorithms is not None: - pulumi.set(__self__, "tunnel1_phase1_integrity_algorithms", tunnel1_phase1_integrity_algorithms) + _setter("tunnel1_phase1_integrity_algorithms", tunnel1_phase1_integrity_algorithms) if tunnel1_phase1_lifetime_seconds is not None: - pulumi.set(__self__, "tunnel1_phase1_lifetime_seconds", tunnel1_phase1_lifetime_seconds) + _setter("tunnel1_phase1_lifetime_seconds", tunnel1_phase1_lifetime_seconds) if tunnel1_phase2_dh_group_numbers is not None: - pulumi.set(__self__, "tunnel1_phase2_dh_group_numbers", tunnel1_phase2_dh_group_numbers) + _setter("tunnel1_phase2_dh_group_numbers", tunnel1_phase2_dh_group_numbers) if tunnel1_phase2_encryption_algorithms is not None: - pulumi.set(__self__, "tunnel1_phase2_encryption_algorithms", tunnel1_phase2_encryption_algorithms) + _setter("tunnel1_phase2_encryption_algorithms", tunnel1_phase2_encryption_algorithms) if tunnel1_phase2_integrity_algorithms is not None: - pulumi.set(__self__, "tunnel1_phase2_integrity_algorithms", tunnel1_phase2_integrity_algorithms) + _setter("tunnel1_phase2_integrity_algorithms", tunnel1_phase2_integrity_algorithms) if tunnel1_phase2_lifetime_seconds is not None: - pulumi.set(__self__, "tunnel1_phase2_lifetime_seconds", tunnel1_phase2_lifetime_seconds) + _setter("tunnel1_phase2_lifetime_seconds", tunnel1_phase2_lifetime_seconds) if tunnel1_preshared_key is not None: - pulumi.set(__self__, "tunnel1_preshared_key", tunnel1_preshared_key) + _setter("tunnel1_preshared_key", tunnel1_preshared_key) if tunnel1_rekey_fuzz_percentage is not None: - pulumi.set(__self__, "tunnel1_rekey_fuzz_percentage", tunnel1_rekey_fuzz_percentage) + _setter("tunnel1_rekey_fuzz_percentage", tunnel1_rekey_fuzz_percentage) if tunnel1_rekey_margin_time_seconds is not None: - pulumi.set(__self__, "tunnel1_rekey_margin_time_seconds", tunnel1_rekey_margin_time_seconds) + _setter("tunnel1_rekey_margin_time_seconds", tunnel1_rekey_margin_time_seconds) if tunnel1_replay_window_size is not None: - pulumi.set(__self__, "tunnel1_replay_window_size", tunnel1_replay_window_size) + _setter("tunnel1_replay_window_size", tunnel1_replay_window_size) if tunnel1_startup_action is not None: - pulumi.set(__self__, "tunnel1_startup_action", tunnel1_startup_action) + _setter("tunnel1_startup_action", tunnel1_startup_action) if tunnel2_dpd_timeout_action is not None: - pulumi.set(__self__, "tunnel2_dpd_timeout_action", tunnel2_dpd_timeout_action) + _setter("tunnel2_dpd_timeout_action", tunnel2_dpd_timeout_action) if tunnel2_dpd_timeout_seconds is not None: - pulumi.set(__self__, "tunnel2_dpd_timeout_seconds", tunnel2_dpd_timeout_seconds) + _setter("tunnel2_dpd_timeout_seconds", tunnel2_dpd_timeout_seconds) if tunnel2_enable_tunnel_lifecycle_control is not None: - pulumi.set(__self__, "tunnel2_enable_tunnel_lifecycle_control", tunnel2_enable_tunnel_lifecycle_control) + _setter("tunnel2_enable_tunnel_lifecycle_control", tunnel2_enable_tunnel_lifecycle_control) if tunnel2_ike_versions is not None: - pulumi.set(__self__, "tunnel2_ike_versions", tunnel2_ike_versions) + _setter("tunnel2_ike_versions", tunnel2_ike_versions) if tunnel2_inside_cidr is not None: - pulumi.set(__self__, "tunnel2_inside_cidr", tunnel2_inside_cidr) + _setter("tunnel2_inside_cidr", tunnel2_inside_cidr) if tunnel2_inside_ipv6_cidr is not None: - pulumi.set(__self__, "tunnel2_inside_ipv6_cidr", tunnel2_inside_ipv6_cidr) + _setter("tunnel2_inside_ipv6_cidr", tunnel2_inside_ipv6_cidr) if tunnel2_log_options is not None: - pulumi.set(__self__, "tunnel2_log_options", tunnel2_log_options) + _setter("tunnel2_log_options", tunnel2_log_options) if tunnel2_phase1_dh_group_numbers is not None: - pulumi.set(__self__, "tunnel2_phase1_dh_group_numbers", tunnel2_phase1_dh_group_numbers) + _setter("tunnel2_phase1_dh_group_numbers", tunnel2_phase1_dh_group_numbers) if tunnel2_phase1_encryption_algorithms is not None: - pulumi.set(__self__, "tunnel2_phase1_encryption_algorithms", tunnel2_phase1_encryption_algorithms) + _setter("tunnel2_phase1_encryption_algorithms", tunnel2_phase1_encryption_algorithms) if tunnel2_phase1_integrity_algorithms is not None: - pulumi.set(__self__, "tunnel2_phase1_integrity_algorithms", tunnel2_phase1_integrity_algorithms) + _setter("tunnel2_phase1_integrity_algorithms", tunnel2_phase1_integrity_algorithms) if tunnel2_phase1_lifetime_seconds is not None: - pulumi.set(__self__, "tunnel2_phase1_lifetime_seconds", tunnel2_phase1_lifetime_seconds) + _setter("tunnel2_phase1_lifetime_seconds", tunnel2_phase1_lifetime_seconds) if tunnel2_phase2_dh_group_numbers is not None: - pulumi.set(__self__, "tunnel2_phase2_dh_group_numbers", tunnel2_phase2_dh_group_numbers) + _setter("tunnel2_phase2_dh_group_numbers", tunnel2_phase2_dh_group_numbers) if tunnel2_phase2_encryption_algorithms is not None: - pulumi.set(__self__, "tunnel2_phase2_encryption_algorithms", tunnel2_phase2_encryption_algorithms) + _setter("tunnel2_phase2_encryption_algorithms", tunnel2_phase2_encryption_algorithms) if tunnel2_phase2_integrity_algorithms is not None: - pulumi.set(__self__, "tunnel2_phase2_integrity_algorithms", tunnel2_phase2_integrity_algorithms) + _setter("tunnel2_phase2_integrity_algorithms", tunnel2_phase2_integrity_algorithms) if tunnel2_phase2_lifetime_seconds is not None: - pulumi.set(__self__, "tunnel2_phase2_lifetime_seconds", tunnel2_phase2_lifetime_seconds) + _setter("tunnel2_phase2_lifetime_seconds", tunnel2_phase2_lifetime_seconds) if tunnel2_preshared_key is not None: - pulumi.set(__self__, "tunnel2_preshared_key", tunnel2_preshared_key) + _setter("tunnel2_preshared_key", tunnel2_preshared_key) if tunnel2_rekey_fuzz_percentage is not None: - pulumi.set(__self__, "tunnel2_rekey_fuzz_percentage", tunnel2_rekey_fuzz_percentage) + _setter("tunnel2_rekey_fuzz_percentage", tunnel2_rekey_fuzz_percentage) if tunnel2_rekey_margin_time_seconds is not None: - pulumi.set(__self__, "tunnel2_rekey_margin_time_seconds", tunnel2_rekey_margin_time_seconds) + _setter("tunnel2_rekey_margin_time_seconds", tunnel2_rekey_margin_time_seconds) if tunnel2_replay_window_size is not None: - pulumi.set(__self__, "tunnel2_replay_window_size", tunnel2_replay_window_size) + _setter("tunnel2_replay_window_size", tunnel2_replay_window_size) if tunnel2_startup_action is not None: - pulumi.set(__self__, "tunnel2_startup_action", tunnel2_startup_action) + _setter("tunnel2_startup_action", tunnel2_startup_action) if tunnel_inside_ip_version is not None: - pulumi.set(__self__, "tunnel_inside_ip_version", tunnel_inside_ip_version) + _setter("tunnel_inside_ip_version", tunnel_inside_ip_version) if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="customerGatewayId") @@ -1033,153 +1258,442 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['VpnConnectionVgwTelemetryArgs']]] vgw_telemetries: Telemetry for the VPN tunnels. Detailed below. :param pulumi.Input[str] vpn_gateway_id: The ID of the Virtual Private Gateway. """ + _VpnConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + core_network_arn=core_network_arn, + core_network_attachment_arn=core_network_attachment_arn, + customer_gateway_configuration=customer_gateway_configuration, + customer_gateway_id=customer_gateway_id, + enable_acceleration=enable_acceleration, + local_ipv4_network_cidr=local_ipv4_network_cidr, + local_ipv6_network_cidr=local_ipv6_network_cidr, + outside_ip_address_type=outside_ip_address_type, + remote_ipv4_network_cidr=remote_ipv4_network_cidr, + remote_ipv6_network_cidr=remote_ipv6_network_cidr, + routes=routes, + static_routes_only=static_routes_only, + tags=tags, + tags_all=tags_all, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_id=transit_gateway_id, + transport_transit_gateway_attachment_id=transport_transit_gateway_attachment_id, + tunnel1_address=tunnel1_address, + tunnel1_bgp_asn=tunnel1_bgp_asn, + tunnel1_bgp_holdtime=tunnel1_bgp_holdtime, + tunnel1_cgw_inside_address=tunnel1_cgw_inside_address, + tunnel1_dpd_timeout_action=tunnel1_dpd_timeout_action, + tunnel1_dpd_timeout_seconds=tunnel1_dpd_timeout_seconds, + tunnel1_enable_tunnel_lifecycle_control=tunnel1_enable_tunnel_lifecycle_control, + tunnel1_ike_versions=tunnel1_ike_versions, + tunnel1_inside_cidr=tunnel1_inside_cidr, + tunnel1_inside_ipv6_cidr=tunnel1_inside_ipv6_cidr, + tunnel1_log_options=tunnel1_log_options, + tunnel1_phase1_dh_group_numbers=tunnel1_phase1_dh_group_numbers, + tunnel1_phase1_encryption_algorithms=tunnel1_phase1_encryption_algorithms, + tunnel1_phase1_integrity_algorithms=tunnel1_phase1_integrity_algorithms, + tunnel1_phase1_lifetime_seconds=tunnel1_phase1_lifetime_seconds, + tunnel1_phase2_dh_group_numbers=tunnel1_phase2_dh_group_numbers, + tunnel1_phase2_encryption_algorithms=tunnel1_phase2_encryption_algorithms, + tunnel1_phase2_integrity_algorithms=tunnel1_phase2_integrity_algorithms, + tunnel1_phase2_lifetime_seconds=tunnel1_phase2_lifetime_seconds, + tunnel1_preshared_key=tunnel1_preshared_key, + tunnel1_rekey_fuzz_percentage=tunnel1_rekey_fuzz_percentage, + tunnel1_rekey_margin_time_seconds=tunnel1_rekey_margin_time_seconds, + tunnel1_replay_window_size=tunnel1_replay_window_size, + tunnel1_startup_action=tunnel1_startup_action, + tunnel1_vgw_inside_address=tunnel1_vgw_inside_address, + tunnel2_address=tunnel2_address, + tunnel2_bgp_asn=tunnel2_bgp_asn, + tunnel2_bgp_holdtime=tunnel2_bgp_holdtime, + tunnel2_cgw_inside_address=tunnel2_cgw_inside_address, + tunnel2_dpd_timeout_action=tunnel2_dpd_timeout_action, + tunnel2_dpd_timeout_seconds=tunnel2_dpd_timeout_seconds, + tunnel2_enable_tunnel_lifecycle_control=tunnel2_enable_tunnel_lifecycle_control, + tunnel2_ike_versions=tunnel2_ike_versions, + tunnel2_inside_cidr=tunnel2_inside_cidr, + tunnel2_inside_ipv6_cidr=tunnel2_inside_ipv6_cidr, + tunnel2_log_options=tunnel2_log_options, + tunnel2_phase1_dh_group_numbers=tunnel2_phase1_dh_group_numbers, + tunnel2_phase1_encryption_algorithms=tunnel2_phase1_encryption_algorithms, + tunnel2_phase1_integrity_algorithms=tunnel2_phase1_integrity_algorithms, + tunnel2_phase1_lifetime_seconds=tunnel2_phase1_lifetime_seconds, + tunnel2_phase2_dh_group_numbers=tunnel2_phase2_dh_group_numbers, + tunnel2_phase2_encryption_algorithms=tunnel2_phase2_encryption_algorithms, + tunnel2_phase2_integrity_algorithms=tunnel2_phase2_integrity_algorithms, + tunnel2_phase2_lifetime_seconds=tunnel2_phase2_lifetime_seconds, + tunnel2_preshared_key=tunnel2_preshared_key, + tunnel2_rekey_fuzz_percentage=tunnel2_rekey_fuzz_percentage, + tunnel2_rekey_margin_time_seconds=tunnel2_rekey_margin_time_seconds, + tunnel2_replay_window_size=tunnel2_replay_window_size, + tunnel2_startup_action=tunnel2_startup_action, + tunnel2_vgw_inside_address=tunnel2_vgw_inside_address, + tunnel_inside_ip_version=tunnel_inside_ip_version, + type=type, + vgw_telemetries=vgw_telemetries, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + core_network_attachment_arn: Optional[pulumi.Input[str]] = None, + customer_gateway_configuration: Optional[pulumi.Input[str]] = None, + customer_gateway_id: Optional[pulumi.Input[str]] = None, + enable_acceleration: Optional[pulumi.Input[bool]] = None, + local_ipv4_network_cidr: Optional[pulumi.Input[str]] = None, + local_ipv6_network_cidr: Optional[pulumi.Input[str]] = None, + outside_ip_address_type: Optional[pulumi.Input[str]] = None, + remote_ipv4_network_cidr: Optional[pulumi.Input[str]] = None, + remote_ipv6_network_cidr: Optional[pulumi.Input[str]] = None, + routes: Optional[pulumi.Input[Sequence[pulumi.Input['VpnConnectionRouteArgs']]]] = None, + static_routes_only: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transport_transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + tunnel1_address: Optional[pulumi.Input[str]] = None, + tunnel1_bgp_asn: Optional[pulumi.Input[str]] = None, + tunnel1_bgp_holdtime: Optional[pulumi.Input[int]] = None, + tunnel1_cgw_inside_address: Optional[pulumi.Input[str]] = None, + tunnel1_dpd_timeout_action: Optional[pulumi.Input[str]] = None, + tunnel1_dpd_timeout_seconds: Optional[pulumi.Input[int]] = None, + tunnel1_enable_tunnel_lifecycle_control: Optional[pulumi.Input[bool]] = None, + tunnel1_ike_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_inside_cidr: Optional[pulumi.Input[str]] = None, + tunnel1_inside_ipv6_cidr: Optional[pulumi.Input[str]] = None, + tunnel1_log_options: Optional[pulumi.Input['VpnConnectionTunnel1LogOptionsArgs']] = None, + tunnel1_phase1_dh_group_numbers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + tunnel1_phase1_encryption_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_phase1_integrity_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_phase1_lifetime_seconds: Optional[pulumi.Input[int]] = None, + tunnel1_phase2_dh_group_numbers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + tunnel1_phase2_encryption_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_phase2_integrity_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel1_phase2_lifetime_seconds: Optional[pulumi.Input[int]] = None, + tunnel1_preshared_key: Optional[pulumi.Input[str]] = None, + tunnel1_rekey_fuzz_percentage: Optional[pulumi.Input[int]] = None, + tunnel1_rekey_margin_time_seconds: Optional[pulumi.Input[int]] = None, + tunnel1_replay_window_size: Optional[pulumi.Input[int]] = None, + tunnel1_startup_action: Optional[pulumi.Input[str]] = None, + tunnel1_vgw_inside_address: Optional[pulumi.Input[str]] = None, + tunnel2_address: Optional[pulumi.Input[str]] = None, + tunnel2_bgp_asn: Optional[pulumi.Input[str]] = None, + tunnel2_bgp_holdtime: Optional[pulumi.Input[int]] = None, + tunnel2_cgw_inside_address: Optional[pulumi.Input[str]] = None, + tunnel2_dpd_timeout_action: Optional[pulumi.Input[str]] = None, + tunnel2_dpd_timeout_seconds: Optional[pulumi.Input[int]] = None, + tunnel2_enable_tunnel_lifecycle_control: Optional[pulumi.Input[bool]] = None, + tunnel2_ike_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_inside_cidr: Optional[pulumi.Input[str]] = None, + tunnel2_inside_ipv6_cidr: Optional[pulumi.Input[str]] = None, + tunnel2_log_options: Optional[pulumi.Input['VpnConnectionTunnel2LogOptionsArgs']] = None, + tunnel2_phase1_dh_group_numbers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + tunnel2_phase1_encryption_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_phase1_integrity_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_phase1_lifetime_seconds: Optional[pulumi.Input[int]] = None, + tunnel2_phase2_dh_group_numbers: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + tunnel2_phase2_encryption_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_phase2_integrity_algorithms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tunnel2_phase2_lifetime_seconds: Optional[pulumi.Input[int]] = None, + tunnel2_preshared_key: Optional[pulumi.Input[str]] = None, + tunnel2_rekey_fuzz_percentage: Optional[pulumi.Input[int]] = None, + tunnel2_rekey_margin_time_seconds: Optional[pulumi.Input[int]] = None, + tunnel2_replay_window_size: Optional[pulumi.Input[int]] = None, + tunnel2_startup_action: Optional[pulumi.Input[str]] = None, + tunnel2_vgw_inside_address: Optional[pulumi.Input[str]] = None, + tunnel_inside_ip_version: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + vgw_telemetries: Optional[pulumi.Input[Sequence[pulumi.Input['VpnConnectionVgwTelemetryArgs']]]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if core_network_attachment_arn is None and 'coreNetworkAttachmentArn' in kwargs: + core_network_attachment_arn = kwargs['coreNetworkAttachmentArn'] + if customer_gateway_configuration is None and 'customerGatewayConfiguration' in kwargs: + customer_gateway_configuration = kwargs['customerGatewayConfiguration'] + if customer_gateway_id is None and 'customerGatewayId' in kwargs: + customer_gateway_id = kwargs['customerGatewayId'] + if enable_acceleration is None and 'enableAcceleration' in kwargs: + enable_acceleration = kwargs['enableAcceleration'] + if local_ipv4_network_cidr is None and 'localIpv4NetworkCidr' in kwargs: + local_ipv4_network_cidr = kwargs['localIpv4NetworkCidr'] + if local_ipv6_network_cidr is None and 'localIpv6NetworkCidr' in kwargs: + local_ipv6_network_cidr = kwargs['localIpv6NetworkCidr'] + if outside_ip_address_type is None and 'outsideIpAddressType' in kwargs: + outside_ip_address_type = kwargs['outsideIpAddressType'] + if remote_ipv4_network_cidr is None and 'remoteIpv4NetworkCidr' in kwargs: + remote_ipv4_network_cidr = kwargs['remoteIpv4NetworkCidr'] + if remote_ipv6_network_cidr is None and 'remoteIpv6NetworkCidr' in kwargs: + remote_ipv6_network_cidr = kwargs['remoteIpv6NetworkCidr'] + if static_routes_only is None and 'staticRoutesOnly' in kwargs: + static_routes_only = kwargs['staticRoutesOnly'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transport_transit_gateway_attachment_id is None and 'transportTransitGatewayAttachmentId' in kwargs: + transport_transit_gateway_attachment_id = kwargs['transportTransitGatewayAttachmentId'] + if tunnel1_address is None and 'tunnel1Address' in kwargs: + tunnel1_address = kwargs['tunnel1Address'] + if tunnel1_bgp_asn is None and 'tunnel1BgpAsn' in kwargs: + tunnel1_bgp_asn = kwargs['tunnel1BgpAsn'] + if tunnel1_bgp_holdtime is None and 'tunnel1BgpHoldtime' in kwargs: + tunnel1_bgp_holdtime = kwargs['tunnel1BgpHoldtime'] + if tunnel1_cgw_inside_address is None and 'tunnel1CgwInsideAddress' in kwargs: + tunnel1_cgw_inside_address = kwargs['tunnel1CgwInsideAddress'] + if tunnel1_dpd_timeout_action is None and 'tunnel1DpdTimeoutAction' in kwargs: + tunnel1_dpd_timeout_action = kwargs['tunnel1DpdTimeoutAction'] + if tunnel1_dpd_timeout_seconds is None and 'tunnel1DpdTimeoutSeconds' in kwargs: + tunnel1_dpd_timeout_seconds = kwargs['tunnel1DpdTimeoutSeconds'] + if tunnel1_enable_tunnel_lifecycle_control is None and 'tunnel1EnableTunnelLifecycleControl' in kwargs: + tunnel1_enable_tunnel_lifecycle_control = kwargs['tunnel1EnableTunnelLifecycleControl'] + if tunnel1_ike_versions is None and 'tunnel1IkeVersions' in kwargs: + tunnel1_ike_versions = kwargs['tunnel1IkeVersions'] + if tunnel1_inside_cidr is None and 'tunnel1InsideCidr' in kwargs: + tunnel1_inside_cidr = kwargs['tunnel1InsideCidr'] + if tunnel1_inside_ipv6_cidr is None and 'tunnel1InsideIpv6Cidr' in kwargs: + tunnel1_inside_ipv6_cidr = kwargs['tunnel1InsideIpv6Cidr'] + if tunnel1_log_options is None and 'tunnel1LogOptions' in kwargs: + tunnel1_log_options = kwargs['tunnel1LogOptions'] + if tunnel1_phase1_dh_group_numbers is None and 'tunnel1Phase1DhGroupNumbers' in kwargs: + tunnel1_phase1_dh_group_numbers = kwargs['tunnel1Phase1DhGroupNumbers'] + if tunnel1_phase1_encryption_algorithms is None and 'tunnel1Phase1EncryptionAlgorithms' in kwargs: + tunnel1_phase1_encryption_algorithms = kwargs['tunnel1Phase1EncryptionAlgorithms'] + if tunnel1_phase1_integrity_algorithms is None and 'tunnel1Phase1IntegrityAlgorithms' in kwargs: + tunnel1_phase1_integrity_algorithms = kwargs['tunnel1Phase1IntegrityAlgorithms'] + if tunnel1_phase1_lifetime_seconds is None and 'tunnel1Phase1LifetimeSeconds' in kwargs: + tunnel1_phase1_lifetime_seconds = kwargs['tunnel1Phase1LifetimeSeconds'] + if tunnel1_phase2_dh_group_numbers is None and 'tunnel1Phase2DhGroupNumbers' in kwargs: + tunnel1_phase2_dh_group_numbers = kwargs['tunnel1Phase2DhGroupNumbers'] + if tunnel1_phase2_encryption_algorithms is None and 'tunnel1Phase2EncryptionAlgorithms' in kwargs: + tunnel1_phase2_encryption_algorithms = kwargs['tunnel1Phase2EncryptionAlgorithms'] + if tunnel1_phase2_integrity_algorithms is None and 'tunnel1Phase2IntegrityAlgorithms' in kwargs: + tunnel1_phase2_integrity_algorithms = kwargs['tunnel1Phase2IntegrityAlgorithms'] + if tunnel1_phase2_lifetime_seconds is None and 'tunnel1Phase2LifetimeSeconds' in kwargs: + tunnel1_phase2_lifetime_seconds = kwargs['tunnel1Phase2LifetimeSeconds'] + if tunnel1_preshared_key is None and 'tunnel1PresharedKey' in kwargs: + tunnel1_preshared_key = kwargs['tunnel1PresharedKey'] + if tunnel1_rekey_fuzz_percentage is None and 'tunnel1RekeyFuzzPercentage' in kwargs: + tunnel1_rekey_fuzz_percentage = kwargs['tunnel1RekeyFuzzPercentage'] + if tunnel1_rekey_margin_time_seconds is None and 'tunnel1RekeyMarginTimeSeconds' in kwargs: + tunnel1_rekey_margin_time_seconds = kwargs['tunnel1RekeyMarginTimeSeconds'] + if tunnel1_replay_window_size is None and 'tunnel1ReplayWindowSize' in kwargs: + tunnel1_replay_window_size = kwargs['tunnel1ReplayWindowSize'] + if tunnel1_startup_action is None and 'tunnel1StartupAction' in kwargs: + tunnel1_startup_action = kwargs['tunnel1StartupAction'] + if tunnel1_vgw_inside_address is None and 'tunnel1VgwInsideAddress' in kwargs: + tunnel1_vgw_inside_address = kwargs['tunnel1VgwInsideAddress'] + if tunnel2_address is None and 'tunnel2Address' in kwargs: + tunnel2_address = kwargs['tunnel2Address'] + if tunnel2_bgp_asn is None and 'tunnel2BgpAsn' in kwargs: + tunnel2_bgp_asn = kwargs['tunnel2BgpAsn'] + if tunnel2_bgp_holdtime is None and 'tunnel2BgpHoldtime' in kwargs: + tunnel2_bgp_holdtime = kwargs['tunnel2BgpHoldtime'] + if tunnel2_cgw_inside_address is None and 'tunnel2CgwInsideAddress' in kwargs: + tunnel2_cgw_inside_address = kwargs['tunnel2CgwInsideAddress'] + if tunnel2_dpd_timeout_action is None and 'tunnel2DpdTimeoutAction' in kwargs: + tunnel2_dpd_timeout_action = kwargs['tunnel2DpdTimeoutAction'] + if tunnel2_dpd_timeout_seconds is None and 'tunnel2DpdTimeoutSeconds' in kwargs: + tunnel2_dpd_timeout_seconds = kwargs['tunnel2DpdTimeoutSeconds'] + if tunnel2_enable_tunnel_lifecycle_control is None and 'tunnel2EnableTunnelLifecycleControl' in kwargs: + tunnel2_enable_tunnel_lifecycle_control = kwargs['tunnel2EnableTunnelLifecycleControl'] + if tunnel2_ike_versions is None and 'tunnel2IkeVersions' in kwargs: + tunnel2_ike_versions = kwargs['tunnel2IkeVersions'] + if tunnel2_inside_cidr is None and 'tunnel2InsideCidr' in kwargs: + tunnel2_inside_cidr = kwargs['tunnel2InsideCidr'] + if tunnel2_inside_ipv6_cidr is None and 'tunnel2InsideIpv6Cidr' in kwargs: + tunnel2_inside_ipv6_cidr = kwargs['tunnel2InsideIpv6Cidr'] + if tunnel2_log_options is None and 'tunnel2LogOptions' in kwargs: + tunnel2_log_options = kwargs['tunnel2LogOptions'] + if tunnel2_phase1_dh_group_numbers is None and 'tunnel2Phase1DhGroupNumbers' in kwargs: + tunnel2_phase1_dh_group_numbers = kwargs['tunnel2Phase1DhGroupNumbers'] + if tunnel2_phase1_encryption_algorithms is None and 'tunnel2Phase1EncryptionAlgorithms' in kwargs: + tunnel2_phase1_encryption_algorithms = kwargs['tunnel2Phase1EncryptionAlgorithms'] + if tunnel2_phase1_integrity_algorithms is None and 'tunnel2Phase1IntegrityAlgorithms' in kwargs: + tunnel2_phase1_integrity_algorithms = kwargs['tunnel2Phase1IntegrityAlgorithms'] + if tunnel2_phase1_lifetime_seconds is None and 'tunnel2Phase1LifetimeSeconds' in kwargs: + tunnel2_phase1_lifetime_seconds = kwargs['tunnel2Phase1LifetimeSeconds'] + if tunnel2_phase2_dh_group_numbers is None and 'tunnel2Phase2DhGroupNumbers' in kwargs: + tunnel2_phase2_dh_group_numbers = kwargs['tunnel2Phase2DhGroupNumbers'] + if tunnel2_phase2_encryption_algorithms is None and 'tunnel2Phase2EncryptionAlgorithms' in kwargs: + tunnel2_phase2_encryption_algorithms = kwargs['tunnel2Phase2EncryptionAlgorithms'] + if tunnel2_phase2_integrity_algorithms is None and 'tunnel2Phase2IntegrityAlgorithms' in kwargs: + tunnel2_phase2_integrity_algorithms = kwargs['tunnel2Phase2IntegrityAlgorithms'] + if tunnel2_phase2_lifetime_seconds is None and 'tunnel2Phase2LifetimeSeconds' in kwargs: + tunnel2_phase2_lifetime_seconds = kwargs['tunnel2Phase2LifetimeSeconds'] + if tunnel2_preshared_key is None and 'tunnel2PresharedKey' in kwargs: + tunnel2_preshared_key = kwargs['tunnel2PresharedKey'] + if tunnel2_rekey_fuzz_percentage is None and 'tunnel2RekeyFuzzPercentage' in kwargs: + tunnel2_rekey_fuzz_percentage = kwargs['tunnel2RekeyFuzzPercentage'] + if tunnel2_rekey_margin_time_seconds is None and 'tunnel2RekeyMarginTimeSeconds' in kwargs: + tunnel2_rekey_margin_time_seconds = kwargs['tunnel2RekeyMarginTimeSeconds'] + if tunnel2_replay_window_size is None and 'tunnel2ReplayWindowSize' in kwargs: + tunnel2_replay_window_size = kwargs['tunnel2ReplayWindowSize'] + if tunnel2_startup_action is None and 'tunnel2StartupAction' in kwargs: + tunnel2_startup_action = kwargs['tunnel2StartupAction'] + if tunnel2_vgw_inside_address is None and 'tunnel2VgwInsideAddress' in kwargs: + tunnel2_vgw_inside_address = kwargs['tunnel2VgwInsideAddress'] + if tunnel_inside_ip_version is None and 'tunnelInsideIpVersion' in kwargs: + tunnel_inside_ip_version = kwargs['tunnelInsideIpVersion'] + if vgw_telemetries is None and 'vgwTelemetries' in kwargs: + vgw_telemetries = kwargs['vgwTelemetries'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if core_network_attachment_arn is not None: - pulumi.set(__self__, "core_network_attachment_arn", core_network_attachment_arn) + _setter("core_network_attachment_arn", core_network_attachment_arn) if customer_gateway_configuration is not None: - pulumi.set(__self__, "customer_gateway_configuration", customer_gateway_configuration) + _setter("customer_gateway_configuration", customer_gateway_configuration) if customer_gateway_id is not None: - pulumi.set(__self__, "customer_gateway_id", customer_gateway_id) + _setter("customer_gateway_id", customer_gateway_id) if enable_acceleration is not None: - pulumi.set(__self__, "enable_acceleration", enable_acceleration) + _setter("enable_acceleration", enable_acceleration) if local_ipv4_network_cidr is not None: - pulumi.set(__self__, "local_ipv4_network_cidr", local_ipv4_network_cidr) + _setter("local_ipv4_network_cidr", local_ipv4_network_cidr) if local_ipv6_network_cidr is not None: - pulumi.set(__self__, "local_ipv6_network_cidr", local_ipv6_network_cidr) + _setter("local_ipv6_network_cidr", local_ipv6_network_cidr) if outside_ip_address_type is not None: - pulumi.set(__self__, "outside_ip_address_type", outside_ip_address_type) + _setter("outside_ip_address_type", outside_ip_address_type) if remote_ipv4_network_cidr is not None: - pulumi.set(__self__, "remote_ipv4_network_cidr", remote_ipv4_network_cidr) + _setter("remote_ipv4_network_cidr", remote_ipv4_network_cidr) if remote_ipv6_network_cidr is not None: - pulumi.set(__self__, "remote_ipv6_network_cidr", remote_ipv6_network_cidr) + _setter("remote_ipv6_network_cidr", remote_ipv6_network_cidr) if routes is not None: - pulumi.set(__self__, "routes", routes) + _setter("routes", routes) if static_routes_only is not None: - pulumi.set(__self__, "static_routes_only", static_routes_only) + _setter("static_routes_only", static_routes_only) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if transport_transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transport_transit_gateway_attachment_id", transport_transit_gateway_attachment_id) + _setter("transport_transit_gateway_attachment_id", transport_transit_gateway_attachment_id) if tunnel1_address is not None: - pulumi.set(__self__, "tunnel1_address", tunnel1_address) + _setter("tunnel1_address", tunnel1_address) if tunnel1_bgp_asn is not None: - pulumi.set(__self__, "tunnel1_bgp_asn", tunnel1_bgp_asn) + _setter("tunnel1_bgp_asn", tunnel1_bgp_asn) if tunnel1_bgp_holdtime is not None: - pulumi.set(__self__, "tunnel1_bgp_holdtime", tunnel1_bgp_holdtime) + _setter("tunnel1_bgp_holdtime", tunnel1_bgp_holdtime) if tunnel1_cgw_inside_address is not None: - pulumi.set(__self__, "tunnel1_cgw_inside_address", tunnel1_cgw_inside_address) + _setter("tunnel1_cgw_inside_address", tunnel1_cgw_inside_address) if tunnel1_dpd_timeout_action is not None: - pulumi.set(__self__, "tunnel1_dpd_timeout_action", tunnel1_dpd_timeout_action) + _setter("tunnel1_dpd_timeout_action", tunnel1_dpd_timeout_action) if tunnel1_dpd_timeout_seconds is not None: - pulumi.set(__self__, "tunnel1_dpd_timeout_seconds", tunnel1_dpd_timeout_seconds) + _setter("tunnel1_dpd_timeout_seconds", tunnel1_dpd_timeout_seconds) if tunnel1_enable_tunnel_lifecycle_control is not None: - pulumi.set(__self__, "tunnel1_enable_tunnel_lifecycle_control", tunnel1_enable_tunnel_lifecycle_control) + _setter("tunnel1_enable_tunnel_lifecycle_control", tunnel1_enable_tunnel_lifecycle_control) if tunnel1_ike_versions is not None: - pulumi.set(__self__, "tunnel1_ike_versions", tunnel1_ike_versions) + _setter("tunnel1_ike_versions", tunnel1_ike_versions) if tunnel1_inside_cidr is not None: - pulumi.set(__self__, "tunnel1_inside_cidr", tunnel1_inside_cidr) + _setter("tunnel1_inside_cidr", tunnel1_inside_cidr) if tunnel1_inside_ipv6_cidr is not None: - pulumi.set(__self__, "tunnel1_inside_ipv6_cidr", tunnel1_inside_ipv6_cidr) + _setter("tunnel1_inside_ipv6_cidr", tunnel1_inside_ipv6_cidr) if tunnel1_log_options is not None: - pulumi.set(__self__, "tunnel1_log_options", tunnel1_log_options) + _setter("tunnel1_log_options", tunnel1_log_options) if tunnel1_phase1_dh_group_numbers is not None: - pulumi.set(__self__, "tunnel1_phase1_dh_group_numbers", tunnel1_phase1_dh_group_numbers) + _setter("tunnel1_phase1_dh_group_numbers", tunnel1_phase1_dh_group_numbers) if tunnel1_phase1_encryption_algorithms is not None: - pulumi.set(__self__, "tunnel1_phase1_encryption_algorithms", tunnel1_phase1_encryption_algorithms) + _setter("tunnel1_phase1_encryption_algorithms", tunnel1_phase1_encryption_algorithms) if tunnel1_phase1_integrity_algorithms is not None: - pulumi.set(__self__, "tunnel1_phase1_integrity_algorithms", tunnel1_phase1_integrity_algorithms) + _setter("tunnel1_phase1_integrity_algorithms", tunnel1_phase1_integrity_algorithms) if tunnel1_phase1_lifetime_seconds is not None: - pulumi.set(__self__, "tunnel1_phase1_lifetime_seconds", tunnel1_phase1_lifetime_seconds) + _setter("tunnel1_phase1_lifetime_seconds", tunnel1_phase1_lifetime_seconds) if tunnel1_phase2_dh_group_numbers is not None: - pulumi.set(__self__, "tunnel1_phase2_dh_group_numbers", tunnel1_phase2_dh_group_numbers) + _setter("tunnel1_phase2_dh_group_numbers", tunnel1_phase2_dh_group_numbers) if tunnel1_phase2_encryption_algorithms is not None: - pulumi.set(__self__, "tunnel1_phase2_encryption_algorithms", tunnel1_phase2_encryption_algorithms) + _setter("tunnel1_phase2_encryption_algorithms", tunnel1_phase2_encryption_algorithms) if tunnel1_phase2_integrity_algorithms is not None: - pulumi.set(__self__, "tunnel1_phase2_integrity_algorithms", tunnel1_phase2_integrity_algorithms) + _setter("tunnel1_phase2_integrity_algorithms", tunnel1_phase2_integrity_algorithms) if tunnel1_phase2_lifetime_seconds is not None: - pulumi.set(__self__, "tunnel1_phase2_lifetime_seconds", tunnel1_phase2_lifetime_seconds) + _setter("tunnel1_phase2_lifetime_seconds", tunnel1_phase2_lifetime_seconds) if tunnel1_preshared_key is not None: - pulumi.set(__self__, "tunnel1_preshared_key", tunnel1_preshared_key) + _setter("tunnel1_preshared_key", tunnel1_preshared_key) if tunnel1_rekey_fuzz_percentage is not None: - pulumi.set(__self__, "tunnel1_rekey_fuzz_percentage", tunnel1_rekey_fuzz_percentage) + _setter("tunnel1_rekey_fuzz_percentage", tunnel1_rekey_fuzz_percentage) if tunnel1_rekey_margin_time_seconds is not None: - pulumi.set(__self__, "tunnel1_rekey_margin_time_seconds", tunnel1_rekey_margin_time_seconds) + _setter("tunnel1_rekey_margin_time_seconds", tunnel1_rekey_margin_time_seconds) if tunnel1_replay_window_size is not None: - pulumi.set(__self__, "tunnel1_replay_window_size", tunnel1_replay_window_size) + _setter("tunnel1_replay_window_size", tunnel1_replay_window_size) if tunnel1_startup_action is not None: - pulumi.set(__self__, "tunnel1_startup_action", tunnel1_startup_action) + _setter("tunnel1_startup_action", tunnel1_startup_action) if tunnel1_vgw_inside_address is not None: - pulumi.set(__self__, "tunnel1_vgw_inside_address", tunnel1_vgw_inside_address) + _setter("tunnel1_vgw_inside_address", tunnel1_vgw_inside_address) if tunnel2_address is not None: - pulumi.set(__self__, "tunnel2_address", tunnel2_address) + _setter("tunnel2_address", tunnel2_address) if tunnel2_bgp_asn is not None: - pulumi.set(__self__, "tunnel2_bgp_asn", tunnel2_bgp_asn) + _setter("tunnel2_bgp_asn", tunnel2_bgp_asn) if tunnel2_bgp_holdtime is not None: - pulumi.set(__self__, "tunnel2_bgp_holdtime", tunnel2_bgp_holdtime) + _setter("tunnel2_bgp_holdtime", tunnel2_bgp_holdtime) if tunnel2_cgw_inside_address is not None: - pulumi.set(__self__, "tunnel2_cgw_inside_address", tunnel2_cgw_inside_address) + _setter("tunnel2_cgw_inside_address", tunnel2_cgw_inside_address) if tunnel2_dpd_timeout_action is not None: - pulumi.set(__self__, "tunnel2_dpd_timeout_action", tunnel2_dpd_timeout_action) + _setter("tunnel2_dpd_timeout_action", tunnel2_dpd_timeout_action) if tunnel2_dpd_timeout_seconds is not None: - pulumi.set(__self__, "tunnel2_dpd_timeout_seconds", tunnel2_dpd_timeout_seconds) + _setter("tunnel2_dpd_timeout_seconds", tunnel2_dpd_timeout_seconds) if tunnel2_enable_tunnel_lifecycle_control is not None: - pulumi.set(__self__, "tunnel2_enable_tunnel_lifecycle_control", tunnel2_enable_tunnel_lifecycle_control) + _setter("tunnel2_enable_tunnel_lifecycle_control", tunnel2_enable_tunnel_lifecycle_control) if tunnel2_ike_versions is not None: - pulumi.set(__self__, "tunnel2_ike_versions", tunnel2_ike_versions) + _setter("tunnel2_ike_versions", tunnel2_ike_versions) if tunnel2_inside_cidr is not None: - pulumi.set(__self__, "tunnel2_inside_cidr", tunnel2_inside_cidr) + _setter("tunnel2_inside_cidr", tunnel2_inside_cidr) if tunnel2_inside_ipv6_cidr is not None: - pulumi.set(__self__, "tunnel2_inside_ipv6_cidr", tunnel2_inside_ipv6_cidr) + _setter("tunnel2_inside_ipv6_cidr", tunnel2_inside_ipv6_cidr) if tunnel2_log_options is not None: - pulumi.set(__self__, "tunnel2_log_options", tunnel2_log_options) + _setter("tunnel2_log_options", tunnel2_log_options) if tunnel2_phase1_dh_group_numbers is not None: - pulumi.set(__self__, "tunnel2_phase1_dh_group_numbers", tunnel2_phase1_dh_group_numbers) + _setter("tunnel2_phase1_dh_group_numbers", tunnel2_phase1_dh_group_numbers) if tunnel2_phase1_encryption_algorithms is not None: - pulumi.set(__self__, "tunnel2_phase1_encryption_algorithms", tunnel2_phase1_encryption_algorithms) + _setter("tunnel2_phase1_encryption_algorithms", tunnel2_phase1_encryption_algorithms) if tunnel2_phase1_integrity_algorithms is not None: - pulumi.set(__self__, "tunnel2_phase1_integrity_algorithms", tunnel2_phase1_integrity_algorithms) + _setter("tunnel2_phase1_integrity_algorithms", tunnel2_phase1_integrity_algorithms) if tunnel2_phase1_lifetime_seconds is not None: - pulumi.set(__self__, "tunnel2_phase1_lifetime_seconds", tunnel2_phase1_lifetime_seconds) + _setter("tunnel2_phase1_lifetime_seconds", tunnel2_phase1_lifetime_seconds) if tunnel2_phase2_dh_group_numbers is not None: - pulumi.set(__self__, "tunnel2_phase2_dh_group_numbers", tunnel2_phase2_dh_group_numbers) + _setter("tunnel2_phase2_dh_group_numbers", tunnel2_phase2_dh_group_numbers) if tunnel2_phase2_encryption_algorithms is not None: - pulumi.set(__self__, "tunnel2_phase2_encryption_algorithms", tunnel2_phase2_encryption_algorithms) + _setter("tunnel2_phase2_encryption_algorithms", tunnel2_phase2_encryption_algorithms) if tunnel2_phase2_integrity_algorithms is not None: - pulumi.set(__self__, "tunnel2_phase2_integrity_algorithms", tunnel2_phase2_integrity_algorithms) + _setter("tunnel2_phase2_integrity_algorithms", tunnel2_phase2_integrity_algorithms) if tunnel2_phase2_lifetime_seconds is not None: - pulumi.set(__self__, "tunnel2_phase2_lifetime_seconds", tunnel2_phase2_lifetime_seconds) + _setter("tunnel2_phase2_lifetime_seconds", tunnel2_phase2_lifetime_seconds) if tunnel2_preshared_key is not None: - pulumi.set(__self__, "tunnel2_preshared_key", tunnel2_preshared_key) + _setter("tunnel2_preshared_key", tunnel2_preshared_key) if tunnel2_rekey_fuzz_percentage is not None: - pulumi.set(__self__, "tunnel2_rekey_fuzz_percentage", tunnel2_rekey_fuzz_percentage) + _setter("tunnel2_rekey_fuzz_percentage", tunnel2_rekey_fuzz_percentage) if tunnel2_rekey_margin_time_seconds is not None: - pulumi.set(__self__, "tunnel2_rekey_margin_time_seconds", tunnel2_rekey_margin_time_seconds) + _setter("tunnel2_rekey_margin_time_seconds", tunnel2_rekey_margin_time_seconds) if tunnel2_replay_window_size is not None: - pulumi.set(__self__, "tunnel2_replay_window_size", tunnel2_replay_window_size) + _setter("tunnel2_replay_window_size", tunnel2_replay_window_size) if tunnel2_startup_action is not None: - pulumi.set(__self__, "tunnel2_startup_action", tunnel2_startup_action) + _setter("tunnel2_startup_action", tunnel2_startup_action) if tunnel2_vgw_inside_address is not None: - pulumi.set(__self__, "tunnel2_vgw_inside_address", tunnel2_vgw_inside_address) + _setter("tunnel2_vgw_inside_address", tunnel2_vgw_inside_address) if tunnel_inside_ip_version is not None: - pulumi.set(__self__, "tunnel_inside_ip_version", tunnel_inside_ip_version) + _setter("tunnel_inside_ip_version", tunnel_inside_ip_version) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if vgw_telemetries is not None: - pulumi.set(__self__, "vgw_telemetries", vgw_telemetries) + _setter("vgw_telemetries", vgw_telemetries) if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter @@ -2352,6 +2866,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpnConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -2439,6 +2957,7 @@ def _internal_init(__self__, __props__.__dict__["tunnel1_ike_versions"] = tunnel1_ike_versions __props__.__dict__["tunnel1_inside_cidr"] = tunnel1_inside_cidr __props__.__dict__["tunnel1_inside_ipv6_cidr"] = tunnel1_inside_ipv6_cidr + tunnel1_log_options = _utilities.configure(tunnel1_log_options, VpnConnectionTunnel1LogOptionsArgs, True) __props__.__dict__["tunnel1_log_options"] = tunnel1_log_options __props__.__dict__["tunnel1_phase1_dh_group_numbers"] = tunnel1_phase1_dh_group_numbers __props__.__dict__["tunnel1_phase1_encryption_algorithms"] = tunnel1_phase1_encryption_algorithms @@ -2459,6 +2978,7 @@ def _internal_init(__self__, __props__.__dict__["tunnel2_ike_versions"] = tunnel2_ike_versions __props__.__dict__["tunnel2_inside_cidr"] = tunnel2_inside_cidr __props__.__dict__["tunnel2_inside_ipv6_cidr"] = tunnel2_inside_ipv6_cidr + tunnel2_log_options = _utilities.configure(tunnel2_log_options, VpnConnectionTunnel2LogOptionsArgs, True) __props__.__dict__["tunnel2_log_options"] = tunnel2_log_options __props__.__dict__["tunnel2_phase1_dh_group_numbers"] = tunnel2_phase1_dh_group_numbers __props__.__dict__["tunnel2_phase1_encryption_algorithms"] = tunnel2_phase1_encryption_algorithms diff --git a/sdk/python/pulumi_aws/ec2/vpn_connection_route.py b/sdk/python/pulumi_aws/ec2/vpn_connection_route.py index beaac81fa2a..faac12f971b 100644 --- a/sdk/python/pulumi_aws/ec2/vpn_connection_route.py +++ b/sdk/python/pulumi_aws/ec2/vpn_connection_route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpnConnectionRouteInitArgs', 'VpnConnectionRoute'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_cidr_block: The CIDR block associated with the local subnet of the customer network. :param pulumi.Input[str] vpn_connection_id: The ID of the VPN connection. """ - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) - pulumi.set(__self__, "vpn_connection_id", vpn_connection_id) + VpnConnectionRouteInitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr_block=destination_cidr_block, + vpn_connection_id=vpn_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr_block: Optional[pulumi.Input[str]] = None, + vpn_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_cidr_block is None: + raise TypeError("Missing 'destination_cidr_block' argument") + if vpn_connection_id is None and 'vpnConnectionId' in kwargs: + vpn_connection_id = kwargs['vpnConnectionId'] + if vpn_connection_id is None: + raise TypeError("Missing 'vpn_connection_id' argument") + + _setter("destination_cidr_block", destination_cidr_block) + _setter("vpn_connection_id", vpn_connection_id) @property @pulumi.getter(name="destinationCidrBlock") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_cidr_block: The CIDR block associated with the local subnet of the customer network. :param pulumi.Input[str] vpn_connection_id: The ID of the VPN connection. """ + _VpnConnectionRouteState._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr_block=destination_cidr_block, + vpn_connection_id=vpn_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr_block: Optional[pulumi.Input[str]] = None, + vpn_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if vpn_connection_id is None and 'vpnConnectionId' in kwargs: + vpn_connection_id = kwargs['vpnConnectionId'] + if destination_cidr_block is not None: - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) + _setter("destination_cidr_block", destination_cidr_block) if vpn_connection_id is not None: - pulumi.set(__self__, "vpn_connection_id", vpn_connection_id) + _setter("vpn_connection_id", vpn_connection_id) @property @pulumi.getter(name="destinationCidrBlock") @@ -168,6 +206,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpnConnectionRouteInitArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpn_gateway.py b/sdk/python/pulumi_aws/ec2/vpn_gateway.py index af6172b7c0f..56ce8b0b51e 100644 --- a/sdk/python/pulumi_aws/ec2/vpn_gateway.py +++ b/sdk/python/pulumi_aws/ec2/vpn_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpnGatewayArgs', 'VpnGateway'] @@ -25,14 +25,37 @@ def __init__(__self__, *, :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] vpc_id: The VPC ID to create in. """ + VpnGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_side_asn=amazon_side_asn, + availability_zone=availability_zone, + tags=tags, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_side_asn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="amazonSideAsn") @@ -101,21 +124,50 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The VPC ID to create in. """ + _VpnGatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_side_asn=amazon_side_asn, + arn=arn, + availability_zone=availability_zone, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_side_asn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="amazonSideAsn") @@ -274,6 +326,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpnGatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpn_gateway_attachment.py b/sdk/python/pulumi_aws/ec2/vpn_gateway_attachment.py index 7e98e78bbec..20357c23940 100644 --- a/sdk/python/pulumi_aws/ec2/vpn_gateway_attachment.py +++ b/sdk/python/pulumi_aws/ec2/vpn_gateway_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpnGatewayAttachmentArgs', 'VpnGatewayAttachment'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The ID of the VPC. :param pulumi.Input[str] vpn_gateway_id: The ID of the Virtual Private Gateway. """ - pulumi.set(__self__, "vpc_id", vpc_id) - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + VpnGatewayAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + if vpn_gateway_id is None: + raise TypeError("Missing 'vpn_gateway_id' argument") + + _setter("vpc_id", vpc_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="vpcId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The ID of the VPC. :param pulumi.Input[str] vpn_gateway_id: The ID of the Virtual Private Gateway. """ + _VpnGatewayAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="vpcId") @@ -180,6 +218,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpnGatewayAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2/vpn_gateway_route_propagation.py b/sdk/python/pulumi_aws/ec2/vpn_gateway_route_propagation.py index 5f797c65688..355efd908e6 100644 --- a/sdk/python/pulumi_aws/ec2/vpn_gateway_route_propagation.py +++ b/sdk/python/pulumi_aws/ec2/vpn_gateway_route_propagation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpnGatewayRoutePropagationArgs', 'VpnGatewayRoutePropagation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] route_table_id: The id of the `ec2.RouteTable` to propagate routes into. :param pulumi.Input[str] vpn_gateway_id: The id of the `ec2.VpnGateway` to propagate routes from. """ - pulumi.set(__self__, "route_table_id", route_table_id) - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + VpnGatewayRoutePropagationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + route_table_id=route_table_id, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route_table_id: Optional[pulumi.Input[str]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if route_table_id is None: + raise TypeError("Missing 'route_table_id' argument") + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + if vpn_gateway_id is None: + raise TypeError("Missing 'vpn_gateway_id' argument") + + _setter("route_table_id", route_table_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="routeTableId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] route_table_id: The id of the `ec2.RouteTable` to propagate routes into. :param pulumi.Input[str] vpn_gateway_id: The id of the `ec2.VpnGateway` to propagate routes from. """ + _VpnGatewayRoutePropagationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + route_table_id=route_table_id, + vpn_gateway_id=vpn_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + route_table_id: Optional[pulumi.Input[str]] = None, + vpn_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if route_table_id is None and 'routeTableId' in kwargs: + route_table_id = kwargs['routeTableId'] + if vpn_gateway_id is None and 'vpnGatewayId' in kwargs: + vpn_gateway_id = kwargs['vpnGatewayId'] + if route_table_id is not None: - pulumi.set(__self__, "route_table_id", route_table_id) + _setter("route_table_id", route_table_id) if vpn_gateway_id is not None: - pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + _setter("vpn_gateway_id", vpn_gateway_id) @property @pulumi.getter(name="routeTableId") @@ -154,6 +192,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpnGatewayRoutePropagationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2clientvpn/_inputs.py b/sdk/python/pulumi_aws/ec2clientvpn/_inputs.py index 03ac298cdc7..fd327fd67e0 100644 --- a/sdk/python/pulumi_aws/ec2clientvpn/_inputs.py +++ b/sdk/python/pulumi_aws/ec2clientvpn/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -32,15 +32,44 @@ def __init__(__self__, *, :param pulumi.Input[str] saml_provider_arn: The ARN of the IAM SAML identity provider if type is `federated-authentication`. :param pulumi.Input[str] self_service_saml_provider_arn: The ARN of the IAM SAML identity provider for the self service portal if type is `federated-authentication`. """ - pulumi.set(__self__, "type", type) + EndpointAuthenticationOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + active_directory_id=active_directory_id, + root_certificate_chain_arn=root_certificate_chain_arn, + saml_provider_arn=saml_provider_arn, + self_service_saml_provider_arn=self_service_saml_provider_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + active_directory_id: Optional[pulumi.Input[str]] = None, + root_certificate_chain_arn: Optional[pulumi.Input[str]] = None, + saml_provider_arn: Optional[pulumi.Input[str]] = None, + self_service_saml_provider_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if active_directory_id is None and 'activeDirectoryId' in kwargs: + active_directory_id = kwargs['activeDirectoryId'] + if root_certificate_chain_arn is None and 'rootCertificateChainArn' in kwargs: + root_certificate_chain_arn = kwargs['rootCertificateChainArn'] + if saml_provider_arn is None and 'samlProviderArn' in kwargs: + saml_provider_arn = kwargs['samlProviderArn'] + if self_service_saml_provider_arn is None and 'selfServiceSamlProviderArn' in kwargs: + self_service_saml_provider_arn = kwargs['selfServiceSamlProviderArn'] + + _setter("type", type) if active_directory_id is not None: - pulumi.set(__self__, "active_directory_id", active_directory_id) + _setter("active_directory_id", active_directory_id) if root_certificate_chain_arn is not None: - pulumi.set(__self__, "root_certificate_chain_arn", root_certificate_chain_arn) + _setter("root_certificate_chain_arn", root_certificate_chain_arn) if saml_provider_arn is not None: - pulumi.set(__self__, "saml_provider_arn", saml_provider_arn) + _setter("saml_provider_arn", saml_provider_arn) if self_service_saml_provider_arn is not None: - pulumi.set(__self__, "self_service_saml_provider_arn", self_service_saml_provider_arn) + _setter("self_service_saml_provider_arn", self_service_saml_provider_arn) @property @pulumi.getter @@ -112,10 +141,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Indicates whether client connect options are enabled. The default is `false` (not enabled). :param pulumi.Input[str] lambda_function_arn: The Amazon Resource Name (ARN) of the Lambda function used for connection authorization. """ + EndpointClientConnectOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + lambda_function_arn=lambda_function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + lambda_function_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_function_arn is None and 'lambdaFunctionArn' in kwargs: + lambda_function_arn = kwargs['lambdaFunctionArn'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if lambda_function_arn is not None: - pulumi.set(__self__, "lambda_function_arn", lambda_function_arn) + _setter("lambda_function_arn", lambda_function_arn) @property @pulumi.getter @@ -151,10 +195,25 @@ def __init__(__self__, *, :param pulumi.Input[str] banner_text: Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established. UTF-8 encoded characters only. Maximum of 1400 characters. :param pulumi.Input[bool] enabled: Enable or disable a customizable text banner that will be displayed on AWS provided clients when a VPN session is established. The default is `false` (not enabled). """ + EndpointClientLoginBannerOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + banner_text=banner_text, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + banner_text: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if banner_text is None and 'bannerText' in kwargs: + banner_text = kwargs['bannerText'] + if banner_text is not None: - pulumi.set(__self__, "banner_text", banner_text) + _setter("banner_text", banner_text) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="bannerText") @@ -192,11 +251,32 @@ def __init__(__self__, *, :param pulumi.Input[str] cloudwatch_log_group: The name of the CloudWatch Logs log group. :param pulumi.Input[str] cloudwatch_log_stream: The name of the CloudWatch Logs log stream to which the connection data is published. """ - pulumi.set(__self__, "enabled", enabled) + EndpointConnectionLogOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + cloudwatch_log_group=cloudwatch_log_group, + cloudwatch_log_stream=cloudwatch_log_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + cloudwatch_log_group: Optional[pulumi.Input[str]] = None, + cloudwatch_log_stream: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if cloudwatch_log_group is None and 'cloudwatchLogGroup' in kwargs: + cloudwatch_log_group = kwargs['cloudwatchLogGroup'] + if cloudwatch_log_stream is None and 'cloudwatchLogStream' in kwargs: + cloudwatch_log_stream = kwargs['cloudwatchLogStream'] + + _setter("enabled", enabled) if cloudwatch_log_group is not None: - pulumi.set(__self__, "cloudwatch_log_group", cloudwatch_log_group) + _setter("cloudwatch_log_group", cloudwatch_log_group) if cloudwatch_log_stream is not None: - pulumi.set(__self__, "cloudwatch_log_stream", cloudwatch_log_stream) + _setter("cloudwatch_log_stream", cloudwatch_log_stream) @property @pulumi.getter @@ -244,8 +324,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeClientVpnEndpoints.html). :param Sequence[str] values: Set of values that are accepted for the given field. An endpoint will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetEndpointFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ec2clientvpn/authorization_rule.py b/sdk/python/pulumi_aws/ec2clientvpn/authorization_rule.py index b15d30c89a9..7dec3cbe202 100644 --- a/sdk/python/pulumi_aws/ec2clientvpn/authorization_rule.py +++ b/sdk/python/pulumi_aws/ec2clientvpn/authorization_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AuthorizationRuleArgs', 'AuthorizationRule'] @@ -27,14 +27,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] authorize_all_groups: Indicates whether the authorization rule grants access to all clients. One of `access_group_id` or `authorize_all_groups` must be set. :param pulumi.Input[str] description: A brief description of the authorization rule. """ - pulumi.set(__self__, "client_vpn_endpoint_id", client_vpn_endpoint_id) - pulumi.set(__self__, "target_network_cidr", target_network_cidr) + AuthorizationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_vpn_endpoint_id=client_vpn_endpoint_id, + target_network_cidr=target_network_cidr, + access_group_id=access_group_id, + authorize_all_groups=authorize_all_groups, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_vpn_endpoint_id: Optional[pulumi.Input[str]] = None, + target_network_cidr: Optional[pulumi.Input[str]] = None, + access_group_id: Optional[pulumi.Input[str]] = None, + authorize_all_groups: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_vpn_endpoint_id is None and 'clientVpnEndpointId' in kwargs: + client_vpn_endpoint_id = kwargs['clientVpnEndpointId'] + if client_vpn_endpoint_id is None: + raise TypeError("Missing 'client_vpn_endpoint_id' argument") + if target_network_cidr is None and 'targetNetworkCidr' in kwargs: + target_network_cidr = kwargs['targetNetworkCidr'] + if target_network_cidr is None: + raise TypeError("Missing 'target_network_cidr' argument") + if access_group_id is None and 'accessGroupId' in kwargs: + access_group_id = kwargs['accessGroupId'] + if authorize_all_groups is None and 'authorizeAllGroups' in kwargs: + authorize_all_groups = kwargs['authorizeAllGroups'] + + _setter("client_vpn_endpoint_id", client_vpn_endpoint_id) + _setter("target_network_cidr", target_network_cidr) if access_group_id is not None: - pulumi.set(__self__, "access_group_id", access_group_id) + _setter("access_group_id", access_group_id) if authorize_all_groups is not None: - pulumi.set(__self__, "authorize_all_groups", authorize_all_groups) + _setter("authorize_all_groups", authorize_all_groups) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="clientVpnEndpointId") @@ -113,16 +144,43 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A brief description of the authorization rule. :param pulumi.Input[str] target_network_cidr: The IPv4 address range, in CIDR notation, of the network to which the authorization rule applies. """ + _AuthorizationRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_group_id=access_group_id, + authorize_all_groups=authorize_all_groups, + client_vpn_endpoint_id=client_vpn_endpoint_id, + description=description, + target_network_cidr=target_network_cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_group_id: Optional[pulumi.Input[str]] = None, + authorize_all_groups: Optional[pulumi.Input[bool]] = None, + client_vpn_endpoint_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + target_network_cidr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_group_id is None and 'accessGroupId' in kwargs: + access_group_id = kwargs['accessGroupId'] + if authorize_all_groups is None and 'authorizeAllGroups' in kwargs: + authorize_all_groups = kwargs['authorizeAllGroups'] + if client_vpn_endpoint_id is None and 'clientVpnEndpointId' in kwargs: + client_vpn_endpoint_id = kwargs['clientVpnEndpointId'] + if target_network_cidr is None and 'targetNetworkCidr' in kwargs: + target_network_cidr = kwargs['targetNetworkCidr'] + if access_group_id is not None: - pulumi.set(__self__, "access_group_id", access_group_id) + _setter("access_group_id", access_group_id) if authorize_all_groups is not None: - pulumi.set(__self__, "authorize_all_groups", authorize_all_groups) + _setter("authorize_all_groups", authorize_all_groups) if client_vpn_endpoint_id is not None: - pulumi.set(__self__, "client_vpn_endpoint_id", client_vpn_endpoint_id) + _setter("client_vpn_endpoint_id", client_vpn_endpoint_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if target_network_cidr is not None: - pulumi.set(__self__, "target_network_cidr", target_network_cidr) + _setter("target_network_cidr", target_network_cidr) @property @pulumi.getter(name="accessGroupId") @@ -286,6 +344,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AuthorizationRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2clientvpn/endpoint.py b/sdk/python/pulumi_aws/ec2clientvpn/endpoint.py index 81f358952b6..f2d0eaf3038 100644 --- a/sdk/python/pulumi_aws/ec2clientvpn/endpoint.py +++ b/sdk/python/pulumi_aws/ec2clientvpn/endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -51,34 +51,111 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied. :param pulumi.Input[int] vpn_port: The port number for the Client VPN endpoint. Valid values are `443` and `1194`. Default value is `443`. """ - pulumi.set(__self__, "authentication_options", authentication_options) - pulumi.set(__self__, "client_cidr_block", client_cidr_block) - pulumi.set(__self__, "connection_log_options", connection_log_options) - pulumi.set(__self__, "server_certificate_arn", server_certificate_arn) + EndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_options=authentication_options, + client_cidr_block=client_cidr_block, + connection_log_options=connection_log_options, + server_certificate_arn=server_certificate_arn, + client_connect_options=client_connect_options, + client_login_banner_options=client_login_banner_options, + description=description, + dns_servers=dns_servers, + security_group_ids=security_group_ids, + self_service_portal=self_service_portal, + session_timeout_hours=session_timeout_hours, + split_tunnel=split_tunnel, + tags=tags, + transport_protocol=transport_protocol, + vpc_id=vpc_id, + vpn_port=vpn_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_options: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointAuthenticationOptionArgs']]]] = None, + client_cidr_block: Optional[pulumi.Input[str]] = None, + connection_log_options: Optional[pulumi.Input['EndpointConnectionLogOptionsArgs']] = None, + server_certificate_arn: Optional[pulumi.Input[str]] = None, + client_connect_options: Optional[pulumi.Input['EndpointClientConnectOptionsArgs']] = None, + client_login_banner_options: Optional[pulumi.Input['EndpointClientLoginBannerOptionsArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self_service_portal: Optional[pulumi.Input[str]] = None, + session_timeout_hours: Optional[pulumi.Input[int]] = None, + split_tunnel: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transport_protocol: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + vpn_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_options is None and 'authenticationOptions' in kwargs: + authentication_options = kwargs['authenticationOptions'] + if authentication_options is None: + raise TypeError("Missing 'authentication_options' argument") + if client_cidr_block is None and 'clientCidrBlock' in kwargs: + client_cidr_block = kwargs['clientCidrBlock'] + if client_cidr_block is None: + raise TypeError("Missing 'client_cidr_block' argument") + if connection_log_options is None and 'connectionLogOptions' in kwargs: + connection_log_options = kwargs['connectionLogOptions'] + if connection_log_options is None: + raise TypeError("Missing 'connection_log_options' argument") + if server_certificate_arn is None and 'serverCertificateArn' in kwargs: + server_certificate_arn = kwargs['serverCertificateArn'] + if server_certificate_arn is None: + raise TypeError("Missing 'server_certificate_arn' argument") + if client_connect_options is None and 'clientConnectOptions' in kwargs: + client_connect_options = kwargs['clientConnectOptions'] + if client_login_banner_options is None and 'clientLoginBannerOptions' in kwargs: + client_login_banner_options = kwargs['clientLoginBannerOptions'] + if dns_servers is None and 'dnsServers' in kwargs: + dns_servers = kwargs['dnsServers'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if self_service_portal is None and 'selfServicePortal' in kwargs: + self_service_portal = kwargs['selfServicePortal'] + if session_timeout_hours is None and 'sessionTimeoutHours' in kwargs: + session_timeout_hours = kwargs['sessionTimeoutHours'] + if split_tunnel is None and 'splitTunnel' in kwargs: + split_tunnel = kwargs['splitTunnel'] + if transport_protocol is None and 'transportProtocol' in kwargs: + transport_protocol = kwargs['transportProtocol'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpn_port is None and 'vpnPort' in kwargs: + vpn_port = kwargs['vpnPort'] + + _setter("authentication_options", authentication_options) + _setter("client_cidr_block", client_cidr_block) + _setter("connection_log_options", connection_log_options) + _setter("server_certificate_arn", server_certificate_arn) if client_connect_options is not None: - pulumi.set(__self__, "client_connect_options", client_connect_options) + _setter("client_connect_options", client_connect_options) if client_login_banner_options is not None: - pulumi.set(__self__, "client_login_banner_options", client_login_banner_options) + _setter("client_login_banner_options", client_login_banner_options) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dns_servers is not None: - pulumi.set(__self__, "dns_servers", dns_servers) + _setter("dns_servers", dns_servers) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if self_service_portal is not None: - pulumi.set(__self__, "self_service_portal", self_service_portal) + _setter("self_service_portal", self_service_portal) if session_timeout_hours is not None: - pulumi.set(__self__, "session_timeout_hours", session_timeout_hours) + _setter("session_timeout_hours", session_timeout_hours) if split_tunnel is not None: - pulumi.set(__self__, "split_tunnel", split_tunnel) + _setter("split_tunnel", split_tunnel) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transport_protocol is not None: - pulumi.set(__self__, "transport_protocol", transport_protocol) + _setter("transport_protocol", transport_protocol) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if vpn_port is not None: - pulumi.set(__self__, "vpn_port", vpn_port) + _setter("vpn_port", vpn_port) @property @pulumi.getter(name="authenticationOptions") @@ -317,47 +394,126 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied. :param pulumi.Input[int] vpn_port: The port number for the Client VPN endpoint. Valid values are `443` and `1194`. Default value is `443`. """ + _EndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + authentication_options=authentication_options, + client_cidr_block=client_cidr_block, + client_connect_options=client_connect_options, + client_login_banner_options=client_login_banner_options, + connection_log_options=connection_log_options, + description=description, + dns_name=dns_name, + dns_servers=dns_servers, + security_group_ids=security_group_ids, + self_service_portal=self_service_portal, + server_certificate_arn=server_certificate_arn, + session_timeout_hours=session_timeout_hours, + split_tunnel=split_tunnel, + tags=tags, + tags_all=tags_all, + transport_protocol=transport_protocol, + vpc_id=vpc_id, + vpn_port=vpn_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + authentication_options: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointAuthenticationOptionArgs']]]] = None, + client_cidr_block: Optional[pulumi.Input[str]] = None, + client_connect_options: Optional[pulumi.Input['EndpointClientConnectOptionsArgs']] = None, + client_login_banner_options: Optional[pulumi.Input['EndpointClientLoginBannerOptionsArgs']] = None, + connection_log_options: Optional[pulumi.Input['EndpointConnectionLogOptionsArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self_service_portal: Optional[pulumi.Input[str]] = None, + server_certificate_arn: Optional[pulumi.Input[str]] = None, + session_timeout_hours: Optional[pulumi.Input[int]] = None, + split_tunnel: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transport_protocol: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + vpn_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_options is None and 'authenticationOptions' in kwargs: + authentication_options = kwargs['authenticationOptions'] + if client_cidr_block is None and 'clientCidrBlock' in kwargs: + client_cidr_block = kwargs['clientCidrBlock'] + if client_connect_options is None and 'clientConnectOptions' in kwargs: + client_connect_options = kwargs['clientConnectOptions'] + if client_login_banner_options is None and 'clientLoginBannerOptions' in kwargs: + client_login_banner_options = kwargs['clientLoginBannerOptions'] + if connection_log_options is None and 'connectionLogOptions' in kwargs: + connection_log_options = kwargs['connectionLogOptions'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if dns_servers is None and 'dnsServers' in kwargs: + dns_servers = kwargs['dnsServers'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if self_service_portal is None and 'selfServicePortal' in kwargs: + self_service_portal = kwargs['selfServicePortal'] + if server_certificate_arn is None and 'serverCertificateArn' in kwargs: + server_certificate_arn = kwargs['serverCertificateArn'] + if session_timeout_hours is None and 'sessionTimeoutHours' in kwargs: + session_timeout_hours = kwargs['sessionTimeoutHours'] + if split_tunnel is None and 'splitTunnel' in kwargs: + split_tunnel = kwargs['splitTunnel'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transport_protocol is None and 'transportProtocol' in kwargs: + transport_protocol = kwargs['transportProtocol'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpn_port is None and 'vpnPort' in kwargs: + vpn_port = kwargs['vpnPort'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_options is not None: - pulumi.set(__self__, "authentication_options", authentication_options) + _setter("authentication_options", authentication_options) if client_cidr_block is not None: - pulumi.set(__self__, "client_cidr_block", client_cidr_block) + _setter("client_cidr_block", client_cidr_block) if client_connect_options is not None: - pulumi.set(__self__, "client_connect_options", client_connect_options) + _setter("client_connect_options", client_connect_options) if client_login_banner_options is not None: - pulumi.set(__self__, "client_login_banner_options", client_login_banner_options) + _setter("client_login_banner_options", client_login_banner_options) if connection_log_options is not None: - pulumi.set(__self__, "connection_log_options", connection_log_options) + _setter("connection_log_options", connection_log_options) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if dns_servers is not None: - pulumi.set(__self__, "dns_servers", dns_servers) + _setter("dns_servers", dns_servers) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if self_service_portal is not None: - pulumi.set(__self__, "self_service_portal", self_service_portal) + _setter("self_service_portal", self_service_portal) if server_certificate_arn is not None: - pulumi.set(__self__, "server_certificate_arn", server_certificate_arn) + _setter("server_certificate_arn", server_certificate_arn) if session_timeout_hours is not None: - pulumi.set(__self__, "session_timeout_hours", session_timeout_hours) + _setter("session_timeout_hours", session_timeout_hours) if split_tunnel is not None: - pulumi.set(__self__, "split_tunnel", split_tunnel) + _setter("split_tunnel", split_tunnel) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transport_protocol is not None: - pulumi.set(__self__, "transport_protocol", transport_protocol) + _setter("transport_protocol", transport_protocol) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if vpn_port is not None: - pulumi.set(__self__, "vpn_port", vpn_port) + _setter("vpn_port", vpn_port) @property @pulumi.getter @@ -714,6 +870,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -750,8 +910,11 @@ def _internal_init(__self__, if client_cidr_block is None and not opts.urn: raise TypeError("Missing required property 'client_cidr_block'") __props__.__dict__["client_cidr_block"] = client_cidr_block + client_connect_options = _utilities.configure(client_connect_options, EndpointClientConnectOptionsArgs, True) __props__.__dict__["client_connect_options"] = client_connect_options + client_login_banner_options = _utilities.configure(client_login_banner_options, EndpointClientLoginBannerOptionsArgs, True) __props__.__dict__["client_login_banner_options"] = client_login_banner_options + connection_log_options = _utilities.configure(connection_log_options, EndpointConnectionLogOptionsArgs, True) if connection_log_options is None and not opts.urn: raise TypeError("Missing required property 'connection_log_options'") __props__.__dict__["connection_log_options"] = connection_log_options diff --git a/sdk/python/pulumi_aws/ec2clientvpn/get_endpoint.py b/sdk/python/pulumi_aws/ec2clientvpn/get_endpoint.py index a85c66f549d..eaf54cdba25 100644 --- a/sdk/python/pulumi_aws/ec2clientvpn/get_endpoint.py +++ b/sdk/python/pulumi_aws/ec2clientvpn/get_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2clientvpn/network_association.py b/sdk/python/pulumi_aws/ec2clientvpn/network_association.py index 0550992c866..b6bc04fba93 100644 --- a/sdk/python/pulumi_aws/ec2clientvpn/network_association.py +++ b/sdk/python/pulumi_aws/ec2clientvpn/network_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NetworkAssociationArgs', 'NetworkAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] client_vpn_endpoint_id: The ID of the Client VPN endpoint. :param pulumi.Input[str] subnet_id: The ID of the subnet to associate with the Client VPN endpoint. """ - pulumi.set(__self__, "client_vpn_endpoint_id", client_vpn_endpoint_id) - pulumi.set(__self__, "subnet_id", subnet_id) + NetworkAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_vpn_endpoint_id=client_vpn_endpoint_id, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_vpn_endpoint_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_vpn_endpoint_id is None and 'clientVpnEndpointId' in kwargs: + client_vpn_endpoint_id = kwargs['clientVpnEndpointId'] + if client_vpn_endpoint_id is None: + raise TypeError("Missing 'client_vpn_endpoint_id' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("client_vpn_endpoint_id", client_vpn_endpoint_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="clientVpnEndpointId") @@ -63,14 +84,39 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_id: The ID of the subnet to associate with the Client VPN endpoint. :param pulumi.Input[str] vpc_id: The ID of the VPC in which the target subnet is located. """ + _NetworkAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + association_id=association_id, + client_vpn_endpoint_id=client_vpn_endpoint_id, + subnet_id=subnet_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + association_id: Optional[pulumi.Input[str]] = None, + client_vpn_endpoint_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if client_vpn_endpoint_id is None and 'clientVpnEndpointId' in kwargs: + client_vpn_endpoint_id = kwargs['clientVpnEndpointId'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if association_id is not None: - pulumi.set(__self__, "association_id", association_id) + _setter("association_id", association_id) if client_vpn_endpoint_id is not None: - pulumi.set(__self__, "client_vpn_endpoint_id", client_vpn_endpoint_id) + _setter("client_vpn_endpoint_id", client_vpn_endpoint_id) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="associationId") @@ -196,6 +242,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NetworkAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2clientvpn/outputs.py b/sdk/python/pulumi_aws/ec2clientvpn/outputs.py index 33b9e62e0ae..81aa03fdb6d 100644 --- a/sdk/python/pulumi_aws/ec2clientvpn/outputs.py +++ b/sdk/python/pulumi_aws/ec2clientvpn/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -59,15 +59,44 @@ def __init__(__self__, *, :param str saml_provider_arn: The ARN of the IAM SAML identity provider if type is `federated-authentication`. :param str self_service_saml_provider_arn: The ARN of the IAM SAML identity provider for the self service portal if type is `federated-authentication`. """ - pulumi.set(__self__, "type", type) + EndpointAuthenticationOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + active_directory_id=active_directory_id, + root_certificate_chain_arn=root_certificate_chain_arn, + saml_provider_arn=saml_provider_arn, + self_service_saml_provider_arn=self_service_saml_provider_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + active_directory_id: Optional[str] = None, + root_certificate_chain_arn: Optional[str] = None, + saml_provider_arn: Optional[str] = None, + self_service_saml_provider_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if active_directory_id is None and 'activeDirectoryId' in kwargs: + active_directory_id = kwargs['activeDirectoryId'] + if root_certificate_chain_arn is None and 'rootCertificateChainArn' in kwargs: + root_certificate_chain_arn = kwargs['rootCertificateChainArn'] + if saml_provider_arn is None and 'samlProviderArn' in kwargs: + saml_provider_arn = kwargs['samlProviderArn'] + if self_service_saml_provider_arn is None and 'selfServiceSamlProviderArn' in kwargs: + self_service_saml_provider_arn = kwargs['selfServiceSamlProviderArn'] + + _setter("type", type) if active_directory_id is not None: - pulumi.set(__self__, "active_directory_id", active_directory_id) + _setter("active_directory_id", active_directory_id) if root_certificate_chain_arn is not None: - pulumi.set(__self__, "root_certificate_chain_arn", root_certificate_chain_arn) + _setter("root_certificate_chain_arn", root_certificate_chain_arn) if saml_provider_arn is not None: - pulumi.set(__self__, "saml_provider_arn", saml_provider_arn) + _setter("saml_provider_arn", saml_provider_arn) if self_service_saml_provider_arn is not None: - pulumi.set(__self__, "self_service_saml_provider_arn", self_service_saml_provider_arn) + _setter("self_service_saml_provider_arn", self_service_saml_provider_arn) @property @pulumi.getter @@ -136,10 +165,25 @@ def __init__(__self__, *, :param bool enabled: Indicates whether client connect options are enabled. The default is `false` (not enabled). :param str lambda_function_arn: The Amazon Resource Name (ARN) of the Lambda function used for connection authorization. """ + EndpointClientConnectOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + lambda_function_arn=lambda_function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + lambda_function_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_function_arn is None and 'lambdaFunctionArn' in kwargs: + lambda_function_arn = kwargs['lambdaFunctionArn'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if lambda_function_arn is not None: - pulumi.set(__self__, "lambda_function_arn", lambda_function_arn) + _setter("lambda_function_arn", lambda_function_arn) @property @pulumi.getter @@ -184,10 +228,25 @@ def __init__(__self__, *, :param str banner_text: Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established. UTF-8 encoded characters only. Maximum of 1400 characters. :param bool enabled: Enable or disable a customizable text banner that will be displayed on AWS provided clients when a VPN session is established. The default is `false` (not enabled). """ + EndpointClientLoginBannerOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + banner_text=banner_text, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + banner_text: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if banner_text is None and 'bannerText' in kwargs: + banner_text = kwargs['bannerText'] + if banner_text is not None: - pulumi.set(__self__, "banner_text", banner_text) + _setter("banner_text", banner_text) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="bannerText") @@ -236,11 +295,32 @@ def __init__(__self__, *, :param str cloudwatch_log_group: The name of the CloudWatch Logs log group. :param str cloudwatch_log_stream: The name of the CloudWatch Logs log stream to which the connection data is published. """ - pulumi.set(__self__, "enabled", enabled) + EndpointConnectionLogOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + cloudwatch_log_group=cloudwatch_log_group, + cloudwatch_log_stream=cloudwatch_log_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + cloudwatch_log_group: Optional[str] = None, + cloudwatch_log_stream: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if cloudwatch_log_group is None and 'cloudwatchLogGroup' in kwargs: + cloudwatch_log_group = kwargs['cloudwatchLogGroup'] + if cloudwatch_log_stream is None and 'cloudwatchLogStream' in kwargs: + cloudwatch_log_stream = kwargs['cloudwatchLogStream'] + + _setter("enabled", enabled) if cloudwatch_log_group is not None: - pulumi.set(__self__, "cloudwatch_log_group", cloudwatch_log_group) + _setter("cloudwatch_log_group", cloudwatch_log_group) if cloudwatch_log_stream is not None: - pulumi.set(__self__, "cloudwatch_log_stream", cloudwatch_log_stream) + _setter("cloudwatch_log_stream", cloudwatch_log_stream) @property @pulumi.getter @@ -275,11 +355,48 @@ def __init__(__self__, *, saml_provider_arn: str, self_service_saml_provider_arn: str, type: str): - pulumi.set(__self__, "active_directory_id", active_directory_id) - pulumi.set(__self__, "root_certificate_chain_arn", root_certificate_chain_arn) - pulumi.set(__self__, "saml_provider_arn", saml_provider_arn) - pulumi.set(__self__, "self_service_saml_provider_arn", self_service_saml_provider_arn) - pulumi.set(__self__, "type", type) + GetEndpointAuthenticationOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + active_directory_id=active_directory_id, + root_certificate_chain_arn=root_certificate_chain_arn, + saml_provider_arn=saml_provider_arn, + self_service_saml_provider_arn=self_service_saml_provider_arn, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active_directory_id: Optional[str] = None, + root_certificate_chain_arn: Optional[str] = None, + saml_provider_arn: Optional[str] = None, + self_service_saml_provider_arn: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active_directory_id is None and 'activeDirectoryId' in kwargs: + active_directory_id = kwargs['activeDirectoryId'] + if active_directory_id is None: + raise TypeError("Missing 'active_directory_id' argument") + if root_certificate_chain_arn is None and 'rootCertificateChainArn' in kwargs: + root_certificate_chain_arn = kwargs['rootCertificateChainArn'] + if root_certificate_chain_arn is None: + raise TypeError("Missing 'root_certificate_chain_arn' argument") + if saml_provider_arn is None and 'samlProviderArn' in kwargs: + saml_provider_arn = kwargs['samlProviderArn'] + if saml_provider_arn is None: + raise TypeError("Missing 'saml_provider_arn' argument") + if self_service_saml_provider_arn is None and 'selfServiceSamlProviderArn' in kwargs: + self_service_saml_provider_arn = kwargs['selfServiceSamlProviderArn'] + if self_service_saml_provider_arn is None: + raise TypeError("Missing 'self_service_saml_provider_arn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("active_directory_id", active_directory_id) + _setter("root_certificate_chain_arn", root_certificate_chain_arn) + _setter("saml_provider_arn", saml_provider_arn) + _setter("self_service_saml_provider_arn", self_service_saml_provider_arn) + _setter("type", type) @property @pulumi.getter(name="activeDirectoryId") @@ -312,8 +429,27 @@ class GetEndpointClientConnectOptionResult(dict): def __init__(__self__, *, enabled: bool, lambda_function_arn: str): - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "lambda_function_arn", lambda_function_arn) + GetEndpointClientConnectOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + lambda_function_arn=lambda_function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + lambda_function_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if lambda_function_arn is None and 'lambdaFunctionArn' in kwargs: + lambda_function_arn = kwargs['lambdaFunctionArn'] + if lambda_function_arn is None: + raise TypeError("Missing 'lambda_function_arn' argument") + + _setter("enabled", enabled) + _setter("lambda_function_arn", lambda_function_arn) @property @pulumi.getter @@ -331,8 +467,27 @@ class GetEndpointClientLoginBannerOptionResult(dict): def __init__(__self__, *, banner_text: str, enabled: bool): - pulumi.set(__self__, "banner_text", banner_text) - pulumi.set(__self__, "enabled", enabled) + GetEndpointClientLoginBannerOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + banner_text=banner_text, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + banner_text: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if banner_text is None and 'bannerText' in kwargs: + banner_text = kwargs['bannerText'] + if banner_text is None: + raise TypeError("Missing 'banner_text' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("banner_text", banner_text) + _setter("enabled", enabled) @property @pulumi.getter(name="bannerText") @@ -351,9 +506,34 @@ def __init__(__self__, *, cloudwatch_log_group: str, cloudwatch_log_stream: str, enabled: bool): - pulumi.set(__self__, "cloudwatch_log_group", cloudwatch_log_group) - pulumi.set(__self__, "cloudwatch_log_stream", cloudwatch_log_stream) - pulumi.set(__self__, "enabled", enabled) + GetEndpointConnectionLogOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group=cloudwatch_log_group, + cloudwatch_log_stream=cloudwatch_log_stream, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group: Optional[str] = None, + cloudwatch_log_stream: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group is None and 'cloudwatchLogGroup' in kwargs: + cloudwatch_log_group = kwargs['cloudwatchLogGroup'] + if cloudwatch_log_group is None: + raise TypeError("Missing 'cloudwatch_log_group' argument") + if cloudwatch_log_stream is None and 'cloudwatchLogStream' in kwargs: + cloudwatch_log_stream = kwargs['cloudwatchLogStream'] + if cloudwatch_log_stream is None: + raise TypeError("Missing 'cloudwatch_log_stream' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("cloudwatch_log_group", cloudwatch_log_group) + _setter("cloudwatch_log_stream", cloudwatch_log_stream) + _setter("enabled", enabled) @property @pulumi.getter(name="cloudwatchLogGroup") @@ -380,8 +560,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeClientVpnEndpoints.html). :param Sequence[str] values: Set of values that are accepted for the given field. An endpoint will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetEndpointFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ec2clientvpn/route.py b/sdk/python/pulumi_aws/ec2clientvpn/route.py index f2c667e690f..f4bda0b1a9f 100644 --- a/sdk/python/pulumi_aws/ec2clientvpn/route.py +++ b/sdk/python/pulumi_aws/ec2clientvpn/route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RouteArgs', 'Route'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] target_vpc_subnet_id: The ID of the Subnet to route the traffic through. It must already be attached to the Client VPN. :param pulumi.Input[str] description: A brief description of the route. """ - pulumi.set(__self__, "client_vpn_endpoint_id", client_vpn_endpoint_id) - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) - pulumi.set(__self__, "target_vpc_subnet_id", target_vpc_subnet_id) + RouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_vpn_endpoint_id=client_vpn_endpoint_id, + destination_cidr_block=destination_cidr_block, + target_vpc_subnet_id=target_vpc_subnet_id, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_vpn_endpoint_id: Optional[pulumi.Input[str]] = None, + destination_cidr_block: Optional[pulumi.Input[str]] = None, + target_vpc_subnet_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_vpn_endpoint_id is None and 'clientVpnEndpointId' in kwargs: + client_vpn_endpoint_id = kwargs['clientVpnEndpointId'] + if client_vpn_endpoint_id is None: + raise TypeError("Missing 'client_vpn_endpoint_id' argument") + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_cidr_block is None: + raise TypeError("Missing 'destination_cidr_block' argument") + if target_vpc_subnet_id is None and 'targetVpcSubnetId' in kwargs: + target_vpc_subnet_id = kwargs['targetVpcSubnetId'] + if target_vpc_subnet_id is None: + raise TypeError("Missing 'target_vpc_subnet_id' argument") + + _setter("client_vpn_endpoint_id", client_vpn_endpoint_id) + _setter("destination_cidr_block", destination_cidr_block) + _setter("target_vpc_subnet_id", target_vpc_subnet_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="clientVpnEndpointId") @@ -98,18 +127,45 @@ def __init__(__self__, *, :param pulumi.Input[str] target_vpc_subnet_id: The ID of the Subnet to route the traffic through. It must already be attached to the Client VPN. :param pulumi.Input[str] type: The type of the route. """ + _RouteState._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_vpn_endpoint_id=client_vpn_endpoint_id, + description=description, + destination_cidr_block=destination_cidr_block, + origin=origin, + target_vpc_subnet_id=target_vpc_subnet_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_vpn_endpoint_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + destination_cidr_block: Optional[pulumi.Input[str]] = None, + origin: Optional[pulumi.Input[str]] = None, + target_vpc_subnet_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_vpn_endpoint_id is None and 'clientVpnEndpointId' in kwargs: + client_vpn_endpoint_id = kwargs['clientVpnEndpointId'] + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if target_vpc_subnet_id is None and 'targetVpcSubnetId' in kwargs: + target_vpc_subnet_id = kwargs['targetVpcSubnetId'] + if client_vpn_endpoint_id is not None: - pulumi.set(__self__, "client_vpn_endpoint_id", client_vpn_endpoint_id) + _setter("client_vpn_endpoint_id", client_vpn_endpoint_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if destination_cidr_block is not None: - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) + _setter("destination_cidr_block", destination_cidr_block) if origin is not None: - pulumi.set(__self__, "origin", origin) + _setter("origin", origin) if target_vpc_subnet_id is not None: - pulumi.set(__self__, "target_vpc_subnet_id", target_vpc_subnet_id) + _setter("target_vpc_subnet_id", target_vpc_subnet_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="clientVpnEndpointId") @@ -293,6 +349,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/_inputs.py b/sdk/python/pulumi_aws/ec2transitgateway/_inputs.py index 2ac46919ac2..d6085a52df9 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/_inputs.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -33,10 +33,23 @@ class InstanceConnectEndpointTimeoutsArgs: def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None): + InstanceConnectEndpointTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) @property @pulumi.getter @@ -66,8 +79,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by the [underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html). :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAttachmentFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -103,8 +133,25 @@ def __init__(__self__, *, :param str name: Name of the filter check available value on [official documentation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html) :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAttachmentsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -140,8 +187,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetConnectFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -177,8 +241,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetConnectPeerFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -214,8 +295,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeTransitGatewayAttachments API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetDirectConnectGatewayAttachmentFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -251,8 +349,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayMulticastDomains.html). :param Sequence[str] values: Set of values that are accepted for the given field. A multicast domain will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetMulticastDomainFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -290,8 +405,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. An EC2 Transit Gateway Peering Attachment be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetPeeringAttachmentFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -331,8 +463,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Transit Gateway Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTableAssociationsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -370,8 +519,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTableFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -409,8 +575,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Transit Gateway Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTablePropagationsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -449,8 +632,25 @@ def __init__(__self__, *, [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayRoutes.html). :param Sequence[str] values: Set of values that are accepted for the given field. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTableRoutesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -487,8 +687,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by the [underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html). :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetTransitGatewayFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -524,8 +741,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcAttachmentFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -561,8 +795,25 @@ def __init__(__self__, *, :param str name: Name of the filter check available value on [official documentation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayVpcAttachments.html) :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcAttachmentsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -598,8 +849,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeTransitGatewayAttachments API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpnAttachmentFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ec2transitgateway/connect.py b/sdk/python/pulumi_aws/ec2transitgateway/connect.py index 57ec6e7fd5e..9c8b9ab5e4f 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/connect.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/connect.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConnectArgs', 'Connect'] @@ -29,16 +29,49 @@ def __init__(__self__, *, :param pulumi.Input[bool] transit_gateway_default_route_table_association: Boolean whether the Connect should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`. :param pulumi.Input[bool] transit_gateway_default_route_table_propagation: Boolean whether the Connect should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`. """ - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) - pulumi.set(__self__, "transport_attachment_id", transport_attachment_id) + ConnectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transit_gateway_id=transit_gateway_id, + transport_attachment_id=transport_attachment_id, + protocol=protocol, + tags=tags, + transit_gateway_default_route_table_association=transit_gateway_default_route_table_association, + transit_gateway_default_route_table_propagation=transit_gateway_default_route_table_propagation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transport_attachment_id: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_default_route_table_association: Optional[pulumi.Input[bool]] = None, + transit_gateway_default_route_table_propagation: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if transport_attachment_id is None and 'transportAttachmentId' in kwargs: + transport_attachment_id = kwargs['transportAttachmentId'] + if transport_attachment_id is None: + raise TypeError("Missing 'transport_attachment_id' argument") + if transit_gateway_default_route_table_association is None and 'transitGatewayDefaultRouteTableAssociation' in kwargs: + transit_gateway_default_route_table_association = kwargs['transitGatewayDefaultRouteTableAssociation'] + if transit_gateway_default_route_table_propagation is None and 'transitGatewayDefaultRouteTablePropagation' in kwargs: + transit_gateway_default_route_table_propagation = kwargs['transitGatewayDefaultRouteTablePropagation'] + + _setter("transit_gateway_id", transit_gateway_id) + _setter("transport_attachment_id", transport_attachment_id) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transit_gateway_default_route_table_association is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) + _setter("transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) if transit_gateway_default_route_table_propagation is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) + _setter("transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) @property @pulumi.getter(name="transitGatewayId") @@ -133,23 +166,56 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_id: Identifier of EC2 Transit Gateway. :param pulumi.Input[str] transport_attachment_id: The underlaying VPC attachment """ + _ConnectState._configure( + lambda key, value: pulumi.set(__self__, key, value), + protocol=protocol, + tags=tags, + tags_all=tags_all, + transit_gateway_default_route_table_association=transit_gateway_default_route_table_association, + transit_gateway_default_route_table_propagation=transit_gateway_default_route_table_propagation, + transit_gateway_id=transit_gateway_id, + transport_attachment_id=transport_attachment_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + protocol: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_default_route_table_association: Optional[pulumi.Input[bool]] = None, + transit_gateway_default_route_table_propagation: Optional[pulumi.Input[bool]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transport_attachment_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_default_route_table_association is None and 'transitGatewayDefaultRouteTableAssociation' in kwargs: + transit_gateway_default_route_table_association = kwargs['transitGatewayDefaultRouteTableAssociation'] + if transit_gateway_default_route_table_propagation is None and 'transitGatewayDefaultRouteTablePropagation' in kwargs: + transit_gateway_default_route_table_propagation = kwargs['transitGatewayDefaultRouteTablePropagation'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transport_attachment_id is None and 'transportAttachmentId' in kwargs: + transport_attachment_id = kwargs['transportAttachmentId'] + if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_default_route_table_association is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) + _setter("transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) if transit_gateway_default_route_table_propagation is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) + _setter("transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if transport_attachment_id is not None: - pulumi.set(__self__, "transport_attachment_id", transport_attachment_id) + _setter("transport_attachment_id", transport_attachment_id) @property @pulumi.getter @@ -328,6 +394,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/connect_peer.py b/sdk/python/pulumi_aws/ec2transitgateway/connect_peer.py index ab754cebcce..01a22f85305 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/connect_peer.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/connect_peer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConnectPeerArgs', 'ConnectPeer'] @@ -29,15 +29,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway Connect Peer. 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] transit_gateway_address: The IP address assigned to Transit Gateway, which will be used as tunnel endpoint. This address must be from associated Transit Gateway CIDR block. The address must be from the same address family as `peer_address`. If not set explicitly, it will be selected from associated Transit Gateway CIDR blocks """ - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) - pulumi.set(__self__, "peer_address", peer_address) - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + ConnectPeerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + inside_cidr_blocks=inside_cidr_blocks, + peer_address=peer_address, + transit_gateway_attachment_id=transit_gateway_attachment_id, + bgp_asn=bgp_asn, + tags=tags, + transit_gateway_address=transit_gateway_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inside_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + peer_address: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_address: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if inside_cidr_blocks is None: + raise TypeError("Missing 'inside_cidr_blocks' argument") + if peer_address is None and 'peerAddress' in kwargs: + peer_address = kwargs['peerAddress'] + if peer_address is None: + raise TypeError("Missing 'peer_address' argument") + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_attachment_id is None: + raise TypeError("Missing 'transit_gateway_attachment_id' argument") + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if transit_gateway_address is None and 'transitGatewayAddress' in kwargs: + transit_gateway_address = kwargs['transitGatewayAddress'] + + _setter("inside_cidr_blocks", inside_cidr_blocks) + _setter("peer_address", peer_address) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transit_gateway_address is not None: - pulumi.set(__self__, "transit_gateway_address", transit_gateway_address) + _setter("transit_gateway_address", transit_gateway_address) @property @pulumi.getter(name="insideCidrBlocks") @@ -138,29 +175,74 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_address: The IP address assigned to Transit Gateway, which will be used as tunnel endpoint. This address must be from associated Transit Gateway CIDR block. The address must be from the same address family as `peer_address`. If not set explicitly, it will be selected from associated Transit Gateway CIDR blocks :param pulumi.Input[str] transit_gateway_attachment_id: The Transit Gateway Connect """ + _ConnectPeerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bgp_asn=bgp_asn, + bgp_peer_address=bgp_peer_address, + bgp_transit_gateway_addresses=bgp_transit_gateway_addresses, + inside_cidr_blocks=inside_cidr_blocks, + peer_address=peer_address, + tags=tags, + tags_all=tags_all, + transit_gateway_address=transit_gateway_address, + transit_gateway_attachment_id=transit_gateway_attachment_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bgp_asn: Optional[pulumi.Input[str]] = None, + bgp_peer_address: Optional[pulumi.Input[str]] = None, + bgp_transit_gateway_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + inside_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + peer_address: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_address: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bgp_asn is None and 'bgpAsn' in kwargs: + bgp_asn = kwargs['bgpAsn'] + if bgp_peer_address is None and 'bgpPeerAddress' in kwargs: + bgp_peer_address = kwargs['bgpPeerAddress'] + if bgp_transit_gateway_addresses is None and 'bgpTransitGatewayAddresses' in kwargs: + bgp_transit_gateway_addresses = kwargs['bgpTransitGatewayAddresses'] + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if peer_address is None and 'peerAddress' in kwargs: + peer_address = kwargs['peerAddress'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_address is None and 'transitGatewayAddress' in kwargs: + transit_gateway_address = kwargs['transitGatewayAddress'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bgp_asn is not None: - pulumi.set(__self__, "bgp_asn", bgp_asn) + _setter("bgp_asn", bgp_asn) if bgp_peer_address is not None: - pulumi.set(__self__, "bgp_peer_address", bgp_peer_address) + _setter("bgp_peer_address", bgp_peer_address) if bgp_transit_gateway_addresses is not None: - pulumi.set(__self__, "bgp_transit_gateway_addresses", bgp_transit_gateway_addresses) + _setter("bgp_transit_gateway_addresses", bgp_transit_gateway_addresses) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) if peer_address is not None: - pulumi.set(__self__, "peer_address", peer_address) + _setter("peer_address", peer_address) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_address is not None: - pulumi.set(__self__, "transit_gateway_address", transit_gateway_address) + _setter("transit_gateway_address", transit_gateway_address) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) @property @pulumi.getter @@ -375,6 +457,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectPeerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_attachment.py b/sdk/python/pulumi_aws/ec2transitgateway/get_attachment.py index 62913b976b0..c4111014135 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_attachment.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_attachments.py b/sdk/python/pulumi_aws/ec2transitgateway/get_attachments.py index 4d0cb9e2fbb..22289ec5daa 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_attachments.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_attachments.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_connect.py b/sdk/python/pulumi_aws/ec2transitgateway/get_connect.py index c0aa4e2c6fa..5fff40b4358 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_connect.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_connect.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_connect_peer.py b/sdk/python/pulumi_aws/ec2transitgateway/get_connect_peer.py index 9cb0990fc92..b96cdda956a 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_connect_peer.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_connect_peer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_direct_connect_gateway_attachment.py b/sdk/python/pulumi_aws/ec2transitgateway/get_direct_connect_gateway_attachment.py index a9cac8805e8..849a07b5d51 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_direct_connect_gateway_attachment.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_direct_connect_gateway_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_multicast_domain.py b/sdk/python/pulumi_aws/ec2transitgateway/get_multicast_domain.py index b2e4e1b3d5a..2ddb271f56c 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_multicast_domain.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_multicast_domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_peering_attachment.py b/sdk/python/pulumi_aws/ec2transitgateway/get_peering_attachment.py index 3c53923d9ae..6a2c189aeaa 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_peering_attachment.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_peering_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_route_table.py b/sdk/python/pulumi_aws/ec2transitgateway/get_route_table.py index 0a3d9348cbd..e281c73a86c 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_route_table.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_route_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_associations.py b/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_associations.py index 6ba88d044c9..e49c81642f8 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_associations.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_associations.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_propagations.py b/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_propagations.py index 913e166ad99..0cfbad523fc 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_propagations.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_propagations.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_routes.py b/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_routes.py index e3d0cc6ca9f..a2b934e77f6 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_routes.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_route_table_routes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_transit_gateway.py b/sdk/python/pulumi_aws/ec2transitgateway/get_transit_gateway.py index 6af7579cbf4..32619d67fc0 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_transit_gateway.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_transit_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_vpc_attachment.py b/sdk/python/pulumi_aws/ec2transitgateway/get_vpc_attachment.py index 8440f4df14e..a50f9ef457a 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_vpc_attachment.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_vpc_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_vpc_attachments.py b/sdk/python/pulumi_aws/ec2transitgateway/get_vpc_attachments.py index c313522c3b8..ca175d7f863 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_vpc_attachments.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_vpc_attachments.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/get_vpn_attachment.py b/sdk/python/pulumi_aws/ec2transitgateway/get_vpn_attachment.py index fe7e45cec28..d4e1306b0e2 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/get_vpn_attachment.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/get_vpn_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/instance_connect_endpoint.py b/sdk/python/pulumi_aws/ec2transitgateway/instance_connect_endpoint.py index 3c77d642d75..a2962ca05e9 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/instance_connect_endpoint.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/instance_connect_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -28,15 +28,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: One or more security groups to associate with the endpoint. If you don't specify a security group, the default security group for the VPC will be associated with the endpoint. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "subnet_id", subnet_id) + InstanceConnectEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + preserve_client_ip=preserve_client_ip, + security_group_ids=security_group_ids, + tags=tags, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + preserve_client_ip: Optional[pulumi.Input[bool]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['InstanceConnectEndpointTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if preserve_client_ip is None and 'preserveClientIp' in kwargs: + preserve_client_ip = kwargs['preserveClientIp'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("subnet_id", subnet_id) if preserve_client_ip is not None: - pulumi.set(__self__, "preserve_client_ip", preserve_client_ip) + _setter("preserve_client_ip", preserve_client_ip) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="subnetId") @@ -127,35 +154,90 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The ID of the VPC in which the EC2 Instance Connect Endpoint was created. """ + _InstanceConnectEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zone=availability_zone, + dns_name=dns_name, + fips_dns_name=fips_dns_name, + network_interface_ids=network_interface_ids, + owner_id=owner_id, + preserve_client_ip=preserve_client_ip, + security_group_ids=security_group_ids, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + timeouts=timeouts, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + fips_dns_name: Optional[pulumi.Input[str]] = None, + network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + preserve_client_ip: Optional[pulumi.Input[bool]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['InstanceConnectEndpointTimeoutsArgs']] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if fips_dns_name is None and 'fipsDnsName' in kwargs: + fips_dns_name = kwargs['fipsDnsName'] + if network_interface_ids is None and 'networkInterfaceIds' in kwargs: + network_interface_ids = kwargs['networkInterfaceIds'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if preserve_client_ip is None and 'preserveClientIp' in kwargs: + preserve_client_ip = kwargs['preserveClientIp'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if fips_dns_name is not None: - pulumi.set(__self__, "fips_dns_name", fips_dns_name) + _setter("fips_dns_name", fips_dns_name) if network_interface_ids is not None: - pulumi.set(__self__, "network_interface_ids", network_interface_ids) + _setter("network_interface_ids", network_interface_ids) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if preserve_client_ip is not None: - pulumi.set(__self__, "preserve_client_ip", preserve_client_ip) + _setter("preserve_client_ip", preserve_client_ip) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -388,6 +470,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceConnectEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -413,6 +499,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'subnet_id'") __props__.__dict__["subnet_id"] = subnet_id __props__.__dict__["tags"] = tags + timeouts = _utilities.configure(timeouts, InstanceConnectEndpointTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts __props__.__dict__["arn"] = None __props__.__dict__["availability_zone"] = None diff --git a/sdk/python/pulumi_aws/ec2transitgateway/instance_state.py b/sdk/python/pulumi_aws/ec2transitgateway/instance_state.py index 594b79131c1..c90082b7b11 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/instance_state.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/instance_state.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InstanceStateArgs', 'InstanceState'] @@ -25,10 +25,31 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] force: Whether to request a forced stop when `state` is `stopped`. Otherwise (_i.e._, `state` is `running`), ignored. When an instance is forced to stop, it does not flush file system caches or file system metadata, and you must subsequently perform file system check and repair. Not recommended for Windows instances. Defaults to `false`. """ - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "state", state) + InstanceStateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_id=instance_id, + state=state, + force=force, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + force: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if state is None: + raise TypeError("Missing 'state' argument") + + _setter("instance_id", instance_id) + _setter("state", state) if force is not None: - pulumi.set(__self__, "force", force) + _setter("force", force) @property @pulumi.getter(name="instanceId") @@ -83,12 +104,29 @@ def __init__(__self__, *, The following arguments are optional: """ + _InstanceStateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + force=force, + instance_id=instance_id, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + force: Optional[pulumi.Input[bool]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if force is not None: - pulumi.set(__self__, "force", force) + _setter("force", force) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter @@ -246,6 +284,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceStateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/multicast_domain.py b/sdk/python/pulumi_aws/ec2transitgateway/multicast_domain.py index 6755ef345bb..6b0845e4fc5 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/multicast_domain.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/multicast_domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MulticastDomainArgs', 'MulticastDomain'] @@ -27,15 +27,44 @@ def __init__(__self__, *, :param pulumi.Input[str] static_sources_support: Whether to enable support for statically configuring multicast group sources for the EC2 Transit Gateway Multicast Domain. Valid values: `disable`, `enable`. Default value: `disable`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway Multicast Domain. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + MulticastDomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transit_gateway_id=transit_gateway_id, + auto_accept_shared_associations=auto_accept_shared_associations, + igmpv2_support=igmpv2_support, + static_sources_support=static_sources_support, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transit_gateway_id: Optional[pulumi.Input[str]] = None, + auto_accept_shared_associations: Optional[pulumi.Input[str]] = None, + igmpv2_support: Optional[pulumi.Input[str]] = None, + static_sources_support: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if auto_accept_shared_associations is None and 'autoAcceptSharedAssociations' in kwargs: + auto_accept_shared_associations = kwargs['autoAcceptSharedAssociations'] + if igmpv2_support is None and 'igmpv2Support' in kwargs: + igmpv2_support = kwargs['igmpv2Support'] + if static_sources_support is None and 'staticSourcesSupport' in kwargs: + static_sources_support = kwargs['staticSourcesSupport'] + + _setter("transit_gateway_id", transit_gateway_id) if auto_accept_shared_associations is not None: - pulumi.set(__self__, "auto_accept_shared_associations", auto_accept_shared_associations) + _setter("auto_accept_shared_associations", auto_accept_shared_associations) if igmpv2_support is not None: - pulumi.set(__self__, "igmpv2_support", igmpv2_support) + _setter("igmpv2_support", igmpv2_support) if static_sources_support is not None: - pulumi.set(__self__, "static_sources_support", static_sources_support) + _setter("static_sources_support", static_sources_support) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="transitGatewayId") @@ -120,25 +149,62 @@ def __init__(__self__, *, :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] transit_gateway_id: EC2 Transit Gateway identifier. The EC2 Transit Gateway must have `multicast_support` enabled. """ + _MulticastDomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_accept_shared_associations=auto_accept_shared_associations, + igmpv2_support=igmpv2_support, + owner_id=owner_id, + static_sources_support=static_sources_support, + tags=tags, + tags_all=tags_all, + transit_gateway_id=transit_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_accept_shared_associations: Optional[pulumi.Input[str]] = None, + igmpv2_support: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + static_sources_support: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_accept_shared_associations is None and 'autoAcceptSharedAssociations' in kwargs: + auto_accept_shared_associations = kwargs['autoAcceptSharedAssociations'] + if igmpv2_support is None and 'igmpv2Support' in kwargs: + igmpv2_support = kwargs['igmpv2Support'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if static_sources_support is None and 'staticSourcesSupport' in kwargs: + static_sources_support = kwargs['staticSourcesSupport'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_accept_shared_associations is not None: - pulumi.set(__self__, "auto_accept_shared_associations", auto_accept_shared_associations) + _setter("auto_accept_shared_associations", auto_accept_shared_associations) if igmpv2_support is not None: - pulumi.set(__self__, "igmpv2_support", igmpv2_support) + _setter("igmpv2_support", igmpv2_support) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if static_sources_support is not None: - pulumi.set(__self__, "static_sources_support", static_sources_support) + _setter("static_sources_support", static_sources_support) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) @property @pulumi.getter @@ -475,6 +541,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MulticastDomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/multicast_domain_association.py b/sdk/python/pulumi_aws/ec2transitgateway/multicast_domain_association.py index 1fa268c0f44..4a183965f73 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/multicast_domain_association.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/multicast_domain_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MulticastDomainAssociationArgs', 'MulticastDomainAssociation'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: The ID of the transit gateway attachment. :param pulumi.Input[str] transit_gateway_multicast_domain_id: The ID of the transit gateway multicast domain. """ - pulumi.set(__self__, "subnet_id", subnet_id) - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) - pulumi.set(__self__, "transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) + MulticastDomainAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_multicast_domain_id=transit_gateway_multicast_domain_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_multicast_domain_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_attachment_id is None: + raise TypeError("Missing 'transit_gateway_attachment_id' argument") + if transit_gateway_multicast_domain_id is None and 'transitGatewayMulticastDomainId' in kwargs: + transit_gateway_multicast_domain_id = kwargs['transitGatewayMulticastDomainId'] + if transit_gateway_multicast_domain_id is None: + raise TypeError("Missing 'transit_gateway_multicast_domain_id' argument") + + _setter("subnet_id", subnet_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) @property @pulumi.getter(name="subnetId") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: The ID of the transit gateway attachment. :param pulumi.Input[str] transit_gateway_multicast_domain_id: The ID of the transit gateway multicast domain. """ + _MulticastDomainAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_multicast_domain_id=transit_gateway_multicast_domain_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_multicast_domain_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_multicast_domain_id is None and 'transitGatewayMulticastDomainId' in kwargs: + transit_gateway_multicast_domain_id = kwargs['transitGatewayMulticastDomainId'] + if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_multicast_domain_id is not None: - pulumi.set(__self__, "transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) + _setter("transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) @property @pulumi.getter(name="subnetId") @@ -193,6 +241,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MulticastDomainAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/multicast_group_member.py b/sdk/python/pulumi_aws/ec2transitgateway/multicast_group_member.py index f7b217b090a..32e949e6146 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/multicast_group_member.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/multicast_group_member.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MulticastGroupMemberArgs', 'MulticastGroupMember'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] network_interface_id: The group members' network interface ID to register with the transit gateway multicast group. :param pulumi.Input[str] transit_gateway_multicast_domain_id: The ID of the transit gateway multicast domain. """ - pulumi.set(__self__, "group_ip_address", group_ip_address) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) + MulticastGroupMemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_ip_address=group_ip_address, + network_interface_id=network_interface_id, + transit_gateway_multicast_domain_id=transit_gateway_multicast_domain_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_ip_address: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + transit_gateway_multicast_domain_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_ip_address is None and 'groupIpAddress' in kwargs: + group_ip_address = kwargs['groupIpAddress'] + if group_ip_address is None: + raise TypeError("Missing 'group_ip_address' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if transit_gateway_multicast_domain_id is None and 'transitGatewayMulticastDomainId' in kwargs: + transit_gateway_multicast_domain_id = kwargs['transitGatewayMulticastDomainId'] + if transit_gateway_multicast_domain_id is None: + raise TypeError("Missing 'transit_gateway_multicast_domain_id' argument") + + _setter("group_ip_address", group_ip_address) + _setter("network_interface_id", network_interface_id) + _setter("transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) @property @pulumi.getter(name="groupIpAddress") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] network_interface_id: The group members' network interface ID to register with the transit gateway multicast group. :param pulumi.Input[str] transit_gateway_multicast_domain_id: The ID of the transit gateway multicast domain. """ + _MulticastGroupMemberState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_ip_address=group_ip_address, + network_interface_id=network_interface_id, + transit_gateway_multicast_domain_id=transit_gateway_multicast_domain_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_ip_address: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + transit_gateway_multicast_domain_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_ip_address is None and 'groupIpAddress' in kwargs: + group_ip_address = kwargs['groupIpAddress'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_multicast_domain_id is None and 'transitGatewayMulticastDomainId' in kwargs: + transit_gateway_multicast_domain_id = kwargs['transitGatewayMulticastDomainId'] + if group_ip_address is not None: - pulumi.set(__self__, "group_ip_address", group_ip_address) + _setter("group_ip_address", group_ip_address) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if transit_gateway_multicast_domain_id is not None: - pulumi.set(__self__, "transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) + _setter("transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) @property @pulumi.getter(name="groupIpAddress") @@ -183,6 +231,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MulticastGroupMemberArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/multicast_group_source.py b/sdk/python/pulumi_aws/ec2transitgateway/multicast_group_source.py index 74c86889999..e8cba3816ce 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/multicast_group_source.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/multicast_group_source.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MulticastGroupSourceArgs', 'MulticastGroupSource'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] network_interface_id: The group members' network interface ID to register with the transit gateway multicast group. :param pulumi.Input[str] transit_gateway_multicast_domain_id: The ID of the transit gateway multicast domain. """ - pulumi.set(__self__, "group_ip_address", group_ip_address) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) + MulticastGroupSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_ip_address=group_ip_address, + network_interface_id=network_interface_id, + transit_gateway_multicast_domain_id=transit_gateway_multicast_domain_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_ip_address: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + transit_gateway_multicast_domain_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_ip_address is None and 'groupIpAddress' in kwargs: + group_ip_address = kwargs['groupIpAddress'] + if group_ip_address is None: + raise TypeError("Missing 'group_ip_address' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if transit_gateway_multicast_domain_id is None and 'transitGatewayMulticastDomainId' in kwargs: + transit_gateway_multicast_domain_id = kwargs['transitGatewayMulticastDomainId'] + if transit_gateway_multicast_domain_id is None: + raise TypeError("Missing 'transit_gateway_multicast_domain_id' argument") + + _setter("group_ip_address", group_ip_address) + _setter("network_interface_id", network_interface_id) + _setter("transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) @property @pulumi.getter(name="groupIpAddress") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] network_interface_id: The group members' network interface ID to register with the transit gateway multicast group. :param pulumi.Input[str] transit_gateway_multicast_domain_id: The ID of the transit gateway multicast domain. """ + _MulticastGroupSourceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_ip_address=group_ip_address, + network_interface_id=network_interface_id, + transit_gateway_multicast_domain_id=transit_gateway_multicast_domain_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_ip_address: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + transit_gateway_multicast_domain_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_ip_address is None and 'groupIpAddress' in kwargs: + group_ip_address = kwargs['groupIpAddress'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if transit_gateway_multicast_domain_id is None and 'transitGatewayMulticastDomainId' in kwargs: + transit_gateway_multicast_domain_id = kwargs['transitGatewayMulticastDomainId'] + if group_ip_address is not None: - pulumi.set(__self__, "group_ip_address", group_ip_address) + _setter("group_ip_address", group_ip_address) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if transit_gateway_multicast_domain_id is not None: - pulumi.set(__self__, "transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) + _setter("transit_gateway_multicast_domain_id", transit_gateway_multicast_domain_id) @property @pulumi.getter(name="groupIpAddress") @@ -183,6 +231,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MulticastGroupSourceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/outputs.py b/sdk/python/pulumi_aws/ec2transitgateway/outputs.py index 1821b501a2e..41973f40293 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/outputs.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -37,10 +37,23 @@ class InstanceConnectEndpointTimeouts(dict): def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None): + InstanceConnectEndpointTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) @property @pulumi.getter @@ -62,8 +75,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by the [underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html). :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAttachmentFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -91,8 +121,25 @@ def __init__(__self__, *, :param str name: Name of the filter check available value on [official documentation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html) :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAttachmentsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -120,8 +167,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetConnectFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -149,8 +213,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetConnectPeerFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -178,8 +259,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeTransitGatewayAttachments API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetDirectConnectGatewayAttachmentFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -207,8 +305,29 @@ def __init__(__self__, *, :param str subnet_id: The ID of the subnet associated with the transit gateway multicast domain. :param str transit_gateway_attachment_id: The ID of the transit gateway attachment. """ - pulumi.set(__self__, "subnet_id", subnet_id) - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + GetMulticastDomainAssociationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + transit_gateway_attachment_id=transit_gateway_attachment_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[str] = None, + transit_gateway_attachment_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_attachment_id is None: + raise TypeError("Missing 'transit_gateway_attachment_id' argument") + + _setter("subnet_id", subnet_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) @property @pulumi.getter(name="subnetId") @@ -236,8 +355,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayMulticastDomains.html). :param Sequence[str] values: Set of values that are accepted for the given field. A multicast domain will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetMulticastDomainFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -265,8 +401,29 @@ def __init__(__self__, *, :param str group_ip_address: The IP address assigned to the transit gateway multicast group. :param str network_interface_id: The group members' network interface ID. """ - pulumi.set(__self__, "group_ip_address", group_ip_address) - pulumi.set(__self__, "network_interface_id", network_interface_id) + GetMulticastDomainMemberResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_ip_address=group_ip_address, + network_interface_id=network_interface_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_ip_address: Optional[str] = None, + network_interface_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_ip_address is None and 'groupIpAddress' in kwargs: + group_ip_address = kwargs['groupIpAddress'] + if group_ip_address is None: + raise TypeError("Missing 'group_ip_address' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + + _setter("group_ip_address", group_ip_address) + _setter("network_interface_id", network_interface_id) @property @pulumi.getter(name="groupIpAddress") @@ -294,8 +451,29 @@ def __init__(__self__, *, :param str group_ip_address: The IP address assigned to the transit gateway multicast group. :param str network_interface_id: The group members' network interface ID. """ - pulumi.set(__self__, "group_ip_address", group_ip_address) - pulumi.set(__self__, "network_interface_id", network_interface_id) + GetMulticastDomainSourceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_ip_address=group_ip_address, + network_interface_id=network_interface_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_ip_address: Optional[str] = None, + network_interface_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_ip_address is None and 'groupIpAddress' in kwargs: + group_ip_address = kwargs['groupIpAddress'] + if group_ip_address is None: + raise TypeError("Missing 'group_ip_address' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + + _setter("group_ip_address", group_ip_address) + _setter("network_interface_id", network_interface_id) @property @pulumi.getter(name="groupIpAddress") @@ -325,8 +503,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. An EC2 Transit Gateway Peering Attachment be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetPeeringAttachmentFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -358,8 +553,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Transit Gateway Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTableAssociationsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -389,8 +601,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTableFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -420,8 +649,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. A Transit Gateway Route Table will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTablePropagationsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -452,8 +698,25 @@ def __init__(__self__, *, [the underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayRoutes.html). :param Sequence[str] values: Set of values that are accepted for the given field. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRouteTableRoutesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -488,11 +751,46 @@ def __init__(__self__, *, :param str transit_gateway_route_table_announcement_id: The id of the transit gateway route table announcement, most of the time it is an empty string. :param str type: The type of the route, can be `propagated` or `static`. """ - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) - pulumi.set(__self__, "prefix_list_id", prefix_list_id) - pulumi.set(__self__, "state", state) - pulumi.set(__self__, "transit_gateway_route_table_announcement_id", transit_gateway_route_table_announcement_id) - pulumi.set(__self__, "type", type) + GetRouteTableRoutesRouteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr_block=destination_cidr_block, + prefix_list_id=prefix_list_id, + state=state, + transit_gateway_route_table_announcement_id=transit_gateway_route_table_announcement_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr_block: Optional[str] = None, + prefix_list_id: Optional[str] = None, + state: Optional[str] = None, + transit_gateway_route_table_announcement_id: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_cidr_block is None: + raise TypeError("Missing 'destination_cidr_block' argument") + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_id is None: + raise TypeError("Missing 'prefix_list_id' argument") + if state is None: + raise TypeError("Missing 'state' argument") + if transit_gateway_route_table_announcement_id is None and 'transitGatewayRouteTableAnnouncementId' in kwargs: + transit_gateway_route_table_announcement_id = kwargs['transitGatewayRouteTableAnnouncementId'] + if transit_gateway_route_table_announcement_id is None: + raise TypeError("Missing 'transit_gateway_route_table_announcement_id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("destination_cidr_block", destination_cidr_block) + _setter("prefix_list_id", prefix_list_id) + _setter("state", state) + _setter("transit_gateway_route_table_announcement_id", transit_gateway_route_table_announcement_id) + _setter("type", type) @property @pulumi.getter(name="destinationCidrBlock") @@ -544,8 +842,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by the [underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html). :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetTransitGatewayFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -573,8 +888,25 @@ def __init__(__self__, *, :param str name: Name of the filter. :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcAttachmentFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -602,8 +934,25 @@ def __init__(__self__, *, :param str name: Name of the filter check available value on [official documentation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayVpcAttachments.html) :param Sequence[str] values: List of one or more values for the filter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpcAttachmentsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -631,8 +980,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeTransitGatewayAttachments API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetVpnAttachmentFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ec2transitgateway/peering_attachment.py b/sdk/python/pulumi_aws/ec2transitgateway/peering_attachment.py index f4841e1b66c..149ec8383a4 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/peering_attachment.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/peering_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PeeringAttachmentArgs', 'PeeringAttachment'] @@ -27,13 +27,46 @@ def __init__(__self__, *, :param pulumi.Input[str] peer_account_id: Account ID of EC2 Transit Gateway to peer with. Defaults to the account ID the AWS provider is currently connected to. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway Peering Attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "peer_region", peer_region) - pulumi.set(__self__, "peer_transit_gateway_id", peer_transit_gateway_id) - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + PeeringAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + peer_region=peer_region, + peer_transit_gateway_id=peer_transit_gateway_id, + transit_gateway_id=transit_gateway_id, + peer_account_id=peer_account_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + peer_region: Optional[pulumi.Input[str]] = None, + peer_transit_gateway_id: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + peer_account_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if peer_region is None and 'peerRegion' in kwargs: + peer_region = kwargs['peerRegion'] + if peer_region is None: + raise TypeError("Missing 'peer_region' argument") + if peer_transit_gateway_id is None and 'peerTransitGatewayId' in kwargs: + peer_transit_gateway_id = kwargs['peerTransitGatewayId'] + if peer_transit_gateway_id is None: + raise TypeError("Missing 'peer_transit_gateway_id' argument") + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if peer_account_id is None and 'peerAccountId' in kwargs: + peer_account_id = kwargs['peerAccountId'] + + _setter("peer_region", peer_region) + _setter("peer_transit_gateway_id", peer_transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if peer_account_id is not None: - pulumi.set(__self__, "peer_account_id", peer_account_id) + _setter("peer_account_id", peer_account_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="peerRegion") @@ -114,21 +147,52 @@ def __init__(__self__, *, :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] transit_gateway_id: Identifier of EC2 Transit Gateway. """ + _PeeringAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + peer_account_id=peer_account_id, + peer_region=peer_region, + peer_transit_gateway_id=peer_transit_gateway_id, + tags=tags, + tags_all=tags_all, + transit_gateway_id=transit_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + peer_account_id: Optional[pulumi.Input[str]] = None, + peer_region: Optional[pulumi.Input[str]] = None, + peer_transit_gateway_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if peer_account_id is None and 'peerAccountId' in kwargs: + peer_account_id = kwargs['peerAccountId'] + if peer_region is None and 'peerRegion' in kwargs: + peer_region = kwargs['peerRegion'] + if peer_transit_gateway_id is None and 'peerTransitGatewayId' in kwargs: + peer_transit_gateway_id = kwargs['peerTransitGatewayId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if peer_account_id is not None: - pulumi.set(__self__, "peer_account_id", peer_account_id) + _setter("peer_account_id", peer_account_id) if peer_region is not None: - pulumi.set(__self__, "peer_region", peer_region) + _setter("peer_region", peer_region) if peer_transit_gateway_id is not None: - pulumi.set(__self__, "peer_transit_gateway_id", peer_transit_gateway_id) + _setter("peer_transit_gateway_id", peer_transit_gateway_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) @property @pulumi.getter(name="peerAccountId") @@ -319,6 +383,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PeeringAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/peering_attachment_accepter.py b/sdk/python/pulumi_aws/ec2transitgateway/peering_attachment_accepter.py index c5cdbc57ee2..67628768f2c 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/peering_attachment_accepter.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/peering_attachment_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PeeringAttachmentAccepterArgs', 'PeeringAttachmentAccepter'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: The ID of the EC2 Transit Gateway Peering Attachment to manage. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway Peering Attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + PeeringAttachmentAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transit_gateway_attachment_id=transit_gateway_attachment_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_attachment_id is None: + raise TypeError("Missing 'transit_gateway_attachment_id' argument") + + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="transitGatewayAttachmentId") @@ -69,23 +86,58 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: The ID of the EC2 Transit Gateway Peering Attachment to manage. :param pulumi.Input[str] transit_gateway_id: Identifier of EC2 Transit Gateway. """ + _PeeringAttachmentAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + peer_account_id=peer_account_id, + peer_region=peer_region, + peer_transit_gateway_id=peer_transit_gateway_id, + tags=tags, + tags_all=tags_all, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_id=transit_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + peer_account_id: Optional[pulumi.Input[str]] = None, + peer_region: Optional[pulumi.Input[str]] = None, + peer_transit_gateway_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if peer_account_id is None and 'peerAccountId' in kwargs: + peer_account_id = kwargs['peerAccountId'] + if peer_region is None and 'peerRegion' in kwargs: + peer_region = kwargs['peerRegion'] + if peer_transit_gateway_id is None and 'peerTransitGatewayId' in kwargs: + peer_transit_gateway_id = kwargs['peerTransitGatewayId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if peer_account_id is not None: - pulumi.set(__self__, "peer_account_id", peer_account_id) + _setter("peer_account_id", peer_account_id) if peer_region is not None: - pulumi.set(__self__, "peer_region", peer_region) + _setter("peer_region", peer_region) if peer_transit_gateway_id is not None: - pulumi.set(__self__, "peer_transit_gateway_id", peer_transit_gateway_id) + _setter("peer_transit_gateway_id", peer_transit_gateway_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) @property @pulumi.getter(name="peerAccountId") @@ -249,6 +301,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PeeringAttachmentAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/policy_table.py b/sdk/python/pulumi_aws/ec2transitgateway/policy_table.py index 511ff9d9018..ab995f673c0 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/policy_table.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/policy_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PolicyTableArgs', 'PolicyTable'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_id: EC2 Transit Gateway identifier. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway Policy Table. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + PolicyTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transit_gateway_id=transit_gateway_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transit_gateway_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + + _setter("transit_gateway_id", transit_gateway_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="transitGatewayId") @@ -66,19 +83,42 @@ def __init__(__self__, *, :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] transit_gateway_id: EC2 Transit Gateway identifier. """ + _PolicyTableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + state=state, + tags=tags, + tags_all=tags_all, + transit_gateway_id=transit_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) @property @pulumi.getter @@ -221,6 +261,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyTableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/policy_table_association.py b/sdk/python/pulumi_aws/ec2transitgateway/policy_table_association.py index 26fb0c0c2b7..f3509607c4e 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/policy_table_association.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/policy_table_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PolicyTableAssociationArgs', 'PolicyTableAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment. :param pulumi.Input[str] transit_gateway_policy_table_id: Identifier of EC2 Transit Gateway Policy Table. """ - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) - pulumi.set(__self__, "transit_gateway_policy_table_id", transit_gateway_policy_table_id) + PolicyTableAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_policy_table_id=transit_gateway_policy_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_policy_table_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_attachment_id is None: + raise TypeError("Missing 'transit_gateway_attachment_id' argument") + if transit_gateway_policy_table_id is None and 'transitGatewayPolicyTableId' in kwargs: + transit_gateway_policy_table_id = kwargs['transitGatewayPolicyTableId'] + if transit_gateway_policy_table_id is None: + raise TypeError("Missing 'transit_gateway_policy_table_id' argument") + + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_policy_table_id", transit_gateway_policy_table_id) @property @pulumi.getter(name="transitGatewayAttachmentId") @@ -63,14 +84,39 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment. :param pulumi.Input[str] transit_gateway_policy_table_id: Identifier of EC2 Transit Gateway Policy Table. """ + _PolicyTableAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_id=resource_id, + resource_type=resource_type, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_policy_table_id=transit_gateway_policy_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_id: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_policy_table_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_policy_table_id is None and 'transitGatewayPolicyTableId' in kwargs: + transit_gateway_policy_table_id = kwargs['transitGatewayPolicyTableId'] + if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_policy_table_id is not None: - pulumi.set(__self__, "transit_gateway_policy_table_id", transit_gateway_policy_table_id) + _setter("transit_gateway_policy_table_id", transit_gateway_policy_table_id) @property @pulumi.getter(name="resourceId") @@ -194,6 +240,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyTableAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/prefix_list_reference.py b/sdk/python/pulumi_aws/ec2transitgateway/prefix_list_reference.py index 2929cf4b90d..4d086956786 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/prefix_list_reference.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/prefix_list_reference.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PrefixListReferenceArgs', 'PrefixListReference'] @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[bool] blackhole: Indicates whether to drop traffic that matches the Prefix List. Defaults to `false`. :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment. """ - pulumi.set(__self__, "prefix_list_id", prefix_list_id) - pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + PrefixListReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix_list_id=prefix_list_id, + transit_gateway_route_table_id=transit_gateway_route_table_id, + blackhole=blackhole, + transit_gateway_attachment_id=transit_gateway_attachment_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix_list_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + blackhole: Optional[pulumi.Input[bool]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_id is None: + raise TypeError("Missing 'prefix_list_id' argument") + if transit_gateway_route_table_id is None and 'transitGatewayRouteTableId' in kwargs: + transit_gateway_route_table_id = kwargs['transitGatewayRouteTableId'] + if transit_gateway_route_table_id is None: + raise TypeError("Missing 'transit_gateway_route_table_id' argument") + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + + _setter("prefix_list_id", prefix_list_id) + _setter("transit_gateway_route_table_id", transit_gateway_route_table_id) if blackhole is not None: - pulumi.set(__self__, "blackhole", blackhole) + _setter("blackhole", blackhole) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) @property @pulumi.getter(name="prefixListId") @@ -102,16 +129,43 @@ def __init__(__self__, *, The following arguments are optional: """ + _PrefixListReferenceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + blackhole=blackhole, + prefix_list_id=prefix_list_id, + prefix_list_owner_id=prefix_list_owner_id, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_route_table_id=transit_gateway_route_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + blackhole: Optional[pulumi.Input[bool]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + prefix_list_owner_id: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if prefix_list_owner_id is None and 'prefixListOwnerId' in kwargs: + prefix_list_owner_id = kwargs['prefixListOwnerId'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_route_table_id is None and 'transitGatewayRouteTableId' in kwargs: + transit_gateway_route_table_id = kwargs['transitGatewayRouteTableId'] + if blackhole is not None: - pulumi.set(__self__, "blackhole", blackhole) + _setter("blackhole", blackhole) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if prefix_list_owner_id is not None: - pulumi.set(__self__, "prefix_list_owner_id", prefix_list_owner_id) + _setter("prefix_list_owner_id", prefix_list_owner_id) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_route_table_id is not None: - pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + _setter("transit_gateway_route_table_id", transit_gateway_route_table_id) @property @pulumi.getter @@ -278,6 +332,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PrefixListReferenceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/route.py b/sdk/python/pulumi_aws/ec2transitgateway/route.py index 28208f1dc8b..2341aed04d0 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/route.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/route.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RouteArgs', 'Route'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[bool] blackhole: Indicates whether to drop traffic that matches this route (default to `false`). :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment (required if `blackhole` is set to false). """ - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) - pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + RouteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_cidr_block=destination_cidr_block, + transit_gateway_route_table_id=transit_gateway_route_table_id, + blackhole=blackhole, + transit_gateway_attachment_id=transit_gateway_attachment_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_cidr_block: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + blackhole: Optional[pulumi.Input[bool]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if destination_cidr_block is None: + raise TypeError("Missing 'destination_cidr_block' argument") + if transit_gateway_route_table_id is None and 'transitGatewayRouteTableId' in kwargs: + transit_gateway_route_table_id = kwargs['transitGatewayRouteTableId'] + if transit_gateway_route_table_id is None: + raise TypeError("Missing 'transit_gateway_route_table_id' argument") + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + + _setter("destination_cidr_block", destination_cidr_block) + _setter("transit_gateway_route_table_id", transit_gateway_route_table_id) if blackhole is not None: - pulumi.set(__self__, "blackhole", blackhole) + _setter("blackhole", blackhole) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) @property @pulumi.getter(name="destinationCidrBlock") @@ -95,14 +122,37 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment (required if `blackhole` is set to false). :param pulumi.Input[str] transit_gateway_route_table_id: Identifier of EC2 Transit Gateway Route Table. """ + _RouteState._configure( + lambda key, value: pulumi.set(__self__, key, value), + blackhole=blackhole, + destination_cidr_block=destination_cidr_block, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_route_table_id=transit_gateway_route_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + blackhole: Optional[pulumi.Input[bool]] = None, + destination_cidr_block: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_cidr_block is None and 'destinationCidrBlock' in kwargs: + destination_cidr_block = kwargs['destinationCidrBlock'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_route_table_id is None and 'transitGatewayRouteTableId' in kwargs: + transit_gateway_route_table_id = kwargs['transitGatewayRouteTableId'] + if blackhole is not None: - pulumi.set(__self__, "blackhole", blackhole) + _setter("blackhole", blackhole) if destination_cidr_block is not None: - pulumi.set(__self__, "destination_cidr_block", destination_cidr_block) + _setter("destination_cidr_block", destination_cidr_block) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_route_table_id is not None: - pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + _setter("transit_gateway_route_table_id", transit_gateway_route_table_id) @property @pulumi.getter @@ -256,6 +306,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/route_table.py b/sdk/python/pulumi_aws/ec2transitgateway/route_table.py index f8895f361ab..90ea9ed5ac2 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/route_table.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/route_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RouteTableArgs', 'RouteTable'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_id: Identifier of EC2 Transit Gateway. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway Route Table. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + RouteTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transit_gateway_id=transit_gateway_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transit_gateway_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + + _setter("transit_gateway_id", transit_gateway_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="transitGatewayId") @@ -68,21 +85,50 @@ def __init__(__self__, *, :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] transit_gateway_id: Identifier of EC2 Transit Gateway. """ + _RouteTableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_association_route_table=default_association_route_table, + default_propagation_route_table=default_propagation_route_table, + tags=tags, + tags_all=tags_all, + transit_gateway_id=transit_gateway_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_association_route_table: Optional[pulumi.Input[bool]] = None, + default_propagation_route_table: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_association_route_table is None and 'defaultAssociationRouteTable' in kwargs: + default_association_route_table = kwargs['defaultAssociationRouteTable'] + if default_propagation_route_table is None and 'defaultPropagationRouteTable' in kwargs: + default_propagation_route_table = kwargs['defaultPropagationRouteTable'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_association_route_table is not None: - pulumi.set(__self__, "default_association_route_table", default_association_route_table) + _setter("default_association_route_table", default_association_route_table) if default_propagation_route_table is not None: - pulumi.set(__self__, "default_propagation_route_table", default_propagation_route_table) + _setter("default_propagation_route_table", default_propagation_route_table) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) @property @pulumi.getter @@ -229,6 +275,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteTableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/route_table_association.py b/sdk/python/pulumi_aws/ec2transitgateway/route_table_association.py index 9c094d4d8ba..5eb2001024b 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/route_table_association.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/route_table_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RouteTableAssociationArgs', 'RouteTableAssociation'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_route_table_id: Identifier of EC2 Transit Gateway Route Table. :param pulumi.Input[bool] replace_existing_association: Boolean whether the Gateway Attachment should remove any current Route Table association before associating with the specified Route Table. Default value: `false`. This argument is intended for use with EC2 Transit Gateways shared into the current account, otherwise the `transit_gateway_default_route_table_association` argument of the `ec2transitgateway.VpcAttachment` resource should be used. """ - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) - pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + RouteTableAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_route_table_id=transit_gateway_route_table_id, + replace_existing_association=replace_existing_association, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + replace_existing_association: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_attachment_id is None: + raise TypeError("Missing 'transit_gateway_attachment_id' argument") + if transit_gateway_route_table_id is None and 'transitGatewayRouteTableId' in kwargs: + transit_gateway_route_table_id = kwargs['transitGatewayRouteTableId'] + if transit_gateway_route_table_id is None: + raise TypeError("Missing 'transit_gateway_route_table_id' argument") + if replace_existing_association is None and 'replaceExistingAssociation' in kwargs: + replace_existing_association = kwargs['replaceExistingAssociation'] + + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_route_table_id", transit_gateway_route_table_id) if replace_existing_association is not None: - pulumi.set(__self__, "replace_existing_association", replace_existing_association) + _setter("replace_existing_association", replace_existing_association) @property @pulumi.getter(name="transitGatewayAttachmentId") @@ -81,16 +106,45 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment. :param pulumi.Input[str] transit_gateway_route_table_id: Identifier of EC2 Transit Gateway Route Table. """ + _RouteTableAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + replace_existing_association=replace_existing_association, + resource_id=resource_id, + resource_type=resource_type, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_route_table_id=transit_gateway_route_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replace_existing_association: Optional[pulumi.Input[bool]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replace_existing_association is None and 'replaceExistingAssociation' in kwargs: + replace_existing_association = kwargs['replaceExistingAssociation'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_route_table_id is None and 'transitGatewayRouteTableId' in kwargs: + transit_gateway_route_table_id = kwargs['transitGatewayRouteTableId'] + if replace_existing_association is not None: - pulumi.set(__self__, "replace_existing_association", replace_existing_association) + _setter("replace_existing_association", replace_existing_association) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_route_table_id is not None: - pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + _setter("transit_gateway_route_table_id", transit_gateway_route_table_id) @property @pulumi.getter(name="replaceExistingAssociation") @@ -228,6 +282,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteTableAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/route_table_propagation.py b/sdk/python/pulumi_aws/ec2transitgateway/route_table_propagation.py index abbe3cdc03d..178cf286258 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/route_table_propagation.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/route_table_propagation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RouteTablePropagationArgs', 'RouteTablePropagation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment. :param pulumi.Input[str] transit_gateway_route_table_id: Identifier of EC2 Transit Gateway Route Table. """ - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) - pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + RouteTablePropagationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_route_table_id=transit_gateway_route_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_attachment_id is None: + raise TypeError("Missing 'transit_gateway_attachment_id' argument") + if transit_gateway_route_table_id is None and 'transitGatewayRouteTableId' in kwargs: + transit_gateway_route_table_id = kwargs['transitGatewayRouteTableId'] + if transit_gateway_route_table_id is None: + raise TypeError("Missing 'transit_gateway_route_table_id' argument") + + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_route_table_id", transit_gateway_route_table_id) @property @pulumi.getter(name="transitGatewayAttachmentId") @@ -63,14 +84,39 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment. :param pulumi.Input[str] transit_gateway_route_table_id: Identifier of EC2 Transit Gateway Route Table. """ + _RouteTablePropagationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_id=resource_id, + resource_type=resource_type, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_route_table_id=transit_gateway_route_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_id: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_route_table_id is None and 'transitGatewayRouteTableId' in kwargs: + transit_gateway_route_table_id = kwargs['transitGatewayRouteTableId'] + if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_route_table_id is not None: - pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + _setter("transit_gateway_route_table_id", transit_gateway_route_table_id) @property @pulumi.getter(name="resourceId") @@ -194,6 +240,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteTablePropagationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/transit_gateway.py b/sdk/python/pulumi_aws/ec2transitgateway/transit_gateway.py index b27514d1e80..ea99a091363 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/transit_gateway.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/transit_gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TransitGatewayArgs', 'TransitGateway'] @@ -39,26 +39,71 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] transit_gateway_cidr_blocks: One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6. :param pulumi.Input[str] vpn_ecmp_support: Whether VPN Equal Cost Multipath Protocol support is enabled. Valid values: `disable`, `enable`. Default value: `enable`. """ + TransitGatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_side_asn=amazon_side_asn, + auto_accept_shared_attachments=auto_accept_shared_attachments, + default_route_table_association=default_route_table_association, + default_route_table_propagation=default_route_table_propagation, + description=description, + dns_support=dns_support, + multicast_support=multicast_support, + tags=tags, + transit_gateway_cidr_blocks=transit_gateway_cidr_blocks, + vpn_ecmp_support=vpn_ecmp_support, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_side_asn: Optional[pulumi.Input[int]] = None, + auto_accept_shared_attachments: Optional[pulumi.Input[str]] = None, + default_route_table_association: Optional[pulumi.Input[str]] = None, + default_route_table_propagation: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + dns_support: Optional[pulumi.Input[str]] = None, + multicast_support: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpn_ecmp_support: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if auto_accept_shared_attachments is None and 'autoAcceptSharedAttachments' in kwargs: + auto_accept_shared_attachments = kwargs['autoAcceptSharedAttachments'] + if default_route_table_association is None and 'defaultRouteTableAssociation' in kwargs: + default_route_table_association = kwargs['defaultRouteTableAssociation'] + if default_route_table_propagation is None and 'defaultRouteTablePropagation' in kwargs: + default_route_table_propagation = kwargs['defaultRouteTablePropagation'] + if dns_support is None and 'dnsSupport' in kwargs: + dns_support = kwargs['dnsSupport'] + if multicast_support is None and 'multicastSupport' in kwargs: + multicast_support = kwargs['multicastSupport'] + if transit_gateway_cidr_blocks is None and 'transitGatewayCidrBlocks' in kwargs: + transit_gateway_cidr_blocks = kwargs['transitGatewayCidrBlocks'] + if vpn_ecmp_support is None and 'vpnEcmpSupport' in kwargs: + vpn_ecmp_support = kwargs['vpnEcmpSupport'] + if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if auto_accept_shared_attachments is not None: - pulumi.set(__self__, "auto_accept_shared_attachments", auto_accept_shared_attachments) + _setter("auto_accept_shared_attachments", auto_accept_shared_attachments) if default_route_table_association is not None: - pulumi.set(__self__, "default_route_table_association", default_route_table_association) + _setter("default_route_table_association", default_route_table_association) if default_route_table_propagation is not None: - pulumi.set(__self__, "default_route_table_propagation", default_route_table_propagation) + _setter("default_route_table_propagation", default_route_table_propagation) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dns_support is not None: - pulumi.set(__self__, "dns_support", dns_support) + _setter("dns_support", dns_support) if multicast_support is not None: - pulumi.set(__self__, "multicast_support", multicast_support) + _setter("multicast_support", multicast_support) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transit_gateway_cidr_blocks is not None: - pulumi.set(__self__, "transit_gateway_cidr_blocks", transit_gateway_cidr_blocks) + _setter("transit_gateway_cidr_blocks", transit_gateway_cidr_blocks) if vpn_ecmp_support is not None: - pulumi.set(__self__, "vpn_ecmp_support", vpn_ecmp_support) + _setter("vpn_ecmp_support", vpn_ecmp_support) @property @pulumi.getter(name="amazonSideAsn") @@ -221,39 +266,102 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] transit_gateway_cidr_blocks: One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6. :param pulumi.Input[str] vpn_ecmp_support: Whether VPN Equal Cost Multipath Protocol support is enabled. Valid values: `disable`, `enable`. Default value: `enable`. """ + _TransitGatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_side_asn=amazon_side_asn, + arn=arn, + association_default_route_table_id=association_default_route_table_id, + auto_accept_shared_attachments=auto_accept_shared_attachments, + default_route_table_association=default_route_table_association, + default_route_table_propagation=default_route_table_propagation, + description=description, + dns_support=dns_support, + multicast_support=multicast_support, + owner_id=owner_id, + propagation_default_route_table_id=propagation_default_route_table_id, + tags=tags, + tags_all=tags_all, + transit_gateway_cidr_blocks=transit_gateway_cidr_blocks, + vpn_ecmp_support=vpn_ecmp_support, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_side_asn: Optional[pulumi.Input[int]] = None, + arn: Optional[pulumi.Input[str]] = None, + association_default_route_table_id: Optional[pulumi.Input[str]] = None, + auto_accept_shared_attachments: Optional[pulumi.Input[str]] = None, + default_route_table_association: Optional[pulumi.Input[str]] = None, + default_route_table_propagation: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + dns_support: Optional[pulumi.Input[str]] = None, + multicast_support: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + propagation_default_route_table_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpn_ecmp_support: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_side_asn is None and 'amazonSideAsn' in kwargs: + amazon_side_asn = kwargs['amazonSideAsn'] + if association_default_route_table_id is None and 'associationDefaultRouteTableId' in kwargs: + association_default_route_table_id = kwargs['associationDefaultRouteTableId'] + if auto_accept_shared_attachments is None and 'autoAcceptSharedAttachments' in kwargs: + auto_accept_shared_attachments = kwargs['autoAcceptSharedAttachments'] + if default_route_table_association is None and 'defaultRouteTableAssociation' in kwargs: + default_route_table_association = kwargs['defaultRouteTableAssociation'] + if default_route_table_propagation is None and 'defaultRouteTablePropagation' in kwargs: + default_route_table_propagation = kwargs['defaultRouteTablePropagation'] + if dns_support is None and 'dnsSupport' in kwargs: + dns_support = kwargs['dnsSupport'] + if multicast_support is None and 'multicastSupport' in kwargs: + multicast_support = kwargs['multicastSupport'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if propagation_default_route_table_id is None and 'propagationDefaultRouteTableId' in kwargs: + propagation_default_route_table_id = kwargs['propagationDefaultRouteTableId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_cidr_blocks is None and 'transitGatewayCidrBlocks' in kwargs: + transit_gateway_cidr_blocks = kwargs['transitGatewayCidrBlocks'] + if vpn_ecmp_support is None and 'vpnEcmpSupport' in kwargs: + vpn_ecmp_support = kwargs['vpnEcmpSupport'] + if amazon_side_asn is not None: - pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + _setter("amazon_side_asn", amazon_side_asn) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if association_default_route_table_id is not None: - pulumi.set(__self__, "association_default_route_table_id", association_default_route_table_id) + _setter("association_default_route_table_id", association_default_route_table_id) if auto_accept_shared_attachments is not None: - pulumi.set(__self__, "auto_accept_shared_attachments", auto_accept_shared_attachments) + _setter("auto_accept_shared_attachments", auto_accept_shared_attachments) if default_route_table_association is not None: - pulumi.set(__self__, "default_route_table_association", default_route_table_association) + _setter("default_route_table_association", default_route_table_association) if default_route_table_propagation is not None: - pulumi.set(__self__, "default_route_table_propagation", default_route_table_propagation) + _setter("default_route_table_propagation", default_route_table_propagation) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dns_support is not None: - pulumi.set(__self__, "dns_support", dns_support) + _setter("dns_support", dns_support) if multicast_support is not None: - pulumi.set(__self__, "multicast_support", multicast_support) + _setter("multicast_support", multicast_support) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if propagation_default_route_table_id is not None: - pulumi.set(__self__, "propagation_default_route_table_id", propagation_default_route_table_id) + _setter("propagation_default_route_table_id", propagation_default_route_table_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_cidr_blocks is not None: - pulumi.set(__self__, "transit_gateway_cidr_blocks", transit_gateway_cidr_blocks) + _setter("transit_gateway_cidr_blocks", transit_gateway_cidr_blocks) if vpn_ecmp_support is not None: - pulumi.set(__self__, "vpn_ecmp_support", vpn_ecmp_support) + _setter("vpn_ecmp_support", vpn_ecmp_support) @property @pulumi.getter(name="amazonSideAsn") @@ -528,6 +636,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TransitGatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment.py b/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment.py index d1e4accd096..1463cf1fa88 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcAttachmentArgs', 'VpcAttachment'] @@ -35,21 +35,70 @@ def __init__(__self__, *, :param pulumi.Input[bool] transit_gateway_default_route_table_association: Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`. :param pulumi.Input[bool] transit_gateway_default_route_table_propagation: Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) - pulumi.set(__self__, "vpc_id", vpc_id) + VpcAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + transit_gateway_id=transit_gateway_id, + vpc_id=vpc_id, + appliance_mode_support=appliance_mode_support, + dns_support=dns_support, + ipv6_support=ipv6_support, + tags=tags, + transit_gateway_default_route_table_association=transit_gateway_default_route_table_association, + transit_gateway_default_route_table_propagation=transit_gateway_default_route_table_propagation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + appliance_mode_support: Optional[pulumi.Input[str]] = None, + dns_support: Optional[pulumi.Input[str]] = None, + ipv6_support: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_default_route_table_association: Optional[pulumi.Input[bool]] = None, + transit_gateway_default_route_table_propagation: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if appliance_mode_support is None and 'applianceModeSupport' in kwargs: + appliance_mode_support = kwargs['applianceModeSupport'] + if dns_support is None and 'dnsSupport' in kwargs: + dns_support = kwargs['dnsSupport'] + if ipv6_support is None and 'ipv6Support' in kwargs: + ipv6_support = kwargs['ipv6Support'] + if transit_gateway_default_route_table_association is None and 'transitGatewayDefaultRouteTableAssociation' in kwargs: + transit_gateway_default_route_table_association = kwargs['transitGatewayDefaultRouteTableAssociation'] + if transit_gateway_default_route_table_propagation is None and 'transitGatewayDefaultRouteTablePropagation' in kwargs: + transit_gateway_default_route_table_propagation = kwargs['transitGatewayDefaultRouteTablePropagation'] + + _setter("subnet_ids", subnet_ids) + _setter("transit_gateway_id", transit_gateway_id) + _setter("vpc_id", vpc_id) if appliance_mode_support is not None: - pulumi.set(__self__, "appliance_mode_support", appliance_mode_support) + _setter("appliance_mode_support", appliance_mode_support) if dns_support is not None: - pulumi.set(__self__, "dns_support", dns_support) + _setter("dns_support", dns_support) if ipv6_support is not None: - pulumi.set(__self__, "ipv6_support", ipv6_support) + _setter("ipv6_support", ipv6_support) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transit_gateway_default_route_table_association is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) + _setter("transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) if transit_gateway_default_route_table_propagation is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) + _setter("transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) @property @pulumi.getter(name="subnetIds") @@ -188,31 +237,82 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: Identifier of EC2 VPC. :param pulumi.Input[str] vpc_owner_id: Identifier of the AWS account that owns the EC2 VPC. """ + _VpcAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + appliance_mode_support=appliance_mode_support, + dns_support=dns_support, + ipv6_support=ipv6_support, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + transit_gateway_default_route_table_association=transit_gateway_default_route_table_association, + transit_gateway_default_route_table_propagation=transit_gateway_default_route_table_propagation, + transit_gateway_id=transit_gateway_id, + vpc_id=vpc_id, + vpc_owner_id=vpc_owner_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + appliance_mode_support: Optional[pulumi.Input[str]] = None, + dns_support: Optional[pulumi.Input[str]] = None, + ipv6_support: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_default_route_table_association: Optional[pulumi.Input[bool]] = None, + transit_gateway_default_route_table_propagation: Optional[pulumi.Input[bool]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + vpc_owner_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if appliance_mode_support is None and 'applianceModeSupport' in kwargs: + appliance_mode_support = kwargs['applianceModeSupport'] + if dns_support is None and 'dnsSupport' in kwargs: + dns_support = kwargs['dnsSupport'] + if ipv6_support is None and 'ipv6Support' in kwargs: + ipv6_support = kwargs['ipv6Support'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_default_route_table_association is None and 'transitGatewayDefaultRouteTableAssociation' in kwargs: + transit_gateway_default_route_table_association = kwargs['transitGatewayDefaultRouteTableAssociation'] + if transit_gateway_default_route_table_propagation is None and 'transitGatewayDefaultRouteTablePropagation' in kwargs: + transit_gateway_default_route_table_propagation = kwargs['transitGatewayDefaultRouteTablePropagation'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_owner_id is None and 'vpcOwnerId' in kwargs: + vpc_owner_id = kwargs['vpcOwnerId'] + if appliance_mode_support is not None: - pulumi.set(__self__, "appliance_mode_support", appliance_mode_support) + _setter("appliance_mode_support", appliance_mode_support) if dns_support is not None: - pulumi.set(__self__, "dns_support", dns_support) + _setter("dns_support", dns_support) if ipv6_support is not None: - pulumi.set(__self__, "ipv6_support", ipv6_support) + _setter("ipv6_support", ipv6_support) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_default_route_table_association is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) + _setter("transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) if transit_gateway_default_route_table_propagation is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) + _setter("transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if vpc_owner_id is not None: - pulumi.set(__self__, "vpc_owner_id", vpc_owner_id) + _setter("vpc_owner_id", vpc_owner_id) @property @pulumi.getter(name="applianceModeSupport") @@ -439,6 +539,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment_accepter.py b/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment_accepter.py index 78c5b4489a9..7354616a354 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment_accepter.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcAttachmentAccepterArgs', 'VpcAttachmentAccepter'] @@ -25,13 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[bool] transit_gateway_default_route_table_association: Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. Default value: `true`. :param pulumi.Input[bool] transit_gateway_default_route_table_propagation: Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. Default value: `true`. """ - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + VpcAttachmentAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transit_gateway_attachment_id=transit_gateway_attachment_id, + tags=tags, + transit_gateway_default_route_table_association=transit_gateway_default_route_table_association, + transit_gateway_default_route_table_propagation=transit_gateway_default_route_table_propagation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_default_route_table_association: Optional[pulumi.Input[bool]] = None, + transit_gateway_default_route_table_propagation: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_attachment_id is None: + raise TypeError("Missing 'transit_gateway_attachment_id' argument") + if transit_gateway_default_route_table_association is None and 'transitGatewayDefaultRouteTableAssociation' in kwargs: + transit_gateway_default_route_table_association = kwargs['transitGatewayDefaultRouteTableAssociation'] + if transit_gateway_default_route_table_propagation is None and 'transitGatewayDefaultRouteTablePropagation' in kwargs: + transit_gateway_default_route_table_propagation = kwargs['transitGatewayDefaultRouteTablePropagation'] + + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transit_gateway_default_route_table_association is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) + _setter("transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) if transit_gateway_default_route_table_propagation is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) + _setter("transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) @property @pulumi.getter(name="transitGatewayAttachmentId") @@ -112,33 +137,88 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: Identifier of EC2 VPC. :param pulumi.Input[str] vpc_owner_id: Identifier of the AWS account that owns the EC2 VPC. """ + _VpcAttachmentAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + appliance_mode_support=appliance_mode_support, + dns_support=dns_support, + ipv6_support=ipv6_support, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + transit_gateway_attachment_id=transit_gateway_attachment_id, + transit_gateway_default_route_table_association=transit_gateway_default_route_table_association, + transit_gateway_default_route_table_propagation=transit_gateway_default_route_table_propagation, + transit_gateway_id=transit_gateway_id, + vpc_id=vpc_id, + vpc_owner_id=vpc_owner_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + appliance_mode_support: Optional[pulumi.Input[str]] = None, + dns_support: Optional[pulumi.Input[str]] = None, + ipv6_support: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_attachment_id: Optional[pulumi.Input[str]] = None, + transit_gateway_default_route_table_association: Optional[pulumi.Input[bool]] = None, + transit_gateway_default_route_table_propagation: Optional[pulumi.Input[bool]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + vpc_owner_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if appliance_mode_support is None and 'applianceModeSupport' in kwargs: + appliance_mode_support = kwargs['applianceModeSupport'] + if dns_support is None and 'dnsSupport' in kwargs: + dns_support = kwargs['dnsSupport'] + if ipv6_support is None and 'ipv6Support' in kwargs: + ipv6_support = kwargs['ipv6Support'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_attachment_id is None and 'transitGatewayAttachmentId' in kwargs: + transit_gateway_attachment_id = kwargs['transitGatewayAttachmentId'] + if transit_gateway_default_route_table_association is None and 'transitGatewayDefaultRouteTableAssociation' in kwargs: + transit_gateway_default_route_table_association = kwargs['transitGatewayDefaultRouteTableAssociation'] + if transit_gateway_default_route_table_propagation is None and 'transitGatewayDefaultRouteTablePropagation' in kwargs: + transit_gateway_default_route_table_propagation = kwargs['transitGatewayDefaultRouteTablePropagation'] + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_owner_id is None and 'vpcOwnerId' in kwargs: + vpc_owner_id = kwargs['vpcOwnerId'] + if appliance_mode_support is not None: - pulumi.set(__self__, "appliance_mode_support", appliance_mode_support) + _setter("appliance_mode_support", appliance_mode_support) if dns_support is not None: - pulumi.set(__self__, "dns_support", dns_support) + _setter("dns_support", dns_support) if ipv6_support is not None: - pulumi.set(__self__, "ipv6_support", ipv6_support) + _setter("ipv6_support", ipv6_support) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) + _setter("transit_gateway_attachment_id", transit_gateway_attachment_id) if transit_gateway_default_route_table_association is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) + _setter("transit_gateway_default_route_table_association", transit_gateway_default_route_table_association) if transit_gateway_default_route_table_propagation is not None: - pulumi.set(__self__, "transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) + _setter("transit_gateway_default_route_table_propagation", transit_gateway_default_route_table_propagation) if transit_gateway_id is not None: - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + _setter("transit_gateway_id", transit_gateway_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if vpc_owner_id is not None: - pulumi.set(__self__, "vpc_owner_id", vpc_owner_id) + _setter("vpc_owner_id", vpc_owner_id) @property @pulumi.getter(name="applianceModeSupport") @@ -381,6 +461,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcAttachmentAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecr/_inputs.py b/sdk/python/pulumi_aws/ecr/_inputs.py index 46758cda99f..e2afb3e990b 100644 --- a/sdk/python/pulumi_aws/ecr/_inputs.py +++ b/sdk/python/pulumi_aws/ecr/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,8 +29,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RegistryScanningConfigurationRuleRepositoryFilterArgs']]] repository_filters: One or more repository filter blocks, containing a `filter` (required string filtering repositories, see pattern regex [here](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_ScanningRepositoryFilter.html)) and a `filter_type` (required string, currently only `WILDCARD` is supported). :param pulumi.Input[str] scan_frequency: The frequency that scans are performed at for a private registry. Can be `SCAN_ON_PUSH`, `CONTINUOUS_SCAN`, or `MANUAL`. """ - pulumi.set(__self__, "repository_filters", repository_filters) - pulumi.set(__self__, "scan_frequency", scan_frequency) + RegistryScanningConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_filters=repository_filters, + scan_frequency=scan_frequency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_filters: Optional[pulumi.Input[Sequence[pulumi.Input['RegistryScanningConfigurationRuleRepositoryFilterArgs']]]] = None, + scan_frequency: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_filters is None and 'repositoryFilters' in kwargs: + repository_filters = kwargs['repositoryFilters'] + if repository_filters is None: + raise TypeError("Missing 'repository_filters' argument") + if scan_frequency is None and 'scanFrequency' in kwargs: + scan_frequency = kwargs['scanFrequency'] + if scan_frequency is None: + raise TypeError("Missing 'scan_frequency' argument") + + _setter("repository_filters", repository_filters) + _setter("scan_frequency", scan_frequency) @property @pulumi.getter(name="repositoryFilters") @@ -62,8 +83,27 @@ class RegistryScanningConfigurationRuleRepositoryFilterArgs: def __init__(__self__, *, filter: pulumi.Input[str], filter_type: pulumi.Input[str]): - pulumi.set(__self__, "filter", filter) - pulumi.set(__self__, "filter_type", filter_type) + RegistryScanningConfigurationRuleRepositoryFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter=filter, + filter_type=filter_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter: Optional[pulumi.Input[str]] = None, + filter_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter is None: + raise TypeError("Missing 'filter' argument") + if filter_type is None and 'filterType' in kwargs: + filter_type = kwargs['filterType'] + if filter_type is None: + raise TypeError("Missing 'filter_type' argument") + + _setter("filter", filter) + _setter("filter_type", filter_type) @property @pulumi.getter @@ -91,7 +131,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ReplicationConfigurationReplicationConfigurationRuleArgs']]] rules: The replication rules for a replication configuration. A maximum of 10 are allowed per `replication_configuration`. See Rule """ - pulumi.set(__self__, "rules", rules) + ReplicationConfigurationReplicationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules: Optional[pulumi.Input[Sequence[pulumi.Input['ReplicationConfigurationReplicationConfigurationRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("rules", rules) @property @pulumi.getter @@ -115,9 +168,26 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ReplicationConfigurationReplicationConfigurationRuleDestinationArgs']]] destinations: the details of a replication destination. A maximum of 25 are allowed per `rule`. See Destination. :param pulumi.Input[Sequence[pulumi.Input['ReplicationConfigurationReplicationConfigurationRuleRepositoryFilterArgs']]] repository_filters: filters for a replication rule. See Repository Filter. """ - pulumi.set(__self__, "destinations", destinations) + ReplicationConfigurationReplicationConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destinations=destinations, + repository_filters=repository_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destinations: Optional[pulumi.Input[Sequence[pulumi.Input['ReplicationConfigurationReplicationConfigurationRuleDestinationArgs']]]] = None, + repository_filters: Optional[pulumi.Input[Sequence[pulumi.Input['ReplicationConfigurationReplicationConfigurationRuleRepositoryFilterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destinations is None: + raise TypeError("Missing 'destinations' argument") + if repository_filters is None and 'repositoryFilters' in kwargs: + repository_filters = kwargs['repositoryFilters'] + + _setter("destinations", destinations) if repository_filters is not None: - pulumi.set(__self__, "repository_filters", repository_filters) + _setter("repository_filters", repository_filters) @property @pulumi.getter @@ -153,8 +223,27 @@ def __init__(__self__, *, :param pulumi.Input[str] region: A Region to replicate to. :param pulumi.Input[str] registry_id: The account ID of the destination registry to replicate to. """ - pulumi.set(__self__, "region", region) - pulumi.set(__self__, "registry_id", registry_id) + ReplicationConfigurationReplicationConfigurationRuleDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + region=region, + registry_id=registry_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region: Optional[pulumi.Input[str]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region is None: + raise TypeError("Missing 'region' argument") + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if registry_id is None: + raise TypeError("Missing 'registry_id' argument") + + _setter("region", region) + _setter("registry_id", registry_id) @property @pulumi.getter @@ -190,8 +279,27 @@ def __init__(__self__, *, :param pulumi.Input[str] filter: The repository filter details. :param pulumi.Input[str] filter_type: The repository filter type. The only supported value is `PREFIX_MATCH`, which is a repository name prefix specified with the filter parameter. """ - pulumi.set(__self__, "filter", filter) - pulumi.set(__self__, "filter_type", filter_type) + ReplicationConfigurationReplicationConfigurationRuleRepositoryFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter=filter, + filter_type=filter_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter: Optional[pulumi.Input[str]] = None, + filter_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter is None: + raise TypeError("Missing 'filter' argument") + if filter_type is None and 'filterType' in kwargs: + filter_type = kwargs['filterType'] + if filter_type is None: + raise TypeError("Missing 'filter_type' argument") + + _setter("filter", filter) + _setter("filter_type", filter_type) @property @pulumi.getter @@ -227,10 +335,27 @@ def __init__(__self__, *, :param pulumi.Input[str] encryption_type: The encryption type to use for the repository. Valid values are `AES256` or `KMS`. Defaults to `AES256`. :param pulumi.Input[str] kms_key: The ARN of the KMS key to use when `encryption_type` is `KMS`. If not specified, uses the default AWS managed key for ECR. """ + RepositoryEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + kms_key=kms_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[pulumi.Input[str]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if encryption_type is not None: - pulumi.set(__self__, "encryption_type", encryption_type) + _setter("encryption_type", encryption_type) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) @property @pulumi.getter(name="encryptionType") @@ -264,7 +389,22 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] scan_on_push: Indicates whether images are scanned after being pushed to the repository (true) or not scanned (false). """ - pulumi.set(__self__, "scan_on_push", scan_on_push) + RepositoryImageScanningConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + scan_on_push=scan_on_push, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scan_on_push: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scan_on_push is None and 'scanOnPush' in kwargs: + scan_on_push = kwargs['scanOnPush'] + if scan_on_push is None: + raise TypeError("Missing 'scan_on_push' argument") + + _setter("scan_on_push", scan_on_push) @property @pulumi.getter(name="scanOnPush") diff --git a/sdk/python/pulumi_aws/ecr/get_authorization_token.py b/sdk/python/pulumi_aws/ecr/get_authorization_token.py index 02dba9eaf67..ba4b1310d8e 100644 --- a/sdk/python/pulumi_aws/ecr/get_authorization_token.py +++ b/sdk/python/pulumi_aws/ecr/get_authorization_token.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ecr/get_credentials.py b/sdk/python/pulumi_aws/ecr/get_credentials.py index 74407269b18..9b043648464 100644 --- a/sdk/python/pulumi_aws/ecr/get_credentials.py +++ b/sdk/python/pulumi_aws/ecr/get_credentials.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ecr/get_image.py b/sdk/python/pulumi_aws/ecr/get_image.py index f3214b03989..2daee642239 100644 --- a/sdk/python/pulumi_aws/ecr/get_image.py +++ b/sdk/python/pulumi_aws/ecr/get_image.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ecr/get_pull_through_cache_rule.py b/sdk/python/pulumi_aws/ecr/get_pull_through_cache_rule.py index 2f37155c092..b35357b1345 100644 --- a/sdk/python/pulumi_aws/ecr/get_pull_through_cache_rule.py +++ b/sdk/python/pulumi_aws/ecr/get_pull_through_cache_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ecr/get_repository.py b/sdk/python/pulumi_aws/ecr/get_repository.py index 9509b096c50..4885ff6eea9 100644 --- a/sdk/python/pulumi_aws/ecr/get_repository.py +++ b/sdk/python/pulumi_aws/ecr/get_repository.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ecr/lifecycle_policy.py b/sdk/python/pulumi_aws/ecr/lifecycle_policy.py index 428126ced77..fd485de47be 100644 --- a/sdk/python/pulumi_aws/ecr/lifecycle_policy.py +++ b/sdk/python/pulumi_aws/ecr/lifecycle_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LifecyclePolicyArgs', 'LifecyclePolicy'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. See more details about [Policy Parameters](http://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html#lifecycle_policy_parameters) in the official AWS docs. :param pulumi.Input[str] repository: Name of the repository to apply the policy. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "repository", repository) + LifecyclePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + repository=repository, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + repository: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if repository is None: + raise TypeError("Missing 'repository' argument") + + _setter("policy", policy) + _setter("repository", repository) @property @pulumi.getter @@ -61,12 +78,29 @@ def __init__(__self__, *, :param pulumi.Input[str] registry_id: The registry ID where the repository was created. :param pulumi.Input[str] repository: Name of the repository to apply the policy. """ + _LifecyclePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + registry_id=registry_id, + repository=repository, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + repository: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if registry_id is not None: - pulumi.set(__self__, "registry_id", registry_id) + _setter("registry_id", registry_id) if repository is not None: - pulumi.set(__self__, "repository", repository) + _setter("repository", repository) @property @pulumi.getter @@ -280,6 +314,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LifecyclePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecr/outputs.py b/sdk/python/pulumi_aws/ecr/outputs.py index 440d0fc53ef..49cc958f539 100644 --- a/sdk/python/pulumi_aws/ecr/outputs.py +++ b/sdk/python/pulumi_aws/ecr/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -51,8 +51,29 @@ def __init__(__self__, *, :param Sequence['RegistryScanningConfigurationRuleRepositoryFilterArgs'] repository_filters: One or more repository filter blocks, containing a `filter` (required string filtering repositories, see pattern regex [here](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_ScanningRepositoryFilter.html)) and a `filter_type` (required string, currently only `WILDCARD` is supported). :param str scan_frequency: The frequency that scans are performed at for a private registry. Can be `SCAN_ON_PUSH`, `CONTINUOUS_SCAN`, or `MANUAL`. """ - pulumi.set(__self__, "repository_filters", repository_filters) - pulumi.set(__self__, "scan_frequency", scan_frequency) + RegistryScanningConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_filters=repository_filters, + scan_frequency=scan_frequency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_filters: Optional[Sequence['outputs.RegistryScanningConfigurationRuleRepositoryFilter']] = None, + scan_frequency: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_filters is None and 'repositoryFilters' in kwargs: + repository_filters = kwargs['repositoryFilters'] + if repository_filters is None: + raise TypeError("Missing 'repository_filters' argument") + if scan_frequency is None and 'scanFrequency' in kwargs: + scan_frequency = kwargs['scanFrequency'] + if scan_frequency is None: + raise TypeError("Missing 'scan_frequency' argument") + + _setter("repository_filters", repository_filters) + _setter("scan_frequency", scan_frequency) @property @pulumi.getter(name="repositoryFilters") @@ -93,8 +114,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, filter: str, filter_type: str): - pulumi.set(__self__, "filter", filter) - pulumi.set(__self__, "filter_type", filter_type) + RegistryScanningConfigurationRuleRepositoryFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter=filter, + filter_type=filter_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter: Optional[str] = None, + filter_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter is None: + raise TypeError("Missing 'filter' argument") + if filter_type is None and 'filterType' in kwargs: + filter_type = kwargs['filterType'] + if filter_type is None: + raise TypeError("Missing 'filter_type' argument") + + _setter("filter", filter) + _setter("filter_type", filter_type) @property @pulumi.getter @@ -114,7 +154,20 @@ def __init__(__self__, *, """ :param Sequence['ReplicationConfigurationReplicationConfigurationRuleArgs'] rules: The replication rules for a replication configuration. A maximum of 10 are allowed per `replication_configuration`. See Rule """ - pulumi.set(__self__, "rules", rules) + ReplicationConfigurationReplicationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules: Optional[Sequence['outputs.ReplicationConfigurationReplicationConfigurationRule']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("rules", rules) @property @pulumi.getter @@ -151,9 +204,26 @@ def __init__(__self__, *, :param Sequence['ReplicationConfigurationReplicationConfigurationRuleDestinationArgs'] destinations: the details of a replication destination. A maximum of 25 are allowed per `rule`. See Destination. :param Sequence['ReplicationConfigurationReplicationConfigurationRuleRepositoryFilterArgs'] repository_filters: filters for a replication rule. See Repository Filter. """ - pulumi.set(__self__, "destinations", destinations) + ReplicationConfigurationReplicationConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + destinations=destinations, + repository_filters=repository_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destinations: Optional[Sequence['outputs.ReplicationConfigurationReplicationConfigurationRuleDestination']] = None, + repository_filters: Optional[Sequence['outputs.ReplicationConfigurationReplicationConfigurationRuleRepositoryFilter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destinations is None: + raise TypeError("Missing 'destinations' argument") + if repository_filters is None and 'repositoryFilters' in kwargs: + repository_filters = kwargs['repositoryFilters'] + + _setter("destinations", destinations) if repository_filters is not None: - pulumi.set(__self__, "repository_filters", repository_filters) + _setter("repository_filters", repository_filters) @property @pulumi.getter @@ -198,8 +268,27 @@ def __init__(__self__, *, :param str region: A Region to replicate to. :param str registry_id: The account ID of the destination registry to replicate to. """ - pulumi.set(__self__, "region", region) - pulumi.set(__self__, "registry_id", registry_id) + ReplicationConfigurationReplicationConfigurationRuleDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + region=region, + registry_id=registry_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region: Optional[str] = None, + registry_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region is None: + raise TypeError("Missing 'region' argument") + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if registry_id is None: + raise TypeError("Missing 'registry_id' argument") + + _setter("region", region) + _setter("registry_id", registry_id) @property @pulumi.getter @@ -244,8 +333,27 @@ def __init__(__self__, *, :param str filter: The repository filter details. :param str filter_type: The repository filter type. The only supported value is `PREFIX_MATCH`, which is a repository name prefix specified with the filter parameter. """ - pulumi.set(__self__, "filter", filter) - pulumi.set(__self__, "filter_type", filter_type) + ReplicationConfigurationReplicationConfigurationRuleRepositoryFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter=filter, + filter_type=filter_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter: Optional[str] = None, + filter_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter is None: + raise TypeError("Missing 'filter' argument") + if filter_type is None and 'filterType' in kwargs: + filter_type = kwargs['filterType'] + if filter_type is None: + raise TypeError("Missing 'filter_type' argument") + + _setter("filter", filter) + _setter("filter_type", filter_type) @property @pulumi.getter @@ -292,10 +400,27 @@ def __init__(__self__, *, :param str encryption_type: The encryption type to use for the repository. Valid values are `AES256` or `KMS`. Defaults to `AES256`. :param str kms_key: The ARN of the KMS key to use when `encryption_type` is `KMS`. If not specified, uses the default AWS managed key for ECR. """ + RepositoryEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + kms_key=kms_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[str] = None, + kms_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if encryption_type is not None: - pulumi.set(__self__, "encryption_type", encryption_type) + _setter("encryption_type", encryption_type) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) @property @pulumi.getter(name="encryptionType") @@ -338,7 +463,22 @@ def __init__(__self__, *, """ :param bool scan_on_push: Indicates whether images are scanned after being pushed to the repository (true) or not scanned (false). """ - pulumi.set(__self__, "scan_on_push", scan_on_push) + RepositoryImageScanningConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + scan_on_push=scan_on_push, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scan_on_push: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scan_on_push is None and 'scanOnPush' in kwargs: + scan_on_push = kwargs['scanOnPush'] + if scan_on_push is None: + raise TypeError("Missing 'scan_on_push' argument") + + _setter("scan_on_push", scan_on_push) @property @pulumi.getter(name="scanOnPush") @@ -358,8 +498,29 @@ def __init__(__self__, *, :param str encryption_type: Encryption type to use for the repository, either `AES256` or `KMS`. :param str kms_key: If `encryption_type` is `KMS`, the ARN of the KMS key used. """ - pulumi.set(__self__, "encryption_type", encryption_type) - pulumi.set(__self__, "kms_key", kms_key) + GetRepositoryEncryptionConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + kms_key=kms_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[str] = None, + kms_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if encryption_type is None: + raise TypeError("Missing 'encryption_type' argument") + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if kms_key is None: + raise TypeError("Missing 'kms_key' argument") + + _setter("encryption_type", encryption_type) + _setter("kms_key", kms_key) @property @pulumi.getter(name="encryptionType") @@ -385,7 +546,22 @@ def __init__(__self__, *, """ :param bool scan_on_push: Whether images are scanned after being pushed to the repository. """ - pulumi.set(__self__, "scan_on_push", scan_on_push) + GetRepositoryImageScanningConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + scan_on_push=scan_on_push, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scan_on_push: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scan_on_push is None and 'scanOnPush' in kwargs: + scan_on_push = kwargs['scanOnPush'] + if scan_on_push is None: + raise TypeError("Missing 'scan_on_push' argument") + + _setter("scan_on_push", scan_on_push) @property @pulumi.getter(name="scanOnPush") diff --git a/sdk/python/pulumi_aws/ecr/pull_through_cache_rule.py b/sdk/python/pulumi_aws/ecr/pull_through_cache_rule.py index a96ef58da45..d881e9a3616 100644 --- a/sdk/python/pulumi_aws/ecr/pull_through_cache_rule.py +++ b/sdk/python/pulumi_aws/ecr/pull_through_cache_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PullThroughCacheRuleArgs', 'PullThroughCacheRule'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] ecr_repository_prefix: The repository name prefix to use when caching images from the source registry. :param pulumi.Input[str] upstream_registry_url: The registry URL of the upstream public registry to use as the source. """ - pulumi.set(__self__, "ecr_repository_prefix", ecr_repository_prefix) - pulumi.set(__self__, "upstream_registry_url", upstream_registry_url) + PullThroughCacheRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ecr_repository_prefix=ecr_repository_prefix, + upstream_registry_url=upstream_registry_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ecr_repository_prefix: Optional[pulumi.Input[str]] = None, + upstream_registry_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ecr_repository_prefix is None and 'ecrRepositoryPrefix' in kwargs: + ecr_repository_prefix = kwargs['ecrRepositoryPrefix'] + if ecr_repository_prefix is None: + raise TypeError("Missing 'ecr_repository_prefix' argument") + if upstream_registry_url is None and 'upstreamRegistryUrl' in kwargs: + upstream_registry_url = kwargs['upstreamRegistryUrl'] + if upstream_registry_url is None: + raise TypeError("Missing 'upstream_registry_url' argument") + + _setter("ecr_repository_prefix", ecr_repository_prefix) + _setter("upstream_registry_url", upstream_registry_url) @property @pulumi.getter(name="ecrRepositoryPrefix") @@ -61,12 +82,33 @@ def __init__(__self__, *, :param pulumi.Input[str] registry_id: The registry ID where the repository was created. :param pulumi.Input[str] upstream_registry_url: The registry URL of the upstream public registry to use as the source. """ + _PullThroughCacheRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + ecr_repository_prefix=ecr_repository_prefix, + registry_id=registry_id, + upstream_registry_url=upstream_registry_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ecr_repository_prefix: Optional[pulumi.Input[str]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + upstream_registry_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ecr_repository_prefix is None and 'ecrRepositoryPrefix' in kwargs: + ecr_repository_prefix = kwargs['ecrRepositoryPrefix'] + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if upstream_registry_url is None and 'upstreamRegistryUrl' in kwargs: + upstream_registry_url = kwargs['upstreamRegistryUrl'] + if ecr_repository_prefix is not None: - pulumi.set(__self__, "ecr_repository_prefix", ecr_repository_prefix) + _setter("ecr_repository_prefix", ecr_repository_prefix) if registry_id is not None: - pulumi.set(__self__, "registry_id", registry_id) + _setter("registry_id", registry_id) if upstream_registry_url is not None: - pulumi.set(__self__, "upstream_registry_url", upstream_registry_url) + _setter("upstream_registry_url", upstream_registry_url) @property @pulumi.getter(name="ecrRepositoryPrefix") @@ -184,6 +226,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PullThroughCacheRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecr/registry_policy.py b/sdk/python/pulumi_aws/ecr/registry_policy.py index 1f28b34d226..9140b5935a2 100644 --- a/sdk/python/pulumi_aws/ecr/registry_policy.py +++ b/sdk/python/pulumi_aws/ecr/registry_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RegistryPolicyArgs', 'RegistryPolicy'] @@ -19,7 +19,20 @@ def __init__(__self__, *, The set of arguments for constructing a RegistryPolicy resource. :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. """ - pulumi.set(__self__, "policy", policy) + RegistryPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("policy", policy) @property @pulumi.getter @@ -44,10 +57,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. :param pulumi.Input[str] registry_id: The registry ID where the registry was created. """ + _RegistryPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + registry_id=registry_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if registry_id is not None: - pulumi.set(__self__, "registry_id", registry_id) + _setter("registry_id", registry_id) @property @pulumi.getter @@ -171,6 +199,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegistryPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecr/registry_scanning_configuration.py b/sdk/python/pulumi_aws/ecr/registry_scanning_configuration.py index 19ec0bc8cd5..031a800c97d 100644 --- a/sdk/python/pulumi_aws/ecr/registry_scanning_configuration.py +++ b/sdk/python/pulumi_aws/ecr/registry_scanning_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,26 @@ def __init__(__self__, *, :param pulumi.Input[str] scan_type: the scanning type to set for the registry. Can be either `ENHANCED` or `BASIC`. :param pulumi.Input[Sequence[pulumi.Input['RegistryScanningConfigurationRuleArgs']]] rules: One or multiple blocks specifying scanning rules to determine which repository filters are used and at what frequency scanning will occur. See below for schema. """ - pulumi.set(__self__, "scan_type", scan_type) + RegistryScanningConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + scan_type=scan_type, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scan_type: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['RegistryScanningConfigurationRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scan_type is None and 'scanType' in kwargs: + scan_type = kwargs['scanType'] + if scan_type is None: + raise TypeError("Missing 'scan_type' argument") + + _setter("scan_type", scan_type) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) @property @pulumi.getter(name="scanType") @@ -64,12 +81,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RegistryScanningConfigurationRuleArgs']]] rules: One or multiple blocks specifying scanning rules to determine which repository filters are used and at what frequency scanning will occur. See below for schema. :param pulumi.Input[str] scan_type: the scanning type to set for the registry. Can be either `ENHANCED` or `BASIC`. """ + _RegistryScanningConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_id=registry_id, + rules=rules, + scan_type=scan_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_id: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['RegistryScanningConfigurationRuleArgs']]]] = None, + scan_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if scan_type is None and 'scanType' in kwargs: + scan_type = kwargs['scanType'] + if registry_id is not None: - pulumi.set(__self__, "registry_id", registry_id) + _setter("registry_id", registry_id) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if scan_type is not None: - pulumi.set(__self__, "scan_type", scan_type) + _setter("scan_type", scan_type) @property @pulumi.getter(name="registryId") @@ -245,6 +281,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegistryScanningConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecr/replication_configuration.py b/sdk/python/pulumi_aws/ecr/replication_configuration.py index 9506b674fef..d79fe148c24 100644 --- a/sdk/python/pulumi_aws/ecr/replication_configuration.py +++ b/sdk/python/pulumi_aws/ecr/replication_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -21,8 +21,21 @@ def __init__(__self__, *, The set of arguments for constructing a ReplicationConfiguration resource. :param pulumi.Input['ReplicationConfigurationReplicationConfigurationArgs'] replication_configuration: Replication configuration for a registry. See Replication Configuration. """ + ReplicationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + replication_configuration=replication_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replication_configuration: Optional[pulumi.Input['ReplicationConfigurationReplicationConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replication_configuration is None and 'replicationConfiguration' in kwargs: + replication_configuration = kwargs['replicationConfiguration'] + if replication_configuration is not None: - pulumi.set(__self__, "replication_configuration", replication_configuration) + _setter("replication_configuration", replication_configuration) @property @pulumi.getter(name="replicationConfiguration") @@ -47,10 +60,27 @@ def __init__(__self__, *, :param pulumi.Input[str] registry_id: The account ID of the destination registry to replicate to. :param pulumi.Input['ReplicationConfigurationReplicationConfigurationArgs'] replication_configuration: Replication configuration for a registry. See Replication Configuration. """ + _ReplicationConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_id=registry_id, + replication_configuration=replication_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_id: Optional[pulumi.Input[str]] = None, + replication_configuration: Optional[pulumi.Input['ReplicationConfigurationReplicationConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if replication_configuration is None and 'replicationConfiguration' in kwargs: + replication_configuration = kwargs['replicationConfiguration'] + if registry_id is not None: - pulumi.set(__self__, "registry_id", registry_id) + _setter("registry_id", registry_id) if replication_configuration is not None: - pulumi.set(__self__, "replication_configuration", replication_configuration) + _setter("replication_configuration", replication_configuration) @property @pulumi.getter(name="registryId") @@ -252,6 +282,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicationConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -267,6 +301,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ReplicationConfigurationArgs.__new__(ReplicationConfigurationArgs) + replication_configuration = _utilities.configure(replication_configuration, ReplicationConfigurationReplicationConfigurationArgs, True) __props__.__dict__["replication_configuration"] = replication_configuration __props__.__dict__["registry_id"] = None super(ReplicationConfiguration, __self__).__init__( diff --git a/sdk/python/pulumi_aws/ecr/repository.py b/sdk/python/pulumi_aws/ecr/repository.py index 141e9601df9..2fe67caccb2 100644 --- a/sdk/python/pulumi_aws/ecr/repository.py +++ b/sdk/python/pulumi_aws/ecr/repository.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -32,18 +32,47 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the repository. :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. """ + RepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_configurations=encryption_configurations, + force_delete=force_delete, + image_scanning_configuration=image_scanning_configuration, + image_tag_mutability=image_tag_mutability, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['RepositoryEncryptionConfigurationArgs']]]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + image_scanning_configuration: Optional[pulumi.Input['RepositoryImageScanningConfigurationArgs']] = None, + image_tag_mutability: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_configurations is None and 'encryptionConfigurations' in kwargs: + encryption_configurations = kwargs['encryptionConfigurations'] + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if image_scanning_configuration is None and 'imageScanningConfiguration' in kwargs: + image_scanning_configuration = kwargs['imageScanningConfiguration'] + if image_tag_mutability is None and 'imageTagMutability' in kwargs: + image_tag_mutability = kwargs['imageTagMutability'] + if encryption_configurations is not None: - pulumi.set(__self__, "encryption_configurations", encryption_configurations) + _setter("encryption_configurations", encryption_configurations) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if image_scanning_configuration is not None: - pulumi.set(__self__, "image_scanning_configuration", image_scanning_configuration) + _setter("image_scanning_configuration", image_scanning_configuration) if image_tag_mutability is not None: - pulumi.set(__self__, "image_tag_mutability", image_tag_mutability) + _setter("image_tag_mutability", image_tag_mutability) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="encryptionConfigurations") @@ -146,29 +175,72 @@ def __init__(__self__, *, :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. """ + _RepositoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + encryption_configurations=encryption_configurations, + force_delete=force_delete, + image_scanning_configuration=image_scanning_configuration, + image_tag_mutability=image_tag_mutability, + name=name, + registry_id=registry_id, + repository_url=repository_url, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + encryption_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['RepositoryEncryptionConfigurationArgs']]]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + image_scanning_configuration: Optional[pulumi.Input['RepositoryImageScanningConfigurationArgs']] = None, + image_tag_mutability: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + repository_url: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_configurations is None and 'encryptionConfigurations' in kwargs: + encryption_configurations = kwargs['encryptionConfigurations'] + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if image_scanning_configuration is None and 'imageScanningConfiguration' in kwargs: + image_scanning_configuration = kwargs['imageScanningConfiguration'] + if image_tag_mutability is None and 'imageTagMutability' in kwargs: + image_tag_mutability = kwargs['imageTagMutability'] + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if encryption_configurations is not None: - pulumi.set(__self__, "encryption_configurations", encryption_configurations) + _setter("encryption_configurations", encryption_configurations) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if image_scanning_configuration is not None: - pulumi.set(__self__, "image_scanning_configuration", image_scanning_configuration) + _setter("image_scanning_configuration", image_scanning_configuration) if image_tag_mutability is not None: - pulumi.set(__self__, "image_tag_mutability", image_tag_mutability) + _setter("image_tag_mutability", image_tag_mutability) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if registry_id is not None: - pulumi.set(__self__, "registry_id", registry_id) + _setter("registry_id", registry_id) if repository_url is not None: - pulumi.set(__self__, "repository_url", repository_url) + _setter("repository_url", repository_url) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -381,6 +453,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RepositoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -403,6 +479,7 @@ def _internal_init(__self__, __props__.__dict__["encryption_configurations"] = encryption_configurations __props__.__dict__["force_delete"] = force_delete + image_scanning_configuration = _utilities.configure(image_scanning_configuration, RepositoryImageScanningConfigurationArgs, True) __props__.__dict__["image_scanning_configuration"] = image_scanning_configuration __props__.__dict__["image_tag_mutability"] = image_tag_mutability __props__.__dict__["name"] = name diff --git a/sdk/python/pulumi_aws/ecr/repository_policy.py b/sdk/python/pulumi_aws/ecr/repository_policy.py index 60dc83de607..bcfb8cd4988 100644 --- a/sdk/python/pulumi_aws/ecr/repository_policy.py +++ b/sdk/python/pulumi_aws/ecr/repository_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RepositoryPolicyArgs', 'RepositoryPolicy'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. :param pulumi.Input[str] repository: Name of the repository to apply the policy. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "repository", repository) + RepositoryPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + repository=repository, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + repository: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if repository is None: + raise TypeError("Missing 'repository' argument") + + _setter("policy", policy) + _setter("repository", repository) @property @pulumi.getter @@ -61,12 +78,29 @@ def __init__(__self__, *, :param pulumi.Input[str] registry_id: The registry ID where the repository was created. :param pulumi.Input[str] repository: Name of the repository to apply the policy. """ + _RepositoryPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + registry_id=registry_id, + repository=repository, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + repository: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if registry_id is not None: - pulumi.set(__self__, "registry_id", registry_id) + _setter("registry_id", registry_id) if repository is not None: - pulumi.set(__self__, "repository", repository) + _setter("repository", repository) @property @pulumi.getter @@ -232,6 +266,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RepositoryPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecrpublic/_inputs.py b/sdk/python/pulumi_aws/ecrpublic/_inputs.py index 9309957502c..6cd301f7763 100644 --- a/sdk/python/pulumi_aws/ecrpublic/_inputs.py +++ b/sdk/python/pulumi_aws/ecrpublic/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -30,18 +30,47 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] operating_systems: The operating systems that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported operating systems will appear as badges on the repository and are used as search filters: `Linux`, `Windows` :param pulumi.Input[str] usage_text: Detailed information on how to use the contents of the repository. It is publicly visible in the Amazon ECR Public Gallery. The usage text provides context, support information, and additional usage details for users of the repository. The text must be in markdown format. """ + RepositoryCatalogDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + about_text=about_text, + architectures=architectures, + description=description, + logo_image_blob=logo_image_blob, + operating_systems=operating_systems, + usage_text=usage_text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + about_text: Optional[pulumi.Input[str]] = None, + architectures: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + logo_image_blob: Optional[pulumi.Input[str]] = None, + operating_systems: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + usage_text: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if about_text is None and 'aboutText' in kwargs: + about_text = kwargs['aboutText'] + if logo_image_blob is None and 'logoImageBlob' in kwargs: + logo_image_blob = kwargs['logoImageBlob'] + if operating_systems is None and 'operatingSystems' in kwargs: + operating_systems = kwargs['operatingSystems'] + if usage_text is None and 'usageText' in kwargs: + usage_text = kwargs['usageText'] + if about_text is not None: - pulumi.set(__self__, "about_text", about_text) + _setter("about_text", about_text) if architectures is not None: - pulumi.set(__self__, "architectures", architectures) + _setter("architectures", architectures) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if logo_image_blob is not None: - pulumi.set(__self__, "logo_image_blob", logo_image_blob) + _setter("logo_image_blob", logo_image_blob) if operating_systems is not None: - pulumi.set(__self__, "operating_systems", operating_systems) + _setter("operating_systems", operating_systems) if usage_text is not None: - pulumi.set(__self__, "usage_text", usage_text) + _setter("usage_text", usage_text) @property @pulumi.getter(name="aboutText") diff --git a/sdk/python/pulumi_aws/ecrpublic/get_authorization_token.py b/sdk/python/pulumi_aws/ecrpublic/get_authorization_token.py index 7824c3e2ed1..c294310a656 100644 --- a/sdk/python/pulumi_aws/ecrpublic/get_authorization_token.py +++ b/sdk/python/pulumi_aws/ecrpublic/get_authorization_token.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetAuthorizationTokenResult', 'AwaitableGetAuthorizationTokenResult', 'get_authorization_token', + 'get_authorization_token_output', ] @pulumi.output_type @@ -116,3 +117,22 @@ def get_authorization_token(opts: Optional[pulumi.InvokeOptions] = None) -> Awai id=pulumi.get(__ret__, 'id'), password=pulumi.get(__ret__, 'password'), user_name=pulumi.get(__ret__, 'user_name')) + + +@_utilities.lift_output_func(get_authorization_token) +def get_authorization_token_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAuthorizationTokenResult]: + """ + The Public ECR Authorization Token data source allows the authorization token, token expiration date, user name, and password to be retrieved for a Public ECR repository. + + > **NOTE:** This data source can only be used in the `us-east-1` region. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + token = aws.ecrpublic.get_authorization_token() + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/ecrpublic/outputs.py b/sdk/python/pulumi_aws/ecrpublic/outputs.py index da5bbb0dd46..130a40d6afb 100644 --- a/sdk/python/pulumi_aws/ecrpublic/outputs.py +++ b/sdk/python/pulumi_aws/ecrpublic/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -53,18 +53,47 @@ def __init__(__self__, *, :param Sequence[str] operating_systems: The operating systems that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported operating systems will appear as badges on the repository and are used as search filters: `Linux`, `Windows` :param str usage_text: Detailed information on how to use the contents of the repository. It is publicly visible in the Amazon ECR Public Gallery. The usage text provides context, support information, and additional usage details for users of the repository. The text must be in markdown format. """ + RepositoryCatalogData._configure( + lambda key, value: pulumi.set(__self__, key, value), + about_text=about_text, + architectures=architectures, + description=description, + logo_image_blob=logo_image_blob, + operating_systems=operating_systems, + usage_text=usage_text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + about_text: Optional[str] = None, + architectures: Optional[Sequence[str]] = None, + description: Optional[str] = None, + logo_image_blob: Optional[str] = None, + operating_systems: Optional[Sequence[str]] = None, + usage_text: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if about_text is None and 'aboutText' in kwargs: + about_text = kwargs['aboutText'] + if logo_image_blob is None and 'logoImageBlob' in kwargs: + logo_image_blob = kwargs['logoImageBlob'] + if operating_systems is None and 'operatingSystems' in kwargs: + operating_systems = kwargs['operatingSystems'] + if usage_text is None and 'usageText' in kwargs: + usage_text = kwargs['usageText'] + if about_text is not None: - pulumi.set(__self__, "about_text", about_text) + _setter("about_text", about_text) if architectures is not None: - pulumi.set(__self__, "architectures", architectures) + _setter("architectures", architectures) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if logo_image_blob is not None: - pulumi.set(__self__, "logo_image_blob", logo_image_blob) + _setter("logo_image_blob", logo_image_blob) if operating_systems is not None: - pulumi.set(__self__, "operating_systems", operating_systems) + _setter("operating_systems", operating_systems) if usage_text is not None: - pulumi.set(__self__, "usage_text", usage_text) + _setter("usage_text", usage_text) @property @pulumi.getter(name="aboutText") diff --git a/sdk/python/pulumi_aws/ecrpublic/repository.py b/sdk/python/pulumi_aws/ecrpublic/repository.py index 15ad5cd1058..06ff4f6fde3 100644 --- a/sdk/python/pulumi_aws/ecrpublic/repository.py +++ b/sdk/python/pulumi_aws/ecrpublic/repository.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -26,13 +26,38 @@ def __init__(__self__, *, :param pulumi.Input['RepositoryCatalogDataArgs'] catalog_data: Catalog data configuration for the repository. See below for schema. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "repository_name", repository_name) + RepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + catalog_data=catalog_data, + force_destroy=force_destroy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[pulumi.Input[str]] = None, + catalog_data: Optional[pulumi.Input['RepositoryCatalogDataArgs']] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if catalog_data is None and 'catalogData' in kwargs: + catalog_data = kwargs['catalogData'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + + _setter("repository_name", repository_name) if catalog_data is not None: - pulumi.set(__self__, "catalog_data", catalog_data) + _setter("catalog_data", catalog_data) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="repositoryName") @@ -101,25 +126,62 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RepositoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_data=catalog_data, + force_destroy=force_destroy, + registry_id=registry_id, + repository_name=repository_name, + repository_uri=repository_uri, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + catalog_data: Optional[pulumi.Input['RepositoryCatalogDataArgs']] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + repository_name: Optional[pulumi.Input[str]] = None, + repository_uri: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_data is None and 'catalogData' in kwargs: + catalog_data = kwargs['catalogData'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_uri is None and 'repositoryUri' in kwargs: + repository_uri = kwargs['repositoryUri'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if catalog_data is not None: - pulumi.set(__self__, "catalog_data", catalog_data) + _setter("catalog_data", catalog_data) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if registry_id is not None: - pulumi.set(__self__, "registry_id", registry_id) + _setter("registry_id", registry_id) if repository_name is not None: - pulumi.set(__self__, "repository_name", repository_name) + _setter("repository_name", repository_name) if repository_uri is not None: - pulumi.set(__self__, "repository_uri", repository_uri) + _setter("repository_uri", repository_uri) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -324,6 +386,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RepositoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -342,6 +408,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = RepositoryArgs.__new__(RepositoryArgs) + catalog_data = _utilities.configure(catalog_data, RepositoryCatalogDataArgs, True) __props__.__dict__["catalog_data"] = catalog_data __props__.__dict__["force_destroy"] = force_destroy if repository_name is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/ecrpublic/repository_policy.py b/sdk/python/pulumi_aws/ecrpublic/repository_policy.py index f49fde6ef06..5409fd64f09 100644 --- a/sdk/python/pulumi_aws/ecrpublic/repository_policy.py +++ b/sdk/python/pulumi_aws/ecrpublic/repository_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RepositoryPolicyArgs', 'RepositoryPolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. :param pulumi.Input[str] repository_name: Name of the repository to apply the policy. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "repository_name", repository_name) + RepositoryPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + repository_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + + _setter("policy", policy) + _setter("repository_name", repository_name) @property @pulumi.getter @@ -61,12 +80,31 @@ def __init__(__self__, *, :param pulumi.Input[str] registry_id: The registry ID where the repository was created. :param pulumi.Input[str] repository_name: Name of the repository to apply the policy. """ + _RepositoryPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + registry_id=registry_id, + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + registry_id: Optional[pulumi.Input[str]] = None, + repository_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_id is None and 'registryId' in kwargs: + registry_id = kwargs['registryId'] + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if registry_id is not None: - pulumi.set(__self__, "registry_id", registry_id) + _setter("registry_id", registry_id) if repository_name is not None: - pulumi.set(__self__, "repository_name", repository_name) + _setter("repository_name", repository_name) @property @pulumi.getter @@ -236,6 +274,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RepositoryPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecs/_inputs.py b/sdk/python/pulumi_aws/ecs/_inputs.py index 1135f9c4f9b..91746a86e8c 100644 --- a/sdk/python/pulumi_aws/ecs/_inputs.py +++ b/sdk/python/pulumi_aws/ecs/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -70,11 +70,34 @@ def __init__(__self__, *, :param pulumi.Input['CapacityProviderAutoScalingGroupProviderManagedScalingArgs'] managed_scaling: Configuration block defining the parameters of the auto scaling. Detailed below. :param pulumi.Input[str] managed_termination_protection: Enables or disables container-aware termination of instances in the auto scaling group when scale-in happens. Valid values are `ENABLED` and `DISABLED`. """ - pulumi.set(__self__, "auto_scaling_group_arn", auto_scaling_group_arn) + CapacityProviderAutoScalingGroupProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_scaling_group_arn=auto_scaling_group_arn, + managed_scaling=managed_scaling, + managed_termination_protection=managed_termination_protection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_scaling_group_arn: Optional[pulumi.Input[str]] = None, + managed_scaling: Optional[pulumi.Input['CapacityProviderAutoScalingGroupProviderManagedScalingArgs']] = None, + managed_termination_protection: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_group_arn is None and 'autoScalingGroupArn' in kwargs: + auto_scaling_group_arn = kwargs['autoScalingGroupArn'] + if auto_scaling_group_arn is None: + raise TypeError("Missing 'auto_scaling_group_arn' argument") + if managed_scaling is None and 'managedScaling' in kwargs: + managed_scaling = kwargs['managedScaling'] + if managed_termination_protection is None and 'managedTerminationProtection' in kwargs: + managed_termination_protection = kwargs['managedTerminationProtection'] + + _setter("auto_scaling_group_arn", auto_scaling_group_arn) if managed_scaling is not None: - pulumi.set(__self__, "managed_scaling", managed_scaling) + _setter("managed_scaling", managed_scaling) if managed_termination_protection is not None: - pulumi.set(__self__, "managed_termination_protection", managed_termination_protection) + _setter("managed_termination_protection", managed_termination_protection) @property @pulumi.getter(name="autoScalingGroupArn") @@ -128,16 +151,43 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Whether auto scaling is managed by ECS. Valid values are `ENABLED` and `DISABLED`. :param pulumi.Input[int] target_capacity: Target utilization for the capacity provider. A number between 1 and 100. """ + CapacityProviderAutoScalingGroupProviderManagedScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_warmup_period=instance_warmup_period, + maximum_scaling_step_size=maximum_scaling_step_size, + minimum_scaling_step_size=minimum_scaling_step_size, + status=status, + target_capacity=target_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_warmup_period: Optional[pulumi.Input[int]] = None, + maximum_scaling_step_size: Optional[pulumi.Input[int]] = None, + minimum_scaling_step_size: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + target_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_warmup_period is None and 'instanceWarmupPeriod' in kwargs: + instance_warmup_period = kwargs['instanceWarmupPeriod'] + if maximum_scaling_step_size is None and 'maximumScalingStepSize' in kwargs: + maximum_scaling_step_size = kwargs['maximumScalingStepSize'] + if minimum_scaling_step_size is None and 'minimumScalingStepSize' in kwargs: + minimum_scaling_step_size = kwargs['minimumScalingStepSize'] + if target_capacity is None and 'targetCapacity' in kwargs: + target_capacity = kwargs['targetCapacity'] + if instance_warmup_period is not None: - pulumi.set(__self__, "instance_warmup_period", instance_warmup_period) + _setter("instance_warmup_period", instance_warmup_period) if maximum_scaling_step_size is not None: - pulumi.set(__self__, "maximum_scaling_step_size", maximum_scaling_step_size) + _setter("maximum_scaling_step_size", maximum_scaling_step_size) if minimum_scaling_step_size is not None: - pulumi.set(__self__, "minimum_scaling_step_size", minimum_scaling_step_size) + _setter("minimum_scaling_step_size", minimum_scaling_step_size) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if target_capacity is not None: - pulumi.set(__self__, "target_capacity", target_capacity) + _setter("target_capacity", target_capacity) @property @pulumi.getter(name="instanceWarmupPeriod") @@ -211,11 +261,30 @@ def __init__(__self__, *, :param pulumi.Input[int] base: The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. :param pulumi.Input[int] weight: The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[pulumi.Input[str]] = None, + base: Optional[pulumi.Input[int]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -261,8 +330,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ClusterConfigurationExecuteCommandConfigurationArgs'] execute_command_configuration: The details of the execute command configuration. Detailed below. """ + ClusterConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + execute_command_configuration=execute_command_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execute_command_configuration: Optional[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execute_command_configuration is None and 'executeCommandConfiguration' in kwargs: + execute_command_configuration = kwargs['executeCommandConfiguration'] + if execute_command_configuration is not None: - pulumi.set(__self__, "execute_command_configuration", execute_command_configuration) + _setter("execute_command_configuration", execute_command_configuration) @property @pulumi.getter(name="executeCommandConfiguration") @@ -288,12 +370,31 @@ def __init__(__self__, *, :param pulumi.Input['ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs'] log_configuration: The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. :param pulumi.Input[str] logging: The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. """ + ClusterConfigurationExecuteCommandConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + log_configuration=log_configuration, + logging=logging, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + log_configuration: Optional[pulumi.Input['ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs']] = None, + logging: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if log_configuration is None and 'logConfiguration' in kwargs: + log_configuration = kwargs['logConfiguration'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if log_configuration is not None: - pulumi.set(__self__, "log_configuration", log_configuration) + _setter("log_configuration", log_configuration) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) @property @pulumi.getter(name="kmsKeyId") @@ -347,16 +448,45 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_bucket_name: The name of the S3 bucket to send logs to. :param pulumi.Input[str] s3_key_prefix: An optional folder in the S3 bucket to place logs in. """ + ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_encryption_enabled=cloud_watch_encryption_enabled, + cloud_watch_log_group_name=cloud_watch_log_group_name, + s3_bucket_encryption_enabled=s3_bucket_encryption_enabled, + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_encryption_enabled: Optional[pulumi.Input[bool]] = None, + cloud_watch_log_group_name: Optional[pulumi.Input[str]] = None, + s3_bucket_encryption_enabled: Optional[pulumi.Input[bool]] = None, + s3_bucket_name: Optional[pulumi.Input[str]] = None, + s3_key_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_encryption_enabled is None and 'cloudWatchEncryptionEnabled' in kwargs: + cloud_watch_encryption_enabled = kwargs['cloudWatchEncryptionEnabled'] + if cloud_watch_log_group_name is None and 'cloudWatchLogGroupName' in kwargs: + cloud_watch_log_group_name = kwargs['cloudWatchLogGroupName'] + if s3_bucket_encryption_enabled is None and 's3BucketEncryptionEnabled' in kwargs: + s3_bucket_encryption_enabled = kwargs['s3BucketEncryptionEnabled'] + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if cloud_watch_encryption_enabled is not None: - pulumi.set(__self__, "cloud_watch_encryption_enabled", cloud_watch_encryption_enabled) + _setter("cloud_watch_encryption_enabled", cloud_watch_encryption_enabled) if cloud_watch_log_group_name is not None: - pulumi.set(__self__, "cloud_watch_log_group_name", cloud_watch_log_group_name) + _setter("cloud_watch_log_group_name", cloud_watch_log_group_name) if s3_bucket_encryption_enabled is not None: - pulumi.set(__self__, "s3_bucket_encryption_enabled", s3_bucket_encryption_enabled) + _setter("s3_bucket_encryption_enabled", s3_bucket_encryption_enabled) if s3_bucket_name is not None: - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + _setter("s3_bucket_name", s3_bucket_name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter(name="cloudWatchEncryptionEnabled") @@ -426,7 +556,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] namespace: The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. """ - pulumi.set(__self__, "namespace", namespace) + ClusterServiceConnectDefaultsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) @property @pulumi.getter @@ -450,8 +593,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the setting to manage. Valid values: `containerInsights`. :param pulumi.Input[str] value: The value to assign to the setting. Valid values are `enabled` and `disabled`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ClusterSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -489,9 +649,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable: Determines whether to use the CloudWatch alarm option in the service deployment process. :param pulumi.Input[bool] rollback: Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is used, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. """ - pulumi.set(__self__, "alarm_names", alarm_names) - pulumi.set(__self__, "enable", enable) - pulumi.set(__self__, "rollback", rollback) + ServiceAlarmsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_names=alarm_names, + enable=enable, + rollback=rollback, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enable: Optional[pulumi.Input[bool]] = None, + rollback: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_names is None and 'alarmNames' in kwargs: + alarm_names = kwargs['alarmNames'] + if alarm_names is None: + raise TypeError("Missing 'alarm_names' argument") + if enable is None: + raise TypeError("Missing 'enable' argument") + if rollback is None: + raise TypeError("Missing 'rollback' argument") + + _setter("alarm_names", alarm_names) + _setter("enable", enable) + _setter("rollback", rollback) @property @pulumi.getter(name="alarmNames") @@ -541,11 +724,30 @@ def __init__(__self__, *, :param pulumi.Input[int] base: Number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. :param pulumi.Input[int] weight: Relative percentage of the total number of launched tasks that should use the specified capacity provider. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + ServiceCapacityProviderStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[pulumi.Input[str]] = None, + base: Optional[pulumi.Input[int]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -593,8 +795,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable: Whether to enable the deployment circuit breaker logic for the service. :param pulumi.Input[bool] rollback: Whether to enable Amazon ECS to roll back the service if a service deployment fails. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. """ - pulumi.set(__self__, "enable", enable) - pulumi.set(__self__, "rollback", rollback) + ServiceDeploymentCircuitBreakerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + rollback=rollback, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[pulumi.Input[bool]] = None, + rollback: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + if rollback is None: + raise TypeError("Missing 'rollback' argument") + + _setter("enable", enable) + _setter("rollback", rollback) @property @pulumi.getter @@ -628,8 +847,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] type: Type of deployment controller. Valid values: `CODE_DEPLOY`, `ECS`, `EXTERNAL`. Default: `ECS`. """ + ServiceDeploymentControllerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -659,12 +889,41 @@ def __init__(__self__, *, :param pulumi.Input[str] elb_name: Name of the ELB (Classic) to associate with the service. :param pulumi.Input[str] target_group_arn: ARN of the Load Balancer target group to associate with the service. """ - pulumi.set(__self__, "container_name", container_name) - pulumi.set(__self__, "container_port", container_port) + ServiceLoadBalancerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + container_port=container_port, + elb_name=elb_name, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[pulumi.Input[str]] = None, + container_port: Optional[pulumi.Input[int]] = None, + elb_name: Optional[pulumi.Input[str]] = None, + target_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + if container_port is None: + raise TypeError("Missing 'container_port' argument") + if elb_name is None and 'elbName' in kwargs: + elb_name = kwargs['elbName'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("container_name", container_name) + _setter("container_port", container_port) if elb_name is not None: - pulumi.set(__self__, "elb_name", elb_name) + _setter("elb_name", elb_name) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter(name="containerName") @@ -730,11 +989,32 @@ def __init__(__self__, *, For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. """ - pulumi.set(__self__, "subnets", subnets) + ServiceNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + assign_public_ip: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -789,9 +1069,24 @@ def __init__(__self__, *, > **Note:** for `spread`, `host` and `instanceId` will be normalized, by AWS, to be `instanceId`. This means the statefile will show `instanceId` but your config will differ if you use `host`. """ - pulumi.set(__self__, "type", type) + ServiceOrderedPlacementStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + field=field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + field: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) @property @pulumi.getter @@ -832,9 +1127,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. :param pulumi.Input[str] expression: Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). """ - pulumi.set(__self__, "type", type) + ServicePlacementConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -874,13 +1184,34 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: The namespace name or ARN of the `servicediscovery.HttpNamespace` for use with Service Connect. :param pulumi.Input[Sequence[pulumi.Input['ServiceServiceConnectConfigurationServiceArgs']]] services: The list of Service Connect service objects. See below. """ - pulumi.set(__self__, "enabled", enabled) + ServiceServiceConnectConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_configuration=log_configuration, + namespace=namespace, + services=services, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_configuration: Optional[pulumi.Input['ServiceServiceConnectConfigurationLogConfigurationArgs']] = None, + namespace: Optional[pulumi.Input[str]] = None, + services: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceServiceConnectConfigurationServiceArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_configuration is None and 'logConfiguration' in kwargs: + log_configuration = kwargs['logConfiguration'] + + _setter("enabled", enabled) if log_configuration is not None: - pulumi.set(__self__, "log_configuration", log_configuration) + _setter("log_configuration", log_configuration) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if services is not None: - pulumi.set(__self__, "services", services) + _setter("services", services) @property @pulumi.getter @@ -942,11 +1273,32 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] options: The configuration options to send to the log driver. :param pulumi.Input[Sequence[pulumi.Input['ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs']]] secret_options: The secrets to pass to the log configuration. See below. """ - pulumi.set(__self__, "log_driver", log_driver) + ServiceServiceConnectConfigurationLogConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_driver=log_driver, + options=options, + secret_options=secret_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_driver: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + secret_options: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_driver is None and 'logDriver' in kwargs: + log_driver = kwargs['logDriver'] + if log_driver is None: + raise TypeError("Missing 'log_driver' argument") + if secret_options is None and 'secretOptions' in kwargs: + secret_options = kwargs['secretOptions'] + + _setter("log_driver", log_driver) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if secret_options is not None: - pulumi.set(__self__, "secret_options", secret_options) + _setter("secret_options", secret_options) @property @pulumi.getter(name="logDriver") @@ -994,8 +1346,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the secret. :param pulumi.Input[str] value_from: The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value_from", value_from) + ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value_from=value_from, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value_from: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value_from is None and 'valueFrom' in kwargs: + value_from = kwargs['valueFrom'] + if value_from is None: + raise TypeError("Missing 'value_from' argument") + + _setter("name", name) + _setter("value_from", value_from) @property @pulumi.getter @@ -1035,13 +1406,40 @@ def __init__(__self__, *, :param pulumi.Input[str] discovery_name: The name of the new AWS Cloud Map service that Amazon ECS creates for this Amazon ECS service. :param pulumi.Input[int] ingress_port_override: The port number for the Service Connect proxy to listen on. """ - pulumi.set(__self__, "port_name", port_name) + ServiceServiceConnectConfigurationServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port_name=port_name, + client_alias=client_alias, + discovery_name=discovery_name, + ingress_port_override=ingress_port_override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port_name: Optional[pulumi.Input[str]] = None, + client_alias: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceServiceConnectConfigurationServiceClientAliasArgs']]]] = None, + discovery_name: Optional[pulumi.Input[str]] = None, + ingress_port_override: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_name is None and 'portName' in kwargs: + port_name = kwargs['portName'] + if port_name is None: + raise TypeError("Missing 'port_name' argument") + if client_alias is None and 'clientAlias' in kwargs: + client_alias = kwargs['clientAlias'] + if discovery_name is None and 'discoveryName' in kwargs: + discovery_name = kwargs['discoveryName'] + if ingress_port_override is None and 'ingressPortOverride' in kwargs: + ingress_port_override = kwargs['ingressPortOverride'] + + _setter("port_name", port_name) if client_alias is not None: - pulumi.set(__self__, "client_alias", client_alias) + _setter("client_alias", client_alias) if discovery_name is not None: - pulumi.set(__self__, "discovery_name", discovery_name) + _setter("discovery_name", discovery_name) if ingress_port_override is not None: - pulumi.set(__self__, "ingress_port_override", ingress_port_override) + _setter("ingress_port_override", ingress_port_override) @property @pulumi.getter(name="portName") @@ -1101,9 +1499,26 @@ def __init__(__self__, *, :param pulumi.Input[int] port: The listening port number for the Service Connect proxy. This port is available inside of all of the tasks within the same namespace. :param pulumi.Input[str] dns_name: The name that you use in the applications of client tasks to connect to this service. """ - pulumi.set(__self__, "port", port) + ServiceServiceConnectConfigurationServiceClientAliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + dns_name=dns_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[pulumi.Input[int]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + + _setter("port", port) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) @property @pulumi.getter @@ -1143,13 +1558,38 @@ def __init__(__self__, *, :param pulumi.Input[int] container_port: Port value, already specified in the task definition, to be used for your service discovery service. :param pulumi.Input[int] port: Port value used if your Service Discovery service specified an SRV record. """ - pulumi.set(__self__, "registry_arn", registry_arn) + ServiceServiceRegistriesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_arn=registry_arn, + container_name=container_name, + container_port=container_port, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_arn: Optional[pulumi.Input[str]] = None, + container_name: Optional[pulumi.Input[str]] = None, + container_port: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_arn is None and 'registryArn' in kwargs: + registry_arn = kwargs['registryArn'] + if registry_arn is None: + raise TypeError("Missing 'registry_arn' argument") + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + + _setter("registry_arn", registry_arn) if container_name is not None: - pulumi.set(__self__, "container_name", container_name) + _setter("container_name", container_name) if container_port is not None: - pulumi.set(__self__, "container_port", container_port) + _setter("container_port", container_port) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="registryArn") @@ -1207,7 +1647,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] size_in_gib: The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. """ - pulumi.set(__self__, "size_in_gib", size_in_gib) + TaskDefinitionEphemeralStorageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size_in_gib=size_in_gib, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size_in_gib: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size_in_gib is None and 'sizeInGib' in kwargs: + size_in_gib = kwargs['sizeInGib'] + if size_in_gib is None: + raise TypeError("Missing 'size_in_gib' argument") + + _setter("size_in_gib", size_in_gib) @property @pulumi.getter(name="sizeInGib") @@ -1231,8 +1686,29 @@ def __init__(__self__, *, :param pulumi.Input[str] device_name: Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement. :param pulumi.Input[str] device_type: Elastic Inference accelerator type to use. """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "device_type", device_type) + TaskDefinitionInferenceAcceleratorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + device_type=device_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + device_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if device_type is None and 'deviceType' in kwargs: + device_type = kwargs['deviceType'] + if device_type is None: + raise TypeError("Missing 'device_type' argument") + + _setter("device_name", device_name) + _setter("device_type", device_type) @property @pulumi.getter(name="deviceName") @@ -1268,9 +1744,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of constraint. Use `memberOf` to restrict selection to a group of valid candidates. Note that `distinctInstance` is not supported in task definitions. :param pulumi.Input[str] expression: Cluster Query Language expression to apply to the constraint. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). """ - pulumi.set(__self__, "type", type) + TaskDefinitionPlacementConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -1308,11 +1799,30 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping. :param pulumi.Input[str] type: Proxy type. The default value is `APPMESH`. The only supported value is `APPMESH`. """ - pulumi.set(__self__, "container_name", container_name) + TaskDefinitionProxyConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + properties=properties, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + + _setter("container_name", container_name) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="containerName") @@ -1360,10 +1870,27 @@ def __init__(__self__, *, :param pulumi.Input[str] cpu_architecture: Must be set to either `X86_64` or `ARM64`; see [cpu architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) :param pulumi.Input[str] operating_system_family: If the `requires_compatibilities` is `FARGATE` this field is required; must be set to a valid option from the [operating system family in the runtime platform](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) setting """ + TaskDefinitionRuntimePlatformArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_architecture=cpu_architecture, + operating_system_family=operating_system_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_architecture: Optional[pulumi.Input[str]] = None, + operating_system_family: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_architecture is None and 'cpuArchitecture' in kwargs: + cpu_architecture = kwargs['cpuArchitecture'] + if operating_system_family is None and 'operatingSystemFamily' in kwargs: + operating_system_family = kwargs['operatingSystemFamily'] + if cpu_architecture is not None: - pulumi.set(__self__, "cpu_architecture", cpu_architecture) + _setter("cpu_architecture", cpu_architecture) if operating_system_family is not None: - pulumi.set(__self__, "operating_system_family", operating_system_family) + _setter("operating_system_family", operating_system_family) @property @pulumi.getter(name="cpuArchitecture") @@ -1406,15 +1933,44 @@ def __init__(__self__, *, :param pulumi.Input['TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs'] fsx_windows_file_server_volume_configuration: Configuration block for an FSX Windows File Server volume. Detailed below. :param pulumi.Input[str] host_path: Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished. """ - pulumi.set(__self__, "name", name) + TaskDefinitionVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + docker_volume_configuration=docker_volume_configuration, + efs_volume_configuration=efs_volume_configuration, + fsx_windows_file_server_volume_configuration=fsx_windows_file_server_volume_configuration, + host_path=host_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + docker_volume_configuration: Optional[pulumi.Input['TaskDefinitionVolumeDockerVolumeConfigurationArgs']] = None, + efs_volume_configuration: Optional[pulumi.Input['TaskDefinitionVolumeEfsVolumeConfigurationArgs']] = None, + fsx_windows_file_server_volume_configuration: Optional[pulumi.Input['TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs']] = None, + host_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if docker_volume_configuration is None and 'dockerVolumeConfiguration' in kwargs: + docker_volume_configuration = kwargs['dockerVolumeConfiguration'] + if efs_volume_configuration is None and 'efsVolumeConfiguration' in kwargs: + efs_volume_configuration = kwargs['efsVolumeConfiguration'] + if fsx_windows_file_server_volume_configuration is None and 'fsxWindowsFileServerVolumeConfiguration' in kwargs: + fsx_windows_file_server_volume_configuration = kwargs['fsxWindowsFileServerVolumeConfiguration'] + if host_path is None and 'hostPath' in kwargs: + host_path = kwargs['hostPath'] + + _setter("name", name) if docker_volume_configuration is not None: - pulumi.set(__self__, "docker_volume_configuration", docker_volume_configuration) + _setter("docker_volume_configuration", docker_volume_configuration) if efs_volume_configuration is not None: - pulumi.set(__self__, "efs_volume_configuration", efs_volume_configuration) + _setter("efs_volume_configuration", efs_volume_configuration) if fsx_windows_file_server_volume_configuration is not None: - pulumi.set(__self__, "fsx_windows_file_server_volume_configuration", fsx_windows_file_server_volume_configuration) + _setter("fsx_windows_file_server_volume_configuration", fsx_windows_file_server_volume_configuration) if host_path is not None: - pulumi.set(__self__, "host_path", host_path) + _setter("host_path", host_path) @property @pulumi.getter @@ -1493,16 +2049,37 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Map of custom metadata to add to your Docker volume. :param pulumi.Input[str] scope: Scope for the Docker volume, which determines its lifecycle, either `task` or `shared`. Docker volumes that are scoped to a `task` are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as `shared` persist after the task stops. """ + TaskDefinitionVolumeDockerVolumeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoprovision=autoprovision, + driver=driver, + driver_opts=driver_opts, + labels=labels, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoprovision: Optional[pulumi.Input[bool]] = None, + driver: Optional[pulumi.Input[str]] = None, + driver_opts: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if driver_opts is None and 'driverOpts' in kwargs: + driver_opts = kwargs['driverOpts'] + if autoprovision is not None: - pulumi.set(__self__, "autoprovision", autoprovision) + _setter("autoprovision", autoprovision) if driver is not None: - pulumi.set(__self__, "driver", driver) + _setter("driver", driver) if driver_opts is not None: - pulumi.set(__self__, "driver_opts", driver_opts) + _setter("driver_opts", driver_opts) if labels is not None: - pulumi.set(__self__, "labels", labels) + _setter("labels", labels) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) @property @pulumi.getter @@ -1580,15 +2157,46 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_encryption: Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. :param pulumi.Input[int] transit_encryption_port: Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. """ - pulumi.set(__self__, "file_system_id", file_system_id) + TaskDefinitionVolumeEfsVolumeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + authorization_config=authorization_config, + root_directory=root_directory, + transit_encryption=transit_encryption, + transit_encryption_port=transit_encryption_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + authorization_config: Optional[pulumi.Input['TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs']] = None, + root_directory: Optional[pulumi.Input[str]] = None, + transit_encryption: Optional[pulumi.Input[str]] = None, + transit_encryption_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + if authorization_config is None and 'authorizationConfig' in kwargs: + authorization_config = kwargs['authorizationConfig'] + if root_directory is None and 'rootDirectory' in kwargs: + root_directory = kwargs['rootDirectory'] + if transit_encryption is None and 'transitEncryption' in kwargs: + transit_encryption = kwargs['transitEncryption'] + if transit_encryption_port is None and 'transitEncryptionPort' in kwargs: + transit_encryption_port = kwargs['transitEncryptionPort'] + + _setter("file_system_id", file_system_id) if authorization_config is not None: - pulumi.set(__self__, "authorization_config", authorization_config) + _setter("authorization_config", authorization_config) if root_directory is not None: - pulumi.set(__self__, "root_directory", root_directory) + _setter("root_directory", root_directory) if transit_encryption is not None: - pulumi.set(__self__, "transit_encryption", transit_encryption) + _setter("transit_encryption", transit_encryption) if transit_encryption_port is not None: - pulumi.set(__self__, "transit_encryption_port", transit_encryption_port) + _setter("transit_encryption_port", transit_encryption_port) @property @pulumi.getter(name="fileSystemId") @@ -1660,10 +2268,25 @@ def __init__(__self__, *, :param pulumi.Input[str] access_point_id: Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration. :param pulumi.Input[str] iam: Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. """ + TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_point_id=access_point_id, + iam=iam, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_point_id: Optional[pulumi.Input[str]] = None, + iam: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_point_id is None and 'accessPointId' in kwargs: + access_point_id = kwargs['accessPointId'] + if access_point_id is not None: - pulumi.set(__self__, "access_point_id", access_point_id) + _setter("access_point_id", access_point_id) if iam is not None: - pulumi.set(__self__, "iam", iam) + _setter("iam", iam) @property @pulumi.getter(name="accessPointId") @@ -1701,9 +2324,36 @@ def __init__(__self__, *, :param pulumi.Input[str] file_system_id: The Amazon FSx for Windows File Server file system ID to use. :param pulumi.Input[str] root_directory: The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host. """ - pulumi.set(__self__, "authorization_config", authorization_config) - pulumi.set(__self__, "file_system_id", file_system_id) - pulumi.set(__self__, "root_directory", root_directory) + TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_config=authorization_config, + file_system_id=file_system_id, + root_directory=root_directory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_config: Optional[pulumi.Input['TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs']] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + root_directory: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_config is None and 'authorizationConfig' in kwargs: + authorization_config = kwargs['authorizationConfig'] + if authorization_config is None: + raise TypeError("Missing 'authorization_config' argument") + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + if root_directory is None and 'rootDirectory' in kwargs: + root_directory = kwargs['rootDirectory'] + if root_directory is None: + raise TypeError("Missing 'root_directory' argument") + + _setter("authorization_config", authorization_config) + _setter("file_system_id", file_system_id) + _setter("root_directory", root_directory) @property @pulumi.getter(name="authorizationConfig") @@ -1751,8 +2401,27 @@ def __init__(__self__, *, :param pulumi.Input[str] credentials_parameter: The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials. :param pulumi.Input[str] domain: A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2. """ - pulumi.set(__self__, "credentials_parameter", credentials_parameter) - pulumi.set(__self__, "domain", domain) + TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials_parameter=credentials_parameter, + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials_parameter: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credentials_parameter is None and 'credentialsParameter' in kwargs: + credentials_parameter = kwargs['credentialsParameter'] + if credentials_parameter is None: + raise TypeError("Missing 'credentials_parameter' argument") + if domain is None: + raise TypeError("Missing 'domain' argument") + + _setter("credentials_parameter", credentials_parameter) + _setter("domain", domain) @property @pulumi.getter(name="credentialsParameter") @@ -1790,10 +2459,31 @@ def __init__(__self__, *, :param pulumi.Input[int] weight: The relative percentage of the total number of launched tasks that should use the specified capacity provider. :param pulumi.Input[int] base: The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) - pulumi.set(__self__, "weight", weight) + TaskSetCapacityProviderStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + weight=weight, + base=base, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + base: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("capacity_provider", capacity_provider) + _setter("weight", weight) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) @property @pulumi.getter(name="capacityProvider") @@ -1847,13 +2537,40 @@ def __init__(__self__, *, :param pulumi.Input[str] load_balancer_name: The name of the ELB (Classic) to associate with the service. :param pulumi.Input[str] target_group_arn: The ARN of the Load Balancer target group to associate with the service. """ - pulumi.set(__self__, "container_name", container_name) + TaskSetLoadBalancerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + container_port=container_port, + load_balancer_name=load_balancer_name, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[pulumi.Input[str]] = None, + container_port: Optional[pulumi.Input[int]] = None, + load_balancer_name: Optional[pulumi.Input[str]] = None, + target_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + if load_balancer_name is None and 'loadBalancerName' in kwargs: + load_balancer_name = kwargs['loadBalancerName'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("container_name", container_name) if container_port is not None: - pulumi.set(__self__, "container_port", container_port) + _setter("container_port", container_port) if load_balancer_name is not None: - pulumi.set(__self__, "load_balancer_name", load_balancer_name) + _setter("load_balancer_name", load_balancer_name) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter(name="containerName") @@ -1919,11 +2636,32 @@ def __init__(__self__, *, For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html). :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. Maximum of 5. """ - pulumi.set(__self__, "subnets", subnets) + TaskSetNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + assign_public_ip: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -1973,10 +2711,23 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: The unit of measure for the scale value. Default: `PERCENT`. :param pulumi.Input[float] value: The value, specified as a percent total of a service's `desiredCount`, to scale the task set. Defaults to `0` if not specified. Accepted values are numbers between 0.0 and 100.0. """ + TaskSetScaleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -2016,13 +2767,38 @@ def __init__(__self__, *, :param pulumi.Input[int] container_port: The port value, already specified in the task definition, to be used for your service discovery service. :param pulumi.Input[int] port: The port value used if your Service Discovery service specified an SRV record. """ - pulumi.set(__self__, "registry_arn", registry_arn) + TaskSetServiceRegistriesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_arn=registry_arn, + container_name=container_name, + container_port=container_port, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_arn: Optional[pulumi.Input[str]] = None, + container_name: Optional[pulumi.Input[str]] = None, + container_port: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_arn is None and 'registryArn' in kwargs: + registry_arn = kwargs['registryArn'] + if registry_arn is None: + raise TypeError("Missing 'registry_arn' argument") + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + + _setter("registry_arn", registry_arn) if container_name is not None: - pulumi.set(__self__, "container_name", container_name) + _setter("container_name", container_name) if container_port is not None: - pulumi.set(__self__, "container_port", container_port) + _setter("container_port", container_port) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="registryArn") @@ -2084,11 +2860,30 @@ def __init__(__self__, *, :param int base: The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. :param int weight: The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + GetTaskExecutionCapacityProviderStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[str] = None, + base: Optional[int] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -2140,11 +2935,32 @@ def __init__(__self__, *, For more information, see the [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) documentation. :param Sequence[str] security_groups: Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. """ - pulumi.set(__self__, "subnets", subnets) + GetTaskExecutionNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[Sequence[str]] = None, + assign_public_ip: Optional[bool] = None, + security_groups: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -2202,18 +3018,47 @@ def __init__(__self__, *, :param str memory: The memory override for the task. :param str task_role_arn: Amazon Resource Name (ARN) of the role that containers in this task can assume. """ + GetTaskExecutionOverridesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_overrides=container_overrides, + cpu=cpu, + execution_role_arn=execution_role_arn, + inference_accelerator_overrides=inference_accelerator_overrides, + memory=memory, + task_role_arn=task_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_overrides: Optional[Sequence['GetTaskExecutionOverridesContainerOverrideArgs']] = None, + cpu: Optional[str] = None, + execution_role_arn: Optional[str] = None, + inference_accelerator_overrides: Optional[Sequence['GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs']] = None, + memory: Optional[str] = None, + task_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_overrides is None and 'containerOverrides' in kwargs: + container_overrides = kwargs['containerOverrides'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if inference_accelerator_overrides is None and 'inferenceAcceleratorOverrides' in kwargs: + inference_accelerator_overrides = kwargs['inferenceAcceleratorOverrides'] + if task_role_arn is None and 'taskRoleArn' in kwargs: + task_role_arn = kwargs['taskRoleArn'] + if container_overrides is not None: - pulumi.set(__self__, "container_overrides", container_overrides) + _setter("container_overrides", container_overrides) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if inference_accelerator_overrides is not None: - pulumi.set(__self__, "inference_accelerator_overrides", inference_accelerator_overrides) + _setter("inference_accelerator_overrides", inference_accelerator_overrides) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if task_role_arn is not None: - pulumi.set(__self__, "task_role_arn", task_role_arn) + _setter("task_role_arn", task_role_arn) @property @pulumi.getter(name="containerOverrides") @@ -2307,19 +3152,48 @@ def __init__(__self__, *, :param int memory_reservation: The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. :param Sequence['GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs'] resource_requirements: The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. See below. """ - pulumi.set(__self__, "name", name) + GetTaskExecutionOverridesContainerOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + commands=commands, + cpu=cpu, + environments=environments, + memory=memory, + memory_reservation=memory_reservation, + resource_requirements=resource_requirements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + commands: Optional[Sequence[str]] = None, + cpu: Optional[int] = None, + environments: Optional[Sequence['GetTaskExecutionOverridesContainerOverrideEnvironmentArgs']] = None, + memory: Optional[int] = None, + memory_reservation: Optional[int] = None, + resource_requirements: Optional[Sequence['GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if memory_reservation is None and 'memoryReservation' in kwargs: + memory_reservation = kwargs['memoryReservation'] + if resource_requirements is None and 'resourceRequirements' in kwargs: + resource_requirements = kwargs['resourceRequirements'] + + _setter("name", name) if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if environments is not None: - pulumi.set(__self__, "environments", environments) + _setter("environments", environments) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if memory_reservation is not None: - pulumi.set(__self__, "memory_reservation", memory_reservation) + _setter("memory_reservation", memory_reservation) if resource_requirements is not None: - pulumi.set(__self__, "resource_requirements", resource_requirements) + _setter("resource_requirements", resource_requirements) @property @pulumi.getter @@ -2415,8 +3289,25 @@ def __init__(__self__, *, :param str key: The name of the key-value pair. For environment variables, this is the name of the environment variable. :param str value: The value of the key-value pair. For environment variables, this is the value of the environment variable. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + GetTaskExecutionOverridesContainerOverrideEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -2452,8 +3343,25 @@ def __init__(__self__, *, :param str type: The type of resource to assign to a container. Valid values are `GPU` or `InferenceAccelerator`. :param str value: The value for the specified resource type. If the `GPU` type is used, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. If the `InferenceAccelerator` type is used, the value matches the `deviceName` for an InferenceAccelerator specified in a task definition. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -2489,10 +3397,27 @@ def __init__(__self__, *, :param str device_name: The Elastic Inference accelerator device name to override for the task. This parameter must match a deviceName specified in the task definition. :param str device_type: The Elastic Inference accelerator type to use. """ + GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + device_type=device_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + device_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_type is None and 'deviceType' in kwargs: + device_type = kwargs['deviceType'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if device_type is not None: - pulumi.set(__self__, "device_type", device_type) + _setter("device_type", device_type) @property @pulumi.getter(name="deviceName") @@ -2528,9 +3453,24 @@ def __init__(__self__, *, :param str type: The type of constraint. Valid values are `distinctInstance` or `memberOf`. Use `distinctInstance` to ensure that each task in a particular group is running on a different container instance. Use `memberOf` to restrict the selection to a group of valid candidates. :param str expression: A cluster query language expression to apply to the constraint. The expression can have a maximum length of 2000 characters. You can't specify an expression if the constraint type is `distinctInstance`. """ - pulumi.set(__self__, "type", type) + GetTaskExecutionPlacementConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -2568,9 +3508,24 @@ def __init__(__self__, *, For more information, see the [Placement Strategy](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.html) documentation. :param str field: The field to apply the placement strategy against. """ - pulumi.set(__self__, "type", type) + GetTaskExecutionPlacementStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + field=field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + field: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ecs/account_setting_default.py b/sdk/python/pulumi_aws/ecs/account_setting_default.py index b4427077f7a..fb51921e6ff 100644 --- a/sdk/python/pulumi_aws/ecs/account_setting_default.py +++ b/sdk/python/pulumi_aws/ecs/account_setting_default.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountSettingDefaultArgs', 'AccountSettingDefault'] @@ -21,9 +21,24 @@ def __init__(__self__, *, :param pulumi.Input[str] value: State of the setting. Valid values are `enabled` and `disabled`. :param pulumi.Input[str] name: Name of the account setting to set. Valid values are `serviceLongArnFormat`, `taskLongArnFormat`, `containerInstanceLongArnFormat`, `awsvpcTrunking` and `containerInsights`. """ - pulumi.set(__self__, "value", value) + AccountSettingDefaultArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -61,12 +76,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the account setting to set. Valid values are `serviceLongArnFormat`, `taskLongArnFormat`, `containerInstanceLongArnFormat`, `awsvpcTrunking` and `containerInsights`. :param pulumi.Input[str] value: State of the setting. Valid values are `enabled` and `disabled`. """ + _AccountSettingDefaultState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + principal_arn=principal_arn, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + principal_arn: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if principal_arn is None and 'principalArn' in kwargs: + principal_arn = kwargs['principalArn'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if principal_arn is not None: - pulumi.set(__self__, "principal_arn", principal_arn) + _setter("principal_arn", principal_arn) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -179,6 +211,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountSettingDefaultArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecs/capacity_provider.py b/sdk/python/pulumi_aws/ecs/capacity_provider.py index c478979dafc..0c5b9385d56 100644 --- a/sdk/python/pulumi_aws/ecs/capacity_provider.py +++ b/sdk/python/pulumi_aws/ecs/capacity_provider.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the capacity provider. :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. """ - pulumi.set(__self__, "auto_scaling_group_provider", auto_scaling_group_provider) + CapacityProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_scaling_group_provider=auto_scaling_group_provider, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_scaling_group_provider: Optional[pulumi.Input['CapacityProviderAutoScalingGroupProviderArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_group_provider is None and 'autoScalingGroupProvider' in kwargs: + auto_scaling_group_provider = kwargs['autoScalingGroupProvider'] + if auto_scaling_group_provider is None: + raise TypeError("Missing 'auto_scaling_group_provider' argument") + + _setter("auto_scaling_group_provider", auto_scaling_group_provider) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="autoScalingGroupProvider") @@ -84,19 +103,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _CapacityProviderState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_scaling_group_provider=auto_scaling_group_provider, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_scaling_group_provider: Optional[pulumi.Input['CapacityProviderAutoScalingGroupProviderArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_group_provider is None and 'autoScalingGroupProvider' in kwargs: + auto_scaling_group_provider = kwargs['autoScalingGroupProvider'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_scaling_group_provider is not None: - pulumi.set(__self__, "auto_scaling_group_provider", auto_scaling_group_provider) + _setter("auto_scaling_group_provider", auto_scaling_group_provider) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -267,6 +309,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CapacityProviderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -284,6 +330,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = CapacityProviderArgs.__new__(CapacityProviderArgs) + auto_scaling_group_provider = _utilities.configure(auto_scaling_group_provider, CapacityProviderAutoScalingGroupProviderArgs, True) if auto_scaling_group_provider is None and not opts.urn: raise TypeError("Missing required property 'auto_scaling_group_provider'") __props__.__dict__["auto_scaling_group_provider"] = auto_scaling_group_provider diff --git a/sdk/python/pulumi_aws/ecs/cluster.py b/sdk/python/pulumi_aws/ecs/cluster.py index 18c86a773a0..1417c6cac8a 100644 --- a/sdk/python/pulumi_aws/ecs/cluster.py +++ b/sdk/python/pulumi_aws/ecs/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,16 +29,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClusterSettingArgs']]] settings: Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. :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. """ + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + name=name, + service_connect_defaults=service_connect_defaults, + settings=settings, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[pulumi.Input['ClusterConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + service_connect_defaults: Optional[pulumi.Input['ClusterServiceConnectDefaultsArgs']] = None, + settings: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterSettingArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_connect_defaults is None and 'serviceConnectDefaults' in kwargs: + service_connect_defaults = kwargs['serviceConnectDefaults'] + if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if service_connect_defaults is not None: - pulumi.set(__self__, "service_connect_defaults", service_connect_defaults) + _setter("service_connect_defaults", service_connect_defaults) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -121,23 +142,50 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + configuration=configuration, + name=name, + service_connect_defaults=service_connect_defaults, + settings=settings, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['ClusterConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + service_connect_defaults: Optional[pulumi.Input['ClusterServiceConnectDefaultsArgs']] = None, + settings: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterSettingArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_connect_defaults is None and 'serviceConnectDefaults' in kwargs: + service_connect_defaults = kwargs['serviceConnectDefaults'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if service_connect_defaults is not None: - pulumi.set(__self__, "service_connect_defaults", service_connect_defaults) + _setter("service_connect_defaults", service_connect_defaults) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -350,6 +398,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -369,8 +421,10 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ClusterArgs.__new__(ClusterArgs) + configuration = _utilities.configure(configuration, ClusterConfigurationArgs, True) __props__.__dict__["configuration"] = configuration __props__.__dict__["name"] = name + service_connect_defaults = _utilities.configure(service_connect_defaults, ClusterServiceConnectDefaultsArgs, True) __props__.__dict__["service_connect_defaults"] = service_connect_defaults __props__.__dict__["settings"] = settings __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/ecs/cluster_capacity_providers.py b/sdk/python/pulumi_aws/ecs/cluster_capacity_providers.py index 554598c2820..6b823025bac 100644 --- a/sdk/python/pulumi_aws/ecs/cluster_capacity_providers.py +++ b/sdk/python/pulumi_aws/ecs/cluster_capacity_providers.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] capacity_providers: Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. :param pulumi.Input[Sequence[pulumi.Input['ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs']]] default_capacity_provider_strategies: Set of capacity provider strategies to use by default for the cluster. Detailed below. """ - pulumi.set(__self__, "cluster_name", cluster_name) + ClusterCapacityProvidersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_name=cluster_name, + capacity_providers=capacity_providers, + default_capacity_provider_strategies=default_capacity_provider_strategies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_name: Optional[pulumi.Input[str]] = None, + capacity_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_capacity_provider_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_name is None: + raise TypeError("Missing 'cluster_name' argument") + if capacity_providers is None and 'capacityProviders' in kwargs: + capacity_providers = kwargs['capacityProviders'] + if default_capacity_provider_strategies is None and 'defaultCapacityProviderStrategies' in kwargs: + default_capacity_provider_strategies = kwargs['defaultCapacityProviderStrategies'] + + _setter("cluster_name", cluster_name) if capacity_providers is not None: - pulumi.set(__self__, "capacity_providers", capacity_providers) + _setter("capacity_providers", capacity_providers) if default_capacity_provider_strategies is not None: - pulumi.set(__self__, "default_capacity_provider_strategies", default_capacity_provider_strategies) + _setter("default_capacity_provider_strategies", default_capacity_provider_strategies) @property @pulumi.getter(name="clusterName") @@ -80,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_name: Name of the ECS cluster to manage capacity providers for. :param pulumi.Input[Sequence[pulumi.Input['ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs']]] default_capacity_provider_strategies: Set of capacity provider strategies to use by default for the cluster. Detailed below. """ + _ClusterCapacityProvidersState._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_providers=capacity_providers, + cluster_name=cluster_name, + default_capacity_provider_strategies=default_capacity_provider_strategies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + default_capacity_provider_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_providers is None and 'capacityProviders' in kwargs: + capacity_providers = kwargs['capacityProviders'] + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if default_capacity_provider_strategies is None and 'defaultCapacityProviderStrategies' in kwargs: + default_capacity_provider_strategies = kwargs['defaultCapacityProviderStrategies'] + if capacity_providers is not None: - pulumi.set(__self__, "capacity_providers", capacity_providers) + _setter("capacity_providers", capacity_providers) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if default_capacity_provider_strategies is not None: - pulumi.set(__self__, "default_capacity_provider_strategies", default_capacity_provider_strategies) + _setter("default_capacity_provider_strategies", default_capacity_provider_strategies) @property @pulumi.getter(name="capacityProviders") @@ -215,6 +259,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterCapacityProvidersArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecs/get_cluster.py b/sdk/python/pulumi_aws/ecs/get_cluster.py index ba419b4bfc3..2cd30c58627 100644 --- a/sdk/python/pulumi_aws/ecs/get_cluster.py +++ b/sdk/python/pulumi_aws/ecs/get_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ecs/get_container_definition.py b/sdk/python/pulumi_aws/ecs/get_container_definition.py index 361c2b29c19..3e523a48079 100644 --- a/sdk/python/pulumi_aws/ecs/get_container_definition.py +++ b/sdk/python/pulumi_aws/ecs/get_container_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ecs/get_service.py b/sdk/python/pulumi_aws/ecs/get_service.py index fab8e30525d..77f93617a5e 100644 --- a/sdk/python/pulumi_aws/ecs/get_service.py +++ b/sdk/python/pulumi_aws/ecs/get_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ecs/get_task_definition.py b/sdk/python/pulumi_aws/ecs/get_task_definition.py index c5ba445137d..bf93ab74c70 100644 --- a/sdk/python/pulumi_aws/ecs/get_task_definition.py +++ b/sdk/python/pulumi_aws/ecs/get_task_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ecs/get_task_execution.py b/sdk/python/pulumi_aws/ecs/get_task_execution.py index 2fc481b43ac..070fe6f4550 100644 --- a/sdk/python/pulumi_aws/ecs/get_task_execution.py +++ b/sdk/python/pulumi_aws/ecs/get_task_execution.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ecs/outputs.py b/sdk/python/pulumi_aws/ecs/outputs.py index 71403faacd8..c8a71d07449 100644 --- a/sdk/python/pulumi_aws/ecs/outputs.py +++ b/sdk/python/pulumi_aws/ecs/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -94,11 +94,34 @@ def __init__(__self__, *, :param 'CapacityProviderAutoScalingGroupProviderManagedScalingArgs' managed_scaling: Configuration block defining the parameters of the auto scaling. Detailed below. :param str managed_termination_protection: Enables or disables container-aware termination of instances in the auto scaling group when scale-in happens. Valid values are `ENABLED` and `DISABLED`. """ - pulumi.set(__self__, "auto_scaling_group_arn", auto_scaling_group_arn) + CapacityProviderAutoScalingGroupProvider._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_scaling_group_arn=auto_scaling_group_arn, + managed_scaling=managed_scaling, + managed_termination_protection=managed_termination_protection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_scaling_group_arn: Optional[str] = None, + managed_scaling: Optional['outputs.CapacityProviderAutoScalingGroupProviderManagedScaling'] = None, + managed_termination_protection: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_group_arn is None and 'autoScalingGroupArn' in kwargs: + auto_scaling_group_arn = kwargs['autoScalingGroupArn'] + if auto_scaling_group_arn is None: + raise TypeError("Missing 'auto_scaling_group_arn' argument") + if managed_scaling is None and 'managedScaling' in kwargs: + managed_scaling = kwargs['managedScaling'] + if managed_termination_protection is None and 'managedTerminationProtection' in kwargs: + managed_termination_protection = kwargs['managedTerminationProtection'] + + _setter("auto_scaling_group_arn", auto_scaling_group_arn) if managed_scaling is not None: - pulumi.set(__self__, "managed_scaling", managed_scaling) + _setter("managed_scaling", managed_scaling) if managed_termination_protection is not None: - pulumi.set(__self__, "managed_termination_protection", managed_termination_protection) + _setter("managed_termination_protection", managed_termination_protection) @property @pulumi.getter(name="autoScalingGroupArn") @@ -163,16 +186,43 @@ def __init__(__self__, *, :param str status: Whether auto scaling is managed by ECS. Valid values are `ENABLED` and `DISABLED`. :param int target_capacity: Target utilization for the capacity provider. A number between 1 and 100. """ + CapacityProviderAutoScalingGroupProviderManagedScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_warmup_period=instance_warmup_period, + maximum_scaling_step_size=maximum_scaling_step_size, + minimum_scaling_step_size=minimum_scaling_step_size, + status=status, + target_capacity=target_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_warmup_period: Optional[int] = None, + maximum_scaling_step_size: Optional[int] = None, + minimum_scaling_step_size: Optional[int] = None, + status: Optional[str] = None, + target_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_warmup_period is None and 'instanceWarmupPeriod' in kwargs: + instance_warmup_period = kwargs['instanceWarmupPeriod'] + if maximum_scaling_step_size is None and 'maximumScalingStepSize' in kwargs: + maximum_scaling_step_size = kwargs['maximumScalingStepSize'] + if minimum_scaling_step_size is None and 'minimumScalingStepSize' in kwargs: + minimum_scaling_step_size = kwargs['minimumScalingStepSize'] + if target_capacity is None and 'targetCapacity' in kwargs: + target_capacity = kwargs['targetCapacity'] + if instance_warmup_period is not None: - pulumi.set(__self__, "instance_warmup_period", instance_warmup_period) + _setter("instance_warmup_period", instance_warmup_period) if maximum_scaling_step_size is not None: - pulumi.set(__self__, "maximum_scaling_step_size", maximum_scaling_step_size) + _setter("maximum_scaling_step_size", maximum_scaling_step_size) if minimum_scaling_step_size is not None: - pulumi.set(__self__, "minimum_scaling_step_size", minimum_scaling_step_size) + _setter("minimum_scaling_step_size", minimum_scaling_step_size) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if target_capacity is not None: - pulumi.set(__self__, "target_capacity", target_capacity) + _setter("target_capacity", target_capacity) @property @pulumi.getter(name="instanceWarmupPeriod") @@ -243,11 +293,30 @@ def __init__(__self__, *, :param int base: The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. :param int weight: The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + ClusterCapacityProvidersDefaultCapacityProviderStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[str] = None, + base: Optional[int] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -298,8 +367,21 @@ def __init__(__self__, *, """ :param 'ClusterConfigurationExecuteCommandConfigurationArgs' execute_command_configuration: The details of the execute command configuration. Detailed below. """ + ClusterConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + execute_command_configuration=execute_command_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execute_command_configuration: Optional['outputs.ClusterConfigurationExecuteCommandConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execute_command_configuration is None and 'executeCommandConfiguration' in kwargs: + execute_command_configuration = kwargs['executeCommandConfiguration'] + if execute_command_configuration is not None: - pulumi.set(__self__, "execute_command_configuration", execute_command_configuration) + _setter("execute_command_configuration", execute_command_configuration) @property @pulumi.getter(name="executeCommandConfiguration") @@ -340,12 +422,31 @@ def __init__(__self__, *, :param 'ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs' log_configuration: The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. :param str logging: The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. """ + ClusterConfigurationExecuteCommandConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + log_configuration=log_configuration, + logging=logging, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + log_configuration: Optional['outputs.ClusterConfigurationExecuteCommandConfigurationLogConfiguration'] = None, + logging: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if log_configuration is None and 'logConfiguration' in kwargs: + log_configuration = kwargs['logConfiguration'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if log_configuration is not None: - pulumi.set(__self__, "log_configuration", log_configuration) + _setter("log_configuration", log_configuration) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) @property @pulumi.getter(name="kmsKeyId") @@ -412,16 +513,45 @@ def __init__(__self__, *, :param str s3_bucket_name: The name of the S3 bucket to send logs to. :param str s3_key_prefix: An optional folder in the S3 bucket to place logs in. """ + ClusterConfigurationExecuteCommandConfigurationLogConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_encryption_enabled=cloud_watch_encryption_enabled, + cloud_watch_log_group_name=cloud_watch_log_group_name, + s3_bucket_encryption_enabled=s3_bucket_encryption_enabled, + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_encryption_enabled: Optional[bool] = None, + cloud_watch_log_group_name: Optional[str] = None, + s3_bucket_encryption_enabled: Optional[bool] = None, + s3_bucket_name: Optional[str] = None, + s3_key_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_encryption_enabled is None and 'cloudWatchEncryptionEnabled' in kwargs: + cloud_watch_encryption_enabled = kwargs['cloudWatchEncryptionEnabled'] + if cloud_watch_log_group_name is None and 'cloudWatchLogGroupName' in kwargs: + cloud_watch_log_group_name = kwargs['cloudWatchLogGroupName'] + if s3_bucket_encryption_enabled is None and 's3BucketEncryptionEnabled' in kwargs: + s3_bucket_encryption_enabled = kwargs['s3BucketEncryptionEnabled'] + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if cloud_watch_encryption_enabled is not None: - pulumi.set(__self__, "cloud_watch_encryption_enabled", cloud_watch_encryption_enabled) + _setter("cloud_watch_encryption_enabled", cloud_watch_encryption_enabled) if cloud_watch_log_group_name is not None: - pulumi.set(__self__, "cloud_watch_log_group_name", cloud_watch_log_group_name) + _setter("cloud_watch_log_group_name", cloud_watch_log_group_name) if s3_bucket_encryption_enabled is not None: - pulumi.set(__self__, "s3_bucket_encryption_enabled", s3_bucket_encryption_enabled) + _setter("s3_bucket_encryption_enabled", s3_bucket_encryption_enabled) if s3_bucket_name is not None: - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + _setter("s3_bucket_name", s3_bucket_name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter(name="cloudWatchEncryptionEnabled") @@ -471,7 +601,20 @@ def __init__(__self__, *, """ :param str namespace: The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. """ - pulumi.set(__self__, "namespace", namespace) + ClusterServiceConnectDefaults._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) @property @pulumi.getter @@ -491,8 +634,25 @@ def __init__(__self__, *, :param str name: Name of the setting to manage. Valid values: `containerInsights`. :param str value: The value to assign to the setting. Valid values are `enabled` and `disabled`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ClusterSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -539,9 +699,32 @@ def __init__(__self__, *, :param bool enable: Determines whether to use the CloudWatch alarm option in the service deployment process. :param bool rollback: Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is used, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. """ - pulumi.set(__self__, "alarm_names", alarm_names) - pulumi.set(__self__, "enable", enable) - pulumi.set(__self__, "rollback", rollback) + ServiceAlarms._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_names=alarm_names, + enable=enable, + rollback=rollback, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_names: Optional[Sequence[str]] = None, + enable: Optional[bool] = None, + rollback: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_names is None and 'alarmNames' in kwargs: + alarm_names = kwargs['alarmNames'] + if alarm_names is None: + raise TypeError("Missing 'alarm_names' argument") + if enable is None: + raise TypeError("Missing 'enable' argument") + if rollback is None: + raise TypeError("Missing 'rollback' argument") + + _setter("alarm_names", alarm_names) + _setter("enable", enable) + _setter("rollback", rollback) @property @pulumi.getter(name="alarmNames") @@ -596,11 +779,30 @@ def __init__(__self__, *, :param int base: Number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. :param int weight: Relative percentage of the total number of launched tasks that should use the specified capacity provider. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + ServiceCapacityProviderStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[str] = None, + base: Optional[int] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -636,8 +838,25 @@ def __init__(__self__, *, :param bool enable: Whether to enable the deployment circuit breaker logic for the service. :param bool rollback: Whether to enable Amazon ECS to roll back the service if a service deployment fails. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. """ - pulumi.set(__self__, "enable", enable) - pulumi.set(__self__, "rollback", rollback) + ServiceDeploymentCircuitBreaker._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + rollback=rollback, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[bool] = None, + rollback: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + if rollback is None: + raise TypeError("Missing 'rollback' argument") + + _setter("enable", enable) + _setter("rollback", rollback) @property @pulumi.getter @@ -663,8 +882,19 @@ def __init__(__self__, *, """ :param str type: Type of deployment controller. Valid values: `CODE_DEPLOY`, `ECS`, `EXTERNAL`. Default: `ECS`. """ + ServiceDeploymentController._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -713,12 +943,41 @@ def __init__(__self__, *, :param str elb_name: Name of the ELB (Classic) to associate with the service. :param str target_group_arn: ARN of the Load Balancer target group to associate with the service. """ - pulumi.set(__self__, "container_name", container_name) - pulumi.set(__self__, "container_port", container_port) + ServiceLoadBalancer._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + container_port=container_port, + elb_name=elb_name, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[str] = None, + container_port: Optional[int] = None, + elb_name: Optional[str] = None, + target_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + if container_port is None: + raise TypeError("Missing 'container_port' argument") + if elb_name is None and 'elbName' in kwargs: + elb_name = kwargs['elbName'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("container_name", container_name) + _setter("container_port", container_port) if elb_name is not None: - pulumi.set(__self__, "elb_name", elb_name) + _setter("elb_name", elb_name) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter(name="containerName") @@ -787,11 +1046,32 @@ def __init__(__self__, *, For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) :param Sequence[str] security_groups: Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. """ - pulumi.set(__self__, "subnets", subnets) + ServiceNetworkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[Sequence[str]] = None, + assign_public_ip: Optional[bool] = None, + security_groups: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -834,9 +1114,24 @@ def __init__(__self__, *, > **Note:** for `spread`, `host` and `instanceId` will be normalized, by AWS, to be `instanceId`. This means the statefile will show `instanceId` but your config will differ if you use `host`. """ - pulumi.set(__self__, "type", type) + ServiceOrderedPlacementStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + field=field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + field: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) @property @pulumi.getter @@ -869,9 +1164,24 @@ def __init__(__self__, *, :param str type: Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. :param str expression: Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). """ - pulumi.set(__self__, "type", type) + ServicePlacementConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -920,13 +1230,34 @@ def __init__(__self__, *, :param str namespace: The namespace name or ARN of the `servicediscovery.HttpNamespace` for use with Service Connect. :param Sequence['ServiceServiceConnectConfigurationServiceArgs'] services: The list of Service Connect service objects. See below. """ - pulumi.set(__self__, "enabled", enabled) + ServiceServiceConnectConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_configuration=log_configuration, + namespace=namespace, + services=services, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_configuration: Optional['outputs.ServiceServiceConnectConfigurationLogConfiguration'] = None, + namespace: Optional[str] = None, + services: Optional[Sequence['outputs.ServiceServiceConnectConfigurationService']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_configuration is None and 'logConfiguration' in kwargs: + log_configuration = kwargs['logConfiguration'] + + _setter("enabled", enabled) if log_configuration is not None: - pulumi.set(__self__, "log_configuration", log_configuration) + _setter("log_configuration", log_configuration) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if services is not None: - pulumi.set(__self__, "services", services) + _setter("services", services) @property @pulumi.getter @@ -991,11 +1322,32 @@ def __init__(__self__, *, :param Mapping[str, str] options: The configuration options to send to the log driver. :param Sequence['ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs'] secret_options: The secrets to pass to the log configuration. See below. """ - pulumi.set(__self__, "log_driver", log_driver) + ServiceServiceConnectConfigurationLogConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_driver=log_driver, + options=options, + secret_options=secret_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_driver: Optional[str] = None, + options: Optional[Mapping[str, str]] = None, + secret_options: Optional[Sequence['outputs.ServiceServiceConnectConfigurationLogConfigurationSecretOption']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_driver is None and 'logDriver' in kwargs: + log_driver = kwargs['logDriver'] + if log_driver is None: + raise TypeError("Missing 'log_driver' argument") + if secret_options is None and 'secretOptions' in kwargs: + secret_options = kwargs['secretOptions'] + + _setter("log_driver", log_driver) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if secret_options is not None: - pulumi.set(__self__, "secret_options", secret_options) + _setter("secret_options", secret_options) @property @pulumi.getter(name="logDriver") @@ -1048,8 +1400,27 @@ def __init__(__self__, *, :param str name: The name of the secret. :param str value_from: The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value_from", value_from) + ServiceServiceConnectConfigurationLogConfigurationSecretOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value_from=value_from, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value_from: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value_from is None and 'valueFrom' in kwargs: + value_from = kwargs['valueFrom'] + if value_from is None: + raise TypeError("Missing 'value_from' argument") + + _setter("name", name) + _setter("value_from", value_from) @property @pulumi.getter @@ -1104,13 +1475,40 @@ def __init__(__self__, *, :param str discovery_name: The name of the new AWS Cloud Map service that Amazon ECS creates for this Amazon ECS service. :param int ingress_port_override: The port number for the Service Connect proxy to listen on. """ - pulumi.set(__self__, "port_name", port_name) + ServiceServiceConnectConfigurationService._configure( + lambda key, value: pulumi.set(__self__, key, value), + port_name=port_name, + client_alias=client_alias, + discovery_name=discovery_name, + ingress_port_override=ingress_port_override, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port_name: Optional[str] = None, + client_alias: Optional[Sequence['outputs.ServiceServiceConnectConfigurationServiceClientAlias']] = None, + discovery_name: Optional[str] = None, + ingress_port_override: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port_name is None and 'portName' in kwargs: + port_name = kwargs['portName'] + if port_name is None: + raise TypeError("Missing 'port_name' argument") + if client_alias is None and 'clientAlias' in kwargs: + client_alias = kwargs['clientAlias'] + if discovery_name is None and 'discoveryName' in kwargs: + discovery_name = kwargs['discoveryName'] + if ingress_port_override is None and 'ingressPortOverride' in kwargs: + ingress_port_override = kwargs['ingressPortOverride'] + + _setter("port_name", port_name) if client_alias is not None: - pulumi.set(__self__, "client_alias", client_alias) + _setter("client_alias", client_alias) if discovery_name is not None: - pulumi.set(__self__, "discovery_name", discovery_name) + _setter("discovery_name", discovery_name) if ingress_port_override is not None: - pulumi.set(__self__, "ingress_port_override", ingress_port_override) + _setter("ingress_port_override", ingress_port_override) @property @pulumi.getter(name="portName") @@ -1171,9 +1569,26 @@ def __init__(__self__, *, :param int port: The listening port number for the Service Connect proxy. This port is available inside of all of the tasks within the same namespace. :param str dns_name: The name that you use in the applications of client tasks to connect to this service. """ - pulumi.set(__self__, "port", port) + ServiceServiceConnectConfigurationServiceClientAlias._configure( + lambda key, value: pulumi.set(__self__, key, value), + port=port, + dns_name=dns_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + port: Optional[int] = None, + dns_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if port is None: + raise TypeError("Missing 'port' argument") + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + + _setter("port", port) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) @property @pulumi.getter @@ -1226,13 +1641,38 @@ def __init__(__self__, *, :param int container_port: Port value, already specified in the task definition, to be used for your service discovery service. :param int port: Port value used if your Service Discovery service specified an SRV record. """ - pulumi.set(__self__, "registry_arn", registry_arn) + ServiceServiceRegistries._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_arn=registry_arn, + container_name=container_name, + container_port=container_port, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_arn: Optional[str] = None, + container_name: Optional[str] = None, + container_port: Optional[int] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_arn is None and 'registryArn' in kwargs: + registry_arn = kwargs['registryArn'] + if registry_arn is None: + raise TypeError("Missing 'registry_arn' argument") + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + + _setter("registry_arn", registry_arn) if container_name is not None: - pulumi.set(__self__, "container_name", container_name) + _setter("container_name", container_name) if container_port is not None: - pulumi.set(__self__, "container_port", container_port) + _setter("container_port", container_port) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="registryArn") @@ -1291,7 +1731,22 @@ def __init__(__self__, *, """ :param int size_in_gib: The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. """ - pulumi.set(__self__, "size_in_gib", size_in_gib) + TaskDefinitionEphemeralStorage._configure( + lambda key, value: pulumi.set(__self__, key, value), + size_in_gib=size_in_gib, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size_in_gib: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size_in_gib is None and 'sizeInGib' in kwargs: + size_in_gib = kwargs['sizeInGib'] + if size_in_gib is None: + raise TypeError("Missing 'size_in_gib' argument") + + _setter("size_in_gib", size_in_gib) @property @pulumi.getter(name="sizeInGib") @@ -1330,8 +1785,29 @@ def __init__(__self__, *, :param str device_name: Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement. :param str device_type: Elastic Inference accelerator type to use. """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "device_type", device_type) + TaskDefinitionInferenceAccelerator._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + device_type=device_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + device_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if device_type is None and 'deviceType' in kwargs: + device_type = kwargs['deviceType'] + if device_type is None: + raise TypeError("Missing 'device_type' argument") + + _setter("device_name", device_name) + _setter("device_type", device_type) @property @pulumi.getter(name="deviceName") @@ -1359,9 +1835,24 @@ def __init__(__self__, *, :param str type: Type of constraint. Use `memberOf` to restrict selection to a group of valid candidates. Note that `distinctInstance` is not supported in task definitions. :param str expression: Cluster Query Language expression to apply to the constraint. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). """ - pulumi.set(__self__, "type", type) + TaskDefinitionPlacementConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -1408,11 +1899,30 @@ def __init__(__self__, *, :param Mapping[str, str] properties: Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping. :param str type: Proxy type. The default value is `APPMESH`. The only supported value is `APPMESH`. """ - pulumi.set(__self__, "container_name", container_name) + TaskDefinitionProxyConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + properties=properties, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[str] = None, + properties: Optional[Mapping[str, str]] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + + _setter("container_name", container_name) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="containerName") @@ -1467,10 +1977,27 @@ def __init__(__self__, *, :param str cpu_architecture: Must be set to either `X86_64` or `ARM64`; see [cpu architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) :param str operating_system_family: If the `requires_compatibilities` is `FARGATE` this field is required; must be set to a valid option from the [operating system family in the runtime platform](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) setting """ + TaskDefinitionRuntimePlatform._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_architecture=cpu_architecture, + operating_system_family=operating_system_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_architecture: Optional[str] = None, + operating_system_family: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_architecture is None and 'cpuArchitecture' in kwargs: + cpu_architecture = kwargs['cpuArchitecture'] + if operating_system_family is None and 'operatingSystemFamily' in kwargs: + operating_system_family = kwargs['operatingSystemFamily'] + if cpu_architecture is not None: - pulumi.set(__self__, "cpu_architecture", cpu_architecture) + _setter("cpu_architecture", cpu_architecture) if operating_system_family is not None: - pulumi.set(__self__, "operating_system_family", operating_system_family) + _setter("operating_system_family", operating_system_family) @property @pulumi.getter(name="cpuArchitecture") @@ -1528,15 +2055,44 @@ def __init__(__self__, *, :param 'TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs' fsx_windows_file_server_volume_configuration: Configuration block for an FSX Windows File Server volume. Detailed below. :param str host_path: Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished. """ - pulumi.set(__self__, "name", name) + TaskDefinitionVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + docker_volume_configuration=docker_volume_configuration, + efs_volume_configuration=efs_volume_configuration, + fsx_windows_file_server_volume_configuration=fsx_windows_file_server_volume_configuration, + host_path=host_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + docker_volume_configuration: Optional['outputs.TaskDefinitionVolumeDockerVolumeConfiguration'] = None, + efs_volume_configuration: Optional['outputs.TaskDefinitionVolumeEfsVolumeConfiguration'] = None, + fsx_windows_file_server_volume_configuration: Optional['outputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration'] = None, + host_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if docker_volume_configuration is None and 'dockerVolumeConfiguration' in kwargs: + docker_volume_configuration = kwargs['dockerVolumeConfiguration'] + if efs_volume_configuration is None and 'efsVolumeConfiguration' in kwargs: + efs_volume_configuration = kwargs['efsVolumeConfiguration'] + if fsx_windows_file_server_volume_configuration is None and 'fsxWindowsFileServerVolumeConfiguration' in kwargs: + fsx_windows_file_server_volume_configuration = kwargs['fsxWindowsFileServerVolumeConfiguration'] + if host_path is None and 'hostPath' in kwargs: + host_path = kwargs['hostPath'] + + _setter("name", name) if docker_volume_configuration is not None: - pulumi.set(__self__, "docker_volume_configuration", docker_volume_configuration) + _setter("docker_volume_configuration", docker_volume_configuration) if efs_volume_configuration is not None: - pulumi.set(__self__, "efs_volume_configuration", efs_volume_configuration) + _setter("efs_volume_configuration", efs_volume_configuration) if fsx_windows_file_server_volume_configuration is not None: - pulumi.set(__self__, "fsx_windows_file_server_volume_configuration", fsx_windows_file_server_volume_configuration) + _setter("fsx_windows_file_server_volume_configuration", fsx_windows_file_server_volume_configuration) if host_path is not None: - pulumi.set(__self__, "host_path", host_path) + _setter("host_path", host_path) @property @pulumi.getter @@ -1612,16 +2168,37 @@ def __init__(__self__, *, :param Mapping[str, str] labels: Map of custom metadata to add to your Docker volume. :param str scope: Scope for the Docker volume, which determines its lifecycle, either `task` or `shared`. Docker volumes that are scoped to a `task` are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as `shared` persist after the task stops. """ + TaskDefinitionVolumeDockerVolumeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoprovision=autoprovision, + driver=driver, + driver_opts=driver_opts, + labels=labels, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoprovision: Optional[bool] = None, + driver: Optional[str] = None, + driver_opts: Optional[Mapping[str, str]] = None, + labels: Optional[Mapping[str, str]] = None, + scope: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if driver_opts is None and 'driverOpts' in kwargs: + driver_opts = kwargs['driverOpts'] + if autoprovision is not None: - pulumi.set(__self__, "autoprovision", autoprovision) + _setter("autoprovision", autoprovision) if driver is not None: - pulumi.set(__self__, "driver", driver) + _setter("driver", driver) if driver_opts is not None: - pulumi.set(__self__, "driver_opts", driver_opts) + _setter("driver_opts", driver_opts) if labels is not None: - pulumi.set(__self__, "labels", labels) + _setter("labels", labels) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) @property @pulumi.getter @@ -1704,15 +2281,46 @@ def __init__(__self__, *, :param str transit_encryption: Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. :param int transit_encryption_port: Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. """ - pulumi.set(__self__, "file_system_id", file_system_id) + TaskDefinitionVolumeEfsVolumeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + authorization_config=authorization_config, + root_directory=root_directory, + transit_encryption=transit_encryption, + transit_encryption_port=transit_encryption_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[str] = None, + authorization_config: Optional['outputs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig'] = None, + root_directory: Optional[str] = None, + transit_encryption: Optional[str] = None, + transit_encryption_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + if authorization_config is None and 'authorizationConfig' in kwargs: + authorization_config = kwargs['authorizationConfig'] + if root_directory is None and 'rootDirectory' in kwargs: + root_directory = kwargs['rootDirectory'] + if transit_encryption is None and 'transitEncryption' in kwargs: + transit_encryption = kwargs['transitEncryption'] + if transit_encryption_port is None and 'transitEncryptionPort' in kwargs: + transit_encryption_port = kwargs['transitEncryptionPort'] + + _setter("file_system_id", file_system_id) if authorization_config is not None: - pulumi.set(__self__, "authorization_config", authorization_config) + _setter("authorization_config", authorization_config) if root_directory is not None: - pulumi.set(__self__, "root_directory", root_directory) + _setter("root_directory", root_directory) if transit_encryption is not None: - pulumi.set(__self__, "transit_encryption", transit_encryption) + _setter("transit_encryption", transit_encryption) if transit_encryption_port is not None: - pulumi.set(__self__, "transit_encryption_port", transit_encryption_port) + _setter("transit_encryption_port", transit_encryption_port) @property @pulumi.getter(name="fileSystemId") @@ -1781,10 +2389,25 @@ def __init__(__self__, *, :param str access_point_id: Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration. :param str iam: Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. """ + TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_point_id=access_point_id, + iam=iam, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_point_id: Optional[str] = None, + iam: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_point_id is None and 'accessPointId' in kwargs: + access_point_id = kwargs['accessPointId'] + if access_point_id is not None: - pulumi.set(__self__, "access_point_id", access_point_id) + _setter("access_point_id", access_point_id) if iam is not None: - pulumi.set(__self__, "iam", iam) + _setter("iam", iam) @property @pulumi.getter(name="accessPointId") @@ -1835,9 +2458,36 @@ def __init__(__self__, *, :param str file_system_id: The Amazon FSx for Windows File Server file system ID to use. :param str root_directory: The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host. """ - pulumi.set(__self__, "authorization_config", authorization_config) - pulumi.set(__self__, "file_system_id", file_system_id) - pulumi.set(__self__, "root_directory", root_directory) + TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_config=authorization_config, + file_system_id=file_system_id, + root_directory=root_directory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_config: Optional['outputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig'] = None, + file_system_id: Optional[str] = None, + root_directory: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_config is None and 'authorizationConfig' in kwargs: + authorization_config = kwargs['authorizationConfig'] + if authorization_config is None: + raise TypeError("Missing 'authorization_config' argument") + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + if root_directory is None and 'rootDirectory' in kwargs: + root_directory = kwargs['rootDirectory'] + if root_directory is None: + raise TypeError("Missing 'root_directory' argument") + + _setter("authorization_config", authorization_config) + _setter("file_system_id", file_system_id) + _setter("root_directory", root_directory) @property @pulumi.getter(name="authorizationConfig") @@ -1890,8 +2540,27 @@ def __init__(__self__, *, :param str credentials_parameter: The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials. :param str domain: A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2. """ - pulumi.set(__self__, "credentials_parameter", credentials_parameter) - pulumi.set(__self__, "domain", domain) + TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials_parameter=credentials_parameter, + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials_parameter: Optional[str] = None, + domain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credentials_parameter is None and 'credentialsParameter' in kwargs: + credentials_parameter = kwargs['credentialsParameter'] + if credentials_parameter is None: + raise TypeError("Missing 'credentials_parameter' argument") + if domain is None: + raise TypeError("Missing 'domain' argument") + + _setter("credentials_parameter", credentials_parameter) + _setter("domain", domain) @property @pulumi.getter(name="credentialsParameter") @@ -1938,10 +2607,31 @@ def __init__(__self__, *, :param int weight: The relative percentage of the total number of launched tasks that should use the specified capacity provider. :param int base: The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) - pulumi.set(__self__, "weight", weight) + TaskSetCapacityProviderStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + weight=weight, + base=base, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[str] = None, + weight: Optional[int] = None, + base: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("capacity_provider", capacity_provider) + _setter("weight", weight) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) @property @pulumi.getter(name="capacityProvider") @@ -2006,13 +2696,40 @@ def __init__(__self__, *, :param str load_balancer_name: The name of the ELB (Classic) to associate with the service. :param str target_group_arn: The ARN of the Load Balancer target group to associate with the service. """ - pulumi.set(__self__, "container_name", container_name) + TaskSetLoadBalancer._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + container_port=container_port, + load_balancer_name=load_balancer_name, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[str] = None, + container_port: Optional[int] = None, + load_balancer_name: Optional[str] = None, + target_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + if load_balancer_name is None and 'loadBalancerName' in kwargs: + load_balancer_name = kwargs['loadBalancerName'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("container_name", container_name) if container_port is not None: - pulumi.set(__self__, "container_port", container_port) + _setter("container_port", container_port) if load_balancer_name is not None: - pulumi.set(__self__, "load_balancer_name", load_balancer_name) + _setter("load_balancer_name", load_balancer_name) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter(name="containerName") @@ -2081,11 +2798,32 @@ def __init__(__self__, *, For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html). :param Sequence[str] security_groups: The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. Maximum of 5. """ - pulumi.set(__self__, "subnets", subnets) + TaskSetNetworkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[Sequence[str]] = None, + assign_public_ip: Optional[bool] = None, + security_groups: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -2123,10 +2861,23 @@ def __init__(__self__, *, :param str unit: The unit of measure for the scale value. Default: `PERCENT`. :param float value: The value, specified as a percent total of a service's `desiredCount`, to scale the task set. Defaults to `0` if not specified. Accepted values are numbers between 0.0 and 100.0. """ + TaskSetScale._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -2179,13 +2930,38 @@ def __init__(__self__, *, :param int container_port: The port value, already specified in the task definition, to be used for your service discovery service. :param int port: The port value used if your Service Discovery service specified an SRV record. """ - pulumi.set(__self__, "registry_arn", registry_arn) + TaskSetServiceRegistries._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_arn=registry_arn, + container_name=container_name, + container_port=container_port, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_arn: Optional[str] = None, + container_name: Optional[str] = None, + container_port: Optional[int] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_arn is None and 'registryArn' in kwargs: + registry_arn = kwargs['registryArn'] + if registry_arn is None: + raise TypeError("Missing 'registry_arn' argument") + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + + _setter("registry_arn", registry_arn) if container_name is not None: - pulumi.set(__self__, "container_name", container_name) + _setter("container_name", container_name) if container_port is not None: - pulumi.set(__self__, "container_port", container_port) + _setter("container_port", container_port) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="registryArn") @@ -2224,7 +3000,20 @@ def port(self) -> Optional[int]: class GetClusterServiceConnectDefaultResult(dict): def __init__(__self__, *, namespace: str): - pulumi.set(__self__, "namespace", namespace) + GetClusterServiceConnectDefaultResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) @property @pulumi.getter @@ -2237,8 +3026,25 @@ class GetClusterSettingResult(dict): def __init__(__self__, *, name: str, value: str): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + GetClusterSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2262,11 +3068,30 @@ def __init__(__self__, *, :param int base: The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. :param int weight: The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + GetTaskExecutionCapacityProviderStrategyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[str] = None, + base: Optional[int] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -2306,11 +3131,32 @@ def __init__(__self__, *, For more information, see the [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) documentation. :param Sequence[str] security_groups: Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. """ - pulumi.set(__self__, "subnets", subnets) + GetTaskExecutionNetworkConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[Sequence[str]] = None, + assign_public_ip: Optional[bool] = None, + security_groups: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -2356,18 +3202,47 @@ def __init__(__self__, *, :param str memory: The memory override for the task. :param str task_role_arn: Amazon Resource Name (ARN) of the role that containers in this task can assume. """ + GetTaskExecutionOverridesResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_overrides=container_overrides, + cpu=cpu, + execution_role_arn=execution_role_arn, + inference_accelerator_overrides=inference_accelerator_overrides, + memory=memory, + task_role_arn=task_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_overrides: Optional[Sequence['outputs.GetTaskExecutionOverridesContainerOverrideResult']] = None, + cpu: Optional[str] = None, + execution_role_arn: Optional[str] = None, + inference_accelerator_overrides: Optional[Sequence['outputs.GetTaskExecutionOverridesInferenceAcceleratorOverrideResult']] = None, + memory: Optional[str] = None, + task_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_overrides is None and 'containerOverrides' in kwargs: + container_overrides = kwargs['containerOverrides'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if inference_accelerator_overrides is None and 'inferenceAcceleratorOverrides' in kwargs: + inference_accelerator_overrides = kwargs['inferenceAcceleratorOverrides'] + if task_role_arn is None and 'taskRoleArn' in kwargs: + task_role_arn = kwargs['taskRoleArn'] + if container_overrides is not None: - pulumi.set(__self__, "container_overrides", container_overrides) + _setter("container_overrides", container_overrides) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if inference_accelerator_overrides is not None: - pulumi.set(__self__, "inference_accelerator_overrides", inference_accelerator_overrides) + _setter("inference_accelerator_overrides", inference_accelerator_overrides) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if task_role_arn is not None: - pulumi.set(__self__, "task_role_arn", task_role_arn) + _setter("task_role_arn", task_role_arn) @property @pulumi.getter(name="containerOverrides") @@ -2437,19 +3312,48 @@ def __init__(__self__, *, :param int memory_reservation: The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. :param Sequence['GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs'] resource_requirements: The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. See below. """ - pulumi.set(__self__, "name", name) + GetTaskExecutionOverridesContainerOverrideResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + commands=commands, + cpu=cpu, + environments=environments, + memory=memory, + memory_reservation=memory_reservation, + resource_requirements=resource_requirements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + commands: Optional[Sequence[str]] = None, + cpu: Optional[int] = None, + environments: Optional[Sequence['outputs.GetTaskExecutionOverridesContainerOverrideEnvironmentResult']] = None, + memory: Optional[int] = None, + memory_reservation: Optional[int] = None, + resource_requirements: Optional[Sequence['outputs.GetTaskExecutionOverridesContainerOverrideResourceRequirementResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if memory_reservation is None and 'memoryReservation' in kwargs: + memory_reservation = kwargs['memoryReservation'] + if resource_requirements is None and 'resourceRequirements' in kwargs: + resource_requirements = kwargs['resourceRequirements'] + + _setter("name", name) if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if environments is not None: - pulumi.set(__self__, "environments", environments) + _setter("environments", environments) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if memory_reservation is not None: - pulumi.set(__self__, "memory_reservation", memory_reservation) + _setter("memory_reservation", memory_reservation) if resource_requirements is not None: - pulumi.set(__self__, "resource_requirements", resource_requirements) + _setter("resource_requirements", resource_requirements) @property @pulumi.getter @@ -2517,8 +3421,25 @@ def __init__(__self__, *, :param str key: The name of the key-value pair. For environment variables, this is the name of the environment variable. :param str value: The value of the key-value pair. For environment variables, this is the value of the environment variable. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + GetTaskExecutionOverridesContainerOverrideEnvironmentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -2546,8 +3467,25 @@ def __init__(__self__, *, :param str type: The type of resource to assign to a container. Valid values are `GPU` or `InferenceAccelerator`. :param str value: The value for the specified resource type. If the `GPU` type is used, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. If the `InferenceAccelerator` type is used, the value matches the `deviceName` for an InferenceAccelerator specified in a task definition. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GetTaskExecutionOverridesContainerOverrideResourceRequirementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -2575,10 +3513,27 @@ def __init__(__self__, *, :param str device_name: The Elastic Inference accelerator device name to override for the task. This parameter must match a deviceName specified in the task definition. :param str device_type: The Elastic Inference accelerator type to use. """ + GetTaskExecutionOverridesInferenceAcceleratorOverrideResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + device_type=device_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + device_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_type is None and 'deviceType' in kwargs: + device_type = kwargs['deviceType'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if device_type is not None: - pulumi.set(__self__, "device_type", device_type) + _setter("device_type", device_type) @property @pulumi.getter(name="deviceName") @@ -2606,9 +3561,24 @@ def __init__(__self__, *, :param str type: The type of constraint. Valid values are `distinctInstance` or `memberOf`. Use `distinctInstance` to ensure that each task in a particular group is running on a different container instance. Use `memberOf` to restrict the selection to a group of valid candidates. :param str expression: A cluster query language expression to apply to the constraint. The expression can have a maximum length of 2000 characters. You can't specify an expression if the constraint type is `distinctInstance`. """ - pulumi.set(__self__, "type", type) + GetTaskExecutionPlacementConstraintResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -2638,9 +3608,24 @@ def __init__(__self__, *, For more information, see the [Placement Strategy](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.html) documentation. :param str field: The field to apply the placement strategy against. """ - pulumi.set(__self__, "type", type) + GetTaskExecutionPlacementStrategyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + field=field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + field: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ecs/service.py b/sdk/python/pulumi_aws/ecs/service.py index 1aeb6de1ac2..0c66e9026a2 100644 --- a/sdk/python/pulumi_aws/ecs/service.py +++ b/sdk/python/pulumi_aws/ecs/service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -77,62 +77,173 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. :param pulumi.Input[bool] wait_for_steady_state: If `true`, this provider will wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. """ + ServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + capacity_provider_strategies=capacity_provider_strategies, + cluster=cluster, + deployment_circuit_breaker=deployment_circuit_breaker, + deployment_controller=deployment_controller, + deployment_maximum_percent=deployment_maximum_percent, + deployment_minimum_healthy_percent=deployment_minimum_healthy_percent, + desired_count=desired_count, + enable_ecs_managed_tags=enable_ecs_managed_tags, + enable_execute_command=enable_execute_command, + force_new_deployment=force_new_deployment, + health_check_grace_period_seconds=health_check_grace_period_seconds, + iam_role=iam_role, + launch_type=launch_type, + load_balancers=load_balancers, + name=name, + network_configuration=network_configuration, + ordered_placement_strategies=ordered_placement_strategies, + placement_constraints=placement_constraints, + platform_version=platform_version, + propagate_tags=propagate_tags, + scheduling_strategy=scheduling_strategy, + service_connect_configuration=service_connect_configuration, + service_registries=service_registries, + tags=tags, + task_definition=task_definition, + triggers=triggers, + wait_for_steady_state=wait_for_steady_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input['ServiceAlarmsArgs']] = None, + capacity_provider_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceCapacityProviderStrategyArgs']]]] = None, + cluster: Optional[pulumi.Input[str]] = None, + deployment_circuit_breaker: Optional[pulumi.Input['ServiceDeploymentCircuitBreakerArgs']] = None, + deployment_controller: Optional[pulumi.Input['ServiceDeploymentControllerArgs']] = None, + deployment_maximum_percent: Optional[pulumi.Input[int]] = None, + deployment_minimum_healthy_percent: Optional[pulumi.Input[int]] = None, + desired_count: Optional[pulumi.Input[int]] = None, + enable_ecs_managed_tags: Optional[pulumi.Input[bool]] = None, + enable_execute_command: Optional[pulumi.Input[bool]] = None, + force_new_deployment: Optional[pulumi.Input[bool]] = None, + health_check_grace_period_seconds: Optional[pulumi.Input[int]] = None, + iam_role: Optional[pulumi.Input[str]] = None, + launch_type: Optional[pulumi.Input[str]] = None, + load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceLoadBalancerArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + network_configuration: Optional[pulumi.Input['ServiceNetworkConfigurationArgs']] = None, + ordered_placement_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceOrderedPlacementStrategyArgs']]]] = None, + placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePlacementConstraintArgs']]]] = None, + platform_version: Optional[pulumi.Input[str]] = None, + propagate_tags: Optional[pulumi.Input[str]] = None, + scheduling_strategy: Optional[pulumi.Input[str]] = None, + service_connect_configuration: Optional[pulumi.Input['ServiceServiceConnectConfigurationArgs']] = None, + service_registries: Optional[pulumi.Input['ServiceServiceRegistriesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + task_definition: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + wait_for_steady_state: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if deployment_circuit_breaker is None and 'deploymentCircuitBreaker' in kwargs: + deployment_circuit_breaker = kwargs['deploymentCircuitBreaker'] + if deployment_controller is None and 'deploymentController' in kwargs: + deployment_controller = kwargs['deploymentController'] + if deployment_maximum_percent is None and 'deploymentMaximumPercent' in kwargs: + deployment_maximum_percent = kwargs['deploymentMaximumPercent'] + if deployment_minimum_healthy_percent is None and 'deploymentMinimumHealthyPercent' in kwargs: + deployment_minimum_healthy_percent = kwargs['deploymentMinimumHealthyPercent'] + if desired_count is None and 'desiredCount' in kwargs: + desired_count = kwargs['desiredCount'] + if enable_ecs_managed_tags is None and 'enableEcsManagedTags' in kwargs: + enable_ecs_managed_tags = kwargs['enableEcsManagedTags'] + if enable_execute_command is None and 'enableExecuteCommand' in kwargs: + enable_execute_command = kwargs['enableExecuteCommand'] + if force_new_deployment is None and 'forceNewDeployment' in kwargs: + force_new_deployment = kwargs['forceNewDeployment'] + if health_check_grace_period_seconds is None and 'healthCheckGracePeriodSeconds' in kwargs: + health_check_grace_period_seconds = kwargs['healthCheckGracePeriodSeconds'] + if iam_role is None and 'iamRole' in kwargs: + iam_role = kwargs['iamRole'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if load_balancers is None and 'loadBalancers' in kwargs: + load_balancers = kwargs['loadBalancers'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if ordered_placement_strategies is None and 'orderedPlacementStrategies' in kwargs: + ordered_placement_strategies = kwargs['orderedPlacementStrategies'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if scheduling_strategy is None and 'schedulingStrategy' in kwargs: + scheduling_strategy = kwargs['schedulingStrategy'] + if service_connect_configuration is None and 'serviceConnectConfiguration' in kwargs: + service_connect_configuration = kwargs['serviceConnectConfiguration'] + if service_registries is None and 'serviceRegistries' in kwargs: + service_registries = kwargs['serviceRegistries'] + if task_definition is None and 'taskDefinition' in kwargs: + task_definition = kwargs['taskDefinition'] + if wait_for_steady_state is None and 'waitForSteadyState' in kwargs: + wait_for_steady_state = kwargs['waitForSteadyState'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if cluster is not None: - pulumi.set(__self__, "cluster", cluster) + _setter("cluster", cluster) if deployment_circuit_breaker is not None: - pulumi.set(__self__, "deployment_circuit_breaker", deployment_circuit_breaker) + _setter("deployment_circuit_breaker", deployment_circuit_breaker) if deployment_controller is not None: - pulumi.set(__self__, "deployment_controller", deployment_controller) + _setter("deployment_controller", deployment_controller) if deployment_maximum_percent is not None: - pulumi.set(__self__, "deployment_maximum_percent", deployment_maximum_percent) + _setter("deployment_maximum_percent", deployment_maximum_percent) if deployment_minimum_healthy_percent is not None: - pulumi.set(__self__, "deployment_minimum_healthy_percent", deployment_minimum_healthy_percent) + _setter("deployment_minimum_healthy_percent", deployment_minimum_healthy_percent) if desired_count is not None: - pulumi.set(__self__, "desired_count", desired_count) + _setter("desired_count", desired_count) if enable_ecs_managed_tags is not None: - pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) + _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - pulumi.set(__self__, "enable_execute_command", enable_execute_command) + _setter("enable_execute_command", enable_execute_command) if force_new_deployment is not None: - pulumi.set(__self__, "force_new_deployment", force_new_deployment) + _setter("force_new_deployment", force_new_deployment) if health_check_grace_period_seconds is not None: - pulumi.set(__self__, "health_check_grace_period_seconds", health_check_grace_period_seconds) + _setter("health_check_grace_period_seconds", health_check_grace_period_seconds) if iam_role is not None: - pulumi.set(__self__, "iam_role", iam_role) + _setter("iam_role", iam_role) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) + _setter("load_balancers", load_balancers) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if ordered_placement_strategies is not None: - pulumi.set(__self__, "ordered_placement_strategies", ordered_placement_strategies) + _setter("ordered_placement_strategies", ordered_placement_strategies) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if scheduling_strategy is not None: - pulumi.set(__self__, "scheduling_strategy", scheduling_strategy) + _setter("scheduling_strategy", scheduling_strategy) if service_connect_configuration is not None: - pulumi.set(__self__, "service_connect_configuration", service_connect_configuration) + _setter("service_connect_configuration", service_connect_configuration) if service_registries is not None: - pulumi.set(__self__, "service_registries", service_registries) + _setter("service_registries", service_registries) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if task_definition is not None: - pulumi.set(__self__, "task_definition", task_definition) + _setter("task_definition", task_definition) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) if wait_for_steady_state is not None: - pulumi.set(__self__, "wait_for_steady_state", wait_for_steady_state) + _setter("wait_for_steady_state", wait_for_steady_state) @property @pulumi.getter @@ -539,67 +650,182 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. :param pulumi.Input[bool] wait_for_steady_state: If `true`, this provider will wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. """ + _ServiceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + capacity_provider_strategies=capacity_provider_strategies, + cluster=cluster, + deployment_circuit_breaker=deployment_circuit_breaker, + deployment_controller=deployment_controller, + deployment_maximum_percent=deployment_maximum_percent, + deployment_minimum_healthy_percent=deployment_minimum_healthy_percent, + desired_count=desired_count, + enable_ecs_managed_tags=enable_ecs_managed_tags, + enable_execute_command=enable_execute_command, + force_new_deployment=force_new_deployment, + health_check_grace_period_seconds=health_check_grace_period_seconds, + iam_role=iam_role, + launch_type=launch_type, + load_balancers=load_balancers, + name=name, + network_configuration=network_configuration, + ordered_placement_strategies=ordered_placement_strategies, + placement_constraints=placement_constraints, + platform_version=platform_version, + propagate_tags=propagate_tags, + scheduling_strategy=scheduling_strategy, + service_connect_configuration=service_connect_configuration, + service_registries=service_registries, + tags=tags, + tags_all=tags_all, + task_definition=task_definition, + triggers=triggers, + wait_for_steady_state=wait_for_steady_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input['ServiceAlarmsArgs']] = None, + capacity_provider_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceCapacityProviderStrategyArgs']]]] = None, + cluster: Optional[pulumi.Input[str]] = None, + deployment_circuit_breaker: Optional[pulumi.Input['ServiceDeploymentCircuitBreakerArgs']] = None, + deployment_controller: Optional[pulumi.Input['ServiceDeploymentControllerArgs']] = None, + deployment_maximum_percent: Optional[pulumi.Input[int]] = None, + deployment_minimum_healthy_percent: Optional[pulumi.Input[int]] = None, + desired_count: Optional[pulumi.Input[int]] = None, + enable_ecs_managed_tags: Optional[pulumi.Input[bool]] = None, + enable_execute_command: Optional[pulumi.Input[bool]] = None, + force_new_deployment: Optional[pulumi.Input[bool]] = None, + health_check_grace_period_seconds: Optional[pulumi.Input[int]] = None, + iam_role: Optional[pulumi.Input[str]] = None, + launch_type: Optional[pulumi.Input[str]] = None, + load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceLoadBalancerArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + network_configuration: Optional[pulumi.Input['ServiceNetworkConfigurationArgs']] = None, + ordered_placement_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceOrderedPlacementStrategyArgs']]]] = None, + placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePlacementConstraintArgs']]]] = None, + platform_version: Optional[pulumi.Input[str]] = None, + propagate_tags: Optional[pulumi.Input[str]] = None, + scheduling_strategy: Optional[pulumi.Input[str]] = None, + service_connect_configuration: Optional[pulumi.Input['ServiceServiceConnectConfigurationArgs']] = None, + service_registries: Optional[pulumi.Input['ServiceServiceRegistriesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + task_definition: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + wait_for_steady_state: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if deployment_circuit_breaker is None and 'deploymentCircuitBreaker' in kwargs: + deployment_circuit_breaker = kwargs['deploymentCircuitBreaker'] + if deployment_controller is None and 'deploymentController' in kwargs: + deployment_controller = kwargs['deploymentController'] + if deployment_maximum_percent is None and 'deploymentMaximumPercent' in kwargs: + deployment_maximum_percent = kwargs['deploymentMaximumPercent'] + if deployment_minimum_healthy_percent is None and 'deploymentMinimumHealthyPercent' in kwargs: + deployment_minimum_healthy_percent = kwargs['deploymentMinimumHealthyPercent'] + if desired_count is None and 'desiredCount' in kwargs: + desired_count = kwargs['desiredCount'] + if enable_ecs_managed_tags is None and 'enableEcsManagedTags' in kwargs: + enable_ecs_managed_tags = kwargs['enableEcsManagedTags'] + if enable_execute_command is None and 'enableExecuteCommand' in kwargs: + enable_execute_command = kwargs['enableExecuteCommand'] + if force_new_deployment is None and 'forceNewDeployment' in kwargs: + force_new_deployment = kwargs['forceNewDeployment'] + if health_check_grace_period_seconds is None and 'healthCheckGracePeriodSeconds' in kwargs: + health_check_grace_period_seconds = kwargs['healthCheckGracePeriodSeconds'] + if iam_role is None and 'iamRole' in kwargs: + iam_role = kwargs['iamRole'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if load_balancers is None and 'loadBalancers' in kwargs: + load_balancers = kwargs['loadBalancers'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if ordered_placement_strategies is None and 'orderedPlacementStrategies' in kwargs: + ordered_placement_strategies = kwargs['orderedPlacementStrategies'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if scheduling_strategy is None and 'schedulingStrategy' in kwargs: + scheduling_strategy = kwargs['schedulingStrategy'] + if service_connect_configuration is None and 'serviceConnectConfiguration' in kwargs: + service_connect_configuration = kwargs['serviceConnectConfiguration'] + if service_registries is None and 'serviceRegistries' in kwargs: + service_registries = kwargs['serviceRegistries'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if task_definition is None and 'taskDefinition' in kwargs: + task_definition = kwargs['taskDefinition'] + if wait_for_steady_state is None and 'waitForSteadyState' in kwargs: + wait_for_steady_state = kwargs['waitForSteadyState'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if cluster is not None: - pulumi.set(__self__, "cluster", cluster) + _setter("cluster", cluster) if deployment_circuit_breaker is not None: - pulumi.set(__self__, "deployment_circuit_breaker", deployment_circuit_breaker) + _setter("deployment_circuit_breaker", deployment_circuit_breaker) if deployment_controller is not None: - pulumi.set(__self__, "deployment_controller", deployment_controller) + _setter("deployment_controller", deployment_controller) if deployment_maximum_percent is not None: - pulumi.set(__self__, "deployment_maximum_percent", deployment_maximum_percent) + _setter("deployment_maximum_percent", deployment_maximum_percent) if deployment_minimum_healthy_percent is not None: - pulumi.set(__self__, "deployment_minimum_healthy_percent", deployment_minimum_healthy_percent) + _setter("deployment_minimum_healthy_percent", deployment_minimum_healthy_percent) if desired_count is not None: - pulumi.set(__self__, "desired_count", desired_count) + _setter("desired_count", desired_count) if enable_ecs_managed_tags is not None: - pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) + _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - pulumi.set(__self__, "enable_execute_command", enable_execute_command) + _setter("enable_execute_command", enable_execute_command) if force_new_deployment is not None: - pulumi.set(__self__, "force_new_deployment", force_new_deployment) + _setter("force_new_deployment", force_new_deployment) if health_check_grace_period_seconds is not None: - pulumi.set(__self__, "health_check_grace_period_seconds", health_check_grace_period_seconds) + _setter("health_check_grace_period_seconds", health_check_grace_period_seconds) if iam_role is not None: - pulumi.set(__self__, "iam_role", iam_role) + _setter("iam_role", iam_role) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) + _setter("load_balancers", load_balancers) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if ordered_placement_strategies is not None: - pulumi.set(__self__, "ordered_placement_strategies", ordered_placement_strategies) + _setter("ordered_placement_strategies", ordered_placement_strategies) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if scheduling_strategy is not None: - pulumi.set(__self__, "scheduling_strategy", scheduling_strategy) + _setter("scheduling_strategy", scheduling_strategy) if service_connect_configuration is not None: - pulumi.set(__self__, "service_connect_configuration", service_connect_configuration) + _setter("service_connect_configuration", service_connect_configuration) if service_registries is not None: - pulumi.set(__self__, "service_registries", service_registries) + _setter("service_registries", service_registries) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if task_definition is not None: - pulumi.set(__self__, "task_definition", task_definition) + _setter("task_definition", task_definition) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) if wait_for_steady_state is not None: - pulumi.set(__self__, "wait_for_steady_state", wait_for_steady_state) + _setter("wait_for_steady_state", wait_for_steady_state) @property @pulumi.getter @@ -1218,6 +1444,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1260,10 +1490,13 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ServiceArgs.__new__(ServiceArgs) + alarms = _utilities.configure(alarms, ServiceAlarmsArgs, True) __props__.__dict__["alarms"] = alarms __props__.__dict__["capacity_provider_strategies"] = capacity_provider_strategies __props__.__dict__["cluster"] = cluster + deployment_circuit_breaker = _utilities.configure(deployment_circuit_breaker, ServiceDeploymentCircuitBreakerArgs, True) __props__.__dict__["deployment_circuit_breaker"] = deployment_circuit_breaker + deployment_controller = _utilities.configure(deployment_controller, ServiceDeploymentControllerArgs, True) __props__.__dict__["deployment_controller"] = deployment_controller __props__.__dict__["deployment_maximum_percent"] = deployment_maximum_percent __props__.__dict__["deployment_minimum_healthy_percent"] = deployment_minimum_healthy_percent @@ -1276,13 +1509,16 @@ def _internal_init(__self__, __props__.__dict__["launch_type"] = launch_type __props__.__dict__["load_balancers"] = load_balancers __props__.__dict__["name"] = name + network_configuration = _utilities.configure(network_configuration, ServiceNetworkConfigurationArgs, True) __props__.__dict__["network_configuration"] = network_configuration __props__.__dict__["ordered_placement_strategies"] = ordered_placement_strategies __props__.__dict__["placement_constraints"] = placement_constraints __props__.__dict__["platform_version"] = platform_version __props__.__dict__["propagate_tags"] = propagate_tags __props__.__dict__["scheduling_strategy"] = scheduling_strategy + service_connect_configuration = _utilities.configure(service_connect_configuration, ServiceServiceConnectConfigurationArgs, True) __props__.__dict__["service_connect_configuration"] = service_connect_configuration + service_registries = _utilities.configure(service_registries, ServiceServiceRegistriesArgs, True) __props__.__dict__["service_registries"] = service_registries __props__.__dict__["tags"] = tags __props__.__dict__["task_definition"] = task_definition diff --git a/sdk/python/pulumi_aws/ecs/tag.py b/sdk/python/pulumi_aws/ecs/tag.py index 4454c45e03d..b78a85b6626 100644 --- a/sdk/python/pulumi_aws/ecs/tag.py +++ b/sdk/python/pulumi_aws/ecs/tag.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TagArgs', 'Tag'] @@ -23,9 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the ECS resource to tag. :param pulumi.Input[str] value: Tag value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "value", value) + TagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + resource_arn=resource_arn, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("resource_arn", resource_arn) + _setter("value", value) @property @pulumi.getter @@ -76,12 +99,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the ECS resource to tag. :param pulumi.Input[str] value: Tag value. """ + _TagState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + resource_arn=resource_arn, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -213,6 +253,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TagArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ecs/task_definition.py b/sdk/python/pulumi_aws/ecs/task_definition.py index efd25982182..b0b122ed561 100644 --- a/sdk/python/pulumi_aws/ecs/task_definition.py +++ b/sdk/python/pulumi_aws/ecs/task_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -57,40 +57,115 @@ def __init__(__self__, *, :param pulumi.Input[str] task_role_arn: ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. """ - pulumi.set(__self__, "container_definitions", container_definitions) - pulumi.set(__self__, "family", family) + TaskDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_definitions=container_definitions, + family=family, + cpu=cpu, + ephemeral_storage=ephemeral_storage, + execution_role_arn=execution_role_arn, + inference_accelerators=inference_accelerators, + ipc_mode=ipc_mode, + memory=memory, + network_mode=network_mode, + pid_mode=pid_mode, + placement_constraints=placement_constraints, + proxy_configuration=proxy_configuration, + requires_compatibilities=requires_compatibilities, + runtime_platform=runtime_platform, + skip_destroy=skip_destroy, + tags=tags, + task_role_arn=task_role_arn, + volumes=volumes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_definitions: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + cpu: Optional[pulumi.Input[str]] = None, + ephemeral_storage: Optional[pulumi.Input['TaskDefinitionEphemeralStorageArgs']] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionInferenceAcceleratorArgs']]]] = None, + ipc_mode: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[str]] = None, + network_mode: Optional[pulumi.Input[str]] = None, + pid_mode: Optional[pulumi.Input[str]] = None, + placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionPlacementConstraintArgs']]]] = None, + proxy_configuration: Optional[pulumi.Input['TaskDefinitionProxyConfigurationArgs']] = None, + requires_compatibilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + runtime_platform: Optional[pulumi.Input['TaskDefinitionRuntimePlatformArgs']] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + task_role_arn: Optional[pulumi.Input[str]] = None, + volumes: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionVolumeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_definitions is None and 'containerDefinitions' in kwargs: + container_definitions = kwargs['containerDefinitions'] + if container_definitions is None: + raise TypeError("Missing 'container_definitions' argument") + if family is None: + raise TypeError("Missing 'family' argument") + if ephemeral_storage is None and 'ephemeralStorage' in kwargs: + ephemeral_storage = kwargs['ephemeralStorage'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if inference_accelerators is None and 'inferenceAccelerators' in kwargs: + inference_accelerators = kwargs['inferenceAccelerators'] + if ipc_mode is None and 'ipcMode' in kwargs: + ipc_mode = kwargs['ipcMode'] + if network_mode is None and 'networkMode' in kwargs: + network_mode = kwargs['networkMode'] + if pid_mode is None and 'pidMode' in kwargs: + pid_mode = kwargs['pidMode'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if proxy_configuration is None and 'proxyConfiguration' in kwargs: + proxy_configuration = kwargs['proxyConfiguration'] + if requires_compatibilities is None and 'requiresCompatibilities' in kwargs: + requires_compatibilities = kwargs['requiresCompatibilities'] + if runtime_platform is None and 'runtimePlatform' in kwargs: + runtime_platform = kwargs['runtimePlatform'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if task_role_arn is None and 'taskRoleArn' in kwargs: + task_role_arn = kwargs['taskRoleArn'] + + _setter("container_definitions", container_definitions) + _setter("family", family) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if ephemeral_storage is not None: - pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) + _setter("ephemeral_storage", ephemeral_storage) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if inference_accelerators is not None: - pulumi.set(__self__, "inference_accelerators", inference_accelerators) + _setter("inference_accelerators", inference_accelerators) if ipc_mode is not None: - pulumi.set(__self__, "ipc_mode", ipc_mode) + _setter("ipc_mode", ipc_mode) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if network_mode is not None: - pulumi.set(__self__, "network_mode", network_mode) + _setter("network_mode", network_mode) if pid_mode is not None: - pulumi.set(__self__, "pid_mode", pid_mode) + _setter("pid_mode", pid_mode) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if proxy_configuration is not None: - pulumi.set(__self__, "proxy_configuration", proxy_configuration) + _setter("proxy_configuration", proxy_configuration) if requires_compatibilities is not None: - pulumi.set(__self__, "requires_compatibilities", requires_compatibilities) + _setter("requires_compatibilities", requires_compatibilities) if runtime_platform is not None: - pulumi.set(__self__, "runtime_platform", runtime_platform) + _setter("runtime_platform", runtime_platform) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if task_role_arn is not None: - pulumi.set(__self__, "task_role_arn", task_role_arn) + _setter("task_role_arn", task_role_arn) if volumes is not None: - pulumi.set(__self__, "volumes", volumes) + _setter("volumes", volumes) @property @pulumi.getter(name="containerDefinitions") @@ -363,53 +438,136 @@ def __init__(__self__, *, :param pulumi.Input[str] task_role_arn: ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. """ + _TaskDefinitionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + arn_without_revision=arn_without_revision, + container_definitions=container_definitions, + cpu=cpu, + ephemeral_storage=ephemeral_storage, + execution_role_arn=execution_role_arn, + family=family, + inference_accelerators=inference_accelerators, + ipc_mode=ipc_mode, + memory=memory, + network_mode=network_mode, + pid_mode=pid_mode, + placement_constraints=placement_constraints, + proxy_configuration=proxy_configuration, + requires_compatibilities=requires_compatibilities, + revision=revision, + runtime_platform=runtime_platform, + skip_destroy=skip_destroy, + tags=tags, + tags_all=tags_all, + task_role_arn=task_role_arn, + volumes=volumes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + arn_without_revision: Optional[pulumi.Input[str]] = None, + container_definitions: Optional[pulumi.Input[str]] = None, + cpu: Optional[pulumi.Input[str]] = None, + ephemeral_storage: Optional[pulumi.Input['TaskDefinitionEphemeralStorageArgs']] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionInferenceAcceleratorArgs']]]] = None, + ipc_mode: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[str]] = None, + network_mode: Optional[pulumi.Input[str]] = None, + pid_mode: Optional[pulumi.Input[str]] = None, + placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionPlacementConstraintArgs']]]] = None, + proxy_configuration: Optional[pulumi.Input['TaskDefinitionProxyConfigurationArgs']] = None, + requires_compatibilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + revision: Optional[pulumi.Input[int]] = None, + runtime_platform: Optional[pulumi.Input['TaskDefinitionRuntimePlatformArgs']] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + task_role_arn: Optional[pulumi.Input[str]] = None, + volumes: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionVolumeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn_without_revision is None and 'arnWithoutRevision' in kwargs: + arn_without_revision = kwargs['arnWithoutRevision'] + if container_definitions is None and 'containerDefinitions' in kwargs: + container_definitions = kwargs['containerDefinitions'] + if ephemeral_storage is None and 'ephemeralStorage' in kwargs: + ephemeral_storage = kwargs['ephemeralStorage'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if inference_accelerators is None and 'inferenceAccelerators' in kwargs: + inference_accelerators = kwargs['inferenceAccelerators'] + if ipc_mode is None and 'ipcMode' in kwargs: + ipc_mode = kwargs['ipcMode'] + if network_mode is None and 'networkMode' in kwargs: + network_mode = kwargs['networkMode'] + if pid_mode is None and 'pidMode' in kwargs: + pid_mode = kwargs['pidMode'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if proxy_configuration is None and 'proxyConfiguration' in kwargs: + proxy_configuration = kwargs['proxyConfiguration'] + if requires_compatibilities is None and 'requiresCompatibilities' in kwargs: + requires_compatibilities = kwargs['requiresCompatibilities'] + if runtime_platform is None and 'runtimePlatform' in kwargs: + runtime_platform = kwargs['runtimePlatform'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if task_role_arn is None and 'taskRoleArn' in kwargs: + task_role_arn = kwargs['taskRoleArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if arn_without_revision is not None: - pulumi.set(__self__, "arn_without_revision", arn_without_revision) + _setter("arn_without_revision", arn_without_revision) if container_definitions is not None: - pulumi.set(__self__, "container_definitions", container_definitions) + _setter("container_definitions", container_definitions) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if ephemeral_storage is not None: - pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) + _setter("ephemeral_storage", ephemeral_storage) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if family is not None: - pulumi.set(__self__, "family", family) + _setter("family", family) if inference_accelerators is not None: - pulumi.set(__self__, "inference_accelerators", inference_accelerators) + _setter("inference_accelerators", inference_accelerators) if ipc_mode is not None: - pulumi.set(__self__, "ipc_mode", ipc_mode) + _setter("ipc_mode", ipc_mode) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if network_mode is not None: - pulumi.set(__self__, "network_mode", network_mode) + _setter("network_mode", network_mode) if pid_mode is not None: - pulumi.set(__self__, "pid_mode", pid_mode) + _setter("pid_mode", pid_mode) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if proxy_configuration is not None: - pulumi.set(__self__, "proxy_configuration", proxy_configuration) + _setter("proxy_configuration", proxy_configuration) if requires_compatibilities is not None: - pulumi.set(__self__, "requires_compatibilities", requires_compatibilities) + _setter("requires_compatibilities", requires_compatibilities) if revision is not None: - pulumi.set(__self__, "revision", revision) + _setter("revision", revision) if runtime_platform is not None: - pulumi.set(__self__, "runtime_platform", runtime_platform) + _setter("runtime_platform", runtime_platform) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if task_role_arn is not None: - pulumi.set(__self__, "task_role_arn", task_role_arn) + _setter("task_role_arn", task_role_arn) if volumes is not None: - pulumi.set(__self__, "volumes", volumes) + _setter("volumes", volumes) @property @pulumi.getter @@ -1182,6 +1340,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TaskDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1218,6 +1380,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'container_definitions'") __props__.__dict__["container_definitions"] = container_definitions __props__.__dict__["cpu"] = cpu + ephemeral_storage = _utilities.configure(ephemeral_storage, TaskDefinitionEphemeralStorageArgs, True) __props__.__dict__["ephemeral_storage"] = ephemeral_storage __props__.__dict__["execution_role_arn"] = execution_role_arn if family is None and not opts.urn: @@ -1229,8 +1392,10 @@ def _internal_init(__self__, __props__.__dict__["network_mode"] = network_mode __props__.__dict__["pid_mode"] = pid_mode __props__.__dict__["placement_constraints"] = placement_constraints + proxy_configuration = _utilities.configure(proxy_configuration, TaskDefinitionProxyConfigurationArgs, True) __props__.__dict__["proxy_configuration"] = proxy_configuration __props__.__dict__["requires_compatibilities"] = requires_compatibilities + runtime_platform = _utilities.configure(runtime_platform, TaskDefinitionRuntimePlatformArgs, True) __props__.__dict__["runtime_platform"] = runtime_platform __props__.__dict__["skip_destroy"] = skip_destroy __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/ecs/task_set.py b/sdk/python/pulumi_aws/ecs/task_set.py index ef5d0143ace..48a4a38ca67 100644 --- a/sdk/python/pulumi_aws/ecs/task_set.py +++ b/sdk/python/pulumi_aws/ecs/task_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -51,33 +51,100 @@ def __init__(__self__, *, :param pulumi.Input[bool] wait_until_stable: Whether the provider should wait until the task set has reached `STEADY_STATE`. :param pulumi.Input[str] wait_until_stable_timeout: Wait timeout for task set to reach `STEADY_STATE`. Valid time units include `ns`, `us` (or `µs`), `ms`, `s`, `m`, and `h`. Default `10m`. """ - pulumi.set(__self__, "cluster", cluster) - pulumi.set(__self__, "service", service) - pulumi.set(__self__, "task_definition", task_definition) + TaskSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster=cluster, + service=service, + task_definition=task_definition, + capacity_provider_strategies=capacity_provider_strategies, + external_id=external_id, + force_delete=force_delete, + launch_type=launch_type, + load_balancers=load_balancers, + network_configuration=network_configuration, + platform_version=platform_version, + scale=scale, + service_registries=service_registries, + tags=tags, + wait_until_stable=wait_until_stable, + wait_until_stable_timeout=wait_until_stable_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster: Optional[pulumi.Input[str]] = None, + service: Optional[pulumi.Input[str]] = None, + task_definition: Optional[pulumi.Input[str]] = None, + capacity_provider_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['TaskSetCapacityProviderStrategyArgs']]]] = None, + external_id: Optional[pulumi.Input[str]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + launch_type: Optional[pulumi.Input[str]] = None, + load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['TaskSetLoadBalancerArgs']]]] = None, + network_configuration: Optional[pulumi.Input['TaskSetNetworkConfigurationArgs']] = None, + platform_version: Optional[pulumi.Input[str]] = None, + scale: Optional[pulumi.Input['TaskSetScaleArgs']] = None, + service_registries: Optional[pulumi.Input['TaskSetServiceRegistriesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + wait_until_stable: Optional[pulumi.Input[bool]] = None, + wait_until_stable_timeout: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster is None: + raise TypeError("Missing 'cluster' argument") + if service is None: + raise TypeError("Missing 'service' argument") + if task_definition is None and 'taskDefinition' in kwargs: + task_definition = kwargs['taskDefinition'] + if task_definition is None: + raise TypeError("Missing 'task_definition' argument") + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if load_balancers is None and 'loadBalancers' in kwargs: + load_balancers = kwargs['loadBalancers'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if service_registries is None and 'serviceRegistries' in kwargs: + service_registries = kwargs['serviceRegistries'] + if wait_until_stable is None and 'waitUntilStable' in kwargs: + wait_until_stable = kwargs['waitUntilStable'] + if wait_until_stable_timeout is None and 'waitUntilStableTimeout' in kwargs: + wait_until_stable_timeout = kwargs['waitUntilStableTimeout'] + + _setter("cluster", cluster) + _setter("service", service) + _setter("task_definition", task_definition) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) + _setter("load_balancers", load_balancers) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if scale is not None: - pulumi.set(__self__, "scale", scale) + _setter("scale", scale) if service_registries is not None: - pulumi.set(__self__, "service_registries", service_registries) + _setter("service_registries", service_registries) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if wait_until_stable is not None: - pulumi.set(__self__, "wait_until_stable", wait_until_stable) + _setter("wait_until_stable", wait_until_stable) if wait_until_stable_timeout is not None: - pulumi.set(__self__, "wait_until_stable_timeout", wait_until_stable_timeout) + _setter("wait_until_stable_timeout", wait_until_stable_timeout) @property @pulumi.getter @@ -310,49 +377,126 @@ def __init__(__self__, *, :param pulumi.Input[bool] wait_until_stable: Whether the provider should wait until the task set has reached `STEADY_STATE`. :param pulumi.Input[str] wait_until_stable_timeout: Wait timeout for task set to reach `STEADY_STATE`. Valid time units include `ns`, `us` (or `µs`), `ms`, `s`, `m`, and `h`. Default `10m`. """ + _TaskSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + capacity_provider_strategies=capacity_provider_strategies, + cluster=cluster, + external_id=external_id, + force_delete=force_delete, + launch_type=launch_type, + load_balancers=load_balancers, + network_configuration=network_configuration, + platform_version=platform_version, + scale=scale, + service=service, + service_registries=service_registries, + stability_status=stability_status, + status=status, + tags=tags, + tags_all=tags_all, + task_definition=task_definition, + task_set_id=task_set_id, + wait_until_stable=wait_until_stable, + wait_until_stable_timeout=wait_until_stable_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + capacity_provider_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['TaskSetCapacityProviderStrategyArgs']]]] = None, + cluster: Optional[pulumi.Input[str]] = None, + external_id: Optional[pulumi.Input[str]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + launch_type: Optional[pulumi.Input[str]] = None, + load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['TaskSetLoadBalancerArgs']]]] = None, + network_configuration: Optional[pulumi.Input['TaskSetNetworkConfigurationArgs']] = None, + platform_version: Optional[pulumi.Input[str]] = None, + scale: Optional[pulumi.Input['TaskSetScaleArgs']] = None, + service: Optional[pulumi.Input[str]] = None, + service_registries: Optional[pulumi.Input['TaskSetServiceRegistriesArgs']] = None, + stability_status: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + task_definition: Optional[pulumi.Input[str]] = None, + task_set_id: Optional[pulumi.Input[str]] = None, + wait_until_stable: Optional[pulumi.Input[bool]] = None, + wait_until_stable_timeout: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if load_balancers is None and 'loadBalancers' in kwargs: + load_balancers = kwargs['loadBalancers'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if service_registries is None and 'serviceRegistries' in kwargs: + service_registries = kwargs['serviceRegistries'] + if stability_status is None and 'stabilityStatus' in kwargs: + stability_status = kwargs['stabilityStatus'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if task_definition is None and 'taskDefinition' in kwargs: + task_definition = kwargs['taskDefinition'] + if task_set_id is None and 'taskSetId' in kwargs: + task_set_id = kwargs['taskSetId'] + if wait_until_stable is None and 'waitUntilStable' in kwargs: + wait_until_stable = kwargs['waitUntilStable'] + if wait_until_stable_timeout is None and 'waitUntilStableTimeout' in kwargs: + wait_until_stable_timeout = kwargs['waitUntilStableTimeout'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if cluster is not None: - pulumi.set(__self__, "cluster", cluster) + _setter("cluster", cluster) if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) + _setter("load_balancers", load_balancers) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if scale is not None: - pulumi.set(__self__, "scale", scale) + _setter("scale", scale) if service is not None: - pulumi.set(__self__, "service", service) + _setter("service", service) if service_registries is not None: - pulumi.set(__self__, "service_registries", service_registries) + _setter("service_registries", service_registries) if stability_status is not None: - pulumi.set(__self__, "stability_status", stability_status) + _setter("stability_status", stability_status) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if task_definition is not None: - pulumi.set(__self__, "task_definition", task_definition) + _setter("task_definition", task_definition) if task_set_id is not None: - pulumi.set(__self__, "task_set_id", task_set_id) + _setter("task_set_id", task_set_id) if wait_until_stable is not None: - pulumi.set(__self__, "wait_until_stable", wait_until_stable) + _setter("wait_until_stable", wait_until_stable) if wait_until_stable_timeout is not None: - pulumi.set(__self__, "wait_until_stable_timeout", wait_until_stable_timeout) + _setter("wait_until_stable_timeout", wait_until_stable_timeout) @property @pulumi.getter @@ -717,6 +861,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TaskSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -754,12 +902,15 @@ def _internal_init(__self__, __props__.__dict__["force_delete"] = force_delete __props__.__dict__["launch_type"] = launch_type __props__.__dict__["load_balancers"] = load_balancers + network_configuration = _utilities.configure(network_configuration, TaskSetNetworkConfigurationArgs, True) __props__.__dict__["network_configuration"] = network_configuration __props__.__dict__["platform_version"] = platform_version + scale = _utilities.configure(scale, TaskSetScaleArgs, True) __props__.__dict__["scale"] = scale if service is None and not opts.urn: raise TypeError("Missing required property 'service'") __props__.__dict__["service"] = service + service_registries = _utilities.configure(service_registries, TaskSetServiceRegistriesArgs, True) __props__.__dict__["service_registries"] = service_registries __props__.__dict__["tags"] = tags if task_definition is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/efs/_inputs.py b/sdk/python/pulumi_aws/efs/_inputs.py index 5a39443bf0c..9711d552732 100644 --- a/sdk/python/pulumi_aws/efs/_inputs.py +++ b/sdk/python/pulumi_aws/efs/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -30,10 +30,31 @@ def __init__(__self__, *, :param pulumi.Input[int] uid: POSIX user ID used for all file system operations using this access point. :param pulumi.Input[Sequence[pulumi.Input[int]]] secondary_gids: Secondary POSIX group IDs used for all file system operations using this access point. """ - pulumi.set(__self__, "gid", gid) - pulumi.set(__self__, "uid", uid) + AccessPointPosixUserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gid=gid, + uid=uid, + secondary_gids=secondary_gids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gid: Optional[pulumi.Input[int]] = None, + uid: Optional[pulumi.Input[int]] = None, + secondary_gids: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gid is None: + raise TypeError("Missing 'gid' argument") + if uid is None: + raise TypeError("Missing 'uid' argument") + if secondary_gids is None and 'secondaryGids' in kwargs: + secondary_gids = kwargs['secondaryGids'] + + _setter("gid", gid) + _setter("uid", uid) if secondary_gids is not None: - pulumi.set(__self__, "secondary_gids", secondary_gids) + _setter("secondary_gids", secondary_gids) @property @pulumi.getter @@ -81,10 +102,25 @@ def __init__(__self__, *, :param pulumi.Input['AccessPointRootDirectoryCreationInfoArgs'] creation_info: POSIX IDs and permissions to apply to the access point's Root Directory. See Creation Info below. :param pulumi.Input[str] path: Path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide `creation_info`. """ + AccessPointRootDirectoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_info=creation_info, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_info: Optional[pulumi.Input['AccessPointRootDirectoryCreationInfoArgs']] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_info is None and 'creationInfo' in kwargs: + creation_info = kwargs['creationInfo'] + if creation_info is not None: - pulumi.set(__self__, "creation_info", creation_info) + _setter("creation_info", creation_info) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="creationInfo") @@ -122,9 +158,34 @@ def __init__(__self__, *, :param pulumi.Input[int] owner_uid: POSIX user ID to apply to the `root_directory`. :param pulumi.Input[str] permissions: POSIX permissions to apply to the RootDirectory, in the format of an octal number representing the file's mode bits. """ - pulumi.set(__self__, "owner_gid", owner_gid) - pulumi.set(__self__, "owner_uid", owner_uid) - pulumi.set(__self__, "permissions", permissions) + AccessPointRootDirectoryCreationInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner_gid=owner_gid, + owner_uid=owner_uid, + permissions=permissions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner_gid: Optional[pulumi.Input[int]] = None, + owner_uid: Optional[pulumi.Input[int]] = None, + permissions: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_gid is None and 'ownerGid' in kwargs: + owner_gid = kwargs['ownerGid'] + if owner_gid is None: + raise TypeError("Missing 'owner_gid' argument") + if owner_uid is None and 'ownerUid' in kwargs: + owner_uid = kwargs['ownerUid'] + if owner_uid is None: + raise TypeError("Missing 'owner_uid' argument") + if permissions is None: + raise TypeError("Missing 'permissions' argument") + + _setter("owner_gid", owner_gid) + _setter("owner_uid", owner_uid) + _setter("permissions", permissions) @property @pulumi.getter(name="ownerGid") @@ -170,7 +231,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: A status of the backup policy. Valid values: `ENABLED`, `DISABLED`. """ - pulumi.set(__self__, "status", status) + BackupPolicyBackupPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -194,10 +268,27 @@ def __init__(__self__, *, :param pulumi.Input[str] transition_to_ia: Indicates how long it takes to transition files to the IA storage class. Valid values: `AFTER_1_DAY`, `AFTER_7_DAYS`, `AFTER_14_DAYS`, `AFTER_30_DAYS`, `AFTER_60_DAYS`, or `AFTER_90_DAYS`. :param pulumi.Input[str] transition_to_primary_storage_class: Describes the policy used to transition a file from infequent access storage to primary storage. Valid values: `AFTER_1_ACCESS`. """ + FileSystemLifecyclePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transition_to_ia=transition_to_ia, + transition_to_primary_storage_class=transition_to_primary_storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transition_to_ia: Optional[pulumi.Input[str]] = None, + transition_to_primary_storage_class: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transition_to_ia is None and 'transitionToIa' in kwargs: + transition_to_ia = kwargs['transitionToIa'] + if transition_to_primary_storage_class is None and 'transitionToPrimaryStorageClass' in kwargs: + transition_to_primary_storage_class = kwargs['transitionToPrimaryStorageClass'] + if transition_to_ia is not None: - pulumi.set(__self__, "transition_to_ia", transition_to_ia) + _setter("transition_to_ia", transition_to_ia) if transition_to_primary_storage_class is not None: - pulumi.set(__self__, "transition_to_primary_storage_class", transition_to_primary_storage_class) + _setter("transition_to_primary_storage_class", transition_to_primary_storage_class) @property @pulumi.getter(name="transitionToIa") @@ -235,12 +326,31 @@ def __init__(__self__, *, :param pulumi.Input[int] value_in_ia: The latest known metered size (in bytes) of data stored in the Infrequent Access storage class. :param pulumi.Input[int] value_in_standard: The latest known metered size (in bytes) of data stored in the Standard storage class. """ + FileSystemSizeInByteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + value_in_ia=value_in_ia, + value_in_standard=value_in_standard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[pulumi.Input[int]] = None, + value_in_ia: Optional[pulumi.Input[int]] = None, + value_in_standard: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value_in_ia is None and 'valueInIa' in kwargs: + value_in_ia = kwargs['valueInIa'] + if value_in_standard is None and 'valueInStandard' in kwargs: + value_in_standard = kwargs['valueInStandard'] + if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) if value_in_ia is not None: - pulumi.set(__self__, "value_in_ia", value_in_ia) + _setter("value_in_ia", value_in_ia) if value_in_standard is not None: - pulumi.set(__self__, "value_in_standard", value_in_standard) + _setter("value_in_standard", value_in_standard) @property @pulumi.getter @@ -292,16 +402,41 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_id: The Key ID, ARN, alias, or alias ARN of the KMS key that should be used to encrypt the replica file system. If omitted, the default KMS key for EFS `/aws/elasticfilesystem` will be used. :param pulumi.Input[str] region: The region in which the replica should be created. """ + ReplicationConfigurationDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_name=availability_zone_name, + file_system_id=file_system_id, + kms_key_id=kms_key_id, + region=region, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_name: Optional[pulumi.Input[str]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_name is None and 'availabilityZoneName' in kwargs: + availability_zone_name = kwargs['availabilityZoneName'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if availability_zone_name is not None: - pulumi.set(__self__, "availability_zone_name", availability_zone_name) + _setter("availability_zone_name", availability_zone_name) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="availabilityZoneName") diff --git a/sdk/python/pulumi_aws/efs/access_point.py b/sdk/python/pulumi_aws/efs/access_point.py index 8bda6c43cc5..4ddddb1c238 100644 --- a/sdk/python/pulumi_aws/efs/access_point.py +++ b/sdk/python/pulumi_aws/efs/access_point.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,38 @@ def __init__(__self__, *, :param pulumi.Input['AccessPointRootDirectoryArgs'] root_directory: Directory on the Amazon EFS file system that the access point provides access to. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ - pulumi.set(__self__, "file_system_id", file_system_id) + AccessPointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + posix_user=posix_user, + root_directory=root_directory, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + posix_user: Optional[pulumi.Input['AccessPointPosixUserArgs']] = None, + root_directory: Optional[pulumi.Input['AccessPointRootDirectoryArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + if posix_user is None and 'posixUser' in kwargs: + posix_user = kwargs['posixUser'] + if root_directory is None and 'rootDirectory' in kwargs: + root_directory = kwargs['rootDirectory'] + + _setter("file_system_id", file_system_id) if posix_user is not None: - pulumi.set(__self__, "posix_user", posix_user) + _setter("posix_user", posix_user) if root_directory is not None: - pulumi.set(__self__, "root_directory", root_directory) + _setter("root_directory", root_directory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="fileSystemId") @@ -105,25 +130,62 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _AccessPointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + file_system_arn=file_system_arn, + file_system_id=file_system_id, + owner_id=owner_id, + posix_user=posix_user, + root_directory=root_directory, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + file_system_arn: Optional[pulumi.Input[str]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + posix_user: Optional[pulumi.Input['AccessPointPosixUserArgs']] = None, + root_directory: Optional[pulumi.Input['AccessPointRootDirectoryArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_arn is None and 'fileSystemArn' in kwargs: + file_system_arn = kwargs['fileSystemArn'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if posix_user is None and 'posixUser' in kwargs: + posix_user = kwargs['posixUser'] + if root_directory is None and 'rootDirectory' in kwargs: + root_directory = kwargs['rootDirectory'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if file_system_arn is not None: - pulumi.set(__self__, "file_system_arn", file_system_arn) + _setter("file_system_arn", file_system_arn) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if posix_user is not None: - pulumi.set(__self__, "posix_user", posix_user) + _setter("posix_user", posix_user) if root_directory is not None: - pulumi.set(__self__, "root_directory", root_directory) + _setter("root_directory", root_directory) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -295,6 +357,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccessPointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -316,7 +382,9 @@ def _internal_init(__self__, if file_system_id is None and not opts.urn: raise TypeError("Missing required property 'file_system_id'") __props__.__dict__["file_system_id"] = file_system_id + posix_user = _utilities.configure(posix_user, AccessPointPosixUserArgs, True) __props__.__dict__["posix_user"] = posix_user + root_directory = _utilities.configure(root_directory, AccessPointRootDirectoryArgs, True) __props__.__dict__["root_directory"] = root_directory __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/efs/backup_policy.py b/sdk/python/pulumi_aws/efs/backup_policy.py index 55ffe663757..c08f46d2943 100644 --- a/sdk/python/pulumi_aws/efs/backup_policy.py +++ b/sdk/python/pulumi_aws/efs/backup_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input['BackupPolicyBackupPolicyArgs'] backup_policy: A backup_policy object (documented below). :param pulumi.Input[str] file_system_id: The ID of the EFS file system. """ - pulumi.set(__self__, "backup_policy", backup_policy) - pulumi.set(__self__, "file_system_id", file_system_id) + BackupPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_policy=backup_policy, + file_system_id=file_system_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_policy: Optional[pulumi.Input['BackupPolicyBackupPolicyArgs']] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_policy is None and 'backupPolicy' in kwargs: + backup_policy = kwargs['backupPolicy'] + if backup_policy is None: + raise TypeError("Missing 'backup_policy' argument") + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + + _setter("backup_policy", backup_policy) + _setter("file_system_id", file_system_id) @property @pulumi.getter(name="backupPolicy") @@ -61,10 +82,27 @@ def __init__(__self__, *, :param pulumi.Input['BackupPolicyBackupPolicyArgs'] backup_policy: A backup_policy object (documented below). :param pulumi.Input[str] file_system_id: The ID of the EFS file system. """ + _BackupPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + backup_policy=backup_policy, + file_system_id=file_system_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + backup_policy: Optional[pulumi.Input['BackupPolicyBackupPolicyArgs']] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if backup_policy is None and 'backupPolicy' in kwargs: + backup_policy = kwargs['backupPolicy'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if backup_policy is not None: - pulumi.set(__self__, "backup_policy", backup_policy) + _setter("backup_policy", backup_policy) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) @property @pulumi.getter(name="backupPolicy") @@ -172,6 +210,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BackupPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -188,6 +230,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = BackupPolicyArgs.__new__(BackupPolicyArgs) + backup_policy = _utilities.configure(backup_policy, BackupPolicyBackupPolicyArgs, True) if backup_policy is None and not opts.urn: raise TypeError("Missing required property 'backup_policy'") __props__.__dict__["backup_policy"] = backup_policy diff --git a/sdk/python/pulumi_aws/efs/file_system.py b/sdk/python/pulumi_aws/efs/file_system.py index 8e8ae1b9da5..1c13d597bad 100644 --- a/sdk/python/pulumi_aws/efs/file_system.py +++ b/sdk/python/pulumi_aws/efs/file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -40,24 +40,65 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] throughput_mode: Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `provisioned`, or `elastic`. When using `provisioned`, also set `provisioned_throughput_in_mibps`. """ + FileSystemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_name=availability_zone_name, + creation_token=creation_token, + encrypted=encrypted, + kms_key_id=kms_key_id, + lifecycle_policies=lifecycle_policies, + performance_mode=performance_mode, + provisioned_throughput_in_mibps=provisioned_throughput_in_mibps, + tags=tags, + throughput_mode=throughput_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_name: Optional[pulumi.Input[str]] = None, + creation_token: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + lifecycle_policies: Optional[pulumi.Input[Sequence[pulumi.Input['FileSystemLifecyclePolicyArgs']]]] = None, + performance_mode: Optional[pulumi.Input[str]] = None, + provisioned_throughput_in_mibps: Optional[pulumi.Input[float]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_name is None and 'availabilityZoneName' in kwargs: + availability_zone_name = kwargs['availabilityZoneName'] + if creation_token is None and 'creationToken' in kwargs: + creation_token = kwargs['creationToken'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if lifecycle_policies is None and 'lifecyclePolicies' in kwargs: + lifecycle_policies = kwargs['lifecyclePolicies'] + if performance_mode is None and 'performanceMode' in kwargs: + performance_mode = kwargs['performanceMode'] + if provisioned_throughput_in_mibps is None and 'provisionedThroughputInMibps' in kwargs: + provisioned_throughput_in_mibps = kwargs['provisionedThroughputInMibps'] + if throughput_mode is None and 'throughputMode' in kwargs: + throughput_mode = kwargs['throughputMode'] + if availability_zone_name is not None: - pulumi.set(__self__, "availability_zone_name", availability_zone_name) + _setter("availability_zone_name", availability_zone_name) if creation_token is not None: - pulumi.set(__self__, "creation_token", creation_token) + _setter("creation_token", creation_token) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if lifecycle_policies is not None: - pulumi.set(__self__, "lifecycle_policies", lifecycle_policies) + _setter("lifecycle_policies", lifecycle_policies) if performance_mode is not None: - pulumi.set(__self__, "performance_mode", performance_mode) + _setter("performance_mode", performance_mode) if provisioned_throughput_in_mibps is not None: - pulumi.set(__self__, "provisioned_throughput_in_mibps", provisioned_throughput_in_mibps) + _setter("provisioned_throughput_in_mibps", provisioned_throughput_in_mibps) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if throughput_mode is not None: - pulumi.set(__self__, "throughput_mode", throughput_mode) + _setter("throughput_mode", throughput_mode) @property @pulumi.getter(name="availabilityZoneName") @@ -214,43 +255,112 @@ def __init__(__self__, *, :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] throughput_mode: Throughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `provisioned`, or `elastic`. When using `provisioned`, also set `provisioned_throughput_in_mibps`. """ + _FileSystemState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zone_id=availability_zone_id, + availability_zone_name=availability_zone_name, + creation_token=creation_token, + dns_name=dns_name, + encrypted=encrypted, + kms_key_id=kms_key_id, + lifecycle_policies=lifecycle_policies, + name=name, + number_of_mount_targets=number_of_mount_targets, + owner_id=owner_id, + performance_mode=performance_mode, + provisioned_throughput_in_mibps=provisioned_throughput_in_mibps, + size_in_bytes=size_in_bytes, + tags=tags, + tags_all=tags_all, + throughput_mode=throughput_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zone_id: Optional[pulumi.Input[str]] = None, + availability_zone_name: Optional[pulumi.Input[str]] = None, + creation_token: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + lifecycle_policies: Optional[pulumi.Input[Sequence[pulumi.Input['FileSystemLifecyclePolicyArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + number_of_mount_targets: Optional[pulumi.Input[int]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + performance_mode: Optional[pulumi.Input[str]] = None, + provisioned_throughput_in_mibps: Optional[pulumi.Input[float]] = None, + size_in_bytes: Optional[pulumi.Input[Sequence[pulumi.Input['FileSystemSizeInByteArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_id is None and 'availabilityZoneId' in kwargs: + availability_zone_id = kwargs['availabilityZoneId'] + if availability_zone_name is None and 'availabilityZoneName' in kwargs: + availability_zone_name = kwargs['availabilityZoneName'] + if creation_token is None and 'creationToken' in kwargs: + creation_token = kwargs['creationToken'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if lifecycle_policies is None and 'lifecyclePolicies' in kwargs: + lifecycle_policies = kwargs['lifecyclePolicies'] + if number_of_mount_targets is None and 'numberOfMountTargets' in kwargs: + number_of_mount_targets = kwargs['numberOfMountTargets'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if performance_mode is None and 'performanceMode' in kwargs: + performance_mode = kwargs['performanceMode'] + if provisioned_throughput_in_mibps is None and 'provisionedThroughputInMibps' in kwargs: + provisioned_throughput_in_mibps = kwargs['provisionedThroughputInMibps'] + if size_in_bytes is None and 'sizeInBytes' in kwargs: + size_in_bytes = kwargs['sizeInBytes'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if throughput_mode is None and 'throughputMode' in kwargs: + throughput_mode = kwargs['throughputMode'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone_id is not None: - pulumi.set(__self__, "availability_zone_id", availability_zone_id) + _setter("availability_zone_id", availability_zone_id) if availability_zone_name is not None: - pulumi.set(__self__, "availability_zone_name", availability_zone_name) + _setter("availability_zone_name", availability_zone_name) if creation_token is not None: - pulumi.set(__self__, "creation_token", creation_token) + _setter("creation_token", creation_token) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if lifecycle_policies is not None: - pulumi.set(__self__, "lifecycle_policies", lifecycle_policies) + _setter("lifecycle_policies", lifecycle_policies) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if number_of_mount_targets is not None: - pulumi.set(__self__, "number_of_mount_targets", number_of_mount_targets) + _setter("number_of_mount_targets", number_of_mount_targets) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if performance_mode is not None: - pulumi.set(__self__, "performance_mode", performance_mode) + _setter("performance_mode", performance_mode) if provisioned_throughput_in_mibps is not None: - pulumi.set(__self__, "provisioned_throughput_in_mibps", provisioned_throughput_in_mibps) + _setter("provisioned_throughput_in_mibps", provisioned_throughput_in_mibps) if size_in_bytes is not None: - pulumi.set(__self__, "size_in_bytes", size_in_bytes) + _setter("size_in_bytes", size_in_bytes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if throughput_mode is not None: - pulumi.set(__self__, "throughput_mode", throughput_mode) + _setter("throughput_mode", throughput_mode) @property @pulumi.getter @@ -575,6 +685,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FileSystemArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/efs/file_system_policy.py b/sdk/python/pulumi_aws/efs/file_system_policy.py index df101e0f56f..d2f797cfcef 100644 --- a/sdk/python/pulumi_aws/efs/file_system_policy.py +++ b/sdk/python/pulumi_aws/efs/file_system_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['FileSystemPolicyArgs', 'FileSystemPolicy'] @@ -25,10 +25,33 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] bypass_policy_lockout_safety_check: A flag to indicate whether to bypass the `efs.FileSystemPolicy` lockout safety check. The policy lockout safety check determines whether the policy in the request will prevent the principal making the request will be locked out from making future `PutFileSystemPolicy` requests on the file system. Set `bypass_policy_lockout_safety_check` to `true` only when you intend to prevent the principal that is making the request from making a subsequent `PutFileSystemPolicy` request on the file system. The default value is `false`. """ - pulumi.set(__self__, "file_system_id", file_system_id) - pulumi.set(__self__, "policy", policy) + FileSystemPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + policy=policy, + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + + _setter("file_system_id", file_system_id) + _setter("policy", policy) if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) @property @pulumi.getter(name="fileSystemId") @@ -83,12 +106,31 @@ def __init__(__self__, *, The following arguments are optional: """ + _FileSystemPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + file_system_id=file_system_id, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="bypassPolicyLockoutSafetyCheck") @@ -244,6 +286,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FileSystemPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/efs/get_access_point.py b/sdk/python/pulumi_aws/efs/get_access_point.py index 612c141affe..8e31f74b764 100644 --- a/sdk/python/pulumi_aws/efs/get_access_point.py +++ b/sdk/python/pulumi_aws/efs/get_access_point.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/efs/get_access_points.py b/sdk/python/pulumi_aws/efs/get_access_points.py index 03cacfbbab9..60dc87167ee 100644 --- a/sdk/python/pulumi_aws/efs/get_access_points.py +++ b/sdk/python/pulumi_aws/efs/get_access_points.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/efs/get_file_system.py b/sdk/python/pulumi_aws/efs/get_file_system.py index 58d571318cb..74207150565 100644 --- a/sdk/python/pulumi_aws/efs/get_file_system.py +++ b/sdk/python/pulumi_aws/efs/get_file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/efs/get_mount_target.py b/sdk/python/pulumi_aws/efs/get_mount_target.py index 6b686832e4a..88383bfcb6c 100644 --- a/sdk/python/pulumi_aws/efs/get_mount_target.py +++ b/sdk/python/pulumi_aws/efs/get_mount_target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/efs/mount_target.py b/sdk/python/pulumi_aws/efs/mount_target.py index 457609c021e..3bef183cf8c 100644 --- a/sdk/python/pulumi_aws/efs/mount_target.py +++ b/sdk/python/pulumi_aws/efs/mount_target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MountTargetArgs', 'MountTarget'] @@ -27,12 +27,41 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of up to 5 VPC security group IDs (that must be for the same VPC as subnet specified) in effect for the mount target. """ - pulumi.set(__self__, "file_system_id", file_system_id) - pulumi.set(__self__, "subnet_id", subnet_id) + MountTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + subnet_id=subnet_id, + ip_address=ip_address, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("file_system_id", file_system_id) + _setter("subnet_id", subnet_id) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter(name="fileSystemId") @@ -115,28 +144,81 @@ def __init__(__self__, *, be for the same VPC as subnet specified) in effect for the mount target. :param pulumi.Input[str] subnet_id: The ID of the subnet to add the mount target in. """ + _MountTargetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_id=availability_zone_id, + availability_zone_name=availability_zone_name, + dns_name=dns_name, + file_system_arn=file_system_arn, + file_system_id=file_system_id, + ip_address=ip_address, + mount_target_dns_name=mount_target_dns_name, + network_interface_id=network_interface_id, + owner_id=owner_id, + security_groups=security_groups, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_id: Optional[pulumi.Input[str]] = None, + availability_zone_name: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + file_system_arn: Optional[pulumi.Input[str]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + mount_target_dns_name: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_id is None and 'availabilityZoneId' in kwargs: + availability_zone_id = kwargs['availabilityZoneId'] + if availability_zone_name is None and 'availabilityZoneName' in kwargs: + availability_zone_name = kwargs['availabilityZoneName'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if file_system_arn is None and 'fileSystemArn' in kwargs: + file_system_arn = kwargs['fileSystemArn'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if mount_target_dns_name is None and 'mountTargetDnsName' in kwargs: + mount_target_dns_name = kwargs['mountTargetDnsName'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone_id is not None: - pulumi.set(__self__, "availability_zone_id", availability_zone_id) + _setter("availability_zone_id", availability_zone_id) if availability_zone_name is not None: - pulumi.set(__self__, "availability_zone_name", availability_zone_name) + _setter("availability_zone_name", availability_zone_name) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if file_system_arn is not None: - pulumi.set(__self__, "file_system_arn", file_system_arn) + _setter("file_system_arn", file_system_arn) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if mount_target_dns_name is not None: - pulumi.set(__self__, "mount_target_dns_name", mount_target_dns_name) + _setter("mount_target_dns_name", mount_target_dns_name) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZoneId") @@ -362,6 +444,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MountTargetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/efs/outputs.py b/sdk/python/pulumi_aws/efs/outputs.py index e96a3f4df2b..caaad55cfe1 100644 --- a/sdk/python/pulumi_aws/efs/outputs.py +++ b/sdk/python/pulumi_aws/efs/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -52,10 +52,31 @@ def __init__(__self__, *, :param int uid: POSIX user ID used for all file system operations using this access point. :param Sequence[int] secondary_gids: Secondary POSIX group IDs used for all file system operations using this access point. """ - pulumi.set(__self__, "gid", gid) - pulumi.set(__self__, "uid", uid) + AccessPointPosixUser._configure( + lambda key, value: pulumi.set(__self__, key, value), + gid=gid, + uid=uid, + secondary_gids=secondary_gids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gid: Optional[int] = None, + uid: Optional[int] = None, + secondary_gids: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gid is None: + raise TypeError("Missing 'gid' argument") + if uid is None: + raise TypeError("Missing 'uid' argument") + if secondary_gids is None and 'secondaryGids' in kwargs: + secondary_gids = kwargs['secondaryGids'] + + _setter("gid", gid) + _setter("uid", uid) if secondary_gids is not None: - pulumi.set(__self__, "secondary_gids", secondary_gids) + _setter("secondary_gids", secondary_gids) @property @pulumi.getter @@ -108,10 +129,25 @@ def __init__(__self__, *, :param 'AccessPointRootDirectoryCreationInfoArgs' creation_info: POSIX IDs and permissions to apply to the access point's Root Directory. See Creation Info below. :param str path: Path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide `creation_info`. """ + AccessPointRootDirectory._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_info=creation_info, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_info: Optional['outputs.AccessPointRootDirectoryCreationInfo'] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_info is None and 'creationInfo' in kwargs: + creation_info = kwargs['creationInfo'] + if creation_info is not None: - pulumi.set(__self__, "creation_info", creation_info) + _setter("creation_info", creation_info) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="creationInfo") @@ -160,9 +196,34 @@ def __init__(__self__, *, :param int owner_uid: POSIX user ID to apply to the `root_directory`. :param str permissions: POSIX permissions to apply to the RootDirectory, in the format of an octal number representing the file's mode bits. """ - pulumi.set(__self__, "owner_gid", owner_gid) - pulumi.set(__self__, "owner_uid", owner_uid) - pulumi.set(__self__, "permissions", permissions) + AccessPointRootDirectoryCreationInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner_gid=owner_gid, + owner_uid=owner_uid, + permissions=permissions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner_gid: Optional[int] = None, + owner_uid: Optional[int] = None, + permissions: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_gid is None and 'ownerGid' in kwargs: + owner_gid = kwargs['ownerGid'] + if owner_gid is None: + raise TypeError("Missing 'owner_gid' argument") + if owner_uid is None and 'ownerUid' in kwargs: + owner_uid = kwargs['ownerUid'] + if owner_uid is None: + raise TypeError("Missing 'owner_uid' argument") + if permissions is None: + raise TypeError("Missing 'permissions' argument") + + _setter("owner_gid", owner_gid) + _setter("owner_uid", owner_uid) + _setter("permissions", permissions) @property @pulumi.getter(name="ownerGid") @@ -196,7 +257,20 @@ def __init__(__self__, *, """ :param str status: A status of the backup policy. Valid values: `ENABLED`, `DISABLED`. """ - pulumi.set(__self__, "status", status) + BackupPolicyBackupPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -235,10 +309,27 @@ def __init__(__self__, *, :param str transition_to_ia: Indicates how long it takes to transition files to the IA storage class. Valid values: `AFTER_1_DAY`, `AFTER_7_DAYS`, `AFTER_14_DAYS`, `AFTER_30_DAYS`, `AFTER_60_DAYS`, or `AFTER_90_DAYS`. :param str transition_to_primary_storage_class: Describes the policy used to transition a file from infequent access storage to primary storage. Valid values: `AFTER_1_ACCESS`. """ + FileSystemLifecyclePolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + transition_to_ia=transition_to_ia, + transition_to_primary_storage_class=transition_to_primary_storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transition_to_ia: Optional[str] = None, + transition_to_primary_storage_class: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transition_to_ia is None and 'transitionToIa' in kwargs: + transition_to_ia = kwargs['transitionToIa'] + if transition_to_primary_storage_class is None and 'transitionToPrimaryStorageClass' in kwargs: + transition_to_primary_storage_class = kwargs['transitionToPrimaryStorageClass'] + if transition_to_ia is not None: - pulumi.set(__self__, "transition_to_ia", transition_to_ia) + _setter("transition_to_ia", transition_to_ia) if transition_to_primary_storage_class is not None: - pulumi.set(__self__, "transition_to_primary_storage_class", transition_to_primary_storage_class) + _setter("transition_to_primary_storage_class", transition_to_primary_storage_class) @property @pulumi.getter(name="transitionToIa") @@ -287,12 +378,31 @@ def __init__(__self__, *, :param int value_in_ia: The latest known metered size (in bytes) of data stored in the Infrequent Access storage class. :param int value_in_standard: The latest known metered size (in bytes) of data stored in the Standard storage class. """ + FileSystemSizeInByte._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + value_in_ia=value_in_ia, + value_in_standard=value_in_standard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[int] = None, + value_in_ia: Optional[int] = None, + value_in_standard: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value_in_ia is None and 'valueInIa' in kwargs: + value_in_ia = kwargs['valueInIa'] + if value_in_standard is None and 'valueInStandard' in kwargs: + value_in_standard = kwargs['valueInStandard'] + if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) if value_in_ia is not None: - pulumi.set(__self__, "value_in_ia", value_in_ia) + _setter("value_in_ia", value_in_ia) if value_in_standard is not None: - pulumi.set(__self__, "value_in_standard", value_in_standard) + _setter("value_in_standard", value_in_standard) @property @pulumi.getter @@ -353,16 +463,41 @@ def __init__(__self__, *, :param str kms_key_id: The Key ID, ARN, alias, or alias ARN of the KMS key that should be used to encrypt the replica file system. If omitted, the default KMS key for EFS `/aws/elasticfilesystem` will be used. :param str region: The region in which the replica should be created. """ + ReplicationConfigurationDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_name=availability_zone_name, + file_system_id=file_system_id, + kms_key_id=kms_key_id, + region=region, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_name: Optional[str] = None, + file_system_id: Optional[str] = None, + kms_key_id: Optional[str] = None, + region: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_name is None and 'availabilityZoneName' in kwargs: + availability_zone_name = kwargs['availabilityZoneName'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if availability_zone_name is not None: - pulumi.set(__self__, "availability_zone_name", availability_zone_name) + _setter("availability_zone_name", availability_zone_name) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="availabilityZoneName") @@ -410,9 +545,32 @@ def __init__(__self__, *, :param Sequence[int] secondary_gids: Secondary group IDs :param int uid: User Id """ - pulumi.set(__self__, "gid", gid) - pulumi.set(__self__, "secondary_gids", secondary_gids) - pulumi.set(__self__, "uid", uid) + GetAccessPointPosixUserResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + gid=gid, + secondary_gids=secondary_gids, + uid=uid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gid: Optional[int] = None, + secondary_gids: Optional[Sequence[int]] = None, + uid: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gid is None: + raise TypeError("Missing 'gid' argument") + if secondary_gids is None and 'secondaryGids' in kwargs: + secondary_gids = kwargs['secondaryGids'] + if secondary_gids is None: + raise TypeError("Missing 'secondary_gids' argument") + if uid is None: + raise TypeError("Missing 'uid' argument") + + _setter("gid", gid) + _setter("secondary_gids", secondary_gids) + _setter("uid", uid) @property @pulumi.getter @@ -448,8 +606,27 @@ def __init__(__self__, *, :param Sequence['GetAccessPointRootDirectoryCreationInfoArgs'] creation_infos: Single element list containing information on the creation permissions of the directory :param str path: Path exposed as the root directory """ - pulumi.set(__self__, "creation_infos", creation_infos) - pulumi.set(__self__, "path", path) + GetAccessPointRootDirectoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_infos=creation_infos, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_infos: Optional[Sequence['outputs.GetAccessPointRootDirectoryCreationInfoResult']] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_infos is None and 'creationInfos' in kwargs: + creation_infos = kwargs['creationInfos'] + if creation_infos is None: + raise TypeError("Missing 'creation_infos' argument") + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("creation_infos", creation_infos) + _setter("path", path) @property @pulumi.getter(name="creationInfos") @@ -479,9 +656,34 @@ def __init__(__self__, *, :param int owner_uid: POSIX owner user ID :param str permissions: POSIX permissions mode """ - pulumi.set(__self__, "owner_gid", owner_gid) - pulumi.set(__self__, "owner_uid", owner_uid) - pulumi.set(__self__, "permissions", permissions) + GetAccessPointRootDirectoryCreationInfoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner_gid=owner_gid, + owner_uid=owner_uid, + permissions=permissions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner_gid: Optional[int] = None, + owner_uid: Optional[int] = None, + permissions: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_gid is None and 'ownerGid' in kwargs: + owner_gid = kwargs['ownerGid'] + if owner_gid is None: + raise TypeError("Missing 'owner_gid' argument") + if owner_uid is None and 'ownerUid' in kwargs: + owner_uid = kwargs['ownerUid'] + if owner_uid is None: + raise TypeError("Missing 'owner_uid' argument") + if permissions is None: + raise TypeError("Missing 'permissions' argument") + + _setter("owner_gid", owner_gid) + _setter("owner_uid", owner_uid) + _setter("permissions", permissions) @property @pulumi.getter(name="ownerGid") @@ -513,8 +715,29 @@ class GetFileSystemLifecyclePolicyResult(dict): def __init__(__self__, *, transition_to_ia: str, transition_to_primary_storage_class: str): - pulumi.set(__self__, "transition_to_ia", transition_to_ia) - pulumi.set(__self__, "transition_to_primary_storage_class", transition_to_primary_storage_class) + GetFileSystemLifecyclePolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + transition_to_ia=transition_to_ia, + transition_to_primary_storage_class=transition_to_primary_storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transition_to_ia: Optional[str] = None, + transition_to_primary_storage_class: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transition_to_ia is None and 'transitionToIa' in kwargs: + transition_to_ia = kwargs['transitionToIa'] + if transition_to_ia is None: + raise TypeError("Missing 'transition_to_ia' argument") + if transition_to_primary_storage_class is None and 'transitionToPrimaryStorageClass' in kwargs: + transition_to_primary_storage_class = kwargs['transitionToPrimaryStorageClass'] + if transition_to_primary_storage_class is None: + raise TypeError("Missing 'transition_to_primary_storage_class' argument") + + _setter("transition_to_ia", transition_to_ia) + _setter("transition_to_primary_storage_class", transition_to_primary_storage_class) @property @pulumi.getter(name="transitionToIa") diff --git a/sdk/python/pulumi_aws/efs/replication_configuration.py b/sdk/python/pulumi_aws/efs/replication_configuration.py index 573aa7371b3..fdca9c75b9e 100644 --- a/sdk/python/pulumi_aws/efs/replication_configuration.py +++ b/sdk/python/pulumi_aws/efs/replication_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,27 @@ def __init__(__self__, *, :param pulumi.Input['ReplicationConfigurationDestinationArgs'] destination: A destination configuration block (documented below). :param pulumi.Input[str] source_file_system_id: The ID of the file system that is to be replicated. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "source_file_system_id", source_file_system_id) + ReplicationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + source_file_system_id=source_file_system_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['ReplicationConfigurationDestinationArgs']] = None, + source_file_system_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if source_file_system_id is None and 'sourceFileSystemId' in kwargs: + source_file_system_id = kwargs['sourceFileSystemId'] + if source_file_system_id is None: + raise TypeError("Missing 'source_file_system_id' argument") + + _setter("destination", destination) + _setter("source_file_system_id", source_file_system_id) @property @pulumi.getter @@ -71,18 +90,49 @@ def __init__(__self__, *, * `destination[0].file_system_id` - The fs ID of the replica. * `destination[0].status` - The status of the replication. """ + _ReplicationConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_time=creation_time, + destination=destination, + original_source_file_system_arn=original_source_file_system_arn, + source_file_system_arn=source_file_system_arn, + source_file_system_id=source_file_system_id, + source_file_system_region=source_file_system_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_time: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input['ReplicationConfigurationDestinationArgs']] = None, + original_source_file_system_arn: Optional[pulumi.Input[str]] = None, + source_file_system_arn: Optional[pulumi.Input[str]] = None, + source_file_system_id: Optional[pulumi.Input[str]] = None, + source_file_system_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if original_source_file_system_arn is None and 'originalSourceFileSystemArn' in kwargs: + original_source_file_system_arn = kwargs['originalSourceFileSystemArn'] + if source_file_system_arn is None and 'sourceFileSystemArn' in kwargs: + source_file_system_arn = kwargs['sourceFileSystemArn'] + if source_file_system_id is None and 'sourceFileSystemId' in kwargs: + source_file_system_id = kwargs['sourceFileSystemId'] + if source_file_system_region is None and 'sourceFileSystemRegion' in kwargs: + source_file_system_region = kwargs['sourceFileSystemRegion'] + if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if original_source_file_system_arn is not None: - pulumi.set(__self__, "original_source_file_system_arn", original_source_file_system_arn) + _setter("original_source_file_system_arn", original_source_file_system_arn) if source_file_system_arn is not None: - pulumi.set(__self__, "source_file_system_arn", source_file_system_arn) + _setter("source_file_system_arn", source_file_system_arn) if source_file_system_id is not None: - pulumi.set(__self__, "source_file_system_id", source_file_system_id) + _setter("source_file_system_id", source_file_system_id) if source_file_system_region is not None: - pulumi.set(__self__, "source_file_system_region", source_file_system_region) + _setter("source_file_system_region", source_file_system_region) @property @pulumi.getter(name="creationTime") @@ -276,6 +326,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicationConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -292,6 +346,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ReplicationConfigurationArgs.__new__(ReplicationConfigurationArgs) + destination = _utilities.configure(destination, ReplicationConfigurationDestinationArgs, True) if destination is None and not opts.urn: raise TypeError("Missing required property 'destination'") __props__.__dict__["destination"] = destination diff --git a/sdk/python/pulumi_aws/eks/_inputs.py b/sdk/python/pulumi_aws/eks/_inputs.py index 9c13188fd78..50c59a0e1bb 100644 --- a/sdk/python/pulumi_aws/eks/_inputs.py +++ b/sdk/python/pulumi_aws/eks/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -37,8 +37,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] data: Base64 encoded certificate data required to communicate with your cluster. Add this to the `certificate-authority-data` section of the `kubeconfig` file for your cluster. """ + ClusterCertificateAuthorityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -62,8 +73,25 @@ def __init__(__self__, *, :param pulumi.Input['ClusterEncryptionConfigProviderArgs'] provider: Configuration block with provider for encryption. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: List of strings with resources to be encrypted. Valid values: `secrets`. """ - pulumi.set(__self__, "provider", provider) - pulumi.set(__self__, "resources", resources) + ClusterEncryptionConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + provider=provider, + resources=resources, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provider: Optional[pulumi.Input['ClusterEncryptionConfigProviderArgs']] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider is None: + raise TypeError("Missing 'provider' argument") + if resources is None: + raise TypeError("Missing 'resources' argument") + + _setter("provider", provider) + _setter("resources", resources) @property @pulumi.getter @@ -97,7 +125,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] key_arn: ARN of the Key Management Service (KMS) customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see [Allowing Users in Other Accounts to Use a CMK in the AWS Key Management Service Developer Guide](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html). """ - pulumi.set(__self__, "key_arn", key_arn) + ClusterEncryptionConfigProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_arn=key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_arn is None and 'keyArn' in kwargs: + key_arn = kwargs['keyArn'] + if key_arn is None: + raise TypeError("Missing 'key_arn' argument") + + _setter("key_arn", key_arn) @property @pulumi.getter(name="keyArn") @@ -119,8 +162,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ClusterIdentityOidcArgs']]] oidcs: Nested block containing [OpenID Connect](https://openid.net/connect/) identity provider information for the cluster. Detailed below. """ + ClusterIdentityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oidcs=oidcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oidcs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterIdentityOidcArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oidcs is not None: - pulumi.set(__self__, "oidcs", oidcs) + _setter("oidcs", oidcs) @property @pulumi.getter @@ -142,8 +196,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] issuer: Issuer URL for the OpenID Connect identity provider. """ + ClusterIdentityOidcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + issuer: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) @property @pulumi.getter @@ -174,12 +239,33 @@ def __init__(__self__, *, * Between /24 and /12. """ + ClusterKubernetesNetworkConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_family=ip_family, + service_ipv4_cidr=service_ipv4_cidr, + service_ipv6_cidr=service_ipv6_cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_family: Optional[pulumi.Input[str]] = None, + service_ipv4_cidr: Optional[pulumi.Input[str]] = None, + service_ipv6_cidr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_family is None and 'ipFamily' in kwargs: + ip_family = kwargs['ipFamily'] + if service_ipv4_cidr is None and 'serviceIpv4Cidr' in kwargs: + service_ipv4_cidr = kwargs['serviceIpv4Cidr'] + if service_ipv6_cidr is None and 'serviceIpv6Cidr' in kwargs: + service_ipv6_cidr = kwargs['serviceIpv6Cidr'] + if ip_family is not None: - pulumi.set(__self__, "ip_family", ip_family) + _setter("ip_family", ip_family) if service_ipv4_cidr is not None: - pulumi.set(__self__, "service_ipv4_cidr", service_ipv4_cidr) + _setter("service_ipv4_cidr", service_ipv4_cidr) if service_ipv6_cidr is not None: - pulumi.set(__self__, "service_ipv6_cidr", service_ipv6_cidr) + _setter("service_ipv6_cidr", service_ipv6_cidr) @property @pulumi.getter(name="ipFamily") @@ -241,10 +327,35 @@ def __init__(__self__, *, :param pulumi.Input['ClusterOutpostConfigControlPlanePlacementArgs'] control_plane_placement: An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on AWS Outpost. The `control_plane_placement` configuration block supports the following arguments: """ - pulumi.set(__self__, "control_plane_instance_type", control_plane_instance_type) - pulumi.set(__self__, "outpost_arns", outpost_arns) + ClusterOutpostConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + control_plane_instance_type=control_plane_instance_type, + outpost_arns=outpost_arns, + control_plane_placement=control_plane_placement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + control_plane_instance_type: Optional[pulumi.Input[str]] = None, + outpost_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + control_plane_placement: Optional[pulumi.Input['ClusterOutpostConfigControlPlanePlacementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if control_plane_instance_type is None and 'controlPlaneInstanceType' in kwargs: + control_plane_instance_type = kwargs['controlPlaneInstanceType'] + if control_plane_instance_type is None: + raise TypeError("Missing 'control_plane_instance_type' argument") + if outpost_arns is None and 'outpostArns' in kwargs: + outpost_arns = kwargs['outpostArns'] + if outpost_arns is None: + raise TypeError("Missing 'outpost_arns' argument") + if control_plane_placement is None and 'controlPlanePlacement' in kwargs: + control_plane_placement = kwargs['controlPlanePlacement'] + + _setter("control_plane_instance_type", control_plane_instance_type) + _setter("outpost_arns", outpost_arns) if control_plane_placement is not None: - pulumi.set(__self__, "control_plane_placement", control_plane_placement) + _setter("control_plane_placement", control_plane_placement) @property @pulumi.getter(name="controlPlaneInstanceType") @@ -299,7 +410,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] group_name: The name of the placement group for the Kubernetes control plane instances. This setting can't be changed after cluster creation. """ - pulumi.set(__self__, "group_name", group_name) + ClusterOutpostConfigControlPlanePlacementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + + _setter("group_name", group_name) @property @pulumi.getter(name="groupName") @@ -333,19 +459,58 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of security group IDs for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. :param pulumi.Input[str] vpc_id: ID of the VPC associated with your cluster. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + ClusterVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + cluster_security_group_id=cluster_security_group_id, + endpoint_private_access=endpoint_private_access, + endpoint_public_access=endpoint_public_access, + public_access_cidrs=public_access_cidrs, + security_group_ids=security_group_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cluster_security_group_id: Optional[pulumi.Input[str]] = None, + endpoint_private_access: Optional[pulumi.Input[bool]] = None, + endpoint_public_access: Optional[pulumi.Input[bool]] = None, + public_access_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if cluster_security_group_id is None and 'clusterSecurityGroupId' in kwargs: + cluster_security_group_id = kwargs['clusterSecurityGroupId'] + if endpoint_private_access is None and 'endpointPrivateAccess' in kwargs: + endpoint_private_access = kwargs['endpointPrivateAccess'] + if endpoint_public_access is None and 'endpointPublicAccess' in kwargs: + endpoint_public_access = kwargs['endpointPublicAccess'] + if public_access_cidrs is None and 'publicAccessCidrs' in kwargs: + public_access_cidrs = kwargs['publicAccessCidrs'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("subnet_ids", subnet_ids) if cluster_security_group_id is not None: - pulumi.set(__self__, "cluster_security_group_id", cluster_security_group_id) + _setter("cluster_security_group_id", cluster_security_group_id) if endpoint_private_access is not None: - pulumi.set(__self__, "endpoint_private_access", endpoint_private_access) + _setter("endpoint_private_access", endpoint_private_access) if endpoint_public_access is not None: - pulumi.set(__self__, "endpoint_public_access", endpoint_public_access) + _setter("endpoint_public_access", endpoint_public_access) if public_access_cidrs is not None: - pulumi.set(__self__, "public_access_cidrs", public_access_cidrs) + _setter("public_access_cidrs", public_access_cidrs) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="subnetIds") @@ -443,9 +608,24 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Key-value map of Kubernetes labels for selection. """ - pulumi.set(__self__, "namespace", namespace) + FargateProfileSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + labels=labels, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[pulumi.Input[str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) if labels is not None: - pulumi.set(__self__, "labels", labels) + _setter("labels", labels) @property @pulumi.getter @@ -495,19 +675,66 @@ def __init__(__self__, *, :param pulumi.Input[str] username_claim: The JWT claim that the provider will use as the username. :param pulumi.Input[str] username_prefix: A prefix that is prepended to username claims. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "identity_provider_config_name", identity_provider_config_name) - pulumi.set(__self__, "issuer_url", issuer_url) + IdentityProviderConfigOidcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + identity_provider_config_name=identity_provider_config_name, + issuer_url=issuer_url, + groups_claim=groups_claim, + groups_prefix=groups_prefix, + required_claims=required_claims, + username_claim=username_claim, + username_prefix=username_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + identity_provider_config_name: Optional[pulumi.Input[str]] = None, + issuer_url: Optional[pulumi.Input[str]] = None, + groups_claim: Optional[pulumi.Input[str]] = None, + groups_prefix: Optional[pulumi.Input[str]] = None, + required_claims: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + username_claim: Optional[pulumi.Input[str]] = None, + username_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if identity_provider_config_name is None and 'identityProviderConfigName' in kwargs: + identity_provider_config_name = kwargs['identityProviderConfigName'] + if identity_provider_config_name is None: + raise TypeError("Missing 'identity_provider_config_name' argument") + if issuer_url is None and 'issuerUrl' in kwargs: + issuer_url = kwargs['issuerUrl'] + if issuer_url is None: + raise TypeError("Missing 'issuer_url' argument") + if groups_claim is None and 'groupsClaim' in kwargs: + groups_claim = kwargs['groupsClaim'] + if groups_prefix is None and 'groupsPrefix' in kwargs: + groups_prefix = kwargs['groupsPrefix'] + if required_claims is None and 'requiredClaims' in kwargs: + required_claims = kwargs['requiredClaims'] + if username_claim is None and 'usernameClaim' in kwargs: + username_claim = kwargs['usernameClaim'] + if username_prefix is None and 'usernamePrefix' in kwargs: + username_prefix = kwargs['usernamePrefix'] + + _setter("client_id", client_id) + _setter("identity_provider_config_name", identity_provider_config_name) + _setter("issuer_url", issuer_url) if groups_claim is not None: - pulumi.set(__self__, "groups_claim", groups_claim) + _setter("groups_claim", groups_claim) if groups_prefix is not None: - pulumi.set(__self__, "groups_prefix", groups_prefix) + _setter("groups_prefix", groups_prefix) if required_claims is not None: - pulumi.set(__self__, "required_claims", required_claims) + _setter("required_claims", required_claims) if username_claim is not None: - pulumi.set(__self__, "username_claim", username_claim) + _setter("username_claim", username_claim) if username_prefix is not None: - pulumi.set(__self__, "username_prefix", username_prefix) + _setter("username_prefix", username_prefix) @property @pulumi.getter(name="clientId") @@ -617,11 +844,28 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Identifier of the EC2 Launch Template. Conflicts with `name`. :param pulumi.Input[str] name: Name of the EC2 Launch Template. Conflicts with `id`. """ - pulumi.set(__self__, "version", version) + NodeGroupLaunchTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("version", version) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -669,10 +913,27 @@ def __init__(__self__, *, :param pulumi.Input[str] ec2_ssh_key: EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify `source_security_group_ids` when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes. :param pulumi.Input[Sequence[pulumi.Input[str]]] source_security_group_ids: Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify `ec2_ssh_key`, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0). """ + NodeGroupRemoteAccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ec2_ssh_key=ec2_ssh_key, + source_security_group_ids=source_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ec2_ssh_key: Optional[pulumi.Input[str]] = None, + source_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ec2_ssh_key is None and 'ec2SshKey' in kwargs: + ec2_ssh_key = kwargs['ec2SshKey'] + if source_security_group_ids is None and 'sourceSecurityGroupIds' in kwargs: + source_security_group_ids = kwargs['sourceSecurityGroupIds'] + if ec2_ssh_key is not None: - pulumi.set(__self__, "ec2_ssh_key", ec2_ssh_key) + _setter("ec2_ssh_key", ec2_ssh_key) if source_security_group_ids is not None: - pulumi.set(__self__, "source_security_group_ids", source_security_group_ids) + _setter("source_security_group_ids", source_security_group_ids) @property @pulumi.getter(name="ec2SshKey") @@ -708,10 +969,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['NodeGroupResourceAutoscalingGroupArgs']]] autoscaling_groups: List of objects containing information about AutoScaling Groups. :param pulumi.Input[str] remote_access_security_group_id: Identifier of the remote access EC2 Security Group. """ + NodeGroupResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_groups=autoscaling_groups, + remote_access_security_group_id=remote_access_security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_groups: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupResourceAutoscalingGroupArgs']]]] = None, + remote_access_security_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_groups is None and 'autoscalingGroups' in kwargs: + autoscaling_groups = kwargs['autoscalingGroups'] + if remote_access_security_group_id is None and 'remoteAccessSecurityGroupId' in kwargs: + remote_access_security_group_id = kwargs['remoteAccessSecurityGroupId'] + if autoscaling_groups is not None: - pulumi.set(__self__, "autoscaling_groups", autoscaling_groups) + _setter("autoscaling_groups", autoscaling_groups) if remote_access_security_group_id is not None: - pulumi.set(__self__, "remote_access_security_group_id", remote_access_security_group_id) + _setter("remote_access_security_group_id", remote_access_security_group_id) @property @pulumi.getter(name="autoscalingGroups") @@ -745,8 +1023,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the EC2 Launch Template. Conflicts with `id`. """ + NodeGroupResourceAutoscalingGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -772,9 +1061,36 @@ def __init__(__self__, *, :param pulumi.Input[int] max_size: Maximum number of worker nodes. :param pulumi.Input[int] min_size: Minimum number of worker nodes. """ - pulumi.set(__self__, "desired_size", desired_size) - pulumi.set(__self__, "max_size", max_size) - pulumi.set(__self__, "min_size", min_size) + NodeGroupScalingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_size=desired_size, + max_size=max_size, + min_size=min_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_size: Optional[pulumi.Input[int]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_size is None and 'desiredSize' in kwargs: + desired_size = kwargs['desiredSize'] + if desired_size is None: + raise TypeError("Missing 'desired_size' argument") + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if max_size is None: + raise TypeError("Missing 'max_size' argument") + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if min_size is None: + raise TypeError("Missing 'min_size' argument") + + _setter("desired_size", desired_size) + _setter("max_size", max_size) + _setter("min_size", min_size) @property @pulumi.getter(name="desiredSize") @@ -824,10 +1140,29 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key of the taint. Maximum length of 63. :param pulumi.Input[str] value: The value of the taint. Maximum length of 63. """ - pulumi.set(__self__, "effect", effect) - pulumi.set(__self__, "key", key) + NodeGroupTaintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + effect=effect, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + effect: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if effect is None: + raise TypeError("Missing 'effect' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("effect", effect) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -875,10 +1210,27 @@ def __init__(__self__, *, :param pulumi.Input[int] max_unavailable: Desired max number of unavailable worker nodes during node group update. :param pulumi.Input[int] max_unavailable_percentage: Desired max percentage of unavailable worker nodes during node group update. """ + NodeGroupUpdateConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_unavailable=max_unavailable, + max_unavailable_percentage=max_unavailable_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_unavailable: Optional[pulumi.Input[int]] = None, + max_unavailable_percentage: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_unavailable is None and 'maxUnavailable' in kwargs: + max_unavailable = kwargs['maxUnavailable'] + if max_unavailable_percentage is None and 'maxUnavailablePercentage' in kwargs: + max_unavailable_percentage = kwargs['maxUnavailablePercentage'] + if max_unavailable is not None: - pulumi.set(__self__, "max_unavailable", max_unavailable) + _setter("max_unavailable", max_unavailable) if max_unavailable_percentage is not None: - pulumi.set(__self__, "max_unavailable_percentage", max_unavailable_percentage) + _setter("max_unavailable_percentage", max_unavailable_percentage) @property @pulumi.getter(name="maxUnavailable") diff --git a/sdk/python/pulumi_aws/eks/addon.py b/sdk/python/pulumi_aws/eks/addon.py index 8ac3decf394..d064fc10710 100644 --- a/sdk/python/pulumi_aws/eks/addon.py +++ b/sdk/python/pulumi_aws/eks/addon.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AddonArgs', 'Addon'] @@ -51,27 +51,76 @@ def __init__(__self__, *, in the Amazon EKS User Guide. :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. """ - pulumi.set(__self__, "addon_name", addon_name) - pulumi.set(__self__, "cluster_name", cluster_name) + AddonArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + addon_name=addon_name, + cluster_name=cluster_name, + addon_version=addon_version, + configuration_values=configuration_values, + preserve=preserve, + resolve_conflicts=resolve_conflicts, + resolve_conflicts_on_create=resolve_conflicts_on_create, + resolve_conflicts_on_update=resolve_conflicts_on_update, + service_account_role_arn=service_account_role_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + addon_name: Optional[pulumi.Input[str]] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + addon_version: Optional[pulumi.Input[str]] = None, + configuration_values: Optional[pulumi.Input[str]] = None, + preserve: Optional[pulumi.Input[bool]] = None, + resolve_conflicts: Optional[pulumi.Input[str]] = None, + resolve_conflicts_on_create: Optional[pulumi.Input[str]] = None, + resolve_conflicts_on_update: Optional[pulumi.Input[str]] = None, + service_account_role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if addon_name is None and 'addonName' in kwargs: + addon_name = kwargs['addonName'] + if addon_name is None: + raise TypeError("Missing 'addon_name' argument") + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_name is None: + raise TypeError("Missing 'cluster_name' argument") + if addon_version is None and 'addonVersion' in kwargs: + addon_version = kwargs['addonVersion'] + if configuration_values is None and 'configurationValues' in kwargs: + configuration_values = kwargs['configurationValues'] + if resolve_conflicts is None and 'resolveConflicts' in kwargs: + resolve_conflicts = kwargs['resolveConflicts'] + if resolve_conflicts_on_create is None and 'resolveConflictsOnCreate' in kwargs: + resolve_conflicts_on_create = kwargs['resolveConflictsOnCreate'] + if resolve_conflicts_on_update is None and 'resolveConflictsOnUpdate' in kwargs: + resolve_conflicts_on_update = kwargs['resolveConflictsOnUpdate'] + if service_account_role_arn is None and 'serviceAccountRoleArn' in kwargs: + service_account_role_arn = kwargs['serviceAccountRoleArn'] + + _setter("addon_name", addon_name) + _setter("cluster_name", cluster_name) if addon_version is not None: - pulumi.set(__self__, "addon_version", addon_version) + _setter("addon_version", addon_version) if configuration_values is not None: - pulumi.set(__self__, "configuration_values", configuration_values) + _setter("configuration_values", configuration_values) if preserve is not None: - pulumi.set(__self__, "preserve", preserve) + _setter("preserve", preserve) if resolve_conflicts is not None: warnings.warn("""The \"resolve_conflicts\" attribute can't be set to \"PRESERVE\" on initial resource creation. Use \"resolve_conflicts_on_create\" and/or \"resolve_conflicts_on_update\" instead""", DeprecationWarning) pulumi.log.warn("""resolve_conflicts is deprecated: The \"resolve_conflicts\" attribute can't be set to \"PRESERVE\" on initial resource creation. Use \"resolve_conflicts_on_create\" and/or \"resolve_conflicts_on_update\" instead""") if resolve_conflicts is not None: - pulumi.set(__self__, "resolve_conflicts", resolve_conflicts) + _setter("resolve_conflicts", resolve_conflicts) if resolve_conflicts_on_create is not None: - pulumi.set(__self__, "resolve_conflicts_on_create", resolve_conflicts_on_create) + _setter("resolve_conflicts_on_create", resolve_conflicts_on_create) if resolve_conflicts_on_update is not None: - pulumi.set(__self__, "resolve_conflicts_on_update", resolve_conflicts_on_update) + _setter("resolve_conflicts_on_update", resolve_conflicts_on_update) if service_account_role_arn is not None: - pulumi.set(__self__, "service_account_role_arn", service_account_role_arn) + _setter("service_account_role_arn", service_account_role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="addonName") @@ -259,40 +308,99 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: (Optional) Key-value map of resource tags, including those inherited from the provider `default_tags` configuration block. """ + _AddonState._configure( + lambda key, value: pulumi.set(__self__, key, value), + addon_name=addon_name, + addon_version=addon_version, + arn=arn, + cluster_name=cluster_name, + configuration_values=configuration_values, + created_at=created_at, + modified_at=modified_at, + preserve=preserve, + resolve_conflicts=resolve_conflicts, + resolve_conflicts_on_create=resolve_conflicts_on_create, + resolve_conflicts_on_update=resolve_conflicts_on_update, + service_account_role_arn=service_account_role_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + addon_name: Optional[pulumi.Input[str]] = None, + addon_version: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + configuration_values: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + modified_at: Optional[pulumi.Input[str]] = None, + preserve: Optional[pulumi.Input[bool]] = None, + resolve_conflicts: Optional[pulumi.Input[str]] = None, + resolve_conflicts_on_create: Optional[pulumi.Input[str]] = None, + resolve_conflicts_on_update: Optional[pulumi.Input[str]] = None, + service_account_role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if addon_name is None and 'addonName' in kwargs: + addon_name = kwargs['addonName'] + if addon_version is None and 'addonVersion' in kwargs: + addon_version = kwargs['addonVersion'] + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if configuration_values is None and 'configurationValues' in kwargs: + configuration_values = kwargs['configurationValues'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if modified_at is None and 'modifiedAt' in kwargs: + modified_at = kwargs['modifiedAt'] + if resolve_conflicts is None and 'resolveConflicts' in kwargs: + resolve_conflicts = kwargs['resolveConflicts'] + if resolve_conflicts_on_create is None and 'resolveConflictsOnCreate' in kwargs: + resolve_conflicts_on_create = kwargs['resolveConflictsOnCreate'] + if resolve_conflicts_on_update is None and 'resolveConflictsOnUpdate' in kwargs: + resolve_conflicts_on_update = kwargs['resolveConflictsOnUpdate'] + if service_account_role_arn is None and 'serviceAccountRoleArn' in kwargs: + service_account_role_arn = kwargs['serviceAccountRoleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if addon_name is not None: - pulumi.set(__self__, "addon_name", addon_name) + _setter("addon_name", addon_name) if addon_version is not None: - pulumi.set(__self__, "addon_version", addon_version) + _setter("addon_version", addon_version) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if configuration_values is not None: - pulumi.set(__self__, "configuration_values", configuration_values) + _setter("configuration_values", configuration_values) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if modified_at is not None: - pulumi.set(__self__, "modified_at", modified_at) + _setter("modified_at", modified_at) if preserve is not None: - pulumi.set(__self__, "preserve", preserve) + _setter("preserve", preserve) if resolve_conflicts is not None: warnings.warn("""The \"resolve_conflicts\" attribute can't be set to \"PRESERVE\" on initial resource creation. Use \"resolve_conflicts_on_create\" and/or \"resolve_conflicts_on_update\" instead""", DeprecationWarning) pulumi.log.warn("""resolve_conflicts is deprecated: The \"resolve_conflicts\" attribute can't be set to \"PRESERVE\" on initial resource creation. Use \"resolve_conflicts_on_create\" and/or \"resolve_conflicts_on_update\" instead""") if resolve_conflicts is not None: - pulumi.set(__self__, "resolve_conflicts", resolve_conflicts) + _setter("resolve_conflicts", resolve_conflicts) if resolve_conflicts_on_create is not None: - pulumi.set(__self__, "resolve_conflicts_on_create", resolve_conflicts_on_create) + _setter("resolve_conflicts_on_create", resolve_conflicts_on_create) if resolve_conflicts_on_update is not None: - pulumi.set(__self__, "resolve_conflicts_on_update", resolve_conflicts_on_update) + _setter("resolve_conflicts_on_update", resolve_conflicts_on_update) if service_account_role_arn is not None: - pulumi.set(__self__, "service_account_role_arn", service_account_role_arn) + _setter("service_account_role_arn", service_account_role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="addonName") @@ -694,6 +802,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AddonArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -727,9 +839,6 @@ def _internal_init(__self__, __props__.__dict__["cluster_name"] = cluster_name __props__.__dict__["configuration_values"] = configuration_values __props__.__dict__["preserve"] = preserve - if resolve_conflicts is not None and not opts.urn: - warnings.warn("""The \"resolve_conflicts\" attribute can't be set to \"PRESERVE\" on initial resource creation. Use \"resolve_conflicts_on_create\" and/or \"resolve_conflicts_on_update\" instead""", DeprecationWarning) - pulumi.log.warn("""resolve_conflicts is deprecated: The \"resolve_conflicts\" attribute can't be set to \"PRESERVE\" on initial resource creation. Use \"resolve_conflicts_on_create\" and/or \"resolve_conflicts_on_update\" instead""") __props__.__dict__["resolve_conflicts"] = resolve_conflicts __props__.__dict__["resolve_conflicts_on_create"] = resolve_conflicts_on_create __props__.__dict__["resolve_conflicts_on_update"] = resolve_conflicts_on_update diff --git a/sdk/python/pulumi_aws/eks/cluster.py b/sdk/python/pulumi_aws/eks/cluster.py index 99ff113cbb2..727bc058328 100644 --- a/sdk/python/pulumi_aws/eks/cluster.py +++ b/sdk/python/pulumi_aws/eks/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -40,24 +40,71 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] version: Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "vpc_config", vpc_config) + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + vpc_config=vpc_config, + default_addons_to_removes=default_addons_to_removes, + enabled_cluster_log_types=enabled_cluster_log_types, + encryption_config=encryption_config, + kubernetes_network_config=kubernetes_network_config, + name=name, + outpost_config=outpost_config, + tags=tags, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['ClusterVpcConfigArgs']] = None, + default_addons_to_removes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enabled_cluster_log_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + encryption_config: Optional[pulumi.Input['ClusterEncryptionConfigArgs']] = None, + kubernetes_network_config: Optional[pulumi.Input['ClusterKubernetesNetworkConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + outpost_config: Optional[pulumi.Input['ClusterOutpostConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if vpc_config is None: + raise TypeError("Missing 'vpc_config' argument") + if default_addons_to_removes is None and 'defaultAddonsToRemoves' in kwargs: + default_addons_to_removes = kwargs['defaultAddonsToRemoves'] + if enabled_cluster_log_types is None and 'enabledClusterLogTypes' in kwargs: + enabled_cluster_log_types = kwargs['enabledClusterLogTypes'] + if encryption_config is None and 'encryptionConfig' in kwargs: + encryption_config = kwargs['encryptionConfig'] + if kubernetes_network_config is None and 'kubernetesNetworkConfig' in kwargs: + kubernetes_network_config = kwargs['kubernetesNetworkConfig'] + if outpost_config is None and 'outpostConfig' in kwargs: + outpost_config = kwargs['outpostConfig'] + + _setter("role_arn", role_arn) + _setter("vpc_config", vpc_config) if default_addons_to_removes is not None: - pulumi.set(__self__, "default_addons_to_removes", default_addons_to_removes) + _setter("default_addons_to_removes", default_addons_to_removes) if enabled_cluster_log_types is not None: - pulumi.set(__self__, "enabled_cluster_log_types", enabled_cluster_log_types) + _setter("enabled_cluster_log_types", enabled_cluster_log_types) if encryption_config is not None: - pulumi.set(__self__, "encryption_config", encryption_config) + _setter("encryption_config", encryption_config) if kubernetes_network_config is not None: - pulumi.set(__self__, "kubernetes_network_config", kubernetes_network_config) + _setter("kubernetes_network_config", kubernetes_network_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if outpost_config is not None: - pulumi.set(__self__, "outpost_config", outpost_config) + _setter("outpost_config", outpost_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="roleArn") @@ -226,49 +273,124 @@ def __init__(__self__, *, The following arguments are optional: """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + certificate_authorities=certificate_authorities, + certificate_authority=certificate_authority, + cluster_id=cluster_id, + created_at=created_at, + default_addons_to_removes=default_addons_to_removes, + enabled_cluster_log_types=enabled_cluster_log_types, + encryption_config=encryption_config, + endpoint=endpoint, + identities=identities, + kubernetes_network_config=kubernetes_network_config, + name=name, + outpost_config=outpost_config, + platform_version=platform_version, + role_arn=role_arn, + status=status, + tags=tags, + tags_all=tags_all, + version=version, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + certificate_authorities: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCertificateAuthorityArgs']]]] = None, + certificate_authority: Optional[pulumi.Input['ClusterCertificateAuthorityArgs']] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + default_addons_to_removes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enabled_cluster_log_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + encryption_config: Optional[pulumi.Input['ClusterEncryptionConfigArgs']] = None, + endpoint: Optional[pulumi.Input[str]] = None, + identities: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterIdentityArgs']]]] = None, + kubernetes_network_config: Optional[pulumi.Input['ClusterKubernetesNetworkConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + outpost_config: Optional[pulumi.Input['ClusterOutpostConfigArgs']] = None, + platform_version: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['ClusterVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authorities is None and 'certificateAuthorities' in kwargs: + certificate_authorities = kwargs['certificateAuthorities'] + if certificate_authority is None and 'certificateAuthority' in kwargs: + certificate_authority = kwargs['certificateAuthority'] + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if default_addons_to_removes is None and 'defaultAddonsToRemoves' in kwargs: + default_addons_to_removes = kwargs['defaultAddonsToRemoves'] + if enabled_cluster_log_types is None and 'enabledClusterLogTypes' in kwargs: + enabled_cluster_log_types = kwargs['enabledClusterLogTypes'] + if encryption_config is None and 'encryptionConfig' in kwargs: + encryption_config = kwargs['encryptionConfig'] + if kubernetes_network_config is None and 'kubernetesNetworkConfig' in kwargs: + kubernetes_network_config = kwargs['kubernetesNetworkConfig'] + if outpost_config is None and 'outpostConfig' in kwargs: + outpost_config = kwargs['outpostConfig'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate_authorities is not None: - pulumi.set(__self__, "certificate_authorities", certificate_authorities) + _setter("certificate_authorities", certificate_authorities) if certificate_authority is not None: - pulumi.set(__self__, "certificate_authority", certificate_authority) + _setter("certificate_authority", certificate_authority) if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if default_addons_to_removes is not None: - pulumi.set(__self__, "default_addons_to_removes", default_addons_to_removes) + _setter("default_addons_to_removes", default_addons_to_removes) if enabled_cluster_log_types is not None: - pulumi.set(__self__, "enabled_cluster_log_types", enabled_cluster_log_types) + _setter("enabled_cluster_log_types", enabled_cluster_log_types) if encryption_config is not None: - pulumi.set(__self__, "encryption_config", encryption_config) + _setter("encryption_config", encryption_config) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if identities is not None: - pulumi.set(__self__, "identities", identities) + _setter("identities", identities) if kubernetes_network_config is not None: - pulumi.set(__self__, "kubernetes_network_config", kubernetes_network_config) + _setter("kubernetes_network_config", kubernetes_network_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if outpost_config is not None: - pulumi.set(__self__, "outpost_config", outpost_config) + _setter("outpost_config", outpost_config) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -763,6 +885,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -789,15 +915,19 @@ def _internal_init(__self__, __props__.__dict__["default_addons_to_removes"] = default_addons_to_removes __props__.__dict__["enabled_cluster_log_types"] = enabled_cluster_log_types + encryption_config = _utilities.configure(encryption_config, ClusterEncryptionConfigArgs, True) __props__.__dict__["encryption_config"] = encryption_config + kubernetes_network_config = _utilities.configure(kubernetes_network_config, ClusterKubernetesNetworkConfigArgs, True) __props__.__dict__["kubernetes_network_config"] = kubernetes_network_config __props__.__dict__["name"] = name + outpost_config = _utilities.configure(outpost_config, ClusterOutpostConfigArgs, True) __props__.__dict__["outpost_config"] = outpost_config if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") __props__.__dict__["role_arn"] = role_arn __props__.__dict__["tags"] = tags __props__.__dict__["version"] = version + vpc_config = _utilities.configure(vpc_config, ClusterVpcConfigArgs, True) if vpc_config is None and not opts.urn: raise TypeError("Missing required property 'vpc_config'") __props__.__dict__["vpc_config"] = vpc_config diff --git a/sdk/python/pulumi_aws/eks/fargate_profile.py b/sdk/python/pulumi_aws/eks/fargate_profile.py index 878452e1326..ed192fdedc2 100644 --- a/sdk/python/pulumi_aws/eks/fargate_profile.py +++ b/sdk/python/pulumi_aws/eks/fargate_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,15 +33,50 @@ def __init__(__self__, *, The following arguments are optional: :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. """ - pulumi.set(__self__, "cluster_name", cluster_name) - pulumi.set(__self__, "pod_execution_role_arn", pod_execution_role_arn) - pulumi.set(__self__, "selectors", selectors) + FargateProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_name=cluster_name, + pod_execution_role_arn=pod_execution_role_arn, + selectors=selectors, + fargate_profile_name=fargate_profile_name, + subnet_ids=subnet_ids, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_name: Optional[pulumi.Input[str]] = None, + pod_execution_role_arn: Optional[pulumi.Input[str]] = None, + selectors: Optional[pulumi.Input[Sequence[pulumi.Input['FargateProfileSelectorArgs']]]] = None, + fargate_profile_name: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_name is None: + raise TypeError("Missing 'cluster_name' argument") + if pod_execution_role_arn is None and 'podExecutionRoleArn' in kwargs: + pod_execution_role_arn = kwargs['podExecutionRoleArn'] + if pod_execution_role_arn is None: + raise TypeError("Missing 'pod_execution_role_arn' argument") + if selectors is None: + raise TypeError("Missing 'selectors' argument") + if fargate_profile_name is None and 'fargateProfileName' in kwargs: + fargate_profile_name = kwargs['fargateProfileName'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + + _setter("cluster_name", cluster_name) + _setter("pod_execution_role_arn", pod_execution_role_arn) + _setter("selectors", selectors) if fargate_profile_name is not None: - pulumi.set(__self__, "fargate_profile_name", fargate_profile_name) + _setter("fargate_profile_name", fargate_profile_name) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterName") @@ -144,27 +179,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _FargateProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cluster_name=cluster_name, + fargate_profile_name=fargate_profile_name, + pod_execution_role_arn=pod_execution_role_arn, + selectors=selectors, + status=status, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + fargate_profile_name: Optional[pulumi.Input[str]] = None, + pod_execution_role_arn: Optional[pulumi.Input[str]] = None, + selectors: Optional[pulumi.Input[Sequence[pulumi.Input['FargateProfileSelectorArgs']]]] = None, + status: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if fargate_profile_name is None and 'fargateProfileName' in kwargs: + fargate_profile_name = kwargs['fargateProfileName'] + if pod_execution_role_arn is None and 'podExecutionRoleArn' in kwargs: + pod_execution_role_arn = kwargs['podExecutionRoleArn'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if fargate_profile_name is not None: - pulumi.set(__self__, "fargate_profile_name", fargate_profile_name) + _setter("fargate_profile_name", fargate_profile_name) if pod_execution_role_arn is not None: - pulumi.set(__self__, "pod_execution_role_arn", pod_execution_role_arn) + _setter("pod_execution_role_arn", pod_execution_role_arn) if selectors is not None: - pulumi.set(__self__, "selectors", selectors) + _setter("selectors", selectors) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -413,6 +485,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FargateProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/eks/get_addon.py b/sdk/python/pulumi_aws/eks/get_addon.py index 4bba9a96a7d..9f557a9948c 100644 --- a/sdk/python/pulumi_aws/eks/get_addon.py +++ b/sdk/python/pulumi_aws/eks/get_addon.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/eks/get_addon_version.py b/sdk/python/pulumi_aws/eks/get_addon_version.py index de4b235e87a..67ee6e55b3c 100644 --- a/sdk/python/pulumi_aws/eks/get_addon_version.py +++ b/sdk/python/pulumi_aws/eks/get_addon_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/eks/get_cluster.py b/sdk/python/pulumi_aws/eks/get_cluster.py index 0176cfdc75b..07fa00488c2 100644 --- a/sdk/python/pulumi_aws/eks/get_cluster.py +++ b/sdk/python/pulumi_aws/eks/get_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/eks/get_cluster_auth.py b/sdk/python/pulumi_aws/eks/get_cluster_auth.py index 80d8134aa7d..8d0a3777dc9 100644 --- a/sdk/python/pulumi_aws/eks/get_cluster_auth.py +++ b/sdk/python/pulumi_aws/eks/get_cluster_auth.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/eks/get_clusters.py b/sdk/python/pulumi_aws/eks/get_clusters.py index 68852c0b31a..1ced97d038a 100644 --- a/sdk/python/pulumi_aws/eks/get_clusters.py +++ b/sdk/python/pulumi_aws/eks/get_clusters.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetClustersResult', 'AwaitableGetClustersResult', 'get_clusters', + 'get_clusters_output', ] @pulumi.output_type @@ -66,3 +67,11 @@ def get_clusters(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetClu return AwaitableGetClustersResult( id=pulumi.get(__ret__, 'id'), names=pulumi.get(__ret__, 'names')) + + +@_utilities.lift_output_func(get_clusters) +def get_clusters_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetClustersResult]: + """ + Retrieve EKS Clusters list + """ + ... diff --git a/sdk/python/pulumi_aws/eks/get_node_group.py b/sdk/python/pulumi_aws/eks/get_node_group.py index de936bbfdd5..b500ad20819 100644 --- a/sdk/python/pulumi_aws/eks/get_node_group.py +++ b/sdk/python/pulumi_aws/eks/get_node_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/eks/get_node_groups.py b/sdk/python/pulumi_aws/eks/get_node_groups.py index 8b34bd15be2..412934310be 100644 --- a/sdk/python/pulumi_aws/eks/get_node_groups.py +++ b/sdk/python/pulumi_aws/eks/get_node_groups.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/eks/identity_provider_config.py b/sdk/python/pulumi_aws/eks/identity_provider_config.py index da29c27d7dd..0d856f9fbf2 100644 --- a/sdk/python/pulumi_aws/eks/identity_provider_config.py +++ b/sdk/python/pulumi_aws/eks/identity_provider_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,31 @@ def __init__(__self__, *, :param pulumi.Input['IdentityProviderConfigOidcArgs'] oidc: Nested attribute containing [OpenID Connect](https://openid.net/connect/) identity provider information for the cluster. Detailed below. :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. """ - pulumi.set(__self__, "cluster_name", cluster_name) - pulumi.set(__self__, "oidc", oidc) + IdentityProviderConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_name=cluster_name, + oidc=oidc, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_name: Optional[pulumi.Input[str]] = None, + oidc: Optional[pulumi.Input['IdentityProviderConfigOidcArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_name is None: + raise TypeError("Missing 'cluster_name' argument") + if oidc is None: + raise TypeError("Missing 'oidc' argument") + + _setter("cluster_name", cluster_name) + _setter("oidc", oidc) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterName") @@ -85,21 +106,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _IdentityProviderConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cluster_name=cluster_name, + oidc=oidc, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + oidc: Optional[pulumi.Input['IdentityProviderConfigOidcArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if oidc is not None: - pulumi.set(__self__, "oidc", oidc) + _setter("oidc", oidc) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -260,6 +306,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IdentityProviderConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -280,6 +330,7 @@ def _internal_init(__self__, if cluster_name is None and not opts.urn: raise TypeError("Missing required property 'cluster_name'") __props__.__dict__["cluster_name"] = cluster_name + oidc = _utilities.configure(oidc, IdentityProviderConfigOidcArgs, True) if oidc is None and not opts.urn: raise TypeError("Missing required property 'oidc'") __props__.__dict__["oidc"] = oidc diff --git a/sdk/python/pulumi_aws/eks/node_group.py b/sdk/python/pulumi_aws/eks/node_group.py index 335daff56cc..965114a0228 100644 --- a/sdk/python/pulumi_aws/eks/node_group.py +++ b/sdk/python/pulumi_aws/eks/node_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -59,40 +59,125 @@ def __init__(__self__, *, :param pulumi.Input['NodeGroupUpdateConfigArgs'] update_config: Configuration block with update settings. See `update_config` below for details. :param pulumi.Input[str] version: Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided. """ - pulumi.set(__self__, "cluster_name", cluster_name) - pulumi.set(__self__, "node_role_arn", node_role_arn) - pulumi.set(__self__, "scaling_config", scaling_config) - pulumi.set(__self__, "subnet_ids", subnet_ids) + NodeGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_name=cluster_name, + node_role_arn=node_role_arn, + scaling_config=scaling_config, + subnet_ids=subnet_ids, + ami_type=ami_type, + capacity_type=capacity_type, + disk_size=disk_size, + force_update_version=force_update_version, + instance_types=instance_types, + labels=labels, + launch_template=launch_template, + node_group_name=node_group_name, + node_group_name_prefix=node_group_name_prefix, + release_version=release_version, + remote_access=remote_access, + tags=tags, + taints=taints, + update_config=update_config, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_name: Optional[pulumi.Input[str]] = None, + node_role_arn: Optional[pulumi.Input[str]] = None, + scaling_config: Optional[pulumi.Input['NodeGroupScalingConfigArgs']] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ami_type: Optional[pulumi.Input[str]] = None, + capacity_type: Optional[pulumi.Input[str]] = None, + disk_size: Optional[pulumi.Input[int]] = None, + force_update_version: Optional[pulumi.Input[bool]] = None, + instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + launch_template: Optional[pulumi.Input['NodeGroupLaunchTemplateArgs']] = None, + node_group_name: Optional[pulumi.Input[str]] = None, + node_group_name_prefix: Optional[pulumi.Input[str]] = None, + release_version: Optional[pulumi.Input[str]] = None, + remote_access: Optional[pulumi.Input['NodeGroupRemoteAccessArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + taints: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupTaintArgs']]]] = None, + update_config: Optional[pulumi.Input['NodeGroupUpdateConfigArgs']] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_name is None: + raise TypeError("Missing 'cluster_name' argument") + if node_role_arn is None and 'nodeRoleArn' in kwargs: + node_role_arn = kwargs['nodeRoleArn'] + if node_role_arn is None: + raise TypeError("Missing 'node_role_arn' argument") + if scaling_config is None and 'scalingConfig' in kwargs: + scaling_config = kwargs['scalingConfig'] + if scaling_config is None: + raise TypeError("Missing 'scaling_config' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if ami_type is None and 'amiType' in kwargs: + ami_type = kwargs['amiType'] + if capacity_type is None and 'capacityType' in kwargs: + capacity_type = kwargs['capacityType'] + if disk_size is None and 'diskSize' in kwargs: + disk_size = kwargs['diskSize'] + if force_update_version is None and 'forceUpdateVersion' in kwargs: + force_update_version = kwargs['forceUpdateVersion'] + if instance_types is None and 'instanceTypes' in kwargs: + instance_types = kwargs['instanceTypes'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if node_group_name is None and 'nodeGroupName' in kwargs: + node_group_name = kwargs['nodeGroupName'] + if node_group_name_prefix is None and 'nodeGroupNamePrefix' in kwargs: + node_group_name_prefix = kwargs['nodeGroupNamePrefix'] + if release_version is None and 'releaseVersion' in kwargs: + release_version = kwargs['releaseVersion'] + if remote_access is None and 'remoteAccess' in kwargs: + remote_access = kwargs['remoteAccess'] + if update_config is None and 'updateConfig' in kwargs: + update_config = kwargs['updateConfig'] + + _setter("cluster_name", cluster_name) + _setter("node_role_arn", node_role_arn) + _setter("scaling_config", scaling_config) + _setter("subnet_ids", subnet_ids) if ami_type is not None: - pulumi.set(__self__, "ami_type", ami_type) + _setter("ami_type", ami_type) if capacity_type is not None: - pulumi.set(__self__, "capacity_type", capacity_type) + _setter("capacity_type", capacity_type) if disk_size is not None: - pulumi.set(__self__, "disk_size", disk_size) + _setter("disk_size", disk_size) if force_update_version is not None: - pulumi.set(__self__, "force_update_version", force_update_version) + _setter("force_update_version", force_update_version) if instance_types is not None: - pulumi.set(__self__, "instance_types", instance_types) + _setter("instance_types", instance_types) if labels is not None: - pulumi.set(__self__, "labels", labels) + _setter("labels", labels) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if node_group_name is not None: - pulumi.set(__self__, "node_group_name", node_group_name) + _setter("node_group_name", node_group_name) if node_group_name_prefix is not None: - pulumi.set(__self__, "node_group_name_prefix", node_group_name_prefix) + _setter("node_group_name_prefix", node_group_name_prefix) if release_version is not None: - pulumi.set(__self__, "release_version", release_version) + _setter("release_version", release_version) if remote_access is not None: - pulumi.set(__self__, "remote_access", remote_access) + _setter("remote_access", remote_access) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if taints is not None: - pulumi.set(__self__, "taints", taints) + _setter("taints", taints) if update_config is not None: - pulumi.set(__self__, "update_config", update_config) + _setter("update_config", update_config) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="clusterName") @@ -379,55 +464,142 @@ def __init__(__self__, *, :param pulumi.Input['NodeGroupUpdateConfigArgs'] update_config: Configuration block with update settings. See `update_config` below for details. :param pulumi.Input[str] version: Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided. """ + _NodeGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami_type=ami_type, + arn=arn, + capacity_type=capacity_type, + cluster_name=cluster_name, + disk_size=disk_size, + force_update_version=force_update_version, + instance_types=instance_types, + labels=labels, + launch_template=launch_template, + node_group_name=node_group_name, + node_group_name_prefix=node_group_name_prefix, + node_role_arn=node_role_arn, + release_version=release_version, + remote_access=remote_access, + resources=resources, + scaling_config=scaling_config, + status=status, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + taints=taints, + update_config=update_config, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami_type: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + capacity_type: Optional[pulumi.Input[str]] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + disk_size: Optional[pulumi.Input[int]] = None, + force_update_version: Optional[pulumi.Input[bool]] = None, + instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + launch_template: Optional[pulumi.Input['NodeGroupLaunchTemplateArgs']] = None, + node_group_name: Optional[pulumi.Input[str]] = None, + node_group_name_prefix: Optional[pulumi.Input[str]] = None, + node_role_arn: Optional[pulumi.Input[str]] = None, + release_version: Optional[pulumi.Input[str]] = None, + remote_access: Optional[pulumi.Input['NodeGroupRemoteAccessArgs']] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupResourceArgs']]]] = None, + scaling_config: Optional[pulumi.Input['NodeGroupScalingConfigArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + taints: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupTaintArgs']]]] = None, + update_config: Optional[pulumi.Input['NodeGroupUpdateConfigArgs']] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ami_type is None and 'amiType' in kwargs: + ami_type = kwargs['amiType'] + if capacity_type is None and 'capacityType' in kwargs: + capacity_type = kwargs['capacityType'] + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if disk_size is None and 'diskSize' in kwargs: + disk_size = kwargs['diskSize'] + if force_update_version is None and 'forceUpdateVersion' in kwargs: + force_update_version = kwargs['forceUpdateVersion'] + if instance_types is None and 'instanceTypes' in kwargs: + instance_types = kwargs['instanceTypes'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if node_group_name is None and 'nodeGroupName' in kwargs: + node_group_name = kwargs['nodeGroupName'] + if node_group_name_prefix is None and 'nodeGroupNamePrefix' in kwargs: + node_group_name_prefix = kwargs['nodeGroupNamePrefix'] + if node_role_arn is None and 'nodeRoleArn' in kwargs: + node_role_arn = kwargs['nodeRoleArn'] + if release_version is None and 'releaseVersion' in kwargs: + release_version = kwargs['releaseVersion'] + if remote_access is None and 'remoteAccess' in kwargs: + remote_access = kwargs['remoteAccess'] + if scaling_config is None and 'scalingConfig' in kwargs: + scaling_config = kwargs['scalingConfig'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_config is None and 'updateConfig' in kwargs: + update_config = kwargs['updateConfig'] + if ami_type is not None: - pulumi.set(__self__, "ami_type", ami_type) + _setter("ami_type", ami_type) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if capacity_type is not None: - pulumi.set(__self__, "capacity_type", capacity_type) + _setter("capacity_type", capacity_type) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if disk_size is not None: - pulumi.set(__self__, "disk_size", disk_size) + _setter("disk_size", disk_size) if force_update_version is not None: - pulumi.set(__self__, "force_update_version", force_update_version) + _setter("force_update_version", force_update_version) if instance_types is not None: - pulumi.set(__self__, "instance_types", instance_types) + _setter("instance_types", instance_types) if labels is not None: - pulumi.set(__self__, "labels", labels) + _setter("labels", labels) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if node_group_name is not None: - pulumi.set(__self__, "node_group_name", node_group_name) + _setter("node_group_name", node_group_name) if node_group_name_prefix is not None: - pulumi.set(__self__, "node_group_name_prefix", node_group_name_prefix) + _setter("node_group_name_prefix", node_group_name_prefix) if node_role_arn is not None: - pulumi.set(__self__, "node_role_arn", node_role_arn) + _setter("node_role_arn", node_role_arn) if release_version is not None: - pulumi.set(__self__, "release_version", release_version) + _setter("release_version", release_version) if remote_access is not None: - pulumi.set(__self__, "remote_access", remote_access) + _setter("remote_access", remote_access) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if scaling_config is not None: - pulumi.set(__self__, "scaling_config", scaling_config) + _setter("scaling_config", scaling_config) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if taints is not None: - pulumi.set(__self__, "taints", taints) + _setter("taints", taints) if update_config is not None: - pulumi.set(__self__, "update_config", update_config) + _setter("update_config", update_config) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="amiType") @@ -928,6 +1100,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NodeGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -970,6 +1146,7 @@ def _internal_init(__self__, __props__.__dict__["force_update_version"] = force_update_version __props__.__dict__["instance_types"] = instance_types __props__.__dict__["labels"] = labels + launch_template = _utilities.configure(launch_template, NodeGroupLaunchTemplateArgs, True) __props__.__dict__["launch_template"] = launch_template __props__.__dict__["node_group_name"] = node_group_name __props__.__dict__["node_group_name_prefix"] = node_group_name_prefix @@ -977,7 +1154,9 @@ def _internal_init(__self__, raise TypeError("Missing required property 'node_role_arn'") __props__.__dict__["node_role_arn"] = node_role_arn __props__.__dict__["release_version"] = release_version + remote_access = _utilities.configure(remote_access, NodeGroupRemoteAccessArgs, True) __props__.__dict__["remote_access"] = remote_access + scaling_config = _utilities.configure(scaling_config, NodeGroupScalingConfigArgs, True) if scaling_config is None and not opts.urn: raise TypeError("Missing required property 'scaling_config'") __props__.__dict__["scaling_config"] = scaling_config @@ -986,6 +1165,7 @@ def _internal_init(__self__, __props__.__dict__["subnet_ids"] = subnet_ids __props__.__dict__["tags"] = tags __props__.__dict__["taints"] = taints + update_config = _utilities.configure(update_config, NodeGroupUpdateConfigArgs, True) __props__.__dict__["update_config"] = update_config __props__.__dict__["version"] = version __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/eks/outputs.py b/sdk/python/pulumi_aws/eks/outputs.py index 8c2b9c7e015..e362b49d627 100644 --- a/sdk/python/pulumi_aws/eks/outputs.py +++ b/sdk/python/pulumi_aws/eks/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -51,8 +51,19 @@ def __init__(__self__, *, """ :param str data: Base64 encoded certificate data required to communicate with your cluster. Add this to the `certificate-authority-data` section of the `kubeconfig` file for your cluster. """ + ClusterCertificateAuthority._configure( + lambda key, value: pulumi.set(__self__, key, value), + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -72,8 +83,25 @@ def __init__(__self__, *, :param 'ClusterEncryptionConfigProviderArgs' provider: Configuration block with provider for encryption. Detailed below. :param Sequence[str] resources: List of strings with resources to be encrypted. Valid values: `secrets`. """ - pulumi.set(__self__, "provider", provider) - pulumi.set(__self__, "resources", resources) + ClusterEncryptionConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + provider=provider, + resources=resources, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provider: Optional['outputs.ClusterEncryptionConfigProvider'] = None, + resources: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider is None: + raise TypeError("Missing 'provider' argument") + if resources is None: + raise TypeError("Missing 'resources' argument") + + _setter("provider", provider) + _setter("resources", resources) @property @pulumi.getter @@ -116,7 +144,22 @@ def __init__(__self__, *, """ :param str key_arn: ARN of the Key Management Service (KMS) customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see [Allowing Users in Other Accounts to Use a CMK in the AWS Key Management Service Developer Guide](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html). """ - pulumi.set(__self__, "key_arn", key_arn) + ClusterEncryptionConfigProvider._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_arn=key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_arn is None and 'keyArn' in kwargs: + key_arn = kwargs['keyArn'] + if key_arn is None: + raise TypeError("Missing 'key_arn' argument") + + _setter("key_arn", key_arn) @property @pulumi.getter(name="keyArn") @@ -134,8 +177,19 @@ def __init__(__self__, *, """ :param Sequence['ClusterIdentityOidcArgs'] oidcs: Nested block containing [OpenID Connect](https://openid.net/connect/) identity provider information for the cluster. Detailed below. """ + ClusterIdentity._configure( + lambda key, value: pulumi.set(__self__, key, value), + oidcs=oidcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oidcs: Optional[Sequence['outputs.ClusterIdentityOidc']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oidcs is not None: - pulumi.set(__self__, "oidcs", oidcs) + _setter("oidcs", oidcs) @property @pulumi.getter @@ -153,8 +207,19 @@ def __init__(__self__, *, """ :param str issuer: Issuer URL for the OpenID Connect identity provider. """ + ClusterIdentityOidc._configure( + lambda key, value: pulumi.set(__self__, key, value), + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) @property @pulumi.getter @@ -202,12 +267,33 @@ def __init__(__self__, *, * Between /24 and /12. """ + ClusterKubernetesNetworkConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_family=ip_family, + service_ipv4_cidr=service_ipv4_cidr, + service_ipv6_cidr=service_ipv6_cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_family: Optional[str] = None, + service_ipv4_cidr: Optional[str] = None, + service_ipv6_cidr: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_family is None and 'ipFamily' in kwargs: + ip_family = kwargs['ipFamily'] + if service_ipv4_cidr is None and 'serviceIpv4Cidr' in kwargs: + service_ipv4_cidr = kwargs['serviceIpv4Cidr'] + if service_ipv6_cidr is None and 'serviceIpv6Cidr' in kwargs: + service_ipv6_cidr = kwargs['serviceIpv6Cidr'] + if ip_family is not None: - pulumi.set(__self__, "ip_family", ip_family) + _setter("ip_family", ip_family) if service_ipv4_cidr is not None: - pulumi.set(__self__, "service_ipv4_cidr", service_ipv4_cidr) + _setter("service_ipv4_cidr", service_ipv4_cidr) if service_ipv6_cidr is not None: - pulumi.set(__self__, "service_ipv6_cidr", service_ipv6_cidr) + _setter("service_ipv6_cidr", service_ipv6_cidr) @property @pulumi.getter(name="ipFamily") @@ -278,10 +364,35 @@ def __init__(__self__, *, :param 'ClusterOutpostConfigControlPlanePlacementArgs' control_plane_placement: An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on AWS Outpost. The `control_plane_placement` configuration block supports the following arguments: """ - pulumi.set(__self__, "control_plane_instance_type", control_plane_instance_type) - pulumi.set(__self__, "outpost_arns", outpost_arns) + ClusterOutpostConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + control_plane_instance_type=control_plane_instance_type, + outpost_arns=outpost_arns, + control_plane_placement=control_plane_placement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + control_plane_instance_type: Optional[str] = None, + outpost_arns: Optional[Sequence[str]] = None, + control_plane_placement: Optional['outputs.ClusterOutpostConfigControlPlanePlacement'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if control_plane_instance_type is None and 'controlPlaneInstanceType' in kwargs: + control_plane_instance_type = kwargs['controlPlaneInstanceType'] + if control_plane_instance_type is None: + raise TypeError("Missing 'control_plane_instance_type' argument") + if outpost_arns is None and 'outpostArns' in kwargs: + outpost_arns = kwargs['outpostArns'] + if outpost_arns is None: + raise TypeError("Missing 'outpost_arns' argument") + if control_plane_placement is None and 'controlPlanePlacement' in kwargs: + control_plane_placement = kwargs['controlPlanePlacement'] + + _setter("control_plane_instance_type", control_plane_instance_type) + _setter("outpost_arns", outpost_arns) if control_plane_placement is not None: - pulumi.set(__self__, "control_plane_placement", control_plane_placement) + _setter("control_plane_placement", control_plane_placement) @property @pulumi.getter(name="controlPlaneInstanceType") @@ -341,7 +452,22 @@ def __init__(__self__, *, """ :param str group_name: The name of the placement group for the Kubernetes control plane instances. This setting can't be changed after cluster creation. """ - pulumi.set(__self__, "group_name", group_name) + ClusterOutpostConfigControlPlanePlacement._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + + _setter("group_name", group_name) @property @pulumi.getter(name="groupName") @@ -400,19 +526,58 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: List of security group IDs for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. :param str vpc_id: ID of the VPC associated with your cluster. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + ClusterVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + cluster_security_group_id=cluster_security_group_id, + endpoint_private_access=endpoint_private_access, + endpoint_public_access=endpoint_public_access, + public_access_cidrs=public_access_cidrs, + security_group_ids=security_group_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[Sequence[str]] = None, + cluster_security_group_id: Optional[str] = None, + endpoint_private_access: Optional[bool] = None, + endpoint_public_access: Optional[bool] = None, + public_access_cidrs: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if cluster_security_group_id is None and 'clusterSecurityGroupId' in kwargs: + cluster_security_group_id = kwargs['clusterSecurityGroupId'] + if endpoint_private_access is None and 'endpointPrivateAccess' in kwargs: + endpoint_private_access = kwargs['endpointPrivateAccess'] + if endpoint_public_access is None and 'endpointPublicAccess' in kwargs: + endpoint_public_access = kwargs['endpointPublicAccess'] + if public_access_cidrs is None and 'publicAccessCidrs' in kwargs: + public_access_cidrs = kwargs['publicAccessCidrs'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("subnet_ids", subnet_ids) if cluster_security_group_id is not None: - pulumi.set(__self__, "cluster_security_group_id", cluster_security_group_id) + _setter("cluster_security_group_id", cluster_security_group_id) if endpoint_private_access is not None: - pulumi.set(__self__, "endpoint_private_access", endpoint_private_access) + _setter("endpoint_private_access", endpoint_private_access) if endpoint_public_access is not None: - pulumi.set(__self__, "endpoint_public_access", endpoint_public_access) + _setter("endpoint_public_access", endpoint_public_access) if public_access_cidrs is not None: - pulumi.set(__self__, "public_access_cidrs", public_access_cidrs) + _setter("public_access_cidrs", public_access_cidrs) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="subnetIds") @@ -482,9 +647,24 @@ def __init__(__self__, *, The following arguments are optional: :param Mapping[str, str] labels: Key-value map of Kubernetes labels for selection. """ - pulumi.set(__self__, "namespace", namespace) + FargateProfileSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + labels=labels, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[str] = None, + labels: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) if labels is not None: - pulumi.set(__self__, "labels", labels) + _setter("labels", labels) @property @pulumi.getter @@ -557,19 +737,66 @@ def __init__(__self__, *, :param str username_claim: The JWT claim that the provider will use as the username. :param str username_prefix: A prefix that is prepended to username claims. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "identity_provider_config_name", identity_provider_config_name) - pulumi.set(__self__, "issuer_url", issuer_url) + IdentityProviderConfigOidc._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + identity_provider_config_name=identity_provider_config_name, + issuer_url=issuer_url, + groups_claim=groups_claim, + groups_prefix=groups_prefix, + required_claims=required_claims, + username_claim=username_claim, + username_prefix=username_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + identity_provider_config_name: Optional[str] = None, + issuer_url: Optional[str] = None, + groups_claim: Optional[str] = None, + groups_prefix: Optional[str] = None, + required_claims: Optional[Mapping[str, str]] = None, + username_claim: Optional[str] = None, + username_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if identity_provider_config_name is None and 'identityProviderConfigName' in kwargs: + identity_provider_config_name = kwargs['identityProviderConfigName'] + if identity_provider_config_name is None: + raise TypeError("Missing 'identity_provider_config_name' argument") + if issuer_url is None and 'issuerUrl' in kwargs: + issuer_url = kwargs['issuerUrl'] + if issuer_url is None: + raise TypeError("Missing 'issuer_url' argument") + if groups_claim is None and 'groupsClaim' in kwargs: + groups_claim = kwargs['groupsClaim'] + if groups_prefix is None and 'groupsPrefix' in kwargs: + groups_prefix = kwargs['groupsPrefix'] + if required_claims is None and 'requiredClaims' in kwargs: + required_claims = kwargs['requiredClaims'] + if username_claim is None and 'usernameClaim' in kwargs: + username_claim = kwargs['usernameClaim'] + if username_prefix is None and 'usernamePrefix' in kwargs: + username_prefix = kwargs['usernamePrefix'] + + _setter("client_id", client_id) + _setter("identity_provider_config_name", identity_provider_config_name) + _setter("issuer_url", issuer_url) if groups_claim is not None: - pulumi.set(__self__, "groups_claim", groups_claim) + _setter("groups_claim", groups_claim) if groups_prefix is not None: - pulumi.set(__self__, "groups_prefix", groups_prefix) + _setter("groups_prefix", groups_prefix) if required_claims is not None: - pulumi.set(__self__, "required_claims", required_claims) + _setter("required_claims", required_claims) if username_claim is not None: - pulumi.set(__self__, "username_claim", username_claim) + _setter("username_claim", username_claim) if username_prefix is not None: - pulumi.set(__self__, "username_prefix", username_prefix) + _setter("username_prefix", username_prefix) @property @pulumi.getter(name="clientId") @@ -647,11 +874,28 @@ def __init__(__self__, *, :param str id: Identifier of the EC2 Launch Template. Conflicts with `name`. :param str name: Name of the EC2 Launch Template. Conflicts with `id`. """ - pulumi.set(__self__, "version", version) + NodeGroupLaunchTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("version", version) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -706,10 +950,27 @@ def __init__(__self__, *, :param str ec2_ssh_key: EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify `source_security_group_ids` when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes. :param Sequence[str] source_security_group_ids: Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify `ec2_ssh_key`, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0). """ + NodeGroupRemoteAccess._configure( + lambda key, value: pulumi.set(__self__, key, value), + ec2_ssh_key=ec2_ssh_key, + source_security_group_ids=source_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ec2_ssh_key: Optional[str] = None, + source_security_group_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ec2_ssh_key is None and 'ec2SshKey' in kwargs: + ec2_ssh_key = kwargs['ec2SshKey'] + if source_security_group_ids is None and 'sourceSecurityGroupIds' in kwargs: + source_security_group_ids = kwargs['sourceSecurityGroupIds'] + if ec2_ssh_key is not None: - pulumi.set(__self__, "ec2_ssh_key", ec2_ssh_key) + _setter("ec2_ssh_key", ec2_ssh_key) if source_security_group_ids is not None: - pulumi.set(__self__, "source_security_group_ids", source_security_group_ids) + _setter("source_security_group_ids", source_security_group_ids) @property @pulumi.getter(name="ec2SshKey") @@ -756,10 +1017,27 @@ def __init__(__self__, *, :param Sequence['NodeGroupResourceAutoscalingGroupArgs'] autoscaling_groups: List of objects containing information about AutoScaling Groups. :param str remote_access_security_group_id: Identifier of the remote access EC2 Security Group. """ + NodeGroupResource._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_groups=autoscaling_groups, + remote_access_security_group_id=remote_access_security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_groups: Optional[Sequence['outputs.NodeGroupResourceAutoscalingGroup']] = None, + remote_access_security_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_groups is None and 'autoscalingGroups' in kwargs: + autoscaling_groups = kwargs['autoscalingGroups'] + if remote_access_security_group_id is None and 'remoteAccessSecurityGroupId' in kwargs: + remote_access_security_group_id = kwargs['remoteAccessSecurityGroupId'] + if autoscaling_groups is not None: - pulumi.set(__self__, "autoscaling_groups", autoscaling_groups) + _setter("autoscaling_groups", autoscaling_groups) if remote_access_security_group_id is not None: - pulumi.set(__self__, "remote_access_security_group_id", remote_access_security_group_id) + _setter("remote_access_security_group_id", remote_access_security_group_id) @property @pulumi.getter(name="autoscalingGroups") @@ -785,8 +1063,19 @@ def __init__(__self__, *, """ :param str name: Name of the EC2 Launch Template. Conflicts with `id`. """ + NodeGroupResourceAutoscalingGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -829,9 +1118,36 @@ def __init__(__self__, *, :param int max_size: Maximum number of worker nodes. :param int min_size: Minimum number of worker nodes. """ - pulumi.set(__self__, "desired_size", desired_size) - pulumi.set(__self__, "max_size", max_size) - pulumi.set(__self__, "min_size", min_size) + NodeGroupScalingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_size=desired_size, + max_size=max_size, + min_size=min_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_size: Optional[int] = None, + max_size: Optional[int] = None, + min_size: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_size is None and 'desiredSize' in kwargs: + desired_size = kwargs['desiredSize'] + if desired_size is None: + raise TypeError("Missing 'desired_size' argument") + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if max_size is None: + raise TypeError("Missing 'max_size' argument") + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if min_size is None: + raise TypeError("Missing 'min_size' argument") + + _setter("desired_size", desired_size) + _setter("max_size", max_size) + _setter("min_size", min_size) @property @pulumi.getter(name="desiredSize") @@ -869,10 +1185,29 @@ def __init__(__self__, *, :param str key: The key of the taint. Maximum length of 63. :param str value: The value of the taint. Maximum length of 63. """ - pulumi.set(__self__, "effect", effect) - pulumi.set(__self__, "key", key) + NodeGroupTaint._configure( + lambda key, value: pulumi.set(__self__, key, value), + effect=effect, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + effect: Optional[str] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if effect is None: + raise TypeError("Missing 'effect' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("effect", effect) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -927,10 +1262,27 @@ def __init__(__self__, *, :param int max_unavailable: Desired max number of unavailable worker nodes during node group update. :param int max_unavailable_percentage: Desired max percentage of unavailable worker nodes during node group update. """ + NodeGroupUpdateConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_unavailable=max_unavailable, + max_unavailable_percentage=max_unavailable_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_unavailable: Optional[int] = None, + max_unavailable_percentage: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_unavailable is None and 'maxUnavailable' in kwargs: + max_unavailable = kwargs['maxUnavailable'] + if max_unavailable_percentage is None and 'maxUnavailablePercentage' in kwargs: + max_unavailable_percentage = kwargs['maxUnavailablePercentage'] + if max_unavailable is not None: - pulumi.set(__self__, "max_unavailable", max_unavailable) + _setter("max_unavailable", max_unavailable) if max_unavailable_percentage is not None: - pulumi.set(__self__, "max_unavailable_percentage", max_unavailable_percentage) + _setter("max_unavailable_percentage", max_unavailable_percentage) @property @pulumi.getter(name="maxUnavailable") @@ -956,7 +1308,20 @@ def __init__(__self__, *, """ :param str data: The base64 encoded certificate data required to communicate with your cluster. Add this to the `certificate-authority-data` section of the `kubeconfig` file for your cluster. """ - pulumi.set(__self__, "data", data) + GetClusterCertificateAuthorityResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data is None: + raise TypeError("Missing 'data' argument") + + _setter("data", data) @property @pulumi.getter @@ -974,7 +1339,20 @@ def __init__(__self__, *, """ :param Sequence['GetClusterIdentityOidcArgs'] oidcs: Nested attribute containing [OpenID Connect](https://openid.net/connect/) identity provider information for the cluster. """ - pulumi.set(__self__, "oidcs", oidcs) + GetClusterIdentityResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + oidcs=oidcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oidcs: Optional[Sequence['outputs.GetClusterIdentityOidcResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oidcs is None: + raise TypeError("Missing 'oidcs' argument") + + _setter("oidcs", oidcs) @property @pulumi.getter @@ -992,7 +1370,20 @@ def __init__(__self__, *, """ :param str issuer: Issuer URL for the OpenID Connect identity provider. """ - pulumi.set(__self__, "issuer", issuer) + GetClusterIdentityOidcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if issuer is None: + raise TypeError("Missing 'issuer' argument") + + _setter("issuer", issuer) @property @pulumi.getter @@ -1014,9 +1405,36 @@ def __init__(__self__, *, :param str service_ipv4_cidr: The CIDR block to assign Kubernetes pod and service IP addresses from if `ipv4` was specified when the cluster was created. :param str service_ipv6_cidr: The CIDR block to assign Kubernetes pod and service IP addresses from if `ipv6` was specified when the cluster was created. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster. """ - pulumi.set(__self__, "ip_family", ip_family) - pulumi.set(__self__, "service_ipv4_cidr", service_ipv4_cidr) - pulumi.set(__self__, "service_ipv6_cidr", service_ipv6_cidr) + GetClusterKubernetesNetworkConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_family=ip_family, + service_ipv4_cidr=service_ipv4_cidr, + service_ipv6_cidr=service_ipv6_cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_family: Optional[str] = None, + service_ipv4_cidr: Optional[str] = None, + service_ipv6_cidr: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_family is None and 'ipFamily' in kwargs: + ip_family = kwargs['ipFamily'] + if ip_family is None: + raise TypeError("Missing 'ip_family' argument") + if service_ipv4_cidr is None and 'serviceIpv4Cidr' in kwargs: + service_ipv4_cidr = kwargs['serviceIpv4Cidr'] + if service_ipv4_cidr is None: + raise TypeError("Missing 'service_ipv4_cidr' argument") + if service_ipv6_cidr is None and 'serviceIpv6Cidr' in kwargs: + service_ipv6_cidr = kwargs['serviceIpv6Cidr'] + if service_ipv6_cidr is None: + raise TypeError("Missing 'service_ipv6_cidr' argument") + + _setter("ip_family", ip_family) + _setter("service_ipv4_cidr", service_ipv4_cidr) + _setter("service_ipv6_cidr", service_ipv6_cidr) @property @pulumi.getter(name="ipFamily") @@ -1054,9 +1472,36 @@ def __init__(__self__, *, :param Sequence['GetClusterOutpostConfigControlPlanePlacementArgs'] control_plane_placements: An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on AWS Outpost. :param Sequence[str] outpost_arns: List of ARNs of the Outposts hosting the EKS cluster. Only a single ARN is supported currently. """ - pulumi.set(__self__, "control_plane_instance_type", control_plane_instance_type) - pulumi.set(__self__, "control_plane_placements", control_plane_placements) - pulumi.set(__self__, "outpost_arns", outpost_arns) + GetClusterOutpostConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + control_plane_instance_type=control_plane_instance_type, + control_plane_placements=control_plane_placements, + outpost_arns=outpost_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + control_plane_instance_type: Optional[str] = None, + control_plane_placements: Optional[Sequence['outputs.GetClusterOutpostConfigControlPlanePlacementResult']] = None, + outpost_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if control_plane_instance_type is None and 'controlPlaneInstanceType' in kwargs: + control_plane_instance_type = kwargs['controlPlaneInstanceType'] + if control_plane_instance_type is None: + raise TypeError("Missing 'control_plane_instance_type' argument") + if control_plane_placements is None and 'controlPlanePlacements' in kwargs: + control_plane_placements = kwargs['controlPlanePlacements'] + if control_plane_placements is None: + raise TypeError("Missing 'control_plane_placements' argument") + if outpost_arns is None and 'outpostArns' in kwargs: + outpost_arns = kwargs['outpostArns'] + if outpost_arns is None: + raise TypeError("Missing 'outpost_arns' argument") + + _setter("control_plane_instance_type", control_plane_instance_type) + _setter("control_plane_placements", control_plane_placements) + _setter("outpost_arns", outpost_arns) @property @pulumi.getter(name="controlPlaneInstanceType") @@ -1090,7 +1535,22 @@ def __init__(__self__, *, """ :param str group_name: The name of the placement group for the Kubernetes control plane instances. """ - pulumi.set(__self__, "group_name", group_name) + GetClusterOutpostConfigControlPlanePlacementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + + _setter("group_name", group_name) @property @pulumi.getter(name="groupName") @@ -1120,13 +1580,64 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: List of subnet IDs :param str vpc_id: The VPC associated with your cluster. """ - pulumi.set(__self__, "cluster_security_group_id", cluster_security_group_id) - pulumi.set(__self__, "endpoint_private_access", endpoint_private_access) - pulumi.set(__self__, "endpoint_public_access", endpoint_public_access) - pulumi.set(__self__, "public_access_cidrs", public_access_cidrs) - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + GetClusterVpcConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_security_group_id=cluster_security_group_id, + endpoint_private_access=endpoint_private_access, + endpoint_public_access=endpoint_public_access, + public_access_cidrs=public_access_cidrs, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_security_group_id: Optional[str] = None, + endpoint_private_access: Optional[bool] = None, + endpoint_public_access: Optional[bool] = None, + public_access_cidrs: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_security_group_id is None and 'clusterSecurityGroupId' in kwargs: + cluster_security_group_id = kwargs['clusterSecurityGroupId'] + if cluster_security_group_id is None: + raise TypeError("Missing 'cluster_security_group_id' argument") + if endpoint_private_access is None and 'endpointPrivateAccess' in kwargs: + endpoint_private_access = kwargs['endpointPrivateAccess'] + if endpoint_private_access is None: + raise TypeError("Missing 'endpoint_private_access' argument") + if endpoint_public_access is None and 'endpointPublicAccess' in kwargs: + endpoint_public_access = kwargs['endpointPublicAccess'] + if endpoint_public_access is None: + raise TypeError("Missing 'endpoint_public_access' argument") + if public_access_cidrs is None and 'publicAccessCidrs' in kwargs: + public_access_cidrs = kwargs['publicAccessCidrs'] + if public_access_cidrs is None: + raise TypeError("Missing 'public_access_cidrs' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("cluster_security_group_id", cluster_security_group_id) + _setter("endpoint_private_access", endpoint_private_access) + _setter("endpoint_public_access", endpoint_public_access) + _setter("public_access_cidrs", public_access_cidrs) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="clusterSecurityGroupId") @@ -1196,9 +1707,30 @@ def __init__(__self__, *, :param str name: Name of the AutoScaling Group. :param str version: Kubernetes version. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "version", version) + GetNodeGroupLaunchTemplateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("id", id) + _setter("name", name) + _setter("version", version) @property @pulumi.getter @@ -1234,8 +1766,29 @@ def __init__(__self__, *, :param str ec2_ssh_key: EC2 Key Pair name that provides access for SSH communication with the worker nodes in the EKS Node Group. :param Sequence[str] source_security_group_ids: Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. """ - pulumi.set(__self__, "ec2_ssh_key", ec2_ssh_key) - pulumi.set(__self__, "source_security_group_ids", source_security_group_ids) + GetNodeGroupRemoteAccessResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ec2_ssh_key=ec2_ssh_key, + source_security_group_ids=source_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ec2_ssh_key: Optional[str] = None, + source_security_group_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ec2_ssh_key is None and 'ec2SshKey' in kwargs: + ec2_ssh_key = kwargs['ec2SshKey'] + if ec2_ssh_key is None: + raise TypeError("Missing 'ec2_ssh_key' argument") + if source_security_group_ids is None and 'sourceSecurityGroupIds' in kwargs: + source_security_group_ids = kwargs['sourceSecurityGroupIds'] + if source_security_group_ids is None: + raise TypeError("Missing 'source_security_group_ids' argument") + + _setter("ec2_ssh_key", ec2_ssh_key) + _setter("source_security_group_ids", source_security_group_ids) @property @pulumi.getter(name="ec2SshKey") @@ -1263,8 +1816,29 @@ def __init__(__self__, *, :param Sequence['GetNodeGroupResourceAutoscalingGroupArgs'] autoscaling_groups: List of objects containing information about AutoScaling Groups. :param str remote_access_security_group_id: Identifier of the remote access EC2 Security Group. """ - pulumi.set(__self__, "autoscaling_groups", autoscaling_groups) - pulumi.set(__self__, "remote_access_security_group_id", remote_access_security_group_id) + GetNodeGroupResourceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_groups=autoscaling_groups, + remote_access_security_group_id=remote_access_security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_groups: Optional[Sequence['outputs.GetNodeGroupResourceAutoscalingGroupResult']] = None, + remote_access_security_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_groups is None and 'autoscalingGroups' in kwargs: + autoscaling_groups = kwargs['autoscalingGroups'] + if autoscaling_groups is None: + raise TypeError("Missing 'autoscaling_groups' argument") + if remote_access_security_group_id is None and 'remoteAccessSecurityGroupId' in kwargs: + remote_access_security_group_id = kwargs['remoteAccessSecurityGroupId'] + if remote_access_security_group_id is None: + raise TypeError("Missing 'remote_access_security_group_id' argument") + + _setter("autoscaling_groups", autoscaling_groups) + _setter("remote_access_security_group_id", remote_access_security_group_id) @property @pulumi.getter(name="autoscalingGroups") @@ -1290,7 +1864,20 @@ def __init__(__self__, *, """ :param str name: Name of the AutoScaling Group. """ - pulumi.set(__self__, "name", name) + GetNodeGroupResourceAutoscalingGroupResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -1312,9 +1899,36 @@ def __init__(__self__, *, :param int max_size: Maximum number of worker nodes. :param int min_size: Minimum number of worker nodes. """ - pulumi.set(__self__, "desired_size", desired_size) - pulumi.set(__self__, "max_size", max_size) - pulumi.set(__self__, "min_size", min_size) + GetNodeGroupScalingConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_size=desired_size, + max_size=max_size, + min_size=min_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_size: Optional[int] = None, + max_size: Optional[int] = None, + min_size: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_size is None and 'desiredSize' in kwargs: + desired_size = kwargs['desiredSize'] + if desired_size is None: + raise TypeError("Missing 'desired_size' argument") + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if max_size is None: + raise TypeError("Missing 'max_size' argument") + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if min_size is None: + raise TypeError("Missing 'min_size' argument") + + _setter("desired_size", desired_size) + _setter("max_size", max_size) + _setter("min_size", min_size) @property @pulumi.getter(name="desiredSize") @@ -1352,9 +1966,30 @@ def __init__(__self__, *, :param str key: The key of the taint. :param str value: The value of the taint. """ - pulumi.set(__self__, "effect", effect) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + GetNodeGroupTaintResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + effect=effect, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + effect: Optional[str] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if effect is None: + raise TypeError("Missing 'effect' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("effect", effect) + _setter("key", key) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/elasticache/_inputs.py b/sdk/python/pulumi_aws/elasticache/_inputs.py index f35f4b948f8..6fafb494748 100644 --- a/sdk/python/pulumi_aws/elasticache/_inputs.py +++ b/sdk/python/pulumi_aws/elasticache/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -31,16 +31,39 @@ def __init__(__self__, *, :param pulumi.Input[str] availability_zone: Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferred_availability_zones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. :param pulumi.Input[int] port: The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replication_group_id`. Changing this value will re-create the resource. """ + ClusterCacheNodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + availability_zone=availability_zone, + id=id, + outpost_arn=outpost_arn, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + outpost_arn: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -107,10 +130,41 @@ def __init__(__self__, *, :param pulumi.Input[str] log_format: Valid values are `json` or `text` :param pulumi.Input[str] log_type: Valid values are `slow-log` or `engine-log`. Max 1 of each. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_type", destination_type) - pulumi.set(__self__, "log_format", log_format) - pulumi.set(__self__, "log_type", log_type) + ClusterLogDeliveryConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_type=destination_type, + log_format=log_format, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + destination_type: Optional[pulumi.Input[str]] = None, + log_format: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + if destination_type is None: + raise TypeError("Missing 'destination_type' argument") + if log_format is None and 'logFormat' in kwargs: + log_format = kwargs['logFormat'] + if log_format is None: + raise TypeError("Missing 'log_format' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("destination", destination) + _setter("destination_type", destination_type) + _setter("log_format", log_format) + _setter("log_type", log_type) @property @pulumi.getter @@ -170,10 +224,25 @@ def __init__(__self__, *, :param pulumi.Input[str] global_node_group_id: The ID of the global node group. :param pulumi.Input[str] slots: The keyspace for this node group. """ + GlobalReplicationGroupGlobalNodeGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_node_group_id=global_node_group_id, + slots=slots, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_node_group_id: Optional[pulumi.Input[str]] = None, + slots: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_node_group_id is None and 'globalNodeGroupId' in kwargs: + global_node_group_id = kwargs['globalNodeGroupId'] + if global_node_group_id is not None: - pulumi.set(__self__, "global_node_group_id", global_node_group_id) + _setter("global_node_group_id", global_node_group_id) if slots is not None: - pulumi.set(__self__, "slots", slots) + _setter("slots", slots) @property @pulumi.getter(name="globalNodeGroupId") @@ -209,8 +278,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the ElastiCache parameter. :param pulumi.Input[str] value: The value of the ElastiCache parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -250,10 +336,41 @@ def __init__(__self__, *, :param pulumi.Input[str] log_format: Valid values are `json` or `text` :param pulumi.Input[str] log_type: Valid values are `slow-log` or `engine-log`. Max 1 of each. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_type", destination_type) - pulumi.set(__self__, "log_format", log_format) - pulumi.set(__self__, "log_type", log_type) + ReplicationGroupLogDeliveryConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_type=destination_type, + log_format=log_format, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + destination_type: Optional[pulumi.Input[str]] = None, + log_format: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + if destination_type is None: + raise TypeError("Missing 'destination_type' argument") + if log_format is None and 'logFormat' in kwargs: + log_format = kwargs['logFormat'] + if log_format is None: + raise TypeError("Missing 'log_format' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("destination", destination) + _setter("destination_type", destination_type) + _setter("log_format", log_format) + _setter("log_type", log_type) @property @pulumi.getter @@ -314,11 +431,30 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Specifies the authentication type. Possible options are: `password`, `no-password-required` or `iam`. :param pulumi.Input[Sequence[pulumi.Input[str]]] passwords: Specifies the passwords to use for authentication if `type` is set to `password`. """ - pulumi.set(__self__, "type", type) + UserAuthenticationModeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + password_count=password_count, + passwords=passwords, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + password_count: Optional[pulumi.Input[int]] = None, + passwords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if password_count is None and 'passwordCount' in kwargs: + password_count = kwargs['passwordCount'] + + _setter("type", type) if password_count is not None: - pulumi.set(__self__, "password_count", password_count) + _setter("password_count", password_count) if passwords is not None: - pulumi.set(__self__, "passwords", passwords) + _setter("passwords", passwords) @property @pulumi.getter @@ -359,10 +495,25 @@ class GetUserAuthenticationModeArgs: def __init__(__self__, *, password_count: Optional[int] = None, type: Optional[str] = None): + GetUserAuthenticationModeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password_count=password_count, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password_count: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password_count is None and 'passwordCount' in kwargs: + password_count = kwargs['passwordCount'] + if password_count is not None: - pulumi.set(__self__, "password_count", password_count) + _setter("password_count", password_count) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="passwordCount") diff --git a/sdk/python/pulumi_aws/elasticache/cluster.py b/sdk/python/pulumi_aws/elasticache/cluster.py index 05d892cdb3c..122edf20978 100644 --- a/sdk/python/pulumi_aws/elasticache/cluster.py +++ b/sdk/python/pulumi_aws/elasticache/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -90,64 +90,183 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[bool] transit_encryption_enabled: Enable encryption in-transit. Supported only with Memcached versions `1.6.12` and later, running in a VPC. See the [ElastiCache in-transit encryption](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/in-transit-encryption-mc.html) documentation for more details. """ + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_immediately=apply_immediately, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + az_mode=az_mode, + cluster_id=cluster_id, + engine=engine, + engine_version=engine_version, + final_snapshot_identifier=final_snapshot_identifier, + ip_discovery=ip_discovery, + log_delivery_configurations=log_delivery_configurations, + maintenance_window=maintenance_window, + network_type=network_type, + node_type=node_type, + notification_topic_arn=notification_topic_arn, + num_cache_nodes=num_cache_nodes, + outpost_mode=outpost_mode, + parameter_group_name=parameter_group_name, + port=port, + preferred_availability_zones=preferred_availability_zones, + preferred_outpost_arn=preferred_outpost_arn, + replication_group_id=replication_group_id, + security_group_ids=security_group_ids, + snapshot_arns=snapshot_arns, + snapshot_name=snapshot_name, + snapshot_retention_limit=snapshot_retention_limit, + snapshot_window=snapshot_window, + subnet_group_name=subnet_group_name, + tags=tags, + transit_encryption_enabled=transit_encryption_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_immediately: Optional[pulumi.Input[bool]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + az_mode: Optional[pulumi.Input[str]] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + ip_discovery: Optional[pulumi.Input[str]] = None, + log_delivery_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterLogDeliveryConfigurationArgs']]]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + network_type: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + notification_topic_arn: Optional[pulumi.Input[str]] = None, + num_cache_nodes: Optional[pulumi.Input[int]] = None, + outpost_mode: Optional[pulumi.Input[str]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + preferred_outpost_arn: Optional[pulumi.Input[str]] = None, + replication_group_id: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_arns: Optional[pulumi.Input[str]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + snapshot_retention_limit: Optional[pulumi.Input[int]] = None, + snapshot_window: Optional[pulumi.Input[str]] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_encryption_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if az_mode is None and 'azMode' in kwargs: + az_mode = kwargs['azMode'] + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if ip_discovery is None and 'ipDiscovery' in kwargs: + ip_discovery = kwargs['ipDiscovery'] + if log_delivery_configurations is None and 'logDeliveryConfigurations' in kwargs: + log_delivery_configurations = kwargs['logDeliveryConfigurations'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if network_type is None and 'networkType' in kwargs: + network_type = kwargs['networkType'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if notification_topic_arn is None and 'notificationTopicArn' in kwargs: + notification_topic_arn = kwargs['notificationTopicArn'] + if num_cache_nodes is None and 'numCacheNodes' in kwargs: + num_cache_nodes = kwargs['numCacheNodes'] + if outpost_mode is None and 'outpostMode' in kwargs: + outpost_mode = kwargs['outpostMode'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if preferred_availability_zones is None and 'preferredAvailabilityZones' in kwargs: + preferred_availability_zones = kwargs['preferredAvailabilityZones'] + if preferred_outpost_arn is None and 'preferredOutpostArn' in kwargs: + preferred_outpost_arn = kwargs['preferredOutpostArn'] + if replication_group_id is None and 'replicationGroupId' in kwargs: + replication_group_id = kwargs['replicationGroupId'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if snapshot_arns is None and 'snapshotArns' in kwargs: + snapshot_arns = kwargs['snapshotArns'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if snapshot_retention_limit is None and 'snapshotRetentionLimit' in kwargs: + snapshot_retention_limit = kwargs['snapshotRetentionLimit'] + if snapshot_window is None and 'snapshotWindow' in kwargs: + snapshot_window = kwargs['snapshotWindow'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if transit_encryption_enabled is None and 'transitEncryptionEnabled' in kwargs: + transit_encryption_enabled = kwargs['transitEncryptionEnabled'] + if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if az_mode is not None: - pulumi.set(__self__, "az_mode", az_mode) + _setter("az_mode", az_mode) if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if ip_discovery is not None: - pulumi.set(__self__, "ip_discovery", ip_discovery) + _setter("ip_discovery", ip_discovery) if log_delivery_configurations is not None: - pulumi.set(__self__, "log_delivery_configurations", log_delivery_configurations) + _setter("log_delivery_configurations", log_delivery_configurations) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if network_type is not None: - pulumi.set(__self__, "network_type", network_type) + _setter("network_type", network_type) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if notification_topic_arn is not None: - pulumi.set(__self__, "notification_topic_arn", notification_topic_arn) + _setter("notification_topic_arn", notification_topic_arn) if num_cache_nodes is not None: - pulumi.set(__self__, "num_cache_nodes", num_cache_nodes) + _setter("num_cache_nodes", num_cache_nodes) if outpost_mode is not None: - pulumi.set(__self__, "outpost_mode", outpost_mode) + _setter("outpost_mode", outpost_mode) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_availability_zones is not None: - pulumi.set(__self__, "preferred_availability_zones", preferred_availability_zones) + _setter("preferred_availability_zones", preferred_availability_zones) if preferred_outpost_arn is not None: - pulumi.set(__self__, "preferred_outpost_arn", preferred_outpost_arn) + _setter("preferred_outpost_arn", preferred_outpost_arn) if replication_group_id is not None: - pulumi.set(__self__, "replication_group_id", replication_group_id) + _setter("replication_group_id", replication_group_id) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if snapshot_arns is not None: - pulumi.set(__self__, "snapshot_arns", snapshot_arns) + _setter("snapshot_arns", snapshot_arns) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) if snapshot_retention_limit is not None: - pulumi.set(__self__, "snapshot_retention_limit", snapshot_retention_limit) + _setter("snapshot_retention_limit", snapshot_retention_limit) if snapshot_window is not None: - pulumi.set(__self__, "snapshot_window", snapshot_window) + _setter("snapshot_window", snapshot_window) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transit_encryption_enabled is not None: - pulumi.set(__self__, "transit_encryption_enabled", transit_encryption_enabled) + _setter("transit_encryption_enabled", transit_encryption_enabled) @property @pulumi.getter(name="applyImmediately") @@ -600,79 +719,220 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[bool] transit_encryption_enabled: Enable encryption in-transit. Supported only with Memcached versions `1.6.12` and later, running in a VPC. See the [ElastiCache in-transit encryption](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/in-transit-encryption-mc.html) documentation for more details. """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_immediately=apply_immediately, + arn=arn, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + az_mode=az_mode, + cache_nodes=cache_nodes, + cluster_address=cluster_address, + cluster_id=cluster_id, + configuration_endpoint=configuration_endpoint, + engine=engine, + engine_version=engine_version, + engine_version_actual=engine_version_actual, + final_snapshot_identifier=final_snapshot_identifier, + ip_discovery=ip_discovery, + log_delivery_configurations=log_delivery_configurations, + maintenance_window=maintenance_window, + network_type=network_type, + node_type=node_type, + notification_topic_arn=notification_topic_arn, + num_cache_nodes=num_cache_nodes, + outpost_mode=outpost_mode, + parameter_group_name=parameter_group_name, + port=port, + preferred_availability_zones=preferred_availability_zones, + preferred_outpost_arn=preferred_outpost_arn, + replication_group_id=replication_group_id, + security_group_ids=security_group_ids, + snapshot_arns=snapshot_arns, + snapshot_name=snapshot_name, + snapshot_retention_limit=snapshot_retention_limit, + snapshot_window=snapshot_window, + subnet_group_name=subnet_group_name, + tags=tags, + tags_all=tags_all, + transit_encryption_enabled=transit_encryption_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + az_mode: Optional[pulumi.Input[str]] = None, + cache_nodes: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCacheNodeArgs']]]] = None, + cluster_address: Optional[pulumi.Input[str]] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + configuration_endpoint: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + engine_version_actual: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + ip_discovery: Optional[pulumi.Input[str]] = None, + log_delivery_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterLogDeliveryConfigurationArgs']]]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + network_type: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + notification_topic_arn: Optional[pulumi.Input[str]] = None, + num_cache_nodes: Optional[pulumi.Input[int]] = None, + outpost_mode: Optional[pulumi.Input[str]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + preferred_outpost_arn: Optional[pulumi.Input[str]] = None, + replication_group_id: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_arns: Optional[pulumi.Input[str]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + snapshot_retention_limit: Optional[pulumi.Input[int]] = None, + snapshot_window: Optional[pulumi.Input[str]] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_encryption_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if az_mode is None and 'azMode' in kwargs: + az_mode = kwargs['azMode'] + if cache_nodes is None and 'cacheNodes' in kwargs: + cache_nodes = kwargs['cacheNodes'] + if cluster_address is None and 'clusterAddress' in kwargs: + cluster_address = kwargs['clusterAddress'] + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if configuration_endpoint is None and 'configurationEndpoint' in kwargs: + configuration_endpoint = kwargs['configurationEndpoint'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version_actual is None and 'engineVersionActual' in kwargs: + engine_version_actual = kwargs['engineVersionActual'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if ip_discovery is None and 'ipDiscovery' in kwargs: + ip_discovery = kwargs['ipDiscovery'] + if log_delivery_configurations is None and 'logDeliveryConfigurations' in kwargs: + log_delivery_configurations = kwargs['logDeliveryConfigurations'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if network_type is None and 'networkType' in kwargs: + network_type = kwargs['networkType'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if notification_topic_arn is None and 'notificationTopicArn' in kwargs: + notification_topic_arn = kwargs['notificationTopicArn'] + if num_cache_nodes is None and 'numCacheNodes' in kwargs: + num_cache_nodes = kwargs['numCacheNodes'] + if outpost_mode is None and 'outpostMode' in kwargs: + outpost_mode = kwargs['outpostMode'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if preferred_availability_zones is None and 'preferredAvailabilityZones' in kwargs: + preferred_availability_zones = kwargs['preferredAvailabilityZones'] + if preferred_outpost_arn is None and 'preferredOutpostArn' in kwargs: + preferred_outpost_arn = kwargs['preferredOutpostArn'] + if replication_group_id is None and 'replicationGroupId' in kwargs: + replication_group_id = kwargs['replicationGroupId'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if snapshot_arns is None and 'snapshotArns' in kwargs: + snapshot_arns = kwargs['snapshotArns'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if snapshot_retention_limit is None and 'snapshotRetentionLimit' in kwargs: + snapshot_retention_limit = kwargs['snapshotRetentionLimit'] + if snapshot_window is None and 'snapshotWindow' in kwargs: + snapshot_window = kwargs['snapshotWindow'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_encryption_enabled is None and 'transitEncryptionEnabled' in kwargs: + transit_encryption_enabled = kwargs['transitEncryptionEnabled'] + if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if az_mode is not None: - pulumi.set(__self__, "az_mode", az_mode) + _setter("az_mode", az_mode) if cache_nodes is not None: - pulumi.set(__self__, "cache_nodes", cache_nodes) + _setter("cache_nodes", cache_nodes) if cluster_address is not None: - pulumi.set(__self__, "cluster_address", cluster_address) + _setter("cluster_address", cluster_address) if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if configuration_endpoint is not None: - pulumi.set(__self__, "configuration_endpoint", configuration_endpoint) + _setter("configuration_endpoint", configuration_endpoint) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if engine_version_actual is not None: - pulumi.set(__self__, "engine_version_actual", engine_version_actual) + _setter("engine_version_actual", engine_version_actual) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if ip_discovery is not None: - pulumi.set(__self__, "ip_discovery", ip_discovery) + _setter("ip_discovery", ip_discovery) if log_delivery_configurations is not None: - pulumi.set(__self__, "log_delivery_configurations", log_delivery_configurations) + _setter("log_delivery_configurations", log_delivery_configurations) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if network_type is not None: - pulumi.set(__self__, "network_type", network_type) + _setter("network_type", network_type) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if notification_topic_arn is not None: - pulumi.set(__self__, "notification_topic_arn", notification_topic_arn) + _setter("notification_topic_arn", notification_topic_arn) if num_cache_nodes is not None: - pulumi.set(__self__, "num_cache_nodes", num_cache_nodes) + _setter("num_cache_nodes", num_cache_nodes) if outpost_mode is not None: - pulumi.set(__self__, "outpost_mode", outpost_mode) + _setter("outpost_mode", outpost_mode) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_availability_zones is not None: - pulumi.set(__self__, "preferred_availability_zones", preferred_availability_zones) + _setter("preferred_availability_zones", preferred_availability_zones) if preferred_outpost_arn is not None: - pulumi.set(__self__, "preferred_outpost_arn", preferred_outpost_arn) + _setter("preferred_outpost_arn", preferred_outpost_arn) if replication_group_id is not None: - pulumi.set(__self__, "replication_group_id", replication_group_id) + _setter("replication_group_id", replication_group_id) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if snapshot_arns is not None: - pulumi.set(__self__, "snapshot_arns", snapshot_arns) + _setter("snapshot_arns", snapshot_arns) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) if snapshot_retention_limit is not None: - pulumi.set(__self__, "snapshot_retention_limit", snapshot_retention_limit) + _setter("snapshot_retention_limit", snapshot_retention_limit) if snapshot_window is not None: - pulumi.set(__self__, "snapshot_window", snapshot_window) + _setter("snapshot_window", snapshot_window) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_encryption_enabled is not None: - pulumi.set(__self__, "transit_encryption_enabled", transit_encryption_enabled) + _setter("transit_encryption_enabled", transit_encryption_enabled) @property @pulumi.getter(name="applyImmediately") @@ -1397,6 +1657,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticache/get_cluster.py b/sdk/python/pulumi_aws/elasticache/get_cluster.py index 43d3805c404..50995f06647 100644 --- a/sdk/python/pulumi_aws/elasticache/get_cluster.py +++ b/sdk/python/pulumi_aws/elasticache/get_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/elasticache/get_replication_group.py b/sdk/python/pulumi_aws/elasticache/get_replication_group.py index 6eeeee6bb89..85900c096b4 100644 --- a/sdk/python/pulumi_aws/elasticache/get_replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/get_replication_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/elasticache/get_subnet_group.py b/sdk/python/pulumi_aws/elasticache/get_subnet_group.py index 61cea9d6b0b..3433c15ce23 100644 --- a/sdk/python/pulumi_aws/elasticache/get_subnet_group.py +++ b/sdk/python/pulumi_aws/elasticache/get_subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/elasticache/get_user.py b/sdk/python/pulumi_aws/elasticache/get_user.py index b3b91453edd..df19f04ef8b 100644 --- a/sdk/python/pulumi_aws/elasticache/get_user.py +++ b/sdk/python/pulumi_aws/elasticache/get_user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/elasticache/global_replication_group.py b/sdk/python/pulumi_aws/elasticache/global_replication_group.py index 7b65e8e6b3e..cb3951c7d13 100644 --- a/sdk/python/pulumi_aws/elasticache/global_replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/global_replication_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -49,20 +49,65 @@ def __init__(__self__, *, Specifying without a major version upgrade will fail. Note that ElastiCache creates a copy of this parameter group for each member replication group. """ - pulumi.set(__self__, "global_replication_group_id_suffix", global_replication_group_id_suffix) - pulumi.set(__self__, "primary_replication_group_id", primary_replication_group_id) + GlobalReplicationGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_replication_group_id_suffix=global_replication_group_id_suffix, + primary_replication_group_id=primary_replication_group_id, + automatic_failover_enabled=automatic_failover_enabled, + cache_node_type=cache_node_type, + engine_version=engine_version, + global_replication_group_description=global_replication_group_description, + num_node_groups=num_node_groups, + parameter_group_name=parameter_group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_replication_group_id_suffix: Optional[pulumi.Input[str]] = None, + primary_replication_group_id: Optional[pulumi.Input[str]] = None, + automatic_failover_enabled: Optional[pulumi.Input[bool]] = None, + cache_node_type: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + global_replication_group_description: Optional[pulumi.Input[str]] = None, + num_node_groups: Optional[pulumi.Input[int]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_replication_group_id_suffix is None and 'globalReplicationGroupIdSuffix' in kwargs: + global_replication_group_id_suffix = kwargs['globalReplicationGroupIdSuffix'] + if global_replication_group_id_suffix is None: + raise TypeError("Missing 'global_replication_group_id_suffix' argument") + if primary_replication_group_id is None and 'primaryReplicationGroupId' in kwargs: + primary_replication_group_id = kwargs['primaryReplicationGroupId'] + if primary_replication_group_id is None: + raise TypeError("Missing 'primary_replication_group_id' argument") + if automatic_failover_enabled is None and 'automaticFailoverEnabled' in kwargs: + automatic_failover_enabled = kwargs['automaticFailoverEnabled'] + if cache_node_type is None and 'cacheNodeType' in kwargs: + cache_node_type = kwargs['cacheNodeType'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if global_replication_group_description is None and 'globalReplicationGroupDescription' in kwargs: + global_replication_group_description = kwargs['globalReplicationGroupDescription'] + if num_node_groups is None and 'numNodeGroups' in kwargs: + num_node_groups = kwargs['numNodeGroups'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + + _setter("global_replication_group_id_suffix", global_replication_group_id_suffix) + _setter("primary_replication_group_id", primary_replication_group_id) if automatic_failover_enabled is not None: - pulumi.set(__self__, "automatic_failover_enabled", automatic_failover_enabled) + _setter("automatic_failover_enabled", automatic_failover_enabled) if cache_node_type is not None: - pulumi.set(__self__, "cache_node_type", cache_node_type) + _setter("cache_node_type", cache_node_type) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if global_replication_group_description is not None: - pulumi.set(__self__, "global_replication_group_description", global_replication_group_description) + _setter("global_replication_group_description", global_replication_group_description) if num_node_groups is not None: - pulumi.set(__self__, "num_node_groups", num_node_groups) + _setter("num_node_groups", num_node_groups) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) @property @pulumi.getter(name="globalReplicationGroupIdSuffix") @@ -230,40 +275,113 @@ def __init__(__self__, *, :param pulumi.Input[str] primary_replication_group_id: The ID of the primary cluster that accepts writes and will replicate updates to the secondary cluster. If `primary_replication_group_id` is changed, creates a new resource. :param pulumi.Input[bool] transit_encryption_enabled: A flag that indicates whether the encryption in transit is enabled. """ + _GlobalReplicationGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + at_rest_encryption_enabled=at_rest_encryption_enabled, + auth_token_enabled=auth_token_enabled, + automatic_failover_enabled=automatic_failover_enabled, + cache_node_type=cache_node_type, + cluster_enabled=cluster_enabled, + engine=engine, + engine_version=engine_version, + engine_version_actual=engine_version_actual, + global_node_groups=global_node_groups, + global_replication_group_description=global_replication_group_description, + global_replication_group_id=global_replication_group_id, + global_replication_group_id_suffix=global_replication_group_id_suffix, + num_node_groups=num_node_groups, + parameter_group_name=parameter_group_name, + primary_replication_group_id=primary_replication_group_id, + transit_encryption_enabled=transit_encryption_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + at_rest_encryption_enabled: Optional[pulumi.Input[bool]] = None, + auth_token_enabled: Optional[pulumi.Input[bool]] = None, + automatic_failover_enabled: Optional[pulumi.Input[bool]] = None, + cache_node_type: Optional[pulumi.Input[str]] = None, + cluster_enabled: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + engine_version_actual: Optional[pulumi.Input[str]] = None, + global_node_groups: Optional[pulumi.Input[Sequence[pulumi.Input['GlobalReplicationGroupGlobalNodeGroupArgs']]]] = None, + global_replication_group_description: Optional[pulumi.Input[str]] = None, + global_replication_group_id: Optional[pulumi.Input[str]] = None, + global_replication_group_id_suffix: Optional[pulumi.Input[str]] = None, + num_node_groups: Optional[pulumi.Input[int]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + primary_replication_group_id: Optional[pulumi.Input[str]] = None, + transit_encryption_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if at_rest_encryption_enabled is None and 'atRestEncryptionEnabled' in kwargs: + at_rest_encryption_enabled = kwargs['atRestEncryptionEnabled'] + if auth_token_enabled is None and 'authTokenEnabled' in kwargs: + auth_token_enabled = kwargs['authTokenEnabled'] + if automatic_failover_enabled is None and 'automaticFailoverEnabled' in kwargs: + automatic_failover_enabled = kwargs['automaticFailoverEnabled'] + if cache_node_type is None and 'cacheNodeType' in kwargs: + cache_node_type = kwargs['cacheNodeType'] + if cluster_enabled is None and 'clusterEnabled' in kwargs: + cluster_enabled = kwargs['clusterEnabled'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version_actual is None and 'engineVersionActual' in kwargs: + engine_version_actual = kwargs['engineVersionActual'] + if global_node_groups is None and 'globalNodeGroups' in kwargs: + global_node_groups = kwargs['globalNodeGroups'] + if global_replication_group_description is None and 'globalReplicationGroupDescription' in kwargs: + global_replication_group_description = kwargs['globalReplicationGroupDescription'] + if global_replication_group_id is None and 'globalReplicationGroupId' in kwargs: + global_replication_group_id = kwargs['globalReplicationGroupId'] + if global_replication_group_id_suffix is None and 'globalReplicationGroupIdSuffix' in kwargs: + global_replication_group_id_suffix = kwargs['globalReplicationGroupIdSuffix'] + if num_node_groups is None and 'numNodeGroups' in kwargs: + num_node_groups = kwargs['numNodeGroups'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if primary_replication_group_id is None and 'primaryReplicationGroupId' in kwargs: + primary_replication_group_id = kwargs['primaryReplicationGroupId'] + if transit_encryption_enabled is None and 'transitEncryptionEnabled' in kwargs: + transit_encryption_enabled = kwargs['transitEncryptionEnabled'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if at_rest_encryption_enabled is not None: - pulumi.set(__self__, "at_rest_encryption_enabled", at_rest_encryption_enabled) + _setter("at_rest_encryption_enabled", at_rest_encryption_enabled) if auth_token_enabled is not None: - pulumi.set(__self__, "auth_token_enabled", auth_token_enabled) + _setter("auth_token_enabled", auth_token_enabled) if automatic_failover_enabled is not None: - pulumi.set(__self__, "automatic_failover_enabled", automatic_failover_enabled) + _setter("automatic_failover_enabled", automatic_failover_enabled) if cache_node_type is not None: - pulumi.set(__self__, "cache_node_type", cache_node_type) + _setter("cache_node_type", cache_node_type) if cluster_enabled is not None: - pulumi.set(__self__, "cluster_enabled", cluster_enabled) + _setter("cluster_enabled", cluster_enabled) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if engine_version_actual is not None: - pulumi.set(__self__, "engine_version_actual", engine_version_actual) + _setter("engine_version_actual", engine_version_actual) if global_node_groups is not None: - pulumi.set(__self__, "global_node_groups", global_node_groups) + _setter("global_node_groups", global_node_groups) if global_replication_group_description is not None: - pulumi.set(__self__, "global_replication_group_description", global_replication_group_description) + _setter("global_replication_group_description", global_replication_group_description) if global_replication_group_id is not None: - pulumi.set(__self__, "global_replication_group_id", global_replication_group_id) + _setter("global_replication_group_id", global_replication_group_id) if global_replication_group_id_suffix is not None: - pulumi.set(__self__, "global_replication_group_id_suffix", global_replication_group_id_suffix) + _setter("global_replication_group_id_suffix", global_replication_group_id_suffix) if num_node_groups is not None: - pulumi.set(__self__, "num_node_groups", num_node_groups) + _setter("num_node_groups", num_node_groups) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if primary_replication_group_id is not None: - pulumi.set(__self__, "primary_replication_group_id", primary_replication_group_id) + _setter("primary_replication_group_id", primary_replication_group_id) if transit_encryption_enabled is not None: - pulumi.set(__self__, "transit_encryption_enabled", transit_encryption_enabled) + _setter("transit_encryption_enabled", transit_encryption_enabled) @property @pulumi.getter @@ -680,6 +798,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GlobalReplicationGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticache/outputs.py b/sdk/python/pulumi_aws/elasticache/outputs.py index 4aff45a2709..89c1da4930b 100644 --- a/sdk/python/pulumi_aws/elasticache/outputs.py +++ b/sdk/python/pulumi_aws/elasticache/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -53,16 +53,39 @@ def __init__(__self__, *, :param str availability_zone: Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferred_availability_zones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. :param int port: The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replication_group_id`. Changing this value will re-create the resource. """ + ClusterCacheNode._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + availability_zone=availability_zone, + id=id, + outpost_arn=outpost_arn, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + availability_zone: Optional[str] = None, + id: Optional[str] = None, + outpost_arn: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if outpost_arn is not None: - pulumi.set(__self__, "outpost_arn", outpost_arn) + _setter("outpost_arn", outpost_arn) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -130,10 +153,41 @@ def __init__(__self__, *, :param str log_format: Valid values are `json` or `text` :param str log_type: Valid values are `slow-log` or `engine-log`. Max 1 of each. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_type", destination_type) - pulumi.set(__self__, "log_format", log_format) - pulumi.set(__self__, "log_type", log_type) + ClusterLogDeliveryConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_type=destination_type, + log_format=log_format, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + destination_type: Optional[str] = None, + log_format: Optional[str] = None, + log_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + if destination_type is None: + raise TypeError("Missing 'destination_type' argument") + if log_format is None and 'logFormat' in kwargs: + log_format = kwargs['logFormat'] + if log_format is None: + raise TypeError("Missing 'log_format' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("destination", destination) + _setter("destination_type", destination_type) + _setter("log_format", log_format) + _setter("log_type", log_type) @property @pulumi.getter @@ -194,10 +248,25 @@ def __init__(__self__, *, :param str global_node_group_id: The ID of the global node group. :param str slots: The keyspace for this node group. """ + GlobalReplicationGroupGlobalNodeGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_node_group_id=global_node_group_id, + slots=slots, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_node_group_id: Optional[str] = None, + slots: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_node_group_id is None and 'globalNodeGroupId' in kwargs: + global_node_group_id = kwargs['globalNodeGroupId'] + if global_node_group_id is not None: - pulumi.set(__self__, "global_node_group_id", global_node_group_id) + _setter("global_node_group_id", global_node_group_id) if slots is not None: - pulumi.set(__self__, "slots", slots) + _setter("slots", slots) @property @pulumi.getter(name="globalNodeGroupId") @@ -225,8 +294,25 @@ def __init__(__self__, *, :param str name: The name of the ElastiCache parameter. :param str value: The value of the ElastiCache parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -279,10 +365,41 @@ def __init__(__self__, *, :param str log_format: Valid values are `json` or `text` :param str log_type: Valid values are `slow-log` or `engine-log`. Max 1 of each. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_type", destination_type) - pulumi.set(__self__, "log_format", log_format) - pulumi.set(__self__, "log_type", log_type) + ReplicationGroupLogDeliveryConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_type=destination_type, + log_format=log_format, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + destination_type: Optional[str] = None, + log_format: Optional[str] = None, + log_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + if destination_type is None: + raise TypeError("Missing 'destination_type' argument") + if log_format is None and 'logFormat' in kwargs: + log_format = kwargs['logFormat'] + if log_format is None: + raise TypeError("Missing 'log_format' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("destination", destination) + _setter("destination_type", destination_type) + _setter("log_format", log_format) + _setter("log_type", log_type) @property @pulumi.getter @@ -344,11 +461,30 @@ def __init__(__self__, *, :param str type: Specifies the authentication type. Possible options are: `password`, `no-password-required` or `iam`. :param Sequence[str] passwords: Specifies the passwords to use for authentication if `type` is set to `password`. """ - pulumi.set(__self__, "type", type) + UserAuthenticationMode._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + password_count=password_count, + passwords=passwords, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + password_count: Optional[int] = None, + passwords: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if password_count is None and 'passwordCount' in kwargs: + password_count = kwargs['passwordCount'] + + _setter("type", type) if password_count is not None: - pulumi.set(__self__, "password_count", password_count) + _setter("password_count", password_count) if passwords is not None: - pulumi.set(__self__, "passwords", passwords) + _setter("passwords", passwords) @property @pulumi.getter @@ -385,11 +521,44 @@ def __init__(__self__, *, :param int port: The port number on which each of the cache nodes will accept connections. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "outpost_arn", outpost_arn) - pulumi.set(__self__, "port", port) + GetClusterCacheNodeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + availability_zone=availability_zone, + id=id, + outpost_arn=outpost_arn, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + availability_zone: Optional[str] = None, + id: Optional[str] = None, + outpost_arn: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if outpost_arn is None and 'outpostArn' in kwargs: + outpost_arn = kwargs['outpostArn'] + if outpost_arn is None: + raise TypeError("Missing 'outpost_arn' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("address", address) + _setter("availability_zone", availability_zone) + _setter("id", id) + _setter("outpost_arn", outpost_arn) + _setter("port", port) @property @pulumi.getter @@ -431,10 +600,41 @@ def __init__(__self__, *, destination_type: str, log_format: str, log_type: str): - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_type", destination_type) - pulumi.set(__self__, "log_format", log_format) - pulumi.set(__self__, "log_type", log_type) + GetClusterLogDeliveryConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_type=destination_type, + log_format=log_format, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + destination_type: Optional[str] = None, + log_format: Optional[str] = None, + log_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + if destination_type is None: + raise TypeError("Missing 'destination_type' argument") + if log_format is None and 'logFormat' in kwargs: + log_format = kwargs['logFormat'] + if log_format is None: + raise TypeError("Missing 'log_format' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("destination", destination) + _setter("destination_type", destination_type) + _setter("log_format", log_format) + _setter("log_type", log_type) @property @pulumi.getter @@ -464,10 +664,41 @@ def __init__(__self__, *, destination_type: str, log_format: str, log_type: str): - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_type", destination_type) - pulumi.set(__self__, "log_format", log_format) - pulumi.set(__self__, "log_type", log_type) + GetReplicationGroupLogDeliveryConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_type=destination_type, + log_format=log_format, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + destination_type: Optional[str] = None, + log_format: Optional[str] = None, + log_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + if destination_type is None: + raise TypeError("Missing 'destination_type' argument") + if log_format is None and 'logFormat' in kwargs: + log_format = kwargs['logFormat'] + if log_format is None: + raise TypeError("Missing 'log_format' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("destination", destination) + _setter("destination_type", destination_type) + _setter("log_format", log_format) + _setter("log_type", log_type) @property @pulumi.getter @@ -495,10 +726,25 @@ class GetUserAuthenticationModeResult(dict): def __init__(__self__, *, password_count: Optional[int] = None, type: Optional[str] = None): + GetUserAuthenticationModeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + password_count=password_count, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password_count: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password_count is None and 'passwordCount' in kwargs: + password_count = kwargs['passwordCount'] + if password_count is not None: - pulumi.set(__self__, "password_count", password_count) + _setter("password_count", password_count) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="passwordCount") diff --git a/sdk/python/pulumi_aws/elasticache/parameter_group.py b/sdk/python/pulumi_aws/elasticache/parameter_group.py index ecf75656b7e..fe54cd481fb 100644 --- a/sdk/python/pulumi_aws/elasticache/parameter_group.py +++ b/sdk/python/pulumi_aws/elasticache/parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,17 +29,38 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]] parameters: A list of ElastiCache parameters to apply. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ - pulumi.set(__self__, "family", family) + ParameterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + family=family, + description=description, + name=name, + parameters=parameters, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family is None: + raise TypeError("Missing 'family' argument") + + _setter("family", family) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -122,25 +143,50 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ParameterGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + family=family, + name=name, + parameters=parameters, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if family is not None: - pulumi.set(__self__, "family", family) + _setter("family", family) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -331,6 +377,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ParameterGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticache/replication_group.py b/sdk/python/pulumi_aws/elasticache/replication_group.py index 3913d296f1f..95321329046 100644 --- a/sdk/python/pulumi_aws/elasticache/replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/replication_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -99,74 +99,211 @@ def __init__(__self__, *, :param pulumi.Input[bool] transit_encryption_enabled: Whether to enable encryption in transit. :param pulumi.Input[Sequence[pulumi.Input[str]]] user_group_ids: User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. **NOTE:** This argument _is_ a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one. """ + ReplicationGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_immediately=apply_immediately, + at_rest_encryption_enabled=at_rest_encryption_enabled, + auth_token=auth_token, + auto_minor_version_upgrade=auto_minor_version_upgrade, + automatic_failover_enabled=automatic_failover_enabled, + data_tiering_enabled=data_tiering_enabled, + description=description, + engine=engine, + engine_version=engine_version, + final_snapshot_identifier=final_snapshot_identifier, + global_replication_group_id=global_replication_group_id, + kms_key_id=kms_key_id, + log_delivery_configurations=log_delivery_configurations, + maintenance_window=maintenance_window, + multi_az_enabled=multi_az_enabled, + node_type=node_type, + notification_topic_arn=notification_topic_arn, + num_cache_clusters=num_cache_clusters, + num_node_groups=num_node_groups, + parameter_group_name=parameter_group_name, + port=port, + preferred_cache_cluster_azs=preferred_cache_cluster_azs, + replicas_per_node_group=replicas_per_node_group, + replication_group_id=replication_group_id, + security_group_ids=security_group_ids, + security_group_names=security_group_names, + snapshot_arns=snapshot_arns, + snapshot_name=snapshot_name, + snapshot_retention_limit=snapshot_retention_limit, + snapshot_window=snapshot_window, + subnet_group_name=subnet_group_name, + tags=tags, + transit_encryption_enabled=transit_encryption_enabled, + user_group_ids=user_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_immediately: Optional[pulumi.Input[bool]] = None, + at_rest_encryption_enabled: Optional[pulumi.Input[bool]] = None, + auth_token: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + automatic_failover_enabled: Optional[pulumi.Input[bool]] = None, + data_tiering_enabled: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + global_replication_group_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + log_delivery_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + multi_az_enabled: Optional[pulumi.Input[bool]] = None, + node_type: Optional[pulumi.Input[str]] = None, + notification_topic_arn: Optional[pulumi.Input[str]] = None, + num_cache_clusters: Optional[pulumi.Input[int]] = None, + num_node_groups: Optional[pulumi.Input[int]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_cache_cluster_azs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + replicas_per_node_group: Optional[pulumi.Input[int]] = None, + replication_group_id: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + snapshot_retention_limit: Optional[pulumi.Input[int]] = None, + snapshot_window: Optional[pulumi.Input[str]] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_encryption_enabled: Optional[pulumi.Input[bool]] = None, + user_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if at_rest_encryption_enabled is None and 'atRestEncryptionEnabled' in kwargs: + at_rest_encryption_enabled = kwargs['atRestEncryptionEnabled'] + if auth_token is None and 'authToken' in kwargs: + auth_token = kwargs['authToken'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if automatic_failover_enabled is None and 'automaticFailoverEnabled' in kwargs: + automatic_failover_enabled = kwargs['automaticFailoverEnabled'] + if data_tiering_enabled is None and 'dataTieringEnabled' in kwargs: + data_tiering_enabled = kwargs['dataTieringEnabled'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if global_replication_group_id is None and 'globalReplicationGroupId' in kwargs: + global_replication_group_id = kwargs['globalReplicationGroupId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if log_delivery_configurations is None and 'logDeliveryConfigurations' in kwargs: + log_delivery_configurations = kwargs['logDeliveryConfigurations'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if multi_az_enabled is None and 'multiAzEnabled' in kwargs: + multi_az_enabled = kwargs['multiAzEnabled'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if notification_topic_arn is None and 'notificationTopicArn' in kwargs: + notification_topic_arn = kwargs['notificationTopicArn'] + if num_cache_clusters is None and 'numCacheClusters' in kwargs: + num_cache_clusters = kwargs['numCacheClusters'] + if num_node_groups is None and 'numNodeGroups' in kwargs: + num_node_groups = kwargs['numNodeGroups'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if preferred_cache_cluster_azs is None and 'preferredCacheClusterAzs' in kwargs: + preferred_cache_cluster_azs = kwargs['preferredCacheClusterAzs'] + if replicas_per_node_group is None and 'replicasPerNodeGroup' in kwargs: + replicas_per_node_group = kwargs['replicasPerNodeGroup'] + if replication_group_id is None and 'replicationGroupId' in kwargs: + replication_group_id = kwargs['replicationGroupId'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_names is None and 'securityGroupNames' in kwargs: + security_group_names = kwargs['securityGroupNames'] + if snapshot_arns is None and 'snapshotArns' in kwargs: + snapshot_arns = kwargs['snapshotArns'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if snapshot_retention_limit is None and 'snapshotRetentionLimit' in kwargs: + snapshot_retention_limit = kwargs['snapshotRetentionLimit'] + if snapshot_window is None and 'snapshotWindow' in kwargs: + snapshot_window = kwargs['snapshotWindow'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if transit_encryption_enabled is None and 'transitEncryptionEnabled' in kwargs: + transit_encryption_enabled = kwargs['transitEncryptionEnabled'] + if user_group_ids is None and 'userGroupIds' in kwargs: + user_group_ids = kwargs['userGroupIds'] + if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if at_rest_encryption_enabled is not None: - pulumi.set(__self__, "at_rest_encryption_enabled", at_rest_encryption_enabled) + _setter("at_rest_encryption_enabled", at_rest_encryption_enabled) if auth_token is not None: - pulumi.set(__self__, "auth_token", auth_token) + _setter("auth_token", auth_token) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if automatic_failover_enabled is not None: - pulumi.set(__self__, "automatic_failover_enabled", automatic_failover_enabled) + _setter("automatic_failover_enabled", automatic_failover_enabled) if data_tiering_enabled is not None: - pulumi.set(__self__, "data_tiering_enabled", data_tiering_enabled) + _setter("data_tiering_enabled", data_tiering_enabled) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if global_replication_group_id is not None: - pulumi.set(__self__, "global_replication_group_id", global_replication_group_id) + _setter("global_replication_group_id", global_replication_group_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if log_delivery_configurations is not None: - pulumi.set(__self__, "log_delivery_configurations", log_delivery_configurations) + _setter("log_delivery_configurations", log_delivery_configurations) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if multi_az_enabled is not None: - pulumi.set(__self__, "multi_az_enabled", multi_az_enabled) + _setter("multi_az_enabled", multi_az_enabled) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if notification_topic_arn is not None: - pulumi.set(__self__, "notification_topic_arn", notification_topic_arn) + _setter("notification_topic_arn", notification_topic_arn) if num_cache_clusters is not None: - pulumi.set(__self__, "num_cache_clusters", num_cache_clusters) + _setter("num_cache_clusters", num_cache_clusters) if num_node_groups is not None: - pulumi.set(__self__, "num_node_groups", num_node_groups) + _setter("num_node_groups", num_node_groups) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_cache_cluster_azs is not None: - pulumi.set(__self__, "preferred_cache_cluster_azs", preferred_cache_cluster_azs) + _setter("preferred_cache_cluster_azs", preferred_cache_cluster_azs) if replicas_per_node_group is not None: - pulumi.set(__self__, "replicas_per_node_group", replicas_per_node_group) + _setter("replicas_per_node_group", replicas_per_node_group) if replication_group_id is not None: - pulumi.set(__self__, "replication_group_id", replication_group_id) + _setter("replication_group_id", replication_group_id) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if security_group_names is not None: - pulumi.set(__self__, "security_group_names", security_group_names) + _setter("security_group_names", security_group_names) if snapshot_arns is not None: - pulumi.set(__self__, "snapshot_arns", snapshot_arns) + _setter("snapshot_arns", snapshot_arns) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) if snapshot_retention_limit is not None: - pulumi.set(__self__, "snapshot_retention_limit", snapshot_retention_limit) + _setter("snapshot_retention_limit", snapshot_retention_limit) if snapshot_window is not None: - pulumi.set(__self__, "snapshot_window", snapshot_window) + _setter("snapshot_window", snapshot_window) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transit_encryption_enabled is not None: - pulumi.set(__self__, "transit_encryption_enabled", transit_encryption_enabled) + _setter("transit_encryption_enabled", transit_encryption_enabled) if user_group_ids is not None: - pulumi.set(__self__, "user_group_ids", user_group_ids) + _setter("user_group_ids", user_group_ids) @property @pulumi.getter(name="applyImmediately") @@ -691,93 +828,260 @@ def __init__(__self__, *, :param pulumi.Input[bool] transit_encryption_enabled: Whether to enable encryption in transit. :param pulumi.Input[Sequence[pulumi.Input[str]]] user_group_ids: User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. **NOTE:** This argument _is_ a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one. """ + _ReplicationGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_immediately=apply_immediately, + arn=arn, + at_rest_encryption_enabled=at_rest_encryption_enabled, + auth_token=auth_token, + auto_minor_version_upgrade=auto_minor_version_upgrade, + automatic_failover_enabled=automatic_failover_enabled, + cluster_enabled=cluster_enabled, + configuration_endpoint_address=configuration_endpoint_address, + data_tiering_enabled=data_tiering_enabled, + description=description, + engine=engine, + engine_version=engine_version, + engine_version_actual=engine_version_actual, + final_snapshot_identifier=final_snapshot_identifier, + global_replication_group_id=global_replication_group_id, + kms_key_id=kms_key_id, + log_delivery_configurations=log_delivery_configurations, + maintenance_window=maintenance_window, + member_clusters=member_clusters, + multi_az_enabled=multi_az_enabled, + node_type=node_type, + notification_topic_arn=notification_topic_arn, + num_cache_clusters=num_cache_clusters, + num_node_groups=num_node_groups, + parameter_group_name=parameter_group_name, + port=port, + preferred_cache_cluster_azs=preferred_cache_cluster_azs, + primary_endpoint_address=primary_endpoint_address, + reader_endpoint_address=reader_endpoint_address, + replicas_per_node_group=replicas_per_node_group, + replication_group_id=replication_group_id, + security_group_ids=security_group_ids, + security_group_names=security_group_names, + snapshot_arns=snapshot_arns, + snapshot_name=snapshot_name, + snapshot_retention_limit=snapshot_retention_limit, + snapshot_window=snapshot_window, + subnet_group_name=subnet_group_name, + tags=tags, + tags_all=tags_all, + transit_encryption_enabled=transit_encryption_enabled, + user_group_ids=user_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + at_rest_encryption_enabled: Optional[pulumi.Input[bool]] = None, + auth_token: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + automatic_failover_enabled: Optional[pulumi.Input[bool]] = None, + cluster_enabled: Optional[pulumi.Input[bool]] = None, + configuration_endpoint_address: Optional[pulumi.Input[str]] = None, + data_tiering_enabled: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + engine_version_actual: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + global_replication_group_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + log_delivery_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + member_clusters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + multi_az_enabled: Optional[pulumi.Input[bool]] = None, + node_type: Optional[pulumi.Input[str]] = None, + notification_topic_arn: Optional[pulumi.Input[str]] = None, + num_cache_clusters: Optional[pulumi.Input[int]] = None, + num_node_groups: Optional[pulumi.Input[int]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_cache_cluster_azs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + primary_endpoint_address: Optional[pulumi.Input[str]] = None, + reader_endpoint_address: Optional[pulumi.Input[str]] = None, + replicas_per_node_group: Optional[pulumi.Input[int]] = None, + replication_group_id: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + snapshot_retention_limit: Optional[pulumi.Input[int]] = None, + snapshot_window: Optional[pulumi.Input[str]] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_encryption_enabled: Optional[pulumi.Input[bool]] = None, + user_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if at_rest_encryption_enabled is None and 'atRestEncryptionEnabled' in kwargs: + at_rest_encryption_enabled = kwargs['atRestEncryptionEnabled'] + if auth_token is None and 'authToken' in kwargs: + auth_token = kwargs['authToken'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if automatic_failover_enabled is None and 'automaticFailoverEnabled' in kwargs: + automatic_failover_enabled = kwargs['automaticFailoverEnabled'] + if cluster_enabled is None and 'clusterEnabled' in kwargs: + cluster_enabled = kwargs['clusterEnabled'] + if configuration_endpoint_address is None and 'configurationEndpointAddress' in kwargs: + configuration_endpoint_address = kwargs['configurationEndpointAddress'] + if data_tiering_enabled is None and 'dataTieringEnabled' in kwargs: + data_tiering_enabled = kwargs['dataTieringEnabled'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version_actual is None and 'engineVersionActual' in kwargs: + engine_version_actual = kwargs['engineVersionActual'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if global_replication_group_id is None and 'globalReplicationGroupId' in kwargs: + global_replication_group_id = kwargs['globalReplicationGroupId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if log_delivery_configurations is None and 'logDeliveryConfigurations' in kwargs: + log_delivery_configurations = kwargs['logDeliveryConfigurations'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if member_clusters is None and 'memberClusters' in kwargs: + member_clusters = kwargs['memberClusters'] + if multi_az_enabled is None and 'multiAzEnabled' in kwargs: + multi_az_enabled = kwargs['multiAzEnabled'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if notification_topic_arn is None and 'notificationTopicArn' in kwargs: + notification_topic_arn = kwargs['notificationTopicArn'] + if num_cache_clusters is None and 'numCacheClusters' in kwargs: + num_cache_clusters = kwargs['numCacheClusters'] + if num_node_groups is None and 'numNodeGroups' in kwargs: + num_node_groups = kwargs['numNodeGroups'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if preferred_cache_cluster_azs is None and 'preferredCacheClusterAzs' in kwargs: + preferred_cache_cluster_azs = kwargs['preferredCacheClusterAzs'] + if primary_endpoint_address is None and 'primaryEndpointAddress' in kwargs: + primary_endpoint_address = kwargs['primaryEndpointAddress'] + if reader_endpoint_address is None and 'readerEndpointAddress' in kwargs: + reader_endpoint_address = kwargs['readerEndpointAddress'] + if replicas_per_node_group is None and 'replicasPerNodeGroup' in kwargs: + replicas_per_node_group = kwargs['replicasPerNodeGroup'] + if replication_group_id is None and 'replicationGroupId' in kwargs: + replication_group_id = kwargs['replicationGroupId'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_names is None and 'securityGroupNames' in kwargs: + security_group_names = kwargs['securityGroupNames'] + if snapshot_arns is None and 'snapshotArns' in kwargs: + snapshot_arns = kwargs['snapshotArns'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if snapshot_retention_limit is None and 'snapshotRetentionLimit' in kwargs: + snapshot_retention_limit = kwargs['snapshotRetentionLimit'] + if snapshot_window is None and 'snapshotWindow' in kwargs: + snapshot_window = kwargs['snapshotWindow'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_encryption_enabled is None and 'transitEncryptionEnabled' in kwargs: + transit_encryption_enabled = kwargs['transitEncryptionEnabled'] + if user_group_ids is None and 'userGroupIds' in kwargs: + user_group_ids = kwargs['userGroupIds'] + if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if at_rest_encryption_enabled is not None: - pulumi.set(__self__, "at_rest_encryption_enabled", at_rest_encryption_enabled) + _setter("at_rest_encryption_enabled", at_rest_encryption_enabled) if auth_token is not None: - pulumi.set(__self__, "auth_token", auth_token) + _setter("auth_token", auth_token) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if automatic_failover_enabled is not None: - pulumi.set(__self__, "automatic_failover_enabled", automatic_failover_enabled) + _setter("automatic_failover_enabled", automatic_failover_enabled) if cluster_enabled is not None: - pulumi.set(__self__, "cluster_enabled", cluster_enabled) + _setter("cluster_enabled", cluster_enabled) if configuration_endpoint_address is not None: - pulumi.set(__self__, "configuration_endpoint_address", configuration_endpoint_address) + _setter("configuration_endpoint_address", configuration_endpoint_address) if data_tiering_enabled is not None: - pulumi.set(__self__, "data_tiering_enabled", data_tiering_enabled) + _setter("data_tiering_enabled", data_tiering_enabled) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if engine_version_actual is not None: - pulumi.set(__self__, "engine_version_actual", engine_version_actual) + _setter("engine_version_actual", engine_version_actual) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if global_replication_group_id is not None: - pulumi.set(__self__, "global_replication_group_id", global_replication_group_id) + _setter("global_replication_group_id", global_replication_group_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if log_delivery_configurations is not None: - pulumi.set(__self__, "log_delivery_configurations", log_delivery_configurations) + _setter("log_delivery_configurations", log_delivery_configurations) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if member_clusters is not None: - pulumi.set(__self__, "member_clusters", member_clusters) + _setter("member_clusters", member_clusters) if multi_az_enabled is not None: - pulumi.set(__self__, "multi_az_enabled", multi_az_enabled) + _setter("multi_az_enabled", multi_az_enabled) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if notification_topic_arn is not None: - pulumi.set(__self__, "notification_topic_arn", notification_topic_arn) + _setter("notification_topic_arn", notification_topic_arn) if num_cache_clusters is not None: - pulumi.set(__self__, "num_cache_clusters", num_cache_clusters) + _setter("num_cache_clusters", num_cache_clusters) if num_node_groups is not None: - pulumi.set(__self__, "num_node_groups", num_node_groups) + _setter("num_node_groups", num_node_groups) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_cache_cluster_azs is not None: - pulumi.set(__self__, "preferred_cache_cluster_azs", preferred_cache_cluster_azs) + _setter("preferred_cache_cluster_azs", preferred_cache_cluster_azs) if primary_endpoint_address is not None: - pulumi.set(__self__, "primary_endpoint_address", primary_endpoint_address) + _setter("primary_endpoint_address", primary_endpoint_address) if reader_endpoint_address is not None: - pulumi.set(__self__, "reader_endpoint_address", reader_endpoint_address) + _setter("reader_endpoint_address", reader_endpoint_address) if replicas_per_node_group is not None: - pulumi.set(__self__, "replicas_per_node_group", replicas_per_node_group) + _setter("replicas_per_node_group", replicas_per_node_group) if replication_group_id is not None: - pulumi.set(__self__, "replication_group_id", replication_group_id) + _setter("replication_group_id", replication_group_id) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if security_group_names is not None: - pulumi.set(__self__, "security_group_names", security_group_names) + _setter("security_group_names", security_group_names) if snapshot_arns is not None: - pulumi.set(__self__, "snapshot_arns", snapshot_arns) + _setter("snapshot_arns", snapshot_arns) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) if snapshot_retention_limit is not None: - pulumi.set(__self__, "snapshot_retention_limit", snapshot_retention_limit) + _setter("snapshot_retention_limit", snapshot_retention_limit) if snapshot_window is not None: - pulumi.set(__self__, "snapshot_window", snapshot_window) + _setter("snapshot_window", snapshot_window) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_encryption_enabled is not None: - pulumi.set(__self__, "transit_encryption_enabled", transit_encryption_enabled) + _setter("transit_encryption_enabled", transit_encryption_enabled) if user_group_ids is not None: - pulumi.set(__self__, "user_group_ids", user_group_ids) + _setter("user_group_ids", user_group_ids) @property @pulumi.getter(name="applyImmediately") @@ -1710,6 +2014,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicationGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticache/subnet_group.py b/sdk/python/pulumi_aws/elasticache/subnet_group.py index 6daf08a05a9..4b77f42416d 100644 --- a/sdk/python/pulumi_aws/elasticache/subnet_group.py +++ b/sdk/python/pulumi_aws/elasticache/subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SubnetGroupArgs', 'SubnetGroup'] @@ -25,15 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the cache subnet group. ElastiCache converts this name to lowercase. :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. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + SubnetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + + _setter("subnet_ids", subnet_ids) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="subnetIds") @@ -101,23 +122,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _SubnetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -289,6 +335,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SubnetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticache/user.py b/sdk/python/pulumi_aws/elasticache/user.py index c63798cbeee..570825d68f1 100644 --- a/sdk/python/pulumi_aws/elasticache/user.py +++ b/sdk/python/pulumi_aws/elasticache/user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,18 +37,61 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] passwords: Passwords used for this user. You can create up to two passwords for each user. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A list of tags to be added to this resource. A tag is a key-value pair. """ - pulumi.set(__self__, "access_string", access_string) - pulumi.set(__self__, "engine", engine) - pulumi.set(__self__, "user_id", user_id) - pulumi.set(__self__, "user_name", user_name) + UserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_string=access_string, + engine=engine, + user_id=user_id, + user_name=user_name, + authentication_mode=authentication_mode, + no_password_required=no_password_required, + passwords=passwords, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_string: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + authentication_mode: Optional[pulumi.Input['UserAuthenticationModeArgs']] = None, + no_password_required: Optional[pulumi.Input[bool]] = None, + passwords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_string is None and 'accessString' in kwargs: + access_string = kwargs['accessString'] + if access_string is None: + raise TypeError("Missing 'access_string' argument") + if engine is None: + raise TypeError("Missing 'engine' argument") + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_id is None: + raise TypeError("Missing 'user_id' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + if authentication_mode is None and 'authenticationMode' in kwargs: + authentication_mode = kwargs['authenticationMode'] + if no_password_required is None and 'noPasswordRequired' in kwargs: + no_password_required = kwargs['noPasswordRequired'] + + _setter("access_string", access_string) + _setter("engine", engine) + _setter("user_id", user_id) + _setter("user_name", user_name) if authentication_mode is not None: - pulumi.set(__self__, "authentication_mode", authentication_mode) + _setter("authentication_mode", authentication_mode) if no_password_required is not None: - pulumi.set(__self__, "no_password_required", no_password_required) + _setter("no_password_required", no_password_required) if passwords is not None: - pulumi.set(__self__, "passwords", passwords) + _setter("passwords", passwords) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="accessString") @@ -176,29 +219,70 @@ def __init__(__self__, *, The following arguments are optional: """ + _UserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_string=access_string, + arn=arn, + authentication_mode=authentication_mode, + engine=engine, + no_password_required=no_password_required, + passwords=passwords, + tags=tags, + tags_all=tags_all, + user_id=user_id, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_string: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + authentication_mode: Optional[pulumi.Input['UserAuthenticationModeArgs']] = None, + engine: Optional[pulumi.Input[str]] = None, + no_password_required: Optional[pulumi.Input[bool]] = None, + passwords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_id: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_string is None and 'accessString' in kwargs: + access_string = kwargs['accessString'] + if authentication_mode is None and 'authenticationMode' in kwargs: + authentication_mode = kwargs['authenticationMode'] + if no_password_required is None and 'noPasswordRequired' in kwargs: + no_password_required = kwargs['noPasswordRequired'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if access_string is not None: - pulumi.set(__self__, "access_string", access_string) + _setter("access_string", access_string) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_mode is not None: - pulumi.set(__self__, "authentication_mode", authentication_mode) + _setter("authentication_mode", authentication_mode) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if no_password_required is not None: - pulumi.set(__self__, "no_password_required", no_password_required) + _setter("no_password_required", no_password_required) if passwords is not None: - pulumi.set(__self__, "passwords", passwords) + _setter("passwords", passwords) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_id is not None: - pulumi.set(__self__, "user_id", user_id) + _setter("user_id", user_id) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter(name="accessString") @@ -482,6 +566,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -507,6 +595,7 @@ def _internal_init(__self__, if access_string is None and not opts.urn: raise TypeError("Missing required property 'access_string'") __props__.__dict__["access_string"] = access_string + authentication_mode = _utilities.configure(authentication_mode, UserAuthenticationModeArgs, True) __props__.__dict__["authentication_mode"] = authentication_mode if engine is None and not opts.urn: raise TypeError("Missing required property 'engine'") diff --git a/sdk/python/pulumi_aws/elasticache/user_group.py b/sdk/python/pulumi_aws/elasticache/user_group.py index 9e95fed395e..8e398c60a25 100644 --- a/sdk/python/pulumi_aws/elasticache/user_group.py +++ b/sdk/python/pulumi_aws/elasticache/user_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserGroupArgs', 'UserGroup'] @@ -27,12 +27,37 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input[str]]] user_ids: The list of user IDs that belong to the user group. """ - pulumi.set(__self__, "engine", engine) - pulumi.set(__self__, "user_group_id", user_group_id) + UserGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + engine=engine, + user_group_id=user_group_id, + tags=tags, + user_ids=user_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engine: Optional[pulumi.Input[str]] = None, + user_group_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engine is None: + raise TypeError("Missing 'engine' argument") + if user_group_id is None and 'userGroupId' in kwargs: + user_group_id = kwargs['userGroupId'] + if user_group_id is None: + raise TypeError("Missing 'user_group_id' argument") + if user_ids is None and 'userIds' in kwargs: + user_ids = kwargs['userIds'] + + _setter("engine", engine) + _setter("user_group_id", user_group_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_ids is not None: - pulumi.set(__self__, "user_ids", user_ids) + _setter("user_ids", user_ids) @property @pulumi.getter @@ -105,21 +130,48 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Sequence[pulumi.Input[str]]] user_ids: The list of user IDs that belong to the user group. """ + _UserGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + engine=engine, + tags=tags, + tags_all=tags_all, + user_group_id=user_group_id, + user_ids=user_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_group_id: Optional[pulumi.Input[str]] = None, + user_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_group_id is None and 'userGroupId' in kwargs: + user_group_id = kwargs['userGroupId'] + if user_ids is None and 'userIds' in kwargs: + user_ids = kwargs['userIds'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_group_id is not None: - pulumi.set(__self__, "user_group_id", user_group_id) + _setter("user_group_id", user_group_id) if user_ids is not None: - pulumi.set(__self__, "user_ids", user_ids) + _setter("user_ids", user_ids) @property @pulumi.getter @@ -292,6 +344,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticache/user_group_association.py b/sdk/python/pulumi_aws/elasticache/user_group_association.py index e66e7af1a7c..8ccd316fcbc 100644 --- a/sdk/python/pulumi_aws/elasticache/user_group_association.py +++ b/sdk/python/pulumi_aws/elasticache/user_group_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserGroupAssociationArgs', 'UserGroupAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] user_group_id: ID of the user group. :param pulumi.Input[str] user_id: ID of the user to associated with the user group. """ - pulumi.set(__self__, "user_group_id", user_group_id) - pulumi.set(__self__, "user_id", user_id) + UserGroupAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_group_id=user_group_id, + user_id=user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_group_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_group_id is None and 'userGroupId' in kwargs: + user_group_id = kwargs['userGroupId'] + if user_group_id is None: + raise TypeError("Missing 'user_group_id' argument") + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_id is None: + raise TypeError("Missing 'user_id' argument") + + _setter("user_group_id", user_group_id) + _setter("user_id", user_id) @property @pulumi.getter(name="userGroupId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] user_group_id: ID of the user group. :param pulumi.Input[str] user_id: ID of the user to associated with the user group. """ + _UserGroupAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_group_id=user_group_id, + user_id=user_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_group_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_group_id is None and 'userGroupId' in kwargs: + user_group_id = kwargs['userGroupId'] + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_group_id is not None: - pulumi.set(__self__, "user_group_id", user_group_id) + _setter("user_group_id", user_group_id) if user_id is not None: - pulumi.set(__self__, "user_id", user_id) + _setter("user_id", user_id) @property @pulumi.getter(name="userGroupId") @@ -198,6 +236,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserGroupAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticbeanstalk/_inputs.py b/sdk/python/pulumi_aws/elasticbeanstalk/_inputs.py index 6ac4266e7d6..a7e1b35e396 100644 --- a/sdk/python/pulumi_aws/elasticbeanstalk/_inputs.py +++ b/sdk/python/pulumi_aws/elasticbeanstalk/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,13 +29,40 @@ def __init__(__self__, *, :param pulumi.Input[int] max_age_in_days: The number of days to retain an application version ('max_age_in_days' and 'max_count' cannot be enabled simultaneously.). :param pulumi.Input[int] max_count: The maximum number of application versions to retain ('max_age_in_days' and 'max_count' cannot be enabled simultaneously.). """ - pulumi.set(__self__, "service_role", service_role) + ApplicationAppversionLifecycleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_role=service_role, + delete_source_from_s3=delete_source_from_s3, + max_age_in_days=max_age_in_days, + max_count=max_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_role: Optional[pulumi.Input[str]] = None, + delete_source_from_s3: Optional[pulumi.Input[bool]] = None, + max_age_in_days: Optional[pulumi.Input[int]] = None, + max_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if service_role is None: + raise TypeError("Missing 'service_role' argument") + if delete_source_from_s3 is None and 'deleteSourceFromS3' in kwargs: + delete_source_from_s3 = kwargs['deleteSourceFromS3'] + if max_age_in_days is None and 'maxAgeInDays' in kwargs: + max_age_in_days = kwargs['maxAgeInDays'] + if max_count is None and 'maxCount' in kwargs: + max_count = kwargs['maxCount'] + + _setter("service_role", service_role) if delete_source_from_s3 is not None: - pulumi.set(__self__, "delete_source_from_s3", delete_source_from_s3) + _setter("delete_source_from_s3", delete_source_from_s3) if max_age_in_days is not None: - pulumi.set(__self__, "max_age_in_days", max_age_in_days) + _setter("max_age_in_days", max_age_in_days) if max_count is not None: - pulumi.set(__self__, "max_count", max_count) + _setter("max_count", max_count) @property @pulumi.getter(name="serviceRole") @@ -96,11 +123,34 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: A unique name for this Template. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "value", value) + ConfigurationTemplateSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + namespace=namespace, + value=value, + resource=resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + resource: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("namespace", namespace) + _setter("value", value) if resource is not None: - pulumi.set(__self__, "resource", resource) + _setter("resource", resource) @property @pulumi.getter @@ -153,11 +203,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A unique name for this Environment. This name is used in the application URL """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "value", value) + EnvironmentAllSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + namespace=namespace, + value=value, + resource=resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + resource: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("namespace", namespace) + _setter("value", value) if resource is not None: - pulumi.set(__self__, "resource", resource) + _setter("resource", resource) @property @pulumi.getter @@ -211,11 +284,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A unique name for this Environment. This name is used in the application URL """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "value", value) + EnvironmentSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + namespace=namespace, + value=value, + resource=resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + resource: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("namespace", namespace) + _setter("value", value) if resource is not None: - pulumi.set(__self__, "resource", resource) + _setter("resource", resource) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/elasticbeanstalk/application.py b/sdk/python/pulumi_aws/elasticbeanstalk/application.py index 8d7a3c4c945..fe8bd8a4bbb 100644 --- a/sdk/python/pulumi_aws/elasticbeanstalk/application.py +++ b/sdk/python/pulumi_aws/elasticbeanstalk/application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -26,14 +26,33 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the application, must be unique within your account :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags for the Elastic Beanstalk Application. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + ApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + appversion_lifecycle=appversion_lifecycle, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + appversion_lifecycle: Optional[pulumi.Input['ApplicationAppversionLifecycleArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if appversion_lifecycle is None and 'appversionLifecycle' in kwargs: + appversion_lifecycle = kwargs['appversionLifecycle'] + if appversion_lifecycle is not None: - pulumi.set(__self__, "appversion_lifecycle", appversion_lifecycle) + _setter("appversion_lifecycle", appversion_lifecycle) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="appversionLifecycle") @@ -98,21 +117,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags for the Elastic Beanstalk Application. 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. """ + _ApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + appversion_lifecycle=appversion_lifecycle, + arn=arn, + description=description, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + appversion_lifecycle: Optional[pulumi.Input['ApplicationAppversionLifecycleArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if appversion_lifecycle is None and 'appversionLifecycle' in kwargs: + appversion_lifecycle = kwargs['appversionLifecycle'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if appversion_lifecycle is not None: - pulumi.set(__self__, "appversion_lifecycle", appversion_lifecycle) + _setter("appversion_lifecycle", appversion_lifecycle) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="appversionLifecycle") @@ -281,6 +325,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -299,6 +347,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ApplicationArgs.__new__(ApplicationArgs) + appversion_lifecycle = _utilities.configure(appversion_lifecycle, ApplicationAppversionLifecycleArgs, True) __props__.__dict__["appversion_lifecycle"] = appversion_lifecycle __props__.__dict__["description"] = description __props__.__dict__["name"] = name diff --git a/sdk/python/pulumi_aws/elasticbeanstalk/application_version.py b/sdk/python/pulumi_aws/elasticbeanstalk/application_version.py index b61f55b93bb..809e687c3f9 100644 --- a/sdk/python/pulumi_aws/elasticbeanstalk/application_version.py +++ b/sdk/python/pulumi_aws/elasticbeanstalk/application_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApplicationVersionArgs', 'ApplicationVersion'] @@ -33,17 +33,48 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags for the Elastic Beanstalk Application Version. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "application", application) - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + ApplicationVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application=application, + bucket=bucket, + key=key, + description=description, + force_delete=force_delete, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application is None: + raise TypeError("Missing 'application' argument") + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + + _setter("application", application) + _setter("bucket", bucket) + _setter("key", key) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -158,27 +189,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags for the Elastic Beanstalk Application Version. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ApplicationVersionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application=application, + arn=arn, + bucket=bucket, + description=description, + force_delete=force_delete, + key=key, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if application is not None: - pulumi.set(__self__, "application", application) + _setter("application", application) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -399,6 +461,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationVersionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticbeanstalk/configuration_template.py b/sdk/python/pulumi_aws/elasticbeanstalk/configuration_template.py index c4fda6553f9..f535ce05d8a 100644 --- a/sdk/python/pulumi_aws/elasticbeanstalk/configuration_template.py +++ b/sdk/python/pulumi_aws/elasticbeanstalk/configuration_template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -34,17 +34,44 @@ def __init__(__self__, *, :param pulumi.Input[str] solution_stack_name: A solution stack to base your Template off of. Example stacks can be found in the [Amazon API documentation][1] """ - pulumi.set(__self__, "application", application) + ConfigurationTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application=application, + description=description, + environment_id=environment_id, + name=name, + settings=settings, + solution_stack_name=solution_stack_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Sequence[pulumi.Input['ConfigurationTemplateSettingArgs']]]] = None, + solution_stack_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application is None: + raise TypeError("Missing 'application' argument") + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if solution_stack_name is None and 'solutionStackName' in kwargs: + solution_stack_name = kwargs['solutionStackName'] + + _setter("application", application) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if environment_id is not None: - pulumi.set(__self__, "environment_id", environment_id) + _setter("environment_id", environment_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) if solution_stack_name is not None: - pulumi.set(__self__, "solution_stack_name", solution_stack_name) + _setter("solution_stack_name", solution_stack_name) @property @pulumi.getter @@ -143,18 +170,43 @@ def __init__(__self__, *, :param pulumi.Input[str] solution_stack_name: A solution stack to base your Template off of. Example stacks can be found in the [Amazon API documentation][1] """ + _ConfigurationTemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application=application, + description=description, + environment_id=environment_id, + name=name, + settings=settings, + solution_stack_name=solution_stack_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Sequence[pulumi.Input['ConfigurationTemplateSettingArgs']]]] = None, + solution_stack_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if solution_stack_name is None and 'solutionStackName' in kwargs: + solution_stack_name = kwargs['solutionStackName'] + if application is not None: - pulumi.set(__self__, "application", application) + _setter("application", application) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if environment_id is not None: - pulumi.set(__self__, "environment_id", environment_id) + _setter("environment_id", environment_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) if solution_stack_name is not None: - pulumi.set(__self__, "solution_stack_name", solution_stack_name) + _setter("solution_stack_name", solution_stack_name) @property @pulumi.getter @@ -322,6 +374,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConfigurationTemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticbeanstalk/environment.py b/sdk/python/pulumi_aws/elasticbeanstalk/environment.py index 56289251a7d..b770da81a90 100644 --- a/sdk/python/pulumi_aws/elasticbeanstalk/environment.py +++ b/sdk/python/pulumi_aws/elasticbeanstalk/environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -61,31 +61,80 @@ def __init__(__self__, *, wait for an Elastic Beanstalk Environment to be in a ready state before timing out. """ - pulumi.set(__self__, "application", application) + EnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application=application, + cname_prefix=cname_prefix, + description=description, + name=name, + platform_arn=platform_arn, + poll_interval=poll_interval, + settings=settings, + solution_stack_name=solution_stack_name, + tags=tags, + template_name=template_name, + tier=tier, + version=version, + wait_for_ready_timeout=wait_for_ready_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application: Optional[pulumi.Input[str]] = None, + cname_prefix: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + platform_arn: Optional[pulumi.Input[str]] = None, + poll_interval: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentSettingArgs']]]] = None, + solution_stack_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_name: Optional[pulumi.Input[str]] = None, + tier: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + wait_for_ready_timeout: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application is None: + raise TypeError("Missing 'application' argument") + if cname_prefix is None and 'cnamePrefix' in kwargs: + cname_prefix = kwargs['cnamePrefix'] + if platform_arn is None and 'platformArn' in kwargs: + platform_arn = kwargs['platformArn'] + if poll_interval is None and 'pollInterval' in kwargs: + poll_interval = kwargs['pollInterval'] + if solution_stack_name is None and 'solutionStackName' in kwargs: + solution_stack_name = kwargs['solutionStackName'] + if template_name is None and 'templateName' in kwargs: + template_name = kwargs['templateName'] + if wait_for_ready_timeout is None and 'waitForReadyTimeout' in kwargs: + wait_for_ready_timeout = kwargs['waitForReadyTimeout'] + + _setter("application", application) if cname_prefix is not None: - pulumi.set(__self__, "cname_prefix", cname_prefix) + _setter("cname_prefix", cname_prefix) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if platform_arn is not None: - pulumi.set(__self__, "platform_arn", platform_arn) + _setter("platform_arn", platform_arn) if poll_interval is not None: - pulumi.set(__self__, "poll_interval", poll_interval) + _setter("poll_interval", poll_interval) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) if solution_stack_name is not None: - pulumi.set(__self__, "solution_stack_name", solution_stack_name) + _setter("solution_stack_name", solution_stack_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if template_name is not None: - pulumi.set(__self__, "template_name", template_name) + _setter("template_name", template_name) if tier is not None: - pulumi.set(__self__, "tier", tier) + _setter("tier", tier) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if wait_for_ready_timeout is not None: - pulumi.set(__self__, "wait_for_ready_timeout", wait_for_ready_timeout) + _setter("wait_for_ready_timeout", wait_for_ready_timeout) @property @pulumi.getter @@ -331,57 +380,138 @@ def __init__(__self__, *, wait for an Elastic Beanstalk Environment to be in a ready state before timing out. """ + _EnvironmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_settings=all_settings, + application=application, + arn=arn, + autoscaling_groups=autoscaling_groups, + cname=cname, + cname_prefix=cname_prefix, + description=description, + endpoint_url=endpoint_url, + instances=instances, + launch_configurations=launch_configurations, + load_balancers=load_balancers, + name=name, + platform_arn=platform_arn, + poll_interval=poll_interval, + queues=queues, + settings=settings, + solution_stack_name=solution_stack_name, + tags=tags, + tags_all=tags_all, + template_name=template_name, + tier=tier, + triggers=triggers, + version=version, + wait_for_ready_timeout=wait_for_ready_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_settings: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentAllSettingArgs']]]] = None, + application: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + autoscaling_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cname: Optional[pulumi.Input[str]] = None, + cname_prefix: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + endpoint_url: Optional[pulumi.Input[str]] = None, + instances: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + launch_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + platform_arn: Optional[pulumi.Input[str]] = None, + poll_interval: Optional[pulumi.Input[str]] = None, + queues: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + settings: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentSettingArgs']]]] = None, + solution_stack_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_name: Optional[pulumi.Input[str]] = None, + tier: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + wait_for_ready_timeout: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_settings is None and 'allSettings' in kwargs: + all_settings = kwargs['allSettings'] + if autoscaling_groups is None and 'autoscalingGroups' in kwargs: + autoscaling_groups = kwargs['autoscalingGroups'] + if cname_prefix is None and 'cnamePrefix' in kwargs: + cname_prefix = kwargs['cnamePrefix'] + if endpoint_url is None and 'endpointUrl' in kwargs: + endpoint_url = kwargs['endpointUrl'] + if launch_configurations is None and 'launchConfigurations' in kwargs: + launch_configurations = kwargs['launchConfigurations'] + if load_balancers is None and 'loadBalancers' in kwargs: + load_balancers = kwargs['loadBalancers'] + if platform_arn is None and 'platformArn' in kwargs: + platform_arn = kwargs['platformArn'] + if poll_interval is None and 'pollInterval' in kwargs: + poll_interval = kwargs['pollInterval'] + if solution_stack_name is None and 'solutionStackName' in kwargs: + solution_stack_name = kwargs['solutionStackName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if template_name is None and 'templateName' in kwargs: + template_name = kwargs['templateName'] + if wait_for_ready_timeout is None and 'waitForReadyTimeout' in kwargs: + wait_for_ready_timeout = kwargs['waitForReadyTimeout'] + if all_settings is not None: - pulumi.set(__self__, "all_settings", all_settings) + _setter("all_settings", all_settings) if application is not None: - pulumi.set(__self__, "application", application) + _setter("application", application) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if autoscaling_groups is not None: - pulumi.set(__self__, "autoscaling_groups", autoscaling_groups) + _setter("autoscaling_groups", autoscaling_groups) if cname is not None: - pulumi.set(__self__, "cname", cname) + _setter("cname", cname) if cname_prefix is not None: - pulumi.set(__self__, "cname_prefix", cname_prefix) + _setter("cname_prefix", cname_prefix) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if endpoint_url is not None: - pulumi.set(__self__, "endpoint_url", endpoint_url) + _setter("endpoint_url", endpoint_url) if instances is not None: - pulumi.set(__self__, "instances", instances) + _setter("instances", instances) if launch_configurations is not None: - pulumi.set(__self__, "launch_configurations", launch_configurations) + _setter("launch_configurations", launch_configurations) if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) + _setter("load_balancers", load_balancers) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if platform_arn is not None: - pulumi.set(__self__, "platform_arn", platform_arn) + _setter("platform_arn", platform_arn) if poll_interval is not None: - pulumi.set(__self__, "poll_interval", poll_interval) + _setter("poll_interval", poll_interval) if queues is not None: - pulumi.set(__self__, "queues", queues) + _setter("queues", queues) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) if solution_stack_name is not None: - pulumi.set(__self__, "solution_stack_name", solution_stack_name) + _setter("solution_stack_name", solution_stack_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if template_name is not None: - pulumi.set(__self__, "template_name", template_name) + _setter("template_name", template_name) if tier is not None: - pulumi.set(__self__, "tier", tier) + _setter("tier", tier) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if wait_for_ready_timeout is not None: - pulumi.set(__self__, "wait_for_ready_timeout", wait_for_ready_timeout) + _setter("wait_for_ready_timeout", wait_for_ready_timeout) @property @pulumi.getter(name="allSettings") @@ -883,6 +1013,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EnvironmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticbeanstalk/get_application.py b/sdk/python/pulumi_aws/elasticbeanstalk/get_application.py index c46ba1e9741..3d07ba19cf1 100644 --- a/sdk/python/pulumi_aws/elasticbeanstalk/get_application.py +++ b/sdk/python/pulumi_aws/elasticbeanstalk/get_application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/elasticbeanstalk/get_hosted_zone.py b/sdk/python/pulumi_aws/elasticbeanstalk/get_hosted_zone.py index 3ef4a2524fc..0661269100e 100644 --- a/sdk/python/pulumi_aws/elasticbeanstalk/get_hosted_zone.py +++ b/sdk/python/pulumi_aws/elasticbeanstalk/get_hosted_zone.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/elasticbeanstalk/get_solution_stack.py b/sdk/python/pulumi_aws/elasticbeanstalk/get_solution_stack.py index afb877785d3..46683537be9 100644 --- a/sdk/python/pulumi_aws/elasticbeanstalk/get_solution_stack.py +++ b/sdk/python/pulumi_aws/elasticbeanstalk/get_solution_stack.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/elasticbeanstalk/outputs.py b/sdk/python/pulumi_aws/elasticbeanstalk/outputs.py index 0697ec79c03..67bca371b97 100644 --- a/sdk/python/pulumi_aws/elasticbeanstalk/outputs.py +++ b/sdk/python/pulumi_aws/elasticbeanstalk/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -53,13 +53,40 @@ def __init__(__self__, *, :param int max_age_in_days: The number of days to retain an application version ('max_age_in_days' and 'max_count' cannot be enabled simultaneously.). :param int max_count: The maximum number of application versions to retain ('max_age_in_days' and 'max_count' cannot be enabled simultaneously.). """ - pulumi.set(__self__, "service_role", service_role) + ApplicationAppversionLifecycle._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_role=service_role, + delete_source_from_s3=delete_source_from_s3, + max_age_in_days=max_age_in_days, + max_count=max_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_role: Optional[str] = None, + delete_source_from_s3: Optional[bool] = None, + max_age_in_days: Optional[int] = None, + max_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if service_role is None: + raise TypeError("Missing 'service_role' argument") + if delete_source_from_s3 is None and 'deleteSourceFromS3' in kwargs: + delete_source_from_s3 = kwargs['deleteSourceFromS3'] + if max_age_in_days is None and 'maxAgeInDays' in kwargs: + max_age_in_days = kwargs['maxAgeInDays'] + if max_count is None and 'maxCount' in kwargs: + max_count = kwargs['maxCount'] + + _setter("service_role", service_role) if delete_source_from_s3 is not None: - pulumi.set(__self__, "delete_source_from_s3", delete_source_from_s3) + _setter("delete_source_from_s3", delete_source_from_s3) if max_age_in_days is not None: - pulumi.set(__self__, "max_age_in_days", max_age_in_days) + _setter("max_age_in_days", max_age_in_days) if max_count is not None: - pulumi.set(__self__, "max_count", max_count) + _setter("max_count", max_count) @property @pulumi.getter(name="serviceRole") @@ -104,11 +131,34 @@ def __init__(__self__, *, """ :param str name: A unique name for this Template. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "value", value) + ConfigurationTemplateSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + namespace=namespace, + value=value, + resource=resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + namespace: Optional[str] = None, + value: Optional[str] = None, + resource: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("namespace", namespace) + _setter("value", value) if resource is not None: - pulumi.set(__self__, "resource", resource) + _setter("resource", resource) @property @pulumi.getter @@ -145,11 +195,34 @@ def __init__(__self__, *, :param str name: A unique name for this Environment. This name is used in the application URL """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "value", value) + EnvironmentAllSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + namespace=namespace, + value=value, + resource=resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + namespace: Optional[str] = None, + value: Optional[str] = None, + resource: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("namespace", namespace) + _setter("value", value) if resource is not None: - pulumi.set(__self__, "resource", resource) + _setter("resource", resource) @property @pulumi.getter @@ -187,11 +260,34 @@ def __init__(__self__, *, :param str name: A unique name for this Environment. This name is used in the application URL """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "value", value) + EnvironmentSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + namespace=namespace, + value=value, + resource=resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + namespace: Optional[str] = None, + value: Optional[str] = None, + resource: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("namespace", namespace) + _setter("value", value) if resource is not None: - pulumi.set(__self__, "resource", resource) + _setter("resource", resource) @property @pulumi.getter @@ -231,10 +327,43 @@ def __init__(__self__, *, :param int max_count: Maximum number of application versions to retain. :param str service_role: ARN of an IAM service role under which the application version is deleted. Elastic Beanstalk must have permission to assume this role. """ - pulumi.set(__self__, "delete_source_from_s3", delete_source_from_s3) - pulumi.set(__self__, "max_age_in_days", max_age_in_days) - pulumi.set(__self__, "max_count", max_count) - pulumi.set(__self__, "service_role", service_role) + GetApplicationAppversionLifecycleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_source_from_s3=delete_source_from_s3, + max_age_in_days=max_age_in_days, + max_count=max_count, + service_role=service_role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_source_from_s3: Optional[bool] = None, + max_age_in_days: Optional[int] = None, + max_count: Optional[int] = None, + service_role: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_source_from_s3 is None and 'deleteSourceFromS3' in kwargs: + delete_source_from_s3 = kwargs['deleteSourceFromS3'] + if delete_source_from_s3 is None: + raise TypeError("Missing 'delete_source_from_s3' argument") + if max_age_in_days is None and 'maxAgeInDays' in kwargs: + max_age_in_days = kwargs['maxAgeInDays'] + if max_age_in_days is None: + raise TypeError("Missing 'max_age_in_days' argument") + if max_count is None and 'maxCount' in kwargs: + max_count = kwargs['maxCount'] + if max_count is None: + raise TypeError("Missing 'max_count' argument") + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if service_role is None: + raise TypeError("Missing 'service_role' argument") + + _setter("delete_source_from_s3", delete_source_from_s3) + _setter("max_age_in_days", max_age_in_days) + _setter("max_count", max_count) + _setter("service_role", service_role) @property @pulumi.getter(name="deleteSourceFromS3") diff --git a/sdk/python/pulumi_aws/elasticsearch/_inputs.py b/sdk/python/pulumi_aws/elasticsearch/_inputs.py index f9dfbed7bcb..30d07e9cb10 100644 --- a/sdk/python/pulumi_aws/elasticsearch/_inputs.py +++ b/sdk/python/pulumi_aws/elasticsearch/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,11 +41,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] internal_user_database_enabled: Whether the internal user database is enabled. If not set, defaults to `false` by the AWS API. :param pulumi.Input['DomainAdvancedSecurityOptionsMasterUserOptionsArgs'] master_user_options: Configuration block for the main user. Detailed below. """ - pulumi.set(__self__, "enabled", enabled) + DomainAdvancedSecurityOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + internal_user_database_enabled=internal_user_database_enabled, + master_user_options=master_user_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + internal_user_database_enabled: Optional[pulumi.Input[bool]] = None, + master_user_options: Optional[pulumi.Input['DomainAdvancedSecurityOptionsMasterUserOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if internal_user_database_enabled is None and 'internalUserDatabaseEnabled' in kwargs: + internal_user_database_enabled = kwargs['internalUserDatabaseEnabled'] + if master_user_options is None and 'masterUserOptions' in kwargs: + master_user_options = kwargs['masterUserOptions'] + + _setter("enabled", enabled) if internal_user_database_enabled is not None: - pulumi.set(__self__, "internal_user_database_enabled", internal_user_database_enabled) + _setter("internal_user_database_enabled", internal_user_database_enabled) if master_user_options is not None: - pulumi.set(__self__, "master_user_options", master_user_options) + _setter("master_user_options", master_user_options) @property @pulumi.getter @@ -95,12 +116,33 @@ def __init__(__self__, *, :param pulumi.Input[str] master_user_name: Main user's username, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if `internal_user_database_enabled` is set to `true`. :param pulumi.Input[str] master_user_password: Main user's password, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if `internal_user_database_enabled` is set to `true`. """ + DomainAdvancedSecurityOptionsMasterUserOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + master_user_arn=master_user_arn, + master_user_name=master_user_name, + master_user_password=master_user_password, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + master_user_arn: Optional[pulumi.Input[str]] = None, + master_user_name: Optional[pulumi.Input[str]] = None, + master_user_password: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if master_user_arn is None and 'masterUserArn' in kwargs: + master_user_arn = kwargs['masterUserArn'] + if master_user_name is None and 'masterUserName' in kwargs: + master_user_name = kwargs['masterUserName'] + if master_user_password is None and 'masterUserPassword' in kwargs: + master_user_password = kwargs['masterUserPassword'] + if master_user_arn is not None: - pulumi.set(__self__, "master_user_arn", master_user_arn) + _setter("master_user_arn", master_user_arn) if master_user_name is not None: - pulumi.set(__self__, "master_user_name", master_user_name) + _setter("master_user_name", master_user_name) if master_user_password is not None: - pulumi.set(__self__, "master_user_password", master_user_password) + _setter("master_user_password", master_user_password) @property @pulumi.getter(name="masterUserArn") @@ -150,11 +192,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DomainAutoTuneOptionsMaintenanceScheduleArgs']]] maintenance_schedules: Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. :param pulumi.Input[str] rollback_on_disable: Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: `DEFAULT_ROLLBACK` or `NO_ROLLBACK`. """ - pulumi.set(__self__, "desired_state", desired_state) + DomainAutoTuneOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_state=desired_state, + maintenance_schedules=maintenance_schedules, + rollback_on_disable=rollback_on_disable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_state: Optional[pulumi.Input[str]] = None, + maintenance_schedules: Optional[pulumi.Input[Sequence[pulumi.Input['DomainAutoTuneOptionsMaintenanceScheduleArgs']]]] = None, + rollback_on_disable: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if desired_state is None: + raise TypeError("Missing 'desired_state' argument") + if maintenance_schedules is None and 'maintenanceSchedules' in kwargs: + maintenance_schedules = kwargs['maintenanceSchedules'] + if rollback_on_disable is None and 'rollbackOnDisable' in kwargs: + rollback_on_disable = kwargs['rollbackOnDisable'] + + _setter("desired_state", desired_state) if maintenance_schedules is not None: - pulumi.set(__self__, "maintenance_schedules", maintenance_schedules) + _setter("maintenance_schedules", maintenance_schedules) if rollback_on_disable is not None: - pulumi.set(__self__, "rollback_on_disable", rollback_on_disable) + _setter("rollback_on_disable", rollback_on_disable) @property @pulumi.getter(name="desiredState") @@ -204,9 +269,34 @@ def __init__(__self__, *, :param pulumi.Input['DomainAutoTuneOptionsMaintenanceScheduleDurationArgs'] duration: Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. :param pulumi.Input[str] start_at: Date and time at which to start the Auto-Tune maintenance schedule in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). """ - pulumi.set(__self__, "cron_expression_for_recurrence", cron_expression_for_recurrence) - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "start_at", start_at) + DomainAutoTuneOptionsMaintenanceScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cron_expression_for_recurrence=cron_expression_for_recurrence, + duration=duration, + start_at=start_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cron_expression_for_recurrence: Optional[pulumi.Input[str]] = None, + duration: Optional[pulumi.Input['DomainAutoTuneOptionsMaintenanceScheduleDurationArgs']] = None, + start_at: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cron_expression_for_recurrence is None and 'cronExpressionForRecurrence' in kwargs: + cron_expression_for_recurrence = kwargs['cronExpressionForRecurrence'] + if cron_expression_for_recurrence is None: + raise TypeError("Missing 'cron_expression_for_recurrence' argument") + if duration is None: + raise TypeError("Missing 'duration' argument") + if start_at is None and 'startAt' in kwargs: + start_at = kwargs['startAt'] + if start_at is None: + raise TypeError("Missing 'start_at' argument") + + _setter("cron_expression_for_recurrence", cron_expression_for_recurrence) + _setter("duration", duration) + _setter("start_at", start_at) @property @pulumi.getter(name="cronExpressionForRecurrence") @@ -254,8 +344,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: The unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: `HOURS`. :param pulumi.Input[int] value: An integer specifying the value of the duration of an Auto-Tune maintenance window. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + DomainAutoTuneOptionsMaintenanceScheduleDurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -309,28 +416,81 @@ def __init__(__self__, *, :param pulumi.Input['DomainClusterConfigZoneAwarenessConfigArgs'] zone_awareness_config: Configuration block containing zone awareness settings. Detailed below. :param pulumi.Input[bool] zone_awareness_enabled: Whether zone awareness is enabled, set to `true` for multi-az deployment. To enable awareness with three Availability Zones, the `availability_zone_count` within the `zone_awareness_config` must be set to `3`. """ + DomainClusterConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_options=cold_storage_options, + dedicated_master_count=dedicated_master_count, + dedicated_master_enabled=dedicated_master_enabled, + dedicated_master_type=dedicated_master_type, + instance_count=instance_count, + instance_type=instance_type, + warm_count=warm_count, + warm_enabled=warm_enabled, + warm_type=warm_type, + zone_awareness_config=zone_awareness_config, + zone_awareness_enabled=zone_awareness_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_options: Optional[pulumi.Input['DomainClusterConfigColdStorageOptionsArgs']] = None, + dedicated_master_count: Optional[pulumi.Input[int]] = None, + dedicated_master_enabled: Optional[pulumi.Input[bool]] = None, + dedicated_master_type: Optional[pulumi.Input[str]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + warm_count: Optional[pulumi.Input[int]] = None, + warm_enabled: Optional[pulumi.Input[bool]] = None, + warm_type: Optional[pulumi.Input[str]] = None, + zone_awareness_config: Optional[pulumi.Input['DomainClusterConfigZoneAwarenessConfigArgs']] = None, + zone_awareness_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_options is None and 'coldStorageOptions' in kwargs: + cold_storage_options = kwargs['coldStorageOptions'] + if dedicated_master_count is None and 'dedicatedMasterCount' in kwargs: + dedicated_master_count = kwargs['dedicatedMasterCount'] + if dedicated_master_enabled is None and 'dedicatedMasterEnabled' in kwargs: + dedicated_master_enabled = kwargs['dedicatedMasterEnabled'] + if dedicated_master_type is None and 'dedicatedMasterType' in kwargs: + dedicated_master_type = kwargs['dedicatedMasterType'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if warm_count is None and 'warmCount' in kwargs: + warm_count = kwargs['warmCount'] + if warm_enabled is None and 'warmEnabled' in kwargs: + warm_enabled = kwargs['warmEnabled'] + if warm_type is None and 'warmType' in kwargs: + warm_type = kwargs['warmType'] + if zone_awareness_config is None and 'zoneAwarenessConfig' in kwargs: + zone_awareness_config = kwargs['zoneAwarenessConfig'] + if zone_awareness_enabled is None and 'zoneAwarenessEnabled' in kwargs: + zone_awareness_enabled = kwargs['zoneAwarenessEnabled'] + if cold_storage_options is not None: - pulumi.set(__self__, "cold_storage_options", cold_storage_options) + _setter("cold_storage_options", cold_storage_options) if dedicated_master_count is not None: - pulumi.set(__self__, "dedicated_master_count", dedicated_master_count) + _setter("dedicated_master_count", dedicated_master_count) if dedicated_master_enabled is not None: - pulumi.set(__self__, "dedicated_master_enabled", dedicated_master_enabled) + _setter("dedicated_master_enabled", dedicated_master_enabled) if dedicated_master_type is not None: - pulumi.set(__self__, "dedicated_master_type", dedicated_master_type) + _setter("dedicated_master_type", dedicated_master_type) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if warm_count is not None: - pulumi.set(__self__, "warm_count", warm_count) + _setter("warm_count", warm_count) if warm_enabled is not None: - pulumi.set(__self__, "warm_enabled", warm_enabled) + _setter("warm_enabled", warm_enabled) if warm_type is not None: - pulumi.set(__self__, "warm_type", warm_type) + _setter("warm_type", warm_type) if zone_awareness_config is not None: - pulumi.set(__self__, "zone_awareness_config", zone_awareness_config) + _setter("zone_awareness_config", zone_awareness_config) if zone_awareness_enabled is not None: - pulumi.set(__self__, "zone_awareness_enabled", zone_awareness_enabled) + _setter("zone_awareness_enabled", zone_awareness_enabled) @property @pulumi.getter(name="coldStorageOptions") @@ -472,8 +632,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Boolean to enable cold storage for an Elasticsearch domain. Defaults to `false`. Master and ultrawarm nodes must be enabled for cold storage. """ + DomainClusterConfigColdStorageOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -495,8 +666,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] availability_zone_count: Number of Availability Zones for the domain to use with `zone_awareness_enabled`. Defaults to `2`. Valid values: `2` or `3`. """ + DomainClusterConfigZoneAwarenessConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_count=availability_zone_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_count is None and 'availabilityZoneCount' in kwargs: + availability_zone_count = kwargs['availabilityZoneCount'] + if availability_zone_count is not None: - pulumi.set(__self__, "availability_zone_count", availability_zone_count) + _setter("availability_zone_count", availability_zone_count) @property @pulumi.getter(name="availabilityZoneCount") @@ -524,11 +708,40 @@ def __init__(__self__, *, :param pulumi.Input[str] user_pool_id: ID of the Cognito User Pool to use. :param pulumi.Input[bool] enabled: Whether Amazon Cognito authentication with Kibana is enabled or not. """ - pulumi.set(__self__, "identity_pool_id", identity_pool_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "user_pool_id", user_pool_id) + DomainCognitoOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_pool_id=identity_pool_id, + role_arn=role_arn, + user_pool_id=user_pool_id, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_pool_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if identity_pool_id is None: + raise TypeError("Missing 'identity_pool_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + + _setter("identity_pool_id", identity_pool_id) + _setter("role_arn", role_arn) + _setter("user_pool_id", user_pool_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="identityPoolId") @@ -594,16 +807,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] enforce_https: Whether or not to require HTTPS. Defaults to `true`. :param pulumi.Input[str] tls_security_policy: Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: `Policy-Min-TLS-1-0-2019-07` and `Policy-Min-TLS-1-2-2019-07`. The provider will only perform drift detection if a configuration value is provided. """ + DomainDomainEndpointOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_endpoint=custom_endpoint, + custom_endpoint_certificate_arn=custom_endpoint_certificate_arn, + custom_endpoint_enabled=custom_endpoint_enabled, + enforce_https=enforce_https, + tls_security_policy=tls_security_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_endpoint: Optional[pulumi.Input[str]] = None, + custom_endpoint_certificate_arn: Optional[pulumi.Input[str]] = None, + custom_endpoint_enabled: Optional[pulumi.Input[bool]] = None, + enforce_https: Optional[pulumi.Input[bool]] = None, + tls_security_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_endpoint is None and 'customEndpoint' in kwargs: + custom_endpoint = kwargs['customEndpoint'] + if custom_endpoint_certificate_arn is None and 'customEndpointCertificateArn' in kwargs: + custom_endpoint_certificate_arn = kwargs['customEndpointCertificateArn'] + if custom_endpoint_enabled is None and 'customEndpointEnabled' in kwargs: + custom_endpoint_enabled = kwargs['customEndpointEnabled'] + if enforce_https is None and 'enforceHttps' in kwargs: + enforce_https = kwargs['enforceHttps'] + if tls_security_policy is None and 'tlsSecurityPolicy' in kwargs: + tls_security_policy = kwargs['tlsSecurityPolicy'] + if custom_endpoint is not None: - pulumi.set(__self__, "custom_endpoint", custom_endpoint) + _setter("custom_endpoint", custom_endpoint) if custom_endpoint_certificate_arn is not None: - pulumi.set(__self__, "custom_endpoint_certificate_arn", custom_endpoint_certificate_arn) + _setter("custom_endpoint_certificate_arn", custom_endpoint_certificate_arn) if custom_endpoint_enabled is not None: - pulumi.set(__self__, "custom_endpoint_enabled", custom_endpoint_enabled) + _setter("custom_endpoint_enabled", custom_endpoint_enabled) if enforce_https is not None: - pulumi.set(__self__, "enforce_https", enforce_https) + _setter("enforce_https", enforce_https) if tls_security_policy is not None: - pulumi.set(__self__, "tls_security_policy", tls_security_policy) + _setter("tls_security_policy", tls_security_policy) @property @pulumi.getter(name="customEndpoint") @@ -681,15 +923,42 @@ def __init__(__self__, *, :param pulumi.Input[int] volume_size: Size of EBS volumes attached to data nodes (in GiB). :param pulumi.Input[str] volume_type: Type of EBS volumes attached to data nodes. """ - pulumi.set(__self__, "ebs_enabled", ebs_enabled) + DomainEbsOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_enabled=ebs_enabled, + iops=iops, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_enabled: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_enabled is None and 'ebsEnabled' in kwargs: + ebs_enabled = kwargs['ebsEnabled'] + if ebs_enabled is None: + raise TypeError("Missing 'ebs_enabled' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("ebs_enabled", ebs_enabled) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="ebsEnabled") @@ -761,9 +1030,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Whether to enable encryption at rest. If the `encrypt_at_rest` block is not provided then this defaults to `false`. Enabling encryption on new domains requires `elasticsearch_version` 5.1 or greater. :param pulumi.Input[str] kms_key_id: KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the `aws/es` service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead. """ - pulumi.set(__self__, "enabled", enabled) + DomainEncryptAtRestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("enabled", enabled) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter @@ -801,10 +1087,33 @@ def __init__(__self__, *, :param pulumi.Input[str] log_type: Type of Elasticsearch log. Valid values: `INDEX_SLOW_LOGS`, `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `AUDIT_LOGS`. :param pulumi.Input[bool] enabled: Whether given log publishing option is enabled or not. """ - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) - pulumi.set(__self__, "log_type", log_type) + DomainLogPublishingOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + log_type=log_type, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group_arn: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if cloudwatch_log_group_arn is None: + raise TypeError("Missing 'cloudwatch_log_group_arn' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("log_type", log_type) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="cloudwatchLogGroupArn") @@ -850,7 +1159,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether to enable node-to-node encryption. If the `node_to_node_encryption` block is not provided then this defaults to `false`. Enabling node-to-node encryption of a new domain requires an `elasticsearch_version` of `6.0` or greater. """ - pulumi.set(__self__, "enabled", enabled) + DomainNodeToNodeEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -884,20 +1206,53 @@ def __init__(__self__, *, :param pulumi.Input[int] session_timeout_minutes: Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. :param pulumi.Input[str] subject_key: Custom SAML attribute to use for user names. Default is an empty string - `""`. This will cause Elasticsearch to use the `NameID` element of the `Subject`, which is the default location for name identifiers in the SAML specification. """ + DomainSamlOptionsSamlOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + idp=idp, + master_backend_role=master_backend_role, + master_user_name=master_user_name, + roles_key=roles_key, + session_timeout_minutes=session_timeout_minutes, + subject_key=subject_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + idp: Optional[pulumi.Input['DomainSamlOptionsSamlOptionsIdpArgs']] = None, + master_backend_role: Optional[pulumi.Input[str]] = None, + master_user_name: Optional[pulumi.Input[str]] = None, + roles_key: Optional[pulumi.Input[str]] = None, + session_timeout_minutes: Optional[pulumi.Input[int]] = None, + subject_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if master_backend_role is None and 'masterBackendRole' in kwargs: + master_backend_role = kwargs['masterBackendRole'] + if master_user_name is None and 'masterUserName' in kwargs: + master_user_name = kwargs['masterUserName'] + if roles_key is None and 'rolesKey' in kwargs: + roles_key = kwargs['rolesKey'] + if session_timeout_minutes is None and 'sessionTimeoutMinutes' in kwargs: + session_timeout_minutes = kwargs['sessionTimeoutMinutes'] + if subject_key is None and 'subjectKey' in kwargs: + subject_key = kwargs['subjectKey'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if idp is not None: - pulumi.set(__self__, "idp", idp) + _setter("idp", idp) if master_backend_role is not None: - pulumi.set(__self__, "master_backend_role", master_backend_role) + _setter("master_backend_role", master_backend_role) if master_user_name is not None: - pulumi.set(__self__, "master_user_name", master_user_name) + _setter("master_user_name", master_user_name) if roles_key is not None: - pulumi.set(__self__, "roles_key", roles_key) + _setter("roles_key", roles_key) if session_timeout_minutes is not None: - pulumi.set(__self__, "session_timeout_minutes", session_timeout_minutes) + _setter("session_timeout_minutes", session_timeout_minutes) if subject_key is not None: - pulumi.set(__self__, "subject_key", subject_key) + _setter("subject_key", subject_key) @property @pulumi.getter @@ -993,8 +1348,29 @@ def __init__(__self__, *, :param pulumi.Input[str] entity_id: The unique Entity ID of the application in SAML Identity Provider. :param pulumi.Input[str] metadata_content: The Metadata of the SAML application in xml format. """ - pulumi.set(__self__, "entity_id", entity_id) - pulumi.set(__self__, "metadata_content", metadata_content) + DomainSamlOptionsSamlOptionsIdpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_id=entity_id, + metadata_content=metadata_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_id: Optional[pulumi.Input[str]] = None, + metadata_content: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_id is None and 'entityId' in kwargs: + entity_id = kwargs['entityId'] + if entity_id is None: + raise TypeError("Missing 'entity_id' argument") + if metadata_content is None and 'metadataContent' in kwargs: + metadata_content = kwargs['metadataContent'] + if metadata_content is None: + raise TypeError("Missing 'metadata_content' argument") + + _setter("entity_id", entity_id) + _setter("metadata_content", metadata_content) @property @pulumi.getter(name="entityId") @@ -1028,7 +1404,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] automated_snapshot_start_hour: Hour during which the service takes an automated daily snapshot of the indices in the domain. """ - pulumi.set(__self__, "automated_snapshot_start_hour", automated_snapshot_start_hour) + DomainSnapshotOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + automated_snapshot_start_hour=automated_snapshot_start_hour, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automated_snapshot_start_hour: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automated_snapshot_start_hour is None and 'automatedSnapshotStartHour' in kwargs: + automated_snapshot_start_hour = kwargs['automatedSnapshotStartHour'] + if automated_snapshot_start_hour is None: + raise TypeError("Missing 'automated_snapshot_start_hour' argument") + + _setter("automated_snapshot_start_hour", automated_snapshot_start_hour) @property @pulumi.getter(name="automatedSnapshotStartHour") @@ -1054,14 +1445,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of VPC Security Group IDs to be applied to the Elasticsearch domain endpoints. If omitted, the default Security Group for the VPC will be used. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of VPC Subnet IDs for the Elasticsearch domain endpoints to be created in. """ + DomainVpcOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="availabilityZones") diff --git a/sdk/python/pulumi_aws/elasticsearch/domain.py b/sdk/python/pulumi_aws/elasticsearch/domain.py index a36fb16632c..272b225d266 100644 --- a/sdk/python/pulumi_aws/elasticsearch/domain.py +++ b/sdk/python/pulumi_aws/elasticsearch/domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -53,38 +53,109 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['DomainVpcOptionsArgs'] vpc_options: Configuration block for VPC related options. Adding or removing this configuration forces a new resource ([documentation](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-vpc-limitations)). Detailed below. """ + DomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policies=access_policies, + advanced_options=advanced_options, + advanced_security_options=advanced_security_options, + auto_tune_options=auto_tune_options, + cluster_config=cluster_config, + cognito_options=cognito_options, + domain_endpoint_options=domain_endpoint_options, + domain_name=domain_name, + ebs_options=ebs_options, + elasticsearch_version=elasticsearch_version, + encrypt_at_rest=encrypt_at_rest, + log_publishing_options=log_publishing_options, + node_to_node_encryption=node_to_node_encryption, + snapshot_options=snapshot_options, + tags=tags, + vpc_options=vpc_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policies: Optional[pulumi.Input[str]] = None, + advanced_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + advanced_security_options: Optional[pulumi.Input['DomainAdvancedSecurityOptionsArgs']] = None, + auto_tune_options: Optional[pulumi.Input['DomainAutoTuneOptionsArgs']] = None, + cluster_config: Optional[pulumi.Input['DomainClusterConfigArgs']] = None, + cognito_options: Optional[pulumi.Input['DomainCognitoOptionsArgs']] = None, + domain_endpoint_options: Optional[pulumi.Input['DomainDomainEndpointOptionsArgs']] = None, + domain_name: Optional[pulumi.Input[str]] = None, + ebs_options: Optional[pulumi.Input['DomainEbsOptionsArgs']] = None, + elasticsearch_version: Optional[pulumi.Input[str]] = None, + encrypt_at_rest: Optional[pulumi.Input['DomainEncryptAtRestArgs']] = None, + log_publishing_options: Optional[pulumi.Input[Sequence[pulumi.Input['DomainLogPublishingOptionArgs']]]] = None, + node_to_node_encryption: Optional[pulumi.Input['DomainNodeToNodeEncryptionArgs']] = None, + snapshot_options: Optional[pulumi.Input['DomainSnapshotOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_options: Optional[pulumi.Input['DomainVpcOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policies is None and 'accessPolicies' in kwargs: + access_policies = kwargs['accessPolicies'] + if advanced_options is None and 'advancedOptions' in kwargs: + advanced_options = kwargs['advancedOptions'] + if advanced_security_options is None and 'advancedSecurityOptions' in kwargs: + advanced_security_options = kwargs['advancedSecurityOptions'] + if auto_tune_options is None and 'autoTuneOptions' in kwargs: + auto_tune_options = kwargs['autoTuneOptions'] + if cluster_config is None and 'clusterConfig' in kwargs: + cluster_config = kwargs['clusterConfig'] + if cognito_options is None and 'cognitoOptions' in kwargs: + cognito_options = kwargs['cognitoOptions'] + if domain_endpoint_options is None and 'domainEndpointOptions' in kwargs: + domain_endpoint_options = kwargs['domainEndpointOptions'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if ebs_options is None and 'ebsOptions' in kwargs: + ebs_options = kwargs['ebsOptions'] + if elasticsearch_version is None and 'elasticsearchVersion' in kwargs: + elasticsearch_version = kwargs['elasticsearchVersion'] + if encrypt_at_rest is None and 'encryptAtRest' in kwargs: + encrypt_at_rest = kwargs['encryptAtRest'] + if log_publishing_options is None and 'logPublishingOptions' in kwargs: + log_publishing_options = kwargs['logPublishingOptions'] + if node_to_node_encryption is None and 'nodeToNodeEncryption' in kwargs: + node_to_node_encryption = kwargs['nodeToNodeEncryption'] + if snapshot_options is None and 'snapshotOptions' in kwargs: + snapshot_options = kwargs['snapshotOptions'] + if vpc_options is None and 'vpcOptions' in kwargs: + vpc_options = kwargs['vpcOptions'] + if access_policies is not None: - pulumi.set(__self__, "access_policies", access_policies) + _setter("access_policies", access_policies) if advanced_options is not None: - pulumi.set(__self__, "advanced_options", advanced_options) + _setter("advanced_options", advanced_options) if advanced_security_options is not None: - pulumi.set(__self__, "advanced_security_options", advanced_security_options) + _setter("advanced_security_options", advanced_security_options) if auto_tune_options is not None: - pulumi.set(__self__, "auto_tune_options", auto_tune_options) + _setter("auto_tune_options", auto_tune_options) if cluster_config is not None: - pulumi.set(__self__, "cluster_config", cluster_config) + _setter("cluster_config", cluster_config) if cognito_options is not None: - pulumi.set(__self__, "cognito_options", cognito_options) + _setter("cognito_options", cognito_options) if domain_endpoint_options is not None: - pulumi.set(__self__, "domain_endpoint_options", domain_endpoint_options) + _setter("domain_endpoint_options", domain_endpoint_options) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if ebs_options is not None: - pulumi.set(__self__, "ebs_options", ebs_options) + _setter("ebs_options", ebs_options) if elasticsearch_version is not None: - pulumi.set(__self__, "elasticsearch_version", elasticsearch_version) + _setter("elasticsearch_version", elasticsearch_version) if encrypt_at_rest is not None: - pulumi.set(__self__, "encrypt_at_rest", encrypt_at_rest) + _setter("encrypt_at_rest", encrypt_at_rest) if log_publishing_options is not None: - pulumi.set(__self__, "log_publishing_options", log_publishing_options) + _setter("log_publishing_options", log_publishing_options) if node_to_node_encryption is not None: - pulumi.set(__self__, "node_to_node_encryption", node_to_node_encryption) + _setter("node_to_node_encryption", node_to_node_encryption) if snapshot_options is not None: - pulumi.set(__self__, "snapshot_options", snapshot_options) + _setter("snapshot_options", snapshot_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_options is not None: - pulumi.set(__self__, "vpc_options", vpc_options) + _setter("vpc_options", vpc_options) @property @pulumi.getter(name="accessPolicies") @@ -333,51 +404,138 @@ def __init__(__self__, *, * `vpc_options.0.vpc_id` - If the domain was created inside a VPC, the ID of the VPC. :param pulumi.Input['DomainVpcOptionsArgs'] vpc_options: Configuration block for VPC related options. Adding or removing this configuration forces a new resource ([documentation](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-vpc-limitations)). Detailed below. """ + _DomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policies=access_policies, + advanced_options=advanced_options, + advanced_security_options=advanced_security_options, + arn=arn, + auto_tune_options=auto_tune_options, + cluster_config=cluster_config, + cognito_options=cognito_options, + domain_endpoint_options=domain_endpoint_options, + domain_id=domain_id, + domain_name=domain_name, + ebs_options=ebs_options, + elasticsearch_version=elasticsearch_version, + encrypt_at_rest=encrypt_at_rest, + endpoint=endpoint, + kibana_endpoint=kibana_endpoint, + log_publishing_options=log_publishing_options, + node_to_node_encryption=node_to_node_encryption, + snapshot_options=snapshot_options, + tags=tags, + tags_all=tags_all, + vpc_options=vpc_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policies: Optional[pulumi.Input[str]] = None, + advanced_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + advanced_security_options: Optional[pulumi.Input['DomainAdvancedSecurityOptionsArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_tune_options: Optional[pulumi.Input['DomainAutoTuneOptionsArgs']] = None, + cluster_config: Optional[pulumi.Input['DomainClusterConfigArgs']] = None, + cognito_options: Optional[pulumi.Input['DomainCognitoOptionsArgs']] = None, + domain_endpoint_options: Optional[pulumi.Input['DomainDomainEndpointOptionsArgs']] = None, + domain_id: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + ebs_options: Optional[pulumi.Input['DomainEbsOptionsArgs']] = None, + elasticsearch_version: Optional[pulumi.Input[str]] = None, + encrypt_at_rest: Optional[pulumi.Input['DomainEncryptAtRestArgs']] = None, + endpoint: Optional[pulumi.Input[str]] = None, + kibana_endpoint: Optional[pulumi.Input[str]] = None, + log_publishing_options: Optional[pulumi.Input[Sequence[pulumi.Input['DomainLogPublishingOptionArgs']]]] = None, + node_to_node_encryption: Optional[pulumi.Input['DomainNodeToNodeEncryptionArgs']] = None, + snapshot_options: Optional[pulumi.Input['DomainSnapshotOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_options: Optional[pulumi.Input['DomainVpcOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policies is None and 'accessPolicies' in kwargs: + access_policies = kwargs['accessPolicies'] + if advanced_options is None and 'advancedOptions' in kwargs: + advanced_options = kwargs['advancedOptions'] + if advanced_security_options is None and 'advancedSecurityOptions' in kwargs: + advanced_security_options = kwargs['advancedSecurityOptions'] + if auto_tune_options is None and 'autoTuneOptions' in kwargs: + auto_tune_options = kwargs['autoTuneOptions'] + if cluster_config is None and 'clusterConfig' in kwargs: + cluster_config = kwargs['clusterConfig'] + if cognito_options is None and 'cognitoOptions' in kwargs: + cognito_options = kwargs['cognitoOptions'] + if domain_endpoint_options is None and 'domainEndpointOptions' in kwargs: + domain_endpoint_options = kwargs['domainEndpointOptions'] + if domain_id is None and 'domainId' in kwargs: + domain_id = kwargs['domainId'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if ebs_options is None and 'ebsOptions' in kwargs: + ebs_options = kwargs['ebsOptions'] + if elasticsearch_version is None and 'elasticsearchVersion' in kwargs: + elasticsearch_version = kwargs['elasticsearchVersion'] + if encrypt_at_rest is None and 'encryptAtRest' in kwargs: + encrypt_at_rest = kwargs['encryptAtRest'] + if kibana_endpoint is None and 'kibanaEndpoint' in kwargs: + kibana_endpoint = kwargs['kibanaEndpoint'] + if log_publishing_options is None and 'logPublishingOptions' in kwargs: + log_publishing_options = kwargs['logPublishingOptions'] + if node_to_node_encryption is None and 'nodeToNodeEncryption' in kwargs: + node_to_node_encryption = kwargs['nodeToNodeEncryption'] + if snapshot_options is None and 'snapshotOptions' in kwargs: + snapshot_options = kwargs['snapshotOptions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_options is None and 'vpcOptions' in kwargs: + vpc_options = kwargs['vpcOptions'] + if access_policies is not None: - pulumi.set(__self__, "access_policies", access_policies) + _setter("access_policies", access_policies) if advanced_options is not None: - pulumi.set(__self__, "advanced_options", advanced_options) + _setter("advanced_options", advanced_options) if advanced_security_options is not None: - pulumi.set(__self__, "advanced_security_options", advanced_security_options) + _setter("advanced_security_options", advanced_security_options) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_tune_options is not None: - pulumi.set(__self__, "auto_tune_options", auto_tune_options) + _setter("auto_tune_options", auto_tune_options) if cluster_config is not None: - pulumi.set(__self__, "cluster_config", cluster_config) + _setter("cluster_config", cluster_config) if cognito_options is not None: - pulumi.set(__self__, "cognito_options", cognito_options) + _setter("cognito_options", cognito_options) if domain_endpoint_options is not None: - pulumi.set(__self__, "domain_endpoint_options", domain_endpoint_options) + _setter("domain_endpoint_options", domain_endpoint_options) if domain_id is not None: - pulumi.set(__self__, "domain_id", domain_id) + _setter("domain_id", domain_id) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if ebs_options is not None: - pulumi.set(__self__, "ebs_options", ebs_options) + _setter("ebs_options", ebs_options) if elasticsearch_version is not None: - pulumi.set(__self__, "elasticsearch_version", elasticsearch_version) + _setter("elasticsearch_version", elasticsearch_version) if encrypt_at_rest is not None: - pulumi.set(__self__, "encrypt_at_rest", encrypt_at_rest) + _setter("encrypt_at_rest", encrypt_at_rest) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if kibana_endpoint is not None: - pulumi.set(__self__, "kibana_endpoint", kibana_endpoint) + _setter("kibana_endpoint", kibana_endpoint) if log_publishing_options is not None: - pulumi.set(__self__, "log_publishing_options", log_publishing_options) + _setter("log_publishing_options", log_publishing_options) if node_to_node_encryption is not None: - pulumi.set(__self__, "node_to_node_encryption", node_to_node_encryption) + _setter("node_to_node_encryption", node_to_node_encryption) if snapshot_options is not None: - pulumi.set(__self__, "snapshot_options", snapshot_options) + _setter("snapshot_options", snapshot_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_options is not None: - pulumi.set(__self__, "vpc_options", vpc_options) + _setter("vpc_options", vpc_options) @property @pulumi.getter(name="accessPolicies") @@ -1004,6 +1162,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1036,19 +1198,29 @@ def _internal_init(__self__, __props__.__dict__["access_policies"] = access_policies __props__.__dict__["advanced_options"] = advanced_options + advanced_security_options = _utilities.configure(advanced_security_options, DomainAdvancedSecurityOptionsArgs, True) __props__.__dict__["advanced_security_options"] = advanced_security_options + auto_tune_options = _utilities.configure(auto_tune_options, DomainAutoTuneOptionsArgs, True) __props__.__dict__["auto_tune_options"] = auto_tune_options + cluster_config = _utilities.configure(cluster_config, DomainClusterConfigArgs, True) __props__.__dict__["cluster_config"] = cluster_config + cognito_options = _utilities.configure(cognito_options, DomainCognitoOptionsArgs, True) __props__.__dict__["cognito_options"] = cognito_options + domain_endpoint_options = _utilities.configure(domain_endpoint_options, DomainDomainEndpointOptionsArgs, True) __props__.__dict__["domain_endpoint_options"] = domain_endpoint_options __props__.__dict__["domain_name"] = domain_name + ebs_options = _utilities.configure(ebs_options, DomainEbsOptionsArgs, True) __props__.__dict__["ebs_options"] = ebs_options __props__.__dict__["elasticsearch_version"] = elasticsearch_version + encrypt_at_rest = _utilities.configure(encrypt_at_rest, DomainEncryptAtRestArgs, True) __props__.__dict__["encrypt_at_rest"] = encrypt_at_rest __props__.__dict__["log_publishing_options"] = log_publishing_options + node_to_node_encryption = _utilities.configure(node_to_node_encryption, DomainNodeToNodeEncryptionArgs, True) __props__.__dict__["node_to_node_encryption"] = node_to_node_encryption + snapshot_options = _utilities.configure(snapshot_options, DomainSnapshotOptionsArgs, True) __props__.__dict__["snapshot_options"] = snapshot_options __props__.__dict__["tags"] = tags + vpc_options = _utilities.configure(vpc_options, DomainVpcOptionsArgs, True) __props__.__dict__["vpc_options"] = vpc_options __props__.__dict__["arn"] = None __props__.__dict__["domain_id"] = None diff --git a/sdk/python/pulumi_aws/elasticsearch/domain_policy.py b/sdk/python/pulumi_aws/elasticsearch/domain_policy.py index 6582d5270f4..829d3bae2d9 100644 --- a/sdk/python/pulumi_aws/elasticsearch/domain_policy.py +++ b/sdk/python/pulumi_aws/elasticsearch/domain_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainPolicyArgs', 'DomainPolicy'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] access_policies: IAM policy document specifying the access policies for the domain :param pulumi.Input[str] domain_name: Name of the domain. """ - pulumi.set(__self__, "access_policies", access_policies) - pulumi.set(__self__, "domain_name", domain_name) + DomainPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policies=access_policies, + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policies: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policies is None and 'accessPolicies' in kwargs: + access_policies = kwargs['accessPolicies'] + if access_policies is None: + raise TypeError("Missing 'access_policies' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + + _setter("access_policies", access_policies) + _setter("domain_name", domain_name) @property @pulumi.getter(name="accessPolicies") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] access_policies: IAM policy document specifying the access policies for the domain :param pulumi.Input[str] domain_name: Name of the domain. """ + _DomainPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policies=access_policies, + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policies: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policies is None and 'accessPolicies' in kwargs: + access_policies = kwargs['accessPolicies'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if access_policies is not None: - pulumi.set(__self__, "access_policies", access_policies) + _setter("access_policies", access_policies) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) @property @pulumi.getter(name="accessPolicies") @@ -176,6 +214,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elasticsearch/domain_saml_options.py b/sdk/python/pulumi_aws/elasticsearch/domain_saml_options.py index ab9d4831b6a..7617fc1324c 100644 --- a/sdk/python/pulumi_aws/elasticsearch/domain_saml_options.py +++ b/sdk/python/pulumi_aws/elasticsearch/domain_saml_options.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,28 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['DomainSamlOptionsSamlOptionsArgs'] saml_options: The SAML authentication options for an AWS Elasticsearch Domain. """ - pulumi.set(__self__, "domain_name", domain_name) + DomainSamlOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + saml_options=saml_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + saml_options: Optional[pulumi.Input['DomainSamlOptionsSamlOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if saml_options is None and 'samlOptions' in kwargs: + saml_options = kwargs['samlOptions'] + + _setter("domain_name", domain_name) if saml_options is not None: - pulumi.set(__self__, "saml_options", saml_options) + _setter("saml_options", saml_options) @property @pulumi.getter(name="domainName") @@ -68,10 +87,27 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['DomainSamlOptionsSamlOptionsArgs'] saml_options: The SAML authentication options for an AWS Elasticsearch Domain. """ + _DomainSamlOptionsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + saml_options=saml_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + saml_options: Optional[pulumi.Input['DomainSamlOptionsSamlOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if saml_options is None and 'samlOptions' in kwargs: + saml_options = kwargs['samlOptions'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if saml_options is not None: - pulumi.set(__self__, "saml_options", saml_options) + _setter("saml_options", saml_options) @property @pulumi.getter(name="domainName") @@ -211,6 +247,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainSamlOptionsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -230,6 +270,7 @@ def _internal_init(__self__, if domain_name is None and not opts.urn: raise TypeError("Missing required property 'domain_name'") __props__.__dict__["domain_name"] = domain_name + saml_options = _utilities.configure(saml_options, DomainSamlOptionsSamlOptionsArgs, True) __props__.__dict__["saml_options"] = saml_options super(DomainSamlOptions, __self__).__init__( 'aws:elasticsearch/domainSamlOptions:DomainSamlOptions', diff --git a/sdk/python/pulumi_aws/elasticsearch/get_domain.py b/sdk/python/pulumi_aws/elasticsearch/get_domain.py index d607274b9f3..3ac02f9a8ff 100644 --- a/sdk/python/pulumi_aws/elasticsearch/get_domain.py +++ b/sdk/python/pulumi_aws/elasticsearch/get_domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/elasticsearch/outputs.py b/sdk/python/pulumi_aws/elasticsearch/outputs.py index 82040da0d0a..6bb9d47a30b 100644 --- a/sdk/python/pulumi_aws/elasticsearch/outputs.py +++ b/sdk/python/pulumi_aws/elasticsearch/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -75,11 +75,32 @@ def __init__(__self__, *, :param bool internal_user_database_enabled: Whether the internal user database is enabled. If not set, defaults to `false` by the AWS API. :param 'DomainAdvancedSecurityOptionsMasterUserOptionsArgs' master_user_options: Configuration block for the main user. Detailed below. """ - pulumi.set(__self__, "enabled", enabled) + DomainAdvancedSecurityOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + internal_user_database_enabled=internal_user_database_enabled, + master_user_options=master_user_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + internal_user_database_enabled: Optional[bool] = None, + master_user_options: Optional['outputs.DomainAdvancedSecurityOptionsMasterUserOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if internal_user_database_enabled is None and 'internalUserDatabaseEnabled' in kwargs: + internal_user_database_enabled = kwargs['internalUserDatabaseEnabled'] + if master_user_options is None and 'masterUserOptions' in kwargs: + master_user_options = kwargs['masterUserOptions'] + + _setter("enabled", enabled) if internal_user_database_enabled is not None: - pulumi.set(__self__, "internal_user_database_enabled", internal_user_database_enabled) + _setter("internal_user_database_enabled", internal_user_database_enabled) if master_user_options is not None: - pulumi.set(__self__, "master_user_options", master_user_options) + _setter("master_user_options", master_user_options) @property @pulumi.getter @@ -138,12 +159,33 @@ def __init__(__self__, *, :param str master_user_name: Main user's username, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if `internal_user_database_enabled` is set to `true`. :param str master_user_password: Main user's password, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if `internal_user_database_enabled` is set to `true`. """ + DomainAdvancedSecurityOptionsMasterUserOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + master_user_arn=master_user_arn, + master_user_name=master_user_name, + master_user_password=master_user_password, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + master_user_arn: Optional[str] = None, + master_user_name: Optional[str] = None, + master_user_password: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if master_user_arn is None and 'masterUserArn' in kwargs: + master_user_arn = kwargs['masterUserArn'] + if master_user_name is None and 'masterUserName' in kwargs: + master_user_name = kwargs['masterUserName'] + if master_user_password is None and 'masterUserPassword' in kwargs: + master_user_password = kwargs['masterUserPassword'] + if master_user_arn is not None: - pulumi.set(__self__, "master_user_arn", master_user_arn) + _setter("master_user_arn", master_user_arn) if master_user_name is not None: - pulumi.set(__self__, "master_user_name", master_user_name) + _setter("master_user_name", master_user_name) if master_user_password is not None: - pulumi.set(__self__, "master_user_password", master_user_password) + _setter("master_user_password", master_user_password) @property @pulumi.getter(name="masterUserArn") @@ -202,11 +244,34 @@ def __init__(__self__, *, :param Sequence['DomainAutoTuneOptionsMaintenanceScheduleArgs'] maintenance_schedules: Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. :param str rollback_on_disable: Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: `DEFAULT_ROLLBACK` or `NO_ROLLBACK`. """ - pulumi.set(__self__, "desired_state", desired_state) + DomainAutoTuneOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_state=desired_state, + maintenance_schedules=maintenance_schedules, + rollback_on_disable=rollback_on_disable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_state: Optional[str] = None, + maintenance_schedules: Optional[Sequence['outputs.DomainAutoTuneOptionsMaintenanceSchedule']] = None, + rollback_on_disable: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if desired_state is None: + raise TypeError("Missing 'desired_state' argument") + if maintenance_schedules is None and 'maintenanceSchedules' in kwargs: + maintenance_schedules = kwargs['maintenanceSchedules'] + if rollback_on_disable is None and 'rollbackOnDisable' in kwargs: + rollback_on_disable = kwargs['rollbackOnDisable'] + + _setter("desired_state", desired_state) if maintenance_schedules is not None: - pulumi.set(__self__, "maintenance_schedules", maintenance_schedules) + _setter("maintenance_schedules", maintenance_schedules) if rollback_on_disable is not None: - pulumi.set(__self__, "rollback_on_disable", rollback_on_disable) + _setter("rollback_on_disable", rollback_on_disable) @property @pulumi.getter(name="desiredState") @@ -263,9 +328,34 @@ def __init__(__self__, *, :param 'DomainAutoTuneOptionsMaintenanceScheduleDurationArgs' duration: Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. :param str start_at: Date and time at which to start the Auto-Tune maintenance schedule in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). """ - pulumi.set(__self__, "cron_expression_for_recurrence", cron_expression_for_recurrence) - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "start_at", start_at) + DomainAutoTuneOptionsMaintenanceSchedule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cron_expression_for_recurrence=cron_expression_for_recurrence, + duration=duration, + start_at=start_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cron_expression_for_recurrence: Optional[str] = None, + duration: Optional['outputs.DomainAutoTuneOptionsMaintenanceScheduleDuration'] = None, + start_at: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cron_expression_for_recurrence is None and 'cronExpressionForRecurrence' in kwargs: + cron_expression_for_recurrence = kwargs['cronExpressionForRecurrence'] + if cron_expression_for_recurrence is None: + raise TypeError("Missing 'cron_expression_for_recurrence' argument") + if duration is None: + raise TypeError("Missing 'duration' argument") + if start_at is None and 'startAt' in kwargs: + start_at = kwargs['startAt'] + if start_at is None: + raise TypeError("Missing 'start_at' argument") + + _setter("cron_expression_for_recurrence", cron_expression_for_recurrence) + _setter("duration", duration) + _setter("start_at", start_at) @property @pulumi.getter(name="cronExpressionForRecurrence") @@ -301,8 +391,25 @@ def __init__(__self__, *, :param str unit: The unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: `HOURS`. :param int value: An integer specifying the value of the duration of an Auto-Tune maintenance window. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + DomainAutoTuneOptionsMaintenanceScheduleDuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -385,28 +492,81 @@ def __init__(__self__, *, :param 'DomainClusterConfigZoneAwarenessConfigArgs' zone_awareness_config: Configuration block containing zone awareness settings. Detailed below. :param bool zone_awareness_enabled: Whether zone awareness is enabled, set to `true` for multi-az deployment. To enable awareness with three Availability Zones, the `availability_zone_count` within the `zone_awareness_config` must be set to `3`. """ + DomainClusterConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_options=cold_storage_options, + dedicated_master_count=dedicated_master_count, + dedicated_master_enabled=dedicated_master_enabled, + dedicated_master_type=dedicated_master_type, + instance_count=instance_count, + instance_type=instance_type, + warm_count=warm_count, + warm_enabled=warm_enabled, + warm_type=warm_type, + zone_awareness_config=zone_awareness_config, + zone_awareness_enabled=zone_awareness_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_options: Optional['outputs.DomainClusterConfigColdStorageOptions'] = None, + dedicated_master_count: Optional[int] = None, + dedicated_master_enabled: Optional[bool] = None, + dedicated_master_type: Optional[str] = None, + instance_count: Optional[int] = None, + instance_type: Optional[str] = None, + warm_count: Optional[int] = None, + warm_enabled: Optional[bool] = None, + warm_type: Optional[str] = None, + zone_awareness_config: Optional['outputs.DomainClusterConfigZoneAwarenessConfig'] = None, + zone_awareness_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_options is None and 'coldStorageOptions' in kwargs: + cold_storage_options = kwargs['coldStorageOptions'] + if dedicated_master_count is None and 'dedicatedMasterCount' in kwargs: + dedicated_master_count = kwargs['dedicatedMasterCount'] + if dedicated_master_enabled is None and 'dedicatedMasterEnabled' in kwargs: + dedicated_master_enabled = kwargs['dedicatedMasterEnabled'] + if dedicated_master_type is None and 'dedicatedMasterType' in kwargs: + dedicated_master_type = kwargs['dedicatedMasterType'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if warm_count is None and 'warmCount' in kwargs: + warm_count = kwargs['warmCount'] + if warm_enabled is None and 'warmEnabled' in kwargs: + warm_enabled = kwargs['warmEnabled'] + if warm_type is None and 'warmType' in kwargs: + warm_type = kwargs['warmType'] + if zone_awareness_config is None and 'zoneAwarenessConfig' in kwargs: + zone_awareness_config = kwargs['zoneAwarenessConfig'] + if zone_awareness_enabled is None and 'zoneAwarenessEnabled' in kwargs: + zone_awareness_enabled = kwargs['zoneAwarenessEnabled'] + if cold_storage_options is not None: - pulumi.set(__self__, "cold_storage_options", cold_storage_options) + _setter("cold_storage_options", cold_storage_options) if dedicated_master_count is not None: - pulumi.set(__self__, "dedicated_master_count", dedicated_master_count) + _setter("dedicated_master_count", dedicated_master_count) if dedicated_master_enabled is not None: - pulumi.set(__self__, "dedicated_master_enabled", dedicated_master_enabled) + _setter("dedicated_master_enabled", dedicated_master_enabled) if dedicated_master_type is not None: - pulumi.set(__self__, "dedicated_master_type", dedicated_master_type) + _setter("dedicated_master_type", dedicated_master_type) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if warm_count is not None: - pulumi.set(__self__, "warm_count", warm_count) + _setter("warm_count", warm_count) if warm_enabled is not None: - pulumi.set(__self__, "warm_enabled", warm_enabled) + _setter("warm_enabled", warm_enabled) if warm_type is not None: - pulumi.set(__self__, "warm_type", warm_type) + _setter("warm_type", warm_type) if zone_awareness_config is not None: - pulumi.set(__self__, "zone_awareness_config", zone_awareness_config) + _setter("zone_awareness_config", zone_awareness_config) if zone_awareness_enabled is not None: - pulumi.set(__self__, "zone_awareness_enabled", zone_awareness_enabled) + _setter("zone_awareness_enabled", zone_awareness_enabled) @property @pulumi.getter(name="coldStorageOptions") @@ -504,8 +664,19 @@ def __init__(__self__, *, """ :param bool enabled: Boolean to enable cold storage for an Elasticsearch domain. Defaults to `false`. Master and ultrawarm nodes must be enabled for cold storage. """ + DomainClusterConfigColdStorageOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -540,8 +711,21 @@ def __init__(__self__, *, """ :param int availability_zone_count: Number of Availability Zones for the domain to use with `zone_awareness_enabled`. Defaults to `2`. Valid values: `2` or `3`. """ + DomainClusterConfigZoneAwarenessConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_count=availability_zone_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_count is None and 'availabilityZoneCount' in kwargs: + availability_zone_count = kwargs['availabilityZoneCount'] + if availability_zone_count is not None: - pulumi.set(__self__, "availability_zone_count", availability_zone_count) + _setter("availability_zone_count", availability_zone_count) @property @pulumi.getter(name="availabilityZoneCount") @@ -586,11 +770,40 @@ def __init__(__self__, *, :param str user_pool_id: ID of the Cognito User Pool to use. :param bool enabled: Whether Amazon Cognito authentication with Kibana is enabled or not. """ - pulumi.set(__self__, "identity_pool_id", identity_pool_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "user_pool_id", user_pool_id) + DomainCognitoOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_pool_id=identity_pool_id, + role_arn=role_arn, + user_pool_id=user_pool_id, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_pool_id: Optional[str] = None, + role_arn: Optional[str] = None, + user_pool_id: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if identity_pool_id is None: + raise TypeError("Missing 'identity_pool_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + + _setter("identity_pool_id", identity_pool_id) + _setter("role_arn", role_arn) + _setter("user_pool_id", user_pool_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="identityPoolId") @@ -665,16 +878,45 @@ def __init__(__self__, *, :param bool enforce_https: Whether or not to require HTTPS. Defaults to `true`. :param str tls_security_policy: Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: `Policy-Min-TLS-1-0-2019-07` and `Policy-Min-TLS-1-2-2019-07`. The provider will only perform drift detection if a configuration value is provided. """ + DomainDomainEndpointOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_endpoint=custom_endpoint, + custom_endpoint_certificate_arn=custom_endpoint_certificate_arn, + custom_endpoint_enabled=custom_endpoint_enabled, + enforce_https=enforce_https, + tls_security_policy=tls_security_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_endpoint: Optional[str] = None, + custom_endpoint_certificate_arn: Optional[str] = None, + custom_endpoint_enabled: Optional[bool] = None, + enforce_https: Optional[bool] = None, + tls_security_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_endpoint is None and 'customEndpoint' in kwargs: + custom_endpoint = kwargs['customEndpoint'] + if custom_endpoint_certificate_arn is None and 'customEndpointCertificateArn' in kwargs: + custom_endpoint_certificate_arn = kwargs['customEndpointCertificateArn'] + if custom_endpoint_enabled is None and 'customEndpointEnabled' in kwargs: + custom_endpoint_enabled = kwargs['customEndpointEnabled'] + if enforce_https is None and 'enforceHttps' in kwargs: + enforce_https = kwargs['enforceHttps'] + if tls_security_policy is None and 'tlsSecurityPolicy' in kwargs: + tls_security_policy = kwargs['tlsSecurityPolicy'] + if custom_endpoint is not None: - pulumi.set(__self__, "custom_endpoint", custom_endpoint) + _setter("custom_endpoint", custom_endpoint) if custom_endpoint_certificate_arn is not None: - pulumi.set(__self__, "custom_endpoint_certificate_arn", custom_endpoint_certificate_arn) + _setter("custom_endpoint_certificate_arn", custom_endpoint_certificate_arn) if custom_endpoint_enabled is not None: - pulumi.set(__self__, "custom_endpoint_enabled", custom_endpoint_enabled) + _setter("custom_endpoint_enabled", custom_endpoint_enabled) if enforce_https is not None: - pulumi.set(__self__, "enforce_https", enforce_https) + _setter("enforce_https", enforce_https) if tls_security_policy is not None: - pulumi.set(__self__, "tls_security_policy", tls_security_policy) + _setter("tls_security_policy", tls_security_policy) @property @pulumi.getter(name="customEndpoint") @@ -753,15 +995,42 @@ def __init__(__self__, *, :param int volume_size: Size of EBS volumes attached to data nodes (in GiB). :param str volume_type: Type of EBS volumes attached to data nodes. """ - pulumi.set(__self__, "ebs_enabled", ebs_enabled) + DomainEbsOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_enabled=ebs_enabled, + iops=iops, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_enabled: Optional[bool] = None, + iops: Optional[int] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_enabled is None and 'ebsEnabled' in kwargs: + ebs_enabled = kwargs['ebsEnabled'] + if ebs_enabled is None: + raise TypeError("Missing 'ebs_enabled' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("ebs_enabled", ebs_enabled) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="ebsEnabled") @@ -830,9 +1099,26 @@ def __init__(__self__, *, :param bool enabled: Whether to enable encryption at rest. If the `encrypt_at_rest` block is not provided then this defaults to `false`. Enabling encryption on new domains requires `elasticsearch_version` 5.1 or greater. :param str kms_key_id: KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the `aws/es` service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead. """ - pulumi.set(__self__, "enabled", enabled) + DomainEncryptAtRest._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("enabled", enabled) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter @@ -881,10 +1167,33 @@ def __init__(__self__, *, :param str log_type: Type of Elasticsearch log. Valid values: `INDEX_SLOW_LOGS`, `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `AUDIT_LOGS`. :param bool enabled: Whether given log publishing option is enabled or not. """ - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) - pulumi.set(__self__, "log_type", log_type) + DomainLogPublishingOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + log_type=log_type, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group_arn: Optional[str] = None, + log_type: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if cloudwatch_log_group_arn is None: + raise TypeError("Missing 'cloudwatch_log_group_arn' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("log_type", log_type) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="cloudwatchLogGroupArn") @@ -918,7 +1227,20 @@ def __init__(__self__, *, """ :param bool enabled: Whether to enable node-to-node encryption. If the `node_to_node_encryption` block is not provided then this defaults to `false`. Enabling node-to-node encryption of a new domain requires an `elasticsearch_version` of `6.0` or greater. """ - pulumi.set(__self__, "enabled", enabled) + DomainNodeToNodeEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -973,20 +1295,53 @@ def __init__(__self__, *, :param int session_timeout_minutes: Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. :param str subject_key: Custom SAML attribute to use for user names. Default is an empty string - `""`. This will cause Elasticsearch to use the `NameID` element of the `Subject`, which is the default location for name identifiers in the SAML specification. """ + DomainSamlOptionsSamlOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + idp=idp, + master_backend_role=master_backend_role, + master_user_name=master_user_name, + roles_key=roles_key, + session_timeout_minutes=session_timeout_minutes, + subject_key=subject_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + idp: Optional['outputs.DomainSamlOptionsSamlOptionsIdp'] = None, + master_backend_role: Optional[str] = None, + master_user_name: Optional[str] = None, + roles_key: Optional[str] = None, + session_timeout_minutes: Optional[int] = None, + subject_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if master_backend_role is None and 'masterBackendRole' in kwargs: + master_backend_role = kwargs['masterBackendRole'] + if master_user_name is None and 'masterUserName' in kwargs: + master_user_name = kwargs['masterUserName'] + if roles_key is None and 'rolesKey' in kwargs: + roles_key = kwargs['rolesKey'] + if session_timeout_minutes is None and 'sessionTimeoutMinutes' in kwargs: + session_timeout_minutes = kwargs['sessionTimeoutMinutes'] + if subject_key is None and 'subjectKey' in kwargs: + subject_key = kwargs['subjectKey'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if idp is not None: - pulumi.set(__self__, "idp", idp) + _setter("idp", idp) if master_backend_role is not None: - pulumi.set(__self__, "master_backend_role", master_backend_role) + _setter("master_backend_role", master_backend_role) if master_user_name is not None: - pulumi.set(__self__, "master_user_name", master_user_name) + _setter("master_user_name", master_user_name) if roles_key is not None: - pulumi.set(__self__, "roles_key", roles_key) + _setter("roles_key", roles_key) if session_timeout_minutes is not None: - pulumi.set(__self__, "session_timeout_minutes", session_timeout_minutes) + _setter("session_timeout_minutes", session_timeout_minutes) if subject_key is not None: - pulumi.set(__self__, "subject_key", subject_key) + _setter("subject_key", subject_key) @property @pulumi.getter @@ -1073,8 +1428,29 @@ def __init__(__self__, *, :param str entity_id: The unique Entity ID of the application in SAML Identity Provider. :param str metadata_content: The Metadata of the SAML application in xml format. """ - pulumi.set(__self__, "entity_id", entity_id) - pulumi.set(__self__, "metadata_content", metadata_content) + DomainSamlOptionsSamlOptionsIdp._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_id=entity_id, + metadata_content=metadata_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_id: Optional[str] = None, + metadata_content: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_id is None and 'entityId' in kwargs: + entity_id = kwargs['entityId'] + if entity_id is None: + raise TypeError("Missing 'entity_id' argument") + if metadata_content is None and 'metadataContent' in kwargs: + metadata_content = kwargs['metadataContent'] + if metadata_content is None: + raise TypeError("Missing 'metadata_content' argument") + + _setter("entity_id", entity_id) + _setter("metadata_content", metadata_content) @property @pulumi.getter(name="entityId") @@ -1117,7 +1493,22 @@ def __init__(__self__, *, """ :param int automated_snapshot_start_hour: Hour during which the service takes an automated daily snapshot of the indices in the domain. """ - pulumi.set(__self__, "automated_snapshot_start_hour", automated_snapshot_start_hour) + DomainSnapshotOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + automated_snapshot_start_hour=automated_snapshot_start_hour, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automated_snapshot_start_hour: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automated_snapshot_start_hour is None and 'automatedSnapshotStartHour' in kwargs: + automated_snapshot_start_hour = kwargs['automatedSnapshotStartHour'] + if automated_snapshot_start_hour is None: + raise TypeError("Missing 'automated_snapshot_start_hour' argument") + + _setter("automated_snapshot_start_hour", automated_snapshot_start_hour) @property @pulumi.getter(name="automatedSnapshotStartHour") @@ -1162,14 +1553,39 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: List of VPC Security Group IDs to be applied to the Elasticsearch domain endpoints. If omitted, the default Security Group for the VPC will be used. :param Sequence[str] subnet_ids: List of VPC Subnet IDs for the Elasticsearch domain endpoints to be created in. """ + DomainVpcOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="availabilityZones") @@ -1207,8 +1623,27 @@ def __init__(__self__, *, :param bool enabled: Whether node to node encryption is enabled. :param bool internal_user_database_enabled: Whether the internal user database is enabled. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "internal_user_database_enabled", internal_user_database_enabled) + GetDomainAdvancedSecurityOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + internal_user_database_enabled=internal_user_database_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + internal_user_database_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if internal_user_database_enabled is None and 'internalUserDatabaseEnabled' in kwargs: + internal_user_database_enabled = kwargs['internalUserDatabaseEnabled'] + if internal_user_database_enabled is None: + raise TypeError("Missing 'internal_user_database_enabled' argument") + + _setter("enabled", enabled) + _setter("internal_user_database_enabled", internal_user_database_enabled) @property @pulumi.getter @@ -1238,9 +1673,36 @@ def __init__(__self__, *, :param Sequence['GetDomainAutoTuneOptionMaintenanceScheduleArgs'] maintenance_schedules: A list of the nested configurations for the Auto-Tune maintenance windows of the domain. :param str rollback_on_disable: Whether the domain is set to roll back to default Auto-Tune settings when disabling Auto-Tune. """ - pulumi.set(__self__, "desired_state", desired_state) - pulumi.set(__self__, "maintenance_schedules", maintenance_schedules) - pulumi.set(__self__, "rollback_on_disable", rollback_on_disable) + GetDomainAutoTuneOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_state=desired_state, + maintenance_schedules=maintenance_schedules, + rollback_on_disable=rollback_on_disable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_state: Optional[str] = None, + maintenance_schedules: Optional[Sequence['outputs.GetDomainAutoTuneOptionMaintenanceScheduleResult']] = None, + rollback_on_disable: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if desired_state is None: + raise TypeError("Missing 'desired_state' argument") + if maintenance_schedules is None and 'maintenanceSchedules' in kwargs: + maintenance_schedules = kwargs['maintenanceSchedules'] + if maintenance_schedules is None: + raise TypeError("Missing 'maintenance_schedules' argument") + if rollback_on_disable is None and 'rollbackOnDisable' in kwargs: + rollback_on_disable = kwargs['rollbackOnDisable'] + if rollback_on_disable is None: + raise TypeError("Missing 'rollback_on_disable' argument") + + _setter("desired_state", desired_state) + _setter("maintenance_schedules", maintenance_schedules) + _setter("rollback_on_disable", rollback_on_disable) @property @pulumi.getter(name="desiredState") @@ -1278,9 +1740,34 @@ def __init__(__self__, *, :param Sequence['GetDomainAutoTuneOptionMaintenanceScheduleDurationArgs'] durations: Configuration block for the duration of the Auto-Tune maintenance window. :param str start_at: Date and time at which the Auto-Tune maintenance schedule starts in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). """ - pulumi.set(__self__, "cron_expression_for_recurrence", cron_expression_for_recurrence) - pulumi.set(__self__, "durations", durations) - pulumi.set(__self__, "start_at", start_at) + GetDomainAutoTuneOptionMaintenanceScheduleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cron_expression_for_recurrence=cron_expression_for_recurrence, + durations=durations, + start_at=start_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cron_expression_for_recurrence: Optional[str] = None, + durations: Optional[Sequence['outputs.GetDomainAutoTuneOptionMaintenanceScheduleDurationResult']] = None, + start_at: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cron_expression_for_recurrence is None and 'cronExpressionForRecurrence' in kwargs: + cron_expression_for_recurrence = kwargs['cronExpressionForRecurrence'] + if cron_expression_for_recurrence is None: + raise TypeError("Missing 'cron_expression_for_recurrence' argument") + if durations is None: + raise TypeError("Missing 'durations' argument") + if start_at is None and 'startAt' in kwargs: + start_at = kwargs['startAt'] + if start_at is None: + raise TypeError("Missing 'start_at' argument") + + _setter("cron_expression_for_recurrence", cron_expression_for_recurrence) + _setter("durations", durations) + _setter("start_at", start_at) @property @pulumi.getter(name="cronExpressionForRecurrence") @@ -1316,8 +1803,25 @@ def __init__(__self__, *, :param str unit: Unit of time. :param int value: Duration of an Auto-Tune maintenance window. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetDomainAutoTuneOptionMaintenanceScheduleDurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -1363,17 +1867,92 @@ def __init__(__self__, *, :param Sequence['GetDomainClusterConfigZoneAwarenessConfigArgs'] zone_awareness_configs: Configuration block containing zone awareness settings. :param bool zone_awareness_enabled: Indicates whether zone awareness is enabled. """ - pulumi.set(__self__, "cold_storage_options", cold_storage_options) - pulumi.set(__self__, "dedicated_master_count", dedicated_master_count) - pulumi.set(__self__, "dedicated_master_enabled", dedicated_master_enabled) - pulumi.set(__self__, "dedicated_master_type", dedicated_master_type) - pulumi.set(__self__, "instance_count", instance_count) - pulumi.set(__self__, "instance_type", instance_type) - pulumi.set(__self__, "warm_count", warm_count) - pulumi.set(__self__, "warm_enabled", warm_enabled) - pulumi.set(__self__, "warm_type", warm_type) - pulumi.set(__self__, "zone_awareness_configs", zone_awareness_configs) - pulumi.set(__self__, "zone_awareness_enabled", zone_awareness_enabled) + GetDomainClusterConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_options=cold_storage_options, + dedicated_master_count=dedicated_master_count, + dedicated_master_enabled=dedicated_master_enabled, + dedicated_master_type=dedicated_master_type, + instance_count=instance_count, + instance_type=instance_type, + warm_count=warm_count, + warm_enabled=warm_enabled, + warm_type=warm_type, + zone_awareness_configs=zone_awareness_configs, + zone_awareness_enabled=zone_awareness_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_options: Optional[Sequence['outputs.GetDomainClusterConfigColdStorageOptionResult']] = None, + dedicated_master_count: Optional[int] = None, + dedicated_master_enabled: Optional[bool] = None, + dedicated_master_type: Optional[str] = None, + instance_count: Optional[int] = None, + instance_type: Optional[str] = None, + warm_count: Optional[int] = None, + warm_enabled: Optional[bool] = None, + warm_type: Optional[str] = None, + zone_awareness_configs: Optional[Sequence['outputs.GetDomainClusterConfigZoneAwarenessConfigResult']] = None, + zone_awareness_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_options is None and 'coldStorageOptions' in kwargs: + cold_storage_options = kwargs['coldStorageOptions'] + if cold_storage_options is None: + raise TypeError("Missing 'cold_storage_options' argument") + if dedicated_master_count is None and 'dedicatedMasterCount' in kwargs: + dedicated_master_count = kwargs['dedicatedMasterCount'] + if dedicated_master_count is None: + raise TypeError("Missing 'dedicated_master_count' argument") + if dedicated_master_enabled is None and 'dedicatedMasterEnabled' in kwargs: + dedicated_master_enabled = kwargs['dedicatedMasterEnabled'] + if dedicated_master_enabled is None: + raise TypeError("Missing 'dedicated_master_enabled' argument") + if dedicated_master_type is None and 'dedicatedMasterType' in kwargs: + dedicated_master_type = kwargs['dedicatedMasterType'] + if dedicated_master_type is None: + raise TypeError("Missing 'dedicated_master_type' argument") + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_count is None: + raise TypeError("Missing 'instance_count' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if warm_count is None and 'warmCount' in kwargs: + warm_count = kwargs['warmCount'] + if warm_count is None: + raise TypeError("Missing 'warm_count' argument") + if warm_enabled is None and 'warmEnabled' in kwargs: + warm_enabled = kwargs['warmEnabled'] + if warm_enabled is None: + raise TypeError("Missing 'warm_enabled' argument") + if warm_type is None and 'warmType' in kwargs: + warm_type = kwargs['warmType'] + if warm_type is None: + raise TypeError("Missing 'warm_type' argument") + if zone_awareness_configs is None and 'zoneAwarenessConfigs' in kwargs: + zone_awareness_configs = kwargs['zoneAwarenessConfigs'] + if zone_awareness_configs is None: + raise TypeError("Missing 'zone_awareness_configs' argument") + if zone_awareness_enabled is None and 'zoneAwarenessEnabled' in kwargs: + zone_awareness_enabled = kwargs['zoneAwarenessEnabled'] + if zone_awareness_enabled is None: + raise TypeError("Missing 'zone_awareness_enabled' argument") + + _setter("cold_storage_options", cold_storage_options) + _setter("dedicated_master_count", dedicated_master_count) + _setter("dedicated_master_enabled", dedicated_master_enabled) + _setter("dedicated_master_type", dedicated_master_type) + _setter("instance_count", instance_count) + _setter("instance_type", instance_type) + _setter("warm_count", warm_count) + _setter("warm_enabled", warm_enabled) + _setter("warm_type", warm_type) + _setter("zone_awareness_configs", zone_awareness_configs) + _setter("zone_awareness_enabled", zone_awareness_enabled) @property @pulumi.getter(name="coldStorageOptions") @@ -1471,7 +2050,20 @@ def __init__(__self__, *, """ :param bool enabled: Whether node to node encryption is enabled. """ - pulumi.set(__self__, "enabled", enabled) + GetDomainClusterConfigColdStorageOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -1489,7 +2081,22 @@ def __init__(__self__, *, """ :param int availability_zone_count: Number of availability zones used. """ - pulumi.set(__self__, "availability_zone_count", availability_zone_count) + GetDomainClusterConfigZoneAwarenessConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_count=availability_zone_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_count is None and 'availabilityZoneCount' in kwargs: + availability_zone_count = kwargs['availabilityZoneCount'] + if availability_zone_count is None: + raise TypeError("Missing 'availability_zone_count' argument") + + _setter("availability_zone_count", availability_zone_count) @property @pulumi.getter(name="availabilityZoneCount") @@ -1513,10 +2120,41 @@ def __init__(__self__, *, :param str role_arn: The IAM Role with the AmazonESCognitoAccess policy attached. :param str user_pool_id: The Cognito User pool used by the domain. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "identity_pool_id", identity_pool_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "user_pool_id", user_pool_id) + GetDomainCognitoOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + identity_pool_id=identity_pool_id, + role_arn=role_arn, + user_pool_id=user_pool_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + identity_pool_id: Optional[str] = None, + role_arn: Optional[str] = None, + user_pool_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if identity_pool_id is None: + raise TypeError("Missing 'identity_pool_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + + _setter("enabled", enabled) + _setter("identity_pool_id", identity_pool_id) + _setter("role_arn", role_arn) + _setter("user_pool_id", user_pool_id) @property @pulumi.getter @@ -1566,11 +2204,46 @@ def __init__(__self__, *, :param int volume_size: The size of EBS volumes attached to data nodes (in GB). :param str volume_type: The type of EBS volumes attached to data nodes. """ - pulumi.set(__self__, "ebs_enabled", ebs_enabled) - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "throughput", throughput) - pulumi.set(__self__, "volume_size", volume_size) - pulumi.set(__self__, "volume_type", volume_type) + GetDomainEbsOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_enabled=ebs_enabled, + iops=iops, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_enabled: Optional[bool] = None, + iops: Optional[int] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_enabled is None and 'ebsEnabled' in kwargs: + ebs_enabled = kwargs['ebsEnabled'] + if ebs_enabled is None: + raise TypeError("Missing 'ebs_enabled' argument") + if iops is None: + raise TypeError("Missing 'iops' argument") + if throughput is None: + raise TypeError("Missing 'throughput' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_size is None: + raise TypeError("Missing 'volume_size' argument") + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if volume_type is None: + raise TypeError("Missing 'volume_type' argument") + + _setter("ebs_enabled", ebs_enabled) + _setter("iops", iops) + _setter("throughput", throughput) + _setter("volume_size", volume_size) + _setter("volume_type", volume_type) @property @pulumi.getter(name="ebsEnabled") @@ -1622,8 +2295,27 @@ def __init__(__self__, *, :param bool enabled: Whether node to node encryption is enabled. :param str kms_key_id: The KMS key id used to encrypt data at rest. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "kms_key_id", kms_key_id) + GetDomainEncryptionAtRestResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + + _setter("enabled", enabled) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter @@ -1653,9 +2345,34 @@ def __init__(__self__, *, :param bool enabled: Whether node to node encryption is enabled. :param str log_type: The type of Elasticsearch log being published. """ - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "log_type", log_type) + GetDomainLogPublishingOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + enabled=enabled, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group_arn: Optional[str] = None, + enabled: Optional[bool] = None, + log_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if cloudwatch_log_group_arn is None: + raise TypeError("Missing 'cloudwatch_log_group_arn' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("enabled", enabled) + _setter("log_type", log_type) @property @pulumi.getter(name="cloudwatchLogGroupArn") @@ -1689,7 +2406,20 @@ def __init__(__self__, *, """ :param bool enabled: Whether node to node encryption is enabled. """ - pulumi.set(__self__, "enabled", enabled) + GetDomainNodeToNodeEncryptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -1707,7 +2437,22 @@ def __init__(__self__, *, """ :param int automated_snapshot_start_hour: Hour during which the service takes an automated daily snapshot of the indices in the domain. """ - pulumi.set(__self__, "automated_snapshot_start_hour", automated_snapshot_start_hour) + GetDomainSnapshotOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + automated_snapshot_start_hour=automated_snapshot_start_hour, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automated_snapshot_start_hour: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automated_snapshot_start_hour is None and 'automatedSnapshotStartHour' in kwargs: + automated_snapshot_start_hour = kwargs['automatedSnapshotStartHour'] + if automated_snapshot_start_hour is None: + raise TypeError("Missing 'automated_snapshot_start_hour' argument") + + _setter("automated_snapshot_start_hour", automated_snapshot_start_hour) @property @pulumi.getter(name="automatedSnapshotStartHour") @@ -1731,10 +2476,43 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: The subnets used by the domain. :param str vpc_id: The VPC used by the domain. """ - pulumi.set(__self__, "availability_zones", availability_zones) - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + GetDomainVpcOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if availability_zones is None: + raise TypeError("Missing 'availability_zones' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("availability_zones", availability_zones) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="availabilityZones") diff --git a/sdk/python/pulumi_aws/elastictranscoder/_inputs.py b/sdk/python/pulumi_aws/elastictranscoder/_inputs.py index 52e8f8aaebb..a7c74784ef7 100644 --- a/sdk/python/pulumi_aws/elastictranscoder/_inputs.py +++ b/sdk/python/pulumi_aws/elastictranscoder/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -31,10 +31,25 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. :param pulumi.Input[str] storage_class: The Amazon S3 storage class, `Standard` or `ReducedRedundancy`, that you want Elastic Transcoder to assign to the files and playlists that it stores in your Amazon S3 bucket. """ + PipelineContentConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -72,12 +87,29 @@ def __init__(__self__, *, :param pulumi.Input[str] grantee: The AWS user or group that you want to have access to transcoded files and playlists. :param pulumi.Input[str] grantee_type: Specify the type of value that appears in the `content_config_permissions.grantee` object. Valid values are `Canonical`, `Email` or `Group`. """ + PipelineContentConfigPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accesses=accesses, + grantee=grantee, + grantee_type=grantee_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accesses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + grantee: Optional[pulumi.Input[str]] = None, + grantee_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grantee_type is None and 'granteeType' in kwargs: + grantee_type = kwargs['granteeType'] + if accesses is not None: - pulumi.set(__self__, "accesses", accesses) + _setter("accesses", accesses) if grantee is not None: - pulumi.set(__self__, "grantee", grantee) + _setter("grantee", grantee) if grantee_type is not None: - pulumi.set(__self__, "grantee_type", grantee_type) + _setter("grantee_type", grantee_type) @property @pulumi.getter @@ -139,14 +171,31 @@ def __init__(__self__, *, ThumbnailPattern in the topic Create Job.) If you specify values for `content_config` and `thumbnail_config`, omit the OutputBucket object. """ + PipelineNotificationsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + completed=completed, + error=error, + progressing=progressing, + warning=warning, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + completed: Optional[pulumi.Input[str]] = None, + error: Optional[pulumi.Input[str]] = None, + progressing: Optional[pulumi.Input[str]] = None, + warning: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if completed is not None: - pulumi.set(__self__, "completed", completed) + _setter("completed", completed) if error is not None: - pulumi.set(__self__, "error", error) + _setter("error", error) if progressing is not None: - pulumi.set(__self__, "progressing", progressing) + _setter("progressing", progressing) if warning is not None: - pulumi.set(__self__, "warning", warning) + _setter("warning", warning) @property @pulumi.getter @@ -216,10 +265,25 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. :param pulumi.Input[str] storage_class: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. """ + PipelineThumbnailConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -257,12 +321,29 @@ def __init__(__self__, *, :param pulumi.Input[str] grantee: The AWS user or group that you want to have access to thumbnail files. :param pulumi.Input[str] grantee_type: Specify the type of value that appears in the `thumbnail_config_permissions.grantee` object. Valid values are `Canonical`, `Email` or `Group`. """ + PipelineThumbnailConfigPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accesses=accesses, + grantee=grantee, + grantee_type=grantee_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accesses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + grantee: Optional[pulumi.Input[str]] = None, + grantee_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grantee_type is None and 'granteeType' in kwargs: + grantee_type = kwargs['granteeType'] + if accesses is not None: - pulumi.set(__self__, "accesses", accesses) + _setter("accesses", accesses) if grantee is not None: - pulumi.set(__self__, "grantee", grantee) + _setter("grantee", grantee) if grantee_type is not None: - pulumi.set(__self__, "grantee_type", grantee_type) + _setter("grantee_type", grantee_type) @property @pulumi.getter @@ -316,16 +397,41 @@ def __init__(__self__, *, :param pulumi.Input[str] codec: The audio codec for the output file. Valid values are `AAC`, `flac`, `mp2`, `mp3`, `pcm`, and `vorbis`. :param pulumi.Input[str] sample_rate: The sample rate of the audio stream in the output file, in hertz. Valid values are: `auto`, `22050`, `32000`, `44100`, `48000`, `96000` """ + PresetAudioArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_packing_mode=audio_packing_mode, + bit_rate=bit_rate, + channels=channels, + codec=codec, + sample_rate=sample_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_packing_mode: Optional[pulumi.Input[str]] = None, + bit_rate: Optional[pulumi.Input[str]] = None, + channels: Optional[pulumi.Input[str]] = None, + codec: Optional[pulumi.Input[str]] = None, + sample_rate: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_packing_mode is None and 'audioPackingMode' in kwargs: + audio_packing_mode = kwargs['audioPackingMode'] + if bit_rate is None and 'bitRate' in kwargs: + bit_rate = kwargs['bitRate'] + if sample_rate is None and 'sampleRate' in kwargs: + sample_rate = kwargs['sampleRate'] + if audio_packing_mode is not None: - pulumi.set(__self__, "audio_packing_mode", audio_packing_mode) + _setter("audio_packing_mode", audio_packing_mode) if bit_rate is not None: - pulumi.set(__self__, "bit_rate", bit_rate) + _setter("bit_rate", bit_rate) if channels is not None: - pulumi.set(__self__, "channels", channels) + _setter("channels", channels) if codec is not None: - pulumi.set(__self__, "codec", codec) + _setter("codec", codec) if sample_rate is not None: - pulumi.set(__self__, "sample_rate", sample_rate) + _setter("sample_rate", sample_rate) @property @pulumi.getter(name="audioPackingMode") @@ -401,14 +507,35 @@ def __init__(__self__, *, :param pulumi.Input[str] profile: If you specified AAC for Audio:Codec, choose the AAC profile for the output file. :param pulumi.Input[str] signed: Whether audio samples are represented with negative and positive numbers (signed) or only positive numbers (unsigned). The supported value is Signed. (PCM Only) """ + PresetAudioCodecOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bit_depth=bit_depth, + bit_order=bit_order, + profile=profile, + signed=signed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bit_depth: Optional[pulumi.Input[str]] = None, + bit_order: Optional[pulumi.Input[str]] = None, + profile: Optional[pulumi.Input[str]] = None, + signed: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bit_depth is None and 'bitDepth' in kwargs: + bit_depth = kwargs['bitDepth'] + if bit_order is None and 'bitOrder' in kwargs: + bit_order = kwargs['bitOrder'] + if bit_depth is not None: - pulumi.set(__self__, "bit_depth", bit_depth) + _setter("bit_depth", bit_depth) if bit_order is not None: - pulumi.set(__self__, "bit_order", bit_order) + _setter("bit_order", bit_order) if profile is not None: - pulumi.set(__self__, "profile", profile) + _setter("profile", profile) if signed is not None: - pulumi.set(__self__, "signed", signed) + _setter("signed", signed) @property @pulumi.getter(name="bitDepth") @@ -480,22 +607,57 @@ def __init__(__self__, *, :param pulumi.Input[str] resolution: The width and height of thumbnail files in pixels, in the format WidthxHeight, where both values are even integers. The values cannot exceed the width and height that you specified in the Video:Resolution object. (To better control resolution and aspect ratio of thumbnails, we recommend that you use the thumbnail values `max_width`, `max_height`, `sizing_policy`, and `padding_policy` instead of `resolution` and `aspect_ratio`. The two groups of settings are mutually exclusive. Do not use them together) :param pulumi.Input[str] sizing_policy: A value that controls scaling of thumbnails. Valid values are: `Fit`, `Fill`, `Stretch`, `Keep`, `ShrinkToFit`, and `ShrinkToFill`. """ + PresetThumbnailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aspect_ratio=aspect_ratio, + format=format, + interval=interval, + max_height=max_height, + max_width=max_width, + padding_policy=padding_policy, + resolution=resolution, + sizing_policy=sizing_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aspect_ratio: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + interval: Optional[pulumi.Input[str]] = None, + max_height: Optional[pulumi.Input[str]] = None, + max_width: Optional[pulumi.Input[str]] = None, + padding_policy: Optional[pulumi.Input[str]] = None, + resolution: Optional[pulumi.Input[str]] = None, + sizing_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aspect_ratio is None and 'aspectRatio' in kwargs: + aspect_ratio = kwargs['aspectRatio'] + if max_height is None and 'maxHeight' in kwargs: + max_height = kwargs['maxHeight'] + if max_width is None and 'maxWidth' in kwargs: + max_width = kwargs['maxWidth'] + if padding_policy is None and 'paddingPolicy' in kwargs: + padding_policy = kwargs['paddingPolicy'] + if sizing_policy is None and 'sizingPolicy' in kwargs: + sizing_policy = kwargs['sizingPolicy'] + if aspect_ratio is not None: - pulumi.set(__self__, "aspect_ratio", aspect_ratio) + _setter("aspect_ratio", aspect_ratio) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if max_height is not None: - pulumi.set(__self__, "max_height", max_height) + _setter("max_height", max_height) if max_width is not None: - pulumi.set(__self__, "max_width", max_width) + _setter("max_width", max_width) if padding_policy is not None: - pulumi.set(__self__, "padding_policy", padding_policy) + _setter("padding_policy", padding_policy) if resolution is not None: - pulumi.set(__self__, "resolution", resolution) + _setter("resolution", resolution) if sizing_policy is not None: - pulumi.set(__self__, "sizing_policy", sizing_policy) + _setter("sizing_policy", sizing_policy) @property @pulumi.getter(name="aspectRatio") @@ -625,32 +787,89 @@ def __init__(__self__, *, :param pulumi.Input[str] resolution: The width and height of the video in the output file, in pixels. Valid values are `auto` and `widthxheight`. (see note for `aspect_ratio`) :param pulumi.Input[str] sizing_policy: A value that controls scaling of the output video. Valid values are: `Fit`, `Fill`, `Stretch`, `Keep`, `ShrinkToFit`, `ShrinkToFill`. """ + PresetVideoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aspect_ratio=aspect_ratio, + bit_rate=bit_rate, + codec=codec, + display_aspect_ratio=display_aspect_ratio, + fixed_gop=fixed_gop, + frame_rate=frame_rate, + keyframes_max_dist=keyframes_max_dist, + max_frame_rate=max_frame_rate, + max_height=max_height, + max_width=max_width, + padding_policy=padding_policy, + resolution=resolution, + sizing_policy=sizing_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aspect_ratio: Optional[pulumi.Input[str]] = None, + bit_rate: Optional[pulumi.Input[str]] = None, + codec: Optional[pulumi.Input[str]] = None, + display_aspect_ratio: Optional[pulumi.Input[str]] = None, + fixed_gop: Optional[pulumi.Input[str]] = None, + frame_rate: Optional[pulumi.Input[str]] = None, + keyframes_max_dist: Optional[pulumi.Input[str]] = None, + max_frame_rate: Optional[pulumi.Input[str]] = None, + max_height: Optional[pulumi.Input[str]] = None, + max_width: Optional[pulumi.Input[str]] = None, + padding_policy: Optional[pulumi.Input[str]] = None, + resolution: Optional[pulumi.Input[str]] = None, + sizing_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aspect_ratio is None and 'aspectRatio' in kwargs: + aspect_ratio = kwargs['aspectRatio'] + if bit_rate is None and 'bitRate' in kwargs: + bit_rate = kwargs['bitRate'] + if display_aspect_ratio is None and 'displayAspectRatio' in kwargs: + display_aspect_ratio = kwargs['displayAspectRatio'] + if fixed_gop is None and 'fixedGop' in kwargs: + fixed_gop = kwargs['fixedGop'] + if frame_rate is None and 'frameRate' in kwargs: + frame_rate = kwargs['frameRate'] + if keyframes_max_dist is None and 'keyframesMaxDist' in kwargs: + keyframes_max_dist = kwargs['keyframesMaxDist'] + if max_frame_rate is None and 'maxFrameRate' in kwargs: + max_frame_rate = kwargs['maxFrameRate'] + if max_height is None and 'maxHeight' in kwargs: + max_height = kwargs['maxHeight'] + if max_width is None and 'maxWidth' in kwargs: + max_width = kwargs['maxWidth'] + if padding_policy is None and 'paddingPolicy' in kwargs: + padding_policy = kwargs['paddingPolicy'] + if sizing_policy is None and 'sizingPolicy' in kwargs: + sizing_policy = kwargs['sizingPolicy'] + if aspect_ratio is not None: - pulumi.set(__self__, "aspect_ratio", aspect_ratio) + _setter("aspect_ratio", aspect_ratio) if bit_rate is not None: - pulumi.set(__self__, "bit_rate", bit_rate) + _setter("bit_rate", bit_rate) if codec is not None: - pulumi.set(__self__, "codec", codec) + _setter("codec", codec) if display_aspect_ratio is not None: - pulumi.set(__self__, "display_aspect_ratio", display_aspect_ratio) + _setter("display_aspect_ratio", display_aspect_ratio) if fixed_gop is not None: - pulumi.set(__self__, "fixed_gop", fixed_gop) + _setter("fixed_gop", fixed_gop) if frame_rate is not None: - pulumi.set(__self__, "frame_rate", frame_rate) + _setter("frame_rate", frame_rate) if keyframes_max_dist is not None: - pulumi.set(__self__, "keyframes_max_dist", keyframes_max_dist) + _setter("keyframes_max_dist", keyframes_max_dist) if max_frame_rate is not None: - pulumi.set(__self__, "max_frame_rate", max_frame_rate) + _setter("max_frame_rate", max_frame_rate) if max_height is not None: - pulumi.set(__self__, "max_height", max_height) + _setter("max_height", max_height) if max_width is not None: - pulumi.set(__self__, "max_width", max_width) + _setter("max_width", max_width) if padding_policy is not None: - pulumi.set(__self__, "padding_policy", padding_policy) + _setter("padding_policy", padding_policy) if resolution is not None: - pulumi.set(__self__, "resolution", resolution) + _setter("resolution", resolution) if sizing_policy is not None: - pulumi.set(__self__, "sizing_policy", sizing_policy) + _setter("sizing_policy", sizing_policy) @property @pulumi.getter(name="aspectRatio") @@ -834,26 +1053,69 @@ def __init__(__self__, *, :param pulumi.Input[str] vertical_align: The vertical position of the watermark unless you specify a nonzero value for `vertical_align`. Valid values are `Top`, `Bottom`, `Center`. :param pulumi.Input[str] vertical_offset: The amount by which you want the vertical position of the watermark to be offset from the position specified by `vertical_align` """ + PresetVideoWatermarkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + horizontal_align=horizontal_align, + horizontal_offset=horizontal_offset, + id=id, + max_height=max_height, + max_width=max_width, + opacity=opacity, + sizing_policy=sizing_policy, + target=target, + vertical_align=vertical_align, + vertical_offset=vertical_offset, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + horizontal_align: Optional[pulumi.Input[str]] = None, + horizontal_offset: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + max_height: Optional[pulumi.Input[str]] = None, + max_width: Optional[pulumi.Input[str]] = None, + opacity: Optional[pulumi.Input[str]] = None, + sizing_policy: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + vertical_align: Optional[pulumi.Input[str]] = None, + vertical_offset: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if horizontal_align is None and 'horizontalAlign' in kwargs: + horizontal_align = kwargs['horizontalAlign'] + if horizontal_offset is None and 'horizontalOffset' in kwargs: + horizontal_offset = kwargs['horizontalOffset'] + if max_height is None and 'maxHeight' in kwargs: + max_height = kwargs['maxHeight'] + if max_width is None and 'maxWidth' in kwargs: + max_width = kwargs['maxWidth'] + if sizing_policy is None and 'sizingPolicy' in kwargs: + sizing_policy = kwargs['sizingPolicy'] + if vertical_align is None and 'verticalAlign' in kwargs: + vertical_align = kwargs['verticalAlign'] + if vertical_offset is None and 'verticalOffset' in kwargs: + vertical_offset = kwargs['verticalOffset'] + if horizontal_align is not None: - pulumi.set(__self__, "horizontal_align", horizontal_align) + _setter("horizontal_align", horizontal_align) if horizontal_offset is not None: - pulumi.set(__self__, "horizontal_offset", horizontal_offset) + _setter("horizontal_offset", horizontal_offset) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if max_height is not None: - pulumi.set(__self__, "max_height", max_height) + _setter("max_height", max_height) if max_width is not None: - pulumi.set(__self__, "max_width", max_width) + _setter("max_width", max_width) if opacity is not None: - pulumi.set(__self__, "opacity", opacity) + _setter("opacity", opacity) if sizing_policy is not None: - pulumi.set(__self__, "sizing_policy", sizing_policy) + _setter("sizing_policy", sizing_policy) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if vertical_align is not None: - pulumi.set(__self__, "vertical_align", vertical_align) + _setter("vertical_align", vertical_align) if vertical_offset is not None: - pulumi.set(__self__, "vertical_offset", vertical_offset) + _setter("vertical_offset", vertical_offset) @property @pulumi.getter(name="horizontalAlign") diff --git a/sdk/python/pulumi_aws/elastictranscoder/outputs.py b/sdk/python/pulumi_aws/elastictranscoder/outputs.py index a134d6d9995..cb8e42d567c 100644 --- a/sdk/python/pulumi_aws/elastictranscoder/outputs.py +++ b/sdk/python/pulumi_aws/elastictranscoder/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -48,10 +48,25 @@ def __init__(__self__, *, :param str bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. :param str storage_class: The Amazon S3 storage class, `Standard` or `ReducedRedundancy`, that you want Elastic Transcoder to assign to the files and playlists that it stores in your Amazon S3 bucket. """ + PipelineContentConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + storage_class: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -98,12 +113,29 @@ def __init__(__self__, *, :param str grantee: The AWS user or group that you want to have access to transcoded files and playlists. :param str grantee_type: Specify the type of value that appears in the `content_config_permissions.grantee` object. Valid values are `Canonical`, `Email` or `Group`. """ + PipelineContentConfigPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + accesses=accesses, + grantee=grantee, + grantee_type=grantee_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accesses: Optional[Sequence[str]] = None, + grantee: Optional[str] = None, + grantee_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grantee_type is None and 'granteeType' in kwargs: + grantee_type = kwargs['granteeType'] + if accesses is not None: - pulumi.set(__self__, "accesses", accesses) + _setter("accesses", accesses) if grantee is not None: - pulumi.set(__self__, "grantee", grantee) + _setter("grantee", grantee) if grantee_type is not None: - pulumi.set(__self__, "grantee_type", grantee_type) + _setter("grantee_type", grantee_type) @property @pulumi.getter @@ -153,14 +185,31 @@ def __init__(__self__, *, ThumbnailPattern in the topic Create Job.) If you specify values for `content_config` and `thumbnail_config`, omit the OutputBucket object. """ + PipelineNotifications._configure( + lambda key, value: pulumi.set(__self__, key, value), + completed=completed, + error=error, + progressing=progressing, + warning=warning, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + completed: Optional[str] = None, + error: Optional[str] = None, + progressing: Optional[str] = None, + warning: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if completed is not None: - pulumi.set(__self__, "completed", completed) + _setter("completed", completed) if error is not None: - pulumi.set(__self__, "error", error) + _setter("error", error) if progressing is not None: - pulumi.set(__self__, "progressing", progressing) + _setter("progressing", progressing) if warning is not None: - pulumi.set(__self__, "warning", warning) + _setter("warning", warning) @property @pulumi.getter @@ -231,10 +280,25 @@ def __init__(__self__, *, :param str bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. :param str storage_class: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. """ + PipelineThumbnailConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + storage_class: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -281,12 +345,29 @@ def __init__(__self__, *, :param str grantee: The AWS user or group that you want to have access to thumbnail files. :param str grantee_type: Specify the type of value that appears in the `thumbnail_config_permissions.grantee` object. Valid values are `Canonical`, `Email` or `Group`. """ + PipelineThumbnailConfigPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + accesses=accesses, + grantee=grantee, + grantee_type=grantee_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accesses: Optional[Sequence[str]] = None, + grantee: Optional[str] = None, + grantee_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grantee_type is None and 'granteeType' in kwargs: + grantee_type = kwargs['granteeType'] + if accesses is not None: - pulumi.set(__self__, "accesses", accesses) + _setter("accesses", accesses) if grantee is not None: - pulumi.set(__self__, "grantee", grantee) + _setter("grantee", grantee) if grantee_type is not None: - pulumi.set(__self__, "grantee_type", grantee_type) + _setter("grantee_type", grantee_type) @property @pulumi.getter @@ -349,16 +430,41 @@ def __init__(__self__, *, :param str codec: The audio codec for the output file. Valid values are `AAC`, `flac`, `mp2`, `mp3`, `pcm`, and `vorbis`. :param str sample_rate: The sample rate of the audio stream in the output file, in hertz. Valid values are: `auto`, `22050`, `32000`, `44100`, `48000`, `96000` """ + PresetAudio._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_packing_mode=audio_packing_mode, + bit_rate=bit_rate, + channels=channels, + codec=codec, + sample_rate=sample_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_packing_mode: Optional[str] = None, + bit_rate: Optional[str] = None, + channels: Optional[str] = None, + codec: Optional[str] = None, + sample_rate: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_packing_mode is None and 'audioPackingMode' in kwargs: + audio_packing_mode = kwargs['audioPackingMode'] + if bit_rate is None and 'bitRate' in kwargs: + bit_rate = kwargs['bitRate'] + if sample_rate is None and 'sampleRate' in kwargs: + sample_rate = kwargs['sampleRate'] + if audio_packing_mode is not None: - pulumi.set(__self__, "audio_packing_mode", audio_packing_mode) + _setter("audio_packing_mode", audio_packing_mode) if bit_rate is not None: - pulumi.set(__self__, "bit_rate", bit_rate) + _setter("bit_rate", bit_rate) if channels is not None: - pulumi.set(__self__, "channels", channels) + _setter("channels", channels) if codec is not None: - pulumi.set(__self__, "codec", codec) + _setter("codec", codec) if sample_rate is not None: - pulumi.set(__self__, "sample_rate", sample_rate) + _setter("sample_rate", sample_rate) @property @pulumi.getter(name="audioPackingMode") @@ -433,14 +539,35 @@ def __init__(__self__, *, :param str profile: If you specified AAC for Audio:Codec, choose the AAC profile for the output file. :param str signed: Whether audio samples are represented with negative and positive numbers (signed) or only positive numbers (unsigned). The supported value is Signed. (PCM Only) """ + PresetAudioCodecOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + bit_depth=bit_depth, + bit_order=bit_order, + profile=profile, + signed=signed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bit_depth: Optional[str] = None, + bit_order: Optional[str] = None, + profile: Optional[str] = None, + signed: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bit_depth is None and 'bitDepth' in kwargs: + bit_depth = kwargs['bitDepth'] + if bit_order is None and 'bitOrder' in kwargs: + bit_order = kwargs['bitOrder'] + if bit_depth is not None: - pulumi.set(__self__, "bit_depth", bit_depth) + _setter("bit_depth", bit_depth) if bit_order is not None: - pulumi.set(__self__, "bit_order", bit_order) + _setter("bit_order", bit_order) if profile is not None: - pulumi.set(__self__, "profile", profile) + _setter("profile", profile) if signed is not None: - pulumi.set(__self__, "signed", signed) + _setter("signed", signed) @property @pulumi.getter(name="bitDepth") @@ -521,22 +648,57 @@ def __init__(__self__, *, :param str resolution: The width and height of thumbnail files in pixels, in the format WidthxHeight, where both values are even integers. The values cannot exceed the width and height that you specified in the Video:Resolution object. (To better control resolution and aspect ratio of thumbnails, we recommend that you use the thumbnail values `max_width`, `max_height`, `sizing_policy`, and `padding_policy` instead of `resolution` and `aspect_ratio`. The two groups of settings are mutually exclusive. Do not use them together) :param str sizing_policy: A value that controls scaling of thumbnails. Valid values are: `Fit`, `Fill`, `Stretch`, `Keep`, `ShrinkToFit`, and `ShrinkToFill`. """ + PresetThumbnails._configure( + lambda key, value: pulumi.set(__self__, key, value), + aspect_ratio=aspect_ratio, + format=format, + interval=interval, + max_height=max_height, + max_width=max_width, + padding_policy=padding_policy, + resolution=resolution, + sizing_policy=sizing_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aspect_ratio: Optional[str] = None, + format: Optional[str] = None, + interval: Optional[str] = None, + max_height: Optional[str] = None, + max_width: Optional[str] = None, + padding_policy: Optional[str] = None, + resolution: Optional[str] = None, + sizing_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aspect_ratio is None and 'aspectRatio' in kwargs: + aspect_ratio = kwargs['aspectRatio'] + if max_height is None and 'maxHeight' in kwargs: + max_height = kwargs['maxHeight'] + if max_width is None and 'maxWidth' in kwargs: + max_width = kwargs['maxWidth'] + if padding_policy is None and 'paddingPolicy' in kwargs: + padding_policy = kwargs['paddingPolicy'] + if sizing_policy is None and 'sizingPolicy' in kwargs: + sizing_policy = kwargs['sizingPolicy'] + if aspect_ratio is not None: - pulumi.set(__self__, "aspect_ratio", aspect_ratio) + _setter("aspect_ratio", aspect_ratio) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if max_height is not None: - pulumi.set(__self__, "max_height", max_height) + _setter("max_height", max_height) if max_width is not None: - pulumi.set(__self__, "max_width", max_width) + _setter("max_width", max_width) if padding_policy is not None: - pulumi.set(__self__, "padding_policy", padding_policy) + _setter("padding_policy", padding_policy) if resolution is not None: - pulumi.set(__self__, "resolution", resolution) + _setter("resolution", resolution) if sizing_policy is not None: - pulumi.set(__self__, "sizing_policy", sizing_policy) + _setter("sizing_policy", sizing_policy) @property @pulumi.getter(name="aspectRatio") @@ -671,32 +833,89 @@ def __init__(__self__, *, :param str resolution: The width and height of the video in the output file, in pixels. Valid values are `auto` and `widthxheight`. (see note for `aspect_ratio`) :param str sizing_policy: A value that controls scaling of the output video. Valid values are: `Fit`, `Fill`, `Stretch`, `Keep`, `ShrinkToFit`, `ShrinkToFill`. """ + PresetVideo._configure( + lambda key, value: pulumi.set(__self__, key, value), + aspect_ratio=aspect_ratio, + bit_rate=bit_rate, + codec=codec, + display_aspect_ratio=display_aspect_ratio, + fixed_gop=fixed_gop, + frame_rate=frame_rate, + keyframes_max_dist=keyframes_max_dist, + max_frame_rate=max_frame_rate, + max_height=max_height, + max_width=max_width, + padding_policy=padding_policy, + resolution=resolution, + sizing_policy=sizing_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aspect_ratio: Optional[str] = None, + bit_rate: Optional[str] = None, + codec: Optional[str] = None, + display_aspect_ratio: Optional[str] = None, + fixed_gop: Optional[str] = None, + frame_rate: Optional[str] = None, + keyframes_max_dist: Optional[str] = None, + max_frame_rate: Optional[str] = None, + max_height: Optional[str] = None, + max_width: Optional[str] = None, + padding_policy: Optional[str] = None, + resolution: Optional[str] = None, + sizing_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aspect_ratio is None and 'aspectRatio' in kwargs: + aspect_ratio = kwargs['aspectRatio'] + if bit_rate is None and 'bitRate' in kwargs: + bit_rate = kwargs['bitRate'] + if display_aspect_ratio is None and 'displayAspectRatio' in kwargs: + display_aspect_ratio = kwargs['displayAspectRatio'] + if fixed_gop is None and 'fixedGop' in kwargs: + fixed_gop = kwargs['fixedGop'] + if frame_rate is None and 'frameRate' in kwargs: + frame_rate = kwargs['frameRate'] + if keyframes_max_dist is None and 'keyframesMaxDist' in kwargs: + keyframes_max_dist = kwargs['keyframesMaxDist'] + if max_frame_rate is None and 'maxFrameRate' in kwargs: + max_frame_rate = kwargs['maxFrameRate'] + if max_height is None and 'maxHeight' in kwargs: + max_height = kwargs['maxHeight'] + if max_width is None and 'maxWidth' in kwargs: + max_width = kwargs['maxWidth'] + if padding_policy is None and 'paddingPolicy' in kwargs: + padding_policy = kwargs['paddingPolicy'] + if sizing_policy is None and 'sizingPolicy' in kwargs: + sizing_policy = kwargs['sizingPolicy'] + if aspect_ratio is not None: - pulumi.set(__self__, "aspect_ratio", aspect_ratio) + _setter("aspect_ratio", aspect_ratio) if bit_rate is not None: - pulumi.set(__self__, "bit_rate", bit_rate) + _setter("bit_rate", bit_rate) if codec is not None: - pulumi.set(__self__, "codec", codec) + _setter("codec", codec) if display_aspect_ratio is not None: - pulumi.set(__self__, "display_aspect_ratio", display_aspect_ratio) + _setter("display_aspect_ratio", display_aspect_ratio) if fixed_gop is not None: - pulumi.set(__self__, "fixed_gop", fixed_gop) + _setter("fixed_gop", fixed_gop) if frame_rate is not None: - pulumi.set(__self__, "frame_rate", frame_rate) + _setter("frame_rate", frame_rate) if keyframes_max_dist is not None: - pulumi.set(__self__, "keyframes_max_dist", keyframes_max_dist) + _setter("keyframes_max_dist", keyframes_max_dist) if max_frame_rate is not None: - pulumi.set(__self__, "max_frame_rate", max_frame_rate) + _setter("max_frame_rate", max_frame_rate) if max_height is not None: - pulumi.set(__self__, "max_height", max_height) + _setter("max_height", max_height) if max_width is not None: - pulumi.set(__self__, "max_width", max_width) + _setter("max_width", max_width) if padding_policy is not None: - pulumi.set(__self__, "padding_policy", padding_policy) + _setter("padding_policy", padding_policy) if resolution is not None: - pulumi.set(__self__, "resolution", resolution) + _setter("resolution", resolution) if sizing_policy is not None: - pulumi.set(__self__, "sizing_policy", sizing_policy) + _setter("sizing_policy", sizing_policy) @property @pulumi.getter(name="aspectRatio") @@ -857,26 +1076,69 @@ def __init__(__self__, *, :param str vertical_align: The vertical position of the watermark unless you specify a nonzero value for `vertical_align`. Valid values are `Top`, `Bottom`, `Center`. :param str vertical_offset: The amount by which you want the vertical position of the watermark to be offset from the position specified by `vertical_align` """ + PresetVideoWatermark._configure( + lambda key, value: pulumi.set(__self__, key, value), + horizontal_align=horizontal_align, + horizontal_offset=horizontal_offset, + id=id, + max_height=max_height, + max_width=max_width, + opacity=opacity, + sizing_policy=sizing_policy, + target=target, + vertical_align=vertical_align, + vertical_offset=vertical_offset, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + horizontal_align: Optional[str] = None, + horizontal_offset: Optional[str] = None, + id: Optional[str] = None, + max_height: Optional[str] = None, + max_width: Optional[str] = None, + opacity: Optional[str] = None, + sizing_policy: Optional[str] = None, + target: Optional[str] = None, + vertical_align: Optional[str] = None, + vertical_offset: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if horizontal_align is None and 'horizontalAlign' in kwargs: + horizontal_align = kwargs['horizontalAlign'] + if horizontal_offset is None and 'horizontalOffset' in kwargs: + horizontal_offset = kwargs['horizontalOffset'] + if max_height is None and 'maxHeight' in kwargs: + max_height = kwargs['maxHeight'] + if max_width is None and 'maxWidth' in kwargs: + max_width = kwargs['maxWidth'] + if sizing_policy is None and 'sizingPolicy' in kwargs: + sizing_policy = kwargs['sizingPolicy'] + if vertical_align is None and 'verticalAlign' in kwargs: + vertical_align = kwargs['verticalAlign'] + if vertical_offset is None and 'verticalOffset' in kwargs: + vertical_offset = kwargs['verticalOffset'] + if horizontal_align is not None: - pulumi.set(__self__, "horizontal_align", horizontal_align) + _setter("horizontal_align", horizontal_align) if horizontal_offset is not None: - pulumi.set(__self__, "horizontal_offset", horizontal_offset) + _setter("horizontal_offset", horizontal_offset) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if max_height is not None: - pulumi.set(__self__, "max_height", max_height) + _setter("max_height", max_height) if max_width is not None: - pulumi.set(__self__, "max_width", max_width) + _setter("max_width", max_width) if opacity is not None: - pulumi.set(__self__, "opacity", opacity) + _setter("opacity", opacity) if sizing_policy is not None: - pulumi.set(__self__, "sizing_policy", sizing_policy) + _setter("sizing_policy", sizing_policy) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if vertical_align is not None: - pulumi.set(__self__, "vertical_align", vertical_align) + _setter("vertical_align", vertical_align) if vertical_offset is not None: - pulumi.set(__self__, "vertical_offset", vertical_offset) + _setter("vertical_offset", vertical_offset) @property @pulumi.getter(name="horizontalAlign") diff --git a/sdk/python/pulumi_aws/elastictranscoder/pipeline.py b/sdk/python/pulumi_aws/elastictranscoder/pipeline.py index 1f298482b70..d59d6b0f326 100644 --- a/sdk/python/pulumi_aws/elastictranscoder/pipeline.py +++ b/sdk/python/pulumi_aws/elastictranscoder/pipeline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -46,24 +46,71 @@ def __init__(__self__, *, `thumbnail_config`. If you specify values for `content_config` and `thumbnail_config`, omit the `output_bucket` object. """ - pulumi.set(__self__, "input_bucket", input_bucket) - pulumi.set(__self__, "role", role) + PipelineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_bucket=input_bucket, + role=role, + aws_kms_key_arn=aws_kms_key_arn, + content_config=content_config, + content_config_permissions=content_config_permissions, + name=name, + notifications=notifications, + output_bucket=output_bucket, + thumbnail_config=thumbnail_config, + thumbnail_config_permissions=thumbnail_config_permissions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_bucket: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + aws_kms_key_arn: Optional[pulumi.Input[str]] = None, + content_config: Optional[pulumi.Input['PipelineContentConfigArgs']] = None, + content_config_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineContentConfigPermissionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + notifications: Optional[pulumi.Input['PipelineNotificationsArgs']] = None, + output_bucket: Optional[pulumi.Input[str]] = None, + thumbnail_config: Optional[pulumi.Input['PipelineThumbnailConfigArgs']] = None, + thumbnail_config_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineThumbnailConfigPermissionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_bucket is None and 'inputBucket' in kwargs: + input_bucket = kwargs['inputBucket'] + if input_bucket is None: + raise TypeError("Missing 'input_bucket' argument") + if role is None: + raise TypeError("Missing 'role' argument") + if aws_kms_key_arn is None and 'awsKmsKeyArn' in kwargs: + aws_kms_key_arn = kwargs['awsKmsKeyArn'] + if content_config is None and 'contentConfig' in kwargs: + content_config = kwargs['contentConfig'] + if content_config_permissions is None and 'contentConfigPermissions' in kwargs: + content_config_permissions = kwargs['contentConfigPermissions'] + if output_bucket is None and 'outputBucket' in kwargs: + output_bucket = kwargs['outputBucket'] + if thumbnail_config is None and 'thumbnailConfig' in kwargs: + thumbnail_config = kwargs['thumbnailConfig'] + if thumbnail_config_permissions is None and 'thumbnailConfigPermissions' in kwargs: + thumbnail_config_permissions = kwargs['thumbnailConfigPermissions'] + + _setter("input_bucket", input_bucket) + _setter("role", role) if aws_kms_key_arn is not None: - pulumi.set(__self__, "aws_kms_key_arn", aws_kms_key_arn) + _setter("aws_kms_key_arn", aws_kms_key_arn) if content_config is not None: - pulumi.set(__self__, "content_config", content_config) + _setter("content_config", content_config) if content_config_permissions is not None: - pulumi.set(__self__, "content_config_permissions", content_config_permissions) + _setter("content_config_permissions", content_config_permissions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notifications is not None: - pulumi.set(__self__, "notifications", notifications) + _setter("notifications", notifications) if output_bucket is not None: - pulumi.set(__self__, "output_bucket", output_bucket) + _setter("output_bucket", output_bucket) if thumbnail_config is not None: - pulumi.set(__self__, "thumbnail_config", thumbnail_config) + _setter("thumbnail_config", thumbnail_config) if thumbnail_config_permissions is not None: - pulumi.set(__self__, "thumbnail_config_permissions", thumbnail_config_permissions) + _setter("thumbnail_config_permissions", thumbnail_config_permissions) @property @pulumi.getter(name="inputBucket") @@ -228,28 +275,73 @@ def __init__(__self__, *, `thumbnail_config`. If you specify values for `content_config` and `thumbnail_config`, omit the `output_bucket` object. """ + _PipelineState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_kms_key_arn=aws_kms_key_arn, + content_config=content_config, + content_config_permissions=content_config_permissions, + input_bucket=input_bucket, + name=name, + notifications=notifications, + output_bucket=output_bucket, + role=role, + thumbnail_config=thumbnail_config, + thumbnail_config_permissions=thumbnail_config_permissions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_kms_key_arn: Optional[pulumi.Input[str]] = None, + content_config: Optional[pulumi.Input['PipelineContentConfigArgs']] = None, + content_config_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineContentConfigPermissionArgs']]]] = None, + input_bucket: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notifications: Optional[pulumi.Input['PipelineNotificationsArgs']] = None, + output_bucket: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + thumbnail_config: Optional[pulumi.Input['PipelineThumbnailConfigArgs']] = None, + thumbnail_config_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineThumbnailConfigPermissionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_kms_key_arn is None and 'awsKmsKeyArn' in kwargs: + aws_kms_key_arn = kwargs['awsKmsKeyArn'] + if content_config is None and 'contentConfig' in kwargs: + content_config = kwargs['contentConfig'] + if content_config_permissions is None and 'contentConfigPermissions' in kwargs: + content_config_permissions = kwargs['contentConfigPermissions'] + if input_bucket is None and 'inputBucket' in kwargs: + input_bucket = kwargs['inputBucket'] + if output_bucket is None and 'outputBucket' in kwargs: + output_bucket = kwargs['outputBucket'] + if thumbnail_config is None and 'thumbnailConfig' in kwargs: + thumbnail_config = kwargs['thumbnailConfig'] + if thumbnail_config_permissions is None and 'thumbnailConfigPermissions' in kwargs: + thumbnail_config_permissions = kwargs['thumbnailConfigPermissions'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_kms_key_arn is not None: - pulumi.set(__self__, "aws_kms_key_arn", aws_kms_key_arn) + _setter("aws_kms_key_arn", aws_kms_key_arn) if content_config is not None: - pulumi.set(__self__, "content_config", content_config) + _setter("content_config", content_config) if content_config_permissions is not None: - pulumi.set(__self__, "content_config_permissions", content_config_permissions) + _setter("content_config_permissions", content_config_permissions) if input_bucket is not None: - pulumi.set(__self__, "input_bucket", input_bucket) + _setter("input_bucket", input_bucket) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notifications is not None: - pulumi.set(__self__, "notifications", notifications) + _setter("notifications", notifications) if output_bucket is not None: - pulumi.set(__self__, "output_bucket", output_bucket) + _setter("output_bucket", output_bucket) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) if thumbnail_config is not None: - pulumi.set(__self__, "thumbnail_config", thumbnail_config) + _setter("thumbnail_config", thumbnail_config) if thumbnail_config_permissions is not None: - pulumi.set(__self__, "thumbnail_config_permissions", thumbnail_config_permissions) + _setter("thumbnail_config_permissions", thumbnail_config_permissions) @property @pulumi.getter @@ -503,6 +595,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PipelineArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -528,17 +624,20 @@ def _internal_init(__self__, __props__ = PipelineArgs.__new__(PipelineArgs) __props__.__dict__["aws_kms_key_arn"] = aws_kms_key_arn + content_config = _utilities.configure(content_config, PipelineContentConfigArgs, True) __props__.__dict__["content_config"] = content_config __props__.__dict__["content_config_permissions"] = content_config_permissions if input_bucket is None and not opts.urn: raise TypeError("Missing required property 'input_bucket'") __props__.__dict__["input_bucket"] = input_bucket __props__.__dict__["name"] = name + notifications = _utilities.configure(notifications, PipelineNotificationsArgs, True) __props__.__dict__["notifications"] = notifications __props__.__dict__["output_bucket"] = output_bucket if role is None and not opts.urn: raise TypeError("Missing required property 'role'") __props__.__dict__["role"] = role + thumbnail_config = _utilities.configure(thumbnail_config, PipelineThumbnailConfigArgs, True) __props__.__dict__["thumbnail_config"] = thumbnail_config __props__.__dict__["thumbnail_config_permissions"] = thumbnail_config_permissions __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/elastictranscoder/preset.py b/sdk/python/pulumi_aws/elastictranscoder/preset.py index dccabd83737..216bda68ead 100644 --- a/sdk/python/pulumi_aws/elastictranscoder/preset.py +++ b/sdk/python/pulumi_aws/elastictranscoder/preset.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -38,25 +38,62 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] video_codec_options: Codec options for the video parameters :param pulumi.Input[Sequence[pulumi.Input['PresetVideoWatermarkArgs']]] video_watermarks: Watermark parameters for the video parameters (documented below) """ - pulumi.set(__self__, "container", container) + PresetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container=container, + audio=audio, + audio_codec_options=audio_codec_options, + description=description, + name=name, + thumbnails=thumbnails, + type=type, + video=video, + video_codec_options=video_codec_options, + video_watermarks=video_watermarks, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container: Optional[pulumi.Input[str]] = None, + audio: Optional[pulumi.Input['PresetAudioArgs']] = None, + audio_codec_options: Optional[pulumi.Input['PresetAudioCodecOptionsArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + thumbnails: Optional[pulumi.Input['PresetThumbnailsArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + video: Optional[pulumi.Input['PresetVideoArgs']] = None, + video_codec_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + video_watermarks: Optional[pulumi.Input[Sequence[pulumi.Input['PresetVideoWatermarkArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container is None: + raise TypeError("Missing 'container' argument") + if audio_codec_options is None and 'audioCodecOptions' in kwargs: + audio_codec_options = kwargs['audioCodecOptions'] + if video_codec_options is None and 'videoCodecOptions' in kwargs: + video_codec_options = kwargs['videoCodecOptions'] + if video_watermarks is None and 'videoWatermarks' in kwargs: + video_watermarks = kwargs['videoWatermarks'] + + _setter("container", container) if audio is not None: - pulumi.set(__self__, "audio", audio) + _setter("audio", audio) if audio_codec_options is not None: - pulumi.set(__self__, "audio_codec_options", audio_codec_options) + _setter("audio_codec_options", audio_codec_options) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if thumbnails is not None: - pulumi.set(__self__, "thumbnails", thumbnails) + _setter("thumbnails", thumbnails) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if video is not None: - pulumi.set(__self__, "video", video) + _setter("video", video) if video_codec_options is not None: - pulumi.set(__self__, "video_codec_options", video_codec_options) + _setter("video_codec_options", video_codec_options) if video_watermarks is not None: - pulumi.set(__self__, "video_watermarks", video_watermarks) + _setter("video_watermarks", video_watermarks) @property @pulumi.getter @@ -203,28 +240,65 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] video_codec_options: Codec options for the video parameters :param pulumi.Input[Sequence[pulumi.Input['PresetVideoWatermarkArgs']]] video_watermarks: Watermark parameters for the video parameters (documented below) """ + _PresetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + audio=audio, + audio_codec_options=audio_codec_options, + container=container, + description=description, + name=name, + thumbnails=thumbnails, + type=type, + video=video, + video_codec_options=video_codec_options, + video_watermarks=video_watermarks, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + audio: Optional[pulumi.Input['PresetAudioArgs']] = None, + audio_codec_options: Optional[pulumi.Input['PresetAudioCodecOptionsArgs']] = None, + container: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + thumbnails: Optional[pulumi.Input['PresetThumbnailsArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + video: Optional[pulumi.Input['PresetVideoArgs']] = None, + video_codec_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + video_watermarks: Optional[pulumi.Input[Sequence[pulumi.Input['PresetVideoWatermarkArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_codec_options is None and 'audioCodecOptions' in kwargs: + audio_codec_options = kwargs['audioCodecOptions'] + if video_codec_options is None and 'videoCodecOptions' in kwargs: + video_codec_options = kwargs['videoCodecOptions'] + if video_watermarks is None and 'videoWatermarks' in kwargs: + video_watermarks = kwargs['videoWatermarks'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if audio is not None: - pulumi.set(__self__, "audio", audio) + _setter("audio", audio) if audio_codec_options is not None: - pulumi.set(__self__, "audio_codec_options", audio_codec_options) + _setter("audio_codec_options", audio_codec_options) if container is not None: - pulumi.set(__self__, "container", container) + _setter("container", container) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if thumbnails is not None: - pulumi.set(__self__, "thumbnails", thumbnails) + _setter("thumbnails", thumbnails) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if video is not None: - pulumi.set(__self__, "video", video) + _setter("video", video) if video_codec_options is not None: - pulumi.set(__self__, "video_codec_options", video_codec_options) + _setter("video_codec_options", video_codec_options) if video_watermarks is not None: - pulumi.set(__self__, "video_watermarks", video_watermarks) + _setter("video_watermarks", video_watermarks) @property @pulumi.getter @@ -544,6 +618,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PresetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -568,15 +646,19 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = PresetArgs.__new__(PresetArgs) + audio = _utilities.configure(audio, PresetAudioArgs, True) __props__.__dict__["audio"] = audio + audio_codec_options = _utilities.configure(audio_codec_options, PresetAudioCodecOptionsArgs, True) __props__.__dict__["audio_codec_options"] = audio_codec_options if container is None and not opts.urn: raise TypeError("Missing required property 'container'") __props__.__dict__["container"] = container __props__.__dict__["description"] = description __props__.__dict__["name"] = name + thumbnails = _utilities.configure(thumbnails, PresetThumbnailsArgs, True) __props__.__dict__["thumbnails"] = thumbnails __props__.__dict__["type"] = type + video = _utilities.configure(video, PresetVideoArgs, True) __props__.__dict__["video"] = video __props__.__dict__["video_codec_options"] = video_codec_options __props__.__dict__["video_watermarks"] = video_watermarks diff --git a/sdk/python/pulumi_aws/elb/_inputs.py b/sdk/python/pulumi_aws/elb/_inputs.py index b396f13b881..14bc1f03fef 100644 --- a/sdk/python/pulumi_aws/elb/_inputs.py +++ b/sdk/python/pulumi_aws/elb/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -30,13 +30,34 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Boolean to enable / disable `access_logs`. Default is `true` :param pulumi.Input[int] interval: The publishing interval in minutes. Valid values: `5` and `60`. Default: `60` """ - pulumi.set(__self__, "bucket", bucket) + LoadBalancerAccessLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + bucket_prefix=bucket_prefix, + enabled=enabled, + interval=interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + interval: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + + _setter("bucket", bucket) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) @property @pulumi.getter @@ -103,11 +124,44 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout: The length of time before the check times out. :param pulumi.Input[int] unhealthy_threshold: The number of checks before the instance is declared unhealthy. """ - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "target", target) - pulumi.set(__self__, "timeout", timeout) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + LoadBalancerHealthCheckArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval=interval, + target=target, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[pulumi.Input[int]] = None, + interval: Optional[pulumi.Input[int]] = None, + target: Optional[pulumi.Input[str]] = None, + timeout: Optional[pulumi.Input[int]] = None, + unhealthy_threshold: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval is None: + raise TypeError("Missing 'interval' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if timeout is None: + raise TypeError("Missing 'timeout' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("healthy_threshold", healthy_threshold) + _setter("interval", interval) + _setter("target", target) + _setter("timeout", timeout) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter(name="healthyThreshold") @@ -189,12 +243,49 @@ def __init__(__self__, *, :param pulumi.Input[str] ssl_certificate_id: The ARN of an SSL certificate you have uploaded to AWS IAM. **Note ECDSA-specific restrictions below. Only valid when `lb_protocol` is either HTTPS or SSL** """ - pulumi.set(__self__, "instance_port", instance_port) - pulumi.set(__self__, "instance_protocol", instance_protocol) - pulumi.set(__self__, "lb_port", lb_port) - pulumi.set(__self__, "lb_protocol", lb_protocol) + LoadBalancerListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_port=instance_port, + instance_protocol=instance_protocol, + lb_port=lb_port, + lb_protocol=lb_protocol, + ssl_certificate_id=ssl_certificate_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_port: Optional[pulumi.Input[int]] = None, + instance_protocol: Optional[pulumi.Input[str]] = None, + lb_port: Optional[pulumi.Input[int]] = None, + lb_protocol: Optional[pulumi.Input[str]] = None, + ssl_certificate_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if instance_port is None: + raise TypeError("Missing 'instance_port' argument") + if instance_protocol is None and 'instanceProtocol' in kwargs: + instance_protocol = kwargs['instanceProtocol'] + if instance_protocol is None: + raise TypeError("Missing 'instance_protocol' argument") + if lb_port is None and 'lbPort' in kwargs: + lb_port = kwargs['lbPort'] + if lb_port is None: + raise TypeError("Missing 'lb_port' argument") + if lb_protocol is None and 'lbProtocol' in kwargs: + lb_protocol = kwargs['lbProtocol'] + if lb_protocol is None: + raise TypeError("Missing 'lb_protocol' argument") + if ssl_certificate_id is None and 'sslCertificateId' in kwargs: + ssl_certificate_id = kwargs['sslCertificateId'] + + _setter("instance_port", instance_port) + _setter("instance_protocol", instance_protocol) + _setter("lb_port", lb_port) + _setter("lb_protocol", lb_protocol) if ssl_certificate_id is not None: - pulumi.set(__self__, "ssl_certificate_id", ssl_certificate_id) + _setter("ssl_certificate_id", ssl_certificate_id) @property @pulumi.getter(name="instancePort") @@ -265,10 +356,23 @@ class LoadBalancerPolicyPolicyAttributeArgs: def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, value: Optional[pulumi.Input[str]] = None): + LoadBalancerPolicyPolicyAttributeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -298,8 +402,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the attribute :param pulumi.Input[str] value: The value of the attribute """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + SslNegotiationPolicyAttributeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/elb/app_cookie_stickiness_policy.py b/sdk/python/pulumi_aws/elb/app_cookie_stickiness_policy.py index 508bd198eb0..c6ca9bc3255 100644 --- a/sdk/python/pulumi_aws/elb/app_cookie_stickiness_policy.py +++ b/sdk/python/pulumi_aws/elb/app_cookie_stickiness_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AppCookieStickinessPolicyArgs', 'AppCookieStickinessPolicy'] @@ -28,11 +28,40 @@ def __init__(__self__, *, should be attached. :param pulumi.Input[str] name: Name of the stickiness policy. """ - pulumi.set(__self__, "cookie_name", cookie_name) - pulumi.set(__self__, "lb_port", lb_port) - pulumi.set(__self__, "load_balancer", load_balancer) + AppCookieStickinessPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_name=cookie_name, + lb_port=lb_port, + load_balancer=load_balancer, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_name: Optional[pulumi.Input[str]] = None, + lb_port: Optional[pulumi.Input[int]] = None, + load_balancer: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_name is None and 'cookieName' in kwargs: + cookie_name = kwargs['cookieName'] + if cookie_name is None: + raise TypeError("Missing 'cookie_name' argument") + if lb_port is None and 'lbPort' in kwargs: + lb_port = kwargs['lbPort'] + if lb_port is None: + raise TypeError("Missing 'lb_port' argument") + if load_balancer is None and 'loadBalancer' in kwargs: + load_balancer = kwargs['loadBalancer'] + if load_balancer is None: + raise TypeError("Missing 'load_balancer' argument") + + _setter("cookie_name", cookie_name) + _setter("lb_port", lb_port) + _setter("load_balancer", load_balancer) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="cookieName") @@ -103,14 +132,37 @@ def __init__(__self__, *, should be attached. :param pulumi.Input[str] name: Name of the stickiness policy. """ + _AppCookieStickinessPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_name=cookie_name, + lb_port=lb_port, + load_balancer=load_balancer, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_name: Optional[pulumi.Input[str]] = None, + lb_port: Optional[pulumi.Input[int]] = None, + load_balancer: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_name is None and 'cookieName' in kwargs: + cookie_name = kwargs['cookieName'] + if lb_port is None and 'lbPort' in kwargs: + lb_port = kwargs['lbPort'] + if load_balancer is None and 'loadBalancer' in kwargs: + load_balancer = kwargs['loadBalancer'] + if cookie_name is not None: - pulumi.set(__self__, "cookie_name", cookie_name) + _setter("cookie_name", cookie_name) if lb_port is not None: - pulumi.set(__self__, "lb_port", lb_port) + _setter("lb_port", lb_port) if load_balancer is not None: - pulumi.set(__self__, "load_balancer", load_balancer) + _setter("load_balancer", load_balancer) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="cookieName") @@ -262,6 +314,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AppCookieStickinessPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elb/attachment.py b/sdk/python/pulumi_aws/elb/attachment.py index 3e3ead7bda9..b06b544d94b 100644 --- a/sdk/python/pulumi_aws/elb/attachment.py +++ b/sdk/python/pulumi_aws/elb/attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AttachmentArgs', 'Attachment'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] elb: The name of the ELB. :param pulumi.Input[str] instance: Instance ID to place in the ELB pool. """ - pulumi.set(__self__, "elb", elb) - pulumi.set(__self__, "instance", instance) + AttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + elb=elb, + instance=instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + elb: Optional[pulumi.Input[str]] = None, + instance: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if elb is None: + raise TypeError("Missing 'elb' argument") + if instance is None: + raise TypeError("Missing 'instance' argument") + + _setter("elb", elb) + _setter("instance", instance) @property @pulumi.getter @@ -59,10 +76,23 @@ def __init__(__self__, *, :param pulumi.Input[str] elb: The name of the ELB. :param pulumi.Input[str] instance: Instance ID to place in the ELB pool. """ + _AttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + elb=elb, + instance=instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + elb: Optional[pulumi.Input[str]] = None, + instance: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if elb is not None: - pulumi.set(__self__, "elb", elb) + _setter("elb", elb) if instance is not None: - pulumi.set(__self__, "instance", instance) + _setter("instance", instance) @property @pulumi.getter @@ -162,6 +192,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elb/get_hosted_zone_id.py b/sdk/python/pulumi_aws/elb/get_hosted_zone_id.py index 84948ae847c..97d5d6907e2 100644 --- a/sdk/python/pulumi_aws/elb/get_hosted_zone_id.py +++ b/sdk/python/pulumi_aws/elb/get_hosted_zone_id.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/elb/get_load_balancer.py b/sdk/python/pulumi_aws/elb/get_load_balancer.py index 09d837833fa..f7eef395a6a 100644 --- a/sdk/python/pulumi_aws/elb/get_load_balancer.py +++ b/sdk/python/pulumi_aws/elb/get_load_balancer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/elb/get_service_account.py b/sdk/python/pulumi_aws/elb/get_service_account.py index f83d95915b3..ef043e2f553 100644 --- a/sdk/python/pulumi_aws/elb/get_service_account.py +++ b/sdk/python/pulumi_aws/elb/get_service_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/elb/listener_policy.py b/sdk/python/pulumi_aws/elb/listener_policy.py index 8c3205aa350..38ca3f61a71 100644 --- a/sdk/python/pulumi_aws/elb/listener_policy.py +++ b/sdk/python/pulumi_aws/elb/listener_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ListenerPolicyArgs', 'ListenerPolicy'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: List of Policy Names to apply to the backend server. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger an update. """ - pulumi.set(__self__, "load_balancer_name", load_balancer_name) - pulumi.set(__self__, "load_balancer_port", load_balancer_port) + ListenerPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + load_balancer_name=load_balancer_name, + load_balancer_port=load_balancer_port, + policy_names=policy_names, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + load_balancer_name: Optional[pulumi.Input[str]] = None, + load_balancer_port: Optional[pulumi.Input[int]] = None, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if load_balancer_name is None and 'loadBalancerName' in kwargs: + load_balancer_name = kwargs['loadBalancerName'] + if load_balancer_name is None: + raise TypeError("Missing 'load_balancer_name' argument") + if load_balancer_port is None and 'loadBalancerPort' in kwargs: + load_balancer_port = kwargs['loadBalancerPort'] + if load_balancer_port is None: + raise TypeError("Missing 'load_balancer_port' argument") + if policy_names is None and 'policyNames' in kwargs: + policy_names = kwargs['policyNames'] + + _setter("load_balancer_name", load_balancer_name) + _setter("load_balancer_port", load_balancer_port) if policy_names is not None: - pulumi.set(__self__, "policy_names", policy_names) + _setter("policy_names", policy_names) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter(name="loadBalancerName") @@ -95,14 +122,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: List of Policy Names to apply to the backend server. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger an update. """ + _ListenerPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + load_balancer_name=load_balancer_name, + load_balancer_port=load_balancer_port, + policy_names=policy_names, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + load_balancer_name: Optional[pulumi.Input[str]] = None, + load_balancer_port: Optional[pulumi.Input[int]] = None, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if load_balancer_name is None and 'loadBalancerName' in kwargs: + load_balancer_name = kwargs['loadBalancerName'] + if load_balancer_port is None and 'loadBalancerPort' in kwargs: + load_balancer_port = kwargs['loadBalancerPort'] + if policy_names is None and 'policyNames' in kwargs: + policy_names = kwargs['policyNames'] + if load_balancer_name is not None: - pulumi.set(__self__, "load_balancer_name", load_balancer_name) + _setter("load_balancer_name", load_balancer_name) if load_balancer_port is not None: - pulumi.set(__self__, "load_balancer_port", load_balancer_port) + _setter("load_balancer_port", load_balancer_port) if policy_names is not None: - pulumi.set(__self__, "policy_names", policy_names) + _setter("policy_names", policy_names) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter(name="loadBalancerName") @@ -340,6 +390,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elb/load_balancer.py b/sdk/python/pulumi_aws/elb/load_balancer.py index a40fb814f2f..b519eef562f 100644 --- a/sdk/python/pulumi_aws/elb/load_balancer.py +++ b/sdk/python/pulumi_aws/elb/load_balancer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -60,39 +60,106 @@ def __init__(__self__, *, Exactly one of `availability_zones` or `subnets` must be specified: this determines if the ELB exists in a VPC or in EC2-classic. """ - pulumi.set(__self__, "listeners", listeners) + LoadBalancerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + listeners=listeners, + access_logs=access_logs, + availability_zones=availability_zones, + connection_draining=connection_draining, + connection_draining_timeout=connection_draining_timeout, + cross_zone_load_balancing=cross_zone_load_balancing, + desync_mitigation_mode=desync_mitigation_mode, + health_check=health_check, + idle_timeout=idle_timeout, + instances=instances, + internal=internal, + name=name, + name_prefix=name_prefix, + security_groups=security_groups, + source_security_group=source_security_group, + subnets=subnets, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listeners: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerListenerArgs']]]] = None, + access_logs: Optional[pulumi.Input['LoadBalancerAccessLogsArgs']] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + connection_draining: Optional[pulumi.Input[bool]] = None, + connection_draining_timeout: Optional[pulumi.Input[int]] = None, + cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, + desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + health_check: Optional[pulumi.Input['LoadBalancerHealthCheckArgs']] = None, + idle_timeout: Optional[pulumi.Input[int]] = None, + instances: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + internal: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_security_group: Optional[pulumi.Input[str]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listeners is None: + raise TypeError("Missing 'listeners' argument") + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if connection_draining is None and 'connectionDraining' in kwargs: + connection_draining = kwargs['connectionDraining'] + if connection_draining_timeout is None and 'connectionDrainingTimeout' in kwargs: + connection_draining_timeout = kwargs['connectionDrainingTimeout'] + if cross_zone_load_balancing is None and 'crossZoneLoadBalancing' in kwargs: + cross_zone_load_balancing = kwargs['crossZoneLoadBalancing'] + if desync_mitigation_mode is None and 'desyncMitigationMode' in kwargs: + desync_mitigation_mode = kwargs['desyncMitigationMode'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if idle_timeout is None and 'idleTimeout' in kwargs: + idle_timeout = kwargs['idleTimeout'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_security_group is None and 'sourceSecurityGroup' in kwargs: + source_security_group = kwargs['sourceSecurityGroup'] + + _setter("listeners", listeners) if access_logs is not None: - pulumi.set(__self__, "access_logs", access_logs) + _setter("access_logs", access_logs) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if connection_draining is not None: - pulumi.set(__self__, "connection_draining", connection_draining) + _setter("connection_draining", connection_draining) if connection_draining_timeout is not None: - pulumi.set(__self__, "connection_draining_timeout", connection_draining_timeout) + _setter("connection_draining_timeout", connection_draining_timeout) if cross_zone_load_balancing is not None: - pulumi.set(__self__, "cross_zone_load_balancing", cross_zone_load_balancing) + _setter("cross_zone_load_balancing", cross_zone_load_balancing) if desync_mitigation_mode is not None: - pulumi.set(__self__, "desync_mitigation_mode", desync_mitigation_mode) + _setter("desync_mitigation_mode", desync_mitigation_mode) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + _setter("idle_timeout", idle_timeout) if instances is not None: - pulumi.set(__self__, "instances", instances) + _setter("instances", instances) if internal is not None: - pulumi.set(__self__, "internal", internal) + _setter("internal", internal) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_security_group is not None: - pulumi.set(__self__, "source_security_group", source_security_group) + _setter("source_security_group", source_security_group) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -365,53 +432,136 @@ def __init__(__self__, *, :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] zone_id: The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record) """ + _LoadBalancerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_logs=access_logs, + arn=arn, + availability_zones=availability_zones, + connection_draining=connection_draining, + connection_draining_timeout=connection_draining_timeout, + cross_zone_load_balancing=cross_zone_load_balancing, + desync_mitigation_mode=desync_mitigation_mode, + dns_name=dns_name, + health_check=health_check, + idle_timeout=idle_timeout, + instances=instances, + internal=internal, + listeners=listeners, + name=name, + name_prefix=name_prefix, + security_groups=security_groups, + source_security_group=source_security_group, + source_security_group_id=source_security_group_id, + subnets=subnets, + tags=tags, + tags_all=tags_all, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_logs: Optional[pulumi.Input['LoadBalancerAccessLogsArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + connection_draining: Optional[pulumi.Input[bool]] = None, + connection_draining_timeout: Optional[pulumi.Input[int]] = None, + cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, + desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + health_check: Optional[pulumi.Input['LoadBalancerHealthCheckArgs']] = None, + idle_timeout: Optional[pulumi.Input[int]] = None, + instances: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + internal: Optional[pulumi.Input[bool]] = None, + listeners: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerListenerArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_security_group: Optional[pulumi.Input[str]] = None, + source_security_group_id: Optional[pulumi.Input[str]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if connection_draining is None and 'connectionDraining' in kwargs: + connection_draining = kwargs['connectionDraining'] + if connection_draining_timeout is None and 'connectionDrainingTimeout' in kwargs: + connection_draining_timeout = kwargs['connectionDrainingTimeout'] + if cross_zone_load_balancing is None and 'crossZoneLoadBalancing' in kwargs: + cross_zone_load_balancing = kwargs['crossZoneLoadBalancing'] + if desync_mitigation_mode is None and 'desyncMitigationMode' in kwargs: + desync_mitigation_mode = kwargs['desyncMitigationMode'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if idle_timeout is None and 'idleTimeout' in kwargs: + idle_timeout = kwargs['idleTimeout'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if source_security_group is None and 'sourceSecurityGroup' in kwargs: + source_security_group = kwargs['sourceSecurityGroup'] + if source_security_group_id is None and 'sourceSecurityGroupId' in kwargs: + source_security_group_id = kwargs['sourceSecurityGroupId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if access_logs is not None: - pulumi.set(__self__, "access_logs", access_logs) + _setter("access_logs", access_logs) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if connection_draining is not None: - pulumi.set(__self__, "connection_draining", connection_draining) + _setter("connection_draining", connection_draining) if connection_draining_timeout is not None: - pulumi.set(__self__, "connection_draining_timeout", connection_draining_timeout) + _setter("connection_draining_timeout", connection_draining_timeout) if cross_zone_load_balancing is not None: - pulumi.set(__self__, "cross_zone_load_balancing", cross_zone_load_balancing) + _setter("cross_zone_load_balancing", cross_zone_load_balancing) if desync_mitigation_mode is not None: - pulumi.set(__self__, "desync_mitigation_mode", desync_mitigation_mode) + _setter("desync_mitigation_mode", desync_mitigation_mode) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + _setter("idle_timeout", idle_timeout) if instances is not None: - pulumi.set(__self__, "instances", instances) + _setter("instances", instances) if internal is not None: - pulumi.set(__self__, "internal", internal) + _setter("internal", internal) if listeners is not None: - pulumi.set(__self__, "listeners", listeners) + _setter("listeners", listeners) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if source_security_group is not None: - pulumi.set(__self__, "source_security_group", source_security_group) + _setter("source_security_group", source_security_group) if source_security_group_id is not None: - pulumi.set(__self__, "source_security_group_id", source_security_group_id) + _setter("source_security_group_id", source_security_group_id) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if zone_id is not None: - pulumi.set(__self__, "zone_id", zone_id) + _setter("zone_id", zone_id) @property @pulumi.getter(name="accessLogs") @@ -910,6 +1060,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LoadBalancerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -941,12 +1095,14 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = LoadBalancerArgs.__new__(LoadBalancerArgs) + access_logs = _utilities.configure(access_logs, LoadBalancerAccessLogsArgs, True) __props__.__dict__["access_logs"] = access_logs __props__.__dict__["availability_zones"] = availability_zones __props__.__dict__["connection_draining"] = connection_draining __props__.__dict__["connection_draining_timeout"] = connection_draining_timeout __props__.__dict__["cross_zone_load_balancing"] = cross_zone_load_balancing __props__.__dict__["desync_mitigation_mode"] = desync_mitigation_mode + health_check = _utilities.configure(health_check, LoadBalancerHealthCheckArgs, True) __props__.__dict__["health_check"] = health_check __props__.__dict__["idle_timeout"] = idle_timeout __props__.__dict__["instances"] = instances diff --git a/sdk/python/pulumi_aws/elb/load_balancer_backend_server_policy.py b/sdk/python/pulumi_aws/elb/load_balancer_backend_server_policy.py index c91c38ffa8c..7dc85539c4f 100644 --- a/sdk/python/pulumi_aws/elb/load_balancer_backend_server_policy.py +++ b/sdk/python/pulumi_aws/elb/load_balancer_backend_server_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LoadBalancerBackendServerPolicyArgs', 'LoadBalancerBackendServerPolicy'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] load_balancer_name: The load balancer to attach the policy to. :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: List of Policy Names to apply to the backend server. """ - pulumi.set(__self__, "instance_port", instance_port) - pulumi.set(__self__, "load_balancer_name", load_balancer_name) + LoadBalancerBackendServerPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_port=instance_port, + load_balancer_name=load_balancer_name, + policy_names=policy_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_port: Optional[pulumi.Input[int]] = None, + load_balancer_name: Optional[pulumi.Input[str]] = None, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if instance_port is None: + raise TypeError("Missing 'instance_port' argument") + if load_balancer_name is None and 'loadBalancerName' in kwargs: + load_balancer_name = kwargs['loadBalancerName'] + if load_balancer_name is None: + raise TypeError("Missing 'load_balancer_name' argument") + if policy_names is None and 'policyNames' in kwargs: + policy_names = kwargs['policyNames'] + + _setter("instance_port", instance_port) + _setter("load_balancer_name", load_balancer_name) if policy_names is not None: - pulumi.set(__self__, "policy_names", policy_names) + _setter("policy_names", policy_names) @property @pulumi.getter(name="instancePort") @@ -77,12 +102,33 @@ def __init__(__self__, *, :param pulumi.Input[str] load_balancer_name: The load balancer to attach the policy to. :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: List of Policy Names to apply to the backend server. """ + _LoadBalancerBackendServerPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_port=instance_port, + load_balancer_name=load_balancer_name, + policy_names=policy_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_port: Optional[pulumi.Input[int]] = None, + load_balancer_name: Optional[pulumi.Input[str]] = None, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if load_balancer_name is None and 'loadBalancerName' in kwargs: + load_balancer_name = kwargs['loadBalancerName'] + if policy_names is None and 'policyNames' in kwargs: + policy_names = kwargs['policyNames'] + if instance_port is not None: - pulumi.set(__self__, "instance_port", instance_port) + _setter("instance_port", instance_port) if load_balancer_name is not None: - pulumi.set(__self__, "load_balancer_name", load_balancer_name) + _setter("load_balancer_name", load_balancer_name) if policy_names is not None: - pulumi.set(__self__, "policy_names", policy_names) + _setter("policy_names", policy_names) @property @pulumi.getter(name="instancePort") @@ -238,6 +284,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LoadBalancerBackendServerPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elb/load_balancer_cookie_stickiness_policy.py b/sdk/python/pulumi_aws/elb/load_balancer_cookie_stickiness_policy.py index 32993b48d48..3711ce8945e 100644 --- a/sdk/python/pulumi_aws/elb/load_balancer_cookie_stickiness_policy.py +++ b/sdk/python/pulumi_aws/elb/load_balancer_cookie_stickiness_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LoadBalancerCookieStickinessPolicyArgs', 'LoadBalancerCookieStickinessPolicy'] @@ -29,12 +29,39 @@ def __init__(__self__, *, the session cookie should be considered stale, expressed in seconds. :param pulumi.Input[str] name: The name of the stickiness policy. """ - pulumi.set(__self__, "lb_port", lb_port) - pulumi.set(__self__, "load_balancer", load_balancer) + LoadBalancerCookieStickinessPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lb_port=lb_port, + load_balancer=load_balancer, + cookie_expiration_period=cookie_expiration_period, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lb_port: Optional[pulumi.Input[int]] = None, + load_balancer: Optional[pulumi.Input[str]] = None, + cookie_expiration_period: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lb_port is None and 'lbPort' in kwargs: + lb_port = kwargs['lbPort'] + if lb_port is None: + raise TypeError("Missing 'lb_port' argument") + if load_balancer is None and 'loadBalancer' in kwargs: + load_balancer = kwargs['loadBalancer'] + if load_balancer is None: + raise TypeError("Missing 'load_balancer' argument") + if cookie_expiration_period is None and 'cookieExpirationPeriod' in kwargs: + cookie_expiration_period = kwargs['cookieExpirationPeriod'] + + _setter("lb_port", lb_port) + _setter("load_balancer", load_balancer) if cookie_expiration_period is not None: - pulumi.set(__self__, "cookie_expiration_period", cookie_expiration_period) + _setter("cookie_expiration_period", cookie_expiration_period) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="lbPort") @@ -107,14 +134,37 @@ def __init__(__self__, *, should be attached. :param pulumi.Input[str] name: The name of the stickiness policy. """ + _LoadBalancerCookieStickinessPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_expiration_period=cookie_expiration_period, + lb_port=lb_port, + load_balancer=load_balancer, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_expiration_period: Optional[pulumi.Input[int]] = None, + lb_port: Optional[pulumi.Input[int]] = None, + load_balancer: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_expiration_period is None and 'cookieExpirationPeriod' in kwargs: + cookie_expiration_period = kwargs['cookieExpirationPeriod'] + if lb_port is None and 'lbPort' in kwargs: + lb_port = kwargs['lbPort'] + if load_balancer is None and 'loadBalancer' in kwargs: + load_balancer = kwargs['loadBalancer'] + if cookie_expiration_period is not None: - pulumi.set(__self__, "cookie_expiration_period", cookie_expiration_period) + _setter("cookie_expiration_period", cookie_expiration_period) if lb_port is not None: - pulumi.set(__self__, "lb_port", lb_port) + _setter("lb_port", lb_port) if load_balancer is not None: - pulumi.set(__self__, "load_balancer", load_balancer) + _setter("load_balancer", load_balancer) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="cookieExpirationPeriod") @@ -252,6 +302,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LoadBalancerCookieStickinessPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elb/load_balancer_policy.py b/sdk/python/pulumi_aws/elb/load_balancer_policy.py index 01e82949149..b83a9905f7f 100644 --- a/sdk/python/pulumi_aws/elb/load_balancer_policy.py +++ b/sdk/python/pulumi_aws/elb/load_balancer_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,11 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_type_name: The policy type. :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerPolicyPolicyAttributeArgs']]] policy_attributes: Policy attribute to apply to the policy. """ - pulumi.set(__self__, "load_balancer_name", load_balancer_name) - pulumi.set(__self__, "policy_name", policy_name) - pulumi.set(__self__, "policy_type_name", policy_type_name) + LoadBalancerPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + load_balancer_name=load_balancer_name, + policy_name=policy_name, + policy_type_name=policy_type_name, + policy_attributes=policy_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + load_balancer_name: Optional[pulumi.Input[str]] = None, + policy_name: Optional[pulumi.Input[str]] = None, + policy_type_name: Optional[pulumi.Input[str]] = None, + policy_attributes: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerPolicyPolicyAttributeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if load_balancer_name is None and 'loadBalancerName' in kwargs: + load_balancer_name = kwargs['loadBalancerName'] + if load_balancer_name is None: + raise TypeError("Missing 'load_balancer_name' argument") + if policy_name is None and 'policyName' in kwargs: + policy_name = kwargs['policyName'] + if policy_name is None: + raise TypeError("Missing 'policy_name' argument") + if policy_type_name is None and 'policyTypeName' in kwargs: + policy_type_name = kwargs['policyTypeName'] + if policy_type_name is None: + raise TypeError("Missing 'policy_type_name' argument") + if policy_attributes is None and 'policyAttributes' in kwargs: + policy_attributes = kwargs['policyAttributes'] + + _setter("load_balancer_name", load_balancer_name) + _setter("policy_name", policy_name) + _setter("policy_type_name", policy_type_name) if policy_attributes is not None: - pulumi.set(__self__, "policy_attributes", policy_attributes) + _setter("policy_attributes", policy_attributes) @property @pulumi.getter(name="loadBalancerName") @@ -96,14 +127,39 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_name: The name of the load balancer policy. :param pulumi.Input[str] policy_type_name: The policy type. """ + _LoadBalancerPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + load_balancer_name=load_balancer_name, + policy_attributes=policy_attributes, + policy_name=policy_name, + policy_type_name=policy_type_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + load_balancer_name: Optional[pulumi.Input[str]] = None, + policy_attributes: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerPolicyPolicyAttributeArgs']]]] = None, + policy_name: Optional[pulumi.Input[str]] = None, + policy_type_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if load_balancer_name is None and 'loadBalancerName' in kwargs: + load_balancer_name = kwargs['loadBalancerName'] + if policy_attributes is None and 'policyAttributes' in kwargs: + policy_attributes = kwargs['policyAttributes'] + if policy_name is None and 'policyName' in kwargs: + policy_name = kwargs['policyName'] + if policy_type_name is None and 'policyTypeName' in kwargs: + policy_type_name = kwargs['policyTypeName'] + if load_balancer_name is not None: - pulumi.set(__self__, "load_balancer_name", load_balancer_name) + _setter("load_balancer_name", load_balancer_name) if policy_attributes is not None: - pulumi.set(__self__, "policy_attributes", policy_attributes) + _setter("policy_attributes", policy_attributes) if policy_name is not None: - pulumi.set(__self__, "policy_name", policy_name) + _setter("policy_name", policy_name) if policy_type_name is not None: - pulumi.set(__self__, "policy_type_name", policy_type_name) + _setter("policy_type_name", policy_type_name) @property @pulumi.getter(name="loadBalancerName") @@ -325,6 +381,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LoadBalancerPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/elb/outputs.py b/sdk/python/pulumi_aws/elb/outputs.py index 54bb86a3f61..b462f6edc96 100644 --- a/sdk/python/pulumi_aws/elb/outputs.py +++ b/sdk/python/pulumi_aws/elb/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -50,13 +50,34 @@ def __init__(__self__, *, :param bool enabled: Boolean to enable / disable `access_logs`. Default is `true` :param int interval: The publishing interval in minutes. Valid values: `5` and `60`. Default: `60` """ - pulumi.set(__self__, "bucket", bucket) + LoadBalancerAccessLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + bucket_prefix=bucket_prefix, + enabled=enabled, + interval=interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + bucket_prefix: Optional[str] = None, + enabled: Optional[bool] = None, + interval: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + + _setter("bucket", bucket) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) @property @pulumi.getter @@ -126,11 +147,44 @@ def __init__(__self__, *, :param int timeout: The length of time before the check times out. :param int unhealthy_threshold: The number of checks before the instance is declared unhealthy. """ - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "target", target) - pulumi.set(__self__, "timeout", timeout) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + LoadBalancerHealthCheck._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval=interval, + target=target, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[int] = None, + interval: Optional[int] = None, + target: Optional[str] = None, + timeout: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval is None: + raise TypeError("Missing 'interval' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if timeout is None: + raise TypeError("Missing 'timeout' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("healthy_threshold", healthy_threshold) + _setter("interval", interval) + _setter("target", target) + _setter("timeout", timeout) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter(name="healthyThreshold") @@ -217,12 +271,49 @@ def __init__(__self__, *, :param str ssl_certificate_id: The ARN of an SSL certificate you have uploaded to AWS IAM. **Note ECDSA-specific restrictions below. Only valid when `lb_protocol` is either HTTPS or SSL** """ - pulumi.set(__self__, "instance_port", instance_port) - pulumi.set(__self__, "instance_protocol", instance_protocol) - pulumi.set(__self__, "lb_port", lb_port) - pulumi.set(__self__, "lb_protocol", lb_protocol) + LoadBalancerListener._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_port=instance_port, + instance_protocol=instance_protocol, + lb_port=lb_port, + lb_protocol=lb_protocol, + ssl_certificate_id=ssl_certificate_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_port: Optional[int] = None, + instance_protocol: Optional[str] = None, + lb_port: Optional[int] = None, + lb_protocol: Optional[str] = None, + ssl_certificate_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if instance_port is None: + raise TypeError("Missing 'instance_port' argument") + if instance_protocol is None and 'instanceProtocol' in kwargs: + instance_protocol = kwargs['instanceProtocol'] + if instance_protocol is None: + raise TypeError("Missing 'instance_protocol' argument") + if lb_port is None and 'lbPort' in kwargs: + lb_port = kwargs['lbPort'] + if lb_port is None: + raise TypeError("Missing 'lb_port' argument") + if lb_protocol is None and 'lbProtocol' in kwargs: + lb_protocol = kwargs['lbProtocol'] + if lb_protocol is None: + raise TypeError("Missing 'lb_protocol' argument") + if ssl_certificate_id is None and 'sslCertificateId' in kwargs: + ssl_certificate_id = kwargs['sslCertificateId'] + + _setter("instance_port", instance_port) + _setter("instance_protocol", instance_protocol) + _setter("lb_port", lb_port) + _setter("lb_protocol", lb_protocol) if ssl_certificate_id is not None: - pulumi.set(__self__, "ssl_certificate_id", ssl_certificate_id) + _setter("ssl_certificate_id", ssl_certificate_id) @property @pulumi.getter(name="instancePort") @@ -273,10 +364,23 @@ class LoadBalancerPolicyPolicyAttribute(dict): def __init__(__self__, *, name: Optional[str] = None, value: Optional[str] = None): + LoadBalancerPolicyPolicyAttribute._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -298,8 +402,25 @@ def __init__(__self__, *, :param str name: The name of the attribute :param str value: The value of the attribute """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + SslNegotiationPolicyAttribute._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -325,10 +446,37 @@ def __init__(__self__, *, bucket_prefix: str, enabled: bool, interval: int): - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "bucket_prefix", bucket_prefix) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "interval", interval) + GetLoadBalancerAccessLogsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + bucket_prefix=bucket_prefix, + enabled=enabled, + interval=interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + bucket_prefix: Optional[str] = None, + enabled: Optional[bool] = None, + interval: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if bucket_prefix is None: + raise TypeError("Missing 'bucket_prefix' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if interval is None: + raise TypeError("Missing 'interval' argument") + + _setter("bucket", bucket) + _setter("bucket_prefix", bucket_prefix) + _setter("enabled", enabled) + _setter("interval", interval) @property @pulumi.getter @@ -359,11 +507,44 @@ def __init__(__self__, *, target: str, timeout: int, unhealthy_threshold: int): - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "target", target) - pulumi.set(__self__, "timeout", timeout) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + GetLoadBalancerHealthCheckResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval=interval, + target=target, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[int] = None, + interval: Optional[int] = None, + target: Optional[str] = None, + timeout: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval is None: + raise TypeError("Missing 'interval' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if timeout is None: + raise TypeError("Missing 'timeout' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("healthy_threshold", healthy_threshold) + _setter("interval", interval) + _setter("target", target) + _setter("timeout", timeout) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter(name="healthyThreshold") @@ -399,11 +580,50 @@ def __init__(__self__, *, lb_port: int, lb_protocol: str, ssl_certificate_id: str): - pulumi.set(__self__, "instance_port", instance_port) - pulumi.set(__self__, "instance_protocol", instance_protocol) - pulumi.set(__self__, "lb_port", lb_port) - pulumi.set(__self__, "lb_protocol", lb_protocol) - pulumi.set(__self__, "ssl_certificate_id", ssl_certificate_id) + GetLoadBalancerListenerResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_port=instance_port, + instance_protocol=instance_protocol, + lb_port=lb_port, + lb_protocol=lb_protocol, + ssl_certificate_id=ssl_certificate_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_port: Optional[int] = None, + instance_protocol: Optional[str] = None, + lb_port: Optional[int] = None, + lb_protocol: Optional[str] = None, + ssl_certificate_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if instance_port is None: + raise TypeError("Missing 'instance_port' argument") + if instance_protocol is None and 'instanceProtocol' in kwargs: + instance_protocol = kwargs['instanceProtocol'] + if instance_protocol is None: + raise TypeError("Missing 'instance_protocol' argument") + if lb_port is None and 'lbPort' in kwargs: + lb_port = kwargs['lbPort'] + if lb_port is None: + raise TypeError("Missing 'lb_port' argument") + if lb_protocol is None and 'lbProtocol' in kwargs: + lb_protocol = kwargs['lbProtocol'] + if lb_protocol is None: + raise TypeError("Missing 'lb_protocol' argument") + if ssl_certificate_id is None and 'sslCertificateId' in kwargs: + ssl_certificate_id = kwargs['sslCertificateId'] + if ssl_certificate_id is None: + raise TypeError("Missing 'ssl_certificate_id' argument") + + _setter("instance_port", instance_port) + _setter("instance_protocol", instance_protocol) + _setter("lb_port", lb_port) + _setter("lb_protocol", lb_protocol) + _setter("ssl_certificate_id", ssl_certificate_id) @property @pulumi.getter(name="instancePort") diff --git a/sdk/python/pulumi_aws/elb/ssl_negotiation_policy.py b/sdk/python/pulumi_aws/elb/ssl_negotiation_policy.py index 1eddebf4807..84ac8d30ddd 100644 --- a/sdk/python/pulumi_aws/elb/ssl_negotiation_policy.py +++ b/sdk/python/pulumi_aws/elb/ssl_negotiation_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -36,14 +36,41 @@ def __init__(__self__, *, > **NOTE:** The AWS documentation references Server Order Preference, which the AWS Elastic Load Balancing API refers to as `Server-Defined-Cipher-Order`. If you wish to set Server Order Preference, use this value instead. """ - pulumi.set(__self__, "lb_port", lb_port) - pulumi.set(__self__, "load_balancer", load_balancer) + SslNegotiationPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lb_port=lb_port, + load_balancer=load_balancer, + attributes=attributes, + name=name, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lb_port: Optional[pulumi.Input[int]] = None, + load_balancer: Optional[pulumi.Input[str]] = None, + attributes: Optional[pulumi.Input[Sequence[pulumi.Input['SslNegotiationPolicyAttributeArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lb_port is None and 'lbPort' in kwargs: + lb_port = kwargs['lbPort'] + if lb_port is None: + raise TypeError("Missing 'lb_port' argument") + if load_balancer is None and 'loadBalancer' in kwargs: + load_balancer = kwargs['loadBalancer'] + if load_balancer is None: + raise TypeError("Missing 'load_balancer' argument") + + _setter("lb_port", lb_port) + _setter("load_balancer", load_balancer) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter(name="lbPort") @@ -136,16 +163,39 @@ def __init__(__self__, *, > **NOTE:** The AWS documentation references Server Order Preference, which the AWS Elastic Load Balancing API refers to as `Server-Defined-Cipher-Order`. If you wish to set Server Order Preference, use this value instead. """ + _SslNegotiationPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + lb_port=lb_port, + load_balancer=load_balancer, + name=name, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input[Sequence[pulumi.Input['SslNegotiationPolicyAttributeArgs']]]] = None, + lb_port: Optional[pulumi.Input[int]] = None, + load_balancer: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lb_port is None and 'lbPort' in kwargs: + lb_port = kwargs['lbPort'] + if load_balancer is None and 'loadBalancer' in kwargs: + load_balancer = kwargs['loadBalancer'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if lb_port is not None: - pulumi.set(__self__, "lb_port", lb_port) + _setter("lb_port", lb_port) if load_balancer is not None: - pulumi.set(__self__, "load_balancer", load_balancer) + _setter("load_balancer", load_balancer) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter @@ -363,6 +413,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SslNegotiationPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/emr/_inputs.py b/sdk/python/pulumi_aws/emr/_inputs.py index 3d6fdce6c9e..2520ca1d73c 100644 --- a/sdk/python/pulumi_aws/emr/_inputs.py +++ b/sdk/python/pulumi_aws/emr/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -56,8 +56,29 @@ def __init__(__self__, *, :param pulumi.Input[int] max_range: The final port in the range of TCP ports. :param pulumi.Input[int] min_range: The first port in the range of TCP ports. """ - pulumi.set(__self__, "max_range", max_range) - pulumi.set(__self__, "min_range", min_range) + BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_range=max_range, + min_range=min_range, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_range: Optional[pulumi.Input[int]] = None, + min_range: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_range is None and 'maxRange' in kwargs: + max_range = kwargs['maxRange'] + if max_range is None: + raise TypeError("Missing 'max_range' argument") + if min_range is None and 'minRange' in kwargs: + min_range = kwargs['minRange'] + if min_range is None: + raise TypeError("Missing 'min_range' argument") + + _setter("max_range", max_range) + _setter("min_range", min_range) @property @pulumi.getter(name="maxRange") @@ -91,8 +112,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] idle_timeout: Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of `60` seconds and a maximum of `604800` seconds (seven days). """ + ClusterAutoTerminationPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle_timeout=idle_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle_timeout is None and 'idleTimeout' in kwargs: + idle_timeout = kwargs['idleTimeout'] + if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + _setter("idle_timeout", idle_timeout) @property @pulumi.getter(name="idleTimeout") @@ -118,10 +152,29 @@ def __init__(__self__, *, :param pulumi.Input[str] path: Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system. :param pulumi.Input[Sequence[pulumi.Input[str]]] args: List of command line arguments to pass to the bootstrap action script. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "path", path) + ClusterBootstrapActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + path=path, + args=args, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + args: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("name", name) + _setter("path", path) if args is not None: - pulumi.set(__self__, "args", args) + _setter("args", args) @property @pulumi.getter @@ -179,22 +232,59 @@ def __init__(__self__, *, :param pulumi.Input[int] target_on_demand_capacity: The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision. :param pulumi.Input[int] target_spot_capacity: Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision. """ + ClusterCoreInstanceFleetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + instance_type_configs=instance_type_configs, + launch_specifications=launch_specifications, + name=name, + provisioned_on_demand_capacity=provisioned_on_demand_capacity, + provisioned_spot_capacity=provisioned_spot_capacity, + target_on_demand_capacity=target_on_demand_capacity, + target_spot_capacity=target_spot_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + instance_type_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCoreInstanceFleetInstanceTypeConfigArgs']]]] = None, + launch_specifications: Optional[pulumi.Input['ClusterCoreInstanceFleetLaunchSpecificationsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + provisioned_on_demand_capacity: Optional[pulumi.Input[int]] = None, + provisioned_spot_capacity: Optional[pulumi.Input[int]] = None, + target_on_demand_capacity: Optional[pulumi.Input[int]] = None, + target_spot_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type_configs is None and 'instanceTypeConfigs' in kwargs: + instance_type_configs = kwargs['instanceTypeConfigs'] + if launch_specifications is None and 'launchSpecifications' in kwargs: + launch_specifications = kwargs['launchSpecifications'] + if provisioned_on_demand_capacity is None and 'provisionedOnDemandCapacity' in kwargs: + provisioned_on_demand_capacity = kwargs['provisionedOnDemandCapacity'] + if provisioned_spot_capacity is None and 'provisionedSpotCapacity' in kwargs: + provisioned_spot_capacity = kwargs['provisionedSpotCapacity'] + if target_on_demand_capacity is None and 'targetOnDemandCapacity' in kwargs: + target_on_demand_capacity = kwargs['targetOnDemandCapacity'] + if target_spot_capacity is None and 'targetSpotCapacity' in kwargs: + target_spot_capacity = kwargs['targetSpotCapacity'] + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if instance_type_configs is not None: - pulumi.set(__self__, "instance_type_configs", instance_type_configs) + _setter("instance_type_configs", instance_type_configs) if launch_specifications is not None: - pulumi.set(__self__, "launch_specifications", launch_specifications) + _setter("launch_specifications", launch_specifications) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provisioned_on_demand_capacity is not None: - pulumi.set(__self__, "provisioned_on_demand_capacity", provisioned_on_demand_capacity) + _setter("provisioned_on_demand_capacity", provisioned_on_demand_capacity) if provisioned_spot_capacity is not None: - pulumi.set(__self__, "provisioned_spot_capacity", provisioned_spot_capacity) + _setter("provisioned_spot_capacity", provisioned_spot_capacity) if target_on_demand_capacity is not None: - pulumi.set(__self__, "target_on_demand_capacity", target_on_demand_capacity) + _setter("target_on_demand_capacity", target_on_demand_capacity) if target_spot_capacity is not None: - pulumi.set(__self__, "target_spot_capacity", target_spot_capacity) + _setter("target_spot_capacity", target_spot_capacity) @property @pulumi.getter @@ -304,17 +394,50 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs']]] ebs_configs: Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below. :param pulumi.Input[int] weighted_capacity: Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `emr.InstanceFleet`. """ - pulumi.set(__self__, "instance_type", instance_type) + ClusterCoreInstanceFleetInstanceTypeConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + bid_price=bid_price, + bid_price_as_percentage_of_on_demand_price=bid_price_as_percentage_of_on_demand_price, + configurations=configurations, + ebs_configs=ebs_configs, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + bid_price: Optional[pulumi.Input[str]] = None, + bid_price_as_percentage_of_on_demand_price: Optional[pulumi.Input[float]] = None, + configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCoreInstanceFleetInstanceTypeConfigConfigurationArgs']]]] = None, + ebs_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs']]]] = None, + weighted_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if bid_price_as_percentage_of_on_demand_price is None and 'bidPriceAsPercentageOfOnDemandPrice' in kwargs: + bid_price_as_percentage_of_on_demand_price = kwargs['bidPriceAsPercentageOfOnDemandPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("instance_type", instance_type) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if bid_price_as_percentage_of_on_demand_price is not None: - pulumi.set(__self__, "bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) + _setter("bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceType") @@ -398,10 +521,23 @@ def __init__(__self__, *, :param pulumi.Input[str] classification: Classification within a configuration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: Map of properties specified within a configuration classification. """ + ClusterCoreInstanceFleetInstanceTypeConfigConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is not None: - pulumi.set(__self__, "classification", classification) + _setter("classification", classification) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -441,12 +577,35 @@ def __init__(__self__, *, :param pulumi.Input[int] iops: Number of I/O operations per second (IOPS) that the volume supports. :param pulumi.Input[int] volumes_per_instance: Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1). """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + volumes_per_instance: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -506,10 +665,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs']]] on_demand_specifications: Configuration block for on demand instances launch specifications. :param pulumi.Input[Sequence[pulumi.Input['ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs']]] spot_specifications: Configuration block for spot instances launch specifications. """ + ClusterCoreInstanceFleetLaunchSpecificationsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_demand_specifications=on_demand_specifications, + spot_specifications=spot_specifications, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_demand_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs']]]] = None, + spot_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_demand_specifications is None and 'onDemandSpecifications' in kwargs: + on_demand_specifications = kwargs['onDemandSpecifications'] + if spot_specifications is None and 'spotSpecifications' in kwargs: + spot_specifications = kwargs['spotSpecifications'] + if on_demand_specifications is not None: - pulumi.set(__self__, "on_demand_specifications", on_demand_specifications) + _setter("on_demand_specifications", on_demand_specifications) if spot_specifications is not None: - pulumi.set(__self__, "spot_specifications", spot_specifications) + _setter("spot_specifications", spot_specifications) @property @pulumi.getter(name="onDemandSpecifications") @@ -543,7 +719,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] allocation_strategy: Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is `lowest-price` (the default), which launches the lowest price first. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + + _setter("allocation_strategy", allocation_strategy) @property @pulumi.getter(name="allocationStrategy") @@ -571,11 +762,42 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout_duration_minutes: Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created. :param pulumi.Input[int] block_duration_minutes: Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) - pulumi.set(__self__, "timeout_action", timeout_action) - pulumi.set(__self__, "timeout_duration_minutes", timeout_duration_minutes) + ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + timeout_action=timeout_action, + timeout_duration_minutes=timeout_duration_minutes, + block_duration_minutes=block_duration_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[pulumi.Input[str]] = None, + timeout_action: Optional[pulumi.Input[str]] = None, + timeout_duration_minutes: Optional[pulumi.Input[int]] = None, + block_duration_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + if timeout_action is None and 'timeoutAction' in kwargs: + timeout_action = kwargs['timeoutAction'] + if timeout_action is None: + raise TypeError("Missing 'timeout_action' argument") + if timeout_duration_minutes is None and 'timeoutDurationMinutes' in kwargs: + timeout_duration_minutes = kwargs['timeoutDurationMinutes'] + if timeout_duration_minutes is None: + raise TypeError("Missing 'timeout_duration_minutes' argument") + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + + _setter("allocation_strategy", allocation_strategy) + _setter("timeout_action", timeout_action) + _setter("timeout_duration_minutes", timeout_duration_minutes) if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) @property @pulumi.getter(name="allocationStrategy") @@ -645,19 +867,54 @@ def __init__(__self__, *, :param pulumi.Input[int] instance_count: Target number of instances for the instance group. Must be at least 1. Defaults to 1. :param pulumi.Input[str] name: Friendly name given to the instance group. """ - pulumi.set(__self__, "instance_type", instance_type) + ClusterCoreInstanceGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + autoscaling_policy=autoscaling_policy, + bid_price=bid_price, + ebs_configs=ebs_configs, + id=id, + instance_count=instance_count, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + autoscaling_policy: Optional[pulumi.Input[str]] = None, + bid_price: Optional[pulumi.Input[str]] = None, + ebs_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterCoreInstanceGroupEbsConfigArgs']]]] = None, + id: Optional[pulumi.Input[str]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if autoscaling_policy is None and 'autoscalingPolicy' in kwargs: + autoscaling_policy = kwargs['autoscalingPolicy'] + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + + _setter("instance_type", instance_type) if autoscaling_policy is not None: - pulumi.set(__self__, "autoscaling_policy", autoscaling_policy) + _setter("autoscaling_policy", autoscaling_policy) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="instanceType") @@ -759,14 +1016,39 @@ def __init__(__self__, *, :param pulumi.Input[int] throughput: The throughput, in mebibyte per second (MiB/s). :param pulumi.Input[int] volumes_per_instance: Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1). """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + ClusterCoreInstanceGroupEbsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + throughput=throughput, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volumes_per_instance: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -854,23 +1136,70 @@ def __init__(__self__, *, > **NOTE on EMR-Managed security groups:** These security groups will have any missing inbound or outbound access rules added and maintained by AWS, to ensure proper communication between instances in a cluster. The EMR service will maintain these rules for groups provided in `emr_managed_master_security_group` and `emr_managed_slave_security_group`; attempts to remove the required rules may succeed, only for the EMR service to re-add them in a matter of minutes. This may cause this provider to fail to destroy an environment that contains an EMR cluster, because the EMR service does not revoke rules added on deletion, leaving a cyclic dependency between the security groups that prevents their deletion. To avoid this, use the `revoke_rules_on_delete` optional attribute for any Security Group used in `emr_managed_master_security_group` and `emr_managed_slave_security_group`. See [Amazon EMR-Managed Security Groups](http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html) for more information about the EMR-managed security group rules. """ - pulumi.set(__self__, "instance_profile", instance_profile) + ClusterEc2AttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_profile=instance_profile, + additional_master_security_groups=additional_master_security_groups, + additional_slave_security_groups=additional_slave_security_groups, + emr_managed_master_security_group=emr_managed_master_security_group, + emr_managed_slave_security_group=emr_managed_slave_security_group, + key_name=key_name, + service_access_security_group=service_access_security_group, + subnet_id=subnet_id, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_profile: Optional[pulumi.Input[str]] = None, + additional_master_security_groups: Optional[pulumi.Input[str]] = None, + additional_slave_security_groups: Optional[pulumi.Input[str]] = None, + emr_managed_master_security_group: Optional[pulumi.Input[str]] = None, + emr_managed_slave_security_group: Optional[pulumi.Input[str]] = None, + key_name: Optional[pulumi.Input[str]] = None, + service_access_security_group: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_profile is None and 'instanceProfile' in kwargs: + instance_profile = kwargs['instanceProfile'] + if instance_profile is None: + raise TypeError("Missing 'instance_profile' argument") + if additional_master_security_groups is None and 'additionalMasterSecurityGroups' in kwargs: + additional_master_security_groups = kwargs['additionalMasterSecurityGroups'] + if additional_slave_security_groups is None and 'additionalSlaveSecurityGroups' in kwargs: + additional_slave_security_groups = kwargs['additionalSlaveSecurityGroups'] + if emr_managed_master_security_group is None and 'emrManagedMasterSecurityGroup' in kwargs: + emr_managed_master_security_group = kwargs['emrManagedMasterSecurityGroup'] + if emr_managed_slave_security_group is None and 'emrManagedSlaveSecurityGroup' in kwargs: + emr_managed_slave_security_group = kwargs['emrManagedSlaveSecurityGroup'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if service_access_security_group is None and 'serviceAccessSecurityGroup' in kwargs: + service_access_security_group = kwargs['serviceAccessSecurityGroup'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + + _setter("instance_profile", instance_profile) if additional_master_security_groups is not None: - pulumi.set(__self__, "additional_master_security_groups", additional_master_security_groups) + _setter("additional_master_security_groups", additional_master_security_groups) if additional_slave_security_groups is not None: - pulumi.set(__self__, "additional_slave_security_groups", additional_slave_security_groups) + _setter("additional_slave_security_groups", additional_slave_security_groups) if emr_managed_master_security_group is not None: - pulumi.set(__self__, "emr_managed_master_security_group", emr_managed_master_security_group) + _setter("emr_managed_master_security_group", emr_managed_master_security_group) if emr_managed_slave_security_group is not None: - pulumi.set(__self__, "emr_managed_slave_security_group", emr_managed_slave_security_group) + _setter("emr_managed_slave_security_group", emr_managed_slave_security_group) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if service_access_security_group is not None: - pulumi.set(__self__, "service_access_security_group", service_access_security_group) + _setter("service_access_security_group", service_access_security_group) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="instanceProfile") @@ -998,14 +1327,45 @@ def __init__(__self__, *, :param pulumi.Input[str] ad_domain_join_user: Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration. :param pulumi.Input[str] cross_realm_trust_principal_password: Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration. """ - pulumi.set(__self__, "kdc_admin_password", kdc_admin_password) - pulumi.set(__self__, "realm", realm) + ClusterKerberosAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kdc_admin_password=kdc_admin_password, + realm=realm, + ad_domain_join_password=ad_domain_join_password, + ad_domain_join_user=ad_domain_join_user, + cross_realm_trust_principal_password=cross_realm_trust_principal_password, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kdc_admin_password: Optional[pulumi.Input[str]] = None, + realm: Optional[pulumi.Input[str]] = None, + ad_domain_join_password: Optional[pulumi.Input[str]] = None, + ad_domain_join_user: Optional[pulumi.Input[str]] = None, + cross_realm_trust_principal_password: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kdc_admin_password is None and 'kdcAdminPassword' in kwargs: + kdc_admin_password = kwargs['kdcAdminPassword'] + if kdc_admin_password is None: + raise TypeError("Missing 'kdc_admin_password' argument") + if realm is None: + raise TypeError("Missing 'realm' argument") + if ad_domain_join_password is None and 'adDomainJoinPassword' in kwargs: + ad_domain_join_password = kwargs['adDomainJoinPassword'] + if ad_domain_join_user is None and 'adDomainJoinUser' in kwargs: + ad_domain_join_user = kwargs['adDomainJoinUser'] + if cross_realm_trust_principal_password is None and 'crossRealmTrustPrincipalPassword' in kwargs: + cross_realm_trust_principal_password = kwargs['crossRealmTrustPrincipalPassword'] + + _setter("kdc_admin_password", kdc_admin_password) + _setter("realm", realm) if ad_domain_join_password is not None: - pulumi.set(__self__, "ad_domain_join_password", ad_domain_join_password) + _setter("ad_domain_join_password", ad_domain_join_password) if ad_domain_join_user is not None: - pulumi.set(__self__, "ad_domain_join_user", ad_domain_join_user) + _setter("ad_domain_join_user", ad_domain_join_user) if cross_realm_trust_principal_password is not None: - pulumi.set(__self__, "cross_realm_trust_principal_password", cross_realm_trust_principal_password) + _setter("cross_realm_trust_principal_password", cross_realm_trust_principal_password) @property @pulumi.getter(name="kdcAdminPassword") @@ -1087,22 +1447,59 @@ def __init__(__self__, *, :param pulumi.Input[int] target_on_demand_capacity: Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision. :param pulumi.Input[int] target_spot_capacity: Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision. """ + ClusterMasterInstanceFleetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + instance_type_configs=instance_type_configs, + launch_specifications=launch_specifications, + name=name, + provisioned_on_demand_capacity=provisioned_on_demand_capacity, + provisioned_spot_capacity=provisioned_spot_capacity, + target_on_demand_capacity=target_on_demand_capacity, + target_spot_capacity=target_spot_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + instance_type_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterMasterInstanceFleetInstanceTypeConfigArgs']]]] = None, + launch_specifications: Optional[pulumi.Input['ClusterMasterInstanceFleetLaunchSpecificationsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + provisioned_on_demand_capacity: Optional[pulumi.Input[int]] = None, + provisioned_spot_capacity: Optional[pulumi.Input[int]] = None, + target_on_demand_capacity: Optional[pulumi.Input[int]] = None, + target_spot_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type_configs is None and 'instanceTypeConfigs' in kwargs: + instance_type_configs = kwargs['instanceTypeConfigs'] + if launch_specifications is None and 'launchSpecifications' in kwargs: + launch_specifications = kwargs['launchSpecifications'] + if provisioned_on_demand_capacity is None and 'provisionedOnDemandCapacity' in kwargs: + provisioned_on_demand_capacity = kwargs['provisionedOnDemandCapacity'] + if provisioned_spot_capacity is None and 'provisionedSpotCapacity' in kwargs: + provisioned_spot_capacity = kwargs['provisionedSpotCapacity'] + if target_on_demand_capacity is None and 'targetOnDemandCapacity' in kwargs: + target_on_demand_capacity = kwargs['targetOnDemandCapacity'] + if target_spot_capacity is None and 'targetSpotCapacity' in kwargs: + target_spot_capacity = kwargs['targetSpotCapacity'] + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if instance_type_configs is not None: - pulumi.set(__self__, "instance_type_configs", instance_type_configs) + _setter("instance_type_configs", instance_type_configs) if launch_specifications is not None: - pulumi.set(__self__, "launch_specifications", launch_specifications) + _setter("launch_specifications", launch_specifications) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provisioned_on_demand_capacity is not None: - pulumi.set(__self__, "provisioned_on_demand_capacity", provisioned_on_demand_capacity) + _setter("provisioned_on_demand_capacity", provisioned_on_demand_capacity) if provisioned_spot_capacity is not None: - pulumi.set(__self__, "provisioned_spot_capacity", provisioned_spot_capacity) + _setter("provisioned_spot_capacity", provisioned_spot_capacity) if target_on_demand_capacity is not None: - pulumi.set(__self__, "target_on_demand_capacity", target_on_demand_capacity) + _setter("target_on_demand_capacity", target_on_demand_capacity) if target_spot_capacity is not None: - pulumi.set(__self__, "target_spot_capacity", target_spot_capacity) + _setter("target_spot_capacity", target_spot_capacity) @property @pulumi.getter @@ -1212,17 +1609,50 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArgs']]] ebs_configs: Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below. :param pulumi.Input[int] weighted_capacity: Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `emr.InstanceFleet`. """ - pulumi.set(__self__, "instance_type", instance_type) + ClusterMasterInstanceFleetInstanceTypeConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + bid_price=bid_price, + bid_price_as_percentage_of_on_demand_price=bid_price_as_percentage_of_on_demand_price, + configurations=configurations, + ebs_configs=ebs_configs, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + bid_price: Optional[pulumi.Input[str]] = None, + bid_price_as_percentage_of_on_demand_price: Optional[pulumi.Input[float]] = None, + configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterMasterInstanceFleetInstanceTypeConfigConfigurationArgs']]]] = None, + ebs_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArgs']]]] = None, + weighted_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if bid_price_as_percentage_of_on_demand_price is None and 'bidPriceAsPercentageOfOnDemandPrice' in kwargs: + bid_price_as_percentage_of_on_demand_price = kwargs['bidPriceAsPercentageOfOnDemandPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("instance_type", instance_type) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if bid_price_as_percentage_of_on_demand_price is not None: - pulumi.set(__self__, "bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) + _setter("bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceType") @@ -1306,10 +1736,23 @@ def __init__(__self__, *, :param pulumi.Input[str] classification: Classification within a configuration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: Map of properties specified within a configuration classification. """ + ClusterMasterInstanceFleetInstanceTypeConfigConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is not None: - pulumi.set(__self__, "classification", classification) + _setter("classification", classification) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -1349,12 +1792,35 @@ def __init__(__self__, *, :param pulumi.Input[int] iops: Number of I/O operations per second (IOPS) that the volume supports. :param pulumi.Input[int] volumes_per_instance: Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1). """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + volumes_per_instance: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -1414,10 +1880,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs']]] on_demand_specifications: Configuration block for on demand instances launch specifications. :param pulumi.Input[Sequence[pulumi.Input['ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecificationArgs']]] spot_specifications: Configuration block for spot instances launch specifications. """ + ClusterMasterInstanceFleetLaunchSpecificationsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_demand_specifications=on_demand_specifications, + spot_specifications=spot_specifications, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_demand_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs']]]] = None, + spot_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecificationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_demand_specifications is None and 'onDemandSpecifications' in kwargs: + on_demand_specifications = kwargs['onDemandSpecifications'] + if spot_specifications is None and 'spotSpecifications' in kwargs: + spot_specifications = kwargs['spotSpecifications'] + if on_demand_specifications is not None: - pulumi.set(__self__, "on_demand_specifications", on_demand_specifications) + _setter("on_demand_specifications", on_demand_specifications) if spot_specifications is not None: - pulumi.set(__self__, "spot_specifications", spot_specifications) + _setter("spot_specifications", spot_specifications) @property @pulumi.getter(name="onDemandSpecifications") @@ -1451,7 +1934,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] allocation_strategy: Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is `lowest-price` (the default), which launches the lowest price first. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + + _setter("allocation_strategy", allocation_strategy) @property @pulumi.getter(name="allocationStrategy") @@ -1479,11 +1977,42 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout_duration_minutes: Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created. :param pulumi.Input[int] block_duration_minutes: Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) - pulumi.set(__self__, "timeout_action", timeout_action) - pulumi.set(__self__, "timeout_duration_minutes", timeout_duration_minutes) + ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + timeout_action=timeout_action, + timeout_duration_minutes=timeout_duration_minutes, + block_duration_minutes=block_duration_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[pulumi.Input[str]] = None, + timeout_action: Optional[pulumi.Input[str]] = None, + timeout_duration_minutes: Optional[pulumi.Input[int]] = None, + block_duration_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + if timeout_action is None and 'timeoutAction' in kwargs: + timeout_action = kwargs['timeoutAction'] + if timeout_action is None: + raise TypeError("Missing 'timeout_action' argument") + if timeout_duration_minutes is None and 'timeoutDurationMinutes' in kwargs: + timeout_duration_minutes = kwargs['timeoutDurationMinutes'] + if timeout_duration_minutes is None: + raise TypeError("Missing 'timeout_duration_minutes' argument") + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + + _setter("allocation_strategy", allocation_strategy) + _setter("timeout_action", timeout_action) + _setter("timeout_duration_minutes", timeout_duration_minutes) if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) @property @pulumi.getter(name="allocationStrategy") @@ -1551,17 +2080,48 @@ def __init__(__self__, *, :param pulumi.Input[int] instance_count: Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `core_instance_group` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have map public IP on launch enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `termination_protection = false` configuration applied before destroying this resource. :param pulumi.Input[str] name: Friendly name given to the instance group. """ - pulumi.set(__self__, "instance_type", instance_type) + ClusterMasterInstanceGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + bid_price=bid_price, + ebs_configs=ebs_configs, + id=id, + instance_count=instance_count, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + bid_price: Optional[pulumi.Input[str]] = None, + ebs_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterMasterInstanceGroupEbsConfigArgs']]]] = None, + id: Optional[pulumi.Input[str]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + + _setter("instance_type", instance_type) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="instanceType") @@ -1651,14 +2211,39 @@ def __init__(__self__, *, :param pulumi.Input[int] throughput: The throughput, in mebibyte per second (MiB/s). :param pulumi.Input[int] volumes_per_instance: Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1). """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + ClusterMasterInstanceGroupEbsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + throughput=throughput, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volumes_per_instance: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -1730,9 +2315,28 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_role: Role of the instance in the cluster. Valid Values: `MASTER`, `CORE`, `TASK`. :param pulumi.Input[str] placement_strategy: EC2 Placement Group strategy associated with instance role. Valid Values: `SPREAD`, `PARTITION`, `CLUSTER`, `NONE`. """ - pulumi.set(__self__, "instance_role", instance_role) + ClusterPlacementGroupConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_role=instance_role, + placement_strategy=placement_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_role: Optional[pulumi.Input[str]] = None, + placement_strategy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_role is None and 'instanceRole' in kwargs: + instance_role = kwargs['instanceRole'] + if instance_role is None: + raise TypeError("Missing 'instance_role' argument") + if placement_strategy is None and 'placementStrategy' in kwargs: + placement_strategy = kwargs['placementStrategy'] + + _setter("instance_role", instance_role) if placement_strategy is not None: - pulumi.set(__self__, "placement_strategy", placement_strategy) + _setter("placement_strategy", placement_strategy) @property @pulumi.getter(name="instanceRole") @@ -1770,9 +2374,34 @@ def __init__(__self__, *, :param pulumi.Input['ClusterStepHadoopJarStepArgs'] hadoop_jar_step: JAR file used for the step. See below. :param pulumi.Input[str] name: Name of the step. """ - pulumi.set(__self__, "action_on_failure", action_on_failure) - pulumi.set(__self__, "hadoop_jar_step", hadoop_jar_step) - pulumi.set(__self__, "name", name) + ClusterStepArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_on_failure=action_on_failure, + hadoop_jar_step=hadoop_jar_step, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_on_failure: Optional[pulumi.Input[str]] = None, + hadoop_jar_step: Optional[pulumi.Input['ClusterStepHadoopJarStepArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_on_failure is None and 'actionOnFailure' in kwargs: + action_on_failure = kwargs['actionOnFailure'] + if action_on_failure is None: + raise TypeError("Missing 'action_on_failure' argument") + if hadoop_jar_step is None and 'hadoopJarStep' in kwargs: + hadoop_jar_step = kwargs['hadoopJarStep'] + if hadoop_jar_step is None: + raise TypeError("Missing 'hadoop_jar_step' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("action_on_failure", action_on_failure) + _setter("hadoop_jar_step", hadoop_jar_step) + _setter("name", name) @property @pulumi.getter(name="actionOnFailure") @@ -1824,13 +2453,34 @@ def __init__(__self__, *, :param pulumi.Input[str] main_class: Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function. """ - pulumi.set(__self__, "jar", jar) + ClusterStepHadoopJarStepArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + jar=jar, + args=args, + main_class=main_class, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jar: Optional[pulumi.Input[str]] = None, + args: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + main_class: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jar is None: + raise TypeError("Missing 'jar' argument") + if main_class is None and 'mainClass' in kwargs: + main_class = kwargs['mainClass'] + + _setter("jar", jar) if args is not None: - pulumi.set(__self__, "args", args) + _setter("args", args) if main_class is not None: - pulumi.set(__self__, "main_class", main_class) + _setter("main_class", main_class) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -1898,17 +2548,50 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['InstanceFleetInstanceTypeConfigEbsConfigArgs']]] ebs_configs: Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below. :param pulumi.Input[int] weighted_capacity: The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `emr.InstanceFleet`. """ - pulumi.set(__self__, "instance_type", instance_type) + InstanceFleetInstanceTypeConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + bid_price=bid_price, + bid_price_as_percentage_of_on_demand_price=bid_price_as_percentage_of_on_demand_price, + configurations=configurations, + ebs_configs=ebs_configs, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + bid_price: Optional[pulumi.Input[str]] = None, + bid_price_as_percentage_of_on_demand_price: Optional[pulumi.Input[float]] = None, + configurations: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFleetInstanceTypeConfigConfigurationArgs']]]] = None, + ebs_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFleetInstanceTypeConfigEbsConfigArgs']]]] = None, + weighted_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if bid_price_as_percentage_of_on_demand_price is None and 'bidPriceAsPercentageOfOnDemandPrice' in kwargs: + bid_price_as_percentage_of_on_demand_price = kwargs['bidPriceAsPercentageOfOnDemandPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("instance_type", instance_type) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if bid_price_as_percentage_of_on_demand_price is not None: - pulumi.set(__self__, "bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) + _setter("bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceType") @@ -1992,10 +2675,23 @@ def __init__(__self__, *, :param pulumi.Input[str] classification: The classification within a configuration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: A map of properties specified within a configuration classification """ + InstanceFleetInstanceTypeConfigConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is not None: - pulumi.set(__self__, "classification", classification) + _setter("classification", classification) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -2035,12 +2731,35 @@ def __init__(__self__, *, :param pulumi.Input[int] iops: The number of I/O operations per second (IOPS) that the volume supports :param pulumi.Input[int] volumes_per_instance: The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1) """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + InstanceFleetInstanceTypeConfigEbsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + volumes_per_instance: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -2100,10 +2819,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['InstanceFleetLaunchSpecificationsOnDemandSpecificationArgs']]] on_demand_specifications: Configuration block for on demand instances launch specifications :param pulumi.Input[Sequence[pulumi.Input['InstanceFleetLaunchSpecificationsSpotSpecificationArgs']]] spot_specifications: Configuration block for spot instances launch specifications """ + InstanceFleetLaunchSpecificationsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_demand_specifications=on_demand_specifications, + spot_specifications=spot_specifications, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_demand_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFleetLaunchSpecificationsOnDemandSpecificationArgs']]]] = None, + spot_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFleetLaunchSpecificationsSpotSpecificationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_demand_specifications is None and 'onDemandSpecifications' in kwargs: + on_demand_specifications = kwargs['onDemandSpecifications'] + if spot_specifications is None and 'spotSpecifications' in kwargs: + spot_specifications = kwargs['spotSpecifications'] + if on_demand_specifications is not None: - pulumi.set(__self__, "on_demand_specifications", on_demand_specifications) + _setter("on_demand_specifications", on_demand_specifications) if spot_specifications is not None: - pulumi.set(__self__, "spot_specifications", spot_specifications) + _setter("spot_specifications", spot_specifications) @property @pulumi.getter(name="onDemandSpecifications") @@ -2137,7 +2873,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] allocation_strategy: Specifies the strategy to use in launching Spot instance fleets. Currently, the only option is `capacity-optimized` (the default), which launches instances from Spot instance pools with optimal capacity for the number of instances that are launching. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + InstanceFleetLaunchSpecificationsOnDemandSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + + _setter("allocation_strategy", allocation_strategy) @property @pulumi.getter(name="allocationStrategy") @@ -2165,11 +2916,42 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout_duration_minutes: The spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created. :param pulumi.Input[int] block_duration_minutes: The defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) - pulumi.set(__self__, "timeout_action", timeout_action) - pulumi.set(__self__, "timeout_duration_minutes", timeout_duration_minutes) + InstanceFleetLaunchSpecificationsSpotSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + timeout_action=timeout_action, + timeout_duration_minutes=timeout_duration_minutes, + block_duration_minutes=block_duration_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[pulumi.Input[str]] = None, + timeout_action: Optional[pulumi.Input[str]] = None, + timeout_duration_minutes: Optional[pulumi.Input[int]] = None, + block_duration_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + if timeout_action is None and 'timeoutAction' in kwargs: + timeout_action = kwargs['timeoutAction'] + if timeout_action is None: + raise TypeError("Missing 'timeout_action' argument") + if timeout_duration_minutes is None and 'timeoutDurationMinutes' in kwargs: + timeout_duration_minutes = kwargs['timeoutDurationMinutes'] + if timeout_duration_minutes is None: + raise TypeError("Missing 'timeout_duration_minutes' argument") + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + + _setter("allocation_strategy", allocation_strategy) + _setter("timeout_action", timeout_action) + _setter("timeout_duration_minutes", timeout_duration_minutes) if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) @property @pulumi.getter(name="allocationStrategy") @@ -2233,12 +3015,35 @@ def __init__(__self__, *, :param pulumi.Input[int] iops: The number of I/O operations per second (IOPS) that the volume supports. :param pulumi.Input[int] volumes_per_instance: The number of EBS Volumes to attach per instance. """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + InstanceGroupEbsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + volumes_per_instance: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -2304,13 +3109,48 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_core_capacity_units: The upper boundary of EC2 units for core node type in a cluster. It is measured through VCPU cores or instances for instance groups and measured through units for instance fleets. The core units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between core and task nodes. :param pulumi.Input[int] maximum_ondemand_capacity_units: The upper boundary of On-Demand EC2 units. It is measured through VCPU cores or instances for instance groups and measured through units for instance fleets. The On-Demand units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between On-Demand and Spot instances. """ - pulumi.set(__self__, "maximum_capacity_units", maximum_capacity_units) - pulumi.set(__self__, "minimum_capacity_units", minimum_capacity_units) - pulumi.set(__self__, "unit_type", unit_type) + ManagedScalingPolicyComputeLimitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_capacity_units=maximum_capacity_units, + minimum_capacity_units=minimum_capacity_units, + unit_type=unit_type, + maximum_core_capacity_units=maximum_core_capacity_units, + maximum_ondemand_capacity_units=maximum_ondemand_capacity_units, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_capacity_units: Optional[pulumi.Input[int]] = None, + minimum_capacity_units: Optional[pulumi.Input[int]] = None, + unit_type: Optional[pulumi.Input[str]] = None, + maximum_core_capacity_units: Optional[pulumi.Input[int]] = None, + maximum_ondemand_capacity_units: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_capacity_units is None and 'maximumCapacityUnits' in kwargs: + maximum_capacity_units = kwargs['maximumCapacityUnits'] + if maximum_capacity_units is None: + raise TypeError("Missing 'maximum_capacity_units' argument") + if minimum_capacity_units is None and 'minimumCapacityUnits' in kwargs: + minimum_capacity_units = kwargs['minimumCapacityUnits'] + if minimum_capacity_units is None: + raise TypeError("Missing 'minimum_capacity_units' argument") + if unit_type is None and 'unitType' in kwargs: + unit_type = kwargs['unitType'] + if unit_type is None: + raise TypeError("Missing 'unit_type' argument") + if maximum_core_capacity_units is None and 'maximumCoreCapacityUnits' in kwargs: + maximum_core_capacity_units = kwargs['maximumCoreCapacityUnits'] + if maximum_ondemand_capacity_units is None and 'maximumOndemandCapacityUnits' in kwargs: + maximum_ondemand_capacity_units = kwargs['maximumOndemandCapacityUnits'] + + _setter("maximum_capacity_units", maximum_capacity_units) + _setter("minimum_capacity_units", minimum_capacity_units) + _setter("unit_type", unit_type) if maximum_core_capacity_units is not None: - pulumi.set(__self__, "maximum_core_capacity_units", maximum_core_capacity_units) + _setter("maximum_core_capacity_units", maximum_core_capacity_units) if maximum_ondemand_capacity_units is not None: - pulumi.set(__self__, "maximum_ondemand_capacity_units", maximum_ondemand_capacity_units) + _setter("maximum_ondemand_capacity_units", maximum_ondemand_capacity_units) @property @pulumi.getter(name="maximumCapacityUnits") @@ -2382,10 +3222,23 @@ def __init__(__self__, *, :param str application: Optional release label application filter. For example, `Spark@2.1.0` or `Spark`. :param str prefix: Optional release label version prefix filter. For example, `emr-5`. """ + GetReleaseLabelsFiltersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application=application, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application is not None: - pulumi.set(__self__, "application", application) + _setter("application", application) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/emr/block_public_access_configuration.py b/sdk/python/pulumi_aws/emr/block_public_access_configuration.py index 625c376b734..b26655db9cc 100644 --- a/sdk/python/pulumi_aws/emr/block_public_access_configuration.py +++ b/sdk/python/pulumi_aws/emr/block_public_access_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,28 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Sequence[pulumi.Input['BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs']]] permitted_public_security_group_rule_ranges: Configuration block for defining permitted public security group rule port ranges. Can be defined multiple times per resource. Only valid if `block_public_security_group_rules` is set to `true`. """ - pulumi.set(__self__, "block_public_security_group_rules", block_public_security_group_rules) + BlockPublicAccessConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_public_security_group_rules=block_public_security_group_rules, + permitted_public_security_group_rule_ranges=permitted_public_security_group_rule_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_public_security_group_rules: Optional[pulumi.Input[bool]] = None, + permitted_public_security_group_rule_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_public_security_group_rules is None and 'blockPublicSecurityGroupRules' in kwargs: + block_public_security_group_rules = kwargs['blockPublicSecurityGroupRules'] + if block_public_security_group_rules is None: + raise TypeError("Missing 'block_public_security_group_rules' argument") + if permitted_public_security_group_rule_ranges is None and 'permittedPublicSecurityGroupRuleRanges' in kwargs: + permitted_public_security_group_rule_ranges = kwargs['permittedPublicSecurityGroupRuleRanges'] + + _setter("block_public_security_group_rules", block_public_security_group_rules) if permitted_public_security_group_rule_ranges is not None: - pulumi.set(__self__, "permitted_public_security_group_rule_ranges", permitted_public_security_group_rule_ranges) + _setter("permitted_public_security_group_rule_ranges", permitted_public_security_group_rule_ranges) @property @pulumi.getter(name="blockPublicSecurityGroupRules") @@ -68,10 +87,27 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Sequence[pulumi.Input['BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs']]] permitted_public_security_group_rule_ranges: Configuration block for defining permitted public security group rule port ranges. Can be defined multiple times per resource. Only valid if `block_public_security_group_rules` is set to `true`. """ + _BlockPublicAccessConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_public_security_group_rules=block_public_security_group_rules, + permitted_public_security_group_rule_ranges=permitted_public_security_group_rule_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_public_security_group_rules: Optional[pulumi.Input[bool]] = None, + permitted_public_security_group_rule_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRangeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_public_security_group_rules is None and 'blockPublicSecurityGroupRules' in kwargs: + block_public_security_group_rules = kwargs['blockPublicSecurityGroupRules'] + if permitted_public_security_group_rule_ranges is None and 'permittedPublicSecurityGroupRuleRanges' in kwargs: + permitted_public_security_group_rule_ranges = kwargs['permittedPublicSecurityGroupRuleRanges'] + if block_public_security_group_rules is not None: - pulumi.set(__self__, "block_public_security_group_rules", block_public_security_group_rules) + _setter("block_public_security_group_rules", block_public_security_group_rules) if permitted_public_security_group_rule_ranges is not None: - pulumi.set(__self__, "permitted_public_security_group_rule_ranges", permitted_public_security_group_rule_ranges) + _setter("permitted_public_security_group_rule_ranges", permitted_public_security_group_rule_ranges) @property @pulumi.getter(name="blockPublicSecurityGroupRules") @@ -269,6 +305,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BlockPublicAccessConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/emr/cluster.py b/sdk/python/pulumi_aws/emr/cluster.py index fd6562e1079..5a3dec0e653 100644 --- a/sdk/python/pulumi_aws/emr/cluster.py +++ b/sdk/python/pulumi_aws/emr/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -105,64 +105,187 @@ def __init__(__self__, *, :param pulumi.Input[bool] termination_protection: Switch on/off termination protection (default is `false`, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to `false`. :param pulumi.Input[bool] visible_to_all_users: Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is `true`. """ - pulumi.set(__self__, "release_label", release_label) - pulumi.set(__self__, "service_role", service_role) + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + release_label=release_label, + service_role=service_role, + additional_info=additional_info, + applications=applications, + auto_termination_policy=auto_termination_policy, + autoscaling_role=autoscaling_role, + bootstrap_actions=bootstrap_actions, + configurations=configurations, + configurations_json=configurations_json, + core_instance_fleet=core_instance_fleet, + core_instance_group=core_instance_group, + custom_ami_id=custom_ami_id, + ebs_root_volume_size=ebs_root_volume_size, + ec2_attributes=ec2_attributes, + keep_job_flow_alive_when_no_steps=keep_job_flow_alive_when_no_steps, + kerberos_attributes=kerberos_attributes, + list_steps_states=list_steps_states, + log_encryption_kms_key_id=log_encryption_kms_key_id, + log_uri=log_uri, + master_instance_fleet=master_instance_fleet, + master_instance_group=master_instance_group, + name=name, + placement_group_configs=placement_group_configs, + scale_down_behavior=scale_down_behavior, + security_configuration=security_configuration, + step_concurrency_level=step_concurrency_level, + steps=steps, + tags=tags, + termination_protection=termination_protection, + visible_to_all_users=visible_to_all_users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + release_label: Optional[pulumi.Input[str]] = None, + service_role: Optional[pulumi.Input[str]] = None, + additional_info: Optional[pulumi.Input[str]] = None, + applications: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + auto_termination_policy: Optional[pulumi.Input['ClusterAutoTerminationPolicyArgs']] = None, + autoscaling_role: Optional[pulumi.Input[str]] = None, + bootstrap_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterBootstrapActionArgs']]]] = None, + configurations: Optional[pulumi.Input[str]] = None, + configurations_json: Optional[pulumi.Input[str]] = None, + core_instance_fleet: Optional[pulumi.Input['ClusterCoreInstanceFleetArgs']] = None, + core_instance_group: Optional[pulumi.Input['ClusterCoreInstanceGroupArgs']] = None, + custom_ami_id: Optional[pulumi.Input[str]] = None, + ebs_root_volume_size: Optional[pulumi.Input[int]] = None, + ec2_attributes: Optional[pulumi.Input['ClusterEc2AttributesArgs']] = None, + keep_job_flow_alive_when_no_steps: Optional[pulumi.Input[bool]] = None, + kerberos_attributes: Optional[pulumi.Input['ClusterKerberosAttributesArgs']] = None, + list_steps_states: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + log_encryption_kms_key_id: Optional[pulumi.Input[str]] = None, + log_uri: Optional[pulumi.Input[str]] = None, + master_instance_fleet: Optional[pulumi.Input['ClusterMasterInstanceFleetArgs']] = None, + master_instance_group: Optional[pulumi.Input['ClusterMasterInstanceGroupArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + placement_group_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterPlacementGroupConfigArgs']]]] = None, + scale_down_behavior: Optional[pulumi.Input[str]] = None, + security_configuration: Optional[pulumi.Input[str]] = None, + step_concurrency_level: Optional[pulumi.Input[int]] = None, + steps: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterStepArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + termination_protection: Optional[pulumi.Input[bool]] = None, + visible_to_all_users: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if release_label is None and 'releaseLabel' in kwargs: + release_label = kwargs['releaseLabel'] + if release_label is None: + raise TypeError("Missing 'release_label' argument") + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if service_role is None: + raise TypeError("Missing 'service_role' argument") + if additional_info is None and 'additionalInfo' in kwargs: + additional_info = kwargs['additionalInfo'] + if auto_termination_policy is None and 'autoTerminationPolicy' in kwargs: + auto_termination_policy = kwargs['autoTerminationPolicy'] + if autoscaling_role is None and 'autoscalingRole' in kwargs: + autoscaling_role = kwargs['autoscalingRole'] + if bootstrap_actions is None and 'bootstrapActions' in kwargs: + bootstrap_actions = kwargs['bootstrapActions'] + if configurations_json is None and 'configurationsJson' in kwargs: + configurations_json = kwargs['configurationsJson'] + if core_instance_fleet is None and 'coreInstanceFleet' in kwargs: + core_instance_fleet = kwargs['coreInstanceFleet'] + if core_instance_group is None and 'coreInstanceGroup' in kwargs: + core_instance_group = kwargs['coreInstanceGroup'] + if custom_ami_id is None and 'customAmiId' in kwargs: + custom_ami_id = kwargs['customAmiId'] + if ebs_root_volume_size is None and 'ebsRootVolumeSize' in kwargs: + ebs_root_volume_size = kwargs['ebsRootVolumeSize'] + if ec2_attributes is None and 'ec2Attributes' in kwargs: + ec2_attributes = kwargs['ec2Attributes'] + if keep_job_flow_alive_when_no_steps is None and 'keepJobFlowAliveWhenNoSteps' in kwargs: + keep_job_flow_alive_when_no_steps = kwargs['keepJobFlowAliveWhenNoSteps'] + if kerberos_attributes is None and 'kerberosAttributes' in kwargs: + kerberos_attributes = kwargs['kerberosAttributes'] + if list_steps_states is None and 'listStepsStates' in kwargs: + list_steps_states = kwargs['listStepsStates'] + if log_encryption_kms_key_id is None and 'logEncryptionKmsKeyId' in kwargs: + log_encryption_kms_key_id = kwargs['logEncryptionKmsKeyId'] + if log_uri is None and 'logUri' in kwargs: + log_uri = kwargs['logUri'] + if master_instance_fleet is None and 'masterInstanceFleet' in kwargs: + master_instance_fleet = kwargs['masterInstanceFleet'] + if master_instance_group is None and 'masterInstanceGroup' in kwargs: + master_instance_group = kwargs['masterInstanceGroup'] + if placement_group_configs is None and 'placementGroupConfigs' in kwargs: + placement_group_configs = kwargs['placementGroupConfigs'] + if scale_down_behavior is None and 'scaleDownBehavior' in kwargs: + scale_down_behavior = kwargs['scaleDownBehavior'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if step_concurrency_level is None and 'stepConcurrencyLevel' in kwargs: + step_concurrency_level = kwargs['stepConcurrencyLevel'] + if termination_protection is None and 'terminationProtection' in kwargs: + termination_protection = kwargs['terminationProtection'] + if visible_to_all_users is None and 'visibleToAllUsers' in kwargs: + visible_to_all_users = kwargs['visibleToAllUsers'] + + _setter("release_label", release_label) + _setter("service_role", service_role) if additional_info is not None: - pulumi.set(__self__, "additional_info", additional_info) + _setter("additional_info", additional_info) if applications is not None: - pulumi.set(__self__, "applications", applications) + _setter("applications", applications) if auto_termination_policy is not None: - pulumi.set(__self__, "auto_termination_policy", auto_termination_policy) + _setter("auto_termination_policy", auto_termination_policy) if autoscaling_role is not None: - pulumi.set(__self__, "autoscaling_role", autoscaling_role) + _setter("autoscaling_role", autoscaling_role) if bootstrap_actions is not None: - pulumi.set(__self__, "bootstrap_actions", bootstrap_actions) + _setter("bootstrap_actions", bootstrap_actions) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if configurations_json is not None: - pulumi.set(__self__, "configurations_json", configurations_json) + _setter("configurations_json", configurations_json) if core_instance_fleet is not None: - pulumi.set(__self__, "core_instance_fleet", core_instance_fleet) + _setter("core_instance_fleet", core_instance_fleet) if core_instance_group is not None: - pulumi.set(__self__, "core_instance_group", core_instance_group) + _setter("core_instance_group", core_instance_group) if custom_ami_id is not None: - pulumi.set(__self__, "custom_ami_id", custom_ami_id) + _setter("custom_ami_id", custom_ami_id) if ebs_root_volume_size is not None: - pulumi.set(__self__, "ebs_root_volume_size", ebs_root_volume_size) + _setter("ebs_root_volume_size", ebs_root_volume_size) if ec2_attributes is not None: - pulumi.set(__self__, "ec2_attributes", ec2_attributes) + _setter("ec2_attributes", ec2_attributes) if keep_job_flow_alive_when_no_steps is not None: - pulumi.set(__self__, "keep_job_flow_alive_when_no_steps", keep_job_flow_alive_when_no_steps) + _setter("keep_job_flow_alive_when_no_steps", keep_job_flow_alive_when_no_steps) if kerberos_attributes is not None: - pulumi.set(__self__, "kerberos_attributes", kerberos_attributes) + _setter("kerberos_attributes", kerberos_attributes) if list_steps_states is not None: - pulumi.set(__self__, "list_steps_states", list_steps_states) + _setter("list_steps_states", list_steps_states) if log_encryption_kms_key_id is not None: - pulumi.set(__self__, "log_encryption_kms_key_id", log_encryption_kms_key_id) + _setter("log_encryption_kms_key_id", log_encryption_kms_key_id) if log_uri is not None: - pulumi.set(__self__, "log_uri", log_uri) + _setter("log_uri", log_uri) if master_instance_fleet is not None: - pulumi.set(__self__, "master_instance_fleet", master_instance_fleet) + _setter("master_instance_fleet", master_instance_fleet) if master_instance_group is not None: - pulumi.set(__self__, "master_instance_group", master_instance_group) + _setter("master_instance_group", master_instance_group) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if placement_group_configs is not None: - pulumi.set(__self__, "placement_group_configs", placement_group_configs) + _setter("placement_group_configs", placement_group_configs) if scale_down_behavior is not None: - pulumi.set(__self__, "scale_down_behavior", scale_down_behavior) + _setter("scale_down_behavior", scale_down_behavior) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if step_concurrency_level is not None: - pulumi.set(__self__, "step_concurrency_level", step_concurrency_level) + _setter("step_concurrency_level", step_concurrency_level) if steps is not None: - pulumi.set(__self__, "steps", steps) + _setter("steps", steps) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if termination_protection is not None: - pulumi.set(__self__, "termination_protection", termination_protection) + _setter("termination_protection", termination_protection) if visible_to_all_users is not None: - pulumi.set(__self__, "visible_to_all_users", visible_to_all_users) + _setter("visible_to_all_users", visible_to_all_users) @property @pulumi.getter(name="releaseLabel") @@ -650,77 +773,210 @@ def __init__(__self__, *, :param pulumi.Input[bool] termination_protection: Switch on/off termination protection (default is `false`, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to `false`. :param pulumi.Input[bool] visible_to_all_users: Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is `true`. """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_info=additional_info, + applications=applications, + arn=arn, + auto_termination_policy=auto_termination_policy, + autoscaling_role=autoscaling_role, + bootstrap_actions=bootstrap_actions, + cluster_state=cluster_state, + configurations=configurations, + configurations_json=configurations_json, + core_instance_fleet=core_instance_fleet, + core_instance_group=core_instance_group, + custom_ami_id=custom_ami_id, + ebs_root_volume_size=ebs_root_volume_size, + ec2_attributes=ec2_attributes, + keep_job_flow_alive_when_no_steps=keep_job_flow_alive_when_no_steps, + kerberos_attributes=kerberos_attributes, + list_steps_states=list_steps_states, + log_encryption_kms_key_id=log_encryption_kms_key_id, + log_uri=log_uri, + master_instance_fleet=master_instance_fleet, + master_instance_group=master_instance_group, + master_public_dns=master_public_dns, + name=name, + placement_group_configs=placement_group_configs, + release_label=release_label, + scale_down_behavior=scale_down_behavior, + security_configuration=security_configuration, + service_role=service_role, + step_concurrency_level=step_concurrency_level, + steps=steps, + tags=tags, + tags_all=tags_all, + termination_protection=termination_protection, + visible_to_all_users=visible_to_all_users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_info: Optional[pulumi.Input[str]] = None, + applications: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_termination_policy: Optional[pulumi.Input['ClusterAutoTerminationPolicyArgs']] = None, + autoscaling_role: Optional[pulumi.Input[str]] = None, + bootstrap_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterBootstrapActionArgs']]]] = None, + cluster_state: Optional[pulumi.Input[str]] = None, + configurations: Optional[pulumi.Input[str]] = None, + configurations_json: Optional[pulumi.Input[str]] = None, + core_instance_fleet: Optional[pulumi.Input['ClusterCoreInstanceFleetArgs']] = None, + core_instance_group: Optional[pulumi.Input['ClusterCoreInstanceGroupArgs']] = None, + custom_ami_id: Optional[pulumi.Input[str]] = None, + ebs_root_volume_size: Optional[pulumi.Input[int]] = None, + ec2_attributes: Optional[pulumi.Input['ClusterEc2AttributesArgs']] = None, + keep_job_flow_alive_when_no_steps: Optional[pulumi.Input[bool]] = None, + kerberos_attributes: Optional[pulumi.Input['ClusterKerberosAttributesArgs']] = None, + list_steps_states: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + log_encryption_kms_key_id: Optional[pulumi.Input[str]] = None, + log_uri: Optional[pulumi.Input[str]] = None, + master_instance_fleet: Optional[pulumi.Input['ClusterMasterInstanceFleetArgs']] = None, + master_instance_group: Optional[pulumi.Input['ClusterMasterInstanceGroupArgs']] = None, + master_public_dns: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + placement_group_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterPlacementGroupConfigArgs']]]] = None, + release_label: Optional[pulumi.Input[str]] = None, + scale_down_behavior: Optional[pulumi.Input[str]] = None, + security_configuration: Optional[pulumi.Input[str]] = None, + service_role: Optional[pulumi.Input[str]] = None, + step_concurrency_level: Optional[pulumi.Input[int]] = None, + steps: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterStepArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + termination_protection: Optional[pulumi.Input[bool]] = None, + visible_to_all_users: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_info is None and 'additionalInfo' in kwargs: + additional_info = kwargs['additionalInfo'] + if auto_termination_policy is None and 'autoTerminationPolicy' in kwargs: + auto_termination_policy = kwargs['autoTerminationPolicy'] + if autoscaling_role is None and 'autoscalingRole' in kwargs: + autoscaling_role = kwargs['autoscalingRole'] + if bootstrap_actions is None and 'bootstrapActions' in kwargs: + bootstrap_actions = kwargs['bootstrapActions'] + if cluster_state is None and 'clusterState' in kwargs: + cluster_state = kwargs['clusterState'] + if configurations_json is None and 'configurationsJson' in kwargs: + configurations_json = kwargs['configurationsJson'] + if core_instance_fleet is None and 'coreInstanceFleet' in kwargs: + core_instance_fleet = kwargs['coreInstanceFleet'] + if core_instance_group is None and 'coreInstanceGroup' in kwargs: + core_instance_group = kwargs['coreInstanceGroup'] + if custom_ami_id is None and 'customAmiId' in kwargs: + custom_ami_id = kwargs['customAmiId'] + if ebs_root_volume_size is None and 'ebsRootVolumeSize' in kwargs: + ebs_root_volume_size = kwargs['ebsRootVolumeSize'] + if ec2_attributes is None and 'ec2Attributes' in kwargs: + ec2_attributes = kwargs['ec2Attributes'] + if keep_job_flow_alive_when_no_steps is None and 'keepJobFlowAliveWhenNoSteps' in kwargs: + keep_job_flow_alive_when_no_steps = kwargs['keepJobFlowAliveWhenNoSteps'] + if kerberos_attributes is None and 'kerberosAttributes' in kwargs: + kerberos_attributes = kwargs['kerberosAttributes'] + if list_steps_states is None and 'listStepsStates' in kwargs: + list_steps_states = kwargs['listStepsStates'] + if log_encryption_kms_key_id is None and 'logEncryptionKmsKeyId' in kwargs: + log_encryption_kms_key_id = kwargs['logEncryptionKmsKeyId'] + if log_uri is None and 'logUri' in kwargs: + log_uri = kwargs['logUri'] + if master_instance_fleet is None and 'masterInstanceFleet' in kwargs: + master_instance_fleet = kwargs['masterInstanceFleet'] + if master_instance_group is None and 'masterInstanceGroup' in kwargs: + master_instance_group = kwargs['masterInstanceGroup'] + if master_public_dns is None and 'masterPublicDns' in kwargs: + master_public_dns = kwargs['masterPublicDns'] + if placement_group_configs is None and 'placementGroupConfigs' in kwargs: + placement_group_configs = kwargs['placementGroupConfigs'] + if release_label is None and 'releaseLabel' in kwargs: + release_label = kwargs['releaseLabel'] + if scale_down_behavior is None and 'scaleDownBehavior' in kwargs: + scale_down_behavior = kwargs['scaleDownBehavior'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if step_concurrency_level is None and 'stepConcurrencyLevel' in kwargs: + step_concurrency_level = kwargs['stepConcurrencyLevel'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if termination_protection is None and 'terminationProtection' in kwargs: + termination_protection = kwargs['terminationProtection'] + if visible_to_all_users is None and 'visibleToAllUsers' in kwargs: + visible_to_all_users = kwargs['visibleToAllUsers'] + if additional_info is not None: - pulumi.set(__self__, "additional_info", additional_info) + _setter("additional_info", additional_info) if applications is not None: - pulumi.set(__self__, "applications", applications) + _setter("applications", applications) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_termination_policy is not None: - pulumi.set(__self__, "auto_termination_policy", auto_termination_policy) + _setter("auto_termination_policy", auto_termination_policy) if autoscaling_role is not None: - pulumi.set(__self__, "autoscaling_role", autoscaling_role) + _setter("autoscaling_role", autoscaling_role) if bootstrap_actions is not None: - pulumi.set(__self__, "bootstrap_actions", bootstrap_actions) + _setter("bootstrap_actions", bootstrap_actions) if cluster_state is not None: - pulumi.set(__self__, "cluster_state", cluster_state) + _setter("cluster_state", cluster_state) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if configurations_json is not None: - pulumi.set(__self__, "configurations_json", configurations_json) + _setter("configurations_json", configurations_json) if core_instance_fleet is not None: - pulumi.set(__self__, "core_instance_fleet", core_instance_fleet) + _setter("core_instance_fleet", core_instance_fleet) if core_instance_group is not None: - pulumi.set(__self__, "core_instance_group", core_instance_group) + _setter("core_instance_group", core_instance_group) if custom_ami_id is not None: - pulumi.set(__self__, "custom_ami_id", custom_ami_id) + _setter("custom_ami_id", custom_ami_id) if ebs_root_volume_size is not None: - pulumi.set(__self__, "ebs_root_volume_size", ebs_root_volume_size) + _setter("ebs_root_volume_size", ebs_root_volume_size) if ec2_attributes is not None: - pulumi.set(__self__, "ec2_attributes", ec2_attributes) + _setter("ec2_attributes", ec2_attributes) if keep_job_flow_alive_when_no_steps is not None: - pulumi.set(__self__, "keep_job_flow_alive_when_no_steps", keep_job_flow_alive_when_no_steps) + _setter("keep_job_flow_alive_when_no_steps", keep_job_flow_alive_when_no_steps) if kerberos_attributes is not None: - pulumi.set(__self__, "kerberos_attributes", kerberos_attributes) + _setter("kerberos_attributes", kerberos_attributes) if list_steps_states is not None: - pulumi.set(__self__, "list_steps_states", list_steps_states) + _setter("list_steps_states", list_steps_states) if log_encryption_kms_key_id is not None: - pulumi.set(__self__, "log_encryption_kms_key_id", log_encryption_kms_key_id) + _setter("log_encryption_kms_key_id", log_encryption_kms_key_id) if log_uri is not None: - pulumi.set(__self__, "log_uri", log_uri) + _setter("log_uri", log_uri) if master_instance_fleet is not None: - pulumi.set(__self__, "master_instance_fleet", master_instance_fleet) + _setter("master_instance_fleet", master_instance_fleet) if master_instance_group is not None: - pulumi.set(__self__, "master_instance_group", master_instance_group) + _setter("master_instance_group", master_instance_group) if master_public_dns is not None: - pulumi.set(__self__, "master_public_dns", master_public_dns) + _setter("master_public_dns", master_public_dns) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if placement_group_configs is not None: - pulumi.set(__self__, "placement_group_configs", placement_group_configs) + _setter("placement_group_configs", placement_group_configs) if release_label is not None: - pulumi.set(__self__, "release_label", release_label) + _setter("release_label", release_label) if scale_down_behavior is not None: - pulumi.set(__self__, "scale_down_behavior", scale_down_behavior) + _setter("scale_down_behavior", scale_down_behavior) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if service_role is not None: - pulumi.set(__self__, "service_role", service_role) + _setter("service_role", service_role) if step_concurrency_level is not None: - pulumi.set(__self__, "step_concurrency_level", step_concurrency_level) + _setter("step_concurrency_level", step_concurrency_level) if steps is not None: - pulumi.set(__self__, "steps", steps) + _setter("steps", steps) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if termination_protection is not None: - pulumi.set(__self__, "termination_protection", termination_protection) + _setter("termination_protection", termination_protection) if visible_to_all_users is not None: - pulumi.set(__self__, "visible_to_all_users", visible_to_all_users) + _setter("visible_to_all_users", visible_to_all_users) @property @pulumi.getter(name="additionalInfo") @@ -1800,6 +2056,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1846,22 +2106,29 @@ def _internal_init(__self__, __props__.__dict__["additional_info"] = additional_info __props__.__dict__["applications"] = applications + auto_termination_policy = _utilities.configure(auto_termination_policy, ClusterAutoTerminationPolicyArgs, True) __props__.__dict__["auto_termination_policy"] = auto_termination_policy __props__.__dict__["autoscaling_role"] = autoscaling_role __props__.__dict__["bootstrap_actions"] = bootstrap_actions __props__.__dict__["configurations"] = configurations __props__.__dict__["configurations_json"] = configurations_json + core_instance_fleet = _utilities.configure(core_instance_fleet, ClusterCoreInstanceFleetArgs, True) __props__.__dict__["core_instance_fleet"] = core_instance_fleet + core_instance_group = _utilities.configure(core_instance_group, ClusterCoreInstanceGroupArgs, True) __props__.__dict__["core_instance_group"] = core_instance_group __props__.__dict__["custom_ami_id"] = custom_ami_id __props__.__dict__["ebs_root_volume_size"] = ebs_root_volume_size + ec2_attributes = _utilities.configure(ec2_attributes, ClusterEc2AttributesArgs, True) __props__.__dict__["ec2_attributes"] = ec2_attributes __props__.__dict__["keep_job_flow_alive_when_no_steps"] = keep_job_flow_alive_when_no_steps + kerberos_attributes = _utilities.configure(kerberos_attributes, ClusterKerberosAttributesArgs, True) __props__.__dict__["kerberos_attributes"] = kerberos_attributes __props__.__dict__["list_steps_states"] = list_steps_states __props__.__dict__["log_encryption_kms_key_id"] = log_encryption_kms_key_id __props__.__dict__["log_uri"] = log_uri + master_instance_fleet = _utilities.configure(master_instance_fleet, ClusterMasterInstanceFleetArgs, True) __props__.__dict__["master_instance_fleet"] = master_instance_fleet + master_instance_group = _utilities.configure(master_instance_group, ClusterMasterInstanceGroupArgs, True) __props__.__dict__["master_instance_group"] = master_instance_group __props__.__dict__["name"] = name __props__.__dict__["placement_group_configs"] = placement_group_configs diff --git a/sdk/python/pulumi_aws/emr/get_release_labels.py b/sdk/python/pulumi_aws/emr/get_release_labels.py index f326a1ef9f1..9a4d6e6c049 100644 --- a/sdk/python/pulumi_aws/emr/get_release_labels.py +++ b/sdk/python/pulumi_aws/emr/get_release_labels.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/emr/instance_fleet.py b/sdk/python/pulumi_aws/emr/instance_fleet.py index a18097ce9fd..215a3cc0550 100644 --- a/sdk/python/pulumi_aws/emr/instance_fleet.py +++ b/sdk/python/pulumi_aws/emr/instance_fleet.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,17 +31,50 @@ def __init__(__self__, *, :param pulumi.Input[int] target_on_demand_capacity: The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision. :param pulumi.Input[int] target_spot_capacity: The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision. """ - pulumi.set(__self__, "cluster_id", cluster_id) + InstanceFleetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_id=cluster_id, + instance_type_configs=instance_type_configs, + launch_specifications=launch_specifications, + name=name, + target_on_demand_capacity=target_on_demand_capacity, + target_spot_capacity=target_spot_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_id: Optional[pulumi.Input[str]] = None, + instance_type_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFleetInstanceTypeConfigArgs']]]] = None, + launch_specifications: Optional[pulumi.Input['InstanceFleetLaunchSpecificationsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + target_on_demand_capacity: Optional[pulumi.Input[int]] = None, + target_spot_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if cluster_id is None: + raise TypeError("Missing 'cluster_id' argument") + if instance_type_configs is None and 'instanceTypeConfigs' in kwargs: + instance_type_configs = kwargs['instanceTypeConfigs'] + if launch_specifications is None and 'launchSpecifications' in kwargs: + launch_specifications = kwargs['launchSpecifications'] + if target_on_demand_capacity is None and 'targetOnDemandCapacity' in kwargs: + target_on_demand_capacity = kwargs['targetOnDemandCapacity'] + if target_spot_capacity is None and 'targetSpotCapacity' in kwargs: + target_spot_capacity = kwargs['targetSpotCapacity'] + + _setter("cluster_id", cluster_id) if instance_type_configs is not None: - pulumi.set(__self__, "instance_type_configs", instance_type_configs) + _setter("instance_type_configs", instance_type_configs) if launch_specifications is not None: - pulumi.set(__self__, "launch_specifications", launch_specifications) + _setter("launch_specifications", launch_specifications) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if target_on_demand_capacity is not None: - pulumi.set(__self__, "target_on_demand_capacity", target_on_demand_capacity) + _setter("target_on_demand_capacity", target_on_demand_capacity) if target_spot_capacity is not None: - pulumi.set(__self__, "target_spot_capacity", target_spot_capacity) + _setter("target_spot_capacity", target_spot_capacity) @property @pulumi.getter(name="clusterId") @@ -140,22 +173,61 @@ def __init__(__self__, *, :param pulumi.Input[int] target_on_demand_capacity: The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision. :param pulumi.Input[int] target_spot_capacity: The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision. """ + _InstanceFleetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_id=cluster_id, + instance_type_configs=instance_type_configs, + launch_specifications=launch_specifications, + name=name, + provisioned_on_demand_capacity=provisioned_on_demand_capacity, + provisioned_spot_capacity=provisioned_spot_capacity, + target_on_demand_capacity=target_on_demand_capacity, + target_spot_capacity=target_spot_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_id: Optional[pulumi.Input[str]] = None, + instance_type_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFleetInstanceTypeConfigArgs']]]] = None, + launch_specifications: Optional[pulumi.Input['InstanceFleetLaunchSpecificationsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + provisioned_on_demand_capacity: Optional[pulumi.Input[int]] = None, + provisioned_spot_capacity: Optional[pulumi.Input[int]] = None, + target_on_demand_capacity: Optional[pulumi.Input[int]] = None, + target_spot_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if instance_type_configs is None and 'instanceTypeConfigs' in kwargs: + instance_type_configs = kwargs['instanceTypeConfigs'] + if launch_specifications is None and 'launchSpecifications' in kwargs: + launch_specifications = kwargs['launchSpecifications'] + if provisioned_on_demand_capacity is None and 'provisionedOnDemandCapacity' in kwargs: + provisioned_on_demand_capacity = kwargs['provisionedOnDemandCapacity'] + if provisioned_spot_capacity is None and 'provisionedSpotCapacity' in kwargs: + provisioned_spot_capacity = kwargs['provisionedSpotCapacity'] + if target_on_demand_capacity is None and 'targetOnDemandCapacity' in kwargs: + target_on_demand_capacity = kwargs['targetOnDemandCapacity'] + if target_spot_capacity is None and 'targetSpotCapacity' in kwargs: + target_spot_capacity = kwargs['targetSpotCapacity'] + if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if instance_type_configs is not None: - pulumi.set(__self__, "instance_type_configs", instance_type_configs) + _setter("instance_type_configs", instance_type_configs) if launch_specifications is not None: - pulumi.set(__self__, "launch_specifications", launch_specifications) + _setter("launch_specifications", launch_specifications) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provisioned_on_demand_capacity is not None: - pulumi.set(__self__, "provisioned_on_demand_capacity", provisioned_on_demand_capacity) + _setter("provisioned_on_demand_capacity", provisioned_on_demand_capacity) if provisioned_spot_capacity is not None: - pulumi.set(__self__, "provisioned_spot_capacity", provisioned_spot_capacity) + _setter("provisioned_spot_capacity", provisioned_spot_capacity) if target_on_demand_capacity is not None: - pulumi.set(__self__, "target_on_demand_capacity", target_on_demand_capacity) + _setter("target_on_demand_capacity", target_on_demand_capacity) if target_spot_capacity is not None: - pulumi.set(__self__, "target_spot_capacity", target_spot_capacity) + _setter("target_spot_capacity", target_spot_capacity) @property @pulumi.getter(name="clusterId") @@ -409,6 +481,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceFleetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -433,6 +509,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'cluster_id'") __props__.__dict__["cluster_id"] = cluster_id __props__.__dict__["instance_type_configs"] = instance_type_configs + launch_specifications = _utilities.configure(launch_specifications, InstanceFleetLaunchSpecificationsArgs, True) __props__.__dict__["launch_specifications"] = launch_specifications __props__.__dict__["name"] = name __props__.__dict__["target_on_demand_capacity"] = target_on_demand_capacity diff --git a/sdk/python/pulumi_aws/emr/instance_group.py b/sdk/python/pulumi_aws/emr/instance_group.py index 03fe99107d0..340c97d5920 100644 --- a/sdk/python/pulumi_aws/emr/instance_group.py +++ b/sdk/python/pulumi_aws/emr/instance_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -59,22 +59,69 @@ def __init__(__self__, *, :param pulumi.Input[int] instance_count: target number of instances for the instance group. defaults to 0. :param pulumi.Input[str] name: Human friendly name given to the instance group. Changing this forces a new resource to be created. """ - pulumi.set(__self__, "cluster_id", cluster_id) - pulumi.set(__self__, "instance_type", instance_type) + InstanceGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_id=cluster_id, + instance_type=instance_type, + autoscaling_policy=autoscaling_policy, + bid_price=bid_price, + configurations_json=configurations_json, + ebs_configs=ebs_configs, + ebs_optimized=ebs_optimized, + instance_count=instance_count, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_id: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + autoscaling_policy: Optional[pulumi.Input[str]] = None, + bid_price: Optional[pulumi.Input[str]] = None, + configurations_json: Optional[pulumi.Input[str]] = None, + ebs_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGroupEbsConfigArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if cluster_id is None: + raise TypeError("Missing 'cluster_id' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if autoscaling_policy is None and 'autoscalingPolicy' in kwargs: + autoscaling_policy = kwargs['autoscalingPolicy'] + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if configurations_json is None and 'configurationsJson' in kwargs: + configurations_json = kwargs['configurationsJson'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + + _setter("cluster_id", cluster_id) + _setter("instance_type", instance_type) if autoscaling_policy is not None: - pulumi.set(__self__, "autoscaling_policy", autoscaling_policy) + _setter("autoscaling_policy", autoscaling_policy) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if configurations_json is not None: - pulumi.set(__self__, "configurations_json", configurations_json) + _setter("configurations_json", configurations_json) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="clusterId") @@ -257,28 +304,77 @@ def __init__(__self__, *, :param pulumi.Input[int] running_instance_count: The number of instances currently running in this instance group. :param pulumi.Input[str] status: The current status of the instance group. """ + _InstanceGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling_policy=autoscaling_policy, + bid_price=bid_price, + cluster_id=cluster_id, + configurations_json=configurations_json, + ebs_configs=ebs_configs, + ebs_optimized=ebs_optimized, + instance_count=instance_count, + instance_type=instance_type, + name=name, + running_instance_count=running_instance_count, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling_policy: Optional[pulumi.Input[str]] = None, + bid_price: Optional[pulumi.Input[str]] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + configurations_json: Optional[pulumi.Input[str]] = None, + ebs_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGroupEbsConfigArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + running_instance_count: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autoscaling_policy is None and 'autoscalingPolicy' in kwargs: + autoscaling_policy = kwargs['autoscalingPolicy'] + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if configurations_json is None and 'configurationsJson' in kwargs: + configurations_json = kwargs['configurationsJson'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if running_instance_count is None and 'runningInstanceCount' in kwargs: + running_instance_count = kwargs['runningInstanceCount'] + if autoscaling_policy is not None: - pulumi.set(__self__, "autoscaling_policy", autoscaling_policy) + _setter("autoscaling_policy", autoscaling_policy) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if configurations_json is not None: - pulumi.set(__self__, "configurations_json", configurations_json) + _setter("configurations_json", configurations_json) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if running_instance_count is not None: - pulumi.set(__self__, "running_instance_count", running_instance_count) + _setter("running_instance_count", running_instance_count) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="autoscalingPolicy") @@ -556,6 +652,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/emr/managed_scaling_policy.py b/sdk/python/pulumi_aws/emr/managed_scaling_policy.py index 379bc41bcc2..1d6909b61f3 100644 --- a/sdk/python/pulumi_aws/emr/managed_scaling_policy.py +++ b/sdk/python/pulumi_aws/emr/managed_scaling_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_id: ID of the EMR cluster :param pulumi.Input[Sequence[pulumi.Input['ManagedScalingPolicyComputeLimitArgs']]] compute_limits: Configuration block with compute limit settings. Described below. """ - pulumi.set(__self__, "cluster_id", cluster_id) - pulumi.set(__self__, "compute_limits", compute_limits) + ManagedScalingPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_id=cluster_id, + compute_limits=compute_limits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_id: Optional[pulumi.Input[str]] = None, + compute_limits: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedScalingPolicyComputeLimitArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if cluster_id is None: + raise TypeError("Missing 'cluster_id' argument") + if compute_limits is None and 'computeLimits' in kwargs: + compute_limits = kwargs['computeLimits'] + if compute_limits is None: + raise TypeError("Missing 'compute_limits' argument") + + _setter("cluster_id", cluster_id) + _setter("compute_limits", compute_limits) @property @pulumi.getter(name="clusterId") @@ -61,10 +82,27 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_id: ID of the EMR cluster :param pulumi.Input[Sequence[pulumi.Input['ManagedScalingPolicyComputeLimitArgs']]] compute_limits: Configuration block with compute limit settings. Described below. """ + _ManagedScalingPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_id=cluster_id, + compute_limits=compute_limits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_id: Optional[pulumi.Input[str]] = None, + compute_limits: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedScalingPolicyComputeLimitArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + if compute_limits is None and 'computeLimits' in kwargs: + compute_limits = kwargs['computeLimits'] + if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if compute_limits is not None: - pulumi.set(__self__, "compute_limits", compute_limits) + _setter("compute_limits", compute_limits) @property @pulumi.getter(name="clusterId") @@ -194,6 +232,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ManagedScalingPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/emr/outputs.py b/sdk/python/pulumi_aws/emr/outputs.py index d64d6ba957b..96c803683b8 100644 --- a/sdk/python/pulumi_aws/emr/outputs.py +++ b/sdk/python/pulumi_aws/emr/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -76,8 +76,29 @@ def __init__(__self__, *, :param int max_range: The final port in the range of TCP ports. :param int min_range: The first port in the range of TCP ports. """ - pulumi.set(__self__, "max_range", max_range) - pulumi.set(__self__, "min_range", min_range) + BlockPublicAccessConfigurationPermittedPublicSecurityGroupRuleRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_range=max_range, + min_range=min_range, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_range: Optional[int] = None, + min_range: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_range is None and 'maxRange' in kwargs: + max_range = kwargs['maxRange'] + if max_range is None: + raise TypeError("Missing 'max_range' argument") + if min_range is None and 'minRange' in kwargs: + min_range = kwargs['minRange'] + if min_range is None: + raise TypeError("Missing 'min_range' argument") + + _setter("max_range", max_range) + _setter("min_range", min_range) @property @pulumi.getter(name="maxRange") @@ -120,8 +141,21 @@ def __init__(__self__, *, """ :param int idle_timeout: Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of `60` seconds and a maximum of `604800` seconds (seven days). """ + ClusterAutoTerminationPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle_timeout=idle_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle_timeout is None and 'idleTimeout' in kwargs: + idle_timeout = kwargs['idleTimeout'] + if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + _setter("idle_timeout", idle_timeout) @property @pulumi.getter(name="idleTimeout") @@ -143,10 +177,29 @@ def __init__(__self__, *, :param str path: Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system. :param Sequence[str] args: List of command line arguments to pass to the bootstrap action script. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "path", path) + ClusterBootstrapAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + path=path, + args=args, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + path: Optional[str] = None, + args: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("name", name) + _setter("path", path) if args is not None: - pulumi.set(__self__, "args", args) + _setter("args", args) @property @pulumi.getter @@ -219,22 +272,59 @@ def __init__(__self__, *, :param int target_on_demand_capacity: The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision. :param int target_spot_capacity: Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision. """ + ClusterCoreInstanceFleet._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + instance_type_configs=instance_type_configs, + launch_specifications=launch_specifications, + name=name, + provisioned_on_demand_capacity=provisioned_on_demand_capacity, + provisioned_spot_capacity=provisioned_spot_capacity, + target_on_demand_capacity=target_on_demand_capacity, + target_spot_capacity=target_spot_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + instance_type_configs: Optional[Sequence['outputs.ClusterCoreInstanceFleetInstanceTypeConfig']] = None, + launch_specifications: Optional['outputs.ClusterCoreInstanceFleetLaunchSpecifications'] = None, + name: Optional[str] = None, + provisioned_on_demand_capacity: Optional[int] = None, + provisioned_spot_capacity: Optional[int] = None, + target_on_demand_capacity: Optional[int] = None, + target_spot_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type_configs is None and 'instanceTypeConfigs' in kwargs: + instance_type_configs = kwargs['instanceTypeConfigs'] + if launch_specifications is None and 'launchSpecifications' in kwargs: + launch_specifications = kwargs['launchSpecifications'] + if provisioned_on_demand_capacity is None and 'provisionedOnDemandCapacity' in kwargs: + provisioned_on_demand_capacity = kwargs['provisionedOnDemandCapacity'] + if provisioned_spot_capacity is None and 'provisionedSpotCapacity' in kwargs: + provisioned_spot_capacity = kwargs['provisionedSpotCapacity'] + if target_on_demand_capacity is None and 'targetOnDemandCapacity' in kwargs: + target_on_demand_capacity = kwargs['targetOnDemandCapacity'] + if target_spot_capacity is None and 'targetSpotCapacity' in kwargs: + target_spot_capacity = kwargs['targetSpotCapacity'] + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if instance_type_configs is not None: - pulumi.set(__self__, "instance_type_configs", instance_type_configs) + _setter("instance_type_configs", instance_type_configs) if launch_specifications is not None: - pulumi.set(__self__, "launch_specifications", launch_specifications) + _setter("launch_specifications", launch_specifications) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provisioned_on_demand_capacity is not None: - pulumi.set(__self__, "provisioned_on_demand_capacity", provisioned_on_demand_capacity) + _setter("provisioned_on_demand_capacity", provisioned_on_demand_capacity) if provisioned_spot_capacity is not None: - pulumi.set(__self__, "provisioned_spot_capacity", provisioned_spot_capacity) + _setter("provisioned_spot_capacity", provisioned_spot_capacity) if target_on_demand_capacity is not None: - pulumi.set(__self__, "target_on_demand_capacity", target_on_demand_capacity) + _setter("target_on_demand_capacity", target_on_demand_capacity) if target_spot_capacity is not None: - pulumi.set(__self__, "target_spot_capacity", target_spot_capacity) + _setter("target_spot_capacity", target_spot_capacity) @property @pulumi.getter @@ -337,17 +427,50 @@ def __init__(__self__, *, :param Sequence['ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs'] ebs_configs: Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below. :param int weighted_capacity: Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `emr.InstanceFleet`. """ - pulumi.set(__self__, "instance_type", instance_type) + ClusterCoreInstanceFleetInstanceTypeConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + bid_price=bid_price, + bid_price_as_percentage_of_on_demand_price=bid_price_as_percentage_of_on_demand_price, + configurations=configurations, + ebs_configs=ebs_configs, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + bid_price: Optional[str] = None, + bid_price_as_percentage_of_on_demand_price: Optional[float] = None, + configurations: Optional[Sequence['outputs.ClusterCoreInstanceFleetInstanceTypeConfigConfiguration']] = None, + ebs_configs: Optional[Sequence['outputs.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfig']] = None, + weighted_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if bid_price_as_percentage_of_on_demand_price is None and 'bidPriceAsPercentageOfOnDemandPrice' in kwargs: + bid_price_as_percentage_of_on_demand_price = kwargs['bidPriceAsPercentageOfOnDemandPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("instance_type", instance_type) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if bid_price_as_percentage_of_on_demand_price is not None: - pulumi.set(__self__, "bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) + _setter("bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceType") @@ -407,10 +530,23 @@ def __init__(__self__, *, :param str classification: Classification within a configuration. :param Mapping[str, str] properties: Map of properties specified within a configuration classification. """ + ClusterCoreInstanceFleetInstanceTypeConfigConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[str] = None, + properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is not None: - pulumi.set(__self__, "classification", classification) + _setter("classification", classification) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -459,12 +595,35 @@ def __init__(__self__, *, :param int iops: Number of I/O operations per second (IOPS) that the volume supports. :param int volumes_per_instance: Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1). """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + ClusterCoreInstanceFleetInstanceTypeConfigEbsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + type: Optional[str] = None, + iops: Optional[int] = None, + volumes_per_instance: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -527,10 +686,27 @@ def __init__(__self__, *, :param Sequence['ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs'] on_demand_specifications: Configuration block for on demand instances launch specifications. :param Sequence['ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs'] spot_specifications: Configuration block for spot instances launch specifications. """ + ClusterCoreInstanceFleetLaunchSpecifications._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_demand_specifications=on_demand_specifications, + spot_specifications=spot_specifications, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_demand_specifications: Optional[Sequence['outputs.ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecification']] = None, + spot_specifications: Optional[Sequence['outputs.ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecification']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_demand_specifications is None and 'onDemandSpecifications' in kwargs: + on_demand_specifications = kwargs['onDemandSpecifications'] + if spot_specifications is None and 'spotSpecifications' in kwargs: + spot_specifications = kwargs['spotSpecifications'] + if on_demand_specifications is not None: - pulumi.set(__self__, "on_demand_specifications", on_demand_specifications) + _setter("on_demand_specifications", on_demand_specifications) if spot_specifications is not None: - pulumi.set(__self__, "spot_specifications", spot_specifications) + _setter("spot_specifications", spot_specifications) @property @pulumi.getter(name="onDemandSpecifications") @@ -573,7 +749,22 @@ def __init__(__self__, *, """ :param str allocation_strategy: Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is `lowest-price` (the default), which launches the lowest price first. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + + _setter("allocation_strategy", allocation_strategy) @property @pulumi.getter(name="allocationStrategy") @@ -620,11 +811,42 @@ def __init__(__self__, *, :param int timeout_duration_minutes: Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created. :param int block_duration_minutes: Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) - pulumi.set(__self__, "timeout_action", timeout_action) - pulumi.set(__self__, "timeout_duration_minutes", timeout_duration_minutes) + ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + timeout_action=timeout_action, + timeout_duration_minutes=timeout_duration_minutes, + block_duration_minutes=block_duration_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[str] = None, + timeout_action: Optional[str] = None, + timeout_duration_minutes: Optional[int] = None, + block_duration_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + if timeout_action is None and 'timeoutAction' in kwargs: + timeout_action = kwargs['timeoutAction'] + if timeout_action is None: + raise TypeError("Missing 'timeout_action' argument") + if timeout_duration_minutes is None and 'timeoutDurationMinutes' in kwargs: + timeout_duration_minutes = kwargs['timeoutDurationMinutes'] + if timeout_duration_minutes is None: + raise TypeError("Missing 'timeout_duration_minutes' argument") + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + + _setter("allocation_strategy", allocation_strategy) + _setter("timeout_action", timeout_action) + _setter("timeout_duration_minutes", timeout_duration_minutes) if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) @property @pulumi.getter(name="allocationStrategy") @@ -703,19 +925,54 @@ def __init__(__self__, *, :param int instance_count: Target number of instances for the instance group. Must be at least 1. Defaults to 1. :param str name: Friendly name given to the instance group. """ - pulumi.set(__self__, "instance_type", instance_type) + ClusterCoreInstanceGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + autoscaling_policy=autoscaling_policy, + bid_price=bid_price, + ebs_configs=ebs_configs, + id=id, + instance_count=instance_count, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + autoscaling_policy: Optional[str] = None, + bid_price: Optional[str] = None, + ebs_configs: Optional[Sequence['outputs.ClusterCoreInstanceGroupEbsConfig']] = None, + id: Optional[str] = None, + instance_count: Optional[int] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if autoscaling_policy is None and 'autoscalingPolicy' in kwargs: + autoscaling_policy = kwargs['autoscalingPolicy'] + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + + _setter("instance_type", instance_type) if autoscaling_policy is not None: - pulumi.set(__self__, "autoscaling_policy", autoscaling_policy) + _setter("autoscaling_policy", autoscaling_policy) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="instanceType") @@ -806,14 +1063,39 @@ def __init__(__self__, *, :param int throughput: The throughput, in mebibyte per second (MiB/s). :param int volumes_per_instance: Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1). """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + ClusterCoreInstanceGroupEbsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + throughput=throughput, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + type: Optional[str] = None, + iops: Optional[int] = None, + throughput: Optional[int] = None, + volumes_per_instance: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -914,23 +1196,70 @@ def __init__(__self__, *, > **NOTE on EMR-Managed security groups:** These security groups will have any missing inbound or outbound access rules added and maintained by AWS, to ensure proper communication between instances in a cluster. The EMR service will maintain these rules for groups provided in `emr_managed_master_security_group` and `emr_managed_slave_security_group`; attempts to remove the required rules may succeed, only for the EMR service to re-add them in a matter of minutes. This may cause this provider to fail to destroy an environment that contains an EMR cluster, because the EMR service does not revoke rules added on deletion, leaving a cyclic dependency between the security groups that prevents their deletion. To avoid this, use the `revoke_rules_on_delete` optional attribute for any Security Group used in `emr_managed_master_security_group` and `emr_managed_slave_security_group`. See [Amazon EMR-Managed Security Groups](http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html) for more information about the EMR-managed security group rules. """ - pulumi.set(__self__, "instance_profile", instance_profile) + ClusterEc2Attributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_profile=instance_profile, + additional_master_security_groups=additional_master_security_groups, + additional_slave_security_groups=additional_slave_security_groups, + emr_managed_master_security_group=emr_managed_master_security_group, + emr_managed_slave_security_group=emr_managed_slave_security_group, + key_name=key_name, + service_access_security_group=service_access_security_group, + subnet_id=subnet_id, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_profile: Optional[str] = None, + additional_master_security_groups: Optional[str] = None, + additional_slave_security_groups: Optional[str] = None, + emr_managed_master_security_group: Optional[str] = None, + emr_managed_slave_security_group: Optional[str] = None, + key_name: Optional[str] = None, + service_access_security_group: Optional[str] = None, + subnet_id: Optional[str] = None, + subnet_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_profile is None and 'instanceProfile' in kwargs: + instance_profile = kwargs['instanceProfile'] + if instance_profile is None: + raise TypeError("Missing 'instance_profile' argument") + if additional_master_security_groups is None and 'additionalMasterSecurityGroups' in kwargs: + additional_master_security_groups = kwargs['additionalMasterSecurityGroups'] + if additional_slave_security_groups is None and 'additionalSlaveSecurityGroups' in kwargs: + additional_slave_security_groups = kwargs['additionalSlaveSecurityGroups'] + if emr_managed_master_security_group is None and 'emrManagedMasterSecurityGroup' in kwargs: + emr_managed_master_security_group = kwargs['emrManagedMasterSecurityGroup'] + if emr_managed_slave_security_group is None and 'emrManagedSlaveSecurityGroup' in kwargs: + emr_managed_slave_security_group = kwargs['emrManagedSlaveSecurityGroup'] + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if service_access_security_group is None and 'serviceAccessSecurityGroup' in kwargs: + service_access_security_group = kwargs['serviceAccessSecurityGroup'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + + _setter("instance_profile", instance_profile) if additional_master_security_groups is not None: - pulumi.set(__self__, "additional_master_security_groups", additional_master_security_groups) + _setter("additional_master_security_groups", additional_master_security_groups) if additional_slave_security_groups is not None: - pulumi.set(__self__, "additional_slave_security_groups", additional_slave_security_groups) + _setter("additional_slave_security_groups", additional_slave_security_groups) if emr_managed_master_security_group is not None: - pulumi.set(__self__, "emr_managed_master_security_group", emr_managed_master_security_group) + _setter("emr_managed_master_security_group", emr_managed_master_security_group) if emr_managed_slave_security_group is not None: - pulumi.set(__self__, "emr_managed_slave_security_group", emr_managed_slave_security_group) + _setter("emr_managed_slave_security_group", emr_managed_slave_security_group) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if service_access_security_group is not None: - pulumi.set(__self__, "service_access_security_group", service_access_security_group) + _setter("service_access_security_group", service_access_security_group) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="instanceProfile") @@ -1045,14 +1374,45 @@ def __init__(__self__, *, :param str ad_domain_join_user: Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration. :param str cross_realm_trust_principal_password: Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration. """ - pulumi.set(__self__, "kdc_admin_password", kdc_admin_password) - pulumi.set(__self__, "realm", realm) + ClusterKerberosAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + kdc_admin_password=kdc_admin_password, + realm=realm, + ad_domain_join_password=ad_domain_join_password, + ad_domain_join_user=ad_domain_join_user, + cross_realm_trust_principal_password=cross_realm_trust_principal_password, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kdc_admin_password: Optional[str] = None, + realm: Optional[str] = None, + ad_domain_join_password: Optional[str] = None, + ad_domain_join_user: Optional[str] = None, + cross_realm_trust_principal_password: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kdc_admin_password is None and 'kdcAdminPassword' in kwargs: + kdc_admin_password = kwargs['kdcAdminPassword'] + if kdc_admin_password is None: + raise TypeError("Missing 'kdc_admin_password' argument") + if realm is None: + raise TypeError("Missing 'realm' argument") + if ad_domain_join_password is None and 'adDomainJoinPassword' in kwargs: + ad_domain_join_password = kwargs['adDomainJoinPassword'] + if ad_domain_join_user is None and 'adDomainJoinUser' in kwargs: + ad_domain_join_user = kwargs['adDomainJoinUser'] + if cross_realm_trust_principal_password is None and 'crossRealmTrustPrincipalPassword' in kwargs: + cross_realm_trust_principal_password = kwargs['crossRealmTrustPrincipalPassword'] + + _setter("kdc_admin_password", kdc_admin_password) + _setter("realm", realm) if ad_domain_join_password is not None: - pulumi.set(__self__, "ad_domain_join_password", ad_domain_join_password) + _setter("ad_domain_join_password", ad_domain_join_password) if ad_domain_join_user is not None: - pulumi.set(__self__, "ad_domain_join_user", ad_domain_join_user) + _setter("ad_domain_join_user", ad_domain_join_user) if cross_realm_trust_principal_password is not None: - pulumi.set(__self__, "cross_realm_trust_principal_password", cross_realm_trust_principal_password) + _setter("cross_realm_trust_principal_password", cross_realm_trust_principal_password) @property @pulumi.getter(name="kdcAdminPassword") @@ -1141,22 +1501,59 @@ def __init__(__self__, *, :param int target_on_demand_capacity: Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision. :param int target_spot_capacity: Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision. """ + ClusterMasterInstanceFleet._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + instance_type_configs=instance_type_configs, + launch_specifications=launch_specifications, + name=name, + provisioned_on_demand_capacity=provisioned_on_demand_capacity, + provisioned_spot_capacity=provisioned_spot_capacity, + target_on_demand_capacity=target_on_demand_capacity, + target_spot_capacity=target_spot_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + instance_type_configs: Optional[Sequence['outputs.ClusterMasterInstanceFleetInstanceTypeConfig']] = None, + launch_specifications: Optional['outputs.ClusterMasterInstanceFleetLaunchSpecifications'] = None, + name: Optional[str] = None, + provisioned_on_demand_capacity: Optional[int] = None, + provisioned_spot_capacity: Optional[int] = None, + target_on_demand_capacity: Optional[int] = None, + target_spot_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type_configs is None and 'instanceTypeConfigs' in kwargs: + instance_type_configs = kwargs['instanceTypeConfigs'] + if launch_specifications is None and 'launchSpecifications' in kwargs: + launch_specifications = kwargs['launchSpecifications'] + if provisioned_on_demand_capacity is None and 'provisionedOnDemandCapacity' in kwargs: + provisioned_on_demand_capacity = kwargs['provisionedOnDemandCapacity'] + if provisioned_spot_capacity is None and 'provisionedSpotCapacity' in kwargs: + provisioned_spot_capacity = kwargs['provisionedSpotCapacity'] + if target_on_demand_capacity is None and 'targetOnDemandCapacity' in kwargs: + target_on_demand_capacity = kwargs['targetOnDemandCapacity'] + if target_spot_capacity is None and 'targetSpotCapacity' in kwargs: + target_spot_capacity = kwargs['targetSpotCapacity'] + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if instance_type_configs is not None: - pulumi.set(__self__, "instance_type_configs", instance_type_configs) + _setter("instance_type_configs", instance_type_configs) if launch_specifications is not None: - pulumi.set(__self__, "launch_specifications", launch_specifications) + _setter("launch_specifications", launch_specifications) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provisioned_on_demand_capacity is not None: - pulumi.set(__self__, "provisioned_on_demand_capacity", provisioned_on_demand_capacity) + _setter("provisioned_on_demand_capacity", provisioned_on_demand_capacity) if provisioned_spot_capacity is not None: - pulumi.set(__self__, "provisioned_spot_capacity", provisioned_spot_capacity) + _setter("provisioned_spot_capacity", provisioned_spot_capacity) if target_on_demand_capacity is not None: - pulumi.set(__self__, "target_on_demand_capacity", target_on_demand_capacity) + _setter("target_on_demand_capacity", target_on_demand_capacity) if target_spot_capacity is not None: - pulumi.set(__self__, "target_spot_capacity", target_spot_capacity) + _setter("target_spot_capacity", target_spot_capacity) @property @pulumi.getter @@ -1259,17 +1656,50 @@ def __init__(__self__, *, :param Sequence['ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArgs'] ebs_configs: Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below. :param int weighted_capacity: Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `emr.InstanceFleet`. """ - pulumi.set(__self__, "instance_type", instance_type) + ClusterMasterInstanceFleetInstanceTypeConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + bid_price=bid_price, + bid_price_as_percentage_of_on_demand_price=bid_price_as_percentage_of_on_demand_price, + configurations=configurations, + ebs_configs=ebs_configs, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + bid_price: Optional[str] = None, + bid_price_as_percentage_of_on_demand_price: Optional[float] = None, + configurations: Optional[Sequence['outputs.ClusterMasterInstanceFleetInstanceTypeConfigConfiguration']] = None, + ebs_configs: Optional[Sequence['outputs.ClusterMasterInstanceFleetInstanceTypeConfigEbsConfig']] = None, + weighted_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if bid_price_as_percentage_of_on_demand_price is None and 'bidPriceAsPercentageOfOnDemandPrice' in kwargs: + bid_price_as_percentage_of_on_demand_price = kwargs['bidPriceAsPercentageOfOnDemandPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("instance_type", instance_type) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if bid_price_as_percentage_of_on_demand_price is not None: - pulumi.set(__self__, "bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) + _setter("bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceType") @@ -1329,10 +1759,23 @@ def __init__(__self__, *, :param str classification: Classification within a configuration. :param Mapping[str, str] properties: Map of properties specified within a configuration classification. """ + ClusterMasterInstanceFleetInstanceTypeConfigConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[str] = None, + properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is not None: - pulumi.set(__self__, "classification", classification) + _setter("classification", classification) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -1381,12 +1824,35 @@ def __init__(__self__, *, :param int iops: Number of I/O operations per second (IOPS) that the volume supports. :param int volumes_per_instance: Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1). """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + ClusterMasterInstanceFleetInstanceTypeConfigEbsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + type: Optional[str] = None, + iops: Optional[int] = None, + volumes_per_instance: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -1449,10 +1915,27 @@ def __init__(__self__, *, :param Sequence['ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs'] on_demand_specifications: Configuration block for on demand instances launch specifications. :param Sequence['ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecificationArgs'] spot_specifications: Configuration block for spot instances launch specifications. """ + ClusterMasterInstanceFleetLaunchSpecifications._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_demand_specifications=on_demand_specifications, + spot_specifications=spot_specifications, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_demand_specifications: Optional[Sequence['outputs.ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecification']] = None, + spot_specifications: Optional[Sequence['outputs.ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecification']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_demand_specifications is None and 'onDemandSpecifications' in kwargs: + on_demand_specifications = kwargs['onDemandSpecifications'] + if spot_specifications is None and 'spotSpecifications' in kwargs: + spot_specifications = kwargs['spotSpecifications'] + if on_demand_specifications is not None: - pulumi.set(__self__, "on_demand_specifications", on_demand_specifications) + _setter("on_demand_specifications", on_demand_specifications) if spot_specifications is not None: - pulumi.set(__self__, "spot_specifications", spot_specifications) + _setter("spot_specifications", spot_specifications) @property @pulumi.getter(name="onDemandSpecifications") @@ -1495,7 +1978,22 @@ def __init__(__self__, *, """ :param str allocation_strategy: Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is `lowest-price` (the default), which launches the lowest price first. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + + _setter("allocation_strategy", allocation_strategy) @property @pulumi.getter(name="allocationStrategy") @@ -1542,11 +2040,42 @@ def __init__(__self__, *, :param int timeout_duration_minutes: Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created. :param int block_duration_minutes: Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) - pulumi.set(__self__, "timeout_action", timeout_action) - pulumi.set(__self__, "timeout_duration_minutes", timeout_duration_minutes) + ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + timeout_action=timeout_action, + timeout_duration_minutes=timeout_duration_minutes, + block_duration_minutes=block_duration_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[str] = None, + timeout_action: Optional[str] = None, + timeout_duration_minutes: Optional[int] = None, + block_duration_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + if timeout_action is None and 'timeoutAction' in kwargs: + timeout_action = kwargs['timeoutAction'] + if timeout_action is None: + raise TypeError("Missing 'timeout_action' argument") + if timeout_duration_minutes is None and 'timeoutDurationMinutes' in kwargs: + timeout_duration_minutes = kwargs['timeoutDurationMinutes'] + if timeout_duration_minutes is None: + raise TypeError("Missing 'timeout_duration_minutes' argument") + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + + _setter("allocation_strategy", allocation_strategy) + _setter("timeout_action", timeout_action) + _setter("timeout_duration_minutes", timeout_duration_minutes) if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) @property @pulumi.getter(name="allocationStrategy") @@ -1621,17 +2150,48 @@ def __init__(__self__, *, :param int instance_count: Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `core_instance_group` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have map public IP on launch enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `termination_protection = false` configuration applied before destroying this resource. :param str name: Friendly name given to the instance group. """ - pulumi.set(__self__, "instance_type", instance_type) + ClusterMasterInstanceGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + bid_price=bid_price, + ebs_configs=ebs_configs, + id=id, + instance_count=instance_count, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + bid_price: Optional[str] = None, + ebs_configs: Optional[Sequence['outputs.ClusterMasterInstanceGroupEbsConfig']] = None, + id: Optional[str] = None, + instance_count: Optional[int] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + + _setter("instance_type", instance_type) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="instanceType") @@ -1714,14 +2274,39 @@ def __init__(__self__, *, :param int throughput: The throughput, in mebibyte per second (MiB/s). :param int volumes_per_instance: Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1). """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + ClusterMasterInstanceGroupEbsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + throughput=throughput, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + type: Optional[str] = None, + iops: Optional[int] = None, + throughput: Optional[int] = None, + volumes_per_instance: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -1792,9 +2377,28 @@ def __init__(__self__, *, :param str instance_role: Role of the instance in the cluster. Valid Values: `MASTER`, `CORE`, `TASK`. :param str placement_strategy: EC2 Placement Group strategy associated with instance role. Valid Values: `SPREAD`, `PARTITION`, `CLUSTER`, `NONE`. """ - pulumi.set(__self__, "instance_role", instance_role) + ClusterPlacementGroupConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_role=instance_role, + placement_strategy=placement_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_role: Optional[str] = None, + placement_strategy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_role is None and 'instanceRole' in kwargs: + instance_role = kwargs['instanceRole'] + if instance_role is None: + raise TypeError("Missing 'instance_role' argument") + if placement_strategy is None and 'placementStrategy' in kwargs: + placement_strategy = kwargs['placementStrategy'] + + _setter("instance_role", instance_role) if placement_strategy is not None: - pulumi.set(__self__, "placement_strategy", placement_strategy) + _setter("placement_strategy", placement_strategy) @property @pulumi.getter(name="instanceRole") @@ -1843,9 +2447,34 @@ def __init__(__self__, *, :param 'ClusterStepHadoopJarStepArgs' hadoop_jar_step: JAR file used for the step. See below. :param str name: Name of the step. """ - pulumi.set(__self__, "action_on_failure", action_on_failure) - pulumi.set(__self__, "hadoop_jar_step", hadoop_jar_step) - pulumi.set(__self__, "name", name) + ClusterStep._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_on_failure=action_on_failure, + hadoop_jar_step=hadoop_jar_step, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_on_failure: Optional[str] = None, + hadoop_jar_step: Optional['outputs.ClusterStepHadoopJarStep'] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_on_failure is None and 'actionOnFailure' in kwargs: + action_on_failure = kwargs['actionOnFailure'] + if action_on_failure is None: + raise TypeError("Missing 'action_on_failure' argument") + if hadoop_jar_step is None and 'hadoopJarStep' in kwargs: + hadoop_jar_step = kwargs['hadoopJarStep'] + if hadoop_jar_step is None: + raise TypeError("Missing 'hadoop_jar_step' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("action_on_failure", action_on_failure) + _setter("hadoop_jar_step", hadoop_jar_step) + _setter("name", name) @property @pulumi.getter(name="actionOnFailure") @@ -1902,13 +2531,34 @@ def __init__(__self__, *, :param str main_class: Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file. :param Mapping[str, str] properties: Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function. """ - pulumi.set(__self__, "jar", jar) + ClusterStepHadoopJarStep._configure( + lambda key, value: pulumi.set(__self__, key, value), + jar=jar, + args=args, + main_class=main_class, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jar: Optional[str] = None, + args: Optional[Sequence[str]] = None, + main_class: Optional[str] = None, + properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jar is None: + raise TypeError("Missing 'jar' argument") + if main_class is None and 'mainClass' in kwargs: + main_class = kwargs['mainClass'] + + _setter("jar", jar) if args is not None: - pulumi.set(__self__, "args", args) + _setter("args", args) if main_class is not None: - pulumi.set(__self__, "main_class", main_class) + _setter("main_class", main_class) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -1985,17 +2635,50 @@ def __init__(__self__, *, :param Sequence['InstanceFleetInstanceTypeConfigEbsConfigArgs'] ebs_configs: Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below. :param int weighted_capacity: The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `emr.InstanceFleet`. """ - pulumi.set(__self__, "instance_type", instance_type) + InstanceFleetInstanceTypeConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + bid_price=bid_price, + bid_price_as_percentage_of_on_demand_price=bid_price_as_percentage_of_on_demand_price, + configurations=configurations, + ebs_configs=ebs_configs, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + bid_price: Optional[str] = None, + bid_price_as_percentage_of_on_demand_price: Optional[float] = None, + configurations: Optional[Sequence['outputs.InstanceFleetInstanceTypeConfigConfiguration']] = None, + ebs_configs: Optional[Sequence['outputs.InstanceFleetInstanceTypeConfigEbsConfig']] = None, + weighted_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if bid_price is None and 'bidPrice' in kwargs: + bid_price = kwargs['bidPrice'] + if bid_price_as_percentage_of_on_demand_price is None and 'bidPriceAsPercentageOfOnDemandPrice' in kwargs: + bid_price_as_percentage_of_on_demand_price = kwargs['bidPriceAsPercentageOfOnDemandPrice'] + if ebs_configs is None and 'ebsConfigs' in kwargs: + ebs_configs = kwargs['ebsConfigs'] + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("instance_type", instance_type) if bid_price is not None: - pulumi.set(__self__, "bid_price", bid_price) + _setter("bid_price", bid_price) if bid_price_as_percentage_of_on_demand_price is not None: - pulumi.set(__self__, "bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) + _setter("bid_price_as_percentage_of_on_demand_price", bid_price_as_percentage_of_on_demand_price) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if ebs_configs is not None: - pulumi.set(__self__, "ebs_configs", ebs_configs) + _setter("ebs_configs", ebs_configs) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceType") @@ -2055,10 +2738,23 @@ def __init__(__self__, *, :param str classification: The classification within a configuration. :param Mapping[str, str] properties: A map of properties specified within a configuration classification """ + InstanceFleetInstanceTypeConfigConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[str] = None, + properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is not None: - pulumi.set(__self__, "classification", classification) + _setter("classification", classification) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -2107,12 +2803,35 @@ def __init__(__self__, *, :param int iops: The number of I/O operations per second (IOPS) that the volume supports :param int volumes_per_instance: The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1) """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + InstanceFleetInstanceTypeConfigEbsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + type: Optional[str] = None, + iops: Optional[int] = None, + volumes_per_instance: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -2175,10 +2894,27 @@ def __init__(__self__, *, :param Sequence['InstanceFleetLaunchSpecificationsOnDemandSpecificationArgs'] on_demand_specifications: Configuration block for on demand instances launch specifications :param Sequence['InstanceFleetLaunchSpecificationsSpotSpecificationArgs'] spot_specifications: Configuration block for spot instances launch specifications """ + InstanceFleetLaunchSpecifications._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_demand_specifications=on_demand_specifications, + spot_specifications=spot_specifications, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_demand_specifications: Optional[Sequence['outputs.InstanceFleetLaunchSpecificationsOnDemandSpecification']] = None, + spot_specifications: Optional[Sequence['outputs.InstanceFleetLaunchSpecificationsSpotSpecification']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_demand_specifications is None and 'onDemandSpecifications' in kwargs: + on_demand_specifications = kwargs['onDemandSpecifications'] + if spot_specifications is None and 'spotSpecifications' in kwargs: + spot_specifications = kwargs['spotSpecifications'] + if on_demand_specifications is not None: - pulumi.set(__self__, "on_demand_specifications", on_demand_specifications) + _setter("on_demand_specifications", on_demand_specifications) if spot_specifications is not None: - pulumi.set(__self__, "spot_specifications", spot_specifications) + _setter("spot_specifications", spot_specifications) @property @pulumi.getter(name="onDemandSpecifications") @@ -2221,7 +2957,22 @@ def __init__(__self__, *, """ :param str allocation_strategy: Specifies the strategy to use in launching Spot instance fleets. Currently, the only option is `capacity-optimized` (the default), which launches instances from Spot instance pools with optimal capacity for the number of instances that are launching. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) + InstanceFleetLaunchSpecificationsOnDemandSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + + _setter("allocation_strategy", allocation_strategy) @property @pulumi.getter(name="allocationStrategy") @@ -2268,11 +3019,42 @@ def __init__(__self__, *, :param int timeout_duration_minutes: The spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created. :param int block_duration_minutes: The defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. """ - pulumi.set(__self__, "allocation_strategy", allocation_strategy) - pulumi.set(__self__, "timeout_action", timeout_action) - pulumi.set(__self__, "timeout_duration_minutes", timeout_duration_minutes) + InstanceFleetLaunchSpecificationsSpotSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_strategy=allocation_strategy, + timeout_action=timeout_action, + timeout_duration_minutes=timeout_duration_minutes, + block_duration_minutes=block_duration_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_strategy: Optional[str] = None, + timeout_action: Optional[str] = None, + timeout_duration_minutes: Optional[int] = None, + block_duration_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_strategy is None and 'allocationStrategy' in kwargs: + allocation_strategy = kwargs['allocationStrategy'] + if allocation_strategy is None: + raise TypeError("Missing 'allocation_strategy' argument") + if timeout_action is None and 'timeoutAction' in kwargs: + timeout_action = kwargs['timeoutAction'] + if timeout_action is None: + raise TypeError("Missing 'timeout_action' argument") + if timeout_duration_minutes is None and 'timeoutDurationMinutes' in kwargs: + timeout_duration_minutes = kwargs['timeoutDurationMinutes'] + if timeout_duration_minutes is None: + raise TypeError("Missing 'timeout_duration_minutes' argument") + if block_duration_minutes is None and 'blockDurationMinutes' in kwargs: + block_duration_minutes = kwargs['blockDurationMinutes'] + + _setter("allocation_strategy", allocation_strategy) + _setter("timeout_action", timeout_action) + _setter("timeout_duration_minutes", timeout_duration_minutes) if block_duration_minutes is not None: - pulumi.set(__self__, "block_duration_minutes", block_duration_minutes) + _setter("block_duration_minutes", block_duration_minutes) @property @pulumi.getter(name="allocationStrategy") @@ -2337,12 +3119,35 @@ def __init__(__self__, *, :param int iops: The number of I/O operations per second (IOPS) that the volume supports. :param int volumes_per_instance: The number of EBS Volumes to attach per instance. """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + InstanceGroupEbsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + iops=iops, + volumes_per_instance=volumes_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + type: Optional[str] = None, + iops: Optional[int] = None, + volumes_per_instance: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if volumes_per_instance is None and 'volumesPerInstance' in kwargs: + volumes_per_instance = kwargs['volumesPerInstance'] + + _setter("size", size) + _setter("type", type) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volumes_per_instance is not None: - pulumi.set(__self__, "volumes_per_instance", volumes_per_instance) + _setter("volumes_per_instance", volumes_per_instance) @property @pulumi.getter @@ -2417,13 +3222,48 @@ def __init__(__self__, *, :param int maximum_core_capacity_units: The upper boundary of EC2 units for core node type in a cluster. It is measured through VCPU cores or instances for instance groups and measured through units for instance fleets. The core units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between core and task nodes. :param int maximum_ondemand_capacity_units: The upper boundary of On-Demand EC2 units. It is measured through VCPU cores or instances for instance groups and measured through units for instance fleets. The On-Demand units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between On-Demand and Spot instances. """ - pulumi.set(__self__, "maximum_capacity_units", maximum_capacity_units) - pulumi.set(__self__, "minimum_capacity_units", minimum_capacity_units) - pulumi.set(__self__, "unit_type", unit_type) + ManagedScalingPolicyComputeLimit._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_capacity_units=maximum_capacity_units, + minimum_capacity_units=minimum_capacity_units, + unit_type=unit_type, + maximum_core_capacity_units=maximum_core_capacity_units, + maximum_ondemand_capacity_units=maximum_ondemand_capacity_units, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_capacity_units: Optional[int] = None, + minimum_capacity_units: Optional[int] = None, + unit_type: Optional[str] = None, + maximum_core_capacity_units: Optional[int] = None, + maximum_ondemand_capacity_units: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_capacity_units is None and 'maximumCapacityUnits' in kwargs: + maximum_capacity_units = kwargs['maximumCapacityUnits'] + if maximum_capacity_units is None: + raise TypeError("Missing 'maximum_capacity_units' argument") + if minimum_capacity_units is None and 'minimumCapacityUnits' in kwargs: + minimum_capacity_units = kwargs['minimumCapacityUnits'] + if minimum_capacity_units is None: + raise TypeError("Missing 'minimum_capacity_units' argument") + if unit_type is None and 'unitType' in kwargs: + unit_type = kwargs['unitType'] + if unit_type is None: + raise TypeError("Missing 'unit_type' argument") + if maximum_core_capacity_units is None and 'maximumCoreCapacityUnits' in kwargs: + maximum_core_capacity_units = kwargs['maximumCoreCapacityUnits'] + if maximum_ondemand_capacity_units is None and 'maximumOndemandCapacityUnits' in kwargs: + maximum_ondemand_capacity_units = kwargs['maximumOndemandCapacityUnits'] + + _setter("maximum_capacity_units", maximum_capacity_units) + _setter("minimum_capacity_units", minimum_capacity_units) + _setter("unit_type", unit_type) if maximum_core_capacity_units is not None: - pulumi.set(__self__, "maximum_core_capacity_units", maximum_core_capacity_units) + _setter("maximum_core_capacity_units", maximum_core_capacity_units) if maximum_ondemand_capacity_units is not None: - pulumi.set(__self__, "maximum_ondemand_capacity_units", maximum_ondemand_capacity_units) + _setter("maximum_ondemand_capacity_units", maximum_ondemand_capacity_units) @property @pulumi.getter(name="maximumCapacityUnits") @@ -2475,10 +3315,23 @@ def __init__(__self__, *, :param str application: Optional release label application filter. For example, `Spark@2.1.0` or `Spark`. :param str prefix: Optional release label version prefix filter. For example, `emr-5`. """ + GetReleaseLabelsFiltersResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + application=application, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application is not None: - pulumi.set(__self__, "application", application) + _setter("application", application) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/emr/security_configuration.py b/sdk/python/pulumi_aws/emr/security_configuration.py index ac656c03810..2ced1bb4c7f 100644 --- a/sdk/python/pulumi_aws/emr/security_configuration.py +++ b/sdk/python/pulumi_aws/emr/security_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SecurityConfigurationArgs', 'SecurityConfiguration'] @@ -24,11 +24,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. """ - pulumi.set(__self__, "configuration", configuration) + SecurityConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + name=name, + name_prefix=name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration is None: + raise TypeError("Missing 'configuration' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("configuration", configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) @property @pulumi.getter @@ -83,14 +102,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. """ + _SecurityConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + creation_date=creation_date, + name=name, + name_prefix=name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[pulumi.Input[str]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) @property @pulumi.getter @@ -246,6 +286,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecurityConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/emr/studio.py b/sdk/python/pulumi_aws/emr/studio.py index 42d5ec41896..fe05348cb1d 100644 --- a/sdk/python/pulumi_aws/emr/studio.py +++ b/sdk/python/pulumi_aws/emr/studio.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StudioArgs', 'Studio'] @@ -45,25 +45,94 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: list of tags to apply to the EMR Cluster. 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] user_role: The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a User Role when you use Amazon Web Services SSO authentication. The permissions attached to the User Role can be scoped down for each user or group using session policies. """ - pulumi.set(__self__, "auth_mode", auth_mode) - pulumi.set(__self__, "default_s3_location", default_s3_location) - pulumi.set(__self__, "engine_security_group_id", engine_security_group_id) - pulumi.set(__self__, "service_role", service_role) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) - pulumi.set(__self__, "workspace_security_group_id", workspace_security_group_id) + StudioArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_mode=auth_mode, + default_s3_location=default_s3_location, + engine_security_group_id=engine_security_group_id, + service_role=service_role, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + workspace_security_group_id=workspace_security_group_id, + description=description, + idp_auth_url=idp_auth_url, + idp_relay_state_parameter_name=idp_relay_state_parameter_name, + name=name, + tags=tags, + user_role=user_role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_mode: Optional[pulumi.Input[str]] = None, + default_s3_location: Optional[pulumi.Input[str]] = None, + engine_security_group_id: Optional[pulumi.Input[str]] = None, + service_role: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + workspace_security_group_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + idp_auth_url: Optional[pulumi.Input[str]] = None, + idp_relay_state_parameter_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_role: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_mode is None and 'authMode' in kwargs: + auth_mode = kwargs['authMode'] + if auth_mode is None: + raise TypeError("Missing 'auth_mode' argument") + if default_s3_location is None and 'defaultS3Location' in kwargs: + default_s3_location = kwargs['defaultS3Location'] + if default_s3_location is None: + raise TypeError("Missing 'default_s3_location' argument") + if engine_security_group_id is None and 'engineSecurityGroupId' in kwargs: + engine_security_group_id = kwargs['engineSecurityGroupId'] + if engine_security_group_id is None: + raise TypeError("Missing 'engine_security_group_id' argument") + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if service_role is None: + raise TypeError("Missing 'service_role' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if workspace_security_group_id is None and 'workspaceSecurityGroupId' in kwargs: + workspace_security_group_id = kwargs['workspaceSecurityGroupId'] + if workspace_security_group_id is None: + raise TypeError("Missing 'workspace_security_group_id' argument") + if idp_auth_url is None and 'idpAuthUrl' in kwargs: + idp_auth_url = kwargs['idpAuthUrl'] + if idp_relay_state_parameter_name is None and 'idpRelayStateParameterName' in kwargs: + idp_relay_state_parameter_name = kwargs['idpRelayStateParameterName'] + if user_role is None and 'userRole' in kwargs: + user_role = kwargs['userRole'] + + _setter("auth_mode", auth_mode) + _setter("default_s3_location", default_s3_location) + _setter("engine_security_group_id", engine_security_group_id) + _setter("service_role", service_role) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) + _setter("workspace_security_group_id", workspace_security_group_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if idp_auth_url is not None: - pulumi.set(__self__, "idp_auth_url", idp_auth_url) + _setter("idp_auth_url", idp_auth_url) if idp_relay_state_parameter_name is not None: - pulumi.set(__self__, "idp_relay_state_parameter_name", idp_relay_state_parameter_name) + _setter("idp_relay_state_parameter_name", idp_relay_state_parameter_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_role is not None: - pulumi.set(__self__, "user_role", user_role) + _setter("user_role", user_role) @property @pulumi.getter(name="authMode") @@ -263,41 +332,104 @@ def __init__(__self__, *, The following arguments are optional: """ + _StudioState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auth_mode=auth_mode, + default_s3_location=default_s3_location, + description=description, + engine_security_group_id=engine_security_group_id, + idp_auth_url=idp_auth_url, + idp_relay_state_parameter_name=idp_relay_state_parameter_name, + name=name, + service_role=service_role, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + url=url, + user_role=user_role, + vpc_id=vpc_id, + workspace_security_group_id=workspace_security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auth_mode: Optional[pulumi.Input[str]] = None, + default_s3_location: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_security_group_id: Optional[pulumi.Input[str]] = None, + idp_auth_url: Optional[pulumi.Input[str]] = None, + idp_relay_state_parameter_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_role: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + user_role: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + workspace_security_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_mode is None and 'authMode' in kwargs: + auth_mode = kwargs['authMode'] + if default_s3_location is None and 'defaultS3Location' in kwargs: + default_s3_location = kwargs['defaultS3Location'] + if engine_security_group_id is None and 'engineSecurityGroupId' in kwargs: + engine_security_group_id = kwargs['engineSecurityGroupId'] + if idp_auth_url is None and 'idpAuthUrl' in kwargs: + idp_auth_url = kwargs['idpAuthUrl'] + if idp_relay_state_parameter_name is None and 'idpRelayStateParameterName' in kwargs: + idp_relay_state_parameter_name = kwargs['idpRelayStateParameterName'] + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_role is None and 'userRole' in kwargs: + user_role = kwargs['userRole'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if workspace_security_group_id is None and 'workspaceSecurityGroupId' in kwargs: + workspace_security_group_id = kwargs['workspaceSecurityGroupId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auth_mode is not None: - pulumi.set(__self__, "auth_mode", auth_mode) + _setter("auth_mode", auth_mode) if default_s3_location is not None: - pulumi.set(__self__, "default_s3_location", default_s3_location) + _setter("default_s3_location", default_s3_location) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if engine_security_group_id is not None: - pulumi.set(__self__, "engine_security_group_id", engine_security_group_id) + _setter("engine_security_group_id", engine_security_group_id) if idp_auth_url is not None: - pulumi.set(__self__, "idp_auth_url", idp_auth_url) + _setter("idp_auth_url", idp_auth_url) if idp_relay_state_parameter_name is not None: - pulumi.set(__self__, "idp_relay_state_parameter_name", idp_relay_state_parameter_name) + _setter("idp_relay_state_parameter_name", idp_relay_state_parameter_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if service_role is not None: - pulumi.set(__self__, "service_role", service_role) + _setter("service_role", service_role) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if user_role is not None: - pulumi.set(__self__, "user_role", user_role) + _setter("user_role", user_role) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if workspace_security_group_id is not None: - pulumi.set(__self__, "workspace_security_group_id", workspace_security_group_id) + _setter("workspace_security_group_id", workspace_security_group_id) @property @pulumi.getter @@ -603,6 +735,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StudioArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/emr/studio_session_mapping.py b/sdk/python/pulumi_aws/emr/studio_session_mapping.py index 92f1a4acb5c..b0da0e8e469 100644 --- a/sdk/python/pulumi_aws/emr/studio_session_mapping.py +++ b/sdk/python/pulumi_aws/emr/studio_session_mapping.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StudioSessionMappingArgs', 'StudioSessionMapping'] @@ -27,13 +27,48 @@ def __init__(__self__, *, :param pulumi.Input[str] identity_id: The globally unique identifier (GUID) of the user or group from the Amazon Web Services SSO Identity Store. :param pulumi.Input[str] identity_name: The name of the user or group from the Amazon Web Services SSO Identity Store. """ - pulumi.set(__self__, "identity_type", identity_type) - pulumi.set(__self__, "session_policy_arn", session_policy_arn) - pulumi.set(__self__, "studio_id", studio_id) + StudioSessionMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_type=identity_type, + session_policy_arn=session_policy_arn, + studio_id=studio_id, + identity_id=identity_id, + identity_name=identity_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_type: Optional[pulumi.Input[str]] = None, + session_policy_arn: Optional[pulumi.Input[str]] = None, + studio_id: Optional[pulumi.Input[str]] = None, + identity_id: Optional[pulumi.Input[str]] = None, + identity_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_type is None and 'identityType' in kwargs: + identity_type = kwargs['identityType'] + if identity_type is None: + raise TypeError("Missing 'identity_type' argument") + if session_policy_arn is None and 'sessionPolicyArn' in kwargs: + session_policy_arn = kwargs['sessionPolicyArn'] + if session_policy_arn is None: + raise TypeError("Missing 'session_policy_arn' argument") + if studio_id is None and 'studioId' in kwargs: + studio_id = kwargs['studioId'] + if studio_id is None: + raise TypeError("Missing 'studio_id' argument") + if identity_id is None and 'identityId' in kwargs: + identity_id = kwargs['identityId'] + if identity_name is None and 'identityName' in kwargs: + identity_name = kwargs['identityName'] + + _setter("identity_type", identity_type) + _setter("session_policy_arn", session_policy_arn) + _setter("studio_id", studio_id) if identity_id is not None: - pulumi.set(__self__, "identity_id", identity_id) + _setter("identity_id", identity_id) if identity_name is not None: - pulumi.set(__self__, "identity_name", identity_name) + _setter("identity_name", identity_name) @property @pulumi.getter(name="identityType") @@ -112,16 +147,45 @@ def __init__(__self__, *, :param pulumi.Input[str] session_policy_arn: The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. You should specify the ARN for the session policy that you want to apply, not the ARN of your user role. :param pulumi.Input[str] studio_id: The ID of the Amazon EMR Studio to which the user or group will be mapped. """ + _StudioSessionMappingState._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_id=identity_id, + identity_name=identity_name, + identity_type=identity_type, + session_policy_arn=session_policy_arn, + studio_id=studio_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_id: Optional[pulumi.Input[str]] = None, + identity_name: Optional[pulumi.Input[str]] = None, + identity_type: Optional[pulumi.Input[str]] = None, + session_policy_arn: Optional[pulumi.Input[str]] = None, + studio_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_id is None and 'identityId' in kwargs: + identity_id = kwargs['identityId'] + if identity_name is None and 'identityName' in kwargs: + identity_name = kwargs['identityName'] + if identity_type is None and 'identityType' in kwargs: + identity_type = kwargs['identityType'] + if session_policy_arn is None and 'sessionPolicyArn' in kwargs: + session_policy_arn = kwargs['sessionPolicyArn'] + if studio_id is None and 'studioId' in kwargs: + studio_id = kwargs['studioId'] + if identity_id is not None: - pulumi.set(__self__, "identity_id", identity_id) + _setter("identity_id", identity_id) if identity_name is not None: - pulumi.set(__self__, "identity_name", identity_name) + _setter("identity_name", identity_name) if identity_type is not None: - pulumi.set(__self__, "identity_type", identity_type) + _setter("identity_type", identity_type) if session_policy_arn is not None: - pulumi.set(__self__, "session_policy_arn", session_policy_arn) + _setter("session_policy_arn", session_policy_arn) if studio_id is not None: - pulumi.set(__self__, "studio_id", studio_id) + _setter("studio_id", studio_id) @property @pulumi.getter(name="identityId") @@ -267,6 +331,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StudioSessionMappingArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/emrcontainers/_inputs.py b/sdk/python/pulumi_aws/emrcontainers/_inputs.py index 93d243ef1ed..c92df5580ba 100644 --- a/sdk/python/pulumi_aws/emrcontainers/_inputs.py +++ b/sdk/python/pulumi_aws/emrcontainers/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -40,13 +40,48 @@ def __init__(__self__, *, :param pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesArgs'] configuration_overrides: The configuration settings that are used to override defaults configuration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] job_tags: The tags assigned to jobs started using the job template. """ - pulumi.set(__self__, "execution_role_arn", execution_role_arn) - pulumi.set(__self__, "job_driver", job_driver) - pulumi.set(__self__, "release_label", release_label) + JobTemplateJobTemplateDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role_arn=execution_role_arn, + job_driver=job_driver, + release_label=release_label, + configuration_overrides=configuration_overrides, + job_tags=job_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role_arn: Optional[pulumi.Input[str]] = None, + job_driver: Optional[pulumi.Input['JobTemplateJobTemplateDataJobDriverArgs']] = None, + release_label: Optional[pulumi.Input[str]] = None, + configuration_overrides: Optional[pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesArgs']] = None, + job_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if execution_role_arn is None: + raise TypeError("Missing 'execution_role_arn' argument") + if job_driver is None and 'jobDriver' in kwargs: + job_driver = kwargs['jobDriver'] + if job_driver is None: + raise TypeError("Missing 'job_driver' argument") + if release_label is None and 'releaseLabel' in kwargs: + release_label = kwargs['releaseLabel'] + if release_label is None: + raise TypeError("Missing 'release_label' argument") + if configuration_overrides is None and 'configurationOverrides' in kwargs: + configuration_overrides = kwargs['configurationOverrides'] + if job_tags is None and 'jobTags' in kwargs: + job_tags = kwargs['jobTags'] + + _setter("execution_role_arn", execution_role_arn) + _setter("job_driver", job_driver) + _setter("release_label", release_label) if configuration_overrides is not None: - pulumi.set(__self__, "configuration_overrides", configuration_overrides) + _setter("configuration_overrides", configuration_overrides) if job_tags is not None: - pulumi.set(__self__, "job_tags", job_tags) + _setter("job_tags", job_tags) @property @pulumi.getter(name="executionRoleArn") @@ -118,10 +153,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationArgs']]] application_configurations: The configurations for the application running by the job run. :param pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationArgs'] monitoring_configuration: The configurations for monitoring. """ + JobTemplateJobTemplateDataConfigurationOverridesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_configurations=application_configurations, + monitoring_configuration=monitoring_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationArgs']]]] = None, + monitoring_configuration: Optional[pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_configurations is None and 'applicationConfigurations' in kwargs: + application_configurations = kwargs['applicationConfigurations'] + if monitoring_configuration is None and 'monitoringConfiguration' in kwargs: + monitoring_configuration = kwargs['monitoringConfiguration'] + if application_configurations is not None: - pulumi.set(__self__, "application_configurations", application_configurations) + _setter("application_configurations", application_configurations) if monitoring_configuration is not None: - pulumi.set(__self__, "monitoring_configuration", monitoring_configuration) + _setter("monitoring_configuration", monitoring_configuration) @property @pulumi.getter(name="applicationConfigurations") @@ -159,11 +211,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationConfigurationArgs']]] configurations: A list of additional configurations to apply within a configuration object. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: A set of properties specified within a configuration classification. """ - pulumi.set(__self__, "classification", classification) + JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + configurations=configurations, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[pulumi.Input[str]] = None, + configurations: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationConfigurationArgs']]]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is None: + raise TypeError("Missing 'classification' argument") + + _setter("classification", classification) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -211,10 +280,23 @@ def __init__(__self__, *, :param pulumi.Input[str] classification: The classification within a configuration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: A set of properties specified within a configuration classification. """ + JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is not None: - pulumi.set(__self__, "classification", classification) + _setter("classification", classification) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -252,12 +334,33 @@ def __init__(__self__, *, :param pulumi.Input[str] persistent_app_ui: Monitoring configurations for the persistent application UI. :param pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationS3MonitoringConfigurationArgs'] s3_monitoring_configuration: Amazon S3 configuration for monitoring log publishing. """ + JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_monitoring_configuration=cloud_watch_monitoring_configuration, + persistent_app_ui=persistent_app_ui, + s3_monitoring_configuration=s3_monitoring_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_monitoring_configuration: Optional[pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationCloudWatchMonitoringConfigurationArgs']] = None, + persistent_app_ui: Optional[pulumi.Input[str]] = None, + s3_monitoring_configuration: Optional[pulumi.Input['JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationS3MonitoringConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_monitoring_configuration is None and 'cloudWatchMonitoringConfiguration' in kwargs: + cloud_watch_monitoring_configuration = kwargs['cloudWatchMonitoringConfiguration'] + if persistent_app_ui is None and 'persistentAppUi' in kwargs: + persistent_app_ui = kwargs['persistentAppUi'] + if s3_monitoring_configuration is None and 's3MonitoringConfiguration' in kwargs: + s3_monitoring_configuration = kwargs['s3MonitoringConfiguration'] + if cloud_watch_monitoring_configuration is not None: - pulumi.set(__self__, "cloud_watch_monitoring_configuration", cloud_watch_monitoring_configuration) + _setter("cloud_watch_monitoring_configuration", cloud_watch_monitoring_configuration) if persistent_app_ui is not None: - pulumi.set(__self__, "persistent_app_ui", persistent_app_ui) + _setter("persistent_app_ui", persistent_app_ui) if s3_monitoring_configuration is not None: - pulumi.set(__self__, "s3_monitoring_configuration", s3_monitoring_configuration) + _setter("s3_monitoring_configuration", s3_monitoring_configuration) @property @pulumi.getter(name="cloudWatchMonitoringConfiguration") @@ -305,9 +408,28 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_name: The name of the log group for log publishing. :param pulumi.Input[str] log_stream_name_prefix: The specified name prefix for log streams. """ - pulumi.set(__self__, "log_group_name", log_group_name) + JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationCloudWatchMonitoringConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + log_stream_name_prefix=log_stream_name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if log_stream_name_prefix is None and 'logStreamNamePrefix' in kwargs: + log_stream_name_prefix = kwargs['logStreamNamePrefix'] + + _setter("log_group_name", log_group_name) if log_stream_name_prefix is not None: - pulumi.set(__self__, "log_stream_name_prefix", log_stream_name_prefix) + _setter("log_stream_name_prefix", log_stream_name_prefix) @property @pulumi.getter(name="logGroupName") @@ -341,7 +463,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] log_uri: Amazon S3 destination URI for log publishing. """ - pulumi.set(__self__, "log_uri", log_uri) + JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationS3MonitoringConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_uri=log_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_uri is None and 'logUri' in kwargs: + log_uri = kwargs['logUri'] + if log_uri is None: + raise TypeError("Missing 'log_uri' argument") + + _setter("log_uri", log_uri) @property @pulumi.getter(name="logUri") @@ -365,10 +502,27 @@ def __init__(__self__, *, :param pulumi.Input['JobTemplateJobTemplateDataJobDriverSparkSqlJobDriverArgs'] spark_sql_job_driver: The job driver for job type. :param pulumi.Input['JobTemplateJobTemplateDataJobDriverSparkSubmitJobDriverArgs'] spark_submit_job_driver: The job driver parameters specified for spark submit. """ + JobTemplateJobTemplateDataJobDriverArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + spark_sql_job_driver=spark_sql_job_driver, + spark_submit_job_driver=spark_submit_job_driver, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + spark_sql_job_driver: Optional[pulumi.Input['JobTemplateJobTemplateDataJobDriverSparkSqlJobDriverArgs']] = None, + spark_submit_job_driver: Optional[pulumi.Input['JobTemplateJobTemplateDataJobDriverSparkSubmitJobDriverArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if spark_sql_job_driver is None and 'sparkSqlJobDriver' in kwargs: + spark_sql_job_driver = kwargs['sparkSqlJobDriver'] + if spark_submit_job_driver is None and 'sparkSubmitJobDriver' in kwargs: + spark_submit_job_driver = kwargs['sparkSubmitJobDriver'] + if spark_sql_job_driver is not None: - pulumi.set(__self__, "spark_sql_job_driver", spark_sql_job_driver) + _setter("spark_sql_job_driver", spark_sql_job_driver) if spark_submit_job_driver is not None: - pulumi.set(__self__, "spark_submit_job_driver", spark_submit_job_driver) + _setter("spark_submit_job_driver", spark_submit_job_driver) @property @pulumi.getter(name="sparkSqlJobDriver") @@ -404,10 +558,27 @@ def __init__(__self__, *, :param pulumi.Input[str] entry_point: The SQL file to be executed. :param pulumi.Input[str] spark_sql_parameters: The Spark parameters to be included in the Spark SQL command. """ + JobTemplateJobTemplateDataJobDriverSparkSqlJobDriverArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entry_point=entry_point, + spark_sql_parameters=spark_sql_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entry_point: Optional[pulumi.Input[str]] = None, + spark_sql_parameters: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry_point is None and 'entryPoint' in kwargs: + entry_point = kwargs['entryPoint'] + if spark_sql_parameters is None and 'sparkSqlParameters' in kwargs: + spark_sql_parameters = kwargs['sparkSqlParameters'] + if entry_point is not None: - pulumi.set(__self__, "entry_point", entry_point) + _setter("entry_point", entry_point) if spark_sql_parameters is not None: - pulumi.set(__self__, "spark_sql_parameters", spark_sql_parameters) + _setter("spark_sql_parameters", spark_sql_parameters) @property @pulumi.getter(name="entryPoint") @@ -445,11 +616,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] entry_point_arguments: The arguments for job application. :param pulumi.Input[str] spark_submit_parameters: The Spark submit parameters that are used for job runs. """ - pulumi.set(__self__, "entry_point", entry_point) + JobTemplateJobTemplateDataJobDriverSparkSubmitJobDriverArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entry_point=entry_point, + entry_point_arguments=entry_point_arguments, + spark_submit_parameters=spark_submit_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entry_point: Optional[pulumi.Input[str]] = None, + entry_point_arguments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + spark_submit_parameters: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry_point is None and 'entryPoint' in kwargs: + entry_point = kwargs['entryPoint'] + if entry_point is None: + raise TypeError("Missing 'entry_point' argument") + if entry_point_arguments is None and 'entryPointArguments' in kwargs: + entry_point_arguments = kwargs['entryPointArguments'] + if spark_submit_parameters is None and 'sparkSubmitParameters' in kwargs: + spark_submit_parameters = kwargs['sparkSubmitParameters'] + + _setter("entry_point", entry_point) if entry_point_arguments is not None: - pulumi.set(__self__, "entry_point_arguments", entry_point_arguments) + _setter("entry_point_arguments", entry_point_arguments) if spark_submit_parameters is not None: - pulumi.set(__self__, "spark_submit_parameters", spark_submit_parameters) + _setter("spark_submit_parameters", spark_submit_parameters) @property @pulumi.getter(name="entryPoint") @@ -499,9 +693,30 @@ def __init__(__self__, *, :param pulumi.Input['VirtualClusterContainerProviderInfoArgs'] info: Nested list containing information about the configuration of the container provider :param pulumi.Input[str] type: The type of the container provider """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "info", info) - pulumi.set(__self__, "type", type) + VirtualClusterContainerProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + info=info, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + info: Optional[pulumi.Input['VirtualClusterContainerProviderInfoArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if info is None: + raise TypeError("Missing 'info' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("id", id) + _setter("info", info) + _setter("type", type) @property @pulumi.getter @@ -547,7 +762,22 @@ def __init__(__self__, *, """ :param pulumi.Input['VirtualClusterContainerProviderInfoEksInfoArgs'] eks_info: Nested list containing EKS-specific information about the cluster where the EMR Containers cluster is running """ - pulumi.set(__self__, "eks_info", eks_info) + VirtualClusterContainerProviderInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eks_info=eks_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eks_info: Optional[pulumi.Input['VirtualClusterContainerProviderInfoEksInfoArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eks_info is None and 'eksInfo' in kwargs: + eks_info = kwargs['eksInfo'] + if eks_info is None: + raise TypeError("Missing 'eks_info' argument") + + _setter("eks_info", eks_info) @property @pulumi.getter(name="eksInfo") @@ -569,8 +799,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] namespace: The namespace where the EMR Containers cluster is running """ + VirtualClusterContainerProviderInfoEksInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/emrcontainers/get_virtual_cluster.py b/sdk/python/pulumi_aws/emrcontainers/get_virtual_cluster.py index 4a5303eb90d..77040b601f3 100644 --- a/sdk/python/pulumi_aws/emrcontainers/get_virtual_cluster.py +++ b/sdk/python/pulumi_aws/emrcontainers/get_virtual_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/emrcontainers/job_template.py b/sdk/python/pulumi_aws/emrcontainers/job_template.py index 1c0ce9b0e19..346493bc91a 100644 --- a/sdk/python/pulumi_aws/emrcontainers/job_template.py +++ b/sdk/python/pulumi_aws/emrcontainers/job_template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,36 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The specified name of the job template. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "job_template_data", job_template_data) + JobTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_template_data=job_template_data, + kms_key_arn=kms_key_arn, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_template_data: Optional[pulumi.Input['JobTemplateJobTemplateDataArgs']] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_template_data is None and 'jobTemplateData' in kwargs: + job_template_data = kwargs['jobTemplateData'] + if job_template_data is None: + raise TypeError("Missing 'job_template_data' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("job_template_data", job_template_data) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="jobTemplateData") @@ -102,21 +125,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _JobTemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + job_template_data=job_template_data, + kms_key_arn=kms_key_arn, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + job_template_data: Optional[pulumi.Input['JobTemplateJobTemplateDataArgs']] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_template_data is None and 'jobTemplateData' in kwargs: + job_template_data = kwargs['jobTemplateData'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if job_template_data is not None: - pulumi.set(__self__, "job_template_data", job_template_data) + _setter("job_template_data", job_template_data) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -285,6 +335,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + JobTemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -303,6 +357,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = JobTemplateArgs.__new__(JobTemplateArgs) + job_template_data = _utilities.configure(job_template_data, JobTemplateJobTemplateDataArgs, True) if job_template_data is None and not opts.urn: raise TypeError("Missing required property 'job_template_data'") __props__.__dict__["job_template_data"] = job_template_data diff --git a/sdk/python/pulumi_aws/emrcontainers/outputs.py b/sdk/python/pulumi_aws/emrcontainers/outputs.py index d57873de82b..3f0716d2471 100644 --- a/sdk/python/pulumi_aws/emrcontainers/outputs.py +++ b/sdk/python/pulumi_aws/emrcontainers/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -69,13 +69,48 @@ def __init__(__self__, *, :param 'JobTemplateJobTemplateDataConfigurationOverridesArgs' configuration_overrides: The configuration settings that are used to override defaults configuration. :param Mapping[str, str] job_tags: The tags assigned to jobs started using the job template. """ - pulumi.set(__self__, "execution_role_arn", execution_role_arn) - pulumi.set(__self__, "job_driver", job_driver) - pulumi.set(__self__, "release_label", release_label) + JobTemplateJobTemplateData._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role_arn=execution_role_arn, + job_driver=job_driver, + release_label=release_label, + configuration_overrides=configuration_overrides, + job_tags=job_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role_arn: Optional[str] = None, + job_driver: Optional['outputs.JobTemplateJobTemplateDataJobDriver'] = None, + release_label: Optional[str] = None, + configuration_overrides: Optional['outputs.JobTemplateJobTemplateDataConfigurationOverrides'] = None, + job_tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if execution_role_arn is None: + raise TypeError("Missing 'execution_role_arn' argument") + if job_driver is None and 'jobDriver' in kwargs: + job_driver = kwargs['jobDriver'] + if job_driver is None: + raise TypeError("Missing 'job_driver' argument") + if release_label is None and 'releaseLabel' in kwargs: + release_label = kwargs['releaseLabel'] + if release_label is None: + raise TypeError("Missing 'release_label' argument") + if configuration_overrides is None and 'configurationOverrides' in kwargs: + configuration_overrides = kwargs['configurationOverrides'] + if job_tags is None and 'jobTags' in kwargs: + job_tags = kwargs['jobTags'] + + _setter("execution_role_arn", execution_role_arn) + _setter("job_driver", job_driver) + _setter("release_label", release_label) if configuration_overrides is not None: - pulumi.set(__self__, "configuration_overrides", configuration_overrides) + _setter("configuration_overrides", configuration_overrides) if job_tags is not None: - pulumi.set(__self__, "job_tags", job_tags) + _setter("job_tags", job_tags) @property @pulumi.getter(name="executionRoleArn") @@ -146,10 +181,27 @@ def __init__(__self__, *, :param Sequence['JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationArgs'] application_configurations: The configurations for the application running by the job run. :param 'JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationArgs' monitoring_configuration: The configurations for monitoring. """ + JobTemplateJobTemplateDataConfigurationOverrides._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_configurations=application_configurations, + monitoring_configuration=monitoring_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_configurations: Optional[Sequence['outputs.JobTemplateJobTemplateDataConfigurationOverridesApplicationConfiguration']] = None, + monitoring_configuration: Optional['outputs.JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_configurations is None and 'applicationConfigurations' in kwargs: + application_configurations = kwargs['applicationConfigurations'] + if monitoring_configuration is None and 'monitoringConfiguration' in kwargs: + monitoring_configuration = kwargs['monitoringConfiguration'] + if application_configurations is not None: - pulumi.set(__self__, "application_configurations", application_configurations) + _setter("application_configurations", application_configurations) if monitoring_configuration is not None: - pulumi.set(__self__, "monitoring_configuration", monitoring_configuration) + _setter("monitoring_configuration", monitoring_configuration) @property @pulumi.getter(name="applicationConfigurations") @@ -179,11 +231,28 @@ def __init__(__self__, *, :param Sequence['JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationConfigurationArgs'] configurations: A list of additional configurations to apply within a configuration object. :param Mapping[str, str] properties: A set of properties specified within a configuration classification. """ - pulumi.set(__self__, "classification", classification) + JobTemplateJobTemplateDataConfigurationOverridesApplicationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + configurations=configurations, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[str] = None, + configurations: Optional[Sequence['outputs.JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationConfiguration']] = None, + properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is None: + raise TypeError("Missing 'classification' argument") + + _setter("classification", classification) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -219,10 +288,23 @@ def __init__(__self__, *, :param str classification: The classification within a configuration. :param Mapping[str, str] properties: A set of properties specified within a configuration classification. """ + JobTemplateJobTemplateDataConfigurationOverridesApplicationConfigurationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + properties=properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[str] = None, + properties: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is not None: - pulumi.set(__self__, "classification", classification) + _setter("classification", classification) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) @property @pulumi.getter @@ -273,12 +355,33 @@ def __init__(__self__, *, :param str persistent_app_ui: Monitoring configurations for the persistent application UI. :param 'JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationS3MonitoringConfigurationArgs' s3_monitoring_configuration: Amazon S3 configuration for monitoring log publishing. """ + JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_monitoring_configuration=cloud_watch_monitoring_configuration, + persistent_app_ui=persistent_app_ui, + s3_monitoring_configuration=s3_monitoring_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_monitoring_configuration: Optional['outputs.JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationCloudWatchMonitoringConfiguration'] = None, + persistent_app_ui: Optional[str] = None, + s3_monitoring_configuration: Optional['outputs.JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationS3MonitoringConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_monitoring_configuration is None and 'cloudWatchMonitoringConfiguration' in kwargs: + cloud_watch_monitoring_configuration = kwargs['cloudWatchMonitoringConfiguration'] + if persistent_app_ui is None and 'persistentAppUi' in kwargs: + persistent_app_ui = kwargs['persistentAppUi'] + if s3_monitoring_configuration is None and 's3MonitoringConfiguration' in kwargs: + s3_monitoring_configuration = kwargs['s3MonitoringConfiguration'] + if cloud_watch_monitoring_configuration is not None: - pulumi.set(__self__, "cloud_watch_monitoring_configuration", cloud_watch_monitoring_configuration) + _setter("cloud_watch_monitoring_configuration", cloud_watch_monitoring_configuration) if persistent_app_ui is not None: - pulumi.set(__self__, "persistent_app_ui", persistent_app_ui) + _setter("persistent_app_ui", persistent_app_ui) if s3_monitoring_configuration is not None: - pulumi.set(__self__, "s3_monitoring_configuration", s3_monitoring_configuration) + _setter("s3_monitoring_configuration", s3_monitoring_configuration) @property @pulumi.getter(name="cloudWatchMonitoringConfiguration") @@ -333,9 +436,28 @@ def __init__(__self__, *, :param str log_group_name: The name of the log group for log publishing. :param str log_stream_name_prefix: The specified name prefix for log streams. """ - pulumi.set(__self__, "log_group_name", log_group_name) + JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationCloudWatchMonitoringConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + log_stream_name_prefix=log_stream_name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[str] = None, + log_stream_name_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if log_stream_name_prefix is None and 'logStreamNamePrefix' in kwargs: + log_stream_name_prefix = kwargs['logStreamNamePrefix'] + + _setter("log_group_name", log_group_name) if log_stream_name_prefix is not None: - pulumi.set(__self__, "log_stream_name_prefix", log_stream_name_prefix) + _setter("log_stream_name_prefix", log_stream_name_prefix) @property @pulumi.getter(name="logGroupName") @@ -378,7 +500,22 @@ def __init__(__self__, *, """ :param str log_uri: Amazon S3 destination URI for log publishing. """ - pulumi.set(__self__, "log_uri", log_uri) + JobTemplateJobTemplateDataConfigurationOverridesMonitoringConfigurationS3MonitoringConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_uri=log_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_uri is None and 'logUri' in kwargs: + log_uri = kwargs['logUri'] + if log_uri is None: + raise TypeError("Missing 'log_uri' argument") + + _setter("log_uri", log_uri) @property @pulumi.getter(name="logUri") @@ -417,10 +554,27 @@ def __init__(__self__, *, :param 'JobTemplateJobTemplateDataJobDriverSparkSqlJobDriverArgs' spark_sql_job_driver: The job driver for job type. :param 'JobTemplateJobTemplateDataJobDriverSparkSubmitJobDriverArgs' spark_submit_job_driver: The job driver parameters specified for spark submit. """ + JobTemplateJobTemplateDataJobDriver._configure( + lambda key, value: pulumi.set(__self__, key, value), + spark_sql_job_driver=spark_sql_job_driver, + spark_submit_job_driver=spark_submit_job_driver, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + spark_sql_job_driver: Optional['outputs.JobTemplateJobTemplateDataJobDriverSparkSqlJobDriver'] = None, + spark_submit_job_driver: Optional['outputs.JobTemplateJobTemplateDataJobDriverSparkSubmitJobDriver'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if spark_sql_job_driver is None and 'sparkSqlJobDriver' in kwargs: + spark_sql_job_driver = kwargs['sparkSqlJobDriver'] + if spark_submit_job_driver is None and 'sparkSubmitJobDriver' in kwargs: + spark_submit_job_driver = kwargs['sparkSubmitJobDriver'] + if spark_sql_job_driver is not None: - pulumi.set(__self__, "spark_sql_job_driver", spark_sql_job_driver) + _setter("spark_sql_job_driver", spark_sql_job_driver) if spark_submit_job_driver is not None: - pulumi.set(__self__, "spark_submit_job_driver", spark_submit_job_driver) + _setter("spark_submit_job_driver", spark_submit_job_driver) @property @pulumi.getter(name="sparkSqlJobDriver") @@ -467,10 +621,27 @@ def __init__(__self__, *, :param str entry_point: The SQL file to be executed. :param str spark_sql_parameters: The Spark parameters to be included in the Spark SQL command. """ + JobTemplateJobTemplateDataJobDriverSparkSqlJobDriver._configure( + lambda key, value: pulumi.set(__self__, key, value), + entry_point=entry_point, + spark_sql_parameters=spark_sql_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entry_point: Optional[str] = None, + spark_sql_parameters: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry_point is None and 'entryPoint' in kwargs: + entry_point = kwargs['entryPoint'] + if spark_sql_parameters is None and 'sparkSqlParameters' in kwargs: + spark_sql_parameters = kwargs['sparkSqlParameters'] + if entry_point is not None: - pulumi.set(__self__, "entry_point", entry_point) + _setter("entry_point", entry_point) if spark_sql_parameters is not None: - pulumi.set(__self__, "spark_sql_parameters", spark_sql_parameters) + _setter("spark_sql_parameters", spark_sql_parameters) @property @pulumi.getter(name="entryPoint") @@ -521,11 +692,34 @@ def __init__(__self__, *, :param Sequence[str] entry_point_arguments: The arguments for job application. :param str spark_submit_parameters: The Spark submit parameters that are used for job runs. """ - pulumi.set(__self__, "entry_point", entry_point) + JobTemplateJobTemplateDataJobDriverSparkSubmitJobDriver._configure( + lambda key, value: pulumi.set(__self__, key, value), + entry_point=entry_point, + entry_point_arguments=entry_point_arguments, + spark_submit_parameters=spark_submit_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entry_point: Optional[str] = None, + entry_point_arguments: Optional[Sequence[str]] = None, + spark_submit_parameters: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry_point is None and 'entryPoint' in kwargs: + entry_point = kwargs['entryPoint'] + if entry_point is None: + raise TypeError("Missing 'entry_point' argument") + if entry_point_arguments is None and 'entryPointArguments' in kwargs: + entry_point_arguments = kwargs['entryPointArguments'] + if spark_submit_parameters is None and 'sparkSubmitParameters' in kwargs: + spark_submit_parameters = kwargs['sparkSubmitParameters'] + + _setter("entry_point", entry_point) if entry_point_arguments is not None: - pulumi.set(__self__, "entry_point_arguments", entry_point_arguments) + _setter("entry_point_arguments", entry_point_arguments) if spark_submit_parameters is not None: - pulumi.set(__self__, "spark_submit_parameters", spark_submit_parameters) + _setter("spark_submit_parameters", spark_submit_parameters) @property @pulumi.getter(name="entryPoint") @@ -563,9 +757,30 @@ def __init__(__self__, *, :param 'VirtualClusterContainerProviderInfoArgs' info: Nested list containing information about the configuration of the container provider :param str type: The type of the container provider """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "info", info) - pulumi.set(__self__, "type", type) + VirtualClusterContainerProvider._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + info=info, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + info: Optional['outputs.VirtualClusterContainerProviderInfo'] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if info is None: + raise TypeError("Missing 'info' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("id", id) + _setter("info", info) + _setter("type", type) @property @pulumi.getter @@ -616,7 +831,22 @@ def __init__(__self__, *, """ :param 'VirtualClusterContainerProviderInfoEksInfoArgs' eks_info: Nested list containing EKS-specific information about the cluster where the EMR Containers cluster is running """ - pulumi.set(__self__, "eks_info", eks_info) + VirtualClusterContainerProviderInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + eks_info=eks_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eks_info: Optional['outputs.VirtualClusterContainerProviderInfoEksInfo'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eks_info is None and 'eksInfo' in kwargs: + eks_info = kwargs['eksInfo'] + if eks_info is None: + raise TypeError("Missing 'eks_info' argument") + + _setter("eks_info", eks_info) @property @pulumi.getter(name="eksInfo") @@ -634,8 +864,19 @@ def __init__(__self__, *, """ :param str namespace: The namespace where the EMR Containers cluster is running """ + VirtualClusterContainerProviderInfoEksInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) @property @pulumi.getter @@ -657,9 +898,30 @@ def __init__(__self__, *, :param Sequence['GetVirtualClusterContainerProviderInfoArgs'] infos: Nested list containing information about the configuration of the container provider :param str type: The type of the container provider """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "infos", infos) - pulumi.set(__self__, "type", type) + GetVirtualClusterContainerProviderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + infos=infos, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + infos: Optional[Sequence['outputs.GetVirtualClusterContainerProviderInfoResult']] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if infos is None: + raise TypeError("Missing 'infos' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("id", id) + _setter("infos", infos) + _setter("type", type) @property @pulumi.getter @@ -693,7 +955,22 @@ def __init__(__self__, *, """ :param Sequence['GetVirtualClusterContainerProviderInfoEksInfoArgs'] eks_infos: Nested list containing EKS-specific information about the cluster where the EMR Containers cluster is running """ - pulumi.set(__self__, "eks_infos", eks_infos) + GetVirtualClusterContainerProviderInfoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + eks_infos=eks_infos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eks_infos: Optional[Sequence['outputs.GetVirtualClusterContainerProviderInfoEksInfoResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eks_infos is None and 'eksInfos' in kwargs: + eks_infos = kwargs['eksInfos'] + if eks_infos is None: + raise TypeError("Missing 'eks_infos' argument") + + _setter("eks_infos", eks_infos) @property @pulumi.getter(name="eksInfos") @@ -711,7 +988,20 @@ def __init__(__self__, *, """ :param str namespace: The namespace where the EMR Containers cluster is running """ - pulumi.set(__self__, "namespace", namespace) + GetVirtualClusterContainerProviderInfoEksInfoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/emrcontainers/virtual_cluster.py b/sdk/python/pulumi_aws/emrcontainers/virtual_cluster.py index 9ca05b8aefa..62bc1c6393f 100644 --- a/sdk/python/pulumi_aws/emrcontainers/virtual_cluster.py +++ b/sdk/python/pulumi_aws/emrcontainers/virtual_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the virtual cluster. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "container_provider", container_provider) + VirtualClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_provider=container_provider, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_provider: Optional[pulumi.Input['VirtualClusterContainerProviderArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_provider is None and 'containerProvider' in kwargs: + container_provider = kwargs['containerProvider'] + if container_provider is None: + raise TypeError("Missing 'container_provider' argument") + + _setter("container_provider", container_provider) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="containerProvider") @@ -84,19 +103,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _VirtualClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + container_provider=container_provider, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + container_provider: Optional[pulumi.Input['VirtualClusterContainerProviderArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_provider is None and 'containerProvider' in kwargs: + container_provider = kwargs['containerProvider'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if container_provider is not None: - pulumi.set(__self__, "container_provider", container_provider) + _setter("container_provider", container_provider) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -251,6 +293,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VirtualClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -268,6 +314,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = VirtualClusterArgs.__new__(VirtualClusterArgs) + container_provider = _utilities.configure(container_provider, VirtualClusterContainerProviderArgs, True) if container_provider is None and not opts.urn: raise TypeError("Missing required property 'container_provider'") __props__.__dict__["container_provider"] = container_provider diff --git a/sdk/python/pulumi_aws/emrserverless/_inputs.py b/sdk/python/pulumi_aws/emrserverless/_inputs.py index 6bc9a54f87b..23bccfd2d3a 100644 --- a/sdk/python/pulumi_aws/emrserverless/_inputs.py +++ b/sdk/python/pulumi_aws/emrserverless/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -27,8 +27,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Enables the application to automatically start on job submission. Defaults to `true`. """ + ApplicationAutoStartConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -52,10 +63,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enables the application to automatically stop after a certain amount of time being idle. Defaults to `true`. :param pulumi.Input[int] idle_timeout_minutes: The amount of idle time in minutes after which your application will automatically stop. Defaults to `15` minutes. """ + ApplicationAutoStopConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + idle_timeout_minutes=idle_timeout_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + idle_timeout_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle_timeout_minutes is None and 'idleTimeoutMinutes' in kwargs: + idle_timeout_minutes = kwargs['idleTimeoutMinutes'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if idle_timeout_minutes is not None: - pulumi.set(__self__, "idle_timeout_minutes", idle_timeout_minutes) + _setter("idle_timeout_minutes", idle_timeout_minutes) @property @pulumi.getter @@ -89,7 +115,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] image_uri: The image URI. """ - pulumi.set(__self__, "image_uri", image_uri) + ApplicationImageConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_uri=image_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_uri is None and 'imageUri' in kwargs: + image_uri = kwargs['imageUri'] + if image_uri is None: + raise TypeError("Missing 'image_uri' argument") + + _setter("image_uri", image_uri) @property @pulumi.getter(name="imageUri") @@ -113,9 +154,28 @@ def __init__(__self__, *, :param pulumi.Input[str] initial_capacity_type: The worker type for an analytics framework. For Spark applications, the key can either be set to `Driver` or `Executor`. For Hive applications, it can be set to `HiveDriver` or `TezTask`. :param pulumi.Input['ApplicationInitialCapacityInitialCapacityConfigArgs'] initial_capacity_config: The initial capacity configuration per worker. """ - pulumi.set(__self__, "initial_capacity_type", initial_capacity_type) + ApplicationInitialCapacityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + initial_capacity_type=initial_capacity_type, + initial_capacity_config=initial_capacity_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + initial_capacity_type: Optional[pulumi.Input[str]] = None, + initial_capacity_config: Optional[pulumi.Input['ApplicationInitialCapacityInitialCapacityConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if initial_capacity_type is None and 'initialCapacityType' in kwargs: + initial_capacity_type = kwargs['initialCapacityType'] + if initial_capacity_type is None: + raise TypeError("Missing 'initial_capacity_type' argument") + if initial_capacity_config is None and 'initialCapacityConfig' in kwargs: + initial_capacity_config = kwargs['initialCapacityConfig'] + + _setter("initial_capacity_type", initial_capacity_type) if initial_capacity_config is not None: - pulumi.set(__self__, "initial_capacity_config", initial_capacity_config) + _setter("initial_capacity_config", initial_capacity_config) @property @pulumi.getter(name="initialCapacityType") @@ -151,9 +211,28 @@ def __init__(__self__, *, :param pulumi.Input[int] worker_count: The number of workers in the initial capacity configuration. :param pulumi.Input['ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationArgs'] worker_configuration: The resource configuration of the initial capacity configuration. """ - pulumi.set(__self__, "worker_count", worker_count) + ApplicationInitialCapacityInitialCapacityConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + worker_count=worker_count, + worker_configuration=worker_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + worker_count: Optional[pulumi.Input[int]] = None, + worker_configuration: Optional[pulumi.Input['ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if worker_count is None and 'workerCount' in kwargs: + worker_count = kwargs['workerCount'] + if worker_count is None: + raise TypeError("Missing 'worker_count' argument") + if worker_configuration is None and 'workerConfiguration' in kwargs: + worker_configuration = kwargs['workerConfiguration'] + + _setter("worker_count", worker_count) if worker_configuration is not None: - pulumi.set(__self__, "worker_configuration", worker_configuration) + _setter("worker_configuration", worker_configuration) @property @pulumi.getter(name="workerCount") @@ -191,10 +270,29 @@ def __init__(__self__, *, :param pulumi.Input[str] memory: The memory requirements for every worker instance of the worker type. :param pulumi.Input[str] disk: The disk requirements for every worker instance of the worker type. """ - pulumi.set(__self__, "cpu", cpu) - pulumi.set(__self__, "memory", memory) + ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu=cpu, + memory=memory, + disk=disk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[str]] = None, + disk: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu is None: + raise TypeError("Missing 'cpu' argument") + if memory is None: + raise TypeError("Missing 'memory' argument") + + _setter("cpu", cpu) + _setter("memory", memory) if disk is not None: - pulumi.set(__self__, "disk", disk) + _setter("disk", disk) @property @pulumi.getter @@ -244,10 +342,29 @@ def __init__(__self__, *, :param pulumi.Input[str] memory: The maximum allowed resources for an application. :param pulumi.Input[str] disk: The maximum allowed disk for an application. """ - pulumi.set(__self__, "cpu", cpu) - pulumi.set(__self__, "memory", memory) + ApplicationMaximumCapacityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu=cpu, + memory=memory, + disk=disk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu: Optional[pulumi.Input[str]] = None, + memory: Optional[pulumi.Input[str]] = None, + disk: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu is None: + raise TypeError("Missing 'cpu' argument") + if memory is None: + raise TypeError("Missing 'memory' argument") + + _setter("cpu", cpu) + _setter("memory", memory) if disk is not None: - pulumi.set(__self__, "disk", disk) + _setter("disk", disk) @property @pulumi.getter @@ -295,10 +412,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The array of security group Ids for customer VPC connectivity. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The array of subnet Ids for customer VPC connectivity. """ + ApplicationNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/emrserverless/application.py b/sdk/python/pulumi_aws/emrserverless/application.py index 95b6e0d78f4..58e4ca5e53a 100644 --- a/sdk/python/pulumi_aws/emrserverless/application.py +++ b/sdk/python/pulumi_aws/emrserverless/application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,26 +41,75 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationNetworkConfigurationArgs'] network_configuration: The network configuration for customer VPC connectivity. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "release_label", release_label) - pulumi.set(__self__, "type", type) + ApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + release_label=release_label, + type=type, + architecture=architecture, + auto_start_configuration=auto_start_configuration, + auto_stop_configuration=auto_stop_configuration, + image_configuration=image_configuration, + initial_capacities=initial_capacities, + maximum_capacity=maximum_capacity, + name=name, + network_configuration=network_configuration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + release_label: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + architecture: Optional[pulumi.Input[str]] = None, + auto_start_configuration: Optional[pulumi.Input['ApplicationAutoStartConfigurationArgs']] = None, + auto_stop_configuration: Optional[pulumi.Input['ApplicationAutoStopConfigurationArgs']] = None, + image_configuration: Optional[pulumi.Input['ApplicationImageConfigurationArgs']] = None, + initial_capacities: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationInitialCapacityArgs']]]] = None, + maximum_capacity: Optional[pulumi.Input['ApplicationMaximumCapacityArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + network_configuration: Optional[pulumi.Input['ApplicationNetworkConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if release_label is None and 'releaseLabel' in kwargs: + release_label = kwargs['releaseLabel'] + if release_label is None: + raise TypeError("Missing 'release_label' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if auto_start_configuration is None and 'autoStartConfiguration' in kwargs: + auto_start_configuration = kwargs['autoStartConfiguration'] + if auto_stop_configuration is None and 'autoStopConfiguration' in kwargs: + auto_stop_configuration = kwargs['autoStopConfiguration'] + if image_configuration is None and 'imageConfiguration' in kwargs: + image_configuration = kwargs['imageConfiguration'] + if initial_capacities is None and 'initialCapacities' in kwargs: + initial_capacities = kwargs['initialCapacities'] + if maximum_capacity is None and 'maximumCapacity' in kwargs: + maximum_capacity = kwargs['maximumCapacity'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + + _setter("release_label", release_label) + _setter("type", type) if architecture is not None: - pulumi.set(__self__, "architecture", architecture) + _setter("architecture", architecture) if auto_start_configuration is not None: - pulumi.set(__self__, "auto_start_configuration", auto_start_configuration) + _setter("auto_start_configuration", auto_start_configuration) if auto_stop_configuration is not None: - pulumi.set(__self__, "auto_stop_configuration", auto_stop_configuration) + _setter("auto_stop_configuration", auto_stop_configuration) if image_configuration is not None: - pulumi.set(__self__, "image_configuration", image_configuration) + _setter("image_configuration", image_configuration) if initial_capacities is not None: - pulumi.set(__self__, "initial_capacities", initial_capacities) + _setter("initial_capacities", initial_capacities) if maximum_capacity is not None: - pulumi.set(__self__, "maximum_capacity", maximum_capacity) + _setter("maximum_capacity", maximum_capacity) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="releaseLabel") @@ -227,35 +276,86 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] type: The type of application you want to start, such as `spark` or `hive`. """ + _ApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + architecture=architecture, + arn=arn, + auto_start_configuration=auto_start_configuration, + auto_stop_configuration=auto_stop_configuration, + image_configuration=image_configuration, + initial_capacities=initial_capacities, + maximum_capacity=maximum_capacity, + name=name, + network_configuration=network_configuration, + release_label=release_label, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + architecture: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_start_configuration: Optional[pulumi.Input['ApplicationAutoStartConfigurationArgs']] = None, + auto_stop_configuration: Optional[pulumi.Input['ApplicationAutoStopConfigurationArgs']] = None, + image_configuration: Optional[pulumi.Input['ApplicationImageConfigurationArgs']] = None, + initial_capacities: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationInitialCapacityArgs']]]] = None, + maximum_capacity: Optional[pulumi.Input['ApplicationMaximumCapacityArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + network_configuration: Optional[pulumi.Input['ApplicationNetworkConfigurationArgs']] = None, + release_label: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_start_configuration is None and 'autoStartConfiguration' in kwargs: + auto_start_configuration = kwargs['autoStartConfiguration'] + if auto_stop_configuration is None and 'autoStopConfiguration' in kwargs: + auto_stop_configuration = kwargs['autoStopConfiguration'] + if image_configuration is None and 'imageConfiguration' in kwargs: + image_configuration = kwargs['imageConfiguration'] + if initial_capacities is None and 'initialCapacities' in kwargs: + initial_capacities = kwargs['initialCapacities'] + if maximum_capacity is None and 'maximumCapacity' in kwargs: + maximum_capacity = kwargs['maximumCapacity'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if release_label is None and 'releaseLabel' in kwargs: + release_label = kwargs['releaseLabel'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if architecture is not None: - pulumi.set(__self__, "architecture", architecture) + _setter("architecture", architecture) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_start_configuration is not None: - pulumi.set(__self__, "auto_start_configuration", auto_start_configuration) + _setter("auto_start_configuration", auto_start_configuration) if auto_stop_configuration is not None: - pulumi.set(__self__, "auto_stop_configuration", auto_stop_configuration) + _setter("auto_stop_configuration", auto_stop_configuration) if image_configuration is not None: - pulumi.set(__self__, "image_configuration", image_configuration) + _setter("image_configuration", image_configuration) if initial_capacities is not None: - pulumi.set(__self__, "initial_capacities", initial_capacities) + _setter("initial_capacities", initial_capacities) if maximum_capacity is not None: - pulumi.set(__self__, "maximum_capacity", maximum_capacity) + _setter("maximum_capacity", maximum_capacity) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if release_label is not None: - pulumi.set(__self__, "release_label", release_label) + _setter("release_label", release_label) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -578,6 +678,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -604,12 +708,17 @@ def _internal_init(__self__, __props__ = ApplicationArgs.__new__(ApplicationArgs) __props__.__dict__["architecture"] = architecture + auto_start_configuration = _utilities.configure(auto_start_configuration, ApplicationAutoStartConfigurationArgs, True) __props__.__dict__["auto_start_configuration"] = auto_start_configuration + auto_stop_configuration = _utilities.configure(auto_stop_configuration, ApplicationAutoStopConfigurationArgs, True) __props__.__dict__["auto_stop_configuration"] = auto_stop_configuration + image_configuration = _utilities.configure(image_configuration, ApplicationImageConfigurationArgs, True) __props__.__dict__["image_configuration"] = image_configuration __props__.__dict__["initial_capacities"] = initial_capacities + maximum_capacity = _utilities.configure(maximum_capacity, ApplicationMaximumCapacityArgs, True) __props__.__dict__["maximum_capacity"] = maximum_capacity __props__.__dict__["name"] = name + network_configuration = _utilities.configure(network_configuration, ApplicationNetworkConfigurationArgs, True) __props__.__dict__["network_configuration"] = network_configuration if release_label is None and not opts.urn: raise TypeError("Missing required property 'release_label'") diff --git a/sdk/python/pulumi_aws/emrserverless/outputs.py b/sdk/python/pulumi_aws/emrserverless/outputs.py index ebc42f742ab..34ada4870fe 100644 --- a/sdk/python/pulumi_aws/emrserverless/outputs.py +++ b/sdk/python/pulumi_aws/emrserverless/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -28,8 +28,19 @@ def __init__(__self__, *, """ :param bool enabled: Enables the application to automatically start on job submission. Defaults to `true`. """ + ApplicationAutoStartConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -66,10 +77,25 @@ def __init__(__self__, *, :param bool enabled: Enables the application to automatically stop after a certain amount of time being idle. Defaults to `true`. :param int idle_timeout_minutes: The amount of idle time in minutes after which your application will automatically stop. Defaults to `15` minutes. """ + ApplicationAutoStopConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + idle_timeout_minutes=idle_timeout_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + idle_timeout_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle_timeout_minutes is None and 'idleTimeoutMinutes' in kwargs: + idle_timeout_minutes = kwargs['idleTimeoutMinutes'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if idle_timeout_minutes is not None: - pulumi.set(__self__, "idle_timeout_minutes", idle_timeout_minutes) + _setter("idle_timeout_minutes", idle_timeout_minutes) @property @pulumi.getter @@ -112,7 +138,22 @@ def __init__(__self__, *, """ :param str image_uri: The image URI. """ - pulumi.set(__self__, "image_uri", image_uri) + ApplicationImageConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_uri=image_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_uri is None and 'imageUri' in kwargs: + image_uri = kwargs['imageUri'] + if image_uri is None: + raise TypeError("Missing 'image_uri' argument") + + _setter("image_uri", image_uri) @property @pulumi.getter(name="imageUri") @@ -151,9 +192,28 @@ def __init__(__self__, *, :param str initial_capacity_type: The worker type for an analytics framework. For Spark applications, the key can either be set to `Driver` or `Executor`. For Hive applications, it can be set to `HiveDriver` or `TezTask`. :param 'ApplicationInitialCapacityInitialCapacityConfigArgs' initial_capacity_config: The initial capacity configuration per worker. """ - pulumi.set(__self__, "initial_capacity_type", initial_capacity_type) + ApplicationInitialCapacity._configure( + lambda key, value: pulumi.set(__self__, key, value), + initial_capacity_type=initial_capacity_type, + initial_capacity_config=initial_capacity_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + initial_capacity_type: Optional[str] = None, + initial_capacity_config: Optional['outputs.ApplicationInitialCapacityInitialCapacityConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if initial_capacity_type is None and 'initialCapacityType' in kwargs: + initial_capacity_type = kwargs['initialCapacityType'] + if initial_capacity_type is None: + raise TypeError("Missing 'initial_capacity_type' argument") + if initial_capacity_config is None and 'initialCapacityConfig' in kwargs: + initial_capacity_config = kwargs['initialCapacityConfig'] + + _setter("initial_capacity_type", initial_capacity_type) if initial_capacity_config is not None: - pulumi.set(__self__, "initial_capacity_config", initial_capacity_config) + _setter("initial_capacity_config", initial_capacity_config) @property @pulumi.getter(name="initialCapacityType") @@ -200,9 +260,28 @@ def __init__(__self__, *, :param int worker_count: The number of workers in the initial capacity configuration. :param 'ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationArgs' worker_configuration: The resource configuration of the initial capacity configuration. """ - pulumi.set(__self__, "worker_count", worker_count) + ApplicationInitialCapacityInitialCapacityConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + worker_count=worker_count, + worker_configuration=worker_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + worker_count: Optional[int] = None, + worker_configuration: Optional['outputs.ApplicationInitialCapacityInitialCapacityConfigWorkerConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if worker_count is None and 'workerCount' in kwargs: + worker_count = kwargs['workerCount'] + if worker_count is None: + raise TypeError("Missing 'worker_count' argument") + if worker_configuration is None and 'workerConfiguration' in kwargs: + worker_configuration = kwargs['workerConfiguration'] + + _setter("worker_count", worker_count) if worker_configuration is not None: - pulumi.set(__self__, "worker_configuration", worker_configuration) + _setter("worker_configuration", worker_configuration) @property @pulumi.getter(name="workerCount") @@ -232,10 +311,29 @@ def __init__(__self__, *, :param str memory: The memory requirements for every worker instance of the worker type. :param str disk: The disk requirements for every worker instance of the worker type. """ - pulumi.set(__self__, "cpu", cpu) - pulumi.set(__self__, "memory", memory) + ApplicationInitialCapacityInitialCapacityConfigWorkerConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu=cpu, + memory=memory, + disk=disk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu: Optional[str] = None, + memory: Optional[str] = None, + disk: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu is None: + raise TypeError("Missing 'cpu' argument") + if memory is None: + raise TypeError("Missing 'memory' argument") + + _setter("cpu", cpu) + _setter("memory", memory) if disk is not None: - pulumi.set(__self__, "disk", disk) + _setter("disk", disk) @property @pulumi.getter @@ -273,10 +371,29 @@ def __init__(__self__, *, :param str memory: The maximum allowed resources for an application. :param str disk: The maximum allowed disk for an application. """ - pulumi.set(__self__, "cpu", cpu) - pulumi.set(__self__, "memory", memory) + ApplicationMaximumCapacity._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu=cpu, + memory=memory, + disk=disk, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu: Optional[str] = None, + memory: Optional[str] = None, + disk: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu is None: + raise TypeError("Missing 'cpu' argument") + if memory is None: + raise TypeError("Missing 'memory' argument") + + _setter("cpu", cpu) + _setter("memory", memory) if disk is not None: - pulumi.set(__self__, "disk", disk) + _setter("disk", disk) @property @pulumi.getter @@ -331,10 +448,27 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: The array of security group Ids for customer VPC connectivity. :param Sequence[str] subnet_ids: The array of subnet Ids for customer VPC connectivity. """ + ApplicationNetworkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/evidently/_inputs.py b/sdk/python/pulumi_aws/evidently/_inputs.py index fab3d88198d..8f822553eed 100644 --- a/sdk/python/pulumi_aws/evidently/_inputs.py +++ b/sdk/python/pulumi_aws/evidently/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -34,10 +34,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name for the new feature. Minimum length of `1`. Maximum length of `127`. :param pulumi.Input[str] type: This value is `aws.evidently.splits` if this is an evaluation rule for a launch, and it is `aws.evidently.onlineab` if this is an evaluation rule for an experiment. """ + FeatureEvaluationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -73,8 +86,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the variation. Minimum length of `1`. Maximum length of `127`. :param pulumi.Input['FeatureVariationValueArgs'] value: A block that specifies the value assigned to this variation. Detailed below """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + FeatureVariationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input['FeatureVariationValueArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -114,14 +144,39 @@ def __init__(__self__, *, :param pulumi.Input[str] long_value: If this feature uses the long variation type, this field contains the long value of this variation. Minimum value of `-9007199254740991`. Maximum value of `9007199254740991`. :param pulumi.Input[str] string_value: If this feature uses the string variation type, this field contains the string value of this variation. Minimum length of `0`. Maximum length of `512`. """ + FeatureVariationValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bool_value=bool_value, + double_value=double_value, + long_value=long_value, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bool_value: Optional[pulumi.Input[str]] = None, + double_value: Optional[pulumi.Input[str]] = None, + long_value: Optional[pulumi.Input[str]] = None, + string_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bool_value is None and 'boolValue' in kwargs: + bool_value = kwargs['boolValue'] + if double_value is None and 'doubleValue' in kwargs: + double_value = kwargs['doubleValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if bool_value is not None: - pulumi.set(__self__, "bool_value", bool_value) + _setter("bool_value", bool_value) if double_value is not None: - pulumi.set(__self__, "double_value", double_value) + _setter("double_value", double_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="boolValue") @@ -181,10 +236,27 @@ def __init__(__self__, *, :param pulumi.Input[str] ended_time: The date and time that the launch ended. :param pulumi.Input[str] started_time: The date and time that the launch started. """ + LaunchExecutionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ended_time=ended_time, + started_time=started_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ended_time: Optional[pulumi.Input[str]] = None, + started_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ended_time is None and 'endedTime' in kwargs: + ended_time = kwargs['endedTime'] + if started_time is None and 'startedTime' in kwargs: + started_time = kwargs['startedTime'] + if ended_time is not None: - pulumi.set(__self__, "ended_time", ended_time) + _setter("ended_time", ended_time) if started_time is not None: - pulumi.set(__self__, "started_time", started_time) + _setter("started_time", started_time) @property @pulumi.getter(name="endedTime") @@ -224,11 +296,34 @@ def __init__(__self__, *, :param pulumi.Input[str] variation: Specifies the feature variation to use for this launch group. :param pulumi.Input[str] description: Specifies the description of the launch group. """ - pulumi.set(__self__, "feature", feature) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "variation", variation) + LaunchGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + feature=feature, + name=name, + variation=variation, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + feature: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + variation: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if feature is None: + raise TypeError("Missing 'feature' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if variation is None: + raise TypeError("Missing 'variation' argument") + + _setter("feature", feature) + _setter("name", name) + _setter("variation", variation) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -286,7 +381,22 @@ def __init__(__self__, *, """ :param pulumi.Input['LaunchMetricMonitorMetricDefinitionArgs'] metric_definition: A block that defines the metric. Detailed below. """ - pulumi.set(__self__, "metric_definition", metric_definition) + LaunchMetricMonitorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_definition=metric_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_definition: Optional[pulumi.Input['LaunchMetricMonitorMetricDefinitionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_definition is None and 'metricDefinition' in kwargs: + metric_definition = kwargs['metricDefinition'] + if metric_definition is None: + raise TypeError("Missing 'metric_definition' argument") + + _setter("metric_definition", metric_definition) @property @pulumi.getter(name="metricDefinition") @@ -316,13 +426,46 @@ def __init__(__self__, *, :param pulumi.Input[str] event_pattern: Specifies The EventBridge event pattern that defines how the metric is recorded. :param pulumi.Input[str] unit_label: Specifies a label for the units that the metric is measuring. """ - pulumi.set(__self__, "entity_id_key", entity_id_key) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value_key", value_key) + LaunchMetricMonitorMetricDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_id_key=entity_id_key, + name=name, + value_key=value_key, + event_pattern=event_pattern, + unit_label=unit_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_id_key: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + value_key: Optional[pulumi.Input[str]] = None, + event_pattern: Optional[pulumi.Input[str]] = None, + unit_label: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_id_key is None and 'entityIdKey' in kwargs: + entity_id_key = kwargs['entityIdKey'] + if entity_id_key is None: + raise TypeError("Missing 'entity_id_key' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if value_key is None and 'valueKey' in kwargs: + value_key = kwargs['valueKey'] + if value_key is None: + raise TypeError("Missing 'value_key' argument") + if event_pattern is None and 'eventPattern' in kwargs: + event_pattern = kwargs['eventPattern'] + if unit_label is None and 'unitLabel' in kwargs: + unit_label = kwargs['unitLabel'] + + _setter("entity_id_key", entity_id_key) + _setter("name", name) + _setter("value_key", value_key) if event_pattern is not None: - pulumi.set(__self__, "event_pattern", event_pattern) + _setter("event_pattern", event_pattern) if unit_label is not None: - pulumi.set(__self__, "unit_label", unit_label) + _setter("unit_label", unit_label) @property @pulumi.getter(name="entityIdKey") @@ -392,7 +535,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['LaunchScheduledSplitsConfigStepArgs']]] steps: One or up to six blocks that define the traffic allocation percentages among the feature variations during each step of the launch. This also defines the start time of each step. Detailed below. """ - pulumi.set(__self__, "steps", steps) + LaunchScheduledSplitsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + steps=steps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + steps: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchScheduledSplitsConfigStepArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if steps is None: + raise TypeError("Missing 'steps' argument") + + _setter("steps", steps) @property @pulumi.getter @@ -418,10 +574,35 @@ def __init__(__self__, *, :param pulumi.Input[str] start_time: Specifies the date and time that this step of the launch starts. :param pulumi.Input[Sequence[pulumi.Input['LaunchScheduledSplitsConfigStepSegmentOverrideArgs']]] segment_overrides: One or up to six blocks that specify different traffic splits for one or more audience segments. A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age. Detailed below. """ - pulumi.set(__self__, "group_weights", group_weights) - pulumi.set(__self__, "start_time", start_time) + LaunchScheduledSplitsConfigStepArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_weights=group_weights, + start_time=start_time, + segment_overrides=segment_overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_weights: Optional[pulumi.Input[Mapping[str, pulumi.Input[int]]]] = None, + start_time: Optional[pulumi.Input[str]] = None, + segment_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchScheduledSplitsConfigStepSegmentOverrideArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_weights is None and 'groupWeights' in kwargs: + group_weights = kwargs['groupWeights'] + if group_weights is None: + raise TypeError("Missing 'group_weights' argument") + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if start_time is None: + raise TypeError("Missing 'start_time' argument") + if segment_overrides is None and 'segmentOverrides' in kwargs: + segment_overrides = kwargs['segmentOverrides'] + + _setter("group_weights", group_weights) + _setter("start_time", start_time) if segment_overrides is not None: - pulumi.set(__self__, "segment_overrides", segment_overrides) + _setter("segment_overrides", segment_overrides) @property @pulumi.getter(name="groupWeights") @@ -471,9 +652,32 @@ def __init__(__self__, *, :param pulumi.Input[str] segment: The name or ARN of the segment to use. :param pulumi.Input[Mapping[str, pulumi.Input[int]]] weights: The traffic allocation percentages among the feature variations to assign to this segment. This is a set of key-value pairs. The keys are variation names. The values represent the amount of traffic to allocate to that variation for this segment. This is expressed in thousandths of a percent, so a weight of 50000 represents 50% of traffic. """ - pulumi.set(__self__, "evaluation_order", evaluation_order) - pulumi.set(__self__, "segment", segment) - pulumi.set(__self__, "weights", weights) + LaunchScheduledSplitsConfigStepSegmentOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + evaluation_order=evaluation_order, + segment=segment, + weights=weights, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + evaluation_order: Optional[pulumi.Input[int]] = None, + segment: Optional[pulumi.Input[str]] = None, + weights: Optional[pulumi.Input[Mapping[str, pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if evaluation_order is None and 'evaluationOrder' in kwargs: + evaluation_order = kwargs['evaluationOrder'] + if evaluation_order is None: + raise TypeError("Missing 'evaluation_order' argument") + if segment is None: + raise TypeError("Missing 'segment' argument") + if weights is None: + raise TypeError("Missing 'weights' argument") + + _setter("evaluation_order", evaluation_order) + _setter("segment", segment) + _setter("weights", weights) @property @pulumi.getter(name="evaluationOrder") @@ -521,10 +725,27 @@ def __init__(__self__, *, :param pulumi.Input['ProjectDataDeliveryCloudwatchLogsArgs'] cloudwatch_logs: A block that defines the CloudWatch Log Group that stores the evaluation events. See below. :param pulumi.Input['ProjectDataDeliveryS3DestinationArgs'] s3_destination: A block that defines the S3 bucket and prefix that stores the evaluation events. See below. """ + ProjectDataDeliveryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + s3_destination=s3_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional[pulumi.Input['ProjectDataDeliveryCloudwatchLogsArgs']] = None, + s3_destination: Optional[pulumi.Input['ProjectDataDeliveryS3DestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if s3_destination is None and 's3Destination' in kwargs: + s3_destination = kwargs['s3Destination'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if s3_destination is not None: - pulumi.set(__self__, "s3_destination", s3_destination) + _setter("s3_destination", s3_destination) @property @pulumi.getter(name="cloudwatchLogs") @@ -560,8 +781,21 @@ def __init__(__self__, *, The `s3_destination` block supports the following arguments: """ + ProjectDataDeliveryCloudwatchLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + if log_group is not None: - pulumi.set(__self__, "log_group", log_group) + _setter("log_group", log_group) @property @pulumi.getter(name="logGroup") @@ -587,10 +821,23 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: The name of the bucket in which Evidently stores evaluation events. :param pulumi.Input[str] prefix: The bucket prefix in which Evidently stores evaluation events. """ + ProjectDataDeliveryS3DestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/evidently/feature.py b/sdk/python/pulumi_aws/evidently/feature.py index 4580645e702..179977e5690 100644 --- a/sdk/python/pulumi_aws/evidently/feature.py +++ b/sdk/python/pulumi_aws/evidently/feature.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,20 +35,55 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name for the new feature. Minimum length of `1`. Maximum length of `127`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the feature. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "project", project) - pulumi.set(__self__, "variations", variations) + FeatureArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + project=project, + variations=variations, + default_variation=default_variation, + description=description, + entity_overrides=entity_overrides, + evaluation_strategy=evaluation_strategy, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + project: Optional[pulumi.Input[str]] = None, + variations: Optional[pulumi.Input[Sequence[pulumi.Input['FeatureVariationArgs']]]] = None, + default_variation: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + entity_overrides: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + evaluation_strategy: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if project is None: + raise TypeError("Missing 'project' argument") + if variations is None: + raise TypeError("Missing 'variations' argument") + if default_variation is None and 'defaultVariation' in kwargs: + default_variation = kwargs['defaultVariation'] + if entity_overrides is None and 'entityOverrides' in kwargs: + entity_overrides = kwargs['entityOverrides'] + if evaluation_strategy is None and 'evaluationStrategy' in kwargs: + evaluation_strategy = kwargs['evaluationStrategy'] + + _setter("project", project) + _setter("variations", variations) if default_variation is not None: - pulumi.set(__self__, "default_variation", default_variation) + _setter("default_variation", default_variation) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if entity_overrides is not None: - pulumi.set(__self__, "entity_overrides", entity_overrides) + _setter("entity_overrides", entity_overrides) if evaluation_strategy is not None: - pulumi.set(__self__, "evaluation_strategy", evaluation_strategy) + _setter("evaluation_strategy", evaluation_strategy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -183,39 +218,94 @@ def __init__(__self__, *, :param pulumi.Input[str] value_type: Defines the type of value used to define the different feature variations. Valid Values: `STRING`, `LONG`, `DOUBLE`, `BOOLEAN`. :param pulumi.Input[Sequence[pulumi.Input['FeatureVariationArgs']]] variations: One or more blocks that contain the configuration of the feature's different variations. Detailed below """ + _FeatureState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_time=created_time, + default_variation=default_variation, + description=description, + entity_overrides=entity_overrides, + evaluation_rules=evaluation_rules, + evaluation_strategy=evaluation_strategy, + last_updated_time=last_updated_time, + name=name, + project=project, + status=status, + tags=tags, + tags_all=tags_all, + value_type=value_type, + variations=variations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + default_variation: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + entity_overrides: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + evaluation_rules: Optional[pulumi.Input[Sequence[pulumi.Input['FeatureEvaluationRuleArgs']]]] = None, + evaluation_strategy: Optional[pulumi.Input[str]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + value_type: Optional[pulumi.Input[str]] = None, + variations: Optional[pulumi.Input[Sequence[pulumi.Input['FeatureVariationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if default_variation is None and 'defaultVariation' in kwargs: + default_variation = kwargs['defaultVariation'] + if entity_overrides is None and 'entityOverrides' in kwargs: + entity_overrides = kwargs['entityOverrides'] + if evaluation_rules is None and 'evaluationRules' in kwargs: + evaluation_rules = kwargs['evaluationRules'] + if evaluation_strategy is None and 'evaluationStrategy' in kwargs: + evaluation_strategy = kwargs['evaluationStrategy'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if value_type is None and 'valueType' in kwargs: + value_type = kwargs['valueType'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if default_variation is not None: - pulumi.set(__self__, "default_variation", default_variation) + _setter("default_variation", default_variation) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if entity_overrides is not None: - pulumi.set(__self__, "entity_overrides", entity_overrides) + _setter("entity_overrides", entity_overrides) if evaluation_rules is not None: - pulumi.set(__self__, "evaluation_rules", evaluation_rules) + _setter("evaluation_rules", evaluation_rules) if evaluation_strategy is not None: - pulumi.set(__self__, "evaluation_strategy", evaluation_strategy) + _setter("evaluation_strategy", evaluation_strategy) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if project is not None: - pulumi.set(__self__, "project", project) + _setter("project", project) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if value_type is not None: - pulumi.set(__self__, "value_type", value_type) + _setter("value_type", value_type) if variations is not None: - pulumi.set(__self__, "variations", variations) + _setter("variations", variations) @property @pulumi.getter @@ -644,6 +734,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FeatureArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/evidently/launch.py b/sdk/python/pulumi_aws/evidently/launch.py index d71245e70af..9d065bdb1a2 100644 --- a/sdk/python/pulumi_aws/evidently/launch.py +++ b/sdk/python/pulumi_aws/evidently/launch.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,20 +35,55 @@ def __init__(__self__, *, :param pulumi.Input['LaunchScheduledSplitsConfigArgs'] scheduled_splits_config: A block that defines the traffic allocation percentages among the feature variations during each step of the launch. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the launch. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "groups", groups) - pulumi.set(__self__, "project", project) + LaunchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + groups=groups, + project=project, + description=description, + metric_monitors=metric_monitors, + name=name, + randomization_salt=randomization_salt, + scheduled_splits_config=scheduled_splits_config, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + groups: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchGroupArgs']]]] = None, + project: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + metric_monitors: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchMetricMonitorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + randomization_salt: Optional[pulumi.Input[str]] = None, + scheduled_splits_config: Optional[pulumi.Input['LaunchScheduledSplitsConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if groups is None: + raise TypeError("Missing 'groups' argument") + if project is None: + raise TypeError("Missing 'project' argument") + if metric_monitors is None and 'metricMonitors' in kwargs: + metric_monitors = kwargs['metricMonitors'] + if randomization_salt is None and 'randomizationSalt' in kwargs: + randomization_salt = kwargs['randomizationSalt'] + if scheduled_splits_config is None and 'scheduledSplitsConfig' in kwargs: + scheduled_splits_config = kwargs['scheduledSplitsConfig'] + + _setter("groups", groups) + _setter("project", project) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if metric_monitors is not None: - pulumi.set(__self__, "metric_monitors", metric_monitors) + _setter("metric_monitors", metric_monitors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if randomization_salt is not None: - pulumi.set(__self__, "randomization_salt", randomization_salt) + _setter("randomization_salt", randomization_salt) if scheduled_splits_config is not None: - pulumi.set(__self__, "scheduled_splits_config", scheduled_splits_config) + _setter("scheduled_splits_config", scheduled_splits_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -185,41 +220,96 @@ def __init__(__self__, *, :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] type: The type of launch. """ + _LaunchState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_time=created_time, + description=description, + executions=executions, + groups=groups, + last_updated_time=last_updated_time, + metric_monitors=metric_monitors, + name=name, + project=project, + randomization_salt=randomization_salt, + scheduled_splits_config=scheduled_splits_config, + status=status, + status_reason=status_reason, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + executions: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchExecutionArgs']]]] = None, + groups: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchGroupArgs']]]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + metric_monitors: Optional[pulumi.Input[Sequence[pulumi.Input['LaunchMetricMonitorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + randomization_salt: Optional[pulumi.Input[str]] = None, + scheduled_splits_config: Optional[pulumi.Input['LaunchScheduledSplitsConfigArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + status_reason: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if metric_monitors is None and 'metricMonitors' in kwargs: + metric_monitors = kwargs['metricMonitors'] + if randomization_salt is None and 'randomizationSalt' in kwargs: + randomization_salt = kwargs['randomizationSalt'] + if scheduled_splits_config is None and 'scheduledSplitsConfig' in kwargs: + scheduled_splits_config = kwargs['scheduledSplitsConfig'] + if status_reason is None and 'statusReason' in kwargs: + status_reason = kwargs['statusReason'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if executions is not None: - pulumi.set(__self__, "executions", executions) + _setter("executions", executions) if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if metric_monitors is not None: - pulumi.set(__self__, "metric_monitors", metric_monitors) + _setter("metric_monitors", metric_monitors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if project is not None: - pulumi.set(__self__, "project", project) + _setter("project", project) if randomization_salt is not None: - pulumi.set(__self__, "randomization_salt", randomization_salt) + _setter("randomization_salt", randomization_salt) if scheduled_splits_config is not None: - pulumi.set(__self__, "scheduled_splits_config", scheduled_splits_config) + _setter("scheduled_splits_config", scheduled_splits_config) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_reason is not None: - pulumi.set(__self__, "status_reason", status_reason) + _setter("status_reason", status_reason) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -958,6 +1048,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LaunchArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -990,6 +1084,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'project'") __props__.__dict__["project"] = project __props__.__dict__["randomization_salt"] = randomization_salt + scheduled_splits_config = _utilities.configure(scheduled_splits_config, LaunchScheduledSplitsConfigArgs, True) __props__.__dict__["scheduled_splits_config"] = scheduled_splits_config __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/evidently/outputs.py b/sdk/python/pulumi_aws/evidently/outputs.py index 4d149bc1613..8baf5f47383 100644 --- a/sdk/python/pulumi_aws/evidently/outputs.py +++ b/sdk/python/pulumi_aws/evidently/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -35,10 +35,23 @@ def __init__(__self__, *, :param str name: The name for the new feature. Minimum length of `1`. Maximum length of `127`. :param str type: This value is `aws.evidently.splits` if this is an evaluation rule for a launch, and it is `aws.evidently.onlineab` if this is an evaluation rule for an experiment. """ + FeatureEvaluationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -66,8 +79,25 @@ def __init__(__self__, *, :param str name: The name of the variation. Minimum length of `1`. Maximum length of `127`. :param 'FeatureVariationValueArgs' value: A block that specifies the value assigned to this variation. Detailed below """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + FeatureVariation._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional['outputs.FeatureVariationValue'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -122,14 +152,39 @@ def __init__(__self__, *, :param str long_value: If this feature uses the long variation type, this field contains the long value of this variation. Minimum value of `-9007199254740991`. Maximum value of `9007199254740991`. :param str string_value: If this feature uses the string variation type, this field contains the string value of this variation. Minimum length of `0`. Maximum length of `512`. """ + FeatureVariationValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + bool_value=bool_value, + double_value=double_value, + long_value=long_value, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bool_value: Optional[str] = None, + double_value: Optional[str] = None, + long_value: Optional[str] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bool_value is None and 'boolValue' in kwargs: + bool_value = kwargs['boolValue'] + if double_value is None and 'doubleValue' in kwargs: + double_value = kwargs['doubleValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if bool_value is not None: - pulumi.set(__self__, "bool_value", bool_value) + _setter("bool_value", bool_value) if double_value is not None: - pulumi.set(__self__, "double_value", double_value) + _setter("double_value", double_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="boolValue") @@ -192,10 +247,27 @@ def __init__(__self__, *, :param str ended_time: The date and time that the launch ended. :param str started_time: The date and time that the launch started. """ + LaunchExecution._configure( + lambda key, value: pulumi.set(__self__, key, value), + ended_time=ended_time, + started_time=started_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ended_time: Optional[str] = None, + started_time: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ended_time is None and 'endedTime' in kwargs: + ended_time = kwargs['endedTime'] + if started_time is None and 'startedTime' in kwargs: + started_time = kwargs['startedTime'] + if ended_time is not None: - pulumi.set(__self__, "ended_time", ended_time) + _setter("ended_time", ended_time) if started_time is not None: - pulumi.set(__self__, "started_time", started_time) + _setter("started_time", started_time) @property @pulumi.getter(name="endedTime") @@ -227,11 +299,34 @@ def __init__(__self__, *, :param str variation: Specifies the feature variation to use for this launch group. :param str description: Specifies the description of the launch group. """ - pulumi.set(__self__, "feature", feature) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "variation", variation) + LaunchGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + feature=feature, + name=name, + variation=variation, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + feature: Optional[str] = None, + name: Optional[str] = None, + variation: Optional[str] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if feature is None: + raise TypeError("Missing 'feature' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if variation is None: + raise TypeError("Missing 'variation' argument") + + _setter("feature", feature) + _setter("name", name) + _setter("variation", variation) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -290,7 +385,22 @@ def __init__(__self__, *, """ :param 'LaunchMetricMonitorMetricDefinitionArgs' metric_definition: A block that defines the metric. Detailed below. """ - pulumi.set(__self__, "metric_definition", metric_definition) + LaunchMetricMonitor._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_definition=metric_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_definition: Optional['outputs.LaunchMetricMonitorMetricDefinition'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_definition is None and 'metricDefinition' in kwargs: + metric_definition = kwargs['metricDefinition'] + if metric_definition is None: + raise TypeError("Missing 'metric_definition' argument") + + _setter("metric_definition", metric_definition) @property @pulumi.getter(name="metricDefinition") @@ -339,13 +449,46 @@ def __init__(__self__, *, :param str event_pattern: Specifies The EventBridge event pattern that defines how the metric is recorded. :param str unit_label: Specifies a label for the units that the metric is measuring. """ - pulumi.set(__self__, "entity_id_key", entity_id_key) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value_key", value_key) + LaunchMetricMonitorMetricDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_id_key=entity_id_key, + name=name, + value_key=value_key, + event_pattern=event_pattern, + unit_label=unit_label, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_id_key: Optional[str] = None, + name: Optional[str] = None, + value_key: Optional[str] = None, + event_pattern: Optional[str] = None, + unit_label: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_id_key is None and 'entityIdKey' in kwargs: + entity_id_key = kwargs['entityIdKey'] + if entity_id_key is None: + raise TypeError("Missing 'entity_id_key' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if value_key is None and 'valueKey' in kwargs: + value_key = kwargs['valueKey'] + if value_key is None: + raise TypeError("Missing 'value_key' argument") + if event_pattern is None and 'eventPattern' in kwargs: + event_pattern = kwargs['eventPattern'] + if unit_label is None and 'unitLabel' in kwargs: + unit_label = kwargs['unitLabel'] + + _setter("entity_id_key", entity_id_key) + _setter("name", name) + _setter("value_key", value_key) if event_pattern is not None: - pulumi.set(__self__, "event_pattern", event_pattern) + _setter("event_pattern", event_pattern) if unit_label is not None: - pulumi.set(__self__, "unit_label", unit_label) + _setter("unit_label", unit_label) @property @pulumi.getter(name="entityIdKey") @@ -395,7 +538,20 @@ def __init__(__self__, *, """ :param Sequence['LaunchScheduledSplitsConfigStepArgs'] steps: One or up to six blocks that define the traffic allocation percentages among the feature variations during each step of the launch. This also defines the start time of each step. Detailed below. """ - pulumi.set(__self__, "steps", steps) + LaunchScheduledSplitsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + steps=steps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + steps: Optional[Sequence['outputs.LaunchScheduledSplitsConfigStep']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if steps is None: + raise TypeError("Missing 'steps' argument") + + _setter("steps", steps) @property @pulumi.getter @@ -438,10 +594,35 @@ def __init__(__self__, *, :param str start_time: Specifies the date and time that this step of the launch starts. :param Sequence['LaunchScheduledSplitsConfigStepSegmentOverrideArgs'] segment_overrides: One or up to six blocks that specify different traffic splits for one or more audience segments. A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age. Detailed below. """ - pulumi.set(__self__, "group_weights", group_weights) - pulumi.set(__self__, "start_time", start_time) + LaunchScheduledSplitsConfigStep._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_weights=group_weights, + start_time=start_time, + segment_overrides=segment_overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_weights: Optional[Mapping[str, int]] = None, + start_time: Optional[str] = None, + segment_overrides: Optional[Sequence['outputs.LaunchScheduledSplitsConfigStepSegmentOverride']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_weights is None and 'groupWeights' in kwargs: + group_weights = kwargs['groupWeights'] + if group_weights is None: + raise TypeError("Missing 'group_weights' argument") + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if start_time is None: + raise TypeError("Missing 'start_time' argument") + if segment_overrides is None and 'segmentOverrides' in kwargs: + segment_overrides = kwargs['segmentOverrides'] + + _setter("group_weights", group_weights) + _setter("start_time", start_time) if segment_overrides is not None: - pulumi.set(__self__, "segment_overrides", segment_overrides) + _setter("segment_overrides", segment_overrides) @property @pulumi.getter(name="groupWeights") @@ -496,9 +677,32 @@ def __init__(__self__, *, :param str segment: The name or ARN of the segment to use. :param Mapping[str, int] weights: The traffic allocation percentages among the feature variations to assign to this segment. This is a set of key-value pairs. The keys are variation names. The values represent the amount of traffic to allocate to that variation for this segment. This is expressed in thousandths of a percent, so a weight of 50000 represents 50% of traffic. """ - pulumi.set(__self__, "evaluation_order", evaluation_order) - pulumi.set(__self__, "segment", segment) - pulumi.set(__self__, "weights", weights) + LaunchScheduledSplitsConfigStepSegmentOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + evaluation_order=evaluation_order, + segment=segment, + weights=weights, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + evaluation_order: Optional[int] = None, + segment: Optional[str] = None, + weights: Optional[Mapping[str, int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if evaluation_order is None and 'evaluationOrder' in kwargs: + evaluation_order = kwargs['evaluationOrder'] + if evaluation_order is None: + raise TypeError("Missing 'evaluation_order' argument") + if segment is None: + raise TypeError("Missing 'segment' argument") + if weights is None: + raise TypeError("Missing 'weights' argument") + + _setter("evaluation_order", evaluation_order) + _setter("segment", segment) + _setter("weights", weights) @property @pulumi.getter(name="evaluationOrder") @@ -553,10 +757,27 @@ def __init__(__self__, *, :param 'ProjectDataDeliveryCloudwatchLogsArgs' cloudwatch_logs: A block that defines the CloudWatch Log Group that stores the evaluation events. See below. :param 'ProjectDataDeliveryS3DestinationArgs' s3_destination: A block that defines the S3 bucket and prefix that stores the evaluation events. See below. """ + ProjectDataDelivery._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + s3_destination=s3_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional['outputs.ProjectDataDeliveryCloudwatchLogs'] = None, + s3_destination: Optional['outputs.ProjectDataDeliveryS3Destination'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if s3_destination is None and 's3Destination' in kwargs: + s3_destination = kwargs['s3Destination'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if s3_destination is not None: - pulumi.set(__self__, "s3_destination", s3_destination) + _setter("s3_destination", s3_destination) @property @pulumi.getter(name="cloudwatchLogs") @@ -601,8 +822,21 @@ def __init__(__self__, *, The `s3_destination` block supports the following arguments: """ + ProjectDataDeliveryCloudwatchLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + if log_group is not None: - pulumi.set(__self__, "log_group", log_group) + _setter("log_group", log_group) @property @pulumi.getter(name="logGroup") @@ -624,10 +858,23 @@ def __init__(__self__, *, :param str bucket: The name of the bucket in which Evidently stores evaluation events. :param str prefix: The bucket prefix in which Evidently stores evaluation events. """ + ProjectDataDeliveryS3Destination._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/evidently/project.py b/sdk/python/pulumi_aws/evidently/project.py index 9d7d50113f1..a7274456f87 100644 --- a/sdk/python/pulumi_aws/evidently/project.py +++ b/sdk/python/pulumi_aws/evidently/project.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,14 +27,33 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name for the project. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the project. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + ProjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_delivery=data_delivery, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_delivery: Optional[pulumi.Input['ProjectDataDeliveryArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_delivery is None and 'dataDelivery' in kwargs: + data_delivery = kwargs['dataDelivery'] + if data_delivery is not None: - pulumi.set(__self__, "data_delivery", data_delivery) + _setter("data_delivery", data_delivery) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dataDelivery") @@ -119,37 +138,92 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the project. 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. """ + _ProjectState._configure( + lambda key, value: pulumi.set(__self__, key, value), + active_experiment_count=active_experiment_count, + active_launch_count=active_launch_count, + arn=arn, + created_time=created_time, + data_delivery=data_delivery, + description=description, + experiment_count=experiment_count, + feature_count=feature_count, + last_updated_time=last_updated_time, + launch_count=launch_count, + name=name, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active_experiment_count: Optional[pulumi.Input[int]] = None, + active_launch_count: Optional[pulumi.Input[int]] = None, + arn: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + data_delivery: Optional[pulumi.Input['ProjectDataDeliveryArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + experiment_count: Optional[pulumi.Input[int]] = None, + feature_count: Optional[pulumi.Input[int]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + launch_count: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active_experiment_count is None and 'activeExperimentCount' in kwargs: + active_experiment_count = kwargs['activeExperimentCount'] + if active_launch_count is None and 'activeLaunchCount' in kwargs: + active_launch_count = kwargs['activeLaunchCount'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if data_delivery is None and 'dataDelivery' in kwargs: + data_delivery = kwargs['dataDelivery'] + if experiment_count is None and 'experimentCount' in kwargs: + experiment_count = kwargs['experimentCount'] + if feature_count is None and 'featureCount' in kwargs: + feature_count = kwargs['featureCount'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if launch_count is None and 'launchCount' in kwargs: + launch_count = kwargs['launchCount'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if active_experiment_count is not None: - pulumi.set(__self__, "active_experiment_count", active_experiment_count) + _setter("active_experiment_count", active_experiment_count) if active_launch_count is not None: - pulumi.set(__self__, "active_launch_count", active_launch_count) + _setter("active_launch_count", active_launch_count) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if data_delivery is not None: - pulumi.set(__self__, "data_delivery", data_delivery) + _setter("data_delivery", data_delivery) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if experiment_count is not None: - pulumi.set(__self__, "experiment_count", experiment_count) + _setter("experiment_count", experiment_count) if feature_count is not None: - pulumi.set(__self__, "feature_count", feature_count) + _setter("feature_count", feature_count) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if launch_count is not None: - pulumi.set(__self__, "launch_count", launch_count) + _setter("launch_count", launch_count) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="activeExperimentCount") @@ -476,6 +550,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProjectArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -494,6 +572,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ProjectArgs.__new__(ProjectArgs) + data_delivery = _utilities.configure(data_delivery, ProjectDataDeliveryArgs, True) __props__.__dict__["data_delivery"] = data_delivery __props__.__dict__["description"] = description __props__.__dict__["name"] = name diff --git a/sdk/python/pulumi_aws/evidently/segment.py b/sdk/python/pulumi_aws/evidently/segment.py index 9b9c4533801..f20d6b482b7 100644 --- a/sdk/python/pulumi_aws/evidently/segment.py +++ b/sdk/python/pulumi_aws/evidently/segment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SegmentArgs', 'Segment'] @@ -25,13 +25,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name for the segment. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the segment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "pattern", pattern) + SegmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pattern=pattern, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pattern: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pattern is None: + raise TypeError("Missing 'pattern' argument") + + _setter("pattern", pattern) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -108,29 +127,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the segment. 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. """ + _SegmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_time=created_time, + description=description, + experiment_count=experiment_count, + last_updated_time=last_updated_time, + launch_count=launch_count, + name=name, + pattern=pattern, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + experiment_count: Optional[pulumi.Input[int]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + launch_count: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + pattern: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if experiment_count is None and 'experimentCount' in kwargs: + experiment_count = kwargs['experimentCount'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if launch_count is None and 'launchCount' in kwargs: + launch_count = kwargs['launchCount'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if experiment_count is not None: - pulumi.set(__self__, "experiment_count", experiment_count) + _setter("experiment_count", experiment_count) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if launch_count is not None: - pulumi.set(__self__, "launch_count", launch_count) + _setter("launch_count", launch_count) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if pattern is not None: - pulumi.set(__self__, "pattern", pattern) + _setter("pattern", pattern) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -399,6 +457,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SegmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/finspace/_inputs.py b/sdk/python/pulumi_aws/finspace/_inputs.py index b115cd66992..1861c56420d 100644 --- a/sdk/python/pulumi_aws/finspace/_inputs.py +++ b/sdk/python/pulumi_aws/finspace/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -42,12 +42,57 @@ def __init__(__self__, *, :param pulumi.Input[float] scale_in_cooldown_seconds: Duration in seconds that FinSpace will wait after a scale in event before initiating another scaling event. :param pulumi.Input[float] scale_out_cooldown_seconds: Duration in seconds that FinSpace will wait after a scale out event before initiating another scaling event. """ - pulumi.set(__self__, "auto_scaling_metric", auto_scaling_metric) - pulumi.set(__self__, "max_node_count", max_node_count) - pulumi.set(__self__, "metric_target", metric_target) - pulumi.set(__self__, "min_node_count", min_node_count) - pulumi.set(__self__, "scale_in_cooldown_seconds", scale_in_cooldown_seconds) - pulumi.set(__self__, "scale_out_cooldown_seconds", scale_out_cooldown_seconds) + KxClusterAutoScalingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_scaling_metric=auto_scaling_metric, + max_node_count=max_node_count, + metric_target=metric_target, + min_node_count=min_node_count, + scale_in_cooldown_seconds=scale_in_cooldown_seconds, + scale_out_cooldown_seconds=scale_out_cooldown_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_scaling_metric: Optional[pulumi.Input[str]] = None, + max_node_count: Optional[pulumi.Input[int]] = None, + metric_target: Optional[pulumi.Input[float]] = None, + min_node_count: Optional[pulumi.Input[int]] = None, + scale_in_cooldown_seconds: Optional[pulumi.Input[float]] = None, + scale_out_cooldown_seconds: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_metric is None and 'autoScalingMetric' in kwargs: + auto_scaling_metric = kwargs['autoScalingMetric'] + if auto_scaling_metric is None: + raise TypeError("Missing 'auto_scaling_metric' argument") + if max_node_count is None and 'maxNodeCount' in kwargs: + max_node_count = kwargs['maxNodeCount'] + if max_node_count is None: + raise TypeError("Missing 'max_node_count' argument") + if metric_target is None and 'metricTarget' in kwargs: + metric_target = kwargs['metricTarget'] + if metric_target is None: + raise TypeError("Missing 'metric_target' argument") + if min_node_count is None and 'minNodeCount' in kwargs: + min_node_count = kwargs['minNodeCount'] + if min_node_count is None: + raise TypeError("Missing 'min_node_count' argument") + if scale_in_cooldown_seconds is None and 'scaleInCooldownSeconds' in kwargs: + scale_in_cooldown_seconds = kwargs['scaleInCooldownSeconds'] + if scale_in_cooldown_seconds is None: + raise TypeError("Missing 'scale_in_cooldown_seconds' argument") + if scale_out_cooldown_seconds is None and 'scaleOutCooldownSeconds' in kwargs: + scale_out_cooldown_seconds = kwargs['scaleOutCooldownSeconds'] + if scale_out_cooldown_seconds is None: + raise TypeError("Missing 'scale_out_cooldown_seconds' argument") + + _setter("auto_scaling_metric", auto_scaling_metric) + _setter("max_node_count", max_node_count) + _setter("metric_target", metric_target) + _setter("min_node_count", min_node_count) + _setter("scale_in_cooldown_seconds", scale_in_cooldown_seconds) + _setter("scale_out_cooldown_seconds", scale_out_cooldown_seconds) @property @pulumi.getter(name="autoScalingMetric") @@ -134,8 +179,25 @@ def __init__(__self__, *, * RDB - Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the `savedownStorageConfiguration` parameter. * GATEWAY - A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage. """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + KxClusterCacheStorageConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("size", size) + _setter("type", type) @property @pulumi.getter @@ -183,8 +245,29 @@ def __init__(__self__, *, * kx.s.16xlarge – The node type with a configuration of 432 GiB memory and 64 vCPUs. * kx.s.32xlarge – The node type with a configuration of 864 GiB memory and 128 vCPUs. """ - pulumi.set(__self__, "node_count", node_count) - pulumi.set(__self__, "node_type", node_type) + KxClusterCapacityConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + node_count=node_count, + node_type=node_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + node_count: Optional[pulumi.Input[int]] = None, + node_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if node_count is None and 'nodeCount' in kwargs: + node_count = kwargs['nodeCount'] + if node_count is None: + raise TypeError("Missing 'node_count' argument") + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if node_type is None: + raise TypeError("Missing 'node_type' argument") + + _setter("node_count", node_count) + _setter("node_type", node_type) @property @pulumi.getter(name="nodeCount") @@ -231,10 +314,35 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_key: Full S3 path (excluding bucket) to the .zip file that contains the code to be loaded onto the cluster when it’s started. :param pulumi.Input[str] s3_object_version: Version of an S3 Object. """ - pulumi.set(__self__, "s3_bucket", s3_bucket) - pulumi.set(__self__, "s3_key", s3_key) + KxClusterCodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket=s3_bucket, + s3_key=s3_key, + s3_object_version=s3_object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_key: Optional[pulumi.Input[str]] = None, + s3_object_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_bucket is None: + raise TypeError("Missing 's3_bucket' argument") + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_key is None: + raise TypeError("Missing 's3_key' argument") + if s3_object_version is None and 's3ObjectVersion' in kwargs: + s3_object_version = kwargs['s3ObjectVersion'] + + _setter("s3_bucket", s3_bucket) + _setter("s3_key", s3_key) if s3_object_version is not None: - pulumi.set(__self__, "s3_object_version", s3_object_version) + _setter("s3_object_version", s3_object_version) @property @pulumi.getter(name="s3Bucket") @@ -284,11 +392,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['KxClusterDatabaseCacheConfigurationArgs']]] cache_configurations: Configuration details for the disk cache to increase performance reading from a KX database mounted to the cluster. See cache_configurations. :param pulumi.Input[str] changeset_id: A unique identifier of the changeset that is associated with the cluster. """ - pulumi.set(__self__, "database_name", database_name) + KxClusterDatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + cache_configurations=cache_configurations, + changeset_id=changeset_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + cache_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['KxClusterDatabaseCacheConfigurationArgs']]]] = None, + changeset_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if cache_configurations is None and 'cacheConfigurations' in kwargs: + cache_configurations = kwargs['cacheConfigurations'] + if changeset_id is None and 'changesetId' in kwargs: + changeset_id = kwargs['changesetId'] + + _setter("database_name", database_name) if cache_configurations is not None: - pulumi.set(__self__, "cache_configurations", cache_configurations) + _setter("cache_configurations", cache_configurations) if changeset_id is not None: - pulumi.set(__self__, "changeset_id", changeset_id) + _setter("changeset_id", changeset_id) @property @pulumi.getter(name="databaseName") @@ -336,9 +467,28 @@ def __init__(__self__, *, :param pulumi.Input[str] cache_type: Type of disk cache. :param pulumi.Input[Sequence[pulumi.Input[str]]] db_paths: Paths within the database to cache. """ - pulumi.set(__self__, "cache_type", cache_type) + KxClusterDatabaseCacheConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_type=cache_type, + db_paths=db_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_type: Optional[pulumi.Input[str]] = None, + db_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_type is None and 'cacheType' in kwargs: + cache_type = kwargs['cacheType'] + if cache_type is None: + raise TypeError("Missing 'cache_type' argument") + if db_paths is None and 'dbPaths' in kwargs: + db_paths = kwargs['dbPaths'] + + _setter("cache_type", cache_type) if db_paths is not None: - pulumi.set(__self__, "db_paths", db_paths) + _setter("db_paths", db_paths) @property @pulumi.getter(name="cacheType") @@ -375,8 +525,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of writeable storage space for temporarily storing your savedown data. The valid values are: * SDS01 - This type represents 3000 IOPS and io2 ebs volume type. """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + KxClusterSavedownStorageConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("size", size) + _setter("type", type) @property @pulumi.getter @@ -417,10 +584,43 @@ def __init__(__self__, *, * `subnet_ids `- (Required) Identifier of the subnet that the Privatelink VPC endpoint uses to connect to the cluster. :param pulumi.Input[str] vpc_id: Identifier of the VPC endpoint """ - pulumi.set(__self__, "ip_address_type", ip_address_type) - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + KxClusterVpcConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_address_type=ip_address_type, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_address_type: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if ip_address_type is None: + raise TypeError("Missing 'ip_address_type' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("ip_address_type", ip_address_type) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="ipAddressType") @@ -478,8 +678,29 @@ def __init__(__self__, *, :param pulumi.Input[str] custom_dns_server_ip: IP address of the DNS server. :param pulumi.Input[str] custom_dns_server_name: Name of the DNS server. """ - pulumi.set(__self__, "custom_dns_server_ip", custom_dns_server_ip) - pulumi.set(__self__, "custom_dns_server_name", custom_dns_server_name) + KxEnvironmentCustomDnsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_dns_server_ip=custom_dns_server_ip, + custom_dns_server_name=custom_dns_server_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_dns_server_ip: Optional[pulumi.Input[str]] = None, + custom_dns_server_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_dns_server_ip is None and 'customDnsServerIp' in kwargs: + custom_dns_server_ip = kwargs['customDnsServerIp'] + if custom_dns_server_ip is None: + raise TypeError("Missing 'custom_dns_server_ip' argument") + if custom_dns_server_name is None and 'customDnsServerName' in kwargs: + custom_dns_server_name = kwargs['customDnsServerName'] + if custom_dns_server_name is None: + raise TypeError("Missing 'custom_dns_server_name' argument") + + _setter("custom_dns_server_ip", custom_dns_server_ip) + _setter("custom_dns_server_name", custom_dns_server_name) @property @pulumi.getter(name="customDnsServerIp") @@ -517,10 +738,35 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_id: Identifier of the transit gateway created by the customer to connect outbound traffics from KX network to your internal network. :param pulumi.Input[Sequence[pulumi.Input['KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationArgs']]] attachment_network_acl_configurations: Rules that define how you manage outbound traffic from kdb network to your internal network. Defined below. """ - pulumi.set(__self__, "routable_cidr_space", routable_cidr_space) - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + KxEnvironmentTransitGatewayConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + routable_cidr_space=routable_cidr_space, + transit_gateway_id=transit_gateway_id, + attachment_network_acl_configurations=attachment_network_acl_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + routable_cidr_space: Optional[pulumi.Input[str]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + attachment_network_acl_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if routable_cidr_space is None and 'routableCidrSpace' in kwargs: + routable_cidr_space = kwargs['routableCidrSpace'] + if routable_cidr_space is None: + raise TypeError("Missing 'routable_cidr_space' argument") + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if attachment_network_acl_configurations is None and 'attachmentNetworkAclConfigurations' in kwargs: + attachment_network_acl_configurations = kwargs['attachmentNetworkAclConfigurations'] + + _setter("routable_cidr_space", routable_cidr_space) + _setter("transit_gateway_id", transit_gateway_id) if attachment_network_acl_configurations is not None: - pulumi.set(__self__, "attachment_network_acl_configurations", attachment_network_acl_configurations) + _setter("attachment_network_acl_configurations", attachment_network_acl_configurations) @property @pulumi.getter(name="routableCidrSpace") @@ -576,14 +822,53 @@ def __init__(__self__, *, :param pulumi.Input['KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationIcmpTypeCodeArgs'] icmp_type_code: Defines the ICMP protocol that consists of the ICMP type and code. Defined below. :param pulumi.Input['KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationPortRangeArgs'] port_range: Range of ports the rule applies to. Defined below. """ - pulumi.set(__self__, "cidr_block", cidr_block) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_action", rule_action) - pulumi.set(__self__, "rule_number", rule_number) + KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + icmp_type_code=icmp_type_code, + port_range=port_range, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + rule_action: Optional[pulumi.Input[str]] = None, + rule_number: Optional[pulumi.Input[int]] = None, + icmp_type_code: Optional[pulumi.Input['KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationIcmpTypeCodeArgs']] = None, + port_range: Optional[pulumi.Input['KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationPortRangeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if cidr_block is None: + raise TypeError("Missing 'cidr_block' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_action is None: + raise TypeError("Missing 'rule_action' argument") + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if rule_number is None: + raise TypeError("Missing 'rule_number' argument") + if icmp_type_code is None and 'icmpTypeCode' in kwargs: + icmp_type_code = kwargs['icmpTypeCode'] + if port_range is None and 'portRange' in kwargs: + port_range = kwargs['portRange'] + + _setter("cidr_block", cidr_block) + _setter("protocol", protocol) + _setter("rule_action", rule_action) + _setter("rule_number", rule_number) if icmp_type_code is not None: - pulumi.set(__self__, "icmp_type_code", icmp_type_code) + _setter("icmp_type_code", icmp_type_code) if port_range is not None: - pulumi.set(__self__, "port_range", port_range) + _setter("port_range", port_range) @property @pulumi.getter(name="cidrBlock") @@ -667,8 +952,25 @@ def __init__(__self__, *, :param pulumi.Input[int] code: ICMP code. A value of `-1` means all codes for the specified ICMP type. :param pulumi.Input[int] type: ICMP type. A value of `-1` means all types. """ - pulumi.set(__self__, "code", code) - pulumi.set(__self__, "type", type) + KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationIcmpTypeCodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + code=code, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code is None: + raise TypeError("Missing 'code' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("code", code) + _setter("type", type) @property @pulumi.getter @@ -704,8 +1006,27 @@ def __init__(__self__, *, :param pulumi.Input[int] from_: First port in the range. :param pulumi.Input[int] to: Last port in the range. """ - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationPortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[pulumi.Input[int]] = None, + to: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") diff --git a/sdk/python/pulumi_aws/finspace/kx_cluster.py b/sdk/python/pulumi_aws/finspace/kx_cluster.py index 075d92a7105..a24b30bcbc6 100644 --- a/sdk/python/pulumi_aws/finspace/kx_cluster.py +++ b/sdk/python/pulumi_aws/finspace/kx_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -62,36 +62,117 @@ def __init__(__self__, *, :param pulumi.Input['KxClusterSavedownStorageConfigurationArgs'] savedown_storage_configuration: Size and type of the temporary storage that is used to hold data during the savedown process. This parameter is required when you choose `type` as RDB. All the data written to this storage space is lost when the cluster node is restarted. See savedown_storage_configuration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "az_mode", az_mode) - pulumi.set(__self__, "capacity_configuration", capacity_configuration) - pulumi.set(__self__, "environment_id", environment_id) - pulumi.set(__self__, "release_label", release_label) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + KxClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + az_mode=az_mode, + capacity_configuration=capacity_configuration, + environment_id=environment_id, + release_label=release_label, + type=type, + vpc_configuration=vpc_configuration, + auto_scaling_configuration=auto_scaling_configuration, + availability_zone_id=availability_zone_id, + cache_storage_configurations=cache_storage_configurations, + code=code, + command_line_arguments=command_line_arguments, + databases=databases, + description=description, + execution_role=execution_role, + initialization_script=initialization_script, + name=name, + savedown_storage_configuration=savedown_storage_configuration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + az_mode: Optional[pulumi.Input[str]] = None, + capacity_configuration: Optional[pulumi.Input['KxClusterCapacityConfigurationArgs']] = None, + environment_id: Optional[pulumi.Input[str]] = None, + release_label: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + vpc_configuration: Optional[pulumi.Input['KxClusterVpcConfigurationArgs']] = None, + auto_scaling_configuration: Optional[pulumi.Input['KxClusterAutoScalingConfigurationArgs']] = None, + availability_zone_id: Optional[pulumi.Input[str]] = None, + cache_storage_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['KxClusterCacheStorageConfigurationArgs']]]] = None, + code: Optional[pulumi.Input['KxClusterCodeArgs']] = None, + command_line_arguments: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + databases: Optional[pulumi.Input[Sequence[pulumi.Input['KxClusterDatabaseArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_role: Optional[pulumi.Input[str]] = None, + initialization_script: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + savedown_storage_configuration: Optional[pulumi.Input['KxClusterSavedownStorageConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if az_mode is None and 'azMode' in kwargs: + az_mode = kwargs['azMode'] + if az_mode is None: + raise TypeError("Missing 'az_mode' argument") + if capacity_configuration is None and 'capacityConfiguration' in kwargs: + capacity_configuration = kwargs['capacityConfiguration'] + if capacity_configuration is None: + raise TypeError("Missing 'capacity_configuration' argument") + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if environment_id is None: + raise TypeError("Missing 'environment_id' argument") + if release_label is None and 'releaseLabel' in kwargs: + release_label = kwargs['releaseLabel'] + if release_label is None: + raise TypeError("Missing 'release_label' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + if vpc_configuration is None: + raise TypeError("Missing 'vpc_configuration' argument") + if auto_scaling_configuration is None and 'autoScalingConfiguration' in kwargs: + auto_scaling_configuration = kwargs['autoScalingConfiguration'] + if availability_zone_id is None and 'availabilityZoneId' in kwargs: + availability_zone_id = kwargs['availabilityZoneId'] + if cache_storage_configurations is None and 'cacheStorageConfigurations' in kwargs: + cache_storage_configurations = kwargs['cacheStorageConfigurations'] + if command_line_arguments is None and 'commandLineArguments' in kwargs: + command_line_arguments = kwargs['commandLineArguments'] + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if initialization_script is None and 'initializationScript' in kwargs: + initialization_script = kwargs['initializationScript'] + if savedown_storage_configuration is None and 'savedownStorageConfiguration' in kwargs: + savedown_storage_configuration = kwargs['savedownStorageConfiguration'] + + _setter("az_mode", az_mode) + _setter("capacity_configuration", capacity_configuration) + _setter("environment_id", environment_id) + _setter("release_label", release_label) + _setter("type", type) + _setter("vpc_configuration", vpc_configuration) if auto_scaling_configuration is not None: - pulumi.set(__self__, "auto_scaling_configuration", auto_scaling_configuration) + _setter("auto_scaling_configuration", auto_scaling_configuration) if availability_zone_id is not None: - pulumi.set(__self__, "availability_zone_id", availability_zone_id) + _setter("availability_zone_id", availability_zone_id) if cache_storage_configurations is not None: - pulumi.set(__self__, "cache_storage_configurations", cache_storage_configurations) + _setter("cache_storage_configurations", cache_storage_configurations) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if command_line_arguments is not None: - pulumi.set(__self__, "command_line_arguments", command_line_arguments) + _setter("command_line_arguments", command_line_arguments) if databases is not None: - pulumi.set(__self__, "databases", databases) + _setter("databases", databases) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if execution_role is not None: - pulumi.set(__self__, "execution_role", execution_role) + _setter("execution_role", execution_role) if initialization_script is not None: - pulumi.set(__self__, "initialization_script", initialization_script) + _setter("initialization_script", initialization_script) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if savedown_storage_configuration is not None: - pulumi.set(__self__, "savedown_storage_configuration", savedown_storage_configuration) + _setter("savedown_storage_configuration", savedown_storage_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="azMode") @@ -376,57 +457,146 @@ def __init__(__self__, *, The following arguments are optional: """ + _KxClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_scaling_configuration=auto_scaling_configuration, + availability_zone_id=availability_zone_id, + az_mode=az_mode, + cache_storage_configurations=cache_storage_configurations, + capacity_configuration=capacity_configuration, + code=code, + command_line_arguments=command_line_arguments, + created_timestamp=created_timestamp, + databases=databases, + description=description, + environment_id=environment_id, + execution_role=execution_role, + initialization_script=initialization_script, + last_modified_timestamp=last_modified_timestamp, + name=name, + release_label=release_label, + savedown_storage_configuration=savedown_storage_configuration, + status=status, + status_reason=status_reason, + tags=tags, + tags_all=tags_all, + type=type, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_scaling_configuration: Optional[pulumi.Input['KxClusterAutoScalingConfigurationArgs']] = None, + availability_zone_id: Optional[pulumi.Input[str]] = None, + az_mode: Optional[pulumi.Input[str]] = None, + cache_storage_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['KxClusterCacheStorageConfigurationArgs']]]] = None, + capacity_configuration: Optional[pulumi.Input['KxClusterCapacityConfigurationArgs']] = None, + code: Optional[pulumi.Input['KxClusterCodeArgs']] = None, + command_line_arguments: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + created_timestamp: Optional[pulumi.Input[str]] = None, + databases: Optional[pulumi.Input[Sequence[pulumi.Input['KxClusterDatabaseArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + execution_role: Optional[pulumi.Input[str]] = None, + initialization_script: Optional[pulumi.Input[str]] = None, + last_modified_timestamp: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + release_label: Optional[pulumi.Input[str]] = None, + savedown_storage_configuration: Optional[pulumi.Input['KxClusterSavedownStorageConfigurationArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + status_reason: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + vpc_configuration: Optional[pulumi.Input['KxClusterVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_configuration is None and 'autoScalingConfiguration' in kwargs: + auto_scaling_configuration = kwargs['autoScalingConfiguration'] + if availability_zone_id is None and 'availabilityZoneId' in kwargs: + availability_zone_id = kwargs['availabilityZoneId'] + if az_mode is None and 'azMode' in kwargs: + az_mode = kwargs['azMode'] + if cache_storage_configurations is None and 'cacheStorageConfigurations' in kwargs: + cache_storage_configurations = kwargs['cacheStorageConfigurations'] + if capacity_configuration is None and 'capacityConfiguration' in kwargs: + capacity_configuration = kwargs['capacityConfiguration'] + if command_line_arguments is None and 'commandLineArguments' in kwargs: + command_line_arguments = kwargs['commandLineArguments'] + if created_timestamp is None and 'createdTimestamp' in kwargs: + created_timestamp = kwargs['createdTimestamp'] + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if initialization_script is None and 'initializationScript' in kwargs: + initialization_script = kwargs['initializationScript'] + if last_modified_timestamp is None and 'lastModifiedTimestamp' in kwargs: + last_modified_timestamp = kwargs['lastModifiedTimestamp'] + if release_label is None and 'releaseLabel' in kwargs: + release_label = kwargs['releaseLabel'] + if savedown_storage_configuration is None and 'savedownStorageConfiguration' in kwargs: + savedown_storage_configuration = kwargs['savedownStorageConfiguration'] + if status_reason is None and 'statusReason' in kwargs: + status_reason = kwargs['statusReason'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_scaling_configuration is not None: - pulumi.set(__self__, "auto_scaling_configuration", auto_scaling_configuration) + _setter("auto_scaling_configuration", auto_scaling_configuration) if availability_zone_id is not None: - pulumi.set(__self__, "availability_zone_id", availability_zone_id) + _setter("availability_zone_id", availability_zone_id) if az_mode is not None: - pulumi.set(__self__, "az_mode", az_mode) + _setter("az_mode", az_mode) if cache_storage_configurations is not None: - pulumi.set(__self__, "cache_storage_configurations", cache_storage_configurations) + _setter("cache_storage_configurations", cache_storage_configurations) if capacity_configuration is not None: - pulumi.set(__self__, "capacity_configuration", capacity_configuration) + _setter("capacity_configuration", capacity_configuration) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if command_line_arguments is not None: - pulumi.set(__self__, "command_line_arguments", command_line_arguments) + _setter("command_line_arguments", command_line_arguments) if created_timestamp is not None: - pulumi.set(__self__, "created_timestamp", created_timestamp) + _setter("created_timestamp", created_timestamp) if databases is not None: - pulumi.set(__self__, "databases", databases) + _setter("databases", databases) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if environment_id is not None: - pulumi.set(__self__, "environment_id", environment_id) + _setter("environment_id", environment_id) if execution_role is not None: - pulumi.set(__self__, "execution_role", execution_role) + _setter("execution_role", execution_role) if initialization_script is not None: - pulumi.set(__self__, "initialization_script", initialization_script) + _setter("initialization_script", initialization_script) if last_modified_timestamp is not None: - pulumi.set(__self__, "last_modified_timestamp", last_modified_timestamp) + _setter("last_modified_timestamp", last_modified_timestamp) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if release_label is not None: - pulumi.set(__self__, "release_label", release_label) + _setter("release_label", release_label) if savedown_storage_configuration is not None: - pulumi.set(__self__, "savedown_storage_configuration", savedown_storage_configuration) + _setter("savedown_storage_configuration", savedown_storage_configuration) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_reason is not None: - pulumi.set(__self__, "status_reason", status_reason) + _setter("status_reason", status_reason) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter @@ -815,6 +985,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KxClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -847,15 +1021,18 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = KxClusterArgs.__new__(KxClusterArgs) + auto_scaling_configuration = _utilities.configure(auto_scaling_configuration, KxClusterAutoScalingConfigurationArgs, True) __props__.__dict__["auto_scaling_configuration"] = auto_scaling_configuration __props__.__dict__["availability_zone_id"] = availability_zone_id if az_mode is None and not opts.urn: raise TypeError("Missing required property 'az_mode'") __props__.__dict__["az_mode"] = az_mode __props__.__dict__["cache_storage_configurations"] = cache_storage_configurations + capacity_configuration = _utilities.configure(capacity_configuration, KxClusterCapacityConfigurationArgs, True) if capacity_configuration is None and not opts.urn: raise TypeError("Missing required property 'capacity_configuration'") __props__.__dict__["capacity_configuration"] = capacity_configuration + code = _utilities.configure(code, KxClusterCodeArgs, True) __props__.__dict__["code"] = code __props__.__dict__["command_line_arguments"] = command_line_arguments __props__.__dict__["databases"] = databases @@ -869,11 +1046,13 @@ def _internal_init(__self__, if release_label is None and not opts.urn: raise TypeError("Missing required property 'release_label'") __props__.__dict__["release_label"] = release_label + savedown_storage_configuration = _utilities.configure(savedown_storage_configuration, KxClusterSavedownStorageConfigurationArgs, True) __props__.__dict__["savedown_storage_configuration"] = savedown_storage_configuration __props__.__dict__["tags"] = tags if type is None and not opts.urn: raise TypeError("Missing required property 'type'") __props__.__dict__["type"] = type + vpc_configuration = _utilities.configure(vpc_configuration, KxClusterVpcConfigurationArgs, True) if vpc_configuration is None and not opts.urn: raise TypeError("Missing required property 'vpc_configuration'") __props__.__dict__["vpc_configuration"] = vpc_configuration diff --git a/sdk/python/pulumi_aws/finspace/kx_database.py b/sdk/python/pulumi_aws/finspace/kx_database.py index 2aa9b348bbc..20d82d12e9f 100644 --- a/sdk/python/pulumi_aws/finspace/kx_database.py +++ b/sdk/python/pulumi_aws/finspace/kx_database.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KxDatabaseArgs', 'KxDatabase'] @@ -27,13 +27,34 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "environment_id", environment_id) + KxDatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + environment_id=environment_id, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + environment_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if environment_id is None: + raise TypeError("Missing 'environment_id' argument") + + _setter("environment_id", environment_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="environmentId") @@ -110,25 +131,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _KxDatabaseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_timestamp=created_timestamp, + description=description, + environment_id=environment_id, + last_modified_timestamp=last_modified_timestamp, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_timestamp: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + last_modified_timestamp: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_timestamp is None and 'createdTimestamp' in kwargs: + created_timestamp = kwargs['createdTimestamp'] + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if last_modified_timestamp is None and 'lastModifiedTimestamp' in kwargs: + last_modified_timestamp = kwargs['lastModifiedTimestamp'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_timestamp is not None: - pulumi.set(__self__, "created_timestamp", created_timestamp) + _setter("created_timestamp", created_timestamp) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if environment_id is not None: - pulumi.set(__self__, "environment_id", environment_id) + _setter("environment_id", environment_id) if last_modified_timestamp is not None: - pulumi.set(__self__, "last_modified_timestamp", last_modified_timestamp) + _setter("last_modified_timestamp", last_modified_timestamp) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -321,6 +375,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KxDatabaseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/finspace/kx_environment.py b/sdk/python/pulumi_aws/finspace/kx_environment.py index cca8cca9299..a32ddda69a8 100644 --- a/sdk/python/pulumi_aws/finspace/kx_environment.py +++ b/sdk/python/pulumi_aws/finspace/kx_environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,17 +33,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['KxEnvironmentTransitGatewayConfigurationArgs'] transit_gateway_configuration: Transit gateway and network configuration that is used to connect the KX environment to an internal network. Defined below. """ - pulumi.set(__self__, "kms_key_id", kms_key_id) + KxEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + custom_dns_configurations=custom_dns_configurations, + description=description, + name=name, + tags=tags, + transit_gateway_configuration=transit_gateway_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + custom_dns_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['KxEnvironmentCustomDnsConfigurationArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_configuration: Optional[pulumi.Input['KxEnvironmentTransitGatewayConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if custom_dns_configurations is None and 'customDnsConfigurations' in kwargs: + custom_dns_configurations = kwargs['customDnsConfigurations'] + if transit_gateway_configuration is None and 'transitGatewayConfiguration' in kwargs: + transit_gateway_configuration = kwargs['transitGatewayConfiguration'] + + _setter("kms_key_id", kms_key_id) if custom_dns_configurations is not None: - pulumi.set(__self__, "custom_dns_configurations", custom_dns_configurations) + _setter("custom_dns_configurations", custom_dns_configurations) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transit_gateway_configuration is not None: - pulumi.set(__self__, "transit_gateway_configuration", transit_gateway_configuration) + _setter("transit_gateway_configuration", transit_gateway_configuration) @property @pulumi.getter(name="kmsKeyId") @@ -154,35 +183,86 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input['KxEnvironmentTransitGatewayConfigurationArgs'] transit_gateway_configuration: Transit gateway and network configuration that is used to connect the KX environment to an internal network. Defined below. """ + _KxEnvironmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zones=availability_zones, + created_timestamp=created_timestamp, + custom_dns_configurations=custom_dns_configurations, + description=description, + infrastructure_account_id=infrastructure_account_id, + kms_key_id=kms_key_id, + last_modified_timestamp=last_modified_timestamp, + name=name, + status=status, + tags=tags, + tags_all=tags_all, + transit_gateway_configuration=transit_gateway_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + created_timestamp: Optional[pulumi.Input[str]] = None, + custom_dns_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['KxEnvironmentCustomDnsConfigurationArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + infrastructure_account_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + last_modified_timestamp: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_configuration: Optional[pulumi.Input['KxEnvironmentTransitGatewayConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if created_timestamp is None and 'createdTimestamp' in kwargs: + created_timestamp = kwargs['createdTimestamp'] + if custom_dns_configurations is None and 'customDnsConfigurations' in kwargs: + custom_dns_configurations = kwargs['customDnsConfigurations'] + if infrastructure_account_id is None and 'infrastructureAccountId' in kwargs: + infrastructure_account_id = kwargs['infrastructureAccountId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if last_modified_timestamp is None and 'lastModifiedTimestamp' in kwargs: + last_modified_timestamp = kwargs['lastModifiedTimestamp'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_configuration is None and 'transitGatewayConfiguration' in kwargs: + transit_gateway_configuration = kwargs['transitGatewayConfiguration'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if created_timestamp is not None: - pulumi.set(__self__, "created_timestamp", created_timestamp) + _setter("created_timestamp", created_timestamp) if custom_dns_configurations is not None: - pulumi.set(__self__, "custom_dns_configurations", custom_dns_configurations) + _setter("custom_dns_configurations", custom_dns_configurations) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if infrastructure_account_id is not None: - pulumi.set(__self__, "infrastructure_account_id", infrastructure_account_id) + _setter("infrastructure_account_id", infrastructure_account_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if last_modified_timestamp is not None: - pulumi.set(__self__, "last_modified_timestamp", last_modified_timestamp) + _setter("last_modified_timestamp", last_modified_timestamp) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_configuration is not None: - pulumi.set(__self__, "transit_gateway_configuration", transit_gateway_configuration) + _setter("transit_gateway_configuration", transit_gateway_configuration) @property @pulumi.getter @@ -549,6 +629,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KxEnvironmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -576,6 +660,7 @@ def _internal_init(__self__, __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags + transit_gateway_configuration = _utilities.configure(transit_gateway_configuration, KxEnvironmentTransitGatewayConfigurationArgs, True) __props__.__dict__["transit_gateway_configuration"] = transit_gateway_configuration __props__.__dict__["arn"] = None __props__.__dict__["availability_zones"] = None diff --git a/sdk/python/pulumi_aws/finspace/kx_user.py b/sdk/python/pulumi_aws/finspace/kx_user.py index 6be62ae4a44..5303bba2467 100644 --- a/sdk/python/pulumi_aws/finspace/kx_user.py +++ b/sdk/python/pulumi_aws/finspace/kx_user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KxUserArgs', 'KxUser'] @@ -27,12 +27,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A unique identifier for the user. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "environment_id", environment_id) - pulumi.set(__self__, "iam_role", iam_role) + KxUserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + environment_id=environment_id, + iam_role=iam_role, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + environment_id: Optional[pulumi.Input[str]] = None, + iam_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if environment_id is None: + raise TypeError("Missing 'environment_id' argument") + if iam_role is None and 'iamRole' in kwargs: + iam_role = kwargs['iamRole'] + if iam_role is None: + raise TypeError("Missing 'iam_role' argument") + + _setter("environment_id", environment_id) + _setter("iam_role", iam_role) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="environmentId") @@ -105,21 +130,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _KxUserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + environment_id=environment_id, + iam_role=iam_role, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + iam_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if environment_id is None and 'environmentId' in kwargs: + environment_id = kwargs['environmentId'] + if iam_role is None and 'iamRole' in kwargs: + iam_role = kwargs['iamRole'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if environment_id is not None: - pulumi.set(__self__, "environment_id", environment_id) + _setter("environment_id", environment_id) if iam_role is not None: - pulumi.set(__self__, "iam_role", iam_role) + _setter("iam_role", iam_role) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -312,6 +364,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KxUserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/finspace/outputs.py b/sdk/python/pulumi_aws/finspace/outputs.py index fbbb1ad6119..92ed66a0804 100644 --- a/sdk/python/pulumi_aws/finspace/outputs.py +++ b/sdk/python/pulumi_aws/finspace/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -70,12 +70,57 @@ def __init__(__self__, *, :param float scale_in_cooldown_seconds: Duration in seconds that FinSpace will wait after a scale in event before initiating another scaling event. :param float scale_out_cooldown_seconds: Duration in seconds that FinSpace will wait after a scale out event before initiating another scaling event. """ - pulumi.set(__self__, "auto_scaling_metric", auto_scaling_metric) - pulumi.set(__self__, "max_node_count", max_node_count) - pulumi.set(__self__, "metric_target", metric_target) - pulumi.set(__self__, "min_node_count", min_node_count) - pulumi.set(__self__, "scale_in_cooldown_seconds", scale_in_cooldown_seconds) - pulumi.set(__self__, "scale_out_cooldown_seconds", scale_out_cooldown_seconds) + KxClusterAutoScalingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_scaling_metric=auto_scaling_metric, + max_node_count=max_node_count, + metric_target=metric_target, + min_node_count=min_node_count, + scale_in_cooldown_seconds=scale_in_cooldown_seconds, + scale_out_cooldown_seconds=scale_out_cooldown_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_scaling_metric: Optional[str] = None, + max_node_count: Optional[int] = None, + metric_target: Optional[float] = None, + min_node_count: Optional[int] = None, + scale_in_cooldown_seconds: Optional[float] = None, + scale_out_cooldown_seconds: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_metric is None and 'autoScalingMetric' in kwargs: + auto_scaling_metric = kwargs['autoScalingMetric'] + if auto_scaling_metric is None: + raise TypeError("Missing 'auto_scaling_metric' argument") + if max_node_count is None and 'maxNodeCount' in kwargs: + max_node_count = kwargs['maxNodeCount'] + if max_node_count is None: + raise TypeError("Missing 'max_node_count' argument") + if metric_target is None and 'metricTarget' in kwargs: + metric_target = kwargs['metricTarget'] + if metric_target is None: + raise TypeError("Missing 'metric_target' argument") + if min_node_count is None and 'minNodeCount' in kwargs: + min_node_count = kwargs['minNodeCount'] + if min_node_count is None: + raise TypeError("Missing 'min_node_count' argument") + if scale_in_cooldown_seconds is None and 'scaleInCooldownSeconds' in kwargs: + scale_in_cooldown_seconds = kwargs['scaleInCooldownSeconds'] + if scale_in_cooldown_seconds is None: + raise TypeError("Missing 'scale_in_cooldown_seconds' argument") + if scale_out_cooldown_seconds is None and 'scaleOutCooldownSeconds' in kwargs: + scale_out_cooldown_seconds = kwargs['scaleOutCooldownSeconds'] + if scale_out_cooldown_seconds is None: + raise TypeError("Missing 'scale_out_cooldown_seconds' argument") + + _setter("auto_scaling_metric", auto_scaling_metric) + _setter("max_node_count", max_node_count) + _setter("metric_target", metric_target) + _setter("min_node_count", min_node_count) + _setter("scale_in_cooldown_seconds", scale_in_cooldown_seconds) + _setter("scale_out_cooldown_seconds", scale_out_cooldown_seconds) @property @pulumi.getter(name="autoScalingMetric") @@ -138,8 +183,25 @@ def __init__(__self__, *, * RDB - Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the `savedownStorageConfiguration` parameter. * GATEWAY - A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage. """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + KxClusterCacheStorageConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("size", size) + _setter("type", type) @property @pulumi.getter @@ -198,8 +260,29 @@ def __init__(__self__, *, * kx.s.16xlarge – The node type with a configuration of 432 GiB memory and 64 vCPUs. * kx.s.32xlarge – The node type with a configuration of 864 GiB memory and 128 vCPUs. """ - pulumi.set(__self__, "node_count", node_count) - pulumi.set(__self__, "node_type", node_type) + KxClusterCapacityConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + node_count=node_count, + node_type=node_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + node_count: Optional[int] = None, + node_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if node_count is None and 'nodeCount' in kwargs: + node_count = kwargs['nodeCount'] + if node_count is None: + raise TypeError("Missing 'node_count' argument") + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if node_type is None: + raise TypeError("Missing 'node_type' argument") + + _setter("node_count", node_count) + _setter("node_type", node_type) @property @pulumi.getter(name="nodeCount") @@ -259,10 +342,35 @@ def __init__(__self__, *, :param str s3_key: Full S3 path (excluding bucket) to the .zip file that contains the code to be loaded onto the cluster when it’s started. :param str s3_object_version: Version of an S3 Object. """ - pulumi.set(__self__, "s3_bucket", s3_bucket) - pulumi.set(__self__, "s3_key", s3_key) + KxClusterCode._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket=s3_bucket, + s3_key=s3_key, + s3_object_version=s3_object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket: Optional[str] = None, + s3_key: Optional[str] = None, + s3_object_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_bucket is None: + raise TypeError("Missing 's3_bucket' argument") + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_key is None: + raise TypeError("Missing 's3_key' argument") + if s3_object_version is None and 's3ObjectVersion' in kwargs: + s3_object_version = kwargs['s3ObjectVersion'] + + _setter("s3_bucket", s3_bucket) + _setter("s3_key", s3_key) if s3_object_version is not None: - pulumi.set(__self__, "s3_object_version", s3_object_version) + _setter("s3_object_version", s3_object_version) @property @pulumi.getter(name="s3Bucket") @@ -321,11 +429,34 @@ def __init__(__self__, *, :param Sequence['KxClusterDatabaseCacheConfigurationArgs'] cache_configurations: Configuration details for the disk cache to increase performance reading from a KX database mounted to the cluster. See cache_configurations. :param str changeset_id: A unique identifier of the changeset that is associated with the cluster. """ - pulumi.set(__self__, "database_name", database_name) + KxClusterDatabase._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + cache_configurations=cache_configurations, + changeset_id=changeset_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + cache_configurations: Optional[Sequence['outputs.KxClusterDatabaseCacheConfiguration']] = None, + changeset_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if cache_configurations is None and 'cacheConfigurations' in kwargs: + cache_configurations = kwargs['cacheConfigurations'] + if changeset_id is None and 'changesetId' in kwargs: + changeset_id = kwargs['changesetId'] + + _setter("database_name", database_name) if cache_configurations is not None: - pulumi.set(__self__, "cache_configurations", cache_configurations) + _setter("cache_configurations", cache_configurations) if changeset_id is not None: - pulumi.set(__self__, "changeset_id", changeset_id) + _setter("changeset_id", changeset_id) @property @pulumi.getter(name="databaseName") @@ -380,9 +511,28 @@ def __init__(__self__, *, :param str cache_type: Type of disk cache. :param Sequence[str] db_paths: Paths within the database to cache. """ - pulumi.set(__self__, "cache_type", cache_type) + KxClusterDatabaseCacheConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_type=cache_type, + db_paths=db_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_type: Optional[str] = None, + db_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_type is None and 'cacheType' in kwargs: + cache_type = kwargs['cacheType'] + if cache_type is None: + raise TypeError("Missing 'cache_type' argument") + if db_paths is None and 'dbPaths' in kwargs: + db_paths = kwargs['dbPaths'] + + _setter("cache_type", cache_type) if db_paths is not None: - pulumi.set(__self__, "db_paths", db_paths) + _setter("db_paths", db_paths) @property @pulumi.getter(name="cacheType") @@ -411,8 +561,25 @@ def __init__(__self__, *, :param str type: Type of writeable storage space for temporarily storing your savedown data. The valid values are: * SDS01 - This type represents 3000 IOPS and io2 ebs volume type. """ - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "type", type) + KxClusterSavedownStorageConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("size", size) + _setter("type", type) @property @pulumi.getter @@ -468,10 +635,43 @@ def __init__(__self__, *, * `subnet_ids `- (Required) Identifier of the subnet that the Privatelink VPC endpoint uses to connect to the cluster. :param str vpc_id: Identifier of the VPC endpoint """ - pulumi.set(__self__, "ip_address_type", ip_address_type) - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + KxClusterVpcConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_address_type=ip_address_type, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_address_type: Optional[str] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if ip_address_type is None: + raise TypeError("Missing 'ip_address_type' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("ip_address_type", ip_address_type) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="ipAddressType") @@ -532,8 +732,29 @@ def __init__(__self__, *, :param str custom_dns_server_ip: IP address of the DNS server. :param str custom_dns_server_name: Name of the DNS server. """ - pulumi.set(__self__, "custom_dns_server_ip", custom_dns_server_ip) - pulumi.set(__self__, "custom_dns_server_name", custom_dns_server_name) + KxEnvironmentCustomDnsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_dns_server_ip=custom_dns_server_ip, + custom_dns_server_name=custom_dns_server_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_dns_server_ip: Optional[str] = None, + custom_dns_server_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_dns_server_ip is None and 'customDnsServerIp' in kwargs: + custom_dns_server_ip = kwargs['customDnsServerIp'] + if custom_dns_server_ip is None: + raise TypeError("Missing 'custom_dns_server_ip' argument") + if custom_dns_server_name is None and 'customDnsServerName' in kwargs: + custom_dns_server_name = kwargs['customDnsServerName'] + if custom_dns_server_name is None: + raise TypeError("Missing 'custom_dns_server_name' argument") + + _setter("custom_dns_server_ip", custom_dns_server_ip) + _setter("custom_dns_server_name", custom_dns_server_name) @property @pulumi.getter(name="customDnsServerIp") @@ -584,10 +805,35 @@ def __init__(__self__, *, :param str transit_gateway_id: Identifier of the transit gateway created by the customer to connect outbound traffics from KX network to your internal network. :param Sequence['KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationArgs'] attachment_network_acl_configurations: Rules that define how you manage outbound traffic from kdb network to your internal network. Defined below. """ - pulumi.set(__self__, "routable_cidr_space", routable_cidr_space) - pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + KxEnvironmentTransitGatewayConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + routable_cidr_space=routable_cidr_space, + transit_gateway_id=transit_gateway_id, + attachment_network_acl_configurations=attachment_network_acl_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + routable_cidr_space: Optional[str] = None, + transit_gateway_id: Optional[str] = None, + attachment_network_acl_configurations: Optional[Sequence['outputs.KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfiguration']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if routable_cidr_space is None and 'routableCidrSpace' in kwargs: + routable_cidr_space = kwargs['routableCidrSpace'] + if routable_cidr_space is None: + raise TypeError("Missing 'routable_cidr_space' argument") + if transit_gateway_id is None and 'transitGatewayId' in kwargs: + transit_gateway_id = kwargs['transitGatewayId'] + if transit_gateway_id is None: + raise TypeError("Missing 'transit_gateway_id' argument") + if attachment_network_acl_configurations is None and 'attachmentNetworkAclConfigurations' in kwargs: + attachment_network_acl_configurations = kwargs['attachmentNetworkAclConfigurations'] + + _setter("routable_cidr_space", routable_cidr_space) + _setter("transit_gateway_id", transit_gateway_id) if attachment_network_acl_configurations is not None: - pulumi.set(__self__, "attachment_network_acl_configurations", attachment_network_acl_configurations) + _setter("attachment_network_acl_configurations", attachment_network_acl_configurations) @property @pulumi.getter(name="routableCidrSpace") @@ -656,14 +902,53 @@ def __init__(__self__, *, :param 'KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationIcmpTypeCodeArgs' icmp_type_code: Defines the ICMP protocol that consists of the ICMP type and code. Defined below. :param 'KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationPortRangeArgs' port_range: Range of ports the rule applies to. Defined below. """ - pulumi.set(__self__, "cidr_block", cidr_block) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "rule_action", rule_action) - pulumi.set(__self__, "rule_number", rule_number) + KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_block=cidr_block, + protocol=protocol, + rule_action=rule_action, + rule_number=rule_number, + icmp_type_code=icmp_type_code, + port_range=port_range, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_block: Optional[str] = None, + protocol: Optional[str] = None, + rule_action: Optional[str] = None, + rule_number: Optional[int] = None, + icmp_type_code: Optional['outputs.KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationIcmpTypeCode'] = None, + port_range: Optional['outputs.KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationPortRange'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if cidr_block is None: + raise TypeError("Missing 'cidr_block' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if rule_action is None and 'ruleAction' in kwargs: + rule_action = kwargs['ruleAction'] + if rule_action is None: + raise TypeError("Missing 'rule_action' argument") + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if rule_number is None: + raise TypeError("Missing 'rule_number' argument") + if icmp_type_code is None and 'icmpTypeCode' in kwargs: + icmp_type_code = kwargs['icmpTypeCode'] + if port_range is None and 'portRange' in kwargs: + port_range = kwargs['portRange'] + + _setter("cidr_block", cidr_block) + _setter("protocol", protocol) + _setter("rule_action", rule_action) + _setter("rule_number", rule_number) if icmp_type_code is not None: - pulumi.set(__self__, "icmp_type_code", icmp_type_code) + _setter("icmp_type_code", icmp_type_code) if port_range is not None: - pulumi.set(__self__, "port_range", port_range) + _setter("port_range", port_range) @property @pulumi.getter(name="cidrBlock") @@ -723,8 +1008,25 @@ def __init__(__self__, *, :param int code: ICMP code. A value of `-1` means all codes for the specified ICMP type. :param int type: ICMP type. A value of `-1` means all types. """ - pulumi.set(__self__, "code", code) - pulumi.set(__self__, "type", type) + KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationIcmpTypeCode._configure( + lambda key, value: pulumi.set(__self__, key, value), + code=code, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code: Optional[int] = None, + type: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code is None: + raise TypeError("Missing 'code' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("code", code) + _setter("type", type) @property @pulumi.getter @@ -769,8 +1071,27 @@ def __init__(__self__, *, :param int from_: First port in the range. :param int to: Last port in the range. """ - pulumi.set(__self__, "from_", from_) - pulumi.set(__self__, "to", to) + KxEnvironmentTransitGatewayConfigurationAttachmentNetworkAclConfigurationPortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_=from_, + to=to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_: Optional[int] = None, + to: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_ is None and 'from' in kwargs: + from_ = kwargs['from'] + if from_ is None: + raise TypeError("Missing 'from_' argument") + if to is None: + raise TypeError("Missing 'to' argument") + + _setter("from_", from_) + _setter("to", to) @property @pulumi.getter(name="from") diff --git a/sdk/python/pulumi_aws/fis/_inputs.py b/sdk/python/pulumi_aws/fis/_inputs.py index c6d5b420c40..bafbb78d147 100644 --- a/sdk/python/pulumi_aws/fis/_inputs.py +++ b/sdk/python/pulumi_aws/fis/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -39,16 +39,45 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] start_afters: Set of action names that must complete before this action can be executed. :param pulumi.Input['ExperimentTemplateActionTargetArgs'] target: Action's target, if applicable. See below. """ - pulumi.set(__self__, "action_id", action_id) - pulumi.set(__self__, "name", name) + ExperimentTemplateActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_id=action_id, + name=name, + description=description, + parameters=parameters, + start_afters=start_afters, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateActionParameterArgs']]]] = None, + start_afters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + target: Optional[pulumi.Input['ExperimentTemplateActionTargetArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_id is None and 'actionId' in kwargs: + action_id = kwargs['actionId'] + if action_id is None: + raise TypeError("Missing 'action_id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if start_afters is None and 'startAfters' in kwargs: + start_afters = kwargs['startAfters'] + + _setter("action_id", action_id) + _setter("name", name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if start_afters is not None: - pulumi.set(__self__, "start_afters", start_afters) + _setter("start_afters", start_afters) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter(name="actionId") @@ -134,8 +163,25 @@ def __init__(__self__, *, For a list of parameters supported by each action, see [AWS FIS actions reference](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html). """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ExperimentTemplateActionParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -173,8 +219,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Target type. Valid values are `Cluster` (EKS Cluster), `Clusters` (ECS Clusters), `DBInstances` (RDS DB Instances), `Instances` (EC2 Instances), `Nodegroups` (EKS Node groups), `Roles` (IAM Roles), `SpotInstances` (EC2 Spot Instances), `Subnets` (VPC Subnets), `Volumes` (EBS Volumes) , `Pods` (EKS Pods), `Tasks` (ECS Tasks). See the [documentation](https://docs.aws.amazon.com/fis/latest/userguide/actions.html#action-targets) for more details. :param pulumi.Input[str] value: Target name, referencing a corresponding target. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ExperimentTemplateActionTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -212,11 +275,34 @@ def __init__(__self__, *, :param pulumi.Input['ExperimentTemplateLogConfigurationCloudwatchLogsConfigurationArgs'] cloudwatch_logs_configuration: The configuration for experiment logging to Amazon CloudWatch Logs. See below. :param pulumi.Input['ExperimentTemplateLogConfigurationS3ConfigurationArgs'] s3_configuration: The configuration for experiment logging to Amazon S3. See below. """ - pulumi.set(__self__, "log_schema_version", log_schema_version) + ExperimentTemplateLogConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_schema_version=log_schema_version, + cloudwatch_logs_configuration=cloudwatch_logs_configuration, + s3_configuration=s3_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_schema_version: Optional[pulumi.Input[int]] = None, + cloudwatch_logs_configuration: Optional[pulumi.Input['ExperimentTemplateLogConfigurationCloudwatchLogsConfigurationArgs']] = None, + s3_configuration: Optional[pulumi.Input['ExperimentTemplateLogConfigurationS3ConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_schema_version is None and 'logSchemaVersion' in kwargs: + log_schema_version = kwargs['logSchemaVersion'] + if log_schema_version is None: + raise TypeError("Missing 'log_schema_version' argument") + if cloudwatch_logs_configuration is None and 'cloudwatchLogsConfiguration' in kwargs: + cloudwatch_logs_configuration = kwargs['cloudwatchLogsConfiguration'] + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + + _setter("log_schema_version", log_schema_version) if cloudwatch_logs_configuration is not None: - pulumi.set(__self__, "cloudwatch_logs_configuration", cloudwatch_logs_configuration) + _setter("cloudwatch_logs_configuration", cloudwatch_logs_configuration) if s3_configuration is not None: - pulumi.set(__self__, "s3_configuration", s3_configuration) + _setter("s3_configuration", s3_configuration) @property @pulumi.getter(name="logSchemaVersion") @@ -262,7 +348,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] log_group_arn: The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs log group. """ - pulumi.set(__self__, "log_group_arn", log_group_arn) + ExperimentTemplateLogConfigurationCloudwatchLogsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_arn=log_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_arn is None and 'logGroupArn' in kwargs: + log_group_arn = kwargs['logGroupArn'] + if log_group_arn is None: + raise TypeError("Missing 'log_group_arn' argument") + + _setter("log_group_arn", log_group_arn) @property @pulumi.getter(name="logGroupArn") @@ -286,9 +387,26 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_name: The name of the destination bucket. :param pulumi.Input[str] prefix: The bucket prefix. """ - pulumi.set(__self__, "bucket_name", bucket_name) + ExperimentTemplateLogConfigurationS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + + _setter("bucket_name", bucket_name) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketName") @@ -324,9 +442,24 @@ def __init__(__self__, *, :param pulumi.Input[str] source: Source of the condition. One of `none`, `aws:cloudwatch:alarm`. :param pulumi.Input[str] value: ARN of the CloudWatch alarm. Required if the source is a CloudWatch alarm. """ - pulumi.set(__self__, "source", source) + ExperimentTemplateStopConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("source", source) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -374,17 +507,54 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] resource_arns: Set of ARNs of the resources to target with an action. Conflicts with `resource_tag`. :param pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateTargetResourceTagArgs']]] resource_tags: Tag(s) the resources need to have to be considered a valid target for an action. Conflicts with `resource_arns`. See below. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "selection_mode", selection_mode) + ExperimentTemplateTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + resource_type=resource_type, + selection_mode=selection_mode, + filters=filters, + parameters=parameters, + resource_arns=resource_arns, + resource_tags=resource_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + selection_mode: Optional[pulumi.Input[str]] = None, + filters: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateTargetFilterArgs']]]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + resource_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_tags: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateTargetResourceTagArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if selection_mode is None and 'selectionMode' in kwargs: + selection_mode = kwargs['selectionMode'] + if selection_mode is None: + raise TypeError("Missing 'selection_mode' argument") + if resource_arns is None and 'resourceArns' in kwargs: + resource_arns = kwargs['resourceArns'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + + _setter("name", name) + _setter("resource_type", resource_type) + _setter("selection_mode", selection_mode) if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if resource_arns is not None: - pulumi.set(__self__, "resource_arns", resource_arns) + _setter("resource_arns", resource_arns) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) @property @pulumi.getter @@ -484,8 +654,25 @@ def __init__(__self__, *, > **NOTE:** Values specified in a `filter` are joined with an `OR` clause, while values across multiple `filter` blocks are joined with an `AND` clause. For more information, see [Targets for AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/targets.html#target-filters). """ - pulumi.set(__self__, "path", path) - pulumi.set(__self__, "values", values) + ExperimentTemplateTargetFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("path", path) + _setter("values", values) @property @pulumi.getter @@ -523,8 +710,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Tag key. :param pulumi.Input[str] value: Tag value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ExperimentTemplateTargetResourceTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/fis/experiment_template.py b/sdk/python/pulumi_aws/fis/experiment_template.py index 28bda3d1620..a5190bca72b 100644 --- a/sdk/python/pulumi_aws/fis/experiment_template.py +++ b/sdk/python/pulumi_aws/fis/experiment_template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,16 +35,53 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateTargetArgs']]] targets: Target of an action. See below. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stop_conditions", stop_conditions) + ExperimentTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + description=description, + role_arn=role_arn, + stop_conditions=stop_conditions, + log_configuration=log_configuration, + tags=tags, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateActionArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + stop_conditions: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateStopConditionArgs']]]] = None, + log_configuration: Optional[pulumi.Input['ExperimentTemplateLogConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateTargetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stop_conditions is None and 'stopConditions' in kwargs: + stop_conditions = kwargs['stopConditions'] + if stop_conditions is None: + raise TypeError("Missing 'stop_conditions' argument") + if log_configuration is None and 'logConfiguration' in kwargs: + log_configuration = kwargs['logConfiguration'] + + _setter("actions", actions) + _setter("description", description) + _setter("role_arn", role_arn) + _setter("stop_conditions", stop_conditions) if log_configuration is not None: - pulumi.set(__self__, "log_configuration", log_configuration) + _setter("log_configuration", log_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) @property @pulumi.getter @@ -156,25 +193,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateTargetArgs']]] targets: Target of an action. See below. """ + _ExperimentTemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + description=description, + log_configuration=log_configuration, + role_arn=role_arn, + stop_conditions=stop_conditions, + tags=tags, + tags_all=tags_all, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateActionArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + log_configuration: Optional[pulumi.Input['ExperimentTemplateLogConfigurationArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + stop_conditions: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateStopConditionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateTargetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_configuration is None and 'logConfiguration' in kwargs: + log_configuration = kwargs['logConfiguration'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if stop_conditions is None and 'stopConditions' in kwargs: + stop_conditions = kwargs['stopConditions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if actions is not None: - pulumi.set(__self__, "actions", actions) + _setter("actions", actions) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if log_configuration is not None: - pulumi.set(__self__, "log_configuration", log_configuration) + _setter("log_configuration", log_configuration) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if stop_conditions is not None: - pulumi.set(__self__, "stop_conditions", stop_conditions) + _setter("stop_conditions", stop_conditions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) @property @pulumi.getter @@ -408,6 +478,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ExperimentTemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -435,6 +509,7 @@ def _internal_init(__self__, if description is None and not opts.urn: raise TypeError("Missing required property 'description'") __props__.__dict__["description"] = description + log_configuration = _utilities.configure(log_configuration, ExperimentTemplateLogConfigurationArgs, True) __props__.__dict__["log_configuration"] = log_configuration if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") diff --git a/sdk/python/pulumi_aws/fis/outputs.py b/sdk/python/pulumi_aws/fis/outputs.py index 63f783d7cae..10a3c00ff1e 100644 --- a/sdk/python/pulumi_aws/fis/outputs.py +++ b/sdk/python/pulumi_aws/fis/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -59,16 +59,45 @@ def __init__(__self__, *, :param Sequence[str] start_afters: Set of action names that must complete before this action can be executed. :param 'ExperimentTemplateActionTargetArgs' target: Action's target, if applicable. See below. """ - pulumi.set(__self__, "action_id", action_id) - pulumi.set(__self__, "name", name) + ExperimentTemplateAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_id=action_id, + name=name, + description=description, + parameters=parameters, + start_afters=start_afters, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_id: Optional[str] = None, + name: Optional[str] = None, + description: Optional[str] = None, + parameters: Optional[Sequence['outputs.ExperimentTemplateActionParameter']] = None, + start_afters: Optional[Sequence[str]] = None, + target: Optional['outputs.ExperimentTemplateActionTarget'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_id is None and 'actionId' in kwargs: + action_id = kwargs['actionId'] + if action_id is None: + raise TypeError("Missing 'action_id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if start_afters is None and 'startAfters' in kwargs: + start_afters = kwargs['startAfters'] + + _setter("action_id", action_id) + _setter("name", name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if start_afters is not None: - pulumi.set(__self__, "start_afters", start_afters) + _setter("start_afters", start_afters) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter(name="actionId") @@ -130,8 +159,25 @@ def __init__(__self__, *, For a list of parameters supported by each action, see [AWS FIS actions reference](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html). """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ExperimentTemplateActionParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -161,8 +207,25 @@ def __init__(__self__, *, :param str key: Target type. Valid values are `Cluster` (EKS Cluster), `Clusters` (ECS Clusters), `DBInstances` (RDS DB Instances), `Instances` (EC2 Instances), `Nodegroups` (EKS Node groups), `Roles` (IAM Roles), `SpotInstances` (EC2 Spot Instances), `Subnets` (VPC Subnets), `Volumes` (EBS Volumes) , `Pods` (EKS Pods), `Tasks` (ECS Tasks). See the [documentation](https://docs.aws.amazon.com/fis/latest/userguide/actions.html#action-targets) for more details. :param str value: Target name, referencing a corresponding target. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ExperimentTemplateActionTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -213,11 +276,34 @@ def __init__(__self__, *, :param 'ExperimentTemplateLogConfigurationCloudwatchLogsConfigurationArgs' cloudwatch_logs_configuration: The configuration for experiment logging to Amazon CloudWatch Logs. See below. :param 'ExperimentTemplateLogConfigurationS3ConfigurationArgs' s3_configuration: The configuration for experiment logging to Amazon S3. See below. """ - pulumi.set(__self__, "log_schema_version", log_schema_version) + ExperimentTemplateLogConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_schema_version=log_schema_version, + cloudwatch_logs_configuration=cloudwatch_logs_configuration, + s3_configuration=s3_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_schema_version: Optional[int] = None, + cloudwatch_logs_configuration: Optional['outputs.ExperimentTemplateLogConfigurationCloudwatchLogsConfiguration'] = None, + s3_configuration: Optional['outputs.ExperimentTemplateLogConfigurationS3Configuration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_schema_version is None and 'logSchemaVersion' in kwargs: + log_schema_version = kwargs['logSchemaVersion'] + if log_schema_version is None: + raise TypeError("Missing 'log_schema_version' argument") + if cloudwatch_logs_configuration is None and 'cloudwatchLogsConfiguration' in kwargs: + cloudwatch_logs_configuration = kwargs['cloudwatchLogsConfiguration'] + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + + _setter("log_schema_version", log_schema_version) if cloudwatch_logs_configuration is not None: - pulumi.set(__self__, "cloudwatch_logs_configuration", cloudwatch_logs_configuration) + _setter("cloudwatch_logs_configuration", cloudwatch_logs_configuration) if s3_configuration is not None: - pulumi.set(__self__, "s3_configuration", s3_configuration) + _setter("s3_configuration", s3_configuration) @property @pulumi.getter(name="logSchemaVersion") @@ -268,7 +354,22 @@ def __init__(__self__, *, """ :param str log_group_arn: The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs log group. """ - pulumi.set(__self__, "log_group_arn", log_group_arn) + ExperimentTemplateLogConfigurationCloudwatchLogsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_arn=log_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_arn is None and 'logGroupArn' in kwargs: + log_group_arn = kwargs['logGroupArn'] + if log_group_arn is None: + raise TypeError("Missing 'log_group_arn' argument") + + _setter("log_group_arn", log_group_arn) @property @pulumi.getter(name="logGroupArn") @@ -305,9 +406,26 @@ def __init__(__self__, *, :param str bucket_name: The name of the destination bucket. :param str prefix: The bucket prefix. """ - pulumi.set(__self__, "bucket_name", bucket_name) + ExperimentTemplateLogConfigurationS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + + _setter("bucket_name", bucket_name) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketName") @@ -335,9 +453,24 @@ def __init__(__self__, *, :param str source: Source of the condition. One of `none`, `aws:cloudwatch:alarm`. :param str value: ARN of the CloudWatch alarm. Required if the source is a CloudWatch alarm. """ - pulumi.set(__self__, "source", source) + ExperimentTemplateStopCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("source", source) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -400,17 +533,54 @@ def __init__(__self__, *, :param Sequence[str] resource_arns: Set of ARNs of the resources to target with an action. Conflicts with `resource_tag`. :param Sequence['ExperimentTemplateTargetResourceTagArgs'] resource_tags: Tag(s) the resources need to have to be considered a valid target for an action. Conflicts with `resource_arns`. See below. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "selection_mode", selection_mode) + ExperimentTemplateTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + resource_type=resource_type, + selection_mode=selection_mode, + filters=filters, + parameters=parameters, + resource_arns=resource_arns, + resource_tags=resource_tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + resource_type: Optional[str] = None, + selection_mode: Optional[str] = None, + filters: Optional[Sequence['outputs.ExperimentTemplateTargetFilter']] = None, + parameters: Optional[Mapping[str, str]] = None, + resource_arns: Optional[Sequence[str]] = None, + resource_tags: Optional[Sequence['outputs.ExperimentTemplateTargetResourceTag']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if selection_mode is None and 'selectionMode' in kwargs: + selection_mode = kwargs['selectionMode'] + if selection_mode is None: + raise TypeError("Missing 'selection_mode' argument") + if resource_arns is None and 'resourceArns' in kwargs: + resource_arns = kwargs['resourceArns'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + + _setter("name", name) + _setter("resource_type", resource_type) + _setter("selection_mode", selection_mode) if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if resource_arns is not None: - pulumi.set(__self__, "resource_arns", resource_arns) + _setter("resource_arns", resource_arns) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) @property @pulumi.getter @@ -482,8 +652,25 @@ def __init__(__self__, *, > **NOTE:** Values specified in a `filter` are joined with an `OR` clause, while values across multiple `filter` blocks are joined with an `AND` clause. For more information, see [Targets for AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/targets.html#target-filters). """ - pulumi.set(__self__, "path", path) - pulumi.set(__self__, "values", values) + ExperimentTemplateTargetFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("path", path) + _setter("values", values) @property @pulumi.getter @@ -513,8 +700,25 @@ def __init__(__self__, *, :param str key: Tag key. :param str value: Tag value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ExperimentTemplateTargetResourceTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/fms/_inputs.py b/sdk/python/pulumi_aws/fms/_inputs.py index 493beadcdd2..31a90acdef5 100644 --- a/sdk/python/pulumi_aws/fms/_inputs.py +++ b/sdk/python/pulumi_aws/fms/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,10 +29,23 @@ def __init__(__self__, *, You can specify inclusions or exclusions, but not both. If you specify an `include_map`, AWS Firewall Manager applies the policy to all accounts specified by the `include_map`, and does not evaluate any `exclude_map` specifications. If you do not specify an `include_map`, then Firewall Manager applies the policy to all accounts except for those specified by the `exclude_map`. """ + PolicyExcludeMapArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts=accounts, + orgunits=orgunits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + orgunits: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if orgunits is not None: - pulumi.set(__self__, "orgunits", orgunits) + _setter("orgunits", orgunits) @property @pulumi.getter @@ -72,10 +85,23 @@ def __init__(__self__, *, You can specify inclusions or exclusions, but not both. If you specify an `include_map`, AWS Firewall Manager applies the policy to all accounts specified by the `include_map`, and does not evaluate any `exclude_map` specifications. If you do not specify an `include_map`, then Firewall Manager applies the policy to all accounts except for those specified by the `exclude_map`. """ + PolicyIncludeMapArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts=accounts, + orgunits=orgunits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + orgunits: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if orgunits is not None: - pulumi.set(__self__, "orgunits", orgunits) + _setter("orgunits", orgunits) @property @pulumi.getter @@ -115,11 +141,32 @@ def __init__(__self__, *, :param pulumi.Input[str] managed_service_data: Details about the service that are specific to the service type, in JSON format. For service type `SHIELD_ADVANCED`, this is an empty string. Examples depending on `type` can be found in the [AWS Firewall Manager SecurityServicePolicyData API Reference](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_SecurityServicePolicyData.html). :param pulumi.Input['PolicySecurityServicePolicyDataPolicyOptionArgs'] policy_option: Contains the Network Firewall firewall policy options to configure a centralized deployment model. Documented below. """ - pulumi.set(__self__, "type", type) + PolicySecurityServicePolicyDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + managed_service_data=managed_service_data, + policy_option=policy_option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + managed_service_data: Optional[pulumi.Input[str]] = None, + policy_option: Optional[pulumi.Input['PolicySecurityServicePolicyDataPolicyOptionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if managed_service_data is None and 'managedServiceData' in kwargs: + managed_service_data = kwargs['managedServiceData'] + if policy_option is None and 'policyOption' in kwargs: + policy_option = kwargs['policyOption'] + + _setter("type", type) if managed_service_data is not None: - pulumi.set(__self__, "managed_service_data", managed_service_data) + _setter("managed_service_data", managed_service_data) if policy_option is not None: - pulumi.set(__self__, "policy_option", policy_option) + _setter("policy_option", policy_option) @property @pulumi.getter @@ -166,10 +213,27 @@ def __init__(__self__, *, """ :param pulumi.Input['PolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyArgs'] network_firewall_policy: Defines the deployment model to use for the firewall policy. Documented below. """ + PolicySecurityServicePolicyDataPolicyOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_firewall_policy=network_firewall_policy, + third_party_firewall_policy=third_party_firewall_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_firewall_policy: Optional[pulumi.Input['PolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyArgs']] = None, + third_party_firewall_policy: Optional[pulumi.Input['PolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_firewall_policy is None and 'networkFirewallPolicy' in kwargs: + network_firewall_policy = kwargs['networkFirewallPolicy'] + if third_party_firewall_policy is None and 'thirdPartyFirewallPolicy' in kwargs: + third_party_firewall_policy = kwargs['thirdPartyFirewallPolicy'] + if network_firewall_policy is not None: - pulumi.set(__self__, "network_firewall_policy", network_firewall_policy) + _setter("network_firewall_policy", network_firewall_policy) if third_party_firewall_policy is not None: - pulumi.set(__self__, "third_party_firewall_policy", third_party_firewall_policy) + _setter("third_party_firewall_policy", third_party_firewall_policy) @property @pulumi.getter(name="networkFirewallPolicy") @@ -200,8 +264,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] firewall_deployment_model: Defines the deployment model to use for the third-party firewall policy. Valid values are `CENTRALIZED` and `DISTRIBUTED`. """ + PolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_deployment_model=firewall_deployment_model, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_deployment_model: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_deployment_model is None and 'firewallDeploymentModel' in kwargs: + firewall_deployment_model = kwargs['firewallDeploymentModel'] + if firewall_deployment_model is not None: - pulumi.set(__self__, "firewall_deployment_model", firewall_deployment_model) + _setter("firewall_deployment_model", firewall_deployment_model) @property @pulumi.getter(name="firewallDeploymentModel") @@ -223,8 +300,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] firewall_deployment_model: Defines the deployment model to use for the third-party firewall policy. Valid values are `CENTRALIZED` and `DISTRIBUTED`. """ + PolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_deployment_model=firewall_deployment_model, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_deployment_model: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_deployment_model is None and 'firewallDeploymentModel' in kwargs: + firewall_deployment_model = kwargs['firewallDeploymentModel'] + if firewall_deployment_model is not None: - pulumi.set(__self__, "firewall_deployment_model", firewall_deployment_model) + _setter("firewall_deployment_model", firewall_deployment_model) @property @pulumi.getter(name="firewallDeploymentModel") diff --git a/sdk/python/pulumi_aws/fms/admin_account.py b/sdk/python/pulumi_aws/fms/admin_account.py index 725c4ada970..6fafedf3324 100644 --- a/sdk/python/pulumi_aws/fms/admin_account.py +++ b/sdk/python/pulumi_aws/fms/admin_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AdminAccountArgs', 'AdminAccount'] @@ -19,8 +19,21 @@ def __init__(__self__, *, The set of arguments for constructing a AdminAccount resource. :param pulumi.Input[str] account_id: The AWS account ID to associate with AWS Firewall Manager as the AWS Firewall Manager administrator account. This can be an AWS Organizations master account or a member account. Defaults to the current account. Must be configured to perform drift detection. """ + AdminAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) @property @pulumi.getter(name="accountId") @@ -43,8 +56,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering AdminAccount resources. :param pulumi.Input[str] account_id: The AWS account ID to associate with AWS Firewall Manager as the AWS Firewall Manager administrator account. This can be an AWS Organizations master account or a member account. Defaults to the current account. Must be configured to perform drift detection. """ + _AdminAccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) @property @pulumi.getter(name="accountId") @@ -126,6 +152,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AdminAccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/fms/outputs.py b/sdk/python/pulumi_aws/fms/outputs.py index c15fe063669..9cef3ed7894 100644 --- a/sdk/python/pulumi_aws/fms/outputs.py +++ b/sdk/python/pulumi_aws/fms/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -30,10 +30,23 @@ def __init__(__self__, *, You can specify inclusions or exclusions, but not both. If you specify an `include_map`, AWS Firewall Manager applies the policy to all accounts specified by the `include_map`, and does not evaluate any `exclude_map` specifications. If you do not specify an `include_map`, then Firewall Manager applies the policy to all accounts except for those specified by the `exclude_map`. """ + PolicyExcludeMap._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts=accounts, + orgunits=orgunits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts: Optional[Sequence[str]] = None, + orgunits: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if orgunits is not None: - pulumi.set(__self__, "orgunits", orgunits) + _setter("orgunits", orgunits) @property @pulumi.getter @@ -65,10 +78,23 @@ def __init__(__self__, *, You can specify inclusions or exclusions, but not both. If you specify an `include_map`, AWS Firewall Manager applies the policy to all accounts specified by the `include_map`, and does not evaluate any `exclude_map` specifications. If you do not specify an `include_map`, then Firewall Manager applies the policy to all accounts except for those specified by the `exclude_map`. """ + PolicyIncludeMap._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts=accounts, + orgunits=orgunits, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts: Optional[Sequence[str]] = None, + orgunits: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if orgunits is not None: - pulumi.set(__self__, "orgunits", orgunits) + _setter("orgunits", orgunits) @property @pulumi.getter @@ -119,11 +145,32 @@ def __init__(__self__, *, :param str managed_service_data: Details about the service that are specific to the service type, in JSON format. For service type `SHIELD_ADVANCED`, this is an empty string. Examples depending on `type` can be found in the [AWS Firewall Manager SecurityServicePolicyData API Reference](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_SecurityServicePolicyData.html). :param 'PolicySecurityServicePolicyDataPolicyOptionArgs' policy_option: Contains the Network Firewall firewall policy options to configure a centralized deployment model. Documented below. """ - pulumi.set(__self__, "type", type) + PolicySecurityServicePolicyData._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + managed_service_data=managed_service_data, + policy_option=policy_option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + managed_service_data: Optional[str] = None, + policy_option: Optional['outputs.PolicySecurityServicePolicyDataPolicyOption'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if managed_service_data is None and 'managedServiceData' in kwargs: + managed_service_data = kwargs['managedServiceData'] + if policy_option is None and 'policyOption' in kwargs: + policy_option = kwargs['policyOption'] + + _setter("type", type) if managed_service_data is not None: - pulumi.set(__self__, "managed_service_data", managed_service_data) + _setter("managed_service_data", managed_service_data) if policy_option is not None: - pulumi.set(__self__, "policy_option", policy_option) + _setter("policy_option", policy_option) @property @pulumi.getter @@ -177,10 +224,27 @@ def __init__(__self__, *, """ :param 'PolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyArgs' network_firewall_policy: Defines the deployment model to use for the firewall policy. Documented below. """ + PolicySecurityServicePolicyDataPolicyOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_firewall_policy=network_firewall_policy, + third_party_firewall_policy=third_party_firewall_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_firewall_policy: Optional['outputs.PolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicy'] = None, + third_party_firewall_policy: Optional['outputs.PolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicy'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_firewall_policy is None and 'networkFirewallPolicy' in kwargs: + network_firewall_policy = kwargs['networkFirewallPolicy'] + if third_party_firewall_policy is None and 'thirdPartyFirewallPolicy' in kwargs: + third_party_firewall_policy = kwargs['thirdPartyFirewallPolicy'] + if network_firewall_policy is not None: - pulumi.set(__self__, "network_firewall_policy", network_firewall_policy) + _setter("network_firewall_policy", network_firewall_policy) if third_party_firewall_policy is not None: - pulumi.set(__self__, "third_party_firewall_policy", third_party_firewall_policy) + _setter("third_party_firewall_policy", third_party_firewall_policy) @property @pulumi.getter(name="networkFirewallPolicy") @@ -220,8 +284,21 @@ def __init__(__self__, *, """ :param str firewall_deployment_model: Defines the deployment model to use for the third-party firewall policy. Valid values are `CENTRALIZED` and `DISTRIBUTED`. """ + PolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_deployment_model=firewall_deployment_model, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_deployment_model: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_deployment_model is None and 'firewallDeploymentModel' in kwargs: + firewall_deployment_model = kwargs['firewallDeploymentModel'] + if firewall_deployment_model is not None: - pulumi.set(__self__, "firewall_deployment_model", firewall_deployment_model) + _setter("firewall_deployment_model", firewall_deployment_model) @property @pulumi.getter(name="firewallDeploymentModel") @@ -256,8 +333,21 @@ def __init__(__self__, *, """ :param str firewall_deployment_model: Defines the deployment model to use for the third-party firewall policy. Valid values are `CENTRALIZED` and `DISTRIBUTED`. """ + PolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_deployment_model=firewall_deployment_model, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_deployment_model: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_deployment_model is None and 'firewallDeploymentModel' in kwargs: + firewall_deployment_model = kwargs['firewallDeploymentModel'] + if firewall_deployment_model is not None: - pulumi.set(__self__, "firewall_deployment_model", firewall_deployment_model) + _setter("firewall_deployment_model", firewall_deployment_model) @property @pulumi.getter(name="firewallDeploymentModel") diff --git a/sdk/python/pulumi_aws/fms/policy.py b/sdk/python/pulumi_aws/fms/policy.py index cc9789fe759..8e531791601 100644 --- a/sdk/python/pulumi_aws/fms/policy.py +++ b/sdk/python/pulumi_aws/fms/policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,30 +45,89 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] resource_type_lists: A list of resource types to protect. Conflicts with `resource_type`. See the [FMS API Reference](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_Policy.html#fms-Type-Policy-ResourceType) for more information about supported values. Lists with only one element are not supported, instead use `resource_type`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ - pulumi.set(__self__, "exclude_resource_tags", exclude_resource_tags) - pulumi.set(__self__, "security_service_policy_data", security_service_policy_data) + PolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exclude_resource_tags=exclude_resource_tags, + security_service_policy_data=security_service_policy_data, + delete_all_policy_resources=delete_all_policy_resources, + delete_unused_fm_managed_resources=delete_unused_fm_managed_resources, + description=description, + exclude_map=exclude_map, + include_map=include_map, + name=name, + remediation_enabled=remediation_enabled, + resource_tags=resource_tags, + resource_type=resource_type, + resource_type_lists=resource_type_lists, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exclude_resource_tags: Optional[pulumi.Input[bool]] = None, + security_service_policy_data: Optional[pulumi.Input['PolicySecurityServicePolicyDataArgs']] = None, + delete_all_policy_resources: Optional[pulumi.Input[bool]] = None, + delete_unused_fm_managed_resources: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + exclude_map: Optional[pulumi.Input['PolicyExcludeMapArgs']] = None, + include_map: Optional[pulumi.Input['PolicyIncludeMapArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + remediation_enabled: Optional[pulumi.Input[bool]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + resource_type_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exclude_resource_tags is None and 'excludeResourceTags' in kwargs: + exclude_resource_tags = kwargs['excludeResourceTags'] + if exclude_resource_tags is None: + raise TypeError("Missing 'exclude_resource_tags' argument") + if security_service_policy_data is None and 'securityServicePolicyData' in kwargs: + security_service_policy_data = kwargs['securityServicePolicyData'] + if security_service_policy_data is None: + raise TypeError("Missing 'security_service_policy_data' argument") + if delete_all_policy_resources is None and 'deleteAllPolicyResources' in kwargs: + delete_all_policy_resources = kwargs['deleteAllPolicyResources'] + if delete_unused_fm_managed_resources is None and 'deleteUnusedFmManagedResources' in kwargs: + delete_unused_fm_managed_resources = kwargs['deleteUnusedFmManagedResources'] + if exclude_map is None and 'excludeMap' in kwargs: + exclude_map = kwargs['excludeMap'] + if include_map is None and 'includeMap' in kwargs: + include_map = kwargs['includeMap'] + if remediation_enabled is None and 'remediationEnabled' in kwargs: + remediation_enabled = kwargs['remediationEnabled'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type_lists is None and 'resourceTypeLists' in kwargs: + resource_type_lists = kwargs['resourceTypeLists'] + + _setter("exclude_resource_tags", exclude_resource_tags) + _setter("security_service_policy_data", security_service_policy_data) if delete_all_policy_resources is not None: - pulumi.set(__self__, "delete_all_policy_resources", delete_all_policy_resources) + _setter("delete_all_policy_resources", delete_all_policy_resources) if delete_unused_fm_managed_resources is not None: - pulumi.set(__self__, "delete_unused_fm_managed_resources", delete_unused_fm_managed_resources) + _setter("delete_unused_fm_managed_resources", delete_unused_fm_managed_resources) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if exclude_map is not None: - pulumi.set(__self__, "exclude_map", exclude_map) + _setter("exclude_map", exclude_map) if include_map is not None: - pulumi.set(__self__, "include_map", include_map) + _setter("include_map", include_map) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if remediation_enabled is not None: - pulumi.set(__self__, "remediation_enabled", remediation_enabled) + _setter("remediation_enabled", remediation_enabled) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if resource_type_lists is not None: - pulumi.set(__self__, "resource_type_lists", resource_type_lists) + _setter("resource_type_lists", resource_type_lists) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="excludeResourceTags") @@ -264,41 +323,106 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _PolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + delete_all_policy_resources=delete_all_policy_resources, + delete_unused_fm_managed_resources=delete_unused_fm_managed_resources, + description=description, + exclude_map=exclude_map, + exclude_resource_tags=exclude_resource_tags, + include_map=include_map, + name=name, + policy_update_token=policy_update_token, + remediation_enabled=remediation_enabled, + resource_tags=resource_tags, + resource_type=resource_type, + resource_type_lists=resource_type_lists, + security_service_policy_data=security_service_policy_data, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + delete_all_policy_resources: Optional[pulumi.Input[bool]] = None, + delete_unused_fm_managed_resources: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + exclude_map: Optional[pulumi.Input['PolicyExcludeMapArgs']] = None, + exclude_resource_tags: Optional[pulumi.Input[bool]] = None, + include_map: Optional[pulumi.Input['PolicyIncludeMapArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + policy_update_token: Optional[pulumi.Input[str]] = None, + remediation_enabled: Optional[pulumi.Input[bool]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + resource_type_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_service_policy_data: Optional[pulumi.Input['PolicySecurityServicePolicyDataArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_all_policy_resources is None and 'deleteAllPolicyResources' in kwargs: + delete_all_policy_resources = kwargs['deleteAllPolicyResources'] + if delete_unused_fm_managed_resources is None and 'deleteUnusedFmManagedResources' in kwargs: + delete_unused_fm_managed_resources = kwargs['deleteUnusedFmManagedResources'] + if exclude_map is None and 'excludeMap' in kwargs: + exclude_map = kwargs['excludeMap'] + if exclude_resource_tags is None and 'excludeResourceTags' in kwargs: + exclude_resource_tags = kwargs['excludeResourceTags'] + if include_map is None and 'includeMap' in kwargs: + include_map = kwargs['includeMap'] + if policy_update_token is None and 'policyUpdateToken' in kwargs: + policy_update_token = kwargs['policyUpdateToken'] + if remediation_enabled is None and 'remediationEnabled' in kwargs: + remediation_enabled = kwargs['remediationEnabled'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type_lists is None and 'resourceTypeLists' in kwargs: + resource_type_lists = kwargs['resourceTypeLists'] + if security_service_policy_data is None and 'securityServicePolicyData' in kwargs: + security_service_policy_data = kwargs['securityServicePolicyData'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if delete_all_policy_resources is not None: - pulumi.set(__self__, "delete_all_policy_resources", delete_all_policy_resources) + _setter("delete_all_policy_resources", delete_all_policy_resources) if delete_unused_fm_managed_resources is not None: - pulumi.set(__self__, "delete_unused_fm_managed_resources", delete_unused_fm_managed_resources) + _setter("delete_unused_fm_managed_resources", delete_unused_fm_managed_resources) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if exclude_map is not None: - pulumi.set(__self__, "exclude_map", exclude_map) + _setter("exclude_map", exclude_map) if exclude_resource_tags is not None: - pulumi.set(__self__, "exclude_resource_tags", exclude_resource_tags) + _setter("exclude_resource_tags", exclude_resource_tags) if include_map is not None: - pulumi.set(__self__, "include_map", include_map) + _setter("include_map", include_map) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy_update_token is not None: - pulumi.set(__self__, "policy_update_token", policy_update_token) + _setter("policy_update_token", policy_update_token) if remediation_enabled is not None: - pulumi.set(__self__, "remediation_enabled", remediation_enabled) + _setter("remediation_enabled", remediation_enabled) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if resource_type_lists is not None: - pulumi.set(__self__, "resource_type_lists", resource_type_lists) + _setter("resource_type_lists", resource_type_lists) if security_service_policy_data is not None: - pulumi.set(__self__, "security_service_policy_data", security_service_policy_data) + _setter("security_service_policy_data", security_service_policy_data) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -636,6 +760,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -666,16 +794,19 @@ def _internal_init(__self__, __props__.__dict__["delete_all_policy_resources"] = delete_all_policy_resources __props__.__dict__["delete_unused_fm_managed_resources"] = delete_unused_fm_managed_resources __props__.__dict__["description"] = description + exclude_map = _utilities.configure(exclude_map, PolicyExcludeMapArgs, True) __props__.__dict__["exclude_map"] = exclude_map if exclude_resource_tags is None and not opts.urn: raise TypeError("Missing required property 'exclude_resource_tags'") __props__.__dict__["exclude_resource_tags"] = exclude_resource_tags + include_map = _utilities.configure(include_map, PolicyIncludeMapArgs, True) __props__.__dict__["include_map"] = include_map __props__.__dict__["name"] = name __props__.__dict__["remediation_enabled"] = remediation_enabled __props__.__dict__["resource_tags"] = resource_tags __props__.__dict__["resource_type"] = resource_type __props__.__dict__["resource_type_lists"] = resource_type_lists + security_service_policy_data = _utilities.configure(security_service_policy_data, PolicySecurityServicePolicyDataArgs, True) if security_service_policy_data is None and not opts.urn: raise TypeError("Missing required property 'security_service_policy_data'") __props__.__dict__["security_service_policy_data"] = security_service_policy_data diff --git a/sdk/python/pulumi_aws/fsx/_inputs.py b/sdk/python/pulumi_aws/fsx/_inputs.py index 1f482fc5fb2..7fca771fd42 100644 --- a/sdk/python/pulumi_aws/fsx/_inputs.py +++ b/sdk/python/pulumi_aws/fsx/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -64,10 +64,27 @@ def __init__(__self__, *, :param pulumi.Input['DataRepositoryAssociationS3AutoExportPolicyArgs'] auto_export_policy: Specifies the type of updated objects that will be automatically exported from your file system to the linked S3 bucket. See the `events` configuration block. :param pulumi.Input['DataRepositoryAssociationS3AutoImportPolicyArgs'] auto_import_policy: Specifies the type of updated objects that will be automatically imported from the linked S3 bucket to your file system. See the `events` configuration block. """ + DataRepositoryAssociationS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_export_policy=auto_export_policy, + auto_import_policy=auto_import_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_export_policy: Optional[pulumi.Input['DataRepositoryAssociationS3AutoExportPolicyArgs']] = None, + auto_import_policy: Optional[pulumi.Input['DataRepositoryAssociationS3AutoImportPolicyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_export_policy is None and 'autoExportPolicy' in kwargs: + auto_export_policy = kwargs['autoExportPolicy'] + if auto_import_policy is None and 'autoImportPolicy' in kwargs: + auto_import_policy = kwargs['autoImportPolicy'] + if auto_export_policy is not None: - pulumi.set(__self__, "auto_export_policy", auto_export_policy) + _setter("auto_export_policy", auto_export_policy) if auto_import_policy is not None: - pulumi.set(__self__, "auto_import_policy", auto_import_policy) + _setter("auto_import_policy", auto_import_policy) @property @pulumi.getter(name="autoExportPolicy") @@ -101,8 +118,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] events: A list of file event types to automatically export to your linked S3 bucket or import from the linked S3 bucket. Valid values are `NEW`, `CHANGED`, `DELETED`. Max of 3. """ + DataRepositoryAssociationS3AutoExportPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is not None: - pulumi.set(__self__, "events", events) + _setter("events", events) @property @pulumi.getter @@ -124,8 +152,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] events: A list of file event types to automatically export to your linked S3 bucket or import from the linked S3 bucket. Valid values are `NEW`, `CHANGED`, `DELETED`. Max of 3. """ + DataRepositoryAssociationS3AutoImportPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is not None: - pulumi.set(__self__, "events", events) + _setter("events", events) @property @pulumi.getter @@ -162,26 +201,79 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['FileCacheDataRepositoryAssociationNfArgs']]] nfs: (Optional) See the `nfs` configuration block. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file cache. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "data_repository_path", data_repository_path) - pulumi.set(__self__, "file_cache_path", file_cache_path) + FileCacheDataRepositoryAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_repository_path=data_repository_path, + file_cache_path=file_cache_path, + association_id=association_id, + data_repository_subdirectories=data_repository_subdirectories, + file_cache_id=file_cache_id, + file_system_id=file_system_id, + file_system_path=file_system_path, + imported_file_chunk_size=imported_file_chunk_size, + nfs=nfs, + resource_arn=resource_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_repository_path: Optional[pulumi.Input[str]] = None, + file_cache_path: Optional[pulumi.Input[str]] = None, + association_id: Optional[pulumi.Input[str]] = None, + data_repository_subdirectories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + file_cache_id: Optional[pulumi.Input[str]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + file_system_path: Optional[pulumi.Input[str]] = None, + imported_file_chunk_size: Optional[pulumi.Input[int]] = None, + nfs: Optional[pulumi.Input[Sequence[pulumi.Input['FileCacheDataRepositoryAssociationNfArgs']]]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_repository_path is None and 'dataRepositoryPath' in kwargs: + data_repository_path = kwargs['dataRepositoryPath'] + if data_repository_path is None: + raise TypeError("Missing 'data_repository_path' argument") + if file_cache_path is None and 'fileCachePath' in kwargs: + file_cache_path = kwargs['fileCachePath'] + if file_cache_path is None: + raise TypeError("Missing 'file_cache_path' argument") + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if data_repository_subdirectories is None and 'dataRepositorySubdirectories' in kwargs: + data_repository_subdirectories = kwargs['dataRepositorySubdirectories'] + if file_cache_id is None and 'fileCacheId' in kwargs: + file_cache_id = kwargs['fileCacheId'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_path is None and 'fileSystemPath' in kwargs: + file_system_path = kwargs['fileSystemPath'] + if imported_file_chunk_size is None and 'importedFileChunkSize' in kwargs: + imported_file_chunk_size = kwargs['importedFileChunkSize'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + + _setter("data_repository_path", data_repository_path) + _setter("file_cache_path", file_cache_path) if association_id is not None: - pulumi.set(__self__, "association_id", association_id) + _setter("association_id", association_id) if data_repository_subdirectories is not None: - pulumi.set(__self__, "data_repository_subdirectories", data_repository_subdirectories) + _setter("data_repository_subdirectories", data_repository_subdirectories) if file_cache_id is not None: - pulumi.set(__self__, "file_cache_id", file_cache_id) + _setter("file_cache_id", file_cache_id) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if file_system_path is not None: - pulumi.set(__self__, "file_system_path", file_system_path) + _setter("file_system_path", file_system_path) if imported_file_chunk_size is not None: - pulumi.set(__self__, "imported_file_chunk_size", imported_file_chunk_size) + _setter("imported_file_chunk_size", imported_file_chunk_size) if nfs is not None: - pulumi.set(__self__, "nfs", nfs) + _setter("nfs", nfs) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dataRepositoryPath") @@ -310,9 +402,26 @@ def __init__(__self__, *, :param pulumi.Input[str] version: The version of the NFS (Network File System) protocol of the NFS data repository. The only supported value is NFS3, which indicates that the data repository must support the NFSv3 protocol. The only supported value is `NFS3`. :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_ips: A list of up to 2 IP addresses of DNS servers used to resolve the NFS file system domain name. The provided IP addresses can either be the IP addresses of a DNS forwarder or resolver that the customer manages and runs inside the customer VPC, or the IP addresses of the on-premises DNS servers. """ - pulumi.set(__self__, "version", version) + FileCacheDataRepositoryAssociationNfArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + dns_ips=dns_ips, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[pulumi.Input[str]] = None, + dns_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is None: + raise TypeError("Missing 'version' argument") + if dns_ips is None and 'dnsIps' in kwargs: + dns_ips = kwargs['dnsIps'] + + _setter("version", version) if dns_ips is not None: - pulumi.set(__self__, "dns_ips", dns_ips) + _setter("dns_ips", dns_ips) @property @pulumi.getter @@ -354,15 +463,54 @@ def __init__(__self__, *, :param pulumi.Input[int] per_unit_storage_throughput: Provisions the amount of read and write throughput for each 1 tebibyte (TiB) of cache storage capacity, in MB/s/TiB. The only supported value is `1000`. :param pulumi.Input[str] weekly_maintenance_start_time: A recurring weekly time, in the format `D:HH:MM`. `D` is the day of the week, for which `1` represents Monday and `7` represents Sunday. `HH` is the zero-padded hour of the day (0-23), and `MM` is the zero-padded minute of the hour. For example, 1:05:00 specifies maintenance at 5 AM Monday. See the [ISO week date](https://en.wikipedia.org/wiki/ISO_week_date) for more information. """ - pulumi.set(__self__, "deployment_type", deployment_type) - pulumi.set(__self__, "metadata_configurations", metadata_configurations) - pulumi.set(__self__, "per_unit_storage_throughput", per_unit_storage_throughput) + FileCacheLustreConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment_type=deployment_type, + metadata_configurations=metadata_configurations, + per_unit_storage_throughput=per_unit_storage_throughput, + log_configurations=log_configurations, + mount_name=mount_name, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment_type: Optional[pulumi.Input[str]] = None, + metadata_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['FileCacheLustreConfigurationMetadataConfigurationArgs']]]] = None, + per_unit_storage_throughput: Optional[pulumi.Input[int]] = None, + log_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['FileCacheLustreConfigurationLogConfigurationArgs']]]] = None, + mount_name: Optional[pulumi.Input[str]] = None, + weekly_maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if deployment_type is None: + raise TypeError("Missing 'deployment_type' argument") + if metadata_configurations is None and 'metadataConfigurations' in kwargs: + metadata_configurations = kwargs['metadataConfigurations'] + if metadata_configurations is None: + raise TypeError("Missing 'metadata_configurations' argument") + if per_unit_storage_throughput is None and 'perUnitStorageThroughput' in kwargs: + per_unit_storage_throughput = kwargs['perUnitStorageThroughput'] + if per_unit_storage_throughput is None: + raise TypeError("Missing 'per_unit_storage_throughput' argument") + if log_configurations is None and 'logConfigurations' in kwargs: + log_configurations = kwargs['logConfigurations'] + if mount_name is None and 'mountName' in kwargs: + mount_name = kwargs['mountName'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + + _setter("deployment_type", deployment_type) + _setter("metadata_configurations", metadata_configurations) + _setter("per_unit_storage_throughput", per_unit_storage_throughput) if log_configurations is not None: - pulumi.set(__self__, "log_configurations", log_configurations) + _setter("log_configurations", log_configurations) if mount_name is not None: - pulumi.set(__self__, "mount_name", mount_name) + _setter("mount_name", mount_name) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter(name="deploymentType") @@ -436,10 +584,23 @@ class FileCacheLustreConfigurationLogConfigurationArgs: def __init__(__self__, *, destination: Optional[pulumi.Input[str]] = None, level: Optional[pulumi.Input[str]] = None): + FileCacheLustreConfigurationLogConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + level=level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) @property @pulumi.getter @@ -467,7 +628,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] storage_capacity: The storage capacity of the Lustre MDT (Metadata Target) storage volume in gibibytes (GiB). The only supported value is `2400` GiB. """ - pulumi.set(__self__, "storage_capacity", storage_capacity) + FileCacheLustreConfigurationMetadataConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_capacity=storage_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_capacity: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_capacity is None: + raise TypeError("Missing 'storage_capacity' argument") + + _setter("storage_capacity", storage_capacity) @property @pulumi.getter(name="storageCapacity") @@ -491,10 +667,23 @@ def __init__(__self__, *, :param pulumi.Input[str] destination: The Amazon Resource Name (ARN) that specifies the destination of the logs. The name of the Amazon CloudWatch Logs log group must begin with the `/aws/fsx` prefix. If you do not provide a destination, Amazon FSx will create and use a log stream in the CloudWatch Logs `/aws/fsx/lustre` log group. :param pulumi.Input[str] level: Sets which data repository events are logged by Amazon FSx. Valid values are `WARN_ONLY`, `FAILURE_ONLY`, `ERROR_ONLY`, `WARN_ERROR` and `DISABLED`. Default value is `DISABLED`. """ + LustreFileSystemLogConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + level=level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) @property @pulumi.getter @@ -530,10 +719,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] no_squash_nids: When root squash is enabled, you can optionally specify an array of NIDs of clients for which root squash does not apply. A client NID is a Lustre Network Identifier used to uniquely identify a client. You can specify the NID as either a single address or a range of addresses: 1. A single address is described in standard Lustre NID format by specifying the client’s IP address followed by the Lustre network ID (for example, 10.0.1.6@tcp). 2. An address range is described using a dash to separate the range (for example, 10.0.[2-10].[1-255]@tcp). :param pulumi.Input[str] root_squash: You enable root squash by setting a user ID (UID) and group ID (GID) for the file system in the format UID:GID (for example, 365534:65534). The UID and GID values can range from 0 to 4294967294. """ + LustreFileSystemRootSquashConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + no_squash_nids=no_squash_nids, + root_squash=root_squash, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + no_squash_nids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + root_squash: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if no_squash_nids is None and 'noSquashNids' in kwargs: + no_squash_nids = kwargs['noSquashNids'] + if root_squash is None and 'rootSquash' in kwargs: + root_squash = kwargs['rootSquash'] + if no_squash_nids is not None: - pulumi.set(__self__, "no_squash_nids", no_squash_nids) + _setter("no_squash_nids", no_squash_nids) if root_squash is not None: - pulumi.set(__self__, "root_squash", root_squash) + _setter("root_squash", root_squash) @property @pulumi.getter(name="noSquashNids") @@ -569,10 +775,23 @@ def __init__(__self__, *, :param pulumi.Input[int] iops: The total number of SSD IOPS provisioned for the file system. :param pulumi.Input[str] mode: Specifies whether the number of IOPS for the file system is using the system. Valid values are `AUTOMATIC` and `USER_PROVISIONED`. Default value is `AUTOMATIC`. """ + OntapFileSystemDiskIopsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iops=iops, + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iops: Optional[pulumi.Input[int]] = None, + mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) @property @pulumi.getter @@ -608,10 +827,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['OntapFileSystemEndpointInterclusterArgs']]] interclusters: An endpoint for managing your file system by setting up NetApp SnapMirror with other ONTAP systems. See Endpoint. :param pulumi.Input[Sequence[pulumi.Input['OntapFileSystemEndpointManagementArgs']]] managements: An endpoint for managing your file system using the NetApp ONTAP CLI and NetApp ONTAP API. See Endpoint. """ + OntapFileSystemEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + interclusters=interclusters, + managements=managements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interclusters: Optional[pulumi.Input[Sequence[pulumi.Input['OntapFileSystemEndpointInterclusterArgs']]]] = None, + managements: Optional[pulumi.Input[Sequence[pulumi.Input['OntapFileSystemEndpointManagementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interclusters is not None: - pulumi.set(__self__, "interclusters", interclusters) + _setter("interclusters", interclusters) if managements is not None: - pulumi.set(__self__, "managements", managements) + _setter("managements", managements) @property @pulumi.getter @@ -647,10 +879,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dns_name: The Domain Name Service (DNS) name for the file system. You can mount your file system using its DNS name. :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_addresses: IP addresses of the file system endpoint. """ + OntapFileSystemEndpointInterclusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -686,10 +935,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dns_name: The Domain Name Service (DNS) name for the file system. You can mount your file system using its DNS name. :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_addresses: IP addresses of the file system endpoint. """ + OntapFileSystemEndpointManagementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -724,10 +990,27 @@ def __init__(__self__, *, """ :param pulumi.Input[str] netbios_name: The NetBIOS name of the Active Directory computer object that will be created for your SVM. This is often the same as the SVM name but can be different. AWS limits to 15 characters because of standard NetBIOS naming limits. """ + OntapStorageVirtualMachineActiveDirectoryConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + netbios_name=netbios_name, + self_managed_active_directory_configuration=self_managed_active_directory_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + netbios_name: Optional[pulumi.Input[str]] = None, + self_managed_active_directory_configuration: Optional[pulumi.Input['OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if netbios_name is None and 'netbiosName' in kwargs: + netbios_name = kwargs['netbiosName'] + if self_managed_active_directory_configuration is None and 'selfManagedActiveDirectoryConfiguration' in kwargs: + self_managed_active_directory_configuration = kwargs['selfManagedActiveDirectoryConfiguration'] + if netbios_name is not None: - pulumi.set(__self__, "netbios_name", netbios_name) + _setter("netbios_name", netbios_name) if self_managed_active_directory_configuration is not None: - pulumi.set(__self__, "self_managed_active_directory_configuration", self_managed_active_directory_configuration) + _setter("self_managed_active_directory_configuration", self_managed_active_directory_configuration) @property @pulumi.getter(name="netbiosName") @@ -768,14 +1051,51 @@ def __init__(__self__, *, :param pulumi.Input[str] file_system_administrators_group: The name of the domain group whose members are granted administrative privileges for the SVM. The group that you specify must already exist in your domain. Defaults to `Domain Admins`. :param pulumi.Input[str] organizational_unit_distinguished_name: The fully qualified distinguished name of the organizational unit within your self-managed AD directory that the Windows File Server instance will join. For example, `OU=FSx,DC=yourdomain,DC=corp,DC=com`. Only accepts OU as the direct parent of the SVM. If none is provided, the SVM is created in the default location of your self-managed AD directory. To learn more, see [RFC 2253](https://tools.ietf.org/html/rfc2253). """ - pulumi.set(__self__, "dns_ips", dns_ips) - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_ips=dns_ips, + domain_name=domain_name, + password=password, + username=username, + file_system_administrators_group=file_system_administrators_group, + organizational_unit_distinguished_name=organizational_unit_distinguished_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + file_system_administrators_group: Optional[pulumi.Input[str]] = None, + organizational_unit_distinguished_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_ips is None and 'dnsIps' in kwargs: + dns_ips = kwargs['dnsIps'] + if dns_ips is None: + raise TypeError("Missing 'dns_ips' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if file_system_administrators_group is None and 'fileSystemAdministratorsGroup' in kwargs: + file_system_administrators_group = kwargs['fileSystemAdministratorsGroup'] + if organizational_unit_distinguished_name is None and 'organizationalUnitDistinguishedName' in kwargs: + organizational_unit_distinguished_name = kwargs['organizationalUnitDistinguishedName'] + + _setter("dns_ips", dns_ips) + _setter("domain_name", domain_name) + _setter("password", password) + _setter("username", username) if file_system_administrators_group is not None: - pulumi.set(__self__, "file_system_administrators_group", file_system_administrators_group) + _setter("file_system_administrators_group", file_system_administrators_group) if organizational_unit_distinguished_name is not None: - pulumi.set(__self__, "organizational_unit_distinguished_name", organizational_unit_distinguished_name) + _setter("organizational_unit_distinguished_name", organizational_unit_distinguished_name) @property @pulumi.getter(name="dnsIps") @@ -863,14 +1183,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['OntapStorageVirtualMachineEndpointNfArgs']]] nfs: An endpoint for accessing data on your storage virtual machine via NFS protocol. See Endpoint. :param pulumi.Input[Sequence[pulumi.Input['OntapStorageVirtualMachineEndpointSmbArgs']]] smbs: An endpoint for accessing data on your storage virtual machine via SMB protocol. This is only set if an active_directory_configuration has been set. See Endpoint. """ + OntapStorageVirtualMachineEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iscsis=iscsis, + managements=managements, + nfs=nfs, + smbs=smbs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iscsis: Optional[pulumi.Input[Sequence[pulumi.Input['OntapStorageVirtualMachineEndpointIscsiArgs']]]] = None, + managements: Optional[pulumi.Input[Sequence[pulumi.Input['OntapStorageVirtualMachineEndpointManagementArgs']]]] = None, + nfs: Optional[pulumi.Input[Sequence[pulumi.Input['OntapStorageVirtualMachineEndpointNfArgs']]]] = None, + smbs: Optional[pulumi.Input[Sequence[pulumi.Input['OntapStorageVirtualMachineEndpointSmbArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iscsis is not None: - pulumi.set(__self__, "iscsis", iscsis) + _setter("iscsis", iscsis) if managements is not None: - pulumi.set(__self__, "managements", managements) + _setter("managements", managements) if nfs is not None: - pulumi.set(__self__, "nfs", nfs) + _setter("nfs", nfs) if smbs is not None: - pulumi.set(__self__, "smbs", smbs) + _setter("smbs", smbs) @property @pulumi.getter @@ -930,10 +1267,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dns_name: The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_addresses: IP addresses of the storage virtual machine endpoint. """ + OntapStorageVirtualMachineEndpointIscsiArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -969,10 +1323,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dns_name: The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_addresses: IP addresses of the storage virtual machine endpoint. """ + OntapStorageVirtualMachineEndpointManagementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -1008,10 +1379,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dns_name: The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_addresses: IP addresses of the storage virtual machine endpoint. """ + OntapStorageVirtualMachineEndpointNfArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -1047,10 +1435,27 @@ def __init__(__self__, *, :param pulumi.Input[str] dns_name: The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_addresses: IP addresses of the storage virtual machine endpoint. """ + OntapStorageVirtualMachineEndpointSmbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -1094,17 +1499,52 @@ def __init__(__self__, *, :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodArgs'] retention_period: The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. :param pulumi.Input[bool] volume_append_mode_enabled: Enables or disables volume-append mode on an FSx for ONTAP SnapLock volume. The default value is `false`. """ - pulumi.set(__self__, "snaplock_type", snaplock_type) + OntapVolumeSnaplockConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + snaplock_type=snaplock_type, + audit_log_volume=audit_log_volume, + autocommit_period=autocommit_period, + privileged_delete=privileged_delete, + retention_period=retention_period, + volume_append_mode_enabled=volume_append_mode_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + snaplock_type: Optional[pulumi.Input[str]] = None, + audit_log_volume: Optional[pulumi.Input[bool]] = None, + autocommit_period: Optional[pulumi.Input['OntapVolumeSnaplockConfigurationAutocommitPeriodArgs']] = None, + privileged_delete: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodArgs']] = None, + volume_append_mode_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if snaplock_type is None and 'snaplockType' in kwargs: + snaplock_type = kwargs['snaplockType'] + if snaplock_type is None: + raise TypeError("Missing 'snaplock_type' argument") + if audit_log_volume is None and 'auditLogVolume' in kwargs: + audit_log_volume = kwargs['auditLogVolume'] + if autocommit_period is None and 'autocommitPeriod' in kwargs: + autocommit_period = kwargs['autocommitPeriod'] + if privileged_delete is None and 'privilegedDelete' in kwargs: + privileged_delete = kwargs['privilegedDelete'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if volume_append_mode_enabled is None and 'volumeAppendModeEnabled' in kwargs: + volume_append_mode_enabled = kwargs['volumeAppendModeEnabled'] + + _setter("snaplock_type", snaplock_type) if audit_log_volume is not None: - pulumi.set(__self__, "audit_log_volume", audit_log_volume) + _setter("audit_log_volume", audit_log_volume) if autocommit_period is not None: - pulumi.set(__self__, "autocommit_period", autocommit_period) + _setter("autocommit_period", autocommit_period) if privileged_delete is not None: - pulumi.set(__self__, "privileged_delete", privileged_delete) + _setter("privileged_delete", privileged_delete) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) if volume_append_mode_enabled is not None: - pulumi.set(__self__, "volume_append_mode_enabled", volume_append_mode_enabled) + _setter("volume_append_mode_enabled", volume_append_mode_enabled) @property @pulumi.getter(name="snaplockType") @@ -1188,10 +1628,23 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. Setting this value to `NONE` disables autocommit. Valid values: `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `NONE`. :param pulumi.Input[int] value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. """ + OntapVolumeSnaplockConfigurationAutocommitPeriodArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1229,12 +1682,33 @@ def __init__(__self__, *, :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs'] maximum_retention: The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. :param pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs'] minimum_retention: The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. """ + OntapVolumeSnaplockConfigurationRetentionPeriodArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_retention=default_retention, + maximum_retention=maximum_retention, + minimum_retention=minimum_retention, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_retention: Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs']] = None, + maximum_retention: Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs']] = None, + minimum_retention: Optional[pulumi.Input['OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_retention is None and 'defaultRetention' in kwargs: + default_retention = kwargs['defaultRetention'] + if maximum_retention is None and 'maximumRetention' in kwargs: + maximum_retention = kwargs['maximumRetention'] + if minimum_retention is None and 'minimumRetention' in kwargs: + minimum_retention = kwargs['minimumRetention'] + if default_retention is not None: - pulumi.set(__self__, "default_retention", default_retention) + _setter("default_retention", default_retention) if maximum_retention is not None: - pulumi.set(__self__, "maximum_retention", maximum_retention) + _setter("maximum_retention", maximum_retention) if minimum_retention is not None: - pulumi.set(__self__, "minimum_retention", minimum_retention) + _setter("minimum_retention", minimum_retention) @property @pulumi.getter(name="defaultRetention") @@ -1282,10 +1756,23 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. Setting this value to `NONE` disables autocommit. Valid values: `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `NONE`. :param pulumi.Input[int] value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. """ + OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetentionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1321,10 +1808,23 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. Setting this value to `NONE` disables autocommit. Valid values: `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `NONE`. :param pulumi.Input[int] value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. """ + OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1360,10 +1860,23 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. Setting this value to `NONE` disables autocommit. Valid values: `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `NONE`. :param pulumi.Input[int] value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. """ + OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1399,10 +1912,25 @@ def __init__(__self__, *, :param pulumi.Input[int] cooling_period: Specifies the number of days that user data in a volume must remain inactive before it is considered "cold" and moved to the capacity pool. Used with `AUTO` and `SNAPSHOT_ONLY` tiering policies only. Valid values are whole numbers between 2 and 183. Default values are 31 days for `AUTO` and 2 days for `SNAPSHOT_ONLY`. :param pulumi.Input[str] name: Specifies the tiering policy for the ONTAP volume for moving data to the capacity pool storage. Valid values are `SNAPSHOT_ONLY`, `AUTO`, `ALL`, `NONE`. Default value is `SNAPSHOT_ONLY`. """ + OntapVolumeTieringPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cooling_period=cooling_period, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cooling_period: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cooling_period is None and 'coolingPeriod' in kwargs: + cooling_period = kwargs['coolingPeriod'] + if cooling_period is not None: - pulumi.set(__self__, "cooling_period", cooling_period) + _setter("cooling_period", cooling_period) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="coolingPeriod") @@ -1438,10 +1966,23 @@ def __init__(__self__, *, :param pulumi.Input[int] iops: The total number of SSD IOPS provisioned for the file system. :param pulumi.Input[str] mode: Specifies whether the number of IOPS for the file system is using the system. Valid values are `AUTOMATIC` and `USER_PROVISIONED`. Default value is `AUTOMATIC`. """ + OpenZfsFileSystemDiskIopsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iops=iops, + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iops: Optional[pulumi.Input[int]] = None, + mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) @property @pulumi.getter @@ -1485,18 +2026,51 @@ def __init__(__self__, *, :param pulumi.Input[int] record_size_kib: Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB. :param pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs']]] user_and_group_quotas: Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. """ + OpenZfsFileSystemRootVolumeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + copy_tags_to_snapshots=copy_tags_to_snapshots, + data_compression_type=data_compression_type, + nfs_exports=nfs_exports, + read_only=read_only, + record_size_kib=record_size_kib, + user_and_group_quotas=user_and_group_quotas, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + copy_tags_to_snapshots: Optional[pulumi.Input[bool]] = None, + data_compression_type: Optional[pulumi.Input[str]] = None, + nfs_exports: Optional[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs']] = None, + read_only: Optional[pulumi.Input[bool]] = None, + record_size_kib: Optional[pulumi.Input[int]] = None, + user_and_group_quotas: Optional[pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copy_tags_to_snapshots is None and 'copyTagsToSnapshots' in kwargs: + copy_tags_to_snapshots = kwargs['copyTagsToSnapshots'] + if data_compression_type is None and 'dataCompressionType' in kwargs: + data_compression_type = kwargs['dataCompressionType'] + if nfs_exports is None and 'nfsExports' in kwargs: + nfs_exports = kwargs['nfsExports'] + if read_only is None and 'readOnly' in kwargs: + read_only = kwargs['readOnly'] + if record_size_kib is None and 'recordSizeKib' in kwargs: + record_size_kib = kwargs['recordSizeKib'] + if user_and_group_quotas is None and 'userAndGroupQuotas' in kwargs: + user_and_group_quotas = kwargs['userAndGroupQuotas'] + if copy_tags_to_snapshots is not None: - pulumi.set(__self__, "copy_tags_to_snapshots", copy_tags_to_snapshots) + _setter("copy_tags_to_snapshots", copy_tags_to_snapshots) if data_compression_type is not None: - pulumi.set(__self__, "data_compression_type", data_compression_type) + _setter("data_compression_type", data_compression_type) if nfs_exports is not None: - pulumi.set(__self__, "nfs_exports", nfs_exports) + _setter("nfs_exports", nfs_exports) if read_only is not None: - pulumi.set(__self__, "read_only", read_only) + _setter("read_only", read_only) if record_size_kib is not None: - pulumi.set(__self__, "record_size_kib", record_size_kib) + _setter("record_size_kib", record_size_kib) if user_and_group_quotas is not None: - pulumi.set(__self__, "user_and_group_quotas", user_and_group_quotas) + _setter("user_and_group_quotas", user_and_group_quotas) @property @pulumi.getter(name="copyTagsToSnapshots") @@ -1578,7 +2152,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs']]] client_configurations: A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. """ - pulumi.set(__self__, "client_configurations", client_configurations) + OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_configurations=client_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_configurations is None and 'clientConfigurations' in kwargs: + client_configurations = kwargs['clientConfigurations'] + if client_configurations is None: + raise TypeError("Missing 'client_configurations' argument") + + _setter("client_configurations", client_configurations) @property @pulumi.getter(name="clientConfigurations") @@ -1602,8 +2191,25 @@ def __init__(__self__, *, :param pulumi.Input[str] clients: A value that specifies who can mount the file system. You can provide a wildcard character (*), an IP address (0.0.0.0), or a CIDR address (192.0.2.0/24. By default, Amazon FSx uses the wildcard character when specifying the client. :param pulumi.Input[Sequence[pulumi.Input[str]]] options: The options to use when mounting the file system. Maximum of 20 items. See the [Linix NFS exports man page](https://linux.die.net/man/5/exports) for more information. `crossmount` and `sync` are used by default. """ - pulumi.set(__self__, "clients", clients) - pulumi.set(__self__, "options", options) + OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + clients=clients, + options=options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + clients: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if clients is None: + raise TypeError("Missing 'clients' argument") + if options is None: + raise TypeError("Missing 'options' argument") + + _setter("clients", clients) + _setter("options", options) @property @pulumi.getter @@ -1641,9 +2247,32 @@ def __init__(__self__, *, :param pulumi.Input[int] storage_capacity_quota_gib: The amount of storage that the user or group can use in gibibytes (GiB). Valid values between `0` and `2147483647` :param pulumi.Input[str] type: A value that specifies whether the quota applies to a user or group. Valid values are `USER` or `GROUP`. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "storage_capacity_quota_gib", storage_capacity_quota_gib) - pulumi.set(__self__, "type", type) + OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + storage_capacity_quota_gib=storage_capacity_quota_gib, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[int]] = None, + storage_capacity_quota_gib: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if storage_capacity_quota_gib is None and 'storageCapacityQuotaGib' in kwargs: + storage_capacity_quota_gib = kwargs['storageCapacityQuotaGib'] + if storage_capacity_quota_gib is None: + raise TypeError("Missing 'storage_capacity_quota_gib' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("id", id) + _setter("storage_capacity_quota_gib", storage_capacity_quota_gib) + _setter("type", type) @property @pulumi.getter @@ -1689,7 +2318,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['OpenZfsVolumeNfsExportsClientConfigurationArgs']]] client_configurations: A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. """ - pulumi.set(__self__, "client_configurations", client_configurations) + OpenZfsVolumeNfsExportsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_configurations=client_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['OpenZfsVolumeNfsExportsClientConfigurationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_configurations is None and 'clientConfigurations' in kwargs: + client_configurations = kwargs['clientConfigurations'] + if client_configurations is None: + raise TypeError("Missing 'client_configurations' argument") + + _setter("client_configurations", client_configurations) @property @pulumi.getter(name="clientConfigurations") @@ -1713,8 +2357,25 @@ def __init__(__self__, *, :param pulumi.Input[str] clients: A value that specifies who can mount the file system. You can provide a wildcard character (*), an IP address (0.0.0.0), or a CIDR address (192.0.2.0/24. By default, Amazon FSx uses the wildcard character when specifying the client. :param pulumi.Input[Sequence[pulumi.Input[str]]] options: The options to use when mounting the file system. Maximum of 20 items. See the [Linix NFS exports man page](https://linux.die.net/man/5/exports) for more information. `crossmount` and `sync` are used by default. """ - pulumi.set(__self__, "clients", clients) - pulumi.set(__self__, "options", options) + OpenZfsVolumeNfsExportsClientConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + clients=clients, + options=options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + clients: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if clients is None: + raise TypeError("Missing 'clients' argument") + if options is None: + raise TypeError("Missing 'options' argument") + + _setter("clients", clients) + _setter("options", options) @property @pulumi.getter @@ -1746,8 +2407,29 @@ class OpenZfsVolumeOriginSnapshotArgs: def __init__(__self__, *, copy_strategy: pulumi.Input[str], snapshot_arn: pulumi.Input[str]): - pulumi.set(__self__, "copy_strategy", copy_strategy) - pulumi.set(__self__, "snapshot_arn", snapshot_arn) + OpenZfsVolumeOriginSnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + copy_strategy=copy_strategy, + snapshot_arn=snapshot_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + copy_strategy: Optional[pulumi.Input[str]] = None, + snapshot_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copy_strategy is None and 'copyStrategy' in kwargs: + copy_strategy = kwargs['copyStrategy'] + if copy_strategy is None: + raise TypeError("Missing 'copy_strategy' argument") + if snapshot_arn is None and 'snapshotArn' in kwargs: + snapshot_arn = kwargs['snapshotArn'] + if snapshot_arn is None: + raise TypeError("Missing 'snapshot_arn' argument") + + _setter("copy_strategy", copy_strategy) + _setter("snapshot_arn", snapshot_arn) @property @pulumi.getter(name="copyStrategy") @@ -1778,9 +2460,32 @@ def __init__(__self__, *, :param pulumi.Input[int] id: The ID of the user or group. Valid values between `0` and `2147483647` :param pulumi.Input[int] storage_capacity_quota_gib: The amount of storage that the user or group can use in gibibytes (GiB). Valid values between `0` and `2147483647` """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "storage_capacity_quota_gib", storage_capacity_quota_gib) - pulumi.set(__self__, "type", type) + OpenZfsVolumeUserAndGroupQuotaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + storage_capacity_quota_gib=storage_capacity_quota_gib, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[int]] = None, + storage_capacity_quota_gib: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if storage_capacity_quota_gib is None and 'storageCapacityQuotaGib' in kwargs: + storage_capacity_quota_gib = kwargs['storageCapacityQuotaGib'] + if storage_capacity_quota_gib is None: + raise TypeError("Missing 'storage_capacity_quota_gib' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("id", id) + _setter("storage_capacity_quota_gib", storage_capacity_quota_gib) + _setter("type", type) @property @pulumi.getter @@ -1827,12 +2532,33 @@ def __init__(__self__, *, :param pulumi.Input[str] file_access_audit_log_level: Sets which attempt type is logged by Amazon FSx for file and folder accesses. Valid values are `SUCCESS_ONLY`, `FAILURE_ONLY`, `SUCCESS_AND_FAILURE`, and `DISABLED`. Default value is `DISABLED`. :param pulumi.Input[str] file_share_access_audit_log_level: Sets which attempt type is logged by Amazon FSx for file share accesses. Valid values are `SUCCESS_ONLY`, `FAILURE_ONLY`, `SUCCESS_AND_FAILURE`, and `DISABLED`. Default value is `DISABLED`. """ + WindowsFileSystemAuditLogConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit_log_destination=audit_log_destination, + file_access_audit_log_level=file_access_audit_log_level, + file_share_access_audit_log_level=file_share_access_audit_log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit_log_destination: Optional[pulumi.Input[str]] = None, + file_access_audit_log_level: Optional[pulumi.Input[str]] = None, + file_share_access_audit_log_level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_log_destination is None and 'auditLogDestination' in kwargs: + audit_log_destination = kwargs['auditLogDestination'] + if file_access_audit_log_level is None and 'fileAccessAuditLogLevel' in kwargs: + file_access_audit_log_level = kwargs['fileAccessAuditLogLevel'] + if file_share_access_audit_log_level is None and 'fileShareAccessAuditLogLevel' in kwargs: + file_share_access_audit_log_level = kwargs['fileShareAccessAuditLogLevel'] + if audit_log_destination is not None: - pulumi.set(__self__, "audit_log_destination", audit_log_destination) + _setter("audit_log_destination", audit_log_destination) if file_access_audit_log_level is not None: - pulumi.set(__self__, "file_access_audit_log_level", file_access_audit_log_level) + _setter("file_access_audit_log_level", file_access_audit_log_level) if file_share_access_audit_log_level is not None: - pulumi.set(__self__, "file_share_access_audit_log_level", file_share_access_audit_log_level) + _setter("file_share_access_audit_log_level", file_share_access_audit_log_level) @property @pulumi.getter(name="auditLogDestination") @@ -1880,10 +2606,23 @@ def __init__(__self__, *, :param pulumi.Input[int] iops: The total number of SSD IOPS provisioned for the file system. :param pulumi.Input[str] mode: Specifies whether the number of IOPS for the file system is using the system. Valid values are `AUTOMATIC` and `USER_PROVISIONED`. Default value is `AUTOMATIC`. """ + WindowsFileSystemDiskIopsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iops=iops, + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iops: Optional[pulumi.Input[int]] = None, + mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) @property @pulumi.getter @@ -1927,14 +2666,51 @@ def __init__(__self__, *, :param pulumi.Input[str] file_system_administrators_group: The name of the domain group whose members are granted administrative privileges for the file system. Administrative privileges include taking ownership of files and folders, and setting audit controls (audit ACLs) on files and folders. The group that you specify must already exist in your domain. Defaults to `Domain Admins`. :param pulumi.Input[str] organizational_unit_distinguished_name: The fully qualified distinguished name of the organizational unit within your self-managed AD directory that the Windows File Server instance will join. For example, `OU=FSx,DC=yourdomain,DC=corp,DC=com`. Only accepts OU as the direct parent of the file system. If none is provided, the FSx file system is created in the default location of your self-managed AD directory. To learn more, see [RFC 2253](https://tools.ietf.org/html/rfc2253). """ - pulumi.set(__self__, "dns_ips", dns_ips) - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + WindowsFileSystemSelfManagedActiveDirectoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_ips=dns_ips, + domain_name=domain_name, + password=password, + username=username, + file_system_administrators_group=file_system_administrators_group, + organizational_unit_distinguished_name=organizational_unit_distinguished_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + file_system_administrators_group: Optional[pulumi.Input[str]] = None, + organizational_unit_distinguished_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_ips is None and 'dnsIps' in kwargs: + dns_ips = kwargs['dnsIps'] + if dns_ips is None: + raise TypeError("Missing 'dns_ips' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if file_system_administrators_group is None and 'fileSystemAdministratorsGroup' in kwargs: + file_system_administrators_group = kwargs['fileSystemAdministratorsGroup'] + if organizational_unit_distinguished_name is None and 'organizationalUnitDistinguishedName' in kwargs: + organizational_unit_distinguished_name = kwargs['organizationalUnitDistinguishedName'] + + _setter("dns_ips", dns_ips) + _setter("domain_name", domain_name) + _setter("password", password) + _setter("username", username) if file_system_administrators_group is not None: - pulumi.set(__self__, "file_system_administrators_group", file_system_administrators_group) + _setter("file_system_administrators_group", file_system_administrators_group) if organizational_unit_distinguished_name is not None: - pulumi.set(__self__, "organizational_unit_distinguished_name", organizational_unit_distinguished_name) + _setter("organizational_unit_distinguished_name", organizational_unit_distinguished_name) @property @pulumi.getter(name="dnsIps") @@ -2018,8 +2794,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/fsx/latest/APIReference/API_StorageVirtualMachineFilter.html). :param Sequence[str] values: Set of values that are accepted for the given field. An SVM will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetOntapStorageVirtualMachineFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -2055,8 +2848,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/fsx/latest/APIReference/API_StorageVirtualMachineFilter.html). :param Sequence[str] values: Set of values that are accepted for the given field. An SVM will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetOntapStorageVirtualMachinesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -2091,8 +2901,25 @@ def __init__(__self__, *, """ :param str name: Name of the snapshot. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetOpenZfsSnapshotFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/fsx/backup.py b/sdk/python/pulumi_aws/fsx/backup.py index 71d7b657c58..4f1ded3d520 100644 --- a/sdk/python/pulumi_aws/fsx/backup.py +++ b/sdk/python/pulumi_aws/fsx/backup.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BackupArgs', 'Backup'] @@ -23,12 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. If you have set `copy_tags_to_backups` to true, and you specify one or more tags, no existing file system tags are copied from the file system to the backup. :param pulumi.Input[str] volume_id: The ID of the volume to back up. Required if backing up a ONTAP Volume. """ + BackupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + tags=tags, + volume_id=volume_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) @property @pulumi.getter(name="fileSystemId") @@ -89,25 +108,60 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of the file system backup. :param pulumi.Input[str] volume_id: The ID of the volume to back up. Required if backing up a ONTAP Volume. """ + _BackupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + file_system_id=file_system_id, + kms_key_id=kms_key_id, + owner_id=owner_id, + tags=tags, + tags_all=tags_all, + type=type, + volume_id=volume_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) @property @pulumi.getter @@ -376,6 +430,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BackupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/fsx/data_repository_association.py b/sdk/python/pulumi_aws/fsx/data_repository_association.py index d9881613da4..9782f1eb52f 100644 --- a/sdk/python/pulumi_aws/fsx/data_repository_association.py +++ b/sdk/python/pulumi_aws/fsx/data_repository_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -36,19 +36,62 @@ def __init__(__self__, *, The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the data repository association. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "data_repository_path", data_repository_path) - pulumi.set(__self__, "file_system_id", file_system_id) - pulumi.set(__self__, "file_system_path", file_system_path) + DataRepositoryAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_repository_path=data_repository_path, + file_system_id=file_system_id, + file_system_path=file_system_path, + batch_import_meta_data_on_create=batch_import_meta_data_on_create, + delete_data_in_filesystem=delete_data_in_filesystem, + imported_file_chunk_size=imported_file_chunk_size, + s3=s3, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_repository_path: Optional[pulumi.Input[str]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + file_system_path: Optional[pulumi.Input[str]] = None, + batch_import_meta_data_on_create: Optional[pulumi.Input[bool]] = None, + delete_data_in_filesystem: Optional[pulumi.Input[bool]] = None, + imported_file_chunk_size: Optional[pulumi.Input[int]] = None, + s3: Optional[pulumi.Input['DataRepositoryAssociationS3Args']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_repository_path is None and 'dataRepositoryPath' in kwargs: + data_repository_path = kwargs['dataRepositoryPath'] + if data_repository_path is None: + raise TypeError("Missing 'data_repository_path' argument") + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + if file_system_path is None and 'fileSystemPath' in kwargs: + file_system_path = kwargs['fileSystemPath'] + if file_system_path is None: + raise TypeError("Missing 'file_system_path' argument") + if batch_import_meta_data_on_create is None and 'batchImportMetaDataOnCreate' in kwargs: + batch_import_meta_data_on_create = kwargs['batchImportMetaDataOnCreate'] + if delete_data_in_filesystem is None and 'deleteDataInFilesystem' in kwargs: + delete_data_in_filesystem = kwargs['deleteDataInFilesystem'] + if imported_file_chunk_size is None and 'importedFileChunkSize' in kwargs: + imported_file_chunk_size = kwargs['importedFileChunkSize'] + + _setter("data_repository_path", data_repository_path) + _setter("file_system_id", file_system_id) + _setter("file_system_path", file_system_path) if batch_import_meta_data_on_create is not None: - pulumi.set(__self__, "batch_import_meta_data_on_create", batch_import_meta_data_on_create) + _setter("batch_import_meta_data_on_create", batch_import_meta_data_on_create) if delete_data_in_filesystem is not None: - pulumi.set(__self__, "delete_data_in_filesystem", delete_data_in_filesystem) + _setter("delete_data_in_filesystem", delete_data_in_filesystem) if imported_file_chunk_size is not None: - pulumi.set(__self__, "imported_file_chunk_size", imported_file_chunk_size) + _setter("imported_file_chunk_size", imported_file_chunk_size) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dataRepositoryPath") @@ -176,31 +219,78 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the data repository association. 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. """ + _DataRepositoryAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + association_id=association_id, + batch_import_meta_data_on_create=batch_import_meta_data_on_create, + data_repository_path=data_repository_path, + delete_data_in_filesystem=delete_data_in_filesystem, + file_system_id=file_system_id, + file_system_path=file_system_path, + imported_file_chunk_size=imported_file_chunk_size, + s3=s3, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + association_id: Optional[pulumi.Input[str]] = None, + batch_import_meta_data_on_create: Optional[pulumi.Input[bool]] = None, + data_repository_path: Optional[pulumi.Input[str]] = None, + delete_data_in_filesystem: Optional[pulumi.Input[bool]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + file_system_path: Optional[pulumi.Input[str]] = None, + imported_file_chunk_size: Optional[pulumi.Input[int]] = None, + s3: Optional[pulumi.Input['DataRepositoryAssociationS3Args']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if batch_import_meta_data_on_create is None and 'batchImportMetaDataOnCreate' in kwargs: + batch_import_meta_data_on_create = kwargs['batchImportMetaDataOnCreate'] + if data_repository_path is None and 'dataRepositoryPath' in kwargs: + data_repository_path = kwargs['dataRepositoryPath'] + if delete_data_in_filesystem is None and 'deleteDataInFilesystem' in kwargs: + delete_data_in_filesystem = kwargs['deleteDataInFilesystem'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_path is None and 'fileSystemPath' in kwargs: + file_system_path = kwargs['fileSystemPath'] + if imported_file_chunk_size is None and 'importedFileChunkSize' in kwargs: + imported_file_chunk_size = kwargs['importedFileChunkSize'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if association_id is not None: - pulumi.set(__self__, "association_id", association_id) + _setter("association_id", association_id) if batch_import_meta_data_on_create is not None: - pulumi.set(__self__, "batch_import_meta_data_on_create", batch_import_meta_data_on_create) + _setter("batch_import_meta_data_on_create", batch_import_meta_data_on_create) if data_repository_path is not None: - pulumi.set(__self__, "data_repository_path", data_repository_path) + _setter("data_repository_path", data_repository_path) if delete_data_in_filesystem is not None: - pulumi.set(__self__, "delete_data_in_filesystem", delete_data_in_filesystem) + _setter("delete_data_in_filesystem", delete_data_in_filesystem) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if file_system_path is not None: - pulumi.set(__self__, "file_system_path", file_system_path) + _setter("file_system_path", file_system_path) if imported_file_chunk_size is not None: - pulumi.set(__self__, "imported_file_chunk_size", imported_file_chunk_size) + _setter("imported_file_chunk_size", imported_file_chunk_size) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -478,6 +568,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataRepositoryAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -512,6 +606,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'file_system_path'") __props__.__dict__["file_system_path"] = file_system_path __props__.__dict__["imported_file_chunk_size"] = imported_file_chunk_size + s3 = _utilities.configure(s3, DataRepositoryAssociationS3Args, True) __props__.__dict__["s3"] = s3 __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/fsx/file_cache.py b/sdk/python/pulumi_aws/fsx/file_cache.py index e264e77d416..9f366eb0a10 100644 --- a/sdk/python/pulumi_aws/fsx/file_cache.py +++ b/sdk/python/pulumi_aws/fsx/file_cache.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -42,22 +42,77 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A list of IDs specifying the security groups to apply to all network interfaces created for Amazon File Cache access. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file cache. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "file_cache_type", file_cache_type) - pulumi.set(__self__, "file_cache_type_version", file_cache_type_version) - pulumi.set(__self__, "storage_capacity", storage_capacity) - pulumi.set(__self__, "subnet_ids", subnet_ids) + FileCacheArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_cache_type=file_cache_type, + file_cache_type_version=file_cache_type_version, + storage_capacity=storage_capacity, + subnet_ids=subnet_ids, + copy_tags_to_data_repository_associations=copy_tags_to_data_repository_associations, + data_repository_associations=data_repository_associations, + kms_key_id=kms_key_id, + lustre_configurations=lustre_configurations, + security_group_ids=security_group_ids, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_cache_type: Optional[pulumi.Input[str]] = None, + file_cache_type_version: Optional[pulumi.Input[str]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + copy_tags_to_data_repository_associations: Optional[pulumi.Input[bool]] = None, + data_repository_associations: Optional[pulumi.Input[Sequence[pulumi.Input['FileCacheDataRepositoryAssociationArgs']]]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + lustre_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['FileCacheLustreConfigurationArgs']]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_cache_type is None and 'fileCacheType' in kwargs: + file_cache_type = kwargs['fileCacheType'] + if file_cache_type is None: + raise TypeError("Missing 'file_cache_type' argument") + if file_cache_type_version is None and 'fileCacheTypeVersion' in kwargs: + file_cache_type_version = kwargs['fileCacheTypeVersion'] + if file_cache_type_version is None: + raise TypeError("Missing 'file_cache_type_version' argument") + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_capacity is None: + raise TypeError("Missing 'storage_capacity' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if copy_tags_to_data_repository_associations is None and 'copyTagsToDataRepositoryAssociations' in kwargs: + copy_tags_to_data_repository_associations = kwargs['copyTagsToDataRepositoryAssociations'] + if data_repository_associations is None and 'dataRepositoryAssociations' in kwargs: + data_repository_associations = kwargs['dataRepositoryAssociations'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if lustre_configurations is None and 'lustreConfigurations' in kwargs: + lustre_configurations = kwargs['lustreConfigurations'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("file_cache_type", file_cache_type) + _setter("file_cache_type_version", file_cache_type_version) + _setter("storage_capacity", storage_capacity) + _setter("subnet_ids", subnet_ids) if copy_tags_to_data_repository_associations is not None: - pulumi.set(__self__, "copy_tags_to_data_repository_associations", copy_tags_to_data_repository_associations) + _setter("copy_tags_to_data_repository_associations", copy_tags_to_data_repository_associations) if data_repository_associations is not None: - pulumi.set(__self__, "data_repository_associations", data_repository_associations) + _setter("data_repository_associations", data_repository_associations) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if lustre_configurations is not None: - pulumi.set(__self__, "lustre_configurations", lustre_configurations) + _setter("lustre_configurations", lustre_configurations) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="fileCacheType") @@ -226,45 +281,122 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file cache. 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] vpc_id: The ID of your virtual private cloud (VPC). """ + _FileCacheState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + copy_tags_to_data_repository_associations=copy_tags_to_data_repository_associations, + data_repository_association_ids=data_repository_association_ids, + data_repository_associations=data_repository_associations, + dns_name=dns_name, + file_cache_id=file_cache_id, + file_cache_type=file_cache_type, + file_cache_type_version=file_cache_type_version, + kms_key_id=kms_key_id, + lustre_configurations=lustre_configurations, + network_interface_ids=network_interface_ids, + owner_id=owner_id, + security_group_ids=security_group_ids, + storage_capacity=storage_capacity, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + copy_tags_to_data_repository_associations: Optional[pulumi.Input[bool]] = None, + data_repository_association_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + data_repository_associations: Optional[pulumi.Input[Sequence[pulumi.Input['FileCacheDataRepositoryAssociationArgs']]]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + file_cache_id: Optional[pulumi.Input[str]] = None, + file_cache_type: Optional[pulumi.Input[str]] = None, + file_cache_type_version: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + lustre_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['FileCacheLustreConfigurationArgs']]]] = None, + network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copy_tags_to_data_repository_associations is None and 'copyTagsToDataRepositoryAssociations' in kwargs: + copy_tags_to_data_repository_associations = kwargs['copyTagsToDataRepositoryAssociations'] + if data_repository_association_ids is None and 'dataRepositoryAssociationIds' in kwargs: + data_repository_association_ids = kwargs['dataRepositoryAssociationIds'] + if data_repository_associations is None and 'dataRepositoryAssociations' in kwargs: + data_repository_associations = kwargs['dataRepositoryAssociations'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if file_cache_id is None and 'fileCacheId' in kwargs: + file_cache_id = kwargs['fileCacheId'] + if file_cache_type is None and 'fileCacheType' in kwargs: + file_cache_type = kwargs['fileCacheType'] + if file_cache_type_version is None and 'fileCacheTypeVersion' in kwargs: + file_cache_type_version = kwargs['fileCacheTypeVersion'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if lustre_configurations is None and 'lustreConfigurations' in kwargs: + lustre_configurations = kwargs['lustreConfigurations'] + if network_interface_ids is None and 'networkInterfaceIds' in kwargs: + network_interface_ids = kwargs['networkInterfaceIds'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if copy_tags_to_data_repository_associations is not None: - pulumi.set(__self__, "copy_tags_to_data_repository_associations", copy_tags_to_data_repository_associations) + _setter("copy_tags_to_data_repository_associations", copy_tags_to_data_repository_associations) if data_repository_association_ids is not None: - pulumi.set(__self__, "data_repository_association_ids", data_repository_association_ids) + _setter("data_repository_association_ids", data_repository_association_ids) if data_repository_associations is not None: - pulumi.set(__self__, "data_repository_associations", data_repository_associations) + _setter("data_repository_associations", data_repository_associations) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if file_cache_id is not None: - pulumi.set(__self__, "file_cache_id", file_cache_id) + _setter("file_cache_id", file_cache_id) if file_cache_type is not None: - pulumi.set(__self__, "file_cache_type", file_cache_type) + _setter("file_cache_type", file_cache_type) if file_cache_type_version is not None: - pulumi.set(__self__, "file_cache_type_version", file_cache_type_version) + _setter("file_cache_type_version", file_cache_type_version) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if lustre_configurations is not None: - pulumi.set(__self__, "lustre_configurations", lustre_configurations) + _setter("lustre_configurations", lustre_configurations) if network_interface_ids is not None: - pulumi.set(__self__, "network_interface_ids", network_interface_ids) + _setter("network_interface_ids", network_interface_ids) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if storage_capacity is not None: - pulumi.set(__self__, "storage_capacity", storage_capacity) + _setter("storage_capacity", storage_capacity) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -627,6 +759,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FileCacheArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/fsx/get_ontap_file_system.py b/sdk/python/pulumi_aws/fsx/get_ontap_file_system.py index 11971266884..5d52f0be1a7 100644 --- a/sdk/python/pulumi_aws/fsx/get_ontap_file_system.py +++ b/sdk/python/pulumi_aws/fsx/get_ontap_file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/fsx/get_ontap_storage_virtual_machine.py b/sdk/python/pulumi_aws/fsx/get_ontap_storage_virtual_machine.py index d6f55e6eb01..f701e8746b5 100644 --- a/sdk/python/pulumi_aws/fsx/get_ontap_storage_virtual_machine.py +++ b/sdk/python/pulumi_aws/fsx/get_ontap_storage_virtual_machine.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/fsx/get_ontap_storage_virtual_machines.py b/sdk/python/pulumi_aws/fsx/get_ontap_storage_virtual_machines.py index b0ad75ee90b..3cbbac0f572 100644 --- a/sdk/python/pulumi_aws/fsx/get_ontap_storage_virtual_machines.py +++ b/sdk/python/pulumi_aws/fsx/get_ontap_storage_virtual_machines.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/fsx/get_open_zfs_snapshot.py b/sdk/python/pulumi_aws/fsx/get_open_zfs_snapshot.py index 1a0eb34a19f..a1c312ae6ca 100644 --- a/sdk/python/pulumi_aws/fsx/get_open_zfs_snapshot.py +++ b/sdk/python/pulumi_aws/fsx/get_open_zfs_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/fsx/get_windows_file_system.py b/sdk/python/pulumi_aws/fsx/get_windows_file_system.py index b977e76efd5..48b406fdac4 100644 --- a/sdk/python/pulumi_aws/fsx/get_windows_file_system.py +++ b/sdk/python/pulumi_aws/fsx/get_windows_file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/fsx/lustre_file_system.py b/sdk/python/pulumi_aws/fsx/lustre_file_system.py index d7d7b5175cd..171b9fa4d5e 100644 --- a/sdk/python/pulumi_aws/fsx/lustre_file_system.py +++ b/sdk/python/pulumi_aws/fsx/lustre_file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -63,49 +63,146 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + LustreFileSystemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + auto_import_policy=auto_import_policy, + automatic_backup_retention_days=automatic_backup_retention_days, + backup_id=backup_id, + copy_tags_to_backups=copy_tags_to_backups, + daily_automatic_backup_start_time=daily_automatic_backup_start_time, + data_compression_type=data_compression_type, + deployment_type=deployment_type, + drive_cache_type=drive_cache_type, + export_path=export_path, + file_system_type_version=file_system_type_version, + import_path=import_path, + imported_file_chunk_size=imported_file_chunk_size, + kms_key_id=kms_key_id, + log_configuration=log_configuration, + per_unit_storage_throughput=per_unit_storage_throughput, + root_squash_configuration=root_squash_configuration, + security_group_ids=security_group_ids, + storage_capacity=storage_capacity, + storage_type=storage_type, + tags=tags, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[str]] = None, + auto_import_policy: Optional[pulumi.Input[str]] = None, + automatic_backup_retention_days: Optional[pulumi.Input[int]] = None, + backup_id: Optional[pulumi.Input[str]] = None, + copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + data_compression_type: Optional[pulumi.Input[str]] = None, + deployment_type: Optional[pulumi.Input[str]] = None, + drive_cache_type: Optional[pulumi.Input[str]] = None, + export_path: Optional[pulumi.Input[str]] = None, + file_system_type_version: Optional[pulumi.Input[str]] = None, + import_path: Optional[pulumi.Input[str]] = None, + imported_file_chunk_size: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + log_configuration: Optional[pulumi.Input['LustreFileSystemLogConfigurationArgs']] = None, + per_unit_storage_throughput: Optional[pulumi.Input[int]] = None, + root_squash_configuration: Optional[pulumi.Input['LustreFileSystemRootSquashConfigurationArgs']] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + weekly_maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if auto_import_policy is None and 'autoImportPolicy' in kwargs: + auto_import_policy = kwargs['autoImportPolicy'] + if automatic_backup_retention_days is None and 'automaticBackupRetentionDays' in kwargs: + automatic_backup_retention_days = kwargs['automaticBackupRetentionDays'] + if backup_id is None and 'backupId' in kwargs: + backup_id = kwargs['backupId'] + if copy_tags_to_backups is None and 'copyTagsToBackups' in kwargs: + copy_tags_to_backups = kwargs['copyTagsToBackups'] + if daily_automatic_backup_start_time is None and 'dailyAutomaticBackupStartTime' in kwargs: + daily_automatic_backup_start_time = kwargs['dailyAutomaticBackupStartTime'] + if data_compression_type is None and 'dataCompressionType' in kwargs: + data_compression_type = kwargs['dataCompressionType'] + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if drive_cache_type is None and 'driveCacheType' in kwargs: + drive_cache_type = kwargs['driveCacheType'] + if export_path is None and 'exportPath' in kwargs: + export_path = kwargs['exportPath'] + if file_system_type_version is None and 'fileSystemTypeVersion' in kwargs: + file_system_type_version = kwargs['fileSystemTypeVersion'] + if import_path is None and 'importPath' in kwargs: + import_path = kwargs['importPath'] + if imported_file_chunk_size is None and 'importedFileChunkSize' in kwargs: + imported_file_chunk_size = kwargs['importedFileChunkSize'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if log_configuration is None and 'logConfiguration' in kwargs: + log_configuration = kwargs['logConfiguration'] + if per_unit_storage_throughput is None and 'perUnitStorageThroughput' in kwargs: + per_unit_storage_throughput = kwargs['perUnitStorageThroughput'] + if root_squash_configuration is None and 'rootSquashConfiguration' in kwargs: + root_squash_configuration = kwargs['rootSquashConfiguration'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + + _setter("subnet_ids", subnet_ids) if auto_import_policy is not None: - pulumi.set(__self__, "auto_import_policy", auto_import_policy) + _setter("auto_import_policy", auto_import_policy) if automatic_backup_retention_days is not None: - pulumi.set(__self__, "automatic_backup_retention_days", automatic_backup_retention_days) + _setter("automatic_backup_retention_days", automatic_backup_retention_days) if backup_id is not None: - pulumi.set(__self__, "backup_id", backup_id) + _setter("backup_id", backup_id) if copy_tags_to_backups is not None: - pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) + _setter("copy_tags_to_backups", copy_tags_to_backups) if daily_automatic_backup_start_time is not None: - pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + _setter("daily_automatic_backup_start_time", daily_automatic_backup_start_time) if data_compression_type is not None: - pulumi.set(__self__, "data_compression_type", data_compression_type) + _setter("data_compression_type", data_compression_type) if deployment_type is not None: - pulumi.set(__self__, "deployment_type", deployment_type) + _setter("deployment_type", deployment_type) if drive_cache_type is not None: - pulumi.set(__self__, "drive_cache_type", drive_cache_type) + _setter("drive_cache_type", drive_cache_type) if export_path is not None: - pulumi.set(__self__, "export_path", export_path) + _setter("export_path", export_path) if file_system_type_version is not None: - pulumi.set(__self__, "file_system_type_version", file_system_type_version) + _setter("file_system_type_version", file_system_type_version) if import_path is not None: - pulumi.set(__self__, "import_path", import_path) + _setter("import_path", import_path) if imported_file_chunk_size is not None: - pulumi.set(__self__, "imported_file_chunk_size", imported_file_chunk_size) + _setter("imported_file_chunk_size", imported_file_chunk_size) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if log_configuration is not None: - pulumi.set(__self__, "log_configuration", log_configuration) + _setter("log_configuration", log_configuration) if per_unit_storage_throughput is not None: - pulumi.set(__self__, "per_unit_storage_throughput", per_unit_storage_throughput) + _setter("per_unit_storage_throughput", per_unit_storage_throughput) if root_squash_configuration is not None: - pulumi.set(__self__, "root_squash_configuration", root_squash_configuration) + _setter("root_squash_configuration", root_squash_configuration) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if storage_capacity is not None: - pulumi.set(__self__, "storage_capacity", storage_capacity) + _setter("storage_capacity", storage_capacity) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter(name="subnetIds") @@ -436,67 +533,188 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: Identifier of the Virtual Private Cloud for the file system. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ + _LustreFileSystemState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_import_policy=auto_import_policy, + automatic_backup_retention_days=automatic_backup_retention_days, + backup_id=backup_id, + copy_tags_to_backups=copy_tags_to_backups, + daily_automatic_backup_start_time=daily_automatic_backup_start_time, + data_compression_type=data_compression_type, + deployment_type=deployment_type, + dns_name=dns_name, + drive_cache_type=drive_cache_type, + export_path=export_path, + file_system_type_version=file_system_type_version, + import_path=import_path, + imported_file_chunk_size=imported_file_chunk_size, + kms_key_id=kms_key_id, + log_configuration=log_configuration, + mount_name=mount_name, + network_interface_ids=network_interface_ids, + owner_id=owner_id, + per_unit_storage_throughput=per_unit_storage_throughput, + root_squash_configuration=root_squash_configuration, + security_group_ids=security_group_ids, + storage_capacity=storage_capacity, + storage_type=storage_type, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_import_policy: Optional[pulumi.Input[str]] = None, + automatic_backup_retention_days: Optional[pulumi.Input[int]] = None, + backup_id: Optional[pulumi.Input[str]] = None, + copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + data_compression_type: Optional[pulumi.Input[str]] = None, + deployment_type: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + drive_cache_type: Optional[pulumi.Input[str]] = None, + export_path: Optional[pulumi.Input[str]] = None, + file_system_type_version: Optional[pulumi.Input[str]] = None, + import_path: Optional[pulumi.Input[str]] = None, + imported_file_chunk_size: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + log_configuration: Optional[pulumi.Input['LustreFileSystemLogConfigurationArgs']] = None, + mount_name: Optional[pulumi.Input[str]] = None, + network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + per_unit_storage_throughput: Optional[pulumi.Input[int]] = None, + root_squash_configuration: Optional[pulumi.Input['LustreFileSystemRootSquashConfigurationArgs']] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + weekly_maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_import_policy is None and 'autoImportPolicy' in kwargs: + auto_import_policy = kwargs['autoImportPolicy'] + if automatic_backup_retention_days is None and 'automaticBackupRetentionDays' in kwargs: + automatic_backup_retention_days = kwargs['automaticBackupRetentionDays'] + if backup_id is None and 'backupId' in kwargs: + backup_id = kwargs['backupId'] + if copy_tags_to_backups is None and 'copyTagsToBackups' in kwargs: + copy_tags_to_backups = kwargs['copyTagsToBackups'] + if daily_automatic_backup_start_time is None and 'dailyAutomaticBackupStartTime' in kwargs: + daily_automatic_backup_start_time = kwargs['dailyAutomaticBackupStartTime'] + if data_compression_type is None and 'dataCompressionType' in kwargs: + data_compression_type = kwargs['dataCompressionType'] + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if drive_cache_type is None and 'driveCacheType' in kwargs: + drive_cache_type = kwargs['driveCacheType'] + if export_path is None and 'exportPath' in kwargs: + export_path = kwargs['exportPath'] + if file_system_type_version is None and 'fileSystemTypeVersion' in kwargs: + file_system_type_version = kwargs['fileSystemTypeVersion'] + if import_path is None and 'importPath' in kwargs: + import_path = kwargs['importPath'] + if imported_file_chunk_size is None and 'importedFileChunkSize' in kwargs: + imported_file_chunk_size = kwargs['importedFileChunkSize'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if log_configuration is None and 'logConfiguration' in kwargs: + log_configuration = kwargs['logConfiguration'] + if mount_name is None and 'mountName' in kwargs: + mount_name = kwargs['mountName'] + if network_interface_ids is None and 'networkInterfaceIds' in kwargs: + network_interface_ids = kwargs['networkInterfaceIds'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if per_unit_storage_throughput is None and 'perUnitStorageThroughput' in kwargs: + per_unit_storage_throughput = kwargs['perUnitStorageThroughput'] + if root_squash_configuration is None and 'rootSquashConfiguration' in kwargs: + root_squash_configuration = kwargs['rootSquashConfiguration'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_import_policy is not None: - pulumi.set(__self__, "auto_import_policy", auto_import_policy) + _setter("auto_import_policy", auto_import_policy) if automatic_backup_retention_days is not None: - pulumi.set(__self__, "automatic_backup_retention_days", automatic_backup_retention_days) + _setter("automatic_backup_retention_days", automatic_backup_retention_days) if backup_id is not None: - pulumi.set(__self__, "backup_id", backup_id) + _setter("backup_id", backup_id) if copy_tags_to_backups is not None: - pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) + _setter("copy_tags_to_backups", copy_tags_to_backups) if daily_automatic_backup_start_time is not None: - pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + _setter("daily_automatic_backup_start_time", daily_automatic_backup_start_time) if data_compression_type is not None: - pulumi.set(__self__, "data_compression_type", data_compression_type) + _setter("data_compression_type", data_compression_type) if deployment_type is not None: - pulumi.set(__self__, "deployment_type", deployment_type) + _setter("deployment_type", deployment_type) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if drive_cache_type is not None: - pulumi.set(__self__, "drive_cache_type", drive_cache_type) + _setter("drive_cache_type", drive_cache_type) if export_path is not None: - pulumi.set(__self__, "export_path", export_path) + _setter("export_path", export_path) if file_system_type_version is not None: - pulumi.set(__self__, "file_system_type_version", file_system_type_version) + _setter("file_system_type_version", file_system_type_version) if import_path is not None: - pulumi.set(__self__, "import_path", import_path) + _setter("import_path", import_path) if imported_file_chunk_size is not None: - pulumi.set(__self__, "imported_file_chunk_size", imported_file_chunk_size) + _setter("imported_file_chunk_size", imported_file_chunk_size) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if log_configuration is not None: - pulumi.set(__self__, "log_configuration", log_configuration) + _setter("log_configuration", log_configuration) if mount_name is not None: - pulumi.set(__self__, "mount_name", mount_name) + _setter("mount_name", mount_name) if network_interface_ids is not None: - pulumi.set(__self__, "network_interface_ids", network_interface_ids) + _setter("network_interface_ids", network_interface_ids) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if per_unit_storage_throughput is not None: - pulumi.set(__self__, "per_unit_storage_throughput", per_unit_storage_throughput) + _setter("per_unit_storage_throughput", per_unit_storage_throughput) if root_squash_configuration is not None: - pulumi.set(__self__, "root_squash_configuration", root_squash_configuration) + _setter("root_squash_configuration", root_squash_configuration) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if storage_capacity is not None: - pulumi.set(__self__, "storage_capacity", storage_capacity) + _setter("storage_capacity", storage_capacity) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter @@ -971,6 +1189,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LustreFileSystemArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1020,8 +1242,10 @@ def _internal_init(__self__, __props__.__dict__["import_path"] = import_path __props__.__dict__["imported_file_chunk_size"] = imported_file_chunk_size __props__.__dict__["kms_key_id"] = kms_key_id + log_configuration = _utilities.configure(log_configuration, LustreFileSystemLogConfigurationArgs, True) __props__.__dict__["log_configuration"] = log_configuration __props__.__dict__["per_unit_storage_throughput"] = per_unit_storage_throughput + root_squash_configuration = _utilities.configure(root_squash_configuration, LustreFileSystemRootSquashConfigurationArgs, True) __props__.__dict__["root_squash_configuration"] = root_squash_configuration __props__.__dict__["security_group_ids"] = security_group_ids __props__.__dict__["storage_capacity"] = storage_capacity diff --git a/sdk/python/pulumi_aws/fsx/ontap_file_system.py b/sdk/python/pulumi_aws/fsx/ontap_file_system.py index 31ff73fcf91..3b5d3f58cce 100644 --- a/sdk/python/pulumi_aws/fsx/ontap_file_system.py +++ b/sdk/python/pulumi_aws/fsx/ontap_file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -51,34 +51,113 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ - pulumi.set(__self__, "deployment_type", deployment_type) - pulumi.set(__self__, "preferred_subnet_id", preferred_subnet_id) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "throughput_capacity", throughput_capacity) + OntapFileSystemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment_type=deployment_type, + preferred_subnet_id=preferred_subnet_id, + subnet_ids=subnet_ids, + throughput_capacity=throughput_capacity, + automatic_backup_retention_days=automatic_backup_retention_days, + daily_automatic_backup_start_time=daily_automatic_backup_start_time, + disk_iops_configuration=disk_iops_configuration, + endpoint_ip_address_range=endpoint_ip_address_range, + fsx_admin_password=fsx_admin_password, + kms_key_id=kms_key_id, + route_table_ids=route_table_ids, + security_group_ids=security_group_ids, + storage_capacity=storage_capacity, + storage_type=storage_type, + tags=tags, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment_type: Optional[pulumi.Input[str]] = None, + preferred_subnet_id: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + throughput_capacity: Optional[pulumi.Input[int]] = None, + automatic_backup_retention_days: Optional[pulumi.Input[int]] = None, + daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + disk_iops_configuration: Optional[pulumi.Input['OntapFileSystemDiskIopsConfigurationArgs']] = None, + endpoint_ip_address_range: Optional[pulumi.Input[str]] = None, + fsx_admin_password: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + weekly_maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if deployment_type is None: + raise TypeError("Missing 'deployment_type' argument") + if preferred_subnet_id is None and 'preferredSubnetId' in kwargs: + preferred_subnet_id = kwargs['preferredSubnetId'] + if preferred_subnet_id is None: + raise TypeError("Missing 'preferred_subnet_id' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if throughput_capacity is None and 'throughputCapacity' in kwargs: + throughput_capacity = kwargs['throughputCapacity'] + if throughput_capacity is None: + raise TypeError("Missing 'throughput_capacity' argument") + if automatic_backup_retention_days is None and 'automaticBackupRetentionDays' in kwargs: + automatic_backup_retention_days = kwargs['automaticBackupRetentionDays'] + if daily_automatic_backup_start_time is None and 'dailyAutomaticBackupStartTime' in kwargs: + daily_automatic_backup_start_time = kwargs['dailyAutomaticBackupStartTime'] + if disk_iops_configuration is None and 'diskIopsConfiguration' in kwargs: + disk_iops_configuration = kwargs['diskIopsConfiguration'] + if endpoint_ip_address_range is None and 'endpointIpAddressRange' in kwargs: + endpoint_ip_address_range = kwargs['endpointIpAddressRange'] + if fsx_admin_password is None and 'fsxAdminPassword' in kwargs: + fsx_admin_password = kwargs['fsxAdminPassword'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if route_table_ids is None and 'routeTableIds' in kwargs: + route_table_ids = kwargs['routeTableIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + + _setter("deployment_type", deployment_type) + _setter("preferred_subnet_id", preferred_subnet_id) + _setter("subnet_ids", subnet_ids) + _setter("throughput_capacity", throughput_capacity) if automatic_backup_retention_days is not None: - pulumi.set(__self__, "automatic_backup_retention_days", automatic_backup_retention_days) + _setter("automatic_backup_retention_days", automatic_backup_retention_days) if daily_automatic_backup_start_time is not None: - pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + _setter("daily_automatic_backup_start_time", daily_automatic_backup_start_time) if disk_iops_configuration is not None: - pulumi.set(__self__, "disk_iops_configuration", disk_iops_configuration) + _setter("disk_iops_configuration", disk_iops_configuration) if endpoint_ip_address_range is not None: - pulumi.set(__self__, "endpoint_ip_address_range", endpoint_ip_address_range) + _setter("endpoint_ip_address_range", endpoint_ip_address_range) if fsx_admin_password is not None: - pulumi.set(__self__, "fsx_admin_password", fsx_admin_password) + _setter("fsx_admin_password", fsx_admin_password) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if route_table_ids is not None: - pulumi.set(__self__, "route_table_ids", route_table_ids) + _setter("route_table_ids", route_table_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if storage_capacity is not None: - pulumi.set(__self__, "storage_capacity", storage_capacity) + _setter("storage_capacity", storage_capacity) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter(name="deploymentType") @@ -325,55 +404,150 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: Identifier of the Virtual Private Cloud for the file system. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ + _OntapFileSystemState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + automatic_backup_retention_days=automatic_backup_retention_days, + daily_automatic_backup_start_time=daily_automatic_backup_start_time, + deployment_type=deployment_type, + disk_iops_configuration=disk_iops_configuration, + dns_name=dns_name, + endpoint_ip_address_range=endpoint_ip_address_range, + endpoints=endpoints, + fsx_admin_password=fsx_admin_password, + kms_key_id=kms_key_id, + network_interface_ids=network_interface_ids, + owner_id=owner_id, + preferred_subnet_id=preferred_subnet_id, + route_table_ids=route_table_ids, + security_group_ids=security_group_ids, + storage_capacity=storage_capacity, + storage_type=storage_type, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + throughput_capacity=throughput_capacity, + vpc_id=vpc_id, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + automatic_backup_retention_days: Optional[pulumi.Input[int]] = None, + daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + deployment_type: Optional[pulumi.Input[str]] = None, + disk_iops_configuration: Optional[pulumi.Input['OntapFileSystemDiskIopsConfigurationArgs']] = None, + dns_name: Optional[pulumi.Input[str]] = None, + endpoint_ip_address_range: Optional[pulumi.Input[str]] = None, + endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['OntapFileSystemEndpointArgs']]]] = None, + fsx_admin_password: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + preferred_subnet_id: Optional[pulumi.Input[str]] = None, + route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_capacity: Optional[pulumi.Input[int]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + weekly_maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automatic_backup_retention_days is None and 'automaticBackupRetentionDays' in kwargs: + automatic_backup_retention_days = kwargs['automaticBackupRetentionDays'] + if daily_automatic_backup_start_time is None and 'dailyAutomaticBackupStartTime' in kwargs: + daily_automatic_backup_start_time = kwargs['dailyAutomaticBackupStartTime'] + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if disk_iops_configuration is None and 'diskIopsConfiguration' in kwargs: + disk_iops_configuration = kwargs['diskIopsConfiguration'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if endpoint_ip_address_range is None and 'endpointIpAddressRange' in kwargs: + endpoint_ip_address_range = kwargs['endpointIpAddressRange'] + if fsx_admin_password is None and 'fsxAdminPassword' in kwargs: + fsx_admin_password = kwargs['fsxAdminPassword'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if network_interface_ids is None and 'networkInterfaceIds' in kwargs: + network_interface_ids = kwargs['networkInterfaceIds'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if preferred_subnet_id is None and 'preferredSubnetId' in kwargs: + preferred_subnet_id = kwargs['preferredSubnetId'] + if route_table_ids is None and 'routeTableIds' in kwargs: + route_table_ids = kwargs['routeTableIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if throughput_capacity is None and 'throughputCapacity' in kwargs: + throughput_capacity = kwargs['throughputCapacity'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if automatic_backup_retention_days is not None: - pulumi.set(__self__, "automatic_backup_retention_days", automatic_backup_retention_days) + _setter("automatic_backup_retention_days", automatic_backup_retention_days) if daily_automatic_backup_start_time is not None: - pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + _setter("daily_automatic_backup_start_time", daily_automatic_backup_start_time) if deployment_type is not None: - pulumi.set(__self__, "deployment_type", deployment_type) + _setter("deployment_type", deployment_type) if disk_iops_configuration is not None: - pulumi.set(__self__, "disk_iops_configuration", disk_iops_configuration) + _setter("disk_iops_configuration", disk_iops_configuration) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if endpoint_ip_address_range is not None: - pulumi.set(__self__, "endpoint_ip_address_range", endpoint_ip_address_range) + _setter("endpoint_ip_address_range", endpoint_ip_address_range) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if fsx_admin_password is not None: - pulumi.set(__self__, "fsx_admin_password", fsx_admin_password) + _setter("fsx_admin_password", fsx_admin_password) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if network_interface_ids is not None: - pulumi.set(__self__, "network_interface_ids", network_interface_ids) + _setter("network_interface_ids", network_interface_ids) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if preferred_subnet_id is not None: - pulumi.set(__self__, "preferred_subnet_id", preferred_subnet_id) + _setter("preferred_subnet_id", preferred_subnet_id) if route_table_ids is not None: - pulumi.set(__self__, "route_table_ids", route_table_ids) + _setter("route_table_ids", route_table_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if storage_capacity is not None: - pulumi.set(__self__, "storage_capacity", storage_capacity) + _setter("storage_capacity", storage_capacity) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if throughput_capacity is not None: - pulumi.set(__self__, "throughput_capacity", throughput_capacity) + _setter("throughput_capacity", throughput_capacity) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter @@ -772,6 +946,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OntapFileSystemArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -807,6 +985,7 @@ def _internal_init(__self__, if deployment_type is None and not opts.urn: raise TypeError("Missing required property 'deployment_type'") __props__.__dict__["deployment_type"] = deployment_type + disk_iops_configuration = _utilities.configure(disk_iops_configuration, OntapFileSystemDiskIopsConfigurationArgs, True) __props__.__dict__["disk_iops_configuration"] = disk_iops_configuration __props__.__dict__["endpoint_ip_address_range"] = endpoint_ip_address_range __props__.__dict__["fsx_admin_password"] = None if fsx_admin_password is None else pulumi.Output.secret(fsx_admin_password) diff --git a/sdk/python/pulumi_aws/fsx/ontap_storage_virtual_machine.py b/sdk/python/pulumi_aws/fsx/ontap_storage_virtual_machine.py index 01d89b0e88a..ca8c5984f02 100644 --- a/sdk/python/pulumi_aws/fsx/ontap_storage_virtual_machine.py +++ b/sdk/python/pulumi_aws/fsx/ontap_storage_virtual_machine.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -30,17 +30,48 @@ def __init__(__self__, *, :param pulumi.Input[str] root_volume_security_style: Specifies the root volume security style, Valid values are `UNIX`, `NTFS`, and `MIXED`. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is `UNIX`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the storage virtual machine. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "file_system_id", file_system_id) + OntapStorageVirtualMachineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + active_directory_configuration=active_directory_configuration, + name=name, + root_volume_security_style=root_volume_security_style, + svm_admin_password=svm_admin_password, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + active_directory_configuration: Optional[pulumi.Input['OntapStorageVirtualMachineActiveDirectoryConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + root_volume_security_style: Optional[pulumi.Input[str]] = None, + svm_admin_password: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is None: + raise TypeError("Missing 'file_system_id' argument") + if active_directory_configuration is None and 'activeDirectoryConfiguration' in kwargs: + active_directory_configuration = kwargs['activeDirectoryConfiguration'] + if root_volume_security_style is None and 'rootVolumeSecurityStyle' in kwargs: + root_volume_security_style = kwargs['rootVolumeSecurityStyle'] + if svm_admin_password is None and 'svmAdminPassword' in kwargs: + svm_admin_password = kwargs['svmAdminPassword'] + + _setter("file_system_id", file_system_id) if active_directory_configuration is not None: - pulumi.set(__self__, "active_directory_configuration", active_directory_configuration) + _setter("active_directory_configuration", active_directory_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if root_volume_security_style is not None: - pulumi.set(__self__, "root_volume_security_style", root_volume_security_style) + _setter("root_volume_security_style", root_volume_security_style) if svm_admin_password is not None: - pulumi.set(__self__, "svm_admin_password", svm_admin_password) + _setter("svm_admin_password", svm_admin_password) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="fileSystemId") @@ -139,31 +170,72 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] uuid: The SVM's UUID (universally unique identifier). """ + _OntapStorageVirtualMachineState._configure( + lambda key, value: pulumi.set(__self__, key, value), + active_directory_configuration=active_directory_configuration, + arn=arn, + endpoints=endpoints, + file_system_id=file_system_id, + name=name, + root_volume_security_style=root_volume_security_style, + subtype=subtype, + svm_admin_password=svm_admin_password, + tags=tags, + tags_all=tags_all, + uuid=uuid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active_directory_configuration: Optional[pulumi.Input['OntapStorageVirtualMachineActiveDirectoryConfigurationArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['OntapStorageVirtualMachineEndpointArgs']]]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + root_volume_security_style: Optional[pulumi.Input[str]] = None, + subtype: Optional[pulumi.Input[str]] = None, + svm_admin_password: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uuid: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active_directory_configuration is None and 'activeDirectoryConfiguration' in kwargs: + active_directory_configuration = kwargs['activeDirectoryConfiguration'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if root_volume_security_style is None and 'rootVolumeSecurityStyle' in kwargs: + root_volume_security_style = kwargs['rootVolumeSecurityStyle'] + if svm_admin_password is None and 'svmAdminPassword' in kwargs: + svm_admin_password = kwargs['svmAdminPassword'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if active_directory_configuration is not None: - pulumi.set(__self__, "active_directory_configuration", active_directory_configuration) + _setter("active_directory_configuration", active_directory_configuration) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if root_volume_security_style is not None: - pulumi.set(__self__, "root_volume_security_style", root_volume_security_style) + _setter("root_volume_security_style", root_volume_security_style) if subtype is not None: - pulumi.set(__self__, "subtype", subtype) + _setter("subtype", subtype) if svm_admin_password is not None: - pulumi.set(__self__, "svm_admin_password", svm_admin_password) + _setter("svm_admin_password", svm_admin_password) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if uuid is not None: - pulumi.set(__self__, "uuid", uuid) + _setter("uuid", uuid) @property @pulumi.getter(name="activeDirectoryConfiguration") @@ -426,6 +498,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OntapStorageVirtualMachineArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -446,6 +522,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = OntapStorageVirtualMachineArgs.__new__(OntapStorageVirtualMachineArgs) + active_directory_configuration = _utilities.configure(active_directory_configuration, OntapStorageVirtualMachineActiveDirectoryConfigurationArgs, True) __props__.__dict__["active_directory_configuration"] = active_directory_configuration if file_system_id is None and not opts.urn: raise TypeError("Missing required property 'file_system_id'") diff --git a/sdk/python/pulumi_aws/fsx/ontap_volume.py b/sdk/python/pulumi_aws/fsx/ontap_volume.py index 00a875f5d16..074bede82ec 100644 --- a/sdk/python/pulumi_aws/fsx/ontap_volume.py +++ b/sdk/python/pulumi_aws/fsx/ontap_volume.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -49,34 +49,103 @@ def __init__(__self__, *, :param pulumi.Input['OntapVolumeTieringPolicyArgs'] tiering_policy: The data tiering policy for an FSx for ONTAP volume. See Tiering Policy below. :param pulumi.Input[str] volume_type: The type of volume, currently the only valid value is `ONTAP`. """ - pulumi.set(__self__, "size_in_megabytes", size_in_megabytes) - pulumi.set(__self__, "storage_virtual_machine_id", storage_virtual_machine_id) + OntapVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size_in_megabytes=size_in_megabytes, + storage_virtual_machine_id=storage_virtual_machine_id, + bypass_snaplock_enterprise_retention=bypass_snaplock_enterprise_retention, + copy_tags_to_backups=copy_tags_to_backups, + junction_path=junction_path, + name=name, + ontap_volume_type=ontap_volume_type, + security_style=security_style, + skip_final_backup=skip_final_backup, + snaplock_configuration=snaplock_configuration, + snapshot_policy=snapshot_policy, + storage_efficiency_enabled=storage_efficiency_enabled, + tags=tags, + tiering_policy=tiering_policy, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size_in_megabytes: Optional[pulumi.Input[int]] = None, + storage_virtual_machine_id: Optional[pulumi.Input[str]] = None, + bypass_snaplock_enterprise_retention: Optional[pulumi.Input[bool]] = None, + copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + junction_path: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + ontap_volume_type: Optional[pulumi.Input[str]] = None, + security_style: Optional[pulumi.Input[str]] = None, + skip_final_backup: Optional[pulumi.Input[bool]] = None, + snaplock_configuration: Optional[pulumi.Input['OntapVolumeSnaplockConfigurationArgs']] = None, + snapshot_policy: Optional[pulumi.Input[str]] = None, + storage_efficiency_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tiering_policy: Optional[pulumi.Input['OntapVolumeTieringPolicyArgs']] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size_in_megabytes is None and 'sizeInMegabytes' in kwargs: + size_in_megabytes = kwargs['sizeInMegabytes'] + if size_in_megabytes is None: + raise TypeError("Missing 'size_in_megabytes' argument") + if storage_virtual_machine_id is None and 'storageVirtualMachineId' in kwargs: + storage_virtual_machine_id = kwargs['storageVirtualMachineId'] + if storage_virtual_machine_id is None: + raise TypeError("Missing 'storage_virtual_machine_id' argument") + if bypass_snaplock_enterprise_retention is None and 'bypassSnaplockEnterpriseRetention' in kwargs: + bypass_snaplock_enterprise_retention = kwargs['bypassSnaplockEnterpriseRetention'] + if copy_tags_to_backups is None and 'copyTagsToBackups' in kwargs: + copy_tags_to_backups = kwargs['copyTagsToBackups'] + if junction_path is None and 'junctionPath' in kwargs: + junction_path = kwargs['junctionPath'] + if ontap_volume_type is None and 'ontapVolumeType' in kwargs: + ontap_volume_type = kwargs['ontapVolumeType'] + if security_style is None and 'securityStyle' in kwargs: + security_style = kwargs['securityStyle'] + if skip_final_backup is None and 'skipFinalBackup' in kwargs: + skip_final_backup = kwargs['skipFinalBackup'] + if snaplock_configuration is None and 'snaplockConfiguration' in kwargs: + snaplock_configuration = kwargs['snaplockConfiguration'] + if snapshot_policy is None and 'snapshotPolicy' in kwargs: + snapshot_policy = kwargs['snapshotPolicy'] + if storage_efficiency_enabled is None and 'storageEfficiencyEnabled' in kwargs: + storage_efficiency_enabled = kwargs['storageEfficiencyEnabled'] + if tiering_policy is None and 'tieringPolicy' in kwargs: + tiering_policy = kwargs['tieringPolicy'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("size_in_megabytes", size_in_megabytes) + _setter("storage_virtual_machine_id", storage_virtual_machine_id) if bypass_snaplock_enterprise_retention is not None: - pulumi.set(__self__, "bypass_snaplock_enterprise_retention", bypass_snaplock_enterprise_retention) + _setter("bypass_snaplock_enterprise_retention", bypass_snaplock_enterprise_retention) if copy_tags_to_backups is not None: - pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) + _setter("copy_tags_to_backups", copy_tags_to_backups) if junction_path is not None: - pulumi.set(__self__, "junction_path", junction_path) + _setter("junction_path", junction_path) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if ontap_volume_type is not None: - pulumi.set(__self__, "ontap_volume_type", ontap_volume_type) + _setter("ontap_volume_type", ontap_volume_type) if security_style is not None: - pulumi.set(__self__, "security_style", security_style) + _setter("security_style", security_style) if skip_final_backup is not None: - pulumi.set(__self__, "skip_final_backup", skip_final_backup) + _setter("skip_final_backup", skip_final_backup) if snaplock_configuration is not None: - pulumi.set(__self__, "snaplock_configuration", snaplock_configuration) + _setter("snaplock_configuration", snaplock_configuration) if snapshot_policy is not None: - pulumi.set(__self__, "snapshot_policy", snapshot_policy) + _setter("snapshot_policy", snapshot_policy) if storage_efficiency_enabled is not None: - pulumi.set(__self__, "storage_efficiency_enabled", storage_efficiency_enabled) + _setter("storage_efficiency_enabled", storage_efficiency_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tiering_policy is not None: - pulumi.set(__self__, "tiering_policy", tiering_policy) + _setter("tiering_policy", tiering_policy) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="sizeInMegabytes") @@ -305,49 +374,130 @@ def __init__(__self__, *, :param pulumi.Input[str] uuid: The Volume's UUID (universally unique identifier). :param pulumi.Input[str] volume_type: The type of volume, currently the only valid value is `ONTAP`. """ + _OntapVolumeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bypass_snaplock_enterprise_retention=bypass_snaplock_enterprise_retention, + copy_tags_to_backups=copy_tags_to_backups, + file_system_id=file_system_id, + flexcache_endpoint_type=flexcache_endpoint_type, + junction_path=junction_path, + name=name, + ontap_volume_type=ontap_volume_type, + security_style=security_style, + size_in_megabytes=size_in_megabytes, + skip_final_backup=skip_final_backup, + snaplock_configuration=snaplock_configuration, + snapshot_policy=snapshot_policy, + storage_efficiency_enabled=storage_efficiency_enabled, + storage_virtual_machine_id=storage_virtual_machine_id, + tags=tags, + tags_all=tags_all, + tiering_policy=tiering_policy, + uuid=uuid, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bypass_snaplock_enterprise_retention: Optional[pulumi.Input[bool]] = None, + copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + file_system_id: Optional[pulumi.Input[str]] = None, + flexcache_endpoint_type: Optional[pulumi.Input[str]] = None, + junction_path: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + ontap_volume_type: Optional[pulumi.Input[str]] = None, + security_style: Optional[pulumi.Input[str]] = None, + size_in_megabytes: Optional[pulumi.Input[int]] = None, + skip_final_backup: Optional[pulumi.Input[bool]] = None, + snaplock_configuration: Optional[pulumi.Input['OntapVolumeSnaplockConfigurationArgs']] = None, + snapshot_policy: Optional[pulumi.Input[str]] = None, + storage_efficiency_enabled: Optional[pulumi.Input[bool]] = None, + storage_virtual_machine_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tiering_policy: Optional[pulumi.Input['OntapVolumeTieringPolicyArgs']] = None, + uuid: Optional[pulumi.Input[str]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bypass_snaplock_enterprise_retention is None and 'bypassSnaplockEnterpriseRetention' in kwargs: + bypass_snaplock_enterprise_retention = kwargs['bypassSnaplockEnterpriseRetention'] + if copy_tags_to_backups is None and 'copyTagsToBackups' in kwargs: + copy_tags_to_backups = kwargs['copyTagsToBackups'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if flexcache_endpoint_type is None and 'flexcacheEndpointType' in kwargs: + flexcache_endpoint_type = kwargs['flexcacheEndpointType'] + if junction_path is None and 'junctionPath' in kwargs: + junction_path = kwargs['junctionPath'] + if ontap_volume_type is None and 'ontapVolumeType' in kwargs: + ontap_volume_type = kwargs['ontapVolumeType'] + if security_style is None and 'securityStyle' in kwargs: + security_style = kwargs['securityStyle'] + if size_in_megabytes is None and 'sizeInMegabytes' in kwargs: + size_in_megabytes = kwargs['sizeInMegabytes'] + if skip_final_backup is None and 'skipFinalBackup' in kwargs: + skip_final_backup = kwargs['skipFinalBackup'] + if snaplock_configuration is None and 'snaplockConfiguration' in kwargs: + snaplock_configuration = kwargs['snaplockConfiguration'] + if snapshot_policy is None and 'snapshotPolicy' in kwargs: + snapshot_policy = kwargs['snapshotPolicy'] + if storage_efficiency_enabled is None and 'storageEfficiencyEnabled' in kwargs: + storage_efficiency_enabled = kwargs['storageEfficiencyEnabled'] + if storage_virtual_machine_id is None and 'storageVirtualMachineId' in kwargs: + storage_virtual_machine_id = kwargs['storageVirtualMachineId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tiering_policy is None and 'tieringPolicy' in kwargs: + tiering_policy = kwargs['tieringPolicy'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bypass_snaplock_enterprise_retention is not None: - pulumi.set(__self__, "bypass_snaplock_enterprise_retention", bypass_snaplock_enterprise_retention) + _setter("bypass_snaplock_enterprise_retention", bypass_snaplock_enterprise_retention) if copy_tags_to_backups is not None: - pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) + _setter("copy_tags_to_backups", copy_tags_to_backups) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if flexcache_endpoint_type is not None: - pulumi.set(__self__, "flexcache_endpoint_type", flexcache_endpoint_type) + _setter("flexcache_endpoint_type", flexcache_endpoint_type) if junction_path is not None: - pulumi.set(__self__, "junction_path", junction_path) + _setter("junction_path", junction_path) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if ontap_volume_type is not None: - pulumi.set(__self__, "ontap_volume_type", ontap_volume_type) + _setter("ontap_volume_type", ontap_volume_type) if security_style is not None: - pulumi.set(__self__, "security_style", security_style) + _setter("security_style", security_style) if size_in_megabytes is not None: - pulumi.set(__self__, "size_in_megabytes", size_in_megabytes) + _setter("size_in_megabytes", size_in_megabytes) if skip_final_backup is not None: - pulumi.set(__self__, "skip_final_backup", skip_final_backup) + _setter("skip_final_backup", skip_final_backup) if snaplock_configuration is not None: - pulumi.set(__self__, "snaplock_configuration", snaplock_configuration) + _setter("snaplock_configuration", snaplock_configuration) if snapshot_policy is not None: - pulumi.set(__self__, "snapshot_policy", snapshot_policy) + _setter("snapshot_policy", snapshot_policy) if storage_efficiency_enabled is not None: - pulumi.set(__self__, "storage_efficiency_enabled", storage_efficiency_enabled) + _setter("storage_efficiency_enabled", storage_efficiency_enabled) if storage_virtual_machine_id is not None: - pulumi.set(__self__, "storage_virtual_machine_id", storage_virtual_machine_id) + _setter("storage_virtual_machine_id", storage_virtual_machine_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tiering_policy is not None: - pulumi.set(__self__, "tiering_policy", tiering_policy) + _setter("tiering_policy", tiering_policy) if uuid is not None: - pulumi.set(__self__, "uuid", uuid) + _setter("uuid", uuid) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter @@ -736,6 +886,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OntapVolumeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -775,6 +929,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'size_in_megabytes'") __props__.__dict__["size_in_megabytes"] = size_in_megabytes __props__.__dict__["skip_final_backup"] = skip_final_backup + snaplock_configuration = _utilities.configure(snaplock_configuration, OntapVolumeSnaplockConfigurationArgs, True) __props__.__dict__["snaplock_configuration"] = snaplock_configuration __props__.__dict__["snapshot_policy"] = snapshot_policy __props__.__dict__["storage_efficiency_enabled"] = storage_efficiency_enabled @@ -782,6 +937,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'storage_virtual_machine_id'") __props__.__dict__["storage_virtual_machine_id"] = storage_virtual_machine_id __props__.__dict__["tags"] = tags + tiering_policy = _utilities.configure(tiering_policy, OntapVolumeTieringPolicyArgs, True) __props__.__dict__["tiering_policy"] = tiering_policy __props__.__dict__["volume_type"] = volume_type __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/fsx/open_zfs_file_system.py b/sdk/python/pulumi_aws/fsx/open_zfs_file_system.py index 681a320ff46..41058ed6de5 100644 --- a/sdk/python/pulumi_aws/fsx/open_zfs_file_system.py +++ b/sdk/python/pulumi_aws/fsx/open_zfs_file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -57,41 +57,130 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ - pulumi.set(__self__, "deployment_type", deployment_type) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "throughput_capacity", throughput_capacity) + OpenZfsFileSystemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment_type=deployment_type, + subnet_ids=subnet_ids, + throughput_capacity=throughput_capacity, + automatic_backup_retention_days=automatic_backup_retention_days, + backup_id=backup_id, + copy_tags_to_backups=copy_tags_to_backups, + copy_tags_to_volumes=copy_tags_to_volumes, + daily_automatic_backup_start_time=daily_automatic_backup_start_time, + disk_iops_configuration=disk_iops_configuration, + endpoint_ip_address_range=endpoint_ip_address_range, + kms_key_id=kms_key_id, + preferred_subnet_id=preferred_subnet_id, + root_volume_configuration=root_volume_configuration, + route_table_ids=route_table_ids, + security_group_ids=security_group_ids, + storage_capacity=storage_capacity, + storage_type=storage_type, + tags=tags, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment_type: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[str]] = None, + throughput_capacity: Optional[pulumi.Input[int]] = None, + automatic_backup_retention_days: Optional[pulumi.Input[int]] = None, + backup_id: Optional[pulumi.Input[str]] = None, + copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + copy_tags_to_volumes: Optional[pulumi.Input[bool]] = None, + daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + disk_iops_configuration: Optional[pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs']] = None, + endpoint_ip_address_range: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + preferred_subnet_id: Optional[pulumi.Input[str]] = None, + root_volume_configuration: Optional[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationArgs']] = None, + route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + weekly_maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if deployment_type is None: + raise TypeError("Missing 'deployment_type' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if throughput_capacity is None and 'throughputCapacity' in kwargs: + throughput_capacity = kwargs['throughputCapacity'] + if throughput_capacity is None: + raise TypeError("Missing 'throughput_capacity' argument") + if automatic_backup_retention_days is None and 'automaticBackupRetentionDays' in kwargs: + automatic_backup_retention_days = kwargs['automaticBackupRetentionDays'] + if backup_id is None and 'backupId' in kwargs: + backup_id = kwargs['backupId'] + if copy_tags_to_backups is None and 'copyTagsToBackups' in kwargs: + copy_tags_to_backups = kwargs['copyTagsToBackups'] + if copy_tags_to_volumes is None and 'copyTagsToVolumes' in kwargs: + copy_tags_to_volumes = kwargs['copyTagsToVolumes'] + if daily_automatic_backup_start_time is None and 'dailyAutomaticBackupStartTime' in kwargs: + daily_automatic_backup_start_time = kwargs['dailyAutomaticBackupStartTime'] + if disk_iops_configuration is None and 'diskIopsConfiguration' in kwargs: + disk_iops_configuration = kwargs['diskIopsConfiguration'] + if endpoint_ip_address_range is None and 'endpointIpAddressRange' in kwargs: + endpoint_ip_address_range = kwargs['endpointIpAddressRange'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if preferred_subnet_id is None and 'preferredSubnetId' in kwargs: + preferred_subnet_id = kwargs['preferredSubnetId'] + if root_volume_configuration is None and 'rootVolumeConfiguration' in kwargs: + root_volume_configuration = kwargs['rootVolumeConfiguration'] + if route_table_ids is None and 'routeTableIds' in kwargs: + route_table_ids = kwargs['routeTableIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + + _setter("deployment_type", deployment_type) + _setter("subnet_ids", subnet_ids) + _setter("throughput_capacity", throughput_capacity) if automatic_backup_retention_days is not None: - pulumi.set(__self__, "automatic_backup_retention_days", automatic_backup_retention_days) + _setter("automatic_backup_retention_days", automatic_backup_retention_days) if backup_id is not None: - pulumi.set(__self__, "backup_id", backup_id) + _setter("backup_id", backup_id) if copy_tags_to_backups is not None: - pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) + _setter("copy_tags_to_backups", copy_tags_to_backups) if copy_tags_to_volumes is not None: - pulumi.set(__self__, "copy_tags_to_volumes", copy_tags_to_volumes) + _setter("copy_tags_to_volumes", copy_tags_to_volumes) if daily_automatic_backup_start_time is not None: - pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + _setter("daily_automatic_backup_start_time", daily_automatic_backup_start_time) if disk_iops_configuration is not None: - pulumi.set(__self__, "disk_iops_configuration", disk_iops_configuration) + _setter("disk_iops_configuration", disk_iops_configuration) if endpoint_ip_address_range is not None: - pulumi.set(__self__, "endpoint_ip_address_range", endpoint_ip_address_range) + _setter("endpoint_ip_address_range", endpoint_ip_address_range) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if preferred_subnet_id is not None: - pulumi.set(__self__, "preferred_subnet_id", preferred_subnet_id) + _setter("preferred_subnet_id", preferred_subnet_id) if root_volume_configuration is not None: - pulumi.set(__self__, "root_volume_configuration", root_volume_configuration) + _setter("root_volume_configuration", root_volume_configuration) if route_table_ids is not None: - pulumi.set(__self__, "route_table_ids", route_table_ids) + _setter("route_table_ids", route_table_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if storage_capacity is not None: - pulumi.set(__self__, "storage_capacity", storage_capacity) + _setter("storage_capacity", storage_capacity) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter(name="deploymentType") @@ -380,61 +469,170 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: Identifier of the Virtual Private Cloud for the file system. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ + _OpenZfsFileSystemState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + automatic_backup_retention_days=automatic_backup_retention_days, + backup_id=backup_id, + copy_tags_to_backups=copy_tags_to_backups, + copy_tags_to_volumes=copy_tags_to_volumes, + daily_automatic_backup_start_time=daily_automatic_backup_start_time, + deployment_type=deployment_type, + disk_iops_configuration=disk_iops_configuration, + dns_name=dns_name, + endpoint_ip_address_range=endpoint_ip_address_range, + kms_key_id=kms_key_id, + network_interface_ids=network_interface_ids, + owner_id=owner_id, + preferred_subnet_id=preferred_subnet_id, + root_volume_configuration=root_volume_configuration, + root_volume_id=root_volume_id, + route_table_ids=route_table_ids, + security_group_ids=security_group_ids, + storage_capacity=storage_capacity, + storage_type=storage_type, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + throughput_capacity=throughput_capacity, + vpc_id=vpc_id, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + automatic_backup_retention_days: Optional[pulumi.Input[int]] = None, + backup_id: Optional[pulumi.Input[str]] = None, + copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + copy_tags_to_volumes: Optional[pulumi.Input[bool]] = None, + daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + deployment_type: Optional[pulumi.Input[str]] = None, + disk_iops_configuration: Optional[pulumi.Input['OpenZfsFileSystemDiskIopsConfigurationArgs']] = None, + dns_name: Optional[pulumi.Input[str]] = None, + endpoint_ip_address_range: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + preferred_subnet_id: Optional[pulumi.Input[str]] = None, + root_volume_configuration: Optional[pulumi.Input['OpenZfsFileSystemRootVolumeConfigurationArgs']] = None, + root_volume_id: Optional[pulumi.Input[str]] = None, + route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_capacity: Optional[pulumi.Input[int]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + weekly_maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automatic_backup_retention_days is None and 'automaticBackupRetentionDays' in kwargs: + automatic_backup_retention_days = kwargs['automaticBackupRetentionDays'] + if backup_id is None and 'backupId' in kwargs: + backup_id = kwargs['backupId'] + if copy_tags_to_backups is None and 'copyTagsToBackups' in kwargs: + copy_tags_to_backups = kwargs['copyTagsToBackups'] + if copy_tags_to_volumes is None and 'copyTagsToVolumes' in kwargs: + copy_tags_to_volumes = kwargs['copyTagsToVolumes'] + if daily_automatic_backup_start_time is None and 'dailyAutomaticBackupStartTime' in kwargs: + daily_automatic_backup_start_time = kwargs['dailyAutomaticBackupStartTime'] + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if disk_iops_configuration is None and 'diskIopsConfiguration' in kwargs: + disk_iops_configuration = kwargs['diskIopsConfiguration'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if endpoint_ip_address_range is None and 'endpointIpAddressRange' in kwargs: + endpoint_ip_address_range = kwargs['endpointIpAddressRange'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if network_interface_ids is None and 'networkInterfaceIds' in kwargs: + network_interface_ids = kwargs['networkInterfaceIds'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if preferred_subnet_id is None and 'preferredSubnetId' in kwargs: + preferred_subnet_id = kwargs['preferredSubnetId'] + if root_volume_configuration is None and 'rootVolumeConfiguration' in kwargs: + root_volume_configuration = kwargs['rootVolumeConfiguration'] + if root_volume_id is None and 'rootVolumeId' in kwargs: + root_volume_id = kwargs['rootVolumeId'] + if route_table_ids is None and 'routeTableIds' in kwargs: + route_table_ids = kwargs['routeTableIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if throughput_capacity is None and 'throughputCapacity' in kwargs: + throughput_capacity = kwargs['throughputCapacity'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if automatic_backup_retention_days is not None: - pulumi.set(__self__, "automatic_backup_retention_days", automatic_backup_retention_days) + _setter("automatic_backup_retention_days", automatic_backup_retention_days) if backup_id is not None: - pulumi.set(__self__, "backup_id", backup_id) + _setter("backup_id", backup_id) if copy_tags_to_backups is not None: - pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) + _setter("copy_tags_to_backups", copy_tags_to_backups) if copy_tags_to_volumes is not None: - pulumi.set(__self__, "copy_tags_to_volumes", copy_tags_to_volumes) + _setter("copy_tags_to_volumes", copy_tags_to_volumes) if daily_automatic_backup_start_time is not None: - pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + _setter("daily_automatic_backup_start_time", daily_automatic_backup_start_time) if deployment_type is not None: - pulumi.set(__self__, "deployment_type", deployment_type) + _setter("deployment_type", deployment_type) if disk_iops_configuration is not None: - pulumi.set(__self__, "disk_iops_configuration", disk_iops_configuration) + _setter("disk_iops_configuration", disk_iops_configuration) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if endpoint_ip_address_range is not None: - pulumi.set(__self__, "endpoint_ip_address_range", endpoint_ip_address_range) + _setter("endpoint_ip_address_range", endpoint_ip_address_range) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if network_interface_ids is not None: - pulumi.set(__self__, "network_interface_ids", network_interface_ids) + _setter("network_interface_ids", network_interface_ids) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if preferred_subnet_id is not None: - pulumi.set(__self__, "preferred_subnet_id", preferred_subnet_id) + _setter("preferred_subnet_id", preferred_subnet_id) if root_volume_configuration is not None: - pulumi.set(__self__, "root_volume_configuration", root_volume_configuration) + _setter("root_volume_configuration", root_volume_configuration) if root_volume_id is not None: - pulumi.set(__self__, "root_volume_id", root_volume_id) + _setter("root_volume_id", root_volume_id) if route_table_ids is not None: - pulumi.set(__self__, "route_table_ids", route_table_ids) + _setter("route_table_ids", route_table_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if storage_capacity is not None: - pulumi.set(__self__, "storage_capacity", storage_capacity) + _setter("storage_capacity", storage_capacity) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if throughput_capacity is not None: - pulumi.set(__self__, "throughput_capacity", throughput_capacity) + _setter("throughput_capacity", throughput_capacity) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter @@ -867,6 +1065,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OpenZfsFileSystemArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -908,10 +1110,12 @@ def _internal_init(__self__, if deployment_type is None and not opts.urn: raise TypeError("Missing required property 'deployment_type'") __props__.__dict__["deployment_type"] = deployment_type + disk_iops_configuration = _utilities.configure(disk_iops_configuration, OpenZfsFileSystemDiskIopsConfigurationArgs, True) __props__.__dict__["disk_iops_configuration"] = disk_iops_configuration __props__.__dict__["endpoint_ip_address_range"] = endpoint_ip_address_range __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["preferred_subnet_id"] = preferred_subnet_id + root_volume_configuration = _utilities.configure(root_volume_configuration, OpenZfsFileSystemRootVolumeConfigurationArgs, True) __props__.__dict__["root_volume_configuration"] = root_volume_configuration __props__.__dict__["route_table_ids"] = route_table_ids __props__.__dict__["security_group_ids"] = security_group_ids diff --git a/sdk/python/pulumi_aws/fsx/open_zfs_snapshot.py b/sdk/python/pulumi_aws/fsx/open_zfs_snapshot.py index 73e901d924a..8267479095d 100644 --- a/sdk/python/pulumi_aws/fsx/open_zfs_snapshot.py +++ b/sdk/python/pulumi_aws/fsx/open_zfs_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OpenZfsSnapshotArgs', 'OpenZfsSnapshot'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Snapshot. You can use a maximum of 203 alphanumeric characters plus either _ or - or : or . for the name. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. If you have set `copy_tags_to_backups` to true, and you specify one or more tags, no existing file system tags are copied from the file system to the backup. """ - pulumi.set(__self__, "volume_id", volume_id) + OpenZfsSnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + volume_id=volume_id, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + volume_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_id is None: + raise TypeError("Missing 'volume_id' argument") + + _setter("volume_id", volume_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="volumeId") @@ -83,21 +102,48 @@ def __init__(__self__, *, :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] volume_id: The ID of the volume to snapshot. This can be the root volume or a child volume. """ + _OpenZfsSnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_time=creation_time, + name=name, + tags=tags, + tags_all=tags_all, + volume_id=volume_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) @property @pulumi.getter @@ -285,6 +331,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OpenZfsSnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/fsx/open_zfs_volume.py b/sdk/python/pulumi_aws/fsx/open_zfs_volume.py index 2b33b3f84fa..45c0857b4c2 100644 --- a/sdk/python/pulumi_aws/fsx/open_zfs_volume.py +++ b/sdk/python/pulumi_aws/fsx/open_zfs_volume.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -46,33 +46,96 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['OpenZfsVolumeUserAndGroupQuotaArgs']]] user_and_group_quotas: Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. """ - pulumi.set(__self__, "parent_volume_id", parent_volume_id) + OpenZfsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parent_volume_id=parent_volume_id, + copy_tags_to_snapshots=copy_tags_to_snapshots, + data_compression_type=data_compression_type, + delete_volume_options=delete_volume_options, + name=name, + nfs_exports=nfs_exports, + origin_snapshot=origin_snapshot, + read_only=read_only, + record_size_kib=record_size_kib, + storage_capacity_quota_gib=storage_capacity_quota_gib, + storage_capacity_reservation_gib=storage_capacity_reservation_gib, + tags=tags, + user_and_group_quotas=user_and_group_quotas, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parent_volume_id: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshots: Optional[pulumi.Input[bool]] = None, + data_compression_type: Optional[pulumi.Input[str]] = None, + delete_volume_options: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + nfs_exports: Optional[pulumi.Input['OpenZfsVolumeNfsExportsArgs']] = None, + origin_snapshot: Optional[pulumi.Input['OpenZfsVolumeOriginSnapshotArgs']] = None, + read_only: Optional[pulumi.Input[bool]] = None, + record_size_kib: Optional[pulumi.Input[int]] = None, + storage_capacity_quota_gib: Optional[pulumi.Input[int]] = None, + storage_capacity_reservation_gib: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_and_group_quotas: Optional[pulumi.Input[Sequence[pulumi.Input['OpenZfsVolumeUserAndGroupQuotaArgs']]]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parent_volume_id is None and 'parentVolumeId' in kwargs: + parent_volume_id = kwargs['parentVolumeId'] + if parent_volume_id is None: + raise TypeError("Missing 'parent_volume_id' argument") + if copy_tags_to_snapshots is None and 'copyTagsToSnapshots' in kwargs: + copy_tags_to_snapshots = kwargs['copyTagsToSnapshots'] + if data_compression_type is None and 'dataCompressionType' in kwargs: + data_compression_type = kwargs['dataCompressionType'] + if delete_volume_options is None and 'deleteVolumeOptions' in kwargs: + delete_volume_options = kwargs['deleteVolumeOptions'] + if nfs_exports is None and 'nfsExports' in kwargs: + nfs_exports = kwargs['nfsExports'] + if origin_snapshot is None and 'originSnapshot' in kwargs: + origin_snapshot = kwargs['originSnapshot'] + if read_only is None and 'readOnly' in kwargs: + read_only = kwargs['readOnly'] + if record_size_kib is None and 'recordSizeKib' in kwargs: + record_size_kib = kwargs['recordSizeKib'] + if storage_capacity_quota_gib is None and 'storageCapacityQuotaGib' in kwargs: + storage_capacity_quota_gib = kwargs['storageCapacityQuotaGib'] + if storage_capacity_reservation_gib is None and 'storageCapacityReservationGib' in kwargs: + storage_capacity_reservation_gib = kwargs['storageCapacityReservationGib'] + if user_and_group_quotas is None and 'userAndGroupQuotas' in kwargs: + user_and_group_quotas = kwargs['userAndGroupQuotas'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("parent_volume_id", parent_volume_id) if copy_tags_to_snapshots is not None: - pulumi.set(__self__, "copy_tags_to_snapshots", copy_tags_to_snapshots) + _setter("copy_tags_to_snapshots", copy_tags_to_snapshots) if data_compression_type is not None: - pulumi.set(__self__, "data_compression_type", data_compression_type) + _setter("data_compression_type", data_compression_type) if delete_volume_options is not None: - pulumi.set(__self__, "delete_volume_options", delete_volume_options) + _setter("delete_volume_options", delete_volume_options) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nfs_exports is not None: - pulumi.set(__self__, "nfs_exports", nfs_exports) + _setter("nfs_exports", nfs_exports) if origin_snapshot is not None: - pulumi.set(__self__, "origin_snapshot", origin_snapshot) + _setter("origin_snapshot", origin_snapshot) if read_only is not None: - pulumi.set(__self__, "read_only", read_only) + _setter("read_only", read_only) if record_size_kib is not None: - pulumi.set(__self__, "record_size_kib", record_size_kib) + _setter("record_size_kib", record_size_kib) if storage_capacity_quota_gib is not None: - pulumi.set(__self__, "storage_capacity_quota_gib", storage_capacity_quota_gib) + _setter("storage_capacity_quota_gib", storage_capacity_quota_gib) if storage_capacity_reservation_gib is not None: - pulumi.set(__self__, "storage_capacity_reservation_gib", storage_capacity_reservation_gib) + _setter("storage_capacity_reservation_gib", storage_capacity_reservation_gib) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_and_group_quotas is not None: - pulumi.set(__self__, "user_and_group_quotas", user_and_group_quotas) + _setter("user_and_group_quotas", user_and_group_quotas) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="parentVolumeId") @@ -277,41 +340,108 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input['OpenZfsVolumeUserAndGroupQuotaArgs']]] user_and_group_quotas: Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. """ + _OpenZfsVolumeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + copy_tags_to_snapshots=copy_tags_to_snapshots, + data_compression_type=data_compression_type, + delete_volume_options=delete_volume_options, + name=name, + nfs_exports=nfs_exports, + origin_snapshot=origin_snapshot, + parent_volume_id=parent_volume_id, + read_only=read_only, + record_size_kib=record_size_kib, + storage_capacity_quota_gib=storage_capacity_quota_gib, + storage_capacity_reservation_gib=storage_capacity_reservation_gib, + tags=tags, + tags_all=tags_all, + user_and_group_quotas=user_and_group_quotas, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshots: Optional[pulumi.Input[bool]] = None, + data_compression_type: Optional[pulumi.Input[str]] = None, + delete_volume_options: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + nfs_exports: Optional[pulumi.Input['OpenZfsVolumeNfsExportsArgs']] = None, + origin_snapshot: Optional[pulumi.Input['OpenZfsVolumeOriginSnapshotArgs']] = None, + parent_volume_id: Optional[pulumi.Input[str]] = None, + read_only: Optional[pulumi.Input[bool]] = None, + record_size_kib: Optional[pulumi.Input[int]] = None, + storage_capacity_quota_gib: Optional[pulumi.Input[int]] = None, + storage_capacity_reservation_gib: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_and_group_quotas: Optional[pulumi.Input[Sequence[pulumi.Input['OpenZfsVolumeUserAndGroupQuotaArgs']]]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copy_tags_to_snapshots is None and 'copyTagsToSnapshots' in kwargs: + copy_tags_to_snapshots = kwargs['copyTagsToSnapshots'] + if data_compression_type is None and 'dataCompressionType' in kwargs: + data_compression_type = kwargs['dataCompressionType'] + if delete_volume_options is None and 'deleteVolumeOptions' in kwargs: + delete_volume_options = kwargs['deleteVolumeOptions'] + if nfs_exports is None and 'nfsExports' in kwargs: + nfs_exports = kwargs['nfsExports'] + if origin_snapshot is None and 'originSnapshot' in kwargs: + origin_snapshot = kwargs['originSnapshot'] + if parent_volume_id is None and 'parentVolumeId' in kwargs: + parent_volume_id = kwargs['parentVolumeId'] + if read_only is None and 'readOnly' in kwargs: + read_only = kwargs['readOnly'] + if record_size_kib is None and 'recordSizeKib' in kwargs: + record_size_kib = kwargs['recordSizeKib'] + if storage_capacity_quota_gib is None and 'storageCapacityQuotaGib' in kwargs: + storage_capacity_quota_gib = kwargs['storageCapacityQuotaGib'] + if storage_capacity_reservation_gib is None and 'storageCapacityReservationGib' in kwargs: + storage_capacity_reservation_gib = kwargs['storageCapacityReservationGib'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_and_group_quotas is None and 'userAndGroupQuotas' in kwargs: + user_and_group_quotas = kwargs['userAndGroupQuotas'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if copy_tags_to_snapshots is not None: - pulumi.set(__self__, "copy_tags_to_snapshots", copy_tags_to_snapshots) + _setter("copy_tags_to_snapshots", copy_tags_to_snapshots) if data_compression_type is not None: - pulumi.set(__self__, "data_compression_type", data_compression_type) + _setter("data_compression_type", data_compression_type) if delete_volume_options is not None: - pulumi.set(__self__, "delete_volume_options", delete_volume_options) + _setter("delete_volume_options", delete_volume_options) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nfs_exports is not None: - pulumi.set(__self__, "nfs_exports", nfs_exports) + _setter("nfs_exports", nfs_exports) if origin_snapshot is not None: - pulumi.set(__self__, "origin_snapshot", origin_snapshot) + _setter("origin_snapshot", origin_snapshot) if parent_volume_id is not None: - pulumi.set(__self__, "parent_volume_id", parent_volume_id) + _setter("parent_volume_id", parent_volume_id) if read_only is not None: - pulumi.set(__self__, "read_only", read_only) + _setter("read_only", read_only) if record_size_kib is not None: - pulumi.set(__self__, "record_size_kib", record_size_kib) + _setter("record_size_kib", record_size_kib) if storage_capacity_quota_gib is not None: - pulumi.set(__self__, "storage_capacity_quota_gib", storage_capacity_quota_gib) + _setter("storage_capacity_quota_gib", storage_capacity_quota_gib) if storage_capacity_reservation_gib is not None: - pulumi.set(__self__, "storage_capacity_reservation_gib", storage_capacity_reservation_gib) + _setter("storage_capacity_reservation_gib", storage_capacity_reservation_gib) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_and_group_quotas is not None: - pulumi.set(__self__, "user_and_group_quotas", user_and_group_quotas) + _setter("user_and_group_quotas", user_and_group_quotas) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter @@ -600,6 +730,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OpenZfsVolumeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -632,7 +766,9 @@ def _internal_init(__self__, __props__.__dict__["data_compression_type"] = data_compression_type __props__.__dict__["delete_volume_options"] = delete_volume_options __props__.__dict__["name"] = name + nfs_exports = _utilities.configure(nfs_exports, OpenZfsVolumeNfsExportsArgs, True) __props__.__dict__["nfs_exports"] = nfs_exports + origin_snapshot = _utilities.configure(origin_snapshot, OpenZfsVolumeOriginSnapshotArgs, True) __props__.__dict__["origin_snapshot"] = origin_snapshot if parent_volume_id is None and not opts.urn: raise TypeError("Missing required property 'parent_volume_id'") diff --git a/sdk/python/pulumi_aws/fsx/outputs.py b/sdk/python/pulumi_aws/fsx/outputs.py index d035e8c0e8f..562c343d2e4 100644 --- a/sdk/python/pulumi_aws/fsx/outputs.py +++ b/sdk/python/pulumi_aws/fsx/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -98,10 +98,27 @@ def __init__(__self__, *, :param 'DataRepositoryAssociationS3AutoExportPolicyArgs' auto_export_policy: Specifies the type of updated objects that will be automatically exported from your file system to the linked S3 bucket. See the `events` configuration block. :param 'DataRepositoryAssociationS3AutoImportPolicyArgs' auto_import_policy: Specifies the type of updated objects that will be automatically imported from the linked S3 bucket to your file system. See the `events` configuration block. """ + DataRepositoryAssociationS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_export_policy=auto_export_policy, + auto_import_policy=auto_import_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_export_policy: Optional['outputs.DataRepositoryAssociationS3AutoExportPolicy'] = None, + auto_import_policy: Optional['outputs.DataRepositoryAssociationS3AutoImportPolicy'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_export_policy is None and 'autoExportPolicy' in kwargs: + auto_export_policy = kwargs['autoExportPolicy'] + if auto_import_policy is None and 'autoImportPolicy' in kwargs: + auto_import_policy = kwargs['autoImportPolicy'] + if auto_export_policy is not None: - pulumi.set(__self__, "auto_export_policy", auto_export_policy) + _setter("auto_export_policy", auto_export_policy) if auto_import_policy is not None: - pulumi.set(__self__, "auto_import_policy", auto_import_policy) + _setter("auto_import_policy", auto_import_policy) @property @pulumi.getter(name="autoExportPolicy") @@ -127,8 +144,19 @@ def __init__(__self__, *, """ :param Sequence[str] events: A list of file event types to automatically export to your linked S3 bucket or import from the linked S3 bucket. Valid values are `NEW`, `CHANGED`, `DELETED`. Max of 3. """ + DataRepositoryAssociationS3AutoExportPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is not None: - pulumi.set(__self__, "events", events) + _setter("events", events) @property @pulumi.getter @@ -146,8 +174,19 @@ def __init__(__self__, *, """ :param Sequence[str] events: A list of file event types to automatically export to your linked S3 bucket or import from the linked S3 bucket. Valid values are `NEW`, `CHANGED`, `DELETED`. Max of 3. """ + DataRepositoryAssociationS3AutoImportPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is not None: - pulumi.set(__self__, "events", events) + _setter("events", events) @property @pulumi.getter @@ -213,26 +252,79 @@ def __init__(__self__, *, :param Sequence['FileCacheDataRepositoryAssociationNfArgs'] nfs: (Optional) See the `nfs` configuration block. :param Mapping[str, str] tags: A map of tags to assign to the file cache. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "data_repository_path", data_repository_path) - pulumi.set(__self__, "file_cache_path", file_cache_path) + FileCacheDataRepositoryAssociation._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_repository_path=data_repository_path, + file_cache_path=file_cache_path, + association_id=association_id, + data_repository_subdirectories=data_repository_subdirectories, + file_cache_id=file_cache_id, + file_system_id=file_system_id, + file_system_path=file_system_path, + imported_file_chunk_size=imported_file_chunk_size, + nfs=nfs, + resource_arn=resource_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_repository_path: Optional[str] = None, + file_cache_path: Optional[str] = None, + association_id: Optional[str] = None, + data_repository_subdirectories: Optional[Sequence[str]] = None, + file_cache_id: Optional[str] = None, + file_system_id: Optional[str] = None, + file_system_path: Optional[str] = None, + imported_file_chunk_size: Optional[int] = None, + nfs: Optional[Sequence['outputs.FileCacheDataRepositoryAssociationNf']] = None, + resource_arn: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_repository_path is None and 'dataRepositoryPath' in kwargs: + data_repository_path = kwargs['dataRepositoryPath'] + if data_repository_path is None: + raise TypeError("Missing 'data_repository_path' argument") + if file_cache_path is None and 'fileCachePath' in kwargs: + file_cache_path = kwargs['fileCachePath'] + if file_cache_path is None: + raise TypeError("Missing 'file_cache_path' argument") + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if data_repository_subdirectories is None and 'dataRepositorySubdirectories' in kwargs: + data_repository_subdirectories = kwargs['dataRepositorySubdirectories'] + if file_cache_id is None and 'fileCacheId' in kwargs: + file_cache_id = kwargs['fileCacheId'] + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_path is None and 'fileSystemPath' in kwargs: + file_system_path = kwargs['fileSystemPath'] + if imported_file_chunk_size is None and 'importedFileChunkSize' in kwargs: + imported_file_chunk_size = kwargs['importedFileChunkSize'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + + _setter("data_repository_path", data_repository_path) + _setter("file_cache_path", file_cache_path) if association_id is not None: - pulumi.set(__self__, "association_id", association_id) + _setter("association_id", association_id) if data_repository_subdirectories is not None: - pulumi.set(__self__, "data_repository_subdirectories", data_repository_subdirectories) + _setter("data_repository_subdirectories", data_repository_subdirectories) if file_cache_id is not None: - pulumi.set(__self__, "file_cache_id", file_cache_id) + _setter("file_cache_id", file_cache_id) if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if file_system_path is not None: - pulumi.set(__self__, "file_system_path", file_system_path) + _setter("file_system_path", file_system_path) if imported_file_chunk_size is not None: - pulumi.set(__self__, "imported_file_chunk_size", imported_file_chunk_size) + _setter("imported_file_chunk_size", imported_file_chunk_size) if nfs is not None: - pulumi.set(__self__, "nfs", nfs) + _setter("nfs", nfs) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dataRepositoryPath") @@ -334,9 +426,26 @@ def __init__(__self__, *, :param str version: The version of the NFS (Network File System) protocol of the NFS data repository. The only supported value is NFS3, which indicates that the data repository must support the NFSv3 protocol. The only supported value is `NFS3`. :param Sequence[str] dns_ips: A list of up to 2 IP addresses of DNS servers used to resolve the NFS file system domain name. The provided IP addresses can either be the IP addresses of a DNS forwarder or resolver that the customer manages and runs inside the customer VPC, or the IP addresses of the on-premises DNS servers. """ - pulumi.set(__self__, "version", version) + FileCacheDataRepositoryAssociationNf._configure( + lambda key, value: pulumi.set(__self__, key, value), + version=version, + dns_ips=dns_ips, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + version: Optional[str] = None, + dns_ips: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if version is None: + raise TypeError("Missing 'version' argument") + if dns_ips is None and 'dnsIps' in kwargs: + dns_ips = kwargs['dnsIps'] + + _setter("version", version) if dns_ips is not None: - pulumi.set(__self__, "dns_ips", dns_ips) + _setter("dns_ips", dns_ips) @property @pulumi.getter @@ -397,15 +506,54 @@ def __init__(__self__, *, :param int per_unit_storage_throughput: Provisions the amount of read and write throughput for each 1 tebibyte (TiB) of cache storage capacity, in MB/s/TiB. The only supported value is `1000`. :param str weekly_maintenance_start_time: A recurring weekly time, in the format `D:HH:MM`. `D` is the day of the week, for which `1` represents Monday and `7` represents Sunday. `HH` is the zero-padded hour of the day (0-23), and `MM` is the zero-padded minute of the hour. For example, 1:05:00 specifies maintenance at 5 AM Monday. See the [ISO week date](https://en.wikipedia.org/wiki/ISO_week_date) for more information. """ - pulumi.set(__self__, "deployment_type", deployment_type) - pulumi.set(__self__, "metadata_configurations", metadata_configurations) - pulumi.set(__self__, "per_unit_storage_throughput", per_unit_storage_throughput) + FileCacheLustreConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + deployment_type=deployment_type, + metadata_configurations=metadata_configurations, + per_unit_storage_throughput=per_unit_storage_throughput, + log_configurations=log_configurations, + mount_name=mount_name, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deployment_type: Optional[str] = None, + metadata_configurations: Optional[Sequence['outputs.FileCacheLustreConfigurationMetadataConfiguration']] = None, + per_unit_storage_throughput: Optional[int] = None, + log_configurations: Optional[Sequence['outputs.FileCacheLustreConfigurationLogConfiguration']] = None, + mount_name: Optional[str] = None, + weekly_maintenance_start_time: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if deployment_type is None: + raise TypeError("Missing 'deployment_type' argument") + if metadata_configurations is None and 'metadataConfigurations' in kwargs: + metadata_configurations = kwargs['metadataConfigurations'] + if metadata_configurations is None: + raise TypeError("Missing 'metadata_configurations' argument") + if per_unit_storage_throughput is None and 'perUnitStorageThroughput' in kwargs: + per_unit_storage_throughput = kwargs['perUnitStorageThroughput'] + if per_unit_storage_throughput is None: + raise TypeError("Missing 'per_unit_storage_throughput' argument") + if log_configurations is None and 'logConfigurations' in kwargs: + log_configurations = kwargs['logConfigurations'] + if mount_name is None and 'mountName' in kwargs: + mount_name = kwargs['mountName'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + + _setter("deployment_type", deployment_type) + _setter("metadata_configurations", metadata_configurations) + _setter("per_unit_storage_throughput", per_unit_storage_throughput) if log_configurations is not None: - pulumi.set(__self__, "log_configurations", log_configurations) + _setter("log_configurations", log_configurations) if mount_name is not None: - pulumi.set(__self__, "mount_name", mount_name) + _setter("mount_name", mount_name) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter(name="deploymentType") @@ -455,10 +603,23 @@ class FileCacheLustreConfigurationLogConfiguration(dict): def __init__(__self__, *, destination: Optional[str] = None, level: Optional[str] = None): + FileCacheLustreConfigurationLogConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + level=level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) @property @pulumi.getter @@ -495,7 +656,22 @@ def __init__(__self__, *, """ :param int storage_capacity: The storage capacity of the Lustre MDT (Metadata Target) storage volume in gibibytes (GiB). The only supported value is `2400` GiB. """ - pulumi.set(__self__, "storage_capacity", storage_capacity) + FileCacheLustreConfigurationMetadataConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_capacity=storage_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_capacity: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_capacity is None: + raise TypeError("Missing 'storage_capacity' argument") + + _setter("storage_capacity", storage_capacity) @property @pulumi.getter(name="storageCapacity") @@ -515,10 +691,23 @@ def __init__(__self__, *, :param str destination: The Amazon Resource Name (ARN) that specifies the destination of the logs. The name of the Amazon CloudWatch Logs log group must begin with the `/aws/fsx` prefix. If you do not provide a destination, Amazon FSx will create and use a log stream in the CloudWatch Logs `/aws/fsx/lustre` log group. :param str level: Sets which data repository events are logged by Amazon FSx. Valid values are `WARN_ONLY`, `FAILURE_ONLY`, `ERROR_ONLY`, `WARN_ERROR` and `DISABLED`. Default value is `DISABLED`. """ + LustreFileSystemLogConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + level=level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) @property @pulumi.getter @@ -565,10 +754,27 @@ def __init__(__self__, *, :param Sequence[str] no_squash_nids: When root squash is enabled, you can optionally specify an array of NIDs of clients for which root squash does not apply. A client NID is a Lustre Network Identifier used to uniquely identify a client. You can specify the NID as either a single address or a range of addresses: 1. A single address is described in standard Lustre NID format by specifying the client’s IP address followed by the Lustre network ID (for example, 10.0.1.6@tcp). 2. An address range is described using a dash to separate the range (for example, 10.0.[2-10].[1-255]@tcp). :param str root_squash: You enable root squash by setting a user ID (UID) and group ID (GID) for the file system in the format UID:GID (for example, 365534:65534). The UID and GID values can range from 0 to 4294967294. """ + LustreFileSystemRootSquashConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + no_squash_nids=no_squash_nids, + root_squash=root_squash, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + no_squash_nids: Optional[Sequence[str]] = None, + root_squash: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if no_squash_nids is None and 'noSquashNids' in kwargs: + no_squash_nids = kwargs['noSquashNids'] + if root_squash is None and 'rootSquash' in kwargs: + root_squash = kwargs['rootSquash'] + if no_squash_nids is not None: - pulumi.set(__self__, "no_squash_nids", no_squash_nids) + _setter("no_squash_nids", no_squash_nids) if root_squash is not None: - pulumi.set(__self__, "root_squash", root_squash) + _setter("root_squash", root_squash) @property @pulumi.getter(name="noSquashNids") @@ -596,10 +802,23 @@ def __init__(__self__, *, :param int iops: The total number of SSD IOPS provisioned for the file system. :param str mode: Specifies whether the number of IOPS for the file system is using the system. Valid values are `AUTOMATIC` and `USER_PROVISIONED`. Default value is `AUTOMATIC`. """ + OntapFileSystemDiskIopsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + iops=iops, + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iops: Optional[int] = None, + mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) @property @pulumi.getter @@ -627,10 +846,23 @@ def __init__(__self__, *, :param Sequence['OntapFileSystemEndpointInterclusterArgs'] interclusters: An endpoint for managing your file system by setting up NetApp SnapMirror with other ONTAP systems. See Endpoint. :param Sequence['OntapFileSystemEndpointManagementArgs'] managements: An endpoint for managing your file system using the NetApp ONTAP CLI and NetApp ONTAP API. See Endpoint. """ + OntapFileSystemEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + interclusters=interclusters, + managements=managements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interclusters: Optional[Sequence['outputs.OntapFileSystemEndpointIntercluster']] = None, + managements: Optional[Sequence['outputs.OntapFileSystemEndpointManagement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interclusters is not None: - pulumi.set(__self__, "interclusters", interclusters) + _setter("interclusters", interclusters) if managements is not None: - pulumi.set(__self__, "managements", managements) + _setter("managements", managements) @property @pulumi.getter @@ -677,10 +909,27 @@ def __init__(__self__, *, :param str dns_name: The Domain Name Service (DNS) name for the file system. You can mount your file system using its DNS name. :param Sequence[str] ip_addresses: IP addresses of the file system endpoint. """ + OntapFileSystemEndpointIntercluster._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -727,10 +976,27 @@ def __init__(__self__, *, :param str dns_name: The Domain Name Service (DNS) name for the file system. You can mount your file system using its DNS name. :param Sequence[str] ip_addresses: IP addresses of the file system endpoint. """ + OntapFileSystemEndpointManagement._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -776,10 +1042,27 @@ def __init__(__self__, *, """ :param str netbios_name: The NetBIOS name of the Active Directory computer object that will be created for your SVM. This is often the same as the SVM name but can be different. AWS limits to 15 characters because of standard NetBIOS naming limits. """ + OntapStorageVirtualMachineActiveDirectoryConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + netbios_name=netbios_name, + self_managed_active_directory_configuration=self_managed_active_directory_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + netbios_name: Optional[str] = None, + self_managed_active_directory_configuration: Optional['outputs.OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if netbios_name is None and 'netbiosName' in kwargs: + netbios_name = kwargs['netbiosName'] + if self_managed_active_directory_configuration is None and 'selfManagedActiveDirectoryConfiguration' in kwargs: + self_managed_active_directory_configuration = kwargs['selfManagedActiveDirectoryConfiguration'] + if netbios_name is not None: - pulumi.set(__self__, "netbios_name", netbios_name) + _setter("netbios_name", netbios_name) if self_managed_active_directory_configuration is not None: - pulumi.set(__self__, "self_managed_active_directory_configuration", self_managed_active_directory_configuration) + _setter("self_managed_active_directory_configuration", self_managed_active_directory_configuration) @property @pulumi.getter(name="netbiosName") @@ -835,14 +1118,51 @@ def __init__(__self__, *, :param str file_system_administrators_group: The name of the domain group whose members are granted administrative privileges for the SVM. The group that you specify must already exist in your domain. Defaults to `Domain Admins`. :param str organizational_unit_distinguished_name: The fully qualified distinguished name of the organizational unit within your self-managed AD directory that the Windows File Server instance will join. For example, `OU=FSx,DC=yourdomain,DC=corp,DC=com`. Only accepts OU as the direct parent of the SVM. If none is provided, the SVM is created in the default location of your self-managed AD directory. To learn more, see [RFC 2253](https://tools.ietf.org/html/rfc2253). """ - pulumi.set(__self__, "dns_ips", dns_ips) - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_ips=dns_ips, + domain_name=domain_name, + password=password, + username=username, + file_system_administrators_group=file_system_administrators_group, + organizational_unit_distinguished_name=organizational_unit_distinguished_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_ips: Optional[Sequence[str]] = None, + domain_name: Optional[str] = None, + password: Optional[str] = None, + username: Optional[str] = None, + file_system_administrators_group: Optional[str] = None, + organizational_unit_distinguished_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_ips is None and 'dnsIps' in kwargs: + dns_ips = kwargs['dnsIps'] + if dns_ips is None: + raise TypeError("Missing 'dns_ips' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if file_system_administrators_group is None and 'fileSystemAdministratorsGroup' in kwargs: + file_system_administrators_group = kwargs['fileSystemAdministratorsGroup'] + if organizational_unit_distinguished_name is None and 'organizationalUnitDistinguishedName' in kwargs: + organizational_unit_distinguished_name = kwargs['organizationalUnitDistinguishedName'] + + _setter("dns_ips", dns_ips) + _setter("domain_name", domain_name) + _setter("password", password) + _setter("username", username) if file_system_administrators_group is not None: - pulumi.set(__self__, "file_system_administrators_group", file_system_administrators_group) + _setter("file_system_administrators_group", file_system_administrators_group) if organizational_unit_distinguished_name is not None: - pulumi.set(__self__, "organizational_unit_distinguished_name", organizational_unit_distinguished_name) + _setter("organizational_unit_distinguished_name", organizational_unit_distinguished_name) @property @pulumi.getter(name="dnsIps") @@ -906,14 +1226,31 @@ def __init__(__self__, *, :param Sequence['OntapStorageVirtualMachineEndpointNfArgs'] nfs: An endpoint for accessing data on your storage virtual machine via NFS protocol. See Endpoint. :param Sequence['OntapStorageVirtualMachineEndpointSmbArgs'] smbs: An endpoint for accessing data on your storage virtual machine via SMB protocol. This is only set if an active_directory_configuration has been set. See Endpoint. """ + OntapStorageVirtualMachineEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + iscsis=iscsis, + managements=managements, + nfs=nfs, + smbs=smbs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iscsis: Optional[Sequence['outputs.OntapStorageVirtualMachineEndpointIscsi']] = None, + managements: Optional[Sequence['outputs.OntapStorageVirtualMachineEndpointManagement']] = None, + nfs: Optional[Sequence['outputs.OntapStorageVirtualMachineEndpointNf']] = None, + smbs: Optional[Sequence['outputs.OntapStorageVirtualMachineEndpointSmb']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iscsis is not None: - pulumi.set(__self__, "iscsis", iscsis) + _setter("iscsis", iscsis) if managements is not None: - pulumi.set(__self__, "managements", managements) + _setter("managements", managements) if nfs is not None: - pulumi.set(__self__, "nfs", nfs) + _setter("nfs", nfs) if smbs is not None: - pulumi.set(__self__, "smbs", smbs) + _setter("smbs", smbs) @property @pulumi.getter @@ -976,10 +1313,27 @@ def __init__(__self__, *, :param str dns_name: The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. :param Sequence[str] ip_addresses: IP addresses of the storage virtual machine endpoint. """ + OntapStorageVirtualMachineEndpointIscsi._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -1026,10 +1380,27 @@ def __init__(__self__, *, :param str dns_name: The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. :param Sequence[str] ip_addresses: IP addresses of the storage virtual machine endpoint. """ + OntapStorageVirtualMachineEndpointManagement._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -1076,10 +1447,27 @@ def __init__(__self__, *, :param str dns_name: The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. :param Sequence[str] ip_addresses: IP addresses of the storage virtual machine endpoint. """ + OntapStorageVirtualMachineEndpointNf._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -1126,10 +1514,27 @@ def __init__(__self__, *, :param str dns_name: The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. :param Sequence[str] ip_addresses: IP addresses of the storage virtual machine endpoint. """ + OntapStorageVirtualMachineEndpointSmb._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -1192,17 +1597,52 @@ def __init__(__self__, *, :param 'OntapVolumeSnaplockConfigurationRetentionPeriodArgs' retention_period: The retention period of an FSx for ONTAP SnapLock volume. See SnapLock Retention Period below. :param bool volume_append_mode_enabled: Enables or disables volume-append mode on an FSx for ONTAP SnapLock volume. The default value is `false`. """ - pulumi.set(__self__, "snaplock_type", snaplock_type) + OntapVolumeSnaplockConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + snaplock_type=snaplock_type, + audit_log_volume=audit_log_volume, + autocommit_period=autocommit_period, + privileged_delete=privileged_delete, + retention_period=retention_period, + volume_append_mode_enabled=volume_append_mode_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + snaplock_type: Optional[str] = None, + audit_log_volume: Optional[bool] = None, + autocommit_period: Optional['outputs.OntapVolumeSnaplockConfigurationAutocommitPeriod'] = None, + privileged_delete: Optional[str] = None, + retention_period: Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriod'] = None, + volume_append_mode_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if snaplock_type is None and 'snaplockType' in kwargs: + snaplock_type = kwargs['snaplockType'] + if snaplock_type is None: + raise TypeError("Missing 'snaplock_type' argument") + if audit_log_volume is None and 'auditLogVolume' in kwargs: + audit_log_volume = kwargs['auditLogVolume'] + if autocommit_period is None and 'autocommitPeriod' in kwargs: + autocommit_period = kwargs['autocommitPeriod'] + if privileged_delete is None and 'privilegedDelete' in kwargs: + privileged_delete = kwargs['privilegedDelete'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if volume_append_mode_enabled is None and 'volumeAppendModeEnabled' in kwargs: + volume_append_mode_enabled = kwargs['volumeAppendModeEnabled'] + + _setter("snaplock_type", snaplock_type) if audit_log_volume is not None: - pulumi.set(__self__, "audit_log_volume", audit_log_volume) + _setter("audit_log_volume", audit_log_volume) if autocommit_period is not None: - pulumi.set(__self__, "autocommit_period", autocommit_period) + _setter("autocommit_period", autocommit_period) if privileged_delete is not None: - pulumi.set(__self__, "privileged_delete", privileged_delete) + _setter("privileged_delete", privileged_delete) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) if volume_append_mode_enabled is not None: - pulumi.set(__self__, "volume_append_mode_enabled", volume_append_mode_enabled) + _setter("volume_append_mode_enabled", volume_append_mode_enabled) @property @pulumi.getter(name="snaplockType") @@ -1262,10 +1702,23 @@ def __init__(__self__, *, :param str type: The type of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. Setting this value to `NONE` disables autocommit. Valid values: `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `NONE`. :param int value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. """ + OntapVolumeSnaplockConfigurationAutocommitPeriod._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1316,12 +1769,33 @@ def __init__(__self__, *, :param 'OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetentionArgs' maximum_retention: The longest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. :param 'OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetentionArgs' minimum_retention: The shortest retention period that can be assigned to a WORM file on an FSx for ONTAP SnapLock volume. See Retention Period below. """ + OntapVolumeSnaplockConfigurationRetentionPeriod._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_retention=default_retention, + maximum_retention=maximum_retention, + minimum_retention=minimum_retention, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_retention: Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention'] = None, + maximum_retention: Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention'] = None, + minimum_retention: Optional['outputs.OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_retention is None and 'defaultRetention' in kwargs: + default_retention = kwargs['defaultRetention'] + if maximum_retention is None and 'maximumRetention' in kwargs: + maximum_retention = kwargs['maximumRetention'] + if minimum_retention is None and 'minimumRetention' in kwargs: + minimum_retention = kwargs['minimumRetention'] + if default_retention is not None: - pulumi.set(__self__, "default_retention", default_retention) + _setter("default_retention", default_retention) if maximum_retention is not None: - pulumi.set(__self__, "maximum_retention", maximum_retention) + _setter("maximum_retention", maximum_retention) if minimum_retention is not None: - pulumi.set(__self__, "minimum_retention", minimum_retention) + _setter("minimum_retention", minimum_retention) @property @pulumi.getter(name="defaultRetention") @@ -1357,10 +1831,23 @@ def __init__(__self__, *, :param str type: The type of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. Setting this value to `NONE` disables autocommit. Valid values: `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `NONE`. :param int value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. """ + OntapVolumeSnaplockConfigurationRetentionPeriodDefaultRetention._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1388,10 +1875,23 @@ def __init__(__self__, *, :param str type: The type of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. Setting this value to `NONE` disables autocommit. Valid values: `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `NONE`. :param int value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. """ + OntapVolumeSnaplockConfigurationRetentionPeriodMaximumRetention._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1419,10 +1919,23 @@ def __init__(__self__, *, :param str type: The type of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. Setting this value to `NONE` disables autocommit. Valid values: `MINUTES`, `HOURS`, `DAYS`, `MONTHS`, `YEARS`, `NONE`. :param int value: The amount of time for the autocommit period of a file in an FSx for ONTAP SnapLock volume. """ + OntapVolumeSnaplockConfigurationRetentionPeriodMinimumRetention._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1467,10 +1980,25 @@ def __init__(__self__, *, :param int cooling_period: Specifies the number of days that user data in a volume must remain inactive before it is considered "cold" and moved to the capacity pool. Used with `AUTO` and `SNAPSHOT_ONLY` tiering policies only. Valid values are whole numbers between 2 and 183. Default values are 31 days for `AUTO` and 2 days for `SNAPSHOT_ONLY`. :param str name: Specifies the tiering policy for the ONTAP volume for moving data to the capacity pool storage. Valid values are `SNAPSHOT_ONLY`, `AUTO`, `ALL`, `NONE`. Default value is `SNAPSHOT_ONLY`. """ + OntapVolumeTieringPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + cooling_period=cooling_period, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cooling_period: Optional[int] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cooling_period is None and 'coolingPeriod' in kwargs: + cooling_period = kwargs['coolingPeriod'] + if cooling_period is not None: - pulumi.set(__self__, "cooling_period", cooling_period) + _setter("cooling_period", cooling_period) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="coolingPeriod") @@ -1498,10 +2026,23 @@ def __init__(__self__, *, :param int iops: The total number of SSD IOPS provisioned for the file system. :param str mode: Specifies whether the number of IOPS for the file system is using the system. Valid values are `AUTOMATIC` and `USER_PROVISIONED`. Default value is `AUTOMATIC`. """ + OpenZfsFileSystemDiskIopsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + iops=iops, + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iops: Optional[int] = None, + mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) @property @pulumi.getter @@ -1564,18 +2105,51 @@ def __init__(__self__, *, :param int record_size_kib: Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB. :param Sequence['OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs'] user_and_group_quotas: Specify how much storage users or groups can use on the volume. Maximum of 100 items. See User and Group Quotas Below. """ + OpenZfsFileSystemRootVolumeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + copy_tags_to_snapshots=copy_tags_to_snapshots, + data_compression_type=data_compression_type, + nfs_exports=nfs_exports, + read_only=read_only, + record_size_kib=record_size_kib, + user_and_group_quotas=user_and_group_quotas, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + copy_tags_to_snapshots: Optional[bool] = None, + data_compression_type: Optional[str] = None, + nfs_exports: Optional['outputs.OpenZfsFileSystemRootVolumeConfigurationNfsExports'] = None, + read_only: Optional[bool] = None, + record_size_kib: Optional[int] = None, + user_and_group_quotas: Optional[Sequence['outputs.OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuota']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copy_tags_to_snapshots is None and 'copyTagsToSnapshots' in kwargs: + copy_tags_to_snapshots = kwargs['copyTagsToSnapshots'] + if data_compression_type is None and 'dataCompressionType' in kwargs: + data_compression_type = kwargs['dataCompressionType'] + if nfs_exports is None and 'nfsExports' in kwargs: + nfs_exports = kwargs['nfsExports'] + if read_only is None and 'readOnly' in kwargs: + read_only = kwargs['readOnly'] + if record_size_kib is None and 'recordSizeKib' in kwargs: + record_size_kib = kwargs['recordSizeKib'] + if user_and_group_quotas is None and 'userAndGroupQuotas' in kwargs: + user_and_group_quotas = kwargs['userAndGroupQuotas'] + if copy_tags_to_snapshots is not None: - pulumi.set(__self__, "copy_tags_to_snapshots", copy_tags_to_snapshots) + _setter("copy_tags_to_snapshots", copy_tags_to_snapshots) if data_compression_type is not None: - pulumi.set(__self__, "data_compression_type", data_compression_type) + _setter("data_compression_type", data_compression_type) if nfs_exports is not None: - pulumi.set(__self__, "nfs_exports", nfs_exports) + _setter("nfs_exports", nfs_exports) if read_only is not None: - pulumi.set(__self__, "read_only", read_only) + _setter("read_only", read_only) if record_size_kib is not None: - pulumi.set(__self__, "record_size_kib", record_size_kib) + _setter("record_size_kib", record_size_kib) if user_and_group_quotas is not None: - pulumi.set(__self__, "user_and_group_quotas", user_and_group_quotas) + _setter("user_and_group_quotas", user_and_group_quotas) @property @pulumi.getter(name="copyTagsToSnapshots") @@ -1650,7 +2224,22 @@ def __init__(__self__, *, """ :param Sequence['OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfigurationArgs'] client_configurations: A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. """ - pulumi.set(__self__, "client_configurations", client_configurations) + OpenZfsFileSystemRootVolumeConfigurationNfsExports._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_configurations=client_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_configurations: Optional[Sequence['outputs.OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_configurations is None and 'clientConfigurations' in kwargs: + client_configurations = kwargs['clientConfigurations'] + if client_configurations is None: + raise TypeError("Missing 'client_configurations' argument") + + _setter("client_configurations", client_configurations) @property @pulumi.getter(name="clientConfigurations") @@ -1670,8 +2259,25 @@ def __init__(__self__, *, :param str clients: A value that specifies who can mount the file system. You can provide a wildcard character (*), an IP address (0.0.0.0), or a CIDR address (192.0.2.0/24. By default, Amazon FSx uses the wildcard character when specifying the client. :param Sequence[str] options: The options to use when mounting the file system. Maximum of 20 items. See the [Linix NFS exports man page](https://linux.die.net/man/5/exports) for more information. `crossmount` and `sync` are used by default. """ - pulumi.set(__self__, "clients", clients) - pulumi.set(__self__, "options", options) + OpenZfsFileSystemRootVolumeConfigurationNfsExportsClientConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + clients=clients, + options=options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + clients: Optional[str] = None, + options: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if clients is None: + raise TypeError("Missing 'clients' argument") + if options is None: + raise TypeError("Missing 'options' argument") + + _setter("clients", clients) + _setter("options", options) @property @pulumi.getter @@ -1718,9 +2324,32 @@ def __init__(__self__, *, :param int storage_capacity_quota_gib: The amount of storage that the user or group can use in gibibytes (GiB). Valid values between `0` and `2147483647` :param str type: A value that specifies whether the quota applies to a user or group. Valid values are `USER` or `GROUP`. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "storage_capacity_quota_gib", storage_capacity_quota_gib) - pulumi.set(__self__, "type", type) + OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuota._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + storage_capacity_quota_gib=storage_capacity_quota_gib, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[int] = None, + storage_capacity_quota_gib: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if storage_capacity_quota_gib is None and 'storageCapacityQuotaGib' in kwargs: + storage_capacity_quota_gib = kwargs['storageCapacityQuotaGib'] + if storage_capacity_quota_gib is None: + raise TypeError("Missing 'storage_capacity_quota_gib' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("id", id) + _setter("storage_capacity_quota_gib", storage_capacity_quota_gib) + _setter("type", type) @property @pulumi.getter @@ -1771,7 +2400,22 @@ def __init__(__self__, *, """ :param Sequence['OpenZfsVolumeNfsExportsClientConfigurationArgs'] client_configurations: A list of configuration objects that contain the client and options for mounting the OpenZFS file system. Maximum of 25 items. See Client Configurations Below. """ - pulumi.set(__self__, "client_configurations", client_configurations) + OpenZfsVolumeNfsExports._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_configurations=client_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_configurations: Optional[Sequence['outputs.OpenZfsVolumeNfsExportsClientConfiguration']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_configurations is None and 'clientConfigurations' in kwargs: + client_configurations = kwargs['clientConfigurations'] + if client_configurations is None: + raise TypeError("Missing 'client_configurations' argument") + + _setter("client_configurations", client_configurations) @property @pulumi.getter(name="clientConfigurations") @@ -1791,8 +2435,25 @@ def __init__(__self__, *, :param str clients: A value that specifies who can mount the file system. You can provide a wildcard character (*), an IP address (0.0.0.0), or a CIDR address (192.0.2.0/24. By default, Amazon FSx uses the wildcard character when specifying the client. :param Sequence[str] options: The options to use when mounting the file system. Maximum of 20 items. See the [Linix NFS exports man page](https://linux.die.net/man/5/exports) for more information. `crossmount` and `sync` are used by default. """ - pulumi.set(__self__, "clients", clients) - pulumi.set(__self__, "options", options) + OpenZfsVolumeNfsExportsClientConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + clients=clients, + options=options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + clients: Optional[str] = None, + options: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if clients is None: + raise TypeError("Missing 'clients' argument") + if options is None: + raise TypeError("Missing 'options' argument") + + _setter("clients", clients) + _setter("options", options) @property @pulumi.getter @@ -1835,8 +2496,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, copy_strategy: str, snapshot_arn: str): - pulumi.set(__self__, "copy_strategy", copy_strategy) - pulumi.set(__self__, "snapshot_arn", snapshot_arn) + OpenZfsVolumeOriginSnapshot._configure( + lambda key, value: pulumi.set(__self__, key, value), + copy_strategy=copy_strategy, + snapshot_arn=snapshot_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + copy_strategy: Optional[str] = None, + snapshot_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copy_strategy is None and 'copyStrategy' in kwargs: + copy_strategy = kwargs['copyStrategy'] + if copy_strategy is None: + raise TypeError("Missing 'copy_strategy' argument") + if snapshot_arn is None and 'snapshotArn' in kwargs: + snapshot_arn = kwargs['snapshotArn'] + if snapshot_arn is None: + raise TypeError("Missing 'snapshot_arn' argument") + + _setter("copy_strategy", copy_strategy) + _setter("snapshot_arn", snapshot_arn) @property @pulumi.getter(name="copyStrategy") @@ -1876,9 +2558,32 @@ def __init__(__self__, *, :param int id: The ID of the user or group. Valid values between `0` and `2147483647` :param int storage_capacity_quota_gib: The amount of storage that the user or group can use in gibibytes (GiB). Valid values between `0` and `2147483647` """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "storage_capacity_quota_gib", storage_capacity_quota_gib) - pulumi.set(__self__, "type", type) + OpenZfsVolumeUserAndGroupQuota._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + storage_capacity_quota_gib=storage_capacity_quota_gib, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[int] = None, + storage_capacity_quota_gib: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if storage_capacity_quota_gib is None and 'storageCapacityQuotaGib' in kwargs: + storage_capacity_quota_gib = kwargs['storageCapacityQuotaGib'] + if storage_capacity_quota_gib is None: + raise TypeError("Missing 'storage_capacity_quota_gib' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("id", id) + _setter("storage_capacity_quota_gib", storage_capacity_quota_gib) + _setter("type", type) @property @pulumi.getter @@ -1934,12 +2639,33 @@ def __init__(__self__, *, :param str file_access_audit_log_level: Sets which attempt type is logged by Amazon FSx for file and folder accesses. Valid values are `SUCCESS_ONLY`, `FAILURE_ONLY`, `SUCCESS_AND_FAILURE`, and `DISABLED`. Default value is `DISABLED`. :param str file_share_access_audit_log_level: Sets which attempt type is logged by Amazon FSx for file share accesses. Valid values are `SUCCESS_ONLY`, `FAILURE_ONLY`, `SUCCESS_AND_FAILURE`, and `DISABLED`. Default value is `DISABLED`. """ + WindowsFileSystemAuditLogConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit_log_destination=audit_log_destination, + file_access_audit_log_level=file_access_audit_log_level, + file_share_access_audit_log_level=file_share_access_audit_log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit_log_destination: Optional[str] = None, + file_access_audit_log_level: Optional[str] = None, + file_share_access_audit_log_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_log_destination is None and 'auditLogDestination' in kwargs: + audit_log_destination = kwargs['auditLogDestination'] + if file_access_audit_log_level is None and 'fileAccessAuditLogLevel' in kwargs: + file_access_audit_log_level = kwargs['fileAccessAuditLogLevel'] + if file_share_access_audit_log_level is None and 'fileShareAccessAuditLogLevel' in kwargs: + file_share_access_audit_log_level = kwargs['fileShareAccessAuditLogLevel'] + if audit_log_destination is not None: - pulumi.set(__self__, "audit_log_destination", audit_log_destination) + _setter("audit_log_destination", audit_log_destination) if file_access_audit_log_level is not None: - pulumi.set(__self__, "file_access_audit_log_level", file_access_audit_log_level) + _setter("file_access_audit_log_level", file_access_audit_log_level) if file_share_access_audit_log_level is not None: - pulumi.set(__self__, "file_share_access_audit_log_level", file_share_access_audit_log_level) + _setter("file_share_access_audit_log_level", file_share_access_audit_log_level) @property @pulumi.getter(name="auditLogDestination") @@ -1975,10 +2701,23 @@ def __init__(__self__, *, :param int iops: The total number of SSD IOPS provisioned for the file system. :param str mode: Specifies whether the number of IOPS for the file system is using the system. Valid values are `AUTOMATIC` and `USER_PROVISIONED`. Default value is `AUTOMATIC`. """ + WindowsFileSystemDiskIopsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + iops=iops, + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iops: Optional[int] = None, + mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) @property @pulumi.getter @@ -2037,14 +2776,51 @@ def __init__(__self__, *, :param str file_system_administrators_group: The name of the domain group whose members are granted administrative privileges for the file system. Administrative privileges include taking ownership of files and folders, and setting audit controls (audit ACLs) on files and folders. The group that you specify must already exist in your domain. Defaults to `Domain Admins`. :param str organizational_unit_distinguished_name: The fully qualified distinguished name of the organizational unit within your self-managed AD directory that the Windows File Server instance will join. For example, `OU=FSx,DC=yourdomain,DC=corp,DC=com`. Only accepts OU as the direct parent of the file system. If none is provided, the FSx file system is created in the default location of your self-managed AD directory. To learn more, see [RFC 2253](https://tools.ietf.org/html/rfc2253). """ - pulumi.set(__self__, "dns_ips", dns_ips) - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + WindowsFileSystemSelfManagedActiveDirectory._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_ips=dns_ips, + domain_name=domain_name, + password=password, + username=username, + file_system_administrators_group=file_system_administrators_group, + organizational_unit_distinguished_name=organizational_unit_distinguished_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_ips: Optional[Sequence[str]] = None, + domain_name: Optional[str] = None, + password: Optional[str] = None, + username: Optional[str] = None, + file_system_administrators_group: Optional[str] = None, + organizational_unit_distinguished_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_ips is None and 'dnsIps' in kwargs: + dns_ips = kwargs['dnsIps'] + if dns_ips is None: + raise TypeError("Missing 'dns_ips' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if file_system_administrators_group is None and 'fileSystemAdministratorsGroup' in kwargs: + file_system_administrators_group = kwargs['fileSystemAdministratorsGroup'] + if organizational_unit_distinguished_name is None and 'organizationalUnitDistinguishedName' in kwargs: + organizational_unit_distinguished_name = kwargs['organizationalUnitDistinguishedName'] + + _setter("dns_ips", dns_ips) + _setter("domain_name", domain_name) + _setter("password", password) + _setter("username", username) if file_system_administrators_group is not None: - pulumi.set(__self__, "file_system_administrators_group", file_system_administrators_group) + _setter("file_system_administrators_group", file_system_administrators_group) if organizational_unit_distinguished_name is not None: - pulumi.set(__self__, "organizational_unit_distinguished_name", organizational_unit_distinguished_name) + _setter("organizational_unit_distinguished_name", organizational_unit_distinguished_name) @property @pulumi.getter(name="dnsIps") @@ -2104,8 +2880,25 @@ def __init__(__self__, *, :param int iops: The total number of SSD IOPS provisioned for the file system. :param str mode: Specifies whether the file system is using the `AUTOMATIC` setting of SSD IOPS of 3 IOPS per GB of storage capacity, or if it using a `USER_PROVISIONED` value. """ - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "mode", mode) + GetOntapFileSystemDiskIopsConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + iops=iops, + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iops: Optional[int] = None, + mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iops is None: + raise TypeError("Missing 'iops' argument") + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("iops", iops) + _setter("mode", mode) @property @pulumi.getter @@ -2133,8 +2926,25 @@ def __init__(__self__, *, :param Sequence['GetOntapFileSystemEndpointInterclusterArgs'] interclusters: A FileSystemEndpoint for managing your file system by setting up NetApp SnapMirror with other ONTAP systems. See FileSystemEndpoint below. :param Sequence['GetOntapFileSystemEndpointManagementArgs'] managements: A FileSystemEndpoint for managing your file system using the NetApp ONTAP CLI and NetApp ONTAP API. See FileSystemEndpoint below. """ - pulumi.set(__self__, "interclusters", interclusters) - pulumi.set(__self__, "managements", managements) + GetOntapFileSystemEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + interclusters=interclusters, + managements=managements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interclusters: Optional[Sequence['outputs.GetOntapFileSystemEndpointInterclusterResult']] = None, + managements: Optional[Sequence['outputs.GetOntapFileSystemEndpointManagementResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interclusters is None: + raise TypeError("Missing 'interclusters' argument") + if managements is None: + raise TypeError("Missing 'managements' argument") + + _setter("interclusters", interclusters) + _setter("managements", managements) @property @pulumi.getter @@ -2161,8 +2971,29 @@ def __init__(__self__, *, """ :param str dns_name: DNS name for the file system (e.g. `fs-12345678.corp.example.com`). """ - pulumi.set(__self__, "dns_name", dns_name) - pulumi.set(__self__, "ip_addresses", ip_addresses) + GetOntapFileSystemEndpointInterclusterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if dns_name is None: + raise TypeError("Missing 'dns_name' argument") + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_addresses is None: + raise TypeError("Missing 'ip_addresses' argument") + + _setter("dns_name", dns_name) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -2186,8 +3017,29 @@ def __init__(__self__, *, """ :param str dns_name: DNS name for the file system (e.g. `fs-12345678.corp.example.com`). """ - pulumi.set(__self__, "dns_name", dns_name) - pulumi.set(__self__, "ip_addresses", ip_addresses) + GetOntapFileSystemEndpointManagementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if dns_name is None: + raise TypeError("Missing 'dns_name' argument") + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_addresses is None: + raise TypeError("Missing 'ip_addresses' argument") + + _setter("dns_name", dns_name) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -2211,8 +3063,29 @@ def __init__(__self__, *, """ :param str netbios_name: The NetBIOS name of the AD computer object to which the SVM is joined. """ - pulumi.set(__self__, "netbios_name", netbios_name) - pulumi.set(__self__, "self_managed_active_directory_configurations", self_managed_active_directory_configurations) + GetOntapStorageVirtualMachineActiveDirectoryConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + netbios_name=netbios_name, + self_managed_active_directory_configurations=self_managed_active_directory_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + netbios_name: Optional[str] = None, + self_managed_active_directory_configurations: Optional[Sequence['outputs.GetOntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if netbios_name is None and 'netbiosName' in kwargs: + netbios_name = kwargs['netbiosName'] + if netbios_name is None: + raise TypeError("Missing 'netbios_name' argument") + if self_managed_active_directory_configurations is None and 'selfManagedActiveDirectoryConfigurations' in kwargs: + self_managed_active_directory_configurations = kwargs['selfManagedActiveDirectoryConfigurations'] + if self_managed_active_directory_configurations is None: + raise TypeError("Missing 'self_managed_active_directory_configurations' argument") + + _setter("netbios_name", netbios_name) + _setter("self_managed_active_directory_configurations", self_managed_active_directory_configurations) @property @pulumi.getter(name="netbiosName") @@ -2243,11 +3116,48 @@ def __init__(__self__, *, :param str organizational_unit_distinguished_name: The fully qualified distinguished name of the organizational unit within the self-managed AD directory to which the Windows File Server or ONTAP storage virtual machine (SVM) instance is joined. :param str username: The user name for the service account on your self-managed AD domain that FSx uses to join to your AD domain. """ - pulumi.set(__self__, "dns_ips", dns_ips) - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "file_system_administrators_group", file_system_administrators_group) - pulumi.set(__self__, "organizational_unit_distinguished_name", organizational_unit_distinguished_name) - pulumi.set(__self__, "username", username) + GetOntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_ips=dns_ips, + domain_name=domain_name, + file_system_administrators_group=file_system_administrators_group, + organizational_unit_distinguished_name=organizational_unit_distinguished_name, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_ips: Optional[Sequence[str]] = None, + domain_name: Optional[str] = None, + file_system_administrators_group: Optional[str] = None, + organizational_unit_distinguished_name: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_ips is None and 'dnsIps' in kwargs: + dns_ips = kwargs['dnsIps'] + if dns_ips is None: + raise TypeError("Missing 'dns_ips' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if file_system_administrators_group is None and 'fileSystemAdministratorsGroup' in kwargs: + file_system_administrators_group = kwargs['fileSystemAdministratorsGroup'] + if file_system_administrators_group is None: + raise TypeError("Missing 'file_system_administrators_group' argument") + if organizational_unit_distinguished_name is None and 'organizationalUnitDistinguishedName' in kwargs: + organizational_unit_distinguished_name = kwargs['organizationalUnitDistinguishedName'] + if organizational_unit_distinguished_name is None: + raise TypeError("Missing 'organizational_unit_distinguished_name' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("dns_ips", dns_ips) + _setter("domain_name", domain_name) + _setter("file_system_administrators_group", file_system_administrators_group) + _setter("organizational_unit_distinguished_name", organizational_unit_distinguished_name) + _setter("username", username) @property @pulumi.getter(name="dnsIps") @@ -2302,10 +3212,35 @@ def __init__(__self__, *, :param Sequence['GetOntapStorageVirtualMachineEndpointNfArgs'] nfs: An endpoint for connecting using the Network File System (NFS) protocol. See SVM Endpoint below. :param Sequence['GetOntapStorageVirtualMachineEndpointSmbArgs'] smbs: An endpoint for connecting using the Server Message Block (SMB) protocol. See SVM Endpoint below. """ - pulumi.set(__self__, "iscsis", iscsis) - pulumi.set(__self__, "managements", managements) - pulumi.set(__self__, "nfs", nfs) - pulumi.set(__self__, "smbs", smbs) + GetOntapStorageVirtualMachineEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + iscsis=iscsis, + managements=managements, + nfs=nfs, + smbs=smbs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iscsis: Optional[Sequence['outputs.GetOntapStorageVirtualMachineEndpointIscsiResult']] = None, + managements: Optional[Sequence['outputs.GetOntapStorageVirtualMachineEndpointManagementResult']] = None, + nfs: Optional[Sequence['outputs.GetOntapStorageVirtualMachineEndpointNfResult']] = None, + smbs: Optional[Sequence['outputs.GetOntapStorageVirtualMachineEndpointSmbResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iscsis is None: + raise TypeError("Missing 'iscsis' argument") + if managements is None: + raise TypeError("Missing 'managements' argument") + if nfs is None: + raise TypeError("Missing 'nfs' argument") + if smbs is None: + raise TypeError("Missing 'smbs' argument") + + _setter("iscsis", iscsis) + _setter("managements", managements) + _setter("nfs", nfs) + _setter("smbs", smbs) @property @pulumi.getter @@ -2342,8 +3277,29 @@ class GetOntapStorageVirtualMachineEndpointIscsiResult(dict): def __init__(__self__, *, dns_name: str, ip_addresses: Sequence[str]): - pulumi.set(__self__, "dns_name", dns_name) - pulumi.set(__self__, "ip_addresses", ip_addresses) + GetOntapStorageVirtualMachineEndpointIscsiResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if dns_name is None: + raise TypeError("Missing 'dns_name' argument") + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_addresses is None: + raise TypeError("Missing 'ip_addresses' argument") + + _setter("dns_name", dns_name) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -2361,8 +3317,29 @@ class GetOntapStorageVirtualMachineEndpointManagementResult(dict): def __init__(__self__, *, dns_name: str, ip_addresses: Sequence[str]): - pulumi.set(__self__, "dns_name", dns_name) - pulumi.set(__self__, "ip_addresses", ip_addresses) + GetOntapStorageVirtualMachineEndpointManagementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if dns_name is None: + raise TypeError("Missing 'dns_name' argument") + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_addresses is None: + raise TypeError("Missing 'ip_addresses' argument") + + _setter("dns_name", dns_name) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -2380,8 +3357,29 @@ class GetOntapStorageVirtualMachineEndpointNfResult(dict): def __init__(__self__, *, dns_name: str, ip_addresses: Sequence[str]): - pulumi.set(__self__, "dns_name", dns_name) - pulumi.set(__self__, "ip_addresses", ip_addresses) + GetOntapStorageVirtualMachineEndpointNfResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if dns_name is None: + raise TypeError("Missing 'dns_name' argument") + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_addresses is None: + raise TypeError("Missing 'ip_addresses' argument") + + _setter("dns_name", dns_name) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -2399,8 +3397,29 @@ class GetOntapStorageVirtualMachineEndpointSmbResult(dict): def __init__(__self__, *, dns_name: str, ip_addresses: Sequence[str]): - pulumi.set(__self__, "dns_name", dns_name) - pulumi.set(__self__, "ip_addresses", ip_addresses) + GetOntapStorageVirtualMachineEndpointSmbResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_name=dns_name, + ip_addresses=ip_addresses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_name: Optional[str] = None, + ip_addresses: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if dns_name is None: + raise TypeError("Missing 'dns_name' argument") + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_addresses is None: + raise TypeError("Missing 'ip_addresses' argument") + + _setter("dns_name", dns_name) + _setter("ip_addresses", ip_addresses) @property @pulumi.getter(name="dnsName") @@ -2422,8 +3441,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/fsx/latest/APIReference/API_StorageVirtualMachineFilter.html). :param Sequence[str] values: Set of values that are accepted for the given field. An SVM will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetOntapStorageVirtualMachineFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -2449,7 +3485,20 @@ def __init__(__self__, *, """ :param str message: A detailed message. """ - pulumi.set(__self__, "message", message) + GetOntapStorageVirtualMachineLifecycleTransitionReasonResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + message=message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message is None: + raise TypeError("Missing 'message' argument") + + _setter("message", message) @property @pulumi.getter @@ -2469,8 +3518,25 @@ def __init__(__self__, *, :param str name: Name of the field to filter by, as defined by [the underlying AWS API](https://docs.aws.amazon.com/fsx/latest/APIReference/API_StorageVirtualMachineFilter.html). :param Sequence[str] values: Set of values that are accepted for the given field. An SVM will be selected if any one of the given values matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetOntapStorageVirtualMachinesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -2497,8 +3563,25 @@ def __init__(__self__, *, """ :param str name: Name of the snapshot. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetOpenZfsSnapshotFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -2520,9 +3603,36 @@ def __init__(__self__, *, audit_log_destination: str, file_access_audit_log_level: str, file_share_access_audit_log_level: str): - pulumi.set(__self__, "audit_log_destination", audit_log_destination) - pulumi.set(__self__, "file_access_audit_log_level", file_access_audit_log_level) - pulumi.set(__self__, "file_share_access_audit_log_level", file_share_access_audit_log_level) + GetWindowsFileSystemAuditLogConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit_log_destination=audit_log_destination, + file_access_audit_log_level=file_access_audit_log_level, + file_share_access_audit_log_level=file_share_access_audit_log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit_log_destination: Optional[str] = None, + file_access_audit_log_level: Optional[str] = None, + file_share_access_audit_log_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_log_destination is None and 'auditLogDestination' in kwargs: + audit_log_destination = kwargs['auditLogDestination'] + if audit_log_destination is None: + raise TypeError("Missing 'audit_log_destination' argument") + if file_access_audit_log_level is None and 'fileAccessAuditLogLevel' in kwargs: + file_access_audit_log_level = kwargs['fileAccessAuditLogLevel'] + if file_access_audit_log_level is None: + raise TypeError("Missing 'file_access_audit_log_level' argument") + if file_share_access_audit_log_level is None and 'fileShareAccessAuditLogLevel' in kwargs: + file_share_access_audit_log_level = kwargs['fileShareAccessAuditLogLevel'] + if file_share_access_audit_log_level is None: + raise TypeError("Missing 'file_share_access_audit_log_level' argument") + + _setter("audit_log_destination", audit_log_destination) + _setter("file_access_audit_log_level", file_access_audit_log_level) + _setter("file_share_access_audit_log_level", file_share_access_audit_log_level) @property @pulumi.getter(name="auditLogDestination") @@ -2545,8 +3655,25 @@ class GetWindowsFileSystemDiskIopsConfigurationResult(dict): def __init__(__self__, *, iops: int, mode: str): - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "mode", mode) + GetWindowsFileSystemDiskIopsConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + iops=iops, + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iops: Optional[int] = None, + mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iops is None: + raise TypeError("Missing 'iops' argument") + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("iops", iops) + _setter("mode", mode) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/fsx/windows_file_system.py b/sdk/python/pulumi_aws/fsx/windows_file_system.py index cf3932e4633..b45bd9d3b76 100644 --- a/sdk/python/pulumi_aws/fsx/windows_file_system.py +++ b/sdk/python/pulumi_aws/fsx/windows_file_system.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -61,44 +61,133 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the file system. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "throughput_capacity", throughput_capacity) + WindowsFileSystemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + throughput_capacity=throughput_capacity, + active_directory_id=active_directory_id, + aliases=aliases, + audit_log_configuration=audit_log_configuration, + automatic_backup_retention_days=automatic_backup_retention_days, + backup_id=backup_id, + copy_tags_to_backups=copy_tags_to_backups, + daily_automatic_backup_start_time=daily_automatic_backup_start_time, + deployment_type=deployment_type, + disk_iops_configuration=disk_iops_configuration, + kms_key_id=kms_key_id, + preferred_subnet_id=preferred_subnet_id, + security_group_ids=security_group_ids, + self_managed_active_directory=self_managed_active_directory, + skip_final_backup=skip_final_backup, + storage_capacity=storage_capacity, + storage_type=storage_type, + tags=tags, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + throughput_capacity: Optional[pulumi.Input[int]] = None, + active_directory_id: Optional[pulumi.Input[str]] = None, + aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + audit_log_configuration: Optional[pulumi.Input['WindowsFileSystemAuditLogConfigurationArgs']] = None, + automatic_backup_retention_days: Optional[pulumi.Input[int]] = None, + backup_id: Optional[pulumi.Input[str]] = None, + copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + deployment_type: Optional[pulumi.Input[str]] = None, + disk_iops_configuration: Optional[pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs']] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + preferred_subnet_id: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self_managed_active_directory: Optional[pulumi.Input['WindowsFileSystemSelfManagedActiveDirectoryArgs']] = None, + skip_final_backup: Optional[pulumi.Input[bool]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + weekly_maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if throughput_capacity is None and 'throughputCapacity' in kwargs: + throughput_capacity = kwargs['throughputCapacity'] + if throughput_capacity is None: + raise TypeError("Missing 'throughput_capacity' argument") + if active_directory_id is None and 'activeDirectoryId' in kwargs: + active_directory_id = kwargs['activeDirectoryId'] + if audit_log_configuration is None and 'auditLogConfiguration' in kwargs: + audit_log_configuration = kwargs['auditLogConfiguration'] + if automatic_backup_retention_days is None and 'automaticBackupRetentionDays' in kwargs: + automatic_backup_retention_days = kwargs['automaticBackupRetentionDays'] + if backup_id is None and 'backupId' in kwargs: + backup_id = kwargs['backupId'] + if copy_tags_to_backups is None and 'copyTagsToBackups' in kwargs: + copy_tags_to_backups = kwargs['copyTagsToBackups'] + if daily_automatic_backup_start_time is None and 'dailyAutomaticBackupStartTime' in kwargs: + daily_automatic_backup_start_time = kwargs['dailyAutomaticBackupStartTime'] + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if disk_iops_configuration is None and 'diskIopsConfiguration' in kwargs: + disk_iops_configuration = kwargs['diskIopsConfiguration'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if preferred_subnet_id is None and 'preferredSubnetId' in kwargs: + preferred_subnet_id = kwargs['preferredSubnetId'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if self_managed_active_directory is None and 'selfManagedActiveDirectory' in kwargs: + self_managed_active_directory = kwargs['selfManagedActiveDirectory'] + if skip_final_backup is None and 'skipFinalBackup' in kwargs: + skip_final_backup = kwargs['skipFinalBackup'] + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + + _setter("subnet_ids", subnet_ids) + _setter("throughput_capacity", throughput_capacity) if active_directory_id is not None: - pulumi.set(__self__, "active_directory_id", active_directory_id) + _setter("active_directory_id", active_directory_id) if aliases is not None: - pulumi.set(__self__, "aliases", aliases) + _setter("aliases", aliases) if audit_log_configuration is not None: - pulumi.set(__self__, "audit_log_configuration", audit_log_configuration) + _setter("audit_log_configuration", audit_log_configuration) if automatic_backup_retention_days is not None: - pulumi.set(__self__, "automatic_backup_retention_days", automatic_backup_retention_days) + _setter("automatic_backup_retention_days", automatic_backup_retention_days) if backup_id is not None: - pulumi.set(__self__, "backup_id", backup_id) + _setter("backup_id", backup_id) if copy_tags_to_backups is not None: - pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) + _setter("copy_tags_to_backups", copy_tags_to_backups) if daily_automatic_backup_start_time is not None: - pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + _setter("daily_automatic_backup_start_time", daily_automatic_backup_start_time) if deployment_type is not None: - pulumi.set(__self__, "deployment_type", deployment_type) + _setter("deployment_type", deployment_type) if disk_iops_configuration is not None: - pulumi.set(__self__, "disk_iops_configuration", disk_iops_configuration) + _setter("disk_iops_configuration", disk_iops_configuration) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if preferred_subnet_id is not None: - pulumi.set(__self__, "preferred_subnet_id", preferred_subnet_id) + _setter("preferred_subnet_id", preferred_subnet_id) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if self_managed_active_directory is not None: - pulumi.set(__self__, "self_managed_active_directory", self_managed_active_directory) + _setter("self_managed_active_directory", self_managed_active_directory) if skip_final_backup is not None: - pulumi.set(__self__, "skip_final_backup", skip_final_backup) + _setter("skip_final_backup", skip_final_backup) if storage_capacity is not None: - pulumi.set(__self__, "storage_capacity", storage_capacity) + _setter("storage_capacity", storage_capacity) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter(name="subnetIds") @@ -407,65 +496,180 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: Identifier of the Virtual Private Cloud for the file system. :param pulumi.Input[str] weekly_maintenance_start_time: The preferred start time (in `d:HH:MM` format) to perform weekly maintenance, in the UTC time zone. """ + _WindowsFileSystemState._configure( + lambda key, value: pulumi.set(__self__, key, value), + active_directory_id=active_directory_id, + aliases=aliases, + arn=arn, + audit_log_configuration=audit_log_configuration, + automatic_backup_retention_days=automatic_backup_retention_days, + backup_id=backup_id, + copy_tags_to_backups=copy_tags_to_backups, + daily_automatic_backup_start_time=daily_automatic_backup_start_time, + deployment_type=deployment_type, + disk_iops_configuration=disk_iops_configuration, + dns_name=dns_name, + kms_key_id=kms_key_id, + network_interface_ids=network_interface_ids, + owner_id=owner_id, + preferred_file_server_ip=preferred_file_server_ip, + preferred_subnet_id=preferred_subnet_id, + remote_administration_endpoint=remote_administration_endpoint, + security_group_ids=security_group_ids, + self_managed_active_directory=self_managed_active_directory, + skip_final_backup=skip_final_backup, + storage_capacity=storage_capacity, + storage_type=storage_type, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + throughput_capacity=throughput_capacity, + vpc_id=vpc_id, + weekly_maintenance_start_time=weekly_maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active_directory_id: Optional[pulumi.Input[str]] = None, + aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + audit_log_configuration: Optional[pulumi.Input['WindowsFileSystemAuditLogConfigurationArgs']] = None, + automatic_backup_retention_days: Optional[pulumi.Input[int]] = None, + backup_id: Optional[pulumi.Input[str]] = None, + copy_tags_to_backups: Optional[pulumi.Input[bool]] = None, + daily_automatic_backup_start_time: Optional[pulumi.Input[str]] = None, + deployment_type: Optional[pulumi.Input[str]] = None, + disk_iops_configuration: Optional[pulumi.Input['WindowsFileSystemDiskIopsConfigurationArgs']] = None, + dns_name: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + network_interface_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + preferred_file_server_ip: Optional[pulumi.Input[str]] = None, + preferred_subnet_id: Optional[pulumi.Input[str]] = None, + remote_administration_endpoint: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self_managed_active_directory: Optional[pulumi.Input['WindowsFileSystemSelfManagedActiveDirectoryArgs']] = None, + skip_final_backup: Optional[pulumi.Input[bool]] = None, + storage_capacity: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_capacity: Optional[pulumi.Input[int]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + weekly_maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active_directory_id is None and 'activeDirectoryId' in kwargs: + active_directory_id = kwargs['activeDirectoryId'] + if audit_log_configuration is None and 'auditLogConfiguration' in kwargs: + audit_log_configuration = kwargs['auditLogConfiguration'] + if automatic_backup_retention_days is None and 'automaticBackupRetentionDays' in kwargs: + automatic_backup_retention_days = kwargs['automaticBackupRetentionDays'] + if backup_id is None and 'backupId' in kwargs: + backup_id = kwargs['backupId'] + if copy_tags_to_backups is None and 'copyTagsToBackups' in kwargs: + copy_tags_to_backups = kwargs['copyTagsToBackups'] + if daily_automatic_backup_start_time is None and 'dailyAutomaticBackupStartTime' in kwargs: + daily_automatic_backup_start_time = kwargs['dailyAutomaticBackupStartTime'] + if deployment_type is None and 'deploymentType' in kwargs: + deployment_type = kwargs['deploymentType'] + if disk_iops_configuration is None and 'diskIopsConfiguration' in kwargs: + disk_iops_configuration = kwargs['diskIopsConfiguration'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if network_interface_ids is None and 'networkInterfaceIds' in kwargs: + network_interface_ids = kwargs['networkInterfaceIds'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if preferred_file_server_ip is None and 'preferredFileServerIp' in kwargs: + preferred_file_server_ip = kwargs['preferredFileServerIp'] + if preferred_subnet_id is None and 'preferredSubnetId' in kwargs: + preferred_subnet_id = kwargs['preferredSubnetId'] + if remote_administration_endpoint is None and 'remoteAdministrationEndpoint' in kwargs: + remote_administration_endpoint = kwargs['remoteAdministrationEndpoint'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if self_managed_active_directory is None and 'selfManagedActiveDirectory' in kwargs: + self_managed_active_directory = kwargs['selfManagedActiveDirectory'] + if skip_final_backup is None and 'skipFinalBackup' in kwargs: + skip_final_backup = kwargs['skipFinalBackup'] + if storage_capacity is None and 'storageCapacity' in kwargs: + storage_capacity = kwargs['storageCapacity'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if throughput_capacity is None and 'throughputCapacity' in kwargs: + throughput_capacity = kwargs['throughputCapacity'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if weekly_maintenance_start_time is None and 'weeklyMaintenanceStartTime' in kwargs: + weekly_maintenance_start_time = kwargs['weeklyMaintenanceStartTime'] + if active_directory_id is not None: - pulumi.set(__self__, "active_directory_id", active_directory_id) + _setter("active_directory_id", active_directory_id) if aliases is not None: - pulumi.set(__self__, "aliases", aliases) + _setter("aliases", aliases) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if audit_log_configuration is not None: - pulumi.set(__self__, "audit_log_configuration", audit_log_configuration) + _setter("audit_log_configuration", audit_log_configuration) if automatic_backup_retention_days is not None: - pulumi.set(__self__, "automatic_backup_retention_days", automatic_backup_retention_days) + _setter("automatic_backup_retention_days", automatic_backup_retention_days) if backup_id is not None: - pulumi.set(__self__, "backup_id", backup_id) + _setter("backup_id", backup_id) if copy_tags_to_backups is not None: - pulumi.set(__self__, "copy_tags_to_backups", copy_tags_to_backups) + _setter("copy_tags_to_backups", copy_tags_to_backups) if daily_automatic_backup_start_time is not None: - pulumi.set(__self__, "daily_automatic_backup_start_time", daily_automatic_backup_start_time) + _setter("daily_automatic_backup_start_time", daily_automatic_backup_start_time) if deployment_type is not None: - pulumi.set(__self__, "deployment_type", deployment_type) + _setter("deployment_type", deployment_type) if disk_iops_configuration is not None: - pulumi.set(__self__, "disk_iops_configuration", disk_iops_configuration) + _setter("disk_iops_configuration", disk_iops_configuration) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if network_interface_ids is not None: - pulumi.set(__self__, "network_interface_ids", network_interface_ids) + _setter("network_interface_ids", network_interface_ids) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if preferred_file_server_ip is not None: - pulumi.set(__self__, "preferred_file_server_ip", preferred_file_server_ip) + _setter("preferred_file_server_ip", preferred_file_server_ip) if preferred_subnet_id is not None: - pulumi.set(__self__, "preferred_subnet_id", preferred_subnet_id) + _setter("preferred_subnet_id", preferred_subnet_id) if remote_administration_endpoint is not None: - pulumi.set(__self__, "remote_administration_endpoint", remote_administration_endpoint) + _setter("remote_administration_endpoint", remote_administration_endpoint) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if self_managed_active_directory is not None: - pulumi.set(__self__, "self_managed_active_directory", self_managed_active_directory) + _setter("self_managed_active_directory", self_managed_active_directory) if skip_final_backup is not None: - pulumi.set(__self__, "skip_final_backup", skip_final_backup) + _setter("skip_final_backup", skip_final_backup) if storage_capacity is not None: - pulumi.set(__self__, "storage_capacity", storage_capacity) + _setter("storage_capacity", storage_capacity) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if throughput_capacity is not None: - pulumi.set(__self__, "throughput_capacity", throughput_capacity) + _setter("throughput_capacity", throughput_capacity) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if weekly_maintenance_start_time is not None: - pulumi.set(__self__, "weekly_maintenance_start_time", weekly_maintenance_start_time) + _setter("weekly_maintenance_start_time", weekly_maintenance_start_time) @property @pulumi.getter(name="activeDirectoryId") @@ -984,6 +1188,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WindowsFileSystemArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1020,16 +1228,19 @@ def _internal_init(__self__, __props__.__dict__["active_directory_id"] = active_directory_id __props__.__dict__["aliases"] = aliases + audit_log_configuration = _utilities.configure(audit_log_configuration, WindowsFileSystemAuditLogConfigurationArgs, True) __props__.__dict__["audit_log_configuration"] = audit_log_configuration __props__.__dict__["automatic_backup_retention_days"] = automatic_backup_retention_days __props__.__dict__["backup_id"] = backup_id __props__.__dict__["copy_tags_to_backups"] = copy_tags_to_backups __props__.__dict__["daily_automatic_backup_start_time"] = daily_automatic_backup_start_time __props__.__dict__["deployment_type"] = deployment_type + disk_iops_configuration = _utilities.configure(disk_iops_configuration, WindowsFileSystemDiskIopsConfigurationArgs, True) __props__.__dict__["disk_iops_configuration"] = disk_iops_configuration __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["preferred_subnet_id"] = preferred_subnet_id __props__.__dict__["security_group_ids"] = security_group_ids + self_managed_active_directory = _utilities.configure(self_managed_active_directory, WindowsFileSystemSelfManagedActiveDirectoryArgs, True) __props__.__dict__["self_managed_active_directory"] = self_managed_active_directory __props__.__dict__["skip_final_backup"] = skip_final_backup __props__.__dict__["storage_capacity"] = storage_capacity diff --git a/sdk/python/pulumi_aws/gamelift/_inputs.py b/sdk/python/pulumi_aws/gamelift/_inputs.py index e0b401e18f4..92ed9342fc9 100644 --- a/sdk/python/pulumi_aws/gamelift/_inputs.py +++ b/sdk/python/pulumi_aws/gamelift/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -37,11 +37,30 @@ def __init__(__self__, *, :param pulumi.Input[str] fleet_id: ID of the GameLift Fleet to point the alias to. :param pulumi.Input[str] message: Message text to be used with the `TERMINAL` routing strategy. """ - pulumi.set(__self__, "type", type) + AliasRoutingStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + fleet_id=fleet_id, + message=message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + fleet_id: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if fleet_id is None and 'fleetId' in kwargs: + fleet_id = kwargs['fleetId'] + + _setter("type", type) if fleet_id is not None: - pulumi.set(__self__, "fleet_id", fleet_id) + _setter("fleet_id", fleet_id) if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) @property @pulumi.getter @@ -93,11 +112,38 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: ARN of the access role that allows Amazon GameLift to access your S3 bucket. :param pulumi.Input[str] object_version: A specific version of the file. If not set, the latest version of the file is retrieved. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "role_arn", role_arn) + BuildStorageLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + role_arn=role_arn, + object_version=object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + object_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if object_version is None and 'objectVersion' in kwargs: + object_version = kwargs['objectVersion'] + + _setter("bucket", bucket) + _setter("key", key) + _setter("role_arn", role_arn) if object_version is not None: - pulumi.set(__self__, "object_version", object_version) + _setter("object_version", object_version) @property @pulumi.getter @@ -155,8 +201,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] certificate_type: Indicates whether a TLS/SSL certificate is generated for a fleet. Valid values are `DISABLED` and `GENERATED`. Default value is `DISABLED`. """ + FleetCertificateConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_type=certificate_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_type is None and 'certificateType' in kwargs: + certificate_type = kwargs['certificateType'] + if certificate_type is not None: - pulumi.set(__self__, "certificate_type", certificate_type) + _setter("certificate_type", certificate_type) @property @pulumi.getter(name="certificateType") @@ -184,10 +243,41 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol: Network communication protocol used by the fleetE.g., `TCP` or `UDP` :param pulumi.Input[int] to_port: Ending value for a range of allowed port numbers. Port numbers are end-inclusive. This value must be higher than `from_port`. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "ip_range", ip_range) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + FleetEc2InboundPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + ip_range=ip_range, + protocol=protocol, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + ip_range: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if ip_range is None and 'ipRange' in kwargs: + ip_range = kwargs['ipRange'] + if ip_range is None: + raise TypeError("Missing 'ip_range' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + + _setter("from_port", from_port) + _setter("ip_range", ip_range) + _setter("protocol", protocol) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -247,10 +337,27 @@ def __init__(__self__, *, :param pulumi.Input[int] new_game_sessions_per_creator: Maximum number of game sessions that an individual can create during the policy period. :param pulumi.Input[int] policy_period_in_minutes: Time span used in evaluating the resource creation limit policy. """ + FleetResourceCreationLimitPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + new_game_sessions_per_creator=new_game_sessions_per_creator, + policy_period_in_minutes=policy_period_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + new_game_sessions_per_creator: Optional[pulumi.Input[int]] = None, + policy_period_in_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if new_game_sessions_per_creator is None and 'newGameSessionsPerCreator' in kwargs: + new_game_sessions_per_creator = kwargs['newGameSessionsPerCreator'] + if policy_period_in_minutes is None and 'policyPeriodInMinutes' in kwargs: + policy_period_in_minutes = kwargs['policyPeriodInMinutes'] + if new_game_sessions_per_creator is not None: - pulumi.set(__self__, "new_game_sessions_per_creator", new_game_sessions_per_creator) + _setter("new_game_sessions_per_creator", new_game_sessions_per_creator) if policy_period_in_minutes is not None: - pulumi.set(__self__, "policy_period_in_minutes", policy_period_in_minutes) + _setter("policy_period_in_minutes", policy_period_in_minutes) @property @pulumi.getter(name="newGameSessionsPerCreator") @@ -288,12 +395,33 @@ def __init__(__self__, *, :param pulumi.Input[int] max_concurrent_game_session_activations: Maximum number of game sessions with status `ACTIVATING` to allow on an instance simultaneously. :param pulumi.Input[Sequence[pulumi.Input['FleetRuntimeConfigurationServerProcessArgs']]] server_processes: Collection of server process configurations that describe which server processes to run on each instance in a fleet. See below. """ + FleetRuntimeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + game_session_activation_timeout_seconds=game_session_activation_timeout_seconds, + max_concurrent_game_session_activations=max_concurrent_game_session_activations, + server_processes=server_processes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + game_session_activation_timeout_seconds: Optional[pulumi.Input[int]] = None, + max_concurrent_game_session_activations: Optional[pulumi.Input[int]] = None, + server_processes: Optional[pulumi.Input[Sequence[pulumi.Input['FleetRuntimeConfigurationServerProcessArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if game_session_activation_timeout_seconds is None and 'gameSessionActivationTimeoutSeconds' in kwargs: + game_session_activation_timeout_seconds = kwargs['gameSessionActivationTimeoutSeconds'] + if max_concurrent_game_session_activations is None and 'maxConcurrentGameSessionActivations' in kwargs: + max_concurrent_game_session_activations = kwargs['maxConcurrentGameSessionActivations'] + if server_processes is None and 'serverProcesses' in kwargs: + server_processes = kwargs['serverProcesses'] + if game_session_activation_timeout_seconds is not None: - pulumi.set(__self__, "game_session_activation_timeout_seconds", game_session_activation_timeout_seconds) + _setter("game_session_activation_timeout_seconds", game_session_activation_timeout_seconds) if max_concurrent_game_session_activations is not None: - pulumi.set(__self__, "max_concurrent_game_session_activations", max_concurrent_game_session_activations) + _setter("max_concurrent_game_session_activations", max_concurrent_game_session_activations) if server_processes is not None: - pulumi.set(__self__, "server_processes", server_processes) + _setter("server_processes", server_processes) @property @pulumi.getter(name="gameSessionActivationTimeoutSeconds") @@ -343,10 +471,33 @@ def __init__(__self__, *, :param pulumi.Input[str] launch_path: Location of the server executable in a game build. All game builds are installed on instances at the root : for Windows instances `C:\\game`, and for Linux instances `/local/game`. :param pulumi.Input[str] parameters: Optional list of parameters to pass to the server executable on launch. """ - pulumi.set(__self__, "concurrent_executions", concurrent_executions) - pulumi.set(__self__, "launch_path", launch_path) + FleetRuntimeConfigurationServerProcessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + concurrent_executions=concurrent_executions, + launch_path=launch_path, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + concurrent_executions: Optional[pulumi.Input[int]] = None, + launch_path: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if concurrent_executions is None and 'concurrentExecutions' in kwargs: + concurrent_executions = kwargs['concurrentExecutions'] + if concurrent_executions is None: + raise TypeError("Missing 'concurrent_executions' argument") + if launch_path is None and 'launchPath' in kwargs: + launch_path = kwargs['launchPath'] + if launch_path is None: + raise TypeError("Missing 'launch_path' argument") + + _setter("concurrent_executions", concurrent_executions) + _setter("launch_path", launch_path) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter(name="concurrentExecutions") @@ -396,9 +547,28 @@ def __init__(__self__, *, Specifying a warm-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances. Defaults to `60`. """ - pulumi.set(__self__, "target_tracking_configuration", target_tracking_configuration) + GameServerGroupAutoScalingPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_tracking_configuration=target_tracking_configuration, + estimated_instance_warmup=estimated_instance_warmup, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_tracking_configuration: Optional[pulumi.Input['GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs']] = None, + estimated_instance_warmup: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_tracking_configuration is None and 'targetTrackingConfiguration' in kwargs: + target_tracking_configuration = kwargs['targetTrackingConfiguration'] + if target_tracking_configuration is None: + raise TypeError("Missing 'target_tracking_configuration' argument") + if estimated_instance_warmup is None and 'estimatedInstanceWarmup' in kwargs: + estimated_instance_warmup = kwargs['estimatedInstanceWarmup'] + + _setter("target_tracking_configuration", target_tracking_configuration) if estimated_instance_warmup is not None: - pulumi.set(__self__, "estimated_instance_warmup", estimated_instance_warmup) + _setter("estimated_instance_warmup", estimated_instance_warmup) @property @pulumi.getter(name="targetTrackingConfiguration") @@ -432,7 +602,22 @@ def __init__(__self__, *, """ :param pulumi.Input[float] target_value: Desired value to use with a game server group target-based scaling policy. """ - pulumi.set(__self__, "target_value", target_value) + GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + + _setter("target_value", target_value) @property @pulumi.getter(name="targetValue") @@ -459,9 +644,28 @@ def __init__(__self__, *, Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options. """ - pulumi.set(__self__, "instance_type", instance_type) + GameServerGroupInstanceDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + weighted_capacity: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("instance_type", instance_type) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceType") @@ -502,12 +706,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A readable identifier for an existing EC2 launch template. :param pulumi.Input[str] version: The version of the EC2 launch template to use. If none is set, the default is the first version created. """ + GameServerGroupLaunchTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -555,9 +774,28 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_individual_player_latency_milliseconds: Maximum latency value that is allowed for any player. :param pulumi.Input[int] policy_duration_seconds: Length of time that the policy is enforced while placing a new game session. Absence of value for this attribute means that the policy is enforced until the queue times out. """ - pulumi.set(__self__, "maximum_individual_player_latency_milliseconds", maximum_individual_player_latency_milliseconds) + GameSessionQueuePlayerLatencyPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_individual_player_latency_milliseconds=maximum_individual_player_latency_milliseconds, + policy_duration_seconds=policy_duration_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_individual_player_latency_milliseconds: Optional[pulumi.Input[int]] = None, + policy_duration_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_individual_player_latency_milliseconds is None and 'maximumIndividualPlayerLatencyMilliseconds' in kwargs: + maximum_individual_player_latency_milliseconds = kwargs['maximumIndividualPlayerLatencyMilliseconds'] + if maximum_individual_player_latency_milliseconds is None: + raise TypeError("Missing 'maximum_individual_player_latency_milliseconds' argument") + if policy_duration_seconds is None and 'policyDurationSeconds' in kwargs: + policy_duration_seconds = kwargs['policyDurationSeconds'] + + _setter("maximum_individual_player_latency_milliseconds", maximum_individual_player_latency_milliseconds) if policy_duration_seconds is not None: - pulumi.set(__self__, "policy_duration_seconds", policy_duration_seconds) + _setter("policy_duration_seconds", policy_duration_seconds) @property @pulumi.getter(name="maximumIndividualPlayerLatencyMilliseconds") @@ -593,8 +831,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: A game property key :param pulumi.Input[str] value: A game property value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + MatchmakingConfigurationGamePropertyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -634,11 +889,38 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: ARN of the access role that allows Amazon GameLift to access your S3 bucket. :param pulumi.Input[str] object_version: A specific version of the file. If not set, the latest version of the file is retrieved. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "role_arn", role_arn) + ScriptStorageLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + role_arn=role_arn, + object_version=object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + object_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if object_version is None and 'objectVersion' in kwargs: + object_version = kwargs['objectVersion'] + + _setter("bucket", bucket) + _setter("key", key) + _setter("role_arn", role_arn) if object_version is not None: - pulumi.set(__self__, "object_version", object_version) + _setter("object_version", object_version) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/gamelift/alias.py b/sdk/python/pulumi_aws/gamelift/alias.py index df43023ec09..5db5850df12 100644 --- a/sdk/python/pulumi_aws/gamelift/alias.py +++ b/sdk/python/pulumi_aws/gamelift/alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the alias. :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. """ - pulumi.set(__self__, "routing_strategy", routing_strategy) + AliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + routing_strategy=routing_strategy, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + routing_strategy: Optional[pulumi.Input['AliasRoutingStrategyArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if routing_strategy is None and 'routingStrategy' in kwargs: + routing_strategy = kwargs['routingStrategy'] + if routing_strategy is None: + raise TypeError("Missing 'routing_strategy' argument") + + _setter("routing_strategy", routing_strategy) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="routingStrategy") @@ -102,21 +123,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _AliasState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + routing_strategy=routing_strategy, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + routing_strategy: Optional[pulumi.Input['AliasRoutingStrategyArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if routing_strategy is None and 'routingStrategy' in kwargs: + routing_strategy = kwargs['routingStrategy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if routing_strategy is not None: - pulumi.set(__self__, "routing_strategy", routing_strategy) + _setter("routing_strategy", routing_strategy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -277,6 +323,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AliasArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -297,6 +347,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["name"] = name + routing_strategy = _utilities.configure(routing_strategy, AliasRoutingStrategyArgs, True) if routing_strategy is None and not opts.urn: raise TypeError("Missing required property 'routing_strategy'") __props__.__dict__["routing_strategy"] = routing_strategy diff --git a/sdk/python/pulumi_aws/gamelift/build.py b/sdk/python/pulumi_aws/gamelift/build.py index 01977975fbd..10f6ce81c25 100644 --- a/sdk/python/pulumi_aws/gamelift/build.py +++ b/sdk/python/pulumi_aws/gamelift/build.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,41 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] version: Version that is associated with this build. """ - pulumi.set(__self__, "operating_system", operating_system) - pulumi.set(__self__, "storage_location", storage_location) + BuildArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + operating_system=operating_system, + storage_location=storage_location, + name=name, + tags=tags, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + operating_system: Optional[pulumi.Input[str]] = None, + storage_location: Optional[pulumi.Input['BuildStorageLocationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if operating_system is None and 'operatingSystem' in kwargs: + operating_system = kwargs['operatingSystem'] + if operating_system is None: + raise TypeError("Missing 'operating_system' argument") + if storage_location is None and 'storageLocation' in kwargs: + storage_location = kwargs['storageLocation'] + if storage_location is None: + raise TypeError("Missing 'storage_location' argument") + + _setter("operating_system", operating_system) + _setter("storage_location", storage_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="operatingSystem") @@ -119,23 +146,52 @@ def __init__(__self__, *, :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: Version that is associated with this build. """ + _BuildState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + operating_system=operating_system, + storage_location=storage_location, + tags=tags, + tags_all=tags_all, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + operating_system: Optional[pulumi.Input[str]] = None, + storage_location: Optional[pulumi.Input['BuildStorageLocationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if operating_system is None and 'operatingSystem' in kwargs: + operating_system = kwargs['operatingSystem'] + if storage_location is None and 'storageLocation' in kwargs: + storage_location = kwargs['storageLocation'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if operating_system is not None: - pulumi.set(__self__, "operating_system", operating_system) + _setter("operating_system", operating_system) if storage_location is not None: - pulumi.set(__self__, "storage_location", storage_location) + _setter("storage_location", storage_location) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -312,6 +368,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BuildArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -335,6 +395,7 @@ def _internal_init(__self__, if operating_system is None and not opts.urn: raise TypeError("Missing required property 'operating_system'") __props__.__dict__["operating_system"] = operating_system + storage_location = _utilities.configure(storage_location, BuildStorageLocationArgs, True) if storage_location is None and not opts.urn: raise TypeError("Missing required property 'storage_location'") __props__.__dict__["storage_location"] = storage_location diff --git a/sdk/python/pulumi_aws/gamelift/fleet.py b/sdk/python/pulumi_aws/gamelift/fleet.py index 6d4139a9123..31505a54ea2 100644 --- a/sdk/python/pulumi_aws/gamelift/fleet.py +++ b/sdk/python/pulumi_aws/gamelift/fleet.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,33 +47,94 @@ def __init__(__self__, *, :param pulumi.Input[str] script_id: ID of the GameLift Script to be deployed on the fleet. :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. """ - pulumi.set(__self__, "ec2_instance_type", ec2_instance_type) + FleetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ec2_instance_type=ec2_instance_type, + build_id=build_id, + certificate_configuration=certificate_configuration, + description=description, + ec2_inbound_permissions=ec2_inbound_permissions, + fleet_type=fleet_type, + instance_role_arn=instance_role_arn, + metric_groups=metric_groups, + name=name, + new_game_session_protection_policy=new_game_session_protection_policy, + resource_creation_limit_policy=resource_creation_limit_policy, + runtime_configuration=runtime_configuration, + script_id=script_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ec2_instance_type: Optional[pulumi.Input[str]] = None, + build_id: Optional[pulumi.Input[str]] = None, + certificate_configuration: Optional[pulumi.Input['FleetCertificateConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + ec2_inbound_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['FleetEc2InboundPermissionArgs']]]] = None, + fleet_type: Optional[pulumi.Input[str]] = None, + instance_role_arn: Optional[pulumi.Input[str]] = None, + metric_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + new_game_session_protection_policy: Optional[pulumi.Input[str]] = None, + resource_creation_limit_policy: Optional[pulumi.Input['FleetResourceCreationLimitPolicyArgs']] = None, + runtime_configuration: Optional[pulumi.Input['FleetRuntimeConfigurationArgs']] = None, + script_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ec2_instance_type is None and 'ec2InstanceType' in kwargs: + ec2_instance_type = kwargs['ec2InstanceType'] + if ec2_instance_type is None: + raise TypeError("Missing 'ec2_instance_type' argument") + if build_id is None and 'buildId' in kwargs: + build_id = kwargs['buildId'] + if certificate_configuration is None and 'certificateConfiguration' in kwargs: + certificate_configuration = kwargs['certificateConfiguration'] + if ec2_inbound_permissions is None and 'ec2InboundPermissions' in kwargs: + ec2_inbound_permissions = kwargs['ec2InboundPermissions'] + if fleet_type is None and 'fleetType' in kwargs: + fleet_type = kwargs['fleetType'] + if instance_role_arn is None and 'instanceRoleArn' in kwargs: + instance_role_arn = kwargs['instanceRoleArn'] + if metric_groups is None and 'metricGroups' in kwargs: + metric_groups = kwargs['metricGroups'] + if new_game_session_protection_policy is None and 'newGameSessionProtectionPolicy' in kwargs: + new_game_session_protection_policy = kwargs['newGameSessionProtectionPolicy'] + if resource_creation_limit_policy is None and 'resourceCreationLimitPolicy' in kwargs: + resource_creation_limit_policy = kwargs['resourceCreationLimitPolicy'] + if runtime_configuration is None and 'runtimeConfiguration' in kwargs: + runtime_configuration = kwargs['runtimeConfiguration'] + if script_id is None and 'scriptId' in kwargs: + script_id = kwargs['scriptId'] + + _setter("ec2_instance_type", ec2_instance_type) if build_id is not None: - pulumi.set(__self__, "build_id", build_id) + _setter("build_id", build_id) if certificate_configuration is not None: - pulumi.set(__self__, "certificate_configuration", certificate_configuration) + _setter("certificate_configuration", certificate_configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ec2_inbound_permissions is not None: - pulumi.set(__self__, "ec2_inbound_permissions", ec2_inbound_permissions) + _setter("ec2_inbound_permissions", ec2_inbound_permissions) if fleet_type is not None: - pulumi.set(__self__, "fleet_type", fleet_type) + _setter("fleet_type", fleet_type) if instance_role_arn is not None: - pulumi.set(__self__, "instance_role_arn", instance_role_arn) + _setter("instance_role_arn", instance_role_arn) if metric_groups is not None: - pulumi.set(__self__, "metric_groups", metric_groups) + _setter("metric_groups", metric_groups) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if new_game_session_protection_policy is not None: - pulumi.set(__self__, "new_game_session_protection_policy", new_game_session_protection_policy) + _setter("new_game_session_protection_policy", new_game_session_protection_policy) if resource_creation_limit_policy is not None: - pulumi.set(__self__, "resource_creation_limit_policy", resource_creation_limit_policy) + _setter("resource_creation_limit_policy", resource_creation_limit_policy) if runtime_configuration is not None: - pulumi.set(__self__, "runtime_configuration", runtime_configuration) + _setter("runtime_configuration", runtime_configuration) if script_id is not None: - pulumi.set(__self__, "script_id", script_id) + _setter("script_id", script_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="ec2InstanceType") @@ -289,49 +350,130 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _FleetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + build_arn=build_arn, + build_id=build_id, + certificate_configuration=certificate_configuration, + description=description, + ec2_inbound_permissions=ec2_inbound_permissions, + ec2_instance_type=ec2_instance_type, + fleet_type=fleet_type, + instance_role_arn=instance_role_arn, + log_paths=log_paths, + metric_groups=metric_groups, + name=name, + new_game_session_protection_policy=new_game_session_protection_policy, + operating_system=operating_system, + resource_creation_limit_policy=resource_creation_limit_policy, + runtime_configuration=runtime_configuration, + script_arn=script_arn, + script_id=script_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + build_arn: Optional[pulumi.Input[str]] = None, + build_id: Optional[pulumi.Input[str]] = None, + certificate_configuration: Optional[pulumi.Input['FleetCertificateConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + ec2_inbound_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['FleetEc2InboundPermissionArgs']]]] = None, + ec2_instance_type: Optional[pulumi.Input[str]] = None, + fleet_type: Optional[pulumi.Input[str]] = None, + instance_role_arn: Optional[pulumi.Input[str]] = None, + log_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + metric_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + new_game_session_protection_policy: Optional[pulumi.Input[str]] = None, + operating_system: Optional[pulumi.Input[str]] = None, + resource_creation_limit_policy: Optional[pulumi.Input['FleetResourceCreationLimitPolicyArgs']] = None, + runtime_configuration: Optional[pulumi.Input['FleetRuntimeConfigurationArgs']] = None, + script_arn: Optional[pulumi.Input[str]] = None, + script_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if build_arn is None and 'buildArn' in kwargs: + build_arn = kwargs['buildArn'] + if build_id is None and 'buildId' in kwargs: + build_id = kwargs['buildId'] + if certificate_configuration is None and 'certificateConfiguration' in kwargs: + certificate_configuration = kwargs['certificateConfiguration'] + if ec2_inbound_permissions is None and 'ec2InboundPermissions' in kwargs: + ec2_inbound_permissions = kwargs['ec2InboundPermissions'] + if ec2_instance_type is None and 'ec2InstanceType' in kwargs: + ec2_instance_type = kwargs['ec2InstanceType'] + if fleet_type is None and 'fleetType' in kwargs: + fleet_type = kwargs['fleetType'] + if instance_role_arn is None and 'instanceRoleArn' in kwargs: + instance_role_arn = kwargs['instanceRoleArn'] + if log_paths is None and 'logPaths' in kwargs: + log_paths = kwargs['logPaths'] + if metric_groups is None and 'metricGroups' in kwargs: + metric_groups = kwargs['metricGroups'] + if new_game_session_protection_policy is None and 'newGameSessionProtectionPolicy' in kwargs: + new_game_session_protection_policy = kwargs['newGameSessionProtectionPolicy'] + if operating_system is None and 'operatingSystem' in kwargs: + operating_system = kwargs['operatingSystem'] + if resource_creation_limit_policy is None and 'resourceCreationLimitPolicy' in kwargs: + resource_creation_limit_policy = kwargs['resourceCreationLimitPolicy'] + if runtime_configuration is None and 'runtimeConfiguration' in kwargs: + runtime_configuration = kwargs['runtimeConfiguration'] + if script_arn is None and 'scriptArn' in kwargs: + script_arn = kwargs['scriptArn'] + if script_id is None and 'scriptId' in kwargs: + script_id = kwargs['scriptId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if build_arn is not None: - pulumi.set(__self__, "build_arn", build_arn) + _setter("build_arn", build_arn) if build_id is not None: - pulumi.set(__self__, "build_id", build_id) + _setter("build_id", build_id) if certificate_configuration is not None: - pulumi.set(__self__, "certificate_configuration", certificate_configuration) + _setter("certificate_configuration", certificate_configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ec2_inbound_permissions is not None: - pulumi.set(__self__, "ec2_inbound_permissions", ec2_inbound_permissions) + _setter("ec2_inbound_permissions", ec2_inbound_permissions) if ec2_instance_type is not None: - pulumi.set(__self__, "ec2_instance_type", ec2_instance_type) + _setter("ec2_instance_type", ec2_instance_type) if fleet_type is not None: - pulumi.set(__self__, "fleet_type", fleet_type) + _setter("fleet_type", fleet_type) if instance_role_arn is not None: - pulumi.set(__self__, "instance_role_arn", instance_role_arn) + _setter("instance_role_arn", instance_role_arn) if log_paths is not None: - pulumi.set(__self__, "log_paths", log_paths) + _setter("log_paths", log_paths) if metric_groups is not None: - pulumi.set(__self__, "metric_groups", metric_groups) + _setter("metric_groups", metric_groups) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if new_game_session_protection_policy is not None: - pulumi.set(__self__, "new_game_session_protection_policy", new_game_session_protection_policy) + _setter("new_game_session_protection_policy", new_game_session_protection_policy) if operating_system is not None: - pulumi.set(__self__, "operating_system", operating_system) + _setter("operating_system", operating_system) if resource_creation_limit_policy is not None: - pulumi.set(__self__, "resource_creation_limit_policy", resource_creation_limit_policy) + _setter("resource_creation_limit_policy", resource_creation_limit_policy) if runtime_configuration is not None: - pulumi.set(__self__, "runtime_configuration", runtime_configuration) + _setter("runtime_configuration", runtime_configuration) if script_arn is not None: - pulumi.set(__self__, "script_arn", script_arn) + _setter("script_arn", script_arn) if script_id is not None: - pulumi.set(__self__, "script_id", script_id) + _setter("script_id", script_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -685,6 +827,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FleetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -714,6 +860,7 @@ def _internal_init(__self__, __props__ = FleetArgs.__new__(FleetArgs) __props__.__dict__["build_id"] = build_id + certificate_configuration = _utilities.configure(certificate_configuration, FleetCertificateConfigurationArgs, True) __props__.__dict__["certificate_configuration"] = certificate_configuration __props__.__dict__["description"] = description __props__.__dict__["ec2_inbound_permissions"] = ec2_inbound_permissions @@ -725,7 +872,9 @@ def _internal_init(__self__, __props__.__dict__["metric_groups"] = metric_groups __props__.__dict__["name"] = name __props__.__dict__["new_game_session_protection_policy"] = new_game_session_protection_policy + resource_creation_limit_policy = _utilities.configure(resource_creation_limit_policy, FleetResourceCreationLimitPolicyArgs, True) __props__.__dict__["resource_creation_limit_policy"] = resource_creation_limit_policy + runtime_configuration = _utilities.configure(runtime_configuration, FleetRuntimeConfigurationArgs, True) __props__.__dict__["runtime_configuration"] = runtime_configuration __props__.__dict__["script_id"] = script_id __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/gamelift/game_server_group.py b/sdk/python/pulumi_aws/gamelift/game_server_group.py index 96c744e4d58..67276a28fe7 100644 --- a/sdk/python/pulumi_aws/gamelift/game_server_group.py +++ b/sdk/python/pulumi_aws/gamelift/game_server_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -48,22 +48,85 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_subnets: A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used. """ - pulumi.set(__self__, "game_server_group_name", game_server_group_name) - pulumi.set(__self__, "instance_definitions", instance_definitions) - pulumi.set(__self__, "launch_template", launch_template) - pulumi.set(__self__, "max_size", max_size) - pulumi.set(__self__, "min_size", min_size) - pulumi.set(__self__, "role_arn", role_arn) + GameServerGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + game_server_group_name=game_server_group_name, + instance_definitions=instance_definitions, + launch_template=launch_template, + max_size=max_size, + min_size=min_size, + role_arn=role_arn, + auto_scaling_policy=auto_scaling_policy, + balancing_strategy=balancing_strategy, + game_server_protection_policy=game_server_protection_policy, + tags=tags, + vpc_subnets=vpc_subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + game_server_group_name: Optional[pulumi.Input[str]] = None, + instance_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['GameServerGroupInstanceDefinitionArgs']]]] = None, + launch_template: Optional[pulumi.Input['GameServerGroupLaunchTemplateArgs']] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + auto_scaling_policy: Optional[pulumi.Input['GameServerGroupAutoScalingPolicyArgs']] = None, + balancing_strategy: Optional[pulumi.Input[str]] = None, + game_server_protection_policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if game_server_group_name is None and 'gameServerGroupName' in kwargs: + game_server_group_name = kwargs['gameServerGroupName'] + if game_server_group_name is None: + raise TypeError("Missing 'game_server_group_name' argument") + if instance_definitions is None and 'instanceDefinitions' in kwargs: + instance_definitions = kwargs['instanceDefinitions'] + if instance_definitions is None: + raise TypeError("Missing 'instance_definitions' argument") + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if launch_template is None: + raise TypeError("Missing 'launch_template' argument") + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if max_size is None: + raise TypeError("Missing 'max_size' argument") + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if min_size is None: + raise TypeError("Missing 'min_size' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if auto_scaling_policy is None and 'autoScalingPolicy' in kwargs: + auto_scaling_policy = kwargs['autoScalingPolicy'] + if balancing_strategy is None and 'balancingStrategy' in kwargs: + balancing_strategy = kwargs['balancingStrategy'] + if game_server_protection_policy is None and 'gameServerProtectionPolicy' in kwargs: + game_server_protection_policy = kwargs['gameServerProtectionPolicy'] + if vpc_subnets is None and 'vpcSubnets' in kwargs: + vpc_subnets = kwargs['vpcSubnets'] + + _setter("game_server_group_name", game_server_group_name) + _setter("instance_definitions", instance_definitions) + _setter("launch_template", launch_template) + _setter("max_size", max_size) + _setter("min_size", min_size) + _setter("role_arn", role_arn) if auto_scaling_policy is not None: - pulumi.set(__self__, "auto_scaling_policy", auto_scaling_policy) + _setter("auto_scaling_policy", auto_scaling_policy) if balancing_strategy is not None: - pulumi.set(__self__, "balancing_strategy", balancing_strategy) + _setter("balancing_strategy", balancing_strategy) if game_server_protection_policy is not None: - pulumi.set(__self__, "game_server_protection_policy", game_server_protection_policy) + _setter("game_server_protection_policy", game_server_protection_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_subnets is not None: - pulumi.set(__self__, "vpc_subnets", vpc_subnets) + _setter("vpc_subnets", vpc_subnets) @property @pulumi.getter(name="gameServerGroupName") @@ -239,37 +302,98 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_subnets: A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used. """ + _GameServerGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_scaling_group_arn=auto_scaling_group_arn, + auto_scaling_policy=auto_scaling_policy, + balancing_strategy=balancing_strategy, + game_server_group_name=game_server_group_name, + game_server_protection_policy=game_server_protection_policy, + instance_definitions=instance_definitions, + launch_template=launch_template, + max_size=max_size, + min_size=min_size, + role_arn=role_arn, + tags=tags, + tags_all=tags_all, + vpc_subnets=vpc_subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_scaling_group_arn: Optional[pulumi.Input[str]] = None, + auto_scaling_policy: Optional[pulumi.Input['GameServerGroupAutoScalingPolicyArgs']] = None, + balancing_strategy: Optional[pulumi.Input[str]] = None, + game_server_group_name: Optional[pulumi.Input[str]] = None, + game_server_protection_policy: Optional[pulumi.Input[str]] = None, + instance_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['GameServerGroupInstanceDefinitionArgs']]]] = None, + launch_template: Optional[pulumi.Input['GameServerGroupLaunchTemplateArgs']] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_scaling_group_arn is None and 'autoScalingGroupArn' in kwargs: + auto_scaling_group_arn = kwargs['autoScalingGroupArn'] + if auto_scaling_policy is None and 'autoScalingPolicy' in kwargs: + auto_scaling_policy = kwargs['autoScalingPolicy'] + if balancing_strategy is None and 'balancingStrategy' in kwargs: + balancing_strategy = kwargs['balancingStrategy'] + if game_server_group_name is None and 'gameServerGroupName' in kwargs: + game_server_group_name = kwargs['gameServerGroupName'] + if game_server_protection_policy is None and 'gameServerProtectionPolicy' in kwargs: + game_server_protection_policy = kwargs['gameServerProtectionPolicy'] + if instance_definitions is None and 'instanceDefinitions' in kwargs: + instance_definitions = kwargs['instanceDefinitions'] + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if max_size is None and 'maxSize' in kwargs: + max_size = kwargs['maxSize'] + if min_size is None and 'minSize' in kwargs: + min_size = kwargs['minSize'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_subnets is None and 'vpcSubnets' in kwargs: + vpc_subnets = kwargs['vpcSubnets'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_scaling_group_arn is not None: - pulumi.set(__self__, "auto_scaling_group_arn", auto_scaling_group_arn) + _setter("auto_scaling_group_arn", auto_scaling_group_arn) if auto_scaling_policy is not None: - pulumi.set(__self__, "auto_scaling_policy", auto_scaling_policy) + _setter("auto_scaling_policy", auto_scaling_policy) if balancing_strategy is not None: - pulumi.set(__self__, "balancing_strategy", balancing_strategy) + _setter("balancing_strategy", balancing_strategy) if game_server_group_name is not None: - pulumi.set(__self__, "game_server_group_name", game_server_group_name) + _setter("game_server_group_name", game_server_group_name) if game_server_protection_policy is not None: - pulumi.set(__self__, "game_server_protection_policy", game_server_protection_policy) + _setter("game_server_protection_policy", game_server_protection_policy) if instance_definitions is not None: - pulumi.set(__self__, "instance_definitions", instance_definitions) + _setter("instance_definitions", instance_definitions) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if max_size is not None: - pulumi.set(__self__, "max_size", max_size) + _setter("max_size", max_size) if min_size is not None: - pulumi.set(__self__, "min_size", min_size) + _setter("min_size", min_size) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_subnets is not None: - pulumi.set(__self__, "vpc_subnets", vpc_subnets) + _setter("vpc_subnets", vpc_subnets) @property @pulumi.getter @@ -699,6 +823,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GameServerGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -724,6 +852,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = GameServerGroupArgs.__new__(GameServerGroupArgs) + auto_scaling_policy = _utilities.configure(auto_scaling_policy, GameServerGroupAutoScalingPolicyArgs, True) __props__.__dict__["auto_scaling_policy"] = auto_scaling_policy __props__.__dict__["balancing_strategy"] = balancing_strategy if game_server_group_name is None and not opts.urn: @@ -733,6 +862,7 @@ def _internal_init(__self__, if instance_definitions is None and not opts.urn: raise TypeError("Missing required property 'instance_definitions'") __props__.__dict__["instance_definitions"] = instance_definitions + launch_template = _utilities.configure(launch_template, GameServerGroupLaunchTemplateArgs, True) if launch_template is None and not opts.urn: raise TypeError("Missing required property 'launch_template'") __props__.__dict__["launch_template"] = launch_template diff --git a/sdk/python/pulumi_aws/gamelift/game_session_queue.py b/sdk/python/pulumi_aws/gamelift/game_session_queue.py index 90279f88ffa..292b13140a0 100644 --- a/sdk/python/pulumi_aws/gamelift/game_session_queue.py +++ b/sdk/python/pulumi_aws/gamelift/game_session_queue.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,20 +33,51 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[int] timeout_in_seconds: Maximum time a game session request can remain in the queue. """ + GameSessionQueueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_event_data=custom_event_data, + destinations=destinations, + name=name, + notification_target=notification_target, + player_latency_policies=player_latency_policies, + tags=tags, + timeout_in_seconds=timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_event_data: Optional[pulumi.Input[str]] = None, + destinations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_target: Optional[pulumi.Input[str]] = None, + player_latency_policies: Optional[pulumi.Input[Sequence[pulumi.Input['GameSessionQueuePlayerLatencyPolicyArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_event_data is None and 'customEventData' in kwargs: + custom_event_data = kwargs['customEventData'] + if notification_target is None and 'notificationTarget' in kwargs: + notification_target = kwargs['notificationTarget'] + if player_latency_policies is None and 'playerLatencyPolicies' in kwargs: + player_latency_policies = kwargs['playerLatencyPolicies'] + if timeout_in_seconds is None and 'timeoutInSeconds' in kwargs: + timeout_in_seconds = kwargs['timeoutInSeconds'] + if custom_event_data is not None: - pulumi.set(__self__, "custom_event_data", custom_event_data) + _setter("custom_event_data", custom_event_data) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_target is not None: - pulumi.set(__self__, "notification_target", notification_target) + _setter("notification_target", notification_target) if player_latency_policies is not None: - pulumi.set(__self__, "player_latency_policies", player_latency_policies) + _setter("player_latency_policies", player_latency_policies) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeout_in_seconds is not None: - pulumi.set(__self__, "timeout_in_seconds", timeout_in_seconds) + _setter("timeout_in_seconds", timeout_in_seconds) @property @pulumi.getter(name="customEventData") @@ -157,27 +188,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] timeout_in_seconds: Maximum time a game session request can remain in the queue. """ + _GameSessionQueueState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + custom_event_data=custom_event_data, + destinations=destinations, + name=name, + notification_target=notification_target, + player_latency_policies=player_latency_policies, + tags=tags, + tags_all=tags_all, + timeout_in_seconds=timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + custom_event_data: Optional[pulumi.Input[str]] = None, + destinations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_target: Optional[pulumi.Input[str]] = None, + player_latency_policies: Optional[pulumi.Input[Sequence[pulumi.Input['GameSessionQueuePlayerLatencyPolicyArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_event_data is None and 'customEventData' in kwargs: + custom_event_data = kwargs['customEventData'] + if notification_target is None and 'notificationTarget' in kwargs: + notification_target = kwargs['notificationTarget'] + if player_latency_policies is None and 'playerLatencyPolicies' in kwargs: + player_latency_policies = kwargs['playerLatencyPolicies'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if timeout_in_seconds is None and 'timeoutInSeconds' in kwargs: + timeout_in_seconds = kwargs['timeoutInSeconds'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if custom_event_data is not None: - pulumi.set(__self__, "custom_event_data", custom_event_data) + _setter("custom_event_data", custom_event_data) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_target is not None: - pulumi.set(__self__, "notification_target", notification_target) + _setter("notification_target", notification_target) if player_latency_policies is not None: - pulumi.set(__self__, "player_latency_policies", player_latency_policies) + _setter("player_latency_policies", player_latency_policies) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeout_in_seconds is not None: - pulumi.set(__self__, "timeout_in_seconds", timeout_in_seconds) + _setter("timeout_in_seconds", timeout_in_seconds) @property @pulumi.getter @@ -400,6 +468,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GameSessionQueueArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/gamelift/matchmaking_configuration.py b/sdk/python/pulumi_aws/gamelift/matchmaking_configuration.py index 51d99a5aedb..9d9a83f355d 100644 --- a/sdk/python/pulumi_aws/gamelift/matchmaking_configuration.py +++ b/sdk/python/pulumi_aws/gamelift/matchmaking_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -49,34 +49,101 @@ def __init__(__self__, *, :param pulumi.Input[str] notification_target: An SNS topic ARN that is set up to receive matchmaking notifications. :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. """ - pulumi.set(__self__, "request_timeout_seconds", request_timeout_seconds) - pulumi.set(__self__, "rule_set_name", rule_set_name) + MatchmakingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + request_timeout_seconds=request_timeout_seconds, + rule_set_name=rule_set_name, + acceptance_required=acceptance_required, + acceptance_timeout_seconds=acceptance_timeout_seconds, + additional_player_count=additional_player_count, + backfill_mode=backfill_mode, + custom_event_data=custom_event_data, + description=description, + flex_match_mode=flex_match_mode, + game_properties=game_properties, + game_session_data=game_session_data, + game_session_queue_arns=game_session_queue_arns, + name=name, + notification_target=notification_target, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + request_timeout_seconds: Optional[pulumi.Input[int]] = None, + rule_set_name: Optional[pulumi.Input[str]] = None, + acceptance_required: Optional[pulumi.Input[bool]] = None, + acceptance_timeout_seconds: Optional[pulumi.Input[int]] = None, + additional_player_count: Optional[pulumi.Input[int]] = None, + backfill_mode: Optional[pulumi.Input[str]] = None, + custom_event_data: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + flex_match_mode: Optional[pulumi.Input[str]] = None, + game_properties: Optional[pulumi.Input[Sequence[pulumi.Input['MatchmakingConfigurationGamePropertyArgs']]]] = None, + game_session_data: Optional[pulumi.Input[str]] = None, + game_session_queue_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_target: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if request_timeout_seconds is None and 'requestTimeoutSeconds' in kwargs: + request_timeout_seconds = kwargs['requestTimeoutSeconds'] + if request_timeout_seconds is None: + raise TypeError("Missing 'request_timeout_seconds' argument") + if rule_set_name is None and 'ruleSetName' in kwargs: + rule_set_name = kwargs['ruleSetName'] + if rule_set_name is None: + raise TypeError("Missing 'rule_set_name' argument") + if acceptance_required is None and 'acceptanceRequired' in kwargs: + acceptance_required = kwargs['acceptanceRequired'] + if acceptance_timeout_seconds is None and 'acceptanceTimeoutSeconds' in kwargs: + acceptance_timeout_seconds = kwargs['acceptanceTimeoutSeconds'] + if additional_player_count is None and 'additionalPlayerCount' in kwargs: + additional_player_count = kwargs['additionalPlayerCount'] + if backfill_mode is None and 'backfillMode' in kwargs: + backfill_mode = kwargs['backfillMode'] + if custom_event_data is None and 'customEventData' in kwargs: + custom_event_data = kwargs['customEventData'] + if flex_match_mode is None and 'flexMatchMode' in kwargs: + flex_match_mode = kwargs['flexMatchMode'] + if game_properties is None and 'gameProperties' in kwargs: + game_properties = kwargs['gameProperties'] + if game_session_data is None and 'gameSessionData' in kwargs: + game_session_data = kwargs['gameSessionData'] + if game_session_queue_arns is None and 'gameSessionQueueArns' in kwargs: + game_session_queue_arns = kwargs['gameSessionQueueArns'] + if notification_target is None and 'notificationTarget' in kwargs: + notification_target = kwargs['notificationTarget'] + + _setter("request_timeout_seconds", request_timeout_seconds) + _setter("rule_set_name", rule_set_name) if acceptance_required is not None: - pulumi.set(__self__, "acceptance_required", acceptance_required) + _setter("acceptance_required", acceptance_required) if acceptance_timeout_seconds is not None: - pulumi.set(__self__, "acceptance_timeout_seconds", acceptance_timeout_seconds) + _setter("acceptance_timeout_seconds", acceptance_timeout_seconds) if additional_player_count is not None: - pulumi.set(__self__, "additional_player_count", additional_player_count) + _setter("additional_player_count", additional_player_count) if backfill_mode is not None: - pulumi.set(__self__, "backfill_mode", backfill_mode) + _setter("backfill_mode", backfill_mode) if custom_event_data is not None: - pulumi.set(__self__, "custom_event_data", custom_event_data) + _setter("custom_event_data", custom_event_data) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if flex_match_mode is not None: - pulumi.set(__self__, "flex_match_mode", flex_match_mode) + _setter("flex_match_mode", flex_match_mode) if game_properties is not None: - pulumi.set(__self__, "game_properties", game_properties) + _setter("game_properties", game_properties) if game_session_data is not None: - pulumi.set(__self__, "game_session_data", game_session_data) + _setter("game_session_data", game_session_data) if game_session_queue_arns is not None: - pulumi.set(__self__, "game_session_queue_arns", game_session_queue_arns) + _setter("game_session_queue_arns", game_session_queue_arns) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_target is not None: - pulumi.set(__self__, "notification_target", notification_target) + _setter("notification_target", notification_target) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="requestTimeoutSeconds") @@ -302,47 +369,124 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _MatchmakingConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + acceptance_required=acceptance_required, + acceptance_timeout_seconds=acceptance_timeout_seconds, + additional_player_count=additional_player_count, + arn=arn, + backfill_mode=backfill_mode, + creation_time=creation_time, + custom_event_data=custom_event_data, + description=description, + flex_match_mode=flex_match_mode, + game_properties=game_properties, + game_session_data=game_session_data, + game_session_queue_arns=game_session_queue_arns, + name=name, + notification_target=notification_target, + request_timeout_seconds=request_timeout_seconds, + rule_set_arn=rule_set_arn, + rule_set_name=rule_set_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acceptance_required: Optional[pulumi.Input[bool]] = None, + acceptance_timeout_seconds: Optional[pulumi.Input[int]] = None, + additional_player_count: Optional[pulumi.Input[int]] = None, + arn: Optional[pulumi.Input[str]] = None, + backfill_mode: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + custom_event_data: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + flex_match_mode: Optional[pulumi.Input[str]] = None, + game_properties: Optional[pulumi.Input[Sequence[pulumi.Input['MatchmakingConfigurationGamePropertyArgs']]]] = None, + game_session_data: Optional[pulumi.Input[str]] = None, + game_session_queue_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_target: Optional[pulumi.Input[str]] = None, + request_timeout_seconds: Optional[pulumi.Input[int]] = None, + rule_set_arn: Optional[pulumi.Input[str]] = None, + rule_set_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acceptance_required is None and 'acceptanceRequired' in kwargs: + acceptance_required = kwargs['acceptanceRequired'] + if acceptance_timeout_seconds is None and 'acceptanceTimeoutSeconds' in kwargs: + acceptance_timeout_seconds = kwargs['acceptanceTimeoutSeconds'] + if additional_player_count is None and 'additionalPlayerCount' in kwargs: + additional_player_count = kwargs['additionalPlayerCount'] + if backfill_mode is None and 'backfillMode' in kwargs: + backfill_mode = kwargs['backfillMode'] + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if custom_event_data is None and 'customEventData' in kwargs: + custom_event_data = kwargs['customEventData'] + if flex_match_mode is None and 'flexMatchMode' in kwargs: + flex_match_mode = kwargs['flexMatchMode'] + if game_properties is None and 'gameProperties' in kwargs: + game_properties = kwargs['gameProperties'] + if game_session_data is None and 'gameSessionData' in kwargs: + game_session_data = kwargs['gameSessionData'] + if game_session_queue_arns is None and 'gameSessionQueueArns' in kwargs: + game_session_queue_arns = kwargs['gameSessionQueueArns'] + if notification_target is None and 'notificationTarget' in kwargs: + notification_target = kwargs['notificationTarget'] + if request_timeout_seconds is None and 'requestTimeoutSeconds' in kwargs: + request_timeout_seconds = kwargs['requestTimeoutSeconds'] + if rule_set_arn is None and 'ruleSetArn' in kwargs: + rule_set_arn = kwargs['ruleSetArn'] + if rule_set_name is None and 'ruleSetName' in kwargs: + rule_set_name = kwargs['ruleSetName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if acceptance_required is not None: - pulumi.set(__self__, "acceptance_required", acceptance_required) + _setter("acceptance_required", acceptance_required) if acceptance_timeout_seconds is not None: - pulumi.set(__self__, "acceptance_timeout_seconds", acceptance_timeout_seconds) + _setter("acceptance_timeout_seconds", acceptance_timeout_seconds) if additional_player_count is not None: - pulumi.set(__self__, "additional_player_count", additional_player_count) + _setter("additional_player_count", additional_player_count) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if backfill_mode is not None: - pulumi.set(__self__, "backfill_mode", backfill_mode) + _setter("backfill_mode", backfill_mode) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if custom_event_data is not None: - pulumi.set(__self__, "custom_event_data", custom_event_data) + _setter("custom_event_data", custom_event_data) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if flex_match_mode is not None: - pulumi.set(__self__, "flex_match_mode", flex_match_mode) + _setter("flex_match_mode", flex_match_mode) if game_properties is not None: - pulumi.set(__self__, "game_properties", game_properties) + _setter("game_properties", game_properties) if game_session_data is not None: - pulumi.set(__self__, "game_session_data", game_session_data) + _setter("game_session_data", game_session_data) if game_session_queue_arns is not None: - pulumi.set(__self__, "game_session_queue_arns", game_session_queue_arns) + _setter("game_session_queue_arns", game_session_queue_arns) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_target is not None: - pulumi.set(__self__, "notification_target", notification_target) + _setter("notification_target", notification_target) if request_timeout_seconds is not None: - pulumi.set(__self__, "request_timeout_seconds", request_timeout_seconds) + _setter("request_timeout_seconds", request_timeout_seconds) if rule_set_arn is not None: - pulumi.set(__self__, "rule_set_arn", rule_set_arn) + _setter("rule_set_arn", rule_set_arn) if rule_set_name is not None: - pulumi.set(__self__, "rule_set_name", rule_set_name) + _setter("rule_set_name", rule_set_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="acceptanceRequired") @@ -732,6 +876,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MatchmakingConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/gamelift/matchmaking_rule_set.py b/sdk/python/pulumi_aws/gamelift/matchmaking_rule_set.py index 44080087630..d363caddb05 100644 --- a/sdk/python/pulumi_aws/gamelift/matchmaking_rule_set.py +++ b/sdk/python/pulumi_aws/gamelift/matchmaking_rule_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MatchmakingRuleSetArgs', 'MatchmakingRuleSet'] @@ -22,11 +22,30 @@ def __init__(__self__, *, :param pulumi.Input[str] rule_set_body: JSON encoded string containing rule set data. :param pulumi.Input[str] name: Name of the matchmaking rule set. """ - pulumi.set(__self__, "rule_set_body", rule_set_body) + MatchmakingRuleSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_set_body=rule_set_body, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_set_body: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_set_body is None and 'ruleSetBody' in kwargs: + rule_set_body = kwargs['ruleSetBody'] + if rule_set_body is None: + raise TypeError("Missing 'rule_set_body' argument") + + _setter("rule_set_body", rule_set_body) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="ruleSetBody") @@ -77,19 +96,42 @@ def __init__(__self__, *, :param pulumi.Input[str] rule_set_body: JSON encoded string containing rule set data. :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. """ + _MatchmakingRuleSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + rule_set_body=rule_set_body, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rule_set_body: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_set_body is None and 'ruleSetBody' in kwargs: + rule_set_body = kwargs['ruleSetBody'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rule_set_body is not None: - pulumi.set(__self__, "rule_set_body", rule_set_body) + _setter("rule_set_body", rule_set_body) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -208,6 +250,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MatchmakingRuleSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/gamelift/outputs.py b/sdk/python/pulumi_aws/gamelift/outputs.py index 2153719cbd0..63c65a82cd8 100644 --- a/sdk/python/pulumi_aws/gamelift/outputs.py +++ b/sdk/python/pulumi_aws/gamelift/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -55,11 +55,30 @@ def __init__(__self__, *, :param str fleet_id: ID of the GameLift Fleet to point the alias to. :param str message: Message text to be used with the `TERMINAL` routing strategy. """ - pulumi.set(__self__, "type", type) + AliasRoutingStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + fleet_id=fleet_id, + message=message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + fleet_id: Optional[str] = None, + message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if fleet_id is None and 'fleetId' in kwargs: + fleet_id = kwargs['fleetId'] + + _setter("type", type) if fleet_id is not None: - pulumi.set(__self__, "fleet_id", fleet_id) + _setter("fleet_id", fleet_id) if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) @property @pulumi.getter @@ -118,11 +137,38 @@ def __init__(__self__, *, :param str role_arn: ARN of the access role that allows Amazon GameLift to access your S3 bucket. :param str object_version: A specific version of the file. If not set, the latest version of the file is retrieved. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "role_arn", role_arn) + BuildStorageLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + role_arn=role_arn, + object_version=object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + role_arn: Optional[str] = None, + object_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if object_version is None and 'objectVersion' in kwargs: + object_version = kwargs['objectVersion'] + + _setter("bucket", bucket) + _setter("key", key) + _setter("role_arn", role_arn) if object_version is not None: - pulumi.set(__self__, "object_version", object_version) + _setter("object_version", object_version) @property @pulumi.getter @@ -181,8 +227,21 @@ def __init__(__self__, *, """ :param str certificate_type: Indicates whether a TLS/SSL certificate is generated for a fleet. Valid values are `DISABLED` and `GENERATED`. Default value is `DISABLED`. """ + FleetCertificateConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_type=certificate_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_type is None and 'certificateType' in kwargs: + certificate_type = kwargs['certificateType'] + if certificate_type is not None: - pulumi.set(__self__, "certificate_type", certificate_type) + _setter("certificate_type", certificate_type) @property @pulumi.getter(name="certificateType") @@ -227,10 +286,41 @@ def __init__(__self__, *, :param str protocol: Network communication protocol used by the fleetE.g., `TCP` or `UDP` :param int to_port: Ending value for a range of allowed port numbers. Port numbers are end-inclusive. This value must be higher than `from_port`. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "ip_range", ip_range) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + FleetEc2InboundPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + ip_range=ip_range, + protocol=protocol, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + ip_range: Optional[str] = None, + protocol: Optional[str] = None, + to_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if ip_range is None and 'ipRange' in kwargs: + ip_range = kwargs['ipRange'] + if ip_range is None: + raise TypeError("Missing 'ip_range' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + + _setter("from_port", from_port) + _setter("ip_range", ip_range) + _setter("protocol", protocol) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -293,10 +383,27 @@ def __init__(__self__, *, :param int new_game_sessions_per_creator: Maximum number of game sessions that an individual can create during the policy period. :param int policy_period_in_minutes: Time span used in evaluating the resource creation limit policy. """ + FleetResourceCreationLimitPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + new_game_sessions_per_creator=new_game_sessions_per_creator, + policy_period_in_minutes=policy_period_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + new_game_sessions_per_creator: Optional[int] = None, + policy_period_in_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if new_game_sessions_per_creator is None and 'newGameSessionsPerCreator' in kwargs: + new_game_sessions_per_creator = kwargs['newGameSessionsPerCreator'] + if policy_period_in_minutes is None and 'policyPeriodInMinutes' in kwargs: + policy_period_in_minutes = kwargs['policyPeriodInMinutes'] + if new_game_sessions_per_creator is not None: - pulumi.set(__self__, "new_game_sessions_per_creator", new_game_sessions_per_creator) + _setter("new_game_sessions_per_creator", new_game_sessions_per_creator) if policy_period_in_minutes is not None: - pulumi.set(__self__, "policy_period_in_minutes", policy_period_in_minutes) + _setter("policy_period_in_minutes", policy_period_in_minutes) @property @pulumi.getter(name="newGameSessionsPerCreator") @@ -347,12 +454,33 @@ def __init__(__self__, *, :param int max_concurrent_game_session_activations: Maximum number of game sessions with status `ACTIVATING` to allow on an instance simultaneously. :param Sequence['FleetRuntimeConfigurationServerProcessArgs'] server_processes: Collection of server process configurations that describe which server processes to run on each instance in a fleet. See below. """ + FleetRuntimeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + game_session_activation_timeout_seconds=game_session_activation_timeout_seconds, + max_concurrent_game_session_activations=max_concurrent_game_session_activations, + server_processes=server_processes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + game_session_activation_timeout_seconds: Optional[int] = None, + max_concurrent_game_session_activations: Optional[int] = None, + server_processes: Optional[Sequence['outputs.FleetRuntimeConfigurationServerProcess']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if game_session_activation_timeout_seconds is None and 'gameSessionActivationTimeoutSeconds' in kwargs: + game_session_activation_timeout_seconds = kwargs['gameSessionActivationTimeoutSeconds'] + if max_concurrent_game_session_activations is None and 'maxConcurrentGameSessionActivations' in kwargs: + max_concurrent_game_session_activations = kwargs['maxConcurrentGameSessionActivations'] + if server_processes is None and 'serverProcesses' in kwargs: + server_processes = kwargs['serverProcesses'] + if game_session_activation_timeout_seconds is not None: - pulumi.set(__self__, "game_session_activation_timeout_seconds", game_session_activation_timeout_seconds) + _setter("game_session_activation_timeout_seconds", game_session_activation_timeout_seconds) if max_concurrent_game_session_activations is not None: - pulumi.set(__self__, "max_concurrent_game_session_activations", max_concurrent_game_session_activations) + _setter("max_concurrent_game_session_activations", max_concurrent_game_session_activations) if server_processes is not None: - pulumi.set(__self__, "server_processes", server_processes) + _setter("server_processes", server_processes) @property @pulumi.getter(name="gameSessionActivationTimeoutSeconds") @@ -409,10 +537,33 @@ def __init__(__self__, *, :param str launch_path: Location of the server executable in a game build. All game builds are installed on instances at the root : for Windows instances `C:\\game`, and for Linux instances `/local/game`. :param str parameters: Optional list of parameters to pass to the server executable on launch. """ - pulumi.set(__self__, "concurrent_executions", concurrent_executions) - pulumi.set(__self__, "launch_path", launch_path) + FleetRuntimeConfigurationServerProcess._configure( + lambda key, value: pulumi.set(__self__, key, value), + concurrent_executions=concurrent_executions, + launch_path=launch_path, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + concurrent_executions: Optional[int] = None, + launch_path: Optional[str] = None, + parameters: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if concurrent_executions is None and 'concurrentExecutions' in kwargs: + concurrent_executions = kwargs['concurrentExecutions'] + if concurrent_executions is None: + raise TypeError("Missing 'concurrent_executions' argument") + if launch_path is None and 'launchPath' in kwargs: + launch_path = kwargs['launchPath'] + if launch_path is None: + raise TypeError("Missing 'launch_path' argument") + + _setter("concurrent_executions", concurrent_executions) + _setter("launch_path", launch_path) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter(name="concurrentExecutions") @@ -469,9 +620,28 @@ def __init__(__self__, *, Specifying a warm-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances. Defaults to `60`. """ - pulumi.set(__self__, "target_tracking_configuration", target_tracking_configuration) + GameServerGroupAutoScalingPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_tracking_configuration=target_tracking_configuration, + estimated_instance_warmup=estimated_instance_warmup, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_tracking_configuration: Optional['outputs.GameServerGroupAutoScalingPolicyTargetTrackingConfiguration'] = None, + estimated_instance_warmup: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_tracking_configuration is None and 'targetTrackingConfiguration' in kwargs: + target_tracking_configuration = kwargs['targetTrackingConfiguration'] + if target_tracking_configuration is None: + raise TypeError("Missing 'target_tracking_configuration' argument") + if estimated_instance_warmup is None and 'estimatedInstanceWarmup' in kwargs: + estimated_instance_warmup = kwargs['estimatedInstanceWarmup'] + + _setter("target_tracking_configuration", target_tracking_configuration) if estimated_instance_warmup is not None: - pulumi.set(__self__, "estimated_instance_warmup", estimated_instance_warmup) + _setter("estimated_instance_warmup", estimated_instance_warmup) @property @pulumi.getter(name="targetTrackingConfiguration") @@ -514,7 +684,22 @@ def __init__(__self__, *, """ :param float target_value: Desired value to use with a game server group target-based scaling policy. """ - pulumi.set(__self__, "target_value", target_value) + GameServerGroupAutoScalingPolicyTargetTrackingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_value=target_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_value: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_value is None and 'targetValue' in kwargs: + target_value = kwargs['targetValue'] + if target_value is None: + raise TypeError("Missing 'target_value' argument") + + _setter("target_value", target_value) @property @pulumi.getter(name="targetValue") @@ -556,9 +741,28 @@ def __init__(__self__, *, Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options. """ - pulumi.set(__self__, "instance_type", instance_type) + GameServerGroupInstanceDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + weighted_capacity=weighted_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + weighted_capacity: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if weighted_capacity is None and 'weightedCapacity' in kwargs: + weighted_capacity = kwargs['weightedCapacity'] + + _setter("instance_type", instance_type) if weighted_capacity is not None: - pulumi.set(__self__, "weighted_capacity", weighted_capacity) + _setter("weighted_capacity", weighted_capacity) @property @pulumi.getter(name="instanceType") @@ -591,12 +795,27 @@ def __init__(__self__, *, :param str name: A readable identifier for an existing EC2 launch template. :param str version: The version of the EC2 launch template to use. If none is set, the default is the first version created. """ + GameServerGroupLaunchTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -651,9 +870,28 @@ def __init__(__self__, *, :param int maximum_individual_player_latency_milliseconds: Maximum latency value that is allowed for any player. :param int policy_duration_seconds: Length of time that the policy is enforced while placing a new game session. Absence of value for this attribute means that the policy is enforced until the queue times out. """ - pulumi.set(__self__, "maximum_individual_player_latency_milliseconds", maximum_individual_player_latency_milliseconds) + GameSessionQueuePlayerLatencyPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_individual_player_latency_milliseconds=maximum_individual_player_latency_milliseconds, + policy_duration_seconds=policy_duration_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_individual_player_latency_milliseconds: Optional[int] = None, + policy_duration_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_individual_player_latency_milliseconds is None and 'maximumIndividualPlayerLatencyMilliseconds' in kwargs: + maximum_individual_player_latency_milliseconds = kwargs['maximumIndividualPlayerLatencyMilliseconds'] + if maximum_individual_player_latency_milliseconds is None: + raise TypeError("Missing 'maximum_individual_player_latency_milliseconds' argument") + if policy_duration_seconds is None and 'policyDurationSeconds' in kwargs: + policy_duration_seconds = kwargs['policyDurationSeconds'] + + _setter("maximum_individual_player_latency_milliseconds", maximum_individual_player_latency_milliseconds) if policy_duration_seconds is not None: - pulumi.set(__self__, "policy_duration_seconds", policy_duration_seconds) + _setter("policy_duration_seconds", policy_duration_seconds) @property @pulumi.getter(name="maximumIndividualPlayerLatencyMilliseconds") @@ -681,8 +919,25 @@ def __init__(__self__, *, :param str key: A game property key :param str value: A game property value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + MatchmakingConfigurationGameProperty._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -733,11 +988,38 @@ def __init__(__self__, *, :param str role_arn: ARN of the access role that allows Amazon GameLift to access your S3 bucket. :param str object_version: A specific version of the file. If not set, the latest version of the file is retrieved. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "role_arn", role_arn) + ScriptStorageLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + role_arn=role_arn, + object_version=object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + role_arn: Optional[str] = None, + object_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if object_version is None and 'objectVersion' in kwargs: + object_version = kwargs['objectVersion'] + + _setter("bucket", bucket) + _setter("key", key) + _setter("role_arn", role_arn) if object_version is not None: - pulumi.set(__self__, "object_version", object_version) + _setter("object_version", object_version) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/gamelift/script.py b/sdk/python/pulumi_aws/gamelift/script.py index 77ba08f2ba9..f4eb714d33c 100644 --- a/sdk/python/pulumi_aws/gamelift/script.py +++ b/sdk/python/pulumi_aws/gamelift/script.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,16 +29,39 @@ def __init__(__self__, *, :param pulumi.Input[str] version: Version that is associated with this script. :param pulumi.Input[str] zip_file: A data object containing your Realtime scripts and dependencies as a zip file. The zip file can have one or multiple files. Maximum size of a zip file is 5 MB. """ + ScriptArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + storage_location=storage_location, + tags=tags, + version=version, + zip_file=zip_file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + storage_location: Optional[pulumi.Input['ScriptStorageLocationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + zip_file: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_location is None and 'storageLocation' in kwargs: + storage_location = kwargs['storageLocation'] + if zip_file is None and 'zipFile' in kwargs: + zip_file = kwargs['zipFile'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if storage_location is not None: - pulumi.set(__self__, "storage_location", storage_location) + _setter("storage_location", storage_location) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if zip_file is not None: - pulumi.set(__self__, "zip_file", zip_file) + _setter("zip_file", zip_file) @property @pulumi.getter @@ -121,23 +144,52 @@ def __init__(__self__, *, :param pulumi.Input[str] version: Version that is associated with this script. :param pulumi.Input[str] zip_file: A data object containing your Realtime scripts and dependencies as a zip file. The zip file can have one or multiple files. Maximum size of a zip file is 5 MB. """ + _ScriptState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + storage_location=storage_location, + tags=tags, + tags_all=tags_all, + version=version, + zip_file=zip_file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + storage_location: Optional[pulumi.Input['ScriptStorageLocationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + zip_file: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_location is None and 'storageLocation' in kwargs: + storage_location = kwargs['storageLocation'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if zip_file is None and 'zipFile' in kwargs: + zip_file = kwargs['zipFile'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if storage_location is not None: - pulumi.set(__self__, "storage_location", storage_location) + _setter("storage_location", storage_location) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if zip_file is not None: - pulumi.set(__self__, "zip_file", zip_file) + _setter("zip_file", zip_file) @property @pulumi.getter @@ -310,6 +362,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ScriptArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -330,6 +386,7 @@ def _internal_init(__self__, __props__ = ScriptArgs.__new__(ScriptArgs) __props__.__dict__["name"] = name + storage_location = _utilities.configure(storage_location, ScriptStorageLocationArgs, True) __props__.__dict__["storage_location"] = storage_location __props__.__dict__["tags"] = tags __props__.__dict__["version"] = version diff --git a/sdk/python/pulumi_aws/get_arn.py b/sdk/python/pulumi_aws/get_arn.py index dfbe164f4dc..b77099ca29d 100644 --- a/sdk/python/pulumi_aws/get_arn.py +++ b/sdk/python/pulumi_aws/get_arn.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/get_availability_zone.py b/sdk/python/pulumi_aws/get_availability_zone.py index 1642741f45f..801403810b6 100644 --- a/sdk/python/pulumi_aws/get_availability_zone.py +++ b/sdk/python/pulumi_aws/get_availability_zone.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/get_availability_zones.py b/sdk/python/pulumi_aws/get_availability_zones.py index 7233413a8db..e1cb6a6ebbc 100644 --- a/sdk/python/pulumi_aws/get_availability_zones.py +++ b/sdk/python/pulumi_aws/get_availability_zones.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/get_billing_service_account.py b/sdk/python/pulumi_aws/get_billing_service_account.py index fe4981eb588..0889ba2a1ef 100644 --- a/sdk/python/pulumi_aws/get_billing_service_account.py +++ b/sdk/python/pulumi_aws/get_billing_service_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/get_caller_identity.py b/sdk/python/pulumi_aws/get_caller_identity.py index dbbb9da8324..8d12e9be4c8 100644 --- a/sdk/python/pulumi_aws/get_caller_identity.py +++ b/sdk/python/pulumi_aws/get_caller_identity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/get_default_tags.py b/sdk/python/pulumi_aws/get_default_tags.py index 07e3856ce65..6dd4c257e52 100644 --- a/sdk/python/pulumi_aws/get_default_tags.py +++ b/sdk/python/pulumi_aws/get_default_tags.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/get_ip_ranges.py b/sdk/python/pulumi_aws/get_ip_ranges.py index cf3257a3f9d..aaed6722f00 100644 --- a/sdk/python/pulumi_aws/get_ip_ranges.py +++ b/sdk/python/pulumi_aws/get_ip_ranges.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/get_partition.py b/sdk/python/pulumi_aws/get_partition.py index fd524677aa8..4c881382b53 100644 --- a/sdk/python/pulumi_aws/get_partition.py +++ b/sdk/python/pulumi_aws/get_partition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/get_region.py b/sdk/python/pulumi_aws/get_region.py index 7b0f07a3d15..844f0d8889b 100644 --- a/sdk/python/pulumi_aws/get_region.py +++ b/sdk/python/pulumi_aws/get_region.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/get_regions.py b/sdk/python/pulumi_aws/get_regions.py index d4202183ffa..49611c057c3 100644 --- a/sdk/python/pulumi_aws/get_regions.py +++ b/sdk/python/pulumi_aws/get_regions.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/get_service.py b/sdk/python/pulumi_aws/get_service.py index 7b475224ba0..06d8160222a 100644 --- a/sdk/python/pulumi_aws/get_service.py +++ b/sdk/python/pulumi_aws/get_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/glacier/_inputs.py b/sdk/python/pulumi_aws/glacier/_inputs.py index fd72d5d4b59..4773ef67c05 100644 --- a/sdk/python/pulumi_aws/glacier/_inputs.py +++ b/sdk/python/pulumi_aws/glacier/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,8 +22,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] events: You can configure a vault to publish a notification for `ArchiveRetrievalCompleted` and `InventoryRetrievalCompleted` events. :param pulumi.Input[str] sns_topic: The SNS Topic ARN. """ - pulumi.set(__self__, "events", events) - pulumi.set(__self__, "sns_topic", sns_topic) + VaultNotificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + sns_topic=sns_topic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sns_topic: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is None: + raise TypeError("Missing 'events' argument") + if sns_topic is None and 'snsTopic' in kwargs: + sns_topic = kwargs['snsTopic'] + if sns_topic is None: + raise TypeError("Missing 'sns_topic' argument") + + _setter("events", events) + _setter("sns_topic", sns_topic) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/glacier/outputs.py b/sdk/python/pulumi_aws/glacier/outputs.py index da5c191fe4d..c26bd21ed27 100644 --- a/sdk/python/pulumi_aws/glacier/outputs.py +++ b/sdk/python/pulumi_aws/glacier/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -39,8 +39,27 @@ def __init__(__self__, *, :param Sequence[str] events: You can configure a vault to publish a notification for `ArchiveRetrievalCompleted` and `InventoryRetrievalCompleted` events. :param str sns_topic: The SNS Topic ARN. """ - pulumi.set(__self__, "events", events) - pulumi.set(__self__, "sns_topic", sns_topic) + VaultNotification._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + sns_topic=sns_topic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[Sequence[str]] = None, + sns_topic: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is None: + raise TypeError("Missing 'events' argument") + if sns_topic is None and 'snsTopic' in kwargs: + sns_topic = kwargs['snsTopic'] + if sns_topic is None: + raise TypeError("Missing 'sns_topic' argument") + + _setter("events", events) + _setter("sns_topic", sns_topic) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/glacier/vault.py b/sdk/python/pulumi_aws/glacier/vault.py index 864e0dbe4c3..1cbdd867811 100644 --- a/sdk/python/pulumi_aws/glacier/vault.py +++ b/sdk/python/pulumi_aws/glacier/vault.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -28,14 +28,33 @@ def __init__(__self__, *, :param pulumi.Input['VaultNotificationArgs'] notification: The notifications for the Vault. Fields documented 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. """ + VaultArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policy=access_policy, + name=name, + notification=notification, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policy: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification: Optional[pulumi.Input['VaultNotificationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policy is None and 'accessPolicy' in kwargs: + access_policy = kwargs['accessPolicy'] + if access_policy is not None: - pulumi.set(__self__, "access_policy", access_policy) + _setter("access_policy", access_policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification is not None: - pulumi.set(__self__, "notification", notification) + _setter("notification", notification) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="accessPolicy") @@ -108,23 +127,50 @@ def __init__(__self__, *, :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. """ + _VaultState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policy=access_policy, + arn=arn, + location=location, + name=name, + notification=notification, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policy: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification: Optional[pulumi.Input['VaultNotificationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policy is None and 'accessPolicy' in kwargs: + access_policy = kwargs['accessPolicy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if access_policy is not None: - pulumi.set(__self__, "access_policy", access_policy) + _setter("access_policy", access_policy) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification is not None: - pulumi.set(__self__, "notification", notification) + _setter("notification", notification) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="accessPolicy") @@ -343,6 +389,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VaultArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -363,6 +413,7 @@ def _internal_init(__self__, __props__.__dict__["access_policy"] = access_policy __props__.__dict__["name"] = name + notification = _utilities.configure(notification, VaultNotificationArgs, True) __props__.__dict__["notification"] = notification __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/glacier/vault_lock.py b/sdk/python/pulumi_aws/glacier/vault_lock.py index 4ca433619be..9210ac35e9a 100644 --- a/sdk/python/pulumi_aws/glacier/vault_lock.py +++ b/sdk/python/pulumi_aws/glacier/vault_lock.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VaultLockArgs', 'VaultLock'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] vault_name: The name of the Glacier Vault. :param pulumi.Input[bool] ignore_deletion_error: Allow this provider to ignore the error returned when attempting to delete the Glacier Lock Policy. This can be used to delete or recreate the Glacier Vault via this provider, for example, if the Glacier Vault Lock policy permits that action. This should only be used in conjunction with `complete_lock` being set to `true`. """ - pulumi.set(__self__, "complete_lock", complete_lock) - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "vault_name", vault_name) + VaultLockArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + complete_lock=complete_lock, + policy=policy, + vault_name=vault_name, + ignore_deletion_error=ignore_deletion_error, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + complete_lock: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + vault_name: Optional[pulumi.Input[str]] = None, + ignore_deletion_error: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if complete_lock is None and 'completeLock' in kwargs: + complete_lock = kwargs['completeLock'] + if complete_lock is None: + raise TypeError("Missing 'complete_lock' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + if vault_name is None and 'vaultName' in kwargs: + vault_name = kwargs['vaultName'] + if vault_name is None: + raise TypeError("Missing 'vault_name' argument") + if ignore_deletion_error is None and 'ignoreDeletionError' in kwargs: + ignore_deletion_error = kwargs['ignoreDeletionError'] + + _setter("complete_lock", complete_lock) + _setter("policy", policy) + _setter("vault_name", vault_name) if ignore_deletion_error is not None: - pulumi.set(__self__, "ignore_deletion_error", ignore_deletion_error) + _setter("ignore_deletion_error", ignore_deletion_error) @property @pulumi.getter(name="completeLock") @@ -94,14 +123,37 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: JSON string containing the IAM policy to apply as the Glacier Vault Lock policy. :param pulumi.Input[str] vault_name: The name of the Glacier Vault. """ + _VaultLockState._configure( + lambda key, value: pulumi.set(__self__, key, value), + complete_lock=complete_lock, + ignore_deletion_error=ignore_deletion_error, + policy=policy, + vault_name=vault_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + complete_lock: Optional[pulumi.Input[bool]] = None, + ignore_deletion_error: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + vault_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if complete_lock is None and 'completeLock' in kwargs: + complete_lock = kwargs['completeLock'] + if ignore_deletion_error is None and 'ignoreDeletionError' in kwargs: + ignore_deletion_error = kwargs['ignoreDeletionError'] + if vault_name is None and 'vaultName' in kwargs: + vault_name = kwargs['vaultName'] + if complete_lock is not None: - pulumi.set(__self__, "complete_lock", complete_lock) + _setter("complete_lock", complete_lock) if ignore_deletion_error is not None: - pulumi.set(__self__, "ignore_deletion_error", ignore_deletion_error) + _setter("ignore_deletion_error", ignore_deletion_error) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if vault_name is not None: - pulumi.set(__self__, "vault_name", vault_name) + _setter("vault_name", vault_name) @property @pulumi.getter(name="completeLock") @@ -285,6 +337,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VaultLockArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/globalaccelerator/_inputs.py b/sdk/python/pulumi_aws/globalaccelerator/_inputs.py index 89551130158..02f76b9aaf8 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/_inputs.py +++ b/sdk/python/pulumi_aws/globalaccelerator/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -33,12 +33,33 @@ def __init__(__self__, *, :param pulumi.Input[str] flow_logs_s3_bucket: The name of the Amazon S3 bucket for the flow logs. Required if `flow_logs_enabled` is `true`. :param pulumi.Input[str] flow_logs_s3_prefix: The prefix for the location in the Amazon S3 bucket for the flow logs. Required if `flow_logs_enabled` is `true`. """ + AcceleratorAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + flow_logs_enabled=flow_logs_enabled, + flow_logs_s3_bucket=flow_logs_s3_bucket, + flow_logs_s3_prefix=flow_logs_s3_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flow_logs_enabled: Optional[pulumi.Input[bool]] = None, + flow_logs_s3_bucket: Optional[pulumi.Input[str]] = None, + flow_logs_s3_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_logs_enabled is None and 'flowLogsEnabled' in kwargs: + flow_logs_enabled = kwargs['flowLogsEnabled'] + if flow_logs_s3_bucket is None and 'flowLogsS3Bucket' in kwargs: + flow_logs_s3_bucket = kwargs['flowLogsS3Bucket'] + if flow_logs_s3_prefix is None and 'flowLogsS3Prefix' in kwargs: + flow_logs_s3_prefix = kwargs['flowLogsS3Prefix'] + if flow_logs_enabled is not None: - pulumi.set(__self__, "flow_logs_enabled", flow_logs_enabled) + _setter("flow_logs_enabled", flow_logs_enabled) if flow_logs_s3_bucket is not None: - pulumi.set(__self__, "flow_logs_s3_bucket", flow_logs_s3_bucket) + _setter("flow_logs_s3_bucket", flow_logs_s3_bucket) if flow_logs_s3_prefix is not None: - pulumi.set(__self__, "flow_logs_s3_prefix", flow_logs_s3_prefix) + _setter("flow_logs_s3_prefix", flow_logs_s3_prefix) @property @pulumi.getter(name="flowLogsEnabled") @@ -86,10 +107,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_addresses: The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses. :param pulumi.Input[str] ip_family: The type of IP addresses included in this IP set. """ + AcceleratorIpSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_addresses=ip_addresses, + ip_family=ip_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_family: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_family is None and 'ipFamily' in kwargs: + ip_family = kwargs['ipFamily'] + if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) if ip_family is not None: - pulumi.set(__self__, "ip_family", ip_family) + _setter("ip_family", ip_family) @property @pulumi.getter(name="ipAddresses") @@ -127,12 +165,33 @@ def __init__(__self__, *, :param pulumi.Input[str] flow_logs_s3_bucket: The name of the Amazon S3 bucket for the flow logs. Required if `flow_logs_enabled` is `true`. :param pulumi.Input[str] flow_logs_s3_prefix: The prefix for the location in the Amazon S3 bucket for the flow logs. Required if `flow_logs_enabled` is `true`. """ + CustomRoutingAcceleratorAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + flow_logs_enabled=flow_logs_enabled, + flow_logs_s3_bucket=flow_logs_s3_bucket, + flow_logs_s3_prefix=flow_logs_s3_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flow_logs_enabled: Optional[pulumi.Input[bool]] = None, + flow_logs_s3_bucket: Optional[pulumi.Input[str]] = None, + flow_logs_s3_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_logs_enabled is None and 'flowLogsEnabled' in kwargs: + flow_logs_enabled = kwargs['flowLogsEnabled'] + if flow_logs_s3_bucket is None and 'flowLogsS3Bucket' in kwargs: + flow_logs_s3_bucket = kwargs['flowLogsS3Bucket'] + if flow_logs_s3_prefix is None and 'flowLogsS3Prefix' in kwargs: + flow_logs_s3_prefix = kwargs['flowLogsS3Prefix'] + if flow_logs_enabled is not None: - pulumi.set(__self__, "flow_logs_enabled", flow_logs_enabled) + _setter("flow_logs_enabled", flow_logs_enabled) if flow_logs_s3_bucket is not None: - pulumi.set(__self__, "flow_logs_s3_bucket", flow_logs_s3_bucket) + _setter("flow_logs_s3_bucket", flow_logs_s3_bucket) if flow_logs_s3_prefix is not None: - pulumi.set(__self__, "flow_logs_s3_prefix", flow_logs_s3_prefix) + _setter("flow_logs_s3_prefix", flow_logs_s3_prefix) @property @pulumi.getter(name="flowLogsEnabled") @@ -180,10 +239,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_addresses: The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses. :param pulumi.Input[str] ip_family: The type of IP addresses included in this IP set. """ + CustomRoutingAcceleratorIpSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_addresses=ip_addresses, + ip_family=ip_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_family: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_family is None and 'ipFamily' in kwargs: + ip_family = kwargs['ipFamily'] + if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) if ip_family is not None: - pulumi.set(__self__, "ip_family", ip_family) + _setter("ip_family", ip_family) @property @pulumi.getter(name="ipAddresses") @@ -221,9 +297,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] protocols: The protocol for the endpoint group that is associated with a custom routing accelerator. The protocol can be either `"TCP"` or `"UDP"`. :param pulumi.Input[int] to_port: The last port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocols", protocols) - pulumi.set(__self__, "to_port", to_port) + CustomRoutingEndpointGroupDestinationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocols=protocols, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocols is None: + raise TypeError("Missing 'protocols' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + + _setter("from_port", from_port) + _setter("protocols", protocols) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -269,8 +370,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] endpoint_id: An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID. """ + CustomRoutingEndpointGroupEndpointConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_id=endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) @property @pulumi.getter(name="endpointId") @@ -294,10 +408,27 @@ def __init__(__self__, *, :param pulumi.Input[int] from_port: The first port in the range of ports, inclusive. :param pulumi.Input[int] to_port: The last port in the range of ports, inclusive. """ + CustomRoutingListenerPortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -336,12 +467,31 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint_id: An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID. :param pulumi.Input[int] weight: The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic based on proportions that you specify. """ + EndpointGroupEndpointConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_ip_preservation_enabled=client_ip_preservation_enabled, + endpoint_id=endpoint_id, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_ip_preservation_enabled: Optional[pulumi.Input[bool]] = None, + endpoint_id: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_ip_preservation_enabled is None and 'clientIpPreservationEnabled' in kwargs: + client_ip_preservation_enabled = kwargs['clientIpPreservationEnabled'] + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if client_ip_preservation_enabled is not None: - pulumi.set(__self__, "client_ip_preservation_enabled", client_ip_preservation_enabled) + _setter("client_ip_preservation_enabled", client_ip_preservation_enabled) if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="clientIpPreservationEnabled") @@ -390,8 +540,29 @@ def __init__(__self__, *, :param pulumi.Input[int] endpoint_port: The endpoint port that you want a listener port to be mapped to. This is the port on the endpoint, such as the Application Load Balancer or Amazon EC2 instance. :param pulumi.Input[int] listener_port: The listener port that you want to map to a specific endpoint port. This is the port that user traffic arrives to the Global Accelerator on. """ - pulumi.set(__self__, "endpoint_port", endpoint_port) - pulumi.set(__self__, "listener_port", listener_port) + EndpointGroupPortOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_port=endpoint_port, + listener_port=listener_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_port: Optional[pulumi.Input[int]] = None, + listener_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_port is None and 'endpointPort' in kwargs: + endpoint_port = kwargs['endpointPort'] + if endpoint_port is None: + raise TypeError("Missing 'endpoint_port' argument") + if listener_port is None and 'listenerPort' in kwargs: + listener_port = kwargs['listenerPort'] + if listener_port is None: + raise TypeError("Missing 'listener_port' argument") + + _setter("endpoint_port", endpoint_port) + _setter("listener_port", listener_port) @property @pulumi.getter(name="endpointPort") @@ -427,10 +598,27 @@ def __init__(__self__, *, :param pulumi.Input[int] from_port: The first port in the range of ports, inclusive. :param pulumi.Input[int] to_port: The last port in the range of ports, inclusive. """ + ListenerPortRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") diff --git a/sdk/python/pulumi_aws/globalaccelerator/accelerator.py b/sdk/python/pulumi_aws/globalaccelerator/accelerator.py index 1b124c36512..10b2923c8d4 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/accelerator.py +++ b/sdk/python/pulumi_aws/globalaccelerator/accelerator.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,18 +31,43 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the accelerator. :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. """ + AcceleratorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + enabled=enabled, + ip_address_type=ip_address_type, + ip_addresses=ip_addresses, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input['AcceleratorAttributesArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -147,31 +172,76 @@ def __init__(__self__, *, :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. """ + _AcceleratorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + dns_name=dns_name, + dual_stack_dns_name=dual_stack_dns_name, + enabled=enabled, + hosted_zone_id=hosted_zone_id, + ip_address_type=ip_address_type, + ip_addresses=ip_addresses, + ip_sets=ip_sets, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input['AcceleratorAttributesArgs']] = None, + dns_name: Optional[pulumi.Input[str]] = None, + dual_stack_dns_name: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_sets: Optional[pulumi.Input[Sequence[pulumi.Input['AcceleratorIpSetArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if dual_stack_dns_name is None and 'dualStackDnsName' in kwargs: + dual_stack_dns_name = kwargs['dualStackDnsName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_sets is None and 'ipSets' in kwargs: + ip_sets = kwargs['ipSets'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if dual_stack_dns_name is not None: - pulumi.set(__self__, "dual_stack_dns_name", dual_stack_dns_name) + _setter("dual_stack_dns_name", dual_stack_dns_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) if ip_sets is not None: - pulumi.set(__self__, "ip_sets", ip_sets) + _setter("ip_sets", ip_sets) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -404,6 +474,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AcceleratorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -424,6 +498,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = AcceleratorArgs.__new__(AcceleratorArgs) + attributes = _utilities.configure(attributes, AcceleratorAttributesArgs, True) __props__.__dict__["attributes"] = attributes __props__.__dict__["enabled"] = enabled __props__.__dict__["ip_address_type"] = ip_address_type diff --git a/sdk/python/pulumi_aws/globalaccelerator/custom_routing_accelerator.py b/sdk/python/pulumi_aws/globalaccelerator/custom_routing_accelerator.py index 2818861ce1c..364aa1e8f63 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/custom_routing_accelerator.py +++ b/sdk/python/pulumi_aws/globalaccelerator/custom_routing_accelerator.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,18 +31,43 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of a custom routing accelerator. :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. """ + CustomRoutingAcceleratorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + enabled=enabled, + ip_address_type=ip_address_type, + ip_addresses=ip_addresses, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input['CustomRoutingAcceleratorAttributesArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -145,29 +170,70 @@ def __init__(__self__, *, :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. """ + _CustomRoutingAcceleratorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + dns_name=dns_name, + enabled=enabled, + hosted_zone_id=hosted_zone_id, + ip_address_type=ip_address_type, + ip_addresses=ip_addresses, + ip_sets=ip_sets, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input['CustomRoutingAcceleratorAttributesArgs']] = None, + dns_name: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_sets: Optional[pulumi.Input[Sequence[pulumi.Input['CustomRoutingAcceleratorIpSetArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_sets is None and 'ipSets' in kwargs: + ip_sets = kwargs['ipSets'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) if ip_sets is not None: - pulumi.set(__self__, "ip_sets", ip_sets) + _setter("ip_sets", ip_sets) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -388,6 +454,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomRoutingAcceleratorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -408,6 +478,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = CustomRoutingAcceleratorArgs.__new__(CustomRoutingAcceleratorArgs) + attributes = _utilities.configure(attributes, CustomRoutingAcceleratorAttributesArgs, True) __props__.__dict__["attributes"] = attributes __props__.__dict__["enabled"] = enabled __props__.__dict__["ip_address_type"] = ip_address_type diff --git a/sdk/python/pulumi_aws/globalaccelerator/custom_routing_endpoint_group.py b/sdk/python/pulumi_aws/globalaccelerator/custom_routing_endpoint_group.py index fc810ebc7d3..88b34c03afd 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/custom_routing_endpoint_group.py +++ b/sdk/python/pulumi_aws/globalaccelerator/custom_routing_endpoint_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,41 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['CustomRoutingEndpointGroupEndpointConfigurationArgs']]] endpoint_configurations: The list of endpoint objects. Fields documented below. :param pulumi.Input[str] endpoint_group_region: The name of the AWS Region where the custom routing endpoint group is located. """ - pulumi.set(__self__, "destination_configurations", destination_configurations) - pulumi.set(__self__, "listener_arn", listener_arn) + CustomRoutingEndpointGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_configurations=destination_configurations, + listener_arn=listener_arn, + endpoint_configurations=endpoint_configurations, + endpoint_group_region=endpoint_group_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['CustomRoutingEndpointGroupDestinationConfigurationArgs']]]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + endpoint_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['CustomRoutingEndpointGroupEndpointConfigurationArgs']]]] = None, + endpoint_group_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_configurations is None and 'destinationConfigurations' in kwargs: + destination_configurations = kwargs['destinationConfigurations'] + if destination_configurations is None: + raise TypeError("Missing 'destination_configurations' argument") + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if listener_arn is None: + raise TypeError("Missing 'listener_arn' argument") + if endpoint_configurations is None and 'endpointConfigurations' in kwargs: + endpoint_configurations = kwargs['endpointConfigurations'] + if endpoint_group_region is None and 'endpointGroupRegion' in kwargs: + endpoint_group_region = kwargs['endpointGroupRegion'] + + _setter("destination_configurations", destination_configurations) + _setter("listener_arn", listener_arn) if endpoint_configurations is not None: - pulumi.set(__self__, "endpoint_configurations", endpoint_configurations) + _setter("endpoint_configurations", endpoint_configurations) if endpoint_group_region is not None: - pulumi.set(__self__, "endpoint_group_region", endpoint_group_region) + _setter("endpoint_group_region", endpoint_group_region) @property @pulumi.getter(name="destinationConfigurations") @@ -99,16 +128,43 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint_group_region: The name of the AWS Region where the custom routing endpoint group is located. :param pulumi.Input[str] listener_arn: The Amazon Resource Name (ARN) of the custom routing listener. """ + _CustomRoutingEndpointGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + destination_configurations=destination_configurations, + endpoint_configurations=endpoint_configurations, + endpoint_group_region=endpoint_group_region, + listener_arn=listener_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + destination_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['CustomRoutingEndpointGroupDestinationConfigurationArgs']]]] = None, + endpoint_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['CustomRoutingEndpointGroupEndpointConfigurationArgs']]]] = None, + endpoint_group_region: Optional[pulumi.Input[str]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_configurations is None and 'destinationConfigurations' in kwargs: + destination_configurations = kwargs['destinationConfigurations'] + if endpoint_configurations is None and 'endpointConfigurations' in kwargs: + endpoint_configurations = kwargs['endpointConfigurations'] + if endpoint_group_region is None and 'endpointGroupRegion' in kwargs: + endpoint_group_region = kwargs['endpointGroupRegion'] + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if destination_configurations is not None: - pulumi.set(__self__, "destination_configurations", destination_configurations) + _setter("destination_configurations", destination_configurations) if endpoint_configurations is not None: - pulumi.set(__self__, "endpoint_configurations", endpoint_configurations) + _setter("endpoint_configurations", endpoint_configurations) if endpoint_group_region is not None: - pulumi.set(__self__, "endpoint_group_region", endpoint_group_region) + _setter("endpoint_group_region", endpoint_group_region) if listener_arn is not None: - pulumi.set(__self__, "listener_arn", listener_arn) + _setter("listener_arn", listener_arn) @property @pulumi.getter @@ -262,6 +318,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomRoutingEndpointGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/globalaccelerator/custom_routing_listener.py b/sdk/python/pulumi_aws/globalaccelerator/custom_routing_listener.py index 3ef4fdd4d79..1a15c7e342a 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/custom_routing_listener.py +++ b/sdk/python/pulumi_aws/globalaccelerator/custom_routing_listener.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] accelerator_arn: The Amazon Resource Name (ARN) of a custom routing accelerator. :param pulumi.Input[Sequence[pulumi.Input['CustomRoutingListenerPortRangeArgs']]] port_ranges: The list of port ranges for the connections from clients to the accelerator. Fields documented below. """ - pulumi.set(__self__, "accelerator_arn", accelerator_arn) - pulumi.set(__self__, "port_ranges", port_ranges) + CustomRoutingListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_arn=accelerator_arn, + port_ranges=port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_arn: Optional[pulumi.Input[str]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['CustomRoutingListenerPortRangeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_arn is None and 'acceleratorArn' in kwargs: + accelerator_arn = kwargs['acceleratorArn'] + if accelerator_arn is None: + raise TypeError("Missing 'accelerator_arn' argument") + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if port_ranges is None: + raise TypeError("Missing 'port_ranges' argument") + + _setter("accelerator_arn", accelerator_arn) + _setter("port_ranges", port_ranges) @property @pulumi.getter(name="acceleratorArn") @@ -61,10 +82,27 @@ def __init__(__self__, *, :param pulumi.Input[str] accelerator_arn: The Amazon Resource Name (ARN) of a custom routing accelerator. :param pulumi.Input[Sequence[pulumi.Input['CustomRoutingListenerPortRangeArgs']]] port_ranges: The list of port ranges for the connections from clients to the accelerator. Fields documented below. """ + _CustomRoutingListenerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_arn=accelerator_arn, + port_ranges=port_ranges, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_arn: Optional[pulumi.Input[str]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['CustomRoutingListenerPortRangeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_arn is None and 'acceleratorArn' in kwargs: + accelerator_arn = kwargs['acceleratorArn'] + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if accelerator_arn is not None: - pulumi.set(__self__, "accelerator_arn", accelerator_arn) + _setter("accelerator_arn", accelerator_arn) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) @property @pulumi.getter(name="acceleratorArn") @@ -186,6 +224,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomRoutingListenerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/globalaccelerator/endpoint_group.py b/sdk/python/pulumi_aws/globalaccelerator/endpoint_group.py index 6e23d40479a..50d81aa238b 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/endpoint_group.py +++ b/sdk/python/pulumi_aws/globalaccelerator/endpoint_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -40,25 +40,76 @@ def __init__(__self__, *, :param pulumi.Input[int] threshold_count: The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3. :param pulumi.Input[float] traffic_dial_percentage: The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener. The default value is 100. """ - pulumi.set(__self__, "listener_arn", listener_arn) + EndpointGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + listener_arn=listener_arn, + endpoint_configurations=endpoint_configurations, + endpoint_group_region=endpoint_group_region, + health_check_interval_seconds=health_check_interval_seconds, + health_check_path=health_check_path, + health_check_port=health_check_port, + health_check_protocol=health_check_protocol, + port_overrides=port_overrides, + threshold_count=threshold_count, + traffic_dial_percentage=traffic_dial_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + listener_arn: Optional[pulumi.Input[str]] = None, + endpoint_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointGroupEndpointConfigurationArgs']]]] = None, + endpoint_group_region: Optional[pulumi.Input[str]] = None, + health_check_interval_seconds: Optional[pulumi.Input[int]] = None, + health_check_path: Optional[pulumi.Input[str]] = None, + health_check_port: Optional[pulumi.Input[int]] = None, + health_check_protocol: Optional[pulumi.Input[str]] = None, + port_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointGroupPortOverrideArgs']]]] = None, + threshold_count: Optional[pulumi.Input[int]] = None, + traffic_dial_percentage: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if listener_arn is None: + raise TypeError("Missing 'listener_arn' argument") + if endpoint_configurations is None and 'endpointConfigurations' in kwargs: + endpoint_configurations = kwargs['endpointConfigurations'] + if endpoint_group_region is None and 'endpointGroupRegion' in kwargs: + endpoint_group_region = kwargs['endpointGroupRegion'] + if health_check_interval_seconds is None and 'healthCheckIntervalSeconds' in kwargs: + health_check_interval_seconds = kwargs['healthCheckIntervalSeconds'] + if health_check_path is None and 'healthCheckPath' in kwargs: + health_check_path = kwargs['healthCheckPath'] + if health_check_port is None and 'healthCheckPort' in kwargs: + health_check_port = kwargs['healthCheckPort'] + if health_check_protocol is None and 'healthCheckProtocol' in kwargs: + health_check_protocol = kwargs['healthCheckProtocol'] + if port_overrides is None and 'portOverrides' in kwargs: + port_overrides = kwargs['portOverrides'] + if threshold_count is None and 'thresholdCount' in kwargs: + threshold_count = kwargs['thresholdCount'] + if traffic_dial_percentage is None and 'trafficDialPercentage' in kwargs: + traffic_dial_percentage = kwargs['trafficDialPercentage'] + + _setter("listener_arn", listener_arn) if endpoint_configurations is not None: - pulumi.set(__self__, "endpoint_configurations", endpoint_configurations) + _setter("endpoint_configurations", endpoint_configurations) if endpoint_group_region is not None: - pulumi.set(__self__, "endpoint_group_region", endpoint_group_region) + _setter("endpoint_group_region", endpoint_group_region) if health_check_interval_seconds is not None: - pulumi.set(__self__, "health_check_interval_seconds", health_check_interval_seconds) + _setter("health_check_interval_seconds", health_check_interval_seconds) if health_check_path is not None: - pulumi.set(__self__, "health_check_path", health_check_path) + _setter("health_check_path", health_check_path) if health_check_port is not None: - pulumi.set(__self__, "health_check_port", health_check_port) + _setter("health_check_port", health_check_port) if health_check_protocol is not None: - pulumi.set(__self__, "health_check_protocol", health_check_protocol) + _setter("health_check_protocol", health_check_protocol) if port_overrides is not None: - pulumi.set(__self__, "port_overrides", port_overrides) + _setter("port_overrides", port_overrides) if threshold_count is not None: - pulumi.set(__self__, "threshold_count", threshold_count) + _setter("threshold_count", threshold_count) if traffic_dial_percentage is not None: - pulumi.set(__self__, "traffic_dial_percentage", traffic_dial_percentage) + _setter("traffic_dial_percentage", traffic_dial_percentage) @property @pulumi.getter(name="listenerArn") @@ -211,28 +262,79 @@ def __init__(__self__, *, :param pulumi.Input[int] threshold_count: The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3. :param pulumi.Input[float] traffic_dial_percentage: The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener. The default value is 100. """ + _EndpointGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + endpoint_configurations=endpoint_configurations, + endpoint_group_region=endpoint_group_region, + health_check_interval_seconds=health_check_interval_seconds, + health_check_path=health_check_path, + health_check_port=health_check_port, + health_check_protocol=health_check_protocol, + listener_arn=listener_arn, + port_overrides=port_overrides, + threshold_count=threshold_count, + traffic_dial_percentage=traffic_dial_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + endpoint_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointGroupEndpointConfigurationArgs']]]] = None, + endpoint_group_region: Optional[pulumi.Input[str]] = None, + health_check_interval_seconds: Optional[pulumi.Input[int]] = None, + health_check_path: Optional[pulumi.Input[str]] = None, + health_check_port: Optional[pulumi.Input[int]] = None, + health_check_protocol: Optional[pulumi.Input[str]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + port_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointGroupPortOverrideArgs']]]] = None, + threshold_count: Optional[pulumi.Input[int]] = None, + traffic_dial_percentage: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_configurations is None and 'endpointConfigurations' in kwargs: + endpoint_configurations = kwargs['endpointConfigurations'] + if endpoint_group_region is None and 'endpointGroupRegion' in kwargs: + endpoint_group_region = kwargs['endpointGroupRegion'] + if health_check_interval_seconds is None and 'healthCheckIntervalSeconds' in kwargs: + health_check_interval_seconds = kwargs['healthCheckIntervalSeconds'] + if health_check_path is None and 'healthCheckPath' in kwargs: + health_check_path = kwargs['healthCheckPath'] + if health_check_port is None and 'healthCheckPort' in kwargs: + health_check_port = kwargs['healthCheckPort'] + if health_check_protocol is None and 'healthCheckProtocol' in kwargs: + health_check_protocol = kwargs['healthCheckProtocol'] + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if port_overrides is None and 'portOverrides' in kwargs: + port_overrides = kwargs['portOverrides'] + if threshold_count is None and 'thresholdCount' in kwargs: + threshold_count = kwargs['thresholdCount'] + if traffic_dial_percentage is None and 'trafficDialPercentage' in kwargs: + traffic_dial_percentage = kwargs['trafficDialPercentage'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if endpoint_configurations is not None: - pulumi.set(__self__, "endpoint_configurations", endpoint_configurations) + _setter("endpoint_configurations", endpoint_configurations) if endpoint_group_region is not None: - pulumi.set(__self__, "endpoint_group_region", endpoint_group_region) + _setter("endpoint_group_region", endpoint_group_region) if health_check_interval_seconds is not None: - pulumi.set(__self__, "health_check_interval_seconds", health_check_interval_seconds) + _setter("health_check_interval_seconds", health_check_interval_seconds) if health_check_path is not None: - pulumi.set(__self__, "health_check_path", health_check_path) + _setter("health_check_path", health_check_path) if health_check_port is not None: - pulumi.set(__self__, "health_check_port", health_check_port) + _setter("health_check_port", health_check_port) if health_check_protocol is not None: - pulumi.set(__self__, "health_check_protocol", health_check_protocol) + _setter("health_check_protocol", health_check_protocol) if listener_arn is not None: - pulumi.set(__self__, "listener_arn", listener_arn) + _setter("listener_arn", listener_arn) if port_overrides is not None: - pulumi.set(__self__, "port_overrides", port_overrides) + _setter("port_overrides", port_overrides) if threshold_count is not None: - pulumi.set(__self__, "threshold_count", threshold_count) + _setter("threshold_count", threshold_count) if traffic_dial_percentage is not None: - pulumi.set(__self__, "traffic_dial_percentage", traffic_dial_percentage) + _setter("traffic_dial_percentage", traffic_dial_percentage) @property @pulumi.getter @@ -464,6 +566,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EndpointGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/globalaccelerator/get_accelerator.py b/sdk/python/pulumi_aws/globalaccelerator/get_accelerator.py index 2cef9a7dbb7..a0f696113eb 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/get_accelerator.py +++ b/sdk/python/pulumi_aws/globalaccelerator/get_accelerator.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/globalaccelerator/get_custom_routing_accelerator.py b/sdk/python/pulumi_aws/globalaccelerator/get_custom_routing_accelerator.py index fd8e505599c..a5e8ecd883a 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/get_custom_routing_accelerator.py +++ b/sdk/python/pulumi_aws/globalaccelerator/get_custom_routing_accelerator.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/globalaccelerator/listener.py b/sdk/python/pulumi_aws/globalaccelerator/listener.py index 3d076364ee4..bf2081c7698 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/listener.py +++ b/sdk/python/pulumi_aws/globalaccelerator/listener.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,11 +27,40 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol: The protocol for the connections from clients to the accelerator. Valid values are `TCP`, `UDP`. :param pulumi.Input[str] client_affinity: Direct all requests from a user to the same endpoint. Valid values are `NONE`, `SOURCE_IP`. Default: `NONE`. If `NONE`, Global Accelerator uses the "five-tuple" properties of source IP address, source port, destination IP address, destination port, and protocol to select the hash value. If `SOURCE_IP`, Global Accelerator uses the "two-tuple" properties of source (client) IP address and destination IP address to select the hash value. """ - pulumi.set(__self__, "accelerator_arn", accelerator_arn) - pulumi.set(__self__, "port_ranges", port_ranges) - pulumi.set(__self__, "protocol", protocol) + ListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_arn=accelerator_arn, + port_ranges=port_ranges, + protocol=protocol, + client_affinity=client_affinity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_arn: Optional[pulumi.Input[str]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerPortRangeArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + client_affinity: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_arn is None and 'acceleratorArn' in kwargs: + accelerator_arn = kwargs['acceleratorArn'] + if accelerator_arn is None: + raise TypeError("Missing 'accelerator_arn' argument") + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if port_ranges is None: + raise TypeError("Missing 'port_ranges' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if client_affinity is None and 'clientAffinity' in kwargs: + client_affinity = kwargs['clientAffinity'] + + _setter("accelerator_arn", accelerator_arn) + _setter("port_ranges", port_ranges) + _setter("protocol", protocol) if client_affinity is not None: - pulumi.set(__self__, "client_affinity", client_affinity) + _setter("client_affinity", client_affinity) @property @pulumi.getter(name="acceleratorArn") @@ -96,14 +125,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ListenerPortRangeArgs']]] port_ranges: The list of port ranges for the connections from clients to the accelerator. Fields documented below. :param pulumi.Input[str] protocol: The protocol for the connections from clients to the accelerator. Valid values are `TCP`, `UDP`. """ + _ListenerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_arn=accelerator_arn, + client_affinity=client_affinity, + port_ranges=port_ranges, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_arn: Optional[pulumi.Input[str]] = None, + client_affinity: Optional[pulumi.Input[str]] = None, + port_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerPortRangeArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_arn is None and 'acceleratorArn' in kwargs: + accelerator_arn = kwargs['acceleratorArn'] + if client_affinity is None and 'clientAffinity' in kwargs: + client_affinity = kwargs['clientAffinity'] + if port_ranges is None and 'portRanges' in kwargs: + port_ranges = kwargs['portRanges'] + if accelerator_arn is not None: - pulumi.set(__self__, "accelerator_arn", accelerator_arn) + _setter("accelerator_arn", accelerator_arn) if client_affinity is not None: - pulumi.set(__self__, "client_affinity", client_affinity) + _setter("client_affinity", client_affinity) if port_ranges is not None: - pulumi.set(__self__, "port_ranges", port_ranges) + _setter("port_ranges", port_ranges) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) @property @pulumi.getter(name="acceleratorArn") @@ -257,6 +309,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/globalaccelerator/outputs.py b/sdk/python/pulumi_aws/globalaccelerator/outputs.py index 36cb2e6fe9b..1e10d47fb60 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/outputs.py +++ b/sdk/python/pulumi_aws/globalaccelerator/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -58,12 +58,33 @@ def __init__(__self__, *, :param str flow_logs_s3_bucket: The name of the Amazon S3 bucket for the flow logs. Required if `flow_logs_enabled` is `true`. :param str flow_logs_s3_prefix: The prefix for the location in the Amazon S3 bucket for the flow logs. Required if `flow_logs_enabled` is `true`. """ + AcceleratorAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + flow_logs_enabled=flow_logs_enabled, + flow_logs_s3_bucket=flow_logs_s3_bucket, + flow_logs_s3_prefix=flow_logs_s3_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flow_logs_enabled: Optional[bool] = None, + flow_logs_s3_bucket: Optional[str] = None, + flow_logs_s3_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_logs_enabled is None and 'flowLogsEnabled' in kwargs: + flow_logs_enabled = kwargs['flowLogsEnabled'] + if flow_logs_s3_bucket is None and 'flowLogsS3Bucket' in kwargs: + flow_logs_s3_bucket = kwargs['flowLogsS3Bucket'] + if flow_logs_s3_prefix is None and 'flowLogsS3Prefix' in kwargs: + flow_logs_s3_prefix = kwargs['flowLogsS3Prefix'] + if flow_logs_enabled is not None: - pulumi.set(__self__, "flow_logs_enabled", flow_logs_enabled) + _setter("flow_logs_enabled", flow_logs_enabled) if flow_logs_s3_bucket is not None: - pulumi.set(__self__, "flow_logs_s3_bucket", flow_logs_s3_bucket) + _setter("flow_logs_s3_bucket", flow_logs_s3_bucket) if flow_logs_s3_prefix is not None: - pulumi.set(__self__, "flow_logs_s3_prefix", flow_logs_s3_prefix) + _setter("flow_logs_s3_prefix", flow_logs_s3_prefix) @property @pulumi.getter(name="flowLogsEnabled") @@ -118,10 +139,27 @@ def __init__(__self__, *, :param Sequence[str] ip_addresses: The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses. :param str ip_family: The type of IP addresses included in this IP set. """ + AcceleratorIpSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_addresses=ip_addresses, + ip_family=ip_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_addresses: Optional[Sequence[str]] = None, + ip_family: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_family is None and 'ipFamily' in kwargs: + ip_family = kwargs['ipFamily'] + if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) if ip_family is not None: - pulumi.set(__self__, "ip_family", ip_family) + _setter("ip_family", ip_family) @property @pulumi.getter(name="ipAddresses") @@ -172,12 +210,33 @@ def __init__(__self__, *, :param str flow_logs_s3_bucket: The name of the Amazon S3 bucket for the flow logs. Required if `flow_logs_enabled` is `true`. :param str flow_logs_s3_prefix: The prefix for the location in the Amazon S3 bucket for the flow logs. Required if `flow_logs_enabled` is `true`. """ + CustomRoutingAcceleratorAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + flow_logs_enabled=flow_logs_enabled, + flow_logs_s3_bucket=flow_logs_s3_bucket, + flow_logs_s3_prefix=flow_logs_s3_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flow_logs_enabled: Optional[bool] = None, + flow_logs_s3_bucket: Optional[str] = None, + flow_logs_s3_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_logs_enabled is None and 'flowLogsEnabled' in kwargs: + flow_logs_enabled = kwargs['flowLogsEnabled'] + if flow_logs_s3_bucket is None and 'flowLogsS3Bucket' in kwargs: + flow_logs_s3_bucket = kwargs['flowLogsS3Bucket'] + if flow_logs_s3_prefix is None and 'flowLogsS3Prefix' in kwargs: + flow_logs_s3_prefix = kwargs['flowLogsS3Prefix'] + if flow_logs_enabled is not None: - pulumi.set(__self__, "flow_logs_enabled", flow_logs_enabled) + _setter("flow_logs_enabled", flow_logs_enabled) if flow_logs_s3_bucket is not None: - pulumi.set(__self__, "flow_logs_s3_bucket", flow_logs_s3_bucket) + _setter("flow_logs_s3_bucket", flow_logs_s3_bucket) if flow_logs_s3_prefix is not None: - pulumi.set(__self__, "flow_logs_s3_prefix", flow_logs_s3_prefix) + _setter("flow_logs_s3_prefix", flow_logs_s3_prefix) @property @pulumi.getter(name="flowLogsEnabled") @@ -232,10 +291,27 @@ def __init__(__self__, *, :param Sequence[str] ip_addresses: The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses. :param str ip_family: The type of IP addresses included in this IP set. """ + CustomRoutingAcceleratorIpSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_addresses=ip_addresses, + ip_family=ip_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_addresses: Optional[Sequence[str]] = None, + ip_family: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_family is None and 'ipFamily' in kwargs: + ip_family = kwargs['ipFamily'] + if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) if ip_family is not None: - pulumi.set(__self__, "ip_family", ip_family) + _setter("ip_family", ip_family) @property @pulumi.getter(name="ipAddresses") @@ -284,9 +360,34 @@ def __init__(__self__, *, :param Sequence[str] protocols: The protocol for the endpoint group that is associated with a custom routing accelerator. The protocol can be either `"TCP"` or `"UDP"`. :param int to_port: The last port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocols", protocols) - pulumi.set(__self__, "to_port", to_port) + CustomRoutingEndpointGroupDestinationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocols=protocols, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + protocols: Optional[Sequence[str]] = None, + to_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocols is None: + raise TypeError("Missing 'protocols' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + + _setter("from_port", from_port) + _setter("protocols", protocols) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -337,8 +438,21 @@ def __init__(__self__, *, """ :param str endpoint_id: An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID. """ + CustomRoutingEndpointGroupEndpointConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_id=endpoint_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) @property @pulumi.getter(name="endpointId") @@ -377,10 +491,27 @@ def __init__(__self__, *, :param int from_port: The first port in the range of ports, inclusive. :param int to_port: The last port in the range of ports, inclusive. """ + CustomRoutingListenerPortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + to_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -430,12 +561,31 @@ def __init__(__self__, *, :param str endpoint_id: An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID. :param int weight: The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic based on proportions that you specify. """ + EndpointGroupEndpointConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_ip_preservation_enabled=client_ip_preservation_enabled, + endpoint_id=endpoint_id, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_ip_preservation_enabled: Optional[bool] = None, + endpoint_id: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_ip_preservation_enabled is None and 'clientIpPreservationEnabled' in kwargs: + client_ip_preservation_enabled = kwargs['clientIpPreservationEnabled'] + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if client_ip_preservation_enabled is not None: - pulumi.set(__self__, "client_ip_preservation_enabled", client_ip_preservation_enabled) + _setter("client_ip_preservation_enabled", client_ip_preservation_enabled) if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="clientIpPreservationEnabled") @@ -491,8 +641,29 @@ def __init__(__self__, *, :param int endpoint_port: The endpoint port that you want a listener port to be mapped to. This is the port on the endpoint, such as the Application Load Balancer or Amazon EC2 instance. :param int listener_port: The listener port that you want to map to a specific endpoint port. This is the port that user traffic arrives to the Global Accelerator on. """ - pulumi.set(__self__, "endpoint_port", endpoint_port) - pulumi.set(__self__, "listener_port", listener_port) + EndpointGroupPortOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_port=endpoint_port, + listener_port=listener_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_port: Optional[int] = None, + listener_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_port is None and 'endpointPort' in kwargs: + endpoint_port = kwargs['endpointPort'] + if endpoint_port is None: + raise TypeError("Missing 'endpoint_port' argument") + if listener_port is None and 'listenerPort' in kwargs: + listener_port = kwargs['listenerPort'] + if listener_port is None: + raise TypeError("Missing 'listener_port' argument") + + _setter("endpoint_port", endpoint_port) + _setter("listener_port", listener_port) @property @pulumi.getter(name="endpointPort") @@ -539,10 +710,27 @@ def __init__(__self__, *, :param int from_port: The first port in the range of ports, inclusive. :param int to_port: The last port in the range of ports, inclusive. """ + ListenerPortRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + to_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -567,9 +755,36 @@ def __init__(__self__, *, flow_logs_enabled: bool, flow_logs_s3_bucket: str, flow_logs_s3_prefix: str): - pulumi.set(__self__, "flow_logs_enabled", flow_logs_enabled) - pulumi.set(__self__, "flow_logs_s3_bucket", flow_logs_s3_bucket) - pulumi.set(__self__, "flow_logs_s3_prefix", flow_logs_s3_prefix) + GetAcceleratorAttributeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + flow_logs_enabled=flow_logs_enabled, + flow_logs_s3_bucket=flow_logs_s3_bucket, + flow_logs_s3_prefix=flow_logs_s3_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flow_logs_enabled: Optional[bool] = None, + flow_logs_s3_bucket: Optional[str] = None, + flow_logs_s3_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_logs_enabled is None and 'flowLogsEnabled' in kwargs: + flow_logs_enabled = kwargs['flowLogsEnabled'] + if flow_logs_enabled is None: + raise TypeError("Missing 'flow_logs_enabled' argument") + if flow_logs_s3_bucket is None and 'flowLogsS3Bucket' in kwargs: + flow_logs_s3_bucket = kwargs['flowLogsS3Bucket'] + if flow_logs_s3_bucket is None: + raise TypeError("Missing 'flow_logs_s3_bucket' argument") + if flow_logs_s3_prefix is None and 'flowLogsS3Prefix' in kwargs: + flow_logs_s3_prefix = kwargs['flowLogsS3Prefix'] + if flow_logs_s3_prefix is None: + raise TypeError("Missing 'flow_logs_s3_prefix' argument") + + _setter("flow_logs_enabled", flow_logs_enabled) + _setter("flow_logs_s3_bucket", flow_logs_s3_bucket) + _setter("flow_logs_s3_prefix", flow_logs_s3_prefix) @property @pulumi.getter(name="flowLogsEnabled") @@ -592,8 +807,29 @@ class GetAcceleratorIpSetResult(dict): def __init__(__self__, *, ip_addresses: Sequence[str], ip_family: str): - pulumi.set(__self__, "ip_addresses", ip_addresses) - pulumi.set(__self__, "ip_family", ip_family) + GetAcceleratorIpSetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_addresses=ip_addresses, + ip_family=ip_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_addresses: Optional[Sequence[str]] = None, + ip_family: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_addresses is None: + raise TypeError("Missing 'ip_addresses' argument") + if ip_family is None and 'ipFamily' in kwargs: + ip_family = kwargs['ipFamily'] + if ip_family is None: + raise TypeError("Missing 'ip_family' argument") + + _setter("ip_addresses", ip_addresses) + _setter("ip_family", ip_family) @property @pulumi.getter(name="ipAddresses") @@ -612,9 +848,36 @@ def __init__(__self__, *, flow_logs_enabled: bool, flow_logs_s3_bucket: str, flow_logs_s3_prefix: str): - pulumi.set(__self__, "flow_logs_enabled", flow_logs_enabled) - pulumi.set(__self__, "flow_logs_s3_bucket", flow_logs_s3_bucket) - pulumi.set(__self__, "flow_logs_s3_prefix", flow_logs_s3_prefix) + GetCustomRoutingAcceleratorAttributeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + flow_logs_enabled=flow_logs_enabled, + flow_logs_s3_bucket=flow_logs_s3_bucket, + flow_logs_s3_prefix=flow_logs_s3_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flow_logs_enabled: Optional[bool] = None, + flow_logs_s3_bucket: Optional[str] = None, + flow_logs_s3_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_logs_enabled is None and 'flowLogsEnabled' in kwargs: + flow_logs_enabled = kwargs['flowLogsEnabled'] + if flow_logs_enabled is None: + raise TypeError("Missing 'flow_logs_enabled' argument") + if flow_logs_s3_bucket is None and 'flowLogsS3Bucket' in kwargs: + flow_logs_s3_bucket = kwargs['flowLogsS3Bucket'] + if flow_logs_s3_bucket is None: + raise TypeError("Missing 'flow_logs_s3_bucket' argument") + if flow_logs_s3_prefix is None and 'flowLogsS3Prefix' in kwargs: + flow_logs_s3_prefix = kwargs['flowLogsS3Prefix'] + if flow_logs_s3_prefix is None: + raise TypeError("Missing 'flow_logs_s3_prefix' argument") + + _setter("flow_logs_enabled", flow_logs_enabled) + _setter("flow_logs_s3_bucket", flow_logs_s3_bucket) + _setter("flow_logs_s3_prefix", flow_logs_s3_prefix) @property @pulumi.getter(name="flowLogsEnabled") @@ -637,8 +900,29 @@ class GetCustomRoutingAcceleratorIpSetResult(dict): def __init__(__self__, *, ip_addresses: Sequence[str], ip_family: str): - pulumi.set(__self__, "ip_addresses", ip_addresses) - pulumi.set(__self__, "ip_family", ip_family) + GetCustomRoutingAcceleratorIpSetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_addresses=ip_addresses, + ip_family=ip_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_addresses: Optional[Sequence[str]] = None, + ip_family: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_addresses is None: + raise TypeError("Missing 'ip_addresses' argument") + if ip_family is None and 'ipFamily' in kwargs: + ip_family = kwargs['ipFamily'] + if ip_family is None: + raise TypeError("Missing 'ip_family' argument") + + _setter("ip_addresses", ip_addresses) + _setter("ip_family", ip_family) @property @pulumi.getter(name="ipAddresses") diff --git a/sdk/python/pulumi_aws/glue/_inputs.py b/sdk/python/pulumi_aws/glue/_inputs.py index 73d3c477e95..1a253e515d7 100644 --- a/sdk/python/pulumi_aws/glue/_inputs.py +++ b/sdk/python/pulumi_aws/glue/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -83,10 +83,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] permissions: The permissions that are granted to the principal. :param pulumi.Input['CatalogDatabaseCreateTableDefaultPermissionPrincipalArgs'] principal: The principal who is granted permissions.. See `principal` below. """ + CatalogDatabaseCreateTableDefaultPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input['CatalogDatabaseCreateTableDefaultPermissionPrincipalArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) @property @pulumi.getter @@ -120,8 +133,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] data_lake_principal_identifier: An identifier for the Lake Formation principal. """ + CatalogDatabaseCreateTableDefaultPermissionPrincipalArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_lake_principal_identifier=data_lake_principal_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_lake_principal_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_lake_principal_identifier is None and 'dataLakePrincipalIdentifier' in kwargs: + data_lake_principal_identifier = kwargs['dataLakePrincipalIdentifier'] + if data_lake_principal_identifier is not None: - pulumi.set(__self__, "data_lake_principal_identifier", data_lake_principal_identifier) + _setter("data_lake_principal_identifier", data_lake_principal_identifier) @property @pulumi.getter(name="dataLakePrincipalIdentifier") @@ -147,10 +173,33 @@ def __init__(__self__, *, :param pulumi.Input[str] database_name: Name of the catalog database. :param pulumi.Input[str] region: Region of the target database. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "database_name", database_name) + CatalogDatabaseTargetDatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + + _setter("catalog_id", catalog_id) + _setter("database_name", database_name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter(name="catalogId") @@ -196,7 +245,22 @@ def __init__(__self__, *, """ :param pulumi.Input['CatalogTableOpenTableFormatInputIcebergInputArgs'] iceberg_input: Configuration block for iceberg table config. See `iceberg_input` below. """ - pulumi.set(__self__, "iceberg_input", iceberg_input) + CatalogTableOpenTableFormatInputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iceberg_input=iceberg_input, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iceberg_input: Optional[pulumi.Input['CatalogTableOpenTableFormatInputIcebergInputArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iceberg_input is None and 'icebergInput' in kwargs: + iceberg_input = kwargs['icebergInput'] + if iceberg_input is None: + raise TypeError("Missing 'iceberg_input' argument") + + _setter("iceberg_input", iceberg_input) @property @pulumi.getter(name="icebergInput") @@ -220,9 +284,26 @@ def __init__(__self__, *, :param pulumi.Input[str] metadata_operation: A required metadata operation. Can only be set to CREATE. :param pulumi.Input[str] version: The table version for the Iceberg table. Defaults to 2. """ - pulumi.set(__self__, "metadata_operation", metadata_operation) + CatalogTableOpenTableFormatInputIcebergInputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metadata_operation=metadata_operation, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metadata_operation: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metadata_operation is None and 'metadataOperation' in kwargs: + metadata_operation = kwargs['metadataOperation'] + if metadata_operation is None: + raise TypeError("Missing 'metadata_operation' argument") + + _setter("metadata_operation", metadata_operation) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="metadataOperation") @@ -259,10 +340,33 @@ def __init__(__self__, *, :param pulumi.Input[str] index_name: Name of the partition index. :param pulumi.Input[Sequence[pulumi.Input[str]]] keys: Keys for the partition index. """ - pulumi.set(__self__, "index_name", index_name) - pulumi.set(__self__, "keys", keys) + CatalogTablePartitionIndexArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + keys=keys, + index_status=index_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[pulumi.Input[str]] = None, + keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + index_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if keys is None: + raise TypeError("Missing 'keys' argument") + if index_status is None and 'indexStatus' in kwargs: + index_status = kwargs['indexStatus'] + + _setter("index_name", index_name) + _setter("keys", keys) if index_status is not None: - pulumi.set(__self__, "index_status", index_status) + _setter("index_status", index_status) @property @pulumi.getter(name="indexName") @@ -309,11 +413,28 @@ def __init__(__self__, *, :param pulumi.Input[str] comment: Free-form text comment. :param pulumi.Input[str] type: Datatype of data in the Partition Key. """ - pulumi.set(__self__, "name", name) + CatalogTablePartitionKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + comment=comment, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -383,32 +504,85 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['CatalogTableStorageDescriptorSortColumnArgs']]] sort_columns: Configuration block for the sort order of each bucket in the table. See `sort_columns` below. :param pulumi.Input[bool] stored_as_sub_directories: Whether the table data is stored in subdirectories. """ + CatalogTableStorageDescriptorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_columns=bucket_columns, + columns=columns, + compressed=compressed, + input_format=input_format, + location=location, + number_of_buckets=number_of_buckets, + output_format=output_format, + parameters=parameters, + schema_reference=schema_reference, + ser_de_info=ser_de_info, + skewed_info=skewed_info, + sort_columns=sort_columns, + stored_as_sub_directories=stored_as_sub_directories, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + columns: Optional[pulumi.Input[Sequence[pulumi.Input['CatalogTableStorageDescriptorColumnArgs']]]] = None, + compressed: Optional[pulumi.Input[bool]] = None, + input_format: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + number_of_buckets: Optional[pulumi.Input[int]] = None, + output_format: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + schema_reference: Optional[pulumi.Input['CatalogTableStorageDescriptorSchemaReferenceArgs']] = None, + ser_de_info: Optional[pulumi.Input['CatalogTableStorageDescriptorSerDeInfoArgs']] = None, + skewed_info: Optional[pulumi.Input['CatalogTableStorageDescriptorSkewedInfoArgs']] = None, + sort_columns: Optional[pulumi.Input[Sequence[pulumi.Input['CatalogTableStorageDescriptorSortColumnArgs']]]] = None, + stored_as_sub_directories: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_columns is None and 'bucketColumns' in kwargs: + bucket_columns = kwargs['bucketColumns'] + if input_format is None and 'inputFormat' in kwargs: + input_format = kwargs['inputFormat'] + if number_of_buckets is None and 'numberOfBuckets' in kwargs: + number_of_buckets = kwargs['numberOfBuckets'] + if output_format is None and 'outputFormat' in kwargs: + output_format = kwargs['outputFormat'] + if schema_reference is None and 'schemaReference' in kwargs: + schema_reference = kwargs['schemaReference'] + if ser_de_info is None and 'serDeInfo' in kwargs: + ser_de_info = kwargs['serDeInfo'] + if skewed_info is None and 'skewedInfo' in kwargs: + skewed_info = kwargs['skewedInfo'] + if sort_columns is None and 'sortColumns' in kwargs: + sort_columns = kwargs['sortColumns'] + if stored_as_sub_directories is None and 'storedAsSubDirectories' in kwargs: + stored_as_sub_directories = kwargs['storedAsSubDirectories'] + if bucket_columns is not None: - pulumi.set(__self__, "bucket_columns", bucket_columns) + _setter("bucket_columns", bucket_columns) if columns is not None: - pulumi.set(__self__, "columns", columns) + _setter("columns", columns) if compressed is not None: - pulumi.set(__self__, "compressed", compressed) + _setter("compressed", compressed) if input_format is not None: - pulumi.set(__self__, "input_format", input_format) + _setter("input_format", input_format) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if number_of_buckets is not None: - pulumi.set(__self__, "number_of_buckets", number_of_buckets) + _setter("number_of_buckets", number_of_buckets) if output_format is not None: - pulumi.set(__self__, "output_format", output_format) + _setter("output_format", output_format) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if schema_reference is not None: - pulumi.set(__self__, "schema_reference", schema_reference) + _setter("schema_reference", schema_reference) if ser_de_info is not None: - pulumi.set(__self__, "ser_de_info", ser_de_info) + _setter("ser_de_info", ser_de_info) if skewed_info is not None: - pulumi.set(__self__, "skewed_info", skewed_info) + _setter("skewed_info", skewed_info) if sort_columns is not None: - pulumi.set(__self__, "sort_columns", sort_columns) + _setter("sort_columns", sort_columns) if stored_as_sub_directories is not None: - pulumi.set(__self__, "stored_as_sub_directories", stored_as_sub_directories) + _setter("stored_as_sub_directories", stored_as_sub_directories) @property @pulumi.getter(name="bucketColumns") @@ -580,13 +754,32 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Key-value pairs defining properties associated with the column. :param pulumi.Input[str] type: Datatype of data in the Column. """ - pulumi.set(__self__, "name", name) + CatalogTableStorageDescriptorColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + comment=comment, + parameters=parameters, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -648,11 +841,34 @@ def __init__(__self__, *, :param pulumi.Input['CatalogTableStorageDescriptorSchemaReferenceSchemaIdArgs'] schema_id: Configuration block that contains schema identity fields. Either this or the `schema_version_id` has to be provided. See `schema_id` below. :param pulumi.Input[str] schema_version_id: Unique ID assigned to a version of the schema. Either this or the `schema_id` has to be provided. """ - pulumi.set(__self__, "schema_version_number", schema_version_number) + CatalogTableStorageDescriptorSchemaReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + schema_version_number=schema_version_number, + schema_id=schema_id, + schema_version_id=schema_version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schema_version_number: Optional[pulumi.Input[int]] = None, + schema_id: Optional[pulumi.Input['CatalogTableStorageDescriptorSchemaReferenceSchemaIdArgs']] = None, + schema_version_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schema_version_number is None and 'schemaVersionNumber' in kwargs: + schema_version_number = kwargs['schemaVersionNumber'] + if schema_version_number is None: + raise TypeError("Missing 'schema_version_number' argument") + if schema_id is None and 'schemaId' in kwargs: + schema_id = kwargs['schemaId'] + if schema_version_id is None and 'schemaVersionId' in kwargs: + schema_version_id = kwargs['schemaVersionId'] + + _setter("schema_version_number", schema_version_number) if schema_id is not None: - pulumi.set(__self__, "schema_id", schema_id) + _setter("schema_id", schema_id) if schema_version_id is not None: - pulumi.set(__self__, "schema_version_id", schema_version_id) + _setter("schema_version_id", schema_version_id) @property @pulumi.getter(name="schemaVersionNumber") @@ -702,12 +918,33 @@ def __init__(__self__, *, :param pulumi.Input[str] schema_arn: ARN of the schema. One of `schema_arn` or `schema_name` has to be provided. :param pulumi.Input[str] schema_name: Name of the schema. One of `schema_arn` or `schema_name` has to be provided. """ + CatalogTableStorageDescriptorSchemaReferenceSchemaIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_name=registry_name, + schema_arn=schema_arn, + schema_name=schema_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_name: Optional[pulumi.Input[str]] = None, + schema_arn: Optional[pulumi.Input[str]] = None, + schema_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if schema_arn is None and 'schemaArn' in kwargs: + schema_arn = kwargs['schemaArn'] + if schema_name is None and 'schemaName' in kwargs: + schema_name = kwargs['schemaName'] + if registry_name is not None: - pulumi.set(__self__, "registry_name", registry_name) + _setter("registry_name", registry_name) if schema_arn is not None: - pulumi.set(__self__, "schema_arn", schema_arn) + _setter("schema_arn", schema_arn) if schema_name is not None: - pulumi.set(__self__, "schema_name", schema_name) + _setter("schema_name", schema_name) @property @pulumi.getter(name="registryName") @@ -757,12 +994,29 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Map of initialization parameters for the SerDe, in key-value form. :param pulumi.Input[str] serialization_library: Usually the class that implements the SerDe. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`. """ + CatalogTableStorageDescriptorSerDeInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + parameters=parameters, + serialization_library=serialization_library, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + serialization_library: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if serialization_library is None and 'serializationLibrary' in kwargs: + serialization_library = kwargs['serializationLibrary'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if serialization_library is not None: - pulumi.set(__self__, "serialization_library", serialization_library) + _setter("serialization_library", serialization_library) @property @pulumi.getter @@ -812,12 +1066,33 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] skewed_column_value_location_maps: List of values that appear so frequently as to be considered skewed. :param pulumi.Input[Sequence[pulumi.Input[str]]] skewed_column_values: Map of skewed values to the columns that contain them. """ + CatalogTableStorageDescriptorSkewedInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + skewed_column_names=skewed_column_names, + skewed_column_value_location_maps=skewed_column_value_location_maps, + skewed_column_values=skewed_column_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + skewed_column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + skewed_column_value_location_maps: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + skewed_column_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skewed_column_names is None and 'skewedColumnNames' in kwargs: + skewed_column_names = kwargs['skewedColumnNames'] + if skewed_column_value_location_maps is None and 'skewedColumnValueLocationMaps' in kwargs: + skewed_column_value_location_maps = kwargs['skewedColumnValueLocationMaps'] + if skewed_column_values is None and 'skewedColumnValues' in kwargs: + skewed_column_values = kwargs['skewedColumnValues'] + if skewed_column_names is not None: - pulumi.set(__self__, "skewed_column_names", skewed_column_names) + _setter("skewed_column_names", skewed_column_names) if skewed_column_value_location_maps is not None: - pulumi.set(__self__, "skewed_column_value_location_maps", skewed_column_value_location_maps) + _setter("skewed_column_value_location_maps", skewed_column_value_location_maps) if skewed_column_values is not None: - pulumi.set(__self__, "skewed_column_values", skewed_column_values) + _setter("skewed_column_values", skewed_column_values) @property @pulumi.getter(name="skewedColumnNames") @@ -865,8 +1140,27 @@ def __init__(__self__, *, :param pulumi.Input[str] column: Name of the column. :param pulumi.Input[int] sort_order: Whether the column is sorted in ascending (`1`) or descending order (`0`). """ - pulumi.set(__self__, "column", column) - pulumi.set(__self__, "sort_order", sort_order) + CatalogTableStorageDescriptorSortColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column=column, + sort_order=sort_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column: Optional[pulumi.Input[str]] = None, + sort_order: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column is None: + raise TypeError("Missing 'column' argument") + if sort_order is None and 'sortOrder' in kwargs: + sort_order = kwargs['sortOrder'] + if sort_order is None: + raise TypeError("Missing 'sort_order' argument") + + _setter("column", column) + _setter("sort_order", sort_order) @property @pulumi.getter @@ -904,9 +1198,34 @@ def __init__(__self__, *, :param pulumi.Input[str] database_name: Name of the catalog database that contains the target table. :param pulumi.Input[str] name: Name of the target table. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + CatalogTableTargetTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("catalog_id", catalog_id) + _setter("database_name", database_name) + _setter("name", name) @property @pulumi.getter(name="catalogId") @@ -966,22 +1285,59 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] headers: A list of strings representing column names. :param pulumi.Input[str] quote_symbol: A custom symbol to denote what combines content into a single column value. It must be different from the column delimiter. """ + ClassifierCsvClassifierArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_single_column=allow_single_column, + contains_header=contains_header, + custom_datatype_configured=custom_datatype_configured, + custom_datatypes=custom_datatypes, + delimiter=delimiter, + disable_value_trimming=disable_value_trimming, + headers=headers, + quote_symbol=quote_symbol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_single_column: Optional[pulumi.Input[bool]] = None, + contains_header: Optional[pulumi.Input[str]] = None, + custom_datatype_configured: Optional[pulumi.Input[bool]] = None, + custom_datatypes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + delimiter: Optional[pulumi.Input[str]] = None, + disable_value_trimming: Optional[pulumi.Input[bool]] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + quote_symbol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_single_column is None and 'allowSingleColumn' in kwargs: + allow_single_column = kwargs['allowSingleColumn'] + if contains_header is None and 'containsHeader' in kwargs: + contains_header = kwargs['containsHeader'] + if custom_datatype_configured is None and 'customDatatypeConfigured' in kwargs: + custom_datatype_configured = kwargs['customDatatypeConfigured'] + if custom_datatypes is None and 'customDatatypes' in kwargs: + custom_datatypes = kwargs['customDatatypes'] + if disable_value_trimming is None and 'disableValueTrimming' in kwargs: + disable_value_trimming = kwargs['disableValueTrimming'] + if quote_symbol is None and 'quoteSymbol' in kwargs: + quote_symbol = kwargs['quoteSymbol'] + if allow_single_column is not None: - pulumi.set(__self__, "allow_single_column", allow_single_column) + _setter("allow_single_column", allow_single_column) if contains_header is not None: - pulumi.set(__self__, "contains_header", contains_header) + _setter("contains_header", contains_header) if custom_datatype_configured is not None: - pulumi.set(__self__, "custom_datatype_configured", custom_datatype_configured) + _setter("custom_datatype_configured", custom_datatype_configured) if custom_datatypes is not None: - pulumi.set(__self__, "custom_datatypes", custom_datatypes) + _setter("custom_datatypes", custom_datatypes) if delimiter is not None: - pulumi.set(__self__, "delimiter", delimiter) + _setter("delimiter", delimiter) if disable_value_trimming is not None: - pulumi.set(__self__, "disable_value_trimming", disable_value_trimming) + _setter("disable_value_trimming", disable_value_trimming) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if quote_symbol is not None: - pulumi.set(__self__, "quote_symbol", quote_symbol) + _setter("quote_symbol", quote_symbol) @property @pulumi.getter(name="allowSingleColumn") @@ -1091,10 +1447,33 @@ def __init__(__self__, *, :param pulumi.Input[str] grok_pattern: The grok pattern used by this classifier. :param pulumi.Input[str] custom_patterns: Custom grok patterns used by this classifier. """ - pulumi.set(__self__, "classification", classification) - pulumi.set(__self__, "grok_pattern", grok_pattern) + ClassifierGrokClassifierArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + grok_pattern=grok_pattern, + custom_patterns=custom_patterns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[pulumi.Input[str]] = None, + grok_pattern: Optional[pulumi.Input[str]] = None, + custom_patterns: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is None: + raise TypeError("Missing 'classification' argument") + if grok_pattern is None and 'grokPattern' in kwargs: + grok_pattern = kwargs['grokPattern'] + if grok_pattern is None: + raise TypeError("Missing 'grok_pattern' argument") + if custom_patterns is None and 'customPatterns' in kwargs: + custom_patterns = kwargs['customPatterns'] + + _setter("classification", classification) + _setter("grok_pattern", grok_pattern) if custom_patterns is not None: - pulumi.set(__self__, "custom_patterns", custom_patterns) + _setter("custom_patterns", custom_patterns) @property @pulumi.getter @@ -1140,7 +1519,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] json_path: A `JsonPath` string defining the JSON data for the classifier to classify. AWS Glue supports a subset of `JsonPath`, as described in [Writing JsonPath Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json). """ - pulumi.set(__self__, "json_path", json_path) + ClassifierJsonClassifierArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + json_path=json_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + json_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if json_path is None and 'jsonPath' in kwargs: + json_path = kwargs['jsonPath'] + if json_path is None: + raise TypeError("Missing 'json_path' argument") + + _setter("json_path", json_path) @property @pulumi.getter(name="jsonPath") @@ -1164,8 +1558,27 @@ def __init__(__self__, *, :param pulumi.Input[str] classification: An identifier of the data format that the classifier matches. :param pulumi.Input[str] row_tag: The XML tag designating the element that contains each record in an XML document being parsed. Note that this cannot identify a self-closing element (closed by `/>`). An empty row element that contains only attributes can be parsed as long as it ends with a closing tag (for example, `` is okay, but `` is not). """ - pulumi.set(__self__, "classification", classification) - pulumi.set(__self__, "row_tag", row_tag) + ClassifierXmlClassifierArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + row_tag=row_tag, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[pulumi.Input[str]] = None, + row_tag: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is None: + raise TypeError("Missing 'classification' argument") + if row_tag is None and 'rowTag' in kwargs: + row_tag = kwargs['rowTag'] + if row_tag is None: + raise TypeError("Missing 'row_tag' argument") + + _setter("classification", classification) + _setter("row_tag", row_tag) @property @pulumi.getter @@ -1203,12 +1616,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_id_lists: The security group ID list used by the connection. :param pulumi.Input[str] subnet_id: The subnet ID used by the connection. """ + ConnectionPhysicalConnectionRequirementsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + security_group_id_lists=security_group_id_lists, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + security_group_id_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if security_group_id_lists is None and 'securityGroupIdLists' in kwargs: + security_group_id_lists = kwargs['securityGroupIdLists'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if security_group_id_lists is not None: - pulumi.set(__self__, "security_group_id_lists", security_group_id_lists) + _setter("security_group_id_lists", security_group_id_lists) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") @@ -1266,14 +1700,45 @@ def __init__(__self__, *, > **Note:** `configuration` for catalog target crawlers will have `{ ... "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas"} }` by default. :param pulumi.Input[str] event_queue_arn: A valid Amazon SQS ARN. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "tables", tables) + CrawlerCatalogTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + tables=tables, + connection_name=connection_name, + dlq_event_queue_arn=dlq_event_queue_arn, + event_queue_arn=event_queue_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + tables: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + connection_name: Optional[pulumi.Input[str]] = None, + dlq_event_queue_arn: Optional[pulumi.Input[str]] = None, + event_queue_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if tables is None: + raise TypeError("Missing 'tables' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if dlq_event_queue_arn is None and 'dlqEventQueueArn' in kwargs: + dlq_event_queue_arn = kwargs['dlqEventQueueArn'] + if event_queue_arn is None and 'eventQueueArn' in kwargs: + event_queue_arn = kwargs['eventQueueArn'] + + _setter("database_name", database_name) + _setter("tables", tables) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if dlq_event_queue_arn is not None: - pulumi.set(__self__, "dlq_event_queue_arn", dlq_event_queue_arn) + _setter("dlq_event_queue_arn", dlq_event_queue_arn) if event_queue_arn is not None: - pulumi.set(__self__, "event_queue_arn", event_queue_arn) + _setter("event_queue_arn", event_queue_arn) @property @pulumi.getter(name="databaseName") @@ -1353,12 +1818,41 @@ def __init__(__self__, *, :param pulumi.Input[str] connection_name: The name of the connection to use to connect to the Delta table target. :param pulumi.Input[bool] create_native_delta_table: Specifies whether the crawler will create native tables, to allow integration with query engines that support querying of the Delta transaction log directly. """ - pulumi.set(__self__, "delta_tables", delta_tables) - pulumi.set(__self__, "write_manifest", write_manifest) + CrawlerDeltaTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delta_tables=delta_tables, + write_manifest=write_manifest, + connection_name=connection_name, + create_native_delta_table=create_native_delta_table, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delta_tables: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + write_manifest: Optional[pulumi.Input[bool]] = None, + connection_name: Optional[pulumi.Input[str]] = None, + create_native_delta_table: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delta_tables is None and 'deltaTables' in kwargs: + delta_tables = kwargs['deltaTables'] + if delta_tables is None: + raise TypeError("Missing 'delta_tables' argument") + if write_manifest is None and 'writeManifest' in kwargs: + write_manifest = kwargs['writeManifest'] + if write_manifest is None: + raise TypeError("Missing 'write_manifest' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if create_native_delta_table is None and 'createNativeDeltaTable' in kwargs: + create_native_delta_table = kwargs['createNativeDeltaTable'] + + _setter("delta_tables", delta_tables) + _setter("write_manifest", write_manifest) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if create_native_delta_table is not None: - pulumi.set(__self__, "create_native_delta_table", create_native_delta_table) + _setter("create_native_delta_table", create_native_delta_table) @property @pulumi.getter(name="deltaTables") @@ -1420,11 +1914,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] scan_all: Indicates whether to scan all the records, or to sample rows from the table. Scanning all the records can take a long time when the table is not a high throughput table. defaults to `true`. :param pulumi.Input[float] scan_rate: The percentage of the configured read capacity units to use by the AWS Glue crawler. The valid values are null or a value between 0.1 to 1.5. """ - pulumi.set(__self__, "path", path) + CrawlerDynamodbTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + scan_all=scan_all, + scan_rate=scan_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[pulumi.Input[str]] = None, + scan_all: Optional[pulumi.Input[bool]] = None, + scan_rate: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + if scan_all is None and 'scanAll' in kwargs: + scan_all = kwargs['scanAll'] + if scan_rate is None and 'scanRate' in kwargs: + scan_rate = kwargs['scanRate'] + + _setter("path", path) if scan_all is not None: - pulumi.set(__self__, "scan_all", scan_all) + _setter("scan_all", scan_all) if scan_rate is not None: - pulumi.set(__self__, "scan_rate", scan_rate) + _setter("scan_rate", scan_rate) @property @pulumi.getter @@ -1476,12 +1991,37 @@ def __init__(__self__, *, :param pulumi.Input[str] connection_name: The name of the connection to use to connect to the Hudi target. :param pulumi.Input[Sequence[pulumi.Input[str]]] exclusions: A list of glob patterns used to exclude from the crawl. """ - pulumi.set(__self__, "maximum_traversal_depth", maximum_traversal_depth) - pulumi.set(__self__, "paths", paths) + CrawlerHudiTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_traversal_depth=maximum_traversal_depth, + paths=paths, + connection_name=connection_name, + exclusions=exclusions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_traversal_depth: Optional[pulumi.Input[int]] = None, + paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + connection_name: Optional[pulumi.Input[str]] = None, + exclusions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_traversal_depth is None and 'maximumTraversalDepth' in kwargs: + maximum_traversal_depth = kwargs['maximumTraversalDepth'] + if maximum_traversal_depth is None: + raise TypeError("Missing 'maximum_traversal_depth' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + + _setter("maximum_traversal_depth", maximum_traversal_depth) + _setter("paths", paths) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if exclusions is not None: - pulumi.set(__self__, "exclusions", exclusions) + _setter("exclusions", exclusions) @property @pulumi.getter(name="maximumTraversalDepth") @@ -1545,12 +2085,37 @@ def __init__(__self__, *, :param pulumi.Input[str] connection_name: The name of the connection to use to connect to the Iceberg target. :param pulumi.Input[Sequence[pulumi.Input[str]]] exclusions: A list of glob patterns used to exclude from the crawl. """ - pulumi.set(__self__, "maximum_traversal_depth", maximum_traversal_depth) - pulumi.set(__self__, "paths", paths) + CrawlerIcebergTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_traversal_depth=maximum_traversal_depth, + paths=paths, + connection_name=connection_name, + exclusions=exclusions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_traversal_depth: Optional[pulumi.Input[int]] = None, + paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + connection_name: Optional[pulumi.Input[str]] = None, + exclusions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_traversal_depth is None and 'maximumTraversalDepth' in kwargs: + maximum_traversal_depth = kwargs['maximumTraversalDepth'] + if maximum_traversal_depth is None: + raise TypeError("Missing 'maximum_traversal_depth' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + + _setter("maximum_traversal_depth", maximum_traversal_depth) + _setter("paths", paths) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if exclusions is not None: - pulumi.set(__self__, "exclusions", exclusions) + _setter("exclusions", exclusions) @property @pulumi.getter(name="maximumTraversalDepth") @@ -1614,12 +2179,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] enable_additional_metadatas: Specify a value of `RAWTYPES` or `COMMENTS` to enable additional metadata intable responses. `RAWTYPES` provides the native-level datatype. `COMMENTS` provides comments associated with a column or table in the database. :param pulumi.Input[Sequence[pulumi.Input[str]]] exclusions: A list of glob patterns used to exclude from the crawl. """ - pulumi.set(__self__, "connection_name", connection_name) - pulumi.set(__self__, "path", path) + CrawlerJdbcTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_name=connection_name, + path=path, + enable_additional_metadatas=enable_additional_metadatas, + exclusions=exclusions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + enable_additional_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + exclusions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if connection_name is None: + raise TypeError("Missing 'connection_name' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if enable_additional_metadatas is None and 'enableAdditionalMetadatas' in kwargs: + enable_additional_metadatas = kwargs['enableAdditionalMetadatas'] + + _setter("connection_name", connection_name) + _setter("path", path) if enable_additional_metadatas is not None: - pulumi.set(__self__, "enable_additional_metadatas", enable_additional_metadatas) + _setter("enable_additional_metadatas", enable_additional_metadatas) if exclusions is not None: - pulumi.set(__self__, "exclusions", exclusions) + _setter("exclusions", exclusions) @property @pulumi.getter(name="connectionName") @@ -1679,10 +2269,27 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: Required for cross account crawls. For same account crawls as the target data, this can omitted. :param pulumi.Input[bool] use_lake_formation_credentials: Specifies whether to use Lake Formation credentials for the crawler instead of the IAM role credentials. """ + CrawlerLakeFormationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + use_lake_formation_credentials=use_lake_formation_credentials, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + use_lake_formation_credentials: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if use_lake_formation_credentials is None and 'useLakeFormationCredentials' in kwargs: + use_lake_formation_credentials = kwargs['useLakeFormationCredentials'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if use_lake_formation_credentials is not None: - pulumi.set(__self__, "use_lake_formation_credentials", use_lake_formation_credentials) + _setter("use_lake_formation_credentials", use_lake_formation_credentials) @property @pulumi.getter(name="accountId") @@ -1716,8 +2323,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] crawler_lineage_settings: Specifies whether data lineage is enabled for the crawler. Valid values are: `ENABLE` and `DISABLE`. Default value is `DISABLE`. """ + CrawlerLineageConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + crawler_lineage_settings=crawler_lineage_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + crawler_lineage_settings: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if crawler_lineage_settings is None and 'crawlerLineageSettings' in kwargs: + crawler_lineage_settings = kwargs['crawlerLineageSettings'] + if crawler_lineage_settings is not None: - pulumi.set(__self__, "crawler_lineage_settings", crawler_lineage_settings) + _setter("crawler_lineage_settings", crawler_lineage_settings) @property @pulumi.getter(name="crawlerLineageSettings") @@ -1743,10 +2363,33 @@ def __init__(__self__, *, :param pulumi.Input[str] path: The path of the Amazon DocumentDB or MongoDB target (database/collection). :param pulumi.Input[bool] scan_all: Indicates whether to scan all the records, or to sample rows from the table. Scanning all the records can take a long time when the table is not a high throughput table. Default value is `true`. """ - pulumi.set(__self__, "connection_name", connection_name) - pulumi.set(__self__, "path", path) + CrawlerMongodbTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_name=connection_name, + path=path, + scan_all=scan_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + scan_all: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if connection_name is None: + raise TypeError("Missing 'connection_name' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if scan_all is None and 'scanAll' in kwargs: + scan_all = kwargs['scanAll'] + + _setter("connection_name", connection_name) + _setter("path", path) if scan_all is not None: - pulumi.set(__self__, "scan_all", scan_all) + _setter("scan_all", scan_all) @property @pulumi.getter(name="connectionName") @@ -1792,8 +2435,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] recrawl_behavior: Specifies whether to crawl the entire dataset again, crawl only folders that were added since the last crawler run, or crawl what S3 notifies the crawler of via SQS. Valid Values are: `CRAWL_EVENT_MODE`, `CRAWL_EVERYTHING` and `CRAWL_NEW_FOLDERS_ONLY`. Default value is `CRAWL_EVERYTHING`. """ + CrawlerRecrawlPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + recrawl_behavior=recrawl_behavior, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + recrawl_behavior: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recrawl_behavior is None and 'recrawlBehavior' in kwargs: + recrawl_behavior = kwargs['recrawlBehavior'] + if recrawl_behavior is not None: - pulumi.set(__self__, "recrawl_behavior", recrawl_behavior) + _setter("recrawl_behavior", recrawl_behavior) @property @pulumi.getter(name="recrawlBehavior") @@ -1819,27 +2475,58 @@ def __init__(__self__, *, sample_size: Optional[pulumi.Input[int]] = None): """ :param pulumi.Input[str] path: The name of the DynamoDB table to crawl. - :param pulumi.Input[str] connection_name: The name of the connection to use to connect to the JDBC target. - :param pulumi.Input[str] dlq_event_queue_arn: The ARN of the dead-letter SQS queue. + :param pulumi.Input[str] connection_name: The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. + :param pulumi.Input[str] dlq_event_queue_arn: A valid Amazon SQS ARN. > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. > **Note:** `configuration` for catalog target crawlers will have `{ ... "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas"} }` by default. - :param pulumi.Input[str] event_queue_arn: The ARN of the SQS queue to receive S3 notifications from. + :param pulumi.Input[str] event_queue_arn: A valid Amazon SQS ARN. :param pulumi.Input[Sequence[pulumi.Input[str]]] exclusions: A list of glob patterns used to exclude from the crawl. :param pulumi.Input[int] sample_size: Sets the number of files in each leaf folder to be crawled when crawling sample files in a dataset. If not set, all the files are crawled. A valid value is an integer between 1 and 249. """ - pulumi.set(__self__, "path", path) + CrawlerS3TargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + connection_name=connection_name, + dlq_event_queue_arn=dlq_event_queue_arn, + event_queue_arn=event_queue_arn, + exclusions=exclusions, + sample_size=sample_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[pulumi.Input[str]] = None, + connection_name: Optional[pulumi.Input[str]] = None, + dlq_event_queue_arn: Optional[pulumi.Input[str]] = None, + event_queue_arn: Optional[pulumi.Input[str]] = None, + exclusions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sample_size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if dlq_event_queue_arn is None and 'dlqEventQueueArn' in kwargs: + dlq_event_queue_arn = kwargs['dlqEventQueueArn'] + if event_queue_arn is None and 'eventQueueArn' in kwargs: + event_queue_arn = kwargs['eventQueueArn'] + if sample_size is None and 'sampleSize' in kwargs: + sample_size = kwargs['sampleSize'] + + _setter("path", path) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if dlq_event_queue_arn is not None: - pulumi.set(__self__, "dlq_event_queue_arn", dlq_event_queue_arn) + _setter("dlq_event_queue_arn", dlq_event_queue_arn) if event_queue_arn is not None: - pulumi.set(__self__, "event_queue_arn", event_queue_arn) + _setter("event_queue_arn", event_queue_arn) if exclusions is not None: - pulumi.set(__self__, "exclusions", exclusions) + _setter("exclusions", exclusions) if sample_size is not None: - pulumi.set(__self__, "sample_size", sample_size) + _setter("sample_size", sample_size) @property @pulumi.getter @@ -1857,7 +2544,7 @@ def path(self, value: pulumi.Input[str]): @pulumi.getter(name="connectionName") def connection_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the connection to use to connect to the JDBC target. + The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. """ return pulumi.get(self, "connection_name") @@ -1869,7 +2556,7 @@ def connection_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="dlqEventQueueArn") def dlq_event_queue_arn(self) -> Optional[pulumi.Input[str]]: """ - The ARN of the dead-letter SQS queue. + A valid Amazon SQS ARN. > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. @@ -1885,7 +2572,7 @@ def dlq_event_queue_arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="eventQueueArn") def event_queue_arn(self) -> Optional[pulumi.Input[str]]: """ - The ARN of the SQS queue to receive S3 notifications from. + A valid Amazon SQS ARN. """ return pulumi.get(self, "event_queue_arn") @@ -1927,10 +2614,27 @@ def __init__(__self__, *, :param pulumi.Input[str] delete_behavior: The deletion behavior when the crawler finds a deleted object. Valid values: `LOG`, `DELETE_FROM_DATABASE`, or `DEPRECATE_IN_DATABASE`. Defaults to `DEPRECATE_IN_DATABASE`. :param pulumi.Input[str] update_behavior: The update behavior when the crawler finds a changed schema. Valid values: `LOG` or `UPDATE_IN_DATABASE`. Defaults to `UPDATE_IN_DATABASE`. """ + CrawlerSchemaChangePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_behavior=delete_behavior, + update_behavior=update_behavior, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_behavior: Optional[pulumi.Input[str]] = None, + update_behavior: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_behavior is None and 'deleteBehavior' in kwargs: + delete_behavior = kwargs['deleteBehavior'] + if update_behavior is None and 'updateBehavior' in kwargs: + update_behavior = kwargs['updateBehavior'] + if delete_behavior is not None: - pulumi.set(__self__, "delete_behavior", delete_behavior) + _setter("delete_behavior", delete_behavior) if update_behavior is not None: - pulumi.set(__self__, "update_behavior", update_behavior) + _setter("update_behavior", update_behavior) @property @pulumi.getter(name="deleteBehavior") @@ -1966,8 +2670,29 @@ def __init__(__self__, *, :param pulumi.Input['DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryptionArgs'] connection_password_encryption: When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of CreateConnection or UpdateConnection and store it in the ENCRYPTED_PASSWORD field in the connection properties. You can enable catalog encryption or only password encryption. see Connection Password Encryption. :param pulumi.Input['DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRestArgs'] encryption_at_rest: Specifies the encryption-at-rest configuration for the Data Catalog. see Encryption At Rest. """ - pulumi.set(__self__, "connection_password_encryption", connection_password_encryption) - pulumi.set(__self__, "encryption_at_rest", encryption_at_rest) + DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_password_encryption=connection_password_encryption, + encryption_at_rest=encryption_at_rest, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_password_encryption: Optional[pulumi.Input['DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryptionArgs']] = None, + encryption_at_rest: Optional[pulumi.Input['DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRestArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_password_encryption is None and 'connectionPasswordEncryption' in kwargs: + connection_password_encryption = kwargs['connectionPasswordEncryption'] + if connection_password_encryption is None: + raise TypeError("Missing 'connection_password_encryption' argument") + if encryption_at_rest is None and 'encryptionAtRest' in kwargs: + encryption_at_rest = kwargs['encryptionAtRest'] + if encryption_at_rest is None: + raise TypeError("Missing 'encryption_at_rest' argument") + + _setter("connection_password_encryption", connection_password_encryption) + _setter("encryption_at_rest", encryption_at_rest) @property @pulumi.getter(name="connectionPasswordEncryption") @@ -2003,9 +2728,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] return_connection_password_encrypted: When set to `true`, passwords remain encrypted in the responses of GetConnection and GetConnections. This encryption takes effect independently of the catalog encryption. :param pulumi.Input[str] aws_kms_key_id: A KMS key ARN that is used to encrypt the connection password. If connection password protection is enabled, the caller of CreateConnection and UpdateConnection needs at least `kms:Encrypt` permission on the specified AWS KMS key, to encrypt passwords before storing them in the Data Catalog. """ - pulumi.set(__self__, "return_connection_password_encrypted", return_connection_password_encrypted) + DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + return_connection_password_encrypted=return_connection_password_encrypted, + aws_kms_key_id=aws_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + return_connection_password_encrypted: Optional[pulumi.Input[bool]] = None, + aws_kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if return_connection_password_encrypted is None and 'returnConnectionPasswordEncrypted' in kwargs: + return_connection_password_encrypted = kwargs['returnConnectionPasswordEncrypted'] + if return_connection_password_encrypted is None: + raise TypeError("Missing 'return_connection_password_encrypted' argument") + if aws_kms_key_id is None and 'awsKmsKeyId' in kwargs: + aws_kms_key_id = kwargs['awsKmsKeyId'] + + _setter("return_connection_password_encrypted", return_connection_password_encrypted) if aws_kms_key_id is not None: - pulumi.set(__self__, "aws_kms_key_id", aws_kms_key_id) + _setter("aws_kms_key_id", aws_kms_key_id) @property @pulumi.getter(name="returnConnectionPasswordEncrypted") @@ -2041,9 +2785,28 @@ def __init__(__self__, *, :param pulumi.Input[str] catalog_encryption_mode: The encryption-at-rest mode for encrypting Data Catalog data. Valid values are `DISABLED` and `SSE-KMS`. :param pulumi.Input[str] sse_aws_kms_key_id: The ARN of the AWS KMS key to use for encryption at rest. """ - pulumi.set(__self__, "catalog_encryption_mode", catalog_encryption_mode) + DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_encryption_mode=catalog_encryption_mode, + sse_aws_kms_key_id=sse_aws_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_encryption_mode: Optional[pulumi.Input[str]] = None, + sse_aws_kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_encryption_mode is None and 'catalogEncryptionMode' in kwargs: + catalog_encryption_mode = kwargs['catalogEncryptionMode'] + if catalog_encryption_mode is None: + raise TypeError("Missing 'catalog_encryption_mode' argument") + if sse_aws_kms_key_id is None and 'sseAwsKmsKeyId' in kwargs: + sse_aws_kms_key_id = kwargs['sseAwsKmsKeyId'] + + _setter("catalog_encryption_mode", catalog_encryption_mode) if sse_aws_kms_key_id is not None: - pulumi.set(__self__, "sse_aws_kms_key_id", sse_aws_kms_key_id) + _setter("sse_aws_kms_key_id", sse_aws_kms_key_id) @property @pulumi.getter(name="catalogEncryptionMode") @@ -2081,10 +2844,35 @@ def __init__(__self__, *, :param pulumi.Input[str] table_name: Name of the AWS Glue table. :param pulumi.Input[str] catalog_id: The catalog id where the AWS Glue table exists. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "table_name", table_name) + DataQualityRulesetTargetTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + table_name=table_name, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("database_name", database_name) + _setter("table_name", table_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter(name="databaseName") @@ -2136,13 +2924,36 @@ def __init__(__self__, *, :param pulumi.Input[str] python_version: The Python version being used to execute a Python shell job. Allowed values are 2, 3 or 3.9. Version 3 refers to Python 3.6. :param pulumi.Input[str] runtime: In Ray jobs, runtime is used to specify the versions of Ray, Python and additional libraries available in your environment. This field is not used in other job types. For supported runtime environment values, see [Working with Ray jobs](https://docs.aws.amazon.com/glue/latest/dg/ray-jobs-section.html#author-job-ray-runtimes) in the Glue Developer Guide. """ - pulumi.set(__self__, "script_location", script_location) + JobCommandArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + script_location=script_location, + name=name, + python_version=python_version, + runtime=runtime, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + script_location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + python_version: Optional[pulumi.Input[str]] = None, + runtime: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if script_location is None and 'scriptLocation' in kwargs: + script_location = kwargs['scriptLocation'] + if script_location is None: + raise TypeError("Missing 'script_location' argument") + if python_version is None and 'pythonVersion' in kwargs: + python_version = kwargs['pythonVersion'] + + _setter("script_location", script_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if python_version is not None: - pulumi.set(__self__, "python_version", python_version) + _setter("python_version", python_version) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) @property @pulumi.getter(name="scriptLocation") @@ -2200,8 +3011,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] max_concurrent_runs: The maximum number of concurrent runs allowed for a job. The default is 1. """ + JobExecutionPropertyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_concurrent_runs=max_concurrent_runs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_concurrent_runs: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_concurrent_runs is None and 'maxConcurrentRuns' in kwargs: + max_concurrent_runs = kwargs['maxConcurrentRuns'] + if max_concurrent_runs is not None: - pulumi.set(__self__, "max_concurrent_runs", max_concurrent_runs) + _setter("max_concurrent_runs", max_concurrent_runs) @property @pulumi.getter(name="maxConcurrentRuns") @@ -2223,8 +3047,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] notify_delay_after: After a job run starts, the number of minutes to wait before sending a job run delay notification. """ + JobNotificationPropertyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + notify_delay_after=notify_delay_after, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notify_delay_after: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notify_delay_after is None and 'notifyDelayAfter' in kwargs: + notify_delay_after = kwargs['notifyDelayAfter'] + if notify_delay_after is not None: - pulumi.set(__self__, "notify_delay_after", notify_delay_after) + _setter("notify_delay_after", notify_delay_after) @property @pulumi.getter(name="notifyDelayAfter") @@ -2252,12 +3089,41 @@ def __init__(__self__, *, :param pulumi.Input[str] catalog_id: A unique identifier for the AWS Glue Data Catalog. :param pulumi.Input[str] connection_name: The name of the connection to the AWS Glue Data Catalog. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "table_name", table_name) + MLTransformInputRecordTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + table_name=table_name, + catalog_id=catalog_id, + connection_name=connection_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + connection_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + + _setter("database_name", database_name) + _setter("table_name", table_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) @property @pulumi.getter(name="databaseName") @@ -2317,8 +3183,29 @@ def __init__(__self__, *, :param pulumi.Input['MLTransformParametersFindMatchesParametersArgs'] find_matches_parameters: The parameters for the find matches algorithm. see Find Matches Parameters. :param pulumi.Input[str] transform_type: The type of machine learning transform. For information about the types of machine learning transforms, see [Creating Machine Learning Transforms](http://docs.aws.amazon.com/glue/latest/dg/add-job-machine-learning-transform.html). """ - pulumi.set(__self__, "find_matches_parameters", find_matches_parameters) - pulumi.set(__self__, "transform_type", transform_type) + MLTransformParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + find_matches_parameters=find_matches_parameters, + transform_type=transform_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + find_matches_parameters: Optional[pulumi.Input['MLTransformParametersFindMatchesParametersArgs']] = None, + transform_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if find_matches_parameters is None and 'findMatchesParameters' in kwargs: + find_matches_parameters = kwargs['findMatchesParameters'] + if find_matches_parameters is None: + raise TypeError("Missing 'find_matches_parameters' argument") + if transform_type is None and 'transformType' in kwargs: + transform_type = kwargs['transformType'] + if transform_type is None: + raise TypeError("Missing 'transform_type' argument") + + _setter("find_matches_parameters", find_matches_parameters) + _setter("transform_type", transform_type) @property @pulumi.getter(name="findMatchesParameters") @@ -2358,14 +3245,39 @@ def __init__(__self__, *, :param pulumi.Input[float] precision_recall_trade_off: The value selected when tuning your transform for a balance between precision and recall. :param pulumi.Input[str] primary_key_column_name: The name of a column that uniquely identifies rows in the source table. """ + MLTransformParametersFindMatchesParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accuracy_cost_trade_off=accuracy_cost_trade_off, + enforce_provided_labels=enforce_provided_labels, + precision_recall_trade_off=precision_recall_trade_off, + primary_key_column_name=primary_key_column_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accuracy_cost_trade_off: Optional[pulumi.Input[float]] = None, + enforce_provided_labels: Optional[pulumi.Input[bool]] = None, + precision_recall_trade_off: Optional[pulumi.Input[float]] = None, + primary_key_column_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accuracy_cost_trade_off is None and 'accuracyCostTradeOff' in kwargs: + accuracy_cost_trade_off = kwargs['accuracyCostTradeOff'] + if enforce_provided_labels is None and 'enforceProvidedLabels' in kwargs: + enforce_provided_labels = kwargs['enforceProvidedLabels'] + if precision_recall_trade_off is None and 'precisionRecallTradeOff' in kwargs: + precision_recall_trade_off = kwargs['precisionRecallTradeOff'] + if primary_key_column_name is None and 'primaryKeyColumnName' in kwargs: + primary_key_column_name = kwargs['primaryKeyColumnName'] + if accuracy_cost_trade_off is not None: - pulumi.set(__self__, "accuracy_cost_trade_off", accuracy_cost_trade_off) + _setter("accuracy_cost_trade_off", accuracy_cost_trade_off) if enforce_provided_labels is not None: - pulumi.set(__self__, "enforce_provided_labels", enforce_provided_labels) + _setter("enforce_provided_labels", enforce_provided_labels) if precision_recall_trade_off is not None: - pulumi.set(__self__, "precision_recall_trade_off", precision_recall_trade_off) + _setter("precision_recall_trade_off", precision_recall_trade_off) if primary_key_column_name is not None: - pulumi.set(__self__, "primary_key_column_name", primary_key_column_name) + _setter("primary_key_column_name", primary_key_column_name) @property @pulumi.getter(name="accuracyCostTradeOff") @@ -2425,10 +3337,25 @@ def __init__(__self__, *, :param pulumi.Input[str] data_type: The type of data in the column. :param pulumi.Input[str] name: The name you assign to this ML Transform. It must be unique in your account. """ + MLTransformSchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_type=data_type, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_type is None and 'dataType' in kwargs: + data_type = kwargs['dataType'] + if data_type is not None: - pulumi.set(__self__, "data_type", data_type) + _setter("data_type", data_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="dataType") @@ -2465,12 +3392,31 @@ def __init__(__self__, *, :param pulumi.Input[str] index_name: Name of the partition index. :param pulumi.Input[Sequence[pulumi.Input[str]]] keys: Keys for the partition index. """ + PartitionIndexPartitionIndexArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + index_status=index_status, + keys=keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[pulumi.Input[str]] = None, + index_status: Optional[pulumi.Input[str]] = None, + keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_status is None and 'indexStatus' in kwargs: + index_status = kwargs['indexStatus'] + if index_name is not None: - pulumi.set(__self__, "index_name", index_name) + _setter("index_name", index_name) if index_status is not None: - pulumi.set(__self__, "index_status", index_status) + _setter("index_status", index_status) if keys is not None: - pulumi.set(__self__, "keys", keys) + _setter("keys", keys) @property @pulumi.getter(name="indexName") @@ -2535,30 +3481,79 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['PartitionStorageDescriptorSortColumnArgs']]] sort_columns: A list of Order objects specifying the sort order of each bucket in the table. :param pulumi.Input[bool] stored_as_sub_directories: True if the table data is stored in subdirectories, or False if not. """ + PartitionStorageDescriptorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_columns=bucket_columns, + columns=columns, + compressed=compressed, + input_format=input_format, + location=location, + number_of_buckets=number_of_buckets, + output_format=output_format, + parameters=parameters, + ser_de_info=ser_de_info, + skewed_info=skewed_info, + sort_columns=sort_columns, + stored_as_sub_directories=stored_as_sub_directories, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + columns: Optional[pulumi.Input[Sequence[pulumi.Input['PartitionStorageDescriptorColumnArgs']]]] = None, + compressed: Optional[pulumi.Input[bool]] = None, + input_format: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + number_of_buckets: Optional[pulumi.Input[int]] = None, + output_format: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + ser_de_info: Optional[pulumi.Input['PartitionStorageDescriptorSerDeInfoArgs']] = None, + skewed_info: Optional[pulumi.Input['PartitionStorageDescriptorSkewedInfoArgs']] = None, + sort_columns: Optional[pulumi.Input[Sequence[pulumi.Input['PartitionStorageDescriptorSortColumnArgs']]]] = None, + stored_as_sub_directories: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_columns is None and 'bucketColumns' in kwargs: + bucket_columns = kwargs['bucketColumns'] + if input_format is None and 'inputFormat' in kwargs: + input_format = kwargs['inputFormat'] + if number_of_buckets is None and 'numberOfBuckets' in kwargs: + number_of_buckets = kwargs['numberOfBuckets'] + if output_format is None and 'outputFormat' in kwargs: + output_format = kwargs['outputFormat'] + if ser_de_info is None and 'serDeInfo' in kwargs: + ser_de_info = kwargs['serDeInfo'] + if skewed_info is None and 'skewedInfo' in kwargs: + skewed_info = kwargs['skewedInfo'] + if sort_columns is None and 'sortColumns' in kwargs: + sort_columns = kwargs['sortColumns'] + if stored_as_sub_directories is None and 'storedAsSubDirectories' in kwargs: + stored_as_sub_directories = kwargs['storedAsSubDirectories'] + if bucket_columns is not None: - pulumi.set(__self__, "bucket_columns", bucket_columns) + _setter("bucket_columns", bucket_columns) if columns is not None: - pulumi.set(__self__, "columns", columns) + _setter("columns", columns) if compressed is not None: - pulumi.set(__self__, "compressed", compressed) + _setter("compressed", compressed) if input_format is not None: - pulumi.set(__self__, "input_format", input_format) + _setter("input_format", input_format) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if number_of_buckets is not None: - pulumi.set(__self__, "number_of_buckets", number_of_buckets) + _setter("number_of_buckets", number_of_buckets) if output_format is not None: - pulumi.set(__self__, "output_format", output_format) + _setter("output_format", output_format) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if ser_de_info is not None: - pulumi.set(__self__, "ser_de_info", ser_de_info) + _setter("ser_de_info", ser_de_info) if skewed_info is not None: - pulumi.set(__self__, "skewed_info", skewed_info) + _setter("skewed_info", skewed_info) if sort_columns is not None: - pulumi.set(__self__, "sort_columns", sort_columns) + _setter("sort_columns", sort_columns) if stored_as_sub_directories is not None: - pulumi.set(__self__, "stored_as_sub_directories", stored_as_sub_directories) + _setter("stored_as_sub_directories", stored_as_sub_directories) @property @pulumi.getter(name="bucketColumns") @@ -2716,11 +3711,28 @@ def __init__(__self__, *, :param pulumi.Input[str] comment: Free-form text comment. :param pulumi.Input[str] type: The datatype of data in the Column. """ - pulumi.set(__self__, "name", name) + PartitionStorageDescriptorColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + comment=comment, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -2770,12 +3782,29 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: A map of initialization parameters for the SerDe, in key-value form. :param pulumi.Input[str] serialization_library: Usually the class that implements the SerDe. An example is: org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe. """ + PartitionStorageDescriptorSerDeInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + parameters=parameters, + serialization_library=serialization_library, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + serialization_library: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if serialization_library is None and 'serializationLibrary' in kwargs: + serialization_library = kwargs['serializationLibrary'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if serialization_library is not None: - pulumi.set(__self__, "serialization_library", serialization_library) + _setter("serialization_library", serialization_library) @property @pulumi.getter @@ -2825,12 +3854,33 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] skewed_column_value_location_maps: A list of values that appear so frequently as to be considered skewed. :param pulumi.Input[Sequence[pulumi.Input[str]]] skewed_column_values: A map of skewed values to the columns that contain them. """ + PartitionStorageDescriptorSkewedInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + skewed_column_names=skewed_column_names, + skewed_column_value_location_maps=skewed_column_value_location_maps, + skewed_column_values=skewed_column_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + skewed_column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + skewed_column_value_location_maps: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + skewed_column_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skewed_column_names is None and 'skewedColumnNames' in kwargs: + skewed_column_names = kwargs['skewedColumnNames'] + if skewed_column_value_location_maps is None and 'skewedColumnValueLocationMaps' in kwargs: + skewed_column_value_location_maps = kwargs['skewedColumnValueLocationMaps'] + if skewed_column_values is None and 'skewedColumnValues' in kwargs: + skewed_column_values = kwargs['skewedColumnValues'] + if skewed_column_names is not None: - pulumi.set(__self__, "skewed_column_names", skewed_column_names) + _setter("skewed_column_names", skewed_column_names) if skewed_column_value_location_maps is not None: - pulumi.set(__self__, "skewed_column_value_location_maps", skewed_column_value_location_maps) + _setter("skewed_column_value_location_maps", skewed_column_value_location_maps) if skewed_column_values is not None: - pulumi.set(__self__, "skewed_column_values", skewed_column_values) + _setter("skewed_column_values", skewed_column_values) @property @pulumi.getter(name="skewedColumnNames") @@ -2878,8 +3928,27 @@ def __init__(__self__, *, :param pulumi.Input[str] column: The name of the column. :param pulumi.Input[int] sort_order: Indicates that the column is sorted in ascending order (== 1), or in descending order (==0). """ - pulumi.set(__self__, "column", column) - pulumi.set(__self__, "sort_order", sort_order) + PartitionStorageDescriptorSortColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column=column, + sort_order=sort_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column: Optional[pulumi.Input[str]] = None, + sort_order: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column is None: + raise TypeError("Missing 'column' argument") + if sort_order is None and 'sortOrder' in kwargs: + sort_order = kwargs['sortOrder'] + if sort_order is None: + raise TypeError("Missing 'sort_order' argument") + + _setter("column", column) + _setter("sort_order", sort_order) @property @pulumi.getter @@ -2915,9 +3984,36 @@ def __init__(__self__, *, """ :param pulumi.Input['SecurityConfigurationEncryptionConfigurationS3EncryptionArgs'] s3_encryption: A `s3_encryption ` block as described below, which contains encryption configuration for S3 data. """ - pulumi.set(__self__, "cloudwatch_encryption", cloudwatch_encryption) - pulumi.set(__self__, "job_bookmarks_encryption", job_bookmarks_encryption) - pulumi.set(__self__, "s3_encryption", s3_encryption) + SecurityConfigurationEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_encryption=cloudwatch_encryption, + job_bookmarks_encryption=job_bookmarks_encryption, + s3_encryption=s3_encryption, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_encryption: Optional[pulumi.Input['SecurityConfigurationEncryptionConfigurationCloudwatchEncryptionArgs']] = None, + job_bookmarks_encryption: Optional[pulumi.Input['SecurityConfigurationEncryptionConfigurationJobBookmarksEncryptionArgs']] = None, + s3_encryption: Optional[pulumi.Input['SecurityConfigurationEncryptionConfigurationS3EncryptionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_encryption is None and 'cloudwatchEncryption' in kwargs: + cloudwatch_encryption = kwargs['cloudwatchEncryption'] + if cloudwatch_encryption is None: + raise TypeError("Missing 'cloudwatch_encryption' argument") + if job_bookmarks_encryption is None and 'jobBookmarksEncryption' in kwargs: + job_bookmarks_encryption = kwargs['jobBookmarksEncryption'] + if job_bookmarks_encryption is None: + raise TypeError("Missing 'job_bookmarks_encryption' argument") + if s3_encryption is None and 's3Encryption' in kwargs: + s3_encryption = kwargs['s3Encryption'] + if s3_encryption is None: + raise TypeError("Missing 's3_encryption' argument") + + _setter("cloudwatch_encryption", cloudwatch_encryption) + _setter("job_bookmarks_encryption", job_bookmarks_encryption) + _setter("s3_encryption", s3_encryption) @property @pulumi.getter(name="cloudwatchEncryption") @@ -2959,10 +4055,27 @@ def __init__(__self__, *, :param pulumi.Input[str] cloudwatch_encryption_mode: Encryption mode to use for CloudWatch data. Valid values: `DISABLED`, `SSE-KMS`. Default value: `DISABLED`. :param pulumi.Input[str] kms_key_arn: Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data. """ + SecurityConfigurationEncryptionConfigurationCloudwatchEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_encryption_mode=cloudwatch_encryption_mode, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_encryption_mode: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_encryption_mode is None and 'cloudwatchEncryptionMode' in kwargs: + cloudwatch_encryption_mode = kwargs['cloudwatchEncryptionMode'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if cloudwatch_encryption_mode is not None: - pulumi.set(__self__, "cloudwatch_encryption_mode", cloudwatch_encryption_mode) + _setter("cloudwatch_encryption_mode", cloudwatch_encryption_mode) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="cloudwatchEncryptionMode") @@ -2998,10 +4111,27 @@ def __init__(__self__, *, :param pulumi.Input[str] job_bookmarks_encryption_mode: Encryption mode to use for job bookmarks data. Valid values: `CSE-KMS`, `DISABLED`. Default value: `DISABLED`. :param pulumi.Input[str] kms_key_arn: Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data. """ + SecurityConfigurationEncryptionConfigurationJobBookmarksEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_bookmarks_encryption_mode=job_bookmarks_encryption_mode, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_bookmarks_encryption_mode: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_bookmarks_encryption_mode is None and 'jobBookmarksEncryptionMode' in kwargs: + job_bookmarks_encryption_mode = kwargs['jobBookmarksEncryptionMode'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if job_bookmarks_encryption_mode is not None: - pulumi.set(__self__, "job_bookmarks_encryption_mode", job_bookmarks_encryption_mode) + _setter("job_bookmarks_encryption_mode", job_bookmarks_encryption_mode) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="jobBookmarksEncryptionMode") @@ -3037,10 +4167,27 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_arn: Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data. :param pulumi.Input[str] s3_encryption_mode: Encryption mode to use for S3 data. Valid values: `DISABLED`, `SSE-KMS`, `SSE-S3`. Default value: `DISABLED`. """ + SecurityConfigurationEncryptionConfigurationS3EncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_arn=kms_key_arn, + s3_encryption_mode=s3_encryption_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_arn: Optional[pulumi.Input[str]] = None, + s3_encryption_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if s3_encryption_mode is None and 's3EncryptionMode' in kwargs: + s3_encryption_mode = kwargs['s3EncryptionMode'] + if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if s3_encryption_mode is not None: - pulumi.set(__self__, "s3_encryption_mode", s3_encryption_mode) + _setter("s3_encryption_mode", s3_encryption_mode) @property @pulumi.getter(name="kmsKeyArn") @@ -3084,18 +4231,47 @@ def __init__(__self__, *, :param pulumi.Input[str] security_configuration: The name of the Security Configuration structure to be used with this action. :param pulumi.Input[int] timeout: The job run timeout in minutes. It overrides the timeout value of the job. """ + TriggerActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arguments=arguments, + crawler_name=crawler_name, + job_name=job_name, + notification_property=notification_property, + security_configuration=security_configuration, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arguments: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + crawler_name: Optional[pulumi.Input[str]] = None, + job_name: Optional[pulumi.Input[str]] = None, + notification_property: Optional[pulumi.Input['TriggerActionNotificationPropertyArgs']] = None, + security_configuration: Optional[pulumi.Input[str]] = None, + timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if crawler_name is None and 'crawlerName' in kwargs: + crawler_name = kwargs['crawlerName'] + if job_name is None and 'jobName' in kwargs: + job_name = kwargs['jobName'] + if notification_property is None and 'notificationProperty' in kwargs: + notification_property = kwargs['notificationProperty'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if arguments is not None: - pulumi.set(__self__, "arguments", arguments) + _setter("arguments", arguments) if crawler_name is not None: - pulumi.set(__self__, "crawler_name", crawler_name) + _setter("crawler_name", crawler_name) if job_name is not None: - pulumi.set(__self__, "job_name", job_name) + _setter("job_name", job_name) if notification_property is not None: - pulumi.set(__self__, "notification_property", notification_property) + _setter("notification_property", notification_property) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -3177,8 +4353,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] notify_delay_after: After a job run starts, the number of minutes to wait before sending a job run delay notification. """ + TriggerActionNotificationPropertyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + notify_delay_after=notify_delay_after, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notify_delay_after: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notify_delay_after is None and 'notifyDelayAfter' in kwargs: + notify_delay_after = kwargs['notifyDelayAfter'] + if notify_delay_after is not None: - pulumi.set(__self__, "notify_delay_after", notify_delay_after) + _setter("notify_delay_after", notify_delay_after) @property @pulumi.getter(name="notifyDelayAfter") @@ -3202,9 +4391,28 @@ def __init__(__self__, *, :param pulumi.Input[int] batch_size: Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires. :param pulumi.Input[int] batch_window: Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received. Default value is `900`. """ - pulumi.set(__self__, "batch_size", batch_size) + TriggerEventBatchingConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + batch_size=batch_size, + batch_window=batch_window, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + batch_size: Optional[pulumi.Input[int]] = None, + batch_window: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if batch_size is None: + raise TypeError("Missing 'batch_size' argument") + if batch_window is None and 'batchWindow' in kwargs: + batch_window = kwargs['batchWindow'] + + _setter("batch_size", batch_size) if batch_window is not None: - pulumi.set(__self__, "batch_window", batch_window) + _setter("batch_window", batch_window) @property @pulumi.getter(name="batchSize") @@ -3240,9 +4448,24 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['TriggerPredicateConditionArgs']]] conditions: A list of the conditions that determine when the trigger will fire. See Conditions. :param pulumi.Input[str] logical: How to handle multiple conditions. Defaults to `AND`. Valid values are `AND` or `ANY`. """ - pulumi.set(__self__, "conditions", conditions) + TriggerPredicateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + conditions=conditions, + logical=logical, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['TriggerPredicateConditionArgs']]]] = None, + logical: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if conditions is None: + raise TypeError("Missing 'conditions' argument") + + _setter("conditions", conditions) if logical is not None: - pulumi.set(__self__, "logical", logical) + _setter("logical", logical) @property @pulumi.getter @@ -3284,16 +4507,43 @@ def __init__(__self__, *, :param pulumi.Input[str] logical_operator: A logical operator. Defaults to `EQUALS`. :param pulumi.Input[str] state: The condition job state. Currently, the values supported are `SUCCEEDED`, `STOPPED`, `TIMEOUT` and `FAILED`. If this is specified, `job_name` must also be specified. Conflicts with `crawler_state`. """ + TriggerPredicateConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + crawl_state=crawl_state, + crawler_name=crawler_name, + job_name=job_name, + logical_operator=logical_operator, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + crawl_state: Optional[pulumi.Input[str]] = None, + crawler_name: Optional[pulumi.Input[str]] = None, + job_name: Optional[pulumi.Input[str]] = None, + logical_operator: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if crawl_state is None and 'crawlState' in kwargs: + crawl_state = kwargs['crawlState'] + if crawler_name is None and 'crawlerName' in kwargs: + crawler_name = kwargs['crawlerName'] + if job_name is None and 'jobName' in kwargs: + job_name = kwargs['jobName'] + if logical_operator is None and 'logicalOperator' in kwargs: + logical_operator = kwargs['logicalOperator'] + if crawl_state is not None: - pulumi.set(__self__, "crawl_state", crawl_state) + _setter("crawl_state", crawl_state) if crawler_name is not None: - pulumi.set(__self__, "crawler_name", crawler_name) + _setter("crawler_name", crawler_name) if job_name is not None: - pulumi.set(__self__, "job_name", job_name) + _setter("job_name", job_name) if logical_operator is not None: - pulumi.set(__self__, "logical_operator", logical_operator) + _setter("logical_operator", logical_operator) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="crawlState") @@ -3365,8 +4615,27 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_type: The type of the resource. can be one of `JAR`, `FILE`, and `ARCHIVE`. :param pulumi.Input[str] uri: The URI for accessing the resource. """ - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "uri", uri) + UserDefinedFunctionResourceUriArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_type=resource_type, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_type: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("resource_type", resource_type) + _setter("uri", uri) @property @pulumi.getter(name="resourceType") @@ -3404,10 +4673,31 @@ def __init__(__self__, *, :param str target: ID of the node at which the edge ends. :param str target_parameter: Target of the edge. """ - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "target", target) + GetScriptDagEdgeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + target=target, + target_parameter=target_parameter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[str] = None, + target: Optional[str] = None, + target_parameter: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if target_parameter is None and 'targetParameter' in kwargs: + target_parameter = kwargs['targetParameter'] + + _setter("source", source) + _setter("target", target) if target_parameter is not None: - pulumi.set(__self__, "target_parameter", target_parameter) + _setter("target_parameter", target_parameter) @property @pulumi.getter @@ -3459,11 +4749,38 @@ def __init__(__self__, *, :param str node_type: Type of node this is. :param int line_number: Line number of the node. """ - pulumi.set(__self__, "args", args) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "node_type", node_type) + GetScriptDagNodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + args=args, + id=id, + node_type=node_type, + line_number=line_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + args: Optional[Sequence['GetScriptDagNodeArgArgs']] = None, + id: Optional[str] = None, + node_type: Optional[str] = None, + line_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if args is None: + raise TypeError("Missing 'args' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if node_type is None: + raise TypeError("Missing 'node_type' argument") + if line_number is None and 'lineNumber' in kwargs: + line_number = kwargs['lineNumber'] + + _setter("args", args) + _setter("id", id) + _setter("node_type", node_type) if line_number is not None: - pulumi.set(__self__, "line_number", line_number) + _setter("line_number", line_number) @property @pulumi.getter @@ -3525,10 +4842,29 @@ def __init__(__self__, *, :param str value: Value of the argument or property. :param bool param: Boolean if the value is used as a parameter. Defaults to `false`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + GetScriptDagNodeArgArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + param=param, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + param: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) if param is not None: - pulumi.set(__self__, "param", param) + _setter("param", param) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/glue/catalog_database.py b/sdk/python/pulumi_aws/glue/catalog_database.py index 159fa9b7cf8..a1f217d39a8 100644 --- a/sdk/python/pulumi_aws/glue/catalog_database.py +++ b/sdk/python/pulumi_aws/glue/catalog_database.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,22 +35,55 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['CatalogDatabaseTargetDatabaseArgs'] target_database: Configuration block for a target database for resource linking. See `target_database` below. """ + CatalogDatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + create_table_default_permissions=create_table_default_permissions, + description=description, + location_uri=location_uri, + name=name, + parameters=parameters, + tags=tags, + target_database=target_database, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + create_table_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['CatalogDatabaseCreateTableDefaultPermissionArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + location_uri: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_database: Optional[pulumi.Input['CatalogDatabaseTargetDatabaseArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if create_table_default_permissions is None and 'createTableDefaultPermissions' in kwargs: + create_table_default_permissions = kwargs['createTableDefaultPermissions'] + if location_uri is None and 'locationUri' in kwargs: + location_uri = kwargs['locationUri'] + if target_database is None and 'targetDatabase' in kwargs: + target_database = kwargs['targetDatabase'] + if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if create_table_default_permissions is not None: - pulumi.set(__self__, "create_table_default_permissions", create_table_default_permissions) + _setter("create_table_default_permissions", create_table_default_permissions) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if location_uri is not None: - pulumi.set(__self__, "location_uri", location_uri) + _setter("location_uri", location_uri) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_database is not None: - pulumi.set(__self__, "target_database", target_database) + _setter("target_database", target_database) @property @pulumi.getter(name="catalogId") @@ -175,29 +208,68 @@ def __init__(__self__, *, :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['CatalogDatabaseTargetDatabaseArgs'] target_database: Configuration block for a target database for resource linking. See `target_database` below. """ + _CatalogDatabaseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_id=catalog_id, + create_table_default_permissions=create_table_default_permissions, + description=description, + location_uri=location_uri, + name=name, + parameters=parameters, + tags=tags, + tags_all=tags_all, + target_database=target_database, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + create_table_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['CatalogDatabaseCreateTableDefaultPermissionArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + location_uri: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_database: Optional[pulumi.Input['CatalogDatabaseTargetDatabaseArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if create_table_default_permissions is None and 'createTableDefaultPermissions' in kwargs: + create_table_default_permissions = kwargs['createTableDefaultPermissions'] + if location_uri is None and 'locationUri' in kwargs: + location_uri = kwargs['locationUri'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_database is None and 'targetDatabase' in kwargs: + target_database = kwargs['targetDatabase'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if create_table_default_permissions is not None: - pulumi.set(__self__, "create_table_default_permissions", create_table_default_permissions) + _setter("create_table_default_permissions", create_table_default_permissions) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if location_uri is not None: - pulumi.set(__self__, "location_uri", location_uri) + _setter("location_uri", location_uri) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_database is not None: - pulumi.set(__self__, "target_database", target_database) + _setter("target_database", target_database) @property @pulumi.getter @@ -434,6 +506,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CatalogDatabaseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -463,6 +539,7 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["parameters"] = parameters __props__.__dict__["tags"] = tags + target_database = _utilities.configure(target_database, CatalogDatabaseTargetDatabaseArgs, True) __props__.__dict__["target_database"] = target_database __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/glue/catalog_table.py b/sdk/python/pulumi_aws/glue/catalog_table.py index af6e66c67f6..40069fa4469 100644 --- a/sdk/python/pulumi_aws/glue/catalog_table.py +++ b/sdk/python/pulumi_aws/glue/catalog_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -51,35 +51,96 @@ def __init__(__self__, *, :param pulumi.Input[str] view_expanded_text: If the table is a view, the expanded text of the view; otherwise null. :param pulumi.Input[str] view_original_text: If the table is a view, the original text of the view; otherwise null. """ - pulumi.set(__self__, "database_name", database_name) + CatalogTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + catalog_id=catalog_id, + description=description, + name=name, + open_table_format_input=open_table_format_input, + owner=owner, + parameters=parameters, + partition_indices=partition_indices, + partition_keys=partition_keys, + retention=retention, + storage_descriptor=storage_descriptor, + table_type=table_type, + target_table=target_table, + view_expanded_text=view_expanded_text, + view_original_text=view_original_text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + open_table_format_input: Optional[pulumi.Input['CatalogTableOpenTableFormatInputArgs']] = None, + owner: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + partition_indices: Optional[pulumi.Input[Sequence[pulumi.Input['CatalogTablePartitionIndexArgs']]]] = None, + partition_keys: Optional[pulumi.Input[Sequence[pulumi.Input['CatalogTablePartitionKeyArgs']]]] = None, + retention: Optional[pulumi.Input[int]] = None, + storage_descriptor: Optional[pulumi.Input['CatalogTableStorageDescriptorArgs']] = None, + table_type: Optional[pulumi.Input[str]] = None, + target_table: Optional[pulumi.Input['CatalogTableTargetTableArgs']] = None, + view_expanded_text: Optional[pulumi.Input[str]] = None, + view_original_text: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if open_table_format_input is None and 'openTableFormatInput' in kwargs: + open_table_format_input = kwargs['openTableFormatInput'] + if partition_indices is None and 'partitionIndices' in kwargs: + partition_indices = kwargs['partitionIndices'] + if partition_keys is None and 'partitionKeys' in kwargs: + partition_keys = kwargs['partitionKeys'] + if storage_descriptor is None and 'storageDescriptor' in kwargs: + storage_descriptor = kwargs['storageDescriptor'] + if table_type is None and 'tableType' in kwargs: + table_type = kwargs['tableType'] + if target_table is None and 'targetTable' in kwargs: + target_table = kwargs['targetTable'] + if view_expanded_text is None and 'viewExpandedText' in kwargs: + view_expanded_text = kwargs['viewExpandedText'] + if view_original_text is None and 'viewOriginalText' in kwargs: + view_original_text = kwargs['viewOriginalText'] + + _setter("database_name", database_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if open_table_format_input is not None: - pulumi.set(__self__, "open_table_format_input", open_table_format_input) + _setter("open_table_format_input", open_table_format_input) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if partition_indices is not None: - pulumi.set(__self__, "partition_indices", partition_indices) + _setter("partition_indices", partition_indices) if partition_keys is not None: - pulumi.set(__self__, "partition_keys", partition_keys) + _setter("partition_keys", partition_keys) if retention is not None: - pulumi.set(__self__, "retention", retention) + _setter("retention", retention) if storage_descriptor is not None: - pulumi.set(__self__, "storage_descriptor", storage_descriptor) + _setter("storage_descriptor", storage_descriptor) if table_type is not None: - pulumi.set(__self__, "table_type", table_type) + _setter("table_type", table_type) if target_table is not None: - pulumi.set(__self__, "target_table", target_table) + _setter("target_table", target_table) if view_expanded_text is not None: - pulumi.set(__self__, "view_expanded_text", view_expanded_text) + _setter("view_expanded_text", view_expanded_text) if view_original_text is not None: - pulumi.set(__self__, "view_original_text", view_original_text) + _setter("view_original_text", view_original_text) @property @pulumi.getter(name="databaseName") @@ -304,38 +365,99 @@ def __init__(__self__, *, :param pulumi.Input[str] view_expanded_text: If the table is a view, the expanded text of the view; otherwise null. :param pulumi.Input[str] view_original_text: If the table is a view, the original text of the view; otherwise null. """ + _CatalogTableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_id=catalog_id, + database_name=database_name, + description=description, + name=name, + open_table_format_input=open_table_format_input, + owner=owner, + parameters=parameters, + partition_indices=partition_indices, + partition_keys=partition_keys, + retention=retention, + storage_descriptor=storage_descriptor, + table_type=table_type, + target_table=target_table, + view_expanded_text=view_expanded_text, + view_original_text=view_original_text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + open_table_format_input: Optional[pulumi.Input['CatalogTableOpenTableFormatInputArgs']] = None, + owner: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + partition_indices: Optional[pulumi.Input[Sequence[pulumi.Input['CatalogTablePartitionIndexArgs']]]] = None, + partition_keys: Optional[pulumi.Input[Sequence[pulumi.Input['CatalogTablePartitionKeyArgs']]]] = None, + retention: Optional[pulumi.Input[int]] = None, + storage_descriptor: Optional[pulumi.Input['CatalogTableStorageDescriptorArgs']] = None, + table_type: Optional[pulumi.Input[str]] = None, + target_table: Optional[pulumi.Input['CatalogTableTargetTableArgs']] = None, + view_expanded_text: Optional[pulumi.Input[str]] = None, + view_original_text: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if open_table_format_input is None and 'openTableFormatInput' in kwargs: + open_table_format_input = kwargs['openTableFormatInput'] + if partition_indices is None and 'partitionIndices' in kwargs: + partition_indices = kwargs['partitionIndices'] + if partition_keys is None and 'partitionKeys' in kwargs: + partition_keys = kwargs['partitionKeys'] + if storage_descriptor is None and 'storageDescriptor' in kwargs: + storage_descriptor = kwargs['storageDescriptor'] + if table_type is None and 'tableType' in kwargs: + table_type = kwargs['tableType'] + if target_table is None and 'targetTable' in kwargs: + target_table = kwargs['targetTable'] + if view_expanded_text is None and 'viewExpandedText' in kwargs: + view_expanded_text = kwargs['viewExpandedText'] + if view_original_text is None and 'viewOriginalText' in kwargs: + view_original_text = kwargs['viewOriginalText'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if open_table_format_input is not None: - pulumi.set(__self__, "open_table_format_input", open_table_format_input) + _setter("open_table_format_input", open_table_format_input) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if partition_indices is not None: - pulumi.set(__self__, "partition_indices", partition_indices) + _setter("partition_indices", partition_indices) if partition_keys is not None: - pulumi.set(__self__, "partition_keys", partition_keys) + _setter("partition_keys", partition_keys) if retention is not None: - pulumi.set(__self__, "retention", retention) + _setter("retention", retention) if storage_descriptor is not None: - pulumi.set(__self__, "storage_descriptor", storage_descriptor) + _setter("storage_descriptor", storage_descriptor) if table_type is not None: - pulumi.set(__self__, "table_type", table_type) + _setter("table_type", table_type) if target_table is not None: - pulumi.set(__self__, "target_table", target_table) + _setter("target_table", target_table) if view_expanded_text is not None: - pulumi.set(__self__, "view_expanded_text", view_expanded_text) + _setter("view_expanded_text", view_expanded_text) if view_original_text is not None: - pulumi.set(__self__, "view_original_text", view_original_text) + _setter("view_original_text", view_original_text) @property @pulumi.getter @@ -739,6 +861,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CatalogTableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -774,14 +900,17 @@ def _internal_init(__self__, __props__.__dict__["database_name"] = database_name __props__.__dict__["description"] = description __props__.__dict__["name"] = name + open_table_format_input = _utilities.configure(open_table_format_input, CatalogTableOpenTableFormatInputArgs, True) __props__.__dict__["open_table_format_input"] = open_table_format_input __props__.__dict__["owner"] = owner __props__.__dict__["parameters"] = parameters __props__.__dict__["partition_indices"] = partition_indices __props__.__dict__["partition_keys"] = partition_keys __props__.__dict__["retention"] = retention + storage_descriptor = _utilities.configure(storage_descriptor, CatalogTableStorageDescriptorArgs, True) __props__.__dict__["storage_descriptor"] = storage_descriptor __props__.__dict__["table_type"] = table_type + target_table = _utilities.configure(target_table, CatalogTableTargetTableArgs, True) __props__.__dict__["target_table"] = target_table __props__.__dict__["view_expanded_text"] = view_expanded_text __props__.__dict__["view_original_text"] = view_original_text diff --git a/sdk/python/pulumi_aws/glue/classifier.py b/sdk/python/pulumi_aws/glue/classifier.py index d3c4c9232c3..012b199fb60 100644 --- a/sdk/python/pulumi_aws/glue/classifier.py +++ b/sdk/python/pulumi_aws/glue/classifier.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,16 +29,43 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the classifier. :param pulumi.Input['ClassifierXmlClassifierArgs'] xml_classifier: A classifier for XML content. Defined below. """ + ClassifierArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv_classifier=csv_classifier, + grok_classifier=grok_classifier, + json_classifier=json_classifier, + name=name, + xml_classifier=xml_classifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv_classifier: Optional[pulumi.Input['ClassifierCsvClassifierArgs']] = None, + grok_classifier: Optional[pulumi.Input['ClassifierGrokClassifierArgs']] = None, + json_classifier: Optional[pulumi.Input['ClassifierJsonClassifierArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + xml_classifier: Optional[pulumi.Input['ClassifierXmlClassifierArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv_classifier is None and 'csvClassifier' in kwargs: + csv_classifier = kwargs['csvClassifier'] + if grok_classifier is None and 'grokClassifier' in kwargs: + grok_classifier = kwargs['grokClassifier'] + if json_classifier is None and 'jsonClassifier' in kwargs: + json_classifier = kwargs['jsonClassifier'] + if xml_classifier is None and 'xmlClassifier' in kwargs: + xml_classifier = kwargs['xmlClassifier'] + if csv_classifier is not None: - pulumi.set(__self__, "csv_classifier", csv_classifier) + _setter("csv_classifier", csv_classifier) if grok_classifier is not None: - pulumi.set(__self__, "grok_classifier", grok_classifier) + _setter("grok_classifier", grok_classifier) if json_classifier is not None: - pulumi.set(__self__, "json_classifier", json_classifier) + _setter("json_classifier", json_classifier) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if xml_classifier is not None: - pulumi.set(__self__, "xml_classifier", xml_classifier) + _setter("xml_classifier", xml_classifier) @property @pulumi.getter(name="csvClassifier") @@ -117,16 +144,43 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the classifier. :param pulumi.Input['ClassifierXmlClassifierArgs'] xml_classifier: A classifier for XML content. Defined below. """ + _ClassifierState._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv_classifier=csv_classifier, + grok_classifier=grok_classifier, + json_classifier=json_classifier, + name=name, + xml_classifier=xml_classifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv_classifier: Optional[pulumi.Input['ClassifierCsvClassifierArgs']] = None, + grok_classifier: Optional[pulumi.Input['ClassifierGrokClassifierArgs']] = None, + json_classifier: Optional[pulumi.Input['ClassifierJsonClassifierArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + xml_classifier: Optional[pulumi.Input['ClassifierXmlClassifierArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv_classifier is None and 'csvClassifier' in kwargs: + csv_classifier = kwargs['csvClassifier'] + if grok_classifier is None and 'grokClassifier' in kwargs: + grok_classifier = kwargs['grokClassifier'] + if json_classifier is None and 'jsonClassifier' in kwargs: + json_classifier = kwargs['jsonClassifier'] + if xml_classifier is None and 'xmlClassifier' in kwargs: + xml_classifier = kwargs['xmlClassifier'] + if csv_classifier is not None: - pulumi.set(__self__, "csv_classifier", csv_classifier) + _setter("csv_classifier", csv_classifier) if grok_classifier is not None: - pulumi.set(__self__, "grok_classifier", grok_classifier) + _setter("grok_classifier", grok_classifier) if json_classifier is not None: - pulumi.set(__self__, "json_classifier", json_classifier) + _setter("json_classifier", json_classifier) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if xml_classifier is not None: - pulumi.set(__self__, "xml_classifier", xml_classifier) + _setter("xml_classifier", xml_classifier) @property @pulumi.getter(name="csvClassifier") @@ -354,6 +408,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClassifierArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -373,10 +431,14 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ClassifierArgs.__new__(ClassifierArgs) + csv_classifier = _utilities.configure(csv_classifier, ClassifierCsvClassifierArgs, True) __props__.__dict__["csv_classifier"] = csv_classifier + grok_classifier = _utilities.configure(grok_classifier, ClassifierGrokClassifierArgs, True) __props__.__dict__["grok_classifier"] = grok_classifier + json_classifier = _utilities.configure(json_classifier, ClassifierJsonClassifierArgs, True) __props__.__dict__["json_classifier"] = json_classifier __props__.__dict__["name"] = name + xml_classifier = _utilities.configure(xml_classifier, ClassifierXmlClassifierArgs, True) __props__.__dict__["xml_classifier"] = xml_classifier super(Classifier, __self__).__init__( 'aws:glue/classifier:Classifier', diff --git a/sdk/python/pulumi_aws/glue/connection.py b/sdk/python/pulumi_aws/glue/connection.py index 2d894a5a106..1fc41ad54a2 100644 --- a/sdk/python/pulumi_aws/glue/connection.py +++ b/sdk/python/pulumi_aws/glue/connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,22 +35,57 @@ def __init__(__self__, *, :param pulumi.Input['ConnectionPhysicalConnectionRequirementsArgs'] physical_connection_requirements: A map of physical connection requirements, such as VPC and SecurityGroup. Defined below. :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. """ + ConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + connection_properties=connection_properties, + connection_type=connection_type, + description=description, + match_criterias=match_criterias, + name=name, + physical_connection_requirements=physical_connection_requirements, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + connection_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + connection_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + match_criterias: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + physical_connection_requirements: Optional[pulumi.Input['ConnectionPhysicalConnectionRequirementsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if connection_properties is None and 'connectionProperties' in kwargs: + connection_properties = kwargs['connectionProperties'] + if connection_type is None and 'connectionType' in kwargs: + connection_type = kwargs['connectionType'] + if match_criterias is None and 'matchCriterias' in kwargs: + match_criterias = kwargs['matchCriterias'] + if physical_connection_requirements is None and 'physicalConnectionRequirements' in kwargs: + physical_connection_requirements = kwargs['physicalConnectionRequirements'] + if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if connection_properties is not None: - pulumi.set(__self__, "connection_properties", connection_properties) + _setter("connection_properties", connection_properties) if connection_type is not None: - pulumi.set(__self__, "connection_type", connection_type) + _setter("connection_type", connection_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if match_criterias is not None: - pulumi.set(__self__, "match_criterias", match_criterias) + _setter("match_criterias", match_criterias) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if physical_connection_requirements is not None: - pulumi.set(__self__, "physical_connection_requirements", physical_connection_requirements) + _setter("physical_connection_requirements", physical_connection_requirements) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="catalogId") @@ -175,29 +210,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_id=catalog_id, + connection_properties=connection_properties, + connection_type=connection_type, + description=description, + match_criterias=match_criterias, + name=name, + physical_connection_requirements=physical_connection_requirements, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + connection_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + connection_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + match_criterias: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + physical_connection_requirements: Optional[pulumi.Input['ConnectionPhysicalConnectionRequirementsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if connection_properties is None and 'connectionProperties' in kwargs: + connection_properties = kwargs['connectionProperties'] + if connection_type is None and 'connectionType' in kwargs: + connection_type = kwargs['connectionType'] + if match_criterias is None and 'matchCriterias' in kwargs: + match_criterias = kwargs['matchCriterias'] + if physical_connection_requirements is None and 'physicalConnectionRequirements' in kwargs: + physical_connection_requirements = kwargs['physicalConnectionRequirements'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if connection_properties is not None: - pulumi.set(__self__, "connection_properties", connection_properties) + _setter("connection_properties", connection_properties) if connection_type is not None: - pulumi.set(__self__, "connection_type", connection_type) + _setter("connection_type", connection_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if match_criterias is not None: - pulumi.set(__self__, "match_criterias", match_criterias) + _setter("match_criterias", match_criterias) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if physical_connection_requirements is not None: - pulumi.set(__self__, "physical_connection_requirements", physical_connection_requirements) + _setter("physical_connection_requirements", physical_connection_requirements) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -454,6 +530,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -482,6 +562,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["match_criterias"] = match_criterias __props__.__dict__["name"] = name + physical_connection_requirements = _utilities.configure(physical_connection_requirements, ConnectionPhysicalConnectionRequirementsArgs, True) __props__.__dict__["physical_connection_requirements"] = physical_connection_requirements __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/glue/crawler.py b/sdk/python/pulumi_aws/glue/crawler.py index a6b6dfc5b2c..f9dff7c0417 100644 --- a/sdk/python/pulumi_aws/glue/crawler.py +++ b/sdk/python/pulumi_aws/glue/crawler.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -62,48 +62,135 @@ def __init__(__self__, *, :param pulumi.Input[str] table_prefix: The table prefix used for catalog tables that are created. :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. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "role", role) + CrawlerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + role=role, + catalog_targets=catalog_targets, + classifiers=classifiers, + configuration=configuration, + delta_targets=delta_targets, + description=description, + dynamodb_targets=dynamodb_targets, + hudi_targets=hudi_targets, + iceberg_targets=iceberg_targets, + jdbc_targets=jdbc_targets, + lake_formation_configuration=lake_formation_configuration, + lineage_configuration=lineage_configuration, + mongodb_targets=mongodb_targets, + name=name, + recrawl_policy=recrawl_policy, + s3_targets=s3_targets, + schedule=schedule, + schema_change_policy=schema_change_policy, + security_configuration=security_configuration, + table_prefix=table_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + catalog_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerCatalogTargetArgs']]]] = None, + classifiers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + configuration: Optional[pulumi.Input[str]] = None, + delta_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerDeltaTargetArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + dynamodb_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerDynamodbTargetArgs']]]] = None, + hudi_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerHudiTargetArgs']]]] = None, + iceberg_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerIcebergTargetArgs']]]] = None, + jdbc_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerJdbcTargetArgs']]]] = None, + lake_formation_configuration: Optional[pulumi.Input['CrawlerLakeFormationConfigurationArgs']] = None, + lineage_configuration: Optional[pulumi.Input['CrawlerLineageConfigurationArgs']] = None, + mongodb_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerMongodbTargetArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + recrawl_policy: Optional[pulumi.Input['CrawlerRecrawlPolicyArgs']] = None, + s3_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerS3TargetArgs']]]] = None, + schedule: Optional[pulumi.Input[str]] = None, + schema_change_policy: Optional[pulumi.Input['CrawlerSchemaChangePolicyArgs']] = None, + security_configuration: Optional[pulumi.Input[str]] = None, + table_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if role is None: + raise TypeError("Missing 'role' argument") + if catalog_targets is None and 'catalogTargets' in kwargs: + catalog_targets = kwargs['catalogTargets'] + if delta_targets is None and 'deltaTargets' in kwargs: + delta_targets = kwargs['deltaTargets'] + if dynamodb_targets is None and 'dynamodbTargets' in kwargs: + dynamodb_targets = kwargs['dynamodbTargets'] + if hudi_targets is None and 'hudiTargets' in kwargs: + hudi_targets = kwargs['hudiTargets'] + if iceberg_targets is None and 'icebergTargets' in kwargs: + iceberg_targets = kwargs['icebergTargets'] + if jdbc_targets is None and 'jdbcTargets' in kwargs: + jdbc_targets = kwargs['jdbcTargets'] + if lake_formation_configuration is None and 'lakeFormationConfiguration' in kwargs: + lake_formation_configuration = kwargs['lakeFormationConfiguration'] + if lineage_configuration is None and 'lineageConfiguration' in kwargs: + lineage_configuration = kwargs['lineageConfiguration'] + if mongodb_targets is None and 'mongodbTargets' in kwargs: + mongodb_targets = kwargs['mongodbTargets'] + if recrawl_policy is None and 'recrawlPolicy' in kwargs: + recrawl_policy = kwargs['recrawlPolicy'] + if s3_targets is None and 's3Targets' in kwargs: + s3_targets = kwargs['s3Targets'] + if schema_change_policy is None and 'schemaChangePolicy' in kwargs: + schema_change_policy = kwargs['schemaChangePolicy'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if table_prefix is None and 'tablePrefix' in kwargs: + table_prefix = kwargs['tablePrefix'] + + _setter("database_name", database_name) + _setter("role", role) if catalog_targets is not None: - pulumi.set(__self__, "catalog_targets", catalog_targets) + _setter("catalog_targets", catalog_targets) if classifiers is not None: - pulumi.set(__self__, "classifiers", classifiers) + _setter("classifiers", classifiers) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if delta_targets is not None: - pulumi.set(__self__, "delta_targets", delta_targets) + _setter("delta_targets", delta_targets) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dynamodb_targets is not None: - pulumi.set(__self__, "dynamodb_targets", dynamodb_targets) + _setter("dynamodb_targets", dynamodb_targets) if hudi_targets is not None: - pulumi.set(__self__, "hudi_targets", hudi_targets) + _setter("hudi_targets", hudi_targets) if iceberg_targets is not None: - pulumi.set(__self__, "iceberg_targets", iceberg_targets) + _setter("iceberg_targets", iceberg_targets) if jdbc_targets is not None: - pulumi.set(__self__, "jdbc_targets", jdbc_targets) + _setter("jdbc_targets", jdbc_targets) if lake_formation_configuration is not None: - pulumi.set(__self__, "lake_formation_configuration", lake_formation_configuration) + _setter("lake_formation_configuration", lake_formation_configuration) if lineage_configuration is not None: - pulumi.set(__self__, "lineage_configuration", lineage_configuration) + _setter("lineage_configuration", lineage_configuration) if mongodb_targets is not None: - pulumi.set(__self__, "mongodb_targets", mongodb_targets) + _setter("mongodb_targets", mongodb_targets) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recrawl_policy is not None: - pulumi.set(__self__, "recrawl_policy", recrawl_policy) + _setter("recrawl_policy", recrawl_policy) if s3_targets is not None: - pulumi.set(__self__, "s3_targets", s3_targets) + _setter("s3_targets", s3_targets) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if schema_change_policy is not None: - pulumi.set(__self__, "schema_change_policy", schema_change_policy) + _setter("schema_change_policy", schema_change_policy) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if table_prefix is not None: - pulumi.set(__self__, "table_prefix", table_prefix) + _setter("table_prefix", table_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="databaseName") @@ -420,57 +507,146 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _CrawlerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_targets=catalog_targets, + classifiers=classifiers, + configuration=configuration, + database_name=database_name, + delta_targets=delta_targets, + description=description, + dynamodb_targets=dynamodb_targets, + hudi_targets=hudi_targets, + iceberg_targets=iceberg_targets, + jdbc_targets=jdbc_targets, + lake_formation_configuration=lake_formation_configuration, + lineage_configuration=lineage_configuration, + mongodb_targets=mongodb_targets, + name=name, + recrawl_policy=recrawl_policy, + role=role, + s3_targets=s3_targets, + schedule=schedule, + schema_change_policy=schema_change_policy, + security_configuration=security_configuration, + table_prefix=table_prefix, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + catalog_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerCatalogTargetArgs']]]] = None, + classifiers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + configuration: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + delta_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerDeltaTargetArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + dynamodb_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerDynamodbTargetArgs']]]] = None, + hudi_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerHudiTargetArgs']]]] = None, + iceberg_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerIcebergTargetArgs']]]] = None, + jdbc_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerJdbcTargetArgs']]]] = None, + lake_formation_configuration: Optional[pulumi.Input['CrawlerLakeFormationConfigurationArgs']] = None, + lineage_configuration: Optional[pulumi.Input['CrawlerLineageConfigurationArgs']] = None, + mongodb_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerMongodbTargetArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + recrawl_policy: Optional[pulumi.Input['CrawlerRecrawlPolicyArgs']] = None, + role: Optional[pulumi.Input[str]] = None, + s3_targets: Optional[pulumi.Input[Sequence[pulumi.Input['CrawlerS3TargetArgs']]]] = None, + schedule: Optional[pulumi.Input[str]] = None, + schema_change_policy: Optional[pulumi.Input['CrawlerSchemaChangePolicyArgs']] = None, + security_configuration: Optional[pulumi.Input[str]] = None, + table_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_targets is None and 'catalogTargets' in kwargs: + catalog_targets = kwargs['catalogTargets'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if delta_targets is None and 'deltaTargets' in kwargs: + delta_targets = kwargs['deltaTargets'] + if dynamodb_targets is None and 'dynamodbTargets' in kwargs: + dynamodb_targets = kwargs['dynamodbTargets'] + if hudi_targets is None and 'hudiTargets' in kwargs: + hudi_targets = kwargs['hudiTargets'] + if iceberg_targets is None and 'icebergTargets' in kwargs: + iceberg_targets = kwargs['icebergTargets'] + if jdbc_targets is None and 'jdbcTargets' in kwargs: + jdbc_targets = kwargs['jdbcTargets'] + if lake_formation_configuration is None and 'lakeFormationConfiguration' in kwargs: + lake_formation_configuration = kwargs['lakeFormationConfiguration'] + if lineage_configuration is None and 'lineageConfiguration' in kwargs: + lineage_configuration = kwargs['lineageConfiguration'] + if mongodb_targets is None and 'mongodbTargets' in kwargs: + mongodb_targets = kwargs['mongodbTargets'] + if recrawl_policy is None and 'recrawlPolicy' in kwargs: + recrawl_policy = kwargs['recrawlPolicy'] + if s3_targets is None and 's3Targets' in kwargs: + s3_targets = kwargs['s3Targets'] + if schema_change_policy is None and 'schemaChangePolicy' in kwargs: + schema_change_policy = kwargs['schemaChangePolicy'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if table_prefix is None and 'tablePrefix' in kwargs: + table_prefix = kwargs['tablePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if catalog_targets is not None: - pulumi.set(__self__, "catalog_targets", catalog_targets) + _setter("catalog_targets", catalog_targets) if classifiers is not None: - pulumi.set(__self__, "classifiers", classifiers) + _setter("classifiers", classifiers) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if delta_targets is not None: - pulumi.set(__self__, "delta_targets", delta_targets) + _setter("delta_targets", delta_targets) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dynamodb_targets is not None: - pulumi.set(__self__, "dynamodb_targets", dynamodb_targets) + _setter("dynamodb_targets", dynamodb_targets) if hudi_targets is not None: - pulumi.set(__self__, "hudi_targets", hudi_targets) + _setter("hudi_targets", hudi_targets) if iceberg_targets is not None: - pulumi.set(__self__, "iceberg_targets", iceberg_targets) + _setter("iceberg_targets", iceberg_targets) if jdbc_targets is not None: - pulumi.set(__self__, "jdbc_targets", jdbc_targets) + _setter("jdbc_targets", jdbc_targets) if lake_formation_configuration is not None: - pulumi.set(__self__, "lake_formation_configuration", lake_formation_configuration) + _setter("lake_formation_configuration", lake_formation_configuration) if lineage_configuration is not None: - pulumi.set(__self__, "lineage_configuration", lineage_configuration) + _setter("lineage_configuration", lineage_configuration) if mongodb_targets is not None: - pulumi.set(__self__, "mongodb_targets", mongodb_targets) + _setter("mongodb_targets", mongodb_targets) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recrawl_policy is not None: - pulumi.set(__self__, "recrawl_policy", recrawl_policy) + _setter("recrawl_policy", recrawl_policy) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) if s3_targets is not None: - pulumi.set(__self__, "s3_targets", s3_targets) + _setter("s3_targets", s3_targets) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if schema_change_policy is not None: - pulumi.set(__self__, "schema_change_policy", schema_change_policy) + _setter("schema_change_policy", schema_change_policy) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if table_prefix is not None: - pulumi.set(__self__, "table_prefix", table_prefix) + _setter("table_prefix", table_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -1065,6 +1241,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CrawlerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1113,16 +1293,20 @@ def _internal_init(__self__, __props__.__dict__["hudi_targets"] = hudi_targets __props__.__dict__["iceberg_targets"] = iceberg_targets __props__.__dict__["jdbc_targets"] = jdbc_targets + lake_formation_configuration = _utilities.configure(lake_formation_configuration, CrawlerLakeFormationConfigurationArgs, True) __props__.__dict__["lake_formation_configuration"] = lake_formation_configuration + lineage_configuration = _utilities.configure(lineage_configuration, CrawlerLineageConfigurationArgs, True) __props__.__dict__["lineage_configuration"] = lineage_configuration __props__.__dict__["mongodb_targets"] = mongodb_targets __props__.__dict__["name"] = name + recrawl_policy = _utilities.configure(recrawl_policy, CrawlerRecrawlPolicyArgs, True) __props__.__dict__["recrawl_policy"] = recrawl_policy if role is None and not opts.urn: raise TypeError("Missing required property 'role'") __props__.__dict__["role"] = role __props__.__dict__["s3_targets"] = s3_targets __props__.__dict__["schedule"] = schedule + schema_change_policy = _utilities.configure(schema_change_policy, CrawlerSchemaChangePolicyArgs, True) __props__.__dict__["schema_change_policy"] = schema_change_policy __props__.__dict__["security_configuration"] = security_configuration __props__.__dict__["table_prefix"] = table_prefix diff --git a/sdk/python/pulumi_aws/glue/data_catalog_encryption_settings.py b/sdk/python/pulumi_aws/glue/data_catalog_encryption_settings.py index b67cbfddc5f..3904e51228d 100644 --- a/sdk/python/pulumi_aws/glue/data_catalog_encryption_settings.py +++ b/sdk/python/pulumi_aws/glue/data_catalog_encryption_settings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,28 @@ def __init__(__self__, *, :param pulumi.Input['DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsArgs'] data_catalog_encryption_settings: The security configuration to set. see Data Catalog Encryption Settings. :param pulumi.Input[str] catalog_id: The ID of the Data Catalog to set the security configuration for. If none is provided, the AWS account ID is used by default. """ - pulumi.set(__self__, "data_catalog_encryption_settings", data_catalog_encryption_settings) + DataCatalogEncryptionSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_catalog_encryption_settings=data_catalog_encryption_settings, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_catalog_encryption_settings: Optional[pulumi.Input['DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsArgs']] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_catalog_encryption_settings is None and 'dataCatalogEncryptionSettings' in kwargs: + data_catalog_encryption_settings = kwargs['dataCatalogEncryptionSettings'] + if data_catalog_encryption_settings is None: + raise TypeError("Missing 'data_catalog_encryption_settings' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("data_catalog_encryption_settings", data_catalog_encryption_settings) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter(name="dataCatalogEncryptionSettings") @@ -62,10 +81,27 @@ def __init__(__self__, *, :param pulumi.Input[str] catalog_id: The ID of the Data Catalog to set the security configuration for. If none is provided, the AWS account ID is used by default. :param pulumi.Input['DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsArgs'] data_catalog_encryption_settings: The security configuration to set. see Data Catalog Encryption Settings. """ + _DataCatalogEncryptionSettingsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + data_catalog_encryption_settings=data_catalog_encryption_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + data_catalog_encryption_settings: Optional[pulumi.Input['DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if data_catalog_encryption_settings is None and 'dataCatalogEncryptionSettings' in kwargs: + data_catalog_encryption_settings = kwargs['dataCatalogEncryptionSettings'] + if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if data_catalog_encryption_settings is not None: - pulumi.set(__self__, "data_catalog_encryption_settings", data_catalog_encryption_settings) + _setter("data_catalog_encryption_settings", data_catalog_encryption_settings) @property @pulumi.getter(name="catalogId") @@ -179,6 +215,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataCatalogEncryptionSettingsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -196,6 +236,7 @@ def _internal_init(__self__, __props__ = DataCatalogEncryptionSettingsArgs.__new__(DataCatalogEncryptionSettingsArgs) __props__.__dict__["catalog_id"] = catalog_id + data_catalog_encryption_settings = _utilities.configure(data_catalog_encryption_settings, DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsArgs, True) if data_catalog_encryption_settings is None and not opts.urn: raise TypeError("Missing required property 'data_catalog_encryption_settings'") __props__.__dict__["data_catalog_encryption_settings"] = data_catalog_encryption_settings diff --git a/sdk/python/pulumi_aws/glue/data_quality_ruleset.py b/sdk/python/pulumi_aws/glue/data_quality_ruleset.py index b80afaf634a..390820441cd 100644 --- a/sdk/python/pulumi_aws/glue/data_quality_ruleset.py +++ b/sdk/python/pulumi_aws/glue/data_quality_ruleset.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,38 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['DataQualityRulesetTargetTableArgs'] target_table: A Configuration block specifying a target table associated with the data quality ruleset. See `target_table` below. """ - pulumi.set(__self__, "ruleset", ruleset) + DataQualityRulesetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ruleset=ruleset, + description=description, + name=name, + tags=tags, + target_table=target_table, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ruleset: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_table: Optional[pulumi.Input['DataQualityRulesetTargetTableArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ruleset is None: + raise TypeError("Missing 'ruleset' argument") + if target_table is None and 'targetTable' in kwargs: + target_table = kwargs['targetTable'] + + _setter("ruleset", ruleset) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_table is not None: - pulumi.set(__self__, "target_table", target_table) + _setter("target_table", target_table) @property @pulumi.getter @@ -126,29 +149,68 @@ def __init__(__self__, *, :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['DataQualityRulesetTargetTableArgs'] target_table: A Configuration block specifying a target table associated with the data quality ruleset. See `target_table` below. """ + _DataQualityRulesetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_on=created_on, + description=description, + last_modified_on=last_modified_on, + name=name, + recommendation_run_id=recommendation_run_id, + ruleset=ruleset, + tags=tags, + tags_all=tags_all, + target_table=target_table, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_on: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + last_modified_on: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + recommendation_run_id: Optional[pulumi.Input[str]] = None, + ruleset: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_table: Optional[pulumi.Input['DataQualityRulesetTargetTableArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_on is None and 'createdOn' in kwargs: + created_on = kwargs['createdOn'] + if last_modified_on is None and 'lastModifiedOn' in kwargs: + last_modified_on = kwargs['lastModifiedOn'] + if recommendation_run_id is None and 'recommendationRunId' in kwargs: + recommendation_run_id = kwargs['recommendationRunId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_table is None and 'targetTable' in kwargs: + target_table = kwargs['targetTable'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_on is not None: - pulumi.set(__self__, "created_on", created_on) + _setter("created_on", created_on) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if last_modified_on is not None: - pulumi.set(__self__, "last_modified_on", last_modified_on) + _setter("last_modified_on", last_modified_on) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recommendation_run_id is not None: - pulumi.set(__self__, "recommendation_run_id", recommendation_run_id) + _setter("recommendation_run_id", recommendation_run_id) if ruleset is not None: - pulumi.set(__self__, "ruleset", ruleset) + _setter("ruleset", ruleset) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_table is not None: - pulumi.set(__self__, "target_table", target_table) + _setter("target_table", target_table) @property @pulumi.getter @@ -421,6 +483,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataQualityRulesetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -446,6 +512,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'ruleset'") __props__.__dict__["ruleset"] = ruleset __props__.__dict__["tags"] = tags + target_table = _utilities.configure(target_table, DataQualityRulesetTargetTableArgs, True) __props__.__dict__["target_table"] = target_table __props__.__dict__["arn"] = None __props__.__dict__["created_on"] = None diff --git a/sdk/python/pulumi_aws/glue/dev_endpoint.py b/sdk/python/pulumi_aws/glue/dev_endpoint.py index be0948feb29..0e6916d1a8d 100644 --- a/sdk/python/pulumi_aws/glue/dev_endpoint.py +++ b/sdk/python/pulumi_aws/glue/dev_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DevEndpointArgs', 'DevEndpoint'] @@ -47,35 +47,100 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] worker_type: The type of predefined worker that is allocated to this endpoint. Accepts a value of Standard, G.1X, or G.2X. """ - pulumi.set(__self__, "role_arn", role_arn) + DevEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + arguments=arguments, + extra_jars_s3_path=extra_jars_s3_path, + extra_python_libs_s3_path=extra_python_libs_s3_path, + glue_version=glue_version, + name=name, + number_of_nodes=number_of_nodes, + number_of_workers=number_of_workers, + public_key=public_key, + public_keys=public_keys, + security_configuration=security_configuration, + security_group_ids=security_group_ids, + subnet_id=subnet_id, + tags=tags, + worker_type=worker_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + arguments: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + extra_jars_s3_path: Optional[pulumi.Input[str]] = None, + extra_python_libs_s3_path: Optional[pulumi.Input[str]] = None, + glue_version: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + number_of_nodes: Optional[pulumi.Input[int]] = None, + number_of_workers: Optional[pulumi.Input[int]] = None, + public_key: Optional[pulumi.Input[str]] = None, + public_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_configuration: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + worker_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if extra_jars_s3_path is None and 'extraJarsS3Path' in kwargs: + extra_jars_s3_path = kwargs['extraJarsS3Path'] + if extra_python_libs_s3_path is None and 'extraPythonLibsS3Path' in kwargs: + extra_python_libs_s3_path = kwargs['extraPythonLibsS3Path'] + if glue_version is None and 'glueVersion' in kwargs: + glue_version = kwargs['glueVersion'] + if number_of_nodes is None and 'numberOfNodes' in kwargs: + number_of_nodes = kwargs['numberOfNodes'] + if number_of_workers is None and 'numberOfWorkers' in kwargs: + number_of_workers = kwargs['numberOfWorkers'] + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if public_keys is None and 'publicKeys' in kwargs: + public_keys = kwargs['publicKeys'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if worker_type is None and 'workerType' in kwargs: + worker_type = kwargs['workerType'] + + _setter("role_arn", role_arn) if arguments is not None: - pulumi.set(__self__, "arguments", arguments) + _setter("arguments", arguments) if extra_jars_s3_path is not None: - pulumi.set(__self__, "extra_jars_s3_path", extra_jars_s3_path) + _setter("extra_jars_s3_path", extra_jars_s3_path) if extra_python_libs_s3_path is not None: - pulumi.set(__self__, "extra_python_libs_s3_path", extra_python_libs_s3_path) + _setter("extra_python_libs_s3_path", extra_python_libs_s3_path) if glue_version is not None: - pulumi.set(__self__, "glue_version", glue_version) + _setter("glue_version", glue_version) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if number_of_nodes is not None: - pulumi.set(__self__, "number_of_nodes", number_of_nodes) + _setter("number_of_nodes", number_of_nodes) if number_of_workers is not None: - pulumi.set(__self__, "number_of_workers", number_of_workers) + _setter("number_of_workers", number_of_workers) if public_key is not None: - pulumi.set(__self__, "public_key", public_key) + _setter("public_key", public_key) if public_keys is not None: - pulumi.set(__self__, "public_keys", public_keys) + _setter("public_keys", public_keys) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if worker_type is not None: - pulumi.set(__self__, "worker_type", worker_type) + _setter("worker_type", worker_type) @property @pulumi.getter(name="roleArn") @@ -314,59 +379,158 @@ def __init__(__self__, *, :param pulumi.Input[str] yarn_endpoint_address: The YARN endpoint address used by this endpoint. :param pulumi.Input[int] zeppelin_remote_spark_interpreter_port: The Apache Zeppelin port for the remote Apache Spark interpreter. """ + _DevEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arguments=arguments, + arn=arn, + availability_zone=availability_zone, + extra_jars_s3_path=extra_jars_s3_path, + extra_python_libs_s3_path=extra_python_libs_s3_path, + failure_reason=failure_reason, + glue_version=glue_version, + name=name, + number_of_nodes=number_of_nodes, + number_of_workers=number_of_workers, + private_address=private_address, + public_address=public_address, + public_key=public_key, + public_keys=public_keys, + role_arn=role_arn, + security_configuration=security_configuration, + security_group_ids=security_group_ids, + status=status, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + worker_type=worker_type, + yarn_endpoint_address=yarn_endpoint_address, + zeppelin_remote_spark_interpreter_port=zeppelin_remote_spark_interpreter_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arguments: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + extra_jars_s3_path: Optional[pulumi.Input[str]] = None, + extra_python_libs_s3_path: Optional[pulumi.Input[str]] = None, + failure_reason: Optional[pulumi.Input[str]] = None, + glue_version: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + number_of_nodes: Optional[pulumi.Input[int]] = None, + number_of_workers: Optional[pulumi.Input[int]] = None, + private_address: Optional[pulumi.Input[str]] = None, + public_address: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + public_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + security_configuration: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + status: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + worker_type: Optional[pulumi.Input[str]] = None, + yarn_endpoint_address: Optional[pulumi.Input[str]] = None, + zeppelin_remote_spark_interpreter_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if extra_jars_s3_path is None and 'extraJarsS3Path' in kwargs: + extra_jars_s3_path = kwargs['extraJarsS3Path'] + if extra_python_libs_s3_path is None and 'extraPythonLibsS3Path' in kwargs: + extra_python_libs_s3_path = kwargs['extraPythonLibsS3Path'] + if failure_reason is None and 'failureReason' in kwargs: + failure_reason = kwargs['failureReason'] + if glue_version is None and 'glueVersion' in kwargs: + glue_version = kwargs['glueVersion'] + if number_of_nodes is None and 'numberOfNodes' in kwargs: + number_of_nodes = kwargs['numberOfNodes'] + if number_of_workers is None and 'numberOfWorkers' in kwargs: + number_of_workers = kwargs['numberOfWorkers'] + if private_address is None and 'privateAddress' in kwargs: + private_address = kwargs['privateAddress'] + if public_address is None and 'publicAddress' in kwargs: + public_address = kwargs['publicAddress'] + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if public_keys is None and 'publicKeys' in kwargs: + public_keys = kwargs['publicKeys'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if worker_type is None and 'workerType' in kwargs: + worker_type = kwargs['workerType'] + if yarn_endpoint_address is None and 'yarnEndpointAddress' in kwargs: + yarn_endpoint_address = kwargs['yarnEndpointAddress'] + if zeppelin_remote_spark_interpreter_port is None and 'zeppelinRemoteSparkInterpreterPort' in kwargs: + zeppelin_remote_spark_interpreter_port = kwargs['zeppelinRemoteSparkInterpreterPort'] + if arguments is not None: - pulumi.set(__self__, "arguments", arguments) + _setter("arguments", arguments) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if extra_jars_s3_path is not None: - pulumi.set(__self__, "extra_jars_s3_path", extra_jars_s3_path) + _setter("extra_jars_s3_path", extra_jars_s3_path) if extra_python_libs_s3_path is not None: - pulumi.set(__self__, "extra_python_libs_s3_path", extra_python_libs_s3_path) + _setter("extra_python_libs_s3_path", extra_python_libs_s3_path) if failure_reason is not None: - pulumi.set(__self__, "failure_reason", failure_reason) + _setter("failure_reason", failure_reason) if glue_version is not None: - pulumi.set(__self__, "glue_version", glue_version) + _setter("glue_version", glue_version) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if number_of_nodes is not None: - pulumi.set(__self__, "number_of_nodes", number_of_nodes) + _setter("number_of_nodes", number_of_nodes) if number_of_workers is not None: - pulumi.set(__self__, "number_of_workers", number_of_workers) + _setter("number_of_workers", number_of_workers) if private_address is not None: - pulumi.set(__self__, "private_address", private_address) + _setter("private_address", private_address) if public_address is not None: - pulumi.set(__self__, "public_address", public_address) + _setter("public_address", public_address) if public_key is not None: - pulumi.set(__self__, "public_key", public_key) + _setter("public_key", public_key) if public_keys is not None: - pulumi.set(__self__, "public_keys", public_keys) + _setter("public_keys", public_keys) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if worker_type is not None: - pulumi.set(__self__, "worker_type", worker_type) + _setter("worker_type", worker_type) if yarn_endpoint_address is not None: - pulumi.set(__self__, "yarn_endpoint_address", yarn_endpoint_address) + _setter("yarn_endpoint_address", yarn_endpoint_address) if zeppelin_remote_spark_interpreter_port is not None: - pulumi.set(__self__, "zeppelin_remote_spark_interpreter_port", zeppelin_remote_spark_interpreter_port) + _setter("zeppelin_remote_spark_interpreter_port", zeppelin_remote_spark_interpreter_port) @property @pulumi.getter @@ -793,6 +957,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DevEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/glue/get_catalog_table.py b/sdk/python/pulumi_aws/glue/get_catalog_table.py index e82110b34b8..bbf4c77ee08 100644 --- a/sdk/python/pulumi_aws/glue/get_catalog_table.py +++ b/sdk/python/pulumi_aws/glue/get_catalog_table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/glue/get_connection.py b/sdk/python/pulumi_aws/glue/get_connection.py index 639cc31b5f0..cbddc87eba0 100644 --- a/sdk/python/pulumi_aws/glue/get_connection.py +++ b/sdk/python/pulumi_aws/glue/get_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/glue/get_data_catalog_encryption_settings.py b/sdk/python/pulumi_aws/glue/get_data_catalog_encryption_settings.py index ac52a3a6914..b105593c9d4 100644 --- a/sdk/python/pulumi_aws/glue/get_data_catalog_encryption_settings.py +++ b/sdk/python/pulumi_aws/glue/get_data_catalog_encryption_settings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/glue/get_script.py b/sdk/python/pulumi_aws/glue/get_script.py index aa0c0f14c93..907042e0836 100644 --- a/sdk/python/pulumi_aws/glue/get_script.py +++ b/sdk/python/pulumi_aws/glue/get_script.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/glue/job.py b/sdk/python/pulumi_aws/glue/job.py index e07b31ba371..f6ed3ea0ba2 100644 --- a/sdk/python/pulumi_aws/glue/job.py +++ b/sdk/python/pulumi_aws/glue/job.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -60,40 +60,113 @@ def __init__(__self__, *, * For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for low volume streaming jobs. Only available for Glue version 3.0. * For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPU, 64 GB of m emory, 128 GB disk), and provides up to 8 Ray workers based on the autoscaler. """ - pulumi.set(__self__, "command", command) - pulumi.set(__self__, "role_arn", role_arn) + JobArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + command=command, + role_arn=role_arn, + connections=connections, + default_arguments=default_arguments, + description=description, + execution_class=execution_class, + execution_property=execution_property, + glue_version=glue_version, + max_capacity=max_capacity, + max_retries=max_retries, + name=name, + non_overridable_arguments=non_overridable_arguments, + notification_property=notification_property, + number_of_workers=number_of_workers, + security_configuration=security_configuration, + tags=tags, + timeout=timeout, + worker_type=worker_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + command: Optional[pulumi.Input['JobCommandArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + connections: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_arguments: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_class: Optional[pulumi.Input[str]] = None, + execution_property: Optional[pulumi.Input['JobExecutionPropertyArgs']] = None, + glue_version: Optional[pulumi.Input[str]] = None, + max_capacity: Optional[pulumi.Input[float]] = None, + max_retries: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + non_overridable_arguments: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + notification_property: Optional[pulumi.Input['JobNotificationPropertyArgs']] = None, + number_of_workers: Optional[pulumi.Input[int]] = None, + security_configuration: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout: Optional[pulumi.Input[int]] = None, + worker_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if command is None: + raise TypeError("Missing 'command' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if default_arguments is None and 'defaultArguments' in kwargs: + default_arguments = kwargs['defaultArguments'] + if execution_class is None and 'executionClass' in kwargs: + execution_class = kwargs['executionClass'] + if execution_property is None and 'executionProperty' in kwargs: + execution_property = kwargs['executionProperty'] + if glue_version is None and 'glueVersion' in kwargs: + glue_version = kwargs['glueVersion'] + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if non_overridable_arguments is None and 'nonOverridableArguments' in kwargs: + non_overridable_arguments = kwargs['nonOverridableArguments'] + if notification_property is None and 'notificationProperty' in kwargs: + notification_property = kwargs['notificationProperty'] + if number_of_workers is None and 'numberOfWorkers' in kwargs: + number_of_workers = kwargs['numberOfWorkers'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if worker_type is None and 'workerType' in kwargs: + worker_type = kwargs['workerType'] + + _setter("command", command) + _setter("role_arn", role_arn) if connections is not None: - pulumi.set(__self__, "connections", connections) + _setter("connections", connections) if default_arguments is not None: - pulumi.set(__self__, "default_arguments", default_arguments) + _setter("default_arguments", default_arguments) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if execution_class is not None: - pulumi.set(__self__, "execution_class", execution_class) + _setter("execution_class", execution_class) if execution_property is not None: - pulumi.set(__self__, "execution_property", execution_property) + _setter("execution_property", execution_property) if glue_version is not None: - pulumi.set(__self__, "glue_version", glue_version) + _setter("glue_version", glue_version) if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if max_retries is not None: - pulumi.set(__self__, "max_retries", max_retries) + _setter("max_retries", max_retries) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if non_overridable_arguments is not None: - pulumi.set(__self__, "non_overridable_arguments", non_overridable_arguments) + _setter("non_overridable_arguments", non_overridable_arguments) if notification_property is not None: - pulumi.set(__self__, "notification_property", notification_property) + _setter("notification_property", notification_property) if number_of_workers is not None: - pulumi.set(__self__, "number_of_workers", number_of_workers) + _setter("number_of_workers", number_of_workers) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if worker_type is not None: - pulumi.set(__self__, "worker_type", worker_type) + _setter("worker_type", worker_type) @property @pulumi.getter @@ -368,49 +441,124 @@ def __init__(__self__, *, * For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for low volume streaming jobs. Only available for Glue version 3.0. * For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPU, 64 GB of m emory, 128 GB disk), and provides up to 8 Ray workers based on the autoscaler. """ + _JobState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + command=command, + connections=connections, + default_arguments=default_arguments, + description=description, + execution_class=execution_class, + execution_property=execution_property, + glue_version=glue_version, + max_capacity=max_capacity, + max_retries=max_retries, + name=name, + non_overridable_arguments=non_overridable_arguments, + notification_property=notification_property, + number_of_workers=number_of_workers, + role_arn=role_arn, + security_configuration=security_configuration, + tags=tags, + tags_all=tags_all, + timeout=timeout, + worker_type=worker_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + command: Optional[pulumi.Input['JobCommandArgs']] = None, + connections: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_arguments: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_class: Optional[pulumi.Input[str]] = None, + execution_property: Optional[pulumi.Input['JobExecutionPropertyArgs']] = None, + glue_version: Optional[pulumi.Input[str]] = None, + max_capacity: Optional[pulumi.Input[float]] = None, + max_retries: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + non_overridable_arguments: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + notification_property: Optional[pulumi.Input['JobNotificationPropertyArgs']] = None, + number_of_workers: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + security_configuration: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout: Optional[pulumi.Input[int]] = None, + worker_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_arguments is None and 'defaultArguments' in kwargs: + default_arguments = kwargs['defaultArguments'] + if execution_class is None and 'executionClass' in kwargs: + execution_class = kwargs['executionClass'] + if execution_property is None and 'executionProperty' in kwargs: + execution_property = kwargs['executionProperty'] + if glue_version is None and 'glueVersion' in kwargs: + glue_version = kwargs['glueVersion'] + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if non_overridable_arguments is None and 'nonOverridableArguments' in kwargs: + non_overridable_arguments = kwargs['nonOverridableArguments'] + if notification_property is None and 'notificationProperty' in kwargs: + notification_property = kwargs['notificationProperty'] + if number_of_workers is None and 'numberOfWorkers' in kwargs: + number_of_workers = kwargs['numberOfWorkers'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if worker_type is None and 'workerType' in kwargs: + worker_type = kwargs['workerType'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if command is not None: - pulumi.set(__self__, "command", command) + _setter("command", command) if connections is not None: - pulumi.set(__self__, "connections", connections) + _setter("connections", connections) if default_arguments is not None: - pulumi.set(__self__, "default_arguments", default_arguments) + _setter("default_arguments", default_arguments) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if execution_class is not None: - pulumi.set(__self__, "execution_class", execution_class) + _setter("execution_class", execution_class) if execution_property is not None: - pulumi.set(__self__, "execution_property", execution_property) + _setter("execution_property", execution_property) if glue_version is not None: - pulumi.set(__self__, "glue_version", glue_version) + _setter("glue_version", glue_version) if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if max_retries is not None: - pulumi.set(__self__, "max_retries", max_retries) + _setter("max_retries", max_retries) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if non_overridable_arguments is not None: - pulumi.set(__self__, "non_overridable_arguments", non_overridable_arguments) + _setter("non_overridable_arguments", non_overridable_arguments) if notification_property is not None: - pulumi.set(__self__, "notification_property", notification_property) + _setter("notification_property", notification_property) if number_of_workers is not None: - pulumi.set(__self__, "number_of_workers", number_of_workers) + _setter("number_of_workers", number_of_workers) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if worker_type is not None: - pulumi.set(__self__, "worker_type", worker_type) + _setter("worker_type", worker_type) @property @pulumi.getter @@ -901,6 +1049,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + JobArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -933,6 +1085,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = JobArgs.__new__(JobArgs) + command = _utilities.configure(command, JobCommandArgs, True) if command is None and not opts.urn: raise TypeError("Missing required property 'command'") __props__.__dict__["command"] = command @@ -940,12 +1093,14 @@ def _internal_init(__self__, __props__.__dict__["default_arguments"] = default_arguments __props__.__dict__["description"] = description __props__.__dict__["execution_class"] = execution_class + execution_property = _utilities.configure(execution_property, JobExecutionPropertyArgs, True) __props__.__dict__["execution_property"] = execution_property __props__.__dict__["glue_version"] = glue_version __props__.__dict__["max_capacity"] = max_capacity __props__.__dict__["max_retries"] = max_retries __props__.__dict__["name"] = name __props__.__dict__["non_overridable_arguments"] = non_overridable_arguments + notification_property = _utilities.configure(notification_property, JobNotificationPropertyArgs, True) __props__.__dict__["notification_property"] = notification_property __props__.__dict__["number_of_workers"] = number_of_workers if role_arn is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/glue/ml_transform.py b/sdk/python/pulumi_aws/glue/ml_transform.py index 4e6d60e5af1..88acdeb8bae 100644 --- a/sdk/python/pulumi_aws/glue/ml_transform.py +++ b/sdk/python/pulumi_aws/glue/ml_transform.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -43,27 +43,80 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout: The ML Transform timeout in minutes. The default is 2880 minutes (48 hours). :param pulumi.Input[str] worker_type: The type of predefined worker that is allocated when an ML Transform runs. Accepts a value of `Standard`, `G.1X`, or `G.2X`. Required with `number_of_workers`. """ - pulumi.set(__self__, "input_record_tables", input_record_tables) - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "role_arn", role_arn) + MLTransformArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_record_tables=input_record_tables, + parameters=parameters, + role_arn=role_arn, + description=description, + glue_version=glue_version, + max_capacity=max_capacity, + max_retries=max_retries, + name=name, + number_of_workers=number_of_workers, + tags=tags, + timeout=timeout, + worker_type=worker_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_record_tables: Optional[pulumi.Input[Sequence[pulumi.Input['MLTransformInputRecordTableArgs']]]] = None, + parameters: Optional[pulumi.Input['MLTransformParametersArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + glue_version: Optional[pulumi.Input[str]] = None, + max_capacity: Optional[pulumi.Input[float]] = None, + max_retries: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + number_of_workers: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout: Optional[pulumi.Input[int]] = None, + worker_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_record_tables is None and 'inputRecordTables' in kwargs: + input_record_tables = kwargs['inputRecordTables'] + if input_record_tables is None: + raise TypeError("Missing 'input_record_tables' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if glue_version is None and 'glueVersion' in kwargs: + glue_version = kwargs['glueVersion'] + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if number_of_workers is None and 'numberOfWorkers' in kwargs: + number_of_workers = kwargs['numberOfWorkers'] + if worker_type is None and 'workerType' in kwargs: + worker_type = kwargs['workerType'] + + _setter("input_record_tables", input_record_tables) + _setter("parameters", parameters) + _setter("role_arn", role_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if glue_version is not None: - pulumi.set(__self__, "glue_version", glue_version) + _setter("glue_version", glue_version) if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if max_retries is not None: - pulumi.set(__self__, "max_retries", max_retries) + _setter("max_retries", max_retries) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if number_of_workers is not None: - pulumi.set(__self__, "number_of_workers", number_of_workers) + _setter("number_of_workers", number_of_workers) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if worker_type is not None: - pulumi.set(__self__, "worker_type", worker_type) + _setter("worker_type", worker_type) @property @pulumi.getter(name="inputRecordTables") @@ -248,41 +301,100 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout: The ML Transform timeout in minutes. The default is 2880 minutes (48 hours). :param pulumi.Input[str] worker_type: The type of predefined worker that is allocated when an ML Transform runs. Accepts a value of `Standard`, `G.1X`, or `G.2X`. Required with `number_of_workers`. """ + _MLTransformState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + glue_version=glue_version, + input_record_tables=input_record_tables, + label_count=label_count, + max_capacity=max_capacity, + max_retries=max_retries, + name=name, + number_of_workers=number_of_workers, + parameters=parameters, + role_arn=role_arn, + schemas=schemas, + tags=tags, + tags_all=tags_all, + timeout=timeout, + worker_type=worker_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + glue_version: Optional[pulumi.Input[str]] = None, + input_record_tables: Optional[pulumi.Input[Sequence[pulumi.Input['MLTransformInputRecordTableArgs']]]] = None, + label_count: Optional[pulumi.Input[int]] = None, + max_capacity: Optional[pulumi.Input[float]] = None, + max_retries: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + number_of_workers: Optional[pulumi.Input[int]] = None, + parameters: Optional[pulumi.Input['MLTransformParametersArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + schemas: Optional[pulumi.Input[Sequence[pulumi.Input['MLTransformSchemaArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout: Optional[pulumi.Input[int]] = None, + worker_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if glue_version is None and 'glueVersion' in kwargs: + glue_version = kwargs['glueVersion'] + if input_record_tables is None and 'inputRecordTables' in kwargs: + input_record_tables = kwargs['inputRecordTables'] + if label_count is None and 'labelCount' in kwargs: + label_count = kwargs['labelCount'] + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if number_of_workers is None and 'numberOfWorkers' in kwargs: + number_of_workers = kwargs['numberOfWorkers'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if worker_type is None and 'workerType' in kwargs: + worker_type = kwargs['workerType'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if glue_version is not None: - pulumi.set(__self__, "glue_version", glue_version) + _setter("glue_version", glue_version) if input_record_tables is not None: - pulumi.set(__self__, "input_record_tables", input_record_tables) + _setter("input_record_tables", input_record_tables) if label_count is not None: - pulumi.set(__self__, "label_count", label_count) + _setter("label_count", label_count) if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if max_retries is not None: - pulumi.set(__self__, "max_retries", max_retries) + _setter("max_retries", max_retries) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if number_of_workers is not None: - pulumi.set(__self__, "number_of_workers", number_of_workers) + _setter("number_of_workers", number_of_workers) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if schemas is not None: - pulumi.set(__self__, "schemas", schemas) + _setter("schemas", schemas) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if worker_type is not None: - pulumi.set(__self__, "worker_type", worker_type) + _setter("worker_type", worker_type) @property @pulumi.getter @@ -725,6 +837,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MLTransformArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -760,6 +876,7 @@ def _internal_init(__self__, __props__.__dict__["max_retries"] = max_retries __props__.__dict__["name"] = name __props__.__dict__["number_of_workers"] = number_of_workers + parameters = _utilities.configure(parameters, MLTransformParametersArgs, True) if parameters is None and not opts.urn: raise TypeError("Missing required property 'parameters'") __props__.__dict__["parameters"] = parameters diff --git a/sdk/python/pulumi_aws/glue/outputs.py b/sdk/python/pulumi_aws/glue/outputs.py index e25b356ddb2..c0b4aeb6852 100644 --- a/sdk/python/pulumi_aws/glue/outputs.py +++ b/sdk/python/pulumi_aws/glue/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -98,10 +98,23 @@ def __init__(__self__, *, :param Sequence[str] permissions: The permissions that are granted to the principal. :param 'CatalogDatabaseCreateTableDefaultPermissionPrincipalArgs' principal: The principal who is granted permissions.. See `principal` below. """ + CatalogDatabaseCreateTableDefaultPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[Sequence[str]] = None, + principal: Optional['outputs.CatalogDatabaseCreateTableDefaultPermissionPrincipal'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) @property @pulumi.getter @@ -144,8 +157,21 @@ def __init__(__self__, *, """ :param str data_lake_principal_identifier: An identifier for the Lake Formation principal. """ + CatalogDatabaseCreateTableDefaultPermissionPrincipal._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_lake_principal_identifier=data_lake_principal_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_lake_principal_identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_lake_principal_identifier is None and 'dataLakePrincipalIdentifier' in kwargs: + data_lake_principal_identifier = kwargs['dataLakePrincipalIdentifier'] + if data_lake_principal_identifier is not None: - pulumi.set(__self__, "data_lake_principal_identifier", data_lake_principal_identifier) + _setter("data_lake_principal_identifier", data_lake_principal_identifier) @property @pulumi.getter(name="dataLakePrincipalIdentifier") @@ -186,10 +212,33 @@ def __init__(__self__, *, :param str database_name: Name of the catalog database. :param str region: Region of the target database. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "database_name", database_name) + CatalogDatabaseTargetDatabase._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + database_name: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + + _setter("catalog_id", catalog_id) + _setter("database_name", database_name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter(name="catalogId") @@ -240,7 +289,22 @@ def __init__(__self__, *, """ :param 'CatalogTableOpenTableFormatInputIcebergInputArgs' iceberg_input: Configuration block for iceberg table config. See `iceberg_input` below. """ - pulumi.set(__self__, "iceberg_input", iceberg_input) + CatalogTableOpenTableFormatInput._configure( + lambda key, value: pulumi.set(__self__, key, value), + iceberg_input=iceberg_input, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iceberg_input: Optional['outputs.CatalogTableOpenTableFormatInputIcebergInput'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iceberg_input is None and 'icebergInput' in kwargs: + iceberg_input = kwargs['icebergInput'] + if iceberg_input is None: + raise TypeError("Missing 'iceberg_input' argument") + + _setter("iceberg_input", iceberg_input) @property @pulumi.getter(name="icebergInput") @@ -277,9 +341,26 @@ def __init__(__self__, *, :param str metadata_operation: A required metadata operation. Can only be set to CREATE. :param str version: The table version for the Iceberg table. Defaults to 2. """ - pulumi.set(__self__, "metadata_operation", metadata_operation) + CatalogTableOpenTableFormatInputIcebergInput._configure( + lambda key, value: pulumi.set(__self__, key, value), + metadata_operation=metadata_operation, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metadata_operation: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metadata_operation is None and 'metadataOperation' in kwargs: + metadata_operation = kwargs['metadataOperation'] + if metadata_operation is None: + raise TypeError("Missing 'metadata_operation' argument") + + _setter("metadata_operation", metadata_operation) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="metadataOperation") @@ -327,10 +408,33 @@ def __init__(__self__, *, :param str index_name: Name of the partition index. :param Sequence[str] keys: Keys for the partition index. """ - pulumi.set(__self__, "index_name", index_name) - pulumi.set(__self__, "keys", keys) + CatalogTablePartitionIndex._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + keys=keys, + index_status=index_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[str] = None, + keys: Optional[Sequence[str]] = None, + index_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if keys is None: + raise TypeError("Missing 'keys' argument") + if index_status is None and 'indexStatus' in kwargs: + index_status = kwargs['indexStatus'] + + _setter("index_name", index_name) + _setter("keys", keys) if index_status is not None: - pulumi.set(__self__, "index_status", index_status) + _setter("index_status", index_status) @property @pulumi.getter(name="indexName") @@ -365,11 +469,28 @@ def __init__(__self__, *, :param str comment: Free-form text comment. :param str type: Datatype of data in the Partition Key. """ - pulumi.set(__self__, "name", name) + CatalogTablePartitionKey._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + comment=comment, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + comment: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -460,32 +581,85 @@ def __init__(__self__, *, :param Sequence['CatalogTableStorageDescriptorSortColumnArgs'] sort_columns: Configuration block for the sort order of each bucket in the table. See `sort_columns` below. :param bool stored_as_sub_directories: Whether the table data is stored in subdirectories. """ + CatalogTableStorageDescriptor._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_columns=bucket_columns, + columns=columns, + compressed=compressed, + input_format=input_format, + location=location, + number_of_buckets=number_of_buckets, + output_format=output_format, + parameters=parameters, + schema_reference=schema_reference, + ser_de_info=ser_de_info, + skewed_info=skewed_info, + sort_columns=sort_columns, + stored_as_sub_directories=stored_as_sub_directories, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_columns: Optional[Sequence[str]] = None, + columns: Optional[Sequence['outputs.CatalogTableStorageDescriptorColumn']] = None, + compressed: Optional[bool] = None, + input_format: Optional[str] = None, + location: Optional[str] = None, + number_of_buckets: Optional[int] = None, + output_format: Optional[str] = None, + parameters: Optional[Mapping[str, str]] = None, + schema_reference: Optional['outputs.CatalogTableStorageDescriptorSchemaReference'] = None, + ser_de_info: Optional['outputs.CatalogTableStorageDescriptorSerDeInfo'] = None, + skewed_info: Optional['outputs.CatalogTableStorageDescriptorSkewedInfo'] = None, + sort_columns: Optional[Sequence['outputs.CatalogTableStorageDescriptorSortColumn']] = None, + stored_as_sub_directories: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_columns is None and 'bucketColumns' in kwargs: + bucket_columns = kwargs['bucketColumns'] + if input_format is None and 'inputFormat' in kwargs: + input_format = kwargs['inputFormat'] + if number_of_buckets is None and 'numberOfBuckets' in kwargs: + number_of_buckets = kwargs['numberOfBuckets'] + if output_format is None and 'outputFormat' in kwargs: + output_format = kwargs['outputFormat'] + if schema_reference is None and 'schemaReference' in kwargs: + schema_reference = kwargs['schemaReference'] + if ser_de_info is None and 'serDeInfo' in kwargs: + ser_de_info = kwargs['serDeInfo'] + if skewed_info is None and 'skewedInfo' in kwargs: + skewed_info = kwargs['skewedInfo'] + if sort_columns is None and 'sortColumns' in kwargs: + sort_columns = kwargs['sortColumns'] + if stored_as_sub_directories is None and 'storedAsSubDirectories' in kwargs: + stored_as_sub_directories = kwargs['storedAsSubDirectories'] + if bucket_columns is not None: - pulumi.set(__self__, "bucket_columns", bucket_columns) + _setter("bucket_columns", bucket_columns) if columns is not None: - pulumi.set(__self__, "columns", columns) + _setter("columns", columns) if compressed is not None: - pulumi.set(__self__, "compressed", compressed) + _setter("compressed", compressed) if input_format is not None: - pulumi.set(__self__, "input_format", input_format) + _setter("input_format", input_format) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if number_of_buckets is not None: - pulumi.set(__self__, "number_of_buckets", number_of_buckets) + _setter("number_of_buckets", number_of_buckets) if output_format is not None: - pulumi.set(__self__, "output_format", output_format) + _setter("output_format", output_format) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if schema_reference is not None: - pulumi.set(__self__, "schema_reference", schema_reference) + _setter("schema_reference", schema_reference) if ser_de_info is not None: - pulumi.set(__self__, "ser_de_info", ser_de_info) + _setter("ser_de_info", ser_de_info) if skewed_info is not None: - pulumi.set(__self__, "skewed_info", skewed_info) + _setter("skewed_info", skewed_info) if sort_columns is not None: - pulumi.set(__self__, "sort_columns", sort_columns) + _setter("sort_columns", sort_columns) if stored_as_sub_directories is not None: - pulumi.set(__self__, "stored_as_sub_directories", stored_as_sub_directories) + _setter("stored_as_sub_directories", stored_as_sub_directories) @property @pulumi.getter(name="bucketColumns") @@ -605,13 +779,32 @@ def __init__(__self__, *, :param Mapping[str, str] parameters: Key-value pairs defining properties associated with the column. :param str type: Datatype of data in the Column. """ - pulumi.set(__self__, "name", name) + CatalogTableStorageDescriptorColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + comment=comment, + parameters=parameters, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + comment: Optional[str] = None, + parameters: Optional[Mapping[str, str]] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -678,11 +871,34 @@ def __init__(__self__, *, :param 'CatalogTableStorageDescriptorSchemaReferenceSchemaIdArgs' schema_id: Configuration block that contains schema identity fields. Either this or the `schema_version_id` has to be provided. See `schema_id` below. :param str schema_version_id: Unique ID assigned to a version of the schema. Either this or the `schema_id` has to be provided. """ - pulumi.set(__self__, "schema_version_number", schema_version_number) + CatalogTableStorageDescriptorSchemaReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + schema_version_number=schema_version_number, + schema_id=schema_id, + schema_version_id=schema_version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schema_version_number: Optional[int] = None, + schema_id: Optional['outputs.CatalogTableStorageDescriptorSchemaReferenceSchemaId'] = None, + schema_version_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schema_version_number is None and 'schemaVersionNumber' in kwargs: + schema_version_number = kwargs['schemaVersionNumber'] + if schema_version_number is None: + raise TypeError("Missing 'schema_version_number' argument") + if schema_id is None and 'schemaId' in kwargs: + schema_id = kwargs['schemaId'] + if schema_version_id is None and 'schemaVersionId' in kwargs: + schema_version_id = kwargs['schemaVersionId'] + + _setter("schema_version_number", schema_version_number) if schema_id is not None: - pulumi.set(__self__, "schema_id", schema_id) + _setter("schema_id", schema_id) if schema_version_id is not None: - pulumi.set(__self__, "schema_version_id", schema_version_id) + _setter("schema_version_id", schema_version_id) @property @pulumi.getter(name="schemaVersionNumber") @@ -741,12 +957,33 @@ def __init__(__self__, *, :param str schema_arn: ARN of the schema. One of `schema_arn` or `schema_name` has to be provided. :param str schema_name: Name of the schema. One of `schema_arn` or `schema_name` has to be provided. """ + CatalogTableStorageDescriptorSchemaReferenceSchemaId._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_name=registry_name, + schema_arn=schema_arn, + schema_name=schema_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_name: Optional[str] = None, + schema_arn: Optional[str] = None, + schema_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if schema_arn is None and 'schemaArn' in kwargs: + schema_arn = kwargs['schemaArn'] + if schema_name is None and 'schemaName' in kwargs: + schema_name = kwargs['schemaName'] + if registry_name is not None: - pulumi.set(__self__, "registry_name", registry_name) + _setter("registry_name", registry_name) if schema_arn is not None: - pulumi.set(__self__, "schema_arn", schema_arn) + _setter("schema_arn", schema_arn) if schema_name is not None: - pulumi.set(__self__, "schema_name", schema_name) + _setter("schema_name", schema_name) @property @pulumi.getter(name="registryName") @@ -801,12 +1038,29 @@ def __init__(__self__, *, :param Mapping[str, str] parameters: Map of initialization parameters for the SerDe, in key-value form. :param str serialization_library: Usually the class that implements the SerDe. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`. """ + CatalogTableStorageDescriptorSerDeInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + parameters=parameters, + serialization_library=serialization_library, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + parameters: Optional[Mapping[str, str]] = None, + serialization_library: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if serialization_library is None and 'serializationLibrary' in kwargs: + serialization_library = kwargs['serializationLibrary'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if serialization_library is not None: - pulumi.set(__self__, "serialization_library", serialization_library) + _setter("serialization_library", serialization_library) @property @pulumi.getter @@ -865,12 +1119,33 @@ def __init__(__self__, *, :param Mapping[str, str] skewed_column_value_location_maps: List of values that appear so frequently as to be considered skewed. :param Sequence[str] skewed_column_values: Map of skewed values to the columns that contain them. """ + CatalogTableStorageDescriptorSkewedInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + skewed_column_names=skewed_column_names, + skewed_column_value_location_maps=skewed_column_value_location_maps, + skewed_column_values=skewed_column_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + skewed_column_names: Optional[Sequence[str]] = None, + skewed_column_value_location_maps: Optional[Mapping[str, str]] = None, + skewed_column_values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skewed_column_names is None and 'skewedColumnNames' in kwargs: + skewed_column_names = kwargs['skewedColumnNames'] + if skewed_column_value_location_maps is None and 'skewedColumnValueLocationMaps' in kwargs: + skewed_column_value_location_maps = kwargs['skewedColumnValueLocationMaps'] + if skewed_column_values is None and 'skewedColumnValues' in kwargs: + skewed_column_values = kwargs['skewedColumnValues'] + if skewed_column_names is not None: - pulumi.set(__self__, "skewed_column_names", skewed_column_names) + _setter("skewed_column_names", skewed_column_names) if skewed_column_value_location_maps is not None: - pulumi.set(__self__, "skewed_column_value_location_maps", skewed_column_value_location_maps) + _setter("skewed_column_value_location_maps", skewed_column_value_location_maps) if skewed_column_values is not None: - pulumi.set(__self__, "skewed_column_values", skewed_column_values) + _setter("skewed_column_values", skewed_column_values) @property @pulumi.getter(name="skewedColumnNames") @@ -923,8 +1198,27 @@ def __init__(__self__, *, :param str column: Name of the column. :param int sort_order: Whether the column is sorted in ascending (`1`) or descending order (`0`). """ - pulumi.set(__self__, "column", column) - pulumi.set(__self__, "sort_order", sort_order) + CatalogTableStorageDescriptorSortColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + column=column, + sort_order=sort_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column: Optional[str] = None, + sort_order: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column is None: + raise TypeError("Missing 'column' argument") + if sort_order is None and 'sortOrder' in kwargs: + sort_order = kwargs['sortOrder'] + if sort_order is None: + raise TypeError("Missing 'sort_order' argument") + + _setter("column", column) + _setter("sort_order", sort_order) @property @pulumi.getter @@ -973,9 +1267,34 @@ def __init__(__self__, *, :param str database_name: Name of the catalog database that contains the target table. :param str name: Name of the target table. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + CatalogTableTargetTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + database_name: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("catalog_id", catalog_id) + _setter("database_name", database_name) + _setter("name", name) @property @pulumi.getter(name="catalogId") @@ -1050,22 +1369,59 @@ def __init__(__self__, *, :param Sequence[str] headers: A list of strings representing column names. :param str quote_symbol: A custom symbol to denote what combines content into a single column value. It must be different from the column delimiter. """ + ClassifierCsvClassifier._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_single_column=allow_single_column, + contains_header=contains_header, + custom_datatype_configured=custom_datatype_configured, + custom_datatypes=custom_datatypes, + delimiter=delimiter, + disable_value_trimming=disable_value_trimming, + headers=headers, + quote_symbol=quote_symbol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_single_column: Optional[bool] = None, + contains_header: Optional[str] = None, + custom_datatype_configured: Optional[bool] = None, + custom_datatypes: Optional[Sequence[str]] = None, + delimiter: Optional[str] = None, + disable_value_trimming: Optional[bool] = None, + headers: Optional[Sequence[str]] = None, + quote_symbol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_single_column is None and 'allowSingleColumn' in kwargs: + allow_single_column = kwargs['allowSingleColumn'] + if contains_header is None and 'containsHeader' in kwargs: + contains_header = kwargs['containsHeader'] + if custom_datatype_configured is None and 'customDatatypeConfigured' in kwargs: + custom_datatype_configured = kwargs['customDatatypeConfigured'] + if custom_datatypes is None and 'customDatatypes' in kwargs: + custom_datatypes = kwargs['customDatatypes'] + if disable_value_trimming is None and 'disableValueTrimming' in kwargs: + disable_value_trimming = kwargs['disableValueTrimming'] + if quote_symbol is None and 'quoteSymbol' in kwargs: + quote_symbol = kwargs['quoteSymbol'] + if allow_single_column is not None: - pulumi.set(__self__, "allow_single_column", allow_single_column) + _setter("allow_single_column", allow_single_column) if contains_header is not None: - pulumi.set(__self__, "contains_header", contains_header) + _setter("contains_header", contains_header) if custom_datatype_configured is not None: - pulumi.set(__self__, "custom_datatype_configured", custom_datatype_configured) + _setter("custom_datatype_configured", custom_datatype_configured) if custom_datatypes is not None: - pulumi.set(__self__, "custom_datatypes", custom_datatypes) + _setter("custom_datatypes", custom_datatypes) if delimiter is not None: - pulumi.set(__self__, "delimiter", delimiter) + _setter("delimiter", delimiter) if disable_value_trimming is not None: - pulumi.set(__self__, "disable_value_trimming", disable_value_trimming) + _setter("disable_value_trimming", disable_value_trimming) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if quote_symbol is not None: - pulumi.set(__self__, "quote_symbol", quote_symbol) + _setter("quote_symbol", quote_symbol) @property @pulumi.getter(name="allowSingleColumn") @@ -1162,10 +1518,33 @@ def __init__(__self__, *, :param str grok_pattern: The grok pattern used by this classifier. :param str custom_patterns: Custom grok patterns used by this classifier. """ - pulumi.set(__self__, "classification", classification) - pulumi.set(__self__, "grok_pattern", grok_pattern) + ClassifierGrokClassifier._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + grok_pattern=grok_pattern, + custom_patterns=custom_patterns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[str] = None, + grok_pattern: Optional[str] = None, + custom_patterns: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is None: + raise TypeError("Missing 'classification' argument") + if grok_pattern is None and 'grokPattern' in kwargs: + grok_pattern = kwargs['grokPattern'] + if grok_pattern is None: + raise TypeError("Missing 'grok_pattern' argument") + if custom_patterns is None and 'customPatterns' in kwargs: + custom_patterns = kwargs['customPatterns'] + + _setter("classification", classification) + _setter("grok_pattern", grok_pattern) if custom_patterns is not None: - pulumi.set(__self__, "custom_patterns", custom_patterns) + _setter("custom_patterns", custom_patterns) @property @pulumi.getter @@ -1216,7 +1595,22 @@ def __init__(__self__, *, """ :param str json_path: A `JsonPath` string defining the JSON data for the classifier to classify. AWS Glue supports a subset of `JsonPath`, as described in [Writing JsonPath Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json). """ - pulumi.set(__self__, "json_path", json_path) + ClassifierJsonClassifier._configure( + lambda key, value: pulumi.set(__self__, key, value), + json_path=json_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + json_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if json_path is None and 'jsonPath' in kwargs: + json_path = kwargs['jsonPath'] + if json_path is None: + raise TypeError("Missing 'json_path' argument") + + _setter("json_path", json_path) @property @pulumi.getter(name="jsonPath") @@ -1253,8 +1647,27 @@ def __init__(__self__, *, :param str classification: An identifier of the data format that the classifier matches. :param str row_tag: The XML tag designating the element that contains each record in an XML document being parsed. Note that this cannot identify a self-closing element (closed by `/>`). An empty row element that contains only attributes can be parsed as long as it ends with a closing tag (for example, `` is okay, but `` is not). """ - pulumi.set(__self__, "classification", classification) - pulumi.set(__self__, "row_tag", row_tag) + ClassifierXmlClassifier._configure( + lambda key, value: pulumi.set(__self__, key, value), + classification=classification, + row_tag=row_tag, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + classification: Optional[str] = None, + row_tag: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if classification is None: + raise TypeError("Missing 'classification' argument") + if row_tag is None and 'rowTag' in kwargs: + row_tag = kwargs['rowTag'] + if row_tag is None: + raise TypeError("Missing 'row_tag' argument") + + _setter("classification", classification) + _setter("row_tag", row_tag) @property @pulumi.getter @@ -1305,12 +1718,33 @@ def __init__(__self__, *, :param Sequence[str] security_group_id_lists: The security group ID list used by the connection. :param str subnet_id: The subnet ID used by the connection. """ + ConnectionPhysicalConnectionRequirements._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + security_group_id_lists=security_group_id_lists, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + security_group_id_lists: Optional[Sequence[str]] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if security_group_id_lists is None and 'securityGroupIdLists' in kwargs: + security_group_id_lists = kwargs['securityGroupIdLists'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if security_group_id_lists is not None: - pulumi.set(__self__, "security_group_id_lists", security_group_id_lists) + _setter("security_group_id_lists", security_group_id_lists) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") @@ -1379,14 +1813,45 @@ def __init__(__self__, *, > **Note:** `configuration` for catalog target crawlers will have `{ ... "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas"} }` by default. :param str event_queue_arn: A valid Amazon SQS ARN. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "tables", tables) + CrawlerCatalogTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + tables=tables, + connection_name=connection_name, + dlq_event_queue_arn=dlq_event_queue_arn, + event_queue_arn=event_queue_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + tables: Optional[Sequence[str]] = None, + connection_name: Optional[str] = None, + dlq_event_queue_arn: Optional[str] = None, + event_queue_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if tables is None: + raise TypeError("Missing 'tables' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if dlq_event_queue_arn is None and 'dlqEventQueueArn' in kwargs: + dlq_event_queue_arn = kwargs['dlqEventQueueArn'] + if event_queue_arn is None and 'eventQueueArn' in kwargs: + event_queue_arn = kwargs['eventQueueArn'] + + _setter("database_name", database_name) + _setter("tables", tables) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if dlq_event_queue_arn is not None: - pulumi.set(__self__, "dlq_event_queue_arn", dlq_event_queue_arn) + _setter("dlq_event_queue_arn", dlq_event_queue_arn) if event_queue_arn is not None: - pulumi.set(__self__, "event_queue_arn", event_queue_arn) + _setter("event_queue_arn", event_queue_arn) @property @pulumi.getter(name="databaseName") @@ -1469,12 +1934,41 @@ def __init__(__self__, *, :param str connection_name: The name of the connection to use to connect to the Delta table target. :param bool create_native_delta_table: Specifies whether the crawler will create native tables, to allow integration with query engines that support querying of the Delta transaction log directly. """ - pulumi.set(__self__, "delta_tables", delta_tables) - pulumi.set(__self__, "write_manifest", write_manifest) + CrawlerDeltaTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + delta_tables=delta_tables, + write_manifest=write_manifest, + connection_name=connection_name, + create_native_delta_table=create_native_delta_table, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delta_tables: Optional[Sequence[str]] = None, + write_manifest: Optional[bool] = None, + connection_name: Optional[str] = None, + create_native_delta_table: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delta_tables is None and 'deltaTables' in kwargs: + delta_tables = kwargs['deltaTables'] + if delta_tables is None: + raise TypeError("Missing 'delta_tables' argument") + if write_manifest is None and 'writeManifest' in kwargs: + write_manifest = kwargs['writeManifest'] + if write_manifest is None: + raise TypeError("Missing 'write_manifest' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if create_native_delta_table is None and 'createNativeDeltaTable' in kwargs: + create_native_delta_table = kwargs['createNativeDeltaTable'] + + _setter("delta_tables", delta_tables) + _setter("write_manifest", write_manifest) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if create_native_delta_table is not None: - pulumi.set(__self__, "create_native_delta_table", create_native_delta_table) + _setter("create_native_delta_table", create_native_delta_table) @property @pulumi.getter(name="deltaTables") @@ -1539,11 +2033,32 @@ def __init__(__self__, *, :param bool scan_all: Indicates whether to scan all the records, or to sample rows from the table. Scanning all the records can take a long time when the table is not a high throughput table. defaults to `true`. :param float scan_rate: The percentage of the configured read capacity units to use by the AWS Glue crawler. The valid values are null or a value between 0.1 to 1.5. """ - pulumi.set(__self__, "path", path) + CrawlerDynamodbTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + scan_all=scan_all, + scan_rate=scan_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[str] = None, + scan_all: Optional[bool] = None, + scan_rate: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + if scan_all is None and 'scanAll' in kwargs: + scan_all = kwargs['scanAll'] + if scan_rate is None and 'scanRate' in kwargs: + scan_rate = kwargs['scanRate'] + + _setter("path", path) if scan_all is not None: - pulumi.set(__self__, "scan_all", scan_all) + _setter("scan_all", scan_all) if scan_rate is not None: - pulumi.set(__self__, "scan_rate", scan_rate) + _setter("scan_rate", scan_rate) @property @pulumi.getter @@ -1602,12 +2117,37 @@ def __init__(__self__, *, :param str connection_name: The name of the connection to use to connect to the Hudi target. :param Sequence[str] exclusions: A list of glob patterns used to exclude from the crawl. """ - pulumi.set(__self__, "maximum_traversal_depth", maximum_traversal_depth) - pulumi.set(__self__, "paths", paths) + CrawlerHudiTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_traversal_depth=maximum_traversal_depth, + paths=paths, + connection_name=connection_name, + exclusions=exclusions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_traversal_depth: Optional[int] = None, + paths: Optional[Sequence[str]] = None, + connection_name: Optional[str] = None, + exclusions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_traversal_depth is None and 'maximumTraversalDepth' in kwargs: + maximum_traversal_depth = kwargs['maximumTraversalDepth'] + if maximum_traversal_depth is None: + raise TypeError("Missing 'maximum_traversal_depth' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + + _setter("maximum_traversal_depth", maximum_traversal_depth) + _setter("paths", paths) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if exclusions is not None: - pulumi.set(__self__, "exclusions", exclusions) + _setter("exclusions", exclusions) @property @pulumi.getter(name="maximumTraversalDepth") @@ -1674,12 +2214,37 @@ def __init__(__self__, *, :param str connection_name: The name of the connection to use to connect to the Iceberg target. :param Sequence[str] exclusions: A list of glob patterns used to exclude from the crawl. """ - pulumi.set(__self__, "maximum_traversal_depth", maximum_traversal_depth) - pulumi.set(__self__, "paths", paths) + CrawlerIcebergTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_traversal_depth=maximum_traversal_depth, + paths=paths, + connection_name=connection_name, + exclusions=exclusions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_traversal_depth: Optional[int] = None, + paths: Optional[Sequence[str]] = None, + connection_name: Optional[str] = None, + exclusions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_traversal_depth is None and 'maximumTraversalDepth' in kwargs: + maximum_traversal_depth = kwargs['maximumTraversalDepth'] + if maximum_traversal_depth is None: + raise TypeError("Missing 'maximum_traversal_depth' argument") + if paths is None: + raise TypeError("Missing 'paths' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + + _setter("maximum_traversal_depth", maximum_traversal_depth) + _setter("paths", paths) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if exclusions is not None: - pulumi.set(__self__, "exclusions", exclusions) + _setter("exclusions", exclusions) @property @pulumi.getter(name="maximumTraversalDepth") @@ -1746,12 +2311,37 @@ def __init__(__self__, *, :param Sequence[str] enable_additional_metadatas: Specify a value of `RAWTYPES` or `COMMENTS` to enable additional metadata intable responses. `RAWTYPES` provides the native-level datatype. `COMMENTS` provides comments associated with a column or table in the database. :param Sequence[str] exclusions: A list of glob patterns used to exclude from the crawl. """ - pulumi.set(__self__, "connection_name", connection_name) - pulumi.set(__self__, "path", path) + CrawlerJdbcTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_name=connection_name, + path=path, + enable_additional_metadatas=enable_additional_metadatas, + exclusions=exclusions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_name: Optional[str] = None, + path: Optional[str] = None, + enable_additional_metadatas: Optional[Sequence[str]] = None, + exclusions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if connection_name is None: + raise TypeError("Missing 'connection_name' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if enable_additional_metadatas is None and 'enableAdditionalMetadatas' in kwargs: + enable_additional_metadatas = kwargs['enableAdditionalMetadatas'] + + _setter("connection_name", connection_name) + _setter("path", path) if enable_additional_metadatas is not None: - pulumi.set(__self__, "enable_additional_metadatas", enable_additional_metadatas) + _setter("enable_additional_metadatas", enable_additional_metadatas) if exclusions is not None: - pulumi.set(__self__, "exclusions", exclusions) + _setter("exclusions", exclusions) @property @pulumi.getter(name="connectionName") @@ -1814,10 +2404,27 @@ def __init__(__self__, *, :param str account_id: Required for cross account crawls. For same account crawls as the target data, this can omitted. :param bool use_lake_formation_credentials: Specifies whether to use Lake Formation credentials for the crawler instead of the IAM role credentials. """ + CrawlerLakeFormationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + use_lake_formation_credentials=use_lake_formation_credentials, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + use_lake_formation_credentials: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if use_lake_formation_credentials is None and 'useLakeFormationCredentials' in kwargs: + use_lake_formation_credentials = kwargs['useLakeFormationCredentials'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if use_lake_formation_credentials is not None: - pulumi.set(__self__, "use_lake_formation_credentials", use_lake_formation_credentials) + _setter("use_lake_formation_credentials", use_lake_formation_credentials) @property @pulumi.getter(name="accountId") @@ -1860,8 +2467,21 @@ def __init__(__self__, *, """ :param str crawler_lineage_settings: Specifies whether data lineage is enabled for the crawler. Valid values are: `ENABLE` and `DISABLE`. Default value is `DISABLE`. """ + CrawlerLineageConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + crawler_lineage_settings=crawler_lineage_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + crawler_lineage_settings: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if crawler_lineage_settings is None and 'crawlerLineageSettings' in kwargs: + crawler_lineage_settings = kwargs['crawlerLineageSettings'] + if crawler_lineage_settings is not None: - pulumi.set(__self__, "crawler_lineage_settings", crawler_lineage_settings) + _setter("crawler_lineage_settings", crawler_lineage_settings) @property @pulumi.getter(name="crawlerLineageSettings") @@ -1902,10 +2522,33 @@ def __init__(__self__, *, :param str path: The path of the Amazon DocumentDB or MongoDB target (database/collection). :param bool scan_all: Indicates whether to scan all the records, or to sample rows from the table. Scanning all the records can take a long time when the table is not a high throughput table. Default value is `true`. """ - pulumi.set(__self__, "connection_name", connection_name) - pulumi.set(__self__, "path", path) + CrawlerMongodbTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_name=connection_name, + path=path, + scan_all=scan_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_name: Optional[str] = None, + path: Optional[str] = None, + scan_all: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if connection_name is None: + raise TypeError("Missing 'connection_name' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if scan_all is None and 'scanAll' in kwargs: + scan_all = kwargs['scanAll'] + + _setter("connection_name", connection_name) + _setter("path", path) if scan_all is not None: - pulumi.set(__self__, "scan_all", scan_all) + _setter("scan_all", scan_all) @property @pulumi.getter(name="connectionName") @@ -1956,8 +2599,21 @@ def __init__(__self__, *, """ :param str recrawl_behavior: Specifies whether to crawl the entire dataset again, crawl only folders that were added since the last crawler run, or crawl what S3 notifies the crawler of via SQS. Valid Values are: `CRAWL_EVENT_MODE`, `CRAWL_EVERYTHING` and `CRAWL_NEW_FOLDERS_ONLY`. Default value is `CRAWL_EVERYTHING`. """ + CrawlerRecrawlPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + recrawl_behavior=recrawl_behavior, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + recrawl_behavior: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recrawl_behavior is None and 'recrawlBehavior' in kwargs: + recrawl_behavior = kwargs['recrawlBehavior'] + if recrawl_behavior is not None: - pulumi.set(__self__, "recrawl_behavior", recrawl_behavior) + _setter("recrawl_behavior", recrawl_behavior) @property @pulumi.getter(name="recrawlBehavior") @@ -2002,27 +2658,58 @@ def __init__(__self__, *, sample_size: Optional[int] = None): """ :param str path: The name of the DynamoDB table to crawl. - :param str connection_name: The name of the connection to use to connect to the JDBC target. - :param str dlq_event_queue_arn: The ARN of the dead-letter SQS queue. + :param str connection_name: The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. + :param str dlq_event_queue_arn: A valid Amazon SQS ARN. > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. > **Note:** `configuration` for catalog target crawlers will have `{ ... "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas"} }` by default. - :param str event_queue_arn: The ARN of the SQS queue to receive S3 notifications from. + :param str event_queue_arn: A valid Amazon SQS ARN. :param Sequence[str] exclusions: A list of glob patterns used to exclude from the crawl. :param int sample_size: Sets the number of files in each leaf folder to be crawled when crawling sample files in a dataset. If not set, all the files are crawled. A valid value is an integer between 1 and 249. """ - pulumi.set(__self__, "path", path) + CrawlerS3Target._configure( + lambda key, value: pulumi.set(__self__, key, value), + path=path, + connection_name=connection_name, + dlq_event_queue_arn=dlq_event_queue_arn, + event_queue_arn=event_queue_arn, + exclusions=exclusions, + sample_size=sample_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + path: Optional[str] = None, + connection_name: Optional[str] = None, + dlq_event_queue_arn: Optional[str] = None, + event_queue_arn: Optional[str] = None, + exclusions: Optional[Sequence[str]] = None, + sample_size: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if path is None: + raise TypeError("Missing 'path' argument") + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + if dlq_event_queue_arn is None and 'dlqEventQueueArn' in kwargs: + dlq_event_queue_arn = kwargs['dlqEventQueueArn'] + if event_queue_arn is None and 'eventQueueArn' in kwargs: + event_queue_arn = kwargs['eventQueueArn'] + if sample_size is None and 'sampleSize' in kwargs: + sample_size = kwargs['sampleSize'] + + _setter("path", path) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) if dlq_event_queue_arn is not None: - pulumi.set(__self__, "dlq_event_queue_arn", dlq_event_queue_arn) + _setter("dlq_event_queue_arn", dlq_event_queue_arn) if event_queue_arn is not None: - pulumi.set(__self__, "event_queue_arn", event_queue_arn) + _setter("event_queue_arn", event_queue_arn) if exclusions is not None: - pulumi.set(__self__, "exclusions", exclusions) + _setter("exclusions", exclusions) if sample_size is not None: - pulumi.set(__self__, "sample_size", sample_size) + _setter("sample_size", sample_size) @property @pulumi.getter @@ -2036,7 +2723,7 @@ def path(self) -> str: @pulumi.getter(name="connectionName") def connection_name(self) -> Optional[str]: """ - The name of the connection to use to connect to the JDBC target. + The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a `NETWORK` Connection type. """ return pulumi.get(self, "connection_name") @@ -2044,7 +2731,7 @@ def connection_name(self) -> Optional[str]: @pulumi.getter(name="dlqEventQueueArn") def dlq_event_queue_arn(self) -> Optional[str]: """ - The ARN of the dead-letter SQS queue. + A valid Amazon SQS ARN. > **Note:** `deletion_behavior` of catalog target doesn't support `DEPRECATE_IN_DATABASE`. @@ -2056,7 +2743,7 @@ def dlq_event_queue_arn(self) -> Optional[str]: @pulumi.getter(name="eventQueueArn") def event_queue_arn(self) -> Optional[str]: """ - The ARN of the SQS queue to receive S3 notifications from. + A valid Amazon SQS ARN. """ return pulumi.get(self, "event_queue_arn") @@ -2105,10 +2792,27 @@ def __init__(__self__, *, :param str delete_behavior: The deletion behavior when the crawler finds a deleted object. Valid values: `LOG`, `DELETE_FROM_DATABASE`, or `DEPRECATE_IN_DATABASE`. Defaults to `DEPRECATE_IN_DATABASE`. :param str update_behavior: The update behavior when the crawler finds a changed schema. Valid values: `LOG` or `UPDATE_IN_DATABASE`. Defaults to `UPDATE_IN_DATABASE`. """ + CrawlerSchemaChangePolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_behavior=delete_behavior, + update_behavior=update_behavior, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_behavior: Optional[str] = None, + update_behavior: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_behavior is None and 'deleteBehavior' in kwargs: + delete_behavior = kwargs['deleteBehavior'] + if update_behavior is None and 'updateBehavior' in kwargs: + update_behavior = kwargs['updateBehavior'] + if delete_behavior is not None: - pulumi.set(__self__, "delete_behavior", delete_behavior) + _setter("delete_behavior", delete_behavior) if update_behavior is not None: - pulumi.set(__self__, "update_behavior", update_behavior) + _setter("update_behavior", update_behavior) @property @pulumi.getter(name="deleteBehavior") @@ -2155,8 +2859,29 @@ def __init__(__self__, *, :param 'DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryptionArgs' connection_password_encryption: When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of CreateConnection or UpdateConnection and store it in the ENCRYPTED_PASSWORD field in the connection properties. You can enable catalog encryption or only password encryption. see Connection Password Encryption. :param 'DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRestArgs' encryption_at_rest: Specifies the encryption-at-rest configuration for the Data Catalog. see Encryption At Rest. """ - pulumi.set(__self__, "connection_password_encryption", connection_password_encryption) - pulumi.set(__self__, "encryption_at_rest", encryption_at_rest) + DataCatalogEncryptionSettingsDataCatalogEncryptionSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_password_encryption=connection_password_encryption, + encryption_at_rest=encryption_at_rest, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_password_encryption: Optional['outputs.DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryption'] = None, + encryption_at_rest: Optional['outputs.DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRest'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_password_encryption is None and 'connectionPasswordEncryption' in kwargs: + connection_password_encryption = kwargs['connectionPasswordEncryption'] + if connection_password_encryption is None: + raise TypeError("Missing 'connection_password_encryption' argument") + if encryption_at_rest is None and 'encryptionAtRest' in kwargs: + encryption_at_rest = kwargs['encryptionAtRest'] + if encryption_at_rest is None: + raise TypeError("Missing 'encryption_at_rest' argument") + + _setter("connection_password_encryption", connection_password_encryption) + _setter("encryption_at_rest", encryption_at_rest) @property @pulumi.getter(name="connectionPasswordEncryption") @@ -2203,9 +2928,28 @@ def __init__(__self__, *, :param bool return_connection_password_encrypted: When set to `true`, passwords remain encrypted in the responses of GetConnection and GetConnections. This encryption takes effect independently of the catalog encryption. :param str aws_kms_key_id: A KMS key ARN that is used to encrypt the connection password. If connection password protection is enabled, the caller of CreateConnection and UpdateConnection needs at least `kms:Encrypt` permission on the specified AWS KMS key, to encrypt passwords before storing them in the Data Catalog. """ - pulumi.set(__self__, "return_connection_password_encrypted", return_connection_password_encrypted) + DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsConnectionPasswordEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + return_connection_password_encrypted=return_connection_password_encrypted, + aws_kms_key_id=aws_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + return_connection_password_encrypted: Optional[bool] = None, + aws_kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if return_connection_password_encrypted is None and 'returnConnectionPasswordEncrypted' in kwargs: + return_connection_password_encrypted = kwargs['returnConnectionPasswordEncrypted'] + if return_connection_password_encrypted is None: + raise TypeError("Missing 'return_connection_password_encrypted' argument") + if aws_kms_key_id is None and 'awsKmsKeyId' in kwargs: + aws_kms_key_id = kwargs['awsKmsKeyId'] + + _setter("return_connection_password_encrypted", return_connection_password_encrypted) if aws_kms_key_id is not None: - pulumi.set(__self__, "aws_kms_key_id", aws_kms_key_id) + _setter("aws_kms_key_id", aws_kms_key_id) @property @pulumi.getter(name="returnConnectionPasswordEncrypted") @@ -2252,9 +2996,28 @@ def __init__(__self__, *, :param str catalog_encryption_mode: The encryption-at-rest mode for encrypting Data Catalog data. Valid values are `DISABLED` and `SSE-KMS`. :param str sse_aws_kms_key_id: The ARN of the AWS KMS key to use for encryption at rest. """ - pulumi.set(__self__, "catalog_encryption_mode", catalog_encryption_mode) + DataCatalogEncryptionSettingsDataCatalogEncryptionSettingsEncryptionAtRest._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_encryption_mode=catalog_encryption_mode, + sse_aws_kms_key_id=sse_aws_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_encryption_mode: Optional[str] = None, + sse_aws_kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_encryption_mode is None and 'catalogEncryptionMode' in kwargs: + catalog_encryption_mode = kwargs['catalogEncryptionMode'] + if catalog_encryption_mode is None: + raise TypeError("Missing 'catalog_encryption_mode' argument") + if sse_aws_kms_key_id is None and 'sseAwsKmsKeyId' in kwargs: + sse_aws_kms_key_id = kwargs['sseAwsKmsKeyId'] + + _setter("catalog_encryption_mode", catalog_encryption_mode) if sse_aws_kms_key_id is not None: - pulumi.set(__self__, "sse_aws_kms_key_id", sse_aws_kms_key_id) + _setter("sse_aws_kms_key_id", sse_aws_kms_key_id) @property @pulumi.getter(name="catalogEncryptionMode") @@ -2305,10 +3068,35 @@ def __init__(__self__, *, :param str table_name: Name of the AWS Glue table. :param str catalog_id: The catalog id where the AWS Glue table exists. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "table_name", table_name) + DataQualityRulesetTargetTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + table_name=table_name, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + table_name: Optional[str] = None, + catalog_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("database_name", database_name) + _setter("table_name", table_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter(name="databaseName") @@ -2367,13 +3155,36 @@ def __init__(__self__, *, :param str python_version: The Python version being used to execute a Python shell job. Allowed values are 2, 3 or 3.9. Version 3 refers to Python 3.6. :param str runtime: In Ray jobs, runtime is used to specify the versions of Ray, Python and additional libraries available in your environment. This field is not used in other job types. For supported runtime environment values, see [Working with Ray jobs](https://docs.aws.amazon.com/glue/latest/dg/ray-jobs-section.html#author-job-ray-runtimes) in the Glue Developer Guide. """ - pulumi.set(__self__, "script_location", script_location) + JobCommand._configure( + lambda key, value: pulumi.set(__self__, key, value), + script_location=script_location, + name=name, + python_version=python_version, + runtime=runtime, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + script_location: Optional[str] = None, + name: Optional[str] = None, + python_version: Optional[str] = None, + runtime: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if script_location is None and 'scriptLocation' in kwargs: + script_location = kwargs['scriptLocation'] + if script_location is None: + raise TypeError("Missing 'script_location' argument") + if python_version is None and 'pythonVersion' in kwargs: + python_version = kwargs['pythonVersion'] + + _setter("script_location", script_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if python_version is not None: - pulumi.set(__self__, "python_version", python_version) + _setter("python_version", python_version) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) @property @pulumi.getter(name="scriptLocation") @@ -2432,8 +3243,21 @@ def __init__(__self__, *, """ :param int max_concurrent_runs: The maximum number of concurrent runs allowed for a job. The default is 1. """ + JobExecutionProperty._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_concurrent_runs=max_concurrent_runs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_concurrent_runs: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_concurrent_runs is None and 'maxConcurrentRuns' in kwargs: + max_concurrent_runs = kwargs['maxConcurrentRuns'] + if max_concurrent_runs is not None: - pulumi.set(__self__, "max_concurrent_runs", max_concurrent_runs) + _setter("max_concurrent_runs", max_concurrent_runs) @property @pulumi.getter(name="maxConcurrentRuns") @@ -2468,8 +3292,21 @@ def __init__(__self__, *, """ :param int notify_delay_after: After a job run starts, the number of minutes to wait before sending a job run delay notification. """ + JobNotificationProperty._configure( + lambda key, value: pulumi.set(__self__, key, value), + notify_delay_after=notify_delay_after, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notify_delay_after: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notify_delay_after is None and 'notifyDelayAfter' in kwargs: + notify_delay_after = kwargs['notifyDelayAfter'] + if notify_delay_after is not None: - pulumi.set(__self__, "notify_delay_after", notify_delay_after) + _setter("notify_delay_after", notify_delay_after) @property @pulumi.getter(name="notifyDelayAfter") @@ -2516,12 +3353,41 @@ def __init__(__self__, *, :param str catalog_id: A unique identifier for the AWS Glue Data Catalog. :param str connection_name: The name of the connection to the AWS Glue Data Catalog. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "table_name", table_name) + MLTransformInputRecordTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + table_name=table_name, + catalog_id=catalog_id, + connection_name=connection_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + table_name: Optional[str] = None, + catalog_id: Optional[str] = None, + connection_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if connection_name is None and 'connectionName' in kwargs: + connection_name = kwargs['connectionName'] + + _setter("database_name", database_name) + _setter("table_name", table_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if connection_name is not None: - pulumi.set(__self__, "connection_name", connection_name) + _setter("connection_name", connection_name) @property @pulumi.getter(name="databaseName") @@ -2584,8 +3450,29 @@ def __init__(__self__, *, :param 'MLTransformParametersFindMatchesParametersArgs' find_matches_parameters: The parameters for the find matches algorithm. see Find Matches Parameters. :param str transform_type: The type of machine learning transform. For information about the types of machine learning transforms, see [Creating Machine Learning Transforms](http://docs.aws.amazon.com/glue/latest/dg/add-job-machine-learning-transform.html). """ - pulumi.set(__self__, "find_matches_parameters", find_matches_parameters) - pulumi.set(__self__, "transform_type", transform_type) + MLTransformParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + find_matches_parameters=find_matches_parameters, + transform_type=transform_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + find_matches_parameters: Optional['outputs.MLTransformParametersFindMatchesParameters'] = None, + transform_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if find_matches_parameters is None and 'findMatchesParameters' in kwargs: + find_matches_parameters = kwargs['findMatchesParameters'] + if find_matches_parameters is None: + raise TypeError("Missing 'find_matches_parameters' argument") + if transform_type is None and 'transformType' in kwargs: + transform_type = kwargs['transformType'] + if transform_type is None: + raise TypeError("Missing 'transform_type' argument") + + _setter("find_matches_parameters", find_matches_parameters) + _setter("transform_type", transform_type) @property @pulumi.getter(name="findMatchesParameters") @@ -2640,14 +3527,39 @@ def __init__(__self__, *, :param float precision_recall_trade_off: The value selected when tuning your transform for a balance between precision and recall. :param str primary_key_column_name: The name of a column that uniquely identifies rows in the source table. """ + MLTransformParametersFindMatchesParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + accuracy_cost_trade_off=accuracy_cost_trade_off, + enforce_provided_labels=enforce_provided_labels, + precision_recall_trade_off=precision_recall_trade_off, + primary_key_column_name=primary_key_column_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accuracy_cost_trade_off: Optional[float] = None, + enforce_provided_labels: Optional[bool] = None, + precision_recall_trade_off: Optional[float] = None, + primary_key_column_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accuracy_cost_trade_off is None and 'accuracyCostTradeOff' in kwargs: + accuracy_cost_trade_off = kwargs['accuracyCostTradeOff'] + if enforce_provided_labels is None and 'enforceProvidedLabels' in kwargs: + enforce_provided_labels = kwargs['enforceProvidedLabels'] + if precision_recall_trade_off is None and 'precisionRecallTradeOff' in kwargs: + precision_recall_trade_off = kwargs['precisionRecallTradeOff'] + if primary_key_column_name is None and 'primaryKeyColumnName' in kwargs: + primary_key_column_name = kwargs['primaryKeyColumnName'] + if accuracy_cost_trade_off is not None: - pulumi.set(__self__, "accuracy_cost_trade_off", accuracy_cost_trade_off) + _setter("accuracy_cost_trade_off", accuracy_cost_trade_off) if enforce_provided_labels is not None: - pulumi.set(__self__, "enforce_provided_labels", enforce_provided_labels) + _setter("enforce_provided_labels", enforce_provided_labels) if precision_recall_trade_off is not None: - pulumi.set(__self__, "precision_recall_trade_off", precision_recall_trade_off) + _setter("precision_recall_trade_off", precision_recall_trade_off) if primary_key_column_name is not None: - pulumi.set(__self__, "primary_key_column_name", primary_key_column_name) + _setter("primary_key_column_name", primary_key_column_name) @property @pulumi.getter(name="accuracyCostTradeOff") @@ -2708,10 +3620,25 @@ def __init__(__self__, *, :param str data_type: The type of data in the column. :param str name: The name you assign to this ML Transform. It must be unique in your account. """ + MLTransformSchema._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_type=data_type, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_type: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_type is None and 'dataType' in kwargs: + data_type = kwargs['dataType'] + if data_type is not None: - pulumi.set(__self__, "data_type", data_type) + _setter("data_type", data_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="dataType") @@ -2759,12 +3686,31 @@ def __init__(__self__, *, :param str index_name: Name of the partition index. :param Sequence[str] keys: Keys for the partition index. """ + PartitionIndexPartitionIndex._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + index_status=index_status, + keys=keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[str] = None, + index_status: Optional[str] = None, + keys: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_status is None and 'indexStatus' in kwargs: + index_status = kwargs['indexStatus'] + if index_name is not None: - pulumi.set(__self__, "index_name", index_name) + _setter("index_name", index_name) if index_status is not None: - pulumi.set(__self__, "index_status", index_status) + _setter("index_status", index_status) if keys is not None: - pulumi.set(__self__, "keys", keys) + _setter("keys", keys) @property @pulumi.getter(name="indexName") @@ -2848,30 +3794,79 @@ def __init__(__self__, *, :param Sequence['PartitionStorageDescriptorSortColumnArgs'] sort_columns: A list of Order objects specifying the sort order of each bucket in the table. :param bool stored_as_sub_directories: True if the table data is stored in subdirectories, or False if not. """ + PartitionStorageDescriptor._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_columns=bucket_columns, + columns=columns, + compressed=compressed, + input_format=input_format, + location=location, + number_of_buckets=number_of_buckets, + output_format=output_format, + parameters=parameters, + ser_de_info=ser_de_info, + skewed_info=skewed_info, + sort_columns=sort_columns, + stored_as_sub_directories=stored_as_sub_directories, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_columns: Optional[Sequence[str]] = None, + columns: Optional[Sequence['outputs.PartitionStorageDescriptorColumn']] = None, + compressed: Optional[bool] = None, + input_format: Optional[str] = None, + location: Optional[str] = None, + number_of_buckets: Optional[int] = None, + output_format: Optional[str] = None, + parameters: Optional[Mapping[str, str]] = None, + ser_de_info: Optional['outputs.PartitionStorageDescriptorSerDeInfo'] = None, + skewed_info: Optional['outputs.PartitionStorageDescriptorSkewedInfo'] = None, + sort_columns: Optional[Sequence['outputs.PartitionStorageDescriptorSortColumn']] = None, + stored_as_sub_directories: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_columns is None and 'bucketColumns' in kwargs: + bucket_columns = kwargs['bucketColumns'] + if input_format is None and 'inputFormat' in kwargs: + input_format = kwargs['inputFormat'] + if number_of_buckets is None and 'numberOfBuckets' in kwargs: + number_of_buckets = kwargs['numberOfBuckets'] + if output_format is None and 'outputFormat' in kwargs: + output_format = kwargs['outputFormat'] + if ser_de_info is None and 'serDeInfo' in kwargs: + ser_de_info = kwargs['serDeInfo'] + if skewed_info is None and 'skewedInfo' in kwargs: + skewed_info = kwargs['skewedInfo'] + if sort_columns is None and 'sortColumns' in kwargs: + sort_columns = kwargs['sortColumns'] + if stored_as_sub_directories is None and 'storedAsSubDirectories' in kwargs: + stored_as_sub_directories = kwargs['storedAsSubDirectories'] + if bucket_columns is not None: - pulumi.set(__self__, "bucket_columns", bucket_columns) + _setter("bucket_columns", bucket_columns) if columns is not None: - pulumi.set(__self__, "columns", columns) + _setter("columns", columns) if compressed is not None: - pulumi.set(__self__, "compressed", compressed) + _setter("compressed", compressed) if input_format is not None: - pulumi.set(__self__, "input_format", input_format) + _setter("input_format", input_format) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if number_of_buckets is not None: - pulumi.set(__self__, "number_of_buckets", number_of_buckets) + _setter("number_of_buckets", number_of_buckets) if output_format is not None: - pulumi.set(__self__, "output_format", output_format) + _setter("output_format", output_format) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if ser_de_info is not None: - pulumi.set(__self__, "ser_de_info", ser_de_info) + _setter("ser_de_info", ser_de_info) if skewed_info is not None: - pulumi.set(__self__, "skewed_info", skewed_info) + _setter("skewed_info", skewed_info) if sort_columns is not None: - pulumi.set(__self__, "sort_columns", sort_columns) + _setter("sort_columns", sort_columns) if stored_as_sub_directories is not None: - pulumi.set(__self__, "stored_as_sub_directories", stored_as_sub_directories) + _setter("stored_as_sub_directories", stored_as_sub_directories) @property @pulumi.getter(name="bucketColumns") @@ -2981,11 +3976,28 @@ def __init__(__self__, *, :param str comment: Free-form text comment. :param str type: The datatype of data in the Column. """ - pulumi.set(__self__, "name", name) + PartitionStorageDescriptorColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + comment=comment, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + comment: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -3040,12 +4052,29 @@ def __init__(__self__, *, :param Mapping[str, str] parameters: A map of initialization parameters for the SerDe, in key-value form. :param str serialization_library: Usually the class that implements the SerDe. An example is: org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe. """ + PartitionStorageDescriptorSerDeInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + parameters=parameters, + serialization_library=serialization_library, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + parameters: Optional[Mapping[str, str]] = None, + serialization_library: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if serialization_library is None and 'serializationLibrary' in kwargs: + serialization_library = kwargs['serializationLibrary'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if serialization_library is not None: - pulumi.set(__self__, "serialization_library", serialization_library) + _setter("serialization_library", serialization_library) @property @pulumi.getter @@ -3104,12 +4133,33 @@ def __init__(__self__, *, :param Mapping[str, str] skewed_column_value_location_maps: A list of values that appear so frequently as to be considered skewed. :param Sequence[str] skewed_column_values: A map of skewed values to the columns that contain them. """ + PartitionStorageDescriptorSkewedInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + skewed_column_names=skewed_column_names, + skewed_column_value_location_maps=skewed_column_value_location_maps, + skewed_column_values=skewed_column_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + skewed_column_names: Optional[Sequence[str]] = None, + skewed_column_value_location_maps: Optional[Mapping[str, str]] = None, + skewed_column_values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skewed_column_names is None and 'skewedColumnNames' in kwargs: + skewed_column_names = kwargs['skewedColumnNames'] + if skewed_column_value_location_maps is None and 'skewedColumnValueLocationMaps' in kwargs: + skewed_column_value_location_maps = kwargs['skewedColumnValueLocationMaps'] + if skewed_column_values is None and 'skewedColumnValues' in kwargs: + skewed_column_values = kwargs['skewedColumnValues'] + if skewed_column_names is not None: - pulumi.set(__self__, "skewed_column_names", skewed_column_names) + _setter("skewed_column_names", skewed_column_names) if skewed_column_value_location_maps is not None: - pulumi.set(__self__, "skewed_column_value_location_maps", skewed_column_value_location_maps) + _setter("skewed_column_value_location_maps", skewed_column_value_location_maps) if skewed_column_values is not None: - pulumi.set(__self__, "skewed_column_values", skewed_column_values) + _setter("skewed_column_values", skewed_column_values) @property @pulumi.getter(name="skewedColumnNames") @@ -3162,8 +4212,27 @@ def __init__(__self__, *, :param str column: The name of the column. :param int sort_order: Indicates that the column is sorted in ascending order (== 1), or in descending order (==0). """ - pulumi.set(__self__, "column", column) - pulumi.set(__self__, "sort_order", sort_order) + PartitionStorageDescriptorSortColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + column=column, + sort_order=sort_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column: Optional[str] = None, + sort_order: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column is None: + raise TypeError("Missing 'column' argument") + if sort_order is None and 'sortOrder' in kwargs: + sort_order = kwargs['sortOrder'] + if sort_order is None: + raise TypeError("Missing 'sort_order' argument") + + _setter("column", column) + _setter("sort_order", sort_order) @property @pulumi.getter @@ -3212,9 +4281,36 @@ def __init__(__self__, *, """ :param 'SecurityConfigurationEncryptionConfigurationS3EncryptionArgs' s3_encryption: A `s3_encryption ` block as described below, which contains encryption configuration for S3 data. """ - pulumi.set(__self__, "cloudwatch_encryption", cloudwatch_encryption) - pulumi.set(__self__, "job_bookmarks_encryption", job_bookmarks_encryption) - pulumi.set(__self__, "s3_encryption", s3_encryption) + SecurityConfigurationEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_encryption=cloudwatch_encryption, + job_bookmarks_encryption=job_bookmarks_encryption, + s3_encryption=s3_encryption, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_encryption: Optional['outputs.SecurityConfigurationEncryptionConfigurationCloudwatchEncryption'] = None, + job_bookmarks_encryption: Optional['outputs.SecurityConfigurationEncryptionConfigurationJobBookmarksEncryption'] = None, + s3_encryption: Optional['outputs.SecurityConfigurationEncryptionConfigurationS3Encryption'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_encryption is None and 'cloudwatchEncryption' in kwargs: + cloudwatch_encryption = kwargs['cloudwatchEncryption'] + if cloudwatch_encryption is None: + raise TypeError("Missing 'cloudwatch_encryption' argument") + if job_bookmarks_encryption is None and 'jobBookmarksEncryption' in kwargs: + job_bookmarks_encryption = kwargs['jobBookmarksEncryption'] + if job_bookmarks_encryption is None: + raise TypeError("Missing 'job_bookmarks_encryption' argument") + if s3_encryption is None and 's3Encryption' in kwargs: + s3_encryption = kwargs['s3Encryption'] + if s3_encryption is None: + raise TypeError("Missing 's3_encryption' argument") + + _setter("cloudwatch_encryption", cloudwatch_encryption) + _setter("job_bookmarks_encryption", job_bookmarks_encryption) + _setter("s3_encryption", s3_encryption) @property @pulumi.getter(name="cloudwatchEncryption") @@ -3263,10 +4359,27 @@ def __init__(__self__, *, :param str cloudwatch_encryption_mode: Encryption mode to use for CloudWatch data. Valid values: `DISABLED`, `SSE-KMS`. Default value: `DISABLED`. :param str kms_key_arn: Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data. """ + SecurityConfigurationEncryptionConfigurationCloudwatchEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_encryption_mode=cloudwatch_encryption_mode, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_encryption_mode: Optional[str] = None, + kms_key_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_encryption_mode is None and 'cloudwatchEncryptionMode' in kwargs: + cloudwatch_encryption_mode = kwargs['cloudwatchEncryptionMode'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if cloudwatch_encryption_mode is not None: - pulumi.set(__self__, "cloudwatch_encryption_mode", cloudwatch_encryption_mode) + _setter("cloudwatch_encryption_mode", cloudwatch_encryption_mode) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="cloudwatchEncryptionMode") @@ -3313,10 +4426,27 @@ def __init__(__self__, *, :param str job_bookmarks_encryption_mode: Encryption mode to use for job bookmarks data. Valid values: `CSE-KMS`, `DISABLED`. Default value: `DISABLED`. :param str kms_key_arn: Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data. """ + SecurityConfigurationEncryptionConfigurationJobBookmarksEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_bookmarks_encryption_mode=job_bookmarks_encryption_mode, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_bookmarks_encryption_mode: Optional[str] = None, + kms_key_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_bookmarks_encryption_mode is None and 'jobBookmarksEncryptionMode' in kwargs: + job_bookmarks_encryption_mode = kwargs['jobBookmarksEncryptionMode'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if job_bookmarks_encryption_mode is not None: - pulumi.set(__self__, "job_bookmarks_encryption_mode", job_bookmarks_encryption_mode) + _setter("job_bookmarks_encryption_mode", job_bookmarks_encryption_mode) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="jobBookmarksEncryptionMode") @@ -3363,10 +4493,27 @@ def __init__(__self__, *, :param str kms_key_arn: Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data. :param str s3_encryption_mode: Encryption mode to use for S3 data. Valid values: `DISABLED`, `SSE-KMS`, `SSE-S3`. Default value: `DISABLED`. """ + SecurityConfigurationEncryptionConfigurationS3Encryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_arn=kms_key_arn, + s3_encryption_mode=s3_encryption_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_arn: Optional[str] = None, + s3_encryption_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if s3_encryption_mode is None and 's3EncryptionMode' in kwargs: + s3_encryption_mode = kwargs['s3EncryptionMode'] + if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if s3_encryption_mode is not None: - pulumi.set(__self__, "s3_encryption_mode", s3_encryption_mode) + _setter("s3_encryption_mode", s3_encryption_mode) @property @pulumi.getter(name="kmsKeyArn") @@ -3425,18 +4572,47 @@ def __init__(__self__, *, :param str security_configuration: The name of the Security Configuration structure to be used with this action. :param int timeout: The job run timeout in minutes. It overrides the timeout value of the job. """ + TriggerAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + arguments=arguments, + crawler_name=crawler_name, + job_name=job_name, + notification_property=notification_property, + security_configuration=security_configuration, + timeout=timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arguments: Optional[Mapping[str, str]] = None, + crawler_name: Optional[str] = None, + job_name: Optional[str] = None, + notification_property: Optional['outputs.TriggerActionNotificationProperty'] = None, + security_configuration: Optional[str] = None, + timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if crawler_name is None and 'crawlerName' in kwargs: + crawler_name = kwargs['crawlerName'] + if job_name is None and 'jobName' in kwargs: + job_name = kwargs['jobName'] + if notification_property is None and 'notificationProperty' in kwargs: + notification_property = kwargs['notificationProperty'] + if security_configuration is None and 'securityConfiguration' in kwargs: + security_configuration = kwargs['securityConfiguration'] + if arguments is not None: - pulumi.set(__self__, "arguments", arguments) + _setter("arguments", arguments) if crawler_name is not None: - pulumi.set(__self__, "crawler_name", crawler_name) + _setter("crawler_name", crawler_name) if job_name is not None: - pulumi.set(__self__, "job_name", job_name) + _setter("job_name", job_name) if notification_property is not None: - pulumi.set(__self__, "notification_property", notification_property) + _setter("notification_property", notification_property) if security_configuration is not None: - pulumi.set(__self__, "security_configuration", security_configuration) + _setter("security_configuration", security_configuration) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) @property @pulumi.getter @@ -3511,8 +4687,21 @@ def __init__(__self__, *, """ :param int notify_delay_after: After a job run starts, the number of minutes to wait before sending a job run delay notification. """ + TriggerActionNotificationProperty._configure( + lambda key, value: pulumi.set(__self__, key, value), + notify_delay_after=notify_delay_after, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notify_delay_after: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notify_delay_after is None and 'notifyDelayAfter' in kwargs: + notify_delay_after = kwargs['notifyDelayAfter'] + if notify_delay_after is not None: - pulumi.set(__self__, "notify_delay_after", notify_delay_after) + _setter("notify_delay_after", notify_delay_after) @property @pulumi.getter(name="notifyDelayAfter") @@ -3551,9 +4740,28 @@ def __init__(__self__, *, :param int batch_size: Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires. :param int batch_window: Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received. Default value is `900`. """ - pulumi.set(__self__, "batch_size", batch_size) + TriggerEventBatchingCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + batch_size=batch_size, + batch_window=batch_window, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + batch_size: Optional[int] = None, + batch_window: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if batch_size is None: + raise TypeError("Missing 'batch_size' argument") + if batch_window is None and 'batchWindow' in kwargs: + batch_window = kwargs['batchWindow'] + + _setter("batch_size", batch_size) if batch_window is not None: - pulumi.set(__self__, "batch_window", batch_window) + _setter("batch_window", batch_window) @property @pulumi.getter(name="batchSize") @@ -3581,9 +4789,24 @@ def __init__(__self__, *, :param Sequence['TriggerPredicateConditionArgs'] conditions: A list of the conditions that determine when the trigger will fire. See Conditions. :param str logical: How to handle multiple conditions. Defaults to `AND`. Valid values are `AND` or `ANY`. """ - pulumi.set(__self__, "conditions", conditions) + TriggerPredicate._configure( + lambda key, value: pulumi.set(__self__, key, value), + conditions=conditions, + logical=logical, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + conditions: Optional[Sequence['outputs.TriggerPredicateCondition']] = None, + logical: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if conditions is None: + raise TypeError("Missing 'conditions' argument") + + _setter("conditions", conditions) if logical is not None: - pulumi.set(__self__, "logical", logical) + _setter("logical", logical) @property @pulumi.getter @@ -3640,16 +4863,43 @@ def __init__(__self__, *, :param str logical_operator: A logical operator. Defaults to `EQUALS`. :param str state: The condition job state. Currently, the values supported are `SUCCEEDED`, `STOPPED`, `TIMEOUT` and `FAILED`. If this is specified, `job_name` must also be specified. Conflicts with `crawler_state`. """ + TriggerPredicateCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + crawl_state=crawl_state, + crawler_name=crawler_name, + job_name=job_name, + logical_operator=logical_operator, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + crawl_state: Optional[str] = None, + crawler_name: Optional[str] = None, + job_name: Optional[str] = None, + logical_operator: Optional[str] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if crawl_state is None and 'crawlState' in kwargs: + crawl_state = kwargs['crawlState'] + if crawler_name is None and 'crawlerName' in kwargs: + crawler_name = kwargs['crawlerName'] + if job_name is None and 'jobName' in kwargs: + job_name = kwargs['jobName'] + if logical_operator is None and 'logicalOperator' in kwargs: + logical_operator = kwargs['logicalOperator'] + if crawl_state is not None: - pulumi.set(__self__, "crawl_state", crawl_state) + _setter("crawl_state", crawl_state) if crawler_name is not None: - pulumi.set(__self__, "crawler_name", crawler_name) + _setter("crawler_name", crawler_name) if job_name is not None: - pulumi.set(__self__, "job_name", job_name) + _setter("job_name", job_name) if logical_operator is not None: - pulumi.set(__self__, "logical_operator", logical_operator) + _setter("logical_operator", logical_operator) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="crawlState") @@ -3718,8 +4968,27 @@ def __init__(__self__, *, :param str resource_type: The type of the resource. can be one of `JAR`, `FILE`, and `ARCHIVE`. :param str uri: The URI for accessing the resource. """ - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "uri", uri) + UserDefinedFunctionResourceUri._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_type=resource_type, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_type: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("resource_type", resource_type) + _setter("uri", uri) @property @pulumi.getter(name="resourceType") @@ -3748,9 +5017,34 @@ def __init__(__self__, *, :param str index_name: Name of the partition index. :param Sequence[str] keys: Keys for the partition index. """ - pulumi.set(__self__, "index_name", index_name) - pulumi.set(__self__, "index_status", index_status) - pulumi.set(__self__, "keys", keys) + GetCatalogTablePartitionIndexResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + index_status=index_status, + keys=keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[str] = None, + index_status: Optional[str] = None, + keys: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if index_status is None and 'indexStatus' in kwargs: + index_status = kwargs['indexStatus'] + if index_status is None: + raise TypeError("Missing 'index_status' argument") + if keys is None: + raise TypeError("Missing 'keys' argument") + + _setter("index_name", index_name) + _setter("index_status", index_status) + _setter("keys", keys) @property @pulumi.getter(name="indexName") @@ -3785,9 +5079,30 @@ def __init__(__self__, *, :param str name: Name of the table. :param str type: Datatype of data in the Column. """ - pulumi.set(__self__, "comment", comment) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + GetCatalogTablePartitionKeyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[str] = None, + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comment is None: + raise TypeError("Missing 'comment' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("comment", comment) + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -3845,19 +5160,98 @@ def __init__(__self__, *, :param Sequence['GetCatalogTableStorageDescriptorSortColumnArgs'] sort_columns: Configuration block for the sort order of each bucket in the table. See `sort_columns` below. :param bool stored_as_sub_directories: Whether the table data is stored in subdirectories. """ - pulumi.set(__self__, "bucket_columns", bucket_columns) - pulumi.set(__self__, "columns", columns) - pulumi.set(__self__, "compressed", compressed) - pulumi.set(__self__, "input_format", input_format) - pulumi.set(__self__, "location", location) - pulumi.set(__self__, "number_of_buckets", number_of_buckets) - pulumi.set(__self__, "output_format", output_format) - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "schema_references", schema_references) - pulumi.set(__self__, "ser_de_infos", ser_de_infos) - pulumi.set(__self__, "skewed_infos", skewed_infos) - pulumi.set(__self__, "sort_columns", sort_columns) - pulumi.set(__self__, "stored_as_sub_directories", stored_as_sub_directories) + GetCatalogTableStorageDescriptorResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_columns=bucket_columns, + columns=columns, + compressed=compressed, + input_format=input_format, + location=location, + number_of_buckets=number_of_buckets, + output_format=output_format, + parameters=parameters, + schema_references=schema_references, + ser_de_infos=ser_de_infos, + skewed_infos=skewed_infos, + sort_columns=sort_columns, + stored_as_sub_directories=stored_as_sub_directories, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_columns: Optional[Sequence[str]] = None, + columns: Optional[Sequence['outputs.GetCatalogTableStorageDescriptorColumnResult']] = None, + compressed: Optional[bool] = None, + input_format: Optional[str] = None, + location: Optional[str] = None, + number_of_buckets: Optional[int] = None, + output_format: Optional[str] = None, + parameters: Optional[Mapping[str, str]] = None, + schema_references: Optional[Sequence['outputs.GetCatalogTableStorageDescriptorSchemaReferenceResult']] = None, + ser_de_infos: Optional[Sequence['outputs.GetCatalogTableStorageDescriptorSerDeInfoResult']] = None, + skewed_infos: Optional[Sequence['outputs.GetCatalogTableStorageDescriptorSkewedInfoResult']] = None, + sort_columns: Optional[Sequence['outputs.GetCatalogTableStorageDescriptorSortColumnResult']] = None, + stored_as_sub_directories: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_columns is None and 'bucketColumns' in kwargs: + bucket_columns = kwargs['bucketColumns'] + if bucket_columns is None: + raise TypeError("Missing 'bucket_columns' argument") + if columns is None: + raise TypeError("Missing 'columns' argument") + if compressed is None: + raise TypeError("Missing 'compressed' argument") + if input_format is None and 'inputFormat' in kwargs: + input_format = kwargs['inputFormat'] + if input_format is None: + raise TypeError("Missing 'input_format' argument") + if location is None: + raise TypeError("Missing 'location' argument") + if number_of_buckets is None and 'numberOfBuckets' in kwargs: + number_of_buckets = kwargs['numberOfBuckets'] + if number_of_buckets is None: + raise TypeError("Missing 'number_of_buckets' argument") + if output_format is None and 'outputFormat' in kwargs: + output_format = kwargs['outputFormat'] + if output_format is None: + raise TypeError("Missing 'output_format' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if schema_references is None and 'schemaReferences' in kwargs: + schema_references = kwargs['schemaReferences'] + if schema_references is None: + raise TypeError("Missing 'schema_references' argument") + if ser_de_infos is None and 'serDeInfos' in kwargs: + ser_de_infos = kwargs['serDeInfos'] + if ser_de_infos is None: + raise TypeError("Missing 'ser_de_infos' argument") + if skewed_infos is None and 'skewedInfos' in kwargs: + skewed_infos = kwargs['skewedInfos'] + if skewed_infos is None: + raise TypeError("Missing 'skewed_infos' argument") + if sort_columns is None and 'sortColumns' in kwargs: + sort_columns = kwargs['sortColumns'] + if sort_columns is None: + raise TypeError("Missing 'sort_columns' argument") + if stored_as_sub_directories is None and 'storedAsSubDirectories' in kwargs: + stored_as_sub_directories = kwargs['storedAsSubDirectories'] + if stored_as_sub_directories is None: + raise TypeError("Missing 'stored_as_sub_directories' argument") + + _setter("bucket_columns", bucket_columns) + _setter("columns", columns) + _setter("compressed", compressed) + _setter("input_format", input_format) + _setter("location", location) + _setter("number_of_buckets", number_of_buckets) + _setter("output_format", output_format) + _setter("parameters", parameters) + _setter("schema_references", schema_references) + _setter("ser_de_infos", ser_de_infos) + _setter("skewed_infos", skewed_infos) + _setter("sort_columns", sort_columns) + _setter("stored_as_sub_directories", stored_as_sub_directories) @property @pulumi.getter(name="bucketColumns") @@ -3977,10 +5371,35 @@ def __init__(__self__, *, :param Mapping[str, str] parameters: Map of initialization parameters for the SerDe, in key-value form. :param str type: Datatype of data in the Column. """ - pulumi.set(__self__, "comment", comment) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "type", type) + GetCatalogTableStorageDescriptorColumnResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + name=name, + parameters=parameters, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[str] = None, + name: Optional[str] = None, + parameters: Optional[Mapping[str, str]] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comment is None: + raise TypeError("Missing 'comment' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("comment", comment) + _setter("name", name) + _setter("parameters", parameters) + _setter("type", type) @property @pulumi.getter @@ -4026,9 +5445,36 @@ def __init__(__self__, *, :param str schema_version_id: Unique ID assigned to a version of the schema. :param int schema_version_number: Version number of the schema. """ - pulumi.set(__self__, "schema_ids", schema_ids) - pulumi.set(__self__, "schema_version_id", schema_version_id) - pulumi.set(__self__, "schema_version_number", schema_version_number) + GetCatalogTableStorageDescriptorSchemaReferenceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + schema_ids=schema_ids, + schema_version_id=schema_version_id, + schema_version_number=schema_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schema_ids: Optional[Sequence['outputs.GetCatalogTableStorageDescriptorSchemaReferenceSchemaIdResult']] = None, + schema_version_id: Optional[str] = None, + schema_version_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schema_ids is None and 'schemaIds' in kwargs: + schema_ids = kwargs['schemaIds'] + if schema_ids is None: + raise TypeError("Missing 'schema_ids' argument") + if schema_version_id is None and 'schemaVersionId' in kwargs: + schema_version_id = kwargs['schemaVersionId'] + if schema_version_id is None: + raise TypeError("Missing 'schema_version_id' argument") + if schema_version_number is None and 'schemaVersionNumber' in kwargs: + schema_version_number = kwargs['schemaVersionNumber'] + if schema_version_number is None: + raise TypeError("Missing 'schema_version_number' argument") + + _setter("schema_ids", schema_ids) + _setter("schema_version_id", schema_version_id) + _setter("schema_version_number", schema_version_number) @property @pulumi.getter(name="schemaIds") @@ -4066,9 +5512,36 @@ def __init__(__self__, *, :param str schema_arn: ARN of the schema. :param str schema_name: Name of the schema. """ - pulumi.set(__self__, "registry_name", registry_name) - pulumi.set(__self__, "schema_arn", schema_arn) - pulumi.set(__self__, "schema_name", schema_name) + GetCatalogTableStorageDescriptorSchemaReferenceSchemaIdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_name=registry_name, + schema_arn=schema_arn, + schema_name=schema_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_name: Optional[str] = None, + schema_arn: Optional[str] = None, + schema_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if registry_name is None: + raise TypeError("Missing 'registry_name' argument") + if schema_arn is None and 'schemaArn' in kwargs: + schema_arn = kwargs['schemaArn'] + if schema_arn is None: + raise TypeError("Missing 'schema_arn' argument") + if schema_name is None and 'schemaName' in kwargs: + schema_name = kwargs['schemaName'] + if schema_name is None: + raise TypeError("Missing 'schema_name' argument") + + _setter("registry_name", registry_name) + _setter("schema_arn", schema_arn) + _setter("schema_name", schema_name) @property @pulumi.getter(name="registryName") @@ -4106,9 +5579,32 @@ def __init__(__self__, *, :param Mapping[str, str] parameters: Map of initialization parameters for the SerDe, in key-value form. :param str serialization_library: Usually the class that implements the SerDe. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "serialization_library", serialization_library) + GetCatalogTableStorageDescriptorSerDeInfoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + parameters=parameters, + serialization_library=serialization_library, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + parameters: Optional[Mapping[str, str]] = None, + serialization_library: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if serialization_library is None and 'serializationLibrary' in kwargs: + serialization_library = kwargs['serializationLibrary'] + if serialization_library is None: + raise TypeError("Missing 'serialization_library' argument") + + _setter("name", name) + _setter("parameters", parameters) + _setter("serialization_library", serialization_library) @property @pulumi.getter @@ -4146,9 +5642,36 @@ def __init__(__self__, *, :param Mapping[str, str] skewed_column_value_location_maps: List of values that appear so frequently as to be considered skewed. :param Sequence[str] skewed_column_values: Map of skewed values to the columns that contain them. """ - pulumi.set(__self__, "skewed_column_names", skewed_column_names) - pulumi.set(__self__, "skewed_column_value_location_maps", skewed_column_value_location_maps) - pulumi.set(__self__, "skewed_column_values", skewed_column_values) + GetCatalogTableStorageDescriptorSkewedInfoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + skewed_column_names=skewed_column_names, + skewed_column_value_location_maps=skewed_column_value_location_maps, + skewed_column_values=skewed_column_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + skewed_column_names: Optional[Sequence[str]] = None, + skewed_column_value_location_maps: Optional[Mapping[str, str]] = None, + skewed_column_values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skewed_column_names is None and 'skewedColumnNames' in kwargs: + skewed_column_names = kwargs['skewedColumnNames'] + if skewed_column_names is None: + raise TypeError("Missing 'skewed_column_names' argument") + if skewed_column_value_location_maps is None and 'skewedColumnValueLocationMaps' in kwargs: + skewed_column_value_location_maps = kwargs['skewedColumnValueLocationMaps'] + if skewed_column_value_location_maps is None: + raise TypeError("Missing 'skewed_column_value_location_maps' argument") + if skewed_column_values is None and 'skewedColumnValues' in kwargs: + skewed_column_values = kwargs['skewedColumnValues'] + if skewed_column_values is None: + raise TypeError("Missing 'skewed_column_values' argument") + + _setter("skewed_column_names", skewed_column_names) + _setter("skewed_column_value_location_maps", skewed_column_value_location_maps) + _setter("skewed_column_values", skewed_column_values) @property @pulumi.getter(name="skewedColumnNames") @@ -4184,8 +5707,27 @@ def __init__(__self__, *, :param str column: Name of the column. :param int sort_order: Whether the column is sorted in ascending (`1`) or descending order (`0`). """ - pulumi.set(__self__, "column", column) - pulumi.set(__self__, "sort_order", sort_order) + GetCatalogTableStorageDescriptorSortColumnResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + column=column, + sort_order=sort_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column: Optional[str] = None, + sort_order: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column is None: + raise TypeError("Missing 'column' argument") + if sort_order is None and 'sortOrder' in kwargs: + sort_order = kwargs['sortOrder'] + if sort_order is None: + raise TypeError("Missing 'sort_order' argument") + + _setter("column", column) + _setter("sort_order", sort_order) @property @pulumi.getter @@ -4215,9 +5757,34 @@ def __init__(__self__, *, :param str database_name: Name of the metadata database where the table metadata resides. :param str name: Name of the table. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + GetCatalogTableTargetTableResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + database_name: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("catalog_id", catalog_id) + _setter("database_name", database_name) + _setter("name", name) @property @pulumi.getter(name="catalogId") @@ -4250,9 +5817,36 @@ def __init__(__self__, *, availability_zone: str, security_group_id_lists: Sequence[str], subnet_id: str): - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "security_group_id_lists", security_group_id_lists) - pulumi.set(__self__, "subnet_id", subnet_id) + GetConnectionPhysicalConnectionRequirementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + security_group_id_lists=security_group_id_lists, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + security_group_id_lists: Optional[Sequence[str]] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if security_group_id_lists is None and 'securityGroupIdLists' in kwargs: + security_group_id_lists = kwargs['securityGroupIdLists'] + if security_group_id_lists is None: + raise TypeError("Missing 'security_group_id_lists' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("availability_zone", availability_zone) + _setter("security_group_id_lists", security_group_id_lists) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") @@ -4279,8 +5873,29 @@ def __init__(__self__, *, :param Sequence['GetDataCatalogEncryptionSettingsDataCatalogEncryptionSettingConnectionPasswordEncryptionArgs'] connection_password_encryptions: When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of CreateConnection or UpdateConnection and store it in the ENCRYPTED_PASSWORD field in the connection properties. You can enable catalog encryption or only password encryption. see Connection Password Encryption. :param Sequence['GetDataCatalogEncryptionSettingsDataCatalogEncryptionSettingEncryptionAtRestArgs'] encryption_at_rests: Encryption-at-rest configuration for the Data Catalog. see Encryption At Rest. """ - pulumi.set(__self__, "connection_password_encryptions", connection_password_encryptions) - pulumi.set(__self__, "encryption_at_rests", encryption_at_rests) + GetDataCatalogEncryptionSettingsDataCatalogEncryptionSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_password_encryptions=connection_password_encryptions, + encryption_at_rests=encryption_at_rests, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_password_encryptions: Optional[Sequence['outputs.GetDataCatalogEncryptionSettingsDataCatalogEncryptionSettingConnectionPasswordEncryptionResult']] = None, + encryption_at_rests: Optional[Sequence['outputs.GetDataCatalogEncryptionSettingsDataCatalogEncryptionSettingEncryptionAtRestResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_password_encryptions is None and 'connectionPasswordEncryptions' in kwargs: + connection_password_encryptions = kwargs['connectionPasswordEncryptions'] + if connection_password_encryptions is None: + raise TypeError("Missing 'connection_password_encryptions' argument") + if encryption_at_rests is None and 'encryptionAtRests' in kwargs: + encryption_at_rests = kwargs['encryptionAtRests'] + if encryption_at_rests is None: + raise TypeError("Missing 'encryption_at_rests' argument") + + _setter("connection_password_encryptions", connection_password_encryptions) + _setter("encryption_at_rests", encryption_at_rests) @property @pulumi.getter(name="connectionPasswordEncryptions") @@ -4308,8 +5923,29 @@ def __init__(__self__, *, :param str aws_kms_key_id: KMS key ARN that is used to encrypt the connection password. :param bool return_connection_password_encrypted: When set to `true`, passwords remain encrypted in the responses of GetConnection and GetConnections. This encryption takes effect independently of the catalog encryption. """ - pulumi.set(__self__, "aws_kms_key_id", aws_kms_key_id) - pulumi.set(__self__, "return_connection_password_encrypted", return_connection_password_encrypted) + GetDataCatalogEncryptionSettingsDataCatalogEncryptionSettingConnectionPasswordEncryptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_kms_key_id=aws_kms_key_id, + return_connection_password_encrypted=return_connection_password_encrypted, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_kms_key_id: Optional[str] = None, + return_connection_password_encrypted: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_kms_key_id is None and 'awsKmsKeyId' in kwargs: + aws_kms_key_id = kwargs['awsKmsKeyId'] + if aws_kms_key_id is None: + raise TypeError("Missing 'aws_kms_key_id' argument") + if return_connection_password_encrypted is None and 'returnConnectionPasswordEncrypted' in kwargs: + return_connection_password_encrypted = kwargs['returnConnectionPasswordEncrypted'] + if return_connection_password_encrypted is None: + raise TypeError("Missing 'return_connection_password_encrypted' argument") + + _setter("aws_kms_key_id", aws_kms_key_id) + _setter("return_connection_password_encrypted", return_connection_password_encrypted) @property @pulumi.getter(name="awsKmsKeyId") @@ -4337,8 +5973,29 @@ def __init__(__self__, *, :param str catalog_encryption_mode: The encryption-at-rest mode for encrypting Data Catalog data. :param str sse_aws_kms_key_id: ARN of the AWS KMS key to use for encryption at rest. """ - pulumi.set(__self__, "catalog_encryption_mode", catalog_encryption_mode) - pulumi.set(__self__, "sse_aws_kms_key_id", sse_aws_kms_key_id) + GetDataCatalogEncryptionSettingsDataCatalogEncryptionSettingEncryptionAtRestResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_encryption_mode=catalog_encryption_mode, + sse_aws_kms_key_id=sse_aws_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_encryption_mode: Optional[str] = None, + sse_aws_kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_encryption_mode is None and 'catalogEncryptionMode' in kwargs: + catalog_encryption_mode = kwargs['catalogEncryptionMode'] + if catalog_encryption_mode is None: + raise TypeError("Missing 'catalog_encryption_mode' argument") + if sse_aws_kms_key_id is None and 'sseAwsKmsKeyId' in kwargs: + sse_aws_kms_key_id = kwargs['sseAwsKmsKeyId'] + if sse_aws_kms_key_id is None: + raise TypeError("Missing 'sse_aws_kms_key_id' argument") + + _setter("catalog_encryption_mode", catalog_encryption_mode) + _setter("sse_aws_kms_key_id", sse_aws_kms_key_id) @property @pulumi.getter(name="catalogEncryptionMode") @@ -4368,10 +6025,31 @@ def __init__(__self__, *, :param str target: ID of the node at which the edge ends. :param str target_parameter: Target of the edge. """ - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "target", target) + GetScriptDagEdgeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + target=target, + target_parameter=target_parameter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[str] = None, + target: Optional[str] = None, + target_parameter: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if target_parameter is None and 'targetParameter' in kwargs: + target_parameter = kwargs['targetParameter'] + + _setter("source", source) + _setter("target", target) if target_parameter is not None: - pulumi.set(__self__, "target_parameter", target_parameter) + _setter("target_parameter", target_parameter) @property @pulumi.getter @@ -4411,11 +6089,38 @@ def __init__(__self__, *, :param str node_type: Type of node this is. :param int line_number: Line number of the node. """ - pulumi.set(__self__, "args", args) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "node_type", node_type) + GetScriptDagNodeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + args=args, + id=id, + node_type=node_type, + line_number=line_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + args: Optional[Sequence['outputs.GetScriptDagNodeArgResult']] = None, + id: Optional[str] = None, + node_type: Optional[str] = None, + line_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if args is None: + raise TypeError("Missing 'args' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if node_type is None: + raise TypeError("Missing 'node_type' argument") + if line_number is None and 'lineNumber' in kwargs: + line_number = kwargs['lineNumber'] + + _setter("args", args) + _setter("id", id) + _setter("node_type", node_type) if line_number is not None: - pulumi.set(__self__, "line_number", line_number) + _setter("line_number", line_number) @property @pulumi.getter @@ -4461,10 +6166,29 @@ def __init__(__self__, *, :param str value: Value of the argument or property. :param bool param: Boolean if the value is used as a parameter. Defaults to `false`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + GetScriptDagNodeArgResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + param=param, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + param: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) if param is not None: - pulumi.set(__self__, "param", param) + _setter("param", param) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/glue/partition.py b/sdk/python/pulumi_aws/glue/partition.py index 93e39478a81..e64353711ff 100644 --- a/sdk/python/pulumi_aws/glue/partition.py +++ b/sdk/python/pulumi_aws/glue/partition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -30,15 +30,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Properties associated with this table, as a list of key-value pairs. :param pulumi.Input['PartitionStorageDescriptorArgs'] storage_descriptor: A storage descriptor object containing information about the physical storage of this table. You can refer to the [Glue Developer Guide](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-StorageDescriptor) for a full explanation of this object. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "partition_values", partition_values) - pulumi.set(__self__, "table_name", table_name) + PartitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + partition_values=partition_values, + table_name=table_name, + catalog_id=catalog_id, + parameters=parameters, + storage_descriptor=storage_descriptor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + partition_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + table_name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + storage_descriptor: Optional[pulumi.Input['PartitionStorageDescriptorArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if partition_values is None and 'partitionValues' in kwargs: + partition_values = kwargs['partitionValues'] + if partition_values is None: + raise TypeError("Missing 'partition_values' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if storage_descriptor is None and 'storageDescriptor' in kwargs: + storage_descriptor = kwargs['storageDescriptor'] + + _setter("database_name", database_name) + _setter("partition_values", partition_values) + _setter("table_name", table_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if storage_descriptor is not None: - pulumi.set(__self__, "storage_descriptor", storage_descriptor) + _setter("storage_descriptor", storage_descriptor) @property @pulumi.getter(name="databaseName") @@ -133,24 +170,67 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] partition_values: The values that define the partition. :param pulumi.Input['PartitionStorageDescriptorArgs'] storage_descriptor: A storage descriptor object containing information about the physical storage of this table. You can refer to the [Glue Developer Guide](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-StorageDescriptor) for a full explanation of this object. """ + _PartitionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + creation_time=creation_time, + database_name=database_name, + last_accessed_time=last_accessed_time, + last_analyzed_time=last_analyzed_time, + parameters=parameters, + partition_values=partition_values, + storage_descriptor=storage_descriptor, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + last_accessed_time: Optional[pulumi.Input[str]] = None, + last_analyzed_time: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + partition_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_descriptor: Optional[pulumi.Input['PartitionStorageDescriptorArgs']] = None, + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if last_accessed_time is None and 'lastAccessedTime' in kwargs: + last_accessed_time = kwargs['lastAccessedTime'] + if last_analyzed_time is None and 'lastAnalyzedTime' in kwargs: + last_analyzed_time = kwargs['lastAnalyzedTime'] + if partition_values is None and 'partitionValues' in kwargs: + partition_values = kwargs['partitionValues'] + if storage_descriptor is None and 'storageDescriptor' in kwargs: + storage_descriptor = kwargs['storageDescriptor'] + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if last_accessed_time is not None: - pulumi.set(__self__, "last_accessed_time", last_accessed_time) + _setter("last_accessed_time", last_accessed_time) if last_analyzed_time is not None: - pulumi.set(__self__, "last_analyzed_time", last_analyzed_time) + _setter("last_analyzed_time", last_analyzed_time) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if partition_values is not None: - pulumi.set(__self__, "partition_values", partition_values) + _setter("partition_values", partition_values) if storage_descriptor is not None: - pulumi.set(__self__, "storage_descriptor", storage_descriptor) + _setter("storage_descriptor", storage_descriptor) if table_name is not None: - pulumi.set(__self__, "table_name", table_name) + _setter("table_name", table_name) @property @pulumi.getter(name="catalogId") @@ -316,6 +396,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PartitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -344,6 +428,7 @@ def _internal_init(__self__, if partition_values is None and not opts.urn: raise TypeError("Missing required property 'partition_values'") __props__.__dict__["partition_values"] = partition_values + storage_descriptor = _utilities.configure(storage_descriptor, PartitionStorageDescriptorArgs, True) __props__.__dict__["storage_descriptor"] = storage_descriptor if table_name is None and not opts.urn: raise TypeError("Missing required property 'table_name'") diff --git a/sdk/python/pulumi_aws/glue/partition_index.py b/sdk/python/pulumi_aws/glue/partition_index.py index 199e29e37ca..d5c02fb976f 100644 --- a/sdk/python/pulumi_aws/glue/partition_index.py +++ b/sdk/python/pulumi_aws/glue/partition_index.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,11 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] table_name: Name of the table. For Hive compatibility, this must be entirely lowercase. :param pulumi.Input[str] catalog_id: The catalog ID where the table resides. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "partition_index", partition_index) - pulumi.set(__self__, "table_name", table_name) + PartitionIndexArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + partition_index=partition_index, + table_name=table_name, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + partition_index: Optional[pulumi.Input['PartitionIndexPartitionIndexArgs']] = None, + table_name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if partition_index is None and 'partitionIndex' in kwargs: + partition_index = kwargs['partitionIndex'] + if partition_index is None: + raise TypeError("Missing 'partition_index' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("database_name", database_name) + _setter("partition_index", partition_index) + _setter("table_name", table_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter(name="databaseName") @@ -96,14 +127,39 @@ def __init__(__self__, *, :param pulumi.Input['PartitionIndexPartitionIndexArgs'] partition_index: Configuration block for a partition index. See `partition_index` below. :param pulumi.Input[str] table_name: Name of the table. For Hive compatibility, this must be entirely lowercase. """ + _PartitionIndexState._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + partition_index=partition_index, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + partition_index: Optional[pulumi.Input['PartitionIndexPartitionIndexArgs']] = None, + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if partition_index is None and 'partitionIndex' in kwargs: + partition_index = kwargs['partitionIndex'] + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if partition_index is not None: - pulumi.set(__self__, "partition_index", partition_index) + _setter("partition_index", partition_index) if table_name is not None: - pulumi.set(__self__, "table_name", table_name) + _setter("table_name", table_name) @property @pulumi.getter(name="catalogId") @@ -373,6 +429,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PartitionIndexArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -395,6 +455,7 @@ def _internal_init(__self__, if database_name is None and not opts.urn: raise TypeError("Missing required property 'database_name'") __props__.__dict__["database_name"] = database_name + partition_index = _utilities.configure(partition_index, PartitionIndexPartitionIndexArgs, True) if partition_index is None and not opts.urn: raise TypeError("Missing required property 'partition_index'") __props__.__dict__["partition_index"] = partition_index diff --git a/sdk/python/pulumi_aws/glue/registry.py b/sdk/python/pulumi_aws/glue/registry.py index 57e69c6e9c4..8f44c11b945 100644 --- a/sdk/python/pulumi_aws/glue/registry.py +++ b/sdk/python/pulumi_aws/glue/registry.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RegistryArgs', 'Registry'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description of the registry. :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. """ - pulumi.set(__self__, "registry_name", registry_name) + RegistryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + registry_name=registry_name, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + registry_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if registry_name is None: + raise TypeError("Missing 'registry_name' argument") + + _setter("registry_name", registry_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="registryName") @@ -82,19 +101,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RegistryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + registry_name=registry_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + registry_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if registry_name is not None: - pulumi.set(__self__, "registry_name", registry_name) + _setter("registry_name", registry_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -231,6 +273,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegistryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/glue/resource_policy.py b/sdk/python/pulumi_aws/glue/resource_policy.py index a03a9bce025..86a4f33533d 100644 --- a/sdk/python/pulumi_aws/glue/resource_policy.py +++ b/sdk/python/pulumi_aws/glue/resource_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourcePolicyArgs', 'ResourcePolicy'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The policy to be applied to the aws glue data catalog. :param pulumi.Input[str] enable_hybrid: Indicates that you are using both methods to grant cross-account. Valid values are `TRUE` and `FALSE`. Note the provider will not perform drift detetction on this field as its not return on read. """ - pulumi.set(__self__, "policy", policy) + ResourcePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + enable_hybrid=enable_hybrid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + enable_hybrid: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if enable_hybrid is None and 'enableHybrid' in kwargs: + enable_hybrid = kwargs['enableHybrid'] + + _setter("policy", policy) if enable_hybrid is not None: - pulumi.set(__self__, "enable_hybrid", enable_hybrid) + _setter("enable_hybrid", enable_hybrid) @property @pulumi.getter @@ -60,10 +77,25 @@ def __init__(__self__, *, :param pulumi.Input[str] enable_hybrid: Indicates that you are using both methods to grant cross-account. Valid values are `TRUE` and `FALSE`. Note the provider will not perform drift detetction on this field as its not return on read. :param pulumi.Input[str] policy: The policy to be applied to the aws glue data catalog. """ + _ResourcePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_hybrid=enable_hybrid, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_hybrid: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_hybrid is None and 'enableHybrid' in kwargs: + enable_hybrid = kwargs['enableHybrid'] + if enable_hybrid is not None: - pulumi.set(__self__, "enable_hybrid", enable_hybrid) + _setter("enable_hybrid", enable_hybrid) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="enableHybrid") @@ -181,6 +213,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourcePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/glue/schema.py b/sdk/python/pulumi_aws/glue/schema.py index 038f48b5b5d..5c3ae58a42b 100644 --- a/sdk/python/pulumi_aws/glue/schema.py +++ b/sdk/python/pulumi_aws/glue/schema.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SchemaArgs', 'Schema'] @@ -31,16 +31,55 @@ def __init__(__self__, *, :param pulumi.Input[str] registry_arn: The ARN of the Glue Registry to create the schema in. :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. """ - pulumi.set(__self__, "compatibility", compatibility) - pulumi.set(__self__, "data_format", data_format) - pulumi.set(__self__, "schema_definition", schema_definition) - pulumi.set(__self__, "schema_name", schema_name) + SchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compatibility=compatibility, + data_format=data_format, + schema_definition=schema_definition, + schema_name=schema_name, + description=description, + registry_arn=registry_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compatibility: Optional[pulumi.Input[str]] = None, + data_format: Optional[pulumi.Input[str]] = None, + schema_definition: Optional[pulumi.Input[str]] = None, + schema_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + registry_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compatibility is None: + raise TypeError("Missing 'compatibility' argument") + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if data_format is None: + raise TypeError("Missing 'data_format' argument") + if schema_definition is None and 'schemaDefinition' in kwargs: + schema_definition = kwargs['schemaDefinition'] + if schema_definition is None: + raise TypeError("Missing 'schema_definition' argument") + if schema_name is None and 'schemaName' in kwargs: + schema_name = kwargs['schemaName'] + if schema_name is None: + raise TypeError("Missing 'schema_name' argument") + if registry_arn is None and 'registryArn' in kwargs: + registry_arn = kwargs['registryArn'] + + _setter("compatibility", compatibility) + _setter("data_format", data_format) + _setter("schema_definition", schema_definition) + _setter("schema_name", schema_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if registry_arn is not None: - pulumi.set(__self__, "registry_arn", registry_arn) + _setter("registry_arn", registry_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -159,35 +198,88 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _SchemaState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + compatibility=compatibility, + data_format=data_format, + description=description, + latest_schema_version=latest_schema_version, + next_schema_version=next_schema_version, + registry_arn=registry_arn, + registry_name=registry_name, + schema_checkpoint=schema_checkpoint, + schema_definition=schema_definition, + schema_name=schema_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + compatibility: Optional[pulumi.Input[str]] = None, + data_format: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + latest_schema_version: Optional[pulumi.Input[int]] = None, + next_schema_version: Optional[pulumi.Input[int]] = None, + registry_arn: Optional[pulumi.Input[str]] = None, + registry_name: Optional[pulumi.Input[str]] = None, + schema_checkpoint: Optional[pulumi.Input[int]] = None, + schema_definition: Optional[pulumi.Input[str]] = None, + schema_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_format is None and 'dataFormat' in kwargs: + data_format = kwargs['dataFormat'] + if latest_schema_version is None and 'latestSchemaVersion' in kwargs: + latest_schema_version = kwargs['latestSchemaVersion'] + if next_schema_version is None and 'nextSchemaVersion' in kwargs: + next_schema_version = kwargs['nextSchemaVersion'] + if registry_arn is None and 'registryArn' in kwargs: + registry_arn = kwargs['registryArn'] + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if schema_checkpoint is None and 'schemaCheckpoint' in kwargs: + schema_checkpoint = kwargs['schemaCheckpoint'] + if schema_definition is None and 'schemaDefinition' in kwargs: + schema_definition = kwargs['schemaDefinition'] + if schema_name is None and 'schemaName' in kwargs: + schema_name = kwargs['schemaName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if compatibility is not None: - pulumi.set(__self__, "compatibility", compatibility) + _setter("compatibility", compatibility) if data_format is not None: - pulumi.set(__self__, "data_format", data_format) + _setter("data_format", data_format) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if latest_schema_version is not None: - pulumi.set(__self__, "latest_schema_version", latest_schema_version) + _setter("latest_schema_version", latest_schema_version) if next_schema_version is not None: - pulumi.set(__self__, "next_schema_version", next_schema_version) + _setter("next_schema_version", next_schema_version) if registry_arn is not None: - pulumi.set(__self__, "registry_arn", registry_arn) + _setter("registry_arn", registry_arn) if registry_name is not None: - pulumi.set(__self__, "registry_name", registry_name) + _setter("registry_name", registry_name) if schema_checkpoint is not None: - pulumi.set(__self__, "schema_checkpoint", schema_checkpoint) + _setter("schema_checkpoint", schema_checkpoint) if schema_definition is not None: - pulumi.set(__self__, "schema_definition", schema_definition) + _setter("schema_definition", schema_definition) if schema_name is not None: - pulumi.set(__self__, "schema_name", schema_name) + _setter("schema_name", schema_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -438,6 +530,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SchemaArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/glue/security_configuration.py b/sdk/python/pulumi_aws/glue/security_configuration.py index 42603d2238e..99babab7b8a 100644 --- a/sdk/python/pulumi_aws/glue/security_configuration.py +++ b/sdk/python/pulumi_aws/glue/security_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,26 @@ def __init__(__self__, *, :param pulumi.Input['SecurityConfigurationEncryptionConfigurationArgs'] encryption_configuration: Configuration block containing encryption configuration. Detailed below. :param pulumi.Input[str] name: Name of the security configuration. """ - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + SecurityConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_configuration=encryption_configuration, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_configuration: Optional[pulumi.Input['SecurityConfigurationEncryptionConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if encryption_configuration is None: + raise TypeError("Missing 'encryption_configuration' argument") + + _setter("encryption_configuration", encryption_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="encryptionConfiguration") @@ -62,10 +79,25 @@ def __init__(__self__, *, :param pulumi.Input['SecurityConfigurationEncryptionConfigurationArgs'] encryption_configuration: Configuration block containing encryption configuration. Detailed below. :param pulumi.Input[str] name: Name of the security configuration. """ + _SecurityConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_configuration=encryption_configuration, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_configuration: Optional[pulumi.Input['SecurityConfigurationEncryptionConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="encryptionConfiguration") @@ -183,6 +215,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecurityConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -199,6 +235,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = SecurityConfigurationArgs.__new__(SecurityConfigurationArgs) + encryption_configuration = _utilities.configure(encryption_configuration, SecurityConfigurationEncryptionConfigurationArgs, True) if encryption_configuration is None and not opts.urn: raise TypeError("Missing required property 'encryption_configuration'") __props__.__dict__["encryption_configuration"] = encryption_configuration diff --git a/sdk/python/pulumi_aws/glue/trigger.py b/sdk/python/pulumi_aws/glue/trigger.py index bf296af6644..f11a25e9b2a 100644 --- a/sdk/python/pulumi_aws/glue/trigger.py +++ b/sdk/python/pulumi_aws/glue/trigger.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,26 +41,67 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] workflow_name: A workflow to which the trigger should be associated to. Every workflow graph (DAG) needs a starting trigger (`ON_DEMAND` or `SCHEDULED` type) and can contain multiple additional `CONDITIONAL` triggers. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "type", type) + TriggerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + type=type, + description=description, + enabled=enabled, + event_batching_conditions=event_batching_conditions, + name=name, + predicate=predicate, + schedule=schedule, + start_on_creation=start_on_creation, + tags=tags, + workflow_name=workflow_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['TriggerActionArgs']]]] = None, + type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_batching_conditions: Optional[pulumi.Input[Sequence[pulumi.Input['TriggerEventBatchingConditionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + predicate: Optional[pulumi.Input['TriggerPredicateArgs']] = None, + schedule: Optional[pulumi.Input[str]] = None, + start_on_creation: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workflow_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if event_batching_conditions is None and 'eventBatchingConditions' in kwargs: + event_batching_conditions = kwargs['eventBatchingConditions'] + if start_on_creation is None and 'startOnCreation' in kwargs: + start_on_creation = kwargs['startOnCreation'] + if workflow_name is None and 'workflowName' in kwargs: + workflow_name = kwargs['workflowName'] + + _setter("actions", actions) + _setter("type", type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_batching_conditions is not None: - pulumi.set(__self__, "event_batching_conditions", event_batching_conditions) + _setter("event_batching_conditions", event_batching_conditions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicate is not None: - pulumi.set(__self__, "predicate", predicate) + _setter("predicate", predicate) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if start_on_creation is not None: - pulumi.set(__self__, "start_on_creation", start_on_creation) + _setter("start_on_creation", start_on_creation) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if workflow_name is not None: - pulumi.set(__self__, "workflow_name", workflow_name) + _setter("workflow_name", workflow_name) @property @pulumi.getter @@ -229,37 +270,82 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of trigger. Valid values are `CONDITIONAL`, `EVENT`, `ON_DEMAND`, and `SCHEDULED`. :param pulumi.Input[str] workflow_name: A workflow to which the trigger should be associated to. Every workflow graph (DAG) needs a starting trigger (`ON_DEMAND` or `SCHEDULED` type) and can contain multiple additional `CONDITIONAL` triggers. """ + _TriggerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + arn=arn, + description=description, + enabled=enabled, + event_batching_conditions=event_batching_conditions, + name=name, + predicate=predicate, + schedule=schedule, + start_on_creation=start_on_creation, + state=state, + tags=tags, + tags_all=tags_all, + type=type, + workflow_name=workflow_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['TriggerActionArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_batching_conditions: Optional[pulumi.Input[Sequence[pulumi.Input['TriggerEventBatchingConditionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + predicate: Optional[pulumi.Input['TriggerPredicateArgs']] = None, + schedule: Optional[pulumi.Input[str]] = None, + start_on_creation: Optional[pulumi.Input[bool]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + workflow_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_batching_conditions is None and 'eventBatchingConditions' in kwargs: + event_batching_conditions = kwargs['eventBatchingConditions'] + if start_on_creation is None and 'startOnCreation' in kwargs: + start_on_creation = kwargs['startOnCreation'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if workflow_name is None and 'workflowName' in kwargs: + workflow_name = kwargs['workflowName'] + if actions is not None: - pulumi.set(__self__, "actions", actions) + _setter("actions", actions) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_batching_conditions is not None: - pulumi.set(__self__, "event_batching_conditions", event_batching_conditions) + _setter("event_batching_conditions", event_batching_conditions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicate is not None: - pulumi.set(__self__, "predicate", predicate) + _setter("predicate", predicate) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if start_on_creation is not None: - pulumi.set(__self__, "start_on_creation", start_on_creation) + _setter("start_on_creation", start_on_creation) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if workflow_name is not None: - pulumi.set(__self__, "workflow_name", workflow_name) + _setter("workflow_name", workflow_name) @property @pulumi.getter @@ -672,6 +758,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TriggerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -704,6 +794,7 @@ def _internal_init(__self__, __props__.__dict__["enabled"] = enabled __props__.__dict__["event_batching_conditions"] = event_batching_conditions __props__.__dict__["name"] = name + predicate = _utilities.configure(predicate, TriggerPredicateArgs, True) __props__.__dict__["predicate"] = predicate __props__.__dict__["schedule"] = schedule __props__.__dict__["start_on_creation"] = start_on_creation diff --git a/sdk/python/pulumi_aws/glue/user_defined_function.py b/sdk/python/pulumi_aws/glue/user_defined_function.py index c15f8a77a98..d1a8dd13323 100644 --- a/sdk/python/pulumi_aws/glue/user_defined_function.py +++ b/sdk/python/pulumi_aws/glue/user_defined_function.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,16 +33,59 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the function. :param pulumi.Input[Sequence[pulumi.Input['UserDefinedFunctionResourceUriArgs']]] resource_uris: The configuration block for Resource URIs. See resource uris below for more details. """ - pulumi.set(__self__, "class_name", class_name) - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "owner_name", owner_name) - pulumi.set(__self__, "owner_type", owner_type) + UserDefinedFunctionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + class_name=class_name, + database_name=database_name, + owner_name=owner_name, + owner_type=owner_type, + catalog_id=catalog_id, + name=name, + resource_uris=resource_uris, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + class_name: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + owner_name: Optional[pulumi.Input[str]] = None, + owner_type: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_uris: Optional[pulumi.Input[Sequence[pulumi.Input['UserDefinedFunctionResourceUriArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if class_name is None and 'className' in kwargs: + class_name = kwargs['className'] + if class_name is None: + raise TypeError("Missing 'class_name' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if owner_name is None and 'ownerName' in kwargs: + owner_name = kwargs['ownerName'] + if owner_name is None: + raise TypeError("Missing 'owner_name' argument") + if owner_type is None and 'ownerType' in kwargs: + owner_type = kwargs['ownerType'] + if owner_type is None: + raise TypeError("Missing 'owner_type' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if resource_uris is None and 'resourceUris' in kwargs: + resource_uris = kwargs['resourceUris'] + + _setter("class_name", class_name) + _setter("database_name", database_name) + _setter("owner_name", owner_name) + _setter("owner_type", owner_type) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_uris is not None: - pulumi.set(__self__, "resource_uris", resource_uris) + _setter("resource_uris", resource_uris) @property @pulumi.getter(name="className") @@ -153,24 +196,65 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_type: The owner type. can be one of `USER`, `ROLE`, and `GROUP`. :param pulumi.Input[Sequence[pulumi.Input['UserDefinedFunctionResourceUriArgs']]] resource_uris: The configuration block for Resource URIs. See resource uris below for more details. """ + _UserDefinedFunctionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_id=catalog_id, + class_name=class_name, + create_time=create_time, + database_name=database_name, + name=name, + owner_name=owner_name, + owner_type=owner_type, + resource_uris=resource_uris, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + class_name: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_name: Optional[pulumi.Input[str]] = None, + owner_type: Optional[pulumi.Input[str]] = None, + resource_uris: Optional[pulumi.Input[Sequence[pulumi.Input['UserDefinedFunctionResourceUriArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if class_name is None and 'className' in kwargs: + class_name = kwargs['className'] + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if owner_name is None and 'ownerName' in kwargs: + owner_name = kwargs['ownerName'] + if owner_type is None and 'ownerType' in kwargs: + owner_type = kwargs['ownerType'] + if resource_uris is None and 'resourceUris' in kwargs: + resource_uris = kwargs['resourceUris'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if class_name is not None: - pulumi.set(__self__, "class_name", class_name) + _setter("class_name", class_name) if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_name is not None: - pulumi.set(__self__, "owner_name", owner_name) + _setter("owner_name", owner_name) if owner_type is not None: - pulumi.set(__self__, "owner_type", owner_type) + _setter("owner_type", owner_type) if resource_uris is not None: - pulumi.set(__self__, "resource_uris", resource_uris) + _setter("resource_uris", resource_uris) @property @pulumi.getter @@ -380,6 +464,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserDefinedFunctionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/glue/workflow.py b/sdk/python/pulumi_aws/glue/workflow.py index ce8fbe27fb2..d358fe5b5c9 100644 --- a/sdk/python/pulumi_aws/glue/workflow.py +++ b/sdk/python/pulumi_aws/glue/workflow.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['WorkflowArgs', 'Workflow'] @@ -27,16 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name you assign to this workflow. :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. """ + WorkflowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_run_properties=default_run_properties, + description=description, + max_concurrent_runs=max_concurrent_runs, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_run_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + max_concurrent_runs: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_run_properties is None and 'defaultRunProperties' in kwargs: + default_run_properties = kwargs['defaultRunProperties'] + if max_concurrent_runs is None and 'maxConcurrentRuns' in kwargs: + max_concurrent_runs = kwargs['maxConcurrentRuns'] + if default_run_properties is not None: - pulumi.set(__self__, "default_run_properties", default_run_properties) + _setter("default_run_properties", default_run_properties) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if max_concurrent_runs is not None: - pulumi.set(__self__, "max_concurrent_runs", max_concurrent_runs) + _setter("max_concurrent_runs", max_concurrent_runs) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultRunProperties") @@ -119,23 +142,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _WorkflowState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_run_properties=default_run_properties, + description=description, + max_concurrent_runs=max_concurrent_runs, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_run_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + max_concurrent_runs: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_run_properties is None and 'defaultRunProperties' in kwargs: + default_run_properties = kwargs['defaultRunProperties'] + if max_concurrent_runs is None and 'maxConcurrentRuns' in kwargs: + max_concurrent_runs = kwargs['maxConcurrentRuns'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_run_properties is not None: - pulumi.set(__self__, "default_run_properties", default_run_properties) + _setter("default_run_properties", default_run_properties) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if max_concurrent_runs is not None: - pulumi.set(__self__, "max_concurrent_runs", max_concurrent_runs) + _setter("max_concurrent_runs", max_concurrent_runs) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -340,6 +392,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkflowArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/grafana/_inputs.py b/sdk/python/pulumi_aws/grafana/_inputs.py index 82c92e09e55..944fdf2b8ba 100644 --- a/sdk/python/pulumi_aws/grafana/_inputs.py +++ b/sdk/python/pulumi_aws/grafana/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] prefix_list_ids: An array of prefix list IDs. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpce_ids: An array of Amazon VPC endpoint IDs for the workspace. The only VPC endpoints that can be specified here are interface VPC endpoints for Grafana workspaces (using the com.amazonaws.[region].grafana-workspace service endpoint). Other VPC endpoints will be ignored. """ - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) - pulumi.set(__self__, "vpce_ids", vpce_ids) + WorkspaceNetworkAccessControlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix_list_ids=prefix_list_ids, + vpce_ids=vpce_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpce_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if prefix_list_ids is None: + raise TypeError("Missing 'prefix_list_ids' argument") + if vpce_ids is None and 'vpceIds' in kwargs: + vpce_ids = kwargs['vpceIds'] + if vpce_ids is None: + raise TypeError("Missing 'vpce_ids' argument") + + _setter("prefix_list_ids", prefix_list_ids) + _setter("vpce_ids", vpce_ids) @property @pulumi.getter(name="prefixListIds") @@ -60,8 +81,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The list of Amazon EC2 security group IDs attached to the Amazon VPC for your Grafana workspace to connect. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The list of Amazon EC2 subnet IDs created in the Amazon VPC for your Grafana workspace to connect. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) + WorkspaceVpcConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/grafana/get_workspace.py b/sdk/python/pulumi_aws/grafana/get_workspace.py index a4a51049187..ad24dd388e6 100644 --- a/sdk/python/pulumi_aws/grafana/get_workspace.py +++ b/sdk/python/pulumi_aws/grafana/get_workspace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/grafana/license_association.py b/sdk/python/pulumi_aws/grafana/license_association.py index 998f9ae356a..ca90b53b820 100644 --- a/sdk/python/pulumi_aws/grafana/license_association.py +++ b/sdk/python/pulumi_aws/grafana/license_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LicenseAssociationArgs', 'LicenseAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] license_type: The type of license for the workspace license association. Valid values are `ENTERPRISE` and `ENTERPRISE_FREE_TRIAL`. :param pulumi.Input[str] workspace_id: The workspace id. """ - pulumi.set(__self__, "license_type", license_type) - pulumi.set(__self__, "workspace_id", workspace_id) + LicenseAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + license_type=license_type, + workspace_id=workspace_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + license_type: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if license_type is None and 'licenseType' in kwargs: + license_type = kwargs['licenseType'] + if license_type is None: + raise TypeError("Missing 'license_type' argument") + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if workspace_id is None: + raise TypeError("Missing 'workspace_id' argument") + + _setter("license_type", license_type) + _setter("workspace_id", workspace_id) @property @pulumi.getter(name="licenseType") @@ -63,14 +84,39 @@ def __init__(__self__, *, :param pulumi.Input[str] license_type: The type of license for the workspace license association. Valid values are `ENTERPRISE` and `ENTERPRISE_FREE_TRIAL`. :param pulumi.Input[str] workspace_id: The workspace id. """ + _LicenseAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + free_trial_expiration=free_trial_expiration, + license_expiration=license_expiration, + license_type=license_type, + workspace_id=workspace_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + free_trial_expiration: Optional[pulumi.Input[str]] = None, + license_expiration: Optional[pulumi.Input[str]] = None, + license_type: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if free_trial_expiration is None and 'freeTrialExpiration' in kwargs: + free_trial_expiration = kwargs['freeTrialExpiration'] + if license_expiration is None and 'licenseExpiration' in kwargs: + license_expiration = kwargs['licenseExpiration'] + if license_type is None and 'licenseType' in kwargs: + license_type = kwargs['licenseType'] + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if free_trial_expiration is not None: - pulumi.set(__self__, "free_trial_expiration", free_trial_expiration) + _setter("free_trial_expiration", free_trial_expiration) if license_expiration is not None: - pulumi.set(__self__, "license_expiration", license_expiration) + _setter("license_expiration", license_expiration) if license_type is not None: - pulumi.set(__self__, "license_type", license_type) + _setter("license_type", license_type) if workspace_id is not None: - pulumi.set(__self__, "workspace_id", workspace_id) + _setter("workspace_id", workspace_id) @property @pulumi.getter(name="freeTrialExpiration") @@ -230,6 +276,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LicenseAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/grafana/outputs.py b/sdk/python/pulumi_aws/grafana/outputs.py index 428e5ddd3f8..24f79b5cb71 100644 --- a/sdk/python/pulumi_aws/grafana/outputs.py +++ b/sdk/python/pulumi_aws/grafana/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -42,8 +42,29 @@ def __init__(__self__, *, :param Sequence[str] prefix_list_ids: An array of prefix list IDs. :param Sequence[str] vpce_ids: An array of Amazon VPC endpoint IDs for the workspace. The only VPC endpoints that can be specified here are interface VPC endpoints for Grafana workspaces (using the com.amazonaws.[region].grafana-workspace service endpoint). Other VPC endpoints will be ignored. """ - pulumi.set(__self__, "prefix_list_ids", prefix_list_ids) - pulumi.set(__self__, "vpce_ids", vpce_ids) + WorkspaceNetworkAccessControl._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix_list_ids=prefix_list_ids, + vpce_ids=vpce_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix_list_ids: Optional[Sequence[str]] = None, + vpce_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix_list_ids is None and 'prefixListIds' in kwargs: + prefix_list_ids = kwargs['prefixListIds'] + if prefix_list_ids is None: + raise TypeError("Missing 'prefix_list_ids' argument") + if vpce_ids is None and 'vpceIds' in kwargs: + vpce_ids = kwargs['vpceIds'] + if vpce_ids is None: + raise TypeError("Missing 'vpce_ids' argument") + + _setter("prefix_list_ids", prefix_list_ids) + _setter("vpce_ids", vpce_ids) @property @pulumi.getter(name="prefixListIds") @@ -90,8 +111,29 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: The list of Amazon EC2 security group IDs attached to the Amazon VPC for your Grafana workspace to connect. :param Sequence[str] subnet_ids: The list of Amazon EC2 subnet IDs created in the Amazon VPC for your Grafana workspace to connect. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) + WorkspaceVpcConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/grafana/role_association.py b/sdk/python/pulumi_aws/grafana/role_association.py index 119885ee368..4a971e972cc 100644 --- a/sdk/python/pulumi_aws/grafana/role_association.py +++ b/sdk/python/pulumi_aws/grafana/role_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RoleAssociationArgs', 'RoleAssociation'] @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] group_ids: The AWS SSO group ids to be assigned the role given in `role`. :param pulumi.Input[Sequence[pulumi.Input[str]]] user_ids: The AWS SSO user ids to be assigned the role given in `role`. """ - pulumi.set(__self__, "role", role) - pulumi.set(__self__, "workspace_id", workspace_id) + RoleAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role=role, + workspace_id=workspace_id, + group_ids=group_ids, + user_ids=user_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role is None: + raise TypeError("Missing 'role' argument") + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if workspace_id is None: + raise TypeError("Missing 'workspace_id' argument") + if group_ids is None and 'groupIds' in kwargs: + group_ids = kwargs['groupIds'] + if user_ids is None and 'userIds' in kwargs: + user_ids = kwargs['userIds'] + + _setter("role", role) + _setter("workspace_id", workspace_id) if group_ids is not None: - pulumi.set(__self__, "group_ids", group_ids) + _setter("group_ids", group_ids) if user_ids is not None: - pulumi.set(__self__, "user_ids", user_ids) + _setter("user_ids", user_ids) @property @pulumi.getter @@ -101,14 +128,37 @@ def __init__(__self__, *, The following arguments are optional: """ + _RoleAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_ids=group_ids, + role=role, + user_ids=user_ids, + workspace_id=workspace_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role: Optional[pulumi.Input[str]] = None, + user_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_ids is None and 'groupIds' in kwargs: + group_ids = kwargs['groupIds'] + if user_ids is None and 'userIds' in kwargs: + user_ids = kwargs['userIds'] + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if group_ids is not None: - pulumi.set(__self__, "group_ids", group_ids) + _setter("group_ids", group_ids) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) if user_ids is not None: - pulumi.set(__self__, "user_ids", user_ids) + _setter("user_ids", user_ids) if workspace_id is not None: - pulumi.set(__self__, "workspace_id", workspace_id) + _setter("workspace_id", workspace_id) @property @pulumi.getter(name="groupIds") @@ -268,6 +318,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RoleAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/grafana/workspace.py b/sdk/python/pulumi_aws/grafana/workspace.py index 80bfe69e5ba..bf8e35bdb95 100644 --- a/sdk/python/pulumi_aws/grafana/workspace.py +++ b/sdk/python/pulumi_aws/grafana/workspace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -53,35 +53,106 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input['WorkspaceVpcConfigurationArgs'] vpc_configuration: The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to. See VPC Configuration below. """ - pulumi.set(__self__, "account_access_type", account_access_type) - pulumi.set(__self__, "authentication_providers", authentication_providers) - pulumi.set(__self__, "permission_type", permission_type) + WorkspaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_access_type=account_access_type, + authentication_providers=authentication_providers, + permission_type=permission_type, + configuration=configuration, + data_sources=data_sources, + description=description, + grafana_version=grafana_version, + name=name, + network_access_control=network_access_control, + notification_destinations=notification_destinations, + organization_role_name=organization_role_name, + organizational_units=organizational_units, + role_arn=role_arn, + stack_set_name=stack_set_name, + tags=tags, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_access_type: Optional[pulumi.Input[str]] = None, + authentication_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + permission_type: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input[str]] = None, + data_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + grafana_version: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + network_access_control: Optional[pulumi.Input['WorkspaceNetworkAccessControlArgs']] = None, + notification_destinations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + organization_role_name: Optional[pulumi.Input[str]] = None, + organizational_units: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + stack_set_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_configuration: Optional[pulumi.Input['WorkspaceVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_access_type is None and 'accountAccessType' in kwargs: + account_access_type = kwargs['accountAccessType'] + if account_access_type is None: + raise TypeError("Missing 'account_access_type' argument") + if authentication_providers is None and 'authenticationProviders' in kwargs: + authentication_providers = kwargs['authenticationProviders'] + if authentication_providers is None: + raise TypeError("Missing 'authentication_providers' argument") + if permission_type is None and 'permissionType' in kwargs: + permission_type = kwargs['permissionType'] + if permission_type is None: + raise TypeError("Missing 'permission_type' argument") + if data_sources is None and 'dataSources' in kwargs: + data_sources = kwargs['dataSources'] + if grafana_version is None and 'grafanaVersion' in kwargs: + grafana_version = kwargs['grafanaVersion'] + if network_access_control is None and 'networkAccessControl' in kwargs: + network_access_control = kwargs['networkAccessControl'] + if notification_destinations is None and 'notificationDestinations' in kwargs: + notification_destinations = kwargs['notificationDestinations'] + if organization_role_name is None and 'organizationRoleName' in kwargs: + organization_role_name = kwargs['organizationRoleName'] + if organizational_units is None and 'organizationalUnits' in kwargs: + organizational_units = kwargs['organizationalUnits'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if stack_set_name is None and 'stackSetName' in kwargs: + stack_set_name = kwargs['stackSetName'] + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + + _setter("account_access_type", account_access_type) + _setter("authentication_providers", authentication_providers) + _setter("permission_type", permission_type) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if data_sources is not None: - pulumi.set(__self__, "data_sources", data_sources) + _setter("data_sources", data_sources) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if grafana_version is not None: - pulumi.set(__self__, "grafana_version", grafana_version) + _setter("grafana_version", grafana_version) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_access_control is not None: - pulumi.set(__self__, "network_access_control", network_access_control) + _setter("network_access_control", network_access_control) if notification_destinations is not None: - pulumi.set(__self__, "notification_destinations", notification_destinations) + _setter("notification_destinations", notification_destinations) if organization_role_name is not None: - pulumi.set(__self__, "organization_role_name", organization_role_name) + _setter("organization_role_name", organization_role_name) if organizational_units is not None: - pulumi.set(__self__, "organizational_units", organizational_units) + _setter("organizational_units", organizational_units) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if stack_set_name is not None: - pulumi.set(__self__, "stack_set_name", stack_set_name) + _setter("stack_set_name", stack_set_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter(name="accountAccessType") @@ -325,49 +396,126 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input['WorkspaceVpcConfigurationArgs'] vpc_configuration: The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to. See VPC Configuration below. """ + _WorkspaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_access_type=account_access_type, + arn=arn, + authentication_providers=authentication_providers, + configuration=configuration, + data_sources=data_sources, + description=description, + endpoint=endpoint, + grafana_version=grafana_version, + name=name, + network_access_control=network_access_control, + notification_destinations=notification_destinations, + organization_role_name=organization_role_name, + organizational_units=organizational_units, + permission_type=permission_type, + role_arn=role_arn, + saml_configuration_status=saml_configuration_status, + stack_set_name=stack_set_name, + tags=tags, + tags_all=tags_all, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_access_type: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + authentication_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + configuration: Optional[pulumi.Input[str]] = None, + data_sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + grafana_version: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + network_access_control: Optional[pulumi.Input['WorkspaceNetworkAccessControlArgs']] = None, + notification_destinations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + organization_role_name: Optional[pulumi.Input[str]] = None, + organizational_units: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + permission_type: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + saml_configuration_status: Optional[pulumi.Input[str]] = None, + stack_set_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_configuration: Optional[pulumi.Input['WorkspaceVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_access_type is None and 'accountAccessType' in kwargs: + account_access_type = kwargs['accountAccessType'] + if authentication_providers is None and 'authenticationProviders' in kwargs: + authentication_providers = kwargs['authenticationProviders'] + if data_sources is None and 'dataSources' in kwargs: + data_sources = kwargs['dataSources'] + if grafana_version is None and 'grafanaVersion' in kwargs: + grafana_version = kwargs['grafanaVersion'] + if network_access_control is None and 'networkAccessControl' in kwargs: + network_access_control = kwargs['networkAccessControl'] + if notification_destinations is None and 'notificationDestinations' in kwargs: + notification_destinations = kwargs['notificationDestinations'] + if organization_role_name is None and 'organizationRoleName' in kwargs: + organization_role_name = kwargs['organizationRoleName'] + if organizational_units is None and 'organizationalUnits' in kwargs: + organizational_units = kwargs['organizationalUnits'] + if permission_type is None and 'permissionType' in kwargs: + permission_type = kwargs['permissionType'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if saml_configuration_status is None and 'samlConfigurationStatus' in kwargs: + saml_configuration_status = kwargs['samlConfigurationStatus'] + if stack_set_name is None and 'stackSetName' in kwargs: + stack_set_name = kwargs['stackSetName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + if account_access_type is not None: - pulumi.set(__self__, "account_access_type", account_access_type) + _setter("account_access_type", account_access_type) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_providers is not None: - pulumi.set(__self__, "authentication_providers", authentication_providers) + _setter("authentication_providers", authentication_providers) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if data_sources is not None: - pulumi.set(__self__, "data_sources", data_sources) + _setter("data_sources", data_sources) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if grafana_version is not None: - pulumi.set(__self__, "grafana_version", grafana_version) + _setter("grafana_version", grafana_version) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_access_control is not None: - pulumi.set(__self__, "network_access_control", network_access_control) + _setter("network_access_control", network_access_control) if notification_destinations is not None: - pulumi.set(__self__, "notification_destinations", notification_destinations) + _setter("notification_destinations", notification_destinations) if organization_role_name is not None: - pulumi.set(__self__, "organization_role_name", organization_role_name) + _setter("organization_role_name", organization_role_name) if organizational_units is not None: - pulumi.set(__self__, "organizational_units", organizational_units) + _setter("organizational_units", organizational_units) if permission_type is not None: - pulumi.set(__self__, "permission_type", permission_type) + _setter("permission_type", permission_type) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if saml_configuration_status is not None: - pulumi.set(__self__, "saml_configuration_status", saml_configuration_status) + _setter("saml_configuration_status", saml_configuration_status) if stack_set_name is not None: - pulumi.set(__self__, "stack_set_name", stack_set_name) + _setter("stack_set_name", stack_set_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter(name="accountAccessType") @@ -745,6 +893,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkspaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -786,6 +938,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["grafana_version"] = grafana_version __props__.__dict__["name"] = name + network_access_control = _utilities.configure(network_access_control, WorkspaceNetworkAccessControlArgs, True) __props__.__dict__["network_access_control"] = network_access_control __props__.__dict__["notification_destinations"] = notification_destinations __props__.__dict__["organization_role_name"] = organization_role_name @@ -796,6 +949,7 @@ def _internal_init(__self__, __props__.__dict__["role_arn"] = role_arn __props__.__dict__["stack_set_name"] = stack_set_name __props__.__dict__["tags"] = tags + vpc_configuration = _utilities.configure(vpc_configuration, WorkspaceVpcConfigurationArgs, True) __props__.__dict__["vpc_configuration"] = vpc_configuration __props__.__dict__["arn"] = None __props__.__dict__["endpoint"] = None diff --git a/sdk/python/pulumi_aws/grafana/workspace_api_key.py b/sdk/python/pulumi_aws/grafana/workspace_api_key.py index 3dafc204344..524afeca755 100644 --- a/sdk/python/pulumi_aws/grafana/workspace_api_key.py +++ b/sdk/python/pulumi_aws/grafana/workspace_api_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['WorkspaceApiKeyArgs', 'WorkspaceApiKey'] @@ -25,10 +25,43 @@ def __init__(__self__, *, :param pulumi.Input[int] seconds_to_live: Specifies the time in seconds until the API key expires. Keys can be valid for up to 30 days. :param pulumi.Input[str] workspace_id: The ID of the workspace that the API key is valid for. """ - pulumi.set(__self__, "key_name", key_name) - pulumi.set(__self__, "key_role", key_role) - pulumi.set(__self__, "seconds_to_live", seconds_to_live) - pulumi.set(__self__, "workspace_id", workspace_id) + WorkspaceApiKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_name=key_name, + key_role=key_role, + seconds_to_live=seconds_to_live, + workspace_id=workspace_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_name: Optional[pulumi.Input[str]] = None, + key_role: Optional[pulumi.Input[str]] = None, + seconds_to_live: Optional[pulumi.Input[int]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if key_name is None: + raise TypeError("Missing 'key_name' argument") + if key_role is None and 'keyRole' in kwargs: + key_role = kwargs['keyRole'] + if key_role is None: + raise TypeError("Missing 'key_role' argument") + if seconds_to_live is None and 'secondsToLive' in kwargs: + seconds_to_live = kwargs['secondsToLive'] + if seconds_to_live is None: + raise TypeError("Missing 'seconds_to_live' argument") + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if workspace_id is None: + raise TypeError("Missing 'workspace_id' argument") + + _setter("key_name", key_name) + _setter("key_role", key_role) + _setter("seconds_to_live", seconds_to_live) + _setter("workspace_id", workspace_id) @property @pulumi.getter(name="keyName") @@ -95,16 +128,43 @@ def __init__(__self__, *, :param pulumi.Input[int] seconds_to_live: Specifies the time in seconds until the API key expires. Keys can be valid for up to 30 days. :param pulumi.Input[str] workspace_id: The ID of the workspace that the API key is valid for. """ + _WorkspaceApiKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + key_name=key_name, + key_role=key_role, + seconds_to_live=seconds_to_live, + workspace_id=workspace_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + key_name: Optional[pulumi.Input[str]] = None, + key_role: Optional[pulumi.Input[str]] = None, + seconds_to_live: Optional[pulumi.Input[int]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_name is None and 'keyName' in kwargs: + key_name = kwargs['keyName'] + if key_role is None and 'keyRole' in kwargs: + key_role = kwargs['keyRole'] + if seconds_to_live is None and 'secondsToLive' in kwargs: + seconds_to_live = kwargs['secondsToLive'] + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if key_name is not None: - pulumi.set(__self__, "key_name", key_name) + _setter("key_name", key_name) if key_role is not None: - pulumi.set(__self__, "key_role", key_role) + _setter("key_role", key_role) if seconds_to_live is not None: - pulumi.set(__self__, "seconds_to_live", seconds_to_live) + _setter("seconds_to_live", seconds_to_live) if workspace_id is not None: - pulumi.set(__self__, "workspace_id", workspace_id) + _setter("workspace_id", workspace_id) @property @pulumi.getter @@ -234,6 +294,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkspaceApiKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/grafana/workspace_saml_configuration.py b/sdk/python/pulumi_aws/grafana/workspace_saml_configuration.py index 0a33c30c681..6300f9cc063 100644 --- a/sdk/python/pulumi_aws/grafana/workspace_saml_configuration.py +++ b/sdk/python/pulumi_aws/grafana/workspace_saml_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['WorkspaceSamlConfigurationArgs', 'WorkspaceSamlConfiguration'] @@ -45,30 +45,95 @@ def __init__(__self__, *, :param pulumi.Input[str] org_assertion: The org assertion. :param pulumi.Input[str] role_assertion: The role assertion. """ - pulumi.set(__self__, "editor_role_values", editor_role_values) - pulumi.set(__self__, "workspace_id", workspace_id) + WorkspaceSamlConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + editor_role_values=editor_role_values, + workspace_id=workspace_id, + admin_role_values=admin_role_values, + allowed_organizations=allowed_organizations, + email_assertion=email_assertion, + groups_assertion=groups_assertion, + idp_metadata_url=idp_metadata_url, + idp_metadata_xml=idp_metadata_xml, + login_assertion=login_assertion, + login_validity_duration=login_validity_duration, + name_assertion=name_assertion, + org_assertion=org_assertion, + role_assertion=role_assertion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + editor_role_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + admin_role_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_organizations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + email_assertion: Optional[pulumi.Input[str]] = None, + groups_assertion: Optional[pulumi.Input[str]] = None, + idp_metadata_url: Optional[pulumi.Input[str]] = None, + idp_metadata_xml: Optional[pulumi.Input[str]] = None, + login_assertion: Optional[pulumi.Input[str]] = None, + login_validity_duration: Optional[pulumi.Input[int]] = None, + name_assertion: Optional[pulumi.Input[str]] = None, + org_assertion: Optional[pulumi.Input[str]] = None, + role_assertion: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if editor_role_values is None and 'editorRoleValues' in kwargs: + editor_role_values = kwargs['editorRoleValues'] + if editor_role_values is None: + raise TypeError("Missing 'editor_role_values' argument") + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if workspace_id is None: + raise TypeError("Missing 'workspace_id' argument") + if admin_role_values is None and 'adminRoleValues' in kwargs: + admin_role_values = kwargs['adminRoleValues'] + if allowed_organizations is None and 'allowedOrganizations' in kwargs: + allowed_organizations = kwargs['allowedOrganizations'] + if email_assertion is None and 'emailAssertion' in kwargs: + email_assertion = kwargs['emailAssertion'] + if groups_assertion is None and 'groupsAssertion' in kwargs: + groups_assertion = kwargs['groupsAssertion'] + if idp_metadata_url is None and 'idpMetadataUrl' in kwargs: + idp_metadata_url = kwargs['idpMetadataUrl'] + if idp_metadata_xml is None and 'idpMetadataXml' in kwargs: + idp_metadata_xml = kwargs['idpMetadataXml'] + if login_assertion is None and 'loginAssertion' in kwargs: + login_assertion = kwargs['loginAssertion'] + if login_validity_duration is None and 'loginValidityDuration' in kwargs: + login_validity_duration = kwargs['loginValidityDuration'] + if name_assertion is None and 'nameAssertion' in kwargs: + name_assertion = kwargs['nameAssertion'] + if org_assertion is None and 'orgAssertion' in kwargs: + org_assertion = kwargs['orgAssertion'] + if role_assertion is None and 'roleAssertion' in kwargs: + role_assertion = kwargs['roleAssertion'] + + _setter("editor_role_values", editor_role_values) + _setter("workspace_id", workspace_id) if admin_role_values is not None: - pulumi.set(__self__, "admin_role_values", admin_role_values) + _setter("admin_role_values", admin_role_values) if allowed_organizations is not None: - pulumi.set(__self__, "allowed_organizations", allowed_organizations) + _setter("allowed_organizations", allowed_organizations) if email_assertion is not None: - pulumi.set(__self__, "email_assertion", email_assertion) + _setter("email_assertion", email_assertion) if groups_assertion is not None: - pulumi.set(__self__, "groups_assertion", groups_assertion) + _setter("groups_assertion", groups_assertion) if idp_metadata_url is not None: - pulumi.set(__self__, "idp_metadata_url", idp_metadata_url) + _setter("idp_metadata_url", idp_metadata_url) if idp_metadata_xml is not None: - pulumi.set(__self__, "idp_metadata_xml", idp_metadata_xml) + _setter("idp_metadata_xml", idp_metadata_xml) if login_assertion is not None: - pulumi.set(__self__, "login_assertion", login_assertion) + _setter("login_assertion", login_assertion) if login_validity_duration is not None: - pulumi.set(__self__, "login_validity_duration", login_validity_duration) + _setter("login_validity_duration", login_validity_duration) if name_assertion is not None: - pulumi.set(__self__, "name_assertion", name_assertion) + _setter("name_assertion", name_assertion) if org_assertion is not None: - pulumi.set(__self__, "org_assertion", org_assertion) + _setter("org_assertion", org_assertion) if role_assertion is not None: - pulumi.set(__self__, "role_assertion", role_assertion) + _setter("role_assertion", role_assertion) @property @pulumi.getter(name="editorRoleValues") @@ -265,34 +330,97 @@ def __init__(__self__, *, The following arguments are optional: """ + _WorkspaceSamlConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_role_values=admin_role_values, + allowed_organizations=allowed_organizations, + editor_role_values=editor_role_values, + email_assertion=email_assertion, + groups_assertion=groups_assertion, + idp_metadata_url=idp_metadata_url, + idp_metadata_xml=idp_metadata_xml, + login_assertion=login_assertion, + login_validity_duration=login_validity_duration, + name_assertion=name_assertion, + org_assertion=org_assertion, + role_assertion=role_assertion, + status=status, + workspace_id=workspace_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_role_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_organizations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + editor_role_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + email_assertion: Optional[pulumi.Input[str]] = None, + groups_assertion: Optional[pulumi.Input[str]] = None, + idp_metadata_url: Optional[pulumi.Input[str]] = None, + idp_metadata_xml: Optional[pulumi.Input[str]] = None, + login_assertion: Optional[pulumi.Input[str]] = None, + login_validity_duration: Optional[pulumi.Input[int]] = None, + name_assertion: Optional[pulumi.Input[str]] = None, + org_assertion: Optional[pulumi.Input[str]] = None, + role_assertion: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + workspace_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_role_values is None and 'adminRoleValues' in kwargs: + admin_role_values = kwargs['adminRoleValues'] + if allowed_organizations is None and 'allowedOrganizations' in kwargs: + allowed_organizations = kwargs['allowedOrganizations'] + if editor_role_values is None and 'editorRoleValues' in kwargs: + editor_role_values = kwargs['editorRoleValues'] + if email_assertion is None and 'emailAssertion' in kwargs: + email_assertion = kwargs['emailAssertion'] + if groups_assertion is None and 'groupsAssertion' in kwargs: + groups_assertion = kwargs['groupsAssertion'] + if idp_metadata_url is None and 'idpMetadataUrl' in kwargs: + idp_metadata_url = kwargs['idpMetadataUrl'] + if idp_metadata_xml is None and 'idpMetadataXml' in kwargs: + idp_metadata_xml = kwargs['idpMetadataXml'] + if login_assertion is None and 'loginAssertion' in kwargs: + login_assertion = kwargs['loginAssertion'] + if login_validity_duration is None and 'loginValidityDuration' in kwargs: + login_validity_duration = kwargs['loginValidityDuration'] + if name_assertion is None and 'nameAssertion' in kwargs: + name_assertion = kwargs['nameAssertion'] + if org_assertion is None and 'orgAssertion' in kwargs: + org_assertion = kwargs['orgAssertion'] + if role_assertion is None and 'roleAssertion' in kwargs: + role_assertion = kwargs['roleAssertion'] + if workspace_id is None and 'workspaceId' in kwargs: + workspace_id = kwargs['workspaceId'] + if admin_role_values is not None: - pulumi.set(__self__, "admin_role_values", admin_role_values) + _setter("admin_role_values", admin_role_values) if allowed_organizations is not None: - pulumi.set(__self__, "allowed_organizations", allowed_organizations) + _setter("allowed_organizations", allowed_organizations) if editor_role_values is not None: - pulumi.set(__self__, "editor_role_values", editor_role_values) + _setter("editor_role_values", editor_role_values) if email_assertion is not None: - pulumi.set(__self__, "email_assertion", email_assertion) + _setter("email_assertion", email_assertion) if groups_assertion is not None: - pulumi.set(__self__, "groups_assertion", groups_assertion) + _setter("groups_assertion", groups_assertion) if idp_metadata_url is not None: - pulumi.set(__self__, "idp_metadata_url", idp_metadata_url) + _setter("idp_metadata_url", idp_metadata_url) if idp_metadata_xml is not None: - pulumi.set(__self__, "idp_metadata_xml", idp_metadata_xml) + _setter("idp_metadata_xml", idp_metadata_xml) if login_assertion is not None: - pulumi.set(__self__, "login_assertion", login_assertion) + _setter("login_assertion", login_assertion) if login_validity_duration is not None: - pulumi.set(__self__, "login_validity_duration", login_validity_duration) + _setter("login_validity_duration", login_validity_duration) if name_assertion is not None: - pulumi.set(__self__, "name_assertion", name_assertion) + _setter("name_assertion", name_assertion) if org_assertion is not None: - pulumi.set(__self__, "org_assertion", org_assertion) + _setter("org_assertion", org_assertion) if role_assertion is not None: - pulumi.set(__self__, "role_assertion", role_assertion) + _setter("role_assertion", role_assertion) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if workspace_id is not None: - pulumi.set(__self__, "workspace_id", workspace_id) + _setter("workspace_id", workspace_id) @property @pulumi.getter(name="adminRoleValues") @@ -600,6 +728,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkspaceSamlConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/guardduty/_inputs.py b/sdk/python/pulumi_aws/guardduty/_inputs.py index 44337edc5aa..034cfb1483b 100644 --- a/sdk/python/pulumi_aws/guardduty/_inputs.py +++ b/sdk/python/pulumi_aws/guardduty/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -46,12 +46,31 @@ def __init__(__self__, *, :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. """ + DetectorDatasourcesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kubernetes=kubernetes, + malware_protection=malware_protection, + s3_logs=s3_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kubernetes: Optional[pulumi.Input['DetectorDatasourcesKubernetesArgs']] = None, + malware_protection: Optional[pulumi.Input['DetectorDatasourcesMalwareProtectionArgs']] = None, + s3_logs: Optional[pulumi.Input['DetectorDatasourcesS3LogsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if malware_protection is None and 'malwareProtection' in kwargs: + malware_protection = kwargs['malwareProtection'] + if s3_logs is None and 's3Logs' in kwargs: + s3_logs = kwargs['s3Logs'] + if kubernetes is not None: - pulumi.set(__self__, "kubernetes", kubernetes) + _setter("kubernetes", kubernetes) if malware_protection is not None: - pulumi.set(__self__, "malware_protection", malware_protection) + _setter("malware_protection", malware_protection) if s3_logs is not None: - pulumi.set(__self__, "s3_logs", s3_logs) + _setter("s3_logs", s3_logs) @property @pulumi.getter @@ -103,7 +122,22 @@ def __init__(__self__, *, :param pulumi.Input['DetectorDatasourcesKubernetesAuditLogsArgs'] audit_logs: Configures Kubernetes audit logs as a data source for [Kubernetes protection](https://docs.aws.amazon.com/guardduty/latest/ug/kubernetes-protection.html). See Kubernetes Audit Logs below for more details. """ - pulumi.set(__self__, "audit_logs", audit_logs) + DetectorDatasourcesKubernetesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit_logs=audit_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit_logs: Optional[pulumi.Input['DetectorDatasourcesKubernetesAuditLogsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_logs is None and 'auditLogs' in kwargs: + audit_logs = kwargs['auditLogs'] + if audit_logs is None: + raise TypeError("Missing 'audit_logs' argument") + + _setter("audit_logs", audit_logs) @property @pulumi.getter(name="auditLogs") @@ -127,7 +161,20 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable: If true, enables Kubernetes audit logs as a data source for [Kubernetes protection](https://docs.aws.amazon.com/guardduty/latest/ug/kubernetes-protection.html). Defaults to `true`. """ - pulumi.set(__self__, "enable", enable) + DetectorDatasourcesKubernetesAuditLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + + _setter("enable", enable) @property @pulumi.getter @@ -151,7 +198,22 @@ def __init__(__self__, *, :param pulumi.Input['DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs'] scan_ec2_instance_with_findings: Configure whether [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) is enabled as data source for EC2 instances with findings for the detector. See Scan EC2 instance with findings below for more details. """ - pulumi.set(__self__, "scan_ec2_instance_with_findings", scan_ec2_instance_with_findings) + DetectorDatasourcesMalwareProtectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + scan_ec2_instance_with_findings=scan_ec2_instance_with_findings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scan_ec2_instance_with_findings: Optional[pulumi.Input['DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scan_ec2_instance_with_findings is None and 'scanEc2InstanceWithFindings' in kwargs: + scan_ec2_instance_with_findings = kwargs['scanEc2InstanceWithFindings'] + if scan_ec2_instance_with_findings is None: + raise TypeError("Missing 'scan_ec2_instance_with_findings' argument") + + _setter("scan_ec2_instance_with_findings", scan_ec2_instance_with_findings) @property @pulumi.getter(name="scanEc2InstanceWithFindings") @@ -175,7 +237,22 @@ def __init__(__self__, *, :param pulumi.Input['DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs'] ebs_volumes: Configure whether scanning EBS volumes is enabled as data source for the detector for instances with findings. See EBS volumes below for more details. """ - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_volumes=ebs_volumes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_volumes: Optional[pulumi.Input['DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if ebs_volumes is None: + raise TypeError("Missing 'ebs_volumes' argument") + + _setter("ebs_volumes", ebs_volumes) @property @pulumi.getter(name="ebsVolumes") @@ -199,7 +276,20 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable: If true, enables [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) as data source for the detector. Defaults to `true`. """ - pulumi.set(__self__, "enable", enable) + DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + + _setter("enable", enable) @property @pulumi.getter @@ -222,7 +312,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enable: Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. """ - pulumi.set(__self__, "enable", enable) + DetectorDatasourcesS3LogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + + _setter("enable", enable) @property @pulumi.getter @@ -246,8 +349,25 @@ def __init__(__self__, *, :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) + DetectorFeatureAdditionalConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("name", name) + _setter("status", status) @property @pulumi.getter @@ -278,7 +398,20 @@ def status(self, value: pulumi.Input[str]): class FilterFindingCriteriaArgs: def __init__(__self__, *, criterions: pulumi.Input[Sequence[pulumi.Input['FilterFindingCriteriaCriterionArgs']]]): - pulumi.set(__self__, "criterions", criterions) + FilterFindingCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + criterions=criterions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + criterions: Optional[pulumi.Input[Sequence[pulumi.Input['FilterFindingCriteriaCriterionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if criterions is None: + raise TypeError("Missing 'criterions' argument") + + _setter("criterions", criterions) @property @pulumi.getter @@ -309,19 +442,54 @@ def __init__(__self__, *, :param pulumi.Input[str] less_than_or_equal: A value to be evaluated. Accepts either an integer or a date in [RFC 3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). :param pulumi.Input[Sequence[pulumi.Input[str]]] not_equals: List of string values to be evaluated. """ - pulumi.set(__self__, "field", field) + FilterFindingCriteriaCriterionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + equals=equals, + greater_than=greater_than, + greater_than_or_equal=greater_than_or_equal, + less_than=less_than, + less_than_or_equal=less_than_or_equal, + not_equals=not_equals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[pulumi.Input[str]] = None, + equals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + greater_than: Optional[pulumi.Input[str]] = None, + greater_than_or_equal: Optional[pulumi.Input[str]] = None, + less_than: Optional[pulumi.Input[str]] = None, + less_than_or_equal: Optional[pulumi.Input[str]] = None, + not_equals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is None: + raise TypeError("Missing 'field' argument") + if greater_than is None and 'greaterThan' in kwargs: + greater_than = kwargs['greaterThan'] + if greater_than_or_equal is None and 'greaterThanOrEqual' in kwargs: + greater_than_or_equal = kwargs['greaterThanOrEqual'] + if less_than is None and 'lessThan' in kwargs: + less_than = kwargs['lessThan'] + if less_than_or_equal is None and 'lessThanOrEqual' in kwargs: + less_than_or_equal = kwargs['lessThanOrEqual'] + if not_equals is None and 'notEquals' in kwargs: + not_equals = kwargs['notEquals'] + + _setter("field", field) if equals is not None: - pulumi.set(__self__, "equals", equals) + _setter("equals", equals) if greater_than is not None: - pulumi.set(__self__, "greater_than", greater_than) + _setter("greater_than", greater_than) if greater_than_or_equal is not None: - pulumi.set(__self__, "greater_than_or_equal", greater_than_or_equal) + _setter("greater_than_or_equal", greater_than_or_equal) if less_than is not None: - pulumi.set(__self__, "less_than", less_than) + _setter("less_than", less_than) if less_than_or_equal is not None: - pulumi.set(__self__, "less_than_or_equal", less_than_or_equal) + _setter("less_than_or_equal", less_than_or_equal) if not_equals is not None: - pulumi.set(__self__, "not_equals", not_equals) + _setter("not_equals", not_equals) @property @pulumi.getter @@ -419,12 +587,31 @@ def __init__(__self__, *, :param pulumi.Input['OrganizationConfigurationDatasourcesMalwareProtectionArgs'] malware_protection: Enable Malware Protection automatically for new member accounts. :param pulumi.Input['OrganizationConfigurationDatasourcesS3LogsArgs'] s3_logs: Enable S3 Protection automatically for new member accounts. """ + OrganizationConfigurationDatasourcesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kubernetes=kubernetes, + malware_protection=malware_protection, + s3_logs=s3_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kubernetes: Optional[pulumi.Input['OrganizationConfigurationDatasourcesKubernetesArgs']] = None, + malware_protection: Optional[pulumi.Input['OrganizationConfigurationDatasourcesMalwareProtectionArgs']] = None, + s3_logs: Optional[pulumi.Input['OrganizationConfigurationDatasourcesS3LogsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if malware_protection is None and 'malwareProtection' in kwargs: + malware_protection = kwargs['malwareProtection'] + if s3_logs is None and 's3Logs' in kwargs: + s3_logs = kwargs['s3Logs'] + if kubernetes is not None: - pulumi.set(__self__, "kubernetes", kubernetes) + _setter("kubernetes", kubernetes) if malware_protection is not None: - pulumi.set(__self__, "malware_protection", malware_protection) + _setter("malware_protection", malware_protection) if s3_logs is not None: - pulumi.set(__self__, "s3_logs", s3_logs) + _setter("s3_logs", s3_logs) @property @pulumi.getter @@ -471,7 +658,22 @@ def __init__(__self__, *, :param pulumi.Input['OrganizationConfigurationDatasourcesKubernetesAuditLogsArgs'] audit_logs: Enable Kubernetes Audit Logs Monitoring automatically for new member accounts. [Kubernetes protection](https://docs.aws.amazon.com/guardduty/latest/ug/kubernetes-protection.html). See Kubernetes Audit Logs below for more details. """ - pulumi.set(__self__, "audit_logs", audit_logs) + OrganizationConfigurationDatasourcesKubernetesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit_logs=audit_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit_logs: Optional[pulumi.Input['OrganizationConfigurationDatasourcesKubernetesAuditLogsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_logs is None and 'auditLogs' in kwargs: + audit_logs = kwargs['auditLogs'] + if audit_logs is None: + raise TypeError("Missing 'audit_logs' argument") + + _setter("audit_logs", audit_logs) @property @pulumi.getter(name="auditLogs") @@ -495,7 +697,20 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable: If true, enables Kubernetes audit logs as a data source for [Kubernetes protection](https://docs.aws.amazon.com/guardduty/latest/ug/kubernetes-protection.html). Defaults to `true`. """ - pulumi.set(__self__, "enable", enable) + OrganizationConfigurationDatasourcesKubernetesAuditLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + + _setter("enable", enable) @property @pulumi.getter @@ -519,7 +734,22 @@ def __init__(__self__, *, :param pulumi.Input['OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs'] scan_ec2_instance_with_findings: Configure whether [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) for EC2 instances with findings should be auto-enabled for new members joining the organization. See Scan EC2 instance with findings below for more details. """ - pulumi.set(__self__, "scan_ec2_instance_with_findings", scan_ec2_instance_with_findings) + OrganizationConfigurationDatasourcesMalwareProtectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + scan_ec2_instance_with_findings=scan_ec2_instance_with_findings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scan_ec2_instance_with_findings: Optional[pulumi.Input['OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scan_ec2_instance_with_findings is None and 'scanEc2InstanceWithFindings' in kwargs: + scan_ec2_instance_with_findings = kwargs['scanEc2InstanceWithFindings'] + if scan_ec2_instance_with_findings is None: + raise TypeError("Missing 'scan_ec2_instance_with_findings' argument") + + _setter("scan_ec2_instance_with_findings", scan_ec2_instance_with_findings) @property @pulumi.getter(name="scanEc2InstanceWithFindings") @@ -543,7 +773,22 @@ def __init__(__self__, *, :param pulumi.Input['OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs'] ebs_volumes: Configure whether scanning EBS volumes should be auto-enabled for new members joining the organization See EBS volumes below for more details. """ - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_volumes=ebs_volumes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_volumes: Optional[pulumi.Input['OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if ebs_volumes is None: + raise TypeError("Missing 'ebs_volumes' argument") + + _setter("ebs_volumes", ebs_volumes) @property @pulumi.getter(name="ebsVolumes") @@ -567,7 +812,22 @@ def __init__(__self__, *, :param pulumi.Input[bool] auto_enable: If true, enables [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) for all new accounts joining the organization. Defaults to `true`. """ - pulumi.set(__self__, "auto_enable", auto_enable) + OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable is None: + raise TypeError("Missing 'auto_enable' argument") + + _setter("auto_enable", auto_enable) @property @pulumi.getter(name="autoEnable") @@ -590,7 +850,22 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] auto_enable: *Deprecated:* Use `auto_enable_organization_members` instead. When this setting is enabled, all new accounts that are created in, or added to, the organization are added as a member accounts of the organization’s GuardDuty delegated administrator and GuardDuty is enabled in that AWS Region. """ - pulumi.set(__self__, "auto_enable", auto_enable) + OrganizationConfigurationDatasourcesS3LogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable is None: + raise TypeError("Missing 'auto_enable' argument") + + _setter("auto_enable", auto_enable) @property @pulumi.getter(name="autoEnable") @@ -614,8 +889,27 @@ def __init__(__self__, *, :param pulumi.Input[str] auto_enable: The status of the additional configuration that will be configured for the organization. Valid values: `NEW`, `ALL`, `NONE`. :param pulumi.Input[str] name: The name of the additional configuration that will be configured for the organization. Valid values: `EKS_ADDON_MANAGEMENT`. """ - pulumi.set(__self__, "auto_enable", auto_enable) - pulumi.set(__self__, "name", name) + OrganizationConfigurationFeatureAdditionalConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable is None: + raise TypeError("Missing 'auto_enable' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("auto_enable", auto_enable) + _setter("name", name) @property @pulumi.getter(name="autoEnable") diff --git a/sdk/python/pulumi_aws/guardduty/detector.py b/sdk/python/pulumi_aws/guardduty/detector.py index 571bfc40e7d..5c473d27378 100644 --- a/sdk/python/pulumi_aws/guardduty/detector.py +++ b/sdk/python/pulumi_aws/guardduty/detector.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,14 +27,33 @@ def __init__(__self__, *, :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. """ + DetectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + datasources=datasources, + enable=enable, + finding_publishing_frequency=finding_publishing_frequency, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + datasources: Optional[pulumi.Input['DetectorDatasourcesArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + finding_publishing_frequency: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if finding_publishing_frequency is None and 'findingPublishingFrequency' in kwargs: + finding_publishing_frequency = kwargs['findingPublishingFrequency'] + if datasources is not None: - pulumi.set(__self__, "datasources", datasources) + _setter("datasources", datasources) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if finding_publishing_frequency is not None: - pulumi.set(__self__, "finding_publishing_frequency", finding_publishing_frequency) + _setter("finding_publishing_frequency", finding_publishing_frequency) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -105,23 +124,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _DetectorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + arn=arn, + datasources=datasources, + enable=enable, + finding_publishing_frequency=finding_publishing_frequency, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + datasources: Optional[pulumi.Input['DetectorDatasourcesArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + finding_publishing_frequency: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if finding_publishing_frequency is None and 'findingPublishingFrequency' in kwargs: + finding_publishing_frequency = kwargs['findingPublishingFrequency'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if datasources is not None: - pulumi.set(__self__, "datasources", datasources) + _setter("datasources", datasources) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if finding_publishing_frequency is not None: - pulumi.set(__self__, "finding_publishing_frequency", finding_publishing_frequency) + _setter("finding_publishing_frequency", finding_publishing_frequency) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="accountId") @@ -326,6 +374,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DetectorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -344,6 +396,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DetectorArgs.__new__(DetectorArgs) + datasources = _utilities.configure(datasources, DetectorDatasourcesArgs, True) __props__.__dict__["datasources"] = datasources __props__.__dict__["enable"] = enable __props__.__dict__["finding_publishing_frequency"] = finding_publishing_frequency diff --git a/sdk/python/pulumi_aws/guardduty/detector_feature.py b/sdk/python/pulumi_aws/guardduty/detector_feature.py index ef74b720d43..5754ff77cb1 100644 --- a/sdk/python/pulumi_aws/guardduty/detector_feature.py +++ b/sdk/python/pulumi_aws/guardduty/detector_feature.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,37 @@ def __init__(__self__, *, :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) + DetectorFeatureArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + detector_id=detector_id, + status=status, + additional_configurations=additional_configurations, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + detector_id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + additional_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['DetectorFeatureAdditionalConfigurationArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if detector_id is None: + raise TypeError("Missing 'detector_id' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if additional_configurations is None and 'additionalConfigurations' in kwargs: + additional_configurations = kwargs['additionalConfigurations'] + + _setter("detector_id", detector_id) + _setter("status", status) if additional_configurations is not None: - pulumi.set(__self__, "additional_configurations", additional_configurations) + _setter("additional_configurations", additional_configurations) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="detectorId") @@ -97,14 +122,35 @@ def __init__(__self__, *, :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`. """ + _DetectorFeatureState._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_configurations=additional_configurations, + detector_id=detector_id, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_configurations is None and 'additionalConfigurations' in kwargs: + additional_configurations = kwargs['additionalConfigurations'] + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if additional_configurations is not None: - pulumi.set(__self__, "additional_configurations", additional_configurations) + _setter("additional_configurations", additional_configurations) if detector_id is not None: - pulumi.set(__self__, "detector_id", detector_id) + _setter("detector_id", detector_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="additionalConfigurations") @@ -230,6 +276,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DetectorFeatureArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/guardduty/filter.py b/sdk/python/pulumi_aws/guardduty/filter.py index eb130c20c83..ec62566bfdb 100644 --- a/sdk/python/pulumi_aws/guardduty/filter.py +++ b/sdk/python/pulumi_aws/guardduty/filter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,16 +33,51 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of your filter. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: The tags that you want to add to the Filter resource. A tag consists of a key and a value. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "detector_id", detector_id) - pulumi.set(__self__, "finding_criteria", finding_criteria) - pulumi.set(__self__, "rank", rank) + FilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + detector_id=detector_id, + finding_criteria=finding_criteria, + rank=rank, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + finding_criteria: Optional[pulumi.Input['FilterFindingCriteriaArgs']] = None, + rank: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if detector_id is None: + raise TypeError("Missing 'detector_id' argument") + if finding_criteria is None and 'findingCriteria' in kwargs: + finding_criteria = kwargs['findingCriteria'] + if finding_criteria is None: + raise TypeError("Missing 'finding_criteria' argument") + if rank is None: + raise TypeError("Missing 'rank' argument") + + _setter("action", action) + _setter("detector_id", detector_id) + _setter("finding_criteria", finding_criteria) + _setter("rank", rank) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -153,27 +188,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: The tags that you want to add to the Filter resource. A tag consists of a key and a value. .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. """ + _FilterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + arn=arn, + description=description, + detector_id=detector_id, + finding_criteria=finding_criteria, + name=name, + rank=rank, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + finding_criteria: Optional[pulumi.Input['FilterFindingCriteriaArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + rank: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if finding_criteria is None and 'findingCriteria' in kwargs: + finding_criteria = kwargs['findingCriteria'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if detector_id is not None: - pulumi.set(__self__, "detector_id", detector_id) + _setter("detector_id", detector_id) if finding_criteria is not None: - pulumi.set(__self__, "finding_criteria", finding_criteria) + _setter("finding_criteria", finding_criteria) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rank is not None: - pulumi.set(__self__, "rank", rank) + _setter("rank", rank) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -420,6 +488,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FilterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -448,6 +520,7 @@ def _internal_init(__self__, if detector_id is None and not opts.urn: raise TypeError("Missing required property 'detector_id'") __props__.__dict__["detector_id"] = detector_id + finding_criteria = _utilities.configure(finding_criteria, FilterFindingCriteriaArgs, True) if finding_criteria is None and not opts.urn: raise TypeError("Missing required property 'finding_criteria'") __props__.__dict__["finding_criteria"] = finding_criteria diff --git a/sdk/python/pulumi_aws/guardduty/get_detector.py b/sdk/python/pulumi_aws/guardduty/get_detector.py index 9d60ac04738..66dc4a23bcd 100644 --- a/sdk/python/pulumi_aws/guardduty/get_detector.py +++ b/sdk/python/pulumi_aws/guardduty/get_detector.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/guardduty/get_finding_ids.py b/sdk/python/pulumi_aws/guardduty/get_finding_ids.py index 5a5e0ea4190..8cd9ec61820 100644 --- a/sdk/python/pulumi_aws/guardduty/get_finding_ids.py +++ b/sdk/python/pulumi_aws/guardduty/get_finding_ids.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/guardduty/invite_accepter.py b/sdk/python/pulumi_aws/guardduty/invite_accepter.py index aa60c2999cc..097b252f122 100644 --- a/sdk/python/pulumi_aws/guardduty/invite_accepter.py +++ b/sdk/python/pulumi_aws/guardduty/invite_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InviteAccepterArgs', 'InviteAccepter'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] detector_id: The detector ID of the member GuardDuty account. :param pulumi.Input[str] master_account_id: AWS account ID for primary account. """ - pulumi.set(__self__, "detector_id", detector_id) - pulumi.set(__self__, "master_account_id", master_account_id) + InviteAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + detector_id=detector_id, + master_account_id=master_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + detector_id: Optional[pulumi.Input[str]] = None, + master_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if detector_id is None: + raise TypeError("Missing 'detector_id' argument") + if master_account_id is None and 'masterAccountId' in kwargs: + master_account_id = kwargs['masterAccountId'] + if master_account_id is None: + raise TypeError("Missing 'master_account_id' argument") + + _setter("detector_id", detector_id) + _setter("master_account_id", master_account_id) @property @pulumi.getter(name="detectorId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] detector_id: The detector ID of the member GuardDuty account. :param pulumi.Input[str] master_account_id: AWS account ID for primary account. """ + _InviteAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + detector_id=detector_id, + master_account_id=master_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + detector_id: Optional[pulumi.Input[str]] = None, + master_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if master_account_id is None and 'masterAccountId' in kwargs: + master_account_id = kwargs['masterAccountId'] + if detector_id is not None: - pulumi.set(__self__, "detector_id", detector_id) + _setter("detector_id", detector_id) if master_account_id is not None: - pulumi.set(__self__, "master_account_id", master_account_id) + _setter("master_account_id", master_account_id) @property @pulumi.getter(name="detectorId") @@ -186,6 +224,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InviteAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/guardduty/ip_set.py b/sdk/python/pulumi_aws/guardduty/ip_set.py index 54f7eea4014..4d7baa10f52 100644 --- a/sdk/python/pulumi_aws/guardduty/ip_set.py +++ b/sdk/python/pulumi_aws/guardduty/ip_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['IPSetArgs', 'IPSet'] @@ -29,14 +29,45 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The friendly name to identify the IPSet. :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. """ - pulumi.set(__self__, "activate", activate) - pulumi.set(__self__, "detector_id", detector_id) - pulumi.set(__self__, "format", format) - pulumi.set(__self__, "location", location) + IPSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + activate=activate, + detector_id=detector_id, + format=format, + location=location, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activate: Optional[pulumi.Input[bool]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activate is None: + raise TypeError("Missing 'activate' argument") + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if detector_id is None: + raise TypeError("Missing 'detector_id' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if location is None: + raise TypeError("Missing 'location' argument") + + _setter("activate", activate) + _setter("detector_id", detector_id) + _setter("format", format) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -133,25 +164,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _IPSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + activate=activate, + arn=arn, + detector_id=detector_id, + format=format, + location=location, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activate: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if activate is not None: - pulumi.set(__self__, "activate", activate) + _setter("activate", activate) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if detector_id is not None: - pulumi.set(__self__, "detector_id", detector_id) + _setter("detector_id", detector_id) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -362,6 +422,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IPSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/guardduty/member.py b/sdk/python/pulumi_aws/guardduty/member.py index 7cd72df381f..6f2cd0e2017 100644 --- a/sdk/python/pulumi_aws/guardduty/member.py +++ b/sdk/python/pulumi_aws/guardduty/member.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MemberArgs', 'Member'] @@ -29,15 +29,50 @@ def __init__(__self__, *, :param pulumi.Input[str] invitation_message: Message for invitation. :param pulumi.Input[bool] invite: Boolean whether to invite the account to GuardDuty as a member. Defaults to `false`. To detect if an invitation needs to be (re-)sent, the this provider state value is `true` based on a `relationship_status` of `Disabled`, `Enabled`, `Invited`, or `EmailVerificationInProgress`. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "detector_id", detector_id) - pulumi.set(__self__, "email", email) + MemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + detector_id=detector_id, + email=email, + disable_email_notification=disable_email_notification, + invitation_message=invitation_message, + invite=invite, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + disable_email_notification: Optional[pulumi.Input[bool]] = None, + invitation_message: Optional[pulumi.Input[str]] = None, + invite: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if detector_id is None: + raise TypeError("Missing 'detector_id' argument") + if email is None: + raise TypeError("Missing 'email' argument") + if disable_email_notification is None and 'disableEmailNotification' in kwargs: + disable_email_notification = kwargs['disableEmailNotification'] + if invitation_message is None and 'invitationMessage' in kwargs: + invitation_message = kwargs['invitationMessage'] + + _setter("account_id", account_id) + _setter("detector_id", detector_id) + _setter("email", email) if disable_email_notification is not None: - pulumi.set(__self__, "disable_email_notification", disable_email_notification) + _setter("disable_email_notification", disable_email_notification) if invitation_message is not None: - pulumi.set(__self__, "invitation_message", invitation_message) + _setter("invitation_message", invitation_message) if invite is not None: - pulumi.set(__self__, "invite", invite) + _setter("invite", invite) @property @pulumi.getter(name="accountId") @@ -132,20 +167,53 @@ def __init__(__self__, *, :param pulumi.Input[bool] invite: Boolean whether to invite the account to GuardDuty as a member. Defaults to `false`. To detect if an invitation needs to be (re-)sent, the this provider state value is `true` based on a `relationship_status` of `Disabled`, `Enabled`, `Invited`, or `EmailVerificationInProgress`. :param pulumi.Input[str] relationship_status: The status of the relationship between the member account and its primary account. More information can be found in [Amazon GuardDuty API Reference](https://docs.aws.amazon.com/guardduty/latest/ug/get-members.html). """ + _MemberState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + detector_id=detector_id, + disable_email_notification=disable_email_notification, + email=email, + invitation_message=invitation_message, + invite=invite, + relationship_status=relationship_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + disable_email_notification: Optional[pulumi.Input[bool]] = None, + email: Optional[pulumi.Input[str]] = None, + invitation_message: Optional[pulumi.Input[str]] = None, + invite: Optional[pulumi.Input[bool]] = None, + relationship_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if disable_email_notification is None and 'disableEmailNotification' in kwargs: + disable_email_notification = kwargs['disableEmailNotification'] + if invitation_message is None and 'invitationMessage' in kwargs: + invitation_message = kwargs['invitationMessage'] + if relationship_status is None and 'relationshipStatus' in kwargs: + relationship_status = kwargs['relationshipStatus'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if detector_id is not None: - pulumi.set(__self__, "detector_id", detector_id) + _setter("detector_id", detector_id) if disable_email_notification is not None: - pulumi.set(__self__, "disable_email_notification", disable_email_notification) + _setter("disable_email_notification", disable_email_notification) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if invitation_message is not None: - pulumi.set(__self__, "invitation_message", invitation_message) + _setter("invitation_message", invitation_message) if invite is not None: - pulumi.set(__self__, "invite", invite) + _setter("invite", invite) if relationship_status is not None: - pulumi.set(__self__, "relationship_status", relationship_status) + _setter("relationship_status", relationship_status) @property @pulumi.getter(name="accountId") @@ -325,6 +393,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MemberArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/guardduty/organization_admin_account.py b/sdk/python/pulumi_aws/guardduty/organization_admin_account.py index 8ea4badd14c..e9263c62cd1 100644 --- a/sdk/python/pulumi_aws/guardduty/organization_admin_account.py +++ b/sdk/python/pulumi_aws/guardduty/organization_admin_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OrganizationAdminAccountArgs', 'OrganizationAdminAccount'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a OrganizationAdminAccount resource. :param pulumi.Input[str] admin_account_id: AWS account identifier to designate as a delegated administrator for GuardDuty. """ - pulumi.set(__self__, "admin_account_id", admin_account_id) + OrganizationAdminAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_account_id=admin_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_account_id is None and 'adminAccountId' in kwargs: + admin_account_id = kwargs['adminAccountId'] + if admin_account_id is None: + raise TypeError("Missing 'admin_account_id' argument") + + _setter("admin_account_id", admin_account_id) @property @pulumi.getter(name="adminAccountId") @@ -42,8 +57,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering OrganizationAdminAccount resources. :param pulumi.Input[str] admin_account_id: AWS account identifier to designate as a delegated administrator for GuardDuty. """ + _OrganizationAdminAccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_account_id=admin_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_account_id is None and 'adminAccountId' in kwargs: + admin_account_id = kwargs['adminAccountId'] + if admin_account_id is not None: - pulumi.set(__self__, "admin_account_id", admin_account_id) + _setter("admin_account_id", admin_account_id) @property @pulumi.getter(name="adminAccountId") @@ -135,6 +163,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationAdminAccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/guardduty/organization_configuration.py b/sdk/python/pulumi_aws/guardduty/organization_configuration.py index 8e98cfecdbe..4e2f02bc0d6 100644 --- a/sdk/python/pulumi_aws/guardduty/organization_configuration.py +++ b/sdk/python/pulumi_aws/guardduty/organization_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,16 +27,41 @@ def __init__(__self__, *, :param pulumi.Input[str] auto_enable_organization_members: Indicates the auto-enablement configuration of GuardDuty for the member accounts in the organization. Valid values are `ALL`, `NEW`, `NONE`. :param pulumi.Input['OrganizationConfigurationDatasourcesArgs'] datasources: Configuration for the collected datasources. """ - pulumi.set(__self__, "detector_id", detector_id) + OrganizationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + detector_id=detector_id, + auto_enable=auto_enable, + auto_enable_organization_members=auto_enable_organization_members, + datasources=datasources, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + detector_id: Optional[pulumi.Input[str]] = None, + auto_enable: Optional[pulumi.Input[bool]] = None, + auto_enable_organization_members: Optional[pulumi.Input[str]] = None, + datasources: Optional[pulumi.Input['OrganizationConfigurationDatasourcesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if detector_id is None: + raise TypeError("Missing 'detector_id' argument") + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable_organization_members is None and 'autoEnableOrganizationMembers' in kwargs: + auto_enable_organization_members = kwargs['autoEnableOrganizationMembers'] + + _setter("detector_id", detector_id) if auto_enable is not None: warnings.warn("""Use auto_enable_organization_members instead""", DeprecationWarning) pulumi.log.warn("""auto_enable is deprecated: Use auto_enable_organization_members instead""") if auto_enable is not None: - pulumi.set(__self__, "auto_enable", auto_enable) + _setter("auto_enable", auto_enable) if auto_enable_organization_members is not None: - pulumi.set(__self__, "auto_enable_organization_members", auto_enable_organization_members) + _setter("auto_enable_organization_members", auto_enable_organization_members) if datasources is not None: - pulumi.set(__self__, "datasources", datasources) + _setter("datasources", datasources) @property @pulumi.getter(name="detectorId") @@ -104,17 +129,40 @@ def __init__(__self__, *, :param pulumi.Input['OrganizationConfigurationDatasourcesArgs'] datasources: Configuration for the collected datasources. :param pulumi.Input[str] detector_id: The detector ID of the GuardDuty account. """ + _OrganizationConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + auto_enable_organization_members=auto_enable_organization_members, + datasources=datasources, + detector_id=detector_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[pulumi.Input[bool]] = None, + auto_enable_organization_members: Optional[pulumi.Input[str]] = None, + datasources: Optional[pulumi.Input['OrganizationConfigurationDatasourcesArgs']] = None, + detector_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable_organization_members is None and 'autoEnableOrganizationMembers' in kwargs: + auto_enable_organization_members = kwargs['autoEnableOrganizationMembers'] + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if auto_enable is not None: warnings.warn("""Use auto_enable_organization_members instead""", DeprecationWarning) pulumi.log.warn("""auto_enable is deprecated: Use auto_enable_organization_members instead""") if auto_enable is not None: - pulumi.set(__self__, "auto_enable", auto_enable) + _setter("auto_enable", auto_enable) if auto_enable_organization_members is not None: - pulumi.set(__self__, "auto_enable_organization_members", auto_enable_organization_members) + _setter("auto_enable_organization_members", auto_enable_organization_members) if datasources is not None: - pulumi.set(__self__, "datasources", datasources) + _setter("datasources", datasources) if detector_id is not None: - pulumi.set(__self__, "detector_id", detector_id) + _setter("detector_id", detector_id) @property @pulumi.getter(name="autoEnable") @@ -285,6 +333,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -303,11 +355,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = OrganizationConfigurationArgs.__new__(OrganizationConfigurationArgs) - if auto_enable is not None and not opts.urn: - warnings.warn("""Use auto_enable_organization_members instead""", DeprecationWarning) - pulumi.log.warn("""auto_enable is deprecated: Use auto_enable_organization_members instead""") __props__.__dict__["auto_enable"] = auto_enable __props__.__dict__["auto_enable_organization_members"] = auto_enable_organization_members + datasources = _utilities.configure(datasources, OrganizationConfigurationDatasourcesArgs, True) __props__.__dict__["datasources"] = datasources if detector_id is None and not opts.urn: raise TypeError("Missing required property 'detector_id'") diff --git a/sdk/python/pulumi_aws/guardduty/organization_configuration_feature.py b/sdk/python/pulumi_aws/guardduty/organization_configuration_feature.py index 615c4bbb18e..a40ad7f82cc 100644 --- a/sdk/python/pulumi_aws/guardduty/organization_configuration_feature.py +++ b/sdk/python/pulumi_aws/guardduty/organization_configuration_feature.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['OrganizationConfigurationFeatureAdditionalConfigurationArgs']]] additional_configurations: The additional information that will be configured for the organization See below. :param pulumi.Input[str] name: The name of the feature that will be configured for the organization. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. """ - pulumi.set(__self__, "auto_enable", auto_enable) - pulumi.set(__self__, "detector_id", detector_id) + OrganizationConfigurationFeatureArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + detector_id=detector_id, + additional_configurations=additional_configurations, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + additional_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationConfigurationFeatureAdditionalConfigurationArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable is None: + raise TypeError("Missing 'auto_enable' argument") + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if detector_id is None: + raise TypeError("Missing 'detector_id' argument") + if additional_configurations is None and 'additionalConfigurations' in kwargs: + additional_configurations = kwargs['additionalConfigurations'] + + _setter("auto_enable", auto_enable) + _setter("detector_id", detector_id) if additional_configurations is not None: - pulumi.set(__self__, "additional_configurations", additional_configurations) + _setter("additional_configurations", additional_configurations) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="autoEnable") @@ -97,14 +124,37 @@ def __init__(__self__, *, :param pulumi.Input[str] detector_id: The ID of the detector that configures the delegated administrator. :param pulumi.Input[str] name: The name of the feature that will be configured for the organization. Valid values: `S3_DATA_EVENTS`, `EKS_AUDIT_LOGS`, `EBS_MALWARE_PROTECTION`, `RDS_LOGIN_EVENTS`, `EKS_RUNTIME_MONITORING`, `LAMBDA_NETWORK_LOGS`. """ + _OrganizationConfigurationFeatureState._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_configurations=additional_configurations, + auto_enable=auto_enable, + detector_id=detector_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationConfigurationFeatureAdditionalConfigurationArgs']]]] = None, + auto_enable: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_configurations is None and 'additionalConfigurations' in kwargs: + additional_configurations = kwargs['additionalConfigurations'] + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if additional_configurations is not None: - pulumi.set(__self__, "additional_configurations", additional_configurations) + _setter("additional_configurations", additional_configurations) if auto_enable is not None: - pulumi.set(__self__, "auto_enable", auto_enable) + _setter("auto_enable", auto_enable) if detector_id is not None: - pulumi.set(__self__, "detector_id", detector_id) + _setter("detector_id", detector_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="additionalConfigurations") @@ -230,6 +280,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationConfigurationFeatureArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/guardduty/outputs.py b/sdk/python/pulumi_aws/guardduty/outputs.py index ce80ac3f38e..78eb57cab64 100644 --- a/sdk/python/pulumi_aws/guardduty/outputs.py +++ b/sdk/python/pulumi_aws/guardduty/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -68,12 +68,31 @@ def __init__(__self__, *, :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. """ + DetectorDatasources._configure( + lambda key, value: pulumi.set(__self__, key, value), + kubernetes=kubernetes, + malware_protection=malware_protection, + s3_logs=s3_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kubernetes: Optional['outputs.DetectorDatasourcesKubernetes'] = None, + malware_protection: Optional['outputs.DetectorDatasourcesMalwareProtection'] = None, + s3_logs: Optional['outputs.DetectorDatasourcesS3Logs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if malware_protection is None and 'malwareProtection' in kwargs: + malware_protection = kwargs['malwareProtection'] + if s3_logs is None and 's3Logs' in kwargs: + s3_logs = kwargs['s3Logs'] + if kubernetes is not None: - pulumi.set(__self__, "kubernetes", kubernetes) + _setter("kubernetes", kubernetes) if malware_protection is not None: - pulumi.set(__self__, "malware_protection", malware_protection) + _setter("malware_protection", malware_protection) if s3_logs is not None: - pulumi.set(__self__, "s3_logs", s3_logs) + _setter("s3_logs", s3_logs) @property @pulumi.getter @@ -130,7 +149,22 @@ def __init__(__self__, *, :param 'DetectorDatasourcesKubernetesAuditLogsArgs' audit_logs: Configures Kubernetes audit logs as a data source for [Kubernetes protection](https://docs.aws.amazon.com/guardduty/latest/ug/kubernetes-protection.html). See Kubernetes Audit Logs below for more details. """ - pulumi.set(__self__, "audit_logs", audit_logs) + DetectorDatasourcesKubernetes._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit_logs=audit_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit_logs: Optional['outputs.DetectorDatasourcesKubernetesAuditLogs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_logs is None and 'auditLogs' in kwargs: + audit_logs = kwargs['auditLogs'] + if audit_logs is None: + raise TypeError("Missing 'audit_logs' argument") + + _setter("audit_logs", audit_logs) @property @pulumi.getter(name="auditLogs") @@ -150,7 +184,20 @@ def __init__(__self__, *, :param bool enable: If true, enables Kubernetes audit logs as a data source for [Kubernetes protection](https://docs.aws.amazon.com/guardduty/latest/ug/kubernetes-protection.html). Defaults to `true`. """ - pulumi.set(__self__, "enable", enable) + DetectorDatasourcesKubernetesAuditLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + + _setter("enable", enable) @property @pulumi.getter @@ -187,7 +234,22 @@ def __init__(__self__, *, :param 'DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs' scan_ec2_instance_with_findings: Configure whether [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) is enabled as data source for EC2 instances with findings for the detector. See Scan EC2 instance with findings below for more details. """ - pulumi.set(__self__, "scan_ec2_instance_with_findings", scan_ec2_instance_with_findings) + DetectorDatasourcesMalwareProtection._configure( + lambda key, value: pulumi.set(__self__, key, value), + scan_ec2_instance_with_findings=scan_ec2_instance_with_findings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scan_ec2_instance_with_findings: Optional['outputs.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scan_ec2_instance_with_findings is None and 'scanEc2InstanceWithFindings' in kwargs: + scan_ec2_instance_with_findings = kwargs['scanEc2InstanceWithFindings'] + if scan_ec2_instance_with_findings is None: + raise TypeError("Missing 'scan_ec2_instance_with_findings' argument") + + _setter("scan_ec2_instance_with_findings", scan_ec2_instance_with_findings) @property @pulumi.getter(name="scanEc2InstanceWithFindings") @@ -224,7 +286,22 @@ def __init__(__self__, *, :param 'DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs' ebs_volumes: Configure whether scanning EBS volumes is enabled as data source for the detector for instances with findings. See EBS volumes below for more details. """ - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindings._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_volumes=ebs_volumes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_volumes: Optional['outputs.DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumes'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if ebs_volumes is None: + raise TypeError("Missing 'ebs_volumes' argument") + + _setter("ebs_volumes", ebs_volumes) @property @pulumi.getter(name="ebsVolumes") @@ -244,7 +321,20 @@ def __init__(__self__, *, :param bool enable: If true, enables [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) as data source for the detector. Defaults to `true`. """ - pulumi.set(__self__, "enable", enable) + DetectorDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumes._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + + _setter("enable", enable) @property @pulumi.getter @@ -263,7 +353,20 @@ def __init__(__self__, *, """ :param bool enable: Enable monitoring and feedback reporting. Setting to `false` is equivalent to "suspending" GuardDuty. Defaults to `true`. """ - pulumi.set(__self__, "enable", enable) + DetectorDatasourcesS3Logs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + + _setter("enable", enable) @property @pulumi.getter @@ -283,8 +386,25 @@ def __init__(__self__, *, :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) + DetectorFeatureAdditionalConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("name", name) + _setter("status", status) @property @pulumi.getter @@ -307,7 +427,20 @@ def status(self) -> str: class FilterFindingCriteria(dict): def __init__(__self__, *, criterions: Sequence['outputs.FilterFindingCriteriaCriterion']): - pulumi.set(__self__, "criterions", criterions) + FilterFindingCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + criterions=criterions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + criterions: Optional[Sequence['outputs.FilterFindingCriteriaCriterion']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if criterions is None: + raise TypeError("Missing 'criterions' argument") + + _setter("criterions", criterions) @property @pulumi.getter @@ -359,19 +492,54 @@ def __init__(__self__, *, :param str less_than_or_equal: A value to be evaluated. Accepts either an integer or a date in [RFC 3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). :param Sequence[str] not_equals: List of string values to be evaluated. """ - pulumi.set(__self__, "field", field) + FilterFindingCriteriaCriterion._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + equals=equals, + greater_than=greater_than, + greater_than_or_equal=greater_than_or_equal, + less_than=less_than, + less_than_or_equal=less_than_or_equal, + not_equals=not_equals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[str] = None, + equals: Optional[Sequence[str]] = None, + greater_than: Optional[str] = None, + greater_than_or_equal: Optional[str] = None, + less_than: Optional[str] = None, + less_than_or_equal: Optional[str] = None, + not_equals: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is None: + raise TypeError("Missing 'field' argument") + if greater_than is None and 'greaterThan' in kwargs: + greater_than = kwargs['greaterThan'] + if greater_than_or_equal is None and 'greaterThanOrEqual' in kwargs: + greater_than_or_equal = kwargs['greaterThanOrEqual'] + if less_than is None and 'lessThan' in kwargs: + less_than = kwargs['lessThan'] + if less_than_or_equal is None and 'lessThanOrEqual' in kwargs: + less_than_or_equal = kwargs['lessThanOrEqual'] + if not_equals is None and 'notEquals' in kwargs: + not_equals = kwargs['notEquals'] + + _setter("field", field) if equals is not None: - pulumi.set(__self__, "equals", equals) + _setter("equals", equals) if greater_than is not None: - pulumi.set(__self__, "greater_than", greater_than) + _setter("greater_than", greater_than) if greater_than_or_equal is not None: - pulumi.set(__self__, "greater_than_or_equal", greater_than_or_equal) + _setter("greater_than_or_equal", greater_than_or_equal) if less_than is not None: - pulumi.set(__self__, "less_than", less_than) + _setter("less_than", less_than) if less_than_or_equal is not None: - pulumi.set(__self__, "less_than_or_equal", less_than_or_equal) + _setter("less_than_or_equal", less_than_or_equal) if not_equals is not None: - pulumi.set(__self__, "not_equals", not_equals) + _setter("not_equals", not_equals) @property @pulumi.getter @@ -460,12 +628,31 @@ def __init__(__self__, *, :param 'OrganizationConfigurationDatasourcesMalwareProtectionArgs' malware_protection: Enable Malware Protection automatically for new member accounts. :param 'OrganizationConfigurationDatasourcesS3LogsArgs' s3_logs: Enable S3 Protection automatically for new member accounts. """ + OrganizationConfigurationDatasources._configure( + lambda key, value: pulumi.set(__self__, key, value), + kubernetes=kubernetes, + malware_protection=malware_protection, + s3_logs=s3_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kubernetes: Optional['outputs.OrganizationConfigurationDatasourcesKubernetes'] = None, + malware_protection: Optional['outputs.OrganizationConfigurationDatasourcesMalwareProtection'] = None, + s3_logs: Optional['outputs.OrganizationConfigurationDatasourcesS3Logs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if malware_protection is None and 'malwareProtection' in kwargs: + malware_protection = kwargs['malwareProtection'] + if s3_logs is None and 's3Logs' in kwargs: + s3_logs = kwargs['s3Logs'] + if kubernetes is not None: - pulumi.set(__self__, "kubernetes", kubernetes) + _setter("kubernetes", kubernetes) if malware_protection is not None: - pulumi.set(__self__, "malware_protection", malware_protection) + _setter("malware_protection", malware_protection) if s3_logs is not None: - pulumi.set(__self__, "s3_logs", s3_logs) + _setter("s3_logs", s3_logs) @property @pulumi.getter @@ -517,7 +704,22 @@ def __init__(__self__, *, :param 'OrganizationConfigurationDatasourcesKubernetesAuditLogsArgs' audit_logs: Enable Kubernetes Audit Logs Monitoring automatically for new member accounts. [Kubernetes protection](https://docs.aws.amazon.com/guardduty/latest/ug/kubernetes-protection.html). See Kubernetes Audit Logs below for more details. """ - pulumi.set(__self__, "audit_logs", audit_logs) + OrganizationConfigurationDatasourcesKubernetes._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit_logs=audit_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit_logs: Optional['outputs.OrganizationConfigurationDatasourcesKubernetesAuditLogs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_logs is None and 'auditLogs' in kwargs: + audit_logs = kwargs['auditLogs'] + if audit_logs is None: + raise TypeError("Missing 'audit_logs' argument") + + _setter("audit_logs", audit_logs) @property @pulumi.getter(name="auditLogs") @@ -537,7 +739,20 @@ def __init__(__self__, *, :param bool enable: If true, enables Kubernetes audit logs as a data source for [Kubernetes protection](https://docs.aws.amazon.com/guardduty/latest/ug/kubernetes-protection.html). Defaults to `true`. """ - pulumi.set(__self__, "enable", enable) + OrganizationConfigurationDatasourcesKubernetesAuditLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + + _setter("enable", enable) @property @pulumi.getter @@ -574,7 +789,22 @@ def __init__(__self__, *, :param 'OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsArgs' scan_ec2_instance_with_findings: Configure whether [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) for EC2 instances with findings should be auto-enabled for new members joining the organization. See Scan EC2 instance with findings below for more details. """ - pulumi.set(__self__, "scan_ec2_instance_with_findings", scan_ec2_instance_with_findings) + OrganizationConfigurationDatasourcesMalwareProtection._configure( + lambda key, value: pulumi.set(__self__, key, value), + scan_ec2_instance_with_findings=scan_ec2_instance_with_findings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scan_ec2_instance_with_findings: Optional['outputs.OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scan_ec2_instance_with_findings is None and 'scanEc2InstanceWithFindings' in kwargs: + scan_ec2_instance_with_findings = kwargs['scanEc2InstanceWithFindings'] + if scan_ec2_instance_with_findings is None: + raise TypeError("Missing 'scan_ec2_instance_with_findings' argument") + + _setter("scan_ec2_instance_with_findings", scan_ec2_instance_with_findings) @property @pulumi.getter(name="scanEc2InstanceWithFindings") @@ -611,7 +841,22 @@ def __init__(__self__, *, :param 'OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumesArgs' ebs_volumes: Configure whether scanning EBS volumes should be auto-enabled for new members joining the organization See EBS volumes below for more details. """ - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindings._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_volumes=ebs_volumes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_volumes: Optional['outputs.OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumes'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if ebs_volumes is None: + raise TypeError("Missing 'ebs_volumes' argument") + + _setter("ebs_volumes", ebs_volumes) @property @pulumi.getter(name="ebsVolumes") @@ -648,7 +893,22 @@ def __init__(__self__, *, :param bool auto_enable: If true, enables [Malware Protection](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) for all new accounts joining the organization. Defaults to `true`. """ - pulumi.set(__self__, "auto_enable", auto_enable) + OrganizationConfigurationDatasourcesMalwareProtectionScanEc2InstanceWithFindingsEbsVolumes._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable is None: + raise TypeError("Missing 'auto_enable' argument") + + _setter("auto_enable", auto_enable) @property @pulumi.getter(name="autoEnable") @@ -684,7 +944,22 @@ def __init__(__self__, *, """ :param bool auto_enable: *Deprecated:* Use `auto_enable_organization_members` instead. When this setting is enabled, all new accounts that are created in, or added to, the organization are added as a member accounts of the organization’s GuardDuty delegated administrator and GuardDuty is enabled in that AWS Region. """ - pulumi.set(__self__, "auto_enable", auto_enable) + OrganizationConfigurationDatasourcesS3Logs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable is None: + raise TypeError("Missing 'auto_enable' argument") + + _setter("auto_enable", auto_enable) @property @pulumi.getter(name="autoEnable") @@ -721,8 +996,27 @@ def __init__(__self__, *, :param str auto_enable: The status of the additional configuration that will be configured for the organization. Valid values: `NEW`, `ALL`, `NONE`. :param str name: The name of the additional configuration that will be configured for the organization. Valid values: `EKS_ADDON_MANAGEMENT`. """ - pulumi.set(__self__, "auto_enable", auto_enable) - pulumi.set(__self__, "name", name) + OrganizationConfigurationFeatureAdditionalConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable is None: + raise TypeError("Missing 'auto_enable' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("auto_enable", auto_enable) + _setter("name", name) @property @pulumi.getter(name="autoEnable") @@ -752,9 +1046,32 @@ def __init__(__self__, *, :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) + GetDetectorFeatureResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_configurations=additional_configurations, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_configurations: Optional[Sequence['outputs.GetDetectorFeatureAdditionalConfigurationResult']] = None, + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_configurations is None and 'additionalConfigurations' in kwargs: + additional_configurations = kwargs['additionalConfigurations'] + if additional_configurations is None: + raise TypeError("Missing 'additional_configurations' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("additional_configurations", additional_configurations) + _setter("name", name) + _setter("status", status) @property @pulumi.getter(name="additionalConfigurations") @@ -790,8 +1107,25 @@ def __init__(__self__, *, :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) + GetDetectorFeatureAdditionalConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("name", name) + _setter("status", status) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/guardduty/publishing_destination.py b/sdk/python/pulumi_aws/guardduty/publishing_destination.py index e5acb9bbb7d..a7e93f78f91 100644 --- a/sdk/python/pulumi_aws/guardduty/publishing_destination.py +++ b/sdk/python/pulumi_aws/guardduty/publishing_destination.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PublishingDestinationArgs', 'PublishingDestination'] @@ -27,11 +27,42 @@ def __init__(__self__, *, > **Note:** In case of missing permissions (S3 Bucket Policy _or_ KMS Key permissions) the resource will fail to create. If the permissions are changed after resource creation, this can be asked from the AWS API via the "DescribePublishingDestination" call (https://docs.aws.amazon.com/cli/latest/reference/guardduty/describe-publishing-destination.html). """ - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "detector_id", detector_id) - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + PublishingDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + detector_id=detector_id, + kms_key_arn=kms_key_arn, + destination_type=destination_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + destination_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if detector_id is None: + raise TypeError("Missing 'detector_id' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if kms_key_arn is None: + raise TypeError("Missing 'kms_key_arn' argument") + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + + _setter("destination_arn", destination_arn) + _setter("detector_id", detector_id) + _setter("kms_key_arn", kms_key_arn) if destination_type is not None: - pulumi.set(__self__, "destination_type", destination_type) + _setter("destination_type", destination_type) @property @pulumi.getter(name="destinationArn") @@ -100,14 +131,39 @@ def __init__(__self__, *, :param pulumi.Input[str] detector_id: The detector ID of the GuardDuty. :param pulumi.Input[str] kms_key_arn: The ARN of the KMS key used to encrypt GuardDuty findings. GuardDuty enforces this to be encrypted. """ + _PublishingDestinationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + destination_type=destination_type, + detector_id=detector_id, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + destination_type: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_type is None and 'destinationType' in kwargs: + destination_type = kwargs['destinationType'] + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if destination_arn is not None: - pulumi.set(__self__, "destination_arn", destination_arn) + _setter("destination_arn", destination_arn) if destination_type is not None: - pulumi.set(__self__, "destination_type", destination_type) + _setter("destination_type", destination_type) if detector_id is not None: - pulumi.set(__self__, "detector_id", detector_id) + _setter("detector_id", detector_id) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="destinationArn") @@ -355,6 +411,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PublishingDestinationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/guardduty/threat_intel_set.py b/sdk/python/pulumi_aws/guardduty/threat_intel_set.py index 8beb1a9a9f7..8dcf594b3c9 100644 --- a/sdk/python/pulumi_aws/guardduty/threat_intel_set.py +++ b/sdk/python/pulumi_aws/guardduty/threat_intel_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ThreatIntelSetArgs', 'ThreatIntelSet'] @@ -29,14 +29,45 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The friendly name to identify the ThreatIntelSet. :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. """ - pulumi.set(__self__, "activate", activate) - pulumi.set(__self__, "detector_id", detector_id) - pulumi.set(__self__, "format", format) - pulumi.set(__self__, "location", location) + ThreatIntelSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + activate=activate, + detector_id=detector_id, + format=format, + location=location, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activate: Optional[pulumi.Input[bool]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activate is None: + raise TypeError("Missing 'activate' argument") + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if detector_id is None: + raise TypeError("Missing 'detector_id' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if location is None: + raise TypeError("Missing 'location' argument") + + _setter("activate", activate) + _setter("detector_id", detector_id) + _setter("format", format) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -133,25 +164,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ThreatIntelSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + activate=activate, + arn=arn, + detector_id=detector_id, + format=format, + location=location, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activate: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + detector_id: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detector_id is None and 'detectorId' in kwargs: + detector_id = kwargs['detectorId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if activate is not None: - pulumi.set(__self__, "activate", activate) + _setter("activate", activate) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if detector_id is not None: - pulumi.set(__self__, "detector_id", detector_id) + _setter("detector_id", detector_id) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -364,6 +424,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ThreatIntelSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/_inputs.py b/sdk/python/pulumi_aws/iam/_inputs.py index a5fc0183f4d..4f3faa240b9 100644 --- a/sdk/python/pulumi_aws/iam/_inputs.py +++ b/sdk/python/pulumi_aws/iam/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -28,10 +28,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the role policy. :param pulumi.Input[str] policy: Policy document as a JSON formatted string. """ + RoleInlinePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -81,24 +94,57 @@ def __init__(__self__, *, :param Sequence[str] resources: List of resource ARNs that this statement applies to. This is required by AWS if used for an IAM policy. Conflicts with `not_resources`. :param str sid: Sid (statement ID) is an identifier for a policy statement. """ + GetPolicyDocumentStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + conditions=conditions, + effect=effect, + not_actions=not_actions, + not_principals=not_principals, + not_resources=not_resources, + principals=principals, + resources=resources, + sid=sid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + conditions: Optional[Sequence['GetPolicyDocumentStatementConditionArgs']] = None, + effect: Optional[str] = None, + not_actions: Optional[Sequence[str]] = None, + not_principals: Optional[Sequence['GetPolicyDocumentStatementNotPrincipalArgs']] = None, + not_resources: Optional[Sequence[str]] = None, + principals: Optional[Sequence['GetPolicyDocumentStatementPrincipalArgs']] = None, + resources: Optional[Sequence[str]] = None, + sid: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if not_actions is None and 'notActions' in kwargs: + not_actions = kwargs['notActions'] + if not_principals is None and 'notPrincipals' in kwargs: + not_principals = kwargs['notPrincipals'] + if not_resources is None and 'notResources' in kwargs: + not_resources = kwargs['notResources'] + if actions is not None: - pulumi.set(__self__, "actions", actions) + _setter("actions", actions) if conditions is not None: - pulumi.set(__self__, "conditions", conditions) + _setter("conditions", conditions) if effect is not None: - pulumi.set(__self__, "effect", effect) + _setter("effect", effect) if not_actions is not None: - pulumi.set(__self__, "not_actions", not_actions) + _setter("not_actions", not_actions) if not_principals is not None: - pulumi.set(__self__, "not_principals", not_principals) + _setter("not_principals", not_principals) if not_resources is not None: - pulumi.set(__self__, "not_resources", not_resources) + _setter("not_resources", not_resources) if principals is not None: - pulumi.set(__self__, "principals", principals) + _setter("principals", principals) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if sid is not None: - pulumi.set(__self__, "sid", sid) + _setter("sid", sid) @property @pulumi.getter @@ -220,9 +266,30 @@ def __init__(__self__, *, :param Sequence[str] values: Values to evaluate the condition against. If multiple values are provided, the condition matches if at least one of them applies. That is, AWS evaluates multiple values as though using an "OR" boolean operation. :param str variable: Name of a [Context Variable](http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) to apply the condition to. Context variables may either be standard AWS variables starting with `aws:` or service-specific variables prefixed with the service name. """ - pulumi.set(__self__, "test", test) - pulumi.set(__self__, "values", values) - pulumi.set(__self__, "variable", variable) + GetPolicyDocumentStatementConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + test=test, + values=values, + variable=variable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + test: Optional[str] = None, + values: Optional[Sequence[str]] = None, + variable: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if test is None: + raise TypeError("Missing 'test' argument") + if values is None: + raise TypeError("Missing 'values' argument") + if variable is None: + raise TypeError("Missing 'variable' argument") + + _setter("test", test) + _setter("values", values) + _setter("variable", variable) @property @pulumi.getter @@ -270,8 +337,25 @@ def __init__(__self__, *, :param Sequence[str] identifiers: List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. :param str type: Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. """ - pulumi.set(__self__, "identifiers", identifiers) - pulumi.set(__self__, "type", type) + GetPolicyDocumentStatementNotPrincipalArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifiers=identifiers, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifiers: Optional[Sequence[str]] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifiers is None: + raise TypeError("Missing 'identifiers' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("identifiers", identifiers) + _setter("type", type) @property @pulumi.getter @@ -307,8 +391,25 @@ def __init__(__self__, *, :param Sequence[str] identifiers: List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. :param str type: Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. """ - pulumi.set(__self__, "identifiers", identifiers) - pulumi.set(__self__, "type", type) + GetPolicyDocumentStatementPrincipalArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifiers=identifiers, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifiers: Optional[Sequence[str]] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifiers is None: + raise TypeError("Missing 'identifiers' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("identifiers", identifiers) + _setter("type", type) @property @pulumi.getter @@ -350,9 +451,30 @@ def __init__(__self__, *, For more information, see the `ContextKeyType` field of [`iam.ContextEntry`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ContextEntry.html) in the underlying API. :param Sequence[str] values: A set of one or more values for this context entry. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "values", values) + GetPrincipalPolicySimulationContextArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + type: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("type", type) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/iam/access_key.py b/sdk/python/pulumi_aws/iam/access_key.py index 5f21920cbfa..546c2551a31 100644 --- a/sdk/python/pulumi_aws/iam/access_key.py +++ b/sdk/python/pulumi_aws/iam/access_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccessKeyArgs', 'AccessKey'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] pgp_key: Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`, for use in the `encrypted_secret` output attribute. If providing a base-64 encoded PGP public key, make sure to provide the "raw" version and not the "armored" one (e.g. avoid passing the `-a` option to `gpg --export`). :param pulumi.Input[str] status: Access key status to apply. Defaults to `Active`. Valid values are `Active` and `Inactive`. """ - pulumi.set(__self__, "user", user) + AccessKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user=user, + pgp_key=pgp_key, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user: Optional[pulumi.Input[str]] = None, + pgp_key: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user is None: + raise TypeError("Missing 'user' argument") + if pgp_key is None and 'pgpKey' in kwargs: + pgp_key = kwargs['pgpKey'] + + _setter("user", user) if pgp_key is not None: - pulumi.set(__self__, "pgp_key", pgp_key) + _setter("pgp_key", pgp_key) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -90,24 +109,63 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Access key status to apply. Defaults to `Active`. Valid values are `Active` and `Inactive`. :param pulumi.Input[str] user: IAM user to associate with this access key. """ + _AccessKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + create_date=create_date, + encrypted_secret=encrypted_secret, + encrypted_ses_smtp_password_v4=encrypted_ses_smtp_password_v4, + key_fingerprint=key_fingerprint, + pgp_key=pgp_key, + secret=secret, + ses_smtp_password_v4=ses_smtp_password_v4, + status=status, + user=user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create_date: Optional[pulumi.Input[str]] = None, + encrypted_secret: Optional[pulumi.Input[str]] = None, + encrypted_ses_smtp_password_v4: Optional[pulumi.Input[str]] = None, + key_fingerprint: Optional[pulumi.Input[str]] = None, + pgp_key: Optional[pulumi.Input[str]] = None, + secret: Optional[pulumi.Input[str]] = None, + ses_smtp_password_v4: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_date is None and 'createDate' in kwargs: + create_date = kwargs['createDate'] + if encrypted_secret is None and 'encryptedSecret' in kwargs: + encrypted_secret = kwargs['encryptedSecret'] + if encrypted_ses_smtp_password_v4 is None and 'encryptedSesSmtpPasswordV4' in kwargs: + encrypted_ses_smtp_password_v4 = kwargs['encryptedSesSmtpPasswordV4'] + if key_fingerprint is None and 'keyFingerprint' in kwargs: + key_fingerprint = kwargs['keyFingerprint'] + if pgp_key is None and 'pgpKey' in kwargs: + pgp_key = kwargs['pgpKey'] + if ses_smtp_password_v4 is None and 'sesSmtpPasswordV4' in kwargs: + ses_smtp_password_v4 = kwargs['sesSmtpPasswordV4'] + if create_date is not None: - pulumi.set(__self__, "create_date", create_date) + _setter("create_date", create_date) if encrypted_secret is not None: - pulumi.set(__self__, "encrypted_secret", encrypted_secret) + _setter("encrypted_secret", encrypted_secret) if encrypted_ses_smtp_password_v4 is not None: - pulumi.set(__self__, "encrypted_ses_smtp_password_v4", encrypted_ses_smtp_password_v4) + _setter("encrypted_ses_smtp_password_v4", encrypted_ses_smtp_password_v4) if key_fingerprint is not None: - pulumi.set(__self__, "key_fingerprint", key_fingerprint) + _setter("key_fingerprint", key_fingerprint) if pgp_key is not None: - pulumi.set(__self__, "pgp_key", pgp_key) + _setter("pgp_key", pgp_key) if secret is not None: - pulumi.set(__self__, "secret", secret) + _setter("secret", secret) if ses_smtp_password_v4 is not None: - pulumi.set(__self__, "ses_smtp_password_v4", ses_smtp_password_v4) + _setter("ses_smtp_password_v4", ses_smtp_password_v4) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if user is not None: - pulumi.set(__self__, "user", user) + _setter("user", user) @property @pulumi.getter(name="createDate") @@ -333,6 +391,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccessKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/account_alias.py b/sdk/python/pulumi_aws/iam/account_alias.py index c0b0425413f..95edc5a6e69 100644 --- a/sdk/python/pulumi_aws/iam/account_alias.py +++ b/sdk/python/pulumi_aws/iam/account_alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountAliasArgs', 'AccountAlias'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a AccountAlias resource. :param pulumi.Input[str] account_alias: The account alias """ - pulumi.set(__self__, "account_alias", account_alias) + AccountAliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_alias=account_alias, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_alias: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_alias is None and 'accountAlias' in kwargs: + account_alias = kwargs['accountAlias'] + if account_alias is None: + raise TypeError("Missing 'account_alias' argument") + + _setter("account_alias", account_alias) @property @pulumi.getter(name="accountAlias") @@ -42,8 +57,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering AccountAlias resources. :param pulumi.Input[str] account_alias: The account alias """ + _AccountAliasState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_alias=account_alias, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_alias: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_alias is None and 'accountAlias' in kwargs: + account_alias = kwargs['accountAlias'] + if account_alias is not None: - pulumi.set(__self__, "account_alias", account_alias) + _setter("account_alias", account_alias) @property @pulumi.getter(name="accountAlias") @@ -129,6 +157,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountAliasArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/account_password_policy.py b/sdk/python/pulumi_aws/iam/account_password_policy.py index 03aab5be417..71b497ecbf4 100644 --- a/sdk/python/pulumi_aws/iam/account_password_policy.py +++ b/sdk/python/pulumi_aws/iam/account_password_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountPasswordPolicyArgs', 'AccountPasswordPolicy'] @@ -35,24 +35,69 @@ def __init__(__self__, *, :param pulumi.Input[bool] require_symbols: Whether to require symbols for user passwords. :param pulumi.Input[bool] require_uppercase_characters: Whether to require uppercase characters for user passwords. """ + AccountPasswordPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_users_to_change_password=allow_users_to_change_password, + hard_expiry=hard_expiry, + max_password_age=max_password_age, + minimum_password_length=minimum_password_length, + password_reuse_prevention=password_reuse_prevention, + require_lowercase_characters=require_lowercase_characters, + require_numbers=require_numbers, + require_symbols=require_symbols, + require_uppercase_characters=require_uppercase_characters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_users_to_change_password: Optional[pulumi.Input[bool]] = None, + hard_expiry: Optional[pulumi.Input[bool]] = None, + max_password_age: Optional[pulumi.Input[int]] = None, + minimum_password_length: Optional[pulumi.Input[int]] = None, + password_reuse_prevention: Optional[pulumi.Input[int]] = None, + require_lowercase_characters: Optional[pulumi.Input[bool]] = None, + require_numbers: Optional[pulumi.Input[bool]] = None, + require_symbols: Optional[pulumi.Input[bool]] = None, + require_uppercase_characters: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_users_to_change_password is None and 'allowUsersToChangePassword' in kwargs: + allow_users_to_change_password = kwargs['allowUsersToChangePassword'] + if hard_expiry is None and 'hardExpiry' in kwargs: + hard_expiry = kwargs['hardExpiry'] + if max_password_age is None and 'maxPasswordAge' in kwargs: + max_password_age = kwargs['maxPasswordAge'] + if minimum_password_length is None and 'minimumPasswordLength' in kwargs: + minimum_password_length = kwargs['minimumPasswordLength'] + if password_reuse_prevention is None and 'passwordReusePrevention' in kwargs: + password_reuse_prevention = kwargs['passwordReusePrevention'] + if require_lowercase_characters is None and 'requireLowercaseCharacters' in kwargs: + require_lowercase_characters = kwargs['requireLowercaseCharacters'] + if require_numbers is None and 'requireNumbers' in kwargs: + require_numbers = kwargs['requireNumbers'] + if require_symbols is None and 'requireSymbols' in kwargs: + require_symbols = kwargs['requireSymbols'] + if require_uppercase_characters is None and 'requireUppercaseCharacters' in kwargs: + require_uppercase_characters = kwargs['requireUppercaseCharacters'] + if allow_users_to_change_password is not None: - pulumi.set(__self__, "allow_users_to_change_password", allow_users_to_change_password) + _setter("allow_users_to_change_password", allow_users_to_change_password) if hard_expiry is not None: - pulumi.set(__self__, "hard_expiry", hard_expiry) + _setter("hard_expiry", hard_expiry) if max_password_age is not None: - pulumi.set(__self__, "max_password_age", max_password_age) + _setter("max_password_age", max_password_age) if minimum_password_length is not None: - pulumi.set(__self__, "minimum_password_length", minimum_password_length) + _setter("minimum_password_length", minimum_password_length) if password_reuse_prevention is not None: - pulumi.set(__self__, "password_reuse_prevention", password_reuse_prevention) + _setter("password_reuse_prevention", password_reuse_prevention) if require_lowercase_characters is not None: - pulumi.set(__self__, "require_lowercase_characters", require_lowercase_characters) + _setter("require_lowercase_characters", require_lowercase_characters) if require_numbers is not None: - pulumi.set(__self__, "require_numbers", require_numbers) + _setter("require_numbers", require_numbers) if require_symbols is not None: - pulumi.set(__self__, "require_symbols", require_symbols) + _setter("require_symbols", require_symbols) if require_uppercase_characters is not None: - pulumi.set(__self__, "require_uppercase_characters", require_uppercase_characters) + _setter("require_uppercase_characters", require_uppercase_characters) @property @pulumi.getter(name="allowUsersToChangePassword") @@ -189,26 +234,75 @@ def __init__(__self__, *, :param pulumi.Input[bool] require_symbols: Whether to require symbols for user passwords. :param pulumi.Input[bool] require_uppercase_characters: Whether to require uppercase characters for user passwords. """ + _AccountPasswordPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_users_to_change_password=allow_users_to_change_password, + expire_passwords=expire_passwords, + hard_expiry=hard_expiry, + max_password_age=max_password_age, + minimum_password_length=minimum_password_length, + password_reuse_prevention=password_reuse_prevention, + require_lowercase_characters=require_lowercase_characters, + require_numbers=require_numbers, + require_symbols=require_symbols, + require_uppercase_characters=require_uppercase_characters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_users_to_change_password: Optional[pulumi.Input[bool]] = None, + expire_passwords: Optional[pulumi.Input[bool]] = None, + hard_expiry: Optional[pulumi.Input[bool]] = None, + max_password_age: Optional[pulumi.Input[int]] = None, + minimum_password_length: Optional[pulumi.Input[int]] = None, + password_reuse_prevention: Optional[pulumi.Input[int]] = None, + require_lowercase_characters: Optional[pulumi.Input[bool]] = None, + require_numbers: Optional[pulumi.Input[bool]] = None, + require_symbols: Optional[pulumi.Input[bool]] = None, + require_uppercase_characters: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_users_to_change_password is None and 'allowUsersToChangePassword' in kwargs: + allow_users_to_change_password = kwargs['allowUsersToChangePassword'] + if expire_passwords is None and 'expirePasswords' in kwargs: + expire_passwords = kwargs['expirePasswords'] + if hard_expiry is None and 'hardExpiry' in kwargs: + hard_expiry = kwargs['hardExpiry'] + if max_password_age is None and 'maxPasswordAge' in kwargs: + max_password_age = kwargs['maxPasswordAge'] + if minimum_password_length is None and 'minimumPasswordLength' in kwargs: + minimum_password_length = kwargs['minimumPasswordLength'] + if password_reuse_prevention is None and 'passwordReusePrevention' in kwargs: + password_reuse_prevention = kwargs['passwordReusePrevention'] + if require_lowercase_characters is None and 'requireLowercaseCharacters' in kwargs: + require_lowercase_characters = kwargs['requireLowercaseCharacters'] + if require_numbers is None and 'requireNumbers' in kwargs: + require_numbers = kwargs['requireNumbers'] + if require_symbols is None and 'requireSymbols' in kwargs: + require_symbols = kwargs['requireSymbols'] + if require_uppercase_characters is None and 'requireUppercaseCharacters' in kwargs: + require_uppercase_characters = kwargs['requireUppercaseCharacters'] + if allow_users_to_change_password is not None: - pulumi.set(__self__, "allow_users_to_change_password", allow_users_to_change_password) + _setter("allow_users_to_change_password", allow_users_to_change_password) if expire_passwords is not None: - pulumi.set(__self__, "expire_passwords", expire_passwords) + _setter("expire_passwords", expire_passwords) if hard_expiry is not None: - pulumi.set(__self__, "hard_expiry", hard_expiry) + _setter("hard_expiry", hard_expiry) if max_password_age is not None: - pulumi.set(__self__, "max_password_age", max_password_age) + _setter("max_password_age", max_password_age) if minimum_password_length is not None: - pulumi.set(__self__, "minimum_password_length", minimum_password_length) + _setter("minimum_password_length", minimum_password_length) if password_reuse_prevention is not None: - pulumi.set(__self__, "password_reuse_prevention", password_reuse_prevention) + _setter("password_reuse_prevention", password_reuse_prevention) if require_lowercase_characters is not None: - pulumi.set(__self__, "require_lowercase_characters", require_lowercase_characters) + _setter("require_lowercase_characters", require_lowercase_characters) if require_numbers is not None: - pulumi.set(__self__, "require_numbers", require_numbers) + _setter("require_numbers", require_numbers) if require_symbols is not None: - pulumi.set(__self__, "require_symbols", require_symbols) + _setter("require_symbols", require_symbols) if require_uppercase_characters is not None: - pulumi.set(__self__, "require_uppercase_characters", require_uppercase_characters) + _setter("require_uppercase_characters", require_uppercase_characters) @property @pulumi.getter(name="allowUsersToChangePassword") @@ -434,6 +528,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountPasswordPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/get_access_keys.py b/sdk/python/pulumi_aws/iam/get_access_keys.py index a8966aec363..1e87676381f 100644 --- a/sdk/python/pulumi_aws/iam/get_access_keys.py +++ b/sdk/python/pulumi_aws/iam/get_access_keys.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/iam/get_account_alias.py b/sdk/python/pulumi_aws/iam/get_account_alias.py index 56064794b54..42e30c5b311 100644 --- a/sdk/python/pulumi_aws/iam/get_account_alias.py +++ b/sdk/python/pulumi_aws/iam/get_account_alias.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetAccountAliasResult', 'AwaitableGetAccountAliasResult', 'get_account_alias', + 'get_account_alias_output', ] @pulumi.output_type @@ -77,3 +78,22 @@ def get_account_alias(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableG return AwaitableGetAccountAliasResult( account_alias=pulumi.get(__ret__, 'account_alias'), id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_account_alias) +def get_account_alias_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAccountAliasResult]: + """ + The IAM Account Alias data source allows access to the account alias + for the effective account in which this provider is working. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + current = aws.iam.get_account_alias() + pulumi.export("accountId", current.account_alias) + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/iam/get_group.py b/sdk/python/pulumi_aws/iam/get_group.py index 7fd86e3a175..d1507f01781 100644 --- a/sdk/python/pulumi_aws/iam/get_group.py +++ b/sdk/python/pulumi_aws/iam/get_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/iam/get_instance_profile.py b/sdk/python/pulumi_aws/iam/get_instance_profile.py index c8245e8ff8b..55e66ea174d 100644 --- a/sdk/python/pulumi_aws/iam/get_instance_profile.py +++ b/sdk/python/pulumi_aws/iam/get_instance_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_instance_profiles.py b/sdk/python/pulumi_aws/iam/get_instance_profiles.py index c5088f15d28..1af50395839 100644 --- a/sdk/python/pulumi_aws/iam/get_instance_profiles.py +++ b/sdk/python/pulumi_aws/iam/get_instance_profiles.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_open_id_connect_provider.py b/sdk/python/pulumi_aws/iam/get_open_id_connect_provider.py index 9f048168416..5a0fe43ede9 100644 --- a/sdk/python/pulumi_aws/iam/get_open_id_connect_provider.py +++ b/sdk/python/pulumi_aws/iam/get_open_id_connect_provider.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_policy.py b/sdk/python/pulumi_aws/iam/get_policy.py index ba76494be9a..3e093e575c2 100644 --- a/sdk/python/pulumi_aws/iam/get_policy.py +++ b/sdk/python/pulumi_aws/iam/get_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_policy_document.py b/sdk/python/pulumi_aws/iam/get_policy_document.py index 1f31927f507..23277ffc639 100644 --- a/sdk/python/pulumi_aws/iam/get_policy_document.py +++ b/sdk/python/pulumi_aws/iam/get_policy_document.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/iam/get_principal_policy_simulation.py b/sdk/python/pulumi_aws/iam/get_principal_policy_simulation.py index 1f63d8ac1f2..ee4efd4657f 100644 --- a/sdk/python/pulumi_aws/iam/get_principal_policy_simulation.py +++ b/sdk/python/pulumi_aws/iam/get_principal_policy_simulation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/iam/get_role.py b/sdk/python/pulumi_aws/iam/get_role.py index cb2cd55ed8d..35199feb033 100644 --- a/sdk/python/pulumi_aws/iam/get_role.py +++ b/sdk/python/pulumi_aws/iam/get_role.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/iam/get_roles.py b/sdk/python/pulumi_aws/iam/get_roles.py index d910cbafd75..91d4f9405c9 100644 --- a/sdk/python/pulumi_aws/iam/get_roles.py +++ b/sdk/python/pulumi_aws/iam/get_roles.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_saml_provider.py b/sdk/python/pulumi_aws/iam/get_saml_provider.py index 8b4801c2df1..c9232be94d2 100644 --- a/sdk/python/pulumi_aws/iam/get_saml_provider.py +++ b/sdk/python/pulumi_aws/iam/get_saml_provider.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_server_certificate.py b/sdk/python/pulumi_aws/iam/get_server_certificate.py index 8c0c00bb8a9..76095d8f772 100644 --- a/sdk/python/pulumi_aws/iam/get_server_certificate.py +++ b/sdk/python/pulumi_aws/iam/get_server_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_session_context.py b/sdk/python/pulumi_aws/iam/get_session_context.py index abf946373fa..1ad4234b2a7 100644 --- a/sdk/python/pulumi_aws/iam/get_session_context.py +++ b/sdk/python/pulumi_aws/iam/get_session_context.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_user.py b/sdk/python/pulumi_aws/iam/get_user.py index db8a37aa7f9..3d3eaf8ff00 100644 --- a/sdk/python/pulumi_aws/iam/get_user.py +++ b/sdk/python/pulumi_aws/iam/get_user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_user_ssh_key.py b/sdk/python/pulumi_aws/iam/get_user_ssh_key.py index 43000635459..c525ec7beb3 100644 --- a/sdk/python/pulumi_aws/iam/get_user_ssh_key.py +++ b/sdk/python/pulumi_aws/iam/get_user_ssh_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/get_users.py b/sdk/python/pulumi_aws/iam/get_users.py index 2fbe2bd86eb..37b96e07748 100644 --- a/sdk/python/pulumi_aws/iam/get_users.py +++ b/sdk/python/pulumi_aws/iam/get_users.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iam/group.py b/sdk/python/pulumi_aws/iam/group.py index 3f3795c9ffd..f442f193a8d 100644 --- a/sdk/python/pulumi_aws/iam/group.py +++ b/sdk/python/pulumi_aws/iam/group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupArgs', 'Group'] @@ -21,10 +21,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The group's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". :param pulumi.Input[str] path: Path in which to create the group. """ + GroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter @@ -65,14 +78,33 @@ def __init__(__self__, *, :param pulumi.Input[str] path: Path in which to create the group. :param pulumi.Input[str] unique_id: The [unique ID][1] assigned by AWS. """ + _GroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + path=path, + unique_id=unique_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + unique_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unique_id is None and 'uniqueId' in kwargs: + unique_id = kwargs['uniqueId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if unique_id is not None: - pulumi.set(__self__, "unique_id", unique_id) + _setter("unique_id", unique_id) @property @pulumi.getter @@ -196,6 +228,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/group_membership.py b/sdk/python/pulumi_aws/iam/group_membership.py index ebe520f9fd0..8e98e85e11f 100644 --- a/sdk/python/pulumi_aws/iam/group_membership.py +++ b/sdk/python/pulumi_aws/iam/group_membership.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupMembershipArgs', 'GroupMembership'] @@ -23,10 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] users: A list of IAM User names to associate with the Group :param pulumi.Input[str] name: The name to identify the Group Membership """ - pulumi.set(__self__, "group", group) - pulumi.set(__self__, "users", users) + GroupMembershipArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group=group, + users=users, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group: Optional[pulumi.Input[str]] = None, + users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group is None: + raise TypeError("Missing 'group' argument") + if users is None: + raise TypeError("Missing 'users' argument") + + _setter("group", group) + _setter("users", users) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -77,12 +96,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name to identify the Group Membership :param pulumi.Input[Sequence[pulumi.Input[str]]] users: A list of IAM User names to associate with the Group """ + _GroupMembershipState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group=group, + name=name, + users=users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if users is not None: - pulumi.set(__self__, "users", users) + _setter("users", users) @property @pulumi.getter @@ -206,6 +240,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupMembershipArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/group_policy.py b/sdk/python/pulumi_aws/iam/group_policy.py index f5e59548cff..2afd82ec31e 100644 --- a/sdk/python/pulumi_aws/iam/group_policy.py +++ b/sdk/python/pulumi_aws/iam/group_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupPolicyArgs', 'GroupPolicy'] @@ -27,12 +27,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. """ - pulumi.set(__self__, "group", group) - pulumi.set(__self__, "policy", policy) + GroupPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group=group, + policy=policy, + name=name, + name_prefix=name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group is None: + raise TypeError("Missing 'group' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("group", group) + _setter("policy", policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) @property @pulumi.getter @@ -101,14 +124,33 @@ def __init__(__self__, *, prefix. Conflicts with `name`. :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. """ + _GroupPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group=group, + name=name, + name_prefix=name_prefix, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -258,6 +300,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/group_policy_attachment.py b/sdk/python/pulumi_aws/iam/group_policy_attachment.py index 29f996a67c1..eef47ea0f87 100644 --- a/sdk/python/pulumi_aws/iam/group_policy_attachment.py +++ b/sdk/python/pulumi_aws/iam/group_policy_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupPolicyAttachmentArgs', 'GroupPolicyAttachment'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] group: The group the policy should be applied to :param pulumi.Input[str] policy_arn: The ARN of the policy you want to apply """ - pulumi.set(__self__, "group", group) - pulumi.set(__self__, "policy_arn", policy_arn) + GroupPolicyAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group=group, + policy_arn=policy_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group: Optional[pulumi.Input[str]] = None, + policy_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group is None: + raise TypeError("Missing 'group' argument") + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if policy_arn is None: + raise TypeError("Missing 'policy_arn' argument") + + _setter("group", group) + _setter("policy_arn", policy_arn) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] group: The group the policy should be applied to :param pulumi.Input[str] policy_arn: The ARN of the policy you want to apply """ + _GroupPolicyAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group=group, + policy_arn=policy_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group: Optional[pulumi.Input[str]] = None, + policy_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if policy_arn is not None: - pulumi.set(__self__, "policy_arn", policy_arn) + _setter("policy_arn", policy_arn) @property @pulumi.getter @@ -174,6 +208,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupPolicyAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/instance_profile.py b/sdk/python/pulumi_aws/iam/instance_profile.py index 71e7bb9dc68..89ff3d2dfd8 100644 --- a/sdk/python/pulumi_aws/iam/instance_profile.py +++ b/sdk/python/pulumi_aws/iam/instance_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InstanceProfileArgs', 'InstanceProfile'] @@ -27,16 +27,37 @@ def __init__(__self__, *, :param pulumi.Input[str] role: Name of the role to add to the profile. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the IAM Instance Profile. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + InstanceProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + name_prefix=name_prefix, + path=path, + role=role, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -123,27 +144,62 @@ def __init__(__self__, *, :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] unique_id: [Unique ID][1] assigned by AWS. """ + _InstanceProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + create_date=create_date, + name=name, + name_prefix=name_prefix, + path=path, + role=role, + tags=tags, + tags_all=tags_all, + unique_id=unique_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + create_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + unique_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_date is None and 'createDate' in kwargs: + create_date = kwargs['createDate'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if unique_id is None and 'uniqueId' in kwargs: + unique_id = kwargs['uniqueId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if create_date is not None: - pulumi.set(__self__, "create_date", create_date) + _setter("create_date", create_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if unique_id is not None: - pulumi.set(__self__, "unique_id", unique_id) + _setter("unique_id", unique_id) @property @pulumi.getter @@ -354,6 +410,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/open_id_connect_provider.py b/sdk/python/pulumi_aws/iam/open_id_connect_provider.py index 92dc0fa0436..fc1f711d3c1 100644 --- a/sdk/python/pulumi_aws/iam/open_id_connect_provider.py +++ b/sdk/python/pulumi_aws/iam/open_id_connect_provider.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OpenIdConnectProviderArgs', 'OpenIdConnectProvider'] @@ -25,11 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[str] url: The URL of the identity provider. Corresponds to the _iss_ claim. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the IAM OIDC provider. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "client_id_lists", client_id_lists) - pulumi.set(__self__, "thumbprint_lists", thumbprint_lists) - pulumi.set(__self__, "url", url) + OpenIdConnectProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id_lists=client_id_lists, + thumbprint_lists=thumbprint_lists, + url=url, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + thumbprint_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id_lists is None and 'clientIdLists' in kwargs: + client_id_lists = kwargs['clientIdLists'] + if client_id_lists is None: + raise TypeError("Missing 'client_id_lists' argument") + if thumbprint_lists is None and 'thumbprintLists' in kwargs: + thumbprint_lists = kwargs['thumbprintLists'] + if thumbprint_lists is None: + raise TypeError("Missing 'thumbprint_lists' argument") + if url is None: + raise TypeError("Missing 'url' argument") + + _setter("client_id_lists", client_id_lists) + _setter("thumbprint_lists", thumbprint_lists) + _setter("url", url) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clientIdLists") @@ -98,21 +125,48 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] thumbprint_lists: A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). :param pulumi.Input[str] url: The URL of the identity provider. Corresponds to the _iss_ claim. """ + _OpenIdConnectProviderState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + client_id_lists=client_id_lists, + tags=tags, + tags_all=tags_all, + thumbprint_lists=thumbprint_lists, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + client_id_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + thumbprint_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id_lists is None and 'clientIdLists' in kwargs: + client_id_lists = kwargs['clientIdLists'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if thumbprint_lists is None and 'thumbprintLists' in kwargs: + thumbprint_lists = kwargs['thumbprintLists'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if client_id_lists is not None: - pulumi.set(__self__, "client_id_lists", client_id_lists) + _setter("client_id_lists", client_id_lists) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if thumbprint_lists is not None: - pulumi.set(__self__, "thumbprint_lists", thumbprint_lists) + _setter("thumbprint_lists", thumbprint_lists) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter @@ -269,6 +323,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OpenIdConnectProviderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/outputs.py b/sdk/python/pulumi_aws/iam/outputs.py index 6cb87b404ce..9d1fa26e2ea 100644 --- a/sdk/python/pulumi_aws/iam/outputs.py +++ b/sdk/python/pulumi_aws/iam/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -34,10 +34,23 @@ def __init__(__self__, *, :param str name: Name of the role policy. :param str policy: Policy document as a JSON formatted string. """ + RoleInlinePolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -67,9 +80,34 @@ def __init__(__self__, *, :param str create_date: Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the access key was created. :param str status: Access key status. Possible values are `Active` and `Inactive`. """ - pulumi.set(__self__, "access_key_id", access_key_id) - pulumi.set(__self__, "create_date", create_date) - pulumi.set(__self__, "status", status) + GetAccessKeysAccessKeyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_key_id=access_key_id, + create_date=create_date, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_key_id: Optional[str] = None, + create_date: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_key_id is None and 'accessKeyId' in kwargs: + access_key_id = kwargs['accessKeyId'] + if access_key_id is None: + raise TypeError("Missing 'access_key_id' argument") + if create_date is None and 'createDate' in kwargs: + create_date = kwargs['createDate'] + if create_date is None: + raise TypeError("Missing 'create_date' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("access_key_id", access_key_id) + _setter("create_date", create_date) + _setter("status", status) @property @pulumi.getter(name="accessKeyId") @@ -109,10 +147,39 @@ def __init__(__self__, *, :param str user_id: Stable and unique string identifying the IAM user. :param str user_name: Name of the IAM user. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "path", path) - pulumi.set(__self__, "user_id", user_id) - pulumi.set(__self__, "user_name", user_name) + GetGroupUserResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + path=path, + user_id=user_id, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + path: Optional[str] = None, + user_id: Optional[str] = None, + user_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_id is None: + raise TypeError("Missing 'user_id' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + + _setter("arn", arn) + _setter("path", path) + _setter("user_id", user_id) + _setter("user_name", user_name) @property @pulumi.getter @@ -170,24 +237,57 @@ def __init__(__self__, *, :param Sequence[str] resources: List of resource ARNs that this statement applies to. This is required by AWS if used for an IAM policy. Conflicts with `not_resources`. :param str sid: Sid (statement ID) is an identifier for a policy statement. """ + GetPolicyDocumentStatementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + conditions=conditions, + effect=effect, + not_actions=not_actions, + not_principals=not_principals, + not_resources=not_resources, + principals=principals, + resources=resources, + sid=sid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + conditions: Optional[Sequence['outputs.GetPolicyDocumentStatementConditionResult']] = None, + effect: Optional[str] = None, + not_actions: Optional[Sequence[str]] = None, + not_principals: Optional[Sequence['outputs.GetPolicyDocumentStatementNotPrincipalResult']] = None, + not_resources: Optional[Sequence[str]] = None, + principals: Optional[Sequence['outputs.GetPolicyDocumentStatementPrincipalResult']] = None, + resources: Optional[Sequence[str]] = None, + sid: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if not_actions is None and 'notActions' in kwargs: + not_actions = kwargs['notActions'] + if not_principals is None and 'notPrincipals' in kwargs: + not_principals = kwargs['notPrincipals'] + if not_resources is None and 'notResources' in kwargs: + not_resources = kwargs['notResources'] + if actions is not None: - pulumi.set(__self__, "actions", actions) + _setter("actions", actions) if conditions is not None: - pulumi.set(__self__, "conditions", conditions) + _setter("conditions", conditions) if effect is not None: - pulumi.set(__self__, "effect", effect) + _setter("effect", effect) if not_actions is not None: - pulumi.set(__self__, "not_actions", not_actions) + _setter("not_actions", not_actions) if not_principals is not None: - pulumi.set(__self__, "not_principals", not_principals) + _setter("not_principals", not_principals) if not_resources is not None: - pulumi.set(__self__, "not_resources", not_resources) + _setter("not_resources", not_resources) if principals is not None: - pulumi.set(__self__, "principals", principals) + _setter("principals", principals) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if sid is not None: - pulumi.set(__self__, "sid", sid) + _setter("sid", sid) @property @pulumi.getter @@ -273,9 +373,30 @@ def __init__(__self__, *, :param Sequence[str] values: Values to evaluate the condition against. If multiple values are provided, the condition matches if at least one of them applies. That is, AWS evaluates multiple values as though using an "OR" boolean operation. :param str variable: Name of a [Context Variable](http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) to apply the condition to. Context variables may either be standard AWS variables starting with `aws:` or service-specific variables prefixed with the service name. """ - pulumi.set(__self__, "test", test) - pulumi.set(__self__, "values", values) - pulumi.set(__self__, "variable", variable) + GetPolicyDocumentStatementConditionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + test=test, + values=values, + variable=variable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + test: Optional[str] = None, + values: Optional[Sequence[str]] = None, + variable: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if test is None: + raise TypeError("Missing 'test' argument") + if values is None: + raise TypeError("Missing 'values' argument") + if variable is None: + raise TypeError("Missing 'variable' argument") + + _setter("test", test) + _setter("values", values) + _setter("variable", variable) @property @pulumi.getter @@ -311,8 +432,25 @@ def __init__(__self__, *, :param Sequence[str] identifiers: List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. :param str type: Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. """ - pulumi.set(__self__, "identifiers", identifiers) - pulumi.set(__self__, "type", type) + GetPolicyDocumentStatementNotPrincipalResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifiers=identifiers, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifiers: Optional[Sequence[str]] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifiers is None: + raise TypeError("Missing 'identifiers' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("identifiers", identifiers) + _setter("type", type) @property @pulumi.getter @@ -340,8 +478,25 @@ def __init__(__self__, *, :param Sequence[str] identifiers: List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. :param str type: Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. """ - pulumi.set(__self__, "identifiers", identifiers) - pulumi.set(__self__, "type", type) + GetPolicyDocumentStatementPrincipalResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifiers=identifiers, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifiers: Optional[Sequence[str]] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifiers is None: + raise TypeError("Missing 'identifiers' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("identifiers", identifiers) + _setter("type", type) @property @pulumi.getter @@ -375,9 +530,30 @@ def __init__(__self__, *, For more information, see the `ContextKeyType` field of [`iam.ContextEntry`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ContextEntry.html) in the underlying API. :param Sequence[str] values: A set of one or more values for this context entry. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "values", values) + GetPrincipalPolicySimulationContextResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + type=type, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + type: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("type", type) + _setter("values", values) @property @pulumi.getter @@ -427,13 +603,60 @@ def __init__(__self__, *, :param Sequence[str] missing_context_keys: A set of context keys (or condition keys) that were needed by some of the policies contributing to this result but not specified using a `context` block in the configuration. Missing or incorrect context keys will typically cause a simulated request to be disallowed. :param str resource_arn: ARN of the resource that was used for this particular request. When you specify multiple actions and multiple resource ARNs, that causes a separate policy request for each combination of unique action and resource. """ - pulumi.set(__self__, "action_name", action_name) - pulumi.set(__self__, "allowed", allowed) - pulumi.set(__self__, "decision", decision) - pulumi.set(__self__, "decision_details", decision_details) - pulumi.set(__self__, "matched_statements", matched_statements) - pulumi.set(__self__, "missing_context_keys", missing_context_keys) - pulumi.set(__self__, "resource_arn", resource_arn) + GetPrincipalPolicySimulationResultResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_name=action_name, + allowed=allowed, + decision=decision, + decision_details=decision_details, + matched_statements=matched_statements, + missing_context_keys=missing_context_keys, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_name: Optional[str] = None, + allowed: Optional[bool] = None, + decision: Optional[str] = None, + decision_details: Optional[Mapping[str, str]] = None, + matched_statements: Optional[Sequence['outputs.GetPrincipalPolicySimulationResultMatchedStatementResult']] = None, + missing_context_keys: Optional[Sequence[str]] = None, + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_name is None and 'actionName' in kwargs: + action_name = kwargs['actionName'] + if action_name is None: + raise TypeError("Missing 'action_name' argument") + if allowed is None: + raise TypeError("Missing 'allowed' argument") + if decision is None: + raise TypeError("Missing 'decision' argument") + if decision_details is None and 'decisionDetails' in kwargs: + decision_details = kwargs['decisionDetails'] + if decision_details is None: + raise TypeError("Missing 'decision_details' argument") + if matched_statements is None and 'matchedStatements' in kwargs: + matched_statements = kwargs['matchedStatements'] + if matched_statements is None: + raise TypeError("Missing 'matched_statements' argument") + if missing_context_keys is None and 'missingContextKeys' in kwargs: + missing_context_keys = kwargs['missingContextKeys'] + if missing_context_keys is None: + raise TypeError("Missing 'missing_context_keys' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("action_name", action_name) + _setter("allowed", allowed) + _setter("decision", decision) + _setter("decision_details", decision_details) + _setter("matched_statements", matched_statements) + _setter("missing_context_keys", missing_context_keys) + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="actionName") @@ -497,8 +720,29 @@ class GetPrincipalPolicySimulationResultMatchedStatementResult(dict): def __init__(__self__, *, source_policy_id: str, source_policy_type: str): - pulumi.set(__self__, "source_policy_id", source_policy_id) - pulumi.set(__self__, "source_policy_type", source_policy_type) + GetPrincipalPolicySimulationResultMatchedStatementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_policy_id=source_policy_id, + source_policy_type=source_policy_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_policy_id: Optional[str] = None, + source_policy_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_policy_id is None and 'sourcePolicyId' in kwargs: + source_policy_id = kwargs['sourcePolicyId'] + if source_policy_id is None: + raise TypeError("Missing 'source_policy_id' argument") + if source_policy_type is None and 'sourcePolicyType' in kwargs: + source_policy_type = kwargs['sourcePolicyType'] + if source_policy_type is None: + raise TypeError("Missing 'source_policy_type' argument") + + _setter("source_policy_id", source_policy_id) + _setter("source_policy_type", source_policy_type) @property @pulumi.getter(name="sourcePolicyId") @@ -520,8 +764,27 @@ def __init__(__self__, *, :param str last_used_date: The date and time, in RFC 3339 format, that the role was last used. :param str region: The name of the AWS Region in which the role was last used. """ - pulumi.set(__self__, "last_used_date", last_used_date) - pulumi.set(__self__, "region", region) + GetRoleRoleLastUsedResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + last_used_date=last_used_date, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + last_used_date: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if last_used_date is None and 'lastUsedDate' in kwargs: + last_used_date = kwargs['lastUsedDate'] + if last_used_date is None: + raise TypeError("Missing 'last_used_date' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("last_used_date", last_used_date) + _setter("region", region) @property @pulumi.getter(name="lastUsedDate") diff --git a/sdk/python/pulumi_aws/iam/policy.py b/sdk/python/pulumi_aws/iam/policy.py index 7c26104a681..6a1f2f066b0 100644 --- a/sdk/python/pulumi_aws/iam/policy.py +++ b/sdk/python/pulumi_aws/iam/policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PolicyArgs', 'Policy'] @@ -30,17 +30,42 @@ def __init__(__self__, *, See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the IAM Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "policy", policy) + PolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + description=description, + name=name, + name_prefix=name_prefix, + path=path, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("policy", policy) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -141,27 +166,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the IAM Policy. 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. """ + _PolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + name_prefix=name_prefix, + path=path, + policy=policy, + policy_id=policy_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + policy_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if policy_id is None and 'policyId' in kwargs: + policy_id = kwargs['policyId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if policy_id is not None: - pulumi.set(__self__, "policy_id", policy_id) + _setter("policy_id", policy_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -376,6 +434,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/policy_attachment.py b/sdk/python/pulumi_aws/iam/policy_attachment.py index e73c8611222..92606efc928 100644 --- a/sdk/python/pulumi_aws/iam/policy_attachment.py +++ b/sdk/python/pulumi_aws/iam/policy_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PolicyAttachmentArgs', 'PolicyAttachment'] @@ -27,15 +27,38 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: The role(s) the policy should be applied to :param pulumi.Input[Sequence[pulumi.Input[str]]] users: The user(s) the policy should be applied to """ - pulumi.set(__self__, "policy_arn", policy_arn) + PolicyAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_arn=policy_arn, + groups=groups, + name=name, + roles=roles, + users=users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_arn: Optional[pulumi.Input[str]] = None, + groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if policy_arn is None: + raise TypeError("Missing 'policy_arn' argument") + + _setter("policy_arn", policy_arn) if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if roles is not None: - pulumi.set(__self__, "roles", roles) + _setter("roles", roles) if users is not None: - pulumi.set(__self__, "users", users) + _setter("users", users) @property @pulumi.getter(name="policyArn") @@ -114,16 +137,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: The role(s) the policy should be applied to :param pulumi.Input[Sequence[pulumi.Input[str]]] users: The user(s) the policy should be applied to """ + _PolicyAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + groups=groups, + name=name, + policy_arn=policy_arn, + roles=roles, + users=users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_arn: Optional[pulumi.Input[str]] = None, + roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy_arn is not None: - pulumi.set(__self__, "policy_arn", policy_arn) + _setter("policy_arn", policy_arn) if roles is not None: - pulumi.set(__self__, "roles", roles) + _setter("roles", roles) if users is not None: - pulumi.set(__self__, "users", users) + _setter("users", users) @property @pulumi.getter @@ -303,6 +347,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/role.py b/sdk/python/pulumi_aws/iam/role.py index 25b3c135314..f34b8056eec 100644 --- a/sdk/python/pulumi_aws/iam/role.py +++ b/sdk/python/pulumi_aws/iam/role.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -44,27 +44,74 @@ def __init__(__self__, *, :param pulumi.Input[str] permissions_boundary: ARN of the policy that is used to set the permissions boundary for the role. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of tags for the IAM role. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "assume_role_policy", assume_role_policy) + RoleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + assume_role_policy=assume_role_policy, + description=description, + force_detach_policies=force_detach_policies, + inline_policies=inline_policies, + managed_policy_arns=managed_policy_arns, + max_session_duration=max_session_duration, + name=name, + name_prefix=name_prefix, + path=path, + permissions_boundary=permissions_boundary, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assume_role_policy: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + force_detach_policies: Optional[pulumi.Input[bool]] = None, + inline_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RoleInlinePolicyArgs']]]] = None, + managed_policy_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + max_session_duration: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + permissions_boundary: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assume_role_policy is None and 'assumeRolePolicy' in kwargs: + assume_role_policy = kwargs['assumeRolePolicy'] + if assume_role_policy is None: + raise TypeError("Missing 'assume_role_policy' argument") + if force_detach_policies is None and 'forceDetachPolicies' in kwargs: + force_detach_policies = kwargs['forceDetachPolicies'] + if inline_policies is None and 'inlinePolicies' in kwargs: + inline_policies = kwargs['inlinePolicies'] + if managed_policy_arns is None and 'managedPolicyArns' in kwargs: + managed_policy_arns = kwargs['managedPolicyArns'] + if max_session_duration is None and 'maxSessionDuration' in kwargs: + max_session_duration = kwargs['maxSessionDuration'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if permissions_boundary is None and 'permissionsBoundary' in kwargs: + permissions_boundary = kwargs['permissionsBoundary'] + + _setter("assume_role_policy", assume_role_policy) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_detach_policies is not None: - pulumi.set(__self__, "force_detach_policies", force_detach_policies) + _setter("force_detach_policies", force_detach_policies) if inline_policies is not None: - pulumi.set(__self__, "inline_policies", inline_policies) + _setter("inline_policies", inline_policies) if managed_policy_arns is not None: - pulumi.set(__self__, "managed_policy_arns", managed_policy_arns) + _setter("managed_policy_arns", managed_policy_arns) if max_session_duration is not None: - pulumi.set(__self__, "max_session_duration", max_session_duration) + _setter("max_session_duration", max_session_duration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if permissions_boundary is not None: - pulumi.set(__self__, "permissions_boundary", permissions_boundary) + _setter("permissions_boundary", permissions_boundary) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="assumeRolePolicy") @@ -239,39 +286,98 @@ def __init__(__self__, *, :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] unique_id: Stable and unique string identifying the role. """ + _RoleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + assume_role_policy=assume_role_policy, + create_date=create_date, + description=description, + force_detach_policies=force_detach_policies, + inline_policies=inline_policies, + managed_policy_arns=managed_policy_arns, + max_session_duration=max_session_duration, + name=name, + name_prefix=name_prefix, + path=path, + permissions_boundary=permissions_boundary, + tags=tags, + tags_all=tags_all, + unique_id=unique_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + assume_role_policy: Optional[pulumi.Input[str]] = None, + create_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + force_detach_policies: Optional[pulumi.Input[bool]] = None, + inline_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RoleInlinePolicyArgs']]]] = None, + managed_policy_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + max_session_duration: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + permissions_boundary: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + unique_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assume_role_policy is None and 'assumeRolePolicy' in kwargs: + assume_role_policy = kwargs['assumeRolePolicy'] + if create_date is None and 'createDate' in kwargs: + create_date = kwargs['createDate'] + if force_detach_policies is None and 'forceDetachPolicies' in kwargs: + force_detach_policies = kwargs['forceDetachPolicies'] + if inline_policies is None and 'inlinePolicies' in kwargs: + inline_policies = kwargs['inlinePolicies'] + if managed_policy_arns is None and 'managedPolicyArns' in kwargs: + managed_policy_arns = kwargs['managedPolicyArns'] + if max_session_duration is None and 'maxSessionDuration' in kwargs: + max_session_duration = kwargs['maxSessionDuration'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if permissions_boundary is None and 'permissionsBoundary' in kwargs: + permissions_boundary = kwargs['permissionsBoundary'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if unique_id is None and 'uniqueId' in kwargs: + unique_id = kwargs['uniqueId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if assume_role_policy is not None: - pulumi.set(__self__, "assume_role_policy", assume_role_policy) + _setter("assume_role_policy", assume_role_policy) if create_date is not None: - pulumi.set(__self__, "create_date", create_date) + _setter("create_date", create_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_detach_policies is not None: - pulumi.set(__self__, "force_detach_policies", force_detach_policies) + _setter("force_detach_policies", force_detach_policies) if inline_policies is not None: - pulumi.set(__self__, "inline_policies", inline_policies) + _setter("inline_policies", inline_policies) if managed_policy_arns is not None: - pulumi.set(__self__, "managed_policy_arns", managed_policy_arns) + _setter("managed_policy_arns", managed_policy_arns) if max_session_duration is not None: - pulumi.set(__self__, "max_session_duration", max_session_duration) + _setter("max_session_duration", max_session_duration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if permissions_boundary is not None: - pulumi.set(__self__, "permissions_boundary", permissions_boundary) + _setter("permissions_boundary", permissions_boundary) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if unique_id is not None: - pulumi.set(__self__, "unique_id", unique_id) + _setter("unique_id", unique_id) @property @pulumi.getter @@ -808,6 +914,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RoleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/role_policy.py b/sdk/python/pulumi_aws/iam/role_policy.py index cfd40802291..637db426961 100644 --- a/sdk/python/pulumi_aws/iam/role_policy.py +++ b/sdk/python/pulumi_aws/iam/role_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RolePolicyArgs', 'RolePolicy'] @@ -27,12 +27,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "role", role) + RolePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + role=role, + name=name, + name_prefix=name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if role is None: + raise TypeError("Missing 'role' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("policy", policy) + _setter("role", role) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) @property @pulumi.getter @@ -101,14 +124,33 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The inline policy document. This is a JSON formatted string. For more information about building IAM policy documents with the provider, see the AWS IAM Policy Document Guide :param pulumi.Input[str] role: The name of the IAM role to attach to the policy. """ + _RolePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + name_prefix=name_prefix, + policy=policy, + role=role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) @property @pulumi.getter @@ -282,6 +324,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RolePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/role_policy_attachment.py b/sdk/python/pulumi_aws/iam/role_policy_attachment.py index 0ebc5af14d2..cb264e996f1 100644 --- a/sdk/python/pulumi_aws/iam/role_policy_attachment.py +++ b/sdk/python/pulumi_aws/iam/role_policy_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RolePolicyAttachmentArgs', 'RolePolicyAttachment'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_arn: The ARN of the policy you want to apply :param pulumi.Input[str] role: The name of the IAM role to which the policy should be applied """ - pulumi.set(__self__, "policy_arn", policy_arn) - pulumi.set(__self__, "role", role) + RolePolicyAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_arn=policy_arn, + role=role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_arn: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if policy_arn is None: + raise TypeError("Missing 'policy_arn' argument") + if role is None: + raise TypeError("Missing 'role' argument") + + _setter("policy_arn", policy_arn) + _setter("role", role) @property @pulumi.getter(name="policyArn") @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_arn: The ARN of the policy you want to apply :param pulumi.Input[str] role: The name of the IAM role to which the policy should be applied """ + _RolePolicyAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_arn=policy_arn, + role=role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_arn: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if policy_arn is not None: - pulumi.set(__self__, "policy_arn", policy_arn) + _setter("policy_arn", policy_arn) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) @property @pulumi.getter(name="policyArn") @@ -204,6 +238,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RolePolicyAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/saml_provider.py b/sdk/python/pulumi_aws/iam/saml_provider.py index c3d478030f0..c1b5ad8e005 100644 --- a/sdk/python/pulumi_aws/iam/saml_provider.py +++ b/sdk/python/pulumi_aws/iam/saml_provider.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SamlProviderArgs', 'SamlProvider'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the provider to create. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the IAM SAML provider. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "saml_metadata_document", saml_metadata_document) + SamlProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + saml_metadata_document=saml_metadata_document, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + saml_metadata_document: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if saml_metadata_document is None and 'samlMetadataDocument' in kwargs: + saml_metadata_document = kwargs['samlMetadataDocument'] + if saml_metadata_document is None: + raise TypeError("Missing 'saml_metadata_document' argument") + + _setter("saml_metadata_document", saml_metadata_document) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="samlMetadataDocument") @@ -84,21 +103,48 @@ def __init__(__self__, *, :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] valid_until: The expiration date and time for the SAML provider in RFC1123 format, e.g., `Mon, 02 Jan 2006 15:04:05 MST`. """ + _SamlProviderState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + saml_metadata_document=saml_metadata_document, + tags=tags, + tags_all=tags_all, + valid_until=valid_until, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + saml_metadata_document: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + valid_until: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if saml_metadata_document is None and 'samlMetadataDocument' in kwargs: + saml_metadata_document = kwargs['samlMetadataDocument'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if valid_until is None and 'validUntil' in kwargs: + valid_until = kwargs['validUntil'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if saml_metadata_document is not None: - pulumi.set(__self__, "saml_metadata_document", saml_metadata_document) + _setter("saml_metadata_document", saml_metadata_document) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if valid_until is not None: - pulumi.set(__self__, "valid_until", valid_until) + _setter("valid_until", valid_until) @property @pulumi.getter @@ -247,6 +293,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SamlProviderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/security_token_service_preferences.py b/sdk/python/pulumi_aws/iam/security_token_service_preferences.py index f943218b1ce..9ca7d7c2d97 100644 --- a/sdk/python/pulumi_aws/iam/security_token_service_preferences.py +++ b/sdk/python/pulumi_aws/iam/security_token_service_preferences.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SecurityTokenServicePreferencesArgs', 'SecurityTokenServicePreferences'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a SecurityTokenServicePreferences resource. :param pulumi.Input[str] global_endpoint_token_version: The version of the STS global endpoint token. Valid values: `v1Token`, `v2Token`. """ - pulumi.set(__self__, "global_endpoint_token_version", global_endpoint_token_version) + SecurityTokenServicePreferencesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_endpoint_token_version=global_endpoint_token_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_endpoint_token_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_endpoint_token_version is None and 'globalEndpointTokenVersion' in kwargs: + global_endpoint_token_version = kwargs['globalEndpointTokenVersion'] + if global_endpoint_token_version is None: + raise TypeError("Missing 'global_endpoint_token_version' argument") + + _setter("global_endpoint_token_version", global_endpoint_token_version) @property @pulumi.getter(name="globalEndpointTokenVersion") @@ -42,8 +57,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering SecurityTokenServicePreferences resources. :param pulumi.Input[str] global_endpoint_token_version: The version of the STS global endpoint token. Valid values: `v1Token`, `v2Token`. """ + _SecurityTokenServicePreferencesState._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_endpoint_token_version=global_endpoint_token_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_endpoint_token_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_endpoint_token_version is None and 'globalEndpointTokenVersion' in kwargs: + global_endpoint_token_version = kwargs['globalEndpointTokenVersion'] + if global_endpoint_token_version is not None: - pulumi.set(__self__, "global_endpoint_token_version", global_endpoint_token_version) + _setter("global_endpoint_token_version", global_endpoint_token_version) @property @pulumi.getter(name="globalEndpointTokenVersion") @@ -109,6 +137,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecurityTokenServicePreferencesArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/server_certificate.py b/sdk/python/pulumi_aws/iam/server_certificate.py index dea2a1c0de1..56d3c0af838 100644 --- a/sdk/python/pulumi_aws/iam/server_certificate.py +++ b/sdk/python/pulumi_aws/iam/server_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ServerCertificateArgs', 'ServerCertificate'] @@ -41,18 +41,53 @@ def __init__(__self__, *, > **NOTE:** AWS performs behind-the-scenes modifications to some certificate files if they do not adhere to a specific format. These modifications will result in this provider forever believing that it needs to update the resources since the local and AWS file contents will not match after theses modifications occur. In order to prevent this from happening you must ensure that all your PEM-encoded files use UNIX line-breaks and that `certificate_body` contains only one certificate. All other certificates should go in `certificate_chain`. It is common for some Certificate Authorities to issue certificate files that have DOS line-breaks and that are actually multiple certificates concatenated together in order to form a full certificate chain. """ - pulumi.set(__self__, "certificate_body", certificate_body) - pulumi.set(__self__, "private_key", private_key) + ServerCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_body=certificate_body, + private_key=private_key, + certificate_chain=certificate_chain, + name=name, + name_prefix=name_prefix, + path=path, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_body: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_body is None and 'certificateBody' in kwargs: + certificate_body = kwargs['certificateBody'] + if certificate_body is None: + raise TypeError("Missing 'certificate_body' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("certificate_body", certificate_body) + _setter("private_key", private_key) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="certificateBody") @@ -187,31 +222,74 @@ def __init__(__self__, *, :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] upload_date: Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) when the server certificate was uploaded. """ + _ServerCertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + certificate_body=certificate_body, + certificate_chain=certificate_chain, + expiration=expiration, + name=name, + name_prefix=name_prefix, + path=path, + private_key=private_key, + tags=tags, + tags_all=tags_all, + upload_date=upload_date, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + certificate_body: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + expiration: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + upload_date: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_body is None and 'certificateBody' in kwargs: + certificate_body = kwargs['certificateBody'] + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if upload_date is None and 'uploadDate' in kwargs: + upload_date = kwargs['uploadDate'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate_body is not None: - pulumi.set(__self__, "certificate_body", certificate_body) + _setter("certificate_body", certificate_body) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if expiration is not None: - pulumi.set(__self__, "expiration", expiration) + _setter("expiration", expiration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if upload_date is not None: - pulumi.set(__self__, "upload_date", upload_date) + _setter("upload_date", upload_date) @property @pulumi.getter @@ -570,6 +648,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServerCertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/service_linked_role.py b/sdk/python/pulumi_aws/iam/service_linked_role.py index 6beed9829cb..d13bd79ee87 100644 --- a/sdk/python/pulumi_aws/iam/service_linked_role.py +++ b/sdk/python/pulumi_aws/iam/service_linked_role.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ServiceLinkedRoleArgs', 'ServiceLinkedRole'] @@ -25,13 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The description of the role. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of tags for the IAM role. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "aws_service_name", aws_service_name) + ServiceLinkedRoleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_service_name=aws_service_name, + custom_suffix=custom_suffix, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_service_name: Optional[pulumi.Input[str]] = None, + custom_suffix: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_service_name is None and 'awsServiceName' in kwargs: + aws_service_name = kwargs['awsServiceName'] + if aws_service_name is None: + raise TypeError("Missing 'aws_service_name' argument") + if custom_suffix is None and 'customSuffix' in kwargs: + custom_suffix = kwargs['customSuffix'] + + _setter("aws_service_name", aws_service_name) if custom_suffix is not None: - pulumi.set(__self__, "custom_suffix", custom_suffix) + _setter("custom_suffix", custom_suffix) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="awsServiceName") @@ -108,29 +131,68 @@ def __init__(__self__, *, :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] unique_id: The stable and unique string identifying the role. """ + _ServiceLinkedRoleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_service_name=aws_service_name, + create_date=create_date, + custom_suffix=custom_suffix, + description=description, + name=name, + path=path, + tags=tags, + tags_all=tags_all, + unique_id=unique_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_service_name: Optional[pulumi.Input[str]] = None, + create_date: Optional[pulumi.Input[str]] = None, + custom_suffix: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + unique_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_service_name is None and 'awsServiceName' in kwargs: + aws_service_name = kwargs['awsServiceName'] + if create_date is None and 'createDate' in kwargs: + create_date = kwargs['createDate'] + if custom_suffix is None and 'customSuffix' in kwargs: + custom_suffix = kwargs['customSuffix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if unique_id is None and 'uniqueId' in kwargs: + unique_id = kwargs['uniqueId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_service_name is not None: - pulumi.set(__self__, "aws_service_name", aws_service_name) + _setter("aws_service_name", aws_service_name) if create_date is not None: - pulumi.set(__self__, "create_date", create_date) + _setter("create_date", create_date) if custom_suffix is not None: - pulumi.set(__self__, "custom_suffix", custom_suffix) + _setter("custom_suffix", custom_suffix) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if unique_id is not None: - pulumi.set(__self__, "unique_id", unique_id) + _setter("unique_id", unique_id) @property @pulumi.getter @@ -329,6 +391,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceLinkedRoleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/service_specific_credential.py b/sdk/python/pulumi_aws/iam/service_specific_credential.py index bb2769d51a6..ae447badcff 100644 --- a/sdk/python/pulumi_aws/iam/service_specific_credential.py +++ b/sdk/python/pulumi_aws/iam/service_specific_credential.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ServiceSpecificCredentialArgs', 'ServiceSpecificCredential'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] user_name: The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. :param pulumi.Input[str] status: The status to be assigned to the service-specific credential. Valid values are `Active` and `Inactive`. Default value is `Active`. """ - pulumi.set(__self__, "service_name", service_name) - pulumi.set(__self__, "user_name", user_name) + ServiceSpecificCredentialArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_name=service_name, + user_name=user_name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_name: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + + _setter("service_name", service_name) + _setter("user_name", user_name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="serviceName") @@ -83,18 +106,49 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The status to be assigned to the service-specific credential. Valid values are `Active` and `Inactive`. Default value is `Active`. :param pulumi.Input[str] user_name: The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. """ + _ServiceSpecificCredentialState._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_name=service_name, + service_password=service_password, + service_specific_credential_id=service_specific_credential_id, + service_user_name=service_user_name, + status=status, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_name: Optional[pulumi.Input[str]] = None, + service_password: Optional[pulumi.Input[str]] = None, + service_specific_credential_id: Optional[pulumi.Input[str]] = None, + service_user_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_password is None and 'servicePassword' in kwargs: + service_password = kwargs['servicePassword'] + if service_specific_credential_id is None and 'serviceSpecificCredentialId' in kwargs: + service_specific_credential_id = kwargs['serviceSpecificCredentialId'] + if service_user_name is None and 'serviceUserName' in kwargs: + service_user_name = kwargs['serviceUserName'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if service_password is not None: - pulumi.set(__self__, "service_password", service_password) + _setter("service_password", service_password) if service_specific_credential_id is not None: - pulumi.set(__self__, "service_specific_credential_id", service_specific_credential_id) + _setter("service_specific_credential_id", service_specific_credential_id) if service_user_name is not None: - pulumi.set(__self__, "service_user_name", service_user_name) + _setter("service_user_name", service_user_name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter(name="serviceName") @@ -246,6 +300,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceSpecificCredentialArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/signing_certificate.py b/sdk/python/pulumi_aws/iam/signing_certificate.py index 9a1b2d833d1..f565bab036d 100644 --- a/sdk/python/pulumi_aws/iam/signing_certificate.py +++ b/sdk/python/pulumi_aws/iam/signing_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SigningCertificateArgs', 'SigningCertificate'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] user_name: The name of the user the signing certificate is for. :param pulumi.Input[str] status: The status you want to assign to the certificate. `Active` means that the certificate can be used for programmatic calls to Amazon Web Services `Inactive` means that the certificate cannot be used. """ - pulumi.set(__self__, "certificate_body", certificate_body) - pulumi.set(__self__, "user_name", user_name) + SigningCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_body=certificate_body, + user_name=user_name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_body: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_body is None and 'certificateBody' in kwargs: + certificate_body = kwargs['certificateBody'] + if certificate_body is None: + raise TypeError("Missing 'certificate_body' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + + _setter("certificate_body", certificate_body) + _setter("user_name", user_name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="certificateBody") @@ -79,14 +102,37 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The status you want to assign to the certificate. `Active` means that the certificate can be used for programmatic calls to Amazon Web Services `Inactive` means that the certificate cannot be used. :param pulumi.Input[str] user_name: The name of the user the signing certificate is for. """ + _SigningCertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_body=certificate_body, + certificate_id=certificate_id, + status=status, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_body: Optional[pulumi.Input[str]] = None, + certificate_id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_body is None and 'certificateBody' in kwargs: + certificate_body = kwargs['certificateBody'] + if certificate_id is None and 'certificateId' in kwargs: + certificate_id = kwargs['certificateId'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if certificate_body is not None: - pulumi.set(__self__, "certificate_body", certificate_body) + _setter("certificate_body", certificate_body) if certificate_id is not None: - pulumi.set(__self__, "certificate_id", certificate_id) + _setter("certificate_id", certificate_id) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter(name="certificateBody") @@ -248,6 +294,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SigningCertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/ssh_key.py b/sdk/python/pulumi_aws/iam/ssh_key.py index c142b89d0a8..8339dc862c4 100644 --- a/sdk/python/pulumi_aws/iam/ssh_key.py +++ b/sdk/python/pulumi_aws/iam/ssh_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SshKeyArgs', 'SshKey'] @@ -25,11 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] username: The name of the IAM user to associate the SSH public key with. :param pulumi.Input[str] status: The status to assign to the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. Default is `active`. """ - pulumi.set(__self__, "encoding", encoding) - pulumi.set(__self__, "public_key", public_key) - pulumi.set(__self__, "username", username) + SshKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encoding=encoding, + public_key=public_key, + username=username, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encoding: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encoding is None: + raise TypeError("Missing 'encoding' argument") + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if public_key is None: + raise TypeError("Missing 'public_key' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("encoding", encoding) + _setter("public_key", public_key) + _setter("username", username) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -98,18 +123,43 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The status to assign to the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. Default is `active`. :param pulumi.Input[str] username: The name of the IAM user to associate the SSH public key with. """ + _SshKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + encoding=encoding, + fingerprint=fingerprint, + public_key=public_key, + ssh_public_key_id=ssh_public_key_id, + status=status, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encoding: Optional[pulumi.Input[str]] = None, + fingerprint: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + ssh_public_key_id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if ssh_public_key_id is None and 'sshPublicKeyId' in kwargs: + ssh_public_key_id = kwargs['sshPublicKeyId'] + if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if fingerprint is not None: - pulumi.set(__self__, "fingerprint", fingerprint) + _setter("fingerprint", fingerprint) if public_key is not None: - pulumi.set(__self__, "public_key", public_key) + _setter("public_key", public_key) if ssh_public_key_id is not None: - pulumi.set(__self__, "ssh_public_key_id", ssh_public_key_id) + _setter("ssh_public_key_id", ssh_public_key_id) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -265,6 +315,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SshKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/user.py b/sdk/python/pulumi_aws/iam/user.py index ca3b874d409..1637f1b3a60 100644 --- a/sdk/python/pulumi_aws/iam/user.py +++ b/sdk/python/pulumi_aws/iam/user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserArgs', 'User'] @@ -29,16 +29,39 @@ def __init__(__self__, *, :param pulumi.Input[str] permissions_boundary: The ARN of the policy that is used to set the permissions boundary for the user. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of tags for the IAM user. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + UserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + force_destroy=force_destroy, + name=name, + path=path, + permissions_boundary=permissions_boundary, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + force_destroy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + permissions_boundary: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if permissions_boundary is None and 'permissionsBoundary' in kwargs: + permissions_boundary = kwargs['permissionsBoundary'] + if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if permissions_boundary is not None: - pulumi.set(__self__, "permissions_boundary", permissions_boundary) + _setter("permissions_boundary", permissions_boundary) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="forceDestroy") @@ -127,25 +150,58 @@ def __init__(__self__, *, :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] unique_id: The [unique ID][1] assigned by AWS. """ + _UserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + force_destroy=force_destroy, + name=name, + path=path, + permissions_boundary=permissions_boundary, + tags=tags, + tags_all=tags_all, + unique_id=unique_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + permissions_boundary: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + unique_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if permissions_boundary is None and 'permissionsBoundary' in kwargs: + permissions_boundary = kwargs['permissionsBoundary'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if unique_id is None and 'uniqueId' in kwargs: + unique_id = kwargs['uniqueId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if permissions_boundary is not None: - pulumi.set(__self__, "permissions_boundary", permissions_boundary) + _setter("permissions_boundary", permissions_boundary) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if unique_id is not None: - pulumi.set(__self__, "unique_id", unique_id) + _setter("unique_id", unique_id) @property @pulumi.getter @@ -356,6 +412,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/user_group_membership.py b/sdk/python/pulumi_aws/iam/user_group_membership.py index 44cf348f77f..4f95c52048b 100644 --- a/sdk/python/pulumi_aws/iam/user_group_membership.py +++ b/sdk/python/pulumi_aws/iam/user_group_membership.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserGroupMembershipArgs', 'UserGroupMembership'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] groups: A list of IAM Groups to add the user to :param pulumi.Input[str] user: The name of the IAM User to add to groups """ - pulumi.set(__self__, "groups", groups) - pulumi.set(__self__, "user", user) + UserGroupMembershipArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + groups=groups, + user=user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if groups is None: + raise TypeError("Missing 'groups' argument") + if user is None: + raise TypeError("Missing 'user' argument") + + _setter("groups", groups) + _setter("user", user) @property @pulumi.getter @@ -59,10 +76,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] groups: A list of IAM Groups to add the user to :param pulumi.Input[str] user: The name of the IAM User to add to groups """ + _UserGroupMembershipState._configure( + lambda key, value: pulumi.set(__self__, key, value), + groups=groups, + user=user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if user is not None: - pulumi.set(__self__, "user", user) + _setter("user", user) @property @pulumi.getter @@ -192,6 +222,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserGroupMembershipArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/user_login_profile.py b/sdk/python/pulumi_aws/iam/user_login_profile.py index b5eb0ce92e5..7f64a4090a0 100644 --- a/sdk/python/pulumi_aws/iam/user_login_profile.py +++ b/sdk/python/pulumi_aws/iam/user_login_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserLoginProfileArgs', 'UserLoginProfile'] @@ -25,13 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[bool] password_reset_required: Whether the user should be forced to reset the generated password on resource creation. Only applies on resource creation. :param pulumi.Input[str] pgp_key: Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:username`. Only applies on resource creation. Drift detection is not possible with this argument. """ - pulumi.set(__self__, "user", user) + UserLoginProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user=user, + password_length=password_length, + password_reset_required=password_reset_required, + pgp_key=pgp_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user: Optional[pulumi.Input[str]] = None, + password_length: Optional[pulumi.Input[int]] = None, + password_reset_required: Optional[pulumi.Input[bool]] = None, + pgp_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user is None: + raise TypeError("Missing 'user' argument") + if password_length is None and 'passwordLength' in kwargs: + password_length = kwargs['passwordLength'] + if password_reset_required is None and 'passwordResetRequired' in kwargs: + password_reset_required = kwargs['passwordResetRequired'] + if pgp_key is None and 'pgpKey' in kwargs: + pgp_key = kwargs['pgpKey'] + + _setter("user", user) if password_length is not None: - pulumi.set(__self__, "password_length", password_length) + _setter("password_length", password_length) if password_reset_required is not None: - pulumi.set(__self__, "password_reset_required", password_reset_required) + _setter("password_reset_required", password_reset_required) if pgp_key is not None: - pulumi.set(__self__, "pgp_key", pgp_key) + _setter("pgp_key", pgp_key) @property @pulumi.getter @@ -102,20 +127,53 @@ def __init__(__self__, *, :param pulumi.Input[str] pgp_key: Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:username`. Only applies on resource creation. Drift detection is not possible with this argument. :param pulumi.Input[str] user: The IAM user's name. """ + _UserLoginProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + encrypted_password=encrypted_password, + key_fingerprint=key_fingerprint, + password=password, + password_length=password_length, + password_reset_required=password_reset_required, + pgp_key=pgp_key, + user=user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encrypted_password: Optional[pulumi.Input[str]] = None, + key_fingerprint: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + password_length: Optional[pulumi.Input[int]] = None, + password_reset_required: Optional[pulumi.Input[bool]] = None, + pgp_key: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encrypted_password is None and 'encryptedPassword' in kwargs: + encrypted_password = kwargs['encryptedPassword'] + if key_fingerprint is None and 'keyFingerprint' in kwargs: + key_fingerprint = kwargs['keyFingerprint'] + if password_length is None and 'passwordLength' in kwargs: + password_length = kwargs['passwordLength'] + if password_reset_required is None and 'passwordResetRequired' in kwargs: + password_reset_required = kwargs['passwordResetRequired'] + if pgp_key is None and 'pgpKey' in kwargs: + pgp_key = kwargs['pgpKey'] + if encrypted_password is not None: - pulumi.set(__self__, "encrypted_password", encrypted_password) + _setter("encrypted_password", encrypted_password) if key_fingerprint is not None: - pulumi.set(__self__, "key_fingerprint", key_fingerprint) + _setter("key_fingerprint", key_fingerprint) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if password_length is not None: - pulumi.set(__self__, "password_length", password_length) + _setter("password_length", password_length) if password_reset_required is not None: - pulumi.set(__self__, "password_reset_required", password_reset_required) + _setter("password_reset_required", password_reset_required) if pgp_key is not None: - pulumi.set(__self__, "pgp_key", pgp_key) + _setter("pgp_key", pgp_key) if user is not None: - pulumi.set(__self__, "user", user) + _setter("user", user) @property @pulumi.getter(name="encryptedPassword") @@ -293,6 +351,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserLoginProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/user_policy.py b/sdk/python/pulumi_aws/iam/user_policy.py index d8f703d5f37..833750e9c64 100644 --- a/sdk/python/pulumi_aws/iam/user_policy.py +++ b/sdk/python/pulumi_aws/iam/user_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserPolicyArgs', 'UserPolicy'] @@ -25,12 +25,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the policy. If omitted, the provider will assign a random, unique name. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "user", user) + UserPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + user=user, + name=name, + name_prefix=name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if user is None: + raise TypeError("Missing 'user' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("policy", policy) + _setter("user", user) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) @property @pulumi.getter @@ -95,14 +118,33 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. :param pulumi.Input[str] user: IAM user to which to attach this policy. """ + _UserPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + name_prefix=name_prefix, + policy=policy, + user=user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if user is not None: - pulumi.set(__self__, "user", user) + _setter("user", user) @property @pulumi.getter @@ -250,6 +292,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/user_policy_attachment.py b/sdk/python/pulumi_aws/iam/user_policy_attachment.py index b65d7e6c376..dfaa120228b 100644 --- a/sdk/python/pulumi_aws/iam/user_policy_attachment.py +++ b/sdk/python/pulumi_aws/iam/user_policy_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserPolicyAttachmentArgs', 'UserPolicyAttachment'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_arn: The ARN of the policy you want to apply :param pulumi.Input[str] user: The user the policy should be applied to """ - pulumi.set(__self__, "policy_arn", policy_arn) - pulumi.set(__self__, "user", user) + UserPolicyAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_arn=policy_arn, + user=user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_arn: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if policy_arn is None: + raise TypeError("Missing 'policy_arn' argument") + if user is None: + raise TypeError("Missing 'user' argument") + + _setter("policy_arn", policy_arn) + _setter("user", user) @property @pulumi.getter(name="policyArn") @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_arn: The ARN of the policy you want to apply :param pulumi.Input[str] user: The user the policy should be applied to """ + _UserPolicyAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_arn=policy_arn, + user=user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_arn: Optional[pulumi.Input[str]] = None, + user: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if policy_arn is not None: - pulumi.set(__self__, "policy_arn", policy_arn) + _setter("policy_arn", policy_arn) if user is not None: - pulumi.set(__self__, "user", user) + _setter("user", user) @property @pulumi.getter(name="policyArn") @@ -174,6 +208,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserPolicyAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iam/virtual_mfa_device.py b/sdk/python/pulumi_aws/iam/virtual_mfa_device.py index 172181a96ff..63a198e8a01 100644 --- a/sdk/python/pulumi_aws/iam/virtual_mfa_device.py +++ b/sdk/python/pulumi_aws/iam/virtual_mfa_device.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VirtualMfaDeviceArgs', 'VirtualMfaDevice'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] path: The path for the virtual MFA device. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the virtual mfa device. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "virtual_mfa_device_name", virtual_mfa_device_name) + VirtualMfaDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + virtual_mfa_device_name=virtual_mfa_device_name, + path=path, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + virtual_mfa_device_name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if virtual_mfa_device_name is None and 'virtualMfaDeviceName' in kwargs: + virtual_mfa_device_name = kwargs['virtualMfaDeviceName'] + if virtual_mfa_device_name is None: + raise TypeError("Missing 'virtual_mfa_device_name' argument") + + _setter("virtual_mfa_device_name", virtual_mfa_device_name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="virtualMfaDeviceName") @@ -90,27 +109,66 @@ def __init__(__self__, *, :param pulumi.Input[str] user_name: The associated IAM User name if the virtual MFA device is enabled. :param pulumi.Input[str] virtual_mfa_device_name: The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. """ + _VirtualMfaDeviceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + base32_string_seed=base32_string_seed, + enable_date=enable_date, + path=path, + qr_code_png=qr_code_png, + tags=tags, + tags_all=tags_all, + user_name=user_name, + virtual_mfa_device_name=virtual_mfa_device_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + base32_string_seed: Optional[pulumi.Input[str]] = None, + enable_date: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + qr_code_png: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None, + virtual_mfa_device_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base32_string_seed is None and 'base32StringSeed' in kwargs: + base32_string_seed = kwargs['base32StringSeed'] + if enable_date is None and 'enableDate' in kwargs: + enable_date = kwargs['enableDate'] + if qr_code_png is None and 'qrCodePng' in kwargs: + qr_code_png = kwargs['qrCodePng'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if virtual_mfa_device_name is None and 'virtualMfaDeviceName' in kwargs: + virtual_mfa_device_name = kwargs['virtualMfaDeviceName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if base32_string_seed is not None: - pulumi.set(__self__, "base32_string_seed", base32_string_seed) + _setter("base32_string_seed", base32_string_seed) if enable_date is not None: - pulumi.set(__self__, "enable_date", enable_date) + _setter("enable_date", enable_date) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if qr_code_png is not None: - pulumi.set(__self__, "qr_code_png", qr_code_png) + _setter("qr_code_png", qr_code_png) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) if virtual_mfa_device_name is not None: - pulumi.set(__self__, "virtual_mfa_device_name", virtual_mfa_device_name) + _setter("virtual_mfa_device_name", virtual_mfa_device_name) @property @pulumi.getter @@ -309,6 +367,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VirtualMfaDeviceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/identitystore/_inputs.py b/sdk/python/pulumi_aws/identitystore/_inputs.py index 04cc48d52b4..095a589a79d 100644 --- a/sdk/python/pulumi_aws/identitystore/_inputs.py +++ b/sdk/python/pulumi_aws/identitystore/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -35,10 +35,23 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The identifier issued to this resource by an external identity provider. :param pulumi.Input[str] issuer: The issuer for an external identifier. """ + GroupExternalIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + issuer: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) @property @pulumi.getter @@ -86,22 +99,51 @@ def __init__(__self__, *, :param pulumi.Input[str] street_address: The street of the address. :param pulumi.Input[str] type: The type of address. """ + UserAddressesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + country=country, + formatted=formatted, + locality=locality, + postal_code=postal_code, + primary=primary, + region=region, + street_address=street_address, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country: Optional[pulumi.Input[str]] = None, + formatted: Optional[pulumi.Input[str]] = None, + locality: Optional[pulumi.Input[str]] = None, + postal_code: Optional[pulumi.Input[str]] = None, + primary: Optional[pulumi.Input[bool]] = None, + region: Optional[pulumi.Input[str]] = None, + street_address: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if postal_code is None and 'postalCode' in kwargs: + postal_code = kwargs['postalCode'] + if street_address is None and 'streetAddress' in kwargs: + street_address = kwargs['streetAddress'] + if country is not None: - pulumi.set(__self__, "country", country) + _setter("country", country) if formatted is not None: - pulumi.set(__self__, "formatted", formatted) + _setter("formatted", formatted) if locality is not None: - pulumi.set(__self__, "locality", locality) + _setter("locality", locality) if postal_code is not None: - pulumi.set(__self__, "postal_code", postal_code) + _setter("postal_code", postal_code) if primary is not None: - pulumi.set(__self__, "primary", primary) + _setter("primary", primary) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if street_address is not None: - pulumi.set(__self__, "street_address", street_address) + _setter("street_address", street_address) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -211,12 +253,27 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of email. :param pulumi.Input[str] value: The email address. This value must be unique across the identity store. """ + UserEmailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary=primary, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary is not None: - pulumi.set(__self__, "primary", primary) + _setter("primary", primary) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -264,10 +321,23 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The identifier issued to this resource by an external identity provider. :param pulumi.Input[str] issuer: The issuer for an external identifier. """ + UserExternalIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + issuer: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) @property @pulumi.getter @@ -313,16 +383,51 @@ def __init__(__self__, *, :param pulumi.Input[str] honorific_suffix: The honorific suffix of the user. :param pulumi.Input[str] middle_name: The middle name of the user. """ - pulumi.set(__self__, "family_name", family_name) - pulumi.set(__self__, "given_name", given_name) + UserNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + family_name=family_name, + given_name=given_name, + formatted=formatted, + honorific_prefix=honorific_prefix, + honorific_suffix=honorific_suffix, + middle_name=middle_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family_name: Optional[pulumi.Input[str]] = None, + given_name: Optional[pulumi.Input[str]] = None, + formatted: Optional[pulumi.Input[str]] = None, + honorific_prefix: Optional[pulumi.Input[str]] = None, + honorific_suffix: Optional[pulumi.Input[str]] = None, + middle_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family_name is None and 'familyName' in kwargs: + family_name = kwargs['familyName'] + if family_name is None: + raise TypeError("Missing 'family_name' argument") + if given_name is None and 'givenName' in kwargs: + given_name = kwargs['givenName'] + if given_name is None: + raise TypeError("Missing 'given_name' argument") + if honorific_prefix is None and 'honorificPrefix' in kwargs: + honorific_prefix = kwargs['honorificPrefix'] + if honorific_suffix is None and 'honorificSuffix' in kwargs: + honorific_suffix = kwargs['honorificSuffix'] + if middle_name is None and 'middleName' in kwargs: + middle_name = kwargs['middleName'] + + _setter("family_name", family_name) + _setter("given_name", given_name) if formatted is not None: - pulumi.set(__self__, "formatted", formatted) + _setter("formatted", formatted) if honorific_prefix is not None: - pulumi.set(__self__, "honorific_prefix", honorific_prefix) + _setter("honorific_prefix", honorific_prefix) if honorific_suffix is not None: - pulumi.set(__self__, "honorific_suffix", honorific_suffix) + _setter("honorific_suffix", honorific_suffix) if middle_name is not None: - pulumi.set(__self__, "middle_name", middle_name) + _setter("middle_name", middle_name) @property @pulumi.getter(name="familyName") @@ -410,12 +515,27 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of phone number. :param pulumi.Input[str] value: The user's phone number. """ + UserPhoneNumbersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary=primary, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary is not None: - pulumi.set(__self__, "primary", primary) + _setter("primary", primary) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -465,10 +585,27 @@ def __init__(__self__, *, > Exactly one of the above arguments must be provided. """ + GetGroupAlternateIdentifierArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_id=external_id, + unique_attribute=unique_attribute, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_id: Optional['GetGroupAlternateIdentifierExternalIdArgs'] = None, + unique_attribute: Optional['GetGroupAlternateIdentifierUniqueAttributeArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if unique_attribute is None and 'uniqueAttribute' in kwargs: + unique_attribute = kwargs['uniqueAttribute'] + if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if unique_attribute is not None: - pulumi.set(__self__, "unique_attribute", unique_attribute) + _setter("unique_attribute", unique_attribute) @property @pulumi.getter(name="externalId") @@ -506,8 +643,25 @@ def __init__(__self__, *, :param str id: The identifier issued to this resource by an external identity provider. :param str issuer: The issuer for an external identifier. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "issuer", issuer) + GetGroupAlternateIdentifierExternalIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + + _setter("id", id) + _setter("issuer", issuer) @property @pulumi.getter @@ -543,8 +697,29 @@ def __init__(__self__, *, :param str attribute_path: Attribute path that is used to specify which attribute name to search. For example: `DisplayName`. Refer to the [Group data type](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html). :param str attribute_value: Value for an attribute. """ - pulumi.set(__self__, "attribute_path", attribute_path) - pulumi.set(__self__, "attribute_value", attribute_value) + GetGroupAlternateIdentifierUniqueAttributeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_path=attribute_path, + attribute_value=attribute_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_path: Optional[str] = None, + attribute_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_path is None and 'attributePath' in kwargs: + attribute_path = kwargs['attributePath'] + if attribute_path is None: + raise TypeError("Missing 'attribute_path' argument") + if attribute_value is None and 'attributeValue' in kwargs: + attribute_value = kwargs['attributeValue'] + if attribute_value is None: + raise TypeError("Missing 'attribute_value' argument") + + _setter("attribute_path", attribute_path) + _setter("attribute_value", attribute_value) @property @pulumi.getter(name="attributePath") @@ -580,8 +755,29 @@ def __init__(__self__, *, :param str attribute_path: Attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. :param str attribute_value: Value for an attribute. """ - pulumi.set(__self__, "attribute_path", attribute_path) - pulumi.set(__self__, "attribute_value", attribute_value) + GetGroupFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_path=attribute_path, + attribute_value=attribute_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_path: Optional[str] = None, + attribute_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_path is None and 'attributePath' in kwargs: + attribute_path = kwargs['attributePath'] + if attribute_path is None: + raise TypeError("Missing 'attribute_path' argument") + if attribute_value is None and 'attributeValue' in kwargs: + attribute_value = kwargs['attributeValue'] + if attribute_value is None: + raise TypeError("Missing 'attribute_value' argument") + + _setter("attribute_path", attribute_path) + _setter("attribute_value", attribute_value) @property @pulumi.getter(name="attributePath") @@ -619,10 +815,27 @@ def __init__(__self__, *, > Exactly one of the above arguments must be provided. """ + GetUserAlternateIdentifierArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_id=external_id, + unique_attribute=unique_attribute, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_id: Optional['GetUserAlternateIdentifierExternalIdArgs'] = None, + unique_attribute: Optional['GetUserAlternateIdentifierUniqueAttributeArgs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if unique_attribute is None and 'uniqueAttribute' in kwargs: + unique_attribute = kwargs['uniqueAttribute'] + if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if unique_attribute is not None: - pulumi.set(__self__, "unique_attribute", unique_attribute) + _setter("unique_attribute", unique_attribute) @property @pulumi.getter(name="externalId") @@ -660,8 +873,25 @@ def __init__(__self__, *, :param str id: The identifier issued to this resource by an external identity provider. :param str issuer: The issuer for an external identifier. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "issuer", issuer) + GetUserAlternateIdentifierExternalIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + + _setter("id", id) + _setter("issuer", issuer) @property @pulumi.getter @@ -697,8 +927,29 @@ def __init__(__self__, *, :param str attribute_path: Attribute path that is used to specify which attribute name to search. For example: `UserName`. Refer to the [User data type](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html). :param str attribute_value: Value for an attribute. """ - pulumi.set(__self__, "attribute_path", attribute_path) - pulumi.set(__self__, "attribute_value", attribute_value) + GetUserAlternateIdentifierUniqueAttributeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_path=attribute_path, + attribute_value=attribute_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_path: Optional[str] = None, + attribute_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_path is None and 'attributePath' in kwargs: + attribute_path = kwargs['attributePath'] + if attribute_path is None: + raise TypeError("Missing 'attribute_path' argument") + if attribute_value is None and 'attributeValue' in kwargs: + attribute_value = kwargs['attributeValue'] + if attribute_value is None: + raise TypeError("Missing 'attribute_value' argument") + + _setter("attribute_path", attribute_path) + _setter("attribute_value", attribute_value) @property @pulumi.getter(name="attributePath") @@ -734,8 +985,29 @@ def __init__(__self__, *, :param str attribute_path: Attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. :param str attribute_value: Value for an attribute. """ - pulumi.set(__self__, "attribute_path", attribute_path) - pulumi.set(__self__, "attribute_value", attribute_value) + GetUserFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_path=attribute_path, + attribute_value=attribute_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_path: Optional[str] = None, + attribute_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_path is None and 'attributePath' in kwargs: + attribute_path = kwargs['attributePath'] + if attribute_path is None: + raise TypeError("Missing 'attribute_path' argument") + if attribute_value is None and 'attributeValue' in kwargs: + attribute_value = kwargs['attributeValue'] + if attribute_value is None: + raise TypeError("Missing 'attribute_value' argument") + + _setter("attribute_path", attribute_path) + _setter("attribute_value", attribute_value) @property @pulumi.getter(name="attributePath") diff --git a/sdk/python/pulumi_aws/identitystore/get_group.py b/sdk/python/pulumi_aws/identitystore/get_group.py index b6774369cc7..b012d352402 100644 --- a/sdk/python/pulumi_aws/identitystore/get_group.py +++ b/sdk/python/pulumi_aws/identitystore/get_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/identitystore/get_user.py b/sdk/python/pulumi_aws/identitystore/get_user.py index 3aa24926d04..f21294ef3a3 100644 --- a/sdk/python/pulumi_aws/identitystore/get_user.py +++ b/sdk/python/pulumi_aws/identitystore/get_user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/identitystore/group.py b/sdk/python/pulumi_aws/identitystore/group.py index 3c512935f55..bd5c7529376 100644 --- a/sdk/python/pulumi_aws/identitystore/group.py +++ b/sdk/python/pulumi_aws/identitystore/group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,10 +27,33 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] description: A string containing the description of the group. """ - pulumi.set(__self__, "display_name", display_name) - pulumi.set(__self__, "identity_store_id", identity_store_id) + GroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + display_name=display_name, + identity_store_id=identity_store_id, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + display_name: Optional[pulumi.Input[str]] = None, + identity_store_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if display_name is None: + raise TypeError("Missing 'display_name' argument") + if identity_store_id is None and 'identityStoreId' in kwargs: + identity_store_id = kwargs['identityStoreId'] + if identity_store_id is None: + raise TypeError("Missing 'identity_store_id' argument") + + _setter("display_name", display_name) + _setter("identity_store_id", identity_store_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="displayName") @@ -89,16 +112,43 @@ def __init__(__self__, *, The following arguments are optional: """ + _GroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + display_name=display_name, + external_ids=external_ids, + group_id=group_id, + identity_store_id=identity_store_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + external_ids: Optional[pulumi.Input[Sequence[pulumi.Input['GroupExternalIdArgs']]]] = None, + group_id: Optional[pulumi.Input[str]] = None, + identity_store_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if external_ids is None and 'externalIds' in kwargs: + external_ids = kwargs['externalIds'] + if group_id is None and 'groupId' in kwargs: + group_id = kwargs['groupId'] + if identity_store_id is None and 'identityStoreId' in kwargs: + identity_store_id = kwargs['identityStoreId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if external_ids is not None: - pulumi.set(__self__, "external_ids", external_ids) + _setter("external_ids", external_ids) if group_id is not None: - pulumi.set(__self__, "group_id", group_id) + _setter("group_id", group_id) if identity_store_id is not None: - pulumi.set(__self__, "identity_store_id", identity_store_id) + _setter("identity_store_id", identity_store_id) @property @pulumi.getter @@ -222,6 +272,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/identitystore/group_membership.py b/sdk/python/pulumi_aws/identitystore/group_membership.py index a5fef3d255c..7f9a9a078c4 100644 --- a/sdk/python/pulumi_aws/identitystore/group_membership.py +++ b/sdk/python/pulumi_aws/identitystore/group_membership.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupMembershipArgs', 'GroupMembership'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] identity_store_id: Identity Store ID associated with the Single Sign-On Instance. :param pulumi.Input[str] member_id: The identifier for a user in the Identity Store. """ - pulumi.set(__self__, "group_id", group_id) - pulumi.set(__self__, "identity_store_id", identity_store_id) - pulumi.set(__self__, "member_id", member_id) + GroupMembershipArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_id=group_id, + identity_store_id=identity_store_id, + member_id=member_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_id: Optional[pulumi.Input[str]] = None, + identity_store_id: Optional[pulumi.Input[str]] = None, + member_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_id is None and 'groupId' in kwargs: + group_id = kwargs['groupId'] + if group_id is None: + raise TypeError("Missing 'group_id' argument") + if identity_store_id is None and 'identityStoreId' in kwargs: + identity_store_id = kwargs['identityStoreId'] + if identity_store_id is None: + raise TypeError("Missing 'identity_store_id' argument") + if member_id is None and 'memberId' in kwargs: + member_id = kwargs['memberId'] + if member_id is None: + raise TypeError("Missing 'member_id' argument") + + _setter("group_id", group_id) + _setter("identity_store_id", identity_store_id) + _setter("member_id", member_id) @property @pulumi.getter(name="groupId") @@ -78,14 +105,39 @@ def __init__(__self__, *, :param pulumi.Input[str] member_id: The identifier for a user in the Identity Store. :param pulumi.Input[str] membership_id: The identifier of the newly created group membership in the Identity Store. """ + _GroupMembershipState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_id=group_id, + identity_store_id=identity_store_id, + member_id=member_id, + membership_id=membership_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_id: Optional[pulumi.Input[str]] = None, + identity_store_id: Optional[pulumi.Input[str]] = None, + member_id: Optional[pulumi.Input[str]] = None, + membership_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_id is None and 'groupId' in kwargs: + group_id = kwargs['groupId'] + if identity_store_id is None and 'identityStoreId' in kwargs: + identity_store_id = kwargs['identityStoreId'] + if member_id is None and 'memberId' in kwargs: + member_id = kwargs['memberId'] + if membership_id is None and 'membershipId' in kwargs: + membership_id = kwargs['membershipId'] + if group_id is not None: - pulumi.set(__self__, "group_id", group_id) + _setter("group_id", group_id) if identity_store_id is not None: - pulumi.set(__self__, "identity_store_id", identity_store_id) + _setter("identity_store_id", identity_store_id) if member_id is not None: - pulumi.set(__self__, "member_id", member_id) + _setter("member_id", member_id) if membership_id is not None: - pulumi.set(__self__, "membership_id", membership_id) + _setter("membership_id", membership_id) @property @pulumi.getter(name="groupId") @@ -189,6 +241,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupMembershipArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/identitystore/outputs.py b/sdk/python/pulumi_aws/identitystore/outputs.py index 679ef2a633c..b766bb4ec67 100644 --- a/sdk/python/pulumi_aws/identitystore/outputs.py +++ b/sdk/python/pulumi_aws/identitystore/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -42,10 +42,23 @@ def __init__(__self__, *, :param str id: The identifier issued to this resource by an external identity provider. :param str issuer: The issuer for an external identifier. """ + GroupExternalId._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) @property @pulumi.getter @@ -104,22 +117,51 @@ def __init__(__self__, *, :param str street_address: The street of the address. :param str type: The type of address. """ + UserAddresses._configure( + lambda key, value: pulumi.set(__self__, key, value), + country=country, + formatted=formatted, + locality=locality, + postal_code=postal_code, + primary=primary, + region=region, + street_address=street_address, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country: Optional[str] = None, + formatted: Optional[str] = None, + locality: Optional[str] = None, + postal_code: Optional[str] = None, + primary: Optional[bool] = None, + region: Optional[str] = None, + street_address: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if postal_code is None and 'postalCode' in kwargs: + postal_code = kwargs['postalCode'] + if street_address is None and 'streetAddress' in kwargs: + street_address = kwargs['streetAddress'] + if country is not None: - pulumi.set(__self__, "country", country) + _setter("country", country) if formatted is not None: - pulumi.set(__self__, "formatted", formatted) + _setter("formatted", formatted) if locality is not None: - pulumi.set(__self__, "locality", locality) + _setter("locality", locality) if postal_code is not None: - pulumi.set(__self__, "postal_code", postal_code) + _setter("postal_code", postal_code) if primary is not None: - pulumi.set(__self__, "primary", primary) + _setter("primary", primary) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if street_address is not None: - pulumi.set(__self__, "street_address", street_address) + _setter("street_address", street_address) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -197,12 +239,27 @@ def __init__(__self__, *, :param str type: The type of email. :param str value: The email address. This value must be unique across the identity store. """ + UserEmails._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary=primary, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary: Optional[bool] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary is not None: - pulumi.set(__self__, "primary", primary) + _setter("primary", primary) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -238,10 +295,23 @@ def __init__(__self__, *, :param str id: The identifier issued to this resource by an external identity provider. :param str issuer: The issuer for an external identifier. """ + UserExternalId._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) @property @pulumi.getter @@ -304,16 +374,51 @@ def __init__(__self__, *, :param str honorific_suffix: The honorific suffix of the user. :param str middle_name: The middle name of the user. """ - pulumi.set(__self__, "family_name", family_name) - pulumi.set(__self__, "given_name", given_name) + UserName._configure( + lambda key, value: pulumi.set(__self__, key, value), + family_name=family_name, + given_name=given_name, + formatted=formatted, + honorific_prefix=honorific_prefix, + honorific_suffix=honorific_suffix, + middle_name=middle_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family_name: Optional[str] = None, + given_name: Optional[str] = None, + formatted: Optional[str] = None, + honorific_prefix: Optional[str] = None, + honorific_suffix: Optional[str] = None, + middle_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family_name is None and 'familyName' in kwargs: + family_name = kwargs['familyName'] + if family_name is None: + raise TypeError("Missing 'family_name' argument") + if given_name is None and 'givenName' in kwargs: + given_name = kwargs['givenName'] + if given_name is None: + raise TypeError("Missing 'given_name' argument") + if honorific_prefix is None and 'honorificPrefix' in kwargs: + honorific_prefix = kwargs['honorificPrefix'] + if honorific_suffix is None and 'honorificSuffix' in kwargs: + honorific_suffix = kwargs['honorificSuffix'] + if middle_name is None and 'middleName' in kwargs: + middle_name = kwargs['middleName'] + + _setter("family_name", family_name) + _setter("given_name", given_name) if formatted is not None: - pulumi.set(__self__, "formatted", formatted) + _setter("formatted", formatted) if honorific_prefix is not None: - pulumi.set(__self__, "honorific_prefix", honorific_prefix) + _setter("honorific_prefix", honorific_prefix) if honorific_suffix is not None: - pulumi.set(__self__, "honorific_suffix", honorific_suffix) + _setter("honorific_suffix", honorific_suffix) if middle_name is not None: - pulumi.set(__self__, "middle_name", middle_name) + _setter("middle_name", middle_name) @property @pulumi.getter(name="familyName") @@ -377,12 +482,27 @@ def __init__(__self__, *, :param str type: The type of phone number. :param str value: The user's phone number. """ + UserPhoneNumbers._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary=primary, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary: Optional[bool] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary is not None: - pulumi.set(__self__, "primary", primary) + _setter("primary", primary) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -420,10 +540,27 @@ def __init__(__self__, *, > Exactly one of the above arguments must be provided. """ + GetGroupAlternateIdentifierResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_id=external_id, + unique_attribute=unique_attribute, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_id: Optional['outputs.GetGroupAlternateIdentifierExternalIdResult'] = None, + unique_attribute: Optional['outputs.GetGroupAlternateIdentifierUniqueAttributeResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if unique_attribute is None and 'uniqueAttribute' in kwargs: + unique_attribute = kwargs['uniqueAttribute'] + if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if unique_attribute is not None: - pulumi.set(__self__, "unique_attribute", unique_attribute) + _setter("unique_attribute", unique_attribute) @property @pulumi.getter(name="externalId") @@ -453,8 +590,25 @@ def __init__(__self__, *, :param str id: The identifier issued to this resource by an external identity provider. :param str issuer: The issuer for an external identifier. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "issuer", issuer) + GetGroupAlternateIdentifierExternalIdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + + _setter("id", id) + _setter("issuer", issuer) @property @pulumi.getter @@ -482,8 +636,29 @@ def __init__(__self__, *, :param str attribute_path: Attribute path that is used to specify which attribute name to search. For example: `DisplayName`. Refer to the [Group data type](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html). :param str attribute_value: Value for an attribute. """ - pulumi.set(__self__, "attribute_path", attribute_path) - pulumi.set(__self__, "attribute_value", attribute_value) + GetGroupAlternateIdentifierUniqueAttributeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_path=attribute_path, + attribute_value=attribute_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_path: Optional[str] = None, + attribute_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_path is None and 'attributePath' in kwargs: + attribute_path = kwargs['attributePath'] + if attribute_path is None: + raise TypeError("Missing 'attribute_path' argument") + if attribute_value is None and 'attributeValue' in kwargs: + attribute_value = kwargs['attributeValue'] + if attribute_value is None: + raise TypeError("Missing 'attribute_value' argument") + + _setter("attribute_path", attribute_path) + _setter("attribute_value", attribute_value) @property @pulumi.getter(name="attributePath") @@ -511,8 +686,25 @@ def __init__(__self__, *, :param str id: The identifier issued to this resource by an external identity provider. :param str issuer: The issuer for an external identifier. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "issuer", issuer) + GetGroupExternalIdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + + _setter("id", id) + _setter("issuer", issuer) @property @pulumi.getter @@ -540,8 +732,29 @@ def __init__(__self__, *, :param str attribute_path: Attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. :param str attribute_value: Value for an attribute. """ - pulumi.set(__self__, "attribute_path", attribute_path) - pulumi.set(__self__, "attribute_value", attribute_value) + GetGroupFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_path=attribute_path, + attribute_value=attribute_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_path: Optional[str] = None, + attribute_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_path is None and 'attributePath' in kwargs: + attribute_path = kwargs['attributePath'] + if attribute_path is None: + raise TypeError("Missing 'attribute_path' argument") + if attribute_value is None and 'attributeValue' in kwargs: + attribute_value = kwargs['attributeValue'] + if attribute_value is None: + raise TypeError("Missing 'attribute_value' argument") + + _setter("attribute_path", attribute_path) + _setter("attribute_value", attribute_value) @property @pulumi.getter(name="attributePath") @@ -581,14 +794,59 @@ def __init__(__self__, *, :param str street_address: The street of the address. :param str type: The type of phone number. """ - pulumi.set(__self__, "country", country) - pulumi.set(__self__, "formatted", formatted) - pulumi.set(__self__, "locality", locality) - pulumi.set(__self__, "postal_code", postal_code) - pulumi.set(__self__, "primary", primary) - pulumi.set(__self__, "region", region) - pulumi.set(__self__, "street_address", street_address) - pulumi.set(__self__, "type", type) + GetUserAddressResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + country=country, + formatted=formatted, + locality=locality, + postal_code=postal_code, + primary=primary, + region=region, + street_address=street_address, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country: Optional[str] = None, + formatted: Optional[str] = None, + locality: Optional[str] = None, + postal_code: Optional[str] = None, + primary: Optional[bool] = None, + region: Optional[str] = None, + street_address: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country is None: + raise TypeError("Missing 'country' argument") + if formatted is None: + raise TypeError("Missing 'formatted' argument") + if locality is None: + raise TypeError("Missing 'locality' argument") + if postal_code is None and 'postalCode' in kwargs: + postal_code = kwargs['postalCode'] + if postal_code is None: + raise TypeError("Missing 'postal_code' argument") + if primary is None: + raise TypeError("Missing 'primary' argument") + if region is None: + raise TypeError("Missing 'region' argument") + if street_address is None and 'streetAddress' in kwargs: + street_address = kwargs['streetAddress'] + if street_address is None: + raise TypeError("Missing 'street_address' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("country", country) + _setter("formatted", formatted) + _setter("locality", locality) + _setter("postal_code", postal_code) + _setter("primary", primary) + _setter("region", region) + _setter("street_address", street_address) + _setter("type", type) @property @pulumi.getter @@ -666,10 +924,27 @@ def __init__(__self__, *, > Exactly one of the above arguments must be provided. """ + GetUserAlternateIdentifierResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_id=external_id, + unique_attribute=unique_attribute, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_id: Optional['outputs.GetUserAlternateIdentifierExternalIdResult'] = None, + unique_attribute: Optional['outputs.GetUserAlternateIdentifierUniqueAttributeResult'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if unique_attribute is None and 'uniqueAttribute' in kwargs: + unique_attribute = kwargs['uniqueAttribute'] + if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if unique_attribute is not None: - pulumi.set(__self__, "unique_attribute", unique_attribute) + _setter("unique_attribute", unique_attribute) @property @pulumi.getter(name="externalId") @@ -699,8 +974,25 @@ def __init__(__self__, *, :param str id: The identifier issued to this resource by an external identity provider. :param str issuer: The issuer for an external identifier. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "issuer", issuer) + GetUserAlternateIdentifierExternalIdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + + _setter("id", id) + _setter("issuer", issuer) @property @pulumi.getter @@ -728,8 +1020,29 @@ def __init__(__self__, *, :param str attribute_path: Attribute path that is used to specify which attribute name to search. For example: `UserName`. Refer to the [User data type](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html). :param str attribute_value: Value for an attribute. """ - pulumi.set(__self__, "attribute_path", attribute_path) - pulumi.set(__self__, "attribute_value", attribute_value) + GetUserAlternateIdentifierUniqueAttributeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_path=attribute_path, + attribute_value=attribute_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_path: Optional[str] = None, + attribute_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_path is None and 'attributePath' in kwargs: + attribute_path = kwargs['attributePath'] + if attribute_path is None: + raise TypeError("Missing 'attribute_path' argument") + if attribute_value is None and 'attributeValue' in kwargs: + attribute_value = kwargs['attributeValue'] + if attribute_value is None: + raise TypeError("Missing 'attribute_value' argument") + + _setter("attribute_path", attribute_path) + _setter("attribute_value", attribute_value) @property @pulumi.getter(name="attributePath") @@ -759,9 +1072,30 @@ def __init__(__self__, *, :param str type: The type of phone number. :param str value: The user's phone number. """ - pulumi.set(__self__, "primary", primary) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GetUserEmailResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary=primary, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary: Optional[bool] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary is None: + raise TypeError("Missing 'primary' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("primary", primary) + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -797,8 +1131,25 @@ def __init__(__self__, *, :param str id: The identifier issued to this resource by an external identity provider. :param str issuer: The issuer for an external identifier. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "issuer", issuer) + GetUserExternalIdResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + issuer=issuer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + issuer: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + + _setter("id", id) + _setter("issuer", issuer) @property @pulumi.getter @@ -826,8 +1177,29 @@ def __init__(__self__, *, :param str attribute_path: Attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. :param str attribute_value: Value for an attribute. """ - pulumi.set(__self__, "attribute_path", attribute_path) - pulumi.set(__self__, "attribute_value", attribute_value) + GetUserFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_path=attribute_path, + attribute_value=attribute_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_path: Optional[str] = None, + attribute_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_path is None and 'attributePath' in kwargs: + attribute_path = kwargs['attributePath'] + if attribute_path is None: + raise TypeError("Missing 'attribute_path' argument") + if attribute_value is None and 'attributeValue' in kwargs: + attribute_value = kwargs['attributeValue'] + if attribute_value is None: + raise TypeError("Missing 'attribute_value' argument") + + _setter("attribute_path", attribute_path) + _setter("attribute_value", attribute_value) @property @pulumi.getter(name="attributePath") @@ -863,12 +1235,55 @@ def __init__(__self__, *, :param str honorific_suffix: The honorific suffix of the user. :param str middle_name: The middle name of the user. """ - pulumi.set(__self__, "family_name", family_name) - pulumi.set(__self__, "formatted", formatted) - pulumi.set(__self__, "given_name", given_name) - pulumi.set(__self__, "honorific_prefix", honorific_prefix) - pulumi.set(__self__, "honorific_suffix", honorific_suffix) - pulumi.set(__self__, "middle_name", middle_name) + GetUserNameResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + family_name=family_name, + formatted=formatted, + given_name=given_name, + honorific_prefix=honorific_prefix, + honorific_suffix=honorific_suffix, + middle_name=middle_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family_name: Optional[str] = None, + formatted: Optional[str] = None, + given_name: Optional[str] = None, + honorific_prefix: Optional[str] = None, + honorific_suffix: Optional[str] = None, + middle_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family_name is None and 'familyName' in kwargs: + family_name = kwargs['familyName'] + if family_name is None: + raise TypeError("Missing 'family_name' argument") + if formatted is None: + raise TypeError("Missing 'formatted' argument") + if given_name is None and 'givenName' in kwargs: + given_name = kwargs['givenName'] + if given_name is None: + raise TypeError("Missing 'given_name' argument") + if honorific_prefix is None and 'honorificPrefix' in kwargs: + honorific_prefix = kwargs['honorificPrefix'] + if honorific_prefix is None: + raise TypeError("Missing 'honorific_prefix' argument") + if honorific_suffix is None and 'honorificSuffix' in kwargs: + honorific_suffix = kwargs['honorificSuffix'] + if honorific_suffix is None: + raise TypeError("Missing 'honorific_suffix' argument") + if middle_name is None and 'middleName' in kwargs: + middle_name = kwargs['middleName'] + if middle_name is None: + raise TypeError("Missing 'middle_name' argument") + + _setter("family_name", family_name) + _setter("formatted", formatted) + _setter("given_name", given_name) + _setter("honorific_prefix", honorific_prefix) + _setter("honorific_suffix", honorific_suffix) + _setter("middle_name", middle_name) @property @pulumi.getter(name="familyName") @@ -930,9 +1345,30 @@ def __init__(__self__, *, :param str type: The type of phone number. :param str value: The user's phone number. """ - pulumi.set(__self__, "primary", primary) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GetUserPhoneNumberResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary=primary, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary: Optional[bool] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary is None: + raise TypeError("Missing 'primary' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("primary", primary) + _setter("type", type) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/identitystore/user.py b/sdk/python/pulumi_aws/identitystore/user.py index 934a27519ed..731b1b967f3 100644 --- a/sdk/python/pulumi_aws/identitystore/user.py +++ b/sdk/python/pulumi_aws/identitystore/user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -49,31 +49,88 @@ def __init__(__self__, *, :param pulumi.Input[str] title: The user's title. :param pulumi.Input[str] user_type: The user type. """ - pulumi.set(__self__, "display_name", display_name) - pulumi.set(__self__, "identity_store_id", identity_store_id) - pulumi.set(__self__, "user_name", user_name) + UserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + display_name=display_name, + identity_store_id=identity_store_id, + user_name=user_name, + addresses=addresses, + emails=emails, + locale=locale, + name=name, + nickname=nickname, + phone_numbers=phone_numbers, + preferred_language=preferred_language, + profile_url=profile_url, + timezone=timezone, + title=title, + user_type=user_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + display_name: Optional[pulumi.Input[str]] = None, + identity_store_id: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + addresses: Optional[pulumi.Input['UserAddressesArgs']] = None, + emails: Optional[pulumi.Input['UserEmailsArgs']] = None, + locale: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input['UserNameArgs']] = None, + nickname: Optional[pulumi.Input[str]] = None, + phone_numbers: Optional[pulumi.Input['UserPhoneNumbersArgs']] = None, + preferred_language: Optional[pulumi.Input[str]] = None, + profile_url: Optional[pulumi.Input[str]] = None, + timezone: Optional[pulumi.Input[str]] = None, + title: Optional[pulumi.Input[str]] = None, + user_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if display_name is None: + raise TypeError("Missing 'display_name' argument") + if identity_store_id is None and 'identityStoreId' in kwargs: + identity_store_id = kwargs['identityStoreId'] + if identity_store_id is None: + raise TypeError("Missing 'identity_store_id' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + if phone_numbers is None and 'phoneNumbers' in kwargs: + phone_numbers = kwargs['phoneNumbers'] + if preferred_language is None and 'preferredLanguage' in kwargs: + preferred_language = kwargs['preferredLanguage'] + if profile_url is None and 'profileUrl' in kwargs: + profile_url = kwargs['profileUrl'] + if user_type is None and 'userType' in kwargs: + user_type = kwargs['userType'] + + _setter("display_name", display_name) + _setter("identity_store_id", identity_store_id) + _setter("user_name", user_name) if addresses is not None: - pulumi.set(__self__, "addresses", addresses) + _setter("addresses", addresses) if emails is not None: - pulumi.set(__self__, "emails", emails) + _setter("emails", emails) if locale is not None: - pulumi.set(__self__, "locale", locale) + _setter("locale", locale) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nickname is not None: - pulumi.set(__self__, "nickname", nickname) + _setter("nickname", nickname) if phone_numbers is not None: - pulumi.set(__self__, "phone_numbers", phone_numbers) + _setter("phone_numbers", phone_numbers) if preferred_language is not None: - pulumi.set(__self__, "preferred_language", preferred_language) + _setter("preferred_language", preferred_language) if profile_url is not None: - pulumi.set(__self__, "profile_url", profile_url) + _setter("profile_url", profile_url) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) if title is not None: - pulumi.set(__self__, "title", title) + _setter("title", title) if user_type is not None: - pulumi.set(__self__, "user_type", user_type) + _setter("user_type", user_type) @property @pulumi.getter(name="displayName") @@ -286,38 +343,97 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] user_type: The user type. """ + _UserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + addresses=addresses, + display_name=display_name, + emails=emails, + external_ids=external_ids, + identity_store_id=identity_store_id, + locale=locale, + name=name, + nickname=nickname, + phone_numbers=phone_numbers, + preferred_language=preferred_language, + profile_url=profile_url, + timezone=timezone, + title=title, + user_id=user_id, + user_name=user_name, + user_type=user_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + addresses: Optional[pulumi.Input['UserAddressesArgs']] = None, + display_name: Optional[pulumi.Input[str]] = None, + emails: Optional[pulumi.Input['UserEmailsArgs']] = None, + external_ids: Optional[pulumi.Input[Sequence[pulumi.Input['UserExternalIdArgs']]]] = None, + identity_store_id: Optional[pulumi.Input[str]] = None, + locale: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input['UserNameArgs']] = None, + nickname: Optional[pulumi.Input[str]] = None, + phone_numbers: Optional[pulumi.Input['UserPhoneNumbersArgs']] = None, + preferred_language: Optional[pulumi.Input[str]] = None, + profile_url: Optional[pulumi.Input[str]] = None, + timezone: Optional[pulumi.Input[str]] = None, + title: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + user_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if external_ids is None and 'externalIds' in kwargs: + external_ids = kwargs['externalIds'] + if identity_store_id is None and 'identityStoreId' in kwargs: + identity_store_id = kwargs['identityStoreId'] + if phone_numbers is None and 'phoneNumbers' in kwargs: + phone_numbers = kwargs['phoneNumbers'] + if preferred_language is None and 'preferredLanguage' in kwargs: + preferred_language = kwargs['preferredLanguage'] + if profile_url is None and 'profileUrl' in kwargs: + profile_url = kwargs['profileUrl'] + if user_id is None and 'userId' in kwargs: + user_id = kwargs['userId'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_type is None and 'userType' in kwargs: + user_type = kwargs['userType'] + if addresses is not None: - pulumi.set(__self__, "addresses", addresses) + _setter("addresses", addresses) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if emails is not None: - pulumi.set(__self__, "emails", emails) + _setter("emails", emails) if external_ids is not None: - pulumi.set(__self__, "external_ids", external_ids) + _setter("external_ids", external_ids) if identity_store_id is not None: - pulumi.set(__self__, "identity_store_id", identity_store_id) + _setter("identity_store_id", identity_store_id) if locale is not None: - pulumi.set(__self__, "locale", locale) + _setter("locale", locale) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nickname is not None: - pulumi.set(__self__, "nickname", nickname) + _setter("nickname", nickname) if phone_numbers is not None: - pulumi.set(__self__, "phone_numbers", phone_numbers) + _setter("phone_numbers", phone_numbers) if preferred_language is not None: - pulumi.set(__self__, "preferred_language", preferred_language) + _setter("preferred_language", preferred_language) if profile_url is not None: - pulumi.set(__self__, "profile_url", profile_url) + _setter("profile_url", profile_url) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) if title is not None: - pulumi.set(__self__, "title", title) + _setter("title", title) if user_id is not None: - pulumi.set(__self__, "user_id", user_id) + _setter("user_id", user_id) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) if user_type is not None: - pulumi.set(__self__, "user_type", user_type) + _setter("user_type", user_type) @property @pulumi.getter @@ -605,6 +721,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -633,17 +753,21 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = UserArgs.__new__(UserArgs) + addresses = _utilities.configure(addresses, UserAddressesArgs, True) __props__.__dict__["addresses"] = addresses if display_name is None and not opts.urn: raise TypeError("Missing required property 'display_name'") __props__.__dict__["display_name"] = display_name + emails = _utilities.configure(emails, UserEmailsArgs, True) __props__.__dict__["emails"] = emails if identity_store_id is None and not opts.urn: raise TypeError("Missing required property 'identity_store_id'") __props__.__dict__["identity_store_id"] = identity_store_id __props__.__dict__["locale"] = locale + name = _utilities.configure(name, UserNameArgs, True) __props__.__dict__["name"] = name __props__.__dict__["nickname"] = nickname + phone_numbers = _utilities.configure(phone_numbers, UserPhoneNumbersArgs, True) __props__.__dict__["phone_numbers"] = phone_numbers __props__.__dict__["preferred_language"] = preferred_language __props__.__dict__["profile_url"] = profile_url diff --git a/sdk/python/pulumi_aws/imagebuilder/_inputs.py b/sdk/python/pulumi_aws/imagebuilder/_inputs.py index 7b0e0317309..b0c1e541a98 100644 --- a/sdk/python/pulumi_aws/imagebuilder/_inputs.py +++ b/sdk/python/pulumi_aws/imagebuilder/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -58,9 +58,26 @@ def __init__(__self__, *, :param pulumi.Input[str] component_arn: Amazon Resource Name (ARN) of the Image Builder Component to associate. :param pulumi.Input[Sequence[pulumi.Input['ContainerRecipeComponentParameterArgs']]] parameters: Configuration block(s) for parameters to configure the component. Detailed below. """ - pulumi.set(__self__, "component_arn", component_arn) + ContainerRecipeComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_arn=component_arn, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_arn: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerRecipeComponentParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_arn is None and 'componentArn' in kwargs: + component_arn = kwargs['componentArn'] + if component_arn is None: + raise TypeError("Missing 'component_arn' argument") + + _setter("component_arn", component_arn) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter(name="componentArn") @@ -96,8 +113,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the component parameter. :param pulumi.Input[str] value: The value for the named component parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ContainerRecipeComponentParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -133,10 +167,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ContainerRecipeInstanceConfigurationBlockDeviceMappingArgs']]] block_device_mappings: Configuration block(s) with block device mappings for the container recipe. Detailed below. :param pulumi.Input[str] image: The AMI ID to use as the base image for a container build and test instance. If not specified, Image Builder will use the appropriate ECS-optimized AMI as a base image. """ + ContainerRecipeInstanceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_device_mappings=block_device_mappings, + image=image, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerRecipeInstanceConfigurationBlockDeviceMappingArgs']]]] = None, + image: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_device_mappings is None and 'blockDeviceMappings' in kwargs: + block_device_mappings = kwargs['blockDeviceMappings'] + if block_device_mappings is not None: - pulumi.set(__self__, "block_device_mappings", block_device_mappings) + _setter("block_device_mappings", block_device_mappings) if image is not None: - pulumi.set(__self__, "image", image) + _setter("image", image) @property @pulumi.getter(name="blockDeviceMappings") @@ -176,14 +225,37 @@ def __init__(__self__, *, :param pulumi.Input[bool] no_device: Set to `true` to remove a mapping from the parent image. :param pulumi.Input[str] virtual_name: Virtual device name. For example, `ephemeral0`. Instance store volumes are numbered starting from 0. """ + ContainerRecipeInstanceConfigurationBlockDeviceMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + ebs: Optional[pulumi.Input['ContainerRecipeInstanceConfigurationBlockDeviceMappingEbsArgs']] = None, + no_device: Optional[pulumi.Input[bool]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if ebs is not None: - pulumi.set(__self__, "ebs", ebs) + _setter("ebs", ebs) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -255,22 +327,57 @@ def __init__(__self__, *, :param pulumi.Input[int] volume_size: Size of the volume, in GiB. :param pulumi.Input[str] volume_type: Type of the volume. For example, `gp2` or `io2`. """ + ContainerRecipeInstanceConfigurationBlockDeviceMappingEbsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -378,8 +485,27 @@ def __init__(__self__, *, :param pulumi.Input[str] repository_name: The name of the container repository where the output container image is stored. This name is prefixed by the repository location. :param pulumi.Input[str] service: The service in which this image is registered. Valid values: `ECR`. """ - pulumi.set(__self__, "repository_name", repository_name) - pulumi.set(__self__, "service", service) + ContainerRecipeTargetRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + service=service, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[pulumi.Input[str]] = None, + service: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if service is None: + raise TypeError("Missing 'service' argument") + + _setter("repository_name", repository_name) + _setter("service", service) @property @pulumi.getter(name="repositoryName") @@ -425,17 +551,50 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DistributionConfigurationDistributionLaunchTemplateConfigurationArgs']]] launch_template_configurations: Set of launch template configuration settings that apply to image distribution. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[str]]] license_configuration_arns: Set of Amazon Resource Names (ARNs) of License Manager License Configurations. """ - pulumi.set(__self__, "region", region) + DistributionConfigurationDistributionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + region=region, + ami_distribution_configuration=ami_distribution_configuration, + container_distribution_configuration=container_distribution_configuration, + fast_launch_configurations=fast_launch_configurations, + launch_template_configurations=launch_template_configurations, + license_configuration_arns=license_configuration_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region: Optional[pulumi.Input[str]] = None, + ami_distribution_configuration: Optional[pulumi.Input['DistributionConfigurationDistributionAmiDistributionConfigurationArgs']] = None, + container_distribution_configuration: Optional[pulumi.Input['DistributionConfigurationDistributionContainerDistributionConfigurationArgs']] = None, + fast_launch_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionConfigurationDistributionFastLaunchConfigurationArgs']]]] = None, + launch_template_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionConfigurationDistributionLaunchTemplateConfigurationArgs']]]] = None, + license_configuration_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region is None: + raise TypeError("Missing 'region' argument") + if ami_distribution_configuration is None and 'amiDistributionConfiguration' in kwargs: + ami_distribution_configuration = kwargs['amiDistributionConfiguration'] + if container_distribution_configuration is None and 'containerDistributionConfiguration' in kwargs: + container_distribution_configuration = kwargs['containerDistributionConfiguration'] + if fast_launch_configurations is None and 'fastLaunchConfigurations' in kwargs: + fast_launch_configurations = kwargs['fastLaunchConfigurations'] + if launch_template_configurations is None and 'launchTemplateConfigurations' in kwargs: + launch_template_configurations = kwargs['launchTemplateConfigurations'] + if license_configuration_arns is None and 'licenseConfigurationArns' in kwargs: + license_configuration_arns = kwargs['licenseConfigurationArns'] + + _setter("region", region) if ami_distribution_configuration is not None: - pulumi.set(__self__, "ami_distribution_configuration", ami_distribution_configuration) + _setter("ami_distribution_configuration", ami_distribution_configuration) if container_distribution_configuration is not None: - pulumi.set(__self__, "container_distribution_configuration", container_distribution_configuration) + _setter("container_distribution_configuration", container_distribution_configuration) if fast_launch_configurations is not None: - pulumi.set(__self__, "fast_launch_configurations", fast_launch_configurations) + _setter("fast_launch_configurations", fast_launch_configurations) if launch_template_configurations is not None: - pulumi.set(__self__, "launch_template_configurations", launch_template_configurations) + _setter("launch_template_configurations", launch_template_configurations) if license_configuration_arns is not None: - pulumi.set(__self__, "license_configuration_arns", license_configuration_arns) + _setter("license_configuration_arns", license_configuration_arns) @property @pulumi.getter @@ -529,18 +688,47 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name to apply to the distributed AMI. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_account_ids: Set of AWS Account identifiers to distribute the AMI. """ + DistributionConfigurationDistributionAmiDistributionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami_tags=ami_tags, + description=description, + kms_key_id=kms_key_id, + launch_permission=launch_permission, + name=name, + target_account_ids=target_account_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + launch_permission: Optional[pulumi.Input['DistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + target_account_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ami_tags is None and 'amiTags' in kwargs: + ami_tags = kwargs['amiTags'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if launch_permission is None and 'launchPermission' in kwargs: + launch_permission = kwargs['launchPermission'] + if target_account_ids is None and 'targetAccountIds' in kwargs: + target_account_ids = kwargs['targetAccountIds'] + if ami_tags is not None: - pulumi.set(__self__, "ami_tags", ami_tags) + _setter("ami_tags", ami_tags) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if launch_permission is not None: - pulumi.set(__self__, "launch_permission", launch_permission) + _setter("launch_permission", launch_permission) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if target_account_ids is not None: - pulumi.set(__self__, "target_account_ids", target_account_ids) + _setter("target_account_ids", target_account_ids) @property @pulumi.getter(name="amiTags") @@ -628,14 +816,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] user_groups: Set of EC2 launch permission user groups to assign. Use `all` to distribute a public AMI. :param pulumi.Input[Sequence[pulumi.Input[str]]] user_ids: Set of AWS Account identifiers to assign. """ + DistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + organization_arns=organization_arns, + organizational_unit_arns=organizational_unit_arns, + user_groups=user_groups, + user_ids=user_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + organization_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + organizational_unit_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if organization_arns is None and 'organizationArns' in kwargs: + organization_arns = kwargs['organizationArns'] + if organizational_unit_arns is None and 'organizationalUnitArns' in kwargs: + organizational_unit_arns = kwargs['organizationalUnitArns'] + if user_groups is None and 'userGroups' in kwargs: + user_groups = kwargs['userGroups'] + if user_ids is None and 'userIds' in kwargs: + user_ids = kwargs['userIds'] + if organization_arns is not None: - pulumi.set(__self__, "organization_arns", organization_arns) + _setter("organization_arns", organization_arns) if organizational_unit_arns is not None: - pulumi.set(__self__, "organizational_unit_arns", organizational_unit_arns) + _setter("organizational_unit_arns", organizational_unit_arns) if user_groups is not None: - pulumi.set(__self__, "user_groups", user_groups) + _setter("user_groups", user_groups) if user_ids is not None: - pulumi.set(__self__, "user_ids", user_ids) + _setter("user_ids", user_ids) @property @pulumi.getter(name="organizationArns") @@ -697,11 +910,32 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] container_tags: Set of tags that are attached to the container distribution configuration. :param pulumi.Input[str] description: Description of the container distribution configuration. """ - pulumi.set(__self__, "target_repository", target_repository) + DistributionConfigurationDistributionContainerDistributionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_repository=target_repository, + container_tags=container_tags, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_repository: Optional[pulumi.Input['DistributionConfigurationDistributionContainerDistributionConfigurationTargetRepositoryArgs']] = None, + container_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_repository is None and 'targetRepository' in kwargs: + target_repository = kwargs['targetRepository'] + if target_repository is None: + raise TypeError("Missing 'target_repository' argument") + if container_tags is None and 'containerTags' in kwargs: + container_tags = kwargs['containerTags'] + + _setter("target_repository", target_repository) if container_tags is not None: - pulumi.set(__self__, "container_tags", container_tags) + _setter("container_tags", container_tags) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="targetRepository") @@ -749,8 +983,27 @@ def __init__(__self__, *, :param pulumi.Input[str] repository_name: The name of the container repository where the output container image is stored. This name is prefixed by the repository location. :param pulumi.Input[str] service: The service in which this image is registered. Valid values: `ECR`. """ - pulumi.set(__self__, "repository_name", repository_name) - pulumi.set(__self__, "service", service) + DistributionConfigurationDistributionContainerDistributionConfigurationTargetRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + service=service, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[pulumi.Input[str]] = None, + service: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if service is None: + raise TypeError("Missing 'service' argument") + + _setter("repository_name", repository_name) + _setter("service", service) @property @pulumi.getter(name="repositoryName") @@ -792,14 +1045,45 @@ def __init__(__self__, *, :param pulumi.Input[int] max_parallel_launches: The maximum number of parallel instances that are launched for creating resources. :param pulumi.Input['DistributionConfigurationDistributionFastLaunchConfigurationSnapshotConfigurationArgs'] snapshot_configuration: Configuration block for managing the number of snapshots that are created from pre-provisioned instances for the Windows AMI when faster launching is enabled. Detailed below. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "enabled", enabled) + DistributionConfigurationDistributionFastLaunchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + enabled=enabled, + launch_template=launch_template, + max_parallel_launches=max_parallel_launches, + snapshot_configuration=snapshot_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + launch_template: Optional[pulumi.Input['DistributionConfigurationDistributionFastLaunchConfigurationLaunchTemplateArgs']] = None, + max_parallel_launches: Optional[pulumi.Input[int]] = None, + snapshot_configuration: Optional[pulumi.Input['DistributionConfigurationDistributionFastLaunchConfigurationSnapshotConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if max_parallel_launches is None and 'maxParallelLaunches' in kwargs: + max_parallel_launches = kwargs['maxParallelLaunches'] + if snapshot_configuration is None and 'snapshotConfiguration' in kwargs: + snapshot_configuration = kwargs['snapshotConfiguration'] + + _setter("account_id", account_id) + _setter("enabled", enabled) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if max_parallel_launches is not None: - pulumi.set(__self__, "max_parallel_launches", max_parallel_launches) + _setter("max_parallel_launches", max_parallel_launches) if snapshot_configuration is not None: - pulumi.set(__self__, "snapshot_configuration", snapshot_configuration) + _setter("snapshot_configuration", snapshot_configuration) @property @pulumi.getter(name="accountId") @@ -873,12 +1157,33 @@ def __init__(__self__, *, :param pulumi.Input[str] launch_template_name: The name of the launch template to use for faster launching for a Windows AMI. :param pulumi.Input[str] launch_template_version: The version of the launch template to use for faster launching for a Windows AMI. """ + DistributionConfigurationDistributionFastLaunchConfigurationLaunchTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + launch_template_version=launch_template_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[pulumi.Input[str]] = None, + launch_template_name: Optional[pulumi.Input[str]] = None, + launch_template_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_version is None and 'launchTemplateVersion' in kwargs: + launch_template_version = kwargs['launchTemplateVersion'] + if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) if launch_template_version is not None: - pulumi.set(__self__, "launch_template_version", launch_template_version) + _setter("launch_template_version", launch_template_version) @property @pulumi.getter(name="launchTemplateId") @@ -924,8 +1229,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] target_resource_count: The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI. """ + DistributionConfigurationDistributionFastLaunchConfigurationSnapshotConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_resource_count=target_resource_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_resource_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_resource_count is None and 'targetResourceCount' in kwargs: + target_resource_count = kwargs['targetResourceCount'] + if target_resource_count is not None: - pulumi.set(__self__, "target_resource_count", target_resource_count) + _setter("target_resource_count", target_resource_count) @property @pulumi.getter(name="targetResourceCount") @@ -951,11 +1269,32 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: The account ID that this configuration applies to. :param pulumi.Input[bool] default: Indicates whether to set the specified Amazon EC2 launch template as the default launch template. Defaults to `true`. """ - pulumi.set(__self__, "launch_template_id", launch_template_id) + DistributionConfigurationDistributionLaunchTemplateConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + account_id=account_id, + default=default, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + default: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_id is None: + raise TypeError("Missing 'launch_template_id' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("launch_template_id", launch_template_id) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if default is not None: - pulumi.set(__self__, "default", default) + _setter("default", default) @property @pulumi.getter(name="launchTemplateId") @@ -1003,10 +1342,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] image_tests_enabled: Whether image tests are enabled. Defaults to `true`. :param pulumi.Input[int] timeout_minutes: Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. """ + ImageImageTestsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_tests_enabled=image_tests_enabled, + timeout_minutes=timeout_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_tests_enabled: Optional[pulumi.Input[bool]] = None, + timeout_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_tests_enabled is None and 'imageTestsEnabled' in kwargs: + image_tests_enabled = kwargs['imageTestsEnabled'] + if timeout_minutes is None and 'timeoutMinutes' in kwargs: + timeout_minutes = kwargs['timeoutMinutes'] + if image_tests_enabled is not None: - pulumi.set(__self__, "image_tests_enabled", image_tests_enabled) + _setter("image_tests_enabled", image_tests_enabled) if timeout_minutes is not None: - pulumi.set(__self__, "timeout_minutes", timeout_minutes) + _setter("timeout_minutes", timeout_minutes) @property @pulumi.getter(name="imageTestsEnabled") @@ -1042,10 +1398,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ImageOutputResourceAmiArgs']]] amis: Set of objects with each Amazon Machine Image (AMI) created. :param pulumi.Input[Sequence[pulumi.Input['ImageOutputResourceContainerArgs']]] containers: Set of objects with each container image created and stored in the output repository. """ + ImageOutputResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amis=amis, + containers=containers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amis: Optional[pulumi.Input[Sequence[pulumi.Input['ImageOutputResourceAmiArgs']]]] = None, + containers: Optional[pulumi.Input[Sequence[pulumi.Input['ImageOutputResourceContainerArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amis is not None: - pulumi.set(__self__, "amis", amis) + _setter("amis", amis) if containers is not None: - pulumi.set(__self__, "containers", containers) + _setter("containers", containers) @property @pulumi.getter @@ -1087,16 +1456,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the AMI. :param pulumi.Input[str] region: Region of the container image. """ + ImageOutputResourceAmiArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + description=description, + image=image, + name=name, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + image: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if image is not None: - pulumi.set(__self__, "image", image) + _setter("image", image) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter(name="accountId") @@ -1168,10 +1558,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] image_uris: Set of URIs for created containers. :param pulumi.Input[str] region: Region of the container image. """ + ImageOutputResourceContainerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_uris=image_uris, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_uris: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_uris is None and 'imageUris' in kwargs: + image_uris = kwargs['imageUris'] + if image_uris is not None: - pulumi.set(__self__, "image_uris", image_uris) + _setter("image_uris", image_uris) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter(name="imageUris") @@ -1207,10 +1612,27 @@ def __init__(__self__, *, :param pulumi.Input['ImagePipelineImageScanningConfigurationEcrConfigurationArgs'] ecr_configuration: Configuration block with ECR configuration for image scanning. Detailed below. :param pulumi.Input[bool] image_scanning_enabled: Whether image scans are enabled. Defaults to `false`. """ + ImagePipelineImageScanningConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ecr_configuration=ecr_configuration, + image_scanning_enabled=image_scanning_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ecr_configuration: Optional[pulumi.Input['ImagePipelineImageScanningConfigurationEcrConfigurationArgs']] = None, + image_scanning_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ecr_configuration is None and 'ecrConfiguration' in kwargs: + ecr_configuration = kwargs['ecrConfiguration'] + if image_scanning_enabled is None and 'imageScanningEnabled' in kwargs: + image_scanning_enabled = kwargs['imageScanningEnabled'] + if ecr_configuration is not None: - pulumi.set(__self__, "ecr_configuration", ecr_configuration) + _setter("ecr_configuration", ecr_configuration) if image_scanning_enabled is not None: - pulumi.set(__self__, "image_scanning_enabled", image_scanning_enabled) + _setter("image_scanning_enabled", image_scanning_enabled) @property @pulumi.getter(name="ecrConfiguration") @@ -1245,10 +1667,27 @@ def __init__(__self__, *, """ :param pulumi.Input[str] repository_name: The name of the repository to scan """ + ImagePipelineImageScanningConfigurationEcrConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_tags=container_tags, + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + repository_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_tags is None and 'containerTags' in kwargs: + container_tags = kwargs['containerTags'] + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if container_tags is not None: - pulumi.set(__self__, "container_tags", container_tags) + _setter("container_tags", container_tags) if repository_name is not None: - pulumi.set(__self__, "repository_name", repository_name) + _setter("repository_name", repository_name) @property @pulumi.getter(name="containerTags") @@ -1281,10 +1720,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] image_tests_enabled: Whether image tests are enabled. Defaults to `true`. :param pulumi.Input[int] timeout_minutes: Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. """ + ImagePipelineImageTestsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_tests_enabled=image_tests_enabled, + timeout_minutes=timeout_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_tests_enabled: Optional[pulumi.Input[bool]] = None, + timeout_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_tests_enabled is None and 'imageTestsEnabled' in kwargs: + image_tests_enabled = kwargs['imageTestsEnabled'] + if timeout_minutes is None and 'timeoutMinutes' in kwargs: + timeout_minutes = kwargs['timeoutMinutes'] + if image_tests_enabled is not None: - pulumi.set(__self__, "image_tests_enabled", image_tests_enabled) + _setter("image_tests_enabled", image_tests_enabled) if timeout_minutes is not None: - pulumi.set(__self__, "timeout_minutes", timeout_minutes) + _setter("timeout_minutes", timeout_minutes) @property @pulumi.getter(name="imageTestsEnabled") @@ -1324,11 +1780,32 @@ def __init__(__self__, *, :param pulumi.Input[str] pipeline_execution_start_condition: Condition when the pipeline should trigger a new image build. Valid values are `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE` and `EXPRESSION_MATCH_ONLY`. Defaults to `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE`. :param pulumi.Input[str] timezone: The timezone that applies to the scheduling expression. For example, "Etc/UTC", "America/Los_Angeles" in the [IANA timezone format](https://www.joda.org/joda-time/timezones.html). If not specified this defaults to UTC. """ - pulumi.set(__self__, "schedule_expression", schedule_expression) + ImagePipelineScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + schedule_expression=schedule_expression, + pipeline_execution_start_condition=pipeline_execution_start_condition, + timezone=timezone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schedule_expression: Optional[pulumi.Input[str]] = None, + pipeline_execution_start_condition: Optional[pulumi.Input[str]] = None, + timezone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + if pipeline_execution_start_condition is None and 'pipelineExecutionStartCondition' in kwargs: + pipeline_execution_start_condition = kwargs['pipelineExecutionStartCondition'] + + _setter("schedule_expression", schedule_expression) if pipeline_execution_start_condition is not None: - pulumi.set(__self__, "pipeline_execution_start_condition", pipeline_execution_start_condition) + _setter("pipeline_execution_start_condition", pipeline_execution_start_condition) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) @property @pulumi.getter(name="scheduleExpression") @@ -1382,14 +1859,37 @@ def __init__(__self__, *, :param pulumi.Input[bool] no_device: Set to `true` to remove a mapping from the parent image. :param pulumi.Input[str] virtual_name: Virtual device name. For example, `ephemeral0`. Instance store volumes are numbered starting from 0. """ + ImageRecipeBlockDeviceMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + ebs: Optional[pulumi.Input['ImageRecipeBlockDeviceMappingEbsArgs']] = None, + no_device: Optional[pulumi.Input[bool]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if ebs is not None: - pulumi.set(__self__, "ebs", ebs) + _setter("ebs", ebs) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -1461,22 +1961,57 @@ def __init__(__self__, *, :param pulumi.Input[int] volume_size: Size of the volume, in GiB. :param pulumi.Input[str] volume_type: Type of the volume. For example, `gp2` or `io2`. """ + ImageRecipeBlockDeviceMappingEbsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -1584,9 +2119,26 @@ def __init__(__self__, *, :param pulumi.Input[str] component_arn: Amazon Resource Name (ARN) of the Image Builder Component to associate. :param pulumi.Input[Sequence[pulumi.Input['ImageRecipeComponentParameterArgs']]] parameters: Configuration block(s) for parameters to configure the component. Detailed below. """ - pulumi.set(__self__, "component_arn", component_arn) + ImageRecipeComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_arn=component_arn, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_arn: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ImageRecipeComponentParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_arn is None and 'componentArn' in kwargs: + component_arn = kwargs['componentArn'] + if component_arn is None: + raise TypeError("Missing 'component_arn' argument") + + _setter("component_arn", component_arn) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter(name="componentArn") @@ -1622,8 +2174,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the component parameter. :param pulumi.Input[str] value: The value for the named component parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ImageRecipeComponentParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1657,7 +2226,22 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] uninstall_after_build: Whether to remove the Systems Manager Agent after the image has been built. Defaults to `false`. """ - pulumi.set(__self__, "uninstall_after_build", uninstall_after_build) + ImageRecipeSystemsManagerAgentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + uninstall_after_build=uninstall_after_build, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uninstall_after_build: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uninstall_after_build is None and 'uninstallAfterBuild' in kwargs: + uninstall_after_build = kwargs['uninstallAfterBuild'] + if uninstall_after_build is None: + raise TypeError("Missing 'uninstall_after_build' argument") + + _setter("uninstall_after_build", uninstall_after_build) @property @pulumi.getter(name="uninstallAfterBuild") @@ -1681,10 +2265,27 @@ def __init__(__self__, *, :param pulumi.Input[int] http_put_response_hop_limit: The number of hops that an instance can traverse to reach its destonation. :param pulumi.Input[str] http_tokens: Whether a signed token is required for instance metadata retrieval requests. Valid values: `required`, `optional`. """ + InfrastructureConfigurationInstanceMetadataOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) @property @pulumi.getter(name="httpPutResponseHopLimit") @@ -1718,7 +2319,22 @@ def __init__(__self__, *, """ :param pulumi.Input['InfrastructureConfigurationLoggingS3LogsArgs'] s3_logs: Configuration block with S3 logging settings. Detailed below. """ - pulumi.set(__self__, "s3_logs", s3_logs) + InfrastructureConfigurationLoggingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_logs=s3_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_logs: Optional[pulumi.Input['InfrastructureConfigurationLoggingS3LogsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_logs is None and 's3Logs' in kwargs: + s3_logs = kwargs['s3Logs'] + if s3_logs is None: + raise TypeError("Missing 's3_logs' argument") + + _setter("s3_logs", s3_logs) @property @pulumi.getter(name="s3Logs") @@ -1744,9 +2360,28 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] s3_key_prefix: Prefix to use for S3 logs. Defaults to `/`. """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + InfrastructureConfigurationLoggingS3LogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[pulumi.Input[str]] = None, + s3_key_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + + _setter("s3_bucket_name", s3_bucket_name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter(name="s3BucketName") @@ -1784,8 +2419,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListComponents API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListComponents.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetComponentsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1821,8 +2473,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListContainerRecipes API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListContainerRecipes.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetContainerRecipesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1858,8 +2527,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListDistributionConfigurations API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListDistributionConfigurations.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetDistributionConfigurationsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1895,8 +2581,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListImagePipelines API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListImagePipelines.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetImagePipelinesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1932,8 +2635,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListImageRecipes API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListImageRecipes.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetImageRecipesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1969,8 +2689,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListInfrastructureConfigurations API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListInfrastructureConfigurations.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInfrastructureConfigurationsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/imagebuilder/component.py b/sdk/python/pulumi_aws/imagebuilder/component.py index 318c5882d45..11bd60e704d 100644 --- a/sdk/python/pulumi_aws/imagebuilder/component.py +++ b/sdk/python/pulumi_aws/imagebuilder/component.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ComponentArgs', 'Component'] @@ -43,26 +43,69 @@ def __init__(__self__, *, > **NOTE:** Updating `data` or `uri` requires specifying a new `version`. This causes replacement of the resource. The `skip_destroy` argument can be used to retain the old version. """ - pulumi.set(__self__, "platform", platform) - pulumi.set(__self__, "version", version) + ComponentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + platform=platform, + version=version, + change_description=change_description, + data=data, + description=description, + kms_key_id=kms_key_id, + name=name, + skip_destroy=skip_destroy, + supported_os_versions=supported_os_versions, + tags=tags, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + platform: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + change_description: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + supported_os_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if platform is None: + raise TypeError("Missing 'platform' argument") + if version is None: + raise TypeError("Missing 'version' argument") + if change_description is None and 'changeDescription' in kwargs: + change_description = kwargs['changeDescription'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if supported_os_versions is None and 'supportedOsVersions' in kwargs: + supported_os_versions = kwargs['supportedOsVersions'] + + _setter("platform", platform) + _setter("version", version) if change_description is not None: - pulumi.set(__self__, "change_description", change_description) + _setter("change_description", change_description) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if supported_os_versions is not None: - pulumi.set(__self__, "supported_os_versions", supported_os_versions) + _setter("supported_os_versions", supported_os_versions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -245,43 +288,98 @@ def __init__(__self__, *, The following attributes are optional: """ + _ComponentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + change_description=change_description, + data=data, + date_created=date_created, + description=description, + encrypted=encrypted, + kms_key_id=kms_key_id, + name=name, + owner=owner, + platform=platform, + skip_destroy=skip_destroy, + supported_os_versions=supported_os_versions, + tags=tags, + tags_all=tags_all, + type=type, + uri=uri, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + change_description: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + date_created: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + supported_os_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if change_description is None and 'changeDescription' in kwargs: + change_description = kwargs['changeDescription'] + if date_created is None and 'dateCreated' in kwargs: + date_created = kwargs['dateCreated'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if supported_os_versions is None and 'supportedOsVersions' in kwargs: + supported_os_versions = kwargs['supportedOsVersions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if change_description is not None: - pulumi.set(__self__, "change_description", change_description) + _setter("change_description", change_description) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) if date_created is not None: - pulumi.set(__self__, "date_created", date_created) + _setter("date_created", date_created) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if supported_os_versions is not None: - pulumi.set(__self__, "supported_os_versions", supported_os_versions) + _setter("supported_os_versions", supported_os_versions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -596,6 +694,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ComponentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/imagebuilder/container_recipe.py b/sdk/python/pulumi_aws/imagebuilder/container_recipe.py index 9509315832b..0d5b2559076 100644 --- a/sdk/python/pulumi_aws/imagebuilder/container_recipe.py +++ b/sdk/python/pulumi_aws/imagebuilder/container_recipe.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -49,29 +49,94 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the container recipe. 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] working_directory: The working directory to be used during build and test workflows. """ - pulumi.set(__self__, "components", components) - pulumi.set(__self__, "container_type", container_type) - pulumi.set(__self__, "parent_image", parent_image) - pulumi.set(__self__, "target_repository", target_repository) - pulumi.set(__self__, "version", version) + ContainerRecipeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + components=components, + container_type=container_type, + parent_image=parent_image, + target_repository=target_repository, + version=version, + description=description, + dockerfile_template_data=dockerfile_template_data, + dockerfile_template_uri=dockerfile_template_uri, + instance_configuration=instance_configuration, + kms_key_id=kms_key_id, + name=name, + platform_override=platform_override, + tags=tags, + working_directory=working_directory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + components: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerRecipeComponentArgs']]]] = None, + container_type: Optional[pulumi.Input[str]] = None, + parent_image: Optional[pulumi.Input[str]] = None, + target_repository: Optional[pulumi.Input['ContainerRecipeTargetRepositoryArgs']] = None, + version: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + dockerfile_template_data: Optional[pulumi.Input[str]] = None, + dockerfile_template_uri: Optional[pulumi.Input[str]] = None, + instance_configuration: Optional[pulumi.Input['ContainerRecipeInstanceConfigurationArgs']] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + platform_override: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + working_directory: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if components is None: + raise TypeError("Missing 'components' argument") + if container_type is None and 'containerType' in kwargs: + container_type = kwargs['containerType'] + if container_type is None: + raise TypeError("Missing 'container_type' argument") + if parent_image is None and 'parentImage' in kwargs: + parent_image = kwargs['parentImage'] + if parent_image is None: + raise TypeError("Missing 'parent_image' argument") + if target_repository is None and 'targetRepository' in kwargs: + target_repository = kwargs['targetRepository'] + if target_repository is None: + raise TypeError("Missing 'target_repository' argument") + if version is None: + raise TypeError("Missing 'version' argument") + if dockerfile_template_data is None and 'dockerfileTemplateData' in kwargs: + dockerfile_template_data = kwargs['dockerfileTemplateData'] + if dockerfile_template_uri is None and 'dockerfileTemplateUri' in kwargs: + dockerfile_template_uri = kwargs['dockerfileTemplateUri'] + if instance_configuration is None and 'instanceConfiguration' in kwargs: + instance_configuration = kwargs['instanceConfiguration'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if platform_override is None and 'platformOverride' in kwargs: + platform_override = kwargs['platformOverride'] + if working_directory is None and 'workingDirectory' in kwargs: + working_directory = kwargs['workingDirectory'] + + _setter("components", components) + _setter("container_type", container_type) + _setter("parent_image", parent_image) + _setter("target_repository", target_repository) + _setter("version", version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dockerfile_template_data is not None: - pulumi.set(__self__, "dockerfile_template_data", dockerfile_template_data) + _setter("dockerfile_template_data", dockerfile_template_data) if dockerfile_template_uri is not None: - pulumi.set(__self__, "dockerfile_template_uri", dockerfile_template_uri) + _setter("dockerfile_template_uri", dockerfile_template_uri) if instance_configuration is not None: - pulumi.set(__self__, "instance_configuration", instance_configuration) + _setter("instance_configuration", instance_configuration) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if platform_override is not None: - pulumi.set(__self__, "platform_override", platform_override) + _setter("platform_override", platform_override) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if working_directory is not None: - pulumi.set(__self__, "working_directory", working_directory) + _setter("working_directory", working_directory) @property @pulumi.getter @@ -292,49 +357,120 @@ def __init__(__self__, *, The following attributes are optional: :param pulumi.Input[str] working_directory: The working directory to be used during build and test workflows. """ + _ContainerRecipeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + components=components, + container_type=container_type, + date_created=date_created, + description=description, + dockerfile_template_data=dockerfile_template_data, + dockerfile_template_uri=dockerfile_template_uri, + encrypted=encrypted, + instance_configuration=instance_configuration, + kms_key_id=kms_key_id, + name=name, + owner=owner, + parent_image=parent_image, + platform=platform, + platform_override=platform_override, + tags=tags, + tags_all=tags_all, + target_repository=target_repository, + version=version, + working_directory=working_directory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + components: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerRecipeComponentArgs']]]] = None, + container_type: Optional[pulumi.Input[str]] = None, + date_created: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + dockerfile_template_data: Optional[pulumi.Input[str]] = None, + dockerfile_template_uri: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + instance_configuration: Optional[pulumi.Input['ContainerRecipeInstanceConfigurationArgs']] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + parent_image: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + platform_override: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_repository: Optional[pulumi.Input['ContainerRecipeTargetRepositoryArgs']] = None, + version: Optional[pulumi.Input[str]] = None, + working_directory: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_type is None and 'containerType' in kwargs: + container_type = kwargs['containerType'] + if date_created is None and 'dateCreated' in kwargs: + date_created = kwargs['dateCreated'] + if dockerfile_template_data is None and 'dockerfileTemplateData' in kwargs: + dockerfile_template_data = kwargs['dockerfileTemplateData'] + if dockerfile_template_uri is None and 'dockerfileTemplateUri' in kwargs: + dockerfile_template_uri = kwargs['dockerfileTemplateUri'] + if instance_configuration is None and 'instanceConfiguration' in kwargs: + instance_configuration = kwargs['instanceConfiguration'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if parent_image is None and 'parentImage' in kwargs: + parent_image = kwargs['parentImage'] + if platform_override is None and 'platformOverride' in kwargs: + platform_override = kwargs['platformOverride'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_repository is None and 'targetRepository' in kwargs: + target_repository = kwargs['targetRepository'] + if working_directory is None and 'workingDirectory' in kwargs: + working_directory = kwargs['workingDirectory'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) if container_type is not None: - pulumi.set(__self__, "container_type", container_type) + _setter("container_type", container_type) if date_created is not None: - pulumi.set(__self__, "date_created", date_created) + _setter("date_created", date_created) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dockerfile_template_data is not None: - pulumi.set(__self__, "dockerfile_template_data", dockerfile_template_data) + _setter("dockerfile_template_data", dockerfile_template_data) if dockerfile_template_uri is not None: - pulumi.set(__self__, "dockerfile_template_uri", dockerfile_template_uri) + _setter("dockerfile_template_uri", dockerfile_template_uri) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if instance_configuration is not None: - pulumi.set(__self__, "instance_configuration", instance_configuration) + _setter("instance_configuration", instance_configuration) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if parent_image is not None: - pulumi.set(__self__, "parent_image", parent_image) + _setter("parent_image", parent_image) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if platform_override is not None: - pulumi.set(__self__, "platform_override", platform_override) + _setter("platform_override", platform_override) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_repository is not None: - pulumi.set(__self__, "target_repository", target_repository) + _setter("target_repository", target_repository) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if working_directory is not None: - pulumi.set(__self__, "working_directory", working_directory) + _setter("working_directory", working_directory) @property @pulumi.getter @@ -725,6 +861,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContainerRecipeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -762,6 +902,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["dockerfile_template_data"] = dockerfile_template_data __props__.__dict__["dockerfile_template_uri"] = dockerfile_template_uri + instance_configuration = _utilities.configure(instance_configuration, ContainerRecipeInstanceConfigurationArgs, True) __props__.__dict__["instance_configuration"] = instance_configuration __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["name"] = name @@ -770,6 +911,7 @@ def _internal_init(__self__, __props__.__dict__["parent_image"] = parent_image __props__.__dict__["platform_override"] = platform_override __props__.__dict__["tags"] = tags + target_repository = _utilities.configure(target_repository, ContainerRecipeTargetRepositoryArgs, True) if target_repository is None and not opts.urn: raise TypeError("Missing required property 'target_repository'") __props__.__dict__["target_repository"] = target_repository diff --git a/sdk/python/pulumi_aws/imagebuilder/distribution_configuration.py b/sdk/python/pulumi_aws/imagebuilder/distribution_configuration.py index a2383ee1280..953d4027541 100644 --- a/sdk/python/pulumi_aws/imagebuilder/distribution_configuration.py +++ b/sdk/python/pulumi_aws/imagebuilder/distribution_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the distribution configuration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the distribution configuration. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "distributions", distributions) + DistributionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + distributions=distributions, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + distributions: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionConfigurationDistributionArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if distributions is None: + raise TypeError("Missing 'distributions' argument") + + _setter("distributions", distributions) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -112,25 +131,56 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the distribution configuration. 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. """ + _DistributionConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + date_created=date_created, + date_updated=date_updated, + description=description, + distributions=distributions, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + date_created: Optional[pulumi.Input[str]] = None, + date_updated: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + distributions: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionConfigurationDistributionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_created is None and 'dateCreated' in kwargs: + date_created = kwargs['dateCreated'] + if date_updated is None and 'dateUpdated' in kwargs: + date_updated = kwargs['dateUpdated'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if date_created is not None: - pulumi.set(__self__, "date_created", date_created) + _setter("date_created", date_created) if date_updated is not None: - pulumi.set(__self__, "date_updated", date_updated) + _setter("date_updated", date_updated) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if distributions is not None: - pulumi.set(__self__, "distributions", distributions) + _setter("distributions", distributions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -337,6 +387,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DistributionConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/imagebuilder/get_component.py b/sdk/python/pulumi_aws/imagebuilder/get_component.py index e8169feb624..a54bafe317c 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_component.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_component.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/imagebuilder/get_components.py b/sdk/python/pulumi_aws/imagebuilder/get_components.py index 7ed2d8ba025..2dceccc3134 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_components.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_components.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/imagebuilder/get_container_recipe.py b/sdk/python/pulumi_aws/imagebuilder/get_container_recipe.py index 673c69637cd..7a8fde7b77e 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_container_recipe.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_container_recipe.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/imagebuilder/get_container_recipes.py b/sdk/python/pulumi_aws/imagebuilder/get_container_recipes.py index 717b1e8d44a..8f929080500 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_container_recipes.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_container_recipes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/imagebuilder/get_distribution_configuration.py b/sdk/python/pulumi_aws/imagebuilder/get_distribution_configuration.py index 2c71d717c7c..c59c1642fb1 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_distribution_configuration.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_distribution_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/imagebuilder/get_distribution_configurations.py b/sdk/python/pulumi_aws/imagebuilder/get_distribution_configurations.py index ab2048968af..09095c2ef13 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_distribution_configurations.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_distribution_configurations.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/imagebuilder/get_image.py b/sdk/python/pulumi_aws/imagebuilder/get_image.py index 3e012b6aa04..b591f86aead 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_image.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_image.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/imagebuilder/get_image_pipeline.py b/sdk/python/pulumi_aws/imagebuilder/get_image_pipeline.py index 527c4b19ef3..88ee0354f02 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_image_pipeline.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_image_pipeline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/imagebuilder/get_image_pipelines.py b/sdk/python/pulumi_aws/imagebuilder/get_image_pipelines.py index aad962f3d54..8f2539ce1ac 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_image_pipelines.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_image_pipelines.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/imagebuilder/get_image_recipe.py b/sdk/python/pulumi_aws/imagebuilder/get_image_recipe.py index b2bea088a6f..00e3456482e 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_image_recipe.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_image_recipe.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/imagebuilder/get_image_recipes.py b/sdk/python/pulumi_aws/imagebuilder/get_image_recipes.py index c577c9556ce..c763fc96503 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_image_recipes.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_image_recipes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/imagebuilder/get_infrastructure_configuration.py b/sdk/python/pulumi_aws/imagebuilder/get_infrastructure_configuration.py index 2bd0b59be8b..e6c953b89e3 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_infrastructure_configuration.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_infrastructure_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/imagebuilder/get_infrastructure_configurations.py b/sdk/python/pulumi_aws/imagebuilder/get_infrastructure_configurations.py index 661b9897101..e9531e47641 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_infrastructure_configurations.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_infrastructure_configurations.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/imagebuilder/image.py b/sdk/python/pulumi_aws/imagebuilder/image.py index e1fd36e62be..efed85f4f54 100644 --- a/sdk/python/pulumi_aws/imagebuilder/image.py +++ b/sdk/python/pulumi_aws/imagebuilder/image.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,19 +35,56 @@ def __init__(__self__, *, :param pulumi.Input['ImageImageTestsConfigurationArgs'] image_tests_configuration: Configuration block with image tests configuration. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the Image Builder Image. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "infrastructure_configuration_arn", infrastructure_configuration_arn) + ImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + infrastructure_configuration_arn=infrastructure_configuration_arn, + container_recipe_arn=container_recipe_arn, + distribution_configuration_arn=distribution_configuration_arn, + enhanced_image_metadata_enabled=enhanced_image_metadata_enabled, + image_recipe_arn=image_recipe_arn, + image_tests_configuration=image_tests_configuration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + infrastructure_configuration_arn: Optional[pulumi.Input[str]] = None, + container_recipe_arn: Optional[pulumi.Input[str]] = None, + distribution_configuration_arn: Optional[pulumi.Input[str]] = None, + enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + image_recipe_arn: Optional[pulumi.Input[str]] = None, + image_tests_configuration: Optional[pulumi.Input['ImageImageTestsConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if infrastructure_configuration_arn is None and 'infrastructureConfigurationArn' in kwargs: + infrastructure_configuration_arn = kwargs['infrastructureConfigurationArn'] + if infrastructure_configuration_arn is None: + raise TypeError("Missing 'infrastructure_configuration_arn' argument") + if container_recipe_arn is None and 'containerRecipeArn' in kwargs: + container_recipe_arn = kwargs['containerRecipeArn'] + if distribution_configuration_arn is None and 'distributionConfigurationArn' in kwargs: + distribution_configuration_arn = kwargs['distributionConfigurationArn'] + if enhanced_image_metadata_enabled is None and 'enhancedImageMetadataEnabled' in kwargs: + enhanced_image_metadata_enabled = kwargs['enhancedImageMetadataEnabled'] + if image_recipe_arn is None and 'imageRecipeArn' in kwargs: + image_recipe_arn = kwargs['imageRecipeArn'] + if image_tests_configuration is None and 'imageTestsConfiguration' in kwargs: + image_tests_configuration = kwargs['imageTestsConfiguration'] + + _setter("infrastructure_configuration_arn", infrastructure_configuration_arn) if container_recipe_arn is not None: - pulumi.set(__self__, "container_recipe_arn", container_recipe_arn) + _setter("container_recipe_arn", container_recipe_arn) if distribution_configuration_arn is not None: - pulumi.set(__self__, "distribution_configuration_arn", distribution_configuration_arn) + _setter("distribution_configuration_arn", distribution_configuration_arn) if enhanced_image_metadata_enabled is not None: - pulumi.set(__self__, "enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) + _setter("enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) if image_recipe_arn is not None: - pulumi.set(__self__, "image_recipe_arn", image_recipe_arn) + _setter("image_recipe_arn", image_recipe_arn) if image_tests_configuration is not None: - pulumi.set(__self__, "image_tests_configuration", image_tests_configuration) + _setter("image_tests_configuration", image_tests_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="infrastructureConfigurationArn") @@ -174,39 +211,98 @@ def __init__(__self__, *, :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: Version of the image. """ + _ImageState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + container_recipe_arn=container_recipe_arn, + date_created=date_created, + distribution_configuration_arn=distribution_configuration_arn, + enhanced_image_metadata_enabled=enhanced_image_metadata_enabled, + image_recipe_arn=image_recipe_arn, + image_tests_configuration=image_tests_configuration, + infrastructure_configuration_arn=infrastructure_configuration_arn, + name=name, + os_version=os_version, + output_resources=output_resources, + platform=platform, + tags=tags, + tags_all=tags_all, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + container_recipe_arn: Optional[pulumi.Input[str]] = None, + date_created: Optional[pulumi.Input[str]] = None, + distribution_configuration_arn: Optional[pulumi.Input[str]] = None, + enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + image_recipe_arn: Optional[pulumi.Input[str]] = None, + image_tests_configuration: Optional[pulumi.Input['ImageImageTestsConfigurationArgs']] = None, + infrastructure_configuration_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + os_version: Optional[pulumi.Input[str]] = None, + output_resources: Optional[pulumi.Input[Sequence[pulumi.Input['ImageOutputResourceArgs']]]] = None, + platform: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_recipe_arn is None and 'containerRecipeArn' in kwargs: + container_recipe_arn = kwargs['containerRecipeArn'] + if date_created is None and 'dateCreated' in kwargs: + date_created = kwargs['dateCreated'] + if distribution_configuration_arn is None and 'distributionConfigurationArn' in kwargs: + distribution_configuration_arn = kwargs['distributionConfigurationArn'] + if enhanced_image_metadata_enabled is None and 'enhancedImageMetadataEnabled' in kwargs: + enhanced_image_metadata_enabled = kwargs['enhancedImageMetadataEnabled'] + if image_recipe_arn is None and 'imageRecipeArn' in kwargs: + image_recipe_arn = kwargs['imageRecipeArn'] + if image_tests_configuration is None and 'imageTestsConfiguration' in kwargs: + image_tests_configuration = kwargs['imageTestsConfiguration'] + if infrastructure_configuration_arn is None and 'infrastructureConfigurationArn' in kwargs: + infrastructure_configuration_arn = kwargs['infrastructureConfigurationArn'] + if os_version is None and 'osVersion' in kwargs: + os_version = kwargs['osVersion'] + if output_resources is None and 'outputResources' in kwargs: + output_resources = kwargs['outputResources'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if container_recipe_arn is not None: - pulumi.set(__self__, "container_recipe_arn", container_recipe_arn) + _setter("container_recipe_arn", container_recipe_arn) if date_created is not None: - pulumi.set(__self__, "date_created", date_created) + _setter("date_created", date_created) if distribution_configuration_arn is not None: - pulumi.set(__self__, "distribution_configuration_arn", distribution_configuration_arn) + _setter("distribution_configuration_arn", distribution_configuration_arn) if enhanced_image_metadata_enabled is not None: - pulumi.set(__self__, "enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) + _setter("enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) if image_recipe_arn is not None: - pulumi.set(__self__, "image_recipe_arn", image_recipe_arn) + _setter("image_recipe_arn", image_recipe_arn) if image_tests_configuration is not None: - pulumi.set(__self__, "image_tests_configuration", image_tests_configuration) + _setter("image_tests_configuration", image_tests_configuration) if infrastructure_configuration_arn is not None: - pulumi.set(__self__, "infrastructure_configuration_arn", infrastructure_configuration_arn) + _setter("infrastructure_configuration_arn", infrastructure_configuration_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if os_version is not None: - pulumi.set(__self__, "os_version", os_version) + _setter("os_version", os_version) if output_resources is not None: - pulumi.set(__self__, "output_resources", output_resources) + _setter("output_resources", output_resources) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -481,6 +577,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ImageArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -506,6 +606,7 @@ def _internal_init(__self__, __props__.__dict__["distribution_configuration_arn"] = distribution_configuration_arn __props__.__dict__["enhanced_image_metadata_enabled"] = enhanced_image_metadata_enabled __props__.__dict__["image_recipe_arn"] = image_recipe_arn + image_tests_configuration = _utilities.configure(image_tests_configuration, ImageImageTestsConfigurationArgs, True) __props__.__dict__["image_tests_configuration"] = image_tests_configuration if infrastructure_configuration_arn is None and not opts.urn: raise TypeError("Missing required property 'infrastructure_configuration_arn'") diff --git a/sdk/python/pulumi_aws/imagebuilder/image_pipeline.py b/sdk/python/pulumi_aws/imagebuilder/image_pipeline.py index fc39f24886d..13382239e05 100644 --- a/sdk/python/pulumi_aws/imagebuilder/image_pipeline.py +++ b/sdk/python/pulumi_aws/imagebuilder/image_pipeline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,29 +45,78 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Status of the image pipeline. Valid values are `DISABLED` and `ENABLED`. Defaults to `ENABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the image pipeline. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "infrastructure_configuration_arn", infrastructure_configuration_arn) + ImagePipelineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + infrastructure_configuration_arn=infrastructure_configuration_arn, + container_recipe_arn=container_recipe_arn, + description=description, + distribution_configuration_arn=distribution_configuration_arn, + enhanced_image_metadata_enabled=enhanced_image_metadata_enabled, + image_recipe_arn=image_recipe_arn, + image_scanning_configuration=image_scanning_configuration, + image_tests_configuration=image_tests_configuration, + name=name, + schedule=schedule, + status=status, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + infrastructure_configuration_arn: Optional[pulumi.Input[str]] = None, + container_recipe_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + distribution_configuration_arn: Optional[pulumi.Input[str]] = None, + enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + image_recipe_arn: Optional[pulumi.Input[str]] = None, + image_scanning_configuration: Optional[pulumi.Input['ImagePipelineImageScanningConfigurationArgs']] = None, + image_tests_configuration: Optional[pulumi.Input['ImagePipelineImageTestsConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input['ImagePipelineScheduleArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if infrastructure_configuration_arn is None and 'infrastructureConfigurationArn' in kwargs: + infrastructure_configuration_arn = kwargs['infrastructureConfigurationArn'] + if infrastructure_configuration_arn is None: + raise TypeError("Missing 'infrastructure_configuration_arn' argument") + if container_recipe_arn is None and 'containerRecipeArn' in kwargs: + container_recipe_arn = kwargs['containerRecipeArn'] + if distribution_configuration_arn is None and 'distributionConfigurationArn' in kwargs: + distribution_configuration_arn = kwargs['distributionConfigurationArn'] + if enhanced_image_metadata_enabled is None and 'enhancedImageMetadataEnabled' in kwargs: + enhanced_image_metadata_enabled = kwargs['enhancedImageMetadataEnabled'] + if image_recipe_arn is None and 'imageRecipeArn' in kwargs: + image_recipe_arn = kwargs['imageRecipeArn'] + if image_scanning_configuration is None and 'imageScanningConfiguration' in kwargs: + image_scanning_configuration = kwargs['imageScanningConfiguration'] + if image_tests_configuration is None and 'imageTestsConfiguration' in kwargs: + image_tests_configuration = kwargs['imageTestsConfiguration'] + + _setter("infrastructure_configuration_arn", infrastructure_configuration_arn) if container_recipe_arn is not None: - pulumi.set(__self__, "container_recipe_arn", container_recipe_arn) + _setter("container_recipe_arn", container_recipe_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if distribution_configuration_arn is not None: - pulumi.set(__self__, "distribution_configuration_arn", distribution_configuration_arn) + _setter("distribution_configuration_arn", distribution_configuration_arn) if enhanced_image_metadata_enabled is not None: - pulumi.set(__self__, "enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) + _setter("enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) if image_recipe_arn is not None: - pulumi.set(__self__, "image_recipe_arn", image_recipe_arn) + _setter("image_recipe_arn", image_recipe_arn) if image_scanning_configuration is not None: - pulumi.set(__self__, "image_scanning_configuration", image_scanning_configuration) + _setter("image_scanning_configuration", image_scanning_configuration) if image_tests_configuration is not None: - pulumi.set(__self__, "image_tests_configuration", image_tests_configuration) + _setter("image_tests_configuration", image_tests_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="infrastructureConfigurationArn") @@ -262,47 +311,118 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the image pipeline. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ImagePipelineState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + container_recipe_arn=container_recipe_arn, + date_created=date_created, + date_last_run=date_last_run, + date_next_run=date_next_run, + date_updated=date_updated, + description=description, + distribution_configuration_arn=distribution_configuration_arn, + enhanced_image_metadata_enabled=enhanced_image_metadata_enabled, + image_recipe_arn=image_recipe_arn, + image_scanning_configuration=image_scanning_configuration, + image_tests_configuration=image_tests_configuration, + infrastructure_configuration_arn=infrastructure_configuration_arn, + name=name, + platform=platform, + schedule=schedule, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + container_recipe_arn: Optional[pulumi.Input[str]] = None, + date_created: Optional[pulumi.Input[str]] = None, + date_last_run: Optional[pulumi.Input[str]] = None, + date_next_run: Optional[pulumi.Input[str]] = None, + date_updated: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + distribution_configuration_arn: Optional[pulumi.Input[str]] = None, + enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + image_recipe_arn: Optional[pulumi.Input[str]] = None, + image_scanning_configuration: Optional[pulumi.Input['ImagePipelineImageScanningConfigurationArgs']] = None, + image_tests_configuration: Optional[pulumi.Input['ImagePipelineImageTestsConfigurationArgs']] = None, + infrastructure_configuration_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input['ImagePipelineScheduleArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_recipe_arn is None and 'containerRecipeArn' in kwargs: + container_recipe_arn = kwargs['containerRecipeArn'] + if date_created is None and 'dateCreated' in kwargs: + date_created = kwargs['dateCreated'] + if date_last_run is None and 'dateLastRun' in kwargs: + date_last_run = kwargs['dateLastRun'] + if date_next_run is None and 'dateNextRun' in kwargs: + date_next_run = kwargs['dateNextRun'] + if date_updated is None and 'dateUpdated' in kwargs: + date_updated = kwargs['dateUpdated'] + if distribution_configuration_arn is None and 'distributionConfigurationArn' in kwargs: + distribution_configuration_arn = kwargs['distributionConfigurationArn'] + if enhanced_image_metadata_enabled is None and 'enhancedImageMetadataEnabled' in kwargs: + enhanced_image_metadata_enabled = kwargs['enhancedImageMetadataEnabled'] + if image_recipe_arn is None and 'imageRecipeArn' in kwargs: + image_recipe_arn = kwargs['imageRecipeArn'] + if image_scanning_configuration is None and 'imageScanningConfiguration' in kwargs: + image_scanning_configuration = kwargs['imageScanningConfiguration'] + if image_tests_configuration is None and 'imageTestsConfiguration' in kwargs: + image_tests_configuration = kwargs['imageTestsConfiguration'] + if infrastructure_configuration_arn is None and 'infrastructureConfigurationArn' in kwargs: + infrastructure_configuration_arn = kwargs['infrastructureConfigurationArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if container_recipe_arn is not None: - pulumi.set(__self__, "container_recipe_arn", container_recipe_arn) + _setter("container_recipe_arn", container_recipe_arn) if date_created is not None: - pulumi.set(__self__, "date_created", date_created) + _setter("date_created", date_created) if date_last_run is not None: - pulumi.set(__self__, "date_last_run", date_last_run) + _setter("date_last_run", date_last_run) if date_next_run is not None: - pulumi.set(__self__, "date_next_run", date_next_run) + _setter("date_next_run", date_next_run) if date_updated is not None: - pulumi.set(__self__, "date_updated", date_updated) + _setter("date_updated", date_updated) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if distribution_configuration_arn is not None: - pulumi.set(__self__, "distribution_configuration_arn", distribution_configuration_arn) + _setter("distribution_configuration_arn", distribution_configuration_arn) if enhanced_image_metadata_enabled is not None: - pulumi.set(__self__, "enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) + _setter("enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) if image_recipe_arn is not None: - pulumi.set(__self__, "image_recipe_arn", image_recipe_arn) + _setter("image_recipe_arn", image_recipe_arn) if image_scanning_configuration is not None: - pulumi.set(__self__, "image_scanning_configuration", image_scanning_configuration) + _setter("image_scanning_configuration", image_scanning_configuration) if image_tests_configuration is not None: - pulumi.set(__self__, "image_tests_configuration", image_tests_configuration) + _setter("image_tests_configuration", image_tests_configuration) if infrastructure_configuration_arn is not None: - pulumi.set(__self__, "infrastructure_configuration_arn", infrastructure_configuration_arn) + _setter("infrastructure_configuration_arn", infrastructure_configuration_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -639,6 +759,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ImagePipelineArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -670,12 +794,15 @@ def _internal_init(__self__, __props__.__dict__["distribution_configuration_arn"] = distribution_configuration_arn __props__.__dict__["enhanced_image_metadata_enabled"] = enhanced_image_metadata_enabled __props__.__dict__["image_recipe_arn"] = image_recipe_arn + image_scanning_configuration = _utilities.configure(image_scanning_configuration, ImagePipelineImageScanningConfigurationArgs, True) __props__.__dict__["image_scanning_configuration"] = image_scanning_configuration + image_tests_configuration = _utilities.configure(image_tests_configuration, ImagePipelineImageTestsConfigurationArgs, True) __props__.__dict__["image_tests_configuration"] = image_tests_configuration if infrastructure_configuration_arn is None and not opts.urn: raise TypeError("Missing required property 'infrastructure_configuration_arn'") __props__.__dict__["infrastructure_configuration_arn"] = infrastructure_configuration_arn __props__.__dict__["name"] = name + schedule = _utilities.configure(schedule, ImagePipelineScheduleArgs, True) __props__.__dict__["schedule"] = schedule __props__.__dict__["status"] = status __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/imagebuilder/image_recipe.py b/sdk/python/pulumi_aws/imagebuilder/image_recipe.py index 3fc2698f19c..630220a69ed 100644 --- a/sdk/python/pulumi_aws/imagebuilder/image_recipe.py +++ b/sdk/python/pulumi_aws/imagebuilder/image_recipe.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,23 +41,68 @@ def __init__(__self__, *, :param pulumi.Input[str] user_data_base64: Base64 encoded user data. Use this to provide commands or a command script to run when you launch your build instance. :param pulumi.Input[str] working_directory: The working directory to be used during build and test workflows. """ - pulumi.set(__self__, "components", components) - pulumi.set(__self__, "parent_image", parent_image) - pulumi.set(__self__, "version", version) + ImageRecipeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + components=components, + parent_image=parent_image, + version=version, + block_device_mappings=block_device_mappings, + description=description, + name=name, + systems_manager_agent=systems_manager_agent, + tags=tags, + user_data_base64=user_data_base64, + working_directory=working_directory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + components: Optional[pulumi.Input[Sequence[pulumi.Input['ImageRecipeComponentArgs']]]] = None, + parent_image: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['ImageRecipeBlockDeviceMappingArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + systems_manager_agent: Optional[pulumi.Input['ImageRecipeSystemsManagerAgentArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_data_base64: Optional[pulumi.Input[str]] = None, + working_directory: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if components is None: + raise TypeError("Missing 'components' argument") + if parent_image is None and 'parentImage' in kwargs: + parent_image = kwargs['parentImage'] + if parent_image is None: + raise TypeError("Missing 'parent_image' argument") + if version is None: + raise TypeError("Missing 'version' argument") + if block_device_mappings is None and 'blockDeviceMappings' in kwargs: + block_device_mappings = kwargs['blockDeviceMappings'] + if systems_manager_agent is None and 'systemsManagerAgent' in kwargs: + systems_manager_agent = kwargs['systemsManagerAgent'] + if user_data_base64 is None and 'userDataBase64' in kwargs: + user_data_base64 = kwargs['userDataBase64'] + if working_directory is None and 'workingDirectory' in kwargs: + working_directory = kwargs['workingDirectory'] + + _setter("components", components) + _setter("parent_image", parent_image) + _setter("version", version) if block_device_mappings is not None: - pulumi.set(__self__, "block_device_mappings", block_device_mappings) + _setter("block_device_mappings", block_device_mappings) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if systems_manager_agent is not None: - pulumi.set(__self__, "systems_manager_agent", systems_manager_agent) + _setter("systems_manager_agent", systems_manager_agent) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_data_base64 is not None: - pulumi.set(__self__, "user_data_base64", user_data_base64) + _setter("user_data_base64", user_data_base64) if working_directory is not None: - pulumi.set(__self__, "working_directory", working_directory) + _setter("working_directory", working_directory) @property @pulumi.getter @@ -220,39 +265,92 @@ def __init__(__self__, *, The following attributes are optional: :param pulumi.Input[str] working_directory: The working directory to be used during build and test workflows. """ + _ImageRecipeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + block_device_mappings=block_device_mappings, + components=components, + date_created=date_created, + description=description, + name=name, + owner=owner, + parent_image=parent_image, + platform=platform, + systems_manager_agent=systems_manager_agent, + tags=tags, + tags_all=tags_all, + user_data_base64=user_data_base64, + version=version, + working_directory=working_directory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['ImageRecipeBlockDeviceMappingArgs']]]] = None, + components: Optional[pulumi.Input[Sequence[pulumi.Input['ImageRecipeComponentArgs']]]] = None, + date_created: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + parent_image: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + systems_manager_agent: Optional[pulumi.Input['ImageRecipeSystemsManagerAgentArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_data_base64: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + working_directory: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_device_mappings is None and 'blockDeviceMappings' in kwargs: + block_device_mappings = kwargs['blockDeviceMappings'] + if date_created is None and 'dateCreated' in kwargs: + date_created = kwargs['dateCreated'] + if parent_image is None and 'parentImage' in kwargs: + parent_image = kwargs['parentImage'] + if systems_manager_agent is None and 'systemsManagerAgent' in kwargs: + systems_manager_agent = kwargs['systemsManagerAgent'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_data_base64 is None and 'userDataBase64' in kwargs: + user_data_base64 = kwargs['userDataBase64'] + if working_directory is None and 'workingDirectory' in kwargs: + working_directory = kwargs['workingDirectory'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if block_device_mappings is not None: - pulumi.set(__self__, "block_device_mappings", block_device_mappings) + _setter("block_device_mappings", block_device_mappings) if components is not None: - pulumi.set(__self__, "components", components) + _setter("components", components) if date_created is not None: - pulumi.set(__self__, "date_created", date_created) + _setter("date_created", date_created) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if parent_image is not None: - pulumi.set(__self__, "parent_image", parent_image) + _setter("parent_image", parent_image) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if systems_manager_agent is not None: - pulumi.set(__self__, "systems_manager_agent", systems_manager_agent) + _setter("systems_manager_agent", systems_manager_agent) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_data_base64 is not None: - pulumi.set(__self__, "user_data_base64", user_data_base64) + _setter("user_data_base64", user_data_base64) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if working_directory is not None: - pulumi.set(__self__, "working_directory", working_directory) + _setter("working_directory", working_directory) @property @pulumi.getter @@ -573,6 +671,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ImageRecipeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -606,6 +708,7 @@ def _internal_init(__self__, if parent_image is None and not opts.urn: raise TypeError("Missing required property 'parent_image'") __props__.__dict__["parent_image"] = parent_image + systems_manager_agent = _utilities.configure(systems_manager_agent, ImageRecipeSystemsManagerAgentArgs, True) __props__.__dict__["systems_manager_agent"] = systems_manager_agent __props__.__dict__["tags"] = tags __props__.__dict__["user_data_base64"] = user_data_base64 diff --git a/sdk/python/pulumi_aws/imagebuilder/infrastructure_configuration.py b/sdk/python/pulumi_aws/imagebuilder/infrastructure_configuration.py index 7e42b83e0f6..222e38b1ab1 100644 --- a/sdk/python/pulumi_aws/imagebuilder/infrastructure_configuration.py +++ b/sdk/python/pulumi_aws/imagebuilder/infrastructure_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,31 +47,86 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags to assign to the configuration. .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[bool] terminate_instance_on_failure: Enable if the instance should be terminated when the pipeline fails. Defaults to `false`. """ - pulumi.set(__self__, "instance_profile_name", instance_profile_name) + InfrastructureConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_profile_name=instance_profile_name, + description=description, + instance_metadata_options=instance_metadata_options, + instance_types=instance_types, + key_pair=key_pair, + logging=logging, + name=name, + resource_tags=resource_tags, + security_group_ids=security_group_ids, + sns_topic_arn=sns_topic_arn, + subnet_id=subnet_id, + tags=tags, + terminate_instance_on_failure=terminate_instance_on_failure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_profile_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_metadata_options: Optional[pulumi.Input['InfrastructureConfigurationInstanceMetadataOptionsArgs']] = None, + instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + key_pair: Optional[pulumi.Input[str]] = None, + logging: Optional[pulumi.Input['InfrastructureConfigurationLoggingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + terminate_instance_on_failure: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_profile_name is None and 'instanceProfileName' in kwargs: + instance_profile_name = kwargs['instanceProfileName'] + if instance_profile_name is None: + raise TypeError("Missing 'instance_profile_name' argument") + if instance_metadata_options is None and 'instanceMetadataOptions' in kwargs: + instance_metadata_options = kwargs['instanceMetadataOptions'] + if instance_types is None and 'instanceTypes' in kwargs: + instance_types = kwargs['instanceTypes'] + if key_pair is None and 'keyPair' in kwargs: + key_pair = kwargs['keyPair'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if terminate_instance_on_failure is None and 'terminateInstanceOnFailure' in kwargs: + terminate_instance_on_failure = kwargs['terminateInstanceOnFailure'] + + _setter("instance_profile_name", instance_profile_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if instance_metadata_options is not None: - pulumi.set(__self__, "instance_metadata_options", instance_metadata_options) + _setter("instance_metadata_options", instance_metadata_options) if instance_types is not None: - pulumi.set(__self__, "instance_types", instance_types) + _setter("instance_types", instance_types) if key_pair is not None: - pulumi.set(__self__, "key_pair", key_pair) + _setter("key_pair", key_pair) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if terminate_instance_on_failure is not None: - pulumi.set(__self__, "terminate_instance_on_failure", terminate_instance_on_failure) + _setter("terminate_instance_on_failure", terminate_instance_on_failure) @property @pulumi.getter(name="instanceProfileName") @@ -274,43 +329,110 @@ def __init__(__self__, *, :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[bool] terminate_instance_on_failure: Enable if the instance should be terminated when the pipeline fails. Defaults to `false`. """ + _InfrastructureConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + date_created=date_created, + date_updated=date_updated, + description=description, + instance_metadata_options=instance_metadata_options, + instance_profile_name=instance_profile_name, + instance_types=instance_types, + key_pair=key_pair, + logging=logging, + name=name, + resource_tags=resource_tags, + security_group_ids=security_group_ids, + sns_topic_arn=sns_topic_arn, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + terminate_instance_on_failure=terminate_instance_on_failure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + date_created: Optional[pulumi.Input[str]] = None, + date_updated: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_metadata_options: Optional[pulumi.Input['InfrastructureConfigurationInstanceMetadataOptionsArgs']] = None, + instance_profile_name: Optional[pulumi.Input[str]] = None, + instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + key_pair: Optional[pulumi.Input[str]] = None, + logging: Optional[pulumi.Input['InfrastructureConfigurationLoggingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + terminate_instance_on_failure: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_created is None and 'dateCreated' in kwargs: + date_created = kwargs['dateCreated'] + if date_updated is None and 'dateUpdated' in kwargs: + date_updated = kwargs['dateUpdated'] + if instance_metadata_options is None and 'instanceMetadataOptions' in kwargs: + instance_metadata_options = kwargs['instanceMetadataOptions'] + if instance_profile_name is None and 'instanceProfileName' in kwargs: + instance_profile_name = kwargs['instanceProfileName'] + if instance_types is None and 'instanceTypes' in kwargs: + instance_types = kwargs['instanceTypes'] + if key_pair is None and 'keyPair' in kwargs: + key_pair = kwargs['keyPair'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if terminate_instance_on_failure is None and 'terminateInstanceOnFailure' in kwargs: + terminate_instance_on_failure = kwargs['terminateInstanceOnFailure'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if date_created is not None: - pulumi.set(__self__, "date_created", date_created) + _setter("date_created", date_created) if date_updated is not None: - pulumi.set(__self__, "date_updated", date_updated) + _setter("date_updated", date_updated) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if instance_metadata_options is not None: - pulumi.set(__self__, "instance_metadata_options", instance_metadata_options) + _setter("instance_metadata_options", instance_metadata_options) if instance_profile_name is not None: - pulumi.set(__self__, "instance_profile_name", instance_profile_name) + _setter("instance_profile_name", instance_profile_name) if instance_types is not None: - pulumi.set(__self__, "instance_types", instance_types) + _setter("instance_types", instance_types) if key_pair is not None: - pulumi.set(__self__, "key_pair", key_pair) + _setter("key_pair", key_pair) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if terminate_instance_on_failure is not None: - pulumi.set(__self__, "terminate_instance_on_failure", terminate_instance_on_failure) + _setter("terminate_instance_on_failure", terminate_instance_on_failure) @property @pulumi.getter @@ -655,6 +777,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InfrastructureConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -683,12 +809,14 @@ def _internal_init(__self__, __props__ = InfrastructureConfigurationArgs.__new__(InfrastructureConfigurationArgs) __props__.__dict__["description"] = description + instance_metadata_options = _utilities.configure(instance_metadata_options, InfrastructureConfigurationInstanceMetadataOptionsArgs, True) __props__.__dict__["instance_metadata_options"] = instance_metadata_options if instance_profile_name is None and not opts.urn: raise TypeError("Missing required property 'instance_profile_name'") __props__.__dict__["instance_profile_name"] = instance_profile_name __props__.__dict__["instance_types"] = instance_types __props__.__dict__["key_pair"] = key_pair + logging = _utilities.configure(logging, InfrastructureConfigurationLoggingArgs, True) __props__.__dict__["logging"] = logging __props__.__dict__["name"] = name __props__.__dict__["resource_tags"] = resource_tags diff --git a/sdk/python/pulumi_aws/imagebuilder/outputs.py b/sdk/python/pulumi_aws/imagebuilder/outputs.py index 8879117d9d2..be103aeed49 100644 --- a/sdk/python/pulumi_aws/imagebuilder/outputs.py +++ b/sdk/python/pulumi_aws/imagebuilder/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -106,9 +106,26 @@ def __init__(__self__, *, :param str component_arn: Amazon Resource Name (ARN) of the Image Builder Component to associate. :param Sequence['ContainerRecipeComponentParameterArgs'] parameters: Configuration block(s) for parameters to configure the component. Detailed below. """ - pulumi.set(__self__, "component_arn", component_arn) + ContainerRecipeComponent._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_arn=component_arn, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_arn: Optional[str] = None, + parameters: Optional[Sequence['outputs.ContainerRecipeComponentParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_arn is None and 'componentArn' in kwargs: + component_arn = kwargs['componentArn'] + if component_arn is None: + raise TypeError("Missing 'component_arn' argument") + + _setter("component_arn", component_arn) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter(name="componentArn") @@ -136,8 +153,25 @@ def __init__(__self__, *, :param str name: The name of the component parameter. :param str value: The value for the named component parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ContainerRecipeComponentParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -182,10 +216,25 @@ def __init__(__self__, *, :param Sequence['ContainerRecipeInstanceConfigurationBlockDeviceMappingArgs'] block_device_mappings: Configuration block(s) with block device mappings for the container recipe. Detailed below. :param str image: The AMI ID to use as the base image for a container build and test instance. If not specified, Image Builder will use the appropriate ECS-optimized AMI as a base image. """ + ContainerRecipeInstanceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_device_mappings=block_device_mappings, + image=image, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_device_mappings: Optional[Sequence['outputs.ContainerRecipeInstanceConfigurationBlockDeviceMapping']] = None, + image: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_device_mappings is None and 'blockDeviceMappings' in kwargs: + block_device_mappings = kwargs['blockDeviceMappings'] + if block_device_mappings is not None: - pulumi.set(__self__, "block_device_mappings", block_device_mappings) + _setter("block_device_mappings", block_device_mappings) if image is not None: - pulumi.set(__self__, "image", image) + _setter("image", image) @property @pulumi.getter(name="blockDeviceMappings") @@ -238,14 +287,37 @@ def __init__(__self__, *, :param bool no_device: Set to `true` to remove a mapping from the parent image. :param str virtual_name: Virtual device name. For example, `ephemeral0`. Instance store volumes are numbered starting from 0. """ + ContainerRecipeInstanceConfigurationBlockDeviceMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + ebs: Optional['outputs.ContainerRecipeInstanceConfigurationBlockDeviceMappingEbs'] = None, + no_device: Optional[bool] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if ebs is not None: - pulumi.set(__self__, "ebs", ebs) + _setter("ebs", ebs) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -326,22 +398,57 @@ def __init__(__self__, *, :param int volume_size: Size of the volume, in GiB. :param str volume_type: Type of the volume. For example, `gp2` or `io2`. """ + ContainerRecipeInstanceConfigurationBlockDeviceMappingEbs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[str] = None, + encrypted: Optional[str] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -434,8 +541,27 @@ def __init__(__self__, *, :param str repository_name: The name of the container repository where the output container image is stored. This name is prefixed by the repository location. :param str service: The service in which this image is registered. Valid values: `ECR`. """ - pulumi.set(__self__, "repository_name", repository_name) - pulumi.set(__self__, "service", service) + ContainerRecipeTargetRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + service=service, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[str] = None, + service: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if service is None: + raise TypeError("Missing 'service' argument") + + _setter("repository_name", repository_name) + _setter("service", service) @property @pulumi.getter(name="repositoryName") @@ -498,17 +624,50 @@ def __init__(__self__, *, :param Sequence['DistributionConfigurationDistributionLaunchTemplateConfigurationArgs'] launch_template_configurations: Set of launch template configuration settings that apply to image distribution. Detailed below. :param Sequence[str] license_configuration_arns: Set of Amazon Resource Names (ARNs) of License Manager License Configurations. """ - pulumi.set(__self__, "region", region) + DistributionConfigurationDistribution._configure( + lambda key, value: pulumi.set(__self__, key, value), + region=region, + ami_distribution_configuration=ami_distribution_configuration, + container_distribution_configuration=container_distribution_configuration, + fast_launch_configurations=fast_launch_configurations, + launch_template_configurations=launch_template_configurations, + license_configuration_arns=license_configuration_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region: Optional[str] = None, + ami_distribution_configuration: Optional['outputs.DistributionConfigurationDistributionAmiDistributionConfiguration'] = None, + container_distribution_configuration: Optional['outputs.DistributionConfigurationDistributionContainerDistributionConfiguration'] = None, + fast_launch_configurations: Optional[Sequence['outputs.DistributionConfigurationDistributionFastLaunchConfiguration']] = None, + launch_template_configurations: Optional[Sequence['outputs.DistributionConfigurationDistributionLaunchTemplateConfiguration']] = None, + license_configuration_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region is None: + raise TypeError("Missing 'region' argument") + if ami_distribution_configuration is None and 'amiDistributionConfiguration' in kwargs: + ami_distribution_configuration = kwargs['amiDistributionConfiguration'] + if container_distribution_configuration is None and 'containerDistributionConfiguration' in kwargs: + container_distribution_configuration = kwargs['containerDistributionConfiguration'] + if fast_launch_configurations is None and 'fastLaunchConfigurations' in kwargs: + fast_launch_configurations = kwargs['fastLaunchConfigurations'] + if launch_template_configurations is None and 'launchTemplateConfigurations' in kwargs: + launch_template_configurations = kwargs['launchTemplateConfigurations'] + if license_configuration_arns is None and 'licenseConfigurationArns' in kwargs: + license_configuration_arns = kwargs['licenseConfigurationArns'] + + _setter("region", region) if ami_distribution_configuration is not None: - pulumi.set(__self__, "ami_distribution_configuration", ami_distribution_configuration) + _setter("ami_distribution_configuration", ami_distribution_configuration) if container_distribution_configuration is not None: - pulumi.set(__self__, "container_distribution_configuration", container_distribution_configuration) + _setter("container_distribution_configuration", container_distribution_configuration) if fast_launch_configurations is not None: - pulumi.set(__self__, "fast_launch_configurations", fast_launch_configurations) + _setter("fast_launch_configurations", fast_launch_configurations) if launch_template_configurations is not None: - pulumi.set(__self__, "launch_template_configurations", launch_template_configurations) + _setter("launch_template_configurations", launch_template_configurations) if license_configuration_arns is not None: - pulumi.set(__self__, "license_configuration_arns", license_configuration_arns) + _setter("license_configuration_arns", license_configuration_arns) @property @pulumi.getter @@ -601,18 +760,47 @@ def __init__(__self__, *, :param str name: Name to apply to the distributed AMI. :param Sequence[str] target_account_ids: Set of AWS Account identifiers to distribute the AMI. """ + DistributionConfigurationDistributionAmiDistributionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami_tags=ami_tags, + description=description, + kms_key_id=kms_key_id, + launch_permission=launch_permission, + name=name, + target_account_ids=target_account_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami_tags: Optional[Mapping[str, str]] = None, + description: Optional[str] = None, + kms_key_id: Optional[str] = None, + launch_permission: Optional['outputs.DistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermission'] = None, + name: Optional[str] = None, + target_account_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ami_tags is None and 'amiTags' in kwargs: + ami_tags = kwargs['amiTags'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if launch_permission is None and 'launchPermission' in kwargs: + launch_permission = kwargs['launchPermission'] + if target_account_ids is None and 'targetAccountIds' in kwargs: + target_account_ids = kwargs['targetAccountIds'] + if ami_tags is not None: - pulumi.set(__self__, "ami_tags", ami_tags) + _setter("ami_tags", ami_tags) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if launch_permission is not None: - pulumi.set(__self__, "launch_permission", launch_permission) + _setter("launch_permission", launch_permission) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if target_account_ids is not None: - pulumi.set(__self__, "target_account_ids", target_account_ids) + _setter("target_account_ids", target_account_ids) @property @pulumi.getter(name="amiTags") @@ -699,14 +887,39 @@ def __init__(__self__, *, :param Sequence[str] user_groups: Set of EC2 launch permission user groups to assign. Use `all` to distribute a public AMI. :param Sequence[str] user_ids: Set of AWS Account identifiers to assign. """ + DistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + organization_arns=organization_arns, + organizational_unit_arns=organizational_unit_arns, + user_groups=user_groups, + user_ids=user_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + organization_arns: Optional[Sequence[str]] = None, + organizational_unit_arns: Optional[Sequence[str]] = None, + user_groups: Optional[Sequence[str]] = None, + user_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if organization_arns is None and 'organizationArns' in kwargs: + organization_arns = kwargs['organizationArns'] + if organizational_unit_arns is None and 'organizationalUnitArns' in kwargs: + organizational_unit_arns = kwargs['organizationalUnitArns'] + if user_groups is None and 'userGroups' in kwargs: + user_groups = kwargs['userGroups'] + if user_ids is None and 'userIds' in kwargs: + user_ids = kwargs['userIds'] + if organization_arns is not None: - pulumi.set(__self__, "organization_arns", organization_arns) + _setter("organization_arns", organization_arns) if organizational_unit_arns is not None: - pulumi.set(__self__, "organizational_unit_arns", organizational_unit_arns) + _setter("organizational_unit_arns", organizational_unit_arns) if user_groups is not None: - pulumi.set(__self__, "user_groups", user_groups) + _setter("user_groups", user_groups) if user_ids is not None: - pulumi.set(__self__, "user_ids", user_ids) + _setter("user_ids", user_ids) @property @pulumi.getter(name="organizationArns") @@ -771,11 +984,32 @@ def __init__(__self__, *, :param Sequence[str] container_tags: Set of tags that are attached to the container distribution configuration. :param str description: Description of the container distribution configuration. """ - pulumi.set(__self__, "target_repository", target_repository) + DistributionConfigurationDistributionContainerDistributionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_repository=target_repository, + container_tags=container_tags, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_repository: Optional['outputs.DistributionConfigurationDistributionContainerDistributionConfigurationTargetRepository'] = None, + container_tags: Optional[Sequence[str]] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_repository is None and 'targetRepository' in kwargs: + target_repository = kwargs['targetRepository'] + if target_repository is None: + raise TypeError("Missing 'target_repository' argument") + if container_tags is None and 'containerTags' in kwargs: + container_tags = kwargs['containerTags'] + + _setter("target_repository", target_repository) if container_tags is not None: - pulumi.set(__self__, "container_tags", container_tags) + _setter("container_tags", container_tags) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="targetRepository") @@ -828,8 +1062,27 @@ def __init__(__self__, *, :param str repository_name: The name of the container repository where the output container image is stored. This name is prefixed by the repository location. :param str service: The service in which this image is registered. Valid values: `ECR`. """ - pulumi.set(__self__, "repository_name", repository_name) - pulumi.set(__self__, "service", service) + DistributionConfigurationDistributionContainerDistributionConfigurationTargetRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + service=service, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[str] = None, + service: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if service is None: + raise TypeError("Missing 'service' argument") + + _setter("repository_name", repository_name) + _setter("service", service) @property @pulumi.getter(name="repositoryName") @@ -886,14 +1139,45 @@ def __init__(__self__, *, :param int max_parallel_launches: The maximum number of parallel instances that are launched for creating resources. :param 'DistributionConfigurationDistributionFastLaunchConfigurationSnapshotConfigurationArgs' snapshot_configuration: Configuration block for managing the number of snapshots that are created from pre-provisioned instances for the Windows AMI when faster launching is enabled. Detailed below. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "enabled", enabled) + DistributionConfigurationDistributionFastLaunchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + enabled=enabled, + launch_template=launch_template, + max_parallel_launches=max_parallel_launches, + snapshot_configuration=snapshot_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + enabled: Optional[bool] = None, + launch_template: Optional['outputs.DistributionConfigurationDistributionFastLaunchConfigurationLaunchTemplate'] = None, + max_parallel_launches: Optional[int] = None, + snapshot_configuration: Optional['outputs.DistributionConfigurationDistributionFastLaunchConfigurationSnapshotConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if launch_template is None and 'launchTemplate' in kwargs: + launch_template = kwargs['launchTemplate'] + if max_parallel_launches is None and 'maxParallelLaunches' in kwargs: + max_parallel_launches = kwargs['maxParallelLaunches'] + if snapshot_configuration is None and 'snapshotConfiguration' in kwargs: + snapshot_configuration = kwargs['snapshotConfiguration'] + + _setter("account_id", account_id) + _setter("enabled", enabled) if launch_template is not None: - pulumi.set(__self__, "launch_template", launch_template) + _setter("launch_template", launch_template) if max_parallel_launches is not None: - pulumi.set(__self__, "max_parallel_launches", max_parallel_launches) + _setter("max_parallel_launches", max_parallel_launches) if snapshot_configuration is not None: - pulumi.set(__self__, "snapshot_configuration", snapshot_configuration) + _setter("snapshot_configuration", snapshot_configuration) @property @pulumi.getter(name="accountId") @@ -968,12 +1252,33 @@ def __init__(__self__, *, :param str launch_template_name: The name of the launch template to use for faster launching for a Windows AMI. :param str launch_template_version: The version of the launch template to use for faster launching for a Windows AMI. """ + DistributionConfigurationDistributionFastLaunchConfigurationLaunchTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + launch_template_version=launch_template_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[str] = None, + launch_template_name: Optional[str] = None, + launch_template_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_version is None and 'launchTemplateVersion' in kwargs: + launch_template_version = kwargs['launchTemplateVersion'] + if launch_template_id is not None: - pulumi.set(__self__, "launch_template_id", launch_template_id) + _setter("launch_template_id", launch_template_id) if launch_template_name is not None: - pulumi.set(__self__, "launch_template_name", launch_template_name) + _setter("launch_template_name", launch_template_name) if launch_template_version is not None: - pulumi.set(__self__, "launch_template_version", launch_template_version) + _setter("launch_template_version", launch_template_version) @property @pulumi.getter(name="launchTemplateId") @@ -1024,8 +1329,21 @@ def __init__(__self__, *, """ :param int target_resource_count: The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI. """ + DistributionConfigurationDistributionFastLaunchConfigurationSnapshotConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_resource_count=target_resource_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_resource_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_resource_count is None and 'targetResourceCount' in kwargs: + target_resource_count = kwargs['targetResourceCount'] + if target_resource_count is not None: - pulumi.set(__self__, "target_resource_count", target_resource_count) + _setter("target_resource_count", target_resource_count) @property @pulumi.getter(name="targetResourceCount") @@ -1066,11 +1384,32 @@ def __init__(__self__, *, :param str account_id: The account ID that this configuration applies to. :param bool default: Indicates whether to set the specified Amazon EC2 launch template as the default launch template. Defaults to `true`. """ - pulumi.set(__self__, "launch_template_id", launch_template_id) + DistributionConfigurationDistributionLaunchTemplateConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + account_id=account_id, + default=default, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[str] = None, + account_id: Optional[str] = None, + default: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_id is None: + raise TypeError("Missing 'launch_template_id' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("launch_template_id", launch_template_id) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if default is not None: - pulumi.set(__self__, "default", default) + _setter("default", default) @property @pulumi.getter(name="launchTemplateId") @@ -1125,10 +1464,27 @@ def __init__(__self__, *, :param bool image_tests_enabled: Whether image tests are enabled. Defaults to `true`. :param int timeout_minutes: Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. """ + ImageImageTestsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_tests_enabled=image_tests_enabled, + timeout_minutes=timeout_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_tests_enabled: Optional[bool] = None, + timeout_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_tests_enabled is None and 'imageTestsEnabled' in kwargs: + image_tests_enabled = kwargs['imageTestsEnabled'] + if timeout_minutes is None and 'timeoutMinutes' in kwargs: + timeout_minutes = kwargs['timeoutMinutes'] + if image_tests_enabled is not None: - pulumi.set(__self__, "image_tests_enabled", image_tests_enabled) + _setter("image_tests_enabled", image_tests_enabled) if timeout_minutes is not None: - pulumi.set(__self__, "timeout_minutes", timeout_minutes) + _setter("timeout_minutes", timeout_minutes) @property @pulumi.getter(name="imageTestsEnabled") @@ -1156,10 +1512,23 @@ def __init__(__self__, *, :param Sequence['ImageOutputResourceAmiArgs'] amis: Set of objects with each Amazon Machine Image (AMI) created. :param Sequence['ImageOutputResourceContainerArgs'] containers: Set of objects with each container image created and stored in the output repository. """ + ImageOutputResource._configure( + lambda key, value: pulumi.set(__self__, key, value), + amis=amis, + containers=containers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amis: Optional[Sequence['outputs.ImageOutputResourceAmi']] = None, + containers: Optional[Sequence['outputs.ImageOutputResourceContainer']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amis is not None: - pulumi.set(__self__, "amis", amis) + _setter("amis", amis) if containers is not None: - pulumi.set(__self__, "containers", containers) + _setter("containers", containers) @property @pulumi.getter @@ -1210,16 +1579,37 @@ def __init__(__self__, *, :param str name: Name of the AMI. :param str region: Region of the container image. """ + ImageOutputResourceAmi._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + description=description, + image=image, + name=name, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + description: Optional[str] = None, + image: Optional[str] = None, + name: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if image is not None: - pulumi.set(__self__, "image", image) + _setter("image", image) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter(name="accountId") @@ -1288,10 +1678,25 @@ def __init__(__self__, *, :param Sequence[str] image_uris: Set of URIs for created containers. :param str region: Region of the container image. """ + ImageOutputResourceContainer._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_uris=image_uris, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_uris: Optional[Sequence[str]] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_uris is None and 'imageUris' in kwargs: + image_uris = kwargs['imageUris'] + if image_uris is not None: - pulumi.set(__self__, "image_uris", image_uris) + _setter("image_uris", image_uris) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter(name="imageUris") @@ -1338,10 +1743,27 @@ def __init__(__self__, *, :param 'ImagePipelineImageScanningConfigurationEcrConfigurationArgs' ecr_configuration: Configuration block with ECR configuration for image scanning. Detailed below. :param bool image_scanning_enabled: Whether image scans are enabled. Defaults to `false`. """ + ImagePipelineImageScanningConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + ecr_configuration=ecr_configuration, + image_scanning_enabled=image_scanning_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ecr_configuration: Optional['outputs.ImagePipelineImageScanningConfigurationEcrConfiguration'] = None, + image_scanning_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ecr_configuration is None and 'ecrConfiguration' in kwargs: + ecr_configuration = kwargs['ecrConfiguration'] + if image_scanning_enabled is None and 'imageScanningEnabled' in kwargs: + image_scanning_enabled = kwargs['imageScanningEnabled'] + if ecr_configuration is not None: - pulumi.set(__self__, "ecr_configuration", ecr_configuration) + _setter("ecr_configuration", ecr_configuration) if image_scanning_enabled is not None: - pulumi.set(__self__, "image_scanning_enabled", image_scanning_enabled) + _setter("image_scanning_enabled", image_scanning_enabled) @property @pulumi.getter(name="ecrConfiguration") @@ -1387,10 +1809,27 @@ def __init__(__self__, *, """ :param str repository_name: The name of the repository to scan """ + ImagePipelineImageScanningConfigurationEcrConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_tags=container_tags, + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_tags: Optional[Sequence[str]] = None, + repository_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_tags is None and 'containerTags' in kwargs: + container_tags = kwargs['containerTags'] + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if container_tags is not None: - pulumi.set(__self__, "container_tags", container_tags) + _setter("container_tags", container_tags) if repository_name is not None: - pulumi.set(__self__, "repository_name", repository_name) + _setter("repository_name", repository_name) @property @pulumi.getter(name="containerTags") @@ -1434,10 +1873,27 @@ def __init__(__self__, *, :param bool image_tests_enabled: Whether image tests are enabled. Defaults to `true`. :param int timeout_minutes: Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. """ + ImagePipelineImageTestsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_tests_enabled=image_tests_enabled, + timeout_minutes=timeout_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_tests_enabled: Optional[bool] = None, + timeout_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_tests_enabled is None and 'imageTestsEnabled' in kwargs: + image_tests_enabled = kwargs['imageTestsEnabled'] + if timeout_minutes is None and 'timeoutMinutes' in kwargs: + timeout_minutes = kwargs['timeoutMinutes'] + if image_tests_enabled is not None: - pulumi.set(__self__, "image_tests_enabled", image_tests_enabled) + _setter("image_tests_enabled", image_tests_enabled) if timeout_minutes is not None: - pulumi.set(__self__, "timeout_minutes", timeout_minutes) + _setter("timeout_minutes", timeout_minutes) @property @pulumi.getter(name="imageTestsEnabled") @@ -1488,11 +1944,32 @@ def __init__(__self__, *, :param str pipeline_execution_start_condition: Condition when the pipeline should trigger a new image build. Valid values are `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE` and `EXPRESSION_MATCH_ONLY`. Defaults to `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE`. :param str timezone: The timezone that applies to the scheduling expression. For example, "Etc/UTC", "America/Los_Angeles" in the [IANA timezone format](https://www.joda.org/joda-time/timezones.html). If not specified this defaults to UTC. """ - pulumi.set(__self__, "schedule_expression", schedule_expression) + ImagePipelineSchedule._configure( + lambda key, value: pulumi.set(__self__, key, value), + schedule_expression=schedule_expression, + pipeline_execution_start_condition=pipeline_execution_start_condition, + timezone=timezone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schedule_expression: Optional[str] = None, + pipeline_execution_start_condition: Optional[str] = None, + timezone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + if pipeline_execution_start_condition is None and 'pipelineExecutionStartCondition' in kwargs: + pipeline_execution_start_condition = kwargs['pipelineExecutionStartCondition'] + + _setter("schedule_expression", schedule_expression) if pipeline_execution_start_condition is not None: - pulumi.set(__self__, "pipeline_execution_start_condition", pipeline_execution_start_condition) + _setter("pipeline_execution_start_condition", pipeline_execution_start_condition) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) @property @pulumi.getter(name="scheduleExpression") @@ -1555,14 +2032,37 @@ def __init__(__self__, *, :param bool no_device: Set to `true` to remove a mapping from the parent image. :param str virtual_name: Virtual device name. For example, `ephemeral0`. Instance store volumes are numbered starting from 0. """ + ImageRecipeBlockDeviceMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + ebs: Optional['outputs.ImageRecipeBlockDeviceMappingEbs'] = None, + no_device: Optional[bool] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if ebs is not None: - pulumi.set(__self__, "ebs", ebs) + _setter("ebs", ebs) if no_device is not None: - pulumi.set(__self__, "no_device", no_device) + _setter("no_device", no_device) if virtual_name is not None: - pulumi.set(__self__, "virtual_name", virtual_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -1643,22 +2143,57 @@ def __init__(__self__, *, :param int volume_size: Size of the volume, in GiB. :param str volume_type: Type of the volume. For example, `gp2` or `io2`. """ + ImageRecipeBlockDeviceMappingEbs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[str] = None, + encrypted: Optional[str] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -1751,9 +2286,26 @@ def __init__(__self__, *, :param str component_arn: Amazon Resource Name (ARN) of the Image Builder Component to associate. :param Sequence['ImageRecipeComponentParameterArgs'] parameters: Configuration block(s) for parameters to configure the component. Detailed below. """ - pulumi.set(__self__, "component_arn", component_arn) + ImageRecipeComponent._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_arn=component_arn, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_arn: Optional[str] = None, + parameters: Optional[Sequence['outputs.ImageRecipeComponentParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_arn is None and 'componentArn' in kwargs: + component_arn = kwargs['componentArn'] + if component_arn is None: + raise TypeError("Missing 'component_arn' argument") + + _setter("component_arn", component_arn) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter(name="componentArn") @@ -1781,8 +2333,25 @@ def __init__(__self__, *, :param str name: The name of the component parameter. :param str value: The value for the named component parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ImageRecipeComponentParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1825,7 +2394,22 @@ def __init__(__self__, *, """ :param bool uninstall_after_build: Whether to remove the Systems Manager Agent after the image has been built. Defaults to `false`. """ - pulumi.set(__self__, "uninstall_after_build", uninstall_after_build) + ImageRecipeSystemsManagerAgent._configure( + lambda key, value: pulumi.set(__self__, key, value), + uninstall_after_build=uninstall_after_build, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uninstall_after_build: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uninstall_after_build is None and 'uninstallAfterBuild' in kwargs: + uninstall_after_build = kwargs['uninstallAfterBuild'] + if uninstall_after_build is None: + raise TypeError("Missing 'uninstall_after_build' argument") + + _setter("uninstall_after_build", uninstall_after_build) @property @pulumi.getter(name="uninstallAfterBuild") @@ -1864,10 +2448,27 @@ def __init__(__self__, *, :param int http_put_response_hop_limit: The number of hops that an instance can traverse to reach its destonation. :param str http_tokens: Whether a signed token is required for instance metadata retrieval requests. Valid values: `required`, `optional`. """ + InfrastructureConfigurationInstanceMetadataOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_put_response_hop_limit: Optional[int] = None, + http_tokens: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if http_put_response_hop_limit is not None: - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_put_response_hop_limit", http_put_response_hop_limit) if http_tokens is not None: - pulumi.set(__self__, "http_tokens", http_tokens) + _setter("http_tokens", http_tokens) @property @pulumi.getter(name="httpPutResponseHopLimit") @@ -1910,7 +2511,22 @@ def __init__(__self__, *, """ :param 'InfrastructureConfigurationLoggingS3LogsArgs' s3_logs: Configuration block with S3 logging settings. Detailed below. """ - pulumi.set(__self__, "s3_logs", s3_logs) + InfrastructureConfigurationLogging._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_logs=s3_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_logs: Optional['outputs.InfrastructureConfigurationLoggingS3Logs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_logs is None and 's3Logs' in kwargs: + s3_logs = kwargs['s3Logs'] + if s3_logs is None: + raise TypeError("Missing 's3_logs' argument") + + _setter("s3_logs", s3_logs) @property @pulumi.getter(name="s3Logs") @@ -1951,9 +2567,28 @@ def __init__(__self__, *, The following arguments are optional: :param str s3_key_prefix: Prefix to use for S3 logs. Defaults to `/`. """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + InfrastructureConfigurationLoggingS3Logs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[str] = None, + s3_key_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + + _setter("s3_bucket_name", s3_bucket_name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter(name="s3BucketName") @@ -1983,8 +2618,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListComponents API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListComponents.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetComponentsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -2012,8 +2664,27 @@ def __init__(__self__, *, :param str component_arn: ARN of the Image Builder Component. :param Sequence['GetContainerRecipeComponentParameterArgs'] parameters: Set of parameters that are used to configure the component. """ - pulumi.set(__self__, "component_arn", component_arn) - pulumi.set(__self__, "parameters", parameters) + GetContainerRecipeComponentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_arn=component_arn, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_arn: Optional[str] = None, + parameters: Optional[Sequence['outputs.GetContainerRecipeComponentParameterResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_arn is None and 'componentArn' in kwargs: + component_arn = kwargs['componentArn'] + if component_arn is None: + raise TypeError("Missing 'component_arn' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + + _setter("component_arn", component_arn) + _setter("parameters", parameters) @property @pulumi.getter(name="componentArn") @@ -2041,8 +2712,25 @@ def __init__(__self__, *, :param str name: Name of the container recipe. :param str value: Value of the component parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + GetContainerRecipeComponentParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2070,8 +2758,27 @@ def __init__(__self__, *, :param Sequence['GetContainerRecipeInstanceConfigurationBlockDeviceMappingArgs'] block_device_mappings: Set of objects with block device mappings for the instance configuration. :param str image: AMI ID of the base image for container build and test instance. """ - pulumi.set(__self__, "block_device_mappings", block_device_mappings) - pulumi.set(__self__, "image", image) + GetContainerRecipeInstanceConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_device_mappings=block_device_mappings, + image=image, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_device_mappings: Optional[Sequence['outputs.GetContainerRecipeInstanceConfigurationBlockDeviceMappingResult']] = None, + image: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_device_mappings is None and 'blockDeviceMappings' in kwargs: + block_device_mappings = kwargs['blockDeviceMappings'] + if block_device_mappings is None: + raise TypeError("Missing 'block_device_mappings' argument") + if image is None: + raise TypeError("Missing 'image' argument") + + _setter("block_device_mappings", block_device_mappings) + _setter("image", image) @property @pulumi.getter(name="blockDeviceMappings") @@ -2103,10 +2810,41 @@ def __init__(__self__, *, :param str no_device: Whether to remove a mapping from the parent image. :param str virtual_name: Virtual device name. For example, `ephemeral0`. Instance store volumes are numbered starting from 0. """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "ebs", ebs) - pulumi.set(__self__, "no_device", no_device) - pulumi.set(__self__, "virtual_name", virtual_name) + GetContainerRecipeInstanceConfigurationBlockDeviceMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + ebs: Optional[Sequence['outputs.GetContainerRecipeInstanceConfigurationBlockDeviceMappingEbResult']] = None, + no_device: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if ebs is None: + raise TypeError("Missing 'ebs' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if no_device is None: + raise TypeError("Missing 'no_device' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("ebs", ebs) + _setter("no_device", no_device) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -2162,14 +2900,65 @@ def __init__(__self__, *, :param int volume_size: Size of the volume, in GiB. :param str volume_type: Type of the volume. For example, `gp2` or `io2`. """ - pulumi.set(__self__, "delete_on_termination", delete_on_termination) - pulumi.set(__self__, "encrypted", encrypted) - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "snapshot_id", snapshot_id) - pulumi.set(__self__, "throughput", throughput) - pulumi.set(__self__, "volume_size", volume_size) - pulumi.set(__self__, "volume_type", volume_type) + GetContainerRecipeInstanceConfigurationBlockDeviceMappingEbResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if delete_on_termination is None: + raise TypeError("Missing 'delete_on_termination' argument") + if encrypted is None: + raise TypeError("Missing 'encrypted' argument") + if iops is None: + raise TypeError("Missing 'iops' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if snapshot_id is None: + raise TypeError("Missing 'snapshot_id' argument") + if throughput is None: + raise TypeError("Missing 'throughput' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_size is None: + raise TypeError("Missing 'volume_size' argument") + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if volume_type is None: + raise TypeError("Missing 'volume_type' argument") + + _setter("delete_on_termination", delete_on_termination) + _setter("encrypted", encrypted) + _setter("iops", iops) + _setter("kms_key_id", kms_key_id) + _setter("snapshot_id", snapshot_id) + _setter("throughput", throughput) + _setter("volume_size", volume_size) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -2245,8 +3034,27 @@ def __init__(__self__, *, :param str repository_name: Name of the container repository where the output container image is stored. The name is prefixed by the repository location. :param str service: Service in which this image is registered. """ - pulumi.set(__self__, "repository_name", repository_name) - pulumi.set(__self__, "service", service) + GetContainerRecipeTargetRepositoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + service=service, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[str] = None, + service: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if service is None: + raise TypeError("Missing 'service' argument") + + _setter("repository_name", repository_name) + _setter("service", service) @property @pulumi.getter(name="repositoryName") @@ -2274,8 +3082,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListContainerRecipes API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListContainerRecipes.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetContainerRecipesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -2311,12 +3136,55 @@ def __init__(__self__, *, :param Sequence[str] license_configuration_arns: Set of Amazon Resource Names (ARNs) of License Manager License Configurations. :param str region: AWS Region of distribution. """ - pulumi.set(__self__, "ami_distribution_configurations", ami_distribution_configurations) - pulumi.set(__self__, "container_distribution_configurations", container_distribution_configurations) - pulumi.set(__self__, "fast_launch_configurations", fast_launch_configurations) - pulumi.set(__self__, "launch_template_configurations", launch_template_configurations) - pulumi.set(__self__, "license_configuration_arns", license_configuration_arns) - pulumi.set(__self__, "region", region) + GetDistributionConfigurationDistributionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami_distribution_configurations=ami_distribution_configurations, + container_distribution_configurations=container_distribution_configurations, + fast_launch_configurations=fast_launch_configurations, + launch_template_configurations=launch_template_configurations, + license_configuration_arns=license_configuration_arns, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami_distribution_configurations: Optional[Sequence['outputs.GetDistributionConfigurationDistributionAmiDistributionConfigurationResult']] = None, + container_distribution_configurations: Optional[Sequence['outputs.GetDistributionConfigurationDistributionContainerDistributionConfigurationResult']] = None, + fast_launch_configurations: Optional[Sequence['outputs.GetDistributionConfigurationDistributionFastLaunchConfigurationResult']] = None, + launch_template_configurations: Optional[Sequence['outputs.GetDistributionConfigurationDistributionLaunchTemplateConfigurationResult']] = None, + license_configuration_arns: Optional[Sequence[str]] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ami_distribution_configurations is None and 'amiDistributionConfigurations' in kwargs: + ami_distribution_configurations = kwargs['amiDistributionConfigurations'] + if ami_distribution_configurations is None: + raise TypeError("Missing 'ami_distribution_configurations' argument") + if container_distribution_configurations is None and 'containerDistributionConfigurations' in kwargs: + container_distribution_configurations = kwargs['containerDistributionConfigurations'] + if container_distribution_configurations is None: + raise TypeError("Missing 'container_distribution_configurations' argument") + if fast_launch_configurations is None and 'fastLaunchConfigurations' in kwargs: + fast_launch_configurations = kwargs['fastLaunchConfigurations'] + if fast_launch_configurations is None: + raise TypeError("Missing 'fast_launch_configurations' argument") + if launch_template_configurations is None and 'launchTemplateConfigurations' in kwargs: + launch_template_configurations = kwargs['launchTemplateConfigurations'] + if launch_template_configurations is None: + raise TypeError("Missing 'launch_template_configurations' argument") + if license_configuration_arns is None and 'licenseConfigurationArns' in kwargs: + license_configuration_arns = kwargs['licenseConfigurationArns'] + if license_configuration_arns is None: + raise TypeError("Missing 'license_configuration_arns' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("ami_distribution_configurations", ami_distribution_configurations) + _setter("container_distribution_configurations", container_distribution_configurations) + _setter("fast_launch_configurations", fast_launch_configurations) + _setter("launch_template_configurations", launch_template_configurations) + _setter("license_configuration_arns", license_configuration_arns) + _setter("region", region) @property @pulumi.getter(name="amiDistributionConfigurations") @@ -2384,12 +3252,53 @@ def __init__(__self__, *, :param str name: Name of the distribution configuration. :param Sequence[str] target_account_ids: Set of target AWS Account identifiers. """ - pulumi.set(__self__, "ami_tags", ami_tags) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "launch_permissions", launch_permissions) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "target_account_ids", target_account_ids) + GetDistributionConfigurationDistributionAmiDistributionConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ami_tags=ami_tags, + description=description, + kms_key_id=kms_key_id, + launch_permissions=launch_permissions, + name=name, + target_account_ids=target_account_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ami_tags: Optional[Mapping[str, str]] = None, + description: Optional[str] = None, + kms_key_id: Optional[str] = None, + launch_permissions: Optional[Sequence['outputs.GetDistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionResult']] = None, + name: Optional[str] = None, + target_account_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ami_tags is None and 'amiTags' in kwargs: + ami_tags = kwargs['amiTags'] + if ami_tags is None: + raise TypeError("Missing 'ami_tags' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if launch_permissions is None and 'launchPermissions' in kwargs: + launch_permissions = kwargs['launchPermissions'] + if launch_permissions is None: + raise TypeError("Missing 'launch_permissions' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if target_account_ids is None and 'targetAccountIds' in kwargs: + target_account_ids = kwargs['targetAccountIds'] + if target_account_ids is None: + raise TypeError("Missing 'target_account_ids' argument") + + _setter("ami_tags", ami_tags) + _setter("description", description) + _setter("kms_key_id", kms_key_id) + _setter("launch_permissions", launch_permissions) + _setter("name", name) + _setter("target_account_ids", target_account_ids) @property @pulumi.getter(name="amiTags") @@ -2453,10 +3362,43 @@ def __init__(__self__, *, :param Sequence[str] user_groups: Set of EC2 launch permission user groups. :param Sequence[str] user_ids: Set of AWS Account identifiers. """ - pulumi.set(__self__, "organization_arns", organization_arns) - pulumi.set(__self__, "organizational_unit_arns", organizational_unit_arns) - pulumi.set(__self__, "user_groups", user_groups) - pulumi.set(__self__, "user_ids", user_ids) + GetDistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + organization_arns=organization_arns, + organizational_unit_arns=organizational_unit_arns, + user_groups=user_groups, + user_ids=user_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + organization_arns: Optional[Sequence[str]] = None, + organizational_unit_arns: Optional[Sequence[str]] = None, + user_groups: Optional[Sequence[str]] = None, + user_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if organization_arns is None and 'organizationArns' in kwargs: + organization_arns = kwargs['organizationArns'] + if organization_arns is None: + raise TypeError("Missing 'organization_arns' argument") + if organizational_unit_arns is None and 'organizationalUnitArns' in kwargs: + organizational_unit_arns = kwargs['organizationalUnitArns'] + if organizational_unit_arns is None: + raise TypeError("Missing 'organizational_unit_arns' argument") + if user_groups is None and 'userGroups' in kwargs: + user_groups = kwargs['userGroups'] + if user_groups is None: + raise TypeError("Missing 'user_groups' argument") + if user_ids is None and 'userIds' in kwargs: + user_ids = kwargs['userIds'] + if user_ids is None: + raise TypeError("Missing 'user_ids' argument") + + _setter("organization_arns", organization_arns) + _setter("organizational_unit_arns", organizational_unit_arns) + _setter("user_groups", user_groups) + _setter("user_ids", user_ids) @property @pulumi.getter(name="organizationArns") @@ -2502,9 +3444,34 @@ def __init__(__self__, *, :param str description: Description of the container distribution configuration. :param Sequence['GetDistributionConfigurationDistributionContainerDistributionConfigurationTargetRepositoryArgs'] target_repositories: Set of destination repositories for the container distribution configuration. """ - pulumi.set(__self__, "container_tags", container_tags) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "target_repositories", target_repositories) + GetDistributionConfigurationDistributionContainerDistributionConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_tags=container_tags, + description=description, + target_repositories=target_repositories, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_tags: Optional[Sequence[str]] = None, + description: Optional[str] = None, + target_repositories: Optional[Sequence['outputs.GetDistributionConfigurationDistributionContainerDistributionConfigurationTargetRepositoryResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_tags is None and 'containerTags' in kwargs: + container_tags = kwargs['containerTags'] + if container_tags is None: + raise TypeError("Missing 'container_tags' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if target_repositories is None and 'targetRepositories' in kwargs: + target_repositories = kwargs['targetRepositories'] + if target_repositories is None: + raise TypeError("Missing 'target_repositories' argument") + + _setter("container_tags", container_tags) + _setter("description", description) + _setter("target_repositories", target_repositories) @property @pulumi.getter(name="containerTags") @@ -2540,8 +3507,27 @@ def __init__(__self__, *, :param str repository_name: Name of the container repository where the output container image is stored. :param str service: Service in which the image is registered. """ - pulumi.set(__self__, "repository_name", repository_name) - pulumi.set(__self__, "service", service) + GetDistributionConfigurationDistributionContainerDistributionConfigurationTargetRepositoryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_name=repository_name, + service=service, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_name: Optional[str] = None, + service: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + if service is None: + raise TypeError("Missing 'service' argument") + + _setter("repository_name", repository_name) + _setter("service", service) @property @pulumi.getter(name="repositoryName") @@ -2575,11 +3561,48 @@ def __init__(__self__, *, :param int max_parallel_launches: The maximum number of parallel instances that are launched for creating resources. :param Sequence['GetDistributionConfigurationDistributionFastLaunchConfigurationSnapshotConfigurationArgs'] snapshot_configurations: Nested list of configurations for managing the number of snapshots that are created from pre-provisioned instances for the Windows AMI when faster launching is enabled. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "launch_templates", launch_templates) - pulumi.set(__self__, "max_parallel_launches", max_parallel_launches) - pulumi.set(__self__, "snapshot_configurations", snapshot_configurations) + GetDistributionConfigurationDistributionFastLaunchConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + enabled=enabled, + launch_templates=launch_templates, + max_parallel_launches=max_parallel_launches, + snapshot_configurations=snapshot_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + enabled: Optional[bool] = None, + launch_templates: Optional[Sequence['outputs.GetDistributionConfigurationDistributionFastLaunchConfigurationLaunchTemplateResult']] = None, + max_parallel_launches: Optional[int] = None, + snapshot_configurations: Optional[Sequence['outputs.GetDistributionConfigurationDistributionFastLaunchConfigurationSnapshotConfigurationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if launch_templates is None and 'launchTemplates' in kwargs: + launch_templates = kwargs['launchTemplates'] + if launch_templates is None: + raise TypeError("Missing 'launch_templates' argument") + if max_parallel_launches is None and 'maxParallelLaunches' in kwargs: + max_parallel_launches = kwargs['maxParallelLaunches'] + if max_parallel_launches is None: + raise TypeError("Missing 'max_parallel_launches' argument") + if snapshot_configurations is None and 'snapshotConfigurations' in kwargs: + snapshot_configurations = kwargs['snapshotConfigurations'] + if snapshot_configurations is None: + raise TypeError("Missing 'snapshot_configurations' argument") + + _setter("account_id", account_id) + _setter("enabled", enabled) + _setter("launch_templates", launch_templates) + _setter("max_parallel_launches", max_parallel_launches) + _setter("snapshot_configurations", snapshot_configurations) @property @pulumi.getter(name="accountId") @@ -2633,9 +3656,36 @@ def __init__(__self__, *, :param str launch_template_name: The name of the launch template to use for faster launching for a Windows AMI. :param str launch_template_version: The version of the launch template to use for faster launching for a Windows AMI. """ - pulumi.set(__self__, "launch_template_id", launch_template_id) - pulumi.set(__self__, "launch_template_name", launch_template_name) - pulumi.set(__self__, "launch_template_version", launch_template_version) + GetDistributionConfigurationDistributionFastLaunchConfigurationLaunchTemplateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + launch_template_id=launch_template_id, + launch_template_name=launch_template_name, + launch_template_version=launch_template_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + launch_template_id: Optional[str] = None, + launch_template_name: Optional[str] = None, + launch_template_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_id is None: + raise TypeError("Missing 'launch_template_id' argument") + if launch_template_name is None and 'launchTemplateName' in kwargs: + launch_template_name = kwargs['launchTemplateName'] + if launch_template_name is None: + raise TypeError("Missing 'launch_template_name' argument") + if launch_template_version is None and 'launchTemplateVersion' in kwargs: + launch_template_version = kwargs['launchTemplateVersion'] + if launch_template_version is None: + raise TypeError("Missing 'launch_template_version' argument") + + _setter("launch_template_id", launch_template_id) + _setter("launch_template_name", launch_template_name) + _setter("launch_template_version", launch_template_version) @property @pulumi.getter(name="launchTemplateId") @@ -2669,7 +3719,22 @@ def __init__(__self__, *, """ :param int target_resource_count: The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI. """ - pulumi.set(__self__, "target_resource_count", target_resource_count) + GetDistributionConfigurationDistributionFastLaunchConfigurationSnapshotConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_resource_count=target_resource_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_resource_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_resource_count is None and 'targetResourceCount' in kwargs: + target_resource_count = kwargs['targetResourceCount'] + if target_resource_count is None: + raise TypeError("Missing 'target_resource_count' argument") + + _setter("target_resource_count", target_resource_count) @property @pulumi.getter(name="targetResourceCount") @@ -2691,9 +3756,34 @@ def __init__(__self__, *, :param bool default: Whether the specified Amazon EC2 launch template is set as the default launch template. :param str launch_template_id: ID of the Amazon EC2 launch template. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "default", default) - pulumi.set(__self__, "launch_template_id", launch_template_id) + GetDistributionConfigurationDistributionLaunchTemplateConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + default=default, + launch_template_id=launch_template_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + default: Optional[bool] = None, + launch_template_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if default is None: + raise TypeError("Missing 'default' argument") + if launch_template_id is None and 'launchTemplateId' in kwargs: + launch_template_id = kwargs['launchTemplateId'] + if launch_template_id is None: + raise TypeError("Missing 'launch_template_id' argument") + + _setter("account_id", account_id) + _setter("default", default) + _setter("launch_template_id", launch_template_id) @property @pulumi.getter(name="accountId") @@ -2729,8 +3819,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListDistributionConfigurations API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListDistributionConfigurations.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetDistributionConfigurationsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -2758,8 +3865,29 @@ def __init__(__self__, *, :param bool image_tests_enabled: Whether image tests are enabled. :param int timeout_minutes: Number of minutes before image tests time out. """ - pulumi.set(__self__, "image_tests_enabled", image_tests_enabled) - pulumi.set(__self__, "timeout_minutes", timeout_minutes) + GetImageImageTestsConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_tests_enabled=image_tests_enabled, + timeout_minutes=timeout_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_tests_enabled: Optional[bool] = None, + timeout_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_tests_enabled is None and 'imageTestsEnabled' in kwargs: + image_tests_enabled = kwargs['imageTestsEnabled'] + if image_tests_enabled is None: + raise TypeError("Missing 'image_tests_enabled' argument") + if timeout_minutes is None and 'timeoutMinutes' in kwargs: + timeout_minutes = kwargs['timeoutMinutes'] + if timeout_minutes is None: + raise TypeError("Missing 'timeout_minutes' argument") + + _setter("image_tests_enabled", image_tests_enabled) + _setter("timeout_minutes", timeout_minutes) @property @pulumi.getter(name="imageTestsEnabled") @@ -2787,8 +3915,25 @@ def __init__(__self__, *, :param Sequence['GetImageOutputResourceAmiArgs'] amis: Set of objects with each Amazon Machine Image (AMI) created. :param Sequence['GetImageOutputResourceContainerArgs'] containers: Set of objects with each container image created and stored in the output repository. """ - pulumi.set(__self__, "amis", amis) - pulumi.set(__self__, "containers", containers) + GetImageOutputResourceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + amis=amis, + containers=containers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amis: Optional[Sequence['outputs.GetImageOutputResourceAmiResult']] = None, + containers: Optional[Sequence['outputs.GetImageOutputResourceContainerResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amis is None: + raise TypeError("Missing 'amis' argument") + if containers is None: + raise TypeError("Missing 'containers' argument") + + _setter("amis", amis) + _setter("containers", containers) @property @pulumi.getter @@ -2822,11 +3967,42 @@ def __init__(__self__, *, :param str name: Name of the AMI. :param str region: Region of the container image. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "image", image) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "region", region) + GetImageOutputResourceAmiResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + description=description, + image=image, + name=name, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + description: Optional[str] = None, + image: Optional[str] = None, + name: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if image is None: + raise TypeError("Missing 'image' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("account_id", account_id) + _setter("description", description) + _setter("image", image) + _setter("name", name) + _setter("region", region) @property @pulumi.getter(name="accountId") @@ -2878,8 +4054,27 @@ def __init__(__self__, *, :param Sequence[str] image_uris: Set of URIs for created containers. :param str region: Region of the container image. """ - pulumi.set(__self__, "image_uris", image_uris) - pulumi.set(__self__, "region", region) + GetImageOutputResourceContainerResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_uris=image_uris, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_uris: Optional[Sequence[str]] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_uris is None and 'imageUris' in kwargs: + image_uris = kwargs['imageUris'] + if image_uris is None: + raise TypeError("Missing 'image_uris' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("image_uris", image_uris) + _setter("region", region) @property @pulumi.getter(name="imageUris") @@ -2907,8 +4102,29 @@ def __init__(__self__, *, :param Sequence['GetImagePipelineImageScanningConfigurationEcrConfigurationArgs'] ecr_configurations: List if an object with ecr configuration for image scanning :param bool image_scanning_enabled: Whether image scanning is enabled. """ - pulumi.set(__self__, "ecr_configurations", ecr_configurations) - pulumi.set(__self__, "image_scanning_enabled", image_scanning_enabled) + GetImagePipelineImageScanningConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ecr_configurations=ecr_configurations, + image_scanning_enabled=image_scanning_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ecr_configurations: Optional[Sequence['outputs.GetImagePipelineImageScanningConfigurationEcrConfigurationResult']] = None, + image_scanning_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ecr_configurations is None and 'ecrConfigurations' in kwargs: + ecr_configurations = kwargs['ecrConfigurations'] + if ecr_configurations is None: + raise TypeError("Missing 'ecr_configurations' argument") + if image_scanning_enabled is None and 'imageScanningEnabled' in kwargs: + image_scanning_enabled = kwargs['imageScanningEnabled'] + if image_scanning_enabled is None: + raise TypeError("Missing 'image_scanning_enabled' argument") + + _setter("ecr_configurations", ecr_configurations) + _setter("image_scanning_enabled", image_scanning_enabled) @property @pulumi.getter(name="ecrConfigurations") @@ -2936,8 +4152,29 @@ def __init__(__self__, *, :param Sequence[str] container_tags: Tags that are added to the output containers that are scanned :param str repository_name: The name of the container repository that Amazon Inspector scans """ - pulumi.set(__self__, "container_tags", container_tags) - pulumi.set(__self__, "repository_name", repository_name) + GetImagePipelineImageScanningConfigurationEcrConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_tags=container_tags, + repository_name=repository_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_tags: Optional[Sequence[str]] = None, + repository_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_tags is None and 'containerTags' in kwargs: + container_tags = kwargs['containerTags'] + if container_tags is None: + raise TypeError("Missing 'container_tags' argument") + if repository_name is None and 'repositoryName' in kwargs: + repository_name = kwargs['repositoryName'] + if repository_name is None: + raise TypeError("Missing 'repository_name' argument") + + _setter("container_tags", container_tags) + _setter("repository_name", repository_name) @property @pulumi.getter(name="containerTags") @@ -2965,8 +4202,29 @@ def __init__(__self__, *, :param bool image_tests_enabled: Whether image tests are enabled. :param int timeout_minutes: Number of minutes before image tests time out. """ - pulumi.set(__self__, "image_tests_enabled", image_tests_enabled) - pulumi.set(__self__, "timeout_minutes", timeout_minutes) + GetImagePipelineImageTestsConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_tests_enabled=image_tests_enabled, + timeout_minutes=timeout_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_tests_enabled: Optional[bool] = None, + timeout_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_tests_enabled is None and 'imageTestsEnabled' in kwargs: + image_tests_enabled = kwargs['imageTestsEnabled'] + if image_tests_enabled is None: + raise TypeError("Missing 'image_tests_enabled' argument") + if timeout_minutes is None and 'timeoutMinutes' in kwargs: + timeout_minutes = kwargs['timeoutMinutes'] + if timeout_minutes is None: + raise TypeError("Missing 'timeout_minutes' argument") + + _setter("image_tests_enabled", image_tests_enabled) + _setter("timeout_minutes", timeout_minutes) @property @pulumi.getter(name="imageTestsEnabled") @@ -2994,8 +4252,29 @@ def __init__(__self__, *, :param str pipeline_execution_start_condition: Condition when the pipeline should trigger a new image build. :param str schedule_expression: Cron expression of how often the pipeline start condition is evaluated. """ - pulumi.set(__self__, "pipeline_execution_start_condition", pipeline_execution_start_condition) - pulumi.set(__self__, "schedule_expression", schedule_expression) + GetImagePipelineScheduleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + pipeline_execution_start_condition=pipeline_execution_start_condition, + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pipeline_execution_start_condition: Optional[str] = None, + schedule_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pipeline_execution_start_condition is None and 'pipelineExecutionStartCondition' in kwargs: + pipeline_execution_start_condition = kwargs['pipelineExecutionStartCondition'] + if pipeline_execution_start_condition is None: + raise TypeError("Missing 'pipeline_execution_start_condition' argument") + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + + _setter("pipeline_execution_start_condition", pipeline_execution_start_condition) + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="pipelineExecutionStartCondition") @@ -3023,8 +4302,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListImagePipelines API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListImagePipelines.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetImagePipelinesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -3056,10 +4352,41 @@ def __init__(__self__, *, :param str no_device: Whether to remove a mapping from the parent image. :param str virtual_name: Virtual device name. For example, `ephemeral0`. Instance store volumes are numbered starting from 0. """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "ebs", ebs) - pulumi.set(__self__, "no_device", no_device) - pulumi.set(__self__, "virtual_name", virtual_name) + GetImageRecipeBlockDeviceMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + ebs=ebs, + no_device=no_device, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + ebs: Optional[Sequence['outputs.GetImageRecipeBlockDeviceMappingEbResult']] = None, + no_device: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if ebs is None: + raise TypeError("Missing 'ebs' argument") + if no_device is None and 'noDevice' in kwargs: + no_device = kwargs['noDevice'] + if no_device is None: + raise TypeError("Missing 'no_device' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("ebs", ebs) + _setter("no_device", no_device) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -3115,14 +4442,65 @@ def __init__(__self__, *, :param int volume_size: Size of the volume, in GiB. :param str volume_type: Type of the volume. For example, `gp2` or `io2`. """ - pulumi.set(__self__, "delete_on_termination", delete_on_termination) - pulumi.set(__self__, "encrypted", encrypted) - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "snapshot_id", snapshot_id) - pulumi.set(__self__, "throughput", throughput) - pulumi.set(__self__, "volume_size", volume_size) - pulumi.set(__self__, "volume_type", volume_type) + GetImageRecipeBlockDeviceMappingEbResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + encrypted=encrypted, + iops=iops, + kms_key_id=kms_key_id, + snapshot_id=snapshot_id, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + kms_key_id: Optional[str] = None, + snapshot_id: Optional[str] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if delete_on_termination is None: + raise TypeError("Missing 'delete_on_termination' argument") + if encrypted is None: + raise TypeError("Missing 'encrypted' argument") + if iops is None: + raise TypeError("Missing 'iops' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if snapshot_id is None: + raise TypeError("Missing 'snapshot_id' argument") + if throughput is None: + raise TypeError("Missing 'throughput' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_size is None: + raise TypeError("Missing 'volume_size' argument") + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if volume_type is None: + raise TypeError("Missing 'volume_type' argument") + + _setter("delete_on_termination", delete_on_termination) + _setter("encrypted", encrypted) + _setter("iops", iops) + _setter("kms_key_id", kms_key_id) + _setter("snapshot_id", snapshot_id) + _setter("throughput", throughput) + _setter("volume_size", volume_size) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -3198,8 +4576,27 @@ def __init__(__self__, *, :param str component_arn: ARN of the Image Builder Component. :param Sequence['GetImageRecipeComponentParameterArgs'] parameters: Set of parameters that are used to configure the component. """ - pulumi.set(__self__, "component_arn", component_arn) - pulumi.set(__self__, "parameters", parameters) + GetImageRecipeComponentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_arn=component_arn, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_arn: Optional[str] = None, + parameters: Optional[Sequence['outputs.GetImageRecipeComponentParameterResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_arn is None and 'componentArn' in kwargs: + component_arn = kwargs['componentArn'] + if component_arn is None: + raise TypeError("Missing 'component_arn' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + + _setter("component_arn", component_arn) + _setter("parameters", parameters) @property @pulumi.getter(name="componentArn") @@ -3227,8 +4624,25 @@ def __init__(__self__, *, :param str name: Name of the image recipe. :param str value: Value of the component parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + GetImageRecipeComponentParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3256,8 +4670,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListImageRecipes API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListImageRecipes.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetImageRecipesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -3285,8 +4716,29 @@ def __init__(__self__, *, :param int http_put_response_hop_limit: Number of hops that an instance can traverse to reach its destonation. :param str http_tokens: Whether a signed token is required for instance metadata retrieval requests. """ - pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) - pulumi.set(__self__, "http_tokens", http_tokens) + GetInfrastructureConfigurationInstanceMetadataOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_put_response_hop_limit=http_put_response_hop_limit, + http_tokens=http_tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_put_response_hop_limit: Optional[int] = None, + http_tokens: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_put_response_hop_limit is None and 'httpPutResponseHopLimit' in kwargs: + http_put_response_hop_limit = kwargs['httpPutResponseHopLimit'] + if http_put_response_hop_limit is None: + raise TypeError("Missing 'http_put_response_hop_limit' argument") + if http_tokens is None and 'httpTokens' in kwargs: + http_tokens = kwargs['httpTokens'] + if http_tokens is None: + raise TypeError("Missing 'http_tokens' argument") + + _setter("http_put_response_hop_limit", http_put_response_hop_limit) + _setter("http_tokens", http_tokens) @property @pulumi.getter(name="httpPutResponseHopLimit") @@ -3312,7 +4764,22 @@ def __init__(__self__, *, """ :param Sequence['GetInfrastructureConfigurationLoggingS3LogArgs'] s3_logs: Nested list of S3 logs settings. """ - pulumi.set(__self__, "s3_logs", s3_logs) + GetInfrastructureConfigurationLoggingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_logs=s3_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_logs: Optional[Sequence['outputs.GetInfrastructureConfigurationLoggingS3LogResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_logs is None and 's3Logs' in kwargs: + s3_logs = kwargs['s3Logs'] + if s3_logs is None: + raise TypeError("Missing 's3_logs' argument") + + _setter("s3_logs", s3_logs) @property @pulumi.getter(name="s3Logs") @@ -3332,8 +4799,29 @@ def __init__(__self__, *, :param str s3_bucket_name: Name of the S3 Bucket for logging. :param str s3_key_prefix: Key prefix for S3 Bucket logging. """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + GetInfrastructureConfigurationLoggingS3LogResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[str] = None, + s3_key_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if s3_key_prefix is None: + raise TypeError("Missing 's3_key_prefix' argument") + + _setter("s3_bucket_name", s3_bucket_name) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter(name="s3BucketName") @@ -3361,8 +4849,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Image Builder ListInfrastructureConfigurations API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListInfrastructureConfigurations.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInfrastructureConfigurationsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/inspector/_inputs.py b/sdk/python/pulumi_aws/inspector/_inputs.py index db22cd8223e..23c40e470dc 100644 --- a/sdk/python/pulumi_aws/inspector/_inputs.py +++ b/sdk/python/pulumi_aws/inspector/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,8 +22,27 @@ def __init__(__self__, *, :param pulumi.Input[str] event: The event for which you want to receive SNS notifications. Valid values are `ASSESSMENT_RUN_STARTED`, `ASSESSMENT_RUN_COMPLETED`, `ASSESSMENT_RUN_STATE_CHANGED`, and `FINDING_REPORTED`. :param pulumi.Input[str] topic_arn: The ARN of the SNS topic to which notifications are sent. """ - pulumi.set(__self__, "event", event) - pulumi.set(__self__, "topic_arn", topic_arn) + AssessmentTemplateEventSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event=event, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event: Optional[pulumi.Input[str]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event is None: + raise TypeError("Missing 'event' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + + _setter("event", event) + _setter("topic_arn", topic_arn) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/inspector/assessment_target.py b/sdk/python/pulumi_aws/inspector/assessment_target.py index 9f382f2a503..abb7b20ae91 100644 --- a/sdk/python/pulumi_aws/inspector/assessment_target.py +++ b/sdk/python/pulumi_aws/inspector/assessment_target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AssessmentTargetArgs', 'AssessmentTarget'] @@ -21,10 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the assessment target. :param pulumi.Input[str] resource_group_arn: Inspector Resource Group Amazon Resource Name (ARN) stating tags for instance matching. If not specified, all EC2 instances in the current AWS account and region are included in the assessment target. """ + AssessmentTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + resource_group_arn=resource_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + resource_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_group_arn is None and 'resourceGroupArn' in kwargs: + resource_group_arn = kwargs['resourceGroupArn'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_group_arn is not None: - pulumi.set(__self__, "resource_group_arn", resource_group_arn) + _setter("resource_group_arn", resource_group_arn) @property @pulumi.getter @@ -63,12 +78,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the assessment target. :param pulumi.Input[str] resource_group_arn: Inspector Resource Group Amazon Resource Name (ARN) stating tags for instance matching. If not specified, all EC2 instances in the current AWS account and region are included in the assessment target. """ + _AssessmentTargetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + resource_group_arn=resource_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_group_arn is None and 'resourceGroupArn' in kwargs: + resource_group_arn = kwargs['resourceGroupArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_group_arn is not None: - pulumi.set(__self__, "resource_group_arn", resource_group_arn) + _setter("resource_group_arn", resource_group_arn) @property @pulumi.getter @@ -184,6 +216,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AssessmentTargetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/inspector/assessment_template.py b/sdk/python/pulumi_aws/inspector/assessment_template.py index ec0b02bf603..0d97841b26e 100644 --- a/sdk/python/pulumi_aws/inspector/assessment_template.py +++ b/sdk/python/pulumi_aws/inspector/assessment_template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the assessment template. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags for the Inspector assessment template. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "rules_package_arns", rules_package_arns) - pulumi.set(__self__, "target_arn", target_arn) + AssessmentTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + rules_package_arns=rules_package_arns, + target_arn=target_arn, + event_subscriptions=event_subscriptions, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[pulumi.Input[int]] = None, + rules_package_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + event_subscriptions: Optional[pulumi.Input[Sequence[pulumi.Input['AssessmentTemplateEventSubscriptionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + if rules_package_arns is None and 'rulesPackageArns' in kwargs: + rules_package_arns = kwargs['rulesPackageArns'] + if rules_package_arns is None: + raise TypeError("Missing 'rules_package_arns' argument") + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + if event_subscriptions is None and 'eventSubscriptions' in kwargs: + event_subscriptions = kwargs['eventSubscriptions'] + + _setter("duration", duration) + _setter("rules_package_arns", rules_package_arns) + _setter("target_arn", target_arn) if event_subscriptions is not None: - pulumi.set(__self__, "event_subscriptions", event_subscriptions) + _setter("event_subscriptions", event_subscriptions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -136,25 +169,58 @@ def __init__(__self__, *, :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] target_arn: The assessment target ARN to attach the template to. """ + _AssessmentTemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + duration=duration, + event_subscriptions=event_subscriptions, + name=name, + rules_package_arns=rules_package_arns, + tags=tags, + tags_all=tags_all, + target_arn=target_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + duration: Optional[pulumi.Input[int]] = None, + event_subscriptions: Optional[pulumi.Input[Sequence[pulumi.Input['AssessmentTemplateEventSubscriptionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + rules_package_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_subscriptions is None and 'eventSubscriptions' in kwargs: + event_subscriptions = kwargs['eventSubscriptions'] + if rules_package_arns is None and 'rulesPackageArns' in kwargs: + rules_package_arns = kwargs['rulesPackageArns'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if event_subscriptions is not None: - pulumi.set(__self__, "event_subscriptions", event_subscriptions) + _setter("event_subscriptions", event_subscriptions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules_package_arns is not None: - pulumi.set(__self__, "rules_package_arns", rules_package_arns) + _setter("rules_package_arns", rules_package_arns) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_arn is not None: - pulumi.set(__self__, "target_arn", target_arn) + _setter("target_arn", target_arn) @property @pulumi.getter @@ -357,6 +423,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AssessmentTemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/inspector/get_rules_packages.py b/sdk/python/pulumi_aws/inspector/get_rules_packages.py index e61ff5d71f5..e905b3a3eab 100644 --- a/sdk/python/pulumi_aws/inspector/get_rules_packages.py +++ b/sdk/python/pulumi_aws/inspector/get_rules_packages.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetRulesPackagesResult', 'AwaitableGetRulesPackagesResult', 'get_rules_packages', + 'get_rules_packages_output', ] @pulumi.output_type @@ -86,3 +87,31 @@ def get_rules_packages(opts: Optional[pulumi.InvokeOptions] = None) -> Awaitable return AwaitableGetRulesPackagesResult( arns=pulumi.get(__ret__, 'arns'), id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_rules_packages) +def get_rules_packages_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetRulesPackagesResult]: + """ + The Amazon Inspector Classic Rules Packages data source allows access to the list of AWS + Inspector Rules Packages which can be used by Amazon Inspector Classic within the region + configured in the provider. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + rules = aws.inspector.get_rules_packages() + # e.g., Use in aws_inspector_assessment_template + group = aws.inspector.ResourceGroup("group", tags={ + "test": "test", + }) + assessment_assessment_target = aws.inspector.AssessmentTarget("assessmentAssessmentTarget", resource_group_arn=group.arn) + assessment_assessment_template = aws.inspector.AssessmentTemplate("assessmentAssessmentTemplate", + target_arn=assessment_assessment_target.arn, + duration=60, + rules_package_arns=rules.arns) + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/inspector/outputs.py b/sdk/python/pulumi_aws/inspector/outputs.py index fec64d8c421..819f36a7f5e 100644 --- a/sdk/python/pulumi_aws/inspector/outputs.py +++ b/sdk/python/pulumi_aws/inspector/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -39,8 +39,27 @@ def __init__(__self__, *, :param str event: The event for which you want to receive SNS notifications. Valid values are `ASSESSMENT_RUN_STARTED`, `ASSESSMENT_RUN_COMPLETED`, `ASSESSMENT_RUN_STATE_CHANGED`, and `FINDING_REPORTED`. :param str topic_arn: The ARN of the SNS topic to which notifications are sent. """ - pulumi.set(__self__, "event", event) - pulumi.set(__self__, "topic_arn", topic_arn) + AssessmentTemplateEventSubscription._configure( + lambda key, value: pulumi.set(__self__, key, value), + event=event, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event: Optional[str] = None, + topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event is None: + raise TypeError("Missing 'event' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + + _setter("event", event) + _setter("topic_arn", topic_arn) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/inspector/resource_group.py b/sdk/python/pulumi_aws/inspector/resource_group.py index 3a49d38b326..dc746125665 100644 --- a/sdk/python/pulumi_aws/inspector/resource_group.py +++ b/sdk/python/pulumi_aws/inspector/resource_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourceGroupArgs', 'ResourceGroup'] @@ -19,7 +19,20 @@ def __init__(__self__, *, The set of arguments for constructing a ResourceGroup resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags that are used to select the EC2 instances to be included in an Amazon Inspector assessment target. """ - pulumi.set(__self__, "tags", tags) + ResourceGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("tags", tags) @property @pulumi.getter @@ -44,10 +57,23 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The resource group ARN. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags that are used to select the EC2 instances to be included in an Amazon Inspector assessment target. """ + _ResourceGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -131,6 +157,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/inspector2/_inputs.py b/sdk/python/pulumi_aws/inspector2/_inputs.py index 80016d1afb7..55d0d9ac2ee 100644 --- a/sdk/python/pulumi_aws/inspector2/_inputs.py +++ b/sdk/python/pulumi_aws/inspector2/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,10 +24,31 @@ def __init__(__self__, *, :param pulumi.Input[bool] ecr: Whether Amazon ECR scans are automatically enabled for new members of your Amazon Inspector organization. :param pulumi.Input[bool] lambda_: Whether Lambda Function scans are automatically enabled for new members of your Amazon Inspector organization. """ - pulumi.set(__self__, "ec2", ec2) - pulumi.set(__self__, "ecr", ecr) + OrganizationConfigurationAutoEnableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ec2=ec2, + ecr=ecr, + lambda_=lambda_, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ec2: Optional[pulumi.Input[bool]] = None, + ecr: Optional[pulumi.Input[bool]] = None, + lambda_: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ec2 is None: + raise TypeError("Missing 'ec2' argument") + if ecr is None: + raise TypeError("Missing 'ecr' argument") + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + + _setter("ec2", ec2) + _setter("ecr", ecr) if lambda_ is not None: - pulumi.set(__self__, "lambda_", lambda_) + _setter("lambda_", lambda_) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/inspector2/delegated_admin_account.py b/sdk/python/pulumi_aws/inspector2/delegated_admin_account.py index 5bf097c58d7..d9d29873449 100644 --- a/sdk/python/pulumi_aws/inspector2/delegated_admin_account.py +++ b/sdk/python/pulumi_aws/inspector2/delegated_admin_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DelegatedAdminAccountArgs', 'DelegatedAdminAccount'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a DelegatedAdminAccount resource. :param pulumi.Input[str] account_id: Account to enable as delegated admin account. """ - pulumi.set(__self__, "account_id", account_id) + DelegatedAdminAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + + _setter("account_id", account_id) @property @pulumi.getter(name="accountId") @@ -44,10 +59,27 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: Account to enable as delegated admin account. :param pulumi.Input[str] relationship_status: Status of this delegated admin account. """ + _DelegatedAdminAccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + relationship_status=relationship_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + relationship_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if relationship_status is None and 'relationshipStatus' in kwargs: + relationship_status = kwargs['relationshipStatus'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if relationship_status is not None: - pulumi.set(__self__, "relationship_status", relationship_status) + _setter("relationship_status", relationship_status) @property @pulumi.getter(name="accountId") @@ -145,6 +177,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DelegatedAdminAccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/inspector2/enabler.py b/sdk/python/pulumi_aws/inspector2/enabler.py index 4916226530d..9161fec8600 100644 --- a/sdk/python/pulumi_aws/inspector2/enabler.py +++ b/sdk/python/pulumi_aws/inspector2/enabler.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EnablerArgs', 'Enabler'] @@ -24,8 +24,29 @@ def __init__(__self__, *, Valid values are `EC2`, `ECR`, and `LAMBDA`. At least one item is required. """ - pulumi.set(__self__, "account_ids", account_ids) - pulumi.set(__self__, "resource_types", resource_types) + EnablerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_ids=account_ids, + resource_types=resource_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_ids is None and 'accountIds' in kwargs: + account_ids = kwargs['accountIds'] + if account_ids is None: + raise TypeError("Missing 'account_ids' argument") + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if resource_types is None: + raise TypeError("Missing 'resource_types' argument") + + _setter("account_ids", account_ids) + _setter("resource_types", resource_types) @property @pulumi.getter(name="accountIds") @@ -68,10 +89,27 @@ def __init__(__self__, *, Valid values are `EC2`, `ECR`, and `LAMBDA`. At least one item is required. """ + _EnablerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_ids=account_ids, + resource_types=resource_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_ids is None and 'accountIds' in kwargs: + account_ids = kwargs['accountIds'] + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if account_ids is not None: - pulumi.set(__self__, "account_ids", account_ids) + _setter("account_ids", account_ids) if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) @property @pulumi.getter(name="accountIds") @@ -195,6 +233,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EnablerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/inspector2/member_association.py b/sdk/python/pulumi_aws/inspector2/member_association.py index aad6af8f163..156b740d5c2 100644 --- a/sdk/python/pulumi_aws/inspector2/member_association.py +++ b/sdk/python/pulumi_aws/inspector2/member_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MemberAssociationArgs', 'MemberAssociation'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a MemberAssociation resource. :param pulumi.Input[str] account_id: ID of the account to associate """ - pulumi.set(__self__, "account_id", account_id) + MemberAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + + _setter("account_id", account_id) @property @pulumi.getter(name="accountId") @@ -48,14 +63,39 @@ def __init__(__self__, *, :param pulumi.Input[str] relationship_status: Status of the member relationship :param pulumi.Input[str] updated_at: Date and time of the last update of the relationship """ + _MemberAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + delegated_admin_account_id=delegated_admin_account_id, + relationship_status=relationship_status, + updated_at=updated_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + delegated_admin_account_id: Optional[pulumi.Input[str]] = None, + relationship_status: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if delegated_admin_account_id is None and 'delegatedAdminAccountId' in kwargs: + delegated_admin_account_id = kwargs['delegatedAdminAccountId'] + if relationship_status is None and 'relationshipStatus' in kwargs: + relationship_status = kwargs['relationshipStatus'] + if updated_at is None and 'updatedAt' in kwargs: + updated_at = kwargs['updatedAt'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if delegated_admin_account_id is not None: - pulumi.set(__self__, "delegated_admin_account_id", delegated_admin_account_id) + _setter("delegated_admin_account_id", delegated_admin_account_id) if relationship_status is not None: - pulumi.set(__self__, "relationship_status", relationship_status) + _setter("relationship_status", relationship_status) if updated_at is not None: - pulumi.set(__self__, "updated_at", updated_at) + _setter("updated_at", updated_at) @property @pulumi.getter(name="accountId") @@ -175,6 +215,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MemberAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/inspector2/organization_configuration.py b/sdk/python/pulumi_aws/inspector2/organization_configuration.py index ef83d13d004..c3c37a05139 100644 --- a/sdk/python/pulumi_aws/inspector2/organization_configuration.py +++ b/sdk/python/pulumi_aws/inspector2/organization_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -21,7 +21,22 @@ def __init__(__self__, *, The set of arguments for constructing a OrganizationConfiguration resource. :param pulumi.Input['OrganizationConfigurationAutoEnableArgs'] auto_enable: Configuration block for auto enabling. See below. """ - pulumi.set(__self__, "auto_enable", auto_enable) + OrganizationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[pulumi.Input['OrganizationConfigurationAutoEnableArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable is None: + raise TypeError("Missing 'auto_enable' argument") + + _setter("auto_enable", auto_enable) @property @pulumi.getter(name="autoEnable") @@ -46,10 +61,27 @@ def __init__(__self__, *, :param pulumi.Input['OrganizationConfigurationAutoEnableArgs'] auto_enable: Configuration block for auto enabling. See below. :param pulumi.Input[bool] max_account_limit_reached: Whether your configuration reached the max account limit. """ + _OrganizationConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + max_account_limit_reached=max_account_limit_reached, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[pulumi.Input['OrganizationConfigurationAutoEnableArgs']] = None, + max_account_limit_reached: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if max_account_limit_reached is None and 'maxAccountLimitReached' in kwargs: + max_account_limit_reached = kwargs['maxAccountLimitReached'] + if auto_enable is not None: - pulumi.set(__self__, "auto_enable", auto_enable) + _setter("auto_enable", auto_enable) if max_account_limit_reached is not None: - pulumi.set(__self__, "max_account_limit_reached", max_account_limit_reached) + _setter("max_account_limit_reached", max_account_limit_reached) @property @pulumi.getter(name="autoEnable") @@ -145,6 +177,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -160,6 +196,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = OrganizationConfigurationArgs.__new__(OrganizationConfigurationArgs) + auto_enable = _utilities.configure(auto_enable, OrganizationConfigurationAutoEnableArgs, True) if auto_enable is None and not opts.urn: raise TypeError("Missing required property 'auto_enable'") __props__.__dict__["auto_enable"] = auto_enable diff --git a/sdk/python/pulumi_aws/inspector2/outputs.py b/sdk/python/pulumi_aws/inspector2/outputs.py index 02d771610f3..4f80d0dc045 100644 --- a/sdk/python/pulumi_aws/inspector2/outputs.py +++ b/sdk/python/pulumi_aws/inspector2/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,10 +41,31 @@ def __init__(__self__, *, :param bool ecr: Whether Amazon ECR scans are automatically enabled for new members of your Amazon Inspector organization. :param bool lambda_: Whether Lambda Function scans are automatically enabled for new members of your Amazon Inspector organization. """ - pulumi.set(__self__, "ec2", ec2) - pulumi.set(__self__, "ecr", ecr) + OrganizationConfigurationAutoEnable._configure( + lambda key, value: pulumi.set(__self__, key, value), + ec2=ec2, + ecr=ecr, + lambda_=lambda_, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ec2: Optional[bool] = None, + ecr: Optional[bool] = None, + lambda_: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ec2 is None: + raise TypeError("Missing 'ec2' argument") + if ecr is None: + raise TypeError("Missing 'ecr' argument") + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + + _setter("ec2", ec2) + _setter("ecr", ecr) if lambda_ is not None: - pulumi.set(__self__, "lambda_", lambda_) + _setter("lambda_", lambda_) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/iot/_inputs.py b/sdk/python/pulumi_aws/iot/_inputs.py index af1fb74d465..c3b260400bf 100644 --- a/sdk/python/pulumi_aws/iot/_inputs.py +++ b/sdk/python/pulumi_aws/iot/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -83,11 +83,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['IndexingConfigurationThingGroupIndexingConfigurationCustomFieldArgs']]] custom_fields: A list of thing group fields to index. This list cannot contain any managed fields. See below. :param pulumi.Input[Sequence[pulumi.Input['IndexingConfigurationThingGroupIndexingConfigurationManagedFieldArgs']]] managed_fields: Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below. """ - pulumi.set(__self__, "thing_group_indexing_mode", thing_group_indexing_mode) + IndexingConfigurationThingGroupIndexingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + thing_group_indexing_mode=thing_group_indexing_mode, + custom_fields=custom_fields, + managed_fields=managed_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + thing_group_indexing_mode: Optional[pulumi.Input[str]] = None, + custom_fields: Optional[pulumi.Input[Sequence[pulumi.Input['IndexingConfigurationThingGroupIndexingConfigurationCustomFieldArgs']]]] = None, + managed_fields: Optional[pulumi.Input[Sequence[pulumi.Input['IndexingConfigurationThingGroupIndexingConfigurationManagedFieldArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if thing_group_indexing_mode is None and 'thingGroupIndexingMode' in kwargs: + thing_group_indexing_mode = kwargs['thingGroupIndexingMode'] + if thing_group_indexing_mode is None: + raise TypeError("Missing 'thing_group_indexing_mode' argument") + if custom_fields is None and 'customFields' in kwargs: + custom_fields = kwargs['customFields'] + if managed_fields is None and 'managedFields' in kwargs: + managed_fields = kwargs['managedFields'] + + _setter("thing_group_indexing_mode", thing_group_indexing_mode) if custom_fields is not None: - pulumi.set(__self__, "custom_fields", custom_fields) + _setter("custom_fields", custom_fields) if managed_fields is not None: - pulumi.set(__self__, "managed_fields", managed_fields) + _setter("managed_fields", managed_fields) @property @pulumi.getter(name="thingGroupIndexingMode") @@ -135,10 +158,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the field. :param pulumi.Input[str] type: The data type of the field. Valid values: `Number`, `String`, `Boolean`. """ + IndexingConfigurationThingGroupIndexingConfigurationCustomFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -174,10 +210,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the field. :param pulumi.Input[str] type: The data type of the field. Valid values: `Number`, `String`, `Boolean`. """ + IndexingConfigurationThingGroupIndexingConfigurationManagedFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -221,17 +270,52 @@ def __init__(__self__, *, :param pulumi.Input[str] named_shadow_indexing_mode: [Named shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) indexing mode. Valid values: `ON`, `OFF`. Default: `OFF`. :param pulumi.Input[str] thing_connectivity_indexing_mode: Thing connectivity indexing mode. Valid values: `STATUS`, `OFF`. Default: `OFF`. """ - pulumi.set(__self__, "thing_indexing_mode", thing_indexing_mode) + IndexingConfigurationThingIndexingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + thing_indexing_mode=thing_indexing_mode, + custom_fields=custom_fields, + device_defender_indexing_mode=device_defender_indexing_mode, + managed_fields=managed_fields, + named_shadow_indexing_mode=named_shadow_indexing_mode, + thing_connectivity_indexing_mode=thing_connectivity_indexing_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + thing_indexing_mode: Optional[pulumi.Input[str]] = None, + custom_fields: Optional[pulumi.Input[Sequence[pulumi.Input['IndexingConfigurationThingIndexingConfigurationCustomFieldArgs']]]] = None, + device_defender_indexing_mode: Optional[pulumi.Input[str]] = None, + managed_fields: Optional[pulumi.Input[Sequence[pulumi.Input['IndexingConfigurationThingIndexingConfigurationManagedFieldArgs']]]] = None, + named_shadow_indexing_mode: Optional[pulumi.Input[str]] = None, + thing_connectivity_indexing_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if thing_indexing_mode is None and 'thingIndexingMode' in kwargs: + thing_indexing_mode = kwargs['thingIndexingMode'] + if thing_indexing_mode is None: + raise TypeError("Missing 'thing_indexing_mode' argument") + if custom_fields is None and 'customFields' in kwargs: + custom_fields = kwargs['customFields'] + if device_defender_indexing_mode is None and 'deviceDefenderIndexingMode' in kwargs: + device_defender_indexing_mode = kwargs['deviceDefenderIndexingMode'] + if managed_fields is None and 'managedFields' in kwargs: + managed_fields = kwargs['managedFields'] + if named_shadow_indexing_mode is None and 'namedShadowIndexingMode' in kwargs: + named_shadow_indexing_mode = kwargs['namedShadowIndexingMode'] + if thing_connectivity_indexing_mode is None and 'thingConnectivityIndexingMode' in kwargs: + thing_connectivity_indexing_mode = kwargs['thingConnectivityIndexingMode'] + + _setter("thing_indexing_mode", thing_indexing_mode) if custom_fields is not None: - pulumi.set(__self__, "custom_fields", custom_fields) + _setter("custom_fields", custom_fields) if device_defender_indexing_mode is not None: - pulumi.set(__self__, "device_defender_indexing_mode", device_defender_indexing_mode) + _setter("device_defender_indexing_mode", device_defender_indexing_mode) if managed_fields is not None: - pulumi.set(__self__, "managed_fields", managed_fields) + _setter("managed_fields", managed_fields) if named_shadow_indexing_mode is not None: - pulumi.set(__self__, "named_shadow_indexing_mode", named_shadow_indexing_mode) + _setter("named_shadow_indexing_mode", named_shadow_indexing_mode) if thing_connectivity_indexing_mode is not None: - pulumi.set(__self__, "thing_connectivity_indexing_mode", thing_connectivity_indexing_mode) + _setter("thing_connectivity_indexing_mode", thing_connectivity_indexing_mode) @property @pulumi.getter(name="thingIndexingMode") @@ -315,10 +399,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the field. :param pulumi.Input[str] type: The data type of the field. Valid values: `Number`, `String`, `Boolean`. """ + IndexingConfigurationThingIndexingConfigurationCustomFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -354,10 +451,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the field. :param pulumi.Input[str] type: The data type of the field. Valid values: `Number`, `String`, `Boolean`. """ + IndexingConfigurationThingIndexingConfigurationManagedFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -393,9 +503,28 @@ def __init__(__self__, *, :param pulumi.Input[str] target_arn: The ARN of the target function. :param pulumi.Input[str] payload_version: The version of the payload that was sent to the target function. The only valid (and the default) payload version is `"2020-04-01"`. """ - pulumi.set(__self__, "target_arn", target_arn) + ProvisioningTemplatePreProvisioningHookArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_arn=target_arn, + payload_version=payload_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_arn: Optional[pulumi.Input[str]] = None, + payload_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + if payload_version is None and 'payloadVersion' in kwargs: + payload_version = kwargs['payloadVersion'] + + _setter("target_arn", target_arn) if payload_version is not None: - pulumi.set(__self__, "payload_version", payload_version) + _setter("payload_version", payload_version) @property @pulumi.getter(name="targetArn") @@ -431,12 +560,33 @@ def __init__(__self__, *, """ :param pulumi.Input[str] parent_group_name: The name of the parent Thing Group. """ + ThingGroupMetadataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_date=creation_date, + parent_group_name=parent_group_name, + root_to_parent_groups=root_to_parent_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_date: Optional[pulumi.Input[str]] = None, + parent_group_name: Optional[pulumi.Input[str]] = None, + root_to_parent_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ThingGroupMetadataRootToParentGroupArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if parent_group_name is None and 'parentGroupName' in kwargs: + parent_group_name = kwargs['parentGroupName'] + if root_to_parent_groups is None and 'rootToParentGroups' in kwargs: + root_to_parent_groups = kwargs['rootToParentGroups'] + if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if parent_group_name is not None: - pulumi.set(__self__, "parent_group_name", parent_group_name) + _setter("parent_group_name", parent_group_name) if root_to_parent_groups is not None: - pulumi.set(__self__, "root_to_parent_groups", root_to_parent_groups) + _setter("root_to_parent_groups", root_to_parent_groups) @property @pulumi.getter(name="creationDate") @@ -474,10 +624,27 @@ class ThingGroupMetadataRootToParentGroupArgs: def __init__(__self__, *, group_arn: Optional[pulumi.Input[str]] = None, group_name: Optional[pulumi.Input[str]] = None): + ThingGroupMetadataRootToParentGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_arn=group_arn, + group_name=group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_arn: Optional[pulumi.Input[str]] = None, + group_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_arn is None and 'groupArn' in kwargs: + group_arn = kwargs['groupArn'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_arn is not None: - pulumi.set(__self__, "group_arn", group_arn) + _setter("group_arn", group_arn) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) @property @pulumi.getter(name="groupArn") @@ -507,10 +674,25 @@ def __init__(__self__, *, :param pulumi.Input['ThingGroupPropertiesAttributePayloadArgs'] attribute_payload: The Thing Group attributes. Defined below. :param pulumi.Input[str] description: A description of the Thing Group. """ + ThingGroupPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_payload=attribute_payload, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_payload: Optional[pulumi.Input['ThingGroupPropertiesAttributePayloadArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_payload is None and 'attributePayload' in kwargs: + attribute_payload = kwargs['attributePayload'] + if attribute_payload is not None: - pulumi.set(__self__, "attribute_payload", attribute_payload) + _setter("attribute_payload", attribute_payload) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="attributePayload") @@ -544,8 +726,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] attributes: Key-value map. """ + ThingGroupPropertiesAttributePayloadArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) @property @pulumi.getter @@ -569,10 +762,25 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The description of the thing type. :param pulumi.Input[Sequence[pulumi.Input[str]]] searchable_attributes: A list of searchable thing attribute names. """ + ThingTypePropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + searchable_attributes=searchable_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + searchable_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if searchable_attributes is None and 'searchableAttributes' in kwargs: + searchable_attributes = kwargs['searchableAttributes'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if searchable_attributes is not None: - pulumi.set(__self__, "searchable_attributes", searchable_attributes) + _setter("searchable_attributes", searchable_attributes) @property @pulumi.getter @@ -612,10 +820,43 @@ def __init__(__self__, *, :param pulumi.Input[str] state_reason: The reason for the alarm change. :param pulumi.Input[str] state_value: The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA. """ - pulumi.set(__self__, "alarm_name", alarm_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "state_reason", state_reason) - pulumi.set(__self__, "state_value", state_value) + TopicRuleCloudwatchAlarmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_name=alarm_name, + role_arn=role_arn, + state_reason=state_reason, + state_value=state_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + state_reason: Optional[pulumi.Input[str]] = None, + state_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_name is None and 'alarmName' in kwargs: + alarm_name = kwargs['alarmName'] + if alarm_name is None: + raise TypeError("Missing 'alarm_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if state_reason is None and 'stateReason' in kwargs: + state_reason = kwargs['stateReason'] + if state_reason is None: + raise TypeError("Missing 'state_reason' argument") + if state_value is None and 'stateValue' in kwargs: + state_value = kwargs['stateValue'] + if state_value is None: + raise TypeError("Missing 'state_value' argument") + + _setter("alarm_name", alarm_name) + _setter("role_arn", role_arn) + _setter("state_reason", state_reason) + _setter("state_value", state_value) @property @pulumi.getter(name="alarmName") @@ -675,8 +916,29 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_name: The CloudWatch log group name. :param pulumi.Input[str] role_arn: The IAM role ARN that allows access to the CloudWatch alarm. """ - pulumi.set(__self__, "log_group_name", log_group_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleCloudwatchLogArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("log_group_name", log_group_name) + _setter("role_arn", role_arn) @property @pulumi.getter(name="logGroupName") @@ -720,13 +982,56 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The IAM role ARN that allows access to the CloudWatch metric. :param pulumi.Input[str] metric_timestamp: An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp). """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "metric_namespace", metric_namespace) - pulumi.set(__self__, "metric_unit", metric_unit) - pulumi.set(__self__, "metric_value", metric_value) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleCloudwatchMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + metric_namespace=metric_namespace, + metric_unit=metric_unit, + metric_value=metric_value, + role_arn=role_arn, + metric_timestamp=metric_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + metric_namespace: Optional[pulumi.Input[str]] = None, + metric_unit: Optional[pulumi.Input[str]] = None, + metric_value: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + metric_timestamp: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if metric_namespace is None and 'metricNamespace' in kwargs: + metric_namespace = kwargs['metricNamespace'] + if metric_namespace is None: + raise TypeError("Missing 'metric_namespace' argument") + if metric_unit is None and 'metricUnit' in kwargs: + metric_unit = kwargs['metricUnit'] + if metric_unit is None: + raise TypeError("Missing 'metric_unit' argument") + if metric_value is None and 'metricValue' in kwargs: + metric_value = kwargs['metricValue'] + if metric_value is None: + raise TypeError("Missing 'metric_value' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if metric_timestamp is None and 'metricTimestamp' in kwargs: + metric_timestamp = kwargs['metricTimestamp'] + + _setter("metric_name", metric_name) + _setter("metric_namespace", metric_namespace) + _setter("metric_unit", metric_unit) + _setter("metric_value", metric_value) + _setter("role_arn", role_arn) if metric_timestamp is not None: - pulumi.set(__self__, "metric_timestamp", metric_timestamp) + _setter("metric_timestamp", metric_timestamp) @property @pulumi.getter(name="metricName") @@ -814,11 +1119,42 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The ID of the VPC. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: The security groups of the VPC destination. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + TopicRuleDestinationVpcConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("role_arn", role_arn) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter(name="roleArn") @@ -894,22 +1230,77 @@ def __init__(__self__, *, :param pulumi.Input[str] range_key_type: The range key type. Valid values are "STRING" or "NUMBER". :param pulumi.Input[str] range_key_value: The range key value. """ - pulumi.set(__self__, "hash_key_field", hash_key_field) - pulumi.set(__self__, "hash_key_value", hash_key_value) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + TopicRuleDynamodbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hash_key_field=hash_key_field, + hash_key_value=hash_key_value, + role_arn=role_arn, + table_name=table_name, + hash_key_type=hash_key_type, + operation=operation, + payload_field=payload_field, + range_key_field=range_key_field, + range_key_type=range_key_type, + range_key_value=range_key_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hash_key_field: Optional[pulumi.Input[str]] = None, + hash_key_value: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + hash_key_type: Optional[pulumi.Input[str]] = None, + operation: Optional[pulumi.Input[str]] = None, + payload_field: Optional[pulumi.Input[str]] = None, + range_key_field: Optional[pulumi.Input[str]] = None, + range_key_type: Optional[pulumi.Input[str]] = None, + range_key_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hash_key_field is None and 'hashKeyField' in kwargs: + hash_key_field = kwargs['hashKeyField'] + if hash_key_field is None: + raise TypeError("Missing 'hash_key_field' argument") + if hash_key_value is None and 'hashKeyValue' in kwargs: + hash_key_value = kwargs['hashKeyValue'] + if hash_key_value is None: + raise TypeError("Missing 'hash_key_value' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if hash_key_type is None and 'hashKeyType' in kwargs: + hash_key_type = kwargs['hashKeyType'] + if payload_field is None and 'payloadField' in kwargs: + payload_field = kwargs['payloadField'] + if range_key_field is None and 'rangeKeyField' in kwargs: + range_key_field = kwargs['rangeKeyField'] + if range_key_type is None and 'rangeKeyType' in kwargs: + range_key_type = kwargs['rangeKeyType'] + if range_key_value is None and 'rangeKeyValue' in kwargs: + range_key_value = kwargs['rangeKeyValue'] + + _setter("hash_key_field", hash_key_field) + _setter("hash_key_value", hash_key_value) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if hash_key_type is not None: - pulumi.set(__self__, "hash_key_type", hash_key_type) + _setter("hash_key_type", hash_key_type) if operation is not None: - pulumi.set(__self__, "operation", operation) + _setter("operation", operation) if payload_field is not None: - pulumi.set(__self__, "payload_field", payload_field) + _setter("payload_field", payload_field) if range_key_field is not None: - pulumi.set(__self__, "range_key_field", range_key_field) + _setter("range_key_field", range_key_field) if range_key_type is not None: - pulumi.set(__self__, "range_key_type", range_key_type) + _setter("range_key_type", range_key_type) if range_key_value is not None: - pulumi.set(__self__, "range_key_value", range_key_value) + _setter("range_key_value", range_key_value) @property @pulumi.getter(name="hashKeyField") @@ -1041,9 +1432,28 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The IAM role ARN that allows access to the CloudWatch alarm. :param pulumi.Input['TopicRuleDynamodbv2PutItemArgs'] put_item: Configuration block with DynamoDB Table to which the message will be written. Nested arguments below. """ - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleDynamodbv2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + put_item=put_item, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + put_item: Optional[pulumi.Input['TopicRuleDynamodbv2PutItemArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if put_item is None and 'putItem' in kwargs: + put_item = kwargs['putItem'] + + _setter("role_arn", role_arn) if put_item is not None: - pulumi.set(__self__, "put_item", put_item) + _setter("put_item", put_item) @property @pulumi.getter(name="roleArn") @@ -1076,18 +1486,29 @@ def __init__(__self__, *, table_name: pulumi.Input[str]): """ :param pulumi.Input[str] table_name: The name of the DynamoDB table. - - The `dynamodbv2` object takes the following arguments: """ - pulumi.set(__self__, "table_name", table_name) + TopicRuleDynamodbv2PutItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("table_name", table_name) @property @pulumi.getter(name="tableName") def table_name(self) -> pulumi.Input[str]: """ The name of the DynamoDB table. - - The `dynamodbv2` object takes the following arguments: """ return pulumi.get(self, "table_name") @@ -1111,11 +1532,42 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The IAM role ARN that has access to Elasticsearch. :param pulumi.Input[str] type: The type of document you are storing. """ - pulumi.set(__self__, "endpoint", endpoint) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "index", index) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "type", type) + TopicRuleElasticsearchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + id=id, + index=index, + role_arn=role_arn, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + index: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if index is None: + raise TypeError("Missing 'index' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("endpoint", endpoint) + _setter("id", id) + _setter("index", index) + _setter("role_arn", role_arn) + _setter("type", type) @property @pulumi.getter @@ -1200,44 +1652,105 @@ def __init__(__self__, *, sqs: Optional[pulumi.Input['TopicRuleErrorActionSqsArgs']] = None, step_functions: Optional[pulumi.Input['TopicRuleErrorActionStepFunctionsArgs']] = None, timestream: Optional[pulumi.Input['TopicRuleErrorActionTimestreamArgs']] = None): + TopicRuleErrorActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_alarm=cloudwatch_alarm, + cloudwatch_logs=cloudwatch_logs, + cloudwatch_metric=cloudwatch_metric, + dynamodb=dynamodb, + dynamodbv2=dynamodbv2, + elasticsearch=elasticsearch, + firehose=firehose, + http=http, + iot_analytics=iot_analytics, + iot_events=iot_events, + kafka=kafka, + kinesis=kinesis, + lambda_=lambda_, + republish=republish, + s3=s3, + sns=sns, + sqs=sqs, + step_functions=step_functions, + timestream=timestream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_alarm: Optional[pulumi.Input['TopicRuleErrorActionCloudwatchAlarmArgs']] = None, + cloudwatch_logs: Optional[pulumi.Input['TopicRuleErrorActionCloudwatchLogsArgs']] = None, + cloudwatch_metric: Optional[pulumi.Input['TopicRuleErrorActionCloudwatchMetricArgs']] = None, + dynamodb: Optional[pulumi.Input['TopicRuleErrorActionDynamodbArgs']] = None, + dynamodbv2: Optional[pulumi.Input['TopicRuleErrorActionDynamodbv2Args']] = None, + elasticsearch: Optional[pulumi.Input['TopicRuleErrorActionElasticsearchArgs']] = None, + firehose: Optional[pulumi.Input['TopicRuleErrorActionFirehoseArgs']] = None, + http: Optional[pulumi.Input['TopicRuleErrorActionHttpArgs']] = None, + iot_analytics: Optional[pulumi.Input['TopicRuleErrorActionIotAnalyticsArgs']] = None, + iot_events: Optional[pulumi.Input['TopicRuleErrorActionIotEventsArgs']] = None, + kafka: Optional[pulumi.Input['TopicRuleErrorActionKafkaArgs']] = None, + kinesis: Optional[pulumi.Input['TopicRuleErrorActionKinesisArgs']] = None, + lambda_: Optional[pulumi.Input['TopicRuleErrorActionLambdaArgs']] = None, + republish: Optional[pulumi.Input['TopicRuleErrorActionRepublishArgs']] = None, + s3: Optional[pulumi.Input['TopicRuleErrorActionS3Args']] = None, + sns: Optional[pulumi.Input['TopicRuleErrorActionSnsArgs']] = None, + sqs: Optional[pulumi.Input['TopicRuleErrorActionSqsArgs']] = None, + step_functions: Optional[pulumi.Input['TopicRuleErrorActionStepFunctionsArgs']] = None, + timestream: Optional[pulumi.Input['TopicRuleErrorActionTimestreamArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_alarm is None and 'cloudwatchAlarm' in kwargs: + cloudwatch_alarm = kwargs['cloudwatchAlarm'] + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_metric is None and 'cloudwatchMetric' in kwargs: + cloudwatch_metric = kwargs['cloudwatchMetric'] + if iot_analytics is None and 'iotAnalytics' in kwargs: + iot_analytics = kwargs['iotAnalytics'] + if iot_events is None and 'iotEvents' in kwargs: + iot_events = kwargs['iotEvents'] + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + if step_functions is None and 'stepFunctions' in kwargs: + step_functions = kwargs['stepFunctions'] + if cloudwatch_alarm is not None: - pulumi.set(__self__, "cloudwatch_alarm", cloudwatch_alarm) + _setter("cloudwatch_alarm", cloudwatch_alarm) if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if cloudwatch_metric is not None: - pulumi.set(__self__, "cloudwatch_metric", cloudwatch_metric) + _setter("cloudwatch_metric", cloudwatch_metric) if dynamodb is not None: - pulumi.set(__self__, "dynamodb", dynamodb) + _setter("dynamodb", dynamodb) if dynamodbv2 is not None: - pulumi.set(__self__, "dynamodbv2", dynamodbv2) + _setter("dynamodbv2", dynamodbv2) if elasticsearch is not None: - pulumi.set(__self__, "elasticsearch", elasticsearch) + _setter("elasticsearch", elasticsearch) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if http is not None: - pulumi.set(__self__, "http", http) + _setter("http", http) if iot_analytics is not None: - pulumi.set(__self__, "iot_analytics", iot_analytics) + _setter("iot_analytics", iot_analytics) if iot_events is not None: - pulumi.set(__self__, "iot_events", iot_events) + _setter("iot_events", iot_events) if kafka is not None: - pulumi.set(__self__, "kafka", kafka) + _setter("kafka", kafka) if kinesis is not None: - pulumi.set(__self__, "kinesis", kinesis) + _setter("kinesis", kinesis) if lambda_ is not None: - pulumi.set(__self__, "lambda_", lambda_) + _setter("lambda_", lambda_) if republish is not None: - pulumi.set(__self__, "republish", republish) + _setter("republish", republish) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if sns is not None: - pulumi.set(__self__, "sns", sns) + _setter("sns", sns) if sqs is not None: - pulumi.set(__self__, "sqs", sqs) + _setter("sqs", sqs) if step_functions is not None: - pulumi.set(__self__, "step_functions", step_functions) + _setter("step_functions", step_functions) if timestream is not None: - pulumi.set(__self__, "timestream", timestream) + _setter("timestream", timestream) @property @pulumi.getter(name="cloudwatchAlarm") @@ -1424,10 +1937,43 @@ def __init__(__self__, *, :param pulumi.Input[str] state_reason: The reason for the alarm change. :param pulumi.Input[str] state_value: The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA. """ - pulumi.set(__self__, "alarm_name", alarm_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "state_reason", state_reason) - pulumi.set(__self__, "state_value", state_value) + TopicRuleErrorActionCloudwatchAlarmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_name=alarm_name, + role_arn=role_arn, + state_reason=state_reason, + state_value=state_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + state_reason: Optional[pulumi.Input[str]] = None, + state_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_name is None and 'alarmName' in kwargs: + alarm_name = kwargs['alarmName'] + if alarm_name is None: + raise TypeError("Missing 'alarm_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if state_reason is None and 'stateReason' in kwargs: + state_reason = kwargs['stateReason'] + if state_reason is None: + raise TypeError("Missing 'state_reason' argument") + if state_value is None and 'stateValue' in kwargs: + state_value = kwargs['stateValue'] + if state_value is None: + raise TypeError("Missing 'state_value' argument") + + _setter("alarm_name", alarm_name) + _setter("role_arn", role_arn) + _setter("state_reason", state_reason) + _setter("state_value", state_value) @property @pulumi.getter(name="alarmName") @@ -1487,8 +2033,29 @@ def __init__(__self__, *, :param pulumi.Input[str] log_group_name: The CloudWatch log group name. :param pulumi.Input[str] role_arn: The IAM role ARN that allows access to the CloudWatch alarm. """ - pulumi.set(__self__, "log_group_name", log_group_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionCloudwatchLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("log_group_name", log_group_name) + _setter("role_arn", role_arn) @property @pulumi.getter(name="logGroupName") @@ -1532,13 +2099,56 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The IAM role ARN that allows access to the CloudWatch metric. :param pulumi.Input[str] metric_timestamp: An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp). """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "metric_namespace", metric_namespace) - pulumi.set(__self__, "metric_unit", metric_unit) - pulumi.set(__self__, "metric_value", metric_value) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionCloudwatchMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + metric_namespace=metric_namespace, + metric_unit=metric_unit, + metric_value=metric_value, + role_arn=role_arn, + metric_timestamp=metric_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + metric_namespace: Optional[pulumi.Input[str]] = None, + metric_unit: Optional[pulumi.Input[str]] = None, + metric_value: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + metric_timestamp: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if metric_namespace is None and 'metricNamespace' in kwargs: + metric_namespace = kwargs['metricNamespace'] + if metric_namespace is None: + raise TypeError("Missing 'metric_namespace' argument") + if metric_unit is None and 'metricUnit' in kwargs: + metric_unit = kwargs['metricUnit'] + if metric_unit is None: + raise TypeError("Missing 'metric_unit' argument") + if metric_value is None and 'metricValue' in kwargs: + metric_value = kwargs['metricValue'] + if metric_value is None: + raise TypeError("Missing 'metric_value' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if metric_timestamp is None and 'metricTimestamp' in kwargs: + metric_timestamp = kwargs['metricTimestamp'] + + _setter("metric_name", metric_name) + _setter("metric_namespace", metric_namespace) + _setter("metric_unit", metric_unit) + _setter("metric_value", metric_value) + _setter("role_arn", role_arn) if metric_timestamp is not None: - pulumi.set(__self__, "metric_timestamp", metric_timestamp) + _setter("metric_timestamp", metric_timestamp) @property @pulumi.getter(name="metricName") @@ -1638,22 +2248,77 @@ def __init__(__self__, *, :param pulumi.Input[str] range_key_type: The range key type. Valid values are "STRING" or "NUMBER". :param pulumi.Input[str] range_key_value: The range key value. """ - pulumi.set(__self__, "hash_key_field", hash_key_field) - pulumi.set(__self__, "hash_key_value", hash_key_value) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + TopicRuleErrorActionDynamodbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hash_key_field=hash_key_field, + hash_key_value=hash_key_value, + role_arn=role_arn, + table_name=table_name, + hash_key_type=hash_key_type, + operation=operation, + payload_field=payload_field, + range_key_field=range_key_field, + range_key_type=range_key_type, + range_key_value=range_key_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hash_key_field: Optional[pulumi.Input[str]] = None, + hash_key_value: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + hash_key_type: Optional[pulumi.Input[str]] = None, + operation: Optional[pulumi.Input[str]] = None, + payload_field: Optional[pulumi.Input[str]] = None, + range_key_field: Optional[pulumi.Input[str]] = None, + range_key_type: Optional[pulumi.Input[str]] = None, + range_key_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hash_key_field is None and 'hashKeyField' in kwargs: + hash_key_field = kwargs['hashKeyField'] + if hash_key_field is None: + raise TypeError("Missing 'hash_key_field' argument") + if hash_key_value is None and 'hashKeyValue' in kwargs: + hash_key_value = kwargs['hashKeyValue'] + if hash_key_value is None: + raise TypeError("Missing 'hash_key_value' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if hash_key_type is None and 'hashKeyType' in kwargs: + hash_key_type = kwargs['hashKeyType'] + if payload_field is None and 'payloadField' in kwargs: + payload_field = kwargs['payloadField'] + if range_key_field is None and 'rangeKeyField' in kwargs: + range_key_field = kwargs['rangeKeyField'] + if range_key_type is None and 'rangeKeyType' in kwargs: + range_key_type = kwargs['rangeKeyType'] + if range_key_value is None and 'rangeKeyValue' in kwargs: + range_key_value = kwargs['rangeKeyValue'] + + _setter("hash_key_field", hash_key_field) + _setter("hash_key_value", hash_key_value) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if hash_key_type is not None: - pulumi.set(__self__, "hash_key_type", hash_key_type) + _setter("hash_key_type", hash_key_type) if operation is not None: - pulumi.set(__self__, "operation", operation) + _setter("operation", operation) if payload_field is not None: - pulumi.set(__self__, "payload_field", payload_field) + _setter("payload_field", payload_field) if range_key_field is not None: - pulumi.set(__self__, "range_key_field", range_key_field) + _setter("range_key_field", range_key_field) if range_key_type is not None: - pulumi.set(__self__, "range_key_type", range_key_type) + _setter("range_key_type", range_key_type) if range_key_value is not None: - pulumi.set(__self__, "range_key_value", range_key_value) + _setter("range_key_value", range_key_value) @property @pulumi.getter(name="hashKeyField") @@ -1785,9 +2450,28 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The IAM role ARN that allows access to the CloudWatch alarm. :param pulumi.Input['TopicRuleErrorActionDynamodbv2PutItemArgs'] put_item: Configuration block with DynamoDB Table to which the message will be written. Nested arguments below. """ - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionDynamodbv2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + put_item=put_item, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + put_item: Optional[pulumi.Input['TopicRuleErrorActionDynamodbv2PutItemArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if put_item is None and 'putItem' in kwargs: + put_item = kwargs['putItem'] + + _setter("role_arn", role_arn) if put_item is not None: - pulumi.set(__self__, "put_item", put_item) + _setter("put_item", put_item) @property @pulumi.getter(name="roleArn") @@ -1820,18 +2504,29 @@ def __init__(__self__, *, table_name: pulumi.Input[str]): """ :param pulumi.Input[str] table_name: The name of the DynamoDB table. - - The `dynamodbv2` object takes the following arguments: """ - pulumi.set(__self__, "table_name", table_name) + TopicRuleErrorActionDynamodbv2PutItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("table_name", table_name) @property @pulumi.getter(name="tableName") def table_name(self) -> pulumi.Input[str]: """ The name of the DynamoDB table. - - The `dynamodbv2` object takes the following arguments: """ return pulumi.get(self, "table_name") @@ -1855,11 +2550,42 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The IAM role ARN that has access to Elasticsearch. :param pulumi.Input[str] type: The type of document you are storing. """ - pulumi.set(__self__, "endpoint", endpoint) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "index", index) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "type", type) + TopicRuleErrorActionElasticsearchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + id=id, + index=index, + role_arn=role_arn, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + index: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if index is None: + raise TypeError("Missing 'index' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("endpoint", endpoint) + _setter("id", id) + _setter("index", index) + _setter("role_arn", role_arn) + _setter("type", type) @property @pulumi.getter @@ -1935,12 +2661,39 @@ def __init__(__self__, *, :param pulumi.Input[bool] batch_mode: The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call. :param pulumi.Input[str] separator: A character separator that is used to separate records written to the Firehose stream. Valid values are: '\\n' (newline), '\\t' (tab), '\\r\\n' (Windows newline), ',' (comma). """ - pulumi.set(__self__, "delivery_stream_name", delivery_stream_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionFirehoseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream_name=delivery_stream_name, + role_arn=role_arn, + batch_mode=batch_mode, + separator=separator, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + batch_mode: Optional[pulumi.Input[bool]] = None, + separator: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream_name is None and 'deliveryStreamName' in kwargs: + delivery_stream_name = kwargs['deliveryStreamName'] + if delivery_stream_name is None: + raise TypeError("Missing 'delivery_stream_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + + _setter("delivery_stream_name", delivery_stream_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) if separator is not None: - pulumi.set(__self__, "separator", separator) + _setter("separator", separator) @property @pulumi.getter(name="deliveryStreamName") @@ -2002,11 +2755,32 @@ def __init__(__self__, *, :param pulumi.Input[str] confirmation_url: The HTTPS URL used to verify ownership of `url`. :param pulumi.Input[Sequence[pulumi.Input['TopicRuleErrorActionHttpHttpHeaderArgs']]] http_headers: Custom HTTP header IoT Core should send. It is possible to define more than one custom header. """ - pulumi.set(__self__, "url", url) + TopicRuleErrorActionHttpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + url=url, + confirmation_url=confirmation_url, + http_headers=http_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + url: Optional[pulumi.Input[str]] = None, + confirmation_url: Optional[pulumi.Input[str]] = None, + http_headers: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleErrorActionHttpHttpHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if url is None: + raise TypeError("Missing 'url' argument") + if confirmation_url is None and 'confirmationUrl' in kwargs: + confirmation_url = kwargs['confirmationUrl'] + if http_headers is None and 'httpHeaders' in kwargs: + http_headers = kwargs['httpHeaders'] + + _setter("url", url) if confirmation_url is not None: - pulumi.set(__self__, "confirmation_url", confirmation_url) + _setter("confirmation_url", confirmation_url) if http_headers is not None: - pulumi.set(__self__, "http_headers", http_headers) + _setter("http_headers", http_headers) @property @pulumi.getter @@ -2054,8 +2828,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The name of the HTTP header. :param pulumi.Input[str] value: The value of the HTTP header. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + TopicRuleErrorActionHttpHttpHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -2093,10 +2884,35 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the IAM role that grants access. :param pulumi.Input[bool] batch_mode: The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call. """ - pulumi.set(__self__, "channel_name", channel_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionIotAnalyticsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_name=channel_name, + role_arn=role_arn, + batch_mode=batch_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + batch_mode: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_name is None and 'channelName' in kwargs: + channel_name = kwargs['channelName'] + if channel_name is None: + raise TypeError("Missing 'channel_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + + _setter("channel_name", channel_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) @property @pulumi.getter(name="channelName") @@ -2148,12 +2964,41 @@ def __init__(__self__, *, :param pulumi.Input[bool] batch_mode: The payload that contains a JSON array of records will be sent to IoT Events via a batch call. :param pulumi.Input[str] message_id: Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector. """ - pulumi.set(__self__, "input_name", input_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionIotEventsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_name=input_name, + role_arn=role_arn, + batch_mode=batch_mode, + message_id=message_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + batch_mode: Optional[pulumi.Input[bool]] = None, + message_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_name is None and 'inputName' in kwargs: + input_name = kwargs['inputName'] + if input_name is None: + raise TypeError("Missing 'input_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + if message_id is None and 'messageId' in kwargs: + message_id = kwargs['messageId'] + + _setter("input_name", input_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) if message_id is not None: - pulumi.set(__self__, "message_id", message_id) + _setter("message_id", message_id) @property @pulumi.getter(name="inputName") @@ -2219,13 +3064,42 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The Kafka message key. :param pulumi.Input[str] partition: The Kafka message partition. """ - pulumi.set(__self__, "client_properties", client_properties) - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "topic", topic) + TopicRuleErrorActionKafkaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_properties=client_properties, + destination_arn=destination_arn, + topic=topic, + key=key, + partition=partition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + destination_arn: Optional[pulumi.Input[str]] = None, + topic: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + partition: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_properties is None and 'clientProperties' in kwargs: + client_properties = kwargs['clientProperties'] + if client_properties is None: + raise TypeError("Missing 'client_properties' argument") + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + + _setter("client_properties", client_properties) + _setter("destination_arn", destination_arn) + _setter("topic", topic) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if partition is not None: - pulumi.set(__self__, "partition", partition) + _setter("partition", partition) @property @pulumi.getter(name="clientProperties") @@ -2299,10 +3173,35 @@ def __init__(__self__, *, :param pulumi.Input[str] stream_name: The name of the Amazon Kinesis stream. :param pulumi.Input[str] partition_key: The partition key. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_name", stream_name) + TopicRuleErrorActionKinesisArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + stream_name=stream_name, + partition_key=partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + stream_name: Optional[pulumi.Input[str]] = None, + partition_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if stream_name is None: + raise TypeError("Missing 'stream_name' argument") + if partition_key is None and 'partitionKey' in kwargs: + partition_key = kwargs['partitionKey'] + + _setter("role_arn", role_arn) + _setter("stream_name", stream_name) if partition_key is not None: - pulumi.set(__self__, "partition_key", partition_key) + _setter("partition_key", partition_key) @property @pulumi.getter(name="roleArn") @@ -2348,7 +3247,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] function_arn: The ARN of the Lambda function. """ - pulumi.set(__self__, "function_arn", function_arn) + TopicRuleErrorActionLambdaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("function_arn", function_arn) @property @pulumi.getter(name="functionArn") @@ -2376,10 +3290,31 @@ def __init__(__self__, *, The `s3` object takes the following arguments: """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "topic", topic) + TopicRuleErrorActionRepublishArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + topic=topic, + qos=qos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + topic: Optional[pulumi.Input[str]] = None, + qos: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + + _setter("role_arn", role_arn) + _setter("topic", topic) if qos is not None: - pulumi.set(__self__, "qos", qos) + _setter("qos", qos) @property @pulumi.getter(name="roleArn") @@ -2433,11 +3368,40 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The IAM role ARN that allows access to the CloudWatch alarm. :param pulumi.Input[str] canned_acl: The Amazon S3 canned ACL that controls access to the object identified by the object key. [Valid values](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + key=key, + role_arn=role_arn, + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + canned_acl: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + + _setter("bucket_name", bucket_name) + _setter("key", key) + _setter("role_arn", role_arn) if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="bucketName") @@ -2499,10 +3463,35 @@ def __init__(__self__, *, :param pulumi.Input[str] target_arn: The ARN of the SNS topic. :param pulumi.Input[str] message_format: The message format of the message to publish. Accepted values are "JSON" and "RAW". """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "target_arn", target_arn) + TopicRuleErrorActionSnsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + target_arn=target_arn, + message_format=message_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + message_format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + + _setter("role_arn", role_arn) + _setter("target_arn", target_arn) if message_format is not None: - pulumi.set(__self__, "message_format", message_format) + _setter("message_format", message_format) @property @pulumi.getter(name="roleArn") @@ -2552,9 +3541,36 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the IAM role that grants access. :param pulumi.Input[bool] use_base64: Specifies whether to use Base64 encoding. """ - pulumi.set(__self__, "queue_url", queue_url) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "use_base64", use_base64) + TopicRuleErrorActionSqsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + queue_url=queue_url, + role_arn=role_arn, + use_base64=use_base64, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + queue_url: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + use_base64: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if queue_url is None: + raise TypeError("Missing 'queue_url' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if use_base64 is None and 'useBase64' in kwargs: + use_base64 = kwargs['useBase64'] + if use_base64 is None: + raise TypeError("Missing 'use_base64' argument") + + _setter("queue_url", queue_url) + _setter("role_arn", role_arn) + _setter("use_base64", use_base64) @property @pulumi.getter(name="queueUrl") @@ -2604,10 +3620,35 @@ def __init__(__self__, *, :param pulumi.Input[str] state_machine_name: The name of the Step Functions state machine whose execution will be started. :param pulumi.Input[str] execution_name_prefix: The prefix used to generate, along with a UUID, the unique state machine execution name. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "state_machine_name", state_machine_name) + TopicRuleErrorActionStepFunctionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + state_machine_name=state_machine_name, + execution_name_prefix=execution_name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + state_machine_name: Optional[pulumi.Input[str]] = None, + execution_name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if state_machine_name is None and 'stateMachineName' in kwargs: + state_machine_name = kwargs['stateMachineName'] + if state_machine_name is None: + raise TypeError("Missing 'state_machine_name' argument") + if execution_name_prefix is None and 'executionNamePrefix' in kwargs: + execution_name_prefix = kwargs['executionNamePrefix'] + + _setter("role_arn", role_arn) + _setter("state_machine_name", state_machine_name) if execution_name_prefix is not None: - pulumi.set(__self__, "execution_name_prefix", execution_name_prefix) + _setter("execution_name_prefix", execution_name_prefix) @property @pulumi.getter(name="roleArn") @@ -2661,12 +3702,45 @@ def __init__(__self__, *, :param pulumi.Input[str] table_name: The name of the database table into which to write the measure records. :param pulumi.Input['TopicRuleErrorActionTimestreamTimestampArgs'] timestamp: Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "dimensions", dimensions) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + TopicRuleErrorActionTimestreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + dimensions=dimensions, + role_arn=role_arn, + table_name=table_name, + timestamp=timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleErrorActionTimestreamDimensionArgs']]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + timestamp: Optional[pulumi.Input['TopicRuleErrorActionTimestreamTimestampArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("database_name", database_name) + _setter("dimensions", dimensions) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if timestamp is not None: - pulumi.set(__self__, "timestamp", timestamp) + _setter("timestamp", timestamp) @property @pulumi.getter(name="databaseName") @@ -2738,8 +3812,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the rule. :param pulumi.Input[str] value: The value of the HTTP header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + TopicRuleErrorActionTimestreamDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2775,8 +3866,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: The precision of the timestamp value that results from the expression described in value. Valid values: `SECONDS`, `MILLISECONDS`, `MICROSECONDS`, `NANOSECONDS`. :param pulumi.Input[str] value: The value of the HTTP header. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + TopicRuleErrorActionTimestreamTimestampArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2816,12 +3924,39 @@ def __init__(__self__, *, :param pulumi.Input[bool] batch_mode: The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call. :param pulumi.Input[str] separator: A character separator that is used to separate records written to the Firehose stream. Valid values are: '\\n' (newline), '\\t' (tab), '\\r\\n' (Windows newline), ',' (comma). """ - pulumi.set(__self__, "delivery_stream_name", delivery_stream_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleFirehoseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream_name=delivery_stream_name, + role_arn=role_arn, + batch_mode=batch_mode, + separator=separator, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + batch_mode: Optional[pulumi.Input[bool]] = None, + separator: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream_name is None and 'deliveryStreamName' in kwargs: + delivery_stream_name = kwargs['deliveryStreamName'] + if delivery_stream_name is None: + raise TypeError("Missing 'delivery_stream_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + + _setter("delivery_stream_name", delivery_stream_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) if separator is not None: - pulumi.set(__self__, "separator", separator) + _setter("separator", separator) @property @pulumi.getter(name="deliveryStreamName") @@ -2883,11 +4018,32 @@ def __init__(__self__, *, :param pulumi.Input[str] confirmation_url: The HTTPS URL used to verify ownership of `url`. :param pulumi.Input[Sequence[pulumi.Input['TopicRuleHttpHttpHeaderArgs']]] http_headers: Custom HTTP header IoT Core should send. It is possible to define more than one custom header. """ - pulumi.set(__self__, "url", url) + TopicRuleHttpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + url=url, + confirmation_url=confirmation_url, + http_headers=http_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + url: Optional[pulumi.Input[str]] = None, + confirmation_url: Optional[pulumi.Input[str]] = None, + http_headers: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleHttpHttpHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if url is None: + raise TypeError("Missing 'url' argument") + if confirmation_url is None and 'confirmationUrl' in kwargs: + confirmation_url = kwargs['confirmationUrl'] + if http_headers is None and 'httpHeaders' in kwargs: + http_headers = kwargs['httpHeaders'] + + _setter("url", url) if confirmation_url is not None: - pulumi.set(__self__, "confirmation_url", confirmation_url) + _setter("confirmation_url", confirmation_url) if http_headers is not None: - pulumi.set(__self__, "http_headers", http_headers) + _setter("http_headers", http_headers) @property @pulumi.getter @@ -2935,8 +4091,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The name of the HTTP header. :param pulumi.Input[str] value: The value of the HTTP header. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + TopicRuleHttpHttpHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -2974,10 +4147,35 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the IAM role that grants access. :param pulumi.Input[bool] batch_mode: The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call. """ - pulumi.set(__self__, "channel_name", channel_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleIotAnalyticArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_name=channel_name, + role_arn=role_arn, + batch_mode=batch_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + batch_mode: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_name is None and 'channelName' in kwargs: + channel_name = kwargs['channelName'] + if channel_name is None: + raise TypeError("Missing 'channel_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + + _setter("channel_name", channel_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) @property @pulumi.getter(name="channelName") @@ -3029,12 +4227,41 @@ def __init__(__self__, *, :param pulumi.Input[bool] batch_mode: The payload that contains a JSON array of records will be sent to IoT Events via a batch call. :param pulumi.Input[str] message_id: Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector. """ - pulumi.set(__self__, "input_name", input_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleIotEventArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_name=input_name, + role_arn=role_arn, + batch_mode=batch_mode, + message_id=message_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + batch_mode: Optional[pulumi.Input[bool]] = None, + message_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_name is None and 'inputName' in kwargs: + input_name = kwargs['inputName'] + if input_name is None: + raise TypeError("Missing 'input_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + if message_id is None and 'messageId' in kwargs: + message_id = kwargs['messageId'] + + _setter("input_name", input_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) if message_id is not None: - pulumi.set(__self__, "message_id", message_id) + _setter("message_id", message_id) @property @pulumi.getter(name="inputName") @@ -3100,13 +4327,42 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The Kafka message key. :param pulumi.Input[str] partition: The Kafka message partition. """ - pulumi.set(__self__, "client_properties", client_properties) - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "topic", topic) + TopicRuleKafkaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_properties=client_properties, + destination_arn=destination_arn, + topic=topic, + key=key, + partition=partition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + destination_arn: Optional[pulumi.Input[str]] = None, + topic: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + partition: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_properties is None and 'clientProperties' in kwargs: + client_properties = kwargs['clientProperties'] + if client_properties is None: + raise TypeError("Missing 'client_properties' argument") + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + + _setter("client_properties", client_properties) + _setter("destination_arn", destination_arn) + _setter("topic", topic) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if partition is not None: - pulumi.set(__self__, "partition", partition) + _setter("partition", partition) @property @pulumi.getter(name="clientProperties") @@ -3180,10 +4436,35 @@ def __init__(__self__, *, :param pulumi.Input[str] stream_name: The name of the Amazon Kinesis stream. :param pulumi.Input[str] partition_key: The partition key. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_name", stream_name) + TopicRuleKinesisArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + stream_name=stream_name, + partition_key=partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + stream_name: Optional[pulumi.Input[str]] = None, + partition_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if stream_name is None: + raise TypeError("Missing 'stream_name' argument") + if partition_key is None and 'partitionKey' in kwargs: + partition_key = kwargs['partitionKey'] + + _setter("role_arn", role_arn) + _setter("stream_name", stream_name) if partition_key is not None: - pulumi.set(__self__, "partition_key", partition_key) + _setter("partition_key", partition_key) @property @pulumi.getter(name="roleArn") @@ -3229,7 +4510,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] function_arn: The ARN of the Lambda function. """ - pulumi.set(__self__, "function_arn", function_arn) + TopicRuleLambdaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("function_arn", function_arn) @property @pulumi.getter(name="functionArn") @@ -3257,10 +4553,31 @@ def __init__(__self__, *, The `s3` object takes the following arguments: """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "topic", topic) + TopicRuleRepublishArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + topic=topic, + qos=qos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + topic: Optional[pulumi.Input[str]] = None, + qos: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + + _setter("role_arn", role_arn) + _setter("topic", topic) if qos is not None: - pulumi.set(__self__, "qos", qos) + _setter("qos", qos) @property @pulumi.getter(name="roleArn") @@ -3314,11 +4631,40 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The IAM role ARN that allows access to the CloudWatch alarm. :param pulumi.Input[str] canned_acl: The Amazon S3 canned ACL that controls access to the object identified by the object key. [Valid values](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + key=key, + role_arn=role_arn, + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + canned_acl: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + + _setter("bucket_name", bucket_name) + _setter("key", key) + _setter("role_arn", role_arn) if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="bucketName") @@ -3380,10 +4726,35 @@ def __init__(__self__, *, :param pulumi.Input[str] target_arn: The ARN of the SNS topic. :param pulumi.Input[str] message_format: The message format of the message to publish. Accepted values are "JSON" and "RAW". """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "target_arn", target_arn) + TopicRuleSnsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + target_arn=target_arn, + message_format=message_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + message_format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + + _setter("role_arn", role_arn) + _setter("target_arn", target_arn) if message_format is not None: - pulumi.set(__self__, "message_format", message_format) + _setter("message_format", message_format) @property @pulumi.getter(name="roleArn") @@ -3433,9 +4804,36 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the IAM role that grants access. :param pulumi.Input[bool] use_base64: Specifies whether to use Base64 encoding. """ - pulumi.set(__self__, "queue_url", queue_url) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "use_base64", use_base64) + TopicRuleSqsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + queue_url=queue_url, + role_arn=role_arn, + use_base64=use_base64, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + queue_url: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + use_base64: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if queue_url is None: + raise TypeError("Missing 'queue_url' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if use_base64 is None and 'useBase64' in kwargs: + use_base64 = kwargs['useBase64'] + if use_base64 is None: + raise TypeError("Missing 'use_base64' argument") + + _setter("queue_url", queue_url) + _setter("role_arn", role_arn) + _setter("use_base64", use_base64) @property @pulumi.getter(name="queueUrl") @@ -3485,10 +4883,35 @@ def __init__(__self__, *, :param pulumi.Input[str] state_machine_name: The name of the Step Functions state machine whose execution will be started. :param pulumi.Input[str] execution_name_prefix: The prefix used to generate, along with a UUID, the unique state machine execution name. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "state_machine_name", state_machine_name) + TopicRuleStepFunctionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + state_machine_name=state_machine_name, + execution_name_prefix=execution_name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + state_machine_name: Optional[pulumi.Input[str]] = None, + execution_name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if state_machine_name is None and 'stateMachineName' in kwargs: + state_machine_name = kwargs['stateMachineName'] + if state_machine_name is None: + raise TypeError("Missing 'state_machine_name' argument") + if execution_name_prefix is None and 'executionNamePrefix' in kwargs: + execution_name_prefix = kwargs['executionNamePrefix'] + + _setter("role_arn", role_arn) + _setter("state_machine_name", state_machine_name) if execution_name_prefix is not None: - pulumi.set(__self__, "execution_name_prefix", execution_name_prefix) + _setter("execution_name_prefix", execution_name_prefix) @property @pulumi.getter(name="roleArn") @@ -3542,12 +4965,45 @@ def __init__(__self__, *, :param pulumi.Input[str] table_name: The name of the database table into which to write the measure records. :param pulumi.Input['TopicRuleTimestreamTimestampArgs'] timestamp: Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "dimensions", dimensions) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + TopicRuleTimestreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + dimensions=dimensions, + role_arn=role_arn, + table_name=table_name, + timestamp=timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleTimestreamDimensionArgs']]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + timestamp: Optional[pulumi.Input['TopicRuleTimestreamTimestampArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("database_name", database_name) + _setter("dimensions", dimensions) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if timestamp is not None: - pulumi.set(__self__, "timestamp", timestamp) + _setter("timestamp", timestamp) @property @pulumi.getter(name="databaseName") @@ -3619,8 +5075,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the rule. :param pulumi.Input[str] value: The value of the HTTP header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + TopicRuleTimestreamDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3656,8 +5129,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: The precision of the timestamp value that results from the expression described in value. Valid values: `SECONDS`, `MILLISECONDS`, `MICROSECONDS`, `NANOSECONDS`. :param pulumi.Input[str] value: The value of the HTTP header. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + TopicRuleTimestreamTimestampArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/iot/authorizer.py b/sdk/python/pulumi_aws/iot/authorizer.py index 45157c8da18..075b330049f 100644 --- a/sdk/python/pulumi_aws/iot/authorizer.py +++ b/sdk/python/pulumi_aws/iot/authorizer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AuthorizerArgs', 'Authorizer'] @@ -31,19 +31,54 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key_name: The name of the token key used to extract the token from the HTTP headers. This value is required if signing is enabled in your authorizer. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] token_signing_public_keys: The public keys used to verify the digital signature returned by your custom authentication service. This value is required if signing is enabled in your authorizer. """ - pulumi.set(__self__, "authorizer_function_arn", authorizer_function_arn) + AuthorizerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorizer_function_arn=authorizer_function_arn, + enable_caching_for_http=enable_caching_for_http, + name=name, + signing_disabled=signing_disabled, + status=status, + token_key_name=token_key_name, + token_signing_public_keys=token_signing_public_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorizer_function_arn: Optional[pulumi.Input[str]] = None, + enable_caching_for_http: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + signing_disabled: Optional[pulumi.Input[bool]] = None, + status: Optional[pulumi.Input[str]] = None, + token_key_name: Optional[pulumi.Input[str]] = None, + token_signing_public_keys: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorizer_function_arn is None and 'authorizerFunctionArn' in kwargs: + authorizer_function_arn = kwargs['authorizerFunctionArn'] + if authorizer_function_arn is None: + raise TypeError("Missing 'authorizer_function_arn' argument") + if enable_caching_for_http is None and 'enableCachingForHttp' in kwargs: + enable_caching_for_http = kwargs['enableCachingForHttp'] + if signing_disabled is None and 'signingDisabled' in kwargs: + signing_disabled = kwargs['signingDisabled'] + if token_key_name is None and 'tokenKeyName' in kwargs: + token_key_name = kwargs['tokenKeyName'] + if token_signing_public_keys is None and 'tokenSigningPublicKeys' in kwargs: + token_signing_public_keys = kwargs['tokenSigningPublicKeys'] + + _setter("authorizer_function_arn", authorizer_function_arn) if enable_caching_for_http is not None: - pulumi.set(__self__, "enable_caching_for_http", enable_caching_for_http) + _setter("enable_caching_for_http", enable_caching_for_http) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if signing_disabled is not None: - pulumi.set(__self__, "signing_disabled", signing_disabled) + _setter("signing_disabled", signing_disabled) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if token_key_name is not None: - pulumi.set(__self__, "token_key_name", token_key_name) + _setter("token_key_name", token_key_name) if token_signing_public_keys is not None: - pulumi.set(__self__, "token_signing_public_keys", token_signing_public_keys) + _setter("token_signing_public_keys", token_signing_public_keys) @property @pulumi.getter(name="authorizerFunctionArn") @@ -152,22 +187,57 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key_name: The name of the token key used to extract the token from the HTTP headers. This value is required if signing is enabled in your authorizer. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] token_signing_public_keys: The public keys used to verify the digital signature returned by your custom authentication service. This value is required if signing is enabled in your authorizer. """ + _AuthorizerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + authorizer_function_arn=authorizer_function_arn, + enable_caching_for_http=enable_caching_for_http, + name=name, + signing_disabled=signing_disabled, + status=status, + token_key_name=token_key_name, + token_signing_public_keys=token_signing_public_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + authorizer_function_arn: Optional[pulumi.Input[str]] = None, + enable_caching_for_http: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + signing_disabled: Optional[pulumi.Input[bool]] = None, + status: Optional[pulumi.Input[str]] = None, + token_key_name: Optional[pulumi.Input[str]] = None, + token_signing_public_keys: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorizer_function_arn is None and 'authorizerFunctionArn' in kwargs: + authorizer_function_arn = kwargs['authorizerFunctionArn'] + if enable_caching_for_http is None and 'enableCachingForHttp' in kwargs: + enable_caching_for_http = kwargs['enableCachingForHttp'] + if signing_disabled is None and 'signingDisabled' in kwargs: + signing_disabled = kwargs['signingDisabled'] + if token_key_name is None and 'tokenKeyName' in kwargs: + token_key_name = kwargs['tokenKeyName'] + if token_signing_public_keys is None and 'tokenSigningPublicKeys' in kwargs: + token_signing_public_keys = kwargs['tokenSigningPublicKeys'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authorizer_function_arn is not None: - pulumi.set(__self__, "authorizer_function_arn", authorizer_function_arn) + _setter("authorizer_function_arn", authorizer_function_arn) if enable_caching_for_http is not None: - pulumi.set(__self__, "enable_caching_for_http", enable_caching_for_http) + _setter("enable_caching_for_http", enable_caching_for_http) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if signing_disabled is not None: - pulumi.set(__self__, "signing_disabled", signing_disabled) + _setter("signing_disabled", signing_disabled) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if token_key_name is not None: - pulumi.set(__self__, "token_key_name", token_key_name) + _setter("token_key_name", token_key_name) if token_signing_public_keys is not None: - pulumi.set(__self__, "token_signing_public_keys", token_signing_public_keys) + _setter("token_signing_public_keys", token_signing_public_keys) @property @pulumi.getter @@ -359,6 +429,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AuthorizerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iot/certificate.py b/sdk/python/pulumi_aws/iot/certificate.py index ed82b960db9..83c49c61399 100644 --- a/sdk/python/pulumi_aws/iot/certificate.py +++ b/sdk/python/pulumi_aws/iot/certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CertificateArgs', 'Certificate'] @@ -33,13 +33,36 @@ def __init__(__self__, *, If none is specified both the certificate and keys will be generated, review [CreateKeysAndCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateKeysAndCertificate.html) for more information on generating keys and a certificate. """ - pulumi.set(__self__, "active", active) + CertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + active=active, + ca_pem=ca_pem, + certificate_pem=certificate_pem, + csr=csr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active: Optional[pulumi.Input[bool]] = None, + ca_pem: Optional[pulumi.Input[str]] = None, + certificate_pem: Optional[pulumi.Input[str]] = None, + csr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active is None: + raise TypeError("Missing 'active' argument") + if ca_pem is None and 'caPem' in kwargs: + ca_pem = kwargs['caPem'] + if certificate_pem is None and 'certificatePem' in kwargs: + certificate_pem = kwargs['certificatePem'] + + _setter("active", active) if ca_pem is not None: - pulumi.set(__self__, "ca_pem", ca_pem) + _setter("ca_pem", ca_pem) if certificate_pem is not None: - pulumi.set(__self__, "certificate_pem", certificate_pem) + _setter("certificate_pem", certificate_pem) if csr is not None: - pulumi.set(__self__, "csr", csr) + _setter("csr", csr) @property @pulumi.getter @@ -126,20 +149,51 @@ def __init__(__self__, *, :param pulumi.Input[str] private_key: When neither CSR nor certificate is provided, the private key. :param pulumi.Input[str] public_key: When neither CSR nor certificate is provided, the public key. """ + _CertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + active=active, + arn=arn, + ca_pem=ca_pem, + certificate_pem=certificate_pem, + csr=csr, + private_key=private_key, + public_key=public_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + ca_pem: Optional[pulumi.Input[str]] = None, + certificate_pem: Optional[pulumi.Input[str]] = None, + csr: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ca_pem is None and 'caPem' in kwargs: + ca_pem = kwargs['caPem'] + if certificate_pem is None and 'certificatePem' in kwargs: + certificate_pem = kwargs['certificatePem'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if active is not None: - pulumi.set(__self__, "active", active) + _setter("active", active) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if ca_pem is not None: - pulumi.set(__self__, "ca_pem", ca_pem) + _setter("ca_pem", ca_pem) if certificate_pem is not None: - pulumi.set(__self__, "certificate_pem", certificate_pem) + _setter("certificate_pem", certificate_pem) if csr is not None: - pulumi.set(__self__, "csr", csr) + _setter("csr", csr) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if public_key is not None: - pulumi.set(__self__, "public_key", public_key) + _setter("public_key", public_key) @property @pulumi.getter @@ -341,6 +395,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iot/get_endpoint.py b/sdk/python/pulumi_aws/iot/get_endpoint.py index d3c13951e4d..4a1770524be 100644 --- a/sdk/python/pulumi_aws/iot/get_endpoint.py +++ b/sdk/python/pulumi_aws/iot/get_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/iot/indexing_configuration.py b/sdk/python/pulumi_aws/iot/indexing_configuration.py index 48a939aa7c7..80c3b6e97c0 100644 --- a/sdk/python/pulumi_aws/iot/indexing_configuration.py +++ b/sdk/python/pulumi_aws/iot/indexing_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,27 @@ def __init__(__self__, *, :param pulumi.Input['IndexingConfigurationThingGroupIndexingConfigurationArgs'] thing_group_indexing_configuration: Thing group indexing configuration. See below. :param pulumi.Input['IndexingConfigurationThingIndexingConfigurationArgs'] thing_indexing_configuration: Thing indexing configuration. See below. """ + IndexingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + thing_group_indexing_configuration=thing_group_indexing_configuration, + thing_indexing_configuration=thing_indexing_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + thing_group_indexing_configuration: Optional[pulumi.Input['IndexingConfigurationThingGroupIndexingConfigurationArgs']] = None, + thing_indexing_configuration: Optional[pulumi.Input['IndexingConfigurationThingIndexingConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if thing_group_indexing_configuration is None and 'thingGroupIndexingConfiguration' in kwargs: + thing_group_indexing_configuration = kwargs['thingGroupIndexingConfiguration'] + if thing_indexing_configuration is None and 'thingIndexingConfiguration' in kwargs: + thing_indexing_configuration = kwargs['thingIndexingConfiguration'] + if thing_group_indexing_configuration is not None: - pulumi.set(__self__, "thing_group_indexing_configuration", thing_group_indexing_configuration) + _setter("thing_group_indexing_configuration", thing_group_indexing_configuration) if thing_indexing_configuration is not None: - pulumi.set(__self__, "thing_indexing_configuration", thing_indexing_configuration) + _setter("thing_indexing_configuration", thing_indexing_configuration) @property @pulumi.getter(name="thingGroupIndexingConfiguration") @@ -63,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input['IndexingConfigurationThingGroupIndexingConfigurationArgs'] thing_group_indexing_configuration: Thing group indexing configuration. See below. :param pulumi.Input['IndexingConfigurationThingIndexingConfigurationArgs'] thing_indexing_configuration: Thing indexing configuration. See below. """ + _IndexingConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + thing_group_indexing_configuration=thing_group_indexing_configuration, + thing_indexing_configuration=thing_indexing_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + thing_group_indexing_configuration: Optional[pulumi.Input['IndexingConfigurationThingGroupIndexingConfigurationArgs']] = None, + thing_indexing_configuration: Optional[pulumi.Input['IndexingConfigurationThingIndexingConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if thing_group_indexing_configuration is None and 'thingGroupIndexingConfiguration' in kwargs: + thing_group_indexing_configuration = kwargs['thingGroupIndexingConfiguration'] + if thing_indexing_configuration is None and 'thingIndexingConfiguration' in kwargs: + thing_indexing_configuration = kwargs['thingIndexingConfiguration'] + if thing_group_indexing_configuration is not None: - pulumi.set(__self__, "thing_group_indexing_configuration", thing_group_indexing_configuration) + _setter("thing_group_indexing_configuration", thing_group_indexing_configuration) if thing_indexing_configuration is not None: - pulumi.set(__self__, "thing_indexing_configuration", thing_indexing_configuration) + _setter("thing_indexing_configuration", thing_indexing_configuration) @property @pulumi.getter(name="thingGroupIndexingConfiguration") @@ -192,6 +226,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IndexingConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -208,7 +246,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = IndexingConfigurationArgs.__new__(IndexingConfigurationArgs) + thing_group_indexing_configuration = _utilities.configure(thing_group_indexing_configuration, IndexingConfigurationThingGroupIndexingConfigurationArgs, True) __props__.__dict__["thing_group_indexing_configuration"] = thing_group_indexing_configuration + thing_indexing_configuration = _utilities.configure(thing_indexing_configuration, IndexingConfigurationThingIndexingConfigurationArgs, True) __props__.__dict__["thing_indexing_configuration"] = thing_indexing_configuration super(IndexingConfiguration, __self__).__init__( 'aws:iot/indexingConfiguration:IndexingConfiguration', diff --git a/sdk/python/pulumi_aws/iot/logging_options.py b/sdk/python/pulumi_aws/iot/logging_options.py index 060896baf82..a044f61c98d 100644 --- a/sdk/python/pulumi_aws/iot/logging_options.py +++ b/sdk/python/pulumi_aws/iot/logging_options.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LoggingOptionsArgs', 'LoggingOptions'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the role that allows IoT to write to Cloudwatch logs. :param pulumi.Input[bool] disable_all_logs: If `true` all logs are disabled. The default is `false`. """ - pulumi.set(__self__, "default_log_level", default_log_level) - pulumi.set(__self__, "role_arn", role_arn) + LoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_log_level=default_log_level, + role_arn=role_arn, + disable_all_logs=disable_all_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_log_level: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + disable_all_logs: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_log_level is None and 'defaultLogLevel' in kwargs: + default_log_level = kwargs['defaultLogLevel'] + if default_log_level is None: + raise TypeError("Missing 'default_log_level' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if disable_all_logs is None and 'disableAllLogs' in kwargs: + disable_all_logs = kwargs['disableAllLogs'] + + _setter("default_log_level", default_log_level) + _setter("role_arn", role_arn) if disable_all_logs is not None: - pulumi.set(__self__, "disable_all_logs", disable_all_logs) + _setter("disable_all_logs", disable_all_logs) @property @pulumi.getter(name="defaultLogLevel") @@ -77,12 +102,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] disable_all_logs: If `true` all logs are disabled. The default is `false`. :param pulumi.Input[str] role_arn: The ARN of the role that allows IoT to write to Cloudwatch logs. """ + _LoggingOptionsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_log_level=default_log_level, + disable_all_logs=disable_all_logs, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_log_level: Optional[pulumi.Input[str]] = None, + disable_all_logs: Optional[pulumi.Input[bool]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_log_level is None and 'defaultLogLevel' in kwargs: + default_log_level = kwargs['defaultLogLevel'] + if disable_all_logs is None and 'disableAllLogs' in kwargs: + disable_all_logs = kwargs['disableAllLogs'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if default_log_level is not None: - pulumi.set(__self__, "default_log_level", default_log_level) + _setter("default_log_level", default_log_level) if disable_all_logs is not None: - pulumi.set(__self__, "disable_all_logs", disable_all_logs) + _setter("disable_all_logs", disable_all_logs) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="defaultLogLevel") @@ -180,6 +226,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LoggingOptionsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iot/outputs.py b/sdk/python/pulumi_aws/iot/outputs.py index 8fd803bd04a..3dd48672eeb 100644 --- a/sdk/python/pulumi_aws/iot/outputs.py +++ b/sdk/python/pulumi_aws/iot/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -105,11 +105,34 @@ def __init__(__self__, *, :param Sequence['IndexingConfigurationThingGroupIndexingConfigurationCustomFieldArgs'] custom_fields: A list of thing group fields to index. This list cannot contain any managed fields. See below. :param Sequence['IndexingConfigurationThingGroupIndexingConfigurationManagedFieldArgs'] managed_fields: Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below. """ - pulumi.set(__self__, "thing_group_indexing_mode", thing_group_indexing_mode) + IndexingConfigurationThingGroupIndexingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + thing_group_indexing_mode=thing_group_indexing_mode, + custom_fields=custom_fields, + managed_fields=managed_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + thing_group_indexing_mode: Optional[str] = None, + custom_fields: Optional[Sequence['outputs.IndexingConfigurationThingGroupIndexingConfigurationCustomField']] = None, + managed_fields: Optional[Sequence['outputs.IndexingConfigurationThingGroupIndexingConfigurationManagedField']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if thing_group_indexing_mode is None and 'thingGroupIndexingMode' in kwargs: + thing_group_indexing_mode = kwargs['thingGroupIndexingMode'] + if thing_group_indexing_mode is None: + raise TypeError("Missing 'thing_group_indexing_mode' argument") + if custom_fields is None and 'customFields' in kwargs: + custom_fields = kwargs['customFields'] + if managed_fields is None and 'managedFields' in kwargs: + managed_fields = kwargs['managedFields'] + + _setter("thing_group_indexing_mode", thing_group_indexing_mode) if custom_fields is not None: - pulumi.set(__self__, "custom_fields", custom_fields) + _setter("custom_fields", custom_fields) if managed_fields is not None: - pulumi.set(__self__, "managed_fields", managed_fields) + _setter("managed_fields", managed_fields) @property @pulumi.getter(name="thingGroupIndexingMode") @@ -145,10 +168,23 @@ def __init__(__self__, *, :param str name: The name of the field. :param str type: The data type of the field. Valid values: `Number`, `String`, `Boolean`. """ + IndexingConfigurationThingGroupIndexingConfigurationCustomField._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -176,10 +212,23 @@ def __init__(__self__, *, :param str name: The name of the field. :param str type: The data type of the field. Valid values: `Number`, `String`, `Boolean`. """ + IndexingConfigurationThingGroupIndexingConfigurationManagedField._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -242,17 +291,52 @@ def __init__(__self__, *, :param str named_shadow_indexing_mode: [Named shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) indexing mode. Valid values: `ON`, `OFF`. Default: `OFF`. :param str thing_connectivity_indexing_mode: Thing connectivity indexing mode. Valid values: `STATUS`, `OFF`. Default: `OFF`. """ - pulumi.set(__self__, "thing_indexing_mode", thing_indexing_mode) + IndexingConfigurationThingIndexingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + thing_indexing_mode=thing_indexing_mode, + custom_fields=custom_fields, + device_defender_indexing_mode=device_defender_indexing_mode, + managed_fields=managed_fields, + named_shadow_indexing_mode=named_shadow_indexing_mode, + thing_connectivity_indexing_mode=thing_connectivity_indexing_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + thing_indexing_mode: Optional[str] = None, + custom_fields: Optional[Sequence['outputs.IndexingConfigurationThingIndexingConfigurationCustomField']] = None, + device_defender_indexing_mode: Optional[str] = None, + managed_fields: Optional[Sequence['outputs.IndexingConfigurationThingIndexingConfigurationManagedField']] = None, + named_shadow_indexing_mode: Optional[str] = None, + thing_connectivity_indexing_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if thing_indexing_mode is None and 'thingIndexingMode' in kwargs: + thing_indexing_mode = kwargs['thingIndexingMode'] + if thing_indexing_mode is None: + raise TypeError("Missing 'thing_indexing_mode' argument") + if custom_fields is None and 'customFields' in kwargs: + custom_fields = kwargs['customFields'] + if device_defender_indexing_mode is None and 'deviceDefenderIndexingMode' in kwargs: + device_defender_indexing_mode = kwargs['deviceDefenderIndexingMode'] + if managed_fields is None and 'managedFields' in kwargs: + managed_fields = kwargs['managedFields'] + if named_shadow_indexing_mode is None and 'namedShadowIndexingMode' in kwargs: + named_shadow_indexing_mode = kwargs['namedShadowIndexingMode'] + if thing_connectivity_indexing_mode is None and 'thingConnectivityIndexingMode' in kwargs: + thing_connectivity_indexing_mode = kwargs['thingConnectivityIndexingMode'] + + _setter("thing_indexing_mode", thing_indexing_mode) if custom_fields is not None: - pulumi.set(__self__, "custom_fields", custom_fields) + _setter("custom_fields", custom_fields) if device_defender_indexing_mode is not None: - pulumi.set(__self__, "device_defender_indexing_mode", device_defender_indexing_mode) + _setter("device_defender_indexing_mode", device_defender_indexing_mode) if managed_fields is not None: - pulumi.set(__self__, "managed_fields", managed_fields) + _setter("managed_fields", managed_fields) if named_shadow_indexing_mode is not None: - pulumi.set(__self__, "named_shadow_indexing_mode", named_shadow_indexing_mode) + _setter("named_shadow_indexing_mode", named_shadow_indexing_mode) if thing_connectivity_indexing_mode is not None: - pulumi.set(__self__, "thing_connectivity_indexing_mode", thing_connectivity_indexing_mode) + _setter("thing_connectivity_indexing_mode", thing_connectivity_indexing_mode) @property @pulumi.getter(name="thingIndexingMode") @@ -312,10 +396,23 @@ def __init__(__self__, *, :param str name: The name of the field. :param str type: The data type of the field. Valid values: `Number`, `String`, `Boolean`. """ + IndexingConfigurationThingIndexingConfigurationCustomField._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -343,10 +440,23 @@ def __init__(__self__, *, :param str name: The name of the field. :param str type: The data type of the field. Valid values: `Number`, `String`, `Boolean`. """ + IndexingConfigurationThingIndexingConfigurationManagedField._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -393,9 +503,28 @@ def __init__(__self__, *, :param str target_arn: The ARN of the target function. :param str payload_version: The version of the payload that was sent to the target function. The only valid (and the default) payload version is `"2020-04-01"`. """ - pulumi.set(__self__, "target_arn", target_arn) + ProvisioningTemplatePreProvisioningHook._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_arn=target_arn, + payload_version=payload_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_arn: Optional[str] = None, + payload_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + if payload_version is None and 'payloadVersion' in kwargs: + payload_version = kwargs['payloadVersion'] + + _setter("target_arn", target_arn) if payload_version is not None: - pulumi.set(__self__, "payload_version", payload_version) + _setter("payload_version", payload_version) @property @pulumi.getter(name="targetArn") @@ -444,12 +573,33 @@ def __init__(__self__, *, """ :param str parent_group_name: The name of the parent Thing Group. """ + ThingGroupMetadata._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_date=creation_date, + parent_group_name=parent_group_name, + root_to_parent_groups=root_to_parent_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_date: Optional[str] = None, + parent_group_name: Optional[str] = None, + root_to_parent_groups: Optional[Sequence['outputs.ThingGroupMetadataRootToParentGroup']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if parent_group_name is None and 'parentGroupName' in kwargs: + parent_group_name = kwargs['parentGroupName'] + if root_to_parent_groups is None and 'rootToParentGroups' in kwargs: + root_to_parent_groups = kwargs['rootToParentGroups'] + if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if parent_group_name is not None: - pulumi.set(__self__, "parent_group_name", parent_group_name) + _setter("parent_group_name", parent_group_name) if root_to_parent_groups is not None: - pulumi.set(__self__, "root_to_parent_groups", root_to_parent_groups) + _setter("root_to_parent_groups", root_to_parent_groups) @property @pulumi.getter(name="creationDate") @@ -494,10 +644,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, group_arn: Optional[str] = None, group_name: Optional[str] = None): + ThingGroupMetadataRootToParentGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_arn=group_arn, + group_name=group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_arn: Optional[str] = None, + group_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_arn is None and 'groupArn' in kwargs: + group_arn = kwargs['groupArn'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_arn is not None: - pulumi.set(__self__, "group_arn", group_arn) + _setter("group_arn", group_arn) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) @property @pulumi.getter(name="groupArn") @@ -536,10 +703,25 @@ def __init__(__self__, *, :param 'ThingGroupPropertiesAttributePayloadArgs' attribute_payload: The Thing Group attributes. Defined below. :param str description: A description of the Thing Group. """ + ThingGroupProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + attribute_payload=attribute_payload, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attribute_payload: Optional['outputs.ThingGroupPropertiesAttributePayload'] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attribute_payload is None and 'attributePayload' in kwargs: + attribute_payload = kwargs['attributePayload'] + if attribute_payload is not None: - pulumi.set(__self__, "attribute_payload", attribute_payload) + _setter("attribute_payload", attribute_payload) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="attributePayload") @@ -565,8 +747,19 @@ def __init__(__self__, *, """ :param Mapping[str, str] attributes: Key-value map. """ + ThingGroupPropertiesAttributePayload._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) @property @pulumi.getter @@ -603,10 +796,25 @@ def __init__(__self__, *, :param str description: The description of the thing type. :param Sequence[str] searchable_attributes: A list of searchable thing attribute names. """ + ThingTypeProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + searchable_attributes=searchable_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[str] = None, + searchable_attributes: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if searchable_attributes is None and 'searchableAttributes' in kwargs: + searchable_attributes = kwargs['searchableAttributes'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if searchable_attributes is not None: - pulumi.set(__self__, "searchable_attributes", searchable_attributes) + _setter("searchable_attributes", searchable_attributes) @property @pulumi.getter @@ -661,10 +869,43 @@ def __init__(__self__, *, :param str state_reason: The reason for the alarm change. :param str state_value: The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA. """ - pulumi.set(__self__, "alarm_name", alarm_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "state_reason", state_reason) - pulumi.set(__self__, "state_value", state_value) + TopicRuleCloudwatchAlarm._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_name=alarm_name, + role_arn=role_arn, + state_reason=state_reason, + state_value=state_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_name: Optional[str] = None, + role_arn: Optional[str] = None, + state_reason: Optional[str] = None, + state_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_name is None and 'alarmName' in kwargs: + alarm_name = kwargs['alarmName'] + if alarm_name is None: + raise TypeError("Missing 'alarm_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if state_reason is None and 'stateReason' in kwargs: + state_reason = kwargs['stateReason'] + if state_reason is None: + raise TypeError("Missing 'state_reason' argument") + if state_value is None and 'stateValue' in kwargs: + state_value = kwargs['stateValue'] + if state_value is None: + raise TypeError("Missing 'state_value' argument") + + _setter("alarm_name", alarm_name) + _setter("role_arn", role_arn) + _setter("state_reason", state_reason) + _setter("state_value", state_value) @property @pulumi.getter(name="alarmName") @@ -727,8 +968,29 @@ def __init__(__self__, *, :param str log_group_name: The CloudWatch log group name. :param str role_arn: The IAM role ARN that allows access to the CloudWatch alarm. """ - pulumi.set(__self__, "log_group_name", log_group_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleCloudwatchLog._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("log_group_name", log_group_name) + _setter("role_arn", role_arn) @property @pulumi.getter(name="logGroupName") @@ -791,13 +1053,56 @@ def __init__(__self__, *, :param str role_arn: The IAM role ARN that allows access to the CloudWatch metric. :param str metric_timestamp: An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp). """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "metric_namespace", metric_namespace) - pulumi.set(__self__, "metric_unit", metric_unit) - pulumi.set(__self__, "metric_value", metric_value) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleCloudwatchMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + metric_namespace=metric_namespace, + metric_unit=metric_unit, + metric_value=metric_value, + role_arn=role_arn, + metric_timestamp=metric_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + metric_namespace: Optional[str] = None, + metric_unit: Optional[str] = None, + metric_value: Optional[str] = None, + role_arn: Optional[str] = None, + metric_timestamp: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if metric_namespace is None and 'metricNamespace' in kwargs: + metric_namespace = kwargs['metricNamespace'] + if metric_namespace is None: + raise TypeError("Missing 'metric_namespace' argument") + if metric_unit is None and 'metricUnit' in kwargs: + metric_unit = kwargs['metricUnit'] + if metric_unit is None: + raise TypeError("Missing 'metric_unit' argument") + if metric_value is None and 'metricValue' in kwargs: + metric_value = kwargs['metricValue'] + if metric_value is None: + raise TypeError("Missing 'metric_value' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if metric_timestamp is None and 'metricTimestamp' in kwargs: + metric_timestamp = kwargs['metricTimestamp'] + + _setter("metric_name", metric_name) + _setter("metric_namespace", metric_namespace) + _setter("metric_unit", metric_unit) + _setter("metric_value", metric_value) + _setter("role_arn", role_arn) if metric_timestamp is not None: - pulumi.set(__self__, "metric_timestamp", metric_timestamp) + _setter("metric_timestamp", metric_timestamp) @property @pulumi.getter(name="metricName") @@ -884,11 +1189,42 @@ def __init__(__self__, *, :param str vpc_id: The ID of the VPC. :param Sequence[str] security_groups: The security groups of the VPC destination. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + TopicRuleDestinationVpcConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + security_groups: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("role_arn", role_arn) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter(name="roleArn") @@ -981,22 +1317,77 @@ def __init__(__self__, *, :param str range_key_type: The range key type. Valid values are "STRING" or "NUMBER". :param str range_key_value: The range key value. """ - pulumi.set(__self__, "hash_key_field", hash_key_field) - pulumi.set(__self__, "hash_key_value", hash_key_value) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + TopicRuleDynamodb._configure( + lambda key, value: pulumi.set(__self__, key, value), + hash_key_field=hash_key_field, + hash_key_value=hash_key_value, + role_arn=role_arn, + table_name=table_name, + hash_key_type=hash_key_type, + operation=operation, + payload_field=payload_field, + range_key_field=range_key_field, + range_key_type=range_key_type, + range_key_value=range_key_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hash_key_field: Optional[str] = None, + hash_key_value: Optional[str] = None, + role_arn: Optional[str] = None, + table_name: Optional[str] = None, + hash_key_type: Optional[str] = None, + operation: Optional[str] = None, + payload_field: Optional[str] = None, + range_key_field: Optional[str] = None, + range_key_type: Optional[str] = None, + range_key_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hash_key_field is None and 'hashKeyField' in kwargs: + hash_key_field = kwargs['hashKeyField'] + if hash_key_field is None: + raise TypeError("Missing 'hash_key_field' argument") + if hash_key_value is None and 'hashKeyValue' in kwargs: + hash_key_value = kwargs['hashKeyValue'] + if hash_key_value is None: + raise TypeError("Missing 'hash_key_value' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if hash_key_type is None and 'hashKeyType' in kwargs: + hash_key_type = kwargs['hashKeyType'] + if payload_field is None and 'payloadField' in kwargs: + payload_field = kwargs['payloadField'] + if range_key_field is None and 'rangeKeyField' in kwargs: + range_key_field = kwargs['rangeKeyField'] + if range_key_type is None and 'rangeKeyType' in kwargs: + range_key_type = kwargs['rangeKeyType'] + if range_key_value is None and 'rangeKeyValue' in kwargs: + range_key_value = kwargs['rangeKeyValue'] + + _setter("hash_key_field", hash_key_field) + _setter("hash_key_value", hash_key_value) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if hash_key_type is not None: - pulumi.set(__self__, "hash_key_type", hash_key_type) + _setter("hash_key_type", hash_key_type) if operation is not None: - pulumi.set(__self__, "operation", operation) + _setter("operation", operation) if payload_field is not None: - pulumi.set(__self__, "payload_field", payload_field) + _setter("payload_field", payload_field) if range_key_field is not None: - pulumi.set(__self__, "range_key_field", range_key_field) + _setter("range_key_field", range_key_field) if range_key_type is not None: - pulumi.set(__self__, "range_key_type", range_key_type) + _setter("range_key_type", range_key_type) if range_key_value is not None: - pulumi.set(__self__, "range_key_value", range_key_value) + _setter("range_key_value", range_key_value) @property @pulumi.getter(name="hashKeyField") @@ -1107,9 +1498,28 @@ def __init__(__self__, *, :param str role_arn: The IAM role ARN that allows access to the CloudWatch alarm. :param 'TopicRuleDynamodbv2PutItemArgs' put_item: Configuration block with DynamoDB Table to which the message will be written. Nested arguments below. """ - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleDynamodbv2._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + put_item=put_item, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + put_item: Optional['outputs.TopicRuleDynamodbv2PutItem'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if put_item is None and 'putItem' in kwargs: + put_item = kwargs['putItem'] + + _setter("role_arn", role_arn) if put_item is not None: - pulumi.set(__self__, "put_item", put_item) + _setter("put_item", put_item) @property @pulumi.getter(name="roleArn") @@ -1151,18 +1561,29 @@ def __init__(__self__, *, table_name: str): """ :param str table_name: The name of the DynamoDB table. - - The `dynamodbv2` object takes the following arguments: """ - pulumi.set(__self__, "table_name", table_name) + TopicRuleDynamodbv2PutItem._configure( + lambda key, value: pulumi.set(__self__, key, value), + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + table_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("table_name", table_name) @property @pulumi.getter(name="tableName") def table_name(self) -> str: """ The name of the DynamoDB table. - - The `dynamodbv2` object takes the following arguments: """ return pulumi.get(self, "table_name") @@ -1199,11 +1620,42 @@ def __init__(__self__, *, :param str role_arn: The IAM role ARN that has access to Elasticsearch. :param str type: The type of document you are storing. """ - pulumi.set(__self__, "endpoint", endpoint) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "index", index) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "type", type) + TopicRuleElasticsearch._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + id=id, + index=index, + role_arn=role_arn, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[str] = None, + id: Optional[str] = None, + index: Optional[str] = None, + role_arn: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if index is None: + raise TypeError("Missing 'index' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("endpoint", endpoint) + _setter("id", id) + _setter("index", index) + _setter("role_arn", role_arn) + _setter("type", type) @property @pulumi.getter @@ -1297,44 +1749,105 @@ def __init__(__self__, *, sqs: Optional['outputs.TopicRuleErrorActionSqs'] = None, step_functions: Optional['outputs.TopicRuleErrorActionStepFunctions'] = None, timestream: Optional['outputs.TopicRuleErrorActionTimestream'] = None): + TopicRuleErrorAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_alarm=cloudwatch_alarm, + cloudwatch_logs=cloudwatch_logs, + cloudwatch_metric=cloudwatch_metric, + dynamodb=dynamodb, + dynamodbv2=dynamodbv2, + elasticsearch=elasticsearch, + firehose=firehose, + http=http, + iot_analytics=iot_analytics, + iot_events=iot_events, + kafka=kafka, + kinesis=kinesis, + lambda_=lambda_, + republish=republish, + s3=s3, + sns=sns, + sqs=sqs, + step_functions=step_functions, + timestream=timestream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_alarm: Optional['outputs.TopicRuleErrorActionCloudwatchAlarm'] = None, + cloudwatch_logs: Optional['outputs.TopicRuleErrorActionCloudwatchLogs'] = None, + cloudwatch_metric: Optional['outputs.TopicRuleErrorActionCloudwatchMetric'] = None, + dynamodb: Optional['outputs.TopicRuleErrorActionDynamodb'] = None, + dynamodbv2: Optional['outputs.TopicRuleErrorActionDynamodbv2'] = None, + elasticsearch: Optional['outputs.TopicRuleErrorActionElasticsearch'] = None, + firehose: Optional['outputs.TopicRuleErrorActionFirehose'] = None, + http: Optional['outputs.TopicRuleErrorActionHttp'] = None, + iot_analytics: Optional['outputs.TopicRuleErrorActionIotAnalytics'] = None, + iot_events: Optional['outputs.TopicRuleErrorActionIotEvents'] = None, + kafka: Optional['outputs.TopicRuleErrorActionKafka'] = None, + kinesis: Optional['outputs.TopicRuleErrorActionKinesis'] = None, + lambda_: Optional['outputs.TopicRuleErrorActionLambda'] = None, + republish: Optional['outputs.TopicRuleErrorActionRepublish'] = None, + s3: Optional['outputs.TopicRuleErrorActionS3'] = None, + sns: Optional['outputs.TopicRuleErrorActionSns'] = None, + sqs: Optional['outputs.TopicRuleErrorActionSqs'] = None, + step_functions: Optional['outputs.TopicRuleErrorActionStepFunctions'] = None, + timestream: Optional['outputs.TopicRuleErrorActionTimestream'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_alarm is None and 'cloudwatchAlarm' in kwargs: + cloudwatch_alarm = kwargs['cloudwatchAlarm'] + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_metric is None and 'cloudwatchMetric' in kwargs: + cloudwatch_metric = kwargs['cloudwatchMetric'] + if iot_analytics is None and 'iotAnalytics' in kwargs: + iot_analytics = kwargs['iotAnalytics'] + if iot_events is None and 'iotEvents' in kwargs: + iot_events = kwargs['iotEvents'] + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + if step_functions is None and 'stepFunctions' in kwargs: + step_functions = kwargs['stepFunctions'] + if cloudwatch_alarm is not None: - pulumi.set(__self__, "cloudwatch_alarm", cloudwatch_alarm) + _setter("cloudwatch_alarm", cloudwatch_alarm) if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if cloudwatch_metric is not None: - pulumi.set(__self__, "cloudwatch_metric", cloudwatch_metric) + _setter("cloudwatch_metric", cloudwatch_metric) if dynamodb is not None: - pulumi.set(__self__, "dynamodb", dynamodb) + _setter("dynamodb", dynamodb) if dynamodbv2 is not None: - pulumi.set(__self__, "dynamodbv2", dynamodbv2) + _setter("dynamodbv2", dynamodbv2) if elasticsearch is not None: - pulumi.set(__self__, "elasticsearch", elasticsearch) + _setter("elasticsearch", elasticsearch) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if http is not None: - pulumi.set(__self__, "http", http) + _setter("http", http) if iot_analytics is not None: - pulumi.set(__self__, "iot_analytics", iot_analytics) + _setter("iot_analytics", iot_analytics) if iot_events is not None: - pulumi.set(__self__, "iot_events", iot_events) + _setter("iot_events", iot_events) if kafka is not None: - pulumi.set(__self__, "kafka", kafka) + _setter("kafka", kafka) if kinesis is not None: - pulumi.set(__self__, "kinesis", kinesis) + _setter("kinesis", kinesis) if lambda_ is not None: - pulumi.set(__self__, "lambda_", lambda_) + _setter("lambda_", lambda_) if republish is not None: - pulumi.set(__self__, "republish", republish) + _setter("republish", republish) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if sns is not None: - pulumi.set(__self__, "sns", sns) + _setter("sns", sns) if sqs is not None: - pulumi.set(__self__, "sqs", sqs) + _setter("sqs", sqs) if step_functions is not None: - pulumi.set(__self__, "step_functions", step_functions) + _setter("step_functions", step_functions) if timestream is not None: - pulumi.set(__self__, "timestream", timestream) + _setter("timestream", timestream) @property @pulumi.getter(name="cloudwatchAlarm") @@ -1468,10 +1981,43 @@ def __init__(__self__, *, :param str state_reason: The reason for the alarm change. :param str state_value: The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA. """ - pulumi.set(__self__, "alarm_name", alarm_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "state_reason", state_reason) - pulumi.set(__self__, "state_value", state_value) + TopicRuleErrorActionCloudwatchAlarm._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_name=alarm_name, + role_arn=role_arn, + state_reason=state_reason, + state_value=state_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_name: Optional[str] = None, + role_arn: Optional[str] = None, + state_reason: Optional[str] = None, + state_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_name is None and 'alarmName' in kwargs: + alarm_name = kwargs['alarmName'] + if alarm_name is None: + raise TypeError("Missing 'alarm_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if state_reason is None and 'stateReason' in kwargs: + state_reason = kwargs['stateReason'] + if state_reason is None: + raise TypeError("Missing 'state_reason' argument") + if state_value is None and 'stateValue' in kwargs: + state_value = kwargs['stateValue'] + if state_value is None: + raise TypeError("Missing 'state_value' argument") + + _setter("alarm_name", alarm_name) + _setter("role_arn", role_arn) + _setter("state_reason", state_reason) + _setter("state_value", state_value) @property @pulumi.getter(name="alarmName") @@ -1534,8 +2080,29 @@ def __init__(__self__, *, :param str log_group_name: The CloudWatch log group name. :param str role_arn: The IAM role ARN that allows access to the CloudWatch alarm. """ - pulumi.set(__self__, "log_group_name", log_group_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionCloudwatchLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("log_group_name", log_group_name) + _setter("role_arn", role_arn) @property @pulumi.getter(name="logGroupName") @@ -1598,13 +2165,56 @@ def __init__(__self__, *, :param str role_arn: The IAM role ARN that allows access to the CloudWatch metric. :param str metric_timestamp: An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp). """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "metric_namespace", metric_namespace) - pulumi.set(__self__, "metric_unit", metric_unit) - pulumi.set(__self__, "metric_value", metric_value) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionCloudwatchMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + metric_namespace=metric_namespace, + metric_unit=metric_unit, + metric_value=metric_value, + role_arn=role_arn, + metric_timestamp=metric_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[str] = None, + metric_namespace: Optional[str] = None, + metric_unit: Optional[str] = None, + metric_value: Optional[str] = None, + role_arn: Optional[str] = None, + metric_timestamp: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if metric_namespace is None and 'metricNamespace' in kwargs: + metric_namespace = kwargs['metricNamespace'] + if metric_namespace is None: + raise TypeError("Missing 'metric_namespace' argument") + if metric_unit is None and 'metricUnit' in kwargs: + metric_unit = kwargs['metricUnit'] + if metric_unit is None: + raise TypeError("Missing 'metric_unit' argument") + if metric_value is None and 'metricValue' in kwargs: + metric_value = kwargs['metricValue'] + if metric_value is None: + raise TypeError("Missing 'metric_value' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if metric_timestamp is None and 'metricTimestamp' in kwargs: + metric_timestamp = kwargs['metricTimestamp'] + + _setter("metric_name", metric_name) + _setter("metric_namespace", metric_namespace) + _setter("metric_unit", metric_unit) + _setter("metric_value", metric_value) + _setter("role_arn", role_arn) if metric_timestamp is not None: - pulumi.set(__self__, "metric_timestamp", metric_timestamp) + _setter("metric_timestamp", metric_timestamp) @property @pulumi.getter(name="metricName") @@ -1713,22 +2323,77 @@ def __init__(__self__, *, :param str range_key_type: The range key type. Valid values are "STRING" or "NUMBER". :param str range_key_value: The range key value. """ - pulumi.set(__self__, "hash_key_field", hash_key_field) - pulumi.set(__self__, "hash_key_value", hash_key_value) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + TopicRuleErrorActionDynamodb._configure( + lambda key, value: pulumi.set(__self__, key, value), + hash_key_field=hash_key_field, + hash_key_value=hash_key_value, + role_arn=role_arn, + table_name=table_name, + hash_key_type=hash_key_type, + operation=operation, + payload_field=payload_field, + range_key_field=range_key_field, + range_key_type=range_key_type, + range_key_value=range_key_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hash_key_field: Optional[str] = None, + hash_key_value: Optional[str] = None, + role_arn: Optional[str] = None, + table_name: Optional[str] = None, + hash_key_type: Optional[str] = None, + operation: Optional[str] = None, + payload_field: Optional[str] = None, + range_key_field: Optional[str] = None, + range_key_type: Optional[str] = None, + range_key_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hash_key_field is None and 'hashKeyField' in kwargs: + hash_key_field = kwargs['hashKeyField'] + if hash_key_field is None: + raise TypeError("Missing 'hash_key_field' argument") + if hash_key_value is None and 'hashKeyValue' in kwargs: + hash_key_value = kwargs['hashKeyValue'] + if hash_key_value is None: + raise TypeError("Missing 'hash_key_value' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if hash_key_type is None and 'hashKeyType' in kwargs: + hash_key_type = kwargs['hashKeyType'] + if payload_field is None and 'payloadField' in kwargs: + payload_field = kwargs['payloadField'] + if range_key_field is None and 'rangeKeyField' in kwargs: + range_key_field = kwargs['rangeKeyField'] + if range_key_type is None and 'rangeKeyType' in kwargs: + range_key_type = kwargs['rangeKeyType'] + if range_key_value is None and 'rangeKeyValue' in kwargs: + range_key_value = kwargs['rangeKeyValue'] + + _setter("hash_key_field", hash_key_field) + _setter("hash_key_value", hash_key_value) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if hash_key_type is not None: - pulumi.set(__self__, "hash_key_type", hash_key_type) + _setter("hash_key_type", hash_key_type) if operation is not None: - pulumi.set(__self__, "operation", operation) + _setter("operation", operation) if payload_field is not None: - pulumi.set(__self__, "payload_field", payload_field) + _setter("payload_field", payload_field) if range_key_field is not None: - pulumi.set(__self__, "range_key_field", range_key_field) + _setter("range_key_field", range_key_field) if range_key_type is not None: - pulumi.set(__self__, "range_key_type", range_key_type) + _setter("range_key_type", range_key_type) if range_key_value is not None: - pulumi.set(__self__, "range_key_value", range_key_value) + _setter("range_key_value", range_key_value) @property @pulumi.getter(name="hashKeyField") @@ -1839,9 +2504,28 @@ def __init__(__self__, *, :param str role_arn: The IAM role ARN that allows access to the CloudWatch alarm. :param 'TopicRuleErrorActionDynamodbv2PutItemArgs' put_item: Configuration block with DynamoDB Table to which the message will be written. Nested arguments below. """ - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionDynamodbv2._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + put_item=put_item, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + put_item: Optional['outputs.TopicRuleErrorActionDynamodbv2PutItem'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if put_item is None and 'putItem' in kwargs: + put_item = kwargs['putItem'] + + _setter("role_arn", role_arn) if put_item is not None: - pulumi.set(__self__, "put_item", put_item) + _setter("put_item", put_item) @property @pulumi.getter(name="roleArn") @@ -1883,18 +2567,29 @@ def __init__(__self__, *, table_name: str): """ :param str table_name: The name of the DynamoDB table. - - The `dynamodbv2` object takes the following arguments: """ - pulumi.set(__self__, "table_name", table_name) + TopicRuleErrorActionDynamodbv2PutItem._configure( + lambda key, value: pulumi.set(__self__, key, value), + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + table_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("table_name", table_name) @property @pulumi.getter(name="tableName") def table_name(self) -> str: """ The name of the DynamoDB table. - - The `dynamodbv2` object takes the following arguments: """ return pulumi.get(self, "table_name") @@ -1931,11 +2626,42 @@ def __init__(__self__, *, :param str role_arn: The IAM role ARN that has access to Elasticsearch. :param str type: The type of document you are storing. """ - pulumi.set(__self__, "endpoint", endpoint) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "index", index) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "type", type) + TopicRuleErrorActionElasticsearch._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + id=id, + index=index, + role_arn=role_arn, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[str] = None, + id: Optional[str] = None, + index: Optional[str] = None, + role_arn: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if index is None: + raise TypeError("Missing 'index' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("endpoint", endpoint) + _setter("id", id) + _setter("index", index) + _setter("role_arn", role_arn) + _setter("type", type) @property @pulumi.getter @@ -2012,12 +2738,39 @@ def __init__(__self__, *, :param bool batch_mode: The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call. :param str separator: A character separator that is used to separate records written to the Firehose stream. Valid values are: '\\n' (newline), '\\t' (tab), '\\r\\n' (Windows newline), ',' (comma). """ - pulumi.set(__self__, "delivery_stream_name", delivery_stream_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionFirehose._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream_name=delivery_stream_name, + role_arn=role_arn, + batch_mode=batch_mode, + separator=separator, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream_name: Optional[str] = None, + role_arn: Optional[str] = None, + batch_mode: Optional[bool] = None, + separator: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream_name is None and 'deliveryStreamName' in kwargs: + delivery_stream_name = kwargs['deliveryStreamName'] + if delivery_stream_name is None: + raise TypeError("Missing 'delivery_stream_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + + _setter("delivery_stream_name", delivery_stream_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) if separator is not None: - pulumi.set(__self__, "separator", separator) + _setter("separator", separator) @property @pulumi.getter(name="deliveryStreamName") @@ -2082,11 +2835,32 @@ def __init__(__self__, *, :param str confirmation_url: The HTTPS URL used to verify ownership of `url`. :param Sequence['TopicRuleErrorActionHttpHttpHeaderArgs'] http_headers: Custom HTTP header IoT Core should send. It is possible to define more than one custom header. """ - pulumi.set(__self__, "url", url) + TopicRuleErrorActionHttp._configure( + lambda key, value: pulumi.set(__self__, key, value), + url=url, + confirmation_url=confirmation_url, + http_headers=http_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + url: Optional[str] = None, + confirmation_url: Optional[str] = None, + http_headers: Optional[Sequence['outputs.TopicRuleErrorActionHttpHttpHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if url is None: + raise TypeError("Missing 'url' argument") + if confirmation_url is None and 'confirmationUrl' in kwargs: + confirmation_url = kwargs['confirmationUrl'] + if http_headers is None and 'httpHeaders' in kwargs: + http_headers = kwargs['httpHeaders'] + + _setter("url", url) if confirmation_url is not None: - pulumi.set(__self__, "confirmation_url", confirmation_url) + _setter("confirmation_url", confirmation_url) if http_headers is not None: - pulumi.set(__self__, "http_headers", http_headers) + _setter("http_headers", http_headers) @property @pulumi.getter @@ -2122,8 +2896,25 @@ def __init__(__self__, *, :param str key: The name of the HTTP header. :param str value: The value of the HTTP header. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + TopicRuleErrorActionHttpHttpHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -2174,10 +2965,35 @@ def __init__(__self__, *, :param str role_arn: The ARN of the IAM role that grants access. :param bool batch_mode: The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call. """ - pulumi.set(__self__, "channel_name", channel_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionIotAnalytics._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_name=channel_name, + role_arn=role_arn, + batch_mode=batch_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_name: Optional[str] = None, + role_arn: Optional[str] = None, + batch_mode: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_name is None and 'channelName' in kwargs: + channel_name = kwargs['channelName'] + if channel_name is None: + raise TypeError("Missing 'channel_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + + _setter("channel_name", channel_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) @property @pulumi.getter(name="channelName") @@ -2240,12 +3056,41 @@ def __init__(__self__, *, :param bool batch_mode: The payload that contains a JSON array of records will be sent to IoT Events via a batch call. :param str message_id: Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector. """ - pulumi.set(__self__, "input_name", input_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionIotEvents._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_name=input_name, + role_arn=role_arn, + batch_mode=batch_mode, + message_id=message_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_name: Optional[str] = None, + role_arn: Optional[str] = None, + batch_mode: Optional[bool] = None, + message_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_name is None and 'inputName' in kwargs: + input_name = kwargs['inputName'] + if input_name is None: + raise TypeError("Missing 'input_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + if message_id is None and 'messageId' in kwargs: + message_id = kwargs['messageId'] + + _setter("input_name", input_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) if message_id is not None: - pulumi.set(__self__, "message_id", message_id) + _setter("message_id", message_id) @property @pulumi.getter(name="inputName") @@ -2314,13 +3159,42 @@ def __init__(__self__, *, :param str key: The Kafka message key. :param str partition: The Kafka message partition. """ - pulumi.set(__self__, "client_properties", client_properties) - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "topic", topic) + TopicRuleErrorActionKafka._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_properties=client_properties, + destination_arn=destination_arn, + topic=topic, + key=key, + partition=partition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_properties: Optional[Mapping[str, str]] = None, + destination_arn: Optional[str] = None, + topic: Optional[str] = None, + key: Optional[str] = None, + partition: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_properties is None and 'clientProperties' in kwargs: + client_properties = kwargs['clientProperties'] + if client_properties is None: + raise TypeError("Missing 'client_properties' argument") + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + + _setter("client_properties", client_properties) + _setter("destination_arn", destination_arn) + _setter("topic", topic) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if partition is not None: - pulumi.set(__self__, "partition", partition) + _setter("partition", partition) @property @pulumi.getter(name="clientProperties") @@ -2395,10 +3269,35 @@ def __init__(__self__, *, :param str stream_name: The name of the Amazon Kinesis stream. :param str partition_key: The partition key. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_name", stream_name) + TopicRuleErrorActionKinesis._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + stream_name=stream_name, + partition_key=partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + stream_name: Optional[str] = None, + partition_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if stream_name is None: + raise TypeError("Missing 'stream_name' argument") + if partition_key is None and 'partitionKey' in kwargs: + partition_key = kwargs['partitionKey'] + + _setter("role_arn", role_arn) + _setter("stream_name", stream_name) if partition_key is not None: - pulumi.set(__self__, "partition_key", partition_key) + _setter("partition_key", partition_key) @property @pulumi.getter(name="roleArn") @@ -2449,7 +3348,22 @@ def __init__(__self__, *, """ :param str function_arn: The ARN of the Lambda function. """ - pulumi.set(__self__, "function_arn", function_arn) + TopicRuleErrorActionLambda._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("function_arn", function_arn) @property @pulumi.getter(name="functionArn") @@ -2490,10 +3404,31 @@ def __init__(__self__, *, The `s3` object takes the following arguments: """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "topic", topic) + TopicRuleErrorActionRepublish._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + topic=topic, + qos=qos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + topic: Optional[str] = None, + qos: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + + _setter("role_arn", role_arn) + _setter("topic", topic) if qos is not None: - pulumi.set(__self__, "qos", qos) + _setter("qos", qos) @property @pulumi.getter(name="roleArn") @@ -2556,11 +3491,40 @@ def __init__(__self__, *, :param str role_arn: The IAM role ARN that allows access to the CloudWatch alarm. :param str canned_acl: The Amazon S3 canned ACL that controls access to the object identified by the object key. [Valid values](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleErrorActionS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + key=key, + role_arn=role_arn, + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + key: Optional[str] = None, + role_arn: Optional[str] = None, + canned_acl: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + + _setter("bucket_name", bucket_name) + _setter("key", key) + _setter("role_arn", role_arn) if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="bucketName") @@ -2627,10 +3591,35 @@ def __init__(__self__, *, :param str target_arn: The ARN of the SNS topic. :param str message_format: The message format of the message to publish. Accepted values are "JSON" and "RAW". """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "target_arn", target_arn) + TopicRuleErrorActionSns._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + target_arn=target_arn, + message_format=message_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + target_arn: Optional[str] = None, + message_format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + + _setter("role_arn", role_arn) + _setter("target_arn", target_arn) if message_format is not None: - pulumi.set(__self__, "message_format", message_format) + _setter("message_format", message_format) @property @pulumi.getter(name="roleArn") @@ -2689,9 +3678,36 @@ def __init__(__self__, *, :param str role_arn: The ARN of the IAM role that grants access. :param bool use_base64: Specifies whether to use Base64 encoding. """ - pulumi.set(__self__, "queue_url", queue_url) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "use_base64", use_base64) + TopicRuleErrorActionSqs._configure( + lambda key, value: pulumi.set(__self__, key, value), + queue_url=queue_url, + role_arn=role_arn, + use_base64=use_base64, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + queue_url: Optional[str] = None, + role_arn: Optional[str] = None, + use_base64: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if queue_url is None: + raise TypeError("Missing 'queue_url' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if use_base64 is None and 'useBase64' in kwargs: + use_base64 = kwargs['useBase64'] + if use_base64 is None: + raise TypeError("Missing 'use_base64' argument") + + _setter("queue_url", queue_url) + _setter("role_arn", role_arn) + _setter("use_base64", use_base64) @property @pulumi.getter(name="queueUrl") @@ -2750,10 +3766,35 @@ def __init__(__self__, *, :param str state_machine_name: The name of the Step Functions state machine whose execution will be started. :param str execution_name_prefix: The prefix used to generate, along with a UUID, the unique state machine execution name. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "state_machine_name", state_machine_name) + TopicRuleErrorActionStepFunctions._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + state_machine_name=state_machine_name, + execution_name_prefix=execution_name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + state_machine_name: Optional[str] = None, + execution_name_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if state_machine_name is None and 'stateMachineName' in kwargs: + state_machine_name = kwargs['stateMachineName'] + if state_machine_name is None: + raise TypeError("Missing 'state_machine_name' argument") + if execution_name_prefix is None and 'executionNamePrefix' in kwargs: + execution_name_prefix = kwargs['executionNamePrefix'] + + _setter("role_arn", role_arn) + _setter("state_machine_name", state_machine_name) if execution_name_prefix is not None: - pulumi.set(__self__, "execution_name_prefix", execution_name_prefix) + _setter("execution_name_prefix", execution_name_prefix) @property @pulumi.getter(name="roleArn") @@ -2816,12 +3857,45 @@ def __init__(__self__, *, :param str table_name: The name of the database table into which to write the measure records. :param 'TopicRuleErrorActionTimestreamTimestampArgs' timestamp: Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "dimensions", dimensions) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + TopicRuleErrorActionTimestream._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + dimensions=dimensions, + role_arn=role_arn, + table_name=table_name, + timestamp=timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + dimensions: Optional[Sequence['outputs.TopicRuleErrorActionTimestreamDimension']] = None, + role_arn: Optional[str] = None, + table_name: Optional[str] = None, + timestamp: Optional['outputs.TopicRuleErrorActionTimestreamTimestamp'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("database_name", database_name) + _setter("dimensions", dimensions) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if timestamp is not None: - pulumi.set(__self__, "timestamp", timestamp) + _setter("timestamp", timestamp) @property @pulumi.getter(name="databaseName") @@ -2873,8 +3947,25 @@ def __init__(__self__, *, :param str name: The name of the rule. :param str value: The value of the HTTP header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + TopicRuleErrorActionTimestreamDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -2902,8 +3993,25 @@ def __init__(__self__, *, :param str unit: The precision of the timestamp value that results from the expression described in value. Valid values: `SECONDS`, `MILLISECONDS`, `MICROSECONDS`, `NANOSECONDS`. :param str value: The value of the HTTP header. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + TopicRuleErrorActionTimestreamTimestamp._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2956,12 +4064,39 @@ def __init__(__self__, *, :param bool batch_mode: The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call. :param str separator: A character separator that is used to separate records written to the Firehose stream. Valid values are: '\\n' (newline), '\\t' (tab), '\\r\\n' (Windows newline), ',' (comma). """ - pulumi.set(__self__, "delivery_stream_name", delivery_stream_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleFirehose._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream_name=delivery_stream_name, + role_arn=role_arn, + batch_mode=batch_mode, + separator=separator, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream_name: Optional[str] = None, + role_arn: Optional[str] = None, + batch_mode: Optional[bool] = None, + separator: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream_name is None and 'deliveryStreamName' in kwargs: + delivery_stream_name = kwargs['deliveryStreamName'] + if delivery_stream_name is None: + raise TypeError("Missing 'delivery_stream_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + + _setter("delivery_stream_name", delivery_stream_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) if separator is not None: - pulumi.set(__self__, "separator", separator) + _setter("separator", separator) @property @pulumi.getter(name="deliveryStreamName") @@ -3026,11 +4161,32 @@ def __init__(__self__, *, :param str confirmation_url: The HTTPS URL used to verify ownership of `url`. :param Sequence['TopicRuleHttpHttpHeaderArgs'] http_headers: Custom HTTP header IoT Core should send. It is possible to define more than one custom header. """ - pulumi.set(__self__, "url", url) + TopicRuleHttp._configure( + lambda key, value: pulumi.set(__self__, key, value), + url=url, + confirmation_url=confirmation_url, + http_headers=http_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + url: Optional[str] = None, + confirmation_url: Optional[str] = None, + http_headers: Optional[Sequence['outputs.TopicRuleHttpHttpHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if url is None: + raise TypeError("Missing 'url' argument") + if confirmation_url is None and 'confirmationUrl' in kwargs: + confirmation_url = kwargs['confirmationUrl'] + if http_headers is None and 'httpHeaders' in kwargs: + http_headers = kwargs['httpHeaders'] + + _setter("url", url) if confirmation_url is not None: - pulumi.set(__self__, "confirmation_url", confirmation_url) + _setter("confirmation_url", confirmation_url) if http_headers is not None: - pulumi.set(__self__, "http_headers", http_headers) + _setter("http_headers", http_headers) @property @pulumi.getter @@ -3066,8 +4222,25 @@ def __init__(__self__, *, :param str key: The name of the HTTP header. :param str value: The value of the HTTP header. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + TopicRuleHttpHttpHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -3118,10 +4291,35 @@ def __init__(__self__, *, :param str role_arn: The ARN of the IAM role that grants access. :param bool batch_mode: The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call. """ - pulumi.set(__self__, "channel_name", channel_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleIotAnalytic._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_name=channel_name, + role_arn=role_arn, + batch_mode=batch_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_name: Optional[str] = None, + role_arn: Optional[str] = None, + batch_mode: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_name is None and 'channelName' in kwargs: + channel_name = kwargs['channelName'] + if channel_name is None: + raise TypeError("Missing 'channel_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + + _setter("channel_name", channel_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) @property @pulumi.getter(name="channelName") @@ -3184,12 +4382,41 @@ def __init__(__self__, *, :param bool batch_mode: The payload that contains a JSON array of records will be sent to IoT Events via a batch call. :param str message_id: Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector. """ - pulumi.set(__self__, "input_name", input_name) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleIotEvent._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_name=input_name, + role_arn=role_arn, + batch_mode=batch_mode, + message_id=message_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_name: Optional[str] = None, + role_arn: Optional[str] = None, + batch_mode: Optional[bool] = None, + message_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_name is None and 'inputName' in kwargs: + input_name = kwargs['inputName'] + if input_name is None: + raise TypeError("Missing 'input_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if batch_mode is None and 'batchMode' in kwargs: + batch_mode = kwargs['batchMode'] + if message_id is None and 'messageId' in kwargs: + message_id = kwargs['messageId'] + + _setter("input_name", input_name) + _setter("role_arn", role_arn) if batch_mode is not None: - pulumi.set(__self__, "batch_mode", batch_mode) + _setter("batch_mode", batch_mode) if message_id is not None: - pulumi.set(__self__, "message_id", message_id) + _setter("message_id", message_id) @property @pulumi.getter(name="inputName") @@ -3258,13 +4485,42 @@ def __init__(__self__, *, :param str key: The Kafka message key. :param str partition: The Kafka message partition. """ - pulumi.set(__self__, "client_properties", client_properties) - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "topic", topic) + TopicRuleKafka._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_properties=client_properties, + destination_arn=destination_arn, + topic=topic, + key=key, + partition=partition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_properties: Optional[Mapping[str, str]] = None, + destination_arn: Optional[str] = None, + topic: Optional[str] = None, + key: Optional[str] = None, + partition: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_properties is None and 'clientProperties' in kwargs: + client_properties = kwargs['clientProperties'] + if client_properties is None: + raise TypeError("Missing 'client_properties' argument") + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + + _setter("client_properties", client_properties) + _setter("destination_arn", destination_arn) + _setter("topic", topic) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if partition is not None: - pulumi.set(__self__, "partition", partition) + _setter("partition", partition) @property @pulumi.getter(name="clientProperties") @@ -3339,10 +4595,35 @@ def __init__(__self__, *, :param str stream_name: The name of the Amazon Kinesis stream. :param str partition_key: The partition key. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_name", stream_name) + TopicRuleKinesis._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + stream_name=stream_name, + partition_key=partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + stream_name: Optional[str] = None, + partition_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if stream_name is None: + raise TypeError("Missing 'stream_name' argument") + if partition_key is None and 'partitionKey' in kwargs: + partition_key = kwargs['partitionKey'] + + _setter("role_arn", role_arn) + _setter("stream_name", stream_name) if partition_key is not None: - pulumi.set(__self__, "partition_key", partition_key) + _setter("partition_key", partition_key) @property @pulumi.getter(name="roleArn") @@ -3393,7 +4674,22 @@ def __init__(__self__, *, """ :param str function_arn: The ARN of the Lambda function. """ - pulumi.set(__self__, "function_arn", function_arn) + TopicRuleLambda._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + + _setter("function_arn", function_arn) @property @pulumi.getter(name="functionArn") @@ -3434,10 +4730,31 @@ def __init__(__self__, *, The `s3` object takes the following arguments: """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "topic", topic) + TopicRuleRepublish._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + topic=topic, + qos=qos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + topic: Optional[str] = None, + qos: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + + _setter("role_arn", role_arn) + _setter("topic", topic) if qos is not None: - pulumi.set(__self__, "qos", qos) + _setter("qos", qos) @property @pulumi.getter(name="roleArn") @@ -3500,11 +4817,40 @@ def __init__(__self__, *, :param str role_arn: The IAM role ARN that allows access to the CloudWatch alarm. :param str canned_acl: The Amazon S3 canned ACL that controls access to the object identified by the object key. [Valid values](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "role_arn", role_arn) + TopicRuleS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + key=key, + role_arn=role_arn, + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + key: Optional[str] = None, + role_arn: Optional[str] = None, + canned_acl: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + + _setter("bucket_name", bucket_name) + _setter("key", key) + _setter("role_arn", role_arn) if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="bucketName") @@ -3571,10 +4917,35 @@ def __init__(__self__, *, :param str target_arn: The ARN of the SNS topic. :param str message_format: The message format of the message to publish. Accepted values are "JSON" and "RAW". """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "target_arn", target_arn) + TopicRuleSns._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + target_arn=target_arn, + message_format=message_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + target_arn: Optional[str] = None, + message_format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + if message_format is None and 'messageFormat' in kwargs: + message_format = kwargs['messageFormat'] + + _setter("role_arn", role_arn) + _setter("target_arn", target_arn) if message_format is not None: - pulumi.set(__self__, "message_format", message_format) + _setter("message_format", message_format) @property @pulumi.getter(name="roleArn") @@ -3633,9 +5004,36 @@ def __init__(__self__, *, :param str role_arn: The ARN of the IAM role that grants access. :param bool use_base64: Specifies whether to use Base64 encoding. """ - pulumi.set(__self__, "queue_url", queue_url) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "use_base64", use_base64) + TopicRuleSqs._configure( + lambda key, value: pulumi.set(__self__, key, value), + queue_url=queue_url, + role_arn=role_arn, + use_base64=use_base64, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + queue_url: Optional[str] = None, + role_arn: Optional[str] = None, + use_base64: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if queue_url is None: + raise TypeError("Missing 'queue_url' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if use_base64 is None and 'useBase64' in kwargs: + use_base64 = kwargs['useBase64'] + if use_base64 is None: + raise TypeError("Missing 'use_base64' argument") + + _setter("queue_url", queue_url) + _setter("role_arn", role_arn) + _setter("use_base64", use_base64) @property @pulumi.getter(name="queueUrl") @@ -3694,10 +5092,35 @@ def __init__(__self__, *, :param str state_machine_name: The name of the Step Functions state machine whose execution will be started. :param str execution_name_prefix: The prefix used to generate, along with a UUID, the unique state machine execution name. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "state_machine_name", state_machine_name) + TopicRuleStepFunction._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + state_machine_name=state_machine_name, + execution_name_prefix=execution_name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + state_machine_name: Optional[str] = None, + execution_name_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if state_machine_name is None and 'stateMachineName' in kwargs: + state_machine_name = kwargs['stateMachineName'] + if state_machine_name is None: + raise TypeError("Missing 'state_machine_name' argument") + if execution_name_prefix is None and 'executionNamePrefix' in kwargs: + execution_name_prefix = kwargs['executionNamePrefix'] + + _setter("role_arn", role_arn) + _setter("state_machine_name", state_machine_name) if execution_name_prefix is not None: - pulumi.set(__self__, "execution_name_prefix", execution_name_prefix) + _setter("execution_name_prefix", execution_name_prefix) @property @pulumi.getter(name="roleArn") @@ -3760,12 +5183,45 @@ def __init__(__self__, *, :param str table_name: The name of the database table into which to write the measure records. :param 'TopicRuleTimestreamTimestampArgs' timestamp: Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "dimensions", dimensions) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + TopicRuleTimestream._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + dimensions=dimensions, + role_arn=role_arn, + table_name=table_name, + timestamp=timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + dimensions: Optional[Sequence['outputs.TopicRuleTimestreamDimension']] = None, + role_arn: Optional[str] = None, + table_name: Optional[str] = None, + timestamp: Optional['outputs.TopicRuleTimestreamTimestamp'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("database_name", database_name) + _setter("dimensions", dimensions) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if timestamp is not None: - pulumi.set(__self__, "timestamp", timestamp) + _setter("timestamp", timestamp) @property @pulumi.getter(name="databaseName") @@ -3817,8 +5273,25 @@ def __init__(__self__, *, :param str name: The name of the rule. :param str value: The value of the HTTP header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + TopicRuleTimestreamDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3846,8 +5319,25 @@ def __init__(__self__, *, :param str unit: The precision of the timestamp value that results from the expression described in value. Valid values: `SECONDS`, `MILLISECONDS`, `MICROSECONDS`, `NANOSECONDS`. :param str value: The value of the HTTP header. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + TopicRuleTimestreamTimestamp._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/iot/policy.py b/sdk/python/pulumi_aws/iot/policy.py index cfb4157d771..1e59cfdf816 100644 --- a/sdk/python/pulumi_aws/iot/policy.py +++ b/sdk/python/pulumi_aws/iot/policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PolicyArgs', 'Policy'] @@ -21,9 +21,24 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. Use the [IoT Developer Guide](http://docs.aws.amazon.com/iot/latest/developerguide/iot-policies.html) for more information on IoT Policies. :param pulumi.Input[str] name: The name of the policy. """ - pulumi.set(__self__, "policy", policy) + PolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("policy", policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -64,14 +79,33 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the policy. :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. Use the [IoT Developer Guide](http://docs.aws.amazon.com/iot/latest/developerguide/iot-policies.html) for more information on IoT Policies. """ + _PolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_version_id=default_version_id, + name=name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_version_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_version_id is None and 'defaultVersionId' in kwargs: + default_version_id = kwargs['defaultVersionId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_version_id is not None: - pulumi.set(__self__, "default_version_id", default_version_id) + _setter("default_version_id", default_version_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -207,6 +241,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iot/policy_attachment.py b/sdk/python/pulumi_aws/iot/policy_attachment.py index 09dd30817f6..9efaf5939b8 100644 --- a/sdk/python/pulumi_aws/iot/policy_attachment.py +++ b/sdk/python/pulumi_aws/iot/policy_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PolicyAttachmentArgs', 'PolicyAttachment'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The name of the policy to attach. :param pulumi.Input[str] target: The identity to which the policy is attached. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "target", target) + PolicyAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("policy", policy) + _setter("target", target) @property @pulumi.getter @@ -59,10 +76,23 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The name of the policy to attach. :param pulumi.Input[str] target: The identity to which the policy is attached. """ + _PolicyAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter @@ -164,6 +194,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iot/provisioning_template.py b/sdk/python/pulumi_aws/iot/provisioning_template.py index 28501deedee..52764514579 100644 --- a/sdk/python/pulumi_aws/iot/provisioning_template.py +++ b/sdk/python/pulumi_aws/iot/provisioning_template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,18 +33,51 @@ def __init__(__self__, *, :param pulumi.Input['ProvisioningTemplatePreProvisioningHookArgs'] pre_provisioning_hook: Creates a pre-provisioning hook template. Details below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "provisioning_role_arn", provisioning_role_arn) - pulumi.set(__self__, "template_body", template_body) + ProvisioningTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + provisioning_role_arn=provisioning_role_arn, + template_body=template_body, + description=description, + enabled=enabled, + name=name, + pre_provisioning_hook=pre_provisioning_hook, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provisioning_role_arn: Optional[pulumi.Input[str]] = None, + template_body: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + pre_provisioning_hook: Optional[pulumi.Input['ProvisioningTemplatePreProvisioningHookArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provisioning_role_arn is None and 'provisioningRoleArn' in kwargs: + provisioning_role_arn = kwargs['provisioningRoleArn'] + if provisioning_role_arn is None: + raise TypeError("Missing 'provisioning_role_arn' argument") + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if template_body is None: + raise TypeError("Missing 'template_body' argument") + if pre_provisioning_hook is None and 'preProvisioningHook' in kwargs: + pre_provisioning_hook = kwargs['preProvisioningHook'] + + _setter("provisioning_role_arn", provisioning_role_arn) + _setter("template_body", template_body) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if pre_provisioning_hook is not None: - pulumi.set(__self__, "pre_provisioning_hook", pre_provisioning_hook) + _setter("pre_provisioning_hook", pre_provisioning_hook) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="provisioningRoleArn") @@ -157,29 +190,68 @@ def __init__(__self__, *, :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] template_body: The JSON formatted contents of the fleet provisioning template. """ + _ProvisioningTemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_version_id=default_version_id, + description=description, + enabled=enabled, + name=name, + pre_provisioning_hook=pre_provisioning_hook, + provisioning_role_arn=provisioning_role_arn, + tags=tags, + tags_all=tags_all, + template_body=template_body, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_version_id: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + pre_provisioning_hook: Optional[pulumi.Input['ProvisioningTemplatePreProvisioningHookArgs']] = None, + provisioning_role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_body: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_version_id is None and 'defaultVersionId' in kwargs: + default_version_id = kwargs['defaultVersionId'] + if pre_provisioning_hook is None and 'preProvisioningHook' in kwargs: + pre_provisioning_hook = kwargs['preProvisioningHook'] + if provisioning_role_arn is None and 'provisioningRoleArn' in kwargs: + provisioning_role_arn = kwargs['provisioningRoleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if template_body is None and 'templateBody' in kwargs: + template_body = kwargs['templateBody'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_version_id is not None: - pulumi.set(__self__, "default_version_id", default_version_id) + _setter("default_version_id", default_version_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if pre_provisioning_hook is not None: - pulumi.set(__self__, "pre_provisioning_hook", pre_provisioning_hook) + _setter("pre_provisioning_hook", pre_provisioning_hook) if provisioning_role_arn is not None: - pulumi.set(__self__, "provisioning_role_arn", provisioning_role_arn) + _setter("provisioning_role_arn", provisioning_role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if template_body is not None: - pulumi.set(__self__, "template_body", template_body) + _setter("template_body", template_body) @property @pulumi.getter @@ -476,6 +548,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProvisioningTemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -500,6 +576,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["enabled"] = enabled __props__.__dict__["name"] = name + pre_provisioning_hook = _utilities.configure(pre_provisioning_hook, ProvisioningTemplatePreProvisioningHookArgs, True) __props__.__dict__["pre_provisioning_hook"] = pre_provisioning_hook if provisioning_role_arn is None and not opts.urn: raise TypeError("Missing required property 'provisioning_role_arn'") diff --git a/sdk/python/pulumi_aws/iot/role_alias.py b/sdk/python/pulumi_aws/iot/role_alias.py index c343567b4d9..7733c0c5461 100644 --- a/sdk/python/pulumi_aws/iot/role_alias.py +++ b/sdk/python/pulumi_aws/iot/role_alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RoleAliasArgs', 'RoleAlias'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The identity of the role to which the alias refers. :param pulumi.Input[int] credential_duration: The duration of the credential, in seconds. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 900 seconds (15 minutes) to 43200 seconds (12 hours). """ - pulumi.set(__self__, "alias", alias) - pulumi.set(__self__, "role_arn", role_arn) + RoleAliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + role_arn=role_arn, + credential_duration=credential_duration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + credential_duration: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alias is None: + raise TypeError("Missing 'alias' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if credential_duration is None and 'credentialDuration' in kwargs: + credential_duration = kwargs['credentialDuration'] + + _setter("alias", alias) + _setter("role_arn", role_arn) if credential_duration is not None: - pulumi.set(__self__, "credential_duration", credential_duration) + _setter("credential_duration", credential_duration) @property @pulumi.getter @@ -79,14 +102,35 @@ def __init__(__self__, *, :param pulumi.Input[int] credential_duration: The duration of the credential, in seconds. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 900 seconds (15 minutes) to 43200 seconds (12 hours). :param pulumi.Input[str] role_arn: The identity of the role to which the alias refers. """ + _RoleAliasState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + arn=arn, + credential_duration=credential_duration, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + credential_duration: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credential_duration is None and 'credentialDuration' in kwargs: + credential_duration = kwargs['credentialDuration'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if credential_duration is not None: - pulumi.set(__self__, "credential_duration", credential_duration) + _setter("credential_duration", credential_duration) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter @@ -190,6 +234,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RoleAliasArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iot/thing.py b/sdk/python/pulumi_aws/iot/thing.py index 74b40864897..36ec80435c6 100644 --- a/sdk/python/pulumi_aws/iot/thing.py +++ b/sdk/python/pulumi_aws/iot/thing.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ThingArgs', 'Thing'] @@ -23,12 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the thing. :param pulumi.Input[str] thing_type_name: The thing type name. """ + ThingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + name=name, + thing_type_name=thing_type_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + thing_type_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if thing_type_name is None and 'thingTypeName' in kwargs: + thing_type_name = kwargs['thingTypeName'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if thing_type_name is not None: - pulumi.set(__self__, "thing_type_name", thing_type_name) + _setter("thing_type_name", thing_type_name) @property @pulumi.getter @@ -85,18 +102,43 @@ def __init__(__self__, *, :param pulumi.Input[str] thing_type_name: The thing type name. :param pulumi.Input[int] version: The current version of the thing record in the registry. """ + _ThingState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attributes=attributes, + default_client_id=default_client_id, + name=name, + thing_type_name=thing_type_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + default_client_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + thing_type_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_client_id is None and 'defaultClientId' in kwargs: + default_client_id = kwargs['defaultClientId'] + if thing_type_name is None and 'thingTypeName' in kwargs: + thing_type_name = kwargs['thingTypeName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if default_client_id is not None: - pulumi.set(__self__, "default_client_id", default_client_id) + _setter("default_client_id", default_client_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if thing_type_name is not None: - pulumi.set(__self__, "thing_type_name", thing_type_name) + _setter("thing_type_name", thing_type_name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -246,6 +288,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ThingArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iot/thing_group.py b/sdk/python/pulumi_aws/iot/thing_group.py index 5f50798e181..5e61e72a9ee 100644 --- a/sdk/python/pulumi_aws/iot/thing_group.py +++ b/sdk/python/pulumi_aws/iot/thing_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,14 +27,33 @@ def __init__(__self__, *, :param pulumi.Input['ThingGroupPropertiesArgs'] properties: The Thing Group properties. Defined below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags """ + ThingGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + parent_group_name=parent_group_name, + properties=properties, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + parent_group_name: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input['ThingGroupPropertiesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parent_group_name is None and 'parentGroupName' in kwargs: + parent_group_name = kwargs['parentGroupName'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_group_name is not None: - pulumi.set(__self__, "parent_group_name", parent_group_name) + _setter("parent_group_name", parent_group_name) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -105,25 +124,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags :param pulumi.Input[int] version: The current version of the Thing Group record in the registry. """ + _ThingGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + metadatas=metadatas, + name=name, + parent_group_name=parent_group_name, + properties=properties, + tags=tags, + tags_all=tags_all, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + metadatas: Optional[pulumi.Input[Sequence[pulumi.Input['ThingGroupMetadataArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_group_name: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input['ThingGroupPropertiesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parent_group_name is None and 'parentGroupName' in kwargs: + parent_group_name = kwargs['parentGroupName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if metadatas is not None: - pulumi.set(__self__, "metadatas", metadatas) + _setter("metadatas", metadatas) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_group_name is not None: - pulumi.set(__self__, "parent_group_name", parent_group_name) + _setter("parent_group_name", parent_group_name) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -320,6 +368,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ThingGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -340,6 +392,7 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["parent_group_name"] = parent_group_name + properties = _utilities.configure(properties, ThingGroupPropertiesArgs, True) __props__.__dict__["properties"] = properties __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/iot/thing_group_membership.py b/sdk/python/pulumi_aws/iot/thing_group_membership.py index a28ede71242..5bb58fdba4e 100644 --- a/sdk/python/pulumi_aws/iot/thing_group_membership.py +++ b/sdk/python/pulumi_aws/iot/thing_group_membership.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ThingGroupMembershipArgs', 'ThingGroupMembership'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] thing_name: The name of the thing to add to a group. :param pulumi.Input[bool] override_dynamic_group: Override dynamic thing groups with static thing groups when 10-group limit is reached. If a thing belongs to 10 thing groups, and one or more of those groups are dynamic thing groups, adding a thing to a static group removes the thing from the last dynamic group. """ - pulumi.set(__self__, "thing_group_name", thing_group_name) - pulumi.set(__self__, "thing_name", thing_name) + ThingGroupMembershipArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + thing_group_name=thing_group_name, + thing_name=thing_name, + override_dynamic_group=override_dynamic_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + thing_group_name: Optional[pulumi.Input[str]] = None, + thing_name: Optional[pulumi.Input[str]] = None, + override_dynamic_group: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if thing_group_name is None and 'thingGroupName' in kwargs: + thing_group_name = kwargs['thingGroupName'] + if thing_group_name is None: + raise TypeError("Missing 'thing_group_name' argument") + if thing_name is None and 'thingName' in kwargs: + thing_name = kwargs['thingName'] + if thing_name is None: + raise TypeError("Missing 'thing_name' argument") + if override_dynamic_group is None and 'overrideDynamicGroup' in kwargs: + override_dynamic_group = kwargs['overrideDynamicGroup'] + + _setter("thing_group_name", thing_group_name) + _setter("thing_name", thing_name) if override_dynamic_group is not None: - pulumi.set(__self__, "override_dynamic_group", override_dynamic_group) + _setter("override_dynamic_group", override_dynamic_group) @property @pulumi.getter(name="thingGroupName") @@ -77,12 +102,33 @@ def __init__(__self__, *, :param pulumi.Input[str] thing_group_name: The name of the group to which you are adding a thing. :param pulumi.Input[str] thing_name: The name of the thing to add to a group. """ + _ThingGroupMembershipState._configure( + lambda key, value: pulumi.set(__self__, key, value), + override_dynamic_group=override_dynamic_group, + thing_group_name=thing_group_name, + thing_name=thing_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + override_dynamic_group: Optional[pulumi.Input[bool]] = None, + thing_group_name: Optional[pulumi.Input[str]] = None, + thing_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if override_dynamic_group is None and 'overrideDynamicGroup' in kwargs: + override_dynamic_group = kwargs['overrideDynamicGroup'] + if thing_group_name is None and 'thingGroupName' in kwargs: + thing_group_name = kwargs['thingGroupName'] + if thing_name is None and 'thingName' in kwargs: + thing_name = kwargs['thingName'] + if override_dynamic_group is not None: - pulumi.set(__self__, "override_dynamic_group", override_dynamic_group) + _setter("override_dynamic_group", override_dynamic_group) if thing_group_name is not None: - pulumi.set(__self__, "thing_group_name", thing_group_name) + _setter("thing_group_name", thing_group_name) if thing_name is not None: - pulumi.set(__self__, "thing_name", thing_name) + _setter("thing_name", thing_name) @property @pulumi.getter(name="overrideDynamicGroup") @@ -198,6 +244,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ThingGroupMembershipArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iot/thing_principal_attachment.py b/sdk/python/pulumi_aws/iot/thing_principal_attachment.py index f171d758da2..ffa66bf817b 100644 --- a/sdk/python/pulumi_aws/iot/thing_principal_attachment.py +++ b/sdk/python/pulumi_aws/iot/thing_principal_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ThingPrincipalAttachmentArgs', 'ThingPrincipalAttachment'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] principal: The AWS IoT Certificate ARN or Amazon Cognito Identity ID. :param pulumi.Input[str] thing: The name of the thing. """ - pulumi.set(__self__, "principal", principal) - pulumi.set(__self__, "thing", thing) + ThingPrincipalAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + principal=principal, + thing=thing, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + principal: Optional[pulumi.Input[str]] = None, + thing: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if principal is None: + raise TypeError("Missing 'principal' argument") + if thing is None: + raise TypeError("Missing 'thing' argument") + + _setter("principal", principal) + _setter("thing", thing) @property @pulumi.getter @@ -59,10 +76,23 @@ def __init__(__self__, *, :param pulumi.Input[str] principal: The AWS IoT Certificate ARN or Amazon Cognito Identity ID. :param pulumi.Input[str] thing: The name of the thing. """ + _ThingPrincipalAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + principal=principal, + thing=thing, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + principal: Optional[pulumi.Input[str]] = None, + thing: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if thing is not None: - pulumi.set(__self__, "thing", thing) + _setter("thing", thing) @property @pulumi.getter @@ -154,6 +184,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ThingPrincipalAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/iot/thing_type.py b/sdk/python/pulumi_aws/iot/thing_type.py index ff8cbdcbb2f..dbfb0e70f0a 100644 --- a/sdk/python/pulumi_aws/iot/thing_type.py +++ b/sdk/python/pulumi_aws/iot/thing_type.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,14 +27,31 @@ def __init__(__self__, *, :param pulumi.Input['ThingTypePropertiesArgs'] properties: , Configuration block that can contain the following properties of the thing type: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ + ThingTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deprecated=deprecated, + name=name, + properties=properties, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deprecated: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input['ThingTypePropertiesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deprecated is not None: - pulumi.set(__self__, "deprecated", deprecated) + _setter("deprecated", deprecated) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -103,21 +120,44 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ThingTypeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + deprecated=deprecated, + name=name, + properties=properties, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + deprecated: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + properties: Optional[pulumi.Input['ThingTypePropertiesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if deprecated is not None: - pulumi.set(__self__, "deprecated", deprecated) + _setter("deprecated", deprecated) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if properties is not None: - pulumi.set(__self__, "properties", properties) + _setter("properties", properties) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -268,6 +308,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ThingTypeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -288,6 +332,7 @@ def _internal_init(__self__, __props__.__dict__["deprecated"] = deprecated __props__.__dict__["name"] = name + properties = _utilities.configure(properties, ThingTypePropertiesArgs, True) __props__.__dict__["properties"] = properties __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/iot/topic_rule.py b/sdk/python/pulumi_aws/iot/topic_rule.py index c349d388a28..98783e323c1 100644 --- a/sdk/python/pulumi_aws/iot/topic_rule.py +++ b/sdk/python/pulumi_aws/iot/topic_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -52,55 +52,138 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the rule. :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. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "sql", sql) - pulumi.set(__self__, "sql_version", sql_version) + TopicRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + sql=sql, + sql_version=sql_version, + cloudwatch_alarms=cloudwatch_alarms, + cloudwatch_logs=cloudwatch_logs, + cloudwatch_metrics=cloudwatch_metrics, + description=description, + dynamodbs=dynamodbs, + dynamodbv2s=dynamodbv2s, + elasticsearch=elasticsearch, + error_action=error_action, + firehoses=firehoses, + https=https, + iot_analytics=iot_analytics, + iot_events=iot_events, + kafkas=kafkas, + kineses=kineses, + lambdas=lambdas, + name=name, + republishes=republishes, + s3=s3, + sns=sns, + sqs=sqs, + step_functions=step_functions, + tags=tags, + timestreams=timestreams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + sql: Optional[pulumi.Input[str]] = None, + sql_version: Optional[pulumi.Input[str]] = None, + cloudwatch_alarms: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleCloudwatchAlarmArgs']]]] = None, + cloudwatch_logs: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleCloudwatchLogArgs']]]] = None, + cloudwatch_metrics: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleCloudwatchMetricArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + dynamodbs: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleDynamodbArgs']]]] = None, + dynamodbv2s: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleDynamodbv2Args']]]] = None, + elasticsearch: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleElasticsearchArgs']]]] = None, + error_action: Optional[pulumi.Input['TopicRuleErrorActionArgs']] = None, + firehoses: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleFirehoseArgs']]]] = None, + https: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleHttpArgs']]]] = None, + iot_analytics: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleIotAnalyticArgs']]]] = None, + iot_events: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleIotEventArgs']]]] = None, + kafkas: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleKafkaArgs']]]] = None, + kineses: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleKinesisArgs']]]] = None, + lambdas: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleLambdaArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + republishes: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleRepublishArgs']]]] = None, + s3: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleS3Args']]]] = None, + sns: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleSnsArgs']]]] = None, + sqs: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleSqsArgs']]]] = None, + step_functions: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleStepFunctionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timestreams: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleTimestreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if sql is None: + raise TypeError("Missing 'sql' argument") + if sql_version is None and 'sqlVersion' in kwargs: + sql_version = kwargs['sqlVersion'] + if sql_version is None: + raise TypeError("Missing 'sql_version' argument") + if cloudwatch_alarms is None and 'cloudwatchAlarms' in kwargs: + cloudwatch_alarms = kwargs['cloudwatchAlarms'] + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_metrics is None and 'cloudwatchMetrics' in kwargs: + cloudwatch_metrics = kwargs['cloudwatchMetrics'] + if error_action is None and 'errorAction' in kwargs: + error_action = kwargs['errorAction'] + if iot_analytics is None and 'iotAnalytics' in kwargs: + iot_analytics = kwargs['iotAnalytics'] + if iot_events is None and 'iotEvents' in kwargs: + iot_events = kwargs['iotEvents'] + if step_functions is None and 'stepFunctions' in kwargs: + step_functions = kwargs['stepFunctions'] + + _setter("enabled", enabled) + _setter("sql", sql) + _setter("sql_version", sql_version) if cloudwatch_alarms is not None: - pulumi.set(__self__, "cloudwatch_alarms", cloudwatch_alarms) + _setter("cloudwatch_alarms", cloudwatch_alarms) if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if cloudwatch_metrics is not None: - pulumi.set(__self__, "cloudwatch_metrics", cloudwatch_metrics) + _setter("cloudwatch_metrics", cloudwatch_metrics) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dynamodbs is not None: - pulumi.set(__self__, "dynamodbs", dynamodbs) + _setter("dynamodbs", dynamodbs) if dynamodbv2s is not None: - pulumi.set(__self__, "dynamodbv2s", dynamodbv2s) + _setter("dynamodbv2s", dynamodbv2s) if elasticsearch is not None: - pulumi.set(__self__, "elasticsearch", elasticsearch) + _setter("elasticsearch", elasticsearch) if error_action is not None: - pulumi.set(__self__, "error_action", error_action) + _setter("error_action", error_action) if firehoses is not None: - pulumi.set(__self__, "firehoses", firehoses) + _setter("firehoses", firehoses) if https is not None: - pulumi.set(__self__, "https", https) + _setter("https", https) if iot_analytics is not None: - pulumi.set(__self__, "iot_analytics", iot_analytics) + _setter("iot_analytics", iot_analytics) if iot_events is not None: - pulumi.set(__self__, "iot_events", iot_events) + _setter("iot_events", iot_events) if kafkas is not None: - pulumi.set(__self__, "kafkas", kafkas) + _setter("kafkas", kafkas) if kineses is not None: - pulumi.set(__self__, "kineses", kineses) + _setter("kineses", kineses) if lambdas is not None: - pulumi.set(__self__, "lambdas", lambdas) + _setter("lambdas", lambdas) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if republishes is not None: - pulumi.set(__self__, "republishes", republishes) + _setter("republishes", republishes) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if sns is not None: - pulumi.set(__self__, "sns", sns) + _setter("sns", sns) if sqs is not None: - pulumi.set(__self__, "sqs", sqs) + _setter("sqs", sqs) if step_functions is not None: - pulumi.set(__self__, "step_functions", step_functions) + _setter("step_functions", step_functions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timestreams is not None: - pulumi.set(__self__, "timestreams", timestreams) + _setter("timestreams", timestreams) @property @pulumi.getter @@ -401,65 +484,148 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _TopicRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cloudwatch_alarms=cloudwatch_alarms, + cloudwatch_logs=cloudwatch_logs, + cloudwatch_metrics=cloudwatch_metrics, + description=description, + dynamodbs=dynamodbs, + dynamodbv2s=dynamodbv2s, + elasticsearch=elasticsearch, + enabled=enabled, + error_action=error_action, + firehoses=firehoses, + https=https, + iot_analytics=iot_analytics, + iot_events=iot_events, + kafkas=kafkas, + kineses=kineses, + lambdas=lambdas, + name=name, + republishes=republishes, + s3=s3, + sns=sns, + sql=sql, + sql_version=sql_version, + sqs=sqs, + step_functions=step_functions, + tags=tags, + tags_all=tags_all, + timestreams=timestreams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cloudwatch_alarms: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleCloudwatchAlarmArgs']]]] = None, + cloudwatch_logs: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleCloudwatchLogArgs']]]] = None, + cloudwatch_metrics: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleCloudwatchMetricArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + dynamodbs: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleDynamodbArgs']]]] = None, + dynamodbv2s: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleDynamodbv2Args']]]] = None, + elasticsearch: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleElasticsearchArgs']]]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + error_action: Optional[pulumi.Input['TopicRuleErrorActionArgs']] = None, + firehoses: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleFirehoseArgs']]]] = None, + https: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleHttpArgs']]]] = None, + iot_analytics: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleIotAnalyticArgs']]]] = None, + iot_events: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleIotEventArgs']]]] = None, + kafkas: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleKafkaArgs']]]] = None, + kineses: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleKinesisArgs']]]] = None, + lambdas: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleLambdaArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + republishes: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleRepublishArgs']]]] = None, + s3: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleS3Args']]]] = None, + sns: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleSnsArgs']]]] = None, + sql: Optional[pulumi.Input[str]] = None, + sql_version: Optional[pulumi.Input[str]] = None, + sqs: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleSqsArgs']]]] = None, + step_functions: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleStepFunctionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timestreams: Optional[pulumi.Input[Sequence[pulumi.Input['TopicRuleTimestreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_alarms is None and 'cloudwatchAlarms' in kwargs: + cloudwatch_alarms = kwargs['cloudwatchAlarms'] + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_metrics is None and 'cloudwatchMetrics' in kwargs: + cloudwatch_metrics = kwargs['cloudwatchMetrics'] + if error_action is None and 'errorAction' in kwargs: + error_action = kwargs['errorAction'] + if iot_analytics is None and 'iotAnalytics' in kwargs: + iot_analytics = kwargs['iotAnalytics'] + if iot_events is None and 'iotEvents' in kwargs: + iot_events = kwargs['iotEvents'] + if sql_version is None and 'sqlVersion' in kwargs: + sql_version = kwargs['sqlVersion'] + if step_functions is None and 'stepFunctions' in kwargs: + step_functions = kwargs['stepFunctions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cloudwatch_alarms is not None: - pulumi.set(__self__, "cloudwatch_alarms", cloudwatch_alarms) + _setter("cloudwatch_alarms", cloudwatch_alarms) if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if cloudwatch_metrics is not None: - pulumi.set(__self__, "cloudwatch_metrics", cloudwatch_metrics) + _setter("cloudwatch_metrics", cloudwatch_metrics) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dynamodbs is not None: - pulumi.set(__self__, "dynamodbs", dynamodbs) + _setter("dynamodbs", dynamodbs) if dynamodbv2s is not None: - pulumi.set(__self__, "dynamodbv2s", dynamodbv2s) + _setter("dynamodbv2s", dynamodbv2s) if elasticsearch is not None: - pulumi.set(__self__, "elasticsearch", elasticsearch) + _setter("elasticsearch", elasticsearch) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if error_action is not None: - pulumi.set(__self__, "error_action", error_action) + _setter("error_action", error_action) if firehoses is not None: - pulumi.set(__self__, "firehoses", firehoses) + _setter("firehoses", firehoses) if https is not None: - pulumi.set(__self__, "https", https) + _setter("https", https) if iot_analytics is not None: - pulumi.set(__self__, "iot_analytics", iot_analytics) + _setter("iot_analytics", iot_analytics) if iot_events is not None: - pulumi.set(__self__, "iot_events", iot_events) + _setter("iot_events", iot_events) if kafkas is not None: - pulumi.set(__self__, "kafkas", kafkas) + _setter("kafkas", kafkas) if kineses is not None: - pulumi.set(__self__, "kineses", kineses) + _setter("kineses", kineses) if lambdas is not None: - pulumi.set(__self__, "lambdas", lambdas) + _setter("lambdas", lambdas) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if republishes is not None: - pulumi.set(__self__, "republishes", republishes) + _setter("republishes", republishes) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if sns is not None: - pulumi.set(__self__, "sns", sns) + _setter("sns", sns) if sql is not None: - pulumi.set(__self__, "sql", sql) + _setter("sql", sql) if sql_version is not None: - pulumi.set(__self__, "sql_version", sql_version) + _setter("sql_version", sql_version) if sqs is not None: - pulumi.set(__self__, "sqs", sqs) + _setter("sqs", sqs) if step_functions is not None: - pulumi.set(__self__, "step_functions", step_functions) + _setter("step_functions", step_functions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timestreams is not None: - pulumi.set(__self__, "timestreams", timestreams) + _setter("timestreams", timestreams) @property @pulumi.getter @@ -908,6 +1074,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TopicRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -958,6 +1128,7 @@ def _internal_init(__self__, if enabled is None and not opts.urn: raise TypeError("Missing required property 'enabled'") __props__.__dict__["enabled"] = enabled + error_action = _utilities.configure(error_action, TopicRuleErrorActionArgs, True) __props__.__dict__["error_action"] = error_action __props__.__dict__["firehoses"] = firehoses __props__.__dict__["https"] = https diff --git a/sdk/python/pulumi_aws/iot/topic_rule_destination.py b/sdk/python/pulumi_aws/iot/topic_rule_destination.py index 26902a00982..0896659e263 100644 --- a/sdk/python/pulumi_aws/iot/topic_rule_destination.py +++ b/sdk/python/pulumi_aws/iot/topic_rule_destination.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,26 @@ def __init__(__self__, *, :param pulumi.Input['TopicRuleDestinationVpcConfigurationArgs'] vpc_configuration: Configuration of the virtual private cloud (VPC) connection. For more info, see the [AWS documentation](https://docs.aws.amazon.com/iot/latest/developerguide/vpc-rule-action.html). :param pulumi.Input[bool] enabled: Whether or not to enable the destination. Default: `true`. """ - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + TopicRuleDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_configuration=vpc_configuration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_configuration: Optional[pulumi.Input['TopicRuleDestinationVpcConfigurationArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + if vpc_configuration is None: + raise TypeError("Missing 'vpc_configuration' argument") + + _setter("vpc_configuration", vpc_configuration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="vpcConfiguration") @@ -64,12 +81,29 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Whether or not to enable the destination. Default: `true`. :param pulumi.Input['TopicRuleDestinationVpcConfigurationArgs'] vpc_configuration: Configuration of the virtual private cloud (VPC) connection. For more info, see the [AWS documentation](https://docs.aws.amazon.com/iot/latest/developerguide/vpc-rule-action.html). """ + _TopicRuleDestinationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + enabled=enabled, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + vpc_configuration: Optional[pulumi.Input['TopicRuleDestinationVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter @@ -155,6 +189,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TopicRuleDestinationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -172,6 +210,7 @@ def _internal_init(__self__, __props__ = TopicRuleDestinationArgs.__new__(TopicRuleDestinationArgs) __props__.__dict__["enabled"] = enabled + vpc_configuration = _utilities.configure(vpc_configuration, TopicRuleDestinationVpcConfigurationArgs, True) if vpc_configuration is None and not opts.urn: raise TypeError("Missing required property 'vpc_configuration'") __props__.__dict__["vpc_configuration"] = vpc_configuration diff --git a/sdk/python/pulumi_aws/ivs/_inputs.py b/sdk/python/pulumi_aws/ivs/_inputs.py index 44242cbe076..285ebedc414 100644 --- a/sdk/python/pulumi_aws/ivs/_inputs.py +++ b/sdk/python/pulumi_aws/ivs/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,7 +22,20 @@ def __init__(__self__, *, """ :param pulumi.Input['RecordingConfigurationDestinationConfigurationS3Args'] s3: S3 destination configuration where recorded videos will be stored. """ - pulumi.set(__self__, "s3", s3) + RecordingConfigurationDestinationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional[pulumi.Input['RecordingConfigurationDestinationConfigurationS3Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + + _setter("s3", s3) @property @pulumi.getter @@ -46,7 +59,22 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket_name", bucket_name) + RecordingConfigurationDestinationConfigurationS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + + _setter("bucket_name", bucket_name) @property @pulumi.getter(name="bucketName") @@ -72,10 +100,27 @@ def __init__(__self__, *, :param pulumi.Input[str] recording_mode: Thumbnail recording mode. Valid values: `DISABLED`, `INTERVAL`. :param pulumi.Input[int] target_interval_seconds: The targeted thumbnail-generation interval in seconds. """ + RecordingConfigurationThumbnailConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + recording_mode=recording_mode, + target_interval_seconds=target_interval_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + recording_mode: Optional[pulumi.Input[str]] = None, + target_interval_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recording_mode is None and 'recordingMode' in kwargs: + recording_mode = kwargs['recordingMode'] + if target_interval_seconds is None and 'targetIntervalSeconds' in kwargs: + target_interval_seconds = kwargs['targetIntervalSeconds'] + if recording_mode is not None: - pulumi.set(__self__, "recording_mode", recording_mode) + _setter("recording_mode", recording_mode) if target_interval_seconds is not None: - pulumi.set(__self__, "target_interval_seconds", target_interval_seconds) + _setter("target_interval_seconds", target_interval_seconds) @property @pulumi.getter(name="recordingMode") diff --git a/sdk/python/pulumi_aws/ivs/channel.py b/sdk/python/pulumi_aws/ivs/channel.py index 8c62d7f17f6..5f04c6ec5d1 100644 --- a/sdk/python/pulumi_aws/ivs/channel.py +++ b/sdk/python/pulumi_aws/ivs/channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ChannelArgs', 'Channel'] @@ -29,18 +29,43 @@ def __init__(__self__, *, :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] type: Channel type, which determines the allowable resolution and bitrate. Valid values: `STANDARD`, `BASIC`. """ + ChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorized=authorized, + latency_mode=latency_mode, + name=name, + recording_configuration_arn=recording_configuration_arn, + tags=tags, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorized: Optional[pulumi.Input[bool]] = None, + latency_mode: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + recording_configuration_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if latency_mode is None and 'latencyMode' in kwargs: + latency_mode = kwargs['latencyMode'] + if recording_configuration_arn is None and 'recordingConfigurationArn' in kwargs: + recording_configuration_arn = kwargs['recordingConfigurationArn'] + if authorized is not None: - pulumi.set(__self__, "authorized", authorized) + _setter("authorized", authorized) if latency_mode is not None: - pulumi.set(__self__, "latency_mode", latency_mode) + _setter("latency_mode", latency_mode) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recording_configuration_arn is not None: - pulumi.set(__self__, "recording_configuration_arn", recording_configuration_arn) + _setter("recording_configuration_arn", recording_configuration_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -141,29 +166,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] type: Channel type, which determines the allowable resolution and bitrate. Valid values: `STANDARD`, `BASIC`. """ + _ChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + authorized=authorized, + ingest_endpoint=ingest_endpoint, + latency_mode=latency_mode, + name=name, + playback_url=playback_url, + recording_configuration_arn=recording_configuration_arn, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + authorized: Optional[pulumi.Input[bool]] = None, + ingest_endpoint: Optional[pulumi.Input[str]] = None, + latency_mode: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + playback_url: Optional[pulumi.Input[str]] = None, + recording_configuration_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ingest_endpoint is None and 'ingestEndpoint' in kwargs: + ingest_endpoint = kwargs['ingestEndpoint'] + if latency_mode is None and 'latencyMode' in kwargs: + latency_mode = kwargs['latencyMode'] + if playback_url is None and 'playbackUrl' in kwargs: + playback_url = kwargs['playbackUrl'] + if recording_configuration_arn is None and 'recordingConfigurationArn' in kwargs: + recording_configuration_arn = kwargs['recordingConfigurationArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authorized is not None: - pulumi.set(__self__, "authorized", authorized) + _setter("authorized", authorized) if ingest_endpoint is not None: - pulumi.set(__self__, "ingest_endpoint", ingest_endpoint) + _setter("ingest_endpoint", ingest_endpoint) if latency_mode is not None: - pulumi.set(__self__, "latency_mode", latency_mode) + _setter("latency_mode", latency_mode) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if playback_url is not None: - pulumi.set(__self__, "playback_url", playback_url) + _setter("playback_url", playback_url) if recording_configuration_arn is not None: - pulumi.set(__self__, "recording_configuration_arn", recording_configuration_arn) + _setter("recording_configuration_arn", recording_configuration_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -368,6 +432,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ivs/get_stream_key.py b/sdk/python/pulumi_aws/ivs/get_stream_key.py index 4e04f0b76b3..eba03e2cdb8 100644 --- a/sdk/python/pulumi_aws/ivs/get_stream_key.py +++ b/sdk/python/pulumi_aws/ivs/get_stream_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ivs/outputs.py b/sdk/python/pulumi_aws/ivs/outputs.py index 1cbb9294cf7..f86ab5ca95b 100644 --- a/sdk/python/pulumi_aws/ivs/outputs.py +++ b/sdk/python/pulumi_aws/ivs/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -23,7 +23,20 @@ def __init__(__self__, *, """ :param 'RecordingConfigurationDestinationConfigurationS3Args' s3: S3 destination configuration where recorded videos will be stored. """ - pulumi.set(__self__, "s3", s3) + RecordingConfigurationDestinationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional['outputs.RecordingConfigurationDestinationConfigurationS3'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + + _setter("s3", s3) @property @pulumi.getter @@ -60,7 +73,22 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket_name", bucket_name) + RecordingConfigurationDestinationConfigurationS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + + _setter("bucket_name", bucket_name) @property @pulumi.getter(name="bucketName") @@ -101,10 +129,27 @@ def __init__(__self__, *, :param str recording_mode: Thumbnail recording mode. Valid values: `DISABLED`, `INTERVAL`. :param int target_interval_seconds: The targeted thumbnail-generation interval in seconds. """ + RecordingConfigurationThumbnailConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + recording_mode=recording_mode, + target_interval_seconds=target_interval_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + recording_mode: Optional[str] = None, + target_interval_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recording_mode is None and 'recordingMode' in kwargs: + recording_mode = kwargs['recordingMode'] + if target_interval_seconds is None and 'targetIntervalSeconds' in kwargs: + target_interval_seconds = kwargs['targetIntervalSeconds'] + if recording_mode is not None: - pulumi.set(__self__, "recording_mode", recording_mode) + _setter("recording_mode", recording_mode) if target_interval_seconds is not None: - pulumi.set(__self__, "target_interval_seconds", target_interval_seconds) + _setter("target_interval_seconds", target_interval_seconds) @property @pulumi.getter(name="recordingMode") diff --git a/sdk/python/pulumi_aws/ivs/playback_key_pair.py b/sdk/python/pulumi_aws/ivs/playback_key_pair.py index 1a05ce14923..ef6909a1936 100644 --- a/sdk/python/pulumi_aws/ivs/playback_key_pair.py +++ b/sdk/python/pulumi_aws/ivs/playback_key_pair.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PlaybackKeyPairArgs', 'PlaybackKeyPair'] @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Playback Key Pair name. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "public_key", public_key) + PlaybackKeyPairArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + public_key=public_key, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + public_key: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if public_key is None: + raise TypeError("Missing 'public_key' argument") + + _setter("public_key", public_key) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="publicKey") @@ -90,21 +109,46 @@ def __init__(__self__, *, :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: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _PlaybackKeyPairState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + fingerprint=fingerprint, + name=name, + public_key=public_key, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + fingerprint: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if fingerprint is not None: - pulumi.set(__self__, "fingerprint", fingerprint) + _setter("fingerprint", fingerprint) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if public_key is not None: - pulumi.set(__self__, "public_key", public_key) + _setter("public_key", public_key) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -259,6 +303,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PlaybackKeyPairArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ivs/recording_configuration.py b/sdk/python/pulumi_aws/ivs/recording_configuration.py index 4703e7b31a9..3c7692962f4 100644 --- a/sdk/python/pulumi_aws/ivs/recording_configuration.py +++ b/sdk/python/pulumi_aws/ivs/recording_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,42 @@ def __init__(__self__, *, :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['RecordingConfigurationThumbnailConfigurationArgs'] thumbnail_configuration: Object containing information to enable/disable the recording of thumbnails for a live session and modify the interval at which thumbnails are generated for the live session. """ - pulumi.set(__self__, "destination_configuration", destination_configuration) + RecordingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_configuration=destination_configuration, + name=name, + recording_reconnect_window_seconds=recording_reconnect_window_seconds, + tags=tags, + thumbnail_configuration=thumbnail_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_configuration: Optional[pulumi.Input['RecordingConfigurationDestinationConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + recording_reconnect_window_seconds: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + thumbnail_configuration: Optional[pulumi.Input['RecordingConfigurationThumbnailConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_configuration is None and 'destinationConfiguration' in kwargs: + destination_configuration = kwargs['destinationConfiguration'] + if destination_configuration is None: + raise TypeError("Missing 'destination_configuration' argument") + if recording_reconnect_window_seconds is None and 'recordingReconnectWindowSeconds' in kwargs: + recording_reconnect_window_seconds = kwargs['recordingReconnectWindowSeconds'] + if thumbnail_configuration is None and 'thumbnailConfiguration' in kwargs: + thumbnail_configuration = kwargs['thumbnailConfiguration'] + + _setter("destination_configuration", destination_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recording_reconnect_window_seconds is not None: - pulumi.set(__self__, "recording_reconnect_window_seconds", recording_reconnect_window_seconds) + _setter("recording_reconnect_window_seconds", recording_reconnect_window_seconds) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if thumbnail_configuration is not None: - pulumi.set(__self__, "thumbnail_configuration", thumbnail_configuration) + _setter("thumbnail_configuration", thumbnail_configuration) @property @pulumi.getter(name="destinationConfiguration") @@ -122,25 +149,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input['RecordingConfigurationThumbnailConfigurationArgs'] thumbnail_configuration: Object containing information to enable/disable the recording of thumbnails for a live session and modify the interval at which thumbnails are generated for the live session. """ + _RecordingConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + destination_configuration=destination_configuration, + name=name, + recording_reconnect_window_seconds=recording_reconnect_window_seconds, + state=state, + tags=tags, + tags_all=tags_all, + thumbnail_configuration=thumbnail_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + destination_configuration: Optional[pulumi.Input['RecordingConfigurationDestinationConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + recording_reconnect_window_seconds: Optional[pulumi.Input[int]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + thumbnail_configuration: Optional[pulumi.Input['RecordingConfigurationThumbnailConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_configuration is None and 'destinationConfiguration' in kwargs: + destination_configuration = kwargs['destinationConfiguration'] + if recording_reconnect_window_seconds is None and 'recordingReconnectWindowSeconds' in kwargs: + recording_reconnect_window_seconds = kwargs['recordingReconnectWindowSeconds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if thumbnail_configuration is None and 'thumbnailConfiguration' in kwargs: + thumbnail_configuration = kwargs['thumbnailConfiguration'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if destination_configuration is not None: - pulumi.set(__self__, "destination_configuration", destination_configuration) + _setter("destination_configuration", destination_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recording_reconnect_window_seconds is not None: - pulumi.set(__self__, "recording_reconnect_window_seconds", recording_reconnect_window_seconds) + _setter("recording_reconnect_window_seconds", recording_reconnect_window_seconds) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if thumbnail_configuration is not None: - pulumi.set(__self__, "thumbnail_configuration", thumbnail_configuration) + _setter("thumbnail_configuration", thumbnail_configuration) @property @pulumi.getter @@ -327,6 +387,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RecordingConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -346,12 +410,14 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = RecordingConfigurationArgs.__new__(RecordingConfigurationArgs) + destination_configuration = _utilities.configure(destination_configuration, RecordingConfigurationDestinationConfigurationArgs, True) if destination_configuration is None and not opts.urn: raise TypeError("Missing required property 'destination_configuration'") __props__.__dict__["destination_configuration"] = destination_configuration __props__.__dict__["name"] = name __props__.__dict__["recording_reconnect_window_seconds"] = recording_reconnect_window_seconds __props__.__dict__["tags"] = tags + thumbnail_configuration = _utilities.configure(thumbnail_configuration, RecordingConfigurationThumbnailConfigurationArgs, True) __props__.__dict__["thumbnail_configuration"] = thumbnail_configuration __props__.__dict__["arn"] = None __props__.__dict__["state"] = None diff --git a/sdk/python/pulumi_aws/ivschat/_inputs.py b/sdk/python/pulumi_aws/ivschat/_inputs.py index 9dd9d6ab201..638013bc66c 100644 --- a/sdk/python/pulumi_aws/ivschat/_inputs.py +++ b/sdk/python/pulumi_aws/ivschat/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,12 +28,29 @@ def __init__(__self__, *, :param pulumi.Input['LoggingConfigurationDestinationConfigurationFirehoseArgs'] firehose: An Amazon Kinesis Data Firehose destination configuration where chat activity will be logged. :param pulumi.Input['LoggingConfigurationDestinationConfigurationS3Args'] s3: An Amazon S3 destination configuration where chat activity will be logged. """ + LoggingConfigurationDestinationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + firehose=firehose, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional[pulumi.Input['LoggingConfigurationDestinationConfigurationCloudwatchLogsArgs']] = None, + firehose: Optional[pulumi.Input['LoggingConfigurationDestinationConfigurationFirehoseArgs']] = None, + s3: Optional[pulumi.Input['LoggingConfigurationDestinationConfigurationS3Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -79,7 +96,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] log_group_name: Name of the Amazon Cloudwatch Logs destination where chat activity will be logged. """ - pulumi.set(__self__, "log_group_name", log_group_name) + LoggingConfigurationDestinationConfigurationCloudwatchLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + + _setter("log_group_name", log_group_name) @property @pulumi.getter(name="logGroupName") @@ -101,7 +133,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] delivery_stream_name: Name of the Amazon Kinesis Firehose delivery stream where chat activity will be logged. """ - pulumi.set(__self__, "delivery_stream_name", delivery_stream_name) + LoggingConfigurationDestinationConfigurationFirehoseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream_name=delivery_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream_name is None and 'deliveryStreamName' in kwargs: + delivery_stream_name = kwargs['deliveryStreamName'] + if delivery_stream_name is None: + raise TypeError("Missing 'delivery_stream_name' argument") + + _setter("delivery_stream_name", delivery_stream_name) @property @pulumi.getter(name="deliveryStreamName") @@ -125,7 +172,22 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket_name", bucket_name) + LoggingConfigurationDestinationConfigurationS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + + _setter("bucket_name", bucket_name) @property @pulumi.getter(name="bucketName") @@ -153,10 +215,25 @@ def __init__(__self__, *, encounters an error, or times out. Valid values: `ALLOW`, `DENY`. :param pulumi.Input[str] uri: ARN of the lambda message review handler function. """ + RoomMessageReviewHandlerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_result=fallback_result, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_result: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_result is None and 'fallbackResult' in kwargs: + fallback_result = kwargs['fallbackResult'] + if fallback_result is not None: - pulumi.set(__self__, "fallback_result", fallback_result) + _setter("fallback_result", fallback_result) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter(name="fallbackResult") diff --git a/sdk/python/pulumi_aws/ivschat/logging_configuration.py b/sdk/python/pulumi_aws/ivschat/logging_configuration.py index 6d13ec7af42..fec4babba58 100644 --- a/sdk/python/pulumi_aws/ivschat/logging_configuration.py +++ b/sdk/python/pulumi_aws/ivschat/logging_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,12 +25,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Logging Configuration name. :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. """ + LoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_configuration=destination_configuration, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_configuration: Optional[pulumi.Input['LoggingConfigurationDestinationConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_configuration is None and 'destinationConfiguration' in kwargs: + destination_configuration = kwargs['destinationConfiguration'] + if destination_configuration is not None: - pulumi.set(__self__, "destination_configuration", destination_configuration) + _setter("destination_configuration", destination_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="destinationConfiguration") @@ -87,21 +104,46 @@ def __init__(__self__, *, :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: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _LoggingConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + destination_configuration=destination_configuration, + name=name, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + destination_configuration: Optional[pulumi.Input['LoggingConfigurationDestinationConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_configuration is None and 'destinationConfiguration' in kwargs: + destination_configuration = kwargs['destinationConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if destination_configuration is not None: - pulumi.set(__self__, "destination_configuration", destination_configuration) + _setter("destination_configuration", destination_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -330,6 +372,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LoggingConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -347,6 +393,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = LoggingConfigurationArgs.__new__(LoggingConfigurationArgs) + destination_configuration = _utilities.configure(destination_configuration, LoggingConfigurationDestinationConfigurationArgs, True) __props__.__dict__["destination_configuration"] = destination_configuration __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/ivschat/outputs.py b/sdk/python/pulumi_aws/ivschat/outputs.py index f4444fcbf70..9f16c8f7a81 100644 --- a/sdk/python/pulumi_aws/ivschat/outputs.py +++ b/sdk/python/pulumi_aws/ivschat/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -46,12 +46,29 @@ def __init__(__self__, *, :param 'LoggingConfigurationDestinationConfigurationFirehoseArgs' firehose: An Amazon Kinesis Data Firehose destination configuration where chat activity will be logged. :param 'LoggingConfigurationDestinationConfigurationS3Args' s3: An Amazon S3 destination configuration where chat activity will be logged. """ + LoggingConfigurationDestinationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + firehose=firehose, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional['outputs.LoggingConfigurationDestinationConfigurationCloudwatchLogs'] = None, + firehose: Optional['outputs.LoggingConfigurationDestinationConfigurationFirehose'] = None, + s3: Optional['outputs.LoggingConfigurationDestinationConfigurationS3'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -102,7 +119,22 @@ def __init__(__self__, *, """ :param str log_group_name: Name of the Amazon Cloudwatch Logs destination where chat activity will be logged. """ - pulumi.set(__self__, "log_group_name", log_group_name) + LoggingConfigurationDestinationConfigurationCloudwatchLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_group_name=log_group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_group_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + + _setter("log_group_name", log_group_name) @property @pulumi.getter(name="logGroupName") @@ -137,7 +169,22 @@ def __init__(__self__, *, """ :param str delivery_stream_name: Name of the Amazon Kinesis Firehose delivery stream where chat activity will be logged. """ - pulumi.set(__self__, "delivery_stream_name", delivery_stream_name) + LoggingConfigurationDestinationConfigurationFirehose._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream_name=delivery_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream_name is None and 'deliveryStreamName' in kwargs: + delivery_stream_name = kwargs['deliveryStreamName'] + if delivery_stream_name is None: + raise TypeError("Missing 'delivery_stream_name' argument") + + _setter("delivery_stream_name", delivery_stream_name) @property @pulumi.getter(name="deliveryStreamName") @@ -174,7 +221,22 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket_name", bucket_name) + LoggingConfigurationDestinationConfigurationS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + + _setter("bucket_name", bucket_name) @property @pulumi.getter(name="bucketName") @@ -215,10 +277,25 @@ def __init__(__self__, *, encounters an error, or times out. Valid values: `ALLOW`, `DENY`. :param str uri: ARN of the lambda message review handler function. """ + RoomMessageReviewHandler._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_result=fallback_result, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_result: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_result is None and 'fallbackResult' in kwargs: + fallback_result = kwargs['fallbackResult'] + if fallback_result is not None: - pulumi.set(__self__, "fallback_result", fallback_result) + _setter("fallback_result", fallback_result) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter(name="fallbackResult") diff --git a/sdk/python/pulumi_aws/ivschat/room.py b/sdk/python/pulumi_aws/ivschat/room.py index d6f64ca4261..0d398a74ffd 100644 --- a/sdk/python/pulumi_aws/ivschat/room.py +++ b/sdk/python/pulumi_aws/ivschat/room.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -36,18 +36,47 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Room name. :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. """ + RoomArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + logging_configuration_identifiers=logging_configuration_identifiers, + maximum_message_length=maximum_message_length, + maximum_message_rate_per_second=maximum_message_rate_per_second, + message_review_handler=message_review_handler, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + logging_configuration_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + maximum_message_length: Optional[pulumi.Input[int]] = None, + maximum_message_rate_per_second: Optional[pulumi.Input[int]] = None, + message_review_handler: Optional[pulumi.Input['RoomMessageReviewHandlerArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if logging_configuration_identifiers is None and 'loggingConfigurationIdentifiers' in kwargs: + logging_configuration_identifiers = kwargs['loggingConfigurationIdentifiers'] + if maximum_message_length is None and 'maximumMessageLength' in kwargs: + maximum_message_length = kwargs['maximumMessageLength'] + if maximum_message_rate_per_second is None and 'maximumMessageRatePerSecond' in kwargs: + maximum_message_rate_per_second = kwargs['maximumMessageRatePerSecond'] + if message_review_handler is None and 'messageReviewHandler' in kwargs: + message_review_handler = kwargs['messageReviewHandler'] + if logging_configuration_identifiers is not None: - pulumi.set(__self__, "logging_configuration_identifiers", logging_configuration_identifiers) + _setter("logging_configuration_identifiers", logging_configuration_identifiers) if maximum_message_length is not None: - pulumi.set(__self__, "maximum_message_length", maximum_message_length) + _setter("maximum_message_length", maximum_message_length) if maximum_message_rate_per_second is not None: - pulumi.set(__self__, "maximum_message_rate_per_second", maximum_message_rate_per_second) + _setter("maximum_message_rate_per_second", maximum_message_rate_per_second) if message_review_handler is not None: - pulumi.set(__self__, "message_review_handler", message_review_handler) + _setter("message_review_handler", message_review_handler) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="loggingConfigurationIdentifiers") @@ -154,25 +183,60 @@ def __init__(__self__, *, :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: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RoomState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + logging_configuration_identifiers=logging_configuration_identifiers, + maximum_message_length=maximum_message_length, + maximum_message_rate_per_second=maximum_message_rate_per_second, + message_review_handler=message_review_handler, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + logging_configuration_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + maximum_message_length: Optional[pulumi.Input[int]] = None, + maximum_message_rate_per_second: Optional[pulumi.Input[int]] = None, + message_review_handler: Optional[pulumi.Input['RoomMessageReviewHandlerArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if logging_configuration_identifiers is None and 'loggingConfigurationIdentifiers' in kwargs: + logging_configuration_identifiers = kwargs['loggingConfigurationIdentifiers'] + if maximum_message_length is None and 'maximumMessageLength' in kwargs: + maximum_message_length = kwargs['maximumMessageLength'] + if maximum_message_rate_per_second is None and 'maximumMessageRatePerSecond' in kwargs: + maximum_message_rate_per_second = kwargs['maximumMessageRatePerSecond'] + if message_review_handler is None and 'messageReviewHandler' in kwargs: + message_review_handler = kwargs['messageReviewHandler'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if logging_configuration_identifiers is not None: - pulumi.set(__self__, "logging_configuration_identifiers", logging_configuration_identifiers) + _setter("logging_configuration_identifiers", logging_configuration_identifiers) if maximum_message_length is not None: - pulumi.set(__self__, "maximum_message_length", maximum_message_length) + _setter("maximum_message_length", maximum_message_length) if maximum_message_rate_per_second is not None: - pulumi.set(__self__, "maximum_message_rate_per_second", maximum_message_rate_per_second) + _setter("maximum_message_rate_per_second", maximum_message_rate_per_second) if message_review_handler is not None: - pulumi.set(__self__, "message_review_handler", message_review_handler) + _setter("message_review_handler", message_review_handler) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -395,6 +459,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RoomArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -418,6 +486,7 @@ def _internal_init(__self__, __props__.__dict__["logging_configuration_identifiers"] = logging_configuration_identifiers __props__.__dict__["maximum_message_length"] = maximum_message_length __props__.__dict__["maximum_message_rate_per_second"] = maximum_message_rate_per_second + message_review_handler = _utilities.configure(message_review_handler, RoomMessageReviewHandlerArgs, True) __props__.__dict__["message_review_handler"] = message_review_handler __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/kendra/_inputs.py b/sdk/python/pulumi_aws/kendra/_inputs.py index e099a776c63..cc61d0b36cd 100644 --- a/sdk/python/pulumi_aws/kendra/_inputs.py +++ b/sdk/python/pulumi_aws/kendra/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -63,10 +63,27 @@ def __init__(__self__, *, :param pulumi.Input['DataSourceConfigurationS3ConfigurationArgs'] s3_configuration: A block that provides the configuration information to connect to an Amazon S3 bucket as your data source. Detailed below. :param pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationArgs'] web_crawler_configuration: A block that provides the configuration information required for Amazon Kendra Web Crawler. Detailed below. """ + DataSourceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_configuration=s3_configuration, + web_crawler_configuration=web_crawler_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_configuration: Optional[pulumi.Input['DataSourceConfigurationS3ConfigurationArgs']] = None, + web_crawler_configuration: Optional[pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if web_crawler_configuration is None and 'webCrawlerConfiguration' in kwargs: + web_crawler_configuration = kwargs['webCrawlerConfiguration'] + if s3_configuration is not None: - pulumi.set(__self__, "s3_configuration", s3_configuration) + _setter("s3_configuration", s3_configuration) if web_crawler_configuration is not None: - pulumi.set(__self__, "web_crawler_configuration", web_crawler_configuration) + _setter("web_crawler_configuration", web_crawler_configuration) @property @pulumi.getter(name="s3Configuration") @@ -110,17 +127,52 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] inclusion_patterns: A list of glob patterns for documents that should be indexed. If a document that matches an inclusion pattern also matches an exclusion pattern, the document is not indexed. Refer to [Inclusion Patterns for more examples](https://docs.aws.amazon.com/kendra/latest/dg/API_S3DataSourceConfiguration.html#Kendra-Type-S3DataSourceConfiguration-InclusionPatterns). :param pulumi.Input[Sequence[pulumi.Input[str]]] inclusion_prefixes: A list of S3 prefixes for the documents that should be included in the index. """ - pulumi.set(__self__, "bucket_name", bucket_name) + DataSourceConfigurationS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + access_control_list_configuration=access_control_list_configuration, + documents_metadata_configuration=documents_metadata_configuration, + exclusion_patterns=exclusion_patterns, + inclusion_patterns=inclusion_patterns, + inclusion_prefixes=inclusion_prefixes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + access_control_list_configuration: Optional[pulumi.Input['DataSourceConfigurationS3ConfigurationAccessControlListConfigurationArgs']] = None, + documents_metadata_configuration: Optional[pulumi.Input['DataSourceConfigurationS3ConfigurationDocumentsMetadataConfigurationArgs']] = None, + exclusion_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + inclusion_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + inclusion_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if access_control_list_configuration is None and 'accessControlListConfiguration' in kwargs: + access_control_list_configuration = kwargs['accessControlListConfiguration'] + if documents_metadata_configuration is None and 'documentsMetadataConfiguration' in kwargs: + documents_metadata_configuration = kwargs['documentsMetadataConfiguration'] + if exclusion_patterns is None and 'exclusionPatterns' in kwargs: + exclusion_patterns = kwargs['exclusionPatterns'] + if inclusion_patterns is None and 'inclusionPatterns' in kwargs: + inclusion_patterns = kwargs['inclusionPatterns'] + if inclusion_prefixes is None and 'inclusionPrefixes' in kwargs: + inclusion_prefixes = kwargs['inclusionPrefixes'] + + _setter("bucket_name", bucket_name) if access_control_list_configuration is not None: - pulumi.set(__self__, "access_control_list_configuration", access_control_list_configuration) + _setter("access_control_list_configuration", access_control_list_configuration) if documents_metadata_configuration is not None: - pulumi.set(__self__, "documents_metadata_configuration", documents_metadata_configuration) + _setter("documents_metadata_configuration", documents_metadata_configuration) if exclusion_patterns is not None: - pulumi.set(__self__, "exclusion_patterns", exclusion_patterns) + _setter("exclusion_patterns", exclusion_patterns) if inclusion_patterns is not None: - pulumi.set(__self__, "inclusion_patterns", inclusion_patterns) + _setter("inclusion_patterns", inclusion_patterns) if inclusion_prefixes is not None: - pulumi.set(__self__, "inclusion_prefixes", inclusion_prefixes) + _setter("inclusion_prefixes", inclusion_prefixes) @property @pulumi.getter(name="bucketName") @@ -202,8 +254,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] key_path: Path to the AWS S3 bucket that contains the ACL files. """ + DataSourceConfigurationS3ConfigurationAccessControlListConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_path=key_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_path is None and 'keyPath' in kwargs: + key_path = kwargs['keyPath'] + if key_path is not None: - pulumi.set(__self__, "key_path", key_path) + _setter("key_path", key_path) @property @pulumi.getter(name="keyPath") @@ -225,8 +290,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] s3_prefix: A prefix used to filter metadata configuration files in the AWS S3 bucket. The S3 bucket might contain multiple metadata files. Use `s3_prefix` to include only the desired metadata files. """ + DataSourceConfigurationS3ConfigurationDocumentsMetadataConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_prefix=s3_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_prefix is None and 's3Prefix' in kwargs: + s3_prefix = kwargs['s3Prefix'] + if s3_prefix is not None: - pulumi.set(__self__, "s3_prefix", s3_prefix) + _setter("s3_prefix", s3_prefix) @property @pulumi.getter(name="s3Prefix") @@ -264,23 +342,68 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] url_exclusion_patterns: A list of regular expression patterns to exclude certain URLs to crawl. URLs that match the patterns are excluded from the index. URLs that don't match the patterns are included in the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index. Array Members: Minimum number of `0` items. Maximum number of `100` items. Length Constraints: Minimum length of `1`. Maximum length of `150`. :param pulumi.Input[Sequence[pulumi.Input[str]]] url_inclusion_patterns: A list of regular expression patterns to include certain URLs to crawl. URLs that match the patterns are included in the index. URLs that don't match the patterns are excluded from the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index. Array Members: Minimum number of `0` items. Maximum number of `100` items. Length Constraints: Minimum length of `1`. Maximum length of `150`. """ - pulumi.set(__self__, "urls", urls) + DataSourceConfigurationWebCrawlerConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + urls=urls, + authentication_configuration=authentication_configuration, + crawl_depth=crawl_depth, + max_content_size_per_page_in_mega_bytes=max_content_size_per_page_in_mega_bytes, + max_links_per_page=max_links_per_page, + max_urls_per_minute_crawl_rate=max_urls_per_minute_crawl_rate, + proxy_configuration=proxy_configuration, + url_exclusion_patterns=url_exclusion_patterns, + url_inclusion_patterns=url_inclusion_patterns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + urls: Optional[pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationUrlsArgs']] = None, + authentication_configuration: Optional[pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationArgs']] = None, + crawl_depth: Optional[pulumi.Input[int]] = None, + max_content_size_per_page_in_mega_bytes: Optional[pulumi.Input[float]] = None, + max_links_per_page: Optional[pulumi.Input[int]] = None, + max_urls_per_minute_crawl_rate: Optional[pulumi.Input[int]] = None, + proxy_configuration: Optional[pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationProxyConfigurationArgs']] = None, + url_exclusion_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + url_inclusion_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if urls is None: + raise TypeError("Missing 'urls' argument") + if authentication_configuration is None and 'authenticationConfiguration' in kwargs: + authentication_configuration = kwargs['authenticationConfiguration'] + if crawl_depth is None and 'crawlDepth' in kwargs: + crawl_depth = kwargs['crawlDepth'] + if max_content_size_per_page_in_mega_bytes is None and 'maxContentSizePerPageInMegaBytes' in kwargs: + max_content_size_per_page_in_mega_bytes = kwargs['maxContentSizePerPageInMegaBytes'] + if max_links_per_page is None and 'maxLinksPerPage' in kwargs: + max_links_per_page = kwargs['maxLinksPerPage'] + if max_urls_per_minute_crawl_rate is None and 'maxUrlsPerMinuteCrawlRate' in kwargs: + max_urls_per_minute_crawl_rate = kwargs['maxUrlsPerMinuteCrawlRate'] + if proxy_configuration is None and 'proxyConfiguration' in kwargs: + proxy_configuration = kwargs['proxyConfiguration'] + if url_exclusion_patterns is None and 'urlExclusionPatterns' in kwargs: + url_exclusion_patterns = kwargs['urlExclusionPatterns'] + if url_inclusion_patterns is None and 'urlInclusionPatterns' in kwargs: + url_inclusion_patterns = kwargs['urlInclusionPatterns'] + + _setter("urls", urls) if authentication_configuration is not None: - pulumi.set(__self__, "authentication_configuration", authentication_configuration) + _setter("authentication_configuration", authentication_configuration) if crawl_depth is not None: - pulumi.set(__self__, "crawl_depth", crawl_depth) + _setter("crawl_depth", crawl_depth) if max_content_size_per_page_in_mega_bytes is not None: - pulumi.set(__self__, "max_content_size_per_page_in_mega_bytes", max_content_size_per_page_in_mega_bytes) + _setter("max_content_size_per_page_in_mega_bytes", max_content_size_per_page_in_mega_bytes) if max_links_per_page is not None: - pulumi.set(__self__, "max_links_per_page", max_links_per_page) + _setter("max_links_per_page", max_links_per_page) if max_urls_per_minute_crawl_rate is not None: - pulumi.set(__self__, "max_urls_per_minute_crawl_rate", max_urls_per_minute_crawl_rate) + _setter("max_urls_per_minute_crawl_rate", max_urls_per_minute_crawl_rate) if proxy_configuration is not None: - pulumi.set(__self__, "proxy_configuration", proxy_configuration) + _setter("proxy_configuration", proxy_configuration) if url_exclusion_patterns is not None: - pulumi.set(__self__, "url_exclusion_patterns", url_exclusion_patterns) + _setter("url_exclusion_patterns", url_exclusion_patterns) if url_inclusion_patterns is not None: - pulumi.set(__self__, "url_inclusion_patterns", url_inclusion_patterns) + _setter("url_inclusion_patterns", url_inclusion_patterns) @property @pulumi.getter @@ -398,8 +521,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationBasicAuthenticationArgs']]] basic_authentications: The list of configuration information that's required to connect to and crawl a website host using basic authentication credentials. The list includes the name and port number of the website host. Detailed below. """ + DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_authentications=basic_authentications, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_authentications: Optional[pulumi.Input[Sequence[pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationBasicAuthenticationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_authentications is None and 'basicAuthentications' in kwargs: + basic_authentications = kwargs['basicAuthentications'] + if basic_authentications is not None: - pulumi.set(__self__, "basic_authentications", basic_authentications) + _setter("basic_authentications", basic_authentications) @property @pulumi.getter(name="basicAuthentications") @@ -425,9 +561,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The name of the website host you want to connect to using authentication credentials. For example, the host name of `https://a.example.com/page1.html` is `"a.example.com"`. :param pulumi.Input[int] port: The port number of the website host you want to connect to using authentication credentials. For example, the port for `https://a.example.com/page1.html` is `443`, the standard port for HTTPS. """ - pulumi.set(__self__, "credentials", credentials) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationBasicAuthenticationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials=credentials, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credentials is None: + raise TypeError("Missing 'credentials' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("credentials", credentials) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -477,10 +634,29 @@ def __init__(__self__, *, :param pulumi.Input[int] port: The port number of the website host you want to connect to via a web proxy server. For example, the port for `https://a.example.com/page1.html` is `443`, the standard port for HTTPS. :param pulumi.Input[str] credentials: Your secret ARN, which you can create in AWS Secrets Manager. The credentials are optional. You use a secret if web proxy credentials are required to connect to a website host. Amazon Kendra currently support basic authentication to connect to a web proxy server. The secret stores your credentials. """ - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceConfigurationWebCrawlerConfigurationProxyConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + host=host, + port=port, + credentials=credentials, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + credentials: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("host", host) + _setter("port", port) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) @property @pulumi.getter @@ -528,10 +704,27 @@ def __init__(__self__, *, :param pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs'] seed_url_configuration: A block that specifies the configuration of the seed or starting point URLs of the websites you want to crawl. You can choose to crawl only the website host names, or the website host names with subdomains, or the website host names with subdomains and other domains that the webpages link to. You can list up to `100` seed URLs. Detailed below. :param pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationUrlsSiteMapsConfigurationArgs'] site_maps_configuration: A block that specifies the configuration of the sitemap URLs of the websites you want to crawl. Only URLs belonging to the same website host names are crawled. You can list up to `3` sitemap URLs. Detailed below. """ + DataSourceConfigurationWebCrawlerConfigurationUrlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + seed_url_configuration=seed_url_configuration, + site_maps_configuration=site_maps_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + seed_url_configuration: Optional[pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs']] = None, + site_maps_configuration: Optional[pulumi.Input['DataSourceConfigurationWebCrawlerConfigurationUrlsSiteMapsConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if seed_url_configuration is None and 'seedUrlConfiguration' in kwargs: + seed_url_configuration = kwargs['seedUrlConfiguration'] + if site_maps_configuration is None and 'siteMapsConfiguration' in kwargs: + site_maps_configuration = kwargs['siteMapsConfiguration'] + if seed_url_configuration is not None: - pulumi.set(__self__, "seed_url_configuration", seed_url_configuration) + _setter("seed_url_configuration", seed_url_configuration) if site_maps_configuration is not None: - pulumi.set(__self__, "site_maps_configuration", site_maps_configuration) + _setter("site_maps_configuration", site_maps_configuration) @property @pulumi.getter(name="seedUrlConfiguration") @@ -567,9 +760,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] seed_urls: The list of seed or starting point URLs of the websites you want to crawl. The list can include a maximum of `100` seed URLs. Array Members: Minimum number of `0` items. Maximum number of `100` items. Length Constraints: Minimum length of `1`. Maximum length of `2048`. :param pulumi.Input[str] web_crawler_mode: The default mode is set to `HOST_ONLY`. You can choose one of the following modes: """ - pulumi.set(__self__, "seed_urls", seed_urls) + DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + seed_urls=seed_urls, + web_crawler_mode=web_crawler_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + seed_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + web_crawler_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if seed_urls is None and 'seedUrls' in kwargs: + seed_urls = kwargs['seedUrls'] + if seed_urls is None: + raise TypeError("Missing 'seed_urls' argument") + if web_crawler_mode is None and 'webCrawlerMode' in kwargs: + web_crawler_mode = kwargs['webCrawlerMode'] + + _setter("seed_urls", seed_urls) if web_crawler_mode is not None: - pulumi.set(__self__, "web_crawler_mode", web_crawler_mode) + _setter("web_crawler_mode", web_crawler_mode) @property @pulumi.getter(name="seedUrls") @@ -603,7 +815,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] site_maps: The list of sitemap URLs of the websites you want to crawl. The list can include a maximum of `3` sitemap URLs. """ - pulumi.set(__self__, "site_maps", site_maps) + DataSourceConfigurationWebCrawlerConfigurationUrlsSiteMapsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + site_maps=site_maps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + site_maps: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if site_maps is None and 'siteMaps' in kwargs: + site_maps = kwargs['siteMaps'] + if site_maps is None: + raise TypeError("Missing 'site_maps' argument") + + _setter("site_maps", site_maps) @property @pulumi.getter(name="siteMaps") @@ -631,14 +858,39 @@ def __init__(__self__, *, :param pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationArgs'] pre_extraction_hook_configuration: Configuration information for invoking a Lambda function in AWS Lambda on the original or raw documents before extracting their metadata and text. You can use a Lambda function to apply advanced logic for creating, modifying, or deleting document metadata and content. For more information, see [Advanced data manipulation](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#advanced-data-manipulation). Detailed below. :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) of a role with permission to run `pre_extraction_hook_configuration` and `post_extraction_hook_configuration` for altering document metadata and content during the document ingestion process. For more information, see [IAM roles for Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html). """ + DataSourceCustomDocumentEnrichmentConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + inline_configurations=inline_configurations, + post_extraction_hook_configuration=post_extraction_hook_configuration, + pre_extraction_hook_configuration=pre_extraction_hook_configuration, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inline_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationArgs']]]] = None, + post_extraction_hook_configuration: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs']] = None, + pre_extraction_hook_configuration: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inline_configurations is None and 'inlineConfigurations' in kwargs: + inline_configurations = kwargs['inlineConfigurations'] + if post_extraction_hook_configuration is None and 'postExtractionHookConfiguration' in kwargs: + post_extraction_hook_configuration = kwargs['postExtractionHookConfiguration'] + if pre_extraction_hook_configuration is None and 'preExtractionHookConfiguration' in kwargs: + pre_extraction_hook_configuration = kwargs['preExtractionHookConfiguration'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if inline_configurations is not None: - pulumi.set(__self__, "inline_configurations", inline_configurations) + _setter("inline_configurations", inline_configurations) if post_extraction_hook_configuration is not None: - pulumi.set(__self__, "post_extraction_hook_configuration", post_extraction_hook_configuration) + _setter("post_extraction_hook_configuration", post_extraction_hook_configuration) if pre_extraction_hook_configuration is not None: - pulumi.set(__self__, "pre_extraction_hook_configuration", pre_extraction_hook_configuration) + _setter("pre_extraction_hook_configuration", pre_extraction_hook_configuration) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="inlineConfigurations") @@ -700,12 +952,29 @@ def __init__(__self__, *, :param pulumi.Input[bool] document_content_deletion: `TRUE` to delete content if the condition used for the target attribute is met. :param pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetArgs'] target: Configuration of the target document attribute or metadata field when ingesting documents into Amazon Kendra. You can also include a value. Detailed below. """ + DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition=condition, + document_content_deletion=document_content_deletion, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationConditionArgs']] = None, + document_content_deletion: Optional[pulumi.Input[bool]] = None, + target: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if document_content_deletion is None and 'documentContentDeletion' in kwargs: + document_content_deletion = kwargs['documentContentDeletion'] + if condition is not None: - pulumi.set(__self__, "condition", condition) + _setter("condition", condition) if document_content_deletion is not None: - pulumi.set(__self__, "document_content_deletion", document_content_deletion) + _setter("document_content_deletion", document_content_deletion) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter @@ -755,10 +1024,33 @@ def __init__(__self__, *, :param pulumi.Input[str] operator: The condition operator. For example, you can use `Contains` to partially match a string. Valid Values: `GreaterThan` | `GreaterThanOrEquals` | `LessThan` | `LessThanOrEquals` | `Equals` | `NotEquals` | `Contains` | `NotContains` | `Exists` | `NotExists` | `BeginsWith`. :param pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationConditionConditionOnValueArgs'] condition_on_value: The value used by the operator. For example, you can specify the value 'financial' for strings in the `_source_uri` field that partially match or contain this value. See condition_on_value. """ - pulumi.set(__self__, "condition_document_attribute_key", condition_document_attribute_key) - pulumi.set(__self__, "operator", operator) + DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition_document_attribute_key=condition_document_attribute_key, + operator=operator, + condition_on_value=condition_on_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition_document_attribute_key: Optional[pulumi.Input[str]] = None, + operator: Optional[pulumi.Input[str]] = None, + condition_on_value: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationConditionConditionOnValueArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if condition_document_attribute_key is None and 'conditionDocumentAttributeKey' in kwargs: + condition_document_attribute_key = kwargs['conditionDocumentAttributeKey'] + if condition_document_attribute_key is None: + raise TypeError("Missing 'condition_document_attribute_key' argument") + if operator is None: + raise TypeError("Missing 'operator' argument") + if condition_on_value is None and 'conditionOnValue' in kwargs: + condition_on_value = kwargs['conditionOnValue'] + + _setter("condition_document_attribute_key", condition_document_attribute_key) + _setter("operator", operator) if condition_on_value is not None: - pulumi.set(__self__, "condition_on_value", condition_on_value) + _setter("condition_on_value", condition_on_value) @property @pulumi.getter(name="conditionDocumentAttributeKey") @@ -809,14 +1101,39 @@ def __init__(__self__, *, :param pulumi.Input[int] long_value: A long integer value. :param pulumi.Input[Sequence[pulumi.Input[str]]] string_list_values: A list of strings. """ + DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationConditionConditionOnValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_value=date_value, + long_value=long_value, + string_list_values=string_list_values, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_value: Optional[pulumi.Input[str]] = None, + long_value: Optional[pulumi.Input[int]] = None, + string_list_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + string_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_value is None and 'dateValue' in kwargs: + date_value = kwargs['dateValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_list_values is None and 'stringListValues' in kwargs: + string_list_values = kwargs['stringListValues'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if date_value is not None: - pulumi.set(__self__, "date_value", date_value) + _setter("date_value", date_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_list_values is not None: - pulumi.set(__self__, "string_list_values", string_list_values) + _setter("string_list_values", string_list_values) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="dateValue") @@ -875,12 +1192,33 @@ def __init__(__self__, *, :param pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetTargetDocumentAttributeValueArgs'] target_document_attribute_value: The target value you want to create for the target attribute. For example, 'Finance' could be the target value for the target attribute key 'Department'. See target_document_attribute_value. :param pulumi.Input[bool] target_document_attribute_value_deletion: `TRUE` to delete the existing target value for your specified target attribute key. You cannot create a target value and set this to `TRUE`. To create a target value (`TargetDocumentAttributeValue`), set this to `FALSE`. """ + DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_document_attribute_key=target_document_attribute_key, + target_document_attribute_value=target_document_attribute_value, + target_document_attribute_value_deletion=target_document_attribute_value_deletion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_document_attribute_key: Optional[pulumi.Input[str]] = None, + target_document_attribute_value: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetTargetDocumentAttributeValueArgs']] = None, + target_document_attribute_value_deletion: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_document_attribute_key is None and 'targetDocumentAttributeKey' in kwargs: + target_document_attribute_key = kwargs['targetDocumentAttributeKey'] + if target_document_attribute_value is None and 'targetDocumentAttributeValue' in kwargs: + target_document_attribute_value = kwargs['targetDocumentAttributeValue'] + if target_document_attribute_value_deletion is None and 'targetDocumentAttributeValueDeletion' in kwargs: + target_document_attribute_value_deletion = kwargs['targetDocumentAttributeValueDeletion'] + if target_document_attribute_key is not None: - pulumi.set(__self__, "target_document_attribute_key", target_document_attribute_key) + _setter("target_document_attribute_key", target_document_attribute_key) if target_document_attribute_value is not None: - pulumi.set(__self__, "target_document_attribute_value", target_document_attribute_value) + _setter("target_document_attribute_value", target_document_attribute_value) if target_document_attribute_value_deletion is not None: - pulumi.set(__self__, "target_document_attribute_value_deletion", target_document_attribute_value_deletion) + _setter("target_document_attribute_value_deletion", target_document_attribute_value_deletion) @property @pulumi.getter(name="targetDocumentAttributeKey") @@ -931,14 +1269,39 @@ def __init__(__self__, *, :param pulumi.Input[int] long_value: A long integer value. :param pulumi.Input[Sequence[pulumi.Input[str]]] string_list_values: A list of strings. """ + DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetTargetDocumentAttributeValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_value=date_value, + long_value=long_value, + string_list_values=string_list_values, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_value: Optional[pulumi.Input[str]] = None, + long_value: Optional[pulumi.Input[int]] = None, + string_list_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + string_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_value is None and 'dateValue' in kwargs: + date_value = kwargs['dateValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_list_values is None and 'stringListValues' in kwargs: + string_list_values = kwargs['stringListValues'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if date_value is not None: - pulumi.set(__self__, "date_value", date_value) + _setter("date_value", date_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_list_values is not None: - pulumi.set(__self__, "string_list_values", string_list_values) + _setter("string_list_values", string_list_values) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="dateValue") @@ -997,10 +1360,35 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_bucket: Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see [Data contracts for Lambda functions](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda). :param pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionArgs'] invocation_condition: A block that specifies the condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Kendra should invoke a function that inserts the current date-time. See invocation_condition. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) - pulumi.set(__self__, "s3_bucket", s3_bucket) + DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + s3_bucket=s3_bucket, + invocation_condition=invocation_condition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[pulumi.Input[str]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + invocation_condition: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_bucket is None: + raise TypeError("Missing 's3_bucket' argument") + if invocation_condition is None and 'invocationCondition' in kwargs: + invocation_condition = kwargs['invocationCondition'] + + _setter("lambda_arn", lambda_arn) + _setter("s3_bucket", s3_bucket) if invocation_condition is not None: - pulumi.set(__self__, "invocation_condition", invocation_condition) + _setter("invocation_condition", invocation_condition) @property @pulumi.getter(name="lambdaArn") @@ -1050,10 +1438,33 @@ def __init__(__self__, *, :param pulumi.Input[str] operator: The condition operator. For example, you can use `Contains` to partially match a string. Valid Values: `GreaterThan` | `GreaterThanOrEquals` | `LessThan` | `LessThanOrEquals` | `Equals` | `NotEquals` | `Contains` | `NotContains` | `Exists` | `NotExists` | `BeginsWith`. :param pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionConditionOnValueArgs'] condition_on_value: The value used by the operator. For example, you can specify the value 'financial' for strings in the `_source_uri` field that partially match or contain this value. See condition_on_value. """ - pulumi.set(__self__, "condition_document_attribute_key", condition_document_attribute_key) - pulumi.set(__self__, "operator", operator) + DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition_document_attribute_key=condition_document_attribute_key, + operator=operator, + condition_on_value=condition_on_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition_document_attribute_key: Optional[pulumi.Input[str]] = None, + operator: Optional[pulumi.Input[str]] = None, + condition_on_value: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionConditionOnValueArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if condition_document_attribute_key is None and 'conditionDocumentAttributeKey' in kwargs: + condition_document_attribute_key = kwargs['conditionDocumentAttributeKey'] + if condition_document_attribute_key is None: + raise TypeError("Missing 'condition_document_attribute_key' argument") + if operator is None: + raise TypeError("Missing 'operator' argument") + if condition_on_value is None and 'conditionOnValue' in kwargs: + condition_on_value = kwargs['conditionOnValue'] + + _setter("condition_document_attribute_key", condition_document_attribute_key) + _setter("operator", operator) if condition_on_value is not None: - pulumi.set(__self__, "condition_on_value", condition_on_value) + _setter("condition_on_value", condition_on_value) @property @pulumi.getter(name="conditionDocumentAttributeKey") @@ -1104,14 +1515,39 @@ def __init__(__self__, *, :param pulumi.Input[int] long_value: A long integer value. :param pulumi.Input[Sequence[pulumi.Input[str]]] string_list_values: A list of strings. """ + DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionConditionOnValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_value=date_value, + long_value=long_value, + string_list_values=string_list_values, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_value: Optional[pulumi.Input[str]] = None, + long_value: Optional[pulumi.Input[int]] = None, + string_list_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + string_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_value is None and 'dateValue' in kwargs: + date_value = kwargs['dateValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_list_values is None and 'stringListValues' in kwargs: + string_list_values = kwargs['stringListValues'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if date_value is not None: - pulumi.set(__self__, "date_value", date_value) + _setter("date_value", date_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_list_values is not None: - pulumi.set(__self__, "string_list_values", string_list_values) + _setter("string_list_values", string_list_values) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="dateValue") @@ -1170,10 +1606,35 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_bucket: Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see [Data contracts for Lambda functions](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda). :param pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionArgs'] invocation_condition: A block that specifies the condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Kendra should invoke a function that inserts the current date-time. See invocation_condition. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) - pulumi.set(__self__, "s3_bucket", s3_bucket) + DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + s3_bucket=s3_bucket, + invocation_condition=invocation_condition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[pulumi.Input[str]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + invocation_condition: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_bucket is None: + raise TypeError("Missing 's3_bucket' argument") + if invocation_condition is None and 'invocationCondition' in kwargs: + invocation_condition = kwargs['invocationCondition'] + + _setter("lambda_arn", lambda_arn) + _setter("s3_bucket", s3_bucket) if invocation_condition is not None: - pulumi.set(__self__, "invocation_condition", invocation_condition) + _setter("invocation_condition", invocation_condition) @property @pulumi.getter(name="lambdaArn") @@ -1223,10 +1684,33 @@ def __init__(__self__, *, :param pulumi.Input[str] operator: The condition operator. For example, you can use `Contains` to partially match a string. Valid Values: `GreaterThan` | `GreaterThanOrEquals` | `LessThan` | `LessThanOrEquals` | `Equals` | `NotEquals` | `Contains` | `NotContains` | `Exists` | `NotExists` | `BeginsWith`. :param pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionConditionOnValueArgs'] condition_on_value: The value used by the operator. For example, you can specify the value 'financial' for strings in the `_source_uri` field that partially match or contain this value. See condition_on_value. """ - pulumi.set(__self__, "condition_document_attribute_key", condition_document_attribute_key) - pulumi.set(__self__, "operator", operator) + DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition_document_attribute_key=condition_document_attribute_key, + operator=operator, + condition_on_value=condition_on_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition_document_attribute_key: Optional[pulumi.Input[str]] = None, + operator: Optional[pulumi.Input[str]] = None, + condition_on_value: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionConditionOnValueArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if condition_document_attribute_key is None and 'conditionDocumentAttributeKey' in kwargs: + condition_document_attribute_key = kwargs['conditionDocumentAttributeKey'] + if condition_document_attribute_key is None: + raise TypeError("Missing 'condition_document_attribute_key' argument") + if operator is None: + raise TypeError("Missing 'operator' argument") + if condition_on_value is None and 'conditionOnValue' in kwargs: + condition_on_value = kwargs['conditionOnValue'] + + _setter("condition_document_attribute_key", condition_document_attribute_key) + _setter("operator", operator) if condition_on_value is not None: - pulumi.set(__self__, "condition_on_value", condition_on_value) + _setter("condition_on_value", condition_on_value) @property @pulumi.getter(name="conditionDocumentAttributeKey") @@ -1277,14 +1761,39 @@ def __init__(__self__, *, :param pulumi.Input[int] long_value: A long integer value. :param pulumi.Input[Sequence[pulumi.Input[str]]] string_list_values: A list of strings. """ + DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionConditionOnValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_value=date_value, + long_value=long_value, + string_list_values=string_list_values, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_value: Optional[pulumi.Input[str]] = None, + long_value: Optional[pulumi.Input[int]] = None, + string_list_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + string_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_value is None and 'dateValue' in kwargs: + date_value = kwargs['dateValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_list_values is None and 'stringListValues' in kwargs: + string_list_values = kwargs['stringListValues'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if date_value is not None: - pulumi.set(__self__, "date_value", date_value) + _setter("date_value", date_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_list_values is not None: - pulumi.set(__self__, "string_list_values", string_list_values) + _setter("string_list_values", string_list_values) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="dateValue") @@ -1341,10 +1850,27 @@ def __init__(__self__, *, :param pulumi.Input['ExperienceConfigurationContentSourceConfigurationArgs'] content_source_configuration: The identifiers of your data sources and FAQs. Or, you can specify that you want to use documents indexed via the `BatchPutDocument API`. The provider will only perform drift detection of its value when present in a configuration. Detailed below. :param pulumi.Input['ExperienceConfigurationUserIdentityConfigurationArgs'] user_identity_configuration: The AWS SSO field name that contains the identifiers of your users, such as their emails. Detailed below. """ + ExperienceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_source_configuration=content_source_configuration, + user_identity_configuration=user_identity_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_source_configuration: Optional[pulumi.Input['ExperienceConfigurationContentSourceConfigurationArgs']] = None, + user_identity_configuration: Optional[pulumi.Input['ExperienceConfigurationUserIdentityConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_source_configuration is None and 'contentSourceConfiguration' in kwargs: + content_source_configuration = kwargs['contentSourceConfiguration'] + if user_identity_configuration is None and 'userIdentityConfiguration' in kwargs: + user_identity_configuration = kwargs['userIdentityConfiguration'] + if content_source_configuration is not None: - pulumi.set(__self__, "content_source_configuration", content_source_configuration) + _setter("content_source_configuration", content_source_configuration) if user_identity_configuration is not None: - pulumi.set(__self__, "user_identity_configuration", user_identity_configuration) + _setter("user_identity_configuration", user_identity_configuration) @property @pulumi.getter(name="contentSourceConfiguration") @@ -1382,12 +1908,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] direct_put_content: Whether to use documents you indexed directly using the `BatchPutDocument API`. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] faq_ids: The identifier of the FAQs that you want to use for your Amazon Kendra experience. Maximum number of 100 items. """ + ExperienceConfigurationContentSourceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_ids=data_source_ids, + direct_put_content=direct_put_content, + faq_ids=faq_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + direct_put_content: Optional[pulumi.Input[bool]] = None, + faq_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_ids is None and 'dataSourceIds' in kwargs: + data_source_ids = kwargs['dataSourceIds'] + if direct_put_content is None and 'directPutContent' in kwargs: + direct_put_content = kwargs['directPutContent'] + if faq_ids is None and 'faqIds' in kwargs: + faq_ids = kwargs['faqIds'] + if data_source_ids is not None: - pulumi.set(__self__, "data_source_ids", data_source_ids) + _setter("data_source_ids", data_source_ids) if direct_put_content is not None: - pulumi.set(__self__, "direct_put_content", direct_put_content) + _setter("direct_put_content", direct_put_content) if faq_ids is not None: - pulumi.set(__self__, "faq_ids", faq_ids) + _setter("faq_ids", faq_ids) @property @pulumi.getter(name="dataSourceIds") @@ -1433,7 +1980,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] identity_attribute_name: The AWS SSO field name that contains the identifiers of your users, such as their emails. """ - pulumi.set(__self__, "identity_attribute_name", identity_attribute_name) + ExperienceConfigurationUserIdentityConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_attribute_name=identity_attribute_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_attribute_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_attribute_name is None and 'identityAttributeName' in kwargs: + identity_attribute_name = kwargs['identityAttributeName'] + if identity_attribute_name is None: + raise TypeError("Missing 'identity_attribute_name' argument") + + _setter("identity_attribute_name", identity_attribute_name) @property @pulumi.getter(name="identityAttributeName") @@ -1457,10 +2019,25 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint: The endpoint of your Amazon Kendra experience. :param pulumi.Input[str] endpoint_type: The type of endpoint for your Amazon Kendra experience. """ + ExperienceEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + endpoint_type=endpoint_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[pulumi.Input[str]] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if endpoint_type is not None: - pulumi.set(__self__, "endpoint_type", endpoint_type) + _setter("endpoint_type", endpoint_type) @property @pulumi.getter @@ -1498,8 +2075,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + FaqS3PathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -1537,10 +2131,27 @@ def __init__(__self__, *, :param pulumi.Input[int] query_capacity_units: The amount of extra query capacity for an index and GetQuerySuggestions capacity. For more information, refer to [QueryCapacityUnits](https://docs.aws.amazon.com/kendra/latest/dg/API_CapacityUnitsConfiguration.html#Kendra-Type-CapacityUnitsConfiguration-QueryCapacityUnits). :param pulumi.Input[int] storage_capacity_units: The amount of extra storage capacity for an index. A single capacity unit provides 30 GB of storage space or 100,000 documents, whichever is reached first. Minimum value of 0. """ + IndexCapacityUnitsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_capacity_units=query_capacity_units, + storage_capacity_units=storage_capacity_units, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_capacity_units: Optional[pulumi.Input[int]] = None, + storage_capacity_units: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_capacity_units is None and 'queryCapacityUnits' in kwargs: + query_capacity_units = kwargs['queryCapacityUnits'] + if storage_capacity_units is None and 'storageCapacityUnits' in kwargs: + storage_capacity_units = kwargs['storageCapacityUnits'] + if query_capacity_units is not None: - pulumi.set(__self__, "query_capacity_units", query_capacity_units) + _setter("query_capacity_units", query_capacity_units) if storage_capacity_units is not None: - pulumi.set(__self__, "storage_capacity_units", storage_capacity_units) + _setter("storage_capacity_units", storage_capacity_units) @property @pulumi.getter(name="queryCapacityUnits") @@ -1580,12 +2191,33 @@ def __init__(__self__, *, :param pulumi.Input['IndexDocumentMetadataConfigurationUpdateRelevanceArgs'] relevance: A block that provides manual tuning parameters to determine how the field affects the search results. Detailed below :param pulumi.Input['IndexDocumentMetadataConfigurationUpdateSearchArgs'] search: A block that provides information about how the field is used during a search. Documented below. Detailed below """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + IndexDocumentMetadataConfigurationUpdateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + relevance=relevance, + search=search, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + relevance: Optional[pulumi.Input['IndexDocumentMetadataConfigurationUpdateRelevanceArgs']] = None, + search: Optional[pulumi.Input['IndexDocumentMetadataConfigurationUpdateSearchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) if relevance is not None: - pulumi.set(__self__, "relevance", relevance) + _setter("relevance", relevance) if search is not None: - pulumi.set(__self__, "search", search) + _setter("search", search) @property @pulumi.getter @@ -1651,16 +2283,39 @@ def __init__(__self__, *, :param pulumi.Input[str] rank_order: Determines how values should be interpreted. For more information, refer to [RankOrder](https://docs.aws.amazon.com/kendra/latest/dg/API_Relevance.html#Kendra-Type-Relevance-RankOrder). :param pulumi.Input[Mapping[str, pulumi.Input[int]]] values_importance_map: A list of values that should be given a different boost when they appear in the result list. For more information, refer to [ValueImportanceMap](https://docs.aws.amazon.com/kendra/latest/dg/API_Relevance.html#Kendra-Type-Relevance-ValueImportanceMap). """ + IndexDocumentMetadataConfigurationUpdateRelevanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + freshness=freshness, + importance=importance, + rank_order=rank_order, + values_importance_map=values_importance_map, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[pulumi.Input[str]] = None, + freshness: Optional[pulumi.Input[bool]] = None, + importance: Optional[pulumi.Input[int]] = None, + rank_order: Optional[pulumi.Input[str]] = None, + values_importance_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rank_order is None and 'rankOrder' in kwargs: + rank_order = kwargs['rankOrder'] + if values_importance_map is None and 'valuesImportanceMap' in kwargs: + values_importance_map = kwargs['valuesImportanceMap'] + if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if freshness is not None: - pulumi.set(__self__, "freshness", freshness) + _setter("freshness", freshness) if importance is not None: - pulumi.set(__self__, "importance", importance) + _setter("importance", importance) if rank_order is not None: - pulumi.set(__self__, "rank_order", rank_order) + _setter("rank_order", rank_order) if values_importance_map is not None: - pulumi.set(__self__, "values_importance_map", values_importance_map) + _setter("values_importance_map", values_importance_map) @property @pulumi.getter @@ -1736,14 +2391,31 @@ def __init__(__self__, *, :param pulumi.Input[bool] searchable: Determines whether the field is used in the search. If the Searchable field is true, you can use relevance tuning to manually tune how Amazon Kendra weights the field in the search. The default is `true` for `string` fields and `false` for `number` and `date` fields. :param pulumi.Input[bool] sortable: Determines whether the field can be used to sort the results of a query. If you specify sorting on a field that does not have Sortable set to true, Amazon Kendra returns an exception. The default is `false`. """ + IndexDocumentMetadataConfigurationUpdateSearchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + displayable=displayable, + facetable=facetable, + searchable=searchable, + sortable=sortable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + displayable: Optional[pulumi.Input[bool]] = None, + facetable: Optional[pulumi.Input[bool]] = None, + searchable: Optional[pulumi.Input[bool]] = None, + sortable: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if displayable is not None: - pulumi.set(__self__, "displayable", displayable) + _setter("displayable", displayable) if facetable is not None: - pulumi.set(__self__, "facetable", facetable) + _setter("facetable", facetable) if searchable is not None: - pulumi.set(__self__, "searchable", searchable) + _setter("searchable", searchable) if sortable is not None: - pulumi.set(__self__, "sortable", sortable) + _setter("sortable", sortable) @property @pulumi.getter @@ -1803,10 +2475,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['IndexIndexStatisticFaqStatisticArgs']]] faq_statistics: A block that specifies the number of question and answer topics in the index. Detailed below. :param pulumi.Input[Sequence[pulumi.Input['IndexIndexStatisticTextDocumentStatisticArgs']]] text_document_statistics: A block that specifies the number of text documents indexed. Detailed below. """ + IndexIndexStatisticArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + faq_statistics=faq_statistics, + text_document_statistics=text_document_statistics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + faq_statistics: Optional[pulumi.Input[Sequence[pulumi.Input['IndexIndexStatisticFaqStatisticArgs']]]] = None, + text_document_statistics: Optional[pulumi.Input[Sequence[pulumi.Input['IndexIndexStatisticTextDocumentStatisticArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if faq_statistics is None and 'faqStatistics' in kwargs: + faq_statistics = kwargs['faqStatistics'] + if text_document_statistics is None and 'textDocumentStatistics' in kwargs: + text_document_statistics = kwargs['textDocumentStatistics'] + if faq_statistics is not None: - pulumi.set(__self__, "faq_statistics", faq_statistics) + _setter("faq_statistics", faq_statistics) if text_document_statistics is not None: - pulumi.set(__self__, "text_document_statistics", text_document_statistics) + _setter("text_document_statistics", text_document_statistics) @property @pulumi.getter(name="faqStatistics") @@ -1840,8 +2529,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] indexed_question_answers_count: The total number of FAQ questions and answers contained in the index. """ + IndexIndexStatisticFaqStatisticArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + indexed_question_answers_count=indexed_question_answers_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + indexed_question_answers_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if indexed_question_answers_count is None and 'indexedQuestionAnswersCount' in kwargs: + indexed_question_answers_count = kwargs['indexedQuestionAnswersCount'] + if indexed_question_answers_count is not None: - pulumi.set(__self__, "indexed_question_answers_count", indexed_question_answers_count) + _setter("indexed_question_answers_count", indexed_question_answers_count) @property @pulumi.getter(name="indexedQuestionAnswersCount") @@ -1865,10 +2567,27 @@ def __init__(__self__, *, :param pulumi.Input[int] indexed_text_bytes: The total size, in bytes, of the indexed documents. :param pulumi.Input[int] indexed_text_documents_count: The number of text documents indexed. """ + IndexIndexStatisticTextDocumentStatisticArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + indexed_text_bytes=indexed_text_bytes, + indexed_text_documents_count=indexed_text_documents_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + indexed_text_bytes: Optional[pulumi.Input[int]] = None, + indexed_text_documents_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if indexed_text_bytes is None and 'indexedTextBytes' in kwargs: + indexed_text_bytes = kwargs['indexedTextBytes'] + if indexed_text_documents_count is None and 'indexedTextDocumentsCount' in kwargs: + indexed_text_documents_count = kwargs['indexedTextDocumentsCount'] + if indexed_text_bytes is not None: - pulumi.set(__self__, "indexed_text_bytes", indexed_text_bytes) + _setter("indexed_text_bytes", indexed_text_bytes) if indexed_text_documents_count is not None: - pulumi.set(__self__, "indexed_text_documents_count", indexed_text_documents_count) + _setter("indexed_text_documents_count", indexed_text_documents_count) @property @pulumi.getter(name="indexedTextBytes") @@ -1902,8 +2621,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] kms_key_id: The identifier of the AWS KMScustomer master key (CMK). Amazon Kendra doesn't support asymmetric CMKs. """ + IndexServerSideEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="kmsKeyId") @@ -1925,7 +2657,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] user_group_resolution_mode: The identity store provider (mode) you want to use to fetch access levels of groups and users. AWS Single Sign-On is currently the only available mode. Your users and groups must exist in an AWS SSO identity source in order to use this mode. Valid Values are `AWS_SSO` or `NONE`. """ - pulumi.set(__self__, "user_group_resolution_mode", user_group_resolution_mode) + IndexUserGroupResolutionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_group_resolution_mode=user_group_resolution_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_group_resolution_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_group_resolution_mode is None and 'userGroupResolutionMode' in kwargs: + user_group_resolution_mode = kwargs['userGroupResolutionMode'] + if user_group_resolution_mode is None: + raise TypeError("Missing 'user_group_resolution_mode' argument") + + _setter("user_group_resolution_mode", user_group_resolution_mode) @property @pulumi.getter(name="userGroupResolutionMode") @@ -1949,10 +2696,27 @@ def __init__(__self__, *, :param pulumi.Input['IndexUserTokenConfigurationsJsonTokenTypeConfigurationArgs'] json_token_type_configuration: A block that specifies the information about the JSON token type configuration. Detailed below. :param pulumi.Input['IndexUserTokenConfigurationsJwtTokenTypeConfigurationArgs'] jwt_token_type_configuration: A block that specifies the information about the JWT token type configuration. Detailed below. """ + IndexUserTokenConfigurationsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + json_token_type_configuration=json_token_type_configuration, + jwt_token_type_configuration=jwt_token_type_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + json_token_type_configuration: Optional[pulumi.Input['IndexUserTokenConfigurationsJsonTokenTypeConfigurationArgs']] = None, + jwt_token_type_configuration: Optional[pulumi.Input['IndexUserTokenConfigurationsJwtTokenTypeConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if json_token_type_configuration is None and 'jsonTokenTypeConfiguration' in kwargs: + json_token_type_configuration = kwargs['jsonTokenTypeConfiguration'] + if jwt_token_type_configuration is None and 'jwtTokenTypeConfiguration' in kwargs: + jwt_token_type_configuration = kwargs['jwtTokenTypeConfiguration'] + if json_token_type_configuration is not None: - pulumi.set(__self__, "json_token_type_configuration", json_token_type_configuration) + _setter("json_token_type_configuration", json_token_type_configuration) if jwt_token_type_configuration is not None: - pulumi.set(__self__, "jwt_token_type_configuration", jwt_token_type_configuration) + _setter("jwt_token_type_configuration", jwt_token_type_configuration) @property @pulumi.getter(name="jsonTokenTypeConfiguration") @@ -1988,8 +2752,29 @@ def __init__(__self__, *, :param pulumi.Input[str] group_attribute_field: The group attribute field. Minimum length of 1. Maximum length of 2048. :param pulumi.Input[str] user_name_attribute_field: The user name attribute field. Minimum length of 1. Maximum length of 2048. """ - pulumi.set(__self__, "group_attribute_field", group_attribute_field) - pulumi.set(__self__, "user_name_attribute_field", user_name_attribute_field) + IndexUserTokenConfigurationsJsonTokenTypeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_attribute_field=group_attribute_field, + user_name_attribute_field=user_name_attribute_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_attribute_field: Optional[pulumi.Input[str]] = None, + user_name_attribute_field: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_attribute_field is None and 'groupAttributeField' in kwargs: + group_attribute_field = kwargs['groupAttributeField'] + if group_attribute_field is None: + raise TypeError("Missing 'group_attribute_field' argument") + if user_name_attribute_field is None and 'userNameAttributeField' in kwargs: + user_name_attribute_field = kwargs['userNameAttributeField'] + if user_name_attribute_field is None: + raise TypeError("Missing 'user_name_attribute_field' argument") + + _setter("group_attribute_field", group_attribute_field) + _setter("user_name_attribute_field", user_name_attribute_field) @property @pulumi.getter(name="groupAttributeField") @@ -2035,19 +2820,54 @@ def __init__(__self__, *, :param pulumi.Input[str] url: The signing key URL. Valid pattern is `^(https?|ftp|file):\\/\\/([^\\s]*)` :param pulumi.Input[str] user_name_attribute_field: The user name attribute field. Minimum length of 1. Maximum length of 100. """ - pulumi.set(__self__, "key_location", key_location) + IndexUserTokenConfigurationsJwtTokenTypeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_location=key_location, + claim_regex=claim_regex, + group_attribute_field=group_attribute_field, + issuer=issuer, + secrets_manager_arn=secrets_manager_arn, + url=url, + user_name_attribute_field=user_name_attribute_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_location: Optional[pulumi.Input[str]] = None, + claim_regex: Optional[pulumi.Input[str]] = None, + group_attribute_field: Optional[pulumi.Input[str]] = None, + issuer: Optional[pulumi.Input[str]] = None, + secrets_manager_arn: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + user_name_attribute_field: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_location is None and 'keyLocation' in kwargs: + key_location = kwargs['keyLocation'] + if key_location is None: + raise TypeError("Missing 'key_location' argument") + if claim_regex is None and 'claimRegex' in kwargs: + claim_regex = kwargs['claimRegex'] + if group_attribute_field is None and 'groupAttributeField' in kwargs: + group_attribute_field = kwargs['groupAttributeField'] + if secrets_manager_arn is None and 'secretsManagerArn' in kwargs: + secrets_manager_arn = kwargs['secretsManagerArn'] + if user_name_attribute_field is None and 'userNameAttributeField' in kwargs: + user_name_attribute_field = kwargs['userNameAttributeField'] + + _setter("key_location", key_location) if claim_regex is not None: - pulumi.set(__self__, "claim_regex", claim_regex) + _setter("claim_regex", claim_regex) if group_attribute_field is not None: - pulumi.set(__self__, "group_attribute_field", group_attribute_field) + _setter("group_attribute_field", group_attribute_field) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) if secrets_manager_arn is not None: - pulumi.set(__self__, "secrets_manager_arn", secrets_manager_arn) + _setter("secrets_manager_arn", secrets_manager_arn) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if user_name_attribute_field is not None: - pulumi.set(__self__, "user_name_attribute_field", user_name_attribute_field) + _setter("user_name_attribute_field", user_name_attribute_field) @property @pulumi.getter(name="keyLocation") @@ -2145,8 +2965,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + QuerySuggestionsBlockListSourceS3PathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -2186,8 +3023,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + ThesaurusSourceS3PathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/kendra/data_source.py b/sdk/python/pulumi_aws/kendra/data_source.py index 35debf157d6..63c1e7f9a9b 100644 --- a/sdk/python/pulumi_aws/kendra/data_source.py +++ b/sdk/python/pulumi_aws/kendra/data_source.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,24 +41,65 @@ def __init__(__self__, *, :param pulumi.Input[str] schedule: Sets the frequency for Amazon Kendra to check the documents in your Data Source repository and update the index. If you don't set a schedule Amazon Kendra will not periodically update the index. You can call the `StartDataSourceSyncJob` API to update the index. :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. """ - pulumi.set(__self__, "index_id", index_id) - pulumi.set(__self__, "type", type) + DataSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_id=index_id, + type=type, + configuration=configuration, + custom_document_enrichment_configuration=custom_document_enrichment_configuration, + description=description, + language_code=language_code, + name=name, + role_arn=role_arn, + schedule=schedule, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['DataSourceConfigurationArgs']] = None, + custom_document_enrichment_configuration: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if index_id is None: + raise TypeError("Missing 'index_id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if custom_document_enrichment_configuration is None and 'customDocumentEnrichmentConfiguration' in kwargs: + custom_document_enrichment_configuration = kwargs['customDocumentEnrichmentConfiguration'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("index_id", index_id) + _setter("type", type) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if custom_document_enrichment_configuration is not None: - pulumi.set(__self__, "custom_document_enrichment_configuration", custom_document_enrichment_configuration) + _setter("custom_document_enrichment_configuration", custom_document_enrichment_configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="indexId") @@ -225,43 +266,104 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] updated_at: The Unix timestamp of when the Data Source was last updated. """ + _DataSourceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + configuration=configuration, + created_at=created_at, + custom_document_enrichment_configuration=custom_document_enrichment_configuration, + data_source_id=data_source_id, + description=description, + error_message=error_message, + index_id=index_id, + language_code=language_code, + name=name, + role_arn=role_arn, + schedule=schedule, + status=status, + tags=tags, + tags_all=tags_all, + type=type, + updated_at=updated_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['DataSourceConfigurationArgs']] = None, + created_at: Optional[pulumi.Input[str]] = None, + custom_document_enrichment_configuration: Optional[pulumi.Input['DataSourceCustomDocumentEnrichmentConfigurationArgs']] = None, + data_source_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + error_message: Optional[pulumi.Input[str]] = None, + index_id: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if custom_document_enrichment_configuration is None and 'customDocumentEnrichmentConfiguration' in kwargs: + custom_document_enrichment_configuration = kwargs['customDocumentEnrichmentConfiguration'] + if data_source_id is None and 'dataSourceId' in kwargs: + data_source_id = kwargs['dataSourceId'] + if error_message is None and 'errorMessage' in kwargs: + error_message = kwargs['errorMessage'] + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if updated_at is None and 'updatedAt' in kwargs: + updated_at = kwargs['updatedAt'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if custom_document_enrichment_configuration is not None: - pulumi.set(__self__, "custom_document_enrichment_configuration", custom_document_enrichment_configuration) + _setter("custom_document_enrichment_configuration", custom_document_enrichment_configuration) if data_source_id is not None: - pulumi.set(__self__, "data_source_id", data_source_id) + _setter("data_source_id", data_source_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if error_message is not None: - pulumi.set(__self__, "error_message", error_message) + _setter("error_message", error_message) if index_id is not None: - pulumi.set(__self__, "index_id", index_id) + _setter("index_id", index_id) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if updated_at is not None: - pulumi.set(__self__, "updated_at", updated_at) + _setter("updated_at", updated_at) @property @pulumi.getter @@ -1096,6 +1198,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataSourceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1120,7 +1226,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DataSourceArgs.__new__(DataSourceArgs) + configuration = _utilities.configure(configuration, DataSourceConfigurationArgs, True) __props__.__dict__["configuration"] = configuration + custom_document_enrichment_configuration = _utilities.configure(custom_document_enrichment_configuration, DataSourceCustomDocumentEnrichmentConfigurationArgs, True) __props__.__dict__["custom_document_enrichment_configuration"] = custom_document_enrichment_configuration __props__.__dict__["description"] = description if index_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/kendra/experience.py b/sdk/python/pulumi_aws/kendra/experience.py index d4883887312..3aec36354e2 100644 --- a/sdk/python/pulumi_aws/kendra/experience.py +++ b/sdk/python/pulumi_aws/kendra/experience.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,14 +31,41 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description for your Amazon Kendra experience. :param pulumi.Input[str] name: A name for your Amazon Kendra experience. """ - pulumi.set(__self__, "index_id", index_id) - pulumi.set(__self__, "role_arn", role_arn) + ExperienceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_id=index_id, + role_arn=role_arn, + configuration=configuration, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['ExperienceConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if index_id is None: + raise TypeError("Missing 'index_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("index_id", index_id) + _setter("role_arn", role_arn) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="indexId") @@ -129,24 +156,57 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] status: The current processing status of your Amazon Kendra experience. """ + _ExperienceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + configuration=configuration, + description=description, + endpoints=endpoints, + experience_id=experience_id, + index_id=index_id, + name=name, + role_arn=role_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['ExperienceConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ExperienceEndpointArgs']]]] = None, + experience_id: Optional[pulumi.Input[str]] = None, + index_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if experience_id is None and 'experienceId' in kwargs: + experience_id = kwargs['experienceId'] + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if experience_id is not None: - pulumi.set(__self__, "experience_id", experience_id) + _setter("experience_id", experience_id) if index_id is not None: - pulumi.set(__self__, "index_id", index_id) + _setter("index_id", index_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -362,6 +422,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ExperienceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -381,6 +445,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ExperienceArgs.__new__(ExperienceArgs) + configuration = _utilities.configure(configuration, ExperienceConfigurationArgs, True) __props__.__dict__["configuration"] = configuration __props__.__dict__["description"] = description if index_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/kendra/faq.py b/sdk/python/pulumi_aws/kendra/faq.py index 19eae19f805..1b6d936044c 100644 --- a/sdk/python/pulumi_aws/kendra/faq.py +++ b/sdk/python/pulumi_aws/kendra/faq.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,19 +37,60 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name that should be associated with the FAQ. :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. """ - pulumi.set(__self__, "index_id", index_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "s3_path", s3_path) + FaqArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_id=index_id, + role_arn=role_arn, + s3_path=s3_path, + description=description, + file_format=file_format, + language_code=language_code, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + s3_path: Optional[pulumi.Input['FaqS3PathArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + file_format: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if index_id is None: + raise TypeError("Missing 'index_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if s3_path is None and 's3Path' in kwargs: + s3_path = kwargs['s3Path'] + if s3_path is None: + raise TypeError("Missing 's3_path' argument") + if file_format is None and 'fileFormat' in kwargs: + file_format = kwargs['fileFormat'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + + _setter("index_id", index_id) + _setter("role_arn", role_arn) + _setter("s3_path", s3_path) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if file_format is not None: - pulumi.set(__self__, "file_format", file_format) + _setter("file_format", file_format) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="indexId") @@ -188,39 +229,98 @@ def __init__(__self__, *, :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] updated_at: The date and time that the FAQ was last updated. """ + _FaqState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_at=created_at, + description=description, + error_message=error_message, + faq_id=faq_id, + file_format=file_format, + index_id=index_id, + language_code=language_code, + name=name, + role_arn=role_arn, + s3_path=s3_path, + status=status, + tags=tags, + tags_all=tags_all, + updated_at=updated_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + error_message: Optional[pulumi.Input[str]] = None, + faq_id: Optional[pulumi.Input[str]] = None, + file_format: Optional[pulumi.Input[str]] = None, + index_id: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + s3_path: Optional[pulumi.Input['FaqS3PathArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if error_message is None and 'errorMessage' in kwargs: + error_message = kwargs['errorMessage'] + if faq_id is None and 'faqId' in kwargs: + faq_id = kwargs['faqId'] + if file_format is None and 'fileFormat' in kwargs: + file_format = kwargs['fileFormat'] + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if s3_path is None and 's3Path' in kwargs: + s3_path = kwargs['s3Path'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if updated_at is None and 'updatedAt' in kwargs: + updated_at = kwargs['updatedAt'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if error_message is not None: - pulumi.set(__self__, "error_message", error_message) + _setter("error_message", error_message) if faq_id is not None: - pulumi.set(__self__, "faq_id", faq_id) + _setter("faq_id", faq_id) if file_format is not None: - pulumi.set(__self__, "file_format", file_format) + _setter("file_format", file_format) if index_id is not None: - pulumi.set(__self__, "index_id", index_id) + _setter("index_id", index_id) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if s3_path is not None: - pulumi.set(__self__, "s3_path", s3_path) + _setter("s3_path", s3_path) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if updated_at is not None: - pulumi.set(__self__, "updated_at", updated_at) + _setter("updated_at", updated_at) @property @pulumi.getter @@ -571,6 +671,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FaqArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -603,6 +707,7 @@ def _internal_init(__self__, if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") __props__.__dict__["role_arn"] = role_arn + s3_path = _utilities.configure(s3_path, FaqS3PathArgs, True) if s3_path is None and not opts.urn: raise TypeError("Missing required property 's3_path'") __props__.__dict__["s3_path"] = s3_path diff --git a/sdk/python/pulumi_aws/kendra/get_experience.py b/sdk/python/pulumi_aws/kendra/get_experience.py index a0a0c61536d..83905fa8633 100644 --- a/sdk/python/pulumi_aws/kendra/get_experience.py +++ b/sdk/python/pulumi_aws/kendra/get_experience.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/kendra/get_faq.py b/sdk/python/pulumi_aws/kendra/get_faq.py index d9f99733b6f..5d6b166d903 100644 --- a/sdk/python/pulumi_aws/kendra/get_faq.py +++ b/sdk/python/pulumi_aws/kendra/get_faq.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/kendra/get_index.py b/sdk/python/pulumi_aws/kendra/get_index.py index 4bbe09c3b23..c4c3dd6f002 100644 --- a/sdk/python/pulumi_aws/kendra/get_index.py +++ b/sdk/python/pulumi_aws/kendra/get_index.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/kendra/get_query_suggestions_block_list.py b/sdk/python/pulumi_aws/kendra/get_query_suggestions_block_list.py index 1b0f0985472..c3a1d35aff8 100644 --- a/sdk/python/pulumi_aws/kendra/get_query_suggestions_block_list.py +++ b/sdk/python/pulumi_aws/kendra/get_query_suggestions_block_list.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/kendra/get_thesaurus.py b/sdk/python/pulumi_aws/kendra/get_thesaurus.py index 9afee95ddb8..9e67cbdf10c 100644 --- a/sdk/python/pulumi_aws/kendra/get_thesaurus.py +++ b/sdk/python/pulumi_aws/kendra/get_thesaurus.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/kendra/index.py b/sdk/python/pulumi_aws/kendra/index.py index 1733ae8ebe1..7bcfb6db9d6 100644 --- a/sdk/python/pulumi_aws/kendra/index.py +++ b/sdk/python/pulumi_aws/kendra/index.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -42,27 +42,74 @@ def __init__(__self__, *, :param pulumi.Input['IndexUserGroupResolutionConfigurationArgs'] user_group_resolution_configuration: A block that enables fetching access levels of groups and users from an AWS Single Sign-On identity source. To configure this, see [UserGroupResolutionConfiguration](https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html). Detailed below. :param pulumi.Input['IndexUserTokenConfigurationsArgs'] user_token_configurations: A block that specifies the user token configuration. Detailed below. """ - pulumi.set(__self__, "role_arn", role_arn) + IndexArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + capacity_units=capacity_units, + description=description, + document_metadata_configuration_updates=document_metadata_configuration_updates, + edition=edition, + name=name, + server_side_encryption_configuration=server_side_encryption_configuration, + tags=tags, + user_context_policy=user_context_policy, + user_group_resolution_configuration=user_group_resolution_configuration, + user_token_configurations=user_token_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + capacity_units: Optional[pulumi.Input['IndexCapacityUnitsArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + document_metadata_configuration_updates: Optional[pulumi.Input[Sequence[pulumi.Input['IndexDocumentMetadataConfigurationUpdateArgs']]]] = None, + edition: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + server_side_encryption_configuration: Optional[pulumi.Input['IndexServerSideEncryptionConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_context_policy: Optional[pulumi.Input[str]] = None, + user_group_resolution_configuration: Optional[pulumi.Input['IndexUserGroupResolutionConfigurationArgs']] = None, + user_token_configurations: Optional[pulumi.Input['IndexUserTokenConfigurationsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if capacity_units is None and 'capacityUnits' in kwargs: + capacity_units = kwargs['capacityUnits'] + if document_metadata_configuration_updates is None and 'documentMetadataConfigurationUpdates' in kwargs: + document_metadata_configuration_updates = kwargs['documentMetadataConfigurationUpdates'] + if server_side_encryption_configuration is None and 'serverSideEncryptionConfiguration' in kwargs: + server_side_encryption_configuration = kwargs['serverSideEncryptionConfiguration'] + if user_context_policy is None and 'userContextPolicy' in kwargs: + user_context_policy = kwargs['userContextPolicy'] + if user_group_resolution_configuration is None and 'userGroupResolutionConfiguration' in kwargs: + user_group_resolution_configuration = kwargs['userGroupResolutionConfiguration'] + if user_token_configurations is None and 'userTokenConfigurations' in kwargs: + user_token_configurations = kwargs['userTokenConfigurations'] + + _setter("role_arn", role_arn) if capacity_units is not None: - pulumi.set(__self__, "capacity_units", capacity_units) + _setter("capacity_units", capacity_units) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if document_metadata_configuration_updates is not None: - pulumi.set(__self__, "document_metadata_configuration_updates", document_metadata_configuration_updates) + _setter("document_metadata_configuration_updates", document_metadata_configuration_updates) if edition is not None: - pulumi.set(__self__, "edition", edition) + _setter("edition", edition) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if server_side_encryption_configuration is not None: - pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) + _setter("server_side_encryption_configuration", server_side_encryption_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_context_policy is not None: - pulumi.set(__self__, "user_context_policy", user_context_policy) + _setter("user_context_policy", user_context_policy) if user_group_resolution_configuration is not None: - pulumi.set(__self__, "user_group_resolution_configuration", user_group_resolution_configuration) + _setter("user_group_resolution_configuration", user_group_resolution_configuration) if user_token_configurations is not None: - pulumi.set(__self__, "user_token_configurations", user_token_configurations) + _setter("user_token_configurations", user_token_configurations) @property @pulumi.getter(name="roleArn") @@ -241,45 +288,114 @@ def __init__(__self__, *, :param pulumi.Input['IndexUserGroupResolutionConfigurationArgs'] user_group_resolution_configuration: A block that enables fetching access levels of groups and users from an AWS Single Sign-On identity source. To configure this, see [UserGroupResolutionConfiguration](https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html). Detailed below. :param pulumi.Input['IndexUserTokenConfigurationsArgs'] user_token_configurations: A block that specifies the user token configuration. Detailed below. """ + _IndexState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + capacity_units=capacity_units, + created_at=created_at, + description=description, + document_metadata_configuration_updates=document_metadata_configuration_updates, + edition=edition, + error_message=error_message, + index_statistics=index_statistics, + name=name, + role_arn=role_arn, + server_side_encryption_configuration=server_side_encryption_configuration, + status=status, + tags=tags, + tags_all=tags_all, + updated_at=updated_at, + user_context_policy=user_context_policy, + user_group_resolution_configuration=user_group_resolution_configuration, + user_token_configurations=user_token_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + capacity_units: Optional[pulumi.Input['IndexCapacityUnitsArgs']] = None, + created_at: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + document_metadata_configuration_updates: Optional[pulumi.Input[Sequence[pulumi.Input['IndexDocumentMetadataConfigurationUpdateArgs']]]] = None, + edition: Optional[pulumi.Input[str]] = None, + error_message: Optional[pulumi.Input[str]] = None, + index_statistics: Optional[pulumi.Input[Sequence[pulumi.Input['IndexIndexStatisticArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + server_side_encryption_configuration: Optional[pulumi.Input['IndexServerSideEncryptionConfigurationArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + user_context_policy: Optional[pulumi.Input[str]] = None, + user_group_resolution_configuration: Optional[pulumi.Input['IndexUserGroupResolutionConfigurationArgs']] = None, + user_token_configurations: Optional[pulumi.Input['IndexUserTokenConfigurationsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_units is None and 'capacityUnits' in kwargs: + capacity_units = kwargs['capacityUnits'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if document_metadata_configuration_updates is None and 'documentMetadataConfigurationUpdates' in kwargs: + document_metadata_configuration_updates = kwargs['documentMetadataConfigurationUpdates'] + if error_message is None and 'errorMessage' in kwargs: + error_message = kwargs['errorMessage'] + if index_statistics is None and 'indexStatistics' in kwargs: + index_statistics = kwargs['indexStatistics'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if server_side_encryption_configuration is None and 'serverSideEncryptionConfiguration' in kwargs: + server_side_encryption_configuration = kwargs['serverSideEncryptionConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if updated_at is None and 'updatedAt' in kwargs: + updated_at = kwargs['updatedAt'] + if user_context_policy is None and 'userContextPolicy' in kwargs: + user_context_policy = kwargs['userContextPolicy'] + if user_group_resolution_configuration is None and 'userGroupResolutionConfiguration' in kwargs: + user_group_resolution_configuration = kwargs['userGroupResolutionConfiguration'] + if user_token_configurations is None and 'userTokenConfigurations' in kwargs: + user_token_configurations = kwargs['userTokenConfigurations'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if capacity_units is not None: - pulumi.set(__self__, "capacity_units", capacity_units) + _setter("capacity_units", capacity_units) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if document_metadata_configuration_updates is not None: - pulumi.set(__self__, "document_metadata_configuration_updates", document_metadata_configuration_updates) + _setter("document_metadata_configuration_updates", document_metadata_configuration_updates) if edition is not None: - pulumi.set(__self__, "edition", edition) + _setter("edition", edition) if error_message is not None: - pulumi.set(__self__, "error_message", error_message) + _setter("error_message", error_message) if index_statistics is not None: - pulumi.set(__self__, "index_statistics", index_statistics) + _setter("index_statistics", index_statistics) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if server_side_encryption_configuration is not None: - pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) + _setter("server_side_encryption_configuration", server_side_encryption_configuration) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if updated_at is not None: - pulumi.set(__self__, "updated_at", updated_at) + _setter("updated_at", updated_at) if user_context_policy is not None: - pulumi.set(__self__, "user_context_policy", user_context_policy) + _setter("user_context_policy", user_context_policy) if user_group_resolution_configuration is not None: - pulumi.set(__self__, "user_group_resolution_configuration", user_group_resolution_configuration) + _setter("user_group_resolution_configuration", user_group_resolution_configuration) if user_token_configurations is not None: - pulumi.set(__self__, "user_token_configurations", user_token_configurations) + _setter("user_token_configurations", user_token_configurations) @property @pulumi.getter @@ -1674,6 +1790,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IndexArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1699,6 +1819,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = IndexArgs.__new__(IndexArgs) + capacity_units = _utilities.configure(capacity_units, IndexCapacityUnitsArgs, True) __props__.__dict__["capacity_units"] = capacity_units __props__.__dict__["description"] = description __props__.__dict__["document_metadata_configuration_updates"] = document_metadata_configuration_updates @@ -1707,10 +1828,13 @@ def _internal_init(__self__, if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") __props__.__dict__["role_arn"] = role_arn + server_side_encryption_configuration = _utilities.configure(server_side_encryption_configuration, IndexServerSideEncryptionConfigurationArgs, True) __props__.__dict__["server_side_encryption_configuration"] = server_side_encryption_configuration __props__.__dict__["tags"] = tags __props__.__dict__["user_context_policy"] = user_context_policy + user_group_resolution_configuration = _utilities.configure(user_group_resolution_configuration, IndexUserGroupResolutionConfigurationArgs, True) __props__.__dict__["user_group_resolution_configuration"] = user_group_resolution_configuration + user_token_configurations = _utilities.configure(user_token_configurations, IndexUserTokenConfigurationsArgs, True) __props__.__dict__["user_token_configurations"] = user_token_configurations __props__.__dict__["arn"] = None __props__.__dict__["created_at"] = None diff --git a/sdk/python/pulumi_aws/kendra/outputs.py b/sdk/python/pulumi_aws/kendra/outputs.py index 5a53291747f..834f7a2508e 100644 --- a/sdk/python/pulumi_aws/kendra/outputs.py +++ b/sdk/python/pulumi_aws/kendra/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -102,10 +102,27 @@ def __init__(__self__, *, :param 'DataSourceConfigurationS3ConfigurationArgs' s3_configuration: A block that provides the configuration information to connect to an Amazon S3 bucket as your data source. Detailed below. :param 'DataSourceConfigurationWebCrawlerConfigurationArgs' web_crawler_configuration: A block that provides the configuration information required for Amazon Kendra Web Crawler. Detailed below. """ + DataSourceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_configuration=s3_configuration, + web_crawler_configuration=web_crawler_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_configuration: Optional['outputs.DataSourceConfigurationS3Configuration'] = None, + web_crawler_configuration: Optional['outputs.DataSourceConfigurationWebCrawlerConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if web_crawler_configuration is None and 'webCrawlerConfiguration' in kwargs: + web_crawler_configuration = kwargs['webCrawlerConfiguration'] + if s3_configuration is not None: - pulumi.set(__self__, "s3_configuration", s3_configuration) + _setter("s3_configuration", s3_configuration) if web_crawler_configuration is not None: - pulumi.set(__self__, "web_crawler_configuration", web_crawler_configuration) + _setter("web_crawler_configuration", web_crawler_configuration) @property @pulumi.getter(name="s3Configuration") @@ -168,17 +185,52 @@ def __init__(__self__, *, :param Sequence[str] inclusion_patterns: A list of glob patterns for documents that should be indexed. If a document that matches an inclusion pattern also matches an exclusion pattern, the document is not indexed. Refer to [Inclusion Patterns for more examples](https://docs.aws.amazon.com/kendra/latest/dg/API_S3DataSourceConfiguration.html#Kendra-Type-S3DataSourceConfiguration-InclusionPatterns). :param Sequence[str] inclusion_prefixes: A list of S3 prefixes for the documents that should be included in the index. """ - pulumi.set(__self__, "bucket_name", bucket_name) + DataSourceConfigurationS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + access_control_list_configuration=access_control_list_configuration, + documents_metadata_configuration=documents_metadata_configuration, + exclusion_patterns=exclusion_patterns, + inclusion_patterns=inclusion_patterns, + inclusion_prefixes=inclusion_prefixes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + access_control_list_configuration: Optional['outputs.DataSourceConfigurationS3ConfigurationAccessControlListConfiguration'] = None, + documents_metadata_configuration: Optional['outputs.DataSourceConfigurationS3ConfigurationDocumentsMetadataConfiguration'] = None, + exclusion_patterns: Optional[Sequence[str]] = None, + inclusion_patterns: Optional[Sequence[str]] = None, + inclusion_prefixes: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if access_control_list_configuration is None and 'accessControlListConfiguration' in kwargs: + access_control_list_configuration = kwargs['accessControlListConfiguration'] + if documents_metadata_configuration is None and 'documentsMetadataConfiguration' in kwargs: + documents_metadata_configuration = kwargs['documentsMetadataConfiguration'] + if exclusion_patterns is None and 'exclusionPatterns' in kwargs: + exclusion_patterns = kwargs['exclusionPatterns'] + if inclusion_patterns is None and 'inclusionPatterns' in kwargs: + inclusion_patterns = kwargs['inclusionPatterns'] + if inclusion_prefixes is None and 'inclusionPrefixes' in kwargs: + inclusion_prefixes = kwargs['inclusionPrefixes'] + + _setter("bucket_name", bucket_name) if access_control_list_configuration is not None: - pulumi.set(__self__, "access_control_list_configuration", access_control_list_configuration) + _setter("access_control_list_configuration", access_control_list_configuration) if documents_metadata_configuration is not None: - pulumi.set(__self__, "documents_metadata_configuration", documents_metadata_configuration) + _setter("documents_metadata_configuration", documents_metadata_configuration) if exclusion_patterns is not None: - pulumi.set(__self__, "exclusion_patterns", exclusion_patterns) + _setter("exclusion_patterns", exclusion_patterns) if inclusion_patterns is not None: - pulumi.set(__self__, "inclusion_patterns", inclusion_patterns) + _setter("inclusion_patterns", inclusion_patterns) if inclusion_prefixes is not None: - pulumi.set(__self__, "inclusion_prefixes", inclusion_prefixes) + _setter("inclusion_prefixes", inclusion_prefixes) @property @pulumi.getter(name="bucketName") @@ -253,8 +305,21 @@ def __init__(__self__, *, """ :param str key_path: Path to the AWS S3 bucket that contains the ACL files. """ + DataSourceConfigurationS3ConfigurationAccessControlListConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_path=key_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_path is None and 'keyPath' in kwargs: + key_path = kwargs['keyPath'] + if key_path is not None: - pulumi.set(__self__, "key_path", key_path) + _setter("key_path", key_path) @property @pulumi.getter(name="keyPath") @@ -289,8 +354,21 @@ def __init__(__self__, *, """ :param str s3_prefix: A prefix used to filter metadata configuration files in the AWS S3 bucket. The S3 bucket might contain multiple metadata files. Use `s3_prefix` to include only the desired metadata files. """ + DataSourceConfigurationS3ConfigurationDocumentsMetadataConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_prefix=s3_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_prefix is None and 's3Prefix' in kwargs: + s3_prefix = kwargs['s3Prefix'] + if s3_prefix is not None: - pulumi.set(__self__, "s3_prefix", s3_prefix) + _setter("s3_prefix", s3_prefix) @property @pulumi.getter(name="s3Prefix") @@ -355,23 +433,68 @@ def __init__(__self__, *, :param Sequence[str] url_exclusion_patterns: A list of regular expression patterns to exclude certain URLs to crawl. URLs that match the patterns are excluded from the index. URLs that don't match the patterns are included in the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index. Array Members: Minimum number of `0` items. Maximum number of `100` items. Length Constraints: Minimum length of `1`. Maximum length of `150`. :param Sequence[str] url_inclusion_patterns: A list of regular expression patterns to include certain URLs to crawl. URLs that match the patterns are included in the index. URLs that don't match the patterns are excluded from the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index. Array Members: Minimum number of `0` items. Maximum number of `100` items. Length Constraints: Minimum length of `1`. Maximum length of `150`. """ - pulumi.set(__self__, "urls", urls) + DataSourceConfigurationWebCrawlerConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + urls=urls, + authentication_configuration=authentication_configuration, + crawl_depth=crawl_depth, + max_content_size_per_page_in_mega_bytes=max_content_size_per_page_in_mega_bytes, + max_links_per_page=max_links_per_page, + max_urls_per_minute_crawl_rate=max_urls_per_minute_crawl_rate, + proxy_configuration=proxy_configuration, + url_exclusion_patterns=url_exclusion_patterns, + url_inclusion_patterns=url_inclusion_patterns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + urls: Optional['outputs.DataSourceConfigurationWebCrawlerConfigurationUrls'] = None, + authentication_configuration: Optional['outputs.DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfiguration'] = None, + crawl_depth: Optional[int] = None, + max_content_size_per_page_in_mega_bytes: Optional[float] = None, + max_links_per_page: Optional[int] = None, + max_urls_per_minute_crawl_rate: Optional[int] = None, + proxy_configuration: Optional['outputs.DataSourceConfigurationWebCrawlerConfigurationProxyConfiguration'] = None, + url_exclusion_patterns: Optional[Sequence[str]] = None, + url_inclusion_patterns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if urls is None: + raise TypeError("Missing 'urls' argument") + if authentication_configuration is None and 'authenticationConfiguration' in kwargs: + authentication_configuration = kwargs['authenticationConfiguration'] + if crawl_depth is None and 'crawlDepth' in kwargs: + crawl_depth = kwargs['crawlDepth'] + if max_content_size_per_page_in_mega_bytes is None and 'maxContentSizePerPageInMegaBytes' in kwargs: + max_content_size_per_page_in_mega_bytes = kwargs['maxContentSizePerPageInMegaBytes'] + if max_links_per_page is None and 'maxLinksPerPage' in kwargs: + max_links_per_page = kwargs['maxLinksPerPage'] + if max_urls_per_minute_crawl_rate is None and 'maxUrlsPerMinuteCrawlRate' in kwargs: + max_urls_per_minute_crawl_rate = kwargs['maxUrlsPerMinuteCrawlRate'] + if proxy_configuration is None and 'proxyConfiguration' in kwargs: + proxy_configuration = kwargs['proxyConfiguration'] + if url_exclusion_patterns is None and 'urlExclusionPatterns' in kwargs: + url_exclusion_patterns = kwargs['urlExclusionPatterns'] + if url_inclusion_patterns is None and 'urlInclusionPatterns' in kwargs: + url_inclusion_patterns = kwargs['urlInclusionPatterns'] + + _setter("urls", urls) if authentication_configuration is not None: - pulumi.set(__self__, "authentication_configuration", authentication_configuration) + _setter("authentication_configuration", authentication_configuration) if crawl_depth is not None: - pulumi.set(__self__, "crawl_depth", crawl_depth) + _setter("crawl_depth", crawl_depth) if max_content_size_per_page_in_mega_bytes is not None: - pulumi.set(__self__, "max_content_size_per_page_in_mega_bytes", max_content_size_per_page_in_mega_bytes) + _setter("max_content_size_per_page_in_mega_bytes", max_content_size_per_page_in_mega_bytes) if max_links_per_page is not None: - pulumi.set(__self__, "max_links_per_page", max_links_per_page) + _setter("max_links_per_page", max_links_per_page) if max_urls_per_minute_crawl_rate is not None: - pulumi.set(__self__, "max_urls_per_minute_crawl_rate", max_urls_per_minute_crawl_rate) + _setter("max_urls_per_minute_crawl_rate", max_urls_per_minute_crawl_rate) if proxy_configuration is not None: - pulumi.set(__self__, "proxy_configuration", proxy_configuration) + _setter("proxy_configuration", proxy_configuration) if url_exclusion_patterns is not None: - pulumi.set(__self__, "url_exclusion_patterns", url_exclusion_patterns) + _setter("url_exclusion_patterns", url_exclusion_patterns) if url_inclusion_patterns is not None: - pulumi.set(__self__, "url_inclusion_patterns", url_inclusion_patterns) + _setter("url_inclusion_patterns", url_inclusion_patterns) @property @pulumi.getter @@ -470,8 +593,21 @@ def __init__(__self__, *, """ :param Sequence['DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationBasicAuthenticationArgs'] basic_authentications: The list of configuration information that's required to connect to and crawl a website host using basic authentication credentials. The list includes the name and port number of the website host. Detailed below. """ + DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_authentications=basic_authentications, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_authentications: Optional[Sequence['outputs.DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationBasicAuthentication']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_authentications is None and 'basicAuthentications' in kwargs: + basic_authentications = kwargs['basicAuthentications'] + if basic_authentications is not None: - pulumi.set(__self__, "basic_authentications", basic_authentications) + _setter("basic_authentications", basic_authentications) @property @pulumi.getter(name="basicAuthentications") @@ -493,9 +629,30 @@ def __init__(__self__, *, :param str host: The name of the website host you want to connect to using authentication credentials. For example, the host name of `https://a.example.com/page1.html` is `"a.example.com"`. :param int port: The port number of the website host you want to connect to using authentication credentials. For example, the port for `https://a.example.com/page1.html` is `443`, the standard port for HTTPS. """ - pulumi.set(__self__, "credentials", credentials) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationBasicAuthentication._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials=credentials, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credentials is None: + raise TypeError("Missing 'credentials' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("credentials", credentials) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -533,10 +690,29 @@ def __init__(__self__, *, :param int port: The port number of the website host you want to connect to via a web proxy server. For example, the port for `https://a.example.com/page1.html` is `443`, the standard port for HTTPS. :param str credentials: Your secret ARN, which you can create in AWS Secrets Manager. The credentials are optional. You use a secret if web proxy credentials are required to connect to a website host. Amazon Kendra currently support basic authentication to connect to a web proxy server. The secret stores your credentials. """ - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceConfigurationWebCrawlerConfigurationProxyConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + host=host, + port=port, + credentials=credentials, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host: Optional[str] = None, + port: Optional[int] = None, + credentials: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("host", host) + _setter("port", port) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) @property @pulumi.getter @@ -591,10 +767,27 @@ def __init__(__self__, *, :param 'DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs' seed_url_configuration: A block that specifies the configuration of the seed or starting point URLs of the websites you want to crawl. You can choose to crawl only the website host names, or the website host names with subdomains, or the website host names with subdomains and other domains that the webpages link to. You can list up to `100` seed URLs. Detailed below. :param 'DataSourceConfigurationWebCrawlerConfigurationUrlsSiteMapsConfigurationArgs' site_maps_configuration: A block that specifies the configuration of the sitemap URLs of the websites you want to crawl. Only URLs belonging to the same website host names are crawled. You can list up to `3` sitemap URLs. Detailed below. """ + DataSourceConfigurationWebCrawlerConfigurationUrls._configure( + lambda key, value: pulumi.set(__self__, key, value), + seed_url_configuration=seed_url_configuration, + site_maps_configuration=site_maps_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + seed_url_configuration: Optional['outputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfiguration'] = None, + site_maps_configuration: Optional['outputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSiteMapsConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if seed_url_configuration is None and 'seedUrlConfiguration' in kwargs: + seed_url_configuration = kwargs['seedUrlConfiguration'] + if site_maps_configuration is None and 'siteMapsConfiguration' in kwargs: + site_maps_configuration = kwargs['siteMapsConfiguration'] + if seed_url_configuration is not None: - pulumi.set(__self__, "seed_url_configuration", seed_url_configuration) + _setter("seed_url_configuration", seed_url_configuration) if site_maps_configuration is not None: - pulumi.set(__self__, "site_maps_configuration", site_maps_configuration) + _setter("site_maps_configuration", site_maps_configuration) @property @pulumi.getter(name="seedUrlConfiguration") @@ -641,9 +834,28 @@ def __init__(__self__, *, :param Sequence[str] seed_urls: The list of seed or starting point URLs of the websites you want to crawl. The list can include a maximum of `100` seed URLs. Array Members: Minimum number of `0` items. Maximum number of `100` items. Length Constraints: Minimum length of `1`. Maximum length of `2048`. :param str web_crawler_mode: The default mode is set to `HOST_ONLY`. You can choose one of the following modes: """ - pulumi.set(__self__, "seed_urls", seed_urls) + DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + seed_urls=seed_urls, + web_crawler_mode=web_crawler_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + seed_urls: Optional[Sequence[str]] = None, + web_crawler_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if seed_urls is None and 'seedUrls' in kwargs: + seed_urls = kwargs['seedUrls'] + if seed_urls is None: + raise TypeError("Missing 'seed_urls' argument") + if web_crawler_mode is None and 'webCrawlerMode' in kwargs: + web_crawler_mode = kwargs['webCrawlerMode'] + + _setter("seed_urls", seed_urls) if web_crawler_mode is not None: - pulumi.set(__self__, "web_crawler_mode", web_crawler_mode) + _setter("web_crawler_mode", web_crawler_mode) @property @pulumi.getter(name="seedUrls") @@ -686,7 +898,22 @@ def __init__(__self__, *, """ :param Sequence[str] site_maps: The list of sitemap URLs of the websites you want to crawl. The list can include a maximum of `3` sitemap URLs. """ - pulumi.set(__self__, "site_maps", site_maps) + DataSourceConfigurationWebCrawlerConfigurationUrlsSiteMapsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + site_maps=site_maps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + site_maps: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if site_maps is None and 'siteMaps' in kwargs: + site_maps = kwargs['siteMaps'] + if site_maps is None: + raise TypeError("Missing 'site_maps' argument") + + _setter("site_maps", site_maps) @property @pulumi.getter(name="siteMaps") @@ -733,14 +960,39 @@ def __init__(__self__, *, :param 'DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationArgs' pre_extraction_hook_configuration: Configuration information for invoking a Lambda function in AWS Lambda on the original or raw documents before extracting their metadata and text. You can use a Lambda function to apply advanced logic for creating, modifying, or deleting document metadata and content. For more information, see [Advanced data manipulation](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#advanced-data-manipulation). Detailed below. :param str role_arn: The Amazon Resource Name (ARN) of a role with permission to run `pre_extraction_hook_configuration` and `post_extraction_hook_configuration` for altering document metadata and content during the document ingestion process. For more information, see [IAM roles for Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html). """ + DataSourceCustomDocumentEnrichmentConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + inline_configurations=inline_configurations, + post_extraction_hook_configuration=post_extraction_hook_configuration, + pre_extraction_hook_configuration=pre_extraction_hook_configuration, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inline_configurations: Optional[Sequence['outputs.DataSourceCustomDocumentEnrichmentConfigurationInlineConfiguration']] = None, + post_extraction_hook_configuration: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfiguration'] = None, + pre_extraction_hook_configuration: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfiguration'] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inline_configurations is None and 'inlineConfigurations' in kwargs: + inline_configurations = kwargs['inlineConfigurations'] + if post_extraction_hook_configuration is None and 'postExtractionHookConfiguration' in kwargs: + post_extraction_hook_configuration = kwargs['postExtractionHookConfiguration'] + if pre_extraction_hook_configuration is None and 'preExtractionHookConfiguration' in kwargs: + pre_extraction_hook_configuration = kwargs['preExtractionHookConfiguration'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if inline_configurations is not None: - pulumi.set(__self__, "inline_configurations", inline_configurations) + _setter("inline_configurations", inline_configurations) if post_extraction_hook_configuration is not None: - pulumi.set(__self__, "post_extraction_hook_configuration", post_extraction_hook_configuration) + _setter("post_extraction_hook_configuration", post_extraction_hook_configuration) if pre_extraction_hook_configuration is not None: - pulumi.set(__self__, "pre_extraction_hook_configuration", pre_extraction_hook_configuration) + _setter("pre_extraction_hook_configuration", pre_extraction_hook_configuration) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="inlineConfigurations") @@ -803,12 +1055,29 @@ def __init__(__self__, *, :param bool document_content_deletion: `TRUE` to delete content if the condition used for the target attribute is met. :param 'DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetArgs' target: Configuration of the target document attribute or metadata field when ingesting documents into Amazon Kendra. You can also include a value. Detailed below. """ + DataSourceCustomDocumentEnrichmentConfigurationInlineConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition=condition, + document_content_deletion=document_content_deletion, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationCondition'] = None, + document_content_deletion: Optional[bool] = None, + target: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTarget'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if document_content_deletion is None and 'documentContentDeletion' in kwargs: + document_content_deletion = kwargs['documentContentDeletion'] + if condition is not None: - pulumi.set(__self__, "condition", condition) + _setter("condition", condition) if document_content_deletion is not None: - pulumi.set(__self__, "document_content_deletion", document_content_deletion) + _setter("document_content_deletion", document_content_deletion) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter @@ -865,10 +1134,33 @@ def __init__(__self__, *, :param str operator: The condition operator. For example, you can use `Contains` to partially match a string. Valid Values: `GreaterThan` | `GreaterThanOrEquals` | `LessThan` | `LessThanOrEquals` | `Equals` | `NotEquals` | `Contains` | `NotContains` | `Exists` | `NotExists` | `BeginsWith`. :param 'DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationConditionConditionOnValueArgs' condition_on_value: The value used by the operator. For example, you can specify the value 'financial' for strings in the `_source_uri` field that partially match or contain this value. See condition_on_value. """ - pulumi.set(__self__, "condition_document_attribute_key", condition_document_attribute_key) - pulumi.set(__self__, "operator", operator) + DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition_document_attribute_key=condition_document_attribute_key, + operator=operator, + condition_on_value=condition_on_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition_document_attribute_key: Optional[str] = None, + operator: Optional[str] = None, + condition_on_value: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationConditionConditionOnValue'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if condition_document_attribute_key is None and 'conditionDocumentAttributeKey' in kwargs: + condition_document_attribute_key = kwargs['conditionDocumentAttributeKey'] + if condition_document_attribute_key is None: + raise TypeError("Missing 'condition_document_attribute_key' argument") + if operator is None: + raise TypeError("Missing 'operator' argument") + if condition_on_value is None and 'conditionOnValue' in kwargs: + condition_on_value = kwargs['conditionOnValue'] + + _setter("condition_document_attribute_key", condition_document_attribute_key) + _setter("operator", operator) if condition_on_value is not None: - pulumi.set(__self__, "condition_on_value", condition_on_value) + _setter("condition_on_value", condition_on_value) @property @pulumi.getter(name="conditionDocumentAttributeKey") @@ -930,14 +1222,39 @@ def __init__(__self__, *, :param int long_value: A long integer value. :param Sequence[str] string_list_values: A list of strings. """ + DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationConditionConditionOnValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_value=date_value, + long_value=long_value, + string_list_values=string_list_values, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_value: Optional[str] = None, + long_value: Optional[int] = None, + string_list_values: Optional[Sequence[str]] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_value is None and 'dateValue' in kwargs: + date_value = kwargs['dateValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_list_values is None and 'stringListValues' in kwargs: + string_list_values = kwargs['stringListValues'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if date_value is not None: - pulumi.set(__self__, "date_value", date_value) + _setter("date_value", date_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_list_values is not None: - pulumi.set(__self__, "string_list_values", string_list_values) + _setter("string_list_values", string_list_values) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="dateValue") @@ -1001,12 +1318,33 @@ def __init__(__self__, *, :param 'DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetTargetDocumentAttributeValueArgs' target_document_attribute_value: The target value you want to create for the target attribute. For example, 'Finance' could be the target value for the target attribute key 'Department'. See target_document_attribute_value. :param bool target_document_attribute_value_deletion: `TRUE` to delete the existing target value for your specified target attribute key. You cannot create a target value and set this to `TRUE`. To create a target value (`TargetDocumentAttributeValue`), set this to `FALSE`. """ + DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_document_attribute_key=target_document_attribute_key, + target_document_attribute_value=target_document_attribute_value, + target_document_attribute_value_deletion=target_document_attribute_value_deletion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_document_attribute_key: Optional[str] = None, + target_document_attribute_value: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetTargetDocumentAttributeValue'] = None, + target_document_attribute_value_deletion: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_document_attribute_key is None and 'targetDocumentAttributeKey' in kwargs: + target_document_attribute_key = kwargs['targetDocumentAttributeKey'] + if target_document_attribute_value is None and 'targetDocumentAttributeValue' in kwargs: + target_document_attribute_value = kwargs['targetDocumentAttributeValue'] + if target_document_attribute_value_deletion is None and 'targetDocumentAttributeValueDeletion' in kwargs: + target_document_attribute_value_deletion = kwargs['targetDocumentAttributeValueDeletion'] + if target_document_attribute_key is not None: - pulumi.set(__self__, "target_document_attribute_key", target_document_attribute_key) + _setter("target_document_attribute_key", target_document_attribute_key) if target_document_attribute_value is not None: - pulumi.set(__self__, "target_document_attribute_value", target_document_attribute_value) + _setter("target_document_attribute_value", target_document_attribute_value) if target_document_attribute_value_deletion is not None: - pulumi.set(__self__, "target_document_attribute_value_deletion", target_document_attribute_value_deletion) + _setter("target_document_attribute_value_deletion", target_document_attribute_value_deletion) @property @pulumi.getter(name="targetDocumentAttributeKey") @@ -1068,14 +1406,39 @@ def __init__(__self__, *, :param int long_value: A long integer value. :param Sequence[str] string_list_values: A list of strings. """ + DataSourceCustomDocumentEnrichmentConfigurationInlineConfigurationTargetTargetDocumentAttributeValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_value=date_value, + long_value=long_value, + string_list_values=string_list_values, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_value: Optional[str] = None, + long_value: Optional[int] = None, + string_list_values: Optional[Sequence[str]] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_value is None and 'dateValue' in kwargs: + date_value = kwargs['dateValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_list_values is None and 'stringListValues' in kwargs: + string_list_values = kwargs['stringListValues'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if date_value is not None: - pulumi.set(__self__, "date_value", date_value) + _setter("date_value", date_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_list_values is not None: - pulumi.set(__self__, "string_list_values", string_list_values) + _setter("string_list_values", string_list_values) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="dateValue") @@ -1139,10 +1502,35 @@ def __init__(__self__, *, :param str s3_bucket: Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see [Data contracts for Lambda functions](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda). :param 'DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionArgs' invocation_condition: A block that specifies the condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Kendra should invoke a function that inserts the current date-time. See invocation_condition. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) - pulumi.set(__self__, "s3_bucket", s3_bucket) + DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + s3_bucket=s3_bucket, + invocation_condition=invocation_condition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[str] = None, + s3_bucket: Optional[str] = None, + invocation_condition: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationCondition'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_bucket is None: + raise TypeError("Missing 's3_bucket' argument") + if invocation_condition is None and 'invocationCondition' in kwargs: + invocation_condition = kwargs['invocationCondition'] + + _setter("lambda_arn", lambda_arn) + _setter("s3_bucket", s3_bucket) if invocation_condition is not None: - pulumi.set(__self__, "invocation_condition", invocation_condition) + _setter("invocation_condition", invocation_condition) @property @pulumi.getter(name="lambdaArn") @@ -1199,10 +1587,33 @@ def __init__(__self__, *, :param str operator: The condition operator. For example, you can use `Contains` to partially match a string. Valid Values: `GreaterThan` | `GreaterThanOrEquals` | `LessThan` | `LessThanOrEquals` | `Equals` | `NotEquals` | `Contains` | `NotContains` | `Exists` | `NotExists` | `BeginsWith`. :param 'DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionConditionOnValueArgs' condition_on_value: The value used by the operator. For example, you can specify the value 'financial' for strings in the `_source_uri` field that partially match or contain this value. See condition_on_value. """ - pulumi.set(__self__, "condition_document_attribute_key", condition_document_attribute_key) - pulumi.set(__self__, "operator", operator) + DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition_document_attribute_key=condition_document_attribute_key, + operator=operator, + condition_on_value=condition_on_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition_document_attribute_key: Optional[str] = None, + operator: Optional[str] = None, + condition_on_value: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionConditionOnValue'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if condition_document_attribute_key is None and 'conditionDocumentAttributeKey' in kwargs: + condition_document_attribute_key = kwargs['conditionDocumentAttributeKey'] + if condition_document_attribute_key is None: + raise TypeError("Missing 'condition_document_attribute_key' argument") + if operator is None: + raise TypeError("Missing 'operator' argument") + if condition_on_value is None and 'conditionOnValue' in kwargs: + condition_on_value = kwargs['conditionOnValue'] + + _setter("condition_document_attribute_key", condition_document_attribute_key) + _setter("operator", operator) if condition_on_value is not None: - pulumi.set(__self__, "condition_on_value", condition_on_value) + _setter("condition_on_value", condition_on_value) @property @pulumi.getter(name="conditionDocumentAttributeKey") @@ -1264,14 +1675,39 @@ def __init__(__self__, *, :param int long_value: A long integer value. :param Sequence[str] string_list_values: A list of strings. """ + DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionConditionOnValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_value=date_value, + long_value=long_value, + string_list_values=string_list_values, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_value: Optional[str] = None, + long_value: Optional[int] = None, + string_list_values: Optional[Sequence[str]] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_value is None and 'dateValue' in kwargs: + date_value = kwargs['dateValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_list_values is None and 'stringListValues' in kwargs: + string_list_values = kwargs['stringListValues'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if date_value is not None: - pulumi.set(__self__, "date_value", date_value) + _setter("date_value", date_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_list_values is not None: - pulumi.set(__self__, "string_list_values", string_list_values) + _setter("string_list_values", string_list_values) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="dateValue") @@ -1335,10 +1771,35 @@ def __init__(__self__, *, :param str s3_bucket: Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see [Data contracts for Lambda functions](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda). :param 'DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionArgs' invocation_condition: A block that specifies the condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Kendra should invoke a function that inserts the current date-time. See invocation_condition. """ - pulumi.set(__self__, "lambda_arn", lambda_arn) - pulumi.set(__self__, "s3_bucket", s3_bucket) + DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_arn=lambda_arn, + s3_bucket=s3_bucket, + invocation_condition=invocation_condition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_arn: Optional[str] = None, + s3_bucket: Optional[str] = None, + invocation_condition: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationCondition'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_arn is None and 'lambdaArn' in kwargs: + lambda_arn = kwargs['lambdaArn'] + if lambda_arn is None: + raise TypeError("Missing 'lambda_arn' argument") + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_bucket is None: + raise TypeError("Missing 's3_bucket' argument") + if invocation_condition is None and 'invocationCondition' in kwargs: + invocation_condition = kwargs['invocationCondition'] + + _setter("lambda_arn", lambda_arn) + _setter("s3_bucket", s3_bucket) if invocation_condition is not None: - pulumi.set(__self__, "invocation_condition", invocation_condition) + _setter("invocation_condition", invocation_condition) @property @pulumi.getter(name="lambdaArn") @@ -1395,10 +1856,33 @@ def __init__(__self__, *, :param str operator: The condition operator. For example, you can use `Contains` to partially match a string. Valid Values: `GreaterThan` | `GreaterThanOrEquals` | `LessThan` | `LessThanOrEquals` | `Equals` | `NotEquals` | `Contains` | `NotContains` | `Exists` | `NotExists` | `BeginsWith`. :param 'DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionConditionOnValueArgs' condition_on_value: The value used by the operator. For example, you can specify the value 'financial' for strings in the `_source_uri` field that partially match or contain this value. See condition_on_value. """ - pulumi.set(__self__, "condition_document_attribute_key", condition_document_attribute_key) - pulumi.set(__self__, "operator", operator) + DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition_document_attribute_key=condition_document_attribute_key, + operator=operator, + condition_on_value=condition_on_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition_document_attribute_key: Optional[str] = None, + operator: Optional[str] = None, + condition_on_value: Optional['outputs.DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionConditionOnValue'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if condition_document_attribute_key is None and 'conditionDocumentAttributeKey' in kwargs: + condition_document_attribute_key = kwargs['conditionDocumentAttributeKey'] + if condition_document_attribute_key is None: + raise TypeError("Missing 'condition_document_attribute_key' argument") + if operator is None: + raise TypeError("Missing 'operator' argument") + if condition_on_value is None and 'conditionOnValue' in kwargs: + condition_on_value = kwargs['conditionOnValue'] + + _setter("condition_document_attribute_key", condition_document_attribute_key) + _setter("operator", operator) if condition_on_value is not None: - pulumi.set(__self__, "condition_on_value", condition_on_value) + _setter("condition_on_value", condition_on_value) @property @pulumi.getter(name="conditionDocumentAttributeKey") @@ -1460,14 +1944,39 @@ def __init__(__self__, *, :param int long_value: A long integer value. :param Sequence[str] string_list_values: A list of strings. """ + DataSourceCustomDocumentEnrichmentConfigurationPreExtractionHookConfigurationInvocationConditionConditionOnValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_value=date_value, + long_value=long_value, + string_list_values=string_list_values, + string_value=string_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_value: Optional[str] = None, + long_value: Optional[int] = None, + string_list_values: Optional[Sequence[str]] = None, + string_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_value is None and 'dateValue' in kwargs: + date_value = kwargs['dateValue'] + if long_value is None and 'longValue' in kwargs: + long_value = kwargs['longValue'] + if string_list_values is None and 'stringListValues' in kwargs: + string_list_values = kwargs['stringListValues'] + if string_value is None and 'stringValue' in kwargs: + string_value = kwargs['stringValue'] + if date_value is not None: - pulumi.set(__self__, "date_value", date_value) + _setter("date_value", date_value) if long_value is not None: - pulumi.set(__self__, "long_value", long_value) + _setter("long_value", long_value) if string_list_values is not None: - pulumi.set(__self__, "string_list_values", string_list_values) + _setter("string_list_values", string_list_values) if string_value is not None: - pulumi.set(__self__, "string_value", string_value) + _setter("string_value", string_value) @property @pulumi.getter(name="dateValue") @@ -1527,10 +2036,27 @@ def __init__(__self__, *, :param 'ExperienceConfigurationContentSourceConfigurationArgs' content_source_configuration: The identifiers of your data sources and FAQs. Or, you can specify that you want to use documents indexed via the `BatchPutDocument API`. The provider will only perform drift detection of its value when present in a configuration. Detailed below. :param 'ExperienceConfigurationUserIdentityConfigurationArgs' user_identity_configuration: The AWS SSO field name that contains the identifiers of your users, such as their emails. Detailed below. """ + ExperienceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_source_configuration=content_source_configuration, + user_identity_configuration=user_identity_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_source_configuration: Optional['outputs.ExperienceConfigurationContentSourceConfiguration'] = None, + user_identity_configuration: Optional['outputs.ExperienceConfigurationUserIdentityConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_source_configuration is None and 'contentSourceConfiguration' in kwargs: + content_source_configuration = kwargs['contentSourceConfiguration'] + if user_identity_configuration is None and 'userIdentityConfiguration' in kwargs: + user_identity_configuration = kwargs['userIdentityConfiguration'] + if content_source_configuration is not None: - pulumi.set(__self__, "content_source_configuration", content_source_configuration) + _setter("content_source_configuration", content_source_configuration) if user_identity_configuration is not None: - pulumi.set(__self__, "user_identity_configuration", user_identity_configuration) + _setter("user_identity_configuration", user_identity_configuration) @property @pulumi.getter(name="contentSourceConfiguration") @@ -1581,12 +2107,33 @@ def __init__(__self__, *, :param bool direct_put_content: Whether to use documents you indexed directly using the `BatchPutDocument API`. Defaults to `false`. :param Sequence[str] faq_ids: The identifier of the FAQs that you want to use for your Amazon Kendra experience. Maximum number of 100 items. """ + ExperienceConfigurationContentSourceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_ids=data_source_ids, + direct_put_content=direct_put_content, + faq_ids=faq_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_ids: Optional[Sequence[str]] = None, + direct_put_content: Optional[bool] = None, + faq_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_ids is None and 'dataSourceIds' in kwargs: + data_source_ids = kwargs['dataSourceIds'] + if direct_put_content is None and 'directPutContent' in kwargs: + direct_put_content = kwargs['directPutContent'] + if faq_ids is None and 'faqIds' in kwargs: + faq_ids = kwargs['faqIds'] + if data_source_ids is not None: - pulumi.set(__self__, "data_source_ids", data_source_ids) + _setter("data_source_ids", data_source_ids) if direct_put_content is not None: - pulumi.set(__self__, "direct_put_content", direct_put_content) + _setter("direct_put_content", direct_put_content) if faq_ids is not None: - pulumi.set(__self__, "faq_ids", faq_ids) + _setter("faq_ids", faq_ids) @property @pulumi.getter(name="dataSourceIds") @@ -1637,7 +2184,22 @@ def __init__(__self__, *, """ :param str identity_attribute_name: The AWS SSO field name that contains the identifiers of your users, such as their emails. """ - pulumi.set(__self__, "identity_attribute_name", identity_attribute_name) + ExperienceConfigurationUserIdentityConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_attribute_name=identity_attribute_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_attribute_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_attribute_name is None and 'identityAttributeName' in kwargs: + identity_attribute_name = kwargs['identityAttributeName'] + if identity_attribute_name is None: + raise TypeError("Missing 'identity_attribute_name' argument") + + _setter("identity_attribute_name", identity_attribute_name) @property @pulumi.getter(name="identityAttributeName") @@ -1674,10 +2236,25 @@ def __init__(__self__, *, :param str endpoint: The endpoint of your Amazon Kendra experience. :param str endpoint_type: The type of endpoint for your Amazon Kendra experience. """ + ExperienceEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + endpoint_type=endpoint_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[str] = None, + endpoint_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if endpoint_type is not None: - pulumi.set(__self__, "endpoint_type", endpoint_type) + _setter("endpoint_type", endpoint_type) @property @pulumi.getter @@ -1707,8 +2284,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + FaqS3Path._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -1757,10 +2351,27 @@ def __init__(__self__, *, :param int query_capacity_units: The amount of extra query capacity for an index and GetQuerySuggestions capacity. For more information, refer to [QueryCapacityUnits](https://docs.aws.amazon.com/kendra/latest/dg/API_CapacityUnitsConfiguration.html#Kendra-Type-CapacityUnitsConfiguration-QueryCapacityUnits). :param int storage_capacity_units: The amount of extra storage capacity for an index. A single capacity unit provides 30 GB of storage space or 100,000 documents, whichever is reached first. Minimum value of 0. """ + IndexCapacityUnits._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_capacity_units=query_capacity_units, + storage_capacity_units=storage_capacity_units, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_capacity_units: Optional[int] = None, + storage_capacity_units: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_capacity_units is None and 'queryCapacityUnits' in kwargs: + query_capacity_units = kwargs['queryCapacityUnits'] + if storage_capacity_units is None and 'storageCapacityUnits' in kwargs: + storage_capacity_units = kwargs['storageCapacityUnits'] + if query_capacity_units is not None: - pulumi.set(__self__, "query_capacity_units", query_capacity_units) + _setter("query_capacity_units", query_capacity_units) if storage_capacity_units is not None: - pulumi.set(__self__, "storage_capacity_units", storage_capacity_units) + _setter("storage_capacity_units", storage_capacity_units) @property @pulumi.getter(name="queryCapacityUnits") @@ -1792,12 +2403,33 @@ def __init__(__self__, *, :param 'IndexDocumentMetadataConfigurationUpdateRelevanceArgs' relevance: A block that provides manual tuning parameters to determine how the field affects the search results. Detailed below :param 'IndexDocumentMetadataConfigurationUpdateSearchArgs' search: A block that provides information about how the field is used during a search. Documented below. Detailed below """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + IndexDocumentMetadataConfigurationUpdate._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + relevance=relevance, + search=search, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + relevance: Optional['outputs.IndexDocumentMetadataConfigurationUpdateRelevance'] = None, + search: Optional['outputs.IndexDocumentMetadataConfigurationUpdateSearch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) if relevance is not None: - pulumi.set(__self__, "relevance", relevance) + _setter("relevance", relevance) if search is not None: - pulumi.set(__self__, "search", search) + _setter("search", search) @property @pulumi.getter @@ -1866,16 +2498,39 @@ def __init__(__self__, *, :param str rank_order: Determines how values should be interpreted. For more information, refer to [RankOrder](https://docs.aws.amazon.com/kendra/latest/dg/API_Relevance.html#Kendra-Type-Relevance-RankOrder). :param Mapping[str, int] values_importance_map: A list of values that should be given a different boost when they appear in the result list. For more information, refer to [ValueImportanceMap](https://docs.aws.amazon.com/kendra/latest/dg/API_Relevance.html#Kendra-Type-Relevance-ValueImportanceMap). """ + IndexDocumentMetadataConfigurationUpdateRelevance._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + freshness=freshness, + importance=importance, + rank_order=rank_order, + values_importance_map=values_importance_map, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[str] = None, + freshness: Optional[bool] = None, + importance: Optional[int] = None, + rank_order: Optional[str] = None, + values_importance_map: Optional[Mapping[str, int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rank_order is None and 'rankOrder' in kwargs: + rank_order = kwargs['rankOrder'] + if values_importance_map is None and 'valuesImportanceMap' in kwargs: + values_importance_map = kwargs['valuesImportanceMap'] + if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if freshness is not None: - pulumi.set(__self__, "freshness", freshness) + _setter("freshness", freshness) if importance is not None: - pulumi.set(__self__, "importance", importance) + _setter("importance", importance) if rank_order is not None: - pulumi.set(__self__, "rank_order", rank_order) + _setter("rank_order", rank_order) if values_importance_map is not None: - pulumi.set(__self__, "values_importance_map", values_importance_map) + _setter("values_importance_map", values_importance_map) @property @pulumi.getter @@ -1931,14 +2586,31 @@ def __init__(__self__, *, :param bool searchable: Determines whether the field is used in the search. If the Searchable field is true, you can use relevance tuning to manually tune how Amazon Kendra weights the field in the search. The default is `true` for `string` fields and `false` for `number` and `date` fields. :param bool sortable: Determines whether the field can be used to sort the results of a query. If you specify sorting on a field that does not have Sortable set to true, Amazon Kendra returns an exception. The default is `false`. """ + IndexDocumentMetadataConfigurationUpdateSearch._configure( + lambda key, value: pulumi.set(__self__, key, value), + displayable=displayable, + facetable=facetable, + searchable=searchable, + sortable=sortable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + displayable: Optional[bool] = None, + facetable: Optional[bool] = None, + searchable: Optional[bool] = None, + sortable: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if displayable is not None: - pulumi.set(__self__, "displayable", displayable) + _setter("displayable", displayable) if facetable is not None: - pulumi.set(__self__, "facetable", facetable) + _setter("facetable", facetable) if searchable is not None: - pulumi.set(__self__, "searchable", searchable) + _setter("searchable", searchable) if sortable is not None: - pulumi.set(__self__, "sortable", sortable) + _setter("sortable", sortable) @property @pulumi.getter @@ -2001,10 +2673,27 @@ def __init__(__self__, *, :param Sequence['IndexIndexStatisticFaqStatisticArgs'] faq_statistics: A block that specifies the number of question and answer topics in the index. Detailed below. :param Sequence['IndexIndexStatisticTextDocumentStatisticArgs'] text_document_statistics: A block that specifies the number of text documents indexed. Detailed below. """ + IndexIndexStatistic._configure( + lambda key, value: pulumi.set(__self__, key, value), + faq_statistics=faq_statistics, + text_document_statistics=text_document_statistics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + faq_statistics: Optional[Sequence['outputs.IndexIndexStatisticFaqStatistic']] = None, + text_document_statistics: Optional[Sequence['outputs.IndexIndexStatisticTextDocumentStatistic']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if faq_statistics is None and 'faqStatistics' in kwargs: + faq_statistics = kwargs['faqStatistics'] + if text_document_statistics is None and 'textDocumentStatistics' in kwargs: + text_document_statistics = kwargs['textDocumentStatistics'] + if faq_statistics is not None: - pulumi.set(__self__, "faq_statistics", faq_statistics) + _setter("faq_statistics", faq_statistics) if text_document_statistics is not None: - pulumi.set(__self__, "text_document_statistics", text_document_statistics) + _setter("text_document_statistics", text_document_statistics) @property @pulumi.getter(name="faqStatistics") @@ -2047,8 +2736,21 @@ def __init__(__self__, *, """ :param int indexed_question_answers_count: The total number of FAQ questions and answers contained in the index. """ + IndexIndexStatisticFaqStatistic._configure( + lambda key, value: pulumi.set(__self__, key, value), + indexed_question_answers_count=indexed_question_answers_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + indexed_question_answers_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if indexed_question_answers_count is None and 'indexedQuestionAnswersCount' in kwargs: + indexed_question_answers_count = kwargs['indexedQuestionAnswersCount'] + if indexed_question_answers_count is not None: - pulumi.set(__self__, "indexed_question_answers_count", indexed_question_answers_count) + _setter("indexed_question_answers_count", indexed_question_answers_count) @property @pulumi.getter(name="indexedQuestionAnswersCount") @@ -2087,10 +2789,27 @@ def __init__(__self__, *, :param int indexed_text_bytes: The total size, in bytes, of the indexed documents. :param int indexed_text_documents_count: The number of text documents indexed. """ + IndexIndexStatisticTextDocumentStatistic._configure( + lambda key, value: pulumi.set(__self__, key, value), + indexed_text_bytes=indexed_text_bytes, + indexed_text_documents_count=indexed_text_documents_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + indexed_text_bytes: Optional[int] = None, + indexed_text_documents_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if indexed_text_bytes is None and 'indexedTextBytes' in kwargs: + indexed_text_bytes = kwargs['indexedTextBytes'] + if indexed_text_documents_count is None and 'indexedTextDocumentsCount' in kwargs: + indexed_text_documents_count = kwargs['indexedTextDocumentsCount'] + if indexed_text_bytes is not None: - pulumi.set(__self__, "indexed_text_bytes", indexed_text_bytes) + _setter("indexed_text_bytes", indexed_text_bytes) if indexed_text_documents_count is not None: - pulumi.set(__self__, "indexed_text_documents_count", indexed_text_documents_count) + _setter("indexed_text_documents_count", indexed_text_documents_count) @property @pulumi.getter(name="indexedTextBytes") @@ -2133,8 +2852,21 @@ def __init__(__self__, *, """ :param str kms_key_id: The identifier of the AWS KMScustomer master key (CMK). Amazon Kendra doesn't support asymmetric CMKs. """ + IndexServerSideEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="kmsKeyId") @@ -2169,7 +2901,22 @@ def __init__(__self__, *, """ :param str user_group_resolution_mode: The identity store provider (mode) you want to use to fetch access levels of groups and users. AWS Single Sign-On is currently the only available mode. Your users and groups must exist in an AWS SSO identity source in order to use this mode. Valid Values are `AWS_SSO` or `NONE`. """ - pulumi.set(__self__, "user_group_resolution_mode", user_group_resolution_mode) + IndexUserGroupResolutionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_group_resolution_mode=user_group_resolution_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_group_resolution_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_group_resolution_mode is None and 'userGroupResolutionMode' in kwargs: + user_group_resolution_mode = kwargs['userGroupResolutionMode'] + if user_group_resolution_mode is None: + raise TypeError("Missing 'user_group_resolution_mode' argument") + + _setter("user_group_resolution_mode", user_group_resolution_mode) @property @pulumi.getter(name="userGroupResolutionMode") @@ -2208,10 +2955,27 @@ def __init__(__self__, *, :param 'IndexUserTokenConfigurationsJsonTokenTypeConfigurationArgs' json_token_type_configuration: A block that specifies the information about the JSON token type configuration. Detailed below. :param 'IndexUserTokenConfigurationsJwtTokenTypeConfigurationArgs' jwt_token_type_configuration: A block that specifies the information about the JWT token type configuration. Detailed below. """ + IndexUserTokenConfigurations._configure( + lambda key, value: pulumi.set(__self__, key, value), + json_token_type_configuration=json_token_type_configuration, + jwt_token_type_configuration=jwt_token_type_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + json_token_type_configuration: Optional['outputs.IndexUserTokenConfigurationsJsonTokenTypeConfiguration'] = None, + jwt_token_type_configuration: Optional['outputs.IndexUserTokenConfigurationsJwtTokenTypeConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if json_token_type_configuration is None and 'jsonTokenTypeConfiguration' in kwargs: + json_token_type_configuration = kwargs['jsonTokenTypeConfiguration'] + if jwt_token_type_configuration is None and 'jwtTokenTypeConfiguration' in kwargs: + jwt_token_type_configuration = kwargs['jwtTokenTypeConfiguration'] + if json_token_type_configuration is not None: - pulumi.set(__self__, "json_token_type_configuration", json_token_type_configuration) + _setter("json_token_type_configuration", json_token_type_configuration) if jwt_token_type_configuration is not None: - pulumi.set(__self__, "jwt_token_type_configuration", jwt_token_type_configuration) + _setter("jwt_token_type_configuration", jwt_token_type_configuration) @property @pulumi.getter(name="jsonTokenTypeConfiguration") @@ -2258,8 +3022,29 @@ def __init__(__self__, *, :param str group_attribute_field: The group attribute field. Minimum length of 1. Maximum length of 2048. :param str user_name_attribute_field: The user name attribute field. Minimum length of 1. Maximum length of 2048. """ - pulumi.set(__self__, "group_attribute_field", group_attribute_field) - pulumi.set(__self__, "user_name_attribute_field", user_name_attribute_field) + IndexUserTokenConfigurationsJsonTokenTypeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_attribute_field=group_attribute_field, + user_name_attribute_field=user_name_attribute_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_attribute_field: Optional[str] = None, + user_name_attribute_field: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_attribute_field is None and 'groupAttributeField' in kwargs: + group_attribute_field = kwargs['groupAttributeField'] + if group_attribute_field is None: + raise TypeError("Missing 'group_attribute_field' argument") + if user_name_attribute_field is None and 'userNameAttributeField' in kwargs: + user_name_attribute_field = kwargs['userNameAttributeField'] + if user_name_attribute_field is None: + raise TypeError("Missing 'user_name_attribute_field' argument") + + _setter("group_attribute_field", group_attribute_field) + _setter("user_name_attribute_field", user_name_attribute_field) @property @pulumi.getter(name="groupAttributeField") @@ -2322,19 +3107,54 @@ def __init__(__self__, *, :param str url: The signing key URL. Valid pattern is `^(https?|ftp|file):\\/\\/([^\\s]*)` :param str user_name_attribute_field: The user name attribute field. Minimum length of 1. Maximum length of 100. """ - pulumi.set(__self__, "key_location", key_location) + IndexUserTokenConfigurationsJwtTokenTypeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_location=key_location, + claim_regex=claim_regex, + group_attribute_field=group_attribute_field, + issuer=issuer, + secrets_manager_arn=secrets_manager_arn, + url=url, + user_name_attribute_field=user_name_attribute_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_location: Optional[str] = None, + claim_regex: Optional[str] = None, + group_attribute_field: Optional[str] = None, + issuer: Optional[str] = None, + secrets_manager_arn: Optional[str] = None, + url: Optional[str] = None, + user_name_attribute_field: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_location is None and 'keyLocation' in kwargs: + key_location = kwargs['keyLocation'] + if key_location is None: + raise TypeError("Missing 'key_location' argument") + if claim_regex is None and 'claimRegex' in kwargs: + claim_regex = kwargs['claimRegex'] + if group_attribute_field is None and 'groupAttributeField' in kwargs: + group_attribute_field = kwargs['groupAttributeField'] + if secrets_manager_arn is None and 'secretsManagerArn' in kwargs: + secrets_manager_arn = kwargs['secretsManagerArn'] + if user_name_attribute_field is None and 'userNameAttributeField' in kwargs: + user_name_attribute_field = kwargs['userNameAttributeField'] + + _setter("key_location", key_location) if claim_regex is not None: - pulumi.set(__self__, "claim_regex", claim_regex) + _setter("claim_regex", claim_regex) if group_attribute_field is not None: - pulumi.set(__self__, "group_attribute_field", group_attribute_field) + _setter("group_attribute_field", group_attribute_field) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) if secrets_manager_arn is not None: - pulumi.set(__self__, "secrets_manager_arn", secrets_manager_arn) + _setter("secrets_manager_arn", secrets_manager_arn) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if user_name_attribute_field is not None: - pulumi.set(__self__, "user_name_attribute_field", user_name_attribute_field) + _setter("user_name_attribute_field", user_name_attribute_field) @property @pulumi.getter(name="keyLocation") @@ -2404,8 +3224,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + QuerySuggestionsBlockListSourceS3Path._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -2437,8 +3274,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + ThesaurusSourceS3Path._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -2468,8 +3322,29 @@ def __init__(__self__, *, :param Sequence['GetExperienceConfigurationContentSourceConfigurationArgs'] content_source_configurations: The identifiers of your data sources and FAQs. This is the content you want to use for your Amazon Kendra Experience. Documented below. :param Sequence['GetExperienceConfigurationUserIdentityConfigurationArgs'] user_identity_configurations: The AWS SSO field name that contains the identifiers of your users, such as their emails. Documented below. """ - pulumi.set(__self__, "content_source_configurations", content_source_configurations) - pulumi.set(__self__, "user_identity_configurations", user_identity_configurations) + GetExperienceConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_source_configurations=content_source_configurations, + user_identity_configurations=user_identity_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_source_configurations: Optional[Sequence['outputs.GetExperienceConfigurationContentSourceConfigurationResult']] = None, + user_identity_configurations: Optional[Sequence['outputs.GetExperienceConfigurationUserIdentityConfigurationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_source_configurations is None and 'contentSourceConfigurations' in kwargs: + content_source_configurations = kwargs['contentSourceConfigurations'] + if content_source_configurations is None: + raise TypeError("Missing 'content_source_configurations' argument") + if user_identity_configurations is None and 'userIdentityConfigurations' in kwargs: + user_identity_configurations = kwargs['userIdentityConfigurations'] + if user_identity_configurations is None: + raise TypeError("Missing 'user_identity_configurations' argument") + + _setter("content_source_configurations", content_source_configurations) + _setter("user_identity_configurations", user_identity_configurations) @property @pulumi.getter(name="contentSourceConfigurations") @@ -2499,9 +3374,36 @@ def __init__(__self__, *, :param bool direct_put_content: Whether to use documents you indexed directly using the `BatchPutDocument API`. :param Sequence[str] faq_ids: Identifier of the FAQs that you want to use for your Amazon Kendra Experience. """ - pulumi.set(__self__, "data_source_ids", data_source_ids) - pulumi.set(__self__, "direct_put_content", direct_put_content) - pulumi.set(__self__, "faq_ids", faq_ids) + GetExperienceConfigurationContentSourceConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_ids=data_source_ids, + direct_put_content=direct_put_content, + faq_ids=faq_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_ids: Optional[Sequence[str]] = None, + direct_put_content: Optional[bool] = None, + faq_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_ids is None and 'dataSourceIds' in kwargs: + data_source_ids = kwargs['dataSourceIds'] + if data_source_ids is None: + raise TypeError("Missing 'data_source_ids' argument") + if direct_put_content is None and 'directPutContent' in kwargs: + direct_put_content = kwargs['directPutContent'] + if direct_put_content is None: + raise TypeError("Missing 'direct_put_content' argument") + if faq_ids is None and 'faqIds' in kwargs: + faq_ids = kwargs['faqIds'] + if faq_ids is None: + raise TypeError("Missing 'faq_ids' argument") + + _setter("data_source_ids", data_source_ids) + _setter("direct_put_content", direct_put_content) + _setter("faq_ids", faq_ids) @property @pulumi.getter(name="dataSourceIds") @@ -2535,7 +3437,22 @@ def __init__(__self__, *, """ :param str identity_attribute_name: The AWS SSO field name that contains the identifiers of your users, such as their emails. """ - pulumi.set(__self__, "identity_attribute_name", identity_attribute_name) + GetExperienceConfigurationUserIdentityConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_attribute_name=identity_attribute_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_attribute_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_attribute_name is None and 'identityAttributeName' in kwargs: + identity_attribute_name = kwargs['identityAttributeName'] + if identity_attribute_name is None: + raise TypeError("Missing 'identity_attribute_name' argument") + + _setter("identity_attribute_name", identity_attribute_name) @property @pulumi.getter(name="identityAttributeName") @@ -2555,8 +3472,27 @@ def __init__(__self__, *, :param str endpoint: Endpoint of your Amazon Kendra Experience. :param str endpoint_type: Type of endpoint for your Amazon Kendra Experience. """ - pulumi.set(__self__, "endpoint", endpoint) - pulumi.set(__self__, "endpoint_type", endpoint_type) + GetExperienceEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + endpoint_type=endpoint_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[str] = None, + endpoint_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + + _setter("endpoint", endpoint) + _setter("endpoint_type", endpoint_type) @property @pulumi.getter @@ -2584,8 +3520,25 @@ def __init__(__self__, *, :param str bucket: Name of the S3 bucket that contains the file. :param str key: Name of the file. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + GetFaqS3PathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -2613,8 +3566,29 @@ def __init__(__self__, *, :param int query_capacity_units: The amount of extra query capacity for an index and GetQuerySuggestions capacity. For more information, refer to [QueryCapacityUnits](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CapacityUnitsConfiguration.html#Kendra-Type-CapacityUnitsConfiguration-QueryCapacityUnits). :param int storage_capacity_units: The amount of extra storage capacity for an index. A single capacity unit provides 30 GB of storage space or 100,000 documents, whichever is reached first. Minimum value of 0. """ - pulumi.set(__self__, "query_capacity_units", query_capacity_units) - pulumi.set(__self__, "storage_capacity_units", storage_capacity_units) + GetIndexCapacityUnitResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + query_capacity_units=query_capacity_units, + storage_capacity_units=storage_capacity_units, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query_capacity_units: Optional[int] = None, + storage_capacity_units: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_capacity_units is None and 'queryCapacityUnits' in kwargs: + query_capacity_units = kwargs['queryCapacityUnits'] + if query_capacity_units is None: + raise TypeError("Missing 'query_capacity_units' argument") + if storage_capacity_units is None and 'storageCapacityUnits' in kwargs: + storage_capacity_units = kwargs['storageCapacityUnits'] + if storage_capacity_units is None: + raise TypeError("Missing 'storage_capacity_units' argument") + + _setter("query_capacity_units", query_capacity_units) + _setter("storage_capacity_units", storage_capacity_units) @property @pulumi.getter(name="queryCapacityUnits") @@ -2646,10 +3620,35 @@ def __init__(__self__, *, :param Sequence['GetIndexDocumentMetadataConfigurationUpdateSearchArgs'] searches: Block that provides information about how the field is used during a search. Documented below. :param str type: Data type of the index field. Valid values are `STRING_VALUE`, `STRING_LIST_VALUE`, `LONG_VALUE`, `DATE_VALUE`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "relevances", relevances) - pulumi.set(__self__, "searches", searches) - pulumi.set(__self__, "type", type) + GetIndexDocumentMetadataConfigurationUpdateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + relevances=relevances, + searches=searches, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + relevances: Optional[Sequence['outputs.GetIndexDocumentMetadataConfigurationUpdateRelevanceResult']] = None, + searches: Optional[Sequence['outputs.GetIndexDocumentMetadataConfigurationUpdateSearchResult']] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if relevances is None: + raise TypeError("Missing 'relevances' argument") + if searches is None: + raise TypeError("Missing 'searches' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("relevances", relevances) + _setter("searches", searches) + _setter("type", type) @property @pulumi.getter @@ -2699,11 +3698,44 @@ def __init__(__self__, *, :param str rank_order: Determines how values should be interpreted. For more information, refer to [RankOrder](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Relevance.html#Kendra-Type-Relevance-RankOrder). :param Mapping[str, int] values_importance_map: A list of values that should be given a different boost when they appear in the result list. For more information, refer to [ValueImportanceMap](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Relevance.html#Kendra-Type-Relevance-ValueImportanceMap). """ - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "freshness", freshness) - pulumi.set(__self__, "importance", importance) - pulumi.set(__self__, "rank_order", rank_order) - pulumi.set(__self__, "values_importance_map", values_importance_map) + GetIndexDocumentMetadataConfigurationUpdateRelevanceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + freshness=freshness, + importance=importance, + rank_order=rank_order, + values_importance_map=values_importance_map, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[str] = None, + freshness: Optional[bool] = None, + importance: Optional[int] = None, + rank_order: Optional[str] = None, + values_importance_map: Optional[Mapping[str, int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + if freshness is None: + raise TypeError("Missing 'freshness' argument") + if importance is None: + raise TypeError("Missing 'importance' argument") + if rank_order is None and 'rankOrder' in kwargs: + rank_order = kwargs['rankOrder'] + if rank_order is None: + raise TypeError("Missing 'rank_order' argument") + if values_importance_map is None and 'valuesImportanceMap' in kwargs: + values_importance_map = kwargs['valuesImportanceMap'] + if values_importance_map is None: + raise TypeError("Missing 'values_importance_map' argument") + + _setter("duration", duration) + _setter("freshness", freshness) + _setter("importance", importance) + _setter("rank_order", rank_order) + _setter("values_importance_map", values_importance_map) @property @pulumi.getter @@ -2759,10 +3791,35 @@ def __init__(__self__, *, :param bool searchable: Determines whether the field is used in the search. If the Searchable field is true, you can use relevance tuning to manually tune how Amazon Kendra weights the field in the search. The default is `true` for `string` fields and `false` for `number` and `date` fields. :param bool sortable: Determines whether the field can be used to sort the results of a query. If you specify sorting on a field that does not have Sortable set to true, Amazon Kendra returns an exception. The default is `false`. """ - pulumi.set(__self__, "displayable", displayable) - pulumi.set(__self__, "facetable", facetable) - pulumi.set(__self__, "searchable", searchable) - pulumi.set(__self__, "sortable", sortable) + GetIndexDocumentMetadataConfigurationUpdateSearchResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + displayable=displayable, + facetable=facetable, + searchable=searchable, + sortable=sortable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + displayable: Optional[bool] = None, + facetable: Optional[bool] = None, + searchable: Optional[bool] = None, + sortable: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if displayable is None: + raise TypeError("Missing 'displayable' argument") + if facetable is None: + raise TypeError("Missing 'facetable' argument") + if searchable is None: + raise TypeError("Missing 'searchable' argument") + if sortable is None: + raise TypeError("Missing 'sortable' argument") + + _setter("displayable", displayable) + _setter("facetable", facetable) + _setter("searchable", searchable) + _setter("sortable", sortable) @property @pulumi.getter @@ -2806,8 +3863,29 @@ def __init__(__self__, *, :param Sequence['GetIndexIndexStatisticFaqStatisticArgs'] faq_statistics: Block that specifies the number of question and answer topics in the index. Documented below. :param Sequence['GetIndexIndexStatisticTextDocumentStatisticArgs'] text_document_statistics: A block that specifies the number of text documents indexed. """ - pulumi.set(__self__, "faq_statistics", faq_statistics) - pulumi.set(__self__, "text_document_statistics", text_document_statistics) + GetIndexIndexStatisticResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + faq_statistics=faq_statistics, + text_document_statistics=text_document_statistics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + faq_statistics: Optional[Sequence['outputs.GetIndexIndexStatisticFaqStatisticResult']] = None, + text_document_statistics: Optional[Sequence['outputs.GetIndexIndexStatisticTextDocumentStatisticResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if faq_statistics is None and 'faqStatistics' in kwargs: + faq_statistics = kwargs['faqStatistics'] + if faq_statistics is None: + raise TypeError("Missing 'faq_statistics' argument") + if text_document_statistics is None and 'textDocumentStatistics' in kwargs: + text_document_statistics = kwargs['textDocumentStatistics'] + if text_document_statistics is None: + raise TypeError("Missing 'text_document_statistics' argument") + + _setter("faq_statistics", faq_statistics) + _setter("text_document_statistics", text_document_statistics) @property @pulumi.getter(name="faqStatistics") @@ -2833,7 +3911,22 @@ def __init__(__self__, *, """ :param int indexed_question_answers_count: The total number of FAQ questions and answers contained in the index. """ - pulumi.set(__self__, "indexed_question_answers_count", indexed_question_answers_count) + GetIndexIndexStatisticFaqStatisticResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + indexed_question_answers_count=indexed_question_answers_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + indexed_question_answers_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if indexed_question_answers_count is None and 'indexedQuestionAnswersCount' in kwargs: + indexed_question_answers_count = kwargs['indexedQuestionAnswersCount'] + if indexed_question_answers_count is None: + raise TypeError("Missing 'indexed_question_answers_count' argument") + + _setter("indexed_question_answers_count", indexed_question_answers_count) @property @pulumi.getter(name="indexedQuestionAnswersCount") @@ -2853,8 +3946,29 @@ def __init__(__self__, *, :param int indexed_text_bytes: Total size, in bytes, of the indexed documents. :param int indexed_text_documents_count: The number of text documents indexed. """ - pulumi.set(__self__, "indexed_text_bytes", indexed_text_bytes) - pulumi.set(__self__, "indexed_text_documents_count", indexed_text_documents_count) + GetIndexIndexStatisticTextDocumentStatisticResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + indexed_text_bytes=indexed_text_bytes, + indexed_text_documents_count=indexed_text_documents_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + indexed_text_bytes: Optional[int] = None, + indexed_text_documents_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if indexed_text_bytes is None and 'indexedTextBytes' in kwargs: + indexed_text_bytes = kwargs['indexedTextBytes'] + if indexed_text_bytes is None: + raise TypeError("Missing 'indexed_text_bytes' argument") + if indexed_text_documents_count is None and 'indexedTextDocumentsCount' in kwargs: + indexed_text_documents_count = kwargs['indexedTextDocumentsCount'] + if indexed_text_documents_count is None: + raise TypeError("Missing 'indexed_text_documents_count' argument") + + _setter("indexed_text_bytes", indexed_text_bytes) + _setter("indexed_text_documents_count", indexed_text_documents_count) @property @pulumi.getter(name="indexedTextBytes") @@ -2880,7 +3994,22 @@ def __init__(__self__, *, """ :param str kms_key_id: Identifier of the AWS KMScustomer master key (CMK). Amazon Kendra doesn't support asymmetric CMKs. """ - pulumi.set(__self__, "kms_key_id", kms_key_id) + GetIndexServerSideEncryptionConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="kmsKeyId") @@ -2898,7 +4027,22 @@ def __init__(__self__, *, """ :param str user_group_resolution_mode: The identity store provider (mode) you want to use to fetch access levels of groups and users. AWS Single Sign-On is currently the only available mode. Your users and groups must exist in an AWS SSO identity source in order to use this mode. Valid Values are `AWS_SSO` or `NONE`. """ - pulumi.set(__self__, "user_group_resolution_mode", user_group_resolution_mode) + GetIndexUserGroupResolutionConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_group_resolution_mode=user_group_resolution_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_group_resolution_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_group_resolution_mode is None and 'userGroupResolutionMode' in kwargs: + user_group_resolution_mode = kwargs['userGroupResolutionMode'] + if user_group_resolution_mode is None: + raise TypeError("Missing 'user_group_resolution_mode' argument") + + _setter("user_group_resolution_mode", user_group_resolution_mode) @property @pulumi.getter(name="userGroupResolutionMode") @@ -2918,8 +4062,29 @@ def __init__(__self__, *, :param Sequence['GetIndexUserTokenConfigurationJsonTokenTypeConfigurationArgs'] json_token_type_configurations: A block that specifies the information about the JSON token type configuration. :param Sequence['GetIndexUserTokenConfigurationJwtTokenTypeConfigurationArgs'] jwt_token_type_configurations: A block that specifies the information about the JWT token type configuration. """ - pulumi.set(__self__, "json_token_type_configurations", json_token_type_configurations) - pulumi.set(__self__, "jwt_token_type_configurations", jwt_token_type_configurations) + GetIndexUserTokenConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + json_token_type_configurations=json_token_type_configurations, + jwt_token_type_configurations=jwt_token_type_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + json_token_type_configurations: Optional[Sequence['outputs.GetIndexUserTokenConfigurationJsonTokenTypeConfigurationResult']] = None, + jwt_token_type_configurations: Optional[Sequence['outputs.GetIndexUserTokenConfigurationJwtTokenTypeConfigurationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if json_token_type_configurations is None and 'jsonTokenTypeConfigurations' in kwargs: + json_token_type_configurations = kwargs['jsonTokenTypeConfigurations'] + if json_token_type_configurations is None: + raise TypeError("Missing 'json_token_type_configurations' argument") + if jwt_token_type_configurations is None and 'jwtTokenTypeConfigurations' in kwargs: + jwt_token_type_configurations = kwargs['jwtTokenTypeConfigurations'] + if jwt_token_type_configurations is None: + raise TypeError("Missing 'jwt_token_type_configurations' argument") + + _setter("json_token_type_configurations", json_token_type_configurations) + _setter("jwt_token_type_configurations", jwt_token_type_configurations) @property @pulumi.getter(name="jsonTokenTypeConfigurations") @@ -2947,8 +4112,29 @@ def __init__(__self__, *, :param str group_attribute_field: The group attribute field. :param str user_name_attribute_field: The user name attribute field. """ - pulumi.set(__self__, "group_attribute_field", group_attribute_field) - pulumi.set(__self__, "user_name_attribute_field", user_name_attribute_field) + GetIndexUserTokenConfigurationJsonTokenTypeConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_attribute_field=group_attribute_field, + user_name_attribute_field=user_name_attribute_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_attribute_field: Optional[str] = None, + user_name_attribute_field: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_attribute_field is None and 'groupAttributeField' in kwargs: + group_attribute_field = kwargs['groupAttributeField'] + if group_attribute_field is None: + raise TypeError("Missing 'group_attribute_field' argument") + if user_name_attribute_field is None and 'userNameAttributeField' in kwargs: + user_name_attribute_field = kwargs['userNameAttributeField'] + if user_name_attribute_field is None: + raise TypeError("Missing 'user_name_attribute_field' argument") + + _setter("group_attribute_field", group_attribute_field) + _setter("user_name_attribute_field", user_name_attribute_field) @property @pulumi.getter(name="groupAttributeField") @@ -2986,13 +4172,60 @@ def __init__(__self__, *, :param str url: Signing key URL. :param str user_name_attribute_field: The user name attribute field. """ - pulumi.set(__self__, "claim_regex", claim_regex) - pulumi.set(__self__, "group_attribute_field", group_attribute_field) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "key_location", key_location) - pulumi.set(__self__, "secrets_manager_arn", secrets_manager_arn) - pulumi.set(__self__, "url", url) - pulumi.set(__self__, "user_name_attribute_field", user_name_attribute_field) + GetIndexUserTokenConfigurationJwtTokenTypeConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + claim_regex=claim_regex, + group_attribute_field=group_attribute_field, + issuer=issuer, + key_location=key_location, + secrets_manager_arn=secrets_manager_arn, + url=url, + user_name_attribute_field=user_name_attribute_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + claim_regex: Optional[str] = None, + group_attribute_field: Optional[str] = None, + issuer: Optional[str] = None, + key_location: Optional[str] = None, + secrets_manager_arn: Optional[str] = None, + url: Optional[str] = None, + user_name_attribute_field: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if claim_regex is None and 'claimRegex' in kwargs: + claim_regex = kwargs['claimRegex'] + if claim_regex is None: + raise TypeError("Missing 'claim_regex' argument") + if group_attribute_field is None and 'groupAttributeField' in kwargs: + group_attribute_field = kwargs['groupAttributeField'] + if group_attribute_field is None: + raise TypeError("Missing 'group_attribute_field' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if key_location is None and 'keyLocation' in kwargs: + key_location = kwargs['keyLocation'] + if key_location is None: + raise TypeError("Missing 'key_location' argument") + if secrets_manager_arn is None and 'secretsManagerArn' in kwargs: + secrets_manager_arn = kwargs['secretsManagerArn'] + if secrets_manager_arn is None: + raise TypeError("Missing 'secrets_manager_arn' argument") + if url is None: + raise TypeError("Missing 'url' argument") + if user_name_attribute_field is None and 'userNameAttributeField' in kwargs: + user_name_attribute_field = kwargs['userNameAttributeField'] + if user_name_attribute_field is None: + raise TypeError("Missing 'user_name_attribute_field' argument") + + _setter("claim_regex", claim_regex) + _setter("group_attribute_field", group_attribute_field) + _setter("issuer", issuer) + _setter("key_location", key_location) + _setter("secrets_manager_arn", secrets_manager_arn) + _setter("url", url) + _setter("user_name_attribute_field", user_name_attribute_field) @property @pulumi.getter(name="claimRegex") @@ -3060,8 +4293,25 @@ def __init__(__self__, *, :param str bucket: Name of the S3 bucket that contains the file. :param str key: Name of the file. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + GetQuerySuggestionsBlockListSourceS3PathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -3089,8 +4339,25 @@ def __init__(__self__, *, :param str bucket: Name of the S3 bucket that contains the file. :param str key: Name of the file. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + GetThesaurusSourceS3PathResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/kendra/query_suggestions_block_list.py b/sdk/python/pulumi_aws/kendra/query_suggestions_block_list.py index 05b78650069..a63819ced5f 100644 --- a/sdk/python/pulumi_aws/kendra/query_suggestions_block_list.py +++ b/sdk/python/pulumi_aws/kendra/query_suggestions_block_list.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,15 +33,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the block list. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "index_id", index_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "source_s3_path", source_s3_path) + QuerySuggestionsBlockListArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_id=index_id, + role_arn=role_arn, + source_s3_path=source_s3_path, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + source_s3_path: Optional[pulumi.Input['QuerySuggestionsBlockListSourceS3PathArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if index_id is None: + raise TypeError("Missing 'index_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if source_s3_path is None and 'sourceS3Path' in kwargs: + source_s3_path = kwargs['sourceS3Path'] + if source_s3_path is None: + raise TypeError("Missing 'source_s3_path' argument") + + _setter("index_id", index_id) + _setter("role_arn", role_arn) + _setter("source_s3_path", source_s3_path) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="indexId") @@ -145,29 +178,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider's default_tags configuration block. """ + _QuerySuggestionsBlockListState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + index_id=index_id, + name=name, + query_suggestions_block_list_id=query_suggestions_block_list_id, + role_arn=role_arn, + source_s3_path=source_s3_path, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + index_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + query_suggestions_block_list_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + source_s3_path: Optional[pulumi.Input['QuerySuggestionsBlockListSourceS3PathArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if query_suggestions_block_list_id is None and 'querySuggestionsBlockListId' in kwargs: + query_suggestions_block_list_id = kwargs['querySuggestionsBlockListId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if source_s3_path is None and 'sourceS3Path' in kwargs: + source_s3_path = kwargs['sourceS3Path'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if index_id is not None: - pulumi.set(__self__, "index_id", index_id) + _setter("index_id", index_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if query_suggestions_block_list_id is not None: - pulumi.set(__self__, "query_suggestions_block_list_id", query_suggestions_block_list_id) + _setter("query_suggestions_block_list_id", query_suggestions_block_list_id) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if source_s3_path is not None: - pulumi.set(__self__, "source_s3_path", source_s3_path) + _setter("source_s3_path", source_s3_path) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -391,6 +463,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + QuerySuggestionsBlockListArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -419,6 +495,7 @@ def _internal_init(__self__, if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") __props__.__dict__["role_arn"] = role_arn + source_s3_path = _utilities.configure(source_s3_path, QuerySuggestionsBlockListSourceS3PathArgs, True) if source_s3_path is None and not opts.urn: raise TypeError("Missing required property 'source_s3_path'") __props__.__dict__["source_s3_path"] = source_s3_path diff --git a/sdk/python/pulumi_aws/kendra/thesaurus.py b/sdk/python/pulumi_aws/kendra/thesaurus.py index e77e68eb40b..07dae4a13e4 100644 --- a/sdk/python/pulumi_aws/kendra/thesaurus.py +++ b/sdk/python/pulumi_aws/kendra/thesaurus.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,15 +33,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name for the thesaurus. :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. """ - pulumi.set(__self__, "index_id", index_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "source_s3_path", source_s3_path) + ThesaurusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_id=index_id, + role_arn=role_arn, + source_s3_path=source_s3_path, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + source_s3_path: Optional[pulumi.Input['ThesaurusSourceS3PathArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if index_id is None: + raise TypeError("Missing 'index_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if source_s3_path is None and 'sourceS3Path' in kwargs: + source_s3_path = kwargs['sourceS3Path'] + if source_s3_path is None: + raise TypeError("Missing 'source_s3_path' argument") + + _setter("index_id", index_id) + _setter("role_arn", role_arn) + _setter("source_s3_path", source_s3_path) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="indexId") @@ -145,29 +178,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ThesaurusState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + index_id=index_id, + name=name, + role_arn=role_arn, + source_s3_path=source_s3_path, + status=status, + tags=tags, + tags_all=tags_all, + thesaurus_id=thesaurus_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + index_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + source_s3_path: Optional[pulumi.Input['ThesaurusSourceS3PathArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + thesaurus_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_id is None and 'indexId' in kwargs: + index_id = kwargs['indexId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if source_s3_path is None and 'sourceS3Path' in kwargs: + source_s3_path = kwargs['sourceS3Path'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if thesaurus_id is None and 'thesaurusId' in kwargs: + thesaurus_id = kwargs['thesaurusId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if index_id is not None: - pulumi.set(__self__, "index_id", index_id) + _setter("index_id", index_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if source_s3_path is not None: - pulumi.set(__self__, "source_s3_path", source_s3_path) + _setter("source_s3_path", source_s3_path) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if thesaurus_id is not None: - pulumi.set(__self__, "thesaurus_id", thesaurus_id) + _setter("thesaurus_id", thesaurus_id) @property @pulumi.getter @@ -389,6 +461,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ThesaurusArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -417,6 +493,7 @@ def _internal_init(__self__, if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") __props__.__dict__["role_arn"] = role_arn + source_s3_path = _utilities.configure(source_s3_path, ThesaurusSourceS3PathArgs, True) if source_s3_path is None and not opts.urn: raise TypeError("Missing required property 'source_s3_path'") __props__.__dict__["source_s3_path"] = source_s3_path diff --git a/sdk/python/pulumi_aws/keyspaces/_inputs.py b/sdk/python/pulumi_aws/keyspaces/_inputs.py index 44def202959..d0e8b4ae712 100644 --- a/sdk/python/pulumi_aws/keyspaces/_inputs.py +++ b/sdk/python/pulumi_aws/keyspaces/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -34,12 +34,33 @@ def __init__(__self__, *, :param pulumi.Input[str] throughput_mode: The read/write throughput capacity mode for a table. Valid values: `PAY_PER_REQUEST`, `PROVISIONED`. The default value is `PAY_PER_REQUEST`. :param pulumi.Input[int] write_capacity_units: The throughput capacity specified for write operations defined in write capacity units (WCUs). """ + TableCapacitySpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + read_capacity_units=read_capacity_units, + throughput_mode=throughput_mode, + write_capacity_units=write_capacity_units, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + read_capacity_units: Optional[pulumi.Input[int]] = None, + throughput_mode: Optional[pulumi.Input[str]] = None, + write_capacity_units: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if read_capacity_units is None and 'readCapacityUnits' in kwargs: + read_capacity_units = kwargs['readCapacityUnits'] + if throughput_mode is None and 'throughputMode' in kwargs: + throughput_mode = kwargs['throughputMode'] + if write_capacity_units is None and 'writeCapacityUnits' in kwargs: + write_capacity_units = kwargs['writeCapacityUnits'] + if read_capacity_units is not None: - pulumi.set(__self__, "read_capacity_units", read_capacity_units) + _setter("read_capacity_units", read_capacity_units) if throughput_mode is not None: - pulumi.set(__self__, "throughput_mode", throughput_mode) + _setter("throughput_mode", throughput_mode) if write_capacity_units is not None: - pulumi.set(__self__, "write_capacity_units", write_capacity_units) + _setter("write_capacity_units", write_capacity_units) @property @pulumi.getter(name="readCapacityUnits") @@ -85,7 +106,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: Shows how to enable client-side timestamps settings for the specified table. Valid values: `ENABLED`. """ - pulumi.set(__self__, "status", status) + TableClientSideTimestampsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -107,8 +141,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] message: A description of the table. """ + TableCommentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + message=message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) @property @pulumi.getter @@ -132,10 +177,25 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_identifier: The Amazon Resource Name (ARN) of the customer managed KMS key. :param pulumi.Input[str] type: The encryption option specified for the table. Valid values: `AWS_OWNED_KMS_KEY`, `CUSTOMER_MANAGED_KMS_KEY`. The default value is `AWS_OWNED_KMS_KEY`. """ + TableEncryptionSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_identifier=kms_key_identifier, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_identifier: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_identifier is None and 'kmsKeyIdentifier' in kwargs: + kms_key_identifier = kwargs['kmsKeyIdentifier'] + if kms_key_identifier is not None: - pulumi.set(__self__, "kms_key_identifier", kms_key_identifier) + _setter("kms_key_identifier", kms_key_identifier) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="kmsKeyIdentifier") @@ -169,8 +229,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: Valid values: `ENABLED`, `DISABLED`. The default value is `DISABLED`. """ + TablePointInTimeRecoveryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -198,12 +269,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['TableSchemaDefinitionClusteringKeyArgs']]] clustering_keys: The columns that are part of the clustering key of the table. :param pulumi.Input[Sequence[pulumi.Input['TableSchemaDefinitionStaticColumnArgs']]] static_columns: The columns that have been defined as `STATIC`. Static columns store values that are shared by all rows in the same partition. """ - pulumi.set(__self__, "columns", columns) - pulumi.set(__self__, "partition_keys", partition_keys) + TableSchemaDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + partition_keys=partition_keys, + clustering_keys=clustering_keys, + static_columns=static_columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[pulumi.Input[Sequence[pulumi.Input['TableSchemaDefinitionColumnArgs']]]] = None, + partition_keys: Optional[pulumi.Input[Sequence[pulumi.Input['TableSchemaDefinitionPartitionKeyArgs']]]] = None, + clustering_keys: Optional[pulumi.Input[Sequence[pulumi.Input['TableSchemaDefinitionClusteringKeyArgs']]]] = None, + static_columns: Optional[pulumi.Input[Sequence[pulumi.Input['TableSchemaDefinitionStaticColumnArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + if partition_keys is None and 'partitionKeys' in kwargs: + partition_keys = kwargs['partitionKeys'] + if partition_keys is None: + raise TypeError("Missing 'partition_keys' argument") + if clustering_keys is None and 'clusteringKeys' in kwargs: + clustering_keys = kwargs['clusteringKeys'] + if static_columns is None and 'staticColumns' in kwargs: + static_columns = kwargs['staticColumns'] + + _setter("columns", columns) + _setter("partition_keys", partition_keys) if clustering_keys is not None: - pulumi.set(__self__, "clustering_keys", clustering_keys) + _setter("clustering_keys", clustering_keys) if static_columns is not None: - pulumi.set(__self__, "static_columns", static_columns) + _setter("static_columns", static_columns) @property @pulumi.getter @@ -263,8 +361,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the clustering key column. :param pulumi.Input[str] order_by: The order modifier. Valid values: `ASC`, `DESC`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "order_by", order_by) + TableSchemaDefinitionClusteringKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + order_by=order_by, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + order_by: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if order_by is None and 'orderBy' in kwargs: + order_by = kwargs['orderBy'] + if order_by is None: + raise TypeError("Missing 'order_by' argument") + + _setter("name", name) + _setter("order_by", order_by) @property @pulumi.getter @@ -300,8 +417,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the column. :param pulumi.Input[str] type: The data type of the column. See the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types) for a list of available data types. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + TableSchemaDefinitionColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -335,7 +469,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the partition key column. """ - pulumi.set(__self__, "name", name) + TableSchemaDefinitionPartitionKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -357,7 +504,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the static column. """ - pulumi.set(__self__, "name", name) + TableSchemaDefinitionStaticColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -379,7 +539,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: Valid values: `ENABLED`. """ - pulumi.set(__self__, "status", status) + TableTtlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/keyspaces/keyspace.py b/sdk/python/pulumi_aws/keyspaces/keyspace.py index ddafdae3f4a..9ead3e6ff38 100644 --- a/sdk/python/pulumi_aws/keyspaces/keyspace.py +++ b/sdk/python/pulumi_aws/keyspaces/keyspace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KeyspaceArgs', 'Keyspace'] @@ -23,10 +23,23 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + KeyspaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -71,17 +84,36 @@ def __init__(__self__, *, :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. """ + _KeyspaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -212,6 +244,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KeyspaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/keyspaces/outputs.py b/sdk/python/pulumi_aws/keyspaces/outputs.py index 58bc91b3b67..8125d087080 100644 --- a/sdk/python/pulumi_aws/keyspaces/outputs.py +++ b/sdk/python/pulumi_aws/keyspaces/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -56,12 +56,33 @@ def __init__(__self__, *, :param str throughput_mode: The read/write throughput capacity mode for a table. Valid values: `PAY_PER_REQUEST`, `PROVISIONED`. The default value is `PAY_PER_REQUEST`. :param int write_capacity_units: The throughput capacity specified for write operations defined in write capacity units (WCUs). """ + TableCapacitySpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + read_capacity_units=read_capacity_units, + throughput_mode=throughput_mode, + write_capacity_units=write_capacity_units, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + read_capacity_units: Optional[int] = None, + throughput_mode: Optional[str] = None, + write_capacity_units: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if read_capacity_units is None and 'readCapacityUnits' in kwargs: + read_capacity_units = kwargs['readCapacityUnits'] + if throughput_mode is None and 'throughputMode' in kwargs: + throughput_mode = kwargs['throughputMode'] + if write_capacity_units is None and 'writeCapacityUnits' in kwargs: + write_capacity_units = kwargs['writeCapacityUnits'] + if read_capacity_units is not None: - pulumi.set(__self__, "read_capacity_units", read_capacity_units) + _setter("read_capacity_units", read_capacity_units) if throughput_mode is not None: - pulumi.set(__self__, "throughput_mode", throughput_mode) + _setter("throughput_mode", throughput_mode) if write_capacity_units is not None: - pulumi.set(__self__, "write_capacity_units", write_capacity_units) + _setter("write_capacity_units", write_capacity_units) @property @pulumi.getter(name="readCapacityUnits") @@ -95,7 +116,20 @@ def __init__(__self__, *, """ :param str status: Shows how to enable client-side timestamps settings for the specified table. Valid values: `ENABLED`. """ - pulumi.set(__self__, "status", status) + TableClientSideTimestamps._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -113,8 +147,19 @@ def __init__(__self__, *, """ :param str message: A description of the table. """ + TableComment._configure( + lambda key, value: pulumi.set(__self__, key, value), + message=message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message is not None: - pulumi.set(__self__, "message", message) + _setter("message", message) @property @pulumi.getter @@ -151,10 +196,25 @@ def __init__(__self__, *, :param str kms_key_identifier: The Amazon Resource Name (ARN) of the customer managed KMS key. :param str type: The encryption option specified for the table. Valid values: `AWS_OWNED_KMS_KEY`, `CUSTOMER_MANAGED_KMS_KEY`. The default value is `AWS_OWNED_KMS_KEY`. """ + TableEncryptionSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_identifier=kms_key_identifier, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_identifier: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_identifier is None and 'kmsKeyIdentifier' in kwargs: + kms_key_identifier = kwargs['kmsKeyIdentifier'] + if kms_key_identifier is not None: - pulumi.set(__self__, "kms_key_identifier", kms_key_identifier) + _setter("kms_key_identifier", kms_key_identifier) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="kmsKeyIdentifier") @@ -180,8 +240,19 @@ def __init__(__self__, *, """ :param str status: Valid values: `ENABLED`, `DISABLED`. The default value is `DISABLED`. """ + TablePointInTimeRecovery._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -226,12 +297,39 @@ def __init__(__self__, *, :param Sequence['TableSchemaDefinitionClusteringKeyArgs'] clustering_keys: The columns that are part of the clustering key of the table. :param Sequence['TableSchemaDefinitionStaticColumnArgs'] static_columns: The columns that have been defined as `STATIC`. Static columns store values that are shared by all rows in the same partition. """ - pulumi.set(__self__, "columns", columns) - pulumi.set(__self__, "partition_keys", partition_keys) + TableSchemaDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + partition_keys=partition_keys, + clustering_keys=clustering_keys, + static_columns=static_columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[Sequence['outputs.TableSchemaDefinitionColumn']] = None, + partition_keys: Optional[Sequence['outputs.TableSchemaDefinitionPartitionKey']] = None, + clustering_keys: Optional[Sequence['outputs.TableSchemaDefinitionClusteringKey']] = None, + static_columns: Optional[Sequence['outputs.TableSchemaDefinitionStaticColumn']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + if partition_keys is None and 'partitionKeys' in kwargs: + partition_keys = kwargs['partitionKeys'] + if partition_keys is None: + raise TypeError("Missing 'partition_keys' argument") + if clustering_keys is None and 'clusteringKeys' in kwargs: + clustering_keys = kwargs['clusteringKeys'] + if static_columns is None and 'staticColumns' in kwargs: + static_columns = kwargs['staticColumns'] + + _setter("columns", columns) + _setter("partition_keys", partition_keys) if clustering_keys is not None: - pulumi.set(__self__, "clustering_keys", clustering_keys) + _setter("clustering_keys", clustering_keys) if static_columns is not None: - pulumi.set(__self__, "static_columns", static_columns) + _setter("static_columns", static_columns) @property @pulumi.getter @@ -292,8 +390,27 @@ def __init__(__self__, *, :param str name: The name of the clustering key column. :param str order_by: The order modifier. Valid values: `ASC`, `DESC`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "order_by", order_by) + TableSchemaDefinitionClusteringKey._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + order_by=order_by, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + order_by: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if order_by is None and 'orderBy' in kwargs: + order_by = kwargs['orderBy'] + if order_by is None: + raise TypeError("Missing 'order_by' argument") + + _setter("name", name) + _setter("order_by", order_by) @property @pulumi.getter @@ -321,8 +438,25 @@ def __init__(__self__, *, :param str name: The name of the column. :param str type: The data type of the column. See the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types) for a list of available data types. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + TableSchemaDefinitionColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -348,7 +482,20 @@ def __init__(__self__, *, """ :param str name: The name of the partition key column. """ - pulumi.set(__self__, "name", name) + TableSchemaDefinitionPartitionKey._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -366,7 +513,20 @@ def __init__(__self__, *, """ :param str name: The name of the static column. """ - pulumi.set(__self__, "name", name) + TableSchemaDefinitionStaticColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -384,7 +544,20 @@ def __init__(__self__, *, """ :param str status: Valid values: `ENABLED`. """ - pulumi.set(__self__, "status", status) + TableTtl._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/keyspaces/table.py b/sdk/python/pulumi_aws/keyspaces/table.py index 4c38e43dc48..f6bb46741bd 100644 --- a/sdk/python/pulumi_aws/keyspaces/table.py +++ b/sdk/python/pulumi_aws/keyspaces/table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -43,25 +43,78 @@ def __init__(__self__, *, :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['TableTtlArgs'] ttl: Enables Time to Live custom settings for the table. More information can be found in the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html). """ - pulumi.set(__self__, "keyspace_name", keyspace_name) - pulumi.set(__self__, "schema_definition", schema_definition) - pulumi.set(__self__, "table_name", table_name) + TableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + keyspace_name=keyspace_name, + schema_definition=schema_definition, + table_name=table_name, + capacity_specification=capacity_specification, + client_side_timestamps=client_side_timestamps, + comment=comment, + default_time_to_live=default_time_to_live, + encryption_specification=encryption_specification, + point_in_time_recovery=point_in_time_recovery, + tags=tags, + ttl=ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + keyspace_name: Optional[pulumi.Input[str]] = None, + schema_definition: Optional[pulumi.Input['TableSchemaDefinitionArgs']] = None, + table_name: Optional[pulumi.Input[str]] = None, + capacity_specification: Optional[pulumi.Input['TableCapacitySpecificationArgs']] = None, + client_side_timestamps: Optional[pulumi.Input['TableClientSideTimestampsArgs']] = None, + comment: Optional[pulumi.Input['TableCommentArgs']] = None, + default_time_to_live: Optional[pulumi.Input[int]] = None, + encryption_specification: Optional[pulumi.Input['TableEncryptionSpecificationArgs']] = None, + point_in_time_recovery: Optional[pulumi.Input['TablePointInTimeRecoveryArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + ttl: Optional[pulumi.Input['TableTtlArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if keyspace_name is None and 'keyspaceName' in kwargs: + keyspace_name = kwargs['keyspaceName'] + if keyspace_name is None: + raise TypeError("Missing 'keyspace_name' argument") + if schema_definition is None and 'schemaDefinition' in kwargs: + schema_definition = kwargs['schemaDefinition'] + if schema_definition is None: + raise TypeError("Missing 'schema_definition' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if capacity_specification is None and 'capacitySpecification' in kwargs: + capacity_specification = kwargs['capacitySpecification'] + if client_side_timestamps is None and 'clientSideTimestamps' in kwargs: + client_side_timestamps = kwargs['clientSideTimestamps'] + if default_time_to_live is None and 'defaultTimeToLive' in kwargs: + default_time_to_live = kwargs['defaultTimeToLive'] + if encryption_specification is None and 'encryptionSpecification' in kwargs: + encryption_specification = kwargs['encryptionSpecification'] + if point_in_time_recovery is None and 'pointInTimeRecovery' in kwargs: + point_in_time_recovery = kwargs['pointInTimeRecovery'] + + _setter("keyspace_name", keyspace_name) + _setter("schema_definition", schema_definition) + _setter("table_name", table_name) if capacity_specification is not None: - pulumi.set(__self__, "capacity_specification", capacity_specification) + _setter("capacity_specification", capacity_specification) if client_side_timestamps is not None: - pulumi.set(__self__, "client_side_timestamps", client_side_timestamps) + _setter("client_side_timestamps", client_side_timestamps) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if default_time_to_live is not None: - pulumi.set(__self__, "default_time_to_live", default_time_to_live) + _setter("default_time_to_live", default_time_to_live) if encryption_specification is not None: - pulumi.set(__self__, "encryption_specification", encryption_specification) + _setter("encryption_specification", encryption_specification) if point_in_time_recovery is not None: - pulumi.set(__self__, "point_in_time_recovery", point_in_time_recovery) + _setter("point_in_time_recovery", point_in_time_recovery) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) @property @pulumi.getter(name="keyspaceName") @@ -232,35 +285,88 @@ def __init__(__self__, *, :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['TableTtlArgs'] ttl: Enables Time to Live custom settings for the table. More information can be found in the [Developer Guide](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html). """ + _TableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + capacity_specification=capacity_specification, + client_side_timestamps=client_side_timestamps, + comment=comment, + default_time_to_live=default_time_to_live, + encryption_specification=encryption_specification, + keyspace_name=keyspace_name, + point_in_time_recovery=point_in_time_recovery, + schema_definition=schema_definition, + table_name=table_name, + tags=tags, + tags_all=tags_all, + ttl=ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + capacity_specification: Optional[pulumi.Input['TableCapacitySpecificationArgs']] = None, + client_side_timestamps: Optional[pulumi.Input['TableClientSideTimestampsArgs']] = None, + comment: Optional[pulumi.Input['TableCommentArgs']] = None, + default_time_to_live: Optional[pulumi.Input[int]] = None, + encryption_specification: Optional[pulumi.Input['TableEncryptionSpecificationArgs']] = None, + keyspace_name: Optional[pulumi.Input[str]] = None, + point_in_time_recovery: Optional[pulumi.Input['TablePointInTimeRecoveryArgs']] = None, + schema_definition: Optional[pulumi.Input['TableSchemaDefinitionArgs']] = None, + table_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + ttl: Optional[pulumi.Input['TableTtlArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_specification is None and 'capacitySpecification' in kwargs: + capacity_specification = kwargs['capacitySpecification'] + if client_side_timestamps is None and 'clientSideTimestamps' in kwargs: + client_side_timestamps = kwargs['clientSideTimestamps'] + if default_time_to_live is None and 'defaultTimeToLive' in kwargs: + default_time_to_live = kwargs['defaultTimeToLive'] + if encryption_specification is None and 'encryptionSpecification' in kwargs: + encryption_specification = kwargs['encryptionSpecification'] + if keyspace_name is None and 'keyspaceName' in kwargs: + keyspace_name = kwargs['keyspaceName'] + if point_in_time_recovery is None and 'pointInTimeRecovery' in kwargs: + point_in_time_recovery = kwargs['pointInTimeRecovery'] + if schema_definition is None and 'schemaDefinition' in kwargs: + schema_definition = kwargs['schemaDefinition'] + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if capacity_specification is not None: - pulumi.set(__self__, "capacity_specification", capacity_specification) + _setter("capacity_specification", capacity_specification) if client_side_timestamps is not None: - pulumi.set(__self__, "client_side_timestamps", client_side_timestamps) + _setter("client_side_timestamps", client_side_timestamps) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if default_time_to_live is not None: - pulumi.set(__self__, "default_time_to_live", default_time_to_live) + _setter("default_time_to_live", default_time_to_live) if encryption_specification is not None: - pulumi.set(__self__, "encryption_specification", encryption_specification) + _setter("encryption_specification", encryption_specification) if keyspace_name is not None: - pulumi.set(__self__, "keyspace_name", keyspace_name) + _setter("keyspace_name", keyspace_name) if point_in_time_recovery is not None: - pulumi.set(__self__, "point_in_time_recovery", point_in_time_recovery) + _setter("point_in_time_recovery", point_in_time_recovery) if schema_definition is not None: - pulumi.set(__self__, "schema_definition", schema_definition) + _setter("schema_definition", schema_definition) if table_name is not None: - pulumi.set(__self__, "table_name", table_name) + _setter("table_name", table_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) @property @pulumi.getter @@ -539,6 +645,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -564,15 +674,21 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = TableArgs.__new__(TableArgs) + capacity_specification = _utilities.configure(capacity_specification, TableCapacitySpecificationArgs, True) __props__.__dict__["capacity_specification"] = capacity_specification + client_side_timestamps = _utilities.configure(client_side_timestamps, TableClientSideTimestampsArgs, True) __props__.__dict__["client_side_timestamps"] = client_side_timestamps + comment = _utilities.configure(comment, TableCommentArgs, True) __props__.__dict__["comment"] = comment __props__.__dict__["default_time_to_live"] = default_time_to_live + encryption_specification = _utilities.configure(encryption_specification, TableEncryptionSpecificationArgs, True) __props__.__dict__["encryption_specification"] = encryption_specification if keyspace_name is None and not opts.urn: raise TypeError("Missing required property 'keyspace_name'") __props__.__dict__["keyspace_name"] = keyspace_name + point_in_time_recovery = _utilities.configure(point_in_time_recovery, TablePointInTimeRecoveryArgs, True) __props__.__dict__["point_in_time_recovery"] = point_in_time_recovery + schema_definition = _utilities.configure(schema_definition, TableSchemaDefinitionArgs, True) if schema_definition is None and not opts.urn: raise TypeError("Missing required property 'schema_definition'") __props__.__dict__["schema_definition"] = schema_definition @@ -580,6 +696,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'table_name'") __props__.__dict__["table_name"] = table_name __props__.__dict__["tags"] = tags + ttl = _utilities.configure(ttl, TableTtlArgs, True) __props__.__dict__["ttl"] = ttl __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/kinesis/_inputs.py b/sdk/python/pulumi_aws/kinesis/_inputs.py index ad588402533..32cb46dd498 100644 --- a/sdk/python/pulumi_aws/kinesis/_inputs.py +++ b/sdk/python/pulumi_aws/kinesis/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -122,10 +122,33 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the IAM Role used to send application messages. :param pulumi.Input[str] id: The ARN of the Kinesis Analytics Application. """ - pulumi.set(__self__, "log_stream_arn", log_stream_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_stream_arn=log_stream_arn, + role_arn=role_arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_stream_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_stream_arn is None and 'logStreamArn' in kwargs: + log_stream_arn = kwargs['logStreamArn'] + if log_stream_arn is None: + raise TypeError("Missing 'log_stream_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("log_stream_arn", log_stream_arn) + _setter("role_arn", role_arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter(name="logStreamArn") @@ -191,22 +214,65 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['AnalyticsApplicationInputsStartingPositionConfigurationArgs']]] starting_position_configurations: The point at which the application starts processing records from the streaming source. See Starting Position Configuration below for more details. """ - pulumi.set(__self__, "name_prefix", name_prefix) - pulumi.set(__self__, "schema", schema) + AnalyticsApplicationInputsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name_prefix=name_prefix, + schema=schema, + id=id, + kinesis_firehose=kinesis_firehose, + kinesis_stream=kinesis_stream, + parallelism=parallelism, + processing_configuration=processing_configuration, + starting_position_configurations=starting_position_configurations, + stream_names=stream_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name_prefix: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input['AnalyticsApplicationInputsSchemaArgs']] = None, + id: Optional[pulumi.Input[str]] = None, + kinesis_firehose: Optional[pulumi.Input['AnalyticsApplicationInputsKinesisFirehoseArgs']] = None, + kinesis_stream: Optional[pulumi.Input['AnalyticsApplicationInputsKinesisStreamArgs']] = None, + parallelism: Optional[pulumi.Input['AnalyticsApplicationInputsParallelismArgs']] = None, + processing_configuration: Optional[pulumi.Input['AnalyticsApplicationInputsProcessingConfigurationArgs']] = None, + starting_position_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['AnalyticsApplicationInputsStartingPositionConfigurationArgs']]]] = None, + stream_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if name_prefix is None: + raise TypeError("Missing 'name_prefix' argument") + if schema is None: + raise TypeError("Missing 'schema' argument") + if kinesis_firehose is None and 'kinesisFirehose' in kwargs: + kinesis_firehose = kwargs['kinesisFirehose'] + if kinesis_stream is None and 'kinesisStream' in kwargs: + kinesis_stream = kwargs['kinesisStream'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if starting_position_configurations is None and 'startingPositionConfigurations' in kwargs: + starting_position_configurations = kwargs['startingPositionConfigurations'] + if stream_names is None and 'streamNames' in kwargs: + stream_names = kwargs['streamNames'] + + _setter("name_prefix", name_prefix) + _setter("schema", schema) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if kinesis_firehose is not None: - pulumi.set(__self__, "kinesis_firehose", kinesis_firehose) + _setter("kinesis_firehose", kinesis_firehose) if kinesis_stream is not None: - pulumi.set(__self__, "kinesis_stream", kinesis_stream) + _setter("kinesis_stream", kinesis_stream) if parallelism is not None: - pulumi.set(__self__, "parallelism", parallelism) + _setter("parallelism", parallelism) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if starting_position_configurations is not None: - pulumi.set(__self__, "starting_position_configurations", starting_position_configurations) + _setter("starting_position_configurations", starting_position_configurations) if stream_names is not None: - pulumi.set(__self__, "stream_names", stream_names) + _setter("stream_names", stream_names) @property @pulumi.getter(name="namePrefix") @@ -328,8 +394,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The ARN of the Kinesis Firehose delivery stream. :param pulumi.Input[str] role_arn: The ARN of the IAM Role used to access the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationInputsKinesisFirehoseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -365,8 +452,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The ARN of the Kinesis Stream. :param pulumi.Input[str] role_arn: The ARN of the IAM Role used to access the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationInputsKinesisStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -400,8 +508,19 @@ def __init__(__self__, *, """ :param pulumi.Input[int] count: The Count of streams. """ + AnalyticsApplicationInputsParallelismArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter @@ -423,7 +542,22 @@ def __init__(__self__, *, """ :param pulumi.Input['AnalyticsApplicationInputsProcessingConfigurationLambdaArgs'] lambda_: The Lambda function configuration. See Lambda below for more details. """ - pulumi.set(__self__, "lambda_", lambda_) + AnalyticsApplicationInputsProcessingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_=lambda_, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_: Optional[pulumi.Input['AnalyticsApplicationInputsProcessingConfigurationLambdaArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + if lambda_ is None: + raise TypeError("Missing 'lambda_' argument") + + _setter("lambda_", lambda_) @property @pulumi.getter(name="lambda") @@ -447,8 +581,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The ARN of the Lambda function. :param pulumi.Input[str] role_arn: The ARN of the IAM Role used to access the Lambda function. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationInputsProcessingConfigurationLambdaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -488,10 +643,35 @@ def __init__(__self__, *, See Record Format below for more details. :param pulumi.Input[str] record_encoding: The Encoding of the record in the streaming source. """ - pulumi.set(__self__, "record_columns", record_columns) - pulumi.set(__self__, "record_format", record_format) + AnalyticsApplicationInputsSchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_columns=record_columns, + record_format=record_format, + record_encoding=record_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_columns: Optional[pulumi.Input[Sequence[pulumi.Input['AnalyticsApplicationInputsSchemaRecordColumnArgs']]]] = None, + record_format: Optional[pulumi.Input['AnalyticsApplicationInputsSchemaRecordFormatArgs']] = None, + record_encoding: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_columns is None and 'recordColumns' in kwargs: + record_columns = kwargs['recordColumns'] + if record_columns is None: + raise TypeError("Missing 'record_columns' argument") + if record_format is None and 'recordFormat' in kwargs: + record_format = kwargs['recordFormat'] + if record_format is None: + raise TypeError("Missing 'record_format' argument") + if record_encoding is None and 'recordEncoding' in kwargs: + record_encoding = kwargs['recordEncoding'] + + _setter("record_columns", record_columns) + _setter("record_format", record_format) if record_encoding is not None: - pulumi.set(__self__, "record_encoding", record_encoding) + _setter("record_encoding", record_encoding) @property @pulumi.getter(name="recordColumns") @@ -543,10 +723,31 @@ def __init__(__self__, *, :param pulumi.Input[str] sql_type: The SQL Type of the column. :param pulumi.Input[str] mapping: The Mapping reference to the data element. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_type", sql_type) + AnalyticsApplicationInputsSchemaRecordColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_type=sql_type, + mapping=mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + sql_type: Optional[pulumi.Input[str]] = None, + mapping: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if sql_type is None and 'sqlType' in kwargs: + sql_type = kwargs['sqlType'] + if sql_type is None: + raise TypeError("Missing 'sql_type' argument") + + _setter("name", name) + _setter("sql_type", sql_type) if mapping is not None: - pulumi.set(__self__, "mapping", mapping) + _setter("mapping", mapping) @property @pulumi.getter @@ -595,10 +796,27 @@ def __init__(__self__, *, See Mapping Parameters below for more details. :param pulumi.Input[str] record_format_type: The type of Record Format. Can be `CSV` or `JSON`. """ + AnalyticsApplicationInputsSchemaRecordFormatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mapping_parameters=mapping_parameters, + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mapping_parameters: Optional[pulumi.Input['AnalyticsApplicationInputsSchemaRecordFormatMappingParametersArgs']] = None, + record_format_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mapping_parameters is None and 'mappingParameters' in kwargs: + mapping_parameters = kwargs['mappingParameters'] + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if mapping_parameters is not None: - pulumi.set(__self__, "mapping_parameters", mapping_parameters) + _setter("mapping_parameters", mapping_parameters) if record_format_type is not None: - pulumi.set(__self__, "record_format_type", record_format_type) + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="mappingParameters") @@ -637,10 +855,23 @@ def __init__(__self__, *, :param pulumi.Input['AnalyticsApplicationInputsSchemaRecordFormatMappingParametersJsonArgs'] json: Mapping information when JSON is the record format on the streaming source. See JSON Mapping Parameters below for more details. """ + AnalyticsApplicationInputsSchemaRecordFormatMappingParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv=csv, + json=json, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv: Optional[pulumi.Input['AnalyticsApplicationInputsSchemaRecordFormatMappingParametersCsvArgs']] = None, + json: Optional[pulumi.Input['AnalyticsApplicationInputsSchemaRecordFormatMappingParametersJsonArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv is not None: - pulumi.set(__self__, "csv", csv) + _setter("csv", csv) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) @property @pulumi.getter @@ -678,8 +909,29 @@ def __init__(__self__, *, :param pulumi.Input[str] record_column_delimiter: The Column Delimiter. :param pulumi.Input[str] record_row_delimiter: The Row Delimiter. """ - pulumi.set(__self__, "record_column_delimiter", record_column_delimiter) - pulumi.set(__self__, "record_row_delimiter", record_row_delimiter) + AnalyticsApplicationInputsSchemaRecordFormatMappingParametersCsvArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_column_delimiter=record_column_delimiter, + record_row_delimiter=record_row_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_column_delimiter: Optional[pulumi.Input[str]] = None, + record_row_delimiter: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_column_delimiter is None and 'recordColumnDelimiter' in kwargs: + record_column_delimiter = kwargs['recordColumnDelimiter'] + if record_column_delimiter is None: + raise TypeError("Missing 'record_column_delimiter' argument") + if record_row_delimiter is None and 'recordRowDelimiter' in kwargs: + record_row_delimiter = kwargs['recordRowDelimiter'] + if record_row_delimiter is None: + raise TypeError("Missing 'record_row_delimiter' argument") + + _setter("record_column_delimiter", record_column_delimiter) + _setter("record_row_delimiter", record_row_delimiter) @property @pulumi.getter(name="recordColumnDelimiter") @@ -713,7 +965,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] record_row_path: Path to the top-level parent that contains the records. """ - pulumi.set(__self__, "record_row_path", record_row_path) + AnalyticsApplicationInputsSchemaRecordFormatMappingParametersJsonArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_row_path=record_row_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_row_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_row_path is None and 'recordRowPath' in kwargs: + record_row_path = kwargs['recordRowPath'] + if record_row_path is None: + raise TypeError("Missing 'record_row_path' argument") + + _setter("record_row_path", record_row_path) @property @pulumi.getter(name="recordRowPath") @@ -735,8 +1002,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] starting_position: The starting position on the stream. Valid values: `LAST_STOPPED_POINT`, `NOW`, `TRIM_HORIZON`. """ + AnalyticsApplicationInputsStartingPositionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + starting_position=starting_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + starting_position: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + if starting_position is not None: - pulumi.set(__self__, "starting_position", starting_position) + _setter("starting_position", starting_position) @property @pulumi.getter(name="startingPosition") @@ -770,16 +1050,47 @@ def __init__(__self__, *, See Kinesis Stream below for more details. :param pulumi.Input['AnalyticsApplicationOutputLambdaArgs'] lambda_: The Lambda function destination. See Lambda below for more details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "schema", schema) + AnalyticsApplicationOutputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + schema=schema, + id=id, + kinesis_firehose=kinesis_firehose, + kinesis_stream=kinesis_stream, + lambda_=lambda_, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input['AnalyticsApplicationOutputSchemaArgs']] = None, + id: Optional[pulumi.Input[str]] = None, + kinesis_firehose: Optional[pulumi.Input['AnalyticsApplicationOutputKinesisFirehoseArgs']] = None, + kinesis_stream: Optional[pulumi.Input['AnalyticsApplicationOutputKinesisStreamArgs']] = None, + lambda_: Optional[pulumi.Input['AnalyticsApplicationOutputLambdaArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if schema is None: + raise TypeError("Missing 'schema' argument") + if kinesis_firehose is None and 'kinesisFirehose' in kwargs: + kinesis_firehose = kwargs['kinesisFirehose'] + if kinesis_stream is None and 'kinesisStream' in kwargs: + kinesis_stream = kwargs['kinesisStream'] + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + + _setter("name", name) + _setter("schema", schema) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if kinesis_firehose is not None: - pulumi.set(__self__, "kinesis_firehose", kinesis_firehose) + _setter("kinesis_firehose", kinesis_firehose) if kinesis_stream is not None: - pulumi.set(__self__, "kinesis_stream", kinesis_stream) + _setter("kinesis_stream", kinesis_stream) if lambda_ is not None: - pulumi.set(__self__, "lambda_", lambda_) + _setter("lambda_", lambda_) @property @pulumi.getter @@ -865,8 +1176,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The ARN of the Kinesis Firehose delivery stream. :param pulumi.Input[str] role_arn: The ARN of the IAM Role used to access the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationOutputKinesisFirehoseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -902,8 +1234,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The ARN of the Kinesis Stream. :param pulumi.Input[str] role_arn: The ARN of the IAM Role used to access the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationOutputKinesisStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -939,8 +1292,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The ARN of the Lambda function. :param pulumi.Input[str] role_arn: The ARN of the IAM Role used to access the Lambda function. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationOutputLambdaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -974,7 +1348,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] record_format_type: The Format Type of the records on the output stream. Can be `CSV` or `JSON`. """ - pulumi.set(__self__, "record_format_type", record_format_type) + AnalyticsApplicationOutputSchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_format_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if record_format_type is None: + raise TypeError("Missing 'record_format_type' argument") + + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="recordFormatType") @@ -1002,11 +1391,36 @@ def __init__(__self__, *, :param pulumi.Input[str] table_name: The in-application Table Name. :param pulumi.Input[str] id: The ARN of the Kinesis Analytics Application. """ - pulumi.set(__self__, "s3", s3) - pulumi.set(__self__, "schema", schema) - pulumi.set(__self__, "table_name", table_name) + AnalyticsApplicationReferenceDataSourcesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + schema=schema, + table_name=table_name, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional[pulumi.Input['AnalyticsApplicationReferenceDataSourcesS3Args']] = None, + schema: Optional[pulumi.Input['AnalyticsApplicationReferenceDataSourcesSchemaArgs']] = None, + table_name: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + if schema is None: + raise TypeError("Missing 'schema' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("s3", s3) + _setter("schema", schema) + _setter("table_name", table_name) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1068,9 +1482,36 @@ def __init__(__self__, *, :param pulumi.Input[str] file_key: The File Key name containing reference data. :param pulumi.Input[str] role_arn: The ARN of the IAM Role used to send application messages. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "file_key", file_key) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationReferenceDataSourcesS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + file_key=file_key, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + file_key: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if file_key is None and 'fileKey' in kwargs: + file_key = kwargs['fileKey'] + if file_key is None: + raise TypeError("Missing 'file_key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("bucket_arn", bucket_arn) + _setter("file_key", file_key) + _setter("role_arn", role_arn) @property @pulumi.getter(name="bucketArn") @@ -1122,10 +1563,35 @@ def __init__(__self__, *, See Record Format below for more details. :param pulumi.Input[str] record_encoding: The Encoding of the record in the streaming source. """ - pulumi.set(__self__, "record_columns", record_columns) - pulumi.set(__self__, "record_format", record_format) + AnalyticsApplicationReferenceDataSourcesSchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_columns=record_columns, + record_format=record_format, + record_encoding=record_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_columns: Optional[pulumi.Input[Sequence[pulumi.Input['AnalyticsApplicationReferenceDataSourcesSchemaRecordColumnArgs']]]] = None, + record_format: Optional[pulumi.Input['AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatArgs']] = None, + record_encoding: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_columns is None and 'recordColumns' in kwargs: + record_columns = kwargs['recordColumns'] + if record_columns is None: + raise TypeError("Missing 'record_columns' argument") + if record_format is None and 'recordFormat' in kwargs: + record_format = kwargs['recordFormat'] + if record_format is None: + raise TypeError("Missing 'record_format' argument") + if record_encoding is None and 'recordEncoding' in kwargs: + record_encoding = kwargs['recordEncoding'] + + _setter("record_columns", record_columns) + _setter("record_format", record_format) if record_encoding is not None: - pulumi.set(__self__, "record_encoding", record_encoding) + _setter("record_encoding", record_encoding) @property @pulumi.getter(name="recordColumns") @@ -1177,10 +1643,31 @@ def __init__(__self__, *, :param pulumi.Input[str] sql_type: The SQL Type of the column. :param pulumi.Input[str] mapping: The Mapping reference to the data element. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_type", sql_type) + AnalyticsApplicationReferenceDataSourcesSchemaRecordColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_type=sql_type, + mapping=mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + sql_type: Optional[pulumi.Input[str]] = None, + mapping: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if sql_type is None and 'sqlType' in kwargs: + sql_type = kwargs['sqlType'] + if sql_type is None: + raise TypeError("Missing 'sql_type' argument") + + _setter("name", name) + _setter("sql_type", sql_type) if mapping is not None: - pulumi.set(__self__, "mapping", mapping) + _setter("mapping", mapping) @property @pulumi.getter @@ -1229,10 +1716,27 @@ def __init__(__self__, *, See Mapping Parameters below for more details. :param pulumi.Input[str] record_format_type: The type of Record Format. Can be `CSV` or `JSON`. """ + AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mapping_parameters=mapping_parameters, + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mapping_parameters: Optional[pulumi.Input['AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersArgs']] = None, + record_format_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mapping_parameters is None and 'mappingParameters' in kwargs: + mapping_parameters = kwargs['mappingParameters'] + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if mapping_parameters is not None: - pulumi.set(__self__, "mapping_parameters", mapping_parameters) + _setter("mapping_parameters", mapping_parameters) if record_format_type is not None: - pulumi.set(__self__, "record_format_type", record_format_type) + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="mappingParameters") @@ -1271,10 +1775,23 @@ def __init__(__self__, *, :param pulumi.Input['AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersJsonArgs'] json: Mapping information when JSON is the record format on the streaming source. See JSON Mapping Parameters below for more details. """ + AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv=csv, + json=json, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv: Optional[pulumi.Input['AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersCsvArgs']] = None, + json: Optional[pulumi.Input['AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersJsonArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv is not None: - pulumi.set(__self__, "csv", csv) + _setter("csv", csv) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) @property @pulumi.getter @@ -1312,8 +1829,29 @@ def __init__(__self__, *, :param pulumi.Input[str] record_column_delimiter: The Column Delimiter. :param pulumi.Input[str] record_row_delimiter: The Row Delimiter. """ - pulumi.set(__self__, "record_column_delimiter", record_column_delimiter) - pulumi.set(__self__, "record_row_delimiter", record_row_delimiter) + AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersCsvArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_column_delimiter=record_column_delimiter, + record_row_delimiter=record_row_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_column_delimiter: Optional[pulumi.Input[str]] = None, + record_row_delimiter: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_column_delimiter is None and 'recordColumnDelimiter' in kwargs: + record_column_delimiter = kwargs['recordColumnDelimiter'] + if record_column_delimiter is None: + raise TypeError("Missing 'record_column_delimiter' argument") + if record_row_delimiter is None and 'recordRowDelimiter' in kwargs: + record_row_delimiter = kwargs['recordRowDelimiter'] + if record_row_delimiter is None: + raise TypeError("Missing 'record_row_delimiter' argument") + + _setter("record_column_delimiter", record_column_delimiter) + _setter("record_row_delimiter", record_row_delimiter) @property @pulumi.getter(name="recordColumnDelimiter") @@ -1347,7 +1885,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] record_row_path: Path to the top-level parent that contains the records. """ - pulumi.set(__self__, "record_row_path", record_row_path) + AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersJsonArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_row_path=record_row_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_row_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_row_path is None and 'recordRowPath' in kwargs: + record_row_path = kwargs['recordRowPath'] + if record_row_path is None: + raise TypeError("Missing 'record_row_path' argument") + + _setter("record_row_path", record_row_path) @property @pulumi.getter(name="recordRowPath") @@ -1395,31 +1948,102 @@ def __init__(__self__, *, :param pulumi.Input[str] type_name: The Elasticsearch type name with maximum length of 100 characters. :param pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs'] vpc_config: The VPC configuration for the delivery stream to connect to Elastic Search associated with the VPC. More details are given below """ - pulumi.set(__self__, "index_name", index_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "s3_configuration", s3_configuration) + FirehoseDeliveryStreamElasticsearchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + role_arn=role_arn, + s3_configuration=s3_configuration, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + cluster_endpoint=cluster_endpoint, + domain_arn=domain_arn, + index_rotation_period=index_rotation_period, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_mode=s3_backup_mode, + type_name=type_name, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs']] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationCloudwatchLoggingOptionsArgs']] = None, + cluster_endpoint: Optional[pulumi.Input[str]] = None, + domain_arn: Optional[pulumi.Input[str]] = None, + index_rotation_period: Optional[pulumi.Input[str]] = None, + processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs']] = None, + retry_duration: Optional[pulumi.Input[int]] = None, + s3_backup_mode: Optional[pulumi.Input[str]] = None, + type_name: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if cluster_endpoint is None and 'clusterEndpoint' in kwargs: + cluster_endpoint = kwargs['clusterEndpoint'] + if domain_arn is None and 'domainArn' in kwargs: + domain_arn = kwargs['domainArn'] + if index_rotation_period is None and 'indexRotationPeriod' in kwargs: + index_rotation_period = kwargs['indexRotationPeriod'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + if type_name is None and 'typeName' in kwargs: + type_name = kwargs['typeName'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("index_name", index_name) + _setter("role_arn", role_arn) + _setter("s3_configuration", s3_configuration) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if cluster_endpoint is not None: - pulumi.set(__self__, "cluster_endpoint", cluster_endpoint) + _setter("cluster_endpoint", cluster_endpoint) if domain_arn is not None: - pulumi.set(__self__, "domain_arn", domain_arn) + _setter("domain_arn", domain_arn) if index_rotation_period is not None: - pulumi.set(__self__, "index_rotation_period", index_rotation_period) + _setter("index_rotation_period", index_rotation_period) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) if type_name is not None: - pulumi.set(__self__, "type_name", type_name) + _setter("type_name", type_name) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="indexName") @@ -1601,12 +2225,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamElasticsearchConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -1654,10 +2297,23 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enables or disables data processing. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs']]] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + processors: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -1693,9 +2349,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -1733,8 +2404,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -1777,10 +2469,9 @@ def __init__(__self__, *, 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[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. :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['FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs'] 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). @@ -1788,22 +2479,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']] = 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -1821,7 +2559,7 @@ def bucket_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -1846,7 +2584,6 @@ def buffering_interval(self, value: Optional[pulumi.Input[int]]): 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") @@ -1927,12 +2664,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -1983,11 +2739,42 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("role_arn", role_arn) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="roleArn") @@ -2054,10 +2841,9 @@ def __init__(__self__, *, s3_backup_mode: 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[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. :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['FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptionsArgs'] 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['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationArgs'] data_format_conversion_configuration: Nested argument for the serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. More details given below. @@ -2068,34 +2854,101 @@ def __init__(__self__, *, :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 :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs'] processing_configuration: The data processing configuration. More details are given below. :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs'] s3_backup_configuration: The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. - :param pulumi.Input[str] s3_backup_mode: The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + :param pulumi.Input[str] s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "role_arn", role_arn) + FirehoseDeliveryStreamExtendedS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + data_format_conversion_configuration=data_format_conversion_configuration, + dynamic_partitioning_configuration=dynamic_partitioning_configuration, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + processing_configuration=processing_configuration, + s3_backup_configuration=s3_backup_configuration, + s3_backup_mode=s3_backup_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptionsArgs']] = None, + compression_format: Optional[pulumi.Input[str]] = None, + data_format_conversion_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationArgs']] = None, + dynamic_partitioning_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs']] = None, + error_output_prefix: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs']] = None, + s3_backup_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs']] = None, + s3_backup_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if data_format_conversion_configuration is None and 'dataFormatConversionConfiguration' in kwargs: + data_format_conversion_configuration = kwargs['dataFormatConversionConfiguration'] + if dynamic_partitioning_configuration is None and 'dynamicPartitioningConfiguration' in kwargs: + dynamic_partitioning_configuration = kwargs['dynamicPartitioningConfiguration'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if s3_backup_configuration is None and 's3BackupConfiguration' in kwargs: + s3_backup_configuration = kwargs['s3BackupConfiguration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if data_format_conversion_configuration is not None: - pulumi.set(__self__, "data_format_conversion_configuration", data_format_conversion_configuration) + _setter("data_format_conversion_configuration", data_format_conversion_configuration) if dynamic_partitioning_configuration is not None: - pulumi.set(__self__, "dynamic_partitioning_configuration", dynamic_partitioning_configuration) + _setter("dynamic_partitioning_configuration", dynamic_partitioning_configuration) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if s3_backup_configuration is not None: - pulumi.set(__self__, "s3_backup_configuration", s3_backup_configuration) + _setter("s3_backup_configuration", s3_backup_configuration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) @property @pulumi.getter(name="bucketArn") @@ -2113,7 +2966,7 @@ def bucket_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -2138,7 +2991,6 @@ def buffering_interval(self, value: Optional[pulumi.Input[int]]): 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") @@ -2259,7 +3111,7 @@ def s3_backup_configuration(self, value: Optional[pulumi.Input['FirehoseDelivery @pulumi.getter(name="s3BackupMode") def s3_backup_mode(self) -> Optional[pulumi.Input[str]]: """ - The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + 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") @@ -2279,12 +3131,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -2336,11 +3207,40 @@ def __init__(__self__, *, :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationSchemaConfigurationArgs'] schema_configuration: Nested argument that specifies the AWS Glue Data Catalog table that contains the column information. More details below. :param pulumi.Input[bool] enabled: Defaults to `true`. Set it to `false` if you want to disable format conversion while preserving the configuration details. """ - pulumi.set(__self__, "input_format_configuration", input_format_configuration) - pulumi.set(__self__, "output_format_configuration", output_format_configuration) - pulumi.set(__self__, "schema_configuration", schema_configuration) + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_format_configuration=input_format_configuration, + output_format_configuration=output_format_configuration, + schema_configuration=schema_configuration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_format_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationArgs']] = None, + output_format_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationArgs']] = None, + schema_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationSchemaConfigurationArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_format_configuration is None and 'inputFormatConfiguration' in kwargs: + input_format_configuration = kwargs['inputFormatConfiguration'] + if input_format_configuration is None: + raise TypeError("Missing 'input_format_configuration' argument") + if output_format_configuration is None and 'outputFormatConfiguration' in kwargs: + output_format_configuration = kwargs['outputFormatConfiguration'] + if output_format_configuration is None: + raise TypeError("Missing 'output_format_configuration' argument") + if schema_configuration is None and 'schemaConfiguration' in kwargs: + schema_configuration = kwargs['schemaConfiguration'] + if schema_configuration is None: + raise TypeError("Missing 'schema_configuration' argument") + + _setter("input_format_configuration", input_format_configuration) + _setter("output_format_configuration", output_format_configuration) + _setter("schema_configuration", schema_configuration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="inputFormatConfiguration") @@ -2398,7 +3298,20 @@ def __init__(__self__, *, """ :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerArgs'] deserializer: Nested argument that specifies which deserializer to use. You can choose either the Apache Hive JSON SerDe or the OpenX JSON SerDe. More details below. """ - pulumi.set(__self__, "deserializer", deserializer) + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + deserializer=deserializer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deserializer: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deserializer is None: + raise TypeError("Missing 'deserializer' argument") + + _setter("deserializer", deserializer) @property @pulumi.getter @@ -2422,10 +3335,27 @@ def __init__(__self__, *, :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerHiveJsonSerDeArgs'] hive_json_ser_de: Nested argument that specifies the native Hive / HCatalog JsonSerDe. More details below. :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerOpenXJsonSerDeArgs'] open_x_json_ser_de: Nested argument that specifies the OpenX SerDe. More details below. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hive_json_ser_de=hive_json_ser_de, + open_x_json_ser_de=open_x_json_ser_de, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hive_json_ser_de: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerHiveJsonSerDeArgs']] = None, + open_x_json_ser_de: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerOpenXJsonSerDeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hive_json_ser_de is None and 'hiveJsonSerDe' in kwargs: + hive_json_ser_de = kwargs['hiveJsonSerDe'] + if open_x_json_ser_de is None and 'openXJsonSerDe' in kwargs: + open_x_json_ser_de = kwargs['openXJsonSerDe'] + if hive_json_ser_de is not None: - pulumi.set(__self__, "hive_json_ser_de", hive_json_ser_de) + _setter("hive_json_ser_de", hive_json_ser_de) if open_x_json_ser_de is not None: - pulumi.set(__self__, "open_x_json_ser_de", open_x_json_ser_de) + _setter("open_x_json_ser_de", open_x_json_ser_de) @property @pulumi.getter(name="hiveJsonSerDe") @@ -2459,8 +3389,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] timestamp_formats: A list of how you want Kinesis Data Firehose to parse the date and time stamps that may be present in your input data JSON. To specify these format strings, follow the pattern syntax of JodaTime's DateTimeFormat format strings. For more information, see [Class DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html). You can also use the special value millis to parse time stamps in epoch milliseconds. If you don't specify a format, Kinesis Data Firehose uses java.sql.Timestamp::valueOf by default. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerHiveJsonSerDeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + timestamp_formats=timestamp_formats, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + timestamp_formats: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if timestamp_formats is None and 'timestampFormats' in kwargs: + timestamp_formats = kwargs['timestampFormats'] + if timestamp_formats is not None: - pulumi.set(__self__, "timestamp_formats", timestamp_formats) + _setter("timestamp_formats", timestamp_formats) @property @pulumi.getter(name="timestampFormats") @@ -2486,12 +3429,33 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] column_to_json_key_mappings: A map of column names to JSON keys that aren't identical to the column names. This is useful when the JSON contains keys that are Hive keywords. For example, timestamp is a Hive keyword. If you have a JSON key named timestamp, set this parameter to `{ ts = "timestamp" }` to map this key to a column named ts. :param pulumi.Input[bool] convert_dots_in_json_keys_to_underscores: When set to `true`, specifies that the names of the keys include dots and that you want Kinesis Data Firehose to replace them with underscores. This is useful because Apache Hive does not allow dots in column names. For example, if the JSON contains a key whose name is "a.b", you can define the column name to be "a_b" when using this option. Defaults to `false`. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerOpenXJsonSerDeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + case_insensitive=case_insensitive, + column_to_json_key_mappings=column_to_json_key_mappings, + convert_dots_in_json_keys_to_underscores=convert_dots_in_json_keys_to_underscores, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + case_insensitive: Optional[pulumi.Input[bool]] = None, + column_to_json_key_mappings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + convert_dots_in_json_keys_to_underscores: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if case_insensitive is None and 'caseInsensitive' in kwargs: + case_insensitive = kwargs['caseInsensitive'] + if column_to_json_key_mappings is None and 'columnToJsonKeyMappings' in kwargs: + column_to_json_key_mappings = kwargs['columnToJsonKeyMappings'] + if convert_dots_in_json_keys_to_underscores is None and 'convertDotsInJsonKeysToUnderscores' in kwargs: + convert_dots_in_json_keys_to_underscores = kwargs['convertDotsInJsonKeysToUnderscores'] + if case_insensitive is not None: - pulumi.set(__self__, "case_insensitive", case_insensitive) + _setter("case_insensitive", case_insensitive) if column_to_json_key_mappings is not None: - pulumi.set(__self__, "column_to_json_key_mappings", column_to_json_key_mappings) + _setter("column_to_json_key_mappings", column_to_json_key_mappings) if convert_dots_in_json_keys_to_underscores is not None: - pulumi.set(__self__, "convert_dots_in_json_keys_to_underscores", convert_dots_in_json_keys_to_underscores) + _setter("convert_dots_in_json_keys_to_underscores", convert_dots_in_json_keys_to_underscores) @property @pulumi.getter(name="caseInsensitive") @@ -2537,7 +3501,20 @@ def __init__(__self__, *, """ :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs'] serializer: Nested argument that specifies which serializer to use. You can choose either the ORC SerDe or the Parquet SerDe. More details below. """ - pulumi.set(__self__, "serializer", serializer) + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + serializer=serializer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + serializer: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if serializer is None: + raise TypeError("Missing 'serializer' argument") + + _setter("serializer", serializer) @property @pulumi.getter @@ -2561,10 +3538,27 @@ def __init__(__self__, *, :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDeArgs'] orc_ser_de: Nested argument that specifies converting data to the ORC format before storing it in Amazon S3. For more information, see [Apache ORC](https://orc.apache.org/docs/). More details below. :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs'] parquet_ser_de: Nested argument that specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + orc_ser_de=orc_ser_de, + parquet_ser_de=parquet_ser_de, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + orc_ser_de: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDeArgs']] = None, + parquet_ser_de: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if orc_ser_de is None and 'orcSerDe' in kwargs: + orc_ser_de = kwargs['orcSerDe'] + if parquet_ser_de is None and 'parquetSerDe' in kwargs: + parquet_ser_de = kwargs['parquetSerDe'] + if orc_ser_de is not None: - pulumi.set(__self__, "orc_ser_de", orc_ser_de) + _setter("orc_ser_de", orc_ser_de) if parquet_ser_de is not None: - pulumi.set(__self__, "parquet_ser_de", parquet_ser_de) + _setter("parquet_ser_de", parquet_ser_de) @property @pulumi.getter(name="orcSerDe") @@ -2616,26 +3610,73 @@ def __init__(__self__, *, :param pulumi.Input[int] row_index_stride: The number of rows between index entries. The default is `10000` and the minimum is `1000`. :param pulumi.Input[int] stripe_size_bytes: The number of bytes in each stripe. The default is 64 MiB and the minimum is 8 MiB. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_size_bytes=block_size_bytes, + bloom_filter_columns=bloom_filter_columns, + bloom_filter_false_positive_probability=bloom_filter_false_positive_probability, + compression=compression, + dictionary_key_threshold=dictionary_key_threshold, + enable_padding=enable_padding, + format_version=format_version, + padding_tolerance=padding_tolerance, + row_index_stride=row_index_stride, + stripe_size_bytes=stripe_size_bytes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_size_bytes: Optional[pulumi.Input[int]] = None, + bloom_filter_columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + bloom_filter_false_positive_probability: Optional[pulumi.Input[float]] = None, + compression: Optional[pulumi.Input[str]] = None, + dictionary_key_threshold: Optional[pulumi.Input[float]] = None, + enable_padding: Optional[pulumi.Input[bool]] = None, + format_version: Optional[pulumi.Input[str]] = None, + padding_tolerance: Optional[pulumi.Input[float]] = None, + row_index_stride: Optional[pulumi.Input[int]] = None, + stripe_size_bytes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_size_bytes is None and 'blockSizeBytes' in kwargs: + block_size_bytes = kwargs['blockSizeBytes'] + if bloom_filter_columns is None and 'bloomFilterColumns' in kwargs: + bloom_filter_columns = kwargs['bloomFilterColumns'] + if bloom_filter_false_positive_probability is None and 'bloomFilterFalsePositiveProbability' in kwargs: + bloom_filter_false_positive_probability = kwargs['bloomFilterFalsePositiveProbability'] + if dictionary_key_threshold is None and 'dictionaryKeyThreshold' in kwargs: + dictionary_key_threshold = kwargs['dictionaryKeyThreshold'] + if enable_padding is None and 'enablePadding' in kwargs: + enable_padding = kwargs['enablePadding'] + if format_version is None and 'formatVersion' in kwargs: + format_version = kwargs['formatVersion'] + if padding_tolerance is None and 'paddingTolerance' in kwargs: + padding_tolerance = kwargs['paddingTolerance'] + if row_index_stride is None and 'rowIndexStride' in kwargs: + row_index_stride = kwargs['rowIndexStride'] + if stripe_size_bytes is None and 'stripeSizeBytes' in kwargs: + stripe_size_bytes = kwargs['stripeSizeBytes'] + if block_size_bytes is not None: - pulumi.set(__self__, "block_size_bytes", block_size_bytes) + _setter("block_size_bytes", block_size_bytes) if bloom_filter_columns is not None: - pulumi.set(__self__, "bloom_filter_columns", bloom_filter_columns) + _setter("bloom_filter_columns", bloom_filter_columns) if bloom_filter_false_positive_probability is not None: - pulumi.set(__self__, "bloom_filter_false_positive_probability", bloom_filter_false_positive_probability) + _setter("bloom_filter_false_positive_probability", bloom_filter_false_positive_probability) if compression is not None: - pulumi.set(__self__, "compression", compression) + _setter("compression", compression) if dictionary_key_threshold is not None: - pulumi.set(__self__, "dictionary_key_threshold", dictionary_key_threshold) + _setter("dictionary_key_threshold", dictionary_key_threshold) if enable_padding is not None: - pulumi.set(__self__, "enable_padding", enable_padding) + _setter("enable_padding", enable_padding) if format_version is not None: - pulumi.set(__self__, "format_version", format_version) + _setter("format_version", format_version) if padding_tolerance is not None: - pulumi.set(__self__, "padding_tolerance", padding_tolerance) + _setter("padding_tolerance", padding_tolerance) if row_index_stride is not None: - pulumi.set(__self__, "row_index_stride", row_index_stride) + _setter("row_index_stride", row_index_stride) if stripe_size_bytes is not None: - pulumi.set(__self__, "stripe_size_bytes", stripe_size_bytes) + _setter("stripe_size_bytes", stripe_size_bytes) @property @pulumi.getter(name="blockSizeBytes") @@ -2775,18 +3816,49 @@ def __init__(__self__, *, :param pulumi.Input[int] page_size_bytes: The Parquet page size. Column chunks are divided into pages. A page is conceptually an indivisible unit (in terms of compression and encoding). The minimum value is 64 KiB and the default is 1 MiB. :param pulumi.Input[str] writer_version: Indicates the version of row format to output. The possible values are `V1` and `V2`. The default is `V1`. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_size_bytes=block_size_bytes, + compression=compression, + enable_dictionary_compression=enable_dictionary_compression, + max_padding_bytes=max_padding_bytes, + page_size_bytes=page_size_bytes, + writer_version=writer_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_size_bytes: Optional[pulumi.Input[int]] = None, + compression: Optional[pulumi.Input[str]] = None, + enable_dictionary_compression: Optional[pulumi.Input[bool]] = None, + max_padding_bytes: Optional[pulumi.Input[int]] = None, + page_size_bytes: Optional[pulumi.Input[int]] = None, + writer_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_size_bytes is None and 'blockSizeBytes' in kwargs: + block_size_bytes = kwargs['blockSizeBytes'] + if enable_dictionary_compression is None and 'enableDictionaryCompression' in kwargs: + enable_dictionary_compression = kwargs['enableDictionaryCompression'] + if max_padding_bytes is None and 'maxPaddingBytes' in kwargs: + max_padding_bytes = kwargs['maxPaddingBytes'] + if page_size_bytes is None and 'pageSizeBytes' in kwargs: + page_size_bytes = kwargs['pageSizeBytes'] + if writer_version is None and 'writerVersion' in kwargs: + writer_version = kwargs['writerVersion'] + if block_size_bytes is not None: - pulumi.set(__self__, "block_size_bytes", block_size_bytes) + _setter("block_size_bytes", block_size_bytes) if compression is not None: - pulumi.set(__self__, "compression", compression) + _setter("compression", compression) if enable_dictionary_compression is not None: - pulumi.set(__self__, "enable_dictionary_compression", enable_dictionary_compression) + _setter("enable_dictionary_compression", enable_dictionary_compression) if max_padding_bytes is not None: - pulumi.set(__self__, "max_padding_bytes", max_padding_bytes) + _setter("max_padding_bytes", max_padding_bytes) if page_size_bytes is not None: - pulumi.set(__self__, "page_size_bytes", page_size_bytes) + _setter("page_size_bytes", page_size_bytes) if writer_version is not None: - pulumi.set(__self__, "writer_version", writer_version) + _setter("writer_version", writer_version) @property @pulumi.getter(name="blockSizeBytes") @@ -2878,15 +3950,52 @@ def __init__(__self__, *, :param pulumi.Input[str] region: If you don't specify an AWS Region, the default is the current region. :param pulumi.Input[str] version_id: Specifies the table version for the output data schema. Defaults to `LATEST`. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationSchemaConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + role_arn=role_arn, + table_name=table_name, + catalog_id=catalog_id, + region=region, + version_id=version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + version_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + + _setter("database_name", database_name) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) @property @pulumi.getter(name="databaseName") @@ -2972,10 +4081,25 @@ def __init__(__self__, *, > **NOTE:** You can enable dynamic partitioning only when you create a new delivery stream. Once you enable dynamic partitioning on a delivery stream, it cannot be disabled on this delivery stream. Therefore, the provider will recreate the resource whenever dynamic partitioning is enabled or disabled. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + retry_duration=retry_duration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + retry_duration: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) @property @pulumi.getter @@ -3013,10 +4137,23 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enables or disables data processing. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs']]] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + processors: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -3052,9 +4189,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -3092,8 +4244,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -3136,10 +4309,9 @@ def __init__(__self__, *, 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[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. :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['FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptionsArgs'] 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). @@ -3147,22 +4319,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptionsArgs']] = 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -3180,7 +4399,7 @@ def bucket_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -3205,7 +4424,6 @@ def buffering_interval(self, value: Optional[pulumi.Input[int]]): 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") @@ -3286,12 +4504,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -3359,28 +4596,85 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs. The pattern needs to be `arn:.*`. :param pulumi.Input[str] s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedDataOnly` and `AllData`. Default value is `FailedDataOnly`. """ - pulumi.set(__self__, "s3_configuration", s3_configuration) - pulumi.set(__self__, "url", url) + FirehoseDeliveryStreamHttpEndpointConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_configuration=s3_configuration, + url=url, + access_key=access_key, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + name=name, + processing_configuration=processing_configuration, + request_configuration=request_configuration, + retry_duration=retry_duration, + role_arn=role_arn, + s3_backup_mode=s3_backup_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs']] = None, + url: Optional[pulumi.Input[str]] = None, + access_key: Optional[pulumi.Input[str]] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationCloudwatchLoggingOptionsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationArgs']] = None, + request_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs']] = None, + retry_duration: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + s3_backup_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if url is None: + raise TypeError("Missing 'url' argument") + if access_key is None and 'accessKey' in kwargs: + access_key = kwargs['accessKey'] + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if request_configuration is None and 'requestConfiguration' in kwargs: + request_configuration = kwargs['requestConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + + _setter("s3_configuration", s3_configuration) + _setter("url", url) if access_key is not None: - pulumi.set(__self__, "access_key", access_key) + _setter("access_key", access_key) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if request_configuration is not None: - pulumi.set(__self__, "request_configuration", request_configuration) + _setter("request_configuration", request_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) @property @pulumi.getter(name="s3Configuration") @@ -3538,12 +4832,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamHttpEndpointConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -3591,10 +4904,23 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enables or disables data processing. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs']]] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + processors: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -3630,9 +4956,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -3670,8 +5011,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -3709,10 +5071,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs']]] common_attributes: Describes the metadata sent to the HTTP endpoint destination. More details are given below :param pulumi.Input[str] content_encoding: Kinesis Data Firehose uses the content encoding to compress the body of a request before sending the request to the destination. Valid values are `NONE` and `GZIP`. Default value is `NONE`. """ + FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + common_attributes=common_attributes, + content_encoding=content_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + common_attributes: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs']]]] = None, + content_encoding: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if common_attributes is None and 'commonAttributes' in kwargs: + common_attributes = kwargs['commonAttributes'] + if content_encoding is None and 'contentEncoding' in kwargs: + content_encoding = kwargs['contentEncoding'] + if common_attributes is not None: - pulumi.set(__self__, "common_attributes", common_attributes) + _setter("common_attributes", common_attributes) if content_encoding is not None: - pulumi.set(__self__, "content_encoding", content_encoding) + _setter("content_encoding", content_encoding) @property @pulumi.getter(name="commonAttributes") @@ -3748,8 +5127,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the HTTP endpoint common attribute. :param pulumi.Input[str] value: The value of the HTTP endpoint common attribute. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3790,10 +5186,9 @@ def __init__(__self__, *, 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[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. :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['FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs'] 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). @@ -3801,22 +5196,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']] = 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -3834,7 +5276,7 @@ def bucket_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -3859,7 +5301,6 @@ def buffering_interval(self, value: Optional[pulumi.Input[int]]): 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") @@ -3940,12 +5381,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -3993,8 +5453,29 @@ def __init__(__self__, *, :param pulumi.Input[str] kinesis_stream_arn: The kinesis stream used as the source of the firehose delivery stream. :param pulumi.Input[str] role_arn: The ARN of the role that provides access to the source Kinesis stream. """ - pulumi.set(__self__, "kinesis_stream_arn", kinesis_stream_arn) - pulumi.set(__self__, "role_arn", role_arn) + FirehoseDeliveryStreamKinesisSourceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kinesis_stream_arn=kinesis_stream_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kinesis_stream_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kinesis_stream_arn is None and 'kinesisStreamArn' in kwargs: + kinesis_stream_arn = kwargs['kinesisStreamArn'] + if kinesis_stream_arn is None: + raise TypeError("Missing 'kinesis_stream_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("kinesis_stream_arn", kinesis_stream_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="kinesisStreamArn") @@ -4032,9 +5513,36 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamMskSourceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_configuration=authentication_configuration, + msk_cluster_arn=msk_cluster_arn, + topic_name=topic_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs']] = None, + msk_cluster_arn: Optional[pulumi.Input[str]] = None, + topic_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_configuration is None and 'authenticationConfiguration' in kwargs: + authentication_configuration = kwargs['authenticationConfiguration'] + if authentication_configuration is None: + raise TypeError("Missing 'authentication_configuration' argument") + if msk_cluster_arn is None and 'mskClusterArn' in kwargs: + msk_cluster_arn = kwargs['mskClusterArn'] + if msk_cluster_arn is None: + raise TypeError("Missing 'msk_cluster_arn' argument") + if topic_name is None and 'topicName' in kwargs: + topic_name = kwargs['topicName'] + if topic_name is None: + raise TypeError("Missing 'topic_name' argument") + + _setter("authentication_configuration", authentication_configuration) + _setter("msk_cluster_arn", msk_cluster_arn) + _setter("topic_name", topic_name) @property @pulumi.getter(name="authenticationConfiguration") @@ -4082,8 +5590,27 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connectivity=connectivity, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connectivity: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connectivity is None: + raise TypeError("Missing 'connectivity' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("connectivity", connectivity) + _setter("role_arn", role_arn) @property @pulumi.getter @@ -4143,31 +5670,102 @@ def __init__(__self__, *, :param pulumi.Input[str] type_name: The Elasticsearch type name with maximum length of 100 characters. Types are deprecated in OpenSearch_1.1. TypeName must be empty. :param pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs'] vpc_config: The VPC configuration for the delivery stream to connect to OpenSearch associated with the VPC. More details are given below """ - pulumi.set(__self__, "index_name", index_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "s3_configuration", s3_configuration) + FirehoseDeliveryStreamOpensearchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + role_arn=role_arn, + s3_configuration=s3_configuration, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + cluster_endpoint=cluster_endpoint, + domain_arn=domain_arn, + index_rotation_period=index_rotation_period, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_mode=s3_backup_mode, + type_name=type_name, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs']] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptionsArgs']] = None, + cluster_endpoint: Optional[pulumi.Input[str]] = None, + domain_arn: Optional[pulumi.Input[str]] = None, + index_rotation_period: Optional[pulumi.Input[str]] = None, + processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs']] = None, + retry_duration: Optional[pulumi.Input[int]] = None, + s3_backup_mode: Optional[pulumi.Input[str]] = None, + type_name: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if cluster_endpoint is None and 'clusterEndpoint' in kwargs: + cluster_endpoint = kwargs['clusterEndpoint'] + if domain_arn is None and 'domainArn' in kwargs: + domain_arn = kwargs['domainArn'] + if index_rotation_period is None and 'indexRotationPeriod' in kwargs: + index_rotation_period = kwargs['indexRotationPeriod'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + if type_name is None and 'typeName' in kwargs: + type_name = kwargs['typeName'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("index_name", index_name) + _setter("role_arn", role_arn) + _setter("s3_configuration", s3_configuration) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if cluster_endpoint is not None: - pulumi.set(__self__, "cluster_endpoint", cluster_endpoint) + _setter("cluster_endpoint", cluster_endpoint) if domain_arn is not None: - pulumi.set(__self__, "domain_arn", domain_arn) + _setter("domain_arn", domain_arn) if index_rotation_period is not None: - pulumi.set(__self__, "index_rotation_period", index_rotation_period) + _setter("index_rotation_period", index_rotation_period) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) if type_name is not None: - pulumi.set(__self__, "type_name", type_name) + _setter("type_name", type_name) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="indexName") @@ -4349,12 +5947,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -4402,10 +6019,23 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enables or disables data processing. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs']]] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + processors: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -4441,9 +6071,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -4481,8 +6126,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -4525,10 +6191,9 @@ def __init__(__self__, *, 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[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. :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['FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs'] 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). @@ -4536,22 +6201,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']] = 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -4569,7 +6281,7 @@ def bucket_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -4594,7 +6306,6 @@ def buffering_interval(self, value: Optional[pulumi.Input[int]]): 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") @@ -4675,12 +6386,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -4731,11 +6461,42 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("role_arn", role_arn) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="roleArn") @@ -4810,24 +6571,85 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + collection_endpoint=collection_endpoint, + index_name=index_name, + role_arn=role_arn, + s3_configuration=s3_configuration, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_mode=s3_backup_mode, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + collection_endpoint: Optional[pulumi.Input[str]] = None, + index_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs']] = None, + 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if collection_endpoint is None and 'collectionEndpoint' in kwargs: + collection_endpoint = kwargs['collectionEndpoint'] + if collection_endpoint is None: + raise TypeError("Missing 'collection_endpoint' argument") + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("collection_endpoint", collection_endpoint) + _setter("index_name", index_name) + _setter("role_arn", role_arn) + _setter("s3_configuration", s3_configuration) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="collectionEndpoint") @@ -4973,12 +6795,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -5026,10 +6867,23 @@ def __init__(__self__, *, :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 """ + FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + processors: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -5065,9 +6919,24 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -5105,8 +6974,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -5149,10 +7039,9 @@ def __init__(__self__, *, 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[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. :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). @@ -5160,22 +7049,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -5193,7 +7129,7 @@ def bucket_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -5218,7 +7154,6 @@ def buffering_interval(self, value: Optional[pulumi.Input[int]]): 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") @@ -5299,12 +7234,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -5355,11 +7309,42 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("role_arn", role_arn) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="roleArn") @@ -5438,26 +7423,95 @@ def __init__(__self__, *, :param pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs'] s3_backup_configuration: The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. :param pulumi.Input[str] s3_backup_mode: The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. """ - pulumi.set(__self__, "cluster_jdbcurl", cluster_jdbcurl) - pulumi.set(__self__, "data_table_name", data_table_name) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "s3_configuration", s3_configuration) - pulumi.set(__self__, "username", username) + FirehoseDeliveryStreamRedshiftConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_jdbcurl=cluster_jdbcurl, + data_table_name=data_table_name, + password=password, + role_arn=role_arn, + s3_configuration=s3_configuration, + username=username, + cloudwatch_logging_options=cloudwatch_logging_options, + copy_options=copy_options, + data_table_columns=data_table_columns, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_configuration=s3_backup_configuration, + s3_backup_mode=s3_backup_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_jdbcurl: Optional[pulumi.Input[str]] = None, + data_table_name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs']] = None, + username: Optional[pulumi.Input[str]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgs']] = None, + copy_options: Optional[pulumi.Input[str]] = None, + data_table_columns: Optional[pulumi.Input[str]] = None, + processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationArgs']] = None, + retry_duration: Optional[pulumi.Input[int]] = None, + s3_backup_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs']] = None, + s3_backup_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_jdbcurl is None and 'clusterJdbcurl' in kwargs: + cluster_jdbcurl = kwargs['clusterJdbcurl'] + if cluster_jdbcurl is None: + raise TypeError("Missing 'cluster_jdbcurl' argument") + if data_table_name is None and 'dataTableName' in kwargs: + data_table_name = kwargs['dataTableName'] + if data_table_name is None: + raise TypeError("Missing 'data_table_name' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if copy_options is None and 'copyOptions' in kwargs: + copy_options = kwargs['copyOptions'] + if data_table_columns is None and 'dataTableColumns' in kwargs: + data_table_columns = kwargs['dataTableColumns'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_configuration is None and 's3BackupConfiguration' in kwargs: + s3_backup_configuration = kwargs['s3BackupConfiguration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + + _setter("cluster_jdbcurl", cluster_jdbcurl) + _setter("data_table_name", data_table_name) + _setter("password", password) + _setter("role_arn", role_arn) + _setter("s3_configuration", s3_configuration) + _setter("username", username) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if copy_options is not None: - pulumi.set(__self__, "copy_options", copy_options) + _setter("copy_options", copy_options) if data_table_columns is not None: - pulumi.set(__self__, "data_table_columns", data_table_columns) + _setter("data_table_columns", data_table_columns) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_configuration is not None: - pulumi.set(__self__, "s3_backup_configuration", s3_backup_configuration) + _setter("s3_backup_configuration", s3_backup_configuration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) @property @pulumi.getter(name="clusterJdbcurl") @@ -5627,12 +7681,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -5680,10 +7753,23 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enables or disables data processing. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs']]] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + processors: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -5719,9 +7805,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -5759,8 +7860,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -5803,10 +7925,9 @@ def __init__(__self__, *, 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[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. :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['FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptionsArgs'] 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). @@ -5814,22 +7935,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptionsArgs']] = 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -5847,7 +8015,7 @@ def bucket_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -5872,7 +8040,6 @@ def buffering_interval(self, value: Optional[pulumi.Input[int]]): 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") @@ -5953,12 +8120,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -6011,10 +8197,9 @@ def __init__(__self__, *, 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[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. :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['FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs'] 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). @@ -6022,22 +8207,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']] = 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -6055,7 +8287,7 @@ def bucket_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -6080,7 +8312,6 @@ def buffering_interval(self, value: Optional[pulumi.Input[int]]): 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") @@ -6161,12 +8392,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -6218,12 +8468,31 @@ def __init__(__self__, *, The `extended_s3_configuration` object supports the same fields from s3_configuration as well as the following: :param pulumi.Input[str] key_type: Type of encryption key. Default is `AWS_OWNED_CMK`. Valid values are `AWS_OWNED_CMK` and `CUSTOMER_MANAGED_CMK` """ + FirehoseDeliveryStreamServerSideEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + key_arn=key_arn, + key_type=key_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + key_arn: Optional[pulumi.Input[str]] = None, + key_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_arn is None and 'keyArn' in kwargs: + key_arn = kwargs['keyArn'] + if key_type is None and 'keyType' in kwargs: + key_type = kwargs['keyType'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if key_arn is not None: - pulumi.set(__self__, "key_arn", key_arn) + _setter("key_arn", key_arn) if key_type is not None: - pulumi.set(__self__, "key_type", key_type) + _setter("key_type", key_type) @property @pulumi.getter @@ -6287,21 +8556,72 @@ def __init__(__self__, *, :param pulumi.Input[int] retry_duration: After an initial failure to deliver to Splunk, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 300s. There will be no retry if the value is 0. :param pulumi.Input[str] s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. """ - pulumi.set(__self__, "hec_endpoint", hec_endpoint) - pulumi.set(__self__, "hec_token", hec_token) - pulumi.set(__self__, "s3_configuration", s3_configuration) + FirehoseDeliveryStreamSplunkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hec_endpoint=hec_endpoint, + hec_token=hec_token, + s3_configuration=s3_configuration, + cloudwatch_logging_options=cloudwatch_logging_options, + hec_acknowledgment_timeout=hec_acknowledgment_timeout, + hec_endpoint_type=hec_endpoint_type, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_mode=s3_backup_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hec_endpoint: Optional[pulumi.Input[str]] = None, + hec_token: Optional[pulumi.Input[str]] = None, + s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs']] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptionsArgs']] = None, + hec_acknowledgment_timeout: Optional[pulumi.Input[int]] = None, + hec_endpoint_type: Optional[pulumi.Input[str]] = None, + processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationArgs']] = None, + retry_duration: Optional[pulumi.Input[int]] = None, + s3_backup_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hec_endpoint is None and 'hecEndpoint' in kwargs: + hec_endpoint = kwargs['hecEndpoint'] + if hec_endpoint is None: + raise TypeError("Missing 'hec_endpoint' argument") + if hec_token is None and 'hecToken' in kwargs: + hec_token = kwargs['hecToken'] + if hec_token is None: + raise TypeError("Missing 'hec_token' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if hec_acknowledgment_timeout is None and 'hecAcknowledgmentTimeout' in kwargs: + hec_acknowledgment_timeout = kwargs['hecAcknowledgmentTimeout'] + if hec_endpoint_type is None and 'hecEndpointType' in kwargs: + hec_endpoint_type = kwargs['hecEndpointType'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + + _setter("hec_endpoint", hec_endpoint) + _setter("hec_token", hec_token) + _setter("s3_configuration", s3_configuration) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if hec_acknowledgment_timeout is not None: - pulumi.set(__self__, "hec_acknowledgment_timeout", hec_acknowledgment_timeout) + _setter("hec_acknowledgment_timeout", hec_acknowledgment_timeout) if hec_endpoint_type is not None: - pulumi.set(__self__, "hec_endpoint_type", hec_endpoint_type) + _setter("hec_endpoint_type", hec_endpoint_type) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) @property @pulumi.getter(name="hecEndpoint") @@ -6423,12 +8743,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -6476,10 +8815,23 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enables or disables data processing. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs']]] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + processors: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -6515,9 +8867,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -6555,8 +8922,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -6599,10 +8987,9 @@ def __init__(__self__, *, 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[str] role_arn: The ARN of the role used to access the Amazon MSK cluster. :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['FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs'] 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). @@ -6610,22 +8997,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']] = 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -6643,7 +9077,7 @@ def bucket_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -6668,7 +9102,6 @@ def buffering_interval(self, value: Optional[pulumi.Input[int]]): 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") @@ -6749,12 +9182,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -6800,7 +9252,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] stream_mode: Specifies the capacity mode of the stream. Must be either `PROVISIONED` or `ON_DEMAND`. """ - pulumi.set(__self__, "stream_mode", stream_mode) + StreamStreamModeDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_mode=stream_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_mode is None and 'streamMode' in kwargs: + stream_mode = kwargs['streamMode'] + if stream_mode is None: + raise TypeError("Missing 'stream_mode' argument") + + _setter("stream_mode", stream_mode) @property @pulumi.getter(name="streamMode") diff --git a/sdk/python/pulumi_aws/kinesis/analytics_application.py b/sdk/python/pulumi_aws/kinesis/analytics_application.py index a60303b0649..f68042716e8 100644 --- a/sdk/python/pulumi_aws/kinesis/analytics_application.py +++ b/sdk/python/pulumi_aws/kinesis/analytics_application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -40,24 +40,57 @@ def __init__(__self__, *, To modify an application's starting position, first stop the application by setting `start_application = false`, then update `starting_position` and set `start_application = true`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of tags for the Kinesis Analytics Application. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + AnalyticsApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logging_options=cloudwatch_logging_options, + code=code, + description=description, + inputs=inputs, + name=name, + outputs=outputs, + reference_data_sources=reference_data_sources, + start_application=start_application, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logging_options: Optional[pulumi.Input['AnalyticsApplicationCloudwatchLoggingOptionsArgs']] = None, + code: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + inputs: Optional[pulumi.Input['AnalyticsApplicationInputsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + outputs: Optional[pulumi.Input[Sequence[pulumi.Input['AnalyticsApplicationOutputArgs']]]] = None, + reference_data_sources: Optional[pulumi.Input['AnalyticsApplicationReferenceDataSourcesArgs']] = None, + start_application: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if reference_data_sources is None and 'referenceDataSources' in kwargs: + reference_data_sources = kwargs['referenceDataSources'] + if start_application is None and 'startApplication' in kwargs: + start_application = kwargs['startApplication'] + if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if inputs is not None: - pulumi.set(__self__, "inputs", inputs) + _setter("inputs", inputs) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if outputs is not None: - pulumi.set(__self__, "outputs", outputs) + _setter("outputs", outputs) if reference_data_sources is not None: - pulumi.set(__self__, "reference_data_sources", reference_data_sources) + _setter("reference_data_sources", reference_data_sources) if start_application is not None: - pulumi.set(__self__, "start_application", start_application) + _setter("start_application", start_application) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="cloudwatchLoggingOptions") @@ -210,39 +243,90 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] version: The Version of the application. """ + _AnalyticsApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cloudwatch_logging_options=cloudwatch_logging_options, + code=code, + create_timestamp=create_timestamp, + description=description, + inputs=inputs, + last_update_timestamp=last_update_timestamp, + name=name, + outputs=outputs, + reference_data_sources=reference_data_sources, + start_application=start_application, + status=status, + tags=tags, + tags_all=tags_all, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['AnalyticsApplicationCloudwatchLoggingOptionsArgs']] = None, + code: Optional[pulumi.Input[str]] = None, + create_timestamp: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + inputs: Optional[pulumi.Input['AnalyticsApplicationInputsArgs']] = None, + last_update_timestamp: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + outputs: Optional[pulumi.Input[Sequence[pulumi.Input['AnalyticsApplicationOutputArgs']]]] = None, + reference_data_sources: Optional[pulumi.Input['AnalyticsApplicationReferenceDataSourcesArgs']] = None, + start_application: Optional[pulumi.Input[bool]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if create_timestamp is None and 'createTimestamp' in kwargs: + create_timestamp = kwargs['createTimestamp'] + if last_update_timestamp is None and 'lastUpdateTimestamp' in kwargs: + last_update_timestamp = kwargs['lastUpdateTimestamp'] + if reference_data_sources is None and 'referenceDataSources' in kwargs: + reference_data_sources = kwargs['referenceDataSources'] + if start_application is None and 'startApplication' in kwargs: + start_application = kwargs['startApplication'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if create_timestamp is not None: - pulumi.set(__self__, "create_timestamp", create_timestamp) + _setter("create_timestamp", create_timestamp) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if inputs is not None: - pulumi.set(__self__, "inputs", inputs) + _setter("inputs", inputs) if last_update_timestamp is not None: - pulumi.set(__self__, "last_update_timestamp", last_update_timestamp) + _setter("last_update_timestamp", last_update_timestamp) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if outputs is not None: - pulumi.set(__self__, "outputs", outputs) + _setter("outputs", outputs) if reference_data_sources is not None: - pulumi.set(__self__, "reference_data_sources", reference_data_sources) + _setter("reference_data_sources", reference_data_sources) if start_application is not None: - pulumi.set(__self__, "start_application", start_application) + _setter("start_application", start_application) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -691,6 +775,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AnalyticsApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -714,12 +802,15 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = AnalyticsApplicationArgs.__new__(AnalyticsApplicationArgs) + cloudwatch_logging_options = _utilities.configure(cloudwatch_logging_options, AnalyticsApplicationCloudwatchLoggingOptionsArgs, True) __props__.__dict__["cloudwatch_logging_options"] = cloudwatch_logging_options __props__.__dict__["code"] = code __props__.__dict__["description"] = description + inputs = _utilities.configure(inputs, AnalyticsApplicationInputsArgs, True) __props__.__dict__["inputs"] = inputs __props__.__dict__["name"] = name __props__.__dict__["outputs"] = outputs + reference_data_sources = _utilities.configure(reference_data_sources, AnalyticsApplicationReferenceDataSourcesArgs, True) __props__.__dict__["reference_data_sources"] = reference_data_sources __props__.__dict__["start_application"] = start_application __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py b/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py index 73392c69c0f..2b228803e15 100644 --- a/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py +++ b/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -52,37 +52,104 @@ def __init__(__self__, *, :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`. """ - pulumi.set(__self__, "destination", destination) + FirehoseDeliveryStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + arn=arn, + destination_id=destination_id, + elasticsearch_configuration=elasticsearch_configuration, + extended_s3_configuration=extended_s3_configuration, + http_endpoint_configuration=http_endpoint_configuration, + kinesis_source_configuration=kinesis_source_configuration, + msk_source_configuration=msk_source_configuration, + name=name, + opensearch_configuration=opensearch_configuration, + opensearchserverless_configuration=opensearchserverless_configuration, + redshift_configuration=redshift_configuration, + server_side_encryption=server_side_encryption, + splunk_configuration=splunk_configuration, + tags=tags, + version_id=version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + destination_id: Optional[pulumi.Input[str]] = None, + elasticsearch_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs']] = None, + 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, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_id is None and 'destinationId' in kwargs: + destination_id = kwargs['destinationId'] + if elasticsearch_configuration is None and 'elasticsearchConfiguration' in kwargs: + elasticsearch_configuration = kwargs['elasticsearchConfiguration'] + if extended_s3_configuration is None and 'extendedS3Configuration' in kwargs: + extended_s3_configuration = kwargs['extendedS3Configuration'] + if http_endpoint_configuration is None and 'httpEndpointConfiguration' in kwargs: + http_endpoint_configuration = kwargs['httpEndpointConfiguration'] + if kinesis_source_configuration is None and 'kinesisSourceConfiguration' in kwargs: + kinesis_source_configuration = kwargs['kinesisSourceConfiguration'] + if msk_source_configuration is None and 'mskSourceConfiguration' in kwargs: + msk_source_configuration = kwargs['mskSourceConfiguration'] + if opensearch_configuration is None and 'opensearchConfiguration' in kwargs: + opensearch_configuration = kwargs['opensearchConfiguration'] + if opensearchserverless_configuration is None and 'opensearchserverlessConfiguration' in kwargs: + opensearchserverless_configuration = kwargs['opensearchserverlessConfiguration'] + if redshift_configuration is None and 'redshiftConfiguration' in kwargs: + redshift_configuration = kwargs['redshiftConfiguration'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if splunk_configuration is None and 'splunkConfiguration' in kwargs: + splunk_configuration = kwargs['splunkConfiguration'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + + _setter("destination", destination) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if destination_id is not None: - pulumi.set(__self__, "destination_id", destination_id) + _setter("destination_id", destination_id) if elasticsearch_configuration is not None: - pulumi.set(__self__, "elasticsearch_configuration", elasticsearch_configuration) + _setter("elasticsearch_configuration", elasticsearch_configuration) if extended_s3_configuration is not None: - pulumi.set(__self__, "extended_s3_configuration", extended_s3_configuration) + _setter("extended_s3_configuration", extended_s3_configuration) if http_endpoint_configuration is not None: - pulumi.set(__self__, "http_endpoint_configuration", http_endpoint_configuration) + _setter("http_endpoint_configuration", http_endpoint_configuration) if kinesis_source_configuration is not None: - pulumi.set(__self__, "kinesis_source_configuration", kinesis_source_configuration) + _setter("kinesis_source_configuration", kinesis_source_configuration) if msk_source_configuration is not None: - pulumi.set(__self__, "msk_source_configuration", msk_source_configuration) + _setter("msk_source_configuration", msk_source_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if opensearch_configuration is not None: - pulumi.set(__self__, "opensearch_configuration", opensearch_configuration) + _setter("opensearch_configuration", opensearch_configuration) if opensearchserverless_configuration is not None: - pulumi.set(__self__, "opensearchserverless_configuration", opensearchserverless_configuration) + _setter("opensearchserverless_configuration", opensearchserverless_configuration) if redshift_configuration is not None: - pulumi.set(__self__, "redshift_configuration", redshift_configuration) + _setter("redshift_configuration", redshift_configuration) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if splunk_configuration is not None: - pulumi.set(__self__, "splunk_configuration", splunk_configuration) + _setter("splunk_configuration", splunk_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) @property @pulumi.getter @@ -317,43 +384,112 @@ def __init__(__self__, *, :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`. """ + _FirehoseDeliveryStreamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + destination=destination, + destination_id=destination_id, + elasticsearch_configuration=elasticsearch_configuration, + extended_s3_configuration=extended_s3_configuration, + http_endpoint_configuration=http_endpoint_configuration, + kinesis_source_configuration=kinesis_source_configuration, + msk_source_configuration=msk_source_configuration, + name=name, + opensearch_configuration=opensearch_configuration, + opensearchserverless_configuration=opensearchserverless_configuration, + redshift_configuration=redshift_configuration, + server_side_encryption=server_side_encryption, + splunk_configuration=splunk_configuration, + tags=tags, + tags_all=tags_all, + version_id=version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input[str]] = None, + destination_id: Optional[pulumi.Input[str]] = None, + elasticsearch_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs']] = None, + 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, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_id is None and 'destinationId' in kwargs: + destination_id = kwargs['destinationId'] + if elasticsearch_configuration is None and 'elasticsearchConfiguration' in kwargs: + elasticsearch_configuration = kwargs['elasticsearchConfiguration'] + if extended_s3_configuration is None and 'extendedS3Configuration' in kwargs: + extended_s3_configuration = kwargs['extendedS3Configuration'] + if http_endpoint_configuration is None and 'httpEndpointConfiguration' in kwargs: + http_endpoint_configuration = kwargs['httpEndpointConfiguration'] + if kinesis_source_configuration is None and 'kinesisSourceConfiguration' in kwargs: + kinesis_source_configuration = kwargs['kinesisSourceConfiguration'] + if msk_source_configuration is None and 'mskSourceConfiguration' in kwargs: + msk_source_configuration = kwargs['mskSourceConfiguration'] + if opensearch_configuration is None and 'opensearchConfiguration' in kwargs: + opensearch_configuration = kwargs['opensearchConfiguration'] + if opensearchserverless_configuration is None and 'opensearchserverlessConfiguration' in kwargs: + opensearchserverless_configuration = kwargs['opensearchserverlessConfiguration'] + if redshift_configuration is None and 'redshiftConfiguration' in kwargs: + redshift_configuration = kwargs['redshiftConfiguration'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if splunk_configuration is None and 'splunkConfiguration' in kwargs: + splunk_configuration = kwargs['splunkConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if destination_id is not None: - pulumi.set(__self__, "destination_id", destination_id) + _setter("destination_id", destination_id) if elasticsearch_configuration is not None: - pulumi.set(__self__, "elasticsearch_configuration", elasticsearch_configuration) + _setter("elasticsearch_configuration", elasticsearch_configuration) if extended_s3_configuration is not None: - pulumi.set(__self__, "extended_s3_configuration", extended_s3_configuration) + _setter("extended_s3_configuration", extended_s3_configuration) if http_endpoint_configuration is not None: - pulumi.set(__self__, "http_endpoint_configuration", http_endpoint_configuration) + _setter("http_endpoint_configuration", http_endpoint_configuration) if kinesis_source_configuration is not None: - pulumi.set(__self__, "kinesis_source_configuration", kinesis_source_configuration) + _setter("kinesis_source_configuration", kinesis_source_configuration) if msk_source_configuration is not None: - pulumi.set(__self__, "msk_source_configuration", msk_source_configuration) + _setter("msk_source_configuration", msk_source_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if opensearch_configuration is not None: - pulumi.set(__self__, "opensearch_configuration", opensearch_configuration) + _setter("opensearch_configuration", opensearch_configuration) if opensearchserverless_configuration is not None: - pulumi.set(__self__, "opensearchserverless_configuration", opensearchserverless_configuration) + _setter("opensearchserverless_configuration", opensearchserverless_configuration) if redshift_configuration is not None: - pulumi.set(__self__, "redshift_configuration", redshift_configuration) + _setter("redshift_configuration", redshift_configuration) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if splunk_configuration is not None: - pulumi.set(__self__, "splunk_configuration", splunk_configuration) + _setter("splunk_configuration", splunk_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) @property @pulumi.getter @@ -1622,6 +1758,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FirehoseDeliveryStreamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1657,16 +1797,26 @@ def _internal_init(__self__, raise TypeError("Missing required property 'destination'") __props__.__dict__["destination"] = destination __props__.__dict__["destination_id"] = destination_id + elasticsearch_configuration = _utilities.configure(elasticsearch_configuration, FirehoseDeliveryStreamElasticsearchConfigurationArgs, True) __props__.__dict__["elasticsearch_configuration"] = elasticsearch_configuration + extended_s3_configuration = _utilities.configure(extended_s3_configuration, FirehoseDeliveryStreamExtendedS3ConfigurationArgs, True) __props__.__dict__["extended_s3_configuration"] = extended_s3_configuration + http_endpoint_configuration = _utilities.configure(http_endpoint_configuration, FirehoseDeliveryStreamHttpEndpointConfigurationArgs, True) __props__.__dict__["http_endpoint_configuration"] = http_endpoint_configuration + kinesis_source_configuration = _utilities.configure(kinesis_source_configuration, FirehoseDeliveryStreamKinesisSourceConfigurationArgs, True) __props__.__dict__["kinesis_source_configuration"] = kinesis_source_configuration + msk_source_configuration = _utilities.configure(msk_source_configuration, FirehoseDeliveryStreamMskSourceConfigurationArgs, True) __props__.__dict__["msk_source_configuration"] = msk_source_configuration __props__.__dict__["name"] = name + opensearch_configuration = _utilities.configure(opensearch_configuration, FirehoseDeliveryStreamOpensearchConfigurationArgs, True) __props__.__dict__["opensearch_configuration"] = opensearch_configuration + opensearchserverless_configuration = _utilities.configure(opensearchserverless_configuration, FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs, True) __props__.__dict__["opensearchserverless_configuration"] = opensearchserverless_configuration + redshift_configuration = _utilities.configure(redshift_configuration, FirehoseDeliveryStreamRedshiftConfigurationArgs, True) __props__.__dict__["redshift_configuration"] = redshift_configuration + server_side_encryption = _utilities.configure(server_side_encryption, FirehoseDeliveryStreamServerSideEncryptionArgs, True) __props__.__dict__["server_side_encryption"] = server_side_encryption + splunk_configuration = _utilities.configure(splunk_configuration, FirehoseDeliveryStreamSplunkConfigurationArgs, True) __props__.__dict__["splunk_configuration"] = splunk_configuration __props__.__dict__["tags"] = tags __props__.__dict__["version_id"] = version_id diff --git a/sdk/python/pulumi_aws/kinesis/get_firehose_delivery_stream.py b/sdk/python/pulumi_aws/kinesis/get_firehose_delivery_stream.py index 7a2f8a67046..3badc4b2571 100644 --- a/sdk/python/pulumi_aws/kinesis/get_firehose_delivery_stream.py +++ b/sdk/python/pulumi_aws/kinesis/get_firehose_delivery_stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/kinesis/get_stream.py b/sdk/python/pulumi_aws/kinesis/get_stream.py index b839bb3fa47..0da72e12e94 100644 --- a/sdk/python/pulumi_aws/kinesis/get_stream.py +++ b/sdk/python/pulumi_aws/kinesis/get_stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/kinesis/get_stream_consumer.py b/sdk/python/pulumi_aws/kinesis/get_stream_consumer.py index 25b82e08741..4488c27c45f 100644 --- a/sdk/python/pulumi_aws/kinesis/get_stream_consumer.py +++ b/sdk/python/pulumi_aws/kinesis/get_stream_consumer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/kinesis/outputs.py b/sdk/python/pulumi_aws/kinesis/outputs.py index f86d84bf158..5a3daa9ecc7 100644 --- a/sdk/python/pulumi_aws/kinesis/outputs.py +++ b/sdk/python/pulumi_aws/kinesis/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -143,10 +143,33 @@ def __init__(__self__, *, :param str role_arn: The ARN of the IAM Role used to send application messages. :param str id: The ARN of the Kinesis Analytics Application. """ - pulumi.set(__self__, "log_stream_arn", log_stream_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_stream_arn=log_stream_arn, + role_arn=role_arn, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_stream_arn: Optional[str] = None, + role_arn: Optional[str] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_stream_arn is None and 'logStreamArn' in kwargs: + log_stream_arn = kwargs['logStreamArn'] + if log_stream_arn is None: + raise TypeError("Missing 'log_stream_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("log_stream_arn", log_stream_arn) + _setter("role_arn", role_arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter(name="logStreamArn") @@ -227,22 +250,65 @@ def __init__(__self__, *, :param Sequence['AnalyticsApplicationInputsStartingPositionConfigurationArgs'] starting_position_configurations: The point at which the application starts processing records from the streaming source. See Starting Position Configuration below for more details. """ - pulumi.set(__self__, "name_prefix", name_prefix) - pulumi.set(__self__, "schema", schema) + AnalyticsApplicationInputs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name_prefix=name_prefix, + schema=schema, + id=id, + kinesis_firehose=kinesis_firehose, + kinesis_stream=kinesis_stream, + parallelism=parallelism, + processing_configuration=processing_configuration, + starting_position_configurations=starting_position_configurations, + stream_names=stream_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name_prefix: Optional[str] = None, + schema: Optional['outputs.AnalyticsApplicationInputsSchema'] = None, + id: Optional[str] = None, + kinesis_firehose: Optional['outputs.AnalyticsApplicationInputsKinesisFirehose'] = None, + kinesis_stream: Optional['outputs.AnalyticsApplicationInputsKinesisStream'] = None, + parallelism: Optional['outputs.AnalyticsApplicationInputsParallelism'] = None, + processing_configuration: Optional['outputs.AnalyticsApplicationInputsProcessingConfiguration'] = None, + starting_position_configurations: Optional[Sequence['outputs.AnalyticsApplicationInputsStartingPositionConfiguration']] = None, + stream_names: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if name_prefix is None: + raise TypeError("Missing 'name_prefix' argument") + if schema is None: + raise TypeError("Missing 'schema' argument") + if kinesis_firehose is None and 'kinesisFirehose' in kwargs: + kinesis_firehose = kwargs['kinesisFirehose'] + if kinesis_stream is None and 'kinesisStream' in kwargs: + kinesis_stream = kwargs['kinesisStream'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if starting_position_configurations is None and 'startingPositionConfigurations' in kwargs: + starting_position_configurations = kwargs['startingPositionConfigurations'] + if stream_names is None and 'streamNames' in kwargs: + stream_names = kwargs['streamNames'] + + _setter("name_prefix", name_prefix) + _setter("schema", schema) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if kinesis_firehose is not None: - pulumi.set(__self__, "kinesis_firehose", kinesis_firehose) + _setter("kinesis_firehose", kinesis_firehose) if kinesis_stream is not None: - pulumi.set(__self__, "kinesis_stream", kinesis_stream) + _setter("kinesis_stream", kinesis_stream) if parallelism is not None: - pulumi.set(__self__, "parallelism", parallelism) + _setter("parallelism", parallelism) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if starting_position_configurations is not None: - pulumi.set(__self__, "starting_position_configurations", starting_position_configurations) + _setter("starting_position_configurations", starting_position_configurations) if stream_names is not None: - pulumi.set(__self__, "stream_names", stream_names) + _setter("stream_names", stream_names) @property @pulumi.getter(name="namePrefix") @@ -347,8 +413,29 @@ def __init__(__self__, *, :param str resource_arn: The ARN of the Kinesis Firehose delivery stream. :param str role_arn: The ARN of the IAM Role used to access the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationInputsKinesisFirehose._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -395,8 +482,29 @@ def __init__(__self__, *, :param str resource_arn: The ARN of the Kinesis Stream. :param str role_arn: The ARN of the IAM Role used to access the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationInputsKinesisStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -422,8 +530,19 @@ def __init__(__self__, *, """ :param int count: The Count of streams. """ + AnalyticsApplicationInputsParallelism._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter @@ -458,7 +577,22 @@ def __init__(__self__, *, """ :param 'AnalyticsApplicationInputsProcessingConfigurationLambdaArgs' lambda_: The Lambda function configuration. See Lambda below for more details. """ - pulumi.set(__self__, "lambda_", lambda_) + AnalyticsApplicationInputsProcessingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_=lambda_, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_: Optional['outputs.AnalyticsApplicationInputsProcessingConfigurationLambda'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + if lambda_ is None: + raise TypeError("Missing 'lambda_' argument") + + _setter("lambda_", lambda_) @property @pulumi.getter(name="lambda") @@ -497,8 +631,29 @@ def __init__(__self__, *, :param str resource_arn: The ARN of the Lambda function. :param str role_arn: The ARN of the IAM Role used to access the Lambda function. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationInputsProcessingConfigurationLambda._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -551,10 +706,35 @@ def __init__(__self__, *, See Record Format below for more details. :param str record_encoding: The Encoding of the record in the streaming source. """ - pulumi.set(__self__, "record_columns", record_columns) - pulumi.set(__self__, "record_format", record_format) + AnalyticsApplicationInputsSchema._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_columns=record_columns, + record_format=record_format, + record_encoding=record_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_columns: Optional[Sequence['outputs.AnalyticsApplicationInputsSchemaRecordColumn']] = None, + record_format: Optional['outputs.AnalyticsApplicationInputsSchemaRecordFormat'] = None, + record_encoding: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_columns is None and 'recordColumns' in kwargs: + record_columns = kwargs['recordColumns'] + if record_columns is None: + raise TypeError("Missing 'record_columns' argument") + if record_format is None and 'recordFormat' in kwargs: + record_format = kwargs['recordFormat'] + if record_format is None: + raise TypeError("Missing 'record_format' argument") + if record_encoding is None and 'recordEncoding' in kwargs: + record_encoding = kwargs['recordEncoding'] + + _setter("record_columns", record_columns) + _setter("record_format", record_format) if record_encoding is not None: - pulumi.set(__self__, "record_encoding", record_encoding) + _setter("record_encoding", record_encoding) @property @pulumi.getter(name="recordColumns") @@ -611,10 +791,31 @@ def __init__(__self__, *, :param str sql_type: The SQL Type of the column. :param str mapping: The Mapping reference to the data element. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_type", sql_type) + AnalyticsApplicationInputsSchemaRecordColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_type=sql_type, + mapping=mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + sql_type: Optional[str] = None, + mapping: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if sql_type is None and 'sqlType' in kwargs: + sql_type = kwargs['sqlType'] + if sql_type is None: + raise TypeError("Missing 'sql_type' argument") + + _setter("name", name) + _setter("sql_type", sql_type) if mapping is not None: - pulumi.set(__self__, "mapping", mapping) + _setter("mapping", mapping) @property @pulumi.getter @@ -670,10 +871,27 @@ def __init__(__self__, *, See Mapping Parameters below for more details. :param str record_format_type: The type of Record Format. Can be `CSV` or `JSON`. """ + AnalyticsApplicationInputsSchemaRecordFormat._configure( + lambda key, value: pulumi.set(__self__, key, value), + mapping_parameters=mapping_parameters, + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mapping_parameters: Optional['outputs.AnalyticsApplicationInputsSchemaRecordFormatMappingParameters'] = None, + record_format_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mapping_parameters is None and 'mappingParameters' in kwargs: + mapping_parameters = kwargs['mappingParameters'] + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if mapping_parameters is not None: - pulumi.set(__self__, "mapping_parameters", mapping_parameters) + _setter("mapping_parameters", mapping_parameters) if record_format_type is not None: - pulumi.set(__self__, "record_format_type", record_format_type) + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="mappingParameters") @@ -704,10 +922,23 @@ def __init__(__self__, *, :param 'AnalyticsApplicationInputsSchemaRecordFormatMappingParametersJsonArgs' json: Mapping information when JSON is the record format on the streaming source. See JSON Mapping Parameters below for more details. """ + AnalyticsApplicationInputsSchemaRecordFormatMappingParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv=csv, + json=json, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv: Optional['outputs.AnalyticsApplicationInputsSchemaRecordFormatMappingParametersCsv'] = None, + json: Optional['outputs.AnalyticsApplicationInputsSchemaRecordFormatMappingParametersJson'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv is not None: - pulumi.set(__self__, "csv", csv) + _setter("csv", csv) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) @property @pulumi.getter @@ -756,8 +987,29 @@ def __init__(__self__, *, :param str record_column_delimiter: The Column Delimiter. :param str record_row_delimiter: The Row Delimiter. """ - pulumi.set(__self__, "record_column_delimiter", record_column_delimiter) - pulumi.set(__self__, "record_row_delimiter", record_row_delimiter) + AnalyticsApplicationInputsSchemaRecordFormatMappingParametersCsv._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_column_delimiter=record_column_delimiter, + record_row_delimiter=record_row_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_column_delimiter: Optional[str] = None, + record_row_delimiter: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_column_delimiter is None and 'recordColumnDelimiter' in kwargs: + record_column_delimiter = kwargs['recordColumnDelimiter'] + if record_column_delimiter is None: + raise TypeError("Missing 'record_column_delimiter' argument") + if record_row_delimiter is None and 'recordRowDelimiter' in kwargs: + record_row_delimiter = kwargs['recordRowDelimiter'] + if record_row_delimiter is None: + raise TypeError("Missing 'record_row_delimiter' argument") + + _setter("record_column_delimiter", record_column_delimiter) + _setter("record_row_delimiter", record_row_delimiter) @property @pulumi.getter(name="recordColumnDelimiter") @@ -800,7 +1052,22 @@ def __init__(__self__, *, """ :param str record_row_path: Path to the top-level parent that contains the records. """ - pulumi.set(__self__, "record_row_path", record_row_path) + AnalyticsApplicationInputsSchemaRecordFormatMappingParametersJson._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_row_path=record_row_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_row_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_row_path is None and 'recordRowPath' in kwargs: + record_row_path = kwargs['recordRowPath'] + if record_row_path is None: + raise TypeError("Missing 'record_row_path' argument") + + _setter("record_row_path", record_row_path) @property @pulumi.getter(name="recordRowPath") @@ -835,8 +1102,21 @@ def __init__(__self__, *, """ :param str starting_position: The starting position on the stream. Valid values: `LAST_STOPPED_POINT`, `NOW`, `TRIM_HORIZON`. """ + AnalyticsApplicationInputsStartingPositionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + starting_position=starting_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + starting_position: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + if starting_position is not None: - pulumi.set(__self__, "starting_position", starting_position) + _setter("starting_position", starting_position) @property @pulumi.getter(name="startingPosition") @@ -887,16 +1167,47 @@ def __init__(__self__, *, See Kinesis Stream below for more details. :param 'AnalyticsApplicationOutputLambdaArgs' lambda_: The Lambda function destination. See Lambda below for more details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "schema", schema) + AnalyticsApplicationOutput._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + schema=schema, + id=id, + kinesis_firehose=kinesis_firehose, + kinesis_stream=kinesis_stream, + lambda_=lambda_, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + schema: Optional['outputs.AnalyticsApplicationOutputSchema'] = None, + id: Optional[str] = None, + kinesis_firehose: Optional['outputs.AnalyticsApplicationOutputKinesisFirehose'] = None, + kinesis_stream: Optional['outputs.AnalyticsApplicationOutputKinesisStream'] = None, + lambda_: Optional['outputs.AnalyticsApplicationOutputLambda'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if schema is None: + raise TypeError("Missing 'schema' argument") + if kinesis_firehose is None and 'kinesisFirehose' in kwargs: + kinesis_firehose = kwargs['kinesisFirehose'] + if kinesis_stream is None and 'kinesisStream' in kwargs: + kinesis_stream = kwargs['kinesisStream'] + if lambda_ is None and 'lambda' in kwargs: + lambda_ = kwargs['lambda'] + + _setter("name", name) + _setter("schema", schema) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if kinesis_firehose is not None: - pulumi.set(__self__, "kinesis_firehose", kinesis_firehose) + _setter("kinesis_firehose", kinesis_firehose) if kinesis_stream is not None: - pulumi.set(__self__, "kinesis_stream", kinesis_stream) + _setter("kinesis_stream", kinesis_stream) if lambda_ is not None: - pulumi.set(__self__, "lambda_", lambda_) + _setter("lambda_", lambda_) @property @pulumi.getter @@ -977,8 +1288,29 @@ def __init__(__self__, *, :param str resource_arn: The ARN of the Kinesis Firehose delivery stream. :param str role_arn: The ARN of the IAM Role used to access the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationOutputKinesisFirehose._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -1025,8 +1357,29 @@ def __init__(__self__, *, :param str resource_arn: The ARN of the Kinesis Stream. :param str role_arn: The ARN of the IAM Role used to access the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationOutputKinesisStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -1073,8 +1426,29 @@ def __init__(__self__, *, :param str resource_arn: The ARN of the Lambda function. :param str role_arn: The ARN of the IAM Role used to access the Lambda function. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationOutputLambda._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="resourceArn") @@ -1117,7 +1491,22 @@ def __init__(__self__, *, """ :param str record_format_type: The Format Type of the records on the output stream. Can be `CSV` or `JSON`. """ - pulumi.set(__self__, "record_format_type", record_format_type) + AnalyticsApplicationOutputSchema._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_format_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if record_format_type is None: + raise TypeError("Missing 'record_format_type' argument") + + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="recordFormatType") @@ -1158,11 +1547,36 @@ def __init__(__self__, *, :param str table_name: The in-application Table Name. :param str id: The ARN of the Kinesis Analytics Application. """ - pulumi.set(__self__, "s3", s3) - pulumi.set(__self__, "schema", schema) - pulumi.set(__self__, "table_name", table_name) + AnalyticsApplicationReferenceDataSources._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + schema=schema, + table_name=table_name, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional['outputs.AnalyticsApplicationReferenceDataSourcesS3'] = None, + schema: Optional['outputs.AnalyticsApplicationReferenceDataSourcesSchema'] = None, + table_name: Optional[str] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + if schema is None: + raise TypeError("Missing 'schema' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + + _setter("s3", s3) + _setter("schema", schema) + _setter("table_name", table_name) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -1229,9 +1643,36 @@ def __init__(__self__, *, :param str file_key: The File Key name containing reference data. :param str role_arn: The ARN of the IAM Role used to send application messages. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "file_key", file_key) - pulumi.set(__self__, "role_arn", role_arn) + AnalyticsApplicationReferenceDataSourcesS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + file_key=file_key, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + file_key: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if file_key is None and 'fileKey' in kwargs: + file_key = kwargs['fileKey'] + if file_key is None: + raise TypeError("Missing 'file_key' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("bucket_arn", bucket_arn) + _setter("file_key", file_key) + _setter("role_arn", role_arn) @property @pulumi.getter(name="bucketArn") @@ -1292,10 +1733,35 @@ def __init__(__self__, *, See Record Format below for more details. :param str record_encoding: The Encoding of the record in the streaming source. """ - pulumi.set(__self__, "record_columns", record_columns) - pulumi.set(__self__, "record_format", record_format) + AnalyticsApplicationReferenceDataSourcesSchema._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_columns=record_columns, + record_format=record_format, + record_encoding=record_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_columns: Optional[Sequence['outputs.AnalyticsApplicationReferenceDataSourcesSchemaRecordColumn']] = None, + record_format: Optional['outputs.AnalyticsApplicationReferenceDataSourcesSchemaRecordFormat'] = None, + record_encoding: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_columns is None and 'recordColumns' in kwargs: + record_columns = kwargs['recordColumns'] + if record_columns is None: + raise TypeError("Missing 'record_columns' argument") + if record_format is None and 'recordFormat' in kwargs: + record_format = kwargs['recordFormat'] + if record_format is None: + raise TypeError("Missing 'record_format' argument") + if record_encoding is None and 'recordEncoding' in kwargs: + record_encoding = kwargs['recordEncoding'] + + _setter("record_columns", record_columns) + _setter("record_format", record_format) if record_encoding is not None: - pulumi.set(__self__, "record_encoding", record_encoding) + _setter("record_encoding", record_encoding) @property @pulumi.getter(name="recordColumns") @@ -1352,10 +1818,31 @@ def __init__(__self__, *, :param str sql_type: The SQL Type of the column. :param str mapping: The Mapping reference to the data element. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_type", sql_type) + AnalyticsApplicationReferenceDataSourcesSchemaRecordColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_type=sql_type, + mapping=mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + sql_type: Optional[str] = None, + mapping: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if sql_type is None and 'sqlType' in kwargs: + sql_type = kwargs['sqlType'] + if sql_type is None: + raise TypeError("Missing 'sql_type' argument") + + _setter("name", name) + _setter("sql_type", sql_type) if mapping is not None: - pulumi.set(__self__, "mapping", mapping) + _setter("mapping", mapping) @property @pulumi.getter @@ -1411,10 +1898,27 @@ def __init__(__self__, *, See Mapping Parameters below for more details. :param str record_format_type: The type of Record Format. Can be `CSV` or `JSON`. """ + AnalyticsApplicationReferenceDataSourcesSchemaRecordFormat._configure( + lambda key, value: pulumi.set(__self__, key, value), + mapping_parameters=mapping_parameters, + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mapping_parameters: Optional['outputs.AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParameters'] = None, + record_format_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mapping_parameters is None and 'mappingParameters' in kwargs: + mapping_parameters = kwargs['mappingParameters'] + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if mapping_parameters is not None: - pulumi.set(__self__, "mapping_parameters", mapping_parameters) + _setter("mapping_parameters", mapping_parameters) if record_format_type is not None: - pulumi.set(__self__, "record_format_type", record_format_type) + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="mappingParameters") @@ -1445,10 +1949,23 @@ def __init__(__self__, *, :param 'AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersJsonArgs' json: Mapping information when JSON is the record format on the streaming source. See JSON Mapping Parameters below for more details. """ + AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv=csv, + json=json, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv: Optional['outputs.AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersCsv'] = None, + json: Optional['outputs.AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersJson'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv is not None: - pulumi.set(__self__, "csv", csv) + _setter("csv", csv) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) @property @pulumi.getter @@ -1497,8 +2014,29 @@ def __init__(__self__, *, :param str record_column_delimiter: The Column Delimiter. :param str record_row_delimiter: The Row Delimiter. """ - pulumi.set(__self__, "record_column_delimiter", record_column_delimiter) - pulumi.set(__self__, "record_row_delimiter", record_row_delimiter) + AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersCsv._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_column_delimiter=record_column_delimiter, + record_row_delimiter=record_row_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_column_delimiter: Optional[str] = None, + record_row_delimiter: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_column_delimiter is None and 'recordColumnDelimiter' in kwargs: + record_column_delimiter = kwargs['recordColumnDelimiter'] + if record_column_delimiter is None: + raise TypeError("Missing 'record_column_delimiter' argument") + if record_row_delimiter is None and 'recordRowDelimiter' in kwargs: + record_row_delimiter = kwargs['recordRowDelimiter'] + if record_row_delimiter is None: + raise TypeError("Missing 'record_row_delimiter' argument") + + _setter("record_column_delimiter", record_column_delimiter) + _setter("record_row_delimiter", record_row_delimiter) @property @pulumi.getter(name="recordColumnDelimiter") @@ -1541,7 +2079,22 @@ def __init__(__self__, *, """ :param str record_row_path: Path to the top-level parent that contains the records. """ - pulumi.set(__self__, "record_row_path", record_row_path) + AnalyticsApplicationReferenceDataSourcesSchemaRecordFormatMappingParametersJson._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_row_path=record_row_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_row_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_row_path is None and 'recordRowPath' in kwargs: + record_row_path = kwargs['recordRowPath'] + if record_row_path is None: + raise TypeError("Missing 'record_row_path' argument") + + _setter("record_row_path", record_row_path) @property @pulumi.getter(name="recordRowPath") @@ -1628,31 +2181,102 @@ def __init__(__self__, *, :param str type_name: The Elasticsearch type name with maximum length of 100 characters. :param 'FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs' vpc_config: The VPC configuration for the delivery stream to connect to Elastic Search associated with the VPC. More details are given below """ - pulumi.set(__self__, "index_name", index_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "s3_configuration", s3_configuration) + FirehoseDeliveryStreamElasticsearchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + role_arn=role_arn, + s3_configuration=s3_configuration, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + cluster_endpoint=cluster_endpoint, + domain_arn=domain_arn, + index_rotation_period=index_rotation_period, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_mode=s3_backup_mode, + type_name=type_name, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[str] = None, + role_arn: Optional[str] = None, + s3_configuration: Optional['outputs.FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration'] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamElasticsearchConfigurationCloudwatchLoggingOptions'] = None, + cluster_endpoint: Optional[str] = None, + domain_arn: Optional[str] = None, + index_rotation_period: Optional[str] = None, + processing_configuration: Optional['outputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfiguration'] = None, + retry_duration: Optional[int] = None, + s3_backup_mode: Optional[str] = None, + type_name: Optional[str] = None, + vpc_config: Optional['outputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if cluster_endpoint is None and 'clusterEndpoint' in kwargs: + cluster_endpoint = kwargs['clusterEndpoint'] + if domain_arn is None and 'domainArn' in kwargs: + domain_arn = kwargs['domainArn'] + if index_rotation_period is None and 'indexRotationPeriod' in kwargs: + index_rotation_period = kwargs['indexRotationPeriod'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + if type_name is None and 'typeName' in kwargs: + type_name = kwargs['typeName'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("index_name", index_name) + _setter("role_arn", role_arn) + _setter("s3_configuration", s3_configuration) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if cluster_endpoint is not None: - pulumi.set(__self__, "cluster_endpoint", cluster_endpoint) + _setter("cluster_endpoint", cluster_endpoint) if domain_arn is not None: - pulumi.set(__self__, "domain_arn", domain_arn) + _setter("domain_arn", domain_arn) if index_rotation_period is not None: - pulumi.set(__self__, "index_rotation_period", index_rotation_period) + _setter("index_rotation_period", index_rotation_period) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) if type_name is not None: - pulumi.set(__self__, "type_name", type_name) + _setter("type_name", type_name) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="indexName") @@ -1797,12 +2421,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamElasticsearchConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -1838,10 +2481,23 @@ def __init__(__self__, *, :param bool enabled: Enables or disables data processing. :param Sequence['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs'] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + processors: Optional[Sequence['outputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -1869,9 +2525,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -1920,8 +2591,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -1987,10 +2679,9 @@ def __init__(__self__, *, 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 str role_arn: The ARN of the role used to access the Amazon MSK cluster. :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 'FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs' 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). @@ -1998,22 +2689,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamElasticsearchConfigurationS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + role_arn: Optional[str] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -2027,7 +2765,7 @@ def bucket_arn(self) -> str: @pulumi.getter(name="roleArn") def role_arn(self) -> str: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -2044,7 +2782,6 @@ def buffering_interval(self) -> Optional[int]: 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") @@ -2120,12 +2857,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -2187,11 +2943,42 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamElasticsearchConfigurationVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("role_arn", role_arn) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="roleArn") @@ -2283,10 +3070,9 @@ def __init__(__self__, *, s3_backup_mode: 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 str role_arn: The ARN of the role used to access the Amazon MSK cluster. :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 'FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptionsArgs' 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 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationArgs' data_format_conversion_configuration: Nested argument for the serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. More details given below. @@ -2297,34 +3083,101 @@ def __init__(__self__, *, :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 :param 'FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs' processing_configuration: The data processing configuration. More details are given below. :param 'FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs' s3_backup_configuration: The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. - :param str s3_backup_mode: The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + :param str s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedDocumentsOnly` and `AllDocuments`. Default value is `FailedDocumentsOnly`. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "role_arn", role_arn) + FirehoseDeliveryStreamExtendedS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + data_format_conversion_configuration=data_format_conversion_configuration, + dynamic_partitioning_configuration=dynamic_partitioning_configuration, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + processing_configuration=processing_configuration, + s3_backup_configuration=s3_backup_configuration, + s3_backup_mode=s3_backup_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + role_arn: Optional[str] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + data_format_conversion_configuration: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfiguration'] = None, + dynamic_partitioning_configuration: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfiguration'] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None, + processing_configuration: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfiguration'] = None, + s3_backup_configuration: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration'] = None, + s3_backup_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if data_format_conversion_configuration is None and 'dataFormatConversionConfiguration' in kwargs: + data_format_conversion_configuration = kwargs['dataFormatConversionConfiguration'] + if dynamic_partitioning_configuration is None and 'dynamicPartitioningConfiguration' in kwargs: + dynamic_partitioning_configuration = kwargs['dynamicPartitioningConfiguration'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if s3_backup_configuration is None and 's3BackupConfiguration' in kwargs: + s3_backup_configuration = kwargs['s3BackupConfiguration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if data_format_conversion_configuration is not None: - pulumi.set(__self__, "data_format_conversion_configuration", data_format_conversion_configuration) + _setter("data_format_conversion_configuration", data_format_conversion_configuration) if dynamic_partitioning_configuration is not None: - pulumi.set(__self__, "dynamic_partitioning_configuration", dynamic_partitioning_configuration) + _setter("dynamic_partitioning_configuration", dynamic_partitioning_configuration) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if s3_backup_configuration is not None: - pulumi.set(__self__, "s3_backup_configuration", s3_backup_configuration) + _setter("s3_backup_configuration", s3_backup_configuration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) @property @pulumi.getter(name="bucketArn") @@ -2338,7 +3191,7 @@ def bucket_arn(self) -> str: @pulumi.getter(name="roleArn") def role_arn(self) -> str: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -2355,7 +3208,6 @@ def buffering_interval(self) -> Optional[int]: 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") @@ -2436,7 +3288,7 @@ def s3_backup_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamExt @pulumi.getter(name="s3BackupMode") def s3_backup_mode(self) -> Optional[str]: """ - The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. + 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") @@ -2471,12 +3323,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamExtendedS3ConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -2537,11 +3408,40 @@ def __init__(__self__, *, :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationSchemaConfigurationArgs' schema_configuration: Nested argument that specifies the AWS Glue Data Catalog table that contains the column information. More details below. :param bool enabled: Defaults to `true`. Set it to `false` if you want to disable format conversion while preserving the configuration details. """ - pulumi.set(__self__, "input_format_configuration", input_format_configuration) - pulumi.set(__self__, "output_format_configuration", output_format_configuration) - pulumi.set(__self__, "schema_configuration", schema_configuration) + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_format_configuration=input_format_configuration, + output_format_configuration=output_format_configuration, + schema_configuration=schema_configuration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_format_configuration: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfiguration'] = None, + output_format_configuration: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfiguration'] = None, + schema_configuration: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationSchemaConfiguration'] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_format_configuration is None and 'inputFormatConfiguration' in kwargs: + input_format_configuration = kwargs['inputFormatConfiguration'] + if input_format_configuration is None: + raise TypeError("Missing 'input_format_configuration' argument") + if output_format_configuration is None and 'outputFormatConfiguration' in kwargs: + output_format_configuration = kwargs['outputFormatConfiguration'] + if output_format_configuration is None: + raise TypeError("Missing 'output_format_configuration' argument") + if schema_configuration is None and 'schemaConfiguration' in kwargs: + schema_configuration = kwargs['schemaConfiguration'] + if schema_configuration is None: + raise TypeError("Missing 'schema_configuration' argument") + + _setter("input_format_configuration", input_format_configuration) + _setter("output_format_configuration", output_format_configuration) + _setter("schema_configuration", schema_configuration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="inputFormatConfiguration") @@ -2583,7 +3483,20 @@ def __init__(__self__, *, """ :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerArgs' deserializer: Nested argument that specifies which deserializer to use. You can choose either the Apache Hive JSON SerDe or the OpenX JSON SerDe. More details below. """ - pulumi.set(__self__, "deserializer", deserializer) + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + deserializer=deserializer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + deserializer: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializer'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deserializer is None: + raise TypeError("Missing 'deserializer' argument") + + _setter("deserializer", deserializer) @property @pulumi.getter @@ -2622,10 +3535,27 @@ def __init__(__self__, *, :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerHiveJsonSerDeArgs' hive_json_ser_de: Nested argument that specifies the native Hive / HCatalog JsonSerDe. More details below. :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerOpenXJsonSerDeArgs' open_x_json_ser_de: Nested argument that specifies the OpenX SerDe. More details below. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializer._configure( + lambda key, value: pulumi.set(__self__, key, value), + hive_json_ser_de=hive_json_ser_de, + open_x_json_ser_de=open_x_json_ser_de, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hive_json_ser_de: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerHiveJsonSerDe'] = None, + open_x_json_ser_de: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerOpenXJsonSerDe'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hive_json_ser_de is None and 'hiveJsonSerDe' in kwargs: + hive_json_ser_de = kwargs['hiveJsonSerDe'] + if open_x_json_ser_de is None and 'openXJsonSerDe' in kwargs: + open_x_json_ser_de = kwargs['openXJsonSerDe'] + if hive_json_ser_de is not None: - pulumi.set(__self__, "hive_json_ser_de", hive_json_ser_de) + _setter("hive_json_ser_de", hive_json_ser_de) if open_x_json_ser_de is not None: - pulumi.set(__self__, "open_x_json_ser_de", open_x_json_ser_de) + _setter("open_x_json_ser_de", open_x_json_ser_de) @property @pulumi.getter(name="hiveJsonSerDe") @@ -2668,8 +3598,21 @@ def __init__(__self__, *, """ :param Sequence[str] timestamp_formats: A list of how you want Kinesis Data Firehose to parse the date and time stamps that may be present in your input data JSON. To specify these format strings, follow the pattern syntax of JodaTime's DateTimeFormat format strings. For more information, see [Class DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html). You can also use the special value millis to parse time stamps in epoch milliseconds. If you don't specify a format, Kinesis Data Firehose uses java.sql.Timestamp::valueOf by default. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerHiveJsonSerDe._configure( + lambda key, value: pulumi.set(__self__, key, value), + timestamp_formats=timestamp_formats, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + timestamp_formats: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if timestamp_formats is None and 'timestampFormats' in kwargs: + timestamp_formats = kwargs['timestampFormats'] + if timestamp_formats is not None: - pulumi.set(__self__, "timestamp_formats", timestamp_formats) + _setter("timestamp_formats", timestamp_formats) @property @pulumi.getter(name="timestampFormats") @@ -2712,12 +3655,33 @@ def __init__(__self__, *, :param Mapping[str, str] column_to_json_key_mappings: A map of column names to JSON keys that aren't identical to the column names. This is useful when the JSON contains keys that are Hive keywords. For example, timestamp is a Hive keyword. If you have a JSON key named timestamp, set this parameter to `{ ts = "timestamp" }` to map this key to a column named ts. :param bool convert_dots_in_json_keys_to_underscores: When set to `true`, specifies that the names of the keys include dots and that you want Kinesis Data Firehose to replace them with underscores. This is useful because Apache Hive does not allow dots in column names. For example, if the JSON contains a key whose name is "a.b", you can define the column name to be "a_b" when using this option. Defaults to `false`. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerOpenXJsonSerDe._configure( + lambda key, value: pulumi.set(__self__, key, value), + case_insensitive=case_insensitive, + column_to_json_key_mappings=column_to_json_key_mappings, + convert_dots_in_json_keys_to_underscores=convert_dots_in_json_keys_to_underscores, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + case_insensitive: Optional[bool] = None, + column_to_json_key_mappings: Optional[Mapping[str, str]] = None, + convert_dots_in_json_keys_to_underscores: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if case_insensitive is None and 'caseInsensitive' in kwargs: + case_insensitive = kwargs['caseInsensitive'] + if column_to_json_key_mappings is None and 'columnToJsonKeyMappings' in kwargs: + column_to_json_key_mappings = kwargs['columnToJsonKeyMappings'] + if convert_dots_in_json_keys_to_underscores is None and 'convertDotsInJsonKeysToUnderscores' in kwargs: + convert_dots_in_json_keys_to_underscores = kwargs['convertDotsInJsonKeysToUnderscores'] + if case_insensitive is not None: - pulumi.set(__self__, "case_insensitive", case_insensitive) + _setter("case_insensitive", case_insensitive) if column_to_json_key_mappings is not None: - pulumi.set(__self__, "column_to_json_key_mappings", column_to_json_key_mappings) + _setter("column_to_json_key_mappings", column_to_json_key_mappings) if convert_dots_in_json_keys_to_underscores is not None: - pulumi.set(__self__, "convert_dots_in_json_keys_to_underscores", convert_dots_in_json_keys_to_underscores) + _setter("convert_dots_in_json_keys_to_underscores", convert_dots_in_json_keys_to_underscores) @property @pulumi.getter(name="caseInsensitive") @@ -2751,7 +3715,20 @@ def __init__(__self__, *, """ :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs' serializer: Nested argument that specifies which serializer to use. You can choose either the ORC SerDe or the Parquet SerDe. More details below. """ - pulumi.set(__self__, "serializer", serializer) + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + serializer=serializer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + serializer: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializer'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if serializer is None: + raise TypeError("Missing 'serializer' argument") + + _setter("serializer", serializer) @property @pulumi.getter @@ -2790,10 +3767,27 @@ def __init__(__self__, *, :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDeArgs' orc_ser_de: Nested argument that specifies converting data to the ORC format before storing it in Amazon S3. For more information, see [Apache ORC](https://orc.apache.org/docs/). More details below. :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs' parquet_ser_de: Nested argument that specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializer._configure( + lambda key, value: pulumi.set(__self__, key, value), + orc_ser_de=orc_ser_de, + parquet_ser_de=parquet_ser_de, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + orc_ser_de: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDe'] = None, + parquet_ser_de: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if orc_ser_de is None and 'orcSerDe' in kwargs: + orc_ser_de = kwargs['orcSerDe'] + if parquet_ser_de is None and 'parquetSerDe' in kwargs: + parquet_ser_de = kwargs['parquetSerDe'] + if orc_ser_de is not None: - pulumi.set(__self__, "orc_ser_de", orc_ser_de) + _setter("orc_ser_de", orc_ser_de) if parquet_ser_de is not None: - pulumi.set(__self__, "parquet_ser_de", parquet_ser_de) + _setter("parquet_ser_de", parquet_ser_de) @property @pulumi.getter(name="orcSerDe") @@ -2870,26 +3864,73 @@ def __init__(__self__, *, :param int row_index_stride: The number of rows between index entries. The default is `10000` and the minimum is `1000`. :param int stripe_size_bytes: The number of bytes in each stripe. The default is 64 MiB and the minimum is 8 MiB. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDe._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_size_bytes=block_size_bytes, + bloom_filter_columns=bloom_filter_columns, + bloom_filter_false_positive_probability=bloom_filter_false_positive_probability, + compression=compression, + dictionary_key_threshold=dictionary_key_threshold, + enable_padding=enable_padding, + format_version=format_version, + padding_tolerance=padding_tolerance, + row_index_stride=row_index_stride, + stripe_size_bytes=stripe_size_bytes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_size_bytes: Optional[int] = None, + bloom_filter_columns: Optional[Sequence[str]] = None, + bloom_filter_false_positive_probability: Optional[float] = None, + compression: Optional[str] = None, + dictionary_key_threshold: Optional[float] = None, + enable_padding: Optional[bool] = None, + format_version: Optional[str] = None, + padding_tolerance: Optional[float] = None, + row_index_stride: Optional[int] = None, + stripe_size_bytes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_size_bytes is None and 'blockSizeBytes' in kwargs: + block_size_bytes = kwargs['blockSizeBytes'] + if bloom_filter_columns is None and 'bloomFilterColumns' in kwargs: + bloom_filter_columns = kwargs['bloomFilterColumns'] + if bloom_filter_false_positive_probability is None and 'bloomFilterFalsePositiveProbability' in kwargs: + bloom_filter_false_positive_probability = kwargs['bloomFilterFalsePositiveProbability'] + if dictionary_key_threshold is None and 'dictionaryKeyThreshold' in kwargs: + dictionary_key_threshold = kwargs['dictionaryKeyThreshold'] + if enable_padding is None and 'enablePadding' in kwargs: + enable_padding = kwargs['enablePadding'] + if format_version is None and 'formatVersion' in kwargs: + format_version = kwargs['formatVersion'] + if padding_tolerance is None and 'paddingTolerance' in kwargs: + padding_tolerance = kwargs['paddingTolerance'] + if row_index_stride is None and 'rowIndexStride' in kwargs: + row_index_stride = kwargs['rowIndexStride'] + if stripe_size_bytes is None and 'stripeSizeBytes' in kwargs: + stripe_size_bytes = kwargs['stripeSizeBytes'] + if block_size_bytes is not None: - pulumi.set(__self__, "block_size_bytes", block_size_bytes) + _setter("block_size_bytes", block_size_bytes) if bloom_filter_columns is not None: - pulumi.set(__self__, "bloom_filter_columns", bloom_filter_columns) + _setter("bloom_filter_columns", bloom_filter_columns) if bloom_filter_false_positive_probability is not None: - pulumi.set(__self__, "bloom_filter_false_positive_probability", bloom_filter_false_positive_probability) + _setter("bloom_filter_false_positive_probability", bloom_filter_false_positive_probability) if compression is not None: - pulumi.set(__self__, "compression", compression) + _setter("compression", compression) if dictionary_key_threshold is not None: - pulumi.set(__self__, "dictionary_key_threshold", dictionary_key_threshold) + _setter("dictionary_key_threshold", dictionary_key_threshold) if enable_padding is not None: - pulumi.set(__self__, "enable_padding", enable_padding) + _setter("enable_padding", enable_padding) if format_version is not None: - pulumi.set(__self__, "format_version", format_version) + _setter("format_version", format_version) if padding_tolerance is not None: - pulumi.set(__self__, "padding_tolerance", padding_tolerance) + _setter("padding_tolerance", padding_tolerance) if row_index_stride is not None: - pulumi.set(__self__, "row_index_stride", row_index_stride) + _setter("row_index_stride", row_index_stride) if stripe_size_bytes is not None: - pulumi.set(__self__, "stripe_size_bytes", stripe_size_bytes) + _setter("stripe_size_bytes", stripe_size_bytes) @property @pulumi.getter(name="blockSizeBytes") @@ -3014,18 +4055,49 @@ def __init__(__self__, *, :param int page_size_bytes: The Parquet page size. Column chunks are divided into pages. A page is conceptually an indivisible unit (in terms of compression and encoding). The minimum value is 64 KiB and the default is 1 MiB. :param str writer_version: Indicates the version of row format to output. The possible values are `V1` and `V2`. The default is `V1`. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_size_bytes=block_size_bytes, + compression=compression, + enable_dictionary_compression=enable_dictionary_compression, + max_padding_bytes=max_padding_bytes, + page_size_bytes=page_size_bytes, + writer_version=writer_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_size_bytes: Optional[int] = None, + compression: Optional[str] = None, + enable_dictionary_compression: Optional[bool] = None, + max_padding_bytes: Optional[int] = None, + page_size_bytes: Optional[int] = None, + writer_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_size_bytes is None and 'blockSizeBytes' in kwargs: + block_size_bytes = kwargs['blockSizeBytes'] + if enable_dictionary_compression is None and 'enableDictionaryCompression' in kwargs: + enable_dictionary_compression = kwargs['enableDictionaryCompression'] + if max_padding_bytes is None and 'maxPaddingBytes' in kwargs: + max_padding_bytes = kwargs['maxPaddingBytes'] + if page_size_bytes is None and 'pageSizeBytes' in kwargs: + page_size_bytes = kwargs['pageSizeBytes'] + if writer_version is None and 'writerVersion' in kwargs: + writer_version = kwargs['writerVersion'] + if block_size_bytes is not None: - pulumi.set(__self__, "block_size_bytes", block_size_bytes) + _setter("block_size_bytes", block_size_bytes) if compression is not None: - pulumi.set(__self__, "compression", compression) + _setter("compression", compression) if enable_dictionary_compression is not None: - pulumi.set(__self__, "enable_dictionary_compression", enable_dictionary_compression) + _setter("enable_dictionary_compression", enable_dictionary_compression) if max_padding_bytes is not None: - pulumi.set(__self__, "max_padding_bytes", max_padding_bytes) + _setter("max_padding_bytes", max_padding_bytes) if page_size_bytes is not None: - pulumi.set(__self__, "page_size_bytes", page_size_bytes) + _setter("page_size_bytes", page_size_bytes) if writer_version is not None: - pulumi.set(__self__, "writer_version", writer_version) + _setter("writer_version", writer_version) @property @pulumi.getter(name="blockSizeBytes") @@ -3118,15 +4190,52 @@ def __init__(__self__, *, :param str region: If you don't specify an AWS Region, the default is the current region. :param str version_id: Specifies the table version for the output data schema. Defaults to `LATEST`. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "table_name", table_name) + FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationSchemaConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + role_arn=role_arn, + table_name=table_name, + catalog_id=catalog_id, + region=region, + version_id=version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + role_arn: Optional[str] = None, + table_name: Optional[str] = None, + catalog_id: Optional[str] = None, + region: Optional[str] = None, + version_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + + _setter("database_name", database_name) + _setter("role_arn", role_arn) + _setter("table_name", table_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) @property @pulumi.getter(name="databaseName") @@ -3205,10 +4314,25 @@ def __init__(__self__, *, > **NOTE:** You can enable dynamic partitioning only when you create a new delivery stream. Once you enable dynamic partitioning on a delivery stream, it cannot be disabled on this delivery stream. Therefore, the provider will recreate the resource whenever dynamic partitioning is enabled or disabled. """ + FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + retry_duration=retry_duration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + retry_duration: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) @property @pulumi.getter @@ -3238,10 +4362,23 @@ def __init__(__self__, *, :param bool enabled: Enables or disables data processing. :param Sequence['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs'] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + processors: Optional[Sequence['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessor']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -3269,9 +4406,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessor._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -3320,8 +4472,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -3387,10 +4560,9 @@ def __init__(__self__, *, 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 str role_arn: The ARN of the role used to access the Amazon MSK cluster. :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 'FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptionsArgs' 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). @@ -3398,22 +4570,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + role_arn: Optional[str] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -3427,7 +4646,7 @@ def bucket_arn(self) -> str: @pulumi.getter(name="roleArn") def role_arn(self) -> str: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -3444,7 +4663,6 @@ def buffering_interval(self) -> Optional[int]: 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") @@ -3520,12 +4738,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -3616,28 +4853,85 @@ def __init__(__self__, *, :param str role_arn: Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs. The pattern needs to be `arn:.*`. :param str s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedDataOnly` and `AllData`. Default value is `FailedDataOnly`. """ - pulumi.set(__self__, "s3_configuration", s3_configuration) - pulumi.set(__self__, "url", url) + FirehoseDeliveryStreamHttpEndpointConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_configuration=s3_configuration, + url=url, + access_key=access_key, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + name=name, + processing_configuration=processing_configuration, + request_configuration=request_configuration, + retry_duration=retry_duration, + role_arn=role_arn, + s3_backup_mode=s3_backup_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_configuration: Optional['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration'] = None, + url: Optional[str] = None, + access_key: Optional[str] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationCloudwatchLoggingOptions'] = None, + name: Optional[str] = None, + processing_configuration: Optional['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfiguration'] = None, + request_configuration: Optional['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfiguration'] = None, + retry_duration: Optional[int] = None, + role_arn: Optional[str] = None, + s3_backup_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if url is None: + raise TypeError("Missing 'url' argument") + if access_key is None and 'accessKey' in kwargs: + access_key = kwargs['accessKey'] + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if request_configuration is None and 'requestConfiguration' in kwargs: + request_configuration = kwargs['requestConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + + _setter("s3_configuration", s3_configuration) + _setter("url", url) if access_key is not None: - pulumi.set(__self__, "access_key", access_key) + _setter("access_key", access_key) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if request_configuration is not None: - pulumi.set(__self__, "request_configuration", request_configuration) + _setter("request_configuration", request_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) @property @pulumi.getter(name="s3Configuration") @@ -3766,12 +5060,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamHttpEndpointConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -3807,10 +5120,23 @@ def __init__(__self__, *, :param bool enabled: Enables or disables data processing. :param Sequence['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs'] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + processors: Optional[Sequence['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessor']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -3838,9 +5164,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessor._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -3889,8 +5230,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -3939,10 +5301,27 @@ def __init__(__self__, *, :param Sequence['FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs'] common_attributes: Describes the metadata sent to the HTTP endpoint destination. More details are given below :param str content_encoding: Kinesis Data Firehose uses the content encoding to compress the body of a request before sending the request to the destination. Valid values are `NONE` and `GZIP`. Default value is `NONE`. """ + FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + common_attributes=common_attributes, + content_encoding=content_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + common_attributes: Optional[Sequence['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttribute']] = None, + content_encoding: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if common_attributes is None and 'commonAttributes' in kwargs: + common_attributes = kwargs['commonAttributes'] + if content_encoding is None and 'contentEncoding' in kwargs: + content_encoding = kwargs['contentEncoding'] + if common_attributes is not None: - pulumi.set(__self__, "common_attributes", common_attributes) + _setter("common_attributes", common_attributes) if content_encoding is not None: - pulumi.set(__self__, "content_encoding", content_encoding) + _setter("content_encoding", content_encoding) @property @pulumi.getter(name="commonAttributes") @@ -3970,8 +5349,25 @@ def __init__(__self__, *, :param str name: The name of the HTTP endpoint common attribute. :param str value: The value of the HTTP endpoint common attribute. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttribute._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -4035,10 +5431,9 @@ def __init__(__self__, *, 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 str role_arn: The ARN of the role used to access the Amazon MSK cluster. :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 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs' 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). @@ -4046,22 +5441,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + role_arn: Optional[str] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -4075,7 +5517,7 @@ def bucket_arn(self) -> str: @pulumi.getter(name="roleArn") def role_arn(self) -> str: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -4092,7 +5534,6 @@ def buffering_interval(self) -> Optional[int]: 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") @@ -4168,12 +5609,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -4228,8 +5688,29 @@ def __init__(__self__, *, :param str kinesis_stream_arn: The kinesis stream used as the source of the firehose delivery stream. :param str role_arn: The ARN of the role that provides access to the source Kinesis stream. """ - pulumi.set(__self__, "kinesis_stream_arn", kinesis_stream_arn) - pulumi.set(__self__, "role_arn", role_arn) + FirehoseDeliveryStreamKinesisSourceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + kinesis_stream_arn=kinesis_stream_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kinesis_stream_arn: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kinesis_stream_arn is None and 'kinesisStreamArn' in kwargs: + kinesis_stream_arn = kwargs['kinesisStreamArn'] + if kinesis_stream_arn is None: + raise TypeError("Missing 'kinesis_stream_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("kinesis_stream_arn", kinesis_stream_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="kinesisStreamArn") @@ -4280,9 +5761,36 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamMskSourceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_configuration=authentication_configuration, + msk_cluster_arn=msk_cluster_arn, + topic_name=topic_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_configuration: Optional['outputs.FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration'] = None, + msk_cluster_arn: Optional[str] = None, + topic_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_configuration is None and 'authenticationConfiguration' in kwargs: + authentication_configuration = kwargs['authenticationConfiguration'] + if authentication_configuration is None: + raise TypeError("Missing 'authentication_configuration' argument") + if msk_cluster_arn is None and 'mskClusterArn' in kwargs: + msk_cluster_arn = kwargs['mskClusterArn'] + if msk_cluster_arn is None: + raise TypeError("Missing 'msk_cluster_arn' argument") + if topic_name is None and 'topicName' in kwargs: + topic_name = kwargs['topicName'] + if topic_name is None: + raise TypeError("Missing 'topic_name' argument") + + _setter("authentication_configuration", authentication_configuration) + _setter("msk_cluster_arn", msk_cluster_arn) + _setter("topic_name", topic_name) @property @pulumi.getter(name="authenticationConfiguration") @@ -4335,8 +5843,27 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + connectivity=connectivity, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connectivity: Optional[str] = None, + role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connectivity is None: + raise TypeError("Missing 'connectivity' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("connectivity", connectivity) + _setter("role_arn", role_arn) @property @pulumi.getter @@ -4431,31 +5958,102 @@ def __init__(__self__, *, :param str type_name: The Elasticsearch type name with maximum length of 100 characters. Types are deprecated in OpenSearch_1.1. TypeName must be empty. :param 'FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs' vpc_config: The VPC configuration for the delivery stream to connect to OpenSearch associated with the VPC. More details are given below """ - pulumi.set(__self__, "index_name", index_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "s3_configuration", s3_configuration) + FirehoseDeliveryStreamOpensearchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + index_name=index_name, + role_arn=role_arn, + s3_configuration=s3_configuration, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + cluster_endpoint=cluster_endpoint, + domain_arn=domain_arn, + index_rotation_period=index_rotation_period, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_mode=s3_backup_mode, + type_name=type_name, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + index_name: Optional[str] = None, + role_arn: Optional[str] = None, + s3_configuration: Optional['outputs.FirehoseDeliveryStreamOpensearchConfigurationS3Configuration'] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptions'] = None, + cluster_endpoint: Optional[str] = None, + domain_arn: Optional[str] = None, + index_rotation_period: Optional[str] = None, + processing_configuration: Optional['outputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfiguration'] = None, + retry_duration: Optional[int] = None, + s3_backup_mode: Optional[str] = None, + type_name: Optional[str] = None, + vpc_config: Optional['outputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if cluster_endpoint is None and 'clusterEndpoint' in kwargs: + cluster_endpoint = kwargs['clusterEndpoint'] + if domain_arn is None and 'domainArn' in kwargs: + domain_arn = kwargs['domainArn'] + if index_rotation_period is None and 'indexRotationPeriod' in kwargs: + index_rotation_period = kwargs['indexRotationPeriod'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + if type_name is None and 'typeName' in kwargs: + type_name = kwargs['typeName'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("index_name", index_name) + _setter("role_arn", role_arn) + _setter("s3_configuration", s3_configuration) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if cluster_endpoint is not None: - pulumi.set(__self__, "cluster_endpoint", cluster_endpoint) + _setter("cluster_endpoint", cluster_endpoint) if domain_arn is not None: - pulumi.set(__self__, "domain_arn", domain_arn) + _setter("domain_arn", domain_arn) if index_rotation_period is not None: - pulumi.set(__self__, "index_rotation_period", index_rotation_period) + _setter("index_rotation_period", index_rotation_period) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) if type_name is not None: - pulumi.set(__self__, "type_name", type_name) + _setter("type_name", type_name) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="indexName") @@ -4600,12 +6198,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamOpensearchConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -4641,10 +6258,23 @@ def __init__(__self__, *, :param bool enabled: Enables or disables data processing. :param Sequence['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs'] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamOpensearchConfigurationProcessingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + processors: Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -4672,9 +6302,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -4723,8 +6368,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -4790,10 +6456,9 @@ def __init__(__self__, *, 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 str role_arn: The ARN of the role used to access the Amazon MSK cluster. :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 'FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs' 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). @@ -4801,22 +6466,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamOpensearchConfigurationS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + role_arn: Optional[str] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -4830,7 +6542,7 @@ def bucket_arn(self) -> str: @pulumi.getter(name="roleArn") def role_arn(self) -> str: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -4847,7 +6559,6 @@ def buffering_interval(self) -> Optional[int]: 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") @@ -4923,12 +6634,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -4990,11 +6720,42 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamOpensearchConfigurationVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("role_arn", role_arn) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="roleArn") @@ -5090,24 +6851,85 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamOpensearchserverlessConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + collection_endpoint=collection_endpoint, + index_name=index_name, + role_arn=role_arn, + s3_configuration=s3_configuration, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_mode=s3_backup_mode, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + collection_endpoint: Optional[str] = None, + index_name: Optional[str] = None, + role_arn: Optional[str] = None, + s3_configuration: Optional['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration'] = None, + 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if collection_endpoint is None and 'collectionEndpoint' in kwargs: + collection_endpoint = kwargs['collectionEndpoint'] + if collection_endpoint is None: + raise TypeError("Missing 'collection_endpoint' argument") + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("collection_endpoint", collection_endpoint) + _setter("index_name", index_name) + _setter("role_arn", role_arn) + _setter("s3_configuration", s3_configuration) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="collectionEndpoint") @@ -5228,12 +7050,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamOpensearchserverlessConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -5269,10 +7110,23 @@ def __init__(__self__, *, :param bool enabled: Enables or disables data processing. :param Sequence['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs'] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + processors: Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -5300,9 +7154,24 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -5351,8 +7220,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -5418,10 +7308,9 @@ def __init__(__self__, *, 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 str role_arn: The ARN of the role used to access the Amazon MSK cluster. :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). @@ -5429,22 +7318,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamOpensearchserverlessConfigurationS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + role_arn: Optional[str] = None, + 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -5458,7 +7394,7 @@ def bucket_arn(self) -> str: @pulumi.getter(name="roleArn") def role_arn(self) -> str: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -5475,7 +7411,6 @@ def buffering_interval(self) -> Optional[int]: 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") @@ -5551,12 +7486,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -5618,11 +7572,42 @@ def __init__(__self__, *, :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) + FirehoseDeliveryStreamOpensearchserverlessConfigurationVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("role_arn", role_arn) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="roleArn") @@ -5722,26 +7707,95 @@ def __init__(__self__, *, :param 'FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs' s3_backup_configuration: The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object. :param str s3_backup_mode: The Amazon S3 backup mode. Valid values are `Disabled` and `Enabled`. Default value is `Disabled`. """ - pulumi.set(__self__, "cluster_jdbcurl", cluster_jdbcurl) - pulumi.set(__self__, "data_table_name", data_table_name) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "s3_configuration", s3_configuration) - pulumi.set(__self__, "username", username) + FirehoseDeliveryStreamRedshiftConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_jdbcurl=cluster_jdbcurl, + data_table_name=data_table_name, + password=password, + role_arn=role_arn, + s3_configuration=s3_configuration, + username=username, + cloudwatch_logging_options=cloudwatch_logging_options, + copy_options=copy_options, + data_table_columns=data_table_columns, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_configuration=s3_backup_configuration, + s3_backup_mode=s3_backup_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_jdbcurl: Optional[str] = None, + data_table_name: Optional[str] = None, + password: Optional[str] = None, + role_arn: Optional[str] = None, + s3_configuration: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationS3Configuration'] = None, + username: Optional[str] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptions'] = None, + copy_options: Optional[str] = None, + data_table_columns: Optional[str] = None, + processing_configuration: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguration'] = None, + retry_duration: Optional[int] = None, + s3_backup_configuration: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration'] = None, + s3_backup_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_jdbcurl is None and 'clusterJdbcurl' in kwargs: + cluster_jdbcurl = kwargs['clusterJdbcurl'] + if cluster_jdbcurl is None: + raise TypeError("Missing 'cluster_jdbcurl' argument") + if data_table_name is None and 'dataTableName' in kwargs: + data_table_name = kwargs['dataTableName'] + if data_table_name is None: + raise TypeError("Missing 'data_table_name' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if copy_options is None and 'copyOptions' in kwargs: + copy_options = kwargs['copyOptions'] + if data_table_columns is None and 'dataTableColumns' in kwargs: + data_table_columns = kwargs['dataTableColumns'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_configuration is None and 's3BackupConfiguration' in kwargs: + s3_backup_configuration = kwargs['s3BackupConfiguration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + + _setter("cluster_jdbcurl", cluster_jdbcurl) + _setter("data_table_name", data_table_name) + _setter("password", password) + _setter("role_arn", role_arn) + _setter("s3_configuration", s3_configuration) + _setter("username", username) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if copy_options is not None: - pulumi.set(__self__, "copy_options", copy_options) + _setter("copy_options", copy_options) if data_table_columns is not None: - pulumi.set(__self__, "data_table_columns", data_table_columns) + _setter("data_table_columns", data_table_columns) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_configuration is not None: - pulumi.set(__self__, "s3_backup_configuration", s3_backup_configuration) + _setter("s3_backup_configuration", s3_backup_configuration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) @property @pulumi.getter(name="clusterJdbcurl") @@ -5878,12 +7932,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamRedshiftConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -5919,10 +7992,23 @@ def __init__(__self__, *, :param bool enabled: Enables or disables data processing. :param Sequence['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs'] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + processors: Optional[Sequence['outputs.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -5950,9 +8036,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -6001,8 +8102,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -6068,10 +8190,9 @@ def __init__(__self__, *, 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 str role_arn: The ARN of the role used to access the Amazon MSK cluster. :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 'FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptionsArgs' 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). @@ -6079,22 +8200,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + role_arn: Optional[str] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -6108,7 +8276,7 @@ def bucket_arn(self) -> str: @pulumi.getter(name="roleArn") def role_arn(self) -> str: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -6125,7 +8293,6 @@ def buffering_interval(self) -> Optional[int]: 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") @@ -6201,12 +8368,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -6278,10 +8464,9 @@ def __init__(__self__, *, 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 str role_arn: The ARN of the role used to access the Amazon MSK cluster. :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 'FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs' 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). @@ -6289,22 +8474,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamRedshiftConfigurationS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + role_arn: Optional[str] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -6318,7 +8550,7 @@ def bucket_arn(self) -> str: @pulumi.getter(name="roleArn") def role_arn(self) -> str: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -6335,7 +8567,6 @@ def buffering_interval(self) -> Optional[int]: 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") @@ -6411,12 +8642,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -6475,12 +8725,31 @@ def __init__(__self__, *, The `extended_s3_configuration` object supports the same fields from s3_configuration as well as the following: :param str key_type: Type of encryption key. Default is `AWS_OWNED_CMK`. Valid values are `AWS_OWNED_CMK` and `CUSTOMER_MANAGED_CMK` """ + FirehoseDeliveryStreamServerSideEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + key_arn=key_arn, + key_type=key_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + key_arn: Optional[str] = None, + key_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_arn is None and 'keyArn' in kwargs: + key_arn = kwargs['keyArn'] + if key_type is None and 'keyType' in kwargs: + key_type = kwargs['keyType'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if key_arn is not None: - pulumi.set(__self__, "key_arn", key_arn) + _setter("key_arn", key_arn) if key_type is not None: - pulumi.set(__self__, "key_type", key_type) + _setter("key_type", key_type) @property @pulumi.getter @@ -6565,21 +8834,72 @@ def __init__(__self__, *, :param int retry_duration: After an initial failure to deliver to Splunk, the total amount of time, in seconds between 0 to 7200, during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. The default value is 300s. There will be no retry if the value is 0. :param str s3_backup_mode: Defines how documents should be delivered to Amazon S3. Valid values are `FailedEventsOnly` and `AllEvents`. Default value is `FailedEventsOnly`. """ - pulumi.set(__self__, "hec_endpoint", hec_endpoint) - pulumi.set(__self__, "hec_token", hec_token) - pulumi.set(__self__, "s3_configuration", s3_configuration) + FirehoseDeliveryStreamSplunkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + hec_endpoint=hec_endpoint, + hec_token=hec_token, + s3_configuration=s3_configuration, + cloudwatch_logging_options=cloudwatch_logging_options, + hec_acknowledgment_timeout=hec_acknowledgment_timeout, + hec_endpoint_type=hec_endpoint_type, + processing_configuration=processing_configuration, + retry_duration=retry_duration, + s3_backup_mode=s3_backup_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hec_endpoint: Optional[str] = None, + hec_token: Optional[str] = None, + s3_configuration: Optional['outputs.FirehoseDeliveryStreamSplunkConfigurationS3Configuration'] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptions'] = None, + hec_acknowledgment_timeout: Optional[int] = None, + hec_endpoint_type: Optional[str] = None, + processing_configuration: Optional['outputs.FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration'] = None, + retry_duration: Optional[int] = None, + s3_backup_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hec_endpoint is None and 'hecEndpoint' in kwargs: + hec_endpoint = kwargs['hecEndpoint'] + if hec_endpoint is None: + raise TypeError("Missing 'hec_endpoint' argument") + if hec_token is None and 'hecToken' in kwargs: + hec_token = kwargs['hecToken'] + if hec_token is None: + raise TypeError("Missing 'hec_token' argument") + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is None: + raise TypeError("Missing 's3_configuration' argument") + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if hec_acknowledgment_timeout is None and 'hecAcknowledgmentTimeout' in kwargs: + hec_acknowledgment_timeout = kwargs['hecAcknowledgmentTimeout'] + if hec_endpoint_type is None and 'hecEndpointType' in kwargs: + hec_endpoint_type = kwargs['hecEndpointType'] + if processing_configuration is None and 'processingConfiguration' in kwargs: + processing_configuration = kwargs['processingConfiguration'] + if retry_duration is None and 'retryDuration' in kwargs: + retry_duration = kwargs['retryDuration'] + if s3_backup_mode is None and 's3BackupMode' in kwargs: + s3_backup_mode = kwargs['s3BackupMode'] + + _setter("hec_endpoint", hec_endpoint) + _setter("hec_token", hec_token) + _setter("s3_configuration", s3_configuration) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if hec_acknowledgment_timeout is not None: - pulumi.set(__self__, "hec_acknowledgment_timeout", hec_acknowledgment_timeout) + _setter("hec_acknowledgment_timeout", hec_acknowledgment_timeout) if hec_endpoint_type is not None: - pulumi.set(__self__, "hec_endpoint_type", hec_endpoint_type) + _setter("hec_endpoint_type", hec_endpoint_type) if processing_configuration is not None: - pulumi.set(__self__, "processing_configuration", processing_configuration) + _setter("processing_configuration", processing_configuration) if retry_duration is not None: - pulumi.set(__self__, "retry_duration", retry_duration) + _setter("retry_duration", retry_duration) if s3_backup_mode is not None: - pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + _setter("s3_backup_mode", s3_backup_mode) @property @pulumi.getter(name="hecEndpoint") @@ -6684,12 +9004,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamSplunkConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -6725,10 +9064,23 @@ def __init__(__self__, *, :param bool enabled: Enables or disables data processing. :param Sequence['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs'] processors: Array of data processors. More details are given below """ + FirehoseDeliveryStreamSplunkConfigurationProcessingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + processors=processors, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + processors: Optional[Sequence['outputs.FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessor']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if processors is not None: - pulumi.set(__self__, "processors", processors) + _setter("processors", processors) @property @pulumi.getter @@ -6756,9 +9108,24 @@ def __init__(__self__, *, :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['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Array of processor parameters. More details are given below """ - pulumi.set(__self__, "type", type) + FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessor._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -6807,8 +9174,29 @@ def __init__(__self__, *, > **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) + FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_name=parameter_name, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_name: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_name is None and 'parameterName' in kwargs: + parameter_name = kwargs['parameterName'] + if parameter_name is None: + raise TypeError("Missing 'parameter_name' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_name", parameter_name) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterName") @@ -6874,10 +9262,9 @@ def __init__(__self__, *, 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 str role_arn: The ARN of the role used to access the Amazon MSK cluster. :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 'FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs' 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). @@ -6885,22 +9272,69 @@ def __init__(__self__, *, 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) + FirehoseDeliveryStreamSplunkConfigurationS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + role_arn=role_arn, + buffering_interval=buffering_interval, + buffering_size=buffering_size, + cloudwatch_logging_options=cloudwatch_logging_options, + compression_format=compression_format, + error_output_prefix=error_output_prefix, + kms_key_arn=kms_key_arn, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + role_arn: Optional[str] = None, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if buffering_interval is None and 'bufferingInterval' in kwargs: + buffering_interval = kwargs['bufferingInterval'] + if buffering_size is None and 'bufferingSize' in kwargs: + buffering_size = kwargs['bufferingSize'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if compression_format is None and 'compressionFormat' in kwargs: + compression_format = kwargs['compressionFormat'] + if error_output_prefix is None and 'errorOutputPrefix' in kwargs: + error_output_prefix = kwargs['errorOutputPrefix'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + + _setter("bucket_arn", bucket_arn) + _setter("role_arn", role_arn) if buffering_interval is not None: - pulumi.set(__self__, "buffering_interval", buffering_interval) + _setter("buffering_interval", buffering_interval) if buffering_size is not None: - pulumi.set(__self__, "buffering_size", buffering_size) + _setter("buffering_size", buffering_size) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if compression_format is not None: - pulumi.set(__self__, "compression_format", compression_format) + _setter("compression_format", compression_format) if error_output_prefix is not None: - pulumi.set(__self__, "error_output_prefix", error_output_prefix) + _setter("error_output_prefix", error_output_prefix) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -6914,7 +9348,7 @@ def bucket_arn(self) -> str: @pulumi.getter(name="roleArn") def role_arn(self) -> str: """ - The ARN of the role that provides access to the source Kinesis stream. + The ARN of the role used to access the Amazon MSK cluster. """ return pulumi.get(self, "role_arn") @@ -6931,7 +9365,6 @@ def buffering_interval(self) -> Optional[int]: 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") @@ -7007,12 +9440,31 @@ def __init__(__self__, *, :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. """ + FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group_name=log_group_name, + log_stream_name=log_stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_group_name is not None: - pulumi.set(__self__, "log_group_name", log_group_name) + _setter("log_group_name", log_group_name) if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) @property @pulumi.getter @@ -7063,7 +9515,22 @@ def __init__(__self__, *, """ :param str stream_mode: Specifies the capacity mode of the stream. Must be either `PROVISIONED` or `ON_DEMAND`. """ - pulumi.set(__self__, "stream_mode", stream_mode) + StreamStreamModeDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_mode=stream_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_mode is None and 'streamMode' in kwargs: + stream_mode = kwargs['streamMode'] + if stream_mode is None: + raise TypeError("Missing 'stream_mode' argument") + + _setter("stream_mode", stream_mode) @property @pulumi.getter(name="streamMode") @@ -7081,7 +9548,22 @@ def __init__(__self__, *, """ :param str stream_mode: Capacity mode of the stream. Either `ON_DEMAND` or `PROVISIONED`. """ - pulumi.set(__self__, "stream_mode", stream_mode) + GetStreamStreamModeDetailResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_mode=stream_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_mode is None and 'streamMode' in kwargs: + stream_mode = kwargs['streamMode'] + if stream_mode is None: + raise TypeError("Missing 'stream_mode' argument") + + _setter("stream_mode", stream_mode) @property @pulumi.getter(name="streamMode") diff --git a/sdk/python/pulumi_aws/kinesis/stream.py b/sdk/python/pulumi_aws/kinesis/stream.py index 76c00692097..dcafc791904 100644 --- a/sdk/python/pulumi_aws/kinesis/stream.py +++ b/sdk/python/pulumi_aws/kinesis/stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -40,26 +40,69 @@ def __init__(__self__, *, :param pulumi.Input['StreamStreamModeDetailsArgs'] stream_mode_details: Indicates the [capacity mode](https://docs.aws.amazon.com/streams/latest/dev/how-do-i-size-a-stream.html) of the data stream. Detailed 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. """ + StreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + encryption_type=encryption_type, + enforce_consumer_deletion=enforce_consumer_deletion, + kms_key_id=kms_key_id, + name=name, + retention_period=retention_period, + shard_count=shard_count, + shard_level_metrics=shard_level_metrics, + stream_mode_details=stream_mode_details, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + encryption_type: Optional[pulumi.Input[str]] = None, + enforce_consumer_deletion: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input[int]] = None, + shard_count: Optional[pulumi.Input[int]] = None, + shard_level_metrics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + stream_mode_details: Optional[pulumi.Input['StreamStreamModeDetailsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if enforce_consumer_deletion is None and 'enforceConsumerDeletion' in kwargs: + enforce_consumer_deletion = kwargs['enforceConsumerDeletion'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if shard_count is None and 'shardCount' in kwargs: + shard_count = kwargs['shardCount'] + if shard_level_metrics is None and 'shardLevelMetrics' in kwargs: + shard_level_metrics = kwargs['shardLevelMetrics'] + if stream_mode_details is None and 'streamModeDetails' in kwargs: + stream_mode_details = kwargs['streamModeDetails'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if encryption_type is not None: - pulumi.set(__self__, "encryption_type", encryption_type) + _setter("encryption_type", encryption_type) if enforce_consumer_deletion is not None: - pulumi.set(__self__, "enforce_consumer_deletion", enforce_consumer_deletion) + _setter("enforce_consumer_deletion", enforce_consumer_deletion) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) if shard_count is not None: - pulumi.set(__self__, "shard_count", shard_count) + _setter("shard_count", shard_count) if shard_level_metrics is not None: - pulumi.set(__self__, "shard_level_metrics", shard_level_metrics) + _setter("shard_level_metrics", shard_level_metrics) if stream_mode_details is not None: - pulumi.set(__self__, "stream_mode_details", stream_mode_details) + _setter("stream_mode_details", stream_mode_details) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -212,31 +255,78 @@ def __init__(__self__, *, :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. """ + _StreamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + encryption_type=encryption_type, + enforce_consumer_deletion=enforce_consumer_deletion, + kms_key_id=kms_key_id, + name=name, + retention_period=retention_period, + shard_count=shard_count, + shard_level_metrics=shard_level_metrics, + stream_mode_details=stream_mode_details, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + encryption_type: Optional[pulumi.Input[str]] = None, + enforce_consumer_deletion: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input[int]] = None, + shard_count: Optional[pulumi.Input[int]] = None, + shard_level_metrics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + stream_mode_details: Optional[pulumi.Input['StreamStreamModeDetailsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if enforce_consumer_deletion is None and 'enforceConsumerDeletion' in kwargs: + enforce_consumer_deletion = kwargs['enforceConsumerDeletion'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if shard_count is None and 'shardCount' in kwargs: + shard_count = kwargs['shardCount'] + if shard_level_metrics is None and 'shardLevelMetrics' in kwargs: + shard_level_metrics = kwargs['shardLevelMetrics'] + if stream_mode_details is None and 'streamModeDetails' in kwargs: + stream_mode_details = kwargs['streamModeDetails'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if encryption_type is not None: - pulumi.set(__self__, "encryption_type", encryption_type) + _setter("encryption_type", encryption_type) if enforce_consumer_deletion is not None: - pulumi.set(__self__, "enforce_consumer_deletion", enforce_consumer_deletion) + _setter("enforce_consumer_deletion", enforce_consumer_deletion) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) if shard_count is not None: - pulumi.set(__self__, "shard_count", shard_count) + _setter("shard_count", shard_count) if shard_level_metrics is not None: - pulumi.set(__self__, "shard_level_metrics", shard_level_metrics) + _setter("shard_level_metrics", shard_level_metrics) if stream_mode_details is not None: - pulumi.set(__self__, "stream_mode_details", stream_mode_details) + _setter("stream_mode_details", stream_mode_details) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -491,6 +581,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StreamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -523,6 +617,7 @@ def _internal_init(__self__, __props__.__dict__["retention_period"] = retention_period __props__.__dict__["shard_count"] = shard_count __props__.__dict__["shard_level_metrics"] = shard_level_metrics + stream_mode_details = _utilities.configure(stream_mode_details, StreamStreamModeDetailsArgs, True) __props__.__dict__["stream_mode_details"] = stream_mode_details __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/kinesis/stream_consumer.py b/sdk/python/pulumi_aws/kinesis/stream_consumer.py index b8d410f6a16..9d5b1c3e5ca 100644 --- a/sdk/python/pulumi_aws/kinesis/stream_consumer.py +++ b/sdk/python/pulumi_aws/kinesis/stream_consumer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StreamConsumerArgs', 'StreamConsumer'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] stream_arn: Amazon Resource Name (ARN) of the data stream the consumer is registered with. :param pulumi.Input[str] name: Name of the stream consumer. """ - pulumi.set(__self__, "stream_arn", stream_arn) + StreamConsumerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_arn=stream_arn, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("stream_arn", stream_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="streamArn") @@ -64,14 +81,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the stream consumer. :param pulumi.Input[str] stream_arn: Amazon Resource Name (ARN) of the data stream the consumer is registered with. """ + _StreamConsumerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_timestamp=creation_timestamp, + name=name, + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_timestamp: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + stream_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_timestamp is None and 'creationTimestamp' in kwargs: + creation_timestamp = kwargs['creationTimestamp'] + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_timestamp is not None: - pulumi.set(__self__, "creation_timestamp", creation_timestamp) + _setter("creation_timestamp", creation_timestamp) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if stream_arn is not None: - pulumi.set(__self__, "stream_arn", stream_arn) + _setter("stream_arn", stream_arn) @property @pulumi.getter @@ -201,6 +239,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StreamConsumerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kinesis/video_stream.py b/sdk/python/pulumi_aws/kinesis/video_stream.py index d9ac40d668b..8b5e63f0cf7 100644 --- a/sdk/python/pulumi_aws/kinesis/video_stream.py +++ b/sdk/python/pulumi_aws/kinesis/video_stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VideoStreamArgs', 'VideoStream'] @@ -30,18 +30,47 @@ def __init__(__self__, *, AWS account and region the Stream is created in. :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. """ + VideoStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_retention_in_hours=data_retention_in_hours, + device_name=device_name, + kms_key_id=kms_key_id, + media_type=media_type, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_retention_in_hours: Optional[pulumi.Input[int]] = None, + device_name: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + media_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_retention_in_hours is None and 'dataRetentionInHours' in kwargs: + data_retention_in_hours = kwargs['dataRetentionInHours'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if media_type is None and 'mediaType' in kwargs: + media_type = kwargs['mediaType'] + if data_retention_in_hours is not None: - pulumi.set(__self__, "data_retention_in_hours", data_retention_in_hours) + _setter("data_retention_in_hours", data_retention_in_hours) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if media_type is not None: - pulumi.set(__self__, "media_type", media_type) + _setter("media_type", media_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dataRetentionInHours") @@ -144,29 +173,70 @@ def __init__(__self__, *, :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: The version of the stream. """ + _VideoStreamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_time=creation_time, + data_retention_in_hours=data_retention_in_hours, + device_name=device_name, + kms_key_id=kms_key_id, + media_type=media_type, + name=name, + tags=tags, + tags_all=tags_all, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + data_retention_in_hours: Optional[pulumi.Input[int]] = None, + device_name: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + media_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if data_retention_in_hours is None and 'dataRetentionInHours' in kwargs: + data_retention_in_hours = kwargs['dataRetentionInHours'] + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if media_type is None and 'mediaType' in kwargs: + media_type = kwargs['mediaType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if data_retention_in_hours is not None: - pulumi.set(__self__, "data_retention_in_hours", data_retention_in_hours) + _setter("data_retention_in_hours", data_retention_in_hours) if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if media_type is not None: - pulumi.set(__self__, "media_type", media_type) + _setter("media_type", media_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -387,6 +457,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VideoStreamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kinesisanalyticsv2/_inputs.py b/sdk/python/pulumi_aws/kinesisanalyticsv2/_inputs.py index c1c03ada068..4d4df5ec7e7 100644 --- a/sdk/python/pulumi_aws/kinesisanalyticsv2/_inputs.py +++ b/sdk/python/pulumi_aws/kinesisanalyticsv2/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -74,19 +74,58 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationArgs'] sql_application_configuration: The configuration of a SQL-based application. :param pulumi.Input['ApplicationApplicationConfigurationVpcConfigurationArgs'] vpc_configuration: The VPC configuration of a Flink-based application. """ - pulumi.set(__self__, "application_code_configuration", application_code_configuration) + ApplicationApplicationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_code_configuration=application_code_configuration, + application_snapshot_configuration=application_snapshot_configuration, + environment_properties=environment_properties, + flink_application_configuration=flink_application_configuration, + run_configuration=run_configuration, + sql_application_configuration=sql_application_configuration, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_code_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationApplicationCodeConfigurationArgs']] = None, + application_snapshot_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationApplicationSnapshotConfigurationArgs']] = None, + environment_properties: Optional[pulumi.Input['ApplicationApplicationConfigurationEnvironmentPropertiesArgs']] = None, + flink_application_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationFlinkApplicationConfigurationArgs']] = None, + run_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationRunConfigurationArgs']] = None, + sql_application_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationArgs']] = None, + vpc_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_code_configuration is None and 'applicationCodeConfiguration' in kwargs: + application_code_configuration = kwargs['applicationCodeConfiguration'] + if application_code_configuration is None: + raise TypeError("Missing 'application_code_configuration' argument") + if application_snapshot_configuration is None and 'applicationSnapshotConfiguration' in kwargs: + application_snapshot_configuration = kwargs['applicationSnapshotConfiguration'] + if environment_properties is None and 'environmentProperties' in kwargs: + environment_properties = kwargs['environmentProperties'] + if flink_application_configuration is None and 'flinkApplicationConfiguration' in kwargs: + flink_application_configuration = kwargs['flinkApplicationConfiguration'] + if run_configuration is None and 'runConfiguration' in kwargs: + run_configuration = kwargs['runConfiguration'] + if sql_application_configuration is None and 'sqlApplicationConfiguration' in kwargs: + sql_application_configuration = kwargs['sqlApplicationConfiguration'] + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + + _setter("application_code_configuration", application_code_configuration) if application_snapshot_configuration is not None: - pulumi.set(__self__, "application_snapshot_configuration", application_snapshot_configuration) + _setter("application_snapshot_configuration", application_snapshot_configuration) if environment_properties is not None: - pulumi.set(__self__, "environment_properties", environment_properties) + _setter("environment_properties", environment_properties) if flink_application_configuration is not None: - pulumi.set(__self__, "flink_application_configuration", flink_application_configuration) + _setter("flink_application_configuration", flink_application_configuration) if run_configuration is not None: - pulumi.set(__self__, "run_configuration", run_configuration) + _setter("run_configuration", run_configuration) if sql_application_configuration is not None: - pulumi.set(__self__, "sql_application_configuration", sql_application_configuration) + _setter("sql_application_configuration", sql_application_configuration) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter(name="applicationCodeConfiguration") @@ -182,9 +221,28 @@ def __init__(__self__, *, :param pulumi.Input[str] code_content_type: Specifies whether the code content is in text or zip format. Valid values: `PLAINTEXT`, `ZIPFILE`. :param pulumi.Input['ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs'] code_content: The location and type of the application code. """ - pulumi.set(__self__, "code_content_type", code_content_type) + ApplicationApplicationConfigurationApplicationCodeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + code_content_type=code_content_type, + code_content=code_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code_content_type: Optional[pulumi.Input[str]] = None, + code_content: Optional[pulumi.Input['ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_content_type is None and 'codeContentType' in kwargs: + code_content_type = kwargs['codeContentType'] + if code_content_type is None: + raise TypeError("Missing 'code_content_type' argument") + if code_content is None and 'codeContent' in kwargs: + code_content = kwargs['codeContent'] + + _setter("code_content_type", code_content_type) if code_content is not None: - pulumi.set(__self__, "code_content", code_content) + _setter("code_content", code_content) @property @pulumi.getter(name="codeContentType") @@ -222,10 +280,27 @@ def __init__(__self__, *, The `s3_content_location` object supports the following: """ + ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_content_location=s3_content_location, + text_content=text_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_content_location: Optional[pulumi.Input['ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocationArgs']] = None, + text_content: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_content_location is None and 's3ContentLocation' in kwargs: + s3_content_location = kwargs['s3ContentLocation'] + if text_content is None and 'textContent' in kwargs: + text_content = kwargs['textContent'] + if s3_content_location is not None: - pulumi.set(__self__, "s3_content_location", s3_content_location) + _setter("s3_content_location", s3_content_location) if text_content is not None: - pulumi.set(__self__, "text_content", text_content) + _setter("text_content", text_content) @property @pulumi.getter(name="s3ContentLocation") @@ -265,10 +340,35 @@ def __init__(__self__, *, :param pulumi.Input[str] file_key: The file key for the object containing the application code. :param pulumi.Input[str] object_version: The version of the object containing the application code. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "file_key", file_key) + ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + file_key=file_key, + object_version=object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + file_key: Optional[pulumi.Input[str]] = None, + object_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if file_key is None and 'fileKey' in kwargs: + file_key = kwargs['fileKey'] + if file_key is None: + raise TypeError("Missing 'file_key' argument") + if object_version is None and 'objectVersion' in kwargs: + object_version = kwargs['objectVersion'] + + _setter("bucket_arn", bucket_arn) + _setter("file_key", file_key) if object_version is not None: - pulumi.set(__self__, "object_version", object_version) + _setter("object_version", object_version) @property @pulumi.getter(name="bucketArn") @@ -314,7 +414,22 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] snapshots_enabled: Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application. """ - pulumi.set(__self__, "snapshots_enabled", snapshots_enabled) + ApplicationApplicationConfigurationApplicationSnapshotConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + snapshots_enabled=snapshots_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + snapshots_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if snapshots_enabled is None and 'snapshotsEnabled' in kwargs: + snapshots_enabled = kwargs['snapshotsEnabled'] + if snapshots_enabled is None: + raise TypeError("Missing 'snapshots_enabled' argument") + + _setter("snapshots_enabled", snapshots_enabled) @property @pulumi.getter(name="snapshotsEnabled") @@ -336,7 +451,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroupArgs']]] property_groups: Describes the execution property groups. """ - pulumi.set(__self__, "property_groups", property_groups) + ApplicationApplicationConfigurationEnvironmentPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + property_groups=property_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + property_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroupArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if property_groups is None and 'propertyGroups' in kwargs: + property_groups = kwargs['propertyGroups'] + if property_groups is None: + raise TypeError("Missing 'property_groups' argument") + + _setter("property_groups", property_groups) @property @pulumi.getter(name="propertyGroups") @@ -360,8 +490,29 @@ def __init__(__self__, *, :param pulumi.Input[str] property_group_id: The key of the application execution property key-value map. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] property_map: Application execution property key-value map. """ - pulumi.set(__self__, "property_group_id", property_group_id) - pulumi.set(__self__, "property_map", property_map) + ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + property_group_id=property_group_id, + property_map=property_map, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + property_group_id: Optional[pulumi.Input[str]] = None, + property_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if property_group_id is None and 'propertyGroupId' in kwargs: + property_group_id = kwargs['propertyGroupId'] + if property_group_id is None: + raise TypeError("Missing 'property_group_id' argument") + if property_map is None and 'propertyMap' in kwargs: + property_map = kwargs['propertyMap'] + if property_map is None: + raise TypeError("Missing 'property_map' argument") + + _setter("property_group_id", property_group_id) + _setter("property_map", property_map) @property @pulumi.getter(name="propertyGroupId") @@ -399,12 +550,33 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfigurationArgs'] monitoring_configuration: Describes configuration parameters for CloudWatch logging for an application. :param pulumi.Input['ApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfigurationArgs'] parallelism_configuration: Describes parameters for how an application executes multiple tasks simultaneously. """ + ApplicationApplicationConfigurationFlinkApplicationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + checkpoint_configuration=checkpoint_configuration, + monitoring_configuration=monitoring_configuration, + parallelism_configuration=parallelism_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + checkpoint_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationFlinkApplicationConfigurationCheckpointConfigurationArgs']] = None, + monitoring_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfigurationArgs']] = None, + parallelism_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if checkpoint_configuration is None and 'checkpointConfiguration' in kwargs: + checkpoint_configuration = kwargs['checkpointConfiguration'] + if monitoring_configuration is None and 'monitoringConfiguration' in kwargs: + monitoring_configuration = kwargs['monitoringConfiguration'] + if parallelism_configuration is None and 'parallelismConfiguration' in kwargs: + parallelism_configuration = kwargs['parallelismConfiguration'] + if checkpoint_configuration is not None: - pulumi.set(__self__, "checkpoint_configuration", checkpoint_configuration) + _setter("checkpoint_configuration", checkpoint_configuration) if monitoring_configuration is not None: - pulumi.set(__self__, "monitoring_configuration", monitoring_configuration) + _setter("monitoring_configuration", monitoring_configuration) if parallelism_configuration is not None: - pulumi.set(__self__, "parallelism_configuration", parallelism_configuration) + _setter("parallelism_configuration", parallelism_configuration) @property @pulumi.getter(name="checkpointConfiguration") @@ -459,13 +631,40 @@ def __init__(__self__, *, :param pulumi.Input[bool] checkpointing_enabled: Describes whether checkpointing is enabled for a Flink-based Kinesis Data Analytics application. :param pulumi.Input[int] min_pause_between_checkpoints: Describes the minimum time in milliseconds after a checkpoint operation completes that a new checkpoint operation can start. """ - pulumi.set(__self__, "configuration_type", configuration_type) + ApplicationApplicationConfigurationFlinkApplicationConfigurationCheckpointConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_type=configuration_type, + checkpoint_interval=checkpoint_interval, + checkpointing_enabled=checkpointing_enabled, + min_pause_between_checkpoints=min_pause_between_checkpoints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_type: Optional[pulumi.Input[str]] = None, + checkpoint_interval: Optional[pulumi.Input[int]] = None, + checkpointing_enabled: Optional[pulumi.Input[bool]] = None, + min_pause_between_checkpoints: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_type is None and 'configurationType' in kwargs: + configuration_type = kwargs['configurationType'] + if configuration_type is None: + raise TypeError("Missing 'configuration_type' argument") + if checkpoint_interval is None and 'checkpointInterval' in kwargs: + checkpoint_interval = kwargs['checkpointInterval'] + if checkpointing_enabled is None and 'checkpointingEnabled' in kwargs: + checkpointing_enabled = kwargs['checkpointingEnabled'] + if min_pause_between_checkpoints is None and 'minPauseBetweenCheckpoints' in kwargs: + min_pause_between_checkpoints = kwargs['minPauseBetweenCheckpoints'] + + _setter("configuration_type", configuration_type) if checkpoint_interval is not None: - pulumi.set(__self__, "checkpoint_interval", checkpoint_interval) + _setter("checkpoint_interval", checkpoint_interval) if checkpointing_enabled is not None: - pulumi.set(__self__, "checkpointing_enabled", checkpointing_enabled) + _setter("checkpointing_enabled", checkpointing_enabled) if min_pause_between_checkpoints is not None: - pulumi.set(__self__, "min_pause_between_checkpoints", min_pause_between_checkpoints) + _setter("min_pause_between_checkpoints", min_pause_between_checkpoints) @property @pulumi.getter(name="configurationType") @@ -530,11 +729,34 @@ def __init__(__self__, *, :param pulumi.Input[str] log_level: Describes the verbosity of the CloudWatch Logs for an application. Valid values: `DEBUG`, `ERROR`, `INFO`, `WARN`. :param pulumi.Input[str] metrics_level: Describes the granularity of the CloudWatch Logs for an application. Valid values: `APPLICATION`, `OPERATOR`, `PARALLELISM`, `TASK`. """ - pulumi.set(__self__, "configuration_type", configuration_type) + ApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_type=configuration_type, + log_level=log_level, + metrics_level=metrics_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_type: Optional[pulumi.Input[str]] = None, + log_level: Optional[pulumi.Input[str]] = None, + metrics_level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_type is None and 'configurationType' in kwargs: + configuration_type = kwargs['configurationType'] + if configuration_type is None: + raise TypeError("Missing 'configuration_type' argument") + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if metrics_level is None and 'metricsLevel' in kwargs: + metrics_level = kwargs['metricsLevel'] + + _setter("configuration_type", configuration_type) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) if metrics_level is not None: - pulumi.set(__self__, "metrics_level", metrics_level) + _setter("metrics_level", metrics_level) @property @pulumi.getter(name="configurationType") @@ -586,13 +808,38 @@ def __init__(__self__, *, :param pulumi.Input[int] parallelism: Describes the initial number of parallel tasks that a Flink-based Kinesis Data Analytics application can perform. :param pulumi.Input[int] parallelism_per_kpu: Describes the number of parallel tasks that a Flink-based Kinesis Data Analytics application can perform per Kinesis Processing Unit (KPU) used by the application. """ - pulumi.set(__self__, "configuration_type", configuration_type) + ApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_type=configuration_type, + auto_scaling_enabled=auto_scaling_enabled, + parallelism=parallelism, + parallelism_per_kpu=parallelism_per_kpu, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_type: Optional[pulumi.Input[str]] = None, + auto_scaling_enabled: Optional[pulumi.Input[bool]] = None, + parallelism: Optional[pulumi.Input[int]] = None, + parallelism_per_kpu: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_type is None and 'configurationType' in kwargs: + configuration_type = kwargs['configurationType'] + if configuration_type is None: + raise TypeError("Missing 'configuration_type' argument") + if auto_scaling_enabled is None and 'autoScalingEnabled' in kwargs: + auto_scaling_enabled = kwargs['autoScalingEnabled'] + if parallelism_per_kpu is None and 'parallelismPerKpu' in kwargs: + parallelism_per_kpu = kwargs['parallelismPerKpu'] + + _setter("configuration_type", configuration_type) if auto_scaling_enabled is not None: - pulumi.set(__self__, "auto_scaling_enabled", auto_scaling_enabled) + _setter("auto_scaling_enabled", auto_scaling_enabled) if parallelism is not None: - pulumi.set(__self__, "parallelism", parallelism) + _setter("parallelism", parallelism) if parallelism_per_kpu is not None: - pulumi.set(__self__, "parallelism_per_kpu", parallelism_per_kpu) + _setter("parallelism_per_kpu", parallelism_per_kpu) @property @pulumi.getter(name="configurationType") @@ -652,10 +899,27 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationRunConfigurationApplicationRestoreConfigurationArgs'] application_restore_configuration: The restore behavior of a restarting application. :param pulumi.Input['ApplicationApplicationConfigurationRunConfigurationFlinkRunConfigurationArgs'] flink_run_configuration: The starting parameters for a Flink-based Kinesis Data Analytics application. """ + ApplicationApplicationConfigurationRunConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_restore_configuration=application_restore_configuration, + flink_run_configuration=flink_run_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_restore_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationRunConfigurationApplicationRestoreConfigurationArgs']] = None, + flink_run_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationRunConfigurationFlinkRunConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_restore_configuration is None and 'applicationRestoreConfiguration' in kwargs: + application_restore_configuration = kwargs['applicationRestoreConfiguration'] + if flink_run_configuration is None and 'flinkRunConfiguration' in kwargs: + flink_run_configuration = kwargs['flinkRunConfiguration'] + if application_restore_configuration is not None: - pulumi.set(__self__, "application_restore_configuration", application_restore_configuration) + _setter("application_restore_configuration", application_restore_configuration) if flink_run_configuration is not None: - pulumi.set(__self__, "flink_run_configuration", flink_run_configuration) + _setter("flink_run_configuration", flink_run_configuration) @property @pulumi.getter(name="applicationRestoreConfiguration") @@ -691,10 +955,27 @@ def __init__(__self__, *, :param pulumi.Input[str] application_restore_type: Specifies how the application should be restored. Valid values: `RESTORE_FROM_CUSTOM_SNAPSHOT`, `RESTORE_FROM_LATEST_SNAPSHOT`, `SKIP_RESTORE_FROM_SNAPSHOT`. :param pulumi.Input[str] snapshot_name: The identifier of an existing snapshot of application state to use to restart an application. The application uses this value if `RESTORE_FROM_CUSTOM_SNAPSHOT` is specified for `application_restore_type`. """ + ApplicationApplicationConfigurationRunConfigurationApplicationRestoreConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_restore_type=application_restore_type, + snapshot_name=snapshot_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_restore_type: Optional[pulumi.Input[str]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_restore_type is None and 'applicationRestoreType' in kwargs: + application_restore_type = kwargs['applicationRestoreType'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if application_restore_type is not None: - pulumi.set(__self__, "application_restore_type", application_restore_type) + _setter("application_restore_type", application_restore_type) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) @property @pulumi.getter(name="applicationRestoreType") @@ -728,8 +1009,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] allow_non_restored_state: When restoring from a snapshot, specifies whether the runtime is allowed to skip a state that cannot be mapped to the new program. Default is `false`. """ + ApplicationApplicationConfigurationRunConfigurationFlinkRunConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_non_restored_state=allow_non_restored_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_non_restored_state: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_non_restored_state is None and 'allowNonRestoredState' in kwargs: + allow_non_restored_state = kwargs['allowNonRestoredState'] + if allow_non_restored_state is not None: - pulumi.set(__self__, "allow_non_restored_state", allow_non_restored_state) + _setter("allow_non_restored_state", allow_non_restored_state) @property @pulumi.getter(name="allowNonRestoredState") @@ -755,12 +1049,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationOutputArgs']]] outputs: The destination streams used by the application. :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceArgs'] reference_data_source: The reference data source used by the application. """ + ApplicationApplicationConfigurationSqlApplicationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input=input, + outputs=outputs, + reference_data_source=reference_data_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputArgs']] = None, + outputs: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationOutputArgs']]]] = None, + reference_data_source: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reference_data_source is None and 'referenceDataSource' in kwargs: + reference_data_source = kwargs['referenceDataSource'] + if input is not None: - pulumi.set(__self__, "input", input) + _setter("input", input) if outputs is not None: - pulumi.set(__self__, "outputs", outputs) + _setter("outputs", outputs) if reference_data_source is not None: - pulumi.set(__self__, "reference_data_source", reference_data_source) + _setter("reference_data_source", reference_data_source) @property @pulumi.getter @@ -821,22 +1132,71 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisFirehoseInputArgs'] kinesis_firehose_input: If the streaming source is a Kinesis Data Firehose delivery stream, identifies the delivery stream's ARN. :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisStreamsInputArgs'] kinesis_streams_input: If the streaming source is a Kinesis data stream, identifies the stream's Amazon Resource Name (ARN). """ - pulumi.set(__self__, "input_schema", input_schema) - pulumi.set(__self__, "name_prefix", name_prefix) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_schema=input_schema, + name_prefix=name_prefix, + in_app_stream_names=in_app_stream_names, + input_id=input_id, + input_parallelism=input_parallelism, + input_processing_configuration=input_processing_configuration, + input_starting_position_configurations=input_starting_position_configurations, + kinesis_firehose_input=kinesis_firehose_input, + kinesis_streams_input=kinesis_streams_input, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_schema: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaArgs']] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + in_app_stream_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_id: Optional[pulumi.Input[str]] = None, + input_parallelism: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputParallelismArgs']] = None, + input_processing_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfigurationArgs']] = None, + input_starting_position_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputStartingPositionConfigurationArgs']]]] = None, + kinesis_firehose_input: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisFirehoseInputArgs']] = None, + kinesis_streams_input: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisStreamsInputArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_schema is None and 'inputSchema' in kwargs: + input_schema = kwargs['inputSchema'] + if input_schema is None: + raise TypeError("Missing 'input_schema' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if name_prefix is None: + raise TypeError("Missing 'name_prefix' argument") + if in_app_stream_names is None and 'inAppStreamNames' in kwargs: + in_app_stream_names = kwargs['inAppStreamNames'] + if input_id is None and 'inputId' in kwargs: + input_id = kwargs['inputId'] + if input_parallelism is None and 'inputParallelism' in kwargs: + input_parallelism = kwargs['inputParallelism'] + if input_processing_configuration is None and 'inputProcessingConfiguration' in kwargs: + input_processing_configuration = kwargs['inputProcessingConfiguration'] + if input_starting_position_configurations is None and 'inputStartingPositionConfigurations' in kwargs: + input_starting_position_configurations = kwargs['inputStartingPositionConfigurations'] + if kinesis_firehose_input is None and 'kinesisFirehoseInput' in kwargs: + kinesis_firehose_input = kwargs['kinesisFirehoseInput'] + if kinesis_streams_input is None and 'kinesisStreamsInput' in kwargs: + kinesis_streams_input = kwargs['kinesisStreamsInput'] + + _setter("input_schema", input_schema) + _setter("name_prefix", name_prefix) if in_app_stream_names is not None: - pulumi.set(__self__, "in_app_stream_names", in_app_stream_names) + _setter("in_app_stream_names", in_app_stream_names) if input_id is not None: - pulumi.set(__self__, "input_id", input_id) + _setter("input_id", input_id) if input_parallelism is not None: - pulumi.set(__self__, "input_parallelism", input_parallelism) + _setter("input_parallelism", input_parallelism) if input_processing_configuration is not None: - pulumi.set(__self__, "input_processing_configuration", input_processing_configuration) + _setter("input_processing_configuration", input_processing_configuration) if input_starting_position_configurations is not None: - pulumi.set(__self__, "input_starting_position_configurations", input_starting_position_configurations) + _setter("input_starting_position_configurations", input_starting_position_configurations) if kinesis_firehose_input is not None: - pulumi.set(__self__, "kinesis_firehose_input", kinesis_firehose_input) + _setter("kinesis_firehose_input", kinesis_firehose_input) if kinesis_streams_input is not None: - pulumi.set(__self__, "kinesis_streams_input", kinesis_streams_input) + _setter("kinesis_streams_input", kinesis_streams_input) @property @pulumi.getter(name="inputSchema") @@ -949,8 +1309,19 @@ def __init__(__self__, *, """ :param pulumi.Input[int] count: The number of in-application streams to create. """ + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputParallelismArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter @@ -972,7 +1343,22 @@ def __init__(__self__, *, """ :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfigurationInputLambdaProcessorArgs'] input_lambda_processor: Describes the Lambda function that is used to preprocess the records in the stream before being processed by your application code. """ - pulumi.set(__self__, "input_lambda_processor", input_lambda_processor) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_lambda_processor=input_lambda_processor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_lambda_processor: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfigurationInputLambdaProcessorArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_lambda_processor is None and 'inputLambdaProcessor' in kwargs: + input_lambda_processor = kwargs['inputLambdaProcessor'] + if input_lambda_processor is None: + raise TypeError("Missing 'input_lambda_processor' argument") + + _setter("input_lambda_processor", input_lambda_processor) @property @pulumi.getter(name="inputLambdaProcessor") @@ -994,7 +1380,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] resource_arn: The ARN of the Lambda function that operates on records in the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfigurationInputLambdaProcessorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1020,10 +1421,35 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatArgs'] record_format: Specifies the format of the records on the streaming source. :param pulumi.Input[str] record_encoding: Specifies the encoding of the records in the streaming source. For example, `UTF-8`. """ - pulumi.set(__self__, "record_columns", record_columns) - pulumi.set(__self__, "record_format", record_format) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_columns=record_columns, + record_format=record_format, + record_encoding=record_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_columns: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordColumnArgs']]]] = None, + record_format: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatArgs']] = None, + record_encoding: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_columns is None and 'recordColumns' in kwargs: + record_columns = kwargs['recordColumns'] + if record_columns is None: + raise TypeError("Missing 'record_columns' argument") + if record_format is None and 'recordFormat' in kwargs: + record_format = kwargs['recordFormat'] + if record_format is None: + raise TypeError("Missing 'record_format' argument") + if record_encoding is None and 'recordEncoding' in kwargs: + record_encoding = kwargs['recordEncoding'] + + _setter("record_columns", record_columns) + _setter("record_format", record_format) if record_encoding is not None: - pulumi.set(__self__, "record_encoding", record_encoding) + _setter("record_encoding", record_encoding) @property @pulumi.getter(name="recordColumns") @@ -1073,10 +1499,31 @@ def __init__(__self__, *, :param pulumi.Input[str] sql_type: The type of column created in the in-application input stream or reference table. :param pulumi.Input[str] mapping: A reference to the data element in the streaming input or the reference data source. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_type", sql_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_type=sql_type, + mapping=mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + sql_type: Optional[pulumi.Input[str]] = None, + mapping: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if sql_type is None and 'sqlType' in kwargs: + sql_type = kwargs['sqlType'] + if sql_type is None: + raise TypeError("Missing 'sql_type' argument") + + _setter("name", name) + _setter("sql_type", sql_type) if mapping is not None: - pulumi.set(__self__, "mapping", mapping) + _setter("mapping", mapping) @property @pulumi.getter @@ -1124,8 +1571,29 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersArgs'] mapping_parameters: Provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source. :param pulumi.Input[str] record_format_type: The type of record format. Valid values: `CSV`, `JSON`. """ - pulumi.set(__self__, "mapping_parameters", mapping_parameters) - pulumi.set(__self__, "record_format_type", record_format_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mapping_parameters=mapping_parameters, + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mapping_parameters: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersArgs']] = None, + record_format_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mapping_parameters is None and 'mappingParameters' in kwargs: + mapping_parameters = kwargs['mappingParameters'] + if mapping_parameters is None: + raise TypeError("Missing 'mapping_parameters' argument") + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if record_format_type is None: + raise TypeError("Missing 'record_format_type' argument") + + _setter("mapping_parameters", mapping_parameters) + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="mappingParameters") @@ -1161,10 +1629,27 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersCsvMappingParametersArgs'] csv_mapping_parameters: Provides additional mapping information when the record format uses delimiters (for example, CSV). :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersJsonMappingParametersArgs'] json_mapping_parameters: Provides additional mapping information when JSON is the record format on the streaming source. """ + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv_mapping_parameters=csv_mapping_parameters, + json_mapping_parameters=json_mapping_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv_mapping_parameters: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersCsvMappingParametersArgs']] = None, + json_mapping_parameters: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersJsonMappingParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv_mapping_parameters is None and 'csvMappingParameters' in kwargs: + csv_mapping_parameters = kwargs['csvMappingParameters'] + if json_mapping_parameters is None and 'jsonMappingParameters' in kwargs: + json_mapping_parameters = kwargs['jsonMappingParameters'] + if csv_mapping_parameters is not None: - pulumi.set(__self__, "csv_mapping_parameters", csv_mapping_parameters) + _setter("csv_mapping_parameters", csv_mapping_parameters) if json_mapping_parameters is not None: - pulumi.set(__self__, "json_mapping_parameters", json_mapping_parameters) + _setter("json_mapping_parameters", json_mapping_parameters) @property @pulumi.getter(name="csvMappingParameters") @@ -1200,8 +1685,29 @@ def __init__(__self__, *, :param pulumi.Input[str] record_column_delimiter: The column delimiter. For example, in a CSV format, a comma (`,`) is the typical column delimiter. :param pulumi.Input[str] record_row_delimiter: The row delimiter. For example, in a CSV format, `\\n` is the typical row delimiter. """ - pulumi.set(__self__, "record_column_delimiter", record_column_delimiter) - pulumi.set(__self__, "record_row_delimiter", record_row_delimiter) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersCsvMappingParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_column_delimiter=record_column_delimiter, + record_row_delimiter=record_row_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_column_delimiter: Optional[pulumi.Input[str]] = None, + record_row_delimiter: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_column_delimiter is None and 'recordColumnDelimiter' in kwargs: + record_column_delimiter = kwargs['recordColumnDelimiter'] + if record_column_delimiter is None: + raise TypeError("Missing 'record_column_delimiter' argument") + if record_row_delimiter is None and 'recordRowDelimiter' in kwargs: + record_row_delimiter = kwargs['recordRowDelimiter'] + if record_row_delimiter is None: + raise TypeError("Missing 'record_row_delimiter' argument") + + _setter("record_column_delimiter", record_column_delimiter) + _setter("record_row_delimiter", record_row_delimiter) @property @pulumi.getter(name="recordColumnDelimiter") @@ -1235,7 +1741,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] record_row_path: The path to the top-level parent that contains the records. """ - pulumi.set(__self__, "record_row_path", record_row_path) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersJsonMappingParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_row_path=record_row_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_row_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_row_path is None and 'recordRowPath' in kwargs: + record_row_path = kwargs['recordRowPath'] + if record_row_path is None: + raise TypeError("Missing 'record_row_path' argument") + + _setter("record_row_path", record_row_path) @property @pulumi.getter(name="recordRowPath") @@ -1257,8 +1778,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] input_starting_position: The starting position on the stream. Valid values: `LAST_STOPPED_POINT`, `NOW`, `TRIM_HORIZON`. """ + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputStartingPositionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_starting_position=input_starting_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_starting_position: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_starting_position is None and 'inputStartingPosition' in kwargs: + input_starting_position = kwargs['inputStartingPosition'] + if input_starting_position is not None: - pulumi.set(__self__, "input_starting_position", input_starting_position) + _setter("input_starting_position", input_starting_position) @property @pulumi.getter(name="inputStartingPosition") @@ -1280,7 +1814,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] resource_arn: The ARN of the delivery stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisFirehoseInputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1302,7 +1851,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] resource_arn: The ARN of the input Kinesis data stream to read. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisStreamsInputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1333,16 +1897,51 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisStreamsOutputArgs'] kinesis_streams_output: Identifies a Kinesis data stream as the destination. :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationOutputLambdaOutputArgs'] lambda_output: Identifies a Lambda function as the destination. """ - pulumi.set(__self__, "destination_schema", destination_schema) - pulumi.set(__self__, "name", name) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_schema=destination_schema, + name=name, + kinesis_firehose_output=kinesis_firehose_output, + kinesis_streams_output=kinesis_streams_output, + lambda_output=lambda_output, + output_id=output_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_schema: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationOutputDestinationSchemaArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + kinesis_firehose_output: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisFirehoseOutputArgs']] = None, + kinesis_streams_output: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisStreamsOutputArgs']] = None, + lambda_output: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationOutputLambdaOutputArgs']] = None, + output_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_schema is None and 'destinationSchema' in kwargs: + destination_schema = kwargs['destinationSchema'] + if destination_schema is None: + raise TypeError("Missing 'destination_schema' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if kinesis_firehose_output is None and 'kinesisFirehoseOutput' in kwargs: + kinesis_firehose_output = kwargs['kinesisFirehoseOutput'] + if kinesis_streams_output is None and 'kinesisStreamsOutput' in kwargs: + kinesis_streams_output = kwargs['kinesisStreamsOutput'] + if lambda_output is None and 'lambdaOutput' in kwargs: + lambda_output = kwargs['lambdaOutput'] + if output_id is None and 'outputId' in kwargs: + output_id = kwargs['outputId'] + + _setter("destination_schema", destination_schema) + _setter("name", name) if kinesis_firehose_output is not None: - pulumi.set(__self__, "kinesis_firehose_output", kinesis_firehose_output) + _setter("kinesis_firehose_output", kinesis_firehose_output) if kinesis_streams_output is not None: - pulumi.set(__self__, "kinesis_streams_output", kinesis_streams_output) + _setter("kinesis_streams_output", kinesis_streams_output) if lambda_output is not None: - pulumi.set(__self__, "lambda_output", lambda_output) + _setter("lambda_output", lambda_output) if output_id is not None: - pulumi.set(__self__, "output_id", output_id) + _setter("output_id", output_id) @property @pulumi.getter(name="destinationSchema") @@ -1421,7 +2020,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] record_format_type: Specifies the format of the records on the output stream. Valid values: `CSV`, `JSON`. """ - pulumi.set(__self__, "record_format_type", record_format_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutputDestinationSchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_format_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if record_format_type is None: + raise TypeError("Missing 'record_format_type' argument") + + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="recordFormatType") @@ -1443,7 +2057,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] resource_arn: The ARN of the destination delivery stream to write to. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisFirehoseOutputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1465,7 +2094,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] resource_arn: The ARN of the destination Kinesis data stream to write to. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisStreamsOutputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1487,7 +2131,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] resource_arn: The ARN of the destination Lambda function to write to. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutputLambdaOutputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1514,11 +2173,42 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceS3ReferenceDataSourceArgs'] s3_reference_data_source: Identifies the S3 bucket and object that contains the reference data. :param pulumi.Input[str] table_name: The name of the in-application table to create. """ - pulumi.set(__self__, "reference_schema", reference_schema) - pulumi.set(__self__, "s3_reference_data_source", s3_reference_data_source) - pulumi.set(__self__, "table_name", table_name) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + reference_schema=reference_schema, + s3_reference_data_source=s3_reference_data_source, + table_name=table_name, + reference_id=reference_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reference_schema: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaArgs']] = None, + s3_reference_data_source: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceS3ReferenceDataSourceArgs']] = None, + table_name: Optional[pulumi.Input[str]] = None, + reference_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reference_schema is None and 'referenceSchema' in kwargs: + reference_schema = kwargs['referenceSchema'] + if reference_schema is None: + raise TypeError("Missing 'reference_schema' argument") + if s3_reference_data_source is None and 's3ReferenceDataSource' in kwargs: + s3_reference_data_source = kwargs['s3ReferenceDataSource'] + if s3_reference_data_source is None: + raise TypeError("Missing 's3_reference_data_source' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if reference_id is None and 'referenceId' in kwargs: + reference_id = kwargs['referenceId'] + + _setter("reference_schema", reference_schema) + _setter("s3_reference_data_source", s3_reference_data_source) + _setter("table_name", table_name) if reference_id is not None: - pulumi.set(__self__, "reference_id", reference_id) + _setter("reference_id", reference_id) @property @pulumi.getter(name="referenceSchema") @@ -1579,10 +2269,35 @@ def __init__(__self__, *, The `s3_reference_data_source` object supports the following: """ - pulumi.set(__self__, "record_columns", record_columns) - pulumi.set(__self__, "record_format", record_format) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_columns=record_columns, + record_format=record_format, + record_encoding=record_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_columns: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordColumnArgs']]]] = None, + record_format: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatArgs']] = None, + record_encoding: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_columns is None and 'recordColumns' in kwargs: + record_columns = kwargs['recordColumns'] + if record_columns is None: + raise TypeError("Missing 'record_columns' argument") + if record_format is None and 'recordFormat' in kwargs: + record_format = kwargs['recordFormat'] + if record_format is None: + raise TypeError("Missing 'record_format' argument") + if record_encoding is None and 'recordEncoding' in kwargs: + record_encoding = kwargs['recordEncoding'] + + _setter("record_columns", record_columns) + _setter("record_format", record_format) if record_encoding is not None: - pulumi.set(__self__, "record_encoding", record_encoding) + _setter("record_encoding", record_encoding) @property @pulumi.getter(name="recordColumns") @@ -1634,10 +2349,31 @@ def __init__(__self__, *, :param pulumi.Input[str] sql_type: The type of column created in the in-application input stream or reference table. :param pulumi.Input[str] mapping: A reference to the data element in the streaming input or the reference data source. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_type", sql_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_type=sql_type, + mapping=mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + sql_type: Optional[pulumi.Input[str]] = None, + mapping: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if sql_type is None and 'sqlType' in kwargs: + sql_type = kwargs['sqlType'] + if sql_type is None: + raise TypeError("Missing 'sql_type' argument") + + _setter("name", name) + _setter("sql_type", sql_type) if mapping is not None: - pulumi.set(__self__, "mapping", mapping) + _setter("mapping", mapping) @property @pulumi.getter @@ -1685,8 +2421,29 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersArgs'] mapping_parameters: Provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source. :param pulumi.Input[str] record_format_type: The type of record format. Valid values: `CSV`, `JSON`. """ - pulumi.set(__self__, "mapping_parameters", mapping_parameters) - pulumi.set(__self__, "record_format_type", record_format_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mapping_parameters=mapping_parameters, + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mapping_parameters: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersArgs']] = None, + record_format_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mapping_parameters is None and 'mappingParameters' in kwargs: + mapping_parameters = kwargs['mappingParameters'] + if mapping_parameters is None: + raise TypeError("Missing 'mapping_parameters' argument") + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if record_format_type is None: + raise TypeError("Missing 'record_format_type' argument") + + _setter("mapping_parameters", mapping_parameters) + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="mappingParameters") @@ -1722,10 +2479,27 @@ def __init__(__self__, *, :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersCsvMappingParametersArgs'] csv_mapping_parameters: Provides additional mapping information when the record format uses delimiters (for example, CSV). :param pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersJsonMappingParametersArgs'] json_mapping_parameters: Provides additional mapping information when JSON is the record format on the streaming source. """ + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv_mapping_parameters=csv_mapping_parameters, + json_mapping_parameters=json_mapping_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv_mapping_parameters: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersCsvMappingParametersArgs']] = None, + json_mapping_parameters: Optional[pulumi.Input['ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersJsonMappingParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv_mapping_parameters is None and 'csvMappingParameters' in kwargs: + csv_mapping_parameters = kwargs['csvMappingParameters'] + if json_mapping_parameters is None and 'jsonMappingParameters' in kwargs: + json_mapping_parameters = kwargs['jsonMappingParameters'] + if csv_mapping_parameters is not None: - pulumi.set(__self__, "csv_mapping_parameters", csv_mapping_parameters) + _setter("csv_mapping_parameters", csv_mapping_parameters) if json_mapping_parameters is not None: - pulumi.set(__self__, "json_mapping_parameters", json_mapping_parameters) + _setter("json_mapping_parameters", json_mapping_parameters) @property @pulumi.getter(name="csvMappingParameters") @@ -1761,8 +2535,29 @@ def __init__(__self__, *, :param pulumi.Input[str] record_column_delimiter: The column delimiter. For example, in a CSV format, a comma (`,`) is the typical column delimiter. :param pulumi.Input[str] record_row_delimiter: The row delimiter. For example, in a CSV format, `\\n` is the typical row delimiter. """ - pulumi.set(__self__, "record_column_delimiter", record_column_delimiter) - pulumi.set(__self__, "record_row_delimiter", record_row_delimiter) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersCsvMappingParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_column_delimiter=record_column_delimiter, + record_row_delimiter=record_row_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_column_delimiter: Optional[pulumi.Input[str]] = None, + record_row_delimiter: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_column_delimiter is None and 'recordColumnDelimiter' in kwargs: + record_column_delimiter = kwargs['recordColumnDelimiter'] + if record_column_delimiter is None: + raise TypeError("Missing 'record_column_delimiter' argument") + if record_row_delimiter is None and 'recordRowDelimiter' in kwargs: + record_row_delimiter = kwargs['recordRowDelimiter'] + if record_row_delimiter is None: + raise TypeError("Missing 'record_row_delimiter' argument") + + _setter("record_column_delimiter", record_column_delimiter) + _setter("record_row_delimiter", record_row_delimiter) @property @pulumi.getter(name="recordColumnDelimiter") @@ -1796,7 +2591,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] record_row_path: The path to the top-level parent that contains the records. """ - pulumi.set(__self__, "record_row_path", record_row_path) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersJsonMappingParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_row_path=record_row_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_row_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_row_path is None and 'recordRowPath' in kwargs: + record_row_path = kwargs['recordRowPath'] + if record_row_path is None: + raise TypeError("Missing 'record_row_path' argument") + + _setter("record_row_path", record_row_path) @property @pulumi.getter(name="recordRowPath") @@ -1820,8 +2630,29 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_arn: The ARN for the S3 bucket containing the application code. :param pulumi.Input[str] file_key: The file key for the object containing the application code. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "file_key", file_key) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceS3ReferenceDataSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + file_key=file_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + file_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if file_key is None and 'fileKey' in kwargs: + file_key = kwargs['fileKey'] + if file_key is None: + raise TypeError("Missing 'file_key' argument") + + _setter("bucket_arn", bucket_arn) + _setter("file_key", file_key) @property @pulumi.getter(name="bucketArn") @@ -1859,12 +2690,41 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The Security Group IDs used by the VPC configuration. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The Subnet IDs used by the VPC configuration. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) + ApplicationApplicationConfigurationVpcConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_configuration_id=vpc_configuration_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_configuration_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_configuration_id is None and 'vpcConfigurationId' in kwargs: + vpc_configuration_id = kwargs['vpcConfigurationId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_configuration_id is not None: - pulumi.set(__self__, "vpc_configuration_id", vpc_configuration_id) + _setter("vpc_configuration_id", vpc_configuration_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") @@ -1917,9 +2777,28 @@ def __init__(__self__, *, """ :param pulumi.Input[str] log_stream_arn: The ARN of the CloudWatch log stream to receive application messages. """ - pulumi.set(__self__, "log_stream_arn", log_stream_arn) + ApplicationCloudwatchLoggingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_stream_arn=log_stream_arn, + cloudwatch_logging_option_id=cloudwatch_logging_option_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_stream_arn: Optional[pulumi.Input[str]] = None, + cloudwatch_logging_option_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_stream_arn is None and 'logStreamArn' in kwargs: + log_stream_arn = kwargs['logStreamArn'] + if log_stream_arn is None: + raise TypeError("Missing 'log_stream_arn' argument") + if cloudwatch_logging_option_id is None and 'cloudwatchLoggingOptionId' in kwargs: + cloudwatch_logging_option_id = kwargs['cloudwatchLoggingOptionId'] + + _setter("log_stream_arn", log_stream_arn) if cloudwatch_logging_option_id is not None: - pulumi.set(__self__, "cloudwatch_logging_option_id", cloudwatch_logging_option_id) + _setter("cloudwatch_logging_option_id", cloudwatch_logging_option_id) @property @pulumi.getter(name="logStreamArn") diff --git a/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py b/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py index 6260457fcde..df2138a4843 100644 --- a/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py +++ b/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,22 +37,65 @@ def __init__(__self__, *, :param pulumi.Input[bool] start_application: Whether to start or stop the application. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the application. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level """ - pulumi.set(__self__, "runtime_environment", runtime_environment) - pulumi.set(__self__, "service_execution_role", service_execution_role) + ApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + runtime_environment=runtime_environment, + service_execution_role=service_execution_role, + application_configuration=application_configuration, + cloudwatch_logging_options=cloudwatch_logging_options, + description=description, + force_stop=force_stop, + name=name, + start_application=start_application, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + runtime_environment: Optional[pulumi.Input[str]] = None, + service_execution_role: Optional[pulumi.Input[str]] = None, + application_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationArgs']] = None, + cloudwatch_logging_options: Optional[pulumi.Input['ApplicationCloudwatchLoggingOptionsArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + force_stop: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + start_application: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if runtime_environment is None and 'runtimeEnvironment' in kwargs: + runtime_environment = kwargs['runtimeEnvironment'] + if runtime_environment is None: + raise TypeError("Missing 'runtime_environment' argument") + if service_execution_role is None and 'serviceExecutionRole' in kwargs: + service_execution_role = kwargs['serviceExecutionRole'] + if service_execution_role is None: + raise TypeError("Missing 'service_execution_role' argument") + if application_configuration is None and 'applicationConfiguration' in kwargs: + application_configuration = kwargs['applicationConfiguration'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if force_stop is None and 'forceStop' in kwargs: + force_stop = kwargs['forceStop'] + if start_application is None and 'startApplication' in kwargs: + start_application = kwargs['startApplication'] + + _setter("runtime_environment", runtime_environment) + _setter("service_execution_role", service_execution_role) if application_configuration is not None: - pulumi.set(__self__, "application_configuration", application_configuration) + _setter("application_configuration", application_configuration) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_stop is not None: - pulumi.set(__self__, "force_stop", force_stop) + _setter("force_stop", force_stop) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if start_application is not None: - pulumi.set(__self__, "start_application", start_application) + _setter("start_application", start_application) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="runtimeEnvironment") @@ -199,39 +242,98 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] version_id: The current application version. Kinesis Data Analytics updates the `version_id` each time the application is updated. """ + _ApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_configuration=application_configuration, + arn=arn, + cloudwatch_logging_options=cloudwatch_logging_options, + create_timestamp=create_timestamp, + description=description, + force_stop=force_stop, + last_update_timestamp=last_update_timestamp, + name=name, + runtime_environment=runtime_environment, + service_execution_role=service_execution_role, + start_application=start_application, + status=status, + tags=tags, + tags_all=tags_all, + version_id=version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_configuration: Optional[pulumi.Input['ApplicationApplicationConfigurationArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['ApplicationCloudwatchLoggingOptionsArgs']] = None, + create_timestamp: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + force_stop: Optional[pulumi.Input[bool]] = None, + last_update_timestamp: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + runtime_environment: Optional[pulumi.Input[str]] = None, + service_execution_role: Optional[pulumi.Input[str]] = None, + start_application: Optional[pulumi.Input[bool]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_id: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_configuration is None and 'applicationConfiguration' in kwargs: + application_configuration = kwargs['applicationConfiguration'] + if cloudwatch_logging_options is None and 'cloudwatchLoggingOptions' in kwargs: + cloudwatch_logging_options = kwargs['cloudwatchLoggingOptions'] + if create_timestamp is None and 'createTimestamp' in kwargs: + create_timestamp = kwargs['createTimestamp'] + if force_stop is None and 'forceStop' in kwargs: + force_stop = kwargs['forceStop'] + if last_update_timestamp is None and 'lastUpdateTimestamp' in kwargs: + last_update_timestamp = kwargs['lastUpdateTimestamp'] + if runtime_environment is None and 'runtimeEnvironment' in kwargs: + runtime_environment = kwargs['runtimeEnvironment'] + if service_execution_role is None and 'serviceExecutionRole' in kwargs: + service_execution_role = kwargs['serviceExecutionRole'] + if start_application is None and 'startApplication' in kwargs: + start_application = kwargs['startApplication'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + if application_configuration is not None: - pulumi.set(__self__, "application_configuration", application_configuration) + _setter("application_configuration", application_configuration) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cloudwatch_logging_options is not None: - pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + _setter("cloudwatch_logging_options", cloudwatch_logging_options) if create_timestamp is not None: - pulumi.set(__self__, "create_timestamp", create_timestamp) + _setter("create_timestamp", create_timestamp) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_stop is not None: - pulumi.set(__self__, "force_stop", force_stop) + _setter("force_stop", force_stop) if last_update_timestamp is not None: - pulumi.set(__self__, "last_update_timestamp", last_update_timestamp) + _setter("last_update_timestamp", last_update_timestamp) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if runtime_environment is not None: - pulumi.set(__self__, "runtime_environment", runtime_environment) + _setter("runtime_environment", runtime_environment) if service_execution_role is not None: - pulumi.set(__self__, "service_execution_role", service_execution_role) + _setter("service_execution_role", service_execution_role) if start_application is not None: - pulumi.set(__self__, "start_application", start_application) + _setter("start_application", start_application) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) @property @pulumi.getter(name="applicationConfiguration") @@ -878,6 +980,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -901,7 +1007,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ApplicationArgs.__new__(ApplicationArgs) + application_configuration = _utilities.configure(application_configuration, ApplicationApplicationConfigurationArgs, True) __props__.__dict__["application_configuration"] = application_configuration + cloudwatch_logging_options = _utilities.configure(cloudwatch_logging_options, ApplicationCloudwatchLoggingOptionsArgs, True) __props__.__dict__["cloudwatch_logging_options"] = cloudwatch_logging_options __props__.__dict__["description"] = description __props__.__dict__["force_stop"] = force_stop diff --git a/sdk/python/pulumi_aws/kinesisanalyticsv2/application_snapshot.py b/sdk/python/pulumi_aws/kinesisanalyticsv2/application_snapshot.py index 7c3ea324d83..92ba3b962a3 100644 --- a/sdk/python/pulumi_aws/kinesisanalyticsv2/application_snapshot.py +++ b/sdk/python/pulumi_aws/kinesisanalyticsv2/application_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApplicationSnapshotArgs', 'ApplicationSnapshot'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] application_name: The name of an existing Kinesis Analytics v2 Application. Note that the application must be running for a snapshot to be created. :param pulumi.Input[str] snapshot_name: The name of the application snapshot. """ - pulumi.set(__self__, "application_name", application_name) - pulumi.set(__self__, "snapshot_name", snapshot_name) + ApplicationSnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_name=application_name, + snapshot_name=snapshot_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_name: Optional[pulumi.Input[str]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_name is None and 'applicationName' in kwargs: + application_name = kwargs['applicationName'] + if application_name is None: + raise TypeError("Missing 'application_name' argument") + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if snapshot_name is None: + raise TypeError("Missing 'snapshot_name' argument") + + _setter("application_name", application_name) + _setter("snapshot_name", snapshot_name) @property @pulumi.getter(name="applicationName") @@ -63,14 +84,39 @@ def __init__(__self__, *, :param pulumi.Input[str] snapshot_creation_timestamp: The timestamp of the application snapshot. :param pulumi.Input[str] snapshot_name: The name of the application snapshot. """ + _ApplicationSnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_name=application_name, + application_version_id=application_version_id, + snapshot_creation_timestamp=snapshot_creation_timestamp, + snapshot_name=snapshot_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_name: Optional[pulumi.Input[str]] = None, + application_version_id: Optional[pulumi.Input[int]] = None, + snapshot_creation_timestamp: Optional[pulumi.Input[str]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_name is None and 'applicationName' in kwargs: + application_name = kwargs['applicationName'] + if application_version_id is None and 'applicationVersionId' in kwargs: + application_version_id = kwargs['applicationVersionId'] + if snapshot_creation_timestamp is None and 'snapshotCreationTimestamp' in kwargs: + snapshot_creation_timestamp = kwargs['snapshotCreationTimestamp'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if application_name is not None: - pulumi.set(__self__, "application_name", application_name) + _setter("application_name", application_name) if application_version_id is not None: - pulumi.set(__self__, "application_version_id", application_version_id) + _setter("application_version_id", application_version_id) if snapshot_creation_timestamp is not None: - pulumi.set(__self__, "snapshot_creation_timestamp", snapshot_creation_timestamp) + _setter("snapshot_creation_timestamp", snapshot_creation_timestamp) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) @property @pulumi.getter(name="applicationName") @@ -196,6 +242,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationSnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kinesisanalyticsv2/outputs.py b/sdk/python/pulumi_aws/kinesisanalyticsv2/outputs.py index f96086c3f02..fc724e5973a 100644 --- a/sdk/python/pulumi_aws/kinesisanalyticsv2/outputs.py +++ b/sdk/python/pulumi_aws/kinesisanalyticsv2/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -104,19 +104,58 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationArgs' sql_application_configuration: The configuration of a SQL-based application. :param 'ApplicationApplicationConfigurationVpcConfigurationArgs' vpc_configuration: The VPC configuration of a Flink-based application. """ - pulumi.set(__self__, "application_code_configuration", application_code_configuration) + ApplicationApplicationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_code_configuration=application_code_configuration, + application_snapshot_configuration=application_snapshot_configuration, + environment_properties=environment_properties, + flink_application_configuration=flink_application_configuration, + run_configuration=run_configuration, + sql_application_configuration=sql_application_configuration, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_code_configuration: Optional['outputs.ApplicationApplicationConfigurationApplicationCodeConfiguration'] = None, + application_snapshot_configuration: Optional['outputs.ApplicationApplicationConfigurationApplicationSnapshotConfiguration'] = None, + environment_properties: Optional['outputs.ApplicationApplicationConfigurationEnvironmentProperties'] = None, + flink_application_configuration: Optional['outputs.ApplicationApplicationConfigurationFlinkApplicationConfiguration'] = None, + run_configuration: Optional['outputs.ApplicationApplicationConfigurationRunConfiguration'] = None, + sql_application_configuration: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfiguration'] = None, + vpc_configuration: Optional['outputs.ApplicationApplicationConfigurationVpcConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_code_configuration is None and 'applicationCodeConfiguration' in kwargs: + application_code_configuration = kwargs['applicationCodeConfiguration'] + if application_code_configuration is None: + raise TypeError("Missing 'application_code_configuration' argument") + if application_snapshot_configuration is None and 'applicationSnapshotConfiguration' in kwargs: + application_snapshot_configuration = kwargs['applicationSnapshotConfiguration'] + if environment_properties is None and 'environmentProperties' in kwargs: + environment_properties = kwargs['environmentProperties'] + if flink_application_configuration is None and 'flinkApplicationConfiguration' in kwargs: + flink_application_configuration = kwargs['flinkApplicationConfiguration'] + if run_configuration is None and 'runConfiguration' in kwargs: + run_configuration = kwargs['runConfiguration'] + if sql_application_configuration is None and 'sqlApplicationConfiguration' in kwargs: + sql_application_configuration = kwargs['sqlApplicationConfiguration'] + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + + _setter("application_code_configuration", application_code_configuration) if application_snapshot_configuration is not None: - pulumi.set(__self__, "application_snapshot_configuration", application_snapshot_configuration) + _setter("application_snapshot_configuration", application_snapshot_configuration) if environment_properties is not None: - pulumi.set(__self__, "environment_properties", environment_properties) + _setter("environment_properties", environment_properties) if flink_application_configuration is not None: - pulumi.set(__self__, "flink_application_configuration", flink_application_configuration) + _setter("flink_application_configuration", flink_application_configuration) if run_configuration is not None: - pulumi.set(__self__, "run_configuration", run_configuration) + _setter("run_configuration", run_configuration) if sql_application_configuration is not None: - pulumi.set(__self__, "sql_application_configuration", sql_application_configuration) + _setter("sql_application_configuration", sql_application_configuration) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter(name="applicationCodeConfiguration") @@ -203,9 +242,28 @@ def __init__(__self__, *, :param str code_content_type: Specifies whether the code content is in text or zip format. Valid values: `PLAINTEXT`, `ZIPFILE`. :param 'ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs' code_content: The location and type of the application code. """ - pulumi.set(__self__, "code_content_type", code_content_type) + ApplicationApplicationConfigurationApplicationCodeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + code_content_type=code_content_type, + code_content=code_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code_content_type: Optional[str] = None, + code_content: Optional['outputs.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContent'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_content_type is None and 'codeContentType' in kwargs: + code_content_type = kwargs['codeContentType'] + if code_content_type is None: + raise TypeError("Missing 'code_content_type' argument") + if code_content is None and 'codeContent' in kwargs: + code_content = kwargs['codeContent'] + + _setter("code_content_type", code_content_type) if code_content is not None: - pulumi.set(__self__, "code_content", code_content) + _setter("code_content", code_content) @property @pulumi.getter(name="codeContentType") @@ -254,10 +312,27 @@ def __init__(__self__, *, The `s3_content_location` object supports the following: """ + ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContent._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_content_location=s3_content_location, + text_content=text_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_content_location: Optional['outputs.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocation'] = None, + text_content: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_content_location is None and 's3ContentLocation' in kwargs: + s3_content_location = kwargs['s3ContentLocation'] + if text_content is None and 'textContent' in kwargs: + text_content = kwargs['textContent'] + if s3_content_location is not None: - pulumi.set(__self__, "s3_content_location", s3_content_location) + _setter("s3_content_location", s3_content_location) if text_content is not None: - pulumi.set(__self__, "text_content", text_content) + _setter("text_content", text_content) @property @pulumi.getter(name="s3ContentLocation") @@ -310,10 +385,35 @@ def __init__(__self__, *, :param str file_key: The file key for the object containing the application code. :param str object_version: The version of the object containing the application code. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "file_key", file_key) + ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + file_key=file_key, + object_version=object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + file_key: Optional[str] = None, + object_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if file_key is None and 'fileKey' in kwargs: + file_key = kwargs['fileKey'] + if file_key is None: + raise TypeError("Missing 'file_key' argument") + if object_version is None and 'objectVersion' in kwargs: + object_version = kwargs['objectVersion'] + + _setter("bucket_arn", bucket_arn) + _setter("file_key", file_key) if object_version is not None: - pulumi.set(__self__, "object_version", object_version) + _setter("object_version", object_version) @property @pulumi.getter(name="bucketArn") @@ -364,7 +464,22 @@ def __init__(__self__, *, """ :param bool snapshots_enabled: Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application. """ - pulumi.set(__self__, "snapshots_enabled", snapshots_enabled) + ApplicationApplicationConfigurationApplicationSnapshotConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + snapshots_enabled=snapshots_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + snapshots_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if snapshots_enabled is None and 'snapshotsEnabled' in kwargs: + snapshots_enabled = kwargs['snapshotsEnabled'] + if snapshots_enabled is None: + raise TypeError("Missing 'snapshots_enabled' argument") + + _setter("snapshots_enabled", snapshots_enabled) @property @pulumi.getter(name="snapshotsEnabled") @@ -399,7 +514,22 @@ def __init__(__self__, *, """ :param Sequence['ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroupArgs'] property_groups: Describes the execution property groups. """ - pulumi.set(__self__, "property_groups", property_groups) + ApplicationApplicationConfigurationEnvironmentProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + property_groups=property_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + property_groups: Optional[Sequence['outputs.ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroup']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if property_groups is None and 'propertyGroups' in kwargs: + property_groups = kwargs['propertyGroups'] + if property_groups is None: + raise TypeError("Missing 'property_groups' argument") + + _setter("property_groups", property_groups) @property @pulumi.getter(name="propertyGroups") @@ -438,8 +568,29 @@ def __init__(__self__, *, :param str property_group_id: The key of the application execution property key-value map. :param Mapping[str, str] property_map: Application execution property key-value map. """ - pulumi.set(__self__, "property_group_id", property_group_id) - pulumi.set(__self__, "property_map", property_map) + ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + property_group_id=property_group_id, + property_map=property_map, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + property_group_id: Optional[str] = None, + property_map: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if property_group_id is None and 'propertyGroupId' in kwargs: + property_group_id = kwargs['propertyGroupId'] + if property_group_id is None: + raise TypeError("Missing 'property_group_id' argument") + if property_map is None and 'propertyMap' in kwargs: + property_map = kwargs['propertyMap'] + if property_map is None: + raise TypeError("Missing 'property_map' argument") + + _setter("property_group_id", property_group_id) + _setter("property_map", property_map) @property @pulumi.getter(name="propertyGroupId") @@ -490,12 +641,33 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfigurationArgs' monitoring_configuration: Describes configuration parameters for CloudWatch logging for an application. :param 'ApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfigurationArgs' parallelism_configuration: Describes parameters for how an application executes multiple tasks simultaneously. """ + ApplicationApplicationConfigurationFlinkApplicationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + checkpoint_configuration=checkpoint_configuration, + monitoring_configuration=monitoring_configuration, + parallelism_configuration=parallelism_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + checkpoint_configuration: Optional['outputs.ApplicationApplicationConfigurationFlinkApplicationConfigurationCheckpointConfiguration'] = None, + monitoring_configuration: Optional['outputs.ApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfiguration'] = None, + parallelism_configuration: Optional['outputs.ApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if checkpoint_configuration is None and 'checkpointConfiguration' in kwargs: + checkpoint_configuration = kwargs['checkpointConfiguration'] + if monitoring_configuration is None and 'monitoringConfiguration' in kwargs: + monitoring_configuration = kwargs['monitoringConfiguration'] + if parallelism_configuration is None and 'parallelismConfiguration' in kwargs: + parallelism_configuration = kwargs['parallelismConfiguration'] + if checkpoint_configuration is not None: - pulumi.set(__self__, "checkpoint_configuration", checkpoint_configuration) + _setter("checkpoint_configuration", checkpoint_configuration) if monitoring_configuration is not None: - pulumi.set(__self__, "monitoring_configuration", monitoring_configuration) + _setter("monitoring_configuration", monitoring_configuration) if parallelism_configuration is not None: - pulumi.set(__self__, "parallelism_configuration", parallelism_configuration) + _setter("parallelism_configuration", parallelism_configuration) @property @pulumi.getter(name="checkpointConfiguration") @@ -561,13 +733,40 @@ def __init__(__self__, *, :param bool checkpointing_enabled: Describes whether checkpointing is enabled for a Flink-based Kinesis Data Analytics application. :param int min_pause_between_checkpoints: Describes the minimum time in milliseconds after a checkpoint operation completes that a new checkpoint operation can start. """ - pulumi.set(__self__, "configuration_type", configuration_type) + ApplicationApplicationConfigurationFlinkApplicationConfigurationCheckpointConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_type=configuration_type, + checkpoint_interval=checkpoint_interval, + checkpointing_enabled=checkpointing_enabled, + min_pause_between_checkpoints=min_pause_between_checkpoints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_type: Optional[str] = None, + checkpoint_interval: Optional[int] = None, + checkpointing_enabled: Optional[bool] = None, + min_pause_between_checkpoints: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_type is None and 'configurationType' in kwargs: + configuration_type = kwargs['configurationType'] + if configuration_type is None: + raise TypeError("Missing 'configuration_type' argument") + if checkpoint_interval is None and 'checkpointInterval' in kwargs: + checkpoint_interval = kwargs['checkpointInterval'] + if checkpointing_enabled is None and 'checkpointingEnabled' in kwargs: + checkpointing_enabled = kwargs['checkpointingEnabled'] + if min_pause_between_checkpoints is None and 'minPauseBetweenCheckpoints' in kwargs: + min_pause_between_checkpoints = kwargs['minPauseBetweenCheckpoints'] + + _setter("configuration_type", configuration_type) if checkpoint_interval is not None: - pulumi.set(__self__, "checkpoint_interval", checkpoint_interval) + _setter("checkpoint_interval", checkpoint_interval) if checkpointing_enabled is not None: - pulumi.set(__self__, "checkpointing_enabled", checkpointing_enabled) + _setter("checkpointing_enabled", checkpointing_enabled) if min_pause_between_checkpoints is not None: - pulumi.set(__self__, "min_pause_between_checkpoints", min_pause_between_checkpoints) + _setter("min_pause_between_checkpoints", min_pause_between_checkpoints) @property @pulumi.getter(name="configurationType") @@ -637,11 +836,34 @@ def __init__(__self__, *, :param str log_level: Describes the verbosity of the CloudWatch Logs for an application. Valid values: `DEBUG`, `ERROR`, `INFO`, `WARN`. :param str metrics_level: Describes the granularity of the CloudWatch Logs for an application. Valid values: `APPLICATION`, `OPERATOR`, `PARALLELISM`, `TASK`. """ - pulumi.set(__self__, "configuration_type", configuration_type) + ApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_type=configuration_type, + log_level=log_level, + metrics_level=metrics_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_type: Optional[str] = None, + log_level: Optional[str] = None, + metrics_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_type is None and 'configurationType' in kwargs: + configuration_type = kwargs['configurationType'] + if configuration_type is None: + raise TypeError("Missing 'configuration_type' argument") + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if metrics_level is None and 'metricsLevel' in kwargs: + metrics_level = kwargs['metricsLevel'] + + _setter("configuration_type", configuration_type) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) if metrics_level is not None: - pulumi.set(__self__, "metrics_level", metrics_level) + _setter("metrics_level", metrics_level) @property @pulumi.getter(name="configurationType") @@ -702,13 +924,38 @@ def __init__(__self__, *, :param int parallelism: Describes the initial number of parallel tasks that a Flink-based Kinesis Data Analytics application can perform. :param int parallelism_per_kpu: Describes the number of parallel tasks that a Flink-based Kinesis Data Analytics application can perform per Kinesis Processing Unit (KPU) used by the application. """ - pulumi.set(__self__, "configuration_type", configuration_type) + ApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_type=configuration_type, + auto_scaling_enabled=auto_scaling_enabled, + parallelism=parallelism, + parallelism_per_kpu=parallelism_per_kpu, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_type: Optional[str] = None, + auto_scaling_enabled: Optional[bool] = None, + parallelism: Optional[int] = None, + parallelism_per_kpu: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_type is None and 'configurationType' in kwargs: + configuration_type = kwargs['configurationType'] + if configuration_type is None: + raise TypeError("Missing 'configuration_type' argument") + if auto_scaling_enabled is None and 'autoScalingEnabled' in kwargs: + auto_scaling_enabled = kwargs['autoScalingEnabled'] + if parallelism_per_kpu is None and 'parallelismPerKpu' in kwargs: + parallelism_per_kpu = kwargs['parallelismPerKpu'] + + _setter("configuration_type", configuration_type) if auto_scaling_enabled is not None: - pulumi.set(__self__, "auto_scaling_enabled", auto_scaling_enabled) + _setter("auto_scaling_enabled", auto_scaling_enabled) if parallelism is not None: - pulumi.set(__self__, "parallelism", parallelism) + _setter("parallelism", parallelism) if parallelism_per_kpu is not None: - pulumi.set(__self__, "parallelism_per_kpu", parallelism_per_kpu) + _setter("parallelism_per_kpu", parallelism_per_kpu) @property @pulumi.getter(name="configurationType") @@ -771,10 +1018,27 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationRunConfigurationApplicationRestoreConfigurationArgs' application_restore_configuration: The restore behavior of a restarting application. :param 'ApplicationApplicationConfigurationRunConfigurationFlinkRunConfigurationArgs' flink_run_configuration: The starting parameters for a Flink-based Kinesis Data Analytics application. """ + ApplicationApplicationConfigurationRunConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_restore_configuration=application_restore_configuration, + flink_run_configuration=flink_run_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_restore_configuration: Optional['outputs.ApplicationApplicationConfigurationRunConfigurationApplicationRestoreConfiguration'] = None, + flink_run_configuration: Optional['outputs.ApplicationApplicationConfigurationRunConfigurationFlinkRunConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_restore_configuration is None and 'applicationRestoreConfiguration' in kwargs: + application_restore_configuration = kwargs['applicationRestoreConfiguration'] + if flink_run_configuration is None and 'flinkRunConfiguration' in kwargs: + flink_run_configuration = kwargs['flinkRunConfiguration'] + if application_restore_configuration is not None: - pulumi.set(__self__, "application_restore_configuration", application_restore_configuration) + _setter("application_restore_configuration", application_restore_configuration) if flink_run_configuration is not None: - pulumi.set(__self__, "flink_run_configuration", flink_run_configuration) + _setter("flink_run_configuration", flink_run_configuration) @property @pulumi.getter(name="applicationRestoreConfiguration") @@ -821,10 +1085,27 @@ def __init__(__self__, *, :param str application_restore_type: Specifies how the application should be restored. Valid values: `RESTORE_FROM_CUSTOM_SNAPSHOT`, `RESTORE_FROM_LATEST_SNAPSHOT`, `SKIP_RESTORE_FROM_SNAPSHOT`. :param str snapshot_name: The identifier of an existing snapshot of application state to use to restart an application. The application uses this value if `RESTORE_FROM_CUSTOM_SNAPSHOT` is specified for `application_restore_type`. """ + ApplicationApplicationConfigurationRunConfigurationApplicationRestoreConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_restore_type=application_restore_type, + snapshot_name=snapshot_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_restore_type: Optional[str] = None, + snapshot_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_restore_type is None and 'applicationRestoreType' in kwargs: + application_restore_type = kwargs['applicationRestoreType'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if application_restore_type is not None: - pulumi.set(__self__, "application_restore_type", application_restore_type) + _setter("application_restore_type", application_restore_type) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) @property @pulumi.getter(name="applicationRestoreType") @@ -867,8 +1148,21 @@ def __init__(__self__, *, """ :param bool allow_non_restored_state: When restoring from a snapshot, specifies whether the runtime is allowed to skip a state that cannot be mapped to the new program. Default is `false`. """ + ApplicationApplicationConfigurationRunConfigurationFlinkRunConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_non_restored_state=allow_non_restored_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_non_restored_state: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_non_restored_state is None and 'allowNonRestoredState' in kwargs: + allow_non_restored_state = kwargs['allowNonRestoredState'] + if allow_non_restored_state is not None: - pulumi.set(__self__, "allow_non_restored_state", allow_non_restored_state) + _setter("allow_non_restored_state", allow_non_restored_state) @property @pulumi.getter(name="allowNonRestoredState") @@ -907,12 +1201,29 @@ def __init__(__self__, *, :param Sequence['ApplicationApplicationConfigurationSqlApplicationConfigurationOutputArgs'] outputs: The destination streams used by the application. :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceArgs' reference_data_source: The reference data source used by the application. """ + ApplicationApplicationConfigurationSqlApplicationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + input=input, + outputs=outputs, + reference_data_source=reference_data_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInput'] = None, + outputs: Optional[Sequence['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationOutput']] = None, + reference_data_source: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSource'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reference_data_source is None and 'referenceDataSource' in kwargs: + reference_data_source = kwargs['referenceDataSource'] + if input is not None: - pulumi.set(__self__, "input", input) + _setter("input", input) if outputs is not None: - pulumi.set(__self__, "outputs", outputs) + _setter("outputs", outputs) if reference_data_source is not None: - pulumi.set(__self__, "reference_data_source", reference_data_source) + _setter("reference_data_source", reference_data_source) @property @pulumi.getter @@ -994,22 +1305,71 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisFirehoseInputArgs' kinesis_firehose_input: If the streaming source is a Kinesis Data Firehose delivery stream, identifies the delivery stream's ARN. :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisStreamsInputArgs' kinesis_streams_input: If the streaming source is a Kinesis data stream, identifies the stream's Amazon Resource Name (ARN). """ - pulumi.set(__self__, "input_schema", input_schema) - pulumi.set(__self__, "name_prefix", name_prefix) + ApplicationApplicationConfigurationSqlApplicationConfigurationInput._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_schema=input_schema, + name_prefix=name_prefix, + in_app_stream_names=in_app_stream_names, + input_id=input_id, + input_parallelism=input_parallelism, + input_processing_configuration=input_processing_configuration, + input_starting_position_configurations=input_starting_position_configurations, + kinesis_firehose_input=kinesis_firehose_input, + kinesis_streams_input=kinesis_streams_input, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_schema: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchema'] = None, + name_prefix: Optional[str] = None, + in_app_stream_names: Optional[Sequence[str]] = None, + input_id: Optional[str] = None, + input_parallelism: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputParallelism'] = None, + input_processing_configuration: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfiguration'] = None, + input_starting_position_configurations: Optional[Sequence['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputStartingPositionConfiguration']] = None, + kinesis_firehose_input: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisFirehoseInput'] = None, + kinesis_streams_input: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisStreamsInput'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_schema is None and 'inputSchema' in kwargs: + input_schema = kwargs['inputSchema'] + if input_schema is None: + raise TypeError("Missing 'input_schema' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if name_prefix is None: + raise TypeError("Missing 'name_prefix' argument") + if in_app_stream_names is None and 'inAppStreamNames' in kwargs: + in_app_stream_names = kwargs['inAppStreamNames'] + if input_id is None and 'inputId' in kwargs: + input_id = kwargs['inputId'] + if input_parallelism is None and 'inputParallelism' in kwargs: + input_parallelism = kwargs['inputParallelism'] + if input_processing_configuration is None and 'inputProcessingConfiguration' in kwargs: + input_processing_configuration = kwargs['inputProcessingConfiguration'] + if input_starting_position_configurations is None and 'inputStartingPositionConfigurations' in kwargs: + input_starting_position_configurations = kwargs['inputStartingPositionConfigurations'] + if kinesis_firehose_input is None and 'kinesisFirehoseInput' in kwargs: + kinesis_firehose_input = kwargs['kinesisFirehoseInput'] + if kinesis_streams_input is None and 'kinesisStreamsInput' in kwargs: + kinesis_streams_input = kwargs['kinesisStreamsInput'] + + _setter("input_schema", input_schema) + _setter("name_prefix", name_prefix) if in_app_stream_names is not None: - pulumi.set(__self__, "in_app_stream_names", in_app_stream_names) + _setter("in_app_stream_names", in_app_stream_names) if input_id is not None: - pulumi.set(__self__, "input_id", input_id) + _setter("input_id", input_id) if input_parallelism is not None: - pulumi.set(__self__, "input_parallelism", input_parallelism) + _setter("input_parallelism", input_parallelism) if input_processing_configuration is not None: - pulumi.set(__self__, "input_processing_configuration", input_processing_configuration) + _setter("input_processing_configuration", input_processing_configuration) if input_starting_position_configurations is not None: - pulumi.set(__self__, "input_starting_position_configurations", input_starting_position_configurations) + _setter("input_starting_position_configurations", input_starting_position_configurations) if kinesis_firehose_input is not None: - pulumi.set(__self__, "kinesis_firehose_input", kinesis_firehose_input) + _setter("kinesis_firehose_input", kinesis_firehose_input) if kinesis_streams_input is not None: - pulumi.set(__self__, "kinesis_streams_input", kinesis_streams_input) + _setter("kinesis_streams_input", kinesis_streams_input) @property @pulumi.getter(name="inputSchema") @@ -1086,8 +1446,19 @@ def __init__(__self__, *, """ :param int count: The number of in-application streams to create. """ + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputParallelism._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter @@ -1122,7 +1493,22 @@ def __init__(__self__, *, """ :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfigurationInputLambdaProcessorArgs' input_lambda_processor: Describes the Lambda function that is used to preprocess the records in the stream before being processed by your application code. """ - pulumi.set(__self__, "input_lambda_processor", input_lambda_processor) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_lambda_processor=input_lambda_processor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_lambda_processor: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfigurationInputLambdaProcessor'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_lambda_processor is None and 'inputLambdaProcessor' in kwargs: + input_lambda_processor = kwargs['inputLambdaProcessor'] + if input_lambda_processor is None: + raise TypeError("Missing 'input_lambda_processor' argument") + + _setter("input_lambda_processor", input_lambda_processor) @property @pulumi.getter(name="inputLambdaProcessor") @@ -1157,7 +1543,22 @@ def __init__(__self__, *, """ :param str resource_arn: The ARN of the Lambda function that operates on records in the stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputProcessingConfigurationInputLambdaProcessor._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1200,10 +1601,35 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatArgs' record_format: Specifies the format of the records on the streaming source. :param str record_encoding: Specifies the encoding of the records in the streaming source. For example, `UTF-8`. """ - pulumi.set(__self__, "record_columns", record_columns) - pulumi.set(__self__, "record_format", record_format) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchema._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_columns=record_columns, + record_format=record_format, + record_encoding=record_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_columns: Optional[Sequence['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordColumn']] = None, + record_format: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormat'] = None, + record_encoding: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_columns is None and 'recordColumns' in kwargs: + record_columns = kwargs['recordColumns'] + if record_columns is None: + raise TypeError("Missing 'record_columns' argument") + if record_format is None and 'recordFormat' in kwargs: + record_format = kwargs['recordFormat'] + if record_format is None: + raise TypeError("Missing 'record_format' argument") + if record_encoding is None and 'recordEncoding' in kwargs: + record_encoding = kwargs['recordEncoding'] + + _setter("record_columns", record_columns) + _setter("record_format", record_format) if record_encoding is not None: - pulumi.set(__self__, "record_encoding", record_encoding) + _setter("record_encoding", record_encoding) @property @pulumi.getter(name="recordColumns") @@ -1258,10 +1684,31 @@ def __init__(__self__, *, :param str sql_type: The type of column created in the in-application input stream or reference table. :param str mapping: A reference to the data element in the streaming input or the reference data source. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_type", sql_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_type=sql_type, + mapping=mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + sql_type: Optional[str] = None, + mapping: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if sql_type is None and 'sqlType' in kwargs: + sql_type = kwargs['sqlType'] + if sql_type is None: + raise TypeError("Missing 'sql_type' argument") + + _setter("name", name) + _setter("sql_type", sql_type) if mapping is not None: - pulumi.set(__self__, "mapping", mapping) + _setter("mapping", mapping) @property @pulumi.getter @@ -1316,8 +1763,29 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersArgs' mapping_parameters: Provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source. :param str record_format_type: The type of record format. Valid values: `CSV`, `JSON`. """ - pulumi.set(__self__, "mapping_parameters", mapping_parameters) - pulumi.set(__self__, "record_format_type", record_format_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormat._configure( + lambda key, value: pulumi.set(__self__, key, value), + mapping_parameters=mapping_parameters, + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mapping_parameters: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParameters'] = None, + record_format_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mapping_parameters is None and 'mappingParameters' in kwargs: + mapping_parameters = kwargs['mappingParameters'] + if mapping_parameters is None: + raise TypeError("Missing 'mapping_parameters' argument") + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if record_format_type is None: + raise TypeError("Missing 'record_format_type' argument") + + _setter("mapping_parameters", mapping_parameters) + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="mappingParameters") @@ -1364,10 +1832,27 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersCsvMappingParametersArgs' csv_mapping_parameters: Provides additional mapping information when the record format uses delimiters (for example, CSV). :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersJsonMappingParametersArgs' json_mapping_parameters: Provides additional mapping information when JSON is the record format on the streaming source. """ + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv_mapping_parameters=csv_mapping_parameters, + json_mapping_parameters=json_mapping_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv_mapping_parameters: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersCsvMappingParameters'] = None, + json_mapping_parameters: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersJsonMappingParameters'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv_mapping_parameters is None and 'csvMappingParameters' in kwargs: + csv_mapping_parameters = kwargs['csvMappingParameters'] + if json_mapping_parameters is None and 'jsonMappingParameters' in kwargs: + json_mapping_parameters = kwargs['jsonMappingParameters'] + if csv_mapping_parameters is not None: - pulumi.set(__self__, "csv_mapping_parameters", csv_mapping_parameters) + _setter("csv_mapping_parameters", csv_mapping_parameters) if json_mapping_parameters is not None: - pulumi.set(__self__, "json_mapping_parameters", json_mapping_parameters) + _setter("json_mapping_parameters", json_mapping_parameters) @property @pulumi.getter(name="csvMappingParameters") @@ -1414,8 +1899,29 @@ def __init__(__self__, *, :param str record_column_delimiter: The column delimiter. For example, in a CSV format, a comma (`,`) is the typical column delimiter. :param str record_row_delimiter: The row delimiter. For example, in a CSV format, `\\n` is the typical row delimiter. """ - pulumi.set(__self__, "record_column_delimiter", record_column_delimiter) - pulumi.set(__self__, "record_row_delimiter", record_row_delimiter) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersCsvMappingParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_column_delimiter=record_column_delimiter, + record_row_delimiter=record_row_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_column_delimiter: Optional[str] = None, + record_row_delimiter: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_column_delimiter is None and 'recordColumnDelimiter' in kwargs: + record_column_delimiter = kwargs['recordColumnDelimiter'] + if record_column_delimiter is None: + raise TypeError("Missing 'record_column_delimiter' argument") + if record_row_delimiter is None and 'recordRowDelimiter' in kwargs: + record_row_delimiter = kwargs['recordRowDelimiter'] + if record_row_delimiter is None: + raise TypeError("Missing 'record_row_delimiter' argument") + + _setter("record_column_delimiter", record_column_delimiter) + _setter("record_row_delimiter", record_row_delimiter) @property @pulumi.getter(name="recordColumnDelimiter") @@ -1458,7 +1964,22 @@ def __init__(__self__, *, """ :param str record_row_path: The path to the top-level parent that contains the records. """ - pulumi.set(__self__, "record_row_path", record_row_path) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersJsonMappingParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_row_path=record_row_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_row_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_row_path is None and 'recordRowPath' in kwargs: + record_row_path = kwargs['recordRowPath'] + if record_row_path is None: + raise TypeError("Missing 'record_row_path' argument") + + _setter("record_row_path", record_row_path) @property @pulumi.getter(name="recordRowPath") @@ -1493,8 +2014,21 @@ def __init__(__self__, *, """ :param str input_starting_position: The starting position on the stream. Valid values: `LAST_STOPPED_POINT`, `NOW`, `TRIM_HORIZON`. """ + ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputStartingPositionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_starting_position=input_starting_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_starting_position: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_starting_position is None and 'inputStartingPosition' in kwargs: + input_starting_position = kwargs['inputStartingPosition'] + if input_starting_position is not None: - pulumi.set(__self__, "input_starting_position", input_starting_position) + _setter("input_starting_position", input_starting_position) @property @pulumi.getter(name="inputStartingPosition") @@ -1529,7 +2063,22 @@ def __init__(__self__, *, """ :param str resource_arn: The ARN of the delivery stream. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisFirehoseInput._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1564,7 +2113,22 @@ def __init__(__self__, *, """ :param str resource_arn: The ARN of the input Kinesis data stream to read. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisStreamsInput._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1616,16 +2180,51 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisStreamsOutputArgs' kinesis_streams_output: Identifies a Kinesis data stream as the destination. :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationOutputLambdaOutputArgs' lambda_output: Identifies a Lambda function as the destination. """ - pulumi.set(__self__, "destination_schema", destination_schema) - pulumi.set(__self__, "name", name) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutput._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_schema=destination_schema, + name=name, + kinesis_firehose_output=kinesis_firehose_output, + kinesis_streams_output=kinesis_streams_output, + lambda_output=lambda_output, + output_id=output_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_schema: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputDestinationSchema'] = None, + name: Optional[str] = None, + kinesis_firehose_output: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisFirehoseOutput'] = None, + kinesis_streams_output: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisStreamsOutput'] = None, + lambda_output: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputLambdaOutput'] = None, + output_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_schema is None and 'destinationSchema' in kwargs: + destination_schema = kwargs['destinationSchema'] + if destination_schema is None: + raise TypeError("Missing 'destination_schema' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if kinesis_firehose_output is None and 'kinesisFirehoseOutput' in kwargs: + kinesis_firehose_output = kwargs['kinesisFirehoseOutput'] + if kinesis_streams_output is None and 'kinesisStreamsOutput' in kwargs: + kinesis_streams_output = kwargs['kinesisStreamsOutput'] + if lambda_output is None and 'lambdaOutput' in kwargs: + lambda_output = kwargs['lambdaOutput'] + if output_id is None and 'outputId' in kwargs: + output_id = kwargs['outputId'] + + _setter("destination_schema", destination_schema) + _setter("name", name) if kinesis_firehose_output is not None: - pulumi.set(__self__, "kinesis_firehose_output", kinesis_firehose_output) + _setter("kinesis_firehose_output", kinesis_firehose_output) if kinesis_streams_output is not None: - pulumi.set(__self__, "kinesis_streams_output", kinesis_streams_output) + _setter("kinesis_streams_output", kinesis_streams_output) if lambda_output is not None: - pulumi.set(__self__, "lambda_output", lambda_output) + _setter("lambda_output", lambda_output) if output_id is not None: - pulumi.set(__self__, "output_id", output_id) + _setter("output_id", output_id) @property @pulumi.getter(name="destinationSchema") @@ -1697,7 +2296,22 @@ def __init__(__self__, *, """ :param str record_format_type: Specifies the format of the records on the output stream. Valid values: `CSV`, `JSON`. """ - pulumi.set(__self__, "record_format_type", record_format_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutputDestinationSchema._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_format_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if record_format_type is None: + raise TypeError("Missing 'record_format_type' argument") + + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="recordFormatType") @@ -1732,7 +2346,22 @@ def __init__(__self__, *, """ :param str resource_arn: The ARN of the destination delivery stream to write to. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisFirehoseOutput._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1767,7 +2396,22 @@ def __init__(__self__, *, """ :param str resource_arn: The ARN of the destination Kinesis data stream to write to. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisStreamsOutput._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1802,7 +2446,22 @@ def __init__(__self__, *, """ :param str resource_arn: The ARN of the destination Lambda function to write to. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationApplicationConfigurationSqlApplicationConfigurationOutputLambdaOutput._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="resourceArn") @@ -1848,11 +2507,42 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceS3ReferenceDataSourceArgs' s3_reference_data_source: Identifies the S3 bucket and object that contains the reference data. :param str table_name: The name of the in-application table to create. """ - pulumi.set(__self__, "reference_schema", reference_schema) - pulumi.set(__self__, "s3_reference_data_source", s3_reference_data_source) - pulumi.set(__self__, "table_name", table_name) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + reference_schema=reference_schema, + s3_reference_data_source=s3_reference_data_source, + table_name=table_name, + reference_id=reference_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reference_schema: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchema'] = None, + s3_reference_data_source: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceS3ReferenceDataSource'] = None, + table_name: Optional[str] = None, + reference_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reference_schema is None and 'referenceSchema' in kwargs: + reference_schema = kwargs['referenceSchema'] + if reference_schema is None: + raise TypeError("Missing 'reference_schema' argument") + if s3_reference_data_source is None and 's3ReferenceDataSource' in kwargs: + s3_reference_data_source = kwargs['s3ReferenceDataSource'] + if s3_reference_data_source is None: + raise TypeError("Missing 's3_reference_data_source' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if reference_id is None and 'referenceId' in kwargs: + reference_id = kwargs['referenceId'] + + _setter("reference_schema", reference_schema) + _setter("s3_reference_data_source", s3_reference_data_source) + _setter("table_name", table_name) if reference_id is not None: - pulumi.set(__self__, "reference_id", reference_id) + _setter("reference_id", reference_id) @property @pulumi.getter(name="referenceSchema") @@ -1918,10 +2608,35 @@ def __init__(__self__, *, The `s3_reference_data_source` object supports the following: """ - pulumi.set(__self__, "record_columns", record_columns) - pulumi.set(__self__, "record_format", record_format) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchema._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_columns=record_columns, + record_format=record_format, + record_encoding=record_encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_columns: Optional[Sequence['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordColumn']] = None, + record_format: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormat'] = None, + record_encoding: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_columns is None and 'recordColumns' in kwargs: + record_columns = kwargs['recordColumns'] + if record_columns is None: + raise TypeError("Missing 'record_columns' argument") + if record_format is None and 'recordFormat' in kwargs: + record_format = kwargs['recordFormat'] + if record_format is None: + raise TypeError("Missing 'record_format' argument") + if record_encoding is None and 'recordEncoding' in kwargs: + record_encoding = kwargs['recordEncoding'] + + _setter("record_columns", record_columns) + _setter("record_format", record_format) if record_encoding is not None: - pulumi.set(__self__, "record_encoding", record_encoding) + _setter("record_encoding", record_encoding) @property @pulumi.getter(name="recordColumns") @@ -1978,10 +2693,31 @@ def __init__(__self__, *, :param str sql_type: The type of column created in the in-application input stream or reference table. :param str mapping: A reference to the data element in the streaming input or the reference data source. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_type", sql_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_type=sql_type, + mapping=mapping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + sql_type: Optional[str] = None, + mapping: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if sql_type is None and 'sqlType' in kwargs: + sql_type = kwargs['sqlType'] + if sql_type is None: + raise TypeError("Missing 'sql_type' argument") + + _setter("name", name) + _setter("sql_type", sql_type) if mapping is not None: - pulumi.set(__self__, "mapping", mapping) + _setter("mapping", mapping) @property @pulumi.getter @@ -2036,8 +2772,29 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersArgs' mapping_parameters: Provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source. :param str record_format_type: The type of record format. Valid values: `CSV`, `JSON`. """ - pulumi.set(__self__, "mapping_parameters", mapping_parameters) - pulumi.set(__self__, "record_format_type", record_format_type) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormat._configure( + lambda key, value: pulumi.set(__self__, key, value), + mapping_parameters=mapping_parameters, + record_format_type=record_format_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mapping_parameters: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParameters'] = None, + record_format_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mapping_parameters is None and 'mappingParameters' in kwargs: + mapping_parameters = kwargs['mappingParameters'] + if mapping_parameters is None: + raise TypeError("Missing 'mapping_parameters' argument") + if record_format_type is None and 'recordFormatType' in kwargs: + record_format_type = kwargs['recordFormatType'] + if record_format_type is None: + raise TypeError("Missing 'record_format_type' argument") + + _setter("mapping_parameters", mapping_parameters) + _setter("record_format_type", record_format_type) @property @pulumi.getter(name="mappingParameters") @@ -2084,10 +2841,27 @@ def __init__(__self__, *, :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersCsvMappingParametersArgs' csv_mapping_parameters: Provides additional mapping information when the record format uses delimiters (for example, CSV). :param 'ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersJsonMappingParametersArgs' json_mapping_parameters: Provides additional mapping information when JSON is the record format on the streaming source. """ + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv_mapping_parameters=csv_mapping_parameters, + json_mapping_parameters=json_mapping_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv_mapping_parameters: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersCsvMappingParameters'] = None, + json_mapping_parameters: Optional['outputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersJsonMappingParameters'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv_mapping_parameters is None and 'csvMappingParameters' in kwargs: + csv_mapping_parameters = kwargs['csvMappingParameters'] + if json_mapping_parameters is None and 'jsonMappingParameters' in kwargs: + json_mapping_parameters = kwargs['jsonMappingParameters'] + if csv_mapping_parameters is not None: - pulumi.set(__self__, "csv_mapping_parameters", csv_mapping_parameters) + _setter("csv_mapping_parameters", csv_mapping_parameters) if json_mapping_parameters is not None: - pulumi.set(__self__, "json_mapping_parameters", json_mapping_parameters) + _setter("json_mapping_parameters", json_mapping_parameters) @property @pulumi.getter(name="csvMappingParameters") @@ -2134,8 +2908,29 @@ def __init__(__self__, *, :param str record_column_delimiter: The column delimiter. For example, in a CSV format, a comma (`,`) is the typical column delimiter. :param str record_row_delimiter: The row delimiter. For example, in a CSV format, `\\n` is the typical row delimiter. """ - pulumi.set(__self__, "record_column_delimiter", record_column_delimiter) - pulumi.set(__self__, "record_row_delimiter", record_row_delimiter) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersCsvMappingParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_column_delimiter=record_column_delimiter, + record_row_delimiter=record_row_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_column_delimiter: Optional[str] = None, + record_row_delimiter: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_column_delimiter is None and 'recordColumnDelimiter' in kwargs: + record_column_delimiter = kwargs['recordColumnDelimiter'] + if record_column_delimiter is None: + raise TypeError("Missing 'record_column_delimiter' argument") + if record_row_delimiter is None and 'recordRowDelimiter' in kwargs: + record_row_delimiter = kwargs['recordRowDelimiter'] + if record_row_delimiter is None: + raise TypeError("Missing 'record_row_delimiter' argument") + + _setter("record_column_delimiter", record_column_delimiter) + _setter("record_row_delimiter", record_row_delimiter) @property @pulumi.getter(name="recordColumnDelimiter") @@ -2178,7 +2973,22 @@ def __init__(__self__, *, """ :param str record_row_path: The path to the top-level parent that contains the records. """ - pulumi.set(__self__, "record_row_path", record_row_path) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersJsonMappingParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + record_row_path=record_row_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + record_row_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if record_row_path is None and 'recordRowPath' in kwargs: + record_row_path = kwargs['recordRowPath'] + if record_row_path is None: + raise TypeError("Missing 'record_row_path' argument") + + _setter("record_row_path", record_row_path) @property @pulumi.getter(name="recordRowPath") @@ -2217,8 +3027,29 @@ def __init__(__self__, *, :param str bucket_arn: The ARN for the S3 bucket containing the application code. :param str file_key: The file key for the object containing the application code. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "file_key", file_key) + ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceS3ReferenceDataSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + file_key=file_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + file_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if file_key is None and 'fileKey' in kwargs: + file_key = kwargs['fileKey'] + if file_key is None: + raise TypeError("Missing 'file_key' argument") + + _setter("bucket_arn", bucket_arn) + _setter("file_key", file_key) @property @pulumi.getter(name="bucketArn") @@ -2271,12 +3102,41 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: The Security Group IDs used by the VPC configuration. :param Sequence[str] subnet_ids: The Subnet IDs used by the VPC configuration. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) + ApplicationApplicationConfigurationVpcConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_configuration_id=vpc_configuration_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_configuration_id: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_configuration_id is None and 'vpcConfigurationId' in kwargs: + vpc_configuration_id = kwargs['vpcConfigurationId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_configuration_id is not None: - pulumi.set(__self__, "vpc_configuration_id", vpc_configuration_id) + _setter("vpc_configuration_id", vpc_configuration_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") @@ -2332,9 +3192,28 @@ def __init__(__self__, *, """ :param str log_stream_arn: The ARN of the CloudWatch log stream to receive application messages. """ - pulumi.set(__self__, "log_stream_arn", log_stream_arn) + ApplicationCloudwatchLoggingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_stream_arn=log_stream_arn, + cloudwatch_logging_option_id=cloudwatch_logging_option_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_stream_arn: Optional[str] = None, + cloudwatch_logging_option_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_stream_arn is None and 'logStreamArn' in kwargs: + log_stream_arn = kwargs['logStreamArn'] + if log_stream_arn is None: + raise TypeError("Missing 'log_stream_arn' argument") + if cloudwatch_logging_option_id is None and 'cloudwatchLoggingOptionId' in kwargs: + cloudwatch_logging_option_id = kwargs['cloudwatchLoggingOptionId'] + + _setter("log_stream_arn", log_stream_arn) if cloudwatch_logging_option_id is not None: - pulumi.set(__self__, "cloudwatch_logging_option_id", cloudwatch_logging_option_id) + _setter("cloudwatch_logging_option_id", cloudwatch_logging_option_id) @property @pulumi.getter(name="logStreamArn") diff --git a/sdk/python/pulumi_aws/kms/_inputs.py b/sdk/python/pulumi_aws/kms/_inputs.py index 88952bceadc..5bebd16b65d 100644 --- a/sdk/python/pulumi_aws/kms/_inputs.py +++ b/sdk/python/pulumi_aws/kms/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,10 +24,27 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] encryption_context_equals: A list of key-value pairs that must match the encryption context in subsequent cryptographic operation requests. The grant allows the operation only when the encryption context in the request is the same as the encryption context specified in this constraint. Conflicts with `encryption_context_subset`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] encryption_context_subset: A list of key-value pairs that must be included in the encryption context of subsequent cryptographic operation requests. The grant allows the cryptographic operation only when the encryption context in the request includes the key-value pairs specified in this constraint, although it can include additional key-value pairs. Conflicts with `encryption_context_equals`. """ + GrantConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_context_equals=encryption_context_equals, + encryption_context_subset=encryption_context_subset, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_context_equals: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + encryption_context_subset: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_context_equals is None and 'encryptionContextEquals' in kwargs: + encryption_context_equals = kwargs['encryptionContextEquals'] + if encryption_context_subset is None and 'encryptionContextSubset' in kwargs: + encryption_context_subset = kwargs['encryptionContextSubset'] + if encryption_context_equals is not None: - pulumi.set(__self__, "encryption_context_equals", encryption_context_equals) + _setter("encryption_context_equals", encryption_context_equals) if encryption_context_subset is not None: - pulumi.set(__self__, "encryption_context_subset", encryption_context_subset) + _setter("encryption_context_subset", encryption_context_subset) @property @pulumi.getter(name="encryptionContextEquals") @@ -61,12 +78,35 @@ def __init__(__self__, *, payload: str, context: Optional[Mapping[str, str]] = None, grant_tokens: Optional[Sequence[str]] = None): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "payload", payload) + GetSecretSecretArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + payload=payload, + context=context, + grant_tokens=grant_tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + payload: Optional[str] = None, + context: Optional[Mapping[str, str]] = None, + grant_tokens: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if payload is None: + raise TypeError("Missing 'payload' argument") + if grant_tokens is None and 'grantTokens' in kwargs: + grant_tokens = kwargs['grantTokens'] + + _setter("name", name) + _setter("payload", payload) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if grant_tokens is not None: - pulumi.set(__self__, "grant_tokens", grant_tokens) + _setter("grant_tokens", grant_tokens) @property @pulumi.getter @@ -125,16 +165,47 @@ def __init__(__self__, *, For more information on `context` and `grant_tokens` see the [KMS Concepts](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "payload", payload) + GetSecretsSecretArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + payload=payload, + context=context, + encryption_algorithm=encryption_algorithm, + grant_tokens=grant_tokens, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + payload: Optional[str] = None, + context: Optional[Mapping[str, str]] = None, + encryption_algorithm: Optional[str] = None, + grant_tokens: Optional[Sequence[str]] = None, + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if payload is None: + raise TypeError("Missing 'payload' argument") + if encryption_algorithm is None and 'encryptionAlgorithm' in kwargs: + encryption_algorithm = kwargs['encryptionAlgorithm'] + if grant_tokens is None and 'grantTokens' in kwargs: + grant_tokens = kwargs['grantTokens'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("name", name) + _setter("payload", payload) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if encryption_algorithm is not None: - pulumi.set(__self__, "encryption_algorithm", encryption_algorithm) + _setter("encryption_algorithm", encryption_algorithm) if grant_tokens is not None: - pulumi.set(__self__, "grant_tokens", grant_tokens) + _setter("grant_tokens", grant_tokens) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/kms/alias.py b/sdk/python/pulumi_aws/kms/alias.py index 2c07b547096..76512923f00 100644 --- a/sdk/python/pulumi_aws/kms/alias.py +++ b/sdk/python/pulumi_aws/kms/alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AliasArgs', 'Alias'] @@ -24,11 +24,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates an unique alias beginning with the specified prefix. The name must start with the word "alias" followed by a forward slash (alias/). Conflicts with `name`. """ - pulumi.set(__self__, "target_key_id", target_key_id) + AliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_key_id=target_key_id, + name=name, + name_prefix=name_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_key_id is None and 'targetKeyId' in kwargs: + target_key_id = kwargs['targetKeyId'] + if target_key_id is None: + raise TypeError("Missing 'target_key_id' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("target_key_id", target_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) @property @pulumi.getter(name="targetKeyId") @@ -85,16 +106,41 @@ def __init__(__self__, *, :param pulumi.Input[str] target_key_arn: The Amazon Resource Name (ARN) of the target key identifier. :param pulumi.Input[str] target_key_id: Identifier for the key for which the alias is for, can be either an ARN or key_id. """ + _AliasState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + name_prefix=name_prefix, + target_key_arn=target_key_arn, + target_key_id=target_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + target_key_arn: Optional[pulumi.Input[str]] = None, + target_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if target_key_arn is None and 'targetKeyArn' in kwargs: + target_key_arn = kwargs['targetKeyArn'] + if target_key_id is None and 'targetKeyId' in kwargs: + target_key_id = kwargs['targetKeyId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if target_key_arn is not None: - pulumi.set(__self__, "target_key_arn", target_key_arn) + _setter("target_key_arn", target_key_arn) if target_key_id is not None: - pulumi.set(__self__, "target_key_id", target_key_id) + _setter("target_key_id", target_key_id) @property @pulumi.getter @@ -236,6 +282,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AliasArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kms/ciphertext.py b/sdk/python/pulumi_aws/kms/ciphertext.py index f0bd8fa0e61..31a23a695df 100644 --- a/sdk/python/pulumi_aws/kms/ciphertext.py +++ b/sdk/python/pulumi_aws/kms/ciphertext.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CiphertextArgs', 'Ciphertext'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] plaintext: Data to be encrypted. Note that this may show up in logs, and it will be stored in the state file. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] context: An optional mapping that makes up the encryption context. """ - pulumi.set(__self__, "key_id", key_id) - pulumi.set(__self__, "plaintext", plaintext) + CiphertextArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + plaintext=plaintext, + context=context, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[pulumi.Input[str]] = None, + plaintext: Optional[pulumi.Input[str]] = None, + context: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + if plaintext is None: + raise TypeError("Missing 'plaintext' argument") + + _setter("key_id", key_id) + _setter("plaintext", plaintext) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) @property @pulumi.getter(name="keyId") @@ -79,14 +100,35 @@ def __init__(__self__, *, :param pulumi.Input[str] key_id: Globally unique key ID for the customer master key. :param pulumi.Input[str] plaintext: Data to be encrypted. Note that this may show up in logs, and it will be stored in the state file. """ + _CiphertextState._configure( + lambda key, value: pulumi.set(__self__, key, value), + ciphertext_blob=ciphertext_blob, + context=context, + key_id=key_id, + plaintext=plaintext, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ciphertext_blob: Optional[pulumi.Input[str]] = None, + context: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + key_id: Optional[pulumi.Input[str]] = None, + plaintext: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ciphertext_blob is None and 'ciphertextBlob' in kwargs: + ciphertext_blob = kwargs['ciphertextBlob'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if ciphertext_blob is not None: - pulumi.set(__self__, "ciphertext_blob", ciphertext_blob) + _setter("ciphertext_blob", ciphertext_blob) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if plaintext is not None: - pulumi.set(__self__, "plaintext", plaintext) + _setter("plaintext", plaintext) @property @pulumi.getter(name="ciphertextBlob") @@ -216,6 +258,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CiphertextArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kms/custom_key_store.py b/sdk/python/pulumi_aws/kms/custom_key_store.py index f6d35b3b4c3..e5b78497a5c 100644 --- a/sdk/python/pulumi_aws/kms/custom_key_store.py +++ b/sdk/python/pulumi_aws/kms/custom_key_store.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CustomKeyStoreArgs', 'CustomKeyStore'] @@ -25,10 +25,43 @@ def __init__(__self__, *, :param pulumi.Input[str] key_store_password: Password for `kmsuser` on CloudHSM. :param pulumi.Input[str] trust_anchor_certificate: Customer certificate used for signing on CloudHSM. """ - pulumi.set(__self__, "cloud_hsm_cluster_id", cloud_hsm_cluster_id) - pulumi.set(__self__, "custom_key_store_name", custom_key_store_name) - pulumi.set(__self__, "key_store_password", key_store_password) - pulumi.set(__self__, "trust_anchor_certificate", trust_anchor_certificate) + CustomKeyStoreArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_hsm_cluster_id=cloud_hsm_cluster_id, + custom_key_store_name=custom_key_store_name, + key_store_password=key_store_password, + trust_anchor_certificate=trust_anchor_certificate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_hsm_cluster_id: Optional[pulumi.Input[str]] = None, + custom_key_store_name: Optional[pulumi.Input[str]] = None, + key_store_password: Optional[pulumi.Input[str]] = None, + trust_anchor_certificate: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_hsm_cluster_id is None and 'cloudHsmClusterId' in kwargs: + cloud_hsm_cluster_id = kwargs['cloudHsmClusterId'] + if cloud_hsm_cluster_id is None: + raise TypeError("Missing 'cloud_hsm_cluster_id' argument") + if custom_key_store_name is None and 'customKeyStoreName' in kwargs: + custom_key_store_name = kwargs['customKeyStoreName'] + if custom_key_store_name is None: + raise TypeError("Missing 'custom_key_store_name' argument") + if key_store_password is None and 'keyStorePassword' in kwargs: + key_store_password = kwargs['keyStorePassword'] + if key_store_password is None: + raise TypeError("Missing 'key_store_password' argument") + if trust_anchor_certificate is None and 'trustAnchorCertificate' in kwargs: + trust_anchor_certificate = kwargs['trustAnchorCertificate'] + if trust_anchor_certificate is None: + raise TypeError("Missing 'trust_anchor_certificate' argument") + + _setter("cloud_hsm_cluster_id", cloud_hsm_cluster_id) + _setter("custom_key_store_name", custom_key_store_name) + _setter("key_store_password", key_store_password) + _setter("trust_anchor_certificate", trust_anchor_certificate) @property @pulumi.getter(name="cloudHsmClusterId") @@ -93,14 +126,39 @@ def __init__(__self__, *, :param pulumi.Input[str] key_store_password: Password for `kmsuser` on CloudHSM. :param pulumi.Input[str] trust_anchor_certificate: Customer certificate used for signing on CloudHSM. """ + _CustomKeyStoreState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_hsm_cluster_id=cloud_hsm_cluster_id, + custom_key_store_name=custom_key_store_name, + key_store_password=key_store_password, + trust_anchor_certificate=trust_anchor_certificate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_hsm_cluster_id: Optional[pulumi.Input[str]] = None, + custom_key_store_name: Optional[pulumi.Input[str]] = None, + key_store_password: Optional[pulumi.Input[str]] = None, + trust_anchor_certificate: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_hsm_cluster_id is None and 'cloudHsmClusterId' in kwargs: + cloud_hsm_cluster_id = kwargs['cloudHsmClusterId'] + if custom_key_store_name is None and 'customKeyStoreName' in kwargs: + custom_key_store_name = kwargs['customKeyStoreName'] + if key_store_password is None and 'keyStorePassword' in kwargs: + key_store_password = kwargs['keyStorePassword'] + if trust_anchor_certificate is None and 'trustAnchorCertificate' in kwargs: + trust_anchor_certificate = kwargs['trustAnchorCertificate'] + if cloud_hsm_cluster_id is not None: - pulumi.set(__self__, "cloud_hsm_cluster_id", cloud_hsm_cluster_id) + _setter("cloud_hsm_cluster_id", cloud_hsm_cluster_id) if custom_key_store_name is not None: - pulumi.set(__self__, "custom_key_store_name", custom_key_store_name) + _setter("custom_key_store_name", custom_key_store_name) if key_store_password is not None: - pulumi.set(__self__, "key_store_password", key_store_password) + _setter("key_store_password", key_store_password) if trust_anchor_certificate is not None: - pulumi.set(__self__, "trust_anchor_certificate", trust_anchor_certificate) + _setter("trust_anchor_certificate", trust_anchor_certificate) @property @pulumi.getter(name="cloudHsmClusterId") @@ -234,6 +292,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomKeyStoreArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kms/external_key.py b/sdk/python/pulumi_aws/kms/external_key.py index dd2ba2ab9bf..790da4f3189 100644 --- a/sdk/python/pulumi_aws/kms/external_key.py +++ b/sdk/python/pulumi_aws/kms/external_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ExternalKeyArgs', 'ExternalKey'] @@ -35,24 +35,61 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A key-value map of tags to assign to the key. 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] valid_to: Time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. If not specified, key material does not expire. Valid values: [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) (`YYYY-MM-DDTHH:MM:SSZ`) """ + ExternalKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + deletion_window_in_days=deletion_window_in_days, + description=description, + enabled=enabled, + key_material_base64=key_material_base64, + multi_region=multi_region, + policy=policy, + tags=tags, + valid_to=valid_to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + deletion_window_in_days: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + key_material_base64: Optional[pulumi.Input[str]] = None, + multi_region: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + valid_to: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if deletion_window_in_days is None and 'deletionWindowInDays' in kwargs: + deletion_window_in_days = kwargs['deletionWindowInDays'] + if key_material_base64 is None and 'keyMaterialBase64' in kwargs: + key_material_base64 = kwargs['keyMaterialBase64'] + if multi_region is None and 'multiRegion' in kwargs: + multi_region = kwargs['multiRegion'] + if valid_to is None and 'validTo' in kwargs: + valid_to = kwargs['validTo'] + if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if deletion_window_in_days is not None: - pulumi.set(__self__, "deletion_window_in_days", deletion_window_in_days) + _setter("deletion_window_in_days", deletion_window_in_days) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if key_material_base64 is not None: - pulumi.set(__self__, "key_material_base64", key_material_base64) + _setter("key_material_base64", key_material_base64) if multi_region is not None: - pulumi.set(__self__, "multi_region", multi_region) + _setter("multi_region", multi_region) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if valid_to is not None: - pulumi.set(__self__, "valid_to", valid_to) + _setter("valid_to", valid_to) @property @pulumi.getter(name="bypassPolicyLockoutSafetyCheck") @@ -197,37 +234,92 @@ def __init__(__self__, *, :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] valid_to: Time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. If not specified, key material does not expire. Valid values: [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) (`YYYY-MM-DDTHH:MM:SSZ`) """ + _ExternalKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + deletion_window_in_days=deletion_window_in_days, + description=description, + enabled=enabled, + expiration_model=expiration_model, + key_material_base64=key_material_base64, + key_state=key_state, + key_usage=key_usage, + multi_region=multi_region, + policy=policy, + tags=tags, + tags_all=tags_all, + valid_to=valid_to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + deletion_window_in_days: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + expiration_model: Optional[pulumi.Input[str]] = None, + key_material_base64: Optional[pulumi.Input[str]] = None, + key_state: Optional[pulumi.Input[str]] = None, + key_usage: Optional[pulumi.Input[str]] = None, + multi_region: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + valid_to: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if deletion_window_in_days is None and 'deletionWindowInDays' in kwargs: + deletion_window_in_days = kwargs['deletionWindowInDays'] + if expiration_model is None and 'expirationModel' in kwargs: + expiration_model = kwargs['expirationModel'] + if key_material_base64 is None and 'keyMaterialBase64' in kwargs: + key_material_base64 = kwargs['keyMaterialBase64'] + if key_state is None and 'keyState' in kwargs: + key_state = kwargs['keyState'] + if key_usage is None and 'keyUsage' in kwargs: + key_usage = kwargs['keyUsage'] + if multi_region is None and 'multiRegion' in kwargs: + multi_region = kwargs['multiRegion'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if valid_to is None and 'validTo' in kwargs: + valid_to = kwargs['validTo'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if deletion_window_in_days is not None: - pulumi.set(__self__, "deletion_window_in_days", deletion_window_in_days) + _setter("deletion_window_in_days", deletion_window_in_days) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if expiration_model is not None: - pulumi.set(__self__, "expiration_model", expiration_model) + _setter("expiration_model", expiration_model) if key_material_base64 is not None: - pulumi.set(__self__, "key_material_base64", key_material_base64) + _setter("key_material_base64", key_material_base64) if key_state is not None: - pulumi.set(__self__, "key_state", key_state) + _setter("key_state", key_state) if key_usage is not None: - pulumi.set(__self__, "key_usage", key_usage) + _setter("key_usage", key_usage) if multi_region is not None: - pulumi.set(__self__, "multi_region", multi_region) + _setter("multi_region", multi_region) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if valid_to is not None: - pulumi.set(__self__, "valid_to", valid_to) + _setter("valid_to", valid_to) @property @pulumi.getter @@ -486,6 +578,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ExternalKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kms/get_alias.py b/sdk/python/pulumi_aws/kms/get_alias.py index 1259367e536..d499fa6f4d4 100644 --- a/sdk/python/pulumi_aws/kms/get_alias.py +++ b/sdk/python/pulumi_aws/kms/get_alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/kms/get_cipher_text.py b/sdk/python/pulumi_aws/kms/get_cipher_text.py index 6c16ab89b99..813413e020d 100644 --- a/sdk/python/pulumi_aws/kms/get_cipher_text.py +++ b/sdk/python/pulumi_aws/kms/get_cipher_text.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/kms/get_custom_key_store.py b/sdk/python/pulumi_aws/kms/get_custom_key_store.py index 6603d0a501b..e2c2bb967c1 100644 --- a/sdk/python/pulumi_aws/kms/get_custom_key_store.py +++ b/sdk/python/pulumi_aws/kms/get_custom_key_store.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/kms/get_key.py b/sdk/python/pulumi_aws/kms/get_key.py index b306cc0221a..e9e93f6502a 100644 --- a/sdk/python/pulumi_aws/kms/get_key.py +++ b/sdk/python/pulumi_aws/kms/get_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/kms/get_public_key.py b/sdk/python/pulumi_aws/kms/get_public_key.py index 294f3cd9b59..f92743a8bfe 100644 --- a/sdk/python/pulumi_aws/kms/get_public_key.py +++ b/sdk/python/pulumi_aws/kms/get_public_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/kms/get_secret.py b/sdk/python/pulumi_aws/kms/get_secret.py index 7a316c8e18f..cc5698b307b 100644 --- a/sdk/python/pulumi_aws/kms/get_secret.py +++ b/sdk/python/pulumi_aws/kms/get_secret.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/kms/get_secrets.py b/sdk/python/pulumi_aws/kms/get_secrets.py index 7aab44ca4ac..eb1ed0037da 100644 --- a/sdk/python/pulumi_aws/kms/get_secrets.py +++ b/sdk/python/pulumi_aws/kms/get_secrets.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/kms/grant.py b/sdk/python/pulumi_aws/kms/grant.py index fb66f8e4d3f..802b0aff16b 100644 --- a/sdk/python/pulumi_aws/kms/grant.py +++ b/sdk/python/pulumi_aws/kms/grant.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -36,19 +36,60 @@ def __init__(__self__, *, See [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html) for more information. :param pulumi.Input[str] retiring_principal: The principal that is given permission to retire the grant by using RetireGrant operation in ARN format. Note that due to eventual consistency issues around IAM principals, the providers's state may not always be refreshed to reflect what is true in AWS. """ - pulumi.set(__self__, "grantee_principal", grantee_principal) - pulumi.set(__self__, "key_id", key_id) - pulumi.set(__self__, "operations", operations) + GrantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + grantee_principal=grantee_principal, + key_id=key_id, + operations=operations, + constraints=constraints, + grant_creation_tokens=grant_creation_tokens, + name=name, + retire_on_delete=retire_on_delete, + retiring_principal=retiring_principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grantee_principal: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + operations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + constraints: Optional[pulumi.Input[Sequence[pulumi.Input['GrantConstraintArgs']]]] = None, + grant_creation_tokens: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + retire_on_delete: Optional[pulumi.Input[bool]] = None, + retiring_principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grantee_principal is None and 'granteePrincipal' in kwargs: + grantee_principal = kwargs['granteePrincipal'] + if grantee_principal is None: + raise TypeError("Missing 'grantee_principal' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + if operations is None: + raise TypeError("Missing 'operations' argument") + if grant_creation_tokens is None and 'grantCreationTokens' in kwargs: + grant_creation_tokens = kwargs['grantCreationTokens'] + if retire_on_delete is None and 'retireOnDelete' in kwargs: + retire_on_delete = kwargs['retireOnDelete'] + if retiring_principal is None and 'retiringPrincipal' in kwargs: + retiring_principal = kwargs['retiringPrincipal'] + + _setter("grantee_principal", grantee_principal) + _setter("key_id", key_id) + _setter("operations", operations) if constraints is not None: - pulumi.set(__self__, "constraints", constraints) + _setter("constraints", constraints) if grant_creation_tokens is not None: - pulumi.set(__self__, "grant_creation_tokens", grant_creation_tokens) + _setter("grant_creation_tokens", grant_creation_tokens) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if retire_on_delete is not None: - pulumi.set(__self__, "retire_on_delete", retire_on_delete) + _setter("retire_on_delete", retire_on_delete) if retiring_principal is not None: - pulumi.set(__self__, "retiring_principal", retiring_principal) + _setter("retiring_principal", retiring_principal) @property @pulumi.getter(name="granteePrincipal") @@ -175,26 +216,69 @@ def __init__(__self__, *, See [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html) for more information. :param pulumi.Input[str] retiring_principal: The principal that is given permission to retire the grant by using RetireGrant operation in ARN format. Note that due to eventual consistency issues around IAM principals, the providers's state may not always be refreshed to reflect what is true in AWS. """ + _GrantState._configure( + lambda key, value: pulumi.set(__self__, key, value), + constraints=constraints, + grant_creation_tokens=grant_creation_tokens, + grant_id=grant_id, + grant_token=grant_token, + grantee_principal=grantee_principal, + key_id=key_id, + name=name, + operations=operations, + retire_on_delete=retire_on_delete, + retiring_principal=retiring_principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + constraints: Optional[pulumi.Input[Sequence[pulumi.Input['GrantConstraintArgs']]]] = None, + grant_creation_tokens: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + grant_id: Optional[pulumi.Input[str]] = None, + grant_token: Optional[pulumi.Input[str]] = None, + grantee_principal: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + operations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + retire_on_delete: Optional[pulumi.Input[bool]] = None, + retiring_principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grant_creation_tokens is None and 'grantCreationTokens' in kwargs: + grant_creation_tokens = kwargs['grantCreationTokens'] + if grant_id is None and 'grantId' in kwargs: + grant_id = kwargs['grantId'] + if grant_token is None and 'grantToken' in kwargs: + grant_token = kwargs['grantToken'] + if grantee_principal is None and 'granteePrincipal' in kwargs: + grantee_principal = kwargs['granteePrincipal'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if retire_on_delete is None and 'retireOnDelete' in kwargs: + retire_on_delete = kwargs['retireOnDelete'] + if retiring_principal is None and 'retiringPrincipal' in kwargs: + retiring_principal = kwargs['retiringPrincipal'] + if constraints is not None: - pulumi.set(__self__, "constraints", constraints) + _setter("constraints", constraints) if grant_creation_tokens is not None: - pulumi.set(__self__, "grant_creation_tokens", grant_creation_tokens) + _setter("grant_creation_tokens", grant_creation_tokens) if grant_id is not None: - pulumi.set(__self__, "grant_id", grant_id) + _setter("grant_id", grant_id) if grant_token is not None: - pulumi.set(__self__, "grant_token", grant_token) + _setter("grant_token", grant_token) if grantee_principal is not None: - pulumi.set(__self__, "grantee_principal", grantee_principal) + _setter("grantee_principal", grantee_principal) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if operations is not None: - pulumi.set(__self__, "operations", operations) + _setter("operations", operations) if retire_on_delete is not None: - pulumi.set(__self__, "retire_on_delete", retire_on_delete) + _setter("retire_on_delete", retire_on_delete) if retiring_principal is not None: - pulumi.set(__self__, "retiring_principal", retiring_principal) + _setter("retiring_principal", retiring_principal) @property @pulumi.getter @@ -382,6 +466,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GrantArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kms/key.py b/sdk/python/pulumi_aws/kms/key.py index 1572822f8f1..f6da47f7245 100644 --- a/sdk/python/pulumi_aws/kms/key.py +++ b/sdk/python/pulumi_aws/kms/key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KeyArgs', 'Key'] @@ -48,28 +48,75 @@ def __init__(__self__, *, > **NOTE:** Note: All KMS keys must have a key policy. If a key policy is not specified, AWS gives the KMS key a [default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) that gives all principals in the owning account unlimited access to all KMS operations for the key. This default key policy effectively delegates all access control to IAM policies and KMS grants. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the object. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + KeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + custom_key_store_id=custom_key_store_id, + customer_master_key_spec=customer_master_key_spec, + deletion_window_in_days=deletion_window_in_days, + description=description, + enable_key_rotation=enable_key_rotation, + is_enabled=is_enabled, + key_usage=key_usage, + multi_region=multi_region, + policy=policy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + custom_key_store_id: Optional[pulumi.Input[str]] = None, + customer_master_key_spec: Optional[pulumi.Input[str]] = None, + deletion_window_in_days: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + enable_key_rotation: Optional[pulumi.Input[bool]] = None, + is_enabled: Optional[pulumi.Input[bool]] = None, + key_usage: Optional[pulumi.Input[str]] = None, + multi_region: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if custom_key_store_id is None and 'customKeyStoreId' in kwargs: + custom_key_store_id = kwargs['customKeyStoreId'] + if customer_master_key_spec is None and 'customerMasterKeySpec' in kwargs: + customer_master_key_spec = kwargs['customerMasterKeySpec'] + if deletion_window_in_days is None and 'deletionWindowInDays' in kwargs: + deletion_window_in_days = kwargs['deletionWindowInDays'] + if enable_key_rotation is None and 'enableKeyRotation' in kwargs: + enable_key_rotation = kwargs['enableKeyRotation'] + if is_enabled is None and 'isEnabled' in kwargs: + is_enabled = kwargs['isEnabled'] + if key_usage is None and 'keyUsage' in kwargs: + key_usage = kwargs['keyUsage'] + if multi_region is None and 'multiRegion' in kwargs: + multi_region = kwargs['multiRegion'] + if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if custom_key_store_id is not None: - pulumi.set(__self__, "custom_key_store_id", custom_key_store_id) + _setter("custom_key_store_id", custom_key_store_id) if customer_master_key_spec is not None: - pulumi.set(__self__, "customer_master_key_spec", customer_master_key_spec) + _setter("customer_master_key_spec", customer_master_key_spec) if deletion_window_in_days is not None: - pulumi.set(__self__, "deletion_window_in_days", deletion_window_in_days) + _setter("deletion_window_in_days", deletion_window_in_days) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enable_key_rotation is not None: - pulumi.set(__self__, "enable_key_rotation", enable_key_rotation) + _setter("enable_key_rotation", enable_key_rotation) if is_enabled is not None: - pulumi.set(__self__, "is_enabled", is_enabled) + _setter("is_enabled", is_enabled) if key_usage is not None: - pulumi.set(__self__, "key_usage", key_usage) + _setter("key_usage", key_usage) if multi_region is not None: - pulumi.set(__self__, "multi_region", multi_region) + _setter("multi_region", multi_region) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="bypassPolicyLockoutSafetyCheck") @@ -256,37 +303,94 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the object. 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. """ + _KeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + custom_key_store_id=custom_key_store_id, + customer_master_key_spec=customer_master_key_spec, + deletion_window_in_days=deletion_window_in_days, + description=description, + enable_key_rotation=enable_key_rotation, + is_enabled=is_enabled, + key_id=key_id, + key_usage=key_usage, + multi_region=multi_region, + policy=policy, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + custom_key_store_id: Optional[pulumi.Input[str]] = None, + customer_master_key_spec: Optional[pulumi.Input[str]] = None, + deletion_window_in_days: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + enable_key_rotation: Optional[pulumi.Input[bool]] = None, + is_enabled: Optional[pulumi.Input[bool]] = None, + key_id: Optional[pulumi.Input[str]] = None, + key_usage: Optional[pulumi.Input[str]] = None, + multi_region: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if custom_key_store_id is None and 'customKeyStoreId' in kwargs: + custom_key_store_id = kwargs['customKeyStoreId'] + if customer_master_key_spec is None and 'customerMasterKeySpec' in kwargs: + customer_master_key_spec = kwargs['customerMasterKeySpec'] + if deletion_window_in_days is None and 'deletionWindowInDays' in kwargs: + deletion_window_in_days = kwargs['deletionWindowInDays'] + if enable_key_rotation is None and 'enableKeyRotation' in kwargs: + enable_key_rotation = kwargs['enableKeyRotation'] + if is_enabled is None and 'isEnabled' in kwargs: + is_enabled = kwargs['isEnabled'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_usage is None and 'keyUsage' in kwargs: + key_usage = kwargs['keyUsage'] + if multi_region is None and 'multiRegion' in kwargs: + multi_region = kwargs['multiRegion'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if custom_key_store_id is not None: - pulumi.set(__self__, "custom_key_store_id", custom_key_store_id) + _setter("custom_key_store_id", custom_key_store_id) if customer_master_key_spec is not None: - pulumi.set(__self__, "customer_master_key_spec", customer_master_key_spec) + _setter("customer_master_key_spec", customer_master_key_spec) if deletion_window_in_days is not None: - pulumi.set(__self__, "deletion_window_in_days", deletion_window_in_days) + _setter("deletion_window_in_days", deletion_window_in_days) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enable_key_rotation is not None: - pulumi.set(__self__, "enable_key_rotation", enable_key_rotation) + _setter("enable_key_rotation", enable_key_rotation) if is_enabled is not None: - pulumi.set(__self__, "is_enabled", is_enabled) + _setter("is_enabled", is_enabled) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if key_usage is not None: - pulumi.set(__self__, "key_usage", key_usage) + _setter("key_usage", key_usage) if multi_region is not None: - pulumi.set(__self__, "multi_region", multi_region) + _setter("multi_region", multi_region) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -577,6 +681,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kms/key_policy.py b/sdk/python/pulumi_aws/kms/key_policy.py index 10dbf6d30d3..6d2ed036479 100644 --- a/sdk/python/pulumi_aws/kms/key_policy.py +++ b/sdk/python/pulumi_aws/kms/key_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KeyPolicyArgs', 'KeyPolicy'] @@ -27,10 +27,33 @@ def __init__(__self__, *, Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately. If this value is set, and the resource is destroyed, a warning will be shown, and the resource will be removed from state. For more information, refer to the scenario in the [Default Key Policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section in the _AWS Key Management Service Developer Guide_. """ - pulumi.set(__self__, "key_id", key_id) - pulumi.set(__self__, "policy", policy) + KeyPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + policy=policy, + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + + _setter("key_id", key_id) + _setter("policy", policy) if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) @property @pulumi.getter(name="keyId") @@ -89,12 +112,31 @@ def __init__(__self__, *, > **NOTE:** Note: All KMS keys must have a key policy. If a key policy is not specified, or this resource is destroyed, AWS gives the KMS key a [default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) that gives all principals in the owning account unlimited access to all KMS operations for the key. This default key policy effectively delegates all access control to IAM policies and KMS grants. """ + _KeyPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + key_id=key_id, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + key_id: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="bypassPolicyLockoutSafetyCheck") @@ -244,6 +286,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KeyPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kms/outputs.py b/sdk/python/pulumi_aws/kms/outputs.py index 11cf25deb32..b6abaaff82b 100644 --- a/sdk/python/pulumi_aws/kms/outputs.py +++ b/sdk/python/pulumi_aws/kms/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -48,10 +48,27 @@ def __init__(__self__, *, :param Mapping[str, str] encryption_context_equals: A list of key-value pairs that must match the encryption context in subsequent cryptographic operation requests. The grant allows the operation only when the encryption context in the request is the same as the encryption context specified in this constraint. Conflicts with `encryption_context_subset`. :param Mapping[str, str] encryption_context_subset: A list of key-value pairs that must be included in the encryption context of subsequent cryptographic operation requests. The grant allows the cryptographic operation only when the encryption context in the request includes the key-value pairs specified in this constraint, although it can include additional key-value pairs. Conflicts with `encryption_context_equals`. """ + GrantConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_context_equals=encryption_context_equals, + encryption_context_subset=encryption_context_subset, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_context_equals: Optional[Mapping[str, str]] = None, + encryption_context_subset: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_context_equals is None and 'encryptionContextEquals' in kwargs: + encryption_context_equals = kwargs['encryptionContextEquals'] + if encryption_context_subset is None and 'encryptionContextSubset' in kwargs: + encryption_context_subset = kwargs['encryptionContextSubset'] + if encryption_context_equals is not None: - pulumi.set(__self__, "encryption_context_equals", encryption_context_equals) + _setter("encryption_context_equals", encryption_context_equals) if encryption_context_subset is not None: - pulumi.set(__self__, "encryption_context_subset", encryption_context_subset) + _setter("encryption_context_subset", encryption_context_subset) @property @pulumi.getter(name="encryptionContextEquals") @@ -81,9 +98,36 @@ def __init__(__self__, *, :param Sequence['GetKeyMultiRegionConfigurationPrimaryKeyArgs'] primary_keys: The key ARN and Region of the primary key. This is the current KMS key if it is the primary key. :param Sequence['GetKeyMultiRegionConfigurationReplicaKeyArgs'] replica_keys: The key ARNs and Regions of all replica keys. Includes the current KMS key if it is a replica key. """ - pulumi.set(__self__, "multi_region_key_type", multi_region_key_type) - pulumi.set(__self__, "primary_keys", primary_keys) - pulumi.set(__self__, "replica_keys", replica_keys) + GetKeyMultiRegionConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + multi_region_key_type=multi_region_key_type, + primary_keys=primary_keys, + replica_keys=replica_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + multi_region_key_type: Optional[str] = None, + primary_keys: Optional[Sequence['outputs.GetKeyMultiRegionConfigurationPrimaryKeyResult']] = None, + replica_keys: Optional[Sequence['outputs.GetKeyMultiRegionConfigurationReplicaKeyResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if multi_region_key_type is None and 'multiRegionKeyType' in kwargs: + multi_region_key_type = kwargs['multiRegionKeyType'] + if multi_region_key_type is None: + raise TypeError("Missing 'multi_region_key_type' argument") + if primary_keys is None and 'primaryKeys' in kwargs: + primary_keys = kwargs['primaryKeys'] + if primary_keys is None: + raise TypeError("Missing 'primary_keys' argument") + if replica_keys is None and 'replicaKeys' in kwargs: + replica_keys = kwargs['replicaKeys'] + if replica_keys is None: + raise TypeError("Missing 'replica_keys' argument") + + _setter("multi_region_key_type", multi_region_key_type) + _setter("primary_keys", primary_keys) + _setter("replica_keys", replica_keys) @property @pulumi.getter(name="multiRegionKeyType") @@ -119,8 +163,25 @@ def __init__(__self__, *, :param str arn: The key ARN of a primary or replica key of a multi-Region key. :param str region: The AWS Region of a primary or replica key in a multi-Region key. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "region", region) + GetKeyMultiRegionConfigurationPrimaryKeyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("arn", arn) + _setter("region", region) @property @pulumi.getter @@ -148,8 +209,25 @@ def __init__(__self__, *, :param str arn: The key ARN of a primary or replica key of a multi-Region key. :param str region: The AWS Region of a primary or replica key in a multi-Region key. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "region", region) + GetKeyMultiRegionConfigurationReplicaKeyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("arn", arn) + _setter("region", region) @property @pulumi.getter @@ -175,7 +253,20 @@ def __init__(__self__, *, """ :param str id: The globally unique identifier for the key """ - pulumi.set(__self__, "id", id) + GetKeyXksKeyConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) @property @pulumi.getter @@ -193,12 +284,35 @@ def __init__(__self__, *, payload: str, context: Optional[Mapping[str, str]] = None, grant_tokens: Optional[Sequence[str]] = None): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "payload", payload) + GetSecretSecretResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + payload=payload, + context=context, + grant_tokens=grant_tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + payload: Optional[str] = None, + context: Optional[Mapping[str, str]] = None, + grant_tokens: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if payload is None: + raise TypeError("Missing 'payload' argument") + if grant_tokens is None and 'grantTokens' in kwargs: + grant_tokens = kwargs['grantTokens'] + + _setter("name", name) + _setter("payload", payload) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if grant_tokens is not None: - pulumi.set(__self__, "grant_tokens", grant_tokens) + _setter("grant_tokens", grant_tokens) @property @pulumi.getter @@ -241,16 +355,47 @@ def __init__(__self__, *, For more information on `context` and `grant_tokens` see the [KMS Concepts](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "payload", payload) + GetSecretsSecretResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + payload=payload, + context=context, + encryption_algorithm=encryption_algorithm, + grant_tokens=grant_tokens, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + payload: Optional[str] = None, + context: Optional[Mapping[str, str]] = None, + encryption_algorithm: Optional[str] = None, + grant_tokens: Optional[Sequence[str]] = None, + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if payload is None: + raise TypeError("Missing 'payload' argument") + if encryption_algorithm is None and 'encryptionAlgorithm' in kwargs: + encryption_algorithm = kwargs['encryptionAlgorithm'] + if grant_tokens is None and 'grantTokens' in kwargs: + grant_tokens = kwargs['grantTokens'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("name", name) + _setter("payload", payload) if context is not None: - pulumi.set(__self__, "context", context) + _setter("context", context) if encryption_algorithm is not None: - pulumi.set(__self__, "encryption_algorithm", encryption_algorithm) + _setter("encryption_algorithm", encryption_algorithm) if grant_tokens is not None: - pulumi.set(__self__, "grant_tokens", grant_tokens) + _setter("grant_tokens", grant_tokens) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/kms/replica_external_key.py b/sdk/python/pulumi_aws/kms/replica_external_key.py index e969d7e2af2..d9bbde27990 100644 --- a/sdk/python/pulumi_aws/kms/replica_external_key.py +++ b/sdk/python/pulumi_aws/kms/replica_external_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ReplicaExternalKeyArgs', 'ReplicaExternalKey'] @@ -39,23 +39,62 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the replica key. 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] valid_to: Time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the key becomes unusable. If not specified, key material does not expire. Valid values: [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) (`YYYY-MM-DDTHH:MM:SSZ`) """ - pulumi.set(__self__, "primary_key_arn", primary_key_arn) + ReplicaExternalKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary_key_arn=primary_key_arn, + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + deletion_window_in_days=deletion_window_in_days, + description=description, + enabled=enabled, + key_material_base64=key_material_base64, + policy=policy, + tags=tags, + valid_to=valid_to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary_key_arn: Optional[pulumi.Input[str]] = None, + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + deletion_window_in_days: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + key_material_base64: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + valid_to: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary_key_arn is None and 'primaryKeyArn' in kwargs: + primary_key_arn = kwargs['primaryKeyArn'] + if primary_key_arn is None: + raise TypeError("Missing 'primary_key_arn' argument") + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if deletion_window_in_days is None and 'deletionWindowInDays' in kwargs: + deletion_window_in_days = kwargs['deletionWindowInDays'] + if key_material_base64 is None and 'keyMaterialBase64' in kwargs: + key_material_base64 = kwargs['keyMaterialBase64'] + if valid_to is None and 'validTo' in kwargs: + valid_to = kwargs['validTo'] + + _setter("primary_key_arn", primary_key_arn) if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if deletion_window_in_days is not None: - pulumi.set(__self__, "deletion_window_in_days", deletion_window_in_days) + _setter("deletion_window_in_days", deletion_window_in_days) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if key_material_base64 is not None: - pulumi.set(__self__, "key_material_base64", key_material_base64) + _setter("key_material_base64", key_material_base64) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if valid_to is not None: - pulumi.set(__self__, "valid_to", valid_to) + _setter("valid_to", valid_to) @property @pulumi.getter(name="primaryKeyArn") @@ -210,39 +249,98 @@ def __init__(__self__, *, :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] valid_to: Time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the key becomes unusable. If not specified, key material does not expire. Valid values: [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) (`YYYY-MM-DDTHH:MM:SSZ`) """ + _ReplicaExternalKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + deletion_window_in_days=deletion_window_in_days, + description=description, + enabled=enabled, + expiration_model=expiration_model, + key_id=key_id, + key_material_base64=key_material_base64, + key_state=key_state, + key_usage=key_usage, + policy=policy, + primary_key_arn=primary_key_arn, + tags=tags, + tags_all=tags_all, + valid_to=valid_to, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + deletion_window_in_days: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + expiration_model: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + key_material_base64: Optional[pulumi.Input[str]] = None, + key_state: Optional[pulumi.Input[str]] = None, + key_usage: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + primary_key_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + valid_to: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if deletion_window_in_days is None and 'deletionWindowInDays' in kwargs: + deletion_window_in_days = kwargs['deletionWindowInDays'] + if expiration_model is None and 'expirationModel' in kwargs: + expiration_model = kwargs['expirationModel'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_material_base64 is None and 'keyMaterialBase64' in kwargs: + key_material_base64 = kwargs['keyMaterialBase64'] + if key_state is None and 'keyState' in kwargs: + key_state = kwargs['keyState'] + if key_usage is None and 'keyUsage' in kwargs: + key_usage = kwargs['keyUsage'] + if primary_key_arn is None and 'primaryKeyArn' in kwargs: + primary_key_arn = kwargs['primaryKeyArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if valid_to is None and 'validTo' in kwargs: + valid_to = kwargs['validTo'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if deletion_window_in_days is not None: - pulumi.set(__self__, "deletion_window_in_days", deletion_window_in_days) + _setter("deletion_window_in_days", deletion_window_in_days) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if expiration_model is not None: - pulumi.set(__self__, "expiration_model", expiration_model) + _setter("expiration_model", expiration_model) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if key_material_base64 is not None: - pulumi.set(__self__, "key_material_base64", key_material_base64) + _setter("key_material_base64", key_material_base64) if key_state is not None: - pulumi.set(__self__, "key_state", key_state) + _setter("key_state", key_state) if key_usage is not None: - pulumi.set(__self__, "key_usage", key_usage) + _setter("key_usage", key_usage) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if primary_key_arn is not None: - pulumi.set(__self__, "primary_key_arn", primary_key_arn) + _setter("primary_key_arn", primary_key_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if valid_to is not None: - pulumi.set(__self__, "valid_to", valid_to) + _setter("valid_to", valid_to) @property @pulumi.getter @@ -547,6 +645,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicaExternalKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/kms/replica_key.py b/sdk/python/pulumi_aws/kms/replica_key.py index 766322480c8..16f8830381b 100644 --- a/sdk/python/pulumi_aws/kms/replica_key.py +++ b/sdk/python/pulumi_aws/kms/replica_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ReplicaKeyArgs', 'ReplicaKey'] @@ -35,19 +35,50 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The key policy to attach to the KMS key. If you do not specify a key policy, AWS KMS attaches the [default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) to the KMS key. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the replica key. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "primary_key_arn", primary_key_arn) + ReplicaKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + primary_key_arn=primary_key_arn, + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + deletion_window_in_days=deletion_window_in_days, + description=description, + enabled=enabled, + policy=policy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + primary_key_arn: Optional[pulumi.Input[str]] = None, + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + deletion_window_in_days: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if primary_key_arn is None and 'primaryKeyArn' in kwargs: + primary_key_arn = kwargs['primaryKeyArn'] + if primary_key_arn is None: + raise TypeError("Missing 'primary_key_arn' argument") + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if deletion_window_in_days is None and 'deletionWindowInDays' in kwargs: + deletion_window_in_days = kwargs['deletionWindowInDays'] + + _setter("primary_key_arn", primary_key_arn) if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if deletion_window_in_days is not None: - pulumi.set(__self__, "deletion_window_in_days", deletion_window_in_days) + _setter("deletion_window_in_days", deletion_window_in_days) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="primaryKeyArn") @@ -174,35 +205,86 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the replica key. 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. """ + _ReplicaKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bypass_policy_lockout_safety_check=bypass_policy_lockout_safety_check, + deletion_window_in_days=deletion_window_in_days, + description=description, + enabled=enabled, + key_id=key_id, + key_rotation_enabled=key_rotation_enabled, + key_spec=key_spec, + key_usage=key_usage, + policy=policy, + primary_key_arn=primary_key_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bypass_policy_lockout_safety_check: Optional[pulumi.Input[bool]] = None, + deletion_window_in_days: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + key_id: Optional[pulumi.Input[str]] = None, + key_rotation_enabled: Optional[pulumi.Input[bool]] = None, + key_spec: Optional[pulumi.Input[str]] = None, + key_usage: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + primary_key_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bypass_policy_lockout_safety_check is None and 'bypassPolicyLockoutSafetyCheck' in kwargs: + bypass_policy_lockout_safety_check = kwargs['bypassPolicyLockoutSafetyCheck'] + if deletion_window_in_days is None and 'deletionWindowInDays' in kwargs: + deletion_window_in_days = kwargs['deletionWindowInDays'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_rotation_enabled is None and 'keyRotationEnabled' in kwargs: + key_rotation_enabled = kwargs['keyRotationEnabled'] + if key_spec is None and 'keySpec' in kwargs: + key_spec = kwargs['keySpec'] + if key_usage is None and 'keyUsage' in kwargs: + key_usage = kwargs['keyUsage'] + if primary_key_arn is None and 'primaryKeyArn' in kwargs: + primary_key_arn = kwargs['primaryKeyArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bypass_policy_lockout_safety_check is not None: - pulumi.set(__self__, "bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) + _setter("bypass_policy_lockout_safety_check", bypass_policy_lockout_safety_check) if deletion_window_in_days is not None: - pulumi.set(__self__, "deletion_window_in_days", deletion_window_in_days) + _setter("deletion_window_in_days", deletion_window_in_days) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if key_rotation_enabled is not None: - pulumi.set(__self__, "key_rotation_enabled", key_rotation_enabled) + _setter("key_rotation_enabled", key_rotation_enabled) if key_spec is not None: - pulumi.set(__self__, "key_spec", key_spec) + _setter("key_spec", key_spec) if key_usage is not None: - pulumi.set(__self__, "key_usage", key_usage) + _setter("key_usage", key_usage) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if primary_key_arn is not None: - pulumi.set(__self__, "primary_key_arn", primary_key_arn) + _setter("primary_key_arn", primary_key_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -469,6 +551,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicaKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lakeformation/_inputs.py b/sdk/python/pulumi_aws/lakeformation/_inputs.py index a574f52c9e9..34b486f6ef7 100644 --- a/sdk/python/pulumi_aws/lakeformation/_inputs.py +++ b/sdk/python/pulumi_aws/lakeformation/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,10 +41,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] permissions: List of permissions that are granted to the principal. Valid values may include `ALL`, `SELECT`, `ALTER`, `DROP`, `DELETE`, `INSERT`, `DESCRIBE`, and `CREATE_TABLE`. For more details, see [Lake Formation Permissions Reference](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html). :param pulumi.Input[str] principal: Principal who is granted permissions. To enforce metadata and underlying data access control only by IAM on new databases and tables set `principal` to `IAM_ALLOWED_PRINCIPALS` and `permissions` to `["ALL"]`. """ + DataLakeSettingsCreateDatabaseDefaultPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) @property @pulumi.getter @@ -80,10 +93,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] permissions: List of permissions that are granted to the principal. Valid values may include `ALL`, `SELECT`, `ALTER`, `DROP`, `DELETE`, `INSERT`, and `DESCRIBE`. For more details, see [Lake Formation Permissions Reference](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html). :param pulumi.Input[str] principal: Principal who is granted permissions. To enforce metadata and underlying data access control only by IAM on new databases and tables set `principal` to `IAM_ALLOWED_PRINCIPALS` and `permissions` to `["ALL"]`. """ + DataLakeSettingsCreateTableDefaultPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) @property @pulumi.getter @@ -121,9 +147,26 @@ def __init__(__self__, *, The following argument is optional: :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog where the location is registered with Lake Formation. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "arn", arn) + PermissionsDataLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("arn", arn) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -163,9 +206,26 @@ def __init__(__self__, *, The following argument is optional: :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "name", name) + PermissionsDatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("name", name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -207,10 +267,31 @@ def __init__(__self__, *, The following argument is optional: :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + PermissionsLfTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("key", key) + _setter("values", values) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -264,10 +345,33 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_type: The resource type for which the tag policy applies. Valid values are `DATABASE` and `TABLE`. :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "expressions", expressions) - pulumi.set(__self__, "resource_type", resource_type) + PermissionsLfTagPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + expressions=expressions, + resource_type=resource_type, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + expressions: Optional[pulumi.Input[Sequence[pulumi.Input['PermissionsLfTagPolicyExpressionArgs']]]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expressions is None: + raise TypeError("Missing 'expressions' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("expressions", expressions) + _setter("resource_type", resource_type) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -317,8 +421,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key-name of an LF-Tag. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: A list of possible values of an LF-Tag. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + PermissionsLfTagPolicyExpressionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -360,13 +481,36 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "database_name", database_name) + PermissionsTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + catalog_id=catalog_id, + name=name, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + wildcard: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("database_name", database_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="databaseName") @@ -438,16 +582,49 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + PermissionsTableWithColumnsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + name=name, + catalog_id=catalog_id, + column_names=column_names, + excluded_column_names=excluded_column_names, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + excluded_column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + wildcard: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if excluded_column_names is None and 'excludedColumnNames' in kwargs: + excluded_column_names = kwargs['excludedColumnNames'] + + _setter("database_name", database_name) + _setter("name", name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if column_names is not None: - pulumi.set(__self__, "column_names", column_names) + _setter("column_names", column_names) if excluded_column_names is not None: - pulumi.set(__self__, "excluded_column_names", excluded_column_names) + _setter("excluded_column_names", excluded_column_names) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="databaseName") @@ -535,9 +712,26 @@ def __init__(__self__, *, The following argument is optional: :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "name", name) + ResourceLfTagsDatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("name", name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -579,10 +773,31 @@ def __init__(__self__, *, The following argument is optional: :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ResourceLfTagsLfTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("key", key) + _setter("value", value) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -638,13 +853,36 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "database_name", database_name) + ResourceLfTagsTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + catalog_id=catalog_id, + name=name, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + wildcard: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("database_name", database_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="databaseName") @@ -716,16 +954,49 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + ResourceLfTagsTableWithColumnsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + name=name, + catalog_id=catalog_id, + column_names=column_names, + excluded_column_names=excluded_column_names, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + excluded_column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + wildcard: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if excluded_column_names is None and 'excludedColumnNames' in kwargs: + excluded_column_names = kwargs['excludedColumnNames'] + + _setter("database_name", database_name) + _setter("name", name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if column_names is not None: - pulumi.set(__self__, "column_names", column_names) + _setter("column_names", column_names) if excluded_column_names is not None: - pulumi.set(__self__, "excluded_column_names", excluded_column_names) + _setter("excluded_column_names", excluded_column_names) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="databaseName") @@ -813,8 +1084,27 @@ def __init__(__self__, *, The following argument is optional: :param str catalog_id: Identifier for the Data Catalog where the location is registered with Lake Formation. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "catalog_id", catalog_id) + GetPermissionsDataLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + catalog_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + + _setter("arn", arn) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -854,8 +1144,27 @@ def __init__(__self__, *, The following argument is optional: """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "name", name) + GetPermissionsDatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("catalog_id", catalog_id) + _setter("name", name) @property @pulumi.getter(name="catalogId") @@ -897,9 +1206,32 @@ def __init__(__self__, *, The following argument is optional: """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + GetPermissionsLfTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("catalog_id", catalog_id) + _setter("key", key) + _setter("values", values) @property @pulumi.getter(name="catalogId") @@ -953,9 +1285,34 @@ def __init__(__self__, *, The following argument is optional: :param str resource_type: Resource type for which the tag policy applies. Valid values are `DATABASE` and `TABLE`. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "expressions", expressions) - pulumi.set(__self__, "resource_type", resource_type) + GetPermissionsLfTagPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + expressions=expressions, + resource_type=resource_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + expressions: Optional[Sequence['GetPermissionsLfTagPolicyExpressionArgs']] = None, + resource_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if expressions is None: + raise TypeError("Missing 'expressions' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + + _setter("catalog_id", catalog_id) + _setter("expressions", expressions) + _setter("resource_type", resource_type) @property @pulumi.getter(name="catalogId") @@ -1005,8 +1362,25 @@ def __init__(__self__, *, :param str key: Key-name of an LF-Tag. :param Sequence[str] values: List of possible values of an LF-Tag. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + GetPermissionsLfTagPolicyExpressionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -1048,11 +1422,38 @@ def __init__(__self__, *, :param str name: Name of the table. At least one of `name` or `wildcard` is required. :param bool wildcard: Whether to use a wildcard representing every table under a database. At least one of `name` or `wildcard` is required. Defaults to `false`. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + GetPermissionsTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + name=name, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + database_name: Optional[str] = None, + name: Optional[str] = None, + wildcard: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("catalog_id", catalog_id) + _setter("database_name", database_name) + _setter("name", name) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="catalogId") @@ -1124,15 +1525,50 @@ def __init__(__self__, *, :param Sequence[str] excluded_column_names: Set of column names for the table to exclude. At least one of `column_names` or `excluded_column_names` is required. :param bool wildcard: Whether to use a wildcard representing every table under a database. At least one of `name` or `wildcard` is required. Defaults to `false`. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + GetPermissionsTableWithColumnsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + name=name, + column_names=column_names, + excluded_column_names=excluded_column_names, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + database_name: Optional[str] = None, + name: Optional[str] = None, + column_names: Optional[Sequence[str]] = None, + excluded_column_names: Optional[Sequence[str]] = None, + wildcard: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if excluded_column_names is None and 'excludedColumnNames' in kwargs: + excluded_column_names = kwargs['excludedColumnNames'] + + _setter("catalog_id", catalog_id) + _setter("database_name", database_name) + _setter("name", name) if column_names is not None: - pulumi.set(__self__, "column_names", column_names) + _setter("column_names", column_names) if excluded_column_names is not None: - pulumi.set(__self__, "excluded_column_names", excluded_column_names) + _setter("excluded_column_names", excluded_column_names) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="catalogId") diff --git a/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py b/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py index 6f82129a653..2f19c779576 100644 --- a/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py +++ b/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,24 +39,67 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] read_only_admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_resource_owners: List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). """ + DataLakeSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + admins=admins, + allow_external_data_filtering=allow_external_data_filtering, + authorized_session_tag_value_lists=authorized_session_tag_value_lists, + catalog_id=catalog_id, + create_database_default_permissions=create_database_default_permissions, + create_table_default_permissions=create_table_default_permissions, + external_data_filtering_allow_lists=external_data_filtering_allow_lists, + read_only_admins=read_only_admins, + trusted_resource_owners=trusted_resource_owners, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allow_external_data_filtering: Optional[pulumi.Input[bool]] = None, + authorized_session_tag_value_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]]] = None, + create_table_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateTableDefaultPermissionArgs']]]] = None, + external_data_filtering_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + read_only_admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + trusted_resource_owners: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_external_data_filtering is None and 'allowExternalDataFiltering' in kwargs: + allow_external_data_filtering = kwargs['allowExternalDataFiltering'] + if authorized_session_tag_value_lists is None and 'authorizedSessionTagValueLists' in kwargs: + authorized_session_tag_value_lists = kwargs['authorizedSessionTagValueLists'] + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if create_database_default_permissions is None and 'createDatabaseDefaultPermissions' in kwargs: + create_database_default_permissions = kwargs['createDatabaseDefaultPermissions'] + if create_table_default_permissions is None and 'createTableDefaultPermissions' in kwargs: + create_table_default_permissions = kwargs['createTableDefaultPermissions'] + if external_data_filtering_allow_lists is None and 'externalDataFilteringAllowLists' in kwargs: + external_data_filtering_allow_lists = kwargs['externalDataFilteringAllowLists'] + if read_only_admins is None and 'readOnlyAdmins' in kwargs: + read_only_admins = kwargs['readOnlyAdmins'] + if trusted_resource_owners is None and 'trustedResourceOwners' in kwargs: + trusted_resource_owners = kwargs['trustedResourceOwners'] + if admins is not None: - pulumi.set(__self__, "admins", admins) + _setter("admins", admins) if allow_external_data_filtering is not None: - pulumi.set(__self__, "allow_external_data_filtering", allow_external_data_filtering) + _setter("allow_external_data_filtering", allow_external_data_filtering) if authorized_session_tag_value_lists is not None: - pulumi.set(__self__, "authorized_session_tag_value_lists", authorized_session_tag_value_lists) + _setter("authorized_session_tag_value_lists", authorized_session_tag_value_lists) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if create_database_default_permissions is not None: - pulumi.set(__self__, "create_database_default_permissions", create_database_default_permissions) + _setter("create_database_default_permissions", create_database_default_permissions) if create_table_default_permissions is not None: - pulumi.set(__self__, "create_table_default_permissions", create_table_default_permissions) + _setter("create_table_default_permissions", create_table_default_permissions) if external_data_filtering_allow_lists is not None: - pulumi.set(__self__, "external_data_filtering_allow_lists", external_data_filtering_allow_lists) + _setter("external_data_filtering_allow_lists", external_data_filtering_allow_lists) if read_only_admins is not None: - pulumi.set(__self__, "read_only_admins", read_only_admins) + _setter("read_only_admins", read_only_admins) if trusted_resource_owners is not None: - pulumi.set(__self__, "trusted_resource_owners", trusted_resource_owners) + _setter("trusted_resource_owners", trusted_resource_owners) @property @pulumi.getter @@ -195,24 +238,67 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] read_only_admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_resource_owners: List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). """ + _DataLakeSettingsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + admins=admins, + allow_external_data_filtering=allow_external_data_filtering, + authorized_session_tag_value_lists=authorized_session_tag_value_lists, + catalog_id=catalog_id, + create_database_default_permissions=create_database_default_permissions, + create_table_default_permissions=create_table_default_permissions, + external_data_filtering_allow_lists=external_data_filtering_allow_lists, + read_only_admins=read_only_admins, + trusted_resource_owners=trusted_resource_owners, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allow_external_data_filtering: Optional[pulumi.Input[bool]] = None, + authorized_session_tag_value_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]]] = None, + create_table_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateTableDefaultPermissionArgs']]]] = None, + external_data_filtering_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + read_only_admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + trusted_resource_owners: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_external_data_filtering is None and 'allowExternalDataFiltering' in kwargs: + allow_external_data_filtering = kwargs['allowExternalDataFiltering'] + if authorized_session_tag_value_lists is None and 'authorizedSessionTagValueLists' in kwargs: + authorized_session_tag_value_lists = kwargs['authorizedSessionTagValueLists'] + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if create_database_default_permissions is None and 'createDatabaseDefaultPermissions' in kwargs: + create_database_default_permissions = kwargs['createDatabaseDefaultPermissions'] + if create_table_default_permissions is None and 'createTableDefaultPermissions' in kwargs: + create_table_default_permissions = kwargs['createTableDefaultPermissions'] + if external_data_filtering_allow_lists is None and 'externalDataFilteringAllowLists' in kwargs: + external_data_filtering_allow_lists = kwargs['externalDataFilteringAllowLists'] + if read_only_admins is None and 'readOnlyAdmins' in kwargs: + read_only_admins = kwargs['readOnlyAdmins'] + if trusted_resource_owners is None and 'trustedResourceOwners' in kwargs: + trusted_resource_owners = kwargs['trustedResourceOwners'] + if admins is not None: - pulumi.set(__self__, "admins", admins) + _setter("admins", admins) if allow_external_data_filtering is not None: - pulumi.set(__self__, "allow_external_data_filtering", allow_external_data_filtering) + _setter("allow_external_data_filtering", allow_external_data_filtering) if authorized_session_tag_value_lists is not None: - pulumi.set(__self__, "authorized_session_tag_value_lists", authorized_session_tag_value_lists) + _setter("authorized_session_tag_value_lists", authorized_session_tag_value_lists) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if create_database_default_permissions is not None: - pulumi.set(__self__, "create_database_default_permissions", create_database_default_permissions) + _setter("create_database_default_permissions", create_database_default_permissions) if create_table_default_permissions is not None: - pulumi.set(__self__, "create_table_default_permissions", create_table_default_permissions) + _setter("create_table_default_permissions", create_table_default_permissions) if external_data_filtering_allow_lists is not None: - pulumi.set(__self__, "external_data_filtering_allow_lists", external_data_filtering_allow_lists) + _setter("external_data_filtering_allow_lists", external_data_filtering_allow_lists) if read_only_admins is not None: - pulumi.set(__self__, "read_only_admins", read_only_admins) + _setter("read_only_admins", read_only_admins) if trusted_resource_owners is not None: - pulumi.set(__self__, "trusted_resource_owners", trusted_resource_owners) + _setter("trusted_resource_owners", trusted_resource_owners) @property @pulumi.getter @@ -514,6 +600,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataLakeSettingsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py b/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py index 68e8acc4f16..0746a633876 100644 --- a/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py +++ b/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/lakeformation/get_permissions.py b/sdk/python/pulumi_aws/lakeformation/get_permissions.py index 38df3650ca9..80d2f299717 100644 --- a/sdk/python/pulumi_aws/lakeformation/get_permissions.py +++ b/sdk/python/pulumi_aws/lakeformation/get_permissions.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/lakeformation/get_resource.py b/sdk/python/pulumi_aws/lakeformation/get_resource.py index 2f4789fb310..4f2786f85e0 100644 --- a/sdk/python/pulumi_aws/lakeformation/get_resource.py +++ b/sdk/python/pulumi_aws/lakeformation/get_resource.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/lakeformation/lf_tag.py b/sdk/python/pulumi_aws/lakeformation/lf_tag.py index e7ac56d536a..a09793ceb99 100644 --- a/sdk/python/pulumi_aws/lakeformation/lf_tag.py +++ b/sdk/python/pulumi_aws/lakeformation/lf_tag.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LfTagArgs', 'LfTag'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of possible values an attribute can take. :param pulumi.Input[str] catalog_id: ID of the Data Catalog to create the tag in. If omitted, this defaults to the AWS Account ID. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + LfTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("key", key) + _setter("values", values) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -77,12 +98,29 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Key-name for the tag. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of possible values an attribute can take. """ + _LfTagState._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter(name="catalogId") @@ -204,6 +242,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LfTagArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lakeformation/outputs.py b/sdk/python/pulumi_aws/lakeformation/outputs.py index e6735e15788..9ae3bb5c458 100644 --- a/sdk/python/pulumi_aws/lakeformation/outputs.py +++ b/sdk/python/pulumi_aws/lakeformation/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -44,10 +44,23 @@ def __init__(__self__, *, :param Sequence[str] permissions: List of permissions that are granted to the principal. Valid values may include `ALL`, `SELECT`, `ALTER`, `DROP`, `DELETE`, `INSERT`, `DESCRIBE`, and `CREATE_TABLE`. For more details, see [Lake Formation Permissions Reference](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html). :param str principal: Principal who is granted permissions. To enforce metadata and underlying data access control only by IAM on new databases and tables set `principal` to `IAM_ALLOWED_PRINCIPALS` and `permissions` to `["ALL"]`. """ + DataLakeSettingsCreateDatabaseDefaultPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) @property @pulumi.getter @@ -75,10 +88,23 @@ def __init__(__self__, *, :param Sequence[str] permissions: List of permissions that are granted to the principal. Valid values may include `ALL`, `SELECT`, `ALTER`, `DROP`, `DELETE`, `INSERT`, and `DESCRIBE`. For more details, see [Lake Formation Permissions Reference](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html). :param str principal: Principal who is granted permissions. To enforce metadata and underlying data access control only by IAM on new databases and tables set `principal` to `IAM_ALLOWED_PRINCIPALS` and `permissions` to `["ALL"]`. """ + DataLakeSettingsCreateTableDefaultPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) @property @pulumi.getter @@ -125,9 +151,26 @@ def __init__(__self__, *, The following argument is optional: :param str catalog_id: Identifier for the Data Catalog where the location is registered with Lake Formation. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "arn", arn) + PermissionsDataLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + catalog_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("arn", arn) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -176,9 +219,26 @@ def __init__(__self__, *, The following argument is optional: :param str catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "name", name) + PermissionsDatabase._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + catalog_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("name", name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -229,10 +289,31 @@ def __init__(__self__, *, The following argument is optional: :param str catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + PermissionsLfTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + catalog_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("key", key) + _setter("values", values) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -293,10 +374,33 @@ def __init__(__self__, *, :param str resource_type: The resource type for which the tag policy applies. Valid values are `DATABASE` and `TABLE`. :param str catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "expressions", expressions) - pulumi.set(__self__, "resource_type", resource_type) + PermissionsLfTagPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + expressions=expressions, + resource_type=resource_type, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + expressions: Optional[Sequence['outputs.PermissionsLfTagPolicyExpression']] = None, + resource_type: Optional[str] = None, + catalog_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expressions is None: + raise TypeError("Missing 'expressions' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("expressions", expressions) + _setter("resource_type", resource_type) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -334,8 +438,25 @@ def __init__(__self__, *, :param str key: The key-name of an LF-Tag. :param Sequence[str] values: A list of possible values of an LF-Tag. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + PermissionsLfTagPolicyExpression._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -388,13 +509,36 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "database_name", database_name) + PermissionsTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + catalog_id=catalog_id, + name=name, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + catalog_id: Optional[str] = None, + name: Optional[str] = None, + wildcard: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("database_name", database_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="databaseName") @@ -473,16 +617,49 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + PermissionsTableWithColumns._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + name=name, + catalog_id=catalog_id, + column_names=column_names, + excluded_column_names=excluded_column_names, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + name: Optional[str] = None, + catalog_id: Optional[str] = None, + column_names: Optional[Sequence[str]] = None, + excluded_column_names: Optional[Sequence[str]] = None, + wildcard: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if excluded_column_names is None and 'excludedColumnNames' in kwargs: + excluded_column_names = kwargs['excludedColumnNames'] + + _setter("database_name", database_name) + _setter("name", name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if column_names is not None: - pulumi.set(__self__, "column_names", column_names) + _setter("column_names", column_names) if excluded_column_names is not None: - pulumi.set(__self__, "excluded_column_names", excluded_column_names) + _setter("excluded_column_names", excluded_column_names) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="databaseName") @@ -563,9 +740,26 @@ def __init__(__self__, *, The following argument is optional: :param str catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "name", name) + ResourceLfTagsDatabase._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + catalog_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("name", name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -616,10 +810,31 @@ def __init__(__self__, *, The following argument is optional: :param str catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ResourceLfTagsLfTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + catalog_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("key", key) + _setter("value", value) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -682,13 +897,36 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "database_name", database_name) + ResourceLfTagsTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + catalog_id=catalog_id, + name=name, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + catalog_id: Optional[str] = None, + name: Optional[str] = None, + wildcard: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + + _setter("database_name", database_name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="databaseName") @@ -767,16 +1005,49 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + ResourceLfTagsTableWithColumns._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + name=name, + catalog_id=catalog_id, + column_names=column_names, + excluded_column_names=excluded_column_names, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + name: Optional[str] = None, + catalog_id: Optional[str] = None, + column_names: Optional[Sequence[str]] = None, + excluded_column_names: Optional[Sequence[str]] = None, + wildcard: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if excluded_column_names is None and 'excludedColumnNames' in kwargs: + excluded_column_names = kwargs['excludedColumnNames'] + + _setter("database_name", database_name) + _setter("name", name) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if column_names is not None: - pulumi.set(__self__, "column_names", column_names) + _setter("column_names", column_names) if excluded_column_names is not None: - pulumi.set(__self__, "excluded_column_names", excluded_column_names) + _setter("excluded_column_names", excluded_column_names) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="databaseName") @@ -838,8 +1109,25 @@ def __init__(__self__, *, :param Sequence[str] permissions: List of permissions granted to the principal. :param str principal: Principal who is granted permissions. """ - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "principal", principal) + GetDataLakeSettingsCreateDatabaseDefaultPermissionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("permissions", permissions) + _setter("principal", principal) @property @pulumi.getter @@ -867,8 +1155,25 @@ def __init__(__self__, *, :param Sequence[str] permissions: List of permissions granted to the principal. :param str principal: Principal who is granted permissions. """ - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "principal", principal) + GetDataLakeSettingsCreateTableDefaultPermissionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("permissions", permissions) + _setter("principal", principal) @property @pulumi.getter @@ -898,8 +1203,27 @@ def __init__(__self__, *, The following argument is optional: :param str catalog_id: Identifier for the Data Catalog where the location is registered with Lake Formation. By default, it is the account ID of the caller. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "catalog_id", catalog_id) + GetPermissionsDataLocationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + catalog_id=catalog_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + catalog_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + + _setter("arn", arn) + _setter("catalog_id", catalog_id) @property @pulumi.getter @@ -931,8 +1255,27 @@ def __init__(__self__, *, The following argument is optional: """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "name", name) + GetPermissionsDatabaseResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("catalog_id", catalog_id) + _setter("name", name) @property @pulumi.getter(name="catalogId") @@ -966,9 +1309,32 @@ def __init__(__self__, *, The following argument is optional: """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + GetPermissionsLfTagResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("catalog_id", catalog_id) + _setter("key", key) + _setter("values", values) @property @pulumi.getter(name="catalogId") @@ -1010,9 +1376,34 @@ def __init__(__self__, *, The following argument is optional: :param str resource_type: Resource type for which the tag policy applies. Valid values are `DATABASE` and `TABLE`. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "expressions", expressions) - pulumi.set(__self__, "resource_type", resource_type) + GetPermissionsLfTagPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + expressions=expressions, + resource_type=resource_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + expressions: Optional[Sequence['outputs.GetPermissionsLfTagPolicyExpressionResult']] = None, + resource_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if expressions is None: + raise TypeError("Missing 'expressions' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + + _setter("catalog_id", catalog_id) + _setter("expressions", expressions) + _setter("resource_type", resource_type) @property @pulumi.getter(name="catalogId") @@ -1050,8 +1441,25 @@ def __init__(__self__, *, :param str key: Key-name of an LF-Tag. :param Sequence[str] values: List of possible values of an LF-Tag. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + GetPermissionsLfTagPolicyExpressionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -1085,11 +1493,38 @@ def __init__(__self__, *, :param str name: Name of the table. At least one of `name` or `wildcard` is required. :param bool wildcard: Whether to use a wildcard representing every table under a database. At least one of `name` or `wildcard` is required. Defaults to `false`. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + GetPermissionsTableResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + name=name, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + database_name: Optional[str] = None, + name: Optional[str] = None, + wildcard: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("catalog_id", catalog_id) + _setter("database_name", database_name) + _setter("name", name) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="catalogId") @@ -1145,15 +1580,50 @@ def __init__(__self__, *, :param Sequence[str] excluded_column_names: Set of column names for the table to exclude. At least one of `column_names` or `excluded_column_names` is required. :param bool wildcard: Whether to use a wildcard representing every table under a database. At least one of `name` or `wildcard` is required. Defaults to `false`. """ - pulumi.set(__self__, "catalog_id", catalog_id) - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "name", name) + GetPermissionsTableWithColumnsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database_name=database_name, + name=name, + column_names=column_names, + excluded_column_names=excluded_column_names, + wildcard=wildcard, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[str] = None, + database_name: Optional[str] = None, + name: Optional[str] = None, + column_names: Optional[Sequence[str]] = None, + excluded_column_names: Optional[Sequence[str]] = None, + wildcard: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_id is None: + raise TypeError("Missing 'catalog_id' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if excluded_column_names is None and 'excludedColumnNames' in kwargs: + excluded_column_names = kwargs['excludedColumnNames'] + + _setter("catalog_id", catalog_id) + _setter("database_name", database_name) + _setter("name", name) if column_names is not None: - pulumi.set(__self__, "column_names", column_names) + _setter("column_names", column_names) if excluded_column_names is not None: - pulumi.set(__self__, "excluded_column_names", excluded_column_names) + _setter("excluded_column_names", excluded_column_names) if wildcard is not None: - pulumi.set(__self__, "wildcard", wildcard) + _setter("wildcard", wildcard) @property @pulumi.getter(name="catalogId") diff --git a/sdk/python/pulumi_aws/lakeformation/permissions.py b/sdk/python/pulumi_aws/lakeformation/permissions.py index 54b6122103b..daea353ed73 100644 --- a/sdk/python/pulumi_aws/lakeformation/permissions.py +++ b/sdk/python/pulumi_aws/lakeformation/permissions.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,26 +47,75 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "principal", principal) + PermissionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + principal=principal, + catalog_id=catalog_id, + catalog_resource=catalog_resource, + data_location=data_location, + database=database, + lf_tag=lf_tag, + lf_tag_policy=lf_tag_policy, + permissions_with_grant_options=permissions_with_grant_options, + table=table, + table_with_columns=table_with_columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + catalog_resource: Optional[pulumi.Input[bool]] = None, + data_location: Optional[pulumi.Input['PermissionsDataLocationArgs']] = None, + database: Optional[pulumi.Input['PermissionsDatabaseArgs']] = None, + lf_tag: Optional[pulumi.Input['PermissionsLfTagArgs']] = None, + lf_tag_policy: Optional[pulumi.Input['PermissionsLfTagPolicyArgs']] = None, + permissions_with_grant_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + table: Optional[pulumi.Input['PermissionsTableArgs']] = None, + table_with_columns: Optional[pulumi.Input['PermissionsTableWithColumnsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_resource is None and 'catalogResource' in kwargs: + catalog_resource = kwargs['catalogResource'] + if data_location is None and 'dataLocation' in kwargs: + data_location = kwargs['dataLocation'] + if lf_tag is None and 'lfTag' in kwargs: + lf_tag = kwargs['lfTag'] + if lf_tag_policy is None and 'lfTagPolicy' in kwargs: + lf_tag_policy = kwargs['lfTagPolicy'] + if permissions_with_grant_options is None and 'permissionsWithGrantOptions' in kwargs: + permissions_with_grant_options = kwargs['permissionsWithGrantOptions'] + if table_with_columns is None and 'tableWithColumns' in kwargs: + table_with_columns = kwargs['tableWithColumns'] + + _setter("permissions", permissions) + _setter("principal", principal) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if catalog_resource is not None: - pulumi.set(__self__, "catalog_resource", catalog_resource) + _setter("catalog_resource", catalog_resource) if data_location is not None: - pulumi.set(__self__, "data_location", data_location) + _setter("data_location", data_location) if database is not None: - pulumi.set(__self__, "database", database) + _setter("database", database) if lf_tag is not None: - pulumi.set(__self__, "lf_tag", lf_tag) + _setter("lf_tag", lf_tag) if lf_tag_policy is not None: - pulumi.set(__self__, "lf_tag_policy", lf_tag_policy) + _setter("lf_tag_policy", lf_tag_policy) if permissions_with_grant_options is not None: - pulumi.set(__self__, "permissions_with_grant_options", permissions_with_grant_options) + _setter("permissions_with_grant_options", permissions_with_grant_options) if table is not None: - pulumi.set(__self__, "table", table) + _setter("table", table) if table_with_columns is not None: - pulumi.set(__self__, "table_with_columns", table_with_columns) + _setter("table_with_columns", table_with_columns) @property @pulumi.getter @@ -241,28 +290,73 @@ def __init__(__self__, *, The following arguments are optional: """ + _PermissionsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + catalog_resource=catalog_resource, + data_location=data_location, + database=database, + lf_tag=lf_tag, + lf_tag_policy=lf_tag_policy, + permissions=permissions, + permissions_with_grant_options=permissions_with_grant_options, + principal=principal, + table=table, + table_with_columns=table_with_columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + catalog_resource: Optional[pulumi.Input[bool]] = None, + data_location: Optional[pulumi.Input['PermissionsDataLocationArgs']] = None, + database: Optional[pulumi.Input['PermissionsDatabaseArgs']] = None, + lf_tag: Optional[pulumi.Input['PermissionsLfTagArgs']] = None, + lf_tag_policy: Optional[pulumi.Input['PermissionsLfTagPolicyArgs']] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + permissions_with_grant_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + table: Optional[pulumi.Input['PermissionsTableArgs']] = None, + table_with_columns: Optional[pulumi.Input['PermissionsTableWithColumnsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if catalog_resource is None and 'catalogResource' in kwargs: + catalog_resource = kwargs['catalogResource'] + if data_location is None and 'dataLocation' in kwargs: + data_location = kwargs['dataLocation'] + if lf_tag is None and 'lfTag' in kwargs: + lf_tag = kwargs['lfTag'] + if lf_tag_policy is None and 'lfTagPolicy' in kwargs: + lf_tag_policy = kwargs['lfTagPolicy'] + if permissions_with_grant_options is None and 'permissionsWithGrantOptions' in kwargs: + permissions_with_grant_options = kwargs['permissionsWithGrantOptions'] + if table_with_columns is None and 'tableWithColumns' in kwargs: + table_with_columns = kwargs['tableWithColumns'] + if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if catalog_resource is not None: - pulumi.set(__self__, "catalog_resource", catalog_resource) + _setter("catalog_resource", catalog_resource) if data_location is not None: - pulumi.set(__self__, "data_location", data_location) + _setter("data_location", data_location) if database is not None: - pulumi.set(__self__, "database", database) + _setter("database", database) if lf_tag is not None: - pulumi.set(__self__, "lf_tag", lf_tag) + _setter("lf_tag", lf_tag) if lf_tag_policy is not None: - pulumi.set(__self__, "lf_tag_policy", lf_tag_policy) + _setter("lf_tag_policy", lf_tag_policy) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if permissions_with_grant_options is not None: - pulumi.set(__self__, "permissions_with_grant_options", permissions_with_grant_options) + _setter("permissions_with_grant_options", permissions_with_grant_options) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if table is not None: - pulumi.set(__self__, "table", table) + _setter("table", table) if table_with_columns is not None: - pulumi.set(__self__, "table_with_columns", table_with_columns) + _setter("table_with_columns", table_with_columns) @property @pulumi.getter(name="catalogId") @@ -742,6 +836,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PermissionsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -769,9 +867,13 @@ def _internal_init(__self__, __props__.__dict__["catalog_id"] = catalog_id __props__.__dict__["catalog_resource"] = catalog_resource + data_location = _utilities.configure(data_location, PermissionsDataLocationArgs, True) __props__.__dict__["data_location"] = data_location + database = _utilities.configure(database, PermissionsDatabaseArgs, True) __props__.__dict__["database"] = database + lf_tag = _utilities.configure(lf_tag, PermissionsLfTagArgs, True) __props__.__dict__["lf_tag"] = lf_tag + lf_tag_policy = _utilities.configure(lf_tag_policy, PermissionsLfTagPolicyArgs, True) __props__.__dict__["lf_tag_policy"] = lf_tag_policy if permissions is None and not opts.urn: raise TypeError("Missing required property 'permissions'") @@ -780,7 +882,9 @@ def _internal_init(__self__, if principal is None and not opts.urn: raise TypeError("Missing required property 'principal'") __props__.__dict__["principal"] = principal + table = _utilities.configure(table, PermissionsTableArgs, True) __props__.__dict__["table"] = table + table_with_columns = _utilities.configure(table_with_columns, PermissionsTableWithColumnsArgs, True) __props__.__dict__["table_with_columns"] = table_with_columns super(Permissions, __self__).__init__( 'aws:lakeformation/permissions:Permissions', diff --git a/sdk/python/pulumi_aws/lakeformation/resource.py b/sdk/python/pulumi_aws/lakeformation/resource.py index f5346bf698e..b03d3dc1d8a 100644 --- a/sdk/python/pulumi_aws/lakeformation/resource.py +++ b/sdk/python/pulumi_aws/lakeformation/resource.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourceArgs', 'Resource'] @@ -23,9 +23,26 @@ def __init__(__self__, *, > **NOTE:** AWS does not support registering an S3 location with an IAM role and subsequently updating the S3 location registration to a service-linked role. """ - pulumi.set(__self__, "arn", arn) + ResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("arn", arn) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter @@ -68,12 +85,31 @@ def __init__(__self__, *, > **NOTE:** AWS does not support registering an S3 location with an IAM role and subsequently updating the S3 location registration to a service-linked role. """ + _ResourceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + last_modified=last_modified, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + last_modified: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if last_modified is None and 'lastModified' in kwargs: + last_modified = kwargs['lastModified'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if last_modified is not None: - pulumi.set(__self__, "last_modified", last_modified) + _setter("last_modified", last_modified) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter @@ -175,6 +211,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lakeformation/resource_lf_tags.py b/sdk/python/pulumi_aws/lakeformation/resource_lf_tags.py index f6b82bb416f..f7c22bc4eac 100644 --- a/sdk/python/pulumi_aws/lakeformation/resource_lf_tags.py +++ b/sdk/python/pulumi_aws/lakeformation/resource_lf_tags.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,15 +33,42 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "lf_tags", lf_tags) + ResourceLfTagsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lf_tags=lf_tags, + catalog_id=catalog_id, + database=database, + table=table, + table_with_columns=table_with_columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lf_tags: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceLfTagsLfTagArgs']]]] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + database: Optional[pulumi.Input['ResourceLfTagsDatabaseArgs']] = None, + table: Optional[pulumi.Input['ResourceLfTagsTableArgs']] = None, + table_with_columns: Optional[pulumi.Input['ResourceLfTagsTableWithColumnsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lf_tags is None and 'lfTags' in kwargs: + lf_tags = kwargs['lfTags'] + if lf_tags is None: + raise TypeError("Missing 'lf_tags' argument") + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if table_with_columns is None and 'tableWithColumns' in kwargs: + table_with_columns = kwargs['tableWithColumns'] + + _setter("lf_tags", lf_tags) if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if database is not None: - pulumi.set(__self__, "database", database) + _setter("database", database) if table is not None: - pulumi.set(__self__, "table", table) + _setter("table", table) if table_with_columns is not None: - pulumi.set(__self__, "table_with_columns", table_with_columns) + _setter("table_with_columns", table_with_columns) @property @pulumi.getter(name="lfTags") @@ -128,16 +155,41 @@ def __init__(__self__, *, The following arguments are optional: """ + _ResourceLfTagsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog_id=catalog_id, + database=database, + lf_tags=lf_tags, + table=table, + table_with_columns=table_with_columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog_id: Optional[pulumi.Input[str]] = None, + database: Optional[pulumi.Input['ResourceLfTagsDatabaseArgs']] = None, + lf_tags: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceLfTagsLfTagArgs']]]] = None, + table: Optional[pulumi.Input['ResourceLfTagsTableArgs']] = None, + table_with_columns: Optional[pulumi.Input['ResourceLfTagsTableWithColumnsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog_id is None and 'catalogId' in kwargs: + catalog_id = kwargs['catalogId'] + if lf_tags is None and 'lfTags' in kwargs: + lf_tags = kwargs['lfTags'] + if table_with_columns is None and 'tableWithColumns' in kwargs: + table_with_columns = kwargs['tableWithColumns'] + if catalog_id is not None: - pulumi.set(__self__, "catalog_id", catalog_id) + _setter("catalog_id", catalog_id) if database is not None: - pulumi.set(__self__, "database", database) + _setter("database", database) if lf_tags is not None: - pulumi.set(__self__, "lf_tags", lf_tags) + _setter("lf_tags", lf_tags) if table is not None: - pulumi.set(__self__, "table", table) + _setter("table", table) if table_with_columns is not None: - pulumi.set(__self__, "table_with_columns", table_with_columns) + _setter("table_with_columns", table_with_columns) @property @pulumi.getter(name="catalogId") @@ -395,6 +447,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceLfTagsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -415,11 +471,14 @@ def _internal_init(__self__, __props__ = ResourceLfTagsArgs.__new__(ResourceLfTagsArgs) __props__.__dict__["catalog_id"] = catalog_id + database = _utilities.configure(database, ResourceLfTagsDatabaseArgs, True) __props__.__dict__["database"] = database if lf_tags is None and not opts.urn: raise TypeError("Missing required property 'lf_tags'") __props__.__dict__["lf_tags"] = lf_tags + table = _utilities.configure(table, ResourceLfTagsTableArgs, True) __props__.__dict__["table"] = table + table_with_columns = _utilities.configure(table_with_columns, ResourceLfTagsTableWithColumnsArgs, True) __props__.__dict__["table_with_columns"] = table_with_columns super(ResourceLfTags, __self__).__init__( 'aws:lakeformation/resourceLfTags:ResourceLfTags', diff --git a/sdk/python/pulumi_aws/lambda_/_inputs.py b/sdk/python/pulumi_aws/lambda_/_inputs.py index 4e4fc3b873d..7bd70bcb914 100644 --- a/sdk/python/pulumi_aws/lambda_/_inputs.py +++ b/sdk/python/pulumi_aws/lambda_/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -45,8 +45,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Mapping[str, pulumi.Input[float]]] additional_version_weights: A map that defines the proportion of events that should be sent to different versions of a lambda function. """ + AliasRoutingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_version_weights=additional_version_weights, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_version_weights: Optional[pulumi.Input[Mapping[str, pulumi.Input[float]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_version_weights is None and 'additionalVersionWeights' in kwargs: + additional_version_weights = kwargs['additionalVersionWeights'] + if additional_version_weights is not None: - pulumi.set(__self__, "additional_version_weights", additional_version_weights) + _setter("additional_version_weights", additional_version_weights) @property @pulumi.getter(name="additionalVersionWeights") @@ -68,7 +81,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] signing_profile_version_arns: The Amazon Resource Name (ARN) for each of the signing profiles. A signing profile defines a trusted user who can sign a code package. """ - pulumi.set(__self__, "signing_profile_version_arns", signing_profile_version_arns) + CodeSigningConfigAllowedPublishersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + signing_profile_version_arns=signing_profile_version_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + signing_profile_version_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if signing_profile_version_arns is None and 'signingProfileVersionArns' in kwargs: + signing_profile_version_arns = kwargs['signingProfileVersionArns'] + if signing_profile_version_arns is None: + raise TypeError("Missing 'signing_profile_version_arns' argument") + + _setter("signing_profile_version_arns", signing_profile_version_arns) @property @pulumi.getter(name="signingProfileVersionArns") @@ -90,7 +118,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] untrusted_artifact_on_deployment: Code signing configuration policy for deployment validation failure. If you set the policy to Enforce, Lambda blocks the deployment request if code-signing validation checks fail. If you set the policy to Warn, Lambda allows the deployment and creates a CloudWatch log. Valid values: `Warn`, `Enforce`. Default value: `Warn`. """ - pulumi.set(__self__, "untrusted_artifact_on_deployment", untrusted_artifact_on_deployment) + CodeSigningConfigPoliciesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + untrusted_artifact_on_deployment=untrusted_artifact_on_deployment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + untrusted_artifact_on_deployment: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if untrusted_artifact_on_deployment is None and 'untrustedArtifactOnDeployment' in kwargs: + untrusted_artifact_on_deployment = kwargs['untrustedArtifactOnDeployment'] + if untrusted_artifact_on_deployment is None: + raise TypeError("Missing 'untrusted_artifact_on_deployment' argument") + + _setter("untrusted_artifact_on_deployment", untrusted_artifact_on_deployment) @property @pulumi.getter(name="untrustedArtifactOnDeployment") @@ -112,8 +155,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] consumer_group_id: A Kafka consumer group ID between 1 and 200 characters for use when creating this event source mapping. If one is not specified, this value will be automatically generated. See [AmazonManagedKafkaEventSourceConfig Syntax](https://docs.aws.amazon.com/lambda/latest/dg/API_AmazonManagedKafkaEventSourceConfig.html). """ + EventSourceMappingAmazonManagedKafkaEventSourceConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + consumer_group_id=consumer_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + consumer_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if consumer_group_id is None and 'consumerGroupId' in kwargs: + consumer_group_id = kwargs['consumerGroupId'] + if consumer_group_id is not None: - pulumi.set(__self__, "consumer_group_id", consumer_group_id) + _setter("consumer_group_id", consumer_group_id) @property @pulumi.getter(name="consumerGroupId") @@ -135,8 +191,21 @@ def __init__(__self__, *, """ :param pulumi.Input['EventSourceMappingDestinationConfigOnFailureArgs'] on_failure: The destination configuration for failed invocations. Detailed below. """ + EventSourceMappingDestinationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_failure=on_failure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_failure: Optional[pulumi.Input['EventSourceMappingDestinationConfigOnFailureArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_failure is None and 'onFailure' in kwargs: + on_failure = kwargs['onFailure'] + if on_failure is not None: - pulumi.set(__self__, "on_failure", on_failure) + _setter("on_failure", on_failure) @property @pulumi.getter(name="onFailure") @@ -158,7 +227,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination_arn: The Amazon Resource Name (ARN) of the destination resource. """ - pulumi.set(__self__, "destination_arn", destination_arn) + EventSourceMappingDestinationConfigOnFailureArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + + _setter("destination_arn", destination_arn) @property @pulumi.getter(name="destinationArn") @@ -184,11 +268,34 @@ def __init__(__self__, *, :param pulumi.Input[str] collection_name: The name of the collection to consume within the database. If you do not specify a collection, Lambda consumes all collections. :param pulumi.Input[str] full_document: Determines what DocumentDB sends to your event stream during document update operations. If set to `UpdateLookup`, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes. Valid values: `UpdateLookup`, `Default`. """ - pulumi.set(__self__, "database_name", database_name) + EventSourceMappingDocumentDbEventSourceConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + collection_name=collection_name, + full_document=full_document, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + collection_name: Optional[pulumi.Input[str]] = None, + full_document: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if collection_name is None and 'collectionName' in kwargs: + collection_name = kwargs['collectionName'] + if full_document is None and 'fullDocument' in kwargs: + full_document = kwargs['fullDocument'] + + _setter("database_name", database_name) if collection_name is not None: - pulumi.set(__self__, "collection_name", collection_name) + _setter("collection_name", collection_name) if full_document is not None: - pulumi.set(__self__, "full_document", full_document) + _setter("full_document", full_document) @property @pulumi.getter(name="databaseName") @@ -234,8 +341,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['EventSourceMappingFilterCriteriaFilterArgs']]] filters: A set of up to 5 filter. If an event satisfies at least one, Lambda sends the event to the function or adds it to the next batch. Detailed below. """ + EventSourceMappingFilterCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filters=filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filters: Optional[pulumi.Input[Sequence[pulumi.Input['EventSourceMappingFilterCriteriaFilterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) @property @pulumi.getter @@ -257,8 +375,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] pattern: A filter pattern up to 4096 characters. See [Filter Rule Syntax](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-syntax). """ + EventSourceMappingFilterCriteriaFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pattern=pattern, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pattern: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pattern is not None: - pulumi.set(__self__, "pattern", pattern) + _setter("pattern", pattern) @property @pulumi.getter @@ -280,8 +409,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] maximum_concurrency: Limits the number of concurrent instances that the Amazon SQS event source can invoke. Must be between `2` and `1000`. See [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). """ + EventSourceMappingScalingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_concurrency=maximum_concurrency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_concurrency: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_concurrency is None and 'maximumConcurrency' in kwargs: + maximum_concurrency = kwargs['maximumConcurrency'] + if maximum_concurrency is not None: - pulumi.set(__self__, "maximum_concurrency", maximum_concurrency) + _setter("maximum_concurrency", maximum_concurrency) @property @pulumi.getter(name="maximumConcurrency") @@ -303,7 +445,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] endpoints: A map of endpoints for the self managed source. For Kafka self-managed sources, the key should be `KAFKA_BOOTSTRAP_SERVERS` and the value should be a string with a comma separated list of broker endpoints. """ - pulumi.set(__self__, "endpoints", endpoints) + EventSourceMappingSelfManagedEventSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoints=endpoints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoints: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoints is None: + raise TypeError("Missing 'endpoints' argument") + + _setter("endpoints", endpoints) @property @pulumi.getter @@ -325,8 +480,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] consumer_group_id: A Kafka consumer group ID between 1 and 200 characters for use when creating this event source mapping. If one is not specified, this value will be automatically generated. See [SelfManagedKafkaEventSourceConfig Syntax](https://docs.aws.amazon.com/lambda/latest/dg/API_SelfManagedKafkaEventSourceConfig.html). """ + EventSourceMappingSelfManagedKafkaEventSourceConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + consumer_group_id=consumer_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + consumer_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if consumer_group_id is None and 'consumerGroupId' in kwargs: + consumer_group_id = kwargs['consumerGroupId'] + if consumer_group_id is not None: - pulumi.set(__self__, "consumer_group_id", consumer_group_id) + _setter("consumer_group_id", consumer_group_id) @property @pulumi.getter(name="consumerGroupId") @@ -350,8 +518,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of this configuration. For Self Managed Kafka you will need to supply blocks for type `VPC_SUBNET` and `VPC_SECURITY_GROUP`. :param pulumi.Input[str] uri: The URI for this configuration. For type `VPC_SUBNET` the value should be `subnet:subnet_id` where `subnet_id` is the value you would find in an ec2.Subnet resource's id attribute. For type `VPC_SECURITY_GROUP` the value should be `security_group:security_group_id` where `security_group_id` is the value you would find in an ec2.SecurityGroup resource's id attribute. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "uri", uri) + EventSourceMappingSourceAccessConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("type", type) + _setter("uri", uri) @property @pulumi.getter @@ -385,7 +570,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] target_arn: ARN of an SNS topic or SQS queue to notify when an invocation fails. If this option is used, the function's IAM role must be granted suitable access to write to the target object, which means allowing either the `sns:Publish` or `sqs:SendMessage` action on this ARN, depending on which service is targeted. """ - pulumi.set(__self__, "target_arn", target_arn) + FunctionDeadLetterConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_arn=target_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + + _setter("target_arn", target_arn) @property @pulumi.getter(name="targetArn") @@ -407,8 +607,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] variables: Map of environment variables that are accessible from the function code during execution. If provided at least one key must be present. """ + FunctionEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + variables=variables, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if variables is not None: - pulumi.set(__self__, "variables", variables) + _setter("variables", variables) @property @pulumi.getter @@ -430,8 +641,19 @@ def __init__(__self__, *, """ :param pulumi.Input[int] size: The size of the Lambda function Ephemeral storage(`/tmp`) represented in MB. The minimum supported `ephemeral_storage` value defaults to `512`MB and the maximum supported value is `10240`MB. """ + FunctionEphemeralStorageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is not None: - pulumi.set(__self__, "size", size) + _setter("size", size) @property @pulumi.getter @@ -455,10 +677,27 @@ def __init__(__self__, *, :param pulumi.Input['FunctionEventInvokeConfigDestinationConfigOnFailureArgs'] on_failure: Configuration block with destination configuration for failed asynchronous invocations. See below for details. :param pulumi.Input['FunctionEventInvokeConfigDestinationConfigOnSuccessArgs'] on_success: Configuration block with destination configuration for successful asynchronous invocations. See below for details. """ + FunctionEventInvokeConfigDestinationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_failure=on_failure, + on_success=on_success, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_failure: Optional[pulumi.Input['FunctionEventInvokeConfigDestinationConfigOnFailureArgs']] = None, + on_success: Optional[pulumi.Input['FunctionEventInvokeConfigDestinationConfigOnSuccessArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_failure is None and 'onFailure' in kwargs: + on_failure = kwargs['onFailure'] + if on_success is None and 'onSuccess' in kwargs: + on_success = kwargs['onSuccess'] + if on_failure is not None: - pulumi.set(__self__, "on_failure", on_failure) + _setter("on_failure", on_failure) if on_success is not None: - pulumi.set(__self__, "on_success", on_success) + _setter("on_success", on_success) @property @pulumi.getter(name="onFailure") @@ -492,7 +731,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination: Amazon Resource Name (ARN) of the destination resource. See the [Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations) for acceptable resource types and associated IAM permissions. """ - pulumi.set(__self__, "destination", destination) + FunctionEventInvokeConfigDestinationConfigOnFailureArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + + _setter("destination", destination) @property @pulumi.getter @@ -514,7 +766,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination: Amazon Resource Name (ARN) of the destination resource. See the [Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations) for acceptable resource types and associated IAM permissions. """ - pulumi.set(__self__, "destination", destination) + FunctionEventInvokeConfigDestinationConfigOnSuccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + + _setter("destination", destination) @property @pulumi.getter @@ -538,8 +803,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of the Amazon EFS Access Point that provides access to the file system. :param pulumi.Input[str] local_mount_path: Path where the function can access the file system, starting with /mnt/. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "local_mount_path", local_mount_path) + FunctionFileSystemConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + local_mount_path=local_mount_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + local_mount_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if local_mount_path is None and 'localMountPath' in kwargs: + local_mount_path = kwargs['localMountPath'] + if local_mount_path is None: + raise TypeError("Missing 'local_mount_path' argument") + + _setter("arn", arn) + _setter("local_mount_path", local_mount_path) @property @pulumi.getter @@ -577,12 +861,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] entry_points: Entry point to your application, which is typically the location of the runtime executable. :param pulumi.Input[str] working_directory: Working directory. """ + FunctionImageConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + commands=commands, + entry_points=entry_points, + working_directory=working_directory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + commands: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + entry_points: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + working_directory: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry_points is None and 'entryPoints' in kwargs: + entry_points = kwargs['entryPoints'] + if working_directory is None and 'workingDirectory' in kwargs: + working_directory = kwargs['workingDirectory'] + if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if entry_points is not None: - pulumi.set(__self__, "entry_points", entry_points) + _setter("entry_points", entry_points) if working_directory is not None: - pulumi.set(__self__, "working_directory", working_directory) + _setter("working_directory", working_directory) @property @pulumi.getter @@ -629,9 +932,28 @@ def __init__(__self__, *, """ :param pulumi.Input[str] apply_on: Conditions where snap start is enabled. Valid values are `PublishedVersions`. """ - pulumi.set(__self__, "apply_on", apply_on) + FunctionSnapStartArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_on=apply_on, + optimization_status=optimization_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_on: Optional[pulumi.Input[str]] = None, + optimization_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_on is None and 'applyOn' in kwargs: + apply_on = kwargs['applyOn'] + if apply_on is None: + raise TypeError("Missing 'apply_on' argument") + if optimization_status is None and 'optimizationStatus' in kwargs: + optimization_status = kwargs['optimizationStatus'] + + _setter("apply_on", apply_on) if optimization_status is not None: - pulumi.set(__self__, "optimization_status", optimization_status) + _setter("optimization_status", optimization_status) @property @pulumi.getter(name="applyOn") @@ -662,7 +984,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] mode: Whether to sample and trace a subset of incoming requests with AWS X-Ray. Valid values are `PassThrough` and `Active`. If `PassThrough`, Lambda will only trace the request from an upstream service if it contains a tracing header with "sampled=1". If `Active`, Lambda will respect any tracing header it receives from an upstream service. If no tracing header is received, Lambda will call X-Ray for a tracing decision. """ - pulumi.set(__self__, "mode", mode) + FunctionTracingConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("mode", mode) @property @pulumi.getter @@ -694,18 +1029,51 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] expose_headers: The HTTP headers in your function response that you want to expose to origins that call the function URL. :param pulumi.Input[int] max_age: The maximum amount of time, in seconds, that web browsers can cache results of a preflight request. By default, this is set to `0`, which means that the browser doesn't cache results. The maximum value is `86400`. """ + FunctionUrlCorsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_credentials=allow_credentials, + allow_headers=allow_headers, + allow_methods=allow_methods, + allow_origins=allow_origins, + expose_headers=expose_headers, + max_age=max_age, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_credentials: Optional[pulumi.Input[bool]] = None, + allow_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allow_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allow_origins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + expose_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + max_age: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_credentials is None and 'allowCredentials' in kwargs: + allow_credentials = kwargs['allowCredentials'] + if allow_headers is None and 'allowHeaders' in kwargs: + allow_headers = kwargs['allowHeaders'] + if allow_methods is None and 'allowMethods' in kwargs: + allow_methods = kwargs['allowMethods'] + if allow_origins is None and 'allowOrigins' in kwargs: + allow_origins = kwargs['allowOrigins'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age is None and 'maxAge' in kwargs: + max_age = kwargs['maxAge'] + if allow_credentials is not None: - pulumi.set(__self__, "allow_credentials", allow_credentials) + _setter("allow_credentials", allow_credentials) if allow_headers is not None: - pulumi.set(__self__, "allow_headers", allow_headers) + _setter("allow_headers", allow_headers) if allow_methods is not None: - pulumi.set(__self__, "allow_methods", allow_methods) + _setter("allow_methods", allow_methods) if allow_origins is not None: - pulumi.set(__self__, "allow_origins", allow_origins) + _setter("allow_origins", allow_origins) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if max_age is not None: - pulumi.set(__self__, "max_age", max_age) + _setter("max_age", max_age) @property @pulumi.getter(name="allowCredentials") @@ -790,10 +1158,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of security group IDs associated with the Lambda function. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of subnet IDs associated with the Lambda function. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) + FunctionVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/lambda_/alias.py b/sdk/python/pulumi_aws/lambda_/alias.py index eb9e35e7975..d2a0a157ac1 100644 --- a/sdk/python/pulumi_aws/lambda_/alias.py +++ b/sdk/python/pulumi_aws/lambda_/alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,43 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the alias you are creating. Pattern: `(?!^[0-9]+$)([a-zA-Z0-9-_]+)` :param pulumi.Input['AliasRoutingConfigArgs'] routing_config: The Lambda alias' route configuration settings. Fields documented below """ - pulumi.set(__self__, "function_name", function_name) - pulumi.set(__self__, "function_version", function_version) + AliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_name=function_name, + function_version=function_version, + description=description, + name=name, + routing_config=routing_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_name: Optional[pulumi.Input[str]] = None, + function_version: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + routing_config: Optional[pulumi.Input['AliasRoutingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if function_name is None: + raise TypeError("Missing 'function_name' argument") + if function_version is None and 'functionVersion' in kwargs: + function_version = kwargs['functionVersion'] + if function_version is None: + raise TypeError("Missing 'function_version' argument") + if routing_config is None and 'routingConfig' in kwargs: + routing_config = kwargs['routingConfig'] + + _setter("function_name", function_name) + _setter("function_version", function_version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if routing_config is not None: - pulumi.set(__self__, "routing_config", routing_config) + _setter("routing_config", routing_config) @property @pulumi.getter(name="functionName") @@ -119,20 +148,51 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the alias you are creating. Pattern: `(?!^[0-9]+$)([a-zA-Z0-9-_]+)` :param pulumi.Input['AliasRoutingConfigArgs'] routing_config: The Lambda alias' route configuration settings. Fields documented below """ + _AliasState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + function_name=function_name, + function_version=function_version, + invoke_arn=invoke_arn, + name=name, + routing_config=routing_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + function_name: Optional[pulumi.Input[str]] = None, + function_version: Optional[pulumi.Input[str]] = None, + invoke_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + routing_config: Optional[pulumi.Input['AliasRoutingConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if function_version is None and 'functionVersion' in kwargs: + function_version = kwargs['functionVersion'] + if invoke_arn is None and 'invokeArn' in kwargs: + invoke_arn = kwargs['invokeArn'] + if routing_config is None and 'routingConfig' in kwargs: + routing_config = kwargs['routingConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if function_name is not None: - pulumi.set(__self__, "function_name", function_name) + _setter("function_name", function_name) if function_version is not None: - pulumi.set(__self__, "function_version", function_version) + _setter("function_version", function_version) if invoke_arn is not None: - pulumi.set(__self__, "invoke_arn", invoke_arn) + _setter("invoke_arn", invoke_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if routing_config is not None: - pulumi.set(__self__, "routing_config", routing_config) + _setter("routing_config", routing_config) @property @pulumi.getter @@ -316,6 +376,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AliasArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -343,6 +407,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'function_version'") __props__.__dict__["function_version"] = function_version __props__.__dict__["name"] = name + routing_config = _utilities.configure(routing_config, AliasRoutingConfigArgs, True) __props__.__dict__["routing_config"] = routing_config __props__.__dict__["arn"] = None __props__.__dict__["invoke_arn"] = None diff --git a/sdk/python/pulumi_aws/lambda_/code_signing_config.py b/sdk/python/pulumi_aws/lambda_/code_signing_config.py index 5756e4f3df1..bf802167304 100644 --- a/sdk/python/pulumi_aws/lambda_/code_signing_config.py +++ b/sdk/python/pulumi_aws/lambda_/code_signing_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Descriptive name for this code signing configuration. :param pulumi.Input['CodeSigningConfigPoliciesArgs'] policies: A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. """ - pulumi.set(__self__, "allowed_publishers", allowed_publishers) + CodeSigningConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_publishers=allowed_publishers, + description=description, + policies=policies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_publishers: Optional[pulumi.Input['CodeSigningConfigAllowedPublishersArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + policies: Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_publishers is None and 'allowedPublishers' in kwargs: + allowed_publishers = kwargs['allowedPublishers'] + if allowed_publishers is None: + raise TypeError("Missing 'allowed_publishers' argument") + + _setter("allowed_publishers", allowed_publishers) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if policies is not None: - pulumi.set(__self__, "policies", policies) + _setter("policies", policies) @property @pulumi.getter(name="allowedPublishers") @@ -86,18 +105,45 @@ def __init__(__self__, *, :param pulumi.Input[str] last_modified: The date and time that the code signing configuration was last modified. :param pulumi.Input['CodeSigningConfigPoliciesArgs'] policies: A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. """ + _CodeSigningConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_publishers=allowed_publishers, + arn=arn, + config_id=config_id, + description=description, + last_modified=last_modified, + policies=policies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_publishers: Optional[pulumi.Input['CodeSigningConfigAllowedPublishersArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + config_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + last_modified: Optional[pulumi.Input[str]] = None, + policies: Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_publishers is None and 'allowedPublishers' in kwargs: + allowed_publishers = kwargs['allowedPublishers'] + if config_id is None and 'configId' in kwargs: + config_id = kwargs['configId'] + if last_modified is None and 'lastModified' in kwargs: + last_modified = kwargs['lastModified'] + if allowed_publishers is not None: - pulumi.set(__self__, "allowed_publishers", allowed_publishers) + _setter("allowed_publishers", allowed_publishers) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if config_id is not None: - pulumi.set(__self__, "config_id", config_id) + _setter("config_id", config_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if last_modified is not None: - pulumi.set(__self__, "last_modified", last_modified) + _setter("last_modified", last_modified) if policies is not None: - pulumi.set(__self__, "policies", policies) + _setter("policies", policies) @property @pulumi.getter(name="allowedPublishers") @@ -267,6 +313,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CodeSigningConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -284,10 +334,12 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = CodeSigningConfigArgs.__new__(CodeSigningConfigArgs) + allowed_publishers = _utilities.configure(allowed_publishers, CodeSigningConfigAllowedPublishersArgs, True) if allowed_publishers is None and not opts.urn: raise TypeError("Missing required property 'allowed_publishers'") __props__.__dict__["allowed_publishers"] = allowed_publishers __props__.__dict__["description"] = description + policies = _utilities.configure(policies, CodeSigningConfigPoliciesArgs, True) __props__.__dict__["policies"] = policies __props__.__dict__["arn"] = None __props__.__dict__["config_id"] = None diff --git a/sdk/python/pulumi_aws/lambda_/event_source_mapping.py b/sdk/python/pulumi_aws/lambda_/event_source_mapping.py index f8dae73be5c..f6bc092bd17 100644 --- a/sdk/python/pulumi_aws/lambda_/event_source_mapping.py +++ b/sdk/python/pulumi_aws/lambda_/event_source_mapping.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -65,51 +65,148 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] topics: The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. :param pulumi.Input[int] tumbling_window_in_seconds: The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). """ - pulumi.set(__self__, "function_name", function_name) + EventSourceMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_name=function_name, + amazon_managed_kafka_event_source_config=amazon_managed_kafka_event_source_config, + batch_size=batch_size, + bisect_batch_on_function_error=bisect_batch_on_function_error, + destination_config=destination_config, + document_db_event_source_config=document_db_event_source_config, + enabled=enabled, + event_source_arn=event_source_arn, + filter_criteria=filter_criteria, + function_response_types=function_response_types, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + maximum_record_age_in_seconds=maximum_record_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + parallelization_factor=parallelization_factor, + queues=queues, + scaling_config=scaling_config, + self_managed_event_source=self_managed_event_source, + self_managed_kafka_event_source_config=self_managed_kafka_event_source_config, + source_access_configurations=source_access_configurations, + starting_position=starting_position, + starting_position_timestamp=starting_position_timestamp, + topics=topics, + tumbling_window_in_seconds=tumbling_window_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_name: Optional[pulumi.Input[str]] = None, + amazon_managed_kafka_event_source_config: Optional[pulumi.Input['EventSourceMappingAmazonManagedKafkaEventSourceConfigArgs']] = None, + batch_size: Optional[pulumi.Input[int]] = None, + bisect_batch_on_function_error: Optional[pulumi.Input[bool]] = None, + destination_config: Optional[pulumi.Input['EventSourceMappingDestinationConfigArgs']] = None, + document_db_event_source_config: Optional[pulumi.Input['EventSourceMappingDocumentDbEventSourceConfigArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_source_arn: Optional[pulumi.Input[str]] = None, + filter_criteria: Optional[pulumi.Input['EventSourceMappingFilterCriteriaArgs']] = None, + function_response_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + maximum_batching_window_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_record_age_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_retry_attempts: Optional[pulumi.Input[int]] = None, + parallelization_factor: Optional[pulumi.Input[int]] = None, + queues: Optional[pulumi.Input[str]] = None, + scaling_config: Optional[pulumi.Input['EventSourceMappingScalingConfigArgs']] = None, + self_managed_event_source: Optional[pulumi.Input['EventSourceMappingSelfManagedEventSourceArgs']] = None, + self_managed_kafka_event_source_config: Optional[pulumi.Input['EventSourceMappingSelfManagedKafkaEventSourceConfigArgs']] = None, + source_access_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['EventSourceMappingSourceAccessConfigurationArgs']]]] = None, + starting_position: Optional[pulumi.Input[str]] = None, + starting_position_timestamp: Optional[pulumi.Input[str]] = None, + topics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tumbling_window_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if function_name is None: + raise TypeError("Missing 'function_name' argument") + if amazon_managed_kafka_event_source_config is None and 'amazonManagedKafkaEventSourceConfig' in kwargs: + amazon_managed_kafka_event_source_config = kwargs['amazonManagedKafkaEventSourceConfig'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if bisect_batch_on_function_error is None and 'bisectBatchOnFunctionError' in kwargs: + bisect_batch_on_function_error = kwargs['bisectBatchOnFunctionError'] + if destination_config is None and 'destinationConfig' in kwargs: + destination_config = kwargs['destinationConfig'] + if document_db_event_source_config is None and 'documentDbEventSourceConfig' in kwargs: + document_db_event_source_config = kwargs['documentDbEventSourceConfig'] + if event_source_arn is None and 'eventSourceArn' in kwargs: + event_source_arn = kwargs['eventSourceArn'] + if filter_criteria is None and 'filterCriteria' in kwargs: + filter_criteria = kwargs['filterCriteria'] + if function_response_types is None and 'functionResponseTypes' in kwargs: + function_response_types = kwargs['functionResponseTypes'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if maximum_record_age_in_seconds is None and 'maximumRecordAgeInSeconds' in kwargs: + maximum_record_age_in_seconds = kwargs['maximumRecordAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if parallelization_factor is None and 'parallelizationFactor' in kwargs: + parallelization_factor = kwargs['parallelizationFactor'] + if scaling_config is None and 'scalingConfig' in kwargs: + scaling_config = kwargs['scalingConfig'] + if self_managed_event_source is None and 'selfManagedEventSource' in kwargs: + self_managed_event_source = kwargs['selfManagedEventSource'] + if self_managed_kafka_event_source_config is None and 'selfManagedKafkaEventSourceConfig' in kwargs: + self_managed_kafka_event_source_config = kwargs['selfManagedKafkaEventSourceConfig'] + if source_access_configurations is None and 'sourceAccessConfigurations' in kwargs: + source_access_configurations = kwargs['sourceAccessConfigurations'] + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + if starting_position_timestamp is None and 'startingPositionTimestamp' in kwargs: + starting_position_timestamp = kwargs['startingPositionTimestamp'] + if tumbling_window_in_seconds is None and 'tumblingWindowInSeconds' in kwargs: + tumbling_window_in_seconds = kwargs['tumblingWindowInSeconds'] + + _setter("function_name", function_name) if amazon_managed_kafka_event_source_config is not None: - pulumi.set(__self__, "amazon_managed_kafka_event_source_config", amazon_managed_kafka_event_source_config) + _setter("amazon_managed_kafka_event_source_config", amazon_managed_kafka_event_source_config) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if bisect_batch_on_function_error is not None: - pulumi.set(__self__, "bisect_batch_on_function_error", bisect_batch_on_function_error) + _setter("bisect_batch_on_function_error", bisect_batch_on_function_error) if destination_config is not None: - pulumi.set(__self__, "destination_config", destination_config) + _setter("destination_config", destination_config) if document_db_event_source_config is not None: - pulumi.set(__self__, "document_db_event_source_config", document_db_event_source_config) + _setter("document_db_event_source_config", document_db_event_source_config) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_source_arn is not None: - pulumi.set(__self__, "event_source_arn", event_source_arn) + _setter("event_source_arn", event_source_arn) if filter_criteria is not None: - pulumi.set(__self__, "filter_criteria", filter_criteria) + _setter("filter_criteria", filter_criteria) if function_response_types is not None: - pulumi.set(__self__, "function_response_types", function_response_types) + _setter("function_response_types", function_response_types) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if maximum_record_age_in_seconds is not None: - pulumi.set(__self__, "maximum_record_age_in_seconds", maximum_record_age_in_seconds) + _setter("maximum_record_age_in_seconds", maximum_record_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) if parallelization_factor is not None: - pulumi.set(__self__, "parallelization_factor", parallelization_factor) + _setter("parallelization_factor", parallelization_factor) if queues is not None: - pulumi.set(__self__, "queues", queues) + _setter("queues", queues) if scaling_config is not None: - pulumi.set(__self__, "scaling_config", scaling_config) + _setter("scaling_config", scaling_config) if self_managed_event_source is not None: - pulumi.set(__self__, "self_managed_event_source", self_managed_event_source) + _setter("self_managed_event_source", self_managed_event_source) if self_managed_kafka_event_source_config is not None: - pulumi.set(__self__, "self_managed_kafka_event_source_config", self_managed_kafka_event_source_config) + _setter("self_managed_kafka_event_source_config", self_managed_kafka_event_source_config) if source_access_configurations is not None: - pulumi.set(__self__, "source_access_configurations", source_access_configurations) + _setter("source_access_configurations", source_access_configurations) if starting_position is not None: - pulumi.set(__self__, "starting_position", starting_position) + _setter("starting_position", starting_position) if starting_position_timestamp is not None: - pulumi.set(__self__, "starting_position_timestamp", starting_position_timestamp) + _setter("starting_position_timestamp", starting_position_timestamp) if topics is not None: - pulumi.set(__self__, "topics", topics) + _setter("topics", topics) if tumbling_window_in_seconds is not None: - pulumi.set(__self__, "tumbling_window_in_seconds", tumbling_window_in_seconds) + _setter("tumbling_window_in_seconds", tumbling_window_in_seconds) @property @pulumi.getter(name="functionName") @@ -452,64 +549,179 @@ def __init__(__self__, *, :param pulumi.Input[int] tumbling_window_in_seconds: The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). :param pulumi.Input[str] uuid: The UUID of the created event source mapping. """ + _EventSourceMappingState._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_managed_kafka_event_source_config=amazon_managed_kafka_event_source_config, + batch_size=batch_size, + bisect_batch_on_function_error=bisect_batch_on_function_error, + destination_config=destination_config, + document_db_event_source_config=document_db_event_source_config, + enabled=enabled, + event_source_arn=event_source_arn, + filter_criteria=filter_criteria, + function_arn=function_arn, + function_name=function_name, + function_response_types=function_response_types, + last_modified=last_modified, + last_processing_result=last_processing_result, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + maximum_record_age_in_seconds=maximum_record_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + parallelization_factor=parallelization_factor, + queues=queues, + scaling_config=scaling_config, + self_managed_event_source=self_managed_event_source, + self_managed_kafka_event_source_config=self_managed_kafka_event_source_config, + source_access_configurations=source_access_configurations, + starting_position=starting_position, + starting_position_timestamp=starting_position_timestamp, + state=state, + state_transition_reason=state_transition_reason, + topics=topics, + tumbling_window_in_seconds=tumbling_window_in_seconds, + uuid=uuid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_managed_kafka_event_source_config: Optional[pulumi.Input['EventSourceMappingAmazonManagedKafkaEventSourceConfigArgs']] = None, + batch_size: Optional[pulumi.Input[int]] = None, + bisect_batch_on_function_error: Optional[pulumi.Input[bool]] = None, + destination_config: Optional[pulumi.Input['EventSourceMappingDestinationConfigArgs']] = None, + document_db_event_source_config: Optional[pulumi.Input['EventSourceMappingDocumentDbEventSourceConfigArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_source_arn: Optional[pulumi.Input[str]] = None, + filter_criteria: Optional[pulumi.Input['EventSourceMappingFilterCriteriaArgs']] = None, + function_arn: Optional[pulumi.Input[str]] = None, + function_name: Optional[pulumi.Input[str]] = None, + function_response_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + last_modified: Optional[pulumi.Input[str]] = None, + last_processing_result: Optional[pulumi.Input[str]] = None, + maximum_batching_window_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_record_age_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_retry_attempts: Optional[pulumi.Input[int]] = None, + parallelization_factor: Optional[pulumi.Input[int]] = None, + queues: Optional[pulumi.Input[str]] = None, + scaling_config: Optional[pulumi.Input['EventSourceMappingScalingConfigArgs']] = None, + self_managed_event_source: Optional[pulumi.Input['EventSourceMappingSelfManagedEventSourceArgs']] = None, + self_managed_kafka_event_source_config: Optional[pulumi.Input['EventSourceMappingSelfManagedKafkaEventSourceConfigArgs']] = None, + source_access_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['EventSourceMappingSourceAccessConfigurationArgs']]]] = None, + starting_position: Optional[pulumi.Input[str]] = None, + starting_position_timestamp: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + state_transition_reason: Optional[pulumi.Input[str]] = None, + topics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tumbling_window_in_seconds: Optional[pulumi.Input[int]] = None, + uuid: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_managed_kafka_event_source_config is None and 'amazonManagedKafkaEventSourceConfig' in kwargs: + amazon_managed_kafka_event_source_config = kwargs['amazonManagedKafkaEventSourceConfig'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if bisect_batch_on_function_error is None and 'bisectBatchOnFunctionError' in kwargs: + bisect_batch_on_function_error = kwargs['bisectBatchOnFunctionError'] + if destination_config is None and 'destinationConfig' in kwargs: + destination_config = kwargs['destinationConfig'] + if document_db_event_source_config is None and 'documentDbEventSourceConfig' in kwargs: + document_db_event_source_config = kwargs['documentDbEventSourceConfig'] + if event_source_arn is None and 'eventSourceArn' in kwargs: + event_source_arn = kwargs['eventSourceArn'] + if filter_criteria is None and 'filterCriteria' in kwargs: + filter_criteria = kwargs['filterCriteria'] + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if function_response_types is None and 'functionResponseTypes' in kwargs: + function_response_types = kwargs['functionResponseTypes'] + if last_modified is None and 'lastModified' in kwargs: + last_modified = kwargs['lastModified'] + if last_processing_result is None and 'lastProcessingResult' in kwargs: + last_processing_result = kwargs['lastProcessingResult'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if maximum_record_age_in_seconds is None and 'maximumRecordAgeInSeconds' in kwargs: + maximum_record_age_in_seconds = kwargs['maximumRecordAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if parallelization_factor is None and 'parallelizationFactor' in kwargs: + parallelization_factor = kwargs['parallelizationFactor'] + if scaling_config is None and 'scalingConfig' in kwargs: + scaling_config = kwargs['scalingConfig'] + if self_managed_event_source is None and 'selfManagedEventSource' in kwargs: + self_managed_event_source = kwargs['selfManagedEventSource'] + if self_managed_kafka_event_source_config is None and 'selfManagedKafkaEventSourceConfig' in kwargs: + self_managed_kafka_event_source_config = kwargs['selfManagedKafkaEventSourceConfig'] + if source_access_configurations is None and 'sourceAccessConfigurations' in kwargs: + source_access_configurations = kwargs['sourceAccessConfigurations'] + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + if starting_position_timestamp is None and 'startingPositionTimestamp' in kwargs: + starting_position_timestamp = kwargs['startingPositionTimestamp'] + if state_transition_reason is None and 'stateTransitionReason' in kwargs: + state_transition_reason = kwargs['stateTransitionReason'] + if tumbling_window_in_seconds is None and 'tumblingWindowInSeconds' in kwargs: + tumbling_window_in_seconds = kwargs['tumblingWindowInSeconds'] + if amazon_managed_kafka_event_source_config is not None: - pulumi.set(__self__, "amazon_managed_kafka_event_source_config", amazon_managed_kafka_event_source_config) + _setter("amazon_managed_kafka_event_source_config", amazon_managed_kafka_event_source_config) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if bisect_batch_on_function_error is not None: - pulumi.set(__self__, "bisect_batch_on_function_error", bisect_batch_on_function_error) + _setter("bisect_batch_on_function_error", bisect_batch_on_function_error) if destination_config is not None: - pulumi.set(__self__, "destination_config", destination_config) + _setter("destination_config", destination_config) if document_db_event_source_config is not None: - pulumi.set(__self__, "document_db_event_source_config", document_db_event_source_config) + _setter("document_db_event_source_config", document_db_event_source_config) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_source_arn is not None: - pulumi.set(__self__, "event_source_arn", event_source_arn) + _setter("event_source_arn", event_source_arn) if filter_criteria is not None: - pulumi.set(__self__, "filter_criteria", filter_criteria) + _setter("filter_criteria", filter_criteria) if function_arn is not None: - pulumi.set(__self__, "function_arn", function_arn) + _setter("function_arn", function_arn) if function_name is not None: - pulumi.set(__self__, "function_name", function_name) + _setter("function_name", function_name) if function_response_types is not None: - pulumi.set(__self__, "function_response_types", function_response_types) + _setter("function_response_types", function_response_types) if last_modified is not None: - pulumi.set(__self__, "last_modified", last_modified) + _setter("last_modified", last_modified) if last_processing_result is not None: - pulumi.set(__self__, "last_processing_result", last_processing_result) + _setter("last_processing_result", last_processing_result) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if maximum_record_age_in_seconds is not None: - pulumi.set(__self__, "maximum_record_age_in_seconds", maximum_record_age_in_seconds) + _setter("maximum_record_age_in_seconds", maximum_record_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) if parallelization_factor is not None: - pulumi.set(__self__, "parallelization_factor", parallelization_factor) + _setter("parallelization_factor", parallelization_factor) if queues is not None: - pulumi.set(__self__, "queues", queues) + _setter("queues", queues) if scaling_config is not None: - pulumi.set(__self__, "scaling_config", scaling_config) + _setter("scaling_config", scaling_config) if self_managed_event_source is not None: - pulumi.set(__self__, "self_managed_event_source", self_managed_event_source) + _setter("self_managed_event_source", self_managed_event_source) if self_managed_kafka_event_source_config is not None: - pulumi.set(__self__, "self_managed_kafka_event_source_config", self_managed_kafka_event_source_config) + _setter("self_managed_kafka_event_source_config", self_managed_kafka_event_source_config) if source_access_configurations is not None: - pulumi.set(__self__, "source_access_configurations", source_access_configurations) + _setter("source_access_configurations", source_access_configurations) if starting_position is not None: - pulumi.set(__self__, "starting_position", starting_position) + _setter("starting_position", starting_position) if starting_position_timestamp is not None: - pulumi.set(__self__, "starting_position_timestamp", starting_position_timestamp) + _setter("starting_position_timestamp", starting_position_timestamp) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if state_transition_reason is not None: - pulumi.set(__self__, "state_transition_reason", state_transition_reason) + _setter("state_transition_reason", state_transition_reason) if topics is not None: - pulumi.set(__self__, "topics", topics) + _setter("topics", topics) if tumbling_window_in_seconds is not None: - pulumi.set(__self__, "tumbling_window_in_seconds", tumbling_window_in_seconds) + _setter("tumbling_window_in_seconds", tumbling_window_in_seconds) if uuid is not None: - pulumi.set(__self__, "uuid", uuid) + _setter("uuid", uuid) @property @pulumi.getter(name="amazonManagedKafkaEventSourceConfig") @@ -1167,6 +1379,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventSourceMappingArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1204,13 +1420,17 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = EventSourceMappingArgs.__new__(EventSourceMappingArgs) + amazon_managed_kafka_event_source_config = _utilities.configure(amazon_managed_kafka_event_source_config, EventSourceMappingAmazonManagedKafkaEventSourceConfigArgs, True) __props__.__dict__["amazon_managed_kafka_event_source_config"] = amazon_managed_kafka_event_source_config __props__.__dict__["batch_size"] = batch_size __props__.__dict__["bisect_batch_on_function_error"] = bisect_batch_on_function_error + destination_config = _utilities.configure(destination_config, EventSourceMappingDestinationConfigArgs, True) __props__.__dict__["destination_config"] = destination_config + document_db_event_source_config = _utilities.configure(document_db_event_source_config, EventSourceMappingDocumentDbEventSourceConfigArgs, True) __props__.__dict__["document_db_event_source_config"] = document_db_event_source_config __props__.__dict__["enabled"] = enabled __props__.__dict__["event_source_arn"] = event_source_arn + filter_criteria = _utilities.configure(filter_criteria, EventSourceMappingFilterCriteriaArgs, True) __props__.__dict__["filter_criteria"] = filter_criteria if function_name is None and not opts.urn: raise TypeError("Missing required property 'function_name'") @@ -1221,8 +1441,11 @@ def _internal_init(__self__, __props__.__dict__["maximum_retry_attempts"] = maximum_retry_attempts __props__.__dict__["parallelization_factor"] = parallelization_factor __props__.__dict__["queues"] = queues + scaling_config = _utilities.configure(scaling_config, EventSourceMappingScalingConfigArgs, True) __props__.__dict__["scaling_config"] = scaling_config + self_managed_event_source = _utilities.configure(self_managed_event_source, EventSourceMappingSelfManagedEventSourceArgs, True) __props__.__dict__["self_managed_event_source"] = self_managed_event_source + self_managed_kafka_event_source_config = _utilities.configure(self_managed_kafka_event_source_config, EventSourceMappingSelfManagedKafkaEventSourceConfigArgs, True) __props__.__dict__["self_managed_kafka_event_source_config"] = self_managed_kafka_event_source_config __props__.__dict__["source_access_configurations"] = source_access_configurations __props__.__dict__["starting_position"] = starting_position diff --git a/sdk/python/pulumi_aws/lambda_/function.py b/sdk/python/pulumi_aws/lambda_/function.py index d99147e2369..1038f238a59 100644 --- a/sdk/python/pulumi_aws/lambda_/function.py +++ b/sdk/python/pulumi_aws/lambda_/function.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -86,75 +86,190 @@ def __init__(__self__, *, :param pulumi.Input['FunctionTracingConfigArgs'] tracing_config: Configuration block. Detailed below. :param pulumi.Input['FunctionVpcConfigArgs'] vpc_config: Configuration block. Detailed below. """ - pulumi.set(__self__, "role", role) + FunctionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role=role, + architectures=architectures, + code=code, + code_signing_config_arn=code_signing_config_arn, + dead_letter_config=dead_letter_config, + description=description, + environment=environment, + ephemeral_storage=ephemeral_storage, + file_system_config=file_system_config, + handler=handler, + image_config=image_config, + image_uri=image_uri, + kms_key_arn=kms_key_arn, + layers=layers, + memory_size=memory_size, + name=name, + package_type=package_type, + publish=publish, + replace_security_groups_on_destroy=replace_security_groups_on_destroy, + replacement_security_group_ids=replacement_security_group_ids, + reserved_concurrent_executions=reserved_concurrent_executions, + runtime=runtime, + s3_bucket=s3_bucket, + s3_key=s3_key, + s3_object_version=s3_object_version, + skip_destroy=skip_destroy, + snap_start=snap_start, + source_code_hash=source_code_hash, + tags=tags, + timeout=timeout, + tracing_config=tracing_config, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role: Optional[pulumi.Input[str]] = None, + architectures: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + code: Optional[pulumi.Input[pulumi.Archive]] = None, + code_signing_config_arn: Optional[pulumi.Input[str]] = None, + dead_letter_config: Optional[pulumi.Input['FunctionDeadLetterConfigArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input['FunctionEnvironmentArgs']] = None, + ephemeral_storage: Optional[pulumi.Input['FunctionEphemeralStorageArgs']] = None, + file_system_config: Optional[pulumi.Input['FunctionFileSystemConfigArgs']] = None, + handler: Optional[pulumi.Input[str]] = None, + image_config: Optional[pulumi.Input['FunctionImageConfigArgs']] = None, + image_uri: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + layers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + memory_size: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + package_type: Optional[pulumi.Input[str]] = None, + publish: Optional[pulumi.Input[bool]] = None, + replace_security_groups_on_destroy: Optional[pulumi.Input[bool]] = None, + replacement_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + reserved_concurrent_executions: Optional[pulumi.Input[int]] = None, + runtime: Optional[pulumi.Input[Union[str, 'Runtime']]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_key: Optional[pulumi.Input[str]] = None, + s3_object_version: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + snap_start: Optional[pulumi.Input['FunctionSnapStartArgs']] = None, + source_code_hash: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout: Optional[pulumi.Input[int]] = None, + tracing_config: Optional[pulumi.Input['FunctionTracingConfigArgs']] = None, + vpc_config: Optional[pulumi.Input['FunctionVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role is None: + raise TypeError("Missing 'role' argument") + if code_signing_config_arn is None and 'codeSigningConfigArn' in kwargs: + code_signing_config_arn = kwargs['codeSigningConfigArn'] + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if ephemeral_storage is None and 'ephemeralStorage' in kwargs: + ephemeral_storage = kwargs['ephemeralStorage'] + if file_system_config is None and 'fileSystemConfig' in kwargs: + file_system_config = kwargs['fileSystemConfig'] + if image_config is None and 'imageConfig' in kwargs: + image_config = kwargs['imageConfig'] + if image_uri is None and 'imageUri' in kwargs: + image_uri = kwargs['imageUri'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if memory_size is None and 'memorySize' in kwargs: + memory_size = kwargs['memorySize'] + if package_type is None and 'packageType' in kwargs: + package_type = kwargs['packageType'] + if replace_security_groups_on_destroy is None and 'replaceSecurityGroupsOnDestroy' in kwargs: + replace_security_groups_on_destroy = kwargs['replaceSecurityGroupsOnDestroy'] + if replacement_security_group_ids is None and 'replacementSecurityGroupIds' in kwargs: + replacement_security_group_ids = kwargs['replacementSecurityGroupIds'] + if reserved_concurrent_executions is None and 'reservedConcurrentExecutions' in kwargs: + reserved_concurrent_executions = kwargs['reservedConcurrentExecutions'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_object_version is None and 's3ObjectVersion' in kwargs: + s3_object_version = kwargs['s3ObjectVersion'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if snap_start is None and 'snapStart' in kwargs: + snap_start = kwargs['snapStart'] + if source_code_hash is None and 'sourceCodeHash' in kwargs: + source_code_hash = kwargs['sourceCodeHash'] + if tracing_config is None and 'tracingConfig' in kwargs: + tracing_config = kwargs['tracingConfig'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("role", role) if architectures is not None: - pulumi.set(__self__, "architectures", architectures) + _setter("architectures", architectures) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if code_signing_config_arn is not None: - pulumi.set(__self__, "code_signing_config_arn", code_signing_config_arn) + _setter("code_signing_config_arn", code_signing_config_arn) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if ephemeral_storage is not None: - pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) + _setter("ephemeral_storage", ephemeral_storage) if file_system_config is not None: - pulumi.set(__self__, "file_system_config", file_system_config) + _setter("file_system_config", file_system_config) if handler is not None: - pulumi.set(__self__, "handler", handler) + _setter("handler", handler) if image_config is not None: - pulumi.set(__self__, "image_config", image_config) + _setter("image_config", image_config) if image_uri is not None: - pulumi.set(__self__, "image_uri", image_uri) + _setter("image_uri", image_uri) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if layers is not None: - pulumi.set(__self__, "layers", layers) + _setter("layers", layers) if memory_size is not None: - pulumi.set(__self__, "memory_size", memory_size) + _setter("memory_size", memory_size) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if package_type is not None: - pulumi.set(__self__, "package_type", package_type) + _setter("package_type", package_type) if publish is not None: - pulumi.set(__self__, "publish", publish) + _setter("publish", publish) if replace_security_groups_on_destroy is not None: warnings.warn("""AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""", DeprecationWarning) pulumi.log.warn("""replace_security_groups_on_destroy is deprecated: AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""") if replace_security_groups_on_destroy is not None: - pulumi.set(__self__, "replace_security_groups_on_destroy", replace_security_groups_on_destroy) + _setter("replace_security_groups_on_destroy", replace_security_groups_on_destroy) if replacement_security_group_ids is not None: warnings.warn("""AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""", DeprecationWarning) pulumi.log.warn("""replacement_security_group_ids is deprecated: AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""") if replacement_security_group_ids is not None: - pulumi.set(__self__, "replacement_security_group_ids", replacement_security_group_ids) + _setter("replacement_security_group_ids", replacement_security_group_ids) if reserved_concurrent_executions is not None: - pulumi.set(__self__, "reserved_concurrent_executions", reserved_concurrent_executions) + _setter("reserved_concurrent_executions", reserved_concurrent_executions) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) if s3_key is not None: - pulumi.set(__self__, "s3_key", s3_key) + _setter("s3_key", s3_key) if s3_object_version is not None: - pulumi.set(__self__, "s3_object_version", s3_object_version) + _setter("s3_object_version", s3_object_version) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if snap_start is not None: - pulumi.set(__self__, "snap_start", snap_start) + _setter("snap_start", snap_start) if source_code_hash is not None: - pulumi.set(__self__, "source_code_hash", source_code_hash) + _setter("source_code_hash", source_code_hash) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if tracing_config is not None: - pulumi.set(__self__, "tracing_config", tracing_config) + _setter("tracing_config", tracing_config) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -643,99 +758,248 @@ def __init__(__self__, *, * `vpc_config.vpc_id` - ID of the VPC. :param pulumi.Input['FunctionVpcConfigArgs'] vpc_config: Configuration block. Detailed below. """ + _FunctionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + architectures=architectures, + arn=arn, + code=code, + code_signing_config_arn=code_signing_config_arn, + dead_letter_config=dead_letter_config, + description=description, + environment=environment, + ephemeral_storage=ephemeral_storage, + file_system_config=file_system_config, + handler=handler, + image_config=image_config, + image_uri=image_uri, + invoke_arn=invoke_arn, + kms_key_arn=kms_key_arn, + last_modified=last_modified, + layers=layers, + memory_size=memory_size, + name=name, + package_type=package_type, + publish=publish, + qualified_arn=qualified_arn, + qualified_invoke_arn=qualified_invoke_arn, + replace_security_groups_on_destroy=replace_security_groups_on_destroy, + replacement_security_group_ids=replacement_security_group_ids, + reserved_concurrent_executions=reserved_concurrent_executions, + role=role, + runtime=runtime, + s3_bucket=s3_bucket, + s3_key=s3_key, + s3_object_version=s3_object_version, + signing_job_arn=signing_job_arn, + signing_profile_version_arn=signing_profile_version_arn, + skip_destroy=skip_destroy, + snap_start=snap_start, + source_code_hash=source_code_hash, + source_code_size=source_code_size, + tags=tags, + tags_all=tags_all, + timeout=timeout, + tracing_config=tracing_config, + version=version, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + architectures: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + code: Optional[pulumi.Input[pulumi.Archive]] = None, + code_signing_config_arn: Optional[pulumi.Input[str]] = None, + dead_letter_config: Optional[pulumi.Input['FunctionDeadLetterConfigArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input['FunctionEnvironmentArgs']] = None, + ephemeral_storage: Optional[pulumi.Input['FunctionEphemeralStorageArgs']] = None, + file_system_config: Optional[pulumi.Input['FunctionFileSystemConfigArgs']] = None, + handler: Optional[pulumi.Input[str]] = None, + image_config: Optional[pulumi.Input['FunctionImageConfigArgs']] = None, + image_uri: Optional[pulumi.Input[str]] = None, + invoke_arn: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + last_modified: Optional[pulumi.Input[str]] = None, + layers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + memory_size: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + package_type: Optional[pulumi.Input[str]] = None, + publish: Optional[pulumi.Input[bool]] = None, + qualified_arn: Optional[pulumi.Input[str]] = None, + qualified_invoke_arn: Optional[pulumi.Input[str]] = None, + replace_security_groups_on_destroy: Optional[pulumi.Input[bool]] = None, + replacement_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + reserved_concurrent_executions: Optional[pulumi.Input[int]] = None, + role: Optional[pulumi.Input[str]] = None, + runtime: Optional[pulumi.Input[Union[str, 'Runtime']]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_key: Optional[pulumi.Input[str]] = None, + s3_object_version: Optional[pulumi.Input[str]] = None, + signing_job_arn: Optional[pulumi.Input[str]] = None, + signing_profile_version_arn: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + snap_start: Optional[pulumi.Input['FunctionSnapStartArgs']] = None, + source_code_hash: Optional[pulumi.Input[str]] = None, + source_code_size: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeout: Optional[pulumi.Input[int]] = None, + tracing_config: Optional[pulumi.Input['FunctionTracingConfigArgs']] = None, + version: Optional[pulumi.Input[str]] = None, + vpc_config: Optional[pulumi.Input['FunctionVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_signing_config_arn is None and 'codeSigningConfigArn' in kwargs: + code_signing_config_arn = kwargs['codeSigningConfigArn'] + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if ephemeral_storage is None and 'ephemeralStorage' in kwargs: + ephemeral_storage = kwargs['ephemeralStorage'] + if file_system_config is None and 'fileSystemConfig' in kwargs: + file_system_config = kwargs['fileSystemConfig'] + if image_config is None and 'imageConfig' in kwargs: + image_config = kwargs['imageConfig'] + if image_uri is None and 'imageUri' in kwargs: + image_uri = kwargs['imageUri'] + if invoke_arn is None and 'invokeArn' in kwargs: + invoke_arn = kwargs['invokeArn'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if last_modified is None and 'lastModified' in kwargs: + last_modified = kwargs['lastModified'] + if memory_size is None and 'memorySize' in kwargs: + memory_size = kwargs['memorySize'] + if package_type is None and 'packageType' in kwargs: + package_type = kwargs['packageType'] + if qualified_arn is None and 'qualifiedArn' in kwargs: + qualified_arn = kwargs['qualifiedArn'] + if qualified_invoke_arn is None and 'qualifiedInvokeArn' in kwargs: + qualified_invoke_arn = kwargs['qualifiedInvokeArn'] + if replace_security_groups_on_destroy is None and 'replaceSecurityGroupsOnDestroy' in kwargs: + replace_security_groups_on_destroy = kwargs['replaceSecurityGroupsOnDestroy'] + if replacement_security_group_ids is None and 'replacementSecurityGroupIds' in kwargs: + replacement_security_group_ids = kwargs['replacementSecurityGroupIds'] + if reserved_concurrent_executions is None and 'reservedConcurrentExecutions' in kwargs: + reserved_concurrent_executions = kwargs['reservedConcurrentExecutions'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_object_version is None and 's3ObjectVersion' in kwargs: + s3_object_version = kwargs['s3ObjectVersion'] + if signing_job_arn is None and 'signingJobArn' in kwargs: + signing_job_arn = kwargs['signingJobArn'] + if signing_profile_version_arn is None and 'signingProfileVersionArn' in kwargs: + signing_profile_version_arn = kwargs['signingProfileVersionArn'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if snap_start is None and 'snapStart' in kwargs: + snap_start = kwargs['snapStart'] + if source_code_hash is None and 'sourceCodeHash' in kwargs: + source_code_hash = kwargs['sourceCodeHash'] + if source_code_size is None and 'sourceCodeSize' in kwargs: + source_code_size = kwargs['sourceCodeSize'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tracing_config is None and 'tracingConfig' in kwargs: + tracing_config = kwargs['tracingConfig'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if architectures is not None: - pulumi.set(__self__, "architectures", architectures) + _setter("architectures", architectures) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if code_signing_config_arn is not None: - pulumi.set(__self__, "code_signing_config_arn", code_signing_config_arn) + _setter("code_signing_config_arn", code_signing_config_arn) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if ephemeral_storage is not None: - pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) + _setter("ephemeral_storage", ephemeral_storage) if file_system_config is not None: - pulumi.set(__self__, "file_system_config", file_system_config) + _setter("file_system_config", file_system_config) if handler is not None: - pulumi.set(__self__, "handler", handler) + _setter("handler", handler) if image_config is not None: - pulumi.set(__self__, "image_config", image_config) + _setter("image_config", image_config) if image_uri is not None: - pulumi.set(__self__, "image_uri", image_uri) + _setter("image_uri", image_uri) if invoke_arn is not None: - pulumi.set(__self__, "invoke_arn", invoke_arn) + _setter("invoke_arn", invoke_arn) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if last_modified is not None: - pulumi.set(__self__, "last_modified", last_modified) + _setter("last_modified", last_modified) if layers is not None: - pulumi.set(__self__, "layers", layers) + _setter("layers", layers) if memory_size is not None: - pulumi.set(__self__, "memory_size", memory_size) + _setter("memory_size", memory_size) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if package_type is not None: - pulumi.set(__self__, "package_type", package_type) + _setter("package_type", package_type) if publish is not None: - pulumi.set(__self__, "publish", publish) + _setter("publish", publish) if qualified_arn is not None: - pulumi.set(__self__, "qualified_arn", qualified_arn) + _setter("qualified_arn", qualified_arn) if qualified_invoke_arn is not None: - pulumi.set(__self__, "qualified_invoke_arn", qualified_invoke_arn) + _setter("qualified_invoke_arn", qualified_invoke_arn) if replace_security_groups_on_destroy is not None: warnings.warn("""AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""", DeprecationWarning) pulumi.log.warn("""replace_security_groups_on_destroy is deprecated: AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""") if replace_security_groups_on_destroy is not None: - pulumi.set(__self__, "replace_security_groups_on_destroy", replace_security_groups_on_destroy) + _setter("replace_security_groups_on_destroy", replace_security_groups_on_destroy) if replacement_security_group_ids is not None: warnings.warn("""AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""", DeprecationWarning) pulumi.log.warn("""replacement_security_group_ids is deprecated: AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""") if replacement_security_group_ids is not None: - pulumi.set(__self__, "replacement_security_group_ids", replacement_security_group_ids) + _setter("replacement_security_group_ids", replacement_security_group_ids) if reserved_concurrent_executions is not None: - pulumi.set(__self__, "reserved_concurrent_executions", reserved_concurrent_executions) + _setter("reserved_concurrent_executions", reserved_concurrent_executions) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) if runtime is not None: - pulumi.set(__self__, "runtime", runtime) + _setter("runtime", runtime) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) if s3_key is not None: - pulumi.set(__self__, "s3_key", s3_key) + _setter("s3_key", s3_key) if s3_object_version is not None: - pulumi.set(__self__, "s3_object_version", s3_object_version) + _setter("s3_object_version", s3_object_version) if signing_job_arn is not None: - pulumi.set(__self__, "signing_job_arn", signing_job_arn) + _setter("signing_job_arn", signing_job_arn) if signing_profile_version_arn is not None: - pulumi.set(__self__, "signing_profile_version_arn", signing_profile_version_arn) + _setter("signing_profile_version_arn", signing_profile_version_arn) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if snap_start is not None: - pulumi.set(__self__, "snap_start", snap_start) + _setter("snap_start", snap_start) if source_code_hash is not None: - pulumi.set(__self__, "source_code_hash", source_code_hash) + _setter("source_code_hash", source_code_hash) if source_code_size is not None: - pulumi.set(__self__, "source_code_size", source_code_size) + _setter("source_code_size", source_code_size) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if tracing_config is not None: - pulumi.set(__self__, "tracing_config", tracing_config) + _setter("tracing_config", tracing_config) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -1704,6 +1968,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FunctionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1753,12 +2021,17 @@ def _internal_init(__self__, __props__.__dict__["architectures"] = architectures __props__.__dict__["code"] = code __props__.__dict__["code_signing_config_arn"] = code_signing_config_arn + dead_letter_config = _utilities.configure(dead_letter_config, FunctionDeadLetterConfigArgs, True) __props__.__dict__["dead_letter_config"] = dead_letter_config __props__.__dict__["description"] = description + environment = _utilities.configure(environment, FunctionEnvironmentArgs, True) __props__.__dict__["environment"] = environment + ephemeral_storage = _utilities.configure(ephemeral_storage, FunctionEphemeralStorageArgs, True) __props__.__dict__["ephemeral_storage"] = ephemeral_storage + file_system_config = _utilities.configure(file_system_config, FunctionFileSystemConfigArgs, True) __props__.__dict__["file_system_config"] = file_system_config __props__.__dict__["handler"] = handler + image_config = _utilities.configure(image_config, FunctionImageConfigArgs, True) __props__.__dict__["image_config"] = image_config __props__.__dict__["image_uri"] = image_uri __props__.__dict__["kms_key_arn"] = kms_key_arn @@ -1767,13 +2040,7 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["package_type"] = package_type __props__.__dict__["publish"] = publish - if replace_security_groups_on_destroy is not None and not opts.urn: - warnings.warn("""AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""", DeprecationWarning) - pulumi.log.warn("""replace_security_groups_on_destroy is deprecated: AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""") __props__.__dict__["replace_security_groups_on_destroy"] = replace_security_groups_on_destroy - if replacement_security_group_ids is not None and not opts.urn: - warnings.warn("""AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""", DeprecationWarning) - pulumi.log.warn("""replacement_security_group_ids is deprecated: AWS no longer supports this operation. This attribute now has no effect and will be removed in a future major version.""") __props__.__dict__["replacement_security_group_ids"] = replacement_security_group_ids __props__.__dict__["reserved_concurrent_executions"] = reserved_concurrent_executions if role is None and not opts.urn: @@ -1784,11 +2051,14 @@ def _internal_init(__self__, __props__.__dict__["s3_key"] = s3_key __props__.__dict__["s3_object_version"] = s3_object_version __props__.__dict__["skip_destroy"] = skip_destroy + snap_start = _utilities.configure(snap_start, FunctionSnapStartArgs, True) __props__.__dict__["snap_start"] = snap_start __props__.__dict__["source_code_hash"] = source_code_hash __props__.__dict__["tags"] = tags __props__.__dict__["timeout"] = timeout + tracing_config = _utilities.configure(tracing_config, FunctionTracingConfigArgs, True) __props__.__dict__["tracing_config"] = tracing_config + vpc_config = _utilities.configure(vpc_config, FunctionVpcConfigArgs, True) __props__.__dict__["vpc_config"] = vpc_config __props__.__dict__["arn"] = None __props__.__dict__["invoke_arn"] = None diff --git a/sdk/python/pulumi_aws/lambda_/function_event_invoke_config.py b/sdk/python/pulumi_aws/lambda_/function_event_invoke_config.py index 379e173823f..69e8aeff4fe 100644 --- a/sdk/python/pulumi_aws/lambda_/function_event_invoke_config.py +++ b/sdk/python/pulumi_aws/lambda_/function_event_invoke_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,44 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_retry_attempts: Maximum number of times to retry when the function returns an error. Valid values between 0 and 2. Defaults to 2. :param pulumi.Input[str] qualifier: Lambda Function published version, `$LATEST`, or Lambda Alias name. """ - pulumi.set(__self__, "function_name", function_name) + FunctionEventInvokeConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_name=function_name, + destination_config=destination_config, + maximum_event_age_in_seconds=maximum_event_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + qualifier=qualifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_name: Optional[pulumi.Input[str]] = None, + destination_config: Optional[pulumi.Input['FunctionEventInvokeConfigDestinationConfigArgs']] = None, + maximum_event_age_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_retry_attempts: Optional[pulumi.Input[int]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if function_name is None: + raise TypeError("Missing 'function_name' argument") + if destination_config is None and 'destinationConfig' in kwargs: + destination_config = kwargs['destinationConfig'] + if maximum_event_age_in_seconds is None and 'maximumEventAgeInSeconds' in kwargs: + maximum_event_age_in_seconds = kwargs['maximumEventAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + + _setter("function_name", function_name) if destination_config is not None: - pulumi.set(__self__, "destination_config", destination_config) + _setter("destination_config", destination_config) if maximum_event_age_in_seconds is not None: - pulumi.set(__self__, "maximum_event_age_in_seconds", maximum_event_age_in_seconds) + _setter("maximum_event_age_in_seconds", maximum_event_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) @property @pulumi.getter(name="functionName") @@ -122,16 +151,43 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_retry_attempts: Maximum number of times to retry when the function returns an error. Valid values between 0 and 2. Defaults to 2. :param pulumi.Input[str] qualifier: Lambda Function published version, `$LATEST`, or Lambda Alias name. """ + _FunctionEventInvokeConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_config=destination_config, + function_name=function_name, + maximum_event_age_in_seconds=maximum_event_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + qualifier=qualifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_config: Optional[pulumi.Input['FunctionEventInvokeConfigDestinationConfigArgs']] = None, + function_name: Optional[pulumi.Input[str]] = None, + maximum_event_age_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_retry_attempts: Optional[pulumi.Input[int]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_config is None and 'destinationConfig' in kwargs: + destination_config = kwargs['destinationConfig'] + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if maximum_event_age_in_seconds is None and 'maximumEventAgeInSeconds' in kwargs: + maximum_event_age_in_seconds = kwargs['maximumEventAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if destination_config is not None: - pulumi.set(__self__, "destination_config", destination_config) + _setter("destination_config", destination_config) if function_name is not None: - pulumi.set(__self__, "function_name", function_name) + _setter("function_name", function_name) if maximum_event_age_in_seconds is not None: - pulumi.set(__self__, "maximum_event_age_in_seconds", maximum_event_age_in_seconds) + _setter("maximum_event_age_in_seconds", maximum_event_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) @property @pulumi.getter(name="destinationConfig") @@ -431,6 +487,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FunctionEventInvokeConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -450,6 +510,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = FunctionEventInvokeConfigArgs.__new__(FunctionEventInvokeConfigArgs) + destination_config = _utilities.configure(destination_config, FunctionEventInvokeConfigDestinationConfigArgs, True) __props__.__dict__["destination_config"] = destination_config if function_name is None and not opts.urn: raise TypeError("Missing required property 'function_name'") diff --git a/sdk/python/pulumi_aws/lambda_/function_url.py b/sdk/python/pulumi_aws/lambda_/function_url.py index fd73100b5d9..e366cb2a5db 100644 --- a/sdk/python/pulumi_aws/lambda_/function_url.py +++ b/sdk/python/pulumi_aws/lambda_/function_url.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,43 @@ def __init__(__self__, *, :param pulumi.Input[str] invoke_mode: Determines how the Lambda function responds to an invocation. Valid values are `BUFFERED` (default) and `RESPONSE_STREAM`. See more in [Configuring a Lambda function to stream responses](https://docs.aws.amazon.com/lambda/latest/dg/configuration-response-streaming.html). :param pulumi.Input[str] qualifier: The alias name or `"$LATEST"`. """ - pulumi.set(__self__, "authorization_type", authorization_type) - pulumi.set(__self__, "function_name", function_name) + FunctionUrlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_type=authorization_type, + function_name=function_name, + cors=cors, + invoke_mode=invoke_mode, + qualifier=qualifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_type: Optional[pulumi.Input[str]] = None, + function_name: Optional[pulumi.Input[str]] = None, + cors: Optional[pulumi.Input['FunctionUrlCorsArgs']] = None, + invoke_mode: Optional[pulumi.Input[str]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_type is None and 'authorizationType' in kwargs: + authorization_type = kwargs['authorizationType'] + if authorization_type is None: + raise TypeError("Missing 'authorization_type' argument") + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if function_name is None: + raise TypeError("Missing 'function_name' argument") + if invoke_mode is None and 'invokeMode' in kwargs: + invoke_mode = kwargs['invokeMode'] + + _setter("authorization_type", authorization_type) + _setter("function_name", function_name) if cors is not None: - pulumi.set(__self__, "cors", cors) + _setter("cors", cors) if invoke_mode is not None: - pulumi.set(__self__, "invoke_mode", invoke_mode) + _setter("invoke_mode", invoke_mode) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) @property @pulumi.getter(name="authorizationType") @@ -121,22 +150,59 @@ def __init__(__self__, *, :param pulumi.Input[str] qualifier: The alias name or `"$LATEST"`. :param pulumi.Input[str] url_id: A generated ID for the endpoint. """ + _FunctionUrlState._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_type=authorization_type, + cors=cors, + function_arn=function_arn, + function_name=function_name, + function_url=function_url, + invoke_mode=invoke_mode, + qualifier=qualifier, + url_id=url_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_type: Optional[pulumi.Input[str]] = None, + cors: Optional[pulumi.Input['FunctionUrlCorsArgs']] = None, + function_arn: Optional[pulumi.Input[str]] = None, + function_name: Optional[pulumi.Input[str]] = None, + function_url: Optional[pulumi.Input[str]] = None, + invoke_mode: Optional[pulumi.Input[str]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + url_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_type is None and 'authorizationType' in kwargs: + authorization_type = kwargs['authorizationType'] + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if function_url is None and 'functionUrl' in kwargs: + function_url = kwargs['functionUrl'] + if invoke_mode is None and 'invokeMode' in kwargs: + invoke_mode = kwargs['invokeMode'] + if url_id is None and 'urlId' in kwargs: + url_id = kwargs['urlId'] + if authorization_type is not None: - pulumi.set(__self__, "authorization_type", authorization_type) + _setter("authorization_type", authorization_type) if cors is not None: - pulumi.set(__self__, "cors", cors) + _setter("cors", cors) if function_arn is not None: - pulumi.set(__self__, "function_arn", function_arn) + _setter("function_arn", function_arn) if function_name is not None: - pulumi.set(__self__, "function_name", function_name) + _setter("function_name", function_name) if function_url is not None: - pulumi.set(__self__, "function_url", function_url) + _setter("function_url", function_url) if invoke_mode is not None: - pulumi.set(__self__, "invoke_mode", invoke_mode) + _setter("invoke_mode", invoke_mode) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) if url_id is not None: - pulumi.set(__self__, "url_id", url_id) + _setter("url_id", url_id) @property @pulumi.getter(name="authorizationType") @@ -354,6 +420,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FunctionUrlArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -376,6 +446,7 @@ def _internal_init(__self__, if authorization_type is None and not opts.urn: raise TypeError("Missing required property 'authorization_type'") __props__.__dict__["authorization_type"] = authorization_type + cors = _utilities.configure(cors, FunctionUrlCorsArgs, True) __props__.__dict__["cors"] = cors if function_name is None and not opts.urn: raise TypeError("Missing required property 'function_name'") diff --git a/sdk/python/pulumi_aws/lambda_/get_alias.py b/sdk/python/pulumi_aws/lambda_/get_alias.py index 9fdd2ef4bd9..6946b7fcf6b 100644 --- a/sdk/python/pulumi_aws/lambda_/get_alias.py +++ b/sdk/python/pulumi_aws/lambda_/get_alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/lambda_/get_code_signing_config.py b/sdk/python/pulumi_aws/lambda_/get_code_signing_config.py index d21549bf0a4..103634c4944 100644 --- a/sdk/python/pulumi_aws/lambda_/get_code_signing_config.py +++ b/sdk/python/pulumi_aws/lambda_/get_code_signing_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/lambda_/get_function.py b/sdk/python/pulumi_aws/lambda_/get_function.py index 15c70bfe8c1..738be732b08 100644 --- a/sdk/python/pulumi_aws/lambda_/get_function.py +++ b/sdk/python/pulumi_aws/lambda_/get_function.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/lambda_/get_function_url.py b/sdk/python/pulumi_aws/lambda_/get_function_url.py index 62eeb270b0c..413393edd3b 100644 --- a/sdk/python/pulumi_aws/lambda_/get_function_url.py +++ b/sdk/python/pulumi_aws/lambda_/get_function_url.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/lambda_/get_functions.py b/sdk/python/pulumi_aws/lambda_/get_functions.py index 2bfec55dcd0..f48a71e812f 100644 --- a/sdk/python/pulumi_aws/lambda_/get_functions.py +++ b/sdk/python/pulumi_aws/lambda_/get_functions.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetFunctionsResult', 'AwaitableGetFunctionsResult', 'get_functions', + 'get_functions_output', ] @pulumi.output_type @@ -88,3 +89,20 @@ def get_functions(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetFu function_arns=pulumi.get(__ret__, 'function_arns'), function_names=pulumi.get(__ret__, 'function_names'), id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_functions) +def get_functions_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetFunctionsResult]: + """ + Data resource to get a list of Lambda Functions. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + all = aws.lambda.get_functions() + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/lambda_/get_invocation.py b/sdk/python/pulumi_aws/lambda_/get_invocation.py index 26875c3d030..d1cc61b7a14 100644 --- a/sdk/python/pulumi_aws/lambda_/get_invocation.py +++ b/sdk/python/pulumi_aws/lambda_/get_invocation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/lambda_/get_layer_version.py b/sdk/python/pulumi_aws/lambda_/get_layer_version.py index 901576a8388..a0fb52c96c6 100644 --- a/sdk/python/pulumi_aws/lambda_/get_layer_version.py +++ b/sdk/python/pulumi_aws/lambda_/get_layer_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/lambda_/invocation.py b/sdk/python/pulumi_aws/lambda_/invocation.py index 447e07c84b0..d5941f5d23e 100644 --- a/sdk/python/pulumi_aws/lambda_/invocation.py +++ b/sdk/python/pulumi_aws/lambda_/invocation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InvocationArgs', 'Invocation'] @@ -30,16 +30,47 @@ def __init__(__self__, *, :param pulumi.Input[str] qualifier: Qualifier (i.e., version) of the lambda function. Defaults to `$LATEST`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger a re-invocation. """ - pulumi.set(__self__, "function_name", function_name) - pulumi.set(__self__, "input", input) + InvocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_name=function_name, + input=input, + lifecycle_scope=lifecycle_scope, + qualifier=qualifier, + terraform_key=terraform_key, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_name: Optional[pulumi.Input[str]] = None, + input: Optional[pulumi.Input[str]] = None, + lifecycle_scope: Optional[pulumi.Input[str]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + terraform_key: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if function_name is None: + raise TypeError("Missing 'function_name' argument") + if input is None: + raise TypeError("Missing 'input' argument") + if lifecycle_scope is None and 'lifecycleScope' in kwargs: + lifecycle_scope = kwargs['lifecycleScope'] + if terraform_key is None and 'terraformKey' in kwargs: + terraform_key = kwargs['terraformKey'] + + _setter("function_name", function_name) + _setter("input", input) if lifecycle_scope is not None: - pulumi.set(__self__, "lifecycle_scope", lifecycle_scope) + _setter("lifecycle_scope", lifecycle_scope) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) if terraform_key is not None: - pulumi.set(__self__, "terraform_key", terraform_key) + _setter("terraform_key", terraform_key) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter(name="functionName") @@ -134,20 +165,49 @@ def __init__(__self__, *, :param pulumi.Input[str] result: String result of the lambda function invocation. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger a re-invocation. """ + _InvocationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_name=function_name, + input=input, + lifecycle_scope=lifecycle_scope, + qualifier=qualifier, + result=result, + terraform_key=terraform_key, + triggers=triggers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_name: Optional[pulumi.Input[str]] = None, + input: Optional[pulumi.Input[str]] = None, + lifecycle_scope: Optional[pulumi.Input[str]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + result: Optional[pulumi.Input[str]] = None, + terraform_key: Optional[pulumi.Input[str]] = None, + triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if lifecycle_scope is None and 'lifecycleScope' in kwargs: + lifecycle_scope = kwargs['lifecycleScope'] + if terraform_key is None and 'terraformKey' in kwargs: + terraform_key = kwargs['terraformKey'] + if function_name is not None: - pulumi.set(__self__, "function_name", function_name) + _setter("function_name", function_name) if input is not None: - pulumi.set(__self__, "input", input) + _setter("input", input) if lifecycle_scope is not None: - pulumi.set(__self__, "lifecycle_scope", lifecycle_scope) + _setter("lifecycle_scope", lifecycle_scope) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) if result is not None: - pulumi.set(__self__, "result", result) + _setter("result", result) if terraform_key is not None: - pulumi.set(__self__, "terraform_key", terraform_key) + _setter("terraform_key", terraform_key) if triggers is not None: - pulumi.set(__self__, "triggers", triggers) + _setter("triggers", triggers) @property @pulumi.getter(name="functionName") @@ -405,6 +465,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InvocationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lambda_/layer_version.py b/sdk/python/pulumi_aws/lambda_/layer_version.py index 317e42ee163..b2914d5a7fd 100644 --- a/sdk/python/pulumi_aws/lambda_/layer_version.py +++ b/sdk/python/pulumi_aws/lambda_/layer_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LayerVersionArgs', 'LayerVersion'] @@ -41,27 +41,78 @@ def __init__(__self__, *, :param pulumi.Input[bool] skip_destroy: Whether to retain the old version of a previously deployed Lambda Layer. Default is `false`. When this is not set to `true`, changing any of `compatible_architectures`, `compatible_runtimes`, `description`, `filename`, `layer_name`, `license_info`, `s3_bucket`, `s3_key`, `s3_object_version`, or `source_code_hash` forces deletion of the existing layer version and creation of a new layer version. :param pulumi.Input[str] source_code_hash: Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the package file specified with either `filename` or `s3_key`. """ - pulumi.set(__self__, "layer_name", layer_name) + LayerVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + layer_name=layer_name, + code=code, + compatible_architectures=compatible_architectures, + compatible_runtimes=compatible_runtimes, + description=description, + license_info=license_info, + s3_bucket=s3_bucket, + s3_key=s3_key, + s3_object_version=s3_object_version, + skip_destroy=skip_destroy, + source_code_hash=source_code_hash, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + layer_name: Optional[pulumi.Input[str]] = None, + code: Optional[pulumi.Input[pulumi.Archive]] = None, + compatible_architectures: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + compatible_runtimes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + license_info: Optional[pulumi.Input[str]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_key: Optional[pulumi.Input[str]] = None, + s3_object_version: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + source_code_hash: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if layer_name is None and 'layerName' in kwargs: + layer_name = kwargs['layerName'] + if layer_name is None: + raise TypeError("Missing 'layer_name' argument") + if compatible_architectures is None and 'compatibleArchitectures' in kwargs: + compatible_architectures = kwargs['compatibleArchitectures'] + if compatible_runtimes is None and 'compatibleRuntimes' in kwargs: + compatible_runtimes = kwargs['compatibleRuntimes'] + if license_info is None and 'licenseInfo' in kwargs: + license_info = kwargs['licenseInfo'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_object_version is None and 's3ObjectVersion' in kwargs: + s3_object_version = kwargs['s3ObjectVersion'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if source_code_hash is None and 'sourceCodeHash' in kwargs: + source_code_hash = kwargs['sourceCodeHash'] + + _setter("layer_name", layer_name) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if compatible_architectures is not None: - pulumi.set(__self__, "compatible_architectures", compatible_architectures) + _setter("compatible_architectures", compatible_architectures) if compatible_runtimes is not None: - pulumi.set(__self__, "compatible_runtimes", compatible_runtimes) + _setter("compatible_runtimes", compatible_runtimes) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if license_info is not None: - pulumi.set(__self__, "license_info", license_info) + _setter("license_info", license_info) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) if s3_key is not None: - pulumi.set(__self__, "s3_key", s3_key) + _setter("s3_key", s3_key) if s3_object_version is not None: - pulumi.set(__self__, "s3_object_version", s3_object_version) + _setter("s3_object_version", s3_object_version) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if source_code_hash is not None: - pulumi.set(__self__, "source_code_hash", source_code_hash) + _setter("source_code_hash", source_code_hash) @property @pulumi.getter(name="layerName") @@ -242,42 +293,115 @@ def __init__(__self__, *, :param pulumi.Input[int] source_code_size: Size in bytes of the function .zip file. :param pulumi.Input[str] version: Lambda Layer version. """ + _LayerVersionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + code=code, + compatible_architectures=compatible_architectures, + compatible_runtimes=compatible_runtimes, + created_date=created_date, + description=description, + layer_arn=layer_arn, + layer_name=layer_name, + license_info=license_info, + s3_bucket=s3_bucket, + s3_key=s3_key, + s3_object_version=s3_object_version, + signing_job_arn=signing_job_arn, + signing_profile_version_arn=signing_profile_version_arn, + skip_destroy=skip_destroy, + source_code_hash=source_code_hash, + source_code_size=source_code_size, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + code: Optional[pulumi.Input[pulumi.Archive]] = None, + compatible_architectures: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + compatible_runtimes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + created_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + layer_arn: Optional[pulumi.Input[str]] = None, + layer_name: Optional[pulumi.Input[str]] = None, + license_info: Optional[pulumi.Input[str]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_key: Optional[pulumi.Input[str]] = None, + s3_object_version: Optional[pulumi.Input[str]] = None, + signing_job_arn: Optional[pulumi.Input[str]] = None, + signing_profile_version_arn: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + source_code_hash: Optional[pulumi.Input[str]] = None, + source_code_size: Optional[pulumi.Input[int]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compatible_architectures is None and 'compatibleArchitectures' in kwargs: + compatible_architectures = kwargs['compatibleArchitectures'] + if compatible_runtimes is None and 'compatibleRuntimes' in kwargs: + compatible_runtimes = kwargs['compatibleRuntimes'] + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if layer_arn is None and 'layerArn' in kwargs: + layer_arn = kwargs['layerArn'] + if layer_name is None and 'layerName' in kwargs: + layer_name = kwargs['layerName'] + if license_info is None and 'licenseInfo' in kwargs: + license_info = kwargs['licenseInfo'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_object_version is None and 's3ObjectVersion' in kwargs: + s3_object_version = kwargs['s3ObjectVersion'] + if signing_job_arn is None and 'signingJobArn' in kwargs: + signing_job_arn = kwargs['signingJobArn'] + if signing_profile_version_arn is None and 'signingProfileVersionArn' in kwargs: + signing_profile_version_arn = kwargs['signingProfileVersionArn'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if source_code_hash is None and 'sourceCodeHash' in kwargs: + source_code_hash = kwargs['sourceCodeHash'] + if source_code_size is None and 'sourceCodeSize' in kwargs: + source_code_size = kwargs['sourceCodeSize'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if code is not None: - pulumi.set(__self__, "code", code) + _setter("code", code) if compatible_architectures is not None: - pulumi.set(__self__, "compatible_architectures", compatible_architectures) + _setter("compatible_architectures", compatible_architectures) if compatible_runtimes is not None: - pulumi.set(__self__, "compatible_runtimes", compatible_runtimes) + _setter("compatible_runtimes", compatible_runtimes) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if layer_arn is not None: - pulumi.set(__self__, "layer_arn", layer_arn) + _setter("layer_arn", layer_arn) if layer_name is not None: - pulumi.set(__self__, "layer_name", layer_name) + _setter("layer_name", layer_name) if license_info is not None: - pulumi.set(__self__, "license_info", license_info) + _setter("license_info", license_info) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) if s3_key is not None: - pulumi.set(__self__, "s3_key", s3_key) + _setter("s3_key", s3_key) if s3_object_version is not None: - pulumi.set(__self__, "s3_object_version", s3_object_version) + _setter("s3_object_version", s3_object_version) if signing_job_arn is not None: - pulumi.set(__self__, "signing_job_arn", signing_job_arn) + _setter("signing_job_arn", signing_job_arn) if signing_profile_version_arn is not None: - pulumi.set(__self__, "signing_profile_version_arn", signing_profile_version_arn) + _setter("signing_profile_version_arn", signing_profile_version_arn) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if source_code_hash is not None: - pulumi.set(__self__, "source_code_hash", source_code_hash) + _setter("source_code_hash", source_code_hash) if source_code_size is not None: - pulumi.set(__self__, "source_code_size", source_code_size) + _setter("source_code_size", source_code_size) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -621,6 +745,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LayerVersionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lambda_/layer_version_permission.py b/sdk/python/pulumi_aws/lambda_/layer_version_permission.py index c5c239f58f1..42d2a9cb3bd 100644 --- a/sdk/python/pulumi_aws/lambda_/layer_version_permission.py +++ b/sdk/python/pulumi_aws/lambda_/layer_version_permission.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LayerVersionPermissionArgs', 'LayerVersionPermission'] @@ -31,15 +31,58 @@ def __init__(__self__, *, :param pulumi.Input[str] organization_id: An identifier of AWS Organization, which should be able to use your Lambda Layer. `principal` should be equal to `*` if `organization_id` provided. :param pulumi.Input[bool] skip_destroy: Whether to retain the old version of a previously deployed Lambda Layer. Default is `false`. When this is not set to `true`, changing any of `compatible_architectures`, `compatible_runtimes`, `description`, `filename`, `layer_name`, `license_info`, `s3_bucket`, `s3_key`, `s3_object_version`, or `source_code_hash` forces deletion of the existing layer version and creation of a new layer version. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "layer_name", layer_name) - pulumi.set(__self__, "principal", principal) - pulumi.set(__self__, "statement_id", statement_id) - pulumi.set(__self__, "version_number", version_number) + LayerVersionPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + layer_name=layer_name, + principal=principal, + statement_id=statement_id, + version_number=version_number, + organization_id=organization_id, + skip_destroy=skip_destroy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + layer_name: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + version_number: Optional[pulumi.Input[int]] = None, + organization_id: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if layer_name is None and 'layerName' in kwargs: + layer_name = kwargs['layerName'] + if layer_name is None: + raise TypeError("Missing 'layer_name' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + if statement_id is None and 'statementId' in kwargs: + statement_id = kwargs['statementId'] + if statement_id is None: + raise TypeError("Missing 'statement_id' argument") + if version_number is None and 'versionNumber' in kwargs: + version_number = kwargs['versionNumber'] + if version_number is None: + raise TypeError("Missing 'version_number' argument") + if organization_id is None and 'organizationId' in kwargs: + organization_id = kwargs['organizationId'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + + _setter("action", action) + _setter("layer_name", layer_name) + _setter("principal", principal) + _setter("statement_id", statement_id) + _setter("version_number", version_number) if organization_id is not None: - pulumi.set(__self__, "organization_id", organization_id) + _setter("organization_id", organization_id) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) @property @pulumi.getter @@ -150,24 +193,63 @@ def __init__(__self__, *, :param pulumi.Input[str] statement_id: The name of Lambda Layer Permission, for example `dev-account` - human readable note about what is this permission for. :param pulumi.Input[int] version_number: Version of Lambda Layer, which you want to grant access to. Note: permissions only apply to a single version of a layer. """ + _LayerVersionPermissionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + layer_name=layer_name, + organization_id=organization_id, + policy=policy, + principal=principal, + revision_id=revision_id, + skip_destroy=skip_destroy, + statement_id=statement_id, + version_number=version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + layer_name: Optional[pulumi.Input[str]] = None, + organization_id: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + revision_id: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if layer_name is None and 'layerName' in kwargs: + layer_name = kwargs['layerName'] + if organization_id is None and 'organizationId' in kwargs: + organization_id = kwargs['organizationId'] + if revision_id is None and 'revisionId' in kwargs: + revision_id = kwargs['revisionId'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if statement_id is None and 'statementId' in kwargs: + statement_id = kwargs['statementId'] + if version_number is None and 'versionNumber' in kwargs: + version_number = kwargs['versionNumber'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if layer_name is not None: - pulumi.set(__self__, "layer_name", layer_name) + _setter("layer_name", layer_name) if organization_id is not None: - pulumi.set(__self__, "organization_id", organization_id) + _setter("organization_id", organization_id) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if revision_id is not None: - pulumi.set(__self__, "revision_id", revision_id) + _setter("revision_id", revision_id) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if statement_id is not None: - pulumi.set(__self__, "statement_id", statement_id) + _setter("statement_id", statement_id) if version_number is not None: - pulumi.set(__self__, "version_number", version_number) + _setter("version_number", version_number) @property @pulumi.getter @@ -375,6 +457,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LayerVersionPermissionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lambda_/outputs.py b/sdk/python/pulumi_aws/lambda_/outputs.py index ad3730b90ce..2a62c940d79 100644 --- a/sdk/python/pulumi_aws/lambda_/outputs.py +++ b/sdk/python/pulumi_aws/lambda_/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -72,8 +72,21 @@ def __init__(__self__, *, """ :param Mapping[str, float] additional_version_weights: A map that defines the proportion of events that should be sent to different versions of a lambda function. """ + AliasRoutingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + additional_version_weights=additional_version_weights, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + additional_version_weights: Optional[Mapping[str, float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if additional_version_weights is None and 'additionalVersionWeights' in kwargs: + additional_version_weights = kwargs['additionalVersionWeights'] + if additional_version_weights is not None: - pulumi.set(__self__, "additional_version_weights", additional_version_weights) + _setter("additional_version_weights", additional_version_weights) @property @pulumi.getter(name="additionalVersionWeights") @@ -108,7 +121,22 @@ def __init__(__self__, *, """ :param Sequence[str] signing_profile_version_arns: The Amazon Resource Name (ARN) for each of the signing profiles. A signing profile defines a trusted user who can sign a code package. """ - pulumi.set(__self__, "signing_profile_version_arns", signing_profile_version_arns) + CodeSigningConfigAllowedPublishers._configure( + lambda key, value: pulumi.set(__self__, key, value), + signing_profile_version_arns=signing_profile_version_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + signing_profile_version_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if signing_profile_version_arns is None and 'signingProfileVersionArns' in kwargs: + signing_profile_version_arns = kwargs['signingProfileVersionArns'] + if signing_profile_version_arns is None: + raise TypeError("Missing 'signing_profile_version_arns' argument") + + _setter("signing_profile_version_arns", signing_profile_version_arns) @property @pulumi.getter(name="signingProfileVersionArns") @@ -143,7 +171,22 @@ def __init__(__self__, *, """ :param str untrusted_artifact_on_deployment: Code signing configuration policy for deployment validation failure. If you set the policy to Enforce, Lambda blocks the deployment request if code-signing validation checks fail. If you set the policy to Warn, Lambda allows the deployment and creates a CloudWatch log. Valid values: `Warn`, `Enforce`. Default value: `Warn`. """ - pulumi.set(__self__, "untrusted_artifact_on_deployment", untrusted_artifact_on_deployment) + CodeSigningConfigPolicies._configure( + lambda key, value: pulumi.set(__self__, key, value), + untrusted_artifact_on_deployment=untrusted_artifact_on_deployment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + untrusted_artifact_on_deployment: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if untrusted_artifact_on_deployment is None and 'untrustedArtifactOnDeployment' in kwargs: + untrusted_artifact_on_deployment = kwargs['untrustedArtifactOnDeployment'] + if untrusted_artifact_on_deployment is None: + raise TypeError("Missing 'untrusted_artifact_on_deployment' argument") + + _setter("untrusted_artifact_on_deployment", untrusted_artifact_on_deployment) @property @pulumi.getter(name="untrustedArtifactOnDeployment") @@ -178,8 +221,21 @@ def __init__(__self__, *, """ :param str consumer_group_id: A Kafka consumer group ID between 1 and 200 characters for use when creating this event source mapping. If one is not specified, this value will be automatically generated. See [AmazonManagedKafkaEventSourceConfig Syntax](https://docs.aws.amazon.com/lambda/latest/dg/API_AmazonManagedKafkaEventSourceConfig.html). """ + EventSourceMappingAmazonManagedKafkaEventSourceConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + consumer_group_id=consumer_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + consumer_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if consumer_group_id is None and 'consumerGroupId' in kwargs: + consumer_group_id = kwargs['consumerGroupId'] + if consumer_group_id is not None: - pulumi.set(__self__, "consumer_group_id", consumer_group_id) + _setter("consumer_group_id", consumer_group_id) @property @pulumi.getter(name="consumerGroupId") @@ -214,8 +270,21 @@ def __init__(__self__, *, """ :param 'EventSourceMappingDestinationConfigOnFailureArgs' on_failure: The destination configuration for failed invocations. Detailed below. """ + EventSourceMappingDestinationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_failure=on_failure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_failure: Optional['outputs.EventSourceMappingDestinationConfigOnFailure'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_failure is None and 'onFailure' in kwargs: + on_failure = kwargs['onFailure'] + if on_failure is not None: - pulumi.set(__self__, "on_failure", on_failure) + _setter("on_failure", on_failure) @property @pulumi.getter(name="onFailure") @@ -250,7 +319,22 @@ def __init__(__self__, *, """ :param str destination_arn: The Amazon Resource Name (ARN) of the destination resource. """ - pulumi.set(__self__, "destination_arn", destination_arn) + EventSourceMappingDestinationConfigOnFailure._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + + _setter("destination_arn", destination_arn) @property @pulumi.getter(name="destinationArn") @@ -293,11 +377,34 @@ def __init__(__self__, *, :param str collection_name: The name of the collection to consume within the database. If you do not specify a collection, Lambda consumes all collections. :param str full_document: Determines what DocumentDB sends to your event stream during document update operations. If set to `UpdateLookup`, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes. Valid values: `UpdateLookup`, `Default`. """ - pulumi.set(__self__, "database_name", database_name) + EventSourceMappingDocumentDbEventSourceConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + collection_name=collection_name, + full_document=full_document, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[str] = None, + collection_name: Optional[str] = None, + full_document: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if collection_name is None and 'collectionName' in kwargs: + collection_name = kwargs['collectionName'] + if full_document is None and 'fullDocument' in kwargs: + full_document = kwargs['fullDocument'] + + _setter("database_name", database_name) if collection_name is not None: - pulumi.set(__self__, "collection_name", collection_name) + _setter("collection_name", collection_name) if full_document is not None: - pulumi.set(__self__, "full_document", full_document) + _setter("full_document", full_document) @property @pulumi.getter(name="databaseName") @@ -331,8 +438,19 @@ def __init__(__self__, *, """ :param Sequence['EventSourceMappingFilterCriteriaFilterArgs'] filters: A set of up to 5 filter. If an event satisfies at least one, Lambda sends the event to the function or adds it to the next batch. Detailed below. """ + EventSourceMappingFilterCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + filters=filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filters: Optional[Sequence['outputs.EventSourceMappingFilterCriteriaFilter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) @property @pulumi.getter @@ -350,8 +468,19 @@ def __init__(__self__, *, """ :param str pattern: A filter pattern up to 4096 characters. See [Filter Rule Syntax](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-syntax). """ + EventSourceMappingFilterCriteriaFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + pattern=pattern, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pattern: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pattern is not None: - pulumi.set(__self__, "pattern", pattern) + _setter("pattern", pattern) @property @pulumi.getter @@ -386,8 +515,21 @@ def __init__(__self__, *, """ :param int maximum_concurrency: Limits the number of concurrent instances that the Amazon SQS event source can invoke. Must be between `2` and `1000`. See [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). """ + EventSourceMappingScalingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_concurrency=maximum_concurrency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_concurrency: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_concurrency is None and 'maximumConcurrency' in kwargs: + maximum_concurrency = kwargs['maximumConcurrency'] + if maximum_concurrency is not None: - pulumi.set(__self__, "maximum_concurrency", maximum_concurrency) + _setter("maximum_concurrency", maximum_concurrency) @property @pulumi.getter(name="maximumConcurrency") @@ -405,7 +547,20 @@ def __init__(__self__, *, """ :param Mapping[str, str] endpoints: A map of endpoints for the self managed source. For Kafka self-managed sources, the key should be `KAFKA_BOOTSTRAP_SERVERS` and the value should be a string with a comma separated list of broker endpoints. """ - pulumi.set(__self__, "endpoints", endpoints) + EventSourceMappingSelfManagedEventSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoints=endpoints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoints: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoints is None: + raise TypeError("Missing 'endpoints' argument") + + _setter("endpoints", endpoints) @property @pulumi.getter @@ -440,8 +595,21 @@ def __init__(__self__, *, """ :param str consumer_group_id: A Kafka consumer group ID between 1 and 200 characters for use when creating this event source mapping. If one is not specified, this value will be automatically generated. See [SelfManagedKafkaEventSourceConfig Syntax](https://docs.aws.amazon.com/lambda/latest/dg/API_SelfManagedKafkaEventSourceConfig.html). """ + EventSourceMappingSelfManagedKafkaEventSourceConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + consumer_group_id=consumer_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + consumer_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if consumer_group_id is None and 'consumerGroupId' in kwargs: + consumer_group_id = kwargs['consumerGroupId'] + if consumer_group_id is not None: - pulumi.set(__self__, "consumer_group_id", consumer_group_id) + _setter("consumer_group_id", consumer_group_id) @property @pulumi.getter(name="consumerGroupId") @@ -461,8 +629,25 @@ def __init__(__self__, *, :param str type: The type of this configuration. For Self Managed Kafka you will need to supply blocks for type `VPC_SUBNET` and `VPC_SECURITY_GROUP`. :param str uri: The URI for this configuration. For type `VPC_SUBNET` the value should be `subnet:subnet_id` where `subnet_id` is the value you would find in an ec2.Subnet resource's id attribute. For type `VPC_SECURITY_GROUP` the value should be `security_group:security_group_id` where `security_group_id` is the value you would find in an ec2.SecurityGroup resource's id attribute. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "uri", uri) + EventSourceMappingSourceAccessConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("type", type) + _setter("uri", uri) @property @pulumi.getter @@ -505,7 +690,22 @@ def __init__(__self__, *, """ :param str target_arn: ARN of an SNS topic or SQS queue to notify when an invocation fails. If this option is used, the function's IAM role must be granted suitable access to write to the target object, which means allowing either the `sns:Publish` or `sqs:SendMessage` action on this ARN, depending on which service is targeted. """ - pulumi.set(__self__, "target_arn", target_arn) + FunctionDeadLetterConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_arn=target_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + + _setter("target_arn", target_arn) @property @pulumi.getter(name="targetArn") @@ -523,8 +723,19 @@ def __init__(__self__, *, """ :param Mapping[str, str] variables: Map of environment variables that are accessible from the function code during execution. If provided at least one key must be present. """ + FunctionEnvironment._configure( + lambda key, value: pulumi.set(__self__, key, value), + variables=variables, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + variables: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if variables is not None: - pulumi.set(__self__, "variables", variables) + _setter("variables", variables) @property @pulumi.getter @@ -542,8 +753,19 @@ def __init__(__self__, *, """ :param int size: The size of the Lambda function Ephemeral storage(`/tmp`) represented in MB. The minimum supported `ephemeral_storage` value defaults to `512`MB and the maximum supported value is `10240`MB. """ + FunctionEphemeralStorage._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is not None: - pulumi.set(__self__, "size", size) + _setter("size", size) @property @pulumi.getter @@ -582,10 +804,27 @@ def __init__(__self__, *, :param 'FunctionEventInvokeConfigDestinationConfigOnFailureArgs' on_failure: Configuration block with destination configuration for failed asynchronous invocations. See below for details. :param 'FunctionEventInvokeConfigDestinationConfigOnSuccessArgs' on_success: Configuration block with destination configuration for successful asynchronous invocations. See below for details. """ + FunctionEventInvokeConfigDestinationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_failure=on_failure, + on_success=on_success, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_failure: Optional['outputs.FunctionEventInvokeConfigDestinationConfigOnFailure'] = None, + on_success: Optional['outputs.FunctionEventInvokeConfigDestinationConfigOnSuccess'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_failure is None and 'onFailure' in kwargs: + on_failure = kwargs['onFailure'] + if on_success is None and 'onSuccess' in kwargs: + on_success = kwargs['onSuccess'] + if on_failure is not None: - pulumi.set(__self__, "on_failure", on_failure) + _setter("on_failure", on_failure) if on_success is not None: - pulumi.set(__self__, "on_success", on_success) + _setter("on_success", on_success) @property @pulumi.getter(name="onFailure") @@ -611,7 +850,20 @@ def __init__(__self__, *, """ :param str destination: Amazon Resource Name (ARN) of the destination resource. See the [Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations) for acceptable resource types and associated IAM permissions. """ - pulumi.set(__self__, "destination", destination) + FunctionEventInvokeConfigDestinationConfigOnFailure._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + + _setter("destination", destination) @property @pulumi.getter @@ -629,7 +881,20 @@ def __init__(__self__, *, """ :param str destination: Amazon Resource Name (ARN) of the destination resource. See the [Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations) for acceptable resource types and associated IAM permissions. """ - pulumi.set(__self__, "destination", destination) + FunctionEventInvokeConfigDestinationConfigOnSuccess._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + + _setter("destination", destination) @property @pulumi.getter @@ -666,8 +931,27 @@ def __init__(__self__, *, :param str arn: Amazon Resource Name (ARN) of the Amazon EFS Access Point that provides access to the file system. :param str local_mount_path: Path where the function can access the file system, starting with /mnt/. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "local_mount_path", local_mount_path) + FunctionFileSystemConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + local_mount_path=local_mount_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + local_mount_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if local_mount_path is None and 'localMountPath' in kwargs: + local_mount_path = kwargs['localMountPath'] + if local_mount_path is None: + raise TypeError("Missing 'local_mount_path' argument") + + _setter("arn", arn) + _setter("local_mount_path", local_mount_path) @property @pulumi.getter @@ -716,12 +1000,31 @@ def __init__(__self__, *, :param Sequence[str] entry_points: Entry point to your application, which is typically the location of the runtime executable. :param str working_directory: Working directory. """ + FunctionImageConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + commands=commands, + entry_points=entry_points, + working_directory=working_directory, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + commands: Optional[Sequence[str]] = None, + entry_points: Optional[Sequence[str]] = None, + working_directory: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry_points is None and 'entryPoints' in kwargs: + entry_points = kwargs['entryPoints'] + if working_directory is None and 'workingDirectory' in kwargs: + working_directory = kwargs['workingDirectory'] + if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if entry_points is not None: - pulumi.set(__self__, "entry_points", entry_points) + _setter("entry_points", entry_points) if working_directory is not None: - pulumi.set(__self__, "working_directory", working_directory) + _setter("working_directory", working_directory) @property @pulumi.getter @@ -775,9 +1078,28 @@ def __init__(__self__, *, """ :param str apply_on: Conditions where snap start is enabled. Valid values are `PublishedVersions`. """ - pulumi.set(__self__, "apply_on", apply_on) + FunctionSnapStart._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_on=apply_on, + optimization_status=optimization_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_on: Optional[str] = None, + optimization_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_on is None and 'applyOn' in kwargs: + apply_on = kwargs['applyOn'] + if apply_on is None: + raise TypeError("Missing 'apply_on' argument") + if optimization_status is None and 'optimizationStatus' in kwargs: + optimization_status = kwargs['optimizationStatus'] + + _setter("apply_on", apply_on) if optimization_status is not None: - pulumi.set(__self__, "optimization_status", optimization_status) + _setter("optimization_status", optimization_status) @property @pulumi.getter(name="applyOn") @@ -800,7 +1122,20 @@ def __init__(__self__, *, """ :param str mode: Whether to sample and trace a subset of incoming requests with AWS X-Ray. Valid values are `PassThrough` and `Active`. If `PassThrough`, Lambda will only trace the request from an upstream service if it contains a tracing header with "sampled=1". If `Active`, Lambda will respect any tracing header it receives from an upstream service. If no tracing header is received, Lambda will call X-Ray for a tracing decision. """ - pulumi.set(__self__, "mode", mode) + FunctionTracingConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("mode", mode) @property @pulumi.getter @@ -855,18 +1190,51 @@ def __init__(__self__, *, :param Sequence[str] expose_headers: The HTTP headers in your function response that you want to expose to origins that call the function URL. :param int max_age: The maximum amount of time, in seconds, that web browsers can cache results of a preflight request. By default, this is set to `0`, which means that the browser doesn't cache results. The maximum value is `86400`. """ + FunctionUrlCors._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_credentials=allow_credentials, + allow_headers=allow_headers, + allow_methods=allow_methods, + allow_origins=allow_origins, + expose_headers=expose_headers, + max_age=max_age, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_credentials: Optional[bool] = None, + allow_headers: Optional[Sequence[str]] = None, + allow_methods: Optional[Sequence[str]] = None, + allow_origins: Optional[Sequence[str]] = None, + expose_headers: Optional[Sequence[str]] = None, + max_age: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_credentials is None and 'allowCredentials' in kwargs: + allow_credentials = kwargs['allowCredentials'] + if allow_headers is None and 'allowHeaders' in kwargs: + allow_headers = kwargs['allowHeaders'] + if allow_methods is None and 'allowMethods' in kwargs: + allow_methods = kwargs['allowMethods'] + if allow_origins is None and 'allowOrigins' in kwargs: + allow_origins = kwargs['allowOrigins'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age is None and 'maxAge' in kwargs: + max_age = kwargs['maxAge'] + if allow_credentials is not None: - pulumi.set(__self__, "allow_credentials", allow_credentials) + _setter("allow_credentials", allow_credentials) if allow_headers is not None: - pulumi.set(__self__, "allow_headers", allow_headers) + _setter("allow_headers", allow_headers) if allow_methods is not None: - pulumi.set(__self__, "allow_methods", allow_methods) + _setter("allow_methods", allow_methods) if allow_origins is not None: - pulumi.set(__self__, "allow_origins", allow_origins) + _setter("allow_origins", allow_origins) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if max_age is not None: - pulumi.set(__self__, "max_age", max_age) + _setter("max_age", max_age) @property @pulumi.getter(name="allowCredentials") @@ -948,10 +1316,35 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: List of security group IDs associated with the Lambda function. :param Sequence[str] subnet_ids: List of subnet IDs associated with the Lambda function. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) + FunctionVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") @@ -982,7 +1375,22 @@ def __init__(__self__, *, """ :param Sequence[str] signing_profile_version_arns: The ARN for each of the signing profiles. A signing profile defines a trusted user who can sign a code package. """ - pulumi.set(__self__, "signing_profile_version_arns", signing_profile_version_arns) + GetCodeSigningConfigAllowedPublisherResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + signing_profile_version_arns=signing_profile_version_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + signing_profile_version_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if signing_profile_version_arns is None and 'signingProfileVersionArns' in kwargs: + signing_profile_version_arns = kwargs['signingProfileVersionArns'] + if signing_profile_version_arns is None: + raise TypeError("Missing 'signing_profile_version_arns' argument") + + _setter("signing_profile_version_arns", signing_profile_version_arns) @property @pulumi.getter(name="signingProfileVersionArns") @@ -1000,7 +1408,22 @@ def __init__(__self__, *, """ :param str untrusted_artifact_on_deployment: Code signing configuration policy for deployment validation failure. """ - pulumi.set(__self__, "untrusted_artifact_on_deployment", untrusted_artifact_on_deployment) + GetCodeSigningConfigPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + untrusted_artifact_on_deployment=untrusted_artifact_on_deployment, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + untrusted_artifact_on_deployment: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if untrusted_artifact_on_deployment is None and 'untrustedArtifactOnDeployment' in kwargs: + untrusted_artifact_on_deployment = kwargs['untrustedArtifactOnDeployment'] + if untrusted_artifact_on_deployment is None: + raise TypeError("Missing 'untrusted_artifact_on_deployment' argument") + + _setter("untrusted_artifact_on_deployment", untrusted_artifact_on_deployment) @property @pulumi.getter(name="untrustedArtifactOnDeployment") @@ -1015,7 +1438,22 @@ def untrusted_artifact_on_deployment(self) -> str: class GetFunctionDeadLetterConfigResult(dict): def __init__(__self__, *, target_arn: str): - pulumi.set(__self__, "target_arn", target_arn) + GetFunctionDeadLetterConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_arn=target_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_arn is None: + raise TypeError("Missing 'target_arn' argument") + + _setter("target_arn", target_arn) @property @pulumi.getter(name="targetArn") @@ -1027,7 +1465,20 @@ def target_arn(self) -> str: class GetFunctionEnvironmentResult(dict): def __init__(__self__, *, variables: Mapping[str, str]): - pulumi.set(__self__, "variables", variables) + GetFunctionEnvironmentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + variables=variables, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + variables: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if variables is None: + raise TypeError("Missing 'variables' argument") + + _setter("variables", variables) @property @pulumi.getter @@ -1039,7 +1490,20 @@ def variables(self) -> Mapping[str, str]: class GetFunctionEphemeralStorageResult(dict): def __init__(__self__, *, size: int): - pulumi.set(__self__, "size", size) + GetFunctionEphemeralStorageResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is None: + raise TypeError("Missing 'size' argument") + + _setter("size", size) @property @pulumi.getter @@ -1055,8 +1519,27 @@ def __init__(__self__, *, """ :param str arn: Unqualified (no `:QUALIFIER` or `:VERSION` suffix) ARN identifying your Lambda Function. See also `qualified_arn`. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "local_mount_path", local_mount_path) + GetFunctionFileSystemConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + local_mount_path=local_mount_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + local_mount_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if local_mount_path is None and 'localMountPath' in kwargs: + local_mount_path = kwargs['localMountPath'] + if local_mount_path is None: + raise TypeError("Missing 'local_mount_path' argument") + + _setter("arn", arn) + _setter("local_mount_path", local_mount_path) @property @pulumi.getter @@ -1076,7 +1559,20 @@ def local_mount_path(self) -> str: class GetFunctionTracingConfigResult(dict): def __init__(__self__, *, mode: str): - pulumi.set(__self__, "mode", mode) + GetFunctionTracingConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("mode", mode) @property @pulumi.getter @@ -1093,12 +1589,57 @@ def __init__(__self__, *, allow_origins: Sequence[str], expose_headers: Sequence[str], max_age: int): - pulumi.set(__self__, "allow_credentials", allow_credentials) - pulumi.set(__self__, "allow_headers", allow_headers) - pulumi.set(__self__, "allow_methods", allow_methods) - pulumi.set(__self__, "allow_origins", allow_origins) - pulumi.set(__self__, "expose_headers", expose_headers) - pulumi.set(__self__, "max_age", max_age) + GetFunctionUrlCorResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_credentials=allow_credentials, + allow_headers=allow_headers, + allow_methods=allow_methods, + allow_origins=allow_origins, + expose_headers=expose_headers, + max_age=max_age, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_credentials: Optional[bool] = None, + allow_headers: Optional[Sequence[str]] = None, + allow_methods: Optional[Sequence[str]] = None, + allow_origins: Optional[Sequence[str]] = None, + expose_headers: Optional[Sequence[str]] = None, + max_age: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_credentials is None and 'allowCredentials' in kwargs: + allow_credentials = kwargs['allowCredentials'] + if allow_credentials is None: + raise TypeError("Missing 'allow_credentials' argument") + if allow_headers is None and 'allowHeaders' in kwargs: + allow_headers = kwargs['allowHeaders'] + if allow_headers is None: + raise TypeError("Missing 'allow_headers' argument") + if allow_methods is None and 'allowMethods' in kwargs: + allow_methods = kwargs['allowMethods'] + if allow_methods is None: + raise TypeError("Missing 'allow_methods' argument") + if allow_origins is None and 'allowOrigins' in kwargs: + allow_origins = kwargs['allowOrigins'] + if allow_origins is None: + raise TypeError("Missing 'allow_origins' argument") + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if expose_headers is None: + raise TypeError("Missing 'expose_headers' argument") + if max_age is None and 'maxAge' in kwargs: + max_age = kwargs['maxAge'] + if max_age is None: + raise TypeError("Missing 'max_age' argument") + + _setter("allow_credentials", allow_credentials) + _setter("allow_headers", allow_headers) + _setter("allow_methods", allow_methods) + _setter("allow_origins", allow_origins) + _setter("expose_headers", expose_headers) + _setter("max_age", max_age) @property @pulumi.getter(name="allowCredentials") @@ -1137,9 +1678,36 @@ def __init__(__self__, *, security_group_ids: Sequence[str], subnet_ids: Sequence[str], vpc_id: str): - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + GetFunctionVpcConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/lambda_/permission.py b/sdk/python/pulumi_aws/lambda_/permission.py index af547a8f95e..89c69119b73 100644 --- a/sdk/python/pulumi_aws/lambda_/permission.py +++ b/sdk/python/pulumi_aws/lambda_/permission.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PermissionArgs', 'Permission'] @@ -47,25 +47,76 @@ def __init__(__self__, *, :param pulumi.Input[str] statement_id: A unique statement identifier. By default generated by the provider. :param pulumi.Input[str] statement_id_prefix: A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statement_id`. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "function", function) - pulumi.set(__self__, "principal", principal) + PermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + function=function, + principal=principal, + event_source_token=event_source_token, + function_url_auth_type=function_url_auth_type, + principal_org_id=principal_org_id, + qualifier=qualifier, + source_account=source_account, + source_arn=source_arn, + statement_id=statement_id, + statement_id_prefix=statement_id_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + function: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + event_source_token: Optional[pulumi.Input[str]] = None, + function_url_auth_type: Optional[pulumi.Input[str]] = None, + principal_org_id: Optional[pulumi.Input[str]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + source_account: Optional[pulumi.Input[str]] = None, + source_arn: Optional[pulumi.Input[str]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + statement_id_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if function is None: + raise TypeError("Missing 'function' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + if event_source_token is None and 'eventSourceToken' in kwargs: + event_source_token = kwargs['eventSourceToken'] + if function_url_auth_type is None and 'functionUrlAuthType' in kwargs: + function_url_auth_type = kwargs['functionUrlAuthType'] + if principal_org_id is None and 'principalOrgId' in kwargs: + principal_org_id = kwargs['principalOrgId'] + if source_account is None and 'sourceAccount' in kwargs: + source_account = kwargs['sourceAccount'] + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if statement_id is None and 'statementId' in kwargs: + statement_id = kwargs['statementId'] + if statement_id_prefix is None and 'statementIdPrefix' in kwargs: + statement_id_prefix = kwargs['statementIdPrefix'] + + _setter("action", action) + _setter("function", function) + _setter("principal", principal) if event_source_token is not None: - pulumi.set(__self__, "event_source_token", event_source_token) + _setter("event_source_token", event_source_token) if function_url_auth_type is not None: - pulumi.set(__self__, "function_url_auth_type", function_url_auth_type) + _setter("function_url_auth_type", function_url_auth_type) if principal_org_id is not None: - pulumi.set(__self__, "principal_org_id", principal_org_id) + _setter("principal_org_id", principal_org_id) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) if source_account is not None: - pulumi.set(__self__, "source_account", source_account) + _setter("source_account", source_account) if source_arn is not None: - pulumi.set(__self__, "source_arn", source_arn) + _setter("source_arn", source_arn) if statement_id is not None: - pulumi.set(__self__, "statement_id", statement_id) + _setter("statement_id", statement_id) if statement_id_prefix is not None: - pulumi.set(__self__, "statement_id_prefix", statement_id_prefix) + _setter("statement_id_prefix", statement_id_prefix) @property @pulumi.getter @@ -244,28 +295,73 @@ def __init__(__self__, *, :param pulumi.Input[str] statement_id: A unique statement identifier. By default generated by the provider. :param pulumi.Input[str] statement_id_prefix: A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statement_id`. """ + _PermissionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + event_source_token=event_source_token, + function=function, + function_url_auth_type=function_url_auth_type, + principal=principal, + principal_org_id=principal_org_id, + qualifier=qualifier, + source_account=source_account, + source_arn=source_arn, + statement_id=statement_id, + statement_id_prefix=statement_id_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + event_source_token: Optional[pulumi.Input[str]] = None, + function: Optional[pulumi.Input[str]] = None, + function_url_auth_type: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + principal_org_id: Optional[pulumi.Input[str]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + source_account: Optional[pulumi.Input[str]] = None, + source_arn: Optional[pulumi.Input[str]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + statement_id_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_source_token is None and 'eventSourceToken' in kwargs: + event_source_token = kwargs['eventSourceToken'] + if function_url_auth_type is None and 'functionUrlAuthType' in kwargs: + function_url_auth_type = kwargs['functionUrlAuthType'] + if principal_org_id is None and 'principalOrgId' in kwargs: + principal_org_id = kwargs['principalOrgId'] + if source_account is None and 'sourceAccount' in kwargs: + source_account = kwargs['sourceAccount'] + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if statement_id is None and 'statementId' in kwargs: + statement_id = kwargs['statementId'] + if statement_id_prefix is None and 'statementIdPrefix' in kwargs: + statement_id_prefix = kwargs['statementIdPrefix'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if event_source_token is not None: - pulumi.set(__self__, "event_source_token", event_source_token) + _setter("event_source_token", event_source_token) if function is not None: - pulumi.set(__self__, "function", function) + _setter("function", function) if function_url_auth_type is not None: - pulumi.set(__self__, "function_url_auth_type", function_url_auth_type) + _setter("function_url_auth_type", function_url_auth_type) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if principal_org_id is not None: - pulumi.set(__self__, "principal_org_id", principal_org_id) + _setter("principal_org_id", principal_org_id) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) if source_account is not None: - pulumi.set(__self__, "source_account", source_account) + _setter("source_account", source_account) if source_arn is not None: - pulumi.set(__self__, "source_arn", source_arn) + _setter("source_arn", source_arn) if statement_id is not None: - pulumi.set(__self__, "statement_id", statement_id) + _setter("statement_id", statement_id) if statement_id_prefix is not None: - pulumi.set(__self__, "statement_id_prefix", statement_id_prefix) + _setter("statement_id_prefix", statement_id_prefix) @property @pulumi.getter @@ -781,6 +877,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PermissionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lambda_/provisioned_concurrency_config.py b/sdk/python/pulumi_aws/lambda_/provisioned_concurrency_config.py index cac3cdd08b6..490b538ce93 100644 --- a/sdk/python/pulumi_aws/lambda_/provisioned_concurrency_config.py +++ b/sdk/python/pulumi_aws/lambda_/provisioned_concurrency_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProvisionedConcurrencyConfigArgs', 'ProvisionedConcurrencyConfig'] @@ -27,11 +27,40 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] skip_destroy: Whether to retain the provisoned concurrency configuration upon destruction. Defaults to `false`. If set to `true`, the resource in simply removed from state instead. """ - pulumi.set(__self__, "function_name", function_name) - pulumi.set(__self__, "provisioned_concurrent_executions", provisioned_concurrent_executions) - pulumi.set(__self__, "qualifier", qualifier) + ProvisionedConcurrencyConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_name=function_name, + provisioned_concurrent_executions=provisioned_concurrent_executions, + qualifier=qualifier, + skip_destroy=skip_destroy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_name: Optional[pulumi.Input[str]] = None, + provisioned_concurrent_executions: Optional[pulumi.Input[int]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if function_name is None: + raise TypeError("Missing 'function_name' argument") + if provisioned_concurrent_executions is None and 'provisionedConcurrentExecutions' in kwargs: + provisioned_concurrent_executions = kwargs['provisionedConcurrentExecutions'] + if provisioned_concurrent_executions is None: + raise TypeError("Missing 'provisioned_concurrent_executions' argument") + if qualifier is None: + raise TypeError("Missing 'qualifier' argument") + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + + _setter("function_name", function_name) + _setter("provisioned_concurrent_executions", provisioned_concurrent_executions) + _setter("qualifier", qualifier) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) @property @pulumi.getter(name="functionName") @@ -100,14 +129,37 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] skip_destroy: Whether to retain the provisoned concurrency configuration upon destruction. Defaults to `false`. If set to `true`, the resource in simply removed from state instead. """ + _ProvisionedConcurrencyConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_name=function_name, + provisioned_concurrent_executions=provisioned_concurrent_executions, + qualifier=qualifier, + skip_destroy=skip_destroy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_name: Optional[pulumi.Input[str]] = None, + provisioned_concurrent_executions: Optional[pulumi.Input[int]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_name is None and 'functionName' in kwargs: + function_name = kwargs['functionName'] + if provisioned_concurrent_executions is None and 'provisionedConcurrentExecutions' in kwargs: + provisioned_concurrent_executions = kwargs['provisionedConcurrentExecutions'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if function_name is not None: - pulumi.set(__self__, "function_name", function_name) + _setter("function_name", function_name) if provisioned_concurrent_executions is not None: - pulumi.set(__self__, "provisioned_concurrent_executions", provisioned_concurrent_executions) + _setter("provisioned_concurrent_executions", provisioned_concurrent_executions) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) @property @pulumi.getter(name="functionName") @@ -269,6 +321,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProvisionedConcurrencyConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lb/_inputs.py b/sdk/python/pulumi_aws/lb/_inputs.py index b0cae08fba3..cda57d3f312 100644 --- a/sdk/python/pulumi_aws/lb/_inputs.py +++ b/sdk/python/pulumi_aws/lb/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -63,21 +63,56 @@ def __init__(__self__, *, :param pulumi.Input['ListenerDefaultActionRedirectArgs'] redirect: Configuration block for creating a redirect action. Required if `type` is `redirect`. Detailed below. :param pulumi.Input[str] target_group_arn: ARN of the Target Group to which to route traffic. Specify only if `type` is `forward` and you want to route to a single target group. To route to one or more target groups, use a `forward` block instead. """ - pulumi.set(__self__, "type", type) + ListenerDefaultActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + authenticate_cognito=authenticate_cognito, + authenticate_oidc=authenticate_oidc, + fixed_response=fixed_response, + forward=forward, + order=order, + redirect=redirect, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + authenticate_cognito: Optional[pulumi.Input['ListenerDefaultActionAuthenticateCognitoArgs']] = None, + authenticate_oidc: Optional[pulumi.Input['ListenerDefaultActionAuthenticateOidcArgs']] = None, + fixed_response: Optional[pulumi.Input['ListenerDefaultActionFixedResponseArgs']] = None, + forward: Optional[pulumi.Input['ListenerDefaultActionForwardArgs']] = None, + order: Optional[pulumi.Input[int]] = None, + redirect: Optional[pulumi.Input['ListenerDefaultActionRedirectArgs']] = None, + target_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if authenticate_cognito is None and 'authenticateCognito' in kwargs: + authenticate_cognito = kwargs['authenticateCognito'] + if authenticate_oidc is None and 'authenticateOidc' in kwargs: + authenticate_oidc = kwargs['authenticateOidc'] + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("type", type) if authenticate_cognito is not None: - pulumi.set(__self__, "authenticate_cognito", authenticate_cognito) + _setter("authenticate_cognito", authenticate_cognito) if authenticate_oidc is not None: - pulumi.set(__self__, "authenticate_oidc", authenticate_oidc) + _setter("authenticate_oidc", authenticate_oidc) if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) if order is not None: - pulumi.set(__self__, "order", order) + _setter("order", order) if redirect is not None: - pulumi.set(__self__, "redirect", redirect) + _setter("redirect", redirect) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter @@ -201,19 +236,64 @@ def __init__(__self__, *, :param pulumi.Input[str] session_cookie_name: Name of the cookie used to maintain session information. :param pulumi.Input[int] session_timeout: Maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + ListenerDefaultActionAuthenticateCognitoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_arn: Optional[pulumi.Input[str]] = None, + user_pool_client_id: Optional[pulumi.Input[str]] = None, + user_pool_domain: Optional[pulumi.Input[str]] = None, + authentication_request_extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + on_unauthenticated_request: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + session_cookie_name: Optional[pulumi.Input[str]] = None, + session_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="userPoolArn") @@ -343,22 +423,83 @@ def __init__(__self__, *, :param pulumi.Input[str] session_cookie_name: Name of the cookie used to maintain session information. :param pulumi.Input[int] session_timeout: Maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + ListenerDefaultActionAuthenticateOidcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + issuer: Optional[pulumi.Input[str]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_info_endpoint: Optional[pulumi.Input[str]] = None, + authentication_request_extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + on_unauthenticated_request: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + session_cookie_name: Optional[pulumi.Input[str]] = None, + session_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="authorizationEndpoint") @@ -508,11 +649,34 @@ def __init__(__self__, *, :param pulumi.Input[str] message_body: Message body. :param pulumi.Input[str] status_code: HTTP response code. Valid values are `2XX`, `4XX`, or `5XX`. """ - pulumi.set(__self__, "content_type", content_type) + ListenerDefaultActionFixedResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[pulumi.Input[str]] = None, + message_body: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("content_type", content_type) if message_body is not None: - pulumi.set(__self__, "message_body", message_body) + _setter("message_body", message_body) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -564,9 +728,26 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['ListenerDefaultActionForwardStickinessArgs'] stickiness: Configuration block for target group stickiness for the rule. Detailed below. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerDefaultActionForwardArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + stickiness=stickiness, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionForwardTargetGroupArgs']]]] = None, + stickiness: Optional[pulumi.Input['ListenerDefaultActionForwardStickinessArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) @property @pulumi.getter(name="targetGroups") @@ -606,9 +787,24 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] enabled: Whether target group stickiness is enabled. Default is `false`. """ - pulumi.set(__self__, "duration", duration) + ListenerDefaultActionForwardStickinessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + + _setter("duration", duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -648,9 +844,24 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[int] weight: Weight. The range is 0 to 999. """ - pulumi.set(__self__, "arn", arn) + ListenerDefaultActionForwardTargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter @@ -698,17 +909,42 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol: Protocol. Valid values are `HTTP`, `HTTPS`, or `#{protocol}`. Defaults to `#{protocol}`. :param pulumi.Input[str] query: Query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?". Defaults to `#{query}`. """ - pulumi.set(__self__, "status_code", status_code) + ListenerDefaultActionRedirectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + query: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if query is not None: - pulumi.set(__self__, "query", query) + _setter("query", query) @property @pulumi.getter(name="statusCode") @@ -805,21 +1041,56 @@ def __init__(__self__, *, :param pulumi.Input['ListenerRuleActionRedirectArgs'] redirect: Information for creating a redirect action. Required if `type` is `redirect`. :param pulumi.Input[str] target_group_arn: The ARN of the Target Group to which to route traffic. Specify only if `type` is `forward` and you want to route to a single target group. To route to one or more target groups, use a `forward` block instead. """ - pulumi.set(__self__, "type", type) + ListenerRuleActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + authenticate_cognito=authenticate_cognito, + authenticate_oidc=authenticate_oidc, + fixed_response=fixed_response, + forward=forward, + order=order, + redirect=redirect, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + authenticate_cognito: Optional[pulumi.Input['ListenerRuleActionAuthenticateCognitoArgs']] = None, + authenticate_oidc: Optional[pulumi.Input['ListenerRuleActionAuthenticateOidcArgs']] = None, + fixed_response: Optional[pulumi.Input['ListenerRuleActionFixedResponseArgs']] = None, + forward: Optional[pulumi.Input['ListenerRuleActionForwardArgs']] = None, + order: Optional[pulumi.Input[int]] = None, + redirect: Optional[pulumi.Input['ListenerRuleActionRedirectArgs']] = None, + target_group_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if authenticate_cognito is None and 'authenticateCognito' in kwargs: + authenticate_cognito = kwargs['authenticateCognito'] + if authenticate_oidc is None and 'authenticateOidc' in kwargs: + authenticate_oidc = kwargs['authenticateOidc'] + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("type", type) if authenticate_cognito is not None: - pulumi.set(__self__, "authenticate_cognito", authenticate_cognito) + _setter("authenticate_cognito", authenticate_cognito) if authenticate_oidc is not None: - pulumi.set(__self__, "authenticate_oidc", authenticate_oidc) + _setter("authenticate_oidc", authenticate_oidc) if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) if order is not None: - pulumi.set(__self__, "order", order) + _setter("order", order) if redirect is not None: - pulumi.set(__self__, "redirect", redirect) + _setter("redirect", redirect) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter @@ -936,19 +1207,64 @@ def __init__(__self__, *, :param pulumi.Input[str] session_cookie_name: The name of the cookie used to maintain session information. :param pulumi.Input[int] session_timeout: The maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + ListenerRuleActionAuthenticateCognitoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_arn: Optional[pulumi.Input[str]] = None, + user_pool_client_id: Optional[pulumi.Input[str]] = None, + user_pool_domain: Optional[pulumi.Input[str]] = None, + authentication_request_extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + on_unauthenticated_request: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + session_cookie_name: Optional[pulumi.Input[str]] = None, + session_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="userPoolArn") @@ -1074,22 +1390,83 @@ def __init__(__self__, *, :param pulumi.Input[str] session_cookie_name: The name of the cookie used to maintain session information. :param pulumi.Input[int] session_timeout: The maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + ListenerRuleActionAuthenticateOidcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + issuer: Optional[pulumi.Input[str]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_info_endpoint: Optional[pulumi.Input[str]] = None, + authentication_request_extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + on_unauthenticated_request: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + session_cookie_name: Optional[pulumi.Input[str]] = None, + session_timeout: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="authorizationEndpoint") @@ -1235,11 +1612,34 @@ def __init__(__self__, *, :param pulumi.Input[str] message_body: The message body. :param pulumi.Input[str] status_code: The HTTP response code. Valid values are `2XX`, `4XX`, or `5XX`. """ - pulumi.set(__self__, "content_type", content_type) + ListenerRuleActionFixedResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[pulumi.Input[str]] = None, + message_body: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("content_type", content_type) if message_body is not None: - pulumi.set(__self__, "message_body", message_body) + _setter("message_body", message_body) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -1287,9 +1687,26 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ListenerRuleActionForwardTargetGroupArgs']]] target_groups: One or more target groups block. :param pulumi.Input['ListenerRuleActionForwardStickinessArgs'] stickiness: The target group stickiness for the rule. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerRuleActionForwardArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + stickiness=stickiness, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleActionForwardTargetGroupArgs']]]] = None, + stickiness: Optional[pulumi.Input['ListenerRuleActionForwardStickinessArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) @property @pulumi.getter(name="targetGroups") @@ -1325,9 +1742,24 @@ def __init__(__self__, *, :param pulumi.Input[int] duration: The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). :param pulumi.Input[bool] enabled: Indicates whether target group stickiness is enabled. """ - pulumi.set(__self__, "duration", duration) + ListenerRuleActionForwardStickinessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + + _setter("duration", duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1363,9 +1795,24 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the target group. :param pulumi.Input[int] weight: The weight. The range is 0 to 999. """ - pulumi.set(__self__, "arn", arn) + ListenerRuleActionForwardTargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter @@ -1409,17 +1856,42 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol: The protocol. Valid values are `HTTP`, `HTTPS`, or `#{protocol}`. Defaults to `#{protocol}`. :param pulumi.Input[str] query: The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?". Defaults to `#{query}`. """ - pulumi.set(__self__, "status_code", status_code) + ListenerRuleActionRedirectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + query: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if query is not None: - pulumi.set(__self__, "query", query) + _setter("query", query) @property @pulumi.getter(name="statusCode") @@ -1513,18 +1985,51 @@ def __init__(__self__, *, > **NOTE::** Exactly one of `host_header`, `http_header`, `http_request_method`, `path_pattern`, `query_string` or `source_ip` must be set per condition. """ + ListenerRuleConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + host_header=host_header, + http_header=http_header, + http_request_method=http_request_method, + path_pattern=path_pattern, + query_strings=query_strings, + source_ip=source_ip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host_header: Optional[pulumi.Input['ListenerRuleConditionHostHeaderArgs']] = None, + http_header: Optional[pulumi.Input['ListenerRuleConditionHttpHeaderArgs']] = None, + http_request_method: Optional[pulumi.Input['ListenerRuleConditionHttpRequestMethodArgs']] = None, + path_pattern: Optional[pulumi.Input['ListenerRuleConditionPathPatternArgs']] = None, + query_strings: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleConditionQueryStringArgs']]]] = None, + source_ip: Optional[pulumi.Input['ListenerRuleConditionSourceIpArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_header is None and 'hostHeader' in kwargs: + host_header = kwargs['hostHeader'] + if http_header is None and 'httpHeader' in kwargs: + http_header = kwargs['httpHeader'] + if http_request_method is None and 'httpRequestMethod' in kwargs: + http_request_method = kwargs['httpRequestMethod'] + if path_pattern is None and 'pathPattern' in kwargs: + path_pattern = kwargs['pathPattern'] + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if source_ip is None and 'sourceIp' in kwargs: + source_ip = kwargs['sourceIp'] + if host_header is not None: - pulumi.set(__self__, "host_header", host_header) + _setter("host_header", host_header) if http_header is not None: - pulumi.set(__self__, "http_header", http_header) + _setter("http_header", http_header) if http_request_method is not None: - pulumi.set(__self__, "http_request_method", http_request_method) + _setter("http_request_method", http_request_method) if path_pattern is not None: - pulumi.set(__self__, "path_pattern", path_pattern) + _setter("path_pattern", path_pattern) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) if source_ip is not None: - pulumi.set(__self__, "source_ip", source_ip) + _setter("source_ip", source_ip) @property @pulumi.getter(name="hostHeader") @@ -1607,20 +2112,27 @@ def __init__(__self__, *, values: pulumi.Input[Sequence[pulumi.Input[str]]]): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionHostHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1638,8 +2150,27 @@ def __init__(__self__, *, :param pulumi.Input[str] http_header_name: Name of HTTP header to search. The maximum size is 40 characters. Comparison is case insensitive. Only RFC7240 characters are supported. Wildcards are not supported. You cannot use HTTP header condition to specify the host header, use a `host-header` condition instead. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. """ - pulumi.set(__self__, "http_header_name", http_header_name) - pulumi.set(__self__, "values", values) + ListenerRuleConditionHttpHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_header_name=http_header_name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_header_name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_header_name is None and 'httpHeaderName' in kwargs: + http_header_name = kwargs['httpHeaderName'] + if http_header_name is None: + raise TypeError("Missing 'http_header_name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("http_header_name", http_header_name) + _setter("values", values) @property @pulumi.getter(name="httpHeaderName") @@ -1672,20 +2203,27 @@ def __init__(__self__, *, values: pulumi.Input[Sequence[pulumi.Input[str]]]): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionHttpRequestMethodArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1700,20 +2238,27 @@ def __init__(__self__, *, values: pulumi.Input[Sequence[pulumi.Input[str]]]): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionPathPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1731,9 +2276,24 @@ def __init__(__self__, *, :param pulumi.Input[str] value: Query string value pattern to match. :param pulumi.Input[str] key: Query string key pattern to match. """ - pulumi.set(__self__, "value", value) + ListenerRuleConditionQueryStringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1766,20 +2326,27 @@ def __init__(__self__, *, values: pulumi.Input[Sequence[pulumi.Input[str]]]): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionSourceIpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1799,11 +2366,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Boolean to enable / disable `access_logs`. Defaults to `false`, even when `bucket` is specified. :param pulumi.Input[str] prefix: The S3 bucket prefix. Logs are stored in the root if not configured. """ - pulumi.set(__self__, "bucket", bucket) + LoadBalancerAccessLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + enabled=enabled, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -1856,15 +2440,46 @@ def __init__(__self__, *, :param pulumi.Input[str] ipv6_address: The IPv6 address. You associate IPv6 CIDR blocks with your VPC and choose the subnets where you launch both internet-facing and internal Application Load Balancers or Network Load Balancers. :param pulumi.Input[str] private_ipv4_address: The private IPv4 address for an internal load balancer. """ - pulumi.set(__self__, "subnet_id", subnet_id) + LoadBalancerSubnetMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + allocation_id=allocation_id, + ipv6_address=ipv6_address, + outpost_id=outpost_id, + private_ipv4_address=private_ipv4_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + allocation_id: Optional[pulumi.Input[str]] = None, + ipv6_address: Optional[pulumi.Input[str]] = None, + outpost_id: Optional[pulumi.Input[str]] = None, + private_ipv4_address: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if ipv6_address is None and 'ipv6Address' in kwargs: + ipv6_address = kwargs['ipv6Address'] + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if private_ipv4_address is None and 'privateIpv4Address' in kwargs: + private_ipv4_address = kwargs['privateIpv4Address'] + + _setter("subnet_id", subnet_id) if allocation_id is not None: - pulumi.set(__self__, "allocation_id", allocation_id) + _setter("allocation_id", allocation_id) if ipv6_address is not None: - pulumi.set(__self__, "ipv6_address", ipv6_address) + _setter("ipv6_address", ipv6_address) if outpost_id is not None: - pulumi.set(__self__, "outpost_id", outpost_id) + _setter("outpost_id", outpost_id) if private_ipv4_address is not None: - pulumi.set(__self__, "private_ipv4_address", private_ipv4_address) + _setter("private_ipv4_address", private_ipv4_address) @property @pulumi.getter(name="subnetId") @@ -1947,24 +2562,55 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout: Amount of time, in seconds, during which no response from a target means a failed health check. The range is 2–120 seconds. For target groups with a protocol of HTTP, the default is 6 seconds. For target groups with a protocol of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol of GENEVE, the default is 5 seconds. If the target type is lambda, the default is 30 seconds. :param pulumi.Input[int] unhealthy_threshold: Number of consecutive health check failures required before considering a target unhealthy. The range is 2-10. Defaults to 3. """ + TargetGroupHealthCheckArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + healthy_threshold=healthy_threshold, + interval=interval, + matcher=matcher, + path=path, + port=port, + protocol=protocol, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + healthy_threshold: Optional[pulumi.Input[int]] = None, + interval: Optional[pulumi.Input[int]] = None, + matcher: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + timeout: Optional[pulumi.Input[int]] = None, + unhealthy_threshold: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if healthy_threshold is not None: - pulumi.set(__self__, "healthy_threshold", healthy_threshold) + _setter("healthy_threshold", healthy_threshold) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if matcher is not None: - pulumi.set(__self__, "matcher", matcher) + _setter("matcher", matcher) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if unhealthy_threshold is not None: - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter @@ -2088,13 +2734,36 @@ def __init__(__self__, *, :param pulumi.Input[str] cookie_name: Name of the application based cookie. AWSALB, AWSALBAPP, and AWSALBTG prefixes are reserved and cannot be used. Only needed when type is `app_cookie`. :param pulumi.Input[bool] enabled: Boolean to enable / disable `stickiness`. Default is `true`. """ - pulumi.set(__self__, "type", type) + TargetGroupStickinessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + cookie_duration=cookie_duration, + cookie_name=cookie_name, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + cookie_duration: Optional[pulumi.Input[int]] = None, + cookie_name: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if cookie_duration is None and 'cookieDuration' in kwargs: + cookie_duration = kwargs['cookieDuration'] + if cookie_name is None and 'cookieName' in kwargs: + cookie_name = kwargs['cookieName'] + + _setter("type", type) if cookie_duration is not None: - pulumi.set(__self__, "cookie_duration", cookie_duration) + _setter("cookie_duration", cookie_duration) if cookie_name is not None: - pulumi.set(__self__, "cookie_name", cookie_name) + _setter("cookie_name", cookie_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -2154,8 +2823,29 @@ def __init__(__self__, *, :param pulumi.Input[str] on_deregistration: Indicates how the GWLB handles existing flows when a target is deregistered. Possible values are `rebalance` and `no_rebalance`. Must match the attribute value set for `on_unhealthy`. Default: `no_rebalance`. :param pulumi.Input[str] on_unhealthy: Indicates how the GWLB handles existing flows when a target is unhealthy. Possible values are `rebalance` and `no_rebalance`. Must match the attribute value set for `on_deregistration`. Default: `no_rebalance`. """ - pulumi.set(__self__, "on_deregistration", on_deregistration) - pulumi.set(__self__, "on_unhealthy", on_unhealthy) + TargetGroupTargetFailoverArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_deregistration=on_deregistration, + on_unhealthy=on_unhealthy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_deregistration: Optional[pulumi.Input[str]] = None, + on_unhealthy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_deregistration is None and 'onDeregistration' in kwargs: + on_deregistration = kwargs['onDeregistration'] + if on_deregistration is None: + raise TypeError("Missing 'on_deregistration' argument") + if on_unhealthy is None and 'onUnhealthy' in kwargs: + on_unhealthy = kwargs['onUnhealthy'] + if on_unhealthy is None: + raise TypeError("Missing 'on_unhealthy' argument") + + _setter("on_deregistration", on_deregistration) + _setter("on_unhealthy", on_unhealthy) @property @pulumi.getter(name="onDeregistration") diff --git a/sdk/python/pulumi_aws/lb/get_hosted_zone_id.py b/sdk/python/pulumi_aws/lb/get_hosted_zone_id.py index 13a469627cf..55921fc3e50 100644 --- a/sdk/python/pulumi_aws/lb/get_hosted_zone_id.py +++ b/sdk/python/pulumi_aws/lb/get_hosted_zone_id.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/lb/get_lbs.py b/sdk/python/pulumi_aws/lb/get_lbs.py index e4b65ca1a51..866f11916b7 100644 --- a/sdk/python/pulumi_aws/lb/get_lbs.py +++ b/sdk/python/pulumi_aws/lb/get_lbs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/lb/get_listener.py b/sdk/python/pulumi_aws/lb/get_listener.py index e59a5b4c2a3..f68ba8fc6ef 100644 --- a/sdk/python/pulumi_aws/lb/get_listener.py +++ b/sdk/python/pulumi_aws/lb/get_listener.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/lb/get_load_balancer.py b/sdk/python/pulumi_aws/lb/get_load_balancer.py index 1b90a4face9..fddd2f13f8e 100644 --- a/sdk/python/pulumi_aws/lb/get_load_balancer.py +++ b/sdk/python/pulumi_aws/lb/get_load_balancer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/lb/get_target_group.py b/sdk/python/pulumi_aws/lb/get_target_group.py index 8410f0ad3b1..a74fcc0c245 100644 --- a/sdk/python/pulumi_aws/lb/get_target_group.py +++ b/sdk/python/pulumi_aws/lb/get_target_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/lb/listener.py b/sdk/python/pulumi_aws/lb/listener.py index 78a7bd5b140..a88e0ab3a2f 100644 --- a/sdk/python/pulumi_aws/lb/listener.py +++ b/sdk/python/pulumi_aws/lb/listener.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,20 +39,59 @@ def __init__(__self__, *, > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. """ - pulumi.set(__self__, "default_actions", default_actions) - pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) + ListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_actions=default_actions, + load_balancer_arn=load_balancer_arn, + alpn_policy=alpn_policy, + certificate_arn=certificate_arn, + port=port, + protocol=protocol, + ssl_policy=ssl_policy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionArgs']]]] = None, + load_balancer_arn: Optional[pulumi.Input[str]] = None, + alpn_policy: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + ssl_policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_actions is None and 'defaultActions' in kwargs: + default_actions = kwargs['defaultActions'] + if default_actions is None: + raise TypeError("Missing 'default_actions' argument") + if load_balancer_arn is None and 'loadBalancerArn' in kwargs: + load_balancer_arn = kwargs['loadBalancerArn'] + if load_balancer_arn is None: + raise TypeError("Missing 'load_balancer_arn' argument") + if alpn_policy is None and 'alpnPolicy' in kwargs: + alpn_policy = kwargs['alpnPolicy'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if ssl_policy is None and 'sslPolicy' in kwargs: + ssl_policy = kwargs['sslPolicy'] + + _setter("default_actions", default_actions) + _setter("load_balancer_arn", load_balancer_arn) if alpn_policy is not None: - pulumi.set(__self__, "alpn_policy", alpn_policy) + _setter("alpn_policy", alpn_policy) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if ssl_policy is not None: - pulumi.set(__self__, "ssl_policy", ssl_policy) + _setter("ssl_policy", ssl_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultActions") @@ -187,29 +226,70 @@ def __init__(__self__, *, > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. :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. """ + _ListenerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alpn_policy=alpn_policy, + arn=arn, + certificate_arn=certificate_arn, + default_actions=default_actions, + load_balancer_arn=load_balancer_arn, + port=port, + protocol=protocol, + ssl_policy=ssl_policy, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alpn_policy: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + default_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionArgs']]]] = None, + load_balancer_arn: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + ssl_policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alpn_policy is None and 'alpnPolicy' in kwargs: + alpn_policy = kwargs['alpnPolicy'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if default_actions is None and 'defaultActions' in kwargs: + default_actions = kwargs['defaultActions'] + if load_balancer_arn is None and 'loadBalancerArn' in kwargs: + load_balancer_arn = kwargs['loadBalancerArn'] + if ssl_policy is None and 'sslPolicy' in kwargs: + ssl_policy = kwargs['sslPolicy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if alpn_policy is not None: - pulumi.set(__self__, "alpn_policy", alpn_policy) + _setter("alpn_policy", alpn_policy) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if default_actions is not None: - pulumi.set(__self__, "default_actions", default_actions) + _setter("default_actions", default_actions) if load_balancer_arn is not None: - pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) + _setter("load_balancer_arn", load_balancer_arn) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if ssl_policy is not None: - pulumi.set(__self__, "ssl_policy", ssl_policy) + _setter("ssl_policy", ssl_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="alpnPolicy") @@ -764,6 +844,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lb/listener_certificate.py b/sdk/python/pulumi_aws/lb/listener_certificate.py index 164049d3fa0..9ee5928f7df 100644 --- a/sdk/python/pulumi_aws/lb/listener_certificate.py +++ b/sdk/python/pulumi_aws/lb/listener_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ListenerCertificateArgs', 'ListenerCertificate'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_arn: The ARN of the certificate to attach to the listener. :param pulumi.Input[str] listener_arn: The ARN of the listener to which to attach the certificate. """ - pulumi.set(__self__, "certificate_arn", certificate_arn) - pulumi.set(__self__, "listener_arn", listener_arn) + ListenerCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + listener_arn=listener_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if listener_arn is None: + raise TypeError("Missing 'listener_arn' argument") + + _setter("certificate_arn", certificate_arn) + _setter("listener_arn", listener_arn) @property @pulumi.getter(name="certificateArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_arn: The ARN of the certificate to attach to the listener. :param pulumi.Input[str] listener_arn: The ARN of the listener to which to attach the certificate. """ + _ListenerCertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + listener_arn=listener_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if listener_arn is not None: - pulumi.set(__self__, "listener_arn", listener_arn) + _setter("listener_arn", listener_arn) @property @pulumi.getter(name="certificateArn") @@ -182,6 +220,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerCertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lb/listener_rule.py b/sdk/python/pulumi_aws/lb/listener_rule.py index ae4748f184c..e9f56e2e379 100644 --- a/sdk/python/pulumi_aws/lb/listener_rule.py +++ b/sdk/python/pulumi_aws/lb/listener_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,40 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The priority for the rule between `1` and `50000`. Leaving it unset will automatically set the rule with next available priority after currently existing highest rule. A listener can't have multiple rules with the same priority. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "conditions", conditions) - pulumi.set(__self__, "listener_arn", listener_arn) + ListenerRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + conditions=conditions, + listener_arn=listener_arn, + priority=priority, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleActionArgs']]]] = None, + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleConditionArgs']]]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if conditions is None: + raise TypeError("Missing 'conditions' argument") + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if listener_arn is None: + raise TypeError("Missing 'listener_arn' argument") + + _setter("actions", actions) + _setter("conditions", conditions) + _setter("listener_arn", listener_arn) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -118,23 +145,50 @@ def __init__(__self__, *, :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. """ + _ListenerRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + arn=arn, + conditions=conditions, + listener_arn=listener_arn, + priority=priority, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleActionArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleConditionArgs']]]] = None, + listener_arn: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listener_arn is None and 'listenerArn' in kwargs: + listener_arn = kwargs['listenerArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if actions is not None: - pulumi.set(__self__, "actions", actions) + _setter("actions", actions) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if conditions is not None: - pulumi.set(__self__, "conditions", conditions) + _setter("conditions", conditions) if listener_arn is not None: - pulumi.set(__self__, "listener_arn", listener_arn) + _setter("listener_arn", listener_arn) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -593,6 +647,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lb/load_balancer.py b/sdk/python/pulumi_aws/lb/load_balancer.py index 3bcd0bd6e46..a5765364640 100644 --- a/sdk/python/pulumi_aws/lb/load_balancer.py +++ b/sdk/python/pulumi_aws/lb/load_balancer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -67,50 +67,139 @@ def __init__(__self__, *, :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] xff_header_processing_mode: Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`. """ + LoadBalancerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_logs=access_logs, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + desync_mitigation_mode=desync_mitigation_mode, + drop_invalid_header_fields=drop_invalid_header_fields, + enable_cross_zone_load_balancing=enable_cross_zone_load_balancing, + enable_deletion_protection=enable_deletion_protection, + enable_http2=enable_http2, + enable_tls_version_and_cipher_suite_headers=enable_tls_version_and_cipher_suite_headers, + enable_waf_fail_open=enable_waf_fail_open, + enable_xff_client_port=enable_xff_client_port, + idle_timeout=idle_timeout, + internal=internal, + ip_address_type=ip_address_type, + load_balancer_type=load_balancer_type, + name=name, + name_prefix=name_prefix, + preserve_host_header=preserve_host_header, + security_groups=security_groups, + subnet_mappings=subnet_mappings, + subnets=subnets, + tags=tags, + xff_header_processing_mode=xff_header_processing_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_logs: Optional[pulumi.Input['LoadBalancerAccessLogsArgs']] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, + enable_cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, + enable_deletion_protection: Optional[pulumi.Input[bool]] = None, + enable_http2: Optional[pulumi.Input[bool]] = None, + enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, + enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, + enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + idle_timeout: Optional[pulumi.Input[int]] = None, + internal: Optional[pulumi.Input[bool]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + load_balancer_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + preserve_host_header: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerSubnetMappingArgs']]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + xff_header_processing_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if desync_mitigation_mode is None and 'desyncMitigationMode' in kwargs: + desync_mitigation_mode = kwargs['desyncMitigationMode'] + if drop_invalid_header_fields is None and 'dropInvalidHeaderFields' in kwargs: + drop_invalid_header_fields = kwargs['dropInvalidHeaderFields'] + if enable_cross_zone_load_balancing is None and 'enableCrossZoneLoadBalancing' in kwargs: + enable_cross_zone_load_balancing = kwargs['enableCrossZoneLoadBalancing'] + if enable_deletion_protection is None and 'enableDeletionProtection' in kwargs: + enable_deletion_protection = kwargs['enableDeletionProtection'] + if enable_http2 is None and 'enableHttp2' in kwargs: + enable_http2 = kwargs['enableHttp2'] + if enable_tls_version_and_cipher_suite_headers is None and 'enableTlsVersionAndCipherSuiteHeaders' in kwargs: + enable_tls_version_and_cipher_suite_headers = kwargs['enableTlsVersionAndCipherSuiteHeaders'] + if enable_waf_fail_open is None and 'enableWafFailOpen' in kwargs: + enable_waf_fail_open = kwargs['enableWafFailOpen'] + if enable_xff_client_port is None and 'enableXffClientPort' in kwargs: + enable_xff_client_port = kwargs['enableXffClientPort'] + if idle_timeout is None and 'idleTimeout' in kwargs: + idle_timeout = kwargs['idleTimeout'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if load_balancer_type is None and 'loadBalancerType' in kwargs: + load_balancer_type = kwargs['loadBalancerType'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if preserve_host_header is None and 'preserveHostHeader' in kwargs: + preserve_host_header = kwargs['preserveHostHeader'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if subnet_mappings is None and 'subnetMappings' in kwargs: + subnet_mappings = kwargs['subnetMappings'] + if xff_header_processing_mode is None and 'xffHeaderProcessingMode' in kwargs: + xff_header_processing_mode = kwargs['xffHeaderProcessingMode'] + if access_logs is not None: - pulumi.set(__self__, "access_logs", access_logs) + _setter("access_logs", access_logs) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if desync_mitigation_mode is not None: - pulumi.set(__self__, "desync_mitigation_mode", desync_mitigation_mode) + _setter("desync_mitigation_mode", desync_mitigation_mode) if drop_invalid_header_fields is not None: - pulumi.set(__self__, "drop_invalid_header_fields", drop_invalid_header_fields) + _setter("drop_invalid_header_fields", drop_invalid_header_fields) if enable_cross_zone_load_balancing is not None: - pulumi.set(__self__, "enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) + _setter("enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) if enable_deletion_protection is not None: - pulumi.set(__self__, "enable_deletion_protection", enable_deletion_protection) + _setter("enable_deletion_protection", enable_deletion_protection) if enable_http2 is not None: - pulumi.set(__self__, "enable_http2", enable_http2) + _setter("enable_http2", enable_http2) if enable_tls_version_and_cipher_suite_headers is not None: - pulumi.set(__self__, "enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) + _setter("enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) if enable_waf_fail_open is not None: - pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) + _setter("enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: - pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + _setter("enable_xff_client_port", enable_xff_client_port) if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + _setter("idle_timeout", idle_timeout) if internal is not None: - pulumi.set(__self__, "internal", internal) + _setter("internal", internal) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if load_balancer_type is not None: - pulumi.set(__self__, "load_balancer_type", load_balancer_type) + _setter("load_balancer_type", load_balancer_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if preserve_host_header is not None: - pulumi.set(__self__, "preserve_host_header", preserve_host_header) + _setter("preserve_host_header", preserve_host_header) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnet_mappings is not None: - pulumi.set(__self__, "subnet_mappings", subnet_mappings) + _setter("subnet_mappings", subnet_mappings) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if xff_header_processing_mode is not None: - pulumi.set(__self__, "xff_header_processing_mode", xff_header_processing_mode) + _setter("xff_header_processing_mode", xff_header_processing_mode) @property @pulumi.getter(name="accessLogs") @@ -446,65 +535,176 @@ def __init__(__self__, *, :param pulumi.Input[str] xff_header_processing_mode: Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`. :param pulumi.Input[str] zone_id: The canonical hosted zone ID of the load balancer (to be used in a Route 53 Alias record). """ + _LoadBalancerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_logs=access_logs, + arn=arn, + arn_suffix=arn_suffix, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + desync_mitigation_mode=desync_mitigation_mode, + dns_name=dns_name, + drop_invalid_header_fields=drop_invalid_header_fields, + enable_cross_zone_load_balancing=enable_cross_zone_load_balancing, + enable_deletion_protection=enable_deletion_protection, + enable_http2=enable_http2, + enable_tls_version_and_cipher_suite_headers=enable_tls_version_and_cipher_suite_headers, + enable_waf_fail_open=enable_waf_fail_open, + enable_xff_client_port=enable_xff_client_port, + idle_timeout=idle_timeout, + internal=internal, + ip_address_type=ip_address_type, + load_balancer_type=load_balancer_type, + name=name, + name_prefix=name_prefix, + preserve_host_header=preserve_host_header, + security_groups=security_groups, + subnet_mappings=subnet_mappings, + subnets=subnets, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + xff_header_processing_mode=xff_header_processing_mode, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_logs: Optional[pulumi.Input['LoadBalancerAccessLogsArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + arn_suffix: Optional[pulumi.Input[str]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, + enable_cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, + enable_deletion_protection: Optional[pulumi.Input[bool]] = None, + enable_http2: Optional[pulumi.Input[bool]] = None, + enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, + enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, + enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + idle_timeout: Optional[pulumi.Input[int]] = None, + internal: Optional[pulumi.Input[bool]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + load_balancer_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + preserve_host_header: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerSubnetMappingArgs']]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + xff_header_processing_mode: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if arn_suffix is None and 'arnSuffix' in kwargs: + arn_suffix = kwargs['arnSuffix'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if desync_mitigation_mode is None and 'desyncMitigationMode' in kwargs: + desync_mitigation_mode = kwargs['desyncMitigationMode'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if drop_invalid_header_fields is None and 'dropInvalidHeaderFields' in kwargs: + drop_invalid_header_fields = kwargs['dropInvalidHeaderFields'] + if enable_cross_zone_load_balancing is None and 'enableCrossZoneLoadBalancing' in kwargs: + enable_cross_zone_load_balancing = kwargs['enableCrossZoneLoadBalancing'] + if enable_deletion_protection is None and 'enableDeletionProtection' in kwargs: + enable_deletion_protection = kwargs['enableDeletionProtection'] + if enable_http2 is None and 'enableHttp2' in kwargs: + enable_http2 = kwargs['enableHttp2'] + if enable_tls_version_and_cipher_suite_headers is None and 'enableTlsVersionAndCipherSuiteHeaders' in kwargs: + enable_tls_version_and_cipher_suite_headers = kwargs['enableTlsVersionAndCipherSuiteHeaders'] + if enable_waf_fail_open is None and 'enableWafFailOpen' in kwargs: + enable_waf_fail_open = kwargs['enableWafFailOpen'] + if enable_xff_client_port is None and 'enableXffClientPort' in kwargs: + enable_xff_client_port = kwargs['enableXffClientPort'] + if idle_timeout is None and 'idleTimeout' in kwargs: + idle_timeout = kwargs['idleTimeout'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if load_balancer_type is None and 'loadBalancerType' in kwargs: + load_balancer_type = kwargs['loadBalancerType'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if preserve_host_header is None and 'preserveHostHeader' in kwargs: + preserve_host_header = kwargs['preserveHostHeader'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if subnet_mappings is None and 'subnetMappings' in kwargs: + subnet_mappings = kwargs['subnetMappings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if xff_header_processing_mode is None and 'xffHeaderProcessingMode' in kwargs: + xff_header_processing_mode = kwargs['xffHeaderProcessingMode'] + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if access_logs is not None: - pulumi.set(__self__, "access_logs", access_logs) + _setter("access_logs", access_logs) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if arn_suffix is not None: - pulumi.set(__self__, "arn_suffix", arn_suffix) + _setter("arn_suffix", arn_suffix) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if desync_mitigation_mode is not None: - pulumi.set(__self__, "desync_mitigation_mode", desync_mitigation_mode) + _setter("desync_mitigation_mode", desync_mitigation_mode) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if drop_invalid_header_fields is not None: - pulumi.set(__self__, "drop_invalid_header_fields", drop_invalid_header_fields) + _setter("drop_invalid_header_fields", drop_invalid_header_fields) if enable_cross_zone_load_balancing is not None: - pulumi.set(__self__, "enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) + _setter("enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) if enable_deletion_protection is not None: - pulumi.set(__self__, "enable_deletion_protection", enable_deletion_protection) + _setter("enable_deletion_protection", enable_deletion_protection) if enable_http2 is not None: - pulumi.set(__self__, "enable_http2", enable_http2) + _setter("enable_http2", enable_http2) if enable_tls_version_and_cipher_suite_headers is not None: - pulumi.set(__self__, "enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) + _setter("enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) if enable_waf_fail_open is not None: - pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) + _setter("enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: - pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + _setter("enable_xff_client_port", enable_xff_client_port) if idle_timeout is not None: - pulumi.set(__self__, "idle_timeout", idle_timeout) + _setter("idle_timeout", idle_timeout) if internal is not None: - pulumi.set(__self__, "internal", internal) + _setter("internal", internal) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if load_balancer_type is not None: - pulumi.set(__self__, "load_balancer_type", load_balancer_type) + _setter("load_balancer_type", load_balancer_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if preserve_host_header is not None: - pulumi.set(__self__, "preserve_host_header", preserve_host_header) + _setter("preserve_host_header", preserve_host_header) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnet_mappings is not None: - pulumi.set(__self__, "subnet_mappings", subnet_mappings) + _setter("subnet_mappings", subnet_mappings) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if xff_header_processing_mode is not None: - pulumi.set(__self__, "xff_header_processing_mode", xff_header_processing_mode) + _setter("xff_header_processing_mode", xff_header_processing_mode) if zone_id is not None: - pulumi.set(__self__, "zone_id", zone_id) + _setter("zone_id", zone_id) @property @pulumi.getter(name="accessLogs") @@ -1098,6 +1298,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LoadBalancerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1134,6 +1338,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = LoadBalancerArgs.__new__(LoadBalancerArgs) + access_logs = _utilities.configure(access_logs, LoadBalancerAccessLogsArgs, True) __props__.__dict__["access_logs"] = access_logs __props__.__dict__["customer_owned_ipv4_pool"] = customer_owned_ipv4_pool __props__.__dict__["desync_mitigation_mode"] = desync_mitigation_mode diff --git a/sdk/python/pulumi_aws/lb/outputs.py b/sdk/python/pulumi_aws/lb/outputs.py index 419546c778d..e4db7d3ad95 100644 --- a/sdk/python/pulumi_aws/lb/outputs.py +++ b/sdk/python/pulumi_aws/lb/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -99,21 +99,56 @@ def __init__(__self__, *, :param 'ListenerDefaultActionRedirectArgs' redirect: Configuration block for creating a redirect action. Required if `type` is `redirect`. Detailed below. :param str target_group_arn: ARN of the Target Group to which to route traffic. Specify only if `type` is `forward` and you want to route to a single target group. To route to one or more target groups, use a `forward` block instead. """ - pulumi.set(__self__, "type", type) + ListenerDefaultAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + authenticate_cognito=authenticate_cognito, + authenticate_oidc=authenticate_oidc, + fixed_response=fixed_response, + forward=forward, + order=order, + redirect=redirect, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + authenticate_cognito: Optional['outputs.ListenerDefaultActionAuthenticateCognito'] = None, + authenticate_oidc: Optional['outputs.ListenerDefaultActionAuthenticateOidc'] = None, + fixed_response: Optional['outputs.ListenerDefaultActionFixedResponse'] = None, + forward: Optional['outputs.ListenerDefaultActionForward'] = None, + order: Optional[int] = None, + redirect: Optional['outputs.ListenerDefaultActionRedirect'] = None, + target_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if authenticate_cognito is None and 'authenticateCognito' in kwargs: + authenticate_cognito = kwargs['authenticateCognito'] + if authenticate_oidc is None and 'authenticateOidc' in kwargs: + authenticate_oidc = kwargs['authenticateOidc'] + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("type", type) if authenticate_cognito is not None: - pulumi.set(__self__, "authenticate_cognito", authenticate_cognito) + _setter("authenticate_cognito", authenticate_cognito) if authenticate_oidc is not None: - pulumi.set(__self__, "authenticate_oidc", authenticate_oidc) + _setter("authenticate_oidc", authenticate_oidc) if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) if order is not None: - pulumi.set(__self__, "order", order) + _setter("order", order) if redirect is not None: - pulumi.set(__self__, "redirect", redirect) + _setter("redirect", redirect) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter @@ -234,19 +269,64 @@ def __init__(__self__, *, :param str session_cookie_name: Name of the cookie used to maintain session information. :param int session_timeout: Maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + ListenerDefaultActionAuthenticateCognito._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_arn: Optional[str] = None, + user_pool_client_id: Optional[str] = None, + user_pool_domain: Optional[str] = None, + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="userPoolArn") @@ -377,22 +457,83 @@ def __init__(__self__, *, :param str session_cookie_name: Name of the cookie used to maintain session information. :param int session_timeout: Maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + ListenerDefaultActionAuthenticateOidc._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[str] = None, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + issuer: Optional[str] = None, + token_endpoint: Optional[str] = None, + user_info_endpoint: Optional[str] = None, + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="authorizationEndpoint") @@ -519,11 +660,34 @@ def __init__(__self__, *, :param str message_body: Message body. :param str status_code: HTTP response code. Valid values are `2XX`, `4XX`, or `5XX`. """ - pulumi.set(__self__, "content_type", content_type) + ListenerDefaultActionFixedResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[str] = None, + message_body: Optional[str] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("content_type", content_type) if message_body is not None: - pulumi.set(__self__, "message_body", message_body) + _setter("message_body", message_body) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -580,9 +744,26 @@ def __init__(__self__, *, The following arguments are optional: :param 'ListenerDefaultActionForwardStickinessArgs' stickiness: Configuration block for target group stickiness for the rule. Detailed below. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerDefaultActionForward._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + stickiness=stickiness, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[Sequence['outputs.ListenerDefaultActionForwardTargetGroup']] = None, + stickiness: Optional['outputs.ListenerDefaultActionForwardStickiness'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) @property @pulumi.getter(name="targetGroups") @@ -614,9 +795,24 @@ def __init__(__self__, *, The following arguments are optional: :param bool enabled: Whether target group stickiness is enabled. Default is `false`. """ - pulumi.set(__self__, "duration", duration) + ListenerDefaultActionForwardStickiness._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[int] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + + _setter("duration", duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -648,9 +844,24 @@ def __init__(__self__, *, The following arguments are optional: :param int weight: Weight. The range is 0 to 999. """ - pulumi.set(__self__, "arn", arn) + ListenerDefaultActionForwardTargetGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter @@ -707,17 +918,42 @@ def __init__(__self__, *, :param str protocol: Protocol. Valid values are `HTTP`, `HTTPS`, or `#{protocol}`. Defaults to `#{protocol}`. :param str query: Query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?". Defaults to `#{query}`. """ - pulumi.set(__self__, "status_code", status_code) + ListenerDefaultActionRedirect._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[str] = None, + host: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + query: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if query is not None: - pulumi.set(__self__, "query", query) + _setter("query", query) @property @pulumi.getter(name="statusCode") @@ -813,21 +1049,56 @@ def __init__(__self__, *, :param 'ListenerRuleActionRedirectArgs' redirect: Information for creating a redirect action. Required if `type` is `redirect`. :param str target_group_arn: The ARN of the Target Group to which to route traffic. Specify only if `type` is `forward` and you want to route to a single target group. To route to one or more target groups, use a `forward` block instead. """ - pulumi.set(__self__, "type", type) + ListenerRuleAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + authenticate_cognito=authenticate_cognito, + authenticate_oidc=authenticate_oidc, + fixed_response=fixed_response, + forward=forward, + order=order, + redirect=redirect, + target_group_arn=target_group_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + authenticate_cognito: Optional['outputs.ListenerRuleActionAuthenticateCognito'] = None, + authenticate_oidc: Optional['outputs.ListenerRuleActionAuthenticateOidc'] = None, + fixed_response: Optional['outputs.ListenerRuleActionFixedResponse'] = None, + forward: Optional['outputs.ListenerRuleActionForward'] = None, + order: Optional[int] = None, + redirect: Optional['outputs.ListenerRuleActionRedirect'] = None, + target_group_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if authenticate_cognito is None and 'authenticateCognito' in kwargs: + authenticate_cognito = kwargs['authenticateCognito'] + if authenticate_oidc is None and 'authenticateOidc' in kwargs: + authenticate_oidc = kwargs['authenticateOidc'] + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + + _setter("type", type) if authenticate_cognito is not None: - pulumi.set(__self__, "authenticate_cognito", authenticate_cognito) + _setter("authenticate_cognito", authenticate_cognito) if authenticate_oidc is not None: - pulumi.set(__self__, "authenticate_oidc", authenticate_oidc) + _setter("authenticate_oidc", authenticate_oidc) if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) if order is not None: - pulumi.set(__self__, "order", order) + _setter("order", order) if redirect is not None: - pulumi.set(__self__, "redirect", redirect) + _setter("redirect", redirect) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) @property @pulumi.getter @@ -941,19 +1212,64 @@ def __init__(__self__, *, :param str session_cookie_name: The name of the cookie used to maintain session information. :param int session_timeout: The maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + ListenerRuleActionAuthenticateCognito._configure( + lambda key, value: pulumi.set(__self__, key, value), + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + user_pool_arn: Optional[str] = None, + user_pool_client_id: Optional[str] = None, + user_pool_domain: Optional[str] = None, + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="userPoolArn") @@ -1080,22 +1396,83 @@ def __init__(__self__, *, :param str session_cookie_name: The name of the cookie used to maintain session information. :param int session_timeout: The maximum duration of the authentication session, in seconds. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + ListenerRuleActionAuthenticateOidc._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[str] = None, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + issuer: Optional[str] = None, + token_endpoint: Optional[str] = None, + user_info_endpoint: Optional[str] = None, + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) if authentication_request_extra_params is not None: - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) + _setter("authentication_request_extra_params", authentication_request_extra_params) if on_unauthenticated_request is not None: - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) + _setter("on_unauthenticated_request", on_unauthenticated_request) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if session_cookie_name is not None: - pulumi.set(__self__, "session_cookie_name", session_cookie_name) + _setter("session_cookie_name", session_cookie_name) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) @property @pulumi.getter(name="authorizationEndpoint") @@ -1218,11 +1595,34 @@ def __init__(__self__, *, :param str message_body: The message body. :param str status_code: The HTTP response code. Valid values are `2XX`, `4XX`, or `5XX`. """ - pulumi.set(__self__, "content_type", content_type) + ListenerRuleActionFixedResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[str] = None, + message_body: Optional[str] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + + _setter("content_type", content_type) if message_body is not None: - pulumi.set(__self__, "message_body", message_body) + _setter("message_body", message_body) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -1275,9 +1675,26 @@ def __init__(__self__, *, :param Sequence['ListenerRuleActionForwardTargetGroupArgs'] target_groups: One or more target groups block. :param 'ListenerRuleActionForwardStickinessArgs' stickiness: The target group stickiness for the rule. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerRuleActionForward._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + stickiness=stickiness, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[Sequence['outputs.ListenerRuleActionForwardTargetGroup']] = None, + stickiness: Optional['outputs.ListenerRuleActionForwardStickiness'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) @property @pulumi.getter(name="targetGroups") @@ -1305,9 +1722,24 @@ def __init__(__self__, *, :param int duration: The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). :param bool enabled: Indicates whether target group stickiness is enabled. """ - pulumi.set(__self__, "duration", duration) + ListenerRuleActionForwardStickiness._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[int] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + + _setter("duration", duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1335,9 +1767,24 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the target group. :param int weight: The weight. The range is 0 to 999. """ - pulumi.set(__self__, "arn", arn) + ListenerRuleActionForwardTargetGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter @@ -1390,17 +1837,42 @@ def __init__(__self__, *, :param str protocol: The protocol. Valid values are `HTTP`, `HTTPS`, or `#{protocol}`. Defaults to `#{protocol}`. :param str query: The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?". Defaults to `#{query}`. """ - pulumi.set(__self__, "status_code", status_code) + ListenerRuleActionRedirect._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[str] = None, + host: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + query: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if query is not None: - pulumi.set(__self__, "query", query) + _setter("query", query) @property @pulumi.getter(name="statusCode") @@ -1497,18 +1969,51 @@ def __init__(__self__, *, > **NOTE::** Exactly one of `host_header`, `http_header`, `http_request_method`, `path_pattern`, `query_string` or `source_ip` must be set per condition. """ + ListenerRuleCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + host_header=host_header, + http_header=http_header, + http_request_method=http_request_method, + path_pattern=path_pattern, + query_strings=query_strings, + source_ip=source_ip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host_header: Optional['outputs.ListenerRuleConditionHostHeader'] = None, + http_header: Optional['outputs.ListenerRuleConditionHttpHeader'] = None, + http_request_method: Optional['outputs.ListenerRuleConditionHttpRequestMethod'] = None, + path_pattern: Optional['outputs.ListenerRuleConditionPathPattern'] = None, + query_strings: Optional[Sequence['outputs.ListenerRuleConditionQueryString']] = None, + source_ip: Optional['outputs.ListenerRuleConditionSourceIp'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_header is None and 'hostHeader' in kwargs: + host_header = kwargs['hostHeader'] + if http_header is None and 'httpHeader' in kwargs: + http_header = kwargs['httpHeader'] + if http_request_method is None and 'httpRequestMethod' in kwargs: + http_request_method = kwargs['httpRequestMethod'] + if path_pattern is None and 'pathPattern' in kwargs: + path_pattern = kwargs['pathPattern'] + if query_strings is None and 'queryStrings' in kwargs: + query_strings = kwargs['queryStrings'] + if source_ip is None and 'sourceIp' in kwargs: + source_ip = kwargs['sourceIp'] + if host_header is not None: - pulumi.set(__self__, "host_header", host_header) + _setter("host_header", host_header) if http_header is not None: - pulumi.set(__self__, "http_header", http_header) + _setter("http_header", http_header) if http_request_method is not None: - pulumi.set(__self__, "http_request_method", http_request_method) + _setter("http_request_method", http_request_method) if path_pattern is not None: - pulumi.set(__self__, "path_pattern", path_pattern) + _setter("path_pattern", path_pattern) if query_strings is not None: - pulumi.set(__self__, "query_strings", query_strings) + _setter("query_strings", query_strings) if source_ip is not None: - pulumi.set(__self__, "source_ip", source_ip) + _setter("source_ip", source_ip) @property @pulumi.getter(name="hostHeader") @@ -1567,20 +2072,27 @@ def __init__(__self__, *, values: Sequence[str]): """ :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionHostHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> Sequence[str]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1611,8 +2123,27 @@ def __init__(__self__, *, :param str http_header_name: Name of HTTP header to search. The maximum size is 40 characters. Comparison is case insensitive. Only RFC7240 characters are supported. Wildcards are not supported. You cannot use HTTP header condition to specify the host header, use a `host-header` condition instead. :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. """ - pulumi.set(__self__, "http_header_name", http_header_name) - pulumi.set(__self__, "values", values) + ListenerRuleConditionHttpHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_header_name=http_header_name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_header_name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_header_name is None and 'httpHeaderName' in kwargs: + http_header_name = kwargs['httpHeaderName'] + if http_header_name is None: + raise TypeError("Missing 'http_header_name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("http_header_name", http_header_name) + _setter("values", values) @property @pulumi.getter(name="httpHeaderName") @@ -1637,20 +2168,27 @@ def __init__(__self__, *, values: Sequence[str]): """ :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionHttpRequestMethod._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> Sequence[str]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1661,20 +2199,27 @@ def __init__(__self__, *, values: Sequence[str]): """ :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionPathPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> Sequence[str]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1688,9 +2233,24 @@ def __init__(__self__, *, :param str value: Query string value pattern to match. :param str key: Query string key pattern to match. """ - pulumi.set(__self__, "value", value) + ListenerRuleConditionQueryString._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1715,20 +2275,27 @@ def __init__(__self__, *, values: Sequence[str]): """ :param Sequence[str] values: List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ - pulumi.set(__self__, "values", values) + ListenerRuleConditionSourceIp._configure( + lambda key, value: pulumi.set(__self__, key, value), + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("values", values) @property @pulumi.getter def values(self) -> Sequence[str]: """ List of header value patterns to match. Maximum size of each pattern is 128 characters. Comparison is case insensitive. Wildcard characters supported: * (matches 0 or more characters) and ? (matches exactly 1 character). If the same header appears multiple times in the request they will be searched in order until a match is found. Only one pattern needs to match for the condition to be satisfied. To require that all of the strings are a match, create one condition block per string. - - - Query String Value Blocks (for `query_string.values`) support the following: """ return pulumi.get(self, "values") @@ -1744,11 +2311,28 @@ def __init__(__self__, *, :param bool enabled: Boolean to enable / disable `access_logs`. Defaults to `false`, even when `bucket` is specified. :param str prefix: The S3 bucket prefix. Logs are stored in the root if not configured. """ - pulumi.set(__self__, "bucket", bucket) + LoadBalancerAccessLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + enabled=enabled, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + enabled: Optional[bool] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -1814,15 +2398,46 @@ def __init__(__self__, *, :param str ipv6_address: The IPv6 address. You associate IPv6 CIDR blocks with your VPC and choose the subnets where you launch both internet-facing and internal Application Load Balancers or Network Load Balancers. :param str private_ipv4_address: The private IPv4 address for an internal load balancer. """ - pulumi.set(__self__, "subnet_id", subnet_id) + LoadBalancerSubnetMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + allocation_id=allocation_id, + ipv6_address=ipv6_address, + outpost_id=outpost_id, + private_ipv4_address=private_ipv4_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[str] = None, + allocation_id: Optional[str] = None, + ipv6_address: Optional[str] = None, + outpost_id: Optional[str] = None, + private_ipv4_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if ipv6_address is None and 'ipv6Address' in kwargs: + ipv6_address = kwargs['ipv6Address'] + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if private_ipv4_address is None and 'privateIpv4Address' in kwargs: + private_ipv4_address = kwargs['privateIpv4Address'] + + _setter("subnet_id", subnet_id) if allocation_id is not None: - pulumi.set(__self__, "allocation_id", allocation_id) + _setter("allocation_id", allocation_id) if ipv6_address is not None: - pulumi.set(__self__, "ipv6_address", ipv6_address) + _setter("ipv6_address", ipv6_address) if outpost_id is not None: - pulumi.set(__self__, "outpost_id", outpost_id) + _setter("outpost_id", outpost_id) if private_ipv4_address is not None: - pulumi.set(__self__, "private_ipv4_address", private_ipv4_address) + _setter("private_ipv4_address", private_ipv4_address) @property @pulumi.getter(name="subnetId") @@ -1904,24 +2519,55 @@ def __init__(__self__, *, :param int timeout: Amount of time, in seconds, during which no response from a target means a failed health check. The range is 2–120 seconds. For target groups with a protocol of HTTP, the default is 6 seconds. For target groups with a protocol of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol of GENEVE, the default is 5 seconds. If the target type is lambda, the default is 30 seconds. :param int unhealthy_threshold: Number of consecutive health check failures required before considering a target unhealthy. The range is 2-10. Defaults to 3. """ + TargetGroupHealthCheck._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + healthy_threshold=healthy_threshold, + interval=interval, + matcher=matcher, + path=path, + port=port, + protocol=protocol, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + healthy_threshold: Optional[int] = None, + interval: Optional[int] = None, + matcher: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + timeout: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if healthy_threshold is not None: - pulumi.set(__self__, "healthy_threshold", healthy_threshold) + _setter("healthy_threshold", healthy_threshold) if interval is not None: - pulumi.set(__self__, "interval", interval) + _setter("interval", interval) if matcher is not None: - pulumi.set(__self__, "matcher", matcher) + _setter("matcher", matcher) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + _setter("timeout", timeout) if unhealthy_threshold is not None: - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter @@ -2028,13 +2674,36 @@ def __init__(__self__, *, :param str cookie_name: Name of the application based cookie. AWSALB, AWSALBAPP, and AWSALBTG prefixes are reserved and cannot be used. Only needed when type is `app_cookie`. :param bool enabled: Boolean to enable / disable `stickiness`. Default is `true`. """ - pulumi.set(__self__, "type", type) + TargetGroupStickiness._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + cookie_duration=cookie_duration, + cookie_name=cookie_name, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + cookie_duration: Optional[int] = None, + cookie_name: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if cookie_duration is None and 'cookieDuration' in kwargs: + cookie_duration = kwargs['cookieDuration'] + if cookie_name is None and 'cookieName' in kwargs: + cookie_name = kwargs['cookieName'] + + _setter("type", type) if cookie_duration is not None: - pulumi.set(__self__, "cookie_duration", cookie_duration) + _setter("cookie_duration", cookie_duration) if cookie_name is not None: - pulumi.set(__self__, "cookie_name", cookie_name) + _setter("cookie_name", cookie_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -2097,8 +2766,29 @@ def __init__(__self__, *, :param str on_deregistration: Indicates how the GWLB handles existing flows when a target is deregistered. Possible values are `rebalance` and `no_rebalance`. Must match the attribute value set for `on_unhealthy`. Default: `no_rebalance`. :param str on_unhealthy: Indicates how the GWLB handles existing flows when a target is unhealthy. Possible values are `rebalance` and `no_rebalance`. Must match the attribute value set for `on_deregistration`. Default: `no_rebalance`. """ - pulumi.set(__self__, "on_deregistration", on_deregistration) - pulumi.set(__self__, "on_unhealthy", on_unhealthy) + TargetGroupTargetFailover._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_deregistration=on_deregistration, + on_unhealthy=on_unhealthy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_deregistration: Optional[str] = None, + on_unhealthy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_deregistration is None and 'onDeregistration' in kwargs: + on_deregistration = kwargs['onDeregistration'] + if on_deregistration is None: + raise TypeError("Missing 'on_deregistration' argument") + if on_unhealthy is None and 'onUnhealthy' in kwargs: + on_unhealthy = kwargs['onUnhealthy'] + if on_unhealthy is None: + raise TypeError("Missing 'on_unhealthy' argument") + + _setter("on_deregistration", on_deregistration) + _setter("on_unhealthy", on_unhealthy) @property @pulumi.getter(name="onDeregistration") @@ -2128,14 +2818,63 @@ def __init__(__self__, *, redirects: Sequence['outputs.GetListenerDefaultActionRedirectResult'], target_group_arn: str, type: str): - pulumi.set(__self__, "authenticate_cognitos", authenticate_cognitos) - pulumi.set(__self__, "authenticate_oidcs", authenticate_oidcs) - pulumi.set(__self__, "fixed_responses", fixed_responses) - pulumi.set(__self__, "forwards", forwards) - pulumi.set(__self__, "order", order) - pulumi.set(__self__, "redirects", redirects) - pulumi.set(__self__, "target_group_arn", target_group_arn) - pulumi.set(__self__, "type", type) + GetListenerDefaultActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + authenticate_cognitos=authenticate_cognitos, + authenticate_oidcs=authenticate_oidcs, + fixed_responses=fixed_responses, + forwards=forwards, + order=order, + redirects=redirects, + target_group_arn=target_group_arn, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authenticate_cognitos: Optional[Sequence['outputs.GetListenerDefaultActionAuthenticateCognitoResult']] = None, + authenticate_oidcs: Optional[Sequence['outputs.GetListenerDefaultActionAuthenticateOidcResult']] = None, + fixed_responses: Optional[Sequence['outputs.GetListenerDefaultActionFixedResponseResult']] = None, + forwards: Optional[Sequence['outputs.GetListenerDefaultActionForwardResult']] = None, + order: Optional[int] = None, + redirects: Optional[Sequence['outputs.GetListenerDefaultActionRedirectResult']] = None, + target_group_arn: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authenticate_cognitos is None and 'authenticateCognitos' in kwargs: + authenticate_cognitos = kwargs['authenticateCognitos'] + if authenticate_cognitos is None: + raise TypeError("Missing 'authenticate_cognitos' argument") + if authenticate_oidcs is None and 'authenticateOidcs' in kwargs: + authenticate_oidcs = kwargs['authenticateOidcs'] + if authenticate_oidcs is None: + raise TypeError("Missing 'authenticate_oidcs' argument") + if fixed_responses is None and 'fixedResponses' in kwargs: + fixed_responses = kwargs['fixedResponses'] + if fixed_responses is None: + raise TypeError("Missing 'fixed_responses' argument") + if forwards is None: + raise TypeError("Missing 'forwards' argument") + if order is None: + raise TypeError("Missing 'order' argument") + if redirects is None: + raise TypeError("Missing 'redirects' argument") + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + if target_group_arn is None: + raise TypeError("Missing 'target_group_arn' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("authenticate_cognitos", authenticate_cognitos) + _setter("authenticate_oidcs", authenticate_oidcs) + _setter("fixed_responses", fixed_responses) + _setter("forwards", forwards) + _setter("order", order) + _setter("redirects", redirects) + _setter("target_group_arn", target_group_arn) + _setter("type", type) @property @pulumi.getter(name="authenticateCognitos") @@ -2189,14 +2928,69 @@ def __init__(__self__, *, user_pool_arn: str, user_pool_client_id: str, user_pool_domain: str): - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) - pulumi.set(__self__, "scope", scope) - pulumi.set(__self__, "session_cookie_name", session_cookie_name) - pulumi.set(__self__, "session_timeout", session_timeout) - pulumi.set(__self__, "user_pool_arn", user_pool_arn) - pulumi.set(__self__, "user_pool_client_id", user_pool_client_id) - pulumi.set(__self__, "user_pool_domain", user_pool_domain) + GetListenerDefaultActionAuthenticateCognitoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_request_extra_params=authentication_request_extra_params, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + user_pool_arn=user_pool_arn, + user_pool_client_id=user_pool_client_id, + user_pool_domain=user_pool_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + user_pool_arn: Optional[str] = None, + user_pool_client_id: Optional[str] = None, + user_pool_domain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if authentication_request_extra_params is None: + raise TypeError("Missing 'authentication_request_extra_params' argument") + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if on_unauthenticated_request is None: + raise TypeError("Missing 'on_unauthenticated_request' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_cookie_name is None: + raise TypeError("Missing 'session_cookie_name' argument") + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + if session_timeout is None: + raise TypeError("Missing 'session_timeout' argument") + if user_pool_arn is None and 'userPoolArn' in kwargs: + user_pool_arn = kwargs['userPoolArn'] + if user_pool_arn is None: + raise TypeError("Missing 'user_pool_arn' argument") + if user_pool_client_id is None and 'userPoolClientId' in kwargs: + user_pool_client_id = kwargs['userPoolClientId'] + if user_pool_client_id is None: + raise TypeError("Missing 'user_pool_client_id' argument") + if user_pool_domain is None and 'userPoolDomain' in kwargs: + user_pool_domain = kwargs['userPoolDomain'] + if user_pool_domain is None: + raise TypeError("Missing 'user_pool_domain' argument") + + _setter("authentication_request_extra_params", authentication_request_extra_params) + _setter("on_unauthenticated_request", on_unauthenticated_request) + _setter("scope", scope) + _setter("session_cookie_name", session_cookie_name) + _setter("session_timeout", session_timeout) + _setter("user_pool_arn", user_pool_arn) + _setter("user_pool_client_id", user_pool_client_id) + _setter("user_pool_domain", user_pool_domain) @property @pulumi.getter(name="authenticationRequestExtraParams") @@ -2253,17 +3047,88 @@ def __init__(__self__, *, session_timeout: int, token_endpoint: str, user_info_endpoint: str): - pulumi.set(__self__, "authentication_request_extra_params", authentication_request_extra_params) - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "on_unauthenticated_request", on_unauthenticated_request) - pulumi.set(__self__, "scope", scope) - pulumi.set(__self__, "session_cookie_name", session_cookie_name) - pulumi.set(__self__, "session_timeout", session_timeout) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + GetListenerDefaultActionAuthenticateOidcResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_request_extra_params=authentication_request_extra_params, + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + on_unauthenticated_request=on_unauthenticated_request, + scope=scope, + session_cookie_name=session_cookie_name, + session_timeout=session_timeout, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_request_extra_params: Optional[Mapping[str, str]] = None, + authorization_endpoint: Optional[str] = None, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + issuer: Optional[str] = None, + on_unauthenticated_request: Optional[str] = None, + scope: Optional[str] = None, + session_cookie_name: Optional[str] = None, + session_timeout: Optional[int] = None, + token_endpoint: Optional[str] = None, + user_info_endpoint: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_request_extra_params is None and 'authenticationRequestExtraParams' in kwargs: + authentication_request_extra_params = kwargs['authenticationRequestExtraParams'] + if authentication_request_extra_params is None: + raise TypeError("Missing 'authentication_request_extra_params' argument") + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if on_unauthenticated_request is None and 'onUnauthenticatedRequest' in kwargs: + on_unauthenticated_request = kwargs['onUnauthenticatedRequest'] + if on_unauthenticated_request is None: + raise TypeError("Missing 'on_unauthenticated_request' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + if session_cookie_name is None and 'sessionCookieName' in kwargs: + session_cookie_name = kwargs['sessionCookieName'] + if session_cookie_name is None: + raise TypeError("Missing 'session_cookie_name' argument") + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + if session_timeout is None: + raise TypeError("Missing 'session_timeout' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + + _setter("authentication_request_extra_params", authentication_request_extra_params) + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("on_unauthenticated_request", on_unauthenticated_request) + _setter("scope", scope) + _setter("session_cookie_name", session_cookie_name) + _setter("session_timeout", session_timeout) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) @property @pulumi.getter(name="authenticationRequestExtraParams") @@ -2327,9 +3192,36 @@ def __init__(__self__, *, content_type: str, message_body: str, status_code: str): - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "message_body", message_body) - pulumi.set(__self__, "status_code", status_code) + GetListenerDefaultActionFixedResponseResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + message_body=message_body, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[str] = None, + message_body: Optional[str] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if message_body is None and 'messageBody' in kwargs: + message_body = kwargs['messageBody'] + if message_body is None: + raise TypeError("Missing 'message_body' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("content_type", content_type) + _setter("message_body", message_body) + _setter("status_code", status_code) @property @pulumi.getter(name="contentType") @@ -2352,8 +3244,27 @@ class GetListenerDefaultActionForwardResult(dict): def __init__(__self__, *, stickinesses: Sequence['outputs.GetListenerDefaultActionForwardStickinessResult'], target_groups: Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']): - pulumi.set(__self__, "stickinesses", stickinesses) - pulumi.set(__self__, "target_groups", target_groups) + GetListenerDefaultActionForwardResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + stickinesses=stickinesses, + target_groups=target_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stickinesses: Optional[Sequence['outputs.GetListenerDefaultActionForwardStickinessResult']] = None, + target_groups: Optional[Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stickinesses is None: + raise TypeError("Missing 'stickinesses' argument") + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("stickinesses", stickinesses) + _setter("target_groups", target_groups) @property @pulumi.getter @@ -2371,8 +3282,25 @@ class GetListenerDefaultActionForwardStickinessResult(dict): def __init__(__self__, *, duration: int, enabled: bool): - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "enabled", enabled) + GetListenerDefaultActionForwardStickinessResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration=duration, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration: Optional[int] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration is None: + raise TypeError("Missing 'duration' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("duration", duration) + _setter("enabled", enabled) @property @pulumi.getter @@ -2393,8 +3321,25 @@ def __init__(__self__, *, """ :param str arn: ARN of the listener. Required if `load_balancer_arn` and `port` is not set. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "weight", weight) + GetListenerDefaultActionForwardTargetGroupResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("arn", arn) + _setter("weight", weight) @property @pulumi.getter @@ -2422,12 +3367,47 @@ def __init__(__self__, *, """ :param str port: Port of the listener. Required if `arn` is not set. """ - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "path", path) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "query", query) - pulumi.set(__self__, "status_code", status_code) + GetListenerDefaultActionRedirectResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + host=host, + path=path, + port=port, + protocol=protocol, + query=query, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + query: Optional[str] = None, + status_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host is None: + raise TypeError("Missing 'host' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if query is None: + raise TypeError("Missing 'query' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("host", host) + _setter("path", path) + _setter("port", port) + _setter("protocol", protocol) + _setter("query", query) + _setter("status_code", status_code) @property @pulumi.getter @@ -2469,9 +3449,30 @@ def __init__(__self__, *, bucket: str, enabled: bool, prefix: str): - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "prefix", prefix) + GetLoadBalancerAccessLogsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + enabled=enabled, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + enabled: Optional[bool] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if prefix is None: + raise TypeError("Missing 'prefix' argument") + + _setter("bucket", bucket) + _setter("enabled", enabled) + _setter("prefix", prefix) @property @pulumi.getter @@ -2497,11 +3498,50 @@ def __init__(__self__, *, outpost_id: str, private_ipv4_address: str, subnet_id: str): - pulumi.set(__self__, "allocation_id", allocation_id) - pulumi.set(__self__, "ipv6_address", ipv6_address) - pulumi.set(__self__, "outpost_id", outpost_id) - pulumi.set(__self__, "private_ipv4_address", private_ipv4_address) - pulumi.set(__self__, "subnet_id", subnet_id) + GetLoadBalancerSubnetMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocation_id=allocation_id, + ipv6_address=ipv6_address, + outpost_id=outpost_id, + private_ipv4_address=private_ipv4_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocation_id: Optional[str] = None, + ipv6_address: Optional[str] = None, + outpost_id: Optional[str] = None, + private_ipv4_address: Optional[str] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocation_id is None and 'allocationId' in kwargs: + allocation_id = kwargs['allocationId'] + if allocation_id is None: + raise TypeError("Missing 'allocation_id' argument") + if ipv6_address is None and 'ipv6Address' in kwargs: + ipv6_address = kwargs['ipv6Address'] + if ipv6_address is None: + raise TypeError("Missing 'ipv6_address' argument") + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if outpost_id is None: + raise TypeError("Missing 'outpost_id' argument") + if private_ipv4_address is None and 'privateIpv4Address' in kwargs: + private_ipv4_address = kwargs['privateIpv4Address'] + if private_ipv4_address is None: + raise TypeError("Missing 'private_ipv4_address' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("allocation_id", allocation_id) + _setter("ipv6_address", ipv6_address) + _setter("outpost_id", outpost_id) + _setter("private_ipv4_address", private_ipv4_address) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="allocationId") @@ -2541,15 +3581,64 @@ def __init__(__self__, *, protocol: str, timeout: int, unhealthy_threshold: int): - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "healthy_threshold", healthy_threshold) - pulumi.set(__self__, "interval", interval) - pulumi.set(__self__, "matcher", matcher) - pulumi.set(__self__, "path", path) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "timeout", timeout) - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + GetTargetGroupHealthCheckResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + healthy_threshold=healthy_threshold, + interval=interval, + matcher=matcher, + path=path, + port=port, + protocol=protocol, + timeout=timeout, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + healthy_threshold: Optional[int] = None, + interval: Optional[int] = None, + matcher: Optional[str] = None, + path: Optional[str] = None, + port: Optional[str] = None, + protocol: Optional[str] = None, + timeout: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if healthy_threshold is None: + raise TypeError("Missing 'healthy_threshold' argument") + if interval is None: + raise TypeError("Missing 'interval' argument") + if matcher is None: + raise TypeError("Missing 'matcher' argument") + if path is None: + raise TypeError("Missing 'path' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if timeout is None: + raise TypeError("Missing 'timeout' argument") + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if unhealthy_threshold is None: + raise TypeError("Missing 'unhealthy_threshold' argument") + + _setter("enabled", enabled) + _setter("healthy_threshold", healthy_threshold) + _setter("interval", interval) + _setter("matcher", matcher) + _setter("path", path) + _setter("port", port) + _setter("protocol", protocol) + _setter("timeout", timeout) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter @@ -2604,10 +3693,39 @@ def __init__(__self__, *, cookie_name: str, enabled: bool, type: str): - pulumi.set(__self__, "cookie_duration", cookie_duration) - pulumi.set(__self__, "cookie_name", cookie_name) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "type", type) + GetTargetGroupStickinessResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_duration=cookie_duration, + cookie_name=cookie_name, + enabled=enabled, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_duration: Optional[int] = None, + cookie_name: Optional[str] = None, + enabled: Optional[bool] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_duration is None and 'cookieDuration' in kwargs: + cookie_duration = kwargs['cookieDuration'] + if cookie_duration is None: + raise TypeError("Missing 'cookie_duration' argument") + if cookie_name is None and 'cookieName' in kwargs: + cookie_name = kwargs['cookieName'] + if cookie_name is None: + raise TypeError("Missing 'cookie_name' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("cookie_duration", cookie_duration) + _setter("cookie_name", cookie_name) + _setter("enabled", enabled) + _setter("type", type) @property @pulumi.getter(name="cookieDuration") diff --git a/sdk/python/pulumi_aws/lb/target_group.py b/sdk/python/pulumi_aws/lb/target_group.py index b4b69c867fd..1de6f10fb1b 100644 --- a/sdk/python/pulumi_aws/lb/target_group.py +++ b/sdk/python/pulumi_aws/lb/target_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -67,46 +67,125 @@ def __init__(__self__, *, Application Load Balancers do not support the `alb` target type. :param pulumi.Input[str] vpc_id: Identifier of the VPC in which to create the target group. Required when `target_type` is `instance`, `ip` or `alb`. Does not apply when `target_type` is `lambda`. """ + TargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_termination=connection_termination, + deregistration_delay=deregistration_delay, + health_check=health_check, + ip_address_type=ip_address_type, + lambda_multi_value_headers_enabled=lambda_multi_value_headers_enabled, + load_balancing_algorithm_type=load_balancing_algorithm_type, + load_balancing_cross_zone_enabled=load_balancing_cross_zone_enabled, + name=name, + name_prefix=name_prefix, + port=port, + preserve_client_ip=preserve_client_ip, + protocol=protocol, + protocol_version=protocol_version, + proxy_protocol_v2=proxy_protocol_v2, + slow_start=slow_start, + stickiness=stickiness, + tags=tags, + target_failovers=target_failovers, + target_type=target_type, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_termination: Optional[pulumi.Input[bool]] = None, + deregistration_delay: Optional[pulumi.Input[int]] = None, + health_check: Optional[pulumi.Input['TargetGroupHealthCheckArgs']] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + lambda_multi_value_headers_enabled: Optional[pulumi.Input[bool]] = None, + load_balancing_algorithm_type: Optional[pulumi.Input[str]] = None, + load_balancing_cross_zone_enabled: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preserve_client_ip: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + protocol_version: Optional[pulumi.Input[str]] = None, + proxy_protocol_v2: Optional[pulumi.Input[bool]] = None, + slow_start: Optional[pulumi.Input[int]] = None, + stickiness: Optional[pulumi.Input['TargetGroupStickinessArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]] = None, + target_type: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_termination is None and 'connectionTermination' in kwargs: + connection_termination = kwargs['connectionTermination'] + if deregistration_delay is None and 'deregistrationDelay' in kwargs: + deregistration_delay = kwargs['deregistrationDelay'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if lambda_multi_value_headers_enabled is None and 'lambdaMultiValueHeadersEnabled' in kwargs: + lambda_multi_value_headers_enabled = kwargs['lambdaMultiValueHeadersEnabled'] + if load_balancing_algorithm_type is None and 'loadBalancingAlgorithmType' in kwargs: + load_balancing_algorithm_type = kwargs['loadBalancingAlgorithmType'] + if load_balancing_cross_zone_enabled is None and 'loadBalancingCrossZoneEnabled' in kwargs: + load_balancing_cross_zone_enabled = kwargs['loadBalancingCrossZoneEnabled'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if preserve_client_ip is None and 'preserveClientIp' in kwargs: + preserve_client_ip = kwargs['preserveClientIp'] + if protocol_version is None and 'protocolVersion' in kwargs: + protocol_version = kwargs['protocolVersion'] + if proxy_protocol_v2 is None and 'proxyProtocolV2' in kwargs: + proxy_protocol_v2 = kwargs['proxyProtocolV2'] + if slow_start is None and 'slowStart' in kwargs: + slow_start = kwargs['slowStart'] + if target_failovers is None and 'targetFailovers' in kwargs: + target_failovers = kwargs['targetFailovers'] + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if connection_termination is not None: - pulumi.set(__self__, "connection_termination", connection_termination) + _setter("connection_termination", connection_termination) if deregistration_delay is not None: - pulumi.set(__self__, "deregistration_delay", deregistration_delay) + _setter("deregistration_delay", deregistration_delay) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if lambda_multi_value_headers_enabled is not None: - pulumi.set(__self__, "lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) + _setter("lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) if load_balancing_algorithm_type is not None: - pulumi.set(__self__, "load_balancing_algorithm_type", load_balancing_algorithm_type) + _setter("load_balancing_algorithm_type", load_balancing_algorithm_type) if load_balancing_cross_zone_enabled is not None: - pulumi.set(__self__, "load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) + _setter("load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preserve_client_ip is not None: - pulumi.set(__self__, "preserve_client_ip", preserve_client_ip) + _setter("preserve_client_ip", preserve_client_ip) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if protocol_version is not None: - pulumi.set(__self__, "protocol_version", protocol_version) + _setter("protocol_version", protocol_version) if proxy_protocol_v2 is not None: - pulumi.set(__self__, "proxy_protocol_v2", proxy_protocol_v2) + _setter("proxy_protocol_v2", proxy_protocol_v2) if slow_start is not None: - pulumi.set(__self__, "slow_start", slow_start) + _setter("slow_start", slow_start) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_failovers is not None: - pulumi.set(__self__, "target_failovers", target_failovers) + _setter("target_failovers", target_failovers) if target_type is not None: - pulumi.set(__self__, "target_type", target_type) + _setter("target_type", target_type) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="connectionTermination") @@ -417,55 +496,144 @@ def __init__(__self__, *, Application Load Balancers do not support the `alb` target type. :param pulumi.Input[str] vpc_id: Identifier of the VPC in which to create the target group. Required when `target_type` is `instance`, `ip` or `alb`. Does not apply when `target_type` is `lambda`. """ + _TargetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + arn_suffix=arn_suffix, + connection_termination=connection_termination, + deregistration_delay=deregistration_delay, + health_check=health_check, + ip_address_type=ip_address_type, + lambda_multi_value_headers_enabled=lambda_multi_value_headers_enabled, + load_balancing_algorithm_type=load_balancing_algorithm_type, + load_balancing_cross_zone_enabled=load_balancing_cross_zone_enabled, + name=name, + name_prefix=name_prefix, + port=port, + preserve_client_ip=preserve_client_ip, + protocol=protocol, + protocol_version=protocol_version, + proxy_protocol_v2=proxy_protocol_v2, + slow_start=slow_start, + stickiness=stickiness, + tags=tags, + tags_all=tags_all, + target_failovers=target_failovers, + target_type=target_type, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + arn_suffix: Optional[pulumi.Input[str]] = None, + connection_termination: Optional[pulumi.Input[bool]] = None, + deregistration_delay: Optional[pulumi.Input[int]] = None, + health_check: Optional[pulumi.Input['TargetGroupHealthCheckArgs']] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + lambda_multi_value_headers_enabled: Optional[pulumi.Input[bool]] = None, + load_balancing_algorithm_type: Optional[pulumi.Input[str]] = None, + load_balancing_cross_zone_enabled: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preserve_client_ip: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + protocol_version: Optional[pulumi.Input[str]] = None, + proxy_protocol_v2: Optional[pulumi.Input[bool]] = None, + slow_start: Optional[pulumi.Input[int]] = None, + stickiness: Optional[pulumi.Input['TargetGroupStickinessArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['TargetGroupTargetFailoverArgs']]]] = None, + target_type: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn_suffix is None and 'arnSuffix' in kwargs: + arn_suffix = kwargs['arnSuffix'] + if connection_termination is None and 'connectionTermination' in kwargs: + connection_termination = kwargs['connectionTermination'] + if deregistration_delay is None and 'deregistrationDelay' in kwargs: + deregistration_delay = kwargs['deregistrationDelay'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if lambda_multi_value_headers_enabled is None and 'lambdaMultiValueHeadersEnabled' in kwargs: + lambda_multi_value_headers_enabled = kwargs['lambdaMultiValueHeadersEnabled'] + if load_balancing_algorithm_type is None and 'loadBalancingAlgorithmType' in kwargs: + load_balancing_algorithm_type = kwargs['loadBalancingAlgorithmType'] + if load_balancing_cross_zone_enabled is None and 'loadBalancingCrossZoneEnabled' in kwargs: + load_balancing_cross_zone_enabled = kwargs['loadBalancingCrossZoneEnabled'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if preserve_client_ip is None and 'preserveClientIp' in kwargs: + preserve_client_ip = kwargs['preserveClientIp'] + if protocol_version is None and 'protocolVersion' in kwargs: + protocol_version = kwargs['protocolVersion'] + if proxy_protocol_v2 is None and 'proxyProtocolV2' in kwargs: + proxy_protocol_v2 = kwargs['proxyProtocolV2'] + if slow_start is None and 'slowStart' in kwargs: + slow_start = kwargs['slowStart'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_failovers is None and 'targetFailovers' in kwargs: + target_failovers = kwargs['targetFailovers'] + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if arn_suffix is not None: - pulumi.set(__self__, "arn_suffix", arn_suffix) + _setter("arn_suffix", arn_suffix) if connection_termination is not None: - pulumi.set(__self__, "connection_termination", connection_termination) + _setter("connection_termination", connection_termination) if deregistration_delay is not None: - pulumi.set(__self__, "deregistration_delay", deregistration_delay) + _setter("deregistration_delay", deregistration_delay) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if lambda_multi_value_headers_enabled is not None: - pulumi.set(__self__, "lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) + _setter("lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) if load_balancing_algorithm_type is not None: - pulumi.set(__self__, "load_balancing_algorithm_type", load_balancing_algorithm_type) + _setter("load_balancing_algorithm_type", load_balancing_algorithm_type) if load_balancing_cross_zone_enabled is not None: - pulumi.set(__self__, "load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) + _setter("load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preserve_client_ip is not None: - pulumi.set(__self__, "preserve_client_ip", preserve_client_ip) + _setter("preserve_client_ip", preserve_client_ip) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if protocol_version is not None: - pulumi.set(__self__, "protocol_version", protocol_version) + _setter("protocol_version", protocol_version) if proxy_protocol_v2 is not None: - pulumi.set(__self__, "proxy_protocol_v2", proxy_protocol_v2) + _setter("proxy_protocol_v2", proxy_protocol_v2) if slow_start is not None: - pulumi.set(__self__, "slow_start", slow_start) + _setter("slow_start", slow_start) if stickiness is not None: - pulumi.set(__self__, "stickiness", stickiness) + _setter("stickiness", stickiness) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_failovers is not None: - pulumi.set(__self__, "target_failovers", target_failovers) + _setter("target_failovers", target_failovers) if target_type is not None: - pulumi.set(__self__, "target_type", target_type) + _setter("target_type", target_type) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -948,6 +1116,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TargetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -984,6 +1156,7 @@ def _internal_init(__self__, __props__.__dict__["connection_termination"] = connection_termination __props__.__dict__["deregistration_delay"] = deregistration_delay + health_check = _utilities.configure(health_check, TargetGroupHealthCheckArgs, True) __props__.__dict__["health_check"] = health_check __props__.__dict__["ip_address_type"] = ip_address_type __props__.__dict__["lambda_multi_value_headers_enabled"] = lambda_multi_value_headers_enabled @@ -997,6 +1170,7 @@ def _internal_init(__self__, __props__.__dict__["protocol_version"] = protocol_version __props__.__dict__["proxy_protocol_v2"] = proxy_protocol_v2 __props__.__dict__["slow_start"] = slow_start + stickiness = _utilities.configure(stickiness, TargetGroupStickinessArgs, True) __props__.__dict__["stickiness"] = stickiness __props__.__dict__["tags"] = tags __props__.__dict__["target_failovers"] = target_failovers diff --git a/sdk/python/pulumi_aws/lb/target_group_attachment.py b/sdk/python/pulumi_aws/lb/target_group_attachment.py index a5ba27e8f1a..a5738093b0e 100644 --- a/sdk/python/pulumi_aws/lb/target_group_attachment.py +++ b/sdk/python/pulumi_aws/lb/target_group_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TargetGroupAttachmentArgs', 'TargetGroupAttachment'] @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[str] availability_zone: The Availability Zone where the IP address of the target is to be registered. If the private IP address is outside of the VPC scope, this value must be set to `all`. :param pulumi.Input[int] port: The port on which targets receive traffic. """ - pulumi.set(__self__, "target_group_arn", target_group_arn) - pulumi.set(__self__, "target_id", target_id) + TargetGroupAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_group_arn=target_group_arn, + target_id=target_id, + availability_zone=availability_zone, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_group_arn: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + if target_group_arn is None: + raise TypeError("Missing 'target_group_arn' argument") + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if target_id is None: + raise TypeError("Missing 'target_id' argument") + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + + _setter("target_group_arn", target_group_arn) + _setter("target_id", target_id) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter(name="targetGroupArn") @@ -101,14 +128,37 @@ def __init__(__self__, *, The following arguments are optional: """ + _TargetGroupAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + port=port, + target_group_arn=target_group_arn, + target_id=target_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + target_group_arn: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if target_group_arn is None and 'targetGroupArn' in kwargs: + target_group_arn = kwargs['targetGroupArn'] + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if target_group_arn is not None: - pulumi.set(__self__, "target_group_arn", target_group_arn) + _setter("target_group_arn", target_group_arn) if target_id is not None: - pulumi.set(__self__, "target_id", target_id) + _setter("target_id", target_id) @property @pulumi.getter(name="availabilityZone") @@ -330,6 +380,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TargetGroupAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lex/_inputs.py b/sdk/python/pulumi_aws/lex/_inputs.py index 22bdc40140b..c4deafdd6f1 100644 --- a/sdk/python/pulumi_aws/lex/_inputs.py +++ b/sdk/python/pulumi_aws/lex/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -46,19 +46,42 @@ def __init__(__self__, *, messages: pulumi.Input[Sequence[pulumi.Input['BotAbortStatementMessageArgs']]], response_card: Optional[pulumi.Input[str]] = None): """ + :param pulumi.Input[Sequence[pulumi.Input['BotAbortStatementMessageArgs']]] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. :param pulumi.Input[str] response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). """ - pulumi.set(__self__, "messages", messages) + BotAbortStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + messages: Optional[pulumi.Input[Sequence[pulumi.Input['BotAbortStatementMessageArgs']]]] = None, + response_card: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter def messages(self) -> pulumi.Input[Sequence[pulumi.Input['BotAbortStatementMessageArgs']]]: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. + """ return pulumi.get(self, "messages") @messages.setter @@ -72,8 +95,6 @@ def response_card(self) -> Optional[pulumi.Input[str]]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). """ return pulumi.get(self, "response_card") @@ -94,10 +115,33 @@ def __init__(__self__, *, :param pulumi.Input[int] group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + BotAbortStatementMessageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + group_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -146,9 +190,28 @@ def __init__(__self__, *, :param pulumi.Input[str] iam_role_arn: The Amazon Resource Name (ARN) of the IAM role used to write your logs to CloudWatch Logs or an S3 bucket. Must be between 20 and 2048 characters in length. :param pulumi.Input[Sequence[pulumi.Input['BotAliasConversationLogsLogSettingArgs']]] log_settings: The settings for your conversation logs. You can log text, audio, or both. Attributes are documented under log_settings. """ - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + BotAliasConversationLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam_role_arn=iam_role_arn, + log_settings=log_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam_role_arn: Optional[pulumi.Input[str]] = None, + log_settings: Optional[pulumi.Input[Sequence[pulumi.Input['BotAliasConversationLogsLogSettingArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if iam_role_arn is None: + raise TypeError("Missing 'iam_role_arn' argument") + if log_settings is None and 'logSettings' in kwargs: + log_settings = kwargs['logSettings'] + + _setter("iam_role_arn", iam_role_arn) if log_settings is not None: - pulumi.set(__self__, "log_settings", log_settings) + _setter("log_settings", log_settings) @property @pulumi.getter(name="iamRoleArn") @@ -190,13 +253,46 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_arn: The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an S3 bucket. This can only be specified when `destination` is set to `S3`. Must be between 20 and 2048 characters in length. :param pulumi.Input[str] resource_prefix: The prefix of the S3 object key for `AUDIO` logs or the log stream name for `TEXT` logs. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "log_type", log_type) - pulumi.set(__self__, "resource_arn", resource_arn) + BotAliasConversationLogsLogSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + log_type=log_type, + resource_arn=resource_arn, + kms_key_arn=kms_key_arn, + resource_prefix=resource_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + resource_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if resource_prefix is None and 'resourcePrefix' in kwargs: + resource_prefix = kwargs['resourcePrefix'] + + _setter("destination", destination) + _setter("log_type", log_type) + _setter("resource_arn", resource_arn) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if resource_prefix is not None: - pulumi.set(__self__, "resource_prefix", resource_prefix) + _setter("resource_prefix", resource_prefix) @property @pulumi.getter @@ -267,16 +363,40 @@ def __init__(__self__, *, response_card: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[int] max_attempts: The number of times to prompt the user for information. + :param pulumi.Input[Sequence[pulumi.Input['BotClarificationPromptMessageArgs']]] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. :param pulumi.Input[str] response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). """ - pulumi.set(__self__, "max_attempts", max_attempts) - pulumi.set(__self__, "messages", messages) + BotClarificationPromptArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_attempts=max_attempts, + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_attempts: Optional[pulumi.Input[int]] = None, + messages: Optional[pulumi.Input[Sequence[pulumi.Input['BotClarificationPromptMessageArgs']]]] = None, + response_card: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_attempts is None and 'maxAttempts' in kwargs: + max_attempts = kwargs['maxAttempts'] + if max_attempts is None: + raise TypeError("Missing 'max_attempts' argument") + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("max_attempts", max_attempts) + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter(name="maxAttempts") @@ -293,6 +413,11 @@ def max_attempts(self, value: pulumi.Input[int]): @property @pulumi.getter def messages(self) -> pulumi.Input[Sequence[pulumi.Input['BotClarificationPromptMessageArgs']]]: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. + """ return pulumi.get(self, "messages") @messages.setter @@ -306,8 +431,6 @@ def response_card(self) -> Optional[pulumi.Input[str]]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). """ return pulumi.get(self, "response_card") @@ -328,10 +451,33 @@ def __init__(__self__, *, :param pulumi.Input[int] group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + BotClarificationPromptMessageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + group_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -380,8 +526,29 @@ def __init__(__self__, *, :param pulumi.Input[str] intent_name: The name of the intent. Must be less than or equal to 100 characters in length. :param pulumi.Input[str] intent_version: The version of the intent. Must be less than or equal to 64 characters in length. """ - pulumi.set(__self__, "intent_name", intent_name) - pulumi.set(__self__, "intent_version", intent_version) + BotIntentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + intent_name=intent_name, + intent_version=intent_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + intent_name: Optional[pulumi.Input[str]] = None, + intent_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if intent_name is None and 'intentName' in kwargs: + intent_name = kwargs['intentName'] + if intent_name is None: + raise TypeError("Missing 'intent_name' argument") + if intent_version is None and 'intentVersion' in kwargs: + intent_version = kwargs['intentVersion'] + if intent_version is None: + raise TypeError("Missing 'intent_version' argument") + + _setter("intent_name", intent_name) + _setter("intent_version", intent_version) @property @pulumi.getter(name="intentName") @@ -414,21 +581,42 @@ def __init__(__self__, *, messages: pulumi.Input[Sequence[pulumi.Input['IntentConclusionStatementMessageArgs']]], response_card: Optional[pulumi.Input[str]] = None): """ + :param pulumi.Input[Sequence[pulumi.Input['IntentConclusionStatementMessageArgs']]] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param pulumi.Input[str] response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "messages", messages) + IntentConclusionStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + messages: Optional[pulumi.Input[Sequence[pulumi.Input['IntentConclusionStatementMessageArgs']]]] = None, + response_card: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter def messages(self) -> pulumi.Input[Sequence[pulumi.Input['IntentConclusionStatementMessageArgs']]]: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @messages.setter @@ -442,10 +630,6 @@ def response_card(self) -> Optional[pulumi.Input[str]]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -466,10 +650,33 @@ def __init__(__self__, *, :param pulumi.Input[int] group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentConclusionStatementMessageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + group_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -517,18 +724,40 @@ def __init__(__self__, *, response_card: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[int] max_attempts: The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). + :param pulumi.Input[Sequence[pulumi.Input['IntentConfirmationPromptMessageArgs']]] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param pulumi.Input[str] response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "max_attempts", max_attempts) - pulumi.set(__self__, "messages", messages) + IntentConfirmationPromptArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_attempts=max_attempts, + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_attempts: Optional[pulumi.Input[int]] = None, + messages: Optional[pulumi.Input[Sequence[pulumi.Input['IntentConfirmationPromptMessageArgs']]]] = None, + response_card: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_attempts is None and 'maxAttempts' in kwargs: + max_attempts = kwargs['maxAttempts'] + if max_attempts is None: + raise TypeError("Missing 'max_attempts' argument") + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("max_attempts", max_attempts) + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter(name="maxAttempts") @@ -545,6 +774,11 @@ def max_attempts(self, value: pulumi.Input[int]): @property @pulumi.getter def messages(self) -> pulumi.Input[Sequence[pulumi.Input['IntentConfirmationPromptMessageArgs']]]: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @messages.setter @@ -558,10 +792,6 @@ def response_card(self) -> Optional[pulumi.Input[str]]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -582,10 +812,33 @@ def __init__(__self__, *, :param pulumi.Input[int] group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentConfirmationPromptMessageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + group_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -636,8 +889,27 @@ def __init__(__self__, *, [Using Lambda Functions](https://docs.aws.amazon.com/lex/latest/dg/using-lambda.html). Must be less than or equal to 5 characters in length. :param pulumi.Input[str] uri: The Amazon Resource Name (ARN) of the Lambda function. """ - pulumi.set(__self__, "message_version", message_version) - pulumi.set(__self__, "uri", uri) + IntentDialogCodeHookArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_version=message_version, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_version: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_version is None and 'messageVersion' in kwargs: + message_version = kwargs['messageVersion'] + if message_version is None: + raise TypeError("Missing 'message_version' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("message_version", message_version) + _setter("uri", uri) @property @pulumi.getter(name="messageVersion") @@ -677,8 +949,27 @@ def __init__(__self__, *, Amazon Lex responds with this statement to acknowledge that the intent was canceled. Attributes are documented below under statement. """ - pulumi.set(__self__, "prompt", prompt) - pulumi.set(__self__, "rejection_statement", rejection_statement) + IntentFollowUpPromptArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prompt=prompt, + rejection_statement=rejection_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prompt: Optional[pulumi.Input['IntentFollowUpPromptPromptArgs']] = None, + rejection_statement: Optional[pulumi.Input['IntentFollowUpPromptRejectionStatementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prompt is None: + raise TypeError("Missing 'prompt' argument") + if rejection_statement is None and 'rejectionStatement' in kwargs: + rejection_statement = kwargs['rejectionStatement'] + if rejection_statement is None: + raise TypeError("Missing 'rejection_statement' argument") + + _setter("prompt", prompt) + _setter("rejection_statement", rejection_statement) @property @pulumi.getter @@ -722,10 +1013,33 @@ def __init__(__self__, *, slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "max_attempts", max_attempts) - pulumi.set(__self__, "messages", messages) + IntentFollowUpPromptPromptArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_attempts=max_attempts, + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_attempts: Optional[pulumi.Input[int]] = None, + messages: Optional[pulumi.Input[Sequence[pulumi.Input['IntentFollowUpPromptPromptMessageArgs']]]] = None, + response_card: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_attempts is None and 'maxAttempts' in kwargs: + max_attempts = kwargs['maxAttempts'] + if max_attempts is None: + raise TypeError("Missing 'max_attempts' argument") + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("max_attempts", max_attempts) + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter(name="maxAttempts") @@ -780,10 +1094,33 @@ def __init__(__self__, *, :param pulumi.Input[int] group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentFollowUpPromptPromptMessageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + group_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -829,21 +1166,42 @@ def __init__(__self__, *, messages: pulumi.Input[Sequence[pulumi.Input['IntentFollowUpPromptRejectionStatementMessageArgs']]], response_card: Optional[pulumi.Input[str]] = None): """ + :param pulumi.Input[Sequence[pulumi.Input['IntentFollowUpPromptRejectionStatementMessageArgs']]] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param pulumi.Input[str] response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "messages", messages) + IntentFollowUpPromptRejectionStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + messages: Optional[pulumi.Input[Sequence[pulumi.Input['IntentFollowUpPromptRejectionStatementMessageArgs']]]] = None, + response_card: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter def messages(self) -> pulumi.Input[Sequence[pulumi.Input['IntentFollowUpPromptRejectionStatementMessageArgs']]]: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @messages.setter @@ -857,10 +1215,6 @@ def response_card(self) -> Optional[pulumi.Input[str]]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -881,10 +1235,33 @@ def __init__(__self__, *, :param pulumi.Input[int] group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentFollowUpPromptRejectionStatementMessageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + group_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -935,9 +1312,26 @@ def __init__(__self__, *, :param pulumi.Input['IntentFulfillmentActivityCodeHookArgs'] code_hook: A description of the Lambda function that is run to fulfill the intent. Required if type is CodeHook. Attributes are documented under code_hook. """ - pulumi.set(__self__, "type", type) + IntentFulfillmentActivityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + code_hook=code_hook, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + code_hook: Optional[pulumi.Input['IntentFulfillmentActivityCodeHookArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if code_hook is None and 'codeHook' in kwargs: + code_hook = kwargs['codeHook'] + + _setter("type", type) if code_hook is not None: - pulumi.set(__self__, "code_hook", code_hook) + _setter("code_hook", code_hook) @property @pulumi.getter @@ -977,8 +1371,27 @@ def __init__(__self__, *, [Using Lambda Functions](https://docs.aws.amazon.com/lex/latest/dg/using-lambda.html). Must be less than or equal to 5 characters in length. :param pulumi.Input[str] uri: The Amazon Resource Name (ARN) of the Lambda function. """ - pulumi.set(__self__, "message_version", message_version) - pulumi.set(__self__, "uri", uri) + IntentFulfillmentActivityCodeHookArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_version=message_version, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_version: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_version is None and 'messageVersion' in kwargs: + message_version = kwargs['messageVersion'] + if message_version is None: + raise TypeError("Missing 'message_version' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("message_version", message_version) + _setter("uri", uri) @property @pulumi.getter(name="messageVersion") @@ -1013,21 +1426,42 @@ def __init__(__self__, *, messages: pulumi.Input[Sequence[pulumi.Input['IntentRejectionStatementMessageArgs']]], response_card: Optional[pulumi.Input[str]] = None): """ + :param pulumi.Input[Sequence[pulumi.Input['IntentRejectionStatementMessageArgs']]] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param pulumi.Input[str] response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "messages", messages) + IntentRejectionStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + messages: Optional[pulumi.Input[Sequence[pulumi.Input['IntentRejectionStatementMessageArgs']]]] = None, + response_card: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter def messages(self) -> pulumi.Input[Sequence[pulumi.Input['IntentRejectionStatementMessageArgs']]]: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @messages.setter @@ -1041,10 +1475,6 @@ def response_card(self) -> Optional[pulumi.Input[str]]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -1065,10 +1495,33 @@ def __init__(__self__, *, :param pulumi.Input[int] group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentRejectionStatementMessageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + group_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -1140,21 +1593,66 @@ def __init__(__self__, *, :param pulumi.Input['IntentSlotValueElicitationPromptArgs'] value_elicitation_prompt: The prompt that Amazon Lex uses to elicit the slot value from the user. Attributes are documented under prompt. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "slot_constraint", slot_constraint) - pulumi.set(__self__, "slot_type", slot_type) + IntentSlotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + slot_constraint=slot_constraint, + slot_type=slot_type, + description=description, + priority=priority, + response_card=response_card, + sample_utterances=sample_utterances, + slot_type_version=slot_type_version, + value_elicitation_prompt=value_elicitation_prompt, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + slot_constraint: Optional[pulumi.Input[str]] = None, + slot_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + response_card: Optional[pulumi.Input[str]] = None, + sample_utterances: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + slot_type_version: Optional[pulumi.Input[str]] = None, + value_elicitation_prompt: Optional[pulumi.Input['IntentSlotValueElicitationPromptArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if slot_constraint is None and 'slotConstraint' in kwargs: + slot_constraint = kwargs['slotConstraint'] + if slot_constraint is None: + raise TypeError("Missing 'slot_constraint' argument") + if slot_type is None and 'slotType' in kwargs: + slot_type = kwargs['slotType'] + if slot_type is None: + raise TypeError("Missing 'slot_type' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + if sample_utterances is None and 'sampleUtterances' in kwargs: + sample_utterances = kwargs['sampleUtterances'] + if slot_type_version is None and 'slotTypeVersion' in kwargs: + slot_type_version = kwargs['slotTypeVersion'] + if value_elicitation_prompt is None and 'valueElicitationPrompt' in kwargs: + value_elicitation_prompt = kwargs['valueElicitationPrompt'] + + _setter("name", name) + _setter("slot_constraint", slot_constraint) + _setter("slot_type", slot_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) if sample_utterances is not None: - pulumi.set(__self__, "sample_utterances", sample_utterances) + _setter("sample_utterances", sample_utterances) if slot_type_version is not None: - pulumi.set(__self__, "slot_type_version", slot_type_version) + _setter("slot_type_version", slot_type_version) if value_elicitation_prompt is not None: - pulumi.set(__self__, "value_elicitation_prompt", value_elicitation_prompt) + _setter("value_elicitation_prompt", value_elicitation_prompt) @property @pulumi.getter @@ -1282,18 +1780,40 @@ def __init__(__self__, *, response_card: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[int] max_attempts: The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). + :param pulumi.Input[Sequence[pulumi.Input['IntentSlotValueElicitationPromptMessageArgs']]] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param pulumi.Input[str] response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "max_attempts", max_attempts) - pulumi.set(__self__, "messages", messages) + IntentSlotValueElicitationPromptArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_attempts=max_attempts, + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_attempts: Optional[pulumi.Input[int]] = None, + messages: Optional[pulumi.Input[Sequence[pulumi.Input['IntentSlotValueElicitationPromptMessageArgs']]]] = None, + response_card: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_attempts is None and 'maxAttempts' in kwargs: + max_attempts = kwargs['maxAttempts'] + if max_attempts is None: + raise TypeError("Missing 'max_attempts' argument") + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("max_attempts", max_attempts) + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter(name="maxAttempts") @@ -1310,6 +1830,11 @@ def max_attempts(self, value: pulumi.Input[int]): @property @pulumi.getter def messages(self) -> pulumi.Input[Sequence[pulumi.Input['IntentSlotValueElicitationPromptMessageArgs']]]: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @messages.setter @@ -1323,10 +1848,6 @@ def response_card(self) -> Optional[pulumi.Input[str]]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -1347,10 +1868,33 @@ def __init__(__self__, *, :param pulumi.Input[int] group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentSlotValueElicitationPromptMessageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + group_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -1399,9 +1943,24 @@ def __init__(__self__, *, :param pulumi.Input[str] value: The value of the slot type. Must be less than or equal to 140 characters in length. :param pulumi.Input[Sequence[pulumi.Input[str]]] synonyms: Additional values related to the slot type value. Each item must be less than or equal to 140 characters in length. """ - pulumi.set(__self__, "value", value) + SlotTypeEnumerationValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + synonyms=synonyms, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[pulumi.Input[str]] = None, + synonyms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) if synonyms is not None: - pulumi.set(__self__, "synonyms", synonyms) + _setter("synonyms", synonyms) @property @pulumi.getter @@ -1435,7 +1994,22 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] child_directed: (Required) - For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying true or false in the childDirected field. """ - pulumi.set(__self__, "child_directed", child_directed) + V2modelsBotDataPrivacyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + child_directed=child_directed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + child_directed: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if child_directed is None and 'childDirected' in kwargs: + child_directed = kwargs['childDirected'] + if child_directed is None: + raise TypeError("Missing 'child_directed' argument") + + _setter("child_directed", child_directed) @property @pulumi.getter(name="childDirected") @@ -1465,11 +2039,44 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the bot. The bot name must be unique in the account that creates the bot. Type String. Length Constraints: Minimum length of 1. Maximum length of 100. :param pulumi.Input[str] version: (Required) - Version of a bot that is a member of this network of bots. """ - pulumi.set(__self__, "alias_id", alias_id) - pulumi.set(__self__, "alias_name", alias_name) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "version", version) + V2modelsBotMemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias_id=alias_id, + alias_name=alias_name, + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias_id: Optional[pulumi.Input[str]] = None, + alias_name: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alias_id is None and 'aliasId' in kwargs: + alias_id = kwargs['aliasId'] + if alias_id is None: + raise TypeError("Missing 'alias_id' argument") + if alias_name is None and 'aliasName' in kwargs: + alias_name = kwargs['aliasName'] + if alias_name is None: + raise TypeError("Missing 'alias_name' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("alias_id", alias_id) + _setter("alias_name", alias_name) + _setter("id", id) + _setter("name", name) + _setter("version", version) @property @pulumi.getter(name="aliasId") @@ -1538,12 +2145,27 @@ def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, update: Optional[pulumi.Input[str]] = None): + V2modelsBotTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/lex/bot.py b/sdk/python/pulumi_aws/lex/bot.py index eb1e4f40add..5d8372c4e6f 100644 --- a/sdk/python/pulumi_aws/lex/bot.py +++ b/sdk/python/pulumi_aws/lex/bot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,31 +47,94 @@ def __init__(__self__, *, :param pulumi.Input[str] process_behavior: If you set the `process_behavior` element to `BUILD`, Amazon Lex builds the bot so that it can be run. If you set the element to `SAVE` Amazon Lex saves the bot, but doesn't build it. Default is `SAVE`. :param pulumi.Input[str] voice_id: The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with the user. The locale configured for the voice must match the locale of the bot. For more information, see [Available Voices](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html) in the Amazon Polly Developer Guide. """ - pulumi.set(__self__, "abort_statement", abort_statement) - pulumi.set(__self__, "child_directed", child_directed) - pulumi.set(__self__, "intents", intents) + BotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + abort_statement=abort_statement, + child_directed=child_directed, + intents=intents, + clarification_prompt=clarification_prompt, + create_version=create_version, + description=description, + detect_sentiment=detect_sentiment, + enable_model_improvements=enable_model_improvements, + idle_session_ttl_in_seconds=idle_session_ttl_in_seconds, + locale=locale, + name=name, + nlu_intent_confidence_threshold=nlu_intent_confidence_threshold, + process_behavior=process_behavior, + voice_id=voice_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + abort_statement: Optional[pulumi.Input['BotAbortStatementArgs']] = None, + child_directed: Optional[pulumi.Input[bool]] = None, + intents: Optional[pulumi.Input[Sequence[pulumi.Input['BotIntentArgs']]]] = None, + clarification_prompt: Optional[pulumi.Input['BotClarificationPromptArgs']] = None, + create_version: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + detect_sentiment: Optional[pulumi.Input[bool]] = None, + enable_model_improvements: Optional[pulumi.Input[bool]] = None, + idle_session_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + locale: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + nlu_intent_confidence_threshold: Optional[pulumi.Input[float]] = None, + process_behavior: Optional[pulumi.Input[str]] = None, + voice_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if abort_statement is None and 'abortStatement' in kwargs: + abort_statement = kwargs['abortStatement'] + if abort_statement is None: + raise TypeError("Missing 'abort_statement' argument") + if child_directed is None and 'childDirected' in kwargs: + child_directed = kwargs['childDirected'] + if child_directed is None: + raise TypeError("Missing 'child_directed' argument") + if intents is None: + raise TypeError("Missing 'intents' argument") + if clarification_prompt is None and 'clarificationPrompt' in kwargs: + clarification_prompt = kwargs['clarificationPrompt'] + if create_version is None and 'createVersion' in kwargs: + create_version = kwargs['createVersion'] + if detect_sentiment is None and 'detectSentiment' in kwargs: + detect_sentiment = kwargs['detectSentiment'] + if enable_model_improvements is None and 'enableModelImprovements' in kwargs: + enable_model_improvements = kwargs['enableModelImprovements'] + if idle_session_ttl_in_seconds is None and 'idleSessionTtlInSeconds' in kwargs: + idle_session_ttl_in_seconds = kwargs['idleSessionTtlInSeconds'] + if nlu_intent_confidence_threshold is None and 'nluIntentConfidenceThreshold' in kwargs: + nlu_intent_confidence_threshold = kwargs['nluIntentConfidenceThreshold'] + if process_behavior is None and 'processBehavior' in kwargs: + process_behavior = kwargs['processBehavior'] + if voice_id is None and 'voiceId' in kwargs: + voice_id = kwargs['voiceId'] + + _setter("abort_statement", abort_statement) + _setter("child_directed", child_directed) + _setter("intents", intents) if clarification_prompt is not None: - pulumi.set(__self__, "clarification_prompt", clarification_prompt) + _setter("clarification_prompt", clarification_prompt) if create_version is not None: - pulumi.set(__self__, "create_version", create_version) + _setter("create_version", create_version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if detect_sentiment is not None: - pulumi.set(__self__, "detect_sentiment", detect_sentiment) + _setter("detect_sentiment", detect_sentiment) if enable_model_improvements is not None: - pulumi.set(__self__, "enable_model_improvements", enable_model_improvements) + _setter("enable_model_improvements", enable_model_improvements) if idle_session_ttl_in_seconds is not None: - pulumi.set(__self__, "idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) + _setter("idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) if locale is not None: - pulumi.set(__self__, "locale", locale) + _setter("locale", locale) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nlu_intent_confidence_threshold is not None: - pulumi.set(__self__, "nlu_intent_confidence_threshold", nlu_intent_confidence_threshold) + _setter("nlu_intent_confidence_threshold", nlu_intent_confidence_threshold) if process_behavior is not None: - pulumi.set(__self__, "process_behavior", process_behavior) + _setter("process_behavior", process_behavior) if voice_id is not None: - pulumi.set(__self__, "voice_id", voice_id) + _setter("voice_id", voice_id) @property @pulumi.getter(name="abortStatement") @@ -293,48 +356,125 @@ def __init__(__self__, *, :param pulumi.Input[str] version: The version of the bot. :param pulumi.Input[str] voice_id: The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with the user. The locale configured for the voice must match the locale of the bot. For more information, see [Available Voices](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html) in the Amazon Polly Developer Guide. """ + _BotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + abort_statement=abort_statement, + arn=arn, + checksum=checksum, + child_directed=child_directed, + clarification_prompt=clarification_prompt, + create_version=create_version, + created_date=created_date, + description=description, + detect_sentiment=detect_sentiment, + enable_model_improvements=enable_model_improvements, + failure_reason=failure_reason, + idle_session_ttl_in_seconds=idle_session_ttl_in_seconds, + intents=intents, + last_updated_date=last_updated_date, + locale=locale, + name=name, + nlu_intent_confidence_threshold=nlu_intent_confidence_threshold, + process_behavior=process_behavior, + status=status, + version=version, + voice_id=voice_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + abort_statement: Optional[pulumi.Input['BotAbortStatementArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + checksum: Optional[pulumi.Input[str]] = None, + child_directed: Optional[pulumi.Input[bool]] = None, + clarification_prompt: Optional[pulumi.Input['BotClarificationPromptArgs']] = None, + create_version: Optional[pulumi.Input[bool]] = None, + created_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + detect_sentiment: Optional[pulumi.Input[bool]] = None, + enable_model_improvements: Optional[pulumi.Input[bool]] = None, + failure_reason: Optional[pulumi.Input[str]] = None, + idle_session_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + intents: Optional[pulumi.Input[Sequence[pulumi.Input['BotIntentArgs']]]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + locale: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + nlu_intent_confidence_threshold: Optional[pulumi.Input[float]] = None, + process_behavior: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + voice_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if abort_statement is None and 'abortStatement' in kwargs: + abort_statement = kwargs['abortStatement'] + if child_directed is None and 'childDirected' in kwargs: + child_directed = kwargs['childDirected'] + if clarification_prompt is None and 'clarificationPrompt' in kwargs: + clarification_prompt = kwargs['clarificationPrompt'] + if create_version is None and 'createVersion' in kwargs: + create_version = kwargs['createVersion'] + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if detect_sentiment is None and 'detectSentiment' in kwargs: + detect_sentiment = kwargs['detectSentiment'] + if enable_model_improvements is None and 'enableModelImprovements' in kwargs: + enable_model_improvements = kwargs['enableModelImprovements'] + if failure_reason is None and 'failureReason' in kwargs: + failure_reason = kwargs['failureReason'] + if idle_session_ttl_in_seconds is None and 'idleSessionTtlInSeconds' in kwargs: + idle_session_ttl_in_seconds = kwargs['idleSessionTtlInSeconds'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if nlu_intent_confidence_threshold is None and 'nluIntentConfidenceThreshold' in kwargs: + nlu_intent_confidence_threshold = kwargs['nluIntentConfidenceThreshold'] + if process_behavior is None and 'processBehavior' in kwargs: + process_behavior = kwargs['processBehavior'] + if voice_id is None and 'voiceId' in kwargs: + voice_id = kwargs['voiceId'] + if abort_statement is not None: - pulumi.set(__self__, "abort_statement", abort_statement) + _setter("abort_statement", abort_statement) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if checksum is not None: - pulumi.set(__self__, "checksum", checksum) + _setter("checksum", checksum) if child_directed is not None: - pulumi.set(__self__, "child_directed", child_directed) + _setter("child_directed", child_directed) if clarification_prompt is not None: - pulumi.set(__self__, "clarification_prompt", clarification_prompt) + _setter("clarification_prompt", clarification_prompt) if create_version is not None: - pulumi.set(__self__, "create_version", create_version) + _setter("create_version", create_version) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if detect_sentiment is not None: - pulumi.set(__self__, "detect_sentiment", detect_sentiment) + _setter("detect_sentiment", detect_sentiment) if enable_model_improvements is not None: - pulumi.set(__self__, "enable_model_improvements", enable_model_improvements) + _setter("enable_model_improvements", enable_model_improvements) if failure_reason is not None: - pulumi.set(__self__, "failure_reason", failure_reason) + _setter("failure_reason", failure_reason) if idle_session_ttl_in_seconds is not None: - pulumi.set(__self__, "idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) + _setter("idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) if intents is not None: - pulumi.set(__self__, "intents", intents) + _setter("intents", intents) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if locale is not None: - pulumi.set(__self__, "locale", locale) + _setter("locale", locale) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nlu_intent_confidence_threshold is not None: - pulumi.set(__self__, "nlu_intent_confidence_threshold", nlu_intent_confidence_threshold) + _setter("nlu_intent_confidence_threshold", nlu_intent_confidence_threshold) if process_behavior is not None: - pulumi.set(__self__, "process_behavior", process_behavior) + _setter("process_behavior", process_behavior) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if voice_id is not None: - pulumi.set(__self__, "voice_id", voice_id) + _setter("voice_id", voice_id) @property @pulumi.getter(name="abortStatement") @@ -735,6 +875,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -763,12 +907,14 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = BotArgs.__new__(BotArgs) + abort_statement = _utilities.configure(abort_statement, BotAbortStatementArgs, True) if abort_statement is None and not opts.urn: raise TypeError("Missing required property 'abort_statement'") __props__.__dict__["abort_statement"] = abort_statement if child_directed is None and not opts.urn: raise TypeError("Missing required property 'child_directed'") __props__.__dict__["child_directed"] = child_directed + clarification_prompt = _utilities.configure(clarification_prompt, BotClarificationPromptArgs, True) __props__.__dict__["clarification_prompt"] = clarification_prompt __props__.__dict__["create_version"] = create_version __props__.__dict__["description"] = description diff --git a/sdk/python/pulumi_aws/lex/bot_alias.py b/sdk/python/pulumi_aws/lex/bot_alias.py index f1891dfcd6b..11c5b9cd8cd 100644 --- a/sdk/python/pulumi_aws/lex/bot_alias.py +++ b/sdk/python/pulumi_aws/lex/bot_alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,43 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description of the alias. Must be less than or equal to 200 characters in length. :param pulumi.Input[str] name: The name of the alias. The name is not case sensitive. Must be less than or equal to 100 characters in length. """ - pulumi.set(__self__, "bot_name", bot_name) - pulumi.set(__self__, "bot_version", bot_version) + BotAliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bot_name=bot_name, + bot_version=bot_version, + conversation_logs=conversation_logs, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bot_name: Optional[pulumi.Input[str]] = None, + bot_version: Optional[pulumi.Input[str]] = None, + conversation_logs: Optional[pulumi.Input['BotAliasConversationLogsArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bot_name is None and 'botName' in kwargs: + bot_name = kwargs['botName'] + if bot_name is None: + raise TypeError("Missing 'bot_name' argument") + if bot_version is None and 'botVersion' in kwargs: + bot_version = kwargs['botVersion'] + if bot_version is None: + raise TypeError("Missing 'bot_version' argument") + if conversation_logs is None and 'conversationLogs' in kwargs: + conversation_logs = kwargs['conversationLogs'] + + _setter("bot_name", bot_name) + _setter("bot_version", bot_version) if conversation_logs is not None: - pulumi.set(__self__, "conversation_logs", conversation_logs) + _setter("conversation_logs", conversation_logs) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="botName") @@ -123,24 +152,61 @@ def __init__(__self__, *, :param pulumi.Input[str] last_updated_date: The date that the bot alias was updated. When you create a resource, the creation date and the last updated date are the same. :param pulumi.Input[str] name: The name of the alias. The name is not case sensitive. Must be less than or equal to 100 characters in length. """ + _BotAliasState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bot_name=bot_name, + bot_version=bot_version, + checksum=checksum, + conversation_logs=conversation_logs, + created_date=created_date, + description=description, + last_updated_date=last_updated_date, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bot_name: Optional[pulumi.Input[str]] = None, + bot_version: Optional[pulumi.Input[str]] = None, + checksum: Optional[pulumi.Input[str]] = None, + conversation_logs: Optional[pulumi.Input['BotAliasConversationLogsArgs']] = None, + created_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bot_name is None and 'botName' in kwargs: + bot_name = kwargs['botName'] + if bot_version is None and 'botVersion' in kwargs: + bot_version = kwargs['botVersion'] + if conversation_logs is None and 'conversationLogs' in kwargs: + conversation_logs = kwargs['conversationLogs'] + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bot_name is not None: - pulumi.set(__self__, "bot_name", bot_name) + _setter("bot_name", bot_name) if bot_version is not None: - pulumi.set(__self__, "bot_version", bot_version) + _setter("bot_version", bot_version) if checksum is not None: - pulumi.set(__self__, "checksum", checksum) + _setter("checksum", checksum) if conversation_logs is not None: - pulumi.set(__self__, "conversation_logs", conversation_logs) + _setter("conversation_logs", conversation_logs) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -336,6 +402,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BotAliasArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -361,6 +431,7 @@ def _internal_init(__self__, if bot_version is None and not opts.urn: raise TypeError("Missing required property 'bot_version'") __props__.__dict__["bot_version"] = bot_version + conversation_logs = _utilities.configure(conversation_logs, BotAliasConversationLogsArgs, True) __props__.__dict__["conversation_logs"] = conversation_logs __props__.__dict__["description"] = description __props__.__dict__["name"] = name diff --git a/sdk/python/pulumi_aws/lex/get_bot.py b/sdk/python/pulumi_aws/lex/get_bot.py index 0931ec2da95..f9441d8c7a4 100644 --- a/sdk/python/pulumi_aws/lex/get_bot.py +++ b/sdk/python/pulumi_aws/lex/get_bot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/lex/get_bot_alias.py b/sdk/python/pulumi_aws/lex/get_bot_alias.py index 96f8056a5df..89d576506ff 100644 --- a/sdk/python/pulumi_aws/lex/get_bot_alias.py +++ b/sdk/python/pulumi_aws/lex/get_bot_alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/lex/get_intent.py b/sdk/python/pulumi_aws/lex/get_intent.py index f01564fb593..9d831e95e78 100644 --- a/sdk/python/pulumi_aws/lex/get_intent.py +++ b/sdk/python/pulumi_aws/lex/get_intent.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/lex/get_slot_type.py b/sdk/python/pulumi_aws/lex/get_slot_type.py index 14f09207fc0..55c66127743 100644 --- a/sdk/python/pulumi_aws/lex/get_slot_type.py +++ b/sdk/python/pulumi_aws/lex/get_slot_type.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/lex/intent.py b/sdk/python/pulumi_aws/lex/intent.py index 9d338201ea2..4a993159423 100644 --- a/sdk/python/pulumi_aws/lex/intent.py +++ b/sdk/python/pulumi_aws/lex/intent.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -65,29 +65,82 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['IntentSlotArgs']]] slots: An list of intent slots. At runtime, Amazon Lex elicits required slot values from the user using prompts defined in the slots. Attributes are documented under slot. """ - pulumi.set(__self__, "fulfillment_activity", fulfillment_activity) + IntentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fulfillment_activity=fulfillment_activity, + conclusion_statement=conclusion_statement, + confirmation_prompt=confirmation_prompt, + create_version=create_version, + description=description, + dialog_code_hook=dialog_code_hook, + follow_up_prompt=follow_up_prompt, + name=name, + parent_intent_signature=parent_intent_signature, + rejection_statement=rejection_statement, + sample_utterances=sample_utterances, + slots=slots, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fulfillment_activity: Optional[pulumi.Input['IntentFulfillmentActivityArgs']] = None, + conclusion_statement: Optional[pulumi.Input['IntentConclusionStatementArgs']] = None, + confirmation_prompt: Optional[pulumi.Input['IntentConfirmationPromptArgs']] = None, + create_version: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + dialog_code_hook: Optional[pulumi.Input['IntentDialogCodeHookArgs']] = None, + follow_up_prompt: Optional[pulumi.Input['IntentFollowUpPromptArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + parent_intent_signature: Optional[pulumi.Input[str]] = None, + rejection_statement: Optional[pulumi.Input['IntentRejectionStatementArgs']] = None, + sample_utterances: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + slots: Optional[pulumi.Input[Sequence[pulumi.Input['IntentSlotArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fulfillment_activity is None and 'fulfillmentActivity' in kwargs: + fulfillment_activity = kwargs['fulfillmentActivity'] + if fulfillment_activity is None: + raise TypeError("Missing 'fulfillment_activity' argument") + if conclusion_statement is None and 'conclusionStatement' in kwargs: + conclusion_statement = kwargs['conclusionStatement'] + if confirmation_prompt is None and 'confirmationPrompt' in kwargs: + confirmation_prompt = kwargs['confirmationPrompt'] + if create_version is None and 'createVersion' in kwargs: + create_version = kwargs['createVersion'] + if dialog_code_hook is None and 'dialogCodeHook' in kwargs: + dialog_code_hook = kwargs['dialogCodeHook'] + if follow_up_prompt is None and 'followUpPrompt' in kwargs: + follow_up_prompt = kwargs['followUpPrompt'] + if parent_intent_signature is None and 'parentIntentSignature' in kwargs: + parent_intent_signature = kwargs['parentIntentSignature'] + if rejection_statement is None and 'rejectionStatement' in kwargs: + rejection_statement = kwargs['rejectionStatement'] + if sample_utterances is None and 'sampleUtterances' in kwargs: + sample_utterances = kwargs['sampleUtterances'] + + _setter("fulfillment_activity", fulfillment_activity) if conclusion_statement is not None: - pulumi.set(__self__, "conclusion_statement", conclusion_statement) + _setter("conclusion_statement", conclusion_statement) if confirmation_prompt is not None: - pulumi.set(__self__, "confirmation_prompt", confirmation_prompt) + _setter("confirmation_prompt", confirmation_prompt) if create_version is not None: - pulumi.set(__self__, "create_version", create_version) + _setter("create_version", create_version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dialog_code_hook is not None: - pulumi.set(__self__, "dialog_code_hook", dialog_code_hook) + _setter("dialog_code_hook", dialog_code_hook) if follow_up_prompt is not None: - pulumi.set(__self__, "follow_up_prompt", follow_up_prompt) + _setter("follow_up_prompt", follow_up_prompt) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_intent_signature is not None: - pulumi.set(__self__, "parent_intent_signature", parent_intent_signature) + _setter("parent_intent_signature", parent_intent_signature) if rejection_statement is not None: - pulumi.set(__self__, "rejection_statement", rejection_statement) + _setter("rejection_statement", rejection_statement) if sample_utterances is not None: - pulumi.set(__self__, "sample_utterances", sample_utterances) + _setter("sample_utterances", sample_utterances) if slots is not None: - pulumi.set(__self__, "slots", slots) + _setter("slots", slots) @property @pulumi.getter(name="fulfillmentActivity") @@ -319,40 +372,105 @@ def __init__(__self__, *, from the user using prompts defined in the slots. Attributes are documented under slot. :param pulumi.Input[str] version: The version of the bot. """ + _IntentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + checksum=checksum, + conclusion_statement=conclusion_statement, + confirmation_prompt=confirmation_prompt, + create_version=create_version, + created_date=created_date, + description=description, + dialog_code_hook=dialog_code_hook, + follow_up_prompt=follow_up_prompt, + fulfillment_activity=fulfillment_activity, + last_updated_date=last_updated_date, + name=name, + parent_intent_signature=parent_intent_signature, + rejection_statement=rejection_statement, + sample_utterances=sample_utterances, + slots=slots, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + checksum: Optional[pulumi.Input[str]] = None, + conclusion_statement: Optional[pulumi.Input['IntentConclusionStatementArgs']] = None, + confirmation_prompt: Optional[pulumi.Input['IntentConfirmationPromptArgs']] = None, + create_version: Optional[pulumi.Input[bool]] = None, + created_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + dialog_code_hook: Optional[pulumi.Input['IntentDialogCodeHookArgs']] = None, + follow_up_prompt: Optional[pulumi.Input['IntentFollowUpPromptArgs']] = None, + fulfillment_activity: Optional[pulumi.Input['IntentFulfillmentActivityArgs']] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_intent_signature: Optional[pulumi.Input[str]] = None, + rejection_statement: Optional[pulumi.Input['IntentRejectionStatementArgs']] = None, + sample_utterances: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + slots: Optional[pulumi.Input[Sequence[pulumi.Input['IntentSlotArgs']]]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if conclusion_statement is None and 'conclusionStatement' in kwargs: + conclusion_statement = kwargs['conclusionStatement'] + if confirmation_prompt is None and 'confirmationPrompt' in kwargs: + confirmation_prompt = kwargs['confirmationPrompt'] + if create_version is None and 'createVersion' in kwargs: + create_version = kwargs['createVersion'] + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if dialog_code_hook is None and 'dialogCodeHook' in kwargs: + dialog_code_hook = kwargs['dialogCodeHook'] + if follow_up_prompt is None and 'followUpPrompt' in kwargs: + follow_up_prompt = kwargs['followUpPrompt'] + if fulfillment_activity is None and 'fulfillmentActivity' in kwargs: + fulfillment_activity = kwargs['fulfillmentActivity'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if parent_intent_signature is None and 'parentIntentSignature' in kwargs: + parent_intent_signature = kwargs['parentIntentSignature'] + if rejection_statement is None and 'rejectionStatement' in kwargs: + rejection_statement = kwargs['rejectionStatement'] + if sample_utterances is None and 'sampleUtterances' in kwargs: + sample_utterances = kwargs['sampleUtterances'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if checksum is not None: - pulumi.set(__self__, "checksum", checksum) + _setter("checksum", checksum) if conclusion_statement is not None: - pulumi.set(__self__, "conclusion_statement", conclusion_statement) + _setter("conclusion_statement", conclusion_statement) if confirmation_prompt is not None: - pulumi.set(__self__, "confirmation_prompt", confirmation_prompt) + _setter("confirmation_prompt", confirmation_prompt) if create_version is not None: - pulumi.set(__self__, "create_version", create_version) + _setter("create_version", create_version) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dialog_code_hook is not None: - pulumi.set(__self__, "dialog_code_hook", dialog_code_hook) + _setter("dialog_code_hook", dialog_code_hook) if follow_up_prompt is not None: - pulumi.set(__self__, "follow_up_prompt", follow_up_prompt) + _setter("follow_up_prompt", follow_up_prompt) if fulfillment_activity is not None: - pulumi.set(__self__, "fulfillment_activity", fulfillment_activity) + _setter("fulfillment_activity", fulfillment_activity) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_intent_signature is not None: - pulumi.set(__self__, "parent_intent_signature", parent_intent_signature) + _setter("parent_intent_signature", parent_intent_signature) if rejection_statement is not None: - pulumi.set(__self__, "rejection_statement", rejection_statement) + _setter("rejection_statement", rejection_statement) if sample_utterances is not None: - pulumi.set(__self__, "sample_utterances", sample_utterances) + _setter("sample_utterances", sample_utterances) if slots is not None: - pulumi.set(__self__, "slots", slots) + _setter("slots", slots) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -677,6 +795,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IntentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -703,17 +825,23 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = IntentArgs.__new__(IntentArgs) + conclusion_statement = _utilities.configure(conclusion_statement, IntentConclusionStatementArgs, True) __props__.__dict__["conclusion_statement"] = conclusion_statement + confirmation_prompt = _utilities.configure(confirmation_prompt, IntentConfirmationPromptArgs, True) __props__.__dict__["confirmation_prompt"] = confirmation_prompt __props__.__dict__["create_version"] = create_version __props__.__dict__["description"] = description + dialog_code_hook = _utilities.configure(dialog_code_hook, IntentDialogCodeHookArgs, True) __props__.__dict__["dialog_code_hook"] = dialog_code_hook + follow_up_prompt = _utilities.configure(follow_up_prompt, IntentFollowUpPromptArgs, True) __props__.__dict__["follow_up_prompt"] = follow_up_prompt + fulfillment_activity = _utilities.configure(fulfillment_activity, IntentFulfillmentActivityArgs, True) if fulfillment_activity is None and not opts.urn: raise TypeError("Missing required property 'fulfillment_activity'") __props__.__dict__["fulfillment_activity"] = fulfillment_activity __props__.__dict__["name"] = name __props__.__dict__["parent_intent_signature"] = parent_intent_signature + rejection_statement = _utilities.configure(rejection_statement, IntentRejectionStatementArgs, True) __props__.__dict__["rejection_statement"] = rejection_statement __props__.__dict__["sample_utterances"] = sample_utterances __props__.__dict__["slots"] = slots diff --git a/sdk/python/pulumi_aws/lex/outputs.py b/sdk/python/pulumi_aws/lex/outputs.py index a1160acb49d..c5c76618a2c 100644 --- a/sdk/python/pulumi_aws/lex/outputs.py +++ b/sdk/python/pulumi_aws/lex/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -65,19 +65,42 @@ def __init__(__self__, *, messages: Sequence['outputs.BotAbortStatementMessage'], response_card: Optional[str] = None): """ + :param Sequence['BotAbortStatementMessageArgs'] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. :param str response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). """ - pulumi.set(__self__, "messages", messages) + BotAbortStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + messages: Optional[Sequence['outputs.BotAbortStatementMessage']] = None, + response_card: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter def messages(self) -> Sequence['outputs.BotAbortStatementMessage']: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. + """ return pulumi.get(self, "messages") @property @@ -87,8 +110,6 @@ def response_card(self) -> Optional[str]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). """ return pulumi.get(self, "response_card") @@ -124,10 +145,33 @@ def __init__(__self__, *, :param int group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + BotAbortStatementMessage._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + group_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -183,9 +227,28 @@ def __init__(__self__, *, :param str iam_role_arn: The Amazon Resource Name (ARN) of the IAM role used to write your logs to CloudWatch Logs or an S3 bucket. Must be between 20 and 2048 characters in length. :param Sequence['BotAliasConversationLogsLogSettingArgs'] log_settings: The settings for your conversation logs. You can log text, audio, or both. Attributes are documented under log_settings. """ - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + BotAliasConversationLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam_role_arn=iam_role_arn, + log_settings=log_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam_role_arn: Optional[str] = None, + log_settings: Optional[Sequence['outputs.BotAliasConversationLogsLogSetting']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if iam_role_arn is None: + raise TypeError("Missing 'iam_role_arn' argument") + if log_settings is None and 'logSettings' in kwargs: + log_settings = kwargs['logSettings'] + + _setter("iam_role_arn", iam_role_arn) if log_settings is not None: - pulumi.set(__self__, "log_settings", log_settings) + _setter("log_settings", log_settings) @property @pulumi.getter(name="iamRoleArn") @@ -242,13 +305,46 @@ def __init__(__self__, *, :param str kms_key_arn: The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an S3 bucket. This can only be specified when `destination` is set to `S3`. Must be between 20 and 2048 characters in length. :param str resource_prefix: The prefix of the S3 object key for `AUDIO` logs or the log stream name for `TEXT` logs. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "log_type", log_type) - pulumi.set(__self__, "resource_arn", resource_arn) + BotAliasConversationLogsLogSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + log_type=log_type, + resource_arn=resource_arn, + kms_key_arn=kms_key_arn, + resource_prefix=resource_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + log_type: Optional[str] = None, + resource_arn: Optional[str] = None, + kms_key_arn: Optional[str] = None, + resource_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if resource_prefix is None and 'resourcePrefix' in kwargs: + resource_prefix = kwargs['resourcePrefix'] + + _setter("destination", destination) + _setter("log_type", log_type) + _setter("resource_arn", resource_arn) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if resource_prefix is not None: - pulumi.set(__self__, "resource_prefix", resource_prefix) + _setter("resource_prefix", resource_prefix) @property @pulumi.getter @@ -318,16 +414,40 @@ def __init__(__self__, *, response_card: Optional[str] = None): """ :param int max_attempts: The number of times to prompt the user for information. + :param Sequence['BotClarificationPromptMessageArgs'] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. :param str response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). """ - pulumi.set(__self__, "max_attempts", max_attempts) - pulumi.set(__self__, "messages", messages) + BotClarificationPrompt._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_attempts=max_attempts, + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_attempts: Optional[int] = None, + messages: Optional[Sequence['outputs.BotClarificationPromptMessage']] = None, + response_card: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_attempts is None and 'maxAttempts' in kwargs: + max_attempts = kwargs['maxAttempts'] + if max_attempts is None: + raise TypeError("Missing 'max_attempts' argument") + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("max_attempts", max_attempts) + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter(name="maxAttempts") @@ -340,6 +460,11 @@ def max_attempts(self) -> int: @property @pulumi.getter def messages(self) -> Sequence['outputs.BotClarificationPromptMessage']: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. + """ return pulumi.get(self, "messages") @property @@ -349,8 +474,6 @@ def response_card(self) -> Optional[str]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). """ return pulumi.get(self, "response_card") @@ -386,10 +509,33 @@ def __init__(__self__, *, :param int group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + BotClarificationPromptMessage._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + group_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -445,8 +591,29 @@ def __init__(__self__, *, :param str intent_name: The name of the intent. Must be less than or equal to 100 characters in length. :param str intent_version: The version of the intent. Must be less than or equal to 64 characters in length. """ - pulumi.set(__self__, "intent_name", intent_name) - pulumi.set(__self__, "intent_version", intent_version) + BotIntent._configure( + lambda key, value: pulumi.set(__self__, key, value), + intent_name=intent_name, + intent_version=intent_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + intent_name: Optional[str] = None, + intent_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if intent_name is None and 'intentName' in kwargs: + intent_name = kwargs['intentName'] + if intent_name is None: + raise TypeError("Missing 'intent_name' argument") + if intent_version is None and 'intentVersion' in kwargs: + intent_version = kwargs['intentVersion'] + if intent_version is None: + raise TypeError("Missing 'intent_version' argument") + + _setter("intent_name", intent_name) + _setter("intent_version", intent_version) @property @pulumi.getter(name="intentName") @@ -488,21 +655,42 @@ def __init__(__self__, *, messages: Sequence['outputs.IntentConclusionStatementMessage'], response_card: Optional[str] = None): """ + :param Sequence['IntentConclusionStatementMessageArgs'] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param str response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "messages", messages) + IntentConclusionStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + messages: Optional[Sequence['outputs.IntentConclusionStatementMessage']] = None, + response_card: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter def messages(self) -> Sequence['outputs.IntentConclusionStatementMessage']: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @property @@ -512,10 +700,6 @@ def response_card(self) -> Optional[str]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -551,10 +735,33 @@ def __init__(__self__, *, :param int group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentConclusionStatementMessage._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + group_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -609,18 +816,40 @@ def __init__(__self__, *, response_card: Optional[str] = None): """ :param int max_attempts: The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). + :param Sequence['IntentConfirmationPromptMessageArgs'] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param str response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "max_attempts", max_attempts) - pulumi.set(__self__, "messages", messages) + IntentConfirmationPrompt._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_attempts=max_attempts, + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_attempts: Optional[int] = None, + messages: Optional[Sequence['outputs.IntentConfirmationPromptMessage']] = None, + response_card: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_attempts is None and 'maxAttempts' in kwargs: + max_attempts = kwargs['maxAttempts'] + if max_attempts is None: + raise TypeError("Missing 'max_attempts' argument") + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("max_attempts", max_attempts) + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter(name="maxAttempts") @@ -633,6 +862,11 @@ def max_attempts(self) -> int: @property @pulumi.getter def messages(self) -> Sequence['outputs.IntentConfirmationPromptMessage']: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @property @@ -642,10 +876,6 @@ def response_card(self) -> Optional[str]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -681,10 +911,33 @@ def __init__(__self__, *, :param int group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentConfirmationPromptMessage._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + group_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -740,8 +993,27 @@ def __init__(__self__, *, [Using Lambda Functions](https://docs.aws.amazon.com/lex/latest/dg/using-lambda.html). Must be less than or equal to 5 characters in length. :param str uri: The Amazon Resource Name (ARN) of the Lambda function. """ - pulumi.set(__self__, "message_version", message_version) - pulumi.set(__self__, "uri", uri) + IntentDialogCodeHook._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_version=message_version, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_version: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_version is None and 'messageVersion' in kwargs: + message_version = kwargs['messageVersion'] + if message_version is None: + raise TypeError("Missing 'message_version' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("message_version", message_version) + _setter("uri", uri) @property @pulumi.getter(name="messageVersion") @@ -790,8 +1062,27 @@ def __init__(__self__, *, Amazon Lex responds with this statement to acknowledge that the intent was canceled. Attributes are documented below under statement. """ - pulumi.set(__self__, "prompt", prompt) - pulumi.set(__self__, "rejection_statement", rejection_statement) + IntentFollowUpPrompt._configure( + lambda key, value: pulumi.set(__self__, key, value), + prompt=prompt, + rejection_statement=rejection_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prompt: Optional['outputs.IntentFollowUpPromptPrompt'] = None, + rejection_statement: Optional['outputs.IntentFollowUpPromptRejectionStatement'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prompt is None: + raise TypeError("Missing 'prompt' argument") + if rejection_statement is None and 'rejectionStatement' in kwargs: + rejection_statement = kwargs['rejectionStatement'] + if rejection_statement is None: + raise TypeError("Missing 'rejection_statement' argument") + + _setter("prompt", prompt) + _setter("rejection_statement", rejection_statement) @property @pulumi.getter @@ -846,10 +1137,33 @@ def __init__(__self__, *, slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "max_attempts", max_attempts) - pulumi.set(__self__, "messages", messages) + IntentFollowUpPromptPrompt._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_attempts=max_attempts, + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_attempts: Optional[int] = None, + messages: Optional[Sequence['outputs.IntentFollowUpPromptPromptMessage']] = None, + response_card: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_attempts is None and 'maxAttempts' in kwargs: + max_attempts = kwargs['maxAttempts'] + if max_attempts is None: + raise TypeError("Missing 'max_attempts' argument") + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("max_attempts", max_attempts) + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter(name="maxAttempts") @@ -911,10 +1225,33 @@ def __init__(__self__, *, :param int group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentFollowUpPromptPromptMessage._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + group_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -965,21 +1302,42 @@ def __init__(__self__, *, messages: Sequence['outputs.IntentFollowUpPromptRejectionStatementMessage'], response_card: Optional[str] = None): """ + :param Sequence['IntentFollowUpPromptRejectionStatementMessageArgs'] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param str response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "messages", messages) + IntentFollowUpPromptRejectionStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + messages: Optional[Sequence['outputs.IntentFollowUpPromptRejectionStatementMessage']] = None, + response_card: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter def messages(self) -> Sequence['outputs.IntentFollowUpPromptRejectionStatementMessage']: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @property @@ -989,10 +1347,6 @@ def response_card(self) -> Optional[str]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -1028,10 +1382,33 @@ def __init__(__self__, *, :param int group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentFollowUpPromptRejectionStatementMessage._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + group_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -1087,9 +1464,26 @@ def __init__(__self__, *, :param 'IntentFulfillmentActivityCodeHookArgs' code_hook: A description of the Lambda function that is run to fulfill the intent. Required if type is CodeHook. Attributes are documented under code_hook. """ - pulumi.set(__self__, "type", type) + IntentFulfillmentActivity._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + code_hook=code_hook, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + code_hook: Optional['outputs.IntentFulfillmentActivityCodeHook'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if code_hook is None and 'codeHook' in kwargs: + code_hook = kwargs['codeHook'] + + _setter("type", type) if code_hook is not None: - pulumi.set(__self__, "code_hook", code_hook) + _setter("code_hook", code_hook) @property @pulumi.getter @@ -1138,8 +1532,27 @@ def __init__(__self__, *, [Using Lambda Functions](https://docs.aws.amazon.com/lex/latest/dg/using-lambda.html). Must be less than or equal to 5 characters in length. :param str uri: The Amazon Resource Name (ARN) of the Lambda function. """ - pulumi.set(__self__, "message_version", message_version) - pulumi.set(__self__, "uri", uri) + IntentFulfillmentActivityCodeHook._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_version=message_version, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_version: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_version is None and 'messageVersion' in kwargs: + message_version = kwargs['messageVersion'] + if message_version is None: + raise TypeError("Missing 'message_version' argument") + if uri is None: + raise TypeError("Missing 'uri' argument") + + _setter("message_version", message_version) + _setter("uri", uri) @property @pulumi.getter(name="messageVersion") @@ -1183,21 +1596,42 @@ def __init__(__self__, *, messages: Sequence['outputs.IntentRejectionStatementMessage'], response_card: Optional[str] = None): """ + :param Sequence['IntentRejectionStatementMessageArgs'] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param str response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "messages", messages) + IntentRejectionStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + messages: Optional[Sequence['outputs.IntentRejectionStatementMessage']] = None, + response_card: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter def messages(self) -> Sequence['outputs.IntentRejectionStatementMessage']: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @property @@ -1207,10 +1641,6 @@ def response_card(self) -> Optional[str]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -1246,10 +1676,33 @@ def __init__(__self__, *, :param int group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentRejectionStatementMessage._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + group_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -1336,21 +1789,66 @@ def __init__(__self__, *, :param 'IntentSlotValueElicitationPromptArgs' value_elicitation_prompt: The prompt that Amazon Lex uses to elicit the slot value from the user. Attributes are documented under prompt. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "slot_constraint", slot_constraint) - pulumi.set(__self__, "slot_type", slot_type) + IntentSlot._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + slot_constraint=slot_constraint, + slot_type=slot_type, + description=description, + priority=priority, + response_card=response_card, + sample_utterances=sample_utterances, + slot_type_version=slot_type_version, + value_elicitation_prompt=value_elicitation_prompt, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + slot_constraint: Optional[str] = None, + slot_type: Optional[str] = None, + description: Optional[str] = None, + priority: Optional[int] = None, + response_card: Optional[str] = None, + sample_utterances: Optional[Sequence[str]] = None, + slot_type_version: Optional[str] = None, + value_elicitation_prompt: Optional['outputs.IntentSlotValueElicitationPrompt'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if slot_constraint is None and 'slotConstraint' in kwargs: + slot_constraint = kwargs['slotConstraint'] + if slot_constraint is None: + raise TypeError("Missing 'slot_constraint' argument") + if slot_type is None and 'slotType' in kwargs: + slot_type = kwargs['slotType'] + if slot_type is None: + raise TypeError("Missing 'slot_type' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + if sample_utterances is None and 'sampleUtterances' in kwargs: + sample_utterances = kwargs['sampleUtterances'] + if slot_type_version is None and 'slotTypeVersion' in kwargs: + slot_type_version = kwargs['slotTypeVersion'] + if value_elicitation_prompt is None and 'valueElicitationPrompt' in kwargs: + value_elicitation_prompt = kwargs['valueElicitationPrompt'] + + _setter("name", name) + _setter("slot_constraint", slot_constraint) + _setter("slot_type", slot_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) if sample_utterances is not None: - pulumi.set(__self__, "sample_utterances", sample_utterances) + _setter("sample_utterances", sample_utterances) if slot_type_version is not None: - pulumi.set(__self__, "slot_type_version", slot_type_version) + _setter("slot_type_version", slot_type_version) if value_elicitation_prompt is not None: - pulumi.set(__self__, "value_elicitation_prompt", value_elicitation_prompt) + _setter("value_elicitation_prompt", value_elicitation_prompt) @property @pulumi.getter @@ -1461,18 +1959,40 @@ def __init__(__self__, *, response_card: Optional[str] = None): """ :param int max_attempts: The number of times to prompt the user for information. Must be a number between 1 and 5 (inclusive). + :param Sequence['IntentSlotValueElicitationPromptMessageArgs'] messages: A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. :param str response_card: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ - pulumi.set(__self__, "max_attempts", max_attempts) - pulumi.set(__self__, "messages", messages) + IntentSlotValueElicitationPrompt._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_attempts=max_attempts, + messages=messages, + response_card=response_card, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_attempts: Optional[int] = None, + messages: Optional[Sequence['outputs.IntentSlotValueElicitationPromptMessage']] = None, + response_card: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_attempts is None and 'maxAttempts' in kwargs: + max_attempts = kwargs['maxAttempts'] + if max_attempts is None: + raise TypeError("Missing 'max_attempts' argument") + if messages is None: + raise TypeError("Missing 'messages' argument") + if response_card is None and 'responseCard' in kwargs: + response_card = kwargs['responseCard'] + + _setter("max_attempts", max_attempts) + _setter("messages", messages) if response_card is not None: - pulumi.set(__self__, "response_card", response_card) + _setter("response_card", response_card) @property @pulumi.getter(name="maxAttempts") @@ -1485,6 +2005,11 @@ def max_attempts(self) -> int: @property @pulumi.getter def messages(self) -> Sequence['outputs.IntentSlotValueElicitationPromptMessage']: + """ + A set of messages, each of which provides a message string and its type. + You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML). + Attributes are documented under message. Must contain between 1 and 15 messages. + """ return pulumi.get(self, "messages") @property @@ -1494,10 +2019,6 @@ def response_card(self) -> Optional[str]: The response card. Amazon Lex will substitute session attributes and slot values into the response card. For more information, see [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. - slot values into the response card. For more information, see - [Example: Using a Response Card](https://docs.aws.amazon.com/lex/latest/dg/ex-resp-card.html). Must be less than or equal to 50000 characters in length. """ return pulumi.get(self, "response_card") @@ -1533,10 +2054,33 @@ def __init__(__self__, *, :param int group_number: Identifies the message group that the message belongs to. When a group is assigned to a message, Amazon Lex returns one message from each group in the response. Must be a number between 1 and 5 (inclusive). """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) + IntentSlotValueElicitationPromptMessage._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + group_number=group_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + group_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if group_number is None and 'groupNumber' in kwargs: + group_number = kwargs['groupNumber'] + + _setter("content", content) + _setter("content_type", content_type) if group_number is not None: - pulumi.set(__self__, "group_number", group_number) + _setter("group_number", group_number) @property @pulumi.getter @@ -1573,9 +2117,24 @@ def __init__(__self__, *, :param str value: The value of the slot type. Must be less than or equal to 140 characters in length. :param Sequence[str] synonyms: Additional values related to the slot type value. Each item must be less than or equal to 140 characters in length. """ - pulumi.set(__self__, "value", value) + SlotTypeEnumerationValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + synonyms=synonyms, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[str] = None, + synonyms: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) if synonyms is not None: - pulumi.set(__self__, "synonyms", synonyms) + _setter("synonyms", synonyms) @property @pulumi.getter @@ -1618,7 +2177,22 @@ def __init__(__self__, *, """ :param bool child_directed: (Required) - For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying true or false in the childDirected field. """ - pulumi.set(__self__, "child_directed", child_directed) + V2modelsBotDataPrivacy._configure( + lambda key, value: pulumi.set(__self__, key, value), + child_directed=child_directed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + child_directed: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if child_directed is None and 'childDirected' in kwargs: + child_directed = kwargs['childDirected'] + if child_directed is None: + raise TypeError("Missing 'child_directed' argument") + + _setter("child_directed", child_directed) @property @pulumi.getter(name="childDirected") @@ -1663,11 +2237,44 @@ def __init__(__self__, *, :param str name: Name of the bot. The bot name must be unique in the account that creates the bot. Type String. Length Constraints: Minimum length of 1. Maximum length of 100. :param str version: (Required) - Version of a bot that is a member of this network of bots. """ - pulumi.set(__self__, "alias_id", alias_id) - pulumi.set(__self__, "alias_name", alias_name) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "version", version) + V2modelsBotMember._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias_id=alias_id, + alias_name=alias_name, + id=id, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias_id: Optional[str] = None, + alias_name: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alias_id is None and 'aliasId' in kwargs: + alias_id = kwargs['aliasId'] + if alias_id is None: + raise TypeError("Missing 'alias_id' argument") + if alias_name is None and 'aliasName' in kwargs: + alias_name = kwargs['aliasName'] + if alias_name is None: + raise TypeError("Missing 'alias_name' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("alias_id", alias_id) + _setter("alias_name", alias_name) + _setter("id", id) + _setter("name", name) + _setter("version", version) @property @pulumi.getter(name="aliasId") @@ -1716,12 +2323,27 @@ def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, update: Optional[str] = None): + V2modelsBotTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -1744,8 +2366,25 @@ class GetSlotTypeEnumerationValueResult(dict): def __init__(__self__, *, synonyms: Sequence[str], value: str): - pulumi.set(__self__, "synonyms", synonyms) - pulumi.set(__self__, "value", value) + GetSlotTypeEnumerationValueResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + synonyms=synonyms, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + synonyms: Optional[Sequence[str]] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if synonyms is None: + raise TypeError("Missing 'synonyms' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("synonyms", synonyms) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/lex/slot_type.py b/sdk/python/pulumi_aws/lex/slot_type.py index f835aea69ed..e455b593795 100644 --- a/sdk/python/pulumi_aws/lex/slot_type.py +++ b/sdk/python/pulumi_aws/lex/slot_type.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -36,15 +36,42 @@ def __init__(__self__, *, value is similar to the slot value. `TOP_RESOLUTION` returns the first value in the resolution list if there is a resolution list for the slot, otherwise null is returned. Defaults to `ORIGINAL_VALUE`. """ - pulumi.set(__self__, "enumeration_values", enumeration_values) + SlotTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enumeration_values=enumeration_values, + create_version=create_version, + description=description, + name=name, + value_selection_strategy=value_selection_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enumeration_values: Optional[pulumi.Input[Sequence[pulumi.Input['SlotTypeEnumerationValueArgs']]]] = None, + create_version: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + value_selection_strategy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enumeration_values is None and 'enumerationValues' in kwargs: + enumeration_values = kwargs['enumerationValues'] + if enumeration_values is None: + raise TypeError("Missing 'enumeration_values' argument") + if create_version is None and 'createVersion' in kwargs: + create_version = kwargs['createVersion'] + if value_selection_strategy is None and 'valueSelectionStrategy' in kwargs: + value_selection_strategy = kwargs['valueSelectionStrategy'] + + _setter("enumeration_values", enumeration_values) if create_version is not None: - pulumi.set(__self__, "create_version", create_version) + _setter("create_version", create_version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value_selection_strategy is not None: - pulumi.set(__self__, "value_selection_strategy", value_selection_strategy) + _setter("value_selection_strategy", value_selection_strategy) @property @pulumi.getter(name="enumerationValues") @@ -146,24 +173,61 @@ def __init__(__self__, *, if there is a resolution list for the slot, otherwise null is returned. Defaults to `ORIGINAL_VALUE`. :param pulumi.Input[str] version: The version of the slot type. """ + _SlotTypeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + checksum=checksum, + create_version=create_version, + created_date=created_date, + description=description, + enumeration_values=enumeration_values, + last_updated_date=last_updated_date, + name=name, + value_selection_strategy=value_selection_strategy, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + checksum: Optional[pulumi.Input[str]] = None, + create_version: Optional[pulumi.Input[bool]] = None, + created_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + enumeration_values: Optional[pulumi.Input[Sequence[pulumi.Input['SlotTypeEnumerationValueArgs']]]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + value_selection_strategy: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_version is None and 'createVersion' in kwargs: + create_version = kwargs['createVersion'] + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if enumeration_values is None and 'enumerationValues' in kwargs: + enumeration_values = kwargs['enumerationValues'] + if last_updated_date is None and 'lastUpdatedDate' in kwargs: + last_updated_date = kwargs['lastUpdatedDate'] + if value_selection_strategy is None and 'valueSelectionStrategy' in kwargs: + value_selection_strategy = kwargs['valueSelectionStrategy'] + if checksum is not None: - pulumi.set(__self__, "checksum", checksum) + _setter("checksum", checksum) if create_version is not None: - pulumi.set(__self__, "create_version", create_version) + _setter("create_version", create_version) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enumeration_values is not None: - pulumi.set(__self__, "enumeration_values", enumeration_values) + _setter("enumeration_values", enumeration_values) if last_updated_date is not None: - pulumi.set(__self__, "last_updated_date", last_updated_date) + _setter("last_updated_date", last_updated_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value_selection_strategy is not None: - pulumi.set(__self__, "value_selection_strategy", value_selection_strategy) + _setter("value_selection_strategy", value_selection_strategy) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -406,6 +470,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SlotTypeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lex/v2models_bot.py b/sdk/python/pulumi_aws/lex/v2models_bot.py index 3bf7a219491..5168058d10f 100644 --- a/sdk/python/pulumi_aws/lex/v2models_bot.py +++ b/sdk/python/pulumi_aws/lex/v2models_bot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -38,24 +38,65 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the bot. The bot name must be unique in the account that creates the bot. Type String. Length Constraints: Minimum length of 1. Maximum length of 100. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] test_bot_alias_tags: List of tags to add to the test alias for a bot. You can only add tags when you create a bot. """ - pulumi.set(__self__, "idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) - pulumi.set(__self__, "role_arn", role_arn) + V2modelsBotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + idle_session_ttl_in_seconds=idle_session_ttl_in_seconds, + role_arn=role_arn, + data_privacies=data_privacies, + description=description, + members=members, + name=name, + tags=tags, + test_bot_alias_tags=test_bot_alias_tags, + timeouts=timeouts, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + idle_session_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + data_privacies: Optional[pulumi.Input[Sequence[pulumi.Input['V2modelsBotDataPrivacyArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input['V2modelsBotMemberArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + test_bot_alias_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['V2modelsBotTimeoutsArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if idle_session_ttl_in_seconds is None and 'idleSessionTtlInSeconds' in kwargs: + idle_session_ttl_in_seconds = kwargs['idleSessionTtlInSeconds'] + if idle_session_ttl_in_seconds is None: + raise TypeError("Missing 'idle_session_ttl_in_seconds' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if data_privacies is None and 'dataPrivacies' in kwargs: + data_privacies = kwargs['dataPrivacies'] + if test_bot_alias_tags is None and 'testBotAliasTags' in kwargs: + test_bot_alias_tags = kwargs['testBotAliasTags'] + + _setter("idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) + _setter("role_arn", role_arn) if data_privacies is not None: - pulumi.set(__self__, "data_privacies", data_privacies) + _setter("data_privacies", data_privacies) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if members is not None: - pulumi.set(__self__, "members", members) + _setter("members", members) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if test_bot_alias_tags is not None: - pulumi.set(__self__, "test_bot_alias_tags", test_bot_alias_tags) + _setter("test_bot_alias_tags", test_bot_alias_tags) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="idleSessionTtlInSeconds") @@ -198,33 +239,76 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] test_bot_alias_tags: List of tags to add to the test alias for a bot. You can only add tags when you create a bot. """ + _V2modelsBotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_privacies=data_privacies, + description=description, + idle_session_ttl_in_seconds=idle_session_ttl_in_seconds, + members=members, + name=name, + role_arn=role_arn, + tags=tags, + tags_all=tags_all, + test_bot_alias_tags=test_bot_alias_tags, + timeouts=timeouts, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + data_privacies: Optional[pulumi.Input[Sequence[pulumi.Input['V2modelsBotDataPrivacyArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + idle_session_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input['V2modelsBotMemberArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + test_bot_alias_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['V2modelsBotTimeoutsArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_privacies is None and 'dataPrivacies' in kwargs: + data_privacies = kwargs['dataPrivacies'] + if idle_session_ttl_in_seconds is None and 'idleSessionTtlInSeconds' in kwargs: + idle_session_ttl_in_seconds = kwargs['idleSessionTtlInSeconds'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if test_bot_alias_tags is None and 'testBotAliasTags' in kwargs: + test_bot_alias_tags = kwargs['testBotAliasTags'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if data_privacies is not None: - pulumi.set(__self__, "data_privacies", data_privacies) + _setter("data_privacies", data_privacies) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if idle_session_ttl_in_seconds is not None: - pulumi.set(__self__, "idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) + _setter("idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) if members is not None: - pulumi.set(__self__, "members", members) + _setter("members", members) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if test_bot_alias_tags is not None: - pulumi.set(__self__, "test_bot_alias_tags", test_bot_alias_tags) + _setter("test_bot_alias_tags", test_bot_alias_tags) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -457,6 +541,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + V2modelsBotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -493,6 +581,7 @@ def _internal_init(__self__, __props__.__dict__["role_arn"] = role_arn __props__.__dict__["tags"] = tags __props__.__dict__["test_bot_alias_tags"] = test_bot_alias_tags + timeouts = _utilities.configure(timeouts, V2modelsBotTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts __props__.__dict__["type"] = type __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/licensemanager/_inputs.py b/sdk/python/pulumi_aws/licensemanager/_inputs.py index e23f95bebc2..5f62c5dd1d2 100644 --- a/sdk/python/pulumi_aws/licensemanager/_inputs.py +++ b/sdk/python/pulumi_aws/licensemanager/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -35,8 +35,25 @@ def __init__(__self__, *, ``` :param Sequence[str] values: Set of values that are accepted for the given field. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLicenseGrantsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -96,8 +113,25 @@ def __init__(__self__, *, ``` :param Sequence[str] values: Set of values that are accepted for the given field. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetReceivedLicensesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/licensemanager/association.py b/sdk/python/pulumi_aws/licensemanager/association.py index c51b85b3b90..241460db29e 100644 --- a/sdk/python/pulumi_aws/licensemanager/association.py +++ b/sdk/python/pulumi_aws/licensemanager/association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AssociationArgs', 'Association'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] license_configuration_arn: ARN of the license configuration. :param pulumi.Input[str] resource_arn: ARN of the resource associated with the license configuration. """ - pulumi.set(__self__, "license_configuration_arn", license_configuration_arn) - pulumi.set(__self__, "resource_arn", resource_arn) + AssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + license_configuration_arn=license_configuration_arn, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + license_configuration_arn: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if license_configuration_arn is None and 'licenseConfigurationArn' in kwargs: + license_configuration_arn = kwargs['licenseConfigurationArn'] + if license_configuration_arn is None: + raise TypeError("Missing 'license_configuration_arn' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("license_configuration_arn", license_configuration_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="licenseConfigurationArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] license_configuration_arn: ARN of the license configuration. :param pulumi.Input[str] resource_arn: ARN of the resource associated with the license configuration. """ + _AssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + license_configuration_arn=license_configuration_arn, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + license_configuration_arn: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if license_configuration_arn is None and 'licenseConfigurationArn' in kwargs: + license_configuration_arn = kwargs['licenseConfigurationArn'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if license_configuration_arn is not None: - pulumi.set(__self__, "license_configuration_arn", license_configuration_arn) + _setter("license_configuration_arn", license_configuration_arn) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="licenseConfigurationArn") @@ -186,6 +224,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/licensemanager/get_license_grants.py b/sdk/python/pulumi_aws/licensemanager/get_license_grants.py index e94427207d9..0c2585bc9dd 100644 --- a/sdk/python/pulumi_aws/licensemanager/get_license_grants.py +++ b/sdk/python/pulumi_aws/licensemanager/get_license_grants.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/licensemanager/get_received_license.py b/sdk/python/pulumi_aws/licensemanager/get_received_license.py index 43ee276193b..a286e098621 100644 --- a/sdk/python/pulumi_aws/licensemanager/get_received_license.py +++ b/sdk/python/pulumi_aws/licensemanager/get_received_license.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/licensemanager/get_received_licenses.py b/sdk/python/pulumi_aws/licensemanager/get_received_licenses.py index 789aa4a304a..8d06da9e299 100644 --- a/sdk/python/pulumi_aws/licensemanager/get_received_licenses.py +++ b/sdk/python/pulumi_aws/licensemanager/get_received_licenses.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/licensemanager/license_configuration.py b/sdk/python/pulumi_aws/licensemanager/license_configuration.py index d12a7d4d8b7..7a008460f32 100644 --- a/sdk/python/pulumi_aws/licensemanager/license_configuration.py +++ b/sdk/python/pulumi_aws/licensemanager/license_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LicenseConfigurationArgs', 'LicenseConfiguration'] @@ -31,19 +31,52 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the license configuration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "license_counting_type", license_counting_type) + LicenseConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + license_counting_type=license_counting_type, + description=description, + license_count=license_count, + license_count_hard_limit=license_count_hard_limit, + license_rules=license_rules, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + license_counting_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + license_count: Optional[pulumi.Input[int]] = None, + license_count_hard_limit: Optional[pulumi.Input[bool]] = None, + license_rules: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if license_counting_type is None and 'licenseCountingType' in kwargs: + license_counting_type = kwargs['licenseCountingType'] + if license_counting_type is None: + raise TypeError("Missing 'license_counting_type' argument") + if license_count is None and 'licenseCount' in kwargs: + license_count = kwargs['licenseCount'] + if license_count_hard_limit is None and 'licenseCountHardLimit' in kwargs: + license_count_hard_limit = kwargs['licenseCountHardLimit'] + if license_rules is None and 'licenseRules' in kwargs: + license_rules = kwargs['licenseRules'] + + _setter("license_counting_type", license_counting_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if license_count is not None: - pulumi.set(__self__, "license_count", license_count) + _setter("license_count", license_count) if license_count_hard_limit is not None: - pulumi.set(__self__, "license_count_hard_limit", license_count_hard_limit) + _setter("license_count_hard_limit", license_count_hard_limit) if license_rules is not None: - pulumi.set(__self__, "license_rules", license_rules) + _setter("license_rules", license_rules) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="licenseCountingType") @@ -156,29 +189,70 @@ def __init__(__self__, *, :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. """ + _LicenseConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + license_count=license_count, + license_count_hard_limit=license_count_hard_limit, + license_counting_type=license_counting_type, + license_rules=license_rules, + name=name, + owner_account_id=owner_account_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + license_count: Optional[pulumi.Input[int]] = None, + license_count_hard_limit: Optional[pulumi.Input[bool]] = None, + license_counting_type: Optional[pulumi.Input[str]] = None, + license_rules: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if license_count is None and 'licenseCount' in kwargs: + license_count = kwargs['licenseCount'] + if license_count_hard_limit is None and 'licenseCountHardLimit' in kwargs: + license_count_hard_limit = kwargs['licenseCountHardLimit'] + if license_counting_type is None and 'licenseCountingType' in kwargs: + license_counting_type = kwargs['licenseCountingType'] + if license_rules is None and 'licenseRules' in kwargs: + license_rules = kwargs['licenseRules'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if license_count is not None: - pulumi.set(__self__, "license_count", license_count) + _setter("license_count", license_count) if license_count_hard_limit is not None: - pulumi.set(__self__, "license_count_hard_limit", license_count_hard_limit) + _setter("license_count_hard_limit", license_count_hard_limit) if license_counting_type is not None: - pulumi.set(__self__, "license_counting_type", license_counting_type) + _setter("license_counting_type", license_counting_type) if license_rules is not None: - pulumi.set(__self__, "license_rules", license_rules) + _setter("license_rules", license_rules) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -425,6 +499,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LicenseConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/licensemanager/license_grant.py b/sdk/python/pulumi_aws/licensemanager/license_grant.py index f46444cc700..2d49566ab24 100644 --- a/sdk/python/pulumi_aws/licensemanager/license_grant.py +++ b/sdk/python/pulumi_aws/licensemanager/license_grant.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LicenseGrantArgs', 'LicenseGrant'] @@ -25,11 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[str] principal: The target account for the grant in the form of the ARN for an account principal of the root user. :param pulumi.Input[str] name: The Name of the grant. """ - pulumi.set(__self__, "allowed_operations", allowed_operations) - pulumi.set(__self__, "license_arn", license_arn) - pulumi.set(__self__, "principal", principal) + LicenseGrantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_operations=allowed_operations, + license_arn=license_arn, + principal=principal, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_operations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + license_arn: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_operations is None and 'allowedOperations' in kwargs: + allowed_operations = kwargs['allowedOperations'] + if allowed_operations is None: + raise TypeError("Missing 'allowed_operations' argument") + if license_arn is None and 'licenseArn' in kwargs: + license_arn = kwargs['licenseArn'] + if license_arn is None: + raise TypeError("Missing 'license_arn' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("allowed_operations", allowed_operations) + _setter("license_arn", license_arn) + _setter("principal", principal) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="allowedOperations") @@ -104,24 +131,59 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The grant status. :param pulumi.Input[str] version: The grant version. """ + _LicenseGrantState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_operations=allowed_operations, + arn=arn, + home_region=home_region, + license_arn=license_arn, + name=name, + parent_arn=parent_arn, + principal=principal, + status=status, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_operations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + home_region: Optional[pulumi.Input[str]] = None, + license_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_arn: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_operations is None and 'allowedOperations' in kwargs: + allowed_operations = kwargs['allowedOperations'] + if home_region is None and 'homeRegion' in kwargs: + home_region = kwargs['homeRegion'] + if license_arn is None and 'licenseArn' in kwargs: + license_arn = kwargs['licenseArn'] + if parent_arn is None and 'parentArn' in kwargs: + parent_arn = kwargs['parentArn'] + if allowed_operations is not None: - pulumi.set(__self__, "allowed_operations", allowed_operations) + _setter("allowed_operations", allowed_operations) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if home_region is not None: - pulumi.set(__self__, "home_region", home_region) + _setter("home_region", home_region) if license_arn is not None: - pulumi.set(__self__, "license_arn", license_arn) + _setter("license_arn", license_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_arn is not None: - pulumi.set(__self__, "parent_arn", parent_arn) + _setter("parent_arn", parent_arn) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="allowedOperations") @@ -287,6 +349,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LicenseGrantArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/licensemanager/license_grant_accepter.py b/sdk/python/pulumi_aws/licensemanager/license_grant_accepter.py index ae25292d75e..44fcf4a9306 100644 --- a/sdk/python/pulumi_aws/licensemanager/license_grant_accepter.py +++ b/sdk/python/pulumi_aws/licensemanager/license_grant_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LicenseGrantAccepterArgs', 'LicenseGrantAccepter'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a LicenseGrantAccepter resource. :param pulumi.Input[str] grant_arn: The ARN of the grant to accept. """ - pulumi.set(__self__, "grant_arn", grant_arn) + LicenseGrantAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + grant_arn=grant_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grant_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grant_arn is None and 'grantArn' in kwargs: + grant_arn = kwargs['grantArn'] + if grant_arn is None: + raise TypeError("Missing 'grant_arn' argument") + + _setter("grant_arn", grant_arn) @property @pulumi.getter(name="grantArn") @@ -58,24 +73,61 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The grant status. :param pulumi.Input[str] version: The grant version. """ + _LicenseGrantAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_operations=allowed_operations, + grant_arn=grant_arn, + home_region=home_region, + license_arn=license_arn, + name=name, + parent_arn=parent_arn, + principal=principal, + status=status, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_operations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + grant_arn: Optional[pulumi.Input[str]] = None, + home_region: Optional[pulumi.Input[str]] = None, + license_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_arn: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_operations is None and 'allowedOperations' in kwargs: + allowed_operations = kwargs['allowedOperations'] + if grant_arn is None and 'grantArn' in kwargs: + grant_arn = kwargs['grantArn'] + if home_region is None and 'homeRegion' in kwargs: + home_region = kwargs['homeRegion'] + if license_arn is None and 'licenseArn' in kwargs: + license_arn = kwargs['licenseArn'] + if parent_arn is None and 'parentArn' in kwargs: + parent_arn = kwargs['parentArn'] + if allowed_operations is not None: - pulumi.set(__self__, "allowed_operations", allowed_operations) + _setter("allowed_operations", allowed_operations) if grant_arn is not None: - pulumi.set(__self__, "grant_arn", grant_arn) + _setter("grant_arn", grant_arn) if home_region is not None: - pulumi.set(__self__, "home_region", home_region) + _setter("home_region", home_region) if license_arn is not None: - pulumi.set(__self__, "license_arn", license_arn) + _setter("license_arn", license_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_arn is not None: - pulumi.set(__self__, "parent_arn", parent_arn) + _setter("parent_arn", parent_arn) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="allowedOperations") @@ -253,6 +305,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LicenseGrantAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/licensemanager/outputs.py b/sdk/python/pulumi_aws/licensemanager/outputs.py index cabe751cb40..b091729098f 100644 --- a/sdk/python/pulumi_aws/licensemanager/outputs.py +++ b/sdk/python/pulumi_aws/licensemanager/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -44,8 +44,25 @@ def __init__(__self__, *, ``` :param Sequence[str] values: Set of values that are accepted for the given field. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetLicenseGrantsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -86,9 +103,36 @@ def __init__(__self__, *, :param Sequence['GetReceivedLicenseConsumptionConfigurationBorrowConfigurationArgs'] borrow_configurations: Details about a borrow configuration. Detailed below :param Sequence['GetReceivedLicenseConsumptionConfigurationProvisionalConfigurationArgs'] provisional_configurations: Details about a provisional configuration. Detailed below """ - pulumi.set(__self__, "borrow_configurations", borrow_configurations) - pulumi.set(__self__, "provisional_configurations", provisional_configurations) - pulumi.set(__self__, "renew_type", renew_type) + GetReceivedLicenseConsumptionConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + borrow_configurations=borrow_configurations, + provisional_configurations=provisional_configurations, + renew_type=renew_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + borrow_configurations: Optional[Sequence['outputs.GetReceivedLicenseConsumptionConfigurationBorrowConfigurationResult']] = None, + provisional_configurations: Optional[Sequence['outputs.GetReceivedLicenseConsumptionConfigurationProvisionalConfigurationResult']] = None, + renew_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if borrow_configurations is None and 'borrowConfigurations' in kwargs: + borrow_configurations = kwargs['borrowConfigurations'] + if borrow_configurations is None: + raise TypeError("Missing 'borrow_configurations' argument") + if provisional_configurations is None and 'provisionalConfigurations' in kwargs: + provisional_configurations = kwargs['provisionalConfigurations'] + if provisional_configurations is None: + raise TypeError("Missing 'provisional_configurations' argument") + if renew_type is None and 'renewType' in kwargs: + renew_type = kwargs['renewType'] + if renew_type is None: + raise TypeError("Missing 'renew_type' argument") + + _setter("borrow_configurations", borrow_configurations) + _setter("provisional_configurations", provisional_configurations) + _setter("renew_type", renew_type) @property @pulumi.getter(name="borrowConfigurations") @@ -121,8 +165,29 @@ def __init__(__self__, *, :param bool allow_early_check_in: Indicates whether early check-ins are allowed. :param int max_time_to_live_in_minutes: Maximum time for the provisional configuration, in minutes. """ - pulumi.set(__self__, "allow_early_check_in", allow_early_check_in) - pulumi.set(__self__, "max_time_to_live_in_minutes", max_time_to_live_in_minutes) + GetReceivedLicenseConsumptionConfigurationBorrowConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_early_check_in=allow_early_check_in, + max_time_to_live_in_minutes=max_time_to_live_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_early_check_in: Optional[bool] = None, + max_time_to_live_in_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_early_check_in is None and 'allowEarlyCheckIn' in kwargs: + allow_early_check_in = kwargs['allowEarlyCheckIn'] + if allow_early_check_in is None: + raise TypeError("Missing 'allow_early_check_in' argument") + if max_time_to_live_in_minutes is None and 'maxTimeToLiveInMinutes' in kwargs: + max_time_to_live_in_minutes = kwargs['maxTimeToLiveInMinutes'] + if max_time_to_live_in_minutes is None: + raise TypeError("Missing 'max_time_to_live_in_minutes' argument") + + _setter("allow_early_check_in", allow_early_check_in) + _setter("max_time_to_live_in_minutes", max_time_to_live_in_minutes) @property @pulumi.getter(name="allowEarlyCheckIn") @@ -148,7 +213,22 @@ def __init__(__self__, *, """ :param int max_time_to_live_in_minutes: Maximum time for the provisional configuration, in minutes. """ - pulumi.set(__self__, "max_time_to_live_in_minutes", max_time_to_live_in_minutes) + GetReceivedLicenseConsumptionConfigurationProvisionalConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_time_to_live_in_minutes=max_time_to_live_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_time_to_live_in_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_time_to_live_in_minutes is None and 'maxTimeToLiveInMinutes' in kwargs: + max_time_to_live_in_minutes = kwargs['maxTimeToLiveInMinutes'] + if max_time_to_live_in_minutes is None: + raise TypeError("Missing 'max_time_to_live_in_minutes' argument") + + _setter("max_time_to_live_in_minutes", max_time_to_live_in_minutes) @property @pulumi.getter(name="maxTimeToLiveInMinutes") @@ -174,11 +254,44 @@ def __init__(__self__, *, :param str unit: Entitlement unit. :param str value: The value. """ - pulumi.set(__self__, "allow_check_in", allow_check_in) - pulumi.set(__self__, "max_count", max_count) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetReceivedLicenseEntitlementResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_check_in=allow_check_in, + max_count=max_count, + name=name, + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_check_in: Optional[bool] = None, + max_count: Optional[int] = None, + name: Optional[str] = None, + unit: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_check_in is None and 'allowCheckIn' in kwargs: + allow_check_in = kwargs['allowCheckIn'] + if allow_check_in is None: + raise TypeError("Missing 'allow_check_in' argument") + if max_count is None and 'maxCount' in kwargs: + max_count = kwargs['maxCount'] + if max_count is None: + raise TypeError("Missing 'max_count' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("allow_check_in", allow_check_in) + _setter("max_count", max_count) + _setter("name", name) + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter(name="allowCheckIn") @@ -232,9 +345,34 @@ def __init__(__self__, *, :param str name: The key name. :param str sign_key: Asymmetric KMS key from AWS Key Management Service. The KMS key must have a key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing algorithm. """ - pulumi.set(__self__, "key_fingerprint", key_fingerprint) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sign_key", sign_key) + GetReceivedLicenseIssuerResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_fingerprint=key_fingerprint, + name=name, + sign_key=sign_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_fingerprint: Optional[str] = None, + name: Optional[str] = None, + sign_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_fingerprint is None and 'keyFingerprint' in kwargs: + key_fingerprint = kwargs['keyFingerprint'] + if key_fingerprint is None: + raise TypeError("Missing 'key_fingerprint' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if sign_key is None and 'signKey' in kwargs: + sign_key = kwargs['signKey'] + if sign_key is None: + raise TypeError("Missing 'sign_key' argument") + + _setter("key_fingerprint", key_fingerprint) + _setter("name", name) + _setter("sign_key", sign_key) @property @pulumi.getter(name="keyFingerprint") @@ -270,8 +408,25 @@ def __init__(__self__, *, :param str name: The key name. :param str value: The value. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + GetReceivedLicenseLicenseMetadataResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -301,9 +456,36 @@ def __init__(__self__, *, :param str received_status: Received status. :param str received_status_reason: Received status reason. """ - pulumi.set(__self__, "allowed_operations", allowed_operations) - pulumi.set(__self__, "received_status", received_status) - pulumi.set(__self__, "received_status_reason", received_status_reason) + GetReceivedLicenseReceivedMetadataResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_operations=allowed_operations, + received_status=received_status, + received_status_reason=received_status_reason, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_operations: Optional[Sequence[str]] = None, + received_status: Optional[str] = None, + received_status_reason: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_operations is None and 'allowedOperations' in kwargs: + allowed_operations = kwargs['allowedOperations'] + if allowed_operations is None: + raise TypeError("Missing 'allowed_operations' argument") + if received_status is None and 'receivedStatus' in kwargs: + received_status = kwargs['receivedStatus'] + if received_status is None: + raise TypeError("Missing 'received_status' argument") + if received_status_reason is None and 'receivedStatusReason' in kwargs: + received_status_reason = kwargs['receivedStatusReason'] + if received_status_reason is None: + raise TypeError("Missing 'received_status_reason' argument") + + _setter("allowed_operations", allowed_operations) + _setter("received_status", received_status) + _setter("received_status_reason", received_status_reason) @property @pulumi.getter(name="allowedOperations") @@ -339,8 +521,25 @@ def __init__(__self__, *, :param str begin: Start of the validity time range. :param str end: End of the validity time range. """ - pulumi.set(__self__, "begin", begin) - pulumi.set(__self__, "end", end) + GetReceivedLicenseValidityResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + begin=begin, + end=end, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + begin: Optional[str] = None, + end: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if begin is None: + raise TypeError("Missing 'begin' argument") + if end is None: + raise TypeError("Missing 'end' argument") + + _setter("begin", begin) + _setter("end", end) @property @pulumi.getter @@ -380,8 +579,25 @@ def __init__(__self__, *, ``` :param Sequence[str] values: Set of values that are accepted for the given field. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetReceivedLicensesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/lightsail/_inputs.py b/sdk/python/pulumi_aws/lightsail/_inputs.py index e176385c951..a96944e37c5 100644 --- a/sdk/python/pulumi_aws/lightsail/_inputs.py +++ b/sdk/python/pulumi_aws/lightsail/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,14 +41,39 @@ def __init__(__self__, *, """ :param pulumi.Input[str] domain_name: A domain name for which the certificate should be issued. """ + CertificateDomainValidationOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + resource_record_name=resource_record_name, + resource_record_type=resource_record_type, + resource_record_value=resource_record_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + resource_record_name: Optional[pulumi.Input[str]] = None, + resource_record_type: Optional[pulumi.Input[str]] = None, + resource_record_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if resource_record_name is None and 'resourceRecordName' in kwargs: + resource_record_name = kwargs['resourceRecordName'] + if resource_record_type is None and 'resourceRecordType' in kwargs: + resource_record_type = kwargs['resourceRecordType'] + if resource_record_value is None and 'resourceRecordValue' in kwargs: + resource_record_value = kwargs['resourceRecordValue'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if resource_record_name is not None: - pulumi.set(__self__, "resource_record_name", resource_record_name) + _setter("resource_record_name", resource_record_name) if resource_record_type is not None: - pulumi.set(__self__, "resource_record_type", resource_record_type) + _setter("resource_record_type", resource_record_type) if resource_record_value is not None: - pulumi.set(__self__, "resource_record_value", resource_record_value) + _setter("resource_record_value", resource_record_value) @property @pulumi.getter(name="domainName") @@ -105,14 +130,39 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] environment: A key-value map of the environment variables of the container. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] ports: A key-value map of the open firewall ports of the container. Valid values: `HTTP`, `HTTPS`, `TCP`, `UDP`. """ - pulumi.set(__self__, "container_name", container_name) - pulumi.set(__self__, "image", image) + ContainerServiceDeploymentVersionContainerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + image=image, + commands=commands, + environment=environment, + ports=ports, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[pulumi.Input[str]] = None, + image: Optional[pulumi.Input[str]] = None, + commands: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + environment: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + ports: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + if image is None: + raise TypeError("Missing 'image' argument") + + _setter("container_name", container_name) + _setter("image", image) if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if ports is not None: - pulumi.set(__self__, "ports", ports) + _setter("ports", ports) @property @pulumi.getter(name="containerName") @@ -186,9 +236,36 @@ def __init__(__self__, *, :param pulumi.Input[int] container_port: The port of the container to which traffic is forwarded to. :param pulumi.Input['ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs'] health_check: A configuration block that describes the health check configuration of the container. Detailed below. """ - pulumi.set(__self__, "container_name", container_name) - pulumi.set(__self__, "container_port", container_port) - pulumi.set(__self__, "health_check", health_check) + ContainerServiceDeploymentVersionPublicEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + container_port=container_port, + health_check=health_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[pulumi.Input[str]] = None, + container_port: Optional[pulumi.Input[int]] = None, + health_check: Optional[pulumi.Input['ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + if container_port is None: + raise TypeError("Missing 'container_port' argument") + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if health_check is None: + raise TypeError("Missing 'health_check' argument") + + _setter("container_name", container_name) + _setter("container_port", container_port) + _setter("health_check", health_check) @property @pulumi.getter(name="containerName") @@ -244,18 +321,49 @@ def __init__(__self__, *, :param pulumi.Input[int] timeout_seconds: The amount of time, in seconds, during which no response means a failed health check. You can specify between 2 and 60 seconds. Defaults to 2. :param pulumi.Input[int] unhealthy_threshold: The number of consecutive health checks failures required before moving the container to the Unhealthy state. Defaults to 2. """ + ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval_seconds=interval_seconds, + path=path, + success_codes=success_codes, + timeout_seconds=timeout_seconds, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[pulumi.Input[int]] = None, + interval_seconds: Optional[pulumi.Input[int]] = None, + path: Optional[pulumi.Input[str]] = None, + success_codes: Optional[pulumi.Input[str]] = None, + timeout_seconds: Optional[pulumi.Input[int]] = None, + unhealthy_threshold: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if interval_seconds is None and 'intervalSeconds' in kwargs: + interval_seconds = kwargs['intervalSeconds'] + if success_codes is None and 'successCodes' in kwargs: + success_codes = kwargs['successCodes'] + if timeout_seconds is None and 'timeoutSeconds' in kwargs: + timeout_seconds = kwargs['timeoutSeconds'] + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if healthy_threshold is not None: - pulumi.set(__self__, "healthy_threshold", healthy_threshold) + _setter("healthy_threshold", healthy_threshold) if interval_seconds is not None: - pulumi.set(__self__, "interval_seconds", interval_seconds) + _setter("interval_seconds", interval_seconds) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if success_codes is not None: - pulumi.set(__self__, "success_codes", success_codes) + _setter("success_codes", success_codes) if timeout_seconds is not None: - pulumi.set(__self__, "timeout_seconds", timeout_seconds) + _setter("timeout_seconds", timeout_seconds) if unhealthy_threshold is not None: - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter(name="healthyThreshold") @@ -337,8 +445,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ContainerServicePrivateRegistryAccessEcrImagePullerRoleArgs'] ecr_image_puller_role: Describes a request to configure an Amazon Lightsail container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories. See ECR Image Puller Role below for more details. """ + ContainerServicePrivateRegistryAccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ecr_image_puller_role=ecr_image_puller_role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ecr_image_puller_role: Optional[pulumi.Input['ContainerServicePrivateRegistryAccessEcrImagePullerRoleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ecr_image_puller_role is None and 'ecrImagePullerRole' in kwargs: + ecr_image_puller_role = kwargs['ecrImagePullerRole'] + if ecr_image_puller_role is not None: - pulumi.set(__self__, "ecr_image_puller_role", ecr_image_puller_role) + _setter("ecr_image_puller_role", ecr_image_puller_role) @property @pulumi.getter(name="ecrImagePullerRole") @@ -364,10 +485,27 @@ def __init__(__self__, *, relationship between your standard AWS account and your Lightsail container service. This allows you to give your service permission to access resources in your standard AWS account. """ + ContainerServicePrivateRegistryAccessEcrImagePullerRoleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_active=is_active, + principal_arn=principal_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_active: Optional[pulumi.Input[bool]] = None, + principal_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_active is None and 'isActive' in kwargs: + is_active = kwargs['isActive'] + if principal_arn is None and 'principalArn' in kwargs: + principal_arn = kwargs['principalArn'] + if is_active is not None: - pulumi.set(__self__, "is_active", is_active) + _setter("is_active", is_active) if principal_arn is not None: - pulumi.set(__self__, "principal_arn", principal_arn) + _setter("principal_arn", principal_arn) @property @pulumi.getter(name="isActive") @@ -400,7 +538,20 @@ def principal_arn(self, value: Optional[pulumi.Input[str]]): class ContainerServicePublicDomainNamesArgs: def __init__(__self__, *, certificates: pulumi.Input[Sequence[pulumi.Input['ContainerServicePublicDomainNamesCertificateArgs']]]): - pulumi.set(__self__, "certificates", certificates) + ContainerServicePublicDomainNamesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificates=certificates, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificates: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerServicePublicDomainNamesCertificateArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificates is None: + raise TypeError("Missing 'certificates' argument") + + _setter("certificates", certificates) @property @pulumi.getter @@ -417,8 +568,29 @@ class ContainerServicePublicDomainNamesCertificateArgs: def __init__(__self__, *, certificate_name: pulumi.Input[str], domain_names: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(__self__, "certificate_name", certificate_name) - pulumi.set(__self__, "domain_names", domain_names) + ContainerServicePublicDomainNamesCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_name=certificate_name, + domain_names=domain_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_name: Optional[pulumi.Input[str]] = None, + domain_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_name is None and 'certificateName' in kwargs: + certificate_name = kwargs['certificateName'] + if certificate_name is None: + raise TypeError("Missing 'certificate_name' argument") + if domain_names is None and 'domainNames' in kwargs: + domain_names = kwargs['domainNames'] + if domain_names is None: + raise TypeError("Missing 'domain_names' argument") + + _setter("certificate_name", certificate_name) + _setter("domain_names", domain_names) @property @pulumi.getter(name="certificateName") @@ -448,8 +620,25 @@ def __init__(__self__, *, :param pulumi.Input[str] behavior: The cache behavior for the specified path. :param pulumi.Input[str] path: The path to a directory or file to cached, or not cache. Use an asterisk symbol to specify wildcard directories (path/to/assets/\\*), and file types (\\*.html, \\*jpg, \\*js). Directories and file paths are case-sensitive. """ - pulumi.set(__self__, "behavior", behavior) - pulumi.set(__self__, "path", path) + DistributionCacheBehaviorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + behavior=behavior, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + behavior: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if behavior is None: + raise TypeError("Missing 'behavior' argument") + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("behavior", behavior) + _setter("path", path) @property @pulumi.getter @@ -497,22 +686,63 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_ttl: The maximum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. :param pulumi.Input[int] minimum_ttl: The minimum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. """ + DistributionCacheBehaviorSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_http_methods=allowed_http_methods, + cached_http_methods=cached_http_methods, + default_ttl=default_ttl, + forwarded_cookies=forwarded_cookies, + forwarded_headers=forwarded_headers, + forwarded_query_strings=forwarded_query_strings, + maximum_ttl=maximum_ttl, + minimum_ttl=minimum_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_http_methods: Optional[pulumi.Input[str]] = None, + cached_http_methods: Optional[pulumi.Input[str]] = None, + default_ttl: Optional[pulumi.Input[int]] = None, + forwarded_cookies: Optional[pulumi.Input['DistributionCacheBehaviorSettingsForwardedCookiesArgs']] = None, + forwarded_headers: Optional[pulumi.Input['DistributionCacheBehaviorSettingsForwardedHeadersArgs']] = None, + forwarded_query_strings: Optional[pulumi.Input['DistributionCacheBehaviorSettingsForwardedQueryStringsArgs']] = None, + maximum_ttl: Optional[pulumi.Input[int]] = None, + minimum_ttl: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_http_methods is None and 'allowedHttpMethods' in kwargs: + allowed_http_methods = kwargs['allowedHttpMethods'] + if cached_http_methods is None and 'cachedHttpMethods' in kwargs: + cached_http_methods = kwargs['cachedHttpMethods'] + if default_ttl is None and 'defaultTtl' in kwargs: + default_ttl = kwargs['defaultTtl'] + if forwarded_cookies is None and 'forwardedCookies' in kwargs: + forwarded_cookies = kwargs['forwardedCookies'] + if forwarded_headers is None and 'forwardedHeaders' in kwargs: + forwarded_headers = kwargs['forwardedHeaders'] + if forwarded_query_strings is None and 'forwardedQueryStrings' in kwargs: + forwarded_query_strings = kwargs['forwardedQueryStrings'] + if maximum_ttl is None and 'maximumTtl' in kwargs: + maximum_ttl = kwargs['maximumTtl'] + if minimum_ttl is None and 'minimumTtl' in kwargs: + minimum_ttl = kwargs['minimumTtl'] + if allowed_http_methods is not None: - pulumi.set(__self__, "allowed_http_methods", allowed_http_methods) + _setter("allowed_http_methods", allowed_http_methods) if cached_http_methods is not None: - pulumi.set(__self__, "cached_http_methods", cached_http_methods) + _setter("cached_http_methods", cached_http_methods) if default_ttl is not None: - pulumi.set(__self__, "default_ttl", default_ttl) + _setter("default_ttl", default_ttl) if forwarded_cookies is not None: - pulumi.set(__self__, "forwarded_cookies", forwarded_cookies) + _setter("forwarded_cookies", forwarded_cookies) if forwarded_headers is not None: - pulumi.set(__self__, "forwarded_headers", forwarded_headers) + _setter("forwarded_headers", forwarded_headers) if forwarded_query_strings is not None: - pulumi.set(__self__, "forwarded_query_strings", forwarded_query_strings) + _setter("forwarded_query_strings", forwarded_query_strings) if maximum_ttl is not None: - pulumi.set(__self__, "maximum_ttl", maximum_ttl) + _setter("maximum_ttl", maximum_ttl) if minimum_ttl is not None: - pulumi.set(__self__, "minimum_ttl", minimum_ttl) + _setter("minimum_ttl", minimum_ttl) @property @pulumi.getter(name="allowedHttpMethods") @@ -620,10 +850,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] cookies_allow_lists: The specific cookies to forward to your distribution's origin. :param pulumi.Input[str] option: Specifies which cookies to forward to the distribution's origin for a cache behavior: all, none, or allow-list to forward only the cookies specified in the cookiesAllowList parameter. """ + DistributionCacheBehaviorSettingsForwardedCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies_allow_lists=cookies_allow_lists, + option=option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + option: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies_allow_lists is None and 'cookiesAllowLists' in kwargs: + cookies_allow_lists = kwargs['cookiesAllowLists'] + if cookies_allow_lists is not None: - pulumi.set(__self__, "cookies_allow_lists", cookies_allow_lists) + _setter("cookies_allow_lists", cookies_allow_lists) if option is not None: - pulumi.set(__self__, "option", option) + _setter("option", option) @property @pulumi.getter(name="cookiesAllowLists") @@ -659,10 +904,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] headers_allow_lists: The specific headers to forward to your distribution's origin. :param pulumi.Input[str] option: The headers that you want your distribution to forward to your origin and base caching on. """ + DistributionCacheBehaviorSettingsForwardedHeadersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers_allow_lists=headers_allow_lists, + option=option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + option: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if headers_allow_lists is None and 'headersAllowLists' in kwargs: + headers_allow_lists = kwargs['headersAllowLists'] + if headers_allow_lists is not None: - pulumi.set(__self__, "headers_allow_lists", headers_allow_lists) + _setter("headers_allow_lists", headers_allow_lists) if option is not None: - pulumi.set(__self__, "option", option) + _setter("option", option) @property @pulumi.getter(name="headersAllowLists") @@ -698,10 +958,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] option: Indicates whether the distribution forwards and caches based on query strings. :param pulumi.Input[Sequence[pulumi.Input[str]]] query_strings_allowed_lists: The specific query strings that the distribution forwards to the origin. """ + DistributionCacheBehaviorSettingsForwardedQueryStringsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + option=option, + query_strings_allowed_lists=query_strings_allowed_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + option: Optional[pulumi.Input[bool]] = None, + query_strings_allowed_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_strings_allowed_lists is None and 'queryStringsAllowedLists' in kwargs: + query_strings_allowed_lists = kwargs['queryStringsAllowedLists'] + if option is not None: - pulumi.set(__self__, "option", option) + _setter("option", option) if query_strings_allowed_lists is not None: - pulumi.set(__self__, "query_strings_allowed_lists", query_strings_allowed_lists) + _setter("query_strings_allowed_lists", query_strings_allowed_lists) @property @pulumi.getter @@ -735,7 +1010,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] behavior: The cache behavior of the distribution. Valid values: `cache` and `dont-cache`. """ - pulumi.set(__self__, "behavior", behavior) + DistributionDefaultCacheBehaviorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + behavior=behavior, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + behavior: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if behavior is None: + raise TypeError("Missing 'behavior' argument") + + _setter("behavior", behavior) @property @pulumi.getter @@ -759,8 +1047,29 @@ def __init__(__self__, *, :param pulumi.Input[str] availability_zone: The Availability Zone. Follows the format us-east-2a (case-sensitive). :param pulumi.Input[str] region_name: The AWS Region name of the origin resource. """ - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "region_name", region_name) + DistributionLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + region_name=region_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + region_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + + _setter("availability_zone", availability_zone) + _setter("region_name", region_name) @property @pulumi.getter(name="availabilityZone") @@ -800,12 +1109,39 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol_policy: The protocol that your Amazon Lightsail distribution uses when establishing a connection with your origin to pull content. :param pulumi.Input[str] resource_type: The resource type of the origin resource (e.g., Instance). """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "region_name", region_name) + DistributionOriginArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + region_name=region_name, + protocol_policy=protocol_policy, + resource_type=resource_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + region_name: Optional[pulumi.Input[str]] = None, + protocol_policy: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + if protocol_policy is None and 'protocolPolicy' in kwargs: + protocol_policy = kwargs['protocolPolicy'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + + _setter("name", name) + _setter("region_name", region_name) if protocol_policy is not None: - pulumi.set(__self__, "protocol_policy", protocol_policy) + _setter("protocol_policy", protocol_policy) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) @property @pulumi.getter @@ -867,9 +1203,32 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The status of the add on. Valid Values: `Enabled`, `Disabled`. :param pulumi.Input[str] type: The add-on type. There is currently only one valid type `AutoSnapshot`. """ - pulumi.set(__self__, "snapshot_time", snapshot_time) - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "type", type) + InstanceAddOnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + snapshot_time=snapshot_time, + status=status, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + snapshot_time: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if snapshot_time is None and 'snapshotTime' in kwargs: + snapshot_time = kwargs['snapshotTime'] + if snapshot_time is None: + raise TypeError("Missing 'snapshot_time' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("snapshot_time", snapshot_time) + _setter("status", status) + _setter("type", type) @property @pulumi.getter(name="snapshotTime") @@ -926,15 +1285,50 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] cidr_list_aliases: Set of CIDR aliases that define access for a preconfigured range of IP addresses. :param pulumi.Input[Sequence[pulumi.Input[str]]] cidrs: Set of CIDR blocks. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + InstancePublicPortsPortInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_list_aliases=cidr_list_aliases, + cidrs=cidrs, + ipv6_cidrs=ipv6_cidrs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + to_port: Optional[pulumi.Input[int]] = None, + cidr_list_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ipv6_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_list_aliases is None and 'cidrListAliases' in kwargs: + cidr_list_aliases = kwargs['cidrListAliases'] + if ipv6_cidrs is None and 'ipv6Cidrs' in kwargs: + ipv6_cidrs = kwargs['ipv6Cidrs'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_list_aliases is not None: - pulumi.set(__self__, "cidr_list_aliases", cidr_list_aliases) + _setter("cidr_list_aliases", cidr_list_aliases) if cidrs is not None: - pulumi.set(__self__, "cidrs", cidrs) + _setter("cidrs", cidrs) if ipv6_cidrs is not None: - pulumi.set(__self__, "ipv6_cidrs", ipv6_cidrs) + _setter("ipv6_cidrs", ipv6_cidrs) @property @pulumi.getter(name="fromPort") @@ -1018,14 +1412,39 @@ def __init__(__self__, *, """ :param pulumi.Input[str] domain_name: The domain name (e.g., example.com) for your SSL/TLS certificate. """ + LbCertificateDomainValidationRecordArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + resource_record_name=resource_record_name, + resource_record_type=resource_record_type, + resource_record_value=resource_record_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + resource_record_name: Optional[pulumi.Input[str]] = None, + resource_record_type: Optional[pulumi.Input[str]] = None, + resource_record_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if resource_record_name is None and 'resourceRecordName' in kwargs: + resource_record_name = kwargs['resourceRecordName'] + if resource_record_type is None and 'resourceRecordType' in kwargs: + resource_record_type = kwargs['resourceRecordType'] + if resource_record_value is None and 'resourceRecordValue' in kwargs: + resource_record_value = kwargs['resourceRecordValue'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if resource_record_name is not None: - pulumi.set(__self__, "resource_record_name", resource_record_name) + _setter("resource_record_name", resource_record_name) if resource_record_type is not None: - pulumi.set(__self__, "resource_record_type", resource_record_type) + _setter("resource_record_type", resource_record_type) if resource_record_value is not None: - pulumi.set(__self__, "resource_record_value", resource_record_value) + _setter("resource_record_value", resource_record_value) @property @pulumi.getter(name="domainName") diff --git a/sdk/python/pulumi_aws/lightsail/bucket.py b/sdk/python/pulumi_aws/lightsail/bucket.py index fc139546d52..e4568bfd3c9 100644 --- a/sdk/python/pulumi_aws/lightsail/bucket.py +++ b/sdk/python/pulumi_aws/lightsail/bucket.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketArgs', 'Bucket'] @@ -25,13 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name for the bucket. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "bundle_id", bundle_id) + BucketArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bundle_id=bundle_id, + force_delete=force_delete, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bundle_id: Optional[pulumi.Input[str]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if bundle_id is None: + raise TypeError("Missing 'bundle_id' argument") + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + + _setter("bundle_id", bundle_id) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="bundleId") @@ -109,31 +132,74 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. 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. """ + _BucketState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zone=availability_zone, + bundle_id=bundle_id, + created_at=created_at, + force_delete=force_delete, + name=name, + region=region, + support_code=support_code, + tags=tags, + tags_all=tags_all, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + support_code: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if support_code is None and 'supportCode' in kwargs: + support_code = kwargs['supportCode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if support_code is not None: - pulumi.set(__self__, "support_code", support_code) + _setter("support_code", support_code) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter @@ -341,6 +407,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/bucket_access_key.py b/sdk/python/pulumi_aws/lightsail/bucket_access_key.py index 4d1ca97ade5..d9c14d8094f 100644 --- a/sdk/python/pulumi_aws/lightsail/bucket_access_key.py +++ b/sdk/python/pulumi_aws/lightsail/bucket_access_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketAccessKeyArgs', 'BucketAccessKey'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a BucketAccessKey resource. :param pulumi.Input[str] bucket_name: The name of the bucket that the new access key will belong to, and grant access to. """ - pulumi.set(__self__, "bucket_name", bucket_name) + BucketAccessKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + + _setter("bucket_name", bucket_name) @property @pulumi.getter(name="bucketName") @@ -50,16 +65,43 @@ def __init__(__self__, *, :param pulumi.Input[str] secret_access_key: The secret access key used to sign requests. This attribute is not available for imported resources. Note that this will be written to the state file. :param pulumi.Input[str] status: The status of the access key. """ + _BucketAccessKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_key_id=access_key_id, + bucket_name=bucket_name, + created_at=created_at, + secret_access_key=secret_access_key, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_key_id: Optional[pulumi.Input[str]] = None, + bucket_name: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + secret_access_key: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_key_id is None and 'accessKeyId' in kwargs: + access_key_id = kwargs['accessKeyId'] + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if secret_access_key is None and 'secretAccessKey' in kwargs: + secret_access_key = kwargs['secretAccessKey'] + if access_key_id is not None: - pulumi.set(__self__, "access_key_id", access_key_id) + _setter("access_key_id", access_key_id) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if secret_access_key is not None: - pulumi.set(__self__, "secret_access_key", secret_access_key) + _setter("secret_access_key", secret_access_key) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="accessKeyId") @@ -171,6 +213,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketAccessKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/bucket_resource_access.py b/sdk/python/pulumi_aws/lightsail/bucket_resource_access.py index 8c9b9f565fb..9ab04a51354 100644 --- a/sdk/python/pulumi_aws/lightsail/bucket_resource_access.py +++ b/sdk/python/pulumi_aws/lightsail/bucket_resource_access.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketResourceAccessArgs', 'BucketResourceAccess'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_name: The name of the bucket to grant access to. :param pulumi.Input[str] resource_name: The name of the resource to be granted bucket access. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "resource_name", resource_name) + BucketResourceAccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + resource_name=resource_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + resource_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if resource_name is None and 'resourceName' in kwargs: + resource_name = kwargs['resourceName'] + if resource_name is None: + raise TypeError("Missing 'resource_name' argument") + + _setter("bucket_name", bucket_name) + _setter("resource_name", resource_name) @property @pulumi.getter(name="bucketName") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_name: The name of the bucket to grant access to. :param pulumi.Input[str] resource_name: The name of the resource to be granted bucket access. """ + _BucketResourceAccessState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + resource_name=resource_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + resource_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if resource_name is None and 'resourceName' in kwargs: + resource_name = kwargs['resourceName'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if resource_name is not None: - pulumi.set(__self__, "resource_name", resource_name) + _setter("resource_name", resource_name) @property @pulumi.getter(name="bucketName") @@ -140,6 +178,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketResourceAccessArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/certificate.py b/sdk/python/pulumi_aws/lightsail/certificate.py index dd2f8b2a027..3de6ad5ed7c 100644 --- a/sdk/python/pulumi_aws/lightsail/certificate.py +++ b/sdk/python/pulumi_aws/lightsail/certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,14 +27,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subject_alternative_names: Set of domains that should be SANs in the issued certificate. `domain_name` attribute is automatically added as a Subject Alternative Name. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + CertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + name=name, + subject_alternative_names=subject_alternative_names, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + subject_alternative_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="domainName") @@ -107,25 +128,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. 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. """ + _CertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_at=created_at, + domain_name=domain_name, + domain_validation_options=domain_validation_options, + name=name, + subject_alternative_names=subject_alternative_names, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + domain_validation_options: Optional[pulumi.Input[Sequence[pulumi.Input['CertificateDomainValidationOptionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + subject_alternative_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_validation_options is None and 'domainValidationOptions' in kwargs: + domain_validation_options = kwargs['domainValidationOptions'] + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if domain_validation_options is not None: - pulumi.set(__self__, "domain_validation_options", domain_validation_options) + _setter("domain_validation_options", domain_validation_options) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -304,6 +360,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/container_service.py b/sdk/python/pulumi_aws/lightsail/container_service.py index d3a91399801..fce5673a999 100644 --- a/sdk/python/pulumi_aws/lightsail/container_service.py +++ b/sdk/python/pulumi_aws/lightsail/container_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -44,18 +44,51 @@ def __init__(__self__, *, `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "power", power) - pulumi.set(__self__, "scale", scale) + ContainerServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + power=power, + scale=scale, + is_disabled=is_disabled, + name=name, + private_registry_access=private_registry_access, + public_domain_names=public_domain_names, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + power: Optional[pulumi.Input[str]] = None, + scale: Optional[pulumi.Input[int]] = None, + is_disabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + private_registry_access: Optional[pulumi.Input['ContainerServicePrivateRegistryAccessArgs']] = None, + public_domain_names: Optional[pulumi.Input['ContainerServicePublicDomainNamesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if power is None: + raise TypeError("Missing 'power' argument") + if scale is None: + raise TypeError("Missing 'scale' argument") + if is_disabled is None and 'isDisabled' in kwargs: + is_disabled = kwargs['isDisabled'] + if private_registry_access is None and 'privateRegistryAccess' in kwargs: + private_registry_access = kwargs['privateRegistryAccess'] + if public_domain_names is None and 'publicDomainNames' in kwargs: + public_domain_names = kwargs['publicDomainNames'] + + _setter("power", power) + _setter("scale", scale) if is_disabled is not None: - pulumi.set(__self__, "is_disabled", is_disabled) + _setter("is_disabled", is_disabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if private_registry_access is not None: - pulumi.set(__self__, "private_registry_access", private_registry_access) + _setter("private_registry_access", private_registry_access) if public_domain_names is not None: - pulumi.set(__self__, "public_domain_names", public_domain_names) + _setter("public_domain_names", public_domain_names) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -208,43 +241,106 @@ def __init__(__self__, *, :param pulumi.Input[str] url: The publicly accessible URL of the container service. If no public endpoint is specified in the currentDeployment, this URL returns a 404 response. """ + _ContainerServiceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zone=availability_zone, + created_at=created_at, + is_disabled=is_disabled, + name=name, + power=power, + power_id=power_id, + principal_arn=principal_arn, + private_domain_name=private_domain_name, + private_registry_access=private_registry_access, + public_domain_names=public_domain_names, + resource_type=resource_type, + scale=scale, + state=state, + tags=tags, + tags_all=tags_all, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + is_disabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + power: Optional[pulumi.Input[str]] = None, + power_id: Optional[pulumi.Input[str]] = None, + principal_arn: Optional[pulumi.Input[str]] = None, + private_domain_name: Optional[pulumi.Input[str]] = None, + private_registry_access: Optional[pulumi.Input['ContainerServicePrivateRegistryAccessArgs']] = None, + public_domain_names: Optional[pulumi.Input['ContainerServicePublicDomainNamesArgs']] = None, + resource_type: Optional[pulumi.Input[str]] = None, + scale: Optional[pulumi.Input[int]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if is_disabled is None and 'isDisabled' in kwargs: + is_disabled = kwargs['isDisabled'] + if power_id is None and 'powerId' in kwargs: + power_id = kwargs['powerId'] + if principal_arn is None and 'principalArn' in kwargs: + principal_arn = kwargs['principalArn'] + if private_domain_name is None and 'privateDomainName' in kwargs: + private_domain_name = kwargs['privateDomainName'] + if private_registry_access is None and 'privateRegistryAccess' in kwargs: + private_registry_access = kwargs['privateRegistryAccess'] + if public_domain_names is None and 'publicDomainNames' in kwargs: + public_domain_names = kwargs['publicDomainNames'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if is_disabled is not None: - pulumi.set(__self__, "is_disabled", is_disabled) + _setter("is_disabled", is_disabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if power is not None: - pulumi.set(__self__, "power", power) + _setter("power", power) if power_id is not None: - pulumi.set(__self__, "power_id", power_id) + _setter("power_id", power_id) if principal_arn is not None: - pulumi.set(__self__, "principal_arn", principal_arn) + _setter("principal_arn", principal_arn) if private_domain_name is not None: - pulumi.set(__self__, "private_domain_name", private_domain_name) + _setter("private_domain_name", private_domain_name) if private_registry_access is not None: - pulumi.set(__self__, "private_registry_access", private_registry_access) + _setter("private_registry_access", private_registry_access) if public_domain_names is not None: - pulumi.set(__self__, "public_domain_names", public_domain_names) + _setter("public_domain_names", public_domain_names) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if scale is not None: - pulumi.set(__self__, "scale", scale) + _setter("scale", scale) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter @@ -663,6 +759,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContainerServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -689,7 +789,9 @@ def _internal_init(__self__, if power is None and not opts.urn: raise TypeError("Missing required property 'power'") __props__.__dict__["power"] = power + private_registry_access = _utilities.configure(private_registry_access, ContainerServicePrivateRegistryAccessArgs, True) __props__.__dict__["private_registry_access"] = private_registry_access + public_domain_names = _utilities.configure(public_domain_names, ContainerServicePublicDomainNamesArgs, True) __props__.__dict__["public_domain_names"] = public_domain_names if scale is None and not opts.urn: raise TypeError("Missing required property 'scale'") diff --git a/sdk/python/pulumi_aws/lightsail/container_service_deployment_version.py b/sdk/python/pulumi_aws/lightsail/container_service_deployment_version.py index 17bb06d8b2f..ddcdef97468 100644 --- a/sdk/python/pulumi_aws/lightsail/container_service_deployment_version.py +++ b/sdk/python/pulumi_aws/lightsail/container_service_deployment_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,33 @@ def __init__(__self__, *, :param pulumi.Input[str] service_name: The name for the container service. :param pulumi.Input['ContainerServiceDeploymentVersionPublicEndpointArgs'] public_endpoint: A configuration block that describes the settings of the public endpoint for the container service. Detailed below. """ - pulumi.set(__self__, "containers", containers) - pulumi.set(__self__, "service_name", service_name) + ContainerServiceDeploymentVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + containers=containers, + service_name=service_name, + public_endpoint=public_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + containers: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerServiceDeploymentVersionContainerArgs']]]] = None, + service_name: Optional[pulumi.Input[str]] = None, + public_endpoint: Optional[pulumi.Input['ContainerServiceDeploymentVersionPublicEndpointArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if containers is None: + raise TypeError("Missing 'containers' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + if public_endpoint is None and 'publicEndpoint' in kwargs: + public_endpoint = kwargs['publicEndpoint'] + + _setter("containers", containers) + _setter("service_name", service_name) if public_endpoint is not None: - pulumi.set(__self__, "public_endpoint", public_endpoint) + _setter("public_endpoint", public_endpoint) @property @pulumi.getter @@ -85,18 +108,45 @@ def __init__(__self__, *, :param pulumi.Input[str] state: The current state of the container service. :param pulumi.Input[int] version: The version number of the deployment. """ + _ContainerServiceDeploymentVersionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + containers=containers, + created_at=created_at, + public_endpoint=public_endpoint, + service_name=service_name, + state=state, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + containers: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerServiceDeploymentVersionContainerArgs']]]] = None, + created_at: Optional[pulumi.Input[str]] = None, + public_endpoint: Optional[pulumi.Input['ContainerServiceDeploymentVersionPublicEndpointArgs']] = None, + service_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if public_endpoint is None and 'publicEndpoint' in kwargs: + public_endpoint = kwargs['publicEndpoint'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if containers is not None: - pulumi.set(__self__, "containers", containers) + _setter("containers", containers) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if public_endpoint is not None: - pulumi.set(__self__, "public_endpoint", public_endpoint) + _setter("public_endpoint", public_endpoint) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -300,6 +350,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContainerServiceDeploymentVersionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -320,6 +374,7 @@ def _internal_init(__self__, if containers is None and not opts.urn: raise TypeError("Missing required property 'containers'") __props__.__dict__["containers"] = containers + public_endpoint = _utilities.configure(public_endpoint, ContainerServiceDeploymentVersionPublicEndpointArgs, True) __props__.__dict__["public_endpoint"] = public_endpoint if service_name is None and not opts.urn: raise TypeError("Missing required property 'service_name'") diff --git a/sdk/python/pulumi_aws/lightsail/database.py b/sdk/python/pulumi_aws/lightsail/database.py index 74ec6f6ea44..01097e35be4 100644 --- a/sdk/python/pulumi_aws/lightsail/database.py +++ b/sdk/python/pulumi_aws/lightsail/database.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DatabaseArgs', 'Database'] @@ -47,30 +47,109 @@ def __init__(__self__, *, :param pulumi.Input[bool] skip_final_snapshot: Determines whether a final database snapshot is created before your database is deleted. If true is specified, no database snapshot is created. If false is specified, a database snapshot is created before your database is deleted. You must specify the final relational database snapshot name parameter if the skip final snapshot parameter is false. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. """ - pulumi.set(__self__, "blueprint_id", blueprint_id) - pulumi.set(__self__, "bundle_id", bundle_id) - pulumi.set(__self__, "master_database_name", master_database_name) - pulumi.set(__self__, "master_password", master_password) - pulumi.set(__self__, "master_username", master_username) - pulumi.set(__self__, "relational_database_name", relational_database_name) + DatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + blueprint_id=blueprint_id, + bundle_id=bundle_id, + master_database_name=master_database_name, + master_password=master_password, + master_username=master_username, + relational_database_name=relational_database_name, + apply_immediately=apply_immediately, + availability_zone=availability_zone, + backup_retention_enabled=backup_retention_enabled, + final_snapshot_name=final_snapshot_name, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + publicly_accessible=publicly_accessible, + skip_final_snapshot=skip_final_snapshot, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + blueprint_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + master_database_name: Optional[pulumi.Input[str]] = None, + master_password: Optional[pulumi.Input[str]] = None, + master_username: Optional[pulumi.Input[str]] = None, + relational_database_name: Optional[pulumi.Input[str]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + backup_retention_enabled: Optional[pulumi.Input[bool]] = None, + final_snapshot_name: Optional[pulumi.Input[str]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if blueprint_id is None and 'blueprintId' in kwargs: + blueprint_id = kwargs['blueprintId'] + if blueprint_id is None: + raise TypeError("Missing 'blueprint_id' argument") + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if bundle_id is None: + raise TypeError("Missing 'bundle_id' argument") + if master_database_name is None and 'masterDatabaseName' in kwargs: + master_database_name = kwargs['masterDatabaseName'] + if master_database_name is None: + raise TypeError("Missing 'master_database_name' argument") + if master_password is None and 'masterPassword' in kwargs: + master_password = kwargs['masterPassword'] + if master_password is None: + raise TypeError("Missing 'master_password' argument") + if master_username is None and 'masterUsername' in kwargs: + master_username = kwargs['masterUsername'] + if master_username is None: + raise TypeError("Missing 'master_username' argument") + if relational_database_name is None and 'relationalDatabaseName' in kwargs: + relational_database_name = kwargs['relationalDatabaseName'] + if relational_database_name is None: + raise TypeError("Missing 'relational_database_name' argument") + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if backup_retention_enabled is None and 'backupRetentionEnabled' in kwargs: + backup_retention_enabled = kwargs['backupRetentionEnabled'] + if final_snapshot_name is None and 'finalSnapshotName' in kwargs: + final_snapshot_name = kwargs['finalSnapshotName'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + + _setter("blueprint_id", blueprint_id) + _setter("bundle_id", bundle_id) + _setter("master_database_name", master_database_name) + _setter("master_password", master_password) + _setter("master_username", master_username) + _setter("relational_database_name", relational_database_name) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if backup_retention_enabled is not None: - pulumi.set(__self__, "backup_retention_enabled", backup_retention_enabled) + _setter("backup_retention_enabled", backup_retention_enabled) if final_snapshot_name is not None: - pulumi.set(__self__, "final_snapshot_name", final_snapshot_name) + _setter("final_snapshot_name", final_snapshot_name) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="blueprintId") @@ -315,65 +394,180 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. :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. """ + _DatabaseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_immediately=apply_immediately, + arn=arn, + availability_zone=availability_zone, + backup_retention_enabled=backup_retention_enabled, + blueprint_id=blueprint_id, + bundle_id=bundle_id, + ca_certificate_identifier=ca_certificate_identifier, + cpu_count=cpu_count, + created_at=created_at, + disk_size=disk_size, + engine=engine, + engine_version=engine_version, + final_snapshot_name=final_snapshot_name, + master_database_name=master_database_name, + master_endpoint_address=master_endpoint_address, + master_endpoint_port=master_endpoint_port, + master_password=master_password, + master_username=master_username, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + publicly_accessible=publicly_accessible, + ram_size=ram_size, + relational_database_name=relational_database_name, + secondary_availability_zone=secondary_availability_zone, + skip_final_snapshot=skip_final_snapshot, + support_code=support_code, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + backup_retention_enabled: Optional[pulumi.Input[bool]] = None, + blueprint_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + ca_certificate_identifier: Optional[pulumi.Input[str]] = None, + cpu_count: Optional[pulumi.Input[int]] = None, + created_at: Optional[pulumi.Input[str]] = None, + disk_size: Optional[pulumi.Input[float]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_name: Optional[pulumi.Input[str]] = None, + master_database_name: Optional[pulumi.Input[str]] = None, + master_endpoint_address: Optional[pulumi.Input[str]] = None, + master_endpoint_port: Optional[pulumi.Input[int]] = None, + master_password: Optional[pulumi.Input[str]] = None, + master_username: Optional[pulumi.Input[str]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + ram_size: Optional[pulumi.Input[float]] = None, + relational_database_name: Optional[pulumi.Input[str]] = None, + secondary_availability_zone: Optional[pulumi.Input[str]] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + support_code: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if backup_retention_enabled is None and 'backupRetentionEnabled' in kwargs: + backup_retention_enabled = kwargs['backupRetentionEnabled'] + if blueprint_id is None and 'blueprintId' in kwargs: + blueprint_id = kwargs['blueprintId'] + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if ca_certificate_identifier is None and 'caCertificateIdentifier' in kwargs: + ca_certificate_identifier = kwargs['caCertificateIdentifier'] + if cpu_count is None and 'cpuCount' in kwargs: + cpu_count = kwargs['cpuCount'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if disk_size is None and 'diskSize' in kwargs: + disk_size = kwargs['diskSize'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_name is None and 'finalSnapshotName' in kwargs: + final_snapshot_name = kwargs['finalSnapshotName'] + if master_database_name is None and 'masterDatabaseName' in kwargs: + master_database_name = kwargs['masterDatabaseName'] + if master_endpoint_address is None and 'masterEndpointAddress' in kwargs: + master_endpoint_address = kwargs['masterEndpointAddress'] + if master_endpoint_port is None and 'masterEndpointPort' in kwargs: + master_endpoint_port = kwargs['masterEndpointPort'] + if master_password is None and 'masterPassword' in kwargs: + master_password = kwargs['masterPassword'] + if master_username is None and 'masterUsername' in kwargs: + master_username = kwargs['masterUsername'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if ram_size is None and 'ramSize' in kwargs: + ram_size = kwargs['ramSize'] + if relational_database_name is None and 'relationalDatabaseName' in kwargs: + relational_database_name = kwargs['relationalDatabaseName'] + if secondary_availability_zone is None and 'secondaryAvailabilityZone' in kwargs: + secondary_availability_zone = kwargs['secondaryAvailabilityZone'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if support_code is None and 'supportCode' in kwargs: + support_code = kwargs['supportCode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if backup_retention_enabled is not None: - pulumi.set(__self__, "backup_retention_enabled", backup_retention_enabled) + _setter("backup_retention_enabled", backup_retention_enabled) if blueprint_id is not None: - pulumi.set(__self__, "blueprint_id", blueprint_id) + _setter("blueprint_id", blueprint_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if ca_certificate_identifier is not None: - pulumi.set(__self__, "ca_certificate_identifier", ca_certificate_identifier) + _setter("ca_certificate_identifier", ca_certificate_identifier) if cpu_count is not None: - pulumi.set(__self__, "cpu_count", cpu_count) + _setter("cpu_count", cpu_count) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if disk_size is not None: - pulumi.set(__self__, "disk_size", disk_size) + _setter("disk_size", disk_size) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_name is not None: - pulumi.set(__self__, "final_snapshot_name", final_snapshot_name) + _setter("final_snapshot_name", final_snapshot_name) if master_database_name is not None: - pulumi.set(__self__, "master_database_name", master_database_name) + _setter("master_database_name", master_database_name) if master_endpoint_address is not None: - pulumi.set(__self__, "master_endpoint_address", master_endpoint_address) + _setter("master_endpoint_address", master_endpoint_address) if master_endpoint_port is not None: - pulumi.set(__self__, "master_endpoint_port", master_endpoint_port) + _setter("master_endpoint_port", master_endpoint_port) if master_password is not None: - pulumi.set(__self__, "master_password", master_password) + _setter("master_password", master_password) if master_username is not None: - pulumi.set(__self__, "master_username", master_username) + _setter("master_username", master_username) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if ram_size is not None: - pulumi.set(__self__, "ram_size", ram_size) + _setter("ram_size", ram_size) if relational_database_name is not None: - pulumi.set(__self__, "relational_database_name", relational_database_name) + _setter("relational_database_name", relational_database_name) if secondary_availability_zone is not None: - pulumi.set(__self__, "secondary_availability_zone", secondary_availability_zone) + _setter("secondary_availability_zone", secondary_availability_zone) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if support_code is not None: - pulumi.set(__self__, "support_code", support_code) + _setter("support_code", support_code) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="applyImmediately") @@ -1070,6 +1264,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DatabaseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/disk.py b/sdk/python/pulumi_aws/lightsail/disk.py index ed3161746f4..19c5cd4d65e 100644 --- a/sdk/python/pulumi_aws/lightsail/disk.py +++ b/sdk/python/pulumi_aws/lightsail/disk.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DiskArgs', 'Disk'] @@ -25,12 +25,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Lightsail load balancer. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "size_in_gb", size_in_gb) + DiskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + size_in_gb=size_in_gb, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + size_in_gb: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if size_in_gb is None and 'sizeInGb' in kwargs: + size_in_gb = kwargs['sizeInGb'] + if size_in_gb is None: + raise TypeError("Missing 'size_in_gb' argument") + + _setter("availability_zone", availability_zone) + _setter("size_in_gb", size_in_gb) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="availabilityZone") @@ -103,25 +128,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. 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. """ + _DiskState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zone=availability_zone, + created_at=created_at, + name=name, + size_in_gb=size_in_gb, + support_code=support_code, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + size_in_gb: Optional[pulumi.Input[int]] = None, + support_code: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if size_in_gb is None and 'sizeInGb' in kwargs: + size_in_gb = kwargs['sizeInGb'] + if support_code is None and 'supportCode' in kwargs: + support_code = kwargs['supportCode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if size_in_gb is not None: - pulumi.set(__self__, "size_in_gb", size_in_gb) + _setter("size_in_gb", size_in_gb) if support_code is not None: - pulumi.set(__self__, "support_code", support_code) + _setter("support_code", support_code) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -310,6 +370,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DiskArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/disk_attachment.py b/sdk/python/pulumi_aws/lightsail/disk_attachment.py index 41f84e1d82e..389648d0e3a 100644 --- a/sdk/python/pulumi_aws/lightsail/disk_attachment.py +++ b/sdk/python/pulumi_aws/lightsail/disk_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['Disk_attachmentArgs', 'Disk_attachment'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] disk_path: The disk path to expose to the instance. :param pulumi.Input[str] instance_name: The name of the Lightsail Instance to attach to. """ - pulumi.set(__self__, "disk_name", disk_name) - pulumi.set(__self__, "disk_path", disk_path) - pulumi.set(__self__, "instance_name", instance_name) + Disk_attachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + disk_name=disk_name, + disk_path=disk_path, + instance_name=instance_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disk_name: Optional[pulumi.Input[str]] = None, + disk_path: Optional[pulumi.Input[str]] = None, + instance_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disk_name is None and 'diskName' in kwargs: + disk_name = kwargs['diskName'] + if disk_name is None: + raise TypeError("Missing 'disk_name' argument") + if disk_path is None and 'diskPath' in kwargs: + disk_path = kwargs['diskPath'] + if disk_path is None: + raise TypeError("Missing 'disk_path' argument") + if instance_name is None and 'instanceName' in kwargs: + instance_name = kwargs['instanceName'] + if instance_name is None: + raise TypeError("Missing 'instance_name' argument") + + _setter("disk_name", disk_name) + _setter("disk_path", disk_path) + _setter("instance_name", instance_name) @property @pulumi.getter(name="diskName") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] disk_path: The disk path to expose to the instance. :param pulumi.Input[str] instance_name: The name of the Lightsail Instance to attach to. """ + _Disk_attachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + disk_name=disk_name, + disk_path=disk_path, + instance_name=instance_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disk_name: Optional[pulumi.Input[str]] = None, + disk_path: Optional[pulumi.Input[str]] = None, + instance_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disk_name is None and 'diskName' in kwargs: + disk_name = kwargs['diskName'] + if disk_path is None and 'diskPath' in kwargs: + disk_path = kwargs['diskPath'] + if instance_name is None and 'instanceName' in kwargs: + instance_name = kwargs['instanceName'] + if disk_name is not None: - pulumi.set(__self__, "disk_name", disk_name) + _setter("disk_name", disk_name) if disk_path is not None: - pulumi.set(__self__, "disk_path", disk_path) + _setter("disk_path", disk_path) if instance_name is not None: - pulumi.set(__self__, "instance_name", instance_name) + _setter("instance_name", instance_name) @property @pulumi.getter(name="diskName") @@ -221,6 +269,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + Disk_attachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/distribution.py b/sdk/python/pulumi_aws/lightsail/distribution.py index 055eb59510a..58fb0a475d1 100644 --- a/sdk/python/pulumi_aws/lightsail/distribution.py +++ b/sdk/python/pulumi_aws/lightsail/distribution.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -44,23 +44,72 @@ def __init__(__self__, *, `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "bundle_id", bundle_id) - pulumi.set(__self__, "default_cache_behavior", default_cache_behavior) - pulumi.set(__self__, "origin", origin) + DistributionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bundle_id=bundle_id, + default_cache_behavior=default_cache_behavior, + origin=origin, + cache_behavior_settings=cache_behavior_settings, + cache_behaviors=cache_behaviors, + certificate_name=certificate_name, + ip_address_type=ip_address_type, + is_enabled=is_enabled, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bundle_id: Optional[pulumi.Input[str]] = None, + default_cache_behavior: Optional[pulumi.Input['DistributionDefaultCacheBehaviorArgs']] = None, + origin: Optional[pulumi.Input['DistributionOriginArgs']] = None, + cache_behavior_settings: Optional[pulumi.Input['DistributionCacheBehaviorSettingsArgs']] = None, + cache_behaviors: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionCacheBehaviorArgs']]]] = None, + certificate_name: Optional[pulumi.Input[str]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + is_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if bundle_id is None: + raise TypeError("Missing 'bundle_id' argument") + if default_cache_behavior is None and 'defaultCacheBehavior' in kwargs: + default_cache_behavior = kwargs['defaultCacheBehavior'] + if default_cache_behavior is None: + raise TypeError("Missing 'default_cache_behavior' argument") + if origin is None: + raise TypeError("Missing 'origin' argument") + if cache_behavior_settings is None and 'cacheBehaviorSettings' in kwargs: + cache_behavior_settings = kwargs['cacheBehaviorSettings'] + if cache_behaviors is None and 'cacheBehaviors' in kwargs: + cache_behaviors = kwargs['cacheBehaviors'] + if certificate_name is None and 'certificateName' in kwargs: + certificate_name = kwargs['certificateName'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if is_enabled is None and 'isEnabled' in kwargs: + is_enabled = kwargs['isEnabled'] + + _setter("bundle_id", bundle_id) + _setter("default_cache_behavior", default_cache_behavior) + _setter("origin", origin) if cache_behavior_settings is not None: - pulumi.set(__self__, "cache_behavior_settings", cache_behavior_settings) + _setter("cache_behavior_settings", cache_behavior_settings) if cache_behaviors is not None: - pulumi.set(__self__, "cache_behaviors", cache_behaviors) + _setter("cache_behaviors", cache_behaviors) if certificate_name is not None: - pulumi.set(__self__, "certificate_name", certificate_name) + _setter("certificate_name", certificate_name) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if is_enabled is not None: - pulumi.set(__self__, "is_enabled", is_enabled) + _setter("is_enabled", is_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="bundleId") @@ -239,49 +288,126 @@ def __init__(__self__, *, 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. """ + _DistributionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alternative_domain_names=alternative_domain_names, + arn=arn, + bundle_id=bundle_id, + cache_behavior_settings=cache_behavior_settings, + cache_behaviors=cache_behaviors, + certificate_name=certificate_name, + created_at=created_at, + default_cache_behavior=default_cache_behavior, + domain_name=domain_name, + ip_address_type=ip_address_type, + is_enabled=is_enabled, + locations=locations, + name=name, + origin=origin, + origin_public_dns=origin_public_dns, + resource_type=resource_type, + status=status, + support_code=support_code, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alternative_domain_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + cache_behavior_settings: Optional[pulumi.Input['DistributionCacheBehaviorSettingsArgs']] = None, + cache_behaviors: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionCacheBehaviorArgs']]]] = None, + certificate_name: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + default_cache_behavior: Optional[pulumi.Input['DistributionDefaultCacheBehaviorArgs']] = None, + domain_name: Optional[pulumi.Input[str]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + is_enabled: Optional[pulumi.Input[bool]] = None, + locations: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionLocationArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + origin: Optional[pulumi.Input['DistributionOriginArgs']] = None, + origin_public_dns: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + support_code: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alternative_domain_names is None and 'alternativeDomainNames' in kwargs: + alternative_domain_names = kwargs['alternativeDomainNames'] + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if cache_behavior_settings is None and 'cacheBehaviorSettings' in kwargs: + cache_behavior_settings = kwargs['cacheBehaviorSettings'] + if cache_behaviors is None and 'cacheBehaviors' in kwargs: + cache_behaviors = kwargs['cacheBehaviors'] + if certificate_name is None and 'certificateName' in kwargs: + certificate_name = kwargs['certificateName'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if default_cache_behavior is None and 'defaultCacheBehavior' in kwargs: + default_cache_behavior = kwargs['defaultCacheBehavior'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if is_enabled is None and 'isEnabled' in kwargs: + is_enabled = kwargs['isEnabled'] + if origin_public_dns is None and 'originPublicDns' in kwargs: + origin_public_dns = kwargs['originPublicDns'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if support_code is None and 'supportCode' in kwargs: + support_code = kwargs['supportCode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if alternative_domain_names is not None: - pulumi.set(__self__, "alternative_domain_names", alternative_domain_names) + _setter("alternative_domain_names", alternative_domain_names) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if cache_behavior_settings is not None: - pulumi.set(__self__, "cache_behavior_settings", cache_behavior_settings) + _setter("cache_behavior_settings", cache_behavior_settings) if cache_behaviors is not None: - pulumi.set(__self__, "cache_behaviors", cache_behaviors) + _setter("cache_behaviors", cache_behaviors) if certificate_name is not None: - pulumi.set(__self__, "certificate_name", certificate_name) + _setter("certificate_name", certificate_name) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if default_cache_behavior is not None: - pulumi.set(__self__, "default_cache_behavior", default_cache_behavior) + _setter("default_cache_behavior", default_cache_behavior) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if is_enabled is not None: - pulumi.set(__self__, "is_enabled", is_enabled) + _setter("is_enabled", is_enabled) if locations is not None: - pulumi.set(__self__, "locations", locations) + _setter("locations", locations) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if origin is not None: - pulumi.set(__self__, "origin", origin) + _setter("origin", origin) if origin_public_dns is not None: - pulumi.set(__self__, "origin_public_dns", origin_public_dns) + _setter("origin_public_dns", origin_public_dns) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if support_code is not None: - pulumi.set(__self__, "support_code", support_code) + _setter("support_code", support_code) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="alternativeDomainNames") @@ -816,6 +942,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DistributionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -843,15 +973,18 @@ def _internal_init(__self__, if bundle_id is None and not opts.urn: raise TypeError("Missing required property 'bundle_id'") __props__.__dict__["bundle_id"] = bundle_id + cache_behavior_settings = _utilities.configure(cache_behavior_settings, DistributionCacheBehaviorSettingsArgs, True) __props__.__dict__["cache_behavior_settings"] = cache_behavior_settings __props__.__dict__["cache_behaviors"] = cache_behaviors __props__.__dict__["certificate_name"] = certificate_name + default_cache_behavior = _utilities.configure(default_cache_behavior, DistributionDefaultCacheBehaviorArgs, True) if default_cache_behavior is None and not opts.urn: raise TypeError("Missing required property 'default_cache_behavior'") __props__.__dict__["default_cache_behavior"] = default_cache_behavior __props__.__dict__["ip_address_type"] = ip_address_type __props__.__dict__["is_enabled"] = is_enabled __props__.__dict__["name"] = name + origin = _utilities.configure(origin, DistributionOriginArgs, True) if origin is None and not opts.urn: raise TypeError("Missing required property 'origin'") __props__.__dict__["origin"] = origin diff --git a/sdk/python/pulumi_aws/lightsail/domain.py b/sdk/python/pulumi_aws/lightsail/domain.py index eb19a3af2b1..fa8834a34fa 100644 --- a/sdk/python/pulumi_aws/lightsail/domain.py +++ b/sdk/python/pulumi_aws/lightsail/domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainArgs', 'Domain'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a Domain resource. :param pulumi.Input[str] domain_name: The name of the Lightsail domain to manage """ - pulumi.set(__self__, "domain_name", domain_name) + DomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + + _setter("domain_name", domain_name) @property @pulumi.getter(name="domainName") @@ -44,10 +59,25 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The ARN of the Lightsail domain :param pulumi.Input[str] domain_name: The name of the Lightsail domain to manage """ + _DomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) @property @pulumi.getter @@ -137,6 +167,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/domain_entry.py b/sdk/python/pulumi_aws/lightsail/domain_entry.py index ef56d0dadb2..6f8a2184991 100644 --- a/sdk/python/pulumi_aws/lightsail/domain_entry.py +++ b/sdk/python/pulumi_aws/lightsail/domain_entry.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainEntryArgs', 'DomainEntry'] @@ -27,13 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[bool] is_alias: If the entry should be an alias Defaults to `false` :param pulumi.Input[str] name: Name of the entry record """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "target", target) - pulumi.set(__self__, "type", type) + DomainEntryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + target=target, + type=type, + is_alias=is_alias, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + is_alias: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if is_alias is None and 'isAlias' in kwargs: + is_alias = kwargs['isAlias'] + + _setter("domain_name", domain_name) + _setter("target", target) + _setter("type", type) if is_alias is not None: - pulumi.set(__self__, "is_alias", is_alias) + _setter("is_alias", is_alias) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="domainName") @@ -112,16 +141,39 @@ def __init__(__self__, *, :param pulumi.Input[str] target: Target of the domain entry :param pulumi.Input[str] type: Type of record """ + _DomainEntryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + is_alias=is_alias, + name=name, + target=target, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + is_alias: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if is_alias is None and 'isAlias' in kwargs: + is_alias = kwargs['isAlias'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if is_alias is not None: - pulumi.set(__self__, "is_alias", is_alias) + _setter("is_alias", is_alias) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="domainName") @@ -271,6 +323,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainEntryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/instance.py b/sdk/python/pulumi_aws/lightsail/instance.py index 2d4d8948986..47384f3b896 100644 --- a/sdk/python/pulumi_aws/lightsail/instance.py +++ b/sdk/python/pulumi_aws/lightsail/instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,21 +39,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. .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] user_data: Single lined launch script as a string to configure server with additional user data """ - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "blueprint_id", blueprint_id) - pulumi.set(__self__, "bundle_id", bundle_id) + InstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + blueprint_id=blueprint_id, + bundle_id=bundle_id, + add_on=add_on, + ip_address_type=ip_address_type, + key_pair_name=key_pair_name, + name=name, + tags=tags, + user_data=user_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + blueprint_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + add_on: Optional[pulumi.Input['InstanceAddOnArgs']] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + key_pair_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if blueprint_id is None and 'blueprintId' in kwargs: + blueprint_id = kwargs['blueprintId'] + if blueprint_id is None: + raise TypeError("Missing 'blueprint_id' argument") + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if bundle_id is None: + raise TypeError("Missing 'bundle_id' argument") + if add_on is None and 'addOn' in kwargs: + add_on = kwargs['addOn'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if key_pair_name is None and 'keyPairName' in kwargs: + key_pair_name = kwargs['keyPairName'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + + _setter("availability_zone", availability_zone) + _setter("blueprint_id", blueprint_id) + _setter("bundle_id", bundle_id) if add_on is not None: - pulumi.set(__self__, "add_on", add_on) + _setter("add_on", add_on) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if key_pair_name is not None: - pulumi.set(__self__, "key_pair_name", key_pair_name) + _setter("key_pair_name", key_pair_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) @property @pulumi.getter(name="availabilityZone") @@ -212,47 +259,124 @@ def __init__(__self__, *, :param pulumi.Input[str] user_data: Single lined launch script as a string to configure server with additional user data :param pulumi.Input[str] username: The user name for connecting to the instance (e.g., ec2-user). """ + _InstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + add_on=add_on, + arn=arn, + availability_zone=availability_zone, + blueprint_id=blueprint_id, + bundle_id=bundle_id, + cpu_count=cpu_count, + created_at=created_at, + ip_address_type=ip_address_type, + ipv6_addresses=ipv6_addresses, + is_static_ip=is_static_ip, + key_pair_name=key_pair_name, + name=name, + private_ip_address=private_ip_address, + public_ip_address=public_ip_address, + ram_size=ram_size, + tags=tags, + tags_all=tags_all, + user_data=user_data, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + add_on: Optional[pulumi.Input['InstanceAddOnArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + blueprint_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + cpu_count: Optional[pulumi.Input[int]] = None, + created_at: Optional[pulumi.Input[str]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + ipv6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + is_static_ip: Optional[pulumi.Input[bool]] = None, + key_pair_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + private_ip_address: Optional[pulumi.Input[str]] = None, + public_ip_address: Optional[pulumi.Input[str]] = None, + ram_size: Optional[pulumi.Input[float]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_data: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if add_on is None and 'addOn' in kwargs: + add_on = kwargs['addOn'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if blueprint_id is None and 'blueprintId' in kwargs: + blueprint_id = kwargs['blueprintId'] + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if cpu_count is None and 'cpuCount' in kwargs: + cpu_count = kwargs['cpuCount'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if ipv6_addresses is None and 'ipv6Addresses' in kwargs: + ipv6_addresses = kwargs['ipv6Addresses'] + if is_static_ip is None and 'isStaticIp' in kwargs: + is_static_ip = kwargs['isStaticIp'] + if key_pair_name is None and 'keyPairName' in kwargs: + key_pair_name = kwargs['keyPairName'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if public_ip_address is None and 'publicIpAddress' in kwargs: + public_ip_address = kwargs['publicIpAddress'] + if ram_size is None and 'ramSize' in kwargs: + ram_size = kwargs['ramSize'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_data is None and 'userData' in kwargs: + user_data = kwargs['userData'] + if add_on is not None: - pulumi.set(__self__, "add_on", add_on) + _setter("add_on", add_on) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if blueprint_id is not None: - pulumi.set(__self__, "blueprint_id", blueprint_id) + _setter("blueprint_id", blueprint_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if cpu_count is not None: - pulumi.set(__self__, "cpu_count", cpu_count) + _setter("cpu_count", cpu_count) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if ipv6_addresses is not None: - pulumi.set(__self__, "ipv6_addresses", ipv6_addresses) + _setter("ipv6_addresses", ipv6_addresses) if is_static_ip is not None: - pulumi.set(__self__, "is_static_ip", is_static_ip) + _setter("is_static_ip", is_static_ip) if key_pair_name is not None: - pulumi.set(__self__, "key_pair_name", key_pair_name) + _setter("key_pair_name", key_pair_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if public_ip_address is not None: - pulumi.set(__self__, "public_ip_address", public_ip_address) + _setter("public_ip_address", public_ip_address) if ram_size is not None: - pulumi.set(__self__, "ram_size", ram_size) + _setter("ram_size", ram_size) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_data is not None: - pulumi.set(__self__, "user_data", user_data) + _setter("user_data", user_data) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter(name="addOn") @@ -767,6 +891,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -790,6 +918,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = InstanceArgs.__new__(InstanceArgs) + add_on = _utilities.configure(add_on, InstanceAddOnArgs, True) __props__.__dict__["add_on"] = add_on if availability_zone is None and not opts.urn: raise TypeError("Missing required property 'availability_zone'") diff --git a/sdk/python/pulumi_aws/lightsail/instance_public_ports.py b/sdk/python/pulumi_aws/lightsail/instance_public_ports.py index e7f39f0a8f3..706d8cd0b04 100644 --- a/sdk/python/pulumi_aws/lightsail/instance_public_ports.py +++ b/sdk/python/pulumi_aws/lightsail/instance_public_ports.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_name: Name of the Lightsail Instance. :param pulumi.Input[Sequence[pulumi.Input['InstancePublicPortsPortInfoArgs']]] port_infos: Configuration block with port information. AWS closes all currently open ports that are not included in the `port_info`. Detailed below. """ - pulumi.set(__self__, "instance_name", instance_name) - pulumi.set(__self__, "port_infos", port_infos) + InstancePublicPortsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_name=instance_name, + port_infos=port_infos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_name: Optional[pulumi.Input[str]] = None, + port_infos: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePublicPortsPortInfoArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_name is None and 'instanceName' in kwargs: + instance_name = kwargs['instanceName'] + if instance_name is None: + raise TypeError("Missing 'instance_name' argument") + if port_infos is None and 'portInfos' in kwargs: + port_infos = kwargs['portInfos'] + if port_infos is None: + raise TypeError("Missing 'port_infos' argument") + + _setter("instance_name", instance_name) + _setter("port_infos", port_infos) @property @pulumi.getter(name="instanceName") @@ -61,10 +82,27 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_name: Name of the Lightsail Instance. :param pulumi.Input[Sequence[pulumi.Input['InstancePublicPortsPortInfoArgs']]] port_infos: Configuration block with port information. AWS closes all currently open ports that are not included in the `port_info`. Detailed below. """ + _InstancePublicPortsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_name=instance_name, + port_infos=port_infos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_name: Optional[pulumi.Input[str]] = None, + port_infos: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePublicPortsPortInfoArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_name is None and 'instanceName' in kwargs: + instance_name = kwargs['instanceName'] + if port_infos is None and 'portInfos' in kwargs: + port_infos = kwargs['portInfos'] + if instance_name is not None: - pulumi.set(__self__, "instance_name", instance_name) + _setter("instance_name", instance_name) if port_infos is not None: - pulumi.set(__self__, "port_infos", port_infos) + _setter("port_infos", port_infos) @property @pulumi.getter(name="instanceName") @@ -172,6 +210,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstancePublicPortsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/key_pair.py b/sdk/python/pulumi_aws/lightsail/key_pair.py index 8a9f34d8988..fac0fd382c4 100644 --- a/sdk/python/pulumi_aws/lightsail/key_pair.py +++ b/sdk/python/pulumi_aws/lightsail/key_pair.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KeyPairArgs', 'KeyPair'] @@ -28,16 +28,41 @@ def __init__(__self__, *, > **NOTE:** a PGP key is not required, however it is strongly encouraged. Without a PGP key, the private key material will be stored in state unencrypted.`pgp_key` is ignored if `public_key` is supplied. """ + KeyPairArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + name_prefix=name_prefix, + pgp_key=pgp_key, + public_key=public_key, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + pgp_key: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if pgp_key is None and 'pgpKey' in kwargs: + pgp_key = kwargs['pgpKey'] + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if pgp_key is not None: - pulumi.set(__self__, "pgp_key", pgp_key) + _setter("pgp_key", pgp_key) if public_key is not None: - pulumi.set(__self__, "public_key", public_key) + _setter("public_key", public_key) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -127,31 +152,76 @@ def __init__(__self__, *, > **NOTE:** a PGP key is not required, however it is strongly encouraged. Without a PGP key, the private key material will be stored in state unencrypted.`pgp_key` is ignored if `public_key` is supplied. """ + _KeyPairState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + encrypted_fingerprint=encrypted_fingerprint, + encrypted_private_key=encrypted_private_key, + fingerprint=fingerprint, + name=name, + name_prefix=name_prefix, + pgp_key=pgp_key, + private_key=private_key, + public_key=public_key, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + encrypted_fingerprint: Optional[pulumi.Input[str]] = None, + encrypted_private_key: Optional[pulumi.Input[str]] = None, + fingerprint: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + pgp_key: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encrypted_fingerprint is None and 'encryptedFingerprint' in kwargs: + encrypted_fingerprint = kwargs['encryptedFingerprint'] + if encrypted_private_key is None and 'encryptedPrivateKey' in kwargs: + encrypted_private_key = kwargs['encryptedPrivateKey'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if pgp_key is None and 'pgpKey' in kwargs: + pgp_key = kwargs['pgpKey'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if encrypted_fingerprint is not None: - pulumi.set(__self__, "encrypted_fingerprint", encrypted_fingerprint) + _setter("encrypted_fingerprint", encrypted_fingerprint) if encrypted_private_key is not None: - pulumi.set(__self__, "encrypted_private_key", encrypted_private_key) + _setter("encrypted_private_key", encrypted_private_key) if fingerprint is not None: - pulumi.set(__self__, "fingerprint", fingerprint) + _setter("fingerprint", fingerprint) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if pgp_key is not None: - pulumi.set(__self__, "pgp_key", pgp_key) + _setter("pgp_key", pgp_key) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if public_key is not None: - pulumi.set(__self__, "public_key", public_key) + _setter("public_key", public_key) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -397,6 +467,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KeyPairArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/lb.py b/sdk/python/pulumi_aws/lightsail/lb.py index 64d163bff82..fce81145831 100644 --- a/sdk/python/pulumi_aws/lightsail/lb.py +++ b/sdk/python/pulumi_aws/lightsail/lb.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LbArgs', 'Lb'] @@ -26,15 +26,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Lightsail load balancer. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "instance_port", instance_port) + LbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_port=instance_port, + health_check_path=health_check_path, + ip_address_type=ip_address_type, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_port: Optional[pulumi.Input[int]] = None, + health_check_path: Optional[pulumi.Input[str]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if instance_port is None: + raise TypeError("Missing 'instance_port' argument") + if health_check_path is None and 'healthCheckPath' in kwargs: + health_check_path = kwargs['healthCheckPath'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + + _setter("instance_port", instance_port) if health_check_path is not None: - pulumi.set(__self__, "health_check_path", health_check_path) + _setter("health_check_path", health_check_path) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="instancePort") @@ -123,33 +150,82 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. 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. """ + _LbState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_at=created_at, + dns_name=dns_name, + health_check_path=health_check_path, + instance_port=instance_port, + ip_address_type=ip_address_type, + name=name, + protocol=protocol, + public_ports=public_ports, + support_code=support_code, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + health_check_path: Optional[pulumi.Input[str]] = None, + instance_port: Optional[pulumi.Input[int]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + public_ports: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + support_code: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if health_check_path is None and 'healthCheckPath' in kwargs: + health_check_path = kwargs['healthCheckPath'] + if instance_port is None and 'instancePort' in kwargs: + instance_port = kwargs['instancePort'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if public_ports is None and 'publicPorts' in kwargs: + public_ports = kwargs['publicPorts'] + if support_code is None and 'supportCode' in kwargs: + support_code = kwargs['supportCode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if health_check_path is not None: - pulumi.set(__self__, "health_check_path", health_check_path) + _setter("health_check_path", health_check_path) if instance_port is not None: - pulumi.set(__self__, "instance_port", instance_port) + _setter("instance_port", instance_port) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if public_ports is not None: - pulumi.set(__self__, "public_ports", public_ports) + _setter("public_ports", public_ports) if support_code is not None: - pulumi.set(__self__, "support_code", support_code) + _setter("support_code", support_code) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -380,6 +456,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LbArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/lb_attachment.py b/sdk/python/pulumi_aws/lightsail/lb_attachment.py index 6e74af55e99..ca775c09530 100644 --- a/sdk/python/pulumi_aws/lightsail/lb_attachment.py +++ b/sdk/python/pulumi_aws/lightsail/lb_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LbAttachmentArgs', 'LbAttachment'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_name: The name of the instance to attach to the load balancer. :param pulumi.Input[str] lb_name: The name of the Lightsail load balancer. """ - pulumi.set(__self__, "instance_name", instance_name) - pulumi.set(__self__, "lb_name", lb_name) + LbAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_name=instance_name, + lb_name=lb_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_name: Optional[pulumi.Input[str]] = None, + lb_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_name is None and 'instanceName' in kwargs: + instance_name = kwargs['instanceName'] + if instance_name is None: + raise TypeError("Missing 'instance_name' argument") + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if lb_name is None: + raise TypeError("Missing 'lb_name' argument") + + _setter("instance_name", instance_name) + _setter("lb_name", lb_name) @property @pulumi.getter(name="instanceName") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_name: The name of the instance to attach to the load balancer. :param pulumi.Input[str] lb_name: The name of the Lightsail load balancer. """ + _LbAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_name=instance_name, + lb_name=lb_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_name: Optional[pulumi.Input[str]] = None, + lb_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_name is None and 'instanceName' in kwargs: + instance_name = kwargs['instanceName'] + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if instance_name is not None: - pulumi.set(__self__, "instance_name", instance_name) + _setter("instance_name", instance_name) if lb_name is not None: - pulumi.set(__self__, "lb_name", lb_name) + _setter("lb_name", lb_name) @property @pulumi.getter(name="instanceName") @@ -192,6 +230,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LbAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/lb_certificate.py b/sdk/python/pulumi_aws/lightsail/lb_certificate.py index bdfae1b5e67..67c1b535a16 100644 --- a/sdk/python/pulumi_aws/lightsail/lb_certificate.py +++ b/sdk/python/pulumi_aws/lightsail/lb_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,38 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The SSL/TLS certificate name. :param pulumi.Input[Sequence[pulumi.Input[str]]] subject_alternative_names: Set of domains that should be SANs in the issued certificate. `domain_name` attribute is automatically added as a Subject Alternative Name. """ - pulumi.set(__self__, "lb_name", lb_name) + LbCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lb_name=lb_name, + domain_name=domain_name, + name=name, + subject_alternative_names=subject_alternative_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lb_name: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + subject_alternative_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if lb_name is None: + raise TypeError("Missing 'lb_name' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + + _setter("lb_name", lb_name) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) @property @pulumi.getter(name="lbName") @@ -104,22 +129,59 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The SSL/TLS certificate name. :param pulumi.Input[Sequence[pulumi.Input[str]]] subject_alternative_names: Set of domains that should be SANs in the issued certificate. `domain_name` attribute is automatically added as a Subject Alternative Name. """ + _LbCertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_at=created_at, + domain_name=domain_name, + domain_validation_records=domain_validation_records, + lb_name=lb_name, + name=name, + subject_alternative_names=subject_alternative_names, + support_code=support_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + domain_validation_records: Optional[pulumi.Input[Sequence[pulumi.Input['LbCertificateDomainValidationRecordArgs']]]] = None, + lb_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + subject_alternative_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + support_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_validation_records is None and 'domainValidationRecords' in kwargs: + domain_validation_records = kwargs['domainValidationRecords'] + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if subject_alternative_names is None and 'subjectAlternativeNames' in kwargs: + subject_alternative_names = kwargs['subjectAlternativeNames'] + if support_code is None and 'supportCode' in kwargs: + support_code = kwargs['supportCode'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if domain_validation_records is not None: - pulumi.set(__self__, "domain_validation_records", domain_validation_records) + _setter("domain_validation_records", domain_validation_records) if lb_name is not None: - pulumi.set(__self__, "lb_name", lb_name) + _setter("lb_name", lb_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subject_alternative_names is not None: - pulumi.set(__self__, "subject_alternative_names", subject_alternative_names) + _setter("subject_alternative_names", subject_alternative_names) if support_code is not None: - pulumi.set(__self__, "support_code", support_code) + _setter("support_code", support_code) @property @pulumi.getter @@ -301,6 +363,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LbCertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/lb_certificate_attachment.py b/sdk/python/pulumi_aws/lightsail/lb_certificate_attachment.py index f8f7e17949c..d26705865a4 100644 --- a/sdk/python/pulumi_aws/lightsail/lb_certificate_attachment.py +++ b/sdk/python/pulumi_aws/lightsail/lb_certificate_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LbCertificateAttachmentArgs', 'LbCertificateAttachment'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_name: The name of your SSL/TLS certificate. :param pulumi.Input[str] lb_name: The name of the load balancer to which you want to associate the SSL/TLS certificate. """ - pulumi.set(__self__, "certificate_name", certificate_name) - pulumi.set(__self__, "lb_name", lb_name) + LbCertificateAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_name=certificate_name, + lb_name=lb_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_name: Optional[pulumi.Input[str]] = None, + lb_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_name is None and 'certificateName' in kwargs: + certificate_name = kwargs['certificateName'] + if certificate_name is None: + raise TypeError("Missing 'certificate_name' argument") + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if lb_name is None: + raise TypeError("Missing 'lb_name' argument") + + _setter("certificate_name", certificate_name) + _setter("lb_name", lb_name) @property @pulumi.getter(name="certificateName") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] certificate_name: The name of your SSL/TLS certificate. :param pulumi.Input[str] lb_name: The name of the load balancer to which you want to associate the SSL/TLS certificate. """ + _LbCertificateAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_name=certificate_name, + lb_name=lb_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_name: Optional[pulumi.Input[str]] = None, + lb_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_name is None and 'certificateName' in kwargs: + certificate_name = kwargs['certificateName'] + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if certificate_name is not None: - pulumi.set(__self__, "certificate_name", certificate_name) + _setter("certificate_name", certificate_name) if lb_name is not None: - pulumi.set(__self__, "lb_name", lb_name) + _setter("lb_name", lb_name) @property @pulumi.getter(name="certificateName") @@ -180,6 +218,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LbCertificateAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/lb_https_redirection_policy.py b/sdk/python/pulumi_aws/lightsail/lb_https_redirection_policy.py index d437ce18adb..76ab0e96eeb 100644 --- a/sdk/python/pulumi_aws/lightsail/lb_https_redirection_policy.py +++ b/sdk/python/pulumi_aws/lightsail/lb_https_redirection_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LbHttpsRedirectionPolicyArgs', 'LbHttpsRedirectionPolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: The Https Redirection state of the load balancer. `true` to activate http to https redirection or `false` to deactivate http to https redirection. :param pulumi.Input[str] lb_name: The name of the load balancer to which you want to enable http to https redirection. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "lb_name", lb_name) + LbHttpsRedirectionPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + lb_name=lb_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + lb_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if lb_name is None: + raise TypeError("Missing 'lb_name' argument") + + _setter("enabled", enabled) + _setter("lb_name", lb_name) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: The Https Redirection state of the load balancer. `true` to activate http to https redirection or `false` to deactivate http to https redirection. :param pulumi.Input[str] lb_name: The name of the load balancer to which you want to enable http to https redirection. """ + _LbHttpsRedirectionPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + lb_name=lb_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + lb_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if lb_name is not None: - pulumi.set(__self__, "lb_name", lb_name) + _setter("lb_name", lb_name) @property @pulumi.getter @@ -186,6 +220,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LbHttpsRedirectionPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/lb_stickiness_policy.py b/sdk/python/pulumi_aws/lightsail/lb_stickiness_policy.py index 949087e2766..ad6778fea56 100644 --- a/sdk/python/pulumi_aws/lightsail/lb_stickiness_policy.py +++ b/sdk/python/pulumi_aws/lightsail/lb_stickiness_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LbStickinessPolicyArgs', 'LbStickinessPolicy'] @@ -23,9 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: The Session Stickiness state of the load balancer. `true` to activate session stickiness or `false` to deactivate session stickiness. :param pulumi.Input[str] lb_name: The name of the load balancer to which you want to enable session stickiness. """ - pulumi.set(__self__, "cookie_duration", cookie_duration) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "lb_name", lb_name) + LbStickinessPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_duration=cookie_duration, + enabled=enabled, + lb_name=lb_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_duration: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + lb_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_duration is None and 'cookieDuration' in kwargs: + cookie_duration = kwargs['cookieDuration'] + if cookie_duration is None: + raise TypeError("Missing 'cookie_duration' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if lb_name is None: + raise TypeError("Missing 'lb_name' argument") + + _setter("cookie_duration", cookie_duration) + _setter("enabled", enabled) + _setter("lb_name", lb_name) @property @pulumi.getter(name="cookieDuration") @@ -76,12 +101,31 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: The Session Stickiness state of the load balancer. `true` to activate session stickiness or `false` to deactivate session stickiness. :param pulumi.Input[str] lb_name: The name of the load balancer to which you want to enable session stickiness. """ + _LbStickinessPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie_duration=cookie_duration, + enabled=enabled, + lb_name=lb_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie_duration: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + lb_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookie_duration is None and 'cookieDuration' in kwargs: + cookie_duration = kwargs['cookieDuration'] + if lb_name is None and 'lbName' in kwargs: + lb_name = kwargs['lbName'] + if cookie_duration is not None: - pulumi.set(__self__, "cookie_duration", cookie_duration) + _setter("cookie_duration", cookie_duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if lb_name is not None: - pulumi.set(__self__, "lb_name", lb_name) + _setter("lb_name", lb_name) @property @pulumi.getter(name="cookieDuration") @@ -209,6 +253,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LbStickinessPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/outputs.py b/sdk/python/pulumi_aws/lightsail/outputs.py index 4a9f6b6d236..9159a8f6505 100644 --- a/sdk/python/pulumi_aws/lightsail/outputs.py +++ b/sdk/python/pulumi_aws/lightsail/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -65,14 +65,39 @@ def __init__(__self__, *, """ :param str domain_name: A domain name for which the certificate should be issued. """ + CertificateDomainValidationOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + resource_record_name=resource_record_name, + resource_record_type=resource_record_type, + resource_record_value=resource_record_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + resource_record_name: Optional[str] = None, + resource_record_type: Optional[str] = None, + resource_record_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if resource_record_name is None and 'resourceRecordName' in kwargs: + resource_record_name = kwargs['resourceRecordName'] + if resource_record_type is None and 'resourceRecordType' in kwargs: + resource_record_type = kwargs['resourceRecordType'] + if resource_record_value is None and 'resourceRecordValue' in kwargs: + resource_record_value = kwargs['resourceRecordValue'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if resource_record_name is not None: - pulumi.set(__self__, "resource_record_name", resource_record_name) + _setter("resource_record_name", resource_record_name) if resource_record_type is not None: - pulumi.set(__self__, "resource_record_type", resource_record_type) + _setter("resource_record_type", resource_record_type) if resource_record_value is not None: - pulumi.set(__self__, "resource_record_value", resource_record_value) + _setter("resource_record_value", resource_record_value) @property @pulumi.getter(name="domainName") @@ -130,14 +155,39 @@ def __init__(__self__, *, :param Mapping[str, str] environment: A key-value map of the environment variables of the container. :param Mapping[str, str] ports: A key-value map of the open firewall ports of the container. Valid values: `HTTP`, `HTTPS`, `TCP`, `UDP`. """ - pulumi.set(__self__, "container_name", container_name) - pulumi.set(__self__, "image", image) + ContainerServiceDeploymentVersionContainer._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + image=image, + commands=commands, + environment=environment, + ports=ports, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[str] = None, + image: Optional[str] = None, + commands: Optional[Sequence[str]] = None, + environment: Optional[Mapping[str, str]] = None, + ports: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + if image is None: + raise TypeError("Missing 'image' argument") + + _setter("container_name", container_name) + _setter("image", image) if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if ports is not None: - pulumi.set(__self__, "ports", ports) + _setter("ports", ports) @property @pulumi.getter(name="containerName") @@ -212,9 +262,36 @@ def __init__(__self__, *, :param int container_port: The port of the container to which traffic is forwarded to. :param 'ContainerServiceDeploymentVersionPublicEndpointHealthCheckArgs' health_check: A configuration block that describes the health check configuration of the container. Detailed below. """ - pulumi.set(__self__, "container_name", container_name) - pulumi.set(__self__, "container_port", container_port) - pulumi.set(__self__, "health_check", health_check) + ContainerServiceDeploymentVersionPublicEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + container_port=container_port, + health_check=health_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[str] = None, + container_port: Optional[int] = None, + health_check: Optional['outputs.ContainerServiceDeploymentVersionPublicEndpointHealthCheck'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + if container_port is None and 'containerPort' in kwargs: + container_port = kwargs['containerPort'] + if container_port is None: + raise TypeError("Missing 'container_port' argument") + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if health_check is None: + raise TypeError("Missing 'health_check' argument") + + _setter("container_name", container_name) + _setter("container_port", container_port) + _setter("health_check", health_check) @property @pulumi.getter(name="containerName") @@ -283,18 +360,49 @@ def __init__(__self__, *, :param int timeout_seconds: The amount of time, in seconds, during which no response means a failed health check. You can specify between 2 and 60 seconds. Defaults to 2. :param int unhealthy_threshold: The number of consecutive health checks failures required before moving the container to the Unhealthy state. Defaults to 2. """ + ContainerServiceDeploymentVersionPublicEndpointHealthCheck._configure( + lambda key, value: pulumi.set(__self__, key, value), + healthy_threshold=healthy_threshold, + interval_seconds=interval_seconds, + path=path, + success_codes=success_codes, + timeout_seconds=timeout_seconds, + unhealthy_threshold=unhealthy_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + healthy_threshold: Optional[int] = None, + interval_seconds: Optional[int] = None, + path: Optional[str] = None, + success_codes: Optional[str] = None, + timeout_seconds: Optional[int] = None, + unhealthy_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if healthy_threshold is None and 'healthyThreshold' in kwargs: + healthy_threshold = kwargs['healthyThreshold'] + if interval_seconds is None and 'intervalSeconds' in kwargs: + interval_seconds = kwargs['intervalSeconds'] + if success_codes is None and 'successCodes' in kwargs: + success_codes = kwargs['successCodes'] + if timeout_seconds is None and 'timeoutSeconds' in kwargs: + timeout_seconds = kwargs['timeoutSeconds'] + if unhealthy_threshold is None and 'unhealthyThreshold' in kwargs: + unhealthy_threshold = kwargs['unhealthyThreshold'] + if healthy_threshold is not None: - pulumi.set(__self__, "healthy_threshold", healthy_threshold) + _setter("healthy_threshold", healthy_threshold) if interval_seconds is not None: - pulumi.set(__self__, "interval_seconds", interval_seconds) + _setter("interval_seconds", interval_seconds) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if success_codes is not None: - pulumi.set(__self__, "success_codes", success_codes) + _setter("success_codes", success_codes) if timeout_seconds is not None: - pulumi.set(__self__, "timeout_seconds", timeout_seconds) + _setter("timeout_seconds", timeout_seconds) if unhealthy_threshold is not None: - pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + _setter("unhealthy_threshold", unhealthy_threshold) @property @pulumi.getter(name="healthyThreshold") @@ -369,8 +477,21 @@ def __init__(__self__, *, """ :param 'ContainerServicePrivateRegistryAccessEcrImagePullerRoleArgs' ecr_image_puller_role: Describes a request to configure an Amazon Lightsail container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories. See ECR Image Puller Role below for more details. """ + ContainerServicePrivateRegistryAccess._configure( + lambda key, value: pulumi.set(__self__, key, value), + ecr_image_puller_role=ecr_image_puller_role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ecr_image_puller_role: Optional['outputs.ContainerServicePrivateRegistryAccessEcrImagePullerRole'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ecr_image_puller_role is None and 'ecrImagePullerRole' in kwargs: + ecr_image_puller_role = kwargs['ecrImagePullerRole'] + if ecr_image_puller_role is not None: - pulumi.set(__self__, "ecr_image_puller_role", ecr_image_puller_role) + _setter("ecr_image_puller_role", ecr_image_puller_role) @property @pulumi.getter(name="ecrImagePullerRole") @@ -411,10 +532,27 @@ def __init__(__self__, *, relationship between your standard AWS account and your Lightsail container service. This allows you to give your service permission to access resources in your standard AWS account. """ + ContainerServicePrivateRegistryAccessEcrImagePullerRole._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_active=is_active, + principal_arn=principal_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_active: Optional[bool] = None, + principal_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_active is None and 'isActive' in kwargs: + is_active = kwargs['isActive'] + if principal_arn is None and 'principalArn' in kwargs: + principal_arn = kwargs['principalArn'] + if is_active is not None: - pulumi.set(__self__, "is_active", is_active) + _setter("is_active", is_active) if principal_arn is not None: - pulumi.set(__self__, "principal_arn", principal_arn) + _setter("principal_arn", principal_arn) @property @pulumi.getter(name="isActive") @@ -439,7 +577,20 @@ def principal_arn(self) -> Optional[str]: class ContainerServicePublicDomainNames(dict): def __init__(__self__, *, certificates: Sequence['outputs.ContainerServicePublicDomainNamesCertificate']): - pulumi.set(__self__, "certificates", certificates) + ContainerServicePublicDomainNames._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificates=certificates, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificates: Optional[Sequence['outputs.ContainerServicePublicDomainNamesCertificate']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificates is None: + raise TypeError("Missing 'certificates' argument") + + _setter("certificates", certificates) @property @pulumi.getter @@ -471,8 +622,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, certificate_name: str, domain_names: Sequence[str]): - pulumi.set(__self__, "certificate_name", certificate_name) - pulumi.set(__self__, "domain_names", domain_names) + ContainerServicePublicDomainNamesCertificate._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_name=certificate_name, + domain_names=domain_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_name: Optional[str] = None, + domain_names: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_name is None and 'certificateName' in kwargs: + certificate_name = kwargs['certificateName'] + if certificate_name is None: + raise TypeError("Missing 'certificate_name' argument") + if domain_names is None and 'domainNames' in kwargs: + domain_names = kwargs['domainNames'] + if domain_names is None: + raise TypeError("Missing 'domain_names' argument") + + _setter("certificate_name", certificate_name) + _setter("domain_names", domain_names) @property @pulumi.getter(name="certificateName") @@ -494,8 +666,25 @@ def __init__(__self__, *, :param str behavior: The cache behavior for the specified path. :param str path: The path to a directory or file to cached, or not cache. Use an asterisk symbol to specify wildcard directories (path/to/assets/\\*), and file types (\\*.html, \\*jpg, \\*js). Directories and file paths are case-sensitive. """ - pulumi.set(__self__, "behavior", behavior) - pulumi.set(__self__, "path", path) + DistributionCacheBehavior._configure( + lambda key, value: pulumi.set(__self__, key, value), + behavior=behavior, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + behavior: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if behavior is None: + raise TypeError("Missing 'behavior' argument") + if path is None: + raise TypeError("Missing 'path' argument") + + _setter("behavior", behavior) + _setter("path", path) @property @pulumi.getter @@ -566,22 +755,63 @@ def __init__(__self__, *, :param int maximum_ttl: The maximum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. :param int minimum_ttl: The minimum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. """ + DistributionCacheBehaviorSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_http_methods=allowed_http_methods, + cached_http_methods=cached_http_methods, + default_ttl=default_ttl, + forwarded_cookies=forwarded_cookies, + forwarded_headers=forwarded_headers, + forwarded_query_strings=forwarded_query_strings, + maximum_ttl=maximum_ttl, + minimum_ttl=minimum_ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_http_methods: Optional[str] = None, + cached_http_methods: Optional[str] = None, + default_ttl: Optional[int] = None, + forwarded_cookies: Optional['outputs.DistributionCacheBehaviorSettingsForwardedCookies'] = None, + forwarded_headers: Optional['outputs.DistributionCacheBehaviorSettingsForwardedHeaders'] = None, + forwarded_query_strings: Optional['outputs.DistributionCacheBehaviorSettingsForwardedQueryStrings'] = None, + maximum_ttl: Optional[int] = None, + minimum_ttl: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_http_methods is None and 'allowedHttpMethods' in kwargs: + allowed_http_methods = kwargs['allowedHttpMethods'] + if cached_http_methods is None and 'cachedHttpMethods' in kwargs: + cached_http_methods = kwargs['cachedHttpMethods'] + if default_ttl is None and 'defaultTtl' in kwargs: + default_ttl = kwargs['defaultTtl'] + if forwarded_cookies is None and 'forwardedCookies' in kwargs: + forwarded_cookies = kwargs['forwardedCookies'] + if forwarded_headers is None and 'forwardedHeaders' in kwargs: + forwarded_headers = kwargs['forwardedHeaders'] + if forwarded_query_strings is None and 'forwardedQueryStrings' in kwargs: + forwarded_query_strings = kwargs['forwardedQueryStrings'] + if maximum_ttl is None and 'maximumTtl' in kwargs: + maximum_ttl = kwargs['maximumTtl'] + if minimum_ttl is None and 'minimumTtl' in kwargs: + minimum_ttl = kwargs['minimumTtl'] + if allowed_http_methods is not None: - pulumi.set(__self__, "allowed_http_methods", allowed_http_methods) + _setter("allowed_http_methods", allowed_http_methods) if cached_http_methods is not None: - pulumi.set(__self__, "cached_http_methods", cached_http_methods) + _setter("cached_http_methods", cached_http_methods) if default_ttl is not None: - pulumi.set(__self__, "default_ttl", default_ttl) + _setter("default_ttl", default_ttl) if forwarded_cookies is not None: - pulumi.set(__self__, "forwarded_cookies", forwarded_cookies) + _setter("forwarded_cookies", forwarded_cookies) if forwarded_headers is not None: - pulumi.set(__self__, "forwarded_headers", forwarded_headers) + _setter("forwarded_headers", forwarded_headers) if forwarded_query_strings is not None: - pulumi.set(__self__, "forwarded_query_strings", forwarded_query_strings) + _setter("forwarded_query_strings", forwarded_query_strings) if maximum_ttl is not None: - pulumi.set(__self__, "maximum_ttl", maximum_ttl) + _setter("maximum_ttl", maximum_ttl) if minimum_ttl is not None: - pulumi.set(__self__, "minimum_ttl", minimum_ttl) + _setter("minimum_ttl", minimum_ttl) @property @pulumi.getter(name="allowedHttpMethods") @@ -674,10 +904,25 @@ def __init__(__self__, *, :param Sequence[str] cookies_allow_lists: The specific cookies to forward to your distribution's origin. :param str option: Specifies which cookies to forward to the distribution's origin for a cache behavior: all, none, or allow-list to forward only the cookies specified in the cookiesAllowList parameter. """ + DistributionCacheBehaviorSettingsForwardedCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookies_allow_lists=cookies_allow_lists, + option=option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookies_allow_lists: Optional[Sequence[str]] = None, + option: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cookies_allow_lists is None and 'cookiesAllowLists' in kwargs: + cookies_allow_lists = kwargs['cookiesAllowLists'] + if cookies_allow_lists is not None: - pulumi.set(__self__, "cookies_allow_lists", cookies_allow_lists) + _setter("cookies_allow_lists", cookies_allow_lists) if option is not None: - pulumi.set(__self__, "option", option) + _setter("option", option) @property @pulumi.getter(name="cookiesAllowLists") @@ -722,10 +967,25 @@ def __init__(__self__, *, :param Sequence[str] headers_allow_lists: The specific headers to forward to your distribution's origin. :param str option: The headers that you want your distribution to forward to your origin and base caching on. """ + DistributionCacheBehaviorSettingsForwardedHeaders._configure( + lambda key, value: pulumi.set(__self__, key, value), + headers_allow_lists=headers_allow_lists, + option=option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + headers_allow_lists: Optional[Sequence[str]] = None, + option: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if headers_allow_lists is None and 'headersAllowLists' in kwargs: + headers_allow_lists = kwargs['headersAllowLists'] + if headers_allow_lists is not None: - pulumi.set(__self__, "headers_allow_lists", headers_allow_lists) + _setter("headers_allow_lists", headers_allow_lists) if option is not None: - pulumi.set(__self__, "option", option) + _setter("option", option) @property @pulumi.getter(name="headersAllowLists") @@ -770,10 +1030,25 @@ def __init__(__self__, *, :param bool option: Indicates whether the distribution forwards and caches based on query strings. :param Sequence[str] query_strings_allowed_lists: The specific query strings that the distribution forwards to the origin. """ + DistributionCacheBehaviorSettingsForwardedQueryStrings._configure( + lambda key, value: pulumi.set(__self__, key, value), + option=option, + query_strings_allowed_lists=query_strings_allowed_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + option: Optional[bool] = None, + query_strings_allowed_lists: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_strings_allowed_lists is None and 'queryStringsAllowedLists' in kwargs: + query_strings_allowed_lists = kwargs['queryStringsAllowedLists'] + if option is not None: - pulumi.set(__self__, "option", option) + _setter("option", option) if query_strings_allowed_lists is not None: - pulumi.set(__self__, "query_strings_allowed_lists", query_strings_allowed_lists) + _setter("query_strings_allowed_lists", query_strings_allowed_lists) @property @pulumi.getter @@ -799,7 +1074,20 @@ def __init__(__self__, *, """ :param str behavior: The cache behavior of the distribution. Valid values: `cache` and `dont-cache`. """ - pulumi.set(__self__, "behavior", behavior) + DistributionDefaultCacheBehavior._configure( + lambda key, value: pulumi.set(__self__, key, value), + behavior=behavior, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + behavior: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if behavior is None: + raise TypeError("Missing 'behavior' argument") + + _setter("behavior", behavior) @property @pulumi.getter @@ -838,8 +1126,29 @@ def __init__(__self__, *, :param str availability_zone: The Availability Zone. Follows the format us-east-2a (case-sensitive). :param str region_name: The AWS Region name of the origin resource. """ - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "region_name", region_name) + DistributionLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + region_name=region_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + region_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + + _setter("availability_zone", availability_zone) + _setter("region_name", region_name) @property @pulumi.getter(name="availabilityZone") @@ -892,12 +1201,39 @@ def __init__(__self__, *, :param str protocol_policy: The protocol that your Amazon Lightsail distribution uses when establishing a connection with your origin to pull content. :param str resource_type: The resource type of the origin resource (e.g., Instance). """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "region_name", region_name) + DistributionOrigin._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + region_name=region_name, + protocol_policy=protocol_policy, + resource_type=resource_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + region_name: Optional[str] = None, + protocol_policy: Optional[str] = None, + resource_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if region_name is None and 'regionName' in kwargs: + region_name = kwargs['regionName'] + if region_name is None: + raise TypeError("Missing 'region_name' argument") + if protocol_policy is None and 'protocolPolicy' in kwargs: + protocol_policy = kwargs['protocolPolicy'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + + _setter("name", name) + _setter("region_name", region_name) if protocol_policy is not None: - pulumi.set(__self__, "protocol_policy", protocol_policy) + _setter("protocol_policy", protocol_policy) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) @property @pulumi.getter @@ -960,9 +1296,32 @@ def __init__(__self__, *, :param str status: The status of the add on. Valid Values: `Enabled`, `Disabled`. :param str type: The add-on type. There is currently only one valid type `AutoSnapshot`. """ - pulumi.set(__self__, "snapshot_time", snapshot_time) - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "type", type) + InstanceAddOn._configure( + lambda key, value: pulumi.set(__self__, key, value), + snapshot_time=snapshot_time, + status=status, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + snapshot_time: Optional[str] = None, + status: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if snapshot_time is None and 'snapshotTime' in kwargs: + snapshot_time = kwargs['snapshotTime'] + if snapshot_time is None: + raise TypeError("Missing 'snapshot_time' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("snapshot_time", snapshot_time) + _setter("status", status) + _setter("type", type) @property @pulumi.getter(name="snapshotTime") @@ -1030,15 +1389,50 @@ def __init__(__self__, *, :param Sequence[str] cidr_list_aliases: Set of CIDR aliases that define access for a preconfigured range of IP addresses. :param Sequence[str] cidrs: Set of CIDR blocks. """ - pulumi.set(__self__, "from_port", from_port) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "to_port", to_port) + InstancePublicPortsPortInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + protocol=protocol, + to_port=to_port, + cidr_list_aliases=cidr_list_aliases, + cidrs=cidrs, + ipv6_cidrs=ipv6_cidrs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + protocol: Optional[str] = None, + to_port: Optional[int] = None, + cidr_list_aliases: Optional[Sequence[str]] = None, + cidrs: Optional[Sequence[str]] = None, + ipv6_cidrs: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if to_port is None: + raise TypeError("Missing 'to_port' argument") + if cidr_list_aliases is None and 'cidrListAliases' in kwargs: + cidr_list_aliases = kwargs['cidrListAliases'] + if ipv6_cidrs is None and 'ipv6Cidrs' in kwargs: + ipv6_cidrs = kwargs['ipv6Cidrs'] + + _setter("from_port", from_port) + _setter("protocol", protocol) + _setter("to_port", to_port) if cidr_list_aliases is not None: - pulumi.set(__self__, "cidr_list_aliases", cidr_list_aliases) + _setter("cidr_list_aliases", cidr_list_aliases) if cidrs is not None: - pulumi.set(__self__, "cidrs", cidrs) + _setter("cidrs", cidrs) if ipv6_cidrs is not None: - pulumi.set(__self__, "ipv6_cidrs", ipv6_cidrs) + _setter("ipv6_cidrs", ipv6_cidrs) @property @pulumi.getter(name="fromPort") @@ -1121,14 +1515,39 @@ def __init__(__self__, *, """ :param str domain_name: The domain name (e.g., example.com) for your SSL/TLS certificate. """ + LbCertificateDomainValidationRecord._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + resource_record_name=resource_record_name, + resource_record_type=resource_record_type, + resource_record_value=resource_record_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + resource_record_name: Optional[str] = None, + resource_record_type: Optional[str] = None, + resource_record_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if resource_record_name is None and 'resourceRecordName' in kwargs: + resource_record_name = kwargs['resourceRecordName'] + if resource_record_type is None and 'resourceRecordType' in kwargs: + resource_record_type = kwargs['resourceRecordType'] + if resource_record_value is None and 'resourceRecordValue' in kwargs: + resource_record_value = kwargs['resourceRecordValue'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if resource_record_name is not None: - pulumi.set(__self__, "resource_record_name", resource_record_name) + _setter("resource_record_name", resource_record_name) if resource_record_type is not None: - pulumi.set(__self__, "resource_record_type", resource_record_type) + _setter("resource_record_type", resource_record_type) if resource_record_value is not None: - pulumi.set(__self__, "resource_record_value", resource_record_value) + _setter("resource_record_value", resource_record_value) @property @pulumi.getter(name="domainName") diff --git a/sdk/python/pulumi_aws/lightsail/static_ip.py b/sdk/python/pulumi_aws/lightsail/static_ip.py index 4d73c7e4f73..30b02e95c56 100644 --- a/sdk/python/pulumi_aws/lightsail/static_ip.py +++ b/sdk/python/pulumi_aws/lightsail/static_ip.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StaticIpArgs', 'StaticIp'] @@ -19,8 +19,19 @@ def __init__(__self__, *, The set of arguments for constructing a StaticIp resource. :param pulumi.Input[str] name: The name for the allocated static IP """ + StaticIpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -49,14 +60,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name for the allocated static IP :param pulumi.Input[str] support_code: The support code. """ + _StaticIpState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_address=ip_address, + name=name, + support_code=support_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + support_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if support_code is None and 'supportCode' in kwargs: + support_code = kwargs['supportCode'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if support_code is not None: - pulumi.set(__self__, "support_code", support_code) + _setter("support_code", support_code) @property @pulumi.getter @@ -162,6 +194,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StaticIpArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/lightsail/static_ip_attachment.py b/sdk/python/pulumi_aws/lightsail/static_ip_attachment.py index c6a363750eb..d722bc431f6 100644 --- a/sdk/python/pulumi_aws/lightsail/static_ip_attachment.py +++ b/sdk/python/pulumi_aws/lightsail/static_ip_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StaticIpAttachmentArgs', 'StaticIpAttachment'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_name: The name of the Lightsail instance to attach the IP to :param pulumi.Input[str] static_ip_name: The name of the allocated static IP """ - pulumi.set(__self__, "instance_name", instance_name) - pulumi.set(__self__, "static_ip_name", static_ip_name) + StaticIpAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_name=instance_name, + static_ip_name=static_ip_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_name: Optional[pulumi.Input[str]] = None, + static_ip_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_name is None and 'instanceName' in kwargs: + instance_name = kwargs['instanceName'] + if instance_name is None: + raise TypeError("Missing 'instance_name' argument") + if static_ip_name is None and 'staticIpName' in kwargs: + static_ip_name = kwargs['staticIpName'] + if static_ip_name is None: + raise TypeError("Missing 'static_ip_name' argument") + + _setter("instance_name", instance_name) + _setter("static_ip_name", static_ip_name) @property @pulumi.getter(name="instanceName") @@ -61,12 +82,33 @@ def __init__(__self__, *, :param pulumi.Input[str] ip_address: The allocated static IP address :param pulumi.Input[str] static_ip_name: The name of the allocated static IP """ + _StaticIpAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_name=instance_name, + ip_address=ip_address, + static_ip_name=static_ip_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_name: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + static_ip_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_name is None and 'instanceName' in kwargs: + instance_name = kwargs['instanceName'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if static_ip_name is None and 'staticIpName' in kwargs: + static_ip_name = kwargs['staticIpName'] + if instance_name is not None: - pulumi.set(__self__, "instance_name", instance_name) + _setter("instance_name", instance_name) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if static_ip_name is not None: - pulumi.set(__self__, "static_ip_name", static_ip_name) + _setter("static_ip_name", static_ip_name) @property @pulumi.getter(name="instanceName") @@ -178,6 +220,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StaticIpAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/location/_inputs.py b/sdk/python/pulumi_aws/location/_inputs.py index 84f0d52b570..37e0c050411 100644 --- a/sdk/python/pulumi_aws/location/_inputs.py +++ b/sdk/python/pulumi_aws/location/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -21,7 +21,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] style: Specifies the map style selected from an available data provider. Valid values can be found in the [Location Service CreateMap API Reference](https://docs.aws.amazon.com/location/latest/APIReference/API_CreateMap.html). """ - pulumi.set(__self__, "style", style) + MapConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + style=style, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + style: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if style is None: + raise TypeError("Missing 'style' argument") + + _setter("style", style) @property @pulumi.getter @@ -43,8 +56,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] intended_use: Specifies how the results of an operation will be stored by the caller. Valid values: `SingleUse`, `Storage`. Default: `SingleUse`. """ + PlaceIndexDataSourceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + intended_use=intended_use, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + intended_use: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if intended_use is None and 'intendedUse' in kwargs: + intended_use = kwargs['intendedUse'] + if intended_use is not None: - pulumi.set(__self__, "intended_use", intended_use) + _setter("intended_use", intended_use) @property @pulumi.getter(name="intendedUse") diff --git a/sdk/python/pulumi_aws/location/geofence_collection.py b/sdk/python/pulumi_aws/location/geofence_collection.py index 950f611341c..42a63a4c13c 100644 --- a/sdk/python/pulumi_aws/location/geofence_collection.py +++ b/sdk/python/pulumi_aws/location/geofence_collection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GeofenceCollectionArgs', 'GeofenceCollection'] @@ -27,13 +27,36 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_id: A key identifier for an AWS KMS customer managed key assigned to the Amazon Location resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the geofence collection. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "collection_name", collection_name) + GeofenceCollectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + collection_name=collection_name, + description=description, + kms_key_id=kms_key_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + collection_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if collection_name is None and 'collectionName' in kwargs: + collection_name = kwargs['collectionName'] + if collection_name is None: + raise TypeError("Missing 'collection_name' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("collection_name", collection_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="collectionName") @@ -109,25 +132,62 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the geofence collection. 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] update_time: The timestamp for when the geofence collection resource was last updated in ISO 8601 format. """ + _GeofenceCollectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + collection_arn=collection_arn, + collection_name=collection_name, + create_time=create_time, + description=description, + kms_key_id=kms_key_id, + tags=tags, + tags_all=tags_all, + update_time=update_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + collection_arn: Optional[pulumi.Input[str]] = None, + collection_name: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if collection_arn is None and 'collectionArn' in kwargs: + collection_arn = kwargs['collectionArn'] + if collection_name is None and 'collectionName' in kwargs: + collection_name = kwargs['collectionName'] + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_time is None and 'updateTime' in kwargs: + update_time = kwargs['updateTime'] + if collection_arn is not None: - pulumi.set(__self__, "collection_arn", collection_arn) + _setter("collection_arn", collection_arn) if collection_name is not None: - pulumi.set(__self__, "collection_name", collection_name) + _setter("collection_name", collection_name) if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if update_time is not None: - pulumi.set(__self__, "update_time", update_time) + _setter("update_time", update_time) @property @pulumi.getter(name="collectionArn") @@ -303,6 +363,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GeofenceCollectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/location/get_geofence_collection.py b/sdk/python/pulumi_aws/location/get_geofence_collection.py index 104494723df..459a07c0229 100644 --- a/sdk/python/pulumi_aws/location/get_geofence_collection.py +++ b/sdk/python/pulumi_aws/location/get_geofence_collection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/location/get_map.py b/sdk/python/pulumi_aws/location/get_map.py index 6ef56370f84..010e2aa4313 100644 --- a/sdk/python/pulumi_aws/location/get_map.py +++ b/sdk/python/pulumi_aws/location/get_map.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/location/get_place_index.py b/sdk/python/pulumi_aws/location/get_place_index.py index 863d358f52e..d38aa56e238 100644 --- a/sdk/python/pulumi_aws/location/get_place_index.py +++ b/sdk/python/pulumi_aws/location/get_place_index.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/location/get_route_calculator.py b/sdk/python/pulumi_aws/location/get_route_calculator.py index 9c0555e6f26..3b5331856e1 100644 --- a/sdk/python/pulumi_aws/location/get_route_calculator.py +++ b/sdk/python/pulumi_aws/location/get_route_calculator.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/location/get_tracker.py b/sdk/python/pulumi_aws/location/get_tracker.py index e38f24dd249..70a27672a34 100644 --- a/sdk/python/pulumi_aws/location/get_tracker.py +++ b/sdk/python/pulumi_aws/location/get_tracker.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/location/get_tracker_association.py b/sdk/python/pulumi_aws/location/get_tracker_association.py index 2f04b6a469b..a6acb3edc9e 100644 --- a/sdk/python/pulumi_aws/location/get_tracker_association.py +++ b/sdk/python/pulumi_aws/location/get_tracker_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/location/get_tracker_associations.py b/sdk/python/pulumi_aws/location/get_tracker_associations.py index 2a68109cc76..dbc701e4b4a 100644 --- a/sdk/python/pulumi_aws/location/get_tracker_associations.py +++ b/sdk/python/pulumi_aws/location/get_tracker_associations.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/location/map.py b/sdk/python/pulumi_aws/location/map.py index f886f3bf607..be2a21e4f1a 100644 --- a/sdk/python/pulumi_aws/location/map.py +++ b/sdk/python/pulumi_aws/location/map.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,12 +29,35 @@ def __init__(__self__, *, :param pulumi.Input[str] description: An optional description for the map resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the map. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "configuration", configuration) - pulumi.set(__self__, "map_name", map_name) + MapArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + map_name=map_name, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[pulumi.Input['MapConfigurationArgs']] = None, + map_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration is None: + raise TypeError("Missing 'configuration' argument") + if map_name is None and 'mapName' in kwargs: + map_name = kwargs['mapName'] + if map_name is None: + raise TypeError("Missing 'map_name' argument") + + _setter("configuration", configuration) + _setter("map_name", map_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -111,25 +134,60 @@ def __init__(__self__, *, :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] update_time: The timestamp for when the map resource was last updated in ISO 8601 format. """ + _MapState._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + create_time=create_time, + description=description, + map_arn=map_arn, + map_name=map_name, + tags=tags, + tags_all=tags_all, + update_time=update_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[pulumi.Input['MapConfigurationArgs']] = None, + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + map_arn: Optional[pulumi.Input[str]] = None, + map_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if map_arn is None and 'mapArn' in kwargs: + map_arn = kwargs['mapArn'] + if map_name is None and 'mapName' in kwargs: + map_name = kwargs['mapName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_time is None and 'updateTime' in kwargs: + update_time = kwargs['updateTime'] + if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if map_arn is not None: - pulumi.set(__self__, "map_arn", map_arn) + _setter("map_arn", map_arn) if map_name is not None: - pulumi.set(__self__, "map_name", map_name) + _setter("map_name", map_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if update_time is not None: - pulumi.set(__self__, "update_time", update_time) + _setter("update_time", update_time) @property @pulumi.getter @@ -316,6 +374,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MapArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -334,6 +396,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = MapArgs.__new__(MapArgs) + configuration = _utilities.configure(configuration, MapConfigurationArgs, True) if configuration is None and not opts.urn: raise TypeError("Missing required property 'configuration'") __props__.__dict__["configuration"] = configuration diff --git a/sdk/python/pulumi_aws/location/outputs.py b/sdk/python/pulumi_aws/location/outputs.py index 275eaea6383..4adb8901760 100644 --- a/sdk/python/pulumi_aws/location/outputs.py +++ b/sdk/python/pulumi_aws/location/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,7 +23,20 @@ def __init__(__self__, *, """ :param str style: Specifies the map style selected from an available data provider. Valid values can be found in the [Location Service CreateMap API Reference](https://docs.aws.amazon.com/location/latest/APIReference/API_CreateMap.html). """ - pulumi.set(__self__, "style", style) + MapConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + style=style, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + style: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if style is None: + raise TypeError("Missing 'style' argument") + + _setter("style", style) @property @pulumi.getter @@ -58,8 +71,21 @@ def __init__(__self__, *, """ :param str intended_use: Specifies how the results of an operation will be stored by the caller. Valid values: `SingleUse`, `Storage`. Default: `SingleUse`. """ + PlaceIndexDataSourceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + intended_use=intended_use, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + intended_use: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if intended_use is None and 'intendedUse' in kwargs: + intended_use = kwargs['intendedUse'] + if intended_use is not None: - pulumi.set(__self__, "intended_use", intended_use) + _setter("intended_use", intended_use) @property @pulumi.getter(name="intendedUse") @@ -77,7 +103,20 @@ def __init__(__self__, *, """ :param str style: The map style selected from an available data provider. """ - pulumi.set(__self__, "style", style) + GetMapConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + style=style, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + style: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if style is None: + raise TypeError("Missing 'style' argument") + + _setter("style", style) @property @pulumi.getter @@ -92,7 +131,22 @@ def style(self) -> str: class GetPlaceIndexDataSourceConfigurationResult(dict): def __init__(__self__, *, intended_use: str): - pulumi.set(__self__, "intended_use", intended_use) + GetPlaceIndexDataSourceConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + intended_use=intended_use, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + intended_use: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if intended_use is None and 'intendedUse' in kwargs: + intended_use = kwargs['intendedUse'] + if intended_use is None: + raise TypeError("Missing 'intended_use' argument") + + _setter("intended_use", intended_use) @property @pulumi.getter(name="intendedUse") diff --git a/sdk/python/pulumi_aws/location/place_index.py b/sdk/python/pulumi_aws/location/place_index.py index 9d4aeb93423..dfebf93d666 100644 --- a/sdk/python/pulumi_aws/location/place_index.py +++ b/sdk/python/pulumi_aws/location/place_index.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,14 +31,43 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The optional description for the place index resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the place index. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "data_source", data_source) - pulumi.set(__self__, "index_name", index_name) + PlaceIndexArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source=data_source, + index_name=index_name, + data_source_configuration=data_source_configuration, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source: Optional[pulumi.Input[str]] = None, + index_name: Optional[pulumi.Input[str]] = None, + data_source_configuration: Optional[pulumi.Input['PlaceIndexDataSourceConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source is None and 'dataSource' in kwargs: + data_source = kwargs['dataSource'] + if data_source is None: + raise TypeError("Missing 'data_source' argument") + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if index_name is None: + raise TypeError("Missing 'index_name' argument") + if data_source_configuration is None and 'dataSourceConfiguration' in kwargs: + data_source_configuration = kwargs['dataSourceConfiguration'] + + _setter("data_source", data_source) + _setter("index_name", index_name) if data_source_configuration is not None: - pulumi.set(__self__, "data_source_configuration", data_source_configuration) + _setter("data_source_configuration", data_source_configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dataSource") @@ -129,27 +158,68 @@ def __init__(__self__, *, :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] update_time: The timestamp for when the place index resource was last update in ISO 8601. """ + _PlaceIndexState._configure( + lambda key, value: pulumi.set(__self__, key, value), + create_time=create_time, + data_source=data_source, + data_source_configuration=data_source_configuration, + description=description, + index_arn=index_arn, + index_name=index_name, + tags=tags, + tags_all=tags_all, + update_time=update_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create_time: Optional[pulumi.Input[str]] = None, + data_source: Optional[pulumi.Input[str]] = None, + data_source_configuration: Optional[pulumi.Input['PlaceIndexDataSourceConfigurationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + index_arn: Optional[pulumi.Input[str]] = None, + index_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if data_source is None and 'dataSource' in kwargs: + data_source = kwargs['dataSource'] + if data_source_configuration is None and 'dataSourceConfiguration' in kwargs: + data_source_configuration = kwargs['dataSourceConfiguration'] + if index_arn is None and 'indexArn' in kwargs: + index_arn = kwargs['indexArn'] + if index_name is None and 'indexName' in kwargs: + index_name = kwargs['indexName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_time is None and 'updateTime' in kwargs: + update_time = kwargs['updateTime'] + if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if data_source is not None: - pulumi.set(__self__, "data_source", data_source) + _setter("data_source", data_source) if data_source_configuration is not None: - pulumi.set(__self__, "data_source_configuration", data_source_configuration) + _setter("data_source_configuration", data_source_configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if index_arn is not None: - pulumi.set(__self__, "index_arn", index_arn) + _setter("index_arn", index_arn) if index_name is not None: - pulumi.set(__self__, "index_name", index_name) + _setter("index_name", index_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if update_time is not None: - pulumi.set(__self__, "update_time", update_time) + _setter("update_time", update_time) @property @pulumi.getter(name="createTime") @@ -346,6 +416,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PlaceIndexArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -368,6 +442,7 @@ def _internal_init(__self__, if data_source is None and not opts.urn: raise TypeError("Missing required property 'data_source'") __props__.__dict__["data_source"] = data_source + data_source_configuration = _utilities.configure(data_source_configuration, PlaceIndexDataSourceConfigurationArgs, True) __props__.__dict__["data_source_configuration"] = data_source_configuration __props__.__dict__["description"] = description if index_name is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/location/route_calculation.py b/sdk/python/pulumi_aws/location/route_calculation.py index 29462dadbc5..be8ac2edfc7 100644 --- a/sdk/python/pulumi_aws/location/route_calculation.py +++ b/sdk/python/pulumi_aws/location/route_calculation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RouteCalculationArgs', 'RouteCalculation'] @@ -27,12 +27,37 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The optional description for the route calculator resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the route calculator. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "calculator_name", calculator_name) - pulumi.set(__self__, "data_source", data_source) + RouteCalculationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + calculator_name=calculator_name, + data_source=data_source, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + calculator_name: Optional[pulumi.Input[str]] = None, + data_source: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if calculator_name is None and 'calculatorName' in kwargs: + calculator_name = kwargs['calculatorName'] + if calculator_name is None: + raise TypeError("Missing 'calculator_name' argument") + if data_source is None and 'dataSource' in kwargs: + data_source = kwargs['dataSource'] + if data_source is None: + raise TypeError("Missing 'data_source' argument") + + _setter("calculator_name", calculator_name) + _setter("data_source", data_source) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="calculatorName") @@ -109,25 +134,62 @@ def __init__(__self__, *, :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] update_time: The timestamp for when the route calculator resource was last update in ISO 8601. """ + _RouteCalculationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + calculator_arn=calculator_arn, + calculator_name=calculator_name, + create_time=create_time, + data_source=data_source, + description=description, + tags=tags, + tags_all=tags_all, + update_time=update_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + calculator_arn: Optional[pulumi.Input[str]] = None, + calculator_name: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + data_source: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if calculator_arn is None and 'calculatorArn' in kwargs: + calculator_arn = kwargs['calculatorArn'] + if calculator_name is None and 'calculatorName' in kwargs: + calculator_name = kwargs['calculatorName'] + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if data_source is None and 'dataSource' in kwargs: + data_source = kwargs['dataSource'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_time is None and 'updateTime' in kwargs: + update_time = kwargs['updateTime'] + if calculator_arn is not None: - pulumi.set(__self__, "calculator_arn", calculator_arn) + _setter("calculator_arn", calculator_arn) if calculator_name is not None: - pulumi.set(__self__, "calculator_name", calculator_name) + _setter("calculator_name", calculator_name) if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if data_source is not None: - pulumi.set(__self__, "data_source", data_source) + _setter("data_source", data_source) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if update_time is not None: - pulumi.set(__self__, "update_time", update_time) + _setter("update_time", update_time) @property @pulumi.getter(name="calculatorArn") @@ -310,6 +372,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RouteCalculationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/location/tracker.py b/sdk/python/pulumi_aws/location/tracker.py index 8f77f322863..82edc07f240 100644 --- a/sdk/python/pulumi_aws/location/tracker.py +++ b/sdk/python/pulumi_aws/location/tracker.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TrackerArgs', 'Tracker'] @@ -29,15 +29,42 @@ def __init__(__self__, *, :param pulumi.Input[str] position_filtering: The position filtering method of the tracker resource. Valid values: `TimeBased`, `DistanceBased`, `AccuracyBased`. Default: `TimeBased`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the tracker. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "tracker_name", tracker_name) + TrackerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tracker_name=tracker_name, + description=description, + kms_key_id=kms_key_id, + position_filtering=position_filtering, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tracker_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + position_filtering: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tracker_name is None and 'trackerName' in kwargs: + tracker_name = kwargs['trackerName'] + if tracker_name is None: + raise TypeError("Missing 'tracker_name' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if position_filtering is None and 'positionFiltering' in kwargs: + position_filtering = kwargs['positionFiltering'] + + _setter("tracker_name", tracker_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if position_filtering is not None: - pulumi.set(__self__, "position_filtering", position_filtering) + _setter("position_filtering", position_filtering) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="trackerName") @@ -128,27 +155,68 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] update_time: The timestamp for when the tracker resource was last updated in ISO 8601 format. """ + _TrackerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + create_time=create_time, + description=description, + kms_key_id=kms_key_id, + position_filtering=position_filtering, + tags=tags, + tags_all=tags_all, + tracker_arn=tracker_arn, + tracker_name=tracker_name, + update_time=update_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + position_filtering: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracker_arn: Optional[pulumi.Input[str]] = None, + tracker_name: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if position_filtering is None and 'positionFiltering' in kwargs: + position_filtering = kwargs['positionFiltering'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tracker_arn is None and 'trackerArn' in kwargs: + tracker_arn = kwargs['trackerArn'] + if tracker_name is None and 'trackerName' in kwargs: + tracker_name = kwargs['trackerName'] + if update_time is None and 'updateTime' in kwargs: + update_time = kwargs['updateTime'] + if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if position_filtering is not None: - pulumi.set(__self__, "position_filtering", position_filtering) + _setter("position_filtering", position_filtering) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tracker_arn is not None: - pulumi.set(__self__, "tracker_arn", tracker_arn) + _setter("tracker_arn", tracker_arn) if tracker_name is not None: - pulumi.set(__self__, "tracker_name", tracker_name) + _setter("tracker_name", tracker_name) if update_time is not None: - pulumi.set(__self__, "update_time", update_time) + _setter("update_time", update_time) @property @pulumi.getter(name="createTime") @@ -341,6 +409,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrackerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/location/tracker_association.py b/sdk/python/pulumi_aws/location/tracker_association.py index d79f77f38de..585a334a98d 100644 --- a/sdk/python/pulumi_aws/location/tracker_association.py +++ b/sdk/python/pulumi_aws/location/tracker_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TrackerAssociationArgs', 'TrackerAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] consumer_arn: The Amazon Resource Name (ARN) for the geofence collection to be associated to tracker resource. Used when you need to specify a resource across all AWS. :param pulumi.Input[str] tracker_name: The name of the tracker resource to be associated with a geofence collection. """ - pulumi.set(__self__, "consumer_arn", consumer_arn) - pulumi.set(__self__, "tracker_name", tracker_name) + TrackerAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + consumer_arn=consumer_arn, + tracker_name=tracker_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + consumer_arn: Optional[pulumi.Input[str]] = None, + tracker_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if consumer_arn is None and 'consumerArn' in kwargs: + consumer_arn = kwargs['consumerArn'] + if consumer_arn is None: + raise TypeError("Missing 'consumer_arn' argument") + if tracker_name is None and 'trackerName' in kwargs: + tracker_name = kwargs['trackerName'] + if tracker_name is None: + raise TypeError("Missing 'tracker_name' argument") + + _setter("consumer_arn", consumer_arn) + _setter("tracker_name", tracker_name) @property @pulumi.getter(name="consumerArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] consumer_arn: The Amazon Resource Name (ARN) for the geofence collection to be associated to tracker resource. Used when you need to specify a resource across all AWS. :param pulumi.Input[str] tracker_name: The name of the tracker resource to be associated with a geofence collection. """ + _TrackerAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + consumer_arn=consumer_arn, + tracker_name=tracker_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + consumer_arn: Optional[pulumi.Input[str]] = None, + tracker_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if consumer_arn is None and 'consumerArn' in kwargs: + consumer_arn = kwargs['consumerArn'] + if tracker_name is None and 'trackerName' in kwargs: + tracker_name = kwargs['trackerName'] + if consumer_arn is not None: - pulumi.set(__self__, "consumer_arn", consumer_arn) + _setter("consumer_arn", consumer_arn) if tracker_name is not None: - pulumi.set(__self__, "tracker_name", tracker_name) + _setter("tracker_name", tracker_name) @property @pulumi.getter(name="consumerArn") @@ -166,6 +204,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrackerAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/macie/_inputs.py b/sdk/python/pulumi_aws/macie/_inputs.py index a835b2595fc..4cd7baadfd0 100644 --- a/sdk/python/pulumi_aws/macie/_inputs.py +++ b/sdk/python/pulumi_aws/macie/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -21,8 +21,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['FindingsFilterFindingCriteriaCriterionArgs']]] criterions: A condition that specifies the property, operator, and one or more values to use to filter the results. (documented below) """ + FindingsFilterFindingCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + criterions=criterions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + criterions: Optional[pulumi.Input[Sequence[pulumi.Input['FindingsFilterFindingCriteriaCriterionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if criterions is not None: - pulumi.set(__self__, "criterions", criterions) + _setter("criterions", criterions) @property @pulumi.getter @@ -58,21 +69,50 @@ def __init__(__self__, *, :param pulumi.Input[str] lte: The value for the property is less than or equal to the specified value. :param pulumi.Input[Sequence[pulumi.Input[str]]] neqs: The value for the property doesn't match (doesn't equal) the specified value. If you specify multiple values, Amazon Macie uses OR logic to join the values. """ - pulumi.set(__self__, "field", field) + FindingsFilterFindingCriteriaCriterionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + eq_exact_matches=eq_exact_matches, + eqs=eqs, + gt=gt, + gte=gte, + lt=lt, + lte=lte, + neqs=neqs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[pulumi.Input[str]] = None, + eq_exact_matches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + eqs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + gt: Optional[pulumi.Input[str]] = None, + gte: Optional[pulumi.Input[str]] = None, + lt: Optional[pulumi.Input[str]] = None, + lte: Optional[pulumi.Input[str]] = None, + neqs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is None: + raise TypeError("Missing 'field' argument") + if eq_exact_matches is None and 'eqExactMatches' in kwargs: + eq_exact_matches = kwargs['eqExactMatches'] + + _setter("field", field) if eq_exact_matches is not None: - pulumi.set(__self__, "eq_exact_matches", eq_exact_matches) + _setter("eq_exact_matches", eq_exact_matches) if eqs is not None: - pulumi.set(__self__, "eqs", eqs) + _setter("eqs", eqs) if gt is not None: - pulumi.set(__self__, "gt", gt) + _setter("gt", gt) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lt is not None: - pulumi.set(__self__, "lt", lt) + _setter("lt", lt) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) if neqs is not None: - pulumi.set(__self__, "neqs", neqs) + _setter("neqs", neqs) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/macie/custom_data_identifier.py b/sdk/python/pulumi_aws/macie/custom_data_identifier.py index e428ee88958..5f1fc5f703e 100644 --- a/sdk/python/pulumi_aws/macie/custom_data_identifier.py +++ b/sdk/python/pulumi_aws/macie/custom_data_identifier.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CustomDataIdentifierArgs', 'CustomDataIdentifier'] @@ -33,22 +33,53 @@ def __init__(__self__, *, :param pulumi.Input[str] regex: The regular expression (regex) that defines the pattern to match. The expression can contain as many as 512 characters. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of key-value pairs that specifies the tags to associate with the custom data identifier. """ + CustomDataIdentifierArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + ignore_words=ignore_words, + keywords=keywords, + maximum_match_distance=maximum_match_distance, + name=name, + name_prefix=name_prefix, + regex=regex, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + ignore_words: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + keywords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + maximum_match_distance: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + regex: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ignore_words is None and 'ignoreWords' in kwargs: + ignore_words = kwargs['ignoreWords'] + if maximum_match_distance is None and 'maximumMatchDistance' in kwargs: + maximum_match_distance = kwargs['maximumMatchDistance'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ignore_words is not None: - pulumi.set(__self__, "ignore_words", ignore_words) + _setter("ignore_words", ignore_words) if keywords is not None: - pulumi.set(__self__, "keywords", keywords) + _setter("keywords", keywords) if maximum_match_distance is not None: - pulumi.set(__self__, "maximum_match_distance", maximum_match_distance) + _setter("maximum_match_distance", maximum_match_distance) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -174,31 +205,72 @@ def __init__(__self__, *, :param pulumi.Input[str] regex: The regular expression (regex) that defines the pattern to match. The expression can contain as many as 512 characters. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of key-value pairs that specifies the tags to associate with the custom data identifier. """ + _CustomDataIdentifierState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_at=created_at, + description=description, + ignore_words=ignore_words, + keywords=keywords, + maximum_match_distance=maximum_match_distance, + name=name, + name_prefix=name_prefix, + regex=regex, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ignore_words: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + keywords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + maximum_match_distance: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + regex: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if ignore_words is None and 'ignoreWords' in kwargs: + ignore_words = kwargs['ignoreWords'] + if maximum_match_distance is None and 'maximumMatchDistance' in kwargs: + maximum_match_distance = kwargs['maximumMatchDistance'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ignore_words is not None: - pulumi.set(__self__, "ignore_words", ignore_words) + _setter("ignore_words", ignore_words) if keywords is not None: - pulumi.set(__self__, "keywords", keywords) + _setter("keywords", keywords) if maximum_match_distance is not None: - pulumi.set(__self__, "maximum_match_distance", maximum_match_distance) + _setter("maximum_match_distance", maximum_match_distance) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if regex is not None: - pulumi.set(__self__, "regex", regex) + _setter("regex", regex) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -428,6 +500,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomDataIdentifierArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/macie/findings_filter.py b/sdk/python/pulumi_aws/macie/findings_filter.py index 7bc8dc53567..b3bb180e7a9 100644 --- a/sdk/python/pulumi_aws/macie/findings_filter.py +++ b/sdk/python/pulumi_aws/macie/findings_filter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,18 +33,49 @@ def __init__(__self__, *, :param pulumi.Input[int] position: The position of the filter in the list of saved filters on the Amazon Macie console. This value also determines the order in which the filter is applied to findings, relative to other filters that are also applied to the findings. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of key-value pairs that specifies the tags to associate with the filter. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "finding_criteria", finding_criteria) + FindingsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + finding_criteria=finding_criteria, + description=description, + name=name, + name_prefix=name_prefix, + position=position, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + finding_criteria: Optional[pulumi.Input['FindingsFilterFindingCriteriaArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if finding_criteria is None and 'findingCriteria' in kwargs: + finding_criteria = kwargs['findingCriteria'] + if finding_criteria is None: + raise TypeError("Missing 'finding_criteria' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("action", action) + _setter("finding_criteria", finding_criteria) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if position is not None: - pulumi.set(__self__, "position", position) + _setter("position", position) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -154,27 +185,60 @@ def __init__(__self__, *, :param pulumi.Input[int] position: The position of the filter in the list of saved filters on the Amazon Macie console. This value also determines the order in which the filter is applied to findings, relative to other filters that are also applied to the findings. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of key-value pairs that specifies the tags to associate with the filter. """ + _FindingsFilterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + arn=arn, + description=description, + finding_criteria=finding_criteria, + name=name, + name_prefix=name_prefix, + position=position, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + finding_criteria: Optional[pulumi.Input['FindingsFilterFindingCriteriaArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if finding_criteria is None and 'findingCriteria' in kwargs: + finding_criteria = kwargs['findingCriteria'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if finding_criteria is not None: - pulumi.set(__self__, "finding_criteria", finding_criteria) + _setter("finding_criteria", finding_criteria) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if position is not None: - pulumi.set(__self__, "position", position) + _setter("position", position) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -386,6 +450,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FindingsFilterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -411,6 +479,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'action'") __props__.__dict__["action"] = action __props__.__dict__["description"] = description + finding_criteria = _utilities.configure(finding_criteria, FindingsFilterFindingCriteriaArgs, True) if finding_criteria is None and not opts.urn: raise TypeError("Missing required property 'finding_criteria'") __props__.__dict__["finding_criteria"] = finding_criteria diff --git a/sdk/python/pulumi_aws/macie/outputs.py b/sdk/python/pulumi_aws/macie/outputs.py index 2642c1e512f..f648fb93530 100644 --- a/sdk/python/pulumi_aws/macie/outputs.py +++ b/sdk/python/pulumi_aws/macie/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -22,8 +22,19 @@ def __init__(__self__, *, """ :param Sequence['FindingsFilterFindingCriteriaCriterionArgs'] criterions: A condition that specifies the property, operator, and one or more values to use to filter the results. (documented below) """ + FindingsFilterFindingCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + criterions=criterions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + criterions: Optional[Sequence['outputs.FindingsFilterFindingCriteriaCriterion']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if criterions is not None: - pulumi.set(__self__, "criterions", criterions) + _setter("criterions", criterions) @property @pulumi.getter @@ -72,21 +83,50 @@ def __init__(__self__, *, :param str lte: The value for the property is less than or equal to the specified value. :param Sequence[str] neqs: The value for the property doesn't match (doesn't equal) the specified value. If you specify multiple values, Amazon Macie uses OR logic to join the values. """ - pulumi.set(__self__, "field", field) + FindingsFilterFindingCriteriaCriterion._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + eq_exact_matches=eq_exact_matches, + eqs=eqs, + gt=gt, + gte=gte, + lt=lt, + lte=lte, + neqs=neqs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[str] = None, + eq_exact_matches: Optional[Sequence[str]] = None, + eqs: Optional[Sequence[str]] = None, + gt: Optional[str] = None, + gte: Optional[str] = None, + lt: Optional[str] = None, + lte: Optional[str] = None, + neqs: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is None: + raise TypeError("Missing 'field' argument") + if eq_exact_matches is None and 'eqExactMatches' in kwargs: + eq_exact_matches = kwargs['eqExactMatches'] + + _setter("field", field) if eq_exact_matches is not None: - pulumi.set(__self__, "eq_exact_matches", eq_exact_matches) + _setter("eq_exact_matches", eq_exact_matches) if eqs is not None: - pulumi.set(__self__, "eqs", eqs) + _setter("eqs", eqs) if gt is not None: - pulumi.set(__self__, "gt", gt) + _setter("gt", gt) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lt is not None: - pulumi.set(__self__, "lt", lt) + _setter("lt", lt) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) if neqs is not None: - pulumi.set(__self__, "neqs", neqs) + _setter("neqs", neqs) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/macie2/_inputs.py b/sdk/python/pulumi_aws/macie2/_inputs.py index f3aa3d519ca..118ae0174eb 100644 --- a/sdk/python/pulumi_aws/macie2/_inputs.py +++ b/sdk/python/pulumi_aws/macie2/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -52,10 +52,35 @@ def __init__(__self__, *, Additional information can be found in the [Storing and retaining sensitive data discovery results with Amazon Macie for AWS Macie documentation](https://docs.aws.amazon.com/macie/latest/user/discovery-results-repository-s3.html). :param pulumi.Input[str] key_prefix: The object key for the bucket in which Amazon Macie exports the data classification results. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + ClassificationExportConfigurationS3DestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + kms_key_arn=kms_key_arn, + key_prefix=key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + key_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if kms_key_arn is None: + raise TypeError("Missing 'kms_key_arn' argument") + if key_prefix is None and 'keyPrefix' in kwargs: + key_prefix = kwargs['keyPrefix'] + + _setter("bucket_name", bucket_name) + _setter("kms_key_arn", kms_key_arn) if key_prefix is not None: - pulumi.set(__self__, "key_prefix", key_prefix) + _setter("key_prefix", key_prefix) @property @pulumi.getter(name="bucketName") @@ -107,12 +132,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketDefinitionArgs']]] bucket_definitions: An array of objects, one for each AWS account that owns buckets to analyze. Each object specifies the account ID for an account and one or more buckets to analyze for the account. Conflicts with `bucket_criteria`. (documented below) :param pulumi.Input['ClassificationJobS3JobDefinitionScopingArgs'] scoping: The property- and tag-based conditions that determine which objects to include or exclude from the analysis. (documented below) """ + ClassificationJobS3JobDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_criteria=bucket_criteria, + bucket_definitions=bucket_definitions, + scoping=scoping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_criteria: Optional[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaArgs']] = None, + bucket_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketDefinitionArgs']]]] = None, + scoping: Optional[pulumi.Input['ClassificationJobS3JobDefinitionScopingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_criteria is None and 'bucketCriteria' in kwargs: + bucket_criteria = kwargs['bucketCriteria'] + if bucket_definitions is None and 'bucketDefinitions' in kwargs: + bucket_definitions = kwargs['bucketDefinitions'] + if bucket_criteria is not None: - pulumi.set(__self__, "bucket_criteria", bucket_criteria) + _setter("bucket_criteria", bucket_criteria) if bucket_definitions is not None: - pulumi.set(__self__, "bucket_definitions", bucket_definitions) + _setter("bucket_definitions", bucket_definitions) if scoping is not None: - pulumi.set(__self__, "scoping", scoping) + _setter("scoping", scoping) @property @pulumi.getter(name="bucketCriteria") @@ -160,10 +204,23 @@ def __init__(__self__, *, :param pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesArgs'] excludes: The property- or tag-based conditions that determine which S3 buckets to exclude from the analysis. (documented below) :param pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs'] includes: The property- or tag-based conditions that determine which S3 buckets to include in the analysis. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + excludes=excludes, + includes=includes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + excludes: Optional[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesArgs']] = None, + includes: Optional[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excludes is not None: - pulumi.set(__self__, "excludes", excludes) + _setter("excludes", excludes) if includes is not None: - pulumi.set(__self__, "includes", includes) + _setter("includes", includes) @property @pulumi.getter @@ -197,8 +254,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndArgs']]] ands: An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) @property @pulumi.getter @@ -222,10 +290,27 @@ def __init__(__self__, *, :param pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndSimpleCriterionArgs'] simple_criterion: A property-based condition that defines a property, operator, and one or more values for including or excluding an S3 buckets from the job. (documented below) :param pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionArgs'] tag_criterion: A tag-based condition that defines the operator and tag keys or tag key and value pairs for including or excluding an S3 buckets from the job. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_criterion=simple_criterion, + tag_criterion=tag_criterion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_criterion: Optional[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndSimpleCriterionArgs']] = None, + tag_criterion: Optional[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_criterion is None and 'simpleCriterion' in kwargs: + simple_criterion = kwargs['simpleCriterion'] + if tag_criterion is None and 'tagCriterion' in kwargs: + tag_criterion = kwargs['tagCriterion'] + if simple_criterion is not None: - pulumi.set(__self__, "simple_criterion", simple_criterion) + _setter("simple_criterion", simple_criterion) if tag_criterion is not None: - pulumi.set(__self__, "tag_criterion", tag_criterion) + _setter("tag_criterion", tag_criterion) @property @pulumi.getter(name="simpleCriterion") @@ -263,12 +348,27 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The object property to use in the condition. Valid combination of values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-simplecriterionkeyforjob) :param pulumi.Input[Sequence[pulumi.Input[str]]] values: An array that lists the values to use in the condition. Valid combination of values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-simplecriterionforjob) """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndSimpleCriterionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -316,10 +416,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparator: The operator to use in the condition. Valid combination and values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-jobcomparator) :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionTagValueArgs']]] tag_values: The tag key and value pairs to use in the condition. One or more blocks are allowed. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + tag_values=tag_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[pulumi.Input[str]] = None, + tag_values: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionTagValueArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_values is None and 'tagValues' in kwargs: + tag_values = kwargs['tagValues'] + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if tag_values is not None: - pulumi.set(__self__, "tag_values", tag_values) + _setter("tag_values", tag_values) @property @pulumi.getter @@ -355,10 +470,23 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The tag key. :param pulumi.Input[str] value: The tag value. """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionTagValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -390,16 +518,27 @@ class ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs: def __init__(__self__, *, ands: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArgs']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArgs']]] ands: An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArgs']]] ands: An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) @property @pulumi.getter def ands(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArgs']]]]: """ - An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ return pulumi.get(self, "ands") @@ -417,10 +556,27 @@ def __init__(__self__, *, :param pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndSimpleCriterionArgs'] simple_criterion: A property-based condition that defines a property, operator, and one or more values for including or excluding an S3 buckets from the job. (documented below) :param pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionArgs'] tag_criterion: A tag-based condition that defines the operator and tag keys or tag key and value pairs for including or excluding an S3 buckets from the job. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_criterion=simple_criterion, + tag_criterion=tag_criterion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_criterion: Optional[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndSimpleCriterionArgs']] = None, + tag_criterion: Optional[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_criterion is None and 'simpleCriterion' in kwargs: + simple_criterion = kwargs['simpleCriterion'] + if tag_criterion is None and 'tagCriterion' in kwargs: + tag_criterion = kwargs['tagCriterion'] + if simple_criterion is not None: - pulumi.set(__self__, "simple_criterion", simple_criterion) + _setter("simple_criterion", simple_criterion) if tag_criterion is not None: - pulumi.set(__self__, "tag_criterion", tag_criterion) + _setter("tag_criterion", tag_criterion) @property @pulumi.getter(name="simpleCriterion") @@ -458,12 +614,27 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The object property to use in the condition. Valid combination of values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-simplecriterionkeyforjob) :param pulumi.Input[Sequence[pulumi.Input[str]]] values: An array that lists the values to use in the condition. Valid combination of values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-simplecriterionforjob) """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndSimpleCriterionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -511,10 +682,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparator: The operator to use in the condition. Valid combination and values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-jobcomparator) :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionTagValueArgs']]] tag_values: The tag key and value pairs to use in the condition. One or more blocks are allowed. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + tag_values=tag_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[pulumi.Input[str]] = None, + tag_values: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionTagValueArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_values is None and 'tagValues' in kwargs: + tag_values = kwargs['tagValues'] + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if tag_values is not None: - pulumi.set(__self__, "tag_values", tag_values) + _setter("tag_values", tag_values) @property @pulumi.getter @@ -550,10 +736,23 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The tag key. :param pulumi.Input[str] value: The tag value. """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionTagValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -589,8 +788,27 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: The unique identifier for the AWS account that owns the buckets. :param pulumi.Input[Sequence[pulumi.Input[str]]] buckets: An array that lists the names of the buckets. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "buckets", buckets) + ClassificationJobS3JobDefinitionBucketDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + buckets=buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + buckets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if buckets is None: + raise TypeError("Missing 'buckets' argument") + + _setter("account_id", account_id) + _setter("buckets", buckets) @property @pulumi.getter(name="accountId") @@ -626,10 +844,23 @@ def __init__(__self__, *, :param pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesArgs'] excludes: The property- or tag-based conditions that determine which objects to exclude from the analysis. (documented below) :param pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesArgs'] includes: The property- or tag-based conditions that determine which objects to include in the analysis. (documented below) """ + ClassificationJobS3JobDefinitionScopingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + excludes=excludes, + includes=includes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + excludes: Optional[pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesArgs']] = None, + includes: Optional[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excludes is not None: - pulumi.set(__self__, "excludes", excludes) + _setter("excludes", excludes) if includes is not None: - pulumi.set(__self__, "includes", includes) + _setter("includes", includes) @property @pulumi.getter @@ -663,8 +894,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesAndArgs']]] ands: An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ + ClassificationJobS3JobDefinitionScopingExcludesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesAndArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) @property @pulumi.getter @@ -688,10 +930,27 @@ def __init__(__self__, *, :param pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesAndSimpleScopeTermArgs'] simple_scope_term: A property-based condition that defines a property, operator, and one or more values for including or excluding an object from the job. (documented below) :param pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermArgs'] tag_scope_term: A tag-based condition that defines the operator and tag keys or tag key and value pairs for including or excluding an object from the job. (documented below) """ + ClassificationJobS3JobDefinitionScopingExcludesAndArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_scope_term=simple_scope_term, + tag_scope_term=tag_scope_term, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_scope_term: Optional[pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesAndSimpleScopeTermArgs']] = None, + tag_scope_term: Optional[pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_scope_term is None and 'simpleScopeTerm' in kwargs: + simple_scope_term = kwargs['simpleScopeTerm'] + if tag_scope_term is None and 'tagScopeTerm' in kwargs: + tag_scope_term = kwargs['tagScopeTerm'] + if simple_scope_term is not None: - pulumi.set(__self__, "simple_scope_term", simple_scope_term) + _setter("simple_scope_term", simple_scope_term) if tag_scope_term is not None: - pulumi.set(__self__, "tag_scope_term", tag_scope_term) + _setter("tag_scope_term", tag_scope_term) @property @pulumi.getter(name="simpleScopeTerm") @@ -729,12 +988,27 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The object property to use in the condition. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: An array that lists the values to use in the condition. """ + ClassificationJobS3JobDefinitionScopingExcludesAndSimpleScopeTermArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -786,14 +1060,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermTagValueArgs']]] tag_values: The tag keys or tag key and value pairs to use in the condition. :param pulumi.Input[str] target: The type of object to apply the condition to. The only valid value is `S3_OBJECT`. """ + ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + tag_values=tag_values, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + tag_values: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermTagValueArgs']]]] = None, + target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_values is None and 'tagValues' in kwargs: + tag_values = kwargs['tagValues'] + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if tag_values is not None: - pulumi.set(__self__, "tag_values", tag_values) + _setter("tag_values", tag_values) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter @@ -853,10 +1146,23 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The tag key. :param pulumi.Input[str] value: The tag value. """ + ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermTagValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -888,16 +1194,27 @@ class ClassificationJobS3JobDefinitionScopingIncludesArgs: def __init__(__self__, *, ands: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndArgs']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndArgs']]] ands: An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndArgs']]] ands: An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ + ClassificationJobS3JobDefinitionScopingIncludesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) @property @pulumi.getter def ands(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndArgs']]]]: """ - An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ return pulumi.get(self, "ands") @@ -915,10 +1232,27 @@ def __init__(__self__, *, :param pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndSimpleScopeTermArgs'] simple_scope_term: A property-based condition that defines a property, operator, and one or more values for including or excluding an object from the job. (documented below) :param pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermArgs'] tag_scope_term: A tag-based condition that defines the operator and tag keys or tag key and value pairs for including or excluding an object from the job. (documented below) """ + ClassificationJobS3JobDefinitionScopingIncludesAndArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_scope_term=simple_scope_term, + tag_scope_term=tag_scope_term, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_scope_term: Optional[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndSimpleScopeTermArgs']] = None, + tag_scope_term: Optional[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_scope_term is None and 'simpleScopeTerm' in kwargs: + simple_scope_term = kwargs['simpleScopeTerm'] + if tag_scope_term is None and 'tagScopeTerm' in kwargs: + tag_scope_term = kwargs['tagScopeTerm'] + if simple_scope_term is not None: - pulumi.set(__self__, "simple_scope_term", simple_scope_term) + _setter("simple_scope_term", simple_scope_term) if tag_scope_term is not None: - pulumi.set(__self__, "tag_scope_term", tag_scope_term) + _setter("tag_scope_term", tag_scope_term) @property @pulumi.getter(name="simpleScopeTerm") @@ -956,12 +1290,27 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The object property to use in the condition. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: An array that lists the values to use in the condition. """ + ClassificationJobS3JobDefinitionScopingIncludesAndSimpleScopeTermArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1013,14 +1362,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermTagValueArgs']]] tag_values: The tag keys or tag key and value pairs to use in the condition. :param pulumi.Input[str] target: The type of object to apply the condition to. The only valid value is `S3_OBJECT`. """ + ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + tag_values=tag_values, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + tag_values: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermTagValueArgs']]]] = None, + target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_values is None and 'tagValues' in kwargs: + tag_values = kwargs['tagValues'] + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if tag_values is not None: - pulumi.set(__self__, "tag_values", tag_values) + _setter("tag_values", tag_values) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter @@ -1080,10 +1448,23 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The tag key. :param pulumi.Input[str] value: The tag value. """ + ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermTagValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1123,12 +1504,33 @@ def __init__(__self__, *, The `s3_job_definition` object supports the following: :param pulumi.Input[str] weekly_schedule: Specifies a weekly recurrence pattern for running the job. """ + ClassificationJobScheduleFrequencyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + daily_schedule=daily_schedule, + monthly_schedule=monthly_schedule, + weekly_schedule=weekly_schedule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + daily_schedule: Optional[pulumi.Input[bool]] = None, + monthly_schedule: Optional[pulumi.Input[int]] = None, + weekly_schedule: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if daily_schedule is None and 'dailySchedule' in kwargs: + daily_schedule = kwargs['dailySchedule'] + if monthly_schedule is None and 'monthlySchedule' in kwargs: + monthly_schedule = kwargs['monthlySchedule'] + if weekly_schedule is None and 'weeklySchedule' in kwargs: + weekly_schedule = kwargs['weeklySchedule'] + if daily_schedule is not None: - pulumi.set(__self__, "daily_schedule", daily_schedule) + _setter("daily_schedule", daily_schedule) if monthly_schedule is not None: - pulumi.set(__self__, "monthly_schedule", monthly_schedule) + _setter("monthly_schedule", monthly_schedule) if weekly_schedule is not None: - pulumi.set(__self__, "weekly_schedule", weekly_schedule) + _setter("weekly_schedule", weekly_schedule) @property @pulumi.getter(name="dailySchedule") @@ -1175,12 +1577,33 @@ def __init__(__self__, *, job_expires_at: Optional[pulumi.Input[str]] = None, job_imminent_expiration_health_event_arn: Optional[pulumi.Input[str]] = None, job_paused_at: Optional[pulumi.Input[str]] = None): + ClassificationJobUserPausedDetailArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_expires_at=job_expires_at, + job_imminent_expiration_health_event_arn=job_imminent_expiration_health_event_arn, + job_paused_at=job_paused_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_expires_at: Optional[pulumi.Input[str]] = None, + job_imminent_expiration_health_event_arn: Optional[pulumi.Input[str]] = None, + job_paused_at: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_expires_at is None and 'jobExpiresAt' in kwargs: + job_expires_at = kwargs['jobExpiresAt'] + if job_imminent_expiration_health_event_arn is None and 'jobImminentExpirationHealthEventArn' in kwargs: + job_imminent_expiration_health_event_arn = kwargs['jobImminentExpirationHealthEventArn'] + if job_paused_at is None and 'jobPausedAt' in kwargs: + job_paused_at = kwargs['jobPausedAt'] + if job_expires_at is not None: - pulumi.set(__self__, "job_expires_at", job_expires_at) + _setter("job_expires_at", job_expires_at) if job_imminent_expiration_health_event_arn is not None: - pulumi.set(__self__, "job_imminent_expiration_health_event_arn", job_imminent_expiration_health_event_arn) + _setter("job_imminent_expiration_health_event_arn", job_imminent_expiration_health_event_arn) if job_paused_at is not None: - pulumi.set(__self__, "job_paused_at", job_paused_at) + _setter("job_paused_at", job_paused_at) @property @pulumi.getter(name="jobExpiresAt") diff --git a/sdk/python/pulumi_aws/macie2/account.py b/sdk/python/pulumi_aws/macie2/account.py index 702a8ccab62..fdc94f1348f 100644 --- a/sdk/python/pulumi_aws/macie2/account.py +++ b/sdk/python/pulumi_aws/macie2/account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountArgs', 'Account'] @@ -21,10 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] finding_publishing_frequency: Specifies how often to publish updates to policy findings for the account. This includes publishing updates to AWS Security Hub and Amazon EventBridge (formerly called Amazon CloudWatch Events). Valid values are `FIFTEEN_MINUTES`, `ONE_HOUR` or `SIX_HOURS`. :param pulumi.Input[str] status: Specifies the status for the account. To enable Amazon Macie and start all Macie activities for the account, set this value to `ENABLED`. Valid values are `ENABLED` or `PAUSED`. """ + AccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + finding_publishing_frequency=finding_publishing_frequency, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + finding_publishing_frequency: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if finding_publishing_frequency is None and 'findingPublishingFrequency' in kwargs: + finding_publishing_frequency = kwargs['findingPublishingFrequency'] + if finding_publishing_frequency is not None: - pulumi.set(__self__, "finding_publishing_frequency", finding_publishing_frequency) + _setter("finding_publishing_frequency", finding_publishing_frequency) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="findingPublishingFrequency") @@ -67,16 +82,43 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Specifies the status for the account. To enable Amazon Macie and start all Macie activities for the account, set this value to `ENABLED`. Valid values are `ENABLED` or `PAUSED`. :param pulumi.Input[str] updated_at: The date and time, in UTC and extended RFC 3339 format, of the most recent change to the status of the Macie account. """ + _AccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + created_at=created_at, + finding_publishing_frequency=finding_publishing_frequency, + service_role=service_role, + status=status, + updated_at=updated_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + created_at: Optional[pulumi.Input[str]] = None, + finding_publishing_frequency: Optional[pulumi.Input[str]] = None, + service_role: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if finding_publishing_frequency is None and 'findingPublishingFrequency' in kwargs: + finding_publishing_frequency = kwargs['findingPublishingFrequency'] + if service_role is None and 'serviceRole' in kwargs: + service_role = kwargs['serviceRole'] + if updated_at is None and 'updatedAt' in kwargs: + updated_at = kwargs['updatedAt'] + if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if finding_publishing_frequency is not None: - pulumi.set(__self__, "finding_publishing_frequency", finding_publishing_frequency) + _setter("finding_publishing_frequency", finding_publishing_frequency) if service_role is not None: - pulumi.set(__self__, "service_role", service_role) + _setter("service_role", service_role) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if updated_at is not None: - pulumi.set(__self__, "updated_at", updated_at) + _setter("updated_at", updated_at) @property @pulumi.getter(name="createdAt") @@ -212,6 +254,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/macie2/classification_export_configuration.py b/sdk/python/pulumi_aws/macie2/classification_export_configuration.py index 9767719d50b..f6129d0caaf 100644 --- a/sdk/python/pulumi_aws/macie2/classification_export_configuration.py +++ b/sdk/python/pulumi_aws/macie2/classification_export_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -21,8 +21,21 @@ def __init__(__self__, *, The set of arguments for constructing a ClassificationExportConfiguration resource. :param pulumi.Input['ClassificationExportConfigurationS3DestinationArgs'] s3_destination: Configuration block for a S3 Destination. Defined below """ + ClassificationExportConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_destination=s3_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_destination: Optional[pulumi.Input['ClassificationExportConfigurationS3DestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_destination is None and 's3Destination' in kwargs: + s3_destination = kwargs['s3Destination'] + if s3_destination is not None: - pulumi.set(__self__, "s3_destination", s3_destination) + _setter("s3_destination", s3_destination) @property @pulumi.getter(name="s3Destination") @@ -45,8 +58,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering ClassificationExportConfiguration resources. :param pulumi.Input['ClassificationExportConfigurationS3DestinationArgs'] s3_destination: Configuration block for a S3 Destination. Defined below """ + _ClassificationExportConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_destination=s3_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_destination: Optional[pulumi.Input['ClassificationExportConfigurationS3DestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_destination is None and 's3Destination' in kwargs: + s3_destination = kwargs['s3Destination'] + if s3_destination is not None: - pulumi.set(__self__, "s3_destination", s3_destination) + _setter("s3_destination", s3_destination) @property @pulumi.getter(name="s3Destination") @@ -140,6 +166,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClassificationExportConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -155,6 +185,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ClassificationExportConfigurationArgs.__new__(ClassificationExportConfigurationArgs) + s3_destination = _utilities.configure(s3_destination, ClassificationExportConfigurationS3DestinationArgs, True) __props__.__dict__["s3_destination"] = s3_destination super(ClassificationExportConfiguration, __self__).__init__( 'aws:macie2/classificationExportConfiguration:ClassificationExportConfiguration', diff --git a/sdk/python/pulumi_aws/macie2/classification_job.py b/sdk/python/pulumi_aws/macie2/classification_job.py index 3e1431974ac..50d84e10614 100644 --- a/sdk/python/pulumi_aws/macie2/classification_job.py +++ b/sdk/python/pulumi_aws/macie2/classification_job.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,26 +41,77 @@ def __init__(__self__, *, :param pulumi.Input['ClassificationJobScheduleFrequencyArgs'] schedule_frequency: The recurrence pattern for running the job. To run the job only once, don't specify a value for this property and set the value for the `job_type` property to `ONE_TIME`. (documented below) :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of key-value pairs that specifies the tags to associate with the job. A job can have a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters. """ - pulumi.set(__self__, "job_type", job_type) - pulumi.set(__self__, "s3_job_definition", s3_job_definition) + ClassificationJobArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_type=job_type, + s3_job_definition=s3_job_definition, + custom_data_identifier_ids=custom_data_identifier_ids, + description=description, + initial_run=initial_run, + job_status=job_status, + name=name, + name_prefix=name_prefix, + sampling_percentage=sampling_percentage, + schedule_frequency=schedule_frequency, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_type: Optional[pulumi.Input[str]] = None, + s3_job_definition: Optional[pulumi.Input['ClassificationJobS3JobDefinitionArgs']] = None, + custom_data_identifier_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + initial_run: Optional[pulumi.Input[bool]] = None, + job_status: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + sampling_percentage: Optional[pulumi.Input[int]] = None, + schedule_frequency: Optional[pulumi.Input['ClassificationJobScheduleFrequencyArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_type is None and 'jobType' in kwargs: + job_type = kwargs['jobType'] + if job_type is None: + raise TypeError("Missing 'job_type' argument") + if s3_job_definition is None and 's3JobDefinition' in kwargs: + s3_job_definition = kwargs['s3JobDefinition'] + if s3_job_definition is None: + raise TypeError("Missing 's3_job_definition' argument") + if custom_data_identifier_ids is None and 'customDataIdentifierIds' in kwargs: + custom_data_identifier_ids = kwargs['customDataIdentifierIds'] + if initial_run is None and 'initialRun' in kwargs: + initial_run = kwargs['initialRun'] + if job_status is None and 'jobStatus' in kwargs: + job_status = kwargs['jobStatus'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if sampling_percentage is None and 'samplingPercentage' in kwargs: + sampling_percentage = kwargs['samplingPercentage'] + if schedule_frequency is None and 'scheduleFrequency' in kwargs: + schedule_frequency = kwargs['scheduleFrequency'] + + _setter("job_type", job_type) + _setter("s3_job_definition", s3_job_definition) if custom_data_identifier_ids is not None: - pulumi.set(__self__, "custom_data_identifier_ids", custom_data_identifier_ids) + _setter("custom_data_identifier_ids", custom_data_identifier_ids) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if initial_run is not None: - pulumi.set(__self__, "initial_run", initial_run) + _setter("initial_run", initial_run) if job_status is not None: - pulumi.set(__self__, "job_status", job_status) + _setter("job_status", job_status) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if sampling_percentage is not None: - pulumi.set(__self__, "sampling_percentage", sampling_percentage) + _setter("sampling_percentage", sampling_percentage) if schedule_frequency is not None: - pulumi.set(__self__, "schedule_frequency", schedule_frequency) + _setter("schedule_frequency", schedule_frequency) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="jobType") @@ -230,41 +281,108 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of key-value pairs that specifies the tags to associate with the job. A job can have a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters. :param pulumi.Input[Sequence[pulumi.Input['ClassificationJobUserPausedDetailArgs']]] user_paused_details: If the current status of the job is `USER_PAUSED`, specifies when the job was paused and when the job or job run will expire and be cancelled if it isn't resumed. This value is present only if the value for `job-status` is `USER_PAUSED`. """ + _ClassificationJobState._configure( + lambda key, value: pulumi.set(__self__, key, value), + created_at=created_at, + custom_data_identifier_ids=custom_data_identifier_ids, + description=description, + initial_run=initial_run, + job_arn=job_arn, + job_id=job_id, + job_status=job_status, + job_type=job_type, + name=name, + name_prefix=name_prefix, + s3_job_definition=s3_job_definition, + sampling_percentage=sampling_percentage, + schedule_frequency=schedule_frequency, + tags=tags, + tags_all=tags_all, + user_paused_details=user_paused_details, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + created_at: Optional[pulumi.Input[str]] = None, + custom_data_identifier_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + initial_run: Optional[pulumi.Input[bool]] = None, + job_arn: Optional[pulumi.Input[str]] = None, + job_id: Optional[pulumi.Input[str]] = None, + job_status: Optional[pulumi.Input[str]] = None, + job_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + s3_job_definition: Optional[pulumi.Input['ClassificationJobS3JobDefinitionArgs']] = None, + sampling_percentage: Optional[pulumi.Input[int]] = None, + schedule_frequency: Optional[pulumi.Input['ClassificationJobScheduleFrequencyArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_paused_details: Optional[pulumi.Input[Sequence[pulumi.Input['ClassificationJobUserPausedDetailArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if custom_data_identifier_ids is None and 'customDataIdentifierIds' in kwargs: + custom_data_identifier_ids = kwargs['customDataIdentifierIds'] + if initial_run is None and 'initialRun' in kwargs: + initial_run = kwargs['initialRun'] + if job_arn is None and 'jobArn' in kwargs: + job_arn = kwargs['jobArn'] + if job_id is None and 'jobId' in kwargs: + job_id = kwargs['jobId'] + if job_status is None and 'jobStatus' in kwargs: + job_status = kwargs['jobStatus'] + if job_type is None and 'jobType' in kwargs: + job_type = kwargs['jobType'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if s3_job_definition is None and 's3JobDefinition' in kwargs: + s3_job_definition = kwargs['s3JobDefinition'] + if sampling_percentage is None and 'samplingPercentage' in kwargs: + sampling_percentage = kwargs['samplingPercentage'] + if schedule_frequency is None and 'scheduleFrequency' in kwargs: + schedule_frequency = kwargs['scheduleFrequency'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_paused_details is None and 'userPausedDetails' in kwargs: + user_paused_details = kwargs['userPausedDetails'] + if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if custom_data_identifier_ids is not None: - pulumi.set(__self__, "custom_data_identifier_ids", custom_data_identifier_ids) + _setter("custom_data_identifier_ids", custom_data_identifier_ids) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if initial_run is not None: - pulumi.set(__self__, "initial_run", initial_run) + _setter("initial_run", initial_run) if job_arn is not None: - pulumi.set(__self__, "job_arn", job_arn) + _setter("job_arn", job_arn) if job_id is not None: - pulumi.set(__self__, "job_id", job_id) + _setter("job_id", job_id) if job_status is not None: - pulumi.set(__self__, "job_status", job_status) + _setter("job_status", job_status) if job_type is not None: - pulumi.set(__self__, "job_type", job_type) + _setter("job_type", job_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if s3_job_definition is not None: - pulumi.set(__self__, "s3_job_definition", s3_job_definition) + _setter("s3_job_definition", s3_job_definition) if sampling_percentage is not None: - pulumi.set(__self__, "sampling_percentage", sampling_percentage) + _setter("sampling_percentage", sampling_percentage) if schedule_frequency is not None: - pulumi.set(__self__, "schedule_frequency", schedule_frequency) + _setter("schedule_frequency", schedule_frequency) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_paused_details is not None: - pulumi.set(__self__, "user_paused_details", user_paused_details) + _setter("user_paused_details", user_paused_details) @property @pulumi.getter(name="createdAt") @@ -558,6 +676,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClassificationJobArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -592,10 +714,12 @@ def _internal_init(__self__, __props__.__dict__["job_type"] = job_type __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix + s3_job_definition = _utilities.configure(s3_job_definition, ClassificationJobS3JobDefinitionArgs, True) if s3_job_definition is None and not opts.urn: raise TypeError("Missing required property 's3_job_definition'") __props__.__dict__["s3_job_definition"] = s3_job_definition __props__.__dict__["sampling_percentage"] = sampling_percentage + schedule_frequency = _utilities.configure(schedule_frequency, ClassificationJobScheduleFrequencyArgs, True) __props__.__dict__["schedule_frequency"] = schedule_frequency __props__.__dict__["tags"] = tags __props__.__dict__["created_at"] = None diff --git a/sdk/python/pulumi_aws/macie2/invitation_accepter.py b/sdk/python/pulumi_aws/macie2/invitation_accepter.py index 436181f1b1c..d270cb47eb9 100644 --- a/sdk/python/pulumi_aws/macie2/invitation_accepter.py +++ b/sdk/python/pulumi_aws/macie2/invitation_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InvitationAccepterArgs', 'InvitationAccepter'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a InvitationAccepter resource. :param pulumi.Input[str] administrator_account_id: The AWS account ID for the account that sent the invitation. """ - pulumi.set(__self__, "administrator_account_id", administrator_account_id) + InvitationAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + administrator_account_id=administrator_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + administrator_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if administrator_account_id is None and 'administratorAccountId' in kwargs: + administrator_account_id = kwargs['administratorAccountId'] + if administrator_account_id is None: + raise TypeError("Missing 'administrator_account_id' argument") + + _setter("administrator_account_id", administrator_account_id) @property @pulumi.getter(name="administratorAccountId") @@ -44,10 +59,27 @@ def __init__(__self__, *, :param pulumi.Input[str] administrator_account_id: The AWS account ID for the account that sent the invitation. :param pulumi.Input[str] invitation_id: The unique identifier for the invitation. """ + _InvitationAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + administrator_account_id=administrator_account_id, + invitation_id=invitation_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + administrator_account_id: Optional[pulumi.Input[str]] = None, + invitation_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if administrator_account_id is None and 'administratorAccountId' in kwargs: + administrator_account_id = kwargs['administratorAccountId'] + if invitation_id is None and 'invitationId' in kwargs: + invitation_id = kwargs['invitationId'] + if administrator_account_id is not None: - pulumi.set(__self__, "administrator_account_id", administrator_account_id) + _setter("administrator_account_id", administrator_account_id) if invitation_id is not None: - pulumi.set(__self__, "invitation_id", invitation_id) + _setter("invitation_id", invitation_id) @property @pulumi.getter(name="administratorAccountId") @@ -161,6 +193,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InvitationAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/macie2/member.py b/sdk/python/pulumi_aws/macie2/member.py index 1265d492c8d..256fc8a379b 100644 --- a/sdk/python/pulumi_aws/macie2/member.py +++ b/sdk/python/pulumi_aws/macie2/member.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MemberArgs', 'Member'] @@ -31,18 +31,51 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Specifies the status for the account. To enable Amazon Macie and start all Macie activities for the account, set this value to `ENABLED`. Valid values are `ENABLED` or `PAUSED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of key-value pairs that specifies the tags to associate with the account in Amazon Macie. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "email", email) + MemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + email=email, + invitation_disable_email_notification=invitation_disable_email_notification, + invitation_message=invitation_message, + invite=invite, + status=status, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + invitation_disable_email_notification: Optional[pulumi.Input[bool]] = None, + invitation_message: Optional[pulumi.Input[str]] = None, + invite: Optional[pulumi.Input[bool]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if email is None: + raise TypeError("Missing 'email' argument") + if invitation_disable_email_notification is None and 'invitationDisableEmailNotification' in kwargs: + invitation_disable_email_notification = kwargs['invitationDisableEmailNotification'] + if invitation_message is None and 'invitationMessage' in kwargs: + invitation_message = kwargs['invitationMessage'] + + _setter("account_id", account_id) + _setter("email", email) if invitation_disable_email_notification is not None: - pulumi.set(__self__, "invitation_disable_email_notification", invitation_disable_email_notification) + _setter("invitation_disable_email_notification", invitation_disable_email_notification) if invitation_message is not None: - pulumi.set(__self__, "invitation_message", invitation_message) + _setter("invitation_message", invitation_message) if invite is not None: - pulumi.set(__self__, "invite", invite) + _setter("invite", invite) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="accountId") @@ -161,37 +194,92 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of key-value pairs that specifies the tags to associate with the account in Amazon Macie. :param pulumi.Input[str] updated_at: The date and time, in UTC and extended RFC 3339 format, of the most recent change to the status of the relationship between the account and the administrator account. """ + _MemberState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + administrator_account_id=administrator_account_id, + arn=arn, + email=email, + invitation_disable_email_notification=invitation_disable_email_notification, + invitation_message=invitation_message, + invite=invite, + invited_at=invited_at, + master_account_id=master_account_id, + relationship_status=relationship_status, + status=status, + tags=tags, + tags_all=tags_all, + updated_at=updated_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + administrator_account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + invitation_disable_email_notification: Optional[pulumi.Input[bool]] = None, + invitation_message: Optional[pulumi.Input[str]] = None, + invite: Optional[pulumi.Input[bool]] = None, + invited_at: Optional[pulumi.Input[str]] = None, + master_account_id: Optional[pulumi.Input[str]] = None, + relationship_status: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if administrator_account_id is None and 'administratorAccountId' in kwargs: + administrator_account_id = kwargs['administratorAccountId'] + if invitation_disable_email_notification is None and 'invitationDisableEmailNotification' in kwargs: + invitation_disable_email_notification = kwargs['invitationDisableEmailNotification'] + if invitation_message is None and 'invitationMessage' in kwargs: + invitation_message = kwargs['invitationMessage'] + if invited_at is None and 'invitedAt' in kwargs: + invited_at = kwargs['invitedAt'] + if master_account_id is None and 'masterAccountId' in kwargs: + master_account_id = kwargs['masterAccountId'] + if relationship_status is None and 'relationshipStatus' in kwargs: + relationship_status = kwargs['relationshipStatus'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if updated_at is None and 'updatedAt' in kwargs: + updated_at = kwargs['updatedAt'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if administrator_account_id is not None: - pulumi.set(__self__, "administrator_account_id", administrator_account_id) + _setter("administrator_account_id", administrator_account_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if invitation_disable_email_notification is not None: - pulumi.set(__self__, "invitation_disable_email_notification", invitation_disable_email_notification) + _setter("invitation_disable_email_notification", invitation_disable_email_notification) if invitation_message is not None: - pulumi.set(__self__, "invitation_message", invitation_message) + _setter("invitation_message", invitation_message) if invite is not None: - pulumi.set(__self__, "invite", invite) + _setter("invite", invite) if invited_at is not None: - pulumi.set(__self__, "invited_at", invited_at) + _setter("invited_at", invited_at) if master_account_id is not None: - pulumi.set(__self__, "master_account_id", master_account_id) + _setter("master_account_id", master_account_id) if relationship_status is not None: - pulumi.set(__self__, "relationship_status", relationship_status) + _setter("relationship_status", relationship_status) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if updated_at is not None: - pulumi.set(__self__, "updated_at", updated_at) + _setter("updated_at", updated_at) @property @pulumi.getter(name="accountId") @@ -452,6 +540,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MemberArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/macie2/organization_admin_account.py b/sdk/python/pulumi_aws/macie2/organization_admin_account.py index 43180d29f9a..833565d7f5b 100644 --- a/sdk/python/pulumi_aws/macie2/organization_admin_account.py +++ b/sdk/python/pulumi_aws/macie2/organization_admin_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OrganizationAdminAccountArgs', 'OrganizationAdminAccount'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a OrganizationAdminAccount resource. :param pulumi.Input[str] admin_account_id: The AWS account ID for the account to designate as the delegated Amazon Macie administrator account for the organization. """ - pulumi.set(__self__, "admin_account_id", admin_account_id) + OrganizationAdminAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_account_id=admin_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_account_id is None and 'adminAccountId' in kwargs: + admin_account_id = kwargs['adminAccountId'] + if admin_account_id is None: + raise TypeError("Missing 'admin_account_id' argument") + + _setter("admin_account_id", admin_account_id) @property @pulumi.getter(name="adminAccountId") @@ -42,8 +57,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering OrganizationAdminAccount resources. :param pulumi.Input[str] admin_account_id: The AWS account ID for the account to designate as the delegated Amazon Macie administrator account for the organization. """ + _OrganizationAdminAccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_account_id=admin_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_account_id is None and 'adminAccountId' in kwargs: + admin_account_id = kwargs['adminAccountId'] + if admin_account_id is not None: - pulumi.set(__self__, "admin_account_id", admin_account_id) + _setter("admin_account_id", admin_account_id) @property @pulumi.getter(name="adminAccountId") @@ -129,6 +157,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationAdminAccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/macie2/outputs.py b/sdk/python/pulumi_aws/macie2/outputs.py index 1cf81de9e81..3e3fe8959ec 100644 --- a/sdk/python/pulumi_aws/macie2/outputs.py +++ b/sdk/python/pulumi_aws/macie2/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -74,10 +74,35 @@ def __init__(__self__, *, Additional information can be found in the [Storing and retaining sensitive data discovery results with Amazon Macie for AWS Macie documentation](https://docs.aws.amazon.com/macie/latest/user/discovery-results-repository-s3.html). :param str key_prefix: The object key for the bucket in which Amazon Macie exports the data classification results. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + ClassificationExportConfigurationS3Destination._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + kms_key_arn=kms_key_arn, + key_prefix=key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + kms_key_arn: Optional[str] = None, + key_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if kms_key_arn is None: + raise TypeError("Missing 'kms_key_arn' argument") + if key_prefix is None and 'keyPrefix' in kwargs: + key_prefix = kwargs['keyPrefix'] + + _setter("bucket_name", bucket_name) + _setter("kms_key_arn", kms_key_arn) if key_prefix is not None: - pulumi.set(__self__, "key_prefix", key_prefix) + _setter("key_prefix", key_prefix) @property @pulumi.getter(name="bucketName") @@ -136,12 +161,31 @@ def __init__(__self__, *, :param Sequence['ClassificationJobS3JobDefinitionBucketDefinitionArgs'] bucket_definitions: An array of objects, one for each AWS account that owns buckets to analyze. Each object specifies the account ID for an account and one or more buckets to analyze for the account. Conflicts with `bucket_criteria`. (documented below) :param 'ClassificationJobS3JobDefinitionScopingArgs' scoping: The property- and tag-based conditions that determine which objects to include or exclude from the analysis. (documented below) """ + ClassificationJobS3JobDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_criteria=bucket_criteria, + bucket_definitions=bucket_definitions, + scoping=scoping, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_criteria: Optional['outputs.ClassificationJobS3JobDefinitionBucketCriteria'] = None, + bucket_definitions: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionBucketDefinition']] = None, + scoping: Optional['outputs.ClassificationJobS3JobDefinitionScoping'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_criteria is None and 'bucketCriteria' in kwargs: + bucket_criteria = kwargs['bucketCriteria'] + if bucket_definitions is None and 'bucketDefinitions' in kwargs: + bucket_definitions = kwargs['bucketDefinitions'] + if bucket_criteria is not None: - pulumi.set(__self__, "bucket_criteria", bucket_criteria) + _setter("bucket_criteria", bucket_criteria) if bucket_definitions is not None: - pulumi.set(__self__, "bucket_definitions", bucket_definitions) + _setter("bucket_definitions", bucket_definitions) if scoping is not None: - pulumi.set(__self__, "scoping", scoping) + _setter("scoping", scoping) @property @pulumi.getter(name="bucketCriteria") @@ -177,10 +221,23 @@ def __init__(__self__, *, :param 'ClassificationJobS3JobDefinitionBucketCriteriaExcludesArgs' excludes: The property- or tag-based conditions that determine which S3 buckets to exclude from the analysis. (documented below) :param 'ClassificationJobS3JobDefinitionBucketCriteriaIncludesArgs' includes: The property- or tag-based conditions that determine which S3 buckets to include in the analysis. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + excludes=excludes, + includes=includes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + excludes: Optional['outputs.ClassificationJobS3JobDefinitionBucketCriteriaExcludes'] = None, + includes: Optional['outputs.ClassificationJobS3JobDefinitionBucketCriteriaIncludes'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excludes is not None: - pulumi.set(__self__, "excludes", excludes) + _setter("excludes", excludes) if includes is not None: - pulumi.set(__self__, "includes", includes) + _setter("includes", includes) @property @pulumi.getter @@ -206,8 +263,19 @@ def __init__(__self__, *, """ :param Sequence['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndArgs'] ands: An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludes._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionBucketCriteriaExcludesAnd']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) @property @pulumi.getter @@ -246,10 +314,27 @@ def __init__(__self__, *, :param 'ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndSimpleCriterionArgs' simple_criterion: A property-based condition that defines a property, operator, and one or more values for including or excluding an S3 buckets from the job. (documented below) :param 'ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionArgs' tag_criterion: A tag-based condition that defines the operator and tag keys or tag key and value pairs for including or excluding an S3 buckets from the job. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludesAnd._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_criterion=simple_criterion, + tag_criterion=tag_criterion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_criterion: Optional['outputs.ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndSimpleCriterion'] = None, + tag_criterion: Optional['outputs.ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterion'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_criterion is None and 'simpleCriterion' in kwargs: + simple_criterion = kwargs['simpleCriterion'] + if tag_criterion is None and 'tagCriterion' in kwargs: + tag_criterion = kwargs['tagCriterion'] + if simple_criterion is not None: - pulumi.set(__self__, "simple_criterion", simple_criterion) + _setter("simple_criterion", simple_criterion) if tag_criterion is not None: - pulumi.set(__self__, "tag_criterion", tag_criterion) + _setter("tag_criterion", tag_criterion) @property @pulumi.getter(name="simpleCriterion") @@ -279,12 +364,27 @@ def __init__(__self__, *, :param str key: The object property to use in the condition. Valid combination of values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-simplecriterionkeyforjob) :param Sequence[str] values: An array that lists the values to use in the condition. Valid combination of values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-simplecriterionforjob) """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndSimpleCriterion._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[str] = None, + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -337,10 +437,25 @@ def __init__(__self__, *, :param str comparator: The operator to use in the condition. Valid combination and values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-jobcomparator) :param Sequence['ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionTagValueArgs'] tag_values: The tag key and value pairs to use in the condition. One or more blocks are allowed. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterion._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + tag_values=tag_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[str] = None, + tag_values: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionTagValue']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_values is None and 'tagValues' in kwargs: + tag_values = kwargs['tagValues'] + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if tag_values is not None: - pulumi.set(__self__, "tag_values", tag_values) + _setter("tag_values", tag_values) @property @pulumi.getter @@ -368,10 +483,23 @@ def __init__(__self__, *, :param str key: The tag key. :param str value: The tag value. """ + ClassificationJobS3JobDefinitionBucketCriteriaExcludesAndTagCriterionTagValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -395,16 +523,27 @@ class ClassificationJobS3JobDefinitionBucketCriteriaIncludes(dict): def __init__(__self__, *, ands: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd']] = None): """ - :param Sequence['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArgs'] ands: An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + :param Sequence['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndArgs'] ands: An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludes._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) @property @pulumi.getter def ands(self) -> Optional[Sequence['outputs.ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd']]: """ - An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ return pulumi.get(self, "ands") @@ -437,10 +576,27 @@ def __init__(__self__, *, :param 'ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndSimpleCriterionArgs' simple_criterion: A property-based condition that defines a property, operator, and one or more values for including or excluding an S3 buckets from the job. (documented below) :param 'ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionArgs' tag_criterion: A tag-based condition that defines the operator and tag keys or tag key and value pairs for including or excluding an S3 buckets from the job. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludesAnd._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_criterion=simple_criterion, + tag_criterion=tag_criterion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_criterion: Optional['outputs.ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndSimpleCriterion'] = None, + tag_criterion: Optional['outputs.ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterion'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_criterion is None and 'simpleCriterion' in kwargs: + simple_criterion = kwargs['simpleCriterion'] + if tag_criterion is None and 'tagCriterion' in kwargs: + tag_criterion = kwargs['tagCriterion'] + if simple_criterion is not None: - pulumi.set(__self__, "simple_criterion", simple_criterion) + _setter("simple_criterion", simple_criterion) if tag_criterion is not None: - pulumi.set(__self__, "tag_criterion", tag_criterion) + _setter("tag_criterion", tag_criterion) @property @pulumi.getter(name="simpleCriterion") @@ -470,12 +626,27 @@ def __init__(__self__, *, :param str key: The object property to use in the condition. Valid combination of values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-simplecriterionkeyforjob) :param Sequence[str] values: An array that lists the values to use in the condition. Valid combination of values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-simplecriterionforjob) """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndSimpleCriterion._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[str] = None, + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -528,10 +699,25 @@ def __init__(__self__, *, :param str comparator: The operator to use in the condition. Valid combination and values are available in the [AWS Documentation](https://docs.aws.amazon.com/macie/latest/APIReference/jobs.html#jobs-model-jobcomparator) :param Sequence['ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionTagValueArgs'] tag_values: The tag key and value pairs to use in the condition. One or more blocks are allowed. (documented below) """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterion._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + tag_values=tag_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[str] = None, + tag_values: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionTagValue']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_values is None and 'tagValues' in kwargs: + tag_values = kwargs['tagValues'] + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if tag_values is not None: - pulumi.set(__self__, "tag_values", tag_values) + _setter("tag_values", tag_values) @property @pulumi.getter @@ -559,10 +745,23 @@ def __init__(__self__, *, :param str key: The tag key. :param str value: The tag value. """ + ClassificationJobS3JobDefinitionBucketCriteriaIncludesAndTagCriterionTagValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -607,8 +806,27 @@ def __init__(__self__, *, :param str account_id: The unique identifier for the AWS account that owns the buckets. :param Sequence[str] buckets: An array that lists the names of the buckets. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "buckets", buckets) + ClassificationJobS3JobDefinitionBucketDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + buckets=buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + buckets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if buckets is None: + raise TypeError("Missing 'buckets' argument") + + _setter("account_id", account_id) + _setter("buckets", buckets) @property @pulumi.getter(name="accountId") @@ -636,10 +854,23 @@ def __init__(__self__, *, :param 'ClassificationJobS3JobDefinitionScopingExcludesArgs' excludes: The property- or tag-based conditions that determine which objects to exclude from the analysis. (documented below) :param 'ClassificationJobS3JobDefinitionScopingIncludesArgs' includes: The property- or tag-based conditions that determine which objects to include in the analysis. (documented below) """ + ClassificationJobS3JobDefinitionScoping._configure( + lambda key, value: pulumi.set(__self__, key, value), + excludes=excludes, + includes=includes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + excludes: Optional['outputs.ClassificationJobS3JobDefinitionScopingExcludes'] = None, + includes: Optional['outputs.ClassificationJobS3JobDefinitionScopingIncludes'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excludes is not None: - pulumi.set(__self__, "excludes", excludes) + _setter("excludes", excludes) if includes is not None: - pulumi.set(__self__, "includes", includes) + _setter("includes", includes) @property @pulumi.getter @@ -665,8 +896,19 @@ def __init__(__self__, *, """ :param Sequence['ClassificationJobS3JobDefinitionScopingExcludesAndArgs'] ands: An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ + ClassificationJobS3JobDefinitionScopingExcludes._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionScopingExcludesAnd']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) @property @pulumi.getter @@ -705,10 +947,27 @@ def __init__(__self__, *, :param 'ClassificationJobS3JobDefinitionScopingExcludesAndSimpleScopeTermArgs' simple_scope_term: A property-based condition that defines a property, operator, and one or more values for including or excluding an object from the job. (documented below) :param 'ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermArgs' tag_scope_term: A tag-based condition that defines the operator and tag keys or tag key and value pairs for including or excluding an object from the job. (documented below) """ + ClassificationJobS3JobDefinitionScopingExcludesAnd._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_scope_term=simple_scope_term, + tag_scope_term=tag_scope_term, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_scope_term: Optional['outputs.ClassificationJobS3JobDefinitionScopingExcludesAndSimpleScopeTerm'] = None, + tag_scope_term: Optional['outputs.ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTerm'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_scope_term is None and 'simpleScopeTerm' in kwargs: + simple_scope_term = kwargs['simpleScopeTerm'] + if tag_scope_term is None and 'tagScopeTerm' in kwargs: + tag_scope_term = kwargs['tagScopeTerm'] + if simple_scope_term is not None: - pulumi.set(__self__, "simple_scope_term", simple_scope_term) + _setter("simple_scope_term", simple_scope_term) if tag_scope_term is not None: - pulumi.set(__self__, "tag_scope_term", tag_scope_term) + _setter("tag_scope_term", tag_scope_term) @property @pulumi.getter(name="simpleScopeTerm") @@ -738,12 +997,27 @@ def __init__(__self__, *, :param str key: The object property to use in the condition. :param Sequence[str] values: An array that lists the values to use in the condition. """ + ClassificationJobS3JobDefinitionScopingExcludesAndSimpleScopeTerm._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[str] = None, + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -800,14 +1074,33 @@ def __init__(__self__, *, :param Sequence['ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermTagValueArgs'] tag_values: The tag keys or tag key and value pairs to use in the condition. :param str target: The type of object to apply the condition to. The only valid value is `S3_OBJECT`. """ + ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTerm._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + tag_values=tag_values, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[str] = None, + key: Optional[str] = None, + tag_values: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermTagValue']] = None, + target: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_values is None and 'tagValues' in kwargs: + tag_values = kwargs['tagValues'] + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if tag_values is not None: - pulumi.set(__self__, "tag_values", tag_values) + _setter("tag_values", tag_values) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter @@ -851,10 +1144,23 @@ def __init__(__self__, *, :param str key: The tag key. :param str value: The tag value. """ + ClassificationJobS3JobDefinitionScopingExcludesAndTagScopeTermTagValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -878,16 +1184,27 @@ class ClassificationJobS3JobDefinitionScopingIncludes(dict): def __init__(__self__, *, ands: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionScopingIncludesAnd']] = None): """ - :param Sequence['ClassificationJobS3JobDefinitionScopingIncludesAndArgs'] ands: An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + :param Sequence['ClassificationJobS3JobDefinitionScopingIncludesAndArgs'] ands: An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ + ClassificationJobS3JobDefinitionScopingIncludes._configure( + lambda key, value: pulumi.set(__self__, key, value), + ands=ands, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ands: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionScopingIncludesAnd']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ands is not None: - pulumi.set(__self__, "ands", ands) + _setter("ands", ands) @property @pulumi.getter def ands(self) -> Optional[Sequence['outputs.ClassificationJobS3JobDefinitionScopingIncludesAnd']]: """ - An array of conditions, one for each condition that determines which S3 buckets to include or exclude from the job. (documented below) + An array of conditions, one for each condition that determines which objects to include or exclude from the job. (documented below) """ return pulumi.get(self, "ands") @@ -920,10 +1237,27 @@ def __init__(__self__, *, :param 'ClassificationJobS3JobDefinitionScopingIncludesAndSimpleScopeTermArgs' simple_scope_term: A property-based condition that defines a property, operator, and one or more values for including or excluding an object from the job. (documented below) :param 'ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermArgs' tag_scope_term: A tag-based condition that defines the operator and tag keys or tag key and value pairs for including or excluding an object from the job. (documented below) """ + ClassificationJobS3JobDefinitionScopingIncludesAnd._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_scope_term=simple_scope_term, + tag_scope_term=tag_scope_term, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_scope_term: Optional['outputs.ClassificationJobS3JobDefinitionScopingIncludesAndSimpleScopeTerm'] = None, + tag_scope_term: Optional['outputs.ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTerm'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_scope_term is None and 'simpleScopeTerm' in kwargs: + simple_scope_term = kwargs['simpleScopeTerm'] + if tag_scope_term is None and 'tagScopeTerm' in kwargs: + tag_scope_term = kwargs['tagScopeTerm'] + if simple_scope_term is not None: - pulumi.set(__self__, "simple_scope_term", simple_scope_term) + _setter("simple_scope_term", simple_scope_term) if tag_scope_term is not None: - pulumi.set(__self__, "tag_scope_term", tag_scope_term) + _setter("tag_scope_term", tag_scope_term) @property @pulumi.getter(name="simpleScopeTerm") @@ -953,12 +1287,27 @@ def __init__(__self__, *, :param str key: The object property to use in the condition. :param Sequence[str] values: An array that lists the values to use in the condition. """ + ClassificationJobS3JobDefinitionScopingIncludesAndSimpleScopeTerm._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[str] = None, + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter @@ -1015,14 +1364,33 @@ def __init__(__self__, *, :param Sequence['ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermTagValueArgs'] tag_values: The tag keys or tag key and value pairs to use in the condition. :param str target: The type of object to apply the condition to. The only valid value is `S3_OBJECT`. """ + ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTerm._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparator=comparator, + key=key, + tag_values=tag_values, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparator: Optional[str] = None, + key: Optional[str] = None, + tag_values: Optional[Sequence['outputs.ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermTagValue']] = None, + target: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_values is None and 'tagValues' in kwargs: + tag_values = kwargs['tagValues'] + if comparator is not None: - pulumi.set(__self__, "comparator", comparator) + _setter("comparator", comparator) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if tag_values is not None: - pulumi.set(__self__, "tag_values", tag_values) + _setter("tag_values", tag_values) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter @@ -1066,10 +1434,23 @@ def __init__(__self__, *, :param str key: The tag key. :param str value: The tag value. """ + ClassificationJobS3JobDefinitionScopingIncludesAndTagScopeTermTagValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1122,12 +1503,33 @@ def __init__(__self__, *, The `s3_job_definition` object supports the following: :param str weekly_schedule: Specifies a weekly recurrence pattern for running the job. """ + ClassificationJobScheduleFrequency._configure( + lambda key, value: pulumi.set(__self__, key, value), + daily_schedule=daily_schedule, + monthly_schedule=monthly_schedule, + weekly_schedule=weekly_schedule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + daily_schedule: Optional[bool] = None, + monthly_schedule: Optional[int] = None, + weekly_schedule: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if daily_schedule is None and 'dailySchedule' in kwargs: + daily_schedule = kwargs['dailySchedule'] + if monthly_schedule is None and 'monthlySchedule' in kwargs: + monthly_schedule = kwargs['monthlySchedule'] + if weekly_schedule is None and 'weeklySchedule' in kwargs: + weekly_schedule = kwargs['weeklySchedule'] + if daily_schedule is not None: - pulumi.set(__self__, "daily_schedule", daily_schedule) + _setter("daily_schedule", daily_schedule) if monthly_schedule is not None: - pulumi.set(__self__, "monthly_schedule", monthly_schedule) + _setter("monthly_schedule", monthly_schedule) if weekly_schedule is not None: - pulumi.set(__self__, "weekly_schedule", weekly_schedule) + _setter("weekly_schedule", weekly_schedule) @property @pulumi.getter(name="dailySchedule") @@ -1183,12 +1585,33 @@ def __init__(__self__, *, job_expires_at: Optional[str] = None, job_imminent_expiration_health_event_arn: Optional[str] = None, job_paused_at: Optional[str] = None): + ClassificationJobUserPausedDetail._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_expires_at=job_expires_at, + job_imminent_expiration_health_event_arn=job_imminent_expiration_health_event_arn, + job_paused_at=job_paused_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_expires_at: Optional[str] = None, + job_imminent_expiration_health_event_arn: Optional[str] = None, + job_paused_at: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_expires_at is None and 'jobExpiresAt' in kwargs: + job_expires_at = kwargs['jobExpiresAt'] + if job_imminent_expiration_health_event_arn is None and 'jobImminentExpirationHealthEventArn' in kwargs: + job_imminent_expiration_health_event_arn = kwargs['jobImminentExpirationHealthEventArn'] + if job_paused_at is None and 'jobPausedAt' in kwargs: + job_paused_at = kwargs['jobPausedAt'] + if job_expires_at is not None: - pulumi.set(__self__, "job_expires_at", job_expires_at) + _setter("job_expires_at", job_expires_at) if job_imminent_expiration_health_event_arn is not None: - pulumi.set(__self__, "job_imminent_expiration_health_event_arn", job_imminent_expiration_health_event_arn) + _setter("job_imminent_expiration_health_event_arn", job_imminent_expiration_health_event_arn) if job_paused_at is not None: - pulumi.set(__self__, "job_paused_at", job_paused_at) + _setter("job_paused_at", job_paused_at) @property @pulumi.getter(name="jobExpiresAt") diff --git a/sdk/python/pulumi_aws/mediaconvert/_inputs.py b/sdk/python/pulumi_aws/mediaconvert/_inputs.py index 3755a7ed14d..2f5e2d6a3fd 100644 --- a/sdk/python/pulumi_aws/mediaconvert/_inputs.py +++ b/sdk/python/pulumi_aws/mediaconvert/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,9 +24,34 @@ def __init__(__self__, *, :param pulumi.Input[str] renewal_type: Specifies whether the term of your reserved queue pricing plan. Valid values are `AUTO_RENEW` or `EXPIRE`. :param pulumi.Input[int] reserved_slots: Specifies the number of reserved transcode slots (RTS) for queue. """ - pulumi.set(__self__, "commitment", commitment) - pulumi.set(__self__, "renewal_type", renewal_type) - pulumi.set(__self__, "reserved_slots", reserved_slots) + QueueReservationPlanSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + commitment=commitment, + renewal_type=renewal_type, + reserved_slots=reserved_slots, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + commitment: Optional[pulumi.Input[str]] = None, + renewal_type: Optional[pulumi.Input[str]] = None, + reserved_slots: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if commitment is None: + raise TypeError("Missing 'commitment' argument") + if renewal_type is None and 'renewalType' in kwargs: + renewal_type = kwargs['renewalType'] + if renewal_type is None: + raise TypeError("Missing 'renewal_type' argument") + if reserved_slots is None and 'reservedSlots' in kwargs: + reserved_slots = kwargs['reservedSlots'] + if reserved_slots is None: + raise TypeError("Missing 'reserved_slots' argument") + + _setter("commitment", commitment) + _setter("renewal_type", renewal_type) + _setter("reserved_slots", reserved_slots) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/mediaconvert/outputs.py b/sdk/python/pulumi_aws/mediaconvert/outputs.py index 3fb1c7be6e6..ec8b91bd922 100644 --- a/sdk/python/pulumi_aws/mediaconvert/outputs.py +++ b/sdk/python/pulumi_aws/mediaconvert/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -43,9 +43,34 @@ def __init__(__self__, *, :param str renewal_type: Specifies whether the term of your reserved queue pricing plan. Valid values are `AUTO_RENEW` or `EXPIRE`. :param int reserved_slots: Specifies the number of reserved transcode slots (RTS) for queue. """ - pulumi.set(__self__, "commitment", commitment) - pulumi.set(__self__, "renewal_type", renewal_type) - pulumi.set(__self__, "reserved_slots", reserved_slots) + QueueReservationPlanSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + commitment=commitment, + renewal_type=renewal_type, + reserved_slots=reserved_slots, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + commitment: Optional[str] = None, + renewal_type: Optional[str] = None, + reserved_slots: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if commitment is None: + raise TypeError("Missing 'commitment' argument") + if renewal_type is None and 'renewalType' in kwargs: + renewal_type = kwargs['renewalType'] + if renewal_type is None: + raise TypeError("Missing 'renewal_type' argument") + if reserved_slots is None and 'reservedSlots' in kwargs: + reserved_slots = kwargs['reservedSlots'] + if reserved_slots is None: + raise TypeError("Missing 'reserved_slots' argument") + + _setter("commitment", commitment) + _setter("renewal_type", renewal_type) + _setter("reserved_slots", reserved_slots) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/mediaconvert/queue.py b/sdk/python/pulumi_aws/mediaconvert/queue.py index fc53b839aff..bf93ceb63bb 100644 --- a/sdk/python/pulumi_aws/mediaconvert/queue.py +++ b/sdk/python/pulumi_aws/mediaconvert/queue.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,18 +31,43 @@ def __init__(__self__, *, :param pulumi.Input[str] status: A status of the queue. Valid values are `ACTIVE` or `RESERVED`. Default to `PAUSED`. :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. """ + QueueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + pricing_plan=pricing_plan, + reservation_plan_settings=reservation_plan_settings, + status=status, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + pricing_plan: Optional[pulumi.Input[str]] = None, + reservation_plan_settings: Optional[pulumi.Input['QueueReservationPlanSettingsArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pricing_plan is None and 'pricingPlan' in kwargs: + pricing_plan = kwargs['pricingPlan'] + if reservation_plan_settings is None and 'reservationPlanSettings' in kwargs: + reservation_plan_settings = kwargs['reservationPlanSettings'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if pricing_plan is not None: - pulumi.set(__self__, "pricing_plan", pricing_plan) + _setter("pricing_plan", pricing_plan) if reservation_plan_settings is not None: - pulumi.set(__self__, "reservation_plan_settings", reservation_plan_settings) + _setter("reservation_plan_settings", reservation_plan_settings) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -139,25 +164,56 @@ def __init__(__self__, *, :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. """ + _QueueState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + pricing_plan=pricing_plan, + reservation_plan_settings=reservation_plan_settings, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + pricing_plan: Optional[pulumi.Input[str]] = None, + reservation_plan_settings: Optional[pulumi.Input['QueueReservationPlanSettingsArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pricing_plan is None and 'pricingPlan' in kwargs: + pricing_plan = kwargs['pricingPlan'] + if reservation_plan_settings is None and 'reservationPlanSettings' in kwargs: + reservation_plan_settings = kwargs['reservationPlanSettings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if pricing_plan is not None: - pulumi.set(__self__, "pricing_plan", pricing_plan) + _setter("pricing_plan", pricing_plan) if reservation_plan_settings is not None: - pulumi.set(__self__, "reservation_plan_settings", reservation_plan_settings) + _setter("reservation_plan_settings", reservation_plan_settings) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -336,6 +392,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + QueueArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -359,6 +419,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["name"] = name __props__.__dict__["pricing_plan"] = pricing_plan + reservation_plan_settings = _utilities.configure(reservation_plan_settings, QueueReservationPlanSettingsArgs, True) __props__.__dict__["reservation_plan_settings"] = reservation_plan_settings __props__.__dict__["status"] = status __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/medialive/_inputs.py b/sdk/python/pulumi_aws/medialive/_inputs.py index 3f888b82b13..d5881e9e6b9 100644 --- a/sdk/python/pulumi_aws/medialive/_inputs.py +++ b/sdk/python/pulumi_aws/medialive/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -189,7 +189,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] resolution: Maximum CDI input resolution. """ - pulumi.set(__self__, "resolution", resolution) + ChannelCdiInputSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resolution=resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resolution: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resolution is None: + raise TypeError("Missing 'resolution' argument") + + _setter("resolution", resolution) @property @pulumi.getter @@ -217,13 +230,36 @@ def __init__(__self__, *, :param pulumi.Input['ChannelDestinationMultiplexSettingsArgs'] multiplex_settings: Destination settings for a Multiplex output; one destination for both encoders. See Multiplex Settings for more details. :param pulumi.Input[Sequence[pulumi.Input['ChannelDestinationSettingArgs']]] settings: Destination settings for a standard output; one destination for each redundant encoder. See Settings for more details. """ - pulumi.set(__self__, "id", id) + ChannelDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + media_package_settings=media_package_settings, + multiplex_settings=multiplex_settings, + settings=settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + media_package_settings: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelDestinationMediaPackageSettingArgs']]]] = None, + multiplex_settings: Optional[pulumi.Input['ChannelDestinationMultiplexSettingsArgs']] = None, + settings: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelDestinationSettingArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if media_package_settings is None and 'mediaPackageSettings' in kwargs: + media_package_settings = kwargs['mediaPackageSettings'] + if multiplex_settings is None and 'multiplexSettings' in kwargs: + multiplex_settings = kwargs['multiplexSettings'] + + _setter("id", id) if media_package_settings is not None: - pulumi.set(__self__, "media_package_settings", media_package_settings) + _setter("media_package_settings", media_package_settings) if multiplex_settings is not None: - pulumi.set(__self__, "multiplex_settings", multiplex_settings) + _setter("multiplex_settings", multiplex_settings) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) @property @pulumi.getter @@ -281,7 +317,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] channel_id: ID of the channel in MediaPackage that is the destination for this output group. """ - pulumi.set(__self__, "channel_id", channel_id) + ChannelDestinationMediaPackageSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_id=channel_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_id is None and 'channelId' in kwargs: + channel_id = kwargs['channelId'] + if channel_id is None: + raise TypeError("Missing 'channel_id' argument") + + _setter("channel_id", channel_id) @property @pulumi.getter(name="channelId") @@ -305,8 +356,29 @@ def __init__(__self__, *, :param pulumi.Input[str] multiplex_id: The ID of the Multiplex that the encoder is providing output to. :param pulumi.Input[str] program_name: The program name of the Multiplex program that the encoder is providing output to. """ - pulumi.set(__self__, "multiplex_id", multiplex_id) - pulumi.set(__self__, "program_name", program_name) + ChannelDestinationMultiplexSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + multiplex_id=multiplex_id, + program_name=program_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + multiplex_id: Optional[pulumi.Input[str]] = None, + program_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if multiplex_id is None and 'multiplexId' in kwargs: + multiplex_id = kwargs['multiplexId'] + if multiplex_id is None: + raise TypeError("Missing 'multiplex_id' argument") + if program_name is None and 'programName' in kwargs: + program_name = kwargs['programName'] + if program_name is None: + raise TypeError("Missing 'program_name' argument") + + _setter("multiplex_id", multiplex_id) + _setter("program_name", program_name) @property @pulumi.getter(name="multiplexId") @@ -346,14 +418,35 @@ def __init__(__self__, *, :param pulumi.Input[str] url: A URL specifying a destination. :param pulumi.Input[str] username: Username for destination. """ + ChannelDestinationSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password_param=password_param, + stream_name=stream_name, + url=url, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password_param: Optional[pulumi.Input[str]] = None, + stream_name: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if stream_name is not None: - pulumi.set(__self__, "stream_name", stream_name) + _setter("stream_name", stream_name) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter(name="passwordParam") @@ -427,22 +520,71 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsNielsenConfigurationArgs'] nielsen_configuration: Nielsen configuration settings. See Nielsen Configuration for more details. :param pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsVideoDescriptionArgs']]] video_descriptions: Video Descriptions. See Video Descriptions for more details. """ - pulumi.set(__self__, "output_groups", output_groups) - pulumi.set(__self__, "timecode_config", timecode_config) + ChannelEncoderSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_groups=output_groups, + timecode_config=timecode_config, + audio_descriptions=audio_descriptions, + avail_blanking=avail_blanking, + caption_descriptions=caption_descriptions, + global_configuration=global_configuration, + motion_graphics_configuration=motion_graphics_configuration, + nielsen_configuration=nielsen_configuration, + video_descriptions=video_descriptions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsOutputGroupArgs']]]] = None, + timecode_config: Optional[pulumi.Input['ChannelEncoderSettingsTimecodeConfigArgs']] = None, + audio_descriptions: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsAudioDescriptionArgs']]]] = None, + avail_blanking: Optional[pulumi.Input['ChannelEncoderSettingsAvailBlankingArgs']] = None, + caption_descriptions: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionArgs']]]] = None, + global_configuration: Optional[pulumi.Input['ChannelEncoderSettingsGlobalConfigurationArgs']] = None, + motion_graphics_configuration: Optional[pulumi.Input['ChannelEncoderSettingsMotionGraphicsConfigurationArgs']] = None, + nielsen_configuration: Optional[pulumi.Input['ChannelEncoderSettingsNielsenConfigurationArgs']] = None, + video_descriptions: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsVideoDescriptionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_groups is None and 'outputGroups' in kwargs: + output_groups = kwargs['outputGroups'] + if output_groups is None: + raise TypeError("Missing 'output_groups' argument") + if timecode_config is None and 'timecodeConfig' in kwargs: + timecode_config = kwargs['timecodeConfig'] + if timecode_config is None: + raise TypeError("Missing 'timecode_config' argument") + if audio_descriptions is None and 'audioDescriptions' in kwargs: + audio_descriptions = kwargs['audioDescriptions'] + if avail_blanking is None and 'availBlanking' in kwargs: + avail_blanking = kwargs['availBlanking'] + if caption_descriptions is None and 'captionDescriptions' in kwargs: + caption_descriptions = kwargs['captionDescriptions'] + if global_configuration is None and 'globalConfiguration' in kwargs: + global_configuration = kwargs['globalConfiguration'] + if motion_graphics_configuration is None and 'motionGraphicsConfiguration' in kwargs: + motion_graphics_configuration = kwargs['motionGraphicsConfiguration'] + if nielsen_configuration is None and 'nielsenConfiguration' in kwargs: + nielsen_configuration = kwargs['nielsenConfiguration'] + if video_descriptions is None and 'videoDescriptions' in kwargs: + video_descriptions = kwargs['videoDescriptions'] + + _setter("output_groups", output_groups) + _setter("timecode_config", timecode_config) if audio_descriptions is not None: - pulumi.set(__self__, "audio_descriptions", audio_descriptions) + _setter("audio_descriptions", audio_descriptions) if avail_blanking is not None: - pulumi.set(__self__, "avail_blanking", avail_blanking) + _setter("avail_blanking", avail_blanking) if caption_descriptions is not None: - pulumi.set(__self__, "caption_descriptions", caption_descriptions) + _setter("caption_descriptions", caption_descriptions) if global_configuration is not None: - pulumi.set(__self__, "global_configuration", global_configuration) + _setter("global_configuration", global_configuration) if motion_graphics_configuration is not None: - pulumi.set(__self__, "motion_graphics_configuration", motion_graphics_configuration) + _setter("motion_graphics_configuration", motion_graphics_configuration) if nielsen_configuration is not None: - pulumi.set(__self__, "nielsen_configuration", nielsen_configuration) + _setter("nielsen_configuration", nielsen_configuration) if video_descriptions is not None: - pulumi.set(__self__, "video_descriptions", video_descriptions) + _setter("video_descriptions", video_descriptions) @property @pulumi.getter(name="outputGroups") @@ -578,26 +720,81 @@ def __init__(__self__, *, :param pulumi.Input[str] language_code: Selects a specific three-letter language code from within an audio source. :param pulumi.Input[str] stream_name: Stream name RTMP destinations (URLs of type rtmp://) """ - pulumi.set(__self__, "audio_selector_name", audio_selector_name) - pulumi.set(__self__, "name", name) + ChannelEncoderSettingsAudioDescriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_selector_name=audio_selector_name, + name=name, + audio_normalization_settings=audio_normalization_settings, + audio_type=audio_type, + audio_type_control=audio_type_control, + audio_watermark_settings=audio_watermark_settings, + codec_settings=codec_settings, + language_code=language_code, + language_code_control=language_code_control, + remix_settings=remix_settings, + stream_name=stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_selector_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + audio_normalization_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionAudioNormalizationSettingsArgs']] = None, + audio_type: Optional[pulumi.Input[str]] = None, + audio_type_control: Optional[pulumi.Input[str]] = None, + audio_watermark_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsArgs']] = None, + codec_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsArgs']] = None, + language_code: Optional[pulumi.Input[str]] = None, + language_code_control: Optional[pulumi.Input[str]] = None, + remix_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionRemixSettingsArgs']] = None, + stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_selector_name is None and 'audioSelectorName' in kwargs: + audio_selector_name = kwargs['audioSelectorName'] + if audio_selector_name is None: + raise TypeError("Missing 'audio_selector_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if audio_normalization_settings is None and 'audioNormalizationSettings' in kwargs: + audio_normalization_settings = kwargs['audioNormalizationSettings'] + if audio_type is None and 'audioType' in kwargs: + audio_type = kwargs['audioType'] + if audio_type_control is None and 'audioTypeControl' in kwargs: + audio_type_control = kwargs['audioTypeControl'] + if audio_watermark_settings is None and 'audioWatermarkSettings' in kwargs: + audio_watermark_settings = kwargs['audioWatermarkSettings'] + if codec_settings is None and 'codecSettings' in kwargs: + codec_settings = kwargs['codecSettings'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code_control is None and 'languageCodeControl' in kwargs: + language_code_control = kwargs['languageCodeControl'] + if remix_settings is None and 'remixSettings' in kwargs: + remix_settings = kwargs['remixSettings'] + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + + _setter("audio_selector_name", audio_selector_name) + _setter("name", name) if audio_normalization_settings is not None: - pulumi.set(__self__, "audio_normalization_settings", audio_normalization_settings) + _setter("audio_normalization_settings", audio_normalization_settings) if audio_type is not None: - pulumi.set(__self__, "audio_type", audio_type) + _setter("audio_type", audio_type) if audio_type_control is not None: - pulumi.set(__self__, "audio_type_control", audio_type_control) + _setter("audio_type_control", audio_type_control) if audio_watermark_settings is not None: - pulumi.set(__self__, "audio_watermark_settings", audio_watermark_settings) + _setter("audio_watermark_settings", audio_watermark_settings) if codec_settings is not None: - pulumi.set(__self__, "codec_settings", codec_settings) + _setter("codec_settings", codec_settings) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if language_code_control is not None: - pulumi.set(__self__, "language_code_control", language_code_control) + _setter("language_code_control", language_code_control) if remix_settings is not None: - pulumi.set(__self__, "remix_settings", remix_settings) + _setter("remix_settings", remix_settings) if stream_name is not None: - pulumi.set(__self__, "stream_name", stream_name) + _setter("stream_name", stream_name) @property @pulumi.getter(name="audioSelectorName") @@ -737,12 +934,31 @@ def __init__(__self__, *, :param pulumi.Input[str] algorithm_control: Algorithm control for the audio description. :param pulumi.Input[float] target_lkfs: Target LKFS (loudness) to adjust volume to. """ + ChannelEncoderSettingsAudioDescriptionAudioNormalizationSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + algorithm=algorithm, + algorithm_control=algorithm_control, + target_lkfs=target_lkfs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + algorithm: Optional[pulumi.Input[str]] = None, + algorithm_control: Optional[pulumi.Input[str]] = None, + target_lkfs: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if algorithm_control is None and 'algorithmControl' in kwargs: + algorithm_control = kwargs['algorithmControl'] + if target_lkfs is None and 'targetLkfs' in kwargs: + target_lkfs = kwargs['targetLkfs'] + if algorithm is not None: - pulumi.set(__self__, "algorithm", algorithm) + _setter("algorithm", algorithm) if algorithm_control is not None: - pulumi.set(__self__, "algorithm_control", algorithm_control) + _setter("algorithm_control", algorithm_control) if target_lkfs is not None: - pulumi.set(__self__, "target_lkfs", target_lkfs) + _setter("target_lkfs", target_lkfs) @property @pulumi.getter @@ -785,8 +1001,21 @@ def target_lkfs(self, value: Optional[pulumi.Input[float]]): class ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsArgs: def __init__(__self__, *, nielsen_watermarks_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsArgs']] = None): + ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + nielsen_watermarks_settings=nielsen_watermarks_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nielsen_watermarks_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nielsen_watermarks_settings is None and 'nielsenWatermarksSettings' in kwargs: + nielsen_watermarks_settings = kwargs['nielsenWatermarksSettings'] + if nielsen_watermarks_settings is not None: - pulumi.set(__self__, "nielsen_watermarks_settings", nielsen_watermarks_settings) + _setter("nielsen_watermarks_settings", nielsen_watermarks_settings) @property @pulumi.getter(name="nielsenWatermarksSettings") @@ -809,12 +1038,33 @@ def __init__(__self__, *, :param pulumi.Input[str] nielsen_distribution_type: Distribution types to assign to the watermarks. Options are `PROGRAM_CONTENT` and `FINAL_DISTRIBUTOR`. :param pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenNaesIiNwSettingArgs']]] nielsen_naes_ii_nw_settings: Used to insert watermarks of type Nielsen NAES, II (N2) and Nielsen NAES VI (NW). See Nielsen NAES II NW Settings for more details. """ + ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + nielsen_cbet_settings=nielsen_cbet_settings, + nielsen_distribution_type=nielsen_distribution_type, + nielsen_naes_ii_nw_settings=nielsen_naes_ii_nw_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nielsen_cbet_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenCbetSettingsArgs']] = None, + nielsen_distribution_type: Optional[pulumi.Input[str]] = None, + nielsen_naes_ii_nw_settings: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenNaesIiNwSettingArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nielsen_cbet_settings is None and 'nielsenCbetSettings' in kwargs: + nielsen_cbet_settings = kwargs['nielsenCbetSettings'] + if nielsen_distribution_type is None and 'nielsenDistributionType' in kwargs: + nielsen_distribution_type = kwargs['nielsenDistributionType'] + if nielsen_naes_ii_nw_settings is None and 'nielsenNaesIiNwSettings' in kwargs: + nielsen_naes_ii_nw_settings = kwargs['nielsenNaesIiNwSettings'] + if nielsen_cbet_settings is not None: - pulumi.set(__self__, "nielsen_cbet_settings", nielsen_cbet_settings) + _setter("nielsen_cbet_settings", nielsen_cbet_settings) if nielsen_distribution_type is not None: - pulumi.set(__self__, "nielsen_distribution_type", nielsen_distribution_type) + _setter("nielsen_distribution_type", nielsen_distribution_type) if nielsen_naes_ii_nw_settings is not None: - pulumi.set(__self__, "nielsen_naes_ii_nw_settings", nielsen_naes_ii_nw_settings) + _setter("nielsen_naes_ii_nw_settings", nielsen_naes_ii_nw_settings) @property @pulumi.getter(name="nielsenCbetSettings") @@ -863,9 +1113,34 @@ def __init__(__self__, *, :param pulumi.Input[str] cbet_stepaside: Determines the method of CBET insertion mode when prior encoding is detected on the same layer. :param pulumi.Input[str] csid: CBET source ID to use in the watermark. """ - pulumi.set(__self__, "cbet_check_digit_string", cbet_check_digit_string) - pulumi.set(__self__, "cbet_stepaside", cbet_stepaside) - pulumi.set(__self__, "csid", csid) + ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenCbetSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cbet_check_digit_string=cbet_check_digit_string, + cbet_stepaside=cbet_stepaside, + csid=csid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cbet_check_digit_string: Optional[pulumi.Input[str]] = None, + cbet_stepaside: Optional[pulumi.Input[str]] = None, + csid: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cbet_check_digit_string is None and 'cbetCheckDigitString' in kwargs: + cbet_check_digit_string = kwargs['cbetCheckDigitString'] + if cbet_check_digit_string is None: + raise TypeError("Missing 'cbet_check_digit_string' argument") + if cbet_stepaside is None and 'cbetStepaside' in kwargs: + cbet_stepaside = kwargs['cbetStepaside'] + if cbet_stepaside is None: + raise TypeError("Missing 'cbet_stepaside' argument") + if csid is None: + raise TypeError("Missing 'csid' argument") + + _setter("cbet_check_digit_string", cbet_check_digit_string) + _setter("cbet_stepaside", cbet_stepaside) + _setter("csid", csid) @property @pulumi.getter(name="cbetCheckDigitString") @@ -909,8 +1184,27 @@ def __init__(__self__, *, """ :param pulumi.Input[float] sid: The Nielsen Source ID to include in the watermark. """ - pulumi.set(__self__, "check_digit_string", check_digit_string) - pulumi.set(__self__, "sid", sid) + ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenNaesIiNwSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + check_digit_string=check_digit_string, + sid=sid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + check_digit_string: Optional[pulumi.Input[str]] = None, + sid: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if check_digit_string is None and 'checkDigitString' in kwargs: + check_digit_string = kwargs['checkDigitString'] + if check_digit_string is None: + raise TypeError("Missing 'check_digit_string' argument") + if sid is None: + raise TypeError("Missing 'sid' argument") + + _setter("check_digit_string", check_digit_string) + _setter("sid", sid) @property @pulumi.getter(name="checkDigitString") @@ -950,20 +1244,57 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3AtmosSettingsArgs'] eac3_atmos_settings: Eac3 Atmos Settings. See EAC3 Atmos Settings :param pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3SettingsArgs'] eac3_settings: Eac3 Settings. See EAC3 Settings """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aac_settings=aac_settings, + ac3_settings=ac3_settings, + eac3_atmos_settings=eac3_atmos_settings, + eac3_settings=eac3_settings, + mp2_settings=mp2_settings, + pass_through_settings=pass_through_settings, + wav_settings=wav_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aac_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsAacSettingsArgs']] = None, + ac3_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsAc3SettingsArgs']] = None, + eac3_atmos_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3AtmosSettingsArgs']] = None, + eac3_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3SettingsArgs']] = None, + mp2_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsMp2SettingsArgs']] = None, + pass_through_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsPassThroughSettingsArgs']] = None, + wav_settings: Optional[pulumi.Input['ChannelEncoderSettingsAudioDescriptionCodecSettingsWavSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aac_settings is None and 'aacSettings' in kwargs: + aac_settings = kwargs['aacSettings'] + if ac3_settings is None and 'ac3Settings' in kwargs: + ac3_settings = kwargs['ac3Settings'] + if eac3_atmos_settings is None and 'eac3AtmosSettings' in kwargs: + eac3_atmos_settings = kwargs['eac3AtmosSettings'] + if eac3_settings is None and 'eac3Settings' in kwargs: + eac3_settings = kwargs['eac3Settings'] + if mp2_settings is None and 'mp2Settings' in kwargs: + mp2_settings = kwargs['mp2Settings'] + if pass_through_settings is None and 'passThroughSettings' in kwargs: + pass_through_settings = kwargs['passThroughSettings'] + if wav_settings is None and 'wavSettings' in kwargs: + wav_settings = kwargs['wavSettings'] + if aac_settings is not None: - pulumi.set(__self__, "aac_settings", aac_settings) + _setter("aac_settings", aac_settings) if ac3_settings is not None: - pulumi.set(__self__, "ac3_settings", ac3_settings) + _setter("ac3_settings", ac3_settings) if eac3_atmos_settings is not None: - pulumi.set(__self__, "eac3_atmos_settings", eac3_atmos_settings) + _setter("eac3_atmos_settings", eac3_atmos_settings) if eac3_settings is not None: - pulumi.set(__self__, "eac3_settings", eac3_settings) + _setter("eac3_settings", eac3_settings) if mp2_settings is not None: - pulumi.set(__self__, "mp2_settings", mp2_settings) + _setter("mp2_settings", mp2_settings) if pass_through_settings is not None: - pulumi.set(__self__, "pass_through_settings", pass_through_settings) + _setter("pass_through_settings", pass_through_settings) if wav_settings is not None: - pulumi.set(__self__, "wav_settings", wav_settings) + _setter("wav_settings", wav_settings) @property @pulumi.getter(name="aacSettings") @@ -1064,24 +1395,63 @@ def __init__(__self__, *, :param pulumi.Input[str] spec: Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2 Transport Stream containers. :param pulumi.Input[str] vbr_quality: VBR Quality Level - Only used if rateControlMode is VBR. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsAacSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + coding_mode=coding_mode, + input_type=input_type, + profile=profile, + rate_control_mode=rate_control_mode, + raw_format=raw_format, + sample_rate=sample_rate, + spec=spec, + vbr_quality=vbr_quality, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[pulumi.Input[float]] = None, + coding_mode: Optional[pulumi.Input[str]] = None, + input_type: Optional[pulumi.Input[str]] = None, + profile: Optional[pulumi.Input[str]] = None, + rate_control_mode: Optional[pulumi.Input[str]] = None, + raw_format: Optional[pulumi.Input[str]] = None, + sample_rate: Optional[pulumi.Input[float]] = None, + spec: Optional[pulumi.Input[str]] = None, + vbr_quality: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if input_type is None and 'inputType' in kwargs: + input_type = kwargs['inputType'] + if rate_control_mode is None and 'rateControlMode' in kwargs: + rate_control_mode = kwargs['rateControlMode'] + if raw_format is None and 'rawFormat' in kwargs: + raw_format = kwargs['rawFormat'] + if sample_rate is None and 'sampleRate' in kwargs: + sample_rate = kwargs['sampleRate'] + if vbr_quality is None and 'vbrQuality' in kwargs: + vbr_quality = kwargs['vbrQuality'] + if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if input_type is not None: - pulumi.set(__self__, "input_type", input_type) + _setter("input_type", input_type) if profile is not None: - pulumi.set(__self__, "profile", profile) + _setter("profile", profile) if rate_control_mode is not None: - pulumi.set(__self__, "rate_control_mode", rate_control_mode) + _setter("rate_control_mode", rate_control_mode) if raw_format is not None: - pulumi.set(__self__, "raw_format", raw_format) + _setter("raw_format", raw_format) if sample_rate is not None: - pulumi.set(__self__, "sample_rate", sample_rate) + _setter("sample_rate", sample_rate) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if vbr_quality is not None: - pulumi.set(__self__, "vbr_quality", vbr_quality) + _setter("vbr_quality", vbr_quality) @property @pulumi.getter @@ -1211,20 +1581,53 @@ def __init__(__self__, *, :param pulumi.Input[str] lfe_filter: When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. :param pulumi.Input[str] metadata_control: Metadata control. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsAc3SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + bitstream_mode=bitstream_mode, + coding_mode=coding_mode, + dialnorm=dialnorm, + drc_profile=drc_profile, + lfe_filter=lfe_filter, + metadata_control=metadata_control, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[pulumi.Input[float]] = None, + bitstream_mode: Optional[pulumi.Input[str]] = None, + coding_mode: Optional[pulumi.Input[str]] = None, + dialnorm: Optional[pulumi.Input[int]] = None, + drc_profile: Optional[pulumi.Input[str]] = None, + lfe_filter: Optional[pulumi.Input[str]] = None, + metadata_control: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bitstream_mode is None and 'bitstreamMode' in kwargs: + bitstream_mode = kwargs['bitstreamMode'] + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if drc_profile is None and 'drcProfile' in kwargs: + drc_profile = kwargs['drcProfile'] + if lfe_filter is None and 'lfeFilter' in kwargs: + lfe_filter = kwargs['lfeFilter'] + if metadata_control is None and 'metadataControl' in kwargs: + metadata_control = kwargs['metadataControl'] + if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if bitstream_mode is not None: - pulumi.set(__self__, "bitstream_mode", bitstream_mode) + _setter("bitstream_mode", bitstream_mode) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if dialnorm is not None: - pulumi.set(__self__, "dialnorm", dialnorm) + _setter("dialnorm", dialnorm) if drc_profile is not None: - pulumi.set(__self__, "drc_profile", drc_profile) + _setter("drc_profile", drc_profile) if lfe_filter is not None: - pulumi.set(__self__, "lfe_filter", lfe_filter) + _setter("lfe_filter", lfe_filter) if metadata_control is not None: - pulumi.set(__self__, "metadata_control", metadata_control) + _setter("metadata_control", metadata_control) @property @pulumi.getter @@ -1330,20 +1733,53 @@ def __init__(__self__, *, :param pulumi.Input[float] height_trim: Height dimensional trim. :param pulumi.Input[float] surround_trim: Surround dimensional trim. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3AtmosSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + coding_mode=coding_mode, + dialnorm=dialnorm, + drc_line=drc_line, + drc_rf=drc_rf, + height_trim=height_trim, + surround_trim=surround_trim, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[pulumi.Input[float]] = None, + coding_mode: Optional[pulumi.Input[str]] = None, + dialnorm: Optional[pulumi.Input[float]] = None, + drc_line: Optional[pulumi.Input[str]] = None, + drc_rf: Optional[pulumi.Input[str]] = None, + height_trim: Optional[pulumi.Input[float]] = None, + surround_trim: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if drc_line is None and 'drcLine' in kwargs: + drc_line = kwargs['drcLine'] + if drc_rf is None and 'drcRf' in kwargs: + drc_rf = kwargs['drcRf'] + if height_trim is None and 'heightTrim' in kwargs: + height_trim = kwargs['heightTrim'] + if surround_trim is None and 'surroundTrim' in kwargs: + surround_trim = kwargs['surroundTrim'] + if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if dialnorm is not None: - pulumi.set(__self__, "dialnorm", dialnorm) + _setter("dialnorm", dialnorm) if drc_line is not None: - pulumi.set(__self__, "drc_line", drc_line) + _setter("drc_line", drc_line) if drc_rf is not None: - pulumi.set(__self__, "drc_rf", drc_rf) + _setter("drc_rf", drc_rf) if height_trim is not None: - pulumi.set(__self__, "height_trim", height_trim) + _setter("height_trim", height_trim) if surround_trim is not None: - pulumi.set(__self__, "surround_trim", surround_trim) + _setter("surround_trim", surround_trim) @property @pulumi.getter @@ -1464,46 +1900,131 @@ def __init__(__self__, *, :param pulumi.Input[str] lfe_filter: When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. :param pulumi.Input[str] metadata_control: Metadata control. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attenuation_control=attenuation_control, + bitrate=bitrate, + bitstream_mode=bitstream_mode, + coding_mode=coding_mode, + dc_filter=dc_filter, + dialnorm=dialnorm, + drc_line=drc_line, + drc_rf=drc_rf, + lfe_control=lfe_control, + lfe_filter=lfe_filter, + lo_ro_center_mix_level=lo_ro_center_mix_level, + lo_ro_surround_mix_level=lo_ro_surround_mix_level, + lt_rt_center_mix_level=lt_rt_center_mix_level, + lt_rt_surround_mix_level=lt_rt_surround_mix_level, + metadata_control=metadata_control, + passthrough_control=passthrough_control, + phase_control=phase_control, + stereo_downmix=stereo_downmix, + surround_ex_mode=surround_ex_mode, + surround_mode=surround_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attenuation_control: Optional[pulumi.Input[str]] = None, + bitrate: Optional[pulumi.Input[float]] = None, + bitstream_mode: Optional[pulumi.Input[str]] = None, + coding_mode: Optional[pulumi.Input[str]] = None, + dc_filter: Optional[pulumi.Input[str]] = None, + dialnorm: Optional[pulumi.Input[int]] = None, + drc_line: Optional[pulumi.Input[str]] = None, + drc_rf: Optional[pulumi.Input[str]] = None, + lfe_control: Optional[pulumi.Input[str]] = None, + lfe_filter: Optional[pulumi.Input[str]] = None, + lo_ro_center_mix_level: Optional[pulumi.Input[float]] = None, + lo_ro_surround_mix_level: Optional[pulumi.Input[float]] = None, + lt_rt_center_mix_level: Optional[pulumi.Input[float]] = None, + lt_rt_surround_mix_level: Optional[pulumi.Input[float]] = None, + metadata_control: Optional[pulumi.Input[str]] = None, + passthrough_control: Optional[pulumi.Input[str]] = None, + phase_control: Optional[pulumi.Input[str]] = None, + stereo_downmix: Optional[pulumi.Input[str]] = None, + surround_ex_mode: Optional[pulumi.Input[str]] = None, + surround_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attenuation_control is None and 'attenuationControl' in kwargs: + attenuation_control = kwargs['attenuationControl'] + if bitstream_mode is None and 'bitstreamMode' in kwargs: + bitstream_mode = kwargs['bitstreamMode'] + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if dc_filter is None and 'dcFilter' in kwargs: + dc_filter = kwargs['dcFilter'] + if drc_line is None and 'drcLine' in kwargs: + drc_line = kwargs['drcLine'] + if drc_rf is None and 'drcRf' in kwargs: + drc_rf = kwargs['drcRf'] + if lfe_control is None and 'lfeControl' in kwargs: + lfe_control = kwargs['lfeControl'] + if lfe_filter is None and 'lfeFilter' in kwargs: + lfe_filter = kwargs['lfeFilter'] + if lo_ro_center_mix_level is None and 'loRoCenterMixLevel' in kwargs: + lo_ro_center_mix_level = kwargs['loRoCenterMixLevel'] + if lo_ro_surround_mix_level is None and 'loRoSurroundMixLevel' in kwargs: + lo_ro_surround_mix_level = kwargs['loRoSurroundMixLevel'] + if lt_rt_center_mix_level is None and 'ltRtCenterMixLevel' in kwargs: + lt_rt_center_mix_level = kwargs['ltRtCenterMixLevel'] + if lt_rt_surround_mix_level is None and 'ltRtSurroundMixLevel' in kwargs: + lt_rt_surround_mix_level = kwargs['ltRtSurroundMixLevel'] + if metadata_control is None and 'metadataControl' in kwargs: + metadata_control = kwargs['metadataControl'] + if passthrough_control is None and 'passthroughControl' in kwargs: + passthrough_control = kwargs['passthroughControl'] + if phase_control is None and 'phaseControl' in kwargs: + phase_control = kwargs['phaseControl'] + if stereo_downmix is None and 'stereoDownmix' in kwargs: + stereo_downmix = kwargs['stereoDownmix'] + if surround_ex_mode is None and 'surroundExMode' in kwargs: + surround_ex_mode = kwargs['surroundExMode'] + if surround_mode is None and 'surroundMode' in kwargs: + surround_mode = kwargs['surroundMode'] + if attenuation_control is not None: - pulumi.set(__self__, "attenuation_control", attenuation_control) + _setter("attenuation_control", attenuation_control) if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if bitstream_mode is not None: - pulumi.set(__self__, "bitstream_mode", bitstream_mode) + _setter("bitstream_mode", bitstream_mode) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if dc_filter is not None: - pulumi.set(__self__, "dc_filter", dc_filter) + _setter("dc_filter", dc_filter) if dialnorm is not None: - pulumi.set(__self__, "dialnorm", dialnorm) + _setter("dialnorm", dialnorm) if drc_line is not None: - pulumi.set(__self__, "drc_line", drc_line) + _setter("drc_line", drc_line) if drc_rf is not None: - pulumi.set(__self__, "drc_rf", drc_rf) + _setter("drc_rf", drc_rf) if lfe_control is not None: - pulumi.set(__self__, "lfe_control", lfe_control) + _setter("lfe_control", lfe_control) if lfe_filter is not None: - pulumi.set(__self__, "lfe_filter", lfe_filter) + _setter("lfe_filter", lfe_filter) if lo_ro_center_mix_level is not None: - pulumi.set(__self__, "lo_ro_center_mix_level", lo_ro_center_mix_level) + _setter("lo_ro_center_mix_level", lo_ro_center_mix_level) if lo_ro_surround_mix_level is not None: - pulumi.set(__self__, "lo_ro_surround_mix_level", lo_ro_surround_mix_level) + _setter("lo_ro_surround_mix_level", lo_ro_surround_mix_level) if lt_rt_center_mix_level is not None: - pulumi.set(__self__, "lt_rt_center_mix_level", lt_rt_center_mix_level) + _setter("lt_rt_center_mix_level", lt_rt_center_mix_level) if lt_rt_surround_mix_level is not None: - pulumi.set(__self__, "lt_rt_surround_mix_level", lt_rt_surround_mix_level) + _setter("lt_rt_surround_mix_level", lt_rt_surround_mix_level) if metadata_control is not None: - pulumi.set(__self__, "metadata_control", metadata_control) + _setter("metadata_control", metadata_control) if passthrough_control is not None: - pulumi.set(__self__, "passthrough_control", passthrough_control) + _setter("passthrough_control", passthrough_control) if phase_control is not None: - pulumi.set(__self__, "phase_control", phase_control) + _setter("phase_control", phase_control) if stereo_downmix is not None: - pulumi.set(__self__, "stereo_downmix", stereo_downmix) + _setter("stereo_downmix", stereo_downmix) if surround_ex_mode is not None: - pulumi.set(__self__, "surround_ex_mode", surround_ex_mode) + _setter("surround_ex_mode", surround_ex_mode) if surround_mode is not None: - pulumi.set(__self__, "surround_mode", surround_mode) + _setter("surround_mode", surround_mode) @property @pulumi.getter(name="attenuationControl") @@ -1724,12 +2245,31 @@ def __init__(__self__, *, :param pulumi.Input[str] coding_mode: Mono, Stereo, or 5.1 channel layout. :param pulumi.Input[float] sample_rate: Sample rate in Hz. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsMp2SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + coding_mode=coding_mode, + sample_rate=sample_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[pulumi.Input[float]] = None, + coding_mode: Optional[pulumi.Input[str]] = None, + sample_rate: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if sample_rate is None and 'sampleRate' in kwargs: + sample_rate = kwargs['sampleRate'] + if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if sample_rate is not None: - pulumi.set(__self__, "sample_rate", sample_rate) + _setter("sample_rate", sample_rate) @property @pulumi.getter @@ -1772,6 +2312,13 @@ def sample_rate(self, value: Optional[pulumi.Input[float]]): class ChannelEncoderSettingsAudioDescriptionCodecSettingsPassThroughSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -1784,12 +2331,33 @@ def __init__(__self__, *, :param pulumi.Input[str] coding_mode: Mono, Stereo, or 5.1 channel layout. :param pulumi.Input[float] sample_rate: Sample rate in Hz. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsWavSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bit_depth=bit_depth, + coding_mode=coding_mode, + sample_rate=sample_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bit_depth: Optional[pulumi.Input[float]] = None, + coding_mode: Optional[pulumi.Input[str]] = None, + sample_rate: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bit_depth is None and 'bitDepth' in kwargs: + bit_depth = kwargs['bitDepth'] + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if sample_rate is None and 'sampleRate' in kwargs: + sample_rate = kwargs['sampleRate'] + if bit_depth is not None: - pulumi.set(__self__, "bit_depth", bit_depth) + _setter("bit_depth", bit_depth) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if sample_rate is not None: - pulumi.set(__self__, "sample_rate", sample_rate) + _setter("sample_rate", sample_rate) @property @pulumi.getter(name="bitDepth") @@ -1831,11 +2399,34 @@ def __init__(__self__, *, channel_mappings: pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingArgs']]], channels_in: Optional[pulumi.Input[int]] = None, channels_out: Optional[pulumi.Input[int]] = None): - pulumi.set(__self__, "channel_mappings", channel_mappings) + ChannelEncoderSettingsAudioDescriptionRemixSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_mappings=channel_mappings, + channels_in=channels_in, + channels_out=channels_out, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingArgs']]]] = None, + channels_in: Optional[pulumi.Input[int]] = None, + channels_out: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_mappings is None and 'channelMappings' in kwargs: + channel_mappings = kwargs['channelMappings'] + if channel_mappings is None: + raise TypeError("Missing 'channel_mappings' argument") + if channels_in is None and 'channelsIn' in kwargs: + channels_in = kwargs['channelsIn'] + if channels_out is None and 'channelsOut' in kwargs: + channels_out = kwargs['channelsOut'] + + _setter("channel_mappings", channel_mappings) if channels_in is not None: - pulumi.set(__self__, "channels_in", channels_in) + _setter("channels_in", channels_in) if channels_out is not None: - pulumi.set(__self__, "channels_out", channels_out) + _setter("channels_out", channels_out) @property @pulumi.getter(name="channelMappings") @@ -1870,8 +2461,29 @@ class ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingArgs: def __init__(__self__, *, input_channel_levels: pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingInputChannelLevelArgs']]], output_channel: pulumi.Input[int]): - pulumi.set(__self__, "input_channel_levels", input_channel_levels) - pulumi.set(__self__, "output_channel", output_channel) + ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_channel_levels=input_channel_levels, + output_channel=output_channel, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_channel_levels: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingInputChannelLevelArgs']]]] = None, + output_channel: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_channel_levels is None and 'inputChannelLevels' in kwargs: + input_channel_levels = kwargs['inputChannelLevels'] + if input_channel_levels is None: + raise TypeError("Missing 'input_channel_levels' argument") + if output_channel is None and 'outputChannel' in kwargs: + output_channel = kwargs['outputChannel'] + if output_channel is None: + raise TypeError("Missing 'output_channel' argument") + + _setter("input_channel_levels", input_channel_levels) + _setter("output_channel", output_channel) @property @pulumi.getter(name="inputChannelLevels") @@ -1897,8 +2509,27 @@ class ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingInputChan def __init__(__self__, *, gain: pulumi.Input[int], input_channel: pulumi.Input[int]): - pulumi.set(__self__, "gain", gain) - pulumi.set(__self__, "input_channel", input_channel) + ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingInputChannelLevelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gain=gain, + input_channel=input_channel, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gain: Optional[pulumi.Input[int]] = None, + input_channel: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gain is None: + raise TypeError("Missing 'gain' argument") + if input_channel is None and 'inputChannel' in kwargs: + input_channel = kwargs['inputChannel'] + if input_channel is None: + raise TypeError("Missing 'input_channel' argument") + + _setter("gain", gain) + _setter("input_channel", input_channel) @property @pulumi.getter @@ -1928,10 +2559,25 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsAvailBlankingAvailBlankingImageArgs'] avail_blanking_image: Blanking image to be used. See Avail Blanking Image for more details. :param pulumi.Input[str] state: When set to enabled, causes video, audio and captions to be blanked when insertion metadata is added. """ + ChannelEncoderSettingsAvailBlankingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + avail_blanking_image=avail_blanking_image, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + avail_blanking_image: Optional[pulumi.Input['ChannelEncoderSettingsAvailBlankingAvailBlankingImageArgs']] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if avail_blanking_image is None and 'availBlankingImage' in kwargs: + avail_blanking_image = kwargs['availBlankingImage'] + if avail_blanking_image is not None: - pulumi.set(__self__, "avail_blanking_image", avail_blanking_image) + _setter("avail_blanking_image", avail_blanking_image) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="availBlankingImage") @@ -1969,11 +2615,30 @@ def __init__(__self__, *, :param pulumi.Input[str] password_param: Key used to extract the password from EC2 Parameter store. :param pulumi.Input[str] username: . Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsAvailBlankingAvailBlankingImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[pulumi.Input[str]] = None, + password_param: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -2029,16 +2694,49 @@ def __init__(__self__, *, :param pulumi.Input[str] language_code: ISO 639-2 three-digit code. :param pulumi.Input[str] language_description: Human readable information to indicate captions available for players (eg. English, or Spanish). """ - pulumi.set(__self__, "caption_selector_name", caption_selector_name) - pulumi.set(__self__, "name", name) + ChannelEncoderSettingsCaptionDescriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + caption_selector_name=caption_selector_name, + name=name, + accessibility=accessibility, + destination_settings=destination_settings, + language_code=language_code, + language_description=language_description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caption_selector_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + accessibility: Optional[pulumi.Input[str]] = None, + destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs']] = None, + language_code: Optional[pulumi.Input[str]] = None, + language_description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caption_selector_name is None and 'captionSelectorName' in kwargs: + caption_selector_name = kwargs['captionSelectorName'] + if caption_selector_name is None: + raise TypeError("Missing 'caption_selector_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if destination_settings is None and 'destinationSettings' in kwargs: + destination_settings = kwargs['destinationSettings'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_description is None and 'languageDescription' in kwargs: + language_description = kwargs['languageDescription'] + + _setter("caption_selector_name", caption_selector_name) + _setter("name", name) if accessibility is not None: - pulumi.set(__self__, "accessibility", accessibility) + _setter("accessibility", accessibility) if destination_settings is not None: - pulumi.set(__self__, "destination_settings", destination_settings) + _setter("destination_settings", destination_settings) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if language_description is not None: - pulumi.set(__self__, "language_description", language_description) + _setter("language_description", language_description) @property @pulumi.getter(name="captionSelectorName") @@ -2144,32 +2842,93 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTtmlDestinationSettingsArgs'] ttml_destination_settings: TTML Destination Settings. See TTML Destination Settings for more details. :param pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsWebvttDestinationSettingsArgs'] webvtt_destination_settings: WebVTT Destination Settings. See WebVTT Destination Settings for more details. """ + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arib_destination_settings=arib_destination_settings, + burn_in_destination_settings=burn_in_destination_settings, + dvb_sub_destination_settings=dvb_sub_destination_settings, + ebu_tt_d_destination_settings=ebu_tt_d_destination_settings, + embedded_destination_settings=embedded_destination_settings, + embedded_plus_scte20_destination_settings=embedded_plus_scte20_destination_settings, + rtmp_caption_info_destination_settings=rtmp_caption_info_destination_settings, + scte20_plus_embedded_destination_settings=scte20_plus_embedded_destination_settings, + scte27_destination_settings=scte27_destination_settings, + smpte_tt_destination_settings=smpte_tt_destination_settings, + teletext_destination_settings=teletext_destination_settings, + ttml_destination_settings=ttml_destination_settings, + webvtt_destination_settings=webvtt_destination_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arib_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsArgs']] = None, + burn_in_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettingsArgs']] = None, + dvb_sub_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettingsArgs']] = None, + ebu_tt_d_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEbuTtDDestinationSettingsArgs']] = None, + embedded_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEmbeddedDestinationSettingsArgs']] = None, + embedded_plus_scte20_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEmbeddedPlusScte20DestinationSettingsArgs']] = None, + rtmp_caption_info_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsRtmpCaptionInfoDestinationSettingsArgs']] = None, + scte20_plus_embedded_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsScte20PlusEmbeddedDestinationSettingsArgs']] = None, + scte27_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsScte27DestinationSettingsArgs']] = None, + smpte_tt_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsSmpteTtDestinationSettingsArgs']] = None, + teletext_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTeletextDestinationSettingsArgs']] = None, + ttml_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTtmlDestinationSettingsArgs']] = None, + webvtt_destination_settings: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsWebvttDestinationSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arib_destination_settings is None and 'aribDestinationSettings' in kwargs: + arib_destination_settings = kwargs['aribDestinationSettings'] + if burn_in_destination_settings is None and 'burnInDestinationSettings' in kwargs: + burn_in_destination_settings = kwargs['burnInDestinationSettings'] + if dvb_sub_destination_settings is None and 'dvbSubDestinationSettings' in kwargs: + dvb_sub_destination_settings = kwargs['dvbSubDestinationSettings'] + if ebu_tt_d_destination_settings is None and 'ebuTtDDestinationSettings' in kwargs: + ebu_tt_d_destination_settings = kwargs['ebuTtDDestinationSettings'] + if embedded_destination_settings is None and 'embeddedDestinationSettings' in kwargs: + embedded_destination_settings = kwargs['embeddedDestinationSettings'] + if embedded_plus_scte20_destination_settings is None and 'embeddedPlusScte20DestinationSettings' in kwargs: + embedded_plus_scte20_destination_settings = kwargs['embeddedPlusScte20DestinationSettings'] + if rtmp_caption_info_destination_settings is None and 'rtmpCaptionInfoDestinationSettings' in kwargs: + rtmp_caption_info_destination_settings = kwargs['rtmpCaptionInfoDestinationSettings'] + if scte20_plus_embedded_destination_settings is None and 'scte20PlusEmbeddedDestinationSettings' in kwargs: + scte20_plus_embedded_destination_settings = kwargs['scte20PlusEmbeddedDestinationSettings'] + if scte27_destination_settings is None and 'scte27DestinationSettings' in kwargs: + scte27_destination_settings = kwargs['scte27DestinationSettings'] + if smpte_tt_destination_settings is None and 'smpteTtDestinationSettings' in kwargs: + smpte_tt_destination_settings = kwargs['smpteTtDestinationSettings'] + if teletext_destination_settings is None and 'teletextDestinationSettings' in kwargs: + teletext_destination_settings = kwargs['teletextDestinationSettings'] + if ttml_destination_settings is None and 'ttmlDestinationSettings' in kwargs: + ttml_destination_settings = kwargs['ttmlDestinationSettings'] + if webvtt_destination_settings is None and 'webvttDestinationSettings' in kwargs: + webvtt_destination_settings = kwargs['webvttDestinationSettings'] + if arib_destination_settings is not None: - pulumi.set(__self__, "arib_destination_settings", arib_destination_settings) + _setter("arib_destination_settings", arib_destination_settings) if burn_in_destination_settings is not None: - pulumi.set(__self__, "burn_in_destination_settings", burn_in_destination_settings) + _setter("burn_in_destination_settings", burn_in_destination_settings) if dvb_sub_destination_settings is not None: - pulumi.set(__self__, "dvb_sub_destination_settings", dvb_sub_destination_settings) + _setter("dvb_sub_destination_settings", dvb_sub_destination_settings) if ebu_tt_d_destination_settings is not None: - pulumi.set(__self__, "ebu_tt_d_destination_settings", ebu_tt_d_destination_settings) + _setter("ebu_tt_d_destination_settings", ebu_tt_d_destination_settings) if embedded_destination_settings is not None: - pulumi.set(__self__, "embedded_destination_settings", embedded_destination_settings) + _setter("embedded_destination_settings", embedded_destination_settings) if embedded_plus_scte20_destination_settings is not None: - pulumi.set(__self__, "embedded_plus_scte20_destination_settings", embedded_plus_scte20_destination_settings) + _setter("embedded_plus_scte20_destination_settings", embedded_plus_scte20_destination_settings) if rtmp_caption_info_destination_settings is not None: - pulumi.set(__self__, "rtmp_caption_info_destination_settings", rtmp_caption_info_destination_settings) + _setter("rtmp_caption_info_destination_settings", rtmp_caption_info_destination_settings) if scte20_plus_embedded_destination_settings is not None: - pulumi.set(__self__, "scte20_plus_embedded_destination_settings", scte20_plus_embedded_destination_settings) + _setter("scte20_plus_embedded_destination_settings", scte20_plus_embedded_destination_settings) if scte27_destination_settings is not None: - pulumi.set(__self__, "scte27_destination_settings", scte27_destination_settings) + _setter("scte27_destination_settings", scte27_destination_settings) if smpte_tt_destination_settings is not None: - pulumi.set(__self__, "smpte_tt_destination_settings", smpte_tt_destination_settings) + _setter("smpte_tt_destination_settings", smpte_tt_destination_settings) if teletext_destination_settings is not None: - pulumi.set(__self__, "teletext_destination_settings", teletext_destination_settings) + _setter("teletext_destination_settings", teletext_destination_settings) if ttml_destination_settings is not None: - pulumi.set(__self__, "ttml_destination_settings", ttml_destination_settings) + _setter("ttml_destination_settings", ttml_destination_settings) if webvtt_destination_settings is not None: - pulumi.set(__self__, "webvtt_destination_settings", webvtt_destination_settings) + _setter("webvtt_destination_settings", webvtt_destination_settings) @property @pulumi.getter(name="aribDestinationSettings") @@ -2332,6 +3091,13 @@ def webvtt_destination_settings(self, value: Optional[pulumi.Input['ChannelEncod class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2373,38 +3139,115 @@ def __init__(__self__, *, :param pulumi.Input[int] x_position: Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings must match. :param pulumi.Input[int] y_position: Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit yPosition is provided, the caption will be positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match. """ - pulumi.set(__self__, "outline_color", outline_color) - pulumi.set(__self__, "teletext_grid_control", teletext_grid_control) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + outline_color=outline_color, + teletext_grid_control=teletext_grid_control, + alignment=alignment, + background_color=background_color, + background_opacity=background_opacity, + font=font, + font_color=font_color, + font_opacity=font_opacity, + font_resolution=font_resolution, + font_size=font_size, + outline_size=outline_size, + shadow_color=shadow_color, + shadow_opacity=shadow_opacity, + shadow_x_offset=shadow_x_offset, + shadow_y_offset=shadow_y_offset, + x_position=x_position, + y_position=y_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + outline_color: Optional[pulumi.Input[str]] = None, + teletext_grid_control: Optional[pulumi.Input[str]] = None, + alignment: Optional[pulumi.Input[str]] = None, + background_color: Optional[pulumi.Input[str]] = None, + background_opacity: Optional[pulumi.Input[int]] = None, + font: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettingsFontArgs']] = None, + font_color: Optional[pulumi.Input[str]] = None, + font_opacity: Optional[pulumi.Input[int]] = None, + font_resolution: Optional[pulumi.Input[int]] = None, + font_size: Optional[pulumi.Input[str]] = None, + outline_size: Optional[pulumi.Input[int]] = None, + shadow_color: Optional[pulumi.Input[str]] = None, + shadow_opacity: Optional[pulumi.Input[int]] = None, + shadow_x_offset: Optional[pulumi.Input[int]] = None, + shadow_y_offset: Optional[pulumi.Input[int]] = None, + x_position: Optional[pulumi.Input[int]] = None, + y_position: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if outline_color is None and 'outlineColor' in kwargs: + outline_color = kwargs['outlineColor'] + if outline_color is None: + raise TypeError("Missing 'outline_color' argument") + if teletext_grid_control is None and 'teletextGridControl' in kwargs: + teletext_grid_control = kwargs['teletextGridControl'] + if teletext_grid_control is None: + raise TypeError("Missing 'teletext_grid_control' argument") + if background_color is None and 'backgroundColor' in kwargs: + background_color = kwargs['backgroundColor'] + if background_opacity is None and 'backgroundOpacity' in kwargs: + background_opacity = kwargs['backgroundOpacity'] + if font_color is None and 'fontColor' in kwargs: + font_color = kwargs['fontColor'] + if font_opacity is None and 'fontOpacity' in kwargs: + font_opacity = kwargs['fontOpacity'] + if font_resolution is None and 'fontResolution' in kwargs: + font_resolution = kwargs['fontResolution'] + if font_size is None and 'fontSize' in kwargs: + font_size = kwargs['fontSize'] + if outline_size is None and 'outlineSize' in kwargs: + outline_size = kwargs['outlineSize'] + if shadow_color is None and 'shadowColor' in kwargs: + shadow_color = kwargs['shadowColor'] + if shadow_opacity is None and 'shadowOpacity' in kwargs: + shadow_opacity = kwargs['shadowOpacity'] + if shadow_x_offset is None and 'shadowXOffset' in kwargs: + shadow_x_offset = kwargs['shadowXOffset'] + if shadow_y_offset is None and 'shadowYOffset' in kwargs: + shadow_y_offset = kwargs['shadowYOffset'] + if x_position is None and 'xPosition' in kwargs: + x_position = kwargs['xPosition'] + if y_position is None and 'yPosition' in kwargs: + y_position = kwargs['yPosition'] + + _setter("outline_color", outline_color) + _setter("teletext_grid_control", teletext_grid_control) if alignment is not None: - pulumi.set(__self__, "alignment", alignment) + _setter("alignment", alignment) if background_color is not None: - pulumi.set(__self__, "background_color", background_color) + _setter("background_color", background_color) if background_opacity is not None: - pulumi.set(__self__, "background_opacity", background_opacity) + _setter("background_opacity", background_opacity) if font is not None: - pulumi.set(__self__, "font", font) + _setter("font", font) if font_color is not None: - pulumi.set(__self__, "font_color", font_color) + _setter("font_color", font_color) if font_opacity is not None: - pulumi.set(__self__, "font_opacity", font_opacity) + _setter("font_opacity", font_opacity) if font_resolution is not None: - pulumi.set(__self__, "font_resolution", font_resolution) + _setter("font_resolution", font_resolution) if font_size is not None: - pulumi.set(__self__, "font_size", font_size) + _setter("font_size", font_size) if outline_size is not None: - pulumi.set(__self__, "outline_size", outline_size) + _setter("outline_size", outline_size) if shadow_color is not None: - pulumi.set(__self__, "shadow_color", shadow_color) + _setter("shadow_color", shadow_color) if shadow_opacity is not None: - pulumi.set(__self__, "shadow_opacity", shadow_opacity) + _setter("shadow_opacity", shadow_opacity) if shadow_x_offset is not None: - pulumi.set(__self__, "shadow_x_offset", shadow_x_offset) + _setter("shadow_x_offset", shadow_x_offset) if shadow_y_offset is not None: - pulumi.set(__self__, "shadow_y_offset", shadow_y_offset) + _setter("shadow_y_offset", shadow_y_offset) if x_position is not None: - pulumi.set(__self__, "x_position", x_position) + _setter("x_position", x_position) if y_position is not None: - pulumi.set(__self__, "y_position", y_position) + _setter("y_position", y_position) @property @pulumi.getter(name="outlineColor") @@ -2622,11 +3465,30 @@ def __init__(__self__, *, :param pulumi.Input[str] password_param: Key used to extract the password from EC2 Parameter store. :param pulumi.Input[str] username: Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettingsFontArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[pulumi.Input[str]] = None, + password_param: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -2704,40 +3566,113 @@ def __init__(__self__, *, :param pulumi.Input[int] x_position: Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. :param pulumi.Input[int] y_position: Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit yPosition is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. """ + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alignment=alignment, + background_color=background_color, + background_opacity=background_opacity, + font=font, + font_color=font_color, + font_opacity=font_opacity, + font_resolution=font_resolution, + font_size=font_size, + outline_color=outline_color, + outline_size=outline_size, + shadow_color=shadow_color, + shadow_opacity=shadow_opacity, + shadow_x_offset=shadow_x_offset, + shadow_y_offset=shadow_y_offset, + teletext_grid_control=teletext_grid_control, + x_position=x_position, + y_position=y_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alignment: Optional[pulumi.Input[str]] = None, + background_color: Optional[pulumi.Input[str]] = None, + background_opacity: Optional[pulumi.Input[int]] = None, + font: Optional[pulumi.Input['ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettingsFontArgs']] = None, + font_color: Optional[pulumi.Input[str]] = None, + font_opacity: Optional[pulumi.Input[int]] = None, + font_resolution: Optional[pulumi.Input[int]] = None, + font_size: Optional[pulumi.Input[str]] = None, + outline_color: Optional[pulumi.Input[str]] = None, + outline_size: Optional[pulumi.Input[int]] = None, + shadow_color: Optional[pulumi.Input[str]] = None, + shadow_opacity: Optional[pulumi.Input[int]] = None, + shadow_x_offset: Optional[pulumi.Input[int]] = None, + shadow_y_offset: Optional[pulumi.Input[int]] = None, + teletext_grid_control: Optional[pulumi.Input[str]] = None, + x_position: Optional[pulumi.Input[int]] = None, + y_position: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if background_color is None and 'backgroundColor' in kwargs: + background_color = kwargs['backgroundColor'] + if background_opacity is None and 'backgroundOpacity' in kwargs: + background_opacity = kwargs['backgroundOpacity'] + if font_color is None and 'fontColor' in kwargs: + font_color = kwargs['fontColor'] + if font_opacity is None and 'fontOpacity' in kwargs: + font_opacity = kwargs['fontOpacity'] + if font_resolution is None and 'fontResolution' in kwargs: + font_resolution = kwargs['fontResolution'] + if font_size is None and 'fontSize' in kwargs: + font_size = kwargs['fontSize'] + if outline_color is None and 'outlineColor' in kwargs: + outline_color = kwargs['outlineColor'] + if outline_size is None and 'outlineSize' in kwargs: + outline_size = kwargs['outlineSize'] + if shadow_color is None and 'shadowColor' in kwargs: + shadow_color = kwargs['shadowColor'] + if shadow_opacity is None and 'shadowOpacity' in kwargs: + shadow_opacity = kwargs['shadowOpacity'] + if shadow_x_offset is None and 'shadowXOffset' in kwargs: + shadow_x_offset = kwargs['shadowXOffset'] + if shadow_y_offset is None and 'shadowYOffset' in kwargs: + shadow_y_offset = kwargs['shadowYOffset'] + if teletext_grid_control is None and 'teletextGridControl' in kwargs: + teletext_grid_control = kwargs['teletextGridControl'] + if x_position is None and 'xPosition' in kwargs: + x_position = kwargs['xPosition'] + if y_position is None and 'yPosition' in kwargs: + y_position = kwargs['yPosition'] + if alignment is not None: - pulumi.set(__self__, "alignment", alignment) + _setter("alignment", alignment) if background_color is not None: - pulumi.set(__self__, "background_color", background_color) + _setter("background_color", background_color) if background_opacity is not None: - pulumi.set(__self__, "background_opacity", background_opacity) + _setter("background_opacity", background_opacity) if font is not None: - pulumi.set(__self__, "font", font) + _setter("font", font) if font_color is not None: - pulumi.set(__self__, "font_color", font_color) + _setter("font_color", font_color) if font_opacity is not None: - pulumi.set(__self__, "font_opacity", font_opacity) + _setter("font_opacity", font_opacity) if font_resolution is not None: - pulumi.set(__self__, "font_resolution", font_resolution) + _setter("font_resolution", font_resolution) if font_size is not None: - pulumi.set(__self__, "font_size", font_size) + _setter("font_size", font_size) if outline_color is not None: - pulumi.set(__self__, "outline_color", outline_color) + _setter("outline_color", outline_color) if outline_size is not None: - pulumi.set(__self__, "outline_size", outline_size) + _setter("outline_size", outline_size) if shadow_color is not None: - pulumi.set(__self__, "shadow_color", shadow_color) + _setter("shadow_color", shadow_color) if shadow_opacity is not None: - pulumi.set(__self__, "shadow_opacity", shadow_opacity) + _setter("shadow_opacity", shadow_opacity) if shadow_x_offset is not None: - pulumi.set(__self__, "shadow_x_offset", shadow_x_offset) + _setter("shadow_x_offset", shadow_x_offset) if shadow_y_offset is not None: - pulumi.set(__self__, "shadow_y_offset", shadow_y_offset) + _setter("shadow_y_offset", shadow_y_offset) if teletext_grid_control is not None: - pulumi.set(__self__, "teletext_grid_control", teletext_grid_control) + _setter("teletext_grid_control", teletext_grid_control) if x_position is not None: - pulumi.set(__self__, "x_position", x_position) + _setter("x_position", x_position) if y_position is not None: - pulumi.set(__self__, "y_position", y_position) + _setter("y_position", y_position) @property @pulumi.getter @@ -2955,11 +3890,30 @@ def __init__(__self__, *, :param pulumi.Input[str] password_param: Key used to extract the password from EC2 Parameter store. :param pulumi.Input[str] username: Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettingsFontArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[pulumi.Input[str]] = None, + password_param: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -3011,14 +3965,39 @@ def __init__(__self__, *, :param pulumi.Input[str] font_family: Specifies the font family to include in the font data attached to the EBU-TT captions. Valid only if styleControl is set to include. If you leave this field empty, the font family is set to “monospaced”. (If styleControl is set to exclude, the font family is always set to “monospaced”.) You specify only the font family. All other style information (color, bold, position and so on) is copied from the input captions. The size is always set to 100% to allow the downstream player to choose the size. - Enter a list of font families, as a comma-separated list of font names, in order of preference. The name can be a font family (such as “Arial”), or a generic font family (such as “serif”), or “default” (to let the downstream player choose the font). - Leave blank to set the family to “monospace”. :param pulumi.Input[str] style_control: Specifies the style information (font color, font position, and so on) to include in the font data that is attached to the EBU-TT captions. - include: Take the style information (font color, font position, and so on) from the source captions and include that information in the font data attached to the EBU-TT captions. This option is valid only if the source captions are Embedded or Teletext. - exclude: In the font data attached to the EBU-TT captions, set the font family to “monospaced”. Do not include any other style information. """ + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEbuTtDDestinationSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + copyright_holder=copyright_holder, + fill_line_gap=fill_line_gap, + font_family=font_family, + style_control=style_control, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + copyright_holder: Optional[pulumi.Input[str]] = None, + fill_line_gap: Optional[pulumi.Input[str]] = None, + font_family: Optional[pulumi.Input[str]] = None, + style_control: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copyright_holder is None and 'copyrightHolder' in kwargs: + copyright_holder = kwargs['copyrightHolder'] + if fill_line_gap is None and 'fillLineGap' in kwargs: + fill_line_gap = kwargs['fillLineGap'] + if font_family is None and 'fontFamily' in kwargs: + font_family = kwargs['fontFamily'] + if style_control is None and 'styleControl' in kwargs: + style_control = kwargs['styleControl'] + if copyright_holder is not None: - pulumi.set(__self__, "copyright_holder", copyright_holder) + _setter("copyright_holder", copyright_holder) if fill_line_gap is not None: - pulumi.set(__self__, "fill_line_gap", fill_line_gap) + _setter("fill_line_gap", fill_line_gap) if font_family is not None: - pulumi.set(__self__, "font_family", font_family) + _setter("font_family", font_family) if style_control is not None: - pulumi.set(__self__, "style_control", style_control) + _setter("style_control", style_control) @property @pulumi.getter(name="copyrightHolder") @@ -3073,42 +4052,91 @@ def style_control(self, value: Optional[pulumi.Input[str]]): class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEmbeddedDestinationSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEmbeddedPlusScte20DestinationSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsRtmpCaptionInfoDestinationSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsScte20PlusEmbeddedDestinationSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsScte27DestinationSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsSmpteTtDestinationSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTeletextDestinationSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -3118,7 +4146,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] style_control: This field is not currently supported and will not affect the output styling. Leave the default value. """ - pulumi.set(__self__, "style_control", style_control) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTtmlDestinationSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + style_control=style_control, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + style_control: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if style_control is None and 'styleControl' in kwargs: + style_control = kwargs['styleControl'] + if style_control is None: + raise TypeError("Missing 'style_control' argument") + + _setter("style_control", style_control) @property @pulumi.getter(name="styleControl") @@ -3140,7 +4183,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] style_control: Controls whether the color and position of the source captions is passed through to the WebVTT output captions. PASSTHROUGH - Valid only if the source captions are EMBEDDED or TELETEXT. NO\\_STYLE\\_DATA - Don’t pass through the style. The output captions will not contain any font styling information. """ - pulumi.set(__self__, "style_control", style_control) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsWebvttDestinationSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + style_control=style_control, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + style_control: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if style_control is None and 'styleControl' in kwargs: + style_control = kwargs['styleControl'] + if style_control is None: + raise TypeError("Missing 'style_control' argument") + + _setter("style_control", style_control) @property @pulumi.getter(name="styleControl") @@ -3172,18 +4230,51 @@ def __init__(__self__, *, :param pulumi.Input[str] output_timing_source: Indicates whether the rate of frames emitted by the Live encoder should be paced by its system clock (which optionally may be locked to another source via NTP) or should be locked to the clock of the source that is providing the input stream. :param pulumi.Input[str] support_low_framerate_inputs: Adjusts video input buffer for streams with very low video framerates. This is commonly set to enabled for music channels with less than one video frame per second. """ + ChannelEncoderSettingsGlobalConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + initial_audio_gain=initial_audio_gain, + input_end_action=input_end_action, + input_loss_behavior=input_loss_behavior, + output_locking_mode=output_locking_mode, + output_timing_source=output_timing_source, + support_low_framerate_inputs=support_low_framerate_inputs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + initial_audio_gain: Optional[pulumi.Input[int]] = None, + input_end_action: Optional[pulumi.Input[str]] = None, + input_loss_behavior: Optional[pulumi.Input['ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorArgs']] = None, + output_locking_mode: Optional[pulumi.Input[str]] = None, + output_timing_source: Optional[pulumi.Input[str]] = None, + support_low_framerate_inputs: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if initial_audio_gain is None and 'initialAudioGain' in kwargs: + initial_audio_gain = kwargs['initialAudioGain'] + if input_end_action is None and 'inputEndAction' in kwargs: + input_end_action = kwargs['inputEndAction'] + if input_loss_behavior is None and 'inputLossBehavior' in kwargs: + input_loss_behavior = kwargs['inputLossBehavior'] + if output_locking_mode is None and 'outputLockingMode' in kwargs: + output_locking_mode = kwargs['outputLockingMode'] + if output_timing_source is None and 'outputTimingSource' in kwargs: + output_timing_source = kwargs['outputTimingSource'] + if support_low_framerate_inputs is None and 'supportLowFramerateInputs' in kwargs: + support_low_framerate_inputs = kwargs['supportLowFramerateInputs'] + if initial_audio_gain is not None: - pulumi.set(__self__, "initial_audio_gain", initial_audio_gain) + _setter("initial_audio_gain", initial_audio_gain) if input_end_action is not None: - pulumi.set(__self__, "input_end_action", input_end_action) + _setter("input_end_action", input_end_action) if input_loss_behavior is not None: - pulumi.set(__self__, "input_loss_behavior", input_loss_behavior) + _setter("input_loss_behavior", input_loss_behavior) if output_locking_mode is not None: - pulumi.set(__self__, "output_locking_mode", output_locking_mode) + _setter("output_locking_mode", output_locking_mode) if output_timing_source is not None: - pulumi.set(__self__, "output_timing_source", output_timing_source) + _setter("output_timing_source", output_timing_source) if support_low_framerate_inputs is not None: - pulumi.set(__self__, "support_low_framerate_inputs", support_low_framerate_inputs) + _setter("support_low_framerate_inputs", support_low_framerate_inputs) @property @pulumi.getter(name="initialAudioGain") @@ -3266,16 +4357,45 @@ def __init__(__self__, *, input_loss_image_slate: Optional[pulumi.Input['ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs']] = None, input_loss_image_type: Optional[pulumi.Input[str]] = None, repeat_frame_msec: Optional[pulumi.Input[int]] = None): + ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + black_frame_msec=black_frame_msec, + input_loss_image_color=input_loss_image_color, + input_loss_image_slate=input_loss_image_slate, + input_loss_image_type=input_loss_image_type, + repeat_frame_msec=repeat_frame_msec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + black_frame_msec: Optional[pulumi.Input[int]] = None, + input_loss_image_color: Optional[pulumi.Input[str]] = None, + input_loss_image_slate: Optional[pulumi.Input['ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs']] = None, + input_loss_image_type: Optional[pulumi.Input[str]] = None, + repeat_frame_msec: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if black_frame_msec is None and 'blackFrameMsec' in kwargs: + black_frame_msec = kwargs['blackFrameMsec'] + if input_loss_image_color is None and 'inputLossImageColor' in kwargs: + input_loss_image_color = kwargs['inputLossImageColor'] + if input_loss_image_slate is None and 'inputLossImageSlate' in kwargs: + input_loss_image_slate = kwargs['inputLossImageSlate'] + if input_loss_image_type is None and 'inputLossImageType' in kwargs: + input_loss_image_type = kwargs['inputLossImageType'] + if repeat_frame_msec is None and 'repeatFrameMsec' in kwargs: + repeat_frame_msec = kwargs['repeatFrameMsec'] + if black_frame_msec is not None: - pulumi.set(__self__, "black_frame_msec", black_frame_msec) + _setter("black_frame_msec", black_frame_msec) if input_loss_image_color is not None: - pulumi.set(__self__, "input_loss_image_color", input_loss_image_color) + _setter("input_loss_image_color", input_loss_image_color) if input_loss_image_slate is not None: - pulumi.set(__self__, "input_loss_image_slate", input_loss_image_slate) + _setter("input_loss_image_slate", input_loss_image_slate) if input_loss_image_type is not None: - pulumi.set(__self__, "input_loss_image_type", input_loss_image_type) + _setter("input_loss_image_type", input_loss_image_type) if repeat_frame_msec is not None: - pulumi.set(__self__, "repeat_frame_msec", repeat_frame_msec) + _setter("repeat_frame_msec", repeat_frame_msec) @property @pulumi.getter(name="blackFrameMsec") @@ -3332,13 +4452,32 @@ def __init__(__self__, *, """ :param pulumi.Input[str] uri: Path to a file accessible to the live stream. :param pulumi.Input[str] password_param: Key used to extract the password from EC2 Parameter store. - :param pulumi.Input[str] username: Username for destination. + :param pulumi.Input[str] username: . Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[pulumi.Input[str]] = None, + password_param: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -3368,7 +4507,7 @@ def password_param(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def username(self) -> Optional[pulumi.Input[str]]: """ - Username for destination. + . Username to be used. """ return pulumi.get(self, "username") @@ -3386,9 +4525,28 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsArgs'] motion_graphics_settings: Motion Graphics Settings. See Motion Graphics Settings for more details. :param pulumi.Input[str] motion_graphics_insertion: Motion Graphics Insertion. """ - pulumi.set(__self__, "motion_graphics_settings", motion_graphics_settings) + ChannelEncoderSettingsMotionGraphicsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + motion_graphics_settings=motion_graphics_settings, + motion_graphics_insertion=motion_graphics_insertion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + motion_graphics_settings: Optional[pulumi.Input['ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsArgs']] = None, + motion_graphics_insertion: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if motion_graphics_settings is None and 'motionGraphicsSettings' in kwargs: + motion_graphics_settings = kwargs['motionGraphicsSettings'] + if motion_graphics_settings is None: + raise TypeError("Missing 'motion_graphics_settings' argument") + if motion_graphics_insertion is None and 'motionGraphicsInsertion' in kwargs: + motion_graphics_insertion = kwargs['motionGraphicsInsertion'] + + _setter("motion_graphics_settings", motion_graphics_settings) if motion_graphics_insertion is not None: - pulumi.set(__self__, "motion_graphics_insertion", motion_graphics_insertion) + _setter("motion_graphics_insertion", motion_graphics_insertion) @property @pulumi.getter(name="motionGraphicsSettings") @@ -3422,8 +4580,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsHtmlMotionGraphicsSettingsArgs'] html_motion_graphics_settings: Html Motion Graphics Settings. """ + ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + html_motion_graphics_settings=html_motion_graphics_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + html_motion_graphics_settings: Optional[pulumi.Input['ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsHtmlMotionGraphicsSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if html_motion_graphics_settings is None and 'htmlMotionGraphicsSettings' in kwargs: + html_motion_graphics_settings = kwargs['htmlMotionGraphicsSettings'] + if html_motion_graphics_settings is not None: - pulumi.set(__self__, "html_motion_graphics_settings", html_motion_graphics_settings) + _setter("html_motion_graphics_settings", html_motion_graphics_settings) @property @pulumi.getter(name="htmlMotionGraphicsSettings") @@ -3442,6 +4613,13 @@ def html_motion_graphics_settings(self, value: Optional[pulumi.Input['ChannelEnc class ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsHtmlMotionGraphicsSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -3453,10 +4631,27 @@ def __init__(__self__, *, :param pulumi.Input[str] distributor_id: Enter the Distributor ID assigned to your organization by Nielsen. :param pulumi.Input[str] nielsen_pcm_to_id3_tagging: Enables Nielsen PCM to ID3 tagging. """ + ChannelEncoderSettingsNielsenConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + distributor_id=distributor_id, + nielsen_pcm_to_id3_tagging=nielsen_pcm_to_id3_tagging, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + distributor_id: Optional[pulumi.Input[str]] = None, + nielsen_pcm_to_id3_tagging: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if distributor_id is None and 'distributorId' in kwargs: + distributor_id = kwargs['distributorId'] + if nielsen_pcm_to_id3_tagging is None and 'nielsenPcmToId3Tagging' in kwargs: + nielsen_pcm_to_id3_tagging = kwargs['nielsenPcmToId3Tagging'] + if distributor_id is not None: - pulumi.set(__self__, "distributor_id", distributor_id) + _setter("distributor_id", distributor_id) if nielsen_pcm_to_id3_tagging is not None: - pulumi.set(__self__, "nielsen_pcm_to_id3_tagging", nielsen_pcm_to_id3_tagging) + _setter("nielsen_pcm_to_id3_tagging", nielsen_pcm_to_id3_tagging) @property @pulumi.getter(name="distributorId") @@ -3494,10 +4689,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputArgs']]] outputs: List of outputs. See Outputs for more details. :param pulumi.Input[str] name: Custom output group name defined by the user. """ - pulumi.set(__self__, "output_group_settings", output_group_settings) - pulumi.set(__self__, "outputs", outputs) + ChannelEncoderSettingsOutputGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_group_settings=output_group_settings, + outputs=outputs, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_group_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsArgs']] = None, + outputs: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_group_settings is None and 'outputGroupSettings' in kwargs: + output_group_settings = kwargs['outputGroupSettings'] + if output_group_settings is None: + raise TypeError("Missing 'output_group_settings' argument") + if outputs is None: + raise TypeError("Missing 'outputs' argument") + + _setter("output_group_settings", output_group_settings) + _setter("outputs", outputs) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="outputGroupSettings") @@ -3551,15 +4767,46 @@ def __init__(__self__, *, :param pulumi.Input[str] output_name: The name used to identify an output. :param pulumi.Input[str] video_description_name: The name of the video description used as video source for the output. """ - pulumi.set(__self__, "output_settings", output_settings) + ChannelEncoderSettingsOutputGroupOutputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_settings=output_settings, + audio_description_names=audio_description_names, + caption_description_names=caption_description_names, + output_name=output_name, + video_description_name=video_description_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArgs']] = None, + audio_description_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + caption_description_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + output_name: Optional[pulumi.Input[str]] = None, + video_description_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_settings is None and 'outputSettings' in kwargs: + output_settings = kwargs['outputSettings'] + if output_settings is None: + raise TypeError("Missing 'output_settings' argument") + if audio_description_names is None and 'audioDescriptionNames' in kwargs: + audio_description_names = kwargs['audioDescriptionNames'] + if caption_description_names is None and 'captionDescriptionNames' in kwargs: + caption_description_names = kwargs['captionDescriptionNames'] + if output_name is None and 'outputName' in kwargs: + output_name = kwargs['outputName'] + if video_description_name is None and 'videoDescriptionName' in kwargs: + video_description_name = kwargs['videoDescriptionName'] + + _setter("output_settings", output_settings) if audio_description_names is not None: - pulumi.set(__self__, "audio_description_names", audio_description_names) + _setter("audio_description_names", audio_description_names) if caption_description_names is not None: - pulumi.set(__self__, "caption_description_names", caption_description_names) + _setter("caption_description_names", caption_description_names) if output_name is not None: - pulumi.set(__self__, "output_name", output_name) + _setter("output_name", output_name) if video_description_name is not None: - pulumi.set(__self__, "video_description_name", video_description_name) + _setter("video_description_name", video_description_name) @property @pulumi.getter(name="outputSettings") @@ -3638,22 +4885,63 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsArgs'] media_package_group_settings: Media package group settings. See Media Package Group Settings for more details. :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsRtmpGroupSettingsArgs'] rtmp_group_settings: RTMP group settings. See RTMP Group Settings for more details. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + archive_group_settings=archive_group_settings, + frame_capture_group_settings=frame_capture_group_settings, + hls_group_settings=hls_group_settings, + media_package_group_settings=media_package_group_settings, + ms_smooth_group_settings=ms_smooth_group_settings, + multiplex_group_settings=multiplex_group_settings, + rtmp_group_settings=rtmp_group_settings, + udp_group_settings=udp_group_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + archive_group_settings: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArgs']]]] = None, + frame_capture_group_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsArgs']] = None, + hls_group_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsArgs']] = None, + media_package_group_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsArgs']] = None, + ms_smooth_group_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsMsSmoothGroupSettingsArgs']] = None, + multiplex_group_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsMultiplexGroupSettingsArgs']] = None, + rtmp_group_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsRtmpGroupSettingsArgs']] = None, + udp_group_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsUdpGroupSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if archive_group_settings is None and 'archiveGroupSettings' in kwargs: + archive_group_settings = kwargs['archiveGroupSettings'] + if frame_capture_group_settings is None and 'frameCaptureGroupSettings' in kwargs: + frame_capture_group_settings = kwargs['frameCaptureGroupSettings'] + if hls_group_settings is None and 'hlsGroupSettings' in kwargs: + hls_group_settings = kwargs['hlsGroupSettings'] + if media_package_group_settings is None and 'mediaPackageGroupSettings' in kwargs: + media_package_group_settings = kwargs['mediaPackageGroupSettings'] + if ms_smooth_group_settings is None and 'msSmoothGroupSettings' in kwargs: + ms_smooth_group_settings = kwargs['msSmoothGroupSettings'] + if multiplex_group_settings is None and 'multiplexGroupSettings' in kwargs: + multiplex_group_settings = kwargs['multiplexGroupSettings'] + if rtmp_group_settings is None and 'rtmpGroupSettings' in kwargs: + rtmp_group_settings = kwargs['rtmpGroupSettings'] + if udp_group_settings is None and 'udpGroupSettings' in kwargs: + udp_group_settings = kwargs['udpGroupSettings'] + if archive_group_settings is not None: - pulumi.set(__self__, "archive_group_settings", archive_group_settings) + _setter("archive_group_settings", archive_group_settings) if frame_capture_group_settings is not None: - pulumi.set(__self__, "frame_capture_group_settings", frame_capture_group_settings) + _setter("frame_capture_group_settings", frame_capture_group_settings) if hls_group_settings is not None: - pulumi.set(__self__, "hls_group_settings", hls_group_settings) + _setter("hls_group_settings", hls_group_settings) if media_package_group_settings is not None: - pulumi.set(__self__, "media_package_group_settings", media_package_group_settings) + _setter("media_package_group_settings", media_package_group_settings) if ms_smooth_group_settings is not None: - pulumi.set(__self__, "ms_smooth_group_settings", ms_smooth_group_settings) + _setter("ms_smooth_group_settings", ms_smooth_group_settings) if multiplex_group_settings is not None: - pulumi.set(__self__, "multiplex_group_settings", multiplex_group_settings) + _setter("multiplex_group_settings", multiplex_group_settings) if rtmp_group_settings is not None: - pulumi.set(__self__, "rtmp_group_settings", rtmp_group_settings) + _setter("rtmp_group_settings", rtmp_group_settings) if udp_group_settings is not None: - pulumi.set(__self__, "udp_group_settings", udp_group_settings) + _setter("udp_group_settings", udp_group_settings) @property @pulumi.getter(name="archiveGroupSettings") @@ -3748,11 +5036,32 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArgs'] archive_cdn_settings: Parameters that control the interactions with the CDN. See Archive CDN Settings for more details. :param pulumi.Input[int] rollover_interval: Number of seconds to write to archive file before closing and starting a new one. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + archive_cdn_settings=archive_cdn_settings, + rollover_interval=rollover_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingDestinationArgs']] = None, + archive_cdn_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArgs']] = None, + rollover_interval: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if archive_cdn_settings is None and 'archiveCdnSettings' in kwargs: + archive_cdn_settings = kwargs['archiveCdnSettings'] + if rollover_interval is None and 'rolloverInterval' in kwargs: + rollover_interval = kwargs['rolloverInterval'] + + _setter("destination", destination) if archive_cdn_settings is not None: - pulumi.set(__self__, "archive_cdn_settings", archive_cdn_settings) + _setter("archive_cdn_settings", archive_cdn_settings) if rollover_interval is not None: - pulumi.set(__self__, "rollover_interval", rollover_interval) + _setter("rollover_interval", rollover_interval) @property @pulumi.getter @@ -3798,8 +5107,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArchiveS3SettingsArgs'] archive_s3_settings: Archive S3 Settings. See Archive S3 Settings for more details. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + archive_s3_settings=archive_s3_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + archive_s3_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArchiveS3SettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if archive_s3_settings is None and 'archiveS3Settings' in kwargs: + archive_s3_settings = kwargs['archiveS3Settings'] + if archive_s3_settings is not None: - pulumi.set(__self__, "archive_s3_settings", archive_s3_settings) + _setter("archive_s3_settings", archive_s3_settings) @property @pulumi.getter(name="archiveS3Settings") @@ -3821,8 +5143,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] canned_acl: Specify the canned ACL to apply to each S3 request. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArchiveS3SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + canned_acl: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="cannedAcl") @@ -3844,7 +5179,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -3867,9 +5217,26 @@ def __init__(__self__, *, """ :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsDestinationArgs'] destination: A director and base filename where archive files should be written. See Destination for more details. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + frame_capture_cdn_settings=frame_capture_cdn_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsDestinationArgs']] = None, + frame_capture_cdn_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if frame_capture_cdn_settings is None and 'frameCaptureCdnSettings' in kwargs: + frame_capture_cdn_settings = kwargs['frameCaptureCdnSettings'] + + _setter("destination", destination) if frame_capture_cdn_settings is not None: - pulumi.set(__self__, "frame_capture_cdn_settings", frame_capture_cdn_settings) + _setter("frame_capture_cdn_settings", frame_capture_cdn_settings) @property @pulumi.getter @@ -3900,7 +5267,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -3919,8 +5301,21 @@ def destination_ref_id(self, value: pulumi.Input[str]): class ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsArgs: def __init__(__self__, *, frame_capture_s3_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3SettingsArgs']] = None): + ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + frame_capture_s3_settings=frame_capture_s3_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frame_capture_s3_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3SettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frame_capture_s3_settings is None and 'frameCaptureS3Settings' in kwargs: + frame_capture_s3_settings = kwargs['frameCaptureS3Settings'] + if frame_capture_s3_settings is not None: - pulumi.set(__self__, "frame_capture_s3_settings", frame_capture_s3_settings) + _setter("frame_capture_s3_settings", frame_capture_s3_settings) @property @pulumi.getter(name="frameCaptureS3Settings") @@ -3939,8 +5334,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] canned_acl: Specify the canned ACL to apply to each S3 request. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + canned_acl: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="cannedAcl") @@ -4006,89 +5414,264 @@ def __init__(__self__, *, :param pulumi.Input[str] input_loss_action: Controls the behavior of the RTMP group if input becomes unavailable. :param pulumi.Input[str] timed_metadata_id3_frame: Indicates ID3 frame that has the timecode. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ad_markers=ad_markers, + base_url_content=base_url_content, + base_url_content1=base_url_content1, + base_url_manifest=base_url_manifest, + base_url_manifest1=base_url_manifest1, + caption_language_mappings=caption_language_mappings, + caption_language_setting=caption_language_setting, + client_cache=client_cache, + codec_specification=codec_specification, + constant_iv=constant_iv, + directory_structure=directory_structure, + discontinuity_tags=discontinuity_tags, + encryption_type=encryption_type, + hls_cdn_settings=hls_cdn_settings, + hls_id3_segment_tagging=hls_id3_segment_tagging, + iframe_only_playlists=iframe_only_playlists, + incomplete_segment_behavior=incomplete_segment_behavior, + index_n_segments=index_n_segments, + input_loss_action=input_loss_action, + iv_in_manifest=iv_in_manifest, + iv_source=iv_source, + keep_segments=keep_segments, + key_format=key_format, + key_format_versions=key_format_versions, + key_provider_settings=key_provider_settings, + manifest_compression=manifest_compression, + manifest_duration_format=manifest_duration_format, + min_segment_length=min_segment_length, + mode=mode, + output_selection=output_selection, + program_date_time=program_date_time, + program_date_time_clock=program_date_time_clock, + program_date_time_period=program_date_time_period, + redundant_manifest=redundant_manifest, + segment_length=segment_length, + segments_per_subdirectory=segments_per_subdirectory, + stream_inf_resolution=stream_inf_resolution, + timed_metadata_id3_frame=timed_metadata_id3_frame, + timed_metadata_id3_period=timed_metadata_id3_period, + timestamp_delta_milliseconds=timestamp_delta_milliseconds, + ts_file_mode=ts_file_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsDestinationArgs']] = None, + ad_markers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + base_url_content: Optional[pulumi.Input[str]] = None, + base_url_content1: Optional[pulumi.Input[str]] = None, + base_url_manifest: Optional[pulumi.Input[str]] = None, + base_url_manifest1: Optional[pulumi.Input[str]] = None, + caption_language_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingArgs']]]] = None, + caption_language_setting: Optional[pulumi.Input[str]] = None, + client_cache: Optional[pulumi.Input[str]] = None, + codec_specification: Optional[pulumi.Input[str]] = None, + constant_iv: Optional[pulumi.Input[str]] = None, + directory_structure: Optional[pulumi.Input[str]] = None, + discontinuity_tags: Optional[pulumi.Input[str]] = None, + encryption_type: Optional[pulumi.Input[str]] = None, + hls_cdn_settings: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingArgs']]]] = None, + hls_id3_segment_tagging: Optional[pulumi.Input[str]] = None, + iframe_only_playlists: Optional[pulumi.Input[str]] = None, + incomplete_segment_behavior: Optional[pulumi.Input[str]] = None, + index_n_segments: Optional[pulumi.Input[int]] = None, + input_loss_action: Optional[pulumi.Input[str]] = None, + iv_in_manifest: Optional[pulumi.Input[str]] = None, + iv_source: Optional[pulumi.Input[str]] = None, + keep_segments: Optional[pulumi.Input[int]] = None, + key_format: Optional[pulumi.Input[str]] = None, + key_format_versions: Optional[pulumi.Input[str]] = None, + key_provider_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsArgs']] = None, + manifest_compression: Optional[pulumi.Input[str]] = None, + manifest_duration_format: Optional[pulumi.Input[str]] = None, + min_segment_length: Optional[pulumi.Input[int]] = None, + mode: Optional[pulumi.Input[str]] = None, + output_selection: Optional[pulumi.Input[str]] = None, + program_date_time: Optional[pulumi.Input[str]] = None, + program_date_time_clock: Optional[pulumi.Input[str]] = None, + program_date_time_period: Optional[pulumi.Input[int]] = None, + redundant_manifest: Optional[pulumi.Input[str]] = None, + segment_length: Optional[pulumi.Input[int]] = None, + segments_per_subdirectory: Optional[pulumi.Input[int]] = None, + stream_inf_resolution: Optional[pulumi.Input[str]] = None, + timed_metadata_id3_frame: Optional[pulumi.Input[str]] = None, + timed_metadata_id3_period: Optional[pulumi.Input[int]] = None, + timestamp_delta_milliseconds: Optional[pulumi.Input[int]] = None, + ts_file_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if ad_markers is None and 'adMarkers' in kwargs: + ad_markers = kwargs['adMarkers'] + if base_url_content is None and 'baseUrlContent' in kwargs: + base_url_content = kwargs['baseUrlContent'] + if base_url_content1 is None and 'baseUrlContent1' in kwargs: + base_url_content1 = kwargs['baseUrlContent1'] + if base_url_manifest is None and 'baseUrlManifest' in kwargs: + base_url_manifest = kwargs['baseUrlManifest'] + if base_url_manifest1 is None and 'baseUrlManifest1' in kwargs: + base_url_manifest1 = kwargs['baseUrlManifest1'] + if caption_language_mappings is None and 'captionLanguageMappings' in kwargs: + caption_language_mappings = kwargs['captionLanguageMappings'] + if caption_language_setting is None and 'captionLanguageSetting' in kwargs: + caption_language_setting = kwargs['captionLanguageSetting'] + if client_cache is None and 'clientCache' in kwargs: + client_cache = kwargs['clientCache'] + if codec_specification is None and 'codecSpecification' in kwargs: + codec_specification = kwargs['codecSpecification'] + if constant_iv is None and 'constantIv' in kwargs: + constant_iv = kwargs['constantIv'] + if directory_structure is None and 'directoryStructure' in kwargs: + directory_structure = kwargs['directoryStructure'] + if discontinuity_tags is None and 'discontinuityTags' in kwargs: + discontinuity_tags = kwargs['discontinuityTags'] + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if hls_cdn_settings is None and 'hlsCdnSettings' in kwargs: + hls_cdn_settings = kwargs['hlsCdnSettings'] + if hls_id3_segment_tagging is None and 'hlsId3SegmentTagging' in kwargs: + hls_id3_segment_tagging = kwargs['hlsId3SegmentTagging'] + if iframe_only_playlists is None and 'iframeOnlyPlaylists' in kwargs: + iframe_only_playlists = kwargs['iframeOnlyPlaylists'] + if incomplete_segment_behavior is None and 'incompleteSegmentBehavior' in kwargs: + incomplete_segment_behavior = kwargs['incompleteSegmentBehavior'] + if index_n_segments is None and 'indexNSegments' in kwargs: + index_n_segments = kwargs['indexNSegments'] + if input_loss_action is None and 'inputLossAction' in kwargs: + input_loss_action = kwargs['inputLossAction'] + if iv_in_manifest is None and 'ivInManifest' in kwargs: + iv_in_manifest = kwargs['ivInManifest'] + if iv_source is None and 'ivSource' in kwargs: + iv_source = kwargs['ivSource'] + if keep_segments is None and 'keepSegments' in kwargs: + keep_segments = kwargs['keepSegments'] + if key_format is None and 'keyFormat' in kwargs: + key_format = kwargs['keyFormat'] + if key_format_versions is None and 'keyFormatVersions' in kwargs: + key_format_versions = kwargs['keyFormatVersions'] + if key_provider_settings is None and 'keyProviderSettings' in kwargs: + key_provider_settings = kwargs['keyProviderSettings'] + if manifest_compression is None and 'manifestCompression' in kwargs: + manifest_compression = kwargs['manifestCompression'] + if manifest_duration_format is None and 'manifestDurationFormat' in kwargs: + manifest_duration_format = kwargs['manifestDurationFormat'] + if min_segment_length is None and 'minSegmentLength' in kwargs: + min_segment_length = kwargs['minSegmentLength'] + if output_selection is None and 'outputSelection' in kwargs: + output_selection = kwargs['outputSelection'] + if program_date_time is None and 'programDateTime' in kwargs: + program_date_time = kwargs['programDateTime'] + if program_date_time_clock is None and 'programDateTimeClock' in kwargs: + program_date_time_clock = kwargs['programDateTimeClock'] + if program_date_time_period is None and 'programDateTimePeriod' in kwargs: + program_date_time_period = kwargs['programDateTimePeriod'] + if redundant_manifest is None and 'redundantManifest' in kwargs: + redundant_manifest = kwargs['redundantManifest'] + if segment_length is None and 'segmentLength' in kwargs: + segment_length = kwargs['segmentLength'] + if segments_per_subdirectory is None and 'segmentsPerSubdirectory' in kwargs: + segments_per_subdirectory = kwargs['segmentsPerSubdirectory'] + if stream_inf_resolution is None and 'streamInfResolution' in kwargs: + stream_inf_resolution = kwargs['streamInfResolution'] + if timed_metadata_id3_frame is None and 'timedMetadataId3Frame' in kwargs: + timed_metadata_id3_frame = kwargs['timedMetadataId3Frame'] + if timed_metadata_id3_period is None and 'timedMetadataId3Period' in kwargs: + timed_metadata_id3_period = kwargs['timedMetadataId3Period'] + if timestamp_delta_milliseconds is None and 'timestampDeltaMilliseconds' in kwargs: + timestamp_delta_milliseconds = kwargs['timestampDeltaMilliseconds'] + if ts_file_mode is None and 'tsFileMode' in kwargs: + ts_file_mode = kwargs['tsFileMode'] + + _setter("destination", destination) if ad_markers is not None: - pulumi.set(__self__, "ad_markers", ad_markers) + _setter("ad_markers", ad_markers) if base_url_content is not None: - pulumi.set(__self__, "base_url_content", base_url_content) + _setter("base_url_content", base_url_content) if base_url_content1 is not None: - pulumi.set(__self__, "base_url_content1", base_url_content1) + _setter("base_url_content1", base_url_content1) if base_url_manifest is not None: - pulumi.set(__self__, "base_url_manifest", base_url_manifest) + _setter("base_url_manifest", base_url_manifest) if base_url_manifest1 is not None: - pulumi.set(__self__, "base_url_manifest1", base_url_manifest1) + _setter("base_url_manifest1", base_url_manifest1) if caption_language_mappings is not None: - pulumi.set(__self__, "caption_language_mappings", caption_language_mappings) + _setter("caption_language_mappings", caption_language_mappings) if caption_language_setting is not None: - pulumi.set(__self__, "caption_language_setting", caption_language_setting) + _setter("caption_language_setting", caption_language_setting) if client_cache is not None: - pulumi.set(__self__, "client_cache", client_cache) + _setter("client_cache", client_cache) if codec_specification is not None: - pulumi.set(__self__, "codec_specification", codec_specification) + _setter("codec_specification", codec_specification) if constant_iv is not None: - pulumi.set(__self__, "constant_iv", constant_iv) + _setter("constant_iv", constant_iv) if directory_structure is not None: - pulumi.set(__self__, "directory_structure", directory_structure) + _setter("directory_structure", directory_structure) if discontinuity_tags is not None: - pulumi.set(__self__, "discontinuity_tags", discontinuity_tags) + _setter("discontinuity_tags", discontinuity_tags) if encryption_type is not None: - pulumi.set(__self__, "encryption_type", encryption_type) + _setter("encryption_type", encryption_type) if hls_cdn_settings is not None: - pulumi.set(__self__, "hls_cdn_settings", hls_cdn_settings) + _setter("hls_cdn_settings", hls_cdn_settings) if hls_id3_segment_tagging is not None: - pulumi.set(__self__, "hls_id3_segment_tagging", hls_id3_segment_tagging) + _setter("hls_id3_segment_tagging", hls_id3_segment_tagging) if iframe_only_playlists is not None: - pulumi.set(__self__, "iframe_only_playlists", iframe_only_playlists) + _setter("iframe_only_playlists", iframe_only_playlists) if incomplete_segment_behavior is not None: - pulumi.set(__self__, "incomplete_segment_behavior", incomplete_segment_behavior) + _setter("incomplete_segment_behavior", incomplete_segment_behavior) if index_n_segments is not None: - pulumi.set(__self__, "index_n_segments", index_n_segments) + _setter("index_n_segments", index_n_segments) if input_loss_action is not None: - pulumi.set(__self__, "input_loss_action", input_loss_action) + _setter("input_loss_action", input_loss_action) if iv_in_manifest is not None: - pulumi.set(__self__, "iv_in_manifest", iv_in_manifest) + _setter("iv_in_manifest", iv_in_manifest) if iv_source is not None: - pulumi.set(__self__, "iv_source", iv_source) + _setter("iv_source", iv_source) if keep_segments is not None: - pulumi.set(__self__, "keep_segments", keep_segments) + _setter("keep_segments", keep_segments) if key_format is not None: - pulumi.set(__self__, "key_format", key_format) + _setter("key_format", key_format) if key_format_versions is not None: - pulumi.set(__self__, "key_format_versions", key_format_versions) + _setter("key_format_versions", key_format_versions) if key_provider_settings is not None: - pulumi.set(__self__, "key_provider_settings", key_provider_settings) + _setter("key_provider_settings", key_provider_settings) if manifest_compression is not None: - pulumi.set(__self__, "manifest_compression", manifest_compression) + _setter("manifest_compression", manifest_compression) if manifest_duration_format is not None: - pulumi.set(__self__, "manifest_duration_format", manifest_duration_format) + _setter("manifest_duration_format", manifest_duration_format) if min_segment_length is not None: - pulumi.set(__self__, "min_segment_length", min_segment_length) + _setter("min_segment_length", min_segment_length) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if output_selection is not None: - pulumi.set(__self__, "output_selection", output_selection) + _setter("output_selection", output_selection) if program_date_time is not None: - pulumi.set(__self__, "program_date_time", program_date_time) + _setter("program_date_time", program_date_time) if program_date_time_clock is not None: - pulumi.set(__self__, "program_date_time_clock", program_date_time_clock) + _setter("program_date_time_clock", program_date_time_clock) if program_date_time_period is not None: - pulumi.set(__self__, "program_date_time_period", program_date_time_period) + _setter("program_date_time_period", program_date_time_period) if redundant_manifest is not None: - pulumi.set(__self__, "redundant_manifest", redundant_manifest) + _setter("redundant_manifest", redundant_manifest) if segment_length is not None: - pulumi.set(__self__, "segment_length", segment_length) + _setter("segment_length", segment_length) if segments_per_subdirectory is not None: - pulumi.set(__self__, "segments_per_subdirectory", segments_per_subdirectory) + _setter("segments_per_subdirectory", segments_per_subdirectory) if stream_inf_resolution is not None: - pulumi.set(__self__, "stream_inf_resolution", stream_inf_resolution) + _setter("stream_inf_resolution", stream_inf_resolution) if timed_metadata_id3_frame is not None: - pulumi.set(__self__, "timed_metadata_id3_frame", timed_metadata_id3_frame) + _setter("timed_metadata_id3_frame", timed_metadata_id3_frame) if timed_metadata_id3_period is not None: - pulumi.set(__self__, "timed_metadata_id3_period", timed_metadata_id3_period) + _setter("timed_metadata_id3_period", timed_metadata_id3_period) if timestamp_delta_milliseconds is not None: - pulumi.set(__self__, "timestamp_delta_milliseconds", timestamp_delta_milliseconds) + _setter("timestamp_delta_milliseconds", timestamp_delta_milliseconds) if ts_file_mode is not None: - pulumi.set(__self__, "ts_file_mode", ts_file_mode) + _setter("ts_file_mode", ts_file_mode) @property @pulumi.getter @@ -4491,9 +6074,36 @@ def __init__(__self__, *, :param pulumi.Input[str] language_code: Selects a specific three-letter language code from within an audio source. :param pulumi.Input[str] language_description: Human readable information to indicate captions available for players (eg. English, or Spanish). """ - pulumi.set(__self__, "caption_channel", caption_channel) - pulumi.set(__self__, "language_code", language_code) - pulumi.set(__self__, "language_description", language_description) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + caption_channel=caption_channel, + language_code=language_code, + language_description=language_description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caption_channel: Optional[pulumi.Input[int]] = None, + language_code: Optional[pulumi.Input[str]] = None, + language_description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caption_channel is None and 'captionChannel' in kwargs: + caption_channel = kwargs['captionChannel'] + if caption_channel is None: + raise TypeError("Missing 'caption_channel' argument") + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if language_description is None and 'languageDescription' in kwargs: + language_description = kwargs['languageDescription'] + if language_description is None: + raise TypeError("Missing 'language_description' argument") + + _setter("caption_channel", caption_channel) + _setter("language_code", language_code) + _setter("language_description", language_description) @property @pulumi.getter(name="captionChannel") @@ -4536,7 +6146,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -4559,16 +6184,45 @@ def __init__(__self__, *, hls_media_store_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsMediaStoreSettingsArgs']] = None, hls_s3_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsS3SettingsArgs']] = None, hls_webdav_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsWebdavSettingsArgs']] = None): + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hls_akamai_settings=hls_akamai_settings, + hls_basic_put_settings=hls_basic_put_settings, + hls_media_store_settings=hls_media_store_settings, + hls_s3_settings=hls_s3_settings, + hls_webdav_settings=hls_webdav_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hls_akamai_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsAkamaiSettingsArgs']] = None, + hls_basic_put_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsBasicPutSettingsArgs']] = None, + hls_media_store_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsMediaStoreSettingsArgs']] = None, + hls_s3_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsS3SettingsArgs']] = None, + hls_webdav_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsWebdavSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hls_akamai_settings is None and 'hlsAkamaiSettings' in kwargs: + hls_akamai_settings = kwargs['hlsAkamaiSettings'] + if hls_basic_put_settings is None and 'hlsBasicPutSettings' in kwargs: + hls_basic_put_settings = kwargs['hlsBasicPutSettings'] + if hls_media_store_settings is None and 'hlsMediaStoreSettings' in kwargs: + hls_media_store_settings = kwargs['hlsMediaStoreSettings'] + if hls_s3_settings is None and 'hlsS3Settings' in kwargs: + hls_s3_settings = kwargs['hlsS3Settings'] + if hls_webdav_settings is None and 'hlsWebdavSettings' in kwargs: + hls_webdav_settings = kwargs['hlsWebdavSettings'] + if hls_akamai_settings is not None: - pulumi.set(__self__, "hls_akamai_settings", hls_akamai_settings) + _setter("hls_akamai_settings", hls_akamai_settings) if hls_basic_put_settings is not None: - pulumi.set(__self__, "hls_basic_put_settings", hls_basic_put_settings) + _setter("hls_basic_put_settings", hls_basic_put_settings) if hls_media_store_settings is not None: - pulumi.set(__self__, "hls_media_store_settings", hls_media_store_settings) + _setter("hls_media_store_settings", hls_media_store_settings) if hls_s3_settings is not None: - pulumi.set(__self__, "hls_s3_settings", hls_s3_settings) + _setter("hls_s3_settings", hls_s3_settings) if hls_webdav_settings is not None: - pulumi.set(__self__, "hls_webdav_settings", hls_webdav_settings) + _setter("hls_webdav_settings", hls_webdav_settings) @property @pulumi.getter(name="hlsAkamaiSettings") @@ -4631,20 +6285,53 @@ def __init__(__self__, *, :param pulumi.Input[int] num_retries: Number of retry attempts. :param pulumi.Input[int] restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsAkamaiSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_retry_interval=connection_retry_interval, + filecache_duration=filecache_duration, + http_transfer_mode=http_transfer_mode, + num_retries=num_retries, + restart_delay=restart_delay, + salt=salt, + token=token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_retry_interval: Optional[pulumi.Input[int]] = None, + filecache_duration: Optional[pulumi.Input[int]] = None, + http_transfer_mode: Optional[pulumi.Input[str]] = None, + num_retries: Optional[pulumi.Input[int]] = None, + restart_delay: Optional[pulumi.Input[int]] = None, + salt: Optional[pulumi.Input[str]] = None, + token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if http_transfer_mode is None and 'httpTransferMode' in kwargs: + http_transfer_mode = kwargs['httpTransferMode'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if http_transfer_mode is not None: - pulumi.set(__self__, "http_transfer_mode", http_transfer_mode) + _setter("http_transfer_mode", http_transfer_mode) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) if salt is not None: - pulumi.set(__self__, "salt", salt) + _setter("salt", salt) if token is not None: - pulumi.set(__self__, "token", token) + _setter("token", token) @property @pulumi.getter(name="connectionRetryInterval") @@ -4731,14 +6418,39 @@ def __init__(__self__, *, :param pulumi.Input[int] num_retries: Number of retry attempts. :param pulumi.Input[int] restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsBasicPutSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_retry_interval=connection_retry_interval, + filecache_duration=filecache_duration, + num_retries=num_retries, + restart_delay=restart_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_retry_interval: Optional[pulumi.Input[int]] = None, + filecache_duration: Optional[pulumi.Input[int]] = None, + num_retries: Optional[pulumi.Input[int]] = None, + restart_delay: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) @property @pulumi.getter(name="connectionRetryInterval") @@ -4799,16 +6511,45 @@ def __init__(__self__, *, :param pulumi.Input[int] num_retries: Number of retry attempts. :param pulumi.Input[int] restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsMediaStoreSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_retry_interval=connection_retry_interval, + filecache_duration=filecache_duration, + media_store_storage_class=media_store_storage_class, + num_retries=num_retries, + restart_delay=restart_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_retry_interval: Optional[pulumi.Input[int]] = None, + filecache_duration: Optional[pulumi.Input[int]] = None, + media_store_storage_class: Optional[pulumi.Input[str]] = None, + num_retries: Optional[pulumi.Input[int]] = None, + restart_delay: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if media_store_storage_class is None and 'mediaStoreStorageClass' in kwargs: + media_store_storage_class = kwargs['mediaStoreStorageClass'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if media_store_storage_class is not None: - pulumi.set(__self__, "media_store_storage_class", media_store_storage_class) + _setter("media_store_storage_class", media_store_storage_class) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) @property @pulumi.getter(name="connectionRetryInterval") @@ -4872,8 +6613,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] canned_acl: Specify the canned ACL to apply to each S3 request. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsS3SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + canned_acl: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="cannedAcl") @@ -4901,16 +6655,45 @@ def __init__(__self__, *, :param pulumi.Input[int] num_retries: Number of retry attempts. :param pulumi.Input[int] restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsWebdavSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_retry_interval=connection_retry_interval, + filecache_duration=filecache_duration, + http_transfer_mode=http_transfer_mode, + num_retries=num_retries, + restart_delay=restart_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_retry_interval: Optional[pulumi.Input[int]] = None, + filecache_duration: Optional[pulumi.Input[int]] = None, + http_transfer_mode: Optional[pulumi.Input[str]] = None, + num_retries: Optional[pulumi.Input[int]] = None, + restart_delay: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if http_transfer_mode is None and 'httpTransferMode' in kwargs: + http_transfer_mode = kwargs['httpTransferMode'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if http_transfer_mode is not None: - pulumi.set(__self__, "http_transfer_mode", http_transfer_mode) + _setter("http_transfer_mode", http_transfer_mode) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) @property @pulumi.getter(name="connectionRetryInterval") @@ -4971,8 +6754,21 @@ def restart_delay(self, value: Optional[pulumi.Input[int]]): class ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsArgs: def __init__(__self__, *, static_key_settings: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingArgs']]]] = None): + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + static_key_settings=static_key_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + static_key_settings: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if static_key_settings is None and 'staticKeySettings' in kwargs: + static_key_settings = kwargs['staticKeySettings'] + if static_key_settings is not None: - pulumi.set(__self__, "static_key_settings", static_key_settings) + _setter("static_key_settings", static_key_settings) @property @pulumi.getter(name="staticKeySettings") @@ -4989,9 +6785,28 @@ class ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyPro def __init__(__self__, *, static_key_value: pulumi.Input[str], key_provider_server: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs']] = None): - pulumi.set(__self__, "static_key_value", static_key_value) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + static_key_value=static_key_value, + key_provider_server=key_provider_server, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + static_key_value: Optional[pulumi.Input[str]] = None, + key_provider_server: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if static_key_value is None and 'staticKeyValue' in kwargs: + static_key_value = kwargs['staticKeyValue'] + if static_key_value is None: + raise TypeError("Missing 'static_key_value' argument") + if key_provider_server is None and 'keyProviderServer' in kwargs: + key_provider_server = kwargs['keyProviderServer'] + + _setter("static_key_value", static_key_value) if key_provider_server is not None: - pulumi.set(__self__, "key_provider_server", key_provider_server) + _setter("key_provider_server", key_provider_server) @property @pulumi.getter(name="staticKeyValue") @@ -5021,13 +6836,32 @@ def __init__(__self__, *, """ :param pulumi.Input[str] uri: Path to a file accessible to the live stream. :param pulumi.Input[str] password_param: Key used to extract the password from EC2 Parameter store. - :param pulumi.Input[str] username: Username for destination. + :param pulumi.Input[str] username: . Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[pulumi.Input[str]] = None, + password_param: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -5057,7 +6891,7 @@ def password_param(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def username(self) -> Optional[pulumi.Input[str]]: """ - Username for destination. + . Username to be used. """ return pulumi.get(self, "username") @@ -5073,7 +6907,20 @@ def __init__(__self__, *, """ :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsDestinationArgs'] destination: A director and base filename where archive files should be written. See Destination for more details. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsDestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + + _setter("destination", destination) @property @pulumi.getter @@ -5095,7 +6942,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -5140,43 +7002,128 @@ def __init__(__self__, *, :param pulumi.Input[int] num_retries: Number of retry attempts. :param pulumi.Input[int] restart_delay: Number of seconds to wait until a restart is initiated. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsMsSmoothGroupSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + acquisition_point_id=acquisition_point_id, + audio_only_timecode_control=audio_only_timecode_control, + certificate_mode=certificate_mode, + connection_retry_interval=connection_retry_interval, + event_id=event_id, + event_id_mode=event_id_mode, + event_stop_behavior=event_stop_behavior, + filecache_duration=filecache_duration, + fragment_length=fragment_length, + input_loss_action=input_loss_action, + num_retries=num_retries, + restart_delay=restart_delay, + segmentation_mode=segmentation_mode, + send_delay_ms=send_delay_ms, + sparse_track_type=sparse_track_type, + stream_manifest_behavior=stream_manifest_behavior, + timestamp_offset=timestamp_offset, + timestamp_offset_mode=timestamp_offset_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputGroupSettingsMsSmoothGroupSettingsDestinationArgs']] = None, + acquisition_point_id: Optional[pulumi.Input[str]] = None, + audio_only_timecode_control: Optional[pulumi.Input[str]] = None, + certificate_mode: Optional[pulumi.Input[str]] = None, + connection_retry_interval: Optional[pulumi.Input[int]] = None, + event_id: Optional[pulumi.Input[str]] = None, + event_id_mode: Optional[pulumi.Input[str]] = None, + event_stop_behavior: Optional[pulumi.Input[str]] = None, + filecache_duration: Optional[pulumi.Input[int]] = None, + fragment_length: Optional[pulumi.Input[int]] = None, + input_loss_action: Optional[pulumi.Input[str]] = None, + num_retries: Optional[pulumi.Input[int]] = None, + restart_delay: Optional[pulumi.Input[int]] = None, + segmentation_mode: Optional[pulumi.Input[str]] = None, + send_delay_ms: Optional[pulumi.Input[int]] = None, + sparse_track_type: Optional[pulumi.Input[str]] = None, + stream_manifest_behavior: Optional[pulumi.Input[str]] = None, + timestamp_offset: Optional[pulumi.Input[str]] = None, + timestamp_offset_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if acquisition_point_id is None and 'acquisitionPointId' in kwargs: + acquisition_point_id = kwargs['acquisitionPointId'] + if audio_only_timecode_control is None and 'audioOnlyTimecodeControl' in kwargs: + audio_only_timecode_control = kwargs['audioOnlyTimecodeControl'] + if certificate_mode is None and 'certificateMode' in kwargs: + certificate_mode = kwargs['certificateMode'] + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if event_id is None and 'eventId' in kwargs: + event_id = kwargs['eventId'] + if event_id_mode is None and 'eventIdMode' in kwargs: + event_id_mode = kwargs['eventIdMode'] + if event_stop_behavior is None and 'eventStopBehavior' in kwargs: + event_stop_behavior = kwargs['eventStopBehavior'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if fragment_length is None and 'fragmentLength' in kwargs: + fragment_length = kwargs['fragmentLength'] + if input_loss_action is None and 'inputLossAction' in kwargs: + input_loss_action = kwargs['inputLossAction'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if segmentation_mode is None and 'segmentationMode' in kwargs: + segmentation_mode = kwargs['segmentationMode'] + if send_delay_ms is None and 'sendDelayMs' in kwargs: + send_delay_ms = kwargs['sendDelayMs'] + if sparse_track_type is None and 'sparseTrackType' in kwargs: + sparse_track_type = kwargs['sparseTrackType'] + if stream_manifest_behavior is None and 'streamManifestBehavior' in kwargs: + stream_manifest_behavior = kwargs['streamManifestBehavior'] + if timestamp_offset is None and 'timestampOffset' in kwargs: + timestamp_offset = kwargs['timestampOffset'] + if timestamp_offset_mode is None and 'timestampOffsetMode' in kwargs: + timestamp_offset_mode = kwargs['timestampOffsetMode'] + + _setter("destination", destination) if acquisition_point_id is not None: - pulumi.set(__self__, "acquisition_point_id", acquisition_point_id) + _setter("acquisition_point_id", acquisition_point_id) if audio_only_timecode_control is not None: - pulumi.set(__self__, "audio_only_timecode_control", audio_only_timecode_control) + _setter("audio_only_timecode_control", audio_only_timecode_control) if certificate_mode is not None: - pulumi.set(__self__, "certificate_mode", certificate_mode) + _setter("certificate_mode", certificate_mode) if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if event_id is not None: - pulumi.set(__self__, "event_id", event_id) + _setter("event_id", event_id) if event_id_mode is not None: - pulumi.set(__self__, "event_id_mode", event_id_mode) + _setter("event_id_mode", event_id_mode) if event_stop_behavior is not None: - pulumi.set(__self__, "event_stop_behavior", event_stop_behavior) + _setter("event_stop_behavior", event_stop_behavior) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if fragment_length is not None: - pulumi.set(__self__, "fragment_length", fragment_length) + _setter("fragment_length", fragment_length) if input_loss_action is not None: - pulumi.set(__self__, "input_loss_action", input_loss_action) + _setter("input_loss_action", input_loss_action) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) if segmentation_mode is not None: - pulumi.set(__self__, "segmentation_mode", segmentation_mode) + _setter("segmentation_mode", segmentation_mode) if send_delay_ms is not None: - pulumi.set(__self__, "send_delay_ms", send_delay_ms) + _setter("send_delay_ms", send_delay_ms) if sparse_track_type is not None: - pulumi.set(__self__, "sparse_track_type", sparse_track_type) + _setter("sparse_track_type", sparse_track_type) if stream_manifest_behavior is not None: - pulumi.set(__self__, "stream_manifest_behavior", stream_manifest_behavior) + _setter("stream_manifest_behavior", stream_manifest_behavior) if timestamp_offset is not None: - pulumi.set(__self__, "timestamp_offset", timestamp_offset) + _setter("timestamp_offset", timestamp_offset) if timestamp_offset_mode is not None: - pulumi.set(__self__, "timestamp_offset_mode", timestamp_offset_mode) + _setter("timestamp_offset_mode", timestamp_offset_mode) @property @pulumi.getter @@ -5375,7 +7322,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsMsSmoothGroupSettingsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -5394,6 +7356,13 @@ def destination_ref_id(self, value: pulumi.Input[str]): class ChannelEncoderSettingsOutputGroupOutputGroupSettingsMultiplexGroupSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5415,20 +7384,57 @@ def __init__(__self__, *, :param pulumi.Input[str] input_loss_action: Controls the behavior of the RTMP group if input becomes unavailable. :param pulumi.Input[int] restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsRtmpGroupSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ad_markers=ad_markers, + authentication_scheme=authentication_scheme, + cache_full_behavior=cache_full_behavior, + cache_length=cache_length, + caption_data=caption_data, + input_loss_action=input_loss_action, + restart_delay=restart_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ad_markers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + authentication_scheme: Optional[pulumi.Input[str]] = None, + cache_full_behavior: Optional[pulumi.Input[str]] = None, + cache_length: Optional[pulumi.Input[int]] = None, + caption_data: Optional[pulumi.Input[str]] = None, + input_loss_action: Optional[pulumi.Input[str]] = None, + restart_delay: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ad_markers is None and 'adMarkers' in kwargs: + ad_markers = kwargs['adMarkers'] + if authentication_scheme is None and 'authenticationScheme' in kwargs: + authentication_scheme = kwargs['authenticationScheme'] + if cache_full_behavior is None and 'cacheFullBehavior' in kwargs: + cache_full_behavior = kwargs['cacheFullBehavior'] + if cache_length is None and 'cacheLength' in kwargs: + cache_length = kwargs['cacheLength'] + if caption_data is None and 'captionData' in kwargs: + caption_data = kwargs['captionData'] + if input_loss_action is None and 'inputLossAction' in kwargs: + input_loss_action = kwargs['inputLossAction'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if ad_markers is not None: - pulumi.set(__self__, "ad_markers", ad_markers) + _setter("ad_markers", ad_markers) if authentication_scheme is not None: - pulumi.set(__self__, "authentication_scheme", authentication_scheme) + _setter("authentication_scheme", authentication_scheme) if cache_full_behavior is not None: - pulumi.set(__self__, "cache_full_behavior", cache_full_behavior) + _setter("cache_full_behavior", cache_full_behavior) if cache_length is not None: - pulumi.set(__self__, "cache_length", cache_length) + _setter("cache_length", cache_length) if caption_data is not None: - pulumi.set(__self__, "caption_data", caption_data) + _setter("caption_data", caption_data) if input_loss_action is not None: - pulumi.set(__self__, "input_loss_action", input_loss_action) + _setter("input_loss_action", input_loss_action) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) @property @pulumi.getter(name="adMarkers") @@ -5525,12 +7531,33 @@ def __init__(__self__, *, :param pulumi.Input[str] input_loss_action: Specifies behavior of last resort when input video os lost. :param pulumi.Input[str] timed_metadata_id3_frame: Indicates ID3 frame that has the timecode. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsUdpGroupSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_loss_action=input_loss_action, + timed_metadata_id3_frame=timed_metadata_id3_frame, + timed_metadata_id3_period=timed_metadata_id3_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_loss_action: Optional[pulumi.Input[str]] = None, + timed_metadata_id3_frame: Optional[pulumi.Input[str]] = None, + timed_metadata_id3_period: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_loss_action is None and 'inputLossAction' in kwargs: + input_loss_action = kwargs['inputLossAction'] + if timed_metadata_id3_frame is None and 'timedMetadataId3Frame' in kwargs: + timed_metadata_id3_frame = kwargs['timedMetadataId3Frame'] + if timed_metadata_id3_period is None and 'timedMetadataId3Period' in kwargs: + timed_metadata_id3_period = kwargs['timedMetadataId3Period'] + if input_loss_action is not None: - pulumi.set(__self__, "input_loss_action", input_loss_action) + _setter("input_loss_action", input_loss_action) if timed_metadata_id3_frame is not None: - pulumi.set(__self__, "timed_metadata_id3_frame", timed_metadata_id3_frame) + _setter("timed_metadata_id3_frame", timed_metadata_id3_frame) if timed_metadata_id3_period is not None: - pulumi.set(__self__, "timed_metadata_id3_period", timed_metadata_id3_period) + _setter("timed_metadata_id3_period", timed_metadata_id3_period) @property @pulumi.getter(name="inputLossAction") @@ -5584,22 +7611,63 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettingsArgs'] rtmp_output_settings: RTMP output settings. See RTMP Output Settings for more details. :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsArgs'] udp_output_settings: UDP output settings. See UDP Output Settings for more details. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + archive_output_settings=archive_output_settings, + frame_capture_output_settings=frame_capture_output_settings, + hls_output_settings=hls_output_settings, + media_package_output_settings=media_package_output_settings, + ms_smooth_output_settings=ms_smooth_output_settings, + multiplex_output_settings=multiplex_output_settings, + rtmp_output_settings=rtmp_output_settings, + udp_output_settings=udp_output_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + archive_output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsArgs']] = None, + frame_capture_output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsFrameCaptureOutputSettingsArgs']] = None, + hls_output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsArgs']] = None, + media_package_output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsMediaPackageOutputSettingsArgs']] = None, + ms_smooth_output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsMsSmoothOutputSettingsArgs']] = None, + multiplex_output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettingsArgs']] = None, + rtmp_output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettingsArgs']] = None, + udp_output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if archive_output_settings is None and 'archiveOutputSettings' in kwargs: + archive_output_settings = kwargs['archiveOutputSettings'] + if frame_capture_output_settings is None and 'frameCaptureOutputSettings' in kwargs: + frame_capture_output_settings = kwargs['frameCaptureOutputSettings'] + if hls_output_settings is None and 'hlsOutputSettings' in kwargs: + hls_output_settings = kwargs['hlsOutputSettings'] + if media_package_output_settings is None and 'mediaPackageOutputSettings' in kwargs: + media_package_output_settings = kwargs['mediaPackageOutputSettings'] + if ms_smooth_output_settings is None and 'msSmoothOutputSettings' in kwargs: + ms_smooth_output_settings = kwargs['msSmoothOutputSettings'] + if multiplex_output_settings is None and 'multiplexOutputSettings' in kwargs: + multiplex_output_settings = kwargs['multiplexOutputSettings'] + if rtmp_output_settings is None and 'rtmpOutputSettings' in kwargs: + rtmp_output_settings = kwargs['rtmpOutputSettings'] + if udp_output_settings is None and 'udpOutputSettings' in kwargs: + udp_output_settings = kwargs['udpOutputSettings'] + if archive_output_settings is not None: - pulumi.set(__self__, "archive_output_settings", archive_output_settings) + _setter("archive_output_settings", archive_output_settings) if frame_capture_output_settings is not None: - pulumi.set(__self__, "frame_capture_output_settings", frame_capture_output_settings) + _setter("frame_capture_output_settings", frame_capture_output_settings) if hls_output_settings is not None: - pulumi.set(__self__, "hls_output_settings", hls_output_settings) + _setter("hls_output_settings", hls_output_settings) if media_package_output_settings is not None: - pulumi.set(__self__, "media_package_output_settings", media_package_output_settings) + _setter("media_package_output_settings", media_package_output_settings) if ms_smooth_output_settings is not None: - pulumi.set(__self__, "ms_smooth_output_settings", ms_smooth_output_settings) + _setter("ms_smooth_output_settings", ms_smooth_output_settings) if multiplex_output_settings is not None: - pulumi.set(__self__, "multiplex_output_settings", multiplex_output_settings) + _setter("multiplex_output_settings", multiplex_output_settings) if rtmp_output_settings is not None: - pulumi.set(__self__, "rtmp_output_settings", rtmp_output_settings) + _setter("rtmp_output_settings", rtmp_output_settings) if udp_output_settings is not None: - pulumi.set(__self__, "udp_output_settings", udp_output_settings) + _setter("udp_output_settings", udp_output_settings) @property @pulumi.getter(name="archiveOutputSettings") @@ -5700,12 +7768,31 @@ def __init__(__self__, *, :param pulumi.Input[str] extension: Output file extension. :param pulumi.Input[str] name_modifier: String concatenated to the end of the destination filename. Required for multiple outputs of the same type. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_settings=container_settings, + extension=extension, + name_modifier=name_modifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsArgs']] = None, + extension: Optional[pulumi.Input[str]] = None, + name_modifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_settings is None and 'containerSettings' in kwargs: + container_settings = kwargs['containerSettings'] + if name_modifier is None and 'nameModifier' in kwargs: + name_modifier = kwargs['nameModifier'] + if container_settings is not None: - pulumi.set(__self__, "container_settings", container_settings) + _setter("container_settings", container_settings) if extension is not None: - pulumi.set(__self__, "extension", extension) + _setter("extension", extension) if name_modifier is not None: - pulumi.set(__self__, "name_modifier", name_modifier) + _setter("name_modifier", name_modifier) @property @pulumi.getter(name="containerSettings") @@ -5753,10 +7840,27 @@ def __init__(__self__, *, :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. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + m2ts_settings=m2ts_settings, + raw_settings=raw_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + m2ts_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsArgs']] = None, + raw_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if m2ts_settings is None and 'm2tsSettings' in kwargs: + m2ts_settings = kwargs['m2tsSettings'] + if raw_settings is None and 'rawSettings' in kwargs: + raw_settings = kwargs['rawSettings'] + if m2ts_settings is not None: - pulumi.set(__self__, "m2ts_settings", m2ts_settings) + _setter("m2ts_settings", m2ts_settings) if raw_settings is not None: - pulumi.set(__self__, "raw_settings", raw_settings) + _setter("raw_settings", raw_settings) @property @pulumi.getter(name="m2tsSettings") @@ -5837,100 +7941,289 @@ def __init__(__self__, *, :param pulumi.Input[int] bitrate: Average bitrate in bits/second. :param pulumi.Input[str] scte35_pid: PID from which to read SCTE-35 messages. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + absent_input_audio_behavior=absent_input_audio_behavior, + arib=arib, + arib_captions_pid=arib_captions_pid, + arib_captions_pid_control=arib_captions_pid_control, + audio_buffer_model=audio_buffer_model, + audio_frames_per_pes=audio_frames_per_pes, + audio_pids=audio_pids, + audio_stream_type=audio_stream_type, + bitrate=bitrate, + buffer_model=buffer_model, + cc_descriptor=cc_descriptor, + dvb_nit_settings=dvb_nit_settings, + dvb_sdt_settings=dvb_sdt_settings, + dvb_sub_pids=dvb_sub_pids, + dvb_tdt_settings=dvb_tdt_settings, + dvb_teletext_pid=dvb_teletext_pid, + ebif=ebif, + ebp_audio_interval=ebp_audio_interval, + ebp_lookahead_ms=ebp_lookahead_ms, + ebp_placement=ebp_placement, + ecm_pid=ecm_pid, + es_rate_in_pes=es_rate_in_pes, + etv_platform_pid=etv_platform_pid, + etv_signal_pid=etv_signal_pid, + fragment_time=fragment_time, + klv=klv, + klv_data_pids=klv_data_pids, + nielsen_id3_behavior=nielsen_id3_behavior, + null_packet_bitrate=null_packet_bitrate, + pat_interval=pat_interval, + pcr_control=pcr_control, + pcr_period=pcr_period, + pcr_pid=pcr_pid, + pmt_interval=pmt_interval, + pmt_pid=pmt_pid, + program_num=program_num, + rate_mode=rate_mode, + scte27_pids=scte27_pids, + scte35_control=scte35_control, + scte35_pid=scte35_pid, + segmentation_markers=segmentation_markers, + segmentation_style=segmentation_style, + segmentation_time=segmentation_time, + timed_metadata_behavior=timed_metadata_behavior, + timed_metadata_pid=timed_metadata_pid, + transport_stream_id=transport_stream_id, + video_pid=video_pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + absent_input_audio_behavior: Optional[pulumi.Input[str]] = None, + arib: Optional[pulumi.Input[str]] = None, + arib_captions_pid: Optional[pulumi.Input[str]] = None, + arib_captions_pid_control: Optional[pulumi.Input[str]] = None, + audio_buffer_model: Optional[pulumi.Input[str]] = None, + audio_frames_per_pes: Optional[pulumi.Input[int]] = None, + audio_pids: Optional[pulumi.Input[str]] = None, + audio_stream_type: Optional[pulumi.Input[str]] = None, + bitrate: Optional[pulumi.Input[int]] = None, + buffer_model: Optional[pulumi.Input[str]] = None, + cc_descriptor: Optional[pulumi.Input[str]] = None, + dvb_nit_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsArgs']] = None, + dvb_sdt_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsArgs']] = None, + dvb_sub_pids: Optional[pulumi.Input[str]] = None, + dvb_tdt_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsArgs']] = None, + dvb_teletext_pid: Optional[pulumi.Input[str]] = None, + ebif: Optional[pulumi.Input[str]] = None, + ebp_audio_interval: Optional[pulumi.Input[str]] = None, + ebp_lookahead_ms: Optional[pulumi.Input[int]] = None, + ebp_placement: Optional[pulumi.Input[str]] = None, + ecm_pid: Optional[pulumi.Input[str]] = None, + es_rate_in_pes: Optional[pulumi.Input[str]] = None, + etv_platform_pid: Optional[pulumi.Input[str]] = None, + etv_signal_pid: Optional[pulumi.Input[str]] = None, + fragment_time: Optional[pulumi.Input[float]] = None, + klv: Optional[pulumi.Input[str]] = None, + klv_data_pids: Optional[pulumi.Input[str]] = None, + nielsen_id3_behavior: Optional[pulumi.Input[str]] = None, + null_packet_bitrate: Optional[pulumi.Input[float]] = None, + pat_interval: Optional[pulumi.Input[int]] = None, + pcr_control: Optional[pulumi.Input[str]] = None, + pcr_period: Optional[pulumi.Input[int]] = None, + pcr_pid: Optional[pulumi.Input[str]] = None, + pmt_interval: Optional[pulumi.Input[int]] = None, + pmt_pid: Optional[pulumi.Input[str]] = None, + program_num: Optional[pulumi.Input[int]] = None, + rate_mode: Optional[pulumi.Input[str]] = None, + scte27_pids: Optional[pulumi.Input[str]] = None, + scte35_control: Optional[pulumi.Input[str]] = None, + scte35_pid: Optional[pulumi.Input[str]] = None, + segmentation_markers: Optional[pulumi.Input[str]] = None, + segmentation_style: Optional[pulumi.Input[str]] = None, + segmentation_time: Optional[pulumi.Input[float]] = None, + timed_metadata_behavior: Optional[pulumi.Input[str]] = None, + timed_metadata_pid: Optional[pulumi.Input[str]] = None, + transport_stream_id: Optional[pulumi.Input[int]] = None, + video_pid: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if absent_input_audio_behavior is None and 'absentInputAudioBehavior' in kwargs: + absent_input_audio_behavior = kwargs['absentInputAudioBehavior'] + if arib_captions_pid is None and 'aribCaptionsPid' in kwargs: + arib_captions_pid = kwargs['aribCaptionsPid'] + if arib_captions_pid_control is None and 'aribCaptionsPidControl' in kwargs: + arib_captions_pid_control = kwargs['aribCaptionsPidControl'] + if audio_buffer_model is None and 'audioBufferModel' in kwargs: + audio_buffer_model = kwargs['audioBufferModel'] + if audio_frames_per_pes is None and 'audioFramesPerPes' in kwargs: + audio_frames_per_pes = kwargs['audioFramesPerPes'] + if audio_pids is None and 'audioPids' in kwargs: + audio_pids = kwargs['audioPids'] + if audio_stream_type is None and 'audioStreamType' in kwargs: + audio_stream_type = kwargs['audioStreamType'] + if buffer_model is None and 'bufferModel' in kwargs: + buffer_model = kwargs['bufferModel'] + if cc_descriptor is None and 'ccDescriptor' in kwargs: + cc_descriptor = kwargs['ccDescriptor'] + if dvb_nit_settings is None and 'dvbNitSettings' in kwargs: + dvb_nit_settings = kwargs['dvbNitSettings'] + if dvb_sdt_settings is None and 'dvbSdtSettings' in kwargs: + dvb_sdt_settings = kwargs['dvbSdtSettings'] + if dvb_sub_pids is None and 'dvbSubPids' in kwargs: + dvb_sub_pids = kwargs['dvbSubPids'] + if dvb_tdt_settings is None and 'dvbTdtSettings' in kwargs: + dvb_tdt_settings = kwargs['dvbTdtSettings'] + if dvb_teletext_pid is None and 'dvbTeletextPid' in kwargs: + dvb_teletext_pid = kwargs['dvbTeletextPid'] + if ebp_audio_interval is None and 'ebpAudioInterval' in kwargs: + ebp_audio_interval = kwargs['ebpAudioInterval'] + if ebp_lookahead_ms is None and 'ebpLookaheadMs' in kwargs: + ebp_lookahead_ms = kwargs['ebpLookaheadMs'] + if ebp_placement is None and 'ebpPlacement' in kwargs: + ebp_placement = kwargs['ebpPlacement'] + if ecm_pid is None and 'ecmPid' in kwargs: + ecm_pid = kwargs['ecmPid'] + if es_rate_in_pes is None and 'esRateInPes' in kwargs: + es_rate_in_pes = kwargs['esRateInPes'] + if etv_platform_pid is None and 'etvPlatformPid' in kwargs: + etv_platform_pid = kwargs['etvPlatformPid'] + if etv_signal_pid is None and 'etvSignalPid' in kwargs: + etv_signal_pid = kwargs['etvSignalPid'] + if fragment_time is None and 'fragmentTime' in kwargs: + fragment_time = kwargs['fragmentTime'] + if klv_data_pids is None and 'klvDataPids' in kwargs: + klv_data_pids = kwargs['klvDataPids'] + if nielsen_id3_behavior is None and 'nielsenId3Behavior' in kwargs: + nielsen_id3_behavior = kwargs['nielsenId3Behavior'] + if null_packet_bitrate is None and 'nullPacketBitrate' in kwargs: + null_packet_bitrate = kwargs['nullPacketBitrate'] + if pat_interval is None and 'patInterval' in kwargs: + pat_interval = kwargs['patInterval'] + if pcr_control is None and 'pcrControl' in kwargs: + pcr_control = kwargs['pcrControl'] + if pcr_period is None and 'pcrPeriod' in kwargs: + pcr_period = kwargs['pcrPeriod'] + if pcr_pid is None and 'pcrPid' in kwargs: + pcr_pid = kwargs['pcrPid'] + if pmt_interval is None and 'pmtInterval' in kwargs: + pmt_interval = kwargs['pmtInterval'] + if pmt_pid is None and 'pmtPid' in kwargs: + pmt_pid = kwargs['pmtPid'] + if program_num is None and 'programNum' in kwargs: + program_num = kwargs['programNum'] + if rate_mode is None and 'rateMode' in kwargs: + rate_mode = kwargs['rateMode'] + if scte27_pids is None and 'scte27Pids' in kwargs: + scte27_pids = kwargs['scte27Pids'] + if scte35_control is None and 'scte35Control' in kwargs: + scte35_control = kwargs['scte35Control'] + if scte35_pid is None and 'scte35Pid' in kwargs: + scte35_pid = kwargs['scte35Pid'] + if segmentation_markers is None and 'segmentationMarkers' in kwargs: + segmentation_markers = kwargs['segmentationMarkers'] + if segmentation_style is None and 'segmentationStyle' in kwargs: + segmentation_style = kwargs['segmentationStyle'] + if segmentation_time is None and 'segmentationTime' in kwargs: + segmentation_time = kwargs['segmentationTime'] + if timed_metadata_behavior is None and 'timedMetadataBehavior' in kwargs: + timed_metadata_behavior = kwargs['timedMetadataBehavior'] + if timed_metadata_pid is None and 'timedMetadataPid' in kwargs: + timed_metadata_pid = kwargs['timedMetadataPid'] + if transport_stream_id is None and 'transportStreamId' in kwargs: + transport_stream_id = kwargs['transportStreamId'] + if video_pid is None and 'videoPid' in kwargs: + video_pid = kwargs['videoPid'] + if absent_input_audio_behavior is not None: - pulumi.set(__self__, "absent_input_audio_behavior", absent_input_audio_behavior) + _setter("absent_input_audio_behavior", absent_input_audio_behavior) if arib is not None: - pulumi.set(__self__, "arib", arib) + _setter("arib", arib) if arib_captions_pid is not None: - pulumi.set(__self__, "arib_captions_pid", arib_captions_pid) + _setter("arib_captions_pid", arib_captions_pid) if arib_captions_pid_control is not None: - pulumi.set(__self__, "arib_captions_pid_control", arib_captions_pid_control) + _setter("arib_captions_pid_control", arib_captions_pid_control) if audio_buffer_model is not None: - pulumi.set(__self__, "audio_buffer_model", audio_buffer_model) + _setter("audio_buffer_model", audio_buffer_model) if audio_frames_per_pes is not None: - pulumi.set(__self__, "audio_frames_per_pes", audio_frames_per_pes) + _setter("audio_frames_per_pes", audio_frames_per_pes) if audio_pids is not None: - pulumi.set(__self__, "audio_pids", audio_pids) + _setter("audio_pids", audio_pids) if audio_stream_type is not None: - pulumi.set(__self__, "audio_stream_type", audio_stream_type) + _setter("audio_stream_type", audio_stream_type) if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if buffer_model is not None: - pulumi.set(__self__, "buffer_model", buffer_model) + _setter("buffer_model", buffer_model) if cc_descriptor is not None: - pulumi.set(__self__, "cc_descriptor", cc_descriptor) + _setter("cc_descriptor", cc_descriptor) if dvb_nit_settings is not None: - pulumi.set(__self__, "dvb_nit_settings", dvb_nit_settings) + _setter("dvb_nit_settings", dvb_nit_settings) if dvb_sdt_settings is not None: - pulumi.set(__self__, "dvb_sdt_settings", dvb_sdt_settings) + _setter("dvb_sdt_settings", dvb_sdt_settings) if dvb_sub_pids is not None: - pulumi.set(__self__, "dvb_sub_pids", dvb_sub_pids) + _setter("dvb_sub_pids", dvb_sub_pids) if dvb_tdt_settings is not None: - pulumi.set(__self__, "dvb_tdt_settings", dvb_tdt_settings) + _setter("dvb_tdt_settings", dvb_tdt_settings) if dvb_teletext_pid is not None: - pulumi.set(__self__, "dvb_teletext_pid", dvb_teletext_pid) + _setter("dvb_teletext_pid", dvb_teletext_pid) if ebif is not None: - pulumi.set(__self__, "ebif", ebif) + _setter("ebif", ebif) if ebp_audio_interval is not None: - pulumi.set(__self__, "ebp_audio_interval", ebp_audio_interval) + _setter("ebp_audio_interval", ebp_audio_interval) if ebp_lookahead_ms is not None: - pulumi.set(__self__, "ebp_lookahead_ms", ebp_lookahead_ms) + _setter("ebp_lookahead_ms", ebp_lookahead_ms) if ebp_placement is not None: - pulumi.set(__self__, "ebp_placement", ebp_placement) + _setter("ebp_placement", ebp_placement) if ecm_pid is not None: - pulumi.set(__self__, "ecm_pid", ecm_pid) + _setter("ecm_pid", ecm_pid) if es_rate_in_pes is not None: - pulumi.set(__self__, "es_rate_in_pes", es_rate_in_pes) + _setter("es_rate_in_pes", es_rate_in_pes) if etv_platform_pid is not None: - pulumi.set(__self__, "etv_platform_pid", etv_platform_pid) + _setter("etv_platform_pid", etv_platform_pid) if etv_signal_pid is not None: - pulumi.set(__self__, "etv_signal_pid", etv_signal_pid) + _setter("etv_signal_pid", etv_signal_pid) if fragment_time is not None: - pulumi.set(__self__, "fragment_time", fragment_time) + _setter("fragment_time", fragment_time) if klv is not None: - pulumi.set(__self__, "klv", klv) + _setter("klv", klv) if klv_data_pids is not None: - pulumi.set(__self__, "klv_data_pids", klv_data_pids) + _setter("klv_data_pids", klv_data_pids) if nielsen_id3_behavior is not None: - pulumi.set(__self__, "nielsen_id3_behavior", nielsen_id3_behavior) + _setter("nielsen_id3_behavior", nielsen_id3_behavior) if null_packet_bitrate is not None: - pulumi.set(__self__, "null_packet_bitrate", null_packet_bitrate) + _setter("null_packet_bitrate", null_packet_bitrate) if pat_interval is not None: - pulumi.set(__self__, "pat_interval", pat_interval) + _setter("pat_interval", pat_interval) if pcr_control is not None: - pulumi.set(__self__, "pcr_control", pcr_control) + _setter("pcr_control", pcr_control) if pcr_period is not None: - pulumi.set(__self__, "pcr_period", pcr_period) + _setter("pcr_period", pcr_period) if pcr_pid is not None: - pulumi.set(__self__, "pcr_pid", pcr_pid) + _setter("pcr_pid", pcr_pid) if pmt_interval is not None: - pulumi.set(__self__, "pmt_interval", pmt_interval) + _setter("pmt_interval", pmt_interval) if pmt_pid is not None: - pulumi.set(__self__, "pmt_pid", pmt_pid) + _setter("pmt_pid", pmt_pid) if program_num is not None: - pulumi.set(__self__, "program_num", program_num) + _setter("program_num", program_num) if rate_mode is not None: - pulumi.set(__self__, "rate_mode", rate_mode) + _setter("rate_mode", rate_mode) if scte27_pids is not None: - pulumi.set(__self__, "scte27_pids", scte27_pids) + _setter("scte27_pids", scte27_pids) if scte35_control is not None: - pulumi.set(__self__, "scte35_control", scte35_control) + _setter("scte35_control", scte35_control) if scte35_pid is not None: - pulumi.set(__self__, "scte35_pid", scte35_pid) + _setter("scte35_pid", scte35_pid) if segmentation_markers is not None: - pulumi.set(__self__, "segmentation_markers", segmentation_markers) + _setter("segmentation_markers", segmentation_markers) if segmentation_style is not None: - pulumi.set(__self__, "segmentation_style", segmentation_style) + _setter("segmentation_style", segmentation_style) if segmentation_time is not None: - pulumi.set(__self__, "segmentation_time", segmentation_time) + _setter("segmentation_time", segmentation_time) if timed_metadata_behavior is not None: - pulumi.set(__self__, "timed_metadata_behavior", timed_metadata_behavior) + _setter("timed_metadata_behavior", timed_metadata_behavior) if timed_metadata_pid is not None: - pulumi.set(__self__, "timed_metadata_pid", timed_metadata_pid) + _setter("timed_metadata_pid", timed_metadata_pid) if transport_stream_id is not None: - pulumi.set(__self__, "transport_stream_id", transport_stream_id) + _setter("transport_stream_id", transport_stream_id) if video_pid is not None: - pulumi.set(__self__, "video_pid", video_pid) + _setter("video_pid", video_pid) @property @pulumi.getter(name="absentInputAudioBehavior") @@ -6368,10 +8661,35 @@ def __init__(__self__, *, network_id: pulumi.Input[int], network_name: pulumi.Input[str], rep_interval: Optional[pulumi.Input[int]] = None): - pulumi.set(__self__, "network_id", network_id) - pulumi.set(__self__, "network_name", network_name) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_id=network_id, + network_name=network_name, + rep_interval=rep_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_id: Optional[pulumi.Input[int]] = None, + network_name: Optional[pulumi.Input[str]] = None, + rep_interval: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_id is None and 'networkId' in kwargs: + network_id = kwargs['networkId'] + if network_id is None: + raise TypeError("Missing 'network_id' argument") + if network_name is None and 'networkName' in kwargs: + network_name = kwargs['networkName'] + if network_name is None: + raise TypeError("Missing 'network_name' argument") + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + + _setter("network_id", network_id) + _setter("network_name", network_name) if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) @property @pulumi.getter(name="networkId") @@ -6408,14 +8726,39 @@ def __init__(__self__, *, rep_interval: Optional[pulumi.Input[int]] = None, service_name: Optional[pulumi.Input[str]] = None, service_provider_name: Optional[pulumi.Input[str]] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_sdt=output_sdt, + rep_interval=rep_interval, + service_name=service_name, + service_provider_name=service_provider_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_sdt: Optional[pulumi.Input[str]] = None, + rep_interval: Optional[pulumi.Input[int]] = None, + service_name: Optional[pulumi.Input[str]] = None, + service_provider_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_sdt is None and 'outputSdt' in kwargs: + output_sdt = kwargs['outputSdt'] + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_provider_name is None and 'serviceProviderName' in kwargs: + service_provider_name = kwargs['serviceProviderName'] + if output_sdt is not None: - pulumi.set(__self__, "output_sdt", output_sdt) + _setter("output_sdt", output_sdt) if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if service_provider_name is not None: - pulumi.set(__self__, "service_provider_name", service_provider_name) + _setter("service_provider_name", service_provider_name) @property @pulumi.getter(name="outputSdt") @@ -6458,8 +8801,21 @@ def service_provider_name(self, value: Optional[pulumi.Input[str]]): class ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsArgs: def __init__(__self__, *, rep_interval: Optional[pulumi.Input[int]] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rep_interval=rep_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rep_interval: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) @property @pulumi.getter(name="repInterval") @@ -6475,6 +8831,13 @@ def rep_interval(self, value: Optional[pulumi.Input[int]]): class ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -6484,8 +8847,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name_modifier: String concatenated to the end of the destination filename. Required for multiple outputs of the same type. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsFrameCaptureOutputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name_modifier=name_modifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name_modifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_modifier is None and 'nameModifier' in kwargs: + name_modifier = kwargs['nameModifier'] + if name_modifier is not None: - pulumi.set(__self__, "name_modifier", name_modifier) + _setter("name_modifier", name_modifier) @property @pulumi.getter(name="nameModifier") @@ -6510,13 +8886,40 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name_modifier: String concatenated to the end of the destination filename. Required for multiple outputs of the same type. """ - pulumi.set(__self__, "hls_settings", hls_settings) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hls_settings=hls_settings, + h265_packaging_type=h265_packaging_type, + name_modifier=name_modifier, + segment_modifier=segment_modifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hls_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsArgs']] = None, + h265_packaging_type: Optional[pulumi.Input[str]] = None, + name_modifier: Optional[pulumi.Input[str]] = None, + segment_modifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hls_settings is None and 'hlsSettings' in kwargs: + hls_settings = kwargs['hlsSettings'] + if hls_settings is None: + raise TypeError("Missing 'hls_settings' argument") + if h265_packaging_type is None and 'h265PackagingType' in kwargs: + h265_packaging_type = kwargs['h265PackagingType'] + if name_modifier is None and 'nameModifier' in kwargs: + name_modifier = kwargs['nameModifier'] + if segment_modifier is None and 'segmentModifier' in kwargs: + segment_modifier = kwargs['segmentModifier'] + + _setter("hls_settings", hls_settings) if h265_packaging_type is not None: - pulumi.set(__self__, "h265_packaging_type", h265_packaging_type) + _setter("h265_packaging_type", h265_packaging_type) if name_modifier is not None: - pulumi.set(__self__, "name_modifier", name_modifier) + _setter("name_modifier", name_modifier) if segment_modifier is not None: - pulumi.set(__self__, "segment_modifier", segment_modifier) + _setter("segment_modifier", segment_modifier) @property @pulumi.getter(name="hlsSettings") @@ -6565,14 +8968,39 @@ def __init__(__self__, *, fmp4_hls_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettingsArgs']] = None, frame_capture_hls_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFrameCaptureHlsSettingsArgs']] = None, standard_hls_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsArgs']] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_only_hls_settings=audio_only_hls_settings, + fmp4_hls_settings=fmp4_hls_settings, + frame_capture_hls_settings=frame_capture_hls_settings, + standard_hls_settings=standard_hls_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_only_hls_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsArgs']] = None, + fmp4_hls_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettingsArgs']] = None, + frame_capture_hls_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFrameCaptureHlsSettingsArgs']] = None, + standard_hls_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_only_hls_settings is None and 'audioOnlyHlsSettings' in kwargs: + audio_only_hls_settings = kwargs['audioOnlyHlsSettings'] + if fmp4_hls_settings is None and 'fmp4HlsSettings' in kwargs: + fmp4_hls_settings = kwargs['fmp4HlsSettings'] + if frame_capture_hls_settings is None and 'frameCaptureHlsSettings' in kwargs: + frame_capture_hls_settings = kwargs['frameCaptureHlsSettings'] + if standard_hls_settings is None and 'standardHlsSettings' in kwargs: + standard_hls_settings = kwargs['standardHlsSettings'] + if audio_only_hls_settings is not None: - pulumi.set(__self__, "audio_only_hls_settings", audio_only_hls_settings) + _setter("audio_only_hls_settings", audio_only_hls_settings) if fmp4_hls_settings is not None: - pulumi.set(__self__, "fmp4_hls_settings", fmp4_hls_settings) + _setter("fmp4_hls_settings", fmp4_hls_settings) if frame_capture_hls_settings is not None: - pulumi.set(__self__, "frame_capture_hls_settings", frame_capture_hls_settings) + _setter("frame_capture_hls_settings", frame_capture_hls_settings) if standard_hls_settings is not None: - pulumi.set(__self__, "standard_hls_settings", standard_hls_settings) + _setter("standard_hls_settings", standard_hls_settings) @property @pulumi.getter(name="audioOnlyHlsSettings") @@ -6618,14 +9046,39 @@ def __init__(__self__, *, audio_only_image: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs']] = None, audio_track_type: Optional[pulumi.Input[str]] = None, segment_type: Optional[pulumi.Input[str]] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_group_id=audio_group_id, + audio_only_image=audio_only_image, + audio_track_type=audio_track_type, + segment_type=segment_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_group_id: Optional[pulumi.Input[str]] = None, + audio_only_image: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs']] = None, + audio_track_type: Optional[pulumi.Input[str]] = None, + segment_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_group_id is None and 'audioGroupId' in kwargs: + audio_group_id = kwargs['audioGroupId'] + if audio_only_image is None and 'audioOnlyImage' in kwargs: + audio_only_image = kwargs['audioOnlyImage'] + if audio_track_type is None and 'audioTrackType' in kwargs: + audio_track_type = kwargs['audioTrackType'] + if segment_type is None and 'segmentType' in kwargs: + segment_type = kwargs['segmentType'] + if audio_group_id is not None: - pulumi.set(__self__, "audio_group_id", audio_group_id) + _setter("audio_group_id", audio_group_id) if audio_only_image is not None: - pulumi.set(__self__, "audio_only_image", audio_only_image) + _setter("audio_only_image", audio_only_image) if audio_track_type is not None: - pulumi.set(__self__, "audio_track_type", audio_track_type) + _setter("audio_track_type", audio_track_type) if segment_type is not None: - pulumi.set(__self__, "segment_type", segment_type) + _setter("segment_type", segment_type) @property @pulumi.getter(name="audioGroupId") @@ -6673,13 +9126,32 @@ def __init__(__self__, *, """ :param pulumi.Input[str] uri: Path to a file accessible to the live stream. :param pulumi.Input[str] password_param: Key used to extract the password from EC2 Parameter store. - :param pulumi.Input[str] username: Username for destination. + :param pulumi.Input[str] username: . Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[pulumi.Input[str]] = None, + password_param: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -6709,7 +9181,7 @@ def password_param(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def username(self) -> Optional[pulumi.Input[str]]: """ - Username for destination. + . Username to be used. """ return pulumi.get(self, "username") @@ -6724,12 +9196,33 @@ def __init__(__self__, *, audio_rendition_sets: Optional[pulumi.Input[str]] = None, nielsen_id3_behavior: Optional[pulumi.Input[str]] = None, timed_metadata_behavior: Optional[pulumi.Input[str]] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_rendition_sets=audio_rendition_sets, + nielsen_id3_behavior=nielsen_id3_behavior, + timed_metadata_behavior=timed_metadata_behavior, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_rendition_sets: Optional[pulumi.Input[str]] = None, + nielsen_id3_behavior: Optional[pulumi.Input[str]] = None, + timed_metadata_behavior: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_rendition_sets is None and 'audioRenditionSets' in kwargs: + audio_rendition_sets = kwargs['audioRenditionSets'] + if nielsen_id3_behavior is None and 'nielsenId3Behavior' in kwargs: + nielsen_id3_behavior = kwargs['nielsenId3Behavior'] + if timed_metadata_behavior is None and 'timedMetadataBehavior' in kwargs: + timed_metadata_behavior = kwargs['timedMetadataBehavior'] + if audio_rendition_sets is not None: - pulumi.set(__self__, "audio_rendition_sets", audio_rendition_sets) + _setter("audio_rendition_sets", audio_rendition_sets) if nielsen_id3_behavior is not None: - pulumi.set(__self__, "nielsen_id3_behavior", nielsen_id3_behavior) + _setter("nielsen_id3_behavior", nielsen_id3_behavior) if timed_metadata_behavior is not None: - pulumi.set(__self__, "timed_metadata_behavior", timed_metadata_behavior) + _setter("timed_metadata_behavior", timed_metadata_behavior) @property @pulumi.getter(name="audioRenditionSets") @@ -6763,6 +9256,13 @@ def timed_metadata_behavior(self, value: Optional[pulumi.Input[str]]): class ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFrameCaptureHlsSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -6770,9 +9270,28 @@ class ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsS def __init__(__self__, *, m3u8_settings: pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsArgs'], audio_rendition_sets: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "m3u8_settings", m3u8_settings) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + m3u8_settings=m3u8_settings, + audio_rendition_sets=audio_rendition_sets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + m3u8_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsArgs']] = None, + audio_rendition_sets: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if m3u8_settings is None and 'm3u8Settings' in kwargs: + m3u8_settings = kwargs['m3u8Settings'] + if m3u8_settings is None: + raise TypeError("Missing 'm3u8_settings' argument") + if audio_rendition_sets is None and 'audioRenditionSets' in kwargs: + audio_rendition_sets = kwargs['audioRenditionSets'] + + _setter("m3u8_settings", m3u8_settings) if audio_rendition_sets is not None: - pulumi.set(__self__, "audio_rendition_sets", audio_rendition_sets) + _setter("audio_rendition_sets", audio_rendition_sets) @property @pulumi.getter(name="m3u8Settings") @@ -6816,40 +9335,117 @@ def __init__(__self__, *, """ :param pulumi.Input[str] scte35_pid: PID from which to read SCTE-35 messages. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_frames_per_pes=audio_frames_per_pes, + audio_pids=audio_pids, + ecm_pid=ecm_pid, + nielsen_id3_behavior=nielsen_id3_behavior, + pat_interval=pat_interval, + pcr_control=pcr_control, + pcr_period=pcr_period, + pcr_pid=pcr_pid, + pmt_interval=pmt_interval, + pmt_pid=pmt_pid, + program_num=program_num, + scte35_behavior=scte35_behavior, + scte35_pid=scte35_pid, + timed_metadata_behavior=timed_metadata_behavior, + timed_metadata_pid=timed_metadata_pid, + transport_stream_id=transport_stream_id, + video_pid=video_pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_frames_per_pes: Optional[pulumi.Input[int]] = None, + audio_pids: Optional[pulumi.Input[str]] = None, + ecm_pid: Optional[pulumi.Input[str]] = None, + nielsen_id3_behavior: Optional[pulumi.Input[str]] = None, + pat_interval: Optional[pulumi.Input[int]] = None, + pcr_control: Optional[pulumi.Input[str]] = None, + pcr_period: Optional[pulumi.Input[int]] = None, + pcr_pid: Optional[pulumi.Input[str]] = None, + pmt_interval: Optional[pulumi.Input[int]] = None, + pmt_pid: Optional[pulumi.Input[str]] = None, + program_num: Optional[pulumi.Input[int]] = None, + scte35_behavior: Optional[pulumi.Input[str]] = None, + scte35_pid: Optional[pulumi.Input[str]] = None, + timed_metadata_behavior: Optional[pulumi.Input[str]] = None, + timed_metadata_pid: Optional[pulumi.Input[str]] = None, + transport_stream_id: Optional[pulumi.Input[int]] = None, + video_pid: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_frames_per_pes is None and 'audioFramesPerPes' in kwargs: + audio_frames_per_pes = kwargs['audioFramesPerPes'] + if audio_pids is None and 'audioPids' in kwargs: + audio_pids = kwargs['audioPids'] + if ecm_pid is None and 'ecmPid' in kwargs: + ecm_pid = kwargs['ecmPid'] + if nielsen_id3_behavior is None and 'nielsenId3Behavior' in kwargs: + nielsen_id3_behavior = kwargs['nielsenId3Behavior'] + if pat_interval is None and 'patInterval' in kwargs: + pat_interval = kwargs['patInterval'] + if pcr_control is None and 'pcrControl' in kwargs: + pcr_control = kwargs['pcrControl'] + if pcr_period is None and 'pcrPeriod' in kwargs: + pcr_period = kwargs['pcrPeriod'] + if pcr_pid is None and 'pcrPid' in kwargs: + pcr_pid = kwargs['pcrPid'] + if pmt_interval is None and 'pmtInterval' in kwargs: + pmt_interval = kwargs['pmtInterval'] + if pmt_pid is None and 'pmtPid' in kwargs: + pmt_pid = kwargs['pmtPid'] + if program_num is None and 'programNum' in kwargs: + program_num = kwargs['programNum'] + if scte35_behavior is None and 'scte35Behavior' in kwargs: + scte35_behavior = kwargs['scte35Behavior'] + if scte35_pid is None and 'scte35Pid' in kwargs: + scte35_pid = kwargs['scte35Pid'] + if timed_metadata_behavior is None and 'timedMetadataBehavior' in kwargs: + timed_metadata_behavior = kwargs['timedMetadataBehavior'] + if timed_metadata_pid is None and 'timedMetadataPid' in kwargs: + timed_metadata_pid = kwargs['timedMetadataPid'] + if transport_stream_id is None and 'transportStreamId' in kwargs: + transport_stream_id = kwargs['transportStreamId'] + if video_pid is None and 'videoPid' in kwargs: + video_pid = kwargs['videoPid'] + if audio_frames_per_pes is not None: - pulumi.set(__self__, "audio_frames_per_pes", audio_frames_per_pes) + _setter("audio_frames_per_pes", audio_frames_per_pes) if audio_pids is not None: - pulumi.set(__self__, "audio_pids", audio_pids) + _setter("audio_pids", audio_pids) if ecm_pid is not None: - pulumi.set(__self__, "ecm_pid", ecm_pid) + _setter("ecm_pid", ecm_pid) if nielsen_id3_behavior is not None: - pulumi.set(__self__, "nielsen_id3_behavior", nielsen_id3_behavior) + _setter("nielsen_id3_behavior", nielsen_id3_behavior) if pat_interval is not None: - pulumi.set(__self__, "pat_interval", pat_interval) + _setter("pat_interval", pat_interval) if pcr_control is not None: - pulumi.set(__self__, "pcr_control", pcr_control) + _setter("pcr_control", pcr_control) if pcr_period is not None: - pulumi.set(__self__, "pcr_period", pcr_period) + _setter("pcr_period", pcr_period) if pcr_pid is not None: - pulumi.set(__self__, "pcr_pid", pcr_pid) + _setter("pcr_pid", pcr_pid) if pmt_interval is not None: - pulumi.set(__self__, "pmt_interval", pmt_interval) + _setter("pmt_interval", pmt_interval) if pmt_pid is not None: - pulumi.set(__self__, "pmt_pid", pmt_pid) + _setter("pmt_pid", pmt_pid) if program_num is not None: - pulumi.set(__self__, "program_num", program_num) + _setter("program_num", program_num) if scte35_behavior is not None: - pulumi.set(__self__, "scte35_behavior", scte35_behavior) + _setter("scte35_behavior", scte35_behavior) if scte35_pid is not None: - pulumi.set(__self__, "scte35_pid", scte35_pid) + _setter("scte35_pid", scte35_pid) if timed_metadata_behavior is not None: - pulumi.set(__self__, "timed_metadata_behavior", timed_metadata_behavior) + _setter("timed_metadata_behavior", timed_metadata_behavior) if timed_metadata_pid is not None: - pulumi.set(__self__, "timed_metadata_pid", timed_metadata_pid) + _setter("timed_metadata_pid", timed_metadata_pid) if transport_stream_id is not None: - pulumi.set(__self__, "transport_stream_id", transport_stream_id) + _setter("transport_stream_id", transport_stream_id) if video_pid is not None: - pulumi.set(__self__, "video_pid", video_pid) + _setter("video_pid", video_pid) @property @pulumi.getter(name="audioFramesPerPes") @@ -7012,6 +9608,13 @@ def video_pid(self, value: Optional[pulumi.Input[str]]): class ChannelEncoderSettingsOutputGroupOutputOutputSettingsMediaPackageOutputSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -7022,10 +9625,27 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name_modifier: String concatenated to the end of the destination filename. Required for multiple outputs of the same type. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsMsSmoothOutputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + h265_packaging_type=h265_packaging_type, + name_modifier=name_modifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + h265_packaging_type: Optional[pulumi.Input[str]] = None, + name_modifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if h265_packaging_type is None and 'h265PackagingType' in kwargs: + h265_packaging_type = kwargs['h265PackagingType'] + if name_modifier is None and 'nameModifier' in kwargs: + name_modifier = kwargs['nameModifier'] + if h265_packaging_type is not None: - pulumi.set(__self__, "h265_packaging_type", h265_packaging_type) + _setter("h265_packaging_type", h265_packaging_type) if name_modifier is not None: - pulumi.set(__self__, "name_modifier", name_modifier) + _setter("name_modifier", name_modifier) @property @pulumi.getter(name="h265PackagingType") @@ -7056,7 +9676,20 @@ def __init__(__self__, *, """ :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettingsDestinationArgs'] destination: Destination is a multiplex. See Destination for more details. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettingsDestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + + _setter("destination", destination) @property @pulumi.getter @@ -7078,7 +9711,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettingsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -7106,13 +9754,38 @@ def __init__(__self__, *, :param pulumi.Input[int] connection_retry_interval: Number of seconds to wait before retrying connection to the flash media server if the connection is lost. :param pulumi.Input[int] num_retries: Number of retry attempts. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + certificate_mode=certificate_mode, + connection_retry_interval=connection_retry_interval, + num_retries=num_retries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettingsDestinationArgs']] = None, + certificate_mode: Optional[pulumi.Input[str]] = None, + connection_retry_interval: Optional[pulumi.Input[int]] = None, + num_retries: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if certificate_mode is None and 'certificateMode' in kwargs: + certificate_mode = kwargs['certificateMode'] + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + + _setter("destination", destination) if certificate_mode is not None: - pulumi.set(__self__, "certificate_mode", certificate_mode) + _setter("certificate_mode", certificate_mode) if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) @property @pulumi.getter @@ -7170,7 +9843,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettingsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -7197,12 +9885,39 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsDestinationArgs'] destination: Destination address and port number for RTP or UDP packets. See Destination for more details. :param pulumi.Input[int] buffer_msec: UDP output buffering in milliseconds. """ - pulumi.set(__self__, "container_settings", container_settings) - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_settings=container_settings, + destination=destination, + buffer_msec=buffer_msec, + fec_output_settings=fec_output_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsArgs']] = None, + destination: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsDestinationArgs']] = None, + buffer_msec: Optional[pulumi.Input[int]] = None, + fec_output_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsFecOutputSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_settings is None and 'containerSettings' in kwargs: + container_settings = kwargs['containerSettings'] + if container_settings is None: + raise TypeError("Missing 'container_settings' argument") + if destination is None: + raise TypeError("Missing 'destination' argument") + if buffer_msec is None and 'bufferMsec' in kwargs: + buffer_msec = kwargs['bufferMsec'] + if fec_output_settings is None and 'fecOutputSettings' in kwargs: + fec_output_settings = kwargs['fecOutputSettings'] + + _setter("container_settings", container_settings) + _setter("destination", destination) if buffer_msec is not None: - pulumi.set(__self__, "buffer_msec", buffer_msec) + _setter("buffer_msec", buffer_msec) if fec_output_settings is not None: - pulumi.set(__self__, "fec_output_settings", fec_output_settings) + _setter("fec_output_settings", fec_output_settings) @property @pulumi.getter(name="containerSettings") @@ -7257,8 +9972,21 @@ def __init__(__self__, *, """ :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. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + m2ts_settings=m2ts_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + m2ts_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if m2ts_settings is None and 'm2tsSettings' in kwargs: + m2ts_settings = kwargs['m2tsSettings'] + if m2ts_settings is not None: - pulumi.set(__self__, "m2ts_settings", m2ts_settings) + _setter("m2ts_settings", m2ts_settings) @property @pulumi.getter(name="m2tsSettings") @@ -7327,100 +10055,289 @@ def __init__(__self__, *, :param pulumi.Input[int] bitrate: Average bitrate in bits/second. :param pulumi.Input[str] scte35_pid: PID from which to read SCTE-35 messages. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + absent_input_audio_behavior=absent_input_audio_behavior, + arib=arib, + arib_captions_pid=arib_captions_pid, + arib_captions_pid_control=arib_captions_pid_control, + audio_buffer_model=audio_buffer_model, + audio_frames_per_pes=audio_frames_per_pes, + audio_pids=audio_pids, + audio_stream_type=audio_stream_type, + bitrate=bitrate, + buffer_model=buffer_model, + cc_descriptor=cc_descriptor, + dvb_nit_settings=dvb_nit_settings, + dvb_sdt_settings=dvb_sdt_settings, + dvb_sub_pids=dvb_sub_pids, + dvb_tdt_settings=dvb_tdt_settings, + dvb_teletext_pid=dvb_teletext_pid, + ebif=ebif, + ebp_audio_interval=ebp_audio_interval, + ebp_lookahead_ms=ebp_lookahead_ms, + ebp_placement=ebp_placement, + ecm_pid=ecm_pid, + es_rate_in_pes=es_rate_in_pes, + etv_platform_pid=etv_platform_pid, + etv_signal_pid=etv_signal_pid, + fragment_time=fragment_time, + klv=klv, + klv_data_pids=klv_data_pids, + nielsen_id3_behavior=nielsen_id3_behavior, + null_packet_bitrate=null_packet_bitrate, + pat_interval=pat_interval, + pcr_control=pcr_control, + pcr_period=pcr_period, + pcr_pid=pcr_pid, + pmt_interval=pmt_interval, + pmt_pid=pmt_pid, + program_num=program_num, + rate_mode=rate_mode, + scte27_pids=scte27_pids, + scte35_control=scte35_control, + scte35_pid=scte35_pid, + segmentation_markers=segmentation_markers, + segmentation_style=segmentation_style, + segmentation_time=segmentation_time, + timed_metadata_behavior=timed_metadata_behavior, + timed_metadata_pid=timed_metadata_pid, + transport_stream_id=transport_stream_id, + video_pid=video_pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + absent_input_audio_behavior: Optional[pulumi.Input[str]] = None, + arib: Optional[pulumi.Input[str]] = None, + arib_captions_pid: Optional[pulumi.Input[str]] = None, + arib_captions_pid_control: Optional[pulumi.Input[str]] = None, + audio_buffer_model: Optional[pulumi.Input[str]] = None, + audio_frames_per_pes: Optional[pulumi.Input[int]] = None, + audio_pids: Optional[pulumi.Input[str]] = None, + audio_stream_type: Optional[pulumi.Input[str]] = None, + bitrate: Optional[pulumi.Input[int]] = None, + buffer_model: Optional[pulumi.Input[str]] = None, + cc_descriptor: Optional[pulumi.Input[str]] = None, + dvb_nit_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsArgs']] = None, + dvb_sdt_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsArgs']] = None, + dvb_sub_pids: Optional[pulumi.Input[str]] = None, + dvb_tdt_settings: Optional[pulumi.Input['ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsArgs']] = None, + dvb_teletext_pid: Optional[pulumi.Input[str]] = None, + ebif: Optional[pulumi.Input[str]] = None, + ebp_audio_interval: Optional[pulumi.Input[str]] = None, + ebp_lookahead_ms: Optional[pulumi.Input[int]] = None, + ebp_placement: Optional[pulumi.Input[str]] = None, + ecm_pid: Optional[pulumi.Input[str]] = None, + es_rate_in_pes: Optional[pulumi.Input[str]] = None, + etv_platform_pid: Optional[pulumi.Input[str]] = None, + etv_signal_pid: Optional[pulumi.Input[str]] = None, + fragment_time: Optional[pulumi.Input[float]] = None, + klv: Optional[pulumi.Input[str]] = None, + klv_data_pids: Optional[pulumi.Input[str]] = None, + nielsen_id3_behavior: Optional[pulumi.Input[str]] = None, + null_packet_bitrate: Optional[pulumi.Input[float]] = None, + pat_interval: Optional[pulumi.Input[int]] = None, + pcr_control: Optional[pulumi.Input[str]] = None, + pcr_period: Optional[pulumi.Input[int]] = None, + pcr_pid: Optional[pulumi.Input[str]] = None, + pmt_interval: Optional[pulumi.Input[int]] = None, + pmt_pid: Optional[pulumi.Input[str]] = None, + program_num: Optional[pulumi.Input[int]] = None, + rate_mode: Optional[pulumi.Input[str]] = None, + scte27_pids: Optional[pulumi.Input[str]] = None, + scte35_control: Optional[pulumi.Input[str]] = None, + scte35_pid: Optional[pulumi.Input[str]] = None, + segmentation_markers: Optional[pulumi.Input[str]] = None, + segmentation_style: Optional[pulumi.Input[str]] = None, + segmentation_time: Optional[pulumi.Input[float]] = None, + timed_metadata_behavior: Optional[pulumi.Input[str]] = None, + timed_metadata_pid: Optional[pulumi.Input[str]] = None, + transport_stream_id: Optional[pulumi.Input[int]] = None, + video_pid: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if absent_input_audio_behavior is None and 'absentInputAudioBehavior' in kwargs: + absent_input_audio_behavior = kwargs['absentInputAudioBehavior'] + if arib_captions_pid is None and 'aribCaptionsPid' in kwargs: + arib_captions_pid = kwargs['aribCaptionsPid'] + if arib_captions_pid_control is None and 'aribCaptionsPidControl' in kwargs: + arib_captions_pid_control = kwargs['aribCaptionsPidControl'] + if audio_buffer_model is None and 'audioBufferModel' in kwargs: + audio_buffer_model = kwargs['audioBufferModel'] + if audio_frames_per_pes is None and 'audioFramesPerPes' in kwargs: + audio_frames_per_pes = kwargs['audioFramesPerPes'] + if audio_pids is None and 'audioPids' in kwargs: + audio_pids = kwargs['audioPids'] + if audio_stream_type is None and 'audioStreamType' in kwargs: + audio_stream_type = kwargs['audioStreamType'] + if buffer_model is None and 'bufferModel' in kwargs: + buffer_model = kwargs['bufferModel'] + if cc_descriptor is None and 'ccDescriptor' in kwargs: + cc_descriptor = kwargs['ccDescriptor'] + if dvb_nit_settings is None and 'dvbNitSettings' in kwargs: + dvb_nit_settings = kwargs['dvbNitSettings'] + if dvb_sdt_settings is None and 'dvbSdtSettings' in kwargs: + dvb_sdt_settings = kwargs['dvbSdtSettings'] + if dvb_sub_pids is None and 'dvbSubPids' in kwargs: + dvb_sub_pids = kwargs['dvbSubPids'] + if dvb_tdt_settings is None and 'dvbTdtSettings' in kwargs: + dvb_tdt_settings = kwargs['dvbTdtSettings'] + if dvb_teletext_pid is None and 'dvbTeletextPid' in kwargs: + dvb_teletext_pid = kwargs['dvbTeletextPid'] + if ebp_audio_interval is None and 'ebpAudioInterval' in kwargs: + ebp_audio_interval = kwargs['ebpAudioInterval'] + if ebp_lookahead_ms is None and 'ebpLookaheadMs' in kwargs: + ebp_lookahead_ms = kwargs['ebpLookaheadMs'] + if ebp_placement is None and 'ebpPlacement' in kwargs: + ebp_placement = kwargs['ebpPlacement'] + if ecm_pid is None and 'ecmPid' in kwargs: + ecm_pid = kwargs['ecmPid'] + if es_rate_in_pes is None and 'esRateInPes' in kwargs: + es_rate_in_pes = kwargs['esRateInPes'] + if etv_platform_pid is None and 'etvPlatformPid' in kwargs: + etv_platform_pid = kwargs['etvPlatformPid'] + if etv_signal_pid is None and 'etvSignalPid' in kwargs: + etv_signal_pid = kwargs['etvSignalPid'] + if fragment_time is None and 'fragmentTime' in kwargs: + fragment_time = kwargs['fragmentTime'] + if klv_data_pids is None and 'klvDataPids' in kwargs: + klv_data_pids = kwargs['klvDataPids'] + if nielsen_id3_behavior is None and 'nielsenId3Behavior' in kwargs: + nielsen_id3_behavior = kwargs['nielsenId3Behavior'] + if null_packet_bitrate is None and 'nullPacketBitrate' in kwargs: + null_packet_bitrate = kwargs['nullPacketBitrate'] + if pat_interval is None and 'patInterval' in kwargs: + pat_interval = kwargs['patInterval'] + if pcr_control is None and 'pcrControl' in kwargs: + pcr_control = kwargs['pcrControl'] + if pcr_period is None and 'pcrPeriod' in kwargs: + pcr_period = kwargs['pcrPeriod'] + if pcr_pid is None and 'pcrPid' in kwargs: + pcr_pid = kwargs['pcrPid'] + if pmt_interval is None and 'pmtInterval' in kwargs: + pmt_interval = kwargs['pmtInterval'] + if pmt_pid is None and 'pmtPid' in kwargs: + pmt_pid = kwargs['pmtPid'] + if program_num is None and 'programNum' in kwargs: + program_num = kwargs['programNum'] + if rate_mode is None and 'rateMode' in kwargs: + rate_mode = kwargs['rateMode'] + if scte27_pids is None and 'scte27Pids' in kwargs: + scte27_pids = kwargs['scte27Pids'] + if scte35_control is None and 'scte35Control' in kwargs: + scte35_control = kwargs['scte35Control'] + if scte35_pid is None and 'scte35Pid' in kwargs: + scte35_pid = kwargs['scte35Pid'] + if segmentation_markers is None and 'segmentationMarkers' in kwargs: + segmentation_markers = kwargs['segmentationMarkers'] + if segmentation_style is None and 'segmentationStyle' in kwargs: + segmentation_style = kwargs['segmentationStyle'] + if segmentation_time is None and 'segmentationTime' in kwargs: + segmentation_time = kwargs['segmentationTime'] + if timed_metadata_behavior is None and 'timedMetadataBehavior' in kwargs: + timed_metadata_behavior = kwargs['timedMetadataBehavior'] + if timed_metadata_pid is None and 'timedMetadataPid' in kwargs: + timed_metadata_pid = kwargs['timedMetadataPid'] + if transport_stream_id is None and 'transportStreamId' in kwargs: + transport_stream_id = kwargs['transportStreamId'] + if video_pid is None and 'videoPid' in kwargs: + video_pid = kwargs['videoPid'] + if absent_input_audio_behavior is not None: - pulumi.set(__self__, "absent_input_audio_behavior", absent_input_audio_behavior) + _setter("absent_input_audio_behavior", absent_input_audio_behavior) if arib is not None: - pulumi.set(__self__, "arib", arib) + _setter("arib", arib) if arib_captions_pid is not None: - pulumi.set(__self__, "arib_captions_pid", arib_captions_pid) + _setter("arib_captions_pid", arib_captions_pid) if arib_captions_pid_control is not None: - pulumi.set(__self__, "arib_captions_pid_control", arib_captions_pid_control) + _setter("arib_captions_pid_control", arib_captions_pid_control) if audio_buffer_model is not None: - pulumi.set(__self__, "audio_buffer_model", audio_buffer_model) + _setter("audio_buffer_model", audio_buffer_model) if audio_frames_per_pes is not None: - pulumi.set(__self__, "audio_frames_per_pes", audio_frames_per_pes) + _setter("audio_frames_per_pes", audio_frames_per_pes) if audio_pids is not None: - pulumi.set(__self__, "audio_pids", audio_pids) + _setter("audio_pids", audio_pids) if audio_stream_type is not None: - pulumi.set(__self__, "audio_stream_type", audio_stream_type) + _setter("audio_stream_type", audio_stream_type) if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if buffer_model is not None: - pulumi.set(__self__, "buffer_model", buffer_model) + _setter("buffer_model", buffer_model) if cc_descriptor is not None: - pulumi.set(__self__, "cc_descriptor", cc_descriptor) + _setter("cc_descriptor", cc_descriptor) if dvb_nit_settings is not None: - pulumi.set(__self__, "dvb_nit_settings", dvb_nit_settings) + _setter("dvb_nit_settings", dvb_nit_settings) if dvb_sdt_settings is not None: - pulumi.set(__self__, "dvb_sdt_settings", dvb_sdt_settings) + _setter("dvb_sdt_settings", dvb_sdt_settings) if dvb_sub_pids is not None: - pulumi.set(__self__, "dvb_sub_pids", dvb_sub_pids) + _setter("dvb_sub_pids", dvb_sub_pids) if dvb_tdt_settings is not None: - pulumi.set(__self__, "dvb_tdt_settings", dvb_tdt_settings) + _setter("dvb_tdt_settings", dvb_tdt_settings) if dvb_teletext_pid is not None: - pulumi.set(__self__, "dvb_teletext_pid", dvb_teletext_pid) + _setter("dvb_teletext_pid", dvb_teletext_pid) if ebif is not None: - pulumi.set(__self__, "ebif", ebif) + _setter("ebif", ebif) if ebp_audio_interval is not None: - pulumi.set(__self__, "ebp_audio_interval", ebp_audio_interval) + _setter("ebp_audio_interval", ebp_audio_interval) if ebp_lookahead_ms is not None: - pulumi.set(__self__, "ebp_lookahead_ms", ebp_lookahead_ms) + _setter("ebp_lookahead_ms", ebp_lookahead_ms) if ebp_placement is not None: - pulumi.set(__self__, "ebp_placement", ebp_placement) + _setter("ebp_placement", ebp_placement) if ecm_pid is not None: - pulumi.set(__self__, "ecm_pid", ecm_pid) + _setter("ecm_pid", ecm_pid) if es_rate_in_pes is not None: - pulumi.set(__self__, "es_rate_in_pes", es_rate_in_pes) + _setter("es_rate_in_pes", es_rate_in_pes) if etv_platform_pid is not None: - pulumi.set(__self__, "etv_platform_pid", etv_platform_pid) + _setter("etv_platform_pid", etv_platform_pid) if etv_signal_pid is not None: - pulumi.set(__self__, "etv_signal_pid", etv_signal_pid) + _setter("etv_signal_pid", etv_signal_pid) if fragment_time is not None: - pulumi.set(__self__, "fragment_time", fragment_time) + _setter("fragment_time", fragment_time) if klv is not None: - pulumi.set(__self__, "klv", klv) + _setter("klv", klv) if klv_data_pids is not None: - pulumi.set(__self__, "klv_data_pids", klv_data_pids) + _setter("klv_data_pids", klv_data_pids) if nielsen_id3_behavior is not None: - pulumi.set(__self__, "nielsen_id3_behavior", nielsen_id3_behavior) + _setter("nielsen_id3_behavior", nielsen_id3_behavior) if null_packet_bitrate is not None: - pulumi.set(__self__, "null_packet_bitrate", null_packet_bitrate) + _setter("null_packet_bitrate", null_packet_bitrate) if pat_interval is not None: - pulumi.set(__self__, "pat_interval", pat_interval) + _setter("pat_interval", pat_interval) if pcr_control is not None: - pulumi.set(__self__, "pcr_control", pcr_control) + _setter("pcr_control", pcr_control) if pcr_period is not None: - pulumi.set(__self__, "pcr_period", pcr_period) + _setter("pcr_period", pcr_period) if pcr_pid is not None: - pulumi.set(__self__, "pcr_pid", pcr_pid) + _setter("pcr_pid", pcr_pid) if pmt_interval is not None: - pulumi.set(__self__, "pmt_interval", pmt_interval) + _setter("pmt_interval", pmt_interval) if pmt_pid is not None: - pulumi.set(__self__, "pmt_pid", pmt_pid) + _setter("pmt_pid", pmt_pid) if program_num is not None: - pulumi.set(__self__, "program_num", program_num) + _setter("program_num", program_num) if rate_mode is not None: - pulumi.set(__self__, "rate_mode", rate_mode) + _setter("rate_mode", rate_mode) if scte27_pids is not None: - pulumi.set(__self__, "scte27_pids", scte27_pids) + _setter("scte27_pids", scte27_pids) if scte35_control is not None: - pulumi.set(__self__, "scte35_control", scte35_control) + _setter("scte35_control", scte35_control) if scte35_pid is not None: - pulumi.set(__self__, "scte35_pid", scte35_pid) + _setter("scte35_pid", scte35_pid) if segmentation_markers is not None: - pulumi.set(__self__, "segmentation_markers", segmentation_markers) + _setter("segmentation_markers", segmentation_markers) if segmentation_style is not None: - pulumi.set(__self__, "segmentation_style", segmentation_style) + _setter("segmentation_style", segmentation_style) if segmentation_time is not None: - pulumi.set(__self__, "segmentation_time", segmentation_time) + _setter("segmentation_time", segmentation_time) if timed_metadata_behavior is not None: - pulumi.set(__self__, "timed_metadata_behavior", timed_metadata_behavior) + _setter("timed_metadata_behavior", timed_metadata_behavior) if timed_metadata_pid is not None: - pulumi.set(__self__, "timed_metadata_pid", timed_metadata_pid) + _setter("timed_metadata_pid", timed_metadata_pid) if transport_stream_id is not None: - pulumi.set(__self__, "transport_stream_id", transport_stream_id) + _setter("transport_stream_id", transport_stream_id) if video_pid is not None: - pulumi.set(__self__, "video_pid", video_pid) + _setter("video_pid", video_pid) @property @pulumi.getter(name="absentInputAudioBehavior") @@ -7858,10 +10775,35 @@ def __init__(__self__, *, network_id: pulumi.Input[int], network_name: pulumi.Input[str], rep_interval: Optional[pulumi.Input[int]] = None): - pulumi.set(__self__, "network_id", network_id) - pulumi.set(__self__, "network_name", network_name) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_id=network_id, + network_name=network_name, + rep_interval=rep_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_id: Optional[pulumi.Input[int]] = None, + network_name: Optional[pulumi.Input[str]] = None, + rep_interval: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_id is None and 'networkId' in kwargs: + network_id = kwargs['networkId'] + if network_id is None: + raise TypeError("Missing 'network_id' argument") + if network_name is None and 'networkName' in kwargs: + network_name = kwargs['networkName'] + if network_name is None: + raise TypeError("Missing 'network_name' argument") + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + + _setter("network_id", network_id) + _setter("network_name", network_name) if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) @property @pulumi.getter(name="networkId") @@ -7898,14 +10840,39 @@ def __init__(__self__, *, rep_interval: Optional[pulumi.Input[int]] = None, service_name: Optional[pulumi.Input[str]] = None, service_provider_name: Optional[pulumi.Input[str]] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_sdt=output_sdt, + rep_interval=rep_interval, + service_name=service_name, + service_provider_name=service_provider_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_sdt: Optional[pulumi.Input[str]] = None, + rep_interval: Optional[pulumi.Input[int]] = None, + service_name: Optional[pulumi.Input[str]] = None, + service_provider_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_sdt is None and 'outputSdt' in kwargs: + output_sdt = kwargs['outputSdt'] + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_provider_name is None and 'serviceProviderName' in kwargs: + service_provider_name = kwargs['serviceProviderName'] + if output_sdt is not None: - pulumi.set(__self__, "output_sdt", output_sdt) + _setter("output_sdt", output_sdt) if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if service_provider_name is not None: - pulumi.set(__self__, "service_provider_name", service_provider_name) + _setter("service_provider_name", service_provider_name) @property @pulumi.getter(name="outputSdt") @@ -7948,8 +10915,21 @@ def service_provider_name(self, value: Optional[pulumi.Input[str]]): class ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsArgs: def __init__(__self__, *, rep_interval: Optional[pulumi.Input[int]] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rep_interval=rep_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rep_interval: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) @property @pulumi.getter(name="repInterval") @@ -7968,7 +10948,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -7994,12 +10989,33 @@ def __init__(__self__, *, :param pulumi.Input[str] include_fec: Enables column only or column and row based FEC. :param pulumi.Input[int] row_length: The width of the FEC protection matrix. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsFecOutputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_depth=column_depth, + include_fec=include_fec, + row_length=row_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_depth: Optional[pulumi.Input[int]] = None, + include_fec: Optional[pulumi.Input[str]] = None, + row_length: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_depth is None and 'columnDepth' in kwargs: + column_depth = kwargs['columnDepth'] + if include_fec is None and 'includeFec' in kwargs: + include_fec = kwargs['includeFec'] + if row_length is None and 'rowLength' in kwargs: + row_length = kwargs['rowLength'] + if column_depth is not None: - pulumi.set(__self__, "column_depth", column_depth) + _setter("column_depth", column_depth) if include_fec is not None: - pulumi.set(__self__, "include_fec", include_fec) + _setter("include_fec", include_fec) if row_length is not None: - pulumi.set(__self__, "row_length", row_length) + _setter("row_length", row_length) @property @pulumi.getter(name="columnDepth") @@ -8047,9 +11063,26 @@ def __init__(__self__, *, :param pulumi.Input[str] source: The source for the timecode that will be associated with the events outputs. :param pulumi.Input[int] sync_threshold: Threshold in frames beyond which output timecode is resynchronized to the input timecode. """ - pulumi.set(__self__, "source", source) + ChannelEncoderSettingsTimecodeConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + sync_threshold=sync_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[pulumi.Input[str]] = None, + sync_threshold: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + if sync_threshold is None and 'syncThreshold' in kwargs: + sync_threshold = kwargs['syncThreshold'] + + _setter("source", source) if sync_threshold is not None: - pulumi.set(__self__, "sync_threshold", sync_threshold) + _setter("sync_threshold", sync_threshold) @property @pulumi.getter @@ -8095,19 +11128,50 @@ def __init__(__self__, *, :param pulumi.Input[int] sharpness: Changes the strength of the anti-alias filter used for scaling. :param pulumi.Input[int] width: Output video width in pixels. """ - pulumi.set(__self__, "name", name) + ChannelEncoderSettingsVideoDescriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + codec_settings=codec_settings, + height=height, + respond_to_afd=respond_to_afd, + scaling_behavior=scaling_behavior, + sharpness=sharpness, + width=width, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + codec_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsArgs']] = None, + height: Optional[pulumi.Input[int]] = None, + respond_to_afd: Optional[pulumi.Input[str]] = None, + scaling_behavior: Optional[pulumi.Input[str]] = None, + sharpness: Optional[pulumi.Input[int]] = None, + width: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if codec_settings is None and 'codecSettings' in kwargs: + codec_settings = kwargs['codecSettings'] + if respond_to_afd is None and 'respondToAfd' in kwargs: + respond_to_afd = kwargs['respondToAfd'] + if scaling_behavior is None and 'scalingBehavior' in kwargs: + scaling_behavior = kwargs['scalingBehavior'] + + _setter("name", name) if codec_settings is not None: - pulumi.set(__self__, "codec_settings", codec_settings) + _setter("codec_settings", codec_settings) if height is not None: - pulumi.set(__self__, "height", height) + _setter("height", height) if respond_to_afd is not None: - pulumi.set(__self__, "respond_to_afd", respond_to_afd) + _setter("respond_to_afd", respond_to_afd) if scaling_behavior is not None: - pulumi.set(__self__, "scaling_behavior", scaling_behavior) + _setter("scaling_behavior", scaling_behavior) if sharpness is not None: - pulumi.set(__self__, "sharpness", sharpness) + _setter("sharpness", sharpness) if width is not None: - pulumi.set(__self__, "width", width) + _setter("width", width) @property @pulumi.getter @@ -8204,12 +11268,33 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsFrameCaptureSettingsArgs'] frame_capture_settings: Frame capture settings. See Frame Capture Settings for more details. :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs'] h264_settings: H264 settings. See H264 Settings for more details. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + frame_capture_settings=frame_capture_settings, + h264_settings=h264_settings, + h265_settings=h265_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frame_capture_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsFrameCaptureSettingsArgs']] = None, + h264_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs']] = None, + h265_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frame_capture_settings is None and 'frameCaptureSettings' in kwargs: + frame_capture_settings = kwargs['frameCaptureSettings'] + if h264_settings is None and 'h264Settings' in kwargs: + h264_settings = kwargs['h264Settings'] + if h265_settings is None and 'h265Settings' in kwargs: + h265_settings = kwargs['h265Settings'] + if frame_capture_settings is not None: - pulumi.set(__self__, "frame_capture_settings", frame_capture_settings) + _setter("frame_capture_settings", frame_capture_settings) if h264_settings is not None: - pulumi.set(__self__, "h264_settings", h264_settings) + _setter("h264_settings", h264_settings) if h265_settings is not None: - pulumi.set(__self__, "h265_settings", h265_settings) + _setter("h265_settings", h265_settings) @property @pulumi.getter(name="frameCaptureSettings") @@ -8254,10 +11339,27 @@ def __init__(__self__, *, :param pulumi.Input[int] capture_interval: The frequency at which to capture frames for inclusion in the output. :param pulumi.Input[str] capture_interval_units: Unit for the frame capture interval. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsFrameCaptureSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capture_interval=capture_interval, + capture_interval_units=capture_interval_units, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capture_interval: Optional[pulumi.Input[int]] = None, + capture_interval_units: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capture_interval is None and 'captureInterval' in kwargs: + capture_interval = kwargs['captureInterval'] + if capture_interval_units is None and 'captureIntervalUnits' in kwargs: + capture_interval_units = kwargs['captureIntervalUnits'] + if capture_interval is not None: - pulumi.set(__self__, "capture_interval", capture_interval) + _setter("capture_interval", capture_interval) if capture_interval_units is not None: - pulumi.set(__self__, "capture_interval_units", capture_interval_units) + _setter("capture_interval_units", capture_interval_units) @property @pulumi.getter(name="captureInterval") @@ -8334,7 +11436,7 @@ def __init__(__self__, *, :param pulumi.Input[int] buf_size: Size of buffer in bits. :param pulumi.Input[str] color_metadata: Includes color space metadata in the output. :param pulumi.Input[str] entropy_encoding: Entropy encoding mode. - :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsArgs'] filter_settings: Filters to apply to an encode. See H264 Filter Settings for more details. + :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsArgs'] filter_settings: Filters to apply to an encode. See H265 Filter Settings for more details. :param pulumi.Input[str] fixed_afd: Four bit AFD value to write on all frames of video in the output stream. :param pulumi.Input[str] force_field_pictures: Controls whether coding is performed on a field basis or on a frame basis. :param pulumi.Input[str] framerate_control: Indicates how the output video frame rate is specified. @@ -8345,7 +11447,7 @@ def __init__(__self__, *, :param pulumi.Input[int] gop_num_b_frames: Number of B-frames between reference frames. :param pulumi.Input[float] gop_size: GOP size in units of either frames of seconds per `gop_size_units`. :param pulumi.Input[str] gop_size_units: Indicates if the `gop_size` is specified in frames or seconds. - :param pulumi.Input[str] level: H264 level. + :param pulumi.Input[str] level: H265 level. :param pulumi.Input[str] look_ahead_rate_control: Amount of lookahead. :param pulumi.Input[int] max_bitrate: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video. :param pulumi.Input[int] num_ref_frames: Number of reference frames to use. @@ -8366,86 +11468,243 @@ def __init__(__self__, *, :param pulumi.Input[str] temporal_aq: Makes adjustments within each frame based on temporal variation of content complexity. :param pulumi.Input[str] timecode_insertion: Determines how timecodes should be inserted into the video elementary stream. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + adaptive_quantization=adaptive_quantization, + afd_signaling=afd_signaling, + bitrate=bitrate, + buf_fill_pct=buf_fill_pct, + buf_size=buf_size, + color_metadata=color_metadata, + entropy_encoding=entropy_encoding, + filter_settings=filter_settings, + fixed_afd=fixed_afd, + flicker_aq=flicker_aq, + force_field_pictures=force_field_pictures, + framerate_control=framerate_control, + framerate_denominator=framerate_denominator, + framerate_numerator=framerate_numerator, + gop_b_reference=gop_b_reference, + gop_closed_cadence=gop_closed_cadence, + gop_num_b_frames=gop_num_b_frames, + gop_size=gop_size, + gop_size_units=gop_size_units, + level=level, + look_ahead_rate_control=look_ahead_rate_control, + max_bitrate=max_bitrate, + min_i_interval=min_i_interval, + num_ref_frames=num_ref_frames, + par_control=par_control, + par_denominator=par_denominator, + par_numerator=par_numerator, + profile=profile, + quality_level=quality_level, + qvbr_quality_level=qvbr_quality_level, + rate_control_mode=rate_control_mode, + scan_type=scan_type, + scene_change_detect=scene_change_detect, + slices=slices, + softness=softness, + spatial_aq=spatial_aq, + subgop_length=subgop_length, + syntax=syntax, + temporal_aq=temporal_aq, + timecode_insertion=timecode_insertion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + adaptive_quantization: Optional[pulumi.Input[str]] = None, + afd_signaling: Optional[pulumi.Input[str]] = None, + bitrate: Optional[pulumi.Input[int]] = None, + buf_fill_pct: Optional[pulumi.Input[int]] = None, + buf_size: Optional[pulumi.Input[int]] = None, + color_metadata: Optional[pulumi.Input[str]] = None, + entropy_encoding: Optional[pulumi.Input[str]] = None, + filter_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsArgs']] = None, + fixed_afd: Optional[pulumi.Input[str]] = None, + flicker_aq: Optional[pulumi.Input[str]] = None, + force_field_pictures: Optional[pulumi.Input[str]] = None, + framerate_control: Optional[pulumi.Input[str]] = None, + framerate_denominator: Optional[pulumi.Input[int]] = None, + framerate_numerator: Optional[pulumi.Input[int]] = None, + gop_b_reference: Optional[pulumi.Input[str]] = None, + gop_closed_cadence: Optional[pulumi.Input[int]] = None, + gop_num_b_frames: Optional[pulumi.Input[int]] = None, + gop_size: Optional[pulumi.Input[float]] = None, + gop_size_units: Optional[pulumi.Input[str]] = None, + level: Optional[pulumi.Input[str]] = None, + look_ahead_rate_control: Optional[pulumi.Input[str]] = None, + max_bitrate: Optional[pulumi.Input[int]] = None, + min_i_interval: Optional[pulumi.Input[int]] = None, + num_ref_frames: Optional[pulumi.Input[int]] = None, + par_control: Optional[pulumi.Input[str]] = None, + par_denominator: Optional[pulumi.Input[int]] = None, + par_numerator: Optional[pulumi.Input[int]] = None, + profile: Optional[pulumi.Input[str]] = None, + quality_level: Optional[pulumi.Input[str]] = None, + qvbr_quality_level: Optional[pulumi.Input[int]] = None, + rate_control_mode: Optional[pulumi.Input[str]] = None, + scan_type: Optional[pulumi.Input[str]] = None, + scene_change_detect: Optional[pulumi.Input[str]] = None, + slices: Optional[pulumi.Input[int]] = None, + softness: Optional[pulumi.Input[int]] = None, + spatial_aq: Optional[pulumi.Input[str]] = None, + subgop_length: Optional[pulumi.Input[str]] = None, + syntax: Optional[pulumi.Input[str]] = None, + temporal_aq: Optional[pulumi.Input[str]] = None, + timecode_insertion: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if adaptive_quantization is None and 'adaptiveQuantization' in kwargs: + adaptive_quantization = kwargs['adaptiveQuantization'] + if afd_signaling is None and 'afdSignaling' in kwargs: + afd_signaling = kwargs['afdSignaling'] + if buf_fill_pct is None and 'bufFillPct' in kwargs: + buf_fill_pct = kwargs['bufFillPct'] + if buf_size is None and 'bufSize' in kwargs: + buf_size = kwargs['bufSize'] + if color_metadata is None and 'colorMetadata' in kwargs: + color_metadata = kwargs['colorMetadata'] + if entropy_encoding is None and 'entropyEncoding' in kwargs: + entropy_encoding = kwargs['entropyEncoding'] + if filter_settings is None and 'filterSettings' in kwargs: + filter_settings = kwargs['filterSettings'] + if fixed_afd is None and 'fixedAfd' in kwargs: + fixed_afd = kwargs['fixedAfd'] + if flicker_aq is None and 'flickerAq' in kwargs: + flicker_aq = kwargs['flickerAq'] + if force_field_pictures is None and 'forceFieldPictures' in kwargs: + force_field_pictures = kwargs['forceFieldPictures'] + if framerate_control is None and 'framerateControl' in kwargs: + framerate_control = kwargs['framerateControl'] + if framerate_denominator is None and 'framerateDenominator' in kwargs: + framerate_denominator = kwargs['framerateDenominator'] + if framerate_numerator is None and 'framerateNumerator' in kwargs: + framerate_numerator = kwargs['framerateNumerator'] + if gop_b_reference is None and 'gopBReference' in kwargs: + gop_b_reference = kwargs['gopBReference'] + if gop_closed_cadence is None and 'gopClosedCadence' in kwargs: + gop_closed_cadence = kwargs['gopClosedCadence'] + if gop_num_b_frames is None and 'gopNumBFrames' in kwargs: + gop_num_b_frames = kwargs['gopNumBFrames'] + if gop_size is None and 'gopSize' in kwargs: + gop_size = kwargs['gopSize'] + if gop_size_units is None and 'gopSizeUnits' in kwargs: + gop_size_units = kwargs['gopSizeUnits'] + if look_ahead_rate_control is None and 'lookAheadRateControl' in kwargs: + look_ahead_rate_control = kwargs['lookAheadRateControl'] + if max_bitrate is None and 'maxBitrate' in kwargs: + max_bitrate = kwargs['maxBitrate'] + if min_i_interval is None and 'minIInterval' in kwargs: + min_i_interval = kwargs['minIInterval'] + if num_ref_frames is None and 'numRefFrames' in kwargs: + num_ref_frames = kwargs['numRefFrames'] + if par_control is None and 'parControl' in kwargs: + par_control = kwargs['parControl'] + if par_denominator is None and 'parDenominator' in kwargs: + par_denominator = kwargs['parDenominator'] + if par_numerator is None and 'parNumerator' in kwargs: + par_numerator = kwargs['parNumerator'] + if quality_level is None and 'qualityLevel' in kwargs: + quality_level = kwargs['qualityLevel'] + if qvbr_quality_level is None and 'qvbrQualityLevel' in kwargs: + qvbr_quality_level = kwargs['qvbrQualityLevel'] + if rate_control_mode is None and 'rateControlMode' in kwargs: + rate_control_mode = kwargs['rateControlMode'] + if scan_type is None and 'scanType' in kwargs: + scan_type = kwargs['scanType'] + if scene_change_detect is None and 'sceneChangeDetect' in kwargs: + scene_change_detect = kwargs['sceneChangeDetect'] + if spatial_aq is None and 'spatialAq' in kwargs: + spatial_aq = kwargs['spatialAq'] + if subgop_length is None and 'subgopLength' in kwargs: + subgop_length = kwargs['subgopLength'] + if temporal_aq is None and 'temporalAq' in kwargs: + temporal_aq = kwargs['temporalAq'] + if timecode_insertion is None and 'timecodeInsertion' in kwargs: + timecode_insertion = kwargs['timecodeInsertion'] + if adaptive_quantization is not None: - pulumi.set(__self__, "adaptive_quantization", adaptive_quantization) + _setter("adaptive_quantization", adaptive_quantization) if afd_signaling is not None: - pulumi.set(__self__, "afd_signaling", afd_signaling) + _setter("afd_signaling", afd_signaling) if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if buf_fill_pct is not None: - pulumi.set(__self__, "buf_fill_pct", buf_fill_pct) + _setter("buf_fill_pct", buf_fill_pct) if buf_size is not None: - pulumi.set(__self__, "buf_size", buf_size) + _setter("buf_size", buf_size) if color_metadata is not None: - pulumi.set(__self__, "color_metadata", color_metadata) + _setter("color_metadata", color_metadata) if entropy_encoding is not None: - pulumi.set(__self__, "entropy_encoding", entropy_encoding) + _setter("entropy_encoding", entropy_encoding) if filter_settings is not None: - pulumi.set(__self__, "filter_settings", filter_settings) + _setter("filter_settings", filter_settings) if fixed_afd is not None: - pulumi.set(__self__, "fixed_afd", fixed_afd) + _setter("fixed_afd", fixed_afd) if flicker_aq is not None: - pulumi.set(__self__, "flicker_aq", flicker_aq) + _setter("flicker_aq", flicker_aq) if force_field_pictures is not None: - pulumi.set(__self__, "force_field_pictures", force_field_pictures) + _setter("force_field_pictures", force_field_pictures) if framerate_control is not None: - pulumi.set(__self__, "framerate_control", framerate_control) + _setter("framerate_control", framerate_control) if framerate_denominator is not None: - pulumi.set(__self__, "framerate_denominator", framerate_denominator) + _setter("framerate_denominator", framerate_denominator) if framerate_numerator is not None: - pulumi.set(__self__, "framerate_numerator", framerate_numerator) + _setter("framerate_numerator", framerate_numerator) if gop_b_reference is not None: - pulumi.set(__self__, "gop_b_reference", gop_b_reference) + _setter("gop_b_reference", gop_b_reference) if gop_closed_cadence is not None: - pulumi.set(__self__, "gop_closed_cadence", gop_closed_cadence) + _setter("gop_closed_cadence", gop_closed_cadence) if gop_num_b_frames is not None: - pulumi.set(__self__, "gop_num_b_frames", gop_num_b_frames) + _setter("gop_num_b_frames", gop_num_b_frames) if gop_size is not None: - pulumi.set(__self__, "gop_size", gop_size) + _setter("gop_size", gop_size) if gop_size_units is not None: - pulumi.set(__self__, "gop_size_units", gop_size_units) + _setter("gop_size_units", gop_size_units) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) if look_ahead_rate_control is not None: - pulumi.set(__self__, "look_ahead_rate_control", look_ahead_rate_control) + _setter("look_ahead_rate_control", look_ahead_rate_control) if max_bitrate is not None: - pulumi.set(__self__, "max_bitrate", max_bitrate) + _setter("max_bitrate", max_bitrate) if min_i_interval is not None: - pulumi.set(__self__, "min_i_interval", min_i_interval) + _setter("min_i_interval", min_i_interval) if num_ref_frames is not None: - pulumi.set(__self__, "num_ref_frames", num_ref_frames) + _setter("num_ref_frames", num_ref_frames) if par_control is not None: - pulumi.set(__self__, "par_control", par_control) + _setter("par_control", par_control) if par_denominator is not None: - pulumi.set(__self__, "par_denominator", par_denominator) + _setter("par_denominator", par_denominator) if par_numerator is not None: - pulumi.set(__self__, "par_numerator", par_numerator) + _setter("par_numerator", par_numerator) if profile is not None: - pulumi.set(__self__, "profile", profile) + _setter("profile", profile) if quality_level is not None: - pulumi.set(__self__, "quality_level", quality_level) + _setter("quality_level", quality_level) if qvbr_quality_level is not None: - pulumi.set(__self__, "qvbr_quality_level", qvbr_quality_level) + _setter("qvbr_quality_level", qvbr_quality_level) if rate_control_mode is not None: - pulumi.set(__self__, "rate_control_mode", rate_control_mode) + _setter("rate_control_mode", rate_control_mode) if scan_type is not None: - pulumi.set(__self__, "scan_type", scan_type) + _setter("scan_type", scan_type) if scene_change_detect is not None: - pulumi.set(__self__, "scene_change_detect", scene_change_detect) + _setter("scene_change_detect", scene_change_detect) if slices is not None: - pulumi.set(__self__, "slices", slices) + _setter("slices", slices) if softness is not None: - pulumi.set(__self__, "softness", softness) + _setter("softness", softness) if spatial_aq is not None: - pulumi.set(__self__, "spatial_aq", spatial_aq) + _setter("spatial_aq", spatial_aq) if subgop_length is not None: - pulumi.set(__self__, "subgop_length", subgop_length) + _setter("subgop_length", subgop_length) if syntax is not None: - pulumi.set(__self__, "syntax", syntax) + _setter("syntax", syntax) if temporal_aq is not None: - pulumi.set(__self__, "temporal_aq", temporal_aq) + _setter("temporal_aq", temporal_aq) if timecode_insertion is not None: - pulumi.set(__self__, "timecode_insertion", timecode_insertion) + _setter("timecode_insertion", timecode_insertion) @property @pulumi.getter(name="adaptiveQuantization") @@ -8532,7 +11791,7 @@ def entropy_encoding(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="filterSettings") def filter_settings(self) -> Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsArgs']]: """ - Filters to apply to an encode. See H264 Filter Settings for more details. + Filters to apply to an encode. See H265 Filter Settings for more details. """ return pulumi.get(self, "filter_settings") @@ -8673,7 +11932,7 @@ def gop_size_units(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def level(self) -> Optional[pulumi.Input[str]]: """ - H264 level. + H265 level. """ return pulumi.get(self, "level") @@ -8926,8 +12185,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsTemporalFilterSettingsArgs'] temporal_filter_settings: Temporal filter settings. See Temporal Filter Settings """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + temporal_filter_settings=temporal_filter_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + temporal_filter_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsTemporalFilterSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if temporal_filter_settings is None and 'temporalFilterSettings' in kwargs: + temporal_filter_settings = kwargs['temporalFilterSettings'] + if temporal_filter_settings is not None: - pulumi.set(__self__, "temporal_filter_settings", temporal_filter_settings) + _setter("temporal_filter_settings", temporal_filter_settings) @property @pulumi.getter(name="temporalFilterSettings") @@ -8951,10 +12223,25 @@ def __init__(__self__, *, :param pulumi.Input[str] post_filter_sharpening: Post filter sharpening. :param pulumi.Input[str] strength: Filter strength. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsTemporalFilterSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + post_filter_sharpening=post_filter_sharpening, + strength=strength, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + post_filter_sharpening: Optional[pulumi.Input[str]] = None, + strength: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if post_filter_sharpening is None and 'postFilterSharpening' in kwargs: + post_filter_sharpening = kwargs['postFilterSharpening'] + if post_filter_sharpening is not None: - pulumi.set(__self__, "post_filter_sharpening", post_filter_sharpening) + _setter("post_filter_sharpening", post_filter_sharpening) if strength is not None: - pulumi.set(__self__, "strength", strength) + _setter("strength", strength) @property @pulumi.getter(name="postFilterSharpening") @@ -9024,12 +12311,12 @@ def __init__(__self__, *, :param pulumi.Input[int] buf_size: Size of buffer in bits. :param pulumi.Input[str] color_metadata: Includes color space metadata in the output. :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsArgs'] color_space_settings: Define the color metadata for the output. H265 Color Space Settings for more details. - :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsArgs'] filter_settings: Filters to apply to an encode. See H264 Filter Settings for more details. + :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsArgs'] filter_settings: Filters to apply to an encode. See H265 Filter Settings for more details. :param pulumi.Input[str] fixed_afd: Four bit AFD value to write on all frames of video in the output stream. :param pulumi.Input[int] gop_closed_cadence: Frequency of closed GOPs. :param pulumi.Input[float] gop_size: GOP size in units of either frames of seconds per `gop_size_units`. :param pulumi.Input[str] gop_size_units: Indicates if the `gop_size` is specified in frames or seconds. - :param pulumi.Input[str] level: H264 level. + :param pulumi.Input[str] level: H265 level. :param pulumi.Input[str] look_ahead_rate_control: Amount of lookahead. :param pulumi.Input[int] max_bitrate: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video. :param pulumi.Input[int] par_denominator: Pixel Aspect Ratio denominator. @@ -9044,63 +12331,188 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsTimecodeBurninSettingsArgs'] timecode_burnin_settings: Apply a burned in timecode. See H265 Timecode Burnin Settings for more details. :param pulumi.Input[str] timecode_insertion: Determines how timecodes should be inserted into the video elementary stream. """ - pulumi.set(__self__, "bitrate", bitrate) - pulumi.set(__self__, "framerate_denominator", framerate_denominator) - pulumi.set(__self__, "framerate_numerator", framerate_numerator) + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + framerate_denominator=framerate_denominator, + framerate_numerator=framerate_numerator, + adaptive_quantization=adaptive_quantization, + afd_signaling=afd_signaling, + alternative_transfer_function=alternative_transfer_function, + buf_size=buf_size, + color_metadata=color_metadata, + color_space_settings=color_space_settings, + filter_settings=filter_settings, + fixed_afd=fixed_afd, + flicker_aq=flicker_aq, + gop_closed_cadence=gop_closed_cadence, + gop_size=gop_size, + gop_size_units=gop_size_units, + level=level, + look_ahead_rate_control=look_ahead_rate_control, + max_bitrate=max_bitrate, + min_i_interval=min_i_interval, + par_denominator=par_denominator, + par_numerator=par_numerator, + profile=profile, + qvbr_quality_level=qvbr_quality_level, + rate_control_mode=rate_control_mode, + scan_type=scan_type, + scene_change_detect=scene_change_detect, + slices=slices, + tier=tier, + timecode_burnin_settings=timecode_burnin_settings, + timecode_insertion=timecode_insertion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[pulumi.Input[int]] = None, + framerate_denominator: Optional[pulumi.Input[int]] = None, + framerate_numerator: Optional[pulumi.Input[int]] = None, + adaptive_quantization: Optional[pulumi.Input[str]] = None, + afd_signaling: Optional[pulumi.Input[str]] = None, + alternative_transfer_function: Optional[pulumi.Input[str]] = None, + buf_size: Optional[pulumi.Input[int]] = None, + color_metadata: Optional[pulumi.Input[str]] = None, + color_space_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsArgs']] = None, + filter_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsArgs']] = None, + fixed_afd: Optional[pulumi.Input[str]] = None, + flicker_aq: Optional[pulumi.Input[str]] = None, + gop_closed_cadence: Optional[pulumi.Input[int]] = None, + gop_size: Optional[pulumi.Input[float]] = None, + gop_size_units: Optional[pulumi.Input[str]] = None, + level: Optional[pulumi.Input[str]] = None, + look_ahead_rate_control: Optional[pulumi.Input[str]] = None, + max_bitrate: Optional[pulumi.Input[int]] = None, + min_i_interval: Optional[pulumi.Input[int]] = None, + par_denominator: Optional[pulumi.Input[int]] = None, + par_numerator: Optional[pulumi.Input[int]] = None, + profile: Optional[pulumi.Input[str]] = None, + qvbr_quality_level: Optional[pulumi.Input[int]] = None, + rate_control_mode: Optional[pulumi.Input[str]] = None, + scan_type: Optional[pulumi.Input[str]] = None, + scene_change_detect: Optional[pulumi.Input[str]] = None, + slices: Optional[pulumi.Input[int]] = None, + tier: Optional[pulumi.Input[str]] = None, + timecode_burnin_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsTimecodeBurninSettingsArgs']] = None, + timecode_insertion: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bitrate is None: + raise TypeError("Missing 'bitrate' argument") + if framerate_denominator is None and 'framerateDenominator' in kwargs: + framerate_denominator = kwargs['framerateDenominator'] + if framerate_denominator is None: + raise TypeError("Missing 'framerate_denominator' argument") + if framerate_numerator is None and 'framerateNumerator' in kwargs: + framerate_numerator = kwargs['framerateNumerator'] + if framerate_numerator is None: + raise TypeError("Missing 'framerate_numerator' argument") + if adaptive_quantization is None and 'adaptiveQuantization' in kwargs: + adaptive_quantization = kwargs['adaptiveQuantization'] + if afd_signaling is None and 'afdSignaling' in kwargs: + afd_signaling = kwargs['afdSignaling'] + if alternative_transfer_function is None and 'alternativeTransferFunction' in kwargs: + alternative_transfer_function = kwargs['alternativeTransferFunction'] + if buf_size is None and 'bufSize' in kwargs: + buf_size = kwargs['bufSize'] + if color_metadata is None and 'colorMetadata' in kwargs: + color_metadata = kwargs['colorMetadata'] + if color_space_settings is None and 'colorSpaceSettings' in kwargs: + color_space_settings = kwargs['colorSpaceSettings'] + if filter_settings is None and 'filterSettings' in kwargs: + filter_settings = kwargs['filterSettings'] + if fixed_afd is None and 'fixedAfd' in kwargs: + fixed_afd = kwargs['fixedAfd'] + if flicker_aq is None and 'flickerAq' in kwargs: + flicker_aq = kwargs['flickerAq'] + if gop_closed_cadence is None and 'gopClosedCadence' in kwargs: + gop_closed_cadence = kwargs['gopClosedCadence'] + if gop_size is None and 'gopSize' in kwargs: + gop_size = kwargs['gopSize'] + if gop_size_units is None and 'gopSizeUnits' in kwargs: + gop_size_units = kwargs['gopSizeUnits'] + if look_ahead_rate_control is None and 'lookAheadRateControl' in kwargs: + look_ahead_rate_control = kwargs['lookAheadRateControl'] + if max_bitrate is None and 'maxBitrate' in kwargs: + max_bitrate = kwargs['maxBitrate'] + if min_i_interval is None and 'minIInterval' in kwargs: + min_i_interval = kwargs['minIInterval'] + if par_denominator is None and 'parDenominator' in kwargs: + par_denominator = kwargs['parDenominator'] + if par_numerator is None and 'parNumerator' in kwargs: + par_numerator = kwargs['parNumerator'] + if qvbr_quality_level is None and 'qvbrQualityLevel' in kwargs: + qvbr_quality_level = kwargs['qvbrQualityLevel'] + if rate_control_mode is None and 'rateControlMode' in kwargs: + rate_control_mode = kwargs['rateControlMode'] + if scan_type is None and 'scanType' in kwargs: + scan_type = kwargs['scanType'] + if scene_change_detect is None and 'sceneChangeDetect' in kwargs: + scene_change_detect = kwargs['sceneChangeDetect'] + if timecode_burnin_settings is None and 'timecodeBurninSettings' in kwargs: + timecode_burnin_settings = kwargs['timecodeBurninSettings'] + if timecode_insertion is None and 'timecodeInsertion' in kwargs: + timecode_insertion = kwargs['timecodeInsertion'] + + _setter("bitrate", bitrate) + _setter("framerate_denominator", framerate_denominator) + _setter("framerate_numerator", framerate_numerator) if adaptive_quantization is not None: - pulumi.set(__self__, "adaptive_quantization", adaptive_quantization) + _setter("adaptive_quantization", adaptive_quantization) if afd_signaling is not None: - pulumi.set(__self__, "afd_signaling", afd_signaling) + _setter("afd_signaling", afd_signaling) if alternative_transfer_function is not None: - pulumi.set(__self__, "alternative_transfer_function", alternative_transfer_function) + _setter("alternative_transfer_function", alternative_transfer_function) if buf_size is not None: - pulumi.set(__self__, "buf_size", buf_size) + _setter("buf_size", buf_size) if color_metadata is not None: - pulumi.set(__self__, "color_metadata", color_metadata) + _setter("color_metadata", color_metadata) if color_space_settings is not None: - pulumi.set(__self__, "color_space_settings", color_space_settings) + _setter("color_space_settings", color_space_settings) if filter_settings is not None: - pulumi.set(__self__, "filter_settings", filter_settings) + _setter("filter_settings", filter_settings) if fixed_afd is not None: - pulumi.set(__self__, "fixed_afd", fixed_afd) + _setter("fixed_afd", fixed_afd) if flicker_aq is not None: - pulumi.set(__self__, "flicker_aq", flicker_aq) + _setter("flicker_aq", flicker_aq) if gop_closed_cadence is not None: - pulumi.set(__self__, "gop_closed_cadence", gop_closed_cadence) + _setter("gop_closed_cadence", gop_closed_cadence) if gop_size is not None: - pulumi.set(__self__, "gop_size", gop_size) + _setter("gop_size", gop_size) if gop_size_units is not None: - pulumi.set(__self__, "gop_size_units", gop_size_units) + _setter("gop_size_units", gop_size_units) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) if look_ahead_rate_control is not None: - pulumi.set(__self__, "look_ahead_rate_control", look_ahead_rate_control) + _setter("look_ahead_rate_control", look_ahead_rate_control) if max_bitrate is not None: - pulumi.set(__self__, "max_bitrate", max_bitrate) + _setter("max_bitrate", max_bitrate) if min_i_interval is not None: - pulumi.set(__self__, "min_i_interval", min_i_interval) + _setter("min_i_interval", min_i_interval) if par_denominator is not None: - pulumi.set(__self__, "par_denominator", par_denominator) + _setter("par_denominator", par_denominator) if par_numerator is not None: - pulumi.set(__self__, "par_numerator", par_numerator) + _setter("par_numerator", par_numerator) if profile is not None: - pulumi.set(__self__, "profile", profile) + _setter("profile", profile) if qvbr_quality_level is not None: - pulumi.set(__self__, "qvbr_quality_level", qvbr_quality_level) + _setter("qvbr_quality_level", qvbr_quality_level) if rate_control_mode is not None: - pulumi.set(__self__, "rate_control_mode", rate_control_mode) + _setter("rate_control_mode", rate_control_mode) if scan_type is not None: - pulumi.set(__self__, "scan_type", scan_type) + _setter("scan_type", scan_type) if scene_change_detect is not None: - pulumi.set(__self__, "scene_change_detect", scene_change_detect) + _setter("scene_change_detect", scene_change_detect) if slices is not None: - pulumi.set(__self__, "slices", slices) + _setter("slices", slices) if tier is not None: - pulumi.set(__self__, "tier", tier) + _setter("tier", tier) if timecode_burnin_settings is not None: - pulumi.set(__self__, "timecode_burnin_settings", timecode_burnin_settings) + _setter("timecode_burnin_settings", timecode_burnin_settings) if timecode_insertion is not None: - pulumi.set(__self__, "timecode_insertion", timecode_insertion) + _setter("timecode_insertion", timecode_insertion) @property @pulumi.getter @@ -9214,7 +12626,7 @@ def color_space_settings(self, value: Optional[pulumi.Input['ChannelEncoderSetti @pulumi.getter(name="filterSettings") def filter_settings(self) -> Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsArgs']]: """ - Filters to apply to an encode. See H264 Filter Settings for more details. + Filters to apply to an encode. See H265 Filter Settings for more details. """ return pulumi.get(self, "filter_settings") @@ -9283,7 +12695,7 @@ def gop_size_units(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def level(self) -> Optional[pulumi.Input[str]]: """ - H264 level. + H265 level. """ return pulumi.get(self, "level") @@ -9472,16 +12884,45 @@ def __init__(__self__, *, :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec601SettingsArgs'] rec601_settings: Set the colorspace to Rec. 601. :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec709SettingsArgs'] rec709_settings: Set the colorspace to Rec. 709. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + color_space_passthrough_settings=color_space_passthrough_settings, + dolby_vision81_settings=dolby_vision81_settings, + hdr10_settings=hdr10_settings, + rec601_settings=rec601_settings, + rec709_settings=rec709_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + color_space_passthrough_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsColorSpacePassthroughSettingsArgs']] = None, + dolby_vision81_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsDolbyVision81SettingsArgs']] = None, + hdr10_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsArgs']] = None, + rec601_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec601SettingsArgs']] = None, + rec709_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec709SettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if color_space_passthrough_settings is None and 'colorSpacePassthroughSettings' in kwargs: + color_space_passthrough_settings = kwargs['colorSpacePassthroughSettings'] + if dolby_vision81_settings is None and 'dolbyVision81Settings' in kwargs: + dolby_vision81_settings = kwargs['dolbyVision81Settings'] + if hdr10_settings is None and 'hdr10Settings' in kwargs: + hdr10_settings = kwargs['hdr10Settings'] + if rec601_settings is None and 'rec601Settings' in kwargs: + rec601_settings = kwargs['rec601Settings'] + if rec709_settings is None and 'rec709Settings' in kwargs: + rec709_settings = kwargs['rec709Settings'] + if color_space_passthrough_settings is not None: - pulumi.set(__self__, "color_space_passthrough_settings", color_space_passthrough_settings) + _setter("color_space_passthrough_settings", color_space_passthrough_settings) if dolby_vision81_settings is not None: - pulumi.set(__self__, "dolby_vision81_settings", dolby_vision81_settings) + _setter("dolby_vision81_settings", dolby_vision81_settings) if hdr10_settings is not None: - pulumi.set(__self__, "hdr10_settings", hdr10_settings) + _setter("hdr10_settings", hdr10_settings) if rec601_settings is not None: - pulumi.set(__self__, "rec601_settings", rec601_settings) + _setter("rec601_settings", rec601_settings) if rec709_settings is not None: - pulumi.set(__self__, "rec709_settings", rec709_settings) + _setter("rec709_settings", rec709_settings) @property @pulumi.getter(name="colorSpacePassthroughSettings") @@ -9548,12 +12989,26 @@ def rec709_settings(self, value: Optional[pulumi.Input['ChannelEncoderSettingsVi class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsColorSpacePassthroughSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsDolbyVision81SettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -9565,10 +13020,27 @@ def __init__(__self__, *, :param pulumi.Input[int] max_cll: Sets the MaxCLL value for HDR10. :param pulumi.Input[int] max_fall: Sets the MaxFALL value for HDR10. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_cll=max_cll, + max_fall=max_fall, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_cll: Optional[pulumi.Input[int]] = None, + max_fall: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_cll is None and 'maxCll' in kwargs: + max_cll = kwargs['maxCll'] + if max_fall is None and 'maxFall' in kwargs: + max_fall = kwargs['maxFall'] + if max_cll is not None: - pulumi.set(__self__, "max_cll", max_cll) + _setter("max_cll", max_cll) if max_fall is not None: - pulumi.set(__self__, "max_fall", max_fall) + _setter("max_fall", max_fall) @property @pulumi.getter(name="maxCll") @@ -9599,12 +13071,26 @@ def max_fall(self, value: Optional[pulumi.Input[int]]): class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec601SettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec709SettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -9614,8 +13100,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsTemporalFilterSettingsArgs'] temporal_filter_settings: Temporal filter settings. See Temporal Filter Settings """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + temporal_filter_settings=temporal_filter_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + temporal_filter_settings: Optional[pulumi.Input['ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsTemporalFilterSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if temporal_filter_settings is None and 'temporalFilterSettings' in kwargs: + temporal_filter_settings = kwargs['temporalFilterSettings'] + if temporal_filter_settings is not None: - pulumi.set(__self__, "temporal_filter_settings", temporal_filter_settings) + _setter("temporal_filter_settings", temporal_filter_settings) @property @pulumi.getter(name="temporalFilterSettings") @@ -9639,10 +13138,25 @@ def __init__(__self__, *, :param pulumi.Input[str] post_filter_sharpening: Post filter sharpening. :param pulumi.Input[str] strength: Filter strength. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsTemporalFilterSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + post_filter_sharpening=post_filter_sharpening, + strength=strength, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + post_filter_sharpening: Optional[pulumi.Input[str]] = None, + strength: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if post_filter_sharpening is None and 'postFilterSharpening' in kwargs: + post_filter_sharpening = kwargs['postFilterSharpening'] + if post_filter_sharpening is not None: - pulumi.set(__self__, "post_filter_sharpening", post_filter_sharpening) + _setter("post_filter_sharpening", post_filter_sharpening) if strength is not None: - pulumi.set(__self__, "strength", strength) + _setter("strength", strength) @property @pulumi.getter(name="postFilterSharpening") @@ -9680,12 +13194,31 @@ def __init__(__self__, *, :param pulumi.Input[str] timecode_burnin_font_size: Sets the size of the burned in timecode. :param pulumi.Input[str] timecode_burnin_position: Sets the position of the burned in timecode. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsTimecodeBurninSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + timecode_burnin_font_size=timecode_burnin_font_size, + timecode_burnin_position=timecode_burnin_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[pulumi.Input[str]] = None, + timecode_burnin_font_size: Optional[pulumi.Input[str]] = None, + timecode_burnin_position: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if timecode_burnin_font_size is None and 'timecodeBurninFontSize' in kwargs: + timecode_burnin_font_size = kwargs['timecodeBurninFontSize'] + if timecode_burnin_position is None and 'timecodeBurninPosition' in kwargs: + timecode_burnin_position = kwargs['timecodeBurninPosition'] + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if timecode_burnin_font_size is not None: - pulumi.set(__self__, "timecode_burnin_font_size", timecode_burnin_font_size) + _setter("timecode_burnin_font_size", timecode_burnin_font_size) if timecode_burnin_position is not None: - pulumi.set(__self__, "timecode_burnin_position", timecode_burnin_position) + _setter("timecode_burnin_position", timecode_burnin_position) @property @pulumi.getter @@ -9737,12 +13270,41 @@ def __init__(__self__, *, :param pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsArgs'] automatic_input_failover_settings: User-specified settings for defining what the conditions are for declaring the input unhealthy and failing over to a different input. See Automatic Input Failover Settings for more details. :param pulumi.Input['ChannelInputAttachmentInputSettingsArgs'] input_settings: Settings of an input. See Input Settings for more details. """ - pulumi.set(__self__, "input_attachment_name", input_attachment_name) - pulumi.set(__self__, "input_id", input_id) + ChannelInputAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_attachment_name=input_attachment_name, + input_id=input_id, + automatic_input_failover_settings=automatic_input_failover_settings, + input_settings=input_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_attachment_name: Optional[pulumi.Input[str]] = None, + input_id: Optional[pulumi.Input[str]] = None, + automatic_input_failover_settings: Optional[pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsArgs']] = None, + input_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_attachment_name is None and 'inputAttachmentName' in kwargs: + input_attachment_name = kwargs['inputAttachmentName'] + if input_attachment_name is None: + raise TypeError("Missing 'input_attachment_name' argument") + if input_id is None and 'inputId' in kwargs: + input_id = kwargs['inputId'] + if input_id is None: + raise TypeError("Missing 'input_id' argument") + if automatic_input_failover_settings is None and 'automaticInputFailoverSettings' in kwargs: + automatic_input_failover_settings = kwargs['automaticInputFailoverSettings'] + if input_settings is None and 'inputSettings' in kwargs: + input_settings = kwargs['inputSettings'] + + _setter("input_attachment_name", input_attachment_name) + _setter("input_id", input_id) if automatic_input_failover_settings is not None: - pulumi.set(__self__, "automatic_input_failover_settings", automatic_input_failover_settings) + _setter("automatic_input_failover_settings", automatic_input_failover_settings) if input_settings is not None: - pulumi.set(__self__, "input_settings", input_settings) + _setter("input_settings", input_settings) @property @pulumi.getter(name="inputAttachmentName") @@ -9805,13 +13367,40 @@ def __init__(__self__, *, :param pulumi.Input[int] error_clear_time_msec: This clear time defines the requirement a recovered input must meet to be considered healthy. The input must have no failover conditions for this length of time. Enter a time in milliseconds. This value is particularly important if the input\\_preference for the failover pair is set to PRIMARY\\_INPUT\\_PREFERRED, because after this time, MediaLive will switch back to the primary input. :param pulumi.Input[str] input_preference: Input preference when deciding which input to make active when a previously failed input has recovered. """ - pulumi.set(__self__, "secondary_input_id", secondary_input_id) + ChannelInputAttachmentAutomaticInputFailoverSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secondary_input_id=secondary_input_id, + error_clear_time_msec=error_clear_time_msec, + failover_conditions=failover_conditions, + input_preference=input_preference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secondary_input_id: Optional[pulumi.Input[str]] = None, + error_clear_time_msec: Optional[pulumi.Input[int]] = None, + failover_conditions: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionArgs']]]] = None, + input_preference: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secondary_input_id is None and 'secondaryInputId' in kwargs: + secondary_input_id = kwargs['secondaryInputId'] + if secondary_input_id is None: + raise TypeError("Missing 'secondary_input_id' argument") + if error_clear_time_msec is None and 'errorClearTimeMsec' in kwargs: + error_clear_time_msec = kwargs['errorClearTimeMsec'] + if failover_conditions is None and 'failoverConditions' in kwargs: + failover_conditions = kwargs['failoverConditions'] + if input_preference is None and 'inputPreference' in kwargs: + input_preference = kwargs['inputPreference'] + + _setter("secondary_input_id", secondary_input_id) if error_clear_time_msec is not None: - pulumi.set(__self__, "error_clear_time_msec", error_clear_time_msec) + _setter("error_clear_time_msec", error_clear_time_msec) if failover_conditions is not None: - pulumi.set(__self__, "failover_conditions", failover_conditions) + _setter("failover_conditions", failover_conditions) if input_preference is not None: - pulumi.set(__self__, "input_preference", input_preference) + _setter("input_preference", input_preference) @property @pulumi.getter(name="secondaryInputId") @@ -9866,8 +13455,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsArgs'] failover_condition_settings: Failover condition type-specific settings. See Failover Condition Settings for more details. """ + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failover_condition_settings=failover_condition_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failover_condition_settings: Optional[pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failover_condition_settings is None and 'failoverConditionSettings' in kwargs: + failover_condition_settings = kwargs['failoverConditionSettings'] + if failover_condition_settings is not None: - pulumi.set(__self__, "failover_condition_settings", failover_condition_settings) + _setter("failover_condition_settings", failover_condition_settings) @property @pulumi.getter(name="failoverConditionSettings") @@ -9893,12 +13495,33 @@ def __init__(__self__, *, :param pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsInputLossSettingsArgs'] input_loss_settings: MediaLive will perform a failover if content is not detected in this input for the specified period. See Input Loss Failover Settings for more details. :param pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsVideoBlackSettingsArgs'] video_black_settings: MediaLive will perform a failover if content is considered black for the specified period. See Video Black Failover Settings for more details. """ + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_silence_settings=audio_silence_settings, + input_loss_settings=input_loss_settings, + video_black_settings=video_black_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_silence_settings: Optional[pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs']] = None, + input_loss_settings: Optional[pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsInputLossSettingsArgs']] = None, + video_black_settings: Optional[pulumi.Input['ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsVideoBlackSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_silence_settings is None and 'audioSilenceSettings' in kwargs: + audio_silence_settings = kwargs['audioSilenceSettings'] + if input_loss_settings is None and 'inputLossSettings' in kwargs: + input_loss_settings = kwargs['inputLossSettings'] + if video_black_settings is None and 'videoBlackSettings' in kwargs: + video_black_settings = kwargs['videoBlackSettings'] + if audio_silence_settings is not None: - pulumi.set(__self__, "audio_silence_settings", audio_silence_settings) + _setter("audio_silence_settings", audio_silence_settings) if input_loss_settings is not None: - pulumi.set(__self__, "input_loss_settings", input_loss_settings) + _setter("input_loss_settings", input_loss_settings) if video_black_settings is not None: - pulumi.set(__self__, "video_black_settings", video_black_settings) + _setter("video_black_settings", video_black_settings) @property @pulumi.getter(name="audioSilenceSettings") @@ -9943,18 +13566,37 @@ def __init__(__self__, *, audio_selector_name: pulumi.Input[str], audio_silence_threshold_msec: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[str] audio_selector_name: The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + :param pulumi.Input[str] audio_selector_name: The name of the audio selector used as the source for this AudioDescription. :param pulumi.Input[int] audio_silence_threshold_msec: The amount of time (in milliseconds) that the active input must be silent before automatic input failover occurs. Silence is defined as audio loss or audio quieter than -50 dBFS. """ - pulumi.set(__self__, "audio_selector_name", audio_selector_name) + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_selector_name=audio_selector_name, + audio_silence_threshold_msec=audio_silence_threshold_msec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_selector_name: Optional[pulumi.Input[str]] = None, + audio_silence_threshold_msec: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_selector_name is None and 'audioSelectorName' in kwargs: + audio_selector_name = kwargs['audioSelectorName'] + if audio_selector_name is None: + raise TypeError("Missing 'audio_selector_name' argument") + if audio_silence_threshold_msec is None and 'audioSilenceThresholdMsec' in kwargs: + audio_silence_threshold_msec = kwargs['audioSilenceThresholdMsec'] + + _setter("audio_selector_name", audio_selector_name) if audio_silence_threshold_msec is not None: - pulumi.set(__self__, "audio_silence_threshold_msec", audio_silence_threshold_msec) + _setter("audio_silence_threshold_msec", audio_silence_threshold_msec) @property @pulumi.getter(name="audioSelectorName") def audio_selector_name(self) -> pulumi.Input[str]: """ - The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + The name of the audio selector used as the source for this AudioDescription. """ return pulumi.get(self, "audio_selector_name") @@ -9982,8 +13624,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] input_loss_threshold_msec: The amount of time (in milliseconds) that no input is detected. After that time, an input failover will occur. """ + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsInputLossSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_loss_threshold_msec=input_loss_threshold_msec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_loss_threshold_msec: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_loss_threshold_msec is None and 'inputLossThresholdMsec' in kwargs: + input_loss_threshold_msec = kwargs['inputLossThresholdMsec'] + if input_loss_threshold_msec is not None: - pulumi.set(__self__, "input_loss_threshold_msec", input_loss_threshold_msec) + _setter("input_loss_threshold_msec", input_loss_threshold_msec) @property @pulumi.getter(name="inputLossThresholdMsec") @@ -10007,10 +13662,27 @@ def __init__(__self__, *, :param pulumi.Input[float] black_detect_threshold: A value used in calculating the threshold below which MediaLive considers a pixel to be 'black'. For the input to be considered black, every pixel in a frame must be below this threshold. The threshold is calculated as a percentage (expressed as a decimal) of white. Therefore .1 means 10% white (or 90% black). Note how the formula works for any color depth. For example, if you set this field to 0.1 in 10-bit color depth: (10230.1=102.3), which means a pixel value of 102 or less is 'black'. If you set this field to .1 in an 8-bit color depth: (2550.1=25.5), which means a pixel value of 25 or less is 'black'. The range is 0.0 to 1.0, with any number of decimal places. :param pulumi.Input[int] video_black_threshold_msec: The amount of time (in milliseconds) that the active input must be black before automatic input failover occurs. """ + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsVideoBlackSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + black_detect_threshold=black_detect_threshold, + video_black_threshold_msec=video_black_threshold_msec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + black_detect_threshold: Optional[pulumi.Input[float]] = None, + video_black_threshold_msec: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if black_detect_threshold is None and 'blackDetectThreshold' in kwargs: + black_detect_threshold = kwargs['blackDetectThreshold'] + if video_black_threshold_msec is None and 'videoBlackThresholdMsec' in kwargs: + video_black_threshold_msec = kwargs['videoBlackThresholdMsec'] + if black_detect_threshold is not None: - pulumi.set(__self__, "black_detect_threshold", black_detect_threshold) + _setter("black_detect_threshold", black_detect_threshold) if video_black_threshold_msec is not None: - pulumi.set(__self__, "video_black_threshold_msec", video_black_threshold_msec) + _setter("video_black_threshold_msec", video_black_threshold_msec) @property @pulumi.getter(name="blackDetectThreshold") @@ -10061,28 +13733,81 @@ def __init__(__self__, *, :param pulumi.Input[str] smpte2038_data_preference: Specifies whether to extract applicable ancillary data from a SMPTE-2038 source in the input. :param pulumi.Input[str] source_end_behavior: Loop input if it is a file. """ + ChannelInputAttachmentInputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_selectors=audio_selectors, + caption_selectors=caption_selectors, + deblock_filter=deblock_filter, + denoise_filter=denoise_filter, + filter_strength=filter_strength, + input_filter=input_filter, + network_input_settings=network_input_settings, + scte35_pid=scte35_pid, + smpte2038_data_preference=smpte2038_data_preference, + source_end_behavior=source_end_behavior, + video_selector=video_selector, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorArgs']]]] = None, + caption_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorArgs']]]] = None, + deblock_filter: Optional[pulumi.Input[str]] = None, + denoise_filter: Optional[pulumi.Input[str]] = None, + filter_strength: Optional[pulumi.Input[int]] = None, + input_filter: Optional[pulumi.Input[str]] = None, + network_input_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsNetworkInputSettingsArgs']] = None, + scte35_pid: Optional[pulumi.Input[int]] = None, + smpte2038_data_preference: Optional[pulumi.Input[str]] = None, + source_end_behavior: Optional[pulumi.Input[str]] = None, + video_selector: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsVideoSelectorArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_selectors is None and 'audioSelectors' in kwargs: + audio_selectors = kwargs['audioSelectors'] + if caption_selectors is None and 'captionSelectors' in kwargs: + caption_selectors = kwargs['captionSelectors'] + if deblock_filter is None and 'deblockFilter' in kwargs: + deblock_filter = kwargs['deblockFilter'] + if denoise_filter is None and 'denoiseFilter' in kwargs: + denoise_filter = kwargs['denoiseFilter'] + if filter_strength is None and 'filterStrength' in kwargs: + filter_strength = kwargs['filterStrength'] + if input_filter is None and 'inputFilter' in kwargs: + input_filter = kwargs['inputFilter'] + if network_input_settings is None and 'networkInputSettings' in kwargs: + network_input_settings = kwargs['networkInputSettings'] + if scte35_pid is None and 'scte35Pid' in kwargs: + scte35_pid = kwargs['scte35Pid'] + if smpte2038_data_preference is None and 'smpte2038DataPreference' in kwargs: + smpte2038_data_preference = kwargs['smpte2038DataPreference'] + if source_end_behavior is None and 'sourceEndBehavior' in kwargs: + source_end_behavior = kwargs['sourceEndBehavior'] + if video_selector is None and 'videoSelector' in kwargs: + video_selector = kwargs['videoSelector'] + if audio_selectors is not None: - pulumi.set(__self__, "audio_selectors", audio_selectors) + _setter("audio_selectors", audio_selectors) if caption_selectors is not None: - pulumi.set(__self__, "caption_selectors", caption_selectors) + _setter("caption_selectors", caption_selectors) if deblock_filter is not None: - pulumi.set(__self__, "deblock_filter", deblock_filter) + _setter("deblock_filter", deblock_filter) if denoise_filter is not None: - pulumi.set(__self__, "denoise_filter", denoise_filter) + _setter("denoise_filter", denoise_filter) if filter_strength is not None: - pulumi.set(__self__, "filter_strength", filter_strength) + _setter("filter_strength", filter_strength) if input_filter is not None: - pulumi.set(__self__, "input_filter", input_filter) + _setter("input_filter", input_filter) if network_input_settings is not None: - pulumi.set(__self__, "network_input_settings", network_input_settings) + _setter("network_input_settings", network_input_settings) if scte35_pid is not None: - pulumi.set(__self__, "scte35_pid", scte35_pid) + _setter("scte35_pid", scte35_pid) if smpte2038_data_preference is not None: - pulumi.set(__self__, "smpte2038_data_preference", smpte2038_data_preference) + _setter("smpte2038_data_preference", smpte2038_data_preference) if source_end_behavior is not None: - pulumi.set(__self__, "source_end_behavior", source_end_behavior) + _setter("source_end_behavior", source_end_behavior) if video_selector is not None: - pulumi.set(__self__, "video_selector", video_selector) + _setter("video_selector", video_selector) @property @pulumi.getter(name="audioSelectors") @@ -10219,9 +13944,26 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsArgs'] selector_settings: The audio selector settings. See Audio Selector Settings for more details. """ - pulumi.set(__self__, "name", name) + ChannelInputAttachmentInputSettingsAudioSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + selector_settings=selector_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + selector_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if selector_settings is None and 'selectorSettings' in kwargs: + selector_settings = kwargs['selectorSettings'] + + _setter("name", name) if selector_settings is not None: - pulumi.set(__self__, "selector_settings", selector_settings) + _setter("selector_settings", selector_settings) @property @pulumi.getter @@ -10263,14 +14005,39 @@ def __init__(__self__, *, :param pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioPidSelectionArgs'] audio_pid_selection: Audio Pid Selection. See Audio PID Selection for more details. :param pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionArgs'] audio_track_selection: Audio Track Selection. See Audio Track Selection for more details. """ + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_hls_rendition_selection=audio_hls_rendition_selection, + audio_language_selection=audio_language_selection, + audio_pid_selection=audio_pid_selection, + audio_track_selection=audio_track_selection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_hls_rendition_selection: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioHlsRenditionSelectionArgs']] = None, + audio_language_selection: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioLanguageSelectionArgs']] = None, + audio_pid_selection: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioPidSelectionArgs']] = None, + audio_track_selection: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_hls_rendition_selection is None and 'audioHlsRenditionSelection' in kwargs: + audio_hls_rendition_selection = kwargs['audioHlsRenditionSelection'] + if audio_language_selection is None and 'audioLanguageSelection' in kwargs: + audio_language_selection = kwargs['audioLanguageSelection'] + if audio_pid_selection is None and 'audioPidSelection' in kwargs: + audio_pid_selection = kwargs['audioPidSelection'] + if audio_track_selection is None and 'audioTrackSelection' in kwargs: + audio_track_selection = kwargs['audioTrackSelection'] + if audio_hls_rendition_selection is not None: - pulumi.set(__self__, "audio_hls_rendition_selection", audio_hls_rendition_selection) + _setter("audio_hls_rendition_selection", audio_hls_rendition_selection) if audio_language_selection is not None: - pulumi.set(__self__, "audio_language_selection", audio_language_selection) + _setter("audio_language_selection", audio_language_selection) if audio_pid_selection is not None: - pulumi.set(__self__, "audio_pid_selection", audio_pid_selection) + _setter("audio_pid_selection", audio_pid_selection) if audio_track_selection is not None: - pulumi.set(__self__, "audio_track_selection", audio_track_selection) + _setter("audio_track_selection", audio_track_selection) @property @pulumi.getter(name="audioHlsRenditionSelection") @@ -10330,8 +14097,27 @@ def __init__(__self__, *, :param pulumi.Input[str] group_id: Specifies the GROUP-ID in the #EXT-X-MEDIA tag of the target HLS audio rendition. :param pulumi.Input[str] name: Specifies the NAME in the #EXT-X-MEDIA tag of the target HLS audio rendition. """ - pulumi.set(__self__, "group_id", group_id) - pulumi.set(__self__, "name", name) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioHlsRenditionSelectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_id=group_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_id is None and 'groupId' in kwargs: + group_id = kwargs['groupId'] + if group_id is None: + raise TypeError("Missing 'group_id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("group_id", group_id) + _setter("name", name) @property @pulumi.getter(name="groupId") @@ -10367,9 +14153,28 @@ def __init__(__self__, *, :param pulumi.Input[str] language_code: Selects a specific three-letter language code from within an audio source. :param pulumi.Input[str] language_selection_policy: When set to “strict”, the transport stream demux strictly identifies audio streams by their language descriptor. If a PMT update occurs such that an audio stream matching the initially selected language is no longer present then mute will be encoded until the language returns. If “loose”, then on a PMT update the demux will choose another audio stream in the program with the same stream type if it can’t find one with the same language. """ - pulumi.set(__self__, "language_code", language_code) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioLanguageSelectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + language_code=language_code, + language_selection_policy=language_selection_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + language_code: Optional[pulumi.Input[str]] = None, + language_selection_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if language_selection_policy is None and 'languageSelectionPolicy' in kwargs: + language_selection_policy = kwargs['languageSelectionPolicy'] + + _setter("language_code", language_code) if language_selection_policy is not None: - pulumi.set(__self__, "language_selection_policy", language_selection_policy) + _setter("language_selection_policy", language_selection_policy) @property @pulumi.getter(name="languageCode") @@ -10403,7 +14208,20 @@ def __init__(__self__, *, """ :param pulumi.Input[int] pid: Selects a specific PID from within a source. """ - pulumi.set(__self__, "pid", pid) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioPidSelectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pid=pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pid: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pid is None: + raise TypeError("Missing 'pid' argument") + + _setter("pid", pid) @property @pulumi.getter @@ -10427,9 +14245,26 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionTrackArgs']]] tracks: Selects one or more unique audio tracks from within a source. See Audio Tracks for more details. :param pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionDolbyEDecodeArgs'] dolby_e_decode: Configure decoding options for Dolby E streams - these should be Dolby E frames carried in PCM streams tagged with SMPTE-337. See Dolby E Decode for more details. """ - pulumi.set(__self__, "tracks", tracks) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tracks=tracks, + dolby_e_decode=dolby_e_decode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tracks: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionTrackArgs']]]] = None, + dolby_e_decode: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionDolbyEDecodeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tracks is None: + raise TypeError("Missing 'tracks' argument") + if dolby_e_decode is None and 'dolbyEDecode' in kwargs: + dolby_e_decode = kwargs['dolbyEDecode'] + + _setter("tracks", tracks) if dolby_e_decode is not None: - pulumi.set(__self__, "dolby_e_decode", dolby_e_decode) + _setter("dolby_e_decode", dolby_e_decode) @property @pulumi.getter @@ -10463,7 +14298,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] program_selection: Applies only to Dolby E. Enter the program ID (according to the metadata in the audio) of the Dolby E program to extract from the specified track. One program extracted per audio selector. To select multiple programs, create multiple selectors with the same Track and different Program numbers. “All channels” means to ignore the program IDs and include all the channels in this selector; useful if metadata is known to be incorrect. """ - pulumi.set(__self__, "program_selection", program_selection) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionDolbyEDecodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + program_selection=program_selection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + program_selection: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if program_selection is None and 'programSelection' in kwargs: + program_selection = kwargs['programSelection'] + if program_selection is None: + raise TypeError("Missing 'program_selection' argument") + + _setter("program_selection", program_selection) @property @pulumi.getter(name="programSelection") @@ -10485,7 +14335,20 @@ def __init__(__self__, *, """ :param pulumi.Input[int] track: 1-based integer value that maps to a specific audio track. """ - pulumi.set(__self__, "track", track) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionTrackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + track=track, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + track: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if track is None: + raise TypeError("Missing 'track' argument") + + _setter("track", track) @property @pulumi.getter @@ -10513,11 +14376,32 @@ def __init__(__self__, *, :param pulumi.Input[str] language_code: Selects a specific three-letter language code from within an audio source. :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsArgs'] selector_settings: The audio selector settings. See Audio Selector Settings for more details. """ - pulumi.set(__self__, "name", name) + ChannelInputAttachmentInputSettingsCaptionSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + language_code=language_code, + selector_settings=selector_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + selector_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if selector_settings is None and 'selectorSettings' in kwargs: + selector_settings = kwargs['selectorSettings'] + + _setter("name", name) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if selector_settings is not None: - pulumi.set(__self__, "selector_settings", selector_settings) + _setter("selector_settings", selector_settings) @property @pulumi.getter @@ -10577,20 +14461,57 @@ def __init__(__self__, *, :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte27SourceSettingsArgs'] scte27_source_settings: SCTE27 Source Settings. See SCTE 27 Source Settings for more details. :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsArgs'] teletext_source_settings: Teletext Source Settings. See Teletext Source Settings for more details. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ancillary_source_settings=ancillary_source_settings, + arib_source_settings=arib_source_settings, + dvb_sub_source_settings=dvb_sub_source_settings, + embedded_source_settings=embedded_source_settings, + scte20_source_settings=scte20_source_settings, + scte27_source_settings=scte27_source_settings, + teletext_source_settings=teletext_source_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ancillary_source_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettingsArgs']] = None, + arib_source_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsArgs']] = None, + dvb_sub_source_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettingsArgs']] = None, + embedded_source_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsEmbeddedSourceSettingsArgs']] = None, + scte20_source_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte20SourceSettingsArgs']] = None, + scte27_source_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte27SourceSettingsArgs']] = None, + teletext_source_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ancillary_source_settings is None and 'ancillarySourceSettings' in kwargs: + ancillary_source_settings = kwargs['ancillarySourceSettings'] + if arib_source_settings is None and 'aribSourceSettings' in kwargs: + arib_source_settings = kwargs['aribSourceSettings'] + if dvb_sub_source_settings is None and 'dvbSubSourceSettings' in kwargs: + dvb_sub_source_settings = kwargs['dvbSubSourceSettings'] + if embedded_source_settings is None and 'embeddedSourceSettings' in kwargs: + embedded_source_settings = kwargs['embeddedSourceSettings'] + if scte20_source_settings is None and 'scte20SourceSettings' in kwargs: + scte20_source_settings = kwargs['scte20SourceSettings'] + if scte27_source_settings is None and 'scte27SourceSettings' in kwargs: + scte27_source_settings = kwargs['scte27SourceSettings'] + if teletext_source_settings is None and 'teletextSourceSettings' in kwargs: + teletext_source_settings = kwargs['teletextSourceSettings'] + if ancillary_source_settings is not None: - pulumi.set(__self__, "ancillary_source_settings", ancillary_source_settings) + _setter("ancillary_source_settings", ancillary_source_settings) if arib_source_settings is not None: - pulumi.set(__self__, "arib_source_settings", arib_source_settings) + _setter("arib_source_settings", arib_source_settings) if dvb_sub_source_settings is not None: - pulumi.set(__self__, "dvb_sub_source_settings", dvb_sub_source_settings) + _setter("dvb_sub_source_settings", dvb_sub_source_settings) if embedded_source_settings is not None: - pulumi.set(__self__, "embedded_source_settings", embedded_source_settings) + _setter("embedded_source_settings", embedded_source_settings) if scte20_source_settings is not None: - pulumi.set(__self__, "scte20_source_settings", scte20_source_settings) + _setter("scte20_source_settings", scte20_source_settings) if scte27_source_settings is not None: - pulumi.set(__self__, "scte27_source_settings", scte27_source_settings) + _setter("scte27_source_settings", scte27_source_settings) if teletext_source_settings is not None: - pulumi.set(__self__, "teletext_source_settings", teletext_source_settings) + _setter("teletext_source_settings", teletext_source_settings) @property @pulumi.getter(name="ancillarySourceSettings") @@ -10684,8 +14605,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] source_ancillary_channel_number: Specifies the number (1 to 4) of the captions channel you want to extract from the ancillary captions. If you plan to convert the ancillary captions to another format, complete this field. If you plan to choose Embedded as the captions destination in the output (to pass through all the channels in the ancillary captions), leave this field blank because MediaLive ignores the field. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_ancillary_channel_number=source_ancillary_channel_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_ancillary_channel_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_ancillary_channel_number is None and 'sourceAncillaryChannelNumber' in kwargs: + source_ancillary_channel_number = kwargs['sourceAncillaryChannelNumber'] + if source_ancillary_channel_number is not None: - pulumi.set(__self__, "source_ancillary_channel_number", source_ancillary_channel_number) + _setter("source_ancillary_channel_number", source_ancillary_channel_number) @property @pulumi.getter(name="sourceAncillaryChannelNumber") @@ -10704,6 +14638,13 @@ def source_ancillary_channel_number(self, value: Optional[pulumi.Input[int]]): class ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettingsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -10715,10 +14656,25 @@ def __init__(__self__, *, :param pulumi.Input[str] ocr_language: If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image-based source to text. :param pulumi.Input[int] pid: When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through, regardless of selectors. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ocr_language=ocr_language, + pid=pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ocr_language: Optional[pulumi.Input[str]] = None, + pid: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ocr_language is None and 'ocrLanguage' in kwargs: + ocr_language = kwargs['ocrLanguage'] + if ocr_language is not None: - pulumi.set(__self__, "ocr_language", ocr_language) + _setter("ocr_language", ocr_language) if pid is not None: - pulumi.set(__self__, "pid", pid) + _setter("pid", pid) @property @pulumi.getter(name="ocrLanguage") @@ -10756,12 +14712,33 @@ def __init__(__self__, *, :param pulumi.Input[str] scte20_detection: Set to “auto” to handle streams with intermittent and/or non-aligned SCTE-20 and Embedded captions. :param pulumi.Input[int] source608_channel_number: Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsEmbeddedSourceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + convert608_to708=convert608_to708, + scte20_detection=scte20_detection, + source608_channel_number=source608_channel_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + convert608_to708: Optional[pulumi.Input[str]] = None, + scte20_detection: Optional[pulumi.Input[str]] = None, + source608_channel_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if convert608_to708 is None and 'convert608To708' in kwargs: + convert608_to708 = kwargs['convert608To708'] + if scte20_detection is None and 'scte20Detection' in kwargs: + scte20_detection = kwargs['scte20Detection'] + if source608_channel_number is None and 'source608ChannelNumber' in kwargs: + source608_channel_number = kwargs['source608ChannelNumber'] + if convert608_to708 is not None: - pulumi.set(__self__, "convert608_to708", convert608_to708) + _setter("convert608_to708", convert608_to708) if scte20_detection is not None: - pulumi.set(__self__, "scte20_detection", scte20_detection) + _setter("scte20_detection", scte20_detection) if source608_channel_number is not None: - pulumi.set(__self__, "source608_channel_number", source608_channel_number) + _setter("source608_channel_number", source608_channel_number) @property @pulumi.getter(name="convert608To708") @@ -10809,10 +14786,27 @@ def __init__(__self__, *, :param pulumi.Input[str] convert608_to708: If upconvert, 608 data is both passed through via the “608 compatibility bytes” fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded. :param pulumi.Input[int] source608_channel_number: Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte20SourceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + convert608_to708=convert608_to708, + source608_channel_number=source608_channel_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + convert608_to708: Optional[pulumi.Input[str]] = None, + source608_channel_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if convert608_to708 is None and 'convert608To708' in kwargs: + convert608_to708 = kwargs['convert608To708'] + if source608_channel_number is None and 'source608ChannelNumber' in kwargs: + source608_channel_number = kwargs['source608ChannelNumber'] + if convert608_to708 is not None: - pulumi.set(__self__, "convert608_to708", convert608_to708) + _setter("convert608_to708", convert608_to708) if source608_channel_number is not None: - pulumi.set(__self__, "source608_channel_number", source608_channel_number) + _setter("source608_channel_number", source608_channel_number) @property @pulumi.getter(name="convert608To708") @@ -10848,10 +14842,25 @@ def __init__(__self__, *, :param pulumi.Input[str] ocr_language: If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image-based source to text. :param pulumi.Input[int] pid: Selects a specific PID from within a source. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte27SourceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ocr_language=ocr_language, + pid=pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ocr_language: Optional[pulumi.Input[str]] = None, + pid: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ocr_language is None and 'ocrLanguage' in kwargs: + ocr_language = kwargs['ocrLanguage'] + if ocr_language is not None: - pulumi.set(__self__, "ocr_language", ocr_language) + _setter("ocr_language", ocr_language) if pid is not None: - pulumi.set(__self__, "pid", pid) + _setter("pid", pid) @property @pulumi.getter(name="ocrLanguage") @@ -10887,10 +14896,27 @@ def __init__(__self__, *, :param pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsOutputRectangleArgs'] output_rectangle: Optionally defines a region where TTML style captions will be displayed. See Caption Rectangle for more details. :param pulumi.Input[str] page_number: Specifies the teletext page number within the data stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should be specified as a hexadecimal string with no “0x” prefix. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_rectangle=output_rectangle, + page_number=page_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_rectangle: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsOutputRectangleArgs']] = None, + page_number: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_rectangle is None and 'outputRectangle' in kwargs: + output_rectangle = kwargs['outputRectangle'] + if page_number is None and 'pageNumber' in kwargs: + page_number = kwargs['pageNumber'] + if output_rectangle is not None: - pulumi.set(__self__, "output_rectangle", output_rectangle) + _setter("output_rectangle", output_rectangle) if page_number is not None: - pulumi.set(__self__, "page_number", page_number) + _setter("page_number", page_number) @property @pulumi.getter(name="outputRectangle") @@ -10930,10 +14956,39 @@ def __init__(__self__, *, :param pulumi.Input[float] top_offset: See the description in left\\_offset. For top\\_offset, specify the position of the top edge of the rectangle, as a percentage of the underlying frame height, and relative to the top edge of the frame. For example, "10" means the measurement is 10% of the underlying frame height. The rectangle top edge starts at that position from the top edge of the frame. This field corresponds to tts:origin - Y in the TTML standard. :param pulumi.Input[float] width: See the description in left\\_offset. For width, specify the entire width of the rectangle as a percentage of the underlying frame width. For example, "80" means the rectangle width is 80% of the underlying frame width. The left\\_offset and rectangle\\_width must add up to 100% or less. This field corresponds to tts:extent - X in the TTML standard. """ - pulumi.set(__self__, "height", height) - pulumi.set(__self__, "left_offset", left_offset) - pulumi.set(__self__, "top_offset", top_offset) - pulumi.set(__self__, "width", width) + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsOutputRectangleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + height=height, + left_offset=left_offset, + top_offset=top_offset, + width=width, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + height: Optional[pulumi.Input[float]] = None, + left_offset: Optional[pulumi.Input[float]] = None, + top_offset: Optional[pulumi.Input[float]] = None, + width: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if height is None: + raise TypeError("Missing 'height' argument") + if left_offset is None and 'leftOffset' in kwargs: + left_offset = kwargs['leftOffset'] + if left_offset is None: + raise TypeError("Missing 'left_offset' argument") + if top_offset is None and 'topOffset' in kwargs: + top_offset = kwargs['topOffset'] + if top_offset is None: + raise TypeError("Missing 'top_offset' argument") + if width is None: + raise TypeError("Missing 'width' argument") + + _setter("height", height) + _setter("left_offset", left_offset) + _setter("top_offset", top_offset) + _setter("width", width) @property @pulumi.getter @@ -10993,10 +15048,27 @@ def __init__(__self__, *, :param pulumi.Input['ChannelInputAttachmentInputSettingsNetworkInputSettingsHlsInputSettingsArgs'] hls_input_settings: Specifies HLS input settings when the uri is for a HLS manifest. See HLS Input Settings for more details. :param pulumi.Input[str] server_validation: Check HTTPS server certificates. """ + ChannelInputAttachmentInputSettingsNetworkInputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hls_input_settings=hls_input_settings, + server_validation=server_validation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hls_input_settings: Optional[pulumi.Input['ChannelInputAttachmentInputSettingsNetworkInputSettingsHlsInputSettingsArgs']] = None, + server_validation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hls_input_settings is None and 'hlsInputSettings' in kwargs: + hls_input_settings = kwargs['hlsInputSettings'] + if server_validation is None and 'serverValidation' in kwargs: + server_validation = kwargs['serverValidation'] + if hls_input_settings is not None: - pulumi.set(__self__, "hls_input_settings", hls_input_settings) + _setter("hls_input_settings", hls_input_settings) if server_validation is not None: - pulumi.set(__self__, "server_validation", server_validation) + _setter("server_validation", server_validation) @property @pulumi.getter(name="hlsInputSettings") @@ -11037,16 +15109,41 @@ def __init__(__self__, *, :param pulumi.Input[int] retries: The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable. :param pulumi.Input[int] retry_interval: The number of seconds between retries when an attempt to read a manifest or segment fails. """ + ChannelInputAttachmentInputSettingsNetworkInputSettingsHlsInputSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bandwidth=bandwidth, + buffer_segments=buffer_segments, + retries=retries, + retry_interval=retry_interval, + scte35_source=scte35_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bandwidth: Optional[pulumi.Input[int]] = None, + buffer_segments: Optional[pulumi.Input[int]] = None, + retries: Optional[pulumi.Input[int]] = None, + retry_interval: Optional[pulumi.Input[int]] = None, + scte35_source: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if buffer_segments is None and 'bufferSegments' in kwargs: + buffer_segments = kwargs['bufferSegments'] + if retry_interval is None and 'retryInterval' in kwargs: + retry_interval = kwargs['retryInterval'] + if scte35_source is None and 'scte35Source' in kwargs: + scte35_source = kwargs['scte35Source'] + if bandwidth is not None: - pulumi.set(__self__, "bandwidth", bandwidth) + _setter("bandwidth", bandwidth) if buffer_segments is not None: - pulumi.set(__self__, "buffer_segments", buffer_segments) + _setter("buffer_segments", buffer_segments) if retries is not None: - pulumi.set(__self__, "retries", retries) + _setter("retries", retries) if retry_interval is not None: - pulumi.set(__self__, "retry_interval", retry_interval) + _setter("retry_interval", retry_interval) if scte35_source is not None: - pulumi.set(__self__, "scte35_source", scte35_source) + _setter("scte35_source", scte35_source) @property @pulumi.getter @@ -11111,10 +15208,27 @@ class ChannelInputAttachmentInputSettingsVideoSelectorArgs: def __init__(__self__, *, color_space: Optional[pulumi.Input[str]] = None, color_space_usage: Optional[pulumi.Input[str]] = None): + ChannelInputAttachmentInputSettingsVideoSelectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + color_space=color_space, + color_space_usage=color_space_usage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + color_space: Optional[pulumi.Input[str]] = None, + color_space_usage: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if color_space is None and 'colorSpace' in kwargs: + color_space = kwargs['colorSpace'] + if color_space_usage is None and 'colorSpaceUsage' in kwargs: + color_space_usage = kwargs['colorSpaceUsage'] + if color_space is not None: - pulumi.set(__self__, "color_space", color_space) + _setter("color_space", color_space) if color_space_usage is not None: - pulumi.set(__self__, "color_space_usage", color_space_usage) + _setter("color_space_usage", color_space_usage) @property @pulumi.getter(name="colorSpace") @@ -11141,9 +15255,34 @@ def __init__(__self__, *, codec: pulumi.Input[str], input_resolution: pulumi.Input[str], maximum_bitrate: pulumi.Input[str]): - pulumi.set(__self__, "codec", codec) - pulumi.set(__self__, "input_resolution", input_resolution) - pulumi.set(__self__, "maximum_bitrate", maximum_bitrate) + ChannelInputSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + codec=codec, + input_resolution=input_resolution, + maximum_bitrate=maximum_bitrate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + codec: Optional[pulumi.Input[str]] = None, + input_resolution: Optional[pulumi.Input[str]] = None, + maximum_bitrate: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if codec is None: + raise TypeError("Missing 'codec' argument") + if input_resolution is None and 'inputResolution' in kwargs: + input_resolution = kwargs['inputResolution'] + if input_resolution is None: + raise TypeError("Missing 'input_resolution' argument") + if maximum_bitrate is None and 'maximumBitrate' in kwargs: + maximum_bitrate = kwargs['maximumBitrate'] + if maximum_bitrate is None: + raise TypeError("Missing 'maximum_bitrate' argument") + + _setter("codec", codec) + _setter("input_resolution", input_resolution) + _setter("maximum_bitrate", maximum_bitrate) @property @pulumi.getter @@ -11182,8 +15321,29 @@ def __init__(__self__, *, :param pulumi.Input[str] maintenance_day: The day of the week to use for maintenance. :param pulumi.Input[str] maintenance_start_time: The hour maintenance will start. """ - pulumi.set(__self__, "maintenance_day", maintenance_day) - pulumi.set(__self__, "maintenance_start_time", maintenance_start_time) + ChannelMaintenanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maintenance_day=maintenance_day, + maintenance_start_time=maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maintenance_day: Optional[pulumi.Input[str]] = None, + maintenance_start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maintenance_day is None and 'maintenanceDay' in kwargs: + maintenance_day = kwargs['maintenanceDay'] + if maintenance_day is None: + raise TypeError("Missing 'maintenance_day' argument") + if maintenance_start_time is None and 'maintenanceStartTime' in kwargs: + maintenance_start_time = kwargs['maintenanceStartTime'] + if maintenance_start_time is None: + raise TypeError("Missing 'maintenance_start_time' argument") + + _setter("maintenance_day", maintenance_day) + _setter("maintenance_start_time", maintenance_start_time) @property @pulumi.getter(name="maintenanceDay") @@ -11223,14 +15383,47 @@ def __init__(__self__, *, :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) + ChannelVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + public_address_allocation_ids=public_address_allocation_ids, + subnet_ids=subnet_ids, + availability_zones=availability_zones, + network_interface_ids=network_interface_ids, + security_group_ids=security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + public_address_allocation_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if public_address_allocation_ids is None and 'publicAddressAllocationIds' in kwargs: + public_address_allocation_ids = kwargs['publicAddressAllocationIds'] + if public_address_allocation_ids is None: + raise TypeError("Missing 'public_address_allocation_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if network_interface_ids is None and 'networkInterfaceIds' in kwargs: + network_interface_ids = kwargs['networkInterfaceIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("public_address_allocation_ids", public_address_allocation_ids) + _setter("subnet_ids", subnet_ids) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if network_interface_ids is not None: - pulumi.set(__self__, "network_interface_ids", network_interface_ids) + _setter("network_interface_ids", network_interface_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) @property @pulumi.getter(name="publicAddressAllocationIds") @@ -11294,7 +15487,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] stream_name: A unique name for the location the RTMP stream is being pushed to. """ - pulumi.set(__self__, "stream_name", stream_name) + InputDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_name=stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if stream_name is None: + raise TypeError("Missing 'stream_name' argument") + + _setter("stream_name", stream_name) @property @pulumi.getter(name="streamName") @@ -11316,7 +15524,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] id: The unique ID for the device. """ - pulumi.set(__self__, "id", id) + InputInputDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) @property @pulumi.getter @@ -11338,7 +15559,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] flow_arn: The ARN of the MediaConnect Flow """ - pulumi.set(__self__, "flow_arn", flow_arn) + InputMediaConnectFlowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + flow_arn=flow_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flow_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_arn is None and 'flowArn' in kwargs: + flow_arn = kwargs['flowArn'] + if flow_arn is None: + raise TypeError("Missing 'flow_arn' argument") + + _setter("flow_arn", flow_arn) @property @pulumi.getter(name="flowArn") @@ -11360,7 +15596,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cidr: The IPv4 CIDR that's whitelisted. """ - pulumi.set(__self__, "cidr", cidr) + InputSecurityGroupWhitelistRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -11386,9 +15635,32 @@ def __init__(__self__, *, :param pulumi.Input[str] url: The URL where the stream is pulled from. :param pulumi.Input[str] username: The username for the input source. """ - pulumi.set(__self__, "password_param", password_param) - pulumi.set(__self__, "url", url) - pulumi.set(__self__, "username", username) + InputSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password_param=password_param, + url=url, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password_param: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + if password_param is None: + raise TypeError("Missing 'password_param' argument") + if url is None: + raise TypeError("Missing 'url' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password_param", password_param) + _setter("url", url) + _setter("username", username) @property @pulumi.getter(name="passwordParam") @@ -11436,9 +15708,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of 2 VPC subnet IDs from the same VPC. :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 Input. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + InputVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + security_group_ids=security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("subnet_ids", subnet_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) @property @pulumi.getter(name="subnetIds") @@ -11478,12 +15769,41 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_video_buffer_delay_milliseconds: Maximum video buffer delay. :param pulumi.Input[int] transport_stream_reserved_bitrate: Transport stream reserved bit rate. """ - pulumi.set(__self__, "transport_stream_bitrate", transport_stream_bitrate) - pulumi.set(__self__, "transport_stream_id", transport_stream_id) + MultiplexMultiplexSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + transport_stream_bitrate=transport_stream_bitrate, + transport_stream_id=transport_stream_id, + maximum_video_buffer_delay_milliseconds=maximum_video_buffer_delay_milliseconds, + transport_stream_reserved_bitrate=transport_stream_reserved_bitrate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transport_stream_bitrate: Optional[pulumi.Input[int]] = None, + transport_stream_id: Optional[pulumi.Input[int]] = None, + maximum_video_buffer_delay_milliseconds: Optional[pulumi.Input[int]] = None, + transport_stream_reserved_bitrate: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transport_stream_bitrate is None and 'transportStreamBitrate' in kwargs: + transport_stream_bitrate = kwargs['transportStreamBitrate'] + if transport_stream_bitrate is None: + raise TypeError("Missing 'transport_stream_bitrate' argument") + if transport_stream_id is None and 'transportStreamId' in kwargs: + transport_stream_id = kwargs['transportStreamId'] + if transport_stream_id is None: + raise TypeError("Missing 'transport_stream_id' argument") + if maximum_video_buffer_delay_milliseconds is None and 'maximumVideoBufferDelayMilliseconds' in kwargs: + maximum_video_buffer_delay_milliseconds = kwargs['maximumVideoBufferDelayMilliseconds'] + if transport_stream_reserved_bitrate is None and 'transportStreamReservedBitrate' in kwargs: + transport_stream_reserved_bitrate = kwargs['transportStreamReservedBitrate'] + + _setter("transport_stream_bitrate", transport_stream_bitrate) + _setter("transport_stream_id", transport_stream_id) if maximum_video_buffer_delay_milliseconds is not None: - pulumi.set(__self__, "maximum_video_buffer_delay_milliseconds", maximum_video_buffer_delay_milliseconds) + _setter("maximum_video_buffer_delay_milliseconds", maximum_video_buffer_delay_milliseconds) if transport_stream_reserved_bitrate is not None: - pulumi.set(__self__, "transport_stream_reserved_bitrate", transport_stream_reserved_bitrate) + _setter("transport_stream_reserved_bitrate", transport_stream_reserved_bitrate) @property @pulumi.getter(name="transportStreamBitrate") @@ -11547,12 +15867,41 @@ def __init__(__self__, *, :param pulumi.Input['MultiplexProgramMultiplexProgramSettingsServiceDescriptorArgs'] service_descriptor: Service Descriptor. See Service Descriptor for more details. :param pulumi.Input['MultiplexProgramMultiplexProgramSettingsVideoSettingsArgs'] video_settings: Video settings. See Video Settings for more details. """ - pulumi.set(__self__, "preferred_channel_pipeline", preferred_channel_pipeline) - pulumi.set(__self__, "program_number", program_number) + MultiplexProgramMultiplexProgramSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + preferred_channel_pipeline=preferred_channel_pipeline, + program_number=program_number, + service_descriptor=service_descriptor, + video_settings=video_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + preferred_channel_pipeline: Optional[pulumi.Input[str]] = None, + program_number: Optional[pulumi.Input[int]] = None, + service_descriptor: Optional[pulumi.Input['MultiplexProgramMultiplexProgramSettingsServiceDescriptorArgs']] = None, + video_settings: Optional[pulumi.Input['MultiplexProgramMultiplexProgramSettingsVideoSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if preferred_channel_pipeline is None and 'preferredChannelPipeline' in kwargs: + preferred_channel_pipeline = kwargs['preferredChannelPipeline'] + if preferred_channel_pipeline is None: + raise TypeError("Missing 'preferred_channel_pipeline' argument") + if program_number is None and 'programNumber' in kwargs: + program_number = kwargs['programNumber'] + if program_number is None: + raise TypeError("Missing 'program_number' argument") + if service_descriptor is None and 'serviceDescriptor' in kwargs: + service_descriptor = kwargs['serviceDescriptor'] + if video_settings is None and 'videoSettings' in kwargs: + video_settings = kwargs['videoSettings'] + + _setter("preferred_channel_pipeline", preferred_channel_pipeline) + _setter("program_number", program_number) if service_descriptor is not None: - pulumi.set(__self__, "service_descriptor", service_descriptor) + _setter("service_descriptor", service_descriptor) if video_settings is not None: - pulumi.set(__self__, "video_settings", video_settings) + _setter("video_settings", video_settings) @property @pulumi.getter(name="preferredChannelPipeline") @@ -11612,8 +15961,29 @@ def __init__(__self__, *, :param pulumi.Input[str] provider_name: Unique provider name. :param pulumi.Input[str] service_name: Unique service name. """ - pulumi.set(__self__, "provider_name", provider_name) - pulumi.set(__self__, "service_name", service_name) + MultiplexProgramMultiplexProgramSettingsServiceDescriptorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + provider_name=provider_name, + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provider_name: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if provider_name is None: + raise TypeError("Missing 'provider_name' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("provider_name", provider_name) + _setter("service_name", service_name) @property @pulumi.getter(name="providerName") @@ -11649,10 +16019,27 @@ def __init__(__self__, *, :param pulumi.Input[int] constant_bitrate: Constant bitrate value. :param pulumi.Input['MultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsArgs'] statmux_settings: Statmux settings. See Statmux Settings for more details. """ + MultiplexProgramMultiplexProgramSettingsVideoSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + constant_bitrate=constant_bitrate, + statmux_settings=statmux_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + constant_bitrate: Optional[pulumi.Input[int]] = None, + statmux_settings: Optional[pulumi.Input['MultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if constant_bitrate is None and 'constantBitrate' in kwargs: + constant_bitrate = kwargs['constantBitrate'] + if statmux_settings is None and 'statmuxSettings' in kwargs: + statmux_settings = kwargs['statmuxSettings'] + if constant_bitrate is not None: - pulumi.set(__self__, "constant_bitrate", constant_bitrate) + _setter("constant_bitrate", constant_bitrate) if statmux_settings is not None: - pulumi.set(__self__, "statmux_settings", statmux_settings) + _setter("statmux_settings", statmux_settings) @property @pulumi.getter(name="constantBitrate") @@ -11690,12 +16077,31 @@ def __init__(__self__, *, :param pulumi.Input[int] minimum_bitrate: Minimum bitrate. :param pulumi.Input[int] priority: Priority value. """ + MultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_bitrate=maximum_bitrate, + minimum_bitrate=minimum_bitrate, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_bitrate: Optional[pulumi.Input[int]] = None, + minimum_bitrate: Optional[pulumi.Input[int]] = None, + priority: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_bitrate is None and 'maximumBitrate' in kwargs: + maximum_bitrate = kwargs['maximumBitrate'] + if minimum_bitrate is None and 'minimumBitrate' in kwargs: + minimum_bitrate = kwargs['minimumBitrate'] + if maximum_bitrate is not None: - pulumi.set(__self__, "maximum_bitrate", maximum_bitrate) + _setter("maximum_bitrate", maximum_bitrate) if minimum_bitrate is not None: - pulumi.set(__self__, "minimum_bitrate", minimum_bitrate) + _setter("minimum_bitrate", minimum_bitrate) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) @property @pulumi.getter(name="maximumBitrate") diff --git a/sdk/python/pulumi_aws/medialive/channel.py b/sdk/python/pulumi_aws/medialive/channel.py index 56e502b4d96..aa545e3b4dc 100644 --- a/sdk/python/pulumi_aws/medialive/channel.py +++ b/sdk/python/pulumi_aws/medialive/channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,27 +47,88 @@ def __init__(__self__, *, :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. See VPC for more details. """ - pulumi.set(__self__, "channel_class", channel_class) - pulumi.set(__self__, "destinations", destinations) - pulumi.set(__self__, "encoder_settings", encoder_settings) - pulumi.set(__self__, "input_attachments", input_attachments) - pulumi.set(__self__, "input_specification", input_specification) + ChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_class=channel_class, + destinations=destinations, + encoder_settings=encoder_settings, + input_attachments=input_attachments, + input_specification=input_specification, + cdi_input_specification=cdi_input_specification, + log_level=log_level, + maintenance=maintenance, + name=name, + role_arn=role_arn, + start_channel=start_channel, + tags=tags, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_class: Optional[pulumi.Input[str]] = None, + destinations: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelDestinationArgs']]]] = None, + encoder_settings: Optional[pulumi.Input['ChannelEncoderSettingsArgs']] = None, + input_attachments: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelInputAttachmentArgs']]]] = None, + input_specification: Optional[pulumi.Input['ChannelInputSpecificationArgs']] = None, + cdi_input_specification: Optional[pulumi.Input['ChannelCdiInputSpecificationArgs']] = None, + log_level: Optional[pulumi.Input[str]] = None, + maintenance: Optional[pulumi.Input['ChannelMaintenanceArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + start_channel: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc: Optional[pulumi.Input['ChannelVpcArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_class is None and 'channelClass' in kwargs: + channel_class = kwargs['channelClass'] + if channel_class is None: + raise TypeError("Missing 'channel_class' argument") + if destinations is None: + raise TypeError("Missing 'destinations' argument") + if encoder_settings is None and 'encoderSettings' in kwargs: + encoder_settings = kwargs['encoderSettings'] + if encoder_settings is None: + raise TypeError("Missing 'encoder_settings' argument") + if input_attachments is None and 'inputAttachments' in kwargs: + input_attachments = kwargs['inputAttachments'] + if input_attachments is None: + raise TypeError("Missing 'input_attachments' argument") + if input_specification is None and 'inputSpecification' in kwargs: + input_specification = kwargs['inputSpecification'] + if input_specification is None: + raise TypeError("Missing 'input_specification' argument") + if cdi_input_specification is None and 'cdiInputSpecification' in kwargs: + cdi_input_specification = kwargs['cdiInputSpecification'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if start_channel is None and 'startChannel' in kwargs: + start_channel = kwargs['startChannel'] + + _setter("channel_class", channel_class) + _setter("destinations", destinations) + _setter("encoder_settings", encoder_settings) + _setter("input_attachments", input_attachments) + _setter("input_specification", input_specification) if cdi_input_specification is not None: - pulumi.set(__self__, "cdi_input_specification", cdi_input_specification) + _setter("cdi_input_specification", cdi_input_specification) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) if maintenance is not None: - pulumi.set(__self__, "maintenance", maintenance) + _setter("maintenance", maintenance) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if start_channel is not None: - pulumi.set(__self__, "start_channel", start_channel) + _setter("start_channel", start_channel) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc is not None: - pulumi.set(__self__, "vpc", vpc) + _setter("vpc", vpc) @property @pulumi.getter(name="channelClass") @@ -267,41 +328,102 @@ def __init__(__self__, *, :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. See VPC for more details. """ + _ChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cdi_input_specification=cdi_input_specification, + channel_class=channel_class, + channel_id=channel_id, + destinations=destinations, + encoder_settings=encoder_settings, + input_attachments=input_attachments, + input_specification=input_specification, + log_level=log_level, + maintenance=maintenance, + name=name, + role_arn=role_arn, + start_channel=start_channel, + tags=tags, + tags_all=tags_all, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cdi_input_specification: Optional[pulumi.Input['ChannelCdiInputSpecificationArgs']] = None, + channel_class: Optional[pulumi.Input[str]] = None, + channel_id: Optional[pulumi.Input[str]] = None, + destinations: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelDestinationArgs']]]] = None, + encoder_settings: Optional[pulumi.Input['ChannelEncoderSettingsArgs']] = None, + input_attachments: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelInputAttachmentArgs']]]] = None, + input_specification: Optional[pulumi.Input['ChannelInputSpecificationArgs']] = None, + log_level: Optional[pulumi.Input[str]] = None, + maintenance: Optional[pulumi.Input['ChannelMaintenanceArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + start_channel: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc: Optional[pulumi.Input['ChannelVpcArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cdi_input_specification is None and 'cdiInputSpecification' in kwargs: + cdi_input_specification = kwargs['cdiInputSpecification'] + if channel_class is None and 'channelClass' in kwargs: + channel_class = kwargs['channelClass'] + if channel_id is None and 'channelId' in kwargs: + channel_id = kwargs['channelId'] + if encoder_settings is None and 'encoderSettings' in kwargs: + encoder_settings = kwargs['encoderSettings'] + if input_attachments is None and 'inputAttachments' in kwargs: + input_attachments = kwargs['inputAttachments'] + if input_specification is None and 'inputSpecification' in kwargs: + input_specification = kwargs['inputSpecification'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if start_channel is None and 'startChannel' in kwargs: + start_channel = kwargs['startChannel'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cdi_input_specification is not None: - pulumi.set(__self__, "cdi_input_specification", cdi_input_specification) + _setter("cdi_input_specification", cdi_input_specification) if channel_class is not None: - pulumi.set(__self__, "channel_class", channel_class) + _setter("channel_class", channel_class) if channel_id is not None: - pulumi.set(__self__, "channel_id", channel_id) + _setter("channel_id", channel_id) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if encoder_settings is not None: - pulumi.set(__self__, "encoder_settings", encoder_settings) + _setter("encoder_settings", encoder_settings) if input_attachments is not None: - pulumi.set(__self__, "input_attachments", input_attachments) + _setter("input_attachments", input_attachments) if input_specification is not None: - pulumi.set(__self__, "input_specification", input_specification) + _setter("input_specification", input_specification) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) if maintenance is not None: - pulumi.set(__self__, "maintenance", maintenance) + _setter("maintenance", maintenance) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if start_channel is not None: - pulumi.set(__self__, "start_channel", start_channel) + _setter("start_channel", start_channel) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc is not None: - pulumi.set(__self__, "vpc", vpc) + _setter("vpc", vpc) @property @pulumi.getter @@ -715,6 +837,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -742,6 +868,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ChannelArgs.__new__(ChannelArgs) + cdi_input_specification = _utilities.configure(cdi_input_specification, ChannelCdiInputSpecificationArgs, True) __props__.__dict__["cdi_input_specification"] = cdi_input_specification if channel_class is None and not opts.urn: raise TypeError("Missing required property 'channel_class'") @@ -749,21 +876,25 @@ def _internal_init(__self__, if destinations is None and not opts.urn: raise TypeError("Missing required property 'destinations'") __props__.__dict__["destinations"] = destinations + encoder_settings = _utilities.configure(encoder_settings, ChannelEncoderSettingsArgs, True) if encoder_settings is None and not opts.urn: raise TypeError("Missing required property 'encoder_settings'") __props__.__dict__["encoder_settings"] = encoder_settings if input_attachments is None and not opts.urn: raise TypeError("Missing required property 'input_attachments'") __props__.__dict__["input_attachments"] = input_attachments + input_specification = _utilities.configure(input_specification, ChannelInputSpecificationArgs, True) if input_specification is None and not opts.urn: raise TypeError("Missing required property 'input_specification'") __props__.__dict__["input_specification"] = input_specification __props__.__dict__["log_level"] = log_level + maintenance = _utilities.configure(maintenance, ChannelMaintenanceArgs, True) __props__.__dict__["maintenance"] = maintenance __props__.__dict__["name"] = name __props__.__dict__["role_arn"] = role_arn __props__.__dict__["start_channel"] = start_channel __props__.__dict__["tags"] = tags + vpc = _utilities.configure(vpc, ChannelVpcArgs, True) __props__.__dict__["vpc"] = vpc __props__.__dict__["arn"] = None __props__.__dict__["channel_id"] = None diff --git a/sdk/python/pulumi_aws/medialive/input.py b/sdk/python/pulumi_aws/medialive/input.py index e5362743920..c6e98fdad7a 100644 --- a/sdk/python/pulumi_aws/medialive/input.py +++ b/sdk/python/pulumi_aws/medialive/input.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,25 +41,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the Input. 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['InputVpcArgs'] vpc: Settings for a private VPC Input. See VPC for more details. """ - pulumi.set(__self__, "type", type) + InputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + destinations=destinations, + input_devices=input_devices, + input_security_groups=input_security_groups, + media_connect_flows=media_connect_flows, + name=name, + role_arn=role_arn, + sources=sources, + tags=tags, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + destinations: Optional[pulumi.Input[Sequence[pulumi.Input['InputDestinationArgs']]]] = None, + input_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InputInputDeviceArgs']]]] = None, + input_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + media_connect_flows: Optional[pulumi.Input[Sequence[pulumi.Input['InputMediaConnectFlowArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + sources: Optional[pulumi.Input[Sequence[pulumi.Input['InputSourceArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc: Optional[pulumi.Input['InputVpcArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if input_devices is None and 'inputDevices' in kwargs: + input_devices = kwargs['inputDevices'] + if input_security_groups is None and 'inputSecurityGroups' in kwargs: + input_security_groups = kwargs['inputSecurityGroups'] + if media_connect_flows is None and 'mediaConnectFlows' in kwargs: + media_connect_flows = kwargs['mediaConnectFlows'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("type", type) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if input_devices is not None: - pulumi.set(__self__, "input_devices", input_devices) + _setter("input_devices", input_devices) if input_security_groups is not None: - pulumi.set(__self__, "input_security_groups", input_security_groups) + _setter("input_security_groups", input_security_groups) if media_connect_flows is not None: - pulumi.set(__self__, "media_connect_flows", media_connect_flows) + _setter("media_connect_flows", media_connect_flows) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if sources is not None: - pulumi.set(__self__, "sources", sources) + _setter("sources", sources) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc is not None: - pulumi.set(__self__, "vpc", vpc) + _setter("vpc", vpc) @property @pulumi.getter @@ -223,41 +262,100 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['InputVpcArgs'] vpc: Settings for a private VPC Input. See VPC for more details. """ + _InputState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attached_channels=attached_channels, + destinations=destinations, + input_class=input_class, + input_devices=input_devices, + input_partner_ids=input_partner_ids, + input_security_groups=input_security_groups, + input_source_type=input_source_type, + media_connect_flows=media_connect_flows, + name=name, + role_arn=role_arn, + sources=sources, + tags=tags, + tags_all=tags_all, + type=type, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attached_channels: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + destinations: Optional[pulumi.Input[Sequence[pulumi.Input['InputDestinationArgs']]]] = None, + input_class: Optional[pulumi.Input[str]] = None, + input_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InputInputDeviceArgs']]]] = None, + input_partner_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + input_source_type: Optional[pulumi.Input[str]] = None, + media_connect_flows: Optional[pulumi.Input[Sequence[pulumi.Input['InputMediaConnectFlowArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + sources: Optional[pulumi.Input[Sequence[pulumi.Input['InputSourceArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + vpc: Optional[pulumi.Input['InputVpcArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attached_channels is None and 'attachedChannels' in kwargs: + attached_channels = kwargs['attachedChannels'] + if input_class is None and 'inputClass' in kwargs: + input_class = kwargs['inputClass'] + if input_devices is None and 'inputDevices' in kwargs: + input_devices = kwargs['inputDevices'] + if input_partner_ids is None and 'inputPartnerIds' in kwargs: + input_partner_ids = kwargs['inputPartnerIds'] + if input_security_groups is None and 'inputSecurityGroups' in kwargs: + input_security_groups = kwargs['inputSecurityGroups'] + if input_source_type is None and 'inputSourceType' in kwargs: + input_source_type = kwargs['inputSourceType'] + if media_connect_flows is None and 'mediaConnectFlows' in kwargs: + media_connect_flows = kwargs['mediaConnectFlows'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attached_channels is not None: - pulumi.set(__self__, "attached_channels", attached_channels) + _setter("attached_channels", attached_channels) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if input_class is not None: - pulumi.set(__self__, "input_class", input_class) + _setter("input_class", input_class) if input_devices is not None: - pulumi.set(__self__, "input_devices", input_devices) + _setter("input_devices", input_devices) if input_partner_ids is not None: - pulumi.set(__self__, "input_partner_ids", input_partner_ids) + _setter("input_partner_ids", input_partner_ids) if input_security_groups is not None: - pulumi.set(__self__, "input_security_groups", input_security_groups) + _setter("input_security_groups", input_security_groups) if input_source_type is not None: - pulumi.set(__self__, "input_source_type", input_source_type) + _setter("input_source_type", input_source_type) if media_connect_flows is not None: - pulumi.set(__self__, "media_connect_flows", media_connect_flows) + _setter("media_connect_flows", media_connect_flows) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if sources is not None: - pulumi.set(__self__, "sources", sources) + _setter("sources", sources) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if vpc is not None: - pulumi.set(__self__, "vpc", vpc) + _setter("vpc", vpc) @property @pulumi.getter @@ -567,6 +665,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InputArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -602,6 +704,7 @@ def _internal_init(__self__, if type is None and not opts.urn: raise TypeError("Missing required property 'type'") __props__.__dict__["type"] = type + vpc = _utilities.configure(vpc, InputVpcArgs, True) __props__.__dict__["vpc"] = vpc __props__.__dict__["arn"] = None __props__.__dict__["attached_channels"] = None diff --git a/sdk/python/pulumi_aws/medialive/input_security_group.py b/sdk/python/pulumi_aws/medialive/input_security_group.py index 32f1b811202..6811dedbbb5 100644 --- a/sdk/python/pulumi_aws/medialive/input_security_group.py +++ b/sdk/python/pulumi_aws/medialive/input_security_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,26 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the InputSecurityGroup. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "whitelist_rules", whitelist_rules) + InputSecurityGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + whitelist_rules=whitelist_rules, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + whitelist_rules: Optional[pulumi.Input[Sequence[pulumi.Input['InputSecurityGroupWhitelistRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if whitelist_rules is None and 'whitelistRules' in kwargs: + whitelist_rules = kwargs['whitelistRules'] + if whitelist_rules is None: + raise TypeError("Missing 'whitelist_rules' argument") + + _setter("whitelist_rules", whitelist_rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="whitelistRules") @@ -73,19 +90,42 @@ def __init__(__self__, *, The following arguments are optional: """ + _InputSecurityGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + inputs=inputs, + tags=tags, + tags_all=tags_all, + whitelist_rules=whitelist_rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + inputs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + whitelist_rules: Optional[pulumi.Input[Sequence[pulumi.Input['InputSecurityGroupWhitelistRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if whitelist_rules is None and 'whitelistRules' in kwargs: + whitelist_rules = kwargs['whitelistRules'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if inputs is not None: - pulumi.set(__self__, "inputs", inputs) + _setter("inputs", inputs) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if whitelist_rules is not None: - pulumi.set(__self__, "whitelist_rules", whitelist_rules) + _setter("whitelist_rules", whitelist_rules) @property @pulumi.getter @@ -235,6 +275,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InputSecurityGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/medialive/multiplex.py b/sdk/python/pulumi_aws/medialive/multiplex.py index 1a5da7dcbf5..3b970a43508 100644 --- a/sdk/python/pulumi_aws/medialive/multiplex.py +++ b/sdk/python/pulumi_aws/medialive/multiplex.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,42 @@ def __init__(__self__, *, :param pulumi.Input[bool] start_multiplex: Whether to start the Multiplex. Defaults to `false`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the Multiplex. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "availability_zones", availability_zones) + MultiplexArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + multiplex_settings=multiplex_settings, + name=name, + start_multiplex=start_multiplex, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + multiplex_settings: Optional[pulumi.Input['MultiplexMultiplexSettingsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + start_multiplex: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if availability_zones is None: + raise TypeError("Missing 'availability_zones' argument") + if multiplex_settings is None and 'multiplexSettings' in kwargs: + multiplex_settings = kwargs['multiplexSettings'] + if start_multiplex is None and 'startMultiplex' in kwargs: + start_multiplex = kwargs['startMultiplex'] + + _setter("availability_zones", availability_zones) if multiplex_settings is not None: - pulumi.set(__self__, "multiplex_settings", multiplex_settings) + _setter("multiplex_settings", multiplex_settings) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if start_multiplex is not None: - pulumi.set(__self__, "start_multiplex", start_multiplex) + _setter("start_multiplex", start_multiplex) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="availabilityZones") @@ -125,23 +152,54 @@ def __init__(__self__, *, :param pulumi.Input[bool] start_multiplex: Whether to start the Multiplex. Defaults to `false`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the Multiplex. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + _MultiplexState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_zones=availability_zones, + multiplex_settings=multiplex_settings, + name=name, + start_multiplex=start_multiplex, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + multiplex_settings: Optional[pulumi.Input['MultiplexMultiplexSettingsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + start_multiplex: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if multiplex_settings is None and 'multiplexSettings' in kwargs: + multiplex_settings = kwargs['multiplexSettings'] + if start_multiplex is None and 'startMultiplex' in kwargs: + start_multiplex = kwargs['startMultiplex'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if multiplex_settings is not None: - pulumi.set(__self__, "multiplex_settings", multiplex_settings) + _setter("multiplex_settings", multiplex_settings) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if start_multiplex is not None: - pulumi.set(__self__, "start_multiplex", start_multiplex) + _setter("start_multiplex", start_multiplex) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -339,6 +397,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MultiplexArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -361,6 +423,7 @@ def _internal_init(__self__, if availability_zones is None and not opts.urn: raise TypeError("Missing required property 'availability_zones'") __props__.__dict__["availability_zones"] = availability_zones + multiplex_settings = _utilities.configure(multiplex_settings, MultiplexMultiplexSettingsArgs, True) __props__.__dict__["multiplex_settings"] = multiplex_settings __props__.__dict__["name"] = name __props__.__dict__["start_multiplex"] = start_multiplex diff --git a/sdk/python/pulumi_aws/medialive/multiplex_program.py b/sdk/python/pulumi_aws/medialive/multiplex_program.py index 58b2abe0a1c..b92cf6cb11c 100644 --- a/sdk/python/pulumi_aws/medialive/multiplex_program.py +++ b/sdk/python/pulumi_aws/medialive/multiplex_program.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,10 +27,35 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "multiplex_id", multiplex_id) - pulumi.set(__self__, "program_name", program_name) + MultiplexProgramArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + multiplex_id=multiplex_id, + program_name=program_name, + multiplex_program_settings=multiplex_program_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + multiplex_id: Optional[pulumi.Input[str]] = None, + program_name: Optional[pulumi.Input[str]] = None, + multiplex_program_settings: Optional[pulumi.Input['MultiplexProgramMultiplexProgramSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if multiplex_id is None and 'multiplexId' in kwargs: + multiplex_id = kwargs['multiplexId'] + if multiplex_id is None: + raise TypeError("Missing 'multiplex_id' argument") + if program_name is None and 'programName' in kwargs: + program_name = kwargs['programName'] + if program_name is None: + raise TypeError("Missing 'program_name' argument") + if multiplex_program_settings is None and 'multiplexProgramSettings' in kwargs: + multiplex_program_settings = kwargs['multiplexProgramSettings'] + + _setter("multiplex_id", multiplex_id) + _setter("program_name", program_name) if multiplex_program_settings is not None: - pulumi.set(__self__, "multiplex_program_settings", multiplex_program_settings) + _setter("multiplex_program_settings", multiplex_program_settings) @property @pulumi.getter(name="multiplexId") @@ -85,12 +110,33 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] program_name: Unique program name. """ + _MultiplexProgramState._configure( + lambda key, value: pulumi.set(__self__, key, value), + multiplex_id=multiplex_id, + multiplex_program_settings=multiplex_program_settings, + program_name=program_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + multiplex_id: Optional[pulumi.Input[str]] = None, + multiplex_program_settings: Optional[pulumi.Input['MultiplexProgramMultiplexProgramSettingsArgs']] = None, + program_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if multiplex_id is None and 'multiplexId' in kwargs: + multiplex_id = kwargs['multiplexId'] + if multiplex_program_settings is None and 'multiplexProgramSettings' in kwargs: + multiplex_program_settings = kwargs['multiplexProgramSettings'] + if program_name is None and 'programName' in kwargs: + program_name = kwargs['programName'] + if multiplex_id is not None: - pulumi.set(__self__, "multiplex_id", multiplex_id) + _setter("multiplex_id", multiplex_id) if multiplex_program_settings is not None: - pulumi.set(__self__, "multiplex_program_settings", multiplex_program_settings) + _setter("multiplex_program_settings", multiplex_program_settings) if program_name is not None: - pulumi.set(__self__, "program_name", program_name) + _setter("program_name", program_name) @property @pulumi.getter(name="multiplexId") @@ -256,6 +302,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MultiplexProgramArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -276,6 +326,7 @@ def _internal_init(__self__, if multiplex_id is None and not opts.urn: raise TypeError("Missing required property 'multiplex_id'") __props__.__dict__["multiplex_id"] = multiplex_id + multiplex_program_settings = _utilities.configure(multiplex_program_settings, MultiplexProgramMultiplexProgramSettingsArgs, True) __props__.__dict__["multiplex_program_settings"] = multiplex_program_settings if program_name is None and not opts.urn: raise TypeError("Missing required property 'program_name'") diff --git a/sdk/python/pulumi_aws/medialive/outputs.py b/sdk/python/pulumi_aws/medialive/outputs.py index 000e1aa943c..4eae103cd86 100644 --- a/sdk/python/pulumi_aws/medialive/outputs.py +++ b/sdk/python/pulumi_aws/medialive/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -190,7 +190,20 @@ def __init__(__self__, *, """ :param str resolution: Maximum CDI input resolution. """ - pulumi.set(__self__, "resolution", resolution) + ChannelCdiInputSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + resolution=resolution, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resolution: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resolution is None: + raise TypeError("Missing 'resolution' argument") + + _setter("resolution", resolution) @property @pulumi.getter @@ -233,13 +246,36 @@ def __init__(__self__, *, :param 'ChannelDestinationMultiplexSettingsArgs' multiplex_settings: Destination settings for a Multiplex output; one destination for both encoders. See Multiplex Settings for more details. :param Sequence['ChannelDestinationSettingArgs'] settings: Destination settings for a standard output; one destination for each redundant encoder. See Settings for more details. """ - pulumi.set(__self__, "id", id) + ChannelDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + media_package_settings=media_package_settings, + multiplex_settings=multiplex_settings, + settings=settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + media_package_settings: Optional[Sequence['outputs.ChannelDestinationMediaPackageSetting']] = None, + multiplex_settings: Optional['outputs.ChannelDestinationMultiplexSettings'] = None, + settings: Optional[Sequence['outputs.ChannelDestinationSetting']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if media_package_settings is None and 'mediaPackageSettings' in kwargs: + media_package_settings = kwargs['mediaPackageSettings'] + if multiplex_settings is None and 'multiplexSettings' in kwargs: + multiplex_settings = kwargs['multiplexSettings'] + + _setter("id", id) if media_package_settings is not None: - pulumi.set(__self__, "media_package_settings", media_package_settings) + _setter("media_package_settings", media_package_settings) if multiplex_settings is not None: - pulumi.set(__self__, "multiplex_settings", multiplex_settings) + _setter("multiplex_settings", multiplex_settings) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) @property @pulumi.getter @@ -298,7 +334,22 @@ def __init__(__self__, *, """ :param str channel_id: ID of the channel in MediaPackage that is the destination for this output group. """ - pulumi.set(__self__, "channel_id", channel_id) + ChannelDestinationMediaPackageSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_id=channel_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_id is None and 'channelId' in kwargs: + channel_id = kwargs['channelId'] + if channel_id is None: + raise TypeError("Missing 'channel_id' argument") + + _setter("channel_id", channel_id) @property @pulumi.getter(name="channelId") @@ -337,8 +388,29 @@ def __init__(__self__, *, :param str multiplex_id: The ID of the Multiplex that the encoder is providing output to. :param str program_name: The program name of the Multiplex program that the encoder is providing output to. """ - pulumi.set(__self__, "multiplex_id", multiplex_id) - pulumi.set(__self__, "program_name", program_name) + ChannelDestinationMultiplexSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + multiplex_id=multiplex_id, + program_name=program_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + multiplex_id: Optional[str] = None, + program_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if multiplex_id is None and 'multiplexId' in kwargs: + multiplex_id = kwargs['multiplexId'] + if multiplex_id is None: + raise TypeError("Missing 'multiplex_id' argument") + if program_name is None and 'programName' in kwargs: + program_name = kwargs['programName'] + if program_name is None: + raise TypeError("Missing 'program_name' argument") + + _setter("multiplex_id", multiplex_id) + _setter("program_name", program_name) @property @pulumi.getter(name="multiplexId") @@ -389,14 +461,35 @@ def __init__(__self__, *, :param str url: A URL specifying a destination. :param str username: Username for destination. """ + ChannelDestinationSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + password_param=password_param, + stream_name=stream_name, + url=url, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password_param: Optional[str] = None, + stream_name: Optional[str] = None, + url: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if stream_name is not None: - pulumi.set(__self__, "stream_name", stream_name) + _setter("stream_name", stream_name) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter(name="passwordParam") @@ -487,22 +580,71 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsNielsenConfigurationArgs' nielsen_configuration: Nielsen configuration settings. See Nielsen Configuration for more details. :param Sequence['ChannelEncoderSettingsVideoDescriptionArgs'] video_descriptions: Video Descriptions. See Video Descriptions for more details. """ - pulumi.set(__self__, "output_groups", output_groups) - pulumi.set(__self__, "timecode_config", timecode_config) + ChannelEncoderSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_groups=output_groups, + timecode_config=timecode_config, + audio_descriptions=audio_descriptions, + avail_blanking=avail_blanking, + caption_descriptions=caption_descriptions, + global_configuration=global_configuration, + motion_graphics_configuration=motion_graphics_configuration, + nielsen_configuration=nielsen_configuration, + video_descriptions=video_descriptions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_groups: Optional[Sequence['outputs.ChannelEncoderSettingsOutputGroup']] = None, + timecode_config: Optional['outputs.ChannelEncoderSettingsTimecodeConfig'] = None, + audio_descriptions: Optional[Sequence['outputs.ChannelEncoderSettingsAudioDescription']] = None, + avail_blanking: Optional['outputs.ChannelEncoderSettingsAvailBlanking'] = None, + caption_descriptions: Optional[Sequence['outputs.ChannelEncoderSettingsCaptionDescription']] = None, + global_configuration: Optional['outputs.ChannelEncoderSettingsGlobalConfiguration'] = None, + motion_graphics_configuration: Optional['outputs.ChannelEncoderSettingsMotionGraphicsConfiguration'] = None, + nielsen_configuration: Optional['outputs.ChannelEncoderSettingsNielsenConfiguration'] = None, + video_descriptions: Optional[Sequence['outputs.ChannelEncoderSettingsVideoDescription']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_groups is None and 'outputGroups' in kwargs: + output_groups = kwargs['outputGroups'] + if output_groups is None: + raise TypeError("Missing 'output_groups' argument") + if timecode_config is None and 'timecodeConfig' in kwargs: + timecode_config = kwargs['timecodeConfig'] + if timecode_config is None: + raise TypeError("Missing 'timecode_config' argument") + if audio_descriptions is None and 'audioDescriptions' in kwargs: + audio_descriptions = kwargs['audioDescriptions'] + if avail_blanking is None and 'availBlanking' in kwargs: + avail_blanking = kwargs['availBlanking'] + if caption_descriptions is None and 'captionDescriptions' in kwargs: + caption_descriptions = kwargs['captionDescriptions'] + if global_configuration is None and 'globalConfiguration' in kwargs: + global_configuration = kwargs['globalConfiguration'] + if motion_graphics_configuration is None and 'motionGraphicsConfiguration' in kwargs: + motion_graphics_configuration = kwargs['motionGraphicsConfiguration'] + if nielsen_configuration is None and 'nielsenConfiguration' in kwargs: + nielsen_configuration = kwargs['nielsenConfiguration'] + if video_descriptions is None and 'videoDescriptions' in kwargs: + video_descriptions = kwargs['videoDescriptions'] + + _setter("output_groups", output_groups) + _setter("timecode_config", timecode_config) if audio_descriptions is not None: - pulumi.set(__self__, "audio_descriptions", audio_descriptions) + _setter("audio_descriptions", audio_descriptions) if avail_blanking is not None: - pulumi.set(__self__, "avail_blanking", avail_blanking) + _setter("avail_blanking", avail_blanking) if caption_descriptions is not None: - pulumi.set(__self__, "caption_descriptions", caption_descriptions) + _setter("caption_descriptions", caption_descriptions) if global_configuration is not None: - pulumi.set(__self__, "global_configuration", global_configuration) + _setter("global_configuration", global_configuration) if motion_graphics_configuration is not None: - pulumi.set(__self__, "motion_graphics_configuration", motion_graphics_configuration) + _setter("motion_graphics_configuration", motion_graphics_configuration) if nielsen_configuration is not None: - pulumi.set(__self__, "nielsen_configuration", nielsen_configuration) + _setter("nielsen_configuration", nielsen_configuration) if video_descriptions is not None: - pulumi.set(__self__, "video_descriptions", video_descriptions) + _setter("video_descriptions", video_descriptions) @property @pulumi.getter(name="outputGroups") @@ -637,26 +779,81 @@ def __init__(__self__, *, :param str language_code: Selects a specific three-letter language code from within an audio source. :param str stream_name: Stream name RTMP destinations (URLs of type rtmp://) """ - pulumi.set(__self__, "audio_selector_name", audio_selector_name) - pulumi.set(__self__, "name", name) + ChannelEncoderSettingsAudioDescription._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_selector_name=audio_selector_name, + name=name, + audio_normalization_settings=audio_normalization_settings, + audio_type=audio_type, + audio_type_control=audio_type_control, + audio_watermark_settings=audio_watermark_settings, + codec_settings=codec_settings, + language_code=language_code, + language_code_control=language_code_control, + remix_settings=remix_settings, + stream_name=stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_selector_name: Optional[str] = None, + name: Optional[str] = None, + audio_normalization_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionAudioNormalizationSettings'] = None, + audio_type: Optional[str] = None, + audio_type_control: Optional[str] = None, + audio_watermark_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettings'] = None, + codec_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionCodecSettings'] = None, + language_code: Optional[str] = None, + language_code_control: Optional[str] = None, + remix_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionRemixSettings'] = None, + stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_selector_name is None and 'audioSelectorName' in kwargs: + audio_selector_name = kwargs['audioSelectorName'] + if audio_selector_name is None: + raise TypeError("Missing 'audio_selector_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if audio_normalization_settings is None and 'audioNormalizationSettings' in kwargs: + audio_normalization_settings = kwargs['audioNormalizationSettings'] + if audio_type is None and 'audioType' in kwargs: + audio_type = kwargs['audioType'] + if audio_type_control is None and 'audioTypeControl' in kwargs: + audio_type_control = kwargs['audioTypeControl'] + if audio_watermark_settings is None and 'audioWatermarkSettings' in kwargs: + audio_watermark_settings = kwargs['audioWatermarkSettings'] + if codec_settings is None and 'codecSettings' in kwargs: + codec_settings = kwargs['codecSettings'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code_control is None and 'languageCodeControl' in kwargs: + language_code_control = kwargs['languageCodeControl'] + if remix_settings is None and 'remixSettings' in kwargs: + remix_settings = kwargs['remixSettings'] + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + + _setter("audio_selector_name", audio_selector_name) + _setter("name", name) if audio_normalization_settings is not None: - pulumi.set(__self__, "audio_normalization_settings", audio_normalization_settings) + _setter("audio_normalization_settings", audio_normalization_settings) if audio_type is not None: - pulumi.set(__self__, "audio_type", audio_type) + _setter("audio_type", audio_type) if audio_type_control is not None: - pulumi.set(__self__, "audio_type_control", audio_type_control) + _setter("audio_type_control", audio_type_control) if audio_watermark_settings is not None: - pulumi.set(__self__, "audio_watermark_settings", audio_watermark_settings) + _setter("audio_watermark_settings", audio_watermark_settings) if codec_settings is not None: - pulumi.set(__self__, "codec_settings", codec_settings) + _setter("codec_settings", codec_settings) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if language_code_control is not None: - pulumi.set(__self__, "language_code_control", language_code_control) + _setter("language_code_control", language_code_control) if remix_settings is not None: - pulumi.set(__self__, "remix_settings", remix_settings) + _setter("remix_settings", remix_settings) if stream_name is not None: - pulumi.set(__self__, "stream_name", stream_name) + _setter("stream_name", stream_name) @property @pulumi.getter(name="audioSelectorName") @@ -771,12 +968,31 @@ def __init__(__self__, *, :param str algorithm_control: Algorithm control for the audio description. :param float target_lkfs: Target LKFS (loudness) to adjust volume to. """ + ChannelEncoderSettingsAudioDescriptionAudioNormalizationSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + algorithm=algorithm, + algorithm_control=algorithm_control, + target_lkfs=target_lkfs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + algorithm: Optional[str] = None, + algorithm_control: Optional[str] = None, + target_lkfs: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if algorithm_control is None and 'algorithmControl' in kwargs: + algorithm_control = kwargs['algorithmControl'] + if target_lkfs is None and 'targetLkfs' in kwargs: + target_lkfs = kwargs['targetLkfs'] + if algorithm is not None: - pulumi.set(__self__, "algorithm", algorithm) + _setter("algorithm", algorithm) if algorithm_control is not None: - pulumi.set(__self__, "algorithm_control", algorithm_control) + _setter("algorithm_control", algorithm_control) if target_lkfs is not None: - pulumi.set(__self__, "target_lkfs", target_lkfs) + _setter("target_lkfs", target_lkfs) @property @pulumi.getter @@ -824,8 +1040,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, nielsen_watermarks_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettings'] = None): + ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + nielsen_watermarks_settings=nielsen_watermarks_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nielsen_watermarks_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nielsen_watermarks_settings is None and 'nielsenWatermarksSettings' in kwargs: + nielsen_watermarks_settings = kwargs['nielsenWatermarksSettings'] + if nielsen_watermarks_settings is not None: - pulumi.set(__self__, "nielsen_watermarks_settings", nielsen_watermarks_settings) + _setter("nielsen_watermarks_settings", nielsen_watermarks_settings) @property @pulumi.getter(name="nielsenWatermarksSettings") @@ -865,12 +1094,33 @@ def __init__(__self__, *, :param str nielsen_distribution_type: Distribution types to assign to the watermarks. Options are `PROGRAM_CONTENT` and `FINAL_DISTRIBUTOR`. :param Sequence['ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenNaesIiNwSettingArgs'] nielsen_naes_ii_nw_settings: Used to insert watermarks of type Nielsen NAES, II (N2) and Nielsen NAES VI (NW). See Nielsen NAES II NW Settings for more details. """ + ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + nielsen_cbet_settings=nielsen_cbet_settings, + nielsen_distribution_type=nielsen_distribution_type, + nielsen_naes_ii_nw_settings=nielsen_naes_ii_nw_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nielsen_cbet_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenCbetSettings'] = None, + nielsen_distribution_type: Optional[str] = None, + nielsen_naes_ii_nw_settings: Optional[Sequence['outputs.ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenNaesIiNwSetting']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nielsen_cbet_settings is None and 'nielsenCbetSettings' in kwargs: + nielsen_cbet_settings = kwargs['nielsenCbetSettings'] + if nielsen_distribution_type is None and 'nielsenDistributionType' in kwargs: + nielsen_distribution_type = kwargs['nielsenDistributionType'] + if nielsen_naes_ii_nw_settings is None and 'nielsenNaesIiNwSettings' in kwargs: + nielsen_naes_ii_nw_settings = kwargs['nielsenNaesIiNwSettings'] + if nielsen_cbet_settings is not None: - pulumi.set(__self__, "nielsen_cbet_settings", nielsen_cbet_settings) + _setter("nielsen_cbet_settings", nielsen_cbet_settings) if nielsen_distribution_type is not None: - pulumi.set(__self__, "nielsen_distribution_type", nielsen_distribution_type) + _setter("nielsen_distribution_type", nielsen_distribution_type) if nielsen_naes_ii_nw_settings is not None: - pulumi.set(__self__, "nielsen_naes_ii_nw_settings", nielsen_naes_ii_nw_settings) + _setter("nielsen_naes_ii_nw_settings", nielsen_naes_ii_nw_settings) @property @pulumi.getter(name="nielsenCbetSettings") @@ -926,9 +1176,34 @@ def __init__(__self__, *, :param str cbet_stepaside: Determines the method of CBET insertion mode when prior encoding is detected on the same layer. :param str csid: CBET source ID to use in the watermark. """ - pulumi.set(__self__, "cbet_check_digit_string", cbet_check_digit_string) - pulumi.set(__self__, "cbet_stepaside", cbet_stepaside) - pulumi.set(__self__, "csid", csid) + ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenCbetSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + cbet_check_digit_string=cbet_check_digit_string, + cbet_stepaside=cbet_stepaside, + csid=csid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cbet_check_digit_string: Optional[str] = None, + cbet_stepaside: Optional[str] = None, + csid: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cbet_check_digit_string is None and 'cbetCheckDigitString' in kwargs: + cbet_check_digit_string = kwargs['cbetCheckDigitString'] + if cbet_check_digit_string is None: + raise TypeError("Missing 'cbet_check_digit_string' argument") + if cbet_stepaside is None and 'cbetStepaside' in kwargs: + cbet_stepaside = kwargs['cbetStepaside'] + if cbet_stepaside is None: + raise TypeError("Missing 'cbet_stepaside' argument") + if csid is None: + raise TypeError("Missing 'csid' argument") + + _setter("cbet_check_digit_string", cbet_check_digit_string) + _setter("cbet_stepaside", cbet_stepaside) + _setter("csid", csid) @property @pulumi.getter(name="cbetCheckDigitString") @@ -977,8 +1252,27 @@ def __init__(__self__, *, """ :param float sid: The Nielsen Source ID to include in the watermark. """ - pulumi.set(__self__, "check_digit_string", check_digit_string) - pulumi.set(__self__, "sid", sid) + ChannelEncoderSettingsAudioDescriptionAudioWatermarkSettingsNielsenWatermarksSettingsNielsenNaesIiNwSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + check_digit_string=check_digit_string, + sid=sid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + check_digit_string: Optional[str] = None, + sid: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if check_digit_string is None and 'checkDigitString' in kwargs: + check_digit_string = kwargs['checkDigitString'] + if check_digit_string is None: + raise TypeError("Missing 'check_digit_string' argument") + if sid is None: + raise TypeError("Missing 'sid' argument") + + _setter("check_digit_string", check_digit_string) + _setter("sid", sid) @property @pulumi.getter(name="checkDigitString") @@ -1039,20 +1333,57 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3AtmosSettingsArgs' eac3_atmos_settings: Eac3 Atmos Settings. See EAC3 Atmos Settings :param 'ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3SettingsArgs' eac3_settings: Eac3 Settings. See EAC3 Settings """ + ChannelEncoderSettingsAudioDescriptionCodecSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + aac_settings=aac_settings, + ac3_settings=ac3_settings, + eac3_atmos_settings=eac3_atmos_settings, + eac3_settings=eac3_settings, + mp2_settings=mp2_settings, + pass_through_settings=pass_through_settings, + wav_settings=wav_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aac_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionCodecSettingsAacSettings'] = None, + ac3_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionCodecSettingsAc3Settings'] = None, + eac3_atmos_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3AtmosSettings'] = None, + eac3_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3Settings'] = None, + mp2_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionCodecSettingsMp2Settings'] = None, + pass_through_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionCodecSettingsPassThroughSettings'] = None, + wav_settings: Optional['outputs.ChannelEncoderSettingsAudioDescriptionCodecSettingsWavSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aac_settings is None and 'aacSettings' in kwargs: + aac_settings = kwargs['aacSettings'] + if ac3_settings is None and 'ac3Settings' in kwargs: + ac3_settings = kwargs['ac3Settings'] + if eac3_atmos_settings is None and 'eac3AtmosSettings' in kwargs: + eac3_atmos_settings = kwargs['eac3AtmosSettings'] + if eac3_settings is None and 'eac3Settings' in kwargs: + eac3_settings = kwargs['eac3Settings'] + if mp2_settings is None and 'mp2Settings' in kwargs: + mp2_settings = kwargs['mp2Settings'] + if pass_through_settings is None and 'passThroughSettings' in kwargs: + pass_through_settings = kwargs['passThroughSettings'] + if wav_settings is None and 'wavSettings' in kwargs: + wav_settings = kwargs['wavSettings'] + if aac_settings is not None: - pulumi.set(__self__, "aac_settings", aac_settings) + _setter("aac_settings", aac_settings) if ac3_settings is not None: - pulumi.set(__self__, "ac3_settings", ac3_settings) + _setter("ac3_settings", ac3_settings) if eac3_atmos_settings is not None: - pulumi.set(__self__, "eac3_atmos_settings", eac3_atmos_settings) + _setter("eac3_atmos_settings", eac3_atmos_settings) if eac3_settings is not None: - pulumi.set(__self__, "eac3_settings", eac3_settings) + _setter("eac3_settings", eac3_settings) if mp2_settings is not None: - pulumi.set(__self__, "mp2_settings", mp2_settings) + _setter("mp2_settings", mp2_settings) if pass_through_settings is not None: - pulumi.set(__self__, "pass_through_settings", pass_through_settings) + _setter("pass_through_settings", pass_through_settings) if wav_settings is not None: - pulumi.set(__self__, "wav_settings", wav_settings) + _setter("wav_settings", wav_settings) @property @pulumi.getter(name="aacSettings") @@ -1152,24 +1483,63 @@ def __init__(__self__, *, :param str spec: Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2 Transport Stream containers. :param str vbr_quality: VBR Quality Level - Only used if rateControlMode is VBR. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsAacSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + coding_mode=coding_mode, + input_type=input_type, + profile=profile, + rate_control_mode=rate_control_mode, + raw_format=raw_format, + sample_rate=sample_rate, + spec=spec, + vbr_quality=vbr_quality, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[float] = None, + coding_mode: Optional[str] = None, + input_type: Optional[str] = None, + profile: Optional[str] = None, + rate_control_mode: Optional[str] = None, + raw_format: Optional[str] = None, + sample_rate: Optional[float] = None, + spec: Optional[str] = None, + vbr_quality: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if input_type is None and 'inputType' in kwargs: + input_type = kwargs['inputType'] + if rate_control_mode is None and 'rateControlMode' in kwargs: + rate_control_mode = kwargs['rateControlMode'] + if raw_format is None and 'rawFormat' in kwargs: + raw_format = kwargs['rawFormat'] + if sample_rate is None and 'sampleRate' in kwargs: + sample_rate = kwargs['sampleRate'] + if vbr_quality is None and 'vbrQuality' in kwargs: + vbr_quality = kwargs['vbrQuality'] + if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if input_type is not None: - pulumi.set(__self__, "input_type", input_type) + _setter("input_type", input_type) if profile is not None: - pulumi.set(__self__, "profile", profile) + _setter("profile", profile) if rate_control_mode is not None: - pulumi.set(__self__, "rate_control_mode", rate_control_mode) + _setter("rate_control_mode", rate_control_mode) if raw_format is not None: - pulumi.set(__self__, "raw_format", raw_format) + _setter("raw_format", raw_format) if sample_rate is not None: - pulumi.set(__self__, "sample_rate", sample_rate) + _setter("sample_rate", sample_rate) if spec is not None: - pulumi.set(__self__, "spec", spec) + _setter("spec", spec) if vbr_quality is not None: - pulumi.set(__self__, "vbr_quality", vbr_quality) + _setter("vbr_quality", vbr_quality) @property @pulumi.getter @@ -1288,20 +1658,53 @@ def __init__(__self__, *, :param str lfe_filter: When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. :param str metadata_control: Metadata control. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsAc3Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + bitstream_mode=bitstream_mode, + coding_mode=coding_mode, + dialnorm=dialnorm, + drc_profile=drc_profile, + lfe_filter=lfe_filter, + metadata_control=metadata_control, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[float] = None, + bitstream_mode: Optional[str] = None, + coding_mode: Optional[str] = None, + dialnorm: Optional[int] = None, + drc_profile: Optional[str] = None, + lfe_filter: Optional[str] = None, + metadata_control: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bitstream_mode is None and 'bitstreamMode' in kwargs: + bitstream_mode = kwargs['bitstreamMode'] + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if drc_profile is None and 'drcProfile' in kwargs: + drc_profile = kwargs['drcProfile'] + if lfe_filter is None and 'lfeFilter' in kwargs: + lfe_filter = kwargs['lfeFilter'] + if metadata_control is None and 'metadataControl' in kwargs: + metadata_control = kwargs['metadataControl'] + if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if bitstream_mode is not None: - pulumi.set(__self__, "bitstream_mode", bitstream_mode) + _setter("bitstream_mode", bitstream_mode) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if dialnorm is not None: - pulumi.set(__self__, "dialnorm", dialnorm) + _setter("dialnorm", dialnorm) if drc_profile is not None: - pulumi.set(__self__, "drc_profile", drc_profile) + _setter("drc_profile", drc_profile) if lfe_filter is not None: - pulumi.set(__self__, "lfe_filter", lfe_filter) + _setter("lfe_filter", lfe_filter) if metadata_control is not None: - pulumi.set(__self__, "metadata_control", metadata_control) + _setter("metadata_control", metadata_control) @property @pulumi.getter @@ -1404,20 +1807,53 @@ def __init__(__self__, *, :param float height_trim: Height dimensional trim. :param float surround_trim: Surround dimensional trim. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3AtmosSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + coding_mode=coding_mode, + dialnorm=dialnorm, + drc_line=drc_line, + drc_rf=drc_rf, + height_trim=height_trim, + surround_trim=surround_trim, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[float] = None, + coding_mode: Optional[str] = None, + dialnorm: Optional[float] = None, + drc_line: Optional[str] = None, + drc_rf: Optional[str] = None, + height_trim: Optional[float] = None, + surround_trim: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if drc_line is None and 'drcLine' in kwargs: + drc_line = kwargs['drcLine'] + if drc_rf is None and 'drcRf' in kwargs: + drc_rf = kwargs['drcRf'] + if height_trim is None and 'heightTrim' in kwargs: + height_trim = kwargs['heightTrim'] + if surround_trim is None and 'surroundTrim' in kwargs: + surround_trim = kwargs['surroundTrim'] + if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if dialnorm is not None: - pulumi.set(__self__, "dialnorm", dialnorm) + _setter("dialnorm", dialnorm) if drc_line is not None: - pulumi.set(__self__, "drc_line", drc_line) + _setter("drc_line", drc_line) if drc_rf is not None: - pulumi.set(__self__, "drc_rf", drc_rf) + _setter("drc_rf", drc_rf) if height_trim is not None: - pulumi.set(__self__, "height_trim", height_trim) + _setter("height_trim", height_trim) if surround_trim is not None: - pulumi.set(__self__, "surround_trim", surround_trim) + _setter("surround_trim", surround_trim) @property @pulumi.getter @@ -1561,46 +1997,131 @@ def __init__(__self__, *, :param str lfe_filter: When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. :param str metadata_control: Metadata control. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsEac3Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + attenuation_control=attenuation_control, + bitrate=bitrate, + bitstream_mode=bitstream_mode, + coding_mode=coding_mode, + dc_filter=dc_filter, + dialnorm=dialnorm, + drc_line=drc_line, + drc_rf=drc_rf, + lfe_control=lfe_control, + lfe_filter=lfe_filter, + lo_ro_center_mix_level=lo_ro_center_mix_level, + lo_ro_surround_mix_level=lo_ro_surround_mix_level, + lt_rt_center_mix_level=lt_rt_center_mix_level, + lt_rt_surround_mix_level=lt_rt_surround_mix_level, + metadata_control=metadata_control, + passthrough_control=passthrough_control, + phase_control=phase_control, + stereo_downmix=stereo_downmix, + surround_ex_mode=surround_ex_mode, + surround_mode=surround_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attenuation_control: Optional[str] = None, + bitrate: Optional[float] = None, + bitstream_mode: Optional[str] = None, + coding_mode: Optional[str] = None, + dc_filter: Optional[str] = None, + dialnorm: Optional[int] = None, + drc_line: Optional[str] = None, + drc_rf: Optional[str] = None, + lfe_control: Optional[str] = None, + lfe_filter: Optional[str] = None, + lo_ro_center_mix_level: Optional[float] = None, + lo_ro_surround_mix_level: Optional[float] = None, + lt_rt_center_mix_level: Optional[float] = None, + lt_rt_surround_mix_level: Optional[float] = None, + metadata_control: Optional[str] = None, + passthrough_control: Optional[str] = None, + phase_control: Optional[str] = None, + stereo_downmix: Optional[str] = None, + surround_ex_mode: Optional[str] = None, + surround_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attenuation_control is None and 'attenuationControl' in kwargs: + attenuation_control = kwargs['attenuationControl'] + if bitstream_mode is None and 'bitstreamMode' in kwargs: + bitstream_mode = kwargs['bitstreamMode'] + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if dc_filter is None and 'dcFilter' in kwargs: + dc_filter = kwargs['dcFilter'] + if drc_line is None and 'drcLine' in kwargs: + drc_line = kwargs['drcLine'] + if drc_rf is None and 'drcRf' in kwargs: + drc_rf = kwargs['drcRf'] + if lfe_control is None and 'lfeControl' in kwargs: + lfe_control = kwargs['lfeControl'] + if lfe_filter is None and 'lfeFilter' in kwargs: + lfe_filter = kwargs['lfeFilter'] + if lo_ro_center_mix_level is None and 'loRoCenterMixLevel' in kwargs: + lo_ro_center_mix_level = kwargs['loRoCenterMixLevel'] + if lo_ro_surround_mix_level is None and 'loRoSurroundMixLevel' in kwargs: + lo_ro_surround_mix_level = kwargs['loRoSurroundMixLevel'] + if lt_rt_center_mix_level is None and 'ltRtCenterMixLevel' in kwargs: + lt_rt_center_mix_level = kwargs['ltRtCenterMixLevel'] + if lt_rt_surround_mix_level is None and 'ltRtSurroundMixLevel' in kwargs: + lt_rt_surround_mix_level = kwargs['ltRtSurroundMixLevel'] + if metadata_control is None and 'metadataControl' in kwargs: + metadata_control = kwargs['metadataControl'] + if passthrough_control is None and 'passthroughControl' in kwargs: + passthrough_control = kwargs['passthroughControl'] + if phase_control is None and 'phaseControl' in kwargs: + phase_control = kwargs['phaseControl'] + if stereo_downmix is None and 'stereoDownmix' in kwargs: + stereo_downmix = kwargs['stereoDownmix'] + if surround_ex_mode is None and 'surroundExMode' in kwargs: + surround_ex_mode = kwargs['surroundExMode'] + if surround_mode is None and 'surroundMode' in kwargs: + surround_mode = kwargs['surroundMode'] + if attenuation_control is not None: - pulumi.set(__self__, "attenuation_control", attenuation_control) + _setter("attenuation_control", attenuation_control) if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if bitstream_mode is not None: - pulumi.set(__self__, "bitstream_mode", bitstream_mode) + _setter("bitstream_mode", bitstream_mode) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if dc_filter is not None: - pulumi.set(__self__, "dc_filter", dc_filter) + _setter("dc_filter", dc_filter) if dialnorm is not None: - pulumi.set(__self__, "dialnorm", dialnorm) + _setter("dialnorm", dialnorm) if drc_line is not None: - pulumi.set(__self__, "drc_line", drc_line) + _setter("drc_line", drc_line) if drc_rf is not None: - pulumi.set(__self__, "drc_rf", drc_rf) + _setter("drc_rf", drc_rf) if lfe_control is not None: - pulumi.set(__self__, "lfe_control", lfe_control) + _setter("lfe_control", lfe_control) if lfe_filter is not None: - pulumi.set(__self__, "lfe_filter", lfe_filter) + _setter("lfe_filter", lfe_filter) if lo_ro_center_mix_level is not None: - pulumi.set(__self__, "lo_ro_center_mix_level", lo_ro_center_mix_level) + _setter("lo_ro_center_mix_level", lo_ro_center_mix_level) if lo_ro_surround_mix_level is not None: - pulumi.set(__self__, "lo_ro_surround_mix_level", lo_ro_surround_mix_level) + _setter("lo_ro_surround_mix_level", lo_ro_surround_mix_level) if lt_rt_center_mix_level is not None: - pulumi.set(__self__, "lt_rt_center_mix_level", lt_rt_center_mix_level) + _setter("lt_rt_center_mix_level", lt_rt_center_mix_level) if lt_rt_surround_mix_level is not None: - pulumi.set(__self__, "lt_rt_surround_mix_level", lt_rt_surround_mix_level) + _setter("lt_rt_surround_mix_level", lt_rt_surround_mix_level) if metadata_control is not None: - pulumi.set(__self__, "metadata_control", metadata_control) + _setter("metadata_control", metadata_control) if passthrough_control is not None: - pulumi.set(__self__, "passthrough_control", passthrough_control) + _setter("passthrough_control", passthrough_control) if phase_control is not None: - pulumi.set(__self__, "phase_control", phase_control) + _setter("phase_control", phase_control) if stereo_downmix is not None: - pulumi.set(__self__, "stereo_downmix", stereo_downmix) + _setter("stereo_downmix", stereo_downmix) if surround_ex_mode is not None: - pulumi.set(__self__, "surround_ex_mode", surround_ex_mode) + _setter("surround_ex_mode", surround_ex_mode) if surround_mode is not None: - pulumi.set(__self__, "surround_mode", surround_mode) + _setter("surround_mode", surround_mode) @property @pulumi.getter(name="attenuationControl") @@ -1760,12 +2281,31 @@ def __init__(__self__, *, :param str coding_mode: Mono, Stereo, or 5.1 channel layout. :param float sample_rate: Sample rate in Hz. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsMp2Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + coding_mode=coding_mode, + sample_rate=sample_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[float] = None, + coding_mode: Optional[str] = None, + sample_rate: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if sample_rate is None and 'sampleRate' in kwargs: + sample_rate = kwargs['sampleRate'] + if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if sample_rate is not None: - pulumi.set(__self__, "sample_rate", sample_rate) + _setter("sample_rate", sample_rate) @property @pulumi.getter @@ -1796,6 +2336,13 @@ def sample_rate(self) -> Optional[float]: class ChannelEncoderSettingsAudioDescriptionCodecSettingsPassThroughSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -1829,12 +2376,33 @@ def __init__(__self__, *, :param str coding_mode: Mono, Stereo, or 5.1 channel layout. :param float sample_rate: Sample rate in Hz. """ + ChannelEncoderSettingsAudioDescriptionCodecSettingsWavSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + bit_depth=bit_depth, + coding_mode=coding_mode, + sample_rate=sample_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bit_depth: Optional[float] = None, + coding_mode: Optional[str] = None, + sample_rate: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bit_depth is None and 'bitDepth' in kwargs: + bit_depth = kwargs['bitDepth'] + if coding_mode is None and 'codingMode' in kwargs: + coding_mode = kwargs['codingMode'] + if sample_rate is None and 'sampleRate' in kwargs: + sample_rate = kwargs['sampleRate'] + if bit_depth is not None: - pulumi.set(__self__, "bit_depth", bit_depth) + _setter("bit_depth", bit_depth) if coding_mode is not None: - pulumi.set(__self__, "coding_mode", coding_mode) + _setter("coding_mode", coding_mode) if sample_rate is not None: - pulumi.set(__self__, "sample_rate", sample_rate) + _setter("sample_rate", sample_rate) @property @pulumi.getter(name="bitDepth") @@ -1885,11 +2453,34 @@ def __init__(__self__, *, channel_mappings: Sequence['outputs.ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMapping'], channels_in: Optional[int] = None, channels_out: Optional[int] = None): - pulumi.set(__self__, "channel_mappings", channel_mappings) + ChannelEncoderSettingsAudioDescriptionRemixSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_mappings=channel_mappings, + channels_in=channels_in, + channels_out=channels_out, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_mappings: Optional[Sequence['outputs.ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMapping']] = None, + channels_in: Optional[int] = None, + channels_out: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_mappings is None and 'channelMappings' in kwargs: + channel_mappings = kwargs['channelMappings'] + if channel_mappings is None: + raise TypeError("Missing 'channel_mappings' argument") + if channels_in is None and 'channelsIn' in kwargs: + channels_in = kwargs['channelsIn'] + if channels_out is None and 'channelsOut' in kwargs: + channels_out = kwargs['channelsOut'] + + _setter("channel_mappings", channel_mappings) if channels_in is not None: - pulumi.set(__self__, "channels_in", channels_in) + _setter("channels_in", channels_in) if channels_out is not None: - pulumi.set(__self__, "channels_out", channels_out) + _setter("channels_out", channels_out) @property @pulumi.getter(name="channelMappings") @@ -1931,8 +2522,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, input_channel_levels: Sequence['outputs.ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingInputChannelLevel'], output_channel: int): - pulumi.set(__self__, "input_channel_levels", input_channel_levels) - pulumi.set(__self__, "output_channel", output_channel) + ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_channel_levels=input_channel_levels, + output_channel=output_channel, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_channel_levels: Optional[Sequence['outputs.ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingInputChannelLevel']] = None, + output_channel: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_channel_levels is None and 'inputChannelLevels' in kwargs: + input_channel_levels = kwargs['inputChannelLevels'] + if input_channel_levels is None: + raise TypeError("Missing 'input_channel_levels' argument") + if output_channel is None and 'outputChannel' in kwargs: + output_channel = kwargs['outputChannel'] + if output_channel is None: + raise TypeError("Missing 'output_channel' argument") + + _setter("input_channel_levels", input_channel_levels) + _setter("output_channel", output_channel) @property @pulumi.getter(name="inputChannelLevels") @@ -1967,8 +2579,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, gain: int, input_channel: int): - pulumi.set(__self__, "gain", gain) - pulumi.set(__self__, "input_channel", input_channel) + ChannelEncoderSettingsAudioDescriptionRemixSettingsChannelMappingInputChannelLevel._configure( + lambda key, value: pulumi.set(__self__, key, value), + gain=gain, + input_channel=input_channel, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gain: Optional[int] = None, + input_channel: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gain is None: + raise TypeError("Missing 'gain' argument") + if input_channel is None and 'inputChannel' in kwargs: + input_channel = kwargs['inputChannel'] + if input_channel is None: + raise TypeError("Missing 'input_channel' argument") + + _setter("gain", gain) + _setter("input_channel", input_channel) @property @pulumi.getter @@ -2007,10 +2638,25 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsAvailBlankingAvailBlankingImageArgs' avail_blanking_image: Blanking image to be used. See Avail Blanking Image for more details. :param str state: When set to enabled, causes video, audio and captions to be blanked when insertion metadata is added. """ + ChannelEncoderSettingsAvailBlanking._configure( + lambda key, value: pulumi.set(__self__, key, value), + avail_blanking_image=avail_blanking_image, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + avail_blanking_image: Optional['outputs.ChannelEncoderSettingsAvailBlankingAvailBlankingImage'] = None, + state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if avail_blanking_image is None and 'availBlankingImage' in kwargs: + avail_blanking_image = kwargs['availBlankingImage'] + if avail_blanking_image is not None: - pulumi.set(__self__, "avail_blanking_image", avail_blanking_image) + _setter("avail_blanking_image", avail_blanking_image) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="availBlankingImage") @@ -2057,11 +2703,30 @@ def __init__(__self__, *, :param str password_param: Key used to extract the password from EC2 Parameter store. :param str username: . Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsAvailBlankingAvailBlankingImage._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[str] = None, + password_param: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -2128,16 +2793,49 @@ def __init__(__self__, *, :param str language_code: ISO 639-2 three-digit code. :param str language_description: Human readable information to indicate captions available for players (eg. English, or Spanish). """ - pulumi.set(__self__, "caption_selector_name", caption_selector_name) - pulumi.set(__self__, "name", name) + ChannelEncoderSettingsCaptionDescription._configure( + lambda key, value: pulumi.set(__self__, key, value), + caption_selector_name=caption_selector_name, + name=name, + accessibility=accessibility, + destination_settings=destination_settings, + language_code=language_code, + language_description=language_description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caption_selector_name: Optional[str] = None, + name: Optional[str] = None, + accessibility: Optional[str] = None, + destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettings'] = None, + language_code: Optional[str] = None, + language_description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caption_selector_name is None and 'captionSelectorName' in kwargs: + caption_selector_name = kwargs['captionSelectorName'] + if caption_selector_name is None: + raise TypeError("Missing 'caption_selector_name' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if destination_settings is None and 'destinationSettings' in kwargs: + destination_settings = kwargs['destinationSettings'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_description is None and 'languageDescription' in kwargs: + language_description = kwargs['languageDescription'] + + _setter("caption_selector_name", caption_selector_name) + _setter("name", name) if accessibility is not None: - pulumi.set(__self__, "accessibility", accessibility) + _setter("accessibility", accessibility) if destination_settings is not None: - pulumi.set(__self__, "destination_settings", destination_settings) + _setter("destination_settings", destination_settings) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if language_description is not None: - pulumi.set(__self__, "language_description", language_description) + _setter("language_description", language_description) @property @pulumi.getter(name="captionSelectorName") @@ -2260,32 +2958,93 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTtmlDestinationSettingsArgs' ttml_destination_settings: TTML Destination Settings. See TTML Destination Settings for more details. :param 'ChannelEncoderSettingsCaptionDescriptionDestinationSettingsWebvttDestinationSettingsArgs' webvtt_destination_settings: WebVTT Destination Settings. See WebVTT Destination Settings for more details. """ + ChannelEncoderSettingsCaptionDescriptionDestinationSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + arib_destination_settings=arib_destination_settings, + burn_in_destination_settings=burn_in_destination_settings, + dvb_sub_destination_settings=dvb_sub_destination_settings, + ebu_tt_d_destination_settings=ebu_tt_d_destination_settings, + embedded_destination_settings=embedded_destination_settings, + embedded_plus_scte20_destination_settings=embedded_plus_scte20_destination_settings, + rtmp_caption_info_destination_settings=rtmp_caption_info_destination_settings, + scte20_plus_embedded_destination_settings=scte20_plus_embedded_destination_settings, + scte27_destination_settings=scte27_destination_settings, + smpte_tt_destination_settings=smpte_tt_destination_settings, + teletext_destination_settings=teletext_destination_settings, + ttml_destination_settings=ttml_destination_settings, + webvtt_destination_settings=webvtt_destination_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arib_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings'] = None, + burn_in_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettings'] = None, + dvb_sub_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettings'] = None, + ebu_tt_d_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEbuTtDDestinationSettings'] = None, + embedded_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEmbeddedDestinationSettings'] = None, + embedded_plus_scte20_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEmbeddedPlusScte20DestinationSettings'] = None, + rtmp_caption_info_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsRtmpCaptionInfoDestinationSettings'] = None, + scte20_plus_embedded_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsScte20PlusEmbeddedDestinationSettings'] = None, + scte27_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsScte27DestinationSettings'] = None, + smpte_tt_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsSmpteTtDestinationSettings'] = None, + teletext_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTeletextDestinationSettings'] = None, + ttml_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTtmlDestinationSettings'] = None, + webvtt_destination_settings: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsWebvttDestinationSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arib_destination_settings is None and 'aribDestinationSettings' in kwargs: + arib_destination_settings = kwargs['aribDestinationSettings'] + if burn_in_destination_settings is None and 'burnInDestinationSettings' in kwargs: + burn_in_destination_settings = kwargs['burnInDestinationSettings'] + if dvb_sub_destination_settings is None and 'dvbSubDestinationSettings' in kwargs: + dvb_sub_destination_settings = kwargs['dvbSubDestinationSettings'] + if ebu_tt_d_destination_settings is None and 'ebuTtDDestinationSettings' in kwargs: + ebu_tt_d_destination_settings = kwargs['ebuTtDDestinationSettings'] + if embedded_destination_settings is None and 'embeddedDestinationSettings' in kwargs: + embedded_destination_settings = kwargs['embeddedDestinationSettings'] + if embedded_plus_scte20_destination_settings is None and 'embeddedPlusScte20DestinationSettings' in kwargs: + embedded_plus_scte20_destination_settings = kwargs['embeddedPlusScte20DestinationSettings'] + if rtmp_caption_info_destination_settings is None and 'rtmpCaptionInfoDestinationSettings' in kwargs: + rtmp_caption_info_destination_settings = kwargs['rtmpCaptionInfoDestinationSettings'] + if scte20_plus_embedded_destination_settings is None and 'scte20PlusEmbeddedDestinationSettings' in kwargs: + scte20_plus_embedded_destination_settings = kwargs['scte20PlusEmbeddedDestinationSettings'] + if scte27_destination_settings is None and 'scte27DestinationSettings' in kwargs: + scte27_destination_settings = kwargs['scte27DestinationSettings'] + if smpte_tt_destination_settings is None and 'smpteTtDestinationSettings' in kwargs: + smpte_tt_destination_settings = kwargs['smpteTtDestinationSettings'] + if teletext_destination_settings is None and 'teletextDestinationSettings' in kwargs: + teletext_destination_settings = kwargs['teletextDestinationSettings'] + if ttml_destination_settings is None and 'ttmlDestinationSettings' in kwargs: + ttml_destination_settings = kwargs['ttmlDestinationSettings'] + if webvtt_destination_settings is None and 'webvttDestinationSettings' in kwargs: + webvtt_destination_settings = kwargs['webvttDestinationSettings'] + if arib_destination_settings is not None: - pulumi.set(__self__, "arib_destination_settings", arib_destination_settings) + _setter("arib_destination_settings", arib_destination_settings) if burn_in_destination_settings is not None: - pulumi.set(__self__, "burn_in_destination_settings", burn_in_destination_settings) + _setter("burn_in_destination_settings", burn_in_destination_settings) if dvb_sub_destination_settings is not None: - pulumi.set(__self__, "dvb_sub_destination_settings", dvb_sub_destination_settings) + _setter("dvb_sub_destination_settings", dvb_sub_destination_settings) if ebu_tt_d_destination_settings is not None: - pulumi.set(__self__, "ebu_tt_d_destination_settings", ebu_tt_d_destination_settings) + _setter("ebu_tt_d_destination_settings", ebu_tt_d_destination_settings) if embedded_destination_settings is not None: - pulumi.set(__self__, "embedded_destination_settings", embedded_destination_settings) + _setter("embedded_destination_settings", embedded_destination_settings) if embedded_plus_scte20_destination_settings is not None: - pulumi.set(__self__, "embedded_plus_scte20_destination_settings", embedded_plus_scte20_destination_settings) + _setter("embedded_plus_scte20_destination_settings", embedded_plus_scte20_destination_settings) if rtmp_caption_info_destination_settings is not None: - pulumi.set(__self__, "rtmp_caption_info_destination_settings", rtmp_caption_info_destination_settings) + _setter("rtmp_caption_info_destination_settings", rtmp_caption_info_destination_settings) if scte20_plus_embedded_destination_settings is not None: - pulumi.set(__self__, "scte20_plus_embedded_destination_settings", scte20_plus_embedded_destination_settings) + _setter("scte20_plus_embedded_destination_settings", scte20_plus_embedded_destination_settings) if scte27_destination_settings is not None: - pulumi.set(__self__, "scte27_destination_settings", scte27_destination_settings) + _setter("scte27_destination_settings", scte27_destination_settings) if smpte_tt_destination_settings is not None: - pulumi.set(__self__, "smpte_tt_destination_settings", smpte_tt_destination_settings) + _setter("smpte_tt_destination_settings", smpte_tt_destination_settings) if teletext_destination_settings is not None: - pulumi.set(__self__, "teletext_destination_settings", teletext_destination_settings) + _setter("teletext_destination_settings", teletext_destination_settings) if ttml_destination_settings is not None: - pulumi.set(__self__, "ttml_destination_settings", ttml_destination_settings) + _setter("ttml_destination_settings", ttml_destination_settings) if webvtt_destination_settings is not None: - pulumi.set(__self__, "webvtt_destination_settings", webvtt_destination_settings) + _setter("webvtt_destination_settings", webvtt_destination_settings) @property @pulumi.getter(name="aribDestinationSettings") @@ -2396,6 +3155,13 @@ def webvtt_destination_settings(self) -> Optional['outputs.ChannelEncoderSetting class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsAribDestinationSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -2482,38 +3248,115 @@ def __init__(__self__, *, :param int x_position: Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings must match. :param int y_position: Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit yPosition is provided, the caption will be positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match. """ - pulumi.set(__self__, "outline_color", outline_color) - pulumi.set(__self__, "teletext_grid_control", teletext_grid_control) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + outline_color=outline_color, + teletext_grid_control=teletext_grid_control, + alignment=alignment, + background_color=background_color, + background_opacity=background_opacity, + font=font, + font_color=font_color, + font_opacity=font_opacity, + font_resolution=font_resolution, + font_size=font_size, + outline_size=outline_size, + shadow_color=shadow_color, + shadow_opacity=shadow_opacity, + shadow_x_offset=shadow_x_offset, + shadow_y_offset=shadow_y_offset, + x_position=x_position, + y_position=y_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + outline_color: Optional[str] = None, + teletext_grid_control: Optional[str] = None, + alignment: Optional[str] = None, + background_color: Optional[str] = None, + background_opacity: Optional[int] = None, + font: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettingsFont'] = None, + font_color: Optional[str] = None, + font_opacity: Optional[int] = None, + font_resolution: Optional[int] = None, + font_size: Optional[str] = None, + outline_size: Optional[int] = None, + shadow_color: Optional[str] = None, + shadow_opacity: Optional[int] = None, + shadow_x_offset: Optional[int] = None, + shadow_y_offset: Optional[int] = None, + x_position: Optional[int] = None, + y_position: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if outline_color is None and 'outlineColor' in kwargs: + outline_color = kwargs['outlineColor'] + if outline_color is None: + raise TypeError("Missing 'outline_color' argument") + if teletext_grid_control is None and 'teletextGridControl' in kwargs: + teletext_grid_control = kwargs['teletextGridControl'] + if teletext_grid_control is None: + raise TypeError("Missing 'teletext_grid_control' argument") + if background_color is None and 'backgroundColor' in kwargs: + background_color = kwargs['backgroundColor'] + if background_opacity is None and 'backgroundOpacity' in kwargs: + background_opacity = kwargs['backgroundOpacity'] + if font_color is None and 'fontColor' in kwargs: + font_color = kwargs['fontColor'] + if font_opacity is None and 'fontOpacity' in kwargs: + font_opacity = kwargs['fontOpacity'] + if font_resolution is None and 'fontResolution' in kwargs: + font_resolution = kwargs['fontResolution'] + if font_size is None and 'fontSize' in kwargs: + font_size = kwargs['fontSize'] + if outline_size is None and 'outlineSize' in kwargs: + outline_size = kwargs['outlineSize'] + if shadow_color is None and 'shadowColor' in kwargs: + shadow_color = kwargs['shadowColor'] + if shadow_opacity is None and 'shadowOpacity' in kwargs: + shadow_opacity = kwargs['shadowOpacity'] + if shadow_x_offset is None and 'shadowXOffset' in kwargs: + shadow_x_offset = kwargs['shadowXOffset'] + if shadow_y_offset is None and 'shadowYOffset' in kwargs: + shadow_y_offset = kwargs['shadowYOffset'] + if x_position is None and 'xPosition' in kwargs: + x_position = kwargs['xPosition'] + if y_position is None and 'yPosition' in kwargs: + y_position = kwargs['yPosition'] + + _setter("outline_color", outline_color) + _setter("teletext_grid_control", teletext_grid_control) if alignment is not None: - pulumi.set(__self__, "alignment", alignment) + _setter("alignment", alignment) if background_color is not None: - pulumi.set(__self__, "background_color", background_color) + _setter("background_color", background_color) if background_opacity is not None: - pulumi.set(__self__, "background_opacity", background_opacity) + _setter("background_opacity", background_opacity) if font is not None: - pulumi.set(__self__, "font", font) + _setter("font", font) if font_color is not None: - pulumi.set(__self__, "font_color", font_color) + _setter("font_color", font_color) if font_opacity is not None: - pulumi.set(__self__, "font_opacity", font_opacity) + _setter("font_opacity", font_opacity) if font_resolution is not None: - pulumi.set(__self__, "font_resolution", font_resolution) + _setter("font_resolution", font_resolution) if font_size is not None: - pulumi.set(__self__, "font_size", font_size) + _setter("font_size", font_size) if outline_size is not None: - pulumi.set(__self__, "outline_size", outline_size) + _setter("outline_size", outline_size) if shadow_color is not None: - pulumi.set(__self__, "shadow_color", shadow_color) + _setter("shadow_color", shadow_color) if shadow_opacity is not None: - pulumi.set(__self__, "shadow_opacity", shadow_opacity) + _setter("shadow_opacity", shadow_opacity) if shadow_x_offset is not None: - pulumi.set(__self__, "shadow_x_offset", shadow_x_offset) + _setter("shadow_x_offset", shadow_x_offset) if shadow_y_offset is not None: - pulumi.set(__self__, "shadow_y_offset", shadow_y_offset) + _setter("shadow_y_offset", shadow_y_offset) if x_position is not None: - pulumi.set(__self__, "x_position", x_position) + _setter("x_position", x_position) if y_position is not None: - pulumi.set(__self__, "y_position", y_position) + _setter("y_position", y_position) @property @pulumi.getter(name="outlineColor") @@ -2680,11 +3523,30 @@ def __init__(__self__, *, :param str password_param: Key used to extract the password from EC2 Parameter store. :param str username: Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsBurnInDestinationSettingsFont._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[str] = None, + password_param: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -2795,40 +3657,113 @@ def __init__(__self__, *, :param int x_position: Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. :param int y_position: Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit yPosition is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. """ + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + alignment=alignment, + background_color=background_color, + background_opacity=background_opacity, + font=font, + font_color=font_color, + font_opacity=font_opacity, + font_resolution=font_resolution, + font_size=font_size, + outline_color=outline_color, + outline_size=outline_size, + shadow_color=shadow_color, + shadow_opacity=shadow_opacity, + shadow_x_offset=shadow_x_offset, + shadow_y_offset=shadow_y_offset, + teletext_grid_control=teletext_grid_control, + x_position=x_position, + y_position=y_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alignment: Optional[str] = None, + background_color: Optional[str] = None, + background_opacity: Optional[int] = None, + font: Optional['outputs.ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettingsFont'] = None, + font_color: Optional[str] = None, + font_opacity: Optional[int] = None, + font_resolution: Optional[int] = None, + font_size: Optional[str] = None, + outline_color: Optional[str] = None, + outline_size: Optional[int] = None, + shadow_color: Optional[str] = None, + shadow_opacity: Optional[int] = None, + shadow_x_offset: Optional[int] = None, + shadow_y_offset: Optional[int] = None, + teletext_grid_control: Optional[str] = None, + x_position: Optional[int] = None, + y_position: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if background_color is None and 'backgroundColor' in kwargs: + background_color = kwargs['backgroundColor'] + if background_opacity is None and 'backgroundOpacity' in kwargs: + background_opacity = kwargs['backgroundOpacity'] + if font_color is None and 'fontColor' in kwargs: + font_color = kwargs['fontColor'] + if font_opacity is None and 'fontOpacity' in kwargs: + font_opacity = kwargs['fontOpacity'] + if font_resolution is None and 'fontResolution' in kwargs: + font_resolution = kwargs['fontResolution'] + if font_size is None and 'fontSize' in kwargs: + font_size = kwargs['fontSize'] + if outline_color is None and 'outlineColor' in kwargs: + outline_color = kwargs['outlineColor'] + if outline_size is None and 'outlineSize' in kwargs: + outline_size = kwargs['outlineSize'] + if shadow_color is None and 'shadowColor' in kwargs: + shadow_color = kwargs['shadowColor'] + if shadow_opacity is None and 'shadowOpacity' in kwargs: + shadow_opacity = kwargs['shadowOpacity'] + if shadow_x_offset is None and 'shadowXOffset' in kwargs: + shadow_x_offset = kwargs['shadowXOffset'] + if shadow_y_offset is None and 'shadowYOffset' in kwargs: + shadow_y_offset = kwargs['shadowYOffset'] + if teletext_grid_control is None and 'teletextGridControl' in kwargs: + teletext_grid_control = kwargs['teletextGridControl'] + if x_position is None and 'xPosition' in kwargs: + x_position = kwargs['xPosition'] + if y_position is None and 'yPosition' in kwargs: + y_position = kwargs['yPosition'] + if alignment is not None: - pulumi.set(__self__, "alignment", alignment) + _setter("alignment", alignment) if background_color is not None: - pulumi.set(__self__, "background_color", background_color) + _setter("background_color", background_color) if background_opacity is not None: - pulumi.set(__self__, "background_opacity", background_opacity) + _setter("background_opacity", background_opacity) if font is not None: - pulumi.set(__self__, "font", font) + _setter("font", font) if font_color is not None: - pulumi.set(__self__, "font_color", font_color) + _setter("font_color", font_color) if font_opacity is not None: - pulumi.set(__self__, "font_opacity", font_opacity) + _setter("font_opacity", font_opacity) if font_resolution is not None: - pulumi.set(__self__, "font_resolution", font_resolution) + _setter("font_resolution", font_resolution) if font_size is not None: - pulumi.set(__self__, "font_size", font_size) + _setter("font_size", font_size) if outline_color is not None: - pulumi.set(__self__, "outline_color", outline_color) + _setter("outline_color", outline_color) if outline_size is not None: - pulumi.set(__self__, "outline_size", outline_size) + _setter("outline_size", outline_size) if shadow_color is not None: - pulumi.set(__self__, "shadow_color", shadow_color) + _setter("shadow_color", shadow_color) if shadow_opacity is not None: - pulumi.set(__self__, "shadow_opacity", shadow_opacity) + _setter("shadow_opacity", shadow_opacity) if shadow_x_offset is not None: - pulumi.set(__self__, "shadow_x_offset", shadow_x_offset) + _setter("shadow_x_offset", shadow_x_offset) if shadow_y_offset is not None: - pulumi.set(__self__, "shadow_y_offset", shadow_y_offset) + _setter("shadow_y_offset", shadow_y_offset) if teletext_grid_control is not None: - pulumi.set(__self__, "teletext_grid_control", teletext_grid_control) + _setter("teletext_grid_control", teletext_grid_control) if x_position is not None: - pulumi.set(__self__, "x_position", x_position) + _setter("x_position", x_position) if y_position is not None: - pulumi.set(__self__, "y_position", y_position) + _setter("y_position", y_position) @property @pulumi.getter @@ -2995,11 +3930,30 @@ def __init__(__self__, *, :param str password_param: Key used to extract the password from EC2 Parameter store. :param str username: Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsDvbSubDestinationSettingsFont._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[str] = None, + password_param: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -3062,14 +4016,39 @@ def __init__(__self__, *, :param str font_family: Specifies the font family to include in the font data attached to the EBU-TT captions. Valid only if styleControl is set to include. If you leave this field empty, the font family is set to “monospaced”. (If styleControl is set to exclude, the font family is always set to “monospaced”.) You specify only the font family. All other style information (color, bold, position and so on) is copied from the input captions. The size is always set to 100% to allow the downstream player to choose the size. - Enter a list of font families, as a comma-separated list of font names, in order of preference. The name can be a font family (such as “Arial”), or a generic font family (such as “serif”), or “default” (to let the downstream player choose the font). - Leave blank to set the family to “monospace”. :param str style_control: Specifies the style information (font color, font position, and so on) to include in the font data that is attached to the EBU-TT captions. - include: Take the style information (font color, font position, and so on) from the source captions and include that information in the font data attached to the EBU-TT captions. This option is valid only if the source captions are Embedded or Teletext. - exclude: In the font data attached to the EBU-TT captions, set the font family to “monospaced”. Do not include any other style information. """ + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEbuTtDDestinationSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + copyright_holder=copyright_holder, + fill_line_gap=fill_line_gap, + font_family=font_family, + style_control=style_control, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + copyright_holder: Optional[str] = None, + fill_line_gap: Optional[str] = None, + font_family: Optional[str] = None, + style_control: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copyright_holder is None and 'copyrightHolder' in kwargs: + copyright_holder = kwargs['copyrightHolder'] + if fill_line_gap is None and 'fillLineGap' in kwargs: + fill_line_gap = kwargs['fillLineGap'] + if font_family is None and 'fontFamily' in kwargs: + font_family = kwargs['fontFamily'] + if style_control is None and 'styleControl' in kwargs: + style_control = kwargs['styleControl'] + if copyright_holder is not None: - pulumi.set(__self__, "copyright_holder", copyright_holder) + _setter("copyright_holder", copyright_holder) if fill_line_gap is not None: - pulumi.set(__self__, "fill_line_gap", fill_line_gap) + _setter("fill_line_gap", fill_line_gap) if font_family is not None: - pulumi.set(__self__, "font_family", font_family) + _setter("font_family", font_family) if style_control is not None: - pulumi.set(__self__, "style_control", style_control) + _setter("style_control", style_control) @property @pulumi.getter(name="copyrightHolder") @@ -3108,42 +4087,91 @@ def style_control(self) -> Optional[str]: class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEmbeddedDestinationSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsEmbeddedPlusScte20DestinationSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsRtmpCaptionInfoDestinationSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsScte20PlusEmbeddedDestinationSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsScte27DestinationSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsSmpteTtDestinationSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTeletextDestinationSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -3170,7 +4198,22 @@ def __init__(__self__, *, """ :param str style_control: This field is not currently supported and will not affect the output styling. Leave the default value. """ - pulumi.set(__self__, "style_control", style_control) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsTtmlDestinationSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + style_control=style_control, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + style_control: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if style_control is None and 'styleControl' in kwargs: + style_control = kwargs['styleControl'] + if style_control is None: + raise TypeError("Missing 'style_control' argument") + + _setter("style_control", style_control) @property @pulumi.getter(name="styleControl") @@ -3205,7 +4248,22 @@ def __init__(__self__, *, """ :param str style_control: Controls whether the color and position of the source captions is passed through to the WebVTT output captions. PASSTHROUGH - Valid only if the source captions are EMBEDDED or TELETEXT. NO\\_STYLE\\_DATA - Don’t pass through the style. The output captions will not contain any font styling information. """ - pulumi.set(__self__, "style_control", style_control) + ChannelEncoderSettingsCaptionDescriptionDestinationSettingsWebvttDestinationSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + style_control=style_control, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + style_control: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if style_control is None and 'styleControl' in kwargs: + style_control = kwargs['styleControl'] + if style_control is None: + raise TypeError("Missing 'style_control' argument") + + _setter("style_control", style_control) @property @pulumi.getter(name="styleControl") @@ -3260,18 +4318,51 @@ def __init__(__self__, *, :param str output_timing_source: Indicates whether the rate of frames emitted by the Live encoder should be paced by its system clock (which optionally may be locked to another source via NTP) or should be locked to the clock of the source that is providing the input stream. :param str support_low_framerate_inputs: Adjusts video input buffer for streams with very low video framerates. This is commonly set to enabled for music channels with less than one video frame per second. """ + ChannelEncoderSettingsGlobalConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + initial_audio_gain=initial_audio_gain, + input_end_action=input_end_action, + input_loss_behavior=input_loss_behavior, + output_locking_mode=output_locking_mode, + output_timing_source=output_timing_source, + support_low_framerate_inputs=support_low_framerate_inputs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + initial_audio_gain: Optional[int] = None, + input_end_action: Optional[str] = None, + input_loss_behavior: Optional['outputs.ChannelEncoderSettingsGlobalConfigurationInputLossBehavior'] = None, + output_locking_mode: Optional[str] = None, + output_timing_source: Optional[str] = None, + support_low_framerate_inputs: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if initial_audio_gain is None and 'initialAudioGain' in kwargs: + initial_audio_gain = kwargs['initialAudioGain'] + if input_end_action is None and 'inputEndAction' in kwargs: + input_end_action = kwargs['inputEndAction'] + if input_loss_behavior is None and 'inputLossBehavior' in kwargs: + input_loss_behavior = kwargs['inputLossBehavior'] + if output_locking_mode is None and 'outputLockingMode' in kwargs: + output_locking_mode = kwargs['outputLockingMode'] + if output_timing_source is None and 'outputTimingSource' in kwargs: + output_timing_source = kwargs['outputTimingSource'] + if support_low_framerate_inputs is None and 'supportLowFramerateInputs' in kwargs: + support_low_framerate_inputs = kwargs['supportLowFramerateInputs'] + if initial_audio_gain is not None: - pulumi.set(__self__, "initial_audio_gain", initial_audio_gain) + _setter("initial_audio_gain", initial_audio_gain) if input_end_action is not None: - pulumi.set(__self__, "input_end_action", input_end_action) + _setter("input_end_action", input_end_action) if input_loss_behavior is not None: - pulumi.set(__self__, "input_loss_behavior", input_loss_behavior) + _setter("input_loss_behavior", input_loss_behavior) if output_locking_mode is not None: - pulumi.set(__self__, "output_locking_mode", output_locking_mode) + _setter("output_locking_mode", output_locking_mode) if output_timing_source is not None: - pulumi.set(__self__, "output_timing_source", output_timing_source) + _setter("output_timing_source", output_timing_source) if support_low_framerate_inputs is not None: - pulumi.set(__self__, "support_low_framerate_inputs", support_low_framerate_inputs) + _setter("support_low_framerate_inputs", support_low_framerate_inputs) @property @pulumi.getter(name="initialAudioGain") @@ -3355,16 +4446,45 @@ def __init__(__self__, *, input_loss_image_slate: Optional['outputs.ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate'] = None, input_loss_image_type: Optional[str] = None, repeat_frame_msec: Optional[int] = None): + ChannelEncoderSettingsGlobalConfigurationInputLossBehavior._configure( + lambda key, value: pulumi.set(__self__, key, value), + black_frame_msec=black_frame_msec, + input_loss_image_color=input_loss_image_color, + input_loss_image_slate=input_loss_image_slate, + input_loss_image_type=input_loss_image_type, + repeat_frame_msec=repeat_frame_msec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + black_frame_msec: Optional[int] = None, + input_loss_image_color: Optional[str] = None, + input_loss_image_slate: Optional['outputs.ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate'] = None, + input_loss_image_type: Optional[str] = None, + repeat_frame_msec: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if black_frame_msec is None and 'blackFrameMsec' in kwargs: + black_frame_msec = kwargs['blackFrameMsec'] + if input_loss_image_color is None and 'inputLossImageColor' in kwargs: + input_loss_image_color = kwargs['inputLossImageColor'] + if input_loss_image_slate is None and 'inputLossImageSlate' in kwargs: + input_loss_image_slate = kwargs['inputLossImageSlate'] + if input_loss_image_type is None and 'inputLossImageType' in kwargs: + input_loss_image_type = kwargs['inputLossImageType'] + if repeat_frame_msec is None and 'repeatFrameMsec' in kwargs: + repeat_frame_msec = kwargs['repeatFrameMsec'] + if black_frame_msec is not None: - pulumi.set(__self__, "black_frame_msec", black_frame_msec) + _setter("black_frame_msec", black_frame_msec) if input_loss_image_color is not None: - pulumi.set(__self__, "input_loss_image_color", input_loss_image_color) + _setter("input_loss_image_color", input_loss_image_color) if input_loss_image_slate is not None: - pulumi.set(__self__, "input_loss_image_slate", input_loss_image_slate) + _setter("input_loss_image_slate", input_loss_image_slate) if input_loss_image_type is not None: - pulumi.set(__self__, "input_loss_image_type", input_loss_image_type) + _setter("input_loss_image_type", input_loss_image_type) if repeat_frame_msec is not None: - pulumi.set(__self__, "repeat_frame_msec", repeat_frame_msec) + _setter("repeat_frame_msec", repeat_frame_msec) @property @pulumi.getter(name="blackFrameMsec") @@ -3418,13 +4538,32 @@ def __init__(__self__, *, """ :param str uri: Path to a file accessible to the live stream. :param str password_param: Key used to extract the password from EC2 Parameter store. - :param str username: Username for destination. + :param str username: . Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlate._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[str] = None, + password_param: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -3446,7 +4585,7 @@ def password_param(self) -> Optional[str]: @pulumi.getter def username(self) -> Optional[str]: """ - Username for destination. + . Username to be used. """ return pulumi.get(self, "username") @@ -3479,9 +4618,28 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsArgs' motion_graphics_settings: Motion Graphics Settings. See Motion Graphics Settings for more details. :param str motion_graphics_insertion: Motion Graphics Insertion. """ - pulumi.set(__self__, "motion_graphics_settings", motion_graphics_settings) + ChannelEncoderSettingsMotionGraphicsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + motion_graphics_settings=motion_graphics_settings, + motion_graphics_insertion=motion_graphics_insertion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + motion_graphics_settings: Optional['outputs.ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettings'] = None, + motion_graphics_insertion: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if motion_graphics_settings is None and 'motionGraphicsSettings' in kwargs: + motion_graphics_settings = kwargs['motionGraphicsSettings'] + if motion_graphics_settings is None: + raise TypeError("Missing 'motion_graphics_settings' argument") + if motion_graphics_insertion is None and 'motionGraphicsInsertion' in kwargs: + motion_graphics_insertion = kwargs['motionGraphicsInsertion'] + + _setter("motion_graphics_settings", motion_graphics_settings) if motion_graphics_insertion is not None: - pulumi.set(__self__, "motion_graphics_insertion", motion_graphics_insertion) + _setter("motion_graphics_insertion", motion_graphics_insertion) @property @pulumi.getter(name="motionGraphicsSettings") @@ -3524,8 +4682,21 @@ def __init__(__self__, *, """ :param 'ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsHtmlMotionGraphicsSettingsArgs' html_motion_graphics_settings: Html Motion Graphics Settings. """ + ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + html_motion_graphics_settings=html_motion_graphics_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + html_motion_graphics_settings: Optional['outputs.ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsHtmlMotionGraphicsSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if html_motion_graphics_settings is None and 'htmlMotionGraphicsSettings' in kwargs: + html_motion_graphics_settings = kwargs['htmlMotionGraphicsSettings'] + if html_motion_graphics_settings is not None: - pulumi.set(__self__, "html_motion_graphics_settings", html_motion_graphics_settings) + _setter("html_motion_graphics_settings", html_motion_graphics_settings) @property @pulumi.getter(name="htmlMotionGraphicsSettings") @@ -3540,6 +4711,13 @@ def html_motion_graphics_settings(self) -> Optional['outputs.ChannelEncoderSetti class ChannelEncoderSettingsMotionGraphicsConfigurationMotionGraphicsSettingsHtmlMotionGraphicsSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -3570,10 +4748,27 @@ def __init__(__self__, *, :param str distributor_id: Enter the Distributor ID assigned to your organization by Nielsen. :param str nielsen_pcm_to_id3_tagging: Enables Nielsen PCM to ID3 tagging. """ + ChannelEncoderSettingsNielsenConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + distributor_id=distributor_id, + nielsen_pcm_to_id3_tagging=nielsen_pcm_to_id3_tagging, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + distributor_id: Optional[str] = None, + nielsen_pcm_to_id3_tagging: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if distributor_id is None and 'distributorId' in kwargs: + distributor_id = kwargs['distributorId'] + if nielsen_pcm_to_id3_tagging is None and 'nielsenPcmToId3Tagging' in kwargs: + nielsen_pcm_to_id3_tagging = kwargs['nielsenPcmToId3Tagging'] + if distributor_id is not None: - pulumi.set(__self__, "distributor_id", distributor_id) + _setter("distributor_id", distributor_id) if nielsen_pcm_to_id3_tagging is not None: - pulumi.set(__self__, "nielsen_pcm_to_id3_tagging", nielsen_pcm_to_id3_tagging) + _setter("nielsen_pcm_to_id3_tagging", nielsen_pcm_to_id3_tagging) @property @pulumi.getter(name="distributorId") @@ -3620,10 +4815,31 @@ def __init__(__self__, *, :param Sequence['ChannelEncoderSettingsOutputGroupOutputArgs'] outputs: List of outputs. See Outputs for more details. :param str name: Custom output group name defined by the user. """ - pulumi.set(__self__, "output_group_settings", output_group_settings) - pulumi.set(__self__, "outputs", outputs) + ChannelEncoderSettingsOutputGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_group_settings=output_group_settings, + outputs=outputs, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_group_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettings'] = None, + outputs: Optional[Sequence['outputs.ChannelEncoderSettingsOutputGroupOutput']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_group_settings is None and 'outputGroupSettings' in kwargs: + output_group_settings = kwargs['outputGroupSettings'] + if output_group_settings is None: + raise TypeError("Missing 'output_group_settings' argument") + if outputs is None: + raise TypeError("Missing 'outputs' argument") + + _setter("output_group_settings", output_group_settings) + _setter("outputs", outputs) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="outputGroupSettings") @@ -3690,15 +4906,46 @@ def __init__(__self__, *, :param str output_name: The name used to identify an output. :param str video_description_name: The name of the video description used as video source for the output. """ - pulumi.set(__self__, "output_settings", output_settings) + ChannelEncoderSettingsOutputGroupOutput._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_settings=output_settings, + audio_description_names=audio_description_names, + caption_description_names=caption_description_names, + output_name=output_name, + video_description_name=video_description_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettings'] = None, + audio_description_names: Optional[Sequence[str]] = None, + caption_description_names: Optional[Sequence[str]] = None, + output_name: Optional[str] = None, + video_description_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_settings is None and 'outputSettings' in kwargs: + output_settings = kwargs['outputSettings'] + if output_settings is None: + raise TypeError("Missing 'output_settings' argument") + if audio_description_names is None and 'audioDescriptionNames' in kwargs: + audio_description_names = kwargs['audioDescriptionNames'] + if caption_description_names is None and 'captionDescriptionNames' in kwargs: + caption_description_names = kwargs['captionDescriptionNames'] + if output_name is None and 'outputName' in kwargs: + output_name = kwargs['outputName'] + if video_description_name is None and 'videoDescriptionName' in kwargs: + video_description_name = kwargs['videoDescriptionName'] + + _setter("output_settings", output_settings) if audio_description_names is not None: - pulumi.set(__self__, "audio_description_names", audio_description_names) + _setter("audio_description_names", audio_description_names) if caption_description_names is not None: - pulumi.set(__self__, "caption_description_names", caption_description_names) + _setter("caption_description_names", caption_description_names) if output_name is not None: - pulumi.set(__self__, "output_name", output_name) + _setter("output_name", output_name) if video_description_name is not None: - pulumi.set(__self__, "video_description_name", video_description_name) + _setter("video_description_name", video_description_name) @property @pulumi.getter(name="outputSettings") @@ -3788,22 +5035,63 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsArgs' media_package_group_settings: Media package group settings. See Media Package Group Settings for more details. :param 'ChannelEncoderSettingsOutputGroupOutputGroupSettingsRtmpGroupSettingsArgs' rtmp_group_settings: RTMP group settings. See RTMP Group Settings for more details. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + archive_group_settings=archive_group_settings, + frame_capture_group_settings=frame_capture_group_settings, + hls_group_settings=hls_group_settings, + media_package_group_settings=media_package_group_settings, + ms_smooth_group_settings=ms_smooth_group_settings, + multiplex_group_settings=multiplex_group_settings, + rtmp_group_settings=rtmp_group_settings, + udp_group_settings=udp_group_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + archive_group_settings: Optional[Sequence['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSetting']] = None, + frame_capture_group_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettings'] = None, + hls_group_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettings'] = None, + media_package_group_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettings'] = None, + ms_smooth_group_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsMsSmoothGroupSettings'] = None, + multiplex_group_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsMultiplexGroupSettings'] = None, + rtmp_group_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsRtmpGroupSettings'] = None, + udp_group_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsUdpGroupSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if archive_group_settings is None and 'archiveGroupSettings' in kwargs: + archive_group_settings = kwargs['archiveGroupSettings'] + if frame_capture_group_settings is None and 'frameCaptureGroupSettings' in kwargs: + frame_capture_group_settings = kwargs['frameCaptureGroupSettings'] + if hls_group_settings is None and 'hlsGroupSettings' in kwargs: + hls_group_settings = kwargs['hlsGroupSettings'] + if media_package_group_settings is None and 'mediaPackageGroupSettings' in kwargs: + media_package_group_settings = kwargs['mediaPackageGroupSettings'] + if ms_smooth_group_settings is None and 'msSmoothGroupSettings' in kwargs: + ms_smooth_group_settings = kwargs['msSmoothGroupSettings'] + if multiplex_group_settings is None and 'multiplexGroupSettings' in kwargs: + multiplex_group_settings = kwargs['multiplexGroupSettings'] + if rtmp_group_settings is None and 'rtmpGroupSettings' in kwargs: + rtmp_group_settings = kwargs['rtmpGroupSettings'] + if udp_group_settings is None and 'udpGroupSettings' in kwargs: + udp_group_settings = kwargs['udpGroupSettings'] + if archive_group_settings is not None: - pulumi.set(__self__, "archive_group_settings", archive_group_settings) + _setter("archive_group_settings", archive_group_settings) if frame_capture_group_settings is not None: - pulumi.set(__self__, "frame_capture_group_settings", frame_capture_group_settings) + _setter("frame_capture_group_settings", frame_capture_group_settings) if hls_group_settings is not None: - pulumi.set(__self__, "hls_group_settings", hls_group_settings) + _setter("hls_group_settings", hls_group_settings) if media_package_group_settings is not None: - pulumi.set(__self__, "media_package_group_settings", media_package_group_settings) + _setter("media_package_group_settings", media_package_group_settings) if ms_smooth_group_settings is not None: - pulumi.set(__self__, "ms_smooth_group_settings", ms_smooth_group_settings) + _setter("ms_smooth_group_settings", ms_smooth_group_settings) if multiplex_group_settings is not None: - pulumi.set(__self__, "multiplex_group_settings", multiplex_group_settings) + _setter("multiplex_group_settings", multiplex_group_settings) if rtmp_group_settings is not None: - pulumi.set(__self__, "rtmp_group_settings", rtmp_group_settings) + _setter("rtmp_group_settings", rtmp_group_settings) if udp_group_settings is not None: - pulumi.set(__self__, "udp_group_settings", udp_group_settings) + _setter("udp_group_settings", udp_group_settings) @property @pulumi.getter(name="archiveGroupSettings") @@ -3885,11 +5173,32 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArgs' archive_cdn_settings: Parameters that control the interactions with the CDN. See Archive CDN Settings for more details. :param int rollover_interval: Number of seconds to write to archive file before closing and starting a new one. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + archive_cdn_settings=archive_cdn_settings, + rollover_interval=rollover_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingDestination'] = None, + archive_cdn_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettings'] = None, + rollover_interval: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if archive_cdn_settings is None and 'archiveCdnSettings' in kwargs: + archive_cdn_settings = kwargs['archiveCdnSettings'] + if rollover_interval is None and 'rolloverInterval' in kwargs: + rollover_interval = kwargs['rolloverInterval'] + + _setter("destination", destination) if archive_cdn_settings is not None: - pulumi.set(__self__, "archive_cdn_settings", archive_cdn_settings) + _setter("archive_cdn_settings", archive_cdn_settings) if rollover_interval is not None: - pulumi.set(__self__, "rollover_interval", rollover_interval) + _setter("rollover_interval", rollover_interval) @property @pulumi.getter @@ -3940,8 +5249,21 @@ def __init__(__self__, *, """ :param 'ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArchiveS3SettingsArgs' archive_s3_settings: Archive S3 Settings. See Archive S3 Settings for more details. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + archive_s3_settings=archive_s3_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + archive_s3_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArchiveS3Settings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if archive_s3_settings is None and 'archiveS3Settings' in kwargs: + archive_s3_settings = kwargs['archiveS3Settings'] + if archive_s3_settings is not None: - pulumi.set(__self__, "archive_s3_settings", archive_s3_settings) + _setter("archive_s3_settings", archive_s3_settings) @property @pulumi.getter(name="archiveS3Settings") @@ -3976,8 +5298,21 @@ def __init__(__self__, *, """ :param str canned_acl: Specify the canned ACL to apply to each S3 request. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArchiveCdnSettingsArchiveS3Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + canned_acl: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="cannedAcl") @@ -4012,7 +5347,22 @@ def __init__(__self__, *, """ :param str destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -4048,9 +5398,26 @@ def __init__(__self__, *, """ :param 'ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsDestinationArgs' destination: A director and base filename where archive files should be written. See Destination for more details. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + frame_capture_cdn_settings=frame_capture_cdn_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsDestination'] = None, + frame_capture_cdn_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if frame_capture_cdn_settings is None and 'frameCaptureCdnSettings' in kwargs: + frame_capture_cdn_settings = kwargs['frameCaptureCdnSettings'] + + _setter("destination", destination) if frame_capture_cdn_settings is not None: - pulumi.set(__self__, "frame_capture_cdn_settings", frame_capture_cdn_settings) + _setter("frame_capture_cdn_settings", frame_capture_cdn_settings) @property @pulumi.getter @@ -4090,7 +5457,22 @@ def __init__(__self__, *, """ :param str destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -4122,8 +5504,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, frame_capture_s3_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3Settings'] = None): + ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + frame_capture_s3_settings=frame_capture_s3_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frame_capture_s3_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3Settings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frame_capture_s3_settings is None and 'frameCaptureS3Settings' in kwargs: + frame_capture_s3_settings = kwargs['frameCaptureS3Settings'] + if frame_capture_s3_settings is not None: - pulumi.set(__self__, "frame_capture_s3_settings", frame_capture_s3_settings) + _setter("frame_capture_s3_settings", frame_capture_s3_settings) @property @pulumi.getter(name="frameCaptureS3Settings") @@ -4155,8 +5550,21 @@ def __init__(__self__, *, """ :param str canned_acl: Specify the canned ACL to apply to each S3 request. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + canned_acl: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="cannedAcl") @@ -4313,89 +5721,264 @@ def __init__(__self__, *, :param str input_loss_action: Controls the behavior of the RTMP group if input becomes unavailable. :param str timed_metadata_id3_frame: Indicates ID3 frame that has the timecode. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ad_markers=ad_markers, + base_url_content=base_url_content, + base_url_content1=base_url_content1, + base_url_manifest=base_url_manifest, + base_url_manifest1=base_url_manifest1, + caption_language_mappings=caption_language_mappings, + caption_language_setting=caption_language_setting, + client_cache=client_cache, + codec_specification=codec_specification, + constant_iv=constant_iv, + directory_structure=directory_structure, + discontinuity_tags=discontinuity_tags, + encryption_type=encryption_type, + hls_cdn_settings=hls_cdn_settings, + hls_id3_segment_tagging=hls_id3_segment_tagging, + iframe_only_playlists=iframe_only_playlists, + incomplete_segment_behavior=incomplete_segment_behavior, + index_n_segments=index_n_segments, + input_loss_action=input_loss_action, + iv_in_manifest=iv_in_manifest, + iv_source=iv_source, + keep_segments=keep_segments, + key_format=key_format, + key_format_versions=key_format_versions, + key_provider_settings=key_provider_settings, + manifest_compression=manifest_compression, + manifest_duration_format=manifest_duration_format, + min_segment_length=min_segment_length, + mode=mode, + output_selection=output_selection, + program_date_time=program_date_time, + program_date_time_clock=program_date_time_clock, + program_date_time_period=program_date_time_period, + redundant_manifest=redundant_manifest, + segment_length=segment_length, + segments_per_subdirectory=segments_per_subdirectory, + stream_inf_resolution=stream_inf_resolution, + timed_metadata_id3_frame=timed_metadata_id3_frame, + timed_metadata_id3_period=timed_metadata_id3_period, + timestamp_delta_milliseconds=timestamp_delta_milliseconds, + ts_file_mode=ts_file_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsDestination'] = None, + ad_markers: Optional[Sequence[str]] = None, + base_url_content: Optional[str] = None, + base_url_content1: Optional[str] = None, + base_url_manifest: Optional[str] = None, + base_url_manifest1: Optional[str] = None, + caption_language_mappings: Optional[Sequence['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsCaptionLanguageMapping']] = None, + caption_language_setting: Optional[str] = None, + client_cache: Optional[str] = None, + codec_specification: Optional[str] = None, + constant_iv: Optional[str] = None, + directory_structure: Optional[str] = None, + discontinuity_tags: Optional[str] = None, + encryption_type: Optional[str] = None, + hls_cdn_settings: Optional[Sequence['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSetting']] = None, + hls_id3_segment_tagging: Optional[str] = None, + iframe_only_playlists: Optional[str] = None, + incomplete_segment_behavior: Optional[str] = None, + index_n_segments: Optional[int] = None, + input_loss_action: Optional[str] = None, + iv_in_manifest: Optional[str] = None, + iv_source: Optional[str] = None, + keep_segments: Optional[int] = None, + key_format: Optional[str] = None, + key_format_versions: Optional[str] = None, + key_provider_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettings'] = None, + manifest_compression: Optional[str] = None, + manifest_duration_format: Optional[str] = None, + min_segment_length: Optional[int] = None, + mode: Optional[str] = None, + output_selection: Optional[str] = None, + program_date_time: Optional[str] = None, + program_date_time_clock: Optional[str] = None, + program_date_time_period: Optional[int] = None, + redundant_manifest: Optional[str] = None, + segment_length: Optional[int] = None, + segments_per_subdirectory: Optional[int] = None, + stream_inf_resolution: Optional[str] = None, + timed_metadata_id3_frame: Optional[str] = None, + timed_metadata_id3_period: Optional[int] = None, + timestamp_delta_milliseconds: Optional[int] = None, + ts_file_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if ad_markers is None and 'adMarkers' in kwargs: + ad_markers = kwargs['adMarkers'] + if base_url_content is None and 'baseUrlContent' in kwargs: + base_url_content = kwargs['baseUrlContent'] + if base_url_content1 is None and 'baseUrlContent1' in kwargs: + base_url_content1 = kwargs['baseUrlContent1'] + if base_url_manifest is None and 'baseUrlManifest' in kwargs: + base_url_manifest = kwargs['baseUrlManifest'] + if base_url_manifest1 is None and 'baseUrlManifest1' in kwargs: + base_url_manifest1 = kwargs['baseUrlManifest1'] + if caption_language_mappings is None and 'captionLanguageMappings' in kwargs: + caption_language_mappings = kwargs['captionLanguageMappings'] + if caption_language_setting is None and 'captionLanguageSetting' in kwargs: + caption_language_setting = kwargs['captionLanguageSetting'] + if client_cache is None and 'clientCache' in kwargs: + client_cache = kwargs['clientCache'] + if codec_specification is None and 'codecSpecification' in kwargs: + codec_specification = kwargs['codecSpecification'] + if constant_iv is None and 'constantIv' in kwargs: + constant_iv = kwargs['constantIv'] + if directory_structure is None and 'directoryStructure' in kwargs: + directory_structure = kwargs['directoryStructure'] + if discontinuity_tags is None and 'discontinuityTags' in kwargs: + discontinuity_tags = kwargs['discontinuityTags'] + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if hls_cdn_settings is None and 'hlsCdnSettings' in kwargs: + hls_cdn_settings = kwargs['hlsCdnSettings'] + if hls_id3_segment_tagging is None and 'hlsId3SegmentTagging' in kwargs: + hls_id3_segment_tagging = kwargs['hlsId3SegmentTagging'] + if iframe_only_playlists is None and 'iframeOnlyPlaylists' in kwargs: + iframe_only_playlists = kwargs['iframeOnlyPlaylists'] + if incomplete_segment_behavior is None and 'incompleteSegmentBehavior' in kwargs: + incomplete_segment_behavior = kwargs['incompleteSegmentBehavior'] + if index_n_segments is None and 'indexNSegments' in kwargs: + index_n_segments = kwargs['indexNSegments'] + if input_loss_action is None and 'inputLossAction' in kwargs: + input_loss_action = kwargs['inputLossAction'] + if iv_in_manifest is None and 'ivInManifest' in kwargs: + iv_in_manifest = kwargs['ivInManifest'] + if iv_source is None and 'ivSource' in kwargs: + iv_source = kwargs['ivSource'] + if keep_segments is None and 'keepSegments' in kwargs: + keep_segments = kwargs['keepSegments'] + if key_format is None and 'keyFormat' in kwargs: + key_format = kwargs['keyFormat'] + if key_format_versions is None and 'keyFormatVersions' in kwargs: + key_format_versions = kwargs['keyFormatVersions'] + if key_provider_settings is None and 'keyProviderSettings' in kwargs: + key_provider_settings = kwargs['keyProviderSettings'] + if manifest_compression is None and 'manifestCompression' in kwargs: + manifest_compression = kwargs['manifestCompression'] + if manifest_duration_format is None and 'manifestDurationFormat' in kwargs: + manifest_duration_format = kwargs['manifestDurationFormat'] + if min_segment_length is None and 'minSegmentLength' in kwargs: + min_segment_length = kwargs['minSegmentLength'] + if output_selection is None and 'outputSelection' in kwargs: + output_selection = kwargs['outputSelection'] + if program_date_time is None and 'programDateTime' in kwargs: + program_date_time = kwargs['programDateTime'] + if program_date_time_clock is None and 'programDateTimeClock' in kwargs: + program_date_time_clock = kwargs['programDateTimeClock'] + if program_date_time_period is None and 'programDateTimePeriod' in kwargs: + program_date_time_period = kwargs['programDateTimePeriod'] + if redundant_manifest is None and 'redundantManifest' in kwargs: + redundant_manifest = kwargs['redundantManifest'] + if segment_length is None and 'segmentLength' in kwargs: + segment_length = kwargs['segmentLength'] + if segments_per_subdirectory is None and 'segmentsPerSubdirectory' in kwargs: + segments_per_subdirectory = kwargs['segmentsPerSubdirectory'] + if stream_inf_resolution is None and 'streamInfResolution' in kwargs: + stream_inf_resolution = kwargs['streamInfResolution'] + if timed_metadata_id3_frame is None and 'timedMetadataId3Frame' in kwargs: + timed_metadata_id3_frame = kwargs['timedMetadataId3Frame'] + if timed_metadata_id3_period is None and 'timedMetadataId3Period' in kwargs: + timed_metadata_id3_period = kwargs['timedMetadataId3Period'] + if timestamp_delta_milliseconds is None and 'timestampDeltaMilliseconds' in kwargs: + timestamp_delta_milliseconds = kwargs['timestampDeltaMilliseconds'] + if ts_file_mode is None and 'tsFileMode' in kwargs: + ts_file_mode = kwargs['tsFileMode'] + + _setter("destination", destination) if ad_markers is not None: - pulumi.set(__self__, "ad_markers", ad_markers) + _setter("ad_markers", ad_markers) if base_url_content is not None: - pulumi.set(__self__, "base_url_content", base_url_content) + _setter("base_url_content", base_url_content) if base_url_content1 is not None: - pulumi.set(__self__, "base_url_content1", base_url_content1) + _setter("base_url_content1", base_url_content1) if base_url_manifest is not None: - pulumi.set(__self__, "base_url_manifest", base_url_manifest) + _setter("base_url_manifest", base_url_manifest) if base_url_manifest1 is not None: - pulumi.set(__self__, "base_url_manifest1", base_url_manifest1) + _setter("base_url_manifest1", base_url_manifest1) if caption_language_mappings is not None: - pulumi.set(__self__, "caption_language_mappings", caption_language_mappings) + _setter("caption_language_mappings", caption_language_mappings) if caption_language_setting is not None: - pulumi.set(__self__, "caption_language_setting", caption_language_setting) + _setter("caption_language_setting", caption_language_setting) if client_cache is not None: - pulumi.set(__self__, "client_cache", client_cache) + _setter("client_cache", client_cache) if codec_specification is not None: - pulumi.set(__self__, "codec_specification", codec_specification) + _setter("codec_specification", codec_specification) if constant_iv is not None: - pulumi.set(__self__, "constant_iv", constant_iv) + _setter("constant_iv", constant_iv) if directory_structure is not None: - pulumi.set(__self__, "directory_structure", directory_structure) + _setter("directory_structure", directory_structure) if discontinuity_tags is not None: - pulumi.set(__self__, "discontinuity_tags", discontinuity_tags) + _setter("discontinuity_tags", discontinuity_tags) if encryption_type is not None: - pulumi.set(__self__, "encryption_type", encryption_type) + _setter("encryption_type", encryption_type) if hls_cdn_settings is not None: - pulumi.set(__self__, "hls_cdn_settings", hls_cdn_settings) + _setter("hls_cdn_settings", hls_cdn_settings) if hls_id3_segment_tagging is not None: - pulumi.set(__self__, "hls_id3_segment_tagging", hls_id3_segment_tagging) + _setter("hls_id3_segment_tagging", hls_id3_segment_tagging) if iframe_only_playlists is not None: - pulumi.set(__self__, "iframe_only_playlists", iframe_only_playlists) + _setter("iframe_only_playlists", iframe_only_playlists) if incomplete_segment_behavior is not None: - pulumi.set(__self__, "incomplete_segment_behavior", incomplete_segment_behavior) + _setter("incomplete_segment_behavior", incomplete_segment_behavior) if index_n_segments is not None: - pulumi.set(__self__, "index_n_segments", index_n_segments) + _setter("index_n_segments", index_n_segments) if input_loss_action is not None: - pulumi.set(__self__, "input_loss_action", input_loss_action) + _setter("input_loss_action", input_loss_action) if iv_in_manifest is not None: - pulumi.set(__self__, "iv_in_manifest", iv_in_manifest) + _setter("iv_in_manifest", iv_in_manifest) if iv_source is not None: - pulumi.set(__self__, "iv_source", iv_source) + _setter("iv_source", iv_source) if keep_segments is not None: - pulumi.set(__self__, "keep_segments", keep_segments) + _setter("keep_segments", keep_segments) if key_format is not None: - pulumi.set(__self__, "key_format", key_format) + _setter("key_format", key_format) if key_format_versions is not None: - pulumi.set(__self__, "key_format_versions", key_format_versions) + _setter("key_format_versions", key_format_versions) if key_provider_settings is not None: - pulumi.set(__self__, "key_provider_settings", key_provider_settings) + _setter("key_provider_settings", key_provider_settings) if manifest_compression is not None: - pulumi.set(__self__, "manifest_compression", manifest_compression) + _setter("manifest_compression", manifest_compression) if manifest_duration_format is not None: - pulumi.set(__self__, "manifest_duration_format", manifest_duration_format) + _setter("manifest_duration_format", manifest_duration_format) if min_segment_length is not None: - pulumi.set(__self__, "min_segment_length", min_segment_length) + _setter("min_segment_length", min_segment_length) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if output_selection is not None: - pulumi.set(__self__, "output_selection", output_selection) + _setter("output_selection", output_selection) if program_date_time is not None: - pulumi.set(__self__, "program_date_time", program_date_time) + _setter("program_date_time", program_date_time) if program_date_time_clock is not None: - pulumi.set(__self__, "program_date_time_clock", program_date_time_clock) + _setter("program_date_time_clock", program_date_time_clock) if program_date_time_period is not None: - pulumi.set(__self__, "program_date_time_period", program_date_time_period) + _setter("program_date_time_period", program_date_time_period) if redundant_manifest is not None: - pulumi.set(__self__, "redundant_manifest", redundant_manifest) + _setter("redundant_manifest", redundant_manifest) if segment_length is not None: - pulumi.set(__self__, "segment_length", segment_length) + _setter("segment_length", segment_length) if segments_per_subdirectory is not None: - pulumi.set(__self__, "segments_per_subdirectory", segments_per_subdirectory) + _setter("segments_per_subdirectory", segments_per_subdirectory) if stream_inf_resolution is not None: - pulumi.set(__self__, "stream_inf_resolution", stream_inf_resolution) + _setter("stream_inf_resolution", stream_inf_resolution) if timed_metadata_id3_frame is not None: - pulumi.set(__self__, "timed_metadata_id3_frame", timed_metadata_id3_frame) + _setter("timed_metadata_id3_frame", timed_metadata_id3_frame) if timed_metadata_id3_period is not None: - pulumi.set(__self__, "timed_metadata_id3_period", timed_metadata_id3_period) + _setter("timed_metadata_id3_period", timed_metadata_id3_period) if timestamp_delta_milliseconds is not None: - pulumi.set(__self__, "timestamp_delta_milliseconds", timestamp_delta_milliseconds) + _setter("timestamp_delta_milliseconds", timestamp_delta_milliseconds) if ts_file_mode is not None: - pulumi.set(__self__, "ts_file_mode", ts_file_mode) + _setter("ts_file_mode", ts_file_mode) @property @pulumi.getter @@ -4651,9 +6234,36 @@ def __init__(__self__, *, :param str language_code: Selects a specific three-letter language code from within an audio source. :param str language_description: Human readable information to indicate captions available for players (eg. English, or Spanish). """ - pulumi.set(__self__, "caption_channel", caption_channel) - pulumi.set(__self__, "language_code", language_code) - pulumi.set(__self__, "language_description", language_description) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsCaptionLanguageMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + caption_channel=caption_channel, + language_code=language_code, + language_description=language_description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + caption_channel: Optional[int] = None, + language_code: Optional[str] = None, + language_description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if caption_channel is None and 'captionChannel' in kwargs: + caption_channel = kwargs['captionChannel'] + if caption_channel is None: + raise TypeError("Missing 'caption_channel' argument") + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if language_description is None and 'languageDescription' in kwargs: + language_description = kwargs['languageDescription'] + if language_description is None: + raise TypeError("Missing 'language_description' argument") + + _setter("caption_channel", caption_channel) + _setter("language_code", language_code) + _setter("language_description", language_description) @property @pulumi.getter(name="captionChannel") @@ -4701,7 +6311,22 @@ def __init__(__self__, *, """ :param str destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -4745,16 +6370,45 @@ def __init__(__self__, *, hls_media_store_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsMediaStoreSettings'] = None, hls_s3_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsS3Settings'] = None, hls_webdav_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsWebdavSettings'] = None): + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + hls_akamai_settings=hls_akamai_settings, + hls_basic_put_settings=hls_basic_put_settings, + hls_media_store_settings=hls_media_store_settings, + hls_s3_settings=hls_s3_settings, + hls_webdav_settings=hls_webdav_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hls_akamai_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsAkamaiSettings'] = None, + hls_basic_put_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsBasicPutSettings'] = None, + hls_media_store_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsMediaStoreSettings'] = None, + hls_s3_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsS3Settings'] = None, + hls_webdav_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsWebdavSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hls_akamai_settings is None and 'hlsAkamaiSettings' in kwargs: + hls_akamai_settings = kwargs['hlsAkamaiSettings'] + if hls_basic_put_settings is None and 'hlsBasicPutSettings' in kwargs: + hls_basic_put_settings = kwargs['hlsBasicPutSettings'] + if hls_media_store_settings is None and 'hlsMediaStoreSettings' in kwargs: + hls_media_store_settings = kwargs['hlsMediaStoreSettings'] + if hls_s3_settings is None and 'hlsS3Settings' in kwargs: + hls_s3_settings = kwargs['hlsS3Settings'] + if hls_webdav_settings is None and 'hlsWebdavSettings' in kwargs: + hls_webdav_settings = kwargs['hlsWebdavSettings'] + if hls_akamai_settings is not None: - pulumi.set(__self__, "hls_akamai_settings", hls_akamai_settings) + _setter("hls_akamai_settings", hls_akamai_settings) if hls_basic_put_settings is not None: - pulumi.set(__self__, "hls_basic_put_settings", hls_basic_put_settings) + _setter("hls_basic_put_settings", hls_basic_put_settings) if hls_media_store_settings is not None: - pulumi.set(__self__, "hls_media_store_settings", hls_media_store_settings) + _setter("hls_media_store_settings", hls_media_store_settings) if hls_s3_settings is not None: - pulumi.set(__self__, "hls_s3_settings", hls_s3_settings) + _setter("hls_s3_settings", hls_s3_settings) if hls_webdav_settings is not None: - pulumi.set(__self__, "hls_webdav_settings", hls_webdav_settings) + _setter("hls_webdav_settings", hls_webdav_settings) @property @pulumi.getter(name="hlsAkamaiSettings") @@ -4822,20 +6476,53 @@ def __init__(__self__, *, :param int num_retries: Number of retry attempts. :param int restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsAkamaiSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_retry_interval=connection_retry_interval, + filecache_duration=filecache_duration, + http_transfer_mode=http_transfer_mode, + num_retries=num_retries, + restart_delay=restart_delay, + salt=salt, + token=token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_retry_interval: Optional[int] = None, + filecache_duration: Optional[int] = None, + http_transfer_mode: Optional[str] = None, + num_retries: Optional[int] = None, + restart_delay: Optional[int] = None, + salt: Optional[str] = None, + token: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if http_transfer_mode is None and 'httpTransferMode' in kwargs: + http_transfer_mode = kwargs['httpTransferMode'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if http_transfer_mode is not None: - pulumi.set(__self__, "http_transfer_mode", http_transfer_mode) + _setter("http_transfer_mode", http_transfer_mode) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) if salt is not None: - pulumi.set(__self__, "salt", salt) + _setter("salt", salt) if token is not None: - pulumi.set(__self__, "token", token) + _setter("token", token) @property @pulumi.getter(name="connectionRetryInterval") @@ -4917,14 +6604,39 @@ def __init__(__self__, *, :param int num_retries: Number of retry attempts. :param int restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsBasicPutSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_retry_interval=connection_retry_interval, + filecache_duration=filecache_duration, + num_retries=num_retries, + restart_delay=restart_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_retry_interval: Optional[int] = None, + filecache_duration: Optional[int] = None, + num_retries: Optional[int] = None, + restart_delay: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) @property @pulumi.getter(name="connectionRetryInterval") @@ -4994,16 +6706,45 @@ def __init__(__self__, *, :param int num_retries: Number of retry attempts. :param int restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsMediaStoreSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_retry_interval=connection_retry_interval, + filecache_duration=filecache_duration, + media_store_storage_class=media_store_storage_class, + num_retries=num_retries, + restart_delay=restart_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_retry_interval: Optional[int] = None, + filecache_duration: Optional[int] = None, + media_store_storage_class: Optional[str] = None, + num_retries: Optional[int] = None, + restart_delay: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if media_store_storage_class is None and 'mediaStoreStorageClass' in kwargs: + media_store_storage_class = kwargs['mediaStoreStorageClass'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if media_store_storage_class is not None: - pulumi.set(__self__, "media_store_storage_class", media_store_storage_class) + _setter("media_store_storage_class", media_store_storage_class) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) @property @pulumi.getter(name="connectionRetryInterval") @@ -5064,8 +6805,21 @@ def __init__(__self__, *, """ :param str canned_acl: Specify the canned ACL to apply to each S3 request. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsS3Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + canned_acl=canned_acl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + canned_acl: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if canned_acl is None and 'cannedAcl' in kwargs: + canned_acl = kwargs['cannedAcl'] + if canned_acl is not None: - pulumi.set(__self__, "canned_acl", canned_acl) + _setter("canned_acl", canned_acl) @property @pulumi.getter(name="cannedAcl") @@ -5114,16 +6868,45 @@ def __init__(__self__, *, :param int num_retries: Number of retry attempts. :param int restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsHlsCdnSettingHlsWebdavSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_retry_interval=connection_retry_interval, + filecache_duration=filecache_duration, + http_transfer_mode=http_transfer_mode, + num_retries=num_retries, + restart_delay=restart_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_retry_interval: Optional[int] = None, + filecache_duration: Optional[int] = None, + http_transfer_mode: Optional[str] = None, + num_retries: Optional[int] = None, + restart_delay: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if http_transfer_mode is None and 'httpTransferMode' in kwargs: + http_transfer_mode = kwargs['httpTransferMode'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if http_transfer_mode is not None: - pulumi.set(__self__, "http_transfer_mode", http_transfer_mode) + _setter("http_transfer_mode", http_transfer_mode) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) @property @pulumi.getter(name="connectionRetryInterval") @@ -5181,8 +6964,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, static_key_settings: Optional[Sequence['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySetting']] = None): + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + static_key_settings=static_key_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + static_key_settings: Optional[Sequence['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySetting']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if static_key_settings is None and 'staticKeySettings' in kwargs: + static_key_settings = kwargs['staticKeySettings'] + if static_key_settings is not None: - pulumi.set(__self__, "static_key_settings", static_key_settings) + _setter("static_key_settings", static_key_settings) @property @pulumi.getter(name="staticKeySettings") @@ -5214,9 +7010,28 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, static_key_value: str, key_provider_server: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer'] = None): - pulumi.set(__self__, "static_key_value", static_key_value) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + static_key_value=static_key_value, + key_provider_server=key_provider_server, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + static_key_value: Optional[str] = None, + key_provider_server: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if static_key_value is None and 'staticKeyValue' in kwargs: + static_key_value = kwargs['staticKeyValue'] + if static_key_value is None: + raise TypeError("Missing 'static_key_value' argument") + if key_provider_server is None and 'keyProviderServer' in kwargs: + key_provider_server = kwargs['keyProviderServer'] + + _setter("static_key_value", static_key_value) if key_provider_server is not None: - pulumi.set(__self__, "key_provider_server", key_provider_server) + _setter("key_provider_server", key_provider_server) @property @pulumi.getter(name="staticKeyValue") @@ -5255,13 +7070,32 @@ def __init__(__self__, *, """ :param str uri: Path to a file accessible to the live stream. :param str password_param: Key used to extract the password from EC2 Parameter store. - :param str username: Username for destination. + :param str username: . Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingKeyProviderServer._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[str] = None, + password_param: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -5283,7 +7117,7 @@ def password_param(self) -> Optional[str]: @pulumi.getter def username(self) -> Optional[str]: """ - Username for destination. + . Username to be used. """ return pulumi.get(self, "username") @@ -5295,7 +7129,20 @@ def __init__(__self__, *, """ :param 'ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsDestinationArgs' destination: A director and base filename where archive files should be written. See Destination for more details. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsDestination'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + + _setter("destination", destination) @property @pulumi.getter @@ -5330,7 +7177,22 @@ def __init__(__self__, *, """ :param str destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsMediaPackageGroupSettingsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -5422,43 +7284,128 @@ def __init__(__self__, *, :param int num_retries: Number of retry attempts. :param int restart_delay: Number of seconds to wait until a restart is initiated. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsMsSmoothGroupSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + acquisition_point_id=acquisition_point_id, + audio_only_timecode_control=audio_only_timecode_control, + certificate_mode=certificate_mode, + connection_retry_interval=connection_retry_interval, + event_id=event_id, + event_id_mode=event_id_mode, + event_stop_behavior=event_stop_behavior, + filecache_duration=filecache_duration, + fragment_length=fragment_length, + input_loss_action=input_loss_action, + num_retries=num_retries, + restart_delay=restart_delay, + segmentation_mode=segmentation_mode, + send_delay_ms=send_delay_ms, + sparse_track_type=sparse_track_type, + stream_manifest_behavior=stream_manifest_behavior, + timestamp_offset=timestamp_offset, + timestamp_offset_mode=timestamp_offset_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputGroupSettingsMsSmoothGroupSettingsDestination'] = None, + acquisition_point_id: Optional[str] = None, + audio_only_timecode_control: Optional[str] = None, + certificate_mode: Optional[str] = None, + connection_retry_interval: Optional[int] = None, + event_id: Optional[str] = None, + event_id_mode: Optional[str] = None, + event_stop_behavior: Optional[str] = None, + filecache_duration: Optional[int] = None, + fragment_length: Optional[int] = None, + input_loss_action: Optional[str] = None, + num_retries: Optional[int] = None, + restart_delay: Optional[int] = None, + segmentation_mode: Optional[str] = None, + send_delay_ms: Optional[int] = None, + sparse_track_type: Optional[str] = None, + stream_manifest_behavior: Optional[str] = None, + timestamp_offset: Optional[str] = None, + timestamp_offset_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if acquisition_point_id is None and 'acquisitionPointId' in kwargs: + acquisition_point_id = kwargs['acquisitionPointId'] + if audio_only_timecode_control is None and 'audioOnlyTimecodeControl' in kwargs: + audio_only_timecode_control = kwargs['audioOnlyTimecodeControl'] + if certificate_mode is None and 'certificateMode' in kwargs: + certificate_mode = kwargs['certificateMode'] + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if event_id is None and 'eventId' in kwargs: + event_id = kwargs['eventId'] + if event_id_mode is None and 'eventIdMode' in kwargs: + event_id_mode = kwargs['eventIdMode'] + if event_stop_behavior is None and 'eventStopBehavior' in kwargs: + event_stop_behavior = kwargs['eventStopBehavior'] + if filecache_duration is None and 'filecacheDuration' in kwargs: + filecache_duration = kwargs['filecacheDuration'] + if fragment_length is None and 'fragmentLength' in kwargs: + fragment_length = kwargs['fragmentLength'] + if input_loss_action is None and 'inputLossAction' in kwargs: + input_loss_action = kwargs['inputLossAction'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if segmentation_mode is None and 'segmentationMode' in kwargs: + segmentation_mode = kwargs['segmentationMode'] + if send_delay_ms is None and 'sendDelayMs' in kwargs: + send_delay_ms = kwargs['sendDelayMs'] + if sparse_track_type is None and 'sparseTrackType' in kwargs: + sparse_track_type = kwargs['sparseTrackType'] + if stream_manifest_behavior is None and 'streamManifestBehavior' in kwargs: + stream_manifest_behavior = kwargs['streamManifestBehavior'] + if timestamp_offset is None and 'timestampOffset' in kwargs: + timestamp_offset = kwargs['timestampOffset'] + if timestamp_offset_mode is None and 'timestampOffsetMode' in kwargs: + timestamp_offset_mode = kwargs['timestampOffsetMode'] + + _setter("destination", destination) if acquisition_point_id is not None: - pulumi.set(__self__, "acquisition_point_id", acquisition_point_id) + _setter("acquisition_point_id", acquisition_point_id) if audio_only_timecode_control is not None: - pulumi.set(__self__, "audio_only_timecode_control", audio_only_timecode_control) + _setter("audio_only_timecode_control", audio_only_timecode_control) if certificate_mode is not None: - pulumi.set(__self__, "certificate_mode", certificate_mode) + _setter("certificate_mode", certificate_mode) if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if event_id is not None: - pulumi.set(__self__, "event_id", event_id) + _setter("event_id", event_id) if event_id_mode is not None: - pulumi.set(__self__, "event_id_mode", event_id_mode) + _setter("event_id_mode", event_id_mode) if event_stop_behavior is not None: - pulumi.set(__self__, "event_stop_behavior", event_stop_behavior) + _setter("event_stop_behavior", event_stop_behavior) if filecache_duration is not None: - pulumi.set(__self__, "filecache_duration", filecache_duration) + _setter("filecache_duration", filecache_duration) if fragment_length is not None: - pulumi.set(__self__, "fragment_length", fragment_length) + _setter("fragment_length", fragment_length) if input_loss_action is not None: - pulumi.set(__self__, "input_loss_action", input_loss_action) + _setter("input_loss_action", input_loss_action) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) if segmentation_mode is not None: - pulumi.set(__self__, "segmentation_mode", segmentation_mode) + _setter("segmentation_mode", segmentation_mode) if send_delay_ms is not None: - pulumi.set(__self__, "send_delay_ms", send_delay_ms) + _setter("send_delay_ms", send_delay_ms) if sparse_track_type is not None: - pulumi.set(__self__, "sparse_track_type", sparse_track_type) + _setter("sparse_track_type", sparse_track_type) if stream_manifest_behavior is not None: - pulumi.set(__self__, "stream_manifest_behavior", stream_manifest_behavior) + _setter("stream_manifest_behavior", stream_manifest_behavior) if timestamp_offset is not None: - pulumi.set(__self__, "timestamp_offset", timestamp_offset) + _setter("timestamp_offset", timestamp_offset) if timestamp_offset_mode is not None: - pulumi.set(__self__, "timestamp_offset_mode", timestamp_offset_mode) + _setter("timestamp_offset_mode", timestamp_offset_mode) @property @pulumi.getter @@ -5598,7 +7545,22 @@ def __init__(__self__, *, """ :param str destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputGroupSettingsMsSmoothGroupSettingsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -5613,6 +7575,13 @@ def destination_ref_id(self) -> str: class ChannelEncoderSettingsOutputGroupOutputGroupSettingsMultiplexGroupSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -5663,20 +7632,57 @@ def __init__(__self__, *, :param str input_loss_action: Controls the behavior of the RTMP group if input becomes unavailable. :param int restart_delay: Number of seconds to wait until a restart is initiated. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsRtmpGroupSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + ad_markers=ad_markers, + authentication_scheme=authentication_scheme, + cache_full_behavior=cache_full_behavior, + cache_length=cache_length, + caption_data=caption_data, + input_loss_action=input_loss_action, + restart_delay=restart_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ad_markers: Optional[Sequence[str]] = None, + authentication_scheme: Optional[str] = None, + cache_full_behavior: Optional[str] = None, + cache_length: Optional[int] = None, + caption_data: Optional[str] = None, + input_loss_action: Optional[str] = None, + restart_delay: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ad_markers is None and 'adMarkers' in kwargs: + ad_markers = kwargs['adMarkers'] + if authentication_scheme is None and 'authenticationScheme' in kwargs: + authentication_scheme = kwargs['authenticationScheme'] + if cache_full_behavior is None and 'cacheFullBehavior' in kwargs: + cache_full_behavior = kwargs['cacheFullBehavior'] + if cache_length is None and 'cacheLength' in kwargs: + cache_length = kwargs['cacheLength'] + if caption_data is None and 'captionData' in kwargs: + caption_data = kwargs['captionData'] + if input_loss_action is None and 'inputLossAction' in kwargs: + input_loss_action = kwargs['inputLossAction'] + if restart_delay is None and 'restartDelay' in kwargs: + restart_delay = kwargs['restartDelay'] + if ad_markers is not None: - pulumi.set(__self__, "ad_markers", ad_markers) + _setter("ad_markers", ad_markers) if authentication_scheme is not None: - pulumi.set(__self__, "authentication_scheme", authentication_scheme) + _setter("authentication_scheme", authentication_scheme) if cache_full_behavior is not None: - pulumi.set(__self__, "cache_full_behavior", cache_full_behavior) + _setter("cache_full_behavior", cache_full_behavior) if cache_length is not None: - pulumi.set(__self__, "cache_length", cache_length) + _setter("cache_length", cache_length) if caption_data is not None: - pulumi.set(__self__, "caption_data", caption_data) + _setter("caption_data", caption_data) if input_loss_action is not None: - pulumi.set(__self__, "input_loss_action", input_loss_action) + _setter("input_loss_action", input_loss_action) if restart_delay is not None: - pulumi.set(__self__, "restart_delay", restart_delay) + _setter("restart_delay", restart_delay) @property @pulumi.getter(name="adMarkers") @@ -5766,12 +7772,33 @@ def __init__(__self__, *, :param str input_loss_action: Specifies behavior of last resort when input video os lost. :param str timed_metadata_id3_frame: Indicates ID3 frame that has the timecode. """ + ChannelEncoderSettingsOutputGroupOutputGroupSettingsUdpGroupSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_loss_action=input_loss_action, + timed_metadata_id3_frame=timed_metadata_id3_frame, + timed_metadata_id3_period=timed_metadata_id3_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_loss_action: Optional[str] = None, + timed_metadata_id3_frame: Optional[str] = None, + timed_metadata_id3_period: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_loss_action is None and 'inputLossAction' in kwargs: + input_loss_action = kwargs['inputLossAction'] + if timed_metadata_id3_frame is None and 'timedMetadataId3Frame' in kwargs: + timed_metadata_id3_frame = kwargs['timedMetadataId3Frame'] + if timed_metadata_id3_period is None and 'timedMetadataId3Period' in kwargs: + timed_metadata_id3_period = kwargs['timedMetadataId3Period'] + if input_loss_action is not None: - pulumi.set(__self__, "input_loss_action", input_loss_action) + _setter("input_loss_action", input_loss_action) if timed_metadata_id3_frame is not None: - pulumi.set(__self__, "timed_metadata_id3_frame", timed_metadata_id3_frame) + _setter("timed_metadata_id3_frame", timed_metadata_id3_frame) if timed_metadata_id3_period is not None: - pulumi.set(__self__, "timed_metadata_id3_period", timed_metadata_id3_period) + _setter("timed_metadata_id3_period", timed_metadata_id3_period) @property @pulumi.getter(name="inputLossAction") @@ -5844,22 +7871,63 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettingsArgs' rtmp_output_settings: RTMP output settings. See RTMP Output Settings for more details. :param 'ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsArgs' udp_output_settings: UDP output settings. See UDP Output Settings for more details. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + archive_output_settings=archive_output_settings, + frame_capture_output_settings=frame_capture_output_settings, + hls_output_settings=hls_output_settings, + media_package_output_settings=media_package_output_settings, + ms_smooth_output_settings=ms_smooth_output_settings, + multiplex_output_settings=multiplex_output_settings, + rtmp_output_settings=rtmp_output_settings, + udp_output_settings=udp_output_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + archive_output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettings'] = None, + frame_capture_output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsFrameCaptureOutputSettings'] = None, + hls_output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettings'] = None, + media_package_output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsMediaPackageOutputSettings'] = None, + ms_smooth_output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsMsSmoothOutputSettings'] = None, + multiplex_output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettings'] = None, + rtmp_output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettings'] = None, + udp_output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if archive_output_settings is None and 'archiveOutputSettings' in kwargs: + archive_output_settings = kwargs['archiveOutputSettings'] + if frame_capture_output_settings is None and 'frameCaptureOutputSettings' in kwargs: + frame_capture_output_settings = kwargs['frameCaptureOutputSettings'] + if hls_output_settings is None and 'hlsOutputSettings' in kwargs: + hls_output_settings = kwargs['hlsOutputSettings'] + if media_package_output_settings is None and 'mediaPackageOutputSettings' in kwargs: + media_package_output_settings = kwargs['mediaPackageOutputSettings'] + if ms_smooth_output_settings is None and 'msSmoothOutputSettings' in kwargs: + ms_smooth_output_settings = kwargs['msSmoothOutputSettings'] + if multiplex_output_settings is None and 'multiplexOutputSettings' in kwargs: + multiplex_output_settings = kwargs['multiplexOutputSettings'] + if rtmp_output_settings is None and 'rtmpOutputSettings' in kwargs: + rtmp_output_settings = kwargs['rtmpOutputSettings'] + if udp_output_settings is None and 'udpOutputSettings' in kwargs: + udp_output_settings = kwargs['udpOutputSettings'] + if archive_output_settings is not None: - pulumi.set(__self__, "archive_output_settings", archive_output_settings) + _setter("archive_output_settings", archive_output_settings) if frame_capture_output_settings is not None: - pulumi.set(__self__, "frame_capture_output_settings", frame_capture_output_settings) + _setter("frame_capture_output_settings", frame_capture_output_settings) if hls_output_settings is not None: - pulumi.set(__self__, "hls_output_settings", hls_output_settings) + _setter("hls_output_settings", hls_output_settings) if media_package_output_settings is not None: - pulumi.set(__self__, "media_package_output_settings", media_package_output_settings) + _setter("media_package_output_settings", media_package_output_settings) if ms_smooth_output_settings is not None: - pulumi.set(__self__, "ms_smooth_output_settings", ms_smooth_output_settings) + _setter("ms_smooth_output_settings", ms_smooth_output_settings) if multiplex_output_settings is not None: - pulumi.set(__self__, "multiplex_output_settings", multiplex_output_settings) + _setter("multiplex_output_settings", multiplex_output_settings) if rtmp_output_settings is not None: - pulumi.set(__self__, "rtmp_output_settings", rtmp_output_settings) + _setter("rtmp_output_settings", rtmp_output_settings) if udp_output_settings is not None: - pulumi.set(__self__, "udp_output_settings", udp_output_settings) + _setter("udp_output_settings", udp_output_settings) @property @pulumi.getter(name="archiveOutputSettings") @@ -5947,12 +8015,31 @@ def __init__(__self__, *, :param str extension: Output file extension. :param str name_modifier: String concatenated to the end of the destination filename. Required for multiple outputs of the same type. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_settings=container_settings, + extension=extension, + name_modifier=name_modifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings'] = None, + extension: Optional[str] = None, + name_modifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_settings is None and 'containerSettings' in kwargs: + container_settings = kwargs['containerSettings'] + if name_modifier is None and 'nameModifier' in kwargs: + name_modifier = kwargs['nameModifier'] + if container_settings is not None: - pulumi.set(__self__, "container_settings", container_settings) + _setter("container_settings", container_settings) if extension is not None: - pulumi.set(__self__, "extension", extension) + _setter("extension", extension) if name_modifier is not None: - pulumi.set(__self__, "name_modifier", name_modifier) + _setter("name_modifier", name_modifier) @property @pulumi.getter(name="containerSettings") @@ -6007,10 +8094,27 @@ def __init__(__self__, *, :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. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + m2ts_settings=m2ts_settings, + raw_settings=raw_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + m2ts_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings'] = None, + raw_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if m2ts_settings is None and 'm2tsSettings' in kwargs: + m2ts_settings = kwargs['m2tsSettings'] + if raw_settings is None and 'rawSettings' in kwargs: + raw_settings = kwargs['rawSettings'] + if m2ts_settings is not None: - pulumi.set(__self__, "m2ts_settings", m2ts_settings) + _setter("m2ts_settings", m2ts_settings) if raw_settings is not None: - pulumi.set(__self__, "raw_settings", raw_settings) + _setter("raw_settings", raw_settings) @property @pulumi.getter(name="m2tsSettings") @@ -6184,100 +8288,289 @@ def __init__(__self__, *, :param int bitrate: Average bitrate in bits/second. :param str scte35_pid: PID from which to read SCTE-35 messages. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + absent_input_audio_behavior=absent_input_audio_behavior, + arib=arib, + arib_captions_pid=arib_captions_pid, + arib_captions_pid_control=arib_captions_pid_control, + audio_buffer_model=audio_buffer_model, + audio_frames_per_pes=audio_frames_per_pes, + audio_pids=audio_pids, + audio_stream_type=audio_stream_type, + bitrate=bitrate, + buffer_model=buffer_model, + cc_descriptor=cc_descriptor, + dvb_nit_settings=dvb_nit_settings, + dvb_sdt_settings=dvb_sdt_settings, + dvb_sub_pids=dvb_sub_pids, + dvb_tdt_settings=dvb_tdt_settings, + dvb_teletext_pid=dvb_teletext_pid, + ebif=ebif, + ebp_audio_interval=ebp_audio_interval, + ebp_lookahead_ms=ebp_lookahead_ms, + ebp_placement=ebp_placement, + ecm_pid=ecm_pid, + es_rate_in_pes=es_rate_in_pes, + etv_platform_pid=etv_platform_pid, + etv_signal_pid=etv_signal_pid, + fragment_time=fragment_time, + klv=klv, + klv_data_pids=klv_data_pids, + nielsen_id3_behavior=nielsen_id3_behavior, + null_packet_bitrate=null_packet_bitrate, + pat_interval=pat_interval, + pcr_control=pcr_control, + pcr_period=pcr_period, + pcr_pid=pcr_pid, + pmt_interval=pmt_interval, + pmt_pid=pmt_pid, + program_num=program_num, + rate_mode=rate_mode, + scte27_pids=scte27_pids, + scte35_control=scte35_control, + scte35_pid=scte35_pid, + segmentation_markers=segmentation_markers, + segmentation_style=segmentation_style, + segmentation_time=segmentation_time, + timed_metadata_behavior=timed_metadata_behavior, + timed_metadata_pid=timed_metadata_pid, + transport_stream_id=transport_stream_id, + video_pid=video_pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + absent_input_audio_behavior: Optional[str] = None, + arib: Optional[str] = None, + arib_captions_pid: Optional[str] = None, + arib_captions_pid_control: Optional[str] = None, + audio_buffer_model: Optional[str] = None, + audio_frames_per_pes: Optional[int] = None, + audio_pids: Optional[str] = None, + audio_stream_type: Optional[str] = None, + bitrate: Optional[int] = None, + buffer_model: Optional[str] = None, + cc_descriptor: Optional[str] = None, + dvb_nit_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettings'] = None, + dvb_sdt_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettings'] = None, + dvb_sub_pids: Optional[str] = None, + dvb_tdt_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettings'] = None, + dvb_teletext_pid: Optional[str] = None, + ebif: Optional[str] = None, + ebp_audio_interval: Optional[str] = None, + ebp_lookahead_ms: Optional[int] = None, + ebp_placement: Optional[str] = None, + ecm_pid: Optional[str] = None, + es_rate_in_pes: Optional[str] = None, + etv_platform_pid: Optional[str] = None, + etv_signal_pid: Optional[str] = None, + fragment_time: Optional[float] = None, + klv: Optional[str] = None, + klv_data_pids: Optional[str] = None, + nielsen_id3_behavior: Optional[str] = None, + null_packet_bitrate: Optional[float] = None, + pat_interval: Optional[int] = None, + pcr_control: Optional[str] = None, + pcr_period: Optional[int] = None, + pcr_pid: Optional[str] = None, + pmt_interval: Optional[int] = None, + pmt_pid: Optional[str] = None, + program_num: Optional[int] = None, + rate_mode: Optional[str] = None, + scte27_pids: Optional[str] = None, + scte35_control: Optional[str] = None, + scte35_pid: Optional[str] = None, + segmentation_markers: Optional[str] = None, + segmentation_style: Optional[str] = None, + segmentation_time: Optional[float] = None, + timed_metadata_behavior: Optional[str] = None, + timed_metadata_pid: Optional[str] = None, + transport_stream_id: Optional[int] = None, + video_pid: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if absent_input_audio_behavior is None and 'absentInputAudioBehavior' in kwargs: + absent_input_audio_behavior = kwargs['absentInputAudioBehavior'] + if arib_captions_pid is None and 'aribCaptionsPid' in kwargs: + arib_captions_pid = kwargs['aribCaptionsPid'] + if arib_captions_pid_control is None and 'aribCaptionsPidControl' in kwargs: + arib_captions_pid_control = kwargs['aribCaptionsPidControl'] + if audio_buffer_model is None and 'audioBufferModel' in kwargs: + audio_buffer_model = kwargs['audioBufferModel'] + if audio_frames_per_pes is None and 'audioFramesPerPes' in kwargs: + audio_frames_per_pes = kwargs['audioFramesPerPes'] + if audio_pids is None and 'audioPids' in kwargs: + audio_pids = kwargs['audioPids'] + if audio_stream_type is None and 'audioStreamType' in kwargs: + audio_stream_type = kwargs['audioStreamType'] + if buffer_model is None and 'bufferModel' in kwargs: + buffer_model = kwargs['bufferModel'] + if cc_descriptor is None and 'ccDescriptor' in kwargs: + cc_descriptor = kwargs['ccDescriptor'] + if dvb_nit_settings is None and 'dvbNitSettings' in kwargs: + dvb_nit_settings = kwargs['dvbNitSettings'] + if dvb_sdt_settings is None and 'dvbSdtSettings' in kwargs: + dvb_sdt_settings = kwargs['dvbSdtSettings'] + if dvb_sub_pids is None and 'dvbSubPids' in kwargs: + dvb_sub_pids = kwargs['dvbSubPids'] + if dvb_tdt_settings is None and 'dvbTdtSettings' in kwargs: + dvb_tdt_settings = kwargs['dvbTdtSettings'] + if dvb_teletext_pid is None and 'dvbTeletextPid' in kwargs: + dvb_teletext_pid = kwargs['dvbTeletextPid'] + if ebp_audio_interval is None and 'ebpAudioInterval' in kwargs: + ebp_audio_interval = kwargs['ebpAudioInterval'] + if ebp_lookahead_ms is None and 'ebpLookaheadMs' in kwargs: + ebp_lookahead_ms = kwargs['ebpLookaheadMs'] + if ebp_placement is None and 'ebpPlacement' in kwargs: + ebp_placement = kwargs['ebpPlacement'] + if ecm_pid is None and 'ecmPid' in kwargs: + ecm_pid = kwargs['ecmPid'] + if es_rate_in_pes is None and 'esRateInPes' in kwargs: + es_rate_in_pes = kwargs['esRateInPes'] + if etv_platform_pid is None and 'etvPlatformPid' in kwargs: + etv_platform_pid = kwargs['etvPlatformPid'] + if etv_signal_pid is None and 'etvSignalPid' in kwargs: + etv_signal_pid = kwargs['etvSignalPid'] + if fragment_time is None and 'fragmentTime' in kwargs: + fragment_time = kwargs['fragmentTime'] + if klv_data_pids is None and 'klvDataPids' in kwargs: + klv_data_pids = kwargs['klvDataPids'] + if nielsen_id3_behavior is None and 'nielsenId3Behavior' in kwargs: + nielsen_id3_behavior = kwargs['nielsenId3Behavior'] + if null_packet_bitrate is None and 'nullPacketBitrate' in kwargs: + null_packet_bitrate = kwargs['nullPacketBitrate'] + if pat_interval is None and 'patInterval' in kwargs: + pat_interval = kwargs['patInterval'] + if pcr_control is None and 'pcrControl' in kwargs: + pcr_control = kwargs['pcrControl'] + if pcr_period is None and 'pcrPeriod' in kwargs: + pcr_period = kwargs['pcrPeriod'] + if pcr_pid is None and 'pcrPid' in kwargs: + pcr_pid = kwargs['pcrPid'] + if pmt_interval is None and 'pmtInterval' in kwargs: + pmt_interval = kwargs['pmtInterval'] + if pmt_pid is None and 'pmtPid' in kwargs: + pmt_pid = kwargs['pmtPid'] + if program_num is None and 'programNum' in kwargs: + program_num = kwargs['programNum'] + if rate_mode is None and 'rateMode' in kwargs: + rate_mode = kwargs['rateMode'] + if scte27_pids is None and 'scte27Pids' in kwargs: + scte27_pids = kwargs['scte27Pids'] + if scte35_control is None and 'scte35Control' in kwargs: + scte35_control = kwargs['scte35Control'] + if scte35_pid is None and 'scte35Pid' in kwargs: + scte35_pid = kwargs['scte35Pid'] + if segmentation_markers is None and 'segmentationMarkers' in kwargs: + segmentation_markers = kwargs['segmentationMarkers'] + if segmentation_style is None and 'segmentationStyle' in kwargs: + segmentation_style = kwargs['segmentationStyle'] + if segmentation_time is None and 'segmentationTime' in kwargs: + segmentation_time = kwargs['segmentationTime'] + if timed_metadata_behavior is None and 'timedMetadataBehavior' in kwargs: + timed_metadata_behavior = kwargs['timedMetadataBehavior'] + if timed_metadata_pid is None and 'timedMetadataPid' in kwargs: + timed_metadata_pid = kwargs['timedMetadataPid'] + if transport_stream_id is None and 'transportStreamId' in kwargs: + transport_stream_id = kwargs['transportStreamId'] + if video_pid is None and 'videoPid' in kwargs: + video_pid = kwargs['videoPid'] + if absent_input_audio_behavior is not None: - pulumi.set(__self__, "absent_input_audio_behavior", absent_input_audio_behavior) + _setter("absent_input_audio_behavior", absent_input_audio_behavior) if arib is not None: - pulumi.set(__self__, "arib", arib) + _setter("arib", arib) if arib_captions_pid is not None: - pulumi.set(__self__, "arib_captions_pid", arib_captions_pid) + _setter("arib_captions_pid", arib_captions_pid) if arib_captions_pid_control is not None: - pulumi.set(__self__, "arib_captions_pid_control", arib_captions_pid_control) + _setter("arib_captions_pid_control", arib_captions_pid_control) if audio_buffer_model is not None: - pulumi.set(__self__, "audio_buffer_model", audio_buffer_model) + _setter("audio_buffer_model", audio_buffer_model) if audio_frames_per_pes is not None: - pulumi.set(__self__, "audio_frames_per_pes", audio_frames_per_pes) + _setter("audio_frames_per_pes", audio_frames_per_pes) if audio_pids is not None: - pulumi.set(__self__, "audio_pids", audio_pids) + _setter("audio_pids", audio_pids) if audio_stream_type is not None: - pulumi.set(__self__, "audio_stream_type", audio_stream_type) + _setter("audio_stream_type", audio_stream_type) if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if buffer_model is not None: - pulumi.set(__self__, "buffer_model", buffer_model) + _setter("buffer_model", buffer_model) if cc_descriptor is not None: - pulumi.set(__self__, "cc_descriptor", cc_descriptor) + _setter("cc_descriptor", cc_descriptor) if dvb_nit_settings is not None: - pulumi.set(__self__, "dvb_nit_settings", dvb_nit_settings) + _setter("dvb_nit_settings", dvb_nit_settings) if dvb_sdt_settings is not None: - pulumi.set(__self__, "dvb_sdt_settings", dvb_sdt_settings) + _setter("dvb_sdt_settings", dvb_sdt_settings) if dvb_sub_pids is not None: - pulumi.set(__self__, "dvb_sub_pids", dvb_sub_pids) + _setter("dvb_sub_pids", dvb_sub_pids) if dvb_tdt_settings is not None: - pulumi.set(__self__, "dvb_tdt_settings", dvb_tdt_settings) + _setter("dvb_tdt_settings", dvb_tdt_settings) if dvb_teletext_pid is not None: - pulumi.set(__self__, "dvb_teletext_pid", dvb_teletext_pid) + _setter("dvb_teletext_pid", dvb_teletext_pid) if ebif is not None: - pulumi.set(__self__, "ebif", ebif) + _setter("ebif", ebif) if ebp_audio_interval is not None: - pulumi.set(__self__, "ebp_audio_interval", ebp_audio_interval) + _setter("ebp_audio_interval", ebp_audio_interval) if ebp_lookahead_ms is not None: - pulumi.set(__self__, "ebp_lookahead_ms", ebp_lookahead_ms) + _setter("ebp_lookahead_ms", ebp_lookahead_ms) if ebp_placement is not None: - pulumi.set(__self__, "ebp_placement", ebp_placement) + _setter("ebp_placement", ebp_placement) if ecm_pid is not None: - pulumi.set(__self__, "ecm_pid", ecm_pid) + _setter("ecm_pid", ecm_pid) if es_rate_in_pes is not None: - pulumi.set(__self__, "es_rate_in_pes", es_rate_in_pes) + _setter("es_rate_in_pes", es_rate_in_pes) if etv_platform_pid is not None: - pulumi.set(__self__, "etv_platform_pid", etv_platform_pid) + _setter("etv_platform_pid", etv_platform_pid) if etv_signal_pid is not None: - pulumi.set(__self__, "etv_signal_pid", etv_signal_pid) + _setter("etv_signal_pid", etv_signal_pid) if fragment_time is not None: - pulumi.set(__self__, "fragment_time", fragment_time) + _setter("fragment_time", fragment_time) if klv is not None: - pulumi.set(__self__, "klv", klv) + _setter("klv", klv) if klv_data_pids is not None: - pulumi.set(__self__, "klv_data_pids", klv_data_pids) + _setter("klv_data_pids", klv_data_pids) if nielsen_id3_behavior is not None: - pulumi.set(__self__, "nielsen_id3_behavior", nielsen_id3_behavior) + _setter("nielsen_id3_behavior", nielsen_id3_behavior) if null_packet_bitrate is not None: - pulumi.set(__self__, "null_packet_bitrate", null_packet_bitrate) + _setter("null_packet_bitrate", null_packet_bitrate) if pat_interval is not None: - pulumi.set(__self__, "pat_interval", pat_interval) + _setter("pat_interval", pat_interval) if pcr_control is not None: - pulumi.set(__self__, "pcr_control", pcr_control) + _setter("pcr_control", pcr_control) if pcr_period is not None: - pulumi.set(__self__, "pcr_period", pcr_period) + _setter("pcr_period", pcr_period) if pcr_pid is not None: - pulumi.set(__self__, "pcr_pid", pcr_pid) + _setter("pcr_pid", pcr_pid) if pmt_interval is not None: - pulumi.set(__self__, "pmt_interval", pmt_interval) + _setter("pmt_interval", pmt_interval) if pmt_pid is not None: - pulumi.set(__self__, "pmt_pid", pmt_pid) + _setter("pmt_pid", pmt_pid) if program_num is not None: - pulumi.set(__self__, "program_num", program_num) + _setter("program_num", program_num) if rate_mode is not None: - pulumi.set(__self__, "rate_mode", rate_mode) + _setter("rate_mode", rate_mode) if scte27_pids is not None: - pulumi.set(__self__, "scte27_pids", scte27_pids) + _setter("scte27_pids", scte27_pids) if scte35_control is not None: - pulumi.set(__self__, "scte35_control", scte35_control) + _setter("scte35_control", scte35_control) if scte35_pid is not None: - pulumi.set(__self__, "scte35_pid", scte35_pid) + _setter("scte35_pid", scte35_pid) if segmentation_markers is not None: - pulumi.set(__self__, "segmentation_markers", segmentation_markers) + _setter("segmentation_markers", segmentation_markers) if segmentation_style is not None: - pulumi.set(__self__, "segmentation_style", segmentation_style) + _setter("segmentation_style", segmentation_style) if segmentation_time is not None: - pulumi.set(__self__, "segmentation_time", segmentation_time) + _setter("segmentation_time", segmentation_time) if timed_metadata_behavior is not None: - pulumi.set(__self__, "timed_metadata_behavior", timed_metadata_behavior) + _setter("timed_metadata_behavior", timed_metadata_behavior) if timed_metadata_pid is not None: - pulumi.set(__self__, "timed_metadata_pid", timed_metadata_pid) + _setter("timed_metadata_pid", timed_metadata_pid) if transport_stream_id is not None: - pulumi.set(__self__, "transport_stream_id", transport_stream_id) + _setter("transport_stream_id", transport_stream_id) if video_pid is not None: - pulumi.set(__self__, "video_pid", video_pid) + _setter("video_pid", video_pid) @property @pulumi.getter(name="absentInputAudioBehavior") @@ -6548,10 +8841,35 @@ def __init__(__self__, *, network_id: int, network_name: str, rep_interval: Optional[int] = None): - pulumi.set(__self__, "network_id", network_id) - pulumi.set(__self__, "network_name", network_name) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_id=network_id, + network_name=network_name, + rep_interval=rep_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_id: Optional[int] = None, + network_name: Optional[str] = None, + rep_interval: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_id is None and 'networkId' in kwargs: + network_id = kwargs['networkId'] + if network_id is None: + raise TypeError("Missing 'network_id' argument") + if network_name is None and 'networkName' in kwargs: + network_name = kwargs['networkName'] + if network_name is None: + raise TypeError("Missing 'network_name' argument") + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + + _setter("network_id", network_id) + _setter("network_name", network_name) if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) @property @pulumi.getter(name="networkId") @@ -6599,14 +8917,39 @@ def __init__(__self__, *, rep_interval: Optional[int] = None, service_name: Optional[str] = None, service_provider_name: Optional[str] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_sdt=output_sdt, + rep_interval=rep_interval, + service_name=service_name, + service_provider_name=service_provider_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_sdt: Optional[str] = None, + rep_interval: Optional[int] = None, + service_name: Optional[str] = None, + service_provider_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_sdt is None and 'outputSdt' in kwargs: + output_sdt = kwargs['outputSdt'] + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_provider_name is None and 'serviceProviderName' in kwargs: + service_provider_name = kwargs['serviceProviderName'] + if output_sdt is not None: - pulumi.set(__self__, "output_sdt", output_sdt) + _setter("output_sdt", output_sdt) if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if service_provider_name is not None: - pulumi.set(__self__, "service_provider_name", service_provider_name) + _setter("service_provider_name", service_provider_name) @property @pulumi.getter(name="outputSdt") @@ -6650,8 +8993,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, rep_interval: Optional[int] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + rep_interval=rep_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rep_interval: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) @property @pulumi.getter(name="repInterval") @@ -6663,6 +9019,13 @@ def rep_interval(self) -> Optional[int]: class ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsRawSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -6689,8 +9052,21 @@ def __init__(__self__, *, """ :param str name_modifier: String concatenated to the end of the destination filename. Required for multiple outputs of the same type. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsFrameCaptureOutputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + name_modifier=name_modifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name_modifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_modifier is None and 'nameModifier' in kwargs: + name_modifier = kwargs['nameModifier'] + if name_modifier is not None: - pulumi.set(__self__, "name_modifier", name_modifier) + _setter("name_modifier", name_modifier) @property @pulumi.getter(name="nameModifier") @@ -6734,13 +9110,40 @@ def __init__(__self__, *, """ :param str name_modifier: String concatenated to the end of the destination filename. Required for multiple outputs of the same type. """ - pulumi.set(__self__, "hls_settings", hls_settings) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + hls_settings=hls_settings, + h265_packaging_type=h265_packaging_type, + name_modifier=name_modifier, + segment_modifier=segment_modifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hls_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettings'] = None, + h265_packaging_type: Optional[str] = None, + name_modifier: Optional[str] = None, + segment_modifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hls_settings is None and 'hlsSettings' in kwargs: + hls_settings = kwargs['hlsSettings'] + if hls_settings is None: + raise TypeError("Missing 'hls_settings' argument") + if h265_packaging_type is None and 'h265PackagingType' in kwargs: + h265_packaging_type = kwargs['h265PackagingType'] + if name_modifier is None and 'nameModifier' in kwargs: + name_modifier = kwargs['nameModifier'] + if segment_modifier is None and 'segmentModifier' in kwargs: + segment_modifier = kwargs['segmentModifier'] + + _setter("hls_settings", hls_settings) if h265_packaging_type is not None: - pulumi.set(__self__, "h265_packaging_type", h265_packaging_type) + _setter("h265_packaging_type", h265_packaging_type) if name_modifier is not None: - pulumi.set(__self__, "name_modifier", name_modifier) + _setter("name_modifier", name_modifier) if segment_modifier is not None: - pulumi.set(__self__, "segment_modifier", segment_modifier) + _setter("segment_modifier", segment_modifier) @property @pulumi.getter(name="hlsSettings") @@ -6796,14 +9199,39 @@ def __init__(__self__, *, fmp4_hls_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettings'] = None, frame_capture_hls_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFrameCaptureHlsSettings'] = None, standard_hls_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings'] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_only_hls_settings=audio_only_hls_settings, + fmp4_hls_settings=fmp4_hls_settings, + frame_capture_hls_settings=frame_capture_hls_settings, + standard_hls_settings=standard_hls_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_only_hls_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings'] = None, + fmp4_hls_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettings'] = None, + frame_capture_hls_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFrameCaptureHlsSettings'] = None, + standard_hls_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_only_hls_settings is None and 'audioOnlyHlsSettings' in kwargs: + audio_only_hls_settings = kwargs['audioOnlyHlsSettings'] + if fmp4_hls_settings is None and 'fmp4HlsSettings' in kwargs: + fmp4_hls_settings = kwargs['fmp4HlsSettings'] + if frame_capture_hls_settings is None and 'frameCaptureHlsSettings' in kwargs: + frame_capture_hls_settings = kwargs['frameCaptureHlsSettings'] + if standard_hls_settings is None and 'standardHlsSettings' in kwargs: + standard_hls_settings = kwargs['standardHlsSettings'] + if audio_only_hls_settings is not None: - pulumi.set(__self__, "audio_only_hls_settings", audio_only_hls_settings) + _setter("audio_only_hls_settings", audio_only_hls_settings) if fmp4_hls_settings is not None: - pulumi.set(__self__, "fmp4_hls_settings", fmp4_hls_settings) + _setter("fmp4_hls_settings", fmp4_hls_settings) if frame_capture_hls_settings is not None: - pulumi.set(__self__, "frame_capture_hls_settings", frame_capture_hls_settings) + _setter("frame_capture_hls_settings", frame_capture_hls_settings) if standard_hls_settings is not None: - pulumi.set(__self__, "standard_hls_settings", standard_hls_settings) + _setter("standard_hls_settings", standard_hls_settings) @property @pulumi.getter(name="audioOnlyHlsSettings") @@ -6856,14 +9284,39 @@ def __init__(__self__, *, audio_only_image: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage'] = None, audio_track_type: Optional[str] = None, segment_type: Optional[str] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_group_id=audio_group_id, + audio_only_image=audio_only_image, + audio_track_type=audio_track_type, + segment_type=segment_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_group_id: Optional[str] = None, + audio_only_image: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage'] = None, + audio_track_type: Optional[str] = None, + segment_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_group_id is None and 'audioGroupId' in kwargs: + audio_group_id = kwargs['audioGroupId'] + if audio_only_image is None and 'audioOnlyImage' in kwargs: + audio_only_image = kwargs['audioOnlyImage'] + if audio_track_type is None and 'audioTrackType' in kwargs: + audio_track_type = kwargs['audioTrackType'] + if segment_type is None and 'segmentType' in kwargs: + segment_type = kwargs['segmentType'] + if audio_group_id is not None: - pulumi.set(__self__, "audio_group_id", audio_group_id) + _setter("audio_group_id", audio_group_id) if audio_only_image is not None: - pulumi.set(__self__, "audio_only_image", audio_only_image) + _setter("audio_only_image", audio_only_image) if audio_track_type is not None: - pulumi.set(__self__, "audio_track_type", audio_track_type) + _setter("audio_track_type", audio_track_type) if segment_type is not None: - pulumi.set(__self__, "segment_type", segment_type) + _setter("segment_type", segment_type) @property @pulumi.getter(name="audioGroupId") @@ -6912,13 +9365,32 @@ def __init__(__self__, *, """ :param str uri: Path to a file accessible to the live stream. :param str password_param: Key used to extract the password from EC2 Parameter store. - :param str username: Username for destination. + :param str username: . Username to be used. """ - pulumi.set(__self__, "uri", uri) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImage._configure( + lambda key, value: pulumi.set(__self__, key, value), + uri=uri, + password_param=password_param, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + uri: Optional[str] = None, + password_param: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if uri is None: + raise TypeError("Missing 'uri' argument") + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + + _setter("uri", uri) if password_param is not None: - pulumi.set(__self__, "password_param", password_param) + _setter("password_param", password_param) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -6940,7 +9412,7 @@ def password_param(self) -> Optional[str]: @pulumi.getter def username(self) -> Optional[str]: """ - Username for destination. + . Username to be used. """ return pulumi.get(self, "username") @@ -6972,12 +9444,33 @@ def __init__(__self__, *, audio_rendition_sets: Optional[str] = None, nielsen_id3_behavior: Optional[str] = None, timed_metadata_behavior: Optional[str] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_rendition_sets=audio_rendition_sets, + nielsen_id3_behavior=nielsen_id3_behavior, + timed_metadata_behavior=timed_metadata_behavior, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_rendition_sets: Optional[str] = None, + nielsen_id3_behavior: Optional[str] = None, + timed_metadata_behavior: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_rendition_sets is None and 'audioRenditionSets' in kwargs: + audio_rendition_sets = kwargs['audioRenditionSets'] + if nielsen_id3_behavior is None and 'nielsenId3Behavior' in kwargs: + nielsen_id3_behavior = kwargs['nielsenId3Behavior'] + if timed_metadata_behavior is None and 'timedMetadataBehavior' in kwargs: + timed_metadata_behavior = kwargs['timedMetadataBehavior'] + if audio_rendition_sets is not None: - pulumi.set(__self__, "audio_rendition_sets", audio_rendition_sets) + _setter("audio_rendition_sets", audio_rendition_sets) if nielsen_id3_behavior is not None: - pulumi.set(__self__, "nielsen_id3_behavior", nielsen_id3_behavior) + _setter("nielsen_id3_behavior", nielsen_id3_behavior) if timed_metadata_behavior is not None: - pulumi.set(__self__, "timed_metadata_behavior", timed_metadata_behavior) + _setter("timed_metadata_behavior", timed_metadata_behavior) @property @pulumi.getter(name="audioRenditionSets") @@ -6999,6 +9492,13 @@ def timed_metadata_behavior(self) -> Optional[str]: class ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsFrameCaptureHlsSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -7025,9 +9525,28 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, m3u8_settings: 'outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8Settings', audio_rendition_sets: Optional[str] = None): - pulumi.set(__self__, "m3u8_settings", m3u8_settings) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + m3u8_settings=m3u8_settings, + audio_rendition_sets=audio_rendition_sets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + m3u8_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8Settings'] = None, + audio_rendition_sets: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if m3u8_settings is None and 'm3u8Settings' in kwargs: + m3u8_settings = kwargs['m3u8Settings'] + if m3u8_settings is None: + raise TypeError("Missing 'm3u8_settings' argument") + if audio_rendition_sets is None and 'audioRenditionSets' in kwargs: + audio_rendition_sets = kwargs['audioRenditionSets'] + + _setter("m3u8_settings", m3u8_settings) if audio_rendition_sets is not None: - pulumi.set(__self__, "audio_rendition_sets", audio_rendition_sets) + _setter("audio_rendition_sets", audio_rendition_sets) @property @pulumi.getter(name="m3u8Settings") @@ -7112,40 +9631,117 @@ def __init__(__self__, *, """ :param str scte35_pid: PID from which to read SCTE-35 messages. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_frames_per_pes=audio_frames_per_pes, + audio_pids=audio_pids, + ecm_pid=ecm_pid, + nielsen_id3_behavior=nielsen_id3_behavior, + pat_interval=pat_interval, + pcr_control=pcr_control, + pcr_period=pcr_period, + pcr_pid=pcr_pid, + pmt_interval=pmt_interval, + pmt_pid=pmt_pid, + program_num=program_num, + scte35_behavior=scte35_behavior, + scte35_pid=scte35_pid, + timed_metadata_behavior=timed_metadata_behavior, + timed_metadata_pid=timed_metadata_pid, + transport_stream_id=transport_stream_id, + video_pid=video_pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_frames_per_pes: Optional[int] = None, + audio_pids: Optional[str] = None, + ecm_pid: Optional[str] = None, + nielsen_id3_behavior: Optional[str] = None, + pat_interval: Optional[int] = None, + pcr_control: Optional[str] = None, + pcr_period: Optional[int] = None, + pcr_pid: Optional[str] = None, + pmt_interval: Optional[int] = None, + pmt_pid: Optional[str] = None, + program_num: Optional[int] = None, + scte35_behavior: Optional[str] = None, + scte35_pid: Optional[str] = None, + timed_metadata_behavior: Optional[str] = None, + timed_metadata_pid: Optional[str] = None, + transport_stream_id: Optional[int] = None, + video_pid: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_frames_per_pes is None and 'audioFramesPerPes' in kwargs: + audio_frames_per_pes = kwargs['audioFramesPerPes'] + if audio_pids is None and 'audioPids' in kwargs: + audio_pids = kwargs['audioPids'] + if ecm_pid is None and 'ecmPid' in kwargs: + ecm_pid = kwargs['ecmPid'] + if nielsen_id3_behavior is None and 'nielsenId3Behavior' in kwargs: + nielsen_id3_behavior = kwargs['nielsenId3Behavior'] + if pat_interval is None and 'patInterval' in kwargs: + pat_interval = kwargs['patInterval'] + if pcr_control is None and 'pcrControl' in kwargs: + pcr_control = kwargs['pcrControl'] + if pcr_period is None and 'pcrPeriod' in kwargs: + pcr_period = kwargs['pcrPeriod'] + if pcr_pid is None and 'pcrPid' in kwargs: + pcr_pid = kwargs['pcrPid'] + if pmt_interval is None and 'pmtInterval' in kwargs: + pmt_interval = kwargs['pmtInterval'] + if pmt_pid is None and 'pmtPid' in kwargs: + pmt_pid = kwargs['pmtPid'] + if program_num is None and 'programNum' in kwargs: + program_num = kwargs['programNum'] + if scte35_behavior is None and 'scte35Behavior' in kwargs: + scte35_behavior = kwargs['scte35Behavior'] + if scte35_pid is None and 'scte35Pid' in kwargs: + scte35_pid = kwargs['scte35Pid'] + if timed_metadata_behavior is None and 'timedMetadataBehavior' in kwargs: + timed_metadata_behavior = kwargs['timedMetadataBehavior'] + if timed_metadata_pid is None and 'timedMetadataPid' in kwargs: + timed_metadata_pid = kwargs['timedMetadataPid'] + if transport_stream_id is None and 'transportStreamId' in kwargs: + transport_stream_id = kwargs['transportStreamId'] + if video_pid is None and 'videoPid' in kwargs: + video_pid = kwargs['videoPid'] + if audio_frames_per_pes is not None: - pulumi.set(__self__, "audio_frames_per_pes", audio_frames_per_pes) + _setter("audio_frames_per_pes", audio_frames_per_pes) if audio_pids is not None: - pulumi.set(__self__, "audio_pids", audio_pids) + _setter("audio_pids", audio_pids) if ecm_pid is not None: - pulumi.set(__self__, "ecm_pid", ecm_pid) + _setter("ecm_pid", ecm_pid) if nielsen_id3_behavior is not None: - pulumi.set(__self__, "nielsen_id3_behavior", nielsen_id3_behavior) + _setter("nielsen_id3_behavior", nielsen_id3_behavior) if pat_interval is not None: - pulumi.set(__self__, "pat_interval", pat_interval) + _setter("pat_interval", pat_interval) if pcr_control is not None: - pulumi.set(__self__, "pcr_control", pcr_control) + _setter("pcr_control", pcr_control) if pcr_period is not None: - pulumi.set(__self__, "pcr_period", pcr_period) + _setter("pcr_period", pcr_period) if pcr_pid is not None: - pulumi.set(__self__, "pcr_pid", pcr_pid) + _setter("pcr_pid", pcr_pid) if pmt_interval is not None: - pulumi.set(__self__, "pmt_interval", pmt_interval) + _setter("pmt_interval", pmt_interval) if pmt_pid is not None: - pulumi.set(__self__, "pmt_pid", pmt_pid) + _setter("pmt_pid", pmt_pid) if program_num is not None: - pulumi.set(__self__, "program_num", program_num) + _setter("program_num", program_num) if scte35_behavior is not None: - pulumi.set(__self__, "scte35_behavior", scte35_behavior) + _setter("scte35_behavior", scte35_behavior) if scte35_pid is not None: - pulumi.set(__self__, "scte35_pid", scte35_pid) + _setter("scte35_pid", scte35_pid) if timed_metadata_behavior is not None: - pulumi.set(__self__, "timed_metadata_behavior", timed_metadata_behavior) + _setter("timed_metadata_behavior", timed_metadata_behavior) if timed_metadata_pid is not None: - pulumi.set(__self__, "timed_metadata_pid", timed_metadata_pid) + _setter("timed_metadata_pid", timed_metadata_pid) if transport_stream_id is not None: - pulumi.set(__self__, "transport_stream_id", transport_stream_id) + _setter("transport_stream_id", transport_stream_id) if video_pid is not None: - pulumi.set(__self__, "video_pid", video_pid) + _setter("video_pid", video_pid) @property @pulumi.getter(name="audioFramesPerPes") @@ -7240,6 +9836,13 @@ def video_pid(self) -> Optional[str]: class ChannelEncoderSettingsOutputGroupOutputOutputSettingsMediaPackageOutputSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -7269,10 +9872,27 @@ def __init__(__self__, *, """ :param str name_modifier: String concatenated to the end of the destination filename. Required for multiple outputs of the same type. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsMsSmoothOutputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + h265_packaging_type=h265_packaging_type, + name_modifier=name_modifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + h265_packaging_type: Optional[str] = None, + name_modifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if h265_packaging_type is None and 'h265PackagingType' in kwargs: + h265_packaging_type = kwargs['h265PackagingType'] + if name_modifier is None and 'nameModifier' in kwargs: + name_modifier = kwargs['nameModifier'] + if h265_packaging_type is not None: - pulumi.set(__self__, "h265_packaging_type", h265_packaging_type) + _setter("h265_packaging_type", h265_packaging_type) if name_modifier is not None: - pulumi.set(__self__, "name_modifier", name_modifier) + _setter("name_modifier", name_modifier) @property @pulumi.getter(name="h265PackagingType") @@ -7295,7 +9915,20 @@ def __init__(__self__, *, """ :param 'ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettingsDestinationArgs' destination: Destination is a multiplex. See Destination for more details. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettingsDestination'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + + _setter("destination", destination) @property @pulumi.getter @@ -7330,7 +9963,22 @@ def __init__(__self__, *, """ :param str destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsMultiplexOutputSettingsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -7375,13 +10023,38 @@ def __init__(__self__, *, :param int connection_retry_interval: Number of seconds to wait before retrying connection to the flash media server if the connection is lost. :param int num_retries: Number of retry attempts. """ - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + certificate_mode=certificate_mode, + connection_retry_interval=connection_retry_interval, + num_retries=num_retries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettingsDestination'] = None, + certificate_mode: Optional[str] = None, + connection_retry_interval: Optional[int] = None, + num_retries: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if certificate_mode is None and 'certificateMode' in kwargs: + certificate_mode = kwargs['certificateMode'] + if connection_retry_interval is None and 'connectionRetryInterval' in kwargs: + connection_retry_interval = kwargs['connectionRetryInterval'] + if num_retries is None and 'numRetries' in kwargs: + num_retries = kwargs['numRetries'] + + _setter("destination", destination) if certificate_mode is not None: - pulumi.set(__self__, "certificate_mode", certificate_mode) + _setter("certificate_mode", certificate_mode) if connection_retry_interval is not None: - pulumi.set(__self__, "connection_retry_interval", connection_retry_interval) + _setter("connection_retry_interval", connection_retry_interval) if num_retries is not None: - pulumi.set(__self__, "num_retries", num_retries) + _setter("num_retries", num_retries) @property @pulumi.getter @@ -7440,7 +10113,22 @@ def __init__(__self__, *, """ :param str destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsRtmpOutputSettingsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -7484,12 +10172,39 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsDestinationArgs' destination: Destination address and port number for RTP or UDP packets. See Destination for more details. :param int buffer_msec: UDP output buffering in milliseconds. """ - pulumi.set(__self__, "container_settings", container_settings) - pulumi.set(__self__, "destination", destination) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_settings=container_settings, + destination=destination, + buffer_msec=buffer_msec, + fec_output_settings=fec_output_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings'] = None, + destination: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsDestination'] = None, + buffer_msec: Optional[int] = None, + fec_output_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsFecOutputSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_settings is None and 'containerSettings' in kwargs: + container_settings = kwargs['containerSettings'] + if container_settings is None: + raise TypeError("Missing 'container_settings' argument") + if destination is None: + raise TypeError("Missing 'destination' argument") + if buffer_msec is None and 'bufferMsec' in kwargs: + buffer_msec = kwargs['bufferMsec'] + if fec_output_settings is None and 'fecOutputSettings' in kwargs: + fec_output_settings = kwargs['fecOutputSettings'] + + _setter("container_settings", container_settings) + _setter("destination", destination) if buffer_msec is not None: - pulumi.set(__self__, "buffer_msec", buffer_msec) + _setter("buffer_msec", buffer_msec) if fec_output_settings is not None: - pulumi.set(__self__, "fec_output_settings", fec_output_settings) + _setter("fec_output_settings", fec_output_settings) @property @pulumi.getter(name="containerSettings") @@ -7545,8 +10260,21 @@ def __init__(__self__, *, """ :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. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + m2ts_settings=m2ts_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + m2ts_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if m2ts_settings is None and 'm2tsSettings' in kwargs: + m2ts_settings = kwargs['m2tsSettings'] + if m2ts_settings is not None: - pulumi.set(__self__, "m2ts_settings", m2ts_settings) + _setter("m2ts_settings", m2ts_settings) @property @pulumi.getter(name="m2tsSettings") @@ -7712,100 +10440,289 @@ def __init__(__self__, *, :param int bitrate: Average bitrate in bits/second. :param str scte35_pid: PID from which to read SCTE-35 messages. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + absent_input_audio_behavior=absent_input_audio_behavior, + arib=arib, + arib_captions_pid=arib_captions_pid, + arib_captions_pid_control=arib_captions_pid_control, + audio_buffer_model=audio_buffer_model, + audio_frames_per_pes=audio_frames_per_pes, + audio_pids=audio_pids, + audio_stream_type=audio_stream_type, + bitrate=bitrate, + buffer_model=buffer_model, + cc_descriptor=cc_descriptor, + dvb_nit_settings=dvb_nit_settings, + dvb_sdt_settings=dvb_sdt_settings, + dvb_sub_pids=dvb_sub_pids, + dvb_tdt_settings=dvb_tdt_settings, + dvb_teletext_pid=dvb_teletext_pid, + ebif=ebif, + ebp_audio_interval=ebp_audio_interval, + ebp_lookahead_ms=ebp_lookahead_ms, + ebp_placement=ebp_placement, + ecm_pid=ecm_pid, + es_rate_in_pes=es_rate_in_pes, + etv_platform_pid=etv_platform_pid, + etv_signal_pid=etv_signal_pid, + fragment_time=fragment_time, + klv=klv, + klv_data_pids=klv_data_pids, + nielsen_id3_behavior=nielsen_id3_behavior, + null_packet_bitrate=null_packet_bitrate, + pat_interval=pat_interval, + pcr_control=pcr_control, + pcr_period=pcr_period, + pcr_pid=pcr_pid, + pmt_interval=pmt_interval, + pmt_pid=pmt_pid, + program_num=program_num, + rate_mode=rate_mode, + scte27_pids=scte27_pids, + scte35_control=scte35_control, + scte35_pid=scte35_pid, + segmentation_markers=segmentation_markers, + segmentation_style=segmentation_style, + segmentation_time=segmentation_time, + timed_metadata_behavior=timed_metadata_behavior, + timed_metadata_pid=timed_metadata_pid, + transport_stream_id=transport_stream_id, + video_pid=video_pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + absent_input_audio_behavior: Optional[str] = None, + arib: Optional[str] = None, + arib_captions_pid: Optional[str] = None, + arib_captions_pid_control: Optional[str] = None, + audio_buffer_model: Optional[str] = None, + audio_frames_per_pes: Optional[int] = None, + audio_pids: Optional[str] = None, + audio_stream_type: Optional[str] = None, + bitrate: Optional[int] = None, + buffer_model: Optional[str] = None, + cc_descriptor: Optional[str] = None, + dvb_nit_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettings'] = None, + dvb_sdt_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettings'] = None, + dvb_sub_pids: Optional[str] = None, + dvb_tdt_settings: Optional['outputs.ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettings'] = None, + dvb_teletext_pid: Optional[str] = None, + ebif: Optional[str] = None, + ebp_audio_interval: Optional[str] = None, + ebp_lookahead_ms: Optional[int] = None, + ebp_placement: Optional[str] = None, + ecm_pid: Optional[str] = None, + es_rate_in_pes: Optional[str] = None, + etv_platform_pid: Optional[str] = None, + etv_signal_pid: Optional[str] = None, + fragment_time: Optional[float] = None, + klv: Optional[str] = None, + klv_data_pids: Optional[str] = None, + nielsen_id3_behavior: Optional[str] = None, + null_packet_bitrate: Optional[float] = None, + pat_interval: Optional[int] = None, + pcr_control: Optional[str] = None, + pcr_period: Optional[int] = None, + pcr_pid: Optional[str] = None, + pmt_interval: Optional[int] = None, + pmt_pid: Optional[str] = None, + program_num: Optional[int] = None, + rate_mode: Optional[str] = None, + scte27_pids: Optional[str] = None, + scte35_control: Optional[str] = None, + scte35_pid: Optional[str] = None, + segmentation_markers: Optional[str] = None, + segmentation_style: Optional[str] = None, + segmentation_time: Optional[float] = None, + timed_metadata_behavior: Optional[str] = None, + timed_metadata_pid: Optional[str] = None, + transport_stream_id: Optional[int] = None, + video_pid: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if absent_input_audio_behavior is None and 'absentInputAudioBehavior' in kwargs: + absent_input_audio_behavior = kwargs['absentInputAudioBehavior'] + if arib_captions_pid is None and 'aribCaptionsPid' in kwargs: + arib_captions_pid = kwargs['aribCaptionsPid'] + if arib_captions_pid_control is None and 'aribCaptionsPidControl' in kwargs: + arib_captions_pid_control = kwargs['aribCaptionsPidControl'] + if audio_buffer_model is None and 'audioBufferModel' in kwargs: + audio_buffer_model = kwargs['audioBufferModel'] + if audio_frames_per_pes is None and 'audioFramesPerPes' in kwargs: + audio_frames_per_pes = kwargs['audioFramesPerPes'] + if audio_pids is None and 'audioPids' in kwargs: + audio_pids = kwargs['audioPids'] + if audio_stream_type is None and 'audioStreamType' in kwargs: + audio_stream_type = kwargs['audioStreamType'] + if buffer_model is None and 'bufferModel' in kwargs: + buffer_model = kwargs['bufferModel'] + if cc_descriptor is None and 'ccDescriptor' in kwargs: + cc_descriptor = kwargs['ccDescriptor'] + if dvb_nit_settings is None and 'dvbNitSettings' in kwargs: + dvb_nit_settings = kwargs['dvbNitSettings'] + if dvb_sdt_settings is None and 'dvbSdtSettings' in kwargs: + dvb_sdt_settings = kwargs['dvbSdtSettings'] + if dvb_sub_pids is None and 'dvbSubPids' in kwargs: + dvb_sub_pids = kwargs['dvbSubPids'] + if dvb_tdt_settings is None and 'dvbTdtSettings' in kwargs: + dvb_tdt_settings = kwargs['dvbTdtSettings'] + if dvb_teletext_pid is None and 'dvbTeletextPid' in kwargs: + dvb_teletext_pid = kwargs['dvbTeletextPid'] + if ebp_audio_interval is None and 'ebpAudioInterval' in kwargs: + ebp_audio_interval = kwargs['ebpAudioInterval'] + if ebp_lookahead_ms is None and 'ebpLookaheadMs' in kwargs: + ebp_lookahead_ms = kwargs['ebpLookaheadMs'] + if ebp_placement is None and 'ebpPlacement' in kwargs: + ebp_placement = kwargs['ebpPlacement'] + if ecm_pid is None and 'ecmPid' in kwargs: + ecm_pid = kwargs['ecmPid'] + if es_rate_in_pes is None and 'esRateInPes' in kwargs: + es_rate_in_pes = kwargs['esRateInPes'] + if etv_platform_pid is None and 'etvPlatformPid' in kwargs: + etv_platform_pid = kwargs['etvPlatformPid'] + if etv_signal_pid is None and 'etvSignalPid' in kwargs: + etv_signal_pid = kwargs['etvSignalPid'] + if fragment_time is None and 'fragmentTime' in kwargs: + fragment_time = kwargs['fragmentTime'] + if klv_data_pids is None and 'klvDataPids' in kwargs: + klv_data_pids = kwargs['klvDataPids'] + if nielsen_id3_behavior is None and 'nielsenId3Behavior' in kwargs: + nielsen_id3_behavior = kwargs['nielsenId3Behavior'] + if null_packet_bitrate is None and 'nullPacketBitrate' in kwargs: + null_packet_bitrate = kwargs['nullPacketBitrate'] + if pat_interval is None and 'patInterval' in kwargs: + pat_interval = kwargs['patInterval'] + if pcr_control is None and 'pcrControl' in kwargs: + pcr_control = kwargs['pcrControl'] + if pcr_period is None and 'pcrPeriod' in kwargs: + pcr_period = kwargs['pcrPeriod'] + if pcr_pid is None and 'pcrPid' in kwargs: + pcr_pid = kwargs['pcrPid'] + if pmt_interval is None and 'pmtInterval' in kwargs: + pmt_interval = kwargs['pmtInterval'] + if pmt_pid is None and 'pmtPid' in kwargs: + pmt_pid = kwargs['pmtPid'] + if program_num is None and 'programNum' in kwargs: + program_num = kwargs['programNum'] + if rate_mode is None and 'rateMode' in kwargs: + rate_mode = kwargs['rateMode'] + if scte27_pids is None and 'scte27Pids' in kwargs: + scte27_pids = kwargs['scte27Pids'] + if scte35_control is None and 'scte35Control' in kwargs: + scte35_control = kwargs['scte35Control'] + if scte35_pid is None and 'scte35Pid' in kwargs: + scte35_pid = kwargs['scte35Pid'] + if segmentation_markers is None and 'segmentationMarkers' in kwargs: + segmentation_markers = kwargs['segmentationMarkers'] + if segmentation_style is None and 'segmentationStyle' in kwargs: + segmentation_style = kwargs['segmentationStyle'] + if segmentation_time is None and 'segmentationTime' in kwargs: + segmentation_time = kwargs['segmentationTime'] + if timed_metadata_behavior is None and 'timedMetadataBehavior' in kwargs: + timed_metadata_behavior = kwargs['timedMetadataBehavior'] + if timed_metadata_pid is None and 'timedMetadataPid' in kwargs: + timed_metadata_pid = kwargs['timedMetadataPid'] + if transport_stream_id is None and 'transportStreamId' in kwargs: + transport_stream_id = kwargs['transportStreamId'] + if video_pid is None and 'videoPid' in kwargs: + video_pid = kwargs['videoPid'] + if absent_input_audio_behavior is not None: - pulumi.set(__self__, "absent_input_audio_behavior", absent_input_audio_behavior) + _setter("absent_input_audio_behavior", absent_input_audio_behavior) if arib is not None: - pulumi.set(__self__, "arib", arib) + _setter("arib", arib) if arib_captions_pid is not None: - pulumi.set(__self__, "arib_captions_pid", arib_captions_pid) + _setter("arib_captions_pid", arib_captions_pid) if arib_captions_pid_control is not None: - pulumi.set(__self__, "arib_captions_pid_control", arib_captions_pid_control) + _setter("arib_captions_pid_control", arib_captions_pid_control) if audio_buffer_model is not None: - pulumi.set(__self__, "audio_buffer_model", audio_buffer_model) + _setter("audio_buffer_model", audio_buffer_model) if audio_frames_per_pes is not None: - pulumi.set(__self__, "audio_frames_per_pes", audio_frames_per_pes) + _setter("audio_frames_per_pes", audio_frames_per_pes) if audio_pids is not None: - pulumi.set(__self__, "audio_pids", audio_pids) + _setter("audio_pids", audio_pids) if audio_stream_type is not None: - pulumi.set(__self__, "audio_stream_type", audio_stream_type) + _setter("audio_stream_type", audio_stream_type) if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if buffer_model is not None: - pulumi.set(__self__, "buffer_model", buffer_model) + _setter("buffer_model", buffer_model) if cc_descriptor is not None: - pulumi.set(__self__, "cc_descriptor", cc_descriptor) + _setter("cc_descriptor", cc_descriptor) if dvb_nit_settings is not None: - pulumi.set(__self__, "dvb_nit_settings", dvb_nit_settings) + _setter("dvb_nit_settings", dvb_nit_settings) if dvb_sdt_settings is not None: - pulumi.set(__self__, "dvb_sdt_settings", dvb_sdt_settings) + _setter("dvb_sdt_settings", dvb_sdt_settings) if dvb_sub_pids is not None: - pulumi.set(__self__, "dvb_sub_pids", dvb_sub_pids) + _setter("dvb_sub_pids", dvb_sub_pids) if dvb_tdt_settings is not None: - pulumi.set(__self__, "dvb_tdt_settings", dvb_tdt_settings) + _setter("dvb_tdt_settings", dvb_tdt_settings) if dvb_teletext_pid is not None: - pulumi.set(__self__, "dvb_teletext_pid", dvb_teletext_pid) + _setter("dvb_teletext_pid", dvb_teletext_pid) if ebif is not None: - pulumi.set(__self__, "ebif", ebif) + _setter("ebif", ebif) if ebp_audio_interval is not None: - pulumi.set(__self__, "ebp_audio_interval", ebp_audio_interval) + _setter("ebp_audio_interval", ebp_audio_interval) if ebp_lookahead_ms is not None: - pulumi.set(__self__, "ebp_lookahead_ms", ebp_lookahead_ms) + _setter("ebp_lookahead_ms", ebp_lookahead_ms) if ebp_placement is not None: - pulumi.set(__self__, "ebp_placement", ebp_placement) + _setter("ebp_placement", ebp_placement) if ecm_pid is not None: - pulumi.set(__self__, "ecm_pid", ecm_pid) + _setter("ecm_pid", ecm_pid) if es_rate_in_pes is not None: - pulumi.set(__self__, "es_rate_in_pes", es_rate_in_pes) + _setter("es_rate_in_pes", es_rate_in_pes) if etv_platform_pid is not None: - pulumi.set(__self__, "etv_platform_pid", etv_platform_pid) + _setter("etv_platform_pid", etv_platform_pid) if etv_signal_pid is not None: - pulumi.set(__self__, "etv_signal_pid", etv_signal_pid) + _setter("etv_signal_pid", etv_signal_pid) if fragment_time is not None: - pulumi.set(__self__, "fragment_time", fragment_time) + _setter("fragment_time", fragment_time) if klv is not None: - pulumi.set(__self__, "klv", klv) + _setter("klv", klv) if klv_data_pids is not None: - pulumi.set(__self__, "klv_data_pids", klv_data_pids) + _setter("klv_data_pids", klv_data_pids) if nielsen_id3_behavior is not None: - pulumi.set(__self__, "nielsen_id3_behavior", nielsen_id3_behavior) + _setter("nielsen_id3_behavior", nielsen_id3_behavior) if null_packet_bitrate is not None: - pulumi.set(__self__, "null_packet_bitrate", null_packet_bitrate) + _setter("null_packet_bitrate", null_packet_bitrate) if pat_interval is not None: - pulumi.set(__self__, "pat_interval", pat_interval) + _setter("pat_interval", pat_interval) if pcr_control is not None: - pulumi.set(__self__, "pcr_control", pcr_control) + _setter("pcr_control", pcr_control) if pcr_period is not None: - pulumi.set(__self__, "pcr_period", pcr_period) + _setter("pcr_period", pcr_period) if pcr_pid is not None: - pulumi.set(__self__, "pcr_pid", pcr_pid) + _setter("pcr_pid", pcr_pid) if pmt_interval is not None: - pulumi.set(__self__, "pmt_interval", pmt_interval) + _setter("pmt_interval", pmt_interval) if pmt_pid is not None: - pulumi.set(__self__, "pmt_pid", pmt_pid) + _setter("pmt_pid", pmt_pid) if program_num is not None: - pulumi.set(__self__, "program_num", program_num) + _setter("program_num", program_num) if rate_mode is not None: - pulumi.set(__self__, "rate_mode", rate_mode) + _setter("rate_mode", rate_mode) if scte27_pids is not None: - pulumi.set(__self__, "scte27_pids", scte27_pids) + _setter("scte27_pids", scte27_pids) if scte35_control is not None: - pulumi.set(__self__, "scte35_control", scte35_control) + _setter("scte35_control", scte35_control) if scte35_pid is not None: - pulumi.set(__self__, "scte35_pid", scte35_pid) + _setter("scte35_pid", scte35_pid) if segmentation_markers is not None: - pulumi.set(__self__, "segmentation_markers", segmentation_markers) + _setter("segmentation_markers", segmentation_markers) if segmentation_style is not None: - pulumi.set(__self__, "segmentation_style", segmentation_style) + _setter("segmentation_style", segmentation_style) if segmentation_time is not None: - pulumi.set(__self__, "segmentation_time", segmentation_time) + _setter("segmentation_time", segmentation_time) if timed_metadata_behavior is not None: - pulumi.set(__self__, "timed_metadata_behavior", timed_metadata_behavior) + _setter("timed_metadata_behavior", timed_metadata_behavior) if timed_metadata_pid is not None: - pulumi.set(__self__, "timed_metadata_pid", timed_metadata_pid) + _setter("timed_metadata_pid", timed_metadata_pid) if transport_stream_id is not None: - pulumi.set(__self__, "transport_stream_id", transport_stream_id) + _setter("transport_stream_id", transport_stream_id) if video_pid is not None: - pulumi.set(__self__, "video_pid", video_pid) + _setter("video_pid", video_pid) @property @pulumi.getter(name="absentInputAudioBehavior") @@ -8076,10 +10993,35 @@ def __init__(__self__, *, network_id: int, network_name: str, rep_interval: Optional[int] = None): - pulumi.set(__self__, "network_id", network_id) - pulumi.set(__self__, "network_name", network_name) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_id=network_id, + network_name=network_name, + rep_interval=rep_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_id: Optional[int] = None, + network_name: Optional[str] = None, + rep_interval: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_id is None and 'networkId' in kwargs: + network_id = kwargs['networkId'] + if network_id is None: + raise TypeError("Missing 'network_id' argument") + if network_name is None and 'networkName' in kwargs: + network_name = kwargs['networkName'] + if network_name is None: + raise TypeError("Missing 'network_name' argument") + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + + _setter("network_id", network_id) + _setter("network_name", network_name) if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) @property @pulumi.getter(name="networkId") @@ -8127,14 +11069,39 @@ def __init__(__self__, *, rep_interval: Optional[int] = None, service_name: Optional[str] = None, service_provider_name: Optional[str] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_sdt=output_sdt, + rep_interval=rep_interval, + service_name=service_name, + service_provider_name=service_provider_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_sdt: Optional[str] = None, + rep_interval: Optional[int] = None, + service_name: Optional[str] = None, + service_provider_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_sdt is None and 'outputSdt' in kwargs: + output_sdt = kwargs['outputSdt'] + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_provider_name is None and 'serviceProviderName' in kwargs: + service_provider_name = kwargs['serviceProviderName'] + if output_sdt is not None: - pulumi.set(__self__, "output_sdt", output_sdt) + _setter("output_sdt", output_sdt) if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if service_provider_name is not None: - pulumi.set(__self__, "service_provider_name", service_provider_name) + _setter("service_provider_name", service_provider_name) @property @pulumi.getter(name="outputSdt") @@ -8178,8 +11145,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, rep_interval: Optional[int] = None): + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + rep_interval=rep_interval, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rep_interval: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rep_interval is None and 'repInterval' in kwargs: + rep_interval = kwargs['repInterval'] + if rep_interval is not None: - pulumi.set(__self__, "rep_interval", rep_interval) + _setter("rep_interval", rep_interval) @property @pulumi.getter(name="repInterval") @@ -8211,7 +11191,22 @@ def __init__(__self__, *, """ :param str destination_ref_id: Reference ID for the destination. """ - pulumi.set(__self__, "destination_ref_id", destination_ref_id) + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ref_id=destination_ref_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ref_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ref_id is None and 'destinationRefId' in kwargs: + destination_ref_id = kwargs['destinationRefId'] + if destination_ref_id is None: + raise TypeError("Missing 'destination_ref_id' argument") + + _setter("destination_ref_id", destination_ref_id) @property @pulumi.getter(name="destinationRefId") @@ -8254,12 +11249,33 @@ def __init__(__self__, *, :param str include_fec: Enables column only or column and row based FEC. :param int row_length: The width of the FEC protection matrix. """ + ChannelEncoderSettingsOutputGroupOutputOutputSettingsUdpOutputSettingsFecOutputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_depth=column_depth, + include_fec=include_fec, + row_length=row_length, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_depth: Optional[int] = None, + include_fec: Optional[str] = None, + row_length: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_depth is None and 'columnDepth' in kwargs: + column_depth = kwargs['columnDepth'] + if include_fec is None and 'includeFec' in kwargs: + include_fec = kwargs['includeFec'] + if row_length is None and 'rowLength' in kwargs: + row_length = kwargs['rowLength'] + if column_depth is not None: - pulumi.set(__self__, "column_depth", column_depth) + _setter("column_depth", column_depth) if include_fec is not None: - pulumi.set(__self__, "include_fec", include_fec) + _setter("include_fec", include_fec) if row_length is not None: - pulumi.set(__self__, "row_length", row_length) + _setter("row_length", row_length) @property @pulumi.getter(name="columnDepth") @@ -8312,9 +11328,26 @@ def __init__(__self__, *, :param str source: The source for the timecode that will be associated with the events outputs. :param int sync_threshold: Threshold in frames beyond which output timecode is resynchronized to the input timecode. """ - pulumi.set(__self__, "source", source) + ChannelEncoderSettingsTimecodeConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + sync_threshold=sync_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[str] = None, + sync_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + if sync_threshold is None and 'syncThreshold' in kwargs: + sync_threshold = kwargs['syncThreshold'] + + _setter("source", source) if sync_threshold is not None: - pulumi.set(__self__, "sync_threshold", sync_threshold) + _setter("sync_threshold", sync_threshold) @property @pulumi.getter @@ -8373,19 +11406,50 @@ def __init__(__self__, *, :param int sharpness: Changes the strength of the anti-alias filter used for scaling. :param int width: Output video width in pixels. """ - pulumi.set(__self__, "name", name) + ChannelEncoderSettingsVideoDescription._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + codec_settings=codec_settings, + height=height, + respond_to_afd=respond_to_afd, + scaling_behavior=scaling_behavior, + sharpness=sharpness, + width=width, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + codec_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettings'] = None, + height: Optional[int] = None, + respond_to_afd: Optional[str] = None, + scaling_behavior: Optional[str] = None, + sharpness: Optional[int] = None, + width: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if codec_settings is None and 'codecSettings' in kwargs: + codec_settings = kwargs['codecSettings'] + if respond_to_afd is None and 'respondToAfd' in kwargs: + respond_to_afd = kwargs['respondToAfd'] + if scaling_behavior is None and 'scalingBehavior' in kwargs: + scaling_behavior = kwargs['scalingBehavior'] + + _setter("name", name) if codec_settings is not None: - pulumi.set(__self__, "codec_settings", codec_settings) + _setter("codec_settings", codec_settings) if height is not None: - pulumi.set(__self__, "height", height) + _setter("height", height) if respond_to_afd is not None: - pulumi.set(__self__, "respond_to_afd", respond_to_afd) + _setter("respond_to_afd", respond_to_afd) if scaling_behavior is not None: - pulumi.set(__self__, "scaling_behavior", scaling_behavior) + _setter("scaling_behavior", scaling_behavior) if sharpness is not None: - pulumi.set(__self__, "sharpness", sharpness) + _setter("sharpness", sharpness) if width is not None: - pulumi.set(__self__, "width", width) + _setter("width", width) @property @pulumi.getter @@ -8475,12 +11539,33 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsFrameCaptureSettingsArgs' frame_capture_settings: Frame capture settings. See Frame Capture Settings for more details. :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsArgs' h264_settings: H264 settings. See H264 Settings for more details. """ + ChannelEncoderSettingsVideoDescriptionCodecSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + frame_capture_settings=frame_capture_settings, + h264_settings=h264_settings, + h265_settings=h265_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frame_capture_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsFrameCaptureSettings'] = None, + h264_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings'] = None, + h265_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frame_capture_settings is None and 'frameCaptureSettings' in kwargs: + frame_capture_settings = kwargs['frameCaptureSettings'] + if h264_settings is None and 'h264Settings' in kwargs: + h264_settings = kwargs['h264Settings'] + if h265_settings is None and 'h265Settings' in kwargs: + h265_settings = kwargs['h265Settings'] + if frame_capture_settings is not None: - pulumi.set(__self__, "frame_capture_settings", frame_capture_settings) + _setter("frame_capture_settings", frame_capture_settings) if h264_settings is not None: - pulumi.set(__self__, "h264_settings", h264_settings) + _setter("h264_settings", h264_settings) if h265_settings is not None: - pulumi.set(__self__, "h265_settings", h265_settings) + _setter("h265_settings", h265_settings) @property @pulumi.getter(name="frameCaptureSettings") @@ -8532,10 +11617,27 @@ def __init__(__self__, *, :param int capture_interval: The frequency at which to capture frames for inclusion in the output. :param str capture_interval_units: Unit for the frame capture interval. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsFrameCaptureSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + capture_interval=capture_interval, + capture_interval_units=capture_interval_units, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capture_interval: Optional[int] = None, + capture_interval_units: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capture_interval is None and 'captureInterval' in kwargs: + capture_interval = kwargs['captureInterval'] + if capture_interval_units is None and 'captureIntervalUnits' in kwargs: + capture_interval_units = kwargs['captureIntervalUnits'] + if capture_interval is not None: - pulumi.set(__self__, "capture_interval", capture_interval) + _setter("capture_interval", capture_interval) if capture_interval_units is not None: - pulumi.set(__self__, "capture_interval_units", capture_interval_units) + _setter("capture_interval_units", capture_interval_units) @property @pulumi.getter(name="captureInterval") @@ -8687,7 +11789,7 @@ def __init__(__self__, *, :param int buf_size: Size of buffer in bits. :param str color_metadata: Includes color space metadata in the output. :param str entropy_encoding: Entropy encoding mode. - :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsArgs' filter_settings: Filters to apply to an encode. See H264 Filter Settings for more details. + :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsArgs' filter_settings: Filters to apply to an encode. See H265 Filter Settings for more details. :param str fixed_afd: Four bit AFD value to write on all frames of video in the output stream. :param str force_field_pictures: Controls whether coding is performed on a field basis or on a frame basis. :param str framerate_control: Indicates how the output video frame rate is specified. @@ -8698,7 +11800,7 @@ def __init__(__self__, *, :param int gop_num_b_frames: Number of B-frames between reference frames. :param float gop_size: GOP size in units of either frames of seconds per `gop_size_units`. :param str gop_size_units: Indicates if the `gop_size` is specified in frames or seconds. - :param str level: H264 level. + :param str level: H265 level. :param str look_ahead_rate_control: Amount of lookahead. :param int max_bitrate: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video. :param int num_ref_frames: Number of reference frames to use. @@ -8719,86 +11821,243 @@ def __init__(__self__, *, :param str temporal_aq: Makes adjustments within each frame based on temporal variation of content complexity. :param str timecode_insertion: Determines how timecodes should be inserted into the video elementary stream. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH264Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + adaptive_quantization=adaptive_quantization, + afd_signaling=afd_signaling, + bitrate=bitrate, + buf_fill_pct=buf_fill_pct, + buf_size=buf_size, + color_metadata=color_metadata, + entropy_encoding=entropy_encoding, + filter_settings=filter_settings, + fixed_afd=fixed_afd, + flicker_aq=flicker_aq, + force_field_pictures=force_field_pictures, + framerate_control=framerate_control, + framerate_denominator=framerate_denominator, + framerate_numerator=framerate_numerator, + gop_b_reference=gop_b_reference, + gop_closed_cadence=gop_closed_cadence, + gop_num_b_frames=gop_num_b_frames, + gop_size=gop_size, + gop_size_units=gop_size_units, + level=level, + look_ahead_rate_control=look_ahead_rate_control, + max_bitrate=max_bitrate, + min_i_interval=min_i_interval, + num_ref_frames=num_ref_frames, + par_control=par_control, + par_denominator=par_denominator, + par_numerator=par_numerator, + profile=profile, + quality_level=quality_level, + qvbr_quality_level=qvbr_quality_level, + rate_control_mode=rate_control_mode, + scan_type=scan_type, + scene_change_detect=scene_change_detect, + slices=slices, + softness=softness, + spatial_aq=spatial_aq, + subgop_length=subgop_length, + syntax=syntax, + temporal_aq=temporal_aq, + timecode_insertion=timecode_insertion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + adaptive_quantization: Optional[str] = None, + afd_signaling: Optional[str] = None, + bitrate: Optional[int] = None, + buf_fill_pct: Optional[int] = None, + buf_size: Optional[int] = None, + color_metadata: Optional[str] = None, + entropy_encoding: Optional[str] = None, + filter_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings'] = None, + fixed_afd: Optional[str] = None, + flicker_aq: Optional[str] = None, + force_field_pictures: Optional[str] = None, + framerate_control: Optional[str] = None, + framerate_denominator: Optional[int] = None, + framerate_numerator: Optional[int] = None, + gop_b_reference: Optional[str] = None, + gop_closed_cadence: Optional[int] = None, + gop_num_b_frames: Optional[int] = None, + gop_size: Optional[float] = None, + gop_size_units: Optional[str] = None, + level: Optional[str] = None, + look_ahead_rate_control: Optional[str] = None, + max_bitrate: Optional[int] = None, + min_i_interval: Optional[int] = None, + num_ref_frames: Optional[int] = None, + par_control: Optional[str] = None, + par_denominator: Optional[int] = None, + par_numerator: Optional[int] = None, + profile: Optional[str] = None, + quality_level: Optional[str] = None, + qvbr_quality_level: Optional[int] = None, + rate_control_mode: Optional[str] = None, + scan_type: Optional[str] = None, + scene_change_detect: Optional[str] = None, + slices: Optional[int] = None, + softness: Optional[int] = None, + spatial_aq: Optional[str] = None, + subgop_length: Optional[str] = None, + syntax: Optional[str] = None, + temporal_aq: Optional[str] = None, + timecode_insertion: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if adaptive_quantization is None and 'adaptiveQuantization' in kwargs: + adaptive_quantization = kwargs['adaptiveQuantization'] + if afd_signaling is None and 'afdSignaling' in kwargs: + afd_signaling = kwargs['afdSignaling'] + if buf_fill_pct is None and 'bufFillPct' in kwargs: + buf_fill_pct = kwargs['bufFillPct'] + if buf_size is None and 'bufSize' in kwargs: + buf_size = kwargs['bufSize'] + if color_metadata is None and 'colorMetadata' in kwargs: + color_metadata = kwargs['colorMetadata'] + if entropy_encoding is None and 'entropyEncoding' in kwargs: + entropy_encoding = kwargs['entropyEncoding'] + if filter_settings is None and 'filterSettings' in kwargs: + filter_settings = kwargs['filterSettings'] + if fixed_afd is None and 'fixedAfd' in kwargs: + fixed_afd = kwargs['fixedAfd'] + if flicker_aq is None and 'flickerAq' in kwargs: + flicker_aq = kwargs['flickerAq'] + if force_field_pictures is None and 'forceFieldPictures' in kwargs: + force_field_pictures = kwargs['forceFieldPictures'] + if framerate_control is None and 'framerateControl' in kwargs: + framerate_control = kwargs['framerateControl'] + if framerate_denominator is None and 'framerateDenominator' in kwargs: + framerate_denominator = kwargs['framerateDenominator'] + if framerate_numerator is None and 'framerateNumerator' in kwargs: + framerate_numerator = kwargs['framerateNumerator'] + if gop_b_reference is None and 'gopBReference' in kwargs: + gop_b_reference = kwargs['gopBReference'] + if gop_closed_cadence is None and 'gopClosedCadence' in kwargs: + gop_closed_cadence = kwargs['gopClosedCadence'] + if gop_num_b_frames is None and 'gopNumBFrames' in kwargs: + gop_num_b_frames = kwargs['gopNumBFrames'] + if gop_size is None and 'gopSize' in kwargs: + gop_size = kwargs['gopSize'] + if gop_size_units is None and 'gopSizeUnits' in kwargs: + gop_size_units = kwargs['gopSizeUnits'] + if look_ahead_rate_control is None and 'lookAheadRateControl' in kwargs: + look_ahead_rate_control = kwargs['lookAheadRateControl'] + if max_bitrate is None and 'maxBitrate' in kwargs: + max_bitrate = kwargs['maxBitrate'] + if min_i_interval is None and 'minIInterval' in kwargs: + min_i_interval = kwargs['minIInterval'] + if num_ref_frames is None and 'numRefFrames' in kwargs: + num_ref_frames = kwargs['numRefFrames'] + if par_control is None and 'parControl' in kwargs: + par_control = kwargs['parControl'] + if par_denominator is None and 'parDenominator' in kwargs: + par_denominator = kwargs['parDenominator'] + if par_numerator is None and 'parNumerator' in kwargs: + par_numerator = kwargs['parNumerator'] + if quality_level is None and 'qualityLevel' in kwargs: + quality_level = kwargs['qualityLevel'] + if qvbr_quality_level is None and 'qvbrQualityLevel' in kwargs: + qvbr_quality_level = kwargs['qvbrQualityLevel'] + if rate_control_mode is None and 'rateControlMode' in kwargs: + rate_control_mode = kwargs['rateControlMode'] + if scan_type is None and 'scanType' in kwargs: + scan_type = kwargs['scanType'] + if scene_change_detect is None and 'sceneChangeDetect' in kwargs: + scene_change_detect = kwargs['sceneChangeDetect'] + if spatial_aq is None and 'spatialAq' in kwargs: + spatial_aq = kwargs['spatialAq'] + if subgop_length is None and 'subgopLength' in kwargs: + subgop_length = kwargs['subgopLength'] + if temporal_aq is None and 'temporalAq' in kwargs: + temporal_aq = kwargs['temporalAq'] + if timecode_insertion is None and 'timecodeInsertion' in kwargs: + timecode_insertion = kwargs['timecodeInsertion'] + if adaptive_quantization is not None: - pulumi.set(__self__, "adaptive_quantization", adaptive_quantization) + _setter("adaptive_quantization", adaptive_quantization) if afd_signaling is not None: - pulumi.set(__self__, "afd_signaling", afd_signaling) + _setter("afd_signaling", afd_signaling) if bitrate is not None: - pulumi.set(__self__, "bitrate", bitrate) + _setter("bitrate", bitrate) if buf_fill_pct is not None: - pulumi.set(__self__, "buf_fill_pct", buf_fill_pct) + _setter("buf_fill_pct", buf_fill_pct) if buf_size is not None: - pulumi.set(__self__, "buf_size", buf_size) + _setter("buf_size", buf_size) if color_metadata is not None: - pulumi.set(__self__, "color_metadata", color_metadata) + _setter("color_metadata", color_metadata) if entropy_encoding is not None: - pulumi.set(__self__, "entropy_encoding", entropy_encoding) + _setter("entropy_encoding", entropy_encoding) if filter_settings is not None: - pulumi.set(__self__, "filter_settings", filter_settings) + _setter("filter_settings", filter_settings) if fixed_afd is not None: - pulumi.set(__self__, "fixed_afd", fixed_afd) + _setter("fixed_afd", fixed_afd) if flicker_aq is not None: - pulumi.set(__self__, "flicker_aq", flicker_aq) + _setter("flicker_aq", flicker_aq) if force_field_pictures is not None: - pulumi.set(__self__, "force_field_pictures", force_field_pictures) + _setter("force_field_pictures", force_field_pictures) if framerate_control is not None: - pulumi.set(__self__, "framerate_control", framerate_control) + _setter("framerate_control", framerate_control) if framerate_denominator is not None: - pulumi.set(__self__, "framerate_denominator", framerate_denominator) + _setter("framerate_denominator", framerate_denominator) if framerate_numerator is not None: - pulumi.set(__self__, "framerate_numerator", framerate_numerator) + _setter("framerate_numerator", framerate_numerator) if gop_b_reference is not None: - pulumi.set(__self__, "gop_b_reference", gop_b_reference) + _setter("gop_b_reference", gop_b_reference) if gop_closed_cadence is not None: - pulumi.set(__self__, "gop_closed_cadence", gop_closed_cadence) + _setter("gop_closed_cadence", gop_closed_cadence) if gop_num_b_frames is not None: - pulumi.set(__self__, "gop_num_b_frames", gop_num_b_frames) + _setter("gop_num_b_frames", gop_num_b_frames) if gop_size is not None: - pulumi.set(__self__, "gop_size", gop_size) + _setter("gop_size", gop_size) if gop_size_units is not None: - pulumi.set(__self__, "gop_size_units", gop_size_units) + _setter("gop_size_units", gop_size_units) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) if look_ahead_rate_control is not None: - pulumi.set(__self__, "look_ahead_rate_control", look_ahead_rate_control) + _setter("look_ahead_rate_control", look_ahead_rate_control) if max_bitrate is not None: - pulumi.set(__self__, "max_bitrate", max_bitrate) + _setter("max_bitrate", max_bitrate) if min_i_interval is not None: - pulumi.set(__self__, "min_i_interval", min_i_interval) + _setter("min_i_interval", min_i_interval) if num_ref_frames is not None: - pulumi.set(__self__, "num_ref_frames", num_ref_frames) + _setter("num_ref_frames", num_ref_frames) if par_control is not None: - pulumi.set(__self__, "par_control", par_control) + _setter("par_control", par_control) if par_denominator is not None: - pulumi.set(__self__, "par_denominator", par_denominator) + _setter("par_denominator", par_denominator) if par_numerator is not None: - pulumi.set(__self__, "par_numerator", par_numerator) + _setter("par_numerator", par_numerator) if profile is not None: - pulumi.set(__self__, "profile", profile) + _setter("profile", profile) if quality_level is not None: - pulumi.set(__self__, "quality_level", quality_level) + _setter("quality_level", quality_level) if qvbr_quality_level is not None: - pulumi.set(__self__, "qvbr_quality_level", qvbr_quality_level) + _setter("qvbr_quality_level", qvbr_quality_level) if rate_control_mode is not None: - pulumi.set(__self__, "rate_control_mode", rate_control_mode) + _setter("rate_control_mode", rate_control_mode) if scan_type is not None: - pulumi.set(__self__, "scan_type", scan_type) + _setter("scan_type", scan_type) if scene_change_detect is not None: - pulumi.set(__self__, "scene_change_detect", scene_change_detect) + _setter("scene_change_detect", scene_change_detect) if slices is not None: - pulumi.set(__self__, "slices", slices) + _setter("slices", slices) if softness is not None: - pulumi.set(__self__, "softness", softness) + _setter("softness", softness) if spatial_aq is not None: - pulumi.set(__self__, "spatial_aq", spatial_aq) + _setter("spatial_aq", spatial_aq) if subgop_length is not None: - pulumi.set(__self__, "subgop_length", subgop_length) + _setter("subgop_length", subgop_length) if syntax is not None: - pulumi.set(__self__, "syntax", syntax) + _setter("syntax", syntax) if temporal_aq is not None: - pulumi.set(__self__, "temporal_aq", temporal_aq) + _setter("temporal_aq", temporal_aq) if timecode_insertion is not None: - pulumi.set(__self__, "timecode_insertion", timecode_insertion) + _setter("timecode_insertion", timecode_insertion) @property @pulumi.getter(name="adaptiveQuantization") @@ -8857,7 +12116,7 @@ def entropy_encoding(self) -> Optional[str]: @pulumi.getter(name="filterSettings") def filter_settings(self) -> Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings']: """ - Filters to apply to an encode. See H264 Filter Settings for more details. + Filters to apply to an encode. See H265 Filter Settings for more details. """ return pulumi.get(self, "filter_settings") @@ -8950,7 +12209,7 @@ def gop_size_units(self) -> Optional[str]: @pulumi.getter def level(self) -> Optional[str]: """ - H264 level. + H265 level. """ return pulumi.get(self, "level") @@ -9136,8 +12395,21 @@ def __init__(__self__, *, """ :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsTemporalFilterSettingsArgs' temporal_filter_settings: Temporal filter settings. See Temporal Filter Settings """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + temporal_filter_settings=temporal_filter_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + temporal_filter_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsTemporalFilterSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if temporal_filter_settings is None and 'temporalFilterSettings' in kwargs: + temporal_filter_settings = kwargs['temporalFilterSettings'] + if temporal_filter_settings is not None: - pulumi.set(__self__, "temporal_filter_settings", temporal_filter_settings) + _setter("temporal_filter_settings", temporal_filter_settings) @property @pulumi.getter(name="temporalFilterSettings") @@ -9174,10 +12446,25 @@ def __init__(__self__, *, :param str post_filter_sharpening: Post filter sharpening. :param str strength: Filter strength. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH264SettingsFilterSettingsTemporalFilterSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + post_filter_sharpening=post_filter_sharpening, + strength=strength, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + post_filter_sharpening: Optional[str] = None, + strength: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if post_filter_sharpening is None and 'postFilterSharpening' in kwargs: + post_filter_sharpening = kwargs['postFilterSharpening'] + if post_filter_sharpening is not None: - pulumi.set(__self__, "post_filter_sharpening", post_filter_sharpening) + _setter("post_filter_sharpening", post_filter_sharpening) if strength is not None: - pulumi.set(__self__, "strength", strength) + _setter("strength", strength) @property @pulumi.getter(name="postFilterSharpening") @@ -9304,12 +12591,12 @@ def __init__(__self__, *, :param int buf_size: Size of buffer in bits. :param str color_metadata: Includes color space metadata in the output. :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsArgs' color_space_settings: Define the color metadata for the output. H265 Color Space Settings for more details. - :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsArgs' filter_settings: Filters to apply to an encode. See H264 Filter Settings for more details. + :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsArgs' filter_settings: Filters to apply to an encode. See H265 Filter Settings for more details. :param str fixed_afd: Four bit AFD value to write on all frames of video in the output stream. :param int gop_closed_cadence: Frequency of closed GOPs. :param float gop_size: GOP size in units of either frames of seconds per `gop_size_units`. :param str gop_size_units: Indicates if the `gop_size` is specified in frames or seconds. - :param str level: H264 level. + :param str level: H265 level. :param str look_ahead_rate_control: Amount of lookahead. :param int max_bitrate: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video. :param int par_denominator: Pixel Aspect Ratio denominator. @@ -9324,63 +12611,188 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsTimecodeBurninSettingsArgs' timecode_burnin_settings: Apply a burned in timecode. See H265 Timecode Burnin Settings for more details. :param str timecode_insertion: Determines how timecodes should be inserted into the video elementary stream. """ - pulumi.set(__self__, "bitrate", bitrate) - pulumi.set(__self__, "framerate_denominator", framerate_denominator) - pulumi.set(__self__, "framerate_numerator", framerate_numerator) + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + bitrate=bitrate, + framerate_denominator=framerate_denominator, + framerate_numerator=framerate_numerator, + adaptive_quantization=adaptive_quantization, + afd_signaling=afd_signaling, + alternative_transfer_function=alternative_transfer_function, + buf_size=buf_size, + color_metadata=color_metadata, + color_space_settings=color_space_settings, + filter_settings=filter_settings, + fixed_afd=fixed_afd, + flicker_aq=flicker_aq, + gop_closed_cadence=gop_closed_cadence, + gop_size=gop_size, + gop_size_units=gop_size_units, + level=level, + look_ahead_rate_control=look_ahead_rate_control, + max_bitrate=max_bitrate, + min_i_interval=min_i_interval, + par_denominator=par_denominator, + par_numerator=par_numerator, + profile=profile, + qvbr_quality_level=qvbr_quality_level, + rate_control_mode=rate_control_mode, + scan_type=scan_type, + scene_change_detect=scene_change_detect, + slices=slices, + tier=tier, + timecode_burnin_settings=timecode_burnin_settings, + timecode_insertion=timecode_insertion, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bitrate: Optional[int] = None, + framerate_denominator: Optional[int] = None, + framerate_numerator: Optional[int] = None, + adaptive_quantization: Optional[str] = None, + afd_signaling: Optional[str] = None, + alternative_transfer_function: Optional[str] = None, + buf_size: Optional[int] = None, + color_metadata: Optional[str] = None, + color_space_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettings'] = None, + filter_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings'] = None, + fixed_afd: Optional[str] = None, + flicker_aq: Optional[str] = None, + gop_closed_cadence: Optional[int] = None, + gop_size: Optional[float] = None, + gop_size_units: Optional[str] = None, + level: Optional[str] = None, + look_ahead_rate_control: Optional[str] = None, + max_bitrate: Optional[int] = None, + min_i_interval: Optional[int] = None, + par_denominator: Optional[int] = None, + par_numerator: Optional[int] = None, + profile: Optional[str] = None, + qvbr_quality_level: Optional[int] = None, + rate_control_mode: Optional[str] = None, + scan_type: Optional[str] = None, + scene_change_detect: Optional[str] = None, + slices: Optional[int] = None, + tier: Optional[str] = None, + timecode_burnin_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsTimecodeBurninSettings'] = None, + timecode_insertion: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bitrate is None: + raise TypeError("Missing 'bitrate' argument") + if framerate_denominator is None and 'framerateDenominator' in kwargs: + framerate_denominator = kwargs['framerateDenominator'] + if framerate_denominator is None: + raise TypeError("Missing 'framerate_denominator' argument") + if framerate_numerator is None and 'framerateNumerator' in kwargs: + framerate_numerator = kwargs['framerateNumerator'] + if framerate_numerator is None: + raise TypeError("Missing 'framerate_numerator' argument") + if adaptive_quantization is None and 'adaptiveQuantization' in kwargs: + adaptive_quantization = kwargs['adaptiveQuantization'] + if afd_signaling is None and 'afdSignaling' in kwargs: + afd_signaling = kwargs['afdSignaling'] + if alternative_transfer_function is None and 'alternativeTransferFunction' in kwargs: + alternative_transfer_function = kwargs['alternativeTransferFunction'] + if buf_size is None and 'bufSize' in kwargs: + buf_size = kwargs['bufSize'] + if color_metadata is None and 'colorMetadata' in kwargs: + color_metadata = kwargs['colorMetadata'] + if color_space_settings is None and 'colorSpaceSettings' in kwargs: + color_space_settings = kwargs['colorSpaceSettings'] + if filter_settings is None and 'filterSettings' in kwargs: + filter_settings = kwargs['filterSettings'] + if fixed_afd is None and 'fixedAfd' in kwargs: + fixed_afd = kwargs['fixedAfd'] + if flicker_aq is None and 'flickerAq' in kwargs: + flicker_aq = kwargs['flickerAq'] + if gop_closed_cadence is None and 'gopClosedCadence' in kwargs: + gop_closed_cadence = kwargs['gopClosedCadence'] + if gop_size is None and 'gopSize' in kwargs: + gop_size = kwargs['gopSize'] + if gop_size_units is None and 'gopSizeUnits' in kwargs: + gop_size_units = kwargs['gopSizeUnits'] + if look_ahead_rate_control is None and 'lookAheadRateControl' in kwargs: + look_ahead_rate_control = kwargs['lookAheadRateControl'] + if max_bitrate is None and 'maxBitrate' in kwargs: + max_bitrate = kwargs['maxBitrate'] + if min_i_interval is None and 'minIInterval' in kwargs: + min_i_interval = kwargs['minIInterval'] + if par_denominator is None and 'parDenominator' in kwargs: + par_denominator = kwargs['parDenominator'] + if par_numerator is None and 'parNumerator' in kwargs: + par_numerator = kwargs['parNumerator'] + if qvbr_quality_level is None and 'qvbrQualityLevel' in kwargs: + qvbr_quality_level = kwargs['qvbrQualityLevel'] + if rate_control_mode is None and 'rateControlMode' in kwargs: + rate_control_mode = kwargs['rateControlMode'] + if scan_type is None and 'scanType' in kwargs: + scan_type = kwargs['scanType'] + if scene_change_detect is None and 'sceneChangeDetect' in kwargs: + scene_change_detect = kwargs['sceneChangeDetect'] + if timecode_burnin_settings is None and 'timecodeBurninSettings' in kwargs: + timecode_burnin_settings = kwargs['timecodeBurninSettings'] + if timecode_insertion is None and 'timecodeInsertion' in kwargs: + timecode_insertion = kwargs['timecodeInsertion'] + + _setter("bitrate", bitrate) + _setter("framerate_denominator", framerate_denominator) + _setter("framerate_numerator", framerate_numerator) if adaptive_quantization is not None: - pulumi.set(__self__, "adaptive_quantization", adaptive_quantization) + _setter("adaptive_quantization", adaptive_quantization) if afd_signaling is not None: - pulumi.set(__self__, "afd_signaling", afd_signaling) + _setter("afd_signaling", afd_signaling) if alternative_transfer_function is not None: - pulumi.set(__self__, "alternative_transfer_function", alternative_transfer_function) + _setter("alternative_transfer_function", alternative_transfer_function) if buf_size is not None: - pulumi.set(__self__, "buf_size", buf_size) + _setter("buf_size", buf_size) if color_metadata is not None: - pulumi.set(__self__, "color_metadata", color_metadata) + _setter("color_metadata", color_metadata) if color_space_settings is not None: - pulumi.set(__self__, "color_space_settings", color_space_settings) + _setter("color_space_settings", color_space_settings) if filter_settings is not None: - pulumi.set(__self__, "filter_settings", filter_settings) + _setter("filter_settings", filter_settings) if fixed_afd is not None: - pulumi.set(__self__, "fixed_afd", fixed_afd) + _setter("fixed_afd", fixed_afd) if flicker_aq is not None: - pulumi.set(__self__, "flicker_aq", flicker_aq) + _setter("flicker_aq", flicker_aq) if gop_closed_cadence is not None: - pulumi.set(__self__, "gop_closed_cadence", gop_closed_cadence) + _setter("gop_closed_cadence", gop_closed_cadence) if gop_size is not None: - pulumi.set(__self__, "gop_size", gop_size) + _setter("gop_size", gop_size) if gop_size_units is not None: - pulumi.set(__self__, "gop_size_units", gop_size_units) + _setter("gop_size_units", gop_size_units) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) if look_ahead_rate_control is not None: - pulumi.set(__self__, "look_ahead_rate_control", look_ahead_rate_control) + _setter("look_ahead_rate_control", look_ahead_rate_control) if max_bitrate is not None: - pulumi.set(__self__, "max_bitrate", max_bitrate) + _setter("max_bitrate", max_bitrate) if min_i_interval is not None: - pulumi.set(__self__, "min_i_interval", min_i_interval) + _setter("min_i_interval", min_i_interval) if par_denominator is not None: - pulumi.set(__self__, "par_denominator", par_denominator) + _setter("par_denominator", par_denominator) if par_numerator is not None: - pulumi.set(__self__, "par_numerator", par_numerator) + _setter("par_numerator", par_numerator) if profile is not None: - pulumi.set(__self__, "profile", profile) + _setter("profile", profile) if qvbr_quality_level is not None: - pulumi.set(__self__, "qvbr_quality_level", qvbr_quality_level) + _setter("qvbr_quality_level", qvbr_quality_level) if rate_control_mode is not None: - pulumi.set(__self__, "rate_control_mode", rate_control_mode) + _setter("rate_control_mode", rate_control_mode) if scan_type is not None: - pulumi.set(__self__, "scan_type", scan_type) + _setter("scan_type", scan_type) if scene_change_detect is not None: - pulumi.set(__self__, "scene_change_detect", scene_change_detect) + _setter("scene_change_detect", scene_change_detect) if slices is not None: - pulumi.set(__self__, "slices", slices) + _setter("slices", slices) if tier is not None: - pulumi.set(__self__, "tier", tier) + _setter("tier", tier) if timecode_burnin_settings is not None: - pulumi.set(__self__, "timecode_burnin_settings", timecode_burnin_settings) + _setter("timecode_burnin_settings", timecode_burnin_settings) if timecode_insertion is not None: - pulumi.set(__self__, "timecode_insertion", timecode_insertion) + _setter("timecode_insertion", timecode_insertion) @property @pulumi.getter @@ -9458,7 +12870,7 @@ def color_space_settings(self) -> Optional['outputs.ChannelEncoderSettingsVideoD @pulumi.getter(name="filterSettings") def filter_settings(self) -> Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings']: """ - Filters to apply to an encode. See H264 Filter Settings for more details. + Filters to apply to an encode. See H265 Filter Settings for more details. """ return pulumi.get(self, "filter_settings") @@ -9503,7 +12915,7 @@ def gop_size_units(self) -> Optional[str]: @pulumi.getter def level(self) -> Optional[str]: """ - H264 level. + H265 level. """ return pulumi.get(self, "level") @@ -9657,16 +13069,45 @@ def __init__(__self__, *, :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec601SettingsArgs' rec601_settings: Set the colorspace to Rec. 601. :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec709SettingsArgs' rec709_settings: Set the colorspace to Rec. 709. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + color_space_passthrough_settings=color_space_passthrough_settings, + dolby_vision81_settings=dolby_vision81_settings, + hdr10_settings=hdr10_settings, + rec601_settings=rec601_settings, + rec709_settings=rec709_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + color_space_passthrough_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsColorSpacePassthroughSettings'] = None, + dolby_vision81_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsDolbyVision81Settings'] = None, + hdr10_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsHdr10Settings'] = None, + rec601_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec601Settings'] = None, + rec709_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec709Settings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if color_space_passthrough_settings is None and 'colorSpacePassthroughSettings' in kwargs: + color_space_passthrough_settings = kwargs['colorSpacePassthroughSettings'] + if dolby_vision81_settings is None and 'dolbyVision81Settings' in kwargs: + dolby_vision81_settings = kwargs['dolbyVision81Settings'] + if hdr10_settings is None and 'hdr10Settings' in kwargs: + hdr10_settings = kwargs['hdr10Settings'] + if rec601_settings is None and 'rec601Settings' in kwargs: + rec601_settings = kwargs['rec601Settings'] + if rec709_settings is None and 'rec709Settings' in kwargs: + rec709_settings = kwargs['rec709Settings'] + if color_space_passthrough_settings is not None: - pulumi.set(__self__, "color_space_passthrough_settings", color_space_passthrough_settings) + _setter("color_space_passthrough_settings", color_space_passthrough_settings) if dolby_vision81_settings is not None: - pulumi.set(__self__, "dolby_vision81_settings", dolby_vision81_settings) + _setter("dolby_vision81_settings", dolby_vision81_settings) if hdr10_settings is not None: - pulumi.set(__self__, "hdr10_settings", hdr10_settings) + _setter("hdr10_settings", hdr10_settings) if rec601_settings is not None: - pulumi.set(__self__, "rec601_settings", rec601_settings) + _setter("rec601_settings", rec601_settings) if rec709_settings is not None: - pulumi.set(__self__, "rec709_settings", rec709_settings) + _setter("rec709_settings", rec709_settings) @property @pulumi.getter(name="colorSpacePassthroughSettings") @@ -9713,12 +13154,26 @@ def rec709_settings(self) -> Optional['outputs.ChannelEncoderSettingsVideoDescri class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsColorSpacePassthroughSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsDolbyVision81Settings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9749,10 +13204,27 @@ def __init__(__self__, *, :param int max_cll: Sets the MaxCLL value for HDR10. :param int max_fall: Sets the MaxFALL value for HDR10. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsHdr10Settings._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_cll=max_cll, + max_fall=max_fall, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_cll: Optional[int] = None, + max_fall: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_cll is None and 'maxCll' in kwargs: + max_cll = kwargs['maxCll'] + if max_fall is None and 'maxFall' in kwargs: + max_fall = kwargs['maxFall'] + if max_cll is not None: - pulumi.set(__self__, "max_cll", max_cll) + _setter("max_cll", max_cll) if max_fall is not None: - pulumi.set(__self__, "max_fall", max_fall) + _setter("max_fall", max_fall) @property @pulumi.getter(name="maxCll") @@ -9775,12 +13247,26 @@ def max_fall(self) -> Optional[int]: class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec601Settings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsColorSpaceSettingsRec709Settings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9807,8 +13293,21 @@ def __init__(__self__, *, """ :param 'ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsTemporalFilterSettingsArgs' temporal_filter_settings: Temporal filter settings. See Temporal Filter Settings """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + temporal_filter_settings=temporal_filter_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + temporal_filter_settings: Optional['outputs.ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsTemporalFilterSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if temporal_filter_settings is None and 'temporalFilterSettings' in kwargs: + temporal_filter_settings = kwargs['temporalFilterSettings'] + if temporal_filter_settings is not None: - pulumi.set(__self__, "temporal_filter_settings", temporal_filter_settings) + _setter("temporal_filter_settings", temporal_filter_settings) @property @pulumi.getter(name="temporalFilterSettings") @@ -9845,10 +13344,25 @@ def __init__(__self__, *, :param str post_filter_sharpening: Post filter sharpening. :param str strength: Filter strength. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsFilterSettingsTemporalFilterSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + post_filter_sharpening=post_filter_sharpening, + strength=strength, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + post_filter_sharpening: Optional[str] = None, + strength: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if post_filter_sharpening is None and 'postFilterSharpening' in kwargs: + post_filter_sharpening = kwargs['postFilterSharpening'] + if post_filter_sharpening is not None: - pulumi.set(__self__, "post_filter_sharpening", post_filter_sharpening) + _setter("post_filter_sharpening", post_filter_sharpening) if strength is not None: - pulumi.set(__self__, "strength", strength) + _setter("strength", strength) @property @pulumi.getter(name="postFilterSharpening") @@ -9897,12 +13411,31 @@ def __init__(__self__, *, :param str timecode_burnin_font_size: Sets the size of the burned in timecode. :param str timecode_burnin_position: Sets the position of the burned in timecode. """ + ChannelEncoderSettingsVideoDescriptionCodecSettingsH265SettingsTimecodeBurninSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + timecode_burnin_font_size=timecode_burnin_font_size, + timecode_burnin_position=timecode_burnin_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[str] = None, + timecode_burnin_font_size: Optional[str] = None, + timecode_burnin_position: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if timecode_burnin_font_size is None and 'timecodeBurninFontSize' in kwargs: + timecode_burnin_font_size = kwargs['timecodeBurninFontSize'] + if timecode_burnin_position is None and 'timecodeBurninPosition' in kwargs: + timecode_burnin_position = kwargs['timecodeBurninPosition'] + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if timecode_burnin_font_size is not None: - pulumi.set(__self__, "timecode_burnin_font_size", timecode_burnin_font_size) + _setter("timecode_burnin_font_size", timecode_burnin_font_size) if timecode_burnin_position is not None: - pulumi.set(__self__, "timecode_burnin_position", timecode_burnin_position) + _setter("timecode_burnin_position", timecode_burnin_position) @property @pulumi.getter @@ -9965,12 +13498,41 @@ def __init__(__self__, *, :param 'ChannelInputAttachmentAutomaticInputFailoverSettingsArgs' automatic_input_failover_settings: User-specified settings for defining what the conditions are for declaring the input unhealthy and failing over to a different input. See Automatic Input Failover Settings for more details. :param 'ChannelInputAttachmentInputSettingsArgs' input_settings: Settings of an input. See Input Settings for more details. """ - pulumi.set(__self__, "input_attachment_name", input_attachment_name) - pulumi.set(__self__, "input_id", input_id) + ChannelInputAttachment._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_attachment_name=input_attachment_name, + input_id=input_id, + automatic_input_failover_settings=automatic_input_failover_settings, + input_settings=input_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_attachment_name: Optional[str] = None, + input_id: Optional[str] = None, + automatic_input_failover_settings: Optional['outputs.ChannelInputAttachmentAutomaticInputFailoverSettings'] = None, + input_settings: Optional['outputs.ChannelInputAttachmentInputSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_attachment_name is None and 'inputAttachmentName' in kwargs: + input_attachment_name = kwargs['inputAttachmentName'] + if input_attachment_name is None: + raise TypeError("Missing 'input_attachment_name' argument") + if input_id is None and 'inputId' in kwargs: + input_id = kwargs['inputId'] + if input_id is None: + raise TypeError("Missing 'input_id' argument") + if automatic_input_failover_settings is None and 'automaticInputFailoverSettings' in kwargs: + automatic_input_failover_settings = kwargs['automaticInputFailoverSettings'] + if input_settings is None and 'inputSettings' in kwargs: + input_settings = kwargs['inputSettings'] + + _setter("input_attachment_name", input_attachment_name) + _setter("input_id", input_id) if automatic_input_failover_settings is not None: - pulumi.set(__self__, "automatic_input_failover_settings", automatic_input_failover_settings) + _setter("automatic_input_failover_settings", automatic_input_failover_settings) if input_settings is not None: - pulumi.set(__self__, "input_settings", input_settings) + _setter("input_settings", input_settings) @property @pulumi.getter(name="inputAttachmentName") @@ -10040,13 +13602,40 @@ def __init__(__self__, *, :param int error_clear_time_msec: This clear time defines the requirement a recovered input must meet to be considered healthy. The input must have no failover conditions for this length of time. Enter a time in milliseconds. This value is particularly important if the input\\_preference for the failover pair is set to PRIMARY\\_INPUT\\_PREFERRED, because after this time, MediaLive will switch back to the primary input. :param str input_preference: Input preference when deciding which input to make active when a previously failed input has recovered. """ - pulumi.set(__self__, "secondary_input_id", secondary_input_id) + ChannelInputAttachmentAutomaticInputFailoverSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + secondary_input_id=secondary_input_id, + error_clear_time_msec=error_clear_time_msec, + failover_conditions=failover_conditions, + input_preference=input_preference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secondary_input_id: Optional[str] = None, + error_clear_time_msec: Optional[int] = None, + failover_conditions: Optional[Sequence['outputs.ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverCondition']] = None, + input_preference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secondary_input_id is None and 'secondaryInputId' in kwargs: + secondary_input_id = kwargs['secondaryInputId'] + if secondary_input_id is None: + raise TypeError("Missing 'secondary_input_id' argument") + if error_clear_time_msec is None and 'errorClearTimeMsec' in kwargs: + error_clear_time_msec = kwargs['errorClearTimeMsec'] + if failover_conditions is None and 'failoverConditions' in kwargs: + failover_conditions = kwargs['failoverConditions'] + if input_preference is None and 'inputPreference' in kwargs: + input_preference = kwargs['inputPreference'] + + _setter("secondary_input_id", secondary_input_id) if error_clear_time_msec is not None: - pulumi.set(__self__, "error_clear_time_msec", error_clear_time_msec) + _setter("error_clear_time_msec", error_clear_time_msec) if failover_conditions is not None: - pulumi.set(__self__, "failover_conditions", failover_conditions) + _setter("failover_conditions", failover_conditions) if input_preference is not None: - pulumi.set(__self__, "input_preference", input_preference) + _setter("input_preference", input_preference) @property @pulumi.getter(name="secondaryInputId") @@ -10102,8 +13691,21 @@ def __init__(__self__, *, """ :param 'ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsArgs' failover_condition_settings: Failover condition type-specific settings. See Failover Condition Settings for more details. """ + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + failover_condition_settings=failover_condition_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failover_condition_settings: Optional['outputs.ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failover_condition_settings is None and 'failoverConditionSettings' in kwargs: + failover_condition_settings = kwargs['failoverConditionSettings'] + if failover_condition_settings is not None: - pulumi.set(__self__, "failover_condition_settings", failover_condition_settings) + _setter("failover_condition_settings", failover_condition_settings) @property @pulumi.getter(name="failoverConditionSettings") @@ -10146,12 +13748,33 @@ def __init__(__self__, *, :param 'ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsInputLossSettingsArgs' input_loss_settings: MediaLive will perform a failover if content is not detected in this input for the specified period. See Input Loss Failover Settings for more details. :param 'ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsVideoBlackSettingsArgs' video_black_settings: MediaLive will perform a failover if content is considered black for the specified period. See Video Black Failover Settings for more details. """ + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_silence_settings=audio_silence_settings, + input_loss_settings=input_loss_settings, + video_black_settings=video_black_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_silence_settings: Optional['outputs.ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings'] = None, + input_loss_settings: Optional['outputs.ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsInputLossSettings'] = None, + video_black_settings: Optional['outputs.ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsVideoBlackSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_silence_settings is None and 'audioSilenceSettings' in kwargs: + audio_silence_settings = kwargs['audioSilenceSettings'] + if input_loss_settings is None and 'inputLossSettings' in kwargs: + input_loss_settings = kwargs['inputLossSettings'] + if video_black_settings is None and 'videoBlackSettings' in kwargs: + video_black_settings = kwargs['videoBlackSettings'] + if audio_silence_settings is not None: - pulumi.set(__self__, "audio_silence_settings", audio_silence_settings) + _setter("audio_silence_settings", audio_silence_settings) if input_loss_settings is not None: - pulumi.set(__self__, "input_loss_settings", input_loss_settings) + _setter("input_loss_settings", input_loss_settings) if video_black_settings is not None: - pulumi.set(__self__, "video_black_settings", video_black_settings) + _setter("video_black_settings", video_black_settings) @property @pulumi.getter(name="audioSilenceSettings") @@ -10203,18 +13826,37 @@ def __init__(__self__, *, audio_selector_name: str, audio_silence_threshold_msec: Optional[int] = None): """ - :param str audio_selector_name: The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + :param str audio_selector_name: The name of the audio selector used as the source for this AudioDescription. :param int audio_silence_threshold_msec: The amount of time (in milliseconds) that the active input must be silent before automatic input failover occurs. Silence is defined as audio loss or audio quieter than -50 dBFS. """ - pulumi.set(__self__, "audio_selector_name", audio_selector_name) + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsAudioSilenceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_selector_name=audio_selector_name, + audio_silence_threshold_msec=audio_silence_threshold_msec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_selector_name: Optional[str] = None, + audio_silence_threshold_msec: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_selector_name is None and 'audioSelectorName' in kwargs: + audio_selector_name = kwargs['audioSelectorName'] + if audio_selector_name is None: + raise TypeError("Missing 'audio_selector_name' argument") + if audio_silence_threshold_msec is None and 'audioSilenceThresholdMsec' in kwargs: + audio_silence_threshold_msec = kwargs['audioSilenceThresholdMsec'] + + _setter("audio_selector_name", audio_selector_name) if audio_silence_threshold_msec is not None: - pulumi.set(__self__, "audio_silence_threshold_msec", audio_silence_threshold_msec) + _setter("audio_silence_threshold_msec", audio_silence_threshold_msec) @property @pulumi.getter(name="audioSelectorName") def audio_selector_name(self) -> str: """ - The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + The name of the audio selector used as the source for this AudioDescription. """ return pulumi.get(self, "audio_selector_name") @@ -10251,8 +13893,21 @@ def __init__(__self__, *, """ :param int input_loss_threshold_msec: The amount of time (in milliseconds) that no input is detected. After that time, an input failover will occur. """ + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsInputLossSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + input_loss_threshold_msec=input_loss_threshold_msec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input_loss_threshold_msec: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input_loss_threshold_msec is None and 'inputLossThresholdMsec' in kwargs: + input_loss_threshold_msec = kwargs['inputLossThresholdMsec'] + if input_loss_threshold_msec is not None: - pulumi.set(__self__, "input_loss_threshold_msec", input_loss_threshold_msec) + _setter("input_loss_threshold_msec", input_loss_threshold_msec) @property @pulumi.getter(name="inputLossThresholdMsec") @@ -10291,10 +13946,27 @@ def __init__(__self__, *, :param float black_detect_threshold: A value used in calculating the threshold below which MediaLive considers a pixel to be 'black'. For the input to be considered black, every pixel in a frame must be below this threshold. The threshold is calculated as a percentage (expressed as a decimal) of white. Therefore .1 means 10% white (or 90% black). Note how the formula works for any color depth. For example, if you set this field to 0.1 in 10-bit color depth: (10230.1=102.3), which means a pixel value of 102 or less is 'black'. If you set this field to .1 in an 8-bit color depth: (2550.1=25.5), which means a pixel value of 25 or less is 'black'. The range is 0.0 to 1.0, with any number of decimal places. :param int video_black_threshold_msec: The amount of time (in milliseconds) that the active input must be black before automatic input failover occurs. """ + ChannelInputAttachmentAutomaticInputFailoverSettingsFailoverConditionFailoverConditionSettingsVideoBlackSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + black_detect_threshold=black_detect_threshold, + video_black_threshold_msec=video_black_threshold_msec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + black_detect_threshold: Optional[float] = None, + video_black_threshold_msec: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if black_detect_threshold is None and 'blackDetectThreshold' in kwargs: + black_detect_threshold = kwargs['blackDetectThreshold'] + if video_black_threshold_msec is None and 'videoBlackThresholdMsec' in kwargs: + video_black_threshold_msec = kwargs['videoBlackThresholdMsec'] + if black_detect_threshold is not None: - pulumi.set(__self__, "black_detect_threshold", black_detect_threshold) + _setter("black_detect_threshold", black_detect_threshold) if video_black_threshold_msec is not None: - pulumi.set(__self__, "video_black_threshold_msec", video_black_threshold_msec) + _setter("video_black_threshold_msec", video_black_threshold_msec) @property @pulumi.getter(name="blackDetectThreshold") @@ -10374,28 +14046,81 @@ def __init__(__self__, *, :param str smpte2038_data_preference: Specifies whether to extract applicable ancillary data from a SMPTE-2038 source in the input. :param str source_end_behavior: Loop input if it is a file. """ + ChannelInputAttachmentInputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_selectors=audio_selectors, + caption_selectors=caption_selectors, + deblock_filter=deblock_filter, + denoise_filter=denoise_filter, + filter_strength=filter_strength, + input_filter=input_filter, + network_input_settings=network_input_settings, + scte35_pid=scte35_pid, + smpte2038_data_preference=smpte2038_data_preference, + source_end_behavior=source_end_behavior, + video_selector=video_selector, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_selectors: Optional[Sequence['outputs.ChannelInputAttachmentInputSettingsAudioSelector']] = None, + caption_selectors: Optional[Sequence['outputs.ChannelInputAttachmentInputSettingsCaptionSelector']] = None, + deblock_filter: Optional[str] = None, + denoise_filter: Optional[str] = None, + filter_strength: Optional[int] = None, + input_filter: Optional[str] = None, + network_input_settings: Optional['outputs.ChannelInputAttachmentInputSettingsNetworkInputSettings'] = None, + scte35_pid: Optional[int] = None, + smpte2038_data_preference: Optional[str] = None, + source_end_behavior: Optional[str] = None, + video_selector: Optional['outputs.ChannelInputAttachmentInputSettingsVideoSelector'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_selectors is None and 'audioSelectors' in kwargs: + audio_selectors = kwargs['audioSelectors'] + if caption_selectors is None and 'captionSelectors' in kwargs: + caption_selectors = kwargs['captionSelectors'] + if deblock_filter is None and 'deblockFilter' in kwargs: + deblock_filter = kwargs['deblockFilter'] + if denoise_filter is None and 'denoiseFilter' in kwargs: + denoise_filter = kwargs['denoiseFilter'] + if filter_strength is None and 'filterStrength' in kwargs: + filter_strength = kwargs['filterStrength'] + if input_filter is None and 'inputFilter' in kwargs: + input_filter = kwargs['inputFilter'] + if network_input_settings is None and 'networkInputSettings' in kwargs: + network_input_settings = kwargs['networkInputSettings'] + if scte35_pid is None and 'scte35Pid' in kwargs: + scte35_pid = kwargs['scte35Pid'] + if smpte2038_data_preference is None and 'smpte2038DataPreference' in kwargs: + smpte2038_data_preference = kwargs['smpte2038DataPreference'] + if source_end_behavior is None and 'sourceEndBehavior' in kwargs: + source_end_behavior = kwargs['sourceEndBehavior'] + if video_selector is None and 'videoSelector' in kwargs: + video_selector = kwargs['videoSelector'] + if audio_selectors is not None: - pulumi.set(__self__, "audio_selectors", audio_selectors) + _setter("audio_selectors", audio_selectors) if caption_selectors is not None: - pulumi.set(__self__, "caption_selectors", caption_selectors) + _setter("caption_selectors", caption_selectors) if deblock_filter is not None: - pulumi.set(__self__, "deblock_filter", deblock_filter) + _setter("deblock_filter", deblock_filter) if denoise_filter is not None: - pulumi.set(__self__, "denoise_filter", denoise_filter) + _setter("denoise_filter", denoise_filter) if filter_strength is not None: - pulumi.set(__self__, "filter_strength", filter_strength) + _setter("filter_strength", filter_strength) if input_filter is not None: - pulumi.set(__self__, "input_filter", input_filter) + _setter("input_filter", input_filter) if network_input_settings is not None: - pulumi.set(__self__, "network_input_settings", network_input_settings) + _setter("network_input_settings", network_input_settings) if scte35_pid is not None: - pulumi.set(__self__, "scte35_pid", scte35_pid) + _setter("scte35_pid", scte35_pid) if smpte2038_data_preference is not None: - pulumi.set(__self__, "smpte2038_data_preference", smpte2038_data_preference) + _setter("smpte2038_data_preference", smpte2038_data_preference) if source_end_behavior is not None: - pulumi.set(__self__, "source_end_behavior", source_end_behavior) + _setter("source_end_behavior", source_end_behavior) if video_selector is not None: - pulumi.set(__self__, "video_selector", video_selector) + _setter("video_selector", video_selector) @property @pulumi.getter(name="audioSelectors") @@ -10505,9 +14230,26 @@ def __init__(__self__, *, The following arguments are optional: :param 'ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsArgs' selector_settings: The audio selector settings. See Audio Selector Settings for more details. """ - pulumi.set(__self__, "name", name) + ChannelInputAttachmentInputSettingsAudioSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + selector_settings=selector_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + selector_settings: Optional['outputs.ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if selector_settings is None and 'selectorSettings' in kwargs: + selector_settings = kwargs['selectorSettings'] + + _setter("name", name) if selector_settings is not None: - pulumi.set(__self__, "selector_settings", selector_settings) + _setter("selector_settings", selector_settings) @property @pulumi.getter @@ -10564,14 +14306,39 @@ def __init__(__self__, *, :param 'ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioPidSelectionArgs' audio_pid_selection: Audio Pid Selection. See Audio PID Selection for more details. :param 'ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionArgs' audio_track_selection: Audio Track Selection. See Audio Track Selection for more details. """ + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + audio_hls_rendition_selection=audio_hls_rendition_selection, + audio_language_selection=audio_language_selection, + audio_pid_selection=audio_pid_selection, + audio_track_selection=audio_track_selection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audio_hls_rendition_selection: Optional['outputs.ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioHlsRenditionSelection'] = None, + audio_language_selection: Optional['outputs.ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioLanguageSelection'] = None, + audio_pid_selection: Optional['outputs.ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioPidSelection'] = None, + audio_track_selection: Optional['outputs.ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelection'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audio_hls_rendition_selection is None and 'audioHlsRenditionSelection' in kwargs: + audio_hls_rendition_selection = kwargs['audioHlsRenditionSelection'] + if audio_language_selection is None and 'audioLanguageSelection' in kwargs: + audio_language_selection = kwargs['audioLanguageSelection'] + if audio_pid_selection is None and 'audioPidSelection' in kwargs: + audio_pid_selection = kwargs['audioPidSelection'] + if audio_track_selection is None and 'audioTrackSelection' in kwargs: + audio_track_selection = kwargs['audioTrackSelection'] + if audio_hls_rendition_selection is not None: - pulumi.set(__self__, "audio_hls_rendition_selection", audio_hls_rendition_selection) + _setter("audio_hls_rendition_selection", audio_hls_rendition_selection) if audio_language_selection is not None: - pulumi.set(__self__, "audio_language_selection", audio_language_selection) + _setter("audio_language_selection", audio_language_selection) if audio_pid_selection is not None: - pulumi.set(__self__, "audio_pid_selection", audio_pid_selection) + _setter("audio_pid_selection", audio_pid_selection) if audio_track_selection is not None: - pulumi.set(__self__, "audio_track_selection", audio_track_selection) + _setter("audio_track_selection", audio_track_selection) @property @pulumi.getter(name="audioHlsRenditionSelection") @@ -10632,8 +14399,27 @@ def __init__(__self__, *, :param str group_id: Specifies the GROUP-ID in the #EXT-X-MEDIA tag of the target HLS audio rendition. :param str name: Specifies the NAME in the #EXT-X-MEDIA tag of the target HLS audio rendition. """ - pulumi.set(__self__, "group_id", group_id) - pulumi.set(__self__, "name", name) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioHlsRenditionSelection._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_id=group_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_id is None and 'groupId' in kwargs: + group_id = kwargs['groupId'] + if group_id is None: + raise TypeError("Missing 'group_id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("group_id", group_id) + _setter("name", name) @property @pulumi.getter(name="groupId") @@ -10680,9 +14466,28 @@ def __init__(__self__, *, :param str language_code: Selects a specific three-letter language code from within an audio source. :param str language_selection_policy: When set to “strict”, the transport stream demux strictly identifies audio streams by their language descriptor. If a PMT update occurs such that an audio stream matching the initially selected language is no longer present then mute will be encoded until the language returns. If “loose”, then on a PMT update the demux will choose another audio stream in the program with the same stream type if it can’t find one with the same language. """ - pulumi.set(__self__, "language_code", language_code) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioLanguageSelection._configure( + lambda key, value: pulumi.set(__self__, key, value), + language_code=language_code, + language_selection_policy=language_selection_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + language_code: Optional[str] = None, + language_selection_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if language_selection_policy is None and 'languageSelectionPolicy' in kwargs: + language_selection_policy = kwargs['languageSelectionPolicy'] + + _setter("language_code", language_code) if language_selection_policy is not None: - pulumi.set(__self__, "language_selection_policy", language_selection_policy) + _setter("language_selection_policy", language_selection_policy) @property @pulumi.getter(name="languageCode") @@ -10708,7 +14513,20 @@ def __init__(__self__, *, """ :param int pid: Selects a specific PID from within a source. """ - pulumi.set(__self__, "pid", pid) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioPidSelection._configure( + lambda key, value: pulumi.set(__self__, key, value), + pid=pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pid: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pid is None: + raise TypeError("Missing 'pid' argument") + + _setter("pid", pid) @property @pulumi.getter @@ -10745,9 +14563,26 @@ def __init__(__self__, *, :param Sequence['ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionTrackArgs'] tracks: Selects one or more unique audio tracks from within a source. See Audio Tracks for more details. :param 'ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionDolbyEDecodeArgs' dolby_e_decode: Configure decoding options for Dolby E streams - these should be Dolby E frames carried in PCM streams tagged with SMPTE-337. See Dolby E Decode for more details. """ - pulumi.set(__self__, "tracks", tracks) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelection._configure( + lambda key, value: pulumi.set(__self__, key, value), + tracks=tracks, + dolby_e_decode=dolby_e_decode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tracks: Optional[Sequence['outputs.ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionTrack']] = None, + dolby_e_decode: Optional['outputs.ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionDolbyEDecode'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tracks is None: + raise TypeError("Missing 'tracks' argument") + if dolby_e_decode is None and 'dolbyEDecode' in kwargs: + dolby_e_decode = kwargs['dolbyEDecode'] + + _setter("tracks", tracks) if dolby_e_decode is not None: - pulumi.set(__self__, "dolby_e_decode", dolby_e_decode) + _setter("dolby_e_decode", dolby_e_decode) @property @pulumi.getter @@ -10790,7 +14625,22 @@ def __init__(__self__, *, """ :param str program_selection: Applies only to Dolby E. Enter the program ID (according to the metadata in the audio) of the Dolby E program to extract from the specified track. One program extracted per audio selector. To select multiple programs, create multiple selectors with the same Track and different Program numbers. “All channels” means to ignore the program IDs and include all the channels in this selector; useful if metadata is known to be incorrect. """ - pulumi.set(__self__, "program_selection", program_selection) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionDolbyEDecode._configure( + lambda key, value: pulumi.set(__self__, key, value), + program_selection=program_selection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + program_selection: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if program_selection is None and 'programSelection' in kwargs: + program_selection = kwargs['programSelection'] + if program_selection is None: + raise TypeError("Missing 'program_selection' argument") + + _setter("program_selection", program_selection) @property @pulumi.getter(name="programSelection") @@ -10808,7 +14658,20 @@ def __init__(__self__, *, """ :param int track: 1-based integer value that maps to a specific audio track. """ - pulumi.set(__self__, "track", track) + ChannelInputAttachmentInputSettingsAudioSelectorSelectorSettingsAudioTrackSelectionTrack._configure( + lambda key, value: pulumi.set(__self__, key, value), + track=track, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + track: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if track is None: + raise TypeError("Missing 'track' argument") + + _setter("track", track) @property @pulumi.getter @@ -10851,11 +14714,32 @@ def __init__(__self__, *, :param str language_code: Selects a specific three-letter language code from within an audio source. :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsArgs' selector_settings: The audio selector settings. See Audio Selector Settings for more details. """ - pulumi.set(__self__, "name", name) + ChannelInputAttachmentInputSettingsCaptionSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + language_code=language_code, + selector_settings=selector_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + language_code: Optional[str] = None, + selector_settings: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if selector_settings is None and 'selectorSettings' in kwargs: + selector_settings = kwargs['selectorSettings'] + + _setter("name", name) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if selector_settings is not None: - pulumi.set(__self__, "selector_settings", selector_settings) + _setter("selector_settings", selector_settings) @property @pulumi.getter @@ -10932,20 +14816,57 @@ def __init__(__self__, *, :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte27SourceSettingsArgs' scte27_source_settings: SCTE27 Source Settings. See SCTE 27 Source Settings for more details. :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsArgs' teletext_source_settings: Teletext Source Settings. See Teletext Source Settings for more details. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + ancillary_source_settings=ancillary_source_settings, + arib_source_settings=arib_source_settings, + dvb_sub_source_settings=dvb_sub_source_settings, + embedded_source_settings=embedded_source_settings, + scte20_source_settings=scte20_source_settings, + scte27_source_settings=scte27_source_settings, + teletext_source_settings=teletext_source_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ancillary_source_settings: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettings'] = None, + arib_source_settings: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings'] = None, + dvb_sub_source_settings: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettings'] = None, + embedded_source_settings: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsEmbeddedSourceSettings'] = None, + scte20_source_settings: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte20SourceSettings'] = None, + scte27_source_settings: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte27SourceSettings'] = None, + teletext_source_settings: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ancillary_source_settings is None and 'ancillarySourceSettings' in kwargs: + ancillary_source_settings = kwargs['ancillarySourceSettings'] + if arib_source_settings is None and 'aribSourceSettings' in kwargs: + arib_source_settings = kwargs['aribSourceSettings'] + if dvb_sub_source_settings is None and 'dvbSubSourceSettings' in kwargs: + dvb_sub_source_settings = kwargs['dvbSubSourceSettings'] + if embedded_source_settings is None and 'embeddedSourceSettings' in kwargs: + embedded_source_settings = kwargs['embeddedSourceSettings'] + if scte20_source_settings is None and 'scte20SourceSettings' in kwargs: + scte20_source_settings = kwargs['scte20SourceSettings'] + if scte27_source_settings is None and 'scte27SourceSettings' in kwargs: + scte27_source_settings = kwargs['scte27SourceSettings'] + if teletext_source_settings is None and 'teletextSourceSettings' in kwargs: + teletext_source_settings = kwargs['teletextSourceSettings'] + if ancillary_source_settings is not None: - pulumi.set(__self__, "ancillary_source_settings", ancillary_source_settings) + _setter("ancillary_source_settings", ancillary_source_settings) if arib_source_settings is not None: - pulumi.set(__self__, "arib_source_settings", arib_source_settings) + _setter("arib_source_settings", arib_source_settings) if dvb_sub_source_settings is not None: - pulumi.set(__self__, "dvb_sub_source_settings", dvb_sub_source_settings) + _setter("dvb_sub_source_settings", dvb_sub_source_settings) if embedded_source_settings is not None: - pulumi.set(__self__, "embedded_source_settings", embedded_source_settings) + _setter("embedded_source_settings", embedded_source_settings) if scte20_source_settings is not None: - pulumi.set(__self__, "scte20_source_settings", scte20_source_settings) + _setter("scte20_source_settings", scte20_source_settings) if scte27_source_settings is not None: - pulumi.set(__self__, "scte27_source_settings", scte27_source_settings) + _setter("scte27_source_settings", scte27_source_settings) if teletext_source_settings is not None: - pulumi.set(__self__, "teletext_source_settings", teletext_source_settings) + _setter("teletext_source_settings", teletext_source_settings) @property @pulumi.getter(name="ancillarySourceSettings") @@ -11028,8 +14949,21 @@ def __init__(__self__, *, """ :param int source_ancillary_channel_number: Specifies the number (1 to 4) of the captions channel you want to extract from the ancillary captions. If you plan to convert the ancillary captions to another format, complete this field. If you plan to choose Embedded as the captions destination in the output (to pass through all the channels in the ancillary captions), leave this field blank because MediaLive ignores the field. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAncillarySourceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_ancillary_channel_number=source_ancillary_channel_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_ancillary_channel_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_ancillary_channel_number is None and 'sourceAncillaryChannelNumber' in kwargs: + source_ancillary_channel_number = kwargs['sourceAncillaryChannelNumber'] + if source_ancillary_channel_number is not None: - pulumi.set(__self__, "source_ancillary_channel_number", source_ancillary_channel_number) + _setter("source_ancillary_channel_number", source_ancillary_channel_number) @property @pulumi.getter(name="sourceAncillaryChannelNumber") @@ -11044,6 +14978,13 @@ def source_ancillary_channel_number(self) -> Optional[int]: class ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsAribSourceSettings(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -11072,10 +15013,25 @@ def __init__(__self__, *, :param str ocr_language: If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image-based source to text. :param int pid: When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through, regardless of selectors. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsDvbSubSourceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + ocr_language=ocr_language, + pid=pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ocr_language: Optional[str] = None, + pid: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ocr_language is None and 'ocrLanguage' in kwargs: + ocr_language = kwargs['ocrLanguage'] + if ocr_language is not None: - pulumi.set(__self__, "ocr_language", ocr_language) + _setter("ocr_language", ocr_language) if pid is not None: - pulumi.set(__self__, "pid", pid) + _setter("pid", pid) @property @pulumi.getter(name="ocrLanguage") @@ -11126,12 +15082,33 @@ def __init__(__self__, *, :param str scte20_detection: Set to “auto” to handle streams with intermittent and/or non-aligned SCTE-20 and Embedded captions. :param int source608_channel_number: Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsEmbeddedSourceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + convert608_to708=convert608_to708, + scte20_detection=scte20_detection, + source608_channel_number=source608_channel_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + convert608_to708: Optional[str] = None, + scte20_detection: Optional[str] = None, + source608_channel_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if convert608_to708 is None and 'convert608To708' in kwargs: + convert608_to708 = kwargs['convert608To708'] + if scte20_detection is None and 'scte20Detection' in kwargs: + scte20_detection = kwargs['scte20Detection'] + if source608_channel_number is None and 'source608ChannelNumber' in kwargs: + source608_channel_number = kwargs['source608ChannelNumber'] + if convert608_to708 is not None: - pulumi.set(__self__, "convert608_to708", convert608_to708) + _setter("convert608_to708", convert608_to708) if scte20_detection is not None: - pulumi.set(__self__, "scte20_detection", scte20_detection) + _setter("scte20_detection", scte20_detection) if source608_channel_number is not None: - pulumi.set(__self__, "source608_channel_number", source608_channel_number) + _setter("source608_channel_number", source608_channel_number) @property @pulumi.getter(name="convert608To708") @@ -11186,10 +15163,27 @@ def __init__(__self__, *, :param str convert608_to708: If upconvert, 608 data is both passed through via the “608 compatibility bytes” fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded. :param int source608_channel_number: Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte20SourceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + convert608_to708=convert608_to708, + source608_channel_number=source608_channel_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + convert608_to708: Optional[str] = None, + source608_channel_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if convert608_to708 is None and 'convert608To708' in kwargs: + convert608_to708 = kwargs['convert608To708'] + if source608_channel_number is None and 'source608ChannelNumber' in kwargs: + source608_channel_number = kwargs['source608ChannelNumber'] + if convert608_to708 is not None: - pulumi.set(__self__, "convert608_to708", convert608_to708) + _setter("convert608_to708", convert608_to708) if source608_channel_number is not None: - pulumi.set(__self__, "source608_channel_number", source608_channel_number) + _setter("source608_channel_number", source608_channel_number) @property @pulumi.getter(name="convert608To708") @@ -11234,10 +15228,25 @@ def __init__(__self__, *, :param str ocr_language: If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image-based source to text. :param int pid: Selects a specific PID from within a source. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsScte27SourceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + ocr_language=ocr_language, + pid=pid, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ocr_language: Optional[str] = None, + pid: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ocr_language is None and 'ocrLanguage' in kwargs: + ocr_language = kwargs['ocrLanguage'] + if ocr_language is not None: - pulumi.set(__self__, "ocr_language", ocr_language) + _setter("ocr_language", ocr_language) if pid is not None: - pulumi.set(__self__, "pid", pid) + _setter("pid", pid) @property @pulumi.getter(name="ocrLanguage") @@ -11284,10 +15293,27 @@ def __init__(__self__, *, :param 'ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsOutputRectangleArgs' output_rectangle: Optionally defines a region where TTML style captions will be displayed. See Caption Rectangle for more details. :param str page_number: Specifies the teletext page number within the data stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should be specified as a hexadecimal string with no “0x” prefix. """ + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_rectangle=output_rectangle, + page_number=page_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_rectangle: Optional['outputs.ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsOutputRectangle'] = None, + page_number: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_rectangle is None and 'outputRectangle' in kwargs: + output_rectangle = kwargs['outputRectangle'] + if page_number is None and 'pageNumber' in kwargs: + page_number = kwargs['pageNumber'] + if output_rectangle is not None: - pulumi.set(__self__, "output_rectangle", output_rectangle) + _setter("output_rectangle", output_rectangle) if page_number is not None: - pulumi.set(__self__, "page_number", page_number) + _setter("page_number", page_number) @property @pulumi.getter(name="outputRectangle") @@ -11338,10 +15364,39 @@ def __init__(__self__, *, :param float top_offset: See the description in left\\_offset. For top\\_offset, specify the position of the top edge of the rectangle, as a percentage of the underlying frame height, and relative to the top edge of the frame. For example, "10" means the measurement is 10% of the underlying frame height. The rectangle top edge starts at that position from the top edge of the frame. This field corresponds to tts:origin - Y in the TTML standard. :param float width: See the description in left\\_offset. For width, specify the entire width of the rectangle as a percentage of the underlying frame width. For example, "80" means the rectangle width is 80% of the underlying frame width. The left\\_offset and rectangle\\_width must add up to 100% or less. This field corresponds to tts:extent - X in the TTML standard. """ - pulumi.set(__self__, "height", height) - pulumi.set(__self__, "left_offset", left_offset) - pulumi.set(__self__, "top_offset", top_offset) - pulumi.set(__self__, "width", width) + ChannelInputAttachmentInputSettingsCaptionSelectorSelectorSettingsTeletextSourceSettingsOutputRectangle._configure( + lambda key, value: pulumi.set(__self__, key, value), + height=height, + left_offset=left_offset, + top_offset=top_offset, + width=width, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + height: Optional[float] = None, + left_offset: Optional[float] = None, + top_offset: Optional[float] = None, + width: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if height is None: + raise TypeError("Missing 'height' argument") + if left_offset is None and 'leftOffset' in kwargs: + left_offset = kwargs['leftOffset'] + if left_offset is None: + raise TypeError("Missing 'left_offset' argument") + if top_offset is None and 'topOffset' in kwargs: + top_offset = kwargs['topOffset'] + if top_offset is None: + raise TypeError("Missing 'top_offset' argument") + if width is None: + raise TypeError("Missing 'width' argument") + + _setter("height", height) + _setter("left_offset", left_offset) + _setter("top_offset", top_offset) + _setter("width", width) @property @pulumi.getter @@ -11404,10 +15459,27 @@ def __init__(__self__, *, :param 'ChannelInputAttachmentInputSettingsNetworkInputSettingsHlsInputSettingsArgs' hls_input_settings: Specifies HLS input settings when the uri is for a HLS manifest. See HLS Input Settings for more details. :param str server_validation: Check HTTPS server certificates. """ + ChannelInputAttachmentInputSettingsNetworkInputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + hls_input_settings=hls_input_settings, + server_validation=server_validation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hls_input_settings: Optional['outputs.ChannelInputAttachmentInputSettingsNetworkInputSettingsHlsInputSettings'] = None, + server_validation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hls_input_settings is None and 'hlsInputSettings' in kwargs: + hls_input_settings = kwargs['hlsInputSettings'] + if server_validation is None and 'serverValidation' in kwargs: + server_validation = kwargs['serverValidation'] + if hls_input_settings is not None: - pulumi.set(__self__, "hls_input_settings", hls_input_settings) + _setter("hls_input_settings", hls_input_settings) if server_validation is not None: - pulumi.set(__self__, "server_validation", server_validation) + _setter("server_validation", server_validation) @property @pulumi.getter(name="hlsInputSettings") @@ -11461,16 +15533,41 @@ def __init__(__self__, *, :param int retries: The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable. :param int retry_interval: The number of seconds between retries when an attempt to read a manifest or segment fails. """ + ChannelInputAttachmentInputSettingsNetworkInputSettingsHlsInputSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + bandwidth=bandwidth, + buffer_segments=buffer_segments, + retries=retries, + retry_interval=retry_interval, + scte35_source=scte35_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bandwidth: Optional[int] = None, + buffer_segments: Optional[int] = None, + retries: Optional[int] = None, + retry_interval: Optional[int] = None, + scte35_source: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if buffer_segments is None and 'bufferSegments' in kwargs: + buffer_segments = kwargs['bufferSegments'] + if retry_interval is None and 'retryInterval' in kwargs: + retry_interval = kwargs['retryInterval'] + if scte35_source is None and 'scte35Source' in kwargs: + scte35_source = kwargs['scte35Source'] + if bandwidth is not None: - pulumi.set(__self__, "bandwidth", bandwidth) + _setter("bandwidth", bandwidth) if buffer_segments is not None: - pulumi.set(__self__, "buffer_segments", buffer_segments) + _setter("buffer_segments", buffer_segments) if retries is not None: - pulumi.set(__self__, "retries", retries) + _setter("retries", retries) if retry_interval is not None: - pulumi.set(__self__, "retry_interval", retry_interval) + _setter("retry_interval", retry_interval) if scte35_source is not None: - pulumi.set(__self__, "scte35_source", scte35_source) + _setter("scte35_source", scte35_source) @property @pulumi.getter @@ -11534,10 +15631,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, color_space: Optional[str] = None, color_space_usage: Optional[str] = None): + ChannelInputAttachmentInputSettingsVideoSelector._configure( + lambda key, value: pulumi.set(__self__, key, value), + color_space=color_space, + color_space_usage=color_space_usage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + color_space: Optional[str] = None, + color_space_usage: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if color_space is None and 'colorSpace' in kwargs: + color_space = kwargs['colorSpace'] + if color_space_usage is None and 'colorSpaceUsage' in kwargs: + color_space_usage = kwargs['colorSpaceUsage'] + if color_space is not None: - pulumi.set(__self__, "color_space", color_space) + _setter("color_space", color_space) if color_space_usage is not None: - pulumi.set(__self__, "color_space_usage", color_space_usage) + _setter("color_space_usage", color_space_usage) @property @pulumi.getter(name="colorSpace") @@ -11575,9 +15689,34 @@ def __init__(__self__, *, codec: str, input_resolution: str, maximum_bitrate: str): - pulumi.set(__self__, "codec", codec) - pulumi.set(__self__, "input_resolution", input_resolution) - pulumi.set(__self__, "maximum_bitrate", maximum_bitrate) + ChannelInputSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + codec=codec, + input_resolution=input_resolution, + maximum_bitrate=maximum_bitrate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + codec: Optional[str] = None, + input_resolution: Optional[str] = None, + maximum_bitrate: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if codec is None: + raise TypeError("Missing 'codec' argument") + if input_resolution is None and 'inputResolution' in kwargs: + input_resolution = kwargs['inputResolution'] + if input_resolution is None: + raise TypeError("Missing 'input_resolution' argument") + if maximum_bitrate is None and 'maximumBitrate' in kwargs: + maximum_bitrate = kwargs['maximumBitrate'] + if maximum_bitrate is None: + raise TypeError("Missing 'maximum_bitrate' argument") + + _setter("codec", codec) + _setter("input_resolution", input_resolution) + _setter("maximum_bitrate", maximum_bitrate) @property @pulumi.getter @@ -11623,8 +15762,29 @@ def __init__(__self__, *, :param str maintenance_day: The day of the week to use for maintenance. :param str maintenance_start_time: The hour maintenance will start. """ - pulumi.set(__self__, "maintenance_day", maintenance_day) - pulumi.set(__self__, "maintenance_start_time", maintenance_start_time) + ChannelMaintenance._configure( + lambda key, value: pulumi.set(__self__, key, value), + maintenance_day=maintenance_day, + maintenance_start_time=maintenance_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maintenance_day: Optional[str] = None, + maintenance_start_time: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maintenance_day is None and 'maintenanceDay' in kwargs: + maintenance_day = kwargs['maintenanceDay'] + if maintenance_day is None: + raise TypeError("Missing 'maintenance_day' argument") + if maintenance_start_time is None and 'maintenanceStartTime' in kwargs: + maintenance_start_time = kwargs['maintenanceStartTime'] + if maintenance_start_time is None: + raise TypeError("Missing 'maintenance_start_time' argument") + + _setter("maintenance_day", maintenance_day) + _setter("maintenance_start_time", maintenance_start_time) @property @pulumi.getter(name="maintenanceDay") @@ -11681,14 +15841,47 @@ def __init__(__self__, *, :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) + ChannelVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + public_address_allocation_ids=public_address_allocation_ids, + subnet_ids=subnet_ids, + availability_zones=availability_zones, + network_interface_ids=network_interface_ids, + security_group_ids=security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + public_address_allocation_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + availability_zones: Optional[Sequence[str]] = None, + network_interface_ids: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if public_address_allocation_ids is None and 'publicAddressAllocationIds' in kwargs: + public_address_allocation_ids = kwargs['publicAddressAllocationIds'] + if public_address_allocation_ids is None: + raise TypeError("Missing 'public_address_allocation_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if network_interface_ids is None and 'networkInterfaceIds' in kwargs: + network_interface_ids = kwargs['networkInterfaceIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("public_address_allocation_ids", public_address_allocation_ids) + _setter("subnet_ids", subnet_ids) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if network_interface_ids is not None: - pulumi.set(__self__, "network_interface_ids", network_interface_ids) + _setter("network_interface_ids", network_interface_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) @property @pulumi.getter(name="publicAddressAllocationIds") @@ -11749,7 +15942,22 @@ def __init__(__self__, *, """ :param str stream_name: A unique name for the location the RTMP stream is being pushed to. """ - pulumi.set(__self__, "stream_name", stream_name) + InputDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_name=stream_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if stream_name is None: + raise TypeError("Missing 'stream_name' argument") + + _setter("stream_name", stream_name) @property @pulumi.getter(name="streamName") @@ -11767,7 +15975,20 @@ def __init__(__self__, *, """ :param str id: The unique ID for the device. """ - pulumi.set(__self__, "id", id) + InputInputDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) @property @pulumi.getter @@ -11802,7 +16023,22 @@ def __init__(__self__, *, """ :param str flow_arn: The ARN of the MediaConnect Flow """ - pulumi.set(__self__, "flow_arn", flow_arn) + InputMediaConnectFlow._configure( + lambda key, value: pulumi.set(__self__, key, value), + flow_arn=flow_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flow_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_arn is None and 'flowArn' in kwargs: + flow_arn = kwargs['flowArn'] + if flow_arn is None: + raise TypeError("Missing 'flow_arn' argument") + + _setter("flow_arn", flow_arn) @property @pulumi.getter(name="flowArn") @@ -11820,7 +16056,20 @@ def __init__(__self__, *, """ :param str cidr: The IPv4 CIDR that's whitelisted. """ - pulumi.set(__self__, "cidr", cidr) + InputSecurityGroupWhitelistRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -11859,9 +16108,32 @@ def __init__(__self__, *, :param str url: The URL where the stream is pulled from. :param str username: The username for the input source. """ - pulumi.set(__self__, "password_param", password_param) - pulumi.set(__self__, "url", url) - pulumi.set(__self__, "username", username) + InputSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + password_param=password_param, + url=url, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password_param: Optional[str] = None, + url: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password_param is None and 'passwordParam' in kwargs: + password_param = kwargs['passwordParam'] + if password_param is None: + raise TypeError("Missing 'password_param' argument") + if url is None: + raise TypeError("Missing 'url' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password_param", password_param) + _setter("url", url) + _setter("username", username) @property @pulumi.getter(name="passwordParam") @@ -11916,9 +16188,28 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: A list of 2 VPC subnet IDs from the same VPC. :param Sequence[str] security_group_ids: A list of up to 5 EC2 VPC security group IDs to attach to the Input. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + InputVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + security_group_ids=security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("subnet_ids", subnet_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) @property @pulumi.getter(name="subnetIds") @@ -11973,12 +16264,41 @@ def __init__(__self__, *, :param int maximum_video_buffer_delay_milliseconds: Maximum video buffer delay. :param int transport_stream_reserved_bitrate: Transport stream reserved bit rate. """ - pulumi.set(__self__, "transport_stream_bitrate", transport_stream_bitrate) - pulumi.set(__self__, "transport_stream_id", transport_stream_id) + MultiplexMultiplexSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + transport_stream_bitrate=transport_stream_bitrate, + transport_stream_id=transport_stream_id, + maximum_video_buffer_delay_milliseconds=maximum_video_buffer_delay_milliseconds, + transport_stream_reserved_bitrate=transport_stream_reserved_bitrate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + transport_stream_bitrate: Optional[int] = None, + transport_stream_id: Optional[int] = None, + maximum_video_buffer_delay_milliseconds: Optional[int] = None, + transport_stream_reserved_bitrate: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if transport_stream_bitrate is None and 'transportStreamBitrate' in kwargs: + transport_stream_bitrate = kwargs['transportStreamBitrate'] + if transport_stream_bitrate is None: + raise TypeError("Missing 'transport_stream_bitrate' argument") + if transport_stream_id is None and 'transportStreamId' in kwargs: + transport_stream_id = kwargs['transportStreamId'] + if transport_stream_id is None: + raise TypeError("Missing 'transport_stream_id' argument") + if maximum_video_buffer_delay_milliseconds is None and 'maximumVideoBufferDelayMilliseconds' in kwargs: + maximum_video_buffer_delay_milliseconds = kwargs['maximumVideoBufferDelayMilliseconds'] + if transport_stream_reserved_bitrate is None and 'transportStreamReservedBitrate' in kwargs: + transport_stream_reserved_bitrate = kwargs['transportStreamReservedBitrate'] + + _setter("transport_stream_bitrate", transport_stream_bitrate) + _setter("transport_stream_id", transport_stream_id) if maximum_video_buffer_delay_milliseconds is not None: - pulumi.set(__self__, "maximum_video_buffer_delay_milliseconds", maximum_video_buffer_delay_milliseconds) + _setter("maximum_video_buffer_delay_milliseconds", maximum_video_buffer_delay_milliseconds) if transport_stream_reserved_bitrate is not None: - pulumi.set(__self__, "transport_stream_reserved_bitrate", transport_stream_reserved_bitrate) + _setter("transport_stream_reserved_bitrate", transport_stream_reserved_bitrate) @property @pulumi.getter(name="transportStreamBitrate") @@ -12049,12 +16369,41 @@ def __init__(__self__, *, :param 'MultiplexProgramMultiplexProgramSettingsServiceDescriptorArgs' service_descriptor: Service Descriptor. See Service Descriptor for more details. :param 'MultiplexProgramMultiplexProgramSettingsVideoSettingsArgs' video_settings: Video settings. See Video Settings for more details. """ - pulumi.set(__self__, "preferred_channel_pipeline", preferred_channel_pipeline) - pulumi.set(__self__, "program_number", program_number) + MultiplexProgramMultiplexProgramSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + preferred_channel_pipeline=preferred_channel_pipeline, + program_number=program_number, + service_descriptor=service_descriptor, + video_settings=video_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + preferred_channel_pipeline: Optional[str] = None, + program_number: Optional[int] = None, + service_descriptor: Optional['outputs.MultiplexProgramMultiplexProgramSettingsServiceDescriptor'] = None, + video_settings: Optional['outputs.MultiplexProgramMultiplexProgramSettingsVideoSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if preferred_channel_pipeline is None and 'preferredChannelPipeline' in kwargs: + preferred_channel_pipeline = kwargs['preferredChannelPipeline'] + if preferred_channel_pipeline is None: + raise TypeError("Missing 'preferred_channel_pipeline' argument") + if program_number is None and 'programNumber' in kwargs: + program_number = kwargs['programNumber'] + if program_number is None: + raise TypeError("Missing 'program_number' argument") + if service_descriptor is None and 'serviceDescriptor' in kwargs: + service_descriptor = kwargs['serviceDescriptor'] + if video_settings is None and 'videoSettings' in kwargs: + video_settings = kwargs['videoSettings'] + + _setter("preferred_channel_pipeline", preferred_channel_pipeline) + _setter("program_number", program_number) if service_descriptor is not None: - pulumi.set(__self__, "service_descriptor", service_descriptor) + _setter("service_descriptor", service_descriptor) if video_settings is not None: - pulumi.set(__self__, "video_settings", video_settings) + _setter("video_settings", video_settings) @property @pulumi.getter(name="preferredChannelPipeline") @@ -12117,8 +16466,29 @@ def __init__(__self__, *, :param str provider_name: Unique provider name. :param str service_name: Unique service name. """ - pulumi.set(__self__, "provider_name", provider_name) - pulumi.set(__self__, "service_name", service_name) + MultiplexProgramMultiplexProgramSettingsServiceDescriptor._configure( + lambda key, value: pulumi.set(__self__, key, value), + provider_name=provider_name, + service_name=service_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provider_name: Optional[str] = None, + service_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if provider_name is None: + raise TypeError("Missing 'provider_name' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + + _setter("provider_name", provider_name) + _setter("service_name", service_name) @property @pulumi.getter(name="providerName") @@ -12165,10 +16535,27 @@ def __init__(__self__, *, :param int constant_bitrate: Constant bitrate value. :param 'MultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsArgs' statmux_settings: Statmux settings. See Statmux Settings for more details. """ + MultiplexProgramMultiplexProgramSettingsVideoSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + constant_bitrate=constant_bitrate, + statmux_settings=statmux_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + constant_bitrate: Optional[int] = None, + statmux_settings: Optional['outputs.MultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if constant_bitrate is None and 'constantBitrate' in kwargs: + constant_bitrate = kwargs['constantBitrate'] + if statmux_settings is None and 'statmuxSettings' in kwargs: + statmux_settings = kwargs['statmuxSettings'] + if constant_bitrate is not None: - pulumi.set(__self__, "constant_bitrate", constant_bitrate) + _setter("constant_bitrate", constant_bitrate) if statmux_settings is not None: - pulumi.set(__self__, "statmux_settings", statmux_settings) + _setter("statmux_settings", statmux_settings) @property @pulumi.getter(name="constantBitrate") @@ -12217,12 +16604,31 @@ def __init__(__self__, *, :param int minimum_bitrate: Minimum bitrate. :param int priority: Priority value. """ + MultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_bitrate=maximum_bitrate, + minimum_bitrate=minimum_bitrate, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_bitrate: Optional[int] = None, + minimum_bitrate: Optional[int] = None, + priority: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_bitrate is None and 'maximumBitrate' in kwargs: + maximum_bitrate = kwargs['maximumBitrate'] + if minimum_bitrate is None and 'minimumBitrate' in kwargs: + minimum_bitrate = kwargs['minimumBitrate'] + if maximum_bitrate is not None: - pulumi.set(__self__, "maximum_bitrate", maximum_bitrate) + _setter("maximum_bitrate", maximum_bitrate) if minimum_bitrate is not None: - pulumi.set(__self__, "minimum_bitrate", minimum_bitrate) + _setter("minimum_bitrate", minimum_bitrate) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) @property @pulumi.getter(name="maximumBitrate") diff --git a/sdk/python/pulumi_aws/mediapackage/_inputs.py b/sdk/python/pulumi_aws/mediapackage/_inputs.py index 95e042bed53..6da2ad9bbad 100644 --- a/sdk/python/pulumi_aws/mediapackage/_inputs.py +++ b/sdk/python/pulumi_aws/mediapackage/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -21,8 +21,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ChannelHlsIngestIngestEndpointArgs']]] ingest_endpoints: A list of the ingest endpoints """ + ChannelHlsIngestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ingest_endpoints=ingest_endpoints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ingest_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelHlsIngestIngestEndpointArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ingest_endpoints is None and 'ingestEndpoints' in kwargs: + ingest_endpoints = kwargs['ingestEndpoints'] + if ingest_endpoints is not None: - pulumi.set(__self__, "ingest_endpoints", ingest_endpoints) + _setter("ingest_endpoints", ingest_endpoints) @property @pulumi.getter(name="ingestEndpoints") @@ -48,12 +61,27 @@ def __init__(__self__, *, :param pulumi.Input[str] url: The URL :param pulumi.Input[str] username: The username """ + ChannelHlsIngestIngestEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + url=url, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/mediapackage/channel.py b/sdk/python/pulumi_aws/mediapackage/channel.py index feb6f02c950..5d26177fb9d 100644 --- a/sdk/python/pulumi_aws/mediapackage/channel.py +++ b/sdk/python/pulumi_aws/mediapackage/channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,13 +25,32 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description of the channel :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "channel_id", channel_id) + ChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_id=channel_id, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_id is None and 'channelId' in kwargs: + channel_id = kwargs['channelId'] + if channel_id is None: + raise TypeError("Missing 'channel_id' argument") + + _setter("channel_id", channel_id) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="channelId") @@ -88,23 +107,50 @@ def __init__(__self__, *, :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. """ + _ChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + channel_id=channel_id, + description=description, + hls_ingests=hls_ingests, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + channel_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + hls_ingests: Optional[pulumi.Input[Sequence[pulumi.Input['ChannelHlsIngestArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_id is None and 'channelId' in kwargs: + channel_id = kwargs['channelId'] + if hls_ingests is None and 'hlsIngests' in kwargs: + hls_ingests = kwargs['hlsIngests'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if channel_id is not None: - pulumi.set(__self__, "channel_id", channel_id) + _setter("channel_id", channel_id) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if hls_ingests is not None: - pulumi.set(__self__, "hls_ingests", hls_ingests) + _setter("hls_ingests", hls_ingests) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -257,6 +303,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/mediapackage/outputs.py b/sdk/python/pulumi_aws/mediapackage/outputs.py index e076080fd1f..1aedc8daa5b 100644 --- a/sdk/python/pulumi_aws/mediapackage/outputs.py +++ b/sdk/python/pulumi_aws/mediapackage/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -39,8 +39,21 @@ def __init__(__self__, *, """ :param Sequence['ChannelHlsIngestIngestEndpointArgs'] ingest_endpoints: A list of the ingest endpoints """ + ChannelHlsIngest._configure( + lambda key, value: pulumi.set(__self__, key, value), + ingest_endpoints=ingest_endpoints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ingest_endpoints: Optional[Sequence['outputs.ChannelHlsIngestIngestEndpoint']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ingest_endpoints is None and 'ingestEndpoints' in kwargs: + ingest_endpoints = kwargs['ingestEndpoints'] + if ingest_endpoints is not None: - pulumi.set(__self__, "ingest_endpoints", ingest_endpoints) + _setter("ingest_endpoints", ingest_endpoints) @property @pulumi.getter(name="ingestEndpoints") @@ -62,12 +75,27 @@ def __init__(__self__, *, :param str url: The URL :param str username: The username """ + ChannelHlsIngestIngestEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + url=url, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + url: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/mediastore/container.py b/sdk/python/pulumi_aws/mediastore/container.py index 4da24a0a2dc..7029c25c270 100644 --- a/sdk/python/pulumi_aws/mediastore/container.py +++ b/sdk/python/pulumi_aws/mediastore/container.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ContainerArgs', 'Container'] @@ -21,10 +21,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the container. Must contain alphanumeric characters or underscores. :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. """ + ContainerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -67,19 +80,40 @@ def __init__(__self__, *, :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. """ + _ContainerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + endpoint=endpoint, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -214,6 +248,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContainerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/mediastore/container_policy.py b/sdk/python/pulumi_aws/mediastore/container_policy.py index 318ce894a3c..15ad4970aac 100644 --- a/sdk/python/pulumi_aws/mediastore/container_policy.py +++ b/sdk/python/pulumi_aws/mediastore/container_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ContainerPolicyArgs', 'ContainerPolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] container_name: The name of the container. :param pulumi.Input[str] policy: The contents of the policy. """ - pulumi.set(__self__, "container_name", container_name) - pulumi.set(__self__, "policy", policy) + ContainerPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is None: + raise TypeError("Missing 'container_name' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("container_name", container_name) + _setter("policy", policy) @property @pulumi.getter(name="containerName") @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] container_name: The name of the container. :param pulumi.Input[str] policy: The contents of the policy. """ + _ContainerPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_name=container_name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_name is None and 'containerName' in kwargs: + container_name = kwargs['containerName'] + if container_name is not None: - pulumi.set(__self__, "container_name", container_name) + _setter("container_name", container_name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="containerName") @@ -198,6 +232,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContainerPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/memorydb/_inputs.py b/sdk/python/pulumi_aws/memorydb/_inputs.py index 86edcc4c74c..d0405da71e8 100644 --- a/sdk/python/pulumi_aws/memorydb/_inputs.py +++ b/sdk/python/pulumi_aws/memorydb/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,10 +28,23 @@ def __init__(__self__, *, :param pulumi.Input[str] address: DNS hostname of the node. :param pulumi.Input[int] port: The port number on which each of the nodes accepts connections. Defaults to `6379`. """ + ClusterClusterEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -71,14 +84,33 @@ def __init__(__self__, *, :param pulumi.Input[int] num_nodes: Number of individual nodes in this shard. :param pulumi.Input[str] slots: Keyspace for this shard. Example: `0-16383`. """ + ClusterShardArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + nodes=nodes, + num_nodes=num_nodes, + slots=slots, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + nodes: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterShardNodeArgs']]]] = None, + num_nodes: Optional[pulumi.Input[int]] = None, + slots: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if num_nodes is None and 'numNodes' in kwargs: + num_nodes = kwargs['numNodes'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nodes is not None: - pulumi.set(__self__, "nodes", nodes) + _setter("nodes", nodes) if num_nodes is not None: - pulumi.set(__self__, "num_nodes", num_nodes) + _setter("num_nodes", num_nodes) if slots is not None: - pulumi.set(__self__, "slots", slots) + _setter("slots", slots) @property @pulumi.getter @@ -141,14 +173,35 @@ def __init__(__self__, *, :param pulumi.Input[str] create_time: The date and time when the node was created. Example: `2022-01-01T21:00:00Z`. :param pulumi.Input[str] name: Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. """ + ClusterShardNodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + create_time=create_time, + endpoints=endpoints, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterShardNodeEndpointArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="availabilityZone") @@ -205,10 +258,23 @@ def __init__(__self__, *, :param pulumi.Input[str] address: DNS hostname of the node. :param pulumi.Input[int] port: The port number on which each of the nodes accepts connections. Defaults to `6379`. """ + ClusterShardNodeEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -244,8 +310,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the parameter. :param pulumi.Input[str] value: The value of the parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -303,32 +386,87 @@ def __init__(__self__, *, :param pulumi.Input[str] topic_arn: ARN of the SNS topic to which cluster notifications are sent. :param pulumi.Input[str] vpc_id: The VPC in which the cluster exists. """ + SnapshotClusterConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + engine_version=engine_version, + maintenance_window=maintenance_window, + name=name, + node_type=node_type, + num_shards=num_shards, + parameter_group_name=parameter_group_name, + port=port, + snapshot_retention_limit=snapshot_retention_limit, + snapshot_window=snapshot_window, + subnet_group_name=subnet_group_name, + topic_arn=topic_arn, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + num_shards: Optional[pulumi.Input[int]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + snapshot_retention_limit: Optional[pulumi.Input[int]] = None, + snapshot_window: Optional[pulumi.Input[str]] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if num_shards is None and 'numShards' in kwargs: + num_shards = kwargs['numShards'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if snapshot_retention_limit is None and 'snapshotRetentionLimit' in kwargs: + snapshot_retention_limit = kwargs['snapshotRetentionLimit'] + if snapshot_window is None and 'snapshotWindow' in kwargs: + snapshot_window = kwargs['snapshotWindow'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if num_shards is not None: - pulumi.set(__self__, "num_shards", num_shards) + _setter("num_shards", num_shards) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if snapshot_retention_limit is not None: - pulumi.set(__self__, "snapshot_retention_limit", snapshot_retention_limit) + _setter("snapshot_retention_limit", snapshot_retention_limit) if snapshot_window is not None: - pulumi.set(__self__, "snapshot_window", snapshot_window) + _setter("snapshot_window", snapshot_window) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -498,10 +636,31 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Indicates whether the user requires a password to authenticate. Must be set to `password`. :param pulumi.Input[int] password_count: The number of passwords belonging to the user. """ - pulumi.set(__self__, "passwords", passwords) - pulumi.set(__self__, "type", type) + UserAuthenticationModeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + passwords=passwords, + type=type, + password_count=password_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + passwords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + password_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if passwords is None: + raise TypeError("Missing 'passwords' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if password_count is None and 'passwordCount' in kwargs: + password_count = kwargs['passwordCount'] + + _setter("passwords", passwords) + _setter("type", type) if password_count is not None: - pulumi.set(__self__, "password_count", password_count) + _setter("password_count", password_count) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/memorydb/acl.py b/sdk/python/pulumi_aws/memorydb/acl.py index 921c77b0d61..79abb081094 100644 --- a/sdk/python/pulumi_aws/memorydb/acl.py +++ b/sdk/python/pulumi_aws/memorydb/acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AclArgs', 'Acl'] @@ -25,14 +25,35 @@ def __init__(__self__, *, :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[Sequence[pulumi.Input[str]]] user_names: Set of MemoryDB user names to be included in this ACL. """ + AclArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + name_prefix=name_prefix, + tags=tags, + user_names=user_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if user_names is None and 'userNames' in kwargs: + user_names = kwargs['userNames'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_names is not None: - pulumi.set(__self__, "user_names", user_names) + _setter("user_names", user_names) @property @pulumi.getter @@ -103,23 +124,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input[str]]] user_names: Set of MemoryDB user names to be included in this ACL. """ + _AclState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + minimum_engine_version=minimum_engine_version, + name=name, + name_prefix=name_prefix, + tags=tags, + tags_all=tags_all, + user_names=user_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + minimum_engine_version: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minimum_engine_version is None and 'minimumEngineVersion' in kwargs: + minimum_engine_version = kwargs['minimumEngineVersion'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_names is None and 'userNames' in kwargs: + user_names = kwargs['userNames'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if minimum_engine_version is not None: - pulumi.set(__self__, "minimum_engine_version", minimum_engine_version) + _setter("minimum_engine_version", minimum_engine_version) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_names is not None: - pulumi.set(__self__, "user_names", user_names) + _setter("user_names", user_names) @property @pulumi.getter @@ -292,6 +344,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AclArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/memorydb/cluster.py b/sdk/python/pulumi_aws/memorydb/cluster.py index c4345d2f88b..b19a00e4588 100644 --- a/sdk/python/pulumi_aws/memorydb/cluster.py +++ b/sdk/python/pulumi_aws/memorydb/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -69,52 +69,153 @@ def __init__(__self__, *, :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[bool] tls_enabled: A flag to enable in-transit encryption on the cluster. When set to `false`, the `acl_name` must be `open-access`. Defaults to `true`. """ - pulumi.set(__self__, "acl_name", acl_name) - pulumi.set(__self__, "node_type", node_type) + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_name=acl_name, + node_type=node_type, + auto_minor_version_upgrade=auto_minor_version_upgrade, + data_tiering=data_tiering, + description=description, + engine_version=engine_version, + final_snapshot_name=final_snapshot_name, + kms_key_arn=kms_key_arn, + maintenance_window=maintenance_window, + name=name, + name_prefix=name_prefix, + num_replicas_per_shard=num_replicas_per_shard, + num_shards=num_shards, + parameter_group_name=parameter_group_name, + port=port, + security_group_ids=security_group_ids, + snapshot_arns=snapshot_arns, + snapshot_name=snapshot_name, + snapshot_retention_limit=snapshot_retention_limit, + snapshot_window=snapshot_window, + sns_topic_arn=sns_topic_arn, + subnet_group_name=subnet_group_name, + tags=tags, + tls_enabled=tls_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + data_tiering: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + num_replicas_per_shard: Optional[pulumi.Input[int]] = None, + num_shards: Optional[pulumi.Input[int]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + snapshot_retention_limit: Optional[pulumi.Input[int]] = None, + snapshot_window: Optional[pulumi.Input[str]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tls_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_name is None and 'aclName' in kwargs: + acl_name = kwargs['aclName'] + if acl_name is None: + raise TypeError("Missing 'acl_name' argument") + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if node_type is None: + raise TypeError("Missing 'node_type' argument") + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if data_tiering is None and 'dataTiering' in kwargs: + data_tiering = kwargs['dataTiering'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_name is None and 'finalSnapshotName' in kwargs: + final_snapshot_name = kwargs['finalSnapshotName'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if num_replicas_per_shard is None and 'numReplicasPerShard' in kwargs: + num_replicas_per_shard = kwargs['numReplicasPerShard'] + if num_shards is None and 'numShards' in kwargs: + num_shards = kwargs['numShards'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if snapshot_arns is None and 'snapshotArns' in kwargs: + snapshot_arns = kwargs['snapshotArns'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if snapshot_retention_limit is None and 'snapshotRetentionLimit' in kwargs: + snapshot_retention_limit = kwargs['snapshotRetentionLimit'] + if snapshot_window is None and 'snapshotWindow' in kwargs: + snapshot_window = kwargs['snapshotWindow'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if tls_enabled is None and 'tlsEnabled' in kwargs: + tls_enabled = kwargs['tlsEnabled'] + + _setter("acl_name", acl_name) + _setter("node_type", node_type) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if data_tiering is not None: - pulumi.set(__self__, "data_tiering", data_tiering) + _setter("data_tiering", data_tiering) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_name is not None: - pulumi.set(__self__, "final_snapshot_name", final_snapshot_name) + _setter("final_snapshot_name", final_snapshot_name) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if num_replicas_per_shard is not None: - pulumi.set(__self__, "num_replicas_per_shard", num_replicas_per_shard) + _setter("num_replicas_per_shard", num_replicas_per_shard) if num_shards is not None: - pulumi.set(__self__, "num_shards", num_shards) + _setter("num_shards", num_shards) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if snapshot_arns is not None: - pulumi.set(__self__, "snapshot_arns", snapshot_arns) + _setter("snapshot_arns", snapshot_arns) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) if snapshot_retention_limit is not None: - pulumi.set(__self__, "snapshot_retention_limit", snapshot_retention_limit) + _setter("snapshot_retention_limit", snapshot_retention_limit) if snapshot_window is not None: - pulumi.set(__self__, "snapshot_window", snapshot_window) + _setter("snapshot_window", snapshot_window) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tls_enabled is not None: - pulumi.set(__self__, "tls_enabled", tls_enabled) + _setter("tls_enabled", tls_enabled) @property @pulumi.getter(name="aclName") @@ -472,67 +573,180 @@ def __init__(__self__, *, :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[bool] tls_enabled: A flag to enable in-transit encryption on the cluster. When set to `false`, the `acl_name` must be `open-access`. Defaults to `true`. """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl_name=acl_name, + arn=arn, + auto_minor_version_upgrade=auto_minor_version_upgrade, + cluster_endpoints=cluster_endpoints, + data_tiering=data_tiering, + description=description, + engine_patch_version=engine_patch_version, + engine_version=engine_version, + final_snapshot_name=final_snapshot_name, + kms_key_arn=kms_key_arn, + maintenance_window=maintenance_window, + name=name, + name_prefix=name_prefix, + node_type=node_type, + num_replicas_per_shard=num_replicas_per_shard, + num_shards=num_shards, + parameter_group_name=parameter_group_name, + port=port, + security_group_ids=security_group_ids, + shards=shards, + snapshot_arns=snapshot_arns, + snapshot_name=snapshot_name, + snapshot_retention_limit=snapshot_retention_limit, + snapshot_window=snapshot_window, + sns_topic_arn=sns_topic_arn, + subnet_group_name=subnet_group_name, + tags=tags, + tags_all=tags_all, + tls_enabled=tls_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl_name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + cluster_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterClusterEndpointArgs']]]] = None, + data_tiering: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_patch_version: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + num_replicas_per_shard: Optional[pulumi.Input[int]] = None, + num_shards: Optional[pulumi.Input[int]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + shards: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterShardArgs']]]] = None, + snapshot_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + snapshot_retention_limit: Optional[pulumi.Input[int]] = None, + snapshot_window: Optional[pulumi.Input[str]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tls_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acl_name is None and 'aclName' in kwargs: + acl_name = kwargs['aclName'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if cluster_endpoints is None and 'clusterEndpoints' in kwargs: + cluster_endpoints = kwargs['clusterEndpoints'] + if data_tiering is None and 'dataTiering' in kwargs: + data_tiering = kwargs['dataTiering'] + if engine_patch_version is None and 'enginePatchVersion' in kwargs: + engine_patch_version = kwargs['enginePatchVersion'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_name is None and 'finalSnapshotName' in kwargs: + final_snapshot_name = kwargs['finalSnapshotName'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if num_replicas_per_shard is None and 'numReplicasPerShard' in kwargs: + num_replicas_per_shard = kwargs['numReplicasPerShard'] + if num_shards is None and 'numShards' in kwargs: + num_shards = kwargs['numShards'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if snapshot_arns is None and 'snapshotArns' in kwargs: + snapshot_arns = kwargs['snapshotArns'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if snapshot_retention_limit is None and 'snapshotRetentionLimit' in kwargs: + snapshot_retention_limit = kwargs['snapshotRetentionLimit'] + if snapshot_window is None and 'snapshotWindow' in kwargs: + snapshot_window = kwargs['snapshotWindow'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tls_enabled is None and 'tlsEnabled' in kwargs: + tls_enabled = kwargs['tlsEnabled'] + if acl_name is not None: - pulumi.set(__self__, "acl_name", acl_name) + _setter("acl_name", acl_name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if cluster_endpoints is not None: - pulumi.set(__self__, "cluster_endpoints", cluster_endpoints) + _setter("cluster_endpoints", cluster_endpoints) if data_tiering is not None: - pulumi.set(__self__, "data_tiering", data_tiering) + _setter("data_tiering", data_tiering) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if engine_patch_version is not None: - pulumi.set(__self__, "engine_patch_version", engine_patch_version) + _setter("engine_patch_version", engine_patch_version) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_name is not None: - pulumi.set(__self__, "final_snapshot_name", final_snapshot_name) + _setter("final_snapshot_name", final_snapshot_name) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if num_replicas_per_shard is not None: - pulumi.set(__self__, "num_replicas_per_shard", num_replicas_per_shard) + _setter("num_replicas_per_shard", num_replicas_per_shard) if num_shards is not None: - pulumi.set(__self__, "num_shards", num_shards) + _setter("num_shards", num_shards) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if shards is not None: - pulumi.set(__self__, "shards", shards) + _setter("shards", shards) if snapshot_arns is not None: - pulumi.set(__self__, "snapshot_arns", snapshot_arns) + _setter("snapshot_arns", snapshot_arns) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) if snapshot_retention_limit is not None: - pulumi.set(__self__, "snapshot_retention_limit", snapshot_retention_limit) + _setter("snapshot_retention_limit", snapshot_retention_limit) if snapshot_window is not None: - pulumi.set(__self__, "snapshot_window", snapshot_window) + _setter("snapshot_window", snapshot_window) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tls_enabled is not None: - pulumi.set(__self__, "tls_enabled", tls_enabled) + _setter("tls_enabled", tls_enabled) @property @pulumi.getter(name="aclName") @@ -1016,6 +1230,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/memorydb/get_acl.py b/sdk/python/pulumi_aws/memorydb/get_acl.py index b9201f2e909..670c23c6b08 100644 --- a/sdk/python/pulumi_aws/memorydb/get_acl.py +++ b/sdk/python/pulumi_aws/memorydb/get_acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/memorydb/get_cluster.py b/sdk/python/pulumi_aws/memorydb/get_cluster.py index c8f4d5faf42..51e6e06be6c 100644 --- a/sdk/python/pulumi_aws/memorydb/get_cluster.py +++ b/sdk/python/pulumi_aws/memorydb/get_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/memorydb/get_parameter_group.py b/sdk/python/pulumi_aws/memorydb/get_parameter_group.py index ad1f02f60c9..99dcf2f4f4b 100644 --- a/sdk/python/pulumi_aws/memorydb/get_parameter_group.py +++ b/sdk/python/pulumi_aws/memorydb/get_parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/memorydb/get_snapshot.py b/sdk/python/pulumi_aws/memorydb/get_snapshot.py index 9dbfa8ca8ca..1f4ddfcf350 100644 --- a/sdk/python/pulumi_aws/memorydb/get_snapshot.py +++ b/sdk/python/pulumi_aws/memorydb/get_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/memorydb/get_subnet_group.py b/sdk/python/pulumi_aws/memorydb/get_subnet_group.py index 7f9f305163c..80b89a53653 100644 --- a/sdk/python/pulumi_aws/memorydb/get_subnet_group.py +++ b/sdk/python/pulumi_aws/memorydb/get_subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/memorydb/get_user.py b/sdk/python/pulumi_aws/memorydb/get_user.py index 6f35a6854c0..a864141aeee 100644 --- a/sdk/python/pulumi_aws/memorydb/get_user.py +++ b/sdk/python/pulumi_aws/memorydb/get_user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/memorydb/outputs.py b/sdk/python/pulumi_aws/memorydb/outputs.py index 7babc7e8768..e38ec06bbfd 100644 --- a/sdk/python/pulumi_aws/memorydb/outputs.py +++ b/sdk/python/pulumi_aws/memorydb/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -36,10 +36,23 @@ def __init__(__self__, *, :param str address: DNS hostname of the node. :param int port: The port number on which each of the nodes accepts connections. Defaults to `6379`. """ + ClusterClusterEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -88,14 +101,33 @@ def __init__(__self__, *, :param int num_nodes: Number of individual nodes in this shard. :param str slots: Keyspace for this shard. Example: `0-16383`. """ + ClusterShard._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + nodes=nodes, + num_nodes=num_nodes, + slots=slots, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + nodes: Optional[Sequence['outputs.ClusterShardNode']] = None, + num_nodes: Optional[int] = None, + slots: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if num_nodes is None and 'numNodes' in kwargs: + num_nodes = kwargs['numNodes'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nodes is not None: - pulumi.set(__self__, "nodes", nodes) + _setter("nodes", nodes) if num_nodes is not None: - pulumi.set(__self__, "num_nodes", num_nodes) + _setter("num_nodes", num_nodes) if slots is not None: - pulumi.set(__self__, "slots", slots) + _setter("slots", slots) @property @pulumi.getter @@ -161,14 +193,35 @@ def __init__(__self__, *, :param str create_time: The date and time when the node was created. Example: `2022-01-01T21:00:00Z`. :param str name: Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. """ + ClusterShardNode._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + create_time=create_time, + endpoints=endpoints, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + create_time: Optional[str] = None, + endpoints: Optional[Sequence['outputs.ClusterShardNodeEndpoint']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="availabilityZone") @@ -209,10 +262,23 @@ def __init__(__self__, *, :param str address: DNS hostname of the node. :param int port: The port number on which each of the nodes accepts connections. Defaults to `6379`. """ + ClusterShardNodeEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -240,8 +306,25 @@ def __init__(__self__, *, :param str name: The name of the parameter. :param str value: The value of the parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -326,32 +409,87 @@ def __init__(__self__, *, :param str topic_arn: ARN of the SNS topic to which cluster notifications are sent. :param str vpc_id: The VPC in which the cluster exists. """ + SnapshotClusterConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + engine_version=engine_version, + maintenance_window=maintenance_window, + name=name, + node_type=node_type, + num_shards=num_shards, + parameter_group_name=parameter_group_name, + port=port, + snapshot_retention_limit=snapshot_retention_limit, + snapshot_window=snapshot_window, + subnet_group_name=subnet_group_name, + topic_arn=topic_arn, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[str] = None, + engine_version: Optional[str] = None, + maintenance_window: Optional[str] = None, + name: Optional[str] = None, + node_type: Optional[str] = None, + num_shards: Optional[int] = None, + parameter_group_name: Optional[str] = None, + port: Optional[int] = None, + snapshot_retention_limit: Optional[int] = None, + snapshot_window: Optional[str] = None, + subnet_group_name: Optional[str] = None, + topic_arn: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if num_shards is None and 'numShards' in kwargs: + num_shards = kwargs['numShards'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if snapshot_retention_limit is None and 'snapshotRetentionLimit' in kwargs: + snapshot_retention_limit = kwargs['snapshotRetentionLimit'] + if snapshot_window is None and 'snapshotWindow' in kwargs: + snapshot_window = kwargs['snapshotWindow'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if num_shards is not None: - pulumi.set(__self__, "num_shards", num_shards) + _setter("num_shards", num_shards) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if snapshot_retention_limit is not None: - pulumi.set(__self__, "snapshot_retention_limit", snapshot_retention_limit) + _setter("snapshot_retention_limit", snapshot_retention_limit) if snapshot_window is not None: - pulumi.set(__self__, "snapshot_window", snapshot_window) + _setter("snapshot_window", snapshot_window) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -486,10 +624,31 @@ def __init__(__self__, *, :param str type: Indicates whether the user requires a password to authenticate. Must be set to `password`. :param int password_count: The number of passwords belonging to the user. """ - pulumi.set(__self__, "passwords", passwords) - pulumi.set(__self__, "type", type) + UserAuthenticationMode._configure( + lambda key, value: pulumi.set(__self__, key, value), + passwords=passwords, + type=type, + password_count=password_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + passwords: Optional[Sequence[str]] = None, + type: Optional[str] = None, + password_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if passwords is None: + raise TypeError("Missing 'passwords' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if password_count is None and 'passwordCount' in kwargs: + password_count = kwargs['passwordCount'] + + _setter("passwords", passwords) + _setter("type", type) if password_count is not None: - pulumi.set(__self__, "password_count", password_count) + _setter("password_count", password_count) @property @pulumi.getter @@ -525,8 +684,25 @@ def __init__(__self__, *, :param str address: DNS hostname of the node. :param int port: Port number that this node is listening on. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "port", port) + GetClusterClusterEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("address", address) + _setter("port", port) @property @pulumi.getter @@ -558,10 +734,37 @@ def __init__(__self__, *, :param int num_nodes: Number of individual nodes in this shard. :param str slots: Keyspace for this shard. Example: `0-16383`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "nodes", nodes) - pulumi.set(__self__, "num_nodes", num_nodes) - pulumi.set(__self__, "slots", slots) + GetClusterShardResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + nodes=nodes, + num_nodes=num_nodes, + slots=slots, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + nodes: Optional[Sequence['outputs.GetClusterShardNodeResult']] = None, + num_nodes: Optional[int] = None, + slots: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if nodes is None: + raise TypeError("Missing 'nodes' argument") + if num_nodes is None and 'numNodes' in kwargs: + num_nodes = kwargs['numNodes'] + if num_nodes is None: + raise TypeError("Missing 'num_nodes' argument") + if slots is None: + raise TypeError("Missing 'slots' argument") + + _setter("name", name) + _setter("nodes", nodes) + _setter("num_nodes", num_nodes) + _setter("slots", slots) @property @pulumi.getter @@ -608,10 +811,39 @@ def __init__(__self__, *, :param str create_time: The date and time when the node was created. Example: `2022-01-01T21:00:00Z`. :param str name: Name of the cluster. """ - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "create_time", create_time) - pulumi.set(__self__, "endpoints", endpoints) - pulumi.set(__self__, "name", name) + GetClusterShardNodeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + create_time=create_time, + endpoints=endpoints, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + create_time: Optional[str] = None, + endpoints: Optional[Sequence['outputs.GetClusterShardNodeEndpointResult']] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if create_time is None: + raise TypeError("Missing 'create_time' argument") + if endpoints is None: + raise TypeError("Missing 'endpoints' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("availability_zone", availability_zone) + _setter("create_time", create_time) + _setter("endpoints", endpoints) + _setter("name", name) @property @pulumi.getter(name="availabilityZone") @@ -652,8 +884,25 @@ def __init__(__self__, *, :param str address: DNS hostname of the node. :param int port: Port number that this node is listening on. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "port", port) + GetClusterShardNodeEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("address", address) + _setter("port", port) @property @pulumi.getter @@ -681,8 +930,25 @@ def __init__(__self__, *, :param str name: Name of the parameter group. :param str value: Value of the parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + GetParameterGroupParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -732,19 +998,100 @@ def __init__(__self__, *, :param str topic_arn: ARN of the SNS topic to which cluster notifications are sent. :param str vpc_id: The VPC in which the cluster exists. """ - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "engine_version", engine_version) - pulumi.set(__self__, "maintenance_window", maintenance_window) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "node_type", node_type) - pulumi.set(__self__, "num_shards", num_shards) - pulumi.set(__self__, "parameter_group_name", parameter_group_name) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "snapshot_retention_limit", snapshot_retention_limit) - pulumi.set(__self__, "snapshot_window", snapshot_window) - pulumi.set(__self__, "subnet_group_name", subnet_group_name) - pulumi.set(__self__, "topic_arn", topic_arn) - pulumi.set(__self__, "vpc_id", vpc_id) + GetSnapshotClusterConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + engine_version=engine_version, + maintenance_window=maintenance_window, + name=name, + node_type=node_type, + num_shards=num_shards, + parameter_group_name=parameter_group_name, + port=port, + snapshot_retention_limit=snapshot_retention_limit, + snapshot_window=snapshot_window, + subnet_group_name=subnet_group_name, + topic_arn=topic_arn, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[str] = None, + engine_version: Optional[str] = None, + maintenance_window: Optional[str] = None, + name: Optional[str] = None, + node_type: Optional[str] = None, + num_shards: Optional[int] = None, + parameter_group_name: Optional[str] = None, + port: Optional[int] = None, + snapshot_retention_limit: Optional[int] = None, + snapshot_window: Optional[str] = None, + subnet_group_name: Optional[str] = None, + topic_arn: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is None: + raise TypeError("Missing 'description' argument") + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version is None: + raise TypeError("Missing 'engine_version' argument") + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if maintenance_window is None: + raise TypeError("Missing 'maintenance_window' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if node_type is None: + raise TypeError("Missing 'node_type' argument") + if num_shards is None and 'numShards' in kwargs: + num_shards = kwargs['numShards'] + if num_shards is None: + raise TypeError("Missing 'num_shards' argument") + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if parameter_group_name is None: + raise TypeError("Missing 'parameter_group_name' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if snapshot_retention_limit is None and 'snapshotRetentionLimit' in kwargs: + snapshot_retention_limit = kwargs['snapshotRetentionLimit'] + if snapshot_retention_limit is None: + raise TypeError("Missing 'snapshot_retention_limit' argument") + if snapshot_window is None and 'snapshotWindow' in kwargs: + snapshot_window = kwargs['snapshotWindow'] + if snapshot_window is None: + raise TypeError("Missing 'snapshot_window' argument") + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if subnet_group_name is None: + raise TypeError("Missing 'subnet_group_name' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("description", description) + _setter("engine_version", engine_version) + _setter("maintenance_window", maintenance_window) + _setter("name", name) + _setter("node_type", node_type) + _setter("num_shards", num_shards) + _setter("parameter_group_name", parameter_group_name) + _setter("port", port) + _setter("snapshot_retention_limit", snapshot_retention_limit) + _setter("snapshot_window", snapshot_window) + _setter("subnet_group_name", subnet_group_name) + _setter("topic_arn", topic_arn) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -860,8 +1207,27 @@ def __init__(__self__, *, :param int password_count: The number of passwords belonging to the user. :param str type: Whether the user requires a password to authenticate. """ - pulumi.set(__self__, "password_count", password_count) - pulumi.set(__self__, "type", type) + GetUserAuthenticationModeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + password_count=password_count, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password_count: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password_count is None and 'passwordCount' in kwargs: + password_count = kwargs['passwordCount'] + if password_count is None: + raise TypeError("Missing 'password_count' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("password_count", password_count) + _setter("type", type) @property @pulumi.getter(name="passwordCount") diff --git a/sdk/python/pulumi_aws/memorydb/parameter_group.py b/sdk/python/pulumi_aws/memorydb/parameter_group.py index 5dc9c11db6d..127b5881298 100644 --- a/sdk/python/pulumi_aws/memorydb/parameter_group.py +++ b/sdk/python/pulumi_aws/memorydb/parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,17 +33,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]] parameters: Set of MemoryDB parameters to apply. Any parameters not specified will fall back to their family defaults. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "family", family) + ParameterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + family=family, + description=description, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family is None: + raise TypeError("Missing 'family' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("family", family) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -144,25 +169,54 @@ def __init__(__self__, *, :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. """ + _ParameterGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + family=family, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if family is not None: - pulumi.set(__self__, "family", family) + _setter("family", family) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -359,6 +413,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ParameterGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/memorydb/snapshot.py b/sdk/python/pulumi_aws/memorydb/snapshot.py index 2b4e128a1c7..6f856f626df 100644 --- a/sdk/python/pulumi_aws/memorydb/snapshot.py +++ b/sdk/python/pulumi_aws/memorydb/snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "cluster_name", cluster_name) + SnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_name=cluster_name, + kms_key_arn=kms_key_arn, + name=name, + name_prefix=name_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_name is None: + raise TypeError("Missing 'cluster_name' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("cluster_name", cluster_name) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterName") @@ -124,27 +151,64 @@ def __init__(__self__, *, :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. """ + _SnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cluster_configurations=cluster_configurations, + cluster_name=cluster_name, + kms_key_arn=kms_key_arn, + name=name, + name_prefix=name_prefix, + source=source, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cluster_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['SnapshotClusterConfigurationArgs']]]] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_configurations is None and 'clusterConfigurations' in kwargs: + cluster_configurations = kwargs['clusterConfigurations'] + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_configurations is not None: - pulumi.set(__self__, "cluster_configurations", cluster_configurations) + _setter("cluster_configurations", cluster_configurations) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -337,6 +401,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/memorydb/subnet_group.py b/sdk/python/pulumi_aws/memorydb/subnet_group.py index f63ffc0e6dd..8f2369fa0d0 100644 --- a/sdk/python/pulumi_aws/memorydb/subnet_group.py +++ b/sdk/python/pulumi_aws/memorydb/subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SubnetGroupArgs', 'SubnetGroup'] @@ -29,15 +29,40 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + SubnetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + description=description, + name=name, + name_prefix=name_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("subnet_ids", subnet_ids) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="subnetIds") @@ -126,25 +151,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The VPC in which the subnet group exists. """ + _SubnetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + name_prefix=name_prefix, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -339,6 +397,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SubnetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/memorydb/user.py b/sdk/python/pulumi_aws/memorydb/user.py index 33444d79520..f3211d7d740 100644 --- a/sdk/python/pulumi_aws/memorydb/user.py +++ b/sdk/python/pulumi_aws/memorydb/user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,11 +29,40 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "access_string", access_string) - pulumi.set(__self__, "authentication_mode", authentication_mode) - pulumi.set(__self__, "user_name", user_name) + UserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_string=access_string, + authentication_mode=authentication_mode, + user_name=user_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_string: Optional[pulumi.Input[str]] = None, + authentication_mode: Optional[pulumi.Input['UserAuthenticationModeArgs']] = None, + user_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_string is None and 'accessString' in kwargs: + access_string = kwargs['accessString'] + if access_string is None: + raise TypeError("Missing 'access_string' argument") + if authentication_mode is None and 'authenticationMode' in kwargs: + authentication_mode = kwargs['authenticationMode'] + if authentication_mode is None: + raise TypeError("Missing 'authentication_mode' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + + _setter("access_string", access_string) + _setter("authentication_mode", authentication_mode) + _setter("user_name", user_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="accessString") @@ -108,23 +137,56 @@ def __init__(__self__, *, The following arguments are optional: """ + _UserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_string=access_string, + arn=arn, + authentication_mode=authentication_mode, + minimum_engine_version=minimum_engine_version, + tags=tags, + tags_all=tags_all, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_string: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + authentication_mode: Optional[pulumi.Input['UserAuthenticationModeArgs']] = None, + minimum_engine_version: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_string is None and 'accessString' in kwargs: + access_string = kwargs['accessString'] + if authentication_mode is None and 'authenticationMode' in kwargs: + authentication_mode = kwargs['authenticationMode'] + if minimum_engine_version is None and 'minimumEngineVersion' in kwargs: + minimum_engine_version = kwargs['minimumEngineVersion'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if access_string is not None: - pulumi.set(__self__, "access_string", access_string) + _setter("access_string", access_string) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_mode is not None: - pulumi.set(__self__, "authentication_mode", authentication_mode) + _setter("authentication_mode", authentication_mode) if minimum_engine_version is not None: - pulumi.set(__self__, "minimum_engine_version", minimum_engine_version) + _setter("minimum_engine_version", minimum_engine_version) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter(name="accessString") @@ -315,6 +377,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -336,6 +402,7 @@ def _internal_init(__self__, if access_string is None and not opts.urn: raise TypeError("Missing required property 'access_string'") __props__.__dict__["access_string"] = access_string + authentication_mode = _utilities.configure(authentication_mode, UserAuthenticationModeArgs, True) if authentication_mode is None and not opts.urn: raise TypeError("Missing required property 'authentication_mode'") __props__.__dict__["authentication_mode"] = authentication_mode diff --git a/sdk/python/pulumi_aws/mq/_inputs.py b/sdk/python/pulumi_aws/mq/_inputs.py index 3b40a92f46a..c71d43a8aca 100644 --- a/sdk/python/pulumi_aws/mq/_inputs.py +++ b/sdk/python/pulumi_aws/mq/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,10 +28,23 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The Configuration ID. :param pulumi.Input[int] revision: Revision of the Configuration. """ + BrokerConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + revision=revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + revision: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if revision is not None: - pulumi.set(__self__, "revision", revision) + _setter("revision", revision) @property @pulumi.getter @@ -67,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_id: Amazon Resource Name (ARN) of Key Management Service (KMS) Customer Master Key (CMK) to use for encryption at rest. Requires setting `use_aws_owned_key` to `false`. To perform drift detection when AWS-managed CMKs or customer-managed CMKs are in use, this value must be configured. :param pulumi.Input[bool] use_aws_owned_key: Whether to enable an AWS-owned KMS CMK that is not in your account. Defaults to `true`. Setting to `false` without configuring `kms_key_id` will create an AWS-managed CMK aliased to `aws/mq` in your account. """ + BrokerEncryptionOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + use_aws_owned_key=use_aws_owned_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + use_aws_owned_key: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if use_aws_owned_key is None and 'useAwsOwnedKey' in kwargs: + use_aws_owned_key = kwargs['useAwsOwnedKey'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if use_aws_owned_key is not None: - pulumi.set(__self__, "use_aws_owned_key", use_aws_owned_key) + _setter("use_aws_owned_key", use_aws_owned_key) @property @pulumi.getter(name="kmsKeyId") @@ -103,12 +133,31 @@ def __init__(__self__, *, console_url: Optional[pulumi.Input[str]] = None, endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, ip_address: Optional[pulumi.Input[str]] = None): + BrokerInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + console_url=console_url, + endpoints=endpoints, + ip_address=ip_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + console_url: Optional[pulumi.Input[str]] = None, + endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if console_url is None and 'consoleUrl' in kwargs: + console_url = kwargs['consoleUrl'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if console_url is not None: - pulumi.set(__self__, "console_url", console_url) + _setter("console_url", console_url) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) @property @pulumi.getter(name="consoleUrl") @@ -165,28 +214,79 @@ def __init__(__self__, *, :param pulumi.Input[str] user_search_matching: Search criteria for users. :param pulumi.Input[bool] user_search_subtree: Whether the directory search scope is the entire sub-tree. """ + BrokerLdapServerMetadataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hosts=hosts, + role_base=role_base, + role_name=role_name, + role_search_matching=role_search_matching, + role_search_subtree=role_search_subtree, + service_account_password=service_account_password, + service_account_username=service_account_username, + user_base=user_base, + user_role_name=user_role_name, + user_search_matching=user_search_matching, + user_search_subtree=user_search_subtree, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role_base: Optional[pulumi.Input[str]] = None, + role_name: Optional[pulumi.Input[str]] = None, + role_search_matching: Optional[pulumi.Input[str]] = None, + role_search_subtree: Optional[pulumi.Input[bool]] = None, + service_account_password: Optional[pulumi.Input[str]] = None, + service_account_username: Optional[pulumi.Input[str]] = None, + user_base: Optional[pulumi.Input[str]] = None, + user_role_name: Optional[pulumi.Input[str]] = None, + user_search_matching: Optional[pulumi.Input[str]] = None, + user_search_subtree: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_base is None and 'roleBase' in kwargs: + role_base = kwargs['roleBase'] + if role_name is None and 'roleName' in kwargs: + role_name = kwargs['roleName'] + if role_search_matching is None and 'roleSearchMatching' in kwargs: + role_search_matching = kwargs['roleSearchMatching'] + if role_search_subtree is None and 'roleSearchSubtree' in kwargs: + role_search_subtree = kwargs['roleSearchSubtree'] + if service_account_password is None and 'serviceAccountPassword' in kwargs: + service_account_password = kwargs['serviceAccountPassword'] + if service_account_username is None and 'serviceAccountUsername' in kwargs: + service_account_username = kwargs['serviceAccountUsername'] + if user_base is None and 'userBase' in kwargs: + user_base = kwargs['userBase'] + if user_role_name is None and 'userRoleName' in kwargs: + user_role_name = kwargs['userRoleName'] + if user_search_matching is None and 'userSearchMatching' in kwargs: + user_search_matching = kwargs['userSearchMatching'] + if user_search_subtree is None and 'userSearchSubtree' in kwargs: + user_search_subtree = kwargs['userSearchSubtree'] + if hosts is not None: - pulumi.set(__self__, "hosts", hosts) + _setter("hosts", hosts) if role_base is not None: - pulumi.set(__self__, "role_base", role_base) + _setter("role_base", role_base) if role_name is not None: - pulumi.set(__self__, "role_name", role_name) + _setter("role_name", role_name) if role_search_matching is not None: - pulumi.set(__self__, "role_search_matching", role_search_matching) + _setter("role_search_matching", role_search_matching) if role_search_subtree is not None: - pulumi.set(__self__, "role_search_subtree", role_search_subtree) + _setter("role_search_subtree", role_search_subtree) if service_account_password is not None: - pulumi.set(__self__, "service_account_password", service_account_password) + _setter("service_account_password", service_account_password) if service_account_username is not None: - pulumi.set(__self__, "service_account_username", service_account_username) + _setter("service_account_username", service_account_username) if user_base is not None: - pulumi.set(__self__, "user_base", user_base) + _setter("user_base", user_base) if user_role_name is not None: - pulumi.set(__self__, "user_role_name", user_role_name) + _setter("user_role_name", user_role_name) if user_search_matching is not None: - pulumi.set(__self__, "user_search_matching", user_search_matching) + _setter("user_search_matching", user_search_matching) if user_search_subtree is not None: - pulumi.set(__self__, "user_search_subtree", user_search_subtree) + _setter("user_search_subtree", user_search_subtree) @property @pulumi.getter @@ -330,10 +430,23 @@ def __init__(__self__, *, :param pulumi.Input[bool] audit: Enables audit logging. Auditing is only possible for `engine_type` of `ActiveMQ`. User management action made using JMX or the ActiveMQ Web Console is logged. Defaults to `false`. :param pulumi.Input[bool] general: Enables general logging via CloudWatch. Defaults to `false`. """ + BrokerLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit=audit, + general=general, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit: Optional[pulumi.Input[bool]] = None, + general: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit is not None: - pulumi.set(__self__, "audit", audit) + _setter("audit", audit) if general is not None: - pulumi.set(__self__, "general", general) + _setter("general", general) @property @pulumi.getter @@ -371,9 +484,36 @@ def __init__(__self__, *, :param pulumi.Input[str] time_of_day: Time, in 24-hour format, e.g., `02:00`. :param pulumi.Input[str] time_zone: Time zone in either the Country/City format or the UTC offset format, e.g., `CET`. """ - pulumi.set(__self__, "day_of_week", day_of_week) - pulumi.set(__self__, "time_of_day", time_of_day) - pulumi.set(__self__, "time_zone", time_zone) + BrokerMaintenanceWindowStartTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + day_of_week=day_of_week, + time_of_day=time_of_day, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + day_of_week: Optional[pulumi.Input[str]] = None, + time_of_day: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if day_of_week is None and 'dayOfWeek' in kwargs: + day_of_week = kwargs['dayOfWeek'] + if day_of_week is None: + raise TypeError("Missing 'day_of_week' argument") + if time_of_day is None and 'timeOfDay' in kwargs: + time_of_day = kwargs['timeOfDay'] + if time_of_day is None: + raise TypeError("Missing 'time_of_day' argument") + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + if time_zone is None: + raise TypeError("Missing 'time_zone' argument") + + _setter("day_of_week", day_of_week) + _setter("time_of_day", time_of_day) + _setter("time_zone", time_zone) @property @pulumi.getter(name="dayOfWeek") @@ -429,14 +569,41 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] groups: List of groups (20 maximum) to which the ActiveMQ user belongs. Applies to `engine_type` of `ActiveMQ` only. :param pulumi.Input[bool] replication_user: Whether to set set replication user. Defaults to `false`. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + BrokerUserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + console_access=console_access, + groups=groups, + replication_user=replication_user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + console_access: Optional[pulumi.Input[bool]] = None, + groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + replication_user: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if console_access is None and 'consoleAccess' in kwargs: + console_access = kwargs['consoleAccess'] + if replication_user is None and 'replicationUser' in kwargs: + replication_user = kwargs['replicationUser'] + + _setter("password", password) + _setter("username", username) if console_access is not None: - pulumi.set(__self__, "console_access", console_access) + _setter("console_access", console_access) if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if replication_user is not None: - pulumi.set(__self__, "replication_user", replication_user) + _setter("replication_user", replication_user) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/mq/broker.py b/sdk/python/pulumi_aws/mq/broker.py index 0a39e30a09a..ea1c3b2db79 100644 --- a/sdk/python/pulumi_aws/mq/broker.py +++ b/sdk/python/pulumi_aws/mq/broker.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -59,40 +59,125 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of subnet IDs in which to launch the broker. A `SINGLE_INSTANCE` deployment requires one subnet. An `ACTIVE_STANDBY_MULTI_AZ` deployment requires multiple subnets. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the broker. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "engine_type", engine_type) - pulumi.set(__self__, "engine_version", engine_version) - pulumi.set(__self__, "host_instance_type", host_instance_type) - pulumi.set(__self__, "users", users) + BrokerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + engine_type=engine_type, + engine_version=engine_version, + host_instance_type=host_instance_type, + users=users, + apply_immediately=apply_immediately, + authentication_strategy=authentication_strategy, + auto_minor_version_upgrade=auto_minor_version_upgrade, + broker_name=broker_name, + configuration=configuration, + deployment_mode=deployment_mode, + encryption_options=encryption_options, + ldap_server_metadata=ldap_server_metadata, + logs=logs, + maintenance_window_start_time=maintenance_window_start_time, + publicly_accessible=publicly_accessible, + security_groups=security_groups, + storage_type=storage_type, + subnet_ids=subnet_ids, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engine_type: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + host_instance_type: Optional[pulumi.Input[str]] = None, + users: Optional[pulumi.Input[Sequence[pulumi.Input['BrokerUserArgs']]]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + authentication_strategy: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + broker_name: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['BrokerConfigurationArgs']] = None, + deployment_mode: Optional[pulumi.Input[str]] = None, + encryption_options: Optional[pulumi.Input['BrokerEncryptionOptionsArgs']] = None, + ldap_server_metadata: Optional[pulumi.Input['BrokerLdapServerMetadataArgs']] = None, + logs: Optional[pulumi.Input['BrokerLogsArgs']] = None, + maintenance_window_start_time: Optional[pulumi.Input['BrokerMaintenanceWindowStartTimeArgs']] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engine_type is None and 'engineType' in kwargs: + engine_type = kwargs['engineType'] + if engine_type is None: + raise TypeError("Missing 'engine_type' argument") + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version is None: + raise TypeError("Missing 'engine_version' argument") + if host_instance_type is None and 'hostInstanceType' in kwargs: + host_instance_type = kwargs['hostInstanceType'] + if host_instance_type is None: + raise TypeError("Missing 'host_instance_type' argument") + if users is None: + raise TypeError("Missing 'users' argument") + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if authentication_strategy is None and 'authenticationStrategy' in kwargs: + authentication_strategy = kwargs['authenticationStrategy'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if broker_name is None and 'brokerName' in kwargs: + broker_name = kwargs['brokerName'] + if deployment_mode is None and 'deploymentMode' in kwargs: + deployment_mode = kwargs['deploymentMode'] + if encryption_options is None and 'encryptionOptions' in kwargs: + encryption_options = kwargs['encryptionOptions'] + if ldap_server_metadata is None and 'ldapServerMetadata' in kwargs: + ldap_server_metadata = kwargs['ldapServerMetadata'] + if maintenance_window_start_time is None and 'maintenanceWindowStartTime' in kwargs: + maintenance_window_start_time = kwargs['maintenanceWindowStartTime'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + + _setter("engine_type", engine_type) + _setter("engine_version", engine_version) + _setter("host_instance_type", host_instance_type) + _setter("users", users) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if authentication_strategy is not None: - pulumi.set(__self__, "authentication_strategy", authentication_strategy) + _setter("authentication_strategy", authentication_strategy) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if broker_name is not None: - pulumi.set(__self__, "broker_name", broker_name) + _setter("broker_name", broker_name) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if deployment_mode is not None: - pulumi.set(__self__, "deployment_mode", deployment_mode) + _setter("deployment_mode", deployment_mode) if encryption_options is not None: - pulumi.set(__self__, "encryption_options", encryption_options) + _setter("encryption_options", encryption_options) if ldap_server_metadata is not None: - pulumi.set(__self__, "ldap_server_metadata", ldap_server_metadata) + _setter("ldap_server_metadata", ldap_server_metadata) if logs is not None: - pulumi.set(__self__, "logs", logs) + _setter("logs", logs) if maintenance_window_start_time is not None: - pulumi.set(__self__, "maintenance_window_start_time", maintenance_window_start_time) + _setter("maintenance_window_start_time", maintenance_window_start_time) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="engineType") @@ -388,53 +473,138 @@ def __init__(__self__, *, The following arguments are optional: """ + _BrokerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_immediately=apply_immediately, + arn=arn, + authentication_strategy=authentication_strategy, + auto_minor_version_upgrade=auto_minor_version_upgrade, + broker_name=broker_name, + configuration=configuration, + deployment_mode=deployment_mode, + encryption_options=encryption_options, + engine_type=engine_type, + engine_version=engine_version, + host_instance_type=host_instance_type, + instances=instances, + ldap_server_metadata=ldap_server_metadata, + logs=logs, + maintenance_window_start_time=maintenance_window_start_time, + publicly_accessible=publicly_accessible, + security_groups=security_groups, + storage_type=storage_type, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + users=users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + authentication_strategy: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + broker_name: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['BrokerConfigurationArgs']] = None, + deployment_mode: Optional[pulumi.Input[str]] = None, + encryption_options: Optional[pulumi.Input['BrokerEncryptionOptionsArgs']] = None, + engine_type: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + host_instance_type: Optional[pulumi.Input[str]] = None, + instances: Optional[pulumi.Input[Sequence[pulumi.Input['BrokerInstanceArgs']]]] = None, + ldap_server_metadata: Optional[pulumi.Input['BrokerLdapServerMetadataArgs']] = None, + logs: Optional[pulumi.Input['BrokerLogsArgs']] = None, + maintenance_window_start_time: Optional[pulumi.Input['BrokerMaintenanceWindowStartTimeArgs']] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + users: Optional[pulumi.Input[Sequence[pulumi.Input['BrokerUserArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if authentication_strategy is None and 'authenticationStrategy' in kwargs: + authentication_strategy = kwargs['authenticationStrategy'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if broker_name is None and 'brokerName' in kwargs: + broker_name = kwargs['brokerName'] + if deployment_mode is None and 'deploymentMode' in kwargs: + deployment_mode = kwargs['deploymentMode'] + if encryption_options is None and 'encryptionOptions' in kwargs: + encryption_options = kwargs['encryptionOptions'] + if engine_type is None and 'engineType' in kwargs: + engine_type = kwargs['engineType'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if host_instance_type is None and 'hostInstanceType' in kwargs: + host_instance_type = kwargs['hostInstanceType'] + if ldap_server_metadata is None and 'ldapServerMetadata' in kwargs: + ldap_server_metadata = kwargs['ldapServerMetadata'] + if maintenance_window_start_time is None and 'maintenanceWindowStartTime' in kwargs: + maintenance_window_start_time = kwargs['maintenanceWindowStartTime'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_strategy is not None: - pulumi.set(__self__, "authentication_strategy", authentication_strategy) + _setter("authentication_strategy", authentication_strategy) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if broker_name is not None: - pulumi.set(__self__, "broker_name", broker_name) + _setter("broker_name", broker_name) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if deployment_mode is not None: - pulumi.set(__self__, "deployment_mode", deployment_mode) + _setter("deployment_mode", deployment_mode) if encryption_options is not None: - pulumi.set(__self__, "encryption_options", encryption_options) + _setter("encryption_options", encryption_options) if engine_type is not None: - pulumi.set(__self__, "engine_type", engine_type) + _setter("engine_type", engine_type) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if host_instance_type is not None: - pulumi.set(__self__, "host_instance_type", host_instance_type) + _setter("host_instance_type", host_instance_type) if instances is not None: - pulumi.set(__self__, "instances", instances) + _setter("instances", instances) if ldap_server_metadata is not None: - pulumi.set(__self__, "ldap_server_metadata", ldap_server_metadata) + _setter("ldap_server_metadata", ldap_server_metadata) if logs is not None: - pulumi.set(__self__, "logs", logs) + _setter("logs", logs) if maintenance_window_start_time is not None: - pulumi.set(__self__, "maintenance_window_start_time", maintenance_window_start_time) + _setter("maintenance_window_start_time", maintenance_window_start_time) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if users is not None: - pulumi.set(__self__, "users", users) + _setter("users", users) @property @pulumi.getter(name="applyImmediately") @@ -906,6 +1076,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BrokerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -943,8 +1117,10 @@ def _internal_init(__self__, __props__.__dict__["authentication_strategy"] = authentication_strategy __props__.__dict__["auto_minor_version_upgrade"] = auto_minor_version_upgrade __props__.__dict__["broker_name"] = broker_name + configuration = _utilities.configure(configuration, BrokerConfigurationArgs, True) __props__.__dict__["configuration"] = configuration __props__.__dict__["deployment_mode"] = deployment_mode + encryption_options = _utilities.configure(encryption_options, BrokerEncryptionOptionsArgs, True) __props__.__dict__["encryption_options"] = encryption_options if engine_type is None and not opts.urn: raise TypeError("Missing required property 'engine_type'") @@ -955,8 +1131,11 @@ def _internal_init(__self__, if host_instance_type is None and not opts.urn: raise TypeError("Missing required property 'host_instance_type'") __props__.__dict__["host_instance_type"] = host_instance_type + ldap_server_metadata = _utilities.configure(ldap_server_metadata, BrokerLdapServerMetadataArgs, True) __props__.__dict__["ldap_server_metadata"] = ldap_server_metadata + logs = _utilities.configure(logs, BrokerLogsArgs, True) __props__.__dict__["logs"] = logs + maintenance_window_start_time = _utilities.configure(maintenance_window_start_time, BrokerMaintenanceWindowStartTimeArgs, True) __props__.__dict__["maintenance_window_start_time"] = maintenance_window_start_time __props__.__dict__["publicly_accessible"] = publicly_accessible __props__.__dict__["security_groups"] = security_groups diff --git a/sdk/python/pulumi_aws/mq/configuration.py b/sdk/python/pulumi_aws/mq/configuration.py index 0e9eb1fa157..4df6ec63101 100644 --- a/sdk/python/pulumi_aws/mq/configuration.py +++ b/sdk/python/pulumi_aws/mq/configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConfigurationArgs', 'Configuration'] @@ -33,17 +33,52 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "data", data) - pulumi.set(__self__, "engine_type", engine_type) - pulumi.set(__self__, "engine_version", engine_version) + ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data=data, + engine_type=engine_type, + engine_version=engine_version, + authentication_strategy=authentication_strategy, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + authentication_strategy: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data is None: + raise TypeError("Missing 'data' argument") + if engine_type is None and 'engineType' in kwargs: + engine_type = kwargs['engineType'] + if engine_type is None: + raise TypeError("Missing 'engine_type' argument") + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version is None: + raise TypeError("Missing 'engine_version' argument") + if authentication_strategy is None and 'authenticationStrategy' in kwargs: + authentication_strategy = kwargs['authenticationStrategy'] + + _setter("data", data) + _setter("engine_type", engine_type) + _setter("engine_version", engine_version) if authentication_strategy is not None: - pulumi.set(__self__, "authentication_strategy", authentication_strategy) + _setter("authentication_strategy", authentication_strategy) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -160,29 +195,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + authentication_strategy=authentication_strategy, + data=data, + description=description, + engine_type=engine_type, + engine_version=engine_version, + latest_revision=latest_revision, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + authentication_strategy: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + latest_revision: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_strategy is None and 'authenticationStrategy' in kwargs: + authentication_strategy = kwargs['authenticationStrategy'] + if engine_type is None and 'engineType' in kwargs: + engine_type = kwargs['engineType'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if latest_revision is None and 'latestRevision' in kwargs: + latest_revision = kwargs['latestRevision'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication_strategy is not None: - pulumi.set(__self__, "authentication_strategy", authentication_strategy) + _setter("authentication_strategy", authentication_strategy) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if engine_type is not None: - pulumi.set(__self__, "engine_type", engine_type) + _setter("engine_type", engine_type) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if latest_revision is not None: - pulumi.set(__self__, "latest_revision", latest_revision) + _setter("latest_revision", latest_revision) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -453,6 +527,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/mq/get_broker.py b/sdk/python/pulumi_aws/mq/get_broker.py index 47c21470a78..7162de96b3a 100644 --- a/sdk/python/pulumi_aws/mq/get_broker.py +++ b/sdk/python/pulumi_aws/mq/get_broker.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/mq/get_instance_type_offerings.py b/sdk/python/pulumi_aws/mq/get_instance_type_offerings.py index 0d7ecfd5854..d833f9edc17 100644 --- a/sdk/python/pulumi_aws/mq/get_instance_type_offerings.py +++ b/sdk/python/pulumi_aws/mq/get_instance_type_offerings.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/mq/outputs.py b/sdk/python/pulumi_aws/mq/outputs.py index ddbb8103417..ca66dd9cd36 100644 --- a/sdk/python/pulumi_aws/mq/outputs.py +++ b/sdk/python/pulumi_aws/mq/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -38,10 +38,23 @@ def __init__(__self__, *, :param str id: The Configuration ID. :param int revision: Revision of the Configuration. """ + BrokerConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + revision=revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + revision: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if revision is not None: - pulumi.set(__self__, "revision", revision) + _setter("revision", revision) @property @pulumi.getter @@ -88,10 +101,27 @@ def __init__(__self__, *, :param str kms_key_id: Amazon Resource Name (ARN) of Key Management Service (KMS) Customer Master Key (CMK) to use for encryption at rest. Requires setting `use_aws_owned_key` to `false`. To perform drift detection when AWS-managed CMKs or customer-managed CMKs are in use, this value must be configured. :param bool use_aws_owned_key: Whether to enable an AWS-owned KMS CMK that is not in your account. Defaults to `true`. Setting to `false` without configuring `kms_key_id` will create an AWS-managed CMK aliased to `aws/mq` in your account. """ + BrokerEncryptionOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + use_aws_owned_key=use_aws_owned_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + use_aws_owned_key: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if use_aws_owned_key is None and 'useAwsOwnedKey' in kwargs: + use_aws_owned_key = kwargs['useAwsOwnedKey'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if use_aws_owned_key is not None: - pulumi.set(__self__, "use_aws_owned_key", use_aws_owned_key) + _setter("use_aws_owned_key", use_aws_owned_key) @property @pulumi.getter(name="kmsKeyId") @@ -135,12 +165,31 @@ def __init__(__self__, *, console_url: Optional[str] = None, endpoints: Optional[Sequence[str]] = None, ip_address: Optional[str] = None): + BrokerInstance._configure( + lambda key, value: pulumi.set(__self__, key, value), + console_url=console_url, + endpoints=endpoints, + ip_address=ip_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + console_url: Optional[str] = None, + endpoints: Optional[Sequence[str]] = None, + ip_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if console_url is None and 'consoleUrl' in kwargs: + console_url = kwargs['consoleUrl'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if console_url is not None: - pulumi.set(__self__, "console_url", console_url) + _setter("console_url", console_url) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) @property @pulumi.getter(name="consoleUrl") @@ -220,28 +269,79 @@ def __init__(__self__, *, :param str user_search_matching: Search criteria for users. :param bool user_search_subtree: Whether the directory search scope is the entire sub-tree. """ + BrokerLdapServerMetadata._configure( + lambda key, value: pulumi.set(__self__, key, value), + hosts=hosts, + role_base=role_base, + role_name=role_name, + role_search_matching=role_search_matching, + role_search_subtree=role_search_subtree, + service_account_password=service_account_password, + service_account_username=service_account_username, + user_base=user_base, + user_role_name=user_role_name, + user_search_matching=user_search_matching, + user_search_subtree=user_search_subtree, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hosts: Optional[Sequence[str]] = None, + role_base: Optional[str] = None, + role_name: Optional[str] = None, + role_search_matching: Optional[str] = None, + role_search_subtree: Optional[bool] = None, + service_account_password: Optional[str] = None, + service_account_username: Optional[str] = None, + user_base: Optional[str] = None, + user_role_name: Optional[str] = None, + user_search_matching: Optional[str] = None, + user_search_subtree: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_base is None and 'roleBase' in kwargs: + role_base = kwargs['roleBase'] + if role_name is None and 'roleName' in kwargs: + role_name = kwargs['roleName'] + if role_search_matching is None and 'roleSearchMatching' in kwargs: + role_search_matching = kwargs['roleSearchMatching'] + if role_search_subtree is None and 'roleSearchSubtree' in kwargs: + role_search_subtree = kwargs['roleSearchSubtree'] + if service_account_password is None and 'serviceAccountPassword' in kwargs: + service_account_password = kwargs['serviceAccountPassword'] + if service_account_username is None and 'serviceAccountUsername' in kwargs: + service_account_username = kwargs['serviceAccountUsername'] + if user_base is None and 'userBase' in kwargs: + user_base = kwargs['userBase'] + if user_role_name is None and 'userRoleName' in kwargs: + user_role_name = kwargs['userRoleName'] + if user_search_matching is None and 'userSearchMatching' in kwargs: + user_search_matching = kwargs['userSearchMatching'] + if user_search_subtree is None and 'userSearchSubtree' in kwargs: + user_search_subtree = kwargs['userSearchSubtree'] + if hosts is not None: - pulumi.set(__self__, "hosts", hosts) + _setter("hosts", hosts) if role_base is not None: - pulumi.set(__self__, "role_base", role_base) + _setter("role_base", role_base) if role_name is not None: - pulumi.set(__self__, "role_name", role_name) + _setter("role_name", role_name) if role_search_matching is not None: - pulumi.set(__self__, "role_search_matching", role_search_matching) + _setter("role_search_matching", role_search_matching) if role_search_subtree is not None: - pulumi.set(__self__, "role_search_subtree", role_search_subtree) + _setter("role_search_subtree", role_search_subtree) if service_account_password is not None: - pulumi.set(__self__, "service_account_password", service_account_password) + _setter("service_account_password", service_account_password) if service_account_username is not None: - pulumi.set(__self__, "service_account_username", service_account_username) + _setter("service_account_username", service_account_username) if user_base is not None: - pulumi.set(__self__, "user_base", user_base) + _setter("user_base", user_base) if user_role_name is not None: - pulumi.set(__self__, "user_role_name", user_role_name) + _setter("user_role_name", user_role_name) if user_search_matching is not None: - pulumi.set(__self__, "user_search_matching", user_search_matching) + _setter("user_search_matching", user_search_matching) if user_search_subtree is not None: - pulumi.set(__self__, "user_search_subtree", user_search_subtree) + _setter("user_search_subtree", user_search_subtree) @property @pulumi.getter @@ -341,10 +441,23 @@ def __init__(__self__, *, :param bool audit: Enables audit logging. Auditing is only possible for `engine_type` of `ActiveMQ`. User management action made using JMX or the ActiveMQ Web Console is logged. Defaults to `false`. :param bool general: Enables general logging via CloudWatch. Defaults to `false`. """ + BrokerLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit=audit, + general=general, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit: Optional[bool] = None, + general: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit is not None: - pulumi.set(__self__, "audit", audit) + _setter("audit", audit) if general is not None: - pulumi.set(__self__, "general", general) + _setter("general", general) @property @pulumi.getter @@ -395,9 +508,36 @@ def __init__(__self__, *, :param str time_of_day: Time, in 24-hour format, e.g., `02:00`. :param str time_zone: Time zone in either the Country/City format or the UTC offset format, e.g., `CET`. """ - pulumi.set(__self__, "day_of_week", day_of_week) - pulumi.set(__self__, "time_of_day", time_of_day) - pulumi.set(__self__, "time_zone", time_zone) + BrokerMaintenanceWindowStartTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + day_of_week=day_of_week, + time_of_day=time_of_day, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + day_of_week: Optional[str] = None, + time_of_day: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if day_of_week is None and 'dayOfWeek' in kwargs: + day_of_week = kwargs['dayOfWeek'] + if day_of_week is None: + raise TypeError("Missing 'day_of_week' argument") + if time_of_day is None and 'timeOfDay' in kwargs: + time_of_day = kwargs['timeOfDay'] + if time_of_day is None: + raise TypeError("Missing 'time_of_day' argument") + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + if time_zone is None: + raise TypeError("Missing 'time_zone' argument") + + _setter("day_of_week", day_of_week) + _setter("time_of_day", time_of_day) + _setter("time_zone", time_zone) @property @pulumi.getter(name="dayOfWeek") @@ -460,14 +600,41 @@ def __init__(__self__, *, :param Sequence[str] groups: List of groups (20 maximum) to which the ActiveMQ user belongs. Applies to `engine_type` of `ActiveMQ` only. :param bool replication_user: Whether to set set replication user. Defaults to `false`. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + BrokerUser._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + console_access=console_access, + groups=groups, + replication_user=replication_user, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + console_access: Optional[bool] = None, + groups: Optional[Sequence[str]] = None, + replication_user: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if console_access is None and 'consoleAccess' in kwargs: + console_access = kwargs['consoleAccess'] + if replication_user is None and 'replicationUser' in kwargs: + replication_user = kwargs['replicationUser'] + + _setter("password", password) + _setter("username", username) if console_access is not None: - pulumi.set(__self__, "console_access", console_access) + _setter("console_access", console_access) if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if replication_user is not None: - pulumi.set(__self__, "replication_user", replication_user) + _setter("replication_user", replication_user) @property @pulumi.getter @@ -517,8 +684,25 @@ class GetBrokerConfigurationResult(dict): def __init__(__self__, *, id: str, revision: int): - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "revision", revision) + GetBrokerConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + revision=revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + revision: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if revision is None: + raise TypeError("Missing 'revision' argument") + + _setter("id", id) + _setter("revision", revision) @property @pulumi.getter @@ -536,8 +720,29 @@ class GetBrokerEncryptionOptionResult(dict): def __init__(__self__, *, kms_key_id: str, use_aws_owned_key: bool): - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "use_aws_owned_key", use_aws_owned_key) + GetBrokerEncryptionOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + use_aws_owned_key=use_aws_owned_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + use_aws_owned_key: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if use_aws_owned_key is None and 'useAwsOwnedKey' in kwargs: + use_aws_owned_key = kwargs['useAwsOwnedKey'] + if use_aws_owned_key is None: + raise TypeError("Missing 'use_aws_owned_key' argument") + + _setter("kms_key_id", kms_key_id) + _setter("use_aws_owned_key", use_aws_owned_key) @property @pulumi.getter(name="kmsKeyId") @@ -556,9 +761,34 @@ def __init__(__self__, *, console_url: str, endpoints: Sequence[str], ip_address: str): - pulumi.set(__self__, "console_url", console_url) - pulumi.set(__self__, "endpoints", endpoints) - pulumi.set(__self__, "ip_address", ip_address) + GetBrokerInstanceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + console_url=console_url, + endpoints=endpoints, + ip_address=ip_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + console_url: Optional[str] = None, + endpoints: Optional[Sequence[str]] = None, + ip_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if console_url is None and 'consoleUrl' in kwargs: + console_url = kwargs['consoleUrl'] + if console_url is None: + raise TypeError("Missing 'console_url' argument") + if endpoints is None: + raise TypeError("Missing 'endpoints' argument") + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if ip_address is None: + raise TypeError("Missing 'ip_address' argument") + + _setter("console_url", console_url) + _setter("endpoints", endpoints) + _setter("ip_address", ip_address) @property @pulumi.getter(name="consoleUrl") @@ -590,17 +820,90 @@ def __init__(__self__, *, user_role_name: str, user_search_matching: str, user_search_subtree: bool): - pulumi.set(__self__, "hosts", hosts) - pulumi.set(__self__, "role_base", role_base) - pulumi.set(__self__, "role_name", role_name) - pulumi.set(__self__, "role_search_matching", role_search_matching) - pulumi.set(__self__, "role_search_subtree", role_search_subtree) - pulumi.set(__self__, "service_account_password", service_account_password) - pulumi.set(__self__, "service_account_username", service_account_username) - pulumi.set(__self__, "user_base", user_base) - pulumi.set(__self__, "user_role_name", user_role_name) - pulumi.set(__self__, "user_search_matching", user_search_matching) - pulumi.set(__self__, "user_search_subtree", user_search_subtree) + GetBrokerLdapServerMetadataResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + hosts=hosts, + role_base=role_base, + role_name=role_name, + role_search_matching=role_search_matching, + role_search_subtree=role_search_subtree, + service_account_password=service_account_password, + service_account_username=service_account_username, + user_base=user_base, + user_role_name=user_role_name, + user_search_matching=user_search_matching, + user_search_subtree=user_search_subtree, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hosts: Optional[Sequence[str]] = None, + role_base: Optional[str] = None, + role_name: Optional[str] = None, + role_search_matching: Optional[str] = None, + role_search_subtree: Optional[bool] = None, + service_account_password: Optional[str] = None, + service_account_username: Optional[str] = None, + user_base: Optional[str] = None, + user_role_name: Optional[str] = None, + user_search_matching: Optional[str] = None, + user_search_subtree: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosts is None: + raise TypeError("Missing 'hosts' argument") + if role_base is None and 'roleBase' in kwargs: + role_base = kwargs['roleBase'] + if role_base is None: + raise TypeError("Missing 'role_base' argument") + if role_name is None and 'roleName' in kwargs: + role_name = kwargs['roleName'] + if role_name is None: + raise TypeError("Missing 'role_name' argument") + if role_search_matching is None and 'roleSearchMatching' in kwargs: + role_search_matching = kwargs['roleSearchMatching'] + if role_search_matching is None: + raise TypeError("Missing 'role_search_matching' argument") + if role_search_subtree is None and 'roleSearchSubtree' in kwargs: + role_search_subtree = kwargs['roleSearchSubtree'] + if role_search_subtree is None: + raise TypeError("Missing 'role_search_subtree' argument") + if service_account_password is None and 'serviceAccountPassword' in kwargs: + service_account_password = kwargs['serviceAccountPassword'] + if service_account_password is None: + raise TypeError("Missing 'service_account_password' argument") + if service_account_username is None and 'serviceAccountUsername' in kwargs: + service_account_username = kwargs['serviceAccountUsername'] + if service_account_username is None: + raise TypeError("Missing 'service_account_username' argument") + if user_base is None and 'userBase' in kwargs: + user_base = kwargs['userBase'] + if user_base is None: + raise TypeError("Missing 'user_base' argument") + if user_role_name is None and 'userRoleName' in kwargs: + user_role_name = kwargs['userRoleName'] + if user_role_name is None: + raise TypeError("Missing 'user_role_name' argument") + if user_search_matching is None and 'userSearchMatching' in kwargs: + user_search_matching = kwargs['userSearchMatching'] + if user_search_matching is None: + raise TypeError("Missing 'user_search_matching' argument") + if user_search_subtree is None and 'userSearchSubtree' in kwargs: + user_search_subtree = kwargs['userSearchSubtree'] + if user_search_subtree is None: + raise TypeError("Missing 'user_search_subtree' argument") + + _setter("hosts", hosts) + _setter("role_base", role_base) + _setter("role_name", role_name) + _setter("role_search_matching", role_search_matching) + _setter("role_search_subtree", role_search_subtree) + _setter("service_account_password", service_account_password) + _setter("service_account_username", service_account_username) + _setter("user_base", user_base) + _setter("user_role_name", user_role_name) + _setter("user_search_matching", user_search_matching) + _setter("user_search_subtree", user_search_subtree) @property @pulumi.getter @@ -663,8 +966,25 @@ class GetBrokerLogsResult(dict): def __init__(__self__, *, audit: bool, general: bool): - pulumi.set(__self__, "audit", audit) - pulumi.set(__self__, "general", general) + GetBrokerLogsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit=audit, + general=general, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit: Optional[bool] = None, + general: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit is None: + raise TypeError("Missing 'audit' argument") + if general is None: + raise TypeError("Missing 'general' argument") + + _setter("audit", audit) + _setter("general", general) @property @pulumi.getter @@ -683,9 +1003,36 @@ def __init__(__self__, *, day_of_week: str, time_of_day: str, time_zone: str): - pulumi.set(__self__, "day_of_week", day_of_week) - pulumi.set(__self__, "time_of_day", time_of_day) - pulumi.set(__self__, "time_zone", time_zone) + GetBrokerMaintenanceWindowStartTimeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + day_of_week=day_of_week, + time_of_day=time_of_day, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + day_of_week: Optional[str] = None, + time_of_day: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if day_of_week is None and 'dayOfWeek' in kwargs: + day_of_week = kwargs['dayOfWeek'] + if day_of_week is None: + raise TypeError("Missing 'day_of_week' argument") + if time_of_day is None and 'timeOfDay' in kwargs: + time_of_day = kwargs['timeOfDay'] + if time_of_day is None: + raise TypeError("Missing 'time_of_day' argument") + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + if time_zone is None: + raise TypeError("Missing 'time_zone' argument") + + _setter("day_of_week", day_of_week) + _setter("time_of_day", time_of_day) + _setter("time_zone", time_zone) @property @pulumi.getter(name="dayOfWeek") @@ -710,10 +1057,39 @@ def __init__(__self__, *, groups: Sequence[str], replication_user: bool, username: str): - pulumi.set(__self__, "console_access", console_access) - pulumi.set(__self__, "groups", groups) - pulumi.set(__self__, "replication_user", replication_user) - pulumi.set(__self__, "username", username) + GetBrokerUserResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + console_access=console_access, + groups=groups, + replication_user=replication_user, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + console_access: Optional[bool] = None, + groups: Optional[Sequence[str]] = None, + replication_user: Optional[bool] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if console_access is None and 'consoleAccess' in kwargs: + console_access = kwargs['consoleAccess'] + if console_access is None: + raise TypeError("Missing 'console_access' argument") + if groups is None: + raise TypeError("Missing 'groups' argument") + if replication_user is None and 'replicationUser' in kwargs: + replication_user = kwargs['replicationUser'] + if replication_user is None: + raise TypeError("Missing 'replication_user' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("console_access", console_access) + _setter("groups", groups) + _setter("replication_user", replication_user) + _setter("username", username) @property @pulumi.getter(name="consoleAccess") @@ -753,12 +1129,57 @@ def __init__(__self__, *, :param Sequence[str] supported_deployment_modes: The list of supported deployment modes. :param Sequence[str] supported_engine_versions: The list of supported engine versions. """ - pulumi.set(__self__, "availability_zones", availability_zones) - pulumi.set(__self__, "engine_type", engine_type) - pulumi.set(__self__, "host_instance_type", host_instance_type) - pulumi.set(__self__, "storage_type", storage_type) - pulumi.set(__self__, "supported_deployment_modes", supported_deployment_modes) - pulumi.set(__self__, "supported_engine_versions", supported_engine_versions) + GetInstanceTypeOfferingsBrokerInstanceOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + engine_type=engine_type, + host_instance_type=host_instance_type, + storage_type=storage_type, + supported_deployment_modes=supported_deployment_modes, + supported_engine_versions=supported_engine_versions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[Sequence['outputs.GetInstanceTypeOfferingsBrokerInstanceOptionAvailabilityZoneResult']] = None, + engine_type: Optional[str] = None, + host_instance_type: Optional[str] = None, + storage_type: Optional[str] = None, + supported_deployment_modes: Optional[Sequence[str]] = None, + supported_engine_versions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if availability_zones is None: + raise TypeError("Missing 'availability_zones' argument") + if engine_type is None and 'engineType' in kwargs: + engine_type = kwargs['engineType'] + if engine_type is None: + raise TypeError("Missing 'engine_type' argument") + if host_instance_type is None and 'hostInstanceType' in kwargs: + host_instance_type = kwargs['hostInstanceType'] + if host_instance_type is None: + raise TypeError("Missing 'host_instance_type' argument") + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if storage_type is None: + raise TypeError("Missing 'storage_type' argument") + if supported_deployment_modes is None and 'supportedDeploymentModes' in kwargs: + supported_deployment_modes = kwargs['supportedDeploymentModes'] + if supported_deployment_modes is None: + raise TypeError("Missing 'supported_deployment_modes' argument") + if supported_engine_versions is None and 'supportedEngineVersions' in kwargs: + supported_engine_versions = kwargs['supportedEngineVersions'] + if supported_engine_versions is None: + raise TypeError("Missing 'supported_engine_versions' argument") + + _setter("availability_zones", availability_zones) + _setter("engine_type", engine_type) + _setter("host_instance_type", host_instance_type) + _setter("storage_type", storage_type) + _setter("supported_deployment_modes", supported_deployment_modes) + _setter("supported_engine_versions", supported_engine_versions) @property @pulumi.getter(name="availabilityZones") @@ -816,7 +1237,20 @@ def __init__(__self__, *, """ :param str name: Name of the Availability Zone. """ - pulumi.set(__self__, "name", name) + GetInstanceTypeOfferingsBrokerInstanceOptionAvailabilityZoneResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/msk/_inputs.py b/sdk/python/pulumi_aws/msk/_inputs.py index 49426078c55..162eeea8a83 100644 --- a/sdk/python/pulumi_aws/msk/_inputs.py +++ b/sdk/python/pulumi_aws/msk/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -57,15 +57,54 @@ def __init__(__self__, *, :param pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoArgs'] connectivity_info: Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible ([documentation](https://docs.aws.amazon.com/msk/latest/developerguide/public-access.html)). :param pulumi.Input['ClusterBrokerNodeGroupInfoStorageInfoArgs'] storage_info: A block that contains information about storage volumes attached to MSK broker nodes. See below. """ - pulumi.set(__self__, "client_subnets", client_subnets) - pulumi.set(__self__, "instance_type", instance_type) - pulumi.set(__self__, "security_groups", security_groups) + ClusterBrokerNodeGroupInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_subnets=client_subnets, + instance_type=instance_type, + security_groups=security_groups, + az_distribution=az_distribution, + connectivity_info=connectivity_info, + storage_info=storage_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + az_distribution: Optional[pulumi.Input[str]] = None, + connectivity_info: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoArgs']] = None, + storage_info: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoStorageInfoArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_subnets is None and 'clientSubnets' in kwargs: + client_subnets = kwargs['clientSubnets'] + if client_subnets is None: + raise TypeError("Missing 'client_subnets' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is None: + raise TypeError("Missing 'security_groups' argument") + if az_distribution is None and 'azDistribution' in kwargs: + az_distribution = kwargs['azDistribution'] + if connectivity_info is None and 'connectivityInfo' in kwargs: + connectivity_info = kwargs['connectivityInfo'] + if storage_info is None and 'storageInfo' in kwargs: + storage_info = kwargs['storageInfo'] + + _setter("client_subnets", client_subnets) + _setter("instance_type", instance_type) + _setter("security_groups", security_groups) if az_distribution is not None: - pulumi.set(__self__, "az_distribution", az_distribution) + _setter("az_distribution", az_distribution) if connectivity_info is not None: - pulumi.set(__self__, "connectivity_info", connectivity_info) + _setter("connectivity_info", connectivity_info) if storage_info is not None: - pulumi.set(__self__, "storage_info", storage_info) + _setter("storage_info", storage_info) @property @pulumi.getter(name="clientSubnets") @@ -149,10 +188,27 @@ def __init__(__self__, *, :param pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs'] public_access: Access control settings for brokers. See below. :param pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs'] vpc_connectivity: VPC connectivity access control for brokers. See below. """ + ClusterBrokerNodeGroupInfoConnectivityInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + public_access=public_access, + vpc_connectivity=vpc_connectivity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + public_access: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs']] = None, + vpc_connectivity: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if public_access is None and 'publicAccess' in kwargs: + public_access = kwargs['publicAccess'] + if vpc_connectivity is None and 'vpcConnectivity' in kwargs: + vpc_connectivity = kwargs['vpcConnectivity'] + if public_access is not None: - pulumi.set(__self__, "public_access", public_access) + _setter("public_access", public_access) if vpc_connectivity is not None: - pulumi.set(__self__, "vpc_connectivity", vpc_connectivity) + _setter("vpc_connectivity", vpc_connectivity) @property @pulumi.getter(name="publicAccess") @@ -186,8 +242,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] type: Public access type. Valid values: `DISABLED`, `SERVICE_PROVIDED_EIPS`. """ + ClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -209,8 +276,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs'] client_authentication: Configuration block for specifying a client authentication. See below. """ + ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_authentication=client_authentication, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_authentication: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_authentication is None and 'clientAuthentication' in kwargs: + client_authentication = kwargs['clientAuthentication'] + if client_authentication is not None: - pulumi.set(__self__, "client_authentication", client_authentication) + _setter("client_authentication", client_authentication) @property @pulumi.getter(name="clientAuthentication") @@ -234,10 +314,23 @@ def __init__(__self__, *, :param pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs'] sasl: Configuration block for specifying SASL client authentication. See below. :param pulumi.Input[bool] tls: Configuration block for specifying TLS client authentication. See below. """ + ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sasl=sasl, + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sasl: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs']] = None, + tls: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sasl is not None: - pulumi.set(__self__, "sasl", sasl) + _setter("sasl", sasl) if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter @@ -270,19 +363,32 @@ def __init__(__self__, *, iam: Optional[pulumi.Input[bool]] = None, scram: Optional[pulumi.Input[bool]] = None): """ - :param pulumi.Input[bool] iam: Enables SASL/IAM authentication for VPC connectivity. - :param pulumi.Input[bool] scram: Enables SASL/SCRAM authentication for VPC connectivity. - """ + :param pulumi.Input[bool] iam: Enables IAM client authentication. Defaults to `false`. + :param pulumi.Input[bool] scram: Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. + """ + ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam=iam, + scram=scram, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam: Optional[pulumi.Input[bool]] = None, + scram: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam is not None: - pulumi.set(__self__, "iam", iam) + _setter("iam", iam) if scram is not None: - pulumi.set(__self__, "scram", scram) + _setter("scram", scram) @property @pulumi.getter def iam(self) -> Optional[pulumi.Input[bool]]: """ - Enables SASL/IAM authentication for VPC connectivity. + Enables IAM client authentication. Defaults to `false`. """ return pulumi.get(self, "iam") @@ -294,7 +400,7 @@ def iam(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def scram(self) -> Optional[pulumi.Input[bool]]: """ - Enables SASL/SCRAM authentication for VPC connectivity. + Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. """ return pulumi.get(self, "scram") @@ -310,8 +416,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs'] ebs_storage_info: A block that contains EBS volume information. See below. """ + ClusterBrokerNodeGroupInfoStorageInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_storage_info=ebs_storage_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_storage_info: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_storage_info is None and 'ebsStorageInfo' in kwargs: + ebs_storage_info = kwargs['ebsStorageInfo'] + if ebs_storage_info is not None: - pulumi.set(__self__, "ebs_storage_info", ebs_storage_info) + _setter("ebs_storage_info", ebs_storage_info) @property @pulumi.getter(name="ebsStorageInfo") @@ -335,10 +454,27 @@ def __init__(__self__, *, :param pulumi.Input['ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs'] provisioned_throughput: A block that contains EBS volume provisioned throughput information. To provision storage throughput, you must choose broker type kafka.m5.4xlarge or larger. See below. :param pulumi.Input[int] volume_size: The size in GiB of the EBS volume for the data drive on each broker node. Minimum value of `1` and maximum value of `16384`. """ + ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + provisioned_throughput=provisioned_throughput, + volume_size=volume_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provisioned_throughput: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs']] = None, + volume_size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provisioned_throughput is None and 'provisionedThroughput' in kwargs: + provisioned_throughput = kwargs['provisionedThroughput'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if provisioned_throughput is not None: - pulumi.set(__self__, "provisioned_throughput", provisioned_throughput) + _setter("provisioned_throughput", provisioned_throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) @property @pulumi.getter(name="provisionedThroughput") @@ -374,10 +510,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Controls whether provisioned throughput is enabled or not. Default value: `false`. :param pulumi.Input[int] volume_throughput: Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. The minimum value is `250`. The maximum value varies between broker type. You can refer to the valid values for the maximum volume throughput at the following [documentation on throughput bottlenecks](https://docs.aws.amazon.com/msk/latest/developerguide/msk-provision-throughput.html#throughput-bottlenecks) """ + ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + volume_throughput=volume_throughput, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + volume_throughput: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if volume_throughput is None and 'volumeThroughput' in kwargs: + volume_throughput = kwargs['volumeThroughput'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if volume_throughput is not None: - pulumi.set(__self__, "volume_throughput", volume_throughput) + _setter("volume_throughput", volume_throughput) @property @pulumi.getter @@ -415,12 +566,27 @@ def __init__(__self__, *, :param pulumi.Input['ClusterClientAuthenticationTlsArgs'] tls: Configuration block for specifying TLS client authentication. See below. :param pulumi.Input[bool] unauthenticated: Enables unauthenticated access. """ + ClusterClientAuthenticationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sasl=sasl, + tls=tls, + unauthenticated=unauthenticated, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sasl: Optional[pulumi.Input['ClusterClientAuthenticationSaslArgs']] = None, + tls: Optional[pulumi.Input['ClusterClientAuthenticationTlsArgs']] = None, + unauthenticated: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sasl is not None: - pulumi.set(__self__, "sasl", sasl) + _setter("sasl", sasl) if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) if unauthenticated is not None: - pulumi.set(__self__, "unauthenticated", unauthenticated) + _setter("unauthenticated", unauthenticated) @property @pulumi.getter @@ -465,19 +631,32 @@ def __init__(__self__, *, iam: Optional[pulumi.Input[bool]] = None, scram: Optional[pulumi.Input[bool]] = None): """ - :param pulumi.Input[bool] iam: Enables SASL/IAM authentication for VPC connectivity. - :param pulumi.Input[bool] scram: Enables SASL/SCRAM authentication for VPC connectivity. - """ + :param pulumi.Input[bool] iam: Enables IAM client authentication. Defaults to `false`. + :param pulumi.Input[bool] scram: Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. + """ + ClusterClientAuthenticationSaslArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam=iam, + scram=scram, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam: Optional[pulumi.Input[bool]] = None, + scram: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam is not None: - pulumi.set(__self__, "iam", iam) + _setter("iam", iam) if scram is not None: - pulumi.set(__self__, "scram", scram) + _setter("scram", scram) @property @pulumi.getter def iam(self) -> Optional[pulumi.Input[bool]]: """ - Enables SASL/IAM authentication for VPC connectivity. + Enables IAM client authentication. Defaults to `false`. """ return pulumi.get(self, "iam") @@ -489,7 +668,7 @@ def iam(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def scram(self) -> Optional[pulumi.Input[bool]]: """ - Enables SASL/SCRAM authentication for VPC connectivity. + Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. """ return pulumi.get(self, "scram") @@ -505,8 +684,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_authority_arns: List of ACM Certificate Authority Amazon Resource Names (ARNs). """ + ClusterClientAuthenticationTlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is not None: - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -530,8 +722,25 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. :param pulumi.Input[int] revision: Revision of the MSK Configuration to use in the cluster. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "revision", revision) + ClusterConfigurationInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + revision=revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + revision: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if revision is None: + raise TypeError("Missing 'revision' argument") + + _setter("arn", arn) + _setter("revision", revision) @property @pulumi.getter @@ -567,10 +776,27 @@ def __init__(__self__, *, :param pulumi.Input[str] encryption_at_rest_kms_key_arn: You may specify a KMS key short ID or ARN (it will always output an ARN) to use for encrypting your data at rest. If no key is specified, an AWS managed KMS ('aws/msk' managed service) key will be used for encrypting the data at rest. :param pulumi.Input['ClusterEncryptionInfoEncryptionInTransitArgs'] encryption_in_transit: Configuration block to specify encryption in transit. See below. """ + ClusterEncryptionInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_at_rest_kms_key_arn=encryption_at_rest_kms_key_arn, + encryption_in_transit=encryption_in_transit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_at_rest_kms_key_arn: Optional[pulumi.Input[str]] = None, + encryption_in_transit: Optional[pulumi.Input['ClusterEncryptionInfoEncryptionInTransitArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_at_rest_kms_key_arn is None and 'encryptionAtRestKmsKeyArn' in kwargs: + encryption_at_rest_kms_key_arn = kwargs['encryptionAtRestKmsKeyArn'] + if encryption_in_transit is None and 'encryptionInTransit' in kwargs: + encryption_in_transit = kwargs['encryptionInTransit'] + if encryption_at_rest_kms_key_arn is not None: - pulumi.set(__self__, "encryption_at_rest_kms_key_arn", encryption_at_rest_kms_key_arn) + _setter("encryption_at_rest_kms_key_arn", encryption_at_rest_kms_key_arn) if encryption_in_transit is not None: - pulumi.set(__self__, "encryption_in_transit", encryption_in_transit) + _setter("encryption_in_transit", encryption_in_transit) @property @pulumi.getter(name="encryptionAtRestKmsKeyArn") @@ -606,10 +832,27 @@ def __init__(__self__, *, :param pulumi.Input[str] client_broker: Encryption setting for data in transit between clients and brokers. Valid values: `TLS`, `TLS_PLAINTEXT`, and `PLAINTEXT`. Default value is `TLS`. :param pulumi.Input[bool] in_cluster: Whether data communication among broker nodes is encrypted. Default value: `true`. """ + ClusterEncryptionInfoEncryptionInTransitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_broker=client_broker, + in_cluster=in_cluster, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_broker: Optional[pulumi.Input[str]] = None, + in_cluster: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_broker is None and 'clientBroker' in kwargs: + client_broker = kwargs['clientBroker'] + if in_cluster is None and 'inCluster' in kwargs: + in_cluster = kwargs['inCluster'] + if client_broker is not None: - pulumi.set(__self__, "client_broker", client_broker) + _setter("client_broker", client_broker) if in_cluster is not None: - pulumi.set(__self__, "in_cluster", in_cluster) + _setter("in_cluster", in_cluster) @property @pulumi.getter(name="clientBroker") @@ -643,7 +886,22 @@ def __init__(__self__, *, """ :param pulumi.Input['ClusterLoggingInfoBrokerLogsArgs'] broker_logs: Configuration block for Broker Logs settings for logging info. See below. """ - pulumi.set(__self__, "broker_logs", broker_logs) + ClusterLoggingInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + broker_logs=broker_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + broker_logs: Optional[pulumi.Input['ClusterLoggingInfoBrokerLogsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if broker_logs is None and 'brokerLogs' in kwargs: + broker_logs = kwargs['brokerLogs'] + if broker_logs is None: + raise TypeError("Missing 'broker_logs' argument") + + _setter("broker_logs", broker_logs) @property @pulumi.getter(name="brokerLogs") @@ -664,12 +922,29 @@ def __init__(__self__, *, cloudwatch_logs: Optional[pulumi.Input['ClusterLoggingInfoBrokerLogsCloudwatchLogsArgs']] = None, firehose: Optional[pulumi.Input['ClusterLoggingInfoBrokerLogsFirehoseArgs']] = None, s3: Optional[pulumi.Input['ClusterLoggingInfoBrokerLogsS3Args']] = None): + ClusterLoggingInfoBrokerLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + firehose=firehose, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional[pulumi.Input['ClusterLoggingInfoBrokerLogsCloudwatchLogsArgs']] = None, + firehose: Optional[pulumi.Input['ClusterLoggingInfoBrokerLogsFirehoseArgs']] = None, + s3: Optional[pulumi.Input['ClusterLoggingInfoBrokerLogsS3Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -708,9 +983,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Controls whether provisioned throughput is enabled or not. Default value: `false`. :param pulumi.Input[str] log_group: Name of the Cloudwatch Log Group to deliver logs to. """ - pulumi.set(__self__, "enabled", enabled) + ClusterLoggingInfoBrokerLogsCloudwatchLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + + _setter("enabled", enabled) if log_group is not None: - pulumi.set(__self__, "log_group", log_group) + _setter("log_group", log_group) @property @pulumi.getter @@ -746,9 +1038,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Controls whether provisioned throughput is enabled or not. Default value: `false`. :param pulumi.Input[str] delivery_stream: Name of the Kinesis Data Firehose delivery stream to deliver logs to. """ - pulumi.set(__self__, "enabled", enabled) + ClusterLoggingInfoBrokerLogsFirehoseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + delivery_stream=delivery_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + delivery_stream: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if delivery_stream is None and 'deliveryStream' in kwargs: + delivery_stream = kwargs['deliveryStream'] + + _setter("enabled", enabled) if delivery_stream is not None: - pulumi.set(__self__, "delivery_stream", delivery_stream) + _setter("delivery_stream", delivery_stream) @property @pulumi.getter @@ -786,11 +1095,28 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Name of the S3 bucket to deliver logs to. :param pulumi.Input[str] prefix: Prefix to append to the folder name. """ - pulumi.set(__self__, "enabled", enabled) + ClusterLoggingInfoBrokerLogsS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + bucket: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -836,7 +1162,20 @@ def __init__(__self__, *, """ :param pulumi.Input['ClusterOpenMonitoringPrometheusArgs'] prometheus: Configuration block for Prometheus settings for open monitoring. See below. """ - pulumi.set(__self__, "prometheus", prometheus) + ClusterOpenMonitoringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prometheus=prometheus, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prometheus: Optional[pulumi.Input['ClusterOpenMonitoringPrometheusArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prometheus is None: + raise TypeError("Missing 'prometheus' argument") + + _setter("prometheus", prometheus) @property @pulumi.getter @@ -860,10 +1199,27 @@ def __init__(__self__, *, :param pulumi.Input['ClusterOpenMonitoringPrometheusJmxExporterArgs'] jmx_exporter: Configuration block for JMX Exporter. See below. :param pulumi.Input['ClusterOpenMonitoringPrometheusNodeExporterArgs'] node_exporter: Configuration block for Node Exporter. See below. """ + ClusterOpenMonitoringPrometheusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + jmx_exporter=jmx_exporter, + node_exporter=node_exporter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jmx_exporter: Optional[pulumi.Input['ClusterOpenMonitoringPrometheusJmxExporterArgs']] = None, + node_exporter: Optional[pulumi.Input['ClusterOpenMonitoringPrometheusNodeExporterArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jmx_exporter is None and 'jmxExporter' in kwargs: + jmx_exporter = kwargs['jmxExporter'] + if node_exporter is None and 'nodeExporter' in kwargs: + node_exporter = kwargs['nodeExporter'] + if jmx_exporter is not None: - pulumi.set(__self__, "jmx_exporter", jmx_exporter) + _setter("jmx_exporter", jmx_exporter) if node_exporter is not None: - pulumi.set(__self__, "node_exporter", node_exporter) + _setter("node_exporter", node_exporter) @property @pulumi.getter(name="jmxExporter") @@ -895,15 +1251,30 @@ class ClusterOpenMonitoringPrometheusJmxExporterArgs: def __init__(__self__, *, enabled_in_broker: pulumi.Input[bool]): """ - :param pulumi.Input[bool] enabled_in_broker: Indicates whether you want to enable or disable the JMX Exporter. - """ - pulumi.set(__self__, "enabled_in_broker", enabled_in_broker) + :param pulumi.Input[bool] enabled_in_broker: Indicates whether you want to enable or disable the Node Exporter. + """ + ClusterOpenMonitoringPrometheusJmxExporterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled_in_broker=enabled_in_broker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled_in_broker: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled_in_broker is None and 'enabledInBroker' in kwargs: + enabled_in_broker = kwargs['enabledInBroker'] + if enabled_in_broker is None: + raise TypeError("Missing 'enabled_in_broker' argument") + + _setter("enabled_in_broker", enabled_in_broker) @property @pulumi.getter(name="enabledInBroker") def enabled_in_broker(self) -> pulumi.Input[bool]: """ - Indicates whether you want to enable or disable the JMX Exporter. + Indicates whether you want to enable or disable the Node Exporter. """ return pulumi.get(self, "enabled_in_broker") @@ -917,15 +1288,30 @@ class ClusterOpenMonitoringPrometheusNodeExporterArgs: def __init__(__self__, *, enabled_in_broker: pulumi.Input[bool]): """ - :param pulumi.Input[bool] enabled_in_broker: Indicates whether you want to enable or disable the JMX Exporter. - """ - pulumi.set(__self__, "enabled_in_broker", enabled_in_broker) + :param pulumi.Input[bool] enabled_in_broker: Indicates whether you want to enable or disable the Node Exporter. + """ + ClusterOpenMonitoringPrometheusNodeExporterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled_in_broker=enabled_in_broker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled_in_broker: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled_in_broker is None and 'enabledInBroker' in kwargs: + enabled_in_broker = kwargs['enabledInBroker'] + if enabled_in_broker is None: + raise TypeError("Missing 'enabled_in_broker' argument") + + _setter("enabled_in_broker", enabled_in_broker) @property @pulumi.getter(name="enabledInBroker") def enabled_in_broker(self) -> pulumi.Input[bool]: """ - Indicates whether you want to enable or disable the JMX Exporter. + Indicates whether you want to enable or disable the Node Exporter. """ return pulumi.get(self, "enabled_in_broker") @@ -941,7 +1327,20 @@ def __init__(__self__, *, """ :param pulumi.Input['ServerlessClusterClientAuthenticationSaslArgs'] sasl: Details for client authentication using SASL. See below. """ - pulumi.set(__self__, "sasl", sasl) + ServerlessClusterClientAuthenticationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sasl=sasl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sasl: Optional[pulumi.Input['ServerlessClusterClientAuthenticationSaslArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sasl is None: + raise TypeError("Missing 'sasl' argument") + + _setter("sasl", sasl) @property @pulumi.getter @@ -963,7 +1362,20 @@ def __init__(__self__, *, """ :param pulumi.Input['ServerlessClusterClientAuthenticationSaslIamArgs'] iam: Details for client authentication using IAM. See below. """ - pulumi.set(__self__, "iam", iam) + ServerlessClusterClientAuthenticationSaslArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam=iam, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam: Optional[pulumi.Input['ServerlessClusterClientAuthenticationSaslIamArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam is None: + raise TypeError("Missing 'iam' argument") + + _setter("iam", iam) @property @pulumi.getter @@ -985,7 +1397,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether SASL/IAM authentication is enabled or not. """ - pulumi.set(__self__, "enabled", enabled) + ServerlessClusterClientAuthenticationSaslIamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -1009,9 +1434,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of subnets in at least two different Availability Zones that host your client applications. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: Specifies up to five security groups that control inbound and outbound traffic for the serverless cluster. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + ServerlessClusterVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + security_group_ids=security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("subnet_ids", subnet_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) @property @pulumi.getter(name="subnetIds") diff --git a/sdk/python/pulumi_aws/msk/cluster.py b/sdk/python/pulumi_aws/msk/cluster.py index 1876a10cc53..0de491d8cbc 100644 --- a/sdk/python/pulumi_aws/msk/cluster.py +++ b/sdk/python/pulumi_aws/msk/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -43,27 +43,88 @@ def __init__(__self__, *, :param pulumi.Input[str] storage_mode: Controls storage mode for supported storage tiers. Valid values are: `LOCAL` or `TIERED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "broker_node_group_info", broker_node_group_info) - pulumi.set(__self__, "kafka_version", kafka_version) - pulumi.set(__self__, "number_of_broker_nodes", number_of_broker_nodes) + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + broker_node_group_info=broker_node_group_info, + kafka_version=kafka_version, + number_of_broker_nodes=number_of_broker_nodes, + client_authentication=client_authentication, + cluster_name=cluster_name, + configuration_info=configuration_info, + encryption_info=encryption_info, + enhanced_monitoring=enhanced_monitoring, + logging_info=logging_info, + open_monitoring=open_monitoring, + storage_mode=storage_mode, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + broker_node_group_info: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoArgs']] = None, + kafka_version: Optional[pulumi.Input[str]] = None, + number_of_broker_nodes: Optional[pulumi.Input[int]] = None, + client_authentication: Optional[pulumi.Input['ClusterClientAuthenticationArgs']] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + configuration_info: Optional[pulumi.Input['ClusterConfigurationInfoArgs']] = None, + encryption_info: Optional[pulumi.Input['ClusterEncryptionInfoArgs']] = None, + enhanced_monitoring: Optional[pulumi.Input[str]] = None, + logging_info: Optional[pulumi.Input['ClusterLoggingInfoArgs']] = None, + open_monitoring: Optional[pulumi.Input['ClusterOpenMonitoringArgs']] = None, + storage_mode: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if broker_node_group_info is None and 'brokerNodeGroupInfo' in kwargs: + broker_node_group_info = kwargs['brokerNodeGroupInfo'] + if broker_node_group_info is None: + raise TypeError("Missing 'broker_node_group_info' argument") + if kafka_version is None and 'kafkaVersion' in kwargs: + kafka_version = kwargs['kafkaVersion'] + if kafka_version is None: + raise TypeError("Missing 'kafka_version' argument") + if number_of_broker_nodes is None and 'numberOfBrokerNodes' in kwargs: + number_of_broker_nodes = kwargs['numberOfBrokerNodes'] + if number_of_broker_nodes is None: + raise TypeError("Missing 'number_of_broker_nodes' argument") + if client_authentication is None and 'clientAuthentication' in kwargs: + client_authentication = kwargs['clientAuthentication'] + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if configuration_info is None and 'configurationInfo' in kwargs: + configuration_info = kwargs['configurationInfo'] + if encryption_info is None and 'encryptionInfo' in kwargs: + encryption_info = kwargs['encryptionInfo'] + if enhanced_monitoring is None and 'enhancedMonitoring' in kwargs: + enhanced_monitoring = kwargs['enhancedMonitoring'] + if logging_info is None and 'loggingInfo' in kwargs: + logging_info = kwargs['loggingInfo'] + if open_monitoring is None and 'openMonitoring' in kwargs: + open_monitoring = kwargs['openMonitoring'] + if storage_mode is None and 'storageMode' in kwargs: + storage_mode = kwargs['storageMode'] + + _setter("broker_node_group_info", broker_node_group_info) + _setter("kafka_version", kafka_version) + _setter("number_of_broker_nodes", number_of_broker_nodes) if client_authentication is not None: - pulumi.set(__self__, "client_authentication", client_authentication) + _setter("client_authentication", client_authentication) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if configuration_info is not None: - pulumi.set(__self__, "configuration_info", configuration_info) + _setter("configuration_info", configuration_info) if encryption_info is not None: - pulumi.set(__self__, "encryption_info", encryption_info) + _setter("encryption_info", encryption_info) if enhanced_monitoring is not None: - pulumi.set(__self__, "enhanced_monitoring", enhanced_monitoring) + _setter("enhanced_monitoring", enhanced_monitoring) if logging_info is not None: - pulumi.set(__self__, "logging_info", logging_info) + _setter("logging_info", logging_info) if open_monitoring is not None: - pulumi.set(__self__, "open_monitoring", open_monitoring) + _setter("open_monitoring", open_monitoring) if storage_mode is not None: - pulumi.set(__self__, "storage_mode", storage_mode) + _setter("storage_mode", storage_mode) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="brokerNodeGroupInfo") @@ -273,65 +334,182 @@ def __init__(__self__, *, :param pulumi.Input[str] zookeeper_connect_string: A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster. The returned values are sorted alphabetically. The AWS API may not return all endpoints, so this value is not guaranteed to be stable across applies. :param pulumi.Input[str] zookeeper_connect_string_tls: A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster via TLS. The returned values are sorted alphabetically. The AWS API may not return all endpoints, so this value is not guaranteed to be stable across applies. """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bootstrap_brokers=bootstrap_brokers, + bootstrap_brokers_public_sasl_iam=bootstrap_brokers_public_sasl_iam, + bootstrap_brokers_public_sasl_scram=bootstrap_brokers_public_sasl_scram, + bootstrap_brokers_public_tls=bootstrap_brokers_public_tls, + bootstrap_brokers_sasl_iam=bootstrap_brokers_sasl_iam, + bootstrap_brokers_sasl_scram=bootstrap_brokers_sasl_scram, + bootstrap_brokers_tls=bootstrap_brokers_tls, + bootstrap_brokers_vpc_connectivity_sasl_iam=bootstrap_brokers_vpc_connectivity_sasl_iam, + bootstrap_brokers_vpc_connectivity_sasl_scram=bootstrap_brokers_vpc_connectivity_sasl_scram, + bootstrap_brokers_vpc_connectivity_tls=bootstrap_brokers_vpc_connectivity_tls, + broker_node_group_info=broker_node_group_info, + client_authentication=client_authentication, + cluster_name=cluster_name, + cluster_uuid=cluster_uuid, + configuration_info=configuration_info, + current_version=current_version, + encryption_info=encryption_info, + enhanced_monitoring=enhanced_monitoring, + kafka_version=kafka_version, + logging_info=logging_info, + number_of_broker_nodes=number_of_broker_nodes, + open_monitoring=open_monitoring, + storage_mode=storage_mode, + tags=tags, + tags_all=tags_all, + zookeeper_connect_string=zookeeper_connect_string, + zookeeper_connect_string_tls=zookeeper_connect_string_tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bootstrap_brokers: Optional[pulumi.Input[str]] = None, + bootstrap_brokers_public_sasl_iam: Optional[pulumi.Input[str]] = None, + bootstrap_brokers_public_sasl_scram: Optional[pulumi.Input[str]] = None, + bootstrap_brokers_public_tls: Optional[pulumi.Input[str]] = None, + bootstrap_brokers_sasl_iam: Optional[pulumi.Input[str]] = None, + bootstrap_brokers_sasl_scram: Optional[pulumi.Input[str]] = None, + bootstrap_brokers_tls: Optional[pulumi.Input[str]] = None, + bootstrap_brokers_vpc_connectivity_sasl_iam: Optional[pulumi.Input[str]] = None, + bootstrap_brokers_vpc_connectivity_sasl_scram: Optional[pulumi.Input[str]] = None, + bootstrap_brokers_vpc_connectivity_tls: Optional[pulumi.Input[str]] = None, + broker_node_group_info: Optional[pulumi.Input['ClusterBrokerNodeGroupInfoArgs']] = None, + client_authentication: Optional[pulumi.Input['ClusterClientAuthenticationArgs']] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + cluster_uuid: Optional[pulumi.Input[str]] = None, + configuration_info: Optional[pulumi.Input['ClusterConfigurationInfoArgs']] = None, + current_version: Optional[pulumi.Input[str]] = None, + encryption_info: Optional[pulumi.Input['ClusterEncryptionInfoArgs']] = None, + enhanced_monitoring: Optional[pulumi.Input[str]] = None, + kafka_version: Optional[pulumi.Input[str]] = None, + logging_info: Optional[pulumi.Input['ClusterLoggingInfoArgs']] = None, + number_of_broker_nodes: Optional[pulumi.Input[int]] = None, + open_monitoring: Optional[pulumi.Input['ClusterOpenMonitoringArgs']] = None, + storage_mode: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + zookeeper_connect_string: Optional[pulumi.Input[str]] = None, + zookeeper_connect_string_tls: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bootstrap_brokers is None and 'bootstrapBrokers' in kwargs: + bootstrap_brokers = kwargs['bootstrapBrokers'] + if bootstrap_brokers_public_sasl_iam is None and 'bootstrapBrokersPublicSaslIam' in kwargs: + bootstrap_brokers_public_sasl_iam = kwargs['bootstrapBrokersPublicSaslIam'] + if bootstrap_brokers_public_sasl_scram is None and 'bootstrapBrokersPublicSaslScram' in kwargs: + bootstrap_brokers_public_sasl_scram = kwargs['bootstrapBrokersPublicSaslScram'] + if bootstrap_brokers_public_tls is None and 'bootstrapBrokersPublicTls' in kwargs: + bootstrap_brokers_public_tls = kwargs['bootstrapBrokersPublicTls'] + if bootstrap_brokers_sasl_iam is None and 'bootstrapBrokersSaslIam' in kwargs: + bootstrap_brokers_sasl_iam = kwargs['bootstrapBrokersSaslIam'] + if bootstrap_brokers_sasl_scram is None and 'bootstrapBrokersSaslScram' in kwargs: + bootstrap_brokers_sasl_scram = kwargs['bootstrapBrokersSaslScram'] + if bootstrap_brokers_tls is None and 'bootstrapBrokersTls' in kwargs: + bootstrap_brokers_tls = kwargs['bootstrapBrokersTls'] + if bootstrap_brokers_vpc_connectivity_sasl_iam is None and 'bootstrapBrokersVpcConnectivitySaslIam' in kwargs: + bootstrap_brokers_vpc_connectivity_sasl_iam = kwargs['bootstrapBrokersVpcConnectivitySaslIam'] + if bootstrap_brokers_vpc_connectivity_sasl_scram is None and 'bootstrapBrokersVpcConnectivitySaslScram' in kwargs: + bootstrap_brokers_vpc_connectivity_sasl_scram = kwargs['bootstrapBrokersVpcConnectivitySaslScram'] + if bootstrap_brokers_vpc_connectivity_tls is None and 'bootstrapBrokersVpcConnectivityTls' in kwargs: + bootstrap_brokers_vpc_connectivity_tls = kwargs['bootstrapBrokersVpcConnectivityTls'] + if broker_node_group_info is None and 'brokerNodeGroupInfo' in kwargs: + broker_node_group_info = kwargs['brokerNodeGroupInfo'] + if client_authentication is None and 'clientAuthentication' in kwargs: + client_authentication = kwargs['clientAuthentication'] + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_uuid is None and 'clusterUuid' in kwargs: + cluster_uuid = kwargs['clusterUuid'] + if configuration_info is None and 'configurationInfo' in kwargs: + configuration_info = kwargs['configurationInfo'] + if current_version is None and 'currentVersion' in kwargs: + current_version = kwargs['currentVersion'] + if encryption_info is None and 'encryptionInfo' in kwargs: + encryption_info = kwargs['encryptionInfo'] + if enhanced_monitoring is None and 'enhancedMonitoring' in kwargs: + enhanced_monitoring = kwargs['enhancedMonitoring'] + if kafka_version is None and 'kafkaVersion' in kwargs: + kafka_version = kwargs['kafkaVersion'] + if logging_info is None and 'loggingInfo' in kwargs: + logging_info = kwargs['loggingInfo'] + if number_of_broker_nodes is None and 'numberOfBrokerNodes' in kwargs: + number_of_broker_nodes = kwargs['numberOfBrokerNodes'] + if open_monitoring is None and 'openMonitoring' in kwargs: + open_monitoring = kwargs['openMonitoring'] + if storage_mode is None and 'storageMode' in kwargs: + storage_mode = kwargs['storageMode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if zookeeper_connect_string is None and 'zookeeperConnectString' in kwargs: + zookeeper_connect_string = kwargs['zookeeperConnectString'] + if zookeeper_connect_string_tls is None and 'zookeeperConnectStringTls' in kwargs: + zookeeper_connect_string_tls = kwargs['zookeeperConnectStringTls'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bootstrap_brokers is not None: - pulumi.set(__self__, "bootstrap_brokers", bootstrap_brokers) + _setter("bootstrap_brokers", bootstrap_brokers) if bootstrap_brokers_public_sasl_iam is not None: - pulumi.set(__self__, "bootstrap_brokers_public_sasl_iam", bootstrap_brokers_public_sasl_iam) + _setter("bootstrap_brokers_public_sasl_iam", bootstrap_brokers_public_sasl_iam) if bootstrap_brokers_public_sasl_scram is not None: - pulumi.set(__self__, "bootstrap_brokers_public_sasl_scram", bootstrap_brokers_public_sasl_scram) + _setter("bootstrap_brokers_public_sasl_scram", bootstrap_brokers_public_sasl_scram) if bootstrap_brokers_public_tls is not None: - pulumi.set(__self__, "bootstrap_brokers_public_tls", bootstrap_brokers_public_tls) + _setter("bootstrap_brokers_public_tls", bootstrap_brokers_public_tls) if bootstrap_brokers_sasl_iam is not None: - pulumi.set(__self__, "bootstrap_brokers_sasl_iam", bootstrap_brokers_sasl_iam) + _setter("bootstrap_brokers_sasl_iam", bootstrap_brokers_sasl_iam) if bootstrap_brokers_sasl_scram is not None: - pulumi.set(__self__, "bootstrap_brokers_sasl_scram", bootstrap_brokers_sasl_scram) + _setter("bootstrap_brokers_sasl_scram", bootstrap_brokers_sasl_scram) if bootstrap_brokers_tls is not None: - pulumi.set(__self__, "bootstrap_brokers_tls", bootstrap_brokers_tls) + _setter("bootstrap_brokers_tls", bootstrap_brokers_tls) if bootstrap_brokers_vpc_connectivity_sasl_iam is not None: - pulumi.set(__self__, "bootstrap_brokers_vpc_connectivity_sasl_iam", bootstrap_brokers_vpc_connectivity_sasl_iam) + _setter("bootstrap_brokers_vpc_connectivity_sasl_iam", bootstrap_brokers_vpc_connectivity_sasl_iam) if bootstrap_brokers_vpc_connectivity_sasl_scram is not None: - pulumi.set(__self__, "bootstrap_brokers_vpc_connectivity_sasl_scram", bootstrap_brokers_vpc_connectivity_sasl_scram) + _setter("bootstrap_brokers_vpc_connectivity_sasl_scram", bootstrap_brokers_vpc_connectivity_sasl_scram) if bootstrap_brokers_vpc_connectivity_tls is not None: - pulumi.set(__self__, "bootstrap_brokers_vpc_connectivity_tls", bootstrap_brokers_vpc_connectivity_tls) + _setter("bootstrap_brokers_vpc_connectivity_tls", bootstrap_brokers_vpc_connectivity_tls) if broker_node_group_info is not None: - pulumi.set(__self__, "broker_node_group_info", broker_node_group_info) + _setter("broker_node_group_info", broker_node_group_info) if client_authentication is not None: - pulumi.set(__self__, "client_authentication", client_authentication) + _setter("client_authentication", client_authentication) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if cluster_uuid is not None: - pulumi.set(__self__, "cluster_uuid", cluster_uuid) + _setter("cluster_uuid", cluster_uuid) if configuration_info is not None: - pulumi.set(__self__, "configuration_info", configuration_info) + _setter("configuration_info", configuration_info) if current_version is not None: - pulumi.set(__self__, "current_version", current_version) + _setter("current_version", current_version) if encryption_info is not None: - pulumi.set(__self__, "encryption_info", encryption_info) + _setter("encryption_info", encryption_info) if enhanced_monitoring is not None: - pulumi.set(__self__, "enhanced_monitoring", enhanced_monitoring) + _setter("enhanced_monitoring", enhanced_monitoring) if kafka_version is not None: - pulumi.set(__self__, "kafka_version", kafka_version) + _setter("kafka_version", kafka_version) if logging_info is not None: - pulumi.set(__self__, "logging_info", logging_info) + _setter("logging_info", logging_info) if number_of_broker_nodes is not None: - pulumi.set(__self__, "number_of_broker_nodes", number_of_broker_nodes) + _setter("number_of_broker_nodes", number_of_broker_nodes) if open_monitoring is not None: - pulumi.set(__self__, "open_monitoring", open_monitoring) + _setter("open_monitoring", open_monitoring) if storage_mode is not None: - pulumi.set(__self__, "storage_mode", storage_mode) + _setter("storage_mode", storage_mode) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if zookeeper_connect_string is not None: - pulumi.set(__self__, "zookeeper_connect_string", zookeeper_connect_string) + _setter("zookeeper_connect_string", zookeeper_connect_string) if zookeeper_connect_string_tls is not None: - pulumi.set(__self__, "zookeeper_connect_string_tls", zookeeper_connect_string_tls) + _setter("zookeeper_connect_string_tls", zookeeper_connect_string_tls) @property @pulumi.getter @@ -1005,6 +1183,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1031,21 +1213,27 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ClusterArgs.__new__(ClusterArgs) + broker_node_group_info = _utilities.configure(broker_node_group_info, ClusterBrokerNodeGroupInfoArgs, True) if broker_node_group_info is None and not opts.urn: raise TypeError("Missing required property 'broker_node_group_info'") __props__.__dict__["broker_node_group_info"] = broker_node_group_info + client_authentication = _utilities.configure(client_authentication, ClusterClientAuthenticationArgs, True) __props__.__dict__["client_authentication"] = client_authentication __props__.__dict__["cluster_name"] = cluster_name + configuration_info = _utilities.configure(configuration_info, ClusterConfigurationInfoArgs, True) __props__.__dict__["configuration_info"] = configuration_info + encryption_info = _utilities.configure(encryption_info, ClusterEncryptionInfoArgs, True) __props__.__dict__["encryption_info"] = encryption_info __props__.__dict__["enhanced_monitoring"] = enhanced_monitoring if kafka_version is None and not opts.urn: raise TypeError("Missing required property 'kafka_version'") __props__.__dict__["kafka_version"] = kafka_version + logging_info = _utilities.configure(logging_info, ClusterLoggingInfoArgs, True) __props__.__dict__["logging_info"] = logging_info if number_of_broker_nodes is None and not opts.urn: raise TypeError("Missing required property 'number_of_broker_nodes'") __props__.__dict__["number_of_broker_nodes"] = number_of_broker_nodes + open_monitoring = _utilities.configure(open_monitoring, ClusterOpenMonitoringArgs, True) __props__.__dict__["open_monitoring"] = open_monitoring __props__.__dict__["storage_mode"] = storage_mode __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/msk/cluster_policy.py b/sdk/python/pulumi_aws/msk/cluster_policy.py index 30eec404df2..16455d90067 100644 --- a/sdk/python/pulumi_aws/msk/cluster_policy.py +++ b/sdk/python/pulumi_aws/msk/cluster_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterPolicyArgs', 'ClusterPolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_arn: The Amazon Resource Name (ARN) that uniquely identifies the cluster. :param pulumi.Input[str] policy: Resource policy for cluster. """ - pulumi.set(__self__, "cluster_arn", cluster_arn) - pulumi.set(__self__, "policy", policy) + ClusterPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_arn=cluster_arn, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_arn: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_arn is None and 'clusterArn' in kwargs: + cluster_arn = kwargs['clusterArn'] + if cluster_arn is None: + raise TypeError("Missing 'cluster_arn' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("cluster_arn", cluster_arn) + _setter("policy", policy) @property @pulumi.getter(name="clusterArn") @@ -60,12 +79,31 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_arn: The Amazon Resource Name (ARN) that uniquely identifies the cluster. :param pulumi.Input[str] policy: Resource policy for cluster. """ + _ClusterPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_arn=cluster_arn, + current_version=current_version, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_arn: Optional[pulumi.Input[str]] = None, + current_version: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_arn is None and 'clusterArn' in kwargs: + cluster_arn = kwargs['clusterArn'] + if current_version is None and 'currentVersion' in kwargs: + current_version = kwargs['currentVersion'] + if cluster_arn is not None: - pulumi.set(__self__, "cluster_arn", cluster_arn) + _setter("cluster_arn", cluster_arn) if current_version is not None: - pulumi.set(__self__, "current_version", current_version) + _setter("current_version", current_version) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="clusterArn") @@ -214,6 +252,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/msk/configuration.py b/sdk/python/pulumi_aws/msk/configuration.py index f58f35a44f9..d4fbf298d63 100644 --- a/sdk/python/pulumi_aws/msk/configuration.py +++ b/sdk/python/pulumi_aws/msk/configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConfigurationArgs', 'Configuration'] @@ -25,13 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] kafka_versions: List of Apache Kafka versions which can use this configuration. :param pulumi.Input[str] name: Name of the configuration. """ - pulumi.set(__self__, "server_properties", server_properties) + ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + server_properties=server_properties, + description=description, + kafka_versions=kafka_versions, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + server_properties: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + kafka_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if server_properties is None and 'serverProperties' in kwargs: + server_properties = kwargs['serverProperties'] + if server_properties is None: + raise TypeError("Missing 'server_properties' argument") + if kafka_versions is None and 'kafkaVersions' in kwargs: + kafka_versions = kwargs['kafkaVersions'] + + _setter("server_properties", server_properties) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kafka_versions is not None: - pulumi.set(__self__, "kafka_versions", kafka_versions) + _setter("kafka_versions", kafka_versions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="serverProperties") @@ -100,18 +123,45 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the configuration. :param pulumi.Input[str] server_properties: Contents of the server.properties file. Supported properties are documented in the [MSK Developer Guide](https://docs.aws.amazon.com/msk/latest/developerguide/msk-configuration-properties.html). """ + _ConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + kafka_versions=kafka_versions, + latest_revision=latest_revision, + name=name, + server_properties=server_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + kafka_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + latest_revision: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + server_properties: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kafka_versions is None and 'kafkaVersions' in kwargs: + kafka_versions = kwargs['kafkaVersions'] + if latest_revision is None and 'latestRevision' in kwargs: + latest_revision = kwargs['latestRevision'] + if server_properties is None and 'serverProperties' in kwargs: + server_properties = kwargs['serverProperties'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kafka_versions is not None: - pulumi.set(__self__, "kafka_versions", kafka_versions) + _setter("kafka_versions", kafka_versions) if latest_revision is not None: - pulumi.set(__self__, "latest_revision", latest_revision) + _setter("latest_revision", latest_revision) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if server_properties is not None: - pulumi.set(__self__, "server_properties", server_properties) + _setter("server_properties", server_properties) @property @pulumi.getter @@ -269,6 +319,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/msk/get_broker_nodes.py b/sdk/python/pulumi_aws/msk/get_broker_nodes.py index c05c7a197fd..39478045d5b 100644 --- a/sdk/python/pulumi_aws/msk/get_broker_nodes.py +++ b/sdk/python/pulumi_aws/msk/get_broker_nodes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/msk/get_cluster.py b/sdk/python/pulumi_aws/msk/get_cluster.py index 5d1bb603c59..4c03c93c23b 100644 --- a/sdk/python/pulumi_aws/msk/get_cluster.py +++ b/sdk/python/pulumi_aws/msk/get_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/msk/get_configuration.py b/sdk/python/pulumi_aws/msk/get_configuration.py index a3a53d9346f..bc8d36947db 100644 --- a/sdk/python/pulumi_aws/msk/get_configuration.py +++ b/sdk/python/pulumi_aws/msk/get_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/msk/get_kafka_version.py b/sdk/python/pulumi_aws/msk/get_kafka_version.py index 968bcf96b3d..d6045872ee6 100644 --- a/sdk/python/pulumi_aws/msk/get_kafka_version.py +++ b/sdk/python/pulumi_aws/msk/get_kafka_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/msk/get_vpc_connection.py b/sdk/python/pulumi_aws/msk/get_vpc_connection.py index ac51923427b..fe1b48631f8 100644 --- a/sdk/python/pulumi_aws/msk/get_vpc_connection.py +++ b/sdk/python/pulumi_aws/msk/get_vpc_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/msk/outputs.py b/sdk/python/pulumi_aws/msk/outputs.py index c1f3d74ea6c..18368196c17 100644 --- a/sdk/python/pulumi_aws/msk/outputs.py +++ b/sdk/python/pulumi_aws/msk/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -86,15 +86,54 @@ def __init__(__self__, *, :param 'ClusterBrokerNodeGroupInfoConnectivityInfoArgs' connectivity_info: Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible ([documentation](https://docs.aws.amazon.com/msk/latest/developerguide/public-access.html)). :param 'ClusterBrokerNodeGroupInfoStorageInfoArgs' storage_info: A block that contains information about storage volumes attached to MSK broker nodes. See below. """ - pulumi.set(__self__, "client_subnets", client_subnets) - pulumi.set(__self__, "instance_type", instance_type) - pulumi.set(__self__, "security_groups", security_groups) + ClusterBrokerNodeGroupInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_subnets=client_subnets, + instance_type=instance_type, + security_groups=security_groups, + az_distribution=az_distribution, + connectivity_info=connectivity_info, + storage_info=storage_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_subnets: Optional[Sequence[str]] = None, + instance_type: Optional[str] = None, + security_groups: Optional[Sequence[str]] = None, + az_distribution: Optional[str] = None, + connectivity_info: Optional['outputs.ClusterBrokerNodeGroupInfoConnectivityInfo'] = None, + storage_info: Optional['outputs.ClusterBrokerNodeGroupInfoStorageInfo'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_subnets is None and 'clientSubnets' in kwargs: + client_subnets = kwargs['clientSubnets'] + if client_subnets is None: + raise TypeError("Missing 'client_subnets' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is None: + raise TypeError("Missing 'security_groups' argument") + if az_distribution is None and 'azDistribution' in kwargs: + az_distribution = kwargs['azDistribution'] + if connectivity_info is None and 'connectivityInfo' in kwargs: + connectivity_info = kwargs['connectivityInfo'] + if storage_info is None and 'storageInfo' in kwargs: + storage_info = kwargs['storageInfo'] + + _setter("client_subnets", client_subnets) + _setter("instance_type", instance_type) + _setter("security_groups", security_groups) if az_distribution is not None: - pulumi.set(__self__, "az_distribution", az_distribution) + _setter("az_distribution", az_distribution) if connectivity_info is not None: - pulumi.set(__self__, "connectivity_info", connectivity_info) + _setter("connectivity_info", connectivity_info) if storage_info is not None: - pulumi.set(__self__, "storage_info", storage_info) + _setter("storage_info", storage_info) @property @pulumi.getter(name="clientSubnets") @@ -173,10 +212,27 @@ def __init__(__self__, *, :param 'ClusterBrokerNodeGroupInfoConnectivityInfoPublicAccessArgs' public_access: Access control settings for brokers. See below. :param 'ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityArgs' vpc_connectivity: VPC connectivity access control for brokers. See below. """ + ClusterBrokerNodeGroupInfoConnectivityInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + public_access=public_access, + vpc_connectivity=vpc_connectivity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + public_access: Optional['outputs.ClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess'] = None, + vpc_connectivity: Optional['outputs.ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if public_access is None and 'publicAccess' in kwargs: + public_access = kwargs['publicAccess'] + if vpc_connectivity is None and 'vpcConnectivity' in kwargs: + vpc_connectivity = kwargs['vpcConnectivity'] + if public_access is not None: - pulumi.set(__self__, "public_access", public_access) + _setter("public_access", public_access) if vpc_connectivity is not None: - pulumi.set(__self__, "vpc_connectivity", vpc_connectivity) + _setter("vpc_connectivity", vpc_connectivity) @property @pulumi.getter(name="publicAccess") @@ -202,8 +258,19 @@ def __init__(__self__, *, """ :param str type: Public access type. Valid values: `DISABLED`, `SERVICE_PROVIDED_EIPS`. """ + ClusterBrokerNodeGroupInfoConnectivityInfoPublicAccess._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -238,8 +305,21 @@ def __init__(__self__, *, """ :param 'ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationArgs' client_authentication: Configuration block for specifying a client authentication. See below. """ + ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivity._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_authentication=client_authentication, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_authentication: Optional['outputs.ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_authentication is None and 'clientAuthentication' in kwargs: + client_authentication = kwargs['clientAuthentication'] + if client_authentication is not None: - pulumi.set(__self__, "client_authentication", client_authentication) + _setter("client_authentication", client_authentication) @property @pulumi.getter(name="clientAuthentication") @@ -259,10 +339,23 @@ def __init__(__self__, *, :param 'ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSaslArgs' sasl: Configuration block for specifying SASL client authentication. See below. :param bool tls: Configuration block for specifying TLS client authentication. See below. """ + ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthentication._configure( + lambda key, value: pulumi.set(__self__, key, value), + sasl=sasl, + tls=tls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sasl: Optional['outputs.ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl'] = None, + tls: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sasl is not None: - pulumi.set(__self__, "sasl", sasl) + _setter("sasl", sasl) if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) @property @pulumi.getter @@ -287,19 +380,32 @@ def __init__(__self__, *, iam: Optional[bool] = None, scram: Optional[bool] = None): """ - :param bool iam: Enables SASL/IAM authentication for VPC connectivity. - :param bool scram: Enables SASL/SCRAM authentication for VPC connectivity. + :param bool iam: Enables IAM client authentication. Defaults to `false`. + :param bool scram: Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. """ + ClusterBrokerNodeGroupInfoConnectivityInfoVpcConnectivityClientAuthenticationSasl._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam=iam, + scram=scram, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam: Optional[bool] = None, + scram: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam is not None: - pulumi.set(__self__, "iam", iam) + _setter("iam", iam) if scram is not None: - pulumi.set(__self__, "scram", scram) + _setter("scram", scram) @property @pulumi.getter def iam(self) -> Optional[bool]: """ - Enables SASL/IAM authentication for VPC connectivity. + Enables IAM client authentication. Defaults to `false`. """ return pulumi.get(self, "iam") @@ -307,7 +413,7 @@ def iam(self) -> Optional[bool]: @pulumi.getter def scram(self) -> Optional[bool]: """ - Enables SASL/SCRAM authentication for VPC connectivity. + Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. """ return pulumi.get(self, "scram") @@ -336,8 +442,21 @@ def __init__(__self__, *, """ :param 'ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoArgs' ebs_storage_info: A block that contains EBS volume information. See below. """ + ClusterBrokerNodeGroupInfoStorageInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_storage_info=ebs_storage_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_storage_info: Optional['outputs.ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_storage_info is None and 'ebsStorageInfo' in kwargs: + ebs_storage_info = kwargs['ebsStorageInfo'] + if ebs_storage_info is not None: - pulumi.set(__self__, "ebs_storage_info", ebs_storage_info) + _setter("ebs_storage_info", ebs_storage_info) @property @pulumi.getter(name="ebsStorageInfo") @@ -376,10 +495,27 @@ def __init__(__self__, *, :param 'ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughputArgs' provisioned_throughput: A block that contains EBS volume provisioned throughput information. To provision storage throughput, you must choose broker type kafka.m5.4xlarge or larger. See below. :param int volume_size: The size in GiB of the EBS volume for the data drive on each broker node. Minimum value of `1` and maximum value of `16384`. """ + ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + provisioned_throughput=provisioned_throughput, + volume_size=volume_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provisioned_throughput: Optional['outputs.ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput'] = None, + volume_size: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provisioned_throughput is None and 'provisionedThroughput' in kwargs: + provisioned_throughput = kwargs['provisionedThroughput'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if provisioned_throughput is not None: - pulumi.set(__self__, "provisioned_throughput", provisioned_throughput) + _setter("provisioned_throughput", provisioned_throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) @property @pulumi.getter(name="provisionedThroughput") @@ -424,10 +560,25 @@ def __init__(__self__, *, :param bool enabled: Controls whether provisioned throughput is enabled or not. Default value: `false`. :param int volume_throughput: Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. The minimum value is `250`. The maximum value varies between broker type. You can refer to the valid values for the maximum volume throughput at the following [documentation on throughput bottlenecks](https://docs.aws.amazon.com/msk/latest/developerguide/msk-provision-throughput.html#throughput-bottlenecks) """ + ClusterBrokerNodeGroupInfoStorageInfoEbsStorageInfoProvisionedThroughput._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + volume_throughput=volume_throughput, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + volume_throughput: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if volume_throughput is None and 'volumeThroughput' in kwargs: + volume_throughput = kwargs['volumeThroughput'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if volume_throughput is not None: - pulumi.set(__self__, "volume_throughput", volume_throughput) + _setter("volume_throughput", volume_throughput) @property @pulumi.getter @@ -457,12 +608,27 @@ def __init__(__self__, *, :param 'ClusterClientAuthenticationTlsArgs' tls: Configuration block for specifying TLS client authentication. See below. :param bool unauthenticated: Enables unauthenticated access. """ + ClusterClientAuthentication._configure( + lambda key, value: pulumi.set(__self__, key, value), + sasl=sasl, + tls=tls, + unauthenticated=unauthenticated, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sasl: Optional['outputs.ClusterClientAuthenticationSasl'] = None, + tls: Optional['outputs.ClusterClientAuthenticationTls'] = None, + unauthenticated: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sasl is not None: - pulumi.set(__self__, "sasl", sasl) + _setter("sasl", sasl) if tls is not None: - pulumi.set(__self__, "tls", tls) + _setter("tls", tls) if unauthenticated is not None: - pulumi.set(__self__, "unauthenticated", unauthenticated) + _setter("unauthenticated", unauthenticated) @property @pulumi.getter @@ -495,19 +661,32 @@ def __init__(__self__, *, iam: Optional[bool] = None, scram: Optional[bool] = None): """ - :param bool iam: Enables SASL/IAM authentication for VPC connectivity. - :param bool scram: Enables SASL/SCRAM authentication for VPC connectivity. + :param bool iam: Enables IAM client authentication. Defaults to `false`. + :param bool scram: Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. """ + ClusterClientAuthenticationSasl._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam=iam, + scram=scram, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam: Optional[bool] = None, + scram: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam is not None: - pulumi.set(__self__, "iam", iam) + _setter("iam", iam) if scram is not None: - pulumi.set(__self__, "scram", scram) + _setter("scram", scram) @property @pulumi.getter def iam(self) -> Optional[bool]: """ - Enables SASL/IAM authentication for VPC connectivity. + Enables IAM client authentication. Defaults to `false`. """ return pulumi.get(self, "iam") @@ -515,7 +694,7 @@ def iam(self) -> Optional[bool]: @pulumi.getter def scram(self) -> Optional[bool]: """ - Enables SASL/SCRAM authentication for VPC connectivity. + Enables SCRAM client authentication via AWS Secrets Manager. Defaults to `false`. """ return pulumi.get(self, "scram") @@ -544,8 +723,21 @@ def __init__(__self__, *, """ :param Sequence[str] certificate_authority_arns: List of ACM Certificate Authority Amazon Resource Names (ARNs). """ + ClusterClientAuthenticationTls._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_authority_arns=certificate_authority_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_authority_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_authority_arns is None and 'certificateAuthorityArns' in kwargs: + certificate_authority_arns = kwargs['certificateAuthorityArns'] + if certificate_authority_arns is not None: - pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + _setter("certificate_authority_arns", certificate_authority_arns) @property @pulumi.getter(name="certificateAuthorityArns") @@ -565,8 +757,25 @@ def __init__(__self__, *, :param str arn: Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. :param int revision: Revision of the MSK Configuration to use in the cluster. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "revision", revision) + ClusterConfigurationInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + revision=revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + revision: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if revision is None: + raise TypeError("Missing 'revision' argument") + + _setter("arn", arn) + _setter("revision", revision) @property @pulumi.getter @@ -613,10 +822,27 @@ def __init__(__self__, *, :param str encryption_at_rest_kms_key_arn: You may specify a KMS key short ID or ARN (it will always output an ARN) to use for encrypting your data at rest. If no key is specified, an AWS managed KMS ('aws/msk' managed service) key will be used for encrypting the data at rest. :param 'ClusterEncryptionInfoEncryptionInTransitArgs' encryption_in_transit: Configuration block to specify encryption in transit. See below. """ + ClusterEncryptionInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_at_rest_kms_key_arn=encryption_at_rest_kms_key_arn, + encryption_in_transit=encryption_in_transit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_at_rest_kms_key_arn: Optional[str] = None, + encryption_in_transit: Optional['outputs.ClusterEncryptionInfoEncryptionInTransit'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_at_rest_kms_key_arn is None and 'encryptionAtRestKmsKeyArn' in kwargs: + encryption_at_rest_kms_key_arn = kwargs['encryptionAtRestKmsKeyArn'] + if encryption_in_transit is None and 'encryptionInTransit' in kwargs: + encryption_in_transit = kwargs['encryptionInTransit'] + if encryption_at_rest_kms_key_arn is not None: - pulumi.set(__self__, "encryption_at_rest_kms_key_arn", encryption_at_rest_kms_key_arn) + _setter("encryption_at_rest_kms_key_arn", encryption_at_rest_kms_key_arn) if encryption_in_transit is not None: - pulumi.set(__self__, "encryption_in_transit", encryption_in_transit) + _setter("encryption_in_transit", encryption_in_transit) @property @pulumi.getter(name="encryptionAtRestKmsKeyArn") @@ -663,10 +889,27 @@ def __init__(__self__, *, :param str client_broker: Encryption setting for data in transit between clients and brokers. Valid values: `TLS`, `TLS_PLAINTEXT`, and `PLAINTEXT`. Default value is `TLS`. :param bool in_cluster: Whether data communication among broker nodes is encrypted. Default value: `true`. """ + ClusterEncryptionInfoEncryptionInTransit._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_broker=client_broker, + in_cluster=in_cluster, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_broker: Optional[str] = None, + in_cluster: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_broker is None and 'clientBroker' in kwargs: + client_broker = kwargs['clientBroker'] + if in_cluster is None and 'inCluster' in kwargs: + in_cluster = kwargs['inCluster'] + if client_broker is not None: - pulumi.set(__self__, "client_broker", client_broker) + _setter("client_broker", client_broker) if in_cluster is not None: - pulumi.set(__self__, "in_cluster", in_cluster) + _setter("in_cluster", in_cluster) @property @pulumi.getter(name="clientBroker") @@ -709,7 +952,22 @@ def __init__(__self__, *, """ :param 'ClusterLoggingInfoBrokerLogsArgs' broker_logs: Configuration block for Broker Logs settings for logging info. See below. """ - pulumi.set(__self__, "broker_logs", broker_logs) + ClusterLoggingInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + broker_logs=broker_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + broker_logs: Optional['outputs.ClusterLoggingInfoBrokerLogs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if broker_logs is None and 'brokerLogs' in kwargs: + broker_logs = kwargs['brokerLogs'] + if broker_logs is None: + raise TypeError("Missing 'broker_logs' argument") + + _setter("broker_logs", broker_logs) @property @pulumi.getter(name="brokerLogs") @@ -743,12 +1001,29 @@ def __init__(__self__, *, cloudwatch_logs: Optional['outputs.ClusterLoggingInfoBrokerLogsCloudwatchLogs'] = None, firehose: Optional['outputs.ClusterLoggingInfoBrokerLogsFirehose'] = None, s3: Optional['outputs.ClusterLoggingInfoBrokerLogsS3'] = None): + ClusterLoggingInfoBrokerLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + firehose=firehose, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional['outputs.ClusterLoggingInfoBrokerLogsCloudwatchLogs'] = None, + firehose: Optional['outputs.ClusterLoggingInfoBrokerLogsFirehose'] = None, + s3: Optional['outputs.ClusterLoggingInfoBrokerLogsS3'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -792,9 +1067,26 @@ def __init__(__self__, *, :param bool enabled: Controls whether provisioned throughput is enabled or not. Default value: `false`. :param str log_group: Name of the Cloudwatch Log Group to deliver logs to. """ - pulumi.set(__self__, "enabled", enabled) + ClusterLoggingInfoBrokerLogsCloudwatchLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + + _setter("enabled", enabled) if log_group is not None: - pulumi.set(__self__, "log_group", log_group) + _setter("log_group", log_group) @property @pulumi.getter @@ -839,9 +1131,26 @@ def __init__(__self__, *, :param bool enabled: Controls whether provisioned throughput is enabled or not. Default value: `false`. :param str delivery_stream: Name of the Kinesis Data Firehose delivery stream to deliver logs to. """ - pulumi.set(__self__, "enabled", enabled) + ClusterLoggingInfoBrokerLogsFirehose._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + delivery_stream=delivery_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + delivery_stream: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if delivery_stream is None and 'deliveryStream' in kwargs: + delivery_stream = kwargs['deliveryStream'] + + _setter("enabled", enabled) if delivery_stream is not None: - pulumi.set(__self__, "delivery_stream", delivery_stream) + _setter("delivery_stream", delivery_stream) @property @pulumi.getter @@ -871,11 +1180,28 @@ def __init__(__self__, *, :param str bucket: Name of the S3 bucket to deliver logs to. :param str prefix: Prefix to append to the folder name. """ - pulumi.set(__self__, "enabled", enabled) + ClusterLoggingInfoBrokerLogsS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + bucket: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -909,7 +1235,20 @@ def __init__(__self__, *, """ :param 'ClusterOpenMonitoringPrometheusArgs' prometheus: Configuration block for Prometheus settings for open monitoring. See below. """ - pulumi.set(__self__, "prometheus", prometheus) + ClusterOpenMonitoring._configure( + lambda key, value: pulumi.set(__self__, key, value), + prometheus=prometheus, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prometheus: Optional['outputs.ClusterOpenMonitoringPrometheus'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prometheus is None: + raise TypeError("Missing 'prometheus' argument") + + _setter("prometheus", prometheus) @property @pulumi.getter @@ -948,10 +1287,27 @@ def __init__(__self__, *, :param 'ClusterOpenMonitoringPrometheusJmxExporterArgs' jmx_exporter: Configuration block for JMX Exporter. See below. :param 'ClusterOpenMonitoringPrometheusNodeExporterArgs' node_exporter: Configuration block for Node Exporter. See below. """ + ClusterOpenMonitoringPrometheus._configure( + lambda key, value: pulumi.set(__self__, key, value), + jmx_exporter=jmx_exporter, + node_exporter=node_exporter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jmx_exporter: Optional['outputs.ClusterOpenMonitoringPrometheusJmxExporter'] = None, + node_exporter: Optional['outputs.ClusterOpenMonitoringPrometheusNodeExporter'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jmx_exporter is None and 'jmxExporter' in kwargs: + jmx_exporter = kwargs['jmxExporter'] + if node_exporter is None and 'nodeExporter' in kwargs: + node_exporter = kwargs['nodeExporter'] + if jmx_exporter is not None: - pulumi.set(__self__, "jmx_exporter", jmx_exporter) + _setter("jmx_exporter", jmx_exporter) if node_exporter is not None: - pulumi.set(__self__, "node_exporter", node_exporter) + _setter("node_exporter", node_exporter) @property @pulumi.getter(name="jmxExporter") @@ -992,15 +1348,30 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled_in_broker: bool): """ - :param bool enabled_in_broker: Indicates whether you want to enable or disable the JMX Exporter. + :param bool enabled_in_broker: Indicates whether you want to enable or disable the Node Exporter. """ - pulumi.set(__self__, "enabled_in_broker", enabled_in_broker) + ClusterOpenMonitoringPrometheusJmxExporter._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled_in_broker=enabled_in_broker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled_in_broker: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled_in_broker is None and 'enabledInBroker' in kwargs: + enabled_in_broker = kwargs['enabledInBroker'] + if enabled_in_broker is None: + raise TypeError("Missing 'enabled_in_broker' argument") + + _setter("enabled_in_broker", enabled_in_broker) @property @pulumi.getter(name="enabledInBroker") def enabled_in_broker(self) -> bool: """ - Indicates whether you want to enable or disable the JMX Exporter. + Indicates whether you want to enable or disable the Node Exporter. """ return pulumi.get(self, "enabled_in_broker") @@ -1027,15 +1398,30 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled_in_broker: bool): """ - :param bool enabled_in_broker: Indicates whether you want to enable or disable the JMX Exporter. + :param bool enabled_in_broker: Indicates whether you want to enable or disable the Node Exporter. """ - pulumi.set(__self__, "enabled_in_broker", enabled_in_broker) + ClusterOpenMonitoringPrometheusNodeExporter._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled_in_broker=enabled_in_broker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled_in_broker: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled_in_broker is None and 'enabledInBroker' in kwargs: + enabled_in_broker = kwargs['enabledInBroker'] + if enabled_in_broker is None: + raise TypeError("Missing 'enabled_in_broker' argument") + + _setter("enabled_in_broker", enabled_in_broker) @property @pulumi.getter(name="enabledInBroker") def enabled_in_broker(self) -> bool: """ - Indicates whether you want to enable or disable the JMX Exporter. + Indicates whether you want to enable or disable the Node Exporter. """ return pulumi.get(self, "enabled_in_broker") @@ -1047,7 +1433,20 @@ def __init__(__self__, *, """ :param 'ServerlessClusterClientAuthenticationSaslArgs' sasl: Details for client authentication using SASL. See below. """ - pulumi.set(__self__, "sasl", sasl) + ServerlessClusterClientAuthentication._configure( + lambda key, value: pulumi.set(__self__, key, value), + sasl=sasl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sasl: Optional['outputs.ServerlessClusterClientAuthenticationSasl'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sasl is None: + raise TypeError("Missing 'sasl' argument") + + _setter("sasl", sasl) @property @pulumi.getter @@ -1065,7 +1464,20 @@ def __init__(__self__, *, """ :param 'ServerlessClusterClientAuthenticationSaslIamArgs' iam: Details for client authentication using IAM. See below. """ - pulumi.set(__self__, "iam", iam) + ServerlessClusterClientAuthenticationSasl._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam=iam, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam: Optional['outputs.ServerlessClusterClientAuthenticationSaslIam'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam is None: + raise TypeError("Missing 'iam' argument") + + _setter("iam", iam) @property @pulumi.getter @@ -1083,7 +1495,20 @@ def __init__(__self__, *, """ :param bool enabled: Whether SASL/IAM authentication is enabled or not. """ - pulumi.set(__self__, "enabled", enabled) + ServerlessClusterClientAuthenticationSaslIam._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -1122,9 +1547,28 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: A list of subnets in at least two different Availability Zones that host your client applications. :param Sequence[str] security_group_ids: Specifies up to five security groups that control inbound and outbound traffic for the serverless cluster. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + ServerlessClusterVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + security_group_ids=security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("subnet_ids", subnet_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) @property @pulumi.getter(name="subnetIds") @@ -1160,12 +1604,55 @@ def __init__(__self__, *, :param Sequence[str] endpoints: Set of endpoints for accessing the broker. This does not include ports :param str node_arn: ARN of the node """ - pulumi.set(__self__, "attached_eni_id", attached_eni_id) - pulumi.set(__self__, "broker_id", broker_id) - pulumi.set(__self__, "client_subnet", client_subnet) - pulumi.set(__self__, "client_vpc_ip_address", client_vpc_ip_address) - pulumi.set(__self__, "endpoints", endpoints) - pulumi.set(__self__, "node_arn", node_arn) + GetBrokerNodesNodeInfoListResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attached_eni_id=attached_eni_id, + broker_id=broker_id, + client_subnet=client_subnet, + client_vpc_ip_address=client_vpc_ip_address, + endpoints=endpoints, + node_arn=node_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attached_eni_id: Optional[str] = None, + broker_id: Optional[float] = None, + client_subnet: Optional[str] = None, + client_vpc_ip_address: Optional[str] = None, + endpoints: Optional[Sequence[str]] = None, + node_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attached_eni_id is None and 'attachedEniId' in kwargs: + attached_eni_id = kwargs['attachedEniId'] + if attached_eni_id is None: + raise TypeError("Missing 'attached_eni_id' argument") + if broker_id is None and 'brokerId' in kwargs: + broker_id = kwargs['brokerId'] + if broker_id is None: + raise TypeError("Missing 'broker_id' argument") + if client_subnet is None and 'clientSubnet' in kwargs: + client_subnet = kwargs['clientSubnet'] + if client_subnet is None: + raise TypeError("Missing 'client_subnet' argument") + if client_vpc_ip_address is None and 'clientVpcIpAddress' in kwargs: + client_vpc_ip_address = kwargs['clientVpcIpAddress'] + if client_vpc_ip_address is None: + raise TypeError("Missing 'client_vpc_ip_address' argument") + if endpoints is None: + raise TypeError("Missing 'endpoints' argument") + if node_arn is None and 'nodeArn' in kwargs: + node_arn = kwargs['nodeArn'] + if node_arn is None: + raise TypeError("Missing 'node_arn' argument") + + _setter("attached_eni_id", attached_eni_id) + _setter("broker_id", broker_id) + _setter("client_subnet", client_subnet) + _setter("client_vpc_ip_address", client_vpc_ip_address) + _setter("endpoints", endpoints) + _setter("node_arn", node_arn) @property @pulumi.getter(name="attachedEniId") diff --git a/sdk/python/pulumi_aws/msk/scram_secret_association.py b/sdk/python/pulumi_aws/msk/scram_secret_association.py index 88ea5a35224..bb550d10578 100644 --- a/sdk/python/pulumi_aws/msk/scram_secret_association.py +++ b/sdk/python/pulumi_aws/msk/scram_secret_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ScramSecretAssociationArgs', 'ScramSecretAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_arn: Amazon Resource Name (ARN) of the MSK cluster. :param pulumi.Input[Sequence[pulumi.Input[str]]] secret_arn_lists: List of AWS Secrets Manager secret ARNs. """ - pulumi.set(__self__, "cluster_arn", cluster_arn) - pulumi.set(__self__, "secret_arn_lists", secret_arn_lists) + ScramSecretAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_arn=cluster_arn, + secret_arn_lists=secret_arn_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_arn: Optional[pulumi.Input[str]] = None, + secret_arn_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_arn is None and 'clusterArn' in kwargs: + cluster_arn = kwargs['clusterArn'] + if cluster_arn is None: + raise TypeError("Missing 'cluster_arn' argument") + if secret_arn_lists is None and 'secretArnLists' in kwargs: + secret_arn_lists = kwargs['secretArnLists'] + if secret_arn_lists is None: + raise TypeError("Missing 'secret_arn_lists' argument") + + _setter("cluster_arn", cluster_arn) + _setter("secret_arn_lists", secret_arn_lists) @property @pulumi.getter(name="clusterArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_arn: Amazon Resource Name (ARN) of the MSK cluster. :param pulumi.Input[Sequence[pulumi.Input[str]]] secret_arn_lists: List of AWS Secrets Manager secret ARNs. """ + _ScramSecretAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_arn=cluster_arn, + secret_arn_lists=secret_arn_lists, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_arn: Optional[pulumi.Input[str]] = None, + secret_arn_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_arn is None and 'clusterArn' in kwargs: + cluster_arn = kwargs['clusterArn'] + if secret_arn_lists is None and 'secretArnLists' in kwargs: + secret_arn_lists = kwargs['secretArnLists'] + if cluster_arn is not None: - pulumi.set(__self__, "cluster_arn", cluster_arn) + _setter("cluster_arn", cluster_arn) if secret_arn_lists is not None: - pulumi.set(__self__, "secret_arn_lists", secret_arn_lists) + _setter("secret_arn_lists", secret_arn_lists) @property @pulumi.getter(name="clusterArn") @@ -238,6 +276,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ScramSecretAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/msk/serverless_cluster.py b/sdk/python/pulumi_aws/msk/serverless_cluster.py index 5fa5d9d98d7..c636d4bdac6 100644 --- a/sdk/python/pulumi_aws/msk/serverless_cluster.py +++ b/sdk/python/pulumi_aws/msk/serverless_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_name: The name of the serverless cluster. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "client_authentication", client_authentication) - pulumi.set(__self__, "vpc_configs", vpc_configs) + ServerlessClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_authentication=client_authentication, + vpc_configs=vpc_configs, + cluster_name=cluster_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_authentication: Optional[pulumi.Input['ServerlessClusterClientAuthenticationArgs']] = None, + vpc_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ServerlessClusterVpcConfigArgs']]]] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_authentication is None and 'clientAuthentication' in kwargs: + client_authentication = kwargs['clientAuthentication'] + if client_authentication is None: + raise TypeError("Missing 'client_authentication' argument") + if vpc_configs is None and 'vpcConfigs' in kwargs: + vpc_configs = kwargs['vpcConfigs'] + if vpc_configs is None: + raise TypeError("Missing 'vpc_configs' argument") + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + + _setter("client_authentication", client_authentication) + _setter("vpc_configs", vpc_configs) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clientAuthentication") @@ -103,23 +130,56 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input['ServerlessClusterVpcConfigArgs']]] vpc_configs: VPC configuration information. See below. """ + _ServerlessClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + client_authentication=client_authentication, + cluster_name=cluster_name, + cluster_uuid=cluster_uuid, + tags=tags, + tags_all=tags_all, + vpc_configs=vpc_configs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + client_authentication: Optional[pulumi.Input['ServerlessClusterClientAuthenticationArgs']] = None, + cluster_name: Optional[pulumi.Input[str]] = None, + cluster_uuid: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ServerlessClusterVpcConfigArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_authentication is None and 'clientAuthentication' in kwargs: + client_authentication = kwargs['clientAuthentication'] + if cluster_name is None and 'clusterName' in kwargs: + cluster_name = kwargs['clusterName'] + if cluster_uuid is None and 'clusterUuid' in kwargs: + cluster_uuid = kwargs['clusterUuid'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_configs is None and 'vpcConfigs' in kwargs: + vpc_configs = kwargs['vpcConfigs'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if client_authentication is not None: - pulumi.set(__self__, "client_authentication", client_authentication) + _setter("client_authentication", client_authentication) if cluster_name is not None: - pulumi.set(__self__, "cluster_name", cluster_name) + _setter("cluster_name", cluster_name) if cluster_uuid is not None: - pulumi.set(__self__, "cluster_uuid", cluster_uuid) + _setter("cluster_uuid", cluster_uuid) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_configs is not None: - pulumi.set(__self__, "vpc_configs", vpc_configs) + _setter("vpc_configs", vpc_configs) @property @pulumi.getter @@ -268,6 +328,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServerlessClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -286,6 +350,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ServerlessClusterArgs.__new__(ServerlessClusterArgs) + client_authentication = _utilities.configure(client_authentication, ServerlessClusterClientAuthenticationArgs, True) if client_authentication is None and not opts.urn: raise TypeError("Missing required property 'client_authentication'") __props__.__dict__["client_authentication"] = client_authentication diff --git a/sdk/python/pulumi_aws/msk/vpc_connection.py b/sdk/python/pulumi_aws/msk/vpc_connection.py index 5c330a87349..67b5898ca62 100644 --- a/sdk/python/pulumi_aws/msk/vpc_connection.py +++ b/sdk/python/pulumi_aws/msk/vpc_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcConnectionArgs', 'VpcConnection'] @@ -29,13 +29,52 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The VPC ID of the remote client. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "authentication", authentication) - pulumi.set(__self__, "client_subnets", client_subnets) - pulumi.set(__self__, "security_groups", security_groups) - pulumi.set(__self__, "target_cluster_arn", target_cluster_arn) - pulumi.set(__self__, "vpc_id", vpc_id) + VpcConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication=authentication, + client_subnets=client_subnets, + security_groups=security_groups, + target_cluster_arn=target_cluster_arn, + vpc_id=vpc_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication: Optional[pulumi.Input[str]] = None, + client_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + target_cluster_arn: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication is None: + raise TypeError("Missing 'authentication' argument") + if client_subnets is None and 'clientSubnets' in kwargs: + client_subnets = kwargs['clientSubnets'] + if client_subnets is None: + raise TypeError("Missing 'client_subnets' argument") + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is None: + raise TypeError("Missing 'security_groups' argument") + if target_cluster_arn is None and 'targetClusterArn' in kwargs: + target_cluster_arn = kwargs['targetClusterArn'] + if target_cluster_arn is None: + raise TypeError("Missing 'target_cluster_arn' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("authentication", authentication) + _setter("client_subnets", client_subnets) + _setter("security_groups", security_groups) + _setter("target_cluster_arn", target_cluster_arn) + _setter("vpc_id", vpc_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -132,25 +171,60 @@ def __init__(__self__, *, :param pulumi.Input[str] target_cluster_arn: The Amazon Resource Name (ARN) of the cluster. :param pulumi.Input[str] vpc_id: The VPC ID of the remote client. """ + _VpcConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + authentication=authentication, + client_subnets=client_subnets, + security_groups=security_groups, + tags=tags, + tags_all=tags_all, + target_cluster_arn=target_cluster_arn, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + authentication: Optional[pulumi.Input[str]] = None, + client_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_cluster_arn: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_subnets is None and 'clientSubnets' in kwargs: + client_subnets = kwargs['clientSubnets'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_cluster_arn is None and 'targetClusterArn' in kwargs: + target_cluster_arn = kwargs['targetClusterArn'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if authentication is not None: - pulumi.set(__self__, "authentication", authentication) + _setter("authentication", authentication) if client_subnets is not None: - pulumi.set(__self__, "client_subnets", client_subnets) + _setter("client_subnets", client_subnets) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_cluster_arn is not None: - pulumi.set(__self__, "target_cluster_arn", target_cluster_arn) + _setter("target_cluster_arn", target_cluster_arn) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -339,6 +413,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/mskconnect/_inputs.py b/sdk/python/pulumi_aws/mskconnect/_inputs.py index e76b8c8993c..a4e712426d0 100644 --- a/sdk/python/pulumi_aws/mskconnect/_inputs.py +++ b/sdk/python/pulumi_aws/mskconnect/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,10 +41,25 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorCapacityAutoscalingArgs'] autoscaling: Information about the auto scaling parameters for the connector. See below. :param pulumi.Input['ConnectorCapacityProvisionedCapacityArgs'] provisioned_capacity: Details about a fixed capacity allocated to a connector. See below. """ + ConnectorCapacityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling=autoscaling, + provisioned_capacity=provisioned_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling: Optional[pulumi.Input['ConnectorCapacityAutoscalingArgs']] = None, + provisioned_capacity: Optional[pulumi.Input['ConnectorCapacityProvisionedCapacityArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provisioned_capacity is None and 'provisionedCapacity' in kwargs: + provisioned_capacity = kwargs['provisionedCapacity'] + if autoscaling is not None: - pulumi.set(__self__, "autoscaling", autoscaling) + _setter("autoscaling", autoscaling) if provisioned_capacity is not None: - pulumi.set(__self__, "provisioned_capacity", provisioned_capacity) + _setter("provisioned_capacity", provisioned_capacity) @property @pulumi.getter @@ -86,14 +101,47 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorCapacityAutoscalingScaleInPolicyArgs'] scale_in_policy: The scale-in policy for the connector. See below. :param pulumi.Input['ConnectorCapacityAutoscalingScaleOutPolicyArgs'] scale_out_policy: The scale-out policy for the connector. See below. """ - pulumi.set(__self__, "max_worker_count", max_worker_count) - pulumi.set(__self__, "min_worker_count", min_worker_count) + ConnectorCapacityAutoscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_worker_count=max_worker_count, + min_worker_count=min_worker_count, + mcu_count=mcu_count, + scale_in_policy=scale_in_policy, + scale_out_policy=scale_out_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_worker_count: Optional[pulumi.Input[int]] = None, + min_worker_count: Optional[pulumi.Input[int]] = None, + mcu_count: Optional[pulumi.Input[int]] = None, + scale_in_policy: Optional[pulumi.Input['ConnectorCapacityAutoscalingScaleInPolicyArgs']] = None, + scale_out_policy: Optional[pulumi.Input['ConnectorCapacityAutoscalingScaleOutPolicyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_worker_count is None and 'maxWorkerCount' in kwargs: + max_worker_count = kwargs['maxWorkerCount'] + if max_worker_count is None: + raise TypeError("Missing 'max_worker_count' argument") + if min_worker_count is None and 'minWorkerCount' in kwargs: + min_worker_count = kwargs['minWorkerCount'] + if min_worker_count is None: + raise TypeError("Missing 'min_worker_count' argument") + if mcu_count is None and 'mcuCount' in kwargs: + mcu_count = kwargs['mcuCount'] + if scale_in_policy is None and 'scaleInPolicy' in kwargs: + scale_in_policy = kwargs['scaleInPolicy'] + if scale_out_policy is None and 'scaleOutPolicy' in kwargs: + scale_out_policy = kwargs['scaleOutPolicy'] + + _setter("max_worker_count", max_worker_count) + _setter("min_worker_count", min_worker_count) if mcu_count is not None: - pulumi.set(__self__, "mcu_count", mcu_count) + _setter("mcu_count", mcu_count) if scale_in_policy is not None: - pulumi.set(__self__, "scale_in_policy", scale_in_policy) + _setter("scale_in_policy", scale_in_policy) if scale_out_policy is not None: - pulumi.set(__self__, "scale_out_policy", scale_out_policy) + _setter("scale_out_policy", scale_out_policy) @property @pulumi.getter(name="maxWorkerCount") @@ -163,8 +211,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] cpu_utilization_percentage: Specifies the CPU utilization percentage threshold at which you want connector scale in to be triggered. """ + ConnectorCapacityAutoscalingScaleInPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_utilization_percentage=cpu_utilization_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_utilization_percentage: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_utilization_percentage is None and 'cpuUtilizationPercentage' in kwargs: + cpu_utilization_percentage = kwargs['cpuUtilizationPercentage'] + if cpu_utilization_percentage is not None: - pulumi.set(__self__, "cpu_utilization_percentage", cpu_utilization_percentage) + _setter("cpu_utilization_percentage", cpu_utilization_percentage) @property @pulumi.getter(name="cpuUtilizationPercentage") @@ -186,8 +247,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] cpu_utilization_percentage: The CPU utilization percentage threshold at which you want connector scale out to be triggered. """ + ConnectorCapacityAutoscalingScaleOutPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_utilization_percentage=cpu_utilization_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_utilization_percentage: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_utilization_percentage is None and 'cpuUtilizationPercentage' in kwargs: + cpu_utilization_percentage = kwargs['cpuUtilizationPercentage'] + if cpu_utilization_percentage is not None: - pulumi.set(__self__, "cpu_utilization_percentage", cpu_utilization_percentage) + _setter("cpu_utilization_percentage", cpu_utilization_percentage) @property @pulumi.getter(name="cpuUtilizationPercentage") @@ -211,9 +285,28 @@ def __init__(__self__, *, :param pulumi.Input[int] worker_count: The number of workers that are allocated to the connector. :param pulumi.Input[int] mcu_count: The number of microcontroller units (MCUs) allocated to each connector worker. Valid values: `1`, `2`, `4`, `8`. The default value is `1`. """ - pulumi.set(__self__, "worker_count", worker_count) + ConnectorCapacityProvisionedCapacityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + worker_count=worker_count, + mcu_count=mcu_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + worker_count: Optional[pulumi.Input[int]] = None, + mcu_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if worker_count is None and 'workerCount' in kwargs: + worker_count = kwargs['workerCount'] + if worker_count is None: + raise TypeError("Missing 'worker_count' argument") + if mcu_count is None and 'mcuCount' in kwargs: + mcu_count = kwargs['mcuCount'] + + _setter("worker_count", worker_count) if mcu_count is not None: - pulumi.set(__self__, "mcu_count", mcu_count) + _setter("mcu_count", mcu_count) @property @pulumi.getter(name="workerCount") @@ -247,7 +340,22 @@ def __init__(__self__, *, """ :param pulumi.Input['ConnectorKafkaClusterApacheKafkaClusterArgs'] apache_kafka_cluster: The Apache Kafka cluster to which the connector is connected. """ - pulumi.set(__self__, "apache_kafka_cluster", apache_kafka_cluster) + ConnectorKafkaClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + apache_kafka_cluster=apache_kafka_cluster, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apache_kafka_cluster: Optional[pulumi.Input['ConnectorKafkaClusterApacheKafkaClusterArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apache_kafka_cluster is None and 'apacheKafkaCluster' in kwargs: + apache_kafka_cluster = kwargs['apacheKafkaCluster'] + if apache_kafka_cluster is None: + raise TypeError("Missing 'apache_kafka_cluster' argument") + + _setter("apache_kafka_cluster", apache_kafka_cluster) @property @pulumi.getter(name="apacheKafkaCluster") @@ -271,8 +379,27 @@ def __init__(__self__, *, :param pulumi.Input[str] bootstrap_servers: The bootstrap servers of the cluster. :param pulumi.Input['ConnectorKafkaClusterApacheKafkaClusterVpcArgs'] vpc: Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster. """ - pulumi.set(__self__, "bootstrap_servers", bootstrap_servers) - pulumi.set(__self__, "vpc", vpc) + ConnectorKafkaClusterApacheKafkaClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bootstrap_servers=bootstrap_servers, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bootstrap_servers: Optional[pulumi.Input[str]] = None, + vpc: Optional[pulumi.Input['ConnectorKafkaClusterApacheKafkaClusterVpcArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bootstrap_servers is None and 'bootstrapServers' in kwargs: + bootstrap_servers = kwargs['bootstrapServers'] + if bootstrap_servers is None: + raise TypeError("Missing 'bootstrap_servers' argument") + if vpc is None: + raise TypeError("Missing 'vpc' argument") + + _setter("bootstrap_servers", bootstrap_servers) + _setter("vpc", vpc) @property @pulumi.getter(name="bootstrapServers") @@ -308,8 +435,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: The security groups for the connector. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: The subnets for the connector. """ - pulumi.set(__self__, "security_groups", security_groups) - pulumi.set(__self__, "subnets", subnets) + ConnectorKafkaClusterApacheKafkaClusterVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_groups=security_groups, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is None: + raise TypeError("Missing 'security_groups' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_groups", security_groups) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroups") @@ -343,8 +489,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] authentication_type: The type of client authentication used to connect to the Apache Kafka cluster. Valid values: `IAM`, `NONE`. A value of `NONE` means that no client authentication is used. The default value is `NONE`. """ + ConnectorKafkaClusterClientAuthenticationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is not None: - pulumi.set(__self__, "authentication_type", authentication_type) + _setter("authentication_type", authentication_type) @property @pulumi.getter(name="authenticationType") @@ -366,8 +525,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] encryption_type: The type of encryption in transit to the Apache Kafka cluster. Valid values: `PLAINTEXT`, `TLS`. The default values is `PLAINTEXT`. """ + ConnectorKafkaClusterEncryptionInTransitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if encryption_type is not None: - pulumi.set(__self__, "encryption_type", encryption_type) + _setter("encryption_type", encryption_type) @property @pulumi.getter(name="encryptionType") @@ -389,7 +561,22 @@ def __init__(__self__, *, """ :param pulumi.Input['ConnectorLogDeliveryWorkerLogDeliveryArgs'] worker_log_delivery: The workers can send worker logs to different destination types. This configuration specifies the details of these destinations. See below. """ - pulumi.set(__self__, "worker_log_delivery", worker_log_delivery) + ConnectorLogDeliveryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + worker_log_delivery=worker_log_delivery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + worker_log_delivery: Optional[pulumi.Input['ConnectorLogDeliveryWorkerLogDeliveryArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if worker_log_delivery is None and 'workerLogDelivery' in kwargs: + worker_log_delivery = kwargs['workerLogDelivery'] + if worker_log_delivery is None: + raise TypeError("Missing 'worker_log_delivery' argument") + + _setter("worker_log_delivery", worker_log_delivery) @property @pulumi.getter(name="workerLogDelivery") @@ -415,12 +602,29 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorLogDeliveryWorkerLogDeliveryFirehoseArgs'] firehose: Details about delivering logs to Amazon Kinesis Data Firehose. See below. :param pulumi.Input['ConnectorLogDeliveryWorkerLogDeliveryS3Args'] s3: Details about delivering logs to Amazon S3. See below. """ + ConnectorLogDeliveryWorkerLogDeliveryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + firehose=firehose, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional[pulumi.Input['ConnectorLogDeliveryWorkerLogDeliveryCloudwatchLogsArgs']] = None, + firehose: Optional[pulumi.Input['ConnectorLogDeliveryWorkerLogDeliveryFirehoseArgs']] = None, + s3: Optional[pulumi.Input['ConnectorLogDeliveryWorkerLogDeliveryS3Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -468,9 +672,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Whether log delivery to Amazon CloudWatch Logs is enabled. :param pulumi.Input[str] log_group: The name of the CloudWatch log group that is the destination for log delivery. """ - pulumi.set(__self__, "enabled", enabled) + ConnectorLogDeliveryWorkerLogDeliveryCloudwatchLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + + _setter("enabled", enabled) if log_group is not None: - pulumi.set(__self__, "log_group", log_group) + _setter("log_group", log_group) @property @pulumi.getter @@ -506,9 +727,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Specifies whether connector logs get delivered to Amazon Kinesis Data Firehose. :param pulumi.Input[str] delivery_stream: The name of the Kinesis Data Firehose delivery stream that is the destination for log delivery. """ - pulumi.set(__self__, "enabled", enabled) + ConnectorLogDeliveryWorkerLogDeliveryFirehoseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + delivery_stream=delivery_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + delivery_stream: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if delivery_stream is None and 'deliveryStream' in kwargs: + delivery_stream = kwargs['deliveryStream'] + + _setter("enabled", enabled) if delivery_stream is not None: - pulumi.set(__self__, "delivery_stream", delivery_stream) + _setter("delivery_stream", delivery_stream) @property @pulumi.getter @@ -546,11 +784,28 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: The name of the S3 bucket that is the destination for log delivery. :param pulumi.Input[str] prefix: The S3 prefix that is the destination for log delivery. """ - pulumi.set(__self__, "enabled", enabled) + ConnectorLogDeliveryWorkerLogDeliveryS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + bucket: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -596,7 +851,22 @@ def __init__(__self__, *, """ :param pulumi.Input['ConnectorPluginCustomPluginArgs'] custom_plugin: Details about a custom plugin. See below. """ - pulumi.set(__self__, "custom_plugin", custom_plugin) + ConnectorPluginArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_plugin=custom_plugin, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_plugin: Optional[pulumi.Input['ConnectorPluginCustomPluginArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_plugin is None and 'customPlugin' in kwargs: + custom_plugin = kwargs['customPlugin'] + if custom_plugin is None: + raise TypeError("Missing 'custom_plugin' argument") + + _setter("custom_plugin", custom_plugin) @property @pulumi.getter(name="customPlugin") @@ -620,8 +890,25 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the custom plugin. :param pulumi.Input[int] revision: The revision of the custom plugin. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "revision", revision) + ConnectorPluginCustomPluginArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + revision=revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + revision: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if revision is None: + raise TypeError("Missing 'revision' argument") + + _setter("arn", arn) + _setter("revision", revision) @property @pulumi.getter @@ -657,8 +944,25 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the worker configuration. :param pulumi.Input[int] revision: The revision of the worker configuration. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "revision", revision) + ConnectorWorkerConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + revision=revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + revision: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if revision is None: + raise TypeError("Missing 'revision' argument") + + _setter("arn", arn) + _setter("revision", revision) @property @pulumi.getter @@ -692,7 +996,20 @@ def __init__(__self__, *, """ :param pulumi.Input['CustomPluginLocationS3Args'] s3: Information of the plugin file stored in Amazon S3. See below. """ - pulumi.set(__self__, "s3", s3) + CustomPluginLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional[pulumi.Input['CustomPluginLocationS3Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + + _setter("s3", s3) @property @pulumi.getter @@ -718,10 +1035,35 @@ def __init__(__self__, *, :param pulumi.Input[str] file_key: The file key for an object in an S3 bucket. :param pulumi.Input[str] object_version: The version of an object in an S3 bucket. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "file_key", file_key) + CustomPluginLocationS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + file_key=file_key, + object_version=object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + file_key: Optional[pulumi.Input[str]] = None, + object_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if file_key is None and 'fileKey' in kwargs: + file_key = kwargs['fileKey'] + if file_key is None: + raise TypeError("Missing 'file_key' argument") + if object_version is None and 'objectVersion' in kwargs: + object_version = kwargs['objectVersion'] + + _setter("bucket_arn", bucket_arn) + _setter("file_key", file_key) if object_version is not None: - pulumi.set(__self__, "object_version", object_version) + _setter("object_version", object_version) @property @pulumi.getter(name="bucketArn") diff --git a/sdk/python/pulumi_aws/mskconnect/connector.py b/sdk/python/pulumi_aws/mskconnect/connector.py index d0d84481dd8..88ab7fcde5f 100644 --- a/sdk/python/pulumi_aws/mskconnect/connector.py +++ b/sdk/python/pulumi_aws/mskconnect/connector.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -43,22 +43,87 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the connector. :param pulumi.Input['ConnectorWorkerConfigurationArgs'] worker_configuration: Specifies which worker configuration to use with the connector. See below. """ - pulumi.set(__self__, "capacity", capacity) - pulumi.set(__self__, "connector_configuration", connector_configuration) - pulumi.set(__self__, "kafka_cluster", kafka_cluster) - pulumi.set(__self__, "kafka_cluster_client_authentication", kafka_cluster_client_authentication) - pulumi.set(__self__, "kafka_cluster_encryption_in_transit", kafka_cluster_encryption_in_transit) - pulumi.set(__self__, "kafkaconnect_version", kafkaconnect_version) - pulumi.set(__self__, "plugins", plugins) - pulumi.set(__self__, "service_execution_role_arn", service_execution_role_arn) + ConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity=capacity, + connector_configuration=connector_configuration, + kafka_cluster=kafka_cluster, + kafka_cluster_client_authentication=kafka_cluster_client_authentication, + kafka_cluster_encryption_in_transit=kafka_cluster_encryption_in_transit, + kafkaconnect_version=kafkaconnect_version, + plugins=plugins, + service_execution_role_arn=service_execution_role_arn, + description=description, + log_delivery=log_delivery, + name=name, + worker_configuration=worker_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity: Optional[pulumi.Input['ConnectorCapacityArgs']] = None, + connector_configuration: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + kafka_cluster: Optional[pulumi.Input['ConnectorKafkaClusterArgs']] = None, + kafka_cluster_client_authentication: Optional[pulumi.Input['ConnectorKafkaClusterClientAuthenticationArgs']] = None, + kafka_cluster_encryption_in_transit: Optional[pulumi.Input['ConnectorKafkaClusterEncryptionInTransitArgs']] = None, + kafkaconnect_version: Optional[pulumi.Input[str]] = None, + plugins: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectorPluginArgs']]]] = None, + service_execution_role_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + log_delivery: Optional[pulumi.Input['ConnectorLogDeliveryArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + worker_configuration: Optional[pulumi.Input['ConnectorWorkerConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity is None: + raise TypeError("Missing 'capacity' argument") + if connector_configuration is None and 'connectorConfiguration' in kwargs: + connector_configuration = kwargs['connectorConfiguration'] + if connector_configuration is None: + raise TypeError("Missing 'connector_configuration' argument") + if kafka_cluster is None and 'kafkaCluster' in kwargs: + kafka_cluster = kwargs['kafkaCluster'] + if kafka_cluster is None: + raise TypeError("Missing 'kafka_cluster' argument") + if kafka_cluster_client_authentication is None and 'kafkaClusterClientAuthentication' in kwargs: + kafka_cluster_client_authentication = kwargs['kafkaClusterClientAuthentication'] + if kafka_cluster_client_authentication is None: + raise TypeError("Missing 'kafka_cluster_client_authentication' argument") + if kafka_cluster_encryption_in_transit is None and 'kafkaClusterEncryptionInTransit' in kwargs: + kafka_cluster_encryption_in_transit = kwargs['kafkaClusterEncryptionInTransit'] + if kafka_cluster_encryption_in_transit is None: + raise TypeError("Missing 'kafka_cluster_encryption_in_transit' argument") + if kafkaconnect_version is None and 'kafkaconnectVersion' in kwargs: + kafkaconnect_version = kwargs['kafkaconnectVersion'] + if kafkaconnect_version is None: + raise TypeError("Missing 'kafkaconnect_version' argument") + if plugins is None: + raise TypeError("Missing 'plugins' argument") + if service_execution_role_arn is None and 'serviceExecutionRoleArn' in kwargs: + service_execution_role_arn = kwargs['serviceExecutionRoleArn'] + if service_execution_role_arn is None: + raise TypeError("Missing 'service_execution_role_arn' argument") + if log_delivery is None and 'logDelivery' in kwargs: + log_delivery = kwargs['logDelivery'] + if worker_configuration is None and 'workerConfiguration' in kwargs: + worker_configuration = kwargs['workerConfiguration'] + + _setter("capacity", capacity) + _setter("connector_configuration", connector_configuration) + _setter("kafka_cluster", kafka_cluster) + _setter("kafka_cluster_client_authentication", kafka_cluster_client_authentication) + _setter("kafka_cluster_encryption_in_transit", kafka_cluster_encryption_in_transit) + _setter("kafkaconnect_version", kafkaconnect_version) + _setter("plugins", plugins) + _setter("service_execution_role_arn", service_execution_role_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if log_delivery is not None: - pulumi.set(__self__, "log_delivery", log_delivery) + _setter("log_delivery", log_delivery) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if worker_configuration is not None: - pulumi.set(__self__, "worker_configuration", worker_configuration) + _setter("worker_configuration", worker_configuration) @property @pulumi.getter @@ -239,34 +304,87 @@ def __init__(__self__, *, :param pulumi.Input[str] version: The current version of the connector. :param pulumi.Input['ConnectorWorkerConfigurationArgs'] worker_configuration: Specifies which worker configuration to use with the connector. See below. """ + _ConnectorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + capacity=capacity, + connector_configuration=connector_configuration, + description=description, + kafka_cluster=kafka_cluster, + kafka_cluster_client_authentication=kafka_cluster_client_authentication, + kafka_cluster_encryption_in_transit=kafka_cluster_encryption_in_transit, + kafkaconnect_version=kafkaconnect_version, + log_delivery=log_delivery, + name=name, + plugins=plugins, + service_execution_role_arn=service_execution_role_arn, + version=version, + worker_configuration=worker_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + capacity: Optional[pulumi.Input['ConnectorCapacityArgs']] = None, + connector_configuration: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + kafka_cluster: Optional[pulumi.Input['ConnectorKafkaClusterArgs']] = None, + kafka_cluster_client_authentication: Optional[pulumi.Input['ConnectorKafkaClusterClientAuthenticationArgs']] = None, + kafka_cluster_encryption_in_transit: Optional[pulumi.Input['ConnectorKafkaClusterEncryptionInTransitArgs']] = None, + kafkaconnect_version: Optional[pulumi.Input[str]] = None, + log_delivery: Optional[pulumi.Input['ConnectorLogDeliveryArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + plugins: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectorPluginArgs']]]] = None, + service_execution_role_arn: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + worker_configuration: Optional[pulumi.Input['ConnectorWorkerConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connector_configuration is None and 'connectorConfiguration' in kwargs: + connector_configuration = kwargs['connectorConfiguration'] + if kafka_cluster is None and 'kafkaCluster' in kwargs: + kafka_cluster = kwargs['kafkaCluster'] + if kafka_cluster_client_authentication is None and 'kafkaClusterClientAuthentication' in kwargs: + kafka_cluster_client_authentication = kwargs['kafkaClusterClientAuthentication'] + if kafka_cluster_encryption_in_transit is None and 'kafkaClusterEncryptionInTransit' in kwargs: + kafka_cluster_encryption_in_transit = kwargs['kafkaClusterEncryptionInTransit'] + if kafkaconnect_version is None and 'kafkaconnectVersion' in kwargs: + kafkaconnect_version = kwargs['kafkaconnectVersion'] + if log_delivery is None and 'logDelivery' in kwargs: + log_delivery = kwargs['logDelivery'] + if service_execution_role_arn is None and 'serviceExecutionRoleArn' in kwargs: + service_execution_role_arn = kwargs['serviceExecutionRoleArn'] + if worker_configuration is None and 'workerConfiguration' in kwargs: + worker_configuration = kwargs['workerConfiguration'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if capacity is not None: - pulumi.set(__self__, "capacity", capacity) + _setter("capacity", capacity) if connector_configuration is not None: - pulumi.set(__self__, "connector_configuration", connector_configuration) + _setter("connector_configuration", connector_configuration) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kafka_cluster is not None: - pulumi.set(__self__, "kafka_cluster", kafka_cluster) + _setter("kafka_cluster", kafka_cluster) if kafka_cluster_client_authentication is not None: - pulumi.set(__self__, "kafka_cluster_client_authentication", kafka_cluster_client_authentication) + _setter("kafka_cluster_client_authentication", kafka_cluster_client_authentication) if kafka_cluster_encryption_in_transit is not None: - pulumi.set(__self__, "kafka_cluster_encryption_in_transit", kafka_cluster_encryption_in_transit) + _setter("kafka_cluster_encryption_in_transit", kafka_cluster_encryption_in_transit) if kafkaconnect_version is not None: - pulumi.set(__self__, "kafkaconnect_version", kafkaconnect_version) + _setter("kafkaconnect_version", kafkaconnect_version) if log_delivery is not None: - pulumi.set(__self__, "log_delivery", log_delivery) + _setter("log_delivery", log_delivery) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if plugins is not None: - pulumi.set(__self__, "plugins", plugins) + _setter("plugins", plugins) if service_execution_role_arn is not None: - pulumi.set(__self__, "service_execution_role_arn", service_execution_role_arn) + _setter("service_execution_role_arn", service_execution_role_arn) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if worker_configuration is not None: - pulumi.set(__self__, "worker_configuration", worker_configuration) + _setter("worker_configuration", worker_configuration) @property @pulumi.getter @@ -618,6 +736,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -644,6 +766,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ConnectorArgs.__new__(ConnectorArgs) + capacity = _utilities.configure(capacity, ConnectorCapacityArgs, True) if capacity is None and not opts.urn: raise TypeError("Missing required property 'capacity'") __props__.__dict__["capacity"] = capacity @@ -651,18 +774,22 @@ def _internal_init(__self__, raise TypeError("Missing required property 'connector_configuration'") __props__.__dict__["connector_configuration"] = connector_configuration __props__.__dict__["description"] = description + kafka_cluster = _utilities.configure(kafka_cluster, ConnectorKafkaClusterArgs, True) if kafka_cluster is None and not opts.urn: raise TypeError("Missing required property 'kafka_cluster'") __props__.__dict__["kafka_cluster"] = kafka_cluster + kafka_cluster_client_authentication = _utilities.configure(kafka_cluster_client_authentication, ConnectorKafkaClusterClientAuthenticationArgs, True) if kafka_cluster_client_authentication is None and not opts.urn: raise TypeError("Missing required property 'kafka_cluster_client_authentication'") __props__.__dict__["kafka_cluster_client_authentication"] = kafka_cluster_client_authentication + kafka_cluster_encryption_in_transit = _utilities.configure(kafka_cluster_encryption_in_transit, ConnectorKafkaClusterEncryptionInTransitArgs, True) if kafka_cluster_encryption_in_transit is None and not opts.urn: raise TypeError("Missing required property 'kafka_cluster_encryption_in_transit'") __props__.__dict__["kafka_cluster_encryption_in_transit"] = kafka_cluster_encryption_in_transit if kafkaconnect_version is None and not opts.urn: raise TypeError("Missing required property 'kafkaconnect_version'") __props__.__dict__["kafkaconnect_version"] = kafkaconnect_version + log_delivery = _utilities.configure(log_delivery, ConnectorLogDeliveryArgs, True) __props__.__dict__["log_delivery"] = log_delivery __props__.__dict__["name"] = name if plugins is None and not opts.urn: @@ -671,6 +798,7 @@ def _internal_init(__self__, if service_execution_role_arn is None and not opts.urn: raise TypeError("Missing required property 'service_execution_role_arn'") __props__.__dict__["service_execution_role_arn"] = service_execution_role_arn + worker_configuration = _utilities.configure(worker_configuration, ConnectorWorkerConfigurationArgs, True) __props__.__dict__["worker_configuration"] = worker_configuration __props__.__dict__["arn"] = None __props__.__dict__["version"] = None diff --git a/sdk/python/pulumi_aws/mskconnect/custom_plugin.py b/sdk/python/pulumi_aws/mskconnect/custom_plugin.py index 879596bb3c4..431f664f29a 100644 --- a/sdk/python/pulumi_aws/mskconnect/custom_plugin.py +++ b/sdk/python/pulumi_aws/mskconnect/custom_plugin.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,12 +29,35 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A summary description of the custom plugin. :param pulumi.Input[str] name: The name of the custom plugin.. """ - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "location", location) + CustomPluginArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_type=content_type, + location=location, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_type: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input['CustomPluginLocationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if location is None: + raise TypeError("Missing 'location' argument") + + _setter("content_type", content_type) + _setter("location", location) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="contentType") @@ -109,20 +132,47 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the custom plugin.. :param pulumi.Input[str] state: the state of the custom plugin. """ + _CustomPluginState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + content_type=content_type, + description=description, + latest_revision=latest_revision, + location=location, + name=name, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + latest_revision: Optional[pulumi.Input[int]] = None, + location: Optional[pulumi.Input['CustomPluginLocationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if latest_revision is None and 'latestRevision' in kwargs: + latest_revision = kwargs['latestRevision'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if latest_revision is not None: - pulumi.set(__self__, "latest_revision", latest_revision) + _setter("latest_revision", latest_revision) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter @@ -312,6 +362,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomPluginArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -334,6 +388,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'content_type'") __props__.__dict__["content_type"] = content_type __props__.__dict__["description"] = description + location = _utilities.configure(location, CustomPluginLocationArgs, True) if location is None and not opts.urn: raise TypeError("Missing required property 'location'") __props__.__dict__["location"] = location diff --git a/sdk/python/pulumi_aws/mskconnect/get_connector.py b/sdk/python/pulumi_aws/mskconnect/get_connector.py index cd92bf5576d..c0f56e7f3df 100644 --- a/sdk/python/pulumi_aws/mskconnect/get_connector.py +++ b/sdk/python/pulumi_aws/mskconnect/get_connector.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/mskconnect/get_custom_plugin.py b/sdk/python/pulumi_aws/mskconnect/get_custom_plugin.py index 5e5b4895f8f..03543ccd46a 100644 --- a/sdk/python/pulumi_aws/mskconnect/get_custom_plugin.py +++ b/sdk/python/pulumi_aws/mskconnect/get_custom_plugin.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/mskconnect/get_worker_configuration.py b/sdk/python/pulumi_aws/mskconnect/get_worker_configuration.py index 0cb996b486b..15de9c33aad 100644 --- a/sdk/python/pulumi_aws/mskconnect/get_worker_configuration.py +++ b/sdk/python/pulumi_aws/mskconnect/get_worker_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/mskconnect/outputs.py b/sdk/python/pulumi_aws/mskconnect/outputs.py index d2f531c181a..69cffef87fd 100644 --- a/sdk/python/pulumi_aws/mskconnect/outputs.py +++ b/sdk/python/pulumi_aws/mskconnect/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -59,10 +59,25 @@ def __init__(__self__, *, :param 'ConnectorCapacityAutoscalingArgs' autoscaling: Information about the auto scaling parameters for the connector. See below. :param 'ConnectorCapacityProvisionedCapacityArgs' provisioned_capacity: Details about a fixed capacity allocated to a connector. See below. """ + ConnectorCapacity._configure( + lambda key, value: pulumi.set(__self__, key, value), + autoscaling=autoscaling, + provisioned_capacity=provisioned_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autoscaling: Optional['outputs.ConnectorCapacityAutoscaling'] = None, + provisioned_capacity: Optional['outputs.ConnectorCapacityProvisionedCapacity'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provisioned_capacity is None and 'provisionedCapacity' in kwargs: + provisioned_capacity = kwargs['provisionedCapacity'] + if autoscaling is not None: - pulumi.set(__self__, "autoscaling", autoscaling) + _setter("autoscaling", autoscaling) if provisioned_capacity is not None: - pulumi.set(__self__, "provisioned_capacity", provisioned_capacity) + _setter("provisioned_capacity", provisioned_capacity) @property @pulumi.getter @@ -121,14 +136,47 @@ def __init__(__self__, *, :param 'ConnectorCapacityAutoscalingScaleInPolicyArgs' scale_in_policy: The scale-in policy for the connector. See below. :param 'ConnectorCapacityAutoscalingScaleOutPolicyArgs' scale_out_policy: The scale-out policy for the connector. See below. """ - pulumi.set(__self__, "max_worker_count", max_worker_count) - pulumi.set(__self__, "min_worker_count", min_worker_count) + ConnectorCapacityAutoscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_worker_count=max_worker_count, + min_worker_count=min_worker_count, + mcu_count=mcu_count, + scale_in_policy=scale_in_policy, + scale_out_policy=scale_out_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_worker_count: Optional[int] = None, + min_worker_count: Optional[int] = None, + mcu_count: Optional[int] = None, + scale_in_policy: Optional['outputs.ConnectorCapacityAutoscalingScaleInPolicy'] = None, + scale_out_policy: Optional['outputs.ConnectorCapacityAutoscalingScaleOutPolicy'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_worker_count is None and 'maxWorkerCount' in kwargs: + max_worker_count = kwargs['maxWorkerCount'] + if max_worker_count is None: + raise TypeError("Missing 'max_worker_count' argument") + if min_worker_count is None and 'minWorkerCount' in kwargs: + min_worker_count = kwargs['minWorkerCount'] + if min_worker_count is None: + raise TypeError("Missing 'min_worker_count' argument") + if mcu_count is None and 'mcuCount' in kwargs: + mcu_count = kwargs['mcuCount'] + if scale_in_policy is None and 'scaleInPolicy' in kwargs: + scale_in_policy = kwargs['scaleInPolicy'] + if scale_out_policy is None and 'scaleOutPolicy' in kwargs: + scale_out_policy = kwargs['scaleOutPolicy'] + + _setter("max_worker_count", max_worker_count) + _setter("min_worker_count", min_worker_count) if mcu_count is not None: - pulumi.set(__self__, "mcu_count", mcu_count) + _setter("mcu_count", mcu_count) if scale_in_policy is not None: - pulumi.set(__self__, "scale_in_policy", scale_in_policy) + _setter("scale_in_policy", scale_in_policy) if scale_out_policy is not None: - pulumi.set(__self__, "scale_out_policy", scale_out_policy) + _setter("scale_out_policy", scale_out_policy) @property @pulumi.getter(name="maxWorkerCount") @@ -195,8 +243,21 @@ def __init__(__self__, *, """ :param int cpu_utilization_percentage: Specifies the CPU utilization percentage threshold at which you want connector scale in to be triggered. """ + ConnectorCapacityAutoscalingScaleInPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_utilization_percentage=cpu_utilization_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_utilization_percentage: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_utilization_percentage is None and 'cpuUtilizationPercentage' in kwargs: + cpu_utilization_percentage = kwargs['cpuUtilizationPercentage'] + if cpu_utilization_percentage is not None: - pulumi.set(__self__, "cpu_utilization_percentage", cpu_utilization_percentage) + _setter("cpu_utilization_percentage", cpu_utilization_percentage) @property @pulumi.getter(name="cpuUtilizationPercentage") @@ -231,8 +292,21 @@ def __init__(__self__, *, """ :param int cpu_utilization_percentage: The CPU utilization percentage threshold at which you want connector scale out to be triggered. """ + ConnectorCapacityAutoscalingScaleOutPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + cpu_utilization_percentage=cpu_utilization_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cpu_utilization_percentage: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_utilization_percentage is None and 'cpuUtilizationPercentage' in kwargs: + cpu_utilization_percentage = kwargs['cpuUtilizationPercentage'] + if cpu_utilization_percentage is not None: - pulumi.set(__self__, "cpu_utilization_percentage", cpu_utilization_percentage) + _setter("cpu_utilization_percentage", cpu_utilization_percentage) @property @pulumi.getter(name="cpuUtilizationPercentage") @@ -271,9 +345,28 @@ def __init__(__self__, *, :param int worker_count: The number of workers that are allocated to the connector. :param int mcu_count: The number of microcontroller units (MCUs) allocated to each connector worker. Valid values: `1`, `2`, `4`, `8`. The default value is `1`. """ - pulumi.set(__self__, "worker_count", worker_count) + ConnectorCapacityProvisionedCapacity._configure( + lambda key, value: pulumi.set(__self__, key, value), + worker_count=worker_count, + mcu_count=mcu_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + worker_count: Optional[int] = None, + mcu_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if worker_count is None and 'workerCount' in kwargs: + worker_count = kwargs['workerCount'] + if worker_count is None: + raise TypeError("Missing 'worker_count' argument") + if mcu_count is None and 'mcuCount' in kwargs: + mcu_count = kwargs['mcuCount'] + + _setter("worker_count", worker_count) if mcu_count is not None: - pulumi.set(__self__, "mcu_count", mcu_count) + _setter("mcu_count", mcu_count) @property @pulumi.getter(name="workerCount") @@ -316,7 +409,22 @@ def __init__(__self__, *, """ :param 'ConnectorKafkaClusterApacheKafkaClusterArgs' apache_kafka_cluster: The Apache Kafka cluster to which the connector is connected. """ - pulumi.set(__self__, "apache_kafka_cluster", apache_kafka_cluster) + ConnectorKafkaCluster._configure( + lambda key, value: pulumi.set(__self__, key, value), + apache_kafka_cluster=apache_kafka_cluster, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apache_kafka_cluster: Optional['outputs.ConnectorKafkaClusterApacheKafkaCluster'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apache_kafka_cluster is None and 'apacheKafkaCluster' in kwargs: + apache_kafka_cluster = kwargs['apacheKafkaCluster'] + if apache_kafka_cluster is None: + raise TypeError("Missing 'apache_kafka_cluster' argument") + + _setter("apache_kafka_cluster", apache_kafka_cluster) @property @pulumi.getter(name="apacheKafkaCluster") @@ -353,8 +461,27 @@ def __init__(__self__, *, :param str bootstrap_servers: The bootstrap servers of the cluster. :param 'ConnectorKafkaClusterApacheKafkaClusterVpcArgs' vpc: Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster. """ - pulumi.set(__self__, "bootstrap_servers", bootstrap_servers) - pulumi.set(__self__, "vpc", vpc) + ConnectorKafkaClusterApacheKafkaCluster._configure( + lambda key, value: pulumi.set(__self__, key, value), + bootstrap_servers=bootstrap_servers, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bootstrap_servers: Optional[str] = None, + vpc: Optional['outputs.ConnectorKafkaClusterApacheKafkaClusterVpc'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bootstrap_servers is None and 'bootstrapServers' in kwargs: + bootstrap_servers = kwargs['bootstrapServers'] + if bootstrap_servers is None: + raise TypeError("Missing 'bootstrap_servers' argument") + if vpc is None: + raise TypeError("Missing 'vpc' argument") + + _setter("bootstrap_servers", bootstrap_servers) + _setter("vpc", vpc) @property @pulumi.getter(name="bootstrapServers") @@ -399,8 +526,27 @@ def __init__(__self__, *, :param Sequence[str] security_groups: The security groups for the connector. :param Sequence[str] subnets: The subnets for the connector. """ - pulumi.set(__self__, "security_groups", security_groups) - pulumi.set(__self__, "subnets", subnets) + ConnectorKafkaClusterApacheKafkaClusterVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_groups=security_groups, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_groups: Optional[Sequence[str]] = None, + subnets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is None: + raise TypeError("Missing 'security_groups' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_groups", security_groups) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroups") @@ -443,8 +589,21 @@ def __init__(__self__, *, """ :param str authentication_type: The type of client authentication used to connect to the Apache Kafka cluster. Valid values: `IAM`, `NONE`. A value of `NONE` means that no client authentication is used. The default value is `NONE`. """ + ConnectorKafkaClusterClientAuthentication._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_type=authentication_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_type is None and 'authenticationType' in kwargs: + authentication_type = kwargs['authenticationType'] + if authentication_type is not None: - pulumi.set(__self__, "authentication_type", authentication_type) + _setter("authentication_type", authentication_type) @property @pulumi.getter(name="authenticationType") @@ -479,8 +638,21 @@ def __init__(__self__, *, """ :param str encryption_type: The type of encryption in transit to the Apache Kafka cluster. Valid values: `PLAINTEXT`, `TLS`. The default values is `PLAINTEXT`. """ + ConnectorKafkaClusterEncryptionInTransit._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_type=encryption_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_type is None and 'encryptionType' in kwargs: + encryption_type = kwargs['encryptionType'] + if encryption_type is not None: - pulumi.set(__self__, "encryption_type", encryption_type) + _setter("encryption_type", encryption_type) @property @pulumi.getter(name="encryptionType") @@ -515,7 +687,22 @@ def __init__(__self__, *, """ :param 'ConnectorLogDeliveryWorkerLogDeliveryArgs' worker_log_delivery: The workers can send worker logs to different destination types. This configuration specifies the details of these destinations. See below. """ - pulumi.set(__self__, "worker_log_delivery", worker_log_delivery) + ConnectorLogDelivery._configure( + lambda key, value: pulumi.set(__self__, key, value), + worker_log_delivery=worker_log_delivery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + worker_log_delivery: Optional['outputs.ConnectorLogDeliveryWorkerLogDelivery'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if worker_log_delivery is None and 'workerLogDelivery' in kwargs: + worker_log_delivery = kwargs['workerLogDelivery'] + if worker_log_delivery is None: + raise TypeError("Missing 'worker_log_delivery' argument") + + _setter("worker_log_delivery", worker_log_delivery) @property @pulumi.getter(name="workerLogDelivery") @@ -554,12 +741,29 @@ def __init__(__self__, *, :param 'ConnectorLogDeliveryWorkerLogDeliveryFirehoseArgs' firehose: Details about delivering logs to Amazon Kinesis Data Firehose. See below. :param 'ConnectorLogDeliveryWorkerLogDeliveryS3Args' s3: Details about delivering logs to Amazon S3. See below. """ + ConnectorLogDeliveryWorkerLogDelivery._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + firehose=firehose, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional['outputs.ConnectorLogDeliveryWorkerLogDeliveryCloudwatchLogs'] = None, + firehose: Optional['outputs.ConnectorLogDeliveryWorkerLogDeliveryFirehose'] = None, + s3: Optional['outputs.ConnectorLogDeliveryWorkerLogDeliveryS3'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if firehose is not None: - pulumi.set(__self__, "firehose", firehose) + _setter("firehose", firehose) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -612,9 +816,26 @@ def __init__(__self__, *, :param bool enabled: Whether log delivery to Amazon CloudWatch Logs is enabled. :param str log_group: The name of the CloudWatch log group that is the destination for log delivery. """ - pulumi.set(__self__, "enabled", enabled) + ConnectorLogDeliveryWorkerLogDeliveryCloudwatchLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + + _setter("enabled", enabled) if log_group is not None: - pulumi.set(__self__, "log_group", log_group) + _setter("log_group", log_group) @property @pulumi.getter @@ -659,9 +880,26 @@ def __init__(__self__, *, :param bool enabled: Specifies whether connector logs get delivered to Amazon Kinesis Data Firehose. :param str delivery_stream: The name of the Kinesis Data Firehose delivery stream that is the destination for log delivery. """ - pulumi.set(__self__, "enabled", enabled) + ConnectorLogDeliveryWorkerLogDeliveryFirehose._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + delivery_stream=delivery_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + delivery_stream: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if delivery_stream is None and 'deliveryStream' in kwargs: + delivery_stream = kwargs['deliveryStream'] + + _setter("enabled", enabled) if delivery_stream is not None: - pulumi.set(__self__, "delivery_stream", delivery_stream) + _setter("delivery_stream", delivery_stream) @property @pulumi.getter @@ -691,11 +929,28 @@ def __init__(__self__, *, :param str bucket: The name of the S3 bucket that is the destination for log delivery. :param str prefix: The S3 prefix that is the destination for log delivery. """ - pulumi.set(__self__, "enabled", enabled) + ConnectorLogDeliveryWorkerLogDeliveryS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + bucket: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -746,7 +1001,22 @@ def __init__(__self__, *, """ :param 'ConnectorPluginCustomPluginArgs' custom_plugin: Details about a custom plugin. See below. """ - pulumi.set(__self__, "custom_plugin", custom_plugin) + ConnectorPlugin._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_plugin=custom_plugin, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_plugin: Optional['outputs.ConnectorPluginCustomPlugin'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_plugin is None and 'customPlugin' in kwargs: + custom_plugin = kwargs['customPlugin'] + if custom_plugin is None: + raise TypeError("Missing 'custom_plugin' argument") + + _setter("custom_plugin", custom_plugin) @property @pulumi.getter(name="customPlugin") @@ -766,8 +1036,25 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the custom plugin. :param int revision: The revision of the custom plugin. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "revision", revision) + ConnectorPluginCustomPlugin._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + revision=revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + revision: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if revision is None: + raise TypeError("Missing 'revision' argument") + + _setter("arn", arn) + _setter("revision", revision) @property @pulumi.getter @@ -795,8 +1082,25 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the worker configuration. :param int revision: The revision of the worker configuration. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "revision", revision) + ConnectorWorkerConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + revision=revision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + revision: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if revision is None: + raise TypeError("Missing 'revision' argument") + + _setter("arn", arn) + _setter("revision", revision) @property @pulumi.getter @@ -822,7 +1126,20 @@ def __init__(__self__, *, """ :param 'CustomPluginLocationS3Args' s3: Information of the plugin file stored in Amazon S3. See below. """ - pulumi.set(__self__, "s3", s3) + CustomPluginLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional['outputs.CustomPluginLocationS3'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + + _setter("s3", s3) @property @pulumi.getter @@ -865,10 +1182,35 @@ def __init__(__self__, *, :param str file_key: The file key for an object in an S3 bucket. :param str object_version: The version of an object in an S3 bucket. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "file_key", file_key) + CustomPluginLocationS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + file_key=file_key, + object_version=object_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + file_key: Optional[str] = None, + object_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if file_key is None and 'fileKey' in kwargs: + file_key = kwargs['fileKey'] + if file_key is None: + raise TypeError("Missing 'file_key' argument") + if object_version is None and 'objectVersion' in kwargs: + object_version = kwargs['objectVersion'] + + _setter("bucket_arn", bucket_arn) + _setter("file_key", file_key) if object_version is not None: - pulumi.set(__self__, "object_version", object_version) + _setter("object_version", object_version) @property @pulumi.getter(name="bucketArn") diff --git a/sdk/python/pulumi_aws/mskconnect/worker_configuration.py b/sdk/python/pulumi_aws/mskconnect/worker_configuration.py index 654d0564c21..5e9235a6df5 100644 --- a/sdk/python/pulumi_aws/mskconnect/worker_configuration.py +++ b/sdk/python/pulumi_aws/mskconnect/worker_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['WorkerConfigurationArgs', 'WorkerConfiguration'] @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A summary description of the worker configuration. :param pulumi.Input[str] name: The name of the worker configuration. """ - pulumi.set(__self__, "properties_file_content", properties_file_content) + WorkerConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + properties_file_content=properties_file_content, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + properties_file_content: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if properties_file_content is None and 'propertiesFileContent' in kwargs: + properties_file_content = kwargs['propertiesFileContent'] + if properties_file_content is None: + raise TypeError("Missing 'properties_file_content' argument") + + _setter("properties_file_content", properties_file_content) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="propertiesFileContent") @@ -88,16 +107,39 @@ def __init__(__self__, *, The following arguments are optional: """ + _WorkerConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + latest_revision=latest_revision, + name=name, + properties_file_content=properties_file_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + latest_revision: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + properties_file_content: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if latest_revision is None and 'latestRevision' in kwargs: + latest_revision = kwargs['latestRevision'] + if properties_file_content is None and 'propertiesFileContent' in kwargs: + properties_file_content = kwargs['propertiesFileContent'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if latest_revision is not None: - pulumi.set(__self__, "latest_revision", latest_revision) + _setter("latest_revision", latest_revision) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if properties_file_content is not None: - pulumi.set(__self__, "properties_file_content", properties_file_content) + _setter("properties_file_content", properties_file_content) @property @pulumi.getter @@ -243,6 +285,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkerConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/mwaa/_inputs.py b/sdk/python/pulumi_aws/mwaa/_inputs.py index 89a5411b873..d6750c68c08 100644 --- a/sdk/python/pulumi_aws/mwaa/_inputs.py +++ b/sdk/python/pulumi_aws/mwaa/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -32,12 +32,29 @@ def __init__(__self__, *, * `logging_configuration[0].[0].cloud_watch_log_group_arn` - Provides the ARN for the CloudWatch group where the logs will be published :param pulumi.Input[str] status: The status of the Amazon MWAA Environment """ + EnvironmentLastUpdatedArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + created_at=created_at, + errors=errors, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + created_at: Optional[pulumi.Input[str]] = None, + errors: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentLastUpdatedErrorArgs']]]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if errors is not None: - pulumi.set(__self__, "errors", errors) + _setter("errors", errors) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="createdAt") @@ -79,10 +96,27 @@ class EnvironmentLastUpdatedErrorArgs: def __init__(__self__, *, error_code: Optional[pulumi.Input[str]] = None, error_message: Optional[pulumi.Input[str]] = None): + EnvironmentLastUpdatedErrorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_code=error_code, + error_message=error_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_code: Optional[pulumi.Input[str]] = None, + error_message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_code is None and 'errorCode' in kwargs: + error_code = kwargs['errorCode'] + if error_message is None and 'errorMessage' in kwargs: + error_message = kwargs['errorMessage'] + if error_code is not None: - pulumi.set(__self__, "error_code", error_code) + _setter("error_code", error_code) if error_message is not None: - pulumi.set(__self__, "error_message", error_message) + _setter("error_message", error_message) @property @pulumi.getter(name="errorCode") @@ -118,16 +152,45 @@ def __init__(__self__, *, :param pulumi.Input['EnvironmentLoggingConfigurationWebserverLogsArgs'] webserver_logs: Log configuration options for the webservers. See Module logging configuration for more information. Disabled by default. :param pulumi.Input['EnvironmentLoggingConfigurationWorkerLogsArgs'] worker_logs: Log configuration options for the workers. See Module logging configuration for more information. Disabled by default. """ + EnvironmentLoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dag_processing_logs=dag_processing_logs, + scheduler_logs=scheduler_logs, + task_logs=task_logs, + webserver_logs=webserver_logs, + worker_logs=worker_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dag_processing_logs: Optional[pulumi.Input['EnvironmentLoggingConfigurationDagProcessingLogsArgs']] = None, + scheduler_logs: Optional[pulumi.Input['EnvironmentLoggingConfigurationSchedulerLogsArgs']] = None, + task_logs: Optional[pulumi.Input['EnvironmentLoggingConfigurationTaskLogsArgs']] = None, + webserver_logs: Optional[pulumi.Input['EnvironmentLoggingConfigurationWebserverLogsArgs']] = None, + worker_logs: Optional[pulumi.Input['EnvironmentLoggingConfigurationWorkerLogsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dag_processing_logs is None and 'dagProcessingLogs' in kwargs: + dag_processing_logs = kwargs['dagProcessingLogs'] + if scheduler_logs is None and 'schedulerLogs' in kwargs: + scheduler_logs = kwargs['schedulerLogs'] + if task_logs is None and 'taskLogs' in kwargs: + task_logs = kwargs['taskLogs'] + if webserver_logs is None and 'webserverLogs' in kwargs: + webserver_logs = kwargs['webserverLogs'] + if worker_logs is None and 'workerLogs' in kwargs: + worker_logs = kwargs['workerLogs'] + if dag_processing_logs is not None: - pulumi.set(__self__, "dag_processing_logs", dag_processing_logs) + _setter("dag_processing_logs", dag_processing_logs) if scheduler_logs is not None: - pulumi.set(__self__, "scheduler_logs", scheduler_logs) + _setter("scheduler_logs", scheduler_logs) if task_logs is not None: - pulumi.set(__self__, "task_logs", task_logs) + _setter("task_logs", task_logs) if webserver_logs is not None: - pulumi.set(__self__, "webserver_logs", webserver_logs) + _setter("webserver_logs", webserver_logs) if worker_logs is not None: - pulumi.set(__self__, "worker_logs", worker_logs) + _setter("worker_logs", worker_logs) @property @pulumi.getter(name="dagProcessingLogs") @@ -200,12 +263,31 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enabling or disabling the collection of logs :param pulumi.Input[str] log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationDagProcessingLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + log_level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -251,12 +333,31 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enabling or disabling the collection of logs :param pulumi.Input[str] log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationSchedulerLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + log_level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -302,12 +403,31 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enabling or disabling the collection of logs :param pulumi.Input[str] log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationTaskLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + log_level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -353,12 +473,31 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enabling or disabling the collection of logs :param pulumi.Input[str] log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationWebserverLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + log_level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -404,12 +543,31 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enabling or disabling the collection of logs :param pulumi.Input[str] log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationWorkerLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + log_level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -454,8 +612,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: Security groups IDs for the environment. At least one of the security group needs to allow MWAA resources to talk to each other, otherwise MWAA cannot be provisioned. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The private subnet IDs in which the environment should be created. MWAA requires two subnets. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) + EnvironmentNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/mwaa/environment.py b/sdk/python/pulumi_aws/mwaa/environment.py index 8618af0a18a..2eece3e93c9 100644 --- a/sdk/python/pulumi_aws/mwaa/environment.py +++ b/sdk/python/pulumi_aws/mwaa/environment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -63,46 +63,145 @@ def __init__(__self__, *, :param pulumi.Input[str] webserver_access_mode: Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`. :param pulumi.Input[str] weekly_maintenance_window_start: Specifies the start date for the weekly maintenance window. """ - pulumi.set(__self__, "dag_s3_path", dag_s3_path) - pulumi.set(__self__, "execution_role_arn", execution_role_arn) - pulumi.set(__self__, "network_configuration", network_configuration) - pulumi.set(__self__, "source_bucket_arn", source_bucket_arn) + EnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dag_s3_path=dag_s3_path, + execution_role_arn=execution_role_arn, + network_configuration=network_configuration, + source_bucket_arn=source_bucket_arn, + airflow_configuration_options=airflow_configuration_options, + airflow_version=airflow_version, + environment_class=environment_class, + kms_key=kms_key, + logging_configuration=logging_configuration, + max_workers=max_workers, + min_workers=min_workers, + name=name, + plugins_s3_object_version=plugins_s3_object_version, + plugins_s3_path=plugins_s3_path, + requirements_s3_object_version=requirements_s3_object_version, + requirements_s3_path=requirements_s3_path, + schedulers=schedulers, + startup_script_s3_object_version=startup_script_s3_object_version, + startup_script_s3_path=startup_script_s3_path, + tags=tags, + webserver_access_mode=webserver_access_mode, + weekly_maintenance_window_start=weekly_maintenance_window_start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dag_s3_path: Optional[pulumi.Input[str]] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + network_configuration: Optional[pulumi.Input['EnvironmentNetworkConfigurationArgs']] = None, + source_bucket_arn: Optional[pulumi.Input[str]] = None, + airflow_configuration_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + airflow_version: Optional[pulumi.Input[str]] = None, + environment_class: Optional[pulumi.Input[str]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + logging_configuration: Optional[pulumi.Input['EnvironmentLoggingConfigurationArgs']] = None, + max_workers: Optional[pulumi.Input[int]] = None, + min_workers: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + plugins_s3_object_version: Optional[pulumi.Input[str]] = None, + plugins_s3_path: Optional[pulumi.Input[str]] = None, + requirements_s3_object_version: Optional[pulumi.Input[str]] = None, + requirements_s3_path: Optional[pulumi.Input[str]] = None, + schedulers: Optional[pulumi.Input[int]] = None, + startup_script_s3_object_version: Optional[pulumi.Input[str]] = None, + startup_script_s3_path: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + webserver_access_mode: Optional[pulumi.Input[str]] = None, + weekly_maintenance_window_start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dag_s3_path is None and 'dagS3Path' in kwargs: + dag_s3_path = kwargs['dagS3Path'] + if dag_s3_path is None: + raise TypeError("Missing 'dag_s3_path' argument") + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if execution_role_arn is None: + raise TypeError("Missing 'execution_role_arn' argument") + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if network_configuration is None: + raise TypeError("Missing 'network_configuration' argument") + if source_bucket_arn is None and 'sourceBucketArn' in kwargs: + source_bucket_arn = kwargs['sourceBucketArn'] + if source_bucket_arn is None: + raise TypeError("Missing 'source_bucket_arn' argument") + if airflow_configuration_options is None and 'airflowConfigurationOptions' in kwargs: + airflow_configuration_options = kwargs['airflowConfigurationOptions'] + if airflow_version is None and 'airflowVersion' in kwargs: + airflow_version = kwargs['airflowVersion'] + if environment_class is None and 'environmentClass' in kwargs: + environment_class = kwargs['environmentClass'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if max_workers is None and 'maxWorkers' in kwargs: + max_workers = kwargs['maxWorkers'] + if min_workers is None and 'minWorkers' in kwargs: + min_workers = kwargs['minWorkers'] + if plugins_s3_object_version is None and 'pluginsS3ObjectVersion' in kwargs: + plugins_s3_object_version = kwargs['pluginsS3ObjectVersion'] + if plugins_s3_path is None and 'pluginsS3Path' in kwargs: + plugins_s3_path = kwargs['pluginsS3Path'] + if requirements_s3_object_version is None and 'requirementsS3ObjectVersion' in kwargs: + requirements_s3_object_version = kwargs['requirementsS3ObjectVersion'] + if requirements_s3_path is None and 'requirementsS3Path' in kwargs: + requirements_s3_path = kwargs['requirementsS3Path'] + if startup_script_s3_object_version is None and 'startupScriptS3ObjectVersion' in kwargs: + startup_script_s3_object_version = kwargs['startupScriptS3ObjectVersion'] + if startup_script_s3_path is None and 'startupScriptS3Path' in kwargs: + startup_script_s3_path = kwargs['startupScriptS3Path'] + if webserver_access_mode is None and 'webserverAccessMode' in kwargs: + webserver_access_mode = kwargs['webserverAccessMode'] + if weekly_maintenance_window_start is None and 'weeklyMaintenanceWindowStart' in kwargs: + weekly_maintenance_window_start = kwargs['weeklyMaintenanceWindowStart'] + + _setter("dag_s3_path", dag_s3_path) + _setter("execution_role_arn", execution_role_arn) + _setter("network_configuration", network_configuration) + _setter("source_bucket_arn", source_bucket_arn) if airflow_configuration_options is not None: - pulumi.set(__self__, "airflow_configuration_options", airflow_configuration_options) + _setter("airflow_configuration_options", airflow_configuration_options) if airflow_version is not None: - pulumi.set(__self__, "airflow_version", airflow_version) + _setter("airflow_version", airflow_version) if environment_class is not None: - pulumi.set(__self__, "environment_class", environment_class) + _setter("environment_class", environment_class) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if max_workers is not None: - pulumi.set(__self__, "max_workers", max_workers) + _setter("max_workers", max_workers) if min_workers is not None: - pulumi.set(__self__, "min_workers", min_workers) + _setter("min_workers", min_workers) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if plugins_s3_object_version is not None: - pulumi.set(__self__, "plugins_s3_object_version", plugins_s3_object_version) + _setter("plugins_s3_object_version", plugins_s3_object_version) if plugins_s3_path is not None: - pulumi.set(__self__, "plugins_s3_path", plugins_s3_path) + _setter("plugins_s3_path", plugins_s3_path) if requirements_s3_object_version is not None: - pulumi.set(__self__, "requirements_s3_object_version", requirements_s3_object_version) + _setter("requirements_s3_object_version", requirements_s3_object_version) if requirements_s3_path is not None: - pulumi.set(__self__, "requirements_s3_path", requirements_s3_path) + _setter("requirements_s3_path", requirements_s3_path) if schedulers is not None: - pulumi.set(__self__, "schedulers", schedulers) + _setter("schedulers", schedulers) if startup_script_s3_object_version is not None: - pulumi.set(__self__, "startup_script_s3_object_version", startup_script_s3_object_version) + _setter("startup_script_s3_object_version", startup_script_s3_object_version) if startup_script_s3_path is not None: - pulumi.set(__self__, "startup_script_s3_path", startup_script_s3_path) + _setter("startup_script_s3_path", startup_script_s3_path) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if webserver_access_mode is not None: - pulumi.set(__self__, "webserver_access_mode", webserver_access_mode) + _setter("webserver_access_mode", webserver_access_mode) if weekly_maintenance_window_start is not None: - pulumi.set(__self__, "weekly_maintenance_window_start", weekly_maintenance_window_start) + _setter("weekly_maintenance_window_start", weekly_maintenance_window_start) @property @pulumi.getter(name="dagS3Path") @@ -433,67 +532,182 @@ def __init__(__self__, *, :param pulumi.Input[str] webserver_url: The webserver URL of the MWAA Environment :param pulumi.Input[str] weekly_maintenance_window_start: Specifies the start date for the weekly maintenance window. """ + _EnvironmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + airflow_configuration_options=airflow_configuration_options, + airflow_version=airflow_version, + arn=arn, + created_at=created_at, + dag_s3_path=dag_s3_path, + environment_class=environment_class, + execution_role_arn=execution_role_arn, + kms_key=kms_key, + last_updateds=last_updateds, + logging_configuration=logging_configuration, + max_workers=max_workers, + min_workers=min_workers, + name=name, + network_configuration=network_configuration, + plugins_s3_object_version=plugins_s3_object_version, + plugins_s3_path=plugins_s3_path, + requirements_s3_object_version=requirements_s3_object_version, + requirements_s3_path=requirements_s3_path, + schedulers=schedulers, + service_role_arn=service_role_arn, + source_bucket_arn=source_bucket_arn, + startup_script_s3_object_version=startup_script_s3_object_version, + startup_script_s3_path=startup_script_s3_path, + status=status, + tags=tags, + tags_all=tags_all, + webserver_access_mode=webserver_access_mode, + webserver_url=webserver_url, + weekly_maintenance_window_start=weekly_maintenance_window_start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + airflow_configuration_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + airflow_version: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + dag_s3_path: Optional[pulumi.Input[str]] = None, + environment_class: Optional[pulumi.Input[str]] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + last_updateds: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentLastUpdatedArgs']]]] = None, + logging_configuration: Optional[pulumi.Input['EnvironmentLoggingConfigurationArgs']] = None, + max_workers: Optional[pulumi.Input[int]] = None, + min_workers: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + network_configuration: Optional[pulumi.Input['EnvironmentNetworkConfigurationArgs']] = None, + plugins_s3_object_version: Optional[pulumi.Input[str]] = None, + plugins_s3_path: Optional[pulumi.Input[str]] = None, + requirements_s3_object_version: Optional[pulumi.Input[str]] = None, + requirements_s3_path: Optional[pulumi.Input[str]] = None, + schedulers: Optional[pulumi.Input[int]] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + source_bucket_arn: Optional[pulumi.Input[str]] = None, + startup_script_s3_object_version: Optional[pulumi.Input[str]] = None, + startup_script_s3_path: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + webserver_access_mode: Optional[pulumi.Input[str]] = None, + webserver_url: Optional[pulumi.Input[str]] = None, + weekly_maintenance_window_start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if airflow_configuration_options is None and 'airflowConfigurationOptions' in kwargs: + airflow_configuration_options = kwargs['airflowConfigurationOptions'] + if airflow_version is None and 'airflowVersion' in kwargs: + airflow_version = kwargs['airflowVersion'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if dag_s3_path is None and 'dagS3Path' in kwargs: + dag_s3_path = kwargs['dagS3Path'] + if environment_class is None and 'environmentClass' in kwargs: + environment_class = kwargs['environmentClass'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if last_updateds is None and 'lastUpdateds' in kwargs: + last_updateds = kwargs['lastUpdateds'] + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if max_workers is None and 'maxWorkers' in kwargs: + max_workers = kwargs['maxWorkers'] + if min_workers is None and 'minWorkers' in kwargs: + min_workers = kwargs['minWorkers'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if plugins_s3_object_version is None and 'pluginsS3ObjectVersion' in kwargs: + plugins_s3_object_version = kwargs['pluginsS3ObjectVersion'] + if plugins_s3_path is None and 'pluginsS3Path' in kwargs: + plugins_s3_path = kwargs['pluginsS3Path'] + if requirements_s3_object_version is None and 'requirementsS3ObjectVersion' in kwargs: + requirements_s3_object_version = kwargs['requirementsS3ObjectVersion'] + if requirements_s3_path is None and 'requirementsS3Path' in kwargs: + requirements_s3_path = kwargs['requirementsS3Path'] + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if source_bucket_arn is None and 'sourceBucketArn' in kwargs: + source_bucket_arn = kwargs['sourceBucketArn'] + if startup_script_s3_object_version is None and 'startupScriptS3ObjectVersion' in kwargs: + startup_script_s3_object_version = kwargs['startupScriptS3ObjectVersion'] + if startup_script_s3_path is None and 'startupScriptS3Path' in kwargs: + startup_script_s3_path = kwargs['startupScriptS3Path'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if webserver_access_mode is None and 'webserverAccessMode' in kwargs: + webserver_access_mode = kwargs['webserverAccessMode'] + if webserver_url is None and 'webserverUrl' in kwargs: + webserver_url = kwargs['webserverUrl'] + if weekly_maintenance_window_start is None and 'weeklyMaintenanceWindowStart' in kwargs: + weekly_maintenance_window_start = kwargs['weeklyMaintenanceWindowStart'] + if airflow_configuration_options is not None: - pulumi.set(__self__, "airflow_configuration_options", airflow_configuration_options) + _setter("airflow_configuration_options", airflow_configuration_options) if airflow_version is not None: - pulumi.set(__self__, "airflow_version", airflow_version) + _setter("airflow_version", airflow_version) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if dag_s3_path is not None: - pulumi.set(__self__, "dag_s3_path", dag_s3_path) + _setter("dag_s3_path", dag_s3_path) if environment_class is not None: - pulumi.set(__self__, "environment_class", environment_class) + _setter("environment_class", environment_class) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if last_updateds is not None: - pulumi.set(__self__, "last_updateds", last_updateds) + _setter("last_updateds", last_updateds) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if max_workers is not None: - pulumi.set(__self__, "max_workers", max_workers) + _setter("max_workers", max_workers) if min_workers is not None: - pulumi.set(__self__, "min_workers", min_workers) + _setter("min_workers", min_workers) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if plugins_s3_object_version is not None: - pulumi.set(__self__, "plugins_s3_object_version", plugins_s3_object_version) + _setter("plugins_s3_object_version", plugins_s3_object_version) if plugins_s3_path is not None: - pulumi.set(__self__, "plugins_s3_path", plugins_s3_path) + _setter("plugins_s3_path", plugins_s3_path) if requirements_s3_object_version is not None: - pulumi.set(__self__, "requirements_s3_object_version", requirements_s3_object_version) + _setter("requirements_s3_object_version", requirements_s3_object_version) if requirements_s3_path is not None: - pulumi.set(__self__, "requirements_s3_path", requirements_s3_path) + _setter("requirements_s3_path", requirements_s3_path) if schedulers is not None: - pulumi.set(__self__, "schedulers", schedulers) + _setter("schedulers", schedulers) if service_role_arn is not None: - pulumi.set(__self__, "service_role_arn", service_role_arn) + _setter("service_role_arn", service_role_arn) if source_bucket_arn is not None: - pulumi.set(__self__, "source_bucket_arn", source_bucket_arn) + _setter("source_bucket_arn", source_bucket_arn) if startup_script_s3_object_version is not None: - pulumi.set(__self__, "startup_script_s3_object_version", startup_script_s3_object_version) + _setter("startup_script_s3_object_version", startup_script_s3_object_version) if startup_script_s3_path is not None: - pulumi.set(__self__, "startup_script_s3_path", startup_script_s3_path) + _setter("startup_script_s3_path", startup_script_s3_path) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if webserver_access_mode is not None: - pulumi.set(__self__, "webserver_access_mode", webserver_access_mode) + _setter("webserver_access_mode", webserver_access_mode) if webserver_url is not None: - pulumi.set(__self__, "webserver_url", webserver_url) + _setter("webserver_url", webserver_url) if weekly_maintenance_window_start is not None: - pulumi.set(__self__, "weekly_maintenance_window_start", weekly_maintenance_window_start) + _setter("weekly_maintenance_window_start", weekly_maintenance_window_start) @property @pulumi.getter(name="airflowConfigurationOptions") @@ -1128,6 +1342,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EnvironmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1174,10 +1392,12 @@ def _internal_init(__self__, raise TypeError("Missing required property 'execution_role_arn'") __props__.__dict__["execution_role_arn"] = execution_role_arn __props__.__dict__["kms_key"] = kms_key + logging_configuration = _utilities.configure(logging_configuration, EnvironmentLoggingConfigurationArgs, True) __props__.__dict__["logging_configuration"] = logging_configuration __props__.__dict__["max_workers"] = max_workers __props__.__dict__["min_workers"] = min_workers __props__.__dict__["name"] = name + network_configuration = _utilities.configure(network_configuration, EnvironmentNetworkConfigurationArgs, True) if network_configuration is None and not opts.urn: raise TypeError("Missing required property 'network_configuration'") __props__.__dict__["network_configuration"] = network_configuration diff --git a/sdk/python/pulumi_aws/mwaa/outputs.py b/sdk/python/pulumi_aws/mwaa/outputs.py index feea113485c..db4727eafb5 100644 --- a/sdk/python/pulumi_aws/mwaa/outputs.py +++ b/sdk/python/pulumi_aws/mwaa/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -50,12 +50,29 @@ def __init__(__self__, *, * `logging_configuration[0].[0].cloud_watch_log_group_arn` - Provides the ARN for the CloudWatch group where the logs will be published :param str status: The status of the Amazon MWAA Environment """ + EnvironmentLastUpdated._configure( + lambda key, value: pulumi.set(__self__, key, value), + created_at=created_at, + errors=errors, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + created_at: Optional[str] = None, + errors: Optional[Sequence['outputs.EnvironmentLastUpdatedError']] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if errors is not None: - pulumi.set(__self__, "errors", errors) + _setter("errors", errors) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="createdAt") @@ -104,10 +121,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, error_code: Optional[str] = None, error_message: Optional[str] = None): + EnvironmentLastUpdatedError._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_code=error_code, + error_message=error_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_code: Optional[str] = None, + error_message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_code is None and 'errorCode' in kwargs: + error_code = kwargs['errorCode'] + if error_message is None and 'errorMessage' in kwargs: + error_message = kwargs['errorMessage'] + if error_code is not None: - pulumi.set(__self__, "error_code", error_code) + _setter("error_code", error_code) if error_message is not None: - pulumi.set(__self__, "error_message", error_message) + _setter("error_message", error_message) @property @pulumi.getter(name="errorCode") @@ -160,16 +194,45 @@ def __init__(__self__, *, :param 'EnvironmentLoggingConfigurationWebserverLogsArgs' webserver_logs: Log configuration options for the webservers. See Module logging configuration for more information. Disabled by default. :param 'EnvironmentLoggingConfigurationWorkerLogsArgs' worker_logs: Log configuration options for the workers. See Module logging configuration for more information. Disabled by default. """ + EnvironmentLoggingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + dag_processing_logs=dag_processing_logs, + scheduler_logs=scheduler_logs, + task_logs=task_logs, + webserver_logs=webserver_logs, + worker_logs=worker_logs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dag_processing_logs: Optional['outputs.EnvironmentLoggingConfigurationDagProcessingLogs'] = None, + scheduler_logs: Optional['outputs.EnvironmentLoggingConfigurationSchedulerLogs'] = None, + task_logs: Optional['outputs.EnvironmentLoggingConfigurationTaskLogs'] = None, + webserver_logs: Optional['outputs.EnvironmentLoggingConfigurationWebserverLogs'] = None, + worker_logs: Optional['outputs.EnvironmentLoggingConfigurationWorkerLogs'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dag_processing_logs is None and 'dagProcessingLogs' in kwargs: + dag_processing_logs = kwargs['dagProcessingLogs'] + if scheduler_logs is None and 'schedulerLogs' in kwargs: + scheduler_logs = kwargs['schedulerLogs'] + if task_logs is None and 'taskLogs' in kwargs: + task_logs = kwargs['taskLogs'] + if webserver_logs is None and 'webserverLogs' in kwargs: + webserver_logs = kwargs['webserverLogs'] + if worker_logs is None and 'workerLogs' in kwargs: + worker_logs = kwargs['workerLogs'] + if dag_processing_logs is not None: - pulumi.set(__self__, "dag_processing_logs", dag_processing_logs) + _setter("dag_processing_logs", dag_processing_logs) if scheduler_logs is not None: - pulumi.set(__self__, "scheduler_logs", scheduler_logs) + _setter("scheduler_logs", scheduler_logs) if task_logs is not None: - pulumi.set(__self__, "task_logs", task_logs) + _setter("task_logs", task_logs) if webserver_logs is not None: - pulumi.set(__self__, "webserver_logs", webserver_logs) + _setter("webserver_logs", webserver_logs) if worker_logs is not None: - pulumi.set(__self__, "worker_logs", worker_logs) + _setter("worker_logs", worker_logs) @property @pulumi.getter(name="dagProcessingLogs") @@ -241,12 +304,31 @@ def __init__(__self__, *, :param bool enabled: Enabling or disabling the collection of logs :param str log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationDagProcessingLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[str] = None, + enabled: Optional[bool] = None, + log_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -299,12 +381,31 @@ def __init__(__self__, *, :param bool enabled: Enabling or disabling the collection of logs :param str log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationSchedulerLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[str] = None, + enabled: Optional[bool] = None, + log_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -357,12 +458,31 @@ def __init__(__self__, *, :param bool enabled: Enabling or disabling the collection of logs :param str log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationTaskLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[str] = None, + enabled: Optional[bool] = None, + log_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -415,12 +535,31 @@ def __init__(__self__, *, :param bool enabled: Enabling or disabling the collection of logs :param str log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationWebserverLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[str] = None, + enabled: Optional[bool] = None, + log_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -473,12 +612,31 @@ def __init__(__self__, *, :param bool enabled: Enabling or disabling the collection of logs :param str log_level: Logging level. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`. Will be `INFO` by default. """ + EnvironmentLoggingConfigurationWorkerLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_log_group_arn=cloud_watch_log_group_arn, + enabled=enabled, + log_level=log_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_log_group_arn: Optional[str] = None, + enabled: Optional[bool] = None, + log_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_log_group_arn is None and 'cloudWatchLogGroupArn' in kwargs: + cloud_watch_log_group_arn = kwargs['cloudWatchLogGroupArn'] + if log_level is None and 'logLevel' in kwargs: + log_level = kwargs['logLevel'] + if cloud_watch_log_group_arn is not None: - pulumi.set(__self__, "cloud_watch_log_group_arn", cloud_watch_log_group_arn) + _setter("cloud_watch_log_group_arn", cloud_watch_log_group_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_level is not None: - pulumi.set(__self__, "log_level", log_level) + _setter("log_level", log_level) @property @pulumi.getter(name="cloudWatchLogGroupArn") @@ -530,8 +688,29 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: Security groups IDs for the environment. At least one of the security group needs to allow MWAA resources to talk to each other, otherwise MWAA cannot be provisioned. :param Sequence[str] subnet_ids: The private subnet IDs in which the environment should be created. MWAA requires two subnets. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) + EnvironmentNetworkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/neptune/_inputs.py b/sdk/python/pulumi_aws/neptune/_inputs.py index 7d5f0e1b3a2..e723b38a1d7 100644 --- a/sdk/python/pulumi_aws/neptune/_inputs.py +++ b/sdk/python/pulumi_aws/neptune/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -27,10 +27,31 @@ def __init__(__self__, *, :param pulumi.Input[str] value: The value of the neptune parameter. :param pulumi.Input[str] apply_method: Valid values are `immediate` and `pending-reboot`. Defaults to `pending-reboot`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ClusterParameterGroupParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + apply_method: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter @@ -78,10 +99,27 @@ def __init__(__self__, *, :param pulumi.Input[float] max_capacity: The maximum Neptune Capacity Units (NCUs) for this cluster. Must be lower or equal than **128**. See [AWS Documentation](https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-capacity-scaling.html) for more details. :param pulumi.Input[float] min_capacity: The minimum Neptune Capacity Units (NCUs) for this cluster. Must be greater or equal than **1**. See [AWS Documentation](https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-capacity-scaling.html) for more details. """ + ClusterServerlessV2ScalingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_capacity=max_capacity, + min_capacity=min_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_capacity: Optional[pulumi.Input[float]] = None, + min_capacity: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if min_capacity is not None: - pulumi.set(__self__, "min_capacity", min_capacity) + _setter("min_capacity", min_capacity) @property @pulumi.getter(name="maxCapacity") @@ -117,10 +155,27 @@ def __init__(__self__, *, :param pulumi.Input[str] db_cluster_arn: Amazon Resource Name (ARN) of member DB Cluster. :param pulumi.Input[bool] is_writer: Whether the member is the primary DB Cluster. """ + GlobalClusterGlobalClusterMemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_arn=db_cluster_arn, + is_writer=is_writer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_arn: Optional[pulumi.Input[str]] = None, + is_writer: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_arn is None and 'dbClusterArn' in kwargs: + db_cluster_arn = kwargs['dbClusterArn'] + if is_writer is None and 'isWriter' in kwargs: + is_writer = kwargs['isWriter'] + if db_cluster_arn is not None: - pulumi.set(__self__, "db_cluster_arn", db_cluster_arn) + _setter("db_cluster_arn", db_cluster_arn) if is_writer is not None: - pulumi.set(__self__, "is_writer", is_writer) + _setter("is_writer", is_writer) @property @pulumi.getter(name="dbClusterArn") @@ -158,10 +213,31 @@ def __init__(__self__, *, :param pulumi.Input[str] value: The value of the Neptune parameter. :param pulumi.Input[str] apply_method: The apply method of the Neptune parameter. Valid values are `immediate` and `pending-reboot`. Defaults to `pending-reboot`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + apply_method: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/neptune/cluster.py b/sdk/python/pulumi_aws/neptune/cluster.py index fe49cdc9b69..2177c9106bb 100644 --- a/sdk/python/pulumi_aws/neptune/cluster.py +++ b/sdk/python/pulumi_aws/neptune/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -77,64 +77,183 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the Neptune cluster. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of VPC security groups to associate with the Cluster """ + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + availability_zones=availability_zones, + backup_retention_period=backup_retention_period, + cluster_identifier=cluster_identifier, + cluster_identifier_prefix=cluster_identifier_prefix, + copy_tags_to_snapshot=copy_tags_to_snapshot, + deletion_protection=deletion_protection, + enable_cloudwatch_logs_exports=enable_cloudwatch_logs_exports, + engine=engine, + engine_version=engine_version, + final_snapshot_identifier=final_snapshot_identifier, + global_cluster_identifier=global_cluster_identifier, + iam_database_authentication_enabled=iam_database_authentication_enabled, + iam_roles=iam_roles, + kms_key_arn=kms_key_arn, + neptune_cluster_parameter_group_name=neptune_cluster_parameter_group_name, + neptune_instance_parameter_group_name=neptune_instance_parameter_group_name, + neptune_subnet_group_name=neptune_subnet_group_name, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + replication_source_identifier=replication_source_identifier, + serverless_v2_scaling_configuration=serverless_v2_scaling_configuration, + skip_final_snapshot=skip_final_snapshot, + snapshot_identifier=snapshot_identifier, + storage_encrypted=storage_encrypted, + tags=tags, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier_prefix: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + enable_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + iam_database_authentication_enabled: Optional[pulumi.Input[bool]] = None, + iam_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + neptune_cluster_parameter_group_name: Optional[pulumi.Input[str]] = None, + neptune_instance_parameter_group_name: Optional[pulumi.Input[str]] = None, + neptune_subnet_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + replication_source_identifier: Optional[pulumi.Input[str]] = None, + serverless_v2_scaling_configuration: Optional[pulumi.Input['ClusterServerlessV2ScalingConfigurationArgs']] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if backup_retention_period is None and 'backupRetentionPeriod' in kwargs: + backup_retention_period = kwargs['backupRetentionPeriod'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier_prefix is None and 'clusterIdentifierPrefix' in kwargs: + cluster_identifier_prefix = kwargs['clusterIdentifierPrefix'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if enable_cloudwatch_logs_exports is None and 'enableCloudwatchLogsExports' in kwargs: + enable_cloudwatch_logs_exports = kwargs['enableCloudwatchLogsExports'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if iam_database_authentication_enabled is None and 'iamDatabaseAuthenticationEnabled' in kwargs: + iam_database_authentication_enabled = kwargs['iamDatabaseAuthenticationEnabled'] + if iam_roles is None and 'iamRoles' in kwargs: + iam_roles = kwargs['iamRoles'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if neptune_cluster_parameter_group_name is None and 'neptuneClusterParameterGroupName' in kwargs: + neptune_cluster_parameter_group_name = kwargs['neptuneClusterParameterGroupName'] + if neptune_instance_parameter_group_name is None and 'neptuneInstanceParameterGroupName' in kwargs: + neptune_instance_parameter_group_name = kwargs['neptuneInstanceParameterGroupName'] + if neptune_subnet_group_name is None and 'neptuneSubnetGroupName' in kwargs: + neptune_subnet_group_name = kwargs['neptuneSubnetGroupName'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if replication_source_identifier is None and 'replicationSourceIdentifier' in kwargs: + replication_source_identifier = kwargs['replicationSourceIdentifier'] + if serverless_v2_scaling_configuration is None and 'serverlessV2ScalingConfiguration' in kwargs: + serverless_v2_scaling_configuration = kwargs['serverlessV2ScalingConfiguration'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if backup_retention_period is not None: - pulumi.set(__self__, "backup_retention_period", backup_retention_period) + _setter("backup_retention_period", backup_retention_period) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if cluster_identifier_prefix is not None: - pulumi.set(__self__, "cluster_identifier_prefix", cluster_identifier_prefix) + _setter("cluster_identifier_prefix", cluster_identifier_prefix) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if enable_cloudwatch_logs_exports is not None: - pulumi.set(__self__, "enable_cloudwatch_logs_exports", enable_cloudwatch_logs_exports) + _setter("enable_cloudwatch_logs_exports", enable_cloudwatch_logs_exports) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if global_cluster_identifier is not None: - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + _setter("global_cluster_identifier", global_cluster_identifier) if iam_database_authentication_enabled is not None: - pulumi.set(__self__, "iam_database_authentication_enabled", iam_database_authentication_enabled) + _setter("iam_database_authentication_enabled", iam_database_authentication_enabled) if iam_roles is not None: - pulumi.set(__self__, "iam_roles", iam_roles) + _setter("iam_roles", iam_roles) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if neptune_cluster_parameter_group_name is not None: - pulumi.set(__self__, "neptune_cluster_parameter_group_name", neptune_cluster_parameter_group_name) + _setter("neptune_cluster_parameter_group_name", neptune_cluster_parameter_group_name) if neptune_instance_parameter_group_name is not None: - pulumi.set(__self__, "neptune_instance_parameter_group_name", neptune_instance_parameter_group_name) + _setter("neptune_instance_parameter_group_name", neptune_instance_parameter_group_name) if neptune_subnet_group_name is not None: - pulumi.set(__self__, "neptune_subnet_group_name", neptune_subnet_group_name) + _setter("neptune_subnet_group_name", neptune_subnet_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if replication_source_identifier is not None: - pulumi.set(__self__, "replication_source_identifier", replication_source_identifier) + _setter("replication_source_identifier", replication_source_identifier) if serverless_v2_scaling_configuration is not None: - pulumi.set(__self__, "serverless_v2_scaling_configuration", serverless_v2_scaling_configuration) + _setter("serverless_v2_scaling_configuration", serverless_v2_scaling_configuration) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="allowMajorVersionUpgrade") @@ -563,81 +682,224 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of VPC security groups to associate with the Cluster """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + arn=arn, + availability_zones=availability_zones, + backup_retention_period=backup_retention_period, + cluster_identifier=cluster_identifier, + cluster_identifier_prefix=cluster_identifier_prefix, + cluster_members=cluster_members, + cluster_resource_id=cluster_resource_id, + copy_tags_to_snapshot=copy_tags_to_snapshot, + deletion_protection=deletion_protection, + enable_cloudwatch_logs_exports=enable_cloudwatch_logs_exports, + endpoint=endpoint, + engine=engine, + engine_version=engine_version, + final_snapshot_identifier=final_snapshot_identifier, + global_cluster_identifier=global_cluster_identifier, + hosted_zone_id=hosted_zone_id, + iam_database_authentication_enabled=iam_database_authentication_enabled, + iam_roles=iam_roles, + kms_key_arn=kms_key_arn, + neptune_cluster_parameter_group_name=neptune_cluster_parameter_group_name, + neptune_instance_parameter_group_name=neptune_instance_parameter_group_name, + neptune_subnet_group_name=neptune_subnet_group_name, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + reader_endpoint=reader_endpoint, + replication_source_identifier=replication_source_identifier, + serverless_v2_scaling_configuration=serverless_v2_scaling_configuration, + skip_final_snapshot=skip_final_snapshot, + snapshot_identifier=snapshot_identifier, + storage_encrypted=storage_encrypted, + tags=tags, + tags_all=tags_all, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier_prefix: Optional[pulumi.Input[str]] = None, + cluster_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cluster_resource_id: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + enable_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + iam_database_authentication_enabled: Optional[pulumi.Input[bool]] = None, + iam_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + neptune_cluster_parameter_group_name: Optional[pulumi.Input[str]] = None, + neptune_instance_parameter_group_name: Optional[pulumi.Input[str]] = None, + neptune_subnet_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + reader_endpoint: Optional[pulumi.Input[str]] = None, + replication_source_identifier: Optional[pulumi.Input[str]] = None, + serverless_v2_scaling_configuration: Optional[pulumi.Input['ClusterServerlessV2ScalingConfigurationArgs']] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if backup_retention_period is None and 'backupRetentionPeriod' in kwargs: + backup_retention_period = kwargs['backupRetentionPeriod'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier_prefix is None and 'clusterIdentifierPrefix' in kwargs: + cluster_identifier_prefix = kwargs['clusterIdentifierPrefix'] + if cluster_members is None and 'clusterMembers' in kwargs: + cluster_members = kwargs['clusterMembers'] + if cluster_resource_id is None and 'clusterResourceId' in kwargs: + cluster_resource_id = kwargs['clusterResourceId'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if enable_cloudwatch_logs_exports is None and 'enableCloudwatchLogsExports' in kwargs: + enable_cloudwatch_logs_exports = kwargs['enableCloudwatchLogsExports'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if iam_database_authentication_enabled is None and 'iamDatabaseAuthenticationEnabled' in kwargs: + iam_database_authentication_enabled = kwargs['iamDatabaseAuthenticationEnabled'] + if iam_roles is None and 'iamRoles' in kwargs: + iam_roles = kwargs['iamRoles'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if neptune_cluster_parameter_group_name is None and 'neptuneClusterParameterGroupName' in kwargs: + neptune_cluster_parameter_group_name = kwargs['neptuneClusterParameterGroupName'] + if neptune_instance_parameter_group_name is None and 'neptuneInstanceParameterGroupName' in kwargs: + neptune_instance_parameter_group_name = kwargs['neptuneInstanceParameterGroupName'] + if neptune_subnet_group_name is None and 'neptuneSubnetGroupName' in kwargs: + neptune_subnet_group_name = kwargs['neptuneSubnetGroupName'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if reader_endpoint is None and 'readerEndpoint' in kwargs: + reader_endpoint = kwargs['readerEndpoint'] + if replication_source_identifier is None and 'replicationSourceIdentifier' in kwargs: + replication_source_identifier = kwargs['replicationSourceIdentifier'] + if serverless_v2_scaling_configuration is None and 'serverlessV2ScalingConfiguration' in kwargs: + serverless_v2_scaling_configuration = kwargs['serverlessV2ScalingConfiguration'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if backup_retention_period is not None: - pulumi.set(__self__, "backup_retention_period", backup_retention_period) + _setter("backup_retention_period", backup_retention_period) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if cluster_identifier_prefix is not None: - pulumi.set(__self__, "cluster_identifier_prefix", cluster_identifier_prefix) + _setter("cluster_identifier_prefix", cluster_identifier_prefix) if cluster_members is not None: - pulumi.set(__self__, "cluster_members", cluster_members) + _setter("cluster_members", cluster_members) if cluster_resource_id is not None: - pulumi.set(__self__, "cluster_resource_id", cluster_resource_id) + _setter("cluster_resource_id", cluster_resource_id) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if enable_cloudwatch_logs_exports is not None: - pulumi.set(__self__, "enable_cloudwatch_logs_exports", enable_cloudwatch_logs_exports) + _setter("enable_cloudwatch_logs_exports", enable_cloudwatch_logs_exports) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if global_cluster_identifier is not None: - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + _setter("global_cluster_identifier", global_cluster_identifier) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if iam_database_authentication_enabled is not None: - pulumi.set(__self__, "iam_database_authentication_enabled", iam_database_authentication_enabled) + _setter("iam_database_authentication_enabled", iam_database_authentication_enabled) if iam_roles is not None: - pulumi.set(__self__, "iam_roles", iam_roles) + _setter("iam_roles", iam_roles) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if neptune_cluster_parameter_group_name is not None: - pulumi.set(__self__, "neptune_cluster_parameter_group_name", neptune_cluster_parameter_group_name) + _setter("neptune_cluster_parameter_group_name", neptune_cluster_parameter_group_name) if neptune_instance_parameter_group_name is not None: - pulumi.set(__self__, "neptune_instance_parameter_group_name", neptune_instance_parameter_group_name) + _setter("neptune_instance_parameter_group_name", neptune_instance_parameter_group_name) if neptune_subnet_group_name is not None: - pulumi.set(__self__, "neptune_subnet_group_name", neptune_subnet_group_name) + _setter("neptune_subnet_group_name", neptune_subnet_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if reader_endpoint is not None: - pulumi.set(__self__, "reader_endpoint", reader_endpoint) + _setter("reader_endpoint", reader_endpoint) if replication_source_identifier is not None: - pulumi.set(__self__, "replication_source_identifier", replication_source_identifier) + _setter("replication_source_identifier", replication_source_identifier) if serverless_v2_scaling_configuration is not None: - pulumi.set(__self__, "serverless_v2_scaling_configuration", serverless_v2_scaling_configuration) + _setter("serverless_v2_scaling_configuration", serverless_v2_scaling_configuration) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="allowMajorVersionUpgrade") @@ -1234,6 +1496,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1300,6 +1566,7 @@ def _internal_init(__self__, __props__.__dict__["preferred_backup_window"] = preferred_backup_window __props__.__dict__["preferred_maintenance_window"] = preferred_maintenance_window __props__.__dict__["replication_source_identifier"] = replication_source_identifier + serverless_v2_scaling_configuration = _utilities.configure(serverless_v2_scaling_configuration, ClusterServerlessV2ScalingConfigurationArgs, True) __props__.__dict__["serverless_v2_scaling_configuration"] = serverless_v2_scaling_configuration __props__.__dict__["skip_final_snapshot"] = skip_final_snapshot __props__.__dict__["snapshot_identifier"] = snapshot_identifier diff --git a/sdk/python/pulumi_aws/neptune/cluster_endpoint.py b/sdk/python/pulumi_aws/neptune/cluster_endpoint.py index da27bccd272..3c60f5d52a2 100644 --- a/sdk/python/pulumi_aws/neptune/cluster_endpoint.py +++ b/sdk/python/pulumi_aws/neptune/cluster_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterEndpointArgs', 'ClusterEndpoint'] @@ -29,15 +29,52 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] static_members: List of DB instance identifiers that are part of the custom endpoint group. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the Neptune cluster. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "cluster_endpoint_identifier", cluster_endpoint_identifier) - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "endpoint_type", endpoint_type) + ClusterEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_endpoint_identifier=cluster_endpoint_identifier, + cluster_identifier=cluster_identifier, + endpoint_type=endpoint_type, + excluded_members=excluded_members, + static_members=static_members, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_endpoint_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + excluded_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + static_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_endpoint_identifier is None and 'clusterEndpointIdentifier' in kwargs: + cluster_endpoint_identifier = kwargs['clusterEndpointIdentifier'] + if cluster_endpoint_identifier is None: + raise TypeError("Missing 'cluster_endpoint_identifier' argument") + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if endpoint_type is None: + raise TypeError("Missing 'endpoint_type' argument") + if excluded_members is None and 'excludedMembers' in kwargs: + excluded_members = kwargs['excludedMembers'] + if static_members is None and 'staticMembers' in kwargs: + static_members = kwargs['staticMembers'] + + _setter("cluster_endpoint_identifier", cluster_endpoint_identifier) + _setter("cluster_identifier", cluster_identifier) + _setter("endpoint_type", endpoint_type) if excluded_members is not None: - pulumi.set(__self__, "excluded_members", excluded_members) + _setter("excluded_members", excluded_members) if static_members is not None: - pulumi.set(__self__, "static_members", static_members) + _setter("static_members", static_members) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterEndpointIdentifier") @@ -136,27 +173,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the Neptune cluster. 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. """ + _ClusterEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cluster_endpoint_identifier=cluster_endpoint_identifier, + cluster_identifier=cluster_identifier, + endpoint=endpoint, + endpoint_type=endpoint_type, + excluded_members=excluded_members, + static_members=static_members, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cluster_endpoint_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + excluded_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + static_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_endpoint_identifier is None and 'clusterEndpointIdentifier' in kwargs: + cluster_endpoint_identifier = kwargs['clusterEndpointIdentifier'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if excluded_members is None and 'excludedMembers' in kwargs: + excluded_members = kwargs['excludedMembers'] + if static_members is None and 'staticMembers' in kwargs: + static_members = kwargs['staticMembers'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_endpoint_identifier is not None: - pulumi.set(__self__, "cluster_endpoint_identifier", cluster_endpoint_identifier) + _setter("cluster_endpoint_identifier", cluster_endpoint_identifier) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if endpoint_type is not None: - pulumi.set(__self__, "endpoint_type", endpoint_type) + _setter("endpoint_type", endpoint_type) if excluded_members is not None: - pulumi.set(__self__, "excluded_members", excluded_members) + _setter("excluded_members", excluded_members) if static_members is not None: - pulumi.set(__self__, "static_members", static_members) + _setter("static_members", static_members) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -353,6 +429,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/neptune/cluster_instance.py b/sdk/python/pulumi_aws/neptune/cluster_instance.py index 43543a25a91..ab1b328c166 100644 --- a/sdk/python/pulumi_aws/neptune/cluster_instance.py +++ b/sdk/python/pulumi_aws/neptune/cluster_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterInstanceArgs', 'ClusterInstance'] @@ -53,38 +53,111 @@ def __init__(__self__, *, :param pulumi.Input[bool] publicly_accessible: Bool to control if instance is publicly accessible. Default is `false`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the instance. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "instance_class", instance_class) + ClusterInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + instance_class=instance_class, + apply_immediately=apply_immediately, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + engine=engine, + engine_version=engine_version, + identifier=identifier, + identifier_prefix=identifier_prefix, + neptune_parameter_group_name=neptune_parameter_group_name, + neptune_subnet_group_name=neptune_subnet_group_name, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + promotion_tier=promotion_tier, + publicly_accessible=publicly_accessible, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + instance_class: Optional[pulumi.Input[str]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + neptune_parameter_group_name: Optional[pulumi.Input[str]] = None, + neptune_subnet_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + promotion_tier: Optional[pulumi.Input[int]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if instance_class is None and 'instanceClass' in kwargs: + instance_class = kwargs['instanceClass'] + if instance_class is None: + raise TypeError("Missing 'instance_class' argument") + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + if neptune_parameter_group_name is None and 'neptuneParameterGroupName' in kwargs: + neptune_parameter_group_name = kwargs['neptuneParameterGroupName'] + if neptune_subnet_group_name is None and 'neptuneSubnetGroupName' in kwargs: + neptune_subnet_group_name = kwargs['neptuneSubnetGroupName'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if promotion_tier is None and 'promotionTier' in kwargs: + promotion_tier = kwargs['promotionTier'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + + _setter("cluster_identifier", cluster_identifier) + _setter("instance_class", instance_class) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if neptune_parameter_group_name is not None: - pulumi.set(__self__, "neptune_parameter_group_name", neptune_parameter_group_name) + _setter("neptune_parameter_group_name", neptune_parameter_group_name) if neptune_subnet_group_name is not None: - pulumi.set(__self__, "neptune_subnet_group_name", neptune_subnet_group_name) + _setter("neptune_subnet_group_name", neptune_subnet_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if promotion_tier is not None: - pulumi.set(__self__, "promotion_tier", promotion_tier) + _setter("promotion_tier", promotion_tier) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterIdentifier") @@ -351,59 +424,152 @@ def __init__(__self__, *, :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[bool] writer: Boolean indicating if this instance is writable. `False` indicates this instance is a read replica. """ + _ClusterInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + apply_immediately=apply_immediately, + arn=arn, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + cluster_identifier=cluster_identifier, + dbi_resource_id=dbi_resource_id, + endpoint=endpoint, + engine=engine, + engine_version=engine_version, + identifier=identifier, + identifier_prefix=identifier_prefix, + instance_class=instance_class, + kms_key_arn=kms_key_arn, + neptune_parameter_group_name=neptune_parameter_group_name, + neptune_subnet_group_name=neptune_subnet_group_name, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + promotion_tier=promotion_tier, + publicly_accessible=publicly_accessible, + storage_encrypted=storage_encrypted, + tags=tags, + tags_all=tags_all, + writer=writer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + dbi_resource_id: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + instance_class: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + neptune_parameter_group_name: Optional[pulumi.Input[str]] = None, + neptune_subnet_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + promotion_tier: Optional[pulumi.Input[int]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + writer: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if dbi_resource_id is None and 'dbiResourceId' in kwargs: + dbi_resource_id = kwargs['dbiResourceId'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + if instance_class is None and 'instanceClass' in kwargs: + instance_class = kwargs['instanceClass'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if neptune_parameter_group_name is None and 'neptuneParameterGroupName' in kwargs: + neptune_parameter_group_name = kwargs['neptuneParameterGroupName'] + if neptune_subnet_group_name is None and 'neptuneSubnetGroupName' in kwargs: + neptune_subnet_group_name = kwargs['neptuneSubnetGroupName'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if promotion_tier is None and 'promotionTier' in kwargs: + promotion_tier = kwargs['promotionTier'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if dbi_resource_id is not None: - pulumi.set(__self__, "dbi_resource_id", dbi_resource_id) + _setter("dbi_resource_id", dbi_resource_id) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if instance_class is not None: - pulumi.set(__self__, "instance_class", instance_class) + _setter("instance_class", instance_class) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if neptune_parameter_group_name is not None: - pulumi.set(__self__, "neptune_parameter_group_name", neptune_parameter_group_name) + _setter("neptune_parameter_group_name", neptune_parameter_group_name) if neptune_subnet_group_name is not None: - pulumi.set(__self__, "neptune_subnet_group_name", neptune_subnet_group_name) + _setter("neptune_subnet_group_name", neptune_subnet_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if promotion_tier is not None: - pulumi.set(__self__, "promotion_tier", promotion_tier) + _setter("promotion_tier", promotion_tier) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if writer is not None: - pulumi.set(__self__, "writer", writer) + _setter("writer", writer) @property @pulumi.getter @@ -850,6 +1016,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/neptune/cluster_parameter_group.py b/sdk/python/pulumi_aws/neptune/cluster_parameter_group.py index b670ebcf3d4..3e25bcf83d5 100644 --- a/sdk/python/pulumi_aws/neptune/cluster_parameter_group.py +++ b/sdk/python/pulumi_aws/neptune/cluster_parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,17 +31,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClusterParameterGroupParameterArgs']]] parameters: A list of neptune parameters to apply. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "family", family) + ClusterParameterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + family=family, + description=description, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family is None: + raise TypeError("Missing 'family' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("family", family) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -138,25 +163,54 @@ def __init__(__self__, *, :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. """ + _ClusterParameterGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + family=family, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if family is not None: - pulumi.set(__self__, "family", family) + _setter("family", family) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -347,6 +401,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterParameterGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/neptune/cluster_snapshot.py b/sdk/python/pulumi_aws/neptune/cluster_snapshot.py index cecd681bc1d..fd2a9628fff 100644 --- a/sdk/python/pulumi_aws/neptune/cluster_snapshot.py +++ b/sdk/python/pulumi_aws/neptune/cluster_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterSnapshotArgs', 'ClusterSnapshot'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] db_cluster_identifier: The DB Cluster Identifier from which to take the snapshot. :param pulumi.Input[str] db_cluster_snapshot_identifier: The Identifier for the snapshot. """ - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) - pulumi.set(__self__, "db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) + ClusterSnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_identifier=db_cluster_identifier, + db_cluster_snapshot_identifier=db_cluster_snapshot_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_cluster_identifier is None: + raise TypeError("Missing 'db_cluster_identifier' argument") + if db_cluster_snapshot_identifier is None and 'dbClusterSnapshotIdentifier' in kwargs: + db_cluster_snapshot_identifier = kwargs['dbClusterSnapshotIdentifier'] + if db_cluster_snapshot_identifier is None: + raise TypeError("Missing 'db_cluster_snapshot_identifier' argument") + + _setter("db_cluster_identifier", db_cluster_identifier) + _setter("db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) @property @pulumi.getter(name="dbClusterIdentifier") @@ -83,36 +104,99 @@ def __init__(__self__, *, :param pulumi.Input[bool] storage_encrypted: Specifies whether the DB cluster snapshot is encrypted. :param pulumi.Input[str] vpc_id: The VPC ID associated with the DB cluster snapshot. """ + _ClusterSnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocated_storage=allocated_storage, + availability_zones=availability_zones, + db_cluster_identifier=db_cluster_identifier, + db_cluster_snapshot_arn=db_cluster_snapshot_arn, + db_cluster_snapshot_identifier=db_cluster_snapshot_identifier, + engine=engine, + engine_version=engine_version, + kms_key_id=kms_key_id, + license_model=license_model, + port=port, + snapshot_type=snapshot_type, + source_db_cluster_snapshot_arn=source_db_cluster_snapshot_arn, + status=status, + storage_encrypted=storage_encrypted, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocated_storage: Optional[pulumi.Input[int]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + db_cluster_snapshot_arn: Optional[pulumi.Input[str]] = None, + db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + license_model: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + snapshot_type: Optional[pulumi.Input[str]] = None, + source_db_cluster_snapshot_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_cluster_snapshot_arn is None and 'dbClusterSnapshotArn' in kwargs: + db_cluster_snapshot_arn = kwargs['dbClusterSnapshotArn'] + if db_cluster_snapshot_identifier is None and 'dbClusterSnapshotIdentifier' in kwargs: + db_cluster_snapshot_identifier = kwargs['dbClusterSnapshotIdentifier'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if license_model is None and 'licenseModel' in kwargs: + license_model = kwargs['licenseModel'] + if snapshot_type is None and 'snapshotType' in kwargs: + snapshot_type = kwargs['snapshotType'] + if source_db_cluster_snapshot_arn is None and 'sourceDbClusterSnapshotArn' in kwargs: + source_db_cluster_snapshot_arn = kwargs['sourceDbClusterSnapshotArn'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if db_cluster_identifier is not None: - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) + _setter("db_cluster_identifier", db_cluster_identifier) if db_cluster_snapshot_arn is not None: - pulumi.set(__self__, "db_cluster_snapshot_arn", db_cluster_snapshot_arn) + _setter("db_cluster_snapshot_arn", db_cluster_snapshot_arn) if db_cluster_snapshot_identifier is not None: - pulumi.set(__self__, "db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) + _setter("db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if license_model is not None: - pulumi.set(__self__, "license_model", license_model) + _setter("license_model", license_model) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if snapshot_type is not None: - pulumi.set(__self__, "snapshot_type", snapshot_type) + _setter("snapshot_type", snapshot_type) if source_db_cluster_snapshot_arn is not None: - pulumi.set(__self__, "source_db_cluster_snapshot_arn", source_db_cluster_snapshot_arn) + _setter("source_db_cluster_snapshot_arn", source_db_cluster_snapshot_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="allocatedStorage") @@ -362,6 +446,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterSnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/neptune/event_subscription.py b/sdk/python/pulumi_aws/neptune/event_subscription.py index 3526ffffe30..748be13482e 100644 --- a/sdk/python/pulumi_aws/neptune/event_subscription.py +++ b/sdk/python/pulumi_aws/neptune/event_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventSubscriptionArgs', 'EventSubscription'] @@ -33,21 +33,58 @@ def __init__(__self__, *, :param pulumi.Input[str] source_type: The type of source that will be generating the events. Valid options are `db-instance`, `db-security-group`, `db-parameter-group`, `db-snapshot`, `db-cluster` or `db-cluster-snapshot`. If not set, all sources will be subscribed to. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + EventSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sns_topic_arn=sns_topic_arn, + enabled=enabled, + event_categories=event_categories, + name=name, + name_prefix=name_prefix, + source_ids=source_ids, + source_type=source_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sns_topic_arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if sns_topic_arn is None: + raise TypeError("Missing 'sns_topic_arn' argument") + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + + _setter("sns_topic_arn", sns_topic_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_categories is not None: - pulumi.set(__self__, "event_categories", event_categories) + _setter("event_categories", event_categories) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="snsTopicArn") @@ -174,31 +211,76 @@ def __init__(__self__, *, :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. """ + _EventSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + customer_aws_id=customer_aws_id, + enabled=enabled, + event_categories=event_categories, + name=name, + name_prefix=name_prefix, + sns_topic_arn=sns_topic_arn, + source_ids=source_ids, + source_type=source_type, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + customer_aws_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_aws_id is None and 'customerAwsId' in kwargs: + customer_aws_id = kwargs['customerAwsId'] + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if customer_aws_id is not None: - pulumi.set(__self__, "customer_aws_id", customer_aws_id) + _setter("customer_aws_id", customer_aws_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_categories is not None: - pulumi.set(__self__, "event_categories", event_categories) + _setter("event_categories", event_categories) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -481,6 +563,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/neptune/get_engine_version.py b/sdk/python/pulumi_aws/neptune/get_engine_version.py index d943a2f71c4..23fdf77a789 100644 --- a/sdk/python/pulumi_aws/neptune/get_engine_version.py +++ b/sdk/python/pulumi_aws/neptune/get_engine_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/neptune/get_orderable_db_instance.py b/sdk/python/pulumi_aws/neptune/get_orderable_db_instance.py index 979e990131d..082ddb4bd14 100644 --- a/sdk/python/pulumi_aws/neptune/get_orderable_db_instance.py +++ b/sdk/python/pulumi_aws/neptune/get_orderable_db_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/neptune/global_cluster.py b/sdk/python/pulumi_aws/neptune/global_cluster.py index 404ab57fc21..11932d0680d 100644 --- a/sdk/python/pulumi_aws/neptune/global_cluster.py +++ b/sdk/python/pulumi_aws/neptune/global_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -32,17 +32,50 @@ def __init__(__self__, *, :param pulumi.Input[str] source_db_cluster_identifier: Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value. :param pulumi.Input[bool] storage_encrypted: Specifies whether the DB cluster is encrypted. The default is `false` unless `source_db_cluster_identifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided. """ - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + GlobalClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_cluster_identifier=global_cluster_identifier, + deletion_protection=deletion_protection, + engine=engine, + engine_version=engine_version, + source_db_cluster_identifier=source_db_cluster_identifier, + storage_encrypted=storage_encrypted, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + source_db_cluster_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if global_cluster_identifier is None: + raise TypeError("Missing 'global_cluster_identifier' argument") + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if source_db_cluster_identifier is None and 'sourceDbClusterIdentifier' in kwargs: + source_db_cluster_identifier = kwargs['sourceDbClusterIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + + _setter("global_cluster_identifier", global_cluster_identifier) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if source_db_cluster_identifier is not None: - pulumi.set(__self__, "source_db_cluster_identifier", source_db_cluster_identifier) + _setter("source_db_cluster_identifier", source_db_cluster_identifier) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) @property @pulumi.getter(name="globalClusterIdentifier") @@ -144,26 +177,69 @@ def __init__(__self__, *, :param pulumi.Input[str] source_db_cluster_identifier: Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value. :param pulumi.Input[bool] storage_encrypted: Specifies whether the DB cluster is encrypted. The default is `false` unless `source_db_cluster_identifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided. """ + _GlobalClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + deletion_protection=deletion_protection, + engine=engine, + engine_version=engine_version, + global_cluster_identifier=global_cluster_identifier, + global_cluster_members=global_cluster_members, + global_cluster_resource_id=global_cluster_resource_id, + source_db_cluster_identifier=source_db_cluster_identifier, + status=status, + storage_encrypted=storage_encrypted, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + global_cluster_members: Optional[pulumi.Input[Sequence[pulumi.Input['GlobalClusterGlobalClusterMemberArgs']]]] = None, + global_cluster_resource_id: Optional[pulumi.Input[str]] = None, + source_db_cluster_identifier: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if global_cluster_members is None and 'globalClusterMembers' in kwargs: + global_cluster_members = kwargs['globalClusterMembers'] + if global_cluster_resource_id is None and 'globalClusterResourceId' in kwargs: + global_cluster_resource_id = kwargs['globalClusterResourceId'] + if source_db_cluster_identifier is None and 'sourceDbClusterIdentifier' in kwargs: + source_db_cluster_identifier = kwargs['sourceDbClusterIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if global_cluster_identifier is not None: - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + _setter("global_cluster_identifier", global_cluster_identifier) if global_cluster_members is not None: - pulumi.set(__self__, "global_cluster_members", global_cluster_members) + _setter("global_cluster_members", global_cluster_members) if global_cluster_resource_id is not None: - pulumi.set(__self__, "global_cluster_resource_id", global_cluster_resource_id) + _setter("global_cluster_resource_id", global_cluster_resource_id) if source_db_cluster_identifier is not None: - pulumi.set(__self__, "source_db_cluster_identifier", source_db_cluster_identifier) + _setter("source_db_cluster_identifier", source_db_cluster_identifier) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) @property @pulumi.getter @@ -466,6 +542,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GlobalClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/neptune/outputs.py b/sdk/python/pulumi_aws/neptune/outputs.py index fafeb246d92..350111f5627 100644 --- a/sdk/python/pulumi_aws/neptune/outputs.py +++ b/sdk/python/pulumi_aws/neptune/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -44,10 +44,31 @@ def __init__(__self__, *, :param str value: The value of the neptune parameter. :param str apply_method: Valid values are `immediate` and `pending-reboot`. Defaults to `pending-reboot`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ClusterParameterGroupParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + apply_method: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter @@ -102,10 +123,27 @@ def __init__(__self__, *, :param float max_capacity: The maximum Neptune Capacity Units (NCUs) for this cluster. Must be lower or equal than **128**. See [AWS Documentation](https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-capacity-scaling.html) for more details. :param float min_capacity: The minimum Neptune Capacity Units (NCUs) for this cluster. Must be greater or equal than **1**. See [AWS Documentation](https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-capacity-scaling.html) for more details. """ + ClusterServerlessV2ScalingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_capacity=max_capacity, + min_capacity=min_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_capacity: Optional[float] = None, + min_capacity: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if min_capacity is not None: - pulumi.set(__self__, "min_capacity", min_capacity) + _setter("min_capacity", min_capacity) @property @pulumi.getter(name="maxCapacity") @@ -152,10 +190,27 @@ def __init__(__self__, *, :param str db_cluster_arn: Amazon Resource Name (ARN) of member DB Cluster. :param bool is_writer: Whether the member is the primary DB Cluster. """ + GlobalClusterGlobalClusterMember._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_arn=db_cluster_arn, + is_writer=is_writer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_arn: Optional[str] = None, + is_writer: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_arn is None and 'dbClusterArn' in kwargs: + db_cluster_arn = kwargs['dbClusterArn'] + if is_writer is None and 'isWriter' in kwargs: + is_writer = kwargs['isWriter'] + if db_cluster_arn is not None: - pulumi.set(__self__, "db_cluster_arn", db_cluster_arn) + _setter("db_cluster_arn", db_cluster_arn) if is_writer is not None: - pulumi.set(__self__, "is_writer", is_writer) + _setter("is_writer", is_writer) @property @pulumi.getter(name="dbClusterArn") @@ -202,10 +257,31 @@ def __init__(__self__, *, :param str value: The value of the Neptune parameter. :param str apply_method: The apply method of the Neptune parameter. Valid values are `immediate` and `pending-reboot`. Defaults to `pending-reboot`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + apply_method: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/neptune/parameter_group.py b/sdk/python/pulumi_aws/neptune/parameter_group.py index 6072e4a1de2..fe5e439b3d7 100644 --- a/sdk/python/pulumi_aws/neptune/parameter_group.py +++ b/sdk/python/pulumi_aws/neptune/parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,36 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]] parameters: A list of Neptune parameters to apply. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "family", family) + ParameterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + family=family, + description=description, + name=name, + parameters=parameters, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family is None: + raise TypeError("Missing 'family' argument") + + _setter("family", family) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -120,23 +141,48 @@ def __init__(__self__, *, :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. """ + _ParameterGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + family=family, + name=name, + parameters=parameters, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if family is not None: - pulumi.set(__self__, "family", family) + _setter("family", family) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -311,6 +357,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ParameterGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/neptune/subnet_group.py b/sdk/python/pulumi_aws/neptune/subnet_group.py index 6c85abb839e..35dae3a4021 100644 --- a/sdk/python/pulumi_aws/neptune/subnet_group.py +++ b/sdk/python/pulumi_aws/neptune/subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SubnetGroupArgs', 'SubnetGroup'] @@ -27,17 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + SubnetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + description=description, + name=name, + name_prefix=name_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("subnet_ids", subnet_ids) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="subnetIds") @@ -120,25 +145,54 @@ def __init__(__self__, *, :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. """ + _SubnetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + name_prefix=name_prefix, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -317,6 +371,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SubnetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkfirewall/_inputs.py b/sdk/python/pulumi_aws/networkfirewall/_inputs.py index 6c72628faaf..4445372e8ec 100644 --- a/sdk/python/pulumi_aws/networkfirewall/_inputs.py +++ b/sdk/python/pulumi_aws/networkfirewall/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -70,9 +70,26 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are `CUSTOMER_KMS` and `AWS_OWNED_KMS_KEY`. :param pulumi.Input[str] key_id: The ID of the customer managed key. You can use any of the [key identifiers](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. """ - pulumi.set(__self__, "type", type) + FirewallEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("type", type) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) @property @pulumi.getter @@ -106,8 +123,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['FirewallFirewallStatusSyncStateArgs']]] sync_states: Set of subnets configured for use by the firewall. """ + FirewallFirewallStatusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sync_states=sync_states, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sync_states: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallFirewallStatusSyncStateArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sync_states is None and 'syncStates' in kwargs: + sync_states = kwargs['syncStates'] + if sync_states is not None: - pulumi.set(__self__, "sync_states", sync_states) + _setter("sync_states", sync_states) @property @pulumi.getter(name="syncStates") @@ -131,10 +161,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['FirewallFirewallStatusSyncStateAttachmentArgs']]] attachments: Nested list describing the attachment status of the firewall's association with a single VPC subnet. :param pulumi.Input[str] availability_zone: The Availability Zone where the subnet is configured. """ + FirewallFirewallStatusSyncStateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachments=attachments, + availability_zone=availability_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachments: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallFirewallStatusSyncStateAttachmentArgs']]]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if attachments is not None: - pulumi.set(__self__, "attachments", attachments) + _setter("attachments", attachments) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) @property @pulumi.getter @@ -170,10 +215,27 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint_id: The identifier of the firewall endpoint that AWS Network Firewall has instantiated in the subnet. You use this to identify the firewall endpoint in the VPC route tables, when you redirect the VPC traffic through the endpoint. :param pulumi.Input[str] subnet_id: The unique identifier for the subnet. """ + FirewallFirewallStatusSyncStateAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_id=endpoint_id, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="endpointId") @@ -209,9 +271,26 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are `CUSTOMER_KMS` and `AWS_OWNED_KMS_KEY`. :param pulumi.Input[str] key_id: The ID of the customer managed key. You can use any of the [key identifiers](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. """ - pulumi.set(__self__, "type", type) + FirewallPolicyEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("type", type) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) @property @pulumi.getter @@ -261,20 +340,65 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyFirewallPolicyStatelessCustomActionArgs']]] stateless_custom_actions: Set of configuration blocks describing the custom action definitions that are available for use in the firewall policy's `stateless_default_actions`. See Stateless Custom Action below for details. :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyFirewallPolicyStatelessRuleGroupReferenceArgs']]] stateless_rule_group_references: Set of configuration blocks containing references to the stateless rule groups that are used in the policy. See Stateless Rule Group Reference below for details. """ - pulumi.set(__self__, "stateless_default_actions", stateless_default_actions) - pulumi.set(__self__, "stateless_fragment_default_actions", stateless_fragment_default_actions) + FirewallPolicyFirewallPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stateless_default_actions=stateless_default_actions, + stateless_fragment_default_actions=stateless_fragment_default_actions, + policy_variables=policy_variables, + stateful_default_actions=stateful_default_actions, + stateful_engine_options=stateful_engine_options, + stateful_rule_group_references=stateful_rule_group_references, + stateless_custom_actions=stateless_custom_actions, + stateless_rule_group_references=stateless_rule_group_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stateless_default_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + stateless_fragment_default_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + policy_variables: Optional[pulumi.Input['FirewallPolicyFirewallPolicyPolicyVariablesArgs']] = None, + stateful_default_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + stateful_engine_options: Optional[pulumi.Input['FirewallPolicyFirewallPolicyStatefulEngineOptionsArgs']] = None, + stateful_rule_group_references: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyFirewallPolicyStatefulRuleGroupReferenceArgs']]]] = None, + stateless_custom_actions: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyFirewallPolicyStatelessCustomActionArgs']]]] = None, + stateless_rule_group_references: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyFirewallPolicyStatelessRuleGroupReferenceArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stateless_default_actions is None and 'statelessDefaultActions' in kwargs: + stateless_default_actions = kwargs['statelessDefaultActions'] + if stateless_default_actions is None: + raise TypeError("Missing 'stateless_default_actions' argument") + if stateless_fragment_default_actions is None and 'statelessFragmentDefaultActions' in kwargs: + stateless_fragment_default_actions = kwargs['statelessFragmentDefaultActions'] + if stateless_fragment_default_actions is None: + raise TypeError("Missing 'stateless_fragment_default_actions' argument") + if policy_variables is None and 'policyVariables' in kwargs: + policy_variables = kwargs['policyVariables'] + if stateful_default_actions is None and 'statefulDefaultActions' in kwargs: + stateful_default_actions = kwargs['statefulDefaultActions'] + if stateful_engine_options is None and 'statefulEngineOptions' in kwargs: + stateful_engine_options = kwargs['statefulEngineOptions'] + if stateful_rule_group_references is None and 'statefulRuleGroupReferences' in kwargs: + stateful_rule_group_references = kwargs['statefulRuleGroupReferences'] + if stateless_custom_actions is None and 'statelessCustomActions' in kwargs: + stateless_custom_actions = kwargs['statelessCustomActions'] + if stateless_rule_group_references is None and 'statelessRuleGroupReferences' in kwargs: + stateless_rule_group_references = kwargs['statelessRuleGroupReferences'] + + _setter("stateless_default_actions", stateless_default_actions) + _setter("stateless_fragment_default_actions", stateless_fragment_default_actions) if policy_variables is not None: - pulumi.set(__self__, "policy_variables", policy_variables) + _setter("policy_variables", policy_variables) if stateful_default_actions is not None: - pulumi.set(__self__, "stateful_default_actions", stateful_default_actions) + _setter("stateful_default_actions", stateful_default_actions) if stateful_engine_options is not None: - pulumi.set(__self__, "stateful_engine_options", stateful_engine_options) + _setter("stateful_engine_options", stateful_engine_options) if stateful_rule_group_references is not None: - pulumi.set(__self__, "stateful_rule_group_references", stateful_rule_group_references) + _setter("stateful_rule_group_references", stateful_rule_group_references) if stateless_custom_actions is not None: - pulumi.set(__self__, "stateless_custom_actions", stateless_custom_actions) + _setter("stateless_custom_actions", stateless_custom_actions) if stateless_rule_group_references is not None: - pulumi.set(__self__, "stateless_rule_group_references", stateless_rule_group_references) + _setter("stateless_rule_group_references", stateless_rule_group_references) @property @pulumi.getter(name="statelessDefaultActions") @@ -379,8 +503,21 @@ def stateless_rule_group_references(self, value: Optional[pulumi.Input[Sequence[ class FirewallPolicyFirewallPolicyPolicyVariablesArgs: def __init__(__self__, *, rule_variables: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyFirewallPolicyPolicyVariablesRuleVariableArgs']]]] = None): + FirewallPolicyFirewallPolicyPolicyVariablesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_variables=rule_variables, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_variables: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyFirewallPolicyPolicyVariablesRuleVariableArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_variables is None and 'ruleVariables' in kwargs: + rule_variables = kwargs['ruleVariables'] + if rule_variables is not None: - pulumi.set(__self__, "rule_variables", rule_variables) + _setter("rule_variables", rule_variables) @property @pulumi.getter(name="ruleVariables") @@ -401,8 +538,27 @@ def __init__(__self__, *, :param pulumi.Input['FirewallPolicyFirewallPolicyPolicyVariablesRuleVariableIpSetArgs'] ip_set: A configuration block that defines a set of IP addresses. See IP Set below for details. :param pulumi.Input[str] key: An alphanumeric string to identify the `ip_set`. Valid values: `HOME_NET` """ - pulumi.set(__self__, "ip_set", ip_set) - pulumi.set(__self__, "key", key) + FirewallPolicyFirewallPolicyPolicyVariablesRuleVariableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set=ip_set, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set: Optional[pulumi.Input['FirewallPolicyFirewallPolicyPolicyVariablesRuleVariableIpSetArgs']] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set is None and 'ipSet' in kwargs: + ip_set = kwargs['ipSet'] + if ip_set is None: + raise TypeError("Missing 'ip_set' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("ip_set", ip_set) + _setter("key", key) @property @pulumi.getter(name="ipSet") @@ -436,7 +592,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] definitions: Set of IPv4 or IPv6 addresses in CIDR notation to use for the Suricata `HOME_NET` variable. """ - pulumi.set(__self__, "definitions", definitions) + FirewallPolicyFirewallPolicyPolicyVariablesRuleVariableIpSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + definitions=definitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definitions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definitions is None: + raise TypeError("Missing 'definitions' argument") + + _setter("definitions", definitions) @property @pulumi.getter @@ -460,10 +629,27 @@ def __init__(__self__, *, :param pulumi.Input[str] rule_order: Indicates how to manage the order of stateful rule evaluation for the policy. Default value: `DEFAULT_ACTION_ORDER`. Valid values: `DEFAULT_ACTION_ORDER`, `STRICT_ORDER`. :param pulumi.Input[str] stream_exception_policy: Describes how to treat traffic which has broken midstream. Default value: `DROP`. Valid values: `DROP`, `CONTINUE`, `REJECT`. """ + FirewallPolicyFirewallPolicyStatefulEngineOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_order=rule_order, + stream_exception_policy=stream_exception_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_order: Optional[pulumi.Input[str]] = None, + stream_exception_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_order is None and 'ruleOrder' in kwargs: + rule_order = kwargs['ruleOrder'] + if stream_exception_policy is None and 'streamExceptionPolicy' in kwargs: + stream_exception_policy = kwargs['streamExceptionPolicy'] + if rule_order is not None: - pulumi.set(__self__, "rule_order", rule_order) + _setter("rule_order", rule_order) if stream_exception_policy is not None: - pulumi.set(__self__, "stream_exception_policy", stream_exception_policy) + _setter("stream_exception_policy", stream_exception_policy) @property @pulumi.getter(name="ruleOrder") @@ -501,11 +687,30 @@ def __init__(__self__, *, :param pulumi.Input['FirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverrideArgs'] override: Configuration block for override values :param pulumi.Input[int] priority: An integer setting that indicates the order in which to apply the stateful rule groups in a single policy. This argument must be specified if the policy has a `stateful_engine_options` block with a `rule_order` value of `STRICT_ORDER`. AWS Network Firewall applies each stateful rule group to a packet starting with the group that has the lowest priority setting. """ - pulumi.set(__self__, "resource_arn", resource_arn) + FirewallPolicyFirewallPolicyStatefulRuleGroupReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + override=override, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + override: Optional[pulumi.Input['FirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverrideArgs']] = None, + priority: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) if override is not None: - pulumi.set(__self__, "override", override) + _setter("override", override) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) @property @pulumi.getter(name="resourceArn") @@ -551,8 +756,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] action: The action that changes the rule group from DROP to ALERT . This only applies to managed rule groups. """ + FirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) @property @pulumi.getter @@ -576,8 +792,29 @@ def __init__(__self__, *, :param pulumi.Input['FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionArgs'] action_definition: A configuration block describing the custom action associated with the `action_name`. See Action Definition below for details. :param pulumi.Input[str] action_name: A friendly name of the custom action. """ - pulumi.set(__self__, "action_definition", action_definition) - pulumi.set(__self__, "action_name", action_name) + FirewallPolicyFirewallPolicyStatelessCustomActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_definition=action_definition, + action_name=action_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_definition: Optional[pulumi.Input['FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionArgs']] = None, + action_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_definition is None and 'actionDefinition' in kwargs: + action_definition = kwargs['actionDefinition'] + if action_definition is None: + raise TypeError("Missing 'action_definition' argument") + if action_name is None and 'actionName' in kwargs: + action_name = kwargs['actionName'] + if action_name is None: + raise TypeError("Missing 'action_name' argument") + + _setter("action_definition", action_definition) + _setter("action_name", action_name) @property @pulumi.getter(name="actionDefinition") @@ -611,7 +848,22 @@ def __init__(__self__, *, """ :param pulumi.Input['FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionArgs'] publish_metric_action: A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details. """ - pulumi.set(__self__, "publish_metric_action", publish_metric_action) + FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + publish_metric_action=publish_metric_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + publish_metric_action: Optional[pulumi.Input['FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if publish_metric_action is None and 'publishMetricAction' in kwargs: + publish_metric_action = kwargs['publishMetricAction'] + if publish_metric_action is None: + raise TypeError("Missing 'publish_metric_action' argument") + + _setter("publish_metric_action", publish_metric_action) @property @pulumi.getter(name="publishMetricAction") @@ -633,7 +885,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimensionArgs']]] dimensions: Set of configuration blocks describing dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for more details. """ - pulumi.set(__self__, "dimensions", dimensions) + FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimensionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + + _setter("dimensions", dimensions) @property @pulumi.getter @@ -655,7 +920,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] value: The string value to use in the custom metric dimension. """ - pulumi.set(__self__, "value", value) + FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) @property @pulumi.getter @@ -679,8 +957,27 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: An integer setting that indicates the order in which to run the stateless rule groups in a single policy. AWS Network Firewall applies each stateless rule group to a packet starting with the group that has the lowest priority setting. :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the stateless rule group. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "resource_arn", resource_arn) + FirewallPolicyFirewallPolicyStatelessRuleGroupReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("priority", priority) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -716,9 +1013,28 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_id: The unique identifier for the subnet. :param pulumi.Input[str] ip_address_type: The subnet's IP address type. Valida values: `"DUALSTACK"`, `"IPV4"`. """ - pulumi.set(__self__, "subnet_id", subnet_id) + FirewallSubnetMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + ip_address_type=ip_address_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + + _setter("subnet_id", subnet_id) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) @property @pulumi.getter(name="subnetId") @@ -752,7 +1068,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs']]] log_destination_configs: Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. """ - pulumi.set(__self__, "log_destination_configs", log_destination_configs) + LoggingConfigurationLoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination_configs=log_destination_configs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination_configs: Optional[pulumi.Input[Sequence[pulumi.Input['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination_configs is None and 'logDestinationConfigs' in kwargs: + log_destination_configs = kwargs['logDestinationConfigs'] + if log_destination_configs is None: + raise TypeError("Missing 'log_destination_configs' argument") + + _setter("log_destination_configs", log_destination_configs) @property @pulumi.getter(name="logDestinationConfigs") @@ -781,9 +1112,36 @@ def __init__(__self__, *, :param pulumi.Input[str] log_destination_type: The location to send logs to. Valid values: `S3`, `CloudWatchLogs`, `KinesisDataFirehose`. :param pulumi.Input[str] log_type: The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. """ - pulumi.set(__self__, "log_destination", log_destination) - pulumi.set(__self__, "log_destination_type", log_destination_type) - pulumi.set(__self__, "log_type", log_type) + LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination=log_destination, + log_destination_type=log_destination_type, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + log_destination_type: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if log_destination is None: + raise TypeError("Missing 'log_destination' argument") + if log_destination_type is None and 'logDestinationType' in kwargs: + log_destination_type = kwargs['logDestinationType'] + if log_destination_type is None: + raise TypeError("Missing 'log_destination_type' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("log_destination", log_destination) + _setter("log_destination_type", log_destination_type) + _setter("log_type", log_type) @property @pulumi.getter(name="logDestination") @@ -834,9 +1192,26 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are `CUSTOMER_KMS` and `AWS_OWNED_KMS_KEY`. :param pulumi.Input[str] key_id: The ID of the customer managed key. You can use any of the [key identifiers](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. """ - pulumi.set(__self__, "type", type) + RuleGroupEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("type", type) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) @property @pulumi.getter @@ -876,13 +1251,40 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleGroupRuleVariablesArgs'] rule_variables: A configuration block that defines additional settings available to use in the rules defined in the rule group. Can only be specified for **stateful** rule groups. See Rule Variables below for details. :param pulumi.Input['RuleGroupRuleGroupStatefulRuleOptionsArgs'] stateful_rule_options: A configuration block that defines stateful rule options for the rule group. See Stateful Rule Options below for details. """ - pulumi.set(__self__, "rules_source", rules_source) + RuleGroupRuleGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules_source=rules_source, + reference_sets=reference_sets, + rule_variables=rule_variables, + stateful_rule_options=stateful_rule_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules_source: Optional[pulumi.Input['RuleGroupRuleGroupRulesSourceArgs']] = None, + reference_sets: Optional[pulumi.Input['RuleGroupRuleGroupReferenceSetsArgs']] = None, + rule_variables: Optional[pulumi.Input['RuleGroupRuleGroupRuleVariablesArgs']] = None, + stateful_rule_options: Optional[pulumi.Input['RuleGroupRuleGroupStatefulRuleOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules_source is None and 'rulesSource' in kwargs: + rules_source = kwargs['rulesSource'] + if rules_source is None: + raise TypeError("Missing 'rules_source' argument") + if reference_sets is None and 'referenceSets' in kwargs: + reference_sets = kwargs['referenceSets'] + if rule_variables is None and 'ruleVariables' in kwargs: + rule_variables = kwargs['ruleVariables'] + if stateful_rule_options is None and 'statefulRuleOptions' in kwargs: + stateful_rule_options = kwargs['statefulRuleOptions'] + + _setter("rules_source", rules_source) if reference_sets is not None: - pulumi.set(__self__, "reference_sets", reference_sets) + _setter("reference_sets", reference_sets) if rule_variables is not None: - pulumi.set(__self__, "rule_variables", rule_variables) + _setter("rule_variables", rule_variables) if stateful_rule_options is not None: - pulumi.set(__self__, "stateful_rule_options", stateful_rule_options) + _setter("stateful_rule_options", stateful_rule_options) @property @pulumi.getter(name="rulesSource") @@ -937,8 +1339,21 @@ def stateful_rule_options(self, value: Optional[pulumi.Input['RuleGroupRuleGroup class RuleGroupRuleGroupReferenceSetsArgs: def __init__(__self__, *, ip_set_references: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs']]]] = None): + RuleGroupRuleGroupReferenceSetsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set_references=ip_set_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set_references: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set_references is None and 'ipSetReferences' in kwargs: + ip_set_references = kwargs['ipSetReferences'] + if ip_set_references is not None: - pulumi.set(__self__, "ip_set_references", ip_set_references) + _setter("ip_set_references", ip_set_references) @property @pulumi.getter(name="ipSetReferences") @@ -959,8 +1374,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs']]] ip_set_references: Set of configuration blocks that define the IP Reference information. See IP Set Reference below for details. :param pulumi.Input[str] key: A unique alphanumeric string to identify the `ip_set`. """ - pulumi.set(__self__, "ip_set_references", ip_set_references) - pulumi.set(__self__, "key", key) + RuleGroupRuleGroupReferenceSetsIpSetReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set_references=ip_set_references, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set_references: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs']]]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set_references is None and 'ipSetReferences' in kwargs: + ip_set_references = kwargs['ipSetReferences'] + if ip_set_references is None: + raise TypeError("Missing 'ip_set_references' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("ip_set_references", ip_set_references) + _setter("key", key) @property @pulumi.getter(name="ipSetReferences") @@ -994,7 +1428,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] reference_arn: Set of Managed Prefix IP ARN(s) """ - pulumi.set(__self__, "reference_arn", reference_arn) + RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + reference_arn=reference_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reference_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reference_arn is None and 'referenceArn' in kwargs: + reference_arn = kwargs['referenceArn'] + if reference_arn is None: + raise TypeError("Missing 'reference_arn' argument") + + _setter("reference_arn", reference_arn) @property @pulumi.getter(name="referenceArn") @@ -1018,10 +1467,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRuleVariablesIpSetArgs']]] ip_sets: Set of configuration blocks that define IP address information. See IP Sets below for details. :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRuleVariablesPortSetArgs']]] port_sets: Set of configuration blocks that define port range information. See Port Sets below for details. """ + RuleGroupRuleGroupRuleVariablesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_sets=ip_sets, + port_sets=port_sets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_sets: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRuleVariablesIpSetArgs']]]] = None, + port_sets: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRuleVariablesPortSetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_sets is None and 'ipSets' in kwargs: + ip_sets = kwargs['ipSets'] + if port_sets is None and 'portSets' in kwargs: + port_sets = kwargs['portSets'] + if ip_sets is not None: - pulumi.set(__self__, "ip_sets", ip_sets) + _setter("ip_sets", ip_sets) if port_sets is not None: - pulumi.set(__self__, "port_sets", port_sets) + _setter("port_sets", port_sets) @property @pulumi.getter(name="ipSets") @@ -1057,8 +1523,27 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs'] ip_set: A configuration block that defines a set of IP addresses. See IP Set below for details. :param pulumi.Input[str] key: A unique alphanumeric string to identify the `ip_set`. """ - pulumi.set(__self__, "ip_set", ip_set) - pulumi.set(__self__, "key", key) + RuleGroupRuleGroupRuleVariablesIpSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set=ip_set, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set: Optional[pulumi.Input['RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs']] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set is None and 'ipSet' in kwargs: + ip_set = kwargs['ipSet'] + if ip_set is None: + raise TypeError("Missing 'ip_set' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("ip_set", ip_set) + _setter("key", key) @property @pulumi.getter(name="ipSet") @@ -1092,7 +1577,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] definitions: Set of IP addresses and address ranges, in CIDR notation. """ - pulumi.set(__self__, "definitions", definitions) + RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + definitions=definitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definitions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definitions is None: + raise TypeError("Missing 'definitions' argument") + + _setter("definitions", definitions) @property @pulumi.getter @@ -1116,8 +1614,27 @@ def __init__(__self__, *, :param pulumi.Input[str] key: An unique alphanumeric string to identify the `port_set`. :param pulumi.Input['RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs'] port_set: A configuration block that defines a set of port ranges. See Port Set below for details. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "port_set", port_set) + RuleGroupRuleGroupRuleVariablesPortSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + port_set=port_set, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + port_set: Optional[pulumi.Input['RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if port_set is None and 'portSet' in kwargs: + port_set = kwargs['portSet'] + if port_set is None: + raise TypeError("Missing 'port_set' argument") + + _setter("key", key) + _setter("port_set", port_set) @property @pulumi.getter @@ -1151,7 +1668,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] definitions: Set of port ranges. """ - pulumi.set(__self__, "definitions", definitions) + RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + definitions=definitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definitions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definitions is None: + raise TypeError("Missing 'definitions' argument") + + _setter("definitions", definitions) @property @pulumi.getter @@ -1179,14 +1709,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatefulRuleArgs']]] stateful_rules: Set of configuration blocks containing **stateful** inspection criteria for 5-tuple rules to be used together in a rule group. See Stateful Rule below for details. :param pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs'] stateless_rules_and_custom_actions: A configuration block containing **stateless** inspection criteria for a stateless rule group. See Stateless Rules and Custom Actions below for details. """ + RuleGroupRuleGroupRulesSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules_source_list=rules_source_list, + rules_string=rules_string, + stateful_rules=stateful_rules, + stateless_rules_and_custom_actions=stateless_rules_and_custom_actions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules_source_list: Optional[pulumi.Input['RuleGroupRuleGroupRulesSourceRulesSourceListArgs']] = None, + rules_string: Optional[pulumi.Input[str]] = None, + stateful_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatefulRuleArgs']]]] = None, + stateless_rules_and_custom_actions: Optional[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules_source_list is None and 'rulesSourceList' in kwargs: + rules_source_list = kwargs['rulesSourceList'] + if rules_string is None and 'rulesString' in kwargs: + rules_string = kwargs['rulesString'] + if stateful_rules is None and 'statefulRules' in kwargs: + stateful_rules = kwargs['statefulRules'] + if stateless_rules_and_custom_actions is None and 'statelessRulesAndCustomActions' in kwargs: + stateless_rules_and_custom_actions = kwargs['statelessRulesAndCustomActions'] + if rules_source_list is not None: - pulumi.set(__self__, "rules_source_list", rules_source_list) + _setter("rules_source_list", rules_source_list) if rules_string is not None: - pulumi.set(__self__, "rules_string", rules_string) + _setter("rules_string", rules_string) if stateful_rules is not None: - pulumi.set(__self__, "stateful_rules", stateful_rules) + _setter("stateful_rules", stateful_rules) if stateless_rules_and_custom_actions is not None: - pulumi.set(__self__, "stateless_rules_and_custom_actions", stateless_rules_and_custom_actions) + _setter("stateless_rules_and_custom_actions", stateless_rules_and_custom_actions) @property @pulumi.getter(name="rulesSourceList") @@ -1248,9 +1803,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] target_types: Set of types of domain specifications that are provided in the `targets` argument. Valid values: `HTTP_HOST`, `TLS_SNI`. :param pulumi.Input[Sequence[pulumi.Input[str]]] targets: Set of domains that you want to inspect for in your traffic flows. """ - pulumi.set(__self__, "generated_rules_type", generated_rules_type) - pulumi.set(__self__, "target_types", target_types) - pulumi.set(__self__, "targets", targets) + RuleGroupRuleGroupRulesSourceRulesSourceListArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + generated_rules_type=generated_rules_type, + target_types=target_types, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + generated_rules_type: Optional[pulumi.Input[str]] = None, + target_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if generated_rules_type is None and 'generatedRulesType' in kwargs: + generated_rules_type = kwargs['generatedRulesType'] + if generated_rules_type is None: + raise TypeError("Missing 'generated_rules_type' argument") + if target_types is None and 'targetTypes' in kwargs: + target_types = kwargs['targetTypes'] + if target_types is None: + raise TypeError("Missing 'target_types' argument") + if targets is None: + raise TypeError("Missing 'targets' argument") + + _setter("generated_rules_type", generated_rules_type) + _setter("target_types", target_types) + _setter("targets", targets) @property @pulumi.getter(name="generatedRulesType") @@ -1300,9 +1880,32 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs'] header: A configuration block containing the stateful 5-tuple inspection criteria for the rule, used to inspect traffic flows. See Header below for details. :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs']]] rule_options: Set of configuration blocks containing additional settings for a stateful rule. See Rule Option below for details. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "header", header) - pulumi.set(__self__, "rule_options", rule_options) + RuleGroupRuleGroupRulesSourceStatefulRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + header=header, + rule_options=rule_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + header: Optional[pulumi.Input['RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs']] = None, + rule_options: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if header is None: + raise TypeError("Missing 'header' argument") + if rule_options is None and 'ruleOptions' in kwargs: + rule_options = kwargs['ruleOptions'] + if rule_options is None: + raise TypeError("Missing 'rule_options' argument") + + _setter("action", action) + _setter("header", header) + _setter("rule_options", rule_options) @property @pulumi.getter @@ -1358,12 +1961,49 @@ def __init__(__self__, *, :param pulumi.Input[str] source: The source IP address or address range for, in CIDR notation. To match with any address, specify `ANY`. :param pulumi.Input[str] source_port: The source port to inspect for. To match with any address, specify `ANY`. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_port", destination_port) - pulumi.set(__self__, "direction", direction) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "source_port", source_port) + RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_port=destination_port, + direction=direction, + protocol=protocol, + source=source, + source_port=source_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input[str]] = None, + destination_port: Optional[pulumi.Input[str]] = None, + direction: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + source_port: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_port is None and 'destinationPort' in kwargs: + destination_port = kwargs['destinationPort'] + if destination_port is None: + raise TypeError("Missing 'destination_port' argument") + if direction is None: + raise TypeError("Missing 'direction' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if source_port is None and 'sourcePort' in kwargs: + source_port = kwargs['sourcePort'] + if source_port is None: + raise TypeError("Missing 'source_port' argument") + + _setter("destination", destination) + _setter("destination_port", destination_port) + _setter("direction", direction) + _setter("protocol", protocol) + _setter("source", source) + _setter("source_port", source_port) @property @pulumi.getter @@ -1448,9 +2088,24 @@ def __init__(__self__, *, See [Snort General Rule Options](http://manual-snort-org.s3-website-us-east-1.amazonaws.com/node31.html) or [Suricata Rule Options](https://suricata.readthedocs.io/en/suricata-5.0.1/rules/intro.html#rule-options) for more details. :param pulumi.Input[Sequence[pulumi.Input[str]]] settings: Set of strings for additional settings to use in stateful rule inspection. """ - pulumi.set(__self__, "keyword", keyword) + RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + keyword=keyword, + settings=settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + keyword: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if keyword is None: + raise TypeError("Missing 'keyword' argument") + + _setter("keyword", keyword) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) @property @pulumi.getter @@ -1487,9 +2142,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs']]] stateless_rules: Set of configuration blocks containing the stateless rules for use in the stateless rule group. See Stateless Rule below for details. :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs']]] custom_actions: Set of configuration blocks containing custom action definitions that are available for use by the set of `stateless rule`. See Custom Action below for details. """ - pulumi.set(__self__, "stateless_rules", stateless_rules) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stateless_rules=stateless_rules, + custom_actions=custom_actions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stateless_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs']]]] = None, + custom_actions: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stateless_rules is None and 'statelessRules' in kwargs: + stateless_rules = kwargs['statelessRules'] + if stateless_rules is None: + raise TypeError("Missing 'stateless_rules' argument") + if custom_actions is None and 'customActions' in kwargs: + custom_actions = kwargs['customActions'] + + _setter("stateless_rules", stateless_rules) if custom_actions is not None: - pulumi.set(__self__, "custom_actions", custom_actions) + _setter("custom_actions", custom_actions) @property @pulumi.getter(name="statelessRules") @@ -1525,8 +2199,29 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs'] action_definition: A configuration block describing the custom action associated with the `action_name`. See Action Definition below for details. :param pulumi.Input[str] action_name: A friendly name of the custom action. """ - pulumi.set(__self__, "action_definition", action_definition) - pulumi.set(__self__, "action_name", action_name) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_definition=action_definition, + action_name=action_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_definition: Optional[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs']] = None, + action_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_definition is None and 'actionDefinition' in kwargs: + action_definition = kwargs['actionDefinition'] + if action_definition is None: + raise TypeError("Missing 'action_definition' argument") + if action_name is None and 'actionName' in kwargs: + action_name = kwargs['actionName'] + if action_name is None: + raise TypeError("Missing 'action_name' argument") + + _setter("action_definition", action_definition) + _setter("action_name", action_name) @property @pulumi.getter(name="actionDefinition") @@ -1560,7 +2255,22 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs'] publish_metric_action: A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details. """ - pulumi.set(__self__, "publish_metric_action", publish_metric_action) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + publish_metric_action=publish_metric_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + publish_metric_action: Optional[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if publish_metric_action is None and 'publishMetricAction' in kwargs: + publish_metric_action = kwargs['publishMetricAction'] + if publish_metric_action is None: + raise TypeError("Missing 'publish_metric_action' argument") + + _setter("publish_metric_action", publish_metric_action) @property @pulumi.getter(name="publishMetricAction") @@ -1582,7 +2292,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs']]] dimensions: Set of configuration blocks containing the dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for details. """ - pulumi.set(__self__, "dimensions", dimensions) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + + _setter("dimensions", dimensions) @property @pulumi.getter @@ -1604,7 +2327,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] value: The value to use in the custom metric dimension. """ - pulumi.set(__self__, "value", value) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) @property @pulumi.getter @@ -1628,8 +2364,27 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: A setting that indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. AWS Network Firewall evaluates the rules in a rule group starting with the lowest priority setting. :param pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs'] rule_definition: A configuration block defining the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria. See Rule Definition below for details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_definition", rule_definition) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + rule_definition=rule_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + rule_definition: Optional[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_definition is None and 'ruleDefinition' in kwargs: + rule_definition = kwargs['ruleDefinition'] + if rule_definition is None: + raise TypeError("Missing 'rule_definition' argument") + + _setter("priority", priority) + _setter("rule_definition", rule_definition) @property @pulumi.getter @@ -1665,8 +2420,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] actions: Set of actions to take on a packet that matches one of the stateless rule definition's `match_attributes`. For every rule you must specify 1 standard action, and you can add custom actions. Standard actions include: `aws:pass`, `aws:drop`, `aws:forward_to_sfe`. :param pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs'] match_attributes: A configuration block containing criteria for AWS Network Firewall to use to inspect an individual packet in stateless rule inspection. See Match Attributes below for details. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "match_attributes", match_attributes) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + match_attributes=match_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + match_attributes: Optional[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if match_attributes is None and 'matchAttributes' in kwargs: + match_attributes = kwargs['matchAttributes'] + if match_attributes is None: + raise TypeError("Missing 'match_attributes' argument") + + _setter("actions", actions) + _setter("match_attributes", match_attributes) @property @pulumi.getter @@ -1710,18 +2484,45 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs']]] sources: Set of configuration blocks describing the source IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address. See Source below for details. :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs']]] tcp_flags: Set of configuration blocks containing the TCP flags and masks to inspect for. If not specified, this matches with any settings. """ + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ports=destination_ports, + destinations=destinations, + protocols=protocols, + source_ports=source_ports, + sources=sources, + tcp_flags=tcp_flags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ports: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArgs']]]] = None, + destinations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArgs']]]] = None, + protocols: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + source_ports: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArgs']]]] = None, + sources: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs']]]] = None, + tcp_flags: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ports is None and 'destinationPorts' in kwargs: + destination_ports = kwargs['destinationPorts'] + if source_ports is None and 'sourcePorts' in kwargs: + source_ports = kwargs['sourcePorts'] + if tcp_flags is None and 'tcpFlags' in kwargs: + tcp_flags = kwargs['tcpFlags'] + if destination_ports is not None: - pulumi.set(__self__, "destination_ports", destination_ports) + _setter("destination_ports", destination_ports) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if protocols is not None: - pulumi.set(__self__, "protocols", protocols) + _setter("protocols", protocols) if source_ports is not None: - pulumi.set(__self__, "source_ports", source_ports) + _setter("source_ports", source_ports) if sources is not None: - pulumi.set(__self__, "sources", sources) + _setter("sources", sources) if tcp_flags is not None: - pulumi.set(__self__, "tcp_flags", tcp_flags) + _setter("tcp_flags", tcp_flags) @property @pulumi.getter(name="destinationPorts") @@ -1803,7 +2604,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] address_definition: An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4. """ - pulumi.set(__self__, "address_definition", address_definition) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_definition=address_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_definition: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_definition is None and 'addressDefinition' in kwargs: + address_definition = kwargs['addressDefinition'] + if address_definition is None: + raise TypeError("Missing 'address_definition' argument") + + _setter("address_definition", address_definition) @property @pulumi.getter(name="addressDefinition") @@ -1827,9 +2643,28 @@ def __init__(__self__, *, :param pulumi.Input[int] from_port: The lower limit of the port range. This must be less than or equal to the `to_port`. :param pulumi.Input[int] to_port: The upper limit of the port range. This must be greater than or equal to the `from_port`. """ - pulumi.set(__self__, "from_port", from_port) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPortArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -1863,7 +2698,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] address_definition: An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4. """ - pulumi.set(__self__, "address_definition", address_definition) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_definition=address_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_definition: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_definition is None and 'addressDefinition' in kwargs: + address_definition = kwargs['addressDefinition'] + if address_definition is None: + raise TypeError("Missing 'address_definition' argument") + + _setter("address_definition", address_definition) @property @pulumi.getter(name="addressDefinition") @@ -1887,9 +2737,28 @@ def __init__(__self__, *, :param pulumi.Input[int] from_port: The lower limit of the port range. This must be less than or equal to the `to_port`. :param pulumi.Input[int] to_port: The upper limit of the port range. This must be greater than or equal to the `from_port`. """ - pulumi.set(__self__, "from_port", from_port) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePortArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[pulumi.Input[int]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -1927,9 +2796,24 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] masks: Set of flags to consider in the inspection. To inspect all flags, leave this empty. Valid values: `FIN`, `SYN`, `RST`, `PSH`, `ACK`, `URG`, `ECE`, `CWR`. """ - pulumi.set(__self__, "flags", flags) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + flags=flags, + masks=masks, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + masks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flags is None: + raise TypeError("Missing 'flags' argument") + + _setter("flags", flags) if masks is not None: - pulumi.set(__self__, "masks", masks) + _setter("masks", masks) @property @pulumi.getter @@ -1965,7 +2849,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] rule_order: Indicates how to manage the order of the rule evaluation for the rule group. Default value: `DEFAULT_ACTION_ORDER`. Valid values: `DEFAULT_ACTION_ORDER`, `STRICT_ORDER`. """ - pulumi.set(__self__, "rule_order", rule_order) + RuleGroupRuleGroupStatefulRuleOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_order=rule_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_order: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_order is None and 'ruleOrder' in kwargs: + rule_order = kwargs['ruleOrder'] + if rule_order is None: + raise TypeError("Missing 'rule_order' argument") + + _setter("rule_order", rule_order) @property @pulumi.getter(name="ruleOrder") diff --git a/sdk/python/pulumi_aws/networkfirewall/firewall.py b/sdk/python/pulumi_aws/networkfirewall/firewall.py index 61bcf8f0624..3550af16a0e 100644 --- a/sdk/python/pulumi_aws/networkfirewall/firewall.py +++ b/sdk/python/pulumi_aws/networkfirewall/firewall.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,23 +39,72 @@ def __init__(__self__, *, :param pulumi.Input[bool] subnet_change_protection: A boolean flag indicating whether it is possible to change the associated subnet(s). Defaults to `false`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "firewall_policy_arn", firewall_policy_arn) - pulumi.set(__self__, "subnet_mappings", subnet_mappings) - pulumi.set(__self__, "vpc_id", vpc_id) + FirewallArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_policy_arn=firewall_policy_arn, + subnet_mappings=subnet_mappings, + vpc_id=vpc_id, + delete_protection=delete_protection, + description=description, + encryption_configuration=encryption_configuration, + firewall_policy_change_protection=firewall_policy_change_protection, + name=name, + subnet_change_protection=subnet_change_protection, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_policy_arn: Optional[pulumi.Input[str]] = None, + subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallSubnetMappingArgs']]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + delete_protection: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['FirewallEncryptionConfigurationArgs']] = None, + firewall_policy_change_protection: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + subnet_change_protection: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_policy_arn is None and 'firewallPolicyArn' in kwargs: + firewall_policy_arn = kwargs['firewallPolicyArn'] + if firewall_policy_arn is None: + raise TypeError("Missing 'firewall_policy_arn' argument") + if subnet_mappings is None and 'subnetMappings' in kwargs: + subnet_mappings = kwargs['subnetMappings'] + if subnet_mappings is None: + raise TypeError("Missing 'subnet_mappings' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if delete_protection is None and 'deleteProtection' in kwargs: + delete_protection = kwargs['deleteProtection'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if firewall_policy_change_protection is None and 'firewallPolicyChangeProtection' in kwargs: + firewall_policy_change_protection = kwargs['firewallPolicyChangeProtection'] + if subnet_change_protection is None and 'subnetChangeProtection' in kwargs: + subnet_change_protection = kwargs['subnetChangeProtection'] + + _setter("firewall_policy_arn", firewall_policy_arn) + _setter("subnet_mappings", subnet_mappings) + _setter("vpc_id", vpc_id) if delete_protection is not None: - pulumi.set(__self__, "delete_protection", delete_protection) + _setter("delete_protection", delete_protection) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if firewall_policy_change_protection is not None: - pulumi.set(__self__, "firewall_policy_change_protection", firewall_policy_change_protection) + _setter("firewall_policy_change_protection", firewall_policy_change_protection) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subnet_change_protection is not None: - pulumi.set(__self__, "subnet_change_protection", subnet_change_protection) + _setter("subnet_change_protection", subnet_change_protection) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="firewallPolicyArn") @@ -212,37 +261,94 @@ def __init__(__self__, *, :param pulumi.Input[str] update_token: A string token used when updating a firewall. :param pulumi.Input[str] vpc_id: The unique identifier of the VPC where AWS Network Firewall should create the firewall. """ + _FirewallState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + delete_protection=delete_protection, + description=description, + encryption_configuration=encryption_configuration, + firewall_policy_arn=firewall_policy_arn, + firewall_policy_change_protection=firewall_policy_change_protection, + firewall_statuses=firewall_statuses, + name=name, + subnet_change_protection=subnet_change_protection, + subnet_mappings=subnet_mappings, + tags=tags, + tags_all=tags_all, + update_token=update_token, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + delete_protection: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['FirewallEncryptionConfigurationArgs']] = None, + firewall_policy_arn: Optional[pulumi.Input[str]] = None, + firewall_policy_change_protection: Optional[pulumi.Input[bool]] = None, + firewall_statuses: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallFirewallStatusArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + subnet_change_protection: Optional[pulumi.Input[bool]] = None, + subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallSubnetMappingArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_token: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_protection is None and 'deleteProtection' in kwargs: + delete_protection = kwargs['deleteProtection'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if firewall_policy_arn is None and 'firewallPolicyArn' in kwargs: + firewall_policy_arn = kwargs['firewallPolicyArn'] + if firewall_policy_change_protection is None and 'firewallPolicyChangeProtection' in kwargs: + firewall_policy_change_protection = kwargs['firewallPolicyChangeProtection'] + if firewall_statuses is None and 'firewallStatuses' in kwargs: + firewall_statuses = kwargs['firewallStatuses'] + if subnet_change_protection is None and 'subnetChangeProtection' in kwargs: + subnet_change_protection = kwargs['subnetChangeProtection'] + if subnet_mappings is None and 'subnetMappings' in kwargs: + subnet_mappings = kwargs['subnetMappings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_token is None and 'updateToken' in kwargs: + update_token = kwargs['updateToken'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if delete_protection is not None: - pulumi.set(__self__, "delete_protection", delete_protection) + _setter("delete_protection", delete_protection) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if firewall_policy_arn is not None: - pulumi.set(__self__, "firewall_policy_arn", firewall_policy_arn) + _setter("firewall_policy_arn", firewall_policy_arn) if firewall_policy_change_protection is not None: - pulumi.set(__self__, "firewall_policy_change_protection", firewall_policy_change_protection) + _setter("firewall_policy_change_protection", firewall_policy_change_protection) if firewall_statuses is not None: - pulumi.set(__self__, "firewall_statuses", firewall_statuses) + _setter("firewall_statuses", firewall_statuses) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subnet_change_protection is not None: - pulumi.set(__self__, "subnet_change_protection", subnet_change_protection) + _setter("subnet_change_protection", subnet_change_protection) if subnet_mappings is not None: - pulumi.set(__self__, "subnet_mappings", subnet_mappings) + _setter("subnet_mappings", subnet_mappings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if update_token is not None: - pulumi.set(__self__, "update_token", update_token) + _setter("update_token", update_token) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -519,6 +625,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FirewallArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -545,6 +655,7 @@ def _internal_init(__self__, __props__.__dict__["delete_protection"] = delete_protection __props__.__dict__["description"] = description + encryption_configuration = _utilities.configure(encryption_configuration, FirewallEncryptionConfigurationArgs, True) __props__.__dict__["encryption_configuration"] = encryption_configuration if firewall_policy_arn is None and not opts.urn: raise TypeError("Missing required property 'firewall_policy_arn'") diff --git a/sdk/python/pulumi_aws/networkfirewall/firewall_policy.py b/sdk/python/pulumi_aws/networkfirewall/firewall_policy.py index 0e57095f592..0fa44e6f7d2 100644 --- a/sdk/python/pulumi_aws/networkfirewall/firewall_policy.py +++ b/sdk/python/pulumi_aws/networkfirewall/firewall_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,40 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A friendly name of the firewall policy. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "firewall_policy", firewall_policy) + FirewallPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_policy=firewall_policy, + description=description, + encryption_configuration=encryption_configuration, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_policy: Optional[pulumi.Input['FirewallPolicyFirewallPolicyArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['FirewallPolicyEncryptionConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_policy is None and 'firewallPolicy' in kwargs: + firewall_policy = kwargs['firewallPolicy'] + if firewall_policy is None: + raise TypeError("Missing 'firewall_policy' argument") + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + + _setter("firewall_policy", firewall_policy) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="firewallPolicy") @@ -122,25 +147,58 @@ def __init__(__self__, *, :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] update_token: A string token used when updating a firewall policy. """ + _FirewallPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + encryption_configuration=encryption_configuration, + firewall_policy=firewall_policy, + name=name, + tags=tags, + tags_all=tags_all, + update_token=update_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['FirewallPolicyEncryptionConfigurationArgs']] = None, + firewall_policy: Optional[pulumi.Input['FirewallPolicyFirewallPolicyArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + update_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if firewall_policy is None and 'firewallPolicy' in kwargs: + firewall_policy = kwargs['firewallPolicy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_token is None and 'updateToken' in kwargs: + update_token = kwargs['updateToken'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if firewall_policy is not None: - pulumi.set(__self__, "firewall_policy", firewall_policy) + _setter("firewall_policy", firewall_policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if update_token is not None: - pulumi.set(__self__, "update_token", update_token) + _setter("update_token", update_token) @property @pulumi.getter @@ -403,6 +461,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FirewallPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -423,7 +485,9 @@ def _internal_init(__self__, __props__ = FirewallPolicyArgs.__new__(FirewallPolicyArgs) __props__.__dict__["description"] = description + encryption_configuration = _utilities.configure(encryption_configuration, FirewallPolicyEncryptionConfigurationArgs, True) __props__.__dict__["encryption_configuration"] = encryption_configuration + firewall_policy = _utilities.configure(firewall_policy, FirewallPolicyFirewallPolicyArgs, True) if firewall_policy is None and not opts.urn: raise TypeError("Missing required property 'firewall_policy'") __props__.__dict__["firewall_policy"] = firewall_policy diff --git a/sdk/python/pulumi_aws/networkfirewall/get_firewall.py b/sdk/python/pulumi_aws/networkfirewall/get_firewall.py index 67004d8b39b..7849eab26d3 100644 --- a/sdk/python/pulumi_aws/networkfirewall/get_firewall.py +++ b/sdk/python/pulumi_aws/networkfirewall/get_firewall.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/networkfirewall/get_firewall_policy.py b/sdk/python/pulumi_aws/networkfirewall/get_firewall_policy.py index dbe4b588102..68b8574650f 100644 --- a/sdk/python/pulumi_aws/networkfirewall/get_firewall_policy.py +++ b/sdk/python/pulumi_aws/networkfirewall/get_firewall_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/networkfirewall/get_resource_policy.py b/sdk/python/pulumi_aws/networkfirewall/get_resource_policy.py index e43bead6545..fbfb0b82d1d 100644 --- a/sdk/python/pulumi_aws/networkfirewall/get_resource_policy.py +++ b/sdk/python/pulumi_aws/networkfirewall/get_resource_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/networkfirewall/logging_configuration.py b/sdk/python/pulumi_aws/networkfirewall/logging_configuration.py index d5a9ca0bb4b..265d117a62f 100644 --- a/sdk/python/pulumi_aws/networkfirewall/logging_configuration.py +++ b/sdk/python/pulumi_aws/networkfirewall/logging_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] firewall_arn: The Amazon Resource Name (ARN) of the Network Firewall firewall. :param pulumi.Input['LoggingConfigurationLoggingConfigurationArgs'] logging_configuration: A configuration block describing how AWS Network Firewall performs logging for a firewall. See Logging Configuration below for details. """ - pulumi.set(__self__, "firewall_arn", firewall_arn) - pulumi.set(__self__, "logging_configuration", logging_configuration) + LoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_arn=firewall_arn, + logging_configuration=logging_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_arn: Optional[pulumi.Input[str]] = None, + logging_configuration: Optional[pulumi.Input['LoggingConfigurationLoggingConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_arn is None and 'firewallArn' in kwargs: + firewall_arn = kwargs['firewallArn'] + if firewall_arn is None: + raise TypeError("Missing 'firewall_arn' argument") + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if logging_configuration is None: + raise TypeError("Missing 'logging_configuration' argument") + + _setter("firewall_arn", firewall_arn) + _setter("logging_configuration", logging_configuration) @property @pulumi.getter(name="firewallArn") @@ -61,10 +82,27 @@ def __init__(__self__, *, :param pulumi.Input[str] firewall_arn: The Amazon Resource Name (ARN) of the Network Firewall firewall. :param pulumi.Input['LoggingConfigurationLoggingConfigurationArgs'] logging_configuration: A configuration block describing how AWS Network Firewall performs logging for a firewall. See Logging Configuration below for details. """ + _LoggingConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_arn=firewall_arn, + logging_configuration=logging_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_arn: Optional[pulumi.Input[str]] = None, + logging_configuration: Optional[pulumi.Input['LoggingConfigurationLoggingConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_arn is None and 'firewallArn' in kwargs: + firewall_arn = kwargs['firewallArn'] + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if firewall_arn is not None: - pulumi.set(__self__, "firewall_arn", firewall_arn) + _setter("firewall_arn", firewall_arn) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) @property @pulumi.getter(name="firewallArn") @@ -256,6 +294,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LoggingConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -275,6 +317,7 @@ def _internal_init(__self__, if firewall_arn is None and not opts.urn: raise TypeError("Missing required property 'firewall_arn'") __props__.__dict__["firewall_arn"] = firewall_arn + logging_configuration = _utilities.configure(logging_configuration, LoggingConfigurationLoggingConfigurationArgs, True) if logging_configuration is None and not opts.urn: raise TypeError("Missing required property 'logging_configuration'") __props__.__dict__["logging_configuration"] = logging_configuration diff --git a/sdk/python/pulumi_aws/networkfirewall/outputs.py b/sdk/python/pulumi_aws/networkfirewall/outputs.py index 51830ff7fc1..3a3bbdb49fb 100644 --- a/sdk/python/pulumi_aws/networkfirewall/outputs.py +++ b/sdk/python/pulumi_aws/networkfirewall/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -105,9 +105,26 @@ def __init__(__self__, *, :param str type: The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are `CUSTOMER_KMS` and `AWS_OWNED_KMS_KEY`. :param str key_id: The ID of the customer managed key. You can use any of the [key identifiers](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. """ - pulumi.set(__self__, "type", type) + FirewallEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("type", type) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) @property @pulumi.getter @@ -150,8 +167,21 @@ def __init__(__self__, *, """ :param Sequence['FirewallFirewallStatusSyncStateArgs'] sync_states: Set of subnets configured for use by the firewall. """ + FirewallFirewallStatus._configure( + lambda key, value: pulumi.set(__self__, key, value), + sync_states=sync_states, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sync_states: Optional[Sequence['outputs.FirewallFirewallStatusSyncState']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sync_states is None and 'syncStates' in kwargs: + sync_states = kwargs['syncStates'] + if sync_states is not None: - pulumi.set(__self__, "sync_states", sync_states) + _setter("sync_states", sync_states) @property @pulumi.getter(name="syncStates") @@ -188,10 +218,25 @@ def __init__(__self__, *, :param Sequence['FirewallFirewallStatusSyncStateAttachmentArgs'] attachments: Nested list describing the attachment status of the firewall's association with a single VPC subnet. :param str availability_zone: The Availability Zone where the subnet is configured. """ + FirewallFirewallStatusSyncState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachments=attachments, + availability_zone=availability_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachments: Optional[Sequence['outputs.FirewallFirewallStatusSyncStateAttachment']] = None, + availability_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if attachments is not None: - pulumi.set(__self__, "attachments", attachments) + _setter("attachments", attachments) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) @property @pulumi.getter @@ -238,10 +283,27 @@ def __init__(__self__, *, :param str endpoint_id: The identifier of the firewall endpoint that AWS Network Firewall has instantiated in the subnet. You use this to identify the firewall endpoint in the VPC route tables, when you redirect the VPC traffic through the endpoint. :param str subnet_id: The unique identifier for the subnet. """ + FirewallFirewallStatusSyncStateAttachment._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_id=endpoint_id, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_id: Optional[str] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="endpointId") @@ -286,9 +348,26 @@ def __init__(__self__, *, :param str type: The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are `CUSTOMER_KMS` and `AWS_OWNED_KMS_KEY`. :param str key_id: The ID of the customer managed key. You can use any of the [key identifiers](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. """ - pulumi.set(__self__, "type", type) + FirewallPolicyEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("type", type) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) @property @pulumi.getter @@ -361,20 +440,65 @@ def __init__(__self__, *, :param Sequence['FirewallPolicyFirewallPolicyStatelessCustomActionArgs'] stateless_custom_actions: Set of configuration blocks describing the custom action definitions that are available for use in the firewall policy's `stateless_default_actions`. See Stateless Custom Action below for details. :param Sequence['FirewallPolicyFirewallPolicyStatelessRuleGroupReferenceArgs'] stateless_rule_group_references: Set of configuration blocks containing references to the stateless rule groups that are used in the policy. See Stateless Rule Group Reference below for details. """ - pulumi.set(__self__, "stateless_default_actions", stateless_default_actions) - pulumi.set(__self__, "stateless_fragment_default_actions", stateless_fragment_default_actions) + FirewallPolicyFirewallPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + stateless_default_actions=stateless_default_actions, + stateless_fragment_default_actions=stateless_fragment_default_actions, + policy_variables=policy_variables, + stateful_default_actions=stateful_default_actions, + stateful_engine_options=stateful_engine_options, + stateful_rule_group_references=stateful_rule_group_references, + stateless_custom_actions=stateless_custom_actions, + stateless_rule_group_references=stateless_rule_group_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stateless_default_actions: Optional[Sequence[str]] = None, + stateless_fragment_default_actions: Optional[Sequence[str]] = None, + policy_variables: Optional['outputs.FirewallPolicyFirewallPolicyPolicyVariables'] = None, + stateful_default_actions: Optional[Sequence[str]] = None, + stateful_engine_options: Optional['outputs.FirewallPolicyFirewallPolicyStatefulEngineOptions'] = None, + stateful_rule_group_references: Optional[Sequence['outputs.FirewallPolicyFirewallPolicyStatefulRuleGroupReference']] = None, + stateless_custom_actions: Optional[Sequence['outputs.FirewallPolicyFirewallPolicyStatelessCustomAction']] = None, + stateless_rule_group_references: Optional[Sequence['outputs.FirewallPolicyFirewallPolicyStatelessRuleGroupReference']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stateless_default_actions is None and 'statelessDefaultActions' in kwargs: + stateless_default_actions = kwargs['statelessDefaultActions'] + if stateless_default_actions is None: + raise TypeError("Missing 'stateless_default_actions' argument") + if stateless_fragment_default_actions is None and 'statelessFragmentDefaultActions' in kwargs: + stateless_fragment_default_actions = kwargs['statelessFragmentDefaultActions'] + if stateless_fragment_default_actions is None: + raise TypeError("Missing 'stateless_fragment_default_actions' argument") + if policy_variables is None and 'policyVariables' in kwargs: + policy_variables = kwargs['policyVariables'] + if stateful_default_actions is None and 'statefulDefaultActions' in kwargs: + stateful_default_actions = kwargs['statefulDefaultActions'] + if stateful_engine_options is None and 'statefulEngineOptions' in kwargs: + stateful_engine_options = kwargs['statefulEngineOptions'] + if stateful_rule_group_references is None and 'statefulRuleGroupReferences' in kwargs: + stateful_rule_group_references = kwargs['statefulRuleGroupReferences'] + if stateless_custom_actions is None and 'statelessCustomActions' in kwargs: + stateless_custom_actions = kwargs['statelessCustomActions'] + if stateless_rule_group_references is None and 'statelessRuleGroupReferences' in kwargs: + stateless_rule_group_references = kwargs['statelessRuleGroupReferences'] + + _setter("stateless_default_actions", stateless_default_actions) + _setter("stateless_fragment_default_actions", stateless_fragment_default_actions) if policy_variables is not None: - pulumi.set(__self__, "policy_variables", policy_variables) + _setter("policy_variables", policy_variables) if stateful_default_actions is not None: - pulumi.set(__self__, "stateful_default_actions", stateful_default_actions) + _setter("stateful_default_actions", stateful_default_actions) if stateful_engine_options is not None: - pulumi.set(__self__, "stateful_engine_options", stateful_engine_options) + _setter("stateful_engine_options", stateful_engine_options) if stateful_rule_group_references is not None: - pulumi.set(__self__, "stateful_rule_group_references", stateful_rule_group_references) + _setter("stateful_rule_group_references", stateful_rule_group_references) if stateless_custom_actions is not None: - pulumi.set(__self__, "stateless_custom_actions", stateless_custom_actions) + _setter("stateless_custom_actions", stateless_custom_actions) if stateless_rule_group_references is not None: - pulumi.set(__self__, "stateless_rule_group_references", stateless_rule_group_references) + _setter("stateless_rule_group_references", stateless_rule_group_references) @property @pulumi.getter(name="statelessDefaultActions") @@ -464,8 +588,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, rule_variables: Optional[Sequence['outputs.FirewallPolicyFirewallPolicyPolicyVariablesRuleVariable']] = None): + FirewallPolicyFirewallPolicyPolicyVariables._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_variables=rule_variables, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_variables: Optional[Sequence['outputs.FirewallPolicyFirewallPolicyPolicyVariablesRuleVariable']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_variables is None and 'ruleVariables' in kwargs: + rule_variables = kwargs['ruleVariables'] + if rule_variables is not None: - pulumi.set(__self__, "rule_variables", rule_variables) + _setter("rule_variables", rule_variables) @property @pulumi.getter(name="ruleVariables") @@ -499,8 +636,27 @@ def __init__(__self__, *, :param 'FirewallPolicyFirewallPolicyPolicyVariablesRuleVariableIpSetArgs' ip_set: A configuration block that defines a set of IP addresses. See IP Set below for details. :param str key: An alphanumeric string to identify the `ip_set`. Valid values: `HOME_NET` """ - pulumi.set(__self__, "ip_set", ip_set) - pulumi.set(__self__, "key", key) + FirewallPolicyFirewallPolicyPolicyVariablesRuleVariable._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set=ip_set, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set: Optional['outputs.FirewallPolicyFirewallPolicyPolicyVariablesRuleVariableIpSet'] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set is None and 'ipSet' in kwargs: + ip_set = kwargs['ipSet'] + if ip_set is None: + raise TypeError("Missing 'ip_set' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("ip_set", ip_set) + _setter("key", key) @property @pulumi.getter(name="ipSet") @@ -526,7 +682,20 @@ def __init__(__self__, *, """ :param Sequence[str] definitions: Set of IPv4 or IPv6 addresses in CIDR notation to use for the Suricata `HOME_NET` variable. """ - pulumi.set(__self__, "definitions", definitions) + FirewallPolicyFirewallPolicyPolicyVariablesRuleVariableIpSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + definitions=definitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definitions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definitions is None: + raise TypeError("Missing 'definitions' argument") + + _setter("definitions", definitions) @property @pulumi.getter @@ -565,10 +734,27 @@ def __init__(__self__, *, :param str rule_order: Indicates how to manage the order of stateful rule evaluation for the policy. Default value: `DEFAULT_ACTION_ORDER`. Valid values: `DEFAULT_ACTION_ORDER`, `STRICT_ORDER`. :param str stream_exception_policy: Describes how to treat traffic which has broken midstream. Default value: `DROP`. Valid values: `DROP`, `CONTINUE`, `REJECT`. """ + FirewallPolicyFirewallPolicyStatefulEngineOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_order=rule_order, + stream_exception_policy=stream_exception_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_order: Optional[str] = None, + stream_exception_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_order is None and 'ruleOrder' in kwargs: + rule_order = kwargs['ruleOrder'] + if stream_exception_policy is None and 'streamExceptionPolicy' in kwargs: + stream_exception_policy = kwargs['streamExceptionPolicy'] + if rule_order is not None: - pulumi.set(__self__, "rule_order", rule_order) + _setter("rule_order", rule_order) if stream_exception_policy is not None: - pulumi.set(__self__, "stream_exception_policy", stream_exception_policy) + _setter("stream_exception_policy", stream_exception_policy) @property @pulumi.getter(name="ruleOrder") @@ -615,11 +801,30 @@ def __init__(__self__, *, :param 'FirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverrideArgs' override: Configuration block for override values :param int priority: An integer setting that indicates the order in which to apply the stateful rule groups in a single policy. This argument must be specified if the policy has a `stateful_engine_options` block with a `rule_order` value of `STRICT_ORDER`. AWS Network Firewall applies each stateful rule group to a packet starting with the group that has the lowest priority setting. """ - pulumi.set(__self__, "resource_arn", resource_arn) + FirewallPolicyFirewallPolicyStatefulRuleGroupReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + override=override, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[str] = None, + override: Optional['outputs.FirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverride'] = None, + priority: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) if override is not None: - pulumi.set(__self__, "override", override) + _setter("override", override) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) @property @pulumi.getter(name="resourceArn") @@ -653,8 +858,19 @@ def __init__(__self__, *, """ :param str action: The action that changes the rule group from DROP to ALERT . This only applies to managed rule groups. """ + FirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) @property @pulumi.getter @@ -693,8 +909,29 @@ def __init__(__self__, *, :param 'FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionArgs' action_definition: A configuration block describing the custom action associated with the `action_name`. See Action Definition below for details. :param str action_name: A friendly name of the custom action. """ - pulumi.set(__self__, "action_definition", action_definition) - pulumi.set(__self__, "action_name", action_name) + FirewallPolicyFirewallPolicyStatelessCustomAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_definition=action_definition, + action_name=action_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_definition: Optional['outputs.FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinition'] = None, + action_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_definition is None and 'actionDefinition' in kwargs: + action_definition = kwargs['actionDefinition'] + if action_definition is None: + raise TypeError("Missing 'action_definition' argument") + if action_name is None and 'actionName' in kwargs: + action_name = kwargs['actionName'] + if action_name is None: + raise TypeError("Missing 'action_name' argument") + + _setter("action_definition", action_definition) + _setter("action_name", action_name) @property @pulumi.getter(name="actionDefinition") @@ -737,7 +974,22 @@ def __init__(__self__, *, """ :param 'FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionArgs' publish_metric_action: A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details. """ - pulumi.set(__self__, "publish_metric_action", publish_metric_action) + FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + publish_metric_action=publish_metric_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + publish_metric_action: Optional['outputs.FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricAction'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if publish_metric_action is None and 'publishMetricAction' in kwargs: + publish_metric_action = kwargs['publishMetricAction'] + if publish_metric_action is None: + raise TypeError("Missing 'publish_metric_action' argument") + + _setter("publish_metric_action", publish_metric_action) @property @pulumi.getter(name="publishMetricAction") @@ -755,7 +1007,20 @@ def __init__(__self__, *, """ :param Sequence['FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimensionArgs'] dimensions: Set of configuration blocks describing dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for more details. """ - pulumi.set(__self__, "dimensions", dimensions) + FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimensions: Optional[Sequence['outputs.FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimension']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + + _setter("dimensions", dimensions) @property @pulumi.getter @@ -773,7 +1038,20 @@ def __init__(__self__, *, """ :param str value: The string value to use in the custom metric dimension. """ - pulumi.set(__self__, "value", value) + FirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) @property @pulumi.getter @@ -810,8 +1088,27 @@ def __init__(__self__, *, :param int priority: An integer setting that indicates the order in which to run the stateless rule groups in a single policy. AWS Network Firewall applies each stateless rule group to a packet starting with the group that has the lowest priority setting. :param str resource_arn: The Amazon Resource Name (ARN) of the stateless rule group. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "resource_arn", resource_arn) + FirewallPolicyFirewallPolicyStatelessRuleGroupReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("priority", priority) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -858,9 +1155,28 @@ def __init__(__self__, *, :param str subnet_id: The unique identifier for the subnet. :param str ip_address_type: The subnet's IP address type. Valida values: `"DUALSTACK"`, `"IPV4"`. """ - pulumi.set(__self__, "subnet_id", subnet_id) + FirewallSubnetMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + ip_address_type=ip_address_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[str] = None, + ip_address_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + + _setter("subnet_id", subnet_id) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) @property @pulumi.getter(name="subnetId") @@ -903,7 +1219,22 @@ def __init__(__self__, *, """ :param Sequence['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs'] log_destination_configs: Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. """ - pulumi.set(__self__, "log_destination_configs", log_destination_configs) + LoggingConfigurationLoggingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination_configs=log_destination_configs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination_configs: Optional[Sequence['outputs.LoggingConfigurationLoggingConfigurationLogDestinationConfig']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination_configs is None and 'logDestinationConfigs' in kwargs: + log_destination_configs = kwargs['logDestinationConfigs'] + if log_destination_configs is None: + raise TypeError("Missing 'log_destination_configs' argument") + + _setter("log_destination_configs", log_destination_configs) @property @pulumi.getter(name="logDestinationConfigs") @@ -949,9 +1280,36 @@ def __init__(__self__, *, :param str log_destination_type: The location to send logs to. Valid values: `S3`, `CloudWatchLogs`, `KinesisDataFirehose`. :param str log_type: The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. """ - pulumi.set(__self__, "log_destination", log_destination) - pulumi.set(__self__, "log_destination_type", log_destination_type) - pulumi.set(__self__, "log_type", log_type) + LoggingConfigurationLoggingConfigurationLogDestinationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination=log_destination, + log_destination_type=log_destination_type, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination: Optional[Mapping[str, str]] = None, + log_destination_type: Optional[str] = None, + log_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if log_destination is None: + raise TypeError("Missing 'log_destination' argument") + if log_destination_type is None and 'logDestinationType' in kwargs: + log_destination_type = kwargs['logDestinationType'] + if log_destination_type is None: + raise TypeError("Missing 'log_destination_type' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("log_destination", log_destination) + _setter("log_destination_type", log_destination_type) + _setter("log_type", log_type) @property @pulumi.getter(name="logDestination") @@ -1007,9 +1365,26 @@ def __init__(__self__, *, :param str type: The type of AWS KMS key to use for encryption of your Network Firewall resources. Valid values are `CUSTOMER_KMS` and `AWS_OWNED_KMS_KEY`. :param str key_id: The ID of the customer managed key. You can use any of the [key identifiers](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. """ - pulumi.set(__self__, "type", type) + RuleGroupEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("type", type) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) @property @pulumi.getter @@ -1064,13 +1439,40 @@ def __init__(__self__, *, :param 'RuleGroupRuleGroupRuleVariablesArgs' rule_variables: A configuration block that defines additional settings available to use in the rules defined in the rule group. Can only be specified for **stateful** rule groups. See Rule Variables below for details. :param 'RuleGroupRuleGroupStatefulRuleOptionsArgs' stateful_rule_options: A configuration block that defines stateful rule options for the rule group. See Stateful Rule Options below for details. """ - pulumi.set(__self__, "rules_source", rules_source) + RuleGroupRuleGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules_source=rules_source, + reference_sets=reference_sets, + rule_variables=rule_variables, + stateful_rule_options=stateful_rule_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules_source: Optional['outputs.RuleGroupRuleGroupRulesSource'] = None, + reference_sets: Optional['outputs.RuleGroupRuleGroupReferenceSets'] = None, + rule_variables: Optional['outputs.RuleGroupRuleGroupRuleVariables'] = None, + stateful_rule_options: Optional['outputs.RuleGroupRuleGroupStatefulRuleOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules_source is None and 'rulesSource' in kwargs: + rules_source = kwargs['rulesSource'] + if rules_source is None: + raise TypeError("Missing 'rules_source' argument") + if reference_sets is None and 'referenceSets' in kwargs: + reference_sets = kwargs['referenceSets'] + if rule_variables is None and 'ruleVariables' in kwargs: + rule_variables = kwargs['ruleVariables'] + if stateful_rule_options is None and 'statefulRuleOptions' in kwargs: + stateful_rule_options = kwargs['statefulRuleOptions'] + + _setter("rules_source", rules_source) if reference_sets is not None: - pulumi.set(__self__, "reference_sets", reference_sets) + _setter("reference_sets", reference_sets) if rule_variables is not None: - pulumi.set(__self__, "rule_variables", rule_variables) + _setter("rule_variables", rule_variables) if stateful_rule_options is not None: - pulumi.set(__self__, "stateful_rule_options", stateful_rule_options) + _setter("stateful_rule_options", stateful_rule_options) @property @pulumi.getter(name="rulesSource") @@ -1126,8 +1528,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, ip_set_references: Optional[Sequence['outputs.RuleGroupRuleGroupReferenceSetsIpSetReference']] = None): + RuleGroupRuleGroupReferenceSets._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set_references=ip_set_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set_references: Optional[Sequence['outputs.RuleGroupRuleGroupReferenceSetsIpSetReference']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set_references is None and 'ipSetReferences' in kwargs: + ip_set_references = kwargs['ipSetReferences'] + if ip_set_references is not None: - pulumi.set(__self__, "ip_set_references", ip_set_references) + _setter("ip_set_references", ip_set_references) @property @pulumi.getter(name="ipSetReferences") @@ -1161,8 +1576,27 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReferenceArgs'] ip_set_references: Set of configuration blocks that define the IP Reference information. See IP Set Reference below for details. :param str key: A unique alphanumeric string to identify the `ip_set`. """ - pulumi.set(__self__, "ip_set_references", ip_set_references) - pulumi.set(__self__, "key", key) + RuleGroupRuleGroupReferenceSetsIpSetReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set_references=ip_set_references, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set_references: Optional[Sequence['outputs.RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReference']] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set_references is None and 'ipSetReferences' in kwargs: + ip_set_references = kwargs['ipSetReferences'] + if ip_set_references is None: + raise TypeError("Missing 'ip_set_references' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("ip_set_references", ip_set_references) + _setter("key", key) @property @pulumi.getter(name="ipSetReferences") @@ -1205,7 +1639,22 @@ def __init__(__self__, *, """ :param str reference_arn: Set of Managed Prefix IP ARN(s) """ - pulumi.set(__self__, "reference_arn", reference_arn) + RuleGroupRuleGroupReferenceSetsIpSetReferenceIpSetReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + reference_arn=reference_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reference_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reference_arn is None and 'referenceArn' in kwargs: + reference_arn = kwargs['referenceArn'] + if reference_arn is None: + raise TypeError("Missing 'reference_arn' argument") + + _setter("reference_arn", reference_arn) @property @pulumi.getter(name="referenceArn") @@ -1244,10 +1693,27 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleGroupRuleVariablesIpSetArgs'] ip_sets: Set of configuration blocks that define IP address information. See IP Sets below for details. :param Sequence['RuleGroupRuleGroupRuleVariablesPortSetArgs'] port_sets: Set of configuration blocks that define port range information. See Port Sets below for details. """ + RuleGroupRuleGroupRuleVariables._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_sets=ip_sets, + port_sets=port_sets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_sets: Optional[Sequence['outputs.RuleGroupRuleGroupRuleVariablesIpSet']] = None, + port_sets: Optional[Sequence['outputs.RuleGroupRuleGroupRuleVariablesPortSet']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_sets is None and 'ipSets' in kwargs: + ip_sets = kwargs['ipSets'] + if port_sets is None and 'portSets' in kwargs: + port_sets = kwargs['portSets'] + if ip_sets is not None: - pulumi.set(__self__, "ip_sets", ip_sets) + _setter("ip_sets", ip_sets) if port_sets is not None: - pulumi.set(__self__, "port_sets", port_sets) + _setter("port_sets", port_sets) @property @pulumi.getter(name="ipSets") @@ -1292,8 +1758,27 @@ def __init__(__self__, *, :param 'RuleGroupRuleGroupRuleVariablesIpSetIpSetArgs' ip_set: A configuration block that defines a set of IP addresses. See IP Set below for details. :param str key: A unique alphanumeric string to identify the `ip_set`. """ - pulumi.set(__self__, "ip_set", ip_set) - pulumi.set(__self__, "key", key) + RuleGroupRuleGroupRuleVariablesIpSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set=ip_set, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set: Optional['outputs.RuleGroupRuleGroupRuleVariablesIpSetIpSet'] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set is None and 'ipSet' in kwargs: + ip_set = kwargs['ipSet'] + if ip_set is None: + raise TypeError("Missing 'ip_set' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("ip_set", ip_set) + _setter("key", key) @property @pulumi.getter(name="ipSet") @@ -1319,7 +1804,20 @@ def __init__(__self__, *, """ :param Sequence[str] definitions: Set of IP addresses and address ranges, in CIDR notation. """ - pulumi.set(__self__, "definitions", definitions) + RuleGroupRuleGroupRuleVariablesIpSetIpSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + definitions=definitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definitions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definitions is None: + raise TypeError("Missing 'definitions' argument") + + _setter("definitions", definitions) @property @pulumi.getter @@ -1356,8 +1854,27 @@ def __init__(__self__, *, :param str key: An unique alphanumeric string to identify the `port_set`. :param 'RuleGroupRuleGroupRuleVariablesPortSetPortSetArgs' port_set: A configuration block that defines a set of port ranges. See Port Set below for details. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "port_set", port_set) + RuleGroupRuleGroupRuleVariablesPortSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + port_set=port_set, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + port_set: Optional['outputs.RuleGroupRuleGroupRuleVariablesPortSetPortSet'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if port_set is None and 'portSet' in kwargs: + port_set = kwargs['portSet'] + if port_set is None: + raise TypeError("Missing 'port_set' argument") + + _setter("key", key) + _setter("port_set", port_set) @property @pulumi.getter @@ -1383,7 +1900,20 @@ def __init__(__self__, *, """ :param Sequence[str] definitions: Set of port ranges. """ - pulumi.set(__self__, "definitions", definitions) + RuleGroupRuleGroupRuleVariablesPortSetPortSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + definitions=definitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definitions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definitions is None: + raise TypeError("Missing 'definitions' argument") + + _setter("definitions", definitions) @property @pulumi.getter @@ -1430,14 +1960,39 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleGroupRulesSourceStatefulRuleArgs'] stateful_rules: Set of configuration blocks containing **stateful** inspection criteria for 5-tuple rules to be used together in a rule group. See Stateful Rule below for details. :param 'RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs' stateless_rules_and_custom_actions: A configuration block containing **stateless** inspection criteria for a stateless rule group. See Stateless Rules and Custom Actions below for details. """ + RuleGroupRuleGroupRulesSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules_source_list=rules_source_list, + rules_string=rules_string, + stateful_rules=stateful_rules, + stateless_rules_and_custom_actions=stateless_rules_and_custom_actions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules_source_list: Optional['outputs.RuleGroupRuleGroupRulesSourceRulesSourceList'] = None, + rules_string: Optional[str] = None, + stateful_rules: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatefulRule']] = None, + stateless_rules_and_custom_actions: Optional['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules_source_list is None and 'rulesSourceList' in kwargs: + rules_source_list = kwargs['rulesSourceList'] + if rules_string is None and 'rulesString' in kwargs: + rules_string = kwargs['rulesString'] + if stateful_rules is None and 'statefulRules' in kwargs: + stateful_rules = kwargs['statefulRules'] + if stateless_rules_and_custom_actions is None and 'statelessRulesAndCustomActions' in kwargs: + stateless_rules_and_custom_actions = kwargs['statelessRulesAndCustomActions'] + if rules_source_list is not None: - pulumi.set(__self__, "rules_source_list", rules_source_list) + _setter("rules_source_list", rules_source_list) if rules_string is not None: - pulumi.set(__self__, "rules_string", rules_string) + _setter("rules_string", rules_string) if stateful_rules is not None: - pulumi.set(__self__, "stateful_rules", stateful_rules) + _setter("stateful_rules", stateful_rules) if stateless_rules_and_custom_actions is not None: - pulumi.set(__self__, "stateless_rules_and_custom_actions", stateless_rules_and_custom_actions) + _setter("stateless_rules_and_custom_actions", stateless_rules_and_custom_actions) @property @pulumi.getter(name="rulesSourceList") @@ -1502,9 +2057,34 @@ def __init__(__self__, *, :param Sequence[str] target_types: Set of types of domain specifications that are provided in the `targets` argument. Valid values: `HTTP_HOST`, `TLS_SNI`. :param Sequence[str] targets: Set of domains that you want to inspect for in your traffic flows. """ - pulumi.set(__self__, "generated_rules_type", generated_rules_type) - pulumi.set(__self__, "target_types", target_types) - pulumi.set(__self__, "targets", targets) + RuleGroupRuleGroupRulesSourceRulesSourceList._configure( + lambda key, value: pulumi.set(__self__, key, value), + generated_rules_type=generated_rules_type, + target_types=target_types, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + generated_rules_type: Optional[str] = None, + target_types: Optional[Sequence[str]] = None, + targets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if generated_rules_type is None and 'generatedRulesType' in kwargs: + generated_rules_type = kwargs['generatedRulesType'] + if generated_rules_type is None: + raise TypeError("Missing 'generated_rules_type' argument") + if target_types is None and 'targetTypes' in kwargs: + target_types = kwargs['targetTypes'] + if target_types is None: + raise TypeError("Missing 'target_types' argument") + if targets is None: + raise TypeError("Missing 'targets' argument") + + _setter("generated_rules_type", generated_rules_type) + _setter("target_types", target_types) + _setter("targets", targets) @property @pulumi.getter(name="generatedRulesType") @@ -1559,9 +2139,32 @@ def __init__(__self__, *, :param 'RuleGroupRuleGroupRulesSourceStatefulRuleHeaderArgs' header: A configuration block containing the stateful 5-tuple inspection criteria for the rule, used to inspect traffic flows. See Header below for details. :param Sequence['RuleGroupRuleGroupRulesSourceStatefulRuleRuleOptionArgs'] rule_options: Set of configuration blocks containing additional settings for a stateful rule. See Rule Option below for details. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "header", header) - pulumi.set(__self__, "rule_options", rule_options) + RuleGroupRuleGroupRulesSourceStatefulRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + header=header, + rule_options=rule_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + header: Optional['outputs.RuleGroupRuleGroupRulesSourceStatefulRuleHeader'] = None, + rule_options: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatefulRuleRuleOption']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if header is None: + raise TypeError("Missing 'header' argument") + if rule_options is None and 'ruleOptions' in kwargs: + rule_options = kwargs['ruleOptions'] + if rule_options is None: + raise TypeError("Missing 'rule_options' argument") + + _setter("action", action) + _setter("header", header) + _setter("rule_options", rule_options) @property @pulumi.getter @@ -1624,12 +2227,49 @@ def __init__(__self__, *, :param str source: The source IP address or address range for, in CIDR notation. To match with any address, specify `ANY`. :param str source_port: The source port to inspect for. To match with any address, specify `ANY`. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "destination_port", destination_port) - pulumi.set(__self__, "direction", direction) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "source_port", source_port) + RuleGroupRuleGroupRulesSourceStatefulRuleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + destination_port=destination_port, + direction=direction, + protocol=protocol, + source=source, + source_port=source_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[str] = None, + destination_port: Optional[str] = None, + direction: Optional[str] = None, + protocol: Optional[str] = None, + source: Optional[str] = None, + source_port: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_port is None and 'destinationPort' in kwargs: + destination_port = kwargs['destinationPort'] + if destination_port is None: + raise TypeError("Missing 'destination_port' argument") + if direction is None: + raise TypeError("Missing 'direction' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if source_port is None and 'sourcePort' in kwargs: + source_port = kwargs['sourcePort'] + if source_port is None: + raise TypeError("Missing 'source_port' argument") + + _setter("destination", destination) + _setter("destination_port", destination_port) + _setter("direction", direction) + _setter("protocol", protocol) + _setter("source", source) + _setter("source_port", source_port) @property @pulumi.getter @@ -1690,9 +2330,24 @@ def __init__(__self__, *, See [Snort General Rule Options](http://manual-snort-org.s3-website-us-east-1.amazonaws.com/node31.html) or [Suricata Rule Options](https://suricata.readthedocs.io/en/suricata-5.0.1/rules/intro.html#rule-options) for more details. :param Sequence[str] settings: Set of strings for additional settings to use in stateful rule inspection. """ - pulumi.set(__self__, "keyword", keyword) + RuleGroupRuleGroupRulesSourceStatefulRuleRuleOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + keyword=keyword, + settings=settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + keyword: Optional[str] = None, + settings: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if keyword is None: + raise TypeError("Missing 'keyword' argument") + + _setter("keyword", keyword) if settings is not None: - pulumi.set(__self__, "settings", settings) + _setter("settings", settings) @property @pulumi.getter @@ -1740,9 +2395,28 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleArgs'] stateless_rules: Set of configuration blocks containing the stateless rules for use in the stateless rule group. See Stateless Rule below for details. :param Sequence['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionArgs'] custom_actions: Set of configuration blocks containing custom action definitions that are available for use by the set of `stateless rule`. See Custom Action below for details. """ - pulumi.set(__self__, "stateless_rules", stateless_rules) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActions._configure( + lambda key, value: pulumi.set(__self__, key, value), + stateless_rules=stateless_rules, + custom_actions=custom_actions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stateless_rules: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRule']] = None, + custom_actions: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomAction']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stateless_rules is None and 'statelessRules' in kwargs: + stateless_rules = kwargs['statelessRules'] + if stateless_rules is None: + raise TypeError("Missing 'stateless_rules' argument") + if custom_actions is None and 'customActions' in kwargs: + custom_actions = kwargs['customActions'] + + _setter("stateless_rules", stateless_rules) if custom_actions is not None: - pulumi.set(__self__, "custom_actions", custom_actions) + _setter("custom_actions", custom_actions) @property @pulumi.getter(name="statelessRules") @@ -1789,8 +2463,29 @@ def __init__(__self__, *, :param 'RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionArgs' action_definition: A configuration block describing the custom action associated with the `action_name`. See Action Definition below for details. :param str action_name: A friendly name of the custom action. """ - pulumi.set(__self__, "action_definition", action_definition) - pulumi.set(__self__, "action_name", action_name) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_definition=action_definition, + action_name=action_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_definition: Optional['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinition'] = None, + action_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_definition is None and 'actionDefinition' in kwargs: + action_definition = kwargs['actionDefinition'] + if action_definition is None: + raise TypeError("Missing 'action_definition' argument") + if action_name is None and 'actionName' in kwargs: + action_name = kwargs['actionName'] + if action_name is None: + raise TypeError("Missing 'action_name' argument") + + _setter("action_definition", action_definition) + _setter("action_name", action_name) @property @pulumi.getter(name="actionDefinition") @@ -1833,7 +2528,22 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionArgs' publish_metric_action: A configuration block describing the stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. You can pair this custom action with any of the standard stateless rule actions. See Publish Metric Action below for details. """ - pulumi.set(__self__, "publish_metric_action", publish_metric_action) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + publish_metric_action=publish_metric_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + publish_metric_action: Optional['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricAction'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if publish_metric_action is None and 'publishMetricAction' in kwargs: + publish_metric_action = kwargs['publishMetricAction'] + if publish_metric_action is None: + raise TypeError("Missing 'publish_metric_action' argument") + + _setter("publish_metric_action", publish_metric_action) @property @pulumi.getter(name="publishMetricAction") @@ -1851,7 +2561,20 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimensionArgs'] dimensions: Set of configuration blocks containing the dimension settings to use for Amazon CloudWatch custom metrics. See Dimension below for details. """ - pulumi.set(__self__, "dimensions", dimensions) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimensions: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimension']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + + _setter("dimensions", dimensions) @property @pulumi.getter @@ -1869,7 +2592,20 @@ def __init__(__self__, *, """ :param str value: The value to use in the custom metric dimension. """ - pulumi.set(__self__, "value", value) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsCustomActionActionDefinitionPublishMetricActionDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) @property @pulumi.getter @@ -1906,8 +2642,27 @@ def __init__(__self__, *, :param int priority: A setting that indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. AWS Network Firewall evaluates the rules in a rule group starting with the lowest priority setting. :param 'RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionArgs' rule_definition: A configuration block defining the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria. See Rule Definition below for details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_definition", rule_definition) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + rule_definition=rule_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + rule_definition: Optional['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinition'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_definition is None and 'ruleDefinition' in kwargs: + rule_definition = kwargs['ruleDefinition'] + if rule_definition is None: + raise TypeError("Missing 'rule_definition' argument") + + _setter("priority", priority) + _setter("rule_definition", rule_definition) @property @pulumi.getter @@ -1952,8 +2707,27 @@ def __init__(__self__, *, :param Sequence[str] actions: Set of actions to take on a packet that matches one of the stateless rule definition's `match_attributes`. For every rule you must specify 1 standard action, and you can add custom actions. Standard actions include: `aws:pass`, `aws:drop`, `aws:forward_to_sfe`. :param 'RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesArgs' match_attributes: A configuration block containing criteria for AWS Network Firewall to use to inspect an individual packet in stateless rule inspection. See Match Attributes below for details. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "match_attributes", match_attributes) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + match_attributes=match_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + match_attributes: Optional['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributes'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if match_attributes is None and 'matchAttributes' in kwargs: + match_attributes = kwargs['matchAttributes'] + if match_attributes is None: + raise TypeError("Missing 'match_attributes' argument") + + _setter("actions", actions) + _setter("match_attributes", match_attributes) @property @pulumi.getter @@ -2010,18 +2784,45 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourceArgs'] sources: Set of configuration blocks describing the source IP address and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address. See Source below for details. :param Sequence['RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlagArgs'] tcp_flags: Set of configuration blocks containing the TCP flags and masks to inspect for. If not specified, this matches with any settings. """ + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_ports=destination_ports, + destinations=destinations, + protocols=protocols, + source_ports=source_ports, + sources=sources, + tcp_flags=tcp_flags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_ports: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPort']] = None, + destinations: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestination']] = None, + protocols: Optional[Sequence[int]] = None, + source_ports: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePort']] = None, + sources: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSource']] = None, + tcp_flags: Optional[Sequence['outputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlag']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_ports is None and 'destinationPorts' in kwargs: + destination_ports = kwargs['destinationPorts'] + if source_ports is None and 'sourcePorts' in kwargs: + source_ports = kwargs['sourcePorts'] + if tcp_flags is None and 'tcpFlags' in kwargs: + tcp_flags = kwargs['tcpFlags'] + if destination_ports is not None: - pulumi.set(__self__, "destination_ports", destination_ports) + _setter("destination_ports", destination_ports) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if protocols is not None: - pulumi.set(__self__, "protocols", protocols) + _setter("protocols", protocols) if source_ports is not None: - pulumi.set(__self__, "source_ports", source_ports) + _setter("source_ports", source_ports) if sources is not None: - pulumi.set(__self__, "sources", sources) + _setter("sources", sources) if tcp_flags is not None: - pulumi.set(__self__, "tcp_flags", tcp_flags) + _setter("tcp_flags", tcp_flags) @property @pulumi.getter(name="destinationPorts") @@ -2096,7 +2897,22 @@ def __init__(__self__, *, """ :param str address_definition: An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4. """ - pulumi.set(__self__, "address_definition", address_definition) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_definition=address_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_definition: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_definition is None and 'addressDefinition' in kwargs: + address_definition = kwargs['addressDefinition'] + if address_definition is None: + raise TypeError("Missing 'address_definition' argument") + + _setter("address_definition", address_definition) @property @pulumi.getter(name="addressDefinition") @@ -2135,9 +2951,28 @@ def __init__(__self__, *, :param int from_port: The lower limit of the port range. This must be less than or equal to the `to_port`. :param int to_port: The upper limit of the port range. This must be greater than or equal to the `from_port`. """ - pulumi.set(__self__, "from_port", from_port) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesDestinationPort._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + to_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -2180,7 +3015,22 @@ def __init__(__self__, *, """ :param str address_definition: An IP address or a block of IP addresses in CIDR notation. AWS Network Firewall supports all address ranges for IPv4. """ - pulumi.set(__self__, "address_definition", address_definition) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_definition=address_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_definition: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_definition is None and 'addressDefinition' in kwargs: + address_definition = kwargs['addressDefinition'] + if address_definition is None: + raise TypeError("Missing 'address_definition' argument") + + _setter("address_definition", address_definition) @property @pulumi.getter(name="addressDefinition") @@ -2219,9 +3069,28 @@ def __init__(__self__, *, :param int from_port: The lower limit of the port range. This must be less than or equal to the `to_port`. :param int to_port: The upper limit of the port range. This must be greater than or equal to the `from_port`. """ - pulumi.set(__self__, "from_port", from_port) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesSourcePort._configure( + lambda key, value: pulumi.set(__self__, key, value), + from_port=from_port, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + from_port: Optional[int] = None, + to_port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if from_port is None: + raise TypeError("Missing 'from_port' argument") + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + + _setter("from_port", from_port) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="fromPort") @@ -2251,9 +3120,24 @@ def __init__(__self__, *, :param Sequence[str] masks: Set of flags to consider in the inspection. To inspect all flags, leave this empty. Valid values: `FIN`, `SYN`, `RST`, `PSH`, `ACK`, `URG`, `ECE`, `CWR`. """ - pulumi.set(__self__, "flags", flags) + RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsStatelessRuleRuleDefinitionMatchAttributesTcpFlag._configure( + lambda key, value: pulumi.set(__self__, key, value), + flags=flags, + masks=masks, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flags: Optional[Sequence[str]] = None, + masks: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flags is None: + raise TypeError("Missing 'flags' argument") + + _setter("flags", flags) if masks is not None: - pulumi.set(__self__, "masks", masks) + _setter("masks", masks) @property @pulumi.getter @@ -2298,7 +3182,22 @@ def __init__(__self__, *, """ :param str rule_order: Indicates how to manage the order of the rule evaluation for the rule group. Default value: `DEFAULT_ACTION_ORDER`. Valid values: `DEFAULT_ACTION_ORDER`, `STRICT_ORDER`. """ - pulumi.set(__self__, "rule_order", rule_order) + RuleGroupRuleGroupStatefulRuleOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_order=rule_order, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_order: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_order is None and 'ruleOrder' in kwargs: + rule_order = kwargs['ruleOrder'] + if rule_order is None: + raise TypeError("Missing 'rule_order' argument") + + _setter("rule_order", rule_order) @property @pulumi.getter(name="ruleOrder") @@ -2318,8 +3217,27 @@ def __init__(__self__, *, :param str key_id: The ID of the AWS Key Management Service (AWS KMS) customer managed key. :param str type: The type of the AWS Key Management Service (AWS KMS) key use by the firewall. """ - pulumi.set(__self__, "key_id", key_id) - pulumi.set(__self__, "type", type) + GetFirewallEncryptionConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("key_id", key_id) + _setter("type", type) @property @pulumi.getter(name="keyId") @@ -2350,10 +3268,41 @@ def __init__(__self__, *, :param str configuration_sync_state_summary: Summary of sync states for all availability zones in which the firewall is configured. :param Sequence['GetFirewallFirewallStatusSyncStateArgs'] sync_states: Set of subnets configured for use by the firewall. """ - pulumi.set(__self__, "capacity_usage_summaries", capacity_usage_summaries) - pulumi.set(__self__, "configuration_sync_state_summary", configuration_sync_state_summary) - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "sync_states", sync_states) + GetFirewallFirewallStatusResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_usage_summaries=capacity_usage_summaries, + configuration_sync_state_summary=configuration_sync_state_summary, + status=status, + sync_states=sync_states, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_usage_summaries: Optional[Sequence['outputs.GetFirewallFirewallStatusCapacityUsageSummaryResult']] = None, + configuration_sync_state_summary: Optional[str] = None, + status: Optional[str] = None, + sync_states: Optional[Sequence['outputs.GetFirewallFirewallStatusSyncStateResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_usage_summaries is None and 'capacityUsageSummaries' in kwargs: + capacity_usage_summaries = kwargs['capacityUsageSummaries'] + if capacity_usage_summaries is None: + raise TypeError("Missing 'capacity_usage_summaries' argument") + if configuration_sync_state_summary is None and 'configurationSyncStateSummary' in kwargs: + configuration_sync_state_summary = kwargs['configurationSyncStateSummary'] + if configuration_sync_state_summary is None: + raise TypeError("Missing 'configuration_sync_state_summary' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if sync_states is None and 'syncStates' in kwargs: + sync_states = kwargs['syncStates'] + if sync_states is None: + raise TypeError("Missing 'sync_states' argument") + + _setter("capacity_usage_summaries", capacity_usage_summaries) + _setter("configuration_sync_state_summary", configuration_sync_state_summary) + _setter("status", status) + _setter("sync_states", sync_states) @property @pulumi.getter(name="capacityUsageSummaries") @@ -2392,7 +3341,20 @@ def __init__(__self__, *, """ :param Sequence['GetFirewallFirewallStatusCapacityUsageSummaryCidrArgs'] cidrs: Capacity usage of CIDR blocks used by IP set references in a firewall. """ - pulumi.set(__self__, "cidrs", cidrs) + GetFirewallFirewallStatusCapacityUsageSummaryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidrs=cidrs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidrs: Optional[Sequence['outputs.GetFirewallFirewallStatusCapacityUsageSummaryCidrResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidrs is None: + raise TypeError("Missing 'cidrs' argument") + + _setter("cidrs", cidrs) @property @pulumi.getter @@ -2414,9 +3376,36 @@ def __init__(__self__, *, :param Sequence['GetFirewallFirewallStatusCapacityUsageSummaryCidrIpSetReferenceArgs'] ip_set_references: The list of IP set references used by a firewall. :param int utilized_cidr_count: Number of CIDR blocks used by the IP set references in a firewall. """ - pulumi.set(__self__, "available_cidr_count", available_cidr_count) - pulumi.set(__self__, "ip_set_references", ip_set_references) - pulumi.set(__self__, "utilized_cidr_count", utilized_cidr_count) + GetFirewallFirewallStatusCapacityUsageSummaryCidrResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + available_cidr_count=available_cidr_count, + ip_set_references=ip_set_references, + utilized_cidr_count=utilized_cidr_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + available_cidr_count: Optional[int] = None, + ip_set_references: Optional[Sequence['outputs.GetFirewallFirewallStatusCapacityUsageSummaryCidrIpSetReferenceResult']] = None, + utilized_cidr_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if available_cidr_count is None and 'availableCidrCount' in kwargs: + available_cidr_count = kwargs['availableCidrCount'] + if available_cidr_count is None: + raise TypeError("Missing 'available_cidr_count' argument") + if ip_set_references is None and 'ipSetReferences' in kwargs: + ip_set_references = kwargs['ipSetReferences'] + if ip_set_references is None: + raise TypeError("Missing 'ip_set_references' argument") + if utilized_cidr_count is None and 'utilizedCidrCount' in kwargs: + utilized_cidr_count = kwargs['utilizedCidrCount'] + if utilized_cidr_count is None: + raise TypeError("Missing 'utilized_cidr_count' argument") + + _setter("available_cidr_count", available_cidr_count) + _setter("ip_set_references", ip_set_references) + _setter("utilized_cidr_count", utilized_cidr_count) @property @pulumi.getter(name="availableCidrCount") @@ -2450,7 +3439,22 @@ def __init__(__self__, *, """ :param int resolved_cidr_count: Total number of CIDR blocks used by the IP set references in a firewall. """ - pulumi.set(__self__, "resolved_cidr_count", resolved_cidr_count) + GetFirewallFirewallStatusCapacityUsageSummaryCidrIpSetReferenceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + resolved_cidr_count=resolved_cidr_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resolved_cidr_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resolved_cidr_count is None and 'resolvedCidrCount' in kwargs: + resolved_cidr_count = kwargs['resolvedCidrCount'] + if resolved_cidr_count is None: + raise TypeError("Missing 'resolved_cidr_count' argument") + + _setter("resolved_cidr_count", resolved_cidr_count) @property @pulumi.getter(name="resolvedCidrCount") @@ -2470,8 +3474,27 @@ def __init__(__self__, *, :param Sequence['GetFirewallFirewallStatusSyncStateAttachmentArgs'] attachments: Nested list describing the attachment status of the firewall's association with a single VPC subnet. :param str availability_zone: The Availability Zone where the subnet is configured. """ - pulumi.set(__self__, "attachments", attachments) - pulumi.set(__self__, "availability_zone", availability_zone) + GetFirewallFirewallStatusSyncStateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachments=attachments, + availability_zone=availability_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachments: Optional[Sequence['outputs.GetFirewallFirewallStatusSyncStateAttachmentResult']] = None, + availability_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachments is None: + raise TypeError("Missing 'attachments' argument") + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + + _setter("attachments", attachments) + _setter("availability_zone", availability_zone) @property @pulumi.getter @@ -2500,9 +3523,34 @@ def __init__(__self__, *, :param str endpoint_id: The identifier of the firewall endpoint that AWS Network Firewall has instantiated in the subnet. You use this to identify the firewall endpoint in the VPC route tables, when you redirect the VPC traffic through the endpoint. :param str subnet_id: The unique identifier for the subnet. """ - pulumi.set(__self__, "endpoint_id", endpoint_id) - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "subnet_id", subnet_id) + GetFirewallFirewallStatusSyncStateAttachmentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_id=endpoint_id, + status=status, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_id: Optional[str] = None, + status: Optional[str] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if endpoint_id is None: + raise TypeError("Missing 'endpoint_id' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("endpoint_id", endpoint_id) + _setter("status", status) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="endpointId") @@ -2536,13 +3584,64 @@ def __init__(__self__, *, stateless_default_actions: Sequence[str], stateless_fragment_default_actions: Sequence[str], stateless_rule_group_references: Sequence['outputs.GetFirewallPolicyFirewallPolicyStatelessRuleGroupReferenceResult']): - pulumi.set(__self__, "stateful_default_actions", stateful_default_actions) - pulumi.set(__self__, "stateful_engine_options", stateful_engine_options) - pulumi.set(__self__, "stateful_rule_group_references", stateful_rule_group_references) - pulumi.set(__self__, "stateless_custom_actions", stateless_custom_actions) - pulumi.set(__self__, "stateless_default_actions", stateless_default_actions) - pulumi.set(__self__, "stateless_fragment_default_actions", stateless_fragment_default_actions) - pulumi.set(__self__, "stateless_rule_group_references", stateless_rule_group_references) + GetFirewallPolicyFirewallPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + stateful_default_actions=stateful_default_actions, + stateful_engine_options=stateful_engine_options, + stateful_rule_group_references=stateful_rule_group_references, + stateless_custom_actions=stateless_custom_actions, + stateless_default_actions=stateless_default_actions, + stateless_fragment_default_actions=stateless_fragment_default_actions, + stateless_rule_group_references=stateless_rule_group_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stateful_default_actions: Optional[Sequence[str]] = None, + stateful_engine_options: Optional[Sequence['outputs.GetFirewallPolicyFirewallPolicyStatefulEngineOptionResult']] = None, + stateful_rule_group_references: Optional[Sequence['outputs.GetFirewallPolicyFirewallPolicyStatefulRuleGroupReferenceResult']] = None, + stateless_custom_actions: Optional[Sequence['outputs.GetFirewallPolicyFirewallPolicyStatelessCustomActionResult']] = None, + stateless_default_actions: Optional[Sequence[str]] = None, + stateless_fragment_default_actions: Optional[Sequence[str]] = None, + stateless_rule_group_references: Optional[Sequence['outputs.GetFirewallPolicyFirewallPolicyStatelessRuleGroupReferenceResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stateful_default_actions is None and 'statefulDefaultActions' in kwargs: + stateful_default_actions = kwargs['statefulDefaultActions'] + if stateful_default_actions is None: + raise TypeError("Missing 'stateful_default_actions' argument") + if stateful_engine_options is None and 'statefulEngineOptions' in kwargs: + stateful_engine_options = kwargs['statefulEngineOptions'] + if stateful_engine_options is None: + raise TypeError("Missing 'stateful_engine_options' argument") + if stateful_rule_group_references is None and 'statefulRuleGroupReferences' in kwargs: + stateful_rule_group_references = kwargs['statefulRuleGroupReferences'] + if stateful_rule_group_references is None: + raise TypeError("Missing 'stateful_rule_group_references' argument") + if stateless_custom_actions is None and 'statelessCustomActions' in kwargs: + stateless_custom_actions = kwargs['statelessCustomActions'] + if stateless_custom_actions is None: + raise TypeError("Missing 'stateless_custom_actions' argument") + if stateless_default_actions is None and 'statelessDefaultActions' in kwargs: + stateless_default_actions = kwargs['statelessDefaultActions'] + if stateless_default_actions is None: + raise TypeError("Missing 'stateless_default_actions' argument") + if stateless_fragment_default_actions is None and 'statelessFragmentDefaultActions' in kwargs: + stateless_fragment_default_actions = kwargs['statelessFragmentDefaultActions'] + if stateless_fragment_default_actions is None: + raise TypeError("Missing 'stateless_fragment_default_actions' argument") + if stateless_rule_group_references is None and 'statelessRuleGroupReferences' in kwargs: + stateless_rule_group_references = kwargs['statelessRuleGroupReferences'] + if stateless_rule_group_references is None: + raise TypeError("Missing 'stateless_rule_group_references' argument") + + _setter("stateful_default_actions", stateful_default_actions) + _setter("stateful_engine_options", stateful_engine_options) + _setter("stateful_rule_group_references", stateful_rule_group_references) + _setter("stateless_custom_actions", stateless_custom_actions) + _setter("stateless_default_actions", stateless_default_actions) + _setter("stateless_fragment_default_actions", stateless_fragment_default_actions) + _setter("stateless_rule_group_references", stateless_rule_group_references) @property @pulumi.getter(name="statefulDefaultActions") @@ -2585,8 +3684,29 @@ class GetFirewallPolicyFirewallPolicyStatefulEngineOptionResult(dict): def __init__(__self__, *, rule_order: str, stream_exception_policy: str): - pulumi.set(__self__, "rule_order", rule_order) - pulumi.set(__self__, "stream_exception_policy", stream_exception_policy) + GetFirewallPolicyFirewallPolicyStatefulEngineOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_order=rule_order, + stream_exception_policy=stream_exception_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_order: Optional[str] = None, + stream_exception_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_order is None and 'ruleOrder' in kwargs: + rule_order = kwargs['ruleOrder'] + if rule_order is None: + raise TypeError("Missing 'rule_order' argument") + if stream_exception_policy is None and 'streamExceptionPolicy' in kwargs: + stream_exception_policy = kwargs['streamExceptionPolicy'] + if stream_exception_policy is None: + raise TypeError("Missing 'stream_exception_policy' argument") + + _setter("rule_order", rule_order) + _setter("stream_exception_policy", stream_exception_policy) @property @pulumi.getter(name="ruleOrder") @@ -2605,10 +3725,31 @@ def __init__(__self__, *, priority: int, resource_arn: str, overrides: Optional[Sequence['outputs.GetFirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverrideResult']] = None): - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "resource_arn", resource_arn) + GetFirewallPolicyFirewallPolicyStatefulRuleGroupReferenceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + resource_arn=resource_arn, + overrides=overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + resource_arn: Optional[str] = None, + overrides: Optional[Sequence['outputs.GetFirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverrideResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("priority", priority) + _setter("resource_arn", resource_arn) if overrides is not None: - pulumi.set(__self__, "overrides", overrides) + _setter("overrides", overrides) @property @pulumi.getter @@ -2630,8 +3771,19 @@ def overrides(self) -> Optional[Sequence['outputs.GetFirewallPolicyFirewallPolic class GetFirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverrideResult(dict): def __init__(__self__, *, action: Optional[str] = None): + GetFirewallPolicyFirewallPolicyStatefulRuleGroupReferenceOverrideResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) @property @pulumi.getter @@ -2644,8 +3796,29 @@ class GetFirewallPolicyFirewallPolicyStatelessCustomActionResult(dict): def __init__(__self__, *, action_definitions: Sequence['outputs.GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionResult'], action_name: str): - pulumi.set(__self__, "action_definitions", action_definitions) - pulumi.set(__self__, "action_name", action_name) + GetFirewallPolicyFirewallPolicyStatelessCustomActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_definitions=action_definitions, + action_name=action_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_definitions: Optional[Sequence['outputs.GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionResult']] = None, + action_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_definitions is None and 'actionDefinitions' in kwargs: + action_definitions = kwargs['actionDefinitions'] + if action_definitions is None: + raise TypeError("Missing 'action_definitions' argument") + if action_name is None and 'actionName' in kwargs: + action_name = kwargs['actionName'] + if action_name is None: + raise TypeError("Missing 'action_name' argument") + + _setter("action_definitions", action_definitions) + _setter("action_name", action_name) @property @pulumi.getter(name="actionDefinitions") @@ -2662,7 +3835,22 @@ def action_name(self) -> str: class GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionResult(dict): def __init__(__self__, *, publish_metric_actions: Sequence['outputs.GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionResult']): - pulumi.set(__self__, "publish_metric_actions", publish_metric_actions) + GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + publish_metric_actions=publish_metric_actions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + publish_metric_actions: Optional[Sequence['outputs.GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if publish_metric_actions is None and 'publishMetricActions' in kwargs: + publish_metric_actions = kwargs['publishMetricActions'] + if publish_metric_actions is None: + raise TypeError("Missing 'publish_metric_actions' argument") + + _setter("publish_metric_actions", publish_metric_actions) @property @pulumi.getter(name="publishMetricActions") @@ -2674,7 +3862,20 @@ def publish_metric_actions(self) -> Sequence['outputs.GetFirewallPolicyFirewallP class GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionResult(dict): def __init__(__self__, *, dimensions: Sequence['outputs.GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimensionResult']): - pulumi.set(__self__, "dimensions", dimensions) + GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimensions=dimensions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimensions: Optional[Sequence['outputs.GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimensionResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimensions is None: + raise TypeError("Missing 'dimensions' argument") + + _setter("dimensions", dimensions) @property @pulumi.getter @@ -2686,7 +3887,20 @@ def dimensions(self) -> Sequence['outputs.GetFirewallPolicyFirewallPolicyStatele class GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimensionResult(dict): def __init__(__self__, *, value: str): - pulumi.set(__self__, "value", value) + GetFirewallPolicyFirewallPolicyStatelessCustomActionActionDefinitionPublishMetricActionDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) @property @pulumi.getter @@ -2699,8 +3913,27 @@ class GetFirewallPolicyFirewallPolicyStatelessRuleGroupReferenceResult(dict): def __init__(__self__, *, priority: int, resource_arn: str): - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "resource_arn", resource_arn) + GetFirewallPolicyFirewallPolicyStatelessRuleGroupReferenceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("priority", priority) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -2720,7 +3953,22 @@ def __init__(__self__, *, """ :param str subnet_id: The unique identifier for the subnet. """ - pulumi.set(__self__, "subnet_id", subnet_id) + GetFirewallSubnetMappingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="subnetId") diff --git a/sdk/python/pulumi_aws/networkfirewall/resource_policy.py b/sdk/python/pulumi_aws/networkfirewall/resource_policy.py index 3019e1f2ec9..3ff8d06c49b 100644 --- a/sdk/python/pulumi_aws/networkfirewall/resource_policy.py +++ b/sdk/python/pulumi_aws/networkfirewall/resource_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourcePolicyArgs', 'ResourcePolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: JSON formatted policy document that controls access to the Network Firewall resource. The policy must be provided **without whitespaces**. We recommend using jsonencode for formatting as seen in the examples above. For more details, including available policy statement Actions, see the [Policy](https://docs.aws.amazon.com/network-firewall/latest/APIReference/API_PutResourcePolicy.html#API_PutResourcePolicy_RequestSyntax) parameter in the AWS API documentation. :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the rule group or firewall policy. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "resource_arn", resource_arn) + ResourcePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("policy", policy) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: JSON formatted policy document that controls access to the Network Firewall resource. The policy must be provided **without whitespaces**. We recommend using jsonencode for formatting as seen in the examples above. For more details, including available policy statement Actions, see the [Policy](https://docs.aws.amazon.com/network-firewall/latest/APIReference/API_PutResourcePolicy.html#API_PutResourcePolicy_RequestSyntax) parameter in the AWS API documentation. :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the rule group or firewall policy. """ + _ResourcePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -246,6 +280,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourcePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkfirewall/rule_group.py b/sdk/python/pulumi_aws/networkfirewall/rule_group.py index 2ed7dbdf514..15649f83c5a 100644 --- a/sdk/python/pulumi_aws/networkfirewall/rule_group.py +++ b/sdk/python/pulumi_aws/networkfirewall/rule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,20 +35,53 @@ def __init__(__self__, *, :param pulumi.Input[str] rules: The stateful rule group rules specifications in Suricata file format, with one rule per line. Use this to import your existing Suricata compatible rule groups. Required unless `rule_group` is specified. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of key:value pairs to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "capacity", capacity) - pulumi.set(__self__, "type", type) + RuleGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity=capacity, + type=type, + description=description, + encryption_configuration=encryption_configuration, + name=name, + rule_group=rule_group, + rules=rules, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['RuleGroupEncryptionConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + rule_group: Optional[pulumi.Input['RuleGroupRuleGroupArgs']] = None, + rules: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity is None: + raise TypeError("Missing 'capacity' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if rule_group is None and 'ruleGroup' in kwargs: + rule_group = kwargs['ruleGroup'] + + _setter("capacity", capacity) + _setter("type", type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rule_group is not None: - pulumi.set(__self__, "rule_group", rule_group) + _setter("rule_group", rule_group) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -175,31 +208,70 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Whether the rule group is stateless (containing stateless rules) or stateful (containing stateful rules). Valid values include: `STATEFUL` or `STATELESS`. :param pulumi.Input[str] update_token: A string token used when updating the rule group. """ + _RuleGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + capacity=capacity, + description=description, + encryption_configuration=encryption_configuration, + name=name, + rule_group=rule_group, + rules=rules, + tags=tags, + tags_all=tags_all, + type=type, + update_token=update_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + capacity: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['RuleGroupEncryptionConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + rule_group: Optional[pulumi.Input['RuleGroupRuleGroupArgs']] = None, + rules: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + update_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if rule_group is None and 'ruleGroup' in kwargs: + rule_group = kwargs['ruleGroup'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if update_token is None and 'updateToken' in kwargs: + update_token = kwargs['updateToken'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if capacity is not None: - pulumi.set(__self__, "capacity", capacity) + _setter("capacity", capacity) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rule_group is not None: - pulumi.set(__self__, "rule_group", rule_group) + _setter("rule_group", rule_group) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if update_token is not None: - pulumi.set(__self__, "update_token", update_token) + _setter("update_token", update_token) @property @pulumi.getter @@ -638,6 +710,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RuleGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -664,8 +740,10 @@ def _internal_init(__self__, raise TypeError("Missing required property 'capacity'") __props__.__dict__["capacity"] = capacity __props__.__dict__["description"] = description + encryption_configuration = _utilities.configure(encryption_configuration, RuleGroupEncryptionConfigurationArgs, True) __props__.__dict__["encryption_configuration"] = encryption_configuration __props__.__dict__["name"] = name + rule_group = _utilities.configure(rule_group, RuleGroupRuleGroupArgs, True) __props__.__dict__["rule_group"] = rule_group __props__.__dict__["rules"] = rules __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/networkmanager/_inputs.py b/sdk/python/pulumi_aws/networkmanager/_inputs.py index 8584980d7bb..85377763b74 100644 --- a/sdk/python/pulumi_aws/networkmanager/_inputs.py +++ b/sdk/python/pulumi_aws/networkmanager/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -34,8 +34,19 @@ class ConnectAttachmentOptionsArgs: def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None): + ConnectAttachmentOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) @property @pulumi.getter @@ -51,8 +62,21 @@ def protocol(self, value: Optional[pulumi.Input[str]]): class ConnectPeerBgpOptionsArgs: def __init__(__self__, *, peer_asn: Optional[pulumi.Input[int]] = None): + ConnectPeerBgpOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + peer_asn=peer_asn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + peer_asn: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if peer_asn is None and 'peerAsn' in kwargs: + peer_asn = kwargs['peerAsn'] + if peer_asn is not None: - pulumi.set(__self__, "peer_asn", peer_asn) + _setter("peer_asn", peer_asn) @property @pulumi.getter(name="peerAsn") @@ -79,16 +103,43 @@ def __init__(__self__, *, The following arguments are optional: """ + ConnectPeerConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bgp_configurations=bgp_configurations, + core_network_address=core_network_address, + inside_cidr_blocks=inside_cidr_blocks, + peer_address=peer_address, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bgp_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectPeerConfigurationBgpConfigurationArgs']]]] = None, + core_network_address: Optional[pulumi.Input[str]] = None, + inside_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + peer_address: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bgp_configurations is None and 'bgpConfigurations' in kwargs: + bgp_configurations = kwargs['bgpConfigurations'] + if core_network_address is None and 'coreNetworkAddress' in kwargs: + core_network_address = kwargs['coreNetworkAddress'] + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if peer_address is None and 'peerAddress' in kwargs: + peer_address = kwargs['peerAddress'] + if bgp_configurations is not None: - pulumi.set(__self__, "bgp_configurations", bgp_configurations) + _setter("bgp_configurations", bgp_configurations) if core_network_address is not None: - pulumi.set(__self__, "core_network_address", core_network_address) + _setter("core_network_address", core_network_address) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) if peer_address is not None: - pulumi.set(__self__, "peer_address", peer_address) + _setter("peer_address", peer_address) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) @property @pulumi.getter(name="bgpConfigurations") @@ -160,14 +211,39 @@ def __init__(__self__, *, The following arguments are optional: """ + ConnectPeerConfigurationBgpConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + core_network_address=core_network_address, + core_network_asn=core_network_asn, + peer_address=peer_address, + peer_asn=peer_asn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + core_network_address: Optional[pulumi.Input[str]] = None, + core_network_asn: Optional[pulumi.Input[int]] = None, + peer_address: Optional[pulumi.Input[str]] = None, + peer_asn: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_address is None and 'coreNetworkAddress' in kwargs: + core_network_address = kwargs['coreNetworkAddress'] + if core_network_asn is None and 'coreNetworkAsn' in kwargs: + core_network_asn = kwargs['coreNetworkAsn'] + if peer_address is None and 'peerAddress' in kwargs: + peer_address = kwargs['peerAddress'] + if peer_asn is None and 'peerAsn' in kwargs: + peer_asn = kwargs['peerAsn'] + if core_network_address is not None: - pulumi.set(__self__, "core_network_address", core_network_address) + _setter("core_network_address", core_network_address) if core_network_asn is not None: - pulumi.set(__self__, "core_network_asn", core_network_asn) + _setter("core_network_asn", core_network_asn) if peer_address is not None: - pulumi.set(__self__, "peer_address", peer_address) + _setter("peer_address", peer_address) if peer_asn is not None: - pulumi.set(__self__, "peer_asn", peer_asn) + _setter("peer_asn", peer_asn) @property @pulumi.getter(name="coreNetworkAddress") @@ -225,12 +301,31 @@ def __init__(__self__, *, :param pulumi.Input[str] edge_location: Region where a core network edge is located. :param pulumi.Input[Sequence[pulumi.Input[str]]] inside_cidr_blocks: Inside IP addresses used for core network edges. """ + CoreNetworkEdgeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + asn=asn, + edge_location=edge_location, + inside_cidr_blocks=inside_cidr_blocks, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + asn: Optional[pulumi.Input[int]] = None, + edge_location: Optional[pulumi.Input[str]] = None, + inside_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if asn is not None: - pulumi.set(__self__, "asn", asn) + _setter("asn", asn) if edge_location is not None: - pulumi.set(__self__, "edge_location", edge_location) + _setter("edge_location", edge_location) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) @property @pulumi.getter @@ -280,12 +375,31 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of a core network segment. :param pulumi.Input[Sequence[pulumi.Input[str]]] shared_segments: Shared segments of a core network. """ + CoreNetworkSegmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + edge_locations=edge_locations, + name=name, + shared_segments=shared_segments, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + edge_locations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + shared_segments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if edge_locations is None and 'edgeLocations' in kwargs: + edge_locations = kwargs['edgeLocations'] + if shared_segments is None and 'sharedSegments' in kwargs: + shared_segments = kwargs['sharedSegments'] + if edge_locations is not None: - pulumi.set(__self__, "edge_locations", edge_locations) + _setter("edge_locations", edge_locations) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if shared_segments is not None: - pulumi.set(__self__, "shared_segments", shared_segments) + _setter("shared_segments", shared_segments) @property @pulumi.getter(name="edgeLocations") @@ -333,10 +447,25 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_arn: The Amazon Resource Name (ARN) of the subnet that the device is located in. :param pulumi.Input[str] zone: The Zone that the device is located in. Specify the ID of an Availability Zone, Local Zone, Wavelength Zone, or an Outpost. """ + DeviceAwsLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_arn=subnet_arn, + zone=zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_arn: Optional[pulumi.Input[str]] = None, + zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_arn is None and 'subnetArn' in kwargs: + subnet_arn = kwargs['subnetArn'] + if subnet_arn is not None: - pulumi.set(__self__, "subnet_arn", subnet_arn) + _setter("subnet_arn", subnet_arn) if zone is not None: - pulumi.set(__self__, "zone", zone) + _setter("zone", zone) @property @pulumi.getter(name="subnetArn") @@ -374,12 +503,27 @@ def __init__(__self__, *, :param pulumi.Input[str] latitude: The latitude. :param pulumi.Input[str] longitude: The longitude. """ + DeviceLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + latitude=latitude, + longitude=longitude, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + latitude: Optional[pulumi.Input[str]] = None, + longitude: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if latitude is not None: - pulumi.set(__self__, "latitude", latitude) + _setter("latitude", latitude) if longitude is not None: - pulumi.set(__self__, "longitude", longitude) + _setter("longitude", longitude) @property @pulumi.getter @@ -427,10 +571,27 @@ def __init__(__self__, *, :param pulumi.Input[int] download_speed: Download speed in Mbps. :param pulumi.Input[int] upload_speed: Upload speed in Mbps. """ + LinkBandwidthArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + download_speed=download_speed, + upload_speed=upload_speed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + download_speed: Optional[pulumi.Input[int]] = None, + upload_speed: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if download_speed is None and 'downloadSpeed' in kwargs: + download_speed = kwargs['downloadSpeed'] + if upload_speed is None and 'uploadSpeed' in kwargs: + upload_speed = kwargs['uploadSpeed'] + if download_speed is not None: - pulumi.set(__self__, "download_speed", download_speed) + _setter("download_speed", download_speed) if upload_speed is not None: - pulumi.set(__self__, "upload_speed", upload_speed) + _setter("upload_speed", upload_speed) @property @pulumi.getter(name="downloadSpeed") @@ -468,12 +629,27 @@ def __init__(__self__, *, :param pulumi.Input[str] latitude: Latitude of the location. :param pulumi.Input[str] longitude: Longitude of the location. """ + SiteLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + latitude=latitude, + longitude=longitude, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + latitude: Optional[pulumi.Input[str]] = None, + longitude: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if latitude is not None: - pulumi.set(__self__, "latitude", latitude) + _setter("latitude", latitude) if longitude is not None: - pulumi.set(__self__, "longitude", longitude) + _setter("longitude", longitude) @property @pulumi.getter @@ -521,10 +697,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] appliance_mode_support: Indicates whether appliance mode is supported. If enabled, traffic flow between a source and destination use the same Availability Zone for the VPC attachment for the lifetime of that flow. :param pulumi.Input[bool] ipv6_support: Indicates whether IPv6 is supported. """ + VpcAttachmentOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + appliance_mode_support=appliance_mode_support, + ipv6_support=ipv6_support, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + appliance_mode_support: Optional[pulumi.Input[bool]] = None, + ipv6_support: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if appliance_mode_support is None and 'applianceModeSupport' in kwargs: + appliance_mode_support = kwargs['applianceModeSupport'] + if ipv6_support is None and 'ipv6Support' in kwargs: + ipv6_support = kwargs['ipv6Support'] + if appliance_mode_support is not None: - pulumi.set(__self__, "appliance_mode_support", appliance_mode_support) + _setter("appliance_mode_support", appliance_mode_support) if ipv6_support is not None: - pulumi.set(__self__, "ipv6_support", ipv6_support) + _setter("ipv6_support", ipv6_support) @property @pulumi.getter(name="applianceModeSupport") @@ -566,13 +759,42 @@ def __init__(__self__, *, :param str condition_logic: Valid values include `and` or `or`. This is a mandatory parameter only if you have more than one condition. The `condition_logic` apply to all of the conditions for a rule, which also means nested conditions of `and` or `or` are not supported. Use `or` if you want to associate the attachment with the segment by either the segment name or attachment tag value, or by the chosen conditions. Use `and` if you want to associate the attachment with the segment by either the segment name or attachment tag value and by the chosen conditions. Detailed Below. :param str description: A user-defined description that further helps identify the rule. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "conditions", conditions) - pulumi.set(__self__, "rule_number", rule_number) + GetCoreNetworkPolicyDocumentAttachmentPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + conditions=conditions, + rule_number=rule_number, + condition_logic=condition_logic, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['GetCoreNetworkPolicyDocumentAttachmentPolicyActionArgs'] = None, + conditions: Optional[Sequence['GetCoreNetworkPolicyDocumentAttachmentPolicyConditionArgs']] = None, + rule_number: Optional[int] = None, + condition_logic: Optional[str] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if conditions is None: + raise TypeError("Missing 'conditions' argument") + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if rule_number is None: + raise TypeError("Missing 'rule_number' argument") + if condition_logic is None and 'conditionLogic' in kwargs: + condition_logic = kwargs['conditionLogic'] + + _setter("action", action) + _setter("conditions", conditions) + _setter("rule_number", rule_number) if condition_logic is not None: - pulumi.set(__self__, "condition_logic", condition_logic) + _setter("condition_logic", condition_logic) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -648,13 +870,38 @@ def __init__(__self__, *, :param str segment: Name of the `segment` to share as defined in the `segments` section. This is used only when the `association_method` is `constant`. :param str tag_value_of_key: Maps the attachment to the value of a known key. This is used with the `association_method` is `tag`. For example a `tag` of `stage = “test”`, will map to a segment named `test`. The value must exactly match the name of a segment. This allows you to have many segments, but use only a single rule without having to define multiple nearly identical conditions. This prevents creating many similar conditions that all use the same keys to map to segments. """ - pulumi.set(__self__, "association_method", association_method) + GetCoreNetworkPolicyDocumentAttachmentPolicyActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + association_method=association_method, + require_acceptance=require_acceptance, + segment=segment, + tag_value_of_key=tag_value_of_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + association_method: Optional[str] = None, + require_acceptance: Optional[bool] = None, + segment: Optional[str] = None, + tag_value_of_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if association_method is None and 'associationMethod' in kwargs: + association_method = kwargs['associationMethod'] + if association_method is None: + raise TypeError("Missing 'association_method' argument") + if require_acceptance is None and 'requireAcceptance' in kwargs: + require_acceptance = kwargs['requireAcceptance'] + if tag_value_of_key is None and 'tagValueOfKey' in kwargs: + tag_value_of_key = kwargs['tagValueOfKey'] + + _setter("association_method", association_method) if require_acceptance is not None: - pulumi.set(__self__, "require_acceptance", require_acceptance) + _setter("require_acceptance", require_acceptance) if segment is not None: - pulumi.set(__self__, "segment", segment) + _setter("segment", segment) if tag_value_of_key is not None: - pulumi.set(__self__, "tag_value_of_key", tag_value_of_key) + _setter("tag_value_of_key", tag_value_of_key) @property @pulumi.getter(name="associationMethod") @@ -718,13 +965,32 @@ def __init__(__self__, *, :param str operator: Valid values include: `equals`, `not-equals`, `contains`, `begins-with`. :param str value: string value """ - pulumi.set(__self__, "type", type) + GetCoreNetworkPolicyDocumentAttachmentPolicyConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + key=key, + operator=operator, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + key: Optional[str] = None, + operator: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if operator is not None: - pulumi.set(__self__, "operator", operator) + _setter("operator", operator) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -788,12 +1054,41 @@ def __init__(__self__, *, :param Sequence[str] inside_cidr_blocks: The Classless Inter-Domain Routing (CIDR) block range used to create tunnels for AWS Transit Gateway Connect. The format is standard AWS CIDR range (for example, `10.0.1.0/24`). You can optionally define the inside CIDR in the Core Network Edges section per Region. The minimum is a `/24` for IPv4 or `/64` for IPv6. You can provide multiple `/24` subnets or a larger CIDR range. If you define a larger CIDR range, new Core Network Edges will be automatically assigned `/24` and `/64` subnets from the larger CIDR. an Inside CIDR block is required for attaching Connect attachments to a Core Network Edge. :param bool vpn_ecmp_support: Indicates whether the core network forwards traffic over multiple equal-cost routes using VPN. The value can be either `true` or `false`. The default is `true`. """ - pulumi.set(__self__, "asn_ranges", asn_ranges) - pulumi.set(__self__, "edge_locations", edge_locations) + GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + asn_ranges=asn_ranges, + edge_locations=edge_locations, + inside_cidr_blocks=inside_cidr_blocks, + vpn_ecmp_support=vpn_ecmp_support, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + asn_ranges: Optional[Sequence[str]] = None, + edge_locations: Optional[Sequence['GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs']] = None, + inside_cidr_blocks: Optional[Sequence[str]] = None, + vpn_ecmp_support: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if asn_ranges is None and 'asnRanges' in kwargs: + asn_ranges = kwargs['asnRanges'] + if asn_ranges is None: + raise TypeError("Missing 'asn_ranges' argument") + if edge_locations is None and 'edgeLocations' in kwargs: + edge_locations = kwargs['edgeLocations'] + if edge_locations is None: + raise TypeError("Missing 'edge_locations' argument") + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if vpn_ecmp_support is None and 'vpnEcmpSupport' in kwargs: + vpn_ecmp_support = kwargs['vpnEcmpSupport'] + + _setter("asn_ranges", asn_ranges) + _setter("edge_locations", edge_locations) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) if vpn_ecmp_support is not None: - pulumi.set(__self__, "vpn_ecmp_support", vpn_ecmp_support) + _setter("vpn_ecmp_support", vpn_ecmp_support) @property @pulumi.getter(name="asnRanges") @@ -854,11 +1149,30 @@ def __init__(__self__, *, :param str asn: ASN of the Core Network Edge in an AWS Region. By default, the ASN will be a single integer automatically assigned from `asn_ranges` :param Sequence[str] inside_cidr_blocks: The local CIDR blocks for this Core Network Edge for AWS Transit Gateway Connect attachments. By default, this CIDR block will be one or more optional IPv4 and IPv6 CIDR prefixes auto-assigned from `inside_cidr_blocks`. """ - pulumi.set(__self__, "location", location) + GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + location=location, + asn=asn, + inside_cidr_blocks=inside_cidr_blocks, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + location: Optional[str] = None, + asn: Optional[str] = None, + inside_cidr_blocks: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if location is None: + raise TypeError("Missing 'location' argument") + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + + _setter("location", location) if asn is not None: - pulumi.set(__self__, "asn", asn) + _setter("asn", asn) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) @property @pulumi.getter @@ -913,19 +1227,54 @@ def __init__(__self__, *, :param bool isolate_attachments: This Boolean setting determines whether attachments on the same segment can communicate with each other. If set to `true`, the only routes available will be either shared routes through the share actions, which are attachments in other segments, or static routes. The default value is `false`. For example, you might have a segment dedicated to "development" that should never allow VPCs to talk to each other, even if they’re on the same segment. In this example, you would keep the default parameter of `false`. :param bool require_attachment_acceptance: This Boolean setting determines whether attachment requests are automatically approved or require acceptance. The default is `true`, indicating that attachment requests require acceptance. For example, you might use this setting to allow a "sandbox" segment to allow any attachment request so that a core network or attachment administrator does not need to review and approve attachment requests. In this example, `require_attachment_acceptance` is set to `false`. """ - pulumi.set(__self__, "name", name) + GetCoreNetworkPolicyDocumentSegmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + allow_filters=allow_filters, + deny_filters=deny_filters, + description=description, + edge_locations=edge_locations, + isolate_attachments=isolate_attachments, + require_attachment_acceptance=require_attachment_acceptance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + allow_filters: Optional[Sequence[str]] = None, + deny_filters: Optional[Sequence[str]] = None, + description: Optional[str] = None, + edge_locations: Optional[Sequence[str]] = None, + isolate_attachments: Optional[bool] = None, + require_attachment_acceptance: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if allow_filters is None and 'allowFilters' in kwargs: + allow_filters = kwargs['allowFilters'] + if deny_filters is None and 'denyFilters' in kwargs: + deny_filters = kwargs['denyFilters'] + if edge_locations is None and 'edgeLocations' in kwargs: + edge_locations = kwargs['edgeLocations'] + if isolate_attachments is None and 'isolateAttachments' in kwargs: + isolate_attachments = kwargs['isolateAttachments'] + if require_attachment_acceptance is None and 'requireAttachmentAcceptance' in kwargs: + require_attachment_acceptance = kwargs['requireAttachmentAcceptance'] + + _setter("name", name) if allow_filters is not None: - pulumi.set(__self__, "allow_filters", allow_filters) + _setter("allow_filters", allow_filters) if deny_filters is not None: - pulumi.set(__self__, "deny_filters", deny_filters) + _setter("deny_filters", deny_filters) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if edge_locations is not None: - pulumi.set(__self__, "edge_locations", edge_locations) + _setter("edge_locations", edge_locations) if isolate_attachments is not None: - pulumi.set(__self__, "isolate_attachments", isolate_attachments) + _setter("isolate_attachments", isolate_attachments) if require_attachment_acceptance is not None: - pulumi.set(__self__, "require_attachment_acceptance", require_attachment_acceptance) + _setter("require_attachment_acceptance", require_attachment_acceptance) @property @pulumi.getter @@ -1033,20 +1382,55 @@ def __init__(__self__, *, :param Sequence[str] share_with_excepts: A set subtraction of segments to not share with. :param Sequence[str] share_withs: A list of strings to share with. Must be a substring is all segments. Valid values include: `["*"]` or `[""]`. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "segment", segment) + GetCoreNetworkPolicyDocumentSegmentActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + segment=segment, + description=description, + destination_cidr_blocks=destination_cidr_blocks, + destinations=destinations, + mode=mode, + share_with_excepts=share_with_excepts, + share_withs=share_withs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + segment: Optional[str] = None, + description: Optional[str] = None, + destination_cidr_blocks: Optional[Sequence[str]] = None, + destinations: Optional[Sequence[str]] = None, + mode: Optional[str] = None, + share_with_excepts: Optional[Sequence[str]] = None, + share_withs: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if segment is None: + raise TypeError("Missing 'segment' argument") + if destination_cidr_blocks is None and 'destinationCidrBlocks' in kwargs: + destination_cidr_blocks = kwargs['destinationCidrBlocks'] + if share_with_excepts is None and 'shareWithExcepts' in kwargs: + share_with_excepts = kwargs['shareWithExcepts'] + if share_withs is None and 'shareWiths' in kwargs: + share_withs = kwargs['shareWiths'] + + _setter("action", action) + _setter("segment", segment) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if destination_cidr_blocks is not None: - pulumi.set(__self__, "destination_cidr_blocks", destination_cidr_blocks) + _setter("destination_cidr_blocks", destination_cidr_blocks) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if share_with_excepts is not None: - pulumi.set(__self__, "share_with_excepts", share_with_excepts) + _setter("share_with_excepts", share_with_excepts) if share_withs is not None: - pulumi.set(__self__, "share_withs", share_withs) + _setter("share_withs", share_withs) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/networkmanager/attachment_accepter.py b/sdk/python/pulumi_aws/networkmanager/attachment_accepter.py index 7a8be05b5ad..acca1e2d87c 100644 --- a/sdk/python/pulumi_aws/networkmanager/attachment_accepter.py +++ b/sdk/python/pulumi_aws/networkmanager/attachment_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AttachmentAccepterArgs', 'AttachmentAccepter'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] attachment_id: The ID of the attachment. :param pulumi.Input[str] attachment_type: The type of attachment. Valid values can be found in the [AWS Documentation](https://docs.aws.amazon.com/networkmanager/latest/APIReference/API_ListAttachments.html#API_ListAttachments_RequestSyntax) """ - pulumi.set(__self__, "attachment_id", attachment_id) - pulumi.set(__self__, "attachment_type", attachment_type) + AttachmentAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + attachment_type=attachment_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[pulumi.Input[str]] = None, + attachment_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if attachment_id is None: + raise TypeError("Missing 'attachment_id' argument") + if attachment_type is None and 'attachmentType' in kwargs: + attachment_type = kwargs['attachmentType'] + if attachment_type is None: + raise TypeError("Missing 'attachment_type' argument") + + _setter("attachment_id", attachment_id) + _setter("attachment_type", attachment_type) @property @pulumi.getter(name="attachmentId") @@ -75,26 +96,73 @@ def __init__(__self__, *, :param pulumi.Input[str] segment_name: The name of the segment attachment. :param pulumi.Input[str] state: The state of the attachment. """ + _AttachmentAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attachment_id=attachment_id, + attachment_policy_rule_number=attachment_policy_rule_number, + attachment_type=attachment_type, + core_network_arn=core_network_arn, + core_network_id=core_network_id, + edge_location=edge_location, + owner_account_id=owner_account_id, + resource_arn=resource_arn, + segment_name=segment_name, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attachment_id: Optional[pulumi.Input[str]] = None, + attachment_policy_rule_number: Optional[pulumi.Input[int]] = None, + attachment_type: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + edge_location: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + segment_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if attachment_policy_rule_number is None and 'attachmentPolicyRuleNumber' in kwargs: + attachment_policy_rule_number = kwargs['attachmentPolicyRuleNumber'] + if attachment_type is None and 'attachmentType' in kwargs: + attachment_type = kwargs['attachmentType'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if segment_name is None and 'segmentName' in kwargs: + segment_name = kwargs['segmentName'] + if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) if attachment_policy_rule_number is not None: - pulumi.set(__self__, "attachment_policy_rule_number", attachment_policy_rule_number) + _setter("attachment_policy_rule_number", attachment_policy_rule_number) if attachment_type is not None: - pulumi.set(__self__, "attachment_type", attachment_type) + _setter("attachment_type", attachment_type) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if core_network_id is not None: - pulumi.set(__self__, "core_network_id", core_network_id) + _setter("core_network_id", core_network_id) if edge_location is not None: - pulumi.set(__self__, "edge_location", edge_location) + _setter("edge_location", edge_location) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if segment_name is not None: - pulumi.set(__self__, "segment_name", segment_name) + _setter("segment_name", segment_name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="attachmentId") @@ -296,6 +364,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AttachmentAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/connect_attachment.py b/sdk/python/pulumi_aws/networkmanager/connect_attachment.py index 2346b910bbc..94dd401c6bc 100644 --- a/sdk/python/pulumi_aws/networkmanager/connect_attachment.py +++ b/sdk/python/pulumi_aws/networkmanager/connect_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,12 +31,45 @@ def __init__(__self__, *, :param pulumi.Input[str] transport_attachment_id: The ID of the attachment between the two connections. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "core_network_id", core_network_id) - pulumi.set(__self__, "edge_location", edge_location) - pulumi.set(__self__, "options", options) - pulumi.set(__self__, "transport_attachment_id", transport_attachment_id) + ConnectAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + core_network_id=core_network_id, + edge_location=edge_location, + options=options, + transport_attachment_id=transport_attachment_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + core_network_id: Optional[pulumi.Input[str]] = None, + edge_location: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input['ConnectAttachmentOptionsArgs']] = None, + transport_attachment_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if core_network_id is None: + raise TypeError("Missing 'core_network_id' argument") + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if edge_location is None: + raise TypeError("Missing 'edge_location' argument") + if options is None: + raise TypeError("Missing 'options' argument") + if transport_attachment_id is None and 'transportAttachmentId' in kwargs: + transport_attachment_id = kwargs['transportAttachmentId'] + if transport_attachment_id is None: + raise TypeError("Missing 'transport_attachment_id' argument") + + _setter("core_network_id", core_network_id) + _setter("edge_location", edge_location) + _setter("options", options) + _setter("transport_attachment_id", transport_attachment_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="coreNetworkId") @@ -138,39 +171,100 @@ def __init__(__self__, *, :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] transport_attachment_id: The ID of the attachment between the two connections. """ + _ConnectAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attachment_id=attachment_id, + attachment_policy_rule_number=attachment_policy_rule_number, + attachment_type=attachment_type, + core_network_arn=core_network_arn, + core_network_id=core_network_id, + edge_location=edge_location, + options=options, + owner_account_id=owner_account_id, + resource_arn=resource_arn, + segment_name=segment_name, + state=state, + tags=tags, + tags_all=tags_all, + transport_attachment_id=transport_attachment_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attachment_id: Optional[pulumi.Input[str]] = None, + attachment_policy_rule_number: Optional[pulumi.Input[int]] = None, + attachment_type: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + edge_location: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input['ConnectAttachmentOptionsArgs']] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + segment_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transport_attachment_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_id is None and 'attachmentId' in kwargs: + attachment_id = kwargs['attachmentId'] + if attachment_policy_rule_number is None and 'attachmentPolicyRuleNumber' in kwargs: + attachment_policy_rule_number = kwargs['attachmentPolicyRuleNumber'] + if attachment_type is None and 'attachmentType' in kwargs: + attachment_type = kwargs['attachmentType'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if segment_name is None and 'segmentName' in kwargs: + segment_name = kwargs['segmentName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transport_attachment_id is None and 'transportAttachmentId' in kwargs: + transport_attachment_id = kwargs['transportAttachmentId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attachment_id is not None: - pulumi.set(__self__, "attachment_id", attachment_id) + _setter("attachment_id", attachment_id) if attachment_policy_rule_number is not None: - pulumi.set(__self__, "attachment_policy_rule_number", attachment_policy_rule_number) + _setter("attachment_policy_rule_number", attachment_policy_rule_number) if attachment_type is not None: - pulumi.set(__self__, "attachment_type", attachment_type) + _setter("attachment_type", attachment_type) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if core_network_id is not None: - pulumi.set(__self__, "core_network_id", core_network_id) + _setter("core_network_id", core_network_id) if edge_location is not None: - pulumi.set(__self__, "edge_location", edge_location) + _setter("edge_location", edge_location) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if segment_name is not None: - pulumi.set(__self__, "segment_name", segment_name) + _setter("segment_name", segment_name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transport_attachment_id is not None: - pulumi.set(__self__, "transport_attachment_id", transport_attachment_id) + _setter("transport_attachment_id", transport_attachment_id) @property @pulumi.getter @@ -418,6 +512,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -443,6 +541,7 @@ def _internal_init(__self__, if edge_location is None and not opts.urn: raise TypeError("Missing required property 'edge_location'") __props__.__dict__["edge_location"] = edge_location + options = _utilities.configure(options, ConnectAttachmentOptionsArgs, True) if options is None and not opts.urn: raise TypeError("Missing required property 'options'") __props__.__dict__["options"] = options diff --git a/sdk/python/pulumi_aws/networkmanager/connect_peer.py b/sdk/python/pulumi_aws/networkmanager/connect_peer.py index 28dae42e552..7b13af4a16e 100644 --- a/sdk/python/pulumi_aws/networkmanager/connect_peer.py +++ b/sdk/python/pulumi_aws/networkmanager/connect_peer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,15 +33,52 @@ def __init__(__self__, *, :param pulumi.Input[str] core_network_address: A Connect peer core network address. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "connect_attachment_id", connect_attachment_id) - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) - pulumi.set(__self__, "peer_address", peer_address) + ConnectPeerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connect_attachment_id=connect_attachment_id, + inside_cidr_blocks=inside_cidr_blocks, + peer_address=peer_address, + bgp_options=bgp_options, + core_network_address=core_network_address, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connect_attachment_id: Optional[pulumi.Input[str]] = None, + inside_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + peer_address: Optional[pulumi.Input[str]] = None, + bgp_options: Optional[pulumi.Input['ConnectPeerBgpOptionsArgs']] = None, + core_network_address: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connect_attachment_id is None and 'connectAttachmentId' in kwargs: + connect_attachment_id = kwargs['connectAttachmentId'] + if connect_attachment_id is None: + raise TypeError("Missing 'connect_attachment_id' argument") + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if inside_cidr_blocks is None: + raise TypeError("Missing 'inside_cidr_blocks' argument") + if peer_address is None and 'peerAddress' in kwargs: + peer_address = kwargs['peerAddress'] + if peer_address is None: + raise TypeError("Missing 'peer_address' argument") + if bgp_options is None and 'bgpOptions' in kwargs: + bgp_options = kwargs['bgpOptions'] + if core_network_address is None and 'coreNetworkAddress' in kwargs: + core_network_address = kwargs['coreNetworkAddress'] + + _setter("connect_attachment_id", connect_attachment_id) + _setter("inside_cidr_blocks", inside_cidr_blocks) + _setter("peer_address", peer_address) if bgp_options is not None: - pulumi.set(__self__, "bgp_options", bgp_options) + _setter("bgp_options", bgp_options) if core_network_address is not None: - pulumi.set(__self__, "core_network_address", core_network_address) + _setter("core_network_address", core_network_address) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="connectAttachmentId") @@ -152,37 +189,94 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. 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. """ + _ConnectPeerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bgp_options=bgp_options, + configurations=configurations, + connect_attachment_id=connect_attachment_id, + connect_peer_id=connect_peer_id, + core_network_address=core_network_address, + core_network_id=core_network_id, + created_at=created_at, + edge_location=edge_location, + inside_cidr_blocks=inside_cidr_blocks, + peer_address=peer_address, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bgp_options: Optional[pulumi.Input['ConnectPeerBgpOptionsArgs']] = None, + configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectPeerConfigurationArgs']]]] = None, + connect_attachment_id: Optional[pulumi.Input[str]] = None, + connect_peer_id: Optional[pulumi.Input[str]] = None, + core_network_address: Optional[pulumi.Input[str]] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + edge_location: Optional[pulumi.Input[str]] = None, + inside_cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + peer_address: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bgp_options is None and 'bgpOptions' in kwargs: + bgp_options = kwargs['bgpOptions'] + if connect_attachment_id is None and 'connectAttachmentId' in kwargs: + connect_attachment_id = kwargs['connectAttachmentId'] + if connect_peer_id is None and 'connectPeerId' in kwargs: + connect_peer_id = kwargs['connectPeerId'] + if core_network_address is None and 'coreNetworkAddress' in kwargs: + core_network_address = kwargs['coreNetworkAddress'] + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if peer_address is None and 'peerAddress' in kwargs: + peer_address = kwargs['peerAddress'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bgp_options is not None: - pulumi.set(__self__, "bgp_options", bgp_options) + _setter("bgp_options", bgp_options) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if connect_attachment_id is not None: - pulumi.set(__self__, "connect_attachment_id", connect_attachment_id) + _setter("connect_attachment_id", connect_attachment_id) if connect_peer_id is not None: - pulumi.set(__self__, "connect_peer_id", connect_peer_id) + _setter("connect_peer_id", connect_peer_id) if core_network_address is not None: - pulumi.set(__self__, "core_network_address", core_network_address) + _setter("core_network_address", core_network_address) if core_network_id is not None: - pulumi.set(__self__, "core_network_id", core_network_id) + _setter("core_network_id", core_network_id) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if edge_location is not None: - pulumi.set(__self__, "edge_location", edge_location) + _setter("edge_location", edge_location) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) if peer_address is not None: - pulumi.set(__self__, "peer_address", peer_address) + _setter("peer_address", peer_address) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -417,6 +511,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectPeerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -437,6 +535,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ConnectPeerArgs.__new__(ConnectPeerArgs) + bgp_options = _utilities.configure(bgp_options, ConnectPeerBgpOptionsArgs, True) __props__.__dict__["bgp_options"] = bgp_options if connect_attachment_id is None and not opts.urn: raise TypeError("Missing required property 'connect_attachment_id'") diff --git a/sdk/python/pulumi_aws/networkmanager/connection.py b/sdk/python/pulumi_aws/networkmanager/connection.py index 18589b6cd58..034294b13bf 100644 --- a/sdk/python/pulumi_aws/networkmanager/connection.py +++ b/sdk/python/pulumi_aws/networkmanager/connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConnectionArgs', 'Connection'] @@ -31,17 +31,56 @@ def __init__(__self__, *, :param pulumi.Input[str] link_id: The ID of the link for the first device. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the connection. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "connected_device_id", connected_device_id) - pulumi.set(__self__, "device_id", device_id) - pulumi.set(__self__, "global_network_id", global_network_id) + ConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connected_device_id=connected_device_id, + device_id=device_id, + global_network_id=global_network_id, + connected_link_id=connected_link_id, + description=description, + link_id=link_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connected_device_id: Optional[pulumi.Input[str]] = None, + device_id: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + connected_link_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + link_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connected_device_id is None and 'connectedDeviceId' in kwargs: + connected_device_id = kwargs['connectedDeviceId'] + if connected_device_id is None: + raise TypeError("Missing 'connected_device_id' argument") + if device_id is None and 'deviceId' in kwargs: + device_id = kwargs['deviceId'] + if device_id is None: + raise TypeError("Missing 'device_id' argument") + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if global_network_id is None: + raise TypeError("Missing 'global_network_id' argument") + if connected_link_id is None and 'connectedLinkId' in kwargs: + connected_link_id = kwargs['connectedLinkId'] + if link_id is None and 'linkId' in kwargs: + link_id = kwargs['linkId'] + + _setter("connected_device_id", connected_device_id) + _setter("device_id", device_id) + _setter("global_network_id", global_network_id) if connected_link_id is not None: - pulumi.set(__self__, "connected_link_id", connected_link_id) + _setter("connected_link_id", connected_link_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if link_id is not None: - pulumi.set(__self__, "link_id", link_id) + _setter("link_id", link_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="connectedDeviceId") @@ -152,27 +191,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the connection. 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. """ + _ConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + connected_device_id=connected_device_id, + connected_link_id=connected_link_id, + description=description, + device_id=device_id, + global_network_id=global_network_id, + link_id=link_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + connected_device_id: Optional[pulumi.Input[str]] = None, + connected_link_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + device_id: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + link_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connected_device_id is None and 'connectedDeviceId' in kwargs: + connected_device_id = kwargs['connectedDeviceId'] + if connected_link_id is None and 'connectedLinkId' in kwargs: + connected_link_id = kwargs['connectedLinkId'] + if device_id is None and 'deviceId' in kwargs: + device_id = kwargs['deviceId'] + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if link_id is None and 'linkId' in kwargs: + link_id = kwargs['linkId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if connected_device_id is not None: - pulumi.set(__self__, "connected_device_id", connected_device_id) + _setter("connected_device_id", connected_device_id) if connected_link_id is not None: - pulumi.set(__self__, "connected_link_id", connected_link_id) + _setter("connected_link_id", connected_link_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if device_id is not None: - pulumi.set(__self__, "device_id", device_id) + _setter("device_id", device_id) if global_network_id is not None: - pulumi.set(__self__, "global_network_id", global_network_id) + _setter("global_network_id", global_network_id) if link_id is not None: - pulumi.set(__self__, "link_id", link_id) + _setter("link_id", link_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -373,6 +451,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/core_network.py b/sdk/python/pulumi_aws/networkmanager/core_network.py index ef53453700e..592d093690b 100644 --- a/sdk/python/pulumi_aws/networkmanager/core_network.py +++ b/sdk/python/pulumi_aws/networkmanager/core_network.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,22 +37,57 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the Core Network. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the Core Network. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "global_network_id", global_network_id) + CoreNetworkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_network_id=global_network_id, + base_policy_document=base_policy_document, + base_policy_region=base_policy_region, + base_policy_regions=base_policy_regions, + create_base_policy=create_base_policy, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_network_id: Optional[pulumi.Input[str]] = None, + base_policy_document: Optional[pulumi.Input[str]] = None, + base_policy_region: Optional[pulumi.Input[str]] = None, + base_policy_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + create_base_policy: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if global_network_id is None: + raise TypeError("Missing 'global_network_id' argument") + if base_policy_document is None and 'basePolicyDocument' in kwargs: + base_policy_document = kwargs['basePolicyDocument'] + if base_policy_region is None and 'basePolicyRegion' in kwargs: + base_policy_region = kwargs['basePolicyRegion'] + if base_policy_regions is None and 'basePolicyRegions' in kwargs: + base_policy_regions = kwargs['basePolicyRegions'] + if create_base_policy is None and 'createBasePolicy' in kwargs: + create_base_policy = kwargs['createBasePolicy'] + + _setter("global_network_id", global_network_id) if base_policy_document is not None: - pulumi.set(__self__, "base_policy_document", base_policy_document) + _setter("base_policy_document", base_policy_document) if base_policy_region is not None: warnings.warn("""Use the base_policy_regions argument instead. This argument will be removed in the next major version of the provider.""", DeprecationWarning) pulumi.log.warn("""base_policy_region is deprecated: Use the base_policy_regions argument instead. This argument will be removed in the next major version of the provider.""") if base_policy_region is not None: - pulumi.set(__self__, "base_policy_region", base_policy_region) + _setter("base_policy_region", base_policy_region) if base_policy_regions is not None: - pulumi.set(__self__, "base_policy_regions", base_policy_regions) + _setter("base_policy_regions", base_policy_regions) if create_base_policy is not None: - pulumi.set(__self__, "create_base_policy", create_base_policy) + _setter("create_base_policy", create_base_policy) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="globalNetworkId") @@ -182,38 +217,87 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the Core Network. 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. """ + _CoreNetworkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + base_policy_document=base_policy_document, + base_policy_region=base_policy_region, + base_policy_regions=base_policy_regions, + create_base_policy=create_base_policy, + created_at=created_at, + description=description, + edges=edges, + global_network_id=global_network_id, + segments=segments, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + base_policy_document: Optional[pulumi.Input[str]] = None, + base_policy_region: Optional[pulumi.Input[str]] = None, + base_policy_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + create_base_policy: Optional[pulumi.Input[bool]] = None, + created_at: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + edges: Optional[pulumi.Input[Sequence[pulumi.Input['CoreNetworkEdgeArgs']]]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + segments: Optional[pulumi.Input[Sequence[pulumi.Input['CoreNetworkSegmentArgs']]]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_policy_document is None and 'basePolicyDocument' in kwargs: + base_policy_document = kwargs['basePolicyDocument'] + if base_policy_region is None and 'basePolicyRegion' in kwargs: + base_policy_region = kwargs['basePolicyRegion'] + if base_policy_regions is None and 'basePolicyRegions' in kwargs: + base_policy_regions = kwargs['basePolicyRegions'] + if create_base_policy is None and 'createBasePolicy' in kwargs: + create_base_policy = kwargs['createBasePolicy'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if base_policy_document is not None: - pulumi.set(__self__, "base_policy_document", base_policy_document) + _setter("base_policy_document", base_policy_document) if base_policy_region is not None: warnings.warn("""Use the base_policy_regions argument instead. This argument will be removed in the next major version of the provider.""", DeprecationWarning) pulumi.log.warn("""base_policy_region is deprecated: Use the base_policy_regions argument instead. This argument will be removed in the next major version of the provider.""") if base_policy_region is not None: - pulumi.set(__self__, "base_policy_region", base_policy_region) + _setter("base_policy_region", base_policy_region) if base_policy_regions is not None: - pulumi.set(__self__, "base_policy_regions", base_policy_regions) + _setter("base_policy_regions", base_policy_regions) if create_base_policy is not None: - pulumi.set(__self__, "create_base_policy", create_base_policy) + _setter("create_base_policy", create_base_policy) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if edges is not None: - pulumi.set(__self__, "edges", edges) + _setter("edges", edges) if global_network_id is not None: - pulumi.set(__self__, "global_network_id", global_network_id) + _setter("global_network_id", global_network_id) if segments is not None: - pulumi.set(__self__, "segments", segments) + _setter("segments", segments) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -965,6 +1049,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CoreNetworkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -987,9 +1075,6 @@ def _internal_init(__self__, __props__ = CoreNetworkArgs.__new__(CoreNetworkArgs) __props__.__dict__["base_policy_document"] = base_policy_document - if base_policy_region is not None and not opts.urn: - warnings.warn("""Use the base_policy_regions argument instead. This argument will be removed in the next major version of the provider.""", DeprecationWarning) - pulumi.log.warn("""base_policy_region is deprecated: Use the base_policy_regions argument instead. This argument will be removed in the next major version of the provider.""") __props__.__dict__["base_policy_region"] = base_policy_region __props__.__dict__["base_policy_regions"] = base_policy_regions __props__.__dict__["create_base_policy"] = create_base_policy diff --git a/sdk/python/pulumi_aws/networkmanager/core_network_policy_attachment.py b/sdk/python/pulumi_aws/networkmanager/core_network_policy_attachment.py index 734edf413d1..590b616e4de 100644 --- a/sdk/python/pulumi_aws/networkmanager/core_network_policy_attachment.py +++ b/sdk/python/pulumi_aws/networkmanager/core_network_policy_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CoreNetworkPolicyAttachmentArgs', 'CoreNetworkPolicyAttachment'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] core_network_id: The ID of the core network that a policy will be attached to and made `LIVE`. :param pulumi.Input[str] policy_document: Policy document for creating a core network. Note that updating this argument will result in the new policy document version being set as the `LATEST` and `LIVE` policy document. Refer to the [Core network policies documentation](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-policy-change-sets.html) for more information. """ - pulumi.set(__self__, "core_network_id", core_network_id) - pulumi.set(__self__, "policy_document", policy_document) + CoreNetworkPolicyAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + core_network_id=core_network_id, + policy_document=policy_document, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + core_network_id: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if core_network_id is None: + raise TypeError("Missing 'core_network_id' argument") + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if policy_document is None: + raise TypeError("Missing 'policy_document' argument") + + _setter("core_network_id", core_network_id) + _setter("policy_document", policy_document) @property @pulumi.getter(name="coreNetworkId") @@ -61,12 +82,31 @@ def __init__(__self__, *, :param pulumi.Input[str] policy_document: Policy document for creating a core network. Note that updating this argument will result in the new policy document version being set as the `LATEST` and `LIVE` policy document. Refer to the [Core network policies documentation](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-policy-change-sets.html) for more information. :param pulumi.Input[str] state: Current state of a core network. """ + _CoreNetworkPolicyAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + core_network_id=core_network_id, + policy_document=policy_document, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + core_network_id: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if core_network_id is not None: - pulumi.set(__self__, "core_network_id", core_network_id) + _setter("core_network_id", core_network_id) if policy_document is not None: - pulumi.set(__self__, "policy_document", policy_document) + _setter("policy_document", policy_document) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="coreNetworkId") @@ -636,6 +676,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CoreNetworkPolicyAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/customer_gateway_association.py b/sdk/python/pulumi_aws/networkmanager/customer_gateway_association.py index c0210b16e13..737ea5c3064 100644 --- a/sdk/python/pulumi_aws/networkmanager/customer_gateway_association.py +++ b/sdk/python/pulumi_aws/networkmanager/customer_gateway_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CustomerGatewayAssociationArgs', 'CustomerGatewayAssociation'] @@ -25,11 +25,42 @@ def __init__(__self__, *, :param pulumi.Input[str] global_network_id: The ID of the global network. :param pulumi.Input[str] link_id: The ID of the link. """ - pulumi.set(__self__, "customer_gateway_arn", customer_gateway_arn) - pulumi.set(__self__, "device_id", device_id) - pulumi.set(__self__, "global_network_id", global_network_id) + CustomerGatewayAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_gateway_arn=customer_gateway_arn, + device_id=device_id, + global_network_id=global_network_id, + link_id=link_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_gateway_arn: Optional[pulumi.Input[str]] = None, + device_id: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + link_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_gateway_arn is None and 'customerGatewayArn' in kwargs: + customer_gateway_arn = kwargs['customerGatewayArn'] + if customer_gateway_arn is None: + raise TypeError("Missing 'customer_gateway_arn' argument") + if device_id is None and 'deviceId' in kwargs: + device_id = kwargs['deviceId'] + if device_id is None: + raise TypeError("Missing 'device_id' argument") + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if global_network_id is None: + raise TypeError("Missing 'global_network_id' argument") + if link_id is None and 'linkId' in kwargs: + link_id = kwargs['linkId'] + + _setter("customer_gateway_arn", customer_gateway_arn) + _setter("device_id", device_id) + _setter("global_network_id", global_network_id) if link_id is not None: - pulumi.set(__self__, "link_id", link_id) + _setter("link_id", link_id) @property @pulumi.getter(name="customerGatewayArn") @@ -94,14 +125,39 @@ def __init__(__self__, *, :param pulumi.Input[str] global_network_id: The ID of the global network. :param pulumi.Input[str] link_id: The ID of the link. """ + _CustomerGatewayAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_gateway_arn=customer_gateway_arn, + device_id=device_id, + global_network_id=global_network_id, + link_id=link_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_gateway_arn: Optional[pulumi.Input[str]] = None, + device_id: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + link_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_gateway_arn is None and 'customerGatewayArn' in kwargs: + customer_gateway_arn = kwargs['customerGatewayArn'] + if device_id is None and 'deviceId' in kwargs: + device_id = kwargs['deviceId'] + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if link_id is None and 'linkId' in kwargs: + link_id = kwargs['linkId'] + if customer_gateway_arn is not None: - pulumi.set(__self__, "customer_gateway_arn", customer_gateway_arn) + _setter("customer_gateway_arn", customer_gateway_arn) if device_id is not None: - pulumi.set(__self__, "device_id", device_id) + _setter("device_id", device_id) if global_network_id is not None: - pulumi.set(__self__, "global_network_id", global_network_id) + _setter("global_network_id", global_network_id) if link_id is not None: - pulumi.set(__self__, "link_id", link_id) + _setter("link_id", link_id) @property @pulumi.getter(name="customerGatewayArn") @@ -273,6 +329,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomerGatewayAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/device.py b/sdk/python/pulumi_aws/networkmanager/device.py index e87a223e361..5b9107d12ba 100644 --- a/sdk/python/pulumi_aws/networkmanager/device.py +++ b/sdk/python/pulumi_aws/networkmanager/device.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,25 +39,64 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of device. :param pulumi.Input[str] vendor: The vendor of the device. """ - pulumi.set(__self__, "global_network_id", global_network_id) + DeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_network_id=global_network_id, + aws_location=aws_location, + description=description, + location=location, + model=model, + serial_number=serial_number, + site_id=site_id, + tags=tags, + type=type, + vendor=vendor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_network_id: Optional[pulumi.Input[str]] = None, + aws_location: Optional[pulumi.Input['DeviceAwsLocationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input['DeviceLocationArgs']] = None, + model: Optional[pulumi.Input[str]] = None, + serial_number: Optional[pulumi.Input[str]] = None, + site_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + vendor: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if global_network_id is None: + raise TypeError("Missing 'global_network_id' argument") + if aws_location is None and 'awsLocation' in kwargs: + aws_location = kwargs['awsLocation'] + if serial_number is None and 'serialNumber' in kwargs: + serial_number = kwargs['serialNumber'] + if site_id is None and 'siteId' in kwargs: + site_id = kwargs['siteId'] + + _setter("global_network_id", global_network_id) if aws_location is not None: - pulumi.set(__self__, "aws_location", aws_location) + _setter("aws_location", aws_location) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if model is not None: - pulumi.set(__self__, "model", model) + _setter("model", model) if serial_number is not None: - pulumi.set(__self__, "serial_number", serial_number) + _setter("serial_number", serial_number) if site_id is not None: - pulumi.set(__self__, "site_id", site_id) + _setter("site_id", site_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if vendor is not None: - pulumi.set(__self__, "vendor", vendor) + _setter("vendor", vendor) @property @pulumi.getter(name="globalNetworkId") @@ -210,33 +249,76 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of device. :param pulumi.Input[str] vendor: The vendor of the device. """ + _DeviceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_location=aws_location, + description=description, + global_network_id=global_network_id, + location=location, + model=model, + serial_number=serial_number, + site_id=site_id, + tags=tags, + tags_all=tags_all, + type=type, + vendor=vendor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_location: Optional[pulumi.Input['DeviceAwsLocationArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input['DeviceLocationArgs']] = None, + model: Optional[pulumi.Input[str]] = None, + serial_number: Optional[pulumi.Input[str]] = None, + site_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + vendor: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_location is None and 'awsLocation' in kwargs: + aws_location = kwargs['awsLocation'] + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if serial_number is None and 'serialNumber' in kwargs: + serial_number = kwargs['serialNumber'] + if site_id is None and 'siteId' in kwargs: + site_id = kwargs['siteId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_location is not None: - pulumi.set(__self__, "aws_location", aws_location) + _setter("aws_location", aws_location) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if global_network_id is not None: - pulumi.set(__self__, "global_network_id", global_network_id) + _setter("global_network_id", global_network_id) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if model is not None: - pulumi.set(__self__, "model", model) + _setter("model", model) if serial_number is not None: - pulumi.set(__self__, "serial_number", serial_number) + _setter("serial_number", serial_number) if site_id is not None: - pulumi.set(__self__, "site_id", site_id) + _setter("site_id", site_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if vendor is not None: - pulumi.set(__self__, "vendor", vendor) + _setter("vendor", vendor) @property @pulumi.getter @@ -477,6 +559,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeviceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -501,11 +587,13 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DeviceArgs.__new__(DeviceArgs) + aws_location = _utilities.configure(aws_location, DeviceAwsLocationArgs, True) __props__.__dict__["aws_location"] = aws_location __props__.__dict__["description"] = description if global_network_id is None and not opts.urn: raise TypeError("Missing required property 'global_network_id'") __props__.__dict__["global_network_id"] = global_network_id + location = _utilities.configure(location, DeviceLocationArgs, True) __props__.__dict__["location"] = location __props__.__dict__["model"] = model __props__.__dict__["serial_number"] = serial_number diff --git a/sdk/python/pulumi_aws/networkmanager/get_connection.py b/sdk/python/pulumi_aws/networkmanager/get_connection.py index e36b32018fe..8c0be987189 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_connection.py +++ b/sdk/python/pulumi_aws/networkmanager/get_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/networkmanager/get_connections.py b/sdk/python/pulumi_aws/networkmanager/get_connections.py index 25706c025be..13567c27725 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_connections.py +++ b/sdk/python/pulumi_aws/networkmanager/get_connections.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/networkmanager/get_core_network_policy_document.py b/sdk/python/pulumi_aws/networkmanager/get_core_network_policy_document.py index 5e27da36eb8..f726fb23de0 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_core_network_policy_document.py +++ b/sdk/python/pulumi_aws/networkmanager/get_core_network_policy_document.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/networkmanager/get_device.py b/sdk/python/pulumi_aws/networkmanager/get_device.py index f812398cdb4..15e9e958f31 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_device.py +++ b/sdk/python/pulumi_aws/networkmanager/get_device.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/networkmanager/get_devices.py b/sdk/python/pulumi_aws/networkmanager/get_devices.py index ddd4e72c669..22281e5af65 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_devices.py +++ b/sdk/python/pulumi_aws/networkmanager/get_devices.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/networkmanager/get_global_network.py b/sdk/python/pulumi_aws/networkmanager/get_global_network.py index b34993e3083..b454fcf3d8d 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_global_network.py +++ b/sdk/python/pulumi_aws/networkmanager/get_global_network.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/networkmanager/get_global_networks.py b/sdk/python/pulumi_aws/networkmanager/get_global_networks.py index c984433edac..e6a755efe26 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_global_networks.py +++ b/sdk/python/pulumi_aws/networkmanager/get_global_networks.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/networkmanager/get_link.py b/sdk/python/pulumi_aws/networkmanager/get_link.py index 3cfc8eab7c2..1989c436a4c 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_link.py +++ b/sdk/python/pulumi_aws/networkmanager/get_link.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/networkmanager/get_links.py b/sdk/python/pulumi_aws/networkmanager/get_links.py index 1a6e997cbd3..39b43e6b0ec 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_links.py +++ b/sdk/python/pulumi_aws/networkmanager/get_links.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/networkmanager/get_site.py b/sdk/python/pulumi_aws/networkmanager/get_site.py index 20a8df456e9..3a8098846e9 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_site.py +++ b/sdk/python/pulumi_aws/networkmanager/get_site.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/networkmanager/get_sites.py b/sdk/python/pulumi_aws/networkmanager/get_sites.py index 59a972420c3..fd1f6569e5b 100644 --- a/sdk/python/pulumi_aws/networkmanager/get_sites.py +++ b/sdk/python/pulumi_aws/networkmanager/get_sites.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/networkmanager/global_network.py b/sdk/python/pulumi_aws/networkmanager/global_network.py index 9ed0312cea0..a90aee9dd40 100644 --- a/sdk/python/pulumi_aws/networkmanager/global_network.py +++ b/sdk/python/pulumi_aws/networkmanager/global_network.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GlobalNetworkArgs', 'GlobalNetwork'] @@ -21,10 +21,23 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the Global Network. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the Global Network. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + GlobalNetworkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -65,17 +78,36 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the Global Network. 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. """ + _GlobalNetworkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -198,6 +230,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GlobalNetworkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/link.py b/sdk/python/pulumi_aws/networkmanager/link.py index 5d4ab3b7972..94bdc8edaf2 100644 --- a/sdk/python/pulumi_aws/networkmanager/link.py +++ b/sdk/python/pulumi_aws/networkmanager/link.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,17 +33,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the link. 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] type: The type of the link. """ - pulumi.set(__self__, "bandwidth", bandwidth) - pulumi.set(__self__, "global_network_id", global_network_id) - pulumi.set(__self__, "site_id", site_id) + LinkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bandwidth=bandwidth, + global_network_id=global_network_id, + site_id=site_id, + description=description, + provider_name=provider_name, + tags=tags, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bandwidth: Optional[pulumi.Input['LinkBandwidthArgs']] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + site_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bandwidth is None: + raise TypeError("Missing 'bandwidth' argument") + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if global_network_id is None: + raise TypeError("Missing 'global_network_id' argument") + if site_id is None and 'siteId' in kwargs: + site_id = kwargs['siteId'] + if site_id is None: + raise TypeError("Missing 'site_id' argument") + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + + _setter("bandwidth", bandwidth) + _setter("global_network_id", global_network_id) + _setter("site_id", site_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -154,27 +189,62 @@ def __init__(__self__, *, :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] type: The type of the link. """ + _LinkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bandwidth=bandwidth, + description=description, + global_network_id=global_network_id, + provider_name=provider_name, + site_id=site_id, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bandwidth: Optional[pulumi.Input['LinkBandwidthArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + site_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if site_id is None and 'siteId' in kwargs: + site_id = kwargs['siteId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bandwidth is not None: - pulumi.set(__self__, "bandwidth", bandwidth) + _setter("bandwidth", bandwidth) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if global_network_id is not None: - pulumi.set(__self__, "global_network_id", global_network_id) + _setter("global_network_id", global_network_id) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if site_id is not None: - pulumi.set(__self__, "site_id", site_id) + _setter("site_id", site_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -381,6 +451,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LinkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -402,6 +476,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = LinkArgs.__new__(LinkArgs) + bandwidth = _utilities.configure(bandwidth, LinkBandwidthArgs, True) if bandwidth is None and not opts.urn: raise TypeError("Missing required property 'bandwidth'") __props__.__dict__["bandwidth"] = bandwidth diff --git a/sdk/python/pulumi_aws/networkmanager/link_association.py b/sdk/python/pulumi_aws/networkmanager/link_association.py index e11316683c0..95d0b6db3d6 100644 --- a/sdk/python/pulumi_aws/networkmanager/link_association.py +++ b/sdk/python/pulumi_aws/networkmanager/link_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LinkAssociationArgs', 'LinkAssociation'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] global_network_id: The ID of the global network. :param pulumi.Input[str] link_id: The ID of the link. """ - pulumi.set(__self__, "device_id", device_id) - pulumi.set(__self__, "global_network_id", global_network_id) - pulumi.set(__self__, "link_id", link_id) + LinkAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_id=device_id, + global_network_id=global_network_id, + link_id=link_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_id: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + link_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_id is None and 'deviceId' in kwargs: + device_id = kwargs['deviceId'] + if device_id is None: + raise TypeError("Missing 'device_id' argument") + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if global_network_id is None: + raise TypeError("Missing 'global_network_id' argument") + if link_id is None and 'linkId' in kwargs: + link_id = kwargs['linkId'] + if link_id is None: + raise TypeError("Missing 'link_id' argument") + + _setter("device_id", device_id) + _setter("global_network_id", global_network_id) + _setter("link_id", link_id) @property @pulumi.getter(name="deviceId") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] global_network_id: The ID of the global network. :param pulumi.Input[str] link_id: The ID of the link. """ + _LinkAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_id=device_id, + global_network_id=global_network_id, + link_id=link_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_id: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + link_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_id is None and 'deviceId' in kwargs: + device_id = kwargs['deviceId'] + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if link_id is None and 'linkId' in kwargs: + link_id = kwargs['linkId'] + if device_id is not None: - pulumi.set(__self__, "device_id", device_id) + _setter("device_id", device_id) if global_network_id is not None: - pulumi.set(__self__, "global_network_id", global_network_id) + _setter("global_network_id", global_network_id) if link_id is not None: - pulumi.set(__self__, "link_id", link_id) + _setter("link_id", link_id) @property @pulumi.getter(name="deviceId") @@ -201,6 +249,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LinkAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/outputs.py b/sdk/python/pulumi_aws/networkmanager/outputs.py index 1b344842dcc..0bf821c5dfe 100644 --- a/sdk/python/pulumi_aws/networkmanager/outputs.py +++ b/sdk/python/pulumi_aws/networkmanager/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -39,8 +39,19 @@ class ConnectAttachmentOptions(dict): def __init__(__self__, *, protocol: Optional[str] = None): + ConnectAttachmentOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) @property @pulumi.getter @@ -69,8 +80,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, peer_asn: Optional[int] = None): + ConnectPeerBgpOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + peer_asn=peer_asn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + peer_asn: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if peer_asn is None and 'peerAsn' in kwargs: + peer_asn = kwargs['peerAsn'] + if peer_asn is not None: - pulumi.set(__self__, "peer_asn", peer_asn) + _setter("peer_asn", peer_asn) @property @pulumi.getter(name="peerAsn") @@ -116,16 +140,43 @@ def __init__(__self__, *, The following arguments are optional: """ + ConnectPeerConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bgp_configurations=bgp_configurations, + core_network_address=core_network_address, + inside_cidr_blocks=inside_cidr_blocks, + peer_address=peer_address, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bgp_configurations: Optional[Sequence['outputs.ConnectPeerConfigurationBgpConfiguration']] = None, + core_network_address: Optional[str] = None, + inside_cidr_blocks: Optional[Sequence[str]] = None, + peer_address: Optional[str] = None, + protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bgp_configurations is None and 'bgpConfigurations' in kwargs: + bgp_configurations = kwargs['bgpConfigurations'] + if core_network_address is None and 'coreNetworkAddress' in kwargs: + core_network_address = kwargs['coreNetworkAddress'] + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if peer_address is None and 'peerAddress' in kwargs: + peer_address = kwargs['peerAddress'] + if bgp_configurations is not None: - pulumi.set(__self__, "bgp_configurations", bgp_configurations) + _setter("bgp_configurations", bgp_configurations) if core_network_address is not None: - pulumi.set(__self__, "core_network_address", core_network_address) + _setter("core_network_address", core_network_address) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) if peer_address is not None: - pulumi.set(__self__, "peer_address", peer_address) + _setter("peer_address", peer_address) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) @property @pulumi.getter(name="bgpConfigurations") @@ -200,14 +251,39 @@ def __init__(__self__, *, The following arguments are optional: """ + ConnectPeerConfigurationBgpConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + core_network_address=core_network_address, + core_network_asn=core_network_asn, + peer_address=peer_address, + peer_asn=peer_asn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + core_network_address: Optional[str] = None, + core_network_asn: Optional[int] = None, + peer_address: Optional[str] = None, + peer_asn: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_address is None and 'coreNetworkAddress' in kwargs: + core_network_address = kwargs['coreNetworkAddress'] + if core_network_asn is None and 'coreNetworkAsn' in kwargs: + core_network_asn = kwargs['coreNetworkAsn'] + if peer_address is None and 'peerAddress' in kwargs: + peer_address = kwargs['peerAddress'] + if peer_asn is None and 'peerAsn' in kwargs: + peer_asn = kwargs['peerAsn'] + if core_network_address is not None: - pulumi.set(__self__, "core_network_address", core_network_address) + _setter("core_network_address", core_network_address) if core_network_asn is not None: - pulumi.set(__self__, "core_network_asn", core_network_asn) + _setter("core_network_asn", core_network_asn) if peer_address is not None: - pulumi.set(__self__, "peer_address", peer_address) + _setter("peer_address", peer_address) if peer_asn is not None: - pulumi.set(__self__, "peer_asn", peer_asn) + _setter("peer_asn", peer_asn) @property @pulumi.getter(name="coreNetworkAddress") @@ -268,12 +344,31 @@ def __init__(__self__, *, :param str edge_location: Region where a core network edge is located. :param Sequence[str] inside_cidr_blocks: Inside IP addresses used for core network edges. """ + CoreNetworkEdge._configure( + lambda key, value: pulumi.set(__self__, key, value), + asn=asn, + edge_location=edge_location, + inside_cidr_blocks=inside_cidr_blocks, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + asn: Optional[int] = None, + edge_location: Optional[str] = None, + inside_cidr_blocks: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if asn is not None: - pulumi.set(__self__, "asn", asn) + _setter("asn", asn) if edge_location is not None: - pulumi.set(__self__, "edge_location", edge_location) + _setter("edge_location", edge_location) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) @property @pulumi.getter @@ -330,12 +425,31 @@ def __init__(__self__, *, :param str name: Name of a core network segment. :param Sequence[str] shared_segments: Shared segments of a core network. """ + CoreNetworkSegment._configure( + lambda key, value: pulumi.set(__self__, key, value), + edge_locations=edge_locations, + name=name, + shared_segments=shared_segments, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + edge_locations: Optional[Sequence[str]] = None, + name: Optional[str] = None, + shared_segments: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if edge_locations is None and 'edgeLocations' in kwargs: + edge_locations = kwargs['edgeLocations'] + if shared_segments is None and 'sharedSegments' in kwargs: + shared_segments = kwargs['sharedSegments'] + if edge_locations is not None: - pulumi.set(__self__, "edge_locations", edge_locations) + _setter("edge_locations", edge_locations) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if shared_segments is not None: - pulumi.set(__self__, "shared_segments", shared_segments) + _setter("shared_segments", shared_segments) @property @pulumi.getter(name="edgeLocations") @@ -388,10 +502,25 @@ def __init__(__self__, *, :param str subnet_arn: The Amazon Resource Name (ARN) of the subnet that the device is located in. :param str zone: The Zone that the device is located in. Specify the ID of an Availability Zone, Local Zone, Wavelength Zone, or an Outpost. """ + DeviceAwsLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_arn=subnet_arn, + zone=zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_arn: Optional[str] = None, + zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_arn is None and 'subnetArn' in kwargs: + subnet_arn = kwargs['subnetArn'] + if subnet_arn is not None: - pulumi.set(__self__, "subnet_arn", subnet_arn) + _setter("subnet_arn", subnet_arn) if zone is not None: - pulumi.set(__self__, "zone", zone) + _setter("zone", zone) @property @pulumi.getter(name="subnetArn") @@ -421,12 +550,27 @@ def __init__(__self__, *, :param str latitude: The latitude. :param str longitude: The longitude. """ + DeviceLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + latitude=latitude, + longitude=longitude, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + latitude: Optional[str] = None, + longitude: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if latitude is not None: - pulumi.set(__self__, "latitude", latitude) + _setter("latitude", latitude) if longitude is not None: - pulumi.set(__self__, "longitude", longitude) + _setter("longitude", longitude) @property @pulumi.getter @@ -481,10 +625,27 @@ def __init__(__self__, *, :param int download_speed: Download speed in Mbps. :param int upload_speed: Upload speed in Mbps. """ + LinkBandwidth._configure( + lambda key, value: pulumi.set(__self__, key, value), + download_speed=download_speed, + upload_speed=upload_speed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + download_speed: Optional[int] = None, + upload_speed: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if download_speed is None and 'downloadSpeed' in kwargs: + download_speed = kwargs['downloadSpeed'] + if upload_speed is None and 'uploadSpeed' in kwargs: + upload_speed = kwargs['uploadSpeed'] + if download_speed is not None: - pulumi.set(__self__, "download_speed", download_speed) + _setter("download_speed", download_speed) if upload_speed is not None: - pulumi.set(__self__, "upload_speed", upload_speed) + _setter("upload_speed", upload_speed) @property @pulumi.getter(name="downloadSpeed") @@ -514,12 +675,27 @@ def __init__(__self__, *, :param str latitude: Latitude of the location. :param str longitude: Longitude of the location. """ + SiteLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + latitude=latitude, + longitude=longitude, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + latitude: Optional[str] = None, + longitude: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if latitude is not None: - pulumi.set(__self__, "latitude", latitude) + _setter("latitude", latitude) if longitude is not None: - pulumi.set(__self__, "longitude", longitude) + _setter("longitude", longitude) @property @pulumi.getter @@ -574,10 +750,27 @@ def __init__(__self__, *, :param bool appliance_mode_support: Indicates whether appliance mode is supported. If enabled, traffic flow between a source and destination use the same Availability Zone for the VPC attachment for the lifetime of that flow. :param bool ipv6_support: Indicates whether IPv6 is supported. """ + VpcAttachmentOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + appliance_mode_support=appliance_mode_support, + ipv6_support=ipv6_support, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + appliance_mode_support: Optional[bool] = None, + ipv6_support: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if appliance_mode_support is None and 'applianceModeSupport' in kwargs: + appliance_mode_support = kwargs['applianceModeSupport'] + if ipv6_support is None and 'ipv6Support' in kwargs: + ipv6_support = kwargs['ipv6Support'] + if appliance_mode_support is not None: - pulumi.set(__self__, "appliance_mode_support", appliance_mode_support) + _setter("appliance_mode_support", appliance_mode_support) if ipv6_support is not None: - pulumi.set(__self__, "ipv6_support", ipv6_support) + _setter("ipv6_support", ipv6_support) @property @pulumi.getter(name="applianceModeSupport") @@ -611,13 +804,42 @@ def __init__(__self__, *, :param str condition_logic: Valid values include `and` or `or`. This is a mandatory parameter only if you have more than one condition. The `condition_logic` apply to all of the conditions for a rule, which also means nested conditions of `and` or `or` are not supported. Use `or` if you want to associate the attachment with the segment by either the segment name or attachment tag value, or by the chosen conditions. Use `and` if you want to associate the attachment with the segment by either the segment name or attachment tag value and by the chosen conditions. Detailed Below. :param str description: A user-defined description that further helps identify the rule. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "conditions", conditions) - pulumi.set(__self__, "rule_number", rule_number) + GetCoreNetworkPolicyDocumentAttachmentPolicyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + conditions=conditions, + rule_number=rule_number, + condition_logic=condition_logic, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.GetCoreNetworkPolicyDocumentAttachmentPolicyActionResult'] = None, + conditions: Optional[Sequence['outputs.GetCoreNetworkPolicyDocumentAttachmentPolicyConditionResult']] = None, + rule_number: Optional[int] = None, + condition_logic: Optional[str] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if conditions is None: + raise TypeError("Missing 'conditions' argument") + if rule_number is None and 'ruleNumber' in kwargs: + rule_number = kwargs['ruleNumber'] + if rule_number is None: + raise TypeError("Missing 'rule_number' argument") + if condition_logic is None and 'conditionLogic' in kwargs: + condition_logic = kwargs['conditionLogic'] + + _setter("action", action) + _setter("conditions", conditions) + _setter("rule_number", rule_number) if condition_logic is not None: - pulumi.set(__self__, "condition_logic", condition_logic) + _setter("condition_logic", condition_logic) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -673,13 +895,38 @@ def __init__(__self__, *, :param str segment: Name of the `segment` to share as defined in the `segments` section. This is used only when the `association_method` is `constant`. :param str tag_value_of_key: Maps the attachment to the value of a known key. This is used with the `association_method` is `tag`. For example a `tag` of `stage = “test”`, will map to a segment named `test`. The value must exactly match the name of a segment. This allows you to have many segments, but use only a single rule without having to define multiple nearly identical conditions. This prevents creating many similar conditions that all use the same keys to map to segments. """ - pulumi.set(__self__, "association_method", association_method) + GetCoreNetworkPolicyDocumentAttachmentPolicyActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + association_method=association_method, + require_acceptance=require_acceptance, + segment=segment, + tag_value_of_key=tag_value_of_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + association_method: Optional[str] = None, + require_acceptance: Optional[bool] = None, + segment: Optional[str] = None, + tag_value_of_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if association_method is None and 'associationMethod' in kwargs: + association_method = kwargs['associationMethod'] + if association_method is None: + raise TypeError("Missing 'association_method' argument") + if require_acceptance is None and 'requireAcceptance' in kwargs: + require_acceptance = kwargs['requireAcceptance'] + if tag_value_of_key is None and 'tagValueOfKey' in kwargs: + tag_value_of_key = kwargs['tagValueOfKey'] + + _setter("association_method", association_method) if require_acceptance is not None: - pulumi.set(__self__, "require_acceptance", require_acceptance) + _setter("require_acceptance", require_acceptance) if segment is not None: - pulumi.set(__self__, "segment", segment) + _setter("segment", segment) if tag_value_of_key is not None: - pulumi.set(__self__, "tag_value_of_key", tag_value_of_key) + _setter("tag_value_of_key", tag_value_of_key) @property @pulumi.getter(name="associationMethod") @@ -727,13 +974,32 @@ def __init__(__self__, *, :param str operator: Valid values include: `equals`, `not-equals`, `contains`, `begins-with`. :param str value: string value """ - pulumi.set(__self__, "type", type) + GetCoreNetworkPolicyDocumentAttachmentPolicyConditionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + key=key, + operator=operator, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + key: Optional[str] = None, + operator: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if operator is not None: - pulumi.set(__self__, "operator", operator) + _setter("operator", operator) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -781,12 +1047,41 @@ def __init__(__self__, *, :param Sequence[str] inside_cidr_blocks: The Classless Inter-Domain Routing (CIDR) block range used to create tunnels for AWS Transit Gateway Connect. The format is standard AWS CIDR range (for example, `10.0.1.0/24`). You can optionally define the inside CIDR in the Core Network Edges section per Region. The minimum is a `/24` for IPv4 or `/64` for IPv6. You can provide multiple `/24` subnets or a larger CIDR range. If you define a larger CIDR range, new Core Network Edges will be automatically assigned `/24` and `/64` subnets from the larger CIDR. an Inside CIDR block is required for attaching Connect attachments to a Core Network Edge. :param bool vpn_ecmp_support: Indicates whether the core network forwards traffic over multiple equal-cost routes using VPN. The value can be either `true` or `false`. The default is `true`. """ - pulumi.set(__self__, "asn_ranges", asn_ranges) - pulumi.set(__self__, "edge_locations", edge_locations) + GetCoreNetworkPolicyDocumentCoreNetworkConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + asn_ranges=asn_ranges, + edge_locations=edge_locations, + inside_cidr_blocks=inside_cidr_blocks, + vpn_ecmp_support=vpn_ecmp_support, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + asn_ranges: Optional[Sequence[str]] = None, + edge_locations: Optional[Sequence['outputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationResult']] = None, + inside_cidr_blocks: Optional[Sequence[str]] = None, + vpn_ecmp_support: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if asn_ranges is None and 'asnRanges' in kwargs: + asn_ranges = kwargs['asnRanges'] + if asn_ranges is None: + raise TypeError("Missing 'asn_ranges' argument") + if edge_locations is None and 'edgeLocations' in kwargs: + edge_locations = kwargs['edgeLocations'] + if edge_locations is None: + raise TypeError("Missing 'edge_locations' argument") + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + if vpn_ecmp_support is None and 'vpnEcmpSupport' in kwargs: + vpn_ecmp_support = kwargs['vpnEcmpSupport'] + + _setter("asn_ranges", asn_ranges) + _setter("edge_locations", edge_locations) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) if vpn_ecmp_support is not None: - pulumi.set(__self__, "vpn_ecmp_support", vpn_ecmp_support) + _setter("vpn_ecmp_support", vpn_ecmp_support) @property @pulumi.getter(name="asnRanges") @@ -831,11 +1126,30 @@ def __init__(__self__, *, :param str asn: ASN of the Core Network Edge in an AWS Region. By default, the ASN will be a single integer automatically assigned from `asn_ranges` :param Sequence[str] inside_cidr_blocks: The local CIDR blocks for this Core Network Edge for AWS Transit Gateway Connect attachments. By default, this CIDR block will be one or more optional IPv4 and IPv6 CIDR prefixes auto-assigned from `inside_cidr_blocks`. """ - pulumi.set(__self__, "location", location) + GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + location=location, + asn=asn, + inside_cidr_blocks=inside_cidr_blocks, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + location: Optional[str] = None, + asn: Optional[str] = None, + inside_cidr_blocks: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if location is None: + raise TypeError("Missing 'location' argument") + if inside_cidr_blocks is None and 'insideCidrBlocks' in kwargs: + inside_cidr_blocks = kwargs['insideCidrBlocks'] + + _setter("location", location) if asn is not None: - pulumi.set(__self__, "asn", asn) + _setter("asn", asn) if inside_cidr_blocks is not None: - pulumi.set(__self__, "inside_cidr_blocks", inside_cidr_blocks) + _setter("inside_cidr_blocks", inside_cidr_blocks) @property @pulumi.getter @@ -878,19 +1192,54 @@ def __init__(__self__, *, :param bool isolate_attachments: This Boolean setting determines whether attachments on the same segment can communicate with each other. If set to `true`, the only routes available will be either shared routes through the share actions, which are attachments in other segments, or static routes. The default value is `false`. For example, you might have a segment dedicated to "development" that should never allow VPCs to talk to each other, even if they’re on the same segment. In this example, you would keep the default parameter of `false`. :param bool require_attachment_acceptance: This Boolean setting determines whether attachment requests are automatically approved or require acceptance. The default is `true`, indicating that attachment requests require acceptance. For example, you might use this setting to allow a "sandbox" segment to allow any attachment request so that a core network or attachment administrator does not need to review and approve attachment requests. In this example, `require_attachment_acceptance` is set to `false`. """ - pulumi.set(__self__, "name", name) + GetCoreNetworkPolicyDocumentSegmentResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + allow_filters=allow_filters, + deny_filters=deny_filters, + description=description, + edge_locations=edge_locations, + isolate_attachments=isolate_attachments, + require_attachment_acceptance=require_attachment_acceptance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + allow_filters: Optional[Sequence[str]] = None, + deny_filters: Optional[Sequence[str]] = None, + description: Optional[str] = None, + edge_locations: Optional[Sequence[str]] = None, + isolate_attachments: Optional[bool] = None, + require_attachment_acceptance: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if allow_filters is None and 'allowFilters' in kwargs: + allow_filters = kwargs['allowFilters'] + if deny_filters is None and 'denyFilters' in kwargs: + deny_filters = kwargs['denyFilters'] + if edge_locations is None and 'edgeLocations' in kwargs: + edge_locations = kwargs['edgeLocations'] + if isolate_attachments is None and 'isolateAttachments' in kwargs: + isolate_attachments = kwargs['isolateAttachments'] + if require_attachment_acceptance is None and 'requireAttachmentAcceptance' in kwargs: + require_attachment_acceptance = kwargs['requireAttachmentAcceptance'] + + _setter("name", name) if allow_filters is not None: - pulumi.set(__self__, "allow_filters", allow_filters) + _setter("allow_filters", allow_filters) if deny_filters is not None: - pulumi.set(__self__, "deny_filters", deny_filters) + _setter("deny_filters", deny_filters) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if edge_locations is not None: - pulumi.set(__self__, "edge_locations", edge_locations) + _setter("edge_locations", edge_locations) if isolate_attachments is not None: - pulumi.set(__self__, "isolate_attachments", isolate_attachments) + _setter("isolate_attachments", isolate_attachments) if require_attachment_acceptance is not None: - pulumi.set(__self__, "require_attachment_acceptance", require_attachment_acceptance) + _setter("require_attachment_acceptance", require_attachment_acceptance) @property @pulumi.getter @@ -970,20 +1319,55 @@ def __init__(__self__, *, :param Sequence[str] share_with_excepts: A set subtraction of segments to not share with. :param Sequence[str] share_withs: A list of strings to share with. Must be a substring is all segments. Valid values include: `["*"]` or `[""]`. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "segment", segment) + GetCoreNetworkPolicyDocumentSegmentActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + segment=segment, + description=description, + destination_cidr_blocks=destination_cidr_blocks, + destinations=destinations, + mode=mode, + share_with_excepts=share_with_excepts, + share_withs=share_withs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + segment: Optional[str] = None, + description: Optional[str] = None, + destination_cidr_blocks: Optional[Sequence[str]] = None, + destinations: Optional[Sequence[str]] = None, + mode: Optional[str] = None, + share_with_excepts: Optional[Sequence[str]] = None, + share_withs: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if segment is None: + raise TypeError("Missing 'segment' argument") + if destination_cidr_blocks is None and 'destinationCidrBlocks' in kwargs: + destination_cidr_blocks = kwargs['destinationCidrBlocks'] + if share_with_excepts is None and 'shareWithExcepts' in kwargs: + share_with_excepts = kwargs['shareWithExcepts'] + if share_withs is None and 'shareWiths' in kwargs: + share_withs = kwargs['shareWiths'] + + _setter("action", action) + _setter("segment", segment) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if destination_cidr_blocks is not None: - pulumi.set(__self__, "destination_cidr_blocks", destination_cidr_blocks) + _setter("destination_cidr_blocks", destination_cidr_blocks) if destinations is not None: - pulumi.set(__self__, "destinations", destinations) + _setter("destinations", destinations) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if share_with_excepts is not None: - pulumi.set(__self__, "share_with_excepts", share_with_excepts) + _setter("share_with_excepts", share_with_excepts) if share_withs is not None: - pulumi.set(__self__, "share_withs", share_withs) + _setter("share_withs", share_withs) @property @pulumi.getter @@ -1059,8 +1443,27 @@ def __init__(__self__, *, :param str subnet_arn: ARN of the subnet that the device is located in. :param str zone: Zone that the device is located in. """ - pulumi.set(__self__, "subnet_arn", subnet_arn) - pulumi.set(__self__, "zone", zone) + GetDeviceAwsLocationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_arn=subnet_arn, + zone=zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_arn: Optional[str] = None, + zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_arn is None and 'subnetArn' in kwargs: + subnet_arn = kwargs['subnetArn'] + if subnet_arn is None: + raise TypeError("Missing 'subnet_arn' argument") + if zone is None: + raise TypeError("Missing 'zone' argument") + + _setter("subnet_arn", subnet_arn) + _setter("zone", zone) @property @pulumi.getter(name="subnetArn") @@ -1090,9 +1493,30 @@ def __init__(__self__, *, :param str latitude: Latitude. :param str longitude: Longitude. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "latitude", latitude) - pulumi.set(__self__, "longitude", longitude) + GetDeviceLocationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + latitude=latitude, + longitude=longitude, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + latitude: Optional[str] = None, + longitude: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if latitude is None: + raise TypeError("Missing 'latitude' argument") + if longitude is None: + raise TypeError("Missing 'longitude' argument") + + _setter("address", address) + _setter("latitude", latitude) + _setter("longitude", longitude) @property @pulumi.getter @@ -1128,8 +1552,29 @@ def __init__(__self__, *, :param int download_speed: Download speed in Mbps. :param int upload_speed: Upload speed in Mbps. """ - pulumi.set(__self__, "download_speed", download_speed) - pulumi.set(__self__, "upload_speed", upload_speed) + GetLinkBandwidthResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + download_speed=download_speed, + upload_speed=upload_speed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + download_speed: Optional[int] = None, + upload_speed: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if download_speed is None and 'downloadSpeed' in kwargs: + download_speed = kwargs['downloadSpeed'] + if download_speed is None: + raise TypeError("Missing 'download_speed' argument") + if upload_speed is None and 'uploadSpeed' in kwargs: + upload_speed = kwargs['uploadSpeed'] + if upload_speed is None: + raise TypeError("Missing 'upload_speed' argument") + + _setter("download_speed", download_speed) + _setter("upload_speed", upload_speed) @property @pulumi.getter(name="downloadSpeed") @@ -1159,9 +1604,30 @@ def __init__(__self__, *, :param str latitude: Latitude of the location. :param str longitude: Longitude of the location. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "latitude", latitude) - pulumi.set(__self__, "longitude", longitude) + GetSiteLocationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + latitude=latitude, + longitude=longitude, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + latitude: Optional[str] = None, + longitude: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if latitude is None: + raise TypeError("Missing 'latitude' argument") + if longitude is None: + raise TypeError("Missing 'longitude' argument") + + _setter("address", address) + _setter("latitude", latitude) + _setter("longitude", longitude) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/networkmanager/site.py b/sdk/python/pulumi_aws/networkmanager/site.py index 192edaf6c7b..cc7728cfe17 100644 --- a/sdk/python/pulumi_aws/networkmanager/site.py +++ b/sdk/python/pulumi_aws/networkmanager/site.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,34 @@ def __init__(__self__, *, :param pulumi.Input['SiteLocationArgs'] location: The site location as documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the Site. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "global_network_id", global_network_id) + SiteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_network_id=global_network_id, + description=description, + location=location, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_network_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input['SiteLocationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if global_network_id is None: + raise TypeError("Missing 'global_network_id' argument") + + _setter("global_network_id", global_network_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="globalNetworkId") @@ -102,21 +123,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the Site. 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. """ + _SiteState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + global_network_id=global_network_id, + location=location, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input['SiteLocationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if global_network_id is not None: - pulumi.set(__self__, "global_network_id", global_network_id) + _setter("global_network_id", global_network_id) if location is not None: - pulumi.set(__self__, "location", location) + _setter("location", location) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -269,6 +315,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SiteArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -291,6 +341,7 @@ def _internal_init(__self__, if global_network_id is None and not opts.urn: raise TypeError("Missing required property 'global_network_id'") __props__.__dict__["global_network_id"] = global_network_id + location = _utilities.configure(location, SiteLocationArgs, True) __props__.__dict__["location"] = location __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/networkmanager/site_to_site_vpn_attachment.py b/sdk/python/pulumi_aws/networkmanager/site_to_site_vpn_attachment.py index 4903a3b7f4e..4f17ba4d5ac 100644 --- a/sdk/python/pulumi_aws/networkmanager/site_to_site_vpn_attachment.py +++ b/sdk/python/pulumi_aws/networkmanager/site_to_site_vpn_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SiteToSiteVpnAttachmentArgs', 'SiteToSiteVpnAttachment'] @@ -25,10 +25,33 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "core_network_id", core_network_id) - pulumi.set(__self__, "vpn_connection_arn", vpn_connection_arn) + SiteToSiteVpnAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + core_network_id=core_network_id, + vpn_connection_arn=vpn_connection_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + core_network_id: Optional[pulumi.Input[str]] = None, + vpn_connection_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if core_network_id is None: + raise TypeError("Missing 'core_network_id' argument") + if vpn_connection_arn is None and 'vpnConnectionArn' in kwargs: + vpn_connection_arn = kwargs['vpnConnectionArn'] + if vpn_connection_arn is None: + raise TypeError("Missing 'vpn_connection_arn' argument") + + _setter("core_network_id", core_network_id) + _setter("vpn_connection_arn", vpn_connection_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="coreNetworkId") @@ -103,35 +126,90 @@ def __init__(__self__, *, The following arguments are optional: """ + _SiteToSiteVpnAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attachment_policy_rule_number=attachment_policy_rule_number, + attachment_type=attachment_type, + core_network_arn=core_network_arn, + core_network_id=core_network_id, + edge_location=edge_location, + owner_account_id=owner_account_id, + resource_arn=resource_arn, + segment_name=segment_name, + state=state, + tags=tags, + tags_all=tags_all, + vpn_connection_arn=vpn_connection_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attachment_policy_rule_number: Optional[pulumi.Input[int]] = None, + attachment_type: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + edge_location: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + segment_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpn_connection_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_policy_rule_number is None and 'attachmentPolicyRuleNumber' in kwargs: + attachment_policy_rule_number = kwargs['attachmentPolicyRuleNumber'] + if attachment_type is None and 'attachmentType' in kwargs: + attachment_type = kwargs['attachmentType'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if segment_name is None and 'segmentName' in kwargs: + segment_name = kwargs['segmentName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpn_connection_arn is None and 'vpnConnectionArn' in kwargs: + vpn_connection_arn = kwargs['vpnConnectionArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attachment_policy_rule_number is not None: - pulumi.set(__self__, "attachment_policy_rule_number", attachment_policy_rule_number) + _setter("attachment_policy_rule_number", attachment_policy_rule_number) if attachment_type is not None: - pulumi.set(__self__, "attachment_type", attachment_type) + _setter("attachment_type", attachment_type) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if core_network_id is not None: - pulumi.set(__self__, "core_network_id", core_network_id) + _setter("core_network_id", core_network_id) if edge_location is not None: - pulumi.set(__self__, "edge_location", edge_location) + _setter("edge_location", edge_location) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if segment_name is not None: - pulumi.set(__self__, "segment_name", segment_name) + _setter("segment_name", segment_name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpn_connection_arn is not None: - pulumi.set(__self__, "vpn_connection_arn", vpn_connection_arn) + _setter("vpn_connection_arn", vpn_connection_arn) @property @pulumi.getter @@ -374,6 +452,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SiteToSiteVpnAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/transit_gateway_connect_peer_association.py b/sdk/python/pulumi_aws/networkmanager/transit_gateway_connect_peer_association.py index 26072ff72c0..9e712be6221 100644 --- a/sdk/python/pulumi_aws/networkmanager/transit_gateway_connect_peer_association.py +++ b/sdk/python/pulumi_aws/networkmanager/transit_gateway_connect_peer_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TransitGatewayConnectPeerAssociationArgs', 'TransitGatewayConnectPeerAssociation'] @@ -25,11 +25,42 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_connect_peer_arn: The Amazon Resource Name (ARN) of the Connect peer. :param pulumi.Input[str] link_id: The ID of the link. """ - pulumi.set(__self__, "device_id", device_id) - pulumi.set(__self__, "global_network_id", global_network_id) - pulumi.set(__self__, "transit_gateway_connect_peer_arn", transit_gateway_connect_peer_arn) + TransitGatewayConnectPeerAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_id=device_id, + global_network_id=global_network_id, + transit_gateway_connect_peer_arn=transit_gateway_connect_peer_arn, + link_id=link_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_id: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + transit_gateway_connect_peer_arn: Optional[pulumi.Input[str]] = None, + link_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_id is None and 'deviceId' in kwargs: + device_id = kwargs['deviceId'] + if device_id is None: + raise TypeError("Missing 'device_id' argument") + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if global_network_id is None: + raise TypeError("Missing 'global_network_id' argument") + if transit_gateway_connect_peer_arn is None and 'transitGatewayConnectPeerArn' in kwargs: + transit_gateway_connect_peer_arn = kwargs['transitGatewayConnectPeerArn'] + if transit_gateway_connect_peer_arn is None: + raise TypeError("Missing 'transit_gateway_connect_peer_arn' argument") + if link_id is None and 'linkId' in kwargs: + link_id = kwargs['linkId'] + + _setter("device_id", device_id) + _setter("global_network_id", global_network_id) + _setter("transit_gateway_connect_peer_arn", transit_gateway_connect_peer_arn) if link_id is not None: - pulumi.set(__self__, "link_id", link_id) + _setter("link_id", link_id) @property @pulumi.getter(name="deviceId") @@ -94,14 +125,39 @@ def __init__(__self__, *, :param pulumi.Input[str] link_id: The ID of the link. :param pulumi.Input[str] transit_gateway_connect_peer_arn: The Amazon Resource Name (ARN) of the Connect peer. """ + _TransitGatewayConnectPeerAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_id=device_id, + global_network_id=global_network_id, + link_id=link_id, + transit_gateway_connect_peer_arn=transit_gateway_connect_peer_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_id: Optional[pulumi.Input[str]] = None, + global_network_id: Optional[pulumi.Input[str]] = None, + link_id: Optional[pulumi.Input[str]] = None, + transit_gateway_connect_peer_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_id is None and 'deviceId' in kwargs: + device_id = kwargs['deviceId'] + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if link_id is None and 'linkId' in kwargs: + link_id = kwargs['linkId'] + if transit_gateway_connect_peer_arn is None and 'transitGatewayConnectPeerArn' in kwargs: + transit_gateway_connect_peer_arn = kwargs['transitGatewayConnectPeerArn'] + if device_id is not None: - pulumi.set(__self__, "device_id", device_id) + _setter("device_id", device_id) if global_network_id is not None: - pulumi.set(__self__, "global_network_id", global_network_id) + _setter("global_network_id", global_network_id) if link_id is not None: - pulumi.set(__self__, "link_id", link_id) + _setter("link_id", link_id) if transit_gateway_connect_peer_arn is not None: - pulumi.set(__self__, "transit_gateway_connect_peer_arn", transit_gateway_connect_peer_arn) + _setter("transit_gateway_connect_peer_arn", transit_gateway_connect_peer_arn) @property @pulumi.getter(name="deviceId") @@ -233,6 +289,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TransitGatewayConnectPeerAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/transit_gateway_peering.py b/sdk/python/pulumi_aws/networkmanager/transit_gateway_peering.py index 4d276ac04f7..46d7fe2d68e 100644 --- a/sdk/python/pulumi_aws/networkmanager/transit_gateway_peering.py +++ b/sdk/python/pulumi_aws/networkmanager/transit_gateway_peering.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TransitGatewayPeeringArgs', 'TransitGatewayPeering'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_arn: The ARN of the transit gateway for the peering request. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the peering. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "core_network_id", core_network_id) - pulumi.set(__self__, "transit_gateway_arn", transit_gateway_arn) + TransitGatewayPeeringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + core_network_id=core_network_id, + transit_gateway_arn=transit_gateway_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + core_network_id: Optional[pulumi.Input[str]] = None, + transit_gateway_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if core_network_id is None: + raise TypeError("Missing 'core_network_id' argument") + if transit_gateway_arn is None and 'transitGatewayArn' in kwargs: + transit_gateway_arn = kwargs['transitGatewayArn'] + if transit_gateway_arn is None: + raise TypeError("Missing 'transit_gateway_arn' argument") + + _setter("core_network_id", core_network_id) + _setter("transit_gateway_arn", transit_gateway_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="coreNetworkId") @@ -93,31 +116,80 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_arn: The ARN of the transit gateway for the peering request. :param pulumi.Input[str] transit_gateway_peering_attachment_id: The ID of the transit gateway peering attachment. """ + _TransitGatewayPeeringState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + core_network_arn=core_network_arn, + core_network_id=core_network_id, + edge_location=edge_location, + owner_account_id=owner_account_id, + peering_type=peering_type, + resource_arn=resource_arn, + tags=tags, + tags_all=tags_all, + transit_gateway_arn=transit_gateway_arn, + transit_gateway_peering_attachment_id=transit_gateway_peering_attachment_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + edge_location: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + peering_type: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_arn: Optional[pulumi.Input[str]] = None, + transit_gateway_peering_attachment_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if peering_type is None and 'peeringType' in kwargs: + peering_type = kwargs['peeringType'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_arn is None and 'transitGatewayArn' in kwargs: + transit_gateway_arn = kwargs['transitGatewayArn'] + if transit_gateway_peering_attachment_id is None and 'transitGatewayPeeringAttachmentId' in kwargs: + transit_gateway_peering_attachment_id = kwargs['transitGatewayPeeringAttachmentId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if core_network_id is not None: - pulumi.set(__self__, "core_network_id", core_network_id) + _setter("core_network_id", core_network_id) if edge_location is not None: - pulumi.set(__self__, "edge_location", edge_location) + _setter("edge_location", edge_location) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if peering_type is not None: - pulumi.set(__self__, "peering_type", peering_type) + _setter("peering_type", peering_type) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_arn is not None: - pulumi.set(__self__, "transit_gateway_arn", transit_gateway_arn) + _setter("transit_gateway_arn", transit_gateway_arn) if transit_gateway_peering_attachment_id is not None: - pulumi.set(__self__, "transit_gateway_peering_attachment_id", transit_gateway_peering_attachment_id) + _setter("transit_gateway_peering_attachment_id", transit_gateway_peering_attachment_id) @property @pulumi.getter @@ -330,6 +402,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TransitGatewayPeeringArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/transit_gateway_registration.py b/sdk/python/pulumi_aws/networkmanager/transit_gateway_registration.py index c9eecfab2b0..9d11e0559e4 100644 --- a/sdk/python/pulumi_aws/networkmanager/transit_gateway_registration.py +++ b/sdk/python/pulumi_aws/networkmanager/transit_gateway_registration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TransitGatewayRegistrationArgs', 'TransitGatewayRegistration'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] global_network_id: The ID of the Global Network to register to. :param pulumi.Input[str] transit_gateway_arn: The ARN of the Transit Gateway to register. """ - pulumi.set(__self__, "global_network_id", global_network_id) - pulumi.set(__self__, "transit_gateway_arn", transit_gateway_arn) + TransitGatewayRegistrationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_network_id=global_network_id, + transit_gateway_arn=transit_gateway_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_network_id: Optional[pulumi.Input[str]] = None, + transit_gateway_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if global_network_id is None: + raise TypeError("Missing 'global_network_id' argument") + if transit_gateway_arn is None and 'transitGatewayArn' in kwargs: + transit_gateway_arn = kwargs['transitGatewayArn'] + if transit_gateway_arn is None: + raise TypeError("Missing 'transit_gateway_arn' argument") + + _setter("global_network_id", global_network_id) + _setter("transit_gateway_arn", transit_gateway_arn) @property @pulumi.getter(name="globalNetworkId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] global_network_id: The ID of the Global Network to register to. :param pulumi.Input[str] transit_gateway_arn: The ARN of the Transit Gateway to register. """ + _TransitGatewayRegistrationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_network_id=global_network_id, + transit_gateway_arn=transit_gateway_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_network_id: Optional[pulumi.Input[str]] = None, + transit_gateway_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_network_id is None and 'globalNetworkId' in kwargs: + global_network_id = kwargs['globalNetworkId'] + if transit_gateway_arn is None and 'transitGatewayArn' in kwargs: + transit_gateway_arn = kwargs['transitGatewayArn'] + if global_network_id is not None: - pulumi.set(__self__, "global_network_id", global_network_id) + _setter("global_network_id", global_network_id) if transit_gateway_arn is not None: - pulumi.set(__self__, "transit_gateway_arn", transit_gateway_arn) + _setter("transit_gateway_arn", transit_gateway_arn) @property @pulumi.getter(name="globalNetworkId") @@ -170,6 +208,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TransitGatewayRegistrationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/transit_gateway_route_table_attachment.py b/sdk/python/pulumi_aws/networkmanager/transit_gateway_route_table_attachment.py index 6cb2cc05444..22c67149403 100644 --- a/sdk/python/pulumi_aws/networkmanager/transit_gateway_route_table_attachment.py +++ b/sdk/python/pulumi_aws/networkmanager/transit_gateway_route_table_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TransitGatewayRouteTableAttachmentArgs', 'TransitGatewayRouteTableAttachment'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] transit_gateway_route_table_arn: The ARN of the transit gateway route table for the attachment. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "peering_id", peering_id) - pulumi.set(__self__, "transit_gateway_route_table_arn", transit_gateway_route_table_arn) + TransitGatewayRouteTableAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + peering_id=peering_id, + transit_gateway_route_table_arn=transit_gateway_route_table_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + peering_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if peering_id is None and 'peeringId' in kwargs: + peering_id = kwargs['peeringId'] + if peering_id is None: + raise TypeError("Missing 'peering_id' argument") + if transit_gateway_route_table_arn is None and 'transitGatewayRouteTableArn' in kwargs: + transit_gateway_route_table_arn = kwargs['transitGatewayRouteTableArn'] + if transit_gateway_route_table_arn is None: + raise TypeError("Missing 'transit_gateway_route_table_arn' argument") + + _setter("peering_id", peering_id) + _setter("transit_gateway_route_table_arn", transit_gateway_route_table_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="peeringId") @@ -99,37 +122,96 @@ def __init__(__self__, *, :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] transit_gateway_route_table_arn: The ARN of the transit gateway route table for the attachment. """ + _TransitGatewayRouteTableAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attachment_policy_rule_number=attachment_policy_rule_number, + attachment_type=attachment_type, + core_network_arn=core_network_arn, + core_network_id=core_network_id, + edge_location=edge_location, + owner_account_id=owner_account_id, + peering_id=peering_id, + resource_arn=resource_arn, + segment_name=segment_name, + state=state, + tags=tags, + tags_all=tags_all, + transit_gateway_route_table_arn=transit_gateway_route_table_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attachment_policy_rule_number: Optional[pulumi.Input[int]] = None, + attachment_type: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + edge_location: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + peering_id: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + segment_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transit_gateway_route_table_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_policy_rule_number is None and 'attachmentPolicyRuleNumber' in kwargs: + attachment_policy_rule_number = kwargs['attachmentPolicyRuleNumber'] + if attachment_type is None and 'attachmentType' in kwargs: + attachment_type = kwargs['attachmentType'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if peering_id is None and 'peeringId' in kwargs: + peering_id = kwargs['peeringId'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if segment_name is None and 'segmentName' in kwargs: + segment_name = kwargs['segmentName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if transit_gateway_route_table_arn is None and 'transitGatewayRouteTableArn' in kwargs: + transit_gateway_route_table_arn = kwargs['transitGatewayRouteTableArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attachment_policy_rule_number is not None: - pulumi.set(__self__, "attachment_policy_rule_number", attachment_policy_rule_number) + _setter("attachment_policy_rule_number", attachment_policy_rule_number) if attachment_type is not None: - pulumi.set(__self__, "attachment_type", attachment_type) + _setter("attachment_type", attachment_type) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if core_network_id is not None: - pulumi.set(__self__, "core_network_id", core_network_id) + _setter("core_network_id", core_network_id) if edge_location is not None: - pulumi.set(__self__, "edge_location", edge_location) + _setter("edge_location", edge_location) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if peering_id is not None: - pulumi.set(__self__, "peering_id", peering_id) + _setter("peering_id", peering_id) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if segment_name is not None: - pulumi.set(__self__, "segment_name", segment_name) + _setter("segment_name", segment_name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if transit_gateway_route_table_arn is not None: - pulumi.set(__self__, "transit_gateway_route_table_arn", transit_gateway_route_table_arn) + _setter("transit_gateway_route_table_arn", transit_gateway_route_table_arn) @property @pulumi.getter @@ -378,6 +460,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TransitGatewayRouteTableAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/networkmanager/vpc_attachment.py b/sdk/python/pulumi_aws/networkmanager/vpc_attachment.py index 851168a5607..efac393a4bf 100644 --- a/sdk/python/pulumi_aws/networkmanager/vpc_attachment.py +++ b/sdk/python/pulumi_aws/networkmanager/vpc_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,13 +31,44 @@ def __init__(__self__, *, :param pulumi.Input['VpcAttachmentOptionsArgs'] options: Options for the VPC attachment. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "core_network_id", core_network_id) - pulumi.set(__self__, "subnet_arns", subnet_arns) - pulumi.set(__self__, "vpc_arn", vpc_arn) + VpcAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + core_network_id=core_network_id, + subnet_arns=subnet_arns, + vpc_arn=vpc_arn, + options=options, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + core_network_id: Optional[pulumi.Input[str]] = None, + subnet_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_arn: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input['VpcAttachmentOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if core_network_id is None: + raise TypeError("Missing 'core_network_id' argument") + if subnet_arns is None and 'subnetArns' in kwargs: + subnet_arns = kwargs['subnetArns'] + if subnet_arns is None: + raise TypeError("Missing 'subnet_arns' argument") + if vpc_arn is None and 'vpcArn' in kwargs: + vpc_arn = kwargs['vpcArn'] + if vpc_arn is None: + raise TypeError("Missing 'vpc_arn' argument") + + _setter("core_network_id", core_network_id) + _setter("subnet_arns", subnet_arns) + _setter("vpc_arn", vpc_arn) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="coreNetworkId") @@ -140,39 +171,100 @@ def __init__(__self__, *, The following arguments are optional: """ + _VpcAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attachment_policy_rule_number=attachment_policy_rule_number, + attachment_type=attachment_type, + core_network_arn=core_network_arn, + core_network_id=core_network_id, + edge_location=edge_location, + options=options, + owner_account_id=owner_account_id, + resource_arn=resource_arn, + segment_name=segment_name, + state=state, + subnet_arns=subnet_arns, + tags=tags, + tags_all=tags_all, + vpc_arn=vpc_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attachment_policy_rule_number: Optional[pulumi.Input[int]] = None, + attachment_type: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + edge_location: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input['VpcAttachmentOptionsArgs']] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + segment_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + subnet_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachment_policy_rule_number is None and 'attachmentPolicyRuleNumber' in kwargs: + attachment_policy_rule_number = kwargs['attachmentPolicyRuleNumber'] + if attachment_type is None and 'attachmentType' in kwargs: + attachment_type = kwargs['attachmentType'] + if core_network_arn is None and 'coreNetworkArn' in kwargs: + core_network_arn = kwargs['coreNetworkArn'] + if core_network_id is None and 'coreNetworkId' in kwargs: + core_network_id = kwargs['coreNetworkId'] + if edge_location is None and 'edgeLocation' in kwargs: + edge_location = kwargs['edgeLocation'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if segment_name is None and 'segmentName' in kwargs: + segment_name = kwargs['segmentName'] + if subnet_arns is None and 'subnetArns' in kwargs: + subnet_arns = kwargs['subnetArns'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_arn is None and 'vpcArn' in kwargs: + vpc_arn = kwargs['vpcArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attachment_policy_rule_number is not None: - pulumi.set(__self__, "attachment_policy_rule_number", attachment_policy_rule_number) + _setter("attachment_policy_rule_number", attachment_policy_rule_number) if attachment_type is not None: - pulumi.set(__self__, "attachment_type", attachment_type) + _setter("attachment_type", attachment_type) if core_network_arn is not None: - pulumi.set(__self__, "core_network_arn", core_network_arn) + _setter("core_network_arn", core_network_arn) if core_network_id is not None: - pulumi.set(__self__, "core_network_id", core_network_id) + _setter("core_network_id", core_network_id) if edge_location is not None: - pulumi.set(__self__, "edge_location", edge_location) + _setter("edge_location", edge_location) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if segment_name is not None: - pulumi.set(__self__, "segment_name", segment_name) + _setter("segment_name", segment_name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if subnet_arns is not None: - pulumi.set(__self__, "subnet_arns", subnet_arns) + _setter("subnet_arns", subnet_arns) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_arn is not None: - pulumi.set(__self__, "vpc_arn", vpc_arn) + _setter("vpc_arn", vpc_arn) @property @pulumi.getter @@ -445,6 +537,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -467,6 +563,7 @@ def _internal_init(__self__, if core_network_id is None and not opts.urn: raise TypeError("Missing required property 'core_network_id'") __props__.__dict__["core_network_id"] = core_network_id + options = _utilities.configure(options, VpcAttachmentOptionsArgs, True) __props__.__dict__["options"] = options if subnet_arns is None and not opts.urn: raise TypeError("Missing required property 'subnet_arns'") diff --git a/sdk/python/pulumi_aws/oam/get_link.py b/sdk/python/pulumi_aws/oam/get_link.py index 3fd994d2d2e..01c9f7e5809 100644 --- a/sdk/python/pulumi_aws/oam/get_link.py +++ b/sdk/python/pulumi_aws/oam/get_link.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/oam/get_links.py b/sdk/python/pulumi_aws/oam/get_links.py index ab0822f01ca..b8b9dfc475b 100644 --- a/sdk/python/pulumi_aws/oam/get_links.py +++ b/sdk/python/pulumi_aws/oam/get_links.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetLinksResult', 'AwaitableGetLinksResult', 'get_links', + 'get_links_output', ] @pulumi.output_type @@ -76,3 +77,21 @@ def get_links(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLinksR return AwaitableGetLinksResult( arns=pulumi.get(__ret__, 'arns'), id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_links) +def get_links_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetLinksResult]: + """ + Data source for managing an AWS CloudWatch Observability Access Manager Links. + + ## Example Usage + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.oam.get_links() + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/oam/get_sink.py b/sdk/python/pulumi_aws/oam/get_sink.py index 3b0cb98d6fb..5a8edfca92c 100644 --- a/sdk/python/pulumi_aws/oam/get_sink.py +++ b/sdk/python/pulumi_aws/oam/get_sink.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/oam/get_sinks.py b/sdk/python/pulumi_aws/oam/get_sinks.py index c769b4bc884..d33ad1032ef 100644 --- a/sdk/python/pulumi_aws/oam/get_sinks.py +++ b/sdk/python/pulumi_aws/oam/get_sinks.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetSinksResult', 'AwaitableGetSinksResult', 'get_sinks', + 'get_sinks_output', ] @pulumi.output_type @@ -76,3 +77,21 @@ def get_sinks(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSinksR return AwaitableGetSinksResult( arns=pulumi.get(__ret__, 'arns'), id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_sinks) +def get_sinks_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSinksResult]: + """ + Data source for managing an AWS CloudWatch Observability Access Manager Sinks. + + ## Example Usage + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.oam.get_sinks() + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/oam/link.py b/sdk/python/pulumi_aws/oam/link.py index bea28aa173a..6d5622f4995 100644 --- a/sdk/python/pulumi_aws/oam/link.py +++ b/sdk/python/pulumi_aws/oam/link.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LinkArgs', 'Link'] @@ -27,11 +27,40 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "label_template", label_template) - pulumi.set(__self__, "resource_types", resource_types) - pulumi.set(__self__, "sink_identifier", sink_identifier) + LinkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + label_template=label_template, + resource_types=resource_types, + sink_identifier=sink_identifier, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + label_template: Optional[pulumi.Input[str]] = None, + resource_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sink_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if label_template is None and 'labelTemplate' in kwargs: + label_template = kwargs['labelTemplate'] + if label_template is None: + raise TypeError("Missing 'label_template' argument") + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if resource_types is None: + raise TypeError("Missing 'resource_types' argument") + if sink_identifier is None and 'sinkIdentifier' in kwargs: + sink_identifier = kwargs['sinkIdentifier'] + if sink_identifier is None: + raise TypeError("Missing 'sink_identifier' argument") + + _setter("label_template", label_template) + _setter("resource_types", resource_types) + _setter("sink_identifier", sink_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="labelTemplate") @@ -109,27 +138,66 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + _LinkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + label=label, + label_template=label_template, + link_id=link_id, + resource_types=resource_types, + sink_arn=sink_arn, + sink_identifier=sink_identifier, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + label: Optional[pulumi.Input[str]] = None, + label_template: Optional[pulumi.Input[str]] = None, + link_id: Optional[pulumi.Input[str]] = None, + resource_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sink_arn: Optional[pulumi.Input[str]] = None, + sink_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if label_template is None and 'labelTemplate' in kwargs: + label_template = kwargs['labelTemplate'] + if link_id is None and 'linkId' in kwargs: + link_id = kwargs['linkId'] + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if sink_arn is None and 'sinkArn' in kwargs: + sink_arn = kwargs['sinkArn'] + if sink_identifier is None and 'sinkIdentifier' in kwargs: + sink_identifier = kwargs['sinkIdentifier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if label is not None: - pulumi.set(__self__, "label", label) + _setter("label", label) if label_template is not None: - pulumi.set(__self__, "label_template", label_template) + _setter("label_template", label_template) if link_id is not None: - pulumi.set(__self__, "link_id", link_id) + _setter("link_id", link_id) if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) if sink_arn is not None: - pulumi.set(__self__, "sink_arn", sink_arn) + _setter("sink_arn", sink_arn) if sink_identifier is not None: - pulumi.set(__self__, "sink_identifier", sink_identifier) + _setter("sink_identifier", sink_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -331,6 +399,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LinkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/oam/sink.py b/sdk/python/pulumi_aws/oam/sink.py index cdc7192b619..963e2675fa4 100644 --- a/sdk/python/pulumi_aws/oam/sink.py +++ b/sdk/python/pulumi_aws/oam/sink.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SinkArgs', 'Sink'] @@ -23,10 +23,23 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + SinkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -72,19 +85,42 @@ def __init__(__self__, *, :param pulumi.Input[str] sink_id: ID string that AWS generated as part of the sink ARN. :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. """ + _SinkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + sink_id=sink_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + sink_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sink_id is None and 'sinkId' in kwargs: + sink_id = kwargs['sinkId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sink_id is not None: - pulumi.set(__self__, "sink_id", sink_id) + _setter("sink_id", sink_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -226,6 +262,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SinkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/oam/sink_policy.py b/sdk/python/pulumi_aws/oam/sink_policy.py index 41a57ea7326..b27468b8d69 100644 --- a/sdk/python/pulumi_aws/oam/sink_policy.py +++ b/sdk/python/pulumi_aws/oam/sink_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SinkPolicyArgs', 'SinkPolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: JSON policy to use. If you are updating an existing policy, the entire existing policy is replaced by what you specify here. :param pulumi.Input[str] sink_identifier: ARN of the sink to attach this policy to. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "sink_identifier", sink_identifier) + SinkPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + sink_identifier=sink_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + sink_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if sink_identifier is None and 'sinkIdentifier' in kwargs: + sink_identifier = kwargs['sinkIdentifier'] + if sink_identifier is None: + raise TypeError("Missing 'sink_identifier' argument") + + _setter("policy", policy) + _setter("sink_identifier", sink_identifier) @property @pulumi.getter @@ -63,14 +82,35 @@ def __init__(__self__, *, :param pulumi.Input[str] sink_id: ID string that AWS generated as part of the sink ARN. :param pulumi.Input[str] sink_identifier: ARN of the sink to attach this policy to. """ + _SinkPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + policy=policy, + sink_id=sink_id, + sink_identifier=sink_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + sink_id: Optional[pulumi.Input[str]] = None, + sink_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sink_id is None and 'sinkId' in kwargs: + sink_id = kwargs['sinkId'] + if sink_identifier is None and 'sinkIdentifier' in kwargs: + sink_identifier = kwargs['sinkIdentifier'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if sink_id is not None: - pulumi.set(__self__, "sink_id", sink_id) + _setter("sink_id", sink_id) if sink_identifier is not None: - pulumi.set(__self__, "sink_identifier", sink_identifier) + _setter("sink_identifier", sink_identifier) @property @pulumi.getter @@ -248,6 +288,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SinkPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opensearch/_inputs.py b/sdk/python/pulumi_aws/opensearch/_inputs.py index 11bb183ad2c..58eeea44fed 100644 --- a/sdk/python/pulumi_aws/opensearch/_inputs.py +++ b/sdk/python/pulumi_aws/opensearch/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -60,13 +60,38 @@ def __init__(__self__, *, :param pulumi.Input[bool] internal_user_database_enabled: Whether the internal user database is enabled. Default is `false`. :param pulumi.Input['DomainAdvancedSecurityOptionsMasterUserOptionsArgs'] master_user_options: Configuration block for the main user. Detailed below. """ - pulumi.set(__self__, "enabled", enabled) + DomainAdvancedSecurityOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + anonymous_auth_enabled=anonymous_auth_enabled, + internal_user_database_enabled=internal_user_database_enabled, + master_user_options=master_user_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + anonymous_auth_enabled: Optional[pulumi.Input[bool]] = None, + internal_user_database_enabled: Optional[pulumi.Input[bool]] = None, + master_user_options: Optional[pulumi.Input['DomainAdvancedSecurityOptionsMasterUserOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if anonymous_auth_enabled is None and 'anonymousAuthEnabled' in kwargs: + anonymous_auth_enabled = kwargs['anonymousAuthEnabled'] + if internal_user_database_enabled is None and 'internalUserDatabaseEnabled' in kwargs: + internal_user_database_enabled = kwargs['internalUserDatabaseEnabled'] + if master_user_options is None and 'masterUserOptions' in kwargs: + master_user_options = kwargs['masterUserOptions'] + + _setter("enabled", enabled) if anonymous_auth_enabled is not None: - pulumi.set(__self__, "anonymous_auth_enabled", anonymous_auth_enabled) + _setter("anonymous_auth_enabled", anonymous_auth_enabled) if internal_user_database_enabled is not None: - pulumi.set(__self__, "internal_user_database_enabled", internal_user_database_enabled) + _setter("internal_user_database_enabled", internal_user_database_enabled) if master_user_options is not None: - pulumi.set(__self__, "master_user_options", master_user_options) + _setter("master_user_options", master_user_options) @property @pulumi.getter @@ -128,12 +153,33 @@ def __init__(__self__, *, :param pulumi.Input[str] master_user_name: Main user's username, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if `internal_user_database_enabled` is set to `true`. :param pulumi.Input[str] master_user_password: Main user's password, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if `internal_user_database_enabled` is set to `true`. """ + DomainAdvancedSecurityOptionsMasterUserOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + master_user_arn=master_user_arn, + master_user_name=master_user_name, + master_user_password=master_user_password, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + master_user_arn: Optional[pulumi.Input[str]] = None, + master_user_name: Optional[pulumi.Input[str]] = None, + master_user_password: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if master_user_arn is None and 'masterUserArn' in kwargs: + master_user_arn = kwargs['masterUserArn'] + if master_user_name is None and 'masterUserName' in kwargs: + master_user_name = kwargs['masterUserName'] + if master_user_password is None and 'masterUserPassword' in kwargs: + master_user_password = kwargs['masterUserPassword'] + if master_user_arn is not None: - pulumi.set(__self__, "master_user_arn", master_user_arn) + _setter("master_user_arn", master_user_arn) if master_user_name is not None: - pulumi.set(__self__, "master_user_name", master_user_name) + _setter("master_user_name", master_user_name) if master_user_password is not None: - pulumi.set(__self__, "master_user_password", master_user_password) + _setter("master_user_password", master_user_password) @property @pulumi.getter(name="masterUserArn") @@ -183,11 +229,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DomainAutoTuneOptionsMaintenanceScheduleArgs']]] maintenance_schedules: Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. :param pulumi.Input[str] rollback_on_disable: Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: `DEFAULT_ROLLBACK` or `NO_ROLLBACK`. """ - pulumi.set(__self__, "desired_state", desired_state) + DomainAutoTuneOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_state=desired_state, + maintenance_schedules=maintenance_schedules, + rollback_on_disable=rollback_on_disable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_state: Optional[pulumi.Input[str]] = None, + maintenance_schedules: Optional[pulumi.Input[Sequence[pulumi.Input['DomainAutoTuneOptionsMaintenanceScheduleArgs']]]] = None, + rollback_on_disable: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if desired_state is None: + raise TypeError("Missing 'desired_state' argument") + if maintenance_schedules is None and 'maintenanceSchedules' in kwargs: + maintenance_schedules = kwargs['maintenanceSchedules'] + if rollback_on_disable is None and 'rollbackOnDisable' in kwargs: + rollback_on_disable = kwargs['rollbackOnDisable'] + + _setter("desired_state", desired_state) if maintenance_schedules is not None: - pulumi.set(__self__, "maintenance_schedules", maintenance_schedules) + _setter("maintenance_schedules", maintenance_schedules) if rollback_on_disable is not None: - pulumi.set(__self__, "rollback_on_disable", rollback_on_disable) + _setter("rollback_on_disable", rollback_on_disable) @property @pulumi.getter(name="desiredState") @@ -237,9 +306,34 @@ def __init__(__self__, *, :param pulumi.Input['DomainAutoTuneOptionsMaintenanceScheduleDurationArgs'] duration: Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. :param pulumi.Input[str] start_at: Date and time at which to start the Auto-Tune maintenance schedule in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). """ - pulumi.set(__self__, "cron_expression_for_recurrence", cron_expression_for_recurrence) - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "start_at", start_at) + DomainAutoTuneOptionsMaintenanceScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cron_expression_for_recurrence=cron_expression_for_recurrence, + duration=duration, + start_at=start_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cron_expression_for_recurrence: Optional[pulumi.Input[str]] = None, + duration: Optional[pulumi.Input['DomainAutoTuneOptionsMaintenanceScheduleDurationArgs']] = None, + start_at: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cron_expression_for_recurrence is None and 'cronExpressionForRecurrence' in kwargs: + cron_expression_for_recurrence = kwargs['cronExpressionForRecurrence'] + if cron_expression_for_recurrence is None: + raise TypeError("Missing 'cron_expression_for_recurrence' argument") + if duration is None: + raise TypeError("Missing 'duration' argument") + if start_at is None and 'startAt' in kwargs: + start_at = kwargs['startAt'] + if start_at is None: + raise TypeError("Missing 'start_at' argument") + + _setter("cron_expression_for_recurrence", cron_expression_for_recurrence) + _setter("duration", duration) + _setter("start_at", start_at) @property @pulumi.getter(name="cronExpressionForRecurrence") @@ -287,8 +381,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: `HOURS`. :param pulumi.Input[int] value: An integer specifying the value of the duration of an Auto-Tune maintenance window. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + DomainAutoTuneOptionsMaintenanceScheduleDurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -343,30 +454,87 @@ def __init__(__self__, *, :param pulumi.Input['DomainClusterConfigZoneAwarenessConfigArgs'] zone_awareness_config: Configuration block containing zone awareness settings. Detailed below. :param pulumi.Input[bool] zone_awareness_enabled: Whether zone awareness is enabled, set to `true` for multi-az deployment. To enable awareness with three Availability Zones, the `availability_zone_count` within the `zone_awareness_config` must be set to `3`. """ + DomainClusterConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_options=cold_storage_options, + dedicated_master_count=dedicated_master_count, + dedicated_master_enabled=dedicated_master_enabled, + dedicated_master_type=dedicated_master_type, + instance_count=instance_count, + instance_type=instance_type, + multi_az_with_standby_enabled=multi_az_with_standby_enabled, + warm_count=warm_count, + warm_enabled=warm_enabled, + warm_type=warm_type, + zone_awareness_config=zone_awareness_config, + zone_awareness_enabled=zone_awareness_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_options: Optional[pulumi.Input['DomainClusterConfigColdStorageOptionsArgs']] = None, + dedicated_master_count: Optional[pulumi.Input[int]] = None, + dedicated_master_enabled: Optional[pulumi.Input[bool]] = None, + dedicated_master_type: Optional[pulumi.Input[str]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + multi_az_with_standby_enabled: Optional[pulumi.Input[bool]] = None, + warm_count: Optional[pulumi.Input[int]] = None, + warm_enabled: Optional[pulumi.Input[bool]] = None, + warm_type: Optional[pulumi.Input[str]] = None, + zone_awareness_config: Optional[pulumi.Input['DomainClusterConfigZoneAwarenessConfigArgs']] = None, + zone_awareness_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_options is None and 'coldStorageOptions' in kwargs: + cold_storage_options = kwargs['coldStorageOptions'] + if dedicated_master_count is None and 'dedicatedMasterCount' in kwargs: + dedicated_master_count = kwargs['dedicatedMasterCount'] + if dedicated_master_enabled is None and 'dedicatedMasterEnabled' in kwargs: + dedicated_master_enabled = kwargs['dedicatedMasterEnabled'] + if dedicated_master_type is None and 'dedicatedMasterType' in kwargs: + dedicated_master_type = kwargs['dedicatedMasterType'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if multi_az_with_standby_enabled is None and 'multiAzWithStandbyEnabled' in kwargs: + multi_az_with_standby_enabled = kwargs['multiAzWithStandbyEnabled'] + if warm_count is None and 'warmCount' in kwargs: + warm_count = kwargs['warmCount'] + if warm_enabled is None and 'warmEnabled' in kwargs: + warm_enabled = kwargs['warmEnabled'] + if warm_type is None and 'warmType' in kwargs: + warm_type = kwargs['warmType'] + if zone_awareness_config is None and 'zoneAwarenessConfig' in kwargs: + zone_awareness_config = kwargs['zoneAwarenessConfig'] + if zone_awareness_enabled is None and 'zoneAwarenessEnabled' in kwargs: + zone_awareness_enabled = kwargs['zoneAwarenessEnabled'] + if cold_storage_options is not None: - pulumi.set(__self__, "cold_storage_options", cold_storage_options) + _setter("cold_storage_options", cold_storage_options) if dedicated_master_count is not None: - pulumi.set(__self__, "dedicated_master_count", dedicated_master_count) + _setter("dedicated_master_count", dedicated_master_count) if dedicated_master_enabled is not None: - pulumi.set(__self__, "dedicated_master_enabled", dedicated_master_enabled) + _setter("dedicated_master_enabled", dedicated_master_enabled) if dedicated_master_type is not None: - pulumi.set(__self__, "dedicated_master_type", dedicated_master_type) + _setter("dedicated_master_type", dedicated_master_type) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if multi_az_with_standby_enabled is not None: - pulumi.set(__self__, "multi_az_with_standby_enabled", multi_az_with_standby_enabled) + _setter("multi_az_with_standby_enabled", multi_az_with_standby_enabled) if warm_count is not None: - pulumi.set(__self__, "warm_count", warm_count) + _setter("warm_count", warm_count) if warm_enabled is not None: - pulumi.set(__self__, "warm_enabled", warm_enabled) + _setter("warm_enabled", warm_enabled) if warm_type is not None: - pulumi.set(__self__, "warm_type", warm_type) + _setter("warm_type", warm_type) if zone_awareness_config is not None: - pulumi.set(__self__, "zone_awareness_config", zone_awareness_config) + _setter("zone_awareness_config", zone_awareness_config) if zone_awareness_enabled is not None: - pulumi.set(__self__, "zone_awareness_enabled", zone_awareness_enabled) + _setter("zone_awareness_enabled", zone_awareness_enabled) @property @pulumi.getter(name="coldStorageOptions") @@ -517,8 +685,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Boolean to enable cold storage for an OpenSearch domain. Defaults to `false`. Master and ultrawarm nodes must be enabled for cold storage. """ + DomainClusterConfigColdStorageOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -540,8 +719,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] availability_zone_count: Number of Availability Zones for the domain to use with `zone_awareness_enabled`. Defaults to `2`. Valid values: `2` or `3`. """ + DomainClusterConfigZoneAwarenessConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_count=availability_zone_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_count is None and 'availabilityZoneCount' in kwargs: + availability_zone_count = kwargs['availabilityZoneCount'] + if availability_zone_count is not None: - pulumi.set(__self__, "availability_zone_count", availability_zone_count) + _setter("availability_zone_count", availability_zone_count) @property @pulumi.getter(name="availabilityZoneCount") @@ -569,11 +761,40 @@ def __init__(__self__, *, :param pulumi.Input[str] user_pool_id: ID of the Cognito User Pool to use. :param pulumi.Input[bool] enabled: Whether Amazon Cognito authentication with Dashboard is enabled or not. Default is `false`. """ - pulumi.set(__self__, "identity_pool_id", identity_pool_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "user_pool_id", user_pool_id) + DomainCognitoOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_pool_id=identity_pool_id, + role_arn=role_arn, + user_pool_id=user_pool_id, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_pool_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + user_pool_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if identity_pool_id is None: + raise TypeError("Missing 'identity_pool_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + + _setter("identity_pool_id", identity_pool_id) + _setter("role_arn", role_arn) + _setter("user_pool_id", user_pool_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="identityPoolId") @@ -639,16 +860,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] enforce_https: Whether or not to require HTTPS. Defaults to `true`. :param pulumi.Input[str] tls_security_policy: Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: `Policy-Min-TLS-1-0-2019-07` and `Policy-Min-TLS-1-2-2019-07`. The provider will only perform drift detection if a configuration value is provided. """ + DomainDomainEndpointOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_endpoint=custom_endpoint, + custom_endpoint_certificate_arn=custom_endpoint_certificate_arn, + custom_endpoint_enabled=custom_endpoint_enabled, + enforce_https=enforce_https, + tls_security_policy=tls_security_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_endpoint: Optional[pulumi.Input[str]] = None, + custom_endpoint_certificate_arn: Optional[pulumi.Input[str]] = None, + custom_endpoint_enabled: Optional[pulumi.Input[bool]] = None, + enforce_https: Optional[pulumi.Input[bool]] = None, + tls_security_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_endpoint is None and 'customEndpoint' in kwargs: + custom_endpoint = kwargs['customEndpoint'] + if custom_endpoint_certificate_arn is None and 'customEndpointCertificateArn' in kwargs: + custom_endpoint_certificate_arn = kwargs['customEndpointCertificateArn'] + if custom_endpoint_enabled is None and 'customEndpointEnabled' in kwargs: + custom_endpoint_enabled = kwargs['customEndpointEnabled'] + if enforce_https is None and 'enforceHttps' in kwargs: + enforce_https = kwargs['enforceHttps'] + if tls_security_policy is None and 'tlsSecurityPolicy' in kwargs: + tls_security_policy = kwargs['tlsSecurityPolicy'] + if custom_endpoint is not None: - pulumi.set(__self__, "custom_endpoint", custom_endpoint) + _setter("custom_endpoint", custom_endpoint) if custom_endpoint_certificate_arn is not None: - pulumi.set(__self__, "custom_endpoint_certificate_arn", custom_endpoint_certificate_arn) + _setter("custom_endpoint_certificate_arn", custom_endpoint_certificate_arn) if custom_endpoint_enabled is not None: - pulumi.set(__self__, "custom_endpoint_enabled", custom_endpoint_enabled) + _setter("custom_endpoint_enabled", custom_endpoint_enabled) if enforce_https is not None: - pulumi.set(__self__, "enforce_https", enforce_https) + _setter("enforce_https", enforce_https) if tls_security_policy is not None: - pulumi.set(__self__, "tls_security_policy", tls_security_policy) + _setter("tls_security_policy", tls_security_policy) @property @pulumi.getter(name="customEndpoint") @@ -726,15 +976,42 @@ def __init__(__self__, *, :param pulumi.Input[int] volume_size: Size of EBS volumes attached to data nodes (in GiB). :param pulumi.Input[str] volume_type: Type of EBS volumes attached to data nodes. """ - pulumi.set(__self__, "ebs_enabled", ebs_enabled) + DomainEbsOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_enabled=ebs_enabled, + iops=iops, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_enabled: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + throughput: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_enabled is None and 'ebsEnabled' in kwargs: + ebs_enabled = kwargs['ebsEnabled'] + if ebs_enabled is None: + raise TypeError("Missing 'ebs_enabled' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("ebs_enabled", ebs_enabled) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="ebsEnabled") @@ -806,9 +1083,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Whether to enable encryption at rest. If the `encrypt_at_rest` block is not provided then this defaults to `false`. Enabling encryption on new domains requires an `engine_version` of `OpenSearch_X.Y` or `Elasticsearch_5.1` or greater. :param pulumi.Input[str] kms_key_id: KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the `aws/es` service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead. """ - pulumi.set(__self__, "enabled", enabled) + DomainEncryptAtRestArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("enabled", enabled) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter @@ -846,10 +1140,33 @@ def __init__(__self__, *, :param pulumi.Input[str] log_type: Type of OpenSearch log. Valid values: `INDEX_SLOW_LOGS`, `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `AUDIT_LOGS`. :param pulumi.Input[bool] enabled: Whether given log publishing option is enabled or not. """ - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) - pulumi.set(__self__, "log_type", log_type) + DomainLogPublishingOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + log_type=log_type, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group_arn: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if cloudwatch_log_group_arn is None: + raise TypeError("Missing 'cloudwatch_log_group_arn' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("log_type", log_type) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="cloudwatchLogGroupArn") @@ -895,7 +1212,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether to enable node-to-node encryption. If the `node_to_node_encryption` block is not provided then this defaults to `false`. Enabling node-to-node encryption of a new domain requires an `engine_version` of `OpenSearch_X.Y` or `Elasticsearch_6.0` or greater. """ - pulumi.set(__self__, "enabled", enabled) + DomainNodeToNodeEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -918,10 +1248,25 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Enabled disabled toggle for off-peak update window. """ + DomainOffPeakWindowOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + off_peak_window=off_peak_window, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + off_peak_window: Optional[pulumi.Input['DomainOffPeakWindowOptionsOffPeakWindowArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if off_peak_window is None and 'offPeakWindow' in kwargs: + off_peak_window = kwargs['offPeakWindow'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if off_peak_window is not None: - pulumi.set(__self__, "off_peak_window", off_peak_window) + _setter("off_peak_window", off_peak_window) @property @pulumi.getter @@ -952,8 +1297,21 @@ def __init__(__self__, *, """ :param pulumi.Input['DomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeArgs'] window_start_time: 10h window for updates """ + DomainOffPeakWindowOptionsOffPeakWindowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + window_start_time=window_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + window_start_time: Optional[pulumi.Input['DomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if window_start_time is None and 'windowStartTime' in kwargs: + window_start_time = kwargs['windowStartTime'] + if window_start_time is not None: - pulumi.set(__self__, "window_start_time", window_start_time) + _setter("window_start_time", window_start_time) @property @pulumi.getter(name="windowStartTime") @@ -977,10 +1335,23 @@ def __init__(__self__, *, :param pulumi.Input[int] hours: Starting hour of the 10-hour window for updates :param pulumi.Input[int] minutes: Starting minute of the 10-hour window for updates """ + DomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[pulumi.Input[int]] = None, + minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is not None: - pulumi.set(__self__, "hours", hours) + _setter("hours", hours) if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) @property @pulumi.getter @@ -1026,20 +1397,53 @@ def __init__(__self__, *, :param pulumi.Input[int] session_timeout_minutes: Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. :param pulumi.Input[str] subject_key: Element of the SAML assertion to use for username. Default is NameID. """ + DomainSamlOptionsSamlOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + idp=idp, + master_backend_role=master_backend_role, + master_user_name=master_user_name, + roles_key=roles_key, + session_timeout_minutes=session_timeout_minutes, + subject_key=subject_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + idp: Optional[pulumi.Input['DomainSamlOptionsSamlOptionsIdpArgs']] = None, + master_backend_role: Optional[pulumi.Input[str]] = None, + master_user_name: Optional[pulumi.Input[str]] = None, + roles_key: Optional[pulumi.Input[str]] = None, + session_timeout_minutes: Optional[pulumi.Input[int]] = None, + subject_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if master_backend_role is None and 'masterBackendRole' in kwargs: + master_backend_role = kwargs['masterBackendRole'] + if master_user_name is None and 'masterUserName' in kwargs: + master_user_name = kwargs['masterUserName'] + if roles_key is None and 'rolesKey' in kwargs: + roles_key = kwargs['rolesKey'] + if session_timeout_minutes is None and 'sessionTimeoutMinutes' in kwargs: + session_timeout_minutes = kwargs['sessionTimeoutMinutes'] + if subject_key is None and 'subjectKey' in kwargs: + subject_key = kwargs['subjectKey'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if idp is not None: - pulumi.set(__self__, "idp", idp) + _setter("idp", idp) if master_backend_role is not None: - pulumi.set(__self__, "master_backend_role", master_backend_role) + _setter("master_backend_role", master_backend_role) if master_user_name is not None: - pulumi.set(__self__, "master_user_name", master_user_name) + _setter("master_user_name", master_user_name) if roles_key is not None: - pulumi.set(__self__, "roles_key", roles_key) + _setter("roles_key", roles_key) if session_timeout_minutes is not None: - pulumi.set(__self__, "session_timeout_minutes", session_timeout_minutes) + _setter("session_timeout_minutes", session_timeout_minutes) if subject_key is not None: - pulumi.set(__self__, "subject_key", subject_key) + _setter("subject_key", subject_key) @property @pulumi.getter @@ -1135,8 +1539,29 @@ def __init__(__self__, *, :param pulumi.Input[str] entity_id: Unique Entity ID of the application in SAML Identity Provider. :param pulumi.Input[str] metadata_content: Metadata of the SAML application in xml format. """ - pulumi.set(__self__, "entity_id", entity_id) - pulumi.set(__self__, "metadata_content", metadata_content) + DomainSamlOptionsSamlOptionsIdpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_id=entity_id, + metadata_content=metadata_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_id: Optional[pulumi.Input[str]] = None, + metadata_content: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_id is None and 'entityId' in kwargs: + entity_id = kwargs['entityId'] + if entity_id is None: + raise TypeError("Missing 'entity_id' argument") + if metadata_content is None and 'metadataContent' in kwargs: + metadata_content = kwargs['metadataContent'] + if metadata_content is None: + raise TypeError("Missing 'metadata_content' argument") + + _setter("entity_id", entity_id) + _setter("metadata_content", metadata_content) @property @pulumi.getter(name="entityId") @@ -1170,7 +1595,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] automated_snapshot_start_hour: Hour during which the service takes an automated daily snapshot of the indices in the domain. """ - pulumi.set(__self__, "automated_snapshot_start_hour", automated_snapshot_start_hour) + DomainSnapshotOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + automated_snapshot_start_hour=automated_snapshot_start_hour, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automated_snapshot_start_hour: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automated_snapshot_start_hour is None and 'automatedSnapshotStartHour' in kwargs: + automated_snapshot_start_hour = kwargs['automatedSnapshotStartHour'] + if automated_snapshot_start_hour is None: + raise TypeError("Missing 'automated_snapshot_start_hour' argument") + + _setter("automated_snapshot_start_hour", automated_snapshot_start_hour) @property @pulumi.getter(name="automatedSnapshotStartHour") @@ -1192,8 +1632,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] auto_software_update_enabled: Whether automatic service software updates are enabled for the domain. Defaults to `false`. """ + DomainSoftwareUpdateOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_software_update_enabled=auto_software_update_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_software_update_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_software_update_enabled is None and 'autoSoftwareUpdateEnabled' in kwargs: + auto_software_update_enabled = kwargs['autoSoftwareUpdateEnabled'] + if auto_software_update_enabled is not None: - pulumi.set(__self__, "auto_software_update_enabled", auto_software_update_enabled) + _setter("auto_software_update_enabled", auto_software_update_enabled) @property @pulumi.getter(name="autoSoftwareUpdateEnabled") @@ -1219,14 +1672,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of VPC Security Group IDs to be applied to the OpenSearch domain endpoints. If omitted, the default Security Group for the VPC will be used. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of VPC Subnet IDs for the OpenSearch domain endpoints to be created in. """ + DomainVpcOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="availabilityZones") @@ -1280,10 +1758,25 @@ def __init__(__self__, *, :param pulumi.Input['OutboundConnectionConnectionPropertiesCrossClusterSearchArgs'] cross_cluster_search: Configuration block for cross cluster search. :param pulumi.Input[str] endpoint: The endpoint of the remote domain, is only set when `connection_mode` is `VPC_ENDPOINT` and `accept_connection` is `TRUE`. """ + OutboundConnectionConnectionPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cross_cluster_search=cross_cluster_search, + endpoint=endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cross_cluster_search: Optional[pulumi.Input['OutboundConnectionConnectionPropertiesCrossClusterSearchArgs']] = None, + endpoint: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cross_cluster_search is None and 'crossClusterSearch' in kwargs: + cross_cluster_search = kwargs['crossClusterSearch'] + if cross_cluster_search is not None: - pulumi.set(__self__, "cross_cluster_search", cross_cluster_search) + _setter("cross_cluster_search", cross_cluster_search) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) @property @pulumi.getter(name="crossClusterSearch") @@ -1317,8 +1810,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] skip_unavailable: Skips unavailable clusters and can only be used for cross-cluster searches. Accepted values are `ENABLED` or `DISABLED`. """ + OutboundConnectionConnectionPropertiesCrossClusterSearchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + skip_unavailable=skip_unavailable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + skip_unavailable: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skip_unavailable is None and 'skipUnavailable' in kwargs: + skip_unavailable = kwargs['skipUnavailable'] + if skip_unavailable is not None: - pulumi.set(__self__, "skip_unavailable", skip_unavailable) + _setter("skip_unavailable", skip_unavailable) @property @pulumi.getter(name="skipUnavailable") @@ -1344,9 +1850,34 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_id: The Account ID of the owner of the local domain. :param pulumi.Input[str] region: The region of the local domain. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "owner_id", owner_id) - pulumi.set(__self__, "region", region) + OutboundConnectionLocalDomainInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + owner_id=owner_id, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if owner_id is None: + raise TypeError("Missing 'owner_id' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("domain_name", domain_name) + _setter("owner_id", owner_id) + _setter("region", region) @property @pulumi.getter(name="domainName") @@ -1396,9 +1927,34 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_id: The Account ID of the owner of the remote domain. :param pulumi.Input[str] region: The region of the remote domain. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "owner_id", owner_id) - pulumi.set(__self__, "region", region) + OutboundConnectionRemoteDomainInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + owner_id=owner_id, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if owner_id is None: + raise TypeError("Missing 'owner_id' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("domain_name", domain_name) + _setter("owner_id", owner_id) + _setter("region", region) @property @pulumi.getter(name="domainName") @@ -1446,8 +2002,29 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_bucket_name: The name of the Amazon S3 bucket containing the package. :param pulumi.Input[str] s3_key: Key (file name) of the package. """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) - pulumi.set(__self__, "s3_key", s3_key) + PackagePackageSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + s3_key=s3_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[pulumi.Input[str]] = None, + s3_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_key is None: + raise TypeError("Missing 's3_key' argument") + + _setter("s3_bucket_name", s3_bucket_name) + _setter("s3_key", s3_key) @property @pulumi.getter(name="s3BucketName") @@ -1479,10 +2056,23 @@ class ServerlessCollectionTimeoutsArgs: def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None): + ServerlessCollectionTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) @property @pulumi.getter @@ -1516,13 +2106,38 @@ def __init__(__self__, *, :param pulumi.Input[int] session_timeout: Session timeout, in minutes. Minimum is 5 minutes and maximum is 720 minutes (12 hours). Default is 60 minutes. :param pulumi.Input[str] user_attribute: User attribute for this SAML integration. """ - pulumi.set(__self__, "metadata", metadata) + ServerlessSecurityConfigSamlOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metadata=metadata, + group_attribute=group_attribute, + session_timeout=session_timeout, + user_attribute=user_attribute, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metadata: Optional[pulumi.Input[str]] = None, + group_attribute: Optional[pulumi.Input[str]] = None, + session_timeout: Optional[pulumi.Input[int]] = None, + user_attribute: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metadata is None: + raise TypeError("Missing 'metadata' argument") + if group_attribute is None and 'groupAttribute' in kwargs: + group_attribute = kwargs['groupAttribute'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + if user_attribute is None and 'userAttribute' in kwargs: + user_attribute = kwargs['userAttribute'] + + _setter("metadata", metadata) if group_attribute is not None: - pulumi.set(__self__, "group_attribute", group_attribute) + _setter("group_attribute", group_attribute) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) if user_attribute is not None: - pulumi.set(__self__, "user_attribute", user_attribute) + _setter("user_attribute", user_attribute) @property @pulumi.getter @@ -1579,12 +2194,27 @@ def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, update: Optional[pulumi.Input[str]] = None): + ServerlessVpcEndpointTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -1625,13 +2255,40 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of subnet IDs associated with the VPC endpoints for the domain. If your domain uses multiple Availability Zones, you need to provide two subnet IDs, one per zone. Otherwise, provide only one. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The list of security group IDs associated with the VPC endpoints for the domain. If you do not provide a security group ID, OpenSearch Service uses the default security group for the VPC. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + VpcEndpointVpcOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + availability_zones=availability_zones, + security_group_ids=security_group_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("subnet_ids", subnet_ids) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="subnetIds") @@ -1684,8 +2341,27 @@ def __init__(__self__, *, """ :param bool enabled: Enabled disabled toggle for off-peak update window """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "off_peak_windows", off_peak_windows) + GetDomainOffPeakWindowOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + off_peak_windows=off_peak_windows, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + off_peak_windows: Optional[Sequence['GetDomainOffPeakWindowOptionsOffPeakWindowArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if off_peak_windows is None and 'offPeakWindows' in kwargs: + off_peak_windows = kwargs['offPeakWindows'] + if off_peak_windows is None: + raise TypeError("Missing 'off_peak_windows' argument") + + _setter("enabled", enabled) + _setter("off_peak_windows", off_peak_windows) @property @pulumi.getter @@ -1716,7 +2392,22 @@ def __init__(__self__, *, """ :param Sequence['GetDomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeArgs'] window_start_times: 10h window for updates """ - pulumi.set(__self__, "window_start_times", window_start_times) + GetDomainOffPeakWindowOptionsOffPeakWindowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + window_start_times=window_start_times, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + window_start_times: Optional[Sequence['GetDomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if window_start_times is None and 'windowStartTimes' in kwargs: + window_start_times = kwargs['windowStartTimes'] + if window_start_times is None: + raise TypeError("Missing 'window_start_times' argument") + + _setter("window_start_times", window_start_times) @property @pulumi.getter(name="windowStartTimes") @@ -1740,8 +2431,25 @@ def __init__(__self__, *, :param int hours: Starting hour of the 10-hour window for updates :param int minutes: Starting minute of the 10-hour window for updates """ - pulumi.set(__self__, "hours", hours) - pulumi.set(__self__, "minutes", minutes) + GetDomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[int] = None, + minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is None: + raise TypeError("Missing 'hours' argument") + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("hours", hours) + _setter("minutes", minutes) @property @pulumi.getter @@ -1781,10 +2489,41 @@ def __init__(__self__, *, :param int session_timeout: Session timeout, in minutes. Minimum is 5 minutes and maximum is 720 minutes (12 hours). Default is 60 minutes. :param str user_attribute: User attribute for this SAML integration. """ - pulumi.set(__self__, "group_attribute", group_attribute) - pulumi.set(__self__, "metadata", metadata) - pulumi.set(__self__, "session_timeout", session_timeout) - pulumi.set(__self__, "user_attribute", user_attribute) + GetServerlessSecurityConfigSamlOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_attribute=group_attribute, + metadata=metadata, + session_timeout=session_timeout, + user_attribute=user_attribute, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_attribute: Optional[str] = None, + metadata: Optional[str] = None, + session_timeout: Optional[int] = None, + user_attribute: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_attribute is None and 'groupAttribute' in kwargs: + group_attribute = kwargs['groupAttribute'] + if group_attribute is None: + raise TypeError("Missing 'group_attribute' argument") + if metadata is None: + raise TypeError("Missing 'metadata' argument") + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + if session_timeout is None: + raise TypeError("Missing 'session_timeout' argument") + if user_attribute is None and 'userAttribute' in kwargs: + user_attribute = kwargs['userAttribute'] + if user_attribute is None: + raise TypeError("Missing 'user_attribute' argument") + + _setter("group_attribute", group_attribute) + _setter("metadata", metadata) + _setter("session_timeout", session_timeout) + _setter("user_attribute", user_attribute) @property @pulumi.getter(name="groupAttribute") diff --git a/sdk/python/pulumi_aws/opensearch/domain.py b/sdk/python/pulumi_aws/opensearch/domain.py index e0d33a3f8e1..28fee267147 100644 --- a/sdk/python/pulumi_aws/opensearch/domain.py +++ b/sdk/python/pulumi_aws/opensearch/domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -59,42 +59,121 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['DomainVpcOptionsArgs'] vpc_options: Configuration block for VPC related options. Adding or removing this configuration forces a new resource ([documentation](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html)). Detailed below. """ + DomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policies=access_policies, + advanced_options=advanced_options, + advanced_security_options=advanced_security_options, + auto_tune_options=auto_tune_options, + cluster_config=cluster_config, + cognito_options=cognito_options, + domain_endpoint_options=domain_endpoint_options, + domain_name=domain_name, + ebs_options=ebs_options, + encrypt_at_rest=encrypt_at_rest, + engine_version=engine_version, + log_publishing_options=log_publishing_options, + node_to_node_encryption=node_to_node_encryption, + off_peak_window_options=off_peak_window_options, + snapshot_options=snapshot_options, + software_update_options=software_update_options, + tags=tags, + vpc_options=vpc_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policies: Optional[pulumi.Input[str]] = None, + advanced_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + advanced_security_options: Optional[pulumi.Input['DomainAdvancedSecurityOptionsArgs']] = None, + auto_tune_options: Optional[pulumi.Input['DomainAutoTuneOptionsArgs']] = None, + cluster_config: Optional[pulumi.Input['DomainClusterConfigArgs']] = None, + cognito_options: Optional[pulumi.Input['DomainCognitoOptionsArgs']] = None, + domain_endpoint_options: Optional[pulumi.Input['DomainDomainEndpointOptionsArgs']] = None, + domain_name: Optional[pulumi.Input[str]] = None, + ebs_options: Optional[pulumi.Input['DomainEbsOptionsArgs']] = None, + encrypt_at_rest: Optional[pulumi.Input['DomainEncryptAtRestArgs']] = None, + engine_version: Optional[pulumi.Input[str]] = None, + log_publishing_options: Optional[pulumi.Input[Sequence[pulumi.Input['DomainLogPublishingOptionArgs']]]] = None, + node_to_node_encryption: Optional[pulumi.Input['DomainNodeToNodeEncryptionArgs']] = None, + off_peak_window_options: Optional[pulumi.Input['DomainOffPeakWindowOptionsArgs']] = None, + snapshot_options: Optional[pulumi.Input['DomainSnapshotOptionsArgs']] = None, + software_update_options: Optional[pulumi.Input['DomainSoftwareUpdateOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_options: Optional[pulumi.Input['DomainVpcOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policies is None and 'accessPolicies' in kwargs: + access_policies = kwargs['accessPolicies'] + if advanced_options is None and 'advancedOptions' in kwargs: + advanced_options = kwargs['advancedOptions'] + if advanced_security_options is None and 'advancedSecurityOptions' in kwargs: + advanced_security_options = kwargs['advancedSecurityOptions'] + if auto_tune_options is None and 'autoTuneOptions' in kwargs: + auto_tune_options = kwargs['autoTuneOptions'] + if cluster_config is None and 'clusterConfig' in kwargs: + cluster_config = kwargs['clusterConfig'] + if cognito_options is None and 'cognitoOptions' in kwargs: + cognito_options = kwargs['cognitoOptions'] + if domain_endpoint_options is None and 'domainEndpointOptions' in kwargs: + domain_endpoint_options = kwargs['domainEndpointOptions'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if ebs_options is None and 'ebsOptions' in kwargs: + ebs_options = kwargs['ebsOptions'] + if encrypt_at_rest is None and 'encryptAtRest' in kwargs: + encrypt_at_rest = kwargs['encryptAtRest'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if log_publishing_options is None and 'logPublishingOptions' in kwargs: + log_publishing_options = kwargs['logPublishingOptions'] + if node_to_node_encryption is None and 'nodeToNodeEncryption' in kwargs: + node_to_node_encryption = kwargs['nodeToNodeEncryption'] + if off_peak_window_options is None and 'offPeakWindowOptions' in kwargs: + off_peak_window_options = kwargs['offPeakWindowOptions'] + if snapshot_options is None and 'snapshotOptions' in kwargs: + snapshot_options = kwargs['snapshotOptions'] + if software_update_options is None and 'softwareUpdateOptions' in kwargs: + software_update_options = kwargs['softwareUpdateOptions'] + if vpc_options is None and 'vpcOptions' in kwargs: + vpc_options = kwargs['vpcOptions'] + if access_policies is not None: - pulumi.set(__self__, "access_policies", access_policies) + _setter("access_policies", access_policies) if advanced_options is not None: - pulumi.set(__self__, "advanced_options", advanced_options) + _setter("advanced_options", advanced_options) if advanced_security_options is not None: - pulumi.set(__self__, "advanced_security_options", advanced_security_options) + _setter("advanced_security_options", advanced_security_options) if auto_tune_options is not None: - pulumi.set(__self__, "auto_tune_options", auto_tune_options) + _setter("auto_tune_options", auto_tune_options) if cluster_config is not None: - pulumi.set(__self__, "cluster_config", cluster_config) + _setter("cluster_config", cluster_config) if cognito_options is not None: - pulumi.set(__self__, "cognito_options", cognito_options) + _setter("cognito_options", cognito_options) if domain_endpoint_options is not None: - pulumi.set(__self__, "domain_endpoint_options", domain_endpoint_options) + _setter("domain_endpoint_options", domain_endpoint_options) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if ebs_options is not None: - pulumi.set(__self__, "ebs_options", ebs_options) + _setter("ebs_options", ebs_options) if encrypt_at_rest is not None: - pulumi.set(__self__, "encrypt_at_rest", encrypt_at_rest) + _setter("encrypt_at_rest", encrypt_at_rest) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if log_publishing_options is not None: - pulumi.set(__self__, "log_publishing_options", log_publishing_options) + _setter("log_publishing_options", log_publishing_options) if node_to_node_encryption is not None: - pulumi.set(__self__, "node_to_node_encryption", node_to_node_encryption) + _setter("node_to_node_encryption", node_to_node_encryption) if off_peak_window_options is not None: - pulumi.set(__self__, "off_peak_window_options", off_peak_window_options) + _setter("off_peak_window_options", off_peak_window_options) if snapshot_options is not None: - pulumi.set(__self__, "snapshot_options", snapshot_options) + _setter("snapshot_options", snapshot_options) if software_update_options is not None: - pulumi.set(__self__, "software_update_options", software_update_options) + _setter("software_update_options", software_update_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_options is not None: - pulumi.set(__self__, "vpc_options", vpc_options) + _setter("vpc_options", vpc_options) @property @pulumi.getter(name="accessPolicies") @@ -377,60 +456,159 @@ def __init__(__self__, *, * `vpc_options.0.vpc_id` - If the domain was created inside a VPC, the ID of the VPC. :param pulumi.Input['DomainVpcOptionsArgs'] vpc_options: Configuration block for VPC related options. Adding or removing this configuration forces a new resource ([documentation](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html)). Detailed below. """ + _DomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policies=access_policies, + advanced_options=advanced_options, + advanced_security_options=advanced_security_options, + arn=arn, + auto_tune_options=auto_tune_options, + cluster_config=cluster_config, + cognito_options=cognito_options, + dashboard_endpoint=dashboard_endpoint, + domain_endpoint_options=domain_endpoint_options, + domain_id=domain_id, + domain_name=domain_name, + ebs_options=ebs_options, + encrypt_at_rest=encrypt_at_rest, + endpoint=endpoint, + engine_version=engine_version, + kibana_endpoint=kibana_endpoint, + log_publishing_options=log_publishing_options, + node_to_node_encryption=node_to_node_encryption, + off_peak_window_options=off_peak_window_options, + snapshot_options=snapshot_options, + software_update_options=software_update_options, + tags=tags, + tags_all=tags_all, + vpc_options=vpc_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policies: Optional[pulumi.Input[str]] = None, + advanced_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + advanced_security_options: Optional[pulumi.Input['DomainAdvancedSecurityOptionsArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_tune_options: Optional[pulumi.Input['DomainAutoTuneOptionsArgs']] = None, + cluster_config: Optional[pulumi.Input['DomainClusterConfigArgs']] = None, + cognito_options: Optional[pulumi.Input['DomainCognitoOptionsArgs']] = None, + dashboard_endpoint: Optional[pulumi.Input[str]] = None, + domain_endpoint_options: Optional[pulumi.Input['DomainDomainEndpointOptionsArgs']] = None, + domain_id: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + ebs_options: Optional[pulumi.Input['DomainEbsOptionsArgs']] = None, + encrypt_at_rest: Optional[pulumi.Input['DomainEncryptAtRestArgs']] = None, + endpoint: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + kibana_endpoint: Optional[pulumi.Input[str]] = None, + log_publishing_options: Optional[pulumi.Input[Sequence[pulumi.Input['DomainLogPublishingOptionArgs']]]] = None, + node_to_node_encryption: Optional[pulumi.Input['DomainNodeToNodeEncryptionArgs']] = None, + off_peak_window_options: Optional[pulumi.Input['DomainOffPeakWindowOptionsArgs']] = None, + snapshot_options: Optional[pulumi.Input['DomainSnapshotOptionsArgs']] = None, + software_update_options: Optional[pulumi.Input['DomainSoftwareUpdateOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_options: Optional[pulumi.Input['DomainVpcOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policies is None and 'accessPolicies' in kwargs: + access_policies = kwargs['accessPolicies'] + if advanced_options is None and 'advancedOptions' in kwargs: + advanced_options = kwargs['advancedOptions'] + if advanced_security_options is None and 'advancedSecurityOptions' in kwargs: + advanced_security_options = kwargs['advancedSecurityOptions'] + if auto_tune_options is None and 'autoTuneOptions' in kwargs: + auto_tune_options = kwargs['autoTuneOptions'] + if cluster_config is None and 'clusterConfig' in kwargs: + cluster_config = kwargs['clusterConfig'] + if cognito_options is None and 'cognitoOptions' in kwargs: + cognito_options = kwargs['cognitoOptions'] + if dashboard_endpoint is None and 'dashboardEndpoint' in kwargs: + dashboard_endpoint = kwargs['dashboardEndpoint'] + if domain_endpoint_options is None and 'domainEndpointOptions' in kwargs: + domain_endpoint_options = kwargs['domainEndpointOptions'] + if domain_id is None and 'domainId' in kwargs: + domain_id = kwargs['domainId'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if ebs_options is None and 'ebsOptions' in kwargs: + ebs_options = kwargs['ebsOptions'] + if encrypt_at_rest is None and 'encryptAtRest' in kwargs: + encrypt_at_rest = kwargs['encryptAtRest'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if kibana_endpoint is None and 'kibanaEndpoint' in kwargs: + kibana_endpoint = kwargs['kibanaEndpoint'] + if log_publishing_options is None and 'logPublishingOptions' in kwargs: + log_publishing_options = kwargs['logPublishingOptions'] + if node_to_node_encryption is None and 'nodeToNodeEncryption' in kwargs: + node_to_node_encryption = kwargs['nodeToNodeEncryption'] + if off_peak_window_options is None and 'offPeakWindowOptions' in kwargs: + off_peak_window_options = kwargs['offPeakWindowOptions'] + if snapshot_options is None and 'snapshotOptions' in kwargs: + snapshot_options = kwargs['snapshotOptions'] + if software_update_options is None and 'softwareUpdateOptions' in kwargs: + software_update_options = kwargs['softwareUpdateOptions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_options is None and 'vpcOptions' in kwargs: + vpc_options = kwargs['vpcOptions'] + if access_policies is not None: - pulumi.set(__self__, "access_policies", access_policies) + _setter("access_policies", access_policies) if advanced_options is not None: - pulumi.set(__self__, "advanced_options", advanced_options) + _setter("advanced_options", advanced_options) if advanced_security_options is not None: - pulumi.set(__self__, "advanced_security_options", advanced_security_options) + _setter("advanced_security_options", advanced_security_options) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_tune_options is not None: - pulumi.set(__self__, "auto_tune_options", auto_tune_options) + _setter("auto_tune_options", auto_tune_options) if cluster_config is not None: - pulumi.set(__self__, "cluster_config", cluster_config) + _setter("cluster_config", cluster_config) if cognito_options is not None: - pulumi.set(__self__, "cognito_options", cognito_options) + _setter("cognito_options", cognito_options) if dashboard_endpoint is not None: - pulumi.set(__self__, "dashboard_endpoint", dashboard_endpoint) + _setter("dashboard_endpoint", dashboard_endpoint) if domain_endpoint_options is not None: - pulumi.set(__self__, "domain_endpoint_options", domain_endpoint_options) + _setter("domain_endpoint_options", domain_endpoint_options) if domain_id is not None: - pulumi.set(__self__, "domain_id", domain_id) + _setter("domain_id", domain_id) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if ebs_options is not None: - pulumi.set(__self__, "ebs_options", ebs_options) + _setter("ebs_options", ebs_options) if encrypt_at_rest is not None: - pulumi.set(__self__, "encrypt_at_rest", encrypt_at_rest) + _setter("encrypt_at_rest", encrypt_at_rest) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if kibana_endpoint is not None: warnings.warn("""use 'dashboard_endpoint' attribute instead""", DeprecationWarning) pulumi.log.warn("""kibana_endpoint is deprecated: use 'dashboard_endpoint' attribute instead""") if kibana_endpoint is not None: - pulumi.set(__self__, "kibana_endpoint", kibana_endpoint) + _setter("kibana_endpoint", kibana_endpoint) if log_publishing_options is not None: - pulumi.set(__self__, "log_publishing_options", log_publishing_options) + _setter("log_publishing_options", log_publishing_options) if node_to_node_encryption is not None: - pulumi.set(__self__, "node_to_node_encryption", node_to_node_encryption) + _setter("node_to_node_encryption", node_to_node_encryption) if off_peak_window_options is not None: - pulumi.set(__self__, "off_peak_window_options", off_peak_window_options) + _setter("off_peak_window_options", off_peak_window_options) if snapshot_options is not None: - pulumi.set(__self__, "snapshot_options", snapshot_options) + _setter("snapshot_options", snapshot_options) if software_update_options is not None: - pulumi.set(__self__, "software_update_options", software_update_options) + _setter("software_update_options", software_update_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_options is not None: - pulumi.set(__self__, "vpc_options", vpc_options) + _setter("vpc_options", vpc_options) @property @pulumi.getter(name="accessPolicies") @@ -1284,6 +1462,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1318,21 +1500,33 @@ def _internal_init(__self__, __props__.__dict__["access_policies"] = access_policies __props__.__dict__["advanced_options"] = advanced_options + advanced_security_options = _utilities.configure(advanced_security_options, DomainAdvancedSecurityOptionsArgs, True) __props__.__dict__["advanced_security_options"] = advanced_security_options + auto_tune_options = _utilities.configure(auto_tune_options, DomainAutoTuneOptionsArgs, True) __props__.__dict__["auto_tune_options"] = auto_tune_options + cluster_config = _utilities.configure(cluster_config, DomainClusterConfigArgs, True) __props__.__dict__["cluster_config"] = cluster_config + cognito_options = _utilities.configure(cognito_options, DomainCognitoOptionsArgs, True) __props__.__dict__["cognito_options"] = cognito_options + domain_endpoint_options = _utilities.configure(domain_endpoint_options, DomainDomainEndpointOptionsArgs, True) __props__.__dict__["domain_endpoint_options"] = domain_endpoint_options __props__.__dict__["domain_name"] = domain_name + ebs_options = _utilities.configure(ebs_options, DomainEbsOptionsArgs, True) __props__.__dict__["ebs_options"] = ebs_options + encrypt_at_rest = _utilities.configure(encrypt_at_rest, DomainEncryptAtRestArgs, True) __props__.__dict__["encrypt_at_rest"] = encrypt_at_rest __props__.__dict__["engine_version"] = engine_version __props__.__dict__["log_publishing_options"] = log_publishing_options + node_to_node_encryption = _utilities.configure(node_to_node_encryption, DomainNodeToNodeEncryptionArgs, True) __props__.__dict__["node_to_node_encryption"] = node_to_node_encryption + off_peak_window_options = _utilities.configure(off_peak_window_options, DomainOffPeakWindowOptionsArgs, True) __props__.__dict__["off_peak_window_options"] = off_peak_window_options + snapshot_options = _utilities.configure(snapshot_options, DomainSnapshotOptionsArgs, True) __props__.__dict__["snapshot_options"] = snapshot_options + software_update_options = _utilities.configure(software_update_options, DomainSoftwareUpdateOptionsArgs, True) __props__.__dict__["software_update_options"] = software_update_options __props__.__dict__["tags"] = tags + vpc_options = _utilities.configure(vpc_options, DomainVpcOptionsArgs, True) __props__.__dict__["vpc_options"] = vpc_options __props__.__dict__["arn"] = None __props__.__dict__["dashboard_endpoint"] = None diff --git a/sdk/python/pulumi_aws/opensearch/domain_policy.py b/sdk/python/pulumi_aws/opensearch/domain_policy.py index 0b733d50eb8..2dad9d70743 100644 --- a/sdk/python/pulumi_aws/opensearch/domain_policy.py +++ b/sdk/python/pulumi_aws/opensearch/domain_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainPolicyArgs', 'DomainPolicy'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] access_policies: IAM policy document specifying the access policies for the domain :param pulumi.Input[str] domain_name: Name of the domain. """ - pulumi.set(__self__, "access_policies", access_policies) - pulumi.set(__self__, "domain_name", domain_name) + DomainPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policies=access_policies, + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policies: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policies is None and 'accessPolicies' in kwargs: + access_policies = kwargs['accessPolicies'] + if access_policies is None: + raise TypeError("Missing 'access_policies' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + + _setter("access_policies", access_policies) + _setter("domain_name", domain_name) @property @pulumi.getter(name="accessPolicies") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] access_policies: IAM policy document specifying the access policies for the domain :param pulumi.Input[str] domain_name: Name of the domain. """ + _DomainPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_policies=access_policies, + domain_name=domain_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_policies: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_policies is None and 'accessPolicies' in kwargs: + access_policies = kwargs['accessPolicies'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if access_policies is not None: - pulumi.set(__self__, "access_policies", access_policies) + _setter("access_policies", access_policies) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) @property @pulumi.getter(name="accessPolicies") @@ -124,6 +162,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opensearch/domain_saml_options.py b/sdk/python/pulumi_aws/opensearch/domain_saml_options.py index 6bdd9c99948..b040610044e 100644 --- a/sdk/python/pulumi_aws/opensearch/domain_saml_options.py +++ b/sdk/python/pulumi_aws/opensearch/domain_saml_options.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,28 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['DomainSamlOptionsSamlOptionsArgs'] saml_options: SAML authentication options for an AWS OpenSearch Domain. """ - pulumi.set(__self__, "domain_name", domain_name) + DomainSamlOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + saml_options=saml_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + saml_options: Optional[pulumi.Input['DomainSamlOptionsSamlOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if saml_options is None and 'samlOptions' in kwargs: + saml_options = kwargs['samlOptions'] + + _setter("domain_name", domain_name) if saml_options is not None: - pulumi.set(__self__, "saml_options", saml_options) + _setter("saml_options", saml_options) @property @pulumi.getter(name="domainName") @@ -68,10 +87,27 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['DomainSamlOptionsSamlOptionsArgs'] saml_options: SAML authentication options for an AWS OpenSearch Domain. """ + _DomainSamlOptionsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + saml_options=saml_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + saml_options: Optional[pulumi.Input['DomainSamlOptionsSamlOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if saml_options is None and 'samlOptions' in kwargs: + saml_options = kwargs['samlOptions'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if saml_options is not None: - pulumi.set(__self__, "saml_options", saml_options) + _setter("saml_options", saml_options) @property @pulumi.getter(name="domainName") @@ -211,6 +247,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainSamlOptionsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -230,6 +270,7 @@ def _internal_init(__self__, if domain_name is None and not opts.urn: raise TypeError("Missing required property 'domain_name'") __props__.__dict__["domain_name"] = domain_name + saml_options = _utilities.configure(saml_options, DomainSamlOptionsSamlOptionsArgs, True) __props__.__dict__["saml_options"] = saml_options super(DomainSamlOptions, __self__).__init__( 'aws:opensearch/domainSamlOptions:DomainSamlOptions', diff --git a/sdk/python/pulumi_aws/opensearch/get_domain.py b/sdk/python/pulumi_aws/opensearch/get_domain.py index 451d196a139..517e4a6e717 100644 --- a/sdk/python/pulumi_aws/opensearch/get_domain.py +++ b/sdk/python/pulumi_aws/opensearch/get_domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/opensearch/get_serverless_access_policy.py b/sdk/python/pulumi_aws/opensearch/get_serverless_access_policy.py index 7aa0b164432..0d69b0d7f0d 100644 --- a/sdk/python/pulumi_aws/opensearch/get_serverless_access_policy.py +++ b/sdk/python/pulumi_aws/opensearch/get_serverless_access_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/opensearch/get_serverless_collection.py b/sdk/python/pulumi_aws/opensearch/get_serverless_collection.py index 01a4147ce00..c009b1eb177 100644 --- a/sdk/python/pulumi_aws/opensearch/get_serverless_collection.py +++ b/sdk/python/pulumi_aws/opensearch/get_serverless_collection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/opensearch/get_serverless_security_config.py b/sdk/python/pulumi_aws/opensearch/get_serverless_security_config.py index 5a127545db9..9910a75bca6 100644 --- a/sdk/python/pulumi_aws/opensearch/get_serverless_security_config.py +++ b/sdk/python/pulumi_aws/opensearch/get_serverless_security_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/opensearch/get_serverless_security_policy.py b/sdk/python/pulumi_aws/opensearch/get_serverless_security_policy.py index 054ef482d33..8e94354c460 100644 --- a/sdk/python/pulumi_aws/opensearch/get_serverless_security_policy.py +++ b/sdk/python/pulumi_aws/opensearch/get_serverless_security_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/opensearch/get_serverless_vpc_endpoint.py b/sdk/python/pulumi_aws/opensearch/get_serverless_vpc_endpoint.py index 0f7ceb70168..be6f56ab3e1 100644 --- a/sdk/python/pulumi_aws/opensearch/get_serverless_vpc_endpoint.py +++ b/sdk/python/pulumi_aws/opensearch/get_serverless_vpc_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/opensearch/inbound_connection_accepter.py b/sdk/python/pulumi_aws/opensearch/inbound_connection_accepter.py index b3c510ffe37..cf49d0f54bd 100644 --- a/sdk/python/pulumi_aws/opensearch/inbound_connection_accepter.py +++ b/sdk/python/pulumi_aws/opensearch/inbound_connection_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InboundConnectionAccepterArgs', 'InboundConnectionAccepter'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a InboundConnectionAccepter resource. :param pulumi.Input[str] connection_id: Specifies the ID of the connection to accept. """ - pulumi.set(__self__, "connection_id", connection_id) + InboundConnectionAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_id=connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_id is None: + raise TypeError("Missing 'connection_id' argument") + + _setter("connection_id", connection_id) @property @pulumi.getter(name="connectionId") @@ -44,10 +59,27 @@ def __init__(__self__, *, :param pulumi.Input[str] connection_id: Specifies the ID of the connection to accept. :param pulumi.Input[str] connection_status: Status of the connection request. """ + _InboundConnectionAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_id=connection_id, + connection_status=connection_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_id: Optional[pulumi.Input[str]] = None, + connection_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_id is None and 'connectionId' in kwargs: + connection_id = kwargs['connectionId'] + if connection_status is None and 'connectionStatus' in kwargs: + connection_status = kwargs['connectionStatus'] + if connection_id is not None: - pulumi.set(__self__, "connection_id", connection_id) + _setter("connection_id", connection_id) if connection_status is not None: - pulumi.set(__self__, "connection_status", connection_status) + _setter("connection_status", connection_status) @property @pulumi.getter(name="connectionId") @@ -171,6 +203,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InboundConnectionAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opensearch/outbound_connection.py b/sdk/python/pulumi_aws/opensearch/outbound_connection.py index 60127262644..b17dbef3cd7 100644 --- a/sdk/python/pulumi_aws/opensearch/outbound_connection.py +++ b/sdk/python/pulumi_aws/opensearch/outbound_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,54 @@ def __init__(__self__, *, :param pulumi.Input[str] connection_mode: Specifies the connection mode. Accepted values are `DIRECT` or `VPC_ENDPOINT`. :param pulumi.Input['OutboundConnectionConnectionPropertiesArgs'] connection_properties: Configuration block for the outbound connection. """ - pulumi.set(__self__, "connection_alias", connection_alias) - pulumi.set(__self__, "local_domain_info", local_domain_info) - pulumi.set(__self__, "remote_domain_info", remote_domain_info) + OutboundConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_alias=connection_alias, + local_domain_info=local_domain_info, + remote_domain_info=remote_domain_info, + accept_connection=accept_connection, + connection_mode=connection_mode, + connection_properties=connection_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_alias: Optional[pulumi.Input[str]] = None, + local_domain_info: Optional[pulumi.Input['OutboundConnectionLocalDomainInfoArgs']] = None, + remote_domain_info: Optional[pulumi.Input['OutboundConnectionRemoteDomainInfoArgs']] = None, + accept_connection: Optional[pulumi.Input[bool]] = None, + connection_mode: Optional[pulumi.Input[str]] = None, + connection_properties: Optional[pulumi.Input['OutboundConnectionConnectionPropertiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_alias is None and 'connectionAlias' in kwargs: + connection_alias = kwargs['connectionAlias'] + if connection_alias is None: + raise TypeError("Missing 'connection_alias' argument") + if local_domain_info is None and 'localDomainInfo' in kwargs: + local_domain_info = kwargs['localDomainInfo'] + if local_domain_info is None: + raise TypeError("Missing 'local_domain_info' argument") + if remote_domain_info is None and 'remoteDomainInfo' in kwargs: + remote_domain_info = kwargs['remoteDomainInfo'] + if remote_domain_info is None: + raise TypeError("Missing 'remote_domain_info' argument") + if accept_connection is None and 'acceptConnection' in kwargs: + accept_connection = kwargs['acceptConnection'] + if connection_mode is None and 'connectionMode' in kwargs: + connection_mode = kwargs['connectionMode'] + if connection_properties is None and 'connectionProperties' in kwargs: + connection_properties = kwargs['connectionProperties'] + + _setter("connection_alias", connection_alias) + _setter("local_domain_info", local_domain_info) + _setter("remote_domain_info", remote_domain_info) if accept_connection is not None: - pulumi.set(__self__, "accept_connection", accept_connection) + _setter("accept_connection", accept_connection) if connection_mode is not None: - pulumi.set(__self__, "connection_mode", connection_mode) + _setter("connection_mode", connection_mode) if connection_properties is not None: - pulumi.set(__self__, "connection_properties", connection_properties) + _setter("connection_properties", connection_properties) @property @pulumi.getter(name="connectionAlias") @@ -134,20 +173,57 @@ def __init__(__self__, *, :param pulumi.Input['OutboundConnectionLocalDomainInfoArgs'] local_domain_info: Configuration block for the local Opensearch domain. :param pulumi.Input['OutboundConnectionRemoteDomainInfoArgs'] remote_domain_info: Configuration block for the remote Opensearch domain. """ + _OutboundConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_connection=accept_connection, + connection_alias=connection_alias, + connection_mode=connection_mode, + connection_properties=connection_properties, + connection_status=connection_status, + local_domain_info=local_domain_info, + remote_domain_info=remote_domain_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_connection: Optional[pulumi.Input[bool]] = None, + connection_alias: Optional[pulumi.Input[str]] = None, + connection_mode: Optional[pulumi.Input[str]] = None, + connection_properties: Optional[pulumi.Input['OutboundConnectionConnectionPropertiesArgs']] = None, + connection_status: Optional[pulumi.Input[str]] = None, + local_domain_info: Optional[pulumi.Input['OutboundConnectionLocalDomainInfoArgs']] = None, + remote_domain_info: Optional[pulumi.Input['OutboundConnectionRemoteDomainInfoArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_connection is None and 'acceptConnection' in kwargs: + accept_connection = kwargs['acceptConnection'] + if connection_alias is None and 'connectionAlias' in kwargs: + connection_alias = kwargs['connectionAlias'] + if connection_mode is None and 'connectionMode' in kwargs: + connection_mode = kwargs['connectionMode'] + if connection_properties is None and 'connectionProperties' in kwargs: + connection_properties = kwargs['connectionProperties'] + if connection_status is None and 'connectionStatus' in kwargs: + connection_status = kwargs['connectionStatus'] + if local_domain_info is None and 'localDomainInfo' in kwargs: + local_domain_info = kwargs['localDomainInfo'] + if remote_domain_info is None and 'remoteDomainInfo' in kwargs: + remote_domain_info = kwargs['remoteDomainInfo'] + if accept_connection is not None: - pulumi.set(__self__, "accept_connection", accept_connection) + _setter("accept_connection", accept_connection) if connection_alias is not None: - pulumi.set(__self__, "connection_alias", connection_alias) + _setter("connection_alias", connection_alias) if connection_mode is not None: - pulumi.set(__self__, "connection_mode", connection_mode) + _setter("connection_mode", connection_mode) if connection_properties is not None: - pulumi.set(__self__, "connection_properties", connection_properties) + _setter("connection_properties", connection_properties) if connection_status is not None: - pulumi.set(__self__, "connection_status", connection_status) + _setter("connection_status", connection_status) if local_domain_info is not None: - pulumi.set(__self__, "local_domain_info", local_domain_info) + _setter("local_domain_info", local_domain_info) if remote_domain_info is not None: - pulumi.set(__self__, "remote_domain_info", remote_domain_info) + _setter("remote_domain_info", remote_domain_info) @property @pulumi.getter(name="acceptConnection") @@ -341,6 +417,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OutboundConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -366,10 +446,13 @@ def _internal_init(__self__, raise TypeError("Missing required property 'connection_alias'") __props__.__dict__["connection_alias"] = connection_alias __props__.__dict__["connection_mode"] = connection_mode + connection_properties = _utilities.configure(connection_properties, OutboundConnectionConnectionPropertiesArgs, True) __props__.__dict__["connection_properties"] = connection_properties + local_domain_info = _utilities.configure(local_domain_info, OutboundConnectionLocalDomainInfoArgs, True) if local_domain_info is None and not opts.urn: raise TypeError("Missing required property 'local_domain_info'") __props__.__dict__["local_domain_info"] = local_domain_info + remote_domain_info = _utilities.configure(remote_domain_info, OutboundConnectionRemoteDomainInfoArgs, True) if remote_domain_info is None and not opts.urn: raise TypeError("Missing required property 'remote_domain_info'") __props__.__dict__["remote_domain_info"] = remote_domain_info diff --git a/sdk/python/pulumi_aws/opensearch/outputs.py b/sdk/python/pulumi_aws/opensearch/outputs.py index 32062829a39..8fddba8cf3e 100644 --- a/sdk/python/pulumi_aws/opensearch/outputs.py +++ b/sdk/python/pulumi_aws/opensearch/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -97,13 +97,38 @@ def __init__(__self__, *, :param bool internal_user_database_enabled: Whether the internal user database is enabled. Default is `false`. :param 'DomainAdvancedSecurityOptionsMasterUserOptionsArgs' master_user_options: Configuration block for the main user. Detailed below. """ - pulumi.set(__self__, "enabled", enabled) + DomainAdvancedSecurityOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + anonymous_auth_enabled=anonymous_auth_enabled, + internal_user_database_enabled=internal_user_database_enabled, + master_user_options=master_user_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + anonymous_auth_enabled: Optional[bool] = None, + internal_user_database_enabled: Optional[bool] = None, + master_user_options: Optional['outputs.DomainAdvancedSecurityOptionsMasterUserOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if anonymous_auth_enabled is None and 'anonymousAuthEnabled' in kwargs: + anonymous_auth_enabled = kwargs['anonymousAuthEnabled'] + if internal_user_database_enabled is None and 'internalUserDatabaseEnabled' in kwargs: + internal_user_database_enabled = kwargs['internalUserDatabaseEnabled'] + if master_user_options is None and 'masterUserOptions' in kwargs: + master_user_options = kwargs['masterUserOptions'] + + _setter("enabled", enabled) if anonymous_auth_enabled is not None: - pulumi.set(__self__, "anonymous_auth_enabled", anonymous_auth_enabled) + _setter("anonymous_auth_enabled", anonymous_auth_enabled) if internal_user_database_enabled is not None: - pulumi.set(__self__, "internal_user_database_enabled", internal_user_database_enabled) + _setter("internal_user_database_enabled", internal_user_database_enabled) if master_user_options is not None: - pulumi.set(__self__, "master_user_options", master_user_options) + _setter("master_user_options", master_user_options) @property @pulumi.getter @@ -170,12 +195,33 @@ def __init__(__self__, *, :param str master_user_name: Main user's username, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if `internal_user_database_enabled` is set to `true`. :param str master_user_password: Main user's password, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if `internal_user_database_enabled` is set to `true`. """ + DomainAdvancedSecurityOptionsMasterUserOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + master_user_arn=master_user_arn, + master_user_name=master_user_name, + master_user_password=master_user_password, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + master_user_arn: Optional[str] = None, + master_user_name: Optional[str] = None, + master_user_password: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if master_user_arn is None and 'masterUserArn' in kwargs: + master_user_arn = kwargs['masterUserArn'] + if master_user_name is None and 'masterUserName' in kwargs: + master_user_name = kwargs['masterUserName'] + if master_user_password is None and 'masterUserPassword' in kwargs: + master_user_password = kwargs['masterUserPassword'] + if master_user_arn is not None: - pulumi.set(__self__, "master_user_arn", master_user_arn) + _setter("master_user_arn", master_user_arn) if master_user_name is not None: - pulumi.set(__self__, "master_user_name", master_user_name) + _setter("master_user_name", master_user_name) if master_user_password is not None: - pulumi.set(__self__, "master_user_password", master_user_password) + _setter("master_user_password", master_user_password) @property @pulumi.getter(name="masterUserArn") @@ -234,11 +280,34 @@ def __init__(__self__, *, :param Sequence['DomainAutoTuneOptionsMaintenanceScheduleArgs'] maintenance_schedules: Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. :param str rollback_on_disable: Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: `DEFAULT_ROLLBACK` or `NO_ROLLBACK`. """ - pulumi.set(__self__, "desired_state", desired_state) + DomainAutoTuneOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_state=desired_state, + maintenance_schedules=maintenance_schedules, + rollback_on_disable=rollback_on_disable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_state: Optional[str] = None, + maintenance_schedules: Optional[Sequence['outputs.DomainAutoTuneOptionsMaintenanceSchedule']] = None, + rollback_on_disable: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if desired_state is None: + raise TypeError("Missing 'desired_state' argument") + if maintenance_schedules is None and 'maintenanceSchedules' in kwargs: + maintenance_schedules = kwargs['maintenanceSchedules'] + if rollback_on_disable is None and 'rollbackOnDisable' in kwargs: + rollback_on_disable = kwargs['rollbackOnDisable'] + + _setter("desired_state", desired_state) if maintenance_schedules is not None: - pulumi.set(__self__, "maintenance_schedules", maintenance_schedules) + _setter("maintenance_schedules", maintenance_schedules) if rollback_on_disable is not None: - pulumi.set(__self__, "rollback_on_disable", rollback_on_disable) + _setter("rollback_on_disable", rollback_on_disable) @property @pulumi.getter(name="desiredState") @@ -295,9 +364,34 @@ def __init__(__self__, *, :param 'DomainAutoTuneOptionsMaintenanceScheduleDurationArgs' duration: Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. :param str start_at: Date and time at which to start the Auto-Tune maintenance schedule in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). """ - pulumi.set(__self__, "cron_expression_for_recurrence", cron_expression_for_recurrence) - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "start_at", start_at) + DomainAutoTuneOptionsMaintenanceSchedule._configure( + lambda key, value: pulumi.set(__self__, key, value), + cron_expression_for_recurrence=cron_expression_for_recurrence, + duration=duration, + start_at=start_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cron_expression_for_recurrence: Optional[str] = None, + duration: Optional['outputs.DomainAutoTuneOptionsMaintenanceScheduleDuration'] = None, + start_at: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cron_expression_for_recurrence is None and 'cronExpressionForRecurrence' in kwargs: + cron_expression_for_recurrence = kwargs['cronExpressionForRecurrence'] + if cron_expression_for_recurrence is None: + raise TypeError("Missing 'cron_expression_for_recurrence' argument") + if duration is None: + raise TypeError("Missing 'duration' argument") + if start_at is None and 'startAt' in kwargs: + start_at = kwargs['startAt'] + if start_at is None: + raise TypeError("Missing 'start_at' argument") + + _setter("cron_expression_for_recurrence", cron_expression_for_recurrence) + _setter("duration", duration) + _setter("start_at", start_at) @property @pulumi.getter(name="cronExpressionForRecurrence") @@ -333,8 +427,25 @@ def __init__(__self__, *, :param str unit: Unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: `HOURS`. :param int value: An integer specifying the value of the duration of an Auto-Tune maintenance window. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + DomainAutoTuneOptionsMaintenanceScheduleDuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -420,30 +531,87 @@ def __init__(__self__, *, :param 'DomainClusterConfigZoneAwarenessConfigArgs' zone_awareness_config: Configuration block containing zone awareness settings. Detailed below. :param bool zone_awareness_enabled: Whether zone awareness is enabled, set to `true` for multi-az deployment. To enable awareness with three Availability Zones, the `availability_zone_count` within the `zone_awareness_config` must be set to `3`. """ + DomainClusterConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_options=cold_storage_options, + dedicated_master_count=dedicated_master_count, + dedicated_master_enabled=dedicated_master_enabled, + dedicated_master_type=dedicated_master_type, + instance_count=instance_count, + instance_type=instance_type, + multi_az_with_standby_enabled=multi_az_with_standby_enabled, + warm_count=warm_count, + warm_enabled=warm_enabled, + warm_type=warm_type, + zone_awareness_config=zone_awareness_config, + zone_awareness_enabled=zone_awareness_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_options: Optional['outputs.DomainClusterConfigColdStorageOptions'] = None, + dedicated_master_count: Optional[int] = None, + dedicated_master_enabled: Optional[bool] = None, + dedicated_master_type: Optional[str] = None, + instance_count: Optional[int] = None, + instance_type: Optional[str] = None, + multi_az_with_standby_enabled: Optional[bool] = None, + warm_count: Optional[int] = None, + warm_enabled: Optional[bool] = None, + warm_type: Optional[str] = None, + zone_awareness_config: Optional['outputs.DomainClusterConfigZoneAwarenessConfig'] = None, + zone_awareness_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_options is None and 'coldStorageOptions' in kwargs: + cold_storage_options = kwargs['coldStorageOptions'] + if dedicated_master_count is None and 'dedicatedMasterCount' in kwargs: + dedicated_master_count = kwargs['dedicatedMasterCount'] + if dedicated_master_enabled is None and 'dedicatedMasterEnabled' in kwargs: + dedicated_master_enabled = kwargs['dedicatedMasterEnabled'] + if dedicated_master_type is None and 'dedicatedMasterType' in kwargs: + dedicated_master_type = kwargs['dedicatedMasterType'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if multi_az_with_standby_enabled is None and 'multiAzWithStandbyEnabled' in kwargs: + multi_az_with_standby_enabled = kwargs['multiAzWithStandbyEnabled'] + if warm_count is None and 'warmCount' in kwargs: + warm_count = kwargs['warmCount'] + if warm_enabled is None and 'warmEnabled' in kwargs: + warm_enabled = kwargs['warmEnabled'] + if warm_type is None and 'warmType' in kwargs: + warm_type = kwargs['warmType'] + if zone_awareness_config is None and 'zoneAwarenessConfig' in kwargs: + zone_awareness_config = kwargs['zoneAwarenessConfig'] + if zone_awareness_enabled is None and 'zoneAwarenessEnabled' in kwargs: + zone_awareness_enabled = kwargs['zoneAwarenessEnabled'] + if cold_storage_options is not None: - pulumi.set(__self__, "cold_storage_options", cold_storage_options) + _setter("cold_storage_options", cold_storage_options) if dedicated_master_count is not None: - pulumi.set(__self__, "dedicated_master_count", dedicated_master_count) + _setter("dedicated_master_count", dedicated_master_count) if dedicated_master_enabled is not None: - pulumi.set(__self__, "dedicated_master_enabled", dedicated_master_enabled) + _setter("dedicated_master_enabled", dedicated_master_enabled) if dedicated_master_type is not None: - pulumi.set(__self__, "dedicated_master_type", dedicated_master_type) + _setter("dedicated_master_type", dedicated_master_type) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if multi_az_with_standby_enabled is not None: - pulumi.set(__self__, "multi_az_with_standby_enabled", multi_az_with_standby_enabled) + _setter("multi_az_with_standby_enabled", multi_az_with_standby_enabled) if warm_count is not None: - pulumi.set(__self__, "warm_count", warm_count) + _setter("warm_count", warm_count) if warm_enabled is not None: - pulumi.set(__self__, "warm_enabled", warm_enabled) + _setter("warm_enabled", warm_enabled) if warm_type is not None: - pulumi.set(__self__, "warm_type", warm_type) + _setter("warm_type", warm_type) if zone_awareness_config is not None: - pulumi.set(__self__, "zone_awareness_config", zone_awareness_config) + _setter("zone_awareness_config", zone_awareness_config) if zone_awareness_enabled is not None: - pulumi.set(__self__, "zone_awareness_enabled", zone_awareness_enabled) + _setter("zone_awareness_enabled", zone_awareness_enabled) @property @pulumi.getter(name="coldStorageOptions") @@ -546,8 +714,19 @@ def __init__(__self__, *, """ :param bool enabled: Boolean to enable cold storage for an OpenSearch domain. Defaults to `false`. Master and ultrawarm nodes must be enabled for cold storage. """ + DomainClusterConfigColdStorageOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -582,8 +761,21 @@ def __init__(__self__, *, """ :param int availability_zone_count: Number of Availability Zones for the domain to use with `zone_awareness_enabled`. Defaults to `2`. Valid values: `2` or `3`. """ + DomainClusterConfigZoneAwarenessConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_count=availability_zone_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_count is None and 'availabilityZoneCount' in kwargs: + availability_zone_count = kwargs['availabilityZoneCount'] + if availability_zone_count is not None: - pulumi.set(__self__, "availability_zone_count", availability_zone_count) + _setter("availability_zone_count", availability_zone_count) @property @pulumi.getter(name="availabilityZoneCount") @@ -628,11 +820,40 @@ def __init__(__self__, *, :param str user_pool_id: ID of the Cognito User Pool to use. :param bool enabled: Whether Amazon Cognito authentication with Dashboard is enabled or not. Default is `false`. """ - pulumi.set(__self__, "identity_pool_id", identity_pool_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "user_pool_id", user_pool_id) + DomainCognitoOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity_pool_id=identity_pool_id, + role_arn=role_arn, + user_pool_id=user_pool_id, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity_pool_id: Optional[str] = None, + role_arn: Optional[str] = None, + user_pool_id: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if identity_pool_id is None: + raise TypeError("Missing 'identity_pool_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + + _setter("identity_pool_id", identity_pool_id) + _setter("role_arn", role_arn) + _setter("user_pool_id", user_pool_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="identityPoolId") @@ -707,16 +928,45 @@ def __init__(__self__, *, :param bool enforce_https: Whether or not to require HTTPS. Defaults to `true`. :param str tls_security_policy: Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: `Policy-Min-TLS-1-0-2019-07` and `Policy-Min-TLS-1-2-2019-07`. The provider will only perform drift detection if a configuration value is provided. """ + DomainDomainEndpointOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_endpoint=custom_endpoint, + custom_endpoint_certificate_arn=custom_endpoint_certificate_arn, + custom_endpoint_enabled=custom_endpoint_enabled, + enforce_https=enforce_https, + tls_security_policy=tls_security_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_endpoint: Optional[str] = None, + custom_endpoint_certificate_arn: Optional[str] = None, + custom_endpoint_enabled: Optional[bool] = None, + enforce_https: Optional[bool] = None, + tls_security_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_endpoint is None and 'customEndpoint' in kwargs: + custom_endpoint = kwargs['customEndpoint'] + if custom_endpoint_certificate_arn is None and 'customEndpointCertificateArn' in kwargs: + custom_endpoint_certificate_arn = kwargs['customEndpointCertificateArn'] + if custom_endpoint_enabled is None and 'customEndpointEnabled' in kwargs: + custom_endpoint_enabled = kwargs['customEndpointEnabled'] + if enforce_https is None and 'enforceHttps' in kwargs: + enforce_https = kwargs['enforceHttps'] + if tls_security_policy is None and 'tlsSecurityPolicy' in kwargs: + tls_security_policy = kwargs['tlsSecurityPolicy'] + if custom_endpoint is not None: - pulumi.set(__self__, "custom_endpoint", custom_endpoint) + _setter("custom_endpoint", custom_endpoint) if custom_endpoint_certificate_arn is not None: - pulumi.set(__self__, "custom_endpoint_certificate_arn", custom_endpoint_certificate_arn) + _setter("custom_endpoint_certificate_arn", custom_endpoint_certificate_arn) if custom_endpoint_enabled is not None: - pulumi.set(__self__, "custom_endpoint_enabled", custom_endpoint_enabled) + _setter("custom_endpoint_enabled", custom_endpoint_enabled) if enforce_https is not None: - pulumi.set(__self__, "enforce_https", enforce_https) + _setter("enforce_https", enforce_https) if tls_security_policy is not None: - pulumi.set(__self__, "tls_security_policy", tls_security_policy) + _setter("tls_security_policy", tls_security_policy) @property @pulumi.getter(name="customEndpoint") @@ -795,15 +1045,42 @@ def __init__(__self__, *, :param int volume_size: Size of EBS volumes attached to data nodes (in GiB). :param str volume_type: Type of EBS volumes attached to data nodes. """ - pulumi.set(__self__, "ebs_enabled", ebs_enabled) + DomainEbsOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_enabled=ebs_enabled, + iops=iops, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_enabled: Optional[bool] = None, + iops: Optional[int] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_enabled is None and 'ebsEnabled' in kwargs: + ebs_enabled = kwargs['ebsEnabled'] + if ebs_enabled is None: + raise TypeError("Missing 'ebs_enabled' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("ebs_enabled", ebs_enabled) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if throughput is not None: - pulumi.set(__self__, "throughput", throughput) + _setter("throughput", throughput) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="ebsEnabled") @@ -872,9 +1149,26 @@ def __init__(__self__, *, :param bool enabled: Whether to enable encryption at rest. If the `encrypt_at_rest` block is not provided then this defaults to `false`. Enabling encryption on new domains requires an `engine_version` of `OpenSearch_X.Y` or `Elasticsearch_5.1` or greater. :param str kms_key_id: KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the `aws/es` service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead. """ - pulumi.set(__self__, "enabled", enabled) + DomainEncryptAtRest._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("enabled", enabled) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter @@ -923,10 +1217,33 @@ def __init__(__self__, *, :param str log_type: Type of OpenSearch log. Valid values: `INDEX_SLOW_LOGS`, `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `AUDIT_LOGS`. :param bool enabled: Whether given log publishing option is enabled or not. """ - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) - pulumi.set(__self__, "log_type", log_type) + DomainLogPublishingOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + log_type=log_type, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group_arn: Optional[str] = None, + log_type: Optional[str] = None, + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if cloudwatch_log_group_arn is None: + raise TypeError("Missing 'cloudwatch_log_group_arn' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("log_type", log_type) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="cloudwatchLogGroupArn") @@ -960,7 +1277,20 @@ def __init__(__self__, *, """ :param bool enabled: Whether to enable node-to-node encryption. If the `node_to_node_encryption` block is not provided then this defaults to `false`. Enabling node-to-node encryption of a new domain requires an `engine_version` of `OpenSearch_X.Y` or `Elasticsearch_6.0` or greater. """ - pulumi.set(__self__, "enabled", enabled) + DomainNodeToNodeEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -996,10 +1326,25 @@ def __init__(__self__, *, """ :param bool enabled: Enabled disabled toggle for off-peak update window. """ + DomainOffPeakWindowOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + off_peak_window=off_peak_window, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + off_peak_window: Optional['outputs.DomainOffPeakWindowOptionsOffPeakWindow'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if off_peak_window is None and 'offPeakWindow' in kwargs: + off_peak_window = kwargs['offPeakWindow'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if off_peak_window is not None: - pulumi.set(__self__, "off_peak_window", off_peak_window) + _setter("off_peak_window", off_peak_window) @property @pulumi.getter @@ -1039,8 +1384,21 @@ def __init__(__self__, *, """ :param 'DomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeArgs' window_start_time: 10h window for updates """ + DomainOffPeakWindowOptionsOffPeakWindow._configure( + lambda key, value: pulumi.set(__self__, key, value), + window_start_time=window_start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + window_start_time: Optional['outputs.DomainOffPeakWindowOptionsOffPeakWindowWindowStartTime'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if window_start_time is None and 'windowStartTime' in kwargs: + window_start_time = kwargs['windowStartTime'] + if window_start_time is not None: - pulumi.set(__self__, "window_start_time", window_start_time) + _setter("window_start_time", window_start_time) @property @pulumi.getter(name="windowStartTime") @@ -1060,10 +1418,23 @@ def __init__(__self__, *, :param int hours: Starting hour of the 10-hour window for updates :param int minutes: Starting minute of the 10-hour window for updates """ + DomainOffPeakWindowOptionsOffPeakWindowWindowStartTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[int] = None, + minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is not None: - pulumi.set(__self__, "hours", hours) + _setter("hours", hours) if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) @property @pulumi.getter @@ -1126,20 +1497,53 @@ def __init__(__self__, *, :param int session_timeout_minutes: Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. :param str subject_key: Element of the SAML assertion to use for username. Default is NameID. """ + DomainSamlOptionsSamlOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + idp=idp, + master_backend_role=master_backend_role, + master_user_name=master_user_name, + roles_key=roles_key, + session_timeout_minutes=session_timeout_minutes, + subject_key=subject_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + idp: Optional['outputs.DomainSamlOptionsSamlOptionsIdp'] = None, + master_backend_role: Optional[str] = None, + master_user_name: Optional[str] = None, + roles_key: Optional[str] = None, + session_timeout_minutes: Optional[int] = None, + subject_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if master_backend_role is None and 'masterBackendRole' in kwargs: + master_backend_role = kwargs['masterBackendRole'] + if master_user_name is None and 'masterUserName' in kwargs: + master_user_name = kwargs['masterUserName'] + if roles_key is None and 'rolesKey' in kwargs: + roles_key = kwargs['rolesKey'] + if session_timeout_minutes is None and 'sessionTimeoutMinutes' in kwargs: + session_timeout_minutes = kwargs['sessionTimeoutMinutes'] + if subject_key is None and 'subjectKey' in kwargs: + subject_key = kwargs['subjectKey'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if idp is not None: - pulumi.set(__self__, "idp", idp) + _setter("idp", idp) if master_backend_role is not None: - pulumi.set(__self__, "master_backend_role", master_backend_role) + _setter("master_backend_role", master_backend_role) if master_user_name is not None: - pulumi.set(__self__, "master_user_name", master_user_name) + _setter("master_user_name", master_user_name) if roles_key is not None: - pulumi.set(__self__, "roles_key", roles_key) + _setter("roles_key", roles_key) if session_timeout_minutes is not None: - pulumi.set(__self__, "session_timeout_minutes", session_timeout_minutes) + _setter("session_timeout_minutes", session_timeout_minutes) if subject_key is not None: - pulumi.set(__self__, "subject_key", subject_key) + _setter("subject_key", subject_key) @property @pulumi.getter @@ -1226,8 +1630,29 @@ def __init__(__self__, *, :param str entity_id: Unique Entity ID of the application in SAML Identity Provider. :param str metadata_content: Metadata of the SAML application in xml format. """ - pulumi.set(__self__, "entity_id", entity_id) - pulumi.set(__self__, "metadata_content", metadata_content) + DomainSamlOptionsSamlOptionsIdp._configure( + lambda key, value: pulumi.set(__self__, key, value), + entity_id=entity_id, + metadata_content=metadata_content, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entity_id: Optional[str] = None, + metadata_content: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entity_id is None and 'entityId' in kwargs: + entity_id = kwargs['entityId'] + if entity_id is None: + raise TypeError("Missing 'entity_id' argument") + if metadata_content is None and 'metadataContent' in kwargs: + metadata_content = kwargs['metadataContent'] + if metadata_content is None: + raise TypeError("Missing 'metadata_content' argument") + + _setter("entity_id", entity_id) + _setter("metadata_content", metadata_content) @property @pulumi.getter(name="entityId") @@ -1270,7 +1695,22 @@ def __init__(__self__, *, """ :param int automated_snapshot_start_hour: Hour during which the service takes an automated daily snapshot of the indices in the domain. """ - pulumi.set(__self__, "automated_snapshot_start_hour", automated_snapshot_start_hour) + DomainSnapshotOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + automated_snapshot_start_hour=automated_snapshot_start_hour, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automated_snapshot_start_hour: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automated_snapshot_start_hour is None and 'automatedSnapshotStartHour' in kwargs: + automated_snapshot_start_hour = kwargs['automatedSnapshotStartHour'] + if automated_snapshot_start_hour is None: + raise TypeError("Missing 'automated_snapshot_start_hour' argument") + + _setter("automated_snapshot_start_hour", automated_snapshot_start_hour) @property @pulumi.getter(name="automatedSnapshotStartHour") @@ -1305,8 +1745,21 @@ def __init__(__self__, *, """ :param bool auto_software_update_enabled: Whether automatic service software updates are enabled for the domain. Defaults to `false`. """ + DomainSoftwareUpdateOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_software_update_enabled=auto_software_update_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_software_update_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_software_update_enabled is None and 'autoSoftwareUpdateEnabled' in kwargs: + auto_software_update_enabled = kwargs['autoSoftwareUpdateEnabled'] + if auto_software_update_enabled is not None: - pulumi.set(__self__, "auto_software_update_enabled", auto_software_update_enabled) + _setter("auto_software_update_enabled", auto_software_update_enabled) @property @pulumi.getter(name="autoSoftwareUpdateEnabled") @@ -1351,14 +1804,39 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: List of VPC Security Group IDs to be applied to the OpenSearch domain endpoints. If omitted, the default Security Group for the VPC will be used. :param Sequence[str] subnet_ids: List of VPC Subnet IDs for the OpenSearch domain endpoints to be created in. """ + DomainVpcOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="availabilityZones") @@ -1413,10 +1891,25 @@ def __init__(__self__, *, :param 'OutboundConnectionConnectionPropertiesCrossClusterSearchArgs' cross_cluster_search: Configuration block for cross cluster search. :param str endpoint: The endpoint of the remote domain, is only set when `connection_mode` is `VPC_ENDPOINT` and `accept_connection` is `TRUE`. """ + OutboundConnectionConnectionProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + cross_cluster_search=cross_cluster_search, + endpoint=endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cross_cluster_search: Optional['outputs.OutboundConnectionConnectionPropertiesCrossClusterSearch'] = None, + endpoint: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cross_cluster_search is None and 'crossClusterSearch' in kwargs: + cross_cluster_search = kwargs['crossClusterSearch'] + if cross_cluster_search is not None: - pulumi.set(__self__, "cross_cluster_search", cross_cluster_search) + _setter("cross_cluster_search", cross_cluster_search) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) @property @pulumi.getter(name="crossClusterSearch") @@ -1459,8 +1952,21 @@ def __init__(__self__, *, """ :param str skip_unavailable: Skips unavailable clusters and can only be used for cross-cluster searches. Accepted values are `ENABLED` or `DISABLED`. """ + OutboundConnectionConnectionPropertiesCrossClusterSearch._configure( + lambda key, value: pulumi.set(__self__, key, value), + skip_unavailable=skip_unavailable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + skip_unavailable: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skip_unavailable is None and 'skipUnavailable' in kwargs: + skip_unavailable = kwargs['skipUnavailable'] + if skip_unavailable is not None: - pulumi.set(__self__, "skip_unavailable", skip_unavailable) + _setter("skip_unavailable", skip_unavailable) @property @pulumi.getter(name="skipUnavailable") @@ -1501,9 +2007,34 @@ def __init__(__self__, *, :param str owner_id: The Account ID of the owner of the local domain. :param str region: The region of the local domain. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "owner_id", owner_id) - pulumi.set(__self__, "region", region) + OutboundConnectionLocalDomainInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + owner_id=owner_id, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + owner_id: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if owner_id is None: + raise TypeError("Missing 'owner_id' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("domain_name", domain_name) + _setter("owner_id", owner_id) + _setter("region", region) @property @pulumi.getter(name="domainName") @@ -1560,9 +2091,34 @@ def __init__(__self__, *, :param str owner_id: The Account ID of the owner of the remote domain. :param str region: The region of the remote domain. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "owner_id", owner_id) - pulumi.set(__self__, "region", region) + OutboundConnectionRemoteDomainInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + owner_id=owner_id, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + owner_id: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if owner_id is None: + raise TypeError("Missing 'owner_id' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("domain_name", domain_name) + _setter("owner_id", owner_id) + _setter("region", region) @property @pulumi.getter(name="domainName") @@ -1617,8 +2173,29 @@ def __init__(__self__, *, :param str s3_bucket_name: The name of the Amazon S3 bucket containing the package. :param str s3_key: Key (file name) of the package. """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) - pulumi.set(__self__, "s3_key", s3_key) + PackagePackageSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + s3_key=s3_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[str] = None, + s3_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_key is None: + raise TypeError("Missing 's3_key' argument") + + _setter("s3_bucket_name", s3_bucket_name) + _setter("s3_key", s3_key) @property @pulumi.getter(name="s3BucketName") @@ -1642,10 +2219,23 @@ class ServerlessCollectionTimeouts(dict): def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None): + ServerlessCollectionTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) @property @pulumi.getter @@ -1692,13 +2282,38 @@ def __init__(__self__, *, :param int session_timeout: Session timeout, in minutes. Minimum is 5 minutes and maximum is 720 minutes (12 hours). Default is 60 minutes. :param str user_attribute: User attribute for this SAML integration. """ - pulumi.set(__self__, "metadata", metadata) + ServerlessSecurityConfigSamlOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + metadata=metadata, + group_attribute=group_attribute, + session_timeout=session_timeout, + user_attribute=user_attribute, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metadata: Optional[str] = None, + group_attribute: Optional[str] = None, + session_timeout: Optional[int] = None, + user_attribute: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metadata is None: + raise TypeError("Missing 'metadata' argument") + if group_attribute is None and 'groupAttribute' in kwargs: + group_attribute = kwargs['groupAttribute'] + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + if user_attribute is None and 'userAttribute' in kwargs: + user_attribute = kwargs['userAttribute'] + + _setter("metadata", metadata) if group_attribute is not None: - pulumi.set(__self__, "group_attribute", group_attribute) + _setter("group_attribute", group_attribute) if session_timeout is not None: - pulumi.set(__self__, "session_timeout", session_timeout) + _setter("session_timeout", session_timeout) if user_attribute is not None: - pulumi.set(__self__, "user_attribute", user_attribute) + _setter("user_attribute", user_attribute) @property @pulumi.getter @@ -1739,12 +2354,27 @@ def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, update: Optional[str] = None): + ServerlessVpcEndpointTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -1796,13 +2426,40 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: A list of subnet IDs associated with the VPC endpoints for the domain. If your domain uses multiple Availability Zones, you need to provide two subnet IDs, one per zone. Otherwise, provide only one. :param Sequence[str] security_group_ids: The list of security group IDs associated with the VPC endpoints for the domain. If you do not provide a security group ID, OpenSearch Service uses the default security group for the VPC. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + VpcEndpointVpcOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + availability_zones=availability_zones, + security_group_ids=security_group_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[Sequence[str]] = None, + availability_zones: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("subnet_ids", subnet_ids) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="subnetIds") @@ -1841,9 +2498,34 @@ def __init__(__self__, *, :param bool enabled: Enabled disabled toggle for off-peak update window :param bool internal_user_database_enabled: Whether the internal user database is enabled. """ - pulumi.set(__self__, "anonymous_auth_enabled", anonymous_auth_enabled) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "internal_user_database_enabled", internal_user_database_enabled) + GetDomainAdvancedSecurityOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + anonymous_auth_enabled=anonymous_auth_enabled, + enabled=enabled, + internal_user_database_enabled=internal_user_database_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + anonymous_auth_enabled: Optional[bool] = None, + enabled: Optional[bool] = None, + internal_user_database_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if anonymous_auth_enabled is None and 'anonymousAuthEnabled' in kwargs: + anonymous_auth_enabled = kwargs['anonymousAuthEnabled'] + if anonymous_auth_enabled is None: + raise TypeError("Missing 'anonymous_auth_enabled' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if internal_user_database_enabled is None and 'internalUserDatabaseEnabled' in kwargs: + internal_user_database_enabled = kwargs['internalUserDatabaseEnabled'] + if internal_user_database_enabled is None: + raise TypeError("Missing 'internal_user_database_enabled' argument") + + _setter("anonymous_auth_enabled", anonymous_auth_enabled) + _setter("enabled", enabled) + _setter("internal_user_database_enabled", internal_user_database_enabled) @property @pulumi.getter(name="anonymousAuthEnabled") @@ -1878,9 +2560,36 @@ def __init__(__self__, *, :param Sequence['GetDomainAutoTuneOptionMaintenanceScheduleArgs'] maintenance_schedules: A list of the nested configurations for the Auto-Tune maintenance windows of the domain. :param str rollback_on_disable: Whether the domain is set to roll back to default Auto-Tune settings when disabling Auto-Tune. """ - pulumi.set(__self__, "desired_state", desired_state) - pulumi.set(__self__, "maintenance_schedules", maintenance_schedules) - pulumi.set(__self__, "rollback_on_disable", rollback_on_disable) + GetDomainAutoTuneOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + desired_state=desired_state, + maintenance_schedules=maintenance_schedules, + rollback_on_disable=rollback_on_disable, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + desired_state: Optional[str] = None, + maintenance_schedules: Optional[Sequence['outputs.GetDomainAutoTuneOptionMaintenanceScheduleResult']] = None, + rollback_on_disable: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if desired_state is None: + raise TypeError("Missing 'desired_state' argument") + if maintenance_schedules is None and 'maintenanceSchedules' in kwargs: + maintenance_schedules = kwargs['maintenanceSchedules'] + if maintenance_schedules is None: + raise TypeError("Missing 'maintenance_schedules' argument") + if rollback_on_disable is None and 'rollbackOnDisable' in kwargs: + rollback_on_disable = kwargs['rollbackOnDisable'] + if rollback_on_disable is None: + raise TypeError("Missing 'rollback_on_disable' argument") + + _setter("desired_state", desired_state) + _setter("maintenance_schedules", maintenance_schedules) + _setter("rollback_on_disable", rollback_on_disable) @property @pulumi.getter(name="desiredState") @@ -1918,9 +2627,34 @@ def __init__(__self__, *, :param Sequence['GetDomainAutoTuneOptionMaintenanceScheduleDurationArgs'] durations: Configuration block for the duration of the Auto-Tune maintenance window. :param str start_at: Date and time at which the Auto-Tune maintenance schedule starts in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). """ - pulumi.set(__self__, "cron_expression_for_recurrence", cron_expression_for_recurrence) - pulumi.set(__self__, "durations", durations) - pulumi.set(__self__, "start_at", start_at) + GetDomainAutoTuneOptionMaintenanceScheduleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cron_expression_for_recurrence=cron_expression_for_recurrence, + durations=durations, + start_at=start_at, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cron_expression_for_recurrence: Optional[str] = None, + durations: Optional[Sequence['outputs.GetDomainAutoTuneOptionMaintenanceScheduleDurationResult']] = None, + start_at: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cron_expression_for_recurrence is None and 'cronExpressionForRecurrence' in kwargs: + cron_expression_for_recurrence = kwargs['cronExpressionForRecurrence'] + if cron_expression_for_recurrence is None: + raise TypeError("Missing 'cron_expression_for_recurrence' argument") + if durations is None: + raise TypeError("Missing 'durations' argument") + if start_at is None and 'startAt' in kwargs: + start_at = kwargs['startAt'] + if start_at is None: + raise TypeError("Missing 'start_at' argument") + + _setter("cron_expression_for_recurrence", cron_expression_for_recurrence) + _setter("durations", durations) + _setter("start_at", start_at) @property @pulumi.getter(name="cronExpressionForRecurrence") @@ -1956,8 +2690,25 @@ def __init__(__self__, *, :param str unit: Unit of time. :param int value: Duration of an Auto-Tune maintenance window. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetDomainAutoTuneOptionMaintenanceScheduleDurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2004,19 +2755,98 @@ def __init__(__self__, *, :param bool zone_awareness_enabled: Indicates whether zone awareness is enabled. :param bool warm_enabled: Warm storage is enabled. """ - pulumi.set(__self__, "cold_storage_options", cold_storage_options) - pulumi.set(__self__, "dedicated_master_count", dedicated_master_count) - pulumi.set(__self__, "dedicated_master_enabled", dedicated_master_enabled) - pulumi.set(__self__, "dedicated_master_type", dedicated_master_type) - pulumi.set(__self__, "instance_count", instance_count) - pulumi.set(__self__, "instance_type", instance_type) - pulumi.set(__self__, "multi_az_with_standby_enabled", multi_az_with_standby_enabled) - pulumi.set(__self__, "warm_count", warm_count) - pulumi.set(__self__, "warm_type", warm_type) - pulumi.set(__self__, "zone_awareness_configs", zone_awareness_configs) - pulumi.set(__self__, "zone_awareness_enabled", zone_awareness_enabled) + GetDomainClusterConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cold_storage_options=cold_storage_options, + dedicated_master_count=dedicated_master_count, + dedicated_master_enabled=dedicated_master_enabled, + dedicated_master_type=dedicated_master_type, + instance_count=instance_count, + instance_type=instance_type, + multi_az_with_standby_enabled=multi_az_with_standby_enabled, + warm_count=warm_count, + warm_type=warm_type, + zone_awareness_configs=zone_awareness_configs, + zone_awareness_enabled=zone_awareness_enabled, + warm_enabled=warm_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cold_storage_options: Optional[Sequence['outputs.GetDomainClusterConfigColdStorageOptionResult']] = None, + dedicated_master_count: Optional[int] = None, + dedicated_master_enabled: Optional[bool] = None, + dedicated_master_type: Optional[str] = None, + instance_count: Optional[int] = None, + instance_type: Optional[str] = None, + multi_az_with_standby_enabled: Optional[bool] = None, + warm_count: Optional[int] = None, + warm_type: Optional[str] = None, + zone_awareness_configs: Optional[Sequence['outputs.GetDomainClusterConfigZoneAwarenessConfigResult']] = None, + zone_awareness_enabled: Optional[bool] = None, + warm_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cold_storage_options is None and 'coldStorageOptions' in kwargs: + cold_storage_options = kwargs['coldStorageOptions'] + if cold_storage_options is None: + raise TypeError("Missing 'cold_storage_options' argument") + if dedicated_master_count is None and 'dedicatedMasterCount' in kwargs: + dedicated_master_count = kwargs['dedicatedMasterCount'] + if dedicated_master_count is None: + raise TypeError("Missing 'dedicated_master_count' argument") + if dedicated_master_enabled is None and 'dedicatedMasterEnabled' in kwargs: + dedicated_master_enabled = kwargs['dedicatedMasterEnabled'] + if dedicated_master_enabled is None: + raise TypeError("Missing 'dedicated_master_enabled' argument") + if dedicated_master_type is None and 'dedicatedMasterType' in kwargs: + dedicated_master_type = kwargs['dedicatedMasterType'] + if dedicated_master_type is None: + raise TypeError("Missing 'dedicated_master_type' argument") + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_count is None: + raise TypeError("Missing 'instance_count' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if multi_az_with_standby_enabled is None and 'multiAzWithStandbyEnabled' in kwargs: + multi_az_with_standby_enabled = kwargs['multiAzWithStandbyEnabled'] + if multi_az_with_standby_enabled is None: + raise TypeError("Missing 'multi_az_with_standby_enabled' argument") + if warm_count is None and 'warmCount' in kwargs: + warm_count = kwargs['warmCount'] + if warm_count is None: + raise TypeError("Missing 'warm_count' argument") + if warm_type is None and 'warmType' in kwargs: + warm_type = kwargs['warmType'] + if warm_type is None: + raise TypeError("Missing 'warm_type' argument") + if zone_awareness_configs is None and 'zoneAwarenessConfigs' in kwargs: + zone_awareness_configs = kwargs['zoneAwarenessConfigs'] + if zone_awareness_configs is None: + raise TypeError("Missing 'zone_awareness_configs' argument") + if zone_awareness_enabled is None and 'zoneAwarenessEnabled' in kwargs: + zone_awareness_enabled = kwargs['zoneAwarenessEnabled'] + if zone_awareness_enabled is None: + raise TypeError("Missing 'zone_awareness_enabled' argument") + if warm_enabled is None and 'warmEnabled' in kwargs: + warm_enabled = kwargs['warmEnabled'] + + _setter("cold_storage_options", cold_storage_options) + _setter("dedicated_master_count", dedicated_master_count) + _setter("dedicated_master_enabled", dedicated_master_enabled) + _setter("dedicated_master_type", dedicated_master_type) + _setter("instance_count", instance_count) + _setter("instance_type", instance_type) + _setter("multi_az_with_standby_enabled", multi_az_with_standby_enabled) + _setter("warm_count", warm_count) + _setter("warm_type", warm_type) + _setter("zone_awareness_configs", zone_awareness_configs) + _setter("zone_awareness_enabled", zone_awareness_enabled) if warm_enabled is not None: - pulumi.set(__self__, "warm_enabled", warm_enabled) + _setter("warm_enabled", warm_enabled) @property @pulumi.getter(name="coldStorageOptions") @@ -2119,7 +2949,20 @@ def __init__(__self__, *, """ :param bool enabled: Enabled disabled toggle for off-peak update window """ - pulumi.set(__self__, "enabled", enabled) + GetDomainClusterConfigColdStorageOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -2137,7 +2980,22 @@ def __init__(__self__, *, """ :param int availability_zone_count: Number of availability zones used. """ - pulumi.set(__self__, "availability_zone_count", availability_zone_count) + GetDomainClusterConfigZoneAwarenessConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone_count=availability_zone_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone_count is None and 'availabilityZoneCount' in kwargs: + availability_zone_count = kwargs['availabilityZoneCount'] + if availability_zone_count is None: + raise TypeError("Missing 'availability_zone_count' argument") + + _setter("availability_zone_count", availability_zone_count) @property @pulumi.getter(name="availabilityZoneCount") @@ -2161,10 +3019,41 @@ def __init__(__self__, *, :param str role_arn: IAM Role with the AmazonOpenSearchServiceCognitoAccess policy attached. :param str user_pool_id: Cognito User pool used by the domain. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "identity_pool_id", identity_pool_id) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "user_pool_id", user_pool_id) + GetDomainCognitoOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + identity_pool_id=identity_pool_id, + role_arn=role_arn, + user_pool_id=user_pool_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + identity_pool_id: Optional[str] = None, + role_arn: Optional[str] = None, + user_pool_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if identity_pool_id is None: + raise TypeError("Missing 'identity_pool_id' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if user_pool_id is None and 'userPoolId' in kwargs: + user_pool_id = kwargs['userPoolId'] + if user_pool_id is None: + raise TypeError("Missing 'user_pool_id' argument") + + _setter("enabled", enabled) + _setter("identity_pool_id", identity_pool_id) + _setter("role_arn", role_arn) + _setter("user_pool_id", user_pool_id) @property @pulumi.getter @@ -2214,11 +3103,46 @@ def __init__(__self__, *, :param int volume_size: Size of EBS volumes attached to data nodes (in GB). :param str volume_type: Type of EBS volumes attached to data nodes. """ - pulumi.set(__self__, "ebs_enabled", ebs_enabled) - pulumi.set(__self__, "iops", iops) - pulumi.set(__self__, "throughput", throughput) - pulumi.set(__self__, "volume_size", volume_size) - pulumi.set(__self__, "volume_type", volume_type) + GetDomainEbsOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ebs_enabled=ebs_enabled, + iops=iops, + throughput=throughput, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ebs_enabled: Optional[bool] = None, + iops: Optional[int] = None, + throughput: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ebs_enabled is None and 'ebsEnabled' in kwargs: + ebs_enabled = kwargs['ebsEnabled'] + if ebs_enabled is None: + raise TypeError("Missing 'ebs_enabled' argument") + if iops is None: + raise TypeError("Missing 'iops' argument") + if throughput is None: + raise TypeError("Missing 'throughput' argument") + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_size is None: + raise TypeError("Missing 'volume_size' argument") + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if volume_type is None: + raise TypeError("Missing 'volume_type' argument") + + _setter("ebs_enabled", ebs_enabled) + _setter("iops", iops) + _setter("throughput", throughput) + _setter("volume_size", volume_size) + _setter("volume_type", volume_type) @property @pulumi.getter(name="ebsEnabled") @@ -2270,8 +3194,27 @@ def __init__(__self__, *, :param bool enabled: Enabled disabled toggle for off-peak update window :param str kms_key_id: KMS key id used to encrypt data at rest. """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "kms_key_id", kms_key_id) + GetDomainEncryptionAtRestResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + + _setter("enabled", enabled) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter @@ -2301,9 +3244,34 @@ def __init__(__self__, *, :param bool enabled: Enabled disabled toggle for off-peak update window :param str log_type: Type of OpenSearch log being published. """ - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "log_type", log_type) + GetDomainLogPublishingOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + enabled=enabled, + log_type=log_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group_arn: Optional[str] = None, + enabled: Optional[bool] = None, + log_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if cloudwatch_log_group_arn is None: + raise TypeError("Missing 'cloudwatch_log_group_arn' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_type is None and 'logType' in kwargs: + log_type = kwargs['logType'] + if log_type is None: + raise TypeError("Missing 'log_type' argument") + + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("enabled", enabled) + _setter("log_type", log_type) @property @pulumi.getter(name="cloudwatchLogGroupArn") @@ -2337,7 +3305,20 @@ def __init__(__self__, *, """ :param bool enabled: Enabled disabled toggle for off-peak update window """ - pulumi.set(__self__, "enabled", enabled) + GetDomainNodeToNodeEncryptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -2356,8 +3337,27 @@ def __init__(__self__, *, """ :param bool enabled: Enabled disabled toggle for off-peak update window """ - pulumi.set(__self__, "enabled", enabled) - pulumi.set(__self__, "off_peak_windows", off_peak_windows) + GetDomainOffPeakWindowOptionsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + off_peak_windows=off_peak_windows, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + off_peak_windows: Optional[Sequence['outputs.GetDomainOffPeakWindowOptionsOffPeakWindowResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if off_peak_windows is None and 'offPeakWindows' in kwargs: + off_peak_windows = kwargs['offPeakWindows'] + if off_peak_windows is None: + raise TypeError("Missing 'off_peak_windows' argument") + + _setter("enabled", enabled) + _setter("off_peak_windows", off_peak_windows) @property @pulumi.getter @@ -2380,7 +3380,22 @@ def __init__(__self__, *, """ :param Sequence['GetDomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeArgs'] window_start_times: 10h window for updates """ - pulumi.set(__self__, "window_start_times", window_start_times) + GetDomainOffPeakWindowOptionsOffPeakWindowResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + window_start_times=window_start_times, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + window_start_times: Optional[Sequence['outputs.GetDomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if window_start_times is None and 'windowStartTimes' in kwargs: + window_start_times = kwargs['windowStartTimes'] + if window_start_times is None: + raise TypeError("Missing 'window_start_times' argument") + + _setter("window_start_times", window_start_times) @property @pulumi.getter(name="windowStartTimes") @@ -2400,8 +3415,25 @@ def __init__(__self__, *, :param int hours: Starting hour of the 10-hour window for updates :param int minutes: Starting minute of the 10-hour window for updates """ - pulumi.set(__self__, "hours", hours) - pulumi.set(__self__, "minutes", minutes) + GetDomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + hours=hours, + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hours: Optional[int] = None, + minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hours is None: + raise TypeError("Missing 'hours' argument") + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("hours", hours) + _setter("minutes", minutes) @property @pulumi.getter @@ -2427,7 +3459,22 @@ def __init__(__self__, *, """ :param int automated_snapshot_start_hour: Hour during which the service takes an automated daily snapshot of the indices in the domain. """ - pulumi.set(__self__, "automated_snapshot_start_hour", automated_snapshot_start_hour) + GetDomainSnapshotOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + automated_snapshot_start_hour=automated_snapshot_start_hour, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automated_snapshot_start_hour: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automated_snapshot_start_hour is None and 'automatedSnapshotStartHour' in kwargs: + automated_snapshot_start_hour = kwargs['automatedSnapshotStartHour'] + if automated_snapshot_start_hour is None: + raise TypeError("Missing 'automated_snapshot_start_hour' argument") + + _setter("automated_snapshot_start_hour", automated_snapshot_start_hour) @property @pulumi.getter(name="automatedSnapshotStartHour") @@ -2445,7 +3492,22 @@ def __init__(__self__, *, """ :param bool auto_software_update_enabled: Enabled or disabled. """ - pulumi.set(__self__, "auto_software_update_enabled", auto_software_update_enabled) + GetDomainSoftwareUpdateOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_software_update_enabled=auto_software_update_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_software_update_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_software_update_enabled is None and 'autoSoftwareUpdateEnabled' in kwargs: + auto_software_update_enabled = kwargs['autoSoftwareUpdateEnabled'] + if auto_software_update_enabled is None: + raise TypeError("Missing 'auto_software_update_enabled' argument") + + _setter("auto_software_update_enabled", auto_software_update_enabled) @property @pulumi.getter(name="autoSoftwareUpdateEnabled") @@ -2469,10 +3531,43 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: Subnets used by the domain. :param str vpc_id: VPC used by the domain. """ - pulumi.set(__self__, "availability_zones", availability_zones) - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + GetDomainVpcOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zones=availability_zones, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zones: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if availability_zones is None: + raise TypeError("Missing 'availability_zones' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("availability_zones", availability_zones) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="availabilityZones") @@ -2520,10 +3615,41 @@ def __init__(__self__, *, :param int session_timeout: Session timeout, in minutes. Minimum is 5 minutes and maximum is 720 minutes (12 hours). Default is 60 minutes. :param str user_attribute: User attribute for this SAML integration. """ - pulumi.set(__self__, "group_attribute", group_attribute) - pulumi.set(__self__, "metadata", metadata) - pulumi.set(__self__, "session_timeout", session_timeout) - pulumi.set(__self__, "user_attribute", user_attribute) + GetServerlessSecurityConfigSamlOptionsResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_attribute=group_attribute, + metadata=metadata, + session_timeout=session_timeout, + user_attribute=user_attribute, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_attribute: Optional[str] = None, + metadata: Optional[str] = None, + session_timeout: Optional[int] = None, + user_attribute: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_attribute is None and 'groupAttribute' in kwargs: + group_attribute = kwargs['groupAttribute'] + if group_attribute is None: + raise TypeError("Missing 'group_attribute' argument") + if metadata is None: + raise TypeError("Missing 'metadata' argument") + if session_timeout is None and 'sessionTimeout' in kwargs: + session_timeout = kwargs['sessionTimeout'] + if session_timeout is None: + raise TypeError("Missing 'session_timeout' argument") + if user_attribute is None and 'userAttribute' in kwargs: + user_attribute = kwargs['userAttribute'] + if user_attribute is None: + raise TypeError("Missing 'user_attribute' argument") + + _setter("group_attribute", group_attribute) + _setter("metadata", metadata) + _setter("session_timeout", session_timeout) + _setter("user_attribute", user_attribute) @property @pulumi.getter(name="groupAttribute") diff --git a/sdk/python/pulumi_aws/opensearch/package.py b/sdk/python/pulumi_aws/opensearch/package.py index fd0d968c24e..5bdc9c23b88 100644 --- a/sdk/python/pulumi_aws/opensearch/package.py +++ b/sdk/python/pulumi_aws/opensearch/package.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,11 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] package_type: The type of package. :param pulumi.Input[str] package_description: Description of the package. """ - pulumi.set(__self__, "package_name", package_name) - pulumi.set(__self__, "package_source", package_source) - pulumi.set(__self__, "package_type", package_type) + PackageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + package_name=package_name, + package_source=package_source, + package_type=package_type, + package_description=package_description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + package_name: Optional[pulumi.Input[str]] = None, + package_source: Optional[pulumi.Input['PackagePackageSourceArgs']] = None, + package_type: Optional[pulumi.Input[str]] = None, + package_description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if package_name is None and 'packageName' in kwargs: + package_name = kwargs['packageName'] + if package_name is None: + raise TypeError("Missing 'package_name' argument") + if package_source is None and 'packageSource' in kwargs: + package_source = kwargs['packageSource'] + if package_source is None: + raise TypeError("Missing 'package_source' argument") + if package_type is None and 'packageType' in kwargs: + package_type = kwargs['packageType'] + if package_type is None: + raise TypeError("Missing 'package_type' argument") + if package_description is None and 'packageDescription' in kwargs: + package_description = kwargs['packageDescription'] + + _setter("package_name", package_name) + _setter("package_source", package_source) + _setter("package_type", package_type) if package_description is not None: - pulumi.set(__self__, "package_description", package_description) + _setter("package_description", package_description) @property @pulumi.getter(name="packageName") @@ -99,18 +130,51 @@ def __init__(__self__, *, :param pulumi.Input['PackagePackageSourceArgs'] package_source: Configuration block for the package source options. :param pulumi.Input[str] package_type: The type of package. """ + _PackageState._configure( + lambda key, value: pulumi.set(__self__, key, value), + available_package_version=available_package_version, + package_description=package_description, + package_id=package_id, + package_name=package_name, + package_source=package_source, + package_type=package_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + available_package_version: Optional[pulumi.Input[str]] = None, + package_description: Optional[pulumi.Input[str]] = None, + package_id: Optional[pulumi.Input[str]] = None, + package_name: Optional[pulumi.Input[str]] = None, + package_source: Optional[pulumi.Input['PackagePackageSourceArgs']] = None, + package_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if available_package_version is None and 'availablePackageVersion' in kwargs: + available_package_version = kwargs['availablePackageVersion'] + if package_description is None and 'packageDescription' in kwargs: + package_description = kwargs['packageDescription'] + if package_id is None and 'packageId' in kwargs: + package_id = kwargs['packageId'] + if package_name is None and 'packageName' in kwargs: + package_name = kwargs['packageName'] + if package_source is None and 'packageSource' in kwargs: + package_source = kwargs['packageSource'] + if package_type is None and 'packageType' in kwargs: + package_type = kwargs['packageType'] + if available_package_version is not None: - pulumi.set(__self__, "available_package_version", available_package_version) + _setter("available_package_version", available_package_version) if package_description is not None: - pulumi.set(__self__, "package_description", package_description) + _setter("package_description", package_description) if package_id is not None: - pulumi.set(__self__, "package_id", package_id) + _setter("package_id", package_id) if package_name is not None: - pulumi.set(__self__, "package_name", package_name) + _setter("package_name", package_name) if package_source is not None: - pulumi.set(__self__, "package_source", package_source) + _setter("package_source", package_source) if package_type is not None: - pulumi.set(__self__, "package_type", package_type) + _setter("package_type", package_type) @property @pulumi.getter(name="availablePackageVersion") @@ -241,6 +305,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PackageArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -263,6 +331,7 @@ def _internal_init(__self__, if package_name is None and not opts.urn: raise TypeError("Missing required property 'package_name'") __props__.__dict__["package_name"] = package_name + package_source = _utilities.configure(package_source, PackagePackageSourceArgs, True) if package_source is None and not opts.urn: raise TypeError("Missing required property 'package_source'") __props__.__dict__["package_source"] = package_source diff --git a/sdk/python/pulumi_aws/opensearch/package_association.py b/sdk/python/pulumi_aws/opensearch/package_association.py index 41829bd897b..cb903953ebc 100644 --- a/sdk/python/pulumi_aws/opensearch/package_association.py +++ b/sdk/python/pulumi_aws/opensearch/package_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PackageAssociationArgs', 'PackageAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: Name of the domain to associate the package with. :param pulumi.Input[str] package_id: Internal ID of the package to associate with a domain. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "package_id", package_id) + PackageAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + package_id=package_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + package_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if package_id is None and 'packageId' in kwargs: + package_id = kwargs['packageId'] + if package_id is None: + raise TypeError("Missing 'package_id' argument") + + _setter("domain_name", domain_name) + _setter("package_id", package_id) @property @pulumi.getter(name="domainName") @@ -60,12 +81,33 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: Name of the domain to associate the package with. :param pulumi.Input[str] package_id: Internal ID of the package to associate with a domain. """ + _PackageAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + package_id=package_id, + reference_path=reference_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + package_id: Optional[pulumi.Input[str]] = None, + reference_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if package_id is None and 'packageId' in kwargs: + package_id = kwargs['packageId'] + if reference_path is None and 'referencePath' in kwargs: + reference_path = kwargs['referencePath'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if package_id is not None: - pulumi.set(__self__, "package_id", package_id) + _setter("package_id", package_id) if reference_path is not None: - pulumi.set(__self__, "reference_path", reference_path) + _setter("reference_path", reference_path) @property @pulumi.getter(name="domainName") @@ -184,6 +226,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PackageAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opensearch/serverless_access_policy.py b/sdk/python/pulumi_aws/opensearch/serverless_access_policy.py index aebcac13d74..fab961a0121 100644 --- a/sdk/python/pulumi_aws/opensearch/serverless_access_policy.py +++ b/sdk/python/pulumi_aws/opensearch/serverless_access_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ServerlessAccessPolicyArgs', 'ServerlessAccessPolicy'] @@ -27,12 +27,33 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the policy. Typically used to store information about the permissions defined in the policy. :param pulumi.Input[str] name: Name of the policy. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "type", type) + ServerlessAccessPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + type=type, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("policy", policy) + _setter("type", type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -103,16 +124,37 @@ def __init__(__self__, *, The following arguments are optional: """ + _ServerlessAccessPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + policy=policy, + policy_version=policy_version, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + policy_version: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_version is None and 'policyVersion' in kwargs: + policy_version = kwargs['policyVersion'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if policy_version is not None: - pulumi.set(__self__, "policy_version", policy_version) + _setter("policy_version", policy_version) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -410,6 +452,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServerlessAccessPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opensearch/serverless_collection.py b/sdk/python/pulumi_aws/opensearch/serverless_collection.py index 9a9e10ddd8a..445d72f72b0 100644 --- a/sdk/python/pulumi_aws/opensearch/serverless_collection.py +++ b/sdk/python/pulumi_aws/opensearch/serverless_collection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -30,16 +30,35 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the collection. 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] type: Type of collection. One of `SEARCH`, `TIMESERIES`, or `VECTORSEARCH`. Defaults to `TIMESERIES`. """ + ServerlessCollectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + tags=tags, + timeouts=timeouts, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['ServerlessCollectionTimeoutsArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -127,29 +146,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the collection. 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] type: Type of collection. One of `SEARCH`, `TIMESERIES`, or `VECTORSEARCH`. Defaults to `TIMESERIES`. """ + _ServerlessCollectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + collection_endpoint=collection_endpoint, + dashboard_endpoint=dashboard_endpoint, + description=description, + kms_key_arn=kms_key_arn, + name=name, + tags=tags, + tags_all=tags_all, + timeouts=timeouts, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + collection_endpoint: Optional[pulumi.Input[str]] = None, + dashboard_endpoint: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['ServerlessCollectionTimeoutsArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if collection_endpoint is None and 'collectionEndpoint' in kwargs: + collection_endpoint = kwargs['collectionEndpoint'] + if dashboard_endpoint is None and 'dashboardEndpoint' in kwargs: + dashboard_endpoint = kwargs['dashboardEndpoint'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if collection_endpoint is not None: - pulumi.set(__self__, "collection_endpoint", collection_endpoint) + _setter("collection_endpoint", collection_endpoint) if dashboard_endpoint is not None: - pulumi.set(__self__, "dashboard_endpoint", dashboard_endpoint) + _setter("dashboard_endpoint", dashboard_endpoint) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -377,6 +433,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServerlessCollectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -399,6 +459,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags + timeouts = _utilities.configure(timeouts, ServerlessCollectionTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts __props__.__dict__["type"] = type __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/opensearch/serverless_security_config.py b/sdk/python/pulumi_aws/opensearch/serverless_security_config.py index 9a8920eb329..3a154c54178 100644 --- a/sdk/python/pulumi_aws/opensearch/serverless_security_config.py +++ b/sdk/python/pulumi_aws/opensearch/serverless_security_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the policy. :param pulumi.Input['ServerlessSecurityConfigSamlOptionsArgs'] saml_options: Configuration block for SAML options. """ - pulumi.set(__self__, "type", type) + ServerlessSecurityConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + description=description, + name=name, + saml_options=saml_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + saml_options: Optional[pulumi.Input['ServerlessSecurityConfigSamlOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if saml_options is None and 'samlOptions' in kwargs: + saml_options = kwargs['samlOptions'] + + _setter("type", type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if saml_options is not None: - pulumi.set(__self__, "saml_options", saml_options) + _setter("saml_options", saml_options) @property @pulumi.getter @@ -106,16 +127,39 @@ def __init__(__self__, *, The following arguments are optional: """ + _ServerlessSecurityConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + config_version=config_version, + description=description, + name=name, + saml_options=saml_options, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + config_version: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + saml_options: Optional[pulumi.Input['ServerlessSecurityConfigSamlOptionsArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if config_version is None and 'configVersion' in kwargs: + config_version = kwargs['configVersion'] + if saml_options is None and 'samlOptions' in kwargs: + saml_options = kwargs['samlOptions'] + if config_version is not None: - pulumi.set(__self__, "config_version", config_version) + _setter("config_version", config_version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if saml_options is not None: - pulumi.set(__self__, "saml_options", saml_options) + _setter("saml_options", saml_options) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="configVersion") @@ -241,6 +285,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServerlessSecurityConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -261,6 +309,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["name"] = name + saml_options = _utilities.configure(saml_options, ServerlessSecurityConfigSamlOptionsArgs, True) __props__.__dict__["saml_options"] = saml_options if type is None and not opts.urn: raise TypeError("Missing required property 'type'") diff --git a/sdk/python/pulumi_aws/opensearch/serverless_security_policy.py b/sdk/python/pulumi_aws/opensearch/serverless_security_policy.py index 0a32d14a5ea..f47579f6f0f 100644 --- a/sdk/python/pulumi_aws/opensearch/serverless_security_policy.py +++ b/sdk/python/pulumi_aws/opensearch/serverless_security_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ServerlessSecurityPolicyArgs', 'ServerlessSecurityPolicy'] @@ -27,12 +27,33 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the policy. Typically used to store information about the permissions defined in the policy. :param pulumi.Input[str] name: Name of the policy. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "type", type) + ServerlessSecurityPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + type=type, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("policy", policy) + _setter("type", type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -103,16 +124,37 @@ def __init__(__self__, *, The following arguments are optional: """ + _ServerlessSecurityPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + policy=policy, + policy_version=policy_version, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + policy_version: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_version is None and 'policyVersion' in kwargs: + policy_version = kwargs['policyVersion'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if policy_version is not None: - pulumi.set(__self__, "policy_version", policy_version) + _setter("policy_version", policy_version) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -528,6 +570,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServerlessSecurityPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opensearch/serverless_vpc_endpoint.py b/sdk/python/pulumi_aws/opensearch/serverless_vpc_endpoint.py index 97136e3e3bf..11356ce7607 100644 --- a/sdk/python/pulumi_aws/opensearch/serverless_vpc_endpoint.py +++ b/sdk/python/pulumi_aws/opensearch/serverless_vpc_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -30,14 +30,43 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the interface endpoint. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: One or more security groups that define the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint. Up to 5 security groups can be provided. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + ServerlessVpcEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + vpc_id=vpc_id, + name=name, + security_group_ids=security_group_ids, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['ServerlessVpcEndpointTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="subnetIds") @@ -116,16 +145,41 @@ def __init__(__self__, *, The following arguments are optional: """ + _ServerlessVpcEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + timeouts=timeouts, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['ServerlessVpcEndpointTimeoutsArgs']] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -269,6 +323,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServerlessVpcEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -293,6 +351,7 @@ def _internal_init(__self__, if subnet_ids is None and not opts.urn: raise TypeError("Missing required property 'subnet_ids'") __props__.__dict__["subnet_ids"] = subnet_ids + timeouts = _utilities.configure(timeouts, ServerlessVpcEndpointTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts if vpc_id is None and not opts.urn: raise TypeError("Missing required property 'vpc_id'") diff --git a/sdk/python/pulumi_aws/opensearch/vpc_endpoint.py b/sdk/python/pulumi_aws/opensearch/vpc_endpoint.py index 82e62e21807..25b8cff24c9 100644 --- a/sdk/python/pulumi_aws/opensearch/vpc_endpoint.py +++ b/sdk/python/pulumi_aws/opensearch/vpc_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_arn: Specifies the Amazon Resource Name (ARN) of the domain to create the endpoint for :param pulumi.Input['VpcEndpointVpcOptionsArgs'] vpc_options: Options to specify the subnets and security groups for the endpoint. """ - pulumi.set(__self__, "domain_arn", domain_arn) - pulumi.set(__self__, "vpc_options", vpc_options) + VpcEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_arn=domain_arn, + vpc_options=vpc_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_arn: Optional[pulumi.Input[str]] = None, + vpc_options: Optional[pulumi.Input['VpcEndpointVpcOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_arn is None and 'domainArn' in kwargs: + domain_arn = kwargs['domainArn'] + if domain_arn is None: + raise TypeError("Missing 'domain_arn' argument") + if vpc_options is None and 'vpcOptions' in kwargs: + vpc_options = kwargs['vpcOptions'] + if vpc_options is None: + raise TypeError("Missing 'vpc_options' argument") + + _setter("domain_arn", domain_arn) + _setter("vpc_options", vpc_options) @property @pulumi.getter(name="domainArn") @@ -63,12 +84,31 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint: The connection endpoint ID for connecting to the domain. :param pulumi.Input['VpcEndpointVpcOptionsArgs'] vpc_options: Options to specify the subnets and security groups for the endpoint. """ + _VpcEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_arn=domain_arn, + endpoint=endpoint, + vpc_options=vpc_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_arn: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + vpc_options: Optional[pulumi.Input['VpcEndpointVpcOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_arn is None and 'domainArn' in kwargs: + domain_arn = kwargs['domainArn'] + if vpc_options is None and 'vpcOptions' in kwargs: + vpc_options = kwargs['vpcOptions'] + if domain_arn is not None: - pulumi.set(__self__, "domain_arn", domain_arn) + _setter("domain_arn", domain_arn) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if vpc_options is not None: - pulumi.set(__self__, "vpc_options", vpc_options) + _setter("vpc_options", vpc_options) @property @pulumi.getter(name="domainArn") @@ -200,6 +240,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -219,6 +263,7 @@ def _internal_init(__self__, if domain_arn is None and not opts.urn: raise TypeError("Missing required property 'domain_arn'") __props__.__dict__["domain_arn"] = domain_arn + vpc_options = _utilities.configure(vpc_options, VpcEndpointVpcOptionsArgs, True) if vpc_options is None and not opts.urn: raise TypeError("Missing required property 'vpc_options'") __props__.__dict__["vpc_options"] = vpc_options diff --git a/sdk/python/pulumi_aws/opsworks/_inputs.py b/sdk/python/pulumi_aws/opsworks/_inputs.py index d82977d9b58..3be9422c08f 100644 --- a/sdk/python/pulumi_aws/opsworks/_inputs.py +++ b/sdk/python/pulumi_aws/opsworks/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -102,17 +102,42 @@ def __init__(__self__, *, :param pulumi.Input[str] url: The URL where the app resource can be found. :param pulumi.Input[str] username: Username to use when authenticating to the source. """ - pulumi.set(__self__, "type", type) + ApplicationAppSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + password=password, + revision=revision, + ssh_key=ssh_key, + url=url, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + revision: Optional[pulumi.Input[str]] = None, + ssh_key: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if ssh_key is None and 'sshKey' in kwargs: + ssh_key = kwargs['sshKey'] + + _setter("type", type) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if revision is not None: - pulumi.set(__self__, "revision", revision) + _setter("revision", revision) if ssh_key is not None: - pulumi.set(__self__, "ssh_key", ssh_key) + _setter("ssh_key", ssh_key) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -198,10 +223,29 @@ def __init__(__self__, *, :param pulumi.Input[str] value: Variable value. :param pulumi.Input[bool] secure: Set visibility of the variable value to `true` or `false`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ApplicationEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + secure=secure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + secure: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) if secure is not None: - pulumi.set(__self__, "secure", secure) + _setter("secure", secure) @property @pulumi.getter @@ -251,10 +295,31 @@ def __init__(__self__, *, :param pulumi.Input[str] private_key: The private key; the contents of the certificate's domain.key file. :param pulumi.Input[str] chain: Can be used to specify an intermediate certificate authority key or client authentication. """ - pulumi.set(__self__, "certificate", certificate) - pulumi.set(__self__, "private_key", private_key) + ApplicationSslConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + private_key=private_key, + chain=chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + chain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate is None: + raise TypeError("Missing 'certificate' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate", certificate) + _setter("private_key", private_key) if chain is not None: - pulumi.set(__self__, "chain", chain) + _setter("chain", chain) @property @pulumi.getter @@ -301,10 +366,25 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['CustomLayerCloudwatchConfigurationLogStreamArgs']]] log_streams: A block the specifies how an opsworks logs look like. See Log Streams. """ + CustomLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['CustomLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -355,26 +435,79 @@ def __init__(__self__, *, :param pulumi.Input[str] multiline_start_pattern: Specifies the pattern for identifying the start of a log message. :param pulumi.Input[str] time_zone: Specifies the time zone of log event time stamps. """ - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + CustomLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -528,17 +661,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + CustomLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -636,12 +804,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable: Whether load-based auto scaling is enabled for the layer. :param pulumi.Input['CustomLayerLoadBasedAutoScalingUpscalingArgs'] upscaling: The upscaling settings, as defined below, used for load-based autoscaling """ + CustomLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['CustomLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['CustomLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -699,20 +882,55 @@ def __init__(__self__, *, :param pulumi.Input[float] memory_threshold: The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold. :param pulumi.Input[int] thresholds_wait_time: The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed. """ + CustomLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -818,20 +1036,55 @@ def __init__(__self__, *, :param pulumi.Input[float] memory_threshold: The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold. :param pulumi.Input[int] thresholds_wait_time: The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed. """ + CustomLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -923,10 +1176,25 @@ class EcsClusterLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['EcsClusterLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + EcsClusterLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['EcsClusterLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -961,26 +1229,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + EcsClusterLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -1100,17 +1421,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + EcsClusterLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -1200,12 +1556,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['EcsClusterLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['EcsClusterLayerLoadBasedAutoScalingUpscalingArgs']] = None): + EcsClusterLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['EcsClusterLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['EcsClusterLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -1245,20 +1616,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + EcsClusterLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -1334,20 +1740,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + EcsClusterLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -1418,10 +1859,25 @@ class GangliaLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['GangliaLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + GangliaLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['GangliaLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -1456,26 +1912,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + GangliaLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -1595,17 +2104,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + GangliaLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -1695,12 +2239,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['GangliaLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['GangliaLayerLoadBasedAutoScalingUpscalingArgs']] = None): + GangliaLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['GangliaLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['GangliaLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -1740,20 +2299,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + GangliaLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -1829,20 +2423,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + GangliaLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -1913,10 +2542,25 @@ class HaproxyLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['HaproxyLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + HaproxyLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['HaproxyLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -1951,26 +2595,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + HaproxyLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -2090,17 +2787,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + HaproxyLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -2190,12 +2922,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['HaproxyLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['HaproxyLayerLoadBasedAutoScalingUpscalingArgs']] = None): + HaproxyLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['HaproxyLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['HaproxyLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -2235,20 +2982,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + HaproxyLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -2324,20 +3106,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + HaproxyLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -2412,17 +3229,50 @@ def __init__(__self__, *, snapshot_id: Optional[pulumi.Input[str]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "device_name", device_name) + InstanceEbsBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + iops=iops, + snapshot_id=snapshot_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + delete_on_termination: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -2484,8 +3334,29 @@ class InstanceEphemeralBlockDeviceArgs: def __init__(__self__, *, device_name: pulumi.Input[str], virtual_name: pulumi.Input[str]): - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "virtual_name", virtual_name) + InstanceEphemeralBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + virtual_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -2513,14 +3384,37 @@ def __init__(__self__, *, iops: Optional[pulumi.Input[int]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): + InstanceRootBlockDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + iops=iops, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -2564,10 +3458,25 @@ class JavaAppLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['JavaAppLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + JavaAppLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['JavaAppLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -2602,26 +3511,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + JavaAppLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -2741,17 +3703,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + JavaAppLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -2841,12 +3838,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['JavaAppLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['JavaAppLayerLoadBasedAutoScalingUpscalingArgs']] = None): + JavaAppLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['JavaAppLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['JavaAppLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -2886,20 +3898,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + JavaAppLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -2975,20 +4022,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + JavaAppLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -3059,10 +4141,25 @@ class MemcachedLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['MemcachedLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + MemcachedLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['MemcachedLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -3097,26 +4194,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + MemcachedLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -3236,17 +4386,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + MemcachedLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -3336,12 +4521,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['MemcachedLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['MemcachedLayerLoadBasedAutoScalingUpscalingArgs']] = None): + MemcachedLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['MemcachedLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['MemcachedLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -3381,20 +4581,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + MemcachedLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -3470,20 +4705,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + MemcachedLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -3554,10 +4824,25 @@ class MysqlLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['MysqlLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + MysqlLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['MysqlLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -3592,26 +4877,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + MysqlLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -3731,17 +5069,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + MysqlLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -3831,12 +5204,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['MysqlLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['MysqlLayerLoadBasedAutoScalingUpscalingArgs']] = None): + MysqlLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['MysqlLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['MysqlLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -3876,20 +5264,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + MysqlLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -3965,20 +5388,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + MysqlLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -4049,10 +5507,25 @@ class NodejsAppLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['NodejsAppLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + NodejsAppLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['NodejsAppLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -4087,26 +5560,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + NodejsAppLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -4226,17 +5752,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + NodejsAppLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -4326,12 +5887,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['NodejsAppLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['NodejsAppLayerLoadBasedAutoScalingUpscalingArgs']] = None): + NodejsAppLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['NodejsAppLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['NodejsAppLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -4371,20 +5947,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + NodejsAppLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -4460,20 +6071,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + NodejsAppLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -4544,10 +6190,25 @@ class PhpAppLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['PhpAppLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + PhpAppLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['PhpAppLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -4582,26 +6243,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + PhpAppLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -4721,17 +6435,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + PhpAppLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -4821,12 +6570,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['PhpAppLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['PhpAppLayerLoadBasedAutoScalingUpscalingArgs']] = None): + PhpAppLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['PhpAppLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['PhpAppLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -4866,20 +6630,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + PhpAppLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -4955,20 +6754,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + PhpAppLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -5039,10 +6873,25 @@ class RailsAppLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['RailsAppLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + RailsAppLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['RailsAppLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -5077,26 +6926,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + RailsAppLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -5216,17 +7118,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + RailsAppLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -5316,12 +7253,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['RailsAppLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['RailsAppLayerLoadBasedAutoScalingUpscalingArgs']] = None): + RailsAppLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['RailsAppLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['RailsAppLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -5361,20 +7313,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + RailsAppLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -5450,20 +7437,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + RailsAppLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -5546,16 +7568,43 @@ def __init__(__self__, *, :param pulumi.Input[str] ssh_key: SSH key to use when authenticating to the source. This provider cannot perform drift detection of this configuration. :param pulumi.Input[str] username: Username to use when authenticating to the source. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "url", url) + StackCustomCookbooksSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + url=url, + password=password, + revision=revision, + ssh_key=ssh_key, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + revision: Optional[pulumi.Input[str]] = None, + ssh_key: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if url is None: + raise TypeError("Missing 'url' argument") + if ssh_key is None and 'sshKey' in kwargs: + ssh_key = kwargs['sshKey'] + + _setter("type", type) + _setter("url", url) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if revision is not None: - pulumi.set(__self__, "revision", revision) + _setter("revision", revision) if ssh_key is not None: - pulumi.set(__self__, "ssh_key", ssh_key) + _setter("ssh_key", ssh_key) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -5635,10 +7684,25 @@ class StaticWebLayerCloudwatchConfigurationArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None, log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['StaticWebLayerCloudwatchConfigurationLogStreamArgs']]]] = None): + StaticWebLayerCloudwatchConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_streams: Optional[pulumi.Input[Sequence[pulumi.Input['StaticWebLayerCloudwatchConfigurationLogStreamArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -5673,26 +7737,79 @@ def __init__(__self__, *, initial_position: Optional[pulumi.Input[str]] = None, multiline_start_pattern: Optional[pulumi.Input[str]] = None, time_zone: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + StaticWebLayerCloudwatchConfigurationLogStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[pulumi.Input[str]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + batch_count: Optional[pulumi.Input[int]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + buffer_duration: Optional[pulumi.Input[int]] = None, + datetime_format: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + file_fingerprint_lines: Optional[pulumi.Input[str]] = None, + initial_position: Optional[pulumi.Input[str]] = None, + multiline_start_pattern: Optional[pulumi.Input[str]] = None, + time_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -5812,17 +7929,52 @@ def __init__(__self__, *, :param pulumi.Input[str] raid_level: The RAID level to use for the volume. :param pulumi.Input[str] type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + StaticWebLayerEbsVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[pulumi.Input[str]] = None, + number_of_disks: Optional[pulumi.Input[int]] = None, + size: Optional[pulumi.Input[int]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + iops: Optional[pulumi.Input[int]] = None, + raid_level: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -5912,12 +8064,27 @@ def __init__(__self__, *, downscaling: Optional[pulumi.Input['StaticWebLayerLoadBasedAutoScalingDownscalingArgs']] = None, enable: Optional[pulumi.Input[bool]] = None, upscaling: Optional[pulumi.Input['StaticWebLayerLoadBasedAutoScalingUpscalingArgs']] = None): + StaticWebLayerLoadBasedAutoScalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional[pulumi.Input['StaticWebLayerLoadBasedAutoScalingDownscalingArgs']] = None, + enable: Optional[pulumi.Input[bool]] = None, + upscaling: Optional[pulumi.Input['StaticWebLayerLoadBasedAutoScalingUpscalingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -5957,20 +8124,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + StaticWebLayerLoadBasedAutoScalingDownscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -6046,20 +8248,55 @@ def __init__(__self__, *, load_threshold: Optional[pulumi.Input[float]] = None, memory_threshold: Optional[pulumi.Input[float]] = None, thresholds_wait_time: Optional[pulumi.Input[int]] = None): + StaticWebLayerLoadBasedAutoScalingUpscalingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu_threshold: Optional[pulumi.Input[float]] = None, + ignore_metrics_time: Optional[pulumi.Input[int]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + load_threshold: Optional[pulumi.Input[float]] = None, + memory_threshold: Optional[pulumi.Input[float]] = None, + thresholds_wait_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/opsworks/application.py b/sdk/python/pulumi_aws/opsworks/application.py index df684b4c670..9c872f777aa 100644 --- a/sdk/python/pulumi_aws/opsworks/application.py +++ b/sdk/python/pulumi_aws/opsworks/application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -53,38 +53,109 @@ def __init__(__self__, *, :param pulumi.Input[str] short_name: A short, machine-readable name for the application. This can only be defined on resource creation and ignored on resource update. :param pulumi.Input[Sequence[pulumi.Input['ApplicationSslConfigurationArgs']]] ssl_configurations: The SSL configuration of the app. Object is described below. """ - pulumi.set(__self__, "stack_id", stack_id) - pulumi.set(__self__, "type", type) + ApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + type=type, + app_sources=app_sources, + auto_bundle_on_deploy=auto_bundle_on_deploy, + aws_flow_ruby_settings=aws_flow_ruby_settings, + data_source_arn=data_source_arn, + data_source_database_name=data_source_database_name, + data_source_type=data_source_type, + description=description, + document_root=document_root, + domains=domains, + enable_ssl=enable_ssl, + environments=environments, + name=name, + rails_env=rails_env, + short_name=short_name, + ssl_configurations=ssl_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + app_sources: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationAppSourceArgs']]]] = None, + auto_bundle_on_deploy: Optional[pulumi.Input[str]] = None, + aws_flow_ruby_settings: Optional[pulumi.Input[str]] = None, + data_source_arn: Optional[pulumi.Input[str]] = None, + data_source_database_name: Optional[pulumi.Input[str]] = None, + data_source_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + document_root: Optional[pulumi.Input[str]] = None, + domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enable_ssl: Optional[pulumi.Input[bool]] = None, + environments: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationEnvironmentArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + rails_env: Optional[pulumi.Input[str]] = None, + short_name: Optional[pulumi.Input[str]] = None, + ssl_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationSslConfigurationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if app_sources is None and 'appSources' in kwargs: + app_sources = kwargs['appSources'] + if auto_bundle_on_deploy is None and 'autoBundleOnDeploy' in kwargs: + auto_bundle_on_deploy = kwargs['autoBundleOnDeploy'] + if aws_flow_ruby_settings is None and 'awsFlowRubySettings' in kwargs: + aws_flow_ruby_settings = kwargs['awsFlowRubySettings'] + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_database_name is None and 'dataSourceDatabaseName' in kwargs: + data_source_database_name = kwargs['dataSourceDatabaseName'] + if data_source_type is None and 'dataSourceType' in kwargs: + data_source_type = kwargs['dataSourceType'] + if document_root is None and 'documentRoot' in kwargs: + document_root = kwargs['documentRoot'] + if enable_ssl is None and 'enableSsl' in kwargs: + enable_ssl = kwargs['enableSsl'] + if rails_env is None and 'railsEnv' in kwargs: + rails_env = kwargs['railsEnv'] + if short_name is None and 'shortName' in kwargs: + short_name = kwargs['shortName'] + if ssl_configurations is None and 'sslConfigurations' in kwargs: + ssl_configurations = kwargs['sslConfigurations'] + + _setter("stack_id", stack_id) + _setter("type", type) if app_sources is not None: - pulumi.set(__self__, "app_sources", app_sources) + _setter("app_sources", app_sources) if auto_bundle_on_deploy is not None: - pulumi.set(__self__, "auto_bundle_on_deploy", auto_bundle_on_deploy) + _setter("auto_bundle_on_deploy", auto_bundle_on_deploy) if aws_flow_ruby_settings is not None: - pulumi.set(__self__, "aws_flow_ruby_settings", aws_flow_ruby_settings) + _setter("aws_flow_ruby_settings", aws_flow_ruby_settings) if data_source_arn is not None: - pulumi.set(__self__, "data_source_arn", data_source_arn) + _setter("data_source_arn", data_source_arn) if data_source_database_name is not None: - pulumi.set(__self__, "data_source_database_name", data_source_database_name) + _setter("data_source_database_name", data_source_database_name) if data_source_type is not None: - pulumi.set(__self__, "data_source_type", data_source_type) + _setter("data_source_type", data_source_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if document_root is not None: - pulumi.set(__self__, "document_root", document_root) + _setter("document_root", document_root) if domains is not None: - pulumi.set(__self__, "domains", domains) + _setter("domains", domains) if enable_ssl is not None: - pulumi.set(__self__, "enable_ssl", enable_ssl) + _setter("enable_ssl", enable_ssl) if environments is not None: - pulumi.set(__self__, "environments", environments) + _setter("environments", environments) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rails_env is not None: - pulumi.set(__self__, "rails_env", rails_env) + _setter("rails_env", rails_env) if short_name is not None: - pulumi.set(__self__, "short_name", short_name) + _setter("short_name", short_name) if ssl_configurations is not None: - pulumi.set(__self__, "ssl_configurations", ssl_configurations) + _setter("ssl_configurations", ssl_configurations) @property @pulumi.getter(name="stackId") @@ -331,40 +402,107 @@ def __init__(__self__, *, :param pulumi.Input[str] stack_id: ID of the stack the application will belong to. :param pulumi.Input[str] type: Opsworks application type. One of `aws-flow-ruby`, `java`, `rails`, `php`, `nodejs`, `static` or `other`. """ + _ApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_sources=app_sources, + auto_bundle_on_deploy=auto_bundle_on_deploy, + aws_flow_ruby_settings=aws_flow_ruby_settings, + data_source_arn=data_source_arn, + data_source_database_name=data_source_database_name, + data_source_type=data_source_type, + description=description, + document_root=document_root, + domains=domains, + enable_ssl=enable_ssl, + environments=environments, + name=name, + rails_env=rails_env, + short_name=short_name, + ssl_configurations=ssl_configurations, + stack_id=stack_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_sources: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationAppSourceArgs']]]] = None, + auto_bundle_on_deploy: Optional[pulumi.Input[str]] = None, + aws_flow_ruby_settings: Optional[pulumi.Input[str]] = None, + data_source_arn: Optional[pulumi.Input[str]] = None, + data_source_database_name: Optional[pulumi.Input[str]] = None, + data_source_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + document_root: Optional[pulumi.Input[str]] = None, + domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enable_ssl: Optional[pulumi.Input[bool]] = None, + environments: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationEnvironmentArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + rails_env: Optional[pulumi.Input[str]] = None, + short_name: Optional[pulumi.Input[str]] = None, + ssl_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationSslConfigurationArgs']]]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_sources is None and 'appSources' in kwargs: + app_sources = kwargs['appSources'] + if auto_bundle_on_deploy is None and 'autoBundleOnDeploy' in kwargs: + auto_bundle_on_deploy = kwargs['autoBundleOnDeploy'] + if aws_flow_ruby_settings is None and 'awsFlowRubySettings' in kwargs: + aws_flow_ruby_settings = kwargs['awsFlowRubySettings'] + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_database_name is None and 'dataSourceDatabaseName' in kwargs: + data_source_database_name = kwargs['dataSourceDatabaseName'] + if data_source_type is None and 'dataSourceType' in kwargs: + data_source_type = kwargs['dataSourceType'] + if document_root is None and 'documentRoot' in kwargs: + document_root = kwargs['documentRoot'] + if enable_ssl is None and 'enableSsl' in kwargs: + enable_ssl = kwargs['enableSsl'] + if rails_env is None and 'railsEnv' in kwargs: + rails_env = kwargs['railsEnv'] + if short_name is None and 'shortName' in kwargs: + short_name = kwargs['shortName'] + if ssl_configurations is None and 'sslConfigurations' in kwargs: + ssl_configurations = kwargs['sslConfigurations'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if app_sources is not None: - pulumi.set(__self__, "app_sources", app_sources) + _setter("app_sources", app_sources) if auto_bundle_on_deploy is not None: - pulumi.set(__self__, "auto_bundle_on_deploy", auto_bundle_on_deploy) + _setter("auto_bundle_on_deploy", auto_bundle_on_deploy) if aws_flow_ruby_settings is not None: - pulumi.set(__self__, "aws_flow_ruby_settings", aws_flow_ruby_settings) + _setter("aws_flow_ruby_settings", aws_flow_ruby_settings) if data_source_arn is not None: - pulumi.set(__self__, "data_source_arn", data_source_arn) + _setter("data_source_arn", data_source_arn) if data_source_database_name is not None: - pulumi.set(__self__, "data_source_database_name", data_source_database_name) + _setter("data_source_database_name", data_source_database_name) if data_source_type is not None: - pulumi.set(__self__, "data_source_type", data_source_type) + _setter("data_source_type", data_source_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if document_root is not None: - pulumi.set(__self__, "document_root", document_root) + _setter("document_root", document_root) if domains is not None: - pulumi.set(__self__, "domains", domains) + _setter("domains", domains) if enable_ssl is not None: - pulumi.set(__self__, "enable_ssl", enable_ssl) + _setter("enable_ssl", enable_ssl) if environments is not None: - pulumi.set(__self__, "environments", environments) + _setter("environments", environments) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rails_env is not None: - pulumi.set(__self__, "rails_env", rails_env) + _setter("rails_env", rails_env) if short_name is not None: - pulumi.set(__self__, "short_name", short_name) + _setter("short_name", short_name) if ssl_configurations is not None: - pulumi.set(__self__, "ssl_configurations", ssl_configurations) + _setter("ssl_configurations", ssl_configurations) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="appSources") @@ -722,6 +860,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opsworks/custom_layer.py b/sdk/python/pulumi_aws/opsworks/custom_layer.py index c28a4d32bad..fae5fe7e94e 100644 --- a/sdk/python/pulumi_aws/opsworks/custom_layer.py +++ b/sdk/python/pulumi_aws/opsworks/custom_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -66,52 +66,157 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "short_name", short_name) - pulumi.set(__self__, "stack_id", stack_id) + CustomLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + short_name=short_name, + stack_id=stack_id, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + short_name: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['CustomLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['CustomLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['CustomLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if short_name is None and 'shortName' in kwargs: + short_name = kwargs['shortName'] + if short_name is None: + raise TypeError("Missing 'short_name' argument") + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("short_name", short_name) + _setter("stack_id", stack_id) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="shortName") @@ -448,61 +553,168 @@ def __init__(__self__, *, :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[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _CustomLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + short_name=short_name, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['CustomLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['CustomLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['CustomLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + short_name: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if short_name is None and 'shortName' in kwargs: + short_name = kwargs['shortName'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if short_name is not None: - pulumi.set(__self__, "short_name", short_name) + _setter("short_name", short_name) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter @@ -925,6 +1137,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -966,6 +1182,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, CustomLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -980,6 +1197,7 @@ def _internal_init(__self__, __props__.__dict__["elastic_load_balancer"] = elastic_load_balancer __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, CustomLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name if short_name is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/opsworks/ecs_cluster_layer.py b/sdk/python/pulumi_aws/opsworks/ecs_cluster_layer.py index 07d776d13de..98a91320957 100644 --- a/sdk/python/pulumi_aws/opsworks/ecs_cluster_layer.py +++ b/sdk/python/pulumi_aws/opsworks/ecs_cluster_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -64,52 +64,157 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "ecs_cluster_arn", ecs_cluster_arn) - pulumi.set(__self__, "stack_id", stack_id) + EcsClusterLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ecs_cluster_arn=ecs_cluster_arn, + stack_id=stack_id, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ecs_cluster_arn: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['EcsClusterLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['EcsClusterLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['EcsClusterLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ecs_cluster_arn is None and 'ecsClusterArn' in kwargs: + ecs_cluster_arn = kwargs['ecsClusterArn'] + if ecs_cluster_arn is None: + raise TypeError("Missing 'ecs_cluster_arn' argument") + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("ecs_cluster_arn", ecs_cluster_arn) + _setter("stack_id", stack_id) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="ecsClusterArn") @@ -437,61 +542,168 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _EcsClusterLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + ecs_cluster_arn=ecs_cluster_arn, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['EcsClusterLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['EcsClusterLayerEbsVolumeArgs']]]] = None, + ecs_cluster_arn: Optional[pulumi.Input[str]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['EcsClusterLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if ecs_cluster_arn is None and 'ecsClusterArn' in kwargs: + ecs_cluster_arn = kwargs['ecsClusterArn'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if ecs_cluster_arn is not None: - pulumi.set(__self__, "ecs_cluster_arn", ecs_cluster_arn) + _setter("ecs_cluster_arn", ecs_cluster_arn) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter @@ -887,6 +1099,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EcsClusterLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -928,6 +1144,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, EcsClusterLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -945,6 +1162,7 @@ def _internal_init(__self__, __props__.__dict__["elastic_load_balancer"] = elastic_load_balancer __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, EcsClusterLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name if stack_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/opsworks/ganglia_layer.py b/sdk/python/pulumi_aws/opsworks/ganglia_layer.py index 84f3f6e1ece..fd981aa45e9 100644 --- a/sdk/python/pulumi_aws/opsworks/ganglia_layer.py +++ b/sdk/python/pulumi_aws/opsworks/ganglia_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -68,56 +68,163 @@ def __init__(__self__, *, :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. :param pulumi.Input[str] username: The username to use for Ganglia. Defaults to "opsworks". """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "stack_id", stack_id) + GangliaLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + stack_id=stack_id, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + system_packages=system_packages, + tags=tags, + url=url, + use_ebs_optimized_instances=use_ebs_optimized_instances, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['GangliaLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['GangliaLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['GangliaLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("password", password) + _setter("stack_id", stack_id) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -474,65 +581,174 @@ def __init__(__self__, *, :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. :param pulumi.Input[str] username: The username to use for Ganglia. Defaults to "opsworks". """ + _GangliaLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + password=password, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + url=url, + use_ebs_optimized_instances=use_ebs_optimized_instances, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['GangliaLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['GangliaLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['GangliaLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -959,6 +1175,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GangliaLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1002,6 +1222,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, GangliaLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -1016,6 +1237,7 @@ def _internal_init(__self__, __props__.__dict__["elastic_load_balancer"] = elastic_load_balancer __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, GangliaLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name if password is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/opsworks/haproxy_layer.py b/sdk/python/pulumi_aws/opsworks/haproxy_layer.py index b9b2d007259..5cfe929dad2 100644 --- a/sdk/python/pulumi_aws/opsworks/haproxy_layer.py +++ b/sdk/python/pulumi_aws/opsworks/haproxy_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -74,62 +74,187 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "stack_id", stack_id) - pulumi.set(__self__, "stats_password", stats_password) + HaproxyLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + stats_password=stats_password, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + healthcheck_method=healthcheck_method, + healthcheck_url=healthcheck_url, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + stats_enabled=stats_enabled, + stats_url=stats_url, + stats_user=stats_user, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + stats_password: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['HaproxyLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['HaproxyLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + healthcheck_method: Optional[pulumi.Input[str]] = None, + healthcheck_url: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['HaproxyLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + stats_enabled: Optional[pulumi.Input[bool]] = None, + stats_url: Optional[pulumi.Input[str]] = None, + stats_user: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if stats_password is None and 'statsPassword' in kwargs: + stats_password = kwargs['statsPassword'] + if stats_password is None: + raise TypeError("Missing 'stats_password' argument") + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if healthcheck_method is None and 'healthcheckMethod' in kwargs: + healthcheck_method = kwargs['healthcheckMethod'] + if healthcheck_url is None and 'healthcheckUrl' in kwargs: + healthcheck_url = kwargs['healthcheckUrl'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if stats_enabled is None and 'statsEnabled' in kwargs: + stats_enabled = kwargs['statsEnabled'] + if stats_url is None and 'statsUrl' in kwargs: + stats_url = kwargs['statsUrl'] + if stats_user is None and 'statsUser' in kwargs: + stats_user = kwargs['statsUser'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("stack_id", stack_id) + _setter("stats_password", stats_password) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if healthcheck_method is not None: - pulumi.set(__self__, "healthcheck_method", healthcheck_method) + _setter("healthcheck_method", healthcheck_method) if healthcheck_url is not None: - pulumi.set(__self__, "healthcheck_url", healthcheck_url) + _setter("healthcheck_url", healthcheck_url) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if stats_enabled is not None: - pulumi.set(__self__, "stats_enabled", stats_enabled) + _setter("stats_enabled", stats_enabled) if stats_url is not None: - pulumi.set(__self__, "stats_url", stats_url) + _setter("stats_url", stats_url) if stats_user is not None: - pulumi.set(__self__, "stats_user", stats_user) + _setter("stats_user", stats_user) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="stackId") @@ -528,71 +653,198 @@ def __init__(__self__, *, :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[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _HaproxyLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + healthcheck_method=healthcheck_method, + healthcheck_url=healthcheck_url, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + stack_id=stack_id, + stats_enabled=stats_enabled, + stats_password=stats_password, + stats_url=stats_url, + stats_user=stats_user, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['HaproxyLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['HaproxyLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + healthcheck_method: Optional[pulumi.Input[str]] = None, + healthcheck_url: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['HaproxyLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + stats_enabled: Optional[pulumi.Input[bool]] = None, + stats_password: Optional[pulumi.Input[str]] = None, + stats_url: Optional[pulumi.Input[str]] = None, + stats_user: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if healthcheck_method is None and 'healthcheckMethod' in kwargs: + healthcheck_method = kwargs['healthcheckMethod'] + if healthcheck_url is None and 'healthcheckUrl' in kwargs: + healthcheck_url = kwargs['healthcheckUrl'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stats_enabled is None and 'statsEnabled' in kwargs: + stats_enabled = kwargs['statsEnabled'] + if stats_password is None and 'statsPassword' in kwargs: + stats_password = kwargs['statsPassword'] + if stats_url is None and 'statsUrl' in kwargs: + stats_url = kwargs['statsUrl'] + if stats_user is None and 'statsUser' in kwargs: + stats_user = kwargs['statsUser'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if healthcheck_method is not None: - pulumi.set(__self__, "healthcheck_method", healthcheck_method) + _setter("healthcheck_method", healthcheck_method) if healthcheck_url is not None: - pulumi.set(__self__, "healthcheck_url", healthcheck_url) + _setter("healthcheck_url", healthcheck_url) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if stats_enabled is not None: - pulumi.set(__self__, "stats_enabled", stats_enabled) + _setter("stats_enabled", stats_enabled) if stats_password is not None: - pulumi.set(__self__, "stats_password", stats_password) + _setter("stats_password", stats_password) if stats_url is not None: - pulumi.set(__self__, "stats_url", stats_url) + _setter("stats_url", stats_url) if stats_user is not None: - pulumi.set(__self__, "stats_user", stats_user) + _setter("stats_user", stats_user) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter @@ -1061,6 +1313,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HaproxyLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1107,6 +1363,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, HaproxyLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -1123,6 +1380,7 @@ def _internal_init(__self__, __props__.__dict__["healthcheck_url"] = healthcheck_url __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, HaproxyLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name if stack_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/opsworks/instance.py b/sdk/python/pulumi_aws/opsworks/instance.py index 8366b7585ce..6cbb62c9ccd 100644 --- a/sdk/python/pulumi_aws/opsworks/instance.py +++ b/sdk/python/pulumi_aws/opsworks/instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -81,64 +81,185 @@ def __init__(__self__, *, :param pulumi.Input[str] tenancy: Instance tenancy to use. Valid values are `default`, `dedicated` or `host`. :param pulumi.Input[str] virtualization_type: Keyword to choose what virtualization mode created instances will use. Valid values are `paravirtual` or `hvm`. """ - pulumi.set(__self__, "layer_ids", layer_ids) - pulumi.set(__self__, "stack_id", stack_id) + InstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + layer_ids=layer_ids, + stack_id=stack_id, + agent_version=agent_version, + ami_id=ami_id, + architecture=architecture, + auto_scaling_type=auto_scaling_type, + availability_zone=availability_zone, + created_at=created_at, + delete_ebs=delete_ebs, + delete_eip=delete_eip, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + ecs_cluster_arn=ecs_cluster_arn, + elastic_ip=elastic_ip, + ephemeral_block_devices=ephemeral_block_devices, + hostname=hostname, + infrastructure_class=infrastructure_class, + install_updates_on_boot=install_updates_on_boot, + instance_profile_arn=instance_profile_arn, + instance_type=instance_type, + os=os, + root_block_devices=root_block_devices, + root_device_type=root_device_type, + security_group_ids=security_group_ids, + ssh_key_name=ssh_key_name, + state=state, + status=status, + subnet_id=subnet_id, + tenancy=tenancy, + virtualization_type=virtualization_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + layer_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + agent_version: Optional[pulumi.Input[str]] = None, + ami_id: Optional[pulumi.Input[str]] = None, + architecture: Optional[pulumi.Input[str]] = None, + auto_scaling_type: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + delete_ebs: Optional[pulumi.Input[bool]] = None, + delete_eip: Optional[pulumi.Input[bool]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEbsBlockDeviceArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + ecs_cluster_arn: Optional[pulumi.Input[str]] = None, + elastic_ip: Optional[pulumi.Input[str]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEphemeralBlockDeviceArgs']]]] = None, + hostname: Optional[pulumi.Input[str]] = None, + infrastructure_class: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_profile_arn: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + os: Optional[pulumi.Input[str]] = None, + root_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceRootBlockDeviceArgs']]]] = None, + root_device_type: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ssh_key_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tenancy: Optional[pulumi.Input[str]] = None, + virtualization_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if layer_ids is None and 'layerIds' in kwargs: + layer_ids = kwargs['layerIds'] + if layer_ids is None: + raise TypeError("Missing 'layer_ids' argument") + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if agent_version is None and 'agentVersion' in kwargs: + agent_version = kwargs['agentVersion'] + if ami_id is None and 'amiId' in kwargs: + ami_id = kwargs['amiId'] + if auto_scaling_type is None and 'autoScalingType' in kwargs: + auto_scaling_type = kwargs['autoScalingType'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if delete_ebs is None and 'deleteEbs' in kwargs: + delete_ebs = kwargs['deleteEbs'] + if delete_eip is None and 'deleteEip' in kwargs: + delete_eip = kwargs['deleteEip'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if ecs_cluster_arn is None and 'ecsClusterArn' in kwargs: + ecs_cluster_arn = kwargs['ecsClusterArn'] + if elastic_ip is None and 'elasticIp' in kwargs: + elastic_ip = kwargs['elasticIp'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if infrastructure_class is None and 'infrastructureClass' in kwargs: + infrastructure_class = kwargs['infrastructureClass'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_profile_arn is None and 'instanceProfileArn' in kwargs: + instance_profile_arn = kwargs['instanceProfileArn'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if root_block_devices is None and 'rootBlockDevices' in kwargs: + root_block_devices = kwargs['rootBlockDevices'] + if root_device_type is None and 'rootDeviceType' in kwargs: + root_device_type = kwargs['rootDeviceType'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if ssh_key_name is None and 'sshKeyName' in kwargs: + ssh_key_name = kwargs['sshKeyName'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if virtualization_type is None and 'virtualizationType' in kwargs: + virtualization_type = kwargs['virtualizationType'] + + _setter("layer_ids", layer_ids) + _setter("stack_id", stack_id) if agent_version is not None: - pulumi.set(__self__, "agent_version", agent_version) + _setter("agent_version", agent_version) if ami_id is not None: - pulumi.set(__self__, "ami_id", ami_id) + _setter("ami_id", ami_id) if architecture is not None: - pulumi.set(__self__, "architecture", architecture) + _setter("architecture", architecture) if auto_scaling_type is not None: - pulumi.set(__self__, "auto_scaling_type", auto_scaling_type) + _setter("auto_scaling_type", auto_scaling_type) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if delete_ebs is not None: - pulumi.set(__self__, "delete_ebs", delete_ebs) + _setter("delete_ebs", delete_ebs) if delete_eip is not None: - pulumi.set(__self__, "delete_eip", delete_eip) + _setter("delete_eip", delete_eip) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if ecs_cluster_arn is not None: - pulumi.set(__self__, "ecs_cluster_arn", ecs_cluster_arn) + _setter("ecs_cluster_arn", ecs_cluster_arn) if elastic_ip is not None: - pulumi.set(__self__, "elastic_ip", elastic_ip) + _setter("elastic_ip", elastic_ip) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if infrastructure_class is not None: - pulumi.set(__self__, "infrastructure_class", infrastructure_class) + _setter("infrastructure_class", infrastructure_class) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_profile_arn is not None: - pulumi.set(__self__, "instance_profile_arn", instance_profile_arn) + _setter("instance_profile_arn", instance_profile_arn) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if os is not None: - pulumi.set(__self__, "os", os) + _setter("os", os) if root_block_devices is not None: - pulumi.set(__self__, "root_block_devices", root_block_devices) + _setter("root_block_devices", root_block_devices) if root_device_type is not None: - pulumi.set(__self__, "root_device_type", root_device_type) + _setter("root_device_type", root_device_type) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if ssh_key_name is not None: - pulumi.set(__self__, "ssh_key_name", ssh_key_name) + _setter("ssh_key_name", ssh_key_name) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) if virtualization_type is not None: - pulumi.set(__self__, "virtualization_type", virtualization_type) + _setter("virtualization_type", virtualization_type) @property @pulumi.getter(name="layerIds") @@ -601,96 +722,271 @@ def __init__(__self__, *, :param pulumi.Input[str] tenancy: Instance tenancy to use. Valid values are `default`, `dedicated` or `host`. :param pulumi.Input[str] virtualization_type: Keyword to choose what virtualization mode created instances will use. Valid values are `paravirtual` or `hvm`. """ + _InstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_version=agent_version, + ami_id=ami_id, + architecture=architecture, + auto_scaling_type=auto_scaling_type, + availability_zone=availability_zone, + created_at=created_at, + delete_ebs=delete_ebs, + delete_eip=delete_eip, + ebs_block_devices=ebs_block_devices, + ebs_optimized=ebs_optimized, + ec2_instance_id=ec2_instance_id, + ecs_cluster_arn=ecs_cluster_arn, + elastic_ip=elastic_ip, + ephemeral_block_devices=ephemeral_block_devices, + hostname=hostname, + infrastructure_class=infrastructure_class, + install_updates_on_boot=install_updates_on_boot, + instance_profile_arn=instance_profile_arn, + instance_type=instance_type, + last_service_error_id=last_service_error_id, + layer_ids=layer_ids, + os=os, + platform=platform, + private_dns=private_dns, + private_ip=private_ip, + public_dns=public_dns, + public_ip=public_ip, + registered_by=registered_by, + reported_agent_version=reported_agent_version, + reported_os_family=reported_os_family, + reported_os_name=reported_os_name, + reported_os_version=reported_os_version, + root_block_devices=root_block_devices, + root_device_type=root_device_type, + root_device_volume_id=root_device_volume_id, + security_group_ids=security_group_ids, + ssh_host_dsa_key_fingerprint=ssh_host_dsa_key_fingerprint, + ssh_host_rsa_key_fingerprint=ssh_host_rsa_key_fingerprint, + ssh_key_name=ssh_key_name, + stack_id=stack_id, + state=state, + status=status, + subnet_id=subnet_id, + tenancy=tenancy, + virtualization_type=virtualization_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_version: Optional[pulumi.Input[str]] = None, + ami_id: Optional[pulumi.Input[str]] = None, + architecture: Optional[pulumi.Input[str]] = None, + auto_scaling_type: Optional[pulumi.Input[str]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + delete_ebs: Optional[pulumi.Input[bool]] = None, + delete_eip: Optional[pulumi.Input[bool]] = None, + ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEbsBlockDeviceArgs']]]] = None, + ebs_optimized: Optional[pulumi.Input[bool]] = None, + ec2_instance_id: Optional[pulumi.Input[str]] = None, + ecs_cluster_arn: Optional[pulumi.Input[str]] = None, + elastic_ip: Optional[pulumi.Input[str]] = None, + ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEphemeralBlockDeviceArgs']]]] = None, + hostname: Optional[pulumi.Input[str]] = None, + infrastructure_class: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_profile_arn: Optional[pulumi.Input[str]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + last_service_error_id: Optional[pulumi.Input[str]] = None, + layer_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + os: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + private_dns: Optional[pulumi.Input[str]] = None, + private_ip: Optional[pulumi.Input[str]] = None, + public_dns: Optional[pulumi.Input[str]] = None, + public_ip: Optional[pulumi.Input[str]] = None, + registered_by: Optional[pulumi.Input[str]] = None, + reported_agent_version: Optional[pulumi.Input[str]] = None, + reported_os_family: Optional[pulumi.Input[str]] = None, + reported_os_name: Optional[pulumi.Input[str]] = None, + reported_os_version: Optional[pulumi.Input[str]] = None, + root_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceRootBlockDeviceArgs']]]] = None, + root_device_type: Optional[pulumi.Input[str]] = None, + root_device_volume_id: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ssh_host_dsa_key_fingerprint: Optional[pulumi.Input[str]] = None, + ssh_host_rsa_key_fingerprint: Optional[pulumi.Input[str]] = None, + ssh_key_name: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tenancy: Optional[pulumi.Input[str]] = None, + virtualization_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_version is None and 'agentVersion' in kwargs: + agent_version = kwargs['agentVersion'] + if ami_id is None and 'amiId' in kwargs: + ami_id = kwargs['amiId'] + if auto_scaling_type is None and 'autoScalingType' in kwargs: + auto_scaling_type = kwargs['autoScalingType'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if delete_ebs is None and 'deleteEbs' in kwargs: + delete_ebs = kwargs['deleteEbs'] + if delete_eip is None and 'deleteEip' in kwargs: + delete_eip = kwargs['deleteEip'] + if ebs_block_devices is None and 'ebsBlockDevices' in kwargs: + ebs_block_devices = kwargs['ebsBlockDevices'] + if ebs_optimized is None and 'ebsOptimized' in kwargs: + ebs_optimized = kwargs['ebsOptimized'] + if ec2_instance_id is None and 'ec2InstanceId' in kwargs: + ec2_instance_id = kwargs['ec2InstanceId'] + if ecs_cluster_arn is None and 'ecsClusterArn' in kwargs: + ecs_cluster_arn = kwargs['ecsClusterArn'] + if elastic_ip is None and 'elasticIp' in kwargs: + elastic_ip = kwargs['elasticIp'] + if ephemeral_block_devices is None and 'ephemeralBlockDevices' in kwargs: + ephemeral_block_devices = kwargs['ephemeralBlockDevices'] + if infrastructure_class is None and 'infrastructureClass' in kwargs: + infrastructure_class = kwargs['infrastructureClass'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_profile_arn is None and 'instanceProfileArn' in kwargs: + instance_profile_arn = kwargs['instanceProfileArn'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if last_service_error_id is None and 'lastServiceErrorId' in kwargs: + last_service_error_id = kwargs['lastServiceErrorId'] + if layer_ids is None and 'layerIds' in kwargs: + layer_ids = kwargs['layerIds'] + if private_dns is None and 'privateDns' in kwargs: + private_dns = kwargs['privateDns'] + if private_ip is None and 'privateIp' in kwargs: + private_ip = kwargs['privateIp'] + if public_dns is None and 'publicDns' in kwargs: + public_dns = kwargs['publicDns'] + if public_ip is None and 'publicIp' in kwargs: + public_ip = kwargs['publicIp'] + if registered_by is None and 'registeredBy' in kwargs: + registered_by = kwargs['registeredBy'] + if reported_agent_version is None and 'reportedAgentVersion' in kwargs: + reported_agent_version = kwargs['reportedAgentVersion'] + if reported_os_family is None and 'reportedOsFamily' in kwargs: + reported_os_family = kwargs['reportedOsFamily'] + if reported_os_name is None and 'reportedOsName' in kwargs: + reported_os_name = kwargs['reportedOsName'] + if reported_os_version is None and 'reportedOsVersion' in kwargs: + reported_os_version = kwargs['reportedOsVersion'] + if root_block_devices is None and 'rootBlockDevices' in kwargs: + root_block_devices = kwargs['rootBlockDevices'] + if root_device_type is None and 'rootDeviceType' in kwargs: + root_device_type = kwargs['rootDeviceType'] + if root_device_volume_id is None and 'rootDeviceVolumeId' in kwargs: + root_device_volume_id = kwargs['rootDeviceVolumeId'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if ssh_host_dsa_key_fingerprint is None and 'sshHostDsaKeyFingerprint' in kwargs: + ssh_host_dsa_key_fingerprint = kwargs['sshHostDsaKeyFingerprint'] + if ssh_host_rsa_key_fingerprint is None and 'sshHostRsaKeyFingerprint' in kwargs: + ssh_host_rsa_key_fingerprint = kwargs['sshHostRsaKeyFingerprint'] + if ssh_key_name is None and 'sshKeyName' in kwargs: + ssh_key_name = kwargs['sshKeyName'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if virtualization_type is None and 'virtualizationType' in kwargs: + virtualization_type = kwargs['virtualizationType'] + if agent_version is not None: - pulumi.set(__self__, "agent_version", agent_version) + _setter("agent_version", agent_version) if ami_id is not None: - pulumi.set(__self__, "ami_id", ami_id) + _setter("ami_id", ami_id) if architecture is not None: - pulumi.set(__self__, "architecture", architecture) + _setter("architecture", architecture) if auto_scaling_type is not None: - pulumi.set(__self__, "auto_scaling_type", auto_scaling_type) + _setter("auto_scaling_type", auto_scaling_type) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if delete_ebs is not None: - pulumi.set(__self__, "delete_ebs", delete_ebs) + _setter("delete_ebs", delete_ebs) if delete_eip is not None: - pulumi.set(__self__, "delete_eip", delete_eip) + _setter("delete_eip", delete_eip) if ebs_block_devices is not None: - pulumi.set(__self__, "ebs_block_devices", ebs_block_devices) + _setter("ebs_block_devices", ebs_block_devices) if ebs_optimized is not None: - pulumi.set(__self__, "ebs_optimized", ebs_optimized) + _setter("ebs_optimized", ebs_optimized) if ec2_instance_id is not None: - pulumi.set(__self__, "ec2_instance_id", ec2_instance_id) + _setter("ec2_instance_id", ec2_instance_id) if ecs_cluster_arn is not None: - pulumi.set(__self__, "ecs_cluster_arn", ecs_cluster_arn) + _setter("ecs_cluster_arn", ecs_cluster_arn) if elastic_ip is not None: - pulumi.set(__self__, "elastic_ip", elastic_ip) + _setter("elastic_ip", elastic_ip) if ephemeral_block_devices is not None: - pulumi.set(__self__, "ephemeral_block_devices", ephemeral_block_devices) + _setter("ephemeral_block_devices", ephemeral_block_devices) if hostname is not None: - pulumi.set(__self__, "hostname", hostname) + _setter("hostname", hostname) if infrastructure_class is not None: - pulumi.set(__self__, "infrastructure_class", infrastructure_class) + _setter("infrastructure_class", infrastructure_class) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_profile_arn is not None: - pulumi.set(__self__, "instance_profile_arn", instance_profile_arn) + _setter("instance_profile_arn", instance_profile_arn) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if last_service_error_id is not None: - pulumi.set(__self__, "last_service_error_id", last_service_error_id) + _setter("last_service_error_id", last_service_error_id) if layer_ids is not None: - pulumi.set(__self__, "layer_ids", layer_ids) + _setter("layer_ids", layer_ids) if os is not None: - pulumi.set(__self__, "os", os) + _setter("os", os) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if private_dns is not None: - pulumi.set(__self__, "private_dns", private_dns) + _setter("private_dns", private_dns) if private_ip is not None: - pulumi.set(__self__, "private_ip", private_ip) + _setter("private_ip", private_ip) if public_dns is not None: - pulumi.set(__self__, "public_dns", public_dns) + _setter("public_dns", public_dns) if public_ip is not None: - pulumi.set(__self__, "public_ip", public_ip) + _setter("public_ip", public_ip) if registered_by is not None: - pulumi.set(__self__, "registered_by", registered_by) + _setter("registered_by", registered_by) if reported_agent_version is not None: - pulumi.set(__self__, "reported_agent_version", reported_agent_version) + _setter("reported_agent_version", reported_agent_version) if reported_os_family is not None: - pulumi.set(__self__, "reported_os_family", reported_os_family) + _setter("reported_os_family", reported_os_family) if reported_os_name is not None: - pulumi.set(__self__, "reported_os_name", reported_os_name) + _setter("reported_os_name", reported_os_name) if reported_os_version is not None: - pulumi.set(__self__, "reported_os_version", reported_os_version) + _setter("reported_os_version", reported_os_version) if root_block_devices is not None: - pulumi.set(__self__, "root_block_devices", root_block_devices) + _setter("root_block_devices", root_block_devices) if root_device_type is not None: - pulumi.set(__self__, "root_device_type", root_device_type) + _setter("root_device_type", root_device_type) if root_device_volume_id is not None: - pulumi.set(__self__, "root_device_volume_id", root_device_volume_id) + _setter("root_device_volume_id", root_device_volume_id) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if ssh_host_dsa_key_fingerprint is not None: - pulumi.set(__self__, "ssh_host_dsa_key_fingerprint", ssh_host_dsa_key_fingerprint) + _setter("ssh_host_dsa_key_fingerprint", ssh_host_dsa_key_fingerprint) if ssh_host_rsa_key_fingerprint is not None: - pulumi.set(__self__, "ssh_host_rsa_key_fingerprint", ssh_host_rsa_key_fingerprint) + _setter("ssh_host_rsa_key_fingerprint", ssh_host_rsa_key_fingerprint) if ssh_key_name is not None: - pulumi.set(__self__, "ssh_key_name", ssh_key_name) + _setter("ssh_key_name", ssh_key_name) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tenancy is not None: - pulumi.set(__self__, "tenancy", tenancy) + _setter("tenancy", tenancy) if virtualization_type is not None: - pulumi.set(__self__, "virtualization_type", virtualization_type) + _setter("virtualization_type", virtualization_type) @property @pulumi.getter(name="agentVersion") @@ -1458,6 +1754,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opsworks/java_app_layer.py b/sdk/python/pulumi_aws/opsworks/java_app_layer.py index 88888795f65..46537f0b8f7 100644 --- a/sdk/python/pulumi_aws/opsworks/java_app_layer.py +++ b/sdk/python/pulumi_aws/opsworks/java_app_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -72,61 +72,180 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "stack_id", stack_id) + JavaAppLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + app_server=app_server, + app_server_version=app_server_version, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + jvm_options=jvm_options, + jvm_type=jvm_type, + jvm_version=jvm_version, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + app_server: Optional[pulumi.Input[str]] = None, + app_server_version: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['JavaAppLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['JavaAppLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + jvm_options: Optional[pulumi.Input[str]] = None, + jvm_type: Optional[pulumi.Input[str]] = None, + jvm_version: Optional[pulumi.Input[str]] = None, + load_based_auto_scaling: Optional[pulumi.Input['JavaAppLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if app_server is None and 'appServer' in kwargs: + app_server = kwargs['appServer'] + if app_server_version is None and 'appServerVersion' in kwargs: + app_server_version = kwargs['appServerVersion'] + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if jvm_options is None and 'jvmOptions' in kwargs: + jvm_options = kwargs['jvmOptions'] + if jvm_type is None and 'jvmType' in kwargs: + jvm_type = kwargs['jvmType'] + if jvm_version is None and 'jvmVersion' in kwargs: + jvm_version = kwargs['jvmVersion'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("stack_id", stack_id) if app_server is not None: - pulumi.set(__self__, "app_server", app_server) + _setter("app_server", app_server) if app_server_version is not None: - pulumi.set(__self__, "app_server_version", app_server_version) + _setter("app_server_version", app_server_version) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if jvm_options is not None: - pulumi.set(__self__, "jvm_options", jvm_options) + _setter("jvm_options", jvm_options) if jvm_type is not None: - pulumi.set(__self__, "jvm_type", jvm_type) + _setter("jvm_type", jvm_type) if jvm_version is not None: - pulumi.set(__self__, "jvm_version", jvm_version) + _setter("jvm_version", jvm_version) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="stackId") @@ -511,69 +630,192 @@ def __init__(__self__, *, :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[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _JavaAppLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_server=app_server, + app_server_version=app_server_version, + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + jvm_options=jvm_options, + jvm_type=jvm_type, + jvm_version=jvm_version, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_server: Optional[pulumi.Input[str]] = None, + app_server_version: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['JavaAppLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['JavaAppLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + jvm_options: Optional[pulumi.Input[str]] = None, + jvm_type: Optional[pulumi.Input[str]] = None, + jvm_version: Optional[pulumi.Input[str]] = None, + load_based_auto_scaling: Optional[pulumi.Input['JavaAppLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_server is None and 'appServer' in kwargs: + app_server = kwargs['appServer'] + if app_server_version is None and 'appServerVersion' in kwargs: + app_server_version = kwargs['appServerVersion'] + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if jvm_options is None and 'jvmOptions' in kwargs: + jvm_options = kwargs['jvmOptions'] + if jvm_type is None and 'jvmType' in kwargs: + jvm_type = kwargs['jvmType'] + if jvm_version is None and 'jvmVersion' in kwargs: + jvm_version = kwargs['jvmVersion'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if app_server is not None: - pulumi.set(__self__, "app_server", app_server) + _setter("app_server", app_server) if app_server_version is not None: - pulumi.set(__self__, "app_server_version", app_server_version) + _setter("app_server_version", app_server_version) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if jvm_options is not None: - pulumi.set(__self__, "jvm_options", jvm_options) + _setter("jvm_options", jvm_options) if jvm_type is not None: - pulumi.set(__self__, "jvm_type", jvm_type) + _setter("jvm_type", jvm_type) if jvm_version is not None: - pulumi.set(__self__, "jvm_version", jvm_version) + _setter("jvm_version", jvm_version) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="appServer") @@ -1024,6 +1266,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + JavaAppLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1071,6 +1317,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, JavaAppLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -1088,6 +1335,7 @@ def _internal_init(__self__, __props__.__dict__["jvm_options"] = jvm_options __props__.__dict__["jvm_type"] = jvm_type __props__.__dict__["jvm_version"] = jvm_version + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, JavaAppLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name if stack_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/opsworks/memcached_layer.py b/sdk/python/pulumi_aws/opsworks/memcached_layer.py index 8d8b9b66d41..007597c6aff 100644 --- a/sdk/python/pulumi_aws/opsworks/memcached_layer.py +++ b/sdk/python/pulumi_aws/opsworks/memcached_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -64,53 +64,156 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "stack_id", stack_id) + MemcachedLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + allocated_memory=allocated_memory, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + allocated_memory: Optional[pulumi.Input[int]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['MemcachedLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['MemcachedLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['MemcachedLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if allocated_memory is None and 'allocatedMemory' in kwargs: + allocated_memory = kwargs['allocatedMemory'] + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("stack_id", stack_id) if allocated_memory is not None: - pulumi.set(__self__, "allocated_memory", allocated_memory) + _setter("allocated_memory", allocated_memory) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="stackId") @@ -439,61 +542,168 @@ def __init__(__self__, *, :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[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _MemcachedLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocated_memory=allocated_memory, + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocated_memory: Optional[pulumi.Input[int]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['MemcachedLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['MemcachedLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['MemcachedLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocated_memory is None and 'allocatedMemory' in kwargs: + allocated_memory = kwargs['allocatedMemory'] + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if allocated_memory is not None: - pulumi.set(__self__, "allocated_memory", allocated_memory) + _setter("allocated_memory", allocated_memory) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="allocatedMemory") @@ -888,6 +1098,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MemcachedLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -930,6 +1144,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, MemcachedLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -944,6 +1159,7 @@ def _internal_init(__self__, __props__.__dict__["elastic_load_balancer"] = elastic_load_balancer __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, MemcachedLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name if stack_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/opsworks/mysql_layer.py b/sdk/python/pulumi_aws/opsworks/mysql_layer.py index fd02f9b3e53..d7b3b025111 100644 --- a/sdk/python/pulumi_aws/opsworks/mysql_layer.py +++ b/sdk/python/pulumi_aws/opsworks/mysql_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -66,55 +66,162 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "stack_id", stack_id) + MysqlLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + root_password=root_password, + root_password_on_all_instances=root_password_on_all_instances, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['MysqlLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['MysqlLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['MysqlLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + root_password: Optional[pulumi.Input[str]] = None, + root_password_on_all_instances: Optional[pulumi.Input[bool]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if root_password is None and 'rootPassword' in kwargs: + root_password = kwargs['rootPassword'] + if root_password_on_all_instances is None and 'rootPasswordOnAllInstances' in kwargs: + root_password_on_all_instances = kwargs['rootPasswordOnAllInstances'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("stack_id", stack_id) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if root_password is not None: - pulumi.set(__self__, "root_password", root_password) + _setter("root_password", root_password) if root_password_on_all_instances is not None: - pulumi.set(__self__, "root_password_on_all_instances", root_password_on_all_instances) + _setter("root_password_on_all_instances", root_password_on_all_instances) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="stackId") @@ -457,63 +564,174 @@ def __init__(__self__, *, :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[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _MysqlLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + root_password=root_password, + root_password_on_all_instances=root_password_on_all_instances, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['MysqlLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['MysqlLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['MysqlLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + root_password: Optional[pulumi.Input[str]] = None, + root_password_on_all_instances: Optional[pulumi.Input[bool]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if root_password is None and 'rootPassword' in kwargs: + root_password = kwargs['rootPassword'] + if root_password_on_all_instances is None and 'rootPasswordOnAllInstances' in kwargs: + root_password_on_all_instances = kwargs['rootPasswordOnAllInstances'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if root_password is not None: - pulumi.set(__self__, "root_password", root_password) + _setter("root_password", root_password) if root_password_on_all_instances is not None: - pulumi.set(__self__, "root_password_on_all_instances", root_password_on_all_instances) + _setter("root_password_on_all_instances", root_password_on_all_instances) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter @@ -922,6 +1140,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MysqlLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -964,6 +1186,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, MysqlLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -978,6 +1201,7 @@ def _internal_init(__self__, __props__.__dict__["elastic_load_balancer"] = elastic_load_balancer __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, MysqlLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name __props__.__dict__["root_password"] = root_password diff --git a/sdk/python/pulumi_aws/opsworks/nodejs_app_layer.py b/sdk/python/pulumi_aws/opsworks/nodejs_app_layer.py index 8084656a482..68de235bd72 100644 --- a/sdk/python/pulumi_aws/opsworks/nodejs_app_layer.py +++ b/sdk/python/pulumi_aws/opsworks/nodejs_app_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -64,53 +64,156 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "stack_id", stack_id) + NodejsAppLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + nodejs_version=nodejs_version, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['NodejsAppLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['NodejsAppLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['NodejsAppLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + nodejs_version: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if nodejs_version is None and 'nodejsVersion' in kwargs: + nodejs_version = kwargs['nodejsVersion'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("stack_id", stack_id) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nodejs_version is not None: - pulumi.set(__self__, "nodejs_version", nodejs_version) + _setter("nodejs_version", nodejs_version) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="stackId") @@ -439,61 +542,168 @@ def __init__(__self__, *, :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[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _NodejsAppLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + nodejs_version=nodejs_version, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['NodejsAppLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['NodejsAppLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['NodejsAppLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + nodejs_version: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if nodejs_version is None and 'nodejsVersion' in kwargs: + nodejs_version = kwargs['nodejsVersion'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nodejs_version is not None: - pulumi.set(__self__, "nodejs_version", nodejs_version) + _setter("nodejs_version", nodejs_version) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter @@ -888,6 +1098,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NodejsAppLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -929,6 +1143,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, NodejsAppLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -943,6 +1158,7 @@ def _internal_init(__self__, __props__.__dict__["elastic_load_balancer"] = elastic_load_balancer __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, NodejsAppLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name __props__.__dict__["nodejs_version"] = nodejs_version diff --git a/sdk/python/pulumi_aws/opsworks/outputs.py b/sdk/python/pulumi_aws/opsworks/outputs.py index b4eb216f56a..5be0f92f396 100644 --- a/sdk/python/pulumi_aws/opsworks/outputs.py +++ b/sdk/python/pulumi_aws/opsworks/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -120,17 +120,42 @@ def __init__(__self__, *, :param str url: The URL where the app resource can be found. :param str username: Username to use when authenticating to the source. """ - pulumi.set(__self__, "type", type) + ApplicationAppSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + password=password, + revision=revision, + ssh_key=ssh_key, + url=url, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + password: Optional[str] = None, + revision: Optional[str] = None, + ssh_key: Optional[str] = None, + url: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if ssh_key is None and 'sshKey' in kwargs: + ssh_key = kwargs['sshKey'] + + _setter("type", type) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if revision is not None: - pulumi.set(__self__, "revision", revision) + _setter("revision", revision) if ssh_key is not None: - pulumi.set(__self__, "ssh_key", ssh_key) + _setter("ssh_key", ssh_key) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -192,10 +217,29 @@ def __init__(__self__, *, :param str value: Variable value. :param bool secure: Set visibility of the variable value to `true` or `false`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + ApplicationEnvironment._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + secure=secure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + secure: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) if secure is not None: - pulumi.set(__self__, "secure", secure) + _setter("secure", secure) @property @pulumi.getter @@ -250,10 +294,31 @@ def __init__(__self__, *, :param str private_key: The private key; the contents of the certificate's domain.key file. :param str chain: Can be used to specify an intermediate certificate authority key or client authentication. """ - pulumi.set(__self__, "certificate", certificate) - pulumi.set(__self__, "private_key", private_key) + ApplicationSslConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + private_key=private_key, + chain=chain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[str] = None, + private_key: Optional[str] = None, + chain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate is None: + raise TypeError("Missing 'certificate' argument") + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if private_key is None: + raise TypeError("Missing 'private_key' argument") + + _setter("certificate", certificate) + _setter("private_key", private_key) if chain is not None: - pulumi.set(__self__, "chain", chain) + _setter("chain", chain) @property @pulumi.getter @@ -305,10 +370,25 @@ def __init__(__self__, *, """ :param Sequence['CustomLayerCloudwatchConfigurationLogStreamArgs'] log_streams: A block the specifies how an opsworks logs look like. See Log Streams. """ + CustomLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.CustomLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -384,26 +464,79 @@ def __init__(__self__, *, :param str multiline_start_pattern: Specifies the pattern for identifying the start of a log message. :param str time_zone: Specifies the time zone of log event time stamps. """ - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + CustomLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -534,17 +667,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + CustomLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -614,12 +782,27 @@ def __init__(__self__, *, :param bool enable: Whether load-based auto scaling is enabled for the layer. :param 'CustomLayerLoadBasedAutoScalingUpscalingArgs' upscaling: The upscaling settings, as defined below, used for load-based autoscaling """ + CustomLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.CustomLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.CustomLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -692,20 +875,55 @@ def __init__(__self__, *, :param float memory_threshold: The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold. :param int thresholds_wait_time: The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed. """ + CustomLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -810,20 +1028,55 @@ def __init__(__self__, *, :param float memory_threshold: The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold. :param int thresholds_wait_time: The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed. """ + CustomLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -904,10 +1157,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.EcsClusterLayerCloudwatchConfigurationLogStream']] = None): + EcsClusterLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.EcsClusterLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -967,26 +1235,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + EcsClusterLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -1083,17 +1404,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + EcsClusterLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -1155,12 +1511,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.EcsClusterLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.EcsClusterLayerLoadBasedAutoScalingUpscaling'] = None): + EcsClusterLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.EcsClusterLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.EcsClusterLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -1215,20 +1586,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + EcsClusterLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -1303,20 +1709,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + EcsClusterLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -1376,10 +1817,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.GangliaLayerCloudwatchConfigurationLogStream']] = None): + GangliaLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.GangliaLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -1439,26 +1895,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + GangliaLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -1555,17 +2064,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + GangliaLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -1627,12 +2171,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.GangliaLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.GangliaLayerLoadBasedAutoScalingUpscaling'] = None): + GangliaLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.GangliaLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.GangliaLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -1687,20 +2246,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + GangliaLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -1775,20 +2369,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + GangliaLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -1848,10 +2477,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.HaproxyLayerCloudwatchConfigurationLogStream']] = None): + HaproxyLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.HaproxyLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -1911,26 +2555,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + HaproxyLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -2027,17 +2724,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + HaproxyLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -2099,12 +2831,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.HaproxyLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.HaproxyLayerLoadBasedAutoScalingUpscaling'] = None): + HaproxyLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.HaproxyLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.HaproxyLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -2159,20 +2906,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + HaproxyLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -2247,20 +3029,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + HaproxyLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -2332,17 +3149,50 @@ def __init__(__self__, *, snapshot_id: Optional[str] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): - pulumi.set(__self__, "device_name", device_name) + InstanceEbsBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + delete_on_termination=delete_on_termination, + iops=iops, + snapshot_id=snapshot_id, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + delete_on_termination: Optional[bool] = None, + iops: Optional[int] = None, + snapshot_id: Optional[str] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + + _setter("device_name", device_name) if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deviceName") @@ -2399,8 +3249,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, device_name: str, virtual_name: str): - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "virtual_name", virtual_name) + InstanceEphemeralBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + virtual_name=virtual_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + virtual_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if virtual_name is None and 'virtualName' in kwargs: + virtual_name = kwargs['virtualName'] + if virtual_name is None: + raise TypeError("Missing 'virtual_name' argument") + + _setter("device_name", device_name) + _setter("virtual_name", virtual_name) @property @pulumi.getter(name="deviceName") @@ -2441,14 +3312,37 @@ def __init__(__self__, *, iops: Optional[int] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): + InstanceRootBlockDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + delete_on_termination=delete_on_termination, + iops=iops, + volume_size=volume_size, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delete_on_termination: Optional[bool] = None, + iops: Optional[int] = None, + volume_size: Optional[int] = None, + volume_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delete_on_termination is None and 'deleteOnTermination' in kwargs: + delete_on_termination = kwargs['deleteOnTermination'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if delete_on_termination is not None: - pulumi.set(__self__, "delete_on_termination", delete_on_termination) + _setter("delete_on_termination", delete_on_termination) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter(name="deleteOnTermination") @@ -2493,10 +3387,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.JavaAppLayerCloudwatchConfigurationLogStream']] = None): + JavaAppLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.JavaAppLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -2556,26 +3465,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + JavaAppLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -2672,17 +3634,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + JavaAppLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -2744,12 +3741,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.JavaAppLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.JavaAppLayerLoadBasedAutoScalingUpscaling'] = None): + JavaAppLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.JavaAppLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.JavaAppLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -2804,20 +3816,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + JavaAppLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -2892,20 +3939,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + JavaAppLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -2965,10 +4047,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.MemcachedLayerCloudwatchConfigurationLogStream']] = None): + MemcachedLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.MemcachedLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -3028,26 +4125,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + MemcachedLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -3144,17 +4294,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + MemcachedLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -3216,12 +4401,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.MemcachedLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.MemcachedLayerLoadBasedAutoScalingUpscaling'] = None): + MemcachedLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.MemcachedLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.MemcachedLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -3276,20 +4476,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + MemcachedLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -3364,20 +4599,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + MemcachedLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -3437,10 +4707,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.MysqlLayerCloudwatchConfigurationLogStream']] = None): + MysqlLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.MysqlLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -3500,26 +4785,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + MysqlLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -3616,17 +4954,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + MysqlLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -3688,12 +5061,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.MysqlLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.MysqlLayerLoadBasedAutoScalingUpscaling'] = None): + MysqlLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.MysqlLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.MysqlLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -3748,20 +5136,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + MysqlLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -3836,20 +5259,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + MysqlLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -3909,10 +5367,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.NodejsAppLayerCloudwatchConfigurationLogStream']] = None): + NodejsAppLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.NodejsAppLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -3972,26 +5445,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + NodejsAppLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -4088,17 +5614,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + NodejsAppLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -4160,12 +5721,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.NodejsAppLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.NodejsAppLayerLoadBasedAutoScalingUpscaling'] = None): + NodejsAppLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.NodejsAppLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.NodejsAppLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -4220,20 +5796,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + NodejsAppLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -4308,20 +5919,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + NodejsAppLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -4381,10 +6027,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.PhpAppLayerCloudwatchConfigurationLogStream']] = None): + PhpAppLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.PhpAppLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -4444,26 +6105,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + PhpAppLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -4560,17 +6274,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + PhpAppLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -4632,12 +6381,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.PhpAppLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.PhpAppLayerLoadBasedAutoScalingUpscaling'] = None): + PhpAppLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.PhpAppLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.PhpAppLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -4692,20 +6456,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + PhpAppLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -4780,20 +6579,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + PhpAppLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -4853,10 +6687,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.RailsAppLayerCloudwatchConfigurationLogStream']] = None): + RailsAppLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.RailsAppLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -4916,26 +6765,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + RailsAppLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -5032,17 +6934,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + RailsAppLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -5104,12 +7041,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.RailsAppLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.RailsAppLayerLoadBasedAutoScalingUpscaling'] = None): + RailsAppLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.RailsAppLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.RailsAppLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -5164,20 +7116,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + RailsAppLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -5252,20 +7239,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + RailsAppLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -5337,16 +7359,43 @@ def __init__(__self__, *, :param str ssh_key: SSH key to use when authenticating to the source. This provider cannot perform drift detection of this configuration. :param str username: Username to use when authenticating to the source. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "url", url) + StackCustomCookbooksSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + url=url, + password=password, + revision=revision, + ssh_key=ssh_key, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + url: Optional[str] = None, + password: Optional[str] = None, + revision: Optional[str] = None, + ssh_key: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if url is None: + raise TypeError("Missing 'url' argument") + if ssh_key is None and 'sshKey' in kwargs: + ssh_key = kwargs['sshKey'] + + _setter("type", type) + _setter("url", url) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if revision is not None: - pulumi.set(__self__, "revision", revision) + _setter("revision", revision) if ssh_key is not None: - pulumi.set(__self__, "ssh_key", ssh_key) + _setter("ssh_key", ssh_key) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -5419,10 +7468,25 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, enabled: Optional[bool] = None, log_streams: Optional[Sequence['outputs.StaticWebLayerCloudwatchConfigurationLogStream']] = None): + StaticWebLayerCloudwatchConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_streams=log_streams, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_streams: Optional[Sequence['outputs.StaticWebLayerCloudwatchConfigurationLogStream']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_streams is None and 'logStreams' in kwargs: + log_streams = kwargs['logStreams'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if log_streams is not None: - pulumi.set(__self__, "log_streams", log_streams) + _setter("log_streams", log_streams) @property @pulumi.getter @@ -5482,26 +7546,79 @@ def __init__(__self__, *, initial_position: Optional[str] = None, multiline_start_pattern: Optional[str] = None, time_zone: Optional[str] = None): - pulumi.set(__self__, "file", file) - pulumi.set(__self__, "log_group_name", log_group_name) + StaticWebLayerCloudwatchConfigurationLogStream._configure( + lambda key, value: pulumi.set(__self__, key, value), + file=file, + log_group_name=log_group_name, + batch_count=batch_count, + batch_size=batch_size, + buffer_duration=buffer_duration, + datetime_format=datetime_format, + encoding=encoding, + file_fingerprint_lines=file_fingerprint_lines, + initial_position=initial_position, + multiline_start_pattern=multiline_start_pattern, + time_zone=time_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file: Optional[str] = None, + log_group_name: Optional[str] = None, + batch_count: Optional[int] = None, + batch_size: Optional[int] = None, + buffer_duration: Optional[int] = None, + datetime_format: Optional[str] = None, + encoding: Optional[str] = None, + file_fingerprint_lines: Optional[str] = None, + initial_position: Optional[str] = None, + multiline_start_pattern: Optional[str] = None, + time_zone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file is None: + raise TypeError("Missing 'file' argument") + if log_group_name is None and 'logGroupName' in kwargs: + log_group_name = kwargs['logGroupName'] + if log_group_name is None: + raise TypeError("Missing 'log_group_name' argument") + if batch_count is None and 'batchCount' in kwargs: + batch_count = kwargs['batchCount'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if buffer_duration is None and 'bufferDuration' in kwargs: + buffer_duration = kwargs['bufferDuration'] + if datetime_format is None and 'datetimeFormat' in kwargs: + datetime_format = kwargs['datetimeFormat'] + if file_fingerprint_lines is None and 'fileFingerprintLines' in kwargs: + file_fingerprint_lines = kwargs['fileFingerprintLines'] + if initial_position is None and 'initialPosition' in kwargs: + initial_position = kwargs['initialPosition'] + if multiline_start_pattern is None and 'multilineStartPattern' in kwargs: + multiline_start_pattern = kwargs['multilineStartPattern'] + if time_zone is None and 'timeZone' in kwargs: + time_zone = kwargs['timeZone'] + + _setter("file", file) + _setter("log_group_name", log_group_name) if batch_count is not None: - pulumi.set(__self__, "batch_count", batch_count) + _setter("batch_count", batch_count) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if buffer_duration is not None: - pulumi.set(__self__, "buffer_duration", buffer_duration) + _setter("buffer_duration", buffer_duration) if datetime_format is not None: - pulumi.set(__self__, "datetime_format", datetime_format) + _setter("datetime_format", datetime_format) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) if file_fingerprint_lines is not None: - pulumi.set(__self__, "file_fingerprint_lines", file_fingerprint_lines) + _setter("file_fingerprint_lines", file_fingerprint_lines) if initial_position is not None: - pulumi.set(__self__, "initial_position", initial_position) + _setter("initial_position", initial_position) if multiline_start_pattern is not None: - pulumi.set(__self__, "multiline_start_pattern", multiline_start_pattern) + _setter("multiline_start_pattern", multiline_start_pattern) if time_zone is not None: - pulumi.set(__self__, "time_zone", time_zone) + _setter("time_zone", time_zone) @property @pulumi.getter @@ -5598,17 +7715,52 @@ def __init__(__self__, *, :param str raid_level: The RAID level to use for the volume. :param str type: The type of volume to create. This may be `standard` (the default), `io1` or `gp2`. """ - pulumi.set(__self__, "mount_point", mount_point) - pulumi.set(__self__, "number_of_disks", number_of_disks) - pulumi.set(__self__, "size", size) + StaticWebLayerEbsVolume._configure( + lambda key, value: pulumi.set(__self__, key, value), + mount_point=mount_point, + number_of_disks=number_of_disks, + size=size, + encrypted=encrypted, + iops=iops, + raid_level=raid_level, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mount_point: Optional[str] = None, + number_of_disks: Optional[int] = None, + size: Optional[int] = None, + encrypted: Optional[bool] = None, + iops: Optional[int] = None, + raid_level: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mount_point is None and 'mountPoint' in kwargs: + mount_point = kwargs['mountPoint'] + if mount_point is None: + raise TypeError("Missing 'mount_point' argument") + if number_of_disks is None and 'numberOfDisks' in kwargs: + number_of_disks = kwargs['numberOfDisks'] + if number_of_disks is None: + raise TypeError("Missing 'number_of_disks' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if raid_level is None and 'raidLevel' in kwargs: + raid_level = kwargs['raidLevel'] + + _setter("mount_point", mount_point) + _setter("number_of_disks", number_of_disks) + _setter("size", size) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if raid_level is not None: - pulumi.set(__self__, "raid_level", raid_level) + _setter("raid_level", raid_level) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="mountPoint") @@ -5670,12 +7822,27 @@ def __init__(__self__, *, downscaling: Optional['outputs.StaticWebLayerLoadBasedAutoScalingDownscaling'] = None, enable: Optional[bool] = None, upscaling: Optional['outputs.StaticWebLayerLoadBasedAutoScalingUpscaling'] = None): + StaticWebLayerLoadBasedAutoScaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + downscaling=downscaling, + enable=enable, + upscaling=upscaling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + downscaling: Optional['outputs.StaticWebLayerLoadBasedAutoScalingDownscaling'] = None, + enable: Optional[bool] = None, + upscaling: Optional['outputs.StaticWebLayerLoadBasedAutoScalingUpscaling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if downscaling is not None: - pulumi.set(__self__, "downscaling", downscaling) + _setter("downscaling", downscaling) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if upscaling is not None: - pulumi.set(__self__, "upscaling", upscaling) + _setter("upscaling", upscaling) @property @pulumi.getter @@ -5730,20 +7897,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + StaticWebLayerLoadBasedAutoScalingDownscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter @@ -5818,20 +8020,55 @@ def __init__(__self__, *, load_threshold: Optional[float] = None, memory_threshold: Optional[float] = None, thresholds_wait_time: Optional[int] = None): + StaticWebLayerLoadBasedAutoScalingUpscaling._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + cpu_threshold=cpu_threshold, + ignore_metrics_time=ignore_metrics_time, + instance_count=instance_count, + load_threshold=load_threshold, + memory_threshold=memory_threshold, + thresholds_wait_time=thresholds_wait_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence[str]] = None, + cpu_threshold: Optional[float] = None, + ignore_metrics_time: Optional[int] = None, + instance_count: Optional[int] = None, + load_threshold: Optional[float] = None, + memory_threshold: Optional[float] = None, + thresholds_wait_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cpu_threshold is None and 'cpuThreshold' in kwargs: + cpu_threshold = kwargs['cpuThreshold'] + if ignore_metrics_time is None and 'ignoreMetricsTime' in kwargs: + ignore_metrics_time = kwargs['ignoreMetricsTime'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if load_threshold is None and 'loadThreshold' in kwargs: + load_threshold = kwargs['loadThreshold'] + if memory_threshold is None and 'memoryThreshold' in kwargs: + memory_threshold = kwargs['memoryThreshold'] + if thresholds_wait_time is None and 'thresholdsWaitTime' in kwargs: + thresholds_wait_time = kwargs['thresholdsWaitTime'] + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) if cpu_threshold is not None: - pulumi.set(__self__, "cpu_threshold", cpu_threshold) + _setter("cpu_threshold", cpu_threshold) if ignore_metrics_time is not None: - pulumi.set(__self__, "ignore_metrics_time", ignore_metrics_time) + _setter("ignore_metrics_time", ignore_metrics_time) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if load_threshold is not None: - pulumi.set(__self__, "load_threshold", load_threshold) + _setter("load_threshold", load_threshold) if memory_threshold is not None: - pulumi.set(__self__, "memory_threshold", memory_threshold) + _setter("memory_threshold", memory_threshold) if thresholds_wait_time is not None: - pulumi.set(__self__, "thresholds_wait_time", thresholds_wait_time) + _setter("thresholds_wait_time", thresholds_wait_time) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/opsworks/permission.py b/sdk/python/pulumi_aws/opsworks/permission.py index 8a338f68c92..544ca27ba04 100644 --- a/sdk/python/pulumi_aws/opsworks/permission.py +++ b/sdk/python/pulumi_aws/opsworks/permission.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PermissionArgs', 'Permission'] @@ -27,14 +27,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] allow_sudo: Whether the user is allowed to use sudo to elevate privileges :param pulumi.Input[str] level: The users permission level. Mus be one of `deny`, `show`, `deploy`, `manage`, `iam_only` """ - pulumi.set(__self__, "stack_id", stack_id) - pulumi.set(__self__, "user_arn", user_arn) + PermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + user_arn=user_arn, + allow_ssh=allow_ssh, + allow_sudo=allow_sudo, + level=level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + user_arn: Optional[pulumi.Input[str]] = None, + allow_ssh: Optional[pulumi.Input[bool]] = None, + allow_sudo: Optional[pulumi.Input[bool]] = None, + level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if user_arn is None and 'userArn' in kwargs: + user_arn = kwargs['userArn'] + if user_arn is None: + raise TypeError("Missing 'user_arn' argument") + if allow_ssh is None and 'allowSsh' in kwargs: + allow_ssh = kwargs['allowSsh'] + if allow_sudo is None and 'allowSudo' in kwargs: + allow_sudo = kwargs['allowSudo'] + + _setter("stack_id", stack_id) + _setter("user_arn", user_arn) if allow_ssh is not None: - pulumi.set(__self__, "allow_ssh", allow_ssh) + _setter("allow_ssh", allow_ssh) if allow_sudo is not None: - pulumi.set(__self__, "allow_sudo", allow_sudo) + _setter("allow_sudo", allow_sudo) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) @property @pulumi.getter(name="stackId") @@ -113,16 +144,43 @@ def __init__(__self__, *, :param pulumi.Input[str] stack_id: The stack to set the permissions for :param pulumi.Input[str] user_arn: The user's IAM ARN to set permissions for """ + _PermissionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_ssh=allow_ssh, + allow_sudo=allow_sudo, + level=level, + stack_id=stack_id, + user_arn=user_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_ssh: Optional[pulumi.Input[bool]] = None, + allow_sudo: Optional[pulumi.Input[bool]] = None, + level: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + user_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_ssh is None and 'allowSsh' in kwargs: + allow_ssh = kwargs['allowSsh'] + if allow_sudo is None and 'allowSudo' in kwargs: + allow_sudo = kwargs['allowSudo'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if user_arn is None and 'userArn' in kwargs: + user_arn = kwargs['userArn'] + if allow_ssh is not None: - pulumi.set(__self__, "allow_ssh", allow_ssh) + _setter("allow_ssh", allow_ssh) if allow_sudo is not None: - pulumi.set(__self__, "allow_sudo", allow_sudo) + _setter("allow_sudo", allow_sudo) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if user_arn is not None: - pulumi.set(__self__, "user_arn", user_arn) + _setter("user_arn", user_arn) @property @pulumi.getter(name="allowSsh") @@ -254,6 +312,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PermissionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opsworks/php_app_layer.py b/sdk/python/pulumi_aws/opsworks/php_app_layer.py index 530fcb1eed8..dddc5647241 100644 --- a/sdk/python/pulumi_aws/opsworks/php_app_layer.py +++ b/sdk/python/pulumi_aws/opsworks/php_app_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -62,51 +62,150 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "stack_id", stack_id) + PhpAppLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['PhpAppLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['PhpAppLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['PhpAppLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("stack_id", stack_id) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="stackId") @@ -421,59 +520,162 @@ def __init__(__self__, *, :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[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _PhpAppLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['PhpAppLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['PhpAppLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['PhpAppLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter @@ -870,6 +1072,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PhpAppLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -910,6 +1116,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, PhpAppLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -924,6 +1131,7 @@ def _internal_init(__self__, __props__.__dict__["elastic_load_balancer"] = elastic_load_balancer __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, PhpAppLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name if stack_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/opsworks/rails_app_layer.py b/sdk/python/pulumi_aws/opsworks/rails_app_layer.py index 61f283bd36c..8124c7799b1 100644 --- a/sdk/python/pulumi_aws/opsworks/rails_app_layer.py +++ b/sdk/python/pulumi_aws/opsworks/rails_app_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -74,63 +74,186 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "stack_id", stack_id) + RailsAppLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + app_server=app_server, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + bundler_version=bundler_version, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + manage_bundler=manage_bundler, + name=name, + passenger_version=passenger_version, + ruby_version=ruby_version, + rubygems_version=rubygems_version, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + app_server: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + bundler_version: Optional[pulumi.Input[str]] = None, + cloudwatch_configuration: Optional[pulumi.Input['RailsAppLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['RailsAppLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['RailsAppLayerLoadBasedAutoScalingArgs']] = None, + manage_bundler: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + passenger_version: Optional[pulumi.Input[str]] = None, + ruby_version: Optional[pulumi.Input[str]] = None, + rubygems_version: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if app_server is None and 'appServer' in kwargs: + app_server = kwargs['appServer'] + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if bundler_version is None and 'bundlerVersion' in kwargs: + bundler_version = kwargs['bundlerVersion'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if manage_bundler is None and 'manageBundler' in kwargs: + manage_bundler = kwargs['manageBundler'] + if passenger_version is None and 'passengerVersion' in kwargs: + passenger_version = kwargs['passengerVersion'] + if ruby_version is None and 'rubyVersion' in kwargs: + ruby_version = kwargs['rubyVersion'] + if rubygems_version is None and 'rubygemsVersion' in kwargs: + rubygems_version = kwargs['rubygemsVersion'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("stack_id", stack_id) if app_server is not None: - pulumi.set(__self__, "app_server", app_server) + _setter("app_server", app_server) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if bundler_version is not None: - pulumi.set(__self__, "bundler_version", bundler_version) + _setter("bundler_version", bundler_version) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if manage_bundler is not None: - pulumi.set(__self__, "manage_bundler", manage_bundler) + _setter("manage_bundler", manage_bundler) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if passenger_version is not None: - pulumi.set(__self__, "passenger_version", passenger_version) + _setter("passenger_version", passenger_version) if ruby_version is not None: - pulumi.set(__self__, "ruby_version", ruby_version) + _setter("ruby_version", ruby_version) if rubygems_version is not None: - pulumi.set(__self__, "rubygems_version", rubygems_version) + _setter("rubygems_version", rubygems_version) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="stackId") @@ -529,71 +652,198 @@ def __init__(__self__, *, :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[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _RailsAppLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_server=app_server, + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + bundler_version=bundler_version, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + manage_bundler=manage_bundler, + name=name, + passenger_version=passenger_version, + ruby_version=ruby_version, + rubygems_version=rubygems_version, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_server: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + bundler_version: Optional[pulumi.Input[str]] = None, + cloudwatch_configuration: Optional[pulumi.Input['RailsAppLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['RailsAppLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['RailsAppLayerLoadBasedAutoScalingArgs']] = None, + manage_bundler: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + passenger_version: Optional[pulumi.Input[str]] = None, + ruby_version: Optional[pulumi.Input[str]] = None, + rubygems_version: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_server is None and 'appServer' in kwargs: + app_server = kwargs['appServer'] + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if bundler_version is None and 'bundlerVersion' in kwargs: + bundler_version = kwargs['bundlerVersion'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if manage_bundler is None and 'manageBundler' in kwargs: + manage_bundler = kwargs['manageBundler'] + if passenger_version is None and 'passengerVersion' in kwargs: + passenger_version = kwargs['passengerVersion'] + if ruby_version is None and 'rubyVersion' in kwargs: + ruby_version = kwargs['rubyVersion'] + if rubygems_version is None and 'rubygemsVersion' in kwargs: + rubygems_version = kwargs['rubygemsVersion'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if app_server is not None: - pulumi.set(__self__, "app_server", app_server) + _setter("app_server", app_server) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if bundler_version is not None: - pulumi.set(__self__, "bundler_version", bundler_version) + _setter("bundler_version", bundler_version) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if manage_bundler is not None: - pulumi.set(__self__, "manage_bundler", manage_bundler) + _setter("manage_bundler", manage_bundler) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if passenger_version is not None: - pulumi.set(__self__, "passenger_version", passenger_version) + _setter("passenger_version", passenger_version) if ruby_version is not None: - pulumi.set(__self__, "ruby_version", ruby_version) + _setter("ruby_version", ruby_version) if rubygems_version is not None: - pulumi.set(__self__, "rubygems_version", rubygems_version) + _setter("rubygems_version", rubygems_version) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="appServer") @@ -1058,6 +1308,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RailsAppLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1106,6 +1360,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing __props__.__dict__["bundler_version"] = bundler_version + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, RailsAppLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -1120,6 +1375,7 @@ def _internal_init(__self__, __props__.__dict__["elastic_load_balancer"] = elastic_load_balancer __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, RailsAppLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["manage_bundler"] = manage_bundler __props__.__dict__["name"] = name diff --git a/sdk/python/pulumi_aws/opsworks/rds_db_instance.py b/sdk/python/pulumi_aws/opsworks/rds_db_instance.py index 03d6a1a0f55..e5378705dbb 100644 --- a/sdk/python/pulumi_aws/opsworks/rds_db_instance.py +++ b/sdk/python/pulumi_aws/opsworks/rds_db_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RdsDbInstanceArgs', 'RdsDbInstance'] @@ -25,10 +25,43 @@ def __init__(__self__, *, :param pulumi.Input[str] rds_db_instance_arn: The db instance to register for this stack. Changing this will force a new resource. :param pulumi.Input[str] stack_id: The stack to register a db instance for. Changing this will force a new resource. """ - pulumi.set(__self__, "db_password", db_password) - pulumi.set(__self__, "db_user", db_user) - pulumi.set(__self__, "rds_db_instance_arn", rds_db_instance_arn) - pulumi.set(__self__, "stack_id", stack_id) + RdsDbInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_password=db_password, + db_user=db_user, + rds_db_instance_arn=rds_db_instance_arn, + stack_id=stack_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_password: Optional[pulumi.Input[str]] = None, + db_user: Optional[pulumi.Input[str]] = None, + rds_db_instance_arn: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_password is None and 'dbPassword' in kwargs: + db_password = kwargs['dbPassword'] + if db_password is None: + raise TypeError("Missing 'db_password' argument") + if db_user is None and 'dbUser' in kwargs: + db_user = kwargs['dbUser'] + if db_user is None: + raise TypeError("Missing 'db_user' argument") + if rds_db_instance_arn is None and 'rdsDbInstanceArn' in kwargs: + rds_db_instance_arn = kwargs['rdsDbInstanceArn'] + if rds_db_instance_arn is None: + raise TypeError("Missing 'rds_db_instance_arn' argument") + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + + _setter("db_password", db_password) + _setter("db_user", db_user) + _setter("rds_db_instance_arn", rds_db_instance_arn) + _setter("stack_id", stack_id) @property @pulumi.getter(name="dbPassword") @@ -93,14 +126,39 @@ def __init__(__self__, *, :param pulumi.Input[str] rds_db_instance_arn: The db instance to register for this stack. Changing this will force a new resource. :param pulumi.Input[str] stack_id: The stack to register a db instance for. Changing this will force a new resource. """ + _RdsDbInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_password=db_password, + db_user=db_user, + rds_db_instance_arn=rds_db_instance_arn, + stack_id=stack_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_password: Optional[pulumi.Input[str]] = None, + db_user: Optional[pulumi.Input[str]] = None, + rds_db_instance_arn: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_password is None and 'dbPassword' in kwargs: + db_password = kwargs['dbPassword'] + if db_user is None and 'dbUser' in kwargs: + db_user = kwargs['dbUser'] + if rds_db_instance_arn is None and 'rdsDbInstanceArn' in kwargs: + rds_db_instance_arn = kwargs['rdsDbInstanceArn'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if db_password is not None: - pulumi.set(__self__, "db_password", db_password) + _setter("db_password", db_password) if db_user is not None: - pulumi.set(__self__, "db_user", db_user) + _setter("db_user", db_user) if rds_db_instance_arn is not None: - pulumi.set(__self__, "rds_db_instance_arn", rds_db_instance_arn) + _setter("rds_db_instance_arn", rds_db_instance_arn) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) @property @pulumi.getter(name="dbPassword") @@ -216,6 +274,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RdsDbInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opsworks/stack.py b/sdk/python/pulumi_aws/opsworks/stack.py index a2a6e92134d..9829eabae39 100644 --- a/sdk/python/pulumi_aws/opsworks/stack.py +++ b/sdk/python/pulumi_aws/opsworks/stack.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -67,47 +67,142 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: ID of the VPC that this stack belongs to. Defaults to the region's default VPC. """ - pulumi.set(__self__, "default_instance_profile_arn", default_instance_profile_arn) - pulumi.set(__self__, "region", region) - pulumi.set(__self__, "service_role_arn", service_role_arn) + StackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_instance_profile_arn=default_instance_profile_arn, + region=region, + service_role_arn=service_role_arn, + agent_version=agent_version, + berkshelf_version=berkshelf_version, + color=color, + configuration_manager_name=configuration_manager_name, + configuration_manager_version=configuration_manager_version, + custom_cookbooks_sources=custom_cookbooks_sources, + custom_json=custom_json, + default_availability_zone=default_availability_zone, + default_os=default_os, + default_root_device_type=default_root_device_type, + default_ssh_key_name=default_ssh_key_name, + default_subnet_id=default_subnet_id, + hostname_theme=hostname_theme, + manage_berkshelf=manage_berkshelf, + name=name, + tags=tags, + use_custom_cookbooks=use_custom_cookbooks, + use_opsworks_security_groups=use_opsworks_security_groups, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_instance_profile_arn: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + agent_version: Optional[pulumi.Input[str]] = None, + berkshelf_version: Optional[pulumi.Input[str]] = None, + color: Optional[pulumi.Input[str]] = None, + configuration_manager_name: Optional[pulumi.Input[str]] = None, + configuration_manager_version: Optional[pulumi.Input[str]] = None, + custom_cookbooks_sources: Optional[pulumi.Input[Sequence[pulumi.Input['StackCustomCookbooksSourceArgs']]]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + default_availability_zone: Optional[pulumi.Input[str]] = None, + default_os: Optional[pulumi.Input[str]] = None, + default_root_device_type: Optional[pulumi.Input[str]] = None, + default_ssh_key_name: Optional[pulumi.Input[str]] = None, + default_subnet_id: Optional[pulumi.Input[str]] = None, + hostname_theme: Optional[pulumi.Input[str]] = None, + manage_berkshelf: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_custom_cookbooks: Optional[pulumi.Input[bool]] = None, + use_opsworks_security_groups: Optional[pulumi.Input[bool]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_instance_profile_arn is None and 'defaultInstanceProfileArn' in kwargs: + default_instance_profile_arn = kwargs['defaultInstanceProfileArn'] + if default_instance_profile_arn is None: + raise TypeError("Missing 'default_instance_profile_arn' argument") + if region is None: + raise TypeError("Missing 'region' argument") + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if service_role_arn is None: + raise TypeError("Missing 'service_role_arn' argument") + if agent_version is None and 'agentVersion' in kwargs: + agent_version = kwargs['agentVersion'] + if berkshelf_version is None and 'berkshelfVersion' in kwargs: + berkshelf_version = kwargs['berkshelfVersion'] + if configuration_manager_name is None and 'configurationManagerName' in kwargs: + configuration_manager_name = kwargs['configurationManagerName'] + if configuration_manager_version is None and 'configurationManagerVersion' in kwargs: + configuration_manager_version = kwargs['configurationManagerVersion'] + if custom_cookbooks_sources is None and 'customCookbooksSources' in kwargs: + custom_cookbooks_sources = kwargs['customCookbooksSources'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if default_availability_zone is None and 'defaultAvailabilityZone' in kwargs: + default_availability_zone = kwargs['defaultAvailabilityZone'] + if default_os is None and 'defaultOs' in kwargs: + default_os = kwargs['defaultOs'] + if default_root_device_type is None and 'defaultRootDeviceType' in kwargs: + default_root_device_type = kwargs['defaultRootDeviceType'] + if default_ssh_key_name is None and 'defaultSshKeyName' in kwargs: + default_ssh_key_name = kwargs['defaultSshKeyName'] + if default_subnet_id is None and 'defaultSubnetId' in kwargs: + default_subnet_id = kwargs['defaultSubnetId'] + if hostname_theme is None and 'hostnameTheme' in kwargs: + hostname_theme = kwargs['hostnameTheme'] + if manage_berkshelf is None and 'manageBerkshelf' in kwargs: + manage_berkshelf = kwargs['manageBerkshelf'] + if use_custom_cookbooks is None and 'useCustomCookbooks' in kwargs: + use_custom_cookbooks = kwargs['useCustomCookbooks'] + if use_opsworks_security_groups is None and 'useOpsworksSecurityGroups' in kwargs: + use_opsworks_security_groups = kwargs['useOpsworksSecurityGroups'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + + _setter("default_instance_profile_arn", default_instance_profile_arn) + _setter("region", region) + _setter("service_role_arn", service_role_arn) if agent_version is not None: - pulumi.set(__self__, "agent_version", agent_version) + _setter("agent_version", agent_version) if berkshelf_version is not None: - pulumi.set(__self__, "berkshelf_version", berkshelf_version) + _setter("berkshelf_version", berkshelf_version) if color is not None: - pulumi.set(__self__, "color", color) + _setter("color", color) if configuration_manager_name is not None: - pulumi.set(__self__, "configuration_manager_name", configuration_manager_name) + _setter("configuration_manager_name", configuration_manager_name) if configuration_manager_version is not None: - pulumi.set(__self__, "configuration_manager_version", configuration_manager_version) + _setter("configuration_manager_version", configuration_manager_version) if custom_cookbooks_sources is not None: - pulumi.set(__self__, "custom_cookbooks_sources", custom_cookbooks_sources) + _setter("custom_cookbooks_sources", custom_cookbooks_sources) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if default_availability_zone is not None: - pulumi.set(__self__, "default_availability_zone", default_availability_zone) + _setter("default_availability_zone", default_availability_zone) if default_os is not None: - pulumi.set(__self__, "default_os", default_os) + _setter("default_os", default_os) if default_root_device_type is not None: - pulumi.set(__self__, "default_root_device_type", default_root_device_type) + _setter("default_root_device_type", default_root_device_type) if default_ssh_key_name is not None: - pulumi.set(__self__, "default_ssh_key_name", default_ssh_key_name) + _setter("default_ssh_key_name", default_ssh_key_name) if default_subnet_id is not None: - pulumi.set(__self__, "default_subnet_id", default_subnet_id) + _setter("default_subnet_id", default_subnet_id) if hostname_theme is not None: - pulumi.set(__self__, "hostname_theme", hostname_theme) + _setter("hostname_theme", hostname_theme) if manage_berkshelf is not None: - pulumi.set(__self__, "manage_berkshelf", manage_berkshelf) + _setter("manage_berkshelf", manage_berkshelf) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_custom_cookbooks is not None: - pulumi.set(__self__, "use_custom_cookbooks", use_custom_cookbooks) + _setter("use_custom_cookbooks", use_custom_cookbooks) if use_opsworks_security_groups is not None: - pulumi.set(__self__, "use_opsworks_security_groups", use_opsworks_security_groups) + _setter("use_opsworks_security_groups", use_opsworks_security_groups) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="defaultInstanceProfileArn") @@ -436,59 +531,158 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: ID of the VPC that this stack belongs to. Defaults to the region's default VPC. """ + _StackState._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_version=agent_version, + arn=arn, + berkshelf_version=berkshelf_version, + color=color, + configuration_manager_name=configuration_manager_name, + configuration_manager_version=configuration_manager_version, + custom_cookbooks_sources=custom_cookbooks_sources, + custom_json=custom_json, + default_availability_zone=default_availability_zone, + default_instance_profile_arn=default_instance_profile_arn, + default_os=default_os, + default_root_device_type=default_root_device_type, + default_ssh_key_name=default_ssh_key_name, + default_subnet_id=default_subnet_id, + hostname_theme=hostname_theme, + manage_berkshelf=manage_berkshelf, + name=name, + region=region, + service_role_arn=service_role_arn, + stack_endpoint=stack_endpoint, + tags=tags, + tags_all=tags_all, + use_custom_cookbooks=use_custom_cookbooks, + use_opsworks_security_groups=use_opsworks_security_groups, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_version: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + berkshelf_version: Optional[pulumi.Input[str]] = None, + color: Optional[pulumi.Input[str]] = None, + configuration_manager_name: Optional[pulumi.Input[str]] = None, + configuration_manager_version: Optional[pulumi.Input[str]] = None, + custom_cookbooks_sources: Optional[pulumi.Input[Sequence[pulumi.Input['StackCustomCookbooksSourceArgs']]]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + default_availability_zone: Optional[pulumi.Input[str]] = None, + default_instance_profile_arn: Optional[pulumi.Input[str]] = None, + default_os: Optional[pulumi.Input[str]] = None, + default_root_device_type: Optional[pulumi.Input[str]] = None, + default_ssh_key_name: Optional[pulumi.Input[str]] = None, + default_subnet_id: Optional[pulumi.Input[str]] = None, + hostname_theme: Optional[pulumi.Input[str]] = None, + manage_berkshelf: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + stack_endpoint: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_custom_cookbooks: Optional[pulumi.Input[bool]] = None, + use_opsworks_security_groups: Optional[pulumi.Input[bool]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_version is None and 'agentVersion' in kwargs: + agent_version = kwargs['agentVersion'] + if berkshelf_version is None and 'berkshelfVersion' in kwargs: + berkshelf_version = kwargs['berkshelfVersion'] + if configuration_manager_name is None and 'configurationManagerName' in kwargs: + configuration_manager_name = kwargs['configurationManagerName'] + if configuration_manager_version is None and 'configurationManagerVersion' in kwargs: + configuration_manager_version = kwargs['configurationManagerVersion'] + if custom_cookbooks_sources is None and 'customCookbooksSources' in kwargs: + custom_cookbooks_sources = kwargs['customCookbooksSources'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if default_availability_zone is None and 'defaultAvailabilityZone' in kwargs: + default_availability_zone = kwargs['defaultAvailabilityZone'] + if default_instance_profile_arn is None and 'defaultInstanceProfileArn' in kwargs: + default_instance_profile_arn = kwargs['defaultInstanceProfileArn'] + if default_os is None and 'defaultOs' in kwargs: + default_os = kwargs['defaultOs'] + if default_root_device_type is None and 'defaultRootDeviceType' in kwargs: + default_root_device_type = kwargs['defaultRootDeviceType'] + if default_ssh_key_name is None and 'defaultSshKeyName' in kwargs: + default_ssh_key_name = kwargs['defaultSshKeyName'] + if default_subnet_id is None and 'defaultSubnetId' in kwargs: + default_subnet_id = kwargs['defaultSubnetId'] + if hostname_theme is None and 'hostnameTheme' in kwargs: + hostname_theme = kwargs['hostnameTheme'] + if manage_berkshelf is None and 'manageBerkshelf' in kwargs: + manage_berkshelf = kwargs['manageBerkshelf'] + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if stack_endpoint is None and 'stackEndpoint' in kwargs: + stack_endpoint = kwargs['stackEndpoint'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_custom_cookbooks is None and 'useCustomCookbooks' in kwargs: + use_custom_cookbooks = kwargs['useCustomCookbooks'] + if use_opsworks_security_groups is None and 'useOpsworksSecurityGroups' in kwargs: + use_opsworks_security_groups = kwargs['useOpsworksSecurityGroups'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if agent_version is not None: - pulumi.set(__self__, "agent_version", agent_version) + _setter("agent_version", agent_version) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if berkshelf_version is not None: - pulumi.set(__self__, "berkshelf_version", berkshelf_version) + _setter("berkshelf_version", berkshelf_version) if color is not None: - pulumi.set(__self__, "color", color) + _setter("color", color) if configuration_manager_name is not None: - pulumi.set(__self__, "configuration_manager_name", configuration_manager_name) + _setter("configuration_manager_name", configuration_manager_name) if configuration_manager_version is not None: - pulumi.set(__self__, "configuration_manager_version", configuration_manager_version) + _setter("configuration_manager_version", configuration_manager_version) if custom_cookbooks_sources is not None: - pulumi.set(__self__, "custom_cookbooks_sources", custom_cookbooks_sources) + _setter("custom_cookbooks_sources", custom_cookbooks_sources) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if default_availability_zone is not None: - pulumi.set(__self__, "default_availability_zone", default_availability_zone) + _setter("default_availability_zone", default_availability_zone) if default_instance_profile_arn is not None: - pulumi.set(__self__, "default_instance_profile_arn", default_instance_profile_arn) + _setter("default_instance_profile_arn", default_instance_profile_arn) if default_os is not None: - pulumi.set(__self__, "default_os", default_os) + _setter("default_os", default_os) if default_root_device_type is not None: - pulumi.set(__self__, "default_root_device_type", default_root_device_type) + _setter("default_root_device_type", default_root_device_type) if default_ssh_key_name is not None: - pulumi.set(__self__, "default_ssh_key_name", default_ssh_key_name) + _setter("default_ssh_key_name", default_ssh_key_name) if default_subnet_id is not None: - pulumi.set(__self__, "default_subnet_id", default_subnet_id) + _setter("default_subnet_id", default_subnet_id) if hostname_theme is not None: - pulumi.set(__self__, "hostname_theme", hostname_theme) + _setter("hostname_theme", hostname_theme) if manage_berkshelf is not None: - pulumi.set(__self__, "manage_berkshelf", manage_berkshelf) + _setter("manage_berkshelf", manage_berkshelf) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if service_role_arn is not None: - pulumi.set(__self__, "service_role_arn", service_role_arn) + _setter("service_role_arn", service_role_arn) if stack_endpoint is not None: - pulumi.set(__self__, "stack_endpoint", stack_endpoint) + _setter("stack_endpoint", stack_endpoint) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_custom_cookbooks is not None: - pulumi.set(__self__, "use_custom_cookbooks", use_custom_cookbooks) + _setter("use_custom_cookbooks", use_custom_cookbooks) if use_opsworks_security_groups is not None: - pulumi.set(__self__, "use_opsworks_security_groups", use_opsworks_security_groups) + _setter("use_opsworks_security_groups", use_opsworks_security_groups) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="agentVersion") @@ -929,6 +1123,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StackArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/opsworks/static_web_layer.py b/sdk/python/pulumi_aws/opsworks/static_web_layer.py index 6c50ed50507..92e98d01319 100644 --- a/sdk/python/pulumi_aws/opsworks/static_web_layer.py +++ b/sdk/python/pulumi_aws/opsworks/static_web_layer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -61,51 +61,150 @@ def __init__(__self__, *, lifecycle events, if custom cookbooks are enabled on the layer's stack: :param pulumi.Input[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ - pulumi.set(__self__, "stack_id", stack_id) + StaticWebLayerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stack_id=stack_id, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + system_packages=system_packages, + tags=tags, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stack_id: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['StaticWebLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['StaticWebLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['StaticWebLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if stack_id is None: + raise TypeError("Missing 'stack_id' argument") + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + + _setter("stack_id", stack_id) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter(name="stackId") @@ -416,59 +515,162 @@ def __init__(__self__, *, :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[bool] use_ebs_optimized_instances: Whether to use EBS-optimized instances. """ + _StaticWebLayerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_assign_elastic_ips=auto_assign_elastic_ips, + auto_assign_public_ips=auto_assign_public_ips, + auto_healing=auto_healing, + cloudwatch_configuration=cloudwatch_configuration, + custom_configure_recipes=custom_configure_recipes, + custom_deploy_recipes=custom_deploy_recipes, + custom_instance_profile_arn=custom_instance_profile_arn, + custom_json=custom_json, + custom_security_group_ids=custom_security_group_ids, + custom_setup_recipes=custom_setup_recipes, + custom_shutdown_recipes=custom_shutdown_recipes, + custom_undeploy_recipes=custom_undeploy_recipes, + drain_elb_on_shutdown=drain_elb_on_shutdown, + ebs_volumes=ebs_volumes, + elastic_load_balancer=elastic_load_balancer, + install_updates_on_boot=install_updates_on_boot, + instance_shutdown_timeout=instance_shutdown_timeout, + load_based_auto_scaling=load_based_auto_scaling, + name=name, + stack_id=stack_id, + system_packages=system_packages, + tags=tags, + tags_all=tags_all, + use_ebs_optimized_instances=use_ebs_optimized_instances, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_assign_elastic_ips: Optional[pulumi.Input[bool]] = None, + auto_assign_public_ips: Optional[pulumi.Input[bool]] = None, + auto_healing: Optional[pulumi.Input[bool]] = None, + cloudwatch_configuration: Optional[pulumi.Input['StaticWebLayerCloudwatchConfigurationArgs']] = None, + custom_configure_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_deploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_instance_profile_arn: Optional[pulumi.Input[str]] = None, + custom_json: Optional[pulumi.Input[str]] = None, + custom_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_setup_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_shutdown_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_undeploy_recipes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + drain_elb_on_shutdown: Optional[pulumi.Input[bool]] = None, + ebs_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['StaticWebLayerEbsVolumeArgs']]]] = None, + elastic_load_balancer: Optional[pulumi.Input[str]] = None, + install_updates_on_boot: Optional[pulumi.Input[bool]] = None, + instance_shutdown_timeout: Optional[pulumi.Input[int]] = None, + load_based_auto_scaling: Optional[pulumi.Input['StaticWebLayerLoadBasedAutoScalingArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + stack_id: Optional[pulumi.Input[str]] = None, + system_packages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + use_ebs_optimized_instances: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_assign_elastic_ips is None and 'autoAssignElasticIps' in kwargs: + auto_assign_elastic_ips = kwargs['autoAssignElasticIps'] + if auto_assign_public_ips is None and 'autoAssignPublicIps' in kwargs: + auto_assign_public_ips = kwargs['autoAssignPublicIps'] + if auto_healing is None and 'autoHealing' in kwargs: + auto_healing = kwargs['autoHealing'] + if cloudwatch_configuration is None and 'cloudwatchConfiguration' in kwargs: + cloudwatch_configuration = kwargs['cloudwatchConfiguration'] + if custom_configure_recipes is None and 'customConfigureRecipes' in kwargs: + custom_configure_recipes = kwargs['customConfigureRecipes'] + if custom_deploy_recipes is None and 'customDeployRecipes' in kwargs: + custom_deploy_recipes = kwargs['customDeployRecipes'] + if custom_instance_profile_arn is None and 'customInstanceProfileArn' in kwargs: + custom_instance_profile_arn = kwargs['customInstanceProfileArn'] + if custom_json is None and 'customJson' in kwargs: + custom_json = kwargs['customJson'] + if custom_security_group_ids is None and 'customSecurityGroupIds' in kwargs: + custom_security_group_ids = kwargs['customSecurityGroupIds'] + if custom_setup_recipes is None and 'customSetupRecipes' in kwargs: + custom_setup_recipes = kwargs['customSetupRecipes'] + if custom_shutdown_recipes is None and 'customShutdownRecipes' in kwargs: + custom_shutdown_recipes = kwargs['customShutdownRecipes'] + if custom_undeploy_recipes is None and 'customUndeployRecipes' in kwargs: + custom_undeploy_recipes = kwargs['customUndeployRecipes'] + if drain_elb_on_shutdown is None and 'drainElbOnShutdown' in kwargs: + drain_elb_on_shutdown = kwargs['drainElbOnShutdown'] + if ebs_volumes is None and 'ebsVolumes' in kwargs: + ebs_volumes = kwargs['ebsVolumes'] + if elastic_load_balancer is None and 'elasticLoadBalancer' in kwargs: + elastic_load_balancer = kwargs['elasticLoadBalancer'] + if install_updates_on_boot is None and 'installUpdatesOnBoot' in kwargs: + install_updates_on_boot = kwargs['installUpdatesOnBoot'] + if instance_shutdown_timeout is None and 'instanceShutdownTimeout' in kwargs: + instance_shutdown_timeout = kwargs['instanceShutdownTimeout'] + if load_based_auto_scaling is None and 'loadBasedAutoScaling' in kwargs: + load_based_auto_scaling = kwargs['loadBasedAutoScaling'] + if stack_id is None and 'stackId' in kwargs: + stack_id = kwargs['stackId'] + if system_packages is None and 'systemPackages' in kwargs: + system_packages = kwargs['systemPackages'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if use_ebs_optimized_instances is None and 'useEbsOptimizedInstances' in kwargs: + use_ebs_optimized_instances = kwargs['useEbsOptimizedInstances'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_assign_elastic_ips is not None: - pulumi.set(__self__, "auto_assign_elastic_ips", auto_assign_elastic_ips) + _setter("auto_assign_elastic_ips", auto_assign_elastic_ips) if auto_assign_public_ips is not None: - pulumi.set(__self__, "auto_assign_public_ips", auto_assign_public_ips) + _setter("auto_assign_public_ips", auto_assign_public_ips) if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) + _setter("auto_healing", auto_healing) if cloudwatch_configuration is not None: - pulumi.set(__self__, "cloudwatch_configuration", cloudwatch_configuration) + _setter("cloudwatch_configuration", cloudwatch_configuration) if custom_configure_recipes is not None: - pulumi.set(__self__, "custom_configure_recipes", custom_configure_recipes) + _setter("custom_configure_recipes", custom_configure_recipes) if custom_deploy_recipes is not None: - pulumi.set(__self__, "custom_deploy_recipes", custom_deploy_recipes) + _setter("custom_deploy_recipes", custom_deploy_recipes) if custom_instance_profile_arn is not None: - pulumi.set(__self__, "custom_instance_profile_arn", custom_instance_profile_arn) + _setter("custom_instance_profile_arn", custom_instance_profile_arn) if custom_json is not None: - pulumi.set(__self__, "custom_json", custom_json) + _setter("custom_json", custom_json) if custom_security_group_ids is not None: - pulumi.set(__self__, "custom_security_group_ids", custom_security_group_ids) + _setter("custom_security_group_ids", custom_security_group_ids) if custom_setup_recipes is not None: - pulumi.set(__self__, "custom_setup_recipes", custom_setup_recipes) + _setter("custom_setup_recipes", custom_setup_recipes) if custom_shutdown_recipes is not None: - pulumi.set(__self__, "custom_shutdown_recipes", custom_shutdown_recipes) + _setter("custom_shutdown_recipes", custom_shutdown_recipes) if custom_undeploy_recipes is not None: - pulumi.set(__self__, "custom_undeploy_recipes", custom_undeploy_recipes) + _setter("custom_undeploy_recipes", custom_undeploy_recipes) if drain_elb_on_shutdown is not None: - pulumi.set(__self__, "drain_elb_on_shutdown", drain_elb_on_shutdown) + _setter("drain_elb_on_shutdown", drain_elb_on_shutdown) if ebs_volumes is not None: - pulumi.set(__self__, "ebs_volumes", ebs_volumes) + _setter("ebs_volumes", ebs_volumes) if elastic_load_balancer is not None: - pulumi.set(__self__, "elastic_load_balancer", elastic_load_balancer) + _setter("elastic_load_balancer", elastic_load_balancer) if install_updates_on_boot is not None: - pulumi.set(__self__, "install_updates_on_boot", install_updates_on_boot) + _setter("install_updates_on_boot", install_updates_on_boot) if instance_shutdown_timeout is not None: - pulumi.set(__self__, "instance_shutdown_timeout", instance_shutdown_timeout) + _setter("instance_shutdown_timeout", instance_shutdown_timeout) if load_based_auto_scaling is not None: - pulumi.set(__self__, "load_based_auto_scaling", load_based_auto_scaling) + _setter("load_based_auto_scaling", load_based_auto_scaling) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if stack_id is not None: - pulumi.set(__self__, "stack_id", stack_id) + _setter("stack_id", stack_id) if system_packages is not None: - pulumi.set(__self__, "system_packages", system_packages) + _setter("system_packages", system_packages) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if use_ebs_optimized_instances is not None: - pulumi.set(__self__, "use_ebs_optimized_instances", use_ebs_optimized_instances) + _setter("use_ebs_optimized_instances", use_ebs_optimized_instances) @property @pulumi.getter @@ -861,6 +1063,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StaticWebLayerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -901,6 +1107,7 @@ def _internal_init(__self__, __props__.__dict__["auto_assign_elastic_ips"] = auto_assign_elastic_ips __props__.__dict__["auto_assign_public_ips"] = auto_assign_public_ips __props__.__dict__["auto_healing"] = auto_healing + cloudwatch_configuration = _utilities.configure(cloudwatch_configuration, StaticWebLayerCloudwatchConfigurationArgs, True) __props__.__dict__["cloudwatch_configuration"] = cloudwatch_configuration __props__.__dict__["custom_configure_recipes"] = custom_configure_recipes __props__.__dict__["custom_deploy_recipes"] = custom_deploy_recipes @@ -915,6 +1122,7 @@ def _internal_init(__self__, __props__.__dict__["elastic_load_balancer"] = elastic_load_balancer __props__.__dict__["install_updates_on_boot"] = install_updates_on_boot __props__.__dict__["instance_shutdown_timeout"] = instance_shutdown_timeout + load_based_auto_scaling = _utilities.configure(load_based_auto_scaling, StaticWebLayerLoadBasedAutoScalingArgs, True) __props__.__dict__["load_based_auto_scaling"] = load_based_auto_scaling __props__.__dict__["name"] = name if stack_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/opsworks/user_profile.py b/sdk/python/pulumi_aws/opsworks/user_profile.py index f1c45a6a8b6..12a2e7d13ac 100644 --- a/sdk/python/pulumi_aws/opsworks/user_profile.py +++ b/sdk/python/pulumi_aws/opsworks/user_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserProfileArgs', 'UserProfile'] @@ -25,12 +25,41 @@ def __init__(__self__, *, :param pulumi.Input[bool] allow_self_management: Whether users can specify their own SSH public key through the My Settings page :param pulumi.Input[str] ssh_public_key: The users public key """ - pulumi.set(__self__, "ssh_username", ssh_username) - pulumi.set(__self__, "user_arn", user_arn) + UserProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ssh_username=ssh_username, + user_arn=user_arn, + allow_self_management=allow_self_management, + ssh_public_key=ssh_public_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ssh_username: Optional[pulumi.Input[str]] = None, + user_arn: Optional[pulumi.Input[str]] = None, + allow_self_management: Optional[pulumi.Input[bool]] = None, + ssh_public_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ssh_username is None and 'sshUsername' in kwargs: + ssh_username = kwargs['sshUsername'] + if ssh_username is None: + raise TypeError("Missing 'ssh_username' argument") + if user_arn is None and 'userArn' in kwargs: + user_arn = kwargs['userArn'] + if user_arn is None: + raise TypeError("Missing 'user_arn' argument") + if allow_self_management is None and 'allowSelfManagement' in kwargs: + allow_self_management = kwargs['allowSelfManagement'] + if ssh_public_key is None and 'sshPublicKey' in kwargs: + ssh_public_key = kwargs['sshPublicKey'] + + _setter("ssh_username", ssh_username) + _setter("user_arn", user_arn) if allow_self_management is not None: - pulumi.set(__self__, "allow_self_management", allow_self_management) + _setter("allow_self_management", allow_self_management) if ssh_public_key is not None: - pulumi.set(__self__, "ssh_public_key", ssh_public_key) + _setter("ssh_public_key", ssh_public_key) @property @pulumi.getter(name="sshUsername") @@ -95,14 +124,39 @@ def __init__(__self__, *, :param pulumi.Input[str] ssh_username: The ssh username, with witch this user wants to log in :param pulumi.Input[str] user_arn: The user's IAM ARN """ + _UserProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_self_management=allow_self_management, + ssh_public_key=ssh_public_key, + ssh_username=ssh_username, + user_arn=user_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_self_management: Optional[pulumi.Input[bool]] = None, + ssh_public_key: Optional[pulumi.Input[str]] = None, + ssh_username: Optional[pulumi.Input[str]] = None, + user_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_self_management is None and 'allowSelfManagement' in kwargs: + allow_self_management = kwargs['allowSelfManagement'] + if ssh_public_key is None and 'sshPublicKey' in kwargs: + ssh_public_key = kwargs['sshPublicKey'] + if ssh_username is None and 'sshUsername' in kwargs: + ssh_username = kwargs['sshUsername'] + if user_arn is None and 'userArn' in kwargs: + user_arn = kwargs['userArn'] + if allow_self_management is not None: - pulumi.set(__self__, "allow_self_management", allow_self_management) + _setter("allow_self_management", allow_self_management) if ssh_public_key is not None: - pulumi.set(__self__, "ssh_public_key", ssh_public_key) + _setter("ssh_public_key", ssh_public_key) if ssh_username is not None: - pulumi.set(__self__, "ssh_username", ssh_username) + _setter("ssh_username", ssh_username) if user_arn is not None: - pulumi.set(__self__, "user_arn", user_arn) + _setter("user_arn", user_arn) @property @pulumi.getter(name="allowSelfManagement") @@ -214,6 +268,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/organizations/_inputs.py b/sdk/python/pulumi_aws/organizations/_inputs.py index 58fa6329379..523e2318463 100644 --- a/sdk/python/pulumi_aws/organizations/_inputs.py +++ b/sdk/python/pulumi_aws/organizations/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -32,16 +32,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the policy type :param pulumi.Input[str] status: The status of the policy type as it relates to the associated root """ + OrganizationAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -119,16 +138,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the policy type :param pulumi.Input[str] status: The status of the policy type as it relates to the associated root """ + OrganizationNonMasterAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -204,14 +242,33 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the policy type :param pulumi.Input[Sequence[pulumi.Input['OrganizationRootPolicyTypeArgs']]] policy_types: List of policy types enabled for this root. All elements have these attributes: """ + OrganizationRootArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + policy_types=policy_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_types: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationRootPolicyTypeArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_types is None and 'policyTypes' in kwargs: + policy_types = kwargs['policyTypes'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy_types is not None: - pulumi.set(__self__, "policy_types", policy_types) + _setter("policy_types", policy_types) @property @pulumi.getter @@ -270,10 +327,23 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: The status of the policy type as it relates to the associated root """ + OrganizationRootPolicyTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -310,14 +380,31 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Identifier of the organization unit :param pulumi.Input[str] name: The name for the organizational unit """ + OrganizationalUnitAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/organizations/account.py b/sdk/python/pulumi_aws/organizations/account.py index 9571d692295..e9484cf7628 100644 --- a/sdk/python/pulumi_aws/organizations/account.py +++ b/sdk/python/pulumi_aws/organizations/account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountArgs', 'Account'] @@ -35,21 +35,58 @@ def __init__(__self__, *, :param pulumi.Input[str] role_name: The name of an IAM role that Organizations automatically preconfigures in the new member account. This role trusts the root account, allowing users in the root account to assume the role, as permitted by the root account administrator. The role has administrator permissions in the new member account. The Organizations API provides no method for reading this information after account creation, so the provider cannot perform drift detection on its value and will always show a difference for a configured value after import unless `ignoreChanges` is used. :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. """ - pulumi.set(__self__, "email", email) + AccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + email=email, + close_on_deletion=close_on_deletion, + create_govcloud=create_govcloud, + iam_user_access_to_billing=iam_user_access_to_billing, + name=name, + parent_id=parent_id, + role_name=role_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email: Optional[pulumi.Input[str]] = None, + close_on_deletion: Optional[pulumi.Input[bool]] = None, + create_govcloud: Optional[pulumi.Input[bool]] = None, + iam_user_access_to_billing: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_id: Optional[pulumi.Input[str]] = None, + role_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email is None: + raise TypeError("Missing 'email' argument") + if close_on_deletion is None and 'closeOnDeletion' in kwargs: + close_on_deletion = kwargs['closeOnDeletion'] + if create_govcloud is None and 'createGovcloud' in kwargs: + create_govcloud = kwargs['createGovcloud'] + if iam_user_access_to_billing is None and 'iamUserAccessToBilling' in kwargs: + iam_user_access_to_billing = kwargs['iamUserAccessToBilling'] + if parent_id is None and 'parentId' in kwargs: + parent_id = kwargs['parentId'] + if role_name is None and 'roleName' in kwargs: + role_name = kwargs['roleName'] + + _setter("email", email) if close_on_deletion is not None: - pulumi.set(__self__, "close_on_deletion", close_on_deletion) + _setter("close_on_deletion", close_on_deletion) if create_govcloud is not None: - pulumi.set(__self__, "create_govcloud", create_govcloud) + _setter("create_govcloud", create_govcloud) if iam_user_access_to_billing is not None: - pulumi.set(__self__, "iam_user_access_to_billing", iam_user_access_to_billing) + _setter("iam_user_access_to_billing", iam_user_access_to_billing) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_id is not None: - pulumi.set(__self__, "parent_id", parent_id) + _setter("parent_id", parent_id) if role_name is not None: - pulumi.set(__self__, "role_name", role_name) + _setter("role_name", role_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -183,37 +220,92 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _AccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + close_on_deletion=close_on_deletion, + create_govcloud=create_govcloud, + email=email, + govcloud_id=govcloud_id, + iam_user_access_to_billing=iam_user_access_to_billing, + joined_method=joined_method, + joined_timestamp=joined_timestamp, + name=name, + parent_id=parent_id, + role_name=role_name, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + close_on_deletion: Optional[pulumi.Input[bool]] = None, + create_govcloud: Optional[pulumi.Input[bool]] = None, + email: Optional[pulumi.Input[str]] = None, + govcloud_id: Optional[pulumi.Input[str]] = None, + iam_user_access_to_billing: Optional[pulumi.Input[str]] = None, + joined_method: Optional[pulumi.Input[str]] = None, + joined_timestamp: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_id: Optional[pulumi.Input[str]] = None, + role_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if close_on_deletion is None and 'closeOnDeletion' in kwargs: + close_on_deletion = kwargs['closeOnDeletion'] + if create_govcloud is None and 'createGovcloud' in kwargs: + create_govcloud = kwargs['createGovcloud'] + if govcloud_id is None and 'govcloudId' in kwargs: + govcloud_id = kwargs['govcloudId'] + if iam_user_access_to_billing is None and 'iamUserAccessToBilling' in kwargs: + iam_user_access_to_billing = kwargs['iamUserAccessToBilling'] + if joined_method is None and 'joinedMethod' in kwargs: + joined_method = kwargs['joinedMethod'] + if joined_timestamp is None and 'joinedTimestamp' in kwargs: + joined_timestamp = kwargs['joinedTimestamp'] + if parent_id is None and 'parentId' in kwargs: + parent_id = kwargs['parentId'] + if role_name is None and 'roleName' in kwargs: + role_name = kwargs['roleName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if close_on_deletion is not None: - pulumi.set(__self__, "close_on_deletion", close_on_deletion) + _setter("close_on_deletion", close_on_deletion) if create_govcloud is not None: - pulumi.set(__self__, "create_govcloud", create_govcloud) + _setter("create_govcloud", create_govcloud) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if govcloud_id is not None: - pulumi.set(__self__, "govcloud_id", govcloud_id) + _setter("govcloud_id", govcloud_id) if iam_user_access_to_billing is not None: - pulumi.set(__self__, "iam_user_access_to_billing", iam_user_access_to_billing) + _setter("iam_user_access_to_billing", iam_user_access_to_billing) if joined_method is not None: - pulumi.set(__self__, "joined_method", joined_method) + _setter("joined_method", joined_method) if joined_timestamp is not None: - pulumi.set(__self__, "joined_timestamp", joined_timestamp) + _setter("joined_timestamp", joined_timestamp) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_id is not None: - pulumi.set(__self__, "parent_id", parent_id) + _setter("parent_id", parent_id) if role_name is not None: - pulumi.set(__self__, "role_name", role_name) + _setter("role_name", role_name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -473,6 +565,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/organizations/delegated_administrator.py b/sdk/python/pulumi_aws/organizations/delegated_administrator.py index 822b65f0800..c3b062edfb0 100644 --- a/sdk/python/pulumi_aws/organizations/delegated_administrator.py +++ b/sdk/python/pulumi_aws/organizations/delegated_administrator.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DelegatedAdministratorArgs', 'DelegatedAdministrator'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: The account ID number of the member account in the organization to register as a delegated administrator. :param pulumi.Input[str] service_principal: The service principal of the AWS service for which you want to make the member account a delegated administrator. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "service_principal", service_principal) + DelegatedAdministratorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + service_principal=service_principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + service_principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if service_principal is None and 'servicePrincipal' in kwargs: + service_principal = kwargs['servicePrincipal'] + if service_principal is None: + raise TypeError("Missing 'service_principal' argument") + + _setter("account_id", account_id) + _setter("service_principal", service_principal) @property @pulumi.getter(name="accountId") @@ -73,24 +94,61 @@ def __init__(__self__, *, :param pulumi.Input[str] service_principal: The service principal of the AWS service for which you want to make the member account a delegated administrator. :param pulumi.Input[str] status: The status of the delegated administrator's account in the organization. """ + _DelegatedAdministratorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + arn=arn, + delegation_enabled_date=delegation_enabled_date, + email=email, + joined_method=joined_method, + joined_timestamp=joined_timestamp, + name=name, + service_principal=service_principal, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + delegation_enabled_date: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + joined_method: Optional[pulumi.Input[str]] = None, + joined_timestamp: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_principal: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if delegation_enabled_date is None and 'delegationEnabledDate' in kwargs: + delegation_enabled_date = kwargs['delegationEnabledDate'] + if joined_method is None and 'joinedMethod' in kwargs: + joined_method = kwargs['joinedMethod'] + if joined_timestamp is None and 'joinedTimestamp' in kwargs: + joined_timestamp = kwargs['joinedTimestamp'] + if service_principal is None and 'servicePrincipal' in kwargs: + service_principal = kwargs['servicePrincipal'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if delegation_enabled_date is not None: - pulumi.set(__self__, "delegation_enabled_date", delegation_enabled_date) + _setter("delegation_enabled_date", delegation_enabled_date) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if joined_method is not None: - pulumi.set(__self__, "joined_method", joined_method) + _setter("joined_method", joined_method) if joined_timestamp is not None: - pulumi.set(__self__, "joined_timestamp", joined_timestamp) + _setter("joined_timestamp", joined_timestamp) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if service_principal is not None: - pulumi.set(__self__, "service_principal", service_principal) + _setter("service_principal", service_principal) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="accountId") @@ -274,6 +332,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DelegatedAdministratorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/organizations/get_delegated_administrators.py b/sdk/python/pulumi_aws/organizations/get_delegated_administrators.py index e19279d13ea..5d38107e365 100644 --- a/sdk/python/pulumi_aws/organizations/get_delegated_administrators.py +++ b/sdk/python/pulumi_aws/organizations/get_delegated_administrators.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/organizations/get_delegated_services.py b/sdk/python/pulumi_aws/organizations/get_delegated_services.py index ffca020bd17..9cf7be60feb 100644 --- a/sdk/python/pulumi_aws/organizations/get_delegated_services.py +++ b/sdk/python/pulumi_aws/organizations/get_delegated_services.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/organizations/get_organization.py b/sdk/python/pulumi_aws/organizations/get_organization.py index 12b3dbeb648..0619a6b0405 100644 --- a/sdk/python/pulumi_aws/organizations/get_organization.py +++ b/sdk/python/pulumi_aws/organizations/get_organization.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -14,6 +14,7 @@ 'GetOrganizationResult', 'AwaitableGetOrganizationResult', 'get_organization', + 'get_organization_output', ] @pulumi.output_type @@ -224,3 +225,51 @@ def get_organization(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGe master_account_id=pulumi.get(__ret__, 'master_account_id'), non_master_accounts=pulumi.get(__ret__, 'non_master_accounts'), roots=pulumi.get(__ret__, 'roots')) + + +@_utilities.lift_output_func(get_organization) +def get_organization_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetOrganizationResult]: + """ + Get information about the organization that the user's account belongs to + + ## Example Usage + ### List all account IDs for the organization + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.organizations.get_organization() + pulumi.export("accountIds", [__item.id for __item in example.accounts]) + ``` + ### SNS topic that can be interacted by the organization only + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.organizations.get_organization() + sns_topic = aws.sns.Topic("snsTopic") + sns_topic_policy_policy_document = sns_topic.arn.apply(lambda arn: aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs( + effect="Allow", + actions=[ + "SNS:Subscribe", + "SNS:Publish", + ], + conditions=[aws.iam.GetPolicyDocumentStatementConditionArgs( + test="StringEquals", + variable="aws:PrincipalOrgID", + values=[example.id], + )], + principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs( + type="AWS", + identifiers=["*"], + )], + resources=[arn], + )])) + sns_topic_policy_topic_policy = aws.sns.TopicPolicy("snsTopicPolicyTopicPolicy", + arn=sns_topic.arn, + policy=sns_topic_policy_policy_document.json) + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/organizations/get_organizational_unit.py b/sdk/python/pulumi_aws/organizations/get_organizational_unit.py index 90240f2aebf..84145f8e74e 100644 --- a/sdk/python/pulumi_aws/organizations/get_organizational_unit.py +++ b/sdk/python/pulumi_aws/organizations/get_organizational_unit.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/organizations/get_organizational_unit_child_accounts.py b/sdk/python/pulumi_aws/organizations/get_organizational_unit_child_accounts.py index 30c819b0e16..c7c6531435b 100644 --- a/sdk/python/pulumi_aws/organizations/get_organizational_unit_child_accounts.py +++ b/sdk/python/pulumi_aws/organizations/get_organizational_unit_child_accounts.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/organizations/get_organizational_unit_descendant_accounts.py b/sdk/python/pulumi_aws/organizations/get_organizational_unit_descendant_accounts.py index 80221d02fea..0412b330f3e 100644 --- a/sdk/python/pulumi_aws/organizations/get_organizational_unit_descendant_accounts.py +++ b/sdk/python/pulumi_aws/organizations/get_organizational_unit_descendant_accounts.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/organizations/get_organizational_units.py b/sdk/python/pulumi_aws/organizations/get_organizational_units.py index e29a467327f..9e31554828c 100644 --- a/sdk/python/pulumi_aws/organizations/get_organizational_units.py +++ b/sdk/python/pulumi_aws/organizations/get_organizational_units.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/organizations/get_policies.py b/sdk/python/pulumi_aws/organizations/get_policies.py index d1037442875..587608fc01d 100644 --- a/sdk/python/pulumi_aws/organizations/get_policies.py +++ b/sdk/python/pulumi_aws/organizations/get_policies.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/organizations/get_policies_for_target.py b/sdk/python/pulumi_aws/organizations/get_policies_for_target.py index 41cad0521a6..0467913e175 100644 --- a/sdk/python/pulumi_aws/organizations/get_policies_for_target.py +++ b/sdk/python/pulumi_aws/organizations/get_policies_for_target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/organizations/get_policy.py b/sdk/python/pulumi_aws/organizations/get_policy.py index 02e6efc47f4..cf88d8f96d4 100644 --- a/sdk/python/pulumi_aws/organizations/get_policy.py +++ b/sdk/python/pulumi_aws/organizations/get_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/organizations/get_resource_tags.py b/sdk/python/pulumi_aws/organizations/get_resource_tags.py index 5c1656e3721..3c6fda21ee8 100644 --- a/sdk/python/pulumi_aws/organizations/get_resource_tags.py +++ b/sdk/python/pulumi_aws/organizations/get_resource_tags.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/organizations/organization.py b/sdk/python/pulumi_aws/organizations/organization.py index 2ca5b8f07e4..31c2e719184 100644 --- a/sdk/python/pulumi_aws/organizations/organization.py +++ b/sdk/python/pulumi_aws/organizations/organization.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,12 +25,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_policy_types: List of Organizations policy types to enable in the Organization Root. Organization must have `feature_set` set to `ALL`. For additional information about valid policy types (e.g., `AISERVICES_OPT_OUT_POLICY`, `BACKUP_POLICY`, `SERVICE_CONTROL_POLICY`, and `TAG_POLICY`), see the [AWS Organizations API Reference](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnablePolicyType.html). :param pulumi.Input[str] feature_set: Specify "ALL" (default) or "CONSOLIDATED_BILLING". """ + OrganizationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_service_access_principals=aws_service_access_principals, + enabled_policy_types=enabled_policy_types, + feature_set=feature_set, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_service_access_principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enabled_policy_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + feature_set: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_service_access_principals is None and 'awsServiceAccessPrincipals' in kwargs: + aws_service_access_principals = kwargs['awsServiceAccessPrincipals'] + if enabled_policy_types is None and 'enabledPolicyTypes' in kwargs: + enabled_policy_types = kwargs['enabledPolicyTypes'] + if feature_set is None and 'featureSet' in kwargs: + feature_set = kwargs['featureSet'] + if aws_service_access_principals is not None: - pulumi.set(__self__, "aws_service_access_principals", aws_service_access_principals) + _setter("aws_service_access_principals", aws_service_access_principals) if enabled_policy_types is not None: - pulumi.set(__self__, "enabled_policy_types", enabled_policy_types) + _setter("enabled_policy_types", enabled_policy_types) if feature_set is not None: - pulumi.set(__self__, "feature_set", feature_set) + _setter("feature_set", feature_set) @property @pulumi.getter(name="awsServiceAccessPrincipals") @@ -95,26 +116,69 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['OrganizationNonMasterAccountArgs']]] non_master_accounts: List of organization accounts excluding the master account. For a list including the master account, see the `accounts` attribute. All elements have these attributes: :param pulumi.Input[Sequence[pulumi.Input['OrganizationRootArgs']]] roots: List of organization roots. All elements have these attributes: """ + _OrganizationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts=accounts, + arn=arn, + aws_service_access_principals=aws_service_access_principals, + enabled_policy_types=enabled_policy_types, + feature_set=feature_set, + master_account_arn=master_account_arn, + master_account_email=master_account_email, + master_account_id=master_account_id, + non_master_accounts=non_master_accounts, + roots=roots, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationAccountArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + aws_service_access_principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enabled_policy_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + feature_set: Optional[pulumi.Input[str]] = None, + master_account_arn: Optional[pulumi.Input[str]] = None, + master_account_email: Optional[pulumi.Input[str]] = None, + master_account_id: Optional[pulumi.Input[str]] = None, + non_master_accounts: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationNonMasterAccountArgs']]]] = None, + roots: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationRootArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_service_access_principals is None and 'awsServiceAccessPrincipals' in kwargs: + aws_service_access_principals = kwargs['awsServiceAccessPrincipals'] + if enabled_policy_types is None and 'enabledPolicyTypes' in kwargs: + enabled_policy_types = kwargs['enabledPolicyTypes'] + if feature_set is None and 'featureSet' in kwargs: + feature_set = kwargs['featureSet'] + if master_account_arn is None and 'masterAccountArn' in kwargs: + master_account_arn = kwargs['masterAccountArn'] + if master_account_email is None and 'masterAccountEmail' in kwargs: + master_account_email = kwargs['masterAccountEmail'] + if master_account_id is None and 'masterAccountId' in kwargs: + master_account_id = kwargs['masterAccountId'] + if non_master_accounts is None and 'nonMasterAccounts' in kwargs: + non_master_accounts = kwargs['nonMasterAccounts'] + if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_service_access_principals is not None: - pulumi.set(__self__, "aws_service_access_principals", aws_service_access_principals) + _setter("aws_service_access_principals", aws_service_access_principals) if enabled_policy_types is not None: - pulumi.set(__self__, "enabled_policy_types", enabled_policy_types) + _setter("enabled_policy_types", enabled_policy_types) if feature_set is not None: - pulumi.set(__self__, "feature_set", feature_set) + _setter("feature_set", feature_set) if master_account_arn is not None: - pulumi.set(__self__, "master_account_arn", master_account_arn) + _setter("master_account_arn", master_account_arn) if master_account_email is not None: - pulumi.set(__self__, "master_account_email", master_account_email) + _setter("master_account_email", master_account_email) if master_account_id is not None: - pulumi.set(__self__, "master_account_id", master_account_id) + _setter("master_account_id", master_account_id) if non_master_accounts is not None: - pulumi.set(__self__, "non_master_accounts", non_master_accounts) + _setter("non_master_accounts", non_master_accounts) if roots is not None: - pulumi.set(__self__, "roots", roots) + _setter("roots", roots) @property @pulumi.getter @@ -326,6 +390,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/organizations/organizational_unit.py b/sdk/python/pulumi_aws/organizations/organizational_unit.py index 2354caf3229..9d433805698 100644 --- a/sdk/python/pulumi_aws/organizations/organizational_unit.py +++ b/sdk/python/pulumi_aws/organizations/organizational_unit.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name for the organizational unit :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. """ - pulumi.set(__self__, "parent_id", parent_id) + OrganizationalUnitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parent_id=parent_id, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parent_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parent_id is None and 'parentId' in kwargs: + parent_id = kwargs['parentId'] + if parent_id is None: + raise TypeError("Missing 'parent_id' argument") + + _setter("parent_id", parent_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="parentId") @@ -86,21 +105,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _OrganizationalUnitState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts=accounts, + arn=arn, + name=name, + parent_id=parent_id, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationalUnitAccountArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parent_id is None and 'parentId' in kwargs: + parent_id = kwargs['parentId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_id is not None: - pulumi.set(__self__, "parent_id", parent_id) + _setter("parent_id", parent_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -249,6 +293,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationalUnitArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/organizations/outputs.py b/sdk/python/pulumi_aws/organizations/outputs.py index e74f607c055..1d19cf3d591 100644 --- a/sdk/python/pulumi_aws/organizations/outputs.py +++ b/sdk/python/pulumi_aws/organizations/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -42,16 +42,35 @@ def __init__(__self__, *, :param str name: The name of the policy type :param str status: The status of the policy type as it relates to the associated root """ + OrganizationAccount._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + email: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -109,16 +128,35 @@ def __init__(__self__, *, :param str name: The name of the policy type :param str status: The status of the policy type as it relates to the associated root """ + OrganizationNonMasterAccount._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + email: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -191,14 +229,33 @@ def __init__(__self__, *, :param str name: The name of the policy type :param Sequence['OrganizationRootPolicyTypeArgs'] policy_types: List of policy types enabled for this root. All elements have these attributes: """ + OrganizationRoot._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + policy_types=policy_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + policy_types: Optional[Sequence['outputs.OrganizationRootPolicyType']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_types is None and 'policyTypes' in kwargs: + policy_types = kwargs['policyTypes'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy_types is not None: - pulumi.set(__self__, "policy_types", policy_types) + _setter("policy_types", policy_types) @property @pulumi.getter @@ -241,10 +298,23 @@ def __init__(__self__, *, """ :param str status: The status of the policy type as it relates to the associated root """ + OrganizationRootPolicyType._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -273,14 +343,31 @@ def __init__(__self__, *, :param str id: Identifier of the organization unit :param str name: The name for the organizational unit """ + OrganizationalUnitAccount._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + email: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -336,14 +423,61 @@ def __init__(__self__, *, :param str name: The friendly name of the delegated administrator's account. :param str status: The status of the delegated administrator's account in the organization. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "delegation_enabled_date", delegation_enabled_date) - pulumi.set(__self__, "email", email) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "joined_method", joined_method) - pulumi.set(__self__, "joined_timestamp", joined_timestamp) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "status", status) + GetDelegatedAdministratorsDelegatedAdministratorResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + delegation_enabled_date=delegation_enabled_date, + email=email, + id=id, + joined_method=joined_method, + joined_timestamp=joined_timestamp, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + delegation_enabled_date: Optional[str] = None, + email: Optional[str] = None, + id: Optional[str] = None, + joined_method: Optional[str] = None, + joined_timestamp: Optional[str] = None, + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if delegation_enabled_date is None and 'delegationEnabledDate' in kwargs: + delegation_enabled_date = kwargs['delegationEnabledDate'] + if delegation_enabled_date is None: + raise TypeError("Missing 'delegation_enabled_date' argument") + if email is None: + raise TypeError("Missing 'email' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if joined_method is None and 'joinedMethod' in kwargs: + joined_method = kwargs['joinedMethod'] + if joined_method is None: + raise TypeError("Missing 'joined_method' argument") + if joined_timestamp is None and 'joinedTimestamp' in kwargs: + joined_timestamp = kwargs['joinedTimestamp'] + if joined_timestamp is None: + raise TypeError("Missing 'joined_timestamp' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("arn", arn) + _setter("delegation_enabled_date", delegation_enabled_date) + _setter("email", email) + _setter("id", id) + _setter("joined_method", joined_method) + _setter("joined_timestamp", joined_timestamp) + _setter("name", name) + _setter("status", status) @property @pulumi.getter @@ -419,8 +553,29 @@ def __init__(__self__, *, :param str delegation_enabled_date: The date that the account became a delegated administrator for this service. :param str service_principal: The name of an AWS service that can request an operation for the specified service. """ - pulumi.set(__self__, "delegation_enabled_date", delegation_enabled_date) - pulumi.set(__self__, "service_principal", service_principal) + GetDelegatedServicesDelegatedServiceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + delegation_enabled_date=delegation_enabled_date, + service_principal=service_principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delegation_enabled_date: Optional[str] = None, + service_principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delegation_enabled_date is None and 'delegationEnabledDate' in kwargs: + delegation_enabled_date = kwargs['delegationEnabledDate'] + if delegation_enabled_date is None: + raise TypeError("Missing 'delegation_enabled_date' argument") + if service_principal is None and 'servicePrincipal' in kwargs: + service_principal = kwargs['servicePrincipal'] + if service_principal is None: + raise TypeError("Missing 'service_principal' argument") + + _setter("delegation_enabled_date", delegation_enabled_date) + _setter("service_principal", service_principal) @property @pulumi.getter(name="delegationEnabledDate") @@ -454,11 +609,40 @@ def __init__(__self__, *, :param str name: The name of the policy type :param str status: The status of the policy type as it relates to the associated root """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "email", email) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "status", status) + GetOrganizationAccountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + email: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if email is None: + raise TypeError("Missing 'email' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("arn", arn) + _setter("email", email) + _setter("id", id) + _setter("name", name) + _setter("status", status) @property @pulumi.getter @@ -516,11 +700,40 @@ def __init__(__self__, *, :param str name: The name of the policy type :param str status: The status of the policy type as it relates to the associated root """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "email", email) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "status", status) + GetOrganizationNonMasterAccountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + email: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if email is None: + raise TypeError("Missing 'email' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("arn", arn) + _setter("email", email) + _setter("id", id) + _setter("name", name) + _setter("status", status) @property @pulumi.getter @@ -576,10 +789,37 @@ def __init__(__self__, *, :param str name: The name of the policy type :param Sequence['GetOrganizationRootPolicyTypeArgs'] policy_types: List of policy types enabled for this root. All elements have these attributes: """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "policy_types", policy_types) + GetOrganizationRootResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + policy_types=policy_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + policy_types: Optional[Sequence['outputs.GetOrganizationRootPolicyTypeResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if policy_types is None and 'policyTypes' in kwargs: + policy_types = kwargs['policyTypes'] + if policy_types is None: + raise TypeError("Missing 'policy_types' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) + _setter("policy_types", policy_types) @property @pulumi.getter @@ -622,8 +862,25 @@ def __init__(__self__, *, """ :param str status: The status of the policy type as it relates to the associated root """ - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "type", type) + GetOrganizationRootPolicyTypeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("status", status) + _setter("type", type) @property @pulumi.getter @@ -654,11 +911,40 @@ def __init__(__self__, *, :param str name: The friendly name of the account. :param str status: The status of the account in the organization. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "email", email) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "status", status) + GetOrganizationalUnitChildAccountsAccountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + email: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if email is None: + raise TypeError("Missing 'email' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("arn", arn) + _setter("email", email) + _setter("id", id) + _setter("name", name) + _setter("status", status) @property @pulumi.getter @@ -716,11 +1002,40 @@ def __init__(__self__, *, :param str name: The friendly name of the account. :param str status: The status of the account in the organization. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "email", email) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "status", status) + GetOrganizationalUnitDescendantAccountsAccountResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + id=id, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + email: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if email is None: + raise TypeError("Missing 'email' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("arn", arn) + _setter("email", email) + _setter("id", id) + _setter("name", name) + _setter("status", status) @property @pulumi.getter @@ -774,9 +1089,30 @@ def __init__(__self__, *, :param str id: Parent identifier of the organizational units. :param str name: Name of the organizational unit """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) + GetOrganizationalUnitsChildResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + id=id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("arn", arn) + _setter("id", id) + _setter("name", name) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/organizations/policy.py b/sdk/python/pulumi_aws/organizations/policy.py index fb0625b5226..b880574b9c0 100644 --- a/sdk/python/pulumi_aws/organizations/policy.py +++ b/sdk/python/pulumi_aws/organizations/policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PolicyArgs', 'Policy'] @@ -29,17 +29,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] type: The type of policy to create. Valid values are `AISERVICES_OPT_OUT_POLICY`, `BACKUP_POLICY`, `SERVICE_CONTROL_POLICY` (SCP), and `TAG_POLICY`. Defaults to `SERVICE_CONTROL_POLICY`. """ - pulumi.set(__self__, "content", content) + PolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + description=description, + name=name, + skip_destroy=skip_destroy, + tags=tags, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + + _setter("content", content) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -136,25 +161,54 @@ def __init__(__self__, *, :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] type: The type of policy to create. Valid values are `AISERVICES_OPT_OUT_POLICY`, `BACKUP_POLICY`, `SERVICE_CONTROL_POLICY` (SCP), and `TAG_POLICY`. Defaults to `SERVICE_CONTROL_POLICY`. """ + _PolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + content=content, + description=description, + name=name, + skip_destroy=skip_destroy, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -343,6 +397,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/organizations/policy_attachment.py b/sdk/python/pulumi_aws/organizations/policy_attachment.py index 0f747a464dc..d29ffb02f53 100644 --- a/sdk/python/pulumi_aws/organizations/policy_attachment.py +++ b/sdk/python/pulumi_aws/organizations/policy_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PolicyAttachmentArgs', 'PolicyAttachment'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] target_id: The unique identifier (ID) of the root, organizational unit, or account number that you want to attach the policy to. :param pulumi.Input[bool] skip_destroy: If set to `true`, destroy will **not** detach the policy and instead just remove the resource from state. This can be useful in situations where the attachment must be preserved to meet the AWS minimum requirement of 1 attached policy. """ - pulumi.set(__self__, "policy_id", policy_id) - pulumi.set(__self__, "target_id", target_id) + PolicyAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_id=policy_id, + target_id=target_id, + skip_destroy=skip_destroy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_id: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_id is None and 'policyId' in kwargs: + policy_id = kwargs['policyId'] + if policy_id is None: + raise TypeError("Missing 'policy_id' argument") + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if target_id is None: + raise TypeError("Missing 'target_id' argument") + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + + _setter("policy_id", policy_id) + _setter("target_id", target_id) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) @property @pulumi.getter(name="policyId") @@ -77,12 +102,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] skip_destroy: If set to `true`, destroy will **not** detach the policy and instead just remove the resource from state. This can be useful in situations where the attachment must be preserved to meet the AWS minimum requirement of 1 attached policy. :param pulumi.Input[str] target_id: The unique identifier (ID) of the root, organizational unit, or account number that you want to attach the policy to. """ + _PolicyAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_id=policy_id, + skip_destroy=skip_destroy, + target_id=target_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_id: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + target_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_id is None and 'policyId' in kwargs: + policy_id = kwargs['policyId'] + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if policy_id is not None: - pulumi.set(__self__, "policy_id", policy_id) + _setter("policy_id", policy_id) if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if target_id is not None: - pulumi.set(__self__, "target_id", target_id) + _setter("target_id", target_id) @property @pulumi.getter(name="policyId") @@ -242,6 +288,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PolicyAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/organizations/resource_policy.py b/sdk/python/pulumi_aws/organizations/resource_policy.py index fdcaa0ec52a..cb31dc89442 100644 --- a/sdk/python/pulumi_aws/organizations/resource_policy.py +++ b/sdk/python/pulumi_aws/organizations/resource_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourcePolicyArgs', 'ResourcePolicy'] @@ -21,9 +21,24 @@ def __init__(__self__, *, :param pulumi.Input[str] content: Content for the resource policy. The text must be correctly formatted JSON that complies with the syntax for the resource policy's type. See the [_AWS Organizations User Guide_](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_delegate_examples.html) for examples. :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. """ - pulumi.set(__self__, "content", content) + ResourcePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + + _setter("content", content) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -64,17 +79,36 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ResourcePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + content=content, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -259,6 +293,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourcePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/outposts/get_asset.py b/sdk/python/pulumi_aws/outposts/get_asset.py index 05aa88b8a9d..b03df570194 100644 --- a/sdk/python/pulumi_aws/outposts/get_asset.py +++ b/sdk/python/pulumi_aws/outposts/get_asset.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/outposts/get_assets.py b/sdk/python/pulumi_aws/outposts/get_assets.py index 9d8ea0f1c9b..0e2fd7c15b0 100644 --- a/sdk/python/pulumi_aws/outposts/get_assets.py +++ b/sdk/python/pulumi_aws/outposts/get_assets.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/outposts/get_outpost.py b/sdk/python/pulumi_aws/outposts/get_outpost.py index 86f624ffc9c..49ccedf81a0 100644 --- a/sdk/python/pulumi_aws/outposts/get_outpost.py +++ b/sdk/python/pulumi_aws/outposts/get_outpost.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/outposts/get_outpost_instance_type.py b/sdk/python/pulumi_aws/outposts/get_outpost_instance_type.py index 9ae1cabbfa2..9f42da7d9e5 100644 --- a/sdk/python/pulumi_aws/outposts/get_outpost_instance_type.py +++ b/sdk/python/pulumi_aws/outposts/get_outpost_instance_type.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/outposts/get_outpost_instance_types.py b/sdk/python/pulumi_aws/outposts/get_outpost_instance_types.py index 5b9179bd994..363291d6f44 100644 --- a/sdk/python/pulumi_aws/outposts/get_outpost_instance_types.py +++ b/sdk/python/pulumi_aws/outposts/get_outpost_instance_types.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/outposts/get_outposts.py b/sdk/python/pulumi_aws/outposts/get_outposts.py index aea94e05780..15c3854eb0a 100644 --- a/sdk/python/pulumi_aws/outposts/get_outposts.py +++ b/sdk/python/pulumi_aws/outposts/get_outposts.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/outposts/get_site.py b/sdk/python/pulumi_aws/outposts/get_site.py index 6a25cfee159..ac3fccdacb4 100644 --- a/sdk/python/pulumi_aws/outposts/get_site.py +++ b/sdk/python/pulumi_aws/outposts/get_site.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/outposts/get_sites.py b/sdk/python/pulumi_aws/outposts/get_sites.py index 84e919b125a..ff9886c5ed0 100644 --- a/sdk/python/pulumi_aws/outposts/get_sites.py +++ b/sdk/python/pulumi_aws/outposts/get_sites.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetSitesResult', 'AwaitableGetSitesResult', 'get_sites', + 'get_sites_output', ] @pulumi.output_type @@ -75,3 +76,20 @@ def get_sites(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSitesR return AwaitableGetSitesResult( id=pulumi.get(__ret__, 'id'), ids=pulumi.get(__ret__, 'ids')) + + +@_utilities.lift_output_func(get_sites) +def get_sites_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSitesResult]: + """ + Provides details about multiple Outposts Sites. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + all = aws.outposts.get_sites() + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/outputs.py b/sdk/python/pulumi_aws/outputs.py index a496cafb986..cb1dc2d4bea 100644 --- a/sdk/python/pulumi_aws/outputs.py +++ b/sdk/python/pulumi_aws/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities from ._enums import * @@ -25,8 +25,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeAvailabilityZones API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAvailabilityZoneFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -54,8 +71,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [EC2 DescribeAvailabilityZones API Reference](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetAvailabilityZonesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -83,8 +117,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [describe-regions AWS CLI Reference][1]. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetRegionsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/pinpoint/_inputs.py b/sdk/python/pulumi_aws/pinpoint/_inputs.py index 6428f2f3090..59fa714c209 100644 --- a/sdk/python/pulumi_aws/pinpoint/_inputs.py +++ b/sdk/python/pulumi_aws/pinpoint/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -26,12 +26,31 @@ def __init__(__self__, *, :param pulumi.Input[str] mode: What mode Lambda should be invoked in. Valid values for this parameter are `DELIVERY`, `FILTER`. :param pulumi.Input[str] web_url: Web URL to call for hook. If the URL has authentication specified it will be added as authentication to the request. Conflicts with `lambda_function_name` """ + AppCampaignHookArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_function_name=lambda_function_name, + mode=mode, + web_url=web_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_function_name: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + web_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_function_name is None and 'lambdaFunctionName' in kwargs: + lambda_function_name = kwargs['lambdaFunctionName'] + if web_url is None and 'webUrl' in kwargs: + web_url = kwargs['webUrl'] + if lambda_function_name is not None: - pulumi.set(__self__, "lambda_function_name", lambda_function_name) + _setter("lambda_function_name", lambda_function_name) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if web_url is not None: - pulumi.set(__self__, "web_url", web_url) + _setter("web_url", web_url) @property @pulumi.getter(name="lambdaFunctionName") @@ -83,14 +102,35 @@ def __init__(__self__, *, :param pulumi.Input[int] messages_per_second: The number of messages that the campaign can send per second. The minimum value is 50, and the maximum is 20000. :param pulumi.Input[int] total: The maximum total number of messages that the campaign can send. """ + AppLimitsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + daily=daily, + maximum_duration=maximum_duration, + messages_per_second=messages_per_second, + total=total, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + daily: Optional[pulumi.Input[int]] = None, + maximum_duration: Optional[pulumi.Input[int]] = None, + messages_per_second: Optional[pulumi.Input[int]] = None, + total: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_duration is None and 'maximumDuration' in kwargs: + maximum_duration = kwargs['maximumDuration'] + if messages_per_second is None and 'messagesPerSecond' in kwargs: + messages_per_second = kwargs['messagesPerSecond'] + if daily is not None: - pulumi.set(__self__, "daily", daily) + _setter("daily", daily) if maximum_duration is not None: - pulumi.set(__self__, "maximum_duration", maximum_duration) + _setter("maximum_duration", maximum_duration) if messages_per_second is not None: - pulumi.set(__self__, "messages_per_second", messages_per_second) + _setter("messages_per_second", messages_per_second) if total is not None: - pulumi.set(__self__, "total", total) + _setter("total", total) @property @pulumi.getter @@ -150,10 +190,23 @@ def __init__(__self__, *, :param pulumi.Input[str] end: The default end time for quiet time in ISO 8601 format. Required if `start` is set :param pulumi.Input[str] start: The default start time for quiet time in ISO 8601 format. Required if `end` is set """ + AppQuietTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/pinpoint/adm_channel.py b/sdk/python/pulumi_aws/pinpoint/adm_channel.py index 04e60372c2f..e275b41a921 100644 --- a/sdk/python/pulumi_aws/pinpoint/adm_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/adm_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AdmChannelArgs', 'AdmChannel'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] client_secret: Client Secret (part of OAuth Credentials) obtained via Amazon Developer Account. :param pulumi.Input[bool] enabled: Specifies whether to enable the channel. Defaults to `true`. """ - pulumi.set(__self__, "application_id", application_id) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) + AdmChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + client_id=client_id, + client_secret=client_secret, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + + _setter("application_id", application_id) + _setter("client_id", client_id) + _setter("client_secret", client_secret) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="applicationId") @@ -94,14 +123,37 @@ def __init__(__self__, *, :param pulumi.Input[str] client_secret: Client Secret (part of OAuth Credentials) obtained via Amazon Developer Account. :param pulumi.Input[bool] enabled: Specifies whether to enable the channel. Defaults to `true`. """ + _AdmChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + client_id=client_id, + client_secret=client_secret, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if client_secret is not None: - pulumi.set(__self__, "client_secret", client_secret) + _setter("client_secret", client_secret) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="applicationId") @@ -237,6 +289,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AdmChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pinpoint/apns_channel.py b/sdk/python/pulumi_aws/pinpoint/apns_channel.py index 510dc1130ec..08e173d3ebf 100644 --- a/sdk/python/pulumi_aws/pinpoint/apns_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/apns_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApnsChannelArgs', 'ApnsChannel'] @@ -44,23 +44,66 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key: The `.p8` file that you download from your Apple developer account when you create an authentication key. :param pulumi.Input[str] token_key_id: The ID assigned to your signing key. To find this value, choose Certificates, IDs & Profiles, and choose your key in the Keys section. """ - pulumi.set(__self__, "application_id", application_id) + ApnsChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + bundle_id=bundle_id, + certificate=certificate, + default_authentication_method=default_authentication_method, + enabled=enabled, + private_key=private_key, + team_id=team_id, + token_key=token_key, + token_key_id=token_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + default_authentication_method: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + private_key: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + token_key: Optional[pulumi.Input[str]] = None, + token_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if default_authentication_method is None and 'defaultAuthenticationMethod' in kwargs: + default_authentication_method = kwargs['defaultAuthenticationMethod'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if team_id is None and 'teamId' in kwargs: + team_id = kwargs['teamId'] + if token_key is None and 'tokenKey' in kwargs: + token_key = kwargs['tokenKey'] + if token_key_id is None and 'tokenKeyId' in kwargs: + token_key_id = kwargs['tokenKeyId'] + + _setter("application_id", application_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if default_authentication_method is not None: - pulumi.set(__self__, "default_authentication_method", default_authentication_method) + _setter("default_authentication_method", default_authentication_method) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if team_id is not None: - pulumi.set(__self__, "team_id", team_id) + _setter("team_id", team_id) if token_key is not None: - pulumi.set(__self__, "token_key", token_key) + _setter("token_key", token_key) if token_key_id is not None: - pulumi.set(__self__, "token_key_id", token_key_id) + _setter("token_key_id", token_key_id) @property @pulumi.getter(name="applicationId") @@ -213,24 +256,65 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key: The `.p8` file that you download from your Apple developer account when you create an authentication key. :param pulumi.Input[str] token_key_id: The ID assigned to your signing key. To find this value, choose Certificates, IDs & Profiles, and choose your key in the Keys section. """ + _ApnsChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + bundle_id=bundle_id, + certificate=certificate, + default_authentication_method=default_authentication_method, + enabled=enabled, + private_key=private_key, + team_id=team_id, + token_key=token_key, + token_key_id=token_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + default_authentication_method: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + private_key: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + token_key: Optional[pulumi.Input[str]] = None, + token_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if default_authentication_method is None and 'defaultAuthenticationMethod' in kwargs: + default_authentication_method = kwargs['defaultAuthenticationMethod'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if team_id is None and 'teamId' in kwargs: + team_id = kwargs['teamId'] + if token_key is None and 'tokenKey' in kwargs: + token_key = kwargs['tokenKey'] + if token_key_id is None and 'tokenKeyId' in kwargs: + token_key_id = kwargs['tokenKeyId'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if default_authentication_method is not None: - pulumi.set(__self__, "default_authentication_method", default_authentication_method) + _setter("default_authentication_method", default_authentication_method) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if team_id is not None: - pulumi.set(__self__, "team_id", team_id) + _setter("team_id", team_id) if token_key is not None: - pulumi.set(__self__, "token_key", token_key) + _setter("token_key", token_key) if token_key_id is not None: - pulumi.set(__self__, "token_key_id", token_key_id) + _setter("token_key_id", token_key_id) @property @pulumi.getter(name="applicationId") @@ -452,6 +536,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApnsChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pinpoint/apns_sandbox_channel.py b/sdk/python/pulumi_aws/pinpoint/apns_sandbox_channel.py index 6bc4f6a3d84..4cd5ecc0e27 100644 --- a/sdk/python/pulumi_aws/pinpoint/apns_sandbox_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/apns_sandbox_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApnsSandboxChannelArgs', 'ApnsSandboxChannel'] @@ -44,23 +44,66 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key: The `.p8` file that you download from your Apple developer account when you create an authentication key. :param pulumi.Input[str] token_key_id: The ID assigned to your signing key. To find this value, choose Certificates, IDs & Profiles, and choose your key in the Keys section. """ - pulumi.set(__self__, "application_id", application_id) + ApnsSandboxChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + bundle_id=bundle_id, + certificate=certificate, + default_authentication_method=default_authentication_method, + enabled=enabled, + private_key=private_key, + team_id=team_id, + token_key=token_key, + token_key_id=token_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + default_authentication_method: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + private_key: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + token_key: Optional[pulumi.Input[str]] = None, + token_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if default_authentication_method is None and 'defaultAuthenticationMethod' in kwargs: + default_authentication_method = kwargs['defaultAuthenticationMethod'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if team_id is None and 'teamId' in kwargs: + team_id = kwargs['teamId'] + if token_key is None and 'tokenKey' in kwargs: + token_key = kwargs['tokenKey'] + if token_key_id is None and 'tokenKeyId' in kwargs: + token_key_id = kwargs['tokenKeyId'] + + _setter("application_id", application_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if default_authentication_method is not None: - pulumi.set(__self__, "default_authentication_method", default_authentication_method) + _setter("default_authentication_method", default_authentication_method) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if team_id is not None: - pulumi.set(__self__, "team_id", team_id) + _setter("team_id", team_id) if token_key is not None: - pulumi.set(__self__, "token_key", token_key) + _setter("token_key", token_key) if token_key_id is not None: - pulumi.set(__self__, "token_key_id", token_key_id) + _setter("token_key_id", token_key_id) @property @pulumi.getter(name="applicationId") @@ -213,24 +256,65 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key: The `.p8` file that you download from your Apple developer account when you create an authentication key. :param pulumi.Input[str] token_key_id: The ID assigned to your signing key. To find this value, choose Certificates, IDs & Profiles, and choose your key in the Keys section. """ + _ApnsSandboxChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + bundle_id=bundle_id, + certificate=certificate, + default_authentication_method=default_authentication_method, + enabled=enabled, + private_key=private_key, + team_id=team_id, + token_key=token_key, + token_key_id=token_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + default_authentication_method: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + private_key: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + token_key: Optional[pulumi.Input[str]] = None, + token_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if default_authentication_method is None and 'defaultAuthenticationMethod' in kwargs: + default_authentication_method = kwargs['defaultAuthenticationMethod'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if team_id is None and 'teamId' in kwargs: + team_id = kwargs['teamId'] + if token_key is None and 'tokenKey' in kwargs: + token_key = kwargs['tokenKey'] + if token_key_id is None and 'tokenKeyId' in kwargs: + token_key_id = kwargs['tokenKeyId'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if default_authentication_method is not None: - pulumi.set(__self__, "default_authentication_method", default_authentication_method) + _setter("default_authentication_method", default_authentication_method) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if team_id is not None: - pulumi.set(__self__, "team_id", team_id) + _setter("team_id", team_id) if token_key is not None: - pulumi.set(__self__, "token_key", token_key) + _setter("token_key", token_key) if token_key_id is not None: - pulumi.set(__self__, "token_key_id", token_key_id) + _setter("token_key_id", token_key_id) @property @pulumi.getter(name="applicationId") @@ -452,6 +536,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApnsSandboxChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pinpoint/apns_voip_channel.py b/sdk/python/pulumi_aws/pinpoint/apns_voip_channel.py index 879e445029b..f9d5f46a77e 100644 --- a/sdk/python/pulumi_aws/pinpoint/apns_voip_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/apns_voip_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApnsVoipChannelArgs', 'ApnsVoipChannel'] @@ -44,23 +44,66 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key: The `.p8` file that you download from your Apple developer account when you create an authentication key. :param pulumi.Input[str] token_key_id: The ID assigned to your signing key. To find this value, choose Certificates, IDs & Profiles, and choose your key in the Keys section. """ - pulumi.set(__self__, "application_id", application_id) + ApnsVoipChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + bundle_id=bundle_id, + certificate=certificate, + default_authentication_method=default_authentication_method, + enabled=enabled, + private_key=private_key, + team_id=team_id, + token_key=token_key, + token_key_id=token_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + default_authentication_method: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + private_key: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + token_key: Optional[pulumi.Input[str]] = None, + token_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if default_authentication_method is None and 'defaultAuthenticationMethod' in kwargs: + default_authentication_method = kwargs['defaultAuthenticationMethod'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if team_id is None and 'teamId' in kwargs: + team_id = kwargs['teamId'] + if token_key is None and 'tokenKey' in kwargs: + token_key = kwargs['tokenKey'] + if token_key_id is None and 'tokenKeyId' in kwargs: + token_key_id = kwargs['tokenKeyId'] + + _setter("application_id", application_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if default_authentication_method is not None: - pulumi.set(__self__, "default_authentication_method", default_authentication_method) + _setter("default_authentication_method", default_authentication_method) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if team_id is not None: - pulumi.set(__self__, "team_id", team_id) + _setter("team_id", team_id) if token_key is not None: - pulumi.set(__self__, "token_key", token_key) + _setter("token_key", token_key) if token_key_id is not None: - pulumi.set(__self__, "token_key_id", token_key_id) + _setter("token_key_id", token_key_id) @property @pulumi.getter(name="applicationId") @@ -213,24 +256,65 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key: The `.p8` file that you download from your Apple developer account when you create an authentication key. :param pulumi.Input[str] token_key_id: The ID assigned to your signing key. To find this value, choose Certificates, IDs & Profiles, and choose your key in the Keys section. """ + _ApnsVoipChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + bundle_id=bundle_id, + certificate=certificate, + default_authentication_method=default_authentication_method, + enabled=enabled, + private_key=private_key, + team_id=team_id, + token_key=token_key, + token_key_id=token_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + default_authentication_method: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + private_key: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + token_key: Optional[pulumi.Input[str]] = None, + token_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if default_authentication_method is None and 'defaultAuthenticationMethod' in kwargs: + default_authentication_method = kwargs['defaultAuthenticationMethod'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if team_id is None and 'teamId' in kwargs: + team_id = kwargs['teamId'] + if token_key is None and 'tokenKey' in kwargs: + token_key = kwargs['tokenKey'] + if token_key_id is None and 'tokenKeyId' in kwargs: + token_key_id = kwargs['tokenKeyId'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if default_authentication_method is not None: - pulumi.set(__self__, "default_authentication_method", default_authentication_method) + _setter("default_authentication_method", default_authentication_method) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if team_id is not None: - pulumi.set(__self__, "team_id", team_id) + _setter("team_id", team_id) if token_key is not None: - pulumi.set(__self__, "token_key", token_key) + _setter("token_key", token_key) if token_key_id is not None: - pulumi.set(__self__, "token_key_id", token_key_id) + _setter("token_key_id", token_key_id) @property @pulumi.getter(name="applicationId") @@ -452,6 +536,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApnsVoipChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pinpoint/apns_voip_sandbox_channel.py b/sdk/python/pulumi_aws/pinpoint/apns_voip_sandbox_channel.py index bc3c5b73989..6b3b4f860c3 100644 --- a/sdk/python/pulumi_aws/pinpoint/apns_voip_sandbox_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/apns_voip_sandbox_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ApnsVoipSandboxChannelArgs', 'ApnsVoipSandboxChannel'] @@ -44,23 +44,66 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key: The `.p8` file that you download from your Apple developer account when you create an authentication key. :param pulumi.Input[str] token_key_id: The ID assigned to your signing key. To find this value, choose Certificates, IDs & Profiles, and choose your key in the Keys section. """ - pulumi.set(__self__, "application_id", application_id) + ApnsVoipSandboxChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + bundle_id=bundle_id, + certificate=certificate, + default_authentication_method=default_authentication_method, + enabled=enabled, + private_key=private_key, + team_id=team_id, + token_key=token_key, + token_key_id=token_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + default_authentication_method: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + private_key: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + token_key: Optional[pulumi.Input[str]] = None, + token_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if default_authentication_method is None and 'defaultAuthenticationMethod' in kwargs: + default_authentication_method = kwargs['defaultAuthenticationMethod'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if team_id is None and 'teamId' in kwargs: + team_id = kwargs['teamId'] + if token_key is None and 'tokenKey' in kwargs: + token_key = kwargs['tokenKey'] + if token_key_id is None and 'tokenKeyId' in kwargs: + token_key_id = kwargs['tokenKeyId'] + + _setter("application_id", application_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if default_authentication_method is not None: - pulumi.set(__self__, "default_authentication_method", default_authentication_method) + _setter("default_authentication_method", default_authentication_method) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if team_id is not None: - pulumi.set(__self__, "team_id", team_id) + _setter("team_id", team_id) if token_key is not None: - pulumi.set(__self__, "token_key", token_key) + _setter("token_key", token_key) if token_key_id is not None: - pulumi.set(__self__, "token_key_id", token_key_id) + _setter("token_key_id", token_key_id) @property @pulumi.getter(name="applicationId") @@ -213,24 +256,65 @@ def __init__(__self__, *, :param pulumi.Input[str] token_key: The `.p8` file that you download from your Apple developer account when you create an authentication key. :param pulumi.Input[str] token_key_id: The ID assigned to your signing key. To find this value, choose Certificates, IDs & Profiles, and choose your key in the Keys section. """ + _ApnsVoipSandboxChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + bundle_id=bundle_id, + certificate=certificate, + default_authentication_method=default_authentication_method, + enabled=enabled, + private_key=private_key, + team_id=team_id, + token_key=token_key, + token_key_id=token_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + bundle_id: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + default_authentication_method: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + private_key: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + token_key: Optional[pulumi.Input[str]] = None, + token_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if default_authentication_method is None and 'defaultAuthenticationMethod' in kwargs: + default_authentication_method = kwargs['defaultAuthenticationMethod'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if team_id is None and 'teamId' in kwargs: + team_id = kwargs['teamId'] + if token_key is None and 'tokenKey' in kwargs: + token_key = kwargs['tokenKey'] + if token_key_id is None and 'tokenKeyId' in kwargs: + token_key_id = kwargs['tokenKeyId'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if default_authentication_method is not None: - pulumi.set(__self__, "default_authentication_method", default_authentication_method) + _setter("default_authentication_method", default_authentication_method) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if team_id is not None: - pulumi.set(__self__, "team_id", team_id) + _setter("team_id", team_id) if token_key is not None: - pulumi.set(__self__, "token_key", token_key) + _setter("token_key", token_key) if token_key_id is not None: - pulumi.set(__self__, "token_key_id", token_key_id) + _setter("token_key_id", token_key_id) @property @pulumi.getter(name="applicationId") @@ -452,6 +536,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApnsVoipSandboxChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pinpoint/app.py b/sdk/python/pulumi_aws/pinpoint/app.py index 1d221ee25bc..ec4054e963c 100644 --- a/sdk/python/pulumi_aws/pinpoint/app.py +++ b/sdk/python/pulumi_aws/pinpoint/app.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,18 +31,45 @@ def __init__(__self__, *, :param pulumi.Input['AppQuietTimeArgs'] quiet_time: The default quiet time for the app. Each campaign for this app sends no messages during this time unless the campaign overrides the default with a quiet time of its own :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. """ + AppArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + campaign_hook=campaign_hook, + limits=limits, + name=name, + name_prefix=name_prefix, + quiet_time=quiet_time, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + campaign_hook: Optional[pulumi.Input['AppCampaignHookArgs']] = None, + limits: Optional[pulumi.Input['AppLimitsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + quiet_time: Optional[pulumi.Input['AppQuietTimeArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if campaign_hook is None and 'campaignHook' in kwargs: + campaign_hook = kwargs['campaignHook'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if quiet_time is None and 'quietTime' in kwargs: + quiet_time = kwargs['quietTime'] + if campaign_hook is not None: - pulumi.set(__self__, "campaign_hook", campaign_hook) + _setter("campaign_hook", campaign_hook) if limits is not None: - pulumi.set(__self__, "limits", limits) + _setter("limits", limits) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if quiet_time is not None: - pulumi.set(__self__, "quiet_time", quiet_time) + _setter("quiet_time", quiet_time) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="campaignHook") @@ -141,27 +168,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _AppState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + arn=arn, + campaign_hook=campaign_hook, + limits=limits, + name=name, + name_prefix=name_prefix, + quiet_time=quiet_time, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + campaign_hook: Optional[pulumi.Input['AppCampaignHookArgs']] = None, + limits: Optional[pulumi.Input['AppLimitsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + quiet_time: Optional[pulumi.Input['AppQuietTimeArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if campaign_hook is None and 'campaignHook' in kwargs: + campaign_hook = kwargs['campaignHook'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if quiet_time is None and 'quietTime' in kwargs: + quiet_time = kwargs['quietTime'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if campaign_hook is not None: - pulumi.set(__self__, "campaign_hook", campaign_hook) + _setter("campaign_hook", campaign_hook) if limits is not None: - pulumi.set(__self__, "limits", limits) + _setter("limits", limits) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if quiet_time is not None: - pulumi.set(__self__, "quiet_time", quiet_time) + _setter("quiet_time", quiet_time) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="applicationId") @@ -366,6 +430,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AppArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -386,10 +454,13 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = AppArgs.__new__(AppArgs) + campaign_hook = _utilities.configure(campaign_hook, AppCampaignHookArgs, True) __props__.__dict__["campaign_hook"] = campaign_hook + limits = _utilities.configure(limits, AppLimitsArgs, True) __props__.__dict__["limits"] = limits __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix + quiet_time = _utilities.configure(quiet_time, AppQuietTimeArgs, True) __props__.__dict__["quiet_time"] = quiet_time __props__.__dict__["tags"] = tags __props__.__dict__["application_id"] = None diff --git a/sdk/python/pulumi_aws/pinpoint/baidu_channel.py b/sdk/python/pulumi_aws/pinpoint/baidu_channel.py index 52925d11bfc..5316ccc4263 100644 --- a/sdk/python/pulumi_aws/pinpoint/baidu_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/baidu_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BaiduChannelArgs', 'BaiduChannel'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] secret_key: Platform credential Secret key from Baidu. :param pulumi.Input[bool] enabled: Specifies whether to enable the channel. Defaults to `true`. """ - pulumi.set(__self__, "api_key", api_key) - pulumi.set(__self__, "application_id", application_id) - pulumi.set(__self__, "secret_key", secret_key) + BaiduChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + application_id=application_id, + secret_key=secret_key, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[pulumi.Input[str]] = None, + application_id: Optional[pulumi.Input[str]] = None, + secret_key: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if secret_key is None and 'secretKey' in kwargs: + secret_key = kwargs['secretKey'] + if secret_key is None: + raise TypeError("Missing 'secret_key' argument") + + _setter("api_key", api_key) + _setter("application_id", application_id) + _setter("secret_key", secret_key) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="apiKey") @@ -94,14 +123,37 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Specifies whether to enable the channel. Defaults to `true`. :param pulumi.Input[str] secret_key: Platform credential Secret key from Baidu. """ + _BaiduChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + application_id=application_id, + enabled=enabled, + secret_key=secret_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[pulumi.Input[str]] = None, + application_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + secret_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if secret_key is None and 'secretKey' in kwargs: + secret_key = kwargs['secretKey'] + if api_key is not None: - pulumi.set(__self__, "api_key", api_key) + _setter("api_key", api_key) if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if secret_key is not None: - pulumi.set(__self__, "secret_key", secret_key) + _setter("secret_key", secret_key) @property @pulumi.getter(name="apiKey") @@ -235,6 +287,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BaiduChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pinpoint/email_channel.py b/sdk/python/pulumi_aws/pinpoint/email_channel.py index 37044925d40..37293605cee 100644 --- a/sdk/python/pulumi_aws/pinpoint/email_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/email_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EmailChannelArgs', 'EmailChannel'] @@ -29,15 +29,50 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Whether the channel is enabled or disabled. Defaults to `true`. :param pulumi.Input[str] role_arn: The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. """ - pulumi.set(__self__, "application_id", application_id) - pulumi.set(__self__, "from_address", from_address) - pulumi.set(__self__, "identity", identity) + EmailChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + from_address=from_address, + identity=identity, + configuration_set=configuration_set, + enabled=enabled, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + from_address: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input[str]] = None, + configuration_set: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if from_address is None and 'fromAddress' in kwargs: + from_address = kwargs['fromAddress'] + if from_address is None: + raise TypeError("Missing 'from_address' argument") + if identity is None: + raise TypeError("Missing 'identity' argument") + if configuration_set is None and 'configurationSet' in kwargs: + configuration_set = kwargs['configurationSet'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("application_id", application_id) + _setter("from_address", from_address) + _setter("identity", identity) if configuration_set is not None: - pulumi.set(__self__, "configuration_set", configuration_set) + _setter("configuration_set", configuration_set) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="applicationId") @@ -132,20 +167,53 @@ def __init__(__self__, *, :param pulumi.Input[int] messages_per_second: Messages per second that can be sent. :param pulumi.Input[str] role_arn: The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. """ + _EmailChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + configuration_set=configuration_set, + enabled=enabled, + from_address=from_address, + identity=identity, + messages_per_second=messages_per_second, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + configuration_set: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + from_address: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input[str]] = None, + messages_per_second: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if configuration_set is None and 'configurationSet' in kwargs: + configuration_set = kwargs['configurationSet'] + if from_address is None and 'fromAddress' in kwargs: + from_address = kwargs['fromAddress'] + if messages_per_second is None and 'messagesPerSecond' in kwargs: + messages_per_second = kwargs['messagesPerSecond'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if configuration_set is not None: - pulumi.set(__self__, "configuration_set", configuration_set) + _setter("configuration_set", configuration_set) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if from_address is not None: - pulumi.set(__self__, "from_address", from_address) + _setter("from_address", from_address) if identity is not None: - pulumi.set(__self__, "identity", identity) + _setter("identity", identity) if messages_per_second is not None: - pulumi.set(__self__, "messages_per_second", messages_per_second) + _setter("messages_per_second", messages_per_second) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="applicationId") @@ -359,6 +427,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EmailChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pinpoint/event_stream.py b/sdk/python/pulumi_aws/pinpoint/event_stream.py index c8732c7e459..6eb69619cd1 100644 --- a/sdk/python/pulumi_aws/pinpoint/event_stream.py +++ b/sdk/python/pulumi_aws/pinpoint/event_stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventStreamArgs', 'EventStream'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_stream_arn: The Amazon Resource Name (ARN) of the Amazon Kinesis stream or Firehose delivery stream to which you want to publish events. :param pulumi.Input[str] role_arn: The IAM role that authorizes Amazon Pinpoint to publish events to the stream in your account. """ - pulumi.set(__self__, "application_id", application_id) - pulumi.set(__self__, "destination_stream_arn", destination_stream_arn) - pulumi.set(__self__, "role_arn", role_arn) + EventStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + destination_stream_arn=destination_stream_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + destination_stream_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if destination_stream_arn is None and 'destinationStreamArn' in kwargs: + destination_stream_arn = kwargs['destinationStreamArn'] + if destination_stream_arn is None: + raise TypeError("Missing 'destination_stream_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("application_id", application_id) + _setter("destination_stream_arn", destination_stream_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="applicationId") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_stream_arn: The Amazon Resource Name (ARN) of the Amazon Kinesis stream or Firehose delivery stream to which you want to publish events. :param pulumi.Input[str] role_arn: The IAM role that authorizes Amazon Pinpoint to publish events to the stream in your account. """ + _EventStreamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + destination_stream_arn=destination_stream_arn, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + destination_stream_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if destination_stream_arn is None and 'destinationStreamArn' in kwargs: + destination_stream_arn = kwargs['destinationStreamArn'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if destination_stream_arn is not None: - pulumi.set(__self__, "destination_stream_arn", destination_stream_arn) + _setter("destination_stream_arn", destination_stream_arn) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="applicationId") @@ -241,6 +289,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventStreamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pinpoint/gcm_channel.py b/sdk/python/pulumi_aws/pinpoint/gcm_channel.py index c503752d226..acfc8f1a8d1 100644 --- a/sdk/python/pulumi_aws/pinpoint/gcm_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/gcm_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GcmChannelArgs', 'GcmChannel'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] application_id: The application ID. :param pulumi.Input[bool] enabled: Whether the channel is enabled or disabled. Defaults to `true`. """ - pulumi.set(__self__, "api_key", api_key) - pulumi.set(__self__, "application_id", application_id) + GcmChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + application_id=application_id, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[pulumi.Input[str]] = None, + application_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if api_key is None: + raise TypeError("Missing 'api_key' argument") + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + + _setter("api_key", api_key) + _setter("application_id", application_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="apiKey") @@ -77,12 +100,31 @@ def __init__(__self__, *, :param pulumi.Input[str] application_id: The application ID. :param pulumi.Input[bool] enabled: Whether the channel is enabled or disabled. Defaults to `true`. """ + _GcmChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + api_key=api_key, + application_id=application_id, + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + api_key: Optional[pulumi.Input[str]] = None, + application_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if api_key is None and 'apiKey' in kwargs: + api_key = kwargs['apiKey'] + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if api_key is not None: - pulumi.set(__self__, "api_key", api_key) + _setter("api_key", api_key) if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter(name="apiKey") @@ -200,6 +242,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GcmChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pinpoint/outputs.py b/sdk/python/pulumi_aws/pinpoint/outputs.py index e31fe938f23..8d7d274ea13 100644 --- a/sdk/python/pulumi_aws/pinpoint/outputs.py +++ b/sdk/python/pulumi_aws/pinpoint/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -45,12 +45,31 @@ def __init__(__self__, *, :param str mode: What mode Lambda should be invoked in. Valid values for this parameter are `DELIVERY`, `FILTER`. :param str web_url: Web URL to call for hook. If the URL has authentication specified it will be added as authentication to the request. Conflicts with `lambda_function_name` """ + AppCampaignHook._configure( + lambda key, value: pulumi.set(__self__, key, value), + lambda_function_name=lambda_function_name, + mode=mode, + web_url=web_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lambda_function_name: Optional[str] = None, + mode: Optional[str] = None, + web_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_function_name is None and 'lambdaFunctionName' in kwargs: + lambda_function_name = kwargs['lambdaFunctionName'] + if web_url is None and 'webUrl' in kwargs: + web_url = kwargs['webUrl'] + if lambda_function_name is not None: - pulumi.set(__self__, "lambda_function_name", lambda_function_name) + _setter("lambda_function_name", lambda_function_name) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if web_url is not None: - pulumi.set(__self__, "web_url", web_url) + _setter("web_url", web_url) @property @pulumi.getter(name="lambdaFunctionName") @@ -109,14 +128,35 @@ def __init__(__self__, *, :param int messages_per_second: The number of messages that the campaign can send per second. The minimum value is 50, and the maximum is 20000. :param int total: The maximum total number of messages that the campaign can send. """ + AppLimits._configure( + lambda key, value: pulumi.set(__self__, key, value), + daily=daily, + maximum_duration=maximum_duration, + messages_per_second=messages_per_second, + total=total, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + daily: Optional[int] = None, + maximum_duration: Optional[int] = None, + messages_per_second: Optional[int] = None, + total: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_duration is None and 'maximumDuration' in kwargs: + maximum_duration = kwargs['maximumDuration'] + if messages_per_second is None and 'messagesPerSecond' in kwargs: + messages_per_second = kwargs['messagesPerSecond'] + if daily is not None: - pulumi.set(__self__, "daily", daily) + _setter("daily", daily) if maximum_duration is not None: - pulumi.set(__self__, "maximum_duration", maximum_duration) + _setter("maximum_duration", maximum_duration) if messages_per_second is not None: - pulumi.set(__self__, "messages_per_second", messages_per_second) + _setter("messages_per_second", messages_per_second) if total is not None: - pulumi.set(__self__, "total", total) + _setter("total", total) @property @pulumi.getter @@ -160,10 +200,23 @@ def __init__(__self__, *, :param str end: The default end time for quiet time in ISO 8601 format. Required if `start` is set :param str start: The default start time for quiet time in ISO 8601 format. Required if `end` is set """ + AppQuietTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/pinpoint/sms_channel.py b/sdk/python/pulumi_aws/pinpoint/sms_channel.py index 233f3a8961c..6312002eacc 100644 --- a/sdk/python/pulumi_aws/pinpoint/sms_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/sms_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SmsChannelArgs', 'SmsChannel'] @@ -25,13 +25,38 @@ def __init__(__self__, *, :param pulumi.Input[str] sender_id: Identifier of the sender for your messages. :param pulumi.Input[str] short_code: Short Code registered with the phone provider. """ - pulumi.set(__self__, "application_id", application_id) + SmsChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + enabled=enabled, + sender_id=sender_id, + short_code=short_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + sender_id: Optional[pulumi.Input[str]] = None, + short_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if sender_id is None and 'senderId' in kwargs: + sender_id = kwargs['senderId'] + if short_code is None and 'shortCode' in kwargs: + short_code = kwargs['shortCode'] + + _setter("application_id", application_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if sender_id is not None: - pulumi.set(__self__, "sender_id", sender_id) + _setter("sender_id", sender_id) if short_code is not None: - pulumi.set(__self__, "short_code", short_code) + _setter("short_code", short_code) @property @pulumi.getter(name="applicationId") @@ -100,18 +125,49 @@ def __init__(__self__, *, :param pulumi.Input[str] short_code: Short Code registered with the phone provider. :param pulumi.Input[int] transactional_messages_per_second: Maximum number of transactional messages per second that can be sent. """ + _SmsChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + enabled=enabled, + promotional_messages_per_second=promotional_messages_per_second, + sender_id=sender_id, + short_code=short_code, + transactional_messages_per_second=transactional_messages_per_second, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + promotional_messages_per_second: Optional[pulumi.Input[int]] = None, + sender_id: Optional[pulumi.Input[str]] = None, + short_code: Optional[pulumi.Input[str]] = None, + transactional_messages_per_second: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if promotional_messages_per_second is None and 'promotionalMessagesPerSecond' in kwargs: + promotional_messages_per_second = kwargs['promotionalMessagesPerSecond'] + if sender_id is None and 'senderId' in kwargs: + sender_id = kwargs['senderId'] + if short_code is None and 'shortCode' in kwargs: + short_code = kwargs['shortCode'] + if transactional_messages_per_second is None and 'transactionalMessagesPerSecond' in kwargs: + transactional_messages_per_second = kwargs['transactionalMessagesPerSecond'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if promotional_messages_per_second is not None: - pulumi.set(__self__, "promotional_messages_per_second", promotional_messages_per_second) + _setter("promotional_messages_per_second", promotional_messages_per_second) if sender_id is not None: - pulumi.set(__self__, "sender_id", sender_id) + _setter("sender_id", sender_id) if short_code is not None: - pulumi.set(__self__, "short_code", short_code) + _setter("short_code", short_code) if transactional_messages_per_second is not None: - pulumi.set(__self__, "transactional_messages_per_second", transactional_messages_per_second) + _setter("transactional_messages_per_second", transactional_messages_per_second) @property @pulumi.getter(name="applicationId") @@ -261,6 +317,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SmsChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/pipes/_inputs.py b/sdk/python/pulumi_aws/pipes/_inputs.py index 0c20e0445b1..28b30e3cc4a 100644 --- a/sdk/python/pulumi_aws/pipes/_inputs.py +++ b/sdk/python/pulumi_aws/pipes/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -71,10 +71,27 @@ def __init__(__self__, *, :param pulumi.Input['PipeEnrichmentParametersHttpParametersArgs'] http_parameters: Contains the HTTP parameters to use when the target is a API Gateway REST endpoint or EventBridge ApiDestination. If you specify an API Gateway REST API or EventBridge ApiDestination as a target, you can use this parameter to specify headers, path parameters, and query string keys/values as part of your target invoking request. If you're using ApiDestinations, the corresponding Connection can also have these values configured. In case of any conflicting keys, values from the Connection take precedence. Detailed below. :param pulumi.Input[str] input_template: Valid JSON text passed to the target. In this case, nothing from the event itself is passed to the target. Maximum length of 8192 characters. """ + PipeEnrichmentParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_parameters=http_parameters, + input_template=input_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_parameters: Optional[pulumi.Input['PipeEnrichmentParametersHttpParametersArgs']] = None, + input_template: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_parameters is None and 'httpParameters' in kwargs: + http_parameters = kwargs['httpParameters'] + if input_template is None and 'inputTemplate' in kwargs: + input_template = kwargs['inputTemplate'] + if http_parameters is not None: - pulumi.set(__self__, "http_parameters", http_parameters) + _setter("http_parameters", http_parameters) if input_template is not None: - pulumi.set(__self__, "input_template", input_template) + _setter("input_template", input_template) @property @pulumi.getter(name="httpParameters") @@ -112,12 +129,33 @@ def __init__(__self__, *, :param pulumi.Input[str] path_parameter_values: The path parameter values to be used to populate API Gateway REST API or EventBridge ApiDestination path wildcards ("*"). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] query_string_parameters: Key-value mapping of the query strings that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination. """ + PipeEnrichmentParametersHttpParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_parameters=header_parameters, + path_parameter_values=path_parameter_values, + query_string_parameters=query_string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + path_parameter_values: Optional[pulumi.Input[str]] = None, + query_string_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_parameters is None and 'headerParameters' in kwargs: + header_parameters = kwargs['headerParameters'] + if path_parameter_values is None and 'pathParameterValues' in kwargs: + path_parameter_values = kwargs['pathParameterValues'] + if query_string_parameters is None and 'queryStringParameters' in kwargs: + query_string_parameters = kwargs['queryStringParameters'] + if header_parameters is not None: - pulumi.set(__self__, "header_parameters", header_parameters) + _setter("header_parameters", header_parameters) if path_parameter_values is not None: - pulumi.set(__self__, "path_parameter_values", path_parameter_values) + _setter("path_parameter_values", path_parameter_values) if query_string_parameters is not None: - pulumi.set(__self__, "query_string_parameters", query_string_parameters) + _setter("query_string_parameters", query_string_parameters) @property @pulumi.getter(name="headerParameters") @@ -177,22 +215,63 @@ def __init__(__self__, *, :param pulumi.Input['PipeSourceParametersSelfManagedKafkaParametersArgs'] self_managed_kafka_parameters: The parameters for using a self-managed Apache Kafka stream as a source. Detailed below. :param pulumi.Input['PipeSourceParametersSqsQueueParametersArgs'] sqs_queue_parameters: The parameters for using a Amazon SQS stream as a source. Detailed below. """ + PipeSourceParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + activemq_broker_parameters=activemq_broker_parameters, + dynamodb_stream_parameters=dynamodb_stream_parameters, + filter_criteria=filter_criteria, + kinesis_stream_parameters=kinesis_stream_parameters, + managed_streaming_kafka_parameters=managed_streaming_kafka_parameters, + rabbitmq_broker_parameters=rabbitmq_broker_parameters, + self_managed_kafka_parameters=self_managed_kafka_parameters, + sqs_queue_parameters=sqs_queue_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activemq_broker_parameters: Optional[pulumi.Input['PipeSourceParametersActivemqBrokerParametersArgs']] = None, + dynamodb_stream_parameters: Optional[pulumi.Input['PipeSourceParametersDynamodbStreamParametersArgs']] = None, + filter_criteria: Optional[pulumi.Input['PipeSourceParametersFilterCriteriaArgs']] = None, + kinesis_stream_parameters: Optional[pulumi.Input['PipeSourceParametersKinesisStreamParametersArgs']] = None, + managed_streaming_kafka_parameters: Optional[pulumi.Input['PipeSourceParametersManagedStreamingKafkaParametersArgs']] = None, + rabbitmq_broker_parameters: Optional[pulumi.Input['PipeSourceParametersRabbitmqBrokerParametersArgs']] = None, + self_managed_kafka_parameters: Optional[pulumi.Input['PipeSourceParametersSelfManagedKafkaParametersArgs']] = None, + sqs_queue_parameters: Optional[pulumi.Input['PipeSourceParametersSqsQueueParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activemq_broker_parameters is None and 'activemqBrokerParameters' in kwargs: + activemq_broker_parameters = kwargs['activemqBrokerParameters'] + if dynamodb_stream_parameters is None and 'dynamodbStreamParameters' in kwargs: + dynamodb_stream_parameters = kwargs['dynamodbStreamParameters'] + if filter_criteria is None and 'filterCriteria' in kwargs: + filter_criteria = kwargs['filterCriteria'] + if kinesis_stream_parameters is None and 'kinesisStreamParameters' in kwargs: + kinesis_stream_parameters = kwargs['kinesisStreamParameters'] + if managed_streaming_kafka_parameters is None and 'managedStreamingKafkaParameters' in kwargs: + managed_streaming_kafka_parameters = kwargs['managedStreamingKafkaParameters'] + if rabbitmq_broker_parameters is None and 'rabbitmqBrokerParameters' in kwargs: + rabbitmq_broker_parameters = kwargs['rabbitmqBrokerParameters'] + if self_managed_kafka_parameters is None and 'selfManagedKafkaParameters' in kwargs: + self_managed_kafka_parameters = kwargs['selfManagedKafkaParameters'] + if sqs_queue_parameters is None and 'sqsQueueParameters' in kwargs: + sqs_queue_parameters = kwargs['sqsQueueParameters'] + if activemq_broker_parameters is not None: - pulumi.set(__self__, "activemq_broker_parameters", activemq_broker_parameters) + _setter("activemq_broker_parameters", activemq_broker_parameters) if dynamodb_stream_parameters is not None: - pulumi.set(__self__, "dynamodb_stream_parameters", dynamodb_stream_parameters) + _setter("dynamodb_stream_parameters", dynamodb_stream_parameters) if filter_criteria is not None: - pulumi.set(__self__, "filter_criteria", filter_criteria) + _setter("filter_criteria", filter_criteria) if kinesis_stream_parameters is not None: - pulumi.set(__self__, "kinesis_stream_parameters", kinesis_stream_parameters) + _setter("kinesis_stream_parameters", kinesis_stream_parameters) if managed_streaming_kafka_parameters is not None: - pulumi.set(__self__, "managed_streaming_kafka_parameters", managed_streaming_kafka_parameters) + _setter("managed_streaming_kafka_parameters", managed_streaming_kafka_parameters) if rabbitmq_broker_parameters is not None: - pulumi.set(__self__, "rabbitmq_broker_parameters", rabbitmq_broker_parameters) + _setter("rabbitmq_broker_parameters", rabbitmq_broker_parameters) if self_managed_kafka_parameters is not None: - pulumi.set(__self__, "self_managed_kafka_parameters", self_managed_kafka_parameters) + _setter("self_managed_kafka_parameters", self_managed_kafka_parameters) if sqs_queue_parameters is not None: - pulumi.set(__self__, "sqs_queue_parameters", sqs_queue_parameters) + _setter("sqs_queue_parameters", sqs_queue_parameters) @property @pulumi.getter(name="activemqBrokerParameters") @@ -304,12 +383,39 @@ def __init__(__self__, *, :param pulumi.Input[int] batch_size: The maximum number of records to include in each batch. Maximum value of 10000. :param pulumi.Input[int] maximum_batching_window_in_seconds: The maximum length of a time to wait for events. Maximum value of 300. """ - pulumi.set(__self__, "credentials", credentials) - pulumi.set(__self__, "queue_name", queue_name) + PipeSourceParametersActivemqBrokerParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials=credentials, + queue_name=queue_name, + batch_size=batch_size, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials: Optional[pulumi.Input['PipeSourceParametersActivemqBrokerParametersCredentialsArgs']] = None, + queue_name: Optional[pulumi.Input[str]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + maximum_batching_window_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credentials is None: + raise TypeError("Missing 'credentials' argument") + if queue_name is None and 'queueName' in kwargs: + queue_name = kwargs['queueName'] + if queue_name is None: + raise TypeError("Missing 'queue_name' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + + _setter("credentials", credentials) + _setter("queue_name", queue_name) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) @property @pulumi.getter @@ -365,15 +471,30 @@ class PipeSourceParametersActivemqBrokerParametersCredentialsArgs: def __init__(__self__, *, basic_auth: pulumi.Input[str]): """ - :param pulumi.Input[str] basic_auth: The ARN of the Secrets Manager secret containing the basic auth credentials. + :param pulumi.Input[str] basic_auth: The ARN of the Secrets Manager secret containing the credentials. """ - pulumi.set(__self__, "basic_auth", basic_auth) + PipeSourceParametersActivemqBrokerParametersCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth=basic_auth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth is None and 'basicAuth' in kwargs: + basic_auth = kwargs['basicAuth'] + if basic_auth is None: + raise TypeError("Missing 'basic_auth' argument") + + _setter("basic_auth", basic_auth) @property @pulumi.getter(name="basicAuth") def basic_auth(self) -> pulumi.Input[str]: """ - The ARN of the Secrets Manager secret containing the basic auth credentials. + The ARN of the Secrets Manager secret containing the credentials. """ return pulumi.get(self, "basic_auth") @@ -403,21 +524,64 @@ def __init__(__self__, *, :param pulumi.Input[str] on_partial_batch_item_failure: Define how to handle item process failures. AUTOMATIC_BISECT halves each batch and retry each half until all the records are processed or there is one failed message left in the batch. Valid values: AUTOMATIC_BISECT. :param pulumi.Input[int] parallelization_factor: The number of batches to process concurrently from each shard. The default value is 1. Maximum value of 10. """ - pulumi.set(__self__, "starting_position", starting_position) + PipeSourceParametersDynamodbStreamParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + starting_position=starting_position, + batch_size=batch_size, + dead_letter_config=dead_letter_config, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + maximum_record_age_in_seconds=maximum_record_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + on_partial_batch_item_failure=on_partial_batch_item_failure, + parallelization_factor=parallelization_factor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + starting_position: Optional[pulumi.Input[str]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + dead_letter_config: Optional[pulumi.Input['PipeSourceParametersDynamodbStreamParametersDeadLetterConfigArgs']] = None, + maximum_batching_window_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_record_age_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_retry_attempts: Optional[pulumi.Input[int]] = None, + on_partial_batch_item_failure: Optional[pulumi.Input[str]] = None, + parallelization_factor: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + if starting_position is None: + raise TypeError("Missing 'starting_position' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if maximum_record_age_in_seconds is None and 'maximumRecordAgeInSeconds' in kwargs: + maximum_record_age_in_seconds = kwargs['maximumRecordAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if on_partial_batch_item_failure is None and 'onPartialBatchItemFailure' in kwargs: + on_partial_batch_item_failure = kwargs['onPartialBatchItemFailure'] + if parallelization_factor is None and 'parallelizationFactor' in kwargs: + parallelization_factor = kwargs['parallelizationFactor'] + + _setter("starting_position", starting_position) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if maximum_record_age_in_seconds is not None: - pulumi.set(__self__, "maximum_record_age_in_seconds", maximum_record_age_in_seconds) + _setter("maximum_record_age_in_seconds", maximum_record_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) if on_partial_batch_item_failure is not None: - pulumi.set(__self__, "on_partial_batch_item_failure", on_partial_batch_item_failure) + _setter("on_partial_batch_item_failure", on_partial_batch_item_failure) if parallelization_factor is not None: - pulumi.set(__self__, "parallelization_factor", parallelization_factor) + _setter("parallelization_factor", parallelization_factor) @property @pulumi.getter(name="startingPosition") @@ -523,8 +687,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] arn: The ARN of the Amazon SQS queue specified as the target for the dead-letter queue. """ + PipeSourceParametersDynamodbStreamParametersDeadLetterConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) @property @pulumi.getter @@ -546,8 +721,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['PipeSourceParametersFilterCriteriaFilterArgs']]] filters: An array of up to 5 event patterns. Detailed below. """ + PipeSourceParametersFilterCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filters=filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filters: Optional[pulumi.Input[Sequence[pulumi.Input['PipeSourceParametersFilterCriteriaFilterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) @property @pulumi.getter @@ -569,7 +755,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] pattern: The event pattern. At most 4096 characters. """ - pulumi.set(__self__, "pattern", pattern) + PipeSourceParametersFilterCriteriaFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pattern=pattern, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pattern: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pattern is None: + raise TypeError("Missing 'pattern' argument") + + _setter("pattern", pattern) @property @pulumi.getter @@ -607,23 +806,70 @@ def __init__(__self__, *, :param pulumi.Input[int] parallelization_factor: The number of batches to process concurrently from each shard. The default value is 1. Maximum value of 10. :param pulumi.Input[str] starting_position_timestamp: With StartingPosition set to AT_TIMESTAMP, the time from which to start reading, in Unix time seconds. """ - pulumi.set(__self__, "starting_position", starting_position) + PipeSourceParametersKinesisStreamParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + starting_position=starting_position, + batch_size=batch_size, + dead_letter_config=dead_letter_config, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + maximum_record_age_in_seconds=maximum_record_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + on_partial_batch_item_failure=on_partial_batch_item_failure, + parallelization_factor=parallelization_factor, + starting_position_timestamp=starting_position_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + starting_position: Optional[pulumi.Input[str]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + dead_letter_config: Optional[pulumi.Input['PipeSourceParametersKinesisStreamParametersDeadLetterConfigArgs']] = None, + maximum_batching_window_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_record_age_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_retry_attempts: Optional[pulumi.Input[int]] = None, + on_partial_batch_item_failure: Optional[pulumi.Input[str]] = None, + parallelization_factor: Optional[pulumi.Input[int]] = None, + starting_position_timestamp: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + if starting_position is None: + raise TypeError("Missing 'starting_position' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if maximum_record_age_in_seconds is None and 'maximumRecordAgeInSeconds' in kwargs: + maximum_record_age_in_seconds = kwargs['maximumRecordAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if on_partial_batch_item_failure is None and 'onPartialBatchItemFailure' in kwargs: + on_partial_batch_item_failure = kwargs['onPartialBatchItemFailure'] + if parallelization_factor is None and 'parallelizationFactor' in kwargs: + parallelization_factor = kwargs['parallelizationFactor'] + if starting_position_timestamp is None and 'startingPositionTimestamp' in kwargs: + starting_position_timestamp = kwargs['startingPositionTimestamp'] + + _setter("starting_position", starting_position) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if maximum_record_age_in_seconds is not None: - pulumi.set(__self__, "maximum_record_age_in_seconds", maximum_record_age_in_seconds) + _setter("maximum_record_age_in_seconds", maximum_record_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) if on_partial_batch_item_failure is not None: - pulumi.set(__self__, "on_partial_batch_item_failure", on_partial_batch_item_failure) + _setter("on_partial_batch_item_failure", on_partial_batch_item_failure) if parallelization_factor is not None: - pulumi.set(__self__, "parallelization_factor", parallelization_factor) + _setter("parallelization_factor", parallelization_factor) if starting_position_timestamp is not None: - pulumi.set(__self__, "starting_position_timestamp", starting_position_timestamp) + _setter("starting_position_timestamp", starting_position_timestamp) @property @pulumi.getter(name="startingPosition") @@ -741,8 +987,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] arn: The ARN of the Amazon SQS queue specified as the target for the dead-letter queue. """ + PipeSourceParametersKinesisStreamParametersDeadLetterConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) @property @pulumi.getter @@ -774,17 +1031,50 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_batching_window_in_seconds: The maximum length of a time to wait for events. Maximum value of 300. :param pulumi.Input[str] starting_position: The position in a stream from which to start reading. Valid values: TRIM_HORIZON, LATEST. """ - pulumi.set(__self__, "topic_name", topic_name) + PipeSourceParametersManagedStreamingKafkaParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + topic_name=topic_name, + batch_size=batch_size, + consumer_group_id=consumer_group_id, + credentials=credentials, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + starting_position=starting_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + topic_name: Optional[pulumi.Input[str]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + consumer_group_id: Optional[pulumi.Input[str]] = None, + credentials: Optional[pulumi.Input['PipeSourceParametersManagedStreamingKafkaParametersCredentialsArgs']] = None, + maximum_batching_window_in_seconds: Optional[pulumi.Input[int]] = None, + starting_position: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if topic_name is None and 'topicName' in kwargs: + topic_name = kwargs['topicName'] + if topic_name is None: + raise TypeError("Missing 'topic_name' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if consumer_group_id is None and 'consumerGroupId' in kwargs: + consumer_group_id = kwargs['consumerGroupId'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + + _setter("topic_name", topic_name) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if consumer_group_id is not None: - pulumi.set(__self__, "consumer_group_id", consumer_group_id) + _setter("consumer_group_id", consumer_group_id) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if starting_position is not None: - pulumi.set(__self__, "starting_position", starting_position) + _setter("starting_position", starting_position) @property @pulumi.getter(name="topicName") @@ -868,10 +1158,27 @@ def __init__(__self__, *, :param pulumi.Input[str] client_certificate_tls_auth: The ARN of the Secrets Manager secret containing the credentials. :param pulumi.Input[str] sasl_scram512_auth: The ARN of the Secrets Manager secret containing the credentials. """ + PipeSourceParametersManagedStreamingKafkaParametersCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_certificate_tls_auth=client_certificate_tls_auth, + sasl_scram512_auth=sasl_scram512_auth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_certificate_tls_auth: Optional[pulumi.Input[str]] = None, + sasl_scram512_auth: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_certificate_tls_auth is None and 'clientCertificateTlsAuth' in kwargs: + client_certificate_tls_auth = kwargs['clientCertificateTlsAuth'] + if sasl_scram512_auth is None and 'saslScram512Auth' in kwargs: + sasl_scram512_auth = kwargs['saslScram512Auth'] + if client_certificate_tls_auth is not None: - pulumi.set(__self__, "client_certificate_tls_auth", client_certificate_tls_auth) + _setter("client_certificate_tls_auth", client_certificate_tls_auth) if sasl_scram512_auth is not None: - pulumi.set(__self__, "sasl_scram512_auth", sasl_scram512_auth) + _setter("sasl_scram512_auth", sasl_scram512_auth) @property @pulumi.getter(name="clientCertificateTlsAuth") @@ -913,14 +1220,45 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_batching_window_in_seconds: The maximum length of a time to wait for events. Maximum value of 300. :param pulumi.Input[str] virtual_host: The name of the virtual host associated with the source broker. Maximum length of 200. """ - pulumi.set(__self__, "credentials", credentials) - pulumi.set(__self__, "queue_name", queue_name) + PipeSourceParametersRabbitmqBrokerParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials=credentials, + queue_name=queue_name, + batch_size=batch_size, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + virtual_host=virtual_host, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials: Optional[pulumi.Input['PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs']] = None, + queue_name: Optional[pulumi.Input[str]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + maximum_batching_window_in_seconds: Optional[pulumi.Input[int]] = None, + virtual_host: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credentials is None: + raise TypeError("Missing 'credentials' argument") + if queue_name is None and 'queueName' in kwargs: + queue_name = kwargs['queueName'] + if queue_name is None: + raise TypeError("Missing 'queue_name' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if virtual_host is None and 'virtualHost' in kwargs: + virtual_host = kwargs['virtualHost'] + + _setter("credentials", credentials) + _setter("queue_name", queue_name) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if virtual_host is not None: - pulumi.set(__self__, "virtual_host", virtual_host) + _setter("virtual_host", virtual_host) @property @pulumi.getter @@ -988,15 +1326,30 @@ class PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs: def __init__(__self__, *, basic_auth: pulumi.Input[str]): """ - :param pulumi.Input[str] basic_auth: The ARN of the Secrets Manager secret containing the basic auth credentials. + :param pulumi.Input[str] basic_auth: The ARN of the Secrets Manager secret containing the credentials. """ - pulumi.set(__self__, "basic_auth", basic_auth) + PipeSourceParametersRabbitmqBrokerParametersCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth=basic_auth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth is None and 'basicAuth' in kwargs: + basic_auth = kwargs['basicAuth'] + if basic_auth is None: + raise TypeError("Missing 'basic_auth' argument") + + _setter("basic_auth", basic_auth) @property @pulumi.getter(name="basicAuth") def basic_auth(self) -> pulumi.Input[str]: """ - The ARN of the Secrets Manager secret containing the basic auth credentials. + The ARN of the Secrets Manager secret containing the credentials. """ return pulumi.get(self, "basic_auth") @@ -1028,23 +1381,66 @@ def __init__(__self__, *, :param pulumi.Input[str] starting_position: The position in a stream from which to start reading. Valid values: TRIM_HORIZON, LATEST. :param pulumi.Input['PipeSourceParametersSelfManagedKafkaParametersVpcArgs'] vpc: This structure specifies the VPC subnets and security groups for the stream, and whether a public IP address is to be used. Detailed below. """ - pulumi.set(__self__, "topic_name", topic_name) + PipeSourceParametersSelfManagedKafkaParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + topic_name=topic_name, + additional_bootstrap_servers=additional_bootstrap_servers, + batch_size=batch_size, + consumer_group_id=consumer_group_id, + credentials=credentials, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + server_root_ca_certificate=server_root_ca_certificate, + starting_position=starting_position, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + topic_name: Optional[pulumi.Input[str]] = None, + additional_bootstrap_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + batch_size: Optional[pulumi.Input[int]] = None, + consumer_group_id: Optional[pulumi.Input[str]] = None, + credentials: Optional[pulumi.Input['PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs']] = None, + maximum_batching_window_in_seconds: Optional[pulumi.Input[int]] = None, + server_root_ca_certificate: Optional[pulumi.Input[str]] = None, + starting_position: Optional[pulumi.Input[str]] = None, + vpc: Optional[pulumi.Input['PipeSourceParametersSelfManagedKafkaParametersVpcArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if topic_name is None and 'topicName' in kwargs: + topic_name = kwargs['topicName'] + if topic_name is None: + raise TypeError("Missing 'topic_name' argument") + if additional_bootstrap_servers is None and 'additionalBootstrapServers' in kwargs: + additional_bootstrap_servers = kwargs['additionalBootstrapServers'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if consumer_group_id is None and 'consumerGroupId' in kwargs: + consumer_group_id = kwargs['consumerGroupId'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if server_root_ca_certificate is None and 'serverRootCaCertificate' in kwargs: + server_root_ca_certificate = kwargs['serverRootCaCertificate'] + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + + _setter("topic_name", topic_name) if additional_bootstrap_servers is not None: - pulumi.set(__self__, "additional_bootstrap_servers", additional_bootstrap_servers) + _setter("additional_bootstrap_servers", additional_bootstrap_servers) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if consumer_group_id is not None: - pulumi.set(__self__, "consumer_group_id", consumer_group_id) + _setter("consumer_group_id", consumer_group_id) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if server_root_ca_certificate is not None: - pulumi.set(__self__, "server_root_ca_certificate", server_root_ca_certificate) + _setter("server_root_ca_certificate", server_root_ca_certificate) if starting_position is not None: - pulumi.set(__self__, "starting_position", starting_position) + _setter("starting_position", starting_position) if vpc is not None: - pulumi.set(__self__, "vpc", vpc) + _setter("vpc", vpc) @property @pulumi.getter(name="topicName") @@ -1163,24 +1559,51 @@ def __init__(__self__, *, sasl_scram256_auth: Optional[pulumi.Input[str]] = None, sasl_scram512_auth: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] basic_auth: The ARN of the Secrets Manager secret containing the basic auth credentials. + :param pulumi.Input[str] basic_auth: The ARN of the Secrets Manager secret containing the credentials. :param pulumi.Input[str] client_certificate_tls_auth: The ARN of the Secrets Manager secret containing the credentials. :param pulumi.Input[str] sasl_scram256_auth: The ARN of the Secrets Manager secret containing the credentials. :param pulumi.Input[str] sasl_scram512_auth: The ARN of the Secrets Manager secret containing the credentials. """ - pulumi.set(__self__, "basic_auth", basic_auth) + PipeSourceParametersSelfManagedKafkaParametersCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth=basic_auth, + client_certificate_tls_auth=client_certificate_tls_auth, + sasl_scram256_auth=sasl_scram256_auth, + sasl_scram512_auth=sasl_scram512_auth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth: Optional[pulumi.Input[str]] = None, + client_certificate_tls_auth: Optional[pulumi.Input[str]] = None, + sasl_scram256_auth: Optional[pulumi.Input[str]] = None, + sasl_scram512_auth: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth is None and 'basicAuth' in kwargs: + basic_auth = kwargs['basicAuth'] + if basic_auth is None: + raise TypeError("Missing 'basic_auth' argument") + if client_certificate_tls_auth is None and 'clientCertificateTlsAuth' in kwargs: + client_certificate_tls_auth = kwargs['clientCertificateTlsAuth'] + if sasl_scram256_auth is None and 'saslScram256Auth' in kwargs: + sasl_scram256_auth = kwargs['saslScram256Auth'] + if sasl_scram512_auth is None and 'saslScram512Auth' in kwargs: + sasl_scram512_auth = kwargs['saslScram512Auth'] + + _setter("basic_auth", basic_auth) if client_certificate_tls_auth is not None: - pulumi.set(__self__, "client_certificate_tls_auth", client_certificate_tls_auth) + _setter("client_certificate_tls_auth", client_certificate_tls_auth) if sasl_scram256_auth is not None: - pulumi.set(__self__, "sasl_scram256_auth", sasl_scram256_auth) + _setter("sasl_scram256_auth", sasl_scram256_auth) if sasl_scram512_auth is not None: - pulumi.set(__self__, "sasl_scram512_auth", sasl_scram512_auth) + _setter("sasl_scram512_auth", sasl_scram512_auth) @property @pulumi.getter(name="basicAuth") def basic_auth(self) -> pulumi.Input[str]: """ - The ARN of the Secrets Manager secret containing the basic auth credentials. + The ARN of the Secrets Manager secret containing the credentials. """ return pulumi.get(self, "basic_auth") @@ -1234,10 +1657,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: List of security groups associated with the stream. These security groups must all be in the same VPC. You can specify as many as five security groups. If you do not specify a security group, the default security group for the VPC is used. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: List of the subnets associated with the stream. These subnets must all be in the same VPC. You can specify as many as 16 subnets. """ + PipeSourceParametersSelfManagedKafkaParametersVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_groups=security_groups, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroups") @@ -1273,10 +1711,27 @@ def __init__(__self__, *, :param pulumi.Input[int] batch_size: The maximum number of records to include in each batch. Maximum value of 10000. :param pulumi.Input[int] maximum_batching_window_in_seconds: The maximum length of a time to wait for events. Maximum value of 300. """ + PipeSourceParametersSqsQueueParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + batch_size=batch_size, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + batch_size: Optional[pulumi.Input[int]] = None, + maximum_batching_window_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) @property @pulumi.getter(name="batchSize") @@ -1332,30 +1787,87 @@ def __init__(__self__, *, :param pulumi.Input['PipeTargetParametersSqsQueueParametersArgs'] sqs_queue_parameters: The parameters for using a Amazon SQS stream as a target. Detailed below. :param pulumi.Input['PipeTargetParametersStepFunctionStateMachineParametersArgs'] step_function_state_machine_parameters: The parameters for using a Step Functions state machine as a target. Detailed below. """ + PipeTargetParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + batch_job_parameters=batch_job_parameters, + cloudwatch_logs_parameters=cloudwatch_logs_parameters, + ecs_task_parameters=ecs_task_parameters, + eventbridge_event_bus_parameters=eventbridge_event_bus_parameters, + http_parameters=http_parameters, + input_template=input_template, + kinesis_stream_parameters=kinesis_stream_parameters, + lambda_function_parameters=lambda_function_parameters, + redshift_data_parameters=redshift_data_parameters, + sagemaker_pipeline_parameters=sagemaker_pipeline_parameters, + sqs_queue_parameters=sqs_queue_parameters, + step_function_state_machine_parameters=step_function_state_machine_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + batch_job_parameters: Optional[pulumi.Input['PipeTargetParametersBatchJobParametersArgs']] = None, + cloudwatch_logs_parameters: Optional[pulumi.Input['PipeTargetParametersCloudwatchLogsParametersArgs']] = None, + ecs_task_parameters: Optional[pulumi.Input['PipeTargetParametersEcsTaskParametersArgs']] = None, + eventbridge_event_bus_parameters: Optional[pulumi.Input['PipeTargetParametersEventbridgeEventBusParametersArgs']] = None, + http_parameters: Optional[pulumi.Input['PipeTargetParametersHttpParametersArgs']] = None, + input_template: Optional[pulumi.Input[str]] = None, + kinesis_stream_parameters: Optional[pulumi.Input['PipeTargetParametersKinesisStreamParametersArgs']] = None, + lambda_function_parameters: Optional[pulumi.Input['PipeTargetParametersLambdaFunctionParametersArgs']] = None, + redshift_data_parameters: Optional[pulumi.Input['PipeTargetParametersRedshiftDataParametersArgs']] = None, + sagemaker_pipeline_parameters: Optional[pulumi.Input['PipeTargetParametersSagemakerPipelineParametersArgs']] = None, + sqs_queue_parameters: Optional[pulumi.Input['PipeTargetParametersSqsQueueParametersArgs']] = None, + step_function_state_machine_parameters: Optional[pulumi.Input['PipeTargetParametersStepFunctionStateMachineParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if batch_job_parameters is None and 'batchJobParameters' in kwargs: + batch_job_parameters = kwargs['batchJobParameters'] + if cloudwatch_logs_parameters is None and 'cloudwatchLogsParameters' in kwargs: + cloudwatch_logs_parameters = kwargs['cloudwatchLogsParameters'] + if ecs_task_parameters is None and 'ecsTaskParameters' in kwargs: + ecs_task_parameters = kwargs['ecsTaskParameters'] + if eventbridge_event_bus_parameters is None and 'eventbridgeEventBusParameters' in kwargs: + eventbridge_event_bus_parameters = kwargs['eventbridgeEventBusParameters'] + if http_parameters is None and 'httpParameters' in kwargs: + http_parameters = kwargs['httpParameters'] + if input_template is None and 'inputTemplate' in kwargs: + input_template = kwargs['inputTemplate'] + if kinesis_stream_parameters is None and 'kinesisStreamParameters' in kwargs: + kinesis_stream_parameters = kwargs['kinesisStreamParameters'] + if lambda_function_parameters is None and 'lambdaFunctionParameters' in kwargs: + lambda_function_parameters = kwargs['lambdaFunctionParameters'] + if redshift_data_parameters is None and 'redshiftDataParameters' in kwargs: + redshift_data_parameters = kwargs['redshiftDataParameters'] + if sagemaker_pipeline_parameters is None and 'sagemakerPipelineParameters' in kwargs: + sagemaker_pipeline_parameters = kwargs['sagemakerPipelineParameters'] + if sqs_queue_parameters is None and 'sqsQueueParameters' in kwargs: + sqs_queue_parameters = kwargs['sqsQueueParameters'] + if step_function_state_machine_parameters is None and 'stepFunctionStateMachineParameters' in kwargs: + step_function_state_machine_parameters = kwargs['stepFunctionStateMachineParameters'] + if batch_job_parameters is not None: - pulumi.set(__self__, "batch_job_parameters", batch_job_parameters) + _setter("batch_job_parameters", batch_job_parameters) if cloudwatch_logs_parameters is not None: - pulumi.set(__self__, "cloudwatch_logs_parameters", cloudwatch_logs_parameters) + _setter("cloudwatch_logs_parameters", cloudwatch_logs_parameters) if ecs_task_parameters is not None: - pulumi.set(__self__, "ecs_task_parameters", ecs_task_parameters) + _setter("ecs_task_parameters", ecs_task_parameters) if eventbridge_event_bus_parameters is not None: - pulumi.set(__self__, "eventbridge_event_bus_parameters", eventbridge_event_bus_parameters) + _setter("eventbridge_event_bus_parameters", eventbridge_event_bus_parameters) if http_parameters is not None: - pulumi.set(__self__, "http_parameters", http_parameters) + _setter("http_parameters", http_parameters) if input_template is not None: - pulumi.set(__self__, "input_template", input_template) + _setter("input_template", input_template) if kinesis_stream_parameters is not None: - pulumi.set(__self__, "kinesis_stream_parameters", kinesis_stream_parameters) + _setter("kinesis_stream_parameters", kinesis_stream_parameters) if lambda_function_parameters is not None: - pulumi.set(__self__, "lambda_function_parameters", lambda_function_parameters) + _setter("lambda_function_parameters", lambda_function_parameters) if redshift_data_parameters is not None: - pulumi.set(__self__, "redshift_data_parameters", redshift_data_parameters) + _setter("redshift_data_parameters", redshift_data_parameters) if sagemaker_pipeline_parameters is not None: - pulumi.set(__self__, "sagemaker_pipeline_parameters", sagemaker_pipeline_parameters) + _setter("sagemaker_pipeline_parameters", sagemaker_pipeline_parameters) if sqs_queue_parameters is not None: - pulumi.set(__self__, "sqs_queue_parameters", sqs_queue_parameters) + _setter("sqs_queue_parameters", sqs_queue_parameters) if step_function_state_machine_parameters is not None: - pulumi.set(__self__, "step_function_state_machine_parameters", step_function_state_machine_parameters) + _setter("step_function_state_machine_parameters", step_function_state_machine_parameters) @property @pulumi.getter(name="batchJobParameters") @@ -1521,18 +2033,57 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Additional parameters passed to the job that replace parameter substitution placeholders that are set in the job definition. Parameters are specified as a key and value pair mapping. Parameters included here override any corresponding parameter defaults from the job definition. Detailed below. :param pulumi.Input['PipeTargetParametersBatchJobParametersRetryStrategyArgs'] retry_strategy: The retry strategy to use for failed jobs. When a retry strategy is specified here, it overrides the retry strategy defined in the job definition. Detailed below. """ - pulumi.set(__self__, "job_definition", job_definition) - pulumi.set(__self__, "job_name", job_name) + PipeTargetParametersBatchJobParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_definition=job_definition, + job_name=job_name, + array_properties=array_properties, + container_overrides=container_overrides, + depends_ons=depends_ons, + parameters=parameters, + retry_strategy=retry_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_definition: Optional[pulumi.Input[str]] = None, + job_name: Optional[pulumi.Input[str]] = None, + array_properties: Optional[pulumi.Input['PipeTargetParametersBatchJobParametersArrayPropertiesArgs']] = None, + container_overrides: Optional[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesArgs']] = None, + depends_ons: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersDependsOnArgs']]]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + retry_strategy: Optional[pulumi.Input['PipeTargetParametersBatchJobParametersRetryStrategyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_definition is None and 'jobDefinition' in kwargs: + job_definition = kwargs['jobDefinition'] + if job_definition is None: + raise TypeError("Missing 'job_definition' argument") + if job_name is None and 'jobName' in kwargs: + job_name = kwargs['jobName'] + if job_name is None: + raise TypeError("Missing 'job_name' argument") + if array_properties is None and 'arrayProperties' in kwargs: + array_properties = kwargs['arrayProperties'] + if container_overrides is None and 'containerOverrides' in kwargs: + container_overrides = kwargs['containerOverrides'] + if depends_ons is None and 'dependsOns' in kwargs: + depends_ons = kwargs['dependsOns'] + if retry_strategy is None and 'retryStrategy' in kwargs: + retry_strategy = kwargs['retryStrategy'] + + _setter("job_definition", job_definition) + _setter("job_name", job_name) if array_properties is not None: - pulumi.set(__self__, "array_properties", array_properties) + _setter("array_properties", array_properties) if container_overrides is not None: - pulumi.set(__self__, "container_overrides", container_overrides) + _setter("container_overrides", container_overrides) if depends_ons is not None: - pulumi.set(__self__, "depends_ons", depends_ons) + _setter("depends_ons", depends_ons) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if retry_strategy is not None: - pulumi.set(__self__, "retry_strategy", retry_strategy) + _setter("retry_strategy", retry_strategy) @property @pulumi.getter(name="jobDefinition") @@ -1626,8 +2177,19 @@ def __init__(__self__, *, """ :param pulumi.Input[int] size: The size of the array, if this is an array batch job. Minimum value of 2. Maximum value of 10,000. """ + PipeTargetParametersBatchJobParametersArrayPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is not None: - pulumi.set(__self__, "size", size) + _setter("size", size) @property @pulumi.getter @@ -1650,25 +2212,46 @@ def __init__(__self__, *, instance_type: Optional[pulumi.Input[str]] = None, resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input[str]]] commands: List of commands to send to the container that overrides the default command from the Docker image or the task definition. - :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs']]] environments: The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] commands: List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. + :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs']]] environments: The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. :param pulumi.Input[str] instance_type: The instance type to use for a multi-node parallel job. This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided. - :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs']]] resource_requirements: The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. - """ + :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs']]] resource_requirements: The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. + """ + PipeTargetParametersBatchJobParametersContainerOverridesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + commands=commands, + environments=environments, + instance_type=instance_type, + resource_requirements=resource_requirements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + commands: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + environments: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs']]]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if resource_requirements is None and 'resourceRequirements' in kwargs: + resource_requirements = kwargs['resourceRequirements'] + if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if environments is not None: - pulumi.set(__self__, "environments", environments) + _setter("environments", environments) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if resource_requirements is not None: - pulumi.set(__self__, "resource_requirements", resource_requirements) + _setter("resource_requirements", resource_requirements) @property @pulumi.getter def commands(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - List of commands to send to the container that overrides the default command from the Docker image or the task definition. + List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. """ return pulumi.get(self, "commands") @@ -1680,7 +2263,7 @@ def commands(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter def environments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs']]]]: """ - The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. """ return pulumi.get(self, "environments") @@ -1704,7 +2287,7 @@ def instance_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="resourceRequirements") def resource_requirements(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs']]]]: """ - The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. """ return pulumi.get(self, "resource_requirements") @@ -1720,12 +2303,25 @@ def __init__(__self__, *, value: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] name: Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. - :param pulumi.Input[str] value: The value of the key-value pair. For environment variables, this is the value of the environment variable. - """ + :param pulumi.Input[str] value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. + """ + PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1743,7 +2339,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def value(self) -> Optional[pulumi.Input[str]]: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -1758,17 +2354,34 @@ def __init__(__self__, *, type: pulumi.Input[str], value: pulumi.Input[str]): """ - :param pulumi.Input[str] type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. - :param pulumi.Input[str] value: The value of the key-value pair. For environment variables, this is the value of the environment variable. - """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + :param pulumi.Input[str] type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. + :param pulumi.Input[str] value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. + """ + PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -1780,7 +2393,7 @@ def type(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[str]: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -1796,12 +2409,27 @@ def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] job_id: The job ID of the AWS Batch job that's associated with this dependency. - :param pulumi.Input[str] type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. - """ + :param pulumi.Input[str] type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. + """ + PipeTargetParametersBatchJobParametersDependsOnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_id=job_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_id is None and 'jobId' in kwargs: + job_id = kwargs['jobId'] + if job_id is not None: - pulumi.set(__self__, "job_id", job_id) + _setter("job_id", job_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="jobId") @@ -1819,7 +2447,7 @@ def job_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -1835,8 +2463,19 @@ def __init__(__self__, *, """ :param pulumi.Input[int] attempts: The number of times to move a job to the RUNNABLE status. If the value of attempts is greater than one, the job is retried on failure the same number of attempts as the value. Maximum value of 10. """ + PipeTargetParametersBatchJobParametersRetryStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attempts=attempts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attempts: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attempts is not None: - pulumi.set(__self__, "attempts", attempts) + _setter("attempts", attempts) @property @pulumi.getter @@ -1860,10 +2499,25 @@ def __init__(__self__, *, :param pulumi.Input[str] log_stream_name: The name of the log stream. :param pulumi.Input[str] timestamp: The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. This is the JSON path to the field in the event e.g. $.detail.timestamp """ + PipeTargetParametersCloudwatchLogsParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_stream_name=log_stream_name, + timestamp=timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_stream_name: Optional[pulumi.Input[str]] = None, + timestamp: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) if timestamp is not None: - pulumi.set(__self__, "timestamp", timestamp) + _setter("timestamp", timestamp) @property @pulumi.getter(name="logStreamName") @@ -1925,35 +2579,100 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[int] task_count: The number of tasks to create based on TaskDefinition. The default is 1. """ - pulumi.set(__self__, "task_definition_arn", task_definition_arn) + PipeTargetParametersEcsTaskParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + task_definition_arn=task_definition_arn, + capacity_provider_strategies=capacity_provider_strategies, + enable_ecs_managed_tags=enable_ecs_managed_tags, + enable_execute_command=enable_execute_command, + group=group, + launch_type=launch_type, + network_configuration=network_configuration, + overrides=overrides, + placement_constraints=placement_constraints, + placement_strategies=placement_strategies, + platform_version=platform_version, + propagate_tags=propagate_tags, + reference_id=reference_id, + tags=tags, + task_count=task_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + task_definition_arn: Optional[pulumi.Input[str]] = None, + capacity_provider_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersCapacityProviderStrategyArgs']]]] = None, + enable_ecs_managed_tags: Optional[pulumi.Input[bool]] = None, + enable_execute_command: Optional[pulumi.Input[bool]] = None, + group: Optional[pulumi.Input[str]] = None, + launch_type: Optional[pulumi.Input[str]] = None, + network_configuration: Optional[pulumi.Input['PipeTargetParametersEcsTaskParametersNetworkConfigurationArgs']] = None, + overrides: Optional[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesArgs']] = None, + placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersPlacementConstraintArgs']]]] = None, + placement_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersPlacementStrategyArgs']]]] = None, + platform_version: Optional[pulumi.Input[str]] = None, + propagate_tags: Optional[pulumi.Input[str]] = None, + reference_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + task_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if task_definition_arn is None and 'taskDefinitionArn' in kwargs: + task_definition_arn = kwargs['taskDefinitionArn'] + if task_definition_arn is None: + raise TypeError("Missing 'task_definition_arn' argument") + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if enable_ecs_managed_tags is None and 'enableEcsManagedTags' in kwargs: + enable_ecs_managed_tags = kwargs['enableEcsManagedTags'] + if enable_execute_command is None and 'enableExecuteCommand' in kwargs: + enable_execute_command = kwargs['enableExecuteCommand'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if placement_strategies is None and 'placementStrategies' in kwargs: + placement_strategies = kwargs['placementStrategies'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if reference_id is None and 'referenceId' in kwargs: + reference_id = kwargs['referenceId'] + if task_count is None and 'taskCount' in kwargs: + task_count = kwargs['taskCount'] + + _setter("task_definition_arn", task_definition_arn) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if enable_ecs_managed_tags is not None: - pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) + _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - pulumi.set(__self__, "enable_execute_command", enable_execute_command) + _setter("enable_execute_command", enable_execute_command) if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if overrides is not None: - pulumi.set(__self__, "overrides", overrides) + _setter("overrides", overrides) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if placement_strategies is not None: - pulumi.set(__self__, "placement_strategies", placement_strategies) + _setter("placement_strategies", placement_strategies) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if reference_id is not None: - pulumi.set(__self__, "reference_id", reference_id) + _setter("reference_id", reference_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if task_count is not None: - pulumi.set(__self__, "task_count", task_count) + _setter("task_count", task_count) @property @pulumi.getter(name="taskDefinitionArn") @@ -2147,11 +2866,30 @@ def __init__(__self__, *, :param pulumi.Input[int] base: The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, the default value of 0 is used. Maximum value of 100,000. :param pulumi.Input[int] weight: The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied. Maximum value of 1,000. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + PipeTargetParametersEcsTaskParametersCapacityProviderStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[pulumi.Input[str]] = None, + base: Optional[pulumi.Input[int]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -2197,8 +2935,21 @@ def __init__(__self__, *, """ :param pulumi.Input['PipeTargetParametersEcsTaskParametersNetworkConfigurationAwsVpcConfigurationArgs'] aws_vpc_configuration: Use this structure to specify the VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode. Detailed below. """ + PipeTargetParametersEcsTaskParametersNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_vpc_configuration=aws_vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_vpc_configuration: Optional[pulumi.Input['PipeTargetParametersEcsTaskParametersNetworkConfigurationAwsVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_vpc_configuration is None and 'awsVpcConfiguration' in kwargs: + aws_vpc_configuration = kwargs['awsVpcConfiguration'] + if aws_vpc_configuration is not None: - pulumi.set(__self__, "aws_vpc_configuration", aws_vpc_configuration) + _setter("aws_vpc_configuration", aws_vpc_configuration) @property @pulumi.getter(name="awsVpcConfiguration") @@ -2224,12 +2975,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: List of security groups associated with the stream. These security groups must all be in the same VPC. You can specify as many as five security groups. If you do not specify a security group, the default security group for the VPC is used. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: List of the subnets associated with the stream. These subnets must all be in the same VPC. You can specify as many as 16 subnets. """ + PipeTargetParametersEcsTaskParametersNetworkConfigurationAwsVpcConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + assign_public_ip=assign_public_ip, + security_groups=security_groups, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assign_public_ip: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) @property @pulumi.getter(name="assignPublicIp") @@ -2280,27 +3050,60 @@ def __init__(__self__, *, task_role_arn: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs']]] container_overrides: One or more container overrides that are sent to a task. Detailed below. - :param pulumi.Input[str] cpu: The cpu override for the task. + :param pulumi.Input[str] cpu: The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. :param pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesEphemeralStorageArgs'] ephemeral_storage: The ephemeral storage setting override for the task. Detailed below. :param pulumi.Input[str] execution_role_arn: The Amazon Resource Name (ARN) of the task execution IAM role override for the task. :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverrideArgs']]] inference_accelerator_overrides: List of Elastic Inference accelerator overrides for the task. Detailed below. - :param pulumi.Input[str] memory: The memory override for the task. + :param pulumi.Input[str] memory: The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. :param pulumi.Input[str] task_role_arn: The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. """ + PipeTargetParametersEcsTaskParametersOverridesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_overrides=container_overrides, + cpu=cpu, + ephemeral_storage=ephemeral_storage, + execution_role_arn=execution_role_arn, + inference_accelerator_overrides=inference_accelerator_overrides, + memory=memory, + task_role_arn=task_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs']]]] = None, + cpu: Optional[pulumi.Input[str]] = None, + ephemeral_storage: Optional[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesEphemeralStorageArgs']] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + inference_accelerator_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverrideArgs']]]] = None, + memory: Optional[pulumi.Input[str]] = None, + task_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_overrides is None and 'containerOverrides' in kwargs: + container_overrides = kwargs['containerOverrides'] + if ephemeral_storage is None and 'ephemeralStorage' in kwargs: + ephemeral_storage = kwargs['ephemeralStorage'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if inference_accelerator_overrides is None and 'inferenceAcceleratorOverrides' in kwargs: + inference_accelerator_overrides = kwargs['inferenceAcceleratorOverrides'] + if task_role_arn is None and 'taskRoleArn' in kwargs: + task_role_arn = kwargs['taskRoleArn'] + if container_overrides is not None: - pulumi.set(__self__, "container_overrides", container_overrides) + _setter("container_overrides", container_overrides) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if ephemeral_storage is not None: - pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) + _setter("ephemeral_storage", ephemeral_storage) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if inference_accelerator_overrides is not None: - pulumi.set(__self__, "inference_accelerator_overrides", inference_accelerator_overrides) + _setter("inference_accelerator_overrides", inference_accelerator_overrides) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if task_role_arn is not None: - pulumi.set(__self__, "task_role_arn", task_role_arn) + _setter("task_role_arn", task_role_arn) @property @pulumi.getter(name="containerOverrides") @@ -2318,7 +3121,7 @@ def container_overrides(self, value: Optional[pulumi.Input[Sequence[pulumi.Input @pulumi.getter def cpu(self) -> Optional[pulumi.Input[str]]: """ - The cpu override for the task. + The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. """ return pulumi.get(self, "cpu") @@ -2366,7 +3169,7 @@ def inference_accelerator_overrides(self, value: Optional[pulumi.Input[Sequence[ @pulumi.getter def memory(self) -> Optional[pulumi.Input[str]]: """ - The memory override for the task. + The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. """ return pulumi.get(self, "memory") @@ -2399,37 +3202,68 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input[str]]] commands: List of commands to send to the container that overrides the default command from the Docker image or the task definition. - :param pulumi.Input[int] cpu: The cpu override for the task. + :param pulumi.Input[Sequence[pulumi.Input[str]]] commands: List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. + :param pulumi.Input[int] cpu: The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs']]] environment_files: A list of files containing the environment variables to pass to a container, instead of the value from the container definition. Detailed below. - :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs']]] environments: The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. - :param pulumi.Input[int] memory: The memory override for the task. + :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs']]] environments: The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. + :param pulumi.Input[int] memory: The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. :param pulumi.Input[int] memory_reservation: The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. You must also specify a container name. :param pulumi.Input[str] name: Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. - :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs']]] resource_requirements: The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. - """ + :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs']]] resource_requirements: The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. + """ + PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + commands=commands, + cpu=cpu, + environment_files=environment_files, + environments=environments, + memory=memory, + memory_reservation=memory_reservation, + name=name, + resource_requirements=resource_requirements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + commands: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cpu: Optional[pulumi.Input[int]] = None, + environment_files: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs']]]] = None, + environments: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs']]]] = None, + memory: Optional[pulumi.Input[int]] = None, + memory_reservation: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if environment_files is None and 'environmentFiles' in kwargs: + environment_files = kwargs['environmentFiles'] + if memory_reservation is None and 'memoryReservation' in kwargs: + memory_reservation = kwargs['memoryReservation'] + if resource_requirements is None and 'resourceRequirements' in kwargs: + resource_requirements = kwargs['resourceRequirements'] + if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if environment_files is not None: - pulumi.set(__self__, "environment_files", environment_files) + _setter("environment_files", environment_files) if environments is not None: - pulumi.set(__self__, "environments", environments) + _setter("environments", environments) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if memory_reservation is not None: - pulumi.set(__self__, "memory_reservation", memory_reservation) + _setter("memory_reservation", memory_reservation) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_requirements is not None: - pulumi.set(__self__, "resource_requirements", resource_requirements) + _setter("resource_requirements", resource_requirements) @property @pulumi.getter def commands(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - List of commands to send to the container that overrides the default command from the Docker image or the task definition. + List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. """ return pulumi.get(self, "commands") @@ -2441,7 +3275,7 @@ def commands(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter def cpu(self) -> Optional[pulumi.Input[int]]: """ - The cpu override for the task. + The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. """ return pulumi.get(self, "cpu") @@ -2465,7 +3299,7 @@ def environment_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[' @pulumi.getter def environments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs']]]]: """ - The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. """ return pulumi.get(self, "environments") @@ -2477,7 +3311,7 @@ def environments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PipeT @pulumi.getter def memory(self) -> Optional[pulumi.Input[int]]: """ - The memory override for the task. + The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. """ return pulumi.get(self, "memory") @@ -2513,7 +3347,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="resourceRequirements") def resource_requirements(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs']]]]: """ - The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. """ return pulumi.get(self, "resource_requirements") @@ -2529,12 +3363,25 @@ def __init__(__self__, *, value: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] name: Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. - :param pulumi.Input[str] value: The value of the key-value pair. For environment variables, this is the value of the environment variable. - """ + :param pulumi.Input[str] value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. + """ + PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -2552,7 +3399,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def value(self) -> Optional[pulumi.Input[str]]: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -2567,17 +3414,34 @@ def __init__(__self__, *, type: pulumi.Input[str], value: pulumi.Input[str]): """ - :param pulumi.Input[str] type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. - :param pulumi.Input[str] value: The value of the key-value pair. For environment variables, this is the value of the environment variable. - """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + :param pulumi.Input[str] type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. + :param pulumi.Input[str] value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. + """ + PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -2589,7 +3453,7 @@ def type(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[str]: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -2604,17 +3468,34 @@ def __init__(__self__, *, type: pulumi.Input[str], value: pulumi.Input[str]): """ - :param pulumi.Input[str] type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. - :param pulumi.Input[str] value: The value of the key-value pair. For environment variables, this is the value of the environment variable. - """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + :param pulumi.Input[str] type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. + :param pulumi.Input[str] value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. + """ + PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -2626,7 +3507,7 @@ def type(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[str]: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -2642,7 +3523,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] size_in_gib: The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 21 GiB and the maximum supported value is 200 GiB. """ - pulumi.set(__self__, "size_in_gib", size_in_gib) + PipeTargetParametersEcsTaskParametersOverridesEphemeralStorageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + size_in_gib=size_in_gib, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size_in_gib: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size_in_gib is None and 'sizeInGib' in kwargs: + size_in_gib = kwargs['sizeInGib'] + if size_in_gib is None: + raise TypeError("Missing 'size_in_gib' argument") + + _setter("size_in_gib", size_in_gib) @property @pulumi.getter(name="sizeInGib") @@ -2666,10 +3562,27 @@ def __init__(__self__, *, :param pulumi.Input[str] device_name: The Elastic Inference accelerator device name to override for the task. This parameter must match a deviceName specified in the task definition. :param pulumi.Input[str] device_type: The Elastic Inference accelerator type to use. """ + PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + device_type=device_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + device_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_type is None and 'deviceType' in kwargs: + device_type = kwargs['deviceType'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if device_type is not None: - pulumi.set(__self__, "device_type", device_type) + _setter("device_type", device_type) @property @pulumi.getter(name="deviceName") @@ -2703,12 +3616,25 @@ def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] expression: A cluster query language expression to apply to the constraint. You cannot specify an expression if the constraint type is distinctInstance. Maximum length of 2,000. - :param pulumi.Input[str] type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. - """ + :param pulumi.Input[str] type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. + """ + PipeTargetParametersEcsTaskParametersPlacementConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + expression=expression, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + expression: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -2726,7 +3652,7 @@ def expression(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -2742,12 +3668,25 @@ def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] field: The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used. Maximum length of 255. - :param pulumi.Input[str] type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. - """ + :param pulumi.Input[str] type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. + """ + PipeTargetParametersEcsTaskParametersPlacementStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -2765,7 +3704,7 @@ def field(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -2789,16 +3728,39 @@ def __init__(__self__, *, :param pulumi.Input[str] source: Source resource of the pipe (typically an ARN). :param pulumi.Input[str] time: The time stamp of the event, per RFC3339. If no time stamp is provided, the time stamp of the PutEvents call is used. This is the JSON path to the field in the event e.g. $.detail.timestamp """ + PipeTargetParametersEventbridgeEventBusParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + detail_type=detail_type, + endpoint_id=endpoint_id, + resources=resources, + source=source, + time=time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + detail_type: Optional[pulumi.Input[str]] = None, + endpoint_id: Optional[pulumi.Input[str]] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source: Optional[pulumi.Input[str]] = None, + time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detail_type is None and 'detailType' in kwargs: + detail_type = kwargs['detailType'] + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if detail_type is not None: - pulumi.set(__self__, "detail_type", detail_type) + _setter("detail_type", detail_type) if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if time is not None: - pulumi.set(__self__, "time", time) + _setter("time", time) @property @pulumi.getter(name="detailType") @@ -2872,12 +3834,33 @@ def __init__(__self__, *, :param pulumi.Input[str] path_parameter_values: The path parameter values to be used to populate API Gateway REST API or EventBridge ApiDestination path wildcards ("*"). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] query_string_parameters: Key-value mapping of the query strings that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination. """ + PipeTargetParametersHttpParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_parameters=header_parameters, + path_parameter_values=path_parameter_values, + query_string_parameters=query_string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + path_parameter_values: Optional[pulumi.Input[str]] = None, + query_string_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_parameters is None and 'headerParameters' in kwargs: + header_parameters = kwargs['headerParameters'] + if path_parameter_values is None and 'pathParameterValues' in kwargs: + path_parameter_values = kwargs['pathParameterValues'] + if query_string_parameters is None and 'queryStringParameters' in kwargs: + query_string_parameters = kwargs['queryStringParameters'] + if header_parameters is not None: - pulumi.set(__self__, "header_parameters", header_parameters) + _setter("header_parameters", header_parameters) if path_parameter_values is not None: - pulumi.set(__self__, "path_parameter_values", path_parameter_values) + _setter("path_parameter_values", path_parameter_values) if query_string_parameters is not None: - pulumi.set(__self__, "query_string_parameters", query_string_parameters) + _setter("query_string_parameters", query_string_parameters) @property @pulumi.getter(name="headerParameters") @@ -2923,7 +3906,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] partition_key: Determines which shard in the stream the data record is assigned to. Partition keys are Unicode strings with a maximum length limit of 256 characters for each key. Amazon Kinesis Data Streams uses the partition key as input to a hash function that maps the partition key and associated data to a specific shard. Specifically, an MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. """ - pulumi.set(__self__, "partition_key", partition_key) + PipeTargetParametersKinesisStreamParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + partition_key=partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + partition_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if partition_key is None and 'partitionKey' in kwargs: + partition_key = kwargs['partitionKey'] + if partition_key is None: + raise TypeError("Missing 'partition_key' argument") + + _setter("partition_key", partition_key) @property @pulumi.getter(name="partitionKey") @@ -2945,7 +3943,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] invocation_type: Specify whether to invoke the function synchronously or asynchronously. Valid Values: REQUEST_RESPONSE, FIRE_AND_FORGET. """ - pulumi.set(__self__, "invocation_type", invocation_type) + PipeTargetParametersLambdaFunctionParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + invocation_type=invocation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invocation_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invocation_type is None and 'invocationType' in kwargs: + invocation_type = kwargs['invocationType'] + if invocation_type is None: + raise TypeError("Missing 'invocation_type' argument") + + _setter("invocation_type", invocation_type) @property @pulumi.getter(name="invocationType") @@ -2977,16 +3990,49 @@ def __init__(__self__, *, :param pulumi.Input[str] statement_name: The name of the SQL statement. You can name the SQL statement when you create it to identify the query. :param pulumi.Input[bool] with_event: Indicates whether to send an event back to EventBridge after the SQL statement runs. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "sqls", sqls) + PipeTargetParametersRedshiftDataParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + sqls=sqls, + db_user=db_user, + secret_manager_arn=secret_manager_arn, + statement_name=statement_name, + with_event=with_event, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + sqls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + db_user: Optional[pulumi.Input[str]] = None, + secret_manager_arn: Optional[pulumi.Input[str]] = None, + statement_name: Optional[pulumi.Input[str]] = None, + with_event: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if sqls is None: + raise TypeError("Missing 'sqls' argument") + if db_user is None and 'dbUser' in kwargs: + db_user = kwargs['dbUser'] + if secret_manager_arn is None and 'secretManagerArn' in kwargs: + secret_manager_arn = kwargs['secretManagerArn'] + if statement_name is None and 'statementName' in kwargs: + statement_name = kwargs['statementName'] + if with_event is None and 'withEvent' in kwargs: + with_event = kwargs['withEvent'] + + _setter("database", database) + _setter("sqls", sqls) if db_user is not None: - pulumi.set(__self__, "db_user", db_user) + _setter("db_user", db_user) if secret_manager_arn is not None: - pulumi.set(__self__, "secret_manager_arn", secret_manager_arn) + _setter("secret_manager_arn", secret_manager_arn) if statement_name is not None: - pulumi.set(__self__, "statement_name", statement_name) + _setter("statement_name", statement_name) if with_event is not None: - pulumi.set(__self__, "with_event", with_event) + _setter("with_event", with_event) @property @pulumi.getter @@ -3068,8 +4114,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs']]] pipeline_parameters: List of Parameter names and values for SageMaker Model Building Pipeline execution. Detailed below. """ + PipeTargetParametersSagemakerPipelineParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pipeline_parameters=pipeline_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pipeline_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pipeline_parameters is None and 'pipelineParameters' in kwargs: + pipeline_parameters = kwargs['pipelineParameters'] + if pipeline_parameters is not None: - pulumi.set(__self__, "pipeline_parameters", pipeline_parameters) + _setter("pipeline_parameters", pipeline_parameters) @property @pulumi.getter(name="pipelineParameters") @@ -3091,10 +4150,27 @@ def __init__(__self__, *, value: pulumi.Input[str]): """ :param pulumi.Input[str] name: Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. - :param pulumi.Input[str] value: The value of the key-value pair. For environment variables, this is the value of the environment variable. - """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + :param pulumi.Input[str] value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. + """ + PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3112,7 +4188,7 @@ def name(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[str]: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -3130,10 +4206,27 @@ def __init__(__self__, *, :param pulumi.Input[str] message_deduplication_id: This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of sent messages. :param pulumi.Input[str] message_group_id: The FIFO message group ID to use as the target. """ + PipeTargetParametersSqsQueueParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_deduplication_id=message_deduplication_id, + message_group_id=message_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_deduplication_id: Optional[pulumi.Input[str]] = None, + message_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_deduplication_id is None and 'messageDeduplicationId' in kwargs: + message_deduplication_id = kwargs['messageDeduplicationId'] + if message_group_id is None and 'messageGroupId' in kwargs: + message_group_id = kwargs['messageGroupId'] + if message_deduplication_id is not None: - pulumi.set(__self__, "message_deduplication_id", message_deduplication_id) + _setter("message_deduplication_id", message_deduplication_id) if message_group_id is not None: - pulumi.set(__self__, "message_group_id", message_group_id) + _setter("message_group_id", message_group_id) @property @pulumi.getter(name="messageDeduplicationId") @@ -3167,7 +4260,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] invocation_type: Specify whether to invoke the function synchronously or asynchronously. Valid Values: REQUEST_RESPONSE, FIRE_AND_FORGET. """ - pulumi.set(__self__, "invocation_type", invocation_type) + PipeTargetParametersStepFunctionStateMachineParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + invocation_type=invocation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invocation_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invocation_type is None and 'invocationType' in kwargs: + invocation_type = kwargs['invocationType'] + if invocation_type is None: + raise TypeError("Missing 'invocation_type' argument") + + _setter("invocation_type", invocation_type) @property @pulumi.getter(name="invocationType") diff --git a/sdk/python/pulumi_aws/pipes/outputs.py b/sdk/python/pulumi_aws/pipes/outputs.py index 8cc258b09ba..e18736793c1 100644 --- a/sdk/python/pulumi_aws/pipes/outputs.py +++ b/sdk/python/pulumi_aws/pipes/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -91,10 +91,27 @@ def __init__(__self__, *, :param 'PipeEnrichmentParametersHttpParametersArgs' http_parameters: Contains the HTTP parameters to use when the target is a API Gateway REST endpoint or EventBridge ApiDestination. If you specify an API Gateway REST API or EventBridge ApiDestination as a target, you can use this parameter to specify headers, path parameters, and query string keys/values as part of your target invoking request. If you're using ApiDestinations, the corresponding Connection can also have these values configured. In case of any conflicting keys, values from the Connection take precedence. Detailed below. :param str input_template: Valid JSON text passed to the target. In this case, nothing from the event itself is passed to the target. Maximum length of 8192 characters. """ + PipeEnrichmentParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_parameters=http_parameters, + input_template=input_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_parameters: Optional['outputs.PipeEnrichmentParametersHttpParameters'] = None, + input_template: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_parameters is None and 'httpParameters' in kwargs: + http_parameters = kwargs['httpParameters'] + if input_template is None and 'inputTemplate' in kwargs: + input_template = kwargs['inputTemplate'] + if http_parameters is not None: - pulumi.set(__self__, "http_parameters", http_parameters) + _setter("http_parameters", http_parameters) if input_template is not None: - pulumi.set(__self__, "input_template", input_template) + _setter("input_template", input_template) @property @pulumi.getter(name="httpParameters") @@ -145,12 +162,33 @@ def __init__(__self__, *, :param str path_parameter_values: The path parameter values to be used to populate API Gateway REST API or EventBridge ApiDestination path wildcards ("*"). :param Mapping[str, str] query_string_parameters: Key-value mapping of the query strings that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination. """ + PipeEnrichmentParametersHttpParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_parameters=header_parameters, + path_parameter_values=path_parameter_values, + query_string_parameters=query_string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_parameters: Optional[Mapping[str, str]] = None, + path_parameter_values: Optional[str] = None, + query_string_parameters: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_parameters is None and 'headerParameters' in kwargs: + header_parameters = kwargs['headerParameters'] + if path_parameter_values is None and 'pathParameterValues' in kwargs: + path_parameter_values = kwargs['pathParameterValues'] + if query_string_parameters is None and 'queryStringParameters' in kwargs: + query_string_parameters = kwargs['queryStringParameters'] + if header_parameters is not None: - pulumi.set(__self__, "header_parameters", header_parameters) + _setter("header_parameters", header_parameters) if path_parameter_values is not None: - pulumi.set(__self__, "path_parameter_values", path_parameter_values) + _setter("path_parameter_values", path_parameter_values) if query_string_parameters is not None: - pulumi.set(__self__, "query_string_parameters", query_string_parameters) + _setter("query_string_parameters", query_string_parameters) @property @pulumi.getter(name="headerParameters") @@ -229,22 +267,63 @@ def __init__(__self__, *, :param 'PipeSourceParametersSelfManagedKafkaParametersArgs' self_managed_kafka_parameters: The parameters for using a self-managed Apache Kafka stream as a source. Detailed below. :param 'PipeSourceParametersSqsQueueParametersArgs' sqs_queue_parameters: The parameters for using a Amazon SQS stream as a source. Detailed below. """ + PipeSourceParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + activemq_broker_parameters=activemq_broker_parameters, + dynamodb_stream_parameters=dynamodb_stream_parameters, + filter_criteria=filter_criteria, + kinesis_stream_parameters=kinesis_stream_parameters, + managed_streaming_kafka_parameters=managed_streaming_kafka_parameters, + rabbitmq_broker_parameters=rabbitmq_broker_parameters, + self_managed_kafka_parameters=self_managed_kafka_parameters, + sqs_queue_parameters=sqs_queue_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activemq_broker_parameters: Optional['outputs.PipeSourceParametersActivemqBrokerParameters'] = None, + dynamodb_stream_parameters: Optional['outputs.PipeSourceParametersDynamodbStreamParameters'] = None, + filter_criteria: Optional['outputs.PipeSourceParametersFilterCriteria'] = None, + kinesis_stream_parameters: Optional['outputs.PipeSourceParametersKinesisStreamParameters'] = None, + managed_streaming_kafka_parameters: Optional['outputs.PipeSourceParametersManagedStreamingKafkaParameters'] = None, + rabbitmq_broker_parameters: Optional['outputs.PipeSourceParametersRabbitmqBrokerParameters'] = None, + self_managed_kafka_parameters: Optional['outputs.PipeSourceParametersSelfManagedKafkaParameters'] = None, + sqs_queue_parameters: Optional['outputs.PipeSourceParametersSqsQueueParameters'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activemq_broker_parameters is None and 'activemqBrokerParameters' in kwargs: + activemq_broker_parameters = kwargs['activemqBrokerParameters'] + if dynamodb_stream_parameters is None and 'dynamodbStreamParameters' in kwargs: + dynamodb_stream_parameters = kwargs['dynamodbStreamParameters'] + if filter_criteria is None and 'filterCriteria' in kwargs: + filter_criteria = kwargs['filterCriteria'] + if kinesis_stream_parameters is None and 'kinesisStreamParameters' in kwargs: + kinesis_stream_parameters = kwargs['kinesisStreamParameters'] + if managed_streaming_kafka_parameters is None and 'managedStreamingKafkaParameters' in kwargs: + managed_streaming_kafka_parameters = kwargs['managedStreamingKafkaParameters'] + if rabbitmq_broker_parameters is None and 'rabbitmqBrokerParameters' in kwargs: + rabbitmq_broker_parameters = kwargs['rabbitmqBrokerParameters'] + if self_managed_kafka_parameters is None and 'selfManagedKafkaParameters' in kwargs: + self_managed_kafka_parameters = kwargs['selfManagedKafkaParameters'] + if sqs_queue_parameters is None and 'sqsQueueParameters' in kwargs: + sqs_queue_parameters = kwargs['sqsQueueParameters'] + if activemq_broker_parameters is not None: - pulumi.set(__self__, "activemq_broker_parameters", activemq_broker_parameters) + _setter("activemq_broker_parameters", activemq_broker_parameters) if dynamodb_stream_parameters is not None: - pulumi.set(__self__, "dynamodb_stream_parameters", dynamodb_stream_parameters) + _setter("dynamodb_stream_parameters", dynamodb_stream_parameters) if filter_criteria is not None: - pulumi.set(__self__, "filter_criteria", filter_criteria) + _setter("filter_criteria", filter_criteria) if kinesis_stream_parameters is not None: - pulumi.set(__self__, "kinesis_stream_parameters", kinesis_stream_parameters) + _setter("kinesis_stream_parameters", kinesis_stream_parameters) if managed_streaming_kafka_parameters is not None: - pulumi.set(__self__, "managed_streaming_kafka_parameters", managed_streaming_kafka_parameters) + _setter("managed_streaming_kafka_parameters", managed_streaming_kafka_parameters) if rabbitmq_broker_parameters is not None: - pulumi.set(__self__, "rabbitmq_broker_parameters", rabbitmq_broker_parameters) + _setter("rabbitmq_broker_parameters", rabbitmq_broker_parameters) if self_managed_kafka_parameters is not None: - pulumi.set(__self__, "self_managed_kafka_parameters", self_managed_kafka_parameters) + _setter("self_managed_kafka_parameters", self_managed_kafka_parameters) if sqs_queue_parameters is not None: - pulumi.set(__self__, "sqs_queue_parameters", sqs_queue_parameters) + _setter("sqs_queue_parameters", sqs_queue_parameters) @property @pulumi.getter(name="activemqBrokerParameters") @@ -345,12 +424,39 @@ def __init__(__self__, *, :param int batch_size: The maximum number of records to include in each batch. Maximum value of 10000. :param int maximum_batching_window_in_seconds: The maximum length of a time to wait for events. Maximum value of 300. """ - pulumi.set(__self__, "credentials", credentials) - pulumi.set(__self__, "queue_name", queue_name) + PipeSourceParametersActivemqBrokerParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials=credentials, + queue_name=queue_name, + batch_size=batch_size, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials: Optional['outputs.PipeSourceParametersActivemqBrokerParametersCredentials'] = None, + queue_name: Optional[str] = None, + batch_size: Optional[int] = None, + maximum_batching_window_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credentials is None: + raise TypeError("Missing 'credentials' argument") + if queue_name is None and 'queueName' in kwargs: + queue_name = kwargs['queueName'] + if queue_name is None: + raise TypeError("Missing 'queue_name' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + + _setter("credentials", credentials) + _setter("queue_name", queue_name) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) @property @pulumi.getter @@ -407,15 +513,30 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, basic_auth: str): """ - :param str basic_auth: The ARN of the Secrets Manager secret containing the basic auth credentials. + :param str basic_auth: The ARN of the Secrets Manager secret containing the credentials. """ - pulumi.set(__self__, "basic_auth", basic_auth) + PipeSourceParametersActivemqBrokerParametersCredentials._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth=basic_auth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth is None and 'basicAuth' in kwargs: + basic_auth = kwargs['basicAuth'] + if basic_auth is None: + raise TypeError("Missing 'basic_auth' argument") + + _setter("basic_auth", basic_auth) @property @pulumi.getter(name="basicAuth") def basic_auth(self) -> str: """ - The ARN of the Secrets Manager secret containing the basic auth credentials. + The ARN of the Secrets Manager secret containing the credentials. """ return pulumi.get(self, "basic_auth") @@ -472,21 +593,64 @@ def __init__(__self__, *, :param str on_partial_batch_item_failure: Define how to handle item process failures. AUTOMATIC_BISECT halves each batch and retry each half until all the records are processed or there is one failed message left in the batch. Valid values: AUTOMATIC_BISECT. :param int parallelization_factor: The number of batches to process concurrently from each shard. The default value is 1. Maximum value of 10. """ - pulumi.set(__self__, "starting_position", starting_position) + PipeSourceParametersDynamodbStreamParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + starting_position=starting_position, + batch_size=batch_size, + dead_letter_config=dead_letter_config, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + maximum_record_age_in_seconds=maximum_record_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + on_partial_batch_item_failure=on_partial_batch_item_failure, + parallelization_factor=parallelization_factor, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + starting_position: Optional[str] = None, + batch_size: Optional[int] = None, + dead_letter_config: Optional['outputs.PipeSourceParametersDynamodbStreamParametersDeadLetterConfig'] = None, + maximum_batching_window_in_seconds: Optional[int] = None, + maximum_record_age_in_seconds: Optional[int] = None, + maximum_retry_attempts: Optional[int] = None, + on_partial_batch_item_failure: Optional[str] = None, + parallelization_factor: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + if starting_position is None: + raise TypeError("Missing 'starting_position' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if maximum_record_age_in_seconds is None and 'maximumRecordAgeInSeconds' in kwargs: + maximum_record_age_in_seconds = kwargs['maximumRecordAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if on_partial_batch_item_failure is None and 'onPartialBatchItemFailure' in kwargs: + on_partial_batch_item_failure = kwargs['onPartialBatchItemFailure'] + if parallelization_factor is None and 'parallelizationFactor' in kwargs: + parallelization_factor = kwargs['parallelizationFactor'] + + _setter("starting_position", starting_position) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if maximum_record_age_in_seconds is not None: - pulumi.set(__self__, "maximum_record_age_in_seconds", maximum_record_age_in_seconds) + _setter("maximum_record_age_in_seconds", maximum_record_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) if on_partial_batch_item_failure is not None: - pulumi.set(__self__, "on_partial_batch_item_failure", on_partial_batch_item_failure) + _setter("on_partial_batch_item_failure", on_partial_batch_item_failure) if parallelization_factor is not None: - pulumi.set(__self__, "parallelization_factor", parallelization_factor) + _setter("parallelization_factor", parallelization_factor) @property @pulumi.getter(name="startingPosition") @@ -560,8 +724,19 @@ def __init__(__self__, *, """ :param str arn: The ARN of the Amazon SQS queue specified as the target for the dead-letter queue. """ + PipeSourceParametersDynamodbStreamParametersDeadLetterConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) @property @pulumi.getter @@ -579,8 +754,19 @@ def __init__(__self__, *, """ :param Sequence['PipeSourceParametersFilterCriteriaFilterArgs'] filters: An array of up to 5 event patterns. Detailed below. """ + PipeSourceParametersFilterCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + filters=filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filters: Optional[Sequence['outputs.PipeSourceParametersFilterCriteriaFilter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) @property @pulumi.getter @@ -598,7 +784,20 @@ def __init__(__self__, *, """ :param str pattern: The event pattern. At most 4096 characters. """ - pulumi.set(__self__, "pattern", pattern) + PipeSourceParametersFilterCriteriaFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + pattern=pattern, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pattern: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pattern is None: + raise TypeError("Missing 'pattern' argument") + + _setter("pattern", pattern) @property @pulumi.getter @@ -665,23 +864,70 @@ def __init__(__self__, *, :param int parallelization_factor: The number of batches to process concurrently from each shard. The default value is 1. Maximum value of 10. :param str starting_position_timestamp: With StartingPosition set to AT_TIMESTAMP, the time from which to start reading, in Unix time seconds. """ - pulumi.set(__self__, "starting_position", starting_position) + PipeSourceParametersKinesisStreamParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + starting_position=starting_position, + batch_size=batch_size, + dead_letter_config=dead_letter_config, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + maximum_record_age_in_seconds=maximum_record_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + on_partial_batch_item_failure=on_partial_batch_item_failure, + parallelization_factor=parallelization_factor, + starting_position_timestamp=starting_position_timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + starting_position: Optional[str] = None, + batch_size: Optional[int] = None, + dead_letter_config: Optional['outputs.PipeSourceParametersKinesisStreamParametersDeadLetterConfig'] = None, + maximum_batching_window_in_seconds: Optional[int] = None, + maximum_record_age_in_seconds: Optional[int] = None, + maximum_retry_attempts: Optional[int] = None, + on_partial_batch_item_failure: Optional[str] = None, + parallelization_factor: Optional[int] = None, + starting_position_timestamp: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + if starting_position is None: + raise TypeError("Missing 'starting_position' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if maximum_record_age_in_seconds is None and 'maximumRecordAgeInSeconds' in kwargs: + maximum_record_age_in_seconds = kwargs['maximumRecordAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if on_partial_batch_item_failure is None and 'onPartialBatchItemFailure' in kwargs: + on_partial_batch_item_failure = kwargs['onPartialBatchItemFailure'] + if parallelization_factor is None and 'parallelizationFactor' in kwargs: + parallelization_factor = kwargs['parallelizationFactor'] + if starting_position_timestamp is None and 'startingPositionTimestamp' in kwargs: + starting_position_timestamp = kwargs['startingPositionTimestamp'] + + _setter("starting_position", starting_position) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if maximum_record_age_in_seconds is not None: - pulumi.set(__self__, "maximum_record_age_in_seconds", maximum_record_age_in_seconds) + _setter("maximum_record_age_in_seconds", maximum_record_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) if on_partial_batch_item_failure is not None: - pulumi.set(__self__, "on_partial_batch_item_failure", on_partial_batch_item_failure) + _setter("on_partial_batch_item_failure", on_partial_batch_item_failure) if parallelization_factor is not None: - pulumi.set(__self__, "parallelization_factor", parallelization_factor) + _setter("parallelization_factor", parallelization_factor) if starting_position_timestamp is not None: - pulumi.set(__self__, "starting_position_timestamp", starting_position_timestamp) + _setter("starting_position_timestamp", starting_position_timestamp) @property @pulumi.getter(name="startingPosition") @@ -763,8 +1009,19 @@ def __init__(__self__, *, """ :param str arn: The ARN of the Amazon SQS queue specified as the target for the dead-letter queue. """ + PipeSourceParametersKinesisStreamParametersDeadLetterConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) @property @pulumi.getter @@ -817,17 +1074,50 @@ def __init__(__self__, *, :param int maximum_batching_window_in_seconds: The maximum length of a time to wait for events. Maximum value of 300. :param str starting_position: The position in a stream from which to start reading. Valid values: TRIM_HORIZON, LATEST. """ - pulumi.set(__self__, "topic_name", topic_name) + PipeSourceParametersManagedStreamingKafkaParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + topic_name=topic_name, + batch_size=batch_size, + consumer_group_id=consumer_group_id, + credentials=credentials, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + starting_position=starting_position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + topic_name: Optional[str] = None, + batch_size: Optional[int] = None, + consumer_group_id: Optional[str] = None, + credentials: Optional['outputs.PipeSourceParametersManagedStreamingKafkaParametersCredentials'] = None, + maximum_batching_window_in_seconds: Optional[int] = None, + starting_position: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if topic_name is None and 'topicName' in kwargs: + topic_name = kwargs['topicName'] + if topic_name is None: + raise TypeError("Missing 'topic_name' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if consumer_group_id is None and 'consumerGroupId' in kwargs: + consumer_group_id = kwargs['consumerGroupId'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + + _setter("topic_name", topic_name) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if consumer_group_id is not None: - pulumi.set(__self__, "consumer_group_id", consumer_group_id) + _setter("consumer_group_id", consumer_group_id) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if starting_position is not None: - pulumi.set(__self__, "starting_position", starting_position) + _setter("starting_position", starting_position) @property @pulumi.getter(name="topicName") @@ -906,10 +1196,27 @@ def __init__(__self__, *, :param str client_certificate_tls_auth: The ARN of the Secrets Manager secret containing the credentials. :param str sasl_scram512_auth: The ARN of the Secrets Manager secret containing the credentials. """ + PipeSourceParametersManagedStreamingKafkaParametersCredentials._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_certificate_tls_auth=client_certificate_tls_auth, + sasl_scram512_auth=sasl_scram512_auth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_certificate_tls_auth: Optional[str] = None, + sasl_scram512_auth: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_certificate_tls_auth is None and 'clientCertificateTlsAuth' in kwargs: + client_certificate_tls_auth = kwargs['clientCertificateTlsAuth'] + if sasl_scram512_auth is None and 'saslScram512Auth' in kwargs: + sasl_scram512_auth = kwargs['saslScram512Auth'] + if client_certificate_tls_auth is not None: - pulumi.set(__self__, "client_certificate_tls_auth", client_certificate_tls_auth) + _setter("client_certificate_tls_auth", client_certificate_tls_auth) if sasl_scram512_auth is not None: - pulumi.set(__self__, "sasl_scram512_auth", sasl_scram512_auth) + _setter("sasl_scram512_auth", sasl_scram512_auth) @property @pulumi.getter(name="clientCertificateTlsAuth") @@ -966,14 +1273,45 @@ def __init__(__self__, *, :param int maximum_batching_window_in_seconds: The maximum length of a time to wait for events. Maximum value of 300. :param str virtual_host: The name of the virtual host associated with the source broker. Maximum length of 200. """ - pulumi.set(__self__, "credentials", credentials) - pulumi.set(__self__, "queue_name", queue_name) + PipeSourceParametersRabbitmqBrokerParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + credentials=credentials, + queue_name=queue_name, + batch_size=batch_size, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + virtual_host=virtual_host, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + credentials: Optional['outputs.PipeSourceParametersRabbitmqBrokerParametersCredentials'] = None, + queue_name: Optional[str] = None, + batch_size: Optional[int] = None, + maximum_batching_window_in_seconds: Optional[int] = None, + virtual_host: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if credentials is None: + raise TypeError("Missing 'credentials' argument") + if queue_name is None and 'queueName' in kwargs: + queue_name = kwargs['queueName'] + if queue_name is None: + raise TypeError("Missing 'queue_name' argument") + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if virtual_host is None and 'virtualHost' in kwargs: + virtual_host = kwargs['virtualHost'] + + _setter("credentials", credentials) + _setter("queue_name", queue_name) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if virtual_host is not None: - pulumi.set(__self__, "virtual_host", virtual_host) + _setter("virtual_host", virtual_host) @property @pulumi.getter @@ -1038,15 +1376,30 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, basic_auth: str): """ - :param str basic_auth: The ARN of the Secrets Manager secret containing the basic auth credentials. + :param str basic_auth: The ARN of the Secrets Manager secret containing the credentials. """ - pulumi.set(__self__, "basic_auth", basic_auth) + PipeSourceParametersRabbitmqBrokerParametersCredentials._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth=basic_auth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth is None and 'basicAuth' in kwargs: + basic_auth = kwargs['basicAuth'] + if basic_auth is None: + raise TypeError("Missing 'basic_auth' argument") + + _setter("basic_auth", basic_auth) @property @pulumi.getter(name="basicAuth") def basic_auth(self) -> str: """ - The ARN of the Secrets Manager secret containing the basic auth credentials. + The ARN of the Secrets Manager secret containing the credentials. """ return pulumi.get(self, "basic_auth") @@ -1103,23 +1456,66 @@ def __init__(__self__, *, :param str starting_position: The position in a stream from which to start reading. Valid values: TRIM_HORIZON, LATEST. :param 'PipeSourceParametersSelfManagedKafkaParametersVpcArgs' vpc: This structure specifies the VPC subnets and security groups for the stream, and whether a public IP address is to be used. Detailed below. """ - pulumi.set(__self__, "topic_name", topic_name) + PipeSourceParametersSelfManagedKafkaParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + topic_name=topic_name, + additional_bootstrap_servers=additional_bootstrap_servers, + batch_size=batch_size, + consumer_group_id=consumer_group_id, + credentials=credentials, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + server_root_ca_certificate=server_root_ca_certificate, + starting_position=starting_position, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + topic_name: Optional[str] = None, + additional_bootstrap_servers: Optional[Sequence[str]] = None, + batch_size: Optional[int] = None, + consumer_group_id: Optional[str] = None, + credentials: Optional['outputs.PipeSourceParametersSelfManagedKafkaParametersCredentials'] = None, + maximum_batching_window_in_seconds: Optional[int] = None, + server_root_ca_certificate: Optional[str] = None, + starting_position: Optional[str] = None, + vpc: Optional['outputs.PipeSourceParametersSelfManagedKafkaParametersVpc'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if topic_name is None and 'topicName' in kwargs: + topic_name = kwargs['topicName'] + if topic_name is None: + raise TypeError("Missing 'topic_name' argument") + if additional_bootstrap_servers is None and 'additionalBootstrapServers' in kwargs: + additional_bootstrap_servers = kwargs['additionalBootstrapServers'] + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if consumer_group_id is None and 'consumerGroupId' in kwargs: + consumer_group_id = kwargs['consumerGroupId'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if server_root_ca_certificate is None and 'serverRootCaCertificate' in kwargs: + server_root_ca_certificate = kwargs['serverRootCaCertificate'] + if starting_position is None and 'startingPosition' in kwargs: + starting_position = kwargs['startingPosition'] + + _setter("topic_name", topic_name) if additional_bootstrap_servers is not None: - pulumi.set(__self__, "additional_bootstrap_servers", additional_bootstrap_servers) + _setter("additional_bootstrap_servers", additional_bootstrap_servers) if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if consumer_group_id is not None: - pulumi.set(__self__, "consumer_group_id", consumer_group_id) + _setter("consumer_group_id", consumer_group_id) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) if server_root_ca_certificate is not None: - pulumi.set(__self__, "server_root_ca_certificate", server_root_ca_certificate) + _setter("server_root_ca_certificate", server_root_ca_certificate) if starting_position is not None: - pulumi.set(__self__, "starting_position", starting_position) + _setter("starting_position", starting_position) if vpc is not None: - pulumi.set(__self__, "vpc", vpc) + _setter("vpc", vpc) @property @pulumi.getter(name="topicName") @@ -1225,24 +1621,51 @@ def __init__(__self__, *, sasl_scram256_auth: Optional[str] = None, sasl_scram512_auth: Optional[str] = None): """ - :param str basic_auth: The ARN of the Secrets Manager secret containing the basic auth credentials. + :param str basic_auth: The ARN of the Secrets Manager secret containing the credentials. :param str client_certificate_tls_auth: The ARN of the Secrets Manager secret containing the credentials. :param str sasl_scram256_auth: The ARN of the Secrets Manager secret containing the credentials. :param str sasl_scram512_auth: The ARN of the Secrets Manager secret containing the credentials. """ - pulumi.set(__self__, "basic_auth", basic_auth) + PipeSourceParametersSelfManagedKafkaParametersCredentials._configure( + lambda key, value: pulumi.set(__self__, key, value), + basic_auth=basic_auth, + client_certificate_tls_auth=client_certificate_tls_auth, + sasl_scram256_auth=sasl_scram256_auth, + sasl_scram512_auth=sasl_scram512_auth, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + basic_auth: Optional[str] = None, + client_certificate_tls_auth: Optional[str] = None, + sasl_scram256_auth: Optional[str] = None, + sasl_scram512_auth: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if basic_auth is None and 'basicAuth' in kwargs: + basic_auth = kwargs['basicAuth'] + if basic_auth is None: + raise TypeError("Missing 'basic_auth' argument") + if client_certificate_tls_auth is None and 'clientCertificateTlsAuth' in kwargs: + client_certificate_tls_auth = kwargs['clientCertificateTlsAuth'] + if sasl_scram256_auth is None and 'saslScram256Auth' in kwargs: + sasl_scram256_auth = kwargs['saslScram256Auth'] + if sasl_scram512_auth is None and 'saslScram512Auth' in kwargs: + sasl_scram512_auth = kwargs['saslScram512Auth'] + + _setter("basic_auth", basic_auth) if client_certificate_tls_auth is not None: - pulumi.set(__self__, "client_certificate_tls_auth", client_certificate_tls_auth) + _setter("client_certificate_tls_auth", client_certificate_tls_auth) if sasl_scram256_auth is not None: - pulumi.set(__self__, "sasl_scram256_auth", sasl_scram256_auth) + _setter("sasl_scram256_auth", sasl_scram256_auth) if sasl_scram512_auth is not None: - pulumi.set(__self__, "sasl_scram512_auth", sasl_scram512_auth) + _setter("sasl_scram512_auth", sasl_scram512_auth) @property @pulumi.getter(name="basicAuth") def basic_auth(self) -> str: """ - The ARN of the Secrets Manager secret containing the basic auth credentials. + The ARN of the Secrets Manager secret containing the credentials. """ return pulumi.get(self, "basic_auth") @@ -1297,10 +1720,25 @@ def __init__(__self__, *, :param Sequence[str] security_groups: List of security groups associated with the stream. These security groups must all be in the same VPC. You can specify as many as five security groups. If you do not specify a security group, the default security group for the VPC is used. :param Sequence[str] subnets: List of the subnets associated with the stream. These subnets must all be in the same VPC. You can specify as many as 16 subnets. """ + PipeSourceParametersSelfManagedKafkaParametersVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_groups=security_groups, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_groups: Optional[Sequence[str]] = None, + subnets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroups") @@ -1347,10 +1785,27 @@ def __init__(__self__, *, :param int batch_size: The maximum number of records to include in each batch. Maximum value of 10000. :param int maximum_batching_window_in_seconds: The maximum length of a time to wait for events. Maximum value of 300. """ + PipeSourceParametersSqsQueueParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + batch_size=batch_size, + maximum_batching_window_in_seconds=maximum_batching_window_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + batch_size: Optional[int] = None, + maximum_batching_window_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if batch_size is None and 'batchSize' in kwargs: + batch_size = kwargs['batchSize'] + if maximum_batching_window_in_seconds is None and 'maximumBatchingWindowInSeconds' in kwargs: + maximum_batching_window_in_seconds = kwargs['maximumBatchingWindowInSeconds'] + if batch_size is not None: - pulumi.set(__self__, "batch_size", batch_size) + _setter("batch_size", batch_size) if maximum_batching_window_in_seconds is not None: - pulumi.set(__self__, "maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) + _setter("maximum_batching_window_in_seconds", maximum_batching_window_in_seconds) @property @pulumi.getter(name="batchSize") @@ -1437,30 +1892,87 @@ def __init__(__self__, *, :param 'PipeTargetParametersSqsQueueParametersArgs' sqs_queue_parameters: The parameters for using a Amazon SQS stream as a target. Detailed below. :param 'PipeTargetParametersStepFunctionStateMachineParametersArgs' step_function_state_machine_parameters: The parameters for using a Step Functions state machine as a target. Detailed below. """ + PipeTargetParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + batch_job_parameters=batch_job_parameters, + cloudwatch_logs_parameters=cloudwatch_logs_parameters, + ecs_task_parameters=ecs_task_parameters, + eventbridge_event_bus_parameters=eventbridge_event_bus_parameters, + http_parameters=http_parameters, + input_template=input_template, + kinesis_stream_parameters=kinesis_stream_parameters, + lambda_function_parameters=lambda_function_parameters, + redshift_data_parameters=redshift_data_parameters, + sagemaker_pipeline_parameters=sagemaker_pipeline_parameters, + sqs_queue_parameters=sqs_queue_parameters, + step_function_state_machine_parameters=step_function_state_machine_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + batch_job_parameters: Optional['outputs.PipeTargetParametersBatchJobParameters'] = None, + cloudwatch_logs_parameters: Optional['outputs.PipeTargetParametersCloudwatchLogsParameters'] = None, + ecs_task_parameters: Optional['outputs.PipeTargetParametersEcsTaskParameters'] = None, + eventbridge_event_bus_parameters: Optional['outputs.PipeTargetParametersEventbridgeEventBusParameters'] = None, + http_parameters: Optional['outputs.PipeTargetParametersHttpParameters'] = None, + input_template: Optional[str] = None, + kinesis_stream_parameters: Optional['outputs.PipeTargetParametersKinesisStreamParameters'] = None, + lambda_function_parameters: Optional['outputs.PipeTargetParametersLambdaFunctionParameters'] = None, + redshift_data_parameters: Optional['outputs.PipeTargetParametersRedshiftDataParameters'] = None, + sagemaker_pipeline_parameters: Optional['outputs.PipeTargetParametersSagemakerPipelineParameters'] = None, + sqs_queue_parameters: Optional['outputs.PipeTargetParametersSqsQueueParameters'] = None, + step_function_state_machine_parameters: Optional['outputs.PipeTargetParametersStepFunctionStateMachineParameters'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if batch_job_parameters is None and 'batchJobParameters' in kwargs: + batch_job_parameters = kwargs['batchJobParameters'] + if cloudwatch_logs_parameters is None and 'cloudwatchLogsParameters' in kwargs: + cloudwatch_logs_parameters = kwargs['cloudwatchLogsParameters'] + if ecs_task_parameters is None and 'ecsTaskParameters' in kwargs: + ecs_task_parameters = kwargs['ecsTaskParameters'] + if eventbridge_event_bus_parameters is None and 'eventbridgeEventBusParameters' in kwargs: + eventbridge_event_bus_parameters = kwargs['eventbridgeEventBusParameters'] + if http_parameters is None and 'httpParameters' in kwargs: + http_parameters = kwargs['httpParameters'] + if input_template is None and 'inputTemplate' in kwargs: + input_template = kwargs['inputTemplate'] + if kinesis_stream_parameters is None and 'kinesisStreamParameters' in kwargs: + kinesis_stream_parameters = kwargs['kinesisStreamParameters'] + if lambda_function_parameters is None and 'lambdaFunctionParameters' in kwargs: + lambda_function_parameters = kwargs['lambdaFunctionParameters'] + if redshift_data_parameters is None and 'redshiftDataParameters' in kwargs: + redshift_data_parameters = kwargs['redshiftDataParameters'] + if sagemaker_pipeline_parameters is None and 'sagemakerPipelineParameters' in kwargs: + sagemaker_pipeline_parameters = kwargs['sagemakerPipelineParameters'] + if sqs_queue_parameters is None and 'sqsQueueParameters' in kwargs: + sqs_queue_parameters = kwargs['sqsQueueParameters'] + if step_function_state_machine_parameters is None and 'stepFunctionStateMachineParameters' in kwargs: + step_function_state_machine_parameters = kwargs['stepFunctionStateMachineParameters'] + if batch_job_parameters is not None: - pulumi.set(__self__, "batch_job_parameters", batch_job_parameters) + _setter("batch_job_parameters", batch_job_parameters) if cloudwatch_logs_parameters is not None: - pulumi.set(__self__, "cloudwatch_logs_parameters", cloudwatch_logs_parameters) + _setter("cloudwatch_logs_parameters", cloudwatch_logs_parameters) if ecs_task_parameters is not None: - pulumi.set(__self__, "ecs_task_parameters", ecs_task_parameters) + _setter("ecs_task_parameters", ecs_task_parameters) if eventbridge_event_bus_parameters is not None: - pulumi.set(__self__, "eventbridge_event_bus_parameters", eventbridge_event_bus_parameters) + _setter("eventbridge_event_bus_parameters", eventbridge_event_bus_parameters) if http_parameters is not None: - pulumi.set(__self__, "http_parameters", http_parameters) + _setter("http_parameters", http_parameters) if input_template is not None: - pulumi.set(__self__, "input_template", input_template) + _setter("input_template", input_template) if kinesis_stream_parameters is not None: - pulumi.set(__self__, "kinesis_stream_parameters", kinesis_stream_parameters) + _setter("kinesis_stream_parameters", kinesis_stream_parameters) if lambda_function_parameters is not None: - pulumi.set(__self__, "lambda_function_parameters", lambda_function_parameters) + _setter("lambda_function_parameters", lambda_function_parameters) if redshift_data_parameters is not None: - pulumi.set(__self__, "redshift_data_parameters", redshift_data_parameters) + _setter("redshift_data_parameters", redshift_data_parameters) if sagemaker_pipeline_parameters is not None: - pulumi.set(__self__, "sagemaker_pipeline_parameters", sagemaker_pipeline_parameters) + _setter("sagemaker_pipeline_parameters", sagemaker_pipeline_parameters) if sqs_queue_parameters is not None: - pulumi.set(__self__, "sqs_queue_parameters", sqs_queue_parameters) + _setter("sqs_queue_parameters", sqs_queue_parameters) if step_function_state_machine_parameters is not None: - pulumi.set(__self__, "step_function_state_machine_parameters", step_function_state_machine_parameters) + _setter("step_function_state_machine_parameters", step_function_state_machine_parameters) @property @pulumi.getter(name="batchJobParameters") @@ -1605,18 +2117,57 @@ def __init__(__self__, *, :param Mapping[str, str] parameters: Additional parameters passed to the job that replace parameter substitution placeholders that are set in the job definition. Parameters are specified as a key and value pair mapping. Parameters included here override any corresponding parameter defaults from the job definition. Detailed below. :param 'PipeTargetParametersBatchJobParametersRetryStrategyArgs' retry_strategy: The retry strategy to use for failed jobs. When a retry strategy is specified here, it overrides the retry strategy defined in the job definition. Detailed below. """ - pulumi.set(__self__, "job_definition", job_definition) - pulumi.set(__self__, "job_name", job_name) + PipeTargetParametersBatchJobParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_definition=job_definition, + job_name=job_name, + array_properties=array_properties, + container_overrides=container_overrides, + depends_ons=depends_ons, + parameters=parameters, + retry_strategy=retry_strategy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_definition: Optional[str] = None, + job_name: Optional[str] = None, + array_properties: Optional['outputs.PipeTargetParametersBatchJobParametersArrayProperties'] = None, + container_overrides: Optional['outputs.PipeTargetParametersBatchJobParametersContainerOverrides'] = None, + depends_ons: Optional[Sequence['outputs.PipeTargetParametersBatchJobParametersDependsOn']] = None, + parameters: Optional[Mapping[str, str]] = None, + retry_strategy: Optional['outputs.PipeTargetParametersBatchJobParametersRetryStrategy'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_definition is None and 'jobDefinition' in kwargs: + job_definition = kwargs['jobDefinition'] + if job_definition is None: + raise TypeError("Missing 'job_definition' argument") + if job_name is None and 'jobName' in kwargs: + job_name = kwargs['jobName'] + if job_name is None: + raise TypeError("Missing 'job_name' argument") + if array_properties is None and 'arrayProperties' in kwargs: + array_properties = kwargs['arrayProperties'] + if container_overrides is None and 'containerOverrides' in kwargs: + container_overrides = kwargs['containerOverrides'] + if depends_ons is None and 'dependsOns' in kwargs: + depends_ons = kwargs['dependsOns'] + if retry_strategy is None and 'retryStrategy' in kwargs: + retry_strategy = kwargs['retryStrategy'] + + _setter("job_definition", job_definition) + _setter("job_name", job_name) if array_properties is not None: - pulumi.set(__self__, "array_properties", array_properties) + _setter("array_properties", array_properties) if container_overrides is not None: - pulumi.set(__self__, "container_overrides", container_overrides) + _setter("container_overrides", container_overrides) if depends_ons is not None: - pulumi.set(__self__, "depends_ons", depends_ons) + _setter("depends_ons", depends_ons) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if retry_strategy is not None: - pulumi.set(__self__, "retry_strategy", retry_strategy) + _setter("retry_strategy", retry_strategy) @property @pulumi.getter(name="jobDefinition") @@ -1682,8 +2233,19 @@ def __init__(__self__, *, """ :param int size: The size of the array, if this is an array batch job. Minimum value of 2. Maximum value of 10,000. """ + PipeTargetParametersBatchJobParametersArrayProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + size=size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size is not None: - pulumi.set(__self__, "size", size) + _setter("size", size) @property @pulumi.getter @@ -1721,25 +2283,46 @@ def __init__(__self__, *, instance_type: Optional[str] = None, resource_requirements: Optional[Sequence['outputs.PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement']] = None): """ - :param Sequence[str] commands: List of commands to send to the container that overrides the default command from the Docker image or the task definition. - :param Sequence['PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs'] environments: The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + :param Sequence[str] commands: List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. + :param Sequence['PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs'] environments: The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. :param str instance_type: The instance type to use for a multi-node parallel job. This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided. - :param Sequence['PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs'] resource_requirements: The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. - """ + :param Sequence['PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs'] resource_requirements: The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. + """ + PipeTargetParametersBatchJobParametersContainerOverrides._configure( + lambda key, value: pulumi.set(__self__, key, value), + commands=commands, + environments=environments, + instance_type=instance_type, + resource_requirements=resource_requirements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + commands: Optional[Sequence[str]] = None, + environments: Optional[Sequence['outputs.PipeTargetParametersBatchJobParametersContainerOverridesEnvironment']] = None, + instance_type: Optional[str] = None, + resource_requirements: Optional[Sequence['outputs.PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if resource_requirements is None and 'resourceRequirements' in kwargs: + resource_requirements = kwargs['resourceRequirements'] + if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if environments is not None: - pulumi.set(__self__, "environments", environments) + _setter("environments", environments) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if resource_requirements is not None: - pulumi.set(__self__, "resource_requirements", resource_requirements) + _setter("resource_requirements", resource_requirements) @property @pulumi.getter def commands(self) -> Optional[Sequence[str]]: """ - List of commands to send to the container that overrides the default command from the Docker image or the task definition. + List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. """ return pulumi.get(self, "commands") @@ -1747,7 +2330,7 @@ def commands(self) -> Optional[Sequence[str]]: @pulumi.getter def environments(self) -> Optional[Sequence['outputs.PipeTargetParametersBatchJobParametersContainerOverridesEnvironment']]: """ - The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. """ return pulumi.get(self, "environments") @@ -1763,7 +2346,7 @@ def instance_type(self) -> Optional[str]: @pulumi.getter(name="resourceRequirements") def resource_requirements(self) -> Optional[Sequence['outputs.PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement']]: """ - The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. """ return pulumi.get(self, "resource_requirements") @@ -1775,12 +2358,25 @@ def __init__(__self__, *, value: Optional[str] = None): """ :param str name: Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. - :param str value: The value of the key-value pair. For environment variables, this is the value of the environment variable. + :param str value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ + PipeTargetParametersBatchJobParametersContainerOverridesEnvironment._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1794,7 +2390,7 @@ def name(self) -> Optional[str]: @pulumi.getter def value(self) -> Optional[str]: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -1805,17 +2401,34 @@ def __init__(__self__, *, type: str, value: str): """ - :param str type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. - :param str value: The value of the key-value pair. For environment variables, this is the value of the environment variable. + :param str type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. + :param str value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirement._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter def type(self) -> str: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -1823,7 +2436,7 @@ def type(self) -> str: @pulumi.getter def value(self) -> str: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -1852,12 +2465,27 @@ def __init__(__self__, *, type: Optional[str] = None): """ :param str job_id: The job ID of the AWS Batch job that's associated with this dependency. - :param str type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + :param str type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ + PipeTargetParametersBatchJobParametersDependsOn._configure( + lambda key, value: pulumi.set(__self__, key, value), + job_id=job_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + job_id: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if job_id is None and 'jobId' in kwargs: + job_id = kwargs['jobId'] + if job_id is not None: - pulumi.set(__self__, "job_id", job_id) + _setter("job_id", job_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="jobId") @@ -1871,7 +2499,7 @@ def job_id(self) -> Optional[str]: @pulumi.getter def type(self) -> Optional[str]: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -1883,8 +2511,19 @@ def __init__(__self__, *, """ :param int attempts: The number of times to move a job to the RUNNABLE status. If the value of attempts is greater than one, the job is retried on failure the same number of attempts as the value. Maximum value of 10. """ + PipeTargetParametersBatchJobParametersRetryStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + attempts=attempts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attempts: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attempts is not None: - pulumi.set(__self__, "attempts", attempts) + _setter("attempts", attempts) @property @pulumi.getter @@ -1921,10 +2560,25 @@ def __init__(__self__, *, :param str log_stream_name: The name of the log stream. :param str timestamp: The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. This is the JSON path to the field in the event e.g. $.detail.timestamp """ + PipeTargetParametersCloudwatchLogsParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_stream_name=log_stream_name, + timestamp=timestamp, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_stream_name: Optional[str] = None, + timestamp: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_stream_name is None and 'logStreamName' in kwargs: + log_stream_name = kwargs['logStreamName'] + if log_stream_name is not None: - pulumi.set(__self__, "log_stream_name", log_stream_name) + _setter("log_stream_name", log_stream_name) if timestamp is not None: - pulumi.set(__self__, "timestamp", timestamp) + _setter("timestamp", timestamp) @property @pulumi.getter(name="logStreamName") @@ -2017,35 +2671,100 @@ def __init__(__self__, *, :param Mapping[str, str] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param int task_count: The number of tasks to create based on TaskDefinition. The default is 1. """ - pulumi.set(__self__, "task_definition_arn", task_definition_arn) + PipeTargetParametersEcsTaskParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + task_definition_arn=task_definition_arn, + capacity_provider_strategies=capacity_provider_strategies, + enable_ecs_managed_tags=enable_ecs_managed_tags, + enable_execute_command=enable_execute_command, + group=group, + launch_type=launch_type, + network_configuration=network_configuration, + overrides=overrides, + placement_constraints=placement_constraints, + placement_strategies=placement_strategies, + platform_version=platform_version, + propagate_tags=propagate_tags, + reference_id=reference_id, + tags=tags, + task_count=task_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + task_definition_arn: Optional[str] = None, + capacity_provider_strategies: Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersCapacityProviderStrategy']] = None, + enable_ecs_managed_tags: Optional[bool] = None, + enable_execute_command: Optional[bool] = None, + group: Optional[str] = None, + launch_type: Optional[str] = None, + network_configuration: Optional['outputs.PipeTargetParametersEcsTaskParametersNetworkConfiguration'] = None, + overrides: Optional['outputs.PipeTargetParametersEcsTaskParametersOverrides'] = None, + placement_constraints: Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersPlacementConstraint']] = None, + placement_strategies: Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersPlacementStrategy']] = None, + platform_version: Optional[str] = None, + propagate_tags: Optional[str] = None, + reference_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + task_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if task_definition_arn is None and 'taskDefinitionArn' in kwargs: + task_definition_arn = kwargs['taskDefinitionArn'] + if task_definition_arn is None: + raise TypeError("Missing 'task_definition_arn' argument") + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if enable_ecs_managed_tags is None and 'enableEcsManagedTags' in kwargs: + enable_ecs_managed_tags = kwargs['enableEcsManagedTags'] + if enable_execute_command is None and 'enableExecuteCommand' in kwargs: + enable_execute_command = kwargs['enableExecuteCommand'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if placement_strategies is None and 'placementStrategies' in kwargs: + placement_strategies = kwargs['placementStrategies'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if reference_id is None and 'referenceId' in kwargs: + reference_id = kwargs['referenceId'] + if task_count is None and 'taskCount' in kwargs: + task_count = kwargs['taskCount'] + + _setter("task_definition_arn", task_definition_arn) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if enable_ecs_managed_tags is not None: - pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) + _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - pulumi.set(__self__, "enable_execute_command", enable_execute_command) + _setter("enable_execute_command", enable_execute_command) if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if overrides is not None: - pulumi.set(__self__, "overrides", overrides) + _setter("overrides", overrides) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if placement_strategies is not None: - pulumi.set(__self__, "placement_strategies", placement_strategies) + _setter("placement_strategies", placement_strategies) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if reference_id is not None: - pulumi.set(__self__, "reference_id", reference_id) + _setter("reference_id", reference_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if task_count is not None: - pulumi.set(__self__, "task_count", task_count) + _setter("task_count", task_count) @property @pulumi.getter(name="taskDefinitionArn") @@ -2196,11 +2915,30 @@ def __init__(__self__, *, :param int base: The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, the default value of 0 is used. Maximum value of 100,000. :param int weight: The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied. Maximum value of 1,000. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + PipeTargetParametersEcsTaskParametersCapacityProviderStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[str] = None, + base: Optional[int] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -2251,8 +2989,21 @@ def __init__(__self__, *, """ :param 'PipeTargetParametersEcsTaskParametersNetworkConfigurationAwsVpcConfigurationArgs' aws_vpc_configuration: Use this structure to specify the VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode. Detailed below. """ + PipeTargetParametersEcsTaskParametersNetworkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_vpc_configuration=aws_vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_vpc_configuration: Optional['outputs.PipeTargetParametersEcsTaskParametersNetworkConfigurationAwsVpcConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_vpc_configuration is None and 'awsVpcConfiguration' in kwargs: + aws_vpc_configuration = kwargs['awsVpcConfiguration'] + if aws_vpc_configuration is not None: - pulumi.set(__self__, "aws_vpc_configuration", aws_vpc_configuration) + _setter("aws_vpc_configuration", aws_vpc_configuration) @property @pulumi.getter(name="awsVpcConfiguration") @@ -2293,12 +3044,31 @@ def __init__(__self__, *, :param Sequence[str] security_groups: List of security groups associated with the stream. These security groups must all be in the same VPC. You can specify as many as five security groups. If you do not specify a security group, the default security group for the VPC is used. :param Sequence[str] subnets: List of the subnets associated with the stream. These subnets must all be in the same VPC. You can specify as many as 16 subnets. """ + PipeTargetParametersEcsTaskParametersNetworkConfigurationAwsVpcConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + assign_public_ip=assign_public_ip, + security_groups=security_groups, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assign_public_ip: Optional[str] = None, + security_groups: Optional[Sequence[str]] = None, + subnets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) @property @pulumi.getter(name="assignPublicIp") @@ -2362,27 +3132,60 @@ def __init__(__self__, *, task_role_arn: Optional[str] = None): """ :param Sequence['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideArgs'] container_overrides: One or more container overrides that are sent to a task. Detailed below. - :param str cpu: The cpu override for the task. + :param str cpu: The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. :param 'PipeTargetParametersEcsTaskParametersOverridesEphemeralStorageArgs' ephemeral_storage: The ephemeral storage setting override for the task. Detailed below. :param str execution_role_arn: The Amazon Resource Name (ARN) of the task execution IAM role override for the task. :param Sequence['PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverrideArgs'] inference_accelerator_overrides: List of Elastic Inference accelerator overrides for the task. Detailed below. - :param str memory: The memory override for the task. + :param str memory: The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. :param str task_role_arn: The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. """ + PipeTargetParametersEcsTaskParametersOverrides._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_overrides=container_overrides, + cpu=cpu, + ephemeral_storage=ephemeral_storage, + execution_role_arn=execution_role_arn, + inference_accelerator_overrides=inference_accelerator_overrides, + memory=memory, + task_role_arn=task_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_overrides: Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersOverridesContainerOverride']] = None, + cpu: Optional[str] = None, + ephemeral_storage: Optional['outputs.PipeTargetParametersEcsTaskParametersOverridesEphemeralStorage'] = None, + execution_role_arn: Optional[str] = None, + inference_accelerator_overrides: Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverride']] = None, + memory: Optional[str] = None, + task_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_overrides is None and 'containerOverrides' in kwargs: + container_overrides = kwargs['containerOverrides'] + if ephemeral_storage is None and 'ephemeralStorage' in kwargs: + ephemeral_storage = kwargs['ephemeralStorage'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if inference_accelerator_overrides is None and 'inferenceAcceleratorOverrides' in kwargs: + inference_accelerator_overrides = kwargs['inferenceAcceleratorOverrides'] + if task_role_arn is None and 'taskRoleArn' in kwargs: + task_role_arn = kwargs['taskRoleArn'] + if container_overrides is not None: - pulumi.set(__self__, "container_overrides", container_overrides) + _setter("container_overrides", container_overrides) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if ephemeral_storage is not None: - pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) + _setter("ephemeral_storage", ephemeral_storage) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if inference_accelerator_overrides is not None: - pulumi.set(__self__, "inference_accelerator_overrides", inference_accelerator_overrides) + _setter("inference_accelerator_overrides", inference_accelerator_overrides) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if task_role_arn is not None: - pulumi.set(__self__, "task_role_arn", task_role_arn) + _setter("task_role_arn", task_role_arn) @property @pulumi.getter(name="containerOverrides") @@ -2396,7 +3199,7 @@ def container_overrides(self) -> Optional[Sequence['outputs.PipeTargetParameters @pulumi.getter def cpu(self) -> Optional[str]: """ - The cpu override for the task. + The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. """ return pulumi.get(self, "cpu") @@ -2428,7 +3231,7 @@ def inference_accelerator_overrides(self) -> Optional[Sequence['outputs.PipeTarg @pulumi.getter def memory(self) -> Optional[str]: """ - The memory override for the task. + The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. """ return pulumi.get(self, "memory") @@ -2474,37 +3277,68 @@ def __init__(__self__, *, name: Optional[str] = None, resource_requirements: Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement']] = None): """ - :param Sequence[str] commands: List of commands to send to the container that overrides the default command from the Docker image or the task definition. - :param int cpu: The cpu override for the task. + :param Sequence[str] commands: List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. + :param int cpu: The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. :param Sequence['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFileArgs'] environment_files: A list of files containing the environment variables to pass to a container, instead of the value from the container definition. Detailed below. - :param Sequence['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs'] environments: The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. - :param int memory: The memory override for the task. + :param Sequence['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentArgs'] environments: The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. + :param int memory: The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. :param int memory_reservation: The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. You must also specify a container name. :param str name: Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. - :param Sequence['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs'] resource_requirements: The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. - """ + :param Sequence['PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirementArgs'] resource_requirements: The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. + """ + PipeTargetParametersEcsTaskParametersOverridesContainerOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + commands=commands, + cpu=cpu, + environment_files=environment_files, + environments=environments, + memory=memory, + memory_reservation=memory_reservation, + name=name, + resource_requirements=resource_requirements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + commands: Optional[Sequence[str]] = None, + cpu: Optional[int] = None, + environment_files: Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile']] = None, + environments: Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment']] = None, + memory: Optional[int] = None, + memory_reservation: Optional[int] = None, + name: Optional[str] = None, + resource_requirements: Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if environment_files is None and 'environmentFiles' in kwargs: + environment_files = kwargs['environmentFiles'] + if memory_reservation is None and 'memoryReservation' in kwargs: + memory_reservation = kwargs['memoryReservation'] + if resource_requirements is None and 'resourceRequirements' in kwargs: + resource_requirements = kwargs['resourceRequirements'] + if commands is not None: - pulumi.set(__self__, "commands", commands) + _setter("commands", commands) if cpu is not None: - pulumi.set(__self__, "cpu", cpu) + _setter("cpu", cpu) if environment_files is not None: - pulumi.set(__self__, "environment_files", environment_files) + _setter("environment_files", environment_files) if environments is not None: - pulumi.set(__self__, "environments", environments) + _setter("environments", environments) if memory is not None: - pulumi.set(__self__, "memory", memory) + _setter("memory", memory) if memory_reservation is not None: - pulumi.set(__self__, "memory_reservation", memory_reservation) + _setter("memory_reservation", memory_reservation) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_requirements is not None: - pulumi.set(__self__, "resource_requirements", resource_requirements) + _setter("resource_requirements", resource_requirements) @property @pulumi.getter def commands(self) -> Optional[Sequence[str]]: """ - List of commands to send to the container that overrides the default command from the Docker image or the task definition. + List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name. """ return pulumi.get(self, "commands") @@ -2512,7 +3346,7 @@ def commands(self) -> Optional[Sequence[str]]: @pulumi.getter def cpu(self) -> Optional[int]: """ - The cpu override for the task. + The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name. """ return pulumi.get(self, "cpu") @@ -2528,7 +3362,7 @@ def environment_files(self) -> Optional[Sequence['outputs.PipeTargetParametersEc @pulumi.getter def environments(self) -> Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment']]: """ - The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. Environment variables cannot start with " AWS Batch ". This naming convention is reserved for variables that AWS Batch sets. Detailed below. + The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below. """ return pulumi.get(self, "environments") @@ -2536,7 +3370,7 @@ def environments(self) -> Optional[Sequence['outputs.PipeTargetParametersEcsTask @pulumi.getter def memory(self) -> Optional[int]: """ - The memory override for the task. + The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name. """ return pulumi.get(self, "memory") @@ -2560,7 +3394,7 @@ def name(self) -> Optional[str]: @pulumi.getter(name="resourceRequirements") def resource_requirements(self) -> Optional[Sequence['outputs.PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement']]: """ - The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. Detailed below. + The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below. """ return pulumi.get(self, "resource_requirements") @@ -2572,12 +3406,25 @@ def __init__(__self__, *, value: Optional[str] = None): """ :param str name: Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. - :param str value: The value of the key-value pair. For environment variables, this is the value of the environment variable. + :param str value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ + PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironment._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -2591,7 +3438,7 @@ def name(self) -> Optional[str]: @pulumi.getter def value(self) -> Optional[str]: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -2602,17 +3449,34 @@ def __init__(__self__, *, type: str, value: str): """ - :param str type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. - :param str value: The value of the key-value pair. For environment variables, this is the value of the environment variable. + :param str type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. + :param str value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + PipeTargetParametersEcsTaskParametersOverridesContainerOverrideEnvironmentFile._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter def type(self) -> str: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -2620,7 +3484,7 @@ def type(self) -> str: @pulumi.getter def value(self) -> str: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -2631,17 +3495,34 @@ def __init__(__self__, *, type: str, value: str): """ - :param str type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. - :param str value: The value of the key-value pair. For environment variables, this is the value of the environment variable. + :param str type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. + :param str value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + PipeTargetParametersEcsTaskParametersOverridesContainerOverrideResourceRequirement._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter def type(self) -> str: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -2649,7 +3530,7 @@ def type(self) -> str: @pulumi.getter def value(self) -> str: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -2678,7 +3559,22 @@ def __init__(__self__, *, """ :param int size_in_gib: The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 21 GiB and the maximum supported value is 200 GiB. """ - pulumi.set(__self__, "size_in_gib", size_in_gib) + PipeTargetParametersEcsTaskParametersOverridesEphemeralStorage._configure( + lambda key, value: pulumi.set(__self__, key, value), + size_in_gib=size_in_gib, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + size_in_gib: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size_in_gib is None and 'sizeInGib' in kwargs: + size_in_gib = kwargs['sizeInGib'] + if size_in_gib is None: + raise TypeError("Missing 'size_in_gib' argument") + + _setter("size_in_gib", size_in_gib) @property @pulumi.getter(name="sizeInGib") @@ -2717,10 +3613,27 @@ def __init__(__self__, *, :param str device_name: The Elastic Inference accelerator device name to override for the task. This parameter must match a deviceName specified in the task definition. :param str device_type: The Elastic Inference accelerator type to use. """ + PipeTargetParametersEcsTaskParametersOverridesInferenceAcceleratorOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + device_type=device_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + device_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_type is None and 'deviceType' in kwargs: + device_type = kwargs['deviceType'] + if device_name is not None: - pulumi.set(__self__, "device_name", device_name) + _setter("device_name", device_name) if device_type is not None: - pulumi.set(__self__, "device_type", device_type) + _setter("device_type", device_type) @property @pulumi.getter(name="deviceName") @@ -2746,12 +3659,25 @@ def __init__(__self__, *, type: Optional[str] = None): """ :param str expression: A cluster query language expression to apply to the constraint. You cannot specify an expression if the constraint type is distinctInstance. Maximum length of 2,000. - :param str type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + :param str type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ + PipeTargetParametersEcsTaskParametersPlacementConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + expression=expression, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + expression: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -2765,7 +3691,7 @@ def expression(self) -> Optional[str]: @pulumi.getter def type(self) -> Optional[str]: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -2777,12 +3703,25 @@ def __init__(__self__, *, type: Optional[str] = None): """ :param str field: The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used. Maximum length of 255. - :param str type: The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + :param str type: The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ + PipeTargetParametersEcsTaskParametersPlacementStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -2796,7 +3735,7 @@ def field(self) -> Optional[str]: @pulumi.getter def type(self) -> Optional[str]: """ - The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task). Valid Values: random, spread, binpack. """ return pulumi.get(self, "type") @@ -2835,16 +3774,39 @@ def __init__(__self__, *, :param str source: Source resource of the pipe (typically an ARN). :param str time: The time stamp of the event, per RFC3339. If no time stamp is provided, the time stamp of the PutEvents call is used. This is the JSON path to the field in the event e.g. $.detail.timestamp """ + PipeTargetParametersEventbridgeEventBusParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + detail_type=detail_type, + endpoint_id=endpoint_id, + resources=resources, + source=source, + time=time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + detail_type: Optional[str] = None, + endpoint_id: Optional[str] = None, + resources: Optional[Sequence[str]] = None, + source: Optional[str] = None, + time: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detail_type is None and 'detailType' in kwargs: + detail_type = kwargs['detailType'] + if endpoint_id is None and 'endpointId' in kwargs: + endpoint_id = kwargs['endpointId'] + if detail_type is not None: - pulumi.set(__self__, "detail_type", detail_type) + _setter("detail_type", detail_type) if endpoint_id is not None: - pulumi.set(__self__, "endpoint_id", endpoint_id) + _setter("endpoint_id", endpoint_id) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if time is not None: - pulumi.set(__self__, "time", time) + _setter("time", time) @property @pulumi.getter(name="detailType") @@ -2919,12 +3881,33 @@ def __init__(__self__, *, :param str path_parameter_values: The path parameter values to be used to populate API Gateway REST API or EventBridge ApiDestination path wildcards ("*"). :param Mapping[str, str] query_string_parameters: Key-value mapping of the query strings that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination. """ + PipeTargetParametersHttpParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_parameters=header_parameters, + path_parameter_values=path_parameter_values, + query_string_parameters=query_string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_parameters: Optional[Mapping[str, str]] = None, + path_parameter_values: Optional[str] = None, + query_string_parameters: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_parameters is None and 'headerParameters' in kwargs: + header_parameters = kwargs['headerParameters'] + if path_parameter_values is None and 'pathParameterValues' in kwargs: + path_parameter_values = kwargs['pathParameterValues'] + if query_string_parameters is None and 'queryStringParameters' in kwargs: + query_string_parameters = kwargs['queryStringParameters'] + if header_parameters is not None: - pulumi.set(__self__, "header_parameters", header_parameters) + _setter("header_parameters", header_parameters) if path_parameter_values is not None: - pulumi.set(__self__, "path_parameter_values", path_parameter_values) + _setter("path_parameter_values", path_parameter_values) if query_string_parameters is not None: - pulumi.set(__self__, "query_string_parameters", query_string_parameters) + _setter("query_string_parameters", query_string_parameters) @property @pulumi.getter(name="headerParameters") @@ -2975,7 +3958,22 @@ def __init__(__self__, *, """ :param str partition_key: Determines which shard in the stream the data record is assigned to. Partition keys are Unicode strings with a maximum length limit of 256 characters for each key. Amazon Kinesis Data Streams uses the partition key as input to a hash function that maps the partition key and associated data to a specific shard. Specifically, an MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. """ - pulumi.set(__self__, "partition_key", partition_key) + PipeTargetParametersKinesisStreamParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + partition_key=partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + partition_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if partition_key is None and 'partitionKey' in kwargs: + partition_key = kwargs['partitionKey'] + if partition_key is None: + raise TypeError("Missing 'partition_key' argument") + + _setter("partition_key", partition_key) @property @pulumi.getter(name="partitionKey") @@ -3010,7 +4008,22 @@ def __init__(__self__, *, """ :param str invocation_type: Specify whether to invoke the function synchronously or asynchronously. Valid Values: REQUEST_RESPONSE, FIRE_AND_FORGET. """ - pulumi.set(__self__, "invocation_type", invocation_type) + PipeTargetParametersLambdaFunctionParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + invocation_type=invocation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invocation_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invocation_type is None and 'invocationType' in kwargs: + invocation_type = kwargs['invocationType'] + if invocation_type is None: + raise TypeError("Missing 'invocation_type' argument") + + _setter("invocation_type", invocation_type) @property @pulumi.getter(name="invocationType") @@ -3061,16 +4074,49 @@ def __init__(__self__, *, :param str statement_name: The name of the SQL statement. You can name the SQL statement when you create it to identify the query. :param bool with_event: Indicates whether to send an event back to EventBridge after the SQL statement runs. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "sqls", sqls) + PipeTargetParametersRedshiftDataParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + sqls=sqls, + db_user=db_user, + secret_manager_arn=secret_manager_arn, + statement_name=statement_name, + with_event=with_event, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + sqls: Optional[Sequence[str]] = None, + db_user: Optional[str] = None, + secret_manager_arn: Optional[str] = None, + statement_name: Optional[str] = None, + with_event: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if sqls is None: + raise TypeError("Missing 'sqls' argument") + if db_user is None and 'dbUser' in kwargs: + db_user = kwargs['dbUser'] + if secret_manager_arn is None and 'secretManagerArn' in kwargs: + secret_manager_arn = kwargs['secretManagerArn'] + if statement_name is None and 'statementName' in kwargs: + statement_name = kwargs['statementName'] + if with_event is None and 'withEvent' in kwargs: + with_event = kwargs['withEvent'] + + _setter("database", database) + _setter("sqls", sqls) if db_user is not None: - pulumi.set(__self__, "db_user", db_user) + _setter("db_user", db_user) if secret_manager_arn is not None: - pulumi.set(__self__, "secret_manager_arn", secret_manager_arn) + _setter("secret_manager_arn", secret_manager_arn) if statement_name is not None: - pulumi.set(__self__, "statement_name", statement_name) + _setter("statement_name", statement_name) if with_event is not None: - pulumi.set(__self__, "with_event", with_event) + _setter("with_event", with_event) @property @pulumi.getter @@ -3145,8 +4191,21 @@ def __init__(__self__, *, """ :param Sequence['PipeTargetParametersSagemakerPipelineParametersPipelineParameterArgs'] pipeline_parameters: List of Parameter names and values for SageMaker Model Building Pipeline execution. Detailed below. """ + PipeTargetParametersSagemakerPipelineParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + pipeline_parameters=pipeline_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pipeline_parameters: Optional[Sequence['outputs.PipeTargetParametersSagemakerPipelineParametersPipelineParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pipeline_parameters is None and 'pipelineParameters' in kwargs: + pipeline_parameters = kwargs['pipelineParameters'] + if pipeline_parameters is not None: - pulumi.set(__self__, "pipeline_parameters", pipeline_parameters) + _setter("pipeline_parameters", pipeline_parameters) @property @pulumi.getter(name="pipelineParameters") @@ -3164,10 +4223,27 @@ def __init__(__self__, *, value: str): """ :param str name: Name of the pipe. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. - :param str value: The value of the key-value pair. For environment variables, this is the value of the environment variable. + :param str value: Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + PipeTargetParametersSagemakerPipelineParametersPipelineParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -3181,7 +4257,7 @@ def name(self) -> str: @pulumi.getter def value(self) -> str: """ - The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value of parameter to start execution of a SageMaker Model Building Pipeline. Maximum length of 1024. """ return pulumi.get(self, "value") @@ -3214,10 +4290,27 @@ def __init__(__self__, *, :param str message_deduplication_id: This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of sent messages. :param str message_group_id: The FIFO message group ID to use as the target. """ + PipeTargetParametersSqsQueueParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_deduplication_id=message_deduplication_id, + message_group_id=message_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_deduplication_id: Optional[str] = None, + message_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_deduplication_id is None and 'messageDeduplicationId' in kwargs: + message_deduplication_id = kwargs['messageDeduplicationId'] + if message_group_id is None and 'messageGroupId' in kwargs: + message_group_id = kwargs['messageGroupId'] + if message_deduplication_id is not None: - pulumi.set(__self__, "message_deduplication_id", message_deduplication_id) + _setter("message_deduplication_id", message_deduplication_id) if message_group_id is not None: - pulumi.set(__self__, "message_group_id", message_group_id) + _setter("message_group_id", message_group_id) @property @pulumi.getter(name="messageDeduplicationId") @@ -3260,7 +4353,22 @@ def __init__(__self__, *, """ :param str invocation_type: Specify whether to invoke the function synchronously or asynchronously. Valid Values: REQUEST_RESPONSE, FIRE_AND_FORGET. """ - pulumi.set(__self__, "invocation_type", invocation_type) + PipeTargetParametersStepFunctionStateMachineParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + invocation_type=invocation_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invocation_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invocation_type is None and 'invocationType' in kwargs: + invocation_type = kwargs['invocationType'] + if invocation_type is None: + raise TypeError("Missing 'invocation_type' argument") + + _setter("invocation_type", invocation_type) @property @pulumi.getter(name="invocationType") diff --git a/sdk/python/pulumi_aws/pipes/pipe.py b/sdk/python/pulumi_aws/pipes/pipe.py index 216909e49f6..71024b047ef 100644 --- a/sdk/python/pulumi_aws/pipes/pipe.py +++ b/sdk/python/pulumi_aws/pipes/pipe.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,27 +45,78 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['PipeTargetParametersArgs'] target_parameters: Parameters to configure a target for your pipe. Detailed below. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "source", source) - pulumi.set(__self__, "target", target) + PipeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + source=source, + target=target, + description=description, + desired_state=desired_state, + enrichment=enrichment, + enrichment_parameters=enrichment_parameters, + name=name, + name_prefix=name_prefix, + source_parameters=source_parameters, + tags=tags, + target_parameters=target_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + desired_state: Optional[pulumi.Input[str]] = None, + enrichment: Optional[pulumi.Input[str]] = None, + enrichment_parameters: Optional[pulumi.Input['PipeEnrichmentParametersArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + source_parameters: Optional[pulumi.Input['PipeSourceParametersArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_parameters: Optional[pulumi.Input['PipeTargetParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if enrichment_parameters is None and 'enrichmentParameters' in kwargs: + enrichment_parameters = kwargs['enrichmentParameters'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if source_parameters is None and 'sourceParameters' in kwargs: + source_parameters = kwargs['sourceParameters'] + if target_parameters is None and 'targetParameters' in kwargs: + target_parameters = kwargs['targetParameters'] + + _setter("role_arn", role_arn) + _setter("source", source) + _setter("target", target) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if desired_state is not None: - pulumi.set(__self__, "desired_state", desired_state) + _setter("desired_state", desired_state) if enrichment is not None: - pulumi.set(__self__, "enrichment", enrichment) + _setter("enrichment", enrichment) if enrichment_parameters is not None: - pulumi.set(__self__, "enrichment_parameters", enrichment_parameters) + _setter("enrichment_parameters", enrichment_parameters) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if source_parameters is not None: - pulumi.set(__self__, "source_parameters", source_parameters) + _setter("source_parameters", source_parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_parameters is not None: - pulumi.set(__self__, "target_parameters", target_parameters) + _setter("target_parameters", target_parameters) @property @pulumi.getter(name="roleArn") @@ -250,37 +301,88 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['PipeTargetParametersArgs'] target_parameters: Parameters to configure a target for your pipe. Detailed below. """ + _PipeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + desired_state=desired_state, + enrichment=enrichment, + enrichment_parameters=enrichment_parameters, + name=name, + name_prefix=name_prefix, + role_arn=role_arn, + source=source, + source_parameters=source_parameters, + tags=tags, + tags_all=tags_all, + target=target, + target_parameters=target_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + desired_state: Optional[pulumi.Input[str]] = None, + enrichment: Optional[pulumi.Input[str]] = None, + enrichment_parameters: Optional[pulumi.Input['PipeEnrichmentParametersArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + source_parameters: Optional[pulumi.Input['PipeSourceParametersArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target: Optional[pulumi.Input[str]] = None, + target_parameters: Optional[pulumi.Input['PipeTargetParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if desired_state is None and 'desiredState' in kwargs: + desired_state = kwargs['desiredState'] + if enrichment_parameters is None and 'enrichmentParameters' in kwargs: + enrichment_parameters = kwargs['enrichmentParameters'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if source_parameters is None and 'sourceParameters' in kwargs: + source_parameters = kwargs['sourceParameters'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_parameters is None and 'targetParameters' in kwargs: + target_parameters = kwargs['targetParameters'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if desired_state is not None: - pulumi.set(__self__, "desired_state", desired_state) + _setter("desired_state", desired_state) if enrichment is not None: - pulumi.set(__self__, "enrichment", enrichment) + _setter("enrichment", enrichment) if enrichment_parameters is not None: - pulumi.set(__self__, "enrichment_parameters", enrichment_parameters) + _setter("enrichment_parameters", enrichment_parameters) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if source_parameters is not None: - pulumi.set(__self__, "source_parameters", source_parameters) + _setter("source_parameters", source_parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if target_parameters is not None: - pulumi.set(__self__, "target_parameters", target_parameters) + _setter("target_parameters", target_parameters) @property @pulumi.getter @@ -703,6 +805,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PipeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -732,6 +838,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["desired_state"] = desired_state __props__.__dict__["enrichment"] = enrichment + enrichment_parameters = _utilities.configure(enrichment_parameters, PipeEnrichmentParametersArgs, True) __props__.__dict__["enrichment_parameters"] = enrichment_parameters __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix @@ -741,11 +848,13 @@ def _internal_init(__self__, if source is None and not opts.urn: raise TypeError("Missing required property 'source'") __props__.__dict__["source"] = source + source_parameters = _utilities.configure(source_parameters, PipeSourceParametersArgs, True) __props__.__dict__["source_parameters"] = source_parameters __props__.__dict__["tags"] = tags if target is None and not opts.urn: raise TypeError("Missing required property 'target'") __props__.__dict__["target"] = target + target_parameters = _utilities.configure(target_parameters, PipeTargetParametersArgs, True) __props__.__dict__["target_parameters"] = target_parameters __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/pricing/_inputs.py b/sdk/python/pulumi_aws/pricing/_inputs.py index 952a3b7995e..fc99687544a 100644 --- a/sdk/python/pulumi_aws/pricing/_inputs.py +++ b/sdk/python/pulumi_aws/pricing/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,8 +22,25 @@ def __init__(__self__, *, :param str field: Product attribute name that you want to filter on. :param str value: Product attribute value that you want to filter on. """ - pulumi.set(__self__, "field", field) - pulumi.set(__self__, "value", value) + GetProductFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is None: + raise TypeError("Missing 'field' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("field", field) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/pricing/get_product.py b/sdk/python/pulumi_aws/pricing/get_product.py index ef4f230b322..d5948401707 100644 --- a/sdk/python/pulumi_aws/pricing/get_product.py +++ b/sdk/python/pulumi_aws/pricing/get_product.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/pricing/outputs.py b/sdk/python/pulumi_aws/pricing/outputs.py index 428204bc381..414cf2a285f 100644 --- a/sdk/python/pulumi_aws/pricing/outputs.py +++ b/sdk/python/pulumi_aws/pricing/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,8 +22,25 @@ def __init__(__self__, *, :param str field: Product attribute name that you want to filter on. :param str value: Product attribute value that you want to filter on. """ - pulumi.set(__self__, "field", field) - pulumi.set(__self__, "value", value) + GetProductFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + field=field, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field is None: + raise TypeError("Missing 'field' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("field", field) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/provider.py b/sdk/python/pulumi_aws/provider.py index 4b2416c42af..0d6410ee483 100644 --- a/sdk/python/pulumi_aws/provider.py +++ b/sdk/python/pulumi_aws/provider.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from . import _utilities from ._inputs import * @@ -84,74 +84,193 @@ def __init__(__self__, *, :param pulumi.Input[bool] use_dualstack_endpoint: Resolve an endpoint with DualStack capability :param pulumi.Input[bool] use_fips_endpoint: Resolve an endpoint with FIPS capability """ + ProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_key=access_key, + allowed_account_ids=allowed_account_ids, + assume_role=assume_role, + assume_role_with_web_identity=assume_role_with_web_identity, + custom_ca_bundle=custom_ca_bundle, + default_tags=default_tags, + ec2_metadata_service_endpoint=ec2_metadata_service_endpoint, + ec2_metadata_service_endpoint_mode=ec2_metadata_service_endpoint_mode, + endpoints=endpoints, + forbidden_account_ids=forbidden_account_ids, + http_proxy=http_proxy, + ignore_tags=ignore_tags, + insecure=insecure, + max_retries=max_retries, + profile=profile, + region=region, + retry_mode=retry_mode, + s3_us_east1_regional_endpoint=s3_us_east1_regional_endpoint, + s3_use_path_style=s3_use_path_style, + secret_key=secret_key, + shared_config_files=shared_config_files, + shared_credentials_files=shared_credentials_files, + skip_credentials_validation=skip_credentials_validation, + skip_metadata_api_check=skip_metadata_api_check, + skip_region_validation=skip_region_validation, + skip_requesting_account_id=skip_requesting_account_id, + sts_region=sts_region, + token=token, + use_dualstack_endpoint=use_dualstack_endpoint, + use_fips_endpoint=use_fips_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_key: Optional[pulumi.Input[str]] = None, + allowed_account_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + assume_role: Optional[pulumi.Input['ProviderAssumeRoleArgs']] = None, + assume_role_with_web_identity: Optional[pulumi.Input['ProviderAssumeRoleWithWebIdentityArgs']] = None, + custom_ca_bundle: Optional[pulumi.Input[str]] = None, + default_tags: Optional[pulumi.Input['ProviderDefaultTagsArgs']] = None, + ec2_metadata_service_endpoint: Optional[pulumi.Input[str]] = None, + ec2_metadata_service_endpoint_mode: Optional[pulumi.Input[str]] = None, + endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ProviderEndpointArgs']]]] = None, + forbidden_account_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + http_proxy: Optional[pulumi.Input[str]] = None, + ignore_tags: Optional[pulumi.Input['ProviderIgnoreTagsArgs']] = None, + insecure: Optional[pulumi.Input[bool]] = None, + max_retries: Optional[pulumi.Input[int]] = None, + profile: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + retry_mode: Optional[pulumi.Input[str]] = None, + s3_us_east1_regional_endpoint: Optional[pulumi.Input[str]] = None, + s3_use_path_style: Optional[pulumi.Input[bool]] = None, + secret_key: Optional[pulumi.Input[str]] = None, + shared_config_files: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + shared_credentials_files: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + skip_credentials_validation: Optional[pulumi.Input[bool]] = None, + skip_metadata_api_check: Optional[pulumi.Input[bool]] = None, + skip_region_validation: Optional[pulumi.Input[bool]] = None, + skip_requesting_account_id: Optional[pulumi.Input[bool]] = None, + sts_region: Optional[pulumi.Input[str]] = None, + token: Optional[pulumi.Input[str]] = None, + use_dualstack_endpoint: Optional[pulumi.Input[bool]] = None, + use_fips_endpoint: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_key is None and 'accessKey' in kwargs: + access_key = kwargs['accessKey'] + if allowed_account_ids is None and 'allowedAccountIds' in kwargs: + allowed_account_ids = kwargs['allowedAccountIds'] + if assume_role is None and 'assumeRole' in kwargs: + assume_role = kwargs['assumeRole'] + if assume_role_with_web_identity is None and 'assumeRoleWithWebIdentity' in kwargs: + assume_role_with_web_identity = kwargs['assumeRoleWithWebIdentity'] + if custom_ca_bundle is None and 'customCaBundle' in kwargs: + custom_ca_bundle = kwargs['customCaBundle'] + if default_tags is None and 'defaultTags' in kwargs: + default_tags = kwargs['defaultTags'] + if ec2_metadata_service_endpoint is None and 'ec2MetadataServiceEndpoint' in kwargs: + ec2_metadata_service_endpoint = kwargs['ec2MetadataServiceEndpoint'] + if ec2_metadata_service_endpoint_mode is None and 'ec2MetadataServiceEndpointMode' in kwargs: + ec2_metadata_service_endpoint_mode = kwargs['ec2MetadataServiceEndpointMode'] + if forbidden_account_ids is None and 'forbiddenAccountIds' in kwargs: + forbidden_account_ids = kwargs['forbiddenAccountIds'] + if http_proxy is None and 'httpProxy' in kwargs: + http_proxy = kwargs['httpProxy'] + if ignore_tags is None and 'ignoreTags' in kwargs: + ignore_tags = kwargs['ignoreTags'] + if max_retries is None and 'maxRetries' in kwargs: + max_retries = kwargs['maxRetries'] + if retry_mode is None and 'retryMode' in kwargs: + retry_mode = kwargs['retryMode'] + if s3_us_east1_regional_endpoint is None and 's3UsEast1RegionalEndpoint' in kwargs: + s3_us_east1_regional_endpoint = kwargs['s3UsEast1RegionalEndpoint'] + if s3_use_path_style is None and 's3UsePathStyle' in kwargs: + s3_use_path_style = kwargs['s3UsePathStyle'] + if secret_key is None and 'secretKey' in kwargs: + secret_key = kwargs['secretKey'] + if shared_config_files is None and 'sharedConfigFiles' in kwargs: + shared_config_files = kwargs['sharedConfigFiles'] + if shared_credentials_files is None and 'sharedCredentialsFiles' in kwargs: + shared_credentials_files = kwargs['sharedCredentialsFiles'] + if skip_credentials_validation is None and 'skipCredentialsValidation' in kwargs: + skip_credentials_validation = kwargs['skipCredentialsValidation'] + if skip_metadata_api_check is None and 'skipMetadataApiCheck' in kwargs: + skip_metadata_api_check = kwargs['skipMetadataApiCheck'] + if skip_region_validation is None and 'skipRegionValidation' in kwargs: + skip_region_validation = kwargs['skipRegionValidation'] + if skip_requesting_account_id is None and 'skipRequestingAccountId' in kwargs: + skip_requesting_account_id = kwargs['skipRequestingAccountId'] + if sts_region is None and 'stsRegion' in kwargs: + sts_region = kwargs['stsRegion'] + if use_dualstack_endpoint is None and 'useDualstackEndpoint' in kwargs: + use_dualstack_endpoint = kwargs['useDualstackEndpoint'] + if use_fips_endpoint is None and 'useFipsEndpoint' in kwargs: + use_fips_endpoint = kwargs['useFipsEndpoint'] + if access_key is not None: - pulumi.set(__self__, "access_key", access_key) + _setter("access_key", access_key) if allowed_account_ids is not None: - pulumi.set(__self__, "allowed_account_ids", allowed_account_ids) + _setter("allowed_account_ids", allowed_account_ids) if assume_role is not None: - pulumi.set(__self__, "assume_role", assume_role) + _setter("assume_role", assume_role) if assume_role_with_web_identity is not None: - pulumi.set(__self__, "assume_role_with_web_identity", assume_role_with_web_identity) + _setter("assume_role_with_web_identity", assume_role_with_web_identity) if custom_ca_bundle is not None: - pulumi.set(__self__, "custom_ca_bundle", custom_ca_bundle) + _setter("custom_ca_bundle", custom_ca_bundle) if default_tags is not None: - pulumi.set(__self__, "default_tags", default_tags) + _setter("default_tags", default_tags) if ec2_metadata_service_endpoint is not None: - pulumi.set(__self__, "ec2_metadata_service_endpoint", ec2_metadata_service_endpoint) + _setter("ec2_metadata_service_endpoint", ec2_metadata_service_endpoint) if ec2_metadata_service_endpoint_mode is not None: - pulumi.set(__self__, "ec2_metadata_service_endpoint_mode", ec2_metadata_service_endpoint_mode) + _setter("ec2_metadata_service_endpoint_mode", ec2_metadata_service_endpoint_mode) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if forbidden_account_ids is not None: - pulumi.set(__self__, "forbidden_account_ids", forbidden_account_ids) + _setter("forbidden_account_ids", forbidden_account_ids) if http_proxy is not None: - pulumi.set(__self__, "http_proxy", http_proxy) + _setter("http_proxy", http_proxy) if ignore_tags is not None: - pulumi.set(__self__, "ignore_tags", ignore_tags) + _setter("ignore_tags", ignore_tags) if insecure is not None: - pulumi.set(__self__, "insecure", insecure) + _setter("insecure", insecure) if max_retries is not None: - pulumi.set(__self__, "max_retries", max_retries) + _setter("max_retries", max_retries) if profile is not None: - pulumi.set(__self__, "profile", profile) + _setter("profile", profile) if region is None: region = _utilities.get_env('AWS_REGION', 'AWS_DEFAULT_REGION') if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if retry_mode is not None: - pulumi.set(__self__, "retry_mode", retry_mode) + _setter("retry_mode", retry_mode) if s3_us_east1_regional_endpoint is not None: - pulumi.set(__self__, "s3_us_east1_regional_endpoint", s3_us_east1_regional_endpoint) + _setter("s3_us_east1_regional_endpoint", s3_us_east1_regional_endpoint) if s3_use_path_style is not None: - pulumi.set(__self__, "s3_use_path_style", s3_use_path_style) + _setter("s3_use_path_style", s3_use_path_style) if secret_key is not None: - pulumi.set(__self__, "secret_key", secret_key) + _setter("secret_key", secret_key) if shared_config_files is not None: - pulumi.set(__self__, "shared_config_files", shared_config_files) + _setter("shared_config_files", shared_config_files) if shared_credentials_files is not None: - pulumi.set(__self__, "shared_credentials_files", shared_credentials_files) + _setter("shared_credentials_files", shared_credentials_files) if skip_credentials_validation is None: skip_credentials_validation = False if skip_credentials_validation is not None: - pulumi.set(__self__, "skip_credentials_validation", skip_credentials_validation) + _setter("skip_credentials_validation", skip_credentials_validation) if skip_metadata_api_check is None: skip_metadata_api_check = True if skip_metadata_api_check is not None: - pulumi.set(__self__, "skip_metadata_api_check", skip_metadata_api_check) + _setter("skip_metadata_api_check", skip_metadata_api_check) if skip_region_validation is None: skip_region_validation = True if skip_region_validation is not None: - pulumi.set(__self__, "skip_region_validation", skip_region_validation) + _setter("skip_region_validation", skip_region_validation) if skip_requesting_account_id is not None: - pulumi.set(__self__, "skip_requesting_account_id", skip_requesting_account_id) + _setter("skip_requesting_account_id", skip_requesting_account_id) if sts_region is not None: - pulumi.set(__self__, "sts_region", sts_region) + _setter("sts_region", sts_region) if token is not None: - pulumi.set(__self__, "token", token) + _setter("token", token) if use_dualstack_endpoint is not None: - pulumi.set(__self__, "use_dualstack_endpoint", use_dualstack_endpoint) + _setter("use_dualstack_endpoint", use_dualstack_endpoint) if use_fips_endpoint is not None: - pulumi.set(__self__, "use_fips_endpoint", use_fips_endpoint) + _setter("use_fips_endpoint", use_fips_endpoint) @property @pulumi.getter(name="accessKey") @@ -613,6 +732,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProviderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -659,15 +782,19 @@ def _internal_init(__self__, __props__.__dict__["access_key"] = access_key __props__.__dict__["allowed_account_ids"] = pulumi.Output.from_input(allowed_account_ids).apply(pulumi.runtime.to_json) if allowed_account_ids is not None else None + assume_role = _utilities.configure(assume_role, ProviderAssumeRoleArgs, True) __props__.__dict__["assume_role"] = pulumi.Output.from_input(assume_role).apply(pulumi.runtime.to_json) if assume_role is not None else None + assume_role_with_web_identity = _utilities.configure(assume_role_with_web_identity, ProviderAssumeRoleWithWebIdentityArgs, True) __props__.__dict__["assume_role_with_web_identity"] = pulumi.Output.from_input(assume_role_with_web_identity).apply(pulumi.runtime.to_json) if assume_role_with_web_identity is not None else None __props__.__dict__["custom_ca_bundle"] = custom_ca_bundle + default_tags = _utilities.configure(default_tags, ProviderDefaultTagsArgs, True) __props__.__dict__["default_tags"] = pulumi.Output.from_input(default_tags).apply(pulumi.runtime.to_json) if default_tags is not None else None __props__.__dict__["ec2_metadata_service_endpoint"] = ec2_metadata_service_endpoint __props__.__dict__["ec2_metadata_service_endpoint_mode"] = ec2_metadata_service_endpoint_mode __props__.__dict__["endpoints"] = pulumi.Output.from_input(endpoints).apply(pulumi.runtime.to_json) if endpoints is not None else None __props__.__dict__["forbidden_account_ids"] = pulumi.Output.from_input(forbidden_account_ids).apply(pulumi.runtime.to_json) if forbidden_account_ids is not None else None __props__.__dict__["http_proxy"] = http_proxy + ignore_tags = _utilities.configure(ignore_tags, ProviderIgnoreTagsArgs, True) __props__.__dict__["ignore_tags"] = pulumi.Output.from_input(ignore_tags).apply(pulumi.runtime.to_json) if ignore_tags is not None else None __props__.__dict__["insecure"] = pulumi.Output.from_input(insecure).apply(pulumi.runtime.to_json) if insecure is not None else None __props__.__dict__["max_retries"] = pulumi.Output.from_input(max_retries).apply(pulumi.runtime.to_json) if max_retries is not None else None diff --git a/sdk/python/pulumi_aws/qldb/_inputs.py b/sdk/python/pulumi_aws/qldb/_inputs.py index d3713551749..8033e5ccfba 100644 --- a/sdk/python/pulumi_aws/qldb/_inputs.py +++ b/sdk/python/pulumi_aws/qldb/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,9 +22,28 @@ def __init__(__self__, *, :param pulumi.Input[str] stream_arn: The Amazon Resource Name (ARN) of the Kinesis Data Streams resource. :param pulumi.Input[bool] aggregation_enabled: Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call. Default: `true`. """ - pulumi.set(__self__, "stream_arn", stream_arn) + StreamKinesisConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_arn=stream_arn, + aggregation_enabled=aggregation_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_arn: Optional[pulumi.Input[str]] = None, + aggregation_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + if aggregation_enabled is None and 'aggregationEnabled' in kwargs: + aggregation_enabled = kwargs['aggregationEnabled'] + + _setter("stream_arn", stream_arn) if aggregation_enabled is not None: - pulumi.set(__self__, "aggregation_enabled", aggregation_enabled) + _setter("aggregation_enabled", aggregation_enabled) @property @pulumi.getter(name="streamArn") diff --git a/sdk/python/pulumi_aws/qldb/get_ledger.py b/sdk/python/pulumi_aws/qldb/get_ledger.py index d6726400f51..b42a85201b9 100644 --- a/sdk/python/pulumi_aws/qldb/get_ledger.py +++ b/sdk/python/pulumi_aws/qldb/get_ledger.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/qldb/ledger.py b/sdk/python/pulumi_aws/qldb/ledger.py index b015ae18c9d..dcf3d597994 100644 --- a/sdk/python/pulumi_aws/qldb/ledger.py +++ b/sdk/python/pulumi_aws/qldb/ledger.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['LedgerArgs', 'Ledger'] @@ -27,15 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The friendly name for the QLDB Ledger instance. By default generated by the provider. :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. """ - pulumi.set(__self__, "permissions_mode", permissions_mode) + LedgerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions_mode=permissions_mode, + deletion_protection=deletion_protection, + kms_key=kms_key, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions_mode: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions_mode is None and 'permissionsMode' in kwargs: + permissions_mode = kwargs['permissionsMode'] + if permissions_mode is None: + raise TypeError("Missing 'permissions_mode' argument") + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + + _setter("permissions_mode", permissions_mode) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="permissionsMode") @@ -118,23 +145,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _LedgerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + deletion_protection=deletion_protection, + kms_key=kms_key, + name=name, + permissions_mode=permissions_mode, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + permissions_mode: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if permissions_mode is None and 'permissionsMode' in kwargs: + permissions_mode = kwargs['permissionsMode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permissions_mode is not None: - pulumi.set(__self__, "permissions_mode", permissions_mode) + _setter("permissions_mode", permissions_mode) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -303,6 +361,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LedgerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/qldb/outputs.py b/sdk/python/pulumi_aws/qldb/outputs.py index 286dd43bf57..4ebea6b8236 100644 --- a/sdk/python/pulumi_aws/qldb/outputs.py +++ b/sdk/python/pulumi_aws/qldb/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,9 +41,28 @@ def __init__(__self__, *, :param str stream_arn: The Amazon Resource Name (ARN) of the Kinesis Data Streams resource. :param bool aggregation_enabled: Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call. Default: `true`. """ - pulumi.set(__self__, "stream_arn", stream_arn) + StreamKinesisConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + stream_arn=stream_arn, + aggregation_enabled=aggregation_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + stream_arn: Optional[str] = None, + aggregation_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + if aggregation_enabled is None and 'aggregationEnabled' in kwargs: + aggregation_enabled = kwargs['aggregationEnabled'] + + _setter("stream_arn", stream_arn) if aggregation_enabled is not None: - pulumi.set(__self__, "aggregation_enabled", aggregation_enabled) + _setter("aggregation_enabled", aggregation_enabled) @property @pulumi.getter(name="streamArn") diff --git a/sdk/python/pulumi_aws/qldb/stream.py b/sdk/python/pulumi_aws/qldb/stream.py index 4fe39b8784d..da3262f6868 100644 --- a/sdk/python/pulumi_aws/qldb/stream.py +++ b/sdk/python/pulumi_aws/qldb/stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,15 +33,60 @@ def __init__(__self__, *, :param pulumi.Input[str] exclusive_end_time: The exclusive date and time that specifies when the stream ends. If you don't define this parameter, the stream runs indefinitely until you cancel it. It must be in ISO 8601 date and time format and in Universal Coordinated Time (UTC). For example: `"2019-06-13T21:36:34Z"`. :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. """ - pulumi.set(__self__, "inclusive_start_time", inclusive_start_time) - pulumi.set(__self__, "kinesis_configuration", kinesis_configuration) - pulumi.set(__self__, "ledger_name", ledger_name) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_name", stream_name) + StreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + inclusive_start_time=inclusive_start_time, + kinesis_configuration=kinesis_configuration, + ledger_name=ledger_name, + role_arn=role_arn, + stream_name=stream_name, + exclusive_end_time=exclusive_end_time, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inclusive_start_time: Optional[pulumi.Input[str]] = None, + kinesis_configuration: Optional[pulumi.Input['StreamKinesisConfigurationArgs']] = None, + ledger_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + stream_name: Optional[pulumi.Input[str]] = None, + exclusive_end_time: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inclusive_start_time is None and 'inclusiveStartTime' in kwargs: + inclusive_start_time = kwargs['inclusiveStartTime'] + if inclusive_start_time is None: + raise TypeError("Missing 'inclusive_start_time' argument") + if kinesis_configuration is None and 'kinesisConfiguration' in kwargs: + kinesis_configuration = kwargs['kinesisConfiguration'] + if kinesis_configuration is None: + raise TypeError("Missing 'kinesis_configuration' argument") + if ledger_name is None and 'ledgerName' in kwargs: + ledger_name = kwargs['ledgerName'] + if ledger_name is None: + raise TypeError("Missing 'ledger_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if stream_name is None: + raise TypeError("Missing 'stream_name' argument") + if exclusive_end_time is None and 'exclusiveEndTime' in kwargs: + exclusive_end_time = kwargs['exclusiveEndTime'] + + _setter("inclusive_start_time", inclusive_start_time) + _setter("kinesis_configuration", kinesis_configuration) + _setter("ledger_name", ledger_name) + _setter("role_arn", role_arn) + _setter("stream_name", stream_name) if exclusive_end_time is not None: - pulumi.set(__self__, "exclusive_end_time", exclusive_end_time) + _setter("exclusive_end_time", exclusive_end_time) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="inclusiveStartTime") @@ -152,27 +197,68 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _StreamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + exclusive_end_time=exclusive_end_time, + inclusive_start_time=inclusive_start_time, + kinesis_configuration=kinesis_configuration, + ledger_name=ledger_name, + role_arn=role_arn, + stream_name=stream_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + exclusive_end_time: Optional[pulumi.Input[str]] = None, + inclusive_start_time: Optional[pulumi.Input[str]] = None, + kinesis_configuration: Optional[pulumi.Input['StreamKinesisConfigurationArgs']] = None, + ledger_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + stream_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exclusive_end_time is None and 'exclusiveEndTime' in kwargs: + exclusive_end_time = kwargs['exclusiveEndTime'] + if inclusive_start_time is None and 'inclusiveStartTime' in kwargs: + inclusive_start_time = kwargs['inclusiveStartTime'] + if kinesis_configuration is None and 'kinesisConfiguration' in kwargs: + kinesis_configuration = kwargs['kinesisConfiguration'] + if ledger_name is None and 'ledgerName' in kwargs: + ledger_name = kwargs['ledgerName'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if stream_name is None and 'streamName' in kwargs: + stream_name = kwargs['streamName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if exclusive_end_time is not None: - pulumi.set(__self__, "exclusive_end_time", exclusive_end_time) + _setter("exclusive_end_time", exclusive_end_time) if inclusive_start_time is not None: - pulumi.set(__self__, "inclusive_start_time", inclusive_start_time) + _setter("inclusive_start_time", inclusive_start_time) if kinesis_configuration is not None: - pulumi.set(__self__, "kinesis_configuration", kinesis_configuration) + _setter("kinesis_configuration", kinesis_configuration) if ledger_name is not None: - pulumi.set(__self__, "ledger_name", ledger_name) + _setter("ledger_name", ledger_name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if stream_name is not None: - pulumi.set(__self__, "stream_name", stream_name) + _setter("stream_name", stream_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -371,6 +457,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StreamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -396,6 +486,7 @@ def _internal_init(__self__, if inclusive_start_time is None and not opts.urn: raise TypeError("Missing required property 'inclusive_start_time'") __props__.__dict__["inclusive_start_time"] = inclusive_start_time + kinesis_configuration = _utilities.configure(kinesis_configuration, StreamKinesisConfigurationArgs, True) if kinesis_configuration is None and not opts.urn: raise TypeError("Missing required property 'kinesis_configuration'") __props__.__dict__["kinesis_configuration"] = kinesis_configuration diff --git a/sdk/python/pulumi_aws/quicksight/_inputs.py b/sdk/python/pulumi_aws/quicksight/_inputs.py index ea0026ad6b5..c8528721551 100644 --- a/sdk/python/pulumi_aws/quicksight/_inputs.py +++ b/sdk/python/pulumi_aws/quicksight/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -144,14 +144,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['AnalysisParametersIntegerParameterArgs']]] integer_parameters: A list of parameters that have a data type of integer. See [AWS API Documentation for complete description](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_IntegerParameter.html). :param pulumi.Input[Sequence[pulumi.Input['AnalysisParametersStringParameterArgs']]] string_parameters: A list of parameters that have a data type of string. See [AWS API Documentation for complete description](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StringParameter.html). """ + AnalysisParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_time_parameters=date_time_parameters, + decimal_parameters=decimal_parameters, + integer_parameters=integer_parameters, + string_parameters=string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_time_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['AnalysisParametersDateTimeParameterArgs']]]] = None, + decimal_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['AnalysisParametersDecimalParameterArgs']]]] = None, + integer_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['AnalysisParametersIntegerParameterArgs']]]] = None, + string_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['AnalysisParametersStringParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_time_parameters is None and 'dateTimeParameters' in kwargs: + date_time_parameters = kwargs['dateTimeParameters'] + if decimal_parameters is None and 'decimalParameters' in kwargs: + decimal_parameters = kwargs['decimalParameters'] + if integer_parameters is None and 'integerParameters' in kwargs: + integer_parameters = kwargs['integerParameters'] + if string_parameters is None and 'stringParameters' in kwargs: + string_parameters = kwargs['stringParameters'] + if date_time_parameters is not None: - pulumi.set(__self__, "date_time_parameters", date_time_parameters) + _setter("date_time_parameters", date_time_parameters) if decimal_parameters is not None: - pulumi.set(__self__, "decimal_parameters", decimal_parameters) + _setter("decimal_parameters", decimal_parameters) if integer_parameters is not None: - pulumi.set(__self__, "integer_parameters", integer_parameters) + _setter("integer_parameters", integer_parameters) if string_parameters is not None: - pulumi.set(__self__, "string_parameters", string_parameters) + _setter("string_parameters", string_parameters) @property @pulumi.getter(name="dateTimeParameters") @@ -212,8 +237,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + AnalysisParametersDateTimeParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -249,8 +291,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + AnalysisParametersDecimalParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[float]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -286,8 +345,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + AnalysisParametersIntegerParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -323,8 +399,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + AnalysisParametersStringParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -359,8 +452,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] actions: List of IAM actions to grant or revoke permissions on. :param pulumi.Input[str] principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + AnalysisPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -394,8 +504,21 @@ def __init__(__self__, *, """ :param pulumi.Input['AnalysisSourceEntitySourceTemplateArgs'] source_template: The source template. See source_template. """ + AnalysisSourceEntityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_template=source_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_template: Optional[pulumi.Input['AnalysisSourceEntitySourceTemplateArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_template is None and 'sourceTemplate' in kwargs: + source_template = kwargs['sourceTemplate'] + if source_template is not None: - pulumi.set(__self__, "source_template", source_template) + _setter("source_template", source_template) @property @pulumi.getter(name="sourceTemplate") @@ -419,8 +542,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the resource. :param pulumi.Input[Sequence[pulumi.Input['AnalysisSourceEntitySourceTemplateDataSetReferenceArgs']]] data_set_references: List of dataset references. See data_set_references. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "data_set_references", data_set_references) + AnalysisSourceEntitySourceTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_set_references=data_set_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + data_set_references: Optional[pulumi.Input[Sequence[pulumi.Input['AnalysisSourceEntitySourceTemplateDataSetReferenceArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if data_set_references is None and 'dataSetReferences' in kwargs: + data_set_references = kwargs['dataSetReferences'] + if data_set_references is None: + raise TypeError("Missing 'data_set_references' argument") + + _setter("arn", arn) + _setter("data_set_references", data_set_references) @property @pulumi.getter @@ -456,8 +598,29 @@ def __init__(__self__, *, :param pulumi.Input[str] data_set_arn: Dataset Amazon Resource Name (ARN). :param pulumi.Input[str] data_set_placeholder: Dataset placeholder. """ - pulumi.set(__self__, "data_set_arn", data_set_arn) - pulumi.set(__self__, "data_set_placeholder", data_set_placeholder) + AnalysisSourceEntitySourceTemplateDataSetReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_arn=data_set_arn, + data_set_placeholder=data_set_placeholder, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_arn: Optional[pulumi.Input[str]] = None, + data_set_placeholder: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_arn is None and 'dataSetArn' in kwargs: + data_set_arn = kwargs['dataSetArn'] + if data_set_arn is None: + raise TypeError("Missing 'data_set_arn' argument") + if data_set_placeholder is None and 'dataSetPlaceholder' in kwargs: + data_set_placeholder = kwargs['dataSetPlaceholder'] + if data_set_placeholder is None: + raise TypeError("Missing 'data_set_placeholder' argument") + + _setter("data_set_arn", data_set_arn) + _setter("data_set_placeholder", data_set_placeholder) @property @pulumi.getter(name="dataSetArn") @@ -509,26 +672,75 @@ def __init__(__self__, *, :param pulumi.Input['DashboardDashboardPublishOptionsVisualAxisSortOptionArgs'] visual_axis_sort_option: The axis sort options of a dashboard. See visual_axis_sort_option. :param pulumi.Input['DashboardDashboardPublishOptionsVisualMenuOptionArgs'] visual_menu_option: The menu options of a visual in a dashboard. See visual_menu_option. """ + DashboardDashboardPublishOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ad_hoc_filtering_option=ad_hoc_filtering_option, + data_point_drill_up_down_option=data_point_drill_up_down_option, + data_point_menu_label_option=data_point_menu_label_option, + data_point_tooltip_option=data_point_tooltip_option, + export_to_csv_option=export_to_csv_option, + export_with_hidden_fields_option=export_with_hidden_fields_option, + sheet_controls_option=sheet_controls_option, + sheet_layout_element_maximization_option=sheet_layout_element_maximization_option, + visual_axis_sort_option=visual_axis_sort_option, + visual_menu_option=visual_menu_option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ad_hoc_filtering_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsAdHocFilteringOptionArgs']] = None, + data_point_drill_up_down_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsDataPointDrillUpDownOptionArgs']] = None, + data_point_menu_label_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsDataPointMenuLabelOptionArgs']] = None, + data_point_tooltip_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsDataPointTooltipOptionArgs']] = None, + export_to_csv_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsExportToCsvOptionArgs']] = None, + export_with_hidden_fields_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsExportWithHiddenFieldsOptionArgs']] = None, + sheet_controls_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsSheetControlsOptionArgs']] = None, + sheet_layout_element_maximization_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsSheetLayoutElementMaximizationOptionArgs']] = None, + visual_axis_sort_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsVisualAxisSortOptionArgs']] = None, + visual_menu_option: Optional[pulumi.Input['DashboardDashboardPublishOptionsVisualMenuOptionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ad_hoc_filtering_option is None and 'adHocFilteringOption' in kwargs: + ad_hoc_filtering_option = kwargs['adHocFilteringOption'] + if data_point_drill_up_down_option is None and 'dataPointDrillUpDownOption' in kwargs: + data_point_drill_up_down_option = kwargs['dataPointDrillUpDownOption'] + if data_point_menu_label_option is None and 'dataPointMenuLabelOption' in kwargs: + data_point_menu_label_option = kwargs['dataPointMenuLabelOption'] + if data_point_tooltip_option is None and 'dataPointTooltipOption' in kwargs: + data_point_tooltip_option = kwargs['dataPointTooltipOption'] + if export_to_csv_option is None and 'exportToCsvOption' in kwargs: + export_to_csv_option = kwargs['exportToCsvOption'] + if export_with_hidden_fields_option is None and 'exportWithHiddenFieldsOption' in kwargs: + export_with_hidden_fields_option = kwargs['exportWithHiddenFieldsOption'] + if sheet_controls_option is None and 'sheetControlsOption' in kwargs: + sheet_controls_option = kwargs['sheetControlsOption'] + if sheet_layout_element_maximization_option is None and 'sheetLayoutElementMaximizationOption' in kwargs: + sheet_layout_element_maximization_option = kwargs['sheetLayoutElementMaximizationOption'] + if visual_axis_sort_option is None and 'visualAxisSortOption' in kwargs: + visual_axis_sort_option = kwargs['visualAxisSortOption'] + if visual_menu_option is None and 'visualMenuOption' in kwargs: + visual_menu_option = kwargs['visualMenuOption'] + if ad_hoc_filtering_option is not None: - pulumi.set(__self__, "ad_hoc_filtering_option", ad_hoc_filtering_option) + _setter("ad_hoc_filtering_option", ad_hoc_filtering_option) if data_point_drill_up_down_option is not None: - pulumi.set(__self__, "data_point_drill_up_down_option", data_point_drill_up_down_option) + _setter("data_point_drill_up_down_option", data_point_drill_up_down_option) if data_point_menu_label_option is not None: - pulumi.set(__self__, "data_point_menu_label_option", data_point_menu_label_option) + _setter("data_point_menu_label_option", data_point_menu_label_option) if data_point_tooltip_option is not None: - pulumi.set(__self__, "data_point_tooltip_option", data_point_tooltip_option) + _setter("data_point_tooltip_option", data_point_tooltip_option) if export_to_csv_option is not None: - pulumi.set(__self__, "export_to_csv_option", export_to_csv_option) + _setter("export_to_csv_option", export_to_csv_option) if export_with_hidden_fields_option is not None: - pulumi.set(__self__, "export_with_hidden_fields_option", export_with_hidden_fields_option) + _setter("export_with_hidden_fields_option", export_with_hidden_fields_option) if sheet_controls_option is not None: - pulumi.set(__self__, "sheet_controls_option", sheet_controls_option) + _setter("sheet_controls_option", sheet_controls_option) if sheet_layout_element_maximization_option is not None: - pulumi.set(__self__, "sheet_layout_element_maximization_option", sheet_layout_element_maximization_option) + _setter("sheet_layout_element_maximization_option", sheet_layout_element_maximization_option) if visual_axis_sort_option is not None: - pulumi.set(__self__, "visual_axis_sort_option", visual_axis_sort_option) + _setter("visual_axis_sort_option", visual_axis_sort_option) if visual_menu_option is not None: - pulumi.set(__self__, "visual_menu_option", visual_menu_option) + _setter("visual_menu_option", visual_menu_option) @property @pulumi.getter(name="adHocFilteringOption") @@ -658,8 +870,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsAdHocFilteringOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -681,8 +906,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsDataPointDrillUpDownOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -704,8 +942,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsDataPointMenuLabelOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -727,8 +978,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsDataPointTooltipOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -750,8 +1014,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsExportToCsvOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -773,8 +1050,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsExportWithHiddenFieldsOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -796,8 +1086,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] visibility_state: Visibility state. Possibles values: EXPANDED, COLLAPSED. """ + DashboardDashboardPublishOptionsSheetControlsOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + visibility_state=visibility_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + visibility_state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if visibility_state is None and 'visibilityState' in kwargs: + visibility_state = kwargs['visibilityState'] + if visibility_state is not None: - pulumi.set(__self__, "visibility_state", visibility_state) + _setter("visibility_state", visibility_state) @property @pulumi.getter(name="visibilityState") @@ -819,8 +1122,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsSheetLayoutElementMaximizationOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -842,8 +1158,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsVisualAxisSortOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -865,8 +1194,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsVisualMenuOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -894,14 +1236,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DashboardParametersIntegerParameterArgs']]] integer_parameters: A list of parameters that have a data type of integer. See [AWS API Documentation for complete description](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_IntegerParameter.html). :param pulumi.Input[Sequence[pulumi.Input['DashboardParametersStringParameterArgs']]] string_parameters: A list of parameters that have a data type of string. See [AWS API Documentation for complete description](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StringParameter.html). """ + DashboardParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_time_parameters=date_time_parameters, + decimal_parameters=decimal_parameters, + integer_parameters=integer_parameters, + string_parameters=string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_time_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['DashboardParametersDateTimeParameterArgs']]]] = None, + decimal_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['DashboardParametersDecimalParameterArgs']]]] = None, + integer_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['DashboardParametersIntegerParameterArgs']]]] = None, + string_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['DashboardParametersStringParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_time_parameters is None and 'dateTimeParameters' in kwargs: + date_time_parameters = kwargs['dateTimeParameters'] + if decimal_parameters is None and 'decimalParameters' in kwargs: + decimal_parameters = kwargs['decimalParameters'] + if integer_parameters is None and 'integerParameters' in kwargs: + integer_parameters = kwargs['integerParameters'] + if string_parameters is None and 'stringParameters' in kwargs: + string_parameters = kwargs['stringParameters'] + if date_time_parameters is not None: - pulumi.set(__self__, "date_time_parameters", date_time_parameters) + _setter("date_time_parameters", date_time_parameters) if decimal_parameters is not None: - pulumi.set(__self__, "decimal_parameters", decimal_parameters) + _setter("decimal_parameters", decimal_parameters) if integer_parameters is not None: - pulumi.set(__self__, "integer_parameters", integer_parameters) + _setter("integer_parameters", integer_parameters) if string_parameters is not None: - pulumi.set(__self__, "string_parameters", string_parameters) + _setter("string_parameters", string_parameters) @property @pulumi.getter(name="dateTimeParameters") @@ -960,8 +1327,25 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Display name for the dashboard. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + DashboardParametersDateTimeParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -993,8 +1377,25 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Display name for the dashboard. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + DashboardParametersDecimalParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[float]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1026,8 +1427,25 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Display name for the dashboard. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + DashboardParametersIntegerParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1059,8 +1477,25 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Display name for the dashboard. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + DashboardParametersStringParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1093,8 +1528,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] actions: List of IAM actions to grant or revoke permissions on. :param pulumi.Input[str] principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + DashboardPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -1128,8 +1580,21 @@ def __init__(__self__, *, """ :param pulumi.Input['DashboardSourceEntitySourceTemplateArgs'] source_template: The source template. See source_template. """ + DashboardSourceEntityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_template=source_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_template: Optional[pulumi.Input['DashboardSourceEntitySourceTemplateArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_template is None and 'sourceTemplate' in kwargs: + source_template = kwargs['sourceTemplate'] + if source_template is not None: - pulumi.set(__self__, "source_template", source_template) + _setter("source_template", source_template) @property @pulumi.getter(name="sourceTemplate") @@ -1153,8 +1618,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the resource. :param pulumi.Input[Sequence[pulumi.Input['DashboardSourceEntitySourceTemplateDataSetReferenceArgs']]] data_set_references: List of dataset references. See data_set_references. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "data_set_references", data_set_references) + DashboardSourceEntitySourceTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_set_references=data_set_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + data_set_references: Optional[pulumi.Input[Sequence[pulumi.Input['DashboardSourceEntitySourceTemplateDataSetReferenceArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if data_set_references is None and 'dataSetReferences' in kwargs: + data_set_references = kwargs['dataSetReferences'] + if data_set_references is None: + raise TypeError("Missing 'data_set_references' argument") + + _setter("arn", arn) + _setter("data_set_references", data_set_references) @property @pulumi.getter @@ -1190,8 +1674,29 @@ def __init__(__self__, *, :param pulumi.Input[str] data_set_arn: Dataset Amazon Resource Name (ARN). :param pulumi.Input[str] data_set_placeholder: Dataset placeholder. """ - pulumi.set(__self__, "data_set_arn", data_set_arn) - pulumi.set(__self__, "data_set_placeholder", data_set_placeholder) + DashboardSourceEntitySourceTemplateDataSetReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_arn=data_set_arn, + data_set_placeholder=data_set_placeholder, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_arn: Optional[pulumi.Input[str]] = None, + data_set_placeholder: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_arn is None and 'dataSetArn' in kwargs: + data_set_arn = kwargs['dataSetArn'] + if data_set_arn is None: + raise TypeError("Missing 'data_set_arn' argument") + if data_set_placeholder is None and 'dataSetPlaceholder' in kwargs: + data_set_placeholder = kwargs['dataSetPlaceholder'] + if data_set_placeholder is None: + raise TypeError("Missing 'data_set_placeholder' argument") + + _setter("data_set_arn", data_set_arn) + _setter("data_set_placeholder", data_set_placeholder) @property @pulumi.getter(name="dataSetArn") @@ -1225,8 +1730,21 @@ def __init__(__self__, *, """ :param pulumi.Input['DataSetColumnGroupGeoSpatialColumnGroupArgs'] geo_spatial_column_group: Geospatial column group that denotes a hierarchy. See geo_spatial_column_group. """ + DataSetColumnGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + geo_spatial_column_group=geo_spatial_column_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + geo_spatial_column_group: Optional[pulumi.Input['DataSetColumnGroupGeoSpatialColumnGroupArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if geo_spatial_column_group is None and 'geoSpatialColumnGroup' in kwargs: + geo_spatial_column_group = kwargs['geoSpatialColumnGroup'] + if geo_spatial_column_group is not None: - pulumi.set(__self__, "geo_spatial_column_group", geo_spatial_column_group) + _setter("geo_spatial_column_group", geo_spatial_column_group) @property @pulumi.getter(name="geoSpatialColumnGroup") @@ -1252,9 +1770,32 @@ def __init__(__self__, *, :param pulumi.Input[str] country_code: Country code. Valid values are `US`. :param pulumi.Input[str] name: A display name for the hierarchy. """ - pulumi.set(__self__, "columns", columns) - pulumi.set(__self__, "country_code", country_code) - pulumi.set(__self__, "name", name) + DataSetColumnGroupGeoSpatialColumnGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + country_code=country_code, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + country_code: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if country_code is None: + raise TypeError("Missing 'country_code' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("columns", columns) + _setter("country_code", country_code) + _setter("name", name) @property @pulumi.getter @@ -1302,10 +1843,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] column_names: An array of column names. :param pulumi.Input[Sequence[pulumi.Input[str]]] principals: An array of ARNs for Amazon QuickSight users or groups. """ + DataSetColumnLevelPermissionRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_names=column_names, + principals=principals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if column_names is not None: - pulumi.set(__self__, "column_names", column_names) + _setter("column_names", column_names) if principals is not None: - pulumi.set(__self__, "principals", principals) + _setter("principals", principals) @property @pulumi.getter(name="columnNames") @@ -1341,10 +1897,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] disable_use_as_direct_query_source: Controls whether a child dataset of a direct query can use this dataset as a source. :param pulumi.Input[bool] disable_use_as_imported_source: Controls whether a child dataset that's stored in QuickSight can use this dataset as a source. """ + DataSetDataSetUsageConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + disable_use_as_direct_query_source=disable_use_as_direct_query_source, + disable_use_as_imported_source=disable_use_as_imported_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disable_use_as_direct_query_source: Optional[pulumi.Input[bool]] = None, + disable_use_as_imported_source: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disable_use_as_direct_query_source is None and 'disableUseAsDirectQuerySource' in kwargs: + disable_use_as_direct_query_source = kwargs['disableUseAsDirectQuerySource'] + if disable_use_as_imported_source is None and 'disableUseAsImportedSource' in kwargs: + disable_use_as_imported_source = kwargs['disableUseAsImportedSource'] + if disable_use_as_direct_query_source is not None: - pulumi.set(__self__, "disable_use_as_direct_query_source", disable_use_as_direct_query_source) + _setter("disable_use_as_direct_query_source", disable_use_as_direct_query_source) if disable_use_as_imported_source is not None: - pulumi.set(__self__, "disable_use_as_imported_source", disable_use_as_imported_source) + _setter("disable_use_as_imported_source", disable_use_as_imported_source) @property @pulumi.getter(name="disableUseAsDirectQuerySource") @@ -1382,11 +1955,30 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] columns: An array of column names to add to the folder. A column can only be in one folder. :param pulumi.Input[str] description: Field folder description. """ - pulumi.set(__self__, "field_folders_id", field_folders_id) + DataSetFieldFolderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_folders_id=field_folders_id, + columns=columns, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_folders_id: Optional[pulumi.Input[str]] = None, + columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_folders_id is None and 'fieldFoldersId' in kwargs: + field_folders_id = kwargs['fieldFoldersId'] + if field_folders_id is None: + raise TypeError("Missing 'field_folders_id' argument") + + _setter("field_folders_id", field_folders_id) if columns is not None: - pulumi.set(__self__, "columns", columns) + _setter("columns", columns) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="fieldFoldersId") @@ -1438,11 +2030,38 @@ def __init__(__self__, *, :param pulumi.Input['DataSetLogicalTableMapSourceArgs'] source: Source of this logical table. See source. :param pulumi.Input[Sequence[pulumi.Input['DataSetLogicalTableMapDataTransformArgs']]] data_transforms: Transform operations that act on this logical table. For this structure to be valid, only one of the attributes can be non-null. See data_transforms. """ - pulumi.set(__self__, "alias", alias) - pulumi.set(__self__, "logical_table_map_id", logical_table_map_id) - pulumi.set(__self__, "source", source) + DataSetLogicalTableMapArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + logical_table_map_id=logical_table_map_id, + source=source, + data_transforms=data_transforms, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[pulumi.Input[str]] = None, + logical_table_map_id: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input['DataSetLogicalTableMapSourceArgs']] = None, + data_transforms: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetLogicalTableMapDataTransformArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alias is None: + raise TypeError("Missing 'alias' argument") + if logical_table_map_id is None and 'logicalTableMapId' in kwargs: + logical_table_map_id = kwargs['logicalTableMapId'] + if logical_table_map_id is None: + raise TypeError("Missing 'logical_table_map_id' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if data_transforms is None and 'dataTransforms' in kwargs: + data_transforms = kwargs['dataTransforms'] + + _setter("alias", alias) + _setter("logical_table_map_id", logical_table_map_id) + _setter("source", source) if data_transforms is not None: - pulumi.set(__self__, "data_transforms", data_transforms) + _setter("data_transforms", data_transforms) @property @pulumi.getter @@ -1512,20 +2131,57 @@ def __init__(__self__, *, :param pulumi.Input['DataSetLogicalTableMapDataTransformTagColumnOperationArgs'] tag_column_operation: An operation that tags a column with additional information. See tag_column_operation. :param pulumi.Input['DataSetLogicalTableMapDataTransformUntagColumnOperationArgs'] untag_column_operation: A transform operation that removes tags associated with a column. See untag_column_operation. """ + DataSetLogicalTableMapDataTransformArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cast_column_type_operation=cast_column_type_operation, + create_columns_operation=create_columns_operation, + filter_operation=filter_operation, + project_operation=project_operation, + rename_column_operation=rename_column_operation, + tag_column_operation=tag_column_operation, + untag_column_operation=untag_column_operation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cast_column_type_operation: Optional[pulumi.Input['DataSetLogicalTableMapDataTransformCastColumnTypeOperationArgs']] = None, + create_columns_operation: Optional[pulumi.Input['DataSetLogicalTableMapDataTransformCreateColumnsOperationArgs']] = None, + filter_operation: Optional[pulumi.Input['DataSetLogicalTableMapDataTransformFilterOperationArgs']] = None, + project_operation: Optional[pulumi.Input['DataSetLogicalTableMapDataTransformProjectOperationArgs']] = None, + rename_column_operation: Optional[pulumi.Input['DataSetLogicalTableMapDataTransformRenameColumnOperationArgs']] = None, + tag_column_operation: Optional[pulumi.Input['DataSetLogicalTableMapDataTransformTagColumnOperationArgs']] = None, + untag_column_operation: Optional[pulumi.Input['DataSetLogicalTableMapDataTransformUntagColumnOperationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cast_column_type_operation is None and 'castColumnTypeOperation' in kwargs: + cast_column_type_operation = kwargs['castColumnTypeOperation'] + if create_columns_operation is None and 'createColumnsOperation' in kwargs: + create_columns_operation = kwargs['createColumnsOperation'] + if filter_operation is None and 'filterOperation' in kwargs: + filter_operation = kwargs['filterOperation'] + if project_operation is None and 'projectOperation' in kwargs: + project_operation = kwargs['projectOperation'] + if rename_column_operation is None and 'renameColumnOperation' in kwargs: + rename_column_operation = kwargs['renameColumnOperation'] + if tag_column_operation is None and 'tagColumnOperation' in kwargs: + tag_column_operation = kwargs['tagColumnOperation'] + if untag_column_operation is None and 'untagColumnOperation' in kwargs: + untag_column_operation = kwargs['untagColumnOperation'] + if cast_column_type_operation is not None: - pulumi.set(__self__, "cast_column_type_operation", cast_column_type_operation) + _setter("cast_column_type_operation", cast_column_type_operation) if create_columns_operation is not None: - pulumi.set(__self__, "create_columns_operation", create_columns_operation) + _setter("create_columns_operation", create_columns_operation) if filter_operation is not None: - pulumi.set(__self__, "filter_operation", filter_operation) + _setter("filter_operation", filter_operation) if project_operation is not None: - pulumi.set(__self__, "project_operation", project_operation) + _setter("project_operation", project_operation) if rename_column_operation is not None: - pulumi.set(__self__, "rename_column_operation", rename_column_operation) + _setter("rename_column_operation", rename_column_operation) if tag_column_operation is not None: - pulumi.set(__self__, "tag_column_operation", tag_column_operation) + _setter("tag_column_operation", tag_column_operation) if untag_column_operation is not None: - pulumi.set(__self__, "untag_column_operation", untag_column_operation) + _setter("untag_column_operation", untag_column_operation) @property @pulumi.getter(name="castColumnTypeOperation") @@ -1623,10 +2279,33 @@ def __init__(__self__, *, :param pulumi.Input[str] new_column_type: New column data type. Valid values are `STRING`, `INTEGER`, `DECIMAL`, `DATETIME`. :param pulumi.Input[str] format: When casting a column from string to datetime type, you can supply a string in a format supported by Amazon QuickSight to denote the source data format. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "new_column_type", new_column_type) + DataSetLogicalTableMapDataTransformCastColumnTypeOperationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + new_column_type=new_column_type, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[pulumi.Input[str]] = None, + new_column_type: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if new_column_type is None and 'newColumnType' in kwargs: + new_column_type = kwargs['newColumnType'] + if new_column_type is None: + raise TypeError("Missing 'new_column_type' argument") + + _setter("column_name", column_name) + _setter("new_column_type", new_column_type) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) @property @pulumi.getter(name="columnName") @@ -1672,7 +2351,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['DataSetLogicalTableMapDataTransformCreateColumnsOperationColumnArgs']]] columns: Calculated columns to create. See columns. """ - pulumi.set(__self__, "columns", columns) + DataSetLogicalTableMapDataTransformCreateColumnsOperationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetLogicalTableMapDataTransformCreateColumnsOperationColumnArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + + _setter("columns", columns) @property @pulumi.getter @@ -1698,9 +2390,34 @@ def __init__(__self__, *, :param pulumi.Input[str] column_name: Column name. :param pulumi.Input[str] expression: An expression that defines the calculated column. """ - pulumi.set(__self__, "column_id", column_id) - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "expression", expression) + DataSetLogicalTableMapDataTransformCreateColumnsOperationColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_id=column_id, + column_name=column_name, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_id: Optional[pulumi.Input[str]] = None, + column_name: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_id is None and 'columnId' in kwargs: + column_id = kwargs['columnId'] + if column_id is None: + raise TypeError("Missing 'column_id' argument") + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if expression is None: + raise TypeError("Missing 'expression' argument") + + _setter("column_id", column_id) + _setter("column_name", column_name) + _setter("expression", expression) @property @pulumi.getter(name="columnId") @@ -1746,7 +2463,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] condition_expression: An expression that must evaluate to a Boolean value. Rows for which the expression evaluates to true are kept in the dataset. """ - pulumi.set(__self__, "condition_expression", condition_expression) + DataSetLogicalTableMapDataTransformFilterOperationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition_expression=condition_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition_expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if condition_expression is None and 'conditionExpression' in kwargs: + condition_expression = kwargs['conditionExpression'] + if condition_expression is None: + raise TypeError("Missing 'condition_expression' argument") + + _setter("condition_expression", condition_expression) @property @pulumi.getter(name="conditionExpression") @@ -1768,7 +2500,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] projected_columns: Projected columns. """ - pulumi.set(__self__, "projected_columns", projected_columns) + DataSetLogicalTableMapDataTransformProjectOperationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + projected_columns=projected_columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + projected_columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if projected_columns is None and 'projectedColumns' in kwargs: + projected_columns = kwargs['projectedColumns'] + if projected_columns is None: + raise TypeError("Missing 'projected_columns' argument") + + _setter("projected_columns", projected_columns) @property @pulumi.getter(name="projectedColumns") @@ -1792,8 +2539,29 @@ def __init__(__self__, *, :param pulumi.Input[str] column_name: Column to be renamed. :param pulumi.Input[str] new_column_name: New name for the column. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "new_column_name", new_column_name) + DataSetLogicalTableMapDataTransformRenameColumnOperationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + new_column_name=new_column_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[pulumi.Input[str]] = None, + new_column_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if new_column_name is None and 'newColumnName' in kwargs: + new_column_name = kwargs['newColumnName'] + if new_column_name is None: + raise TypeError("Missing 'new_column_name' argument") + + _setter("column_name", column_name) + _setter("new_column_name", new_column_name) @property @pulumi.getter(name="columnName") @@ -1829,8 +2597,27 @@ def __init__(__self__, *, :param pulumi.Input[str] column_name: Column name. :param pulumi.Input[Sequence[pulumi.Input['DataSetLogicalTableMapDataTransformTagColumnOperationTagArgs']]] tags: The dataset column tag, currently only used for geospatial type tagging. See tags. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "tags", tags) + DataSetLogicalTableMapDataTransformTagColumnOperationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetLogicalTableMapDataTransformTagColumnOperationTagArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("column_name", column_name) + _setter("tags", tags) @property @pulumi.getter(name="columnName") @@ -1866,10 +2653,27 @@ def __init__(__self__, *, :param pulumi.Input['DataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescriptionArgs'] column_description: A description for a column. See column_description. :param pulumi.Input[str] column_geographic_role: A geospatial role for a column. Valid values are `COUNTRY`, `STATE`, `COUNTY`, `CITY`, `POSTCODE`, `LONGITUDE`, and `LATITUDE`. """ + DataSetLogicalTableMapDataTransformTagColumnOperationTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_description=column_description, + column_geographic_role=column_geographic_role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_description: Optional[pulumi.Input['DataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescriptionArgs']] = None, + column_geographic_role: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_description is None and 'columnDescription' in kwargs: + column_description = kwargs['columnDescription'] + if column_geographic_role is None and 'columnGeographicRole' in kwargs: + column_geographic_role = kwargs['columnGeographicRole'] + if column_description is not None: - pulumi.set(__self__, "column_description", column_description) + _setter("column_description", column_description) if column_geographic_role is not None: - pulumi.set(__self__, "column_geographic_role", column_geographic_role) + _setter("column_geographic_role", column_geographic_role) @property @pulumi.getter(name="columnDescription") @@ -1903,8 +2707,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] text: The text of a description for a column. """ + DataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text is not None: - pulumi.set(__self__, "text", text) + _setter("text", text) @property @pulumi.getter @@ -1928,8 +2743,29 @@ def __init__(__self__, *, :param pulumi.Input[str] column_name: Column name. :param pulumi.Input[Sequence[pulumi.Input[str]]] tag_names: The column tags to remove from this column. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "tag_names", tag_names) + DataSetLogicalTableMapDataTransformUntagColumnOperationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + tag_names=tag_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[pulumi.Input[str]] = None, + tag_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if tag_names is None and 'tagNames' in kwargs: + tag_names = kwargs['tagNames'] + if tag_names is None: + raise TypeError("Missing 'tag_names' argument") + + _setter("column_name", column_name) + _setter("tag_names", tag_names) @property @pulumi.getter(name="columnName") @@ -1967,12 +2803,33 @@ def __init__(__self__, *, :param pulumi.Input['DataSetLogicalTableMapSourceJoinInstructionArgs'] join_instruction: Specifies the result of a join of two logical tables. See join_instruction. :param pulumi.Input[str] physical_table_id: Physical table ID. """ + DataSetLogicalTableMapSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_arn=data_set_arn, + join_instruction=join_instruction, + physical_table_id=physical_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_arn: Optional[pulumi.Input[str]] = None, + join_instruction: Optional[pulumi.Input['DataSetLogicalTableMapSourceJoinInstructionArgs']] = None, + physical_table_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_arn is None and 'dataSetArn' in kwargs: + data_set_arn = kwargs['dataSetArn'] + if join_instruction is None and 'joinInstruction' in kwargs: + join_instruction = kwargs['joinInstruction'] + if physical_table_id is None and 'physicalTableId' in kwargs: + physical_table_id = kwargs['physicalTableId'] + if data_set_arn is not None: - pulumi.set(__self__, "data_set_arn", data_set_arn) + _setter("data_set_arn", data_set_arn) if join_instruction is not None: - pulumi.set(__self__, "join_instruction", join_instruction) + _setter("join_instruction", join_instruction) if physical_table_id is not None: - pulumi.set(__self__, "physical_table_id", physical_table_id) + _setter("physical_table_id", physical_table_id) @property @pulumi.getter(name="dataSetArn") @@ -2028,14 +2885,53 @@ def __init__(__self__, *, :param pulumi.Input['DataSetLogicalTableMapSourceJoinInstructionLeftJoinKeyPropertiesArgs'] left_join_key_properties: Join key properties of the left operand. See left_join_key_properties. :param pulumi.Input['DataSetLogicalTableMapSourceJoinInstructionRightJoinKeyPropertiesArgs'] right_join_key_properties: Join key properties of the right operand. See right_join_key_properties. """ - pulumi.set(__self__, "left_operand", left_operand) - pulumi.set(__self__, "on_clause", on_clause) - pulumi.set(__self__, "right_operand", right_operand) - pulumi.set(__self__, "type", type) + DataSetLogicalTableMapSourceJoinInstructionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + left_operand=left_operand, + on_clause=on_clause, + right_operand=right_operand, + type=type, + left_join_key_properties=left_join_key_properties, + right_join_key_properties=right_join_key_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + left_operand: Optional[pulumi.Input[str]] = None, + on_clause: Optional[pulumi.Input[str]] = None, + right_operand: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + left_join_key_properties: Optional[pulumi.Input['DataSetLogicalTableMapSourceJoinInstructionLeftJoinKeyPropertiesArgs']] = None, + right_join_key_properties: Optional[pulumi.Input['DataSetLogicalTableMapSourceJoinInstructionRightJoinKeyPropertiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if left_operand is None and 'leftOperand' in kwargs: + left_operand = kwargs['leftOperand'] + if left_operand is None: + raise TypeError("Missing 'left_operand' argument") + if on_clause is None and 'onClause' in kwargs: + on_clause = kwargs['onClause'] + if on_clause is None: + raise TypeError("Missing 'on_clause' argument") + if right_operand is None and 'rightOperand' in kwargs: + right_operand = kwargs['rightOperand'] + if right_operand is None: + raise TypeError("Missing 'right_operand' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if left_join_key_properties is None and 'leftJoinKeyProperties' in kwargs: + left_join_key_properties = kwargs['leftJoinKeyProperties'] + if right_join_key_properties is None and 'rightJoinKeyProperties' in kwargs: + right_join_key_properties = kwargs['rightJoinKeyProperties'] + + _setter("left_operand", left_operand) + _setter("on_clause", on_clause) + _setter("right_operand", right_operand) + _setter("type", type) if left_join_key_properties is not None: - pulumi.set(__self__, "left_join_key_properties", left_join_key_properties) + _setter("left_join_key_properties", left_join_key_properties) if right_join_key_properties is not None: - pulumi.set(__self__, "right_join_key_properties", right_join_key_properties) + _setter("right_join_key_properties", right_join_key_properties) @property @pulumi.getter(name="leftOperand") @@ -2117,8 +3013,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] unique_key: A value that indicates that a row in a table is uniquely identified by the columns in a join key. This is used by Amazon QuickSight to optimize query performance. """ + DataSetLogicalTableMapSourceJoinInstructionLeftJoinKeyPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unique_key=unique_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unique_key: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unique_key is None and 'uniqueKey' in kwargs: + unique_key = kwargs['uniqueKey'] + if unique_key is not None: - pulumi.set(__self__, "unique_key", unique_key) + _setter("unique_key", unique_key) @property @pulumi.getter(name="uniqueKey") @@ -2140,8 +3049,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] unique_key: A value that indicates that a row in a table is uniquely identified by the columns in a join key. This is used by Amazon QuickSight to optimize query performance. """ + DataSetLogicalTableMapSourceJoinInstructionRightJoinKeyPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unique_key=unique_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unique_key: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unique_key is None and 'uniqueKey' in kwargs: + unique_key = kwargs['uniqueKey'] + if unique_key is not None: - pulumi.set(__self__, "unique_key", unique_key) + _setter("unique_key", unique_key) @property @pulumi.getter(name="uniqueKey") @@ -2167,12 +3089,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Display name for the dataset. :param pulumi.Input[str] type: Data type of the column. """ + DataSetOutputColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -2220,8 +3157,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] actions: List of IAM actions to grant or revoke permissions on. :param pulumi.Input[str] principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + DataSetPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -2261,13 +3215,40 @@ def __init__(__self__, *, :param pulumi.Input['DataSetPhysicalTableMapRelationalTableArgs'] relational_table: A physical table type for relational data sources. See relational_table. :param pulumi.Input['DataSetPhysicalTableMapS3SourceArgs'] s3_source: A physical table type for as S3 data source. See s3_source. """ - pulumi.set(__self__, "physical_table_map_id", physical_table_map_id) + DataSetPhysicalTableMapArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + physical_table_map_id=physical_table_map_id, + custom_sql=custom_sql, + relational_table=relational_table, + s3_source=s3_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + physical_table_map_id: Optional[pulumi.Input[str]] = None, + custom_sql: Optional[pulumi.Input['DataSetPhysicalTableMapCustomSqlArgs']] = None, + relational_table: Optional[pulumi.Input['DataSetPhysicalTableMapRelationalTableArgs']] = None, + s3_source: Optional[pulumi.Input['DataSetPhysicalTableMapS3SourceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if physical_table_map_id is None and 'physicalTableMapId' in kwargs: + physical_table_map_id = kwargs['physicalTableMapId'] + if physical_table_map_id is None: + raise TypeError("Missing 'physical_table_map_id' argument") + if custom_sql is None and 'customSql' in kwargs: + custom_sql = kwargs['customSql'] + if relational_table is None and 'relationalTable' in kwargs: + relational_table = kwargs['relationalTable'] + if s3_source is None and 's3Source' in kwargs: + s3_source = kwargs['s3Source'] + + _setter("physical_table_map_id", physical_table_map_id) if custom_sql is not None: - pulumi.set(__self__, "custom_sql", custom_sql) + _setter("custom_sql", custom_sql) if relational_table is not None: - pulumi.set(__self__, "relational_table", relational_table) + _setter("relational_table", relational_table) if s3_source is not None: - pulumi.set(__self__, "s3_source", s3_source) + _setter("s3_source", s3_source) @property @pulumi.getter(name="physicalTableMapId") @@ -2331,11 +3312,38 @@ def __init__(__self__, *, :param pulumi.Input[str] sql_query: SQL query. :param pulumi.Input[Sequence[pulumi.Input['DataSetPhysicalTableMapCustomSqlColumnArgs']]] columns: Column schema from the SQL query result set. See columns. """ - pulumi.set(__self__, "data_source_arn", data_source_arn) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_query", sql_query) + DataSetPhysicalTableMapCustomSqlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_arn=data_source_arn, + name=name, + sql_query=sql_query, + columns=columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + sql_query: Optional[pulumi.Input[str]] = None, + columns: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetPhysicalTableMapCustomSqlColumnArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_arn is None: + raise TypeError("Missing 'data_source_arn' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if sql_query is None and 'sqlQuery' in kwargs: + sql_query = kwargs['sqlQuery'] + if sql_query is None: + raise TypeError("Missing 'sql_query' argument") + + _setter("data_source_arn", data_source_arn) + _setter("name", name) + _setter("sql_query", sql_query) if columns is not None: - pulumi.set(__self__, "columns", columns) + _setter("columns", columns) @property @pulumi.getter(name="dataSourceArn") @@ -2395,8 +3403,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of this column in the underlying data source. :param pulumi.Input[str] type: Data type of the column. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + DataSetPhysicalTableMapCustomSqlColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -2438,13 +3463,42 @@ def __init__(__self__, *, :param pulumi.Input[str] catalog: Catalog associated with the table. :param pulumi.Input[str] schema: Schema name. This name applies to certain relational database engines. """ - pulumi.set(__self__, "data_source_arn", data_source_arn) - pulumi.set(__self__, "input_columns", input_columns) - pulumi.set(__self__, "name", name) + DataSetPhysicalTableMapRelationalTableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_arn=data_source_arn, + input_columns=input_columns, + name=name, + catalog=catalog, + schema=schema, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_arn: Optional[pulumi.Input[str]] = None, + input_columns: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetPhysicalTableMapRelationalTableInputColumnArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + catalog: Optional[pulumi.Input[str]] = None, + schema: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_arn is None: + raise TypeError("Missing 'data_source_arn' argument") + if input_columns is None and 'inputColumns' in kwargs: + input_columns = kwargs['inputColumns'] + if input_columns is None: + raise TypeError("Missing 'input_columns' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("data_source_arn", data_source_arn) + _setter("input_columns", input_columns) + _setter("name", name) if catalog is not None: - pulumi.set(__self__, "catalog", catalog) + _setter("catalog", catalog) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) @property @pulumi.getter(name="dataSourceArn") @@ -2516,8 +3570,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of this column in the underlying data source. :param pulumi.Input[str] type: Data type of the column. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + DataSetPhysicalTableMapRelationalTableInputColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -2555,9 +3626,36 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DataSetPhysicalTableMapS3SourceInputColumnArgs']]] input_columns: Column schema of the table. See input_columns. :param pulumi.Input['DataSetPhysicalTableMapS3SourceUploadSettingsArgs'] upload_settings: Information about the format for the S3 source file or files. See upload_settings. """ - pulumi.set(__self__, "data_source_arn", data_source_arn) - pulumi.set(__self__, "input_columns", input_columns) - pulumi.set(__self__, "upload_settings", upload_settings) + DataSetPhysicalTableMapS3SourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_arn=data_source_arn, + input_columns=input_columns, + upload_settings=upload_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_arn: Optional[pulumi.Input[str]] = None, + input_columns: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetPhysicalTableMapS3SourceInputColumnArgs']]]] = None, + upload_settings: Optional[pulumi.Input['DataSetPhysicalTableMapS3SourceUploadSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_arn is None: + raise TypeError("Missing 'data_source_arn' argument") + if input_columns is None and 'inputColumns' in kwargs: + input_columns = kwargs['inputColumns'] + if input_columns is None: + raise TypeError("Missing 'input_columns' argument") + if upload_settings is None and 'uploadSettings' in kwargs: + upload_settings = kwargs['uploadSettings'] + if upload_settings is None: + raise TypeError("Missing 'upload_settings' argument") + + _setter("data_source_arn", data_source_arn) + _setter("input_columns", input_columns) + _setter("upload_settings", upload_settings) @property @pulumi.getter(name="dataSourceArn") @@ -2605,8 +3703,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of this column in the underlying data source. :param pulumi.Input[str] type: Data type of the column. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + DataSetPhysicalTableMapS3SourceInputColumnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -2648,16 +3763,41 @@ def __init__(__self__, *, :param pulumi.Input[int] start_from_row: A row number to start reading data from. :param pulumi.Input[str] text_qualifier: Text qualifier. Valid values are `DOUBLE_QUOTE` and `SINGLE_QUOTE`. """ + DataSetPhysicalTableMapS3SourceUploadSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + contains_header=contains_header, + delimiter=delimiter, + format=format, + start_from_row=start_from_row, + text_qualifier=text_qualifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contains_header: Optional[pulumi.Input[bool]] = None, + delimiter: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + start_from_row: Optional[pulumi.Input[int]] = None, + text_qualifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contains_header is None and 'containsHeader' in kwargs: + contains_header = kwargs['containsHeader'] + if start_from_row is None and 'startFromRow' in kwargs: + start_from_row = kwargs['startFromRow'] + if text_qualifier is None and 'textQualifier' in kwargs: + text_qualifier = kwargs['textQualifier'] + if contains_header is not None: - pulumi.set(__self__, "contains_header", contains_header) + _setter("contains_header", contains_header) if delimiter is not None: - pulumi.set(__self__, "delimiter", delimiter) + _setter("delimiter", delimiter) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if start_from_row is not None: - pulumi.set(__self__, "start_from_row", start_from_row) + _setter("start_from_row", start_from_row) if text_qualifier is not None: - pulumi.set(__self__, "text_qualifier", text_qualifier) + _setter("text_qualifier", text_qualifier) @property @pulumi.getter(name="containsHeader") @@ -2727,7 +3867,22 @@ def __init__(__self__, *, """ :param pulumi.Input['DataSetRefreshPropertiesRefreshConfigurationArgs'] refresh_configuration: The refresh configuration for the data set. See refresh_configuration. """ - pulumi.set(__self__, "refresh_configuration", refresh_configuration) + DataSetRefreshPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + refresh_configuration=refresh_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + refresh_configuration: Optional[pulumi.Input['DataSetRefreshPropertiesRefreshConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if refresh_configuration is None and 'refreshConfiguration' in kwargs: + refresh_configuration = kwargs['refreshConfiguration'] + if refresh_configuration is None: + raise TypeError("Missing 'refresh_configuration' argument") + + _setter("refresh_configuration", refresh_configuration) @property @pulumi.getter(name="refreshConfiguration") @@ -2749,7 +3904,22 @@ def __init__(__self__, *, """ :param pulumi.Input['DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshArgs'] incremental_refresh: The incremental refresh for the data set. See incremental_refresh. """ - pulumi.set(__self__, "incremental_refresh", incremental_refresh) + DataSetRefreshPropertiesRefreshConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + incremental_refresh=incremental_refresh, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + incremental_refresh: Optional[pulumi.Input['DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if incremental_refresh is None and 'incrementalRefresh' in kwargs: + incremental_refresh = kwargs['incrementalRefresh'] + if incremental_refresh is None: + raise TypeError("Missing 'incremental_refresh' argument") + + _setter("incremental_refresh", incremental_refresh) @property @pulumi.getter(name="incrementalRefresh") @@ -2771,7 +3941,22 @@ def __init__(__self__, *, """ :param pulumi.Input['DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshLookbackWindowArgs'] lookback_window: The lookback window setup for an incremental refresh configuration. See lookback_window. """ - pulumi.set(__self__, "lookback_window", lookback_window) + DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + lookback_window=lookback_window, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lookback_window: Optional[pulumi.Input['DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshLookbackWindowArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lookback_window is None and 'lookbackWindow' in kwargs: + lookback_window = kwargs['lookbackWindow'] + if lookback_window is None: + raise TypeError("Missing 'lookback_window' argument") + + _setter("lookback_window", lookback_window) @property @pulumi.getter(name="lookbackWindow") @@ -2797,9 +3982,34 @@ def __init__(__self__, *, :param pulumi.Input[int] size: The lookback window column size. :param pulumi.Input[str] size_unit: The size unit that is used for the lookback window column. Valid values for this structure are `HOUR`, `DAY`, and `WEEK`. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "size_unit", size_unit) + DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshLookbackWindowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + size=size, + size_unit=size_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + size_unit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if size_unit is None and 'sizeUnit' in kwargs: + size_unit = kwargs['sizeUnit'] + if size_unit is None: + raise TypeError("Missing 'size_unit' argument") + + _setter("column_name", column_name) + _setter("size", size) + _setter("size_unit", size_unit) @property @pulumi.getter(name="columnName") @@ -2853,14 +4063,41 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: Namespace associated with the dataset that contains permissions for RLS. :param pulumi.Input[str] status: Status of the row-level security permission dataset. If enabled, the status is `ENABLED`. If disabled, the status is `DISABLED`. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "permission_policy", permission_policy) + DataSetRowLevelPermissionDataSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + permission_policy=permission_policy, + format_version=format_version, + namespace=namespace, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + permission_policy: Optional[pulumi.Input[str]] = None, + format_version: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if permission_policy is None and 'permissionPolicy' in kwargs: + permission_policy = kwargs['permissionPolicy'] + if permission_policy is None: + raise TypeError("Missing 'permission_policy' argument") + if format_version is None and 'formatVersion' in kwargs: + format_version = kwargs['formatVersion'] + + _setter("arn", arn) + _setter("permission_policy", permission_policy) if format_version is not None: - pulumi.set(__self__, "format_version", format_version) + _setter("format_version", format_version) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -2932,9 +4169,26 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DataSetRowLevelPermissionTagConfigurationTagRuleArgs']]] tag_rules: A set of rules associated with row-level security, such as the tag names and columns that they are assigned to. See tag_rules. :param pulumi.Input[str] status: The status of row-level security tags. If enabled, the status is `ENABLED`. If disabled, the status is `DISABLED`. """ - pulumi.set(__self__, "tag_rules", tag_rules) + DataSetRowLevelPermissionTagConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tag_rules=tag_rules, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tag_rules: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetRowLevelPermissionTagConfigurationTagRuleArgs']]]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_rules is None and 'tagRules' in kwargs: + tag_rules = kwargs['tagRules'] + if tag_rules is None: + raise TypeError("Missing 'tag_rules' argument") + + _setter("tag_rules", tag_rules) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="tagRules") @@ -2974,12 +4228,41 @@ def __init__(__self__, *, :param pulumi.Input[str] match_all_value: A string that you want to use to filter by all the values in a column in the dataset and don’t want to list the values one by one. :param pulumi.Input[str] tag_multi_value_delimiter: A string that you want to use to delimit the values when you pass the values at run time. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "tag_key", tag_key) + DataSetRowLevelPermissionTagConfigurationTagRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + tag_key=tag_key, + match_all_value=match_all_value, + tag_multi_value_delimiter=tag_multi_value_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[pulumi.Input[str]] = None, + tag_key: Optional[pulumi.Input[str]] = None, + match_all_value: Optional[pulumi.Input[str]] = None, + tag_multi_value_delimiter: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if tag_key is None and 'tagKey' in kwargs: + tag_key = kwargs['tagKey'] + if tag_key is None: + raise TypeError("Missing 'tag_key' argument") + if match_all_value is None and 'matchAllValue' in kwargs: + match_all_value = kwargs['matchAllValue'] + if tag_multi_value_delimiter is None and 'tagMultiValueDelimiter' in kwargs: + tag_multi_value_delimiter = kwargs['tagMultiValueDelimiter'] + + _setter("column_name", column_name) + _setter("tag_key", tag_key) if match_all_value is not None: - pulumi.set(__self__, "match_all_value", match_all_value) + _setter("match_all_value", match_all_value) if tag_multi_value_delimiter is not None: - pulumi.set(__self__, "tag_multi_value_delimiter", tag_multi_value_delimiter) + _setter("tag_multi_value_delimiter", tag_multi_value_delimiter) @property @pulumi.getter(name="columnName") @@ -3040,10 +4323,27 @@ def __init__(__self__, *, When the value is not null, the `credential_pair` from the data source in the ARN is used. :param pulumi.Input['DataSourceCredentialsCredentialPairArgs'] credential_pair: Credential pair. See Credential Pair below for more details. """ + DataSourceCredentialsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + copy_source_arn=copy_source_arn, + credential_pair=credential_pair, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + copy_source_arn: Optional[pulumi.Input[str]] = None, + credential_pair: Optional[pulumi.Input['DataSourceCredentialsCredentialPairArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copy_source_arn is None and 'copySourceArn' in kwargs: + copy_source_arn = kwargs['copySourceArn'] + if credential_pair is None and 'credentialPair' in kwargs: + credential_pair = kwargs['credentialPair'] + if copy_source_arn is not None: - pulumi.set(__self__, "copy_source_arn", copy_source_arn) + _setter("copy_source_arn", copy_source_arn) if credential_pair is not None: - pulumi.set(__self__, "credential_pair", credential_pair) + _setter("credential_pair", credential_pair) @property @pulumi.getter(name="copySourceArn") @@ -3080,8 +4380,25 @@ def __init__(__self__, *, :param pulumi.Input[str] password: Password, maximum length of 1024 characters. :param pulumi.Input[str] username: User name, maximum length of 64 characters. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + DataSourceCredentialsCredentialPairArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -3153,46 +4470,107 @@ def __init__(__self__, *, :param pulumi.Input['DataSourceParametersTeradataArgs'] teradata: Parameters for connecting to Teradata. :param pulumi.Input['DataSourceParametersTwitterArgs'] twitter: Parameters for connecting to Twitter. """ + DataSourceParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_elasticsearch=amazon_elasticsearch, + athena=athena, + aurora=aurora, + aurora_postgresql=aurora_postgresql, + aws_iot_analytics=aws_iot_analytics, + jira=jira, + maria_db=maria_db, + mysql=mysql, + oracle=oracle, + postgresql=postgresql, + presto=presto, + rds=rds, + redshift=redshift, + s3=s3, + service_now=service_now, + snowflake=snowflake, + spark=spark, + sql_server=sql_server, + teradata=teradata, + twitter=twitter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_elasticsearch: Optional[pulumi.Input['DataSourceParametersAmazonElasticsearchArgs']] = None, + athena: Optional[pulumi.Input['DataSourceParametersAthenaArgs']] = None, + aurora: Optional[pulumi.Input['DataSourceParametersAuroraArgs']] = None, + aurora_postgresql: Optional[pulumi.Input['DataSourceParametersAuroraPostgresqlArgs']] = None, + aws_iot_analytics: Optional[pulumi.Input['DataSourceParametersAwsIotAnalyticsArgs']] = None, + jira: Optional[pulumi.Input['DataSourceParametersJiraArgs']] = None, + maria_db: Optional[pulumi.Input['DataSourceParametersMariaDbArgs']] = None, + mysql: Optional[pulumi.Input['DataSourceParametersMysqlArgs']] = None, + oracle: Optional[pulumi.Input['DataSourceParametersOracleArgs']] = None, + postgresql: Optional[pulumi.Input['DataSourceParametersPostgresqlArgs']] = None, + presto: Optional[pulumi.Input['DataSourceParametersPrestoArgs']] = None, + rds: Optional[pulumi.Input['DataSourceParametersRdsArgs']] = None, + redshift: Optional[pulumi.Input['DataSourceParametersRedshiftArgs']] = None, + s3: Optional[pulumi.Input['DataSourceParametersS3Args']] = None, + service_now: Optional[pulumi.Input['DataSourceParametersServiceNowArgs']] = None, + snowflake: Optional[pulumi.Input['DataSourceParametersSnowflakeArgs']] = None, + spark: Optional[pulumi.Input['DataSourceParametersSparkArgs']] = None, + sql_server: Optional[pulumi.Input['DataSourceParametersSqlServerArgs']] = None, + teradata: Optional[pulumi.Input['DataSourceParametersTeradataArgs']] = None, + twitter: Optional[pulumi.Input['DataSourceParametersTwitterArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_elasticsearch is None and 'amazonElasticsearch' in kwargs: + amazon_elasticsearch = kwargs['amazonElasticsearch'] + if aurora_postgresql is None and 'auroraPostgresql' in kwargs: + aurora_postgresql = kwargs['auroraPostgresql'] + if aws_iot_analytics is None and 'awsIotAnalytics' in kwargs: + aws_iot_analytics = kwargs['awsIotAnalytics'] + if maria_db is None and 'mariaDb' in kwargs: + maria_db = kwargs['mariaDb'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if sql_server is None and 'sqlServer' in kwargs: + sql_server = kwargs['sqlServer'] + if amazon_elasticsearch is not None: - pulumi.set(__self__, "amazon_elasticsearch", amazon_elasticsearch) + _setter("amazon_elasticsearch", amazon_elasticsearch) if athena is not None: - pulumi.set(__self__, "athena", athena) + _setter("athena", athena) if aurora is not None: - pulumi.set(__self__, "aurora", aurora) + _setter("aurora", aurora) if aurora_postgresql is not None: - pulumi.set(__self__, "aurora_postgresql", aurora_postgresql) + _setter("aurora_postgresql", aurora_postgresql) if aws_iot_analytics is not None: - pulumi.set(__self__, "aws_iot_analytics", aws_iot_analytics) + _setter("aws_iot_analytics", aws_iot_analytics) if jira is not None: - pulumi.set(__self__, "jira", jira) + _setter("jira", jira) if maria_db is not None: - pulumi.set(__self__, "maria_db", maria_db) + _setter("maria_db", maria_db) if mysql is not None: - pulumi.set(__self__, "mysql", mysql) + _setter("mysql", mysql) if oracle is not None: - pulumi.set(__self__, "oracle", oracle) + _setter("oracle", oracle) if postgresql is not None: - pulumi.set(__self__, "postgresql", postgresql) + _setter("postgresql", postgresql) if presto is not None: - pulumi.set(__self__, "presto", presto) + _setter("presto", presto) if rds is not None: - pulumi.set(__self__, "rds", rds) + _setter("rds", rds) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if snowflake is not None: - pulumi.set(__self__, "snowflake", snowflake) + _setter("snowflake", snowflake) if spark is not None: - pulumi.set(__self__, "spark", spark) + _setter("spark", spark) if sql_server is not None: - pulumi.set(__self__, "sql_server", sql_server) + _setter("sql_server", sql_server) if teradata is not None: - pulumi.set(__self__, "teradata", teradata) + _setter("teradata", teradata) if twitter is not None: - pulumi.set(__self__, "twitter", twitter) + _setter("twitter", twitter) @property @pulumi.getter(name="amazonElasticsearch") @@ -3442,7 +4820,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] domain: The OpenSearch domain. """ - pulumi.set(__self__, "domain", domain) + DataSourceParametersAmazonElasticsearchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + + _setter("domain", domain) @property @pulumi.getter @@ -3464,8 +4855,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] work_group: The work-group to which to connect. """ + DataSourceParametersAthenaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + work_group=work_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + work_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if work_group is None and 'workGroup' in kwargs: + work_group = kwargs['workGroup'] + if work_group is not None: - pulumi.set(__self__, "work_group", work_group) + _setter("work_group", work_group) @property @pulumi.getter(name="workGroup") @@ -3491,9 +4895,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersAuroraArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -3543,9 +4968,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersAuroraPostgresqlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -3591,7 +5037,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] data_set_name: The name of the data set to which to connect. """ - pulumi.set(__self__, "data_set_name", data_set_name) + DataSourceParametersAwsIotAnalyticsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_name=data_set_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_name is None and 'dataSetName' in kwargs: + data_set_name = kwargs['dataSetName'] + if data_set_name is None: + raise TypeError("Missing 'data_set_name' argument") + + _setter("data_set_name", data_set_name) @property @pulumi.getter(name="dataSetName") @@ -3613,7 +5074,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] site_base_url: The base URL of the Jira instance's site to which to connect. """ - pulumi.set(__self__, "site_base_url", site_base_url) + DataSourceParametersJiraArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + site_base_url=site_base_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + site_base_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if site_base_url is None and 'siteBaseUrl' in kwargs: + site_base_url = kwargs['siteBaseUrl'] + if site_base_url is None: + raise TypeError("Missing 'site_base_url' argument") + + _setter("site_base_url", site_base_url) @property @pulumi.getter(name="siteBaseUrl") @@ -3639,9 +5115,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersMariaDbArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -3691,9 +5188,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersMysqlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -3743,9 +5261,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersOracleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -3795,9 +5334,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersPostgresqlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -3847,9 +5407,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The port to which to connect. """ - pulumi.set(__self__, "catalog", catalog) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersPrestoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog=catalog, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog is None: + raise TypeError("Missing 'catalog' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("catalog", catalog) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -3897,8 +5478,27 @@ def __init__(__self__, *, :param pulumi.Input[str] database: The database to which to connect. :param pulumi.Input[str] instance_id: The instance ID to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "instance_id", instance_id) + DataSourceParametersRdsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + instance_id=instance_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + + _setter("database", database) + _setter("instance_id", instance_id) @property @pulumi.getter @@ -3938,13 +5538,34 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The port to which to connect. """ - pulumi.set(__self__, "database", database) + DataSourceParametersRedshiftArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + cluster_id=cluster_id, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + cluster_id: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + + _setter("database", database) if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -4002,7 +5623,22 @@ def __init__(__self__, *, """ :param pulumi.Input['DataSourceParametersS3ManifestFileLocationArgs'] manifest_file_location: An object containing the S3 location of the S3 manifest file. """ - pulumi.set(__self__, "manifest_file_location", manifest_file_location) + DataSourceParametersS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + manifest_file_location=manifest_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + manifest_file_location: Optional[pulumi.Input['DataSourceParametersS3ManifestFileLocationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if manifest_file_location is None and 'manifestFileLocation' in kwargs: + manifest_file_location = kwargs['manifestFileLocation'] + if manifest_file_location is None: + raise TypeError("Missing 'manifest_file_location' argument") + + _setter("manifest_file_location", manifest_file_location) @property @pulumi.getter(name="manifestFileLocation") @@ -4026,8 +5662,25 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: The name of the bucket that contains the manifest file. :param pulumi.Input[str] key: The key of the manifest file within the bucket. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + DataSourceParametersS3ManifestFileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -4061,7 +5714,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] site_base_url: The base URL of the Jira instance's site to which to connect. """ - pulumi.set(__self__, "site_base_url", site_base_url) + DataSourceParametersServiceNowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + site_base_url=site_base_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + site_base_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if site_base_url is None and 'siteBaseUrl' in kwargs: + site_base_url = kwargs['siteBaseUrl'] + if site_base_url is None: + raise TypeError("Missing 'site_base_url' argument") + + _setter("site_base_url", site_base_url) @property @pulumi.getter(name="siteBaseUrl") @@ -4087,9 +5755,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[str] warehouse: The warehouse to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "warehouse", warehouse) + DataSourceParametersSnowflakeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + warehouse=warehouse, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + warehouse: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if warehouse is None: + raise TypeError("Missing 'warehouse' argument") + + _setter("database", database) + _setter("host", host) + _setter("warehouse", warehouse) @property @pulumi.getter @@ -4137,8 +5826,25 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The warehouse to which to connect. """ - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersSparkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4176,9 +5882,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The warehouse to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersSqlServerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4228,9 +5955,30 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The host to which to connect. :param pulumi.Input[int] port: The warehouse to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersTeradataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4278,8 +6026,27 @@ def __init__(__self__, *, :param pulumi.Input[int] max_rows: The maximum number of rows to query. :param pulumi.Input[str] query: The Twitter query to retrieve the data. """ - pulumi.set(__self__, "max_rows", max_rows) - pulumi.set(__self__, "query", query) + DataSourceParametersTwitterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_rows=max_rows, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_rows: Optional[pulumi.Input[int]] = None, + query: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_rows is None and 'maxRows' in kwargs: + max_rows = kwargs['maxRows'] + if max_rows is None: + raise TypeError("Missing 'max_rows' argument") + if query is None: + raise TypeError("Missing 'query' argument") + + _setter("max_rows", max_rows) + _setter("query", query) @property @pulumi.getter(name="maxRows") @@ -4315,8 +6082,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] actions: Set of IAM actions to grant or revoke permissions on. Max of 16 items. :param pulumi.Input[str] principal: The Amazon Resource Name (ARN) of the principal. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + DataSourcePermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -4350,7 +6134,22 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] disable_ssl: A Boolean option to control whether SSL should be disabled. """ - pulumi.set(__self__, "disable_ssl", disable_ssl) + DataSourceSslPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + disable_ssl=disable_ssl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disable_ssl: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disable_ssl is None and 'disableSsl' in kwargs: + disable_ssl = kwargs['disableSsl'] + if disable_ssl is None: + raise TypeError("Missing 'disable_ssl' argument") + + _setter("disable_ssl", disable_ssl) @property @pulumi.getter(name="disableSsl") @@ -4372,7 +6171,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] vpc_connection_arn: The Amazon Resource Name (ARN) for the VPC connection. """ - pulumi.set(__self__, "vpc_connection_arn", vpc_connection_arn) + DataSourceVpcConnectionPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_connection_arn=vpc_connection_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_connection_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_connection_arn is None and 'vpcConnectionArn' in kwargs: + vpc_connection_arn = kwargs['vpcConnectionArn'] + if vpc_connection_arn is None: + raise TypeError("Missing 'vpc_connection_arn' argument") + + _setter("vpc_connection_arn", vpc_connection_arn) @property @pulumi.getter(name="vpcConnectionArn") @@ -4396,8 +6210,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] actions: List of IAM actions to grant or revoke permissions on. :param pulumi.Input[str] principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + FolderPermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -4432,10 +6263,23 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] users: Array of Quicksight user names to assign the policy to. """ + IamPolicyAssignmentIdentitiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + groups=groups, + users=users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if users is not None: - pulumi.set(__self__, "users", users) + _setter("users", users) @property @pulumi.getter @@ -4464,10 +6308,23 @@ class NamespaceTimeoutsArgs: def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None): + NamespaceTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) @property @pulumi.getter @@ -4499,11 +6356,34 @@ def __init__(__self__, *, :param pulumi.Input['RefreshScheduleScheduleScheduleFrequencyArgs'] schedule_frequency: The configuration of the [schedule frequency](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RefreshFrequency.html). See schedule_frequency. :param pulumi.Input[str] start_after_date_time: Time after which the refresh schedule can be started, expressed in `YYYY-MM-DDTHH:MM:SS` format. """ - pulumi.set(__self__, "refresh_type", refresh_type) + RefreshScheduleScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + refresh_type=refresh_type, + schedule_frequency=schedule_frequency, + start_after_date_time=start_after_date_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + refresh_type: Optional[pulumi.Input[str]] = None, + schedule_frequency: Optional[pulumi.Input['RefreshScheduleScheduleScheduleFrequencyArgs']] = None, + start_after_date_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if refresh_type is None and 'refreshType' in kwargs: + refresh_type = kwargs['refreshType'] + if refresh_type is None: + raise TypeError("Missing 'refresh_type' argument") + if schedule_frequency is None and 'scheduleFrequency' in kwargs: + schedule_frequency = kwargs['scheduleFrequency'] + if start_after_date_time is None and 'startAfterDateTime' in kwargs: + start_after_date_time = kwargs['startAfterDateTime'] + + _setter("refresh_type", refresh_type) if schedule_frequency is not None: - pulumi.set(__self__, "schedule_frequency", schedule_frequency) + _setter("schedule_frequency", schedule_frequency) if start_after_date_time is not None: - pulumi.set(__self__, "start_after_date_time", start_after_date_time) + _setter("start_after_date_time", start_after_date_time) @property @pulumi.getter(name="refreshType") @@ -4555,13 +6435,36 @@ def __init__(__self__, *, :param pulumi.Input[str] time_of_the_day: The time of day that you want the dataset to refresh. This value is expressed in `HH:MM` format. This field is not required for schedules that refresh hourly. :param pulumi.Input[str] timezone: The timezone that you want the refresh schedule to use. """ - pulumi.set(__self__, "interval", interval) + RefreshScheduleScheduleScheduleFrequencyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + refresh_on_day=refresh_on_day, + time_of_the_day=time_of_the_day, + timezone=timezone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[pulumi.Input[str]] = None, + refresh_on_day: Optional[pulumi.Input['RefreshScheduleScheduleScheduleFrequencyRefreshOnDayArgs']] = None, + time_of_the_day: Optional[pulumi.Input[str]] = None, + timezone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is None: + raise TypeError("Missing 'interval' argument") + if refresh_on_day is None and 'refreshOnDay' in kwargs: + refresh_on_day = kwargs['refreshOnDay'] + if time_of_the_day is None and 'timeOfTheDay' in kwargs: + time_of_the_day = kwargs['timeOfTheDay'] + + _setter("interval", interval) if refresh_on_day is not None: - pulumi.set(__self__, "refresh_on_day", refresh_on_day) + _setter("refresh_on_day", refresh_on_day) if time_of_the_day is not None: - pulumi.set(__self__, "time_of_the_day", time_of_the_day) + _setter("time_of_the_day", time_of_the_day) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) @property @pulumi.getter @@ -4621,10 +6524,27 @@ def __init__(__self__, *, :param pulumi.Input[str] day_of_month: The day of the month that you want to schedule refresh on. :param pulumi.Input[str] day_of_week: The day of the week that you want to schedule a refresh on. Valid values are `SUNDAY`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY` and `SATURDAY`. """ + RefreshScheduleScheduleScheduleFrequencyRefreshOnDayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + day_of_month=day_of_month, + day_of_week=day_of_week, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + day_of_month: Optional[pulumi.Input[str]] = None, + day_of_week: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if day_of_month is None and 'dayOfMonth' in kwargs: + day_of_month = kwargs['dayOfMonth'] + if day_of_week is None and 'dayOfWeek' in kwargs: + day_of_week = kwargs['dayOfWeek'] + if day_of_month is not None: - pulumi.set(__self__, "day_of_month", day_of_month) + _setter("day_of_month", day_of_month) if day_of_week is not None: - pulumi.set(__self__, "day_of_week", day_of_week) + _setter("day_of_week", day_of_week) @property @pulumi.getter(name="dayOfMonth") @@ -4660,8 +6580,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] actions: List of IAM actions to grant or revoke permissions on. :param pulumi.Input[str] principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + TemplatePermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -4697,10 +6634,27 @@ def __init__(__self__, *, :param pulumi.Input['TemplateSourceEntitySourceAnalysisArgs'] source_analysis: The source analysis, if it is based on an analysis.. Only one of `source_analysis` or `source_template` should be configured. See source_analysis. :param pulumi.Input['TemplateSourceEntitySourceTemplateArgs'] source_template: The source template, if it is based on an template.. Only one of `source_analysis` or `source_template` should be configured. See source_template. """ + TemplateSourceEntityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_analysis=source_analysis, + source_template=source_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_analysis: Optional[pulumi.Input['TemplateSourceEntitySourceAnalysisArgs']] = None, + source_template: Optional[pulumi.Input['TemplateSourceEntitySourceTemplateArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_analysis is None and 'sourceAnalysis' in kwargs: + source_analysis = kwargs['sourceAnalysis'] + if source_template is None and 'sourceTemplate' in kwargs: + source_template = kwargs['sourceTemplate'] + if source_analysis is not None: - pulumi.set(__self__, "source_analysis", source_analysis) + _setter("source_analysis", source_analysis) if source_template is not None: - pulumi.set(__self__, "source_template", source_template) + _setter("source_template", source_template) @property @pulumi.getter(name="sourceAnalysis") @@ -4736,8 +6690,27 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the resource. :param pulumi.Input[Sequence[pulumi.Input['TemplateSourceEntitySourceAnalysisDataSetReferenceArgs']]] data_set_references: A list of dataset references used as placeholders in the template. See data_set_references. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "data_set_references", data_set_references) + TemplateSourceEntitySourceAnalysisArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_set_references=data_set_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + data_set_references: Optional[pulumi.Input[Sequence[pulumi.Input['TemplateSourceEntitySourceAnalysisDataSetReferenceArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if data_set_references is None and 'dataSetReferences' in kwargs: + data_set_references = kwargs['dataSetReferences'] + if data_set_references is None: + raise TypeError("Missing 'data_set_references' argument") + + _setter("arn", arn) + _setter("data_set_references", data_set_references) @property @pulumi.getter @@ -4773,8 +6746,29 @@ def __init__(__self__, *, :param pulumi.Input[str] data_set_arn: Dataset Amazon Resource Name (ARN). :param pulumi.Input[str] data_set_placeholder: Dataset placeholder. """ - pulumi.set(__self__, "data_set_arn", data_set_arn) - pulumi.set(__self__, "data_set_placeholder", data_set_placeholder) + TemplateSourceEntitySourceAnalysisDataSetReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_arn=data_set_arn, + data_set_placeholder=data_set_placeholder, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_arn: Optional[pulumi.Input[str]] = None, + data_set_placeholder: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_arn is None and 'dataSetArn' in kwargs: + data_set_arn = kwargs['dataSetArn'] + if data_set_arn is None: + raise TypeError("Missing 'data_set_arn' argument") + if data_set_placeholder is None and 'dataSetPlaceholder' in kwargs: + data_set_placeholder = kwargs['dataSetPlaceholder'] + if data_set_placeholder is None: + raise TypeError("Missing 'data_set_placeholder' argument") + + _setter("data_set_arn", data_set_arn) + _setter("data_set_placeholder", data_set_placeholder) @property @pulumi.getter(name="dataSetArn") @@ -4808,7 +6802,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the resource. """ - pulumi.set(__self__, "arn", arn) + TemplateSourceEntitySourceTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) @property @pulumi.getter @@ -4836,14 +6843,35 @@ def __init__(__self__, *, :param pulumi.Input['ThemeConfigurationTypographyArgs'] typography: Determines the typography options. See typography. :param pulumi.Input['ThemeConfigurationUiColorPaletteArgs'] ui_color_palette: Color properties that apply to the UI and to charts, excluding the colors that apply to data. See ui_color_palette. """ + ThemeConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_color_palette=data_color_palette, + sheet=sheet, + typography=typography, + ui_color_palette=ui_color_palette, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_color_palette: Optional[pulumi.Input['ThemeConfigurationDataColorPaletteArgs']] = None, + sheet: Optional[pulumi.Input['ThemeConfigurationSheetArgs']] = None, + typography: Optional[pulumi.Input['ThemeConfigurationTypographyArgs']] = None, + ui_color_palette: Optional[pulumi.Input['ThemeConfigurationUiColorPaletteArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_color_palette is None and 'dataColorPalette' in kwargs: + data_color_palette = kwargs['dataColorPalette'] + if ui_color_palette is None and 'uiColorPalette' in kwargs: + ui_color_palette = kwargs['uiColorPalette'] + if data_color_palette is not None: - pulumi.set(__self__, "data_color_palette", data_color_palette) + _setter("data_color_palette", data_color_palette) if sheet is not None: - pulumi.set(__self__, "sheet", sheet) + _setter("sheet", sheet) if typography is not None: - pulumi.set(__self__, "typography", typography) + _setter("typography", typography) if ui_color_palette is not None: - pulumi.set(__self__, "ui_color_palette", ui_color_palette) + _setter("ui_color_palette", ui_color_palette) @property @pulumi.getter(name="dataColorPalette") @@ -4905,12 +6933,31 @@ def __init__(__self__, *, :param pulumi.Input[str] empty_fill_color: The hexadecimal code of a color that applies to charts where a lack of data is highlighted. :param pulumi.Input[Sequence[pulumi.Input[str]]] min_max_gradients: The minimum and maximum hexadecimal codes that describe a color gradient. List of exactly 2 items. """ + ThemeConfigurationDataColorPaletteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + colors=colors, + empty_fill_color=empty_fill_color, + min_max_gradients=min_max_gradients, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + colors: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + empty_fill_color: Optional[pulumi.Input[str]] = None, + min_max_gradients: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if empty_fill_color is None and 'emptyFillColor' in kwargs: + empty_fill_color = kwargs['emptyFillColor'] + if min_max_gradients is None and 'minMaxGradients' in kwargs: + min_max_gradients = kwargs['minMaxGradients'] + if colors is not None: - pulumi.set(__self__, "colors", colors) + _setter("colors", colors) if empty_fill_color is not None: - pulumi.set(__self__, "empty_fill_color", empty_fill_color) + _setter("empty_fill_color", empty_fill_color) if min_max_gradients is not None: - pulumi.set(__self__, "min_max_gradients", min_max_gradients) + _setter("min_max_gradients", min_max_gradients) @property @pulumi.getter @@ -4958,10 +7005,25 @@ def __init__(__self__, *, :param pulumi.Input['ThemeConfigurationSheetTileArgs'] tile: The display options for tiles. See tile. :param pulumi.Input['ThemeConfigurationSheetTileLayoutArgs'] tile_layout: The layout options for tiles. See tile_layout. """ + ThemeConfigurationSheetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tile=tile, + tile_layout=tile_layout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tile: Optional[pulumi.Input['ThemeConfigurationSheetTileArgs']] = None, + tile_layout: Optional[pulumi.Input['ThemeConfigurationSheetTileLayoutArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tile_layout is None and 'tileLayout' in kwargs: + tile_layout = kwargs['tileLayout'] + if tile is not None: - pulumi.set(__self__, "tile", tile) + _setter("tile", tile) if tile_layout is not None: - pulumi.set(__self__, "tile_layout", tile_layout) + _setter("tile_layout", tile_layout) @property @pulumi.getter @@ -4995,8 +7057,19 @@ def __init__(__self__, *, """ :param pulumi.Input['ThemeConfigurationSheetTileBorderArgs'] border: The border around a tile. See border. """ + ThemeConfigurationSheetTileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + border=border, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + border: Optional[pulumi.Input['ThemeConfigurationSheetTileBorderArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if border is not None: - pulumi.set(__self__, "border", border) + _setter("border", border) @property @pulumi.getter @@ -5018,8 +7091,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] show: The option to enable display of borders for visuals. """ + ThemeConfigurationSheetTileBorderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + show=show, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + show: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if show is not None: - pulumi.set(__self__, "show", show) + _setter("show", show) @property @pulumi.getter @@ -5043,10 +7127,23 @@ def __init__(__self__, *, :param pulumi.Input['ThemeConfigurationSheetTileLayoutGutterArgs'] gutter: The gutter settings that apply between tiles. See gutter. :param pulumi.Input['ThemeConfigurationSheetTileLayoutMarginArgs'] margin: The margin settings that apply around the outside edge of sheets. See margin. """ + ThemeConfigurationSheetTileLayoutArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gutter=gutter, + margin=margin, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gutter: Optional[pulumi.Input['ThemeConfigurationSheetTileLayoutGutterArgs']] = None, + margin: Optional[pulumi.Input['ThemeConfigurationSheetTileLayoutMarginArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gutter is not None: - pulumi.set(__self__, "gutter", gutter) + _setter("gutter", gutter) if margin is not None: - pulumi.set(__self__, "margin", margin) + _setter("margin", margin) @property @pulumi.getter @@ -5080,8 +7177,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] show: This Boolean value controls whether to display a gutter space between sheet tiles. """ + ThemeConfigurationSheetTileLayoutGutterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + show=show, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + show: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if show is not None: - pulumi.set(__self__, "show", show) + _setter("show", show) @property @pulumi.getter @@ -5103,8 +7211,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] show: This Boolean value controls whether to display sheet margins. """ + ThemeConfigurationSheetTileLayoutMarginArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + show=show, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + show: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if show is not None: - pulumi.set(__self__, "show", show) + _setter("show", show) @property @pulumi.getter @@ -5126,8 +7245,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ThemeConfigurationTypographyFontFamilyArgs']]] font_families: Determines the list of font families. Maximum number of 5 items. See font_families. """ + ThemeConfigurationTypographyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + font_families=font_families, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + font_families: Optional[pulumi.Input[Sequence[pulumi.Input['ThemeConfigurationTypographyFontFamilyArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if font_families is None and 'fontFamilies' in kwargs: + font_families = kwargs['fontFamilies'] + if font_families is not None: - pulumi.set(__self__, "font_families", font_families) + _setter("font_families", font_families) @property @pulumi.getter(name="fontFamilies") @@ -5149,8 +7281,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] font_family: Font family name. """ + ThemeConfigurationTypographyFontFamilyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + font_family=font_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + font_family: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if font_family is None and 'fontFamily' in kwargs: + font_family = kwargs['fontFamily'] + if font_family is not None: - pulumi.set(__self__, "font_family", font_family) + _setter("font_family", font_family) @property @pulumi.getter(name="fontFamily") @@ -5202,38 +7347,99 @@ def __init__(__self__, *, :param pulumi.Input[str] warning: Color (hexadecimal) that applies to warning and informational messages. :param pulumi.Input[str] warning_foreground: Color (hexadecimal) that applies to any text or other elements that appear over the warning color. """ + ThemeConfigurationUiColorPaletteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accent=accent, + accent_foreground=accent_foreground, + danger=danger, + danger_foreground=danger_foreground, + dimension=dimension, + dimension_foreground=dimension_foreground, + measure=measure, + measure_foreground=measure_foreground, + primary_background=primary_background, + primary_foreground=primary_foreground, + secondary_background=secondary_background, + secondary_foreground=secondary_foreground, + success=success, + success_foreground=success_foreground, + warning=warning, + warning_foreground=warning_foreground, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accent: Optional[pulumi.Input[str]] = None, + accent_foreground: Optional[pulumi.Input[str]] = None, + danger: Optional[pulumi.Input[str]] = None, + danger_foreground: Optional[pulumi.Input[str]] = None, + dimension: Optional[pulumi.Input[str]] = None, + dimension_foreground: Optional[pulumi.Input[str]] = None, + measure: Optional[pulumi.Input[str]] = None, + measure_foreground: Optional[pulumi.Input[str]] = None, + primary_background: Optional[pulumi.Input[str]] = None, + primary_foreground: Optional[pulumi.Input[str]] = None, + secondary_background: Optional[pulumi.Input[str]] = None, + secondary_foreground: Optional[pulumi.Input[str]] = None, + success: Optional[pulumi.Input[str]] = None, + success_foreground: Optional[pulumi.Input[str]] = None, + warning: Optional[pulumi.Input[str]] = None, + warning_foreground: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accent_foreground is None and 'accentForeground' in kwargs: + accent_foreground = kwargs['accentForeground'] + if danger_foreground is None and 'dangerForeground' in kwargs: + danger_foreground = kwargs['dangerForeground'] + if dimension_foreground is None and 'dimensionForeground' in kwargs: + dimension_foreground = kwargs['dimensionForeground'] + if measure_foreground is None and 'measureForeground' in kwargs: + measure_foreground = kwargs['measureForeground'] + if primary_background is None and 'primaryBackground' in kwargs: + primary_background = kwargs['primaryBackground'] + if primary_foreground is None and 'primaryForeground' in kwargs: + primary_foreground = kwargs['primaryForeground'] + if secondary_background is None and 'secondaryBackground' in kwargs: + secondary_background = kwargs['secondaryBackground'] + if secondary_foreground is None and 'secondaryForeground' in kwargs: + secondary_foreground = kwargs['secondaryForeground'] + if success_foreground is None and 'successForeground' in kwargs: + success_foreground = kwargs['successForeground'] + if warning_foreground is None and 'warningForeground' in kwargs: + warning_foreground = kwargs['warningForeground'] + if accent is not None: - pulumi.set(__self__, "accent", accent) + _setter("accent", accent) if accent_foreground is not None: - pulumi.set(__self__, "accent_foreground", accent_foreground) + _setter("accent_foreground", accent_foreground) if danger is not None: - pulumi.set(__self__, "danger", danger) + _setter("danger", danger) if danger_foreground is not None: - pulumi.set(__self__, "danger_foreground", danger_foreground) + _setter("danger_foreground", danger_foreground) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if dimension_foreground is not None: - pulumi.set(__self__, "dimension_foreground", dimension_foreground) + _setter("dimension_foreground", dimension_foreground) if measure is not None: - pulumi.set(__self__, "measure", measure) + _setter("measure", measure) if measure_foreground is not None: - pulumi.set(__self__, "measure_foreground", measure_foreground) + _setter("measure_foreground", measure_foreground) if primary_background is not None: - pulumi.set(__self__, "primary_background", primary_background) + _setter("primary_background", primary_background) if primary_foreground is not None: - pulumi.set(__self__, "primary_foreground", primary_foreground) + _setter("primary_foreground", primary_foreground) if secondary_background is not None: - pulumi.set(__self__, "secondary_background", secondary_background) + _setter("secondary_background", secondary_background) if secondary_foreground is not None: - pulumi.set(__self__, "secondary_foreground", secondary_foreground) + _setter("secondary_foreground", secondary_foreground) if success is not None: - pulumi.set(__self__, "success", success) + _setter("success", success) if success_foreground is not None: - pulumi.set(__self__, "success_foreground", success_foreground) + _setter("success_foreground", success_foreground) if warning is not None: - pulumi.set(__self__, "warning", warning) + _setter("warning", warning) if warning_foreground is not None: - pulumi.set(__self__, "warning_foreground", warning_foreground) + _setter("warning_foreground", warning_foreground) @property @pulumi.getter @@ -5437,8 +7643,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] actions: List of IAM actions to grant or revoke permissions on. :param pulumi.Input[str] principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + ThemePermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -5471,12 +7694,27 @@ def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, update: Optional[pulumi.Input[str]] = None): + VpcConnectionTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -5511,8 +7749,27 @@ class GetDataSetColumnLevelPermissionRuleArgs: def __init__(__self__, *, column_names: Sequence[str], principals: Sequence[str]): - pulumi.set(__self__, "column_names", column_names) - pulumi.set(__self__, "principals", principals) + GetDataSetColumnLevelPermissionRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_names=column_names, + principals=principals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_names: Optional[Sequence[str]] = None, + principals: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if column_names is None: + raise TypeError("Missing 'column_names' argument") + if principals is None: + raise TypeError("Missing 'principals' argument") + + _setter("column_names", column_names) + _setter("principals", principals) @property @pulumi.getter(name="columnNames") diff --git a/sdk/python/pulumi_aws/quicksight/account_subscription.py b/sdk/python/pulumi_aws/quicksight/account_subscription.py index 1121a0be424..3abdb36ee71 100644 --- a/sdk/python/pulumi_aws/quicksight/account_subscription.py +++ b/sdk/python/pulumi_aws/quicksight/account_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountSubscriptionArgs', 'AccountSubscription'] @@ -49,32 +49,105 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] reader_groups: Reader group associated with your Active Direcrtory. :param pulumi.Input[str] realm: Realm of the Active Directory that is associated with your Amazon QuickSight account. """ - pulumi.set(__self__, "account_name", account_name) - pulumi.set(__self__, "authentication_method", authentication_method) - pulumi.set(__self__, "edition", edition) - pulumi.set(__self__, "notification_email", notification_email) + AccountSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_name=account_name, + authentication_method=authentication_method, + edition=edition, + notification_email=notification_email, + active_directory_name=active_directory_name, + admin_groups=admin_groups, + author_groups=author_groups, + aws_account_id=aws_account_id, + contact_number=contact_number, + directory_id=directory_id, + email_address=email_address, + first_name=first_name, + last_name=last_name, + reader_groups=reader_groups, + realm=realm, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_name: Optional[pulumi.Input[str]] = None, + authentication_method: Optional[pulumi.Input[str]] = None, + edition: Optional[pulumi.Input[str]] = None, + notification_email: Optional[pulumi.Input[str]] = None, + active_directory_name: Optional[pulumi.Input[str]] = None, + admin_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + author_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + contact_number: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + email_address: Optional[pulumi.Input[str]] = None, + first_name: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None, + reader_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + realm: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_name is None and 'accountName' in kwargs: + account_name = kwargs['accountName'] + if account_name is None: + raise TypeError("Missing 'account_name' argument") + if authentication_method is None and 'authenticationMethod' in kwargs: + authentication_method = kwargs['authenticationMethod'] + if authentication_method is None: + raise TypeError("Missing 'authentication_method' argument") + if edition is None: + raise TypeError("Missing 'edition' argument") + if notification_email is None and 'notificationEmail' in kwargs: + notification_email = kwargs['notificationEmail'] + if notification_email is None: + raise TypeError("Missing 'notification_email' argument") + if active_directory_name is None and 'activeDirectoryName' in kwargs: + active_directory_name = kwargs['activeDirectoryName'] + if admin_groups is None and 'adminGroups' in kwargs: + admin_groups = kwargs['adminGroups'] + if author_groups is None and 'authorGroups' in kwargs: + author_groups = kwargs['authorGroups'] + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if contact_number is None and 'contactNumber' in kwargs: + contact_number = kwargs['contactNumber'] + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if reader_groups is None and 'readerGroups' in kwargs: + reader_groups = kwargs['readerGroups'] + + _setter("account_name", account_name) + _setter("authentication_method", authentication_method) + _setter("edition", edition) + _setter("notification_email", notification_email) if active_directory_name is not None: - pulumi.set(__self__, "active_directory_name", active_directory_name) + _setter("active_directory_name", active_directory_name) if admin_groups is not None: - pulumi.set(__self__, "admin_groups", admin_groups) + _setter("admin_groups", admin_groups) if author_groups is not None: - pulumi.set(__self__, "author_groups", author_groups) + _setter("author_groups", author_groups) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if contact_number is not None: - pulumi.set(__self__, "contact_number", contact_number) + _setter("contact_number", contact_number) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if email_address is not None: - pulumi.set(__self__, "email_address", email_address) + _setter("email_address", email_address) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if reader_groups is not None: - pulumi.set(__self__, "reader_groups", reader_groups) + _setter("reader_groups", reader_groups) if realm is not None: - pulumi.set(__self__, "realm", realm) + _setter("realm", realm) @property @pulumi.getter(name="accountName") @@ -299,38 +372,107 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] reader_groups: Reader group associated with your Active Direcrtory. :param pulumi.Input[str] realm: Realm of the Active Directory that is associated with your Amazon QuickSight account. """ + _AccountSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_name=account_name, + account_subscription_status=account_subscription_status, + active_directory_name=active_directory_name, + admin_groups=admin_groups, + authentication_method=authentication_method, + author_groups=author_groups, + aws_account_id=aws_account_id, + contact_number=contact_number, + directory_id=directory_id, + edition=edition, + email_address=email_address, + first_name=first_name, + last_name=last_name, + notification_email=notification_email, + reader_groups=reader_groups, + realm=realm, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_name: Optional[pulumi.Input[str]] = None, + account_subscription_status: Optional[pulumi.Input[str]] = None, + active_directory_name: Optional[pulumi.Input[str]] = None, + admin_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + authentication_method: Optional[pulumi.Input[str]] = None, + author_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + contact_number: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + edition: Optional[pulumi.Input[str]] = None, + email_address: Optional[pulumi.Input[str]] = None, + first_name: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None, + notification_email: Optional[pulumi.Input[str]] = None, + reader_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + realm: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_name is None and 'accountName' in kwargs: + account_name = kwargs['accountName'] + if account_subscription_status is None and 'accountSubscriptionStatus' in kwargs: + account_subscription_status = kwargs['accountSubscriptionStatus'] + if active_directory_name is None and 'activeDirectoryName' in kwargs: + active_directory_name = kwargs['activeDirectoryName'] + if admin_groups is None and 'adminGroups' in kwargs: + admin_groups = kwargs['adminGroups'] + if authentication_method is None and 'authenticationMethod' in kwargs: + authentication_method = kwargs['authenticationMethod'] + if author_groups is None and 'authorGroups' in kwargs: + author_groups = kwargs['authorGroups'] + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if contact_number is None and 'contactNumber' in kwargs: + contact_number = kwargs['contactNumber'] + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if notification_email is None and 'notificationEmail' in kwargs: + notification_email = kwargs['notificationEmail'] + if reader_groups is None and 'readerGroups' in kwargs: + reader_groups = kwargs['readerGroups'] + if account_name is not None: - pulumi.set(__self__, "account_name", account_name) + _setter("account_name", account_name) if account_subscription_status is not None: - pulumi.set(__self__, "account_subscription_status", account_subscription_status) + _setter("account_subscription_status", account_subscription_status) if active_directory_name is not None: - pulumi.set(__self__, "active_directory_name", active_directory_name) + _setter("active_directory_name", active_directory_name) if admin_groups is not None: - pulumi.set(__self__, "admin_groups", admin_groups) + _setter("admin_groups", admin_groups) if authentication_method is not None: - pulumi.set(__self__, "authentication_method", authentication_method) + _setter("authentication_method", authentication_method) if author_groups is not None: - pulumi.set(__self__, "author_groups", author_groups) + _setter("author_groups", author_groups) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if contact_number is not None: - pulumi.set(__self__, "contact_number", contact_number) + _setter("contact_number", contact_number) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if edition is not None: - pulumi.set(__self__, "edition", edition) + _setter("edition", edition) if email_address is not None: - pulumi.set(__self__, "email_address", email_address) + _setter("email_address", email_address) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if notification_email is not None: - pulumi.set(__self__, "notification_email", notification_email) + _setter("notification_email", notification_email) if reader_groups is not None: - pulumi.set(__self__, "reader_groups", reader_groups) + _setter("reader_groups", reader_groups) if realm is not None: - pulumi.set(__self__, "realm", realm) + _setter("realm", realm) @property @pulumi.getter(name="accountName") @@ -624,6 +766,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/quicksight/analysis.py b/sdk/python/pulumi_aws/quicksight/analysis.py index 997042502e5..1134381c023 100644 --- a/sdk/python/pulumi_aws/quicksight/analysis.py +++ b/sdk/python/pulumi_aws/quicksight/analysis.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,23 +39,62 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] theme_arn: The Amazon Resource Name (ARN) of the theme that is being used for this analysis. The theme ARN must exist in the same AWS account where you create the analysis. """ - pulumi.set(__self__, "analysis_id", analysis_id) + AnalysisArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + analysis_id=analysis_id, + aws_account_id=aws_account_id, + name=name, + parameters=parameters, + permissions=permissions, + recovery_window_in_days=recovery_window_in_days, + source_entity=source_entity, + tags=tags, + theme_arn=theme_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + analysis_id: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input['AnalysisParametersArgs']] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['AnalysisPermissionArgs']]]] = None, + recovery_window_in_days: Optional[pulumi.Input[int]] = None, + source_entity: Optional[pulumi.Input['AnalysisSourceEntityArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + theme_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if analysis_id is None and 'analysisId' in kwargs: + analysis_id = kwargs['analysisId'] + if analysis_id is None: + raise TypeError("Missing 'analysis_id' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if recovery_window_in_days is None and 'recoveryWindowInDays' in kwargs: + recovery_window_in_days = kwargs['recoveryWindowInDays'] + if source_entity is None and 'sourceEntity' in kwargs: + source_entity = kwargs['sourceEntity'] + if theme_arn is None and 'themeArn' in kwargs: + theme_arn = kwargs['themeArn'] + + _setter("analysis_id", analysis_id) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if recovery_window_in_days is not None: - pulumi.set(__self__, "recovery_window_in_days", recovery_window_in_days) + _setter("recovery_window_in_days", recovery_window_in_days) if source_entity is not None: - pulumi.set(__self__, "source_entity", source_entity) + _setter("source_entity", source_entity) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if theme_arn is not None: - pulumi.set(__self__, "theme_arn", theme_arn) + _setter("theme_arn", theme_arn) @property @pulumi.getter(name="analysisId") @@ -205,39 +244,96 @@ def __init__(__self__, *, :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] theme_arn: The Amazon Resource Name (ARN) of the theme that is being used for this analysis. The theme ARN must exist in the same AWS account where you create the analysis. """ + _AnalysisState._configure( + lambda key, value: pulumi.set(__self__, key, value), + analysis_id=analysis_id, + arn=arn, + aws_account_id=aws_account_id, + created_time=created_time, + last_published_time=last_published_time, + last_updated_time=last_updated_time, + name=name, + parameters=parameters, + permissions=permissions, + recovery_window_in_days=recovery_window_in_days, + source_entity=source_entity, + status=status, + tags=tags, + tags_all=tags_all, + theme_arn=theme_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + analysis_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + last_published_time: Optional[pulumi.Input[str]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input['AnalysisParametersArgs']] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['AnalysisPermissionArgs']]]] = None, + recovery_window_in_days: Optional[pulumi.Input[int]] = None, + source_entity: Optional[pulumi.Input['AnalysisSourceEntityArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + theme_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if analysis_id is None and 'analysisId' in kwargs: + analysis_id = kwargs['analysisId'] + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if last_published_time is None and 'lastPublishedTime' in kwargs: + last_published_time = kwargs['lastPublishedTime'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if recovery_window_in_days is None and 'recoveryWindowInDays' in kwargs: + recovery_window_in_days = kwargs['recoveryWindowInDays'] + if source_entity is None and 'sourceEntity' in kwargs: + source_entity = kwargs['sourceEntity'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if theme_arn is None and 'themeArn' in kwargs: + theme_arn = kwargs['themeArn'] + if analysis_id is not None: - pulumi.set(__self__, "analysis_id", analysis_id) + _setter("analysis_id", analysis_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if last_published_time is not None: - pulumi.set(__self__, "last_published_time", last_published_time) + _setter("last_published_time", last_published_time) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if recovery_window_in_days is not None: - pulumi.set(__self__, "recovery_window_in_days", recovery_window_in_days) + _setter("recovery_window_in_days", recovery_window_in_days) if source_entity is not None: - pulumi.set(__self__, "source_entity", source_entity) + _setter("source_entity", source_entity) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if theme_arn is not None: - pulumi.set(__self__, "theme_arn", theme_arn) + _setter("theme_arn", theme_arn) @property @pulumi.getter(name="analysisId") @@ -529,6 +625,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AnalysisArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -557,9 +657,11 @@ def _internal_init(__self__, __props__.__dict__["analysis_id"] = analysis_id __props__.__dict__["aws_account_id"] = aws_account_id __props__.__dict__["name"] = name + parameters = _utilities.configure(parameters, AnalysisParametersArgs, True) __props__.__dict__["parameters"] = parameters __props__.__dict__["permissions"] = permissions __props__.__dict__["recovery_window_in_days"] = recovery_window_in_days + source_entity = _utilities.configure(source_entity, AnalysisSourceEntityArgs, True) __props__.__dict__["source_entity"] = source_entity __props__.__dict__["tags"] = tags __props__.__dict__["theme_arn"] = theme_arn diff --git a/sdk/python/pulumi_aws/quicksight/dashboard.py b/sdk/python/pulumi_aws/quicksight/dashboard.py index eceadcb3eb5..7802ca92449 100644 --- a/sdk/python/pulumi_aws/quicksight/dashboard.py +++ b/sdk/python/pulumi_aws/quicksight/dashboard.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,24 +41,69 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] theme_arn: The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. The theme ARN must exist in the same AWS account where you create the dashboard. """ - pulumi.set(__self__, "dashboard_id", dashboard_id) - pulumi.set(__self__, "version_description", version_description) + DashboardArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dashboard_id=dashboard_id, + version_description=version_description, + aws_account_id=aws_account_id, + dashboard_publish_options=dashboard_publish_options, + name=name, + parameters=parameters, + permissions=permissions, + source_entity=source_entity, + tags=tags, + theme_arn=theme_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dashboard_id: Optional[pulumi.Input[str]] = None, + version_description: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + dashboard_publish_options: Optional[pulumi.Input['DashboardDashboardPublishOptionsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input['DashboardParametersArgs']] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DashboardPermissionArgs']]]] = None, + source_entity: Optional[pulumi.Input['DashboardSourceEntityArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + theme_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dashboard_id is None and 'dashboardId' in kwargs: + dashboard_id = kwargs['dashboardId'] + if dashboard_id is None: + raise TypeError("Missing 'dashboard_id' argument") + if version_description is None and 'versionDescription' in kwargs: + version_description = kwargs['versionDescription'] + if version_description is None: + raise TypeError("Missing 'version_description' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if dashboard_publish_options is None and 'dashboardPublishOptions' in kwargs: + dashboard_publish_options = kwargs['dashboardPublishOptions'] + if source_entity is None and 'sourceEntity' in kwargs: + source_entity = kwargs['sourceEntity'] + if theme_arn is None and 'themeArn' in kwargs: + theme_arn = kwargs['themeArn'] + + _setter("dashboard_id", dashboard_id) + _setter("version_description", version_description) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if dashboard_publish_options is not None: - pulumi.set(__self__, "dashboard_publish_options", dashboard_publish_options) + _setter("dashboard_publish_options", dashboard_publish_options) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if source_entity is not None: - pulumi.set(__self__, "source_entity", source_entity) + _setter("source_entity", source_entity) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if theme_arn is not None: - pulumi.set(__self__, "theme_arn", theme_arn) + _setter("theme_arn", theme_arn) @property @pulumi.getter(name="dashboardId") @@ -226,45 +271,114 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[int] version_number: The version number of the dashboard version. """ + _DashboardState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + created_time=created_time, + dashboard_id=dashboard_id, + dashboard_publish_options=dashboard_publish_options, + last_published_time=last_published_time, + last_updated_time=last_updated_time, + name=name, + parameters=parameters, + permissions=permissions, + source_entity=source_entity, + source_entity_arn=source_entity_arn, + status=status, + tags=tags, + tags_all=tags_all, + theme_arn=theme_arn, + version_description=version_description, + version_number=version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + dashboard_id: Optional[pulumi.Input[str]] = None, + dashboard_publish_options: Optional[pulumi.Input['DashboardDashboardPublishOptionsArgs']] = None, + last_published_time: Optional[pulumi.Input[str]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input['DashboardParametersArgs']] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DashboardPermissionArgs']]]] = None, + source_entity: Optional[pulumi.Input['DashboardSourceEntityArgs']] = None, + source_entity_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + theme_arn: Optional[pulumi.Input[str]] = None, + version_description: Optional[pulumi.Input[str]] = None, + version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if dashboard_id is None and 'dashboardId' in kwargs: + dashboard_id = kwargs['dashboardId'] + if dashboard_publish_options is None and 'dashboardPublishOptions' in kwargs: + dashboard_publish_options = kwargs['dashboardPublishOptions'] + if last_published_time is None and 'lastPublishedTime' in kwargs: + last_published_time = kwargs['lastPublishedTime'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if source_entity is None and 'sourceEntity' in kwargs: + source_entity = kwargs['sourceEntity'] + if source_entity_arn is None and 'sourceEntityArn' in kwargs: + source_entity_arn = kwargs['sourceEntityArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if theme_arn is None and 'themeArn' in kwargs: + theme_arn = kwargs['themeArn'] + if version_description is None and 'versionDescription' in kwargs: + version_description = kwargs['versionDescription'] + if version_number is None and 'versionNumber' in kwargs: + version_number = kwargs['versionNumber'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if dashboard_id is not None: - pulumi.set(__self__, "dashboard_id", dashboard_id) + _setter("dashboard_id", dashboard_id) if dashboard_publish_options is not None: - pulumi.set(__self__, "dashboard_publish_options", dashboard_publish_options) + _setter("dashboard_publish_options", dashboard_publish_options) if last_published_time is not None: - pulumi.set(__self__, "last_published_time", last_published_time) + _setter("last_published_time", last_published_time) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if source_entity is not None: - pulumi.set(__self__, "source_entity", source_entity) + _setter("source_entity", source_entity) if source_entity_arn is not None: - pulumi.set(__self__, "source_entity_arn", source_entity_arn) + _setter("source_entity_arn", source_entity_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if theme_arn is not None: - pulumi.set(__self__, "theme_arn", theme_arn) + _setter("theme_arn", theme_arn) if version_description is not None: - pulumi.set(__self__, "version_description", version_description) + _setter("version_description", version_description) if version_number is not None: - pulumi.set(__self__, "version_number", version_number) + _setter("version_number", version_number) @property @pulumi.getter @@ -596,6 +710,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DashboardArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -624,10 +742,13 @@ def _internal_init(__self__, if dashboard_id is None and not opts.urn: raise TypeError("Missing required property 'dashboard_id'") __props__.__dict__["dashboard_id"] = dashboard_id + dashboard_publish_options = _utilities.configure(dashboard_publish_options, DashboardDashboardPublishOptionsArgs, True) __props__.__dict__["dashboard_publish_options"] = dashboard_publish_options __props__.__dict__["name"] = name + parameters = _utilities.configure(parameters, DashboardParametersArgs, True) __props__.__dict__["parameters"] = parameters __props__.__dict__["permissions"] = permissions + source_entity = _utilities.configure(source_entity, DashboardSourceEntityArgs, True) __props__.__dict__["source_entity"] = source_entity __props__.__dict__["tags"] = tags __props__.__dict__["theme_arn"] = theme_arn diff --git a/sdk/python/pulumi_aws/quicksight/data_set.py b/sdk/python/pulumi_aws/quicksight/data_set.py index 31d8e39df9e..c3af7307728 100644 --- a/sdk/python/pulumi_aws/quicksight/data_set.py +++ b/sdk/python/pulumi_aws/quicksight/data_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -51,34 +51,101 @@ def __init__(__self__, *, :param pulumi.Input['DataSetRowLevelPermissionTagConfigurationArgs'] row_level_permission_tag_configuration: The configuration of tags on a dataset to set row-level security. Row-level security tags are currently supported for anonymous embedding only. See row_level_permission_tag_configuration. :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. """ - pulumi.set(__self__, "data_set_id", data_set_id) - pulumi.set(__self__, "import_mode", import_mode) + DataSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_id=data_set_id, + import_mode=import_mode, + aws_account_id=aws_account_id, + column_groups=column_groups, + column_level_permission_rules=column_level_permission_rules, + data_set_usage_configuration=data_set_usage_configuration, + field_folders=field_folders, + logical_table_maps=logical_table_maps, + name=name, + permissions=permissions, + physical_table_maps=physical_table_maps, + refresh_properties=refresh_properties, + row_level_permission_data_set=row_level_permission_data_set, + row_level_permission_tag_configuration=row_level_permission_tag_configuration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_id: Optional[pulumi.Input[str]] = None, + import_mode: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + column_groups: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetColumnGroupArgs']]]] = None, + column_level_permission_rules: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetColumnLevelPermissionRuleArgs']]]] = None, + data_set_usage_configuration: Optional[pulumi.Input['DataSetDataSetUsageConfigurationArgs']] = None, + field_folders: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetFieldFolderArgs']]]] = None, + logical_table_maps: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetLogicalTableMapArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetPermissionArgs']]]] = None, + physical_table_maps: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetPhysicalTableMapArgs']]]] = None, + refresh_properties: Optional[pulumi.Input['DataSetRefreshPropertiesArgs']] = None, + row_level_permission_data_set: Optional[pulumi.Input['DataSetRowLevelPermissionDataSetArgs']] = None, + row_level_permission_tag_configuration: Optional[pulumi.Input['DataSetRowLevelPermissionTagConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_id is None and 'dataSetId' in kwargs: + data_set_id = kwargs['dataSetId'] + if data_set_id is None: + raise TypeError("Missing 'data_set_id' argument") + if import_mode is None and 'importMode' in kwargs: + import_mode = kwargs['importMode'] + if import_mode is None: + raise TypeError("Missing 'import_mode' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if column_groups is None and 'columnGroups' in kwargs: + column_groups = kwargs['columnGroups'] + if column_level_permission_rules is None and 'columnLevelPermissionRules' in kwargs: + column_level_permission_rules = kwargs['columnLevelPermissionRules'] + if data_set_usage_configuration is None and 'dataSetUsageConfiguration' in kwargs: + data_set_usage_configuration = kwargs['dataSetUsageConfiguration'] + if field_folders is None and 'fieldFolders' in kwargs: + field_folders = kwargs['fieldFolders'] + if logical_table_maps is None and 'logicalTableMaps' in kwargs: + logical_table_maps = kwargs['logicalTableMaps'] + if physical_table_maps is None and 'physicalTableMaps' in kwargs: + physical_table_maps = kwargs['physicalTableMaps'] + if refresh_properties is None and 'refreshProperties' in kwargs: + refresh_properties = kwargs['refreshProperties'] + if row_level_permission_data_set is None and 'rowLevelPermissionDataSet' in kwargs: + row_level_permission_data_set = kwargs['rowLevelPermissionDataSet'] + if row_level_permission_tag_configuration is None and 'rowLevelPermissionTagConfiguration' in kwargs: + row_level_permission_tag_configuration = kwargs['rowLevelPermissionTagConfiguration'] + + _setter("data_set_id", data_set_id) + _setter("import_mode", import_mode) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if column_groups is not None: - pulumi.set(__self__, "column_groups", column_groups) + _setter("column_groups", column_groups) if column_level_permission_rules is not None: - pulumi.set(__self__, "column_level_permission_rules", column_level_permission_rules) + _setter("column_level_permission_rules", column_level_permission_rules) if data_set_usage_configuration is not None: - pulumi.set(__self__, "data_set_usage_configuration", data_set_usage_configuration) + _setter("data_set_usage_configuration", data_set_usage_configuration) if field_folders is not None: - pulumi.set(__self__, "field_folders", field_folders) + _setter("field_folders", field_folders) if logical_table_maps is not None: - pulumi.set(__self__, "logical_table_maps", logical_table_maps) + _setter("logical_table_maps", logical_table_maps) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if physical_table_maps is not None: - pulumi.set(__self__, "physical_table_maps", physical_table_maps) + _setter("physical_table_maps", physical_table_maps) if refresh_properties is not None: - pulumi.set(__self__, "refresh_properties", refresh_properties) + _setter("refresh_properties", refresh_properties) if row_level_permission_data_set is not None: - pulumi.set(__self__, "row_level_permission_data_set", row_level_permission_data_set) + _setter("row_level_permission_data_set", row_level_permission_data_set) if row_level_permission_tag_configuration is not None: - pulumi.set(__self__, "row_level_permission_tag_configuration", row_level_permission_tag_configuration) + _setter("row_level_permission_tag_configuration", row_level_permission_tag_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dataSetId") @@ -306,45 +373,118 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _DataSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + column_groups=column_groups, + column_level_permission_rules=column_level_permission_rules, + data_set_id=data_set_id, + data_set_usage_configuration=data_set_usage_configuration, + field_folders=field_folders, + import_mode=import_mode, + logical_table_maps=logical_table_maps, + name=name, + output_columns=output_columns, + permissions=permissions, + physical_table_maps=physical_table_maps, + refresh_properties=refresh_properties, + row_level_permission_data_set=row_level_permission_data_set, + row_level_permission_tag_configuration=row_level_permission_tag_configuration, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + column_groups: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetColumnGroupArgs']]]] = None, + column_level_permission_rules: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetColumnLevelPermissionRuleArgs']]]] = None, + data_set_id: Optional[pulumi.Input[str]] = None, + data_set_usage_configuration: Optional[pulumi.Input['DataSetDataSetUsageConfigurationArgs']] = None, + field_folders: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetFieldFolderArgs']]]] = None, + import_mode: Optional[pulumi.Input[str]] = None, + logical_table_maps: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetLogicalTableMapArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + output_columns: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetOutputColumnArgs']]]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetPermissionArgs']]]] = None, + physical_table_maps: Optional[pulumi.Input[Sequence[pulumi.Input['DataSetPhysicalTableMapArgs']]]] = None, + refresh_properties: Optional[pulumi.Input['DataSetRefreshPropertiesArgs']] = None, + row_level_permission_data_set: Optional[pulumi.Input['DataSetRowLevelPermissionDataSetArgs']] = None, + row_level_permission_tag_configuration: Optional[pulumi.Input['DataSetRowLevelPermissionTagConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if column_groups is None and 'columnGroups' in kwargs: + column_groups = kwargs['columnGroups'] + if column_level_permission_rules is None and 'columnLevelPermissionRules' in kwargs: + column_level_permission_rules = kwargs['columnLevelPermissionRules'] + if data_set_id is None and 'dataSetId' in kwargs: + data_set_id = kwargs['dataSetId'] + if data_set_usage_configuration is None and 'dataSetUsageConfiguration' in kwargs: + data_set_usage_configuration = kwargs['dataSetUsageConfiguration'] + if field_folders is None and 'fieldFolders' in kwargs: + field_folders = kwargs['fieldFolders'] + if import_mode is None and 'importMode' in kwargs: + import_mode = kwargs['importMode'] + if logical_table_maps is None and 'logicalTableMaps' in kwargs: + logical_table_maps = kwargs['logicalTableMaps'] + if output_columns is None and 'outputColumns' in kwargs: + output_columns = kwargs['outputColumns'] + if physical_table_maps is None and 'physicalTableMaps' in kwargs: + physical_table_maps = kwargs['physicalTableMaps'] + if refresh_properties is None and 'refreshProperties' in kwargs: + refresh_properties = kwargs['refreshProperties'] + if row_level_permission_data_set is None and 'rowLevelPermissionDataSet' in kwargs: + row_level_permission_data_set = kwargs['rowLevelPermissionDataSet'] + if row_level_permission_tag_configuration is None and 'rowLevelPermissionTagConfiguration' in kwargs: + row_level_permission_tag_configuration = kwargs['rowLevelPermissionTagConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if column_groups is not None: - pulumi.set(__self__, "column_groups", column_groups) + _setter("column_groups", column_groups) if column_level_permission_rules is not None: - pulumi.set(__self__, "column_level_permission_rules", column_level_permission_rules) + _setter("column_level_permission_rules", column_level_permission_rules) if data_set_id is not None: - pulumi.set(__self__, "data_set_id", data_set_id) + _setter("data_set_id", data_set_id) if data_set_usage_configuration is not None: - pulumi.set(__self__, "data_set_usage_configuration", data_set_usage_configuration) + _setter("data_set_usage_configuration", data_set_usage_configuration) if field_folders is not None: - pulumi.set(__self__, "field_folders", field_folders) + _setter("field_folders", field_folders) if import_mode is not None: - pulumi.set(__self__, "import_mode", import_mode) + _setter("import_mode", import_mode) if logical_table_maps is not None: - pulumi.set(__self__, "logical_table_maps", logical_table_maps) + _setter("logical_table_maps", logical_table_maps) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if output_columns is not None: - pulumi.set(__self__, "output_columns", output_columns) + _setter("output_columns", output_columns) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if physical_table_maps is not None: - pulumi.set(__self__, "physical_table_maps", physical_table_maps) + _setter("physical_table_maps", physical_table_maps) if refresh_properties is not None: - pulumi.set(__self__, "refresh_properties", refresh_properties) + _setter("refresh_properties", refresh_properties) if row_level_permission_data_set is not None: - pulumi.set(__self__, "row_level_permission_data_set", row_level_permission_data_set) + _setter("row_level_permission_data_set", row_level_permission_data_set) if row_level_permission_tag_configuration is not None: - pulumi.set(__self__, "row_level_permission_tag_configuration", row_level_permission_tag_configuration) + _setter("row_level_permission_tag_configuration", row_level_permission_tag_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -934,6 +1074,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -969,6 +1113,7 @@ def _internal_init(__self__, if data_set_id is None and not opts.urn: raise TypeError("Missing required property 'data_set_id'") __props__.__dict__["data_set_id"] = data_set_id + data_set_usage_configuration = _utilities.configure(data_set_usage_configuration, DataSetDataSetUsageConfigurationArgs, True) __props__.__dict__["data_set_usage_configuration"] = data_set_usage_configuration __props__.__dict__["field_folders"] = field_folders if import_mode is None and not opts.urn: @@ -978,8 +1123,11 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["permissions"] = permissions __props__.__dict__["physical_table_maps"] = physical_table_maps + refresh_properties = _utilities.configure(refresh_properties, DataSetRefreshPropertiesArgs, True) __props__.__dict__["refresh_properties"] = refresh_properties + row_level_permission_data_set = _utilities.configure(row_level_permission_data_set, DataSetRowLevelPermissionDataSetArgs, True) __props__.__dict__["row_level_permission_data_set"] = row_level_permission_data_set + row_level_permission_tag_configuration = _utilities.configure(row_level_permission_tag_configuration, DataSetRowLevelPermissionTagConfigurationArgs, True) __props__.__dict__["row_level_permission_tag_configuration"] = row_level_permission_tag_configuration __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/quicksight/data_source.py b/sdk/python/pulumi_aws/quicksight/data_source.py index fd058f3b890..cf4b3a7235e 100644 --- a/sdk/python/pulumi_aws/quicksight/data_source.py +++ b/sdk/python/pulumi_aws/quicksight/data_source.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,23 +41,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input['DataSourceVpcConnectionPropertiesArgs'] vpc_connection_properties: Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source. See VPC Connection Properties below for more details. """ - pulumi.set(__self__, "data_source_id", data_source_id) - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "type", type) + DataSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_id=data_source_id, + parameters=parameters, + type=type, + aws_account_id=aws_account_id, + credentials=credentials, + name=name, + permissions=permissions, + ssl_properties=ssl_properties, + tags=tags, + vpc_connection_properties=vpc_connection_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_id: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input['DataSourceParametersArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + credentials: Optional[pulumi.Input['DataSourceCredentialsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataSourcePermissionArgs']]]] = None, + ssl_properties: Optional[pulumi.Input['DataSourceSslPropertiesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_connection_properties: Optional[pulumi.Input['DataSourceVpcConnectionPropertiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_id is None and 'dataSourceId' in kwargs: + data_source_id = kwargs['dataSourceId'] + if data_source_id is None: + raise TypeError("Missing 'data_source_id' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if ssl_properties is None and 'sslProperties' in kwargs: + ssl_properties = kwargs['sslProperties'] + if vpc_connection_properties is None and 'vpcConnectionProperties' in kwargs: + vpc_connection_properties = kwargs['vpcConnectionProperties'] + + _setter("data_source_id", data_source_id) + _setter("parameters", parameters) + _setter("type", type) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if ssl_properties is not None: - pulumi.set(__self__, "ssl_properties", ssl_properties) + _setter("ssl_properties", ssl_properties) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_connection_properties is not None: - pulumi.set(__self__, "vpc_connection_properties", vpc_connection_properties) + _setter("vpc_connection_properties", vpc_connection_properties) @property @pulumi.getter(name="dataSourceId") @@ -214,33 +257,76 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input['DataSourceVpcConnectionPropertiesArgs'] vpc_connection_properties: Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source. See VPC Connection Properties below for more details. """ + _DataSourceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + credentials=credentials, + data_source_id=data_source_id, + name=name, + parameters=parameters, + permissions=permissions, + ssl_properties=ssl_properties, + tags=tags, + tags_all=tags_all, + type=type, + vpc_connection_properties=vpc_connection_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + credentials: Optional[pulumi.Input['DataSourceCredentialsArgs']] = None, + data_source_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input['DataSourceParametersArgs']] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataSourcePermissionArgs']]]] = None, + ssl_properties: Optional[pulumi.Input['DataSourceSslPropertiesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + vpc_connection_properties: Optional[pulumi.Input['DataSourceVpcConnectionPropertiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if data_source_id is None and 'dataSourceId' in kwargs: + data_source_id = kwargs['dataSourceId'] + if ssl_properties is None and 'sslProperties' in kwargs: + ssl_properties = kwargs['sslProperties'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_connection_properties is None and 'vpcConnectionProperties' in kwargs: + vpc_connection_properties = kwargs['vpcConnectionProperties'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if credentials is not None: - pulumi.set(__self__, "credentials", credentials) + _setter("credentials", credentials) if data_source_id is not None: - pulumi.set(__self__, "data_source_id", data_source_id) + _setter("data_source_id", data_source_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if ssl_properties is not None: - pulumi.set(__self__, "ssl_properties", ssl_properties) + _setter("ssl_properties", ssl_properties) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if vpc_connection_properties is not None: - pulumi.set(__self__, "vpc_connection_properties", vpc_connection_properties) + _setter("vpc_connection_properties", vpc_connection_properties) @property @pulumi.getter @@ -499,6 +585,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataSourceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -524,20 +614,24 @@ def _internal_init(__self__, __props__ = DataSourceArgs.__new__(DataSourceArgs) __props__.__dict__["aws_account_id"] = aws_account_id + credentials = _utilities.configure(credentials, DataSourceCredentialsArgs, True) __props__.__dict__["credentials"] = credentials if data_source_id is None and not opts.urn: raise TypeError("Missing required property 'data_source_id'") __props__.__dict__["data_source_id"] = data_source_id __props__.__dict__["name"] = name + parameters = _utilities.configure(parameters, DataSourceParametersArgs, True) if parameters is None and not opts.urn: raise TypeError("Missing required property 'parameters'") __props__.__dict__["parameters"] = parameters __props__.__dict__["permissions"] = permissions + ssl_properties = _utilities.configure(ssl_properties, DataSourceSslPropertiesArgs, True) __props__.__dict__["ssl_properties"] = ssl_properties __props__.__dict__["tags"] = tags if type is None and not opts.urn: raise TypeError("Missing required property 'type'") __props__.__dict__["type"] = type + vpc_connection_properties = _utilities.configure(vpc_connection_properties, DataSourceVpcConnectionPropertiesArgs, True) __props__.__dict__["vpc_connection_properties"] = vpc_connection_properties __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/quicksight/folder.py b/sdk/python/pulumi_aws/quicksight/folder.py index d51679306f1..7ef8d17bb54 100644 --- a/sdk/python/pulumi_aws/quicksight/folder.py +++ b/sdk/python/pulumi_aws/quicksight/folder.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,19 +35,52 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['FolderPermissionArgs']]] permissions: A set of resource permissions on the folder. Maximum of 64 items. See permissions. :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. """ - pulumi.set(__self__, "folder_id", folder_id) + FolderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + folder_id=folder_id, + aws_account_id=aws_account_id, + folder_type=folder_type, + name=name, + parent_folder_arn=parent_folder_arn, + permissions=permissions, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + folder_id: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + folder_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_folder_arn: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['FolderPermissionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if folder_id is None and 'folderId' in kwargs: + folder_id = kwargs['folderId'] + if folder_id is None: + raise TypeError("Missing 'folder_id' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if folder_type is None and 'folderType' in kwargs: + folder_type = kwargs['folderType'] + if parent_folder_arn is None and 'parentFolderArn' in kwargs: + parent_folder_arn = kwargs['parentFolderArn'] + + _setter("folder_id", folder_id) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if folder_type is not None: - pulumi.set(__self__, "folder_type", folder_type) + _setter("folder_type", folder_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_folder_arn is not None: - pulumi.set(__self__, "parent_folder_arn", parent_folder_arn) + _setter("parent_folder_arn", parent_folder_arn) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="folderId") @@ -168,33 +201,82 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _FolderState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + created_time=created_time, + folder_id=folder_id, + folder_paths=folder_paths, + folder_type=folder_type, + last_updated_time=last_updated_time, + name=name, + parent_folder_arn=parent_folder_arn, + permissions=permissions, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + folder_id: Optional[pulumi.Input[str]] = None, + folder_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + folder_type: Optional[pulumi.Input[str]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parent_folder_arn: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['FolderPermissionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if folder_id is None and 'folderId' in kwargs: + folder_id = kwargs['folderId'] + if folder_paths is None and 'folderPaths' in kwargs: + folder_paths = kwargs['folderPaths'] + if folder_type is None and 'folderType' in kwargs: + folder_type = kwargs['folderType'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if parent_folder_arn is None and 'parentFolderArn' in kwargs: + parent_folder_arn = kwargs['parentFolderArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if folder_id is not None: - pulumi.set(__self__, "folder_id", folder_id) + _setter("folder_id", folder_id) if folder_paths is not None: - pulumi.set(__self__, "folder_paths", folder_paths) + _setter("folder_paths", folder_paths) if folder_type is not None: - pulumi.set(__self__, "folder_type", folder_type) + _setter("folder_type", folder_type) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parent_folder_arn is not None: - pulumi.set(__self__, "parent_folder_arn", parent_folder_arn) + _setter("parent_folder_arn", parent_folder_arn) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -495,6 +577,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FolderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/quicksight/folder_membership.py b/sdk/python/pulumi_aws/quicksight/folder_membership.py index 2957c5e1815..f38cb313311 100644 --- a/sdk/python/pulumi_aws/quicksight/folder_membership.py +++ b/sdk/python/pulumi_aws/quicksight/folder_membership.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['FolderMembershipArgs', 'FolderMembership'] @@ -27,11 +27,42 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] aws_account_id: AWS account ID. """ - pulumi.set(__self__, "folder_id", folder_id) - pulumi.set(__self__, "member_id", member_id) - pulumi.set(__self__, "member_type", member_type) + FolderMembershipArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + folder_id=folder_id, + member_id=member_id, + member_type=member_type, + aws_account_id=aws_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + folder_id: Optional[pulumi.Input[str]] = None, + member_id: Optional[pulumi.Input[str]] = None, + member_type: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if folder_id is None and 'folderId' in kwargs: + folder_id = kwargs['folderId'] + if folder_id is None: + raise TypeError("Missing 'folder_id' argument") + if member_id is None and 'memberId' in kwargs: + member_id = kwargs['memberId'] + if member_id is None: + raise TypeError("Missing 'member_id' argument") + if member_type is None and 'memberType' in kwargs: + member_type = kwargs['memberType'] + if member_type is None: + raise TypeError("Missing 'member_type' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + + _setter("folder_id", folder_id) + _setter("member_id", member_id) + _setter("member_type", member_type) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) @property @pulumi.getter(name="folderId") @@ -100,14 +131,39 @@ def __init__(__self__, *, The following arguments are optional: """ + _FolderMembershipState._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_account_id=aws_account_id, + folder_id=folder_id, + member_id=member_id, + member_type=member_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_account_id: Optional[pulumi.Input[str]] = None, + folder_id: Optional[pulumi.Input[str]] = None, + member_id: Optional[pulumi.Input[str]] = None, + member_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if folder_id is None and 'folderId' in kwargs: + folder_id = kwargs['folderId'] + if member_id is None and 'memberId' in kwargs: + member_id = kwargs['memberId'] + if member_type is None and 'memberType' in kwargs: + member_type = kwargs['memberType'] + if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if folder_id is not None: - pulumi.set(__self__, "folder_id", folder_id) + _setter("folder_id", folder_id) if member_id is not None: - pulumi.set(__self__, "member_id", member_id) + _setter("member_id", member_id) if member_type is not None: - pulumi.set(__self__, "member_type", member_type) + _setter("member_type", member_type) @property @pulumi.getter(name="awsAccountId") @@ -243,6 +299,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FolderMembershipArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/quicksight/get_data_set.py b/sdk/python/pulumi_aws/quicksight/get_data_set.py index 40cdc2fe24c..32d2a1b2ced 100644 --- a/sdk/python/pulumi_aws/quicksight/get_data_set.py +++ b/sdk/python/pulumi_aws/quicksight/get_data_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/quicksight/get_quicksight_group.py b/sdk/python/pulumi_aws/quicksight/get_quicksight_group.py index 55b99da10bf..f3f5b1696d0 100644 --- a/sdk/python/pulumi_aws/quicksight/get_quicksight_group.py +++ b/sdk/python/pulumi_aws/quicksight/get_quicksight_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/quicksight/get_quicksight_user.py b/sdk/python/pulumi_aws/quicksight/get_quicksight_user.py index dd1a1f90b08..e0b9761c2ce 100644 --- a/sdk/python/pulumi_aws/quicksight/get_quicksight_user.py +++ b/sdk/python/pulumi_aws/quicksight/get_quicksight_user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/quicksight/get_theme.py b/sdk/python/pulumi_aws/quicksight/get_theme.py index 3c9508d9f8b..902cf1d3f16 100644 --- a/sdk/python/pulumi_aws/quicksight/get_theme.py +++ b/sdk/python/pulumi_aws/quicksight/get_theme.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/quicksight/group.py b/sdk/python/pulumi_aws/quicksight/group.py index 8bcd72a9172..6ac0f35fe74 100644 --- a/sdk/python/pulumi_aws/quicksight/group.py +++ b/sdk/python/pulumi_aws/quicksight/group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupArgs', 'Group'] @@ -25,13 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description for the group. :param pulumi.Input[str] namespace: The namespace. Currently, you should set this to `default`. """ - pulumi.set(__self__, "group_name", group_name) + GroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + aws_account_id=aws_account_id, + description=description, + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + + _setter("group_name", group_name) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) @property @pulumi.getter(name="groupName") @@ -98,16 +121,39 @@ def __init__(__self__, *, :param pulumi.Input[str] group_name: A name for the group. :param pulumi.Input[str] namespace: The namespace. Currently, you should set this to `default`. """ + _GroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + description=description, + group_name=group_name, + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + group_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) @property @pulumi.getter @@ -243,6 +289,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/quicksight/group_membership.py b/sdk/python/pulumi_aws/quicksight/group_membership.py index 05758f63cfa..2dd1c78f06f 100644 --- a/sdk/python/pulumi_aws/quicksight/group_membership.py +++ b/sdk/python/pulumi_aws/quicksight/group_membership.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupMembershipArgs', 'GroupMembership'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[str] aws_account_id: The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account. :param pulumi.Input[str] namespace: The namespace that you want the user to be a part of. Defaults to `default`. """ - pulumi.set(__self__, "group_name", group_name) - pulumi.set(__self__, "member_name", member_name) + GroupMembershipArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_name=group_name, + member_name=member_name, + aws_account_id=aws_account_id, + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_name: Optional[pulumi.Input[str]] = None, + member_name: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + if member_name is None and 'memberName' in kwargs: + member_name = kwargs['memberName'] + if member_name is None: + raise TypeError("Missing 'member_name' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + + _setter("group_name", group_name) + _setter("member_name", member_name) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) @property @pulumi.getter(name="groupName") @@ -96,16 +123,41 @@ def __init__(__self__, *, :param pulumi.Input[str] member_name: The name of the member to add to the group. :param pulumi.Input[str] namespace: The namespace that you want the user to be a part of. Defaults to `default`. """ + _GroupMembershipState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + group_name=group_name, + member_name=member_name, + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + group_name: Optional[pulumi.Input[str]] = None, + member_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if member_name is None and 'memberName' in kwargs: + member_name = kwargs['memberName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if member_name is not None: - pulumi.set(__self__, "member_name", member_name) + _setter("member_name", member_name) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) @property @pulumi.getter @@ -242,6 +294,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupMembershipArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/quicksight/iam_policy_assignment.py b/sdk/python/pulumi_aws/quicksight/iam_policy_assignment.py index 17537eaccd5..16e461517c9 100644 --- a/sdk/python/pulumi_aws/quicksight/iam_policy_assignment.py +++ b/sdk/python/pulumi_aws/quicksight/iam_policy_assignment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,16 +33,49 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: Namespace that contains the assignment. Defaults to `default`. :param pulumi.Input[str] policy_arn: ARN of the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment. """ - pulumi.set(__self__, "assignment_name", assignment_name) - pulumi.set(__self__, "assignment_status", assignment_status) + IamPolicyAssignmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + assignment_name=assignment_name, + assignment_status=assignment_status, + aws_account_id=aws_account_id, + identities=identities, + namespace=namespace, + policy_arn=policy_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assignment_name: Optional[pulumi.Input[str]] = None, + assignment_status: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + identities: Optional[pulumi.Input['IamPolicyAssignmentIdentitiesArgs']] = None, + namespace: Optional[pulumi.Input[str]] = None, + policy_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assignment_name is None and 'assignmentName' in kwargs: + assignment_name = kwargs['assignmentName'] + if assignment_name is None: + raise TypeError("Missing 'assignment_name' argument") + if assignment_status is None and 'assignmentStatus' in kwargs: + assignment_status = kwargs['assignmentStatus'] + if assignment_status is None: + raise TypeError("Missing 'assignment_status' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + + _setter("assignment_name", assignment_name) + _setter("assignment_status", assignment_status) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if identities is not None: - pulumi.set(__self__, "identities", identities) + _setter("identities", identities) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if policy_arn is not None: - pulumi.set(__self__, "policy_arn", policy_arn) + _setter("policy_arn", policy_arn) @property @pulumi.getter(name="assignmentName") @@ -141,20 +174,53 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: Namespace that contains the assignment. Defaults to `default`. :param pulumi.Input[str] policy_arn: ARN of the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment. """ + _IamPolicyAssignmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + assignment_id=assignment_id, + assignment_name=assignment_name, + assignment_status=assignment_status, + aws_account_id=aws_account_id, + identities=identities, + namespace=namespace, + policy_arn=policy_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + assignment_id: Optional[pulumi.Input[str]] = None, + assignment_name: Optional[pulumi.Input[str]] = None, + assignment_status: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + identities: Optional[pulumi.Input['IamPolicyAssignmentIdentitiesArgs']] = None, + namespace: Optional[pulumi.Input[str]] = None, + policy_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if assignment_id is None and 'assignmentId' in kwargs: + assignment_id = kwargs['assignmentId'] + if assignment_name is None and 'assignmentName' in kwargs: + assignment_name = kwargs['assignmentName'] + if assignment_status is None and 'assignmentStatus' in kwargs: + assignment_status = kwargs['assignmentStatus'] + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if policy_arn is None and 'policyArn' in kwargs: + policy_arn = kwargs['policyArn'] + if assignment_id is not None: - pulumi.set(__self__, "assignment_id", assignment_id) + _setter("assignment_id", assignment_id) if assignment_name is not None: - pulumi.set(__self__, "assignment_name", assignment_name) + _setter("assignment_name", assignment_name) if assignment_status is not None: - pulumi.set(__self__, "assignment_status", assignment_status) + _setter("assignment_status", assignment_status) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if identities is not None: - pulumi.set(__self__, "identities", identities) + _setter("identities", identities) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if policy_arn is not None: - pulumi.set(__self__, "policy_arn", policy_arn) + _setter("policy_arn", policy_arn) @property @pulumi.getter(name="assignmentId") @@ -336,6 +402,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IamPolicyAssignmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -363,6 +433,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'assignment_status'") __props__.__dict__["assignment_status"] = assignment_status __props__.__dict__["aws_account_id"] = aws_account_id + identities = _utilities.configure(identities, IamPolicyAssignmentIdentitiesArgs, True) __props__.__dict__["identities"] = identities __props__.__dict__["namespace"] = namespace __props__.__dict__["policy_arn"] = policy_arn diff --git a/sdk/python/pulumi_aws/quicksight/ingestion.py b/sdk/python/pulumi_aws/quicksight/ingestion.py index 0d110e5367e..3ea634c217e 100644 --- a/sdk/python/pulumi_aws/quicksight/ingestion.py +++ b/sdk/python/pulumi_aws/quicksight/ingestion.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['IngestionArgs', 'Ingestion'] @@ -27,11 +27,42 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] aws_account_id: AWS account ID. """ - pulumi.set(__self__, "data_set_id", data_set_id) - pulumi.set(__self__, "ingestion_id", ingestion_id) - pulumi.set(__self__, "ingestion_type", ingestion_type) + IngestionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_id=data_set_id, + ingestion_id=ingestion_id, + ingestion_type=ingestion_type, + aws_account_id=aws_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_id: Optional[pulumi.Input[str]] = None, + ingestion_id: Optional[pulumi.Input[str]] = None, + ingestion_type: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_id is None and 'dataSetId' in kwargs: + data_set_id = kwargs['dataSetId'] + if data_set_id is None: + raise TypeError("Missing 'data_set_id' argument") + if ingestion_id is None and 'ingestionId' in kwargs: + ingestion_id = kwargs['ingestionId'] + if ingestion_id is None: + raise TypeError("Missing 'ingestion_id' argument") + if ingestion_type is None and 'ingestionType' in kwargs: + ingestion_type = kwargs['ingestionType'] + if ingestion_type is None: + raise TypeError("Missing 'ingestion_type' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + + _setter("data_set_id", data_set_id) + _setter("ingestion_id", ingestion_id) + _setter("ingestion_type", ingestion_type) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) @property @pulumi.getter(name="dataSetId") @@ -104,18 +135,49 @@ def __init__(__self__, *, The following arguments are optional: """ + _IngestionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + data_set_id=data_set_id, + ingestion_id=ingestion_id, + ingestion_status=ingestion_status, + ingestion_type=ingestion_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + data_set_id: Optional[pulumi.Input[str]] = None, + ingestion_id: Optional[pulumi.Input[str]] = None, + ingestion_status: Optional[pulumi.Input[str]] = None, + ingestion_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if data_set_id is None and 'dataSetId' in kwargs: + data_set_id = kwargs['dataSetId'] + if ingestion_id is None and 'ingestionId' in kwargs: + ingestion_id = kwargs['ingestionId'] + if ingestion_status is None and 'ingestionStatus' in kwargs: + ingestion_status = kwargs['ingestionStatus'] + if ingestion_type is None and 'ingestionType' in kwargs: + ingestion_type = kwargs['ingestionType'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if data_set_id is not None: - pulumi.set(__self__, "data_set_id", data_set_id) + _setter("data_set_id", data_set_id) if ingestion_id is not None: - pulumi.set(__self__, "ingestion_id", ingestion_id) + _setter("ingestion_id", ingestion_id) if ingestion_status is not None: - pulumi.set(__self__, "ingestion_status", ingestion_status) + _setter("ingestion_status", ingestion_status) if ingestion_type is not None: - pulumi.set(__self__, "ingestion_type", ingestion_type) + _setter("ingestion_type", ingestion_type) @property @pulumi.getter @@ -275,6 +337,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IngestionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/quicksight/namespace.py b/sdk/python/pulumi_aws/quicksight/namespace.py index e42ae959540..c2c20eaae32 100644 --- a/sdk/python/pulumi_aws/quicksight/namespace.py +++ b/sdk/python/pulumi_aws/quicksight/namespace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -30,15 +30,40 @@ def __init__(__self__, *, :param pulumi.Input[str] identity_store: User identity directory type. Defaults to `QUICKSIGHT`, the only current valid value. :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. """ - pulumi.set(__self__, "namespace", namespace) + NamespaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + aws_account_id=aws_account_id, + identity_store=identity_store, + tags=tags, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + identity_store: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['NamespaceTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if identity_store is None and 'identityStore' in kwargs: + identity_store = kwargs['identityStore'] + + _setter("namespace", namespace) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if identity_store is not None: - pulumi.set(__self__, "identity_store", identity_store) + _setter("identity_store", identity_store) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -125,27 +150,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _NamespaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + capacity_region=capacity_region, + creation_status=creation_status, + identity_store=identity_store, + namespace=namespace, + tags=tags, + tags_all=tags_all, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + capacity_region: Optional[pulumi.Input[str]] = None, + creation_status: Optional[pulumi.Input[str]] = None, + identity_store: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['NamespaceTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if capacity_region is None and 'capacityRegion' in kwargs: + capacity_region = kwargs['capacityRegion'] + if creation_status is None and 'creationStatus' in kwargs: + creation_status = kwargs['creationStatus'] + if identity_store is None and 'identityStore' in kwargs: + identity_store = kwargs['identityStore'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if capacity_region is not None: - pulumi.set(__self__, "capacity_region", capacity_region) + _setter("capacity_region", capacity_region) if creation_status is not None: - pulumi.set(__self__, "creation_status", creation_status) + _setter("creation_status", creation_status) if identity_store is not None: - pulumi.set(__self__, "identity_store", identity_store) + _setter("identity_store", identity_store) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -336,6 +398,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NamespaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -361,6 +427,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'namespace'") __props__.__dict__["namespace"] = namespace __props__.__dict__["tags"] = tags + timeouts = _utilities.configure(timeouts, NamespaceTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts __props__.__dict__["arn"] = None __props__.__dict__["capacity_region"] = None diff --git a/sdk/python/pulumi_aws/quicksight/outputs.py b/sdk/python/pulumi_aws/quicksight/outputs.py index 0adc138d773..0637771172e 100644 --- a/sdk/python/pulumi_aws/quicksight/outputs.py +++ b/sdk/python/pulumi_aws/quicksight/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -212,14 +212,39 @@ def __init__(__self__, *, :param Sequence['AnalysisParametersIntegerParameterArgs'] integer_parameters: A list of parameters that have a data type of integer. See [AWS API Documentation for complete description](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_IntegerParameter.html). :param Sequence['AnalysisParametersStringParameterArgs'] string_parameters: A list of parameters that have a data type of string. See [AWS API Documentation for complete description](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StringParameter.html). """ + AnalysisParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_time_parameters=date_time_parameters, + decimal_parameters=decimal_parameters, + integer_parameters=integer_parameters, + string_parameters=string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_time_parameters: Optional[Sequence['outputs.AnalysisParametersDateTimeParameter']] = None, + decimal_parameters: Optional[Sequence['outputs.AnalysisParametersDecimalParameter']] = None, + integer_parameters: Optional[Sequence['outputs.AnalysisParametersIntegerParameter']] = None, + string_parameters: Optional[Sequence['outputs.AnalysisParametersStringParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_time_parameters is None and 'dateTimeParameters' in kwargs: + date_time_parameters = kwargs['dateTimeParameters'] + if decimal_parameters is None and 'decimalParameters' in kwargs: + decimal_parameters = kwargs['decimalParameters'] + if integer_parameters is None and 'integerParameters' in kwargs: + integer_parameters = kwargs['integerParameters'] + if string_parameters is None and 'stringParameters' in kwargs: + string_parameters = kwargs['stringParameters'] + if date_time_parameters is not None: - pulumi.set(__self__, "date_time_parameters", date_time_parameters) + _setter("date_time_parameters", date_time_parameters) if decimal_parameters is not None: - pulumi.set(__self__, "decimal_parameters", decimal_parameters) + _setter("decimal_parameters", decimal_parameters) if integer_parameters is not None: - pulumi.set(__self__, "integer_parameters", integer_parameters) + _setter("integer_parameters", integer_parameters) if string_parameters is not None: - pulumi.set(__self__, "string_parameters", string_parameters) + _setter("string_parameters", string_parameters) @property @pulumi.getter(name="dateTimeParameters") @@ -264,8 +289,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + AnalysisParametersDateTimeParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -293,8 +335,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + AnalysisParametersDecimalParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -322,8 +381,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + AnalysisParametersIntegerParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -351,8 +427,25 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + AnalysisParametersStringParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -379,8 +472,25 @@ def __init__(__self__, *, :param Sequence[str] actions: List of IAM actions to grant or revoke permissions on. :param str principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + AnalysisPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -423,8 +533,21 @@ def __init__(__self__, *, """ :param 'AnalysisSourceEntitySourceTemplateArgs' source_template: The source template. See source_template. """ + AnalysisSourceEntity._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_template=source_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_template: Optional['outputs.AnalysisSourceEntitySourceTemplate'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_template is None and 'sourceTemplate' in kwargs: + source_template = kwargs['sourceTemplate'] + if source_template is not None: - pulumi.set(__self__, "source_template", source_template) + _setter("source_template", source_template) @property @pulumi.getter(name="sourceTemplate") @@ -461,8 +584,27 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the resource. :param Sequence['AnalysisSourceEntitySourceTemplateDataSetReferenceArgs'] data_set_references: List of dataset references. See data_set_references. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "data_set_references", data_set_references) + AnalysisSourceEntitySourceTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_set_references=data_set_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + data_set_references: Optional[Sequence['outputs.AnalysisSourceEntitySourceTemplateDataSetReference']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if data_set_references is None and 'dataSetReferences' in kwargs: + data_set_references = kwargs['dataSetReferences'] + if data_set_references is None: + raise TypeError("Missing 'data_set_references' argument") + + _setter("arn", arn) + _setter("data_set_references", data_set_references) @property @pulumi.getter @@ -509,8 +651,29 @@ def __init__(__self__, *, :param str data_set_arn: Dataset Amazon Resource Name (ARN). :param str data_set_placeholder: Dataset placeholder. """ - pulumi.set(__self__, "data_set_arn", data_set_arn) - pulumi.set(__self__, "data_set_placeholder", data_set_placeholder) + AnalysisSourceEntitySourceTemplateDataSetReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_arn=data_set_arn, + data_set_placeholder=data_set_placeholder, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_arn: Optional[str] = None, + data_set_placeholder: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_arn is None and 'dataSetArn' in kwargs: + data_set_arn = kwargs['dataSetArn'] + if data_set_arn is None: + raise TypeError("Missing 'data_set_arn' argument") + if data_set_placeholder is None and 'dataSetPlaceholder' in kwargs: + data_set_placeholder = kwargs['dataSetPlaceholder'] + if data_set_placeholder is None: + raise TypeError("Missing 'data_set_placeholder' argument") + + _setter("data_set_arn", data_set_arn) + _setter("data_set_placeholder", data_set_placeholder) @property @pulumi.getter(name="dataSetArn") @@ -589,26 +752,75 @@ def __init__(__self__, *, :param 'DashboardDashboardPublishOptionsVisualAxisSortOptionArgs' visual_axis_sort_option: The axis sort options of a dashboard. See visual_axis_sort_option. :param 'DashboardDashboardPublishOptionsVisualMenuOptionArgs' visual_menu_option: The menu options of a visual in a dashboard. See visual_menu_option. """ + DashboardDashboardPublishOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + ad_hoc_filtering_option=ad_hoc_filtering_option, + data_point_drill_up_down_option=data_point_drill_up_down_option, + data_point_menu_label_option=data_point_menu_label_option, + data_point_tooltip_option=data_point_tooltip_option, + export_to_csv_option=export_to_csv_option, + export_with_hidden_fields_option=export_with_hidden_fields_option, + sheet_controls_option=sheet_controls_option, + sheet_layout_element_maximization_option=sheet_layout_element_maximization_option, + visual_axis_sort_option=visual_axis_sort_option, + visual_menu_option=visual_menu_option, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ad_hoc_filtering_option: Optional['outputs.DashboardDashboardPublishOptionsAdHocFilteringOption'] = None, + data_point_drill_up_down_option: Optional['outputs.DashboardDashboardPublishOptionsDataPointDrillUpDownOption'] = None, + data_point_menu_label_option: Optional['outputs.DashboardDashboardPublishOptionsDataPointMenuLabelOption'] = None, + data_point_tooltip_option: Optional['outputs.DashboardDashboardPublishOptionsDataPointTooltipOption'] = None, + export_to_csv_option: Optional['outputs.DashboardDashboardPublishOptionsExportToCsvOption'] = None, + export_with_hidden_fields_option: Optional['outputs.DashboardDashboardPublishOptionsExportWithHiddenFieldsOption'] = None, + sheet_controls_option: Optional['outputs.DashboardDashboardPublishOptionsSheetControlsOption'] = None, + sheet_layout_element_maximization_option: Optional['outputs.DashboardDashboardPublishOptionsSheetLayoutElementMaximizationOption'] = None, + visual_axis_sort_option: Optional['outputs.DashboardDashboardPublishOptionsVisualAxisSortOption'] = None, + visual_menu_option: Optional['outputs.DashboardDashboardPublishOptionsVisualMenuOption'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ad_hoc_filtering_option is None and 'adHocFilteringOption' in kwargs: + ad_hoc_filtering_option = kwargs['adHocFilteringOption'] + if data_point_drill_up_down_option is None and 'dataPointDrillUpDownOption' in kwargs: + data_point_drill_up_down_option = kwargs['dataPointDrillUpDownOption'] + if data_point_menu_label_option is None and 'dataPointMenuLabelOption' in kwargs: + data_point_menu_label_option = kwargs['dataPointMenuLabelOption'] + if data_point_tooltip_option is None and 'dataPointTooltipOption' in kwargs: + data_point_tooltip_option = kwargs['dataPointTooltipOption'] + if export_to_csv_option is None and 'exportToCsvOption' in kwargs: + export_to_csv_option = kwargs['exportToCsvOption'] + if export_with_hidden_fields_option is None and 'exportWithHiddenFieldsOption' in kwargs: + export_with_hidden_fields_option = kwargs['exportWithHiddenFieldsOption'] + if sheet_controls_option is None and 'sheetControlsOption' in kwargs: + sheet_controls_option = kwargs['sheetControlsOption'] + if sheet_layout_element_maximization_option is None and 'sheetLayoutElementMaximizationOption' in kwargs: + sheet_layout_element_maximization_option = kwargs['sheetLayoutElementMaximizationOption'] + if visual_axis_sort_option is None and 'visualAxisSortOption' in kwargs: + visual_axis_sort_option = kwargs['visualAxisSortOption'] + if visual_menu_option is None and 'visualMenuOption' in kwargs: + visual_menu_option = kwargs['visualMenuOption'] + if ad_hoc_filtering_option is not None: - pulumi.set(__self__, "ad_hoc_filtering_option", ad_hoc_filtering_option) + _setter("ad_hoc_filtering_option", ad_hoc_filtering_option) if data_point_drill_up_down_option is not None: - pulumi.set(__self__, "data_point_drill_up_down_option", data_point_drill_up_down_option) + _setter("data_point_drill_up_down_option", data_point_drill_up_down_option) if data_point_menu_label_option is not None: - pulumi.set(__self__, "data_point_menu_label_option", data_point_menu_label_option) + _setter("data_point_menu_label_option", data_point_menu_label_option) if data_point_tooltip_option is not None: - pulumi.set(__self__, "data_point_tooltip_option", data_point_tooltip_option) + _setter("data_point_tooltip_option", data_point_tooltip_option) if export_to_csv_option is not None: - pulumi.set(__self__, "export_to_csv_option", export_to_csv_option) + _setter("export_to_csv_option", export_to_csv_option) if export_with_hidden_fields_option is not None: - pulumi.set(__self__, "export_with_hidden_fields_option", export_with_hidden_fields_option) + _setter("export_with_hidden_fields_option", export_with_hidden_fields_option) if sheet_controls_option is not None: - pulumi.set(__self__, "sheet_controls_option", sheet_controls_option) + _setter("sheet_controls_option", sheet_controls_option) if sheet_layout_element_maximization_option is not None: - pulumi.set(__self__, "sheet_layout_element_maximization_option", sheet_layout_element_maximization_option) + _setter("sheet_layout_element_maximization_option", sheet_layout_element_maximization_option) if visual_axis_sort_option is not None: - pulumi.set(__self__, "visual_axis_sort_option", visual_axis_sort_option) + _setter("visual_axis_sort_option", visual_axis_sort_option) if visual_menu_option is not None: - pulumi.set(__self__, "visual_menu_option", visual_menu_option) + _setter("visual_menu_option", visual_menu_option) @property @pulumi.getter(name="adHocFilteringOption") @@ -715,8 +927,21 @@ def __init__(__self__, *, """ :param str availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsAdHocFilteringOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -751,8 +976,21 @@ def __init__(__self__, *, """ :param str availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsDataPointDrillUpDownOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -787,8 +1025,21 @@ def __init__(__self__, *, """ :param str availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsDataPointMenuLabelOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -823,8 +1074,21 @@ def __init__(__self__, *, """ :param str availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsDataPointTooltipOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -859,8 +1123,21 @@ def __init__(__self__, *, """ :param str availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsExportToCsvOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -895,8 +1172,21 @@ def __init__(__self__, *, """ :param str availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsExportWithHiddenFieldsOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -931,8 +1221,21 @@ def __init__(__self__, *, """ :param str visibility_state: Visibility state. Possibles values: EXPANDED, COLLAPSED. """ + DashboardDashboardPublishOptionsSheetControlsOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + visibility_state=visibility_state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + visibility_state: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if visibility_state is None and 'visibilityState' in kwargs: + visibility_state = kwargs['visibilityState'] + if visibility_state is not None: - pulumi.set(__self__, "visibility_state", visibility_state) + _setter("visibility_state", visibility_state) @property @pulumi.getter(name="visibilityState") @@ -967,8 +1270,21 @@ def __init__(__self__, *, """ :param str availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsSheetLayoutElementMaximizationOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -1003,8 +1319,21 @@ def __init__(__self__, *, """ :param str availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsVisualAxisSortOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -1039,8 +1368,21 @@ def __init__(__self__, *, """ :param str availability_status: Availability status. Possibles values: ENABLED, DISABLED. """ + DashboardDashboardPublishOptionsVisualMenuOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_status=availability_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) @property @pulumi.getter(name="availabilityStatus") @@ -1087,14 +1429,39 @@ def __init__(__self__, *, :param Sequence['DashboardParametersIntegerParameterArgs'] integer_parameters: A list of parameters that have a data type of integer. See [AWS API Documentation for complete description](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_IntegerParameter.html). :param Sequence['DashboardParametersStringParameterArgs'] string_parameters: A list of parameters that have a data type of string. See [AWS API Documentation for complete description](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StringParameter.html). """ + DashboardParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_time_parameters=date_time_parameters, + decimal_parameters=decimal_parameters, + integer_parameters=integer_parameters, + string_parameters=string_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_time_parameters: Optional[Sequence['outputs.DashboardParametersDateTimeParameter']] = None, + decimal_parameters: Optional[Sequence['outputs.DashboardParametersDecimalParameter']] = None, + integer_parameters: Optional[Sequence['outputs.DashboardParametersIntegerParameter']] = None, + string_parameters: Optional[Sequence['outputs.DashboardParametersStringParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_time_parameters is None and 'dateTimeParameters' in kwargs: + date_time_parameters = kwargs['dateTimeParameters'] + if decimal_parameters is None and 'decimalParameters' in kwargs: + decimal_parameters = kwargs['decimalParameters'] + if integer_parameters is None and 'integerParameters' in kwargs: + integer_parameters = kwargs['integerParameters'] + if string_parameters is None and 'stringParameters' in kwargs: + string_parameters = kwargs['stringParameters'] + if date_time_parameters is not None: - pulumi.set(__self__, "date_time_parameters", date_time_parameters) + _setter("date_time_parameters", date_time_parameters) if decimal_parameters is not None: - pulumi.set(__self__, "decimal_parameters", decimal_parameters) + _setter("decimal_parameters", decimal_parameters) if integer_parameters is not None: - pulumi.set(__self__, "integer_parameters", integer_parameters) + _setter("integer_parameters", integer_parameters) if string_parameters is not None: - pulumi.set(__self__, "string_parameters", string_parameters) + _setter("string_parameters", string_parameters) @property @pulumi.getter(name="dateTimeParameters") @@ -1137,8 +1504,25 @@ def __init__(__self__, *, """ :param str name: Display name for the dashboard. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + DashboardParametersDateTimeParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1162,8 +1546,25 @@ def __init__(__self__, *, """ :param str name: Display name for the dashboard. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + DashboardParametersDecimalParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1187,8 +1588,25 @@ def __init__(__self__, *, """ :param str name: Display name for the dashboard. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + DashboardParametersIntegerParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1212,8 +1630,25 @@ def __init__(__self__, *, """ :param str name: Display name for the dashboard. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + DashboardParametersStringParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1238,8 +1673,25 @@ def __init__(__self__, *, :param Sequence[str] actions: List of IAM actions to grant or revoke permissions on. :param str principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + DashboardPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -1282,8 +1734,21 @@ def __init__(__self__, *, """ :param 'DashboardSourceEntitySourceTemplateArgs' source_template: The source template. See source_template. """ + DashboardSourceEntity._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_template=source_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_template: Optional['outputs.DashboardSourceEntitySourceTemplate'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_template is None and 'sourceTemplate' in kwargs: + source_template = kwargs['sourceTemplate'] + if source_template is not None: - pulumi.set(__self__, "source_template", source_template) + _setter("source_template", source_template) @property @pulumi.getter(name="sourceTemplate") @@ -1320,8 +1785,27 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the resource. :param Sequence['DashboardSourceEntitySourceTemplateDataSetReferenceArgs'] data_set_references: List of dataset references. See data_set_references. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "data_set_references", data_set_references) + DashboardSourceEntitySourceTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_set_references=data_set_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + data_set_references: Optional[Sequence['outputs.DashboardSourceEntitySourceTemplateDataSetReference']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if data_set_references is None and 'dataSetReferences' in kwargs: + data_set_references = kwargs['dataSetReferences'] + if data_set_references is None: + raise TypeError("Missing 'data_set_references' argument") + + _setter("arn", arn) + _setter("data_set_references", data_set_references) @property @pulumi.getter @@ -1368,8 +1852,29 @@ def __init__(__self__, *, :param str data_set_arn: Dataset Amazon Resource Name (ARN). :param str data_set_placeholder: Dataset placeholder. """ - pulumi.set(__self__, "data_set_arn", data_set_arn) - pulumi.set(__self__, "data_set_placeholder", data_set_placeholder) + DashboardSourceEntitySourceTemplateDataSetReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_arn=data_set_arn, + data_set_placeholder=data_set_placeholder, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_arn: Optional[str] = None, + data_set_placeholder: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_arn is None and 'dataSetArn' in kwargs: + data_set_arn = kwargs['dataSetArn'] + if data_set_arn is None: + raise TypeError("Missing 'data_set_arn' argument") + if data_set_placeholder is None and 'dataSetPlaceholder' in kwargs: + data_set_placeholder = kwargs['dataSetPlaceholder'] + if data_set_placeholder is None: + raise TypeError("Missing 'data_set_placeholder' argument") + + _setter("data_set_arn", data_set_arn) + _setter("data_set_placeholder", data_set_placeholder) @property @pulumi.getter(name="dataSetArn") @@ -1412,8 +1917,21 @@ def __init__(__self__, *, """ :param 'DataSetColumnGroupGeoSpatialColumnGroupArgs' geo_spatial_column_group: Geospatial column group that denotes a hierarchy. See geo_spatial_column_group. """ + DataSetColumnGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + geo_spatial_column_group=geo_spatial_column_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + geo_spatial_column_group: Optional['outputs.DataSetColumnGroupGeoSpatialColumnGroup'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if geo_spatial_column_group is None and 'geoSpatialColumnGroup' in kwargs: + geo_spatial_column_group = kwargs['geoSpatialColumnGroup'] + if geo_spatial_column_group is not None: - pulumi.set(__self__, "geo_spatial_column_group", geo_spatial_column_group) + _setter("geo_spatial_column_group", geo_spatial_column_group) @property @pulumi.getter(name="geoSpatialColumnGroup") @@ -1452,9 +1970,32 @@ def __init__(__self__, *, :param str country_code: Country code. Valid values are `US`. :param str name: A display name for the hierarchy. """ - pulumi.set(__self__, "columns", columns) - pulumi.set(__self__, "country_code", country_code) - pulumi.set(__self__, "name", name) + DataSetColumnGroupGeoSpatialColumnGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + country_code=country_code, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[Sequence[str]] = None, + country_code: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if country_code is None: + raise TypeError("Missing 'country_code' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("columns", columns) + _setter("country_code", country_code) + _setter("name", name) @property @pulumi.getter @@ -1507,10 +2048,25 @@ def __init__(__self__, *, :param Sequence[str] column_names: An array of column names. :param Sequence[str] principals: An array of ARNs for Amazon QuickSight users or groups. """ + DataSetColumnLevelPermissionRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_names=column_names, + principals=principals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_names: Optional[Sequence[str]] = None, + principals: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if column_names is not None: - pulumi.set(__self__, "column_names", column_names) + _setter("column_names", column_names) if principals is not None: - pulumi.set(__self__, "principals", principals) + _setter("principals", principals) @property @pulumi.getter(name="columnNames") @@ -1557,10 +2113,27 @@ def __init__(__self__, *, :param bool disable_use_as_direct_query_source: Controls whether a child dataset of a direct query can use this dataset as a source. :param bool disable_use_as_imported_source: Controls whether a child dataset that's stored in QuickSight can use this dataset as a source. """ + DataSetDataSetUsageConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + disable_use_as_direct_query_source=disable_use_as_direct_query_source, + disable_use_as_imported_source=disable_use_as_imported_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disable_use_as_direct_query_source: Optional[bool] = None, + disable_use_as_imported_source: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disable_use_as_direct_query_source is None and 'disableUseAsDirectQuerySource' in kwargs: + disable_use_as_direct_query_source = kwargs['disableUseAsDirectQuerySource'] + if disable_use_as_imported_source is None and 'disableUseAsImportedSource' in kwargs: + disable_use_as_imported_source = kwargs['disableUseAsImportedSource'] + if disable_use_as_direct_query_source is not None: - pulumi.set(__self__, "disable_use_as_direct_query_source", disable_use_as_direct_query_source) + _setter("disable_use_as_direct_query_source", disable_use_as_direct_query_source) if disable_use_as_imported_source is not None: - pulumi.set(__self__, "disable_use_as_imported_source", disable_use_as_imported_source) + _setter("disable_use_as_imported_source", disable_use_as_imported_source) @property @pulumi.getter(name="disableUseAsDirectQuerySource") @@ -1607,11 +2180,30 @@ def __init__(__self__, *, :param Sequence[str] columns: An array of column names to add to the folder. A column can only be in one folder. :param str description: Field folder description. """ - pulumi.set(__self__, "field_folders_id", field_folders_id) + DataSetFieldFolder._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_folders_id=field_folders_id, + columns=columns, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_folders_id: Optional[str] = None, + columns: Optional[Sequence[str]] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_folders_id is None and 'fieldFoldersId' in kwargs: + field_folders_id = kwargs['fieldFoldersId'] + if field_folders_id is None: + raise TypeError("Missing 'field_folders_id' argument") + + _setter("field_folders_id", field_folders_id) if columns is not None: - pulumi.set(__self__, "columns", columns) + _setter("columns", columns) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="fieldFoldersId") @@ -1670,11 +2262,38 @@ def __init__(__self__, *, :param 'DataSetLogicalTableMapSourceArgs' source: Source of this logical table. See source. :param Sequence['DataSetLogicalTableMapDataTransformArgs'] data_transforms: Transform operations that act on this logical table. For this structure to be valid, only one of the attributes can be non-null. See data_transforms. """ - pulumi.set(__self__, "alias", alias) - pulumi.set(__self__, "logical_table_map_id", logical_table_map_id) - pulumi.set(__self__, "source", source) + DataSetLogicalTableMap._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + logical_table_map_id=logical_table_map_id, + source=source, + data_transforms=data_transforms, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[str] = None, + logical_table_map_id: Optional[str] = None, + source: Optional['outputs.DataSetLogicalTableMapSource'] = None, + data_transforms: Optional[Sequence['outputs.DataSetLogicalTableMapDataTransform']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alias is None: + raise TypeError("Missing 'alias' argument") + if logical_table_map_id is None and 'logicalTableMapId' in kwargs: + logical_table_map_id = kwargs['logicalTableMapId'] + if logical_table_map_id is None: + raise TypeError("Missing 'logical_table_map_id' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if data_transforms is None and 'dataTransforms' in kwargs: + data_transforms = kwargs['dataTransforms'] + + _setter("alias", alias) + _setter("logical_table_map_id", logical_table_map_id) + _setter("source", source) if data_transforms is not None: - pulumi.set(__self__, "data_transforms", data_transforms) + _setter("data_transforms", data_transforms) @property @pulumi.getter @@ -1757,20 +2376,57 @@ def __init__(__self__, *, :param 'DataSetLogicalTableMapDataTransformTagColumnOperationArgs' tag_column_operation: An operation that tags a column with additional information. See tag_column_operation. :param 'DataSetLogicalTableMapDataTransformUntagColumnOperationArgs' untag_column_operation: A transform operation that removes tags associated with a column. See untag_column_operation. """ + DataSetLogicalTableMapDataTransform._configure( + lambda key, value: pulumi.set(__self__, key, value), + cast_column_type_operation=cast_column_type_operation, + create_columns_operation=create_columns_operation, + filter_operation=filter_operation, + project_operation=project_operation, + rename_column_operation=rename_column_operation, + tag_column_operation=tag_column_operation, + untag_column_operation=untag_column_operation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cast_column_type_operation: Optional['outputs.DataSetLogicalTableMapDataTransformCastColumnTypeOperation'] = None, + create_columns_operation: Optional['outputs.DataSetLogicalTableMapDataTransformCreateColumnsOperation'] = None, + filter_operation: Optional['outputs.DataSetLogicalTableMapDataTransformFilterOperation'] = None, + project_operation: Optional['outputs.DataSetLogicalTableMapDataTransformProjectOperation'] = None, + rename_column_operation: Optional['outputs.DataSetLogicalTableMapDataTransformRenameColumnOperation'] = None, + tag_column_operation: Optional['outputs.DataSetLogicalTableMapDataTransformTagColumnOperation'] = None, + untag_column_operation: Optional['outputs.DataSetLogicalTableMapDataTransformUntagColumnOperation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cast_column_type_operation is None and 'castColumnTypeOperation' in kwargs: + cast_column_type_operation = kwargs['castColumnTypeOperation'] + if create_columns_operation is None and 'createColumnsOperation' in kwargs: + create_columns_operation = kwargs['createColumnsOperation'] + if filter_operation is None and 'filterOperation' in kwargs: + filter_operation = kwargs['filterOperation'] + if project_operation is None and 'projectOperation' in kwargs: + project_operation = kwargs['projectOperation'] + if rename_column_operation is None and 'renameColumnOperation' in kwargs: + rename_column_operation = kwargs['renameColumnOperation'] + if tag_column_operation is None and 'tagColumnOperation' in kwargs: + tag_column_operation = kwargs['tagColumnOperation'] + if untag_column_operation is None and 'untagColumnOperation' in kwargs: + untag_column_operation = kwargs['untagColumnOperation'] + if cast_column_type_operation is not None: - pulumi.set(__self__, "cast_column_type_operation", cast_column_type_operation) + _setter("cast_column_type_operation", cast_column_type_operation) if create_columns_operation is not None: - pulumi.set(__self__, "create_columns_operation", create_columns_operation) + _setter("create_columns_operation", create_columns_operation) if filter_operation is not None: - pulumi.set(__self__, "filter_operation", filter_operation) + _setter("filter_operation", filter_operation) if project_operation is not None: - pulumi.set(__self__, "project_operation", project_operation) + _setter("project_operation", project_operation) if rename_column_operation is not None: - pulumi.set(__self__, "rename_column_operation", rename_column_operation) + _setter("rename_column_operation", rename_column_operation) if tag_column_operation is not None: - pulumi.set(__self__, "tag_column_operation", tag_column_operation) + _setter("tag_column_operation", tag_column_operation) if untag_column_operation is not None: - pulumi.set(__self__, "untag_column_operation", untag_column_operation) + _setter("untag_column_operation", untag_column_operation) @property @pulumi.getter(name="castColumnTypeOperation") @@ -1859,10 +2515,33 @@ def __init__(__self__, *, :param str new_column_type: New column data type. Valid values are `STRING`, `INTEGER`, `DECIMAL`, `DATETIME`. :param str format: When casting a column from string to datetime type, you can supply a string in a format supported by Amazon QuickSight to denote the source data format. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "new_column_type", new_column_type) + DataSetLogicalTableMapDataTransformCastColumnTypeOperation._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + new_column_type=new_column_type, + format=format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + new_column_type: Optional[str] = None, + format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if new_column_type is None and 'newColumnType' in kwargs: + new_column_type = kwargs['newColumnType'] + if new_column_type is None: + raise TypeError("Missing 'new_column_type' argument") + + _setter("column_name", column_name) + _setter("new_column_type", new_column_type) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) @property @pulumi.getter(name="columnName") @@ -1896,7 +2575,20 @@ def __init__(__self__, *, """ :param Sequence['DataSetLogicalTableMapDataTransformCreateColumnsOperationColumnArgs'] columns: Calculated columns to create. See columns. """ - pulumi.set(__self__, "columns", columns) + DataSetLogicalTableMapDataTransformCreateColumnsOperation._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[Sequence['outputs.DataSetLogicalTableMapDataTransformCreateColumnsOperationColumn']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + + _setter("columns", columns) @property @pulumi.getter @@ -1937,9 +2629,34 @@ def __init__(__self__, *, :param str column_name: Column name. :param str expression: An expression that defines the calculated column. """ - pulumi.set(__self__, "column_id", column_id) - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "expression", expression) + DataSetLogicalTableMapDataTransformCreateColumnsOperationColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_id=column_id, + column_name=column_name, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_id: Optional[str] = None, + column_name: Optional[str] = None, + expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_id is None and 'columnId' in kwargs: + column_id = kwargs['columnId'] + if column_id is None: + raise TypeError("Missing 'column_id' argument") + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if expression is None: + raise TypeError("Missing 'expression' argument") + + _setter("column_id", column_id) + _setter("column_name", column_name) + _setter("expression", expression) @property @pulumi.getter(name="columnId") @@ -1990,7 +2707,22 @@ def __init__(__self__, *, """ :param str condition_expression: An expression that must evaluate to a Boolean value. Rows for which the expression evaluates to true are kept in the dataset. """ - pulumi.set(__self__, "condition_expression", condition_expression) + DataSetLogicalTableMapDataTransformFilterOperation._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition_expression=condition_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if condition_expression is None and 'conditionExpression' in kwargs: + condition_expression = kwargs['conditionExpression'] + if condition_expression is None: + raise TypeError("Missing 'condition_expression' argument") + + _setter("condition_expression", condition_expression) @property @pulumi.getter(name="conditionExpression") @@ -2025,7 +2757,22 @@ def __init__(__self__, *, """ :param Sequence[str] projected_columns: Projected columns. """ - pulumi.set(__self__, "projected_columns", projected_columns) + DataSetLogicalTableMapDataTransformProjectOperation._configure( + lambda key, value: pulumi.set(__self__, key, value), + projected_columns=projected_columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + projected_columns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if projected_columns is None and 'projectedColumns' in kwargs: + projected_columns = kwargs['projectedColumns'] + if projected_columns is None: + raise TypeError("Missing 'projected_columns' argument") + + _setter("projected_columns", projected_columns) @property @pulumi.getter(name="projectedColumns") @@ -2064,8 +2811,29 @@ def __init__(__self__, *, :param str column_name: Column to be renamed. :param str new_column_name: New name for the column. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "new_column_name", new_column_name) + DataSetLogicalTableMapDataTransformRenameColumnOperation._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + new_column_name=new_column_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + new_column_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if new_column_name is None and 'newColumnName' in kwargs: + new_column_name = kwargs['newColumnName'] + if new_column_name is None: + raise TypeError("Missing 'new_column_name' argument") + + _setter("column_name", column_name) + _setter("new_column_name", new_column_name) @property @pulumi.getter(name="columnName") @@ -2110,8 +2878,27 @@ def __init__(__self__, *, :param str column_name: Column name. :param Sequence['DataSetLogicalTableMapDataTransformTagColumnOperationTagArgs'] tags: The dataset column tag, currently only used for geospatial type tagging. See tags. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "tags", tags) + DataSetLogicalTableMapDataTransformTagColumnOperation._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + tags: Optional[Sequence['outputs.DataSetLogicalTableMapDataTransformTagColumnOperationTag']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("column_name", column_name) + _setter("tags", tags) @property @pulumi.getter(name="columnName") @@ -2158,10 +2945,27 @@ def __init__(__self__, *, :param 'DataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescriptionArgs' column_description: A description for a column. See column_description. :param str column_geographic_role: A geospatial role for a column. Valid values are `COUNTRY`, `STATE`, `COUNTY`, `CITY`, `POSTCODE`, `LONGITUDE`, and `LATITUDE`. """ + DataSetLogicalTableMapDataTransformTagColumnOperationTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_description=column_description, + column_geographic_role=column_geographic_role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_description: Optional['outputs.DataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescription'] = None, + column_geographic_role: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_description is None and 'columnDescription' in kwargs: + column_description = kwargs['columnDescription'] + if column_geographic_role is None and 'columnGeographicRole' in kwargs: + column_geographic_role = kwargs['columnGeographicRole'] + if column_description is not None: - pulumi.set(__self__, "column_description", column_description) + _setter("column_description", column_description) if column_geographic_role is not None: - pulumi.set(__self__, "column_geographic_role", column_geographic_role) + _setter("column_geographic_role", column_geographic_role) @property @pulumi.getter(name="columnDescription") @@ -2187,8 +2991,19 @@ def __init__(__self__, *, """ :param str text: The text of a description for a column. """ + DataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescription._configure( + lambda key, value: pulumi.set(__self__, key, value), + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text is not None: - pulumi.set(__self__, "text", text) + _setter("text", text) @property @pulumi.getter @@ -2227,8 +3042,29 @@ def __init__(__self__, *, :param str column_name: Column name. :param Sequence[str] tag_names: The column tags to remove from this column. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "tag_names", tag_names) + DataSetLogicalTableMapDataTransformUntagColumnOperation._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + tag_names=tag_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + tag_names: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if tag_names is None and 'tagNames' in kwargs: + tag_names = kwargs['tagNames'] + if tag_names is None: + raise TypeError("Missing 'tag_names' argument") + + _setter("column_name", column_name) + _setter("tag_names", tag_names) @property @pulumi.getter(name="columnName") @@ -2279,12 +3115,33 @@ def __init__(__self__, *, :param 'DataSetLogicalTableMapSourceJoinInstructionArgs' join_instruction: Specifies the result of a join of two logical tables. See join_instruction. :param str physical_table_id: Physical table ID. """ + DataSetLogicalTableMapSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_arn=data_set_arn, + join_instruction=join_instruction, + physical_table_id=physical_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_arn: Optional[str] = None, + join_instruction: Optional['outputs.DataSetLogicalTableMapSourceJoinInstruction'] = None, + physical_table_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_arn is None and 'dataSetArn' in kwargs: + data_set_arn = kwargs['dataSetArn'] + if join_instruction is None and 'joinInstruction' in kwargs: + join_instruction = kwargs['joinInstruction'] + if physical_table_id is None and 'physicalTableId' in kwargs: + physical_table_id = kwargs['physicalTableId'] + if data_set_arn is not None: - pulumi.set(__self__, "data_set_arn", data_set_arn) + _setter("data_set_arn", data_set_arn) if join_instruction is not None: - pulumi.set(__self__, "join_instruction", join_instruction) + _setter("join_instruction", join_instruction) if physical_table_id is not None: - pulumi.set(__self__, "physical_table_id", physical_table_id) + _setter("physical_table_id", physical_table_id) @property @pulumi.getter(name="dataSetArn") @@ -2353,14 +3210,53 @@ def __init__(__self__, *, :param 'DataSetLogicalTableMapSourceJoinInstructionLeftJoinKeyPropertiesArgs' left_join_key_properties: Join key properties of the left operand. See left_join_key_properties. :param 'DataSetLogicalTableMapSourceJoinInstructionRightJoinKeyPropertiesArgs' right_join_key_properties: Join key properties of the right operand. See right_join_key_properties. """ - pulumi.set(__self__, "left_operand", left_operand) - pulumi.set(__self__, "on_clause", on_clause) - pulumi.set(__self__, "right_operand", right_operand) - pulumi.set(__self__, "type", type) + DataSetLogicalTableMapSourceJoinInstruction._configure( + lambda key, value: pulumi.set(__self__, key, value), + left_operand=left_operand, + on_clause=on_clause, + right_operand=right_operand, + type=type, + left_join_key_properties=left_join_key_properties, + right_join_key_properties=right_join_key_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + left_operand: Optional[str] = None, + on_clause: Optional[str] = None, + right_operand: Optional[str] = None, + type: Optional[str] = None, + left_join_key_properties: Optional['outputs.DataSetLogicalTableMapSourceJoinInstructionLeftJoinKeyProperties'] = None, + right_join_key_properties: Optional['outputs.DataSetLogicalTableMapSourceJoinInstructionRightJoinKeyProperties'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if left_operand is None and 'leftOperand' in kwargs: + left_operand = kwargs['leftOperand'] + if left_operand is None: + raise TypeError("Missing 'left_operand' argument") + if on_clause is None and 'onClause' in kwargs: + on_clause = kwargs['onClause'] + if on_clause is None: + raise TypeError("Missing 'on_clause' argument") + if right_operand is None and 'rightOperand' in kwargs: + right_operand = kwargs['rightOperand'] + if right_operand is None: + raise TypeError("Missing 'right_operand' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if left_join_key_properties is None and 'leftJoinKeyProperties' in kwargs: + left_join_key_properties = kwargs['leftJoinKeyProperties'] + if right_join_key_properties is None and 'rightJoinKeyProperties' in kwargs: + right_join_key_properties = kwargs['rightJoinKeyProperties'] + + _setter("left_operand", left_operand) + _setter("on_clause", on_clause) + _setter("right_operand", right_operand) + _setter("type", type) if left_join_key_properties is not None: - pulumi.set(__self__, "left_join_key_properties", left_join_key_properties) + _setter("left_join_key_properties", left_join_key_properties) if right_join_key_properties is not None: - pulumi.set(__self__, "right_join_key_properties", right_join_key_properties) + _setter("right_join_key_properties", right_join_key_properties) @property @pulumi.getter(name="leftOperand") @@ -2435,8 +3331,21 @@ def __init__(__self__, *, """ :param bool unique_key: A value that indicates that a row in a table is uniquely identified by the columns in a join key. This is used by Amazon QuickSight to optimize query performance. """ + DataSetLogicalTableMapSourceJoinInstructionLeftJoinKeyProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + unique_key=unique_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unique_key: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unique_key is None and 'uniqueKey' in kwargs: + unique_key = kwargs['uniqueKey'] + if unique_key is not None: - pulumi.set(__self__, "unique_key", unique_key) + _setter("unique_key", unique_key) @property @pulumi.getter(name="uniqueKey") @@ -2471,8 +3380,21 @@ def __init__(__self__, *, """ :param bool unique_key: A value that indicates that a row in a table is uniquely identified by the columns in a join key. This is used by Amazon QuickSight to optimize query performance. """ + DataSetLogicalTableMapSourceJoinInstructionRightJoinKeyProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + unique_key=unique_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unique_key: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unique_key is None and 'uniqueKey' in kwargs: + unique_key = kwargs['uniqueKey'] + if unique_key is not None: - pulumi.set(__self__, "unique_key", unique_key) + _setter("unique_key", unique_key) @property @pulumi.getter(name="uniqueKey") @@ -2494,12 +3416,27 @@ def __init__(__self__, *, :param str name: Display name for the dataset. :param str type: Data type of the column. """ + DataSetOutputColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[str] = None, + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -2535,8 +3472,25 @@ def __init__(__self__, *, :param Sequence[str] actions: List of IAM actions to grant or revoke permissions on. :param str principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + DataSetPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -2591,13 +3545,40 @@ def __init__(__self__, *, :param 'DataSetPhysicalTableMapRelationalTableArgs' relational_table: A physical table type for relational data sources. See relational_table. :param 'DataSetPhysicalTableMapS3SourceArgs' s3_source: A physical table type for as S3 data source. See s3_source. """ - pulumi.set(__self__, "physical_table_map_id", physical_table_map_id) + DataSetPhysicalTableMap._configure( + lambda key, value: pulumi.set(__self__, key, value), + physical_table_map_id=physical_table_map_id, + custom_sql=custom_sql, + relational_table=relational_table, + s3_source=s3_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + physical_table_map_id: Optional[str] = None, + custom_sql: Optional['outputs.DataSetPhysicalTableMapCustomSql'] = None, + relational_table: Optional['outputs.DataSetPhysicalTableMapRelationalTable'] = None, + s3_source: Optional['outputs.DataSetPhysicalTableMapS3Source'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if physical_table_map_id is None and 'physicalTableMapId' in kwargs: + physical_table_map_id = kwargs['physicalTableMapId'] + if physical_table_map_id is None: + raise TypeError("Missing 'physical_table_map_id' argument") + if custom_sql is None and 'customSql' in kwargs: + custom_sql = kwargs['customSql'] + if relational_table is None and 'relationalTable' in kwargs: + relational_table = kwargs['relationalTable'] + if s3_source is None and 's3Source' in kwargs: + s3_source = kwargs['s3Source'] + + _setter("physical_table_map_id", physical_table_map_id) if custom_sql is not None: - pulumi.set(__self__, "custom_sql", custom_sql) + _setter("custom_sql", custom_sql) if relational_table is not None: - pulumi.set(__self__, "relational_table", relational_table) + _setter("relational_table", relational_table) if s3_source is not None: - pulumi.set(__self__, "s3_source", s3_source) + _setter("s3_source", s3_source) @property @pulumi.getter(name="physicalTableMapId") @@ -2664,11 +3645,38 @@ def __init__(__self__, *, :param str sql_query: SQL query. :param Sequence['DataSetPhysicalTableMapCustomSqlColumnArgs'] columns: Column schema from the SQL query result set. See columns. """ - pulumi.set(__self__, "data_source_arn", data_source_arn) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_query", sql_query) + DataSetPhysicalTableMapCustomSql._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_arn=data_source_arn, + name=name, + sql_query=sql_query, + columns=columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_arn: Optional[str] = None, + name: Optional[str] = None, + sql_query: Optional[str] = None, + columns: Optional[Sequence['outputs.DataSetPhysicalTableMapCustomSqlColumn']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_arn is None: + raise TypeError("Missing 'data_source_arn' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if sql_query is None and 'sqlQuery' in kwargs: + sql_query = kwargs['sqlQuery'] + if sql_query is None: + raise TypeError("Missing 'sql_query' argument") + + _setter("data_source_arn", data_source_arn) + _setter("name", name) + _setter("sql_query", sql_query) if columns is not None: - pulumi.set(__self__, "columns", columns) + _setter("columns", columns) @property @pulumi.getter(name="dataSourceArn") @@ -2712,8 +3720,25 @@ def __init__(__self__, *, :param str name: Name of this column in the underlying data source. :param str type: Data type of the column. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + DataSetPhysicalTableMapCustomSqlColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -2766,13 +3791,42 @@ def __init__(__self__, *, :param str catalog: Catalog associated with the table. :param str schema: Schema name. This name applies to certain relational database engines. """ - pulumi.set(__self__, "data_source_arn", data_source_arn) - pulumi.set(__self__, "input_columns", input_columns) - pulumi.set(__self__, "name", name) + DataSetPhysicalTableMapRelationalTable._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_arn=data_source_arn, + input_columns=input_columns, + name=name, + catalog=catalog, + schema=schema, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_arn: Optional[str] = None, + input_columns: Optional[Sequence['outputs.DataSetPhysicalTableMapRelationalTableInputColumn']] = None, + name: Optional[str] = None, + catalog: Optional[str] = None, + schema: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_arn is None: + raise TypeError("Missing 'data_source_arn' argument") + if input_columns is None and 'inputColumns' in kwargs: + input_columns = kwargs['inputColumns'] + if input_columns is None: + raise TypeError("Missing 'input_columns' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("data_source_arn", data_source_arn) + _setter("input_columns", input_columns) + _setter("name", name) if catalog is not None: - pulumi.set(__self__, "catalog", catalog) + _setter("catalog", catalog) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) @property @pulumi.getter(name="dataSourceArn") @@ -2824,8 +3878,25 @@ def __init__(__self__, *, :param str name: Name of this column in the underlying data source. :param str type: Data type of the column. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + DataSetPhysicalTableMapRelationalTableInputColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -2876,9 +3947,36 @@ def __init__(__self__, *, :param Sequence['DataSetPhysicalTableMapS3SourceInputColumnArgs'] input_columns: Column schema of the table. See input_columns. :param 'DataSetPhysicalTableMapS3SourceUploadSettingsArgs' upload_settings: Information about the format for the S3 source file or files. See upload_settings. """ - pulumi.set(__self__, "data_source_arn", data_source_arn) - pulumi.set(__self__, "input_columns", input_columns) - pulumi.set(__self__, "upload_settings", upload_settings) + DataSetPhysicalTableMapS3Source._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_arn=data_source_arn, + input_columns=input_columns, + upload_settings=upload_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_arn: Optional[str] = None, + input_columns: Optional[Sequence['outputs.DataSetPhysicalTableMapS3SourceInputColumn']] = None, + upload_settings: Optional['outputs.DataSetPhysicalTableMapS3SourceUploadSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_arn is None: + raise TypeError("Missing 'data_source_arn' argument") + if input_columns is None and 'inputColumns' in kwargs: + input_columns = kwargs['inputColumns'] + if input_columns is None: + raise TypeError("Missing 'input_columns' argument") + if upload_settings is None and 'uploadSettings' in kwargs: + upload_settings = kwargs['uploadSettings'] + if upload_settings is None: + raise TypeError("Missing 'upload_settings' argument") + + _setter("data_source_arn", data_source_arn) + _setter("input_columns", input_columns) + _setter("upload_settings", upload_settings) @property @pulumi.getter(name="dataSourceArn") @@ -2914,8 +4012,25 @@ def __init__(__self__, *, :param str name: Name of this column in the underlying data source. :param str type: Data type of the column. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + DataSetPhysicalTableMapS3SourceInputColumn._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -2970,16 +4085,41 @@ def __init__(__self__, *, :param int start_from_row: A row number to start reading data from. :param str text_qualifier: Text qualifier. Valid values are `DOUBLE_QUOTE` and `SINGLE_QUOTE`. """ + DataSetPhysicalTableMapS3SourceUploadSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + contains_header=contains_header, + delimiter=delimiter, + format=format, + start_from_row=start_from_row, + text_qualifier=text_qualifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contains_header: Optional[bool] = None, + delimiter: Optional[str] = None, + format: Optional[str] = None, + start_from_row: Optional[int] = None, + text_qualifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contains_header is None and 'containsHeader' in kwargs: + contains_header = kwargs['containsHeader'] + if start_from_row is None and 'startFromRow' in kwargs: + start_from_row = kwargs['startFromRow'] + if text_qualifier is None and 'textQualifier' in kwargs: + text_qualifier = kwargs['textQualifier'] + if contains_header is not None: - pulumi.set(__self__, "contains_header", contains_header) + _setter("contains_header", contains_header) if delimiter is not None: - pulumi.set(__self__, "delimiter", delimiter) + _setter("delimiter", delimiter) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if start_from_row is not None: - pulumi.set(__self__, "start_from_row", start_from_row) + _setter("start_from_row", start_from_row) if text_qualifier is not None: - pulumi.set(__self__, "text_qualifier", text_qualifier) + _setter("text_qualifier", text_qualifier) @property @pulumi.getter(name="containsHeader") @@ -3046,7 +4186,22 @@ def __init__(__self__, *, """ :param 'DataSetRefreshPropertiesRefreshConfigurationArgs' refresh_configuration: The refresh configuration for the data set. See refresh_configuration. """ - pulumi.set(__self__, "refresh_configuration", refresh_configuration) + DataSetRefreshProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + refresh_configuration=refresh_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + refresh_configuration: Optional['outputs.DataSetRefreshPropertiesRefreshConfiguration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if refresh_configuration is None and 'refreshConfiguration' in kwargs: + refresh_configuration = kwargs['refreshConfiguration'] + if refresh_configuration is None: + raise TypeError("Missing 'refresh_configuration' argument") + + _setter("refresh_configuration", refresh_configuration) @property @pulumi.getter(name="refreshConfiguration") @@ -3081,7 +4236,22 @@ def __init__(__self__, *, """ :param 'DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshArgs' incremental_refresh: The incremental refresh for the data set. See incremental_refresh. """ - pulumi.set(__self__, "incremental_refresh", incremental_refresh) + DataSetRefreshPropertiesRefreshConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + incremental_refresh=incremental_refresh, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + incremental_refresh: Optional['outputs.DataSetRefreshPropertiesRefreshConfigurationIncrementalRefresh'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if incremental_refresh is None and 'incrementalRefresh' in kwargs: + incremental_refresh = kwargs['incrementalRefresh'] + if incremental_refresh is None: + raise TypeError("Missing 'incremental_refresh' argument") + + _setter("incremental_refresh", incremental_refresh) @property @pulumi.getter(name="incrementalRefresh") @@ -3116,7 +4286,22 @@ def __init__(__self__, *, """ :param 'DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshLookbackWindowArgs' lookback_window: The lookback window setup for an incremental refresh configuration. See lookback_window. """ - pulumi.set(__self__, "lookback_window", lookback_window) + DataSetRefreshPropertiesRefreshConfigurationIncrementalRefresh._configure( + lambda key, value: pulumi.set(__self__, key, value), + lookback_window=lookback_window, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + lookback_window: Optional['outputs.DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshLookbackWindow'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lookback_window is None and 'lookbackWindow' in kwargs: + lookback_window = kwargs['lookbackWindow'] + if lookback_window is None: + raise TypeError("Missing 'lookback_window' argument") + + _setter("lookback_window", lookback_window) @property @pulumi.getter(name="lookbackWindow") @@ -3157,9 +4342,34 @@ def __init__(__self__, *, :param int size: The lookback window column size. :param str size_unit: The size unit that is used for the lookback window column. Valid values for this structure are `HOUR`, `DAY`, and `WEEK`. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "size_unit", size_unit) + DataSetRefreshPropertiesRefreshConfigurationIncrementalRefreshLookbackWindow._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + size=size, + size_unit=size_unit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + size: Optional[int] = None, + size_unit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if size_unit is None and 'sizeUnit' in kwargs: + size_unit = kwargs['sizeUnit'] + if size_unit is None: + raise TypeError("Missing 'size_unit' argument") + + _setter("column_name", column_name) + _setter("size", size) + _setter("size_unit", size_unit) @property @pulumi.getter(name="columnName") @@ -3220,14 +4430,41 @@ def __init__(__self__, *, :param str namespace: Namespace associated with the dataset that contains permissions for RLS. :param str status: Status of the row-level security permission dataset. If enabled, the status is `ENABLED`. If disabled, the status is `DISABLED`. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "permission_policy", permission_policy) + DataSetRowLevelPermissionDataSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + permission_policy=permission_policy, + format_version=format_version, + namespace=namespace, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + permission_policy: Optional[str] = None, + format_version: Optional[str] = None, + namespace: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if permission_policy is None and 'permissionPolicy' in kwargs: + permission_policy = kwargs['permissionPolicy'] + if permission_policy is None: + raise TypeError("Missing 'permission_policy' argument") + if format_version is None and 'formatVersion' in kwargs: + format_version = kwargs['formatVersion'] + + _setter("arn", arn) + _setter("permission_policy", permission_policy) if format_version is not None: - pulumi.set(__self__, "format_version", format_version) + _setter("format_version", format_version) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -3296,9 +4533,26 @@ def __init__(__self__, *, :param Sequence['DataSetRowLevelPermissionTagConfigurationTagRuleArgs'] tag_rules: A set of rules associated with row-level security, such as the tag names and columns that they are assigned to. See tag_rules. :param str status: The status of row-level security tags. If enabled, the status is `ENABLED`. If disabled, the status is `DISABLED`. """ - pulumi.set(__self__, "tag_rules", tag_rules) + DataSetRowLevelPermissionTagConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + tag_rules=tag_rules, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tag_rules: Optional[Sequence['outputs.DataSetRowLevelPermissionTagConfigurationTagRule']] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tag_rules is None and 'tagRules' in kwargs: + tag_rules = kwargs['tagRules'] + if tag_rules is None: + raise TypeError("Missing 'tag_rules' argument") + + _setter("tag_rules", tag_rules) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="tagRules") @@ -3353,12 +4607,41 @@ def __init__(__self__, *, :param str match_all_value: A string that you want to use to filter by all the values in a column in the dataset and don’t want to list the values one by one. :param str tag_multi_value_delimiter: A string that you want to use to delimit the values when you pass the values at run time. """ - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "tag_key", tag_key) + DataSetRowLevelPermissionTagConfigurationTagRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + tag_key=tag_key, + match_all_value=match_all_value, + tag_multi_value_delimiter=tag_multi_value_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + tag_key: Optional[str] = None, + match_all_value: Optional[str] = None, + tag_multi_value_delimiter: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if tag_key is None and 'tagKey' in kwargs: + tag_key = kwargs['tagKey'] + if tag_key is None: + raise TypeError("Missing 'tag_key' argument") + if match_all_value is None and 'matchAllValue' in kwargs: + match_all_value = kwargs['matchAllValue'] + if tag_multi_value_delimiter is None and 'tagMultiValueDelimiter' in kwargs: + tag_multi_value_delimiter = kwargs['tagMultiValueDelimiter'] + + _setter("column_name", column_name) + _setter("tag_key", tag_key) if match_all_value is not None: - pulumi.set(__self__, "match_all_value", match_all_value) + _setter("match_all_value", match_all_value) if tag_multi_value_delimiter is not None: - pulumi.set(__self__, "tag_multi_value_delimiter", tag_multi_value_delimiter) + _setter("tag_multi_value_delimiter", tag_multi_value_delimiter) @property @pulumi.getter(name="columnName") @@ -3422,10 +4705,27 @@ def __init__(__self__, *, When the value is not null, the `credential_pair` from the data source in the ARN is used. :param 'DataSourceCredentialsCredentialPairArgs' credential_pair: Credential pair. See Credential Pair below for more details. """ + DataSourceCredentials._configure( + lambda key, value: pulumi.set(__self__, key, value), + copy_source_arn=copy_source_arn, + credential_pair=credential_pair, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + copy_source_arn: Optional[str] = None, + credential_pair: Optional['outputs.DataSourceCredentialsCredentialPair'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if copy_source_arn is None and 'copySourceArn' in kwargs: + copy_source_arn = kwargs['copySourceArn'] + if credential_pair is None and 'credentialPair' in kwargs: + credential_pair = kwargs['credentialPair'] + if copy_source_arn is not None: - pulumi.set(__self__, "copy_source_arn", copy_source_arn) + _setter("copy_source_arn", copy_source_arn) if credential_pair is not None: - pulumi.set(__self__, "credential_pair", credential_pair) + _setter("credential_pair", credential_pair) @property @pulumi.getter(name="copySourceArn") @@ -3454,8 +4754,25 @@ def __init__(__self__, *, :param str password: Password, maximum length of 1024 characters. :param str username: User name, maximum length of 64 characters. """ - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + DataSourceCredentialsCredentialPair._configure( + lambda key, value: pulumi.set(__self__, key, value), + password=password, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("password", password) + _setter("username", username) @property @pulumi.getter @@ -3546,46 +4863,107 @@ def __init__(__self__, *, :param 'DataSourceParametersTeradataArgs' teradata: Parameters for connecting to Teradata. :param 'DataSourceParametersTwitterArgs' twitter: Parameters for connecting to Twitter. """ + DataSourceParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_elasticsearch=amazon_elasticsearch, + athena=athena, + aurora=aurora, + aurora_postgresql=aurora_postgresql, + aws_iot_analytics=aws_iot_analytics, + jira=jira, + maria_db=maria_db, + mysql=mysql, + oracle=oracle, + postgresql=postgresql, + presto=presto, + rds=rds, + redshift=redshift, + s3=s3, + service_now=service_now, + snowflake=snowflake, + spark=spark, + sql_server=sql_server, + teradata=teradata, + twitter=twitter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_elasticsearch: Optional['outputs.DataSourceParametersAmazonElasticsearch'] = None, + athena: Optional['outputs.DataSourceParametersAthena'] = None, + aurora: Optional['outputs.DataSourceParametersAurora'] = None, + aurora_postgresql: Optional['outputs.DataSourceParametersAuroraPostgresql'] = None, + aws_iot_analytics: Optional['outputs.DataSourceParametersAwsIotAnalytics'] = None, + jira: Optional['outputs.DataSourceParametersJira'] = None, + maria_db: Optional['outputs.DataSourceParametersMariaDb'] = None, + mysql: Optional['outputs.DataSourceParametersMysql'] = None, + oracle: Optional['outputs.DataSourceParametersOracle'] = None, + postgresql: Optional['outputs.DataSourceParametersPostgresql'] = None, + presto: Optional['outputs.DataSourceParametersPresto'] = None, + rds: Optional['outputs.DataSourceParametersRds'] = None, + redshift: Optional['outputs.DataSourceParametersRedshift'] = None, + s3: Optional['outputs.DataSourceParametersS3'] = None, + service_now: Optional['outputs.DataSourceParametersServiceNow'] = None, + snowflake: Optional['outputs.DataSourceParametersSnowflake'] = None, + spark: Optional['outputs.DataSourceParametersSpark'] = None, + sql_server: Optional['outputs.DataSourceParametersSqlServer'] = None, + teradata: Optional['outputs.DataSourceParametersTeradata'] = None, + twitter: Optional['outputs.DataSourceParametersTwitter'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_elasticsearch is None and 'amazonElasticsearch' in kwargs: + amazon_elasticsearch = kwargs['amazonElasticsearch'] + if aurora_postgresql is None and 'auroraPostgresql' in kwargs: + aurora_postgresql = kwargs['auroraPostgresql'] + if aws_iot_analytics is None and 'awsIotAnalytics' in kwargs: + aws_iot_analytics = kwargs['awsIotAnalytics'] + if maria_db is None and 'mariaDb' in kwargs: + maria_db = kwargs['mariaDb'] + if service_now is None and 'serviceNow' in kwargs: + service_now = kwargs['serviceNow'] + if sql_server is None and 'sqlServer' in kwargs: + sql_server = kwargs['sqlServer'] + if amazon_elasticsearch is not None: - pulumi.set(__self__, "amazon_elasticsearch", amazon_elasticsearch) + _setter("amazon_elasticsearch", amazon_elasticsearch) if athena is not None: - pulumi.set(__self__, "athena", athena) + _setter("athena", athena) if aurora is not None: - pulumi.set(__self__, "aurora", aurora) + _setter("aurora", aurora) if aurora_postgresql is not None: - pulumi.set(__self__, "aurora_postgresql", aurora_postgresql) + _setter("aurora_postgresql", aurora_postgresql) if aws_iot_analytics is not None: - pulumi.set(__self__, "aws_iot_analytics", aws_iot_analytics) + _setter("aws_iot_analytics", aws_iot_analytics) if jira is not None: - pulumi.set(__self__, "jira", jira) + _setter("jira", jira) if maria_db is not None: - pulumi.set(__self__, "maria_db", maria_db) + _setter("maria_db", maria_db) if mysql is not None: - pulumi.set(__self__, "mysql", mysql) + _setter("mysql", mysql) if oracle is not None: - pulumi.set(__self__, "oracle", oracle) + _setter("oracle", oracle) if postgresql is not None: - pulumi.set(__self__, "postgresql", postgresql) + _setter("postgresql", postgresql) if presto is not None: - pulumi.set(__self__, "presto", presto) + _setter("presto", presto) if rds is not None: - pulumi.set(__self__, "rds", rds) + _setter("rds", rds) if redshift is not None: - pulumi.set(__self__, "redshift", redshift) + _setter("redshift", redshift) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) if service_now is not None: - pulumi.set(__self__, "service_now", service_now) + _setter("service_now", service_now) if snowflake is not None: - pulumi.set(__self__, "snowflake", snowflake) + _setter("snowflake", snowflake) if spark is not None: - pulumi.set(__self__, "spark", spark) + _setter("spark", spark) if sql_server is not None: - pulumi.set(__self__, "sql_server", sql_server) + _setter("sql_server", sql_server) if teradata is not None: - pulumi.set(__self__, "teradata", teradata) + _setter("teradata", teradata) if twitter is not None: - pulumi.set(__self__, "twitter", twitter) + _setter("twitter", twitter) @property @pulumi.getter(name="amazonElasticsearch") @@ -3755,7 +5133,20 @@ def __init__(__self__, *, """ :param str domain: The OpenSearch domain. """ - pulumi.set(__self__, "domain", domain) + DataSourceParametersAmazonElasticsearch._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + + _setter("domain", domain) @property @pulumi.getter @@ -3790,8 +5181,21 @@ def __init__(__self__, *, """ :param str work_group: The work-group to which to connect. """ + DataSourceParametersAthena._configure( + lambda key, value: pulumi.set(__self__, key, value), + work_group=work_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + work_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if work_group is None and 'workGroup' in kwargs: + work_group = kwargs['workGroup'] + if work_group is not None: - pulumi.set(__self__, "work_group", work_group) + _setter("work_group", work_group) @property @pulumi.getter(name="workGroup") @@ -3813,9 +5217,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersAurora._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -3853,9 +5278,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersAuroraPostgresql._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -3906,7 +5352,22 @@ def __init__(__self__, *, """ :param str data_set_name: The name of the data set to which to connect. """ - pulumi.set(__self__, "data_set_name", data_set_name) + DataSourceParametersAwsIotAnalytics._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_name=data_set_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_name is None and 'dataSetName' in kwargs: + data_set_name = kwargs['dataSetName'] + if data_set_name is None: + raise TypeError("Missing 'data_set_name' argument") + + _setter("data_set_name", data_set_name) @property @pulumi.getter(name="dataSetName") @@ -3941,7 +5402,22 @@ def __init__(__self__, *, """ :param str site_base_url: The base URL of the Jira instance's site to which to connect. """ - pulumi.set(__self__, "site_base_url", site_base_url) + DataSourceParametersJira._configure( + lambda key, value: pulumi.set(__self__, key, value), + site_base_url=site_base_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + site_base_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if site_base_url is None and 'siteBaseUrl' in kwargs: + site_base_url = kwargs['siteBaseUrl'] + if site_base_url is None: + raise TypeError("Missing 'site_base_url' argument") + + _setter("site_base_url", site_base_url) @property @pulumi.getter(name="siteBaseUrl") @@ -3963,9 +5439,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersMariaDb._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4003,9 +5500,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersMysql._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4043,9 +5561,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersOracle._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4083,9 +5622,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The port to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersPostgresql._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4123,9 +5683,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The port to which to connect. """ - pulumi.set(__self__, "catalog", catalog) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersPresto._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog=catalog, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog is None: + raise TypeError("Missing 'catalog' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("catalog", catalog) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4178,8 +5759,27 @@ def __init__(__self__, *, :param str database: The database to which to connect. :param str instance_id: The instance ID to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "instance_id", instance_id) + DataSourceParametersRds._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + instance_id=instance_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + instance_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + + _setter("database", database) + _setter("instance_id", instance_id) @property @pulumi.getter @@ -4228,13 +5828,34 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The port to which to connect. """ - pulumi.set(__self__, "database", database) + DataSourceParametersRedshift._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + cluster_id=cluster_id, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + cluster_id: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if cluster_id is None and 'clusterId' in kwargs: + cluster_id = kwargs['clusterId'] + + _setter("database", database) if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) + _setter("cluster_id", cluster_id) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -4293,7 +5914,22 @@ def __init__(__self__, *, """ :param 'DataSourceParametersS3ManifestFileLocationArgs' manifest_file_location: An object containing the S3 location of the S3 manifest file. """ - pulumi.set(__self__, "manifest_file_location", manifest_file_location) + DataSourceParametersS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + manifest_file_location=manifest_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + manifest_file_location: Optional['outputs.DataSourceParametersS3ManifestFileLocation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if manifest_file_location is None and 'manifestFileLocation' in kwargs: + manifest_file_location = kwargs['manifestFileLocation'] + if manifest_file_location is None: + raise TypeError("Missing 'manifest_file_location' argument") + + _setter("manifest_file_location", manifest_file_location) @property @pulumi.getter(name="manifestFileLocation") @@ -4313,8 +5949,25 @@ def __init__(__self__, *, :param str bucket: The name of the bucket that contains the manifest file. :param str key: The key of the manifest file within the bucket. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + DataSourceParametersS3ManifestFileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -4357,7 +6010,22 @@ def __init__(__self__, *, """ :param str site_base_url: The base URL of the Jira instance's site to which to connect. """ - pulumi.set(__self__, "site_base_url", site_base_url) + DataSourceParametersServiceNow._configure( + lambda key, value: pulumi.set(__self__, key, value), + site_base_url=site_base_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + site_base_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if site_base_url is None and 'siteBaseUrl' in kwargs: + site_base_url = kwargs['siteBaseUrl'] + if site_base_url is None: + raise TypeError("Missing 'site_base_url' argument") + + _setter("site_base_url", site_base_url) @property @pulumi.getter(name="siteBaseUrl") @@ -4379,9 +6047,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param str warehouse: The warehouse to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "warehouse", warehouse) + DataSourceParametersSnowflake._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + warehouse=warehouse, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + host: Optional[str] = None, + warehouse: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if warehouse is None: + raise TypeError("Missing 'warehouse' argument") + + _setter("database", database) + _setter("host", host) + _setter("warehouse", warehouse) @property @pulumi.getter @@ -4417,8 +6106,25 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The warehouse to which to connect. """ - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersSpark._configure( + lambda key, value: pulumi.set(__self__, key, value), + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4448,9 +6154,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The warehouse to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersSqlServer._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4488,9 +6215,30 @@ def __init__(__self__, *, :param str host: The host to which to connect. :param int port: The warehouse to which to connect. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "port", port) + DataSourceParametersTeradata._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + host=host, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if port is None: + raise TypeError("Missing 'port' argument") + + _setter("database", database) + _setter("host", host) + _setter("port", port) @property @pulumi.getter @@ -4543,8 +6291,27 @@ def __init__(__self__, *, :param int max_rows: The maximum number of rows to query. :param str query: The Twitter query to retrieve the data. """ - pulumi.set(__self__, "max_rows", max_rows) - pulumi.set(__self__, "query", query) + DataSourceParametersTwitter._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_rows=max_rows, + query=query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_rows: Optional[int] = None, + query: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_rows is None and 'maxRows' in kwargs: + max_rows = kwargs['maxRows'] + if max_rows is None: + raise TypeError("Missing 'max_rows' argument") + if query is None: + raise TypeError("Missing 'query' argument") + + _setter("max_rows", max_rows) + _setter("query", query) @property @pulumi.getter(name="maxRows") @@ -4572,8 +6339,25 @@ def __init__(__self__, *, :param Sequence[str] actions: Set of IAM actions to grant or revoke permissions on. Max of 16 items. :param str principal: The Amazon Resource Name (ARN) of the principal. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + DataSourcePermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -4616,7 +6400,22 @@ def __init__(__self__, *, """ :param bool disable_ssl: A Boolean option to control whether SSL should be disabled. """ - pulumi.set(__self__, "disable_ssl", disable_ssl) + DataSourceSslProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + disable_ssl=disable_ssl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disable_ssl: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disable_ssl is None and 'disableSsl' in kwargs: + disable_ssl = kwargs['disableSsl'] + if disable_ssl is None: + raise TypeError("Missing 'disable_ssl' argument") + + _setter("disable_ssl", disable_ssl) @property @pulumi.getter(name="disableSsl") @@ -4651,7 +6450,22 @@ def __init__(__self__, *, """ :param str vpc_connection_arn: The Amazon Resource Name (ARN) for the VPC connection. """ - pulumi.set(__self__, "vpc_connection_arn", vpc_connection_arn) + DataSourceVpcConnectionProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_connection_arn=vpc_connection_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_connection_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_connection_arn is None and 'vpcConnectionArn' in kwargs: + vpc_connection_arn = kwargs['vpcConnectionArn'] + if vpc_connection_arn is None: + raise TypeError("Missing 'vpc_connection_arn' argument") + + _setter("vpc_connection_arn", vpc_connection_arn) @property @pulumi.getter(name="vpcConnectionArn") @@ -4671,8 +6485,25 @@ def __init__(__self__, *, :param Sequence[str] actions: List of IAM actions to grant or revoke permissions on. :param str principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + FolderPermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -4699,10 +6530,23 @@ def __init__(__self__, *, """ :param Sequence[str] users: Array of Quicksight user names to assign the policy to. """ + IamPolicyAssignmentIdentities._configure( + lambda key, value: pulumi.set(__self__, key, value), + groups=groups, + users=users, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + groups: Optional[Sequence[str]] = None, + users: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if groups is not None: - pulumi.set(__self__, "groups", groups) + _setter("groups", groups) if users is not None: - pulumi.set(__self__, "users", users) + _setter("users", users) @property @pulumi.getter @@ -4723,10 +6567,23 @@ class NamespaceTimeouts(dict): def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None): + NamespaceTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) @property @pulumi.getter @@ -4771,11 +6628,34 @@ def __init__(__self__, *, :param 'RefreshScheduleScheduleScheduleFrequencyArgs' schedule_frequency: The configuration of the [schedule frequency](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RefreshFrequency.html). See schedule_frequency. :param str start_after_date_time: Time after which the refresh schedule can be started, expressed in `YYYY-MM-DDTHH:MM:SS` format. """ - pulumi.set(__self__, "refresh_type", refresh_type) + RefreshScheduleSchedule._configure( + lambda key, value: pulumi.set(__self__, key, value), + refresh_type=refresh_type, + schedule_frequency=schedule_frequency, + start_after_date_time=start_after_date_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + refresh_type: Optional[str] = None, + schedule_frequency: Optional['outputs.RefreshScheduleScheduleScheduleFrequency'] = None, + start_after_date_time: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if refresh_type is None and 'refreshType' in kwargs: + refresh_type = kwargs['refreshType'] + if refresh_type is None: + raise TypeError("Missing 'refresh_type' argument") + if schedule_frequency is None and 'scheduleFrequency' in kwargs: + schedule_frequency = kwargs['scheduleFrequency'] + if start_after_date_time is None and 'startAfterDateTime' in kwargs: + start_after_date_time = kwargs['startAfterDateTime'] + + _setter("refresh_type", refresh_type) if schedule_frequency is not None: - pulumi.set(__self__, "schedule_frequency", schedule_frequency) + _setter("schedule_frequency", schedule_frequency) if start_after_date_time is not None: - pulumi.set(__self__, "start_after_date_time", start_after_date_time) + _setter("start_after_date_time", start_after_date_time) @property @pulumi.getter(name="refreshType") @@ -4834,13 +6714,36 @@ def __init__(__self__, *, :param str time_of_the_day: The time of day that you want the dataset to refresh. This value is expressed in `HH:MM` format. This field is not required for schedules that refresh hourly. :param str timezone: The timezone that you want the refresh schedule to use. """ - pulumi.set(__self__, "interval", interval) + RefreshScheduleScheduleScheduleFrequency._configure( + lambda key, value: pulumi.set(__self__, key, value), + interval=interval, + refresh_on_day=refresh_on_day, + time_of_the_day=time_of_the_day, + timezone=timezone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + interval: Optional[str] = None, + refresh_on_day: Optional['outputs.RefreshScheduleScheduleScheduleFrequencyRefreshOnDay'] = None, + time_of_the_day: Optional[str] = None, + timezone: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if interval is None: + raise TypeError("Missing 'interval' argument") + if refresh_on_day is None and 'refreshOnDay' in kwargs: + refresh_on_day = kwargs['refreshOnDay'] + if time_of_the_day is None and 'timeOfTheDay' in kwargs: + time_of_the_day = kwargs['timeOfTheDay'] + + _setter("interval", interval) if refresh_on_day is not None: - pulumi.set(__self__, "refresh_on_day", refresh_on_day) + _setter("refresh_on_day", refresh_on_day) if time_of_the_day is not None: - pulumi.set(__self__, "time_of_the_day", time_of_the_day) + _setter("time_of_the_day", time_of_the_day) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) @property @pulumi.getter @@ -4903,10 +6806,27 @@ def __init__(__self__, *, :param str day_of_month: The day of the month that you want to schedule refresh on. :param str day_of_week: The day of the week that you want to schedule a refresh on. Valid values are `SUNDAY`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY` and `SATURDAY`. """ + RefreshScheduleScheduleScheduleFrequencyRefreshOnDay._configure( + lambda key, value: pulumi.set(__self__, key, value), + day_of_month=day_of_month, + day_of_week=day_of_week, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + day_of_month: Optional[str] = None, + day_of_week: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if day_of_month is None and 'dayOfMonth' in kwargs: + day_of_month = kwargs['dayOfMonth'] + if day_of_week is None and 'dayOfWeek' in kwargs: + day_of_week = kwargs['dayOfWeek'] + if day_of_month is not None: - pulumi.set(__self__, "day_of_month", day_of_month) + _setter("day_of_month", day_of_month) if day_of_week is not None: - pulumi.set(__self__, "day_of_week", day_of_week) + _setter("day_of_week", day_of_week) @property @pulumi.getter(name="dayOfMonth") @@ -4934,8 +6854,25 @@ def __init__(__self__, *, :param Sequence[str] actions: List of IAM actions to grant or revoke permissions on. :param str principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + TemplatePermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -4982,10 +6919,27 @@ def __init__(__self__, *, :param 'TemplateSourceEntitySourceAnalysisArgs' source_analysis: The source analysis, if it is based on an analysis.. Only one of `source_analysis` or `source_template` should be configured. See source_analysis. :param 'TemplateSourceEntitySourceTemplateArgs' source_template: The source template, if it is based on an template.. Only one of `source_analysis` or `source_template` should be configured. See source_template. """ + TemplateSourceEntity._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_analysis=source_analysis, + source_template=source_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_analysis: Optional['outputs.TemplateSourceEntitySourceAnalysis'] = None, + source_template: Optional['outputs.TemplateSourceEntitySourceTemplate'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_analysis is None and 'sourceAnalysis' in kwargs: + source_analysis = kwargs['sourceAnalysis'] + if source_template is None and 'sourceTemplate' in kwargs: + source_template = kwargs['sourceTemplate'] + if source_analysis is not None: - pulumi.set(__self__, "source_analysis", source_analysis) + _setter("source_analysis", source_analysis) if source_template is not None: - pulumi.set(__self__, "source_template", source_template) + _setter("source_template", source_template) @property @pulumi.getter(name="sourceAnalysis") @@ -5030,8 +6984,27 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the resource. :param Sequence['TemplateSourceEntitySourceAnalysisDataSetReferenceArgs'] data_set_references: A list of dataset references used as placeholders in the template. See data_set_references. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "data_set_references", data_set_references) + TemplateSourceEntitySourceAnalysis._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_set_references=data_set_references, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + data_set_references: Optional[Sequence['outputs.TemplateSourceEntitySourceAnalysisDataSetReference']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if data_set_references is None and 'dataSetReferences' in kwargs: + data_set_references = kwargs['dataSetReferences'] + if data_set_references is None: + raise TypeError("Missing 'data_set_references' argument") + + _setter("arn", arn) + _setter("data_set_references", data_set_references) @property @pulumi.getter @@ -5078,8 +7051,29 @@ def __init__(__self__, *, :param str data_set_arn: Dataset Amazon Resource Name (ARN). :param str data_set_placeholder: Dataset placeholder. """ - pulumi.set(__self__, "data_set_arn", data_set_arn) - pulumi.set(__self__, "data_set_placeholder", data_set_placeholder) + TemplateSourceEntitySourceAnalysisDataSetReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_arn=data_set_arn, + data_set_placeholder=data_set_placeholder, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_arn: Optional[str] = None, + data_set_placeholder: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_arn is None and 'dataSetArn' in kwargs: + data_set_arn = kwargs['dataSetArn'] + if data_set_arn is None: + raise TypeError("Missing 'data_set_arn' argument") + if data_set_placeholder is None and 'dataSetPlaceholder' in kwargs: + data_set_placeholder = kwargs['dataSetPlaceholder'] + if data_set_placeholder is None: + raise TypeError("Missing 'data_set_placeholder' argument") + + _setter("data_set_arn", data_set_arn) + _setter("data_set_placeholder", data_set_placeholder) @property @pulumi.getter(name="dataSetArn") @@ -5105,7 +7099,20 @@ def __init__(__self__, *, """ :param str arn: The Amazon Resource Name (ARN) of the resource. """ - pulumi.set(__self__, "arn", arn) + TemplateSourceEntitySourceTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) @property @pulumi.getter @@ -5148,14 +7155,35 @@ def __init__(__self__, *, :param 'ThemeConfigurationTypographyArgs' typography: Determines the typography options. See typography. :param 'ThemeConfigurationUiColorPaletteArgs' ui_color_palette: Color properties that apply to the UI and to charts, excluding the colors that apply to data. See ui_color_palette. """ + ThemeConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_color_palette=data_color_palette, + sheet=sheet, + typography=typography, + ui_color_palette=ui_color_palette, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_color_palette: Optional['outputs.ThemeConfigurationDataColorPalette'] = None, + sheet: Optional['outputs.ThemeConfigurationSheet'] = None, + typography: Optional['outputs.ThemeConfigurationTypography'] = None, + ui_color_palette: Optional['outputs.ThemeConfigurationUiColorPalette'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_color_palette is None and 'dataColorPalette' in kwargs: + data_color_palette = kwargs['dataColorPalette'] + if ui_color_palette is None and 'uiColorPalette' in kwargs: + ui_color_palette = kwargs['uiColorPalette'] + if data_color_palette is not None: - pulumi.set(__self__, "data_color_palette", data_color_palette) + _setter("data_color_palette", data_color_palette) if sheet is not None: - pulumi.set(__self__, "sheet", sheet) + _setter("sheet", sheet) if typography is not None: - pulumi.set(__self__, "typography", typography) + _setter("typography", typography) if ui_color_palette is not None: - pulumi.set(__self__, "ui_color_palette", ui_color_palette) + _setter("ui_color_palette", ui_color_palette) @property @pulumi.getter(name="dataColorPalette") @@ -5220,12 +7248,31 @@ def __init__(__self__, *, :param str empty_fill_color: The hexadecimal code of a color that applies to charts where a lack of data is highlighted. :param Sequence[str] min_max_gradients: The minimum and maximum hexadecimal codes that describe a color gradient. List of exactly 2 items. """ + ThemeConfigurationDataColorPalette._configure( + lambda key, value: pulumi.set(__self__, key, value), + colors=colors, + empty_fill_color=empty_fill_color, + min_max_gradients=min_max_gradients, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + colors: Optional[Sequence[str]] = None, + empty_fill_color: Optional[str] = None, + min_max_gradients: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if empty_fill_color is None and 'emptyFillColor' in kwargs: + empty_fill_color = kwargs['emptyFillColor'] + if min_max_gradients is None and 'minMaxGradients' in kwargs: + min_max_gradients = kwargs['minMaxGradients'] + if colors is not None: - pulumi.set(__self__, "colors", colors) + _setter("colors", colors) if empty_fill_color is not None: - pulumi.set(__self__, "empty_fill_color", empty_fill_color) + _setter("empty_fill_color", empty_fill_color) if min_max_gradients is not None: - pulumi.set(__self__, "min_max_gradients", min_max_gradients) + _setter("min_max_gradients", min_max_gradients) @property @pulumi.getter @@ -5278,10 +7325,25 @@ def __init__(__self__, *, :param 'ThemeConfigurationSheetTileArgs' tile: The display options for tiles. See tile. :param 'ThemeConfigurationSheetTileLayoutArgs' tile_layout: The layout options for tiles. See tile_layout. """ + ThemeConfigurationSheet._configure( + lambda key, value: pulumi.set(__self__, key, value), + tile=tile, + tile_layout=tile_layout, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tile: Optional['outputs.ThemeConfigurationSheetTile'] = None, + tile_layout: Optional['outputs.ThemeConfigurationSheetTileLayout'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tile_layout is None and 'tileLayout' in kwargs: + tile_layout = kwargs['tileLayout'] + if tile is not None: - pulumi.set(__self__, "tile", tile) + _setter("tile", tile) if tile_layout is not None: - pulumi.set(__self__, "tile_layout", tile_layout) + _setter("tile_layout", tile_layout) @property @pulumi.getter @@ -5307,8 +7369,19 @@ def __init__(__self__, *, """ :param 'ThemeConfigurationSheetTileBorderArgs' border: The border around a tile. See border. """ + ThemeConfigurationSheetTile._configure( + lambda key, value: pulumi.set(__self__, key, value), + border=border, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + border: Optional['outputs.ThemeConfigurationSheetTileBorder'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if border is not None: - pulumi.set(__self__, "border", border) + _setter("border", border) @property @pulumi.getter @@ -5326,8 +7399,19 @@ def __init__(__self__, *, """ :param bool show: The option to enable display of borders for visuals. """ + ThemeConfigurationSheetTileBorder._configure( + lambda key, value: pulumi.set(__self__, key, value), + show=show, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + show: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if show is not None: - pulumi.set(__self__, "show", show) + _setter("show", show) @property @pulumi.getter @@ -5347,10 +7431,23 @@ def __init__(__self__, *, :param 'ThemeConfigurationSheetTileLayoutGutterArgs' gutter: The gutter settings that apply between tiles. See gutter. :param 'ThemeConfigurationSheetTileLayoutMarginArgs' margin: The margin settings that apply around the outside edge of sheets. See margin. """ + ThemeConfigurationSheetTileLayout._configure( + lambda key, value: pulumi.set(__self__, key, value), + gutter=gutter, + margin=margin, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gutter: Optional['outputs.ThemeConfigurationSheetTileLayoutGutter'] = None, + margin: Optional['outputs.ThemeConfigurationSheetTileLayoutMargin'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gutter is not None: - pulumi.set(__self__, "gutter", gutter) + _setter("gutter", gutter) if margin is not None: - pulumi.set(__self__, "margin", margin) + _setter("margin", margin) @property @pulumi.getter @@ -5376,8 +7473,19 @@ def __init__(__self__, *, """ :param bool show: This Boolean value controls whether to display a gutter space between sheet tiles. """ + ThemeConfigurationSheetTileLayoutGutter._configure( + lambda key, value: pulumi.set(__self__, key, value), + show=show, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + show: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if show is not None: - pulumi.set(__self__, "show", show) + _setter("show", show) @property @pulumi.getter @@ -5395,8 +7503,19 @@ def __init__(__self__, *, """ :param bool show: This Boolean value controls whether to display sheet margins. """ + ThemeConfigurationSheetTileLayoutMargin._configure( + lambda key, value: pulumi.set(__self__, key, value), + show=show, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + show: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if show is not None: - pulumi.set(__self__, "show", show) + _setter("show", show) @property @pulumi.getter @@ -5431,8 +7550,21 @@ def __init__(__self__, *, """ :param Sequence['ThemeConfigurationTypographyFontFamilyArgs'] font_families: Determines the list of font families. Maximum number of 5 items. See font_families. """ + ThemeConfigurationTypography._configure( + lambda key, value: pulumi.set(__self__, key, value), + font_families=font_families, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + font_families: Optional[Sequence['outputs.ThemeConfigurationTypographyFontFamily']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if font_families is None and 'fontFamilies' in kwargs: + font_families = kwargs['fontFamilies'] + if font_families is not None: - pulumi.set(__self__, "font_families", font_families) + _setter("font_families", font_families) @property @pulumi.getter(name="fontFamilies") @@ -5467,8 +7599,21 @@ def __init__(__self__, *, """ :param str font_family: Font family name. """ + ThemeConfigurationTypographyFontFamily._configure( + lambda key, value: pulumi.set(__self__, key, value), + font_family=font_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + font_family: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if font_family is None and 'fontFamily' in kwargs: + font_family = kwargs['fontFamily'] + if font_family is not None: - pulumi.set(__self__, "font_family", font_family) + _setter("font_family", font_family) @property @pulumi.getter(name="fontFamily") @@ -5551,38 +7696,99 @@ def __init__(__self__, *, :param str warning: Color (hexadecimal) that applies to warning and informational messages. :param str warning_foreground: Color (hexadecimal) that applies to any text or other elements that appear over the warning color. """ + ThemeConfigurationUiColorPalette._configure( + lambda key, value: pulumi.set(__self__, key, value), + accent=accent, + accent_foreground=accent_foreground, + danger=danger, + danger_foreground=danger_foreground, + dimension=dimension, + dimension_foreground=dimension_foreground, + measure=measure, + measure_foreground=measure_foreground, + primary_background=primary_background, + primary_foreground=primary_foreground, + secondary_background=secondary_background, + secondary_foreground=secondary_foreground, + success=success, + success_foreground=success_foreground, + warning=warning, + warning_foreground=warning_foreground, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accent: Optional[str] = None, + accent_foreground: Optional[str] = None, + danger: Optional[str] = None, + danger_foreground: Optional[str] = None, + dimension: Optional[str] = None, + dimension_foreground: Optional[str] = None, + measure: Optional[str] = None, + measure_foreground: Optional[str] = None, + primary_background: Optional[str] = None, + primary_foreground: Optional[str] = None, + secondary_background: Optional[str] = None, + secondary_foreground: Optional[str] = None, + success: Optional[str] = None, + success_foreground: Optional[str] = None, + warning: Optional[str] = None, + warning_foreground: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accent_foreground is None and 'accentForeground' in kwargs: + accent_foreground = kwargs['accentForeground'] + if danger_foreground is None and 'dangerForeground' in kwargs: + danger_foreground = kwargs['dangerForeground'] + if dimension_foreground is None and 'dimensionForeground' in kwargs: + dimension_foreground = kwargs['dimensionForeground'] + if measure_foreground is None and 'measureForeground' in kwargs: + measure_foreground = kwargs['measureForeground'] + if primary_background is None and 'primaryBackground' in kwargs: + primary_background = kwargs['primaryBackground'] + if primary_foreground is None and 'primaryForeground' in kwargs: + primary_foreground = kwargs['primaryForeground'] + if secondary_background is None and 'secondaryBackground' in kwargs: + secondary_background = kwargs['secondaryBackground'] + if secondary_foreground is None and 'secondaryForeground' in kwargs: + secondary_foreground = kwargs['secondaryForeground'] + if success_foreground is None and 'successForeground' in kwargs: + success_foreground = kwargs['successForeground'] + if warning_foreground is None and 'warningForeground' in kwargs: + warning_foreground = kwargs['warningForeground'] + if accent is not None: - pulumi.set(__self__, "accent", accent) + _setter("accent", accent) if accent_foreground is not None: - pulumi.set(__self__, "accent_foreground", accent_foreground) + _setter("accent_foreground", accent_foreground) if danger is not None: - pulumi.set(__self__, "danger", danger) + _setter("danger", danger) if danger_foreground is not None: - pulumi.set(__self__, "danger_foreground", danger_foreground) + _setter("danger_foreground", danger_foreground) if dimension is not None: - pulumi.set(__self__, "dimension", dimension) + _setter("dimension", dimension) if dimension_foreground is not None: - pulumi.set(__self__, "dimension_foreground", dimension_foreground) + _setter("dimension_foreground", dimension_foreground) if measure is not None: - pulumi.set(__self__, "measure", measure) + _setter("measure", measure) if measure_foreground is not None: - pulumi.set(__self__, "measure_foreground", measure_foreground) + _setter("measure_foreground", measure_foreground) if primary_background is not None: - pulumi.set(__self__, "primary_background", primary_background) + _setter("primary_background", primary_background) if primary_foreground is not None: - pulumi.set(__self__, "primary_foreground", primary_foreground) + _setter("primary_foreground", primary_foreground) if secondary_background is not None: - pulumi.set(__self__, "secondary_background", secondary_background) + _setter("secondary_background", secondary_background) if secondary_foreground is not None: - pulumi.set(__self__, "secondary_foreground", secondary_foreground) + _setter("secondary_foreground", secondary_foreground) if success is not None: - pulumi.set(__self__, "success", success) + _setter("success", success) if success_foreground is not None: - pulumi.set(__self__, "success_foreground", success_foreground) + _setter("success_foreground", success_foreground) if warning is not None: - pulumi.set(__self__, "warning", warning) + _setter("warning", warning) if warning_foreground is not None: - pulumi.set(__self__, "warning_foreground", warning_foreground) + _setter("warning_foreground", warning_foreground) @property @pulumi.getter @@ -5722,8 +7928,25 @@ def __init__(__self__, *, :param Sequence[str] actions: List of IAM actions to grant or revoke permissions on. :param str principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + ThemePermission._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -5748,12 +7971,27 @@ def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, update: Optional[str] = None): + VpcConnectionTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -5775,7 +8013,22 @@ def update(self) -> Optional[str]: class GetDataSetColumnGroupResult(dict): def __init__(__self__, *, geo_spatial_column_groups: Sequence['outputs.GetDataSetColumnGroupGeoSpatialColumnGroupResult']): - pulumi.set(__self__, "geo_spatial_column_groups", geo_spatial_column_groups) + GetDataSetColumnGroupResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + geo_spatial_column_groups=geo_spatial_column_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + geo_spatial_column_groups: Optional[Sequence['outputs.GetDataSetColumnGroupGeoSpatialColumnGroupResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if geo_spatial_column_groups is None and 'geoSpatialColumnGroups' in kwargs: + geo_spatial_column_groups = kwargs['geoSpatialColumnGroups'] + if geo_spatial_column_groups is None: + raise TypeError("Missing 'geo_spatial_column_groups' argument") + + _setter("geo_spatial_column_groups", geo_spatial_column_groups) @property @pulumi.getter(name="geoSpatialColumnGroups") @@ -5789,9 +8042,32 @@ def __init__(__self__, *, columns: Sequence[str], country_code: str, name: str): - pulumi.set(__self__, "columns", columns) - pulumi.set(__self__, "country_code", country_code) - pulumi.set(__self__, "name", name) + GetDataSetColumnGroupGeoSpatialColumnGroupResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + country_code=country_code, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[Sequence[str]] = None, + country_code: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if country_code is None: + raise TypeError("Missing 'country_code' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("columns", columns) + _setter("country_code", country_code) + _setter("name", name) @property @pulumi.getter @@ -5814,8 +8090,27 @@ class GetDataSetColumnLevelPermissionRuleResult(dict): def __init__(__self__, *, column_names: Sequence[str], principals: Sequence[str]): - pulumi.set(__self__, "column_names", column_names) - pulumi.set(__self__, "principals", principals) + GetDataSetColumnLevelPermissionRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_names=column_names, + principals=principals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_names: Optional[Sequence[str]] = None, + principals: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_names is None and 'columnNames' in kwargs: + column_names = kwargs['columnNames'] + if column_names is None: + raise TypeError("Missing 'column_names' argument") + if principals is None: + raise TypeError("Missing 'principals' argument") + + _setter("column_names", column_names) + _setter("principals", principals) @property @pulumi.getter(name="columnNames") @@ -5833,8 +8128,29 @@ class GetDataSetDataSetUsageConfigurationResult(dict): def __init__(__self__, *, disable_use_as_direct_query_source: bool, disable_use_as_imported_source: bool): - pulumi.set(__self__, "disable_use_as_direct_query_source", disable_use_as_direct_query_source) - pulumi.set(__self__, "disable_use_as_imported_source", disable_use_as_imported_source) + GetDataSetDataSetUsageConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + disable_use_as_direct_query_source=disable_use_as_direct_query_source, + disable_use_as_imported_source=disable_use_as_imported_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disable_use_as_direct_query_source: Optional[bool] = None, + disable_use_as_imported_source: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disable_use_as_direct_query_source is None and 'disableUseAsDirectQuerySource' in kwargs: + disable_use_as_direct_query_source = kwargs['disableUseAsDirectQuerySource'] + if disable_use_as_direct_query_source is None: + raise TypeError("Missing 'disable_use_as_direct_query_source' argument") + if disable_use_as_imported_source is None and 'disableUseAsImportedSource' in kwargs: + disable_use_as_imported_source = kwargs['disableUseAsImportedSource'] + if disable_use_as_imported_source is None: + raise TypeError("Missing 'disable_use_as_imported_source' argument") + + _setter("disable_use_as_direct_query_source", disable_use_as_direct_query_source) + _setter("disable_use_as_imported_source", disable_use_as_imported_source) @property @pulumi.getter(name="disableUseAsDirectQuerySource") @@ -5853,9 +8169,32 @@ def __init__(__self__, *, columns: Sequence[str], description: str, field_folders_id: str): - pulumi.set(__self__, "columns", columns) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "field_folders_id", field_folders_id) + GetDataSetFieldFolderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + description=description, + field_folders_id=field_folders_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[Sequence[str]] = None, + description: Optional[str] = None, + field_folders_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if field_folders_id is None and 'fieldFoldersId' in kwargs: + field_folders_id = kwargs['fieldFoldersId'] + if field_folders_id is None: + raise TypeError("Missing 'field_folders_id' argument") + + _setter("columns", columns) + _setter("description", description) + _setter("field_folders_id", field_folders_id) @property @pulumi.getter @@ -5880,10 +8219,39 @@ def __init__(__self__, *, data_transforms: Sequence['outputs.GetDataSetLogicalTableMapDataTransformResult'], logical_table_map_id: str, sources: Sequence['outputs.GetDataSetLogicalTableMapSourceResult']): - pulumi.set(__self__, "alias", alias) - pulumi.set(__self__, "data_transforms", data_transforms) - pulumi.set(__self__, "logical_table_map_id", logical_table_map_id) - pulumi.set(__self__, "sources", sources) + GetDataSetLogicalTableMapResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + data_transforms=data_transforms, + logical_table_map_id=logical_table_map_id, + sources=sources, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[str] = None, + data_transforms: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformResult']] = None, + logical_table_map_id: Optional[str] = None, + sources: Optional[Sequence['outputs.GetDataSetLogicalTableMapSourceResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alias is None: + raise TypeError("Missing 'alias' argument") + if data_transforms is None and 'dataTransforms' in kwargs: + data_transforms = kwargs['dataTransforms'] + if data_transforms is None: + raise TypeError("Missing 'data_transforms' argument") + if logical_table_map_id is None and 'logicalTableMapId' in kwargs: + logical_table_map_id = kwargs['logicalTableMapId'] + if logical_table_map_id is None: + raise TypeError("Missing 'logical_table_map_id' argument") + if sources is None: + raise TypeError("Missing 'sources' argument") + + _setter("alias", alias) + _setter("data_transforms", data_transforms) + _setter("logical_table_map_id", logical_table_map_id) + _setter("sources", sources) @property @pulumi.getter @@ -5916,13 +8284,64 @@ def __init__(__self__, *, rename_column_operations: Sequence['outputs.GetDataSetLogicalTableMapDataTransformRenameColumnOperationResult'], tag_column_operations: Sequence['outputs.GetDataSetLogicalTableMapDataTransformTagColumnOperationResult'], untag_column_operations: Sequence['outputs.GetDataSetLogicalTableMapDataTransformUntagColumnOperationResult']): - pulumi.set(__self__, "cast_column_type_operations", cast_column_type_operations) - pulumi.set(__self__, "create_columns_operations", create_columns_operations) - pulumi.set(__self__, "filter_operations", filter_operations) - pulumi.set(__self__, "project_operations", project_operations) - pulumi.set(__self__, "rename_column_operations", rename_column_operations) - pulumi.set(__self__, "tag_column_operations", tag_column_operations) - pulumi.set(__self__, "untag_column_operations", untag_column_operations) + GetDataSetLogicalTableMapDataTransformResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + cast_column_type_operations=cast_column_type_operations, + create_columns_operations=create_columns_operations, + filter_operations=filter_operations, + project_operations=project_operations, + rename_column_operations=rename_column_operations, + tag_column_operations=tag_column_operations, + untag_column_operations=untag_column_operations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cast_column_type_operations: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformCastColumnTypeOperationResult']] = None, + create_columns_operations: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformCreateColumnsOperationResult']] = None, + filter_operations: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformFilterOperationResult']] = None, + project_operations: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformProjectOperationResult']] = None, + rename_column_operations: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformRenameColumnOperationResult']] = None, + tag_column_operations: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformTagColumnOperationResult']] = None, + untag_column_operations: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformUntagColumnOperationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cast_column_type_operations is None and 'castColumnTypeOperations' in kwargs: + cast_column_type_operations = kwargs['castColumnTypeOperations'] + if cast_column_type_operations is None: + raise TypeError("Missing 'cast_column_type_operations' argument") + if create_columns_operations is None and 'createColumnsOperations' in kwargs: + create_columns_operations = kwargs['createColumnsOperations'] + if create_columns_operations is None: + raise TypeError("Missing 'create_columns_operations' argument") + if filter_operations is None and 'filterOperations' in kwargs: + filter_operations = kwargs['filterOperations'] + if filter_operations is None: + raise TypeError("Missing 'filter_operations' argument") + if project_operations is None and 'projectOperations' in kwargs: + project_operations = kwargs['projectOperations'] + if project_operations is None: + raise TypeError("Missing 'project_operations' argument") + if rename_column_operations is None and 'renameColumnOperations' in kwargs: + rename_column_operations = kwargs['renameColumnOperations'] + if rename_column_operations is None: + raise TypeError("Missing 'rename_column_operations' argument") + if tag_column_operations is None and 'tagColumnOperations' in kwargs: + tag_column_operations = kwargs['tagColumnOperations'] + if tag_column_operations is None: + raise TypeError("Missing 'tag_column_operations' argument") + if untag_column_operations is None and 'untagColumnOperations' in kwargs: + untag_column_operations = kwargs['untagColumnOperations'] + if untag_column_operations is None: + raise TypeError("Missing 'untag_column_operations' argument") + + _setter("cast_column_type_operations", cast_column_type_operations) + _setter("create_columns_operations", create_columns_operations) + _setter("filter_operations", filter_operations) + _setter("project_operations", project_operations) + _setter("rename_column_operations", rename_column_operations) + _setter("tag_column_operations", tag_column_operations) + _setter("untag_column_operations", untag_column_operations) @property @pulumi.getter(name="castColumnTypeOperations") @@ -5966,9 +8385,34 @@ def __init__(__self__, *, column_name: str, format: str, new_column_type: str): - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "format", format) - pulumi.set(__self__, "new_column_type", new_column_type) + GetDataSetLogicalTableMapDataTransformCastColumnTypeOperationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + format=format, + new_column_type=new_column_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + format: Optional[str] = None, + new_column_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if new_column_type is None and 'newColumnType' in kwargs: + new_column_type = kwargs['newColumnType'] + if new_column_type is None: + raise TypeError("Missing 'new_column_type' argument") + + _setter("column_name", column_name) + _setter("format", format) + _setter("new_column_type", new_column_type) @property @pulumi.getter(name="columnName") @@ -5990,7 +8434,20 @@ def new_column_type(self) -> str: class GetDataSetLogicalTableMapDataTransformCreateColumnsOperationResult(dict): def __init__(__self__, *, columns: Sequence['outputs.GetDataSetLogicalTableMapDataTransformCreateColumnsOperationColumnResult']): - pulumi.set(__self__, "columns", columns) + GetDataSetLogicalTableMapDataTransformCreateColumnsOperationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformCreateColumnsOperationColumnResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + + _setter("columns", columns) @property @pulumi.getter @@ -6004,9 +8461,34 @@ def __init__(__self__, *, column_id: str, column_name: str, expression: str): - pulumi.set(__self__, "column_id", column_id) - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "expression", expression) + GetDataSetLogicalTableMapDataTransformCreateColumnsOperationColumnResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_id=column_id, + column_name=column_name, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_id: Optional[str] = None, + column_name: Optional[str] = None, + expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_id is None and 'columnId' in kwargs: + column_id = kwargs['columnId'] + if column_id is None: + raise TypeError("Missing 'column_id' argument") + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if expression is None: + raise TypeError("Missing 'expression' argument") + + _setter("column_id", column_id) + _setter("column_name", column_name) + _setter("expression", expression) @property @pulumi.getter(name="columnId") @@ -6028,7 +8510,22 @@ def expression(self) -> str: class GetDataSetLogicalTableMapDataTransformFilterOperationResult(dict): def __init__(__self__, *, condition_expression: str): - pulumi.set(__self__, "condition_expression", condition_expression) + GetDataSetLogicalTableMapDataTransformFilterOperationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + condition_expression=condition_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + condition_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if condition_expression is None and 'conditionExpression' in kwargs: + condition_expression = kwargs['conditionExpression'] + if condition_expression is None: + raise TypeError("Missing 'condition_expression' argument") + + _setter("condition_expression", condition_expression) @property @pulumi.getter(name="conditionExpression") @@ -6040,7 +8537,22 @@ def condition_expression(self) -> str: class GetDataSetLogicalTableMapDataTransformProjectOperationResult(dict): def __init__(__self__, *, projected_columns: Sequence[str]): - pulumi.set(__self__, "projected_columns", projected_columns) + GetDataSetLogicalTableMapDataTransformProjectOperationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + projected_columns=projected_columns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + projected_columns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if projected_columns is None and 'projectedColumns' in kwargs: + projected_columns = kwargs['projectedColumns'] + if projected_columns is None: + raise TypeError("Missing 'projected_columns' argument") + + _setter("projected_columns", projected_columns) @property @pulumi.getter(name="projectedColumns") @@ -6053,8 +8565,29 @@ class GetDataSetLogicalTableMapDataTransformRenameColumnOperationResult(dict): def __init__(__self__, *, column_name: str, new_column_name: str): - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "new_column_name", new_column_name) + GetDataSetLogicalTableMapDataTransformRenameColumnOperationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + new_column_name=new_column_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + new_column_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if new_column_name is None and 'newColumnName' in kwargs: + new_column_name = kwargs['newColumnName'] + if new_column_name is None: + raise TypeError("Missing 'new_column_name' argument") + + _setter("column_name", column_name) + _setter("new_column_name", new_column_name) @property @pulumi.getter(name="columnName") @@ -6072,8 +8605,27 @@ class GetDataSetLogicalTableMapDataTransformTagColumnOperationResult(dict): def __init__(__self__, *, column_name: str, tags: Sequence['outputs.GetDataSetLogicalTableMapDataTransformTagColumnOperationTagResult']): - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "tags", tags) + GetDataSetLogicalTableMapDataTransformTagColumnOperationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + tags: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformTagColumnOperationTagResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("column_name", column_name) + _setter("tags", tags) @property @pulumi.getter(name="columnName") @@ -6091,8 +8643,29 @@ class GetDataSetLogicalTableMapDataTransformTagColumnOperationTagResult(dict): def __init__(__self__, *, column_descriptions: Sequence['outputs.GetDataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescriptionResult'], column_geographic_role: str): - pulumi.set(__self__, "column_descriptions", column_descriptions) - pulumi.set(__self__, "column_geographic_role", column_geographic_role) + GetDataSetLogicalTableMapDataTransformTagColumnOperationTagResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_descriptions=column_descriptions, + column_geographic_role=column_geographic_role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_descriptions: Optional[Sequence['outputs.GetDataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescriptionResult']] = None, + column_geographic_role: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_descriptions is None and 'columnDescriptions' in kwargs: + column_descriptions = kwargs['columnDescriptions'] + if column_descriptions is None: + raise TypeError("Missing 'column_descriptions' argument") + if column_geographic_role is None and 'columnGeographicRole' in kwargs: + column_geographic_role = kwargs['columnGeographicRole'] + if column_geographic_role is None: + raise TypeError("Missing 'column_geographic_role' argument") + + _setter("column_descriptions", column_descriptions) + _setter("column_geographic_role", column_geographic_role) @property @pulumi.getter(name="columnDescriptions") @@ -6109,7 +8682,20 @@ def column_geographic_role(self) -> str: class GetDataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescriptionResult(dict): def __init__(__self__, *, text: str): - pulumi.set(__self__, "text", text) + GetDataSetLogicalTableMapDataTransformTagColumnOperationTagColumnDescriptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text is None: + raise TypeError("Missing 'text' argument") + + _setter("text", text) @property @pulumi.getter @@ -6122,8 +8708,29 @@ class GetDataSetLogicalTableMapDataTransformUntagColumnOperationResult(dict): def __init__(__self__, *, column_name: str, tag_names: Sequence[str]): - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "tag_names", tag_names) + GetDataSetLogicalTableMapDataTransformUntagColumnOperationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + tag_names=tag_names, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + tag_names: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if tag_names is None and 'tagNames' in kwargs: + tag_names = kwargs['tagNames'] + if tag_names is None: + raise TypeError("Missing 'tag_names' argument") + + _setter("column_name", column_name) + _setter("tag_names", tag_names) @property @pulumi.getter(name="columnName") @@ -6142,9 +8749,36 @@ def __init__(__self__, *, data_set_arn: str, join_instructions: Sequence['outputs.GetDataSetLogicalTableMapSourceJoinInstructionResult'], physical_table_id: str): - pulumi.set(__self__, "data_set_arn", data_set_arn) - pulumi.set(__self__, "join_instructions", join_instructions) - pulumi.set(__self__, "physical_table_id", physical_table_id) + GetDataSetLogicalTableMapSourceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_arn=data_set_arn, + join_instructions=join_instructions, + physical_table_id=physical_table_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_arn: Optional[str] = None, + join_instructions: Optional[Sequence['outputs.GetDataSetLogicalTableMapSourceJoinInstructionResult']] = None, + physical_table_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_arn is None and 'dataSetArn' in kwargs: + data_set_arn = kwargs['dataSetArn'] + if data_set_arn is None: + raise TypeError("Missing 'data_set_arn' argument") + if join_instructions is None and 'joinInstructions' in kwargs: + join_instructions = kwargs['joinInstructions'] + if join_instructions is None: + raise TypeError("Missing 'join_instructions' argument") + if physical_table_id is None and 'physicalTableId' in kwargs: + physical_table_id = kwargs['physicalTableId'] + if physical_table_id is None: + raise TypeError("Missing 'physical_table_id' argument") + + _setter("data_set_arn", data_set_arn) + _setter("join_instructions", join_instructions) + _setter("physical_table_id", physical_table_id) @property @pulumi.getter(name="dataSetArn") @@ -6171,12 +8805,55 @@ def __init__(__self__, *, right_join_key_properties: Sequence['outputs.GetDataSetLogicalTableMapSourceJoinInstructionRightJoinKeyPropertyResult'], right_operand: str, type: str): - pulumi.set(__self__, "left_join_key_properties", left_join_key_properties) - pulumi.set(__self__, "left_operand", left_operand) - pulumi.set(__self__, "on_clause", on_clause) - pulumi.set(__self__, "right_join_key_properties", right_join_key_properties) - pulumi.set(__self__, "right_operand", right_operand) - pulumi.set(__self__, "type", type) + GetDataSetLogicalTableMapSourceJoinInstructionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + left_join_key_properties=left_join_key_properties, + left_operand=left_operand, + on_clause=on_clause, + right_join_key_properties=right_join_key_properties, + right_operand=right_operand, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + left_join_key_properties: Optional[Sequence['outputs.GetDataSetLogicalTableMapSourceJoinInstructionLeftJoinKeyPropertyResult']] = None, + left_operand: Optional[str] = None, + on_clause: Optional[str] = None, + right_join_key_properties: Optional[Sequence['outputs.GetDataSetLogicalTableMapSourceJoinInstructionRightJoinKeyPropertyResult']] = None, + right_operand: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if left_join_key_properties is None and 'leftJoinKeyProperties' in kwargs: + left_join_key_properties = kwargs['leftJoinKeyProperties'] + if left_join_key_properties is None: + raise TypeError("Missing 'left_join_key_properties' argument") + if left_operand is None and 'leftOperand' in kwargs: + left_operand = kwargs['leftOperand'] + if left_operand is None: + raise TypeError("Missing 'left_operand' argument") + if on_clause is None and 'onClause' in kwargs: + on_clause = kwargs['onClause'] + if on_clause is None: + raise TypeError("Missing 'on_clause' argument") + if right_join_key_properties is None and 'rightJoinKeyProperties' in kwargs: + right_join_key_properties = kwargs['rightJoinKeyProperties'] + if right_join_key_properties is None: + raise TypeError("Missing 'right_join_key_properties' argument") + if right_operand is None and 'rightOperand' in kwargs: + right_operand = kwargs['rightOperand'] + if right_operand is None: + raise TypeError("Missing 'right_operand' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("left_join_key_properties", left_join_key_properties) + _setter("left_operand", left_operand) + _setter("on_clause", on_clause) + _setter("right_join_key_properties", right_join_key_properties) + _setter("right_operand", right_operand) + _setter("type", type) @property @pulumi.getter(name="leftJoinKeyProperties") @@ -6213,7 +8890,22 @@ def type(self) -> str: class GetDataSetLogicalTableMapSourceJoinInstructionLeftJoinKeyPropertyResult(dict): def __init__(__self__, *, unique_key: bool): - pulumi.set(__self__, "unique_key", unique_key) + GetDataSetLogicalTableMapSourceJoinInstructionLeftJoinKeyPropertyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unique_key=unique_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unique_key: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unique_key is None and 'uniqueKey' in kwargs: + unique_key = kwargs['uniqueKey'] + if unique_key is None: + raise TypeError("Missing 'unique_key' argument") + + _setter("unique_key", unique_key) @property @pulumi.getter(name="uniqueKey") @@ -6225,7 +8917,22 @@ def unique_key(self) -> bool: class GetDataSetLogicalTableMapSourceJoinInstructionRightJoinKeyPropertyResult(dict): def __init__(__self__, *, unique_key: bool): - pulumi.set(__self__, "unique_key", unique_key) + GetDataSetLogicalTableMapSourceJoinInstructionRightJoinKeyPropertyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + unique_key=unique_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unique_key: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unique_key is None and 'uniqueKey' in kwargs: + unique_key = kwargs['uniqueKey'] + if unique_key is None: + raise TypeError("Missing 'unique_key' argument") + + _setter("unique_key", unique_key) @property @pulumi.getter(name="uniqueKey") @@ -6238,8 +8945,25 @@ class GetDataSetPermissionResult(dict): def __init__(__self__, *, actions: Sequence[str], principal: str): - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + GetDataSetPermissionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter @@ -6259,10 +8983,43 @@ def __init__(__self__, *, physical_table_map_id: str, relational_tables: Sequence['outputs.GetDataSetPhysicalTableMapRelationalTableResult'], s3_sources: Sequence['outputs.GetDataSetPhysicalTableMapS3SourceResult']): - pulumi.set(__self__, "custom_sqls", custom_sqls) - pulumi.set(__self__, "physical_table_map_id", physical_table_map_id) - pulumi.set(__self__, "relational_tables", relational_tables) - pulumi.set(__self__, "s3_sources", s3_sources) + GetDataSetPhysicalTableMapResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_sqls=custom_sqls, + physical_table_map_id=physical_table_map_id, + relational_tables=relational_tables, + s3_sources=s3_sources, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_sqls: Optional[Sequence['outputs.GetDataSetPhysicalTableMapCustomSqlResult']] = None, + physical_table_map_id: Optional[str] = None, + relational_tables: Optional[Sequence['outputs.GetDataSetPhysicalTableMapRelationalTableResult']] = None, + s3_sources: Optional[Sequence['outputs.GetDataSetPhysicalTableMapS3SourceResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_sqls is None and 'customSqls' in kwargs: + custom_sqls = kwargs['customSqls'] + if custom_sqls is None: + raise TypeError("Missing 'custom_sqls' argument") + if physical_table_map_id is None and 'physicalTableMapId' in kwargs: + physical_table_map_id = kwargs['physicalTableMapId'] + if physical_table_map_id is None: + raise TypeError("Missing 'physical_table_map_id' argument") + if relational_tables is None and 'relationalTables' in kwargs: + relational_tables = kwargs['relationalTables'] + if relational_tables is None: + raise TypeError("Missing 'relational_tables' argument") + if s3_sources is None and 's3Sources' in kwargs: + s3_sources = kwargs['s3Sources'] + if s3_sources is None: + raise TypeError("Missing 's3_sources' argument") + + _setter("custom_sqls", custom_sqls) + _setter("physical_table_map_id", physical_table_map_id) + _setter("relational_tables", relational_tables) + _setter("s3_sources", s3_sources) @property @pulumi.getter(name="customSqls") @@ -6292,10 +9049,39 @@ def __init__(__self__, *, data_source_arn: str, name: str, sql_query: str): - pulumi.set(__self__, "columns", columns) - pulumi.set(__self__, "data_source_arn", data_source_arn) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "sql_query", sql_query) + GetDataSetPhysicalTableMapCustomSqlResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + columns=columns, + data_source_arn=data_source_arn, + name=name, + sql_query=sql_query, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + columns: Optional[Sequence['outputs.GetDataSetPhysicalTableMapCustomSqlColumnResult']] = None, + data_source_arn: Optional[str] = None, + name: Optional[str] = None, + sql_query: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if columns is None: + raise TypeError("Missing 'columns' argument") + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_arn is None: + raise TypeError("Missing 'data_source_arn' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if sql_query is None and 'sqlQuery' in kwargs: + sql_query = kwargs['sqlQuery'] + if sql_query is None: + raise TypeError("Missing 'sql_query' argument") + + _setter("columns", columns) + _setter("data_source_arn", data_source_arn) + _setter("name", name) + _setter("sql_query", sql_query) @property @pulumi.getter @@ -6323,8 +9109,25 @@ class GetDataSetPhysicalTableMapCustomSqlColumnResult(dict): def __init__(__self__, *, name: str, type: str): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + GetDataSetPhysicalTableMapCustomSqlColumnResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -6345,11 +9148,44 @@ def __init__(__self__, *, input_columns: Sequence['outputs.GetDataSetPhysicalTableMapRelationalTableInputColumnResult'], name: str, schema: str): - pulumi.set(__self__, "catalog", catalog) - pulumi.set(__self__, "data_source_arn", data_source_arn) - pulumi.set(__self__, "input_columns", input_columns) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "schema", schema) + GetDataSetPhysicalTableMapRelationalTableResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog=catalog, + data_source_arn=data_source_arn, + input_columns=input_columns, + name=name, + schema=schema, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog: Optional[str] = None, + data_source_arn: Optional[str] = None, + input_columns: Optional[Sequence['outputs.GetDataSetPhysicalTableMapRelationalTableInputColumnResult']] = None, + name: Optional[str] = None, + schema: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if catalog is None: + raise TypeError("Missing 'catalog' argument") + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_arn is None: + raise TypeError("Missing 'data_source_arn' argument") + if input_columns is None and 'inputColumns' in kwargs: + input_columns = kwargs['inputColumns'] + if input_columns is None: + raise TypeError("Missing 'input_columns' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if schema is None: + raise TypeError("Missing 'schema' argument") + + _setter("catalog", catalog) + _setter("data_source_arn", data_source_arn) + _setter("input_columns", input_columns) + _setter("name", name) + _setter("schema", schema) @property @pulumi.getter @@ -6382,8 +9218,25 @@ class GetDataSetPhysicalTableMapRelationalTableInputColumnResult(dict): def __init__(__self__, *, name: str, type: str): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + GetDataSetPhysicalTableMapRelationalTableInputColumnResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -6402,9 +9255,36 @@ def __init__(__self__, *, data_source_arn: str, input_columns: Sequence['outputs.GetDataSetPhysicalTableMapS3SourceInputColumnResult'], upload_settings: Sequence['outputs.GetDataSetPhysicalTableMapS3SourceUploadSettingResult']): - pulumi.set(__self__, "data_source_arn", data_source_arn) - pulumi.set(__self__, "input_columns", input_columns) - pulumi.set(__self__, "upload_settings", upload_settings) + GetDataSetPhysicalTableMapS3SourceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_source_arn=data_source_arn, + input_columns=input_columns, + upload_settings=upload_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_source_arn: Optional[str] = None, + input_columns: Optional[Sequence['outputs.GetDataSetPhysicalTableMapS3SourceInputColumnResult']] = None, + upload_settings: Optional[Sequence['outputs.GetDataSetPhysicalTableMapS3SourceUploadSettingResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_source_arn is None and 'dataSourceArn' in kwargs: + data_source_arn = kwargs['dataSourceArn'] + if data_source_arn is None: + raise TypeError("Missing 'data_source_arn' argument") + if input_columns is None and 'inputColumns' in kwargs: + input_columns = kwargs['inputColumns'] + if input_columns is None: + raise TypeError("Missing 'input_columns' argument") + if upload_settings is None and 'uploadSettings' in kwargs: + upload_settings = kwargs['uploadSettings'] + if upload_settings is None: + raise TypeError("Missing 'upload_settings' argument") + + _setter("data_source_arn", data_source_arn) + _setter("input_columns", input_columns) + _setter("upload_settings", upload_settings) @property @pulumi.getter(name="dataSourceArn") @@ -6427,8 +9307,25 @@ class GetDataSetPhysicalTableMapS3SourceInputColumnResult(dict): def __init__(__self__, *, name: str, type: str): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + GetDataSetPhysicalTableMapS3SourceInputColumnResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("name", name) + _setter("type", type) @property @pulumi.getter @@ -6449,11 +9346,46 @@ def __init__(__self__, *, format: str, start_from_row: int, text_qualifier: str): - pulumi.set(__self__, "contains_header", contains_header) - pulumi.set(__self__, "delimiter", delimiter) - pulumi.set(__self__, "format", format) - pulumi.set(__self__, "start_from_row", start_from_row) - pulumi.set(__self__, "text_qualifier", text_qualifier) + GetDataSetPhysicalTableMapS3SourceUploadSettingResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + contains_header=contains_header, + delimiter=delimiter, + format=format, + start_from_row=start_from_row, + text_qualifier=text_qualifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contains_header: Optional[bool] = None, + delimiter: Optional[str] = None, + format: Optional[str] = None, + start_from_row: Optional[int] = None, + text_qualifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contains_header is None and 'containsHeader' in kwargs: + contains_header = kwargs['containsHeader'] + if contains_header is None: + raise TypeError("Missing 'contains_header' argument") + if delimiter is None: + raise TypeError("Missing 'delimiter' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if start_from_row is None and 'startFromRow' in kwargs: + start_from_row = kwargs['startFromRow'] + if start_from_row is None: + raise TypeError("Missing 'start_from_row' argument") + if text_qualifier is None and 'textQualifier' in kwargs: + text_qualifier = kwargs['textQualifier'] + if text_qualifier is None: + raise TypeError("Missing 'text_qualifier' argument") + + _setter("contains_header", contains_header) + _setter("delimiter", delimiter) + _setter("format", format) + _setter("start_from_row", start_from_row) + _setter("text_qualifier", text_qualifier) @property @pulumi.getter(name="containsHeader") @@ -6489,11 +9421,44 @@ def __init__(__self__, *, namespace: str, permission_policy: str, status: str): - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "format_version", format_version) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "permission_policy", permission_policy) - pulumi.set(__self__, "status", status) + GetDataSetRowLevelPermissionDataSetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + format_version=format_version, + namespace=namespace, + permission_policy=permission_policy, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + format_version: Optional[str] = None, + namespace: Optional[str] = None, + permission_policy: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if format_version is None and 'formatVersion' in kwargs: + format_version = kwargs['formatVersion'] + if format_version is None: + raise TypeError("Missing 'format_version' argument") + if namespace is None: + raise TypeError("Missing 'namespace' argument") + if permission_policy is None and 'permissionPolicy' in kwargs: + permission_policy = kwargs['permissionPolicy'] + if permission_policy is None: + raise TypeError("Missing 'permission_policy' argument") + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("arn", arn) + _setter("format_version", format_version) + _setter("namespace", namespace) + _setter("permission_policy", permission_policy) + _setter("status", status) @property @pulumi.getter @@ -6526,8 +9491,27 @@ class GetDataSetRowLevelPermissionTagConfigurationResult(dict): def __init__(__self__, *, status: str, tag_rules: Sequence['outputs.GetDataSetRowLevelPermissionTagConfigurationTagRuleResult']): - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "tag_rules", tag_rules) + GetDataSetRowLevelPermissionTagConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + tag_rules=tag_rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + tag_rules: Optional[Sequence['outputs.GetDataSetRowLevelPermissionTagConfigurationTagRuleResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + if tag_rules is None and 'tagRules' in kwargs: + tag_rules = kwargs['tagRules'] + if tag_rules is None: + raise TypeError("Missing 'tag_rules' argument") + + _setter("status", status) + _setter("tag_rules", tag_rules) @property @pulumi.getter @@ -6547,10 +9531,43 @@ def __init__(__self__, *, match_all_value: str, tag_key: str, tag_multi_value_delimiter: str): - pulumi.set(__self__, "column_name", column_name) - pulumi.set(__self__, "match_all_value", match_all_value) - pulumi.set(__self__, "tag_key", tag_key) - pulumi.set(__self__, "tag_multi_value_delimiter", tag_multi_value_delimiter) + GetDataSetRowLevelPermissionTagConfigurationTagRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + column_name=column_name, + match_all_value=match_all_value, + tag_key=tag_key, + tag_multi_value_delimiter=tag_multi_value_delimiter, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + column_name: Optional[str] = None, + match_all_value: Optional[str] = None, + tag_key: Optional[str] = None, + tag_multi_value_delimiter: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if column_name is None and 'columnName' in kwargs: + column_name = kwargs['columnName'] + if column_name is None: + raise TypeError("Missing 'column_name' argument") + if match_all_value is None and 'matchAllValue' in kwargs: + match_all_value = kwargs['matchAllValue'] + if match_all_value is None: + raise TypeError("Missing 'match_all_value' argument") + if tag_key is None and 'tagKey' in kwargs: + tag_key = kwargs['tagKey'] + if tag_key is None: + raise TypeError("Missing 'tag_key' argument") + if tag_multi_value_delimiter is None and 'tagMultiValueDelimiter' in kwargs: + tag_multi_value_delimiter = kwargs['tagMultiValueDelimiter'] + if tag_multi_value_delimiter is None: + raise TypeError("Missing 'tag_multi_value_delimiter' argument") + + _setter("column_name", column_name) + _setter("match_all_value", match_all_value) + _setter("tag_key", tag_key) + _setter("tag_multi_value_delimiter", tag_multi_value_delimiter) @property @pulumi.getter(name="columnName") @@ -6586,10 +9603,39 @@ def __init__(__self__, *, :param Sequence['GetThemeConfigurationTypographyArgs'] typographies: Determines the typography options. See typography. :param Sequence['GetThemeConfigurationUiColorPaletteArgs'] ui_color_palettes: Color properties that apply to the UI and to charts, excluding the colors that apply to data. See ui_color_palette. """ - pulumi.set(__self__, "data_color_palettes", data_color_palettes) - pulumi.set(__self__, "sheets", sheets) - pulumi.set(__self__, "typographies", typographies) - pulumi.set(__self__, "ui_color_palettes", ui_color_palettes) + GetThemeConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_color_palettes=data_color_palettes, + sheets=sheets, + typographies=typographies, + ui_color_palettes=ui_color_palettes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_color_palettes: Optional[Sequence['outputs.GetThemeConfigurationDataColorPaletteResult']] = None, + sheets: Optional[Sequence['outputs.GetThemeConfigurationSheetResult']] = None, + typographies: Optional[Sequence['outputs.GetThemeConfigurationTypographyResult']] = None, + ui_color_palettes: Optional[Sequence['outputs.GetThemeConfigurationUiColorPaletteResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_color_palettes is None and 'dataColorPalettes' in kwargs: + data_color_palettes = kwargs['dataColorPalettes'] + if data_color_palettes is None: + raise TypeError("Missing 'data_color_palettes' argument") + if sheets is None: + raise TypeError("Missing 'sheets' argument") + if typographies is None: + raise TypeError("Missing 'typographies' argument") + if ui_color_palettes is None and 'uiColorPalettes' in kwargs: + ui_color_palettes = kwargs['uiColorPalettes'] + if ui_color_palettes is None: + raise TypeError("Missing 'ui_color_palettes' argument") + + _setter("data_color_palettes", data_color_palettes) + _setter("sheets", sheets) + _setter("typographies", typographies) + _setter("ui_color_palettes", ui_color_palettes) @property @pulumi.getter(name="dataColorPalettes") @@ -6635,9 +9681,34 @@ def __init__(__self__, *, :param str empty_fill_color: The hexadecimal code of a color that applies to charts where a lack of data is highlighted. :param Sequence[str] min_max_gradients: The minimum and maximum hexadecimal codes that describe a color gradient. List of exactly 2 items. """ - pulumi.set(__self__, "colors", colors) - pulumi.set(__self__, "empty_fill_color", empty_fill_color) - pulumi.set(__self__, "min_max_gradients", min_max_gradients) + GetThemeConfigurationDataColorPaletteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + colors=colors, + empty_fill_color=empty_fill_color, + min_max_gradients=min_max_gradients, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + colors: Optional[Sequence[str]] = None, + empty_fill_color: Optional[str] = None, + min_max_gradients: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if colors is None: + raise TypeError("Missing 'colors' argument") + if empty_fill_color is None and 'emptyFillColor' in kwargs: + empty_fill_color = kwargs['emptyFillColor'] + if empty_fill_color is None: + raise TypeError("Missing 'empty_fill_color' argument") + if min_max_gradients is None and 'minMaxGradients' in kwargs: + min_max_gradients = kwargs['minMaxGradients'] + if min_max_gradients is None: + raise TypeError("Missing 'min_max_gradients' argument") + + _setter("colors", colors) + _setter("empty_fill_color", empty_fill_color) + _setter("min_max_gradients", min_max_gradients) @property @pulumi.getter @@ -6673,8 +9744,27 @@ def __init__(__self__, *, :param Sequence['GetThemeConfigurationSheetTileLayoutArgs'] tile_layouts: The layout options for tiles. See tile_layout. :param Sequence['GetThemeConfigurationSheetTileArgs'] tiles: The display options for tiles. See tile. """ - pulumi.set(__self__, "tile_layouts", tile_layouts) - pulumi.set(__self__, "tiles", tiles) + GetThemeConfigurationSheetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + tile_layouts=tile_layouts, + tiles=tiles, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tile_layouts: Optional[Sequence['outputs.GetThemeConfigurationSheetTileLayoutResult']] = None, + tiles: Optional[Sequence['outputs.GetThemeConfigurationSheetTileResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tile_layouts is None and 'tileLayouts' in kwargs: + tile_layouts = kwargs['tileLayouts'] + if tile_layouts is None: + raise TypeError("Missing 'tile_layouts' argument") + if tiles is None: + raise TypeError("Missing 'tiles' argument") + + _setter("tile_layouts", tile_layouts) + _setter("tiles", tiles) @property @pulumi.getter(name="tileLayouts") @@ -6700,7 +9790,20 @@ def __init__(__self__, *, """ :param Sequence['GetThemeConfigurationSheetTileBorderArgs'] borders: The border around a tile. See border. """ - pulumi.set(__self__, "borders", borders) + GetThemeConfigurationSheetTileResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + borders=borders, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + borders: Optional[Sequence['outputs.GetThemeConfigurationSheetTileBorderResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if borders is None: + raise TypeError("Missing 'borders' argument") + + _setter("borders", borders) @property @pulumi.getter @@ -6718,7 +9821,20 @@ def __init__(__self__, *, """ :param bool show: This Boolean value controls whether to display sheet margins. """ - pulumi.set(__self__, "show", show) + GetThemeConfigurationSheetTileBorderResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + show=show, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + show: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if show is None: + raise TypeError("Missing 'show' argument") + + _setter("show", show) @property @pulumi.getter @@ -6738,8 +9854,25 @@ def __init__(__self__, *, :param Sequence['GetThemeConfigurationSheetTileLayoutGutterArgs'] gutters: The gutter settings that apply between tiles. See gutter. :param Sequence['GetThemeConfigurationSheetTileLayoutMarginArgs'] margins: The margin settings that apply around the outside edge of sheets. See margin. """ - pulumi.set(__self__, "gutters", gutters) - pulumi.set(__self__, "margins", margins) + GetThemeConfigurationSheetTileLayoutResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + gutters=gutters, + margins=margins, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gutters: Optional[Sequence['outputs.GetThemeConfigurationSheetTileLayoutGutterResult']] = None, + margins: Optional[Sequence['outputs.GetThemeConfigurationSheetTileLayoutMarginResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gutters is None: + raise TypeError("Missing 'gutters' argument") + if margins is None: + raise TypeError("Missing 'margins' argument") + + _setter("gutters", gutters) + _setter("margins", margins) @property @pulumi.getter @@ -6765,7 +9898,20 @@ def __init__(__self__, *, """ :param bool show: This Boolean value controls whether to display sheet margins. """ - pulumi.set(__self__, "show", show) + GetThemeConfigurationSheetTileLayoutGutterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + show=show, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + show: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if show is None: + raise TypeError("Missing 'show' argument") + + _setter("show", show) @property @pulumi.getter @@ -6783,7 +9929,20 @@ def __init__(__self__, *, """ :param bool show: This Boolean value controls whether to display sheet margins. """ - pulumi.set(__self__, "show", show) + GetThemeConfigurationSheetTileLayoutMarginResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + show=show, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + show: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if show is None: + raise TypeError("Missing 'show' argument") + + _setter("show", show) @property @pulumi.getter @@ -6801,7 +9960,22 @@ def __init__(__self__, *, """ :param Sequence['GetThemeConfigurationTypographyFontFamilyArgs'] font_families: Determines the list of font families. Maximum number of 5 items. See font_families. """ - pulumi.set(__self__, "font_families", font_families) + GetThemeConfigurationTypographyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + font_families=font_families, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + font_families: Optional[Sequence['outputs.GetThemeConfigurationTypographyFontFamilyResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if font_families is None and 'fontFamilies' in kwargs: + font_families = kwargs['fontFamilies'] + if font_families is None: + raise TypeError("Missing 'font_families' argument") + + _setter("font_families", font_families) @property @pulumi.getter(name="fontFamilies") @@ -6819,7 +9993,22 @@ def __init__(__self__, *, """ :param str font_family: Font family name. """ - pulumi.set(__self__, "font_family", font_family) + GetThemeConfigurationTypographyFontFamilyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + font_family=font_family, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + font_family: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if font_family is None and 'fontFamily' in kwargs: + font_family = kwargs['fontFamily'] + if font_family is None: + raise TypeError("Missing 'font_family' argument") + + _setter("font_family", font_family) @property @pulumi.getter(name="fontFamily") @@ -6867,22 +10056,115 @@ def __init__(__self__, *, :param str warning: Color (hexadecimal) that applies to warning and informational messages. :param str warning_foreground: Color (hexadecimal) that applies to any text or other elements that appear over the warning color. """ - pulumi.set(__self__, "accent", accent) - pulumi.set(__self__, "accent_foreground", accent_foreground) - pulumi.set(__self__, "danger", danger) - pulumi.set(__self__, "danger_foreground", danger_foreground) - pulumi.set(__self__, "dimension", dimension) - pulumi.set(__self__, "dimension_foreground", dimension_foreground) - pulumi.set(__self__, "measure", measure) - pulumi.set(__self__, "measure_foreground", measure_foreground) - pulumi.set(__self__, "primary_background", primary_background) - pulumi.set(__self__, "primary_foreground", primary_foreground) - pulumi.set(__self__, "secondary_background", secondary_background) - pulumi.set(__self__, "secondary_foreground", secondary_foreground) - pulumi.set(__self__, "success", success) - pulumi.set(__self__, "success_foreground", success_foreground) - pulumi.set(__self__, "warning", warning) - pulumi.set(__self__, "warning_foreground", warning_foreground) + GetThemeConfigurationUiColorPaletteResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + accent=accent, + accent_foreground=accent_foreground, + danger=danger, + danger_foreground=danger_foreground, + dimension=dimension, + dimension_foreground=dimension_foreground, + measure=measure, + measure_foreground=measure_foreground, + primary_background=primary_background, + primary_foreground=primary_foreground, + secondary_background=secondary_background, + secondary_foreground=secondary_foreground, + success=success, + success_foreground=success_foreground, + warning=warning, + warning_foreground=warning_foreground, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accent: Optional[str] = None, + accent_foreground: Optional[str] = None, + danger: Optional[str] = None, + danger_foreground: Optional[str] = None, + dimension: Optional[str] = None, + dimension_foreground: Optional[str] = None, + measure: Optional[str] = None, + measure_foreground: Optional[str] = None, + primary_background: Optional[str] = None, + primary_foreground: Optional[str] = None, + secondary_background: Optional[str] = None, + secondary_foreground: Optional[str] = None, + success: Optional[str] = None, + success_foreground: Optional[str] = None, + warning: Optional[str] = None, + warning_foreground: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accent is None: + raise TypeError("Missing 'accent' argument") + if accent_foreground is None and 'accentForeground' in kwargs: + accent_foreground = kwargs['accentForeground'] + if accent_foreground is None: + raise TypeError("Missing 'accent_foreground' argument") + if danger is None: + raise TypeError("Missing 'danger' argument") + if danger_foreground is None and 'dangerForeground' in kwargs: + danger_foreground = kwargs['dangerForeground'] + if danger_foreground is None: + raise TypeError("Missing 'danger_foreground' argument") + if dimension is None: + raise TypeError("Missing 'dimension' argument") + if dimension_foreground is None and 'dimensionForeground' in kwargs: + dimension_foreground = kwargs['dimensionForeground'] + if dimension_foreground is None: + raise TypeError("Missing 'dimension_foreground' argument") + if measure is None: + raise TypeError("Missing 'measure' argument") + if measure_foreground is None and 'measureForeground' in kwargs: + measure_foreground = kwargs['measureForeground'] + if measure_foreground is None: + raise TypeError("Missing 'measure_foreground' argument") + if primary_background is None and 'primaryBackground' in kwargs: + primary_background = kwargs['primaryBackground'] + if primary_background is None: + raise TypeError("Missing 'primary_background' argument") + if primary_foreground is None and 'primaryForeground' in kwargs: + primary_foreground = kwargs['primaryForeground'] + if primary_foreground is None: + raise TypeError("Missing 'primary_foreground' argument") + if secondary_background is None and 'secondaryBackground' in kwargs: + secondary_background = kwargs['secondaryBackground'] + if secondary_background is None: + raise TypeError("Missing 'secondary_background' argument") + if secondary_foreground is None and 'secondaryForeground' in kwargs: + secondary_foreground = kwargs['secondaryForeground'] + if secondary_foreground is None: + raise TypeError("Missing 'secondary_foreground' argument") + if success is None: + raise TypeError("Missing 'success' argument") + if success_foreground is None and 'successForeground' in kwargs: + success_foreground = kwargs['successForeground'] + if success_foreground is None: + raise TypeError("Missing 'success_foreground' argument") + if warning is None: + raise TypeError("Missing 'warning' argument") + if warning_foreground is None and 'warningForeground' in kwargs: + warning_foreground = kwargs['warningForeground'] + if warning_foreground is None: + raise TypeError("Missing 'warning_foreground' argument") + + _setter("accent", accent) + _setter("accent_foreground", accent_foreground) + _setter("danger", danger) + _setter("danger_foreground", danger_foreground) + _setter("dimension", dimension) + _setter("dimension_foreground", dimension_foreground) + _setter("measure", measure) + _setter("measure_foreground", measure_foreground) + _setter("primary_background", primary_background) + _setter("primary_foreground", primary_foreground) + _setter("secondary_background", secondary_background) + _setter("secondary_foreground", secondary_foreground) + _setter("success", success) + _setter("success_foreground", success_foreground) + _setter("warning", warning) + _setter("warning_foreground", warning_foreground) @property @pulumi.getter @@ -7022,8 +10304,25 @@ def __init__(__self__, *, :param Sequence[str] actions: List of IAM actions to grant or revoke permissions on. :param str principal: ARN of the principal. See the [ResourcePermission documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ResourcePermission.html) for the applicable ARN values. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "principal", principal) + GetThemePermissionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + principal=principal, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + principal: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + + _setter("actions", actions) + _setter("principal", principal) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/quicksight/refresh_schedule.py b/sdk/python/pulumi_aws/quicksight/refresh_schedule.py index 986a00c06cf..b1d951e9f13 100644 --- a/sdk/python/pulumi_aws/quicksight/refresh_schedule.py +++ b/sdk/python/pulumi_aws/quicksight/refresh_schedule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,12 +29,39 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "data_set_id", data_set_id) - pulumi.set(__self__, "schedule_id", schedule_id) + RefreshScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_set_id=data_set_id, + schedule_id=schedule_id, + aws_account_id=aws_account_id, + schedule=schedule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_set_id: Optional[pulumi.Input[str]] = None, + schedule_id: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input['RefreshScheduleScheduleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_set_id is None and 'dataSetId' in kwargs: + data_set_id = kwargs['dataSetId'] + if data_set_id is None: + raise TypeError("Missing 'data_set_id' argument") + if schedule_id is None and 'scheduleId' in kwargs: + schedule_id = kwargs['scheduleId'] + if schedule_id is None: + raise TypeError("Missing 'schedule_id' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + + _setter("data_set_id", data_set_id) + _setter("schedule_id", schedule_id) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) @property @pulumi.getter(name="dataSetId") @@ -105,16 +132,41 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] schedule_id: The ID of the refresh schedule. """ + _RefreshScheduleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + data_set_id=data_set_id, + schedule=schedule, + schedule_id=schedule_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + data_set_id: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input['RefreshScheduleScheduleArgs']] = None, + schedule_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if data_set_id is None and 'dataSetId' in kwargs: + data_set_id = kwargs['dataSetId'] + if schedule_id is None and 'scheduleId' in kwargs: + schedule_id = kwargs['scheduleId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if data_set_id is not None: - pulumi.set(__self__, "data_set_id", data_set_id) + _setter("data_set_id", data_set_id) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if schedule_id is not None: - pulumi.set(__self__, "schedule_id", schedule_id) + _setter("schedule_id", schedule_id) @property @pulumi.getter @@ -356,6 +408,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RefreshScheduleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -378,6 +434,7 @@ def _internal_init(__self__, if data_set_id is None and not opts.urn: raise TypeError("Missing required property 'data_set_id'") __props__.__dict__["data_set_id"] = data_set_id + schedule = _utilities.configure(schedule, RefreshScheduleScheduleArgs, True) __props__.__dict__["schedule"] = schedule if schedule_id is None and not opts.urn: raise TypeError("Missing required property 'schedule_id'") diff --git a/sdk/python/pulumi_aws/quicksight/template.py b/sdk/python/pulumi_aws/quicksight/template.py index 442c3800b15..3055a882ab5 100644 --- a/sdk/python/pulumi_aws/quicksight/template.py +++ b/sdk/python/pulumi_aws/quicksight/template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,18 +35,53 @@ def __init__(__self__, *, :param pulumi.Input['TemplateSourceEntityArgs'] source_entity: The entity that you are using as a source when you create the template (analysis or template). Only one of `definition` or `source_entity` should be configured. See source_entity. :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. """ - pulumi.set(__self__, "template_id", template_id) - pulumi.set(__self__, "version_description", version_description) + TemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + template_id=template_id, + version_description=version_description, + aws_account_id=aws_account_id, + name=name, + permissions=permissions, + source_entity=source_entity, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + template_id: Optional[pulumi.Input[str]] = None, + version_description: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['TemplatePermissionArgs']]]] = None, + source_entity: Optional[pulumi.Input['TemplateSourceEntityArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if template_id is None and 'templateId' in kwargs: + template_id = kwargs['templateId'] + if template_id is None: + raise TypeError("Missing 'template_id' argument") + if version_description is None and 'versionDescription' in kwargs: + version_description = kwargs['versionDescription'] + if version_description is None: + raise TypeError("Missing 'version_description' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if source_entity is None and 'sourceEntity' in kwargs: + source_entity = kwargs['sourceEntity'] + + _setter("template_id", template_id) + _setter("version_description", version_description) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if source_entity is not None: - pulumi.set(__self__, "source_entity", source_entity) + _setter("source_entity", source_entity) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="templateId") @@ -171,37 +206,92 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[int] version_number: The version number of the template version. """ + _TemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + created_time=created_time, + last_updated_time=last_updated_time, + name=name, + permissions=permissions, + source_entity=source_entity, + source_entity_arn=source_entity_arn, + status=status, + tags=tags, + tags_all=tags_all, + template_id=template_id, + version_description=version_description, + version_number=version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['TemplatePermissionArgs']]]] = None, + source_entity: Optional[pulumi.Input['TemplateSourceEntityArgs']] = None, + source_entity_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_id: Optional[pulumi.Input[str]] = None, + version_description: Optional[pulumi.Input[str]] = None, + version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if source_entity is None and 'sourceEntity' in kwargs: + source_entity = kwargs['sourceEntity'] + if source_entity_arn is None and 'sourceEntityArn' in kwargs: + source_entity_arn = kwargs['sourceEntityArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if template_id is None and 'templateId' in kwargs: + template_id = kwargs['templateId'] + if version_description is None and 'versionDescription' in kwargs: + version_description = kwargs['versionDescription'] + if version_number is None and 'versionNumber' in kwargs: + version_number = kwargs['versionNumber'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if source_entity is not None: - pulumi.set(__self__, "source_entity", source_entity) + _setter("source_entity", source_entity) if source_entity_arn is not None: - pulumi.set(__self__, "source_entity_arn", source_entity_arn) + _setter("source_entity_arn", source_entity_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if template_id is not None: - pulumi.set(__self__, "template_id", template_id) + _setter("template_id", template_id) if version_description is not None: - pulumi.set(__self__, "version_description", version_description) + _setter("version_description", version_description) if version_number is not None: - pulumi.set(__self__, "version_number", version_number) + _setter("version_number", version_number) @property @pulumi.getter @@ -474,6 +564,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -498,6 +592,7 @@ def _internal_init(__self__, __props__.__dict__["aws_account_id"] = aws_account_id __props__.__dict__["name"] = name __props__.__dict__["permissions"] = permissions + source_entity = _utilities.configure(source_entity, TemplateSourceEntityArgs, True) __props__.__dict__["source_entity"] = source_entity __props__.__dict__["tags"] = tags if template_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/quicksight/template_alias.py b/sdk/python/pulumi_aws/quicksight/template_alias.py index e8ab587e0bf..23f286560ae 100644 --- a/sdk/python/pulumi_aws/quicksight/template_alias.py +++ b/sdk/python/pulumi_aws/quicksight/template_alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TemplateAliasArgs', 'TemplateAlias'] @@ -27,11 +27,42 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] aws_account_id: AWS account ID. """ - pulumi.set(__self__, "alias_name", alias_name) - pulumi.set(__self__, "template_id", template_id) - pulumi.set(__self__, "template_version_number", template_version_number) + TemplateAliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias_name=alias_name, + template_id=template_id, + template_version_number=template_version_number, + aws_account_id=aws_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias_name: Optional[pulumi.Input[str]] = None, + template_id: Optional[pulumi.Input[str]] = None, + template_version_number: Optional[pulumi.Input[int]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alias_name is None and 'aliasName' in kwargs: + alias_name = kwargs['aliasName'] + if alias_name is None: + raise TypeError("Missing 'alias_name' argument") + if template_id is None and 'templateId' in kwargs: + template_id = kwargs['templateId'] + if template_id is None: + raise TypeError("Missing 'template_id' argument") + if template_version_number is None and 'templateVersionNumber' in kwargs: + template_version_number = kwargs['templateVersionNumber'] + if template_version_number is None: + raise TypeError("Missing 'template_version_number' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + + _setter("alias_name", alias_name) + _setter("template_id", template_id) + _setter("template_version_number", template_version_number) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) @property @pulumi.getter(name="aliasName") @@ -102,16 +133,43 @@ def __init__(__self__, *, The following arguments are optional: """ + _TemplateAliasState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias_name=alias_name, + arn=arn, + aws_account_id=aws_account_id, + template_id=template_id, + template_version_number=template_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias_name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + template_id: Optional[pulumi.Input[str]] = None, + template_version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alias_name is None and 'aliasName' in kwargs: + alias_name = kwargs['aliasName'] + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if template_id is None and 'templateId' in kwargs: + template_id = kwargs['templateId'] + if template_version_number is None and 'templateVersionNumber' in kwargs: + template_version_number = kwargs['templateVersionNumber'] + if alias_name is not None: - pulumi.set(__self__, "alias_name", alias_name) + _setter("alias_name", alias_name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if template_id is not None: - pulumi.set(__self__, "template_id", template_id) + _setter("template_id", template_id) if template_version_number is not None: - pulumi.set(__self__, "template_version_number", template_version_number) + _setter("template_version_number", template_version_number) @property @pulumi.getter(name="aliasName") @@ -259,6 +317,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TemplateAliasArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/quicksight/theme.py b/sdk/python/pulumi_aws/quicksight/theme.py index 7b6cf3b5b58..cd0662cf704 100644 --- a/sdk/python/pulumi_aws/quicksight/theme.py +++ b/sdk/python/pulumi_aws/quicksight/theme.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,20 +37,57 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] version_description: A description of the current theme version being created/updated. """ - pulumi.set(__self__, "base_theme_id", base_theme_id) - pulumi.set(__self__, "theme_id", theme_id) + ThemeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + base_theme_id=base_theme_id, + theme_id=theme_id, + aws_account_id=aws_account_id, + configuration=configuration, + name=name, + permissions=permissions, + tags=tags, + version_description=version_description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + base_theme_id: Optional[pulumi.Input[str]] = None, + theme_id: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['ThemeConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['ThemePermissionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_theme_id is None and 'baseThemeId' in kwargs: + base_theme_id = kwargs['baseThemeId'] + if base_theme_id is None: + raise TypeError("Missing 'base_theme_id' argument") + if theme_id is None and 'themeId' in kwargs: + theme_id = kwargs['themeId'] + if theme_id is None: + raise TypeError("Missing 'theme_id' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if version_description is None and 'versionDescription' in kwargs: + version_description = kwargs['versionDescription'] + + _setter("base_theme_id", base_theme_id) + _setter("theme_id", theme_id) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if version_description is not None: - pulumi.set(__self__, "version_description", version_description) + _setter("version_description", version_description) @property @pulumi.getter(name="baseThemeId") @@ -187,37 +224,90 @@ def __init__(__self__, *, :param pulumi.Input[str] version_description: A description of the current theme version being created/updated. :param pulumi.Input[int] version_number: The version number of the theme version. """ + _ThemeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + base_theme_id=base_theme_id, + configuration=configuration, + created_time=created_time, + last_updated_time=last_updated_time, + name=name, + permissions=permissions, + status=status, + tags=tags, + tags_all=tags_all, + theme_id=theme_id, + version_description=version_description, + version_number=version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + base_theme_id: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['ThemeConfigurationArgs']] = None, + created_time: Optional[pulumi.Input[str]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input['ThemePermissionArgs']]]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + theme_id: Optional[pulumi.Input[str]] = None, + version_description: Optional[pulumi.Input[str]] = None, + version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if base_theme_id is None and 'baseThemeId' in kwargs: + base_theme_id = kwargs['baseThemeId'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if theme_id is None and 'themeId' in kwargs: + theme_id = kwargs['themeId'] + if version_description is None and 'versionDescription' in kwargs: + version_description = kwargs['versionDescription'] + if version_number is None and 'versionNumber' in kwargs: + version_number = kwargs['versionNumber'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if base_theme_id is not None: - pulumi.set(__self__, "base_theme_id", base_theme_id) + _setter("base_theme_id", base_theme_id) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if theme_id is not None: - pulumi.set(__self__, "theme_id", theme_id) + _setter("theme_id", theme_id) if version_description is not None: - pulumi.set(__self__, "version_description", version_description) + _setter("version_description", version_description) if version_number is not None: - pulumi.set(__self__, "version_number", version_number) + _setter("version_number", version_number) @property @pulumi.getter @@ -462,6 +552,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ThemeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -488,6 +582,7 @@ def _internal_init(__self__, if base_theme_id is None and not opts.urn: raise TypeError("Missing required property 'base_theme_id'") __props__.__dict__["base_theme_id"] = base_theme_id + configuration = _utilities.configure(configuration, ThemeConfigurationArgs, True) __props__.__dict__["configuration"] = configuration __props__.__dict__["name"] = name __props__.__dict__["permissions"] = permissions diff --git a/sdk/python/pulumi_aws/quicksight/user.py b/sdk/python/pulumi_aws/quicksight/user.py index b2397667f88..8e8e4dea0a1 100644 --- a/sdk/python/pulumi_aws/quicksight/user.py +++ b/sdk/python/pulumi_aws/quicksight/user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UserArgs', 'User'] @@ -33,19 +33,62 @@ def __init__(__self__, *, :param pulumi.Input[str] session_name: The name of the IAM session to use when assuming roles that can embed QuickSight dashboards. Only valid for registering users using an assumed IAM role. Additionally, if registering multiple users using the same IAM role, each user needs to have a unique session name. :param pulumi.Input[str] user_name: The Amazon QuickSight user name that you want to create for the user you are registering. Only valid for registering a user with `identity_type` set to `QUICKSIGHT`. """ - pulumi.set(__self__, "email", email) - pulumi.set(__self__, "identity_type", identity_type) - pulumi.set(__self__, "user_role", user_role) + UserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + email=email, + identity_type=identity_type, + user_role=user_role, + aws_account_id=aws_account_id, + iam_arn=iam_arn, + namespace=namespace, + session_name=session_name, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email: Optional[pulumi.Input[str]] = None, + identity_type: Optional[pulumi.Input[str]] = None, + user_role: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + iam_arn: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + session_name: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email is None: + raise TypeError("Missing 'email' argument") + if identity_type is None and 'identityType' in kwargs: + identity_type = kwargs['identityType'] + if identity_type is None: + raise TypeError("Missing 'identity_type' argument") + if user_role is None and 'userRole' in kwargs: + user_role = kwargs['userRole'] + if user_role is None: + raise TypeError("Missing 'user_role' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if iam_arn is None and 'iamArn' in kwargs: + iam_arn = kwargs['iamArn'] + if session_name is None and 'sessionName' in kwargs: + session_name = kwargs['sessionName'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + + _setter("email", email) + _setter("identity_type", identity_type) + _setter("user_role", user_role) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if iam_arn is not None: - pulumi.set(__self__, "iam_arn", iam_arn) + _setter("iam_arn", iam_arn) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if session_name is not None: - pulumi.set(__self__, "session_name", session_name) + _setter("session_name", session_name) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter @@ -168,24 +211,63 @@ def __init__(__self__, *, :param pulumi.Input[str] user_name: The Amazon QuickSight user name that you want to create for the user you are registering. Only valid for registering a user with `identity_type` set to `QUICKSIGHT`. :param pulumi.Input[str] user_role: The Amazon QuickSight role of the user. The user role can be one of the following: `READER`, `AUTHOR`, or `ADMIN` """ + _UserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + aws_account_id=aws_account_id, + email=email, + iam_arn=iam_arn, + identity_type=identity_type, + namespace=namespace, + session_name=session_name, + user_name=user_name, + user_role=user_role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + iam_arn: Optional[pulumi.Input[str]] = None, + identity_type: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + session_name: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + user_role: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if iam_arn is None and 'iamArn' in kwargs: + iam_arn = kwargs['iamArn'] + if identity_type is None and 'identityType' in kwargs: + identity_type = kwargs['identityType'] + if session_name is None and 'sessionName' in kwargs: + session_name = kwargs['sessionName'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_role is None and 'userRole' in kwargs: + user_role = kwargs['userRole'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if iam_arn is not None: - pulumi.set(__self__, "iam_arn", iam_arn) + _setter("iam_arn", iam_arn) if identity_type is not None: - pulumi.set(__self__, "identity_type", identity_type) + _setter("identity_type", identity_type) if namespace is not None: - pulumi.set(__self__, "namespace", namespace) + _setter("namespace", namespace) if session_name is not None: - pulumi.set(__self__, "session_name", session_name) + _setter("session_name", session_name) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) if user_role is not None: - pulumi.set(__self__, "user_role", user_role) + _setter("user_role", user_role) @property @pulumi.getter @@ -381,6 +463,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/quicksight/vpc_connection.py b/sdk/python/pulumi_aws/quicksight/vpc_connection.py index 721277b686d..e0753311ef7 100644 --- a/sdk/python/pulumi_aws/quicksight/vpc_connection.py +++ b/sdk/python/pulumi_aws/quicksight/vpc_connection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -38,20 +38,67 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The display name for the VPC connection. :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. """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_connection_id", vpc_connection_id) + VpcConnectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_connection_id=vpc_connection_id, + aws_account_id=aws_account_id, + dns_resolvers=dns_resolvers, + name=name, + tags=tags, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_connection_id: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + dns_resolvers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['VpcConnectionTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_connection_id is None and 'vpcConnectionId' in kwargs: + vpc_connection_id = kwargs['vpcConnectionId'] + if vpc_connection_id is None: + raise TypeError("Missing 'vpc_connection_id' argument") + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if dns_resolvers is None and 'dnsResolvers' in kwargs: + dns_resolvers = kwargs['dnsResolvers'] + + _setter("role_arn", role_arn) + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_connection_id", vpc_connection_id) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if dns_resolvers is not None: - pulumi.set(__self__, "dns_resolvers", dns_resolvers) + _setter("dns_resolvers", dns_resolvers) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="roleArn") @@ -192,33 +239,82 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_connection_id: The ID of the VPC connection. """ + _VpcConnectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + availability_status=availability_status, + aws_account_id=aws_account_id, + dns_resolvers=dns_resolvers, + name=name, + role_arn=role_arn, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + timeouts=timeouts, + vpc_connection_id=vpc_connection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + availability_status: Optional[pulumi.Input[str]] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + dns_resolvers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['VpcConnectionTimeoutsArgs']] = None, + vpc_connection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_status is None and 'availabilityStatus' in kwargs: + availability_status = kwargs['availabilityStatus'] + if aws_account_id is None and 'awsAccountId' in kwargs: + aws_account_id = kwargs['awsAccountId'] + if dns_resolvers is None and 'dnsResolvers' in kwargs: + dns_resolvers = kwargs['dnsResolvers'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_connection_id is None and 'vpcConnectionId' in kwargs: + vpc_connection_id = kwargs['vpcConnectionId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_status is not None: - pulumi.set(__self__, "availability_status", availability_status) + _setter("availability_status", availability_status) if aws_account_id is not None: - pulumi.set(__self__, "aws_account_id", aws_account_id) + _setter("aws_account_id", aws_account_id) if dns_resolvers is not None: - pulumi.set(__self__, "dns_resolvers", dns_resolvers) + _setter("dns_resolvers", dns_resolvers) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) if vpc_connection_id is not None: - pulumi.set(__self__, "vpc_connection_id", vpc_connection_id) + _setter("vpc_connection_id", vpc_connection_id) @property @pulumi.getter @@ -525,6 +621,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcConnectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -561,6 +661,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'subnet_ids'") __props__.__dict__["subnet_ids"] = subnet_ids __props__.__dict__["tags"] = tags + timeouts = _utilities.configure(timeouts, VpcConnectionTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts if vpc_connection_id is None and not opts.urn: raise TypeError("Missing required property 'vpc_connection_id'") diff --git a/sdk/python/pulumi_aws/ram/_inputs.py b/sdk/python/pulumi_aws/ram/_inputs.py index cbe72a79ea6..4c1ba1a84ec 100644 --- a/sdk/python/pulumi_aws/ram/_inputs.py +++ b/sdk/python/pulumi_aws/ram/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,8 +22,25 @@ def __init__(__self__, *, :param str name: Name of the tag key to filter on. :param Sequence[str] values: Value of the tag key. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetResourceShareFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ram/get_resource_share.py b/sdk/python/pulumi_aws/ram/get_resource_share.py index faf17ac7177..dee57c5f2f1 100644 --- a/sdk/python/pulumi_aws/ram/get_resource_share.py +++ b/sdk/python/pulumi_aws/ram/get_resource_share.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ram/outputs.py b/sdk/python/pulumi_aws/ram/outputs.py index bd3ff9a20eb..d7a19cdd329 100644 --- a/sdk/python/pulumi_aws/ram/outputs.py +++ b/sdk/python/pulumi_aws/ram/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,8 +22,25 @@ def __init__(__self__, *, :param str name: Name of the tag key to filter on. :param Sequence[str] values: Value of the tag key. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetResourceShareFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ram/principal_association.py b/sdk/python/pulumi_aws/ram/principal_association.py index 181ba829ef1..fc6e0982b92 100644 --- a/sdk/python/pulumi_aws/ram/principal_association.py +++ b/sdk/python/pulumi_aws/ram/principal_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PrincipalAssociationArgs', 'PrincipalAssociation'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] principal: The principal to associate with the resource share. Possible values are an AWS account ID, an AWS Organizations Organization ARN, or an AWS Organizations Organization Unit ARN. :param pulumi.Input[str] resource_share_arn: The Amazon Resource Name (ARN) of the resource share. """ - pulumi.set(__self__, "principal", principal) - pulumi.set(__self__, "resource_share_arn", resource_share_arn) + PrincipalAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + principal=principal, + resource_share_arn=resource_share_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + principal: Optional[pulumi.Input[str]] = None, + resource_share_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if principal is None: + raise TypeError("Missing 'principal' argument") + if resource_share_arn is None and 'resourceShareArn' in kwargs: + resource_share_arn = kwargs['resourceShareArn'] + if resource_share_arn is None: + raise TypeError("Missing 'resource_share_arn' argument") + + _setter("principal", principal) + _setter("resource_share_arn", resource_share_arn) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] principal: The principal to associate with the resource share. Possible values are an AWS account ID, an AWS Organizations Organization ARN, or an AWS Organizations Organization Unit ARN. :param pulumi.Input[str] resource_share_arn: The Amazon Resource Name (ARN) of the resource share. """ + _PrincipalAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + principal=principal, + resource_share_arn=resource_share_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + principal: Optional[pulumi.Input[str]] = None, + resource_share_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_share_arn is None and 'resourceShareArn' in kwargs: + resource_share_arn = kwargs['resourceShareArn'] + if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if resource_share_arn is not None: - pulumi.set(__self__, "resource_share_arn", resource_share_arn) + _setter("resource_share_arn", resource_share_arn) @property @pulumi.getter @@ -206,6 +240,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PrincipalAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ram/resource_association.py b/sdk/python/pulumi_aws/ram/resource_association.py index fdde03a558b..640f0d8b1e1 100644 --- a/sdk/python/pulumi_aws/ram/resource_association.py +++ b/sdk/python/pulumi_aws/ram/resource_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourceAssociationArgs', 'ResourceAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the resource to associate with the RAM Resource Share. :param pulumi.Input[str] resource_share_arn: Amazon Resource Name (ARN) of the RAM Resource Share. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "resource_share_arn", resource_share_arn) + ResourceAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + resource_share_arn=resource_share_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + resource_share_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if resource_share_arn is None and 'resourceShareArn' in kwargs: + resource_share_arn = kwargs['resourceShareArn'] + if resource_share_arn is None: + raise TypeError("Missing 'resource_share_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("resource_share_arn", resource_share_arn) @property @pulumi.getter(name="resourceArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the resource to associate with the RAM Resource Share. :param pulumi.Input[str] resource_share_arn: Amazon Resource Name (ARN) of the RAM Resource Share. """ + _ResourceAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + resource_share_arn=resource_share_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + resource_share_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_share_arn is None and 'resourceShareArn' in kwargs: + resource_share_arn = kwargs['resourceShareArn'] + if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if resource_share_arn is not None: - pulumi.set(__self__, "resource_share_arn", resource_share_arn) + _setter("resource_share_arn", resource_share_arn) @property @pulumi.getter(name="resourceArn") @@ -166,6 +204,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ram/resource_share.py b/sdk/python/pulumi_aws/ram/resource_share.py index 6784628feb7..800d4a63019 100644 --- a/sdk/python/pulumi_aws/ram/resource_share.py +++ b/sdk/python/pulumi_aws/ram/resource_share.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourceShareArgs', 'ResourceShare'] @@ -25,14 +25,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] permission_arns: Specifies the Amazon Resource Names (ARNs) of the RAM permission to associate with the resource share. If you do not specify an ARN for the permission, RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource share. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + ResourceShareArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_external_principals=allow_external_principals, + name=name, + permission_arns=permission_arns, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_external_principals: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + permission_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_external_principals is None and 'allowExternalPrincipals' in kwargs: + allow_external_principals = kwargs['allowExternalPrincipals'] + if permission_arns is None and 'permissionArns' in kwargs: + permission_arns = kwargs['permissionArns'] + if allow_external_principals is not None: - pulumi.set(__self__, "allow_external_principals", allow_external_principals) + _setter("allow_external_principals", allow_external_principals) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permission_arns is not None: - pulumi.set(__self__, "permission_arns", permission_arns) + _setter("permission_arns", permission_arns) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="allowExternalPrincipals") @@ -101,21 +122,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource share. 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. """ + _ResourceShareState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_external_principals=allow_external_principals, + arn=arn, + name=name, + permission_arns=permission_arns, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_external_principals: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + permission_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_external_principals is None and 'allowExternalPrincipals' in kwargs: + allow_external_principals = kwargs['allowExternalPrincipals'] + if permission_arns is None and 'permissionArns' in kwargs: + permission_arns = kwargs['permissionArns'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if allow_external_principals is not None: - pulumi.set(__self__, "allow_external_principals", allow_external_principals) + _setter("allow_external_principals", allow_external_principals) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permission_arns is not None: - pulumi.set(__self__, "permission_arns", permission_arns) + _setter("permission_arns", permission_arns) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="allowExternalPrincipals") @@ -274,6 +322,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceShareArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ram/resource_share_accepter.py b/sdk/python/pulumi_aws/ram/resource_share_accepter.py index 6e39c6b120c..c377af001a5 100644 --- a/sdk/python/pulumi_aws/ram/resource_share_accepter.py +++ b/sdk/python/pulumi_aws/ram/resource_share_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourceShareAccepterArgs', 'ResourceShareAccepter'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a ResourceShareAccepter resource. :param pulumi.Input[str] share_arn: The ARN of the resource share. """ - pulumi.set(__self__, "share_arn", share_arn) + ResourceShareAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + share_arn=share_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + share_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if share_arn is None and 'shareArn' in kwargs: + share_arn = kwargs['shareArn'] + if share_arn is None: + raise TypeError("Missing 'share_arn' argument") + + _setter("share_arn", share_arn) @property @pulumi.getter(name="shareArn") @@ -56,22 +71,59 @@ def __init__(__self__, *, :param pulumi.Input[str] share_name: The name of the resource share. :param pulumi.Input[str] status: The status of the resource share (ACTIVE, PENDING, FAILED, DELETING, DELETED). """ + _ResourceShareAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + invitation_arn=invitation_arn, + receiver_account_id=receiver_account_id, + resources=resources, + sender_account_id=sender_account_id, + share_arn=share_arn, + share_id=share_id, + share_name=share_name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invitation_arn: Optional[pulumi.Input[str]] = None, + receiver_account_id: Optional[pulumi.Input[str]] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sender_account_id: Optional[pulumi.Input[str]] = None, + share_arn: Optional[pulumi.Input[str]] = None, + share_id: Optional[pulumi.Input[str]] = None, + share_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invitation_arn is None and 'invitationArn' in kwargs: + invitation_arn = kwargs['invitationArn'] + if receiver_account_id is None and 'receiverAccountId' in kwargs: + receiver_account_id = kwargs['receiverAccountId'] + if sender_account_id is None and 'senderAccountId' in kwargs: + sender_account_id = kwargs['senderAccountId'] + if share_arn is None and 'shareArn' in kwargs: + share_arn = kwargs['shareArn'] + if share_id is None and 'shareId' in kwargs: + share_id = kwargs['shareId'] + if share_name is None and 'shareName' in kwargs: + share_name = kwargs['shareName'] + if invitation_arn is not None: - pulumi.set(__self__, "invitation_arn", invitation_arn) + _setter("invitation_arn", invitation_arn) if receiver_account_id is not None: - pulumi.set(__self__, "receiver_account_id", receiver_account_id) + _setter("receiver_account_id", receiver_account_id) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if sender_account_id is not None: - pulumi.set(__self__, "sender_account_id", sender_account_id) + _setter("sender_account_id", sender_account_id) if share_arn is not None: - pulumi.set(__self__, "share_arn", share_arn) + _setter("share_arn", share_arn) if share_id is not None: - pulumi.set(__self__, "share_id", share_id) + _setter("share_id", share_id) if share_name is not None: - pulumi.set(__self__, "share_name", share_name) + _setter("share_name", share_name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="invitationArn") @@ -269,6 +321,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceShareAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ram/sharing_with_organization.py b/sdk/python/pulumi_aws/ram/sharing_with_organization.py index dc058f62f86..45406c32f35 100644 --- a/sdk/python/pulumi_aws/ram/sharing_with_organization.py +++ b/sdk/python/pulumi_aws/ram/sharing_with_organization.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SharingWithOrganizationArgs', 'SharingWithOrganization'] @@ -18,6 +18,13 @@ def __init__(__self__): The set of arguments for constructing a SharingWithOrganization resource. """ pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + class SharingWithOrganization(pulumi.CustomResource): @@ -89,6 +96,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SharingWithOrganizationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rbin/_inputs.py b/sdk/python/pulumi_aws/rbin/_inputs.py index 340ed8e7bef..24e4a193feb 100644 --- a/sdk/python/pulumi_aws/rbin/_inputs.py +++ b/sdk/python/pulumi_aws/rbin/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,7 +23,22 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleLockConfigurationUnlockDelayArgs'] unlock_delay: Information about the retention rule unlock delay. See `unlock_delay` below. """ - pulumi.set(__self__, "unlock_delay", unlock_delay) + RuleLockConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unlock_delay=unlock_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unlock_delay: Optional[pulumi.Input['RuleLockConfigurationUnlockDelayArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unlock_delay is None and 'unlockDelay' in kwargs: + unlock_delay = kwargs['unlockDelay'] + if unlock_delay is None: + raise TypeError("Missing 'unlock_delay' argument") + + _setter("unlock_delay", unlock_delay) @property @pulumi.getter(name="unlockDelay") @@ -47,8 +62,29 @@ def __init__(__self__, *, :param pulumi.Input[str] unlock_delay_unit: The unit of time in which to measure the unlock delay. Currently, the unlock delay can be measure only in days. :param pulumi.Input[int] unlock_delay_value: The unlock delay period, measured in the unit specified for UnlockDelayUnit. """ - pulumi.set(__self__, "unlock_delay_unit", unlock_delay_unit) - pulumi.set(__self__, "unlock_delay_value", unlock_delay_value) + RuleLockConfigurationUnlockDelayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unlock_delay_unit=unlock_delay_unit, + unlock_delay_value=unlock_delay_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unlock_delay_unit: Optional[pulumi.Input[str]] = None, + unlock_delay_value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unlock_delay_unit is None and 'unlockDelayUnit' in kwargs: + unlock_delay_unit = kwargs['unlockDelayUnit'] + if unlock_delay_unit is None: + raise TypeError("Missing 'unlock_delay_unit' argument") + if unlock_delay_value is None and 'unlockDelayValue' in kwargs: + unlock_delay_value = kwargs['unlockDelayValue'] + if unlock_delay_value is None: + raise TypeError("Missing 'unlock_delay_value' argument") + + _setter("unlock_delay_unit", unlock_delay_unit) + _setter("unlock_delay_value", unlock_delay_value) @property @pulumi.getter(name="unlockDelayUnit") @@ -86,9 +122,28 @@ def __init__(__self__, *, The following argument is optional: :param pulumi.Input[str] resource_tag_value: The tag value. """ - pulumi.set(__self__, "resource_tag_key", resource_tag_key) + RuleResourceTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_tag_key=resource_tag_key, + resource_tag_value=resource_tag_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_tag_key: Optional[pulumi.Input[str]] = None, + resource_tag_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_tag_key is None and 'resourceTagKey' in kwargs: + resource_tag_key = kwargs['resourceTagKey'] + if resource_tag_key is None: + raise TypeError("Missing 'resource_tag_key' argument") + if resource_tag_value is None and 'resourceTagValue' in kwargs: + resource_tag_value = kwargs['resourceTagValue'] + + _setter("resource_tag_key", resource_tag_key) if resource_tag_value is not None: - pulumi.set(__self__, "resource_tag_value", resource_tag_value) + _setter("resource_tag_value", resource_tag_value) @property @pulumi.getter(name="resourceTagKey") @@ -126,8 +181,29 @@ def __init__(__self__, *, :param pulumi.Input[str] retention_period_unit: The unit of time in which the retention period is measured. Currently, only DAYS is supported. :param pulumi.Input[int] retention_period_value: The period value for which the retention rule is to retain resources. The period is measured using the unit specified for RetentionPeriodUnit. """ - pulumi.set(__self__, "retention_period_unit", retention_period_unit) - pulumi.set(__self__, "retention_period_value", retention_period_value) + RuleRetentionPeriodArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + retention_period_unit=retention_period_unit, + retention_period_value=retention_period_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + retention_period_unit: Optional[pulumi.Input[str]] = None, + retention_period_value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if retention_period_unit is None and 'retentionPeriodUnit' in kwargs: + retention_period_unit = kwargs['retentionPeriodUnit'] + if retention_period_unit is None: + raise TypeError("Missing 'retention_period_unit' argument") + if retention_period_value is None and 'retentionPeriodValue' in kwargs: + retention_period_value = kwargs['retentionPeriodValue'] + if retention_period_value is None: + raise TypeError("Missing 'retention_period_value' argument") + + _setter("retention_period_unit", retention_period_unit) + _setter("retention_period_value", retention_period_value) @property @pulumi.getter(name="retentionPeriodUnit") diff --git a/sdk/python/pulumi_aws/rbin/outputs.py b/sdk/python/pulumi_aws/rbin/outputs.py index 0c4eb99d00e..a5fde303aab 100644 --- a/sdk/python/pulumi_aws/rbin/outputs.py +++ b/sdk/python/pulumi_aws/rbin/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -41,7 +41,22 @@ def __init__(__self__, *, """ :param 'RuleLockConfigurationUnlockDelayArgs' unlock_delay: Information about the retention rule unlock delay. See `unlock_delay` below. """ - pulumi.set(__self__, "unlock_delay", unlock_delay) + RuleLockConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + unlock_delay=unlock_delay, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unlock_delay: Optional['outputs.RuleLockConfigurationUnlockDelay'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unlock_delay is None and 'unlockDelay' in kwargs: + unlock_delay = kwargs['unlockDelay'] + if unlock_delay is None: + raise TypeError("Missing 'unlock_delay' argument") + + _setter("unlock_delay", unlock_delay) @property @pulumi.getter(name="unlockDelay") @@ -80,8 +95,29 @@ def __init__(__self__, *, :param str unlock_delay_unit: The unit of time in which to measure the unlock delay. Currently, the unlock delay can be measure only in days. :param int unlock_delay_value: The unlock delay period, measured in the unit specified for UnlockDelayUnit. """ - pulumi.set(__self__, "unlock_delay_unit", unlock_delay_unit) - pulumi.set(__self__, "unlock_delay_value", unlock_delay_value) + RuleLockConfigurationUnlockDelay._configure( + lambda key, value: pulumi.set(__self__, key, value), + unlock_delay_unit=unlock_delay_unit, + unlock_delay_value=unlock_delay_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unlock_delay_unit: Optional[str] = None, + unlock_delay_value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unlock_delay_unit is None and 'unlockDelayUnit' in kwargs: + unlock_delay_unit = kwargs['unlockDelayUnit'] + if unlock_delay_unit is None: + raise TypeError("Missing 'unlock_delay_unit' argument") + if unlock_delay_value is None and 'unlockDelayValue' in kwargs: + unlock_delay_value = kwargs['unlockDelayValue'] + if unlock_delay_value is None: + raise TypeError("Missing 'unlock_delay_value' argument") + + _setter("unlock_delay_unit", unlock_delay_unit) + _setter("unlock_delay_value", unlock_delay_value) @property @pulumi.getter(name="unlockDelayUnit") @@ -130,9 +166,28 @@ def __init__(__self__, *, The following argument is optional: :param str resource_tag_value: The tag value. """ - pulumi.set(__self__, "resource_tag_key", resource_tag_key) + RuleResourceTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_tag_key=resource_tag_key, + resource_tag_value=resource_tag_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_tag_key: Optional[str] = None, + resource_tag_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_tag_key is None and 'resourceTagKey' in kwargs: + resource_tag_key = kwargs['resourceTagKey'] + if resource_tag_key is None: + raise TypeError("Missing 'resource_tag_key' argument") + if resource_tag_value is None and 'resourceTagValue' in kwargs: + resource_tag_value = kwargs['resourceTagValue'] + + _setter("resource_tag_key", resource_tag_key) if resource_tag_value is not None: - pulumi.set(__self__, "resource_tag_value", resource_tag_value) + _setter("resource_tag_value", resource_tag_value) @property @pulumi.getter(name="resourceTagKey") @@ -181,8 +236,29 @@ def __init__(__self__, *, :param str retention_period_unit: The unit of time in which the retention period is measured. Currently, only DAYS is supported. :param int retention_period_value: The period value for which the retention rule is to retain resources. The period is measured using the unit specified for RetentionPeriodUnit. """ - pulumi.set(__self__, "retention_period_unit", retention_period_unit) - pulumi.set(__self__, "retention_period_value", retention_period_value) + RuleRetentionPeriod._configure( + lambda key, value: pulumi.set(__self__, key, value), + retention_period_unit=retention_period_unit, + retention_period_value=retention_period_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + retention_period_unit: Optional[str] = None, + retention_period_value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if retention_period_unit is None and 'retentionPeriodUnit' in kwargs: + retention_period_unit = kwargs['retentionPeriodUnit'] + if retention_period_unit is None: + raise TypeError("Missing 'retention_period_unit' argument") + if retention_period_value is None and 'retentionPeriodValue' in kwargs: + retention_period_value = kwargs['retentionPeriodValue'] + if retention_period_value is None: + raise TypeError("Missing 'retention_period_value' argument") + + _setter("retention_period_unit", retention_period_unit) + _setter("retention_period_value", retention_period_value) @property @pulumi.getter(name="retentionPeriodUnit") diff --git a/sdk/python/pulumi_aws/rbin/rule.py b/sdk/python/pulumi_aws/rbin/rule.py index 01526e492e4..661ac3a91f0 100644 --- a/sdk/python/pulumi_aws/rbin/rule.py +++ b/sdk/python/pulumi_aws/rbin/rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -32,16 +32,49 @@ def __init__(__self__, *, :param pulumi.Input['RuleLockConfigurationArgs'] lock_configuration: Information about the retention rule lock configuration. See `lock_configuration` below. :param pulumi.Input[Sequence[pulumi.Input['RuleResourceTagArgs']]] resource_tags: Specifies the resource tags to use to identify resources that are to be retained by a tag-level retention rule. See `resource_tags` below. """ - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "retention_period", retention_period) + RuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_type=resource_type, + retention_period=retention_period, + description=description, + lock_configuration=lock_configuration, + resource_tags=resource_tags, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_type: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input['RuleRetentionPeriodArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + lock_configuration: Optional[pulumi.Input['RuleLockConfigurationArgs']] = None, + resource_tags: Optional[pulumi.Input[Sequence[pulumi.Input['RuleResourceTagArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if retention_period is None: + raise TypeError("Missing 'retention_period' argument") + if lock_configuration is None and 'lockConfiguration' in kwargs: + lock_configuration = kwargs['lockConfiguration'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + + _setter("resource_type", resource_type) + _setter("retention_period", retention_period) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if lock_configuration is not None: - pulumi.set(__self__, "lock_configuration", lock_configuration) + _setter("lock_configuration", lock_configuration) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="resourceType") @@ -142,31 +175,76 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] status: (String) The state of the retention rule. Only retention rules that are in the `available` state retain resources. Valid values include `pending` and `available`. """ + _RuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + lock_configuration=lock_configuration, + lock_end_time=lock_end_time, + lock_state=lock_state, + resource_tags=resource_tags, + resource_type=resource_type, + retention_period=retention_period, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + lock_configuration: Optional[pulumi.Input['RuleLockConfigurationArgs']] = None, + lock_end_time: Optional[pulumi.Input[str]] = None, + lock_state: Optional[pulumi.Input[str]] = None, + resource_tags: Optional[pulumi.Input[Sequence[pulumi.Input['RuleResourceTagArgs']]]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input['RuleRetentionPeriodArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lock_configuration is None and 'lockConfiguration' in kwargs: + lock_configuration = kwargs['lockConfiguration'] + if lock_end_time is None and 'lockEndTime' in kwargs: + lock_end_time = kwargs['lockEndTime'] + if lock_state is None and 'lockState' in kwargs: + lock_state = kwargs['lockState'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if lock_configuration is not None: - pulumi.set(__self__, "lock_configuration", lock_configuration) + _setter("lock_configuration", lock_configuration) if lock_end_time is not None: - pulumi.set(__self__, "lock_end_time", lock_end_time) + _setter("lock_end_time", lock_end_time) if lock_state is not None: - pulumi.set(__self__, "lock_state", lock_state) + _setter("lock_state", lock_state) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -403,6 +481,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -424,11 +506,13 @@ def _internal_init(__self__, __props__ = RuleArgs.__new__(RuleArgs) __props__.__dict__["description"] = description + lock_configuration = _utilities.configure(lock_configuration, RuleLockConfigurationArgs, True) __props__.__dict__["lock_configuration"] = lock_configuration __props__.__dict__["resource_tags"] = resource_tags if resource_type is None and not opts.urn: raise TypeError("Missing required property 'resource_type'") __props__.__dict__["resource_type"] = resource_type + retention_period = _utilities.configure(retention_period, RuleRetentionPeriodArgs, True) if retention_period is None and not opts.urn: raise TypeError("Missing required property 'retention_period'") __props__.__dict__["retention_period"] = retention_period diff --git a/sdk/python/pulumi_aws/rds/_inputs.py b/sdk/python/pulumi_aws/rds/_inputs.py index 51dd6053935..97ea4b2fd47 100644 --- a/sdk/python/pulumi_aws/rds/_inputs.py +++ b/sdk/python/pulumi_aws/rds/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -46,12 +46,33 @@ def __init__(__self__, *, :param pulumi.Input[str] secret_arn: Amazon Resource Name (ARN) of the secret. :param pulumi.Input[str] secret_status: Status of the secret. Valid Values: `creating` | `active` | `rotating` | `impaired`. """ + ClusterMasterUserSecretArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + secret_arn=secret_arn, + secret_status=secret_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + secret_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if secret_status is None and 'secretStatus' in kwargs: + secret_status = kwargs['secretStatus'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) if secret_status is not None: - pulumi.set(__self__, "secret_status", secret_status) + _setter("secret_status", secret_status) @property @pulumi.getter(name="kmsKeyId") @@ -103,10 +124,31 @@ def __init__(__self__, *, engines can't apply some parameters without a reboot, and you will need to specify "pending-reboot" here. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ClusterParameterGroupParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + apply_method: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter @@ -161,13 +203,40 @@ def __init__(__self__, *, Valid options are `full-copy` (default) and `copy-on-write`. :param pulumi.Input[bool] use_latest_restorable_time: Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with `restore_to_time`. """ - pulumi.set(__self__, "source_cluster_identifier", source_cluster_identifier) + ClusterRestoreToPointInTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_cluster_identifier=source_cluster_identifier, + restore_to_time=restore_to_time, + restore_type=restore_type, + use_latest_restorable_time=use_latest_restorable_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_cluster_identifier: Optional[pulumi.Input[str]] = None, + restore_to_time: Optional[pulumi.Input[str]] = None, + restore_type: Optional[pulumi.Input[str]] = None, + use_latest_restorable_time: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_cluster_identifier is None and 'sourceClusterIdentifier' in kwargs: + source_cluster_identifier = kwargs['sourceClusterIdentifier'] + if source_cluster_identifier is None: + raise TypeError("Missing 'source_cluster_identifier' argument") + if restore_to_time is None and 'restoreToTime' in kwargs: + restore_to_time = kwargs['restoreToTime'] + if restore_type is None and 'restoreType' in kwargs: + restore_type = kwargs['restoreType'] + if use_latest_restorable_time is None and 'useLatestRestorableTime' in kwargs: + use_latest_restorable_time = kwargs['useLatestRestorableTime'] + + _setter("source_cluster_identifier", source_cluster_identifier) if restore_to_time is not None: - pulumi.set(__self__, "restore_to_time", restore_to_time) + _setter("restore_to_time", restore_to_time) if restore_type is not None: - pulumi.set(__self__, "restore_type", restore_type) + _setter("restore_type", restore_type) if use_latest_restorable_time is not None: - pulumi.set(__self__, "use_latest_restorable_time", use_latest_restorable_time) + _setter("use_latest_restorable_time", use_latest_restorable_time) @property @pulumi.getter(name="sourceClusterIdentifier") @@ -236,12 +305,49 @@ def __init__(__self__, *, This will not recreate the resource if the S3 object changes in some way. It's only used to initialize the database. This only works currently with the aurora engine. See AWS for currently supported engines and options. See [Aurora S3 Migration Docs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3). :param pulumi.Input[str] bucket_prefix: Can be blank, but is the path to your backup """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "ingestion_role", ingestion_role) - pulumi.set(__self__, "source_engine", source_engine) - pulumi.set(__self__, "source_engine_version", source_engine_version) + ClusterS3ImportArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + ingestion_role=ingestion_role, + source_engine=source_engine, + source_engine_version=source_engine_version, + bucket_prefix=bucket_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + ingestion_role: Optional[pulumi.Input[str]] = None, + source_engine: Optional[pulumi.Input[str]] = None, + source_engine_version: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if ingestion_role is None and 'ingestionRole' in kwargs: + ingestion_role = kwargs['ingestionRole'] + if ingestion_role is None: + raise TypeError("Missing 'ingestion_role' argument") + if source_engine is None and 'sourceEngine' in kwargs: + source_engine = kwargs['sourceEngine'] + if source_engine is None: + raise TypeError("Missing 'source_engine' argument") + if source_engine_version is None and 'sourceEngineVersion' in kwargs: + source_engine_version = kwargs['sourceEngineVersion'] + if source_engine_version is None: + raise TypeError("Missing 'source_engine_version' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + + _setter("bucket_name", bucket_name) + _setter("ingestion_role", ingestion_role) + _setter("source_engine", source_engine) + _setter("source_engine_version", source_engine_version) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) @property @pulumi.getter(name="bucketName") @@ -321,16 +427,45 @@ def __init__(__self__, *, :param pulumi.Input[int] seconds_until_auto_pause: Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are `300` through `86400`. Defaults to `300`. :param pulumi.Input[str] timeout_action: Action to take when the timeout is reached. Valid values: `ForceApplyCapacityChange`, `RollbackCapacityChange`. Defaults to `RollbackCapacityChange`. See [documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.timeout-action). """ + ClusterScalingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_pause=auto_pause, + max_capacity=max_capacity, + min_capacity=min_capacity, + seconds_until_auto_pause=seconds_until_auto_pause, + timeout_action=timeout_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_pause: Optional[pulumi.Input[bool]] = None, + max_capacity: Optional[pulumi.Input[int]] = None, + min_capacity: Optional[pulumi.Input[int]] = None, + seconds_until_auto_pause: Optional[pulumi.Input[int]] = None, + timeout_action: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_pause is None and 'autoPause' in kwargs: + auto_pause = kwargs['autoPause'] + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if seconds_until_auto_pause is None and 'secondsUntilAutoPause' in kwargs: + seconds_until_auto_pause = kwargs['secondsUntilAutoPause'] + if timeout_action is None and 'timeoutAction' in kwargs: + timeout_action = kwargs['timeoutAction'] + if auto_pause is not None: - pulumi.set(__self__, "auto_pause", auto_pause) + _setter("auto_pause", auto_pause) if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if min_capacity is not None: - pulumi.set(__self__, "min_capacity", min_capacity) + _setter("min_capacity", min_capacity) if seconds_until_auto_pause is not None: - pulumi.set(__self__, "seconds_until_auto_pause", seconds_until_auto_pause) + _setter("seconds_until_auto_pause", seconds_until_auto_pause) if timeout_action is not None: - pulumi.set(__self__, "timeout_action", timeout_action) + _setter("timeout_action", timeout_action) @property @pulumi.getter(name="autoPause") @@ -402,8 +537,29 @@ def __init__(__self__, *, :param pulumi.Input[float] max_capacity: Maximum capacity for an Aurora DB cluster in `serverless` DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, `256`. Valid Aurora PostgreSQL capacity values are (`2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`). Defaults to `16`. :param pulumi.Input[float] min_capacity: Minimum capacity for an Aurora DB cluster in `serverless` DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, `256`. Valid Aurora PostgreSQL capacity values are (`2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`). Defaults to `1`. """ - pulumi.set(__self__, "max_capacity", max_capacity) - pulumi.set(__self__, "min_capacity", min_capacity) + ClusterServerlessv2ScalingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_capacity=max_capacity, + min_capacity=min_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_capacity: Optional[pulumi.Input[float]] = None, + min_capacity: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if max_capacity is None: + raise TypeError("Missing 'max_capacity' argument") + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if min_capacity is None: + raise TypeError("Missing 'min_capacity' argument") + + _setter("max_capacity", max_capacity) + _setter("min_capacity", min_capacity) @property @pulumi.getter(name="maxCapacity") @@ -435,10 +591,23 @@ class ExportTaskTimeoutsArgs: def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None): + ExportTaskTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) @property @pulumi.getter @@ -468,10 +637,27 @@ def __init__(__self__, *, :param pulumi.Input[str] db_cluster_arn: Amazon Resource Name (ARN) of member DB Cluster :param pulumi.Input[bool] is_writer: Whether the member is the primary DB Cluster """ + GlobalClusterGlobalClusterMemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_arn=db_cluster_arn, + is_writer=is_writer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_arn: Optional[pulumi.Input[str]] = None, + is_writer: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_arn is None and 'dbClusterArn' in kwargs: + db_cluster_arn = kwargs['dbClusterArn'] + if is_writer is None and 'isWriter' in kwargs: + is_writer = kwargs['isWriter'] + if db_cluster_arn is not None: - pulumi.set(__self__, "db_cluster_arn", db_cluster_arn) + _setter("db_cluster_arn", db_cluster_arn) if is_writer is not None: - pulumi.set(__self__, "is_writer", is_writer) + _setter("is_writer", is_writer) @property @pulumi.getter(name="dbClusterArn") @@ -513,8 +699,19 @@ def __init__(__self__, *, [blue-green]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html """ + InstanceBlueGreenUpdateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -548,12 +745,29 @@ def __init__(__self__, *, :param pulumi.Input[str] hosted_zone_id: Specifies the ID that Amazon Route 53 assigns when you create a hosted zone. :param pulumi.Input[int] port: The port on which the DB accepts connections. """ + InstanceListenerEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + hosted_zone_id=hosted_zone_id, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -604,12 +818,33 @@ def __init__(__self__, *, :param pulumi.Input[str] secret_arn: The Amazon Resource Name (ARN) of the secret. :param pulumi.Input[str] secret_status: The status of the secret. Valid Values: `creating` | `active` | `rotating` | `impaired`. """ + InstanceMasterUserSecretArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + secret_arn=secret_arn, + secret_status=secret_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + secret_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if secret_status is None and 'secretStatus' in kwargs: + secret_status = kwargs['secretStatus'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) if secret_status is not None: - pulumi.set(__self__, "secret_status", secret_status) + _setter("secret_status", secret_status) @property @pulumi.getter(name="kmsKeyId") @@ -664,16 +899,45 @@ def __init__(__self__, *, :param pulumi.Input[str] source_dbi_resource_id: The resource ID of the source DB instance from which to restore. Required if `source_db_instance_identifier` or `source_db_instance_automated_backups_arn` is not specified. :param pulumi.Input[bool] use_latest_restorable_time: A boolean value that indicates whether the DB instance is restored from the latest backup time. Defaults to `false`. Cannot be specified with `restore_time`. """ + InstanceRestoreToPointInTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + restore_time=restore_time, + source_db_instance_automated_backups_arn=source_db_instance_automated_backups_arn, + source_db_instance_identifier=source_db_instance_identifier, + source_dbi_resource_id=source_dbi_resource_id, + use_latest_restorable_time=use_latest_restorable_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + restore_time: Optional[pulumi.Input[str]] = None, + source_db_instance_automated_backups_arn: Optional[pulumi.Input[str]] = None, + source_db_instance_identifier: Optional[pulumi.Input[str]] = None, + source_dbi_resource_id: Optional[pulumi.Input[str]] = None, + use_latest_restorable_time: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if restore_time is None and 'restoreTime' in kwargs: + restore_time = kwargs['restoreTime'] + if source_db_instance_automated_backups_arn is None and 'sourceDbInstanceAutomatedBackupsArn' in kwargs: + source_db_instance_automated_backups_arn = kwargs['sourceDbInstanceAutomatedBackupsArn'] + if source_db_instance_identifier is None and 'sourceDbInstanceIdentifier' in kwargs: + source_db_instance_identifier = kwargs['sourceDbInstanceIdentifier'] + if source_dbi_resource_id is None and 'sourceDbiResourceId' in kwargs: + source_dbi_resource_id = kwargs['sourceDbiResourceId'] + if use_latest_restorable_time is None and 'useLatestRestorableTime' in kwargs: + use_latest_restorable_time = kwargs['useLatestRestorableTime'] + if restore_time is not None: - pulumi.set(__self__, "restore_time", restore_time) + _setter("restore_time", restore_time) if source_db_instance_automated_backups_arn is not None: - pulumi.set(__self__, "source_db_instance_automated_backups_arn", source_db_instance_automated_backups_arn) + _setter("source_db_instance_automated_backups_arn", source_db_instance_automated_backups_arn) if source_db_instance_identifier is not None: - pulumi.set(__self__, "source_db_instance_identifier", source_db_instance_identifier) + _setter("source_db_instance_identifier", source_db_instance_identifier) if source_dbi_resource_id is not None: - pulumi.set(__self__, "source_dbi_resource_id", source_dbi_resource_id) + _setter("source_dbi_resource_id", source_dbi_resource_id) if use_latest_restorable_time is not None: - pulumi.set(__self__, "use_latest_restorable_time", use_latest_restorable_time) + _setter("use_latest_restorable_time", use_latest_restorable_time) @property @pulumi.getter(name="restoreTime") @@ -753,12 +1017,49 @@ def __init__(__self__, *, This will not recreate the resource if the S3 object changes in some way. It's only used to initialize the database. :param pulumi.Input[str] bucket_prefix: Can be blank, but is the path to your backup """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "ingestion_role", ingestion_role) - pulumi.set(__self__, "source_engine", source_engine) - pulumi.set(__self__, "source_engine_version", source_engine_version) + InstanceS3ImportArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + ingestion_role=ingestion_role, + source_engine=source_engine, + source_engine_version=source_engine_version, + bucket_prefix=bucket_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + ingestion_role: Optional[pulumi.Input[str]] = None, + source_engine: Optional[pulumi.Input[str]] = None, + source_engine_version: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if ingestion_role is None and 'ingestionRole' in kwargs: + ingestion_role = kwargs['ingestionRole'] + if ingestion_role is None: + raise TypeError("Missing 'ingestion_role' argument") + if source_engine is None and 'sourceEngine' in kwargs: + source_engine = kwargs['sourceEngine'] + if source_engine is None: + raise TypeError("Missing 'source_engine' argument") + if source_engine_version is None and 'sourceEngineVersion' in kwargs: + source_engine_version = kwargs['sourceEngineVersion'] + if source_engine_version is None: + raise TypeError("Missing 'source_engine_version' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + + _setter("bucket_name", bucket_name) + _setter("ingestion_role", ingestion_role) + _setter("source_engine", source_engine) + _setter("source_engine_version", source_engine_version) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) @property @pulumi.getter(name="bucketName") @@ -840,17 +1141,48 @@ def __init__(__self__, *, :param pulumi.Input[str] version: Version of the option (e.g., 13.1.0.0). Leaving out or removing `version` from your configuration does not remove or clear a version from the option in AWS. AWS may assign a default version. Not including `version` in your configuration means that the AWS provider will ignore a previously set value, a value set by AWS, and any version changes. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_memberships: List of VPC Security Groups for which the option is enabled. """ - pulumi.set(__self__, "option_name", option_name) + OptionGroupOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + option_name=option_name, + db_security_group_memberships=db_security_group_memberships, + option_settings=option_settings, + port=port, + version=version, + vpc_security_group_memberships=vpc_security_group_memberships, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + option_name: Optional[pulumi.Input[str]] = None, + db_security_group_memberships: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + option_settings: Optional[pulumi.Input[Sequence[pulumi.Input['OptionGroupOptionOptionSettingArgs']]]] = None, + port: Optional[pulumi.Input[int]] = None, + version: Optional[pulumi.Input[str]] = None, + vpc_security_group_memberships: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if option_name is None and 'optionName' in kwargs: + option_name = kwargs['optionName'] + if option_name is None: + raise TypeError("Missing 'option_name' argument") + if db_security_group_memberships is None and 'dbSecurityGroupMemberships' in kwargs: + db_security_group_memberships = kwargs['dbSecurityGroupMemberships'] + if option_settings is None and 'optionSettings' in kwargs: + option_settings = kwargs['optionSettings'] + if vpc_security_group_memberships is None and 'vpcSecurityGroupMemberships' in kwargs: + vpc_security_group_memberships = kwargs['vpcSecurityGroupMemberships'] + + _setter("option_name", option_name) if db_security_group_memberships is not None: - pulumi.set(__self__, "db_security_group_memberships", db_security_group_memberships) + _setter("db_security_group_memberships", db_security_group_memberships) if option_settings is not None: - pulumi.set(__self__, "option_settings", option_settings) + _setter("option_settings", option_settings) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if vpc_security_group_memberships is not None: - pulumi.set(__self__, "vpc_security_group_memberships", vpc_security_group_memberships) + _setter("vpc_security_group_memberships", vpc_security_group_memberships) @property @pulumi.getter(name="optionName") @@ -934,8 +1266,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the setting. :param pulumi.Input[str] value: Value of the setting. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + OptionGroupOptionOptionSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -975,10 +1324,31 @@ def __init__(__self__, *, engines can't apply some parameters without a reboot, and you will need to specify "pending-reboot" here. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + apply_method: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter @@ -1036,18 +1406,47 @@ def __init__(__self__, *, :param pulumi.Input[str] secret_arn: The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager. :param pulumi.Input[str] username: The name of the database user to which the proxy connects. """ + ProxyAuthArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_scheme=auth_scheme, + client_password_auth_type=client_password_auth_type, + description=description, + iam_auth=iam_auth, + secret_arn=secret_arn, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_scheme: Optional[pulumi.Input[str]] = None, + client_password_auth_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + iam_auth: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_scheme is None and 'authScheme' in kwargs: + auth_scheme = kwargs['authScheme'] + if client_password_auth_type is None and 'clientPasswordAuthType' in kwargs: + client_password_auth_type = kwargs['clientPasswordAuthType'] + if iam_auth is None and 'iamAuth' in kwargs: + iam_auth = kwargs['iamAuth'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if auth_scheme is not None: - pulumi.set(__self__, "auth_scheme", auth_scheme) + _setter("auth_scheme", auth_scheme) if client_password_auth_type is not None: - pulumi.set(__self__, "client_password_auth_type", client_password_auth_type) + _setter("client_password_auth_type", client_password_auth_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if iam_auth is not None: - pulumi.set(__self__, "iam_auth", iam_auth) + _setter("iam_auth", iam_auth) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter(name="authScheme") @@ -1137,16 +1536,45 @@ def __init__(__self__, *, :param pulumi.Input[int] max_idle_connections_percent: Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. :param pulumi.Input[Sequence[pulumi.Input[str]]] session_pinning_filters: Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is `EXCLUDE_VARIABLE_SETS`. """ + ProxyDefaultTargetGroupConnectionPoolConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_borrow_timeout=connection_borrow_timeout, + init_query=init_query, + max_connections_percent=max_connections_percent, + max_idle_connections_percent=max_idle_connections_percent, + session_pinning_filters=session_pinning_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_borrow_timeout: Optional[pulumi.Input[int]] = None, + init_query: Optional[pulumi.Input[str]] = None, + max_connections_percent: Optional[pulumi.Input[int]] = None, + max_idle_connections_percent: Optional[pulumi.Input[int]] = None, + session_pinning_filters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_borrow_timeout is None and 'connectionBorrowTimeout' in kwargs: + connection_borrow_timeout = kwargs['connectionBorrowTimeout'] + if init_query is None and 'initQuery' in kwargs: + init_query = kwargs['initQuery'] + if max_connections_percent is None and 'maxConnectionsPercent' in kwargs: + max_connections_percent = kwargs['maxConnectionsPercent'] + if max_idle_connections_percent is None and 'maxIdleConnectionsPercent' in kwargs: + max_idle_connections_percent = kwargs['maxIdleConnectionsPercent'] + if session_pinning_filters is None and 'sessionPinningFilters' in kwargs: + session_pinning_filters = kwargs['sessionPinningFilters'] + if connection_borrow_timeout is not None: - pulumi.set(__self__, "connection_borrow_timeout", connection_borrow_timeout) + _setter("connection_borrow_timeout", connection_borrow_timeout) if init_query is not None: - pulumi.set(__self__, "init_query", init_query) + _setter("init_query", init_query) if max_connections_percent is not None: - pulumi.set(__self__, "max_connections_percent", max_connections_percent) + _setter("max_connections_percent", max_connections_percent) if max_idle_connections_percent is not None: - pulumi.set(__self__, "max_idle_connections_percent", max_idle_connections_percent) + _setter("max_idle_connections_percent", max_idle_connections_percent) if session_pinning_filters is not None: - pulumi.set(__self__, "session_pinning_filters", session_pinning_filters) + _setter("session_pinning_filters", session_pinning_filters) @property @pulumi.getter(name="connectionBorrowTimeout") @@ -1214,10 +1642,27 @@ class ReservedInstanceRecurringChargeArgs: def __init__(__self__, *, recurring_charge_amount: Optional[pulumi.Input[int]] = None, recurring_charge_frequency: Optional[pulumi.Input[str]] = None): + ReservedInstanceRecurringChargeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + recurring_charge_amount=recurring_charge_amount, + recurring_charge_frequency=recurring_charge_frequency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + recurring_charge_amount: Optional[pulumi.Input[int]] = None, + recurring_charge_frequency: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recurring_charge_amount is None and 'recurringChargeAmount' in kwargs: + recurring_charge_amount = kwargs['recurringChargeAmount'] + if recurring_charge_frequency is None and 'recurringChargeFrequency' in kwargs: + recurring_charge_frequency = kwargs['recurringChargeFrequency'] + if recurring_charge_amount is not None: - pulumi.set(__self__, "recurring_charge_amount", recurring_charge_amount) + _setter("recurring_charge_amount", recurring_charge_amount) if recurring_charge_frequency is not None: - pulumi.set(__self__, "recurring_charge_frequency", recurring_charge_frequency) + _setter("recurring_charge_frequency", recurring_charge_frequency) @property @pulumi.getter(name="recurringChargeAmount") @@ -1247,8 +1692,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [RDS DescribeDBClusters API Reference](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetClustersFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1280,8 +1742,25 @@ class GetEngineVersionFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetEngineVersionFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1311,8 +1790,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [RDS DescribeDBClusters API Reference](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) or [RDS DescribeDBInstances API Reference](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstancesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/rds/cluster.py b/sdk/python/pulumi_aws/rds/cluster.py index a1ba00a6546..f2fd6f1f9e3 100644 --- a/sdk/python/pulumi_aws/rds/cluster.py +++ b/sdk/python/pulumi_aws/rds/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -117,103 +117,302 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the DB cluster. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of VPC security groups to associate with the Cluster """ - pulumi.set(__self__, "engine", engine) + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + engine=engine, + allocated_storage=allocated_storage, + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + availability_zones=availability_zones, + backtrack_window=backtrack_window, + backup_retention_period=backup_retention_period, + cluster_identifier=cluster_identifier, + cluster_identifier_prefix=cluster_identifier_prefix, + cluster_members=cluster_members, + copy_tags_to_snapshot=copy_tags_to_snapshot, + database_name=database_name, + db_cluster_instance_class=db_cluster_instance_class, + db_cluster_parameter_group_name=db_cluster_parameter_group_name, + db_instance_parameter_group_name=db_instance_parameter_group_name, + db_subnet_group_name=db_subnet_group_name, + db_system_id=db_system_id, + deletion_protection=deletion_protection, + enable_global_write_forwarding=enable_global_write_forwarding, + enable_http_endpoint=enable_http_endpoint, + enabled_cloudwatch_logs_exports=enabled_cloudwatch_logs_exports, + engine_mode=engine_mode, + engine_version=engine_version, + final_snapshot_identifier=final_snapshot_identifier, + global_cluster_identifier=global_cluster_identifier, + iam_database_authentication_enabled=iam_database_authentication_enabled, + iam_roles=iam_roles, + iops=iops, + kms_key_id=kms_key_id, + manage_master_user_password=manage_master_user_password, + master_password=master_password, + master_user_secret_kms_key_id=master_user_secret_kms_key_id, + master_username=master_username, + network_type=network_type, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + replication_source_identifier=replication_source_identifier, + restore_to_point_in_time=restore_to_point_in_time, + s3_import=s3_import, + scaling_configuration=scaling_configuration, + serverlessv2_scaling_configuration=serverlessv2_scaling_configuration, + skip_final_snapshot=skip_final_snapshot, + snapshot_identifier=snapshot_identifier, + source_region=source_region, + storage_encrypted=storage_encrypted, + storage_type=storage_type, + tags=tags, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engine: Optional[pulumi.Input[Union[str, 'EngineType']]] = None, + allocated_storage: Optional[pulumi.Input[int]] = None, + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backtrack_window: Optional[pulumi.Input[int]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier_prefix: Optional[pulumi.Input[str]] = None, + cluster_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + database_name: Optional[pulumi.Input[str]] = None, + db_cluster_instance_class: Optional[pulumi.Input[str]] = None, + db_cluster_parameter_group_name: Optional[pulumi.Input[str]] = None, + db_instance_parameter_group_name: Optional[pulumi.Input[str]] = None, + db_subnet_group_name: Optional[pulumi.Input[str]] = None, + db_system_id: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + enable_global_write_forwarding: Optional[pulumi.Input[bool]] = None, + enable_http_endpoint: Optional[pulumi.Input[bool]] = None, + enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + engine_mode: Optional[pulumi.Input[Union[str, 'EngineMode']]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + iam_database_authentication_enabled: Optional[pulumi.Input[bool]] = None, + iam_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + manage_master_user_password: Optional[pulumi.Input[bool]] = None, + master_password: Optional[pulumi.Input[str]] = None, + master_user_secret_kms_key_id: Optional[pulumi.Input[str]] = None, + master_username: Optional[pulumi.Input[str]] = None, + network_type: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + replication_source_identifier: Optional[pulumi.Input[str]] = None, + restore_to_point_in_time: Optional[pulumi.Input['ClusterRestoreToPointInTimeArgs']] = None, + s3_import: Optional[pulumi.Input['ClusterS3ImportArgs']] = None, + scaling_configuration: Optional[pulumi.Input['ClusterScalingConfigurationArgs']] = None, + serverlessv2_scaling_configuration: Optional[pulumi.Input['ClusterServerlessv2ScalingConfigurationArgs']] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + source_region: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engine is None: + raise TypeError("Missing 'engine' argument") + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if backtrack_window is None and 'backtrackWindow' in kwargs: + backtrack_window = kwargs['backtrackWindow'] + if backup_retention_period is None and 'backupRetentionPeriod' in kwargs: + backup_retention_period = kwargs['backupRetentionPeriod'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier_prefix is None and 'clusterIdentifierPrefix' in kwargs: + cluster_identifier_prefix = kwargs['clusterIdentifierPrefix'] + if cluster_members is None and 'clusterMembers' in kwargs: + cluster_members = kwargs['clusterMembers'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if db_cluster_instance_class is None and 'dbClusterInstanceClass' in kwargs: + db_cluster_instance_class = kwargs['dbClusterInstanceClass'] + if db_cluster_parameter_group_name is None and 'dbClusterParameterGroupName' in kwargs: + db_cluster_parameter_group_name = kwargs['dbClusterParameterGroupName'] + if db_instance_parameter_group_name is None and 'dbInstanceParameterGroupName' in kwargs: + db_instance_parameter_group_name = kwargs['dbInstanceParameterGroupName'] + if db_subnet_group_name is None and 'dbSubnetGroupName' in kwargs: + db_subnet_group_name = kwargs['dbSubnetGroupName'] + if db_system_id is None and 'dbSystemId' in kwargs: + db_system_id = kwargs['dbSystemId'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if enable_global_write_forwarding is None and 'enableGlobalWriteForwarding' in kwargs: + enable_global_write_forwarding = kwargs['enableGlobalWriteForwarding'] + if enable_http_endpoint is None and 'enableHttpEndpoint' in kwargs: + enable_http_endpoint = kwargs['enableHttpEndpoint'] + if enabled_cloudwatch_logs_exports is None and 'enabledCloudwatchLogsExports' in kwargs: + enabled_cloudwatch_logs_exports = kwargs['enabledCloudwatchLogsExports'] + if engine_mode is None and 'engineMode' in kwargs: + engine_mode = kwargs['engineMode'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if iam_database_authentication_enabled is None and 'iamDatabaseAuthenticationEnabled' in kwargs: + iam_database_authentication_enabled = kwargs['iamDatabaseAuthenticationEnabled'] + if iam_roles is None and 'iamRoles' in kwargs: + iam_roles = kwargs['iamRoles'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if manage_master_user_password is None and 'manageMasterUserPassword' in kwargs: + manage_master_user_password = kwargs['manageMasterUserPassword'] + if master_password is None and 'masterPassword' in kwargs: + master_password = kwargs['masterPassword'] + if master_user_secret_kms_key_id is None and 'masterUserSecretKmsKeyId' in kwargs: + master_user_secret_kms_key_id = kwargs['masterUserSecretKmsKeyId'] + if master_username is None and 'masterUsername' in kwargs: + master_username = kwargs['masterUsername'] + if network_type is None and 'networkType' in kwargs: + network_type = kwargs['networkType'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if replication_source_identifier is None and 'replicationSourceIdentifier' in kwargs: + replication_source_identifier = kwargs['replicationSourceIdentifier'] + if restore_to_point_in_time is None and 'restoreToPointInTime' in kwargs: + restore_to_point_in_time = kwargs['restoreToPointInTime'] + if s3_import is None and 's3Import' in kwargs: + s3_import = kwargs['s3Import'] + if scaling_configuration is None and 'scalingConfiguration' in kwargs: + scaling_configuration = kwargs['scalingConfiguration'] + if serverlessv2_scaling_configuration is None and 'serverlessv2ScalingConfiguration' in kwargs: + serverlessv2_scaling_configuration = kwargs['serverlessv2ScalingConfiguration'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if source_region is None and 'sourceRegion' in kwargs: + source_region = kwargs['sourceRegion'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("engine", engine) if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if backtrack_window is not None: - pulumi.set(__self__, "backtrack_window", backtrack_window) + _setter("backtrack_window", backtrack_window) if backup_retention_period is not None: - pulumi.set(__self__, "backup_retention_period", backup_retention_period) + _setter("backup_retention_period", backup_retention_period) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if cluster_identifier_prefix is not None: - pulumi.set(__self__, "cluster_identifier_prefix", cluster_identifier_prefix) + _setter("cluster_identifier_prefix", cluster_identifier_prefix) if cluster_members is not None: - pulumi.set(__self__, "cluster_members", cluster_members) + _setter("cluster_members", cluster_members) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if db_cluster_instance_class is not None: - pulumi.set(__self__, "db_cluster_instance_class", db_cluster_instance_class) + _setter("db_cluster_instance_class", db_cluster_instance_class) if db_cluster_parameter_group_name is not None: - pulumi.set(__self__, "db_cluster_parameter_group_name", db_cluster_parameter_group_name) + _setter("db_cluster_parameter_group_name", db_cluster_parameter_group_name) if db_instance_parameter_group_name is not None: - pulumi.set(__self__, "db_instance_parameter_group_name", db_instance_parameter_group_name) + _setter("db_instance_parameter_group_name", db_instance_parameter_group_name) if db_subnet_group_name is not None: - pulumi.set(__self__, "db_subnet_group_name", db_subnet_group_name) + _setter("db_subnet_group_name", db_subnet_group_name) if db_system_id is not None: - pulumi.set(__self__, "db_system_id", db_system_id) + _setter("db_system_id", db_system_id) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if enable_global_write_forwarding is not None: - pulumi.set(__self__, "enable_global_write_forwarding", enable_global_write_forwarding) + _setter("enable_global_write_forwarding", enable_global_write_forwarding) if enable_http_endpoint is not None: - pulumi.set(__self__, "enable_http_endpoint", enable_http_endpoint) + _setter("enable_http_endpoint", enable_http_endpoint) if enabled_cloudwatch_logs_exports is not None: - pulumi.set(__self__, "enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) + _setter("enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) if engine_mode is not None: - pulumi.set(__self__, "engine_mode", engine_mode) + _setter("engine_mode", engine_mode) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if global_cluster_identifier is not None: - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + _setter("global_cluster_identifier", global_cluster_identifier) if iam_database_authentication_enabled is not None: - pulumi.set(__self__, "iam_database_authentication_enabled", iam_database_authentication_enabled) + _setter("iam_database_authentication_enabled", iam_database_authentication_enabled) if iam_roles is not None: - pulumi.set(__self__, "iam_roles", iam_roles) + _setter("iam_roles", iam_roles) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if manage_master_user_password is not None: - pulumi.set(__self__, "manage_master_user_password", manage_master_user_password) + _setter("manage_master_user_password", manage_master_user_password) if master_password is not None: - pulumi.set(__self__, "master_password", master_password) + _setter("master_password", master_password) if master_user_secret_kms_key_id is not None: - pulumi.set(__self__, "master_user_secret_kms_key_id", master_user_secret_kms_key_id) + _setter("master_user_secret_kms_key_id", master_user_secret_kms_key_id) if master_username is not None: - pulumi.set(__self__, "master_username", master_username) + _setter("master_username", master_username) if network_type is not None: - pulumi.set(__self__, "network_type", network_type) + _setter("network_type", network_type) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if replication_source_identifier is not None: - pulumi.set(__self__, "replication_source_identifier", replication_source_identifier) + _setter("replication_source_identifier", replication_source_identifier) if restore_to_point_in_time is not None: - pulumi.set(__self__, "restore_to_point_in_time", restore_to_point_in_time) + _setter("restore_to_point_in_time", restore_to_point_in_time) if s3_import is not None: - pulumi.set(__self__, "s3_import", s3_import) + _setter("s3_import", s3_import) if scaling_configuration is not None: - pulumi.set(__self__, "scaling_configuration", scaling_configuration) + _setter("scaling_configuration", scaling_configuration) if serverlessv2_scaling_configuration is not None: - pulumi.set(__self__, "serverlessv2_scaling_configuration", serverlessv2_scaling_configuration) + _setter("serverlessv2_scaling_configuration", serverlessv2_scaling_configuration) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if source_region is not None: - pulumi.set(__self__, "source_region", source_region) + _setter("source_region", source_region) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter @@ -921,123 +1120,348 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of VPC security groups to associate with the Cluster """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocated_storage=allocated_storage, + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + arn=arn, + availability_zones=availability_zones, + backtrack_window=backtrack_window, + backup_retention_period=backup_retention_period, + cluster_identifier=cluster_identifier, + cluster_identifier_prefix=cluster_identifier_prefix, + cluster_members=cluster_members, + cluster_resource_id=cluster_resource_id, + copy_tags_to_snapshot=copy_tags_to_snapshot, + database_name=database_name, + db_cluster_instance_class=db_cluster_instance_class, + db_cluster_parameter_group_name=db_cluster_parameter_group_name, + db_instance_parameter_group_name=db_instance_parameter_group_name, + db_subnet_group_name=db_subnet_group_name, + db_system_id=db_system_id, + deletion_protection=deletion_protection, + enable_global_write_forwarding=enable_global_write_forwarding, + enable_http_endpoint=enable_http_endpoint, + enabled_cloudwatch_logs_exports=enabled_cloudwatch_logs_exports, + endpoint=endpoint, + engine=engine, + engine_mode=engine_mode, + engine_version=engine_version, + engine_version_actual=engine_version_actual, + final_snapshot_identifier=final_snapshot_identifier, + global_cluster_identifier=global_cluster_identifier, + hosted_zone_id=hosted_zone_id, + iam_database_authentication_enabled=iam_database_authentication_enabled, + iam_roles=iam_roles, + iops=iops, + kms_key_id=kms_key_id, + manage_master_user_password=manage_master_user_password, + master_password=master_password, + master_user_secret_kms_key_id=master_user_secret_kms_key_id, + master_user_secrets=master_user_secrets, + master_username=master_username, + network_type=network_type, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + reader_endpoint=reader_endpoint, + replication_source_identifier=replication_source_identifier, + restore_to_point_in_time=restore_to_point_in_time, + s3_import=s3_import, + scaling_configuration=scaling_configuration, + serverlessv2_scaling_configuration=serverlessv2_scaling_configuration, + skip_final_snapshot=skip_final_snapshot, + snapshot_identifier=snapshot_identifier, + source_region=source_region, + storage_encrypted=storage_encrypted, + storage_type=storage_type, + tags=tags, + tags_all=tags_all, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocated_storage: Optional[pulumi.Input[int]] = None, + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + backtrack_window: Optional[pulumi.Input[int]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier_prefix: Optional[pulumi.Input[str]] = None, + cluster_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cluster_resource_id: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + database_name: Optional[pulumi.Input[str]] = None, + db_cluster_instance_class: Optional[pulumi.Input[str]] = None, + db_cluster_parameter_group_name: Optional[pulumi.Input[str]] = None, + db_instance_parameter_group_name: Optional[pulumi.Input[str]] = None, + db_subnet_group_name: Optional[pulumi.Input[str]] = None, + db_system_id: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + enable_global_write_forwarding: Optional[pulumi.Input[bool]] = None, + enable_http_endpoint: Optional[pulumi.Input[bool]] = None, + enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[Union[str, 'EngineType']]] = None, + engine_mode: Optional[pulumi.Input[Union[str, 'EngineMode']]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + engine_version_actual: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + iam_database_authentication_enabled: Optional[pulumi.Input[bool]] = None, + iam_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + manage_master_user_password: Optional[pulumi.Input[bool]] = None, + master_password: Optional[pulumi.Input[str]] = None, + master_user_secret_kms_key_id: Optional[pulumi.Input[str]] = None, + master_user_secrets: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterMasterUserSecretArgs']]]] = None, + master_username: Optional[pulumi.Input[str]] = None, + network_type: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + reader_endpoint: Optional[pulumi.Input[str]] = None, + replication_source_identifier: Optional[pulumi.Input[str]] = None, + restore_to_point_in_time: Optional[pulumi.Input['ClusterRestoreToPointInTimeArgs']] = None, + s3_import: Optional[pulumi.Input['ClusterS3ImportArgs']] = None, + scaling_configuration: Optional[pulumi.Input['ClusterScalingConfigurationArgs']] = None, + serverlessv2_scaling_configuration: Optional[pulumi.Input['ClusterServerlessv2ScalingConfigurationArgs']] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + source_region: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if backtrack_window is None and 'backtrackWindow' in kwargs: + backtrack_window = kwargs['backtrackWindow'] + if backup_retention_period is None and 'backupRetentionPeriod' in kwargs: + backup_retention_period = kwargs['backupRetentionPeriod'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier_prefix is None and 'clusterIdentifierPrefix' in kwargs: + cluster_identifier_prefix = kwargs['clusterIdentifierPrefix'] + if cluster_members is None and 'clusterMembers' in kwargs: + cluster_members = kwargs['clusterMembers'] + if cluster_resource_id is None and 'clusterResourceId' in kwargs: + cluster_resource_id = kwargs['clusterResourceId'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if db_cluster_instance_class is None and 'dbClusterInstanceClass' in kwargs: + db_cluster_instance_class = kwargs['dbClusterInstanceClass'] + if db_cluster_parameter_group_name is None and 'dbClusterParameterGroupName' in kwargs: + db_cluster_parameter_group_name = kwargs['dbClusterParameterGroupName'] + if db_instance_parameter_group_name is None and 'dbInstanceParameterGroupName' in kwargs: + db_instance_parameter_group_name = kwargs['dbInstanceParameterGroupName'] + if db_subnet_group_name is None and 'dbSubnetGroupName' in kwargs: + db_subnet_group_name = kwargs['dbSubnetGroupName'] + if db_system_id is None and 'dbSystemId' in kwargs: + db_system_id = kwargs['dbSystemId'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if enable_global_write_forwarding is None and 'enableGlobalWriteForwarding' in kwargs: + enable_global_write_forwarding = kwargs['enableGlobalWriteForwarding'] + if enable_http_endpoint is None and 'enableHttpEndpoint' in kwargs: + enable_http_endpoint = kwargs['enableHttpEndpoint'] + if enabled_cloudwatch_logs_exports is None and 'enabledCloudwatchLogsExports' in kwargs: + enabled_cloudwatch_logs_exports = kwargs['enabledCloudwatchLogsExports'] + if engine_mode is None and 'engineMode' in kwargs: + engine_mode = kwargs['engineMode'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version_actual is None and 'engineVersionActual' in kwargs: + engine_version_actual = kwargs['engineVersionActual'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if iam_database_authentication_enabled is None and 'iamDatabaseAuthenticationEnabled' in kwargs: + iam_database_authentication_enabled = kwargs['iamDatabaseAuthenticationEnabled'] + if iam_roles is None and 'iamRoles' in kwargs: + iam_roles = kwargs['iamRoles'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if manage_master_user_password is None and 'manageMasterUserPassword' in kwargs: + manage_master_user_password = kwargs['manageMasterUserPassword'] + if master_password is None and 'masterPassword' in kwargs: + master_password = kwargs['masterPassword'] + if master_user_secret_kms_key_id is None and 'masterUserSecretKmsKeyId' in kwargs: + master_user_secret_kms_key_id = kwargs['masterUserSecretKmsKeyId'] + if master_user_secrets is None and 'masterUserSecrets' in kwargs: + master_user_secrets = kwargs['masterUserSecrets'] + if master_username is None and 'masterUsername' in kwargs: + master_username = kwargs['masterUsername'] + if network_type is None and 'networkType' in kwargs: + network_type = kwargs['networkType'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if reader_endpoint is None and 'readerEndpoint' in kwargs: + reader_endpoint = kwargs['readerEndpoint'] + if replication_source_identifier is None and 'replicationSourceIdentifier' in kwargs: + replication_source_identifier = kwargs['replicationSourceIdentifier'] + if restore_to_point_in_time is None and 'restoreToPointInTime' in kwargs: + restore_to_point_in_time = kwargs['restoreToPointInTime'] + if s3_import is None and 's3Import' in kwargs: + s3_import = kwargs['s3Import'] + if scaling_configuration is None and 'scalingConfiguration' in kwargs: + scaling_configuration = kwargs['scalingConfiguration'] + if serverlessv2_scaling_configuration is None and 'serverlessv2ScalingConfiguration' in kwargs: + serverlessv2_scaling_configuration = kwargs['serverlessv2ScalingConfiguration'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if source_region is None and 'sourceRegion' in kwargs: + source_region = kwargs['sourceRegion'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if backtrack_window is not None: - pulumi.set(__self__, "backtrack_window", backtrack_window) + _setter("backtrack_window", backtrack_window) if backup_retention_period is not None: - pulumi.set(__self__, "backup_retention_period", backup_retention_period) + _setter("backup_retention_period", backup_retention_period) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if cluster_identifier_prefix is not None: - pulumi.set(__self__, "cluster_identifier_prefix", cluster_identifier_prefix) + _setter("cluster_identifier_prefix", cluster_identifier_prefix) if cluster_members is not None: - pulumi.set(__self__, "cluster_members", cluster_members) + _setter("cluster_members", cluster_members) if cluster_resource_id is not None: - pulumi.set(__self__, "cluster_resource_id", cluster_resource_id) + _setter("cluster_resource_id", cluster_resource_id) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if db_cluster_instance_class is not None: - pulumi.set(__self__, "db_cluster_instance_class", db_cluster_instance_class) + _setter("db_cluster_instance_class", db_cluster_instance_class) if db_cluster_parameter_group_name is not None: - pulumi.set(__self__, "db_cluster_parameter_group_name", db_cluster_parameter_group_name) + _setter("db_cluster_parameter_group_name", db_cluster_parameter_group_name) if db_instance_parameter_group_name is not None: - pulumi.set(__self__, "db_instance_parameter_group_name", db_instance_parameter_group_name) + _setter("db_instance_parameter_group_name", db_instance_parameter_group_name) if db_subnet_group_name is not None: - pulumi.set(__self__, "db_subnet_group_name", db_subnet_group_name) + _setter("db_subnet_group_name", db_subnet_group_name) if db_system_id is not None: - pulumi.set(__self__, "db_system_id", db_system_id) + _setter("db_system_id", db_system_id) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if enable_global_write_forwarding is not None: - pulumi.set(__self__, "enable_global_write_forwarding", enable_global_write_forwarding) + _setter("enable_global_write_forwarding", enable_global_write_forwarding) if enable_http_endpoint is not None: - pulumi.set(__self__, "enable_http_endpoint", enable_http_endpoint) + _setter("enable_http_endpoint", enable_http_endpoint) if enabled_cloudwatch_logs_exports is not None: - pulumi.set(__self__, "enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) + _setter("enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_mode is not None: - pulumi.set(__self__, "engine_mode", engine_mode) + _setter("engine_mode", engine_mode) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if engine_version_actual is not None: - pulumi.set(__self__, "engine_version_actual", engine_version_actual) + _setter("engine_version_actual", engine_version_actual) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if global_cluster_identifier is not None: - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + _setter("global_cluster_identifier", global_cluster_identifier) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if iam_database_authentication_enabled is not None: - pulumi.set(__self__, "iam_database_authentication_enabled", iam_database_authentication_enabled) + _setter("iam_database_authentication_enabled", iam_database_authentication_enabled) if iam_roles is not None: - pulumi.set(__self__, "iam_roles", iam_roles) + _setter("iam_roles", iam_roles) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if manage_master_user_password is not None: - pulumi.set(__self__, "manage_master_user_password", manage_master_user_password) + _setter("manage_master_user_password", manage_master_user_password) if master_password is not None: - pulumi.set(__self__, "master_password", master_password) + _setter("master_password", master_password) if master_user_secret_kms_key_id is not None: - pulumi.set(__self__, "master_user_secret_kms_key_id", master_user_secret_kms_key_id) + _setter("master_user_secret_kms_key_id", master_user_secret_kms_key_id) if master_user_secrets is not None: - pulumi.set(__self__, "master_user_secrets", master_user_secrets) + _setter("master_user_secrets", master_user_secrets) if master_username is not None: - pulumi.set(__self__, "master_username", master_username) + _setter("master_username", master_username) if network_type is not None: - pulumi.set(__self__, "network_type", network_type) + _setter("network_type", network_type) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if reader_endpoint is not None: - pulumi.set(__self__, "reader_endpoint", reader_endpoint) + _setter("reader_endpoint", reader_endpoint) if replication_source_identifier is not None: - pulumi.set(__self__, "replication_source_identifier", replication_source_identifier) + _setter("replication_source_identifier", replication_source_identifier) if restore_to_point_in_time is not None: - pulumi.set(__self__, "restore_to_point_in_time", restore_to_point_in_time) + _setter("restore_to_point_in_time", restore_to_point_in_time) if s3_import is not None: - pulumi.set(__self__, "s3_import", s3_import) + _setter("s3_import", s3_import) if scaling_configuration is not None: - pulumi.set(__self__, "scaling_configuration", scaling_configuration) + _setter("scaling_configuration", scaling_configuration) if serverlessv2_scaling_configuration is not None: - pulumi.set(__self__, "serverlessv2_scaling_configuration", serverlessv2_scaling_configuration) + _setter("serverlessv2_scaling_configuration", serverlessv2_scaling_configuration) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if source_region is not None: - pulumi.set(__self__, "source_region", source_region) + _setter("source_region", source_region) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="allocatedStorage") @@ -2265,6 +2689,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -2368,9 +2796,13 @@ def _internal_init(__self__, __props__.__dict__["preferred_backup_window"] = preferred_backup_window __props__.__dict__["preferred_maintenance_window"] = preferred_maintenance_window __props__.__dict__["replication_source_identifier"] = replication_source_identifier + restore_to_point_in_time = _utilities.configure(restore_to_point_in_time, ClusterRestoreToPointInTimeArgs, True) __props__.__dict__["restore_to_point_in_time"] = restore_to_point_in_time + s3_import = _utilities.configure(s3_import, ClusterS3ImportArgs, True) __props__.__dict__["s3_import"] = s3_import + scaling_configuration = _utilities.configure(scaling_configuration, ClusterScalingConfigurationArgs, True) __props__.__dict__["scaling_configuration"] = scaling_configuration + serverlessv2_scaling_configuration = _utilities.configure(serverlessv2_scaling_configuration, ClusterServerlessv2ScalingConfigurationArgs, True) __props__.__dict__["serverlessv2_scaling_configuration"] = serverlessv2_scaling_configuration __props__.__dict__["skip_final_snapshot"] = skip_final_snapshot __props__.__dict__["snapshot_identifier"] = snapshot_identifier diff --git a/sdk/python/pulumi_aws/rds/cluster_activity_stream.py b/sdk/python/pulumi_aws/rds/cluster_activity_stream.py index cb9c8b378b0..6af8035c03e 100644 --- a/sdk/python/pulumi_aws/rds/cluster_activity_stream.py +++ b/sdk/python/pulumi_aws/rds/cluster_activity_stream.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterActivityStreamArgs', 'ClusterActivityStream'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the DB cluster. :param pulumi.Input[bool] engine_native_audit_fields_included: Specifies whether the database activity stream includes engine-native audit fields. This option only applies to an Oracle DB instance. By default, no engine-native audit fields are included. Defaults `false`. """ - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "mode", mode) - pulumi.set(__self__, "resource_arn", resource_arn) + ClusterActivityStreamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + mode=mode, + resource_arn=resource_arn, + engine_native_audit_fields_included=engine_native_audit_fields_included, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + engine_native_audit_fields_included: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if mode is None: + raise TypeError("Missing 'mode' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if engine_native_audit_fields_included is None and 'engineNativeAuditFieldsIncluded' in kwargs: + engine_native_audit_fields_included = kwargs['engineNativeAuditFieldsIncluded'] + + _setter("kms_key_id", kms_key_id) + _setter("mode", mode) + _setter("resource_arn", resource_arn) if engine_native_audit_fields_included is not None: - pulumi.set(__self__, "engine_native_audit_fields_included", engine_native_audit_fields_included) + _setter("engine_native_audit_fields_included", engine_native_audit_fields_included) @property @pulumi.getter(name="kmsKeyId") @@ -96,16 +125,43 @@ def __init__(__self__, *, :param pulumi.Input[str] mode: Specifies the mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. One of: `sync`, `async`. :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the DB cluster. """ + _ClusterActivityStreamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + engine_native_audit_fields_included=engine_native_audit_fields_included, + kinesis_stream_name=kinesis_stream_name, + kms_key_id=kms_key_id, + mode=mode, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engine_native_audit_fields_included: Optional[pulumi.Input[bool]] = None, + kinesis_stream_name: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + mode: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engine_native_audit_fields_included is None and 'engineNativeAuditFieldsIncluded' in kwargs: + engine_native_audit_fields_included = kwargs['engineNativeAuditFieldsIncluded'] + if kinesis_stream_name is None and 'kinesisStreamName' in kwargs: + kinesis_stream_name = kwargs['kinesisStreamName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if engine_native_audit_fields_included is not None: - pulumi.set(__self__, "engine_native_audit_fields_included", engine_native_audit_fields_included) + _setter("engine_native_audit_fields_included", engine_native_audit_fields_included) if kinesis_stream_name is not None: - pulumi.set(__self__, "kinesis_stream_name", kinesis_stream_name) + _setter("kinesis_stream_name", kinesis_stream_name) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="engineNativeAuditFieldsIncluded") @@ -301,6 +357,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterActivityStreamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/cluster_endpoint.py b/sdk/python/pulumi_aws/rds/cluster_endpoint.py index c3e7a54f60a..85d533f1471 100644 --- a/sdk/python/pulumi_aws/rds/cluster_endpoint.py +++ b/sdk/python/pulumi_aws/rds/cluster_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterEndpointArgs', 'ClusterEndpoint'] @@ -29,15 +29,52 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] static_members: List of DB instance identifiers that are part of the custom endpoint group. Conflicts with `excluded_members`. :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. """ - pulumi.set(__self__, "cluster_endpoint_identifier", cluster_endpoint_identifier) - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "custom_endpoint_type", custom_endpoint_type) + ClusterEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_endpoint_identifier=cluster_endpoint_identifier, + cluster_identifier=cluster_identifier, + custom_endpoint_type=custom_endpoint_type, + excluded_members=excluded_members, + static_members=static_members, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_endpoint_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + custom_endpoint_type: Optional[pulumi.Input[str]] = None, + excluded_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + static_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_endpoint_identifier is None and 'clusterEndpointIdentifier' in kwargs: + cluster_endpoint_identifier = kwargs['clusterEndpointIdentifier'] + if cluster_endpoint_identifier is None: + raise TypeError("Missing 'cluster_endpoint_identifier' argument") + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if custom_endpoint_type is None and 'customEndpointType' in kwargs: + custom_endpoint_type = kwargs['customEndpointType'] + if custom_endpoint_type is None: + raise TypeError("Missing 'custom_endpoint_type' argument") + if excluded_members is None and 'excludedMembers' in kwargs: + excluded_members = kwargs['excludedMembers'] + if static_members is None and 'staticMembers' in kwargs: + static_members = kwargs['staticMembers'] + + _setter("cluster_endpoint_identifier", cluster_endpoint_identifier) + _setter("cluster_identifier", cluster_identifier) + _setter("custom_endpoint_type", custom_endpoint_type) if excluded_members is not None: - pulumi.set(__self__, "excluded_members", excluded_members) + _setter("excluded_members", excluded_members) if static_members is not None: - pulumi.set(__self__, "static_members", static_members) + _setter("static_members", static_members) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterEndpointIdentifier") @@ -136,27 +173,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ClusterEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cluster_endpoint_identifier=cluster_endpoint_identifier, + cluster_identifier=cluster_identifier, + custom_endpoint_type=custom_endpoint_type, + endpoint=endpoint, + excluded_members=excluded_members, + static_members=static_members, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cluster_endpoint_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + custom_endpoint_type: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + excluded_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + static_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_endpoint_identifier is None and 'clusterEndpointIdentifier' in kwargs: + cluster_endpoint_identifier = kwargs['clusterEndpointIdentifier'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if custom_endpoint_type is None and 'customEndpointType' in kwargs: + custom_endpoint_type = kwargs['customEndpointType'] + if excluded_members is None and 'excludedMembers' in kwargs: + excluded_members = kwargs['excludedMembers'] + if static_members is None and 'staticMembers' in kwargs: + static_members = kwargs['staticMembers'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_endpoint_identifier is not None: - pulumi.set(__self__, "cluster_endpoint_identifier", cluster_endpoint_identifier) + _setter("cluster_endpoint_identifier", cluster_endpoint_identifier) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if custom_endpoint_type is not None: - pulumi.set(__self__, "custom_endpoint_type", custom_endpoint_type) + _setter("custom_endpoint_type", custom_endpoint_type) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if excluded_members is not None: - pulumi.set(__self__, "excluded_members", excluded_members) + _setter("excluded_members", excluded_members) if static_members is not None: - pulumi.set(__self__, "static_members", static_members) + _setter("static_members", static_members) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -445,6 +521,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/cluster_instance.py b/sdk/python/pulumi_aws/rds/cluster_instance.py index e88702e4ac9..3cb972883cb 100644 --- a/sdk/python/pulumi_aws/rds/cluster_instance.py +++ b/sdk/python/pulumi_aws/rds/cluster_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -66,51 +66,156 @@ def __init__(__self__, *, :param pulumi.Input[bool] publicly_accessible: Bool to control if instance is publicly accessible. Default `false`. See the documentation on [Creating DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) for more details on controlling this property. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the instance. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "engine", engine) - pulumi.set(__self__, "instance_class", instance_class) + ClusterInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + engine=engine, + instance_class=instance_class, + apply_immediately=apply_immediately, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + ca_cert_identifier=ca_cert_identifier, + copy_tags_to_snapshot=copy_tags_to_snapshot, + custom_iam_instance_profile=custom_iam_instance_profile, + db_parameter_group_name=db_parameter_group_name, + db_subnet_group_name=db_subnet_group_name, + engine_version=engine_version, + identifier=identifier, + identifier_prefix=identifier_prefix, + monitoring_interval=monitoring_interval, + monitoring_role_arn=monitoring_role_arn, + performance_insights_enabled=performance_insights_enabled, + performance_insights_kms_key_id=performance_insights_kms_key_id, + performance_insights_retention_period=performance_insights_retention_period, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + promotion_tier=promotion_tier, + publicly_accessible=publicly_accessible, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + instance_class: Optional[pulumi.Input[Union[str, 'InstanceType']]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + ca_cert_identifier: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + custom_iam_instance_profile: Optional[pulumi.Input[str]] = None, + db_parameter_group_name: Optional[pulumi.Input[str]] = None, + db_subnet_group_name: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + monitoring_interval: Optional[pulumi.Input[int]] = None, + monitoring_role_arn: Optional[pulumi.Input[str]] = None, + performance_insights_enabled: Optional[pulumi.Input[bool]] = None, + performance_insights_kms_key_id: Optional[pulumi.Input[str]] = None, + performance_insights_retention_period: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + promotion_tier: Optional[pulumi.Input[int]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if engine is None: + raise TypeError("Missing 'engine' argument") + if instance_class is None and 'instanceClass' in kwargs: + instance_class = kwargs['instanceClass'] + if instance_class is None: + raise TypeError("Missing 'instance_class' argument") + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if ca_cert_identifier is None and 'caCertIdentifier' in kwargs: + ca_cert_identifier = kwargs['caCertIdentifier'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if custom_iam_instance_profile is None and 'customIamInstanceProfile' in kwargs: + custom_iam_instance_profile = kwargs['customIamInstanceProfile'] + if db_parameter_group_name is None and 'dbParameterGroupName' in kwargs: + db_parameter_group_name = kwargs['dbParameterGroupName'] + if db_subnet_group_name is None and 'dbSubnetGroupName' in kwargs: + db_subnet_group_name = kwargs['dbSubnetGroupName'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + if monitoring_interval is None and 'monitoringInterval' in kwargs: + monitoring_interval = kwargs['monitoringInterval'] + if monitoring_role_arn is None and 'monitoringRoleArn' in kwargs: + monitoring_role_arn = kwargs['monitoringRoleArn'] + if performance_insights_enabled is None and 'performanceInsightsEnabled' in kwargs: + performance_insights_enabled = kwargs['performanceInsightsEnabled'] + if performance_insights_kms_key_id is None and 'performanceInsightsKmsKeyId' in kwargs: + performance_insights_kms_key_id = kwargs['performanceInsightsKmsKeyId'] + if performance_insights_retention_period is None and 'performanceInsightsRetentionPeriod' in kwargs: + performance_insights_retention_period = kwargs['performanceInsightsRetentionPeriod'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if promotion_tier is None and 'promotionTier' in kwargs: + promotion_tier = kwargs['promotionTier'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + + _setter("cluster_identifier", cluster_identifier) + _setter("engine", engine) + _setter("instance_class", instance_class) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if ca_cert_identifier is not None: - pulumi.set(__self__, "ca_cert_identifier", ca_cert_identifier) + _setter("ca_cert_identifier", ca_cert_identifier) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if custom_iam_instance_profile is not None: - pulumi.set(__self__, "custom_iam_instance_profile", custom_iam_instance_profile) + _setter("custom_iam_instance_profile", custom_iam_instance_profile) if db_parameter_group_name is not None: - pulumi.set(__self__, "db_parameter_group_name", db_parameter_group_name) + _setter("db_parameter_group_name", db_parameter_group_name) if db_subnet_group_name is not None: - pulumi.set(__self__, "db_subnet_group_name", db_subnet_group_name) + _setter("db_subnet_group_name", db_subnet_group_name) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if monitoring_interval is not None: - pulumi.set(__self__, "monitoring_interval", monitoring_interval) + _setter("monitoring_interval", monitoring_interval) if monitoring_role_arn is not None: - pulumi.set(__self__, "monitoring_role_arn", monitoring_role_arn) + _setter("monitoring_role_arn", monitoring_role_arn) if performance_insights_enabled is not None: - pulumi.set(__self__, "performance_insights_enabled", performance_insights_enabled) + _setter("performance_insights_enabled", performance_insights_enabled) if performance_insights_kms_key_id is not None: - pulumi.set(__self__, "performance_insights_kms_key_id", performance_insights_kms_key_id) + _setter("performance_insights_kms_key_id", performance_insights_kms_key_id) if performance_insights_retention_period is not None: - pulumi.set(__self__, "performance_insights_retention_period", performance_insights_retention_period) + _setter("performance_insights_retention_period", performance_insights_retention_period) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if promotion_tier is not None: - pulumi.set(__self__, "promotion_tier", promotion_tier) + _setter("promotion_tier", promotion_tier) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterIdentifier") @@ -475,77 +580,208 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[bool] writer: Boolean indicating if this instance is writable. `False` indicates this instance is a read replica. """ + _ClusterInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_immediately=apply_immediately, + arn=arn, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + ca_cert_identifier=ca_cert_identifier, + cluster_identifier=cluster_identifier, + copy_tags_to_snapshot=copy_tags_to_snapshot, + custom_iam_instance_profile=custom_iam_instance_profile, + db_parameter_group_name=db_parameter_group_name, + db_subnet_group_name=db_subnet_group_name, + dbi_resource_id=dbi_resource_id, + endpoint=endpoint, + engine=engine, + engine_version=engine_version, + engine_version_actual=engine_version_actual, + identifier=identifier, + identifier_prefix=identifier_prefix, + instance_class=instance_class, + kms_key_id=kms_key_id, + monitoring_interval=monitoring_interval, + monitoring_role_arn=monitoring_role_arn, + network_type=network_type, + performance_insights_enabled=performance_insights_enabled, + performance_insights_kms_key_id=performance_insights_kms_key_id, + performance_insights_retention_period=performance_insights_retention_period, + port=port, + preferred_backup_window=preferred_backup_window, + preferred_maintenance_window=preferred_maintenance_window, + promotion_tier=promotion_tier, + publicly_accessible=publicly_accessible, + storage_encrypted=storage_encrypted, + tags=tags, + tags_all=tags_all, + writer=writer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + ca_cert_identifier: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + custom_iam_instance_profile: Optional[pulumi.Input[str]] = None, + db_parameter_group_name: Optional[pulumi.Input[str]] = None, + db_subnet_group_name: Optional[pulumi.Input[str]] = None, + dbi_resource_id: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + engine_version_actual: Optional[pulumi.Input[str]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + instance_class: Optional[pulumi.Input[Union[str, 'InstanceType']]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + monitoring_interval: Optional[pulumi.Input[int]] = None, + monitoring_role_arn: Optional[pulumi.Input[str]] = None, + network_type: Optional[pulumi.Input[str]] = None, + performance_insights_enabled: Optional[pulumi.Input[bool]] = None, + performance_insights_kms_key_id: Optional[pulumi.Input[str]] = None, + performance_insights_retention_period: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + promotion_tier: Optional[pulumi.Input[int]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + writer: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if ca_cert_identifier is None and 'caCertIdentifier' in kwargs: + ca_cert_identifier = kwargs['caCertIdentifier'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if custom_iam_instance_profile is None and 'customIamInstanceProfile' in kwargs: + custom_iam_instance_profile = kwargs['customIamInstanceProfile'] + if db_parameter_group_name is None and 'dbParameterGroupName' in kwargs: + db_parameter_group_name = kwargs['dbParameterGroupName'] + if db_subnet_group_name is None and 'dbSubnetGroupName' in kwargs: + db_subnet_group_name = kwargs['dbSubnetGroupName'] + if dbi_resource_id is None and 'dbiResourceId' in kwargs: + dbi_resource_id = kwargs['dbiResourceId'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version_actual is None and 'engineVersionActual' in kwargs: + engine_version_actual = kwargs['engineVersionActual'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + if instance_class is None and 'instanceClass' in kwargs: + instance_class = kwargs['instanceClass'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if monitoring_interval is None and 'monitoringInterval' in kwargs: + monitoring_interval = kwargs['monitoringInterval'] + if monitoring_role_arn is None and 'monitoringRoleArn' in kwargs: + monitoring_role_arn = kwargs['monitoringRoleArn'] + if network_type is None and 'networkType' in kwargs: + network_type = kwargs['networkType'] + if performance_insights_enabled is None and 'performanceInsightsEnabled' in kwargs: + performance_insights_enabled = kwargs['performanceInsightsEnabled'] + if performance_insights_kms_key_id is None and 'performanceInsightsKmsKeyId' in kwargs: + performance_insights_kms_key_id = kwargs['performanceInsightsKmsKeyId'] + if performance_insights_retention_period is None and 'performanceInsightsRetentionPeriod' in kwargs: + performance_insights_retention_period = kwargs['performanceInsightsRetentionPeriod'] + if preferred_backup_window is None and 'preferredBackupWindow' in kwargs: + preferred_backup_window = kwargs['preferredBackupWindow'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if promotion_tier is None and 'promotionTier' in kwargs: + promotion_tier = kwargs['promotionTier'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if ca_cert_identifier is not None: - pulumi.set(__self__, "ca_cert_identifier", ca_cert_identifier) + _setter("ca_cert_identifier", ca_cert_identifier) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if custom_iam_instance_profile is not None: - pulumi.set(__self__, "custom_iam_instance_profile", custom_iam_instance_profile) + _setter("custom_iam_instance_profile", custom_iam_instance_profile) if db_parameter_group_name is not None: - pulumi.set(__self__, "db_parameter_group_name", db_parameter_group_name) + _setter("db_parameter_group_name", db_parameter_group_name) if db_subnet_group_name is not None: - pulumi.set(__self__, "db_subnet_group_name", db_subnet_group_name) + _setter("db_subnet_group_name", db_subnet_group_name) if dbi_resource_id is not None: - pulumi.set(__self__, "dbi_resource_id", dbi_resource_id) + _setter("dbi_resource_id", dbi_resource_id) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if engine_version_actual is not None: - pulumi.set(__self__, "engine_version_actual", engine_version_actual) + _setter("engine_version_actual", engine_version_actual) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if instance_class is not None: - pulumi.set(__self__, "instance_class", instance_class) + _setter("instance_class", instance_class) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if monitoring_interval is not None: - pulumi.set(__self__, "monitoring_interval", monitoring_interval) + _setter("monitoring_interval", monitoring_interval) if monitoring_role_arn is not None: - pulumi.set(__self__, "monitoring_role_arn", monitoring_role_arn) + _setter("monitoring_role_arn", monitoring_role_arn) if network_type is not None: - pulumi.set(__self__, "network_type", network_type) + _setter("network_type", network_type) if performance_insights_enabled is not None: - pulumi.set(__self__, "performance_insights_enabled", performance_insights_enabled) + _setter("performance_insights_enabled", performance_insights_enabled) if performance_insights_kms_key_id is not None: - pulumi.set(__self__, "performance_insights_kms_key_id", performance_insights_kms_key_id) + _setter("performance_insights_kms_key_id", performance_insights_kms_key_id) if performance_insights_retention_period is not None: - pulumi.set(__self__, "performance_insights_retention_period", performance_insights_retention_period) + _setter("performance_insights_retention_period", performance_insights_retention_period) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_backup_window is not None: - pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) + _setter("preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if promotion_tier is not None: - pulumi.set(__self__, "promotion_tier", promotion_tier) + _setter("promotion_tier", promotion_tier) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if writer is not None: - pulumi.set(__self__, "writer", writer) + _setter("writer", writer) @property @pulumi.getter(name="applyImmediately") @@ -1136,6 +1372,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/cluster_parameter_group.py b/sdk/python/pulumi_aws/rds/cluster_parameter_group.py index 0a17437761c..95ca4737dc2 100644 --- a/sdk/python/pulumi_aws/rds/cluster_parameter_group.py +++ b/sdk/python/pulumi_aws/rds/cluster_parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,19 +31,44 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClusterParameterGroupParameterArgs']]] parameters: A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via [`aws rds describe-db-cluster-parameters`](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-cluster-parameters.html) after initial creation of the group. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "family", family) + ClusterParameterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + family=family, + description=description, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family is None: + raise TypeError("Missing 'family' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("family", family) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -140,27 +165,56 @@ def __init__(__self__, *, :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. """ + _ClusterParameterGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + family=family, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if family is not None: - pulumi.set(__self__, "family", family) + _setter("family", family) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -369,6 +423,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterParameterGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/cluster_role_association.py b/sdk/python/pulumi_aws/rds/cluster_role_association.py index d9db620c4e1..5cf58dfe144 100644 --- a/sdk/python/pulumi_aws/rds/cluster_role_association.py +++ b/sdk/python/pulumi_aws/rds/cluster_role_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterRoleAssociationArgs', 'ClusterRoleAssociation'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] feature_name: Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the `SupportedFeatureNames` list returned by [AWS CLI rds describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html). :param pulumi.Input[str] role_arn: Amazon Resource Name (ARN) of the IAM Role to associate with the DB Cluster. """ - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) - pulumi.set(__self__, "feature_name", feature_name) - pulumi.set(__self__, "role_arn", role_arn) + ClusterRoleAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_identifier=db_cluster_identifier, + feature_name=feature_name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + feature_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_cluster_identifier is None: + raise TypeError("Missing 'db_cluster_identifier' argument") + if feature_name is None and 'featureName' in kwargs: + feature_name = kwargs['featureName'] + if feature_name is None: + raise TypeError("Missing 'feature_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("db_cluster_identifier", db_cluster_identifier) + _setter("feature_name", feature_name) + _setter("role_arn", role_arn) @property @pulumi.getter(name="dbClusterIdentifier") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] feature_name: Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the `SupportedFeatureNames` list returned by [AWS CLI rds describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html). :param pulumi.Input[str] role_arn: Amazon Resource Name (ARN) of the IAM Role to associate with the DB Cluster. """ + _ClusterRoleAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_identifier=db_cluster_identifier, + feature_name=feature_name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + feature_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if feature_name is None and 'featureName' in kwargs: + feature_name = kwargs['featureName'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if db_cluster_identifier is not None: - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) + _setter("db_cluster_identifier", db_cluster_identifier) if feature_name is not None: - pulumi.set(__self__, "feature_name", feature_name) + _setter("feature_name", feature_name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="dbClusterIdentifier") @@ -203,6 +251,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterRoleAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/cluster_snapshot.py b/sdk/python/pulumi_aws/rds/cluster_snapshot.py index f0cceccd334..3ab197e3fd1 100644 --- a/sdk/python/pulumi_aws/rds/cluster_snapshot.py +++ b/sdk/python/pulumi_aws/rds/cluster_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterSnapshotArgs', 'ClusterSnapshot'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] db_cluster_snapshot_identifier: The Identifier for the snapshot. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the DB cluster. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) - pulumi.set(__self__, "db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) + ClusterSnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_identifier=db_cluster_identifier, + db_cluster_snapshot_identifier=db_cluster_snapshot_identifier, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_cluster_identifier is None: + raise TypeError("Missing 'db_cluster_identifier' argument") + if db_cluster_snapshot_identifier is None and 'dbClusterSnapshotIdentifier' in kwargs: + db_cluster_snapshot_identifier = kwargs['dbClusterSnapshotIdentifier'] + if db_cluster_snapshot_identifier is None: + raise TypeError("Missing 'db_cluster_snapshot_identifier' argument") + + _setter("db_cluster_identifier", db_cluster_identifier) + _setter("db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dbClusterIdentifier") @@ -103,43 +126,112 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The VPC ID associated with the DB cluster snapshot. """ + _ClusterSnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocated_storage=allocated_storage, + availability_zones=availability_zones, + db_cluster_identifier=db_cluster_identifier, + db_cluster_snapshot_arn=db_cluster_snapshot_arn, + db_cluster_snapshot_identifier=db_cluster_snapshot_identifier, + engine=engine, + engine_version=engine_version, + kms_key_id=kms_key_id, + license_model=license_model, + port=port, + snapshot_type=snapshot_type, + source_db_cluster_snapshot_arn=source_db_cluster_snapshot_arn, + status=status, + storage_encrypted=storage_encrypted, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocated_storage: Optional[pulumi.Input[int]] = None, + availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + db_cluster_snapshot_arn: Optional[pulumi.Input[str]] = None, + db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + license_model: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + snapshot_type: Optional[pulumi.Input[str]] = None, + source_db_cluster_snapshot_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if availability_zones is None and 'availabilityZones' in kwargs: + availability_zones = kwargs['availabilityZones'] + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_cluster_snapshot_arn is None and 'dbClusterSnapshotArn' in kwargs: + db_cluster_snapshot_arn = kwargs['dbClusterSnapshotArn'] + if db_cluster_snapshot_identifier is None and 'dbClusterSnapshotIdentifier' in kwargs: + db_cluster_snapshot_identifier = kwargs['dbClusterSnapshotIdentifier'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if license_model is None and 'licenseModel' in kwargs: + license_model = kwargs['licenseModel'] + if snapshot_type is None and 'snapshotType' in kwargs: + snapshot_type = kwargs['snapshotType'] + if source_db_cluster_snapshot_arn is None and 'sourceDbClusterSnapshotArn' in kwargs: + source_db_cluster_snapshot_arn = kwargs['sourceDbClusterSnapshotArn'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if availability_zones is not None: - pulumi.set(__self__, "availability_zones", availability_zones) + _setter("availability_zones", availability_zones) if db_cluster_identifier is not None: - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) + _setter("db_cluster_identifier", db_cluster_identifier) if db_cluster_snapshot_arn is not None: - pulumi.set(__self__, "db_cluster_snapshot_arn", db_cluster_snapshot_arn) + _setter("db_cluster_snapshot_arn", db_cluster_snapshot_arn) if db_cluster_snapshot_identifier is not None: - pulumi.set(__self__, "db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) + _setter("db_cluster_snapshot_identifier", db_cluster_snapshot_identifier) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if license_model is not None: - pulumi.set(__self__, "license_model", license_model) + _setter("license_model", license_model) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if snapshot_type is not None: - pulumi.set(__self__, "snapshot_type", snapshot_type) + _setter("snapshot_type", snapshot_type) if source_db_cluster_snapshot_arn is not None: - pulumi.set(__self__, "source_db_cluster_snapshot_arn", source_db_cluster_snapshot_arn) + _setter("source_db_cluster_snapshot_arn", source_db_cluster_snapshot_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="allocatedStorage") @@ -418,6 +510,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterSnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/custom_db_engine_version.py b/sdk/python/pulumi_aws/rds/custom_db_engine_version.py index f367922b602..256b66032f5 100644 --- a/sdk/python/pulumi_aws/rds/custom_db_engine_version.py +++ b/sdk/python/pulumi_aws/rds/custom_db_engine_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CustomDbEngineVersionArgs', 'CustomDbEngineVersion'] @@ -41,28 +41,77 @@ def __init__(__self__, *, :param pulumi.Input[str] status: The status of the CEV. Valid values are `available`, `inactive`, `inactive-except-restore`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "engine", engine) - pulumi.set(__self__, "engine_version", engine_version) + CustomDbEngineVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + engine=engine, + engine_version=engine_version, + database_installation_files_s3_bucket_name=database_installation_files_s3_bucket_name, + database_installation_files_s3_prefix=database_installation_files_s3_prefix, + description=description, + filename=filename, + kms_key_id=kms_key_id, + manifest=manifest, + manifest_hash=manifest_hash, + source_image_id=source_image_id, + status=status, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + database_installation_files_s3_bucket_name: Optional[pulumi.Input[str]] = None, + database_installation_files_s3_prefix: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filename: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + manifest: Optional[pulumi.Input[str]] = None, + manifest_hash: Optional[pulumi.Input[str]] = None, + source_image_id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engine is None: + raise TypeError("Missing 'engine' argument") + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version is None: + raise TypeError("Missing 'engine_version' argument") + if database_installation_files_s3_bucket_name is None and 'databaseInstallationFilesS3BucketName' in kwargs: + database_installation_files_s3_bucket_name = kwargs['databaseInstallationFilesS3BucketName'] + if database_installation_files_s3_prefix is None and 'databaseInstallationFilesS3Prefix' in kwargs: + database_installation_files_s3_prefix = kwargs['databaseInstallationFilesS3Prefix'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if manifest_hash is None and 'manifestHash' in kwargs: + manifest_hash = kwargs['manifestHash'] + if source_image_id is None and 'sourceImageId' in kwargs: + source_image_id = kwargs['sourceImageId'] + + _setter("engine", engine) + _setter("engine_version", engine_version) if database_installation_files_s3_bucket_name is not None: - pulumi.set(__self__, "database_installation_files_s3_bucket_name", database_installation_files_s3_bucket_name) + _setter("database_installation_files_s3_bucket_name", database_installation_files_s3_bucket_name) if database_installation_files_s3_prefix is not None: - pulumi.set(__self__, "database_installation_files_s3_prefix", database_installation_files_s3_prefix) + _setter("database_installation_files_s3_prefix", database_installation_files_s3_prefix) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if filename is not None: - pulumi.set(__self__, "filename", filename) + _setter("filename", filename) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if manifest is not None: - pulumi.set(__self__, "manifest", manifest) + _setter("manifest", manifest) if manifest_hash is not None: - pulumi.set(__self__, "manifest_hash", manifest_hash) + _setter("manifest_hash", manifest_hash) if source_image_id is not None: - pulumi.set(__self__, "source_image_id", source_image_id) + _setter("source_image_id", source_image_id) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -253,47 +302,118 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping 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. """ + _CustomDbEngineVersionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + create_time=create_time, + database_installation_files_s3_bucket_name=database_installation_files_s3_bucket_name, + database_installation_files_s3_prefix=database_installation_files_s3_prefix, + db_parameter_group_family=db_parameter_group_family, + description=description, + engine=engine, + engine_version=engine_version, + filename=filename, + image_id=image_id, + kms_key_id=kms_key_id, + major_engine_version=major_engine_version, + manifest=manifest, + manifest_computed=manifest_computed, + manifest_hash=manifest_hash, + source_image_id=source_image_id, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + database_installation_files_s3_bucket_name: Optional[pulumi.Input[str]] = None, + database_installation_files_s3_prefix: Optional[pulumi.Input[str]] = None, + db_parameter_group_family: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + filename: Optional[pulumi.Input[str]] = None, + image_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + major_engine_version: Optional[pulumi.Input[str]] = None, + manifest: Optional[pulumi.Input[str]] = None, + manifest_computed: Optional[pulumi.Input[str]] = None, + manifest_hash: Optional[pulumi.Input[str]] = None, + source_image_id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create_time is None and 'createTime' in kwargs: + create_time = kwargs['createTime'] + if database_installation_files_s3_bucket_name is None and 'databaseInstallationFilesS3BucketName' in kwargs: + database_installation_files_s3_bucket_name = kwargs['databaseInstallationFilesS3BucketName'] + if database_installation_files_s3_prefix is None and 'databaseInstallationFilesS3Prefix' in kwargs: + database_installation_files_s3_prefix = kwargs['databaseInstallationFilesS3Prefix'] + if db_parameter_group_family is None and 'dbParameterGroupFamily' in kwargs: + db_parameter_group_family = kwargs['dbParameterGroupFamily'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if image_id is None and 'imageId' in kwargs: + image_id = kwargs['imageId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if major_engine_version is None and 'majorEngineVersion' in kwargs: + major_engine_version = kwargs['majorEngineVersion'] + if manifest_computed is None and 'manifestComputed' in kwargs: + manifest_computed = kwargs['manifestComputed'] + if manifest_hash is None and 'manifestHash' in kwargs: + manifest_hash = kwargs['manifestHash'] + if source_image_id is None and 'sourceImageId' in kwargs: + source_image_id = kwargs['sourceImageId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if create_time is not None: - pulumi.set(__self__, "create_time", create_time) + _setter("create_time", create_time) if database_installation_files_s3_bucket_name is not None: - pulumi.set(__self__, "database_installation_files_s3_bucket_name", database_installation_files_s3_bucket_name) + _setter("database_installation_files_s3_bucket_name", database_installation_files_s3_bucket_name) if database_installation_files_s3_prefix is not None: - pulumi.set(__self__, "database_installation_files_s3_prefix", database_installation_files_s3_prefix) + _setter("database_installation_files_s3_prefix", database_installation_files_s3_prefix) if db_parameter_group_family is not None: - pulumi.set(__self__, "db_parameter_group_family", db_parameter_group_family) + _setter("db_parameter_group_family", db_parameter_group_family) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if filename is not None: - pulumi.set(__self__, "filename", filename) + _setter("filename", filename) if image_id is not None: - pulumi.set(__self__, "image_id", image_id) + _setter("image_id", image_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if major_engine_version is not None: - pulumi.set(__self__, "major_engine_version", major_engine_version) + _setter("major_engine_version", major_engine_version) if manifest is not None: - pulumi.set(__self__, "manifest", manifest) + _setter("manifest", manifest) if manifest_computed is not None: - pulumi.set(__self__, "manifest_computed", manifest_computed) + _setter("manifest_computed", manifest_computed) if manifest_hash is not None: - pulumi.set(__self__, "manifest_hash", manifest_hash) + _setter("manifest_hash", manifest_hash) if source_image_id is not None: - pulumi.set(__self__, "source_image_id", source_image_id) + _setter("source_image_id", source_image_id) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -756,6 +876,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomDbEngineVersionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/event_subscription.py b/sdk/python/pulumi_aws/rds/event_subscription.py index 1412f3bf5f5..1916ce4edca 100644 --- a/sdk/python/pulumi_aws/rds/event_subscription.py +++ b/sdk/python/pulumi_aws/rds/event_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventSubscriptionArgs', 'EventSubscription'] @@ -33,21 +33,58 @@ def __init__(__self__, *, :param pulumi.Input[str] source_type: The type of source that will be generating the events. Valid options are `db-instance`, `db-security-group`, `db-parameter-group`, `db-snapshot`, `db-cluster`, `db-cluster-snapshot`, or `db-proxy`. If not set, all sources will be subscribed to. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "sns_topic", sns_topic) + EventSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sns_topic=sns_topic, + enabled=enabled, + event_categories=event_categories, + name=name, + name_prefix=name_prefix, + source_ids=source_ids, + source_type=source_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sns_topic: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sns_topic is None and 'snsTopic' in kwargs: + sns_topic = kwargs['snsTopic'] + if sns_topic is None: + raise TypeError("Missing 'sns_topic' argument") + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + + _setter("sns_topic", sns_topic) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_categories is not None: - pulumi.set(__self__, "event_categories", event_categories) + _setter("event_categories", event_categories) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="snsTopic") @@ -174,31 +211,76 @@ def __init__(__self__, *, :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. """ + _EventSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + customer_aws_id=customer_aws_id, + enabled=enabled, + event_categories=event_categories, + name=name, + name_prefix=name_prefix, + sns_topic=sns_topic, + source_ids=source_ids, + source_type=source_type, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + customer_aws_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + sns_topic: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_aws_id is None and 'customerAwsId' in kwargs: + customer_aws_id = kwargs['customerAwsId'] + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if sns_topic is None and 'snsTopic' in kwargs: + sns_topic = kwargs['snsTopic'] + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if customer_aws_id is not None: - pulumi.set(__self__, "customer_aws_id", customer_aws_id) + _setter("customer_aws_id", customer_aws_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_categories is not None: - pulumi.set(__self__, "event_categories", event_categories) + _setter("event_categories", event_categories) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if sns_topic is not None: - pulumi.set(__self__, "sns_topic", sns_topic) + _setter("sns_topic", sns_topic) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -469,6 +551,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/export_task.py b/sdk/python/pulumi_aws/rds/export_task.py index 2e8b1970076..9091c4da3e1 100644 --- a/sdk/python/pulumi_aws/rds/export_task.py +++ b/sdk/python/pulumi_aws/rds/export_task.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -36,17 +36,66 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] export_onlies: Data to be exported from the snapshot. If this parameter is not provided, all the snapshot data is exported. Valid values are documented in the [AWS StartExportTask API documentation](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartExportTask.html#API_StartExportTask_RequestParameters). :param pulumi.Input[str] s3_prefix: Amazon S3 bucket prefix to use as the file name and path of the exported snapshot. """ - pulumi.set(__self__, "export_task_identifier", export_task_identifier) - pulumi.set(__self__, "iam_role_arn", iam_role_arn) - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) - pulumi.set(__self__, "source_arn", source_arn) + ExportTaskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + export_task_identifier=export_task_identifier, + iam_role_arn=iam_role_arn, + kms_key_id=kms_key_id, + s3_bucket_name=s3_bucket_name, + source_arn=source_arn, + export_onlies=export_onlies, + s3_prefix=s3_prefix, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + export_task_identifier: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + s3_bucket_name: Optional[pulumi.Input[str]] = None, + source_arn: Optional[pulumi.Input[str]] = None, + export_onlies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_prefix: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['ExportTaskTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if export_task_identifier is None and 'exportTaskIdentifier' in kwargs: + export_task_identifier = kwargs['exportTaskIdentifier'] + if export_task_identifier is None: + raise TypeError("Missing 'export_task_identifier' argument") + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if iam_role_arn is None: + raise TypeError("Missing 'iam_role_arn' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if source_arn is None: + raise TypeError("Missing 'source_arn' argument") + if export_onlies is None and 'exportOnlies' in kwargs: + export_onlies = kwargs['exportOnlies'] + if s3_prefix is None and 's3Prefix' in kwargs: + s3_prefix = kwargs['s3Prefix'] + + _setter("export_task_identifier", export_task_identifier) + _setter("iam_role_arn", iam_role_arn) + _setter("kms_key_id", kms_key_id) + _setter("s3_bucket_name", s3_bucket_name) + _setter("source_arn", source_arn) if export_onlies is not None: - pulumi.set(__self__, "export_onlies", export_onlies) + _setter("export_onlies", export_onlies) if s3_prefix is not None: - pulumi.set(__self__, "s3_prefix", s3_prefix) + _setter("s3_prefix", s3_prefix) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="exportTaskIdentifier") @@ -183,38 +232,107 @@ def __init__(__self__, *, :param pulumi.Input[str] task_start_time: Time that the snapshot export task started. :param pulumi.Input[str] warning_message: Warning about the snapshot export task, if any. """ + _ExportTaskState._configure( + lambda key, value: pulumi.set(__self__, key, value), + export_onlies=export_onlies, + export_task_identifier=export_task_identifier, + failure_cause=failure_cause, + iam_role_arn=iam_role_arn, + kms_key_id=kms_key_id, + percent_progress=percent_progress, + s3_bucket_name=s3_bucket_name, + s3_prefix=s3_prefix, + snapshot_time=snapshot_time, + source_arn=source_arn, + source_type=source_type, + status=status, + task_end_time=task_end_time, + task_start_time=task_start_time, + timeouts=timeouts, + warning_message=warning_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + export_onlies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + export_task_identifier: Optional[pulumi.Input[str]] = None, + failure_cause: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + percent_progress: Optional[pulumi.Input[int]] = None, + s3_bucket_name: Optional[pulumi.Input[str]] = None, + s3_prefix: Optional[pulumi.Input[str]] = None, + snapshot_time: Optional[pulumi.Input[str]] = None, + source_arn: Optional[pulumi.Input[str]] = None, + source_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + task_end_time: Optional[pulumi.Input[str]] = None, + task_start_time: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['ExportTaskTimeoutsArgs']] = None, + warning_message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if export_onlies is None and 'exportOnlies' in kwargs: + export_onlies = kwargs['exportOnlies'] + if export_task_identifier is None and 'exportTaskIdentifier' in kwargs: + export_task_identifier = kwargs['exportTaskIdentifier'] + if failure_cause is None and 'failureCause' in kwargs: + failure_cause = kwargs['failureCause'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if percent_progress is None and 'percentProgress' in kwargs: + percent_progress = kwargs['percentProgress'] + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_prefix is None and 's3Prefix' in kwargs: + s3_prefix = kwargs['s3Prefix'] + if snapshot_time is None and 'snapshotTime' in kwargs: + snapshot_time = kwargs['snapshotTime'] + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if task_end_time is None and 'taskEndTime' in kwargs: + task_end_time = kwargs['taskEndTime'] + if task_start_time is None and 'taskStartTime' in kwargs: + task_start_time = kwargs['taskStartTime'] + if warning_message is None and 'warningMessage' in kwargs: + warning_message = kwargs['warningMessage'] + if export_onlies is not None: - pulumi.set(__self__, "export_onlies", export_onlies) + _setter("export_onlies", export_onlies) if export_task_identifier is not None: - pulumi.set(__self__, "export_task_identifier", export_task_identifier) + _setter("export_task_identifier", export_task_identifier) if failure_cause is not None: - pulumi.set(__self__, "failure_cause", failure_cause) + _setter("failure_cause", failure_cause) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if percent_progress is not None: - pulumi.set(__self__, "percent_progress", percent_progress) + _setter("percent_progress", percent_progress) if s3_bucket_name is not None: - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + _setter("s3_bucket_name", s3_bucket_name) if s3_prefix is not None: - pulumi.set(__self__, "s3_prefix", s3_prefix) + _setter("s3_prefix", s3_prefix) if snapshot_time is not None: - pulumi.set(__self__, "snapshot_time", snapshot_time) + _setter("snapshot_time", snapshot_time) if source_arn is not None: - pulumi.set(__self__, "source_arn", source_arn) + _setter("source_arn", source_arn) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if task_end_time is not None: - pulumi.set(__self__, "task_end_time", task_end_time) + _setter("task_end_time", task_end_time) if task_start_time is not None: - pulumi.set(__self__, "task_start_time", task_start_time) + _setter("task_start_time", task_start_time) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) if warning_message is not None: - pulumi.set(__self__, "warning_message", warning_message) + _setter("warning_message", warning_message) @property @pulumi.getter(name="exportOnlies") @@ -644,6 +762,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ExportTaskArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -683,6 +805,7 @@ def _internal_init(__self__, if source_arn is None and not opts.urn: raise TypeError("Missing required property 'source_arn'") __props__.__dict__["source_arn"] = source_arn + timeouts = _utilities.configure(timeouts, ExportTaskTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts __props__.__dict__["failure_cause"] = None __props__.__dict__["percent_progress"] = None diff --git a/sdk/python/pulumi_aws/rds/get_certificate.py b/sdk/python/pulumi_aws/rds/get_certificate.py index 1400ae5b102..3ab71c75ae0 100644 --- a/sdk/python/pulumi_aws/rds/get_certificate.py +++ b/sdk/python/pulumi_aws/rds/get_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/rds/get_cluster.py b/sdk/python/pulumi_aws/rds/get_cluster.py index 6545f76db21..2e4f1f41189 100644 --- a/sdk/python/pulumi_aws/rds/get_cluster.py +++ b/sdk/python/pulumi_aws/rds/get_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/rds/get_cluster_snapshot.py b/sdk/python/pulumi_aws/rds/get_cluster_snapshot.py index 94139dbeab0..7ae60d556f8 100644 --- a/sdk/python/pulumi_aws/rds/get_cluster_snapshot.py +++ b/sdk/python/pulumi_aws/rds/get_cluster_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/rds/get_clusters.py b/sdk/python/pulumi_aws/rds/get_clusters.py index 2ae8601f706..647fd0519bb 100644 --- a/sdk/python/pulumi_aws/rds/get_clusters.py +++ b/sdk/python/pulumi_aws/rds/get_clusters.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/rds/get_engine_version.py b/sdk/python/pulumi_aws/rds/get_engine_version.py index 13e41fff1db..fd2b1c42279 100644 --- a/sdk/python/pulumi_aws/rds/get_engine_version.py +++ b/sdk/python/pulumi_aws/rds/get_engine_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/rds/get_event_categories.py b/sdk/python/pulumi_aws/rds/get_event_categories.py index d96f578f621..796ed3582ff 100644 --- a/sdk/python/pulumi_aws/rds/get_event_categories.py +++ b/sdk/python/pulumi_aws/rds/get_event_categories.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/rds/get_instance.py b/sdk/python/pulumi_aws/rds/get_instance.py index 8f3e00b22c1..f4b62f36217 100644 --- a/sdk/python/pulumi_aws/rds/get_instance.py +++ b/sdk/python/pulumi_aws/rds/get_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/rds/get_instances.py b/sdk/python/pulumi_aws/rds/get_instances.py index 2a1d87cc2e2..727fc43cea9 100644 --- a/sdk/python/pulumi_aws/rds/get_instances.py +++ b/sdk/python/pulumi_aws/rds/get_instances.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/rds/get_orderable_db_instance.py b/sdk/python/pulumi_aws/rds/get_orderable_db_instance.py index f6dc924672e..c928e2cbb79 100644 --- a/sdk/python/pulumi_aws/rds/get_orderable_db_instance.py +++ b/sdk/python/pulumi_aws/rds/get_orderable_db_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/rds/get_proxy.py b/sdk/python/pulumi_aws/rds/get_proxy.py index bc1d8dfc6a8..05f41bcbcb5 100644 --- a/sdk/python/pulumi_aws/rds/get_proxy.py +++ b/sdk/python/pulumi_aws/rds/get_proxy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/rds/get_reserved_instance_offering.py b/sdk/python/pulumi_aws/rds/get_reserved_instance_offering.py index d3fb9e8156b..2c357973375 100644 --- a/sdk/python/pulumi_aws/rds/get_reserved_instance_offering.py +++ b/sdk/python/pulumi_aws/rds/get_reserved_instance_offering.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/rds/get_snapshot.py b/sdk/python/pulumi_aws/rds/get_snapshot.py index 5ff836dbd01..3af256aa372 100644 --- a/sdk/python/pulumi_aws/rds/get_snapshot.py +++ b/sdk/python/pulumi_aws/rds/get_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/rds/get_subnet_group.py b/sdk/python/pulumi_aws/rds/get_subnet_group.py index 28164021de1..fd6c61bd74d 100644 --- a/sdk/python/pulumi_aws/rds/get_subnet_group.py +++ b/sdk/python/pulumi_aws/rds/get_subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/rds/global_cluster.py b/sdk/python/pulumi_aws/rds/global_cluster.py index c25d0ae43a9..c486b624c85 100644 --- a/sdk/python/pulumi_aws/rds/global_cluster.py +++ b/sdk/python/pulumi_aws/rds/global_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,21 +35,62 @@ def __init__(__self__, *, :param pulumi.Input[str] source_db_cluster_identifier: Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value. :param pulumi.Input[bool] storage_encrypted: Specifies whether the DB cluster is encrypted. The default is `false` unless `source_db_cluster_identifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided. """ - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + GlobalClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_cluster_identifier=global_cluster_identifier, + database_name=database_name, + deletion_protection=deletion_protection, + engine=engine, + engine_version=engine_version, + force_destroy=force_destroy, + source_db_cluster_identifier=source_db_cluster_identifier, + storage_encrypted=storage_encrypted, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + source_db_cluster_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if global_cluster_identifier is None: + raise TypeError("Missing 'global_cluster_identifier' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if source_db_cluster_identifier is None and 'sourceDbClusterIdentifier' in kwargs: + source_db_cluster_identifier = kwargs['sourceDbClusterIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + + _setter("global_cluster_identifier", global_cluster_identifier) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if source_db_cluster_identifier is not None: - pulumi.set(__self__, "source_db_cluster_identifier", source_db_cluster_identifier) + _setter("source_db_cluster_identifier", source_db_cluster_identifier) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) @property @pulumi.getter(name="globalClusterIdentifier") @@ -177,30 +218,83 @@ def __init__(__self__, *, :param pulumi.Input[str] source_db_cluster_identifier: Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value. :param pulumi.Input[bool] storage_encrypted: Specifies whether the DB cluster is encrypted. The default is `false` unless `source_db_cluster_identifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided. """ + _GlobalClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + database_name=database_name, + deletion_protection=deletion_protection, + engine=engine, + engine_version=engine_version, + engine_version_actual=engine_version_actual, + force_destroy=force_destroy, + global_cluster_identifier=global_cluster_identifier, + global_cluster_members=global_cluster_members, + global_cluster_resource_id=global_cluster_resource_id, + source_db_cluster_identifier=source_db_cluster_identifier, + storage_encrypted=storage_encrypted, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + engine_version_actual: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + global_cluster_identifier: Optional[pulumi.Input[str]] = None, + global_cluster_members: Optional[pulumi.Input[Sequence[pulumi.Input['GlobalClusterGlobalClusterMemberArgs']]]] = None, + global_cluster_resource_id: Optional[pulumi.Input[str]] = None, + source_db_cluster_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version_actual is None and 'engineVersionActual' in kwargs: + engine_version_actual = kwargs['engineVersionActual'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if global_cluster_identifier is None and 'globalClusterIdentifier' in kwargs: + global_cluster_identifier = kwargs['globalClusterIdentifier'] + if global_cluster_members is None and 'globalClusterMembers' in kwargs: + global_cluster_members = kwargs['globalClusterMembers'] + if global_cluster_resource_id is None and 'globalClusterResourceId' in kwargs: + global_cluster_resource_id = kwargs['globalClusterResourceId'] + if source_db_cluster_identifier is None and 'sourceDbClusterIdentifier' in kwargs: + source_db_cluster_identifier = kwargs['sourceDbClusterIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if engine_version_actual is not None: - pulumi.set(__self__, "engine_version_actual", engine_version_actual) + _setter("engine_version_actual", engine_version_actual) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if global_cluster_identifier is not None: - pulumi.set(__self__, "global_cluster_identifier", global_cluster_identifier) + _setter("global_cluster_identifier", global_cluster_identifier) if global_cluster_members is not None: - pulumi.set(__self__, "global_cluster_members", global_cluster_members) + _setter("global_cluster_members", global_cluster_members) if global_cluster_resource_id is not None: - pulumi.set(__self__, "global_cluster_resource_id", global_cluster_resource_id) + _setter("global_cluster_resource_id", global_cluster_resource_id) if source_db_cluster_identifier is not None: - pulumi.set(__self__, "source_db_cluster_identifier", source_db_cluster_identifier) + _setter("source_db_cluster_identifier", source_db_cluster_identifier) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) @property @pulumi.getter @@ -699,6 +793,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GlobalClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/instance.py b/sdk/python/pulumi_aws/rds/instance.py index 24fd732fa62..5f7a03204a3 100644 --- a/sdk/python/pulumi_aws/rds/instance.py +++ b/sdk/python/pulumi_aws/rds/instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -221,132 +221,371 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of VPC security groups to associate. """ - pulumi.set(__self__, "instance_class", instance_class) + InstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_class=instance_class, + allocated_storage=allocated_storage, + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + backup_retention_period=backup_retention_period, + backup_target=backup_target, + backup_window=backup_window, + blue_green_update=blue_green_update, + ca_cert_identifier=ca_cert_identifier, + character_set_name=character_set_name, + copy_tags_to_snapshot=copy_tags_to_snapshot, + custom_iam_instance_profile=custom_iam_instance_profile, + customer_owned_ip_enabled=customer_owned_ip_enabled, + db_name=db_name, + db_subnet_group_name=db_subnet_group_name, + delete_automated_backups=delete_automated_backups, + deletion_protection=deletion_protection, + domain=domain, + domain_iam_role_name=domain_iam_role_name, + enabled_cloudwatch_logs_exports=enabled_cloudwatch_logs_exports, + engine=engine, + engine_version=engine_version, + final_snapshot_identifier=final_snapshot_identifier, + iam_database_authentication_enabled=iam_database_authentication_enabled, + identifier=identifier, + identifier_prefix=identifier_prefix, + iops=iops, + kms_key_id=kms_key_id, + license_model=license_model, + maintenance_window=maintenance_window, + manage_master_user_password=manage_master_user_password, + master_user_secret_kms_key_id=master_user_secret_kms_key_id, + max_allocated_storage=max_allocated_storage, + monitoring_interval=monitoring_interval, + monitoring_role_arn=monitoring_role_arn, + multi_az=multi_az, + name=name, + nchar_character_set_name=nchar_character_set_name, + network_type=network_type, + option_group_name=option_group_name, + parameter_group_name=parameter_group_name, + password=password, + performance_insights_enabled=performance_insights_enabled, + performance_insights_kms_key_id=performance_insights_kms_key_id, + performance_insights_retention_period=performance_insights_retention_period, + port=port, + publicly_accessible=publicly_accessible, + replica_mode=replica_mode, + replicate_source_db=replicate_source_db, + restore_to_point_in_time=restore_to_point_in_time, + s3_import=s3_import, + skip_final_snapshot=skip_final_snapshot, + snapshot_identifier=snapshot_identifier, + storage_encrypted=storage_encrypted, + storage_throughput=storage_throughput, + storage_type=storage_type, + tags=tags, + timezone=timezone, + username=username, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_class: Optional[pulumi.Input[Union[str, 'InstanceType']]] = None, + allocated_storage: Optional[pulumi.Input[int]] = None, + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, + backup_target: Optional[pulumi.Input[str]] = None, + backup_window: Optional[pulumi.Input[str]] = None, + blue_green_update: Optional[pulumi.Input['InstanceBlueGreenUpdateArgs']] = None, + ca_cert_identifier: Optional[pulumi.Input[str]] = None, + character_set_name: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + custom_iam_instance_profile: Optional[pulumi.Input[str]] = None, + customer_owned_ip_enabled: Optional[pulumi.Input[bool]] = None, + db_name: Optional[pulumi.Input[str]] = None, + db_subnet_group_name: Optional[pulumi.Input[str]] = None, + delete_automated_backups: Optional[pulumi.Input[bool]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + domain: Optional[pulumi.Input[str]] = None, + domain_iam_role_name: Optional[pulumi.Input[str]] = None, + enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + iam_database_authentication_enabled: Optional[pulumi.Input[bool]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + license_model: Optional[pulumi.Input[str]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + manage_master_user_password: Optional[pulumi.Input[bool]] = None, + master_user_secret_kms_key_id: Optional[pulumi.Input[str]] = None, + max_allocated_storage: Optional[pulumi.Input[int]] = None, + monitoring_interval: Optional[pulumi.Input[int]] = None, + monitoring_role_arn: Optional[pulumi.Input[str]] = None, + multi_az: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + nchar_character_set_name: Optional[pulumi.Input[str]] = None, + network_type: Optional[pulumi.Input[str]] = None, + option_group_name: Optional[pulumi.Input[str]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + performance_insights_enabled: Optional[pulumi.Input[bool]] = None, + performance_insights_kms_key_id: Optional[pulumi.Input[str]] = None, + performance_insights_retention_period: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + replica_mode: Optional[pulumi.Input[str]] = None, + replicate_source_db: Optional[pulumi.Input[str]] = None, + restore_to_point_in_time: Optional[pulumi.Input['InstanceRestoreToPointInTimeArgs']] = None, + s3_import: Optional[pulumi.Input['InstanceS3ImportArgs']] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + storage_throughput: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[Union[str, 'StorageType']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timezone: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_class is None and 'instanceClass' in kwargs: + instance_class = kwargs['instanceClass'] + if instance_class is None: + raise TypeError("Missing 'instance_class' argument") + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if backup_retention_period is None and 'backupRetentionPeriod' in kwargs: + backup_retention_period = kwargs['backupRetentionPeriod'] + if backup_target is None and 'backupTarget' in kwargs: + backup_target = kwargs['backupTarget'] + if backup_window is None and 'backupWindow' in kwargs: + backup_window = kwargs['backupWindow'] + if blue_green_update is None and 'blueGreenUpdate' in kwargs: + blue_green_update = kwargs['blueGreenUpdate'] + if ca_cert_identifier is None and 'caCertIdentifier' in kwargs: + ca_cert_identifier = kwargs['caCertIdentifier'] + if character_set_name is None and 'characterSetName' in kwargs: + character_set_name = kwargs['characterSetName'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if custom_iam_instance_profile is None and 'customIamInstanceProfile' in kwargs: + custom_iam_instance_profile = kwargs['customIamInstanceProfile'] + if customer_owned_ip_enabled is None and 'customerOwnedIpEnabled' in kwargs: + customer_owned_ip_enabled = kwargs['customerOwnedIpEnabled'] + if db_name is None and 'dbName' in kwargs: + db_name = kwargs['dbName'] + if db_subnet_group_name is None and 'dbSubnetGroupName' in kwargs: + db_subnet_group_name = kwargs['dbSubnetGroupName'] + if delete_automated_backups is None and 'deleteAutomatedBackups' in kwargs: + delete_automated_backups = kwargs['deleteAutomatedBackups'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if domain_iam_role_name is None and 'domainIamRoleName' in kwargs: + domain_iam_role_name = kwargs['domainIamRoleName'] + if enabled_cloudwatch_logs_exports is None and 'enabledCloudwatchLogsExports' in kwargs: + enabled_cloudwatch_logs_exports = kwargs['enabledCloudwatchLogsExports'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if iam_database_authentication_enabled is None and 'iamDatabaseAuthenticationEnabled' in kwargs: + iam_database_authentication_enabled = kwargs['iamDatabaseAuthenticationEnabled'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if license_model is None and 'licenseModel' in kwargs: + license_model = kwargs['licenseModel'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if manage_master_user_password is None and 'manageMasterUserPassword' in kwargs: + manage_master_user_password = kwargs['manageMasterUserPassword'] + if master_user_secret_kms_key_id is None and 'masterUserSecretKmsKeyId' in kwargs: + master_user_secret_kms_key_id = kwargs['masterUserSecretKmsKeyId'] + if max_allocated_storage is None and 'maxAllocatedStorage' in kwargs: + max_allocated_storage = kwargs['maxAllocatedStorage'] + if monitoring_interval is None and 'monitoringInterval' in kwargs: + monitoring_interval = kwargs['monitoringInterval'] + if monitoring_role_arn is None and 'monitoringRoleArn' in kwargs: + monitoring_role_arn = kwargs['monitoringRoleArn'] + if multi_az is None and 'multiAz' in kwargs: + multi_az = kwargs['multiAz'] + if nchar_character_set_name is None and 'ncharCharacterSetName' in kwargs: + nchar_character_set_name = kwargs['ncharCharacterSetName'] + if network_type is None and 'networkType' in kwargs: + network_type = kwargs['networkType'] + if option_group_name is None and 'optionGroupName' in kwargs: + option_group_name = kwargs['optionGroupName'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if performance_insights_enabled is None and 'performanceInsightsEnabled' in kwargs: + performance_insights_enabled = kwargs['performanceInsightsEnabled'] + if performance_insights_kms_key_id is None and 'performanceInsightsKmsKeyId' in kwargs: + performance_insights_kms_key_id = kwargs['performanceInsightsKmsKeyId'] + if performance_insights_retention_period is None and 'performanceInsightsRetentionPeriod' in kwargs: + performance_insights_retention_period = kwargs['performanceInsightsRetentionPeriod'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if replica_mode is None and 'replicaMode' in kwargs: + replica_mode = kwargs['replicaMode'] + if replicate_source_db is None and 'replicateSourceDb' in kwargs: + replicate_source_db = kwargs['replicateSourceDb'] + if restore_to_point_in_time is None and 'restoreToPointInTime' in kwargs: + restore_to_point_in_time = kwargs['restoreToPointInTime'] + if s3_import is None and 's3Import' in kwargs: + s3_import = kwargs['s3Import'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if storage_throughput is None and 'storageThroughput' in kwargs: + storage_throughput = kwargs['storageThroughput'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("instance_class", instance_class) if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if backup_retention_period is not None: - pulumi.set(__self__, "backup_retention_period", backup_retention_period) + _setter("backup_retention_period", backup_retention_period) if backup_target is not None: - pulumi.set(__self__, "backup_target", backup_target) + _setter("backup_target", backup_target) if backup_window is not None: - pulumi.set(__self__, "backup_window", backup_window) + _setter("backup_window", backup_window) if blue_green_update is not None: - pulumi.set(__self__, "blue_green_update", blue_green_update) + _setter("blue_green_update", blue_green_update) if ca_cert_identifier is not None: - pulumi.set(__self__, "ca_cert_identifier", ca_cert_identifier) + _setter("ca_cert_identifier", ca_cert_identifier) if character_set_name is not None: - pulumi.set(__self__, "character_set_name", character_set_name) + _setter("character_set_name", character_set_name) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if custom_iam_instance_profile is not None: - pulumi.set(__self__, "custom_iam_instance_profile", custom_iam_instance_profile) + _setter("custom_iam_instance_profile", custom_iam_instance_profile) if customer_owned_ip_enabled is not None: - pulumi.set(__self__, "customer_owned_ip_enabled", customer_owned_ip_enabled) + _setter("customer_owned_ip_enabled", customer_owned_ip_enabled) if db_name is not None: - pulumi.set(__self__, "db_name", db_name) + _setter("db_name", db_name) if db_subnet_group_name is not None: - pulumi.set(__self__, "db_subnet_group_name", db_subnet_group_name) + _setter("db_subnet_group_name", db_subnet_group_name) if delete_automated_backups is not None: - pulumi.set(__self__, "delete_automated_backups", delete_automated_backups) + _setter("delete_automated_backups", delete_automated_backups) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if domain_iam_role_name is not None: - pulumi.set(__self__, "domain_iam_role_name", domain_iam_role_name) + _setter("domain_iam_role_name", domain_iam_role_name) if enabled_cloudwatch_logs_exports is not None: - pulumi.set(__self__, "enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) + _setter("enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if iam_database_authentication_enabled is not None: - pulumi.set(__self__, "iam_database_authentication_enabled", iam_database_authentication_enabled) + _setter("iam_database_authentication_enabled", iam_database_authentication_enabled) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if license_model is not None: - pulumi.set(__self__, "license_model", license_model) + _setter("license_model", license_model) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if manage_master_user_password is not None: - pulumi.set(__self__, "manage_master_user_password", manage_master_user_password) + _setter("manage_master_user_password", manage_master_user_password) if master_user_secret_kms_key_id is not None: - pulumi.set(__self__, "master_user_secret_kms_key_id", master_user_secret_kms_key_id) + _setter("master_user_secret_kms_key_id", master_user_secret_kms_key_id) if max_allocated_storage is not None: - pulumi.set(__self__, "max_allocated_storage", max_allocated_storage) + _setter("max_allocated_storage", max_allocated_storage) if monitoring_interval is not None: - pulumi.set(__self__, "monitoring_interval", monitoring_interval) + _setter("monitoring_interval", monitoring_interval) if monitoring_role_arn is not None: - pulumi.set(__self__, "monitoring_role_arn", monitoring_role_arn) + _setter("monitoring_role_arn", monitoring_role_arn) if multi_az is not None: - pulumi.set(__self__, "multi_az", multi_az) + _setter("multi_az", multi_az) if name is not None: warnings.warn("""This property has been deprecated. Please use 'dbName' instead.""", DeprecationWarning) pulumi.log.warn("""name is deprecated: This property has been deprecated. Please use 'dbName' instead.""") if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nchar_character_set_name is not None: - pulumi.set(__self__, "nchar_character_set_name", nchar_character_set_name) + _setter("nchar_character_set_name", nchar_character_set_name) if network_type is not None: - pulumi.set(__self__, "network_type", network_type) + _setter("network_type", network_type) if option_group_name is not None: - pulumi.set(__self__, "option_group_name", option_group_name) + _setter("option_group_name", option_group_name) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if performance_insights_enabled is not None: - pulumi.set(__self__, "performance_insights_enabled", performance_insights_enabled) + _setter("performance_insights_enabled", performance_insights_enabled) if performance_insights_kms_key_id is not None: - pulumi.set(__self__, "performance_insights_kms_key_id", performance_insights_kms_key_id) + _setter("performance_insights_kms_key_id", performance_insights_kms_key_id) if performance_insights_retention_period is not None: - pulumi.set(__self__, "performance_insights_retention_period", performance_insights_retention_period) + _setter("performance_insights_retention_period", performance_insights_retention_period) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if replica_mode is not None: - pulumi.set(__self__, "replica_mode", replica_mode) + _setter("replica_mode", replica_mode) if replicate_source_db is not None: - pulumi.set(__self__, "replicate_source_db", replicate_source_db) + _setter("replicate_source_db", replicate_source_db) if restore_to_point_in_time is not None: - pulumi.set(__self__, "restore_to_point_in_time", restore_to_point_in_time) + _setter("restore_to_point_in_time", restore_to_point_in_time) if s3_import is not None: - pulumi.set(__self__, "s3_import", s3_import) + _setter("s3_import", s3_import) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if storage_throughput is not None: - pulumi.set(__self__, "storage_throughput", storage_throughput) + _setter("storage_throughput", storage_throughput) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="instanceClass") @@ -1401,160 +1640,435 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: List of VPC security groups to associate. """ + _InstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + allocated_storage=allocated_storage, + allow_major_version_upgrade=allow_major_version_upgrade, + apply_immediately=apply_immediately, + arn=arn, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + backup_retention_period=backup_retention_period, + backup_target=backup_target, + backup_window=backup_window, + blue_green_update=blue_green_update, + ca_cert_identifier=ca_cert_identifier, + character_set_name=character_set_name, + copy_tags_to_snapshot=copy_tags_to_snapshot, + custom_iam_instance_profile=custom_iam_instance_profile, + customer_owned_ip_enabled=customer_owned_ip_enabled, + db_name=db_name, + db_subnet_group_name=db_subnet_group_name, + delete_automated_backups=delete_automated_backups, + deletion_protection=deletion_protection, + domain=domain, + domain_iam_role_name=domain_iam_role_name, + enabled_cloudwatch_logs_exports=enabled_cloudwatch_logs_exports, + endpoint=endpoint, + engine=engine, + engine_version=engine_version, + engine_version_actual=engine_version_actual, + final_snapshot_identifier=final_snapshot_identifier, + hosted_zone_id=hosted_zone_id, + iam_database_authentication_enabled=iam_database_authentication_enabled, + identifier=identifier, + identifier_prefix=identifier_prefix, + instance_class=instance_class, + iops=iops, + kms_key_id=kms_key_id, + latest_restorable_time=latest_restorable_time, + license_model=license_model, + listener_endpoints=listener_endpoints, + maintenance_window=maintenance_window, + manage_master_user_password=manage_master_user_password, + master_user_secret_kms_key_id=master_user_secret_kms_key_id, + master_user_secrets=master_user_secrets, + max_allocated_storage=max_allocated_storage, + monitoring_interval=monitoring_interval, + monitoring_role_arn=monitoring_role_arn, + multi_az=multi_az, + name=name, + nchar_character_set_name=nchar_character_set_name, + network_type=network_type, + option_group_name=option_group_name, + parameter_group_name=parameter_group_name, + password=password, + performance_insights_enabled=performance_insights_enabled, + performance_insights_kms_key_id=performance_insights_kms_key_id, + performance_insights_retention_period=performance_insights_retention_period, + port=port, + publicly_accessible=publicly_accessible, + replica_mode=replica_mode, + replicas=replicas, + replicate_source_db=replicate_source_db, + resource_id=resource_id, + restore_to_point_in_time=restore_to_point_in_time, + s3_import=s3_import, + skip_final_snapshot=skip_final_snapshot, + snapshot_identifier=snapshot_identifier, + status=status, + storage_encrypted=storage_encrypted, + storage_throughput=storage_throughput, + storage_type=storage_type, + tags=tags, + tags_all=tags_all, + timezone=timezone, + username=username, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + allocated_storage: Optional[pulumi.Input[int]] = None, + allow_major_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + auto_minor_version_upgrade: Optional[pulumi.Input[bool]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, + backup_target: Optional[pulumi.Input[str]] = None, + backup_window: Optional[pulumi.Input[str]] = None, + blue_green_update: Optional[pulumi.Input['InstanceBlueGreenUpdateArgs']] = None, + ca_cert_identifier: Optional[pulumi.Input[str]] = None, + character_set_name: Optional[pulumi.Input[str]] = None, + copy_tags_to_snapshot: Optional[pulumi.Input[bool]] = None, + custom_iam_instance_profile: Optional[pulumi.Input[str]] = None, + customer_owned_ip_enabled: Optional[pulumi.Input[bool]] = None, + db_name: Optional[pulumi.Input[str]] = None, + db_subnet_group_name: Optional[pulumi.Input[str]] = None, + delete_automated_backups: Optional[pulumi.Input[bool]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, + domain: Optional[pulumi.Input[str]] = None, + domain_iam_role_name: Optional[pulumi.Input[str]] = None, + enabled_cloudwatch_logs_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + engine_version_actual: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + iam_database_authentication_enabled: Optional[pulumi.Input[bool]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + instance_class: Optional[pulumi.Input[Union[str, 'InstanceType']]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + latest_restorable_time: Optional[pulumi.Input[str]] = None, + license_model: Optional[pulumi.Input[str]] = None, + listener_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceListenerEndpointArgs']]]] = None, + maintenance_window: Optional[pulumi.Input[str]] = None, + manage_master_user_password: Optional[pulumi.Input[bool]] = None, + master_user_secret_kms_key_id: Optional[pulumi.Input[str]] = None, + master_user_secrets: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceMasterUserSecretArgs']]]] = None, + max_allocated_storage: Optional[pulumi.Input[int]] = None, + monitoring_interval: Optional[pulumi.Input[int]] = None, + monitoring_role_arn: Optional[pulumi.Input[str]] = None, + multi_az: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + nchar_character_set_name: Optional[pulumi.Input[str]] = None, + network_type: Optional[pulumi.Input[str]] = None, + option_group_name: Optional[pulumi.Input[str]] = None, + parameter_group_name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + performance_insights_enabled: Optional[pulumi.Input[bool]] = None, + performance_insights_kms_key_id: Optional[pulumi.Input[str]] = None, + performance_insights_retention_period: Optional[pulumi.Input[int]] = None, + port: Optional[pulumi.Input[int]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + replica_mode: Optional[pulumi.Input[str]] = None, + replicas: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + replicate_source_db: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + restore_to_point_in_time: Optional[pulumi.Input['InstanceRestoreToPointInTimeArgs']] = None, + s3_import: Optional[pulumi.Input['InstanceS3ImportArgs']] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + storage_throughput: Optional[pulumi.Input[int]] = None, + storage_type: Optional[pulumi.Input[Union[str, 'StorageType']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timezone: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if allow_major_version_upgrade is None and 'allowMajorVersionUpgrade' in kwargs: + allow_major_version_upgrade = kwargs['allowMajorVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if auto_minor_version_upgrade is None and 'autoMinorVersionUpgrade' in kwargs: + auto_minor_version_upgrade = kwargs['autoMinorVersionUpgrade'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if backup_retention_period is None and 'backupRetentionPeriod' in kwargs: + backup_retention_period = kwargs['backupRetentionPeriod'] + if backup_target is None and 'backupTarget' in kwargs: + backup_target = kwargs['backupTarget'] + if backup_window is None and 'backupWindow' in kwargs: + backup_window = kwargs['backupWindow'] + if blue_green_update is None and 'blueGreenUpdate' in kwargs: + blue_green_update = kwargs['blueGreenUpdate'] + if ca_cert_identifier is None and 'caCertIdentifier' in kwargs: + ca_cert_identifier = kwargs['caCertIdentifier'] + if character_set_name is None and 'characterSetName' in kwargs: + character_set_name = kwargs['characterSetName'] + if copy_tags_to_snapshot is None and 'copyTagsToSnapshot' in kwargs: + copy_tags_to_snapshot = kwargs['copyTagsToSnapshot'] + if custom_iam_instance_profile is None and 'customIamInstanceProfile' in kwargs: + custom_iam_instance_profile = kwargs['customIamInstanceProfile'] + if customer_owned_ip_enabled is None and 'customerOwnedIpEnabled' in kwargs: + customer_owned_ip_enabled = kwargs['customerOwnedIpEnabled'] + if db_name is None and 'dbName' in kwargs: + db_name = kwargs['dbName'] + if db_subnet_group_name is None and 'dbSubnetGroupName' in kwargs: + db_subnet_group_name = kwargs['dbSubnetGroupName'] + if delete_automated_backups is None and 'deleteAutomatedBackups' in kwargs: + delete_automated_backups = kwargs['deleteAutomatedBackups'] + if deletion_protection is None and 'deletionProtection' in kwargs: + deletion_protection = kwargs['deletionProtection'] + if domain_iam_role_name is None and 'domainIamRoleName' in kwargs: + domain_iam_role_name = kwargs['domainIamRoleName'] + if enabled_cloudwatch_logs_exports is None and 'enabledCloudwatchLogsExports' in kwargs: + enabled_cloudwatch_logs_exports = kwargs['enabledCloudwatchLogsExports'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if engine_version_actual is None and 'engineVersionActual' in kwargs: + engine_version_actual = kwargs['engineVersionActual'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if iam_database_authentication_enabled is None and 'iamDatabaseAuthenticationEnabled' in kwargs: + iam_database_authentication_enabled = kwargs['iamDatabaseAuthenticationEnabled'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + if instance_class is None and 'instanceClass' in kwargs: + instance_class = kwargs['instanceClass'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if latest_restorable_time is None and 'latestRestorableTime' in kwargs: + latest_restorable_time = kwargs['latestRestorableTime'] + if license_model is None and 'licenseModel' in kwargs: + license_model = kwargs['licenseModel'] + if listener_endpoints is None and 'listenerEndpoints' in kwargs: + listener_endpoints = kwargs['listenerEndpoints'] + if maintenance_window is None and 'maintenanceWindow' in kwargs: + maintenance_window = kwargs['maintenanceWindow'] + if manage_master_user_password is None and 'manageMasterUserPassword' in kwargs: + manage_master_user_password = kwargs['manageMasterUserPassword'] + if master_user_secret_kms_key_id is None and 'masterUserSecretKmsKeyId' in kwargs: + master_user_secret_kms_key_id = kwargs['masterUserSecretKmsKeyId'] + if master_user_secrets is None and 'masterUserSecrets' in kwargs: + master_user_secrets = kwargs['masterUserSecrets'] + if max_allocated_storage is None and 'maxAllocatedStorage' in kwargs: + max_allocated_storage = kwargs['maxAllocatedStorage'] + if monitoring_interval is None and 'monitoringInterval' in kwargs: + monitoring_interval = kwargs['monitoringInterval'] + if monitoring_role_arn is None and 'monitoringRoleArn' in kwargs: + monitoring_role_arn = kwargs['monitoringRoleArn'] + if multi_az is None and 'multiAz' in kwargs: + multi_az = kwargs['multiAz'] + if nchar_character_set_name is None and 'ncharCharacterSetName' in kwargs: + nchar_character_set_name = kwargs['ncharCharacterSetName'] + if network_type is None and 'networkType' in kwargs: + network_type = kwargs['networkType'] + if option_group_name is None and 'optionGroupName' in kwargs: + option_group_name = kwargs['optionGroupName'] + if parameter_group_name is None and 'parameterGroupName' in kwargs: + parameter_group_name = kwargs['parameterGroupName'] + if performance_insights_enabled is None and 'performanceInsightsEnabled' in kwargs: + performance_insights_enabled = kwargs['performanceInsightsEnabled'] + if performance_insights_kms_key_id is None and 'performanceInsightsKmsKeyId' in kwargs: + performance_insights_kms_key_id = kwargs['performanceInsightsKmsKeyId'] + if performance_insights_retention_period is None and 'performanceInsightsRetentionPeriod' in kwargs: + performance_insights_retention_period = kwargs['performanceInsightsRetentionPeriod'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if replica_mode is None and 'replicaMode' in kwargs: + replica_mode = kwargs['replicaMode'] + if replicate_source_db is None and 'replicateSourceDb' in kwargs: + replicate_source_db = kwargs['replicateSourceDb'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if restore_to_point_in_time is None and 'restoreToPointInTime' in kwargs: + restore_to_point_in_time = kwargs['restoreToPointInTime'] + if s3_import is None and 's3Import' in kwargs: + s3_import = kwargs['s3Import'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if storage_encrypted is None and 'storageEncrypted' in kwargs: + storage_encrypted = kwargs['storageEncrypted'] + if storage_throughput is None and 'storageThroughput' in kwargs: + storage_throughput = kwargs['storageThroughput'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if allow_major_version_upgrade is not None: - pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade) + _setter("allow_major_version_upgrade", allow_major_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_minor_version_upgrade is not None: - pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade) + _setter("auto_minor_version_upgrade", auto_minor_version_upgrade) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if backup_retention_period is not None: - pulumi.set(__self__, "backup_retention_period", backup_retention_period) + _setter("backup_retention_period", backup_retention_period) if backup_target is not None: - pulumi.set(__self__, "backup_target", backup_target) + _setter("backup_target", backup_target) if backup_window is not None: - pulumi.set(__self__, "backup_window", backup_window) + _setter("backup_window", backup_window) if blue_green_update is not None: - pulumi.set(__self__, "blue_green_update", blue_green_update) + _setter("blue_green_update", blue_green_update) if ca_cert_identifier is not None: - pulumi.set(__self__, "ca_cert_identifier", ca_cert_identifier) + _setter("ca_cert_identifier", ca_cert_identifier) if character_set_name is not None: - pulumi.set(__self__, "character_set_name", character_set_name) + _setter("character_set_name", character_set_name) if copy_tags_to_snapshot is not None: - pulumi.set(__self__, "copy_tags_to_snapshot", copy_tags_to_snapshot) + _setter("copy_tags_to_snapshot", copy_tags_to_snapshot) if custom_iam_instance_profile is not None: - pulumi.set(__self__, "custom_iam_instance_profile", custom_iam_instance_profile) + _setter("custom_iam_instance_profile", custom_iam_instance_profile) if customer_owned_ip_enabled is not None: - pulumi.set(__self__, "customer_owned_ip_enabled", customer_owned_ip_enabled) + _setter("customer_owned_ip_enabled", customer_owned_ip_enabled) if db_name is not None: - pulumi.set(__self__, "db_name", db_name) + _setter("db_name", db_name) if db_subnet_group_name is not None: - pulumi.set(__self__, "db_subnet_group_name", db_subnet_group_name) + _setter("db_subnet_group_name", db_subnet_group_name) if delete_automated_backups is not None: - pulumi.set(__self__, "delete_automated_backups", delete_automated_backups) + _setter("delete_automated_backups", delete_automated_backups) if deletion_protection is not None: - pulumi.set(__self__, "deletion_protection", deletion_protection) + _setter("deletion_protection", deletion_protection) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if domain_iam_role_name is not None: - pulumi.set(__self__, "domain_iam_role_name", domain_iam_role_name) + _setter("domain_iam_role_name", domain_iam_role_name) if enabled_cloudwatch_logs_exports is not None: - pulumi.set(__self__, "enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) + _setter("enabled_cloudwatch_logs_exports", enabled_cloudwatch_logs_exports) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if engine_version_actual is not None: - pulumi.set(__self__, "engine_version_actual", engine_version_actual) + _setter("engine_version_actual", engine_version_actual) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if iam_database_authentication_enabled is not None: - pulumi.set(__self__, "iam_database_authentication_enabled", iam_database_authentication_enabled) + _setter("iam_database_authentication_enabled", iam_database_authentication_enabled) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if instance_class is not None: - pulumi.set(__self__, "instance_class", instance_class) + _setter("instance_class", instance_class) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if latest_restorable_time is not None: - pulumi.set(__self__, "latest_restorable_time", latest_restorable_time) + _setter("latest_restorable_time", latest_restorable_time) if license_model is not None: - pulumi.set(__self__, "license_model", license_model) + _setter("license_model", license_model) if listener_endpoints is not None: - pulumi.set(__self__, "listener_endpoints", listener_endpoints) + _setter("listener_endpoints", listener_endpoints) if maintenance_window is not None: - pulumi.set(__self__, "maintenance_window", maintenance_window) + _setter("maintenance_window", maintenance_window) if manage_master_user_password is not None: - pulumi.set(__self__, "manage_master_user_password", manage_master_user_password) + _setter("manage_master_user_password", manage_master_user_password) if master_user_secret_kms_key_id is not None: - pulumi.set(__self__, "master_user_secret_kms_key_id", master_user_secret_kms_key_id) + _setter("master_user_secret_kms_key_id", master_user_secret_kms_key_id) if master_user_secrets is not None: - pulumi.set(__self__, "master_user_secrets", master_user_secrets) + _setter("master_user_secrets", master_user_secrets) if max_allocated_storage is not None: - pulumi.set(__self__, "max_allocated_storage", max_allocated_storage) + _setter("max_allocated_storage", max_allocated_storage) if monitoring_interval is not None: - pulumi.set(__self__, "monitoring_interval", monitoring_interval) + _setter("monitoring_interval", monitoring_interval) if monitoring_role_arn is not None: - pulumi.set(__self__, "monitoring_role_arn", monitoring_role_arn) + _setter("monitoring_role_arn", monitoring_role_arn) if multi_az is not None: - pulumi.set(__self__, "multi_az", multi_az) + _setter("multi_az", multi_az) if name is not None: warnings.warn("""This property has been deprecated. Please use 'dbName' instead.""", DeprecationWarning) pulumi.log.warn("""name is deprecated: This property has been deprecated. Please use 'dbName' instead.""") if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if nchar_character_set_name is not None: - pulumi.set(__self__, "nchar_character_set_name", nchar_character_set_name) + _setter("nchar_character_set_name", nchar_character_set_name) if network_type is not None: - pulumi.set(__self__, "network_type", network_type) + _setter("network_type", network_type) if option_group_name is not None: - pulumi.set(__self__, "option_group_name", option_group_name) + _setter("option_group_name", option_group_name) if parameter_group_name is not None: - pulumi.set(__self__, "parameter_group_name", parameter_group_name) + _setter("parameter_group_name", parameter_group_name) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if performance_insights_enabled is not None: - pulumi.set(__self__, "performance_insights_enabled", performance_insights_enabled) + _setter("performance_insights_enabled", performance_insights_enabled) if performance_insights_kms_key_id is not None: - pulumi.set(__self__, "performance_insights_kms_key_id", performance_insights_kms_key_id) + _setter("performance_insights_kms_key_id", performance_insights_kms_key_id) if performance_insights_retention_period is not None: - pulumi.set(__self__, "performance_insights_retention_period", performance_insights_retention_period) + _setter("performance_insights_retention_period", performance_insights_retention_period) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if replica_mode is not None: - pulumi.set(__self__, "replica_mode", replica_mode) + _setter("replica_mode", replica_mode) if replicas is not None: - pulumi.set(__self__, "replicas", replicas) + _setter("replicas", replicas) if replicate_source_db is not None: - pulumi.set(__self__, "replicate_source_db", replicate_source_db) + _setter("replicate_source_db", replicate_source_db) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if restore_to_point_in_time is not None: - pulumi.set(__self__, "restore_to_point_in_time", restore_to_point_in_time) + _setter("restore_to_point_in_time", restore_to_point_in_time) if s3_import is not None: - pulumi.set(__self__, "s3_import", s3_import) + _setter("s3_import", s3_import) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if storage_encrypted is not None: - pulumi.set(__self__, "storage_encrypted", storage_encrypted) + _setter("storage_encrypted", storage_encrypted) if storage_throughput is not None: - pulumi.set(__self__, "storage_throughput", storage_throughput) + _setter("storage_throughput", storage_throughput) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timezone is not None: - pulumi.set(__self__, "timezone", timezone) + _setter("timezone", timezone) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter @@ -2985,6 +3499,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -3069,6 +3587,7 @@ def _internal_init(__self__, __props__.__dict__["backup_retention_period"] = backup_retention_period __props__.__dict__["backup_target"] = backup_target __props__.__dict__["backup_window"] = backup_window + blue_green_update = _utilities.configure(blue_green_update, InstanceBlueGreenUpdateArgs, True) __props__.__dict__["blue_green_update"] = blue_green_update __props__.__dict__["ca_cert_identifier"] = ca_cert_identifier __props__.__dict__["character_set_name"] = character_set_name @@ -3101,9 +3620,6 @@ def _internal_init(__self__, __props__.__dict__["monitoring_interval"] = monitoring_interval __props__.__dict__["monitoring_role_arn"] = monitoring_role_arn __props__.__dict__["multi_az"] = multi_az - if name is not None and not opts.urn: - warnings.warn("""This property has been deprecated. Please use 'dbName' instead.""", DeprecationWarning) - pulumi.log.warn("""name is deprecated: This property has been deprecated. Please use 'dbName' instead.""") __props__.__dict__["name"] = name __props__.__dict__["nchar_character_set_name"] = nchar_character_set_name __props__.__dict__["network_type"] = network_type @@ -3117,7 +3633,9 @@ def _internal_init(__self__, __props__.__dict__["publicly_accessible"] = publicly_accessible __props__.__dict__["replica_mode"] = replica_mode __props__.__dict__["replicate_source_db"] = replicate_source_db + restore_to_point_in_time = _utilities.configure(restore_to_point_in_time, InstanceRestoreToPointInTimeArgs, True) __props__.__dict__["restore_to_point_in_time"] = restore_to_point_in_time + s3_import = _utilities.configure(s3_import, InstanceS3ImportArgs, True) __props__.__dict__["s3_import"] = s3_import __props__.__dict__["skip_final_snapshot"] = skip_final_snapshot __props__.__dict__["snapshot_identifier"] = snapshot_identifier diff --git a/sdk/python/pulumi_aws/rds/instance_automated_backups_replication.py b/sdk/python/pulumi_aws/rds/instance_automated_backups_replication.py index 11561397fa3..641cf7129a1 100644 --- a/sdk/python/pulumi_aws/rds/instance_automated_backups_replication.py +++ b/sdk/python/pulumi_aws/rds/instance_automated_backups_replication.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InstanceAutomatedBackupsReplicationArgs', 'InstanceAutomatedBackupsReplication'] @@ -25,13 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] pre_signed_url: A URL that contains a [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) signed request for the [`StartDBInstanceAutomatedBackupsReplication`](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartDBInstanceAutomatedBackupsReplication.html) action to be called in the AWS Region of the source DB instance. :param pulumi.Input[int] retention_period: The retention period for the replicated automated backups, defaults to `7`. """ - pulumi.set(__self__, "source_db_instance_arn", source_db_instance_arn) + InstanceAutomatedBackupsReplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_db_instance_arn=source_db_instance_arn, + kms_key_id=kms_key_id, + pre_signed_url=pre_signed_url, + retention_period=retention_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_db_instance_arn: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + pre_signed_url: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_db_instance_arn is None and 'sourceDbInstanceArn' in kwargs: + source_db_instance_arn = kwargs['sourceDbInstanceArn'] + if source_db_instance_arn is None: + raise TypeError("Missing 'source_db_instance_arn' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if pre_signed_url is None and 'preSignedUrl' in kwargs: + pre_signed_url = kwargs['preSignedUrl'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + + _setter("source_db_instance_arn", source_db_instance_arn) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if pre_signed_url is not None: - pulumi.set(__self__, "pre_signed_url", pre_signed_url) + _setter("pre_signed_url", pre_signed_url) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) @property @pulumi.getter(name="sourceDbInstanceArn") @@ -96,14 +123,39 @@ def __init__(__self__, *, :param pulumi.Input[int] retention_period: The retention period for the replicated automated backups, defaults to `7`. :param pulumi.Input[str] source_db_instance_arn: The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, `arn:aws:rds:us-west-2:123456789012:db:mydatabase`. """ + _InstanceAutomatedBackupsReplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + pre_signed_url=pre_signed_url, + retention_period=retention_period, + source_db_instance_arn=source_db_instance_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + pre_signed_url: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input[int]] = None, + source_db_instance_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if pre_signed_url is None and 'preSignedUrl' in kwargs: + pre_signed_url = kwargs['preSignedUrl'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if source_db_instance_arn is None and 'sourceDbInstanceArn' in kwargs: + source_db_instance_arn = kwargs['sourceDbInstanceArn'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if pre_signed_url is not None: - pulumi.set(__self__, "pre_signed_url", pre_signed_url) + _setter("pre_signed_url", pre_signed_url) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) if source_db_instance_arn is not None: - pulumi.set(__self__, "source_db_instance_arn", source_db_instance_arn) + _setter("source_db_instance_arn", source_db_instance_arn) @property @pulumi.getter(name="kmsKeyId") @@ -313,6 +365,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceAutomatedBackupsReplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/option_group.py b/sdk/python/pulumi_aws/rds/option_group.py index e8de2836b53..4db2d7bc80d 100644 --- a/sdk/python/pulumi_aws/rds/option_group.py +++ b/sdk/python/pulumi_aws/rds/option_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,20 +33,55 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['OptionGroupOptionArgs']]] options: List of options to apply. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "engine_name", engine_name) - pulumi.set(__self__, "major_engine_version", major_engine_version) + OptionGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + engine_name=engine_name, + major_engine_version=major_engine_version, + name=name, + name_prefix=name_prefix, + option_group_description=option_group_description, + options=options, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engine_name: Optional[pulumi.Input[str]] = None, + major_engine_version: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + option_group_description: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input[Sequence[pulumi.Input['OptionGroupOptionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engine_name is None and 'engineName' in kwargs: + engine_name = kwargs['engineName'] + if engine_name is None: + raise TypeError("Missing 'engine_name' argument") + if major_engine_version is None and 'majorEngineVersion' in kwargs: + major_engine_version = kwargs['majorEngineVersion'] + if major_engine_version is None: + raise TypeError("Missing 'major_engine_version' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if option_group_description is None and 'optionGroupDescription' in kwargs: + option_group_description = kwargs['optionGroupDescription'] + + _setter("engine_name", engine_name) + _setter("major_engine_version", major_engine_version) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if option_group_description is None: option_group_description = 'Managed by Pulumi' if option_group_description is not None: - pulumi.set(__self__, "option_group_description", option_group_description) + _setter("option_group_description", option_group_description) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="engineName") @@ -157,29 +192,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _OptionGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + engine_name=engine_name, + major_engine_version=major_engine_version, + name=name, + name_prefix=name_prefix, + option_group_description=option_group_description, + options=options, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + engine_name: Optional[pulumi.Input[str]] = None, + major_engine_version: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + option_group_description: Optional[pulumi.Input[str]] = None, + options: Optional[pulumi.Input[Sequence[pulumi.Input['OptionGroupOptionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engine_name is None and 'engineName' in kwargs: + engine_name = kwargs['engineName'] + if major_engine_version is None and 'majorEngineVersion' in kwargs: + major_engine_version = kwargs['majorEngineVersion'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if option_group_description is None and 'optionGroupDescription' in kwargs: + option_group_description = kwargs['optionGroupDescription'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if engine_name is not None: - pulumi.set(__self__, "engine_name", engine_name) + _setter("engine_name", engine_name) if major_engine_version is not None: - pulumi.set(__self__, "major_engine_version", major_engine_version) + _setter("major_engine_version", major_engine_version) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if option_group_description is None: option_group_description = 'Managed by Pulumi' if option_group_description is not None: - pulumi.set(__self__, "option_group_description", option_group_description) + _setter("option_group_description", option_group_description) if options is not None: - pulumi.set(__self__, "options", options) + _setter("options", options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -446,6 +518,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OptionGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/outputs.py b/sdk/python/pulumi_aws/rds/outputs.py index aa2466ce78c..f1ec9449ce4 100644 --- a/sdk/python/pulumi_aws/rds/outputs.py +++ b/sdk/python/pulumi_aws/rds/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -71,12 +71,33 @@ def __init__(__self__, *, :param str secret_arn: Amazon Resource Name (ARN) of the secret. :param str secret_status: Status of the secret. Valid Values: `creating` | `active` | `rotating` | `impaired`. """ + ClusterMasterUserSecret._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + secret_arn=secret_arn, + secret_status=secret_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + secret_arn: Optional[str] = None, + secret_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if secret_status is None and 'secretStatus' in kwargs: + secret_status = kwargs['secretStatus'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) if secret_status is not None: - pulumi.set(__self__, "secret_status", secret_status) + _setter("secret_status", secret_status) @property @pulumi.getter(name="kmsKeyId") @@ -133,10 +154,31 @@ def __init__(__self__, *, engines can't apply some parameters without a reboot, and you will need to specify "pending-reboot" here. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ClusterParameterGroupParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + apply_method: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter @@ -202,13 +244,40 @@ def __init__(__self__, *, Valid options are `full-copy` (default) and `copy-on-write`. :param bool use_latest_restorable_time: Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with `restore_to_time`. """ - pulumi.set(__self__, "source_cluster_identifier", source_cluster_identifier) + ClusterRestoreToPointInTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_cluster_identifier=source_cluster_identifier, + restore_to_time=restore_to_time, + restore_type=restore_type, + use_latest_restorable_time=use_latest_restorable_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_cluster_identifier: Optional[str] = None, + restore_to_time: Optional[str] = None, + restore_type: Optional[str] = None, + use_latest_restorable_time: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_cluster_identifier is None and 'sourceClusterIdentifier' in kwargs: + source_cluster_identifier = kwargs['sourceClusterIdentifier'] + if source_cluster_identifier is None: + raise TypeError("Missing 'source_cluster_identifier' argument") + if restore_to_time is None and 'restoreToTime' in kwargs: + restore_to_time = kwargs['restoreToTime'] + if restore_type is None and 'restoreType' in kwargs: + restore_type = kwargs['restoreType'] + if use_latest_restorable_time is None and 'useLatestRestorableTime' in kwargs: + use_latest_restorable_time = kwargs['useLatestRestorableTime'] + + _setter("source_cluster_identifier", source_cluster_identifier) if restore_to_time is not None: - pulumi.set(__self__, "restore_to_time", restore_to_time) + _setter("restore_to_time", restore_to_time) if restore_type is not None: - pulumi.set(__self__, "restore_type", restore_type) + _setter("restore_type", restore_type) if use_latest_restorable_time is not None: - pulumi.set(__self__, "use_latest_restorable_time", use_latest_restorable_time) + _setter("use_latest_restorable_time", use_latest_restorable_time) @property @pulumi.getter(name="sourceClusterIdentifier") @@ -286,12 +355,49 @@ def __init__(__self__, *, This will not recreate the resource if the S3 object changes in some way. It's only used to initialize the database. This only works currently with the aurora engine. See AWS for currently supported engines and options. See [Aurora S3 Migration Docs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3). :param str bucket_prefix: Can be blank, but is the path to your backup """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "ingestion_role", ingestion_role) - pulumi.set(__self__, "source_engine", source_engine) - pulumi.set(__self__, "source_engine_version", source_engine_version) + ClusterS3Import._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + ingestion_role=ingestion_role, + source_engine=source_engine, + source_engine_version=source_engine_version, + bucket_prefix=bucket_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + ingestion_role: Optional[str] = None, + source_engine: Optional[str] = None, + source_engine_version: Optional[str] = None, + bucket_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if ingestion_role is None and 'ingestionRole' in kwargs: + ingestion_role = kwargs['ingestionRole'] + if ingestion_role is None: + raise TypeError("Missing 'ingestion_role' argument") + if source_engine is None and 'sourceEngine' in kwargs: + source_engine = kwargs['sourceEngine'] + if source_engine is None: + raise TypeError("Missing 'source_engine' argument") + if source_engine_version is None and 'sourceEngineVersion' in kwargs: + source_engine_version = kwargs['sourceEngineVersion'] + if source_engine_version is None: + raise TypeError("Missing 'source_engine_version' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + + _setter("bucket_name", bucket_name) + _setter("ingestion_role", ingestion_role) + _setter("source_engine", source_engine) + _setter("source_engine_version", source_engine_version) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) @property @pulumi.getter(name="bucketName") @@ -376,16 +482,45 @@ def __init__(__self__, *, :param int seconds_until_auto_pause: Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are `300` through `86400`. Defaults to `300`. :param str timeout_action: Action to take when the timeout is reached. Valid values: `ForceApplyCapacityChange`, `RollbackCapacityChange`. Defaults to `RollbackCapacityChange`. See [documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.timeout-action). """ + ClusterScalingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_pause=auto_pause, + max_capacity=max_capacity, + min_capacity=min_capacity, + seconds_until_auto_pause=seconds_until_auto_pause, + timeout_action=timeout_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_pause: Optional[bool] = None, + max_capacity: Optional[int] = None, + min_capacity: Optional[int] = None, + seconds_until_auto_pause: Optional[int] = None, + timeout_action: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_pause is None and 'autoPause' in kwargs: + auto_pause = kwargs['autoPause'] + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if seconds_until_auto_pause is None and 'secondsUntilAutoPause' in kwargs: + seconds_until_auto_pause = kwargs['secondsUntilAutoPause'] + if timeout_action is None and 'timeoutAction' in kwargs: + timeout_action = kwargs['timeoutAction'] + if auto_pause is not None: - pulumi.set(__self__, "auto_pause", auto_pause) + _setter("auto_pause", auto_pause) if max_capacity is not None: - pulumi.set(__self__, "max_capacity", max_capacity) + _setter("max_capacity", max_capacity) if min_capacity is not None: - pulumi.set(__self__, "min_capacity", min_capacity) + _setter("min_capacity", min_capacity) if seconds_until_auto_pause is not None: - pulumi.set(__self__, "seconds_until_auto_pause", seconds_until_auto_pause) + _setter("seconds_until_auto_pause", seconds_until_auto_pause) if timeout_action is not None: - pulumi.set(__self__, "timeout_action", timeout_action) + _setter("timeout_action", timeout_action) @property @pulumi.getter(name="autoPause") @@ -456,8 +591,29 @@ def __init__(__self__, *, :param float max_capacity: Maximum capacity for an Aurora DB cluster in `serverless` DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, `256`. Valid Aurora PostgreSQL capacity values are (`2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`). Defaults to `16`. :param float min_capacity: Minimum capacity for an Aurora DB cluster in `serverless` DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, `256`. Valid Aurora PostgreSQL capacity values are (`2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`). Defaults to `1`. """ - pulumi.set(__self__, "max_capacity", max_capacity) - pulumi.set(__self__, "min_capacity", min_capacity) + ClusterServerlessv2ScalingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_capacity=max_capacity, + min_capacity=min_capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_capacity: Optional[float] = None, + min_capacity: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_capacity is None and 'maxCapacity' in kwargs: + max_capacity = kwargs['maxCapacity'] + if max_capacity is None: + raise TypeError("Missing 'max_capacity' argument") + if min_capacity is None and 'minCapacity' in kwargs: + min_capacity = kwargs['minCapacity'] + if min_capacity is None: + raise TypeError("Missing 'min_capacity' argument") + + _setter("max_capacity", max_capacity) + _setter("min_capacity", min_capacity) @property @pulumi.getter(name="maxCapacity") @@ -481,10 +637,23 @@ class ExportTaskTimeouts(dict): def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None): + ExportTaskTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) @property @pulumi.getter @@ -525,10 +694,27 @@ def __init__(__self__, *, :param str db_cluster_arn: Amazon Resource Name (ARN) of member DB Cluster :param bool is_writer: Whether the member is the primary DB Cluster """ + GlobalClusterGlobalClusterMember._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_arn=db_cluster_arn, + is_writer=is_writer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_arn: Optional[str] = None, + is_writer: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_arn is None and 'dbClusterArn' in kwargs: + db_cluster_arn = kwargs['dbClusterArn'] + if is_writer is None and 'isWriter' in kwargs: + is_writer = kwargs['isWriter'] + if db_cluster_arn is not None: - pulumi.set(__self__, "db_cluster_arn", db_cluster_arn) + _setter("db_cluster_arn", db_cluster_arn) if is_writer is not None: - pulumi.set(__self__, "is_writer", is_writer) + _setter("is_writer", is_writer) @property @pulumi.getter(name="dbClusterArn") @@ -562,8 +748,19 @@ def __init__(__self__, *, [blue-green]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html """ + InstanceBlueGreenUpdate._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -610,12 +807,29 @@ def __init__(__self__, *, :param str hosted_zone_id: Specifies the ID that Amazon Route 53 assigns when you create a hosted zone. :param int port: The port on which the DB accepts connections. """ + InstanceListenerEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + hosted_zone_id=hosted_zone_id, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + hosted_zone_id: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -675,12 +889,33 @@ def __init__(__self__, *, :param str secret_arn: The Amazon Resource Name (ARN) of the secret. :param str secret_status: The status of the secret. Valid Values: `creating` | `active` | `rotating` | `impaired`. """ + InstanceMasterUserSecret._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + secret_arn=secret_arn, + secret_status=secret_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + secret_arn: Optional[str] = None, + secret_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if secret_status is None and 'secretStatus' in kwargs: + secret_status = kwargs['secretStatus'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) if secret_status is not None: - pulumi.set(__self__, "secret_status", secret_status) + _setter("secret_status", secret_status) @property @pulumi.getter(name="kmsKeyId") @@ -748,16 +983,45 @@ def __init__(__self__, *, :param str source_dbi_resource_id: The resource ID of the source DB instance from which to restore. Required if `source_db_instance_identifier` or `source_db_instance_automated_backups_arn` is not specified. :param bool use_latest_restorable_time: A boolean value that indicates whether the DB instance is restored from the latest backup time. Defaults to `false`. Cannot be specified with `restore_time`. """ + InstanceRestoreToPointInTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + restore_time=restore_time, + source_db_instance_automated_backups_arn=source_db_instance_automated_backups_arn, + source_db_instance_identifier=source_db_instance_identifier, + source_dbi_resource_id=source_dbi_resource_id, + use_latest_restorable_time=use_latest_restorable_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + restore_time: Optional[str] = None, + source_db_instance_automated_backups_arn: Optional[str] = None, + source_db_instance_identifier: Optional[str] = None, + source_dbi_resource_id: Optional[str] = None, + use_latest_restorable_time: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if restore_time is None and 'restoreTime' in kwargs: + restore_time = kwargs['restoreTime'] + if source_db_instance_automated_backups_arn is None and 'sourceDbInstanceAutomatedBackupsArn' in kwargs: + source_db_instance_automated_backups_arn = kwargs['sourceDbInstanceAutomatedBackupsArn'] + if source_db_instance_identifier is None and 'sourceDbInstanceIdentifier' in kwargs: + source_db_instance_identifier = kwargs['sourceDbInstanceIdentifier'] + if source_dbi_resource_id is None and 'sourceDbiResourceId' in kwargs: + source_dbi_resource_id = kwargs['sourceDbiResourceId'] + if use_latest_restorable_time is None and 'useLatestRestorableTime' in kwargs: + use_latest_restorable_time = kwargs['useLatestRestorableTime'] + if restore_time is not None: - pulumi.set(__self__, "restore_time", restore_time) + _setter("restore_time", restore_time) if source_db_instance_automated_backups_arn is not None: - pulumi.set(__self__, "source_db_instance_automated_backups_arn", source_db_instance_automated_backups_arn) + _setter("source_db_instance_automated_backups_arn", source_db_instance_automated_backups_arn) if source_db_instance_identifier is not None: - pulumi.set(__self__, "source_db_instance_identifier", source_db_instance_identifier) + _setter("source_db_instance_identifier", source_db_instance_identifier) if source_dbi_resource_id is not None: - pulumi.set(__self__, "source_dbi_resource_id", source_dbi_resource_id) + _setter("source_dbi_resource_id", source_dbi_resource_id) if use_latest_restorable_time is not None: - pulumi.set(__self__, "use_latest_restorable_time", use_latest_restorable_time) + _setter("use_latest_restorable_time", use_latest_restorable_time) @property @pulumi.getter(name="restoreTime") @@ -842,12 +1106,49 @@ def __init__(__self__, *, This will not recreate the resource if the S3 object changes in some way. It's only used to initialize the database. :param str bucket_prefix: Can be blank, but is the path to your backup """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "ingestion_role", ingestion_role) - pulumi.set(__self__, "source_engine", source_engine) - pulumi.set(__self__, "source_engine_version", source_engine_version) + InstanceS3Import._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + ingestion_role=ingestion_role, + source_engine=source_engine, + source_engine_version=source_engine_version, + bucket_prefix=bucket_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + ingestion_role: Optional[str] = None, + source_engine: Optional[str] = None, + source_engine_version: Optional[str] = None, + bucket_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if ingestion_role is None and 'ingestionRole' in kwargs: + ingestion_role = kwargs['ingestionRole'] + if ingestion_role is None: + raise TypeError("Missing 'ingestion_role' argument") + if source_engine is None and 'sourceEngine' in kwargs: + source_engine = kwargs['sourceEngine'] + if source_engine is None: + raise TypeError("Missing 'source_engine' argument") + if source_engine_version is None and 'sourceEngineVersion' in kwargs: + source_engine_version = kwargs['sourceEngineVersion'] + if source_engine_version is None: + raise TypeError("Missing 'source_engine_version' argument") + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + + _setter("bucket_name", bucket_name) + _setter("ingestion_role", ingestion_role) + _setter("source_engine", source_engine) + _setter("source_engine_version", source_engine_version) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) @property @pulumi.getter(name="bucketName") @@ -932,17 +1233,48 @@ def __init__(__self__, *, :param str version: Version of the option (e.g., 13.1.0.0). Leaving out or removing `version` from your configuration does not remove or clear a version from the option in AWS. AWS may assign a default version. Not including `version` in your configuration means that the AWS provider will ignore a previously set value, a value set by AWS, and any version changes. :param Sequence[str] vpc_security_group_memberships: List of VPC Security Groups for which the option is enabled. """ - pulumi.set(__self__, "option_name", option_name) + OptionGroupOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + option_name=option_name, + db_security_group_memberships=db_security_group_memberships, + option_settings=option_settings, + port=port, + version=version, + vpc_security_group_memberships=vpc_security_group_memberships, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + option_name: Optional[str] = None, + db_security_group_memberships: Optional[Sequence[str]] = None, + option_settings: Optional[Sequence['outputs.OptionGroupOptionOptionSetting']] = None, + port: Optional[int] = None, + version: Optional[str] = None, + vpc_security_group_memberships: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if option_name is None and 'optionName' in kwargs: + option_name = kwargs['optionName'] + if option_name is None: + raise TypeError("Missing 'option_name' argument") + if db_security_group_memberships is None and 'dbSecurityGroupMemberships' in kwargs: + db_security_group_memberships = kwargs['dbSecurityGroupMemberships'] + if option_settings is None and 'optionSettings' in kwargs: + option_settings = kwargs['optionSettings'] + if vpc_security_group_memberships is None and 'vpcSecurityGroupMemberships' in kwargs: + vpc_security_group_memberships = kwargs['vpcSecurityGroupMemberships'] + + _setter("option_name", option_name) if db_security_group_memberships is not None: - pulumi.set(__self__, "db_security_group_memberships", db_security_group_memberships) + _setter("db_security_group_memberships", db_security_group_memberships) if option_settings is not None: - pulumi.set(__self__, "option_settings", option_settings) + _setter("option_settings", option_settings) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if vpc_security_group_memberships is not None: - pulumi.set(__self__, "vpc_security_group_memberships", vpc_security_group_memberships) + _setter("vpc_security_group_memberships", vpc_security_group_memberships) @property @pulumi.getter(name="optionName") @@ -1002,8 +1334,25 @@ def __init__(__self__, *, :param str name: Name of the setting. :param str value: Value of the setting. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + OptionGroupOptionOptionSetting._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1052,10 +1401,31 @@ def __init__(__self__, *, engines can't apply some parameters without a reboot, and you will need to specify "pending-reboot" here. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + apply_method=apply_method, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + apply_method: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + if apply_method is None and 'applyMethod' in kwargs: + apply_method = kwargs['applyMethod'] + + _setter("name", name) + _setter("value", value) if apply_method is not None: - pulumi.set(__self__, "apply_method", apply_method) + _setter("apply_method", apply_method) @property @pulumi.getter @@ -1124,18 +1494,47 @@ def __init__(__self__, *, :param str secret_arn: The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager. :param str username: The name of the database user to which the proxy connects. """ + ProxyAuth._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_scheme=auth_scheme, + client_password_auth_type=client_password_auth_type, + description=description, + iam_auth=iam_auth, + secret_arn=secret_arn, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_scheme: Optional[str] = None, + client_password_auth_type: Optional[str] = None, + description: Optional[str] = None, + iam_auth: Optional[str] = None, + secret_arn: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_scheme is None and 'authScheme' in kwargs: + auth_scheme = kwargs['authScheme'] + if client_password_auth_type is None and 'clientPasswordAuthType' in kwargs: + client_password_auth_type = kwargs['clientPasswordAuthType'] + if iam_auth is None and 'iamAuth' in kwargs: + iam_auth = kwargs['iamAuth'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if auth_scheme is not None: - pulumi.set(__self__, "auth_scheme", auth_scheme) + _setter("auth_scheme", auth_scheme) if client_password_auth_type is not None: - pulumi.set(__self__, "client_password_auth_type", client_password_auth_type) + _setter("client_password_auth_type", client_password_auth_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if iam_auth is not None: - pulumi.set(__self__, "iam_auth", iam_auth) + _setter("iam_auth", iam_auth) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter(name="authScheme") @@ -1226,16 +1625,45 @@ def __init__(__self__, *, :param int max_idle_connections_percent: Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. :param Sequence[str] session_pinning_filters: Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is `EXCLUDE_VARIABLE_SETS`. """ + ProxyDefaultTargetGroupConnectionPoolConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_borrow_timeout=connection_borrow_timeout, + init_query=init_query, + max_connections_percent=max_connections_percent, + max_idle_connections_percent=max_idle_connections_percent, + session_pinning_filters=session_pinning_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_borrow_timeout: Optional[int] = None, + init_query: Optional[str] = None, + max_connections_percent: Optional[int] = None, + max_idle_connections_percent: Optional[int] = None, + session_pinning_filters: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_borrow_timeout is None and 'connectionBorrowTimeout' in kwargs: + connection_borrow_timeout = kwargs['connectionBorrowTimeout'] + if init_query is None and 'initQuery' in kwargs: + init_query = kwargs['initQuery'] + if max_connections_percent is None and 'maxConnectionsPercent' in kwargs: + max_connections_percent = kwargs['maxConnectionsPercent'] + if max_idle_connections_percent is None and 'maxIdleConnectionsPercent' in kwargs: + max_idle_connections_percent = kwargs['maxIdleConnectionsPercent'] + if session_pinning_filters is None and 'sessionPinningFilters' in kwargs: + session_pinning_filters = kwargs['sessionPinningFilters'] + if connection_borrow_timeout is not None: - pulumi.set(__self__, "connection_borrow_timeout", connection_borrow_timeout) + _setter("connection_borrow_timeout", connection_borrow_timeout) if init_query is not None: - pulumi.set(__self__, "init_query", init_query) + _setter("init_query", init_query) if max_connections_percent is not None: - pulumi.set(__self__, "max_connections_percent", max_connections_percent) + _setter("max_connections_percent", max_connections_percent) if max_idle_connections_percent is not None: - pulumi.set(__self__, "max_idle_connections_percent", max_idle_connections_percent) + _setter("max_idle_connections_percent", max_idle_connections_percent) if session_pinning_filters is not None: - pulumi.set(__self__, "session_pinning_filters", session_pinning_filters) + _setter("session_pinning_filters", session_pinning_filters) @property @pulumi.getter(name="connectionBorrowTimeout") @@ -1302,10 +1730,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, recurring_charge_amount: Optional[int] = None, recurring_charge_frequency: Optional[str] = None): + ReservedInstanceRecurringCharge._configure( + lambda key, value: pulumi.set(__self__, key, value), + recurring_charge_amount=recurring_charge_amount, + recurring_charge_frequency=recurring_charge_frequency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + recurring_charge_amount: Optional[int] = None, + recurring_charge_frequency: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recurring_charge_amount is None and 'recurringChargeAmount' in kwargs: + recurring_charge_amount = kwargs['recurringChargeAmount'] + if recurring_charge_frequency is None and 'recurringChargeFrequency' in kwargs: + recurring_charge_frequency = kwargs['recurringChargeFrequency'] + if recurring_charge_amount is not None: - pulumi.set(__self__, "recurring_charge_amount", recurring_charge_amount) + _setter("recurring_charge_amount", recurring_charge_amount) if recurring_charge_frequency is not None: - pulumi.set(__self__, "recurring_charge_frequency", recurring_charge_frequency) + _setter("recurring_charge_frequency", recurring_charge_frequency) @property @pulumi.getter(name="recurringChargeAmount") @@ -1324,9 +1769,36 @@ def __init__(__self__, *, kms_key_id: str, secret_arn: str, secret_status: str): - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "secret_arn", secret_arn) - pulumi.set(__self__, "secret_status", secret_status) + GetClusterMasterUserSecretResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + secret_arn=secret_arn, + secret_status=secret_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + secret_arn: Optional[str] = None, + secret_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if secret_arn is None: + raise TypeError("Missing 'secret_arn' argument") + if secret_status is None and 'secretStatus' in kwargs: + secret_status = kwargs['secretStatus'] + if secret_status is None: + raise TypeError("Missing 'secret_status' argument") + + _setter("kms_key_id", kms_key_id) + _setter("secret_arn", secret_arn) + _setter("secret_status", secret_status) @property @pulumi.getter(name="kmsKeyId") @@ -1353,8 +1825,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [RDS DescribeDBClusters API Reference](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetClustersFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1378,8 +1867,25 @@ class GetEngineVersionFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetEngineVersionFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1403,9 +1909,36 @@ def __init__(__self__, *, :param str secret_arn: The Amazon Resource Name (ARN) of the secret. :param str secret_status: The status of the secret. Valid Values: `creating` | `active` | `rotating` | `impaired`. """ - pulumi.set(__self__, "kms_key_id", kms_key_id) - pulumi.set(__self__, "secret_arn", secret_arn) - pulumi.set(__self__, "secret_status", secret_status) + GetInstanceMasterUserSecretResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + secret_arn=secret_arn, + secret_status=secret_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + secret_arn: Optional[str] = None, + secret_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if secret_arn is None: + raise TypeError("Missing 'secret_arn' argument") + if secret_status is None and 'secretStatus' in kwargs: + secret_status = kwargs['secretStatus'] + if secret_status is None: + raise TypeError("Missing 'secret_status' argument") + + _setter("kms_key_id", kms_key_id) + _setter("secret_arn", secret_arn) + _setter("secret_status", secret_status) @property @pulumi.getter(name="kmsKeyId") @@ -1441,8 +1974,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [RDS DescribeDBClusters API Reference](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) or [RDS DescribeDBInstances API Reference](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstancesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1470,12 +2020,53 @@ def __init__(__self__, *, iam_auth: str, secret_arn: str, username: str): - pulumi.set(__self__, "auth_scheme", auth_scheme) - pulumi.set(__self__, "client_password_auth_type", client_password_auth_type) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "iam_auth", iam_auth) - pulumi.set(__self__, "secret_arn", secret_arn) - pulumi.set(__self__, "username", username) + GetProxyAuthResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_scheme=auth_scheme, + client_password_auth_type=client_password_auth_type, + description=description, + iam_auth=iam_auth, + secret_arn=secret_arn, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_scheme: Optional[str] = None, + client_password_auth_type: Optional[str] = None, + description: Optional[str] = None, + iam_auth: Optional[str] = None, + secret_arn: Optional[str] = None, + username: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_scheme is None and 'authScheme' in kwargs: + auth_scheme = kwargs['authScheme'] + if auth_scheme is None: + raise TypeError("Missing 'auth_scheme' argument") + if client_password_auth_type is None and 'clientPasswordAuthType' in kwargs: + client_password_auth_type = kwargs['clientPasswordAuthType'] + if client_password_auth_type is None: + raise TypeError("Missing 'client_password_auth_type' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if iam_auth is None and 'iamAuth' in kwargs: + iam_auth = kwargs['iamAuth'] + if iam_auth is None: + raise TypeError("Missing 'iam_auth' argument") + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if secret_arn is None: + raise TypeError("Missing 'secret_arn' argument") + if username is None: + raise TypeError("Missing 'username' argument") + + _setter("auth_scheme", auth_scheme) + _setter("client_password_auth_type", client_password_auth_type) + _setter("description", description) + _setter("iam_auth", iam_auth) + _setter("secret_arn", secret_arn) + _setter("username", username) @property @pulumi.getter(name="authScheme") diff --git a/sdk/python/pulumi_aws/rds/parameter_group.py b/sdk/python/pulumi_aws/rds/parameter_group.py index 36287db24ee..431d814f2e3 100644 --- a/sdk/python/pulumi_aws/rds/parameter_group.py +++ b/sdk/python/pulumi_aws/rds/parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,19 +31,44 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]] parameters: A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via [`aws rds describe-db-parameters`](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) after initial creation of the group. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "family", family) + ParameterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + family=family, + description=description, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family is None: + raise TypeError("Missing 'family' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("family", family) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -140,27 +165,56 @@ def __init__(__self__, *, :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. """ + _ParameterGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + family=family, + name=name, + name_prefix=name_prefix, + parameters=parameters, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if family is not None: - pulumi.set(__self__, "family", family) + _setter("family", family) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -431,6 +485,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ParameterGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/proxy.py b/sdk/python/pulumi_aws/rds/proxy.py index 4826108c237..a9f903b7527 100644 --- a/sdk/python/pulumi_aws/rds/proxy.py +++ b/sdk/python/pulumi_aws/rds/proxy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,22 +39,73 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: One or more VPC security group IDs to associate with the new proxy. """ - pulumi.set(__self__, "auths", auths) - pulumi.set(__self__, "engine_family", engine_family) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "vpc_subnet_ids", vpc_subnet_ids) + ProxyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auths=auths, + engine_family=engine_family, + role_arn=role_arn, + vpc_subnet_ids=vpc_subnet_ids, + debug_logging=debug_logging, + idle_client_timeout=idle_client_timeout, + name=name, + require_tls=require_tls, + tags=tags, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auths: Optional[pulumi.Input[Sequence[pulumi.Input['ProxyAuthArgs']]]] = None, + engine_family: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + vpc_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + debug_logging: Optional[pulumi.Input[bool]] = None, + idle_client_timeout: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + require_tls: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auths is None: + raise TypeError("Missing 'auths' argument") + if engine_family is None and 'engineFamily' in kwargs: + engine_family = kwargs['engineFamily'] + if engine_family is None: + raise TypeError("Missing 'engine_family' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if vpc_subnet_ids is None and 'vpcSubnetIds' in kwargs: + vpc_subnet_ids = kwargs['vpcSubnetIds'] + if vpc_subnet_ids is None: + raise TypeError("Missing 'vpc_subnet_ids' argument") + if debug_logging is None and 'debugLogging' in kwargs: + debug_logging = kwargs['debugLogging'] + if idle_client_timeout is None and 'idleClientTimeout' in kwargs: + idle_client_timeout = kwargs['idleClientTimeout'] + if require_tls is None and 'requireTls' in kwargs: + require_tls = kwargs['requireTls'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("auths", auths) + _setter("engine_family", engine_family) + _setter("role_arn", role_arn) + _setter("vpc_subnet_ids", vpc_subnet_ids) if debug_logging is not None: - pulumi.set(__self__, "debug_logging", debug_logging) + _setter("debug_logging", debug_logging) if idle_client_timeout is not None: - pulumi.set(__self__, "idle_client_timeout", idle_client_timeout) + _setter("idle_client_timeout", idle_client_timeout) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if require_tls is not None: - pulumi.set(__self__, "require_tls", require_tls) + _setter("require_tls", require_tls) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter @@ -209,35 +260,86 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: One or more VPC security group IDs to associate with the new proxy. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_subnet_ids: One or more VPC subnet IDs to associate with the new proxy. """ + _ProxyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auths=auths, + debug_logging=debug_logging, + endpoint=endpoint, + engine_family=engine_family, + idle_client_timeout=idle_client_timeout, + name=name, + require_tls=require_tls, + role_arn=role_arn, + tags=tags, + tags_all=tags_all, + vpc_security_group_ids=vpc_security_group_ids, + vpc_subnet_ids=vpc_subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auths: Optional[pulumi.Input[Sequence[pulumi.Input['ProxyAuthArgs']]]] = None, + debug_logging: Optional[pulumi.Input[bool]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + engine_family: Optional[pulumi.Input[str]] = None, + idle_client_timeout: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + require_tls: Optional[pulumi.Input[bool]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if debug_logging is None and 'debugLogging' in kwargs: + debug_logging = kwargs['debugLogging'] + if engine_family is None and 'engineFamily' in kwargs: + engine_family = kwargs['engineFamily'] + if idle_client_timeout is None and 'idleClientTimeout' in kwargs: + idle_client_timeout = kwargs['idleClientTimeout'] + if require_tls is None and 'requireTls' in kwargs: + require_tls = kwargs['requireTls'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if vpc_subnet_ids is None and 'vpcSubnetIds' in kwargs: + vpc_subnet_ids = kwargs['vpcSubnetIds'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auths is not None: - pulumi.set(__self__, "auths", auths) + _setter("auths", auths) if debug_logging is not None: - pulumi.set(__self__, "debug_logging", debug_logging) + _setter("debug_logging", debug_logging) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if engine_family is not None: - pulumi.set(__self__, "engine_family", engine_family) + _setter("engine_family", engine_family) if idle_client_timeout is not None: - pulumi.set(__self__, "idle_client_timeout", idle_client_timeout) + _setter("idle_client_timeout", idle_client_timeout) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if require_tls is not None: - pulumi.set(__self__, "require_tls", require_tls) + _setter("require_tls", require_tls) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) if vpc_subnet_ids is not None: - pulumi.set(__self__, "vpc_subnet_ids", vpc_subnet_ids) + _setter("vpc_subnet_ids", vpc_subnet_ids) @property @pulumi.getter @@ -518,6 +620,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProxyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/proxy_default_target_group.py b/sdk/python/pulumi_aws/rds/proxy_default_target_group.py index 1609a3315ae..ffc3bc75aa2 100644 --- a/sdk/python/pulumi_aws/rds/proxy_default_target_group.py +++ b/sdk/python/pulumi_aws/rds/proxy_default_target_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,28 @@ def __init__(__self__, *, :param pulumi.Input[str] db_proxy_name: Name of the RDS DB Proxy. :param pulumi.Input['ProxyDefaultTargetGroupConnectionPoolConfigArgs'] connection_pool_config: The settings that determine the size and behavior of the connection pool for the target group. """ - pulumi.set(__self__, "db_proxy_name", db_proxy_name) + ProxyDefaultTargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_proxy_name=db_proxy_name, + connection_pool_config=connection_pool_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_proxy_name: Optional[pulumi.Input[str]] = None, + connection_pool_config: Optional[pulumi.Input['ProxyDefaultTargetGroupConnectionPoolConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_proxy_name is None and 'dbProxyName' in kwargs: + db_proxy_name = kwargs['dbProxyName'] + if db_proxy_name is None: + raise TypeError("Missing 'db_proxy_name' argument") + if connection_pool_config is None and 'connectionPoolConfig' in kwargs: + connection_pool_config = kwargs['connectionPoolConfig'] + + _setter("db_proxy_name", db_proxy_name) if connection_pool_config is not None: - pulumi.set(__self__, "connection_pool_config", connection_pool_config) + _setter("connection_pool_config", connection_pool_config) @property @pulumi.getter(name="dbProxyName") @@ -66,14 +85,35 @@ def __init__(__self__, *, :param pulumi.Input[str] db_proxy_name: Name of the RDS DB Proxy. :param pulumi.Input[str] name: The name of the default target group. """ + _ProxyDefaultTargetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + connection_pool_config=connection_pool_config, + db_proxy_name=db_proxy_name, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + connection_pool_config: Optional[pulumi.Input['ProxyDefaultTargetGroupConnectionPoolConfigArgs']] = None, + db_proxy_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_pool_config is None and 'connectionPoolConfig' in kwargs: + connection_pool_config = kwargs['connectionPoolConfig'] + if db_proxy_name is None and 'dbProxyName' in kwargs: + db_proxy_name = kwargs['dbProxyName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if connection_pool_config is not None: - pulumi.set(__self__, "connection_pool_config", connection_pool_config) + _setter("connection_pool_config", connection_pool_config) if db_proxy_name is not None: - pulumi.set(__self__, "db_proxy_name", db_proxy_name) + _setter("db_proxy_name", db_proxy_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -249,6 +289,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProxyDefaultTargetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -265,6 +309,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ProxyDefaultTargetGroupArgs.__new__(ProxyDefaultTargetGroupArgs) + connection_pool_config = _utilities.configure(connection_pool_config, ProxyDefaultTargetGroupConnectionPoolConfigArgs, True) __props__.__dict__["connection_pool_config"] = connection_pool_config if db_proxy_name is None and not opts.urn: raise TypeError("Missing required property 'db_proxy_name'") diff --git a/sdk/python/pulumi_aws/rds/proxy_endpoint.py b/sdk/python/pulumi_aws/rds/proxy_endpoint.py index 54e8d88ecd5..4e83f4aa956 100644 --- a/sdk/python/pulumi_aws/rds/proxy_endpoint.py +++ b/sdk/python/pulumi_aws/rds/proxy_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProxyEndpointArgs', 'ProxyEndpoint'] @@ -29,15 +29,52 @@ def __init__(__self__, *, :param pulumi.Input[str] target_role: Indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is `READ_WRITE`. Valid values are `READ_WRITE` and `READ_ONLY`. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: One or more VPC security group IDs to associate with the new proxy. """ - pulumi.set(__self__, "db_proxy_endpoint_name", db_proxy_endpoint_name) - pulumi.set(__self__, "db_proxy_name", db_proxy_name) - pulumi.set(__self__, "vpc_subnet_ids", vpc_subnet_ids) + ProxyEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_proxy_endpoint_name=db_proxy_endpoint_name, + db_proxy_name=db_proxy_name, + vpc_subnet_ids=vpc_subnet_ids, + tags=tags, + target_role=target_role, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_proxy_endpoint_name: Optional[pulumi.Input[str]] = None, + db_proxy_name: Optional[pulumi.Input[str]] = None, + vpc_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_role: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_proxy_endpoint_name is None and 'dbProxyEndpointName' in kwargs: + db_proxy_endpoint_name = kwargs['dbProxyEndpointName'] + if db_proxy_endpoint_name is None: + raise TypeError("Missing 'db_proxy_endpoint_name' argument") + if db_proxy_name is None and 'dbProxyName' in kwargs: + db_proxy_name = kwargs['dbProxyName'] + if db_proxy_name is None: + raise TypeError("Missing 'db_proxy_name' argument") + if vpc_subnet_ids is None and 'vpcSubnetIds' in kwargs: + vpc_subnet_ids = kwargs['vpcSubnetIds'] + if vpc_subnet_ids is None: + raise TypeError("Missing 'vpc_subnet_ids' argument") + if target_role is None and 'targetRole' in kwargs: + target_role = kwargs['targetRole'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("db_proxy_endpoint_name", db_proxy_endpoint_name) + _setter("db_proxy_name", db_proxy_name) + _setter("vpc_subnet_ids", vpc_subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_role is not None: - pulumi.set(__self__, "target_role", target_role) + _setter("target_role", target_role) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="dbProxyEndpointName") @@ -139,31 +176,78 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: One or more VPC security group IDs to associate with the new proxy. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_subnet_ids: One or more VPC subnet IDs to associate with the new proxy. """ + _ProxyEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + db_proxy_endpoint_name=db_proxy_endpoint_name, + db_proxy_name=db_proxy_name, + endpoint=endpoint, + is_default=is_default, + tags=tags, + tags_all=tags_all, + target_role=target_role, + vpc_id=vpc_id, + vpc_security_group_ids=vpc_security_group_ids, + vpc_subnet_ids=vpc_subnet_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + db_proxy_endpoint_name: Optional[pulumi.Input[str]] = None, + db_proxy_name: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + is_default: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_role: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_proxy_endpoint_name is None and 'dbProxyEndpointName' in kwargs: + db_proxy_endpoint_name = kwargs['dbProxyEndpointName'] + if db_proxy_name is None and 'dbProxyName' in kwargs: + db_proxy_name = kwargs['dbProxyName'] + if is_default is None and 'isDefault' in kwargs: + is_default = kwargs['isDefault'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_role is None and 'targetRole' in kwargs: + target_role = kwargs['targetRole'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if vpc_subnet_ids is None and 'vpcSubnetIds' in kwargs: + vpc_subnet_ids = kwargs['vpcSubnetIds'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if db_proxy_endpoint_name is not None: - pulumi.set(__self__, "db_proxy_endpoint_name", db_proxy_endpoint_name) + _setter("db_proxy_endpoint_name", db_proxy_endpoint_name) if db_proxy_name is not None: - pulumi.set(__self__, "db_proxy_name", db_proxy_name) + _setter("db_proxy_name", db_proxy_name) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if is_default is not None: - pulumi.set(__self__, "is_default", is_default) + _setter("is_default", is_default) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_role is not None: - pulumi.set(__self__, "target_role", target_role) + _setter("target_role", target_role) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) if vpc_subnet_ids is not None: - pulumi.set(__self__, "vpc_subnet_ids", vpc_subnet_ids) + _setter("vpc_subnet_ids", vpc_subnet_ids) @property @pulumi.getter @@ -383,6 +467,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProxyEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/proxy_target.py b/sdk/python/pulumi_aws/rds/proxy_target.py index 23232617fe6..ae6743064f0 100644 --- a/sdk/python/pulumi_aws/rds/proxy_target.py +++ b/sdk/python/pulumi_aws/rds/proxy_target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProxyTargetArgs', 'ProxyTarget'] @@ -27,12 +27,41 @@ def __init__(__self__, *, **NOTE:** Either `db_instance_identifier` or `db_cluster_identifier` should be specified and both should not be specified together :param pulumi.Input[str] db_instance_identifier: DB instance identifier. """ - pulumi.set(__self__, "db_proxy_name", db_proxy_name) - pulumi.set(__self__, "target_group_name", target_group_name) + ProxyTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_proxy_name=db_proxy_name, + target_group_name=target_group_name, + db_cluster_identifier=db_cluster_identifier, + db_instance_identifier=db_instance_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_proxy_name: Optional[pulumi.Input[str]] = None, + target_group_name: Optional[pulumi.Input[str]] = None, + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + db_instance_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_proxy_name is None and 'dbProxyName' in kwargs: + db_proxy_name = kwargs['dbProxyName'] + if db_proxy_name is None: + raise TypeError("Missing 'db_proxy_name' argument") + if target_group_name is None and 'targetGroupName' in kwargs: + target_group_name = kwargs['targetGroupName'] + if target_group_name is None: + raise TypeError("Missing 'target_group_name' argument") + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_instance_identifier is None and 'dbInstanceIdentifier' in kwargs: + db_instance_identifier = kwargs['dbInstanceIdentifier'] + + _setter("db_proxy_name", db_proxy_name) + _setter("target_group_name", target_group_name) if db_cluster_identifier is not None: - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) + _setter("db_cluster_identifier", db_cluster_identifier) if db_instance_identifier is not None: - pulumi.set(__self__, "db_instance_identifier", db_instance_identifier) + _setter("db_instance_identifier", db_instance_identifier) @property @pulumi.getter(name="dbProxyName") @@ -113,26 +142,69 @@ def __init__(__self__, *, :param pulumi.Input[str] tracked_cluster_id: DB Cluster identifier for the DB Instance target. Not returned unless manually importing an `RDS_INSTANCE` target that is part of a DB Cluster. :param pulumi.Input[str] type: Type of targetE.g., `RDS_INSTANCE` or `TRACKED_CLUSTER` """ + _ProxyTargetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_cluster_identifier=db_cluster_identifier, + db_instance_identifier=db_instance_identifier, + db_proxy_name=db_proxy_name, + endpoint=endpoint, + port=port, + rds_resource_id=rds_resource_id, + target_arn=target_arn, + target_group_name=target_group_name, + tracked_cluster_id=tracked_cluster_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_cluster_identifier: Optional[pulumi.Input[str]] = None, + db_instance_identifier: Optional[pulumi.Input[str]] = None, + db_proxy_name: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + rds_resource_id: Optional[pulumi.Input[str]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + target_group_name: Optional[pulumi.Input[str]] = None, + tracked_cluster_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_cluster_identifier is None and 'dbClusterIdentifier' in kwargs: + db_cluster_identifier = kwargs['dbClusterIdentifier'] + if db_instance_identifier is None and 'dbInstanceIdentifier' in kwargs: + db_instance_identifier = kwargs['dbInstanceIdentifier'] + if db_proxy_name is None and 'dbProxyName' in kwargs: + db_proxy_name = kwargs['dbProxyName'] + if rds_resource_id is None and 'rdsResourceId' in kwargs: + rds_resource_id = kwargs['rdsResourceId'] + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_group_name is None and 'targetGroupName' in kwargs: + target_group_name = kwargs['targetGroupName'] + if tracked_cluster_id is None and 'trackedClusterId' in kwargs: + tracked_cluster_id = kwargs['trackedClusterId'] + if db_cluster_identifier is not None: - pulumi.set(__self__, "db_cluster_identifier", db_cluster_identifier) + _setter("db_cluster_identifier", db_cluster_identifier) if db_instance_identifier is not None: - pulumi.set(__self__, "db_instance_identifier", db_instance_identifier) + _setter("db_instance_identifier", db_instance_identifier) if db_proxy_name is not None: - pulumi.set(__self__, "db_proxy_name", db_proxy_name) + _setter("db_proxy_name", db_proxy_name) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if rds_resource_id is not None: - pulumi.set(__self__, "rds_resource_id", rds_resource_id) + _setter("rds_resource_id", rds_resource_id) if target_arn is not None: - pulumi.set(__self__, "target_arn", target_arn) + _setter("target_arn", target_arn) if target_group_name is not None: - pulumi.set(__self__, "target_group_name", target_group_name) + _setter("target_group_name", target_group_name) if tracked_cluster_id is not None: - pulumi.set(__self__, "tracked_cluster_id", tracked_cluster_id) + _setter("tracked_cluster_id", tracked_cluster_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="dbClusterIdentifier") @@ -410,6 +482,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProxyTargetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/reserved_instance.py b/sdk/python/pulumi_aws/rds/reserved_instance.py index d273e42f664..e98c8b74287 100644 --- a/sdk/python/pulumi_aws/rds/reserved_instance.py +++ b/sdk/python/pulumi_aws/rds/reserved_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,38 @@ def __init__(__self__, *, :param pulumi.Input[str] reservation_id: Customer-specified identifier to track this reservation. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the DB reservation. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "offering_id", offering_id) + ReservedInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + offering_id=offering_id, + instance_count=instance_count, + reservation_id=reservation_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + offering_id: Optional[pulumi.Input[str]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + reservation_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if offering_id is None and 'offeringId' in kwargs: + offering_id = kwargs['offeringId'] + if offering_id is None: + raise TypeError("Missing 'offering_id' argument") + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if reservation_id is None and 'reservationId' in kwargs: + reservation_id = kwargs['reservationId'] + + _setter("offering_id", offering_id) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if reservation_id is not None: - pulumi.set(__self__, "reservation_id", reservation_id) + _setter("reservation_id", reservation_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="offeringId") @@ -132,45 +157,118 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[float] usage_price: Hourly price charged for this reserved DB instance. """ + _ReservedInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + currency_code=currency_code, + db_instance_class=db_instance_class, + duration=duration, + fixed_price=fixed_price, + instance_count=instance_count, + lease_id=lease_id, + multi_az=multi_az, + offering_id=offering_id, + offering_type=offering_type, + product_description=product_description, + recurring_charges=recurring_charges, + reservation_id=reservation_id, + start_time=start_time, + state=state, + tags=tags, + tags_all=tags_all, + usage_price=usage_price, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + currency_code: Optional[pulumi.Input[str]] = None, + db_instance_class: Optional[pulumi.Input[str]] = None, + duration: Optional[pulumi.Input[int]] = None, + fixed_price: Optional[pulumi.Input[float]] = None, + instance_count: Optional[pulumi.Input[int]] = None, + lease_id: Optional[pulumi.Input[str]] = None, + multi_az: Optional[pulumi.Input[bool]] = None, + offering_id: Optional[pulumi.Input[str]] = None, + offering_type: Optional[pulumi.Input[str]] = None, + product_description: Optional[pulumi.Input[str]] = None, + recurring_charges: Optional[pulumi.Input[Sequence[pulumi.Input['ReservedInstanceRecurringChargeArgs']]]] = None, + reservation_id: Optional[pulumi.Input[str]] = None, + start_time: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + usage_price: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if currency_code is None and 'currencyCode' in kwargs: + currency_code = kwargs['currencyCode'] + if db_instance_class is None and 'dbInstanceClass' in kwargs: + db_instance_class = kwargs['dbInstanceClass'] + if fixed_price is None and 'fixedPrice' in kwargs: + fixed_price = kwargs['fixedPrice'] + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if lease_id is None and 'leaseId' in kwargs: + lease_id = kwargs['leaseId'] + if multi_az is None and 'multiAz' in kwargs: + multi_az = kwargs['multiAz'] + if offering_id is None and 'offeringId' in kwargs: + offering_id = kwargs['offeringId'] + if offering_type is None and 'offeringType' in kwargs: + offering_type = kwargs['offeringType'] + if product_description is None and 'productDescription' in kwargs: + product_description = kwargs['productDescription'] + if recurring_charges is None and 'recurringCharges' in kwargs: + recurring_charges = kwargs['recurringCharges'] + if reservation_id is None and 'reservationId' in kwargs: + reservation_id = kwargs['reservationId'] + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if usage_price is None and 'usagePrice' in kwargs: + usage_price = kwargs['usagePrice'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if currency_code is not None: - pulumi.set(__self__, "currency_code", currency_code) + _setter("currency_code", currency_code) if db_instance_class is not None: - pulumi.set(__self__, "db_instance_class", db_instance_class) + _setter("db_instance_class", db_instance_class) if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if fixed_price is not None: - pulumi.set(__self__, "fixed_price", fixed_price) + _setter("fixed_price", fixed_price) if instance_count is not None: - pulumi.set(__self__, "instance_count", instance_count) + _setter("instance_count", instance_count) if lease_id is not None: - pulumi.set(__self__, "lease_id", lease_id) + _setter("lease_id", lease_id) if multi_az is not None: - pulumi.set(__self__, "multi_az", multi_az) + _setter("multi_az", multi_az) if offering_id is not None: - pulumi.set(__self__, "offering_id", offering_id) + _setter("offering_id", offering_id) if offering_type is not None: - pulumi.set(__self__, "offering_type", offering_type) + _setter("offering_type", offering_type) if product_description is not None: - pulumi.set(__self__, "product_description", product_description) + _setter("product_description", product_description) if recurring_charges is not None: - pulumi.set(__self__, "recurring_charges", recurring_charges) + _setter("recurring_charges", recurring_charges) if reservation_id is not None: - pulumi.set(__self__, "reservation_id", reservation_id) + _setter("reservation_id", reservation_id) if start_time is not None: - pulumi.set(__self__, "start_time", start_time) + _setter("start_time", start_time) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if usage_price is not None: - pulumi.set(__self__, "usage_price", usage_price) + _setter("usage_price", usage_price) @property @pulumi.getter @@ -493,6 +591,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReservedInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/role_association.py b/sdk/python/pulumi_aws/rds/role_association.py index 4141413d229..301719071bb 100644 --- a/sdk/python/pulumi_aws/rds/role_association.py +++ b/sdk/python/pulumi_aws/rds/role_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RoleAssociationArgs', 'RoleAssociation'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] feature_name: Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the `SupportedFeatureNames` list returned by [AWS CLI rds describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html). :param pulumi.Input[str] role_arn: Amazon Resource Name (ARN) of the IAM Role to associate with the DB Instance. """ - pulumi.set(__self__, "db_instance_identifier", db_instance_identifier) - pulumi.set(__self__, "feature_name", feature_name) - pulumi.set(__self__, "role_arn", role_arn) + RoleAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_instance_identifier=db_instance_identifier, + feature_name=feature_name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_instance_identifier: Optional[pulumi.Input[str]] = None, + feature_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_instance_identifier is None and 'dbInstanceIdentifier' in kwargs: + db_instance_identifier = kwargs['dbInstanceIdentifier'] + if db_instance_identifier is None: + raise TypeError("Missing 'db_instance_identifier' argument") + if feature_name is None and 'featureName' in kwargs: + feature_name = kwargs['featureName'] + if feature_name is None: + raise TypeError("Missing 'feature_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("db_instance_identifier", db_instance_identifier) + _setter("feature_name", feature_name) + _setter("role_arn", role_arn) @property @pulumi.getter(name="dbInstanceIdentifier") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] feature_name: Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the `SupportedFeatureNames` list returned by [AWS CLI rds describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html). :param pulumi.Input[str] role_arn: Amazon Resource Name (ARN) of the IAM Role to associate with the DB Instance. """ + _RoleAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_instance_identifier=db_instance_identifier, + feature_name=feature_name, + role_arn=role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_instance_identifier: Optional[pulumi.Input[str]] = None, + feature_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_instance_identifier is None and 'dbInstanceIdentifier' in kwargs: + db_instance_identifier = kwargs['dbInstanceIdentifier'] + if feature_name is None and 'featureName' in kwargs: + feature_name = kwargs['featureName'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if db_instance_identifier is not None: - pulumi.set(__self__, "db_instance_identifier", db_instance_identifier) + _setter("db_instance_identifier", db_instance_identifier) if feature_name is not None: - pulumi.set(__self__, "feature_name", feature_name) + _setter("feature_name", feature_name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) @property @pulumi.getter(name="dbInstanceIdentifier") @@ -207,6 +255,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RoleAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/snapshot.py b/sdk/python/pulumi_aws/rds/snapshot.py index 49c2bb52b9f..2776bcfb27d 100644 --- a/sdk/python/pulumi_aws/rds/snapshot.py +++ b/sdk/python/pulumi_aws/rds/snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SnapshotArgs', 'Snapshot'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] shared_accounts: List of AWS Account ids to share snapshot with, use `all` to make snaphot public. :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. """ - pulumi.set(__self__, "db_instance_identifier", db_instance_identifier) - pulumi.set(__self__, "db_snapshot_identifier", db_snapshot_identifier) + SnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + db_instance_identifier=db_instance_identifier, + db_snapshot_identifier=db_snapshot_identifier, + shared_accounts=shared_accounts, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + db_instance_identifier: Optional[pulumi.Input[str]] = None, + db_snapshot_identifier: Optional[pulumi.Input[str]] = None, + shared_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if db_instance_identifier is None and 'dbInstanceIdentifier' in kwargs: + db_instance_identifier = kwargs['dbInstanceIdentifier'] + if db_instance_identifier is None: + raise TypeError("Missing 'db_instance_identifier' argument") + if db_snapshot_identifier is None and 'dbSnapshotIdentifier' in kwargs: + db_snapshot_identifier = kwargs['dbSnapshotIdentifier'] + if db_snapshot_identifier is None: + raise TypeError("Missing 'db_snapshot_identifier' argument") + if shared_accounts is None and 'sharedAccounts' in kwargs: + shared_accounts = kwargs['sharedAccounts'] + + _setter("db_instance_identifier", db_instance_identifier) + _setter("db_snapshot_identifier", db_snapshot_identifier) if shared_accounts is not None: - pulumi.set(__self__, "shared_accounts", shared_accounts) + _setter("shared_accounts", shared_accounts) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dbInstanceIdentifier") @@ -129,53 +156,138 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: Provides the VPC ID associated with the DB snapshot. """ + _SnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocated_storage=allocated_storage, + availability_zone=availability_zone, + db_instance_identifier=db_instance_identifier, + db_snapshot_arn=db_snapshot_arn, + db_snapshot_identifier=db_snapshot_identifier, + encrypted=encrypted, + engine=engine, + engine_version=engine_version, + iops=iops, + kms_key_id=kms_key_id, + license_model=license_model, + option_group_name=option_group_name, + port=port, + shared_accounts=shared_accounts, + snapshot_type=snapshot_type, + source_db_snapshot_identifier=source_db_snapshot_identifier, + source_region=source_region, + status=status, + storage_type=storage_type, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocated_storage: Optional[pulumi.Input[int]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + db_instance_identifier: Optional[pulumi.Input[str]] = None, + db_snapshot_arn: Optional[pulumi.Input[str]] = None, + db_snapshot_identifier: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + license_model: Optional[pulumi.Input[str]] = None, + option_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + shared_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_type: Optional[pulumi.Input[str]] = None, + source_db_snapshot_identifier: Optional[pulumi.Input[str]] = None, + source_region: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if db_instance_identifier is None and 'dbInstanceIdentifier' in kwargs: + db_instance_identifier = kwargs['dbInstanceIdentifier'] + if db_snapshot_arn is None and 'dbSnapshotArn' in kwargs: + db_snapshot_arn = kwargs['dbSnapshotArn'] + if db_snapshot_identifier is None and 'dbSnapshotIdentifier' in kwargs: + db_snapshot_identifier = kwargs['dbSnapshotIdentifier'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if license_model is None and 'licenseModel' in kwargs: + license_model = kwargs['licenseModel'] + if option_group_name is None and 'optionGroupName' in kwargs: + option_group_name = kwargs['optionGroupName'] + if shared_accounts is None and 'sharedAccounts' in kwargs: + shared_accounts = kwargs['sharedAccounts'] + if snapshot_type is None and 'snapshotType' in kwargs: + snapshot_type = kwargs['snapshotType'] + if source_db_snapshot_identifier is None and 'sourceDbSnapshotIdentifier' in kwargs: + source_db_snapshot_identifier = kwargs['sourceDbSnapshotIdentifier'] + if source_region is None and 'sourceRegion' in kwargs: + source_region = kwargs['sourceRegion'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if db_instance_identifier is not None: - pulumi.set(__self__, "db_instance_identifier", db_instance_identifier) + _setter("db_instance_identifier", db_instance_identifier) if db_snapshot_arn is not None: - pulumi.set(__self__, "db_snapshot_arn", db_snapshot_arn) + _setter("db_snapshot_arn", db_snapshot_arn) if db_snapshot_identifier is not None: - pulumi.set(__self__, "db_snapshot_identifier", db_snapshot_identifier) + _setter("db_snapshot_identifier", db_snapshot_identifier) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if license_model is not None: - pulumi.set(__self__, "license_model", license_model) + _setter("license_model", license_model) if option_group_name is not None: - pulumi.set(__self__, "option_group_name", option_group_name) + _setter("option_group_name", option_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if shared_accounts is not None: - pulumi.set(__self__, "shared_accounts", shared_accounts) + _setter("shared_accounts", shared_accounts) if snapshot_type is not None: - pulumi.set(__self__, "snapshot_type", snapshot_type) + _setter("snapshot_type", snapshot_type) if source_db_snapshot_identifier is not None: - pulumi.set(__self__, "source_db_snapshot_identifier", source_db_snapshot_identifier) + _setter("source_db_snapshot_identifier", source_db_snapshot_identifier) if source_region is not None: - pulumi.set(__self__, "source_region", source_region) + _setter("source_region", source_region) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="allocatedStorage") @@ -538,6 +650,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/snapshot_copy.py b/sdk/python/pulumi_aws/rds/snapshot_copy.py index 675c4cd70ce..c589527b034 100644 --- a/sdk/python/pulumi_aws/rds/snapshot_copy.py +++ b/sdk/python/pulumi_aws/rds/snapshot_copy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SnapshotCopyArgs', 'SnapshotCopy'] @@ -35,22 +35,69 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] target_custom_availability_zone: The external custom Availability Zone. """ - pulumi.set(__self__, "source_db_snapshot_identifier", source_db_snapshot_identifier) - pulumi.set(__self__, "target_db_snapshot_identifier", target_db_snapshot_identifier) + SnapshotCopyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_db_snapshot_identifier=source_db_snapshot_identifier, + target_db_snapshot_identifier=target_db_snapshot_identifier, + copy_tags=copy_tags, + destination_region=destination_region, + kms_key_id=kms_key_id, + option_group_name=option_group_name, + presigned_url=presigned_url, + tags=tags, + target_custom_availability_zone=target_custom_availability_zone, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_db_snapshot_identifier: Optional[pulumi.Input[str]] = None, + target_db_snapshot_identifier: Optional[pulumi.Input[str]] = None, + copy_tags: Optional[pulumi.Input[bool]] = None, + destination_region: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + option_group_name: Optional[pulumi.Input[str]] = None, + presigned_url: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_custom_availability_zone: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_db_snapshot_identifier is None and 'sourceDbSnapshotIdentifier' in kwargs: + source_db_snapshot_identifier = kwargs['sourceDbSnapshotIdentifier'] + if source_db_snapshot_identifier is None: + raise TypeError("Missing 'source_db_snapshot_identifier' argument") + if target_db_snapshot_identifier is None and 'targetDbSnapshotIdentifier' in kwargs: + target_db_snapshot_identifier = kwargs['targetDbSnapshotIdentifier'] + if target_db_snapshot_identifier is None: + raise TypeError("Missing 'target_db_snapshot_identifier' argument") + if copy_tags is None and 'copyTags' in kwargs: + copy_tags = kwargs['copyTags'] + if destination_region is None and 'destinationRegion' in kwargs: + destination_region = kwargs['destinationRegion'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if option_group_name is None and 'optionGroupName' in kwargs: + option_group_name = kwargs['optionGroupName'] + if presigned_url is None and 'presignedUrl' in kwargs: + presigned_url = kwargs['presignedUrl'] + if target_custom_availability_zone is None and 'targetCustomAvailabilityZone' in kwargs: + target_custom_availability_zone = kwargs['targetCustomAvailabilityZone'] + + _setter("source_db_snapshot_identifier", source_db_snapshot_identifier) + _setter("target_db_snapshot_identifier", target_db_snapshot_identifier) if copy_tags is not None: - pulumi.set(__self__, "copy_tags", copy_tags) + _setter("copy_tags", copy_tags) if destination_region is not None: - pulumi.set(__self__, "destination_region", destination_region) + _setter("destination_region", destination_region) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if option_group_name is not None: - pulumi.set(__self__, "option_group_name", option_group_name) + _setter("option_group_name", option_group_name) if presigned_url is not None: - pulumi.set(__self__, "presigned_url", presigned_url) + _setter("presigned_url", presigned_url) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_custom_availability_zone is not None: - pulumi.set(__self__, "target_custom_availability_zone", target_custom_availability_zone) + _setter("target_custom_availability_zone", target_custom_availability_zone) @property @pulumi.getter(name="sourceDbSnapshotIdentifier") @@ -211,55 +258,146 @@ def __init__(__self__, *, :param pulumi.Input[str] target_db_snapshot_identifier: The Identifier for the snapshot. :param pulumi.Input[str] vpc_id: Provides the VPC ID associated with the DB snapshot. """ + _SnapshotCopyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allocated_storage=allocated_storage, + availability_zone=availability_zone, + copy_tags=copy_tags, + db_snapshot_arn=db_snapshot_arn, + destination_region=destination_region, + encrypted=encrypted, + engine=engine, + engine_version=engine_version, + iops=iops, + kms_key_id=kms_key_id, + license_model=license_model, + option_group_name=option_group_name, + port=port, + presigned_url=presigned_url, + snapshot_type=snapshot_type, + source_db_snapshot_identifier=source_db_snapshot_identifier, + source_region=source_region, + storage_type=storage_type, + tags=tags, + tags_all=tags_all, + target_custom_availability_zone=target_custom_availability_zone, + target_db_snapshot_identifier=target_db_snapshot_identifier, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allocated_storage: Optional[pulumi.Input[int]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + copy_tags: Optional[pulumi.Input[bool]] = None, + db_snapshot_arn: Optional[pulumi.Input[str]] = None, + destination_region: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + iops: Optional[pulumi.Input[int]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + license_model: Optional[pulumi.Input[str]] = None, + option_group_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + presigned_url: Optional[pulumi.Input[str]] = None, + snapshot_type: Optional[pulumi.Input[str]] = None, + source_db_snapshot_identifier: Optional[pulumi.Input[str]] = None, + source_region: Optional[pulumi.Input[str]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_custom_availability_zone: Optional[pulumi.Input[str]] = None, + target_db_snapshot_identifier: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allocated_storage is None and 'allocatedStorage' in kwargs: + allocated_storage = kwargs['allocatedStorage'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if copy_tags is None and 'copyTags' in kwargs: + copy_tags = kwargs['copyTags'] + if db_snapshot_arn is None and 'dbSnapshotArn' in kwargs: + db_snapshot_arn = kwargs['dbSnapshotArn'] + if destination_region is None and 'destinationRegion' in kwargs: + destination_region = kwargs['destinationRegion'] + if engine_version is None and 'engineVersion' in kwargs: + engine_version = kwargs['engineVersion'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if license_model is None and 'licenseModel' in kwargs: + license_model = kwargs['licenseModel'] + if option_group_name is None and 'optionGroupName' in kwargs: + option_group_name = kwargs['optionGroupName'] + if presigned_url is None and 'presignedUrl' in kwargs: + presigned_url = kwargs['presignedUrl'] + if snapshot_type is None and 'snapshotType' in kwargs: + snapshot_type = kwargs['snapshotType'] + if source_db_snapshot_identifier is None and 'sourceDbSnapshotIdentifier' in kwargs: + source_db_snapshot_identifier = kwargs['sourceDbSnapshotIdentifier'] + if source_region is None and 'sourceRegion' in kwargs: + source_region = kwargs['sourceRegion'] + if storage_type is None and 'storageType' in kwargs: + storage_type = kwargs['storageType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_custom_availability_zone is None and 'targetCustomAvailabilityZone' in kwargs: + target_custom_availability_zone = kwargs['targetCustomAvailabilityZone'] + if target_db_snapshot_identifier is None and 'targetDbSnapshotIdentifier' in kwargs: + target_db_snapshot_identifier = kwargs['targetDbSnapshotIdentifier'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if allocated_storage is not None: - pulumi.set(__self__, "allocated_storage", allocated_storage) + _setter("allocated_storage", allocated_storage) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if copy_tags is not None: - pulumi.set(__self__, "copy_tags", copy_tags) + _setter("copy_tags", copy_tags) if db_snapshot_arn is not None: - pulumi.set(__self__, "db_snapshot_arn", db_snapshot_arn) + _setter("db_snapshot_arn", db_snapshot_arn) if destination_region is not None: - pulumi.set(__self__, "destination_region", destination_region) + _setter("destination_region", destination_region) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if engine is not None: - pulumi.set(__self__, "engine", engine) + _setter("engine", engine) if engine_version is not None: - pulumi.set(__self__, "engine_version", engine_version) + _setter("engine_version", engine_version) if iops is not None: - pulumi.set(__self__, "iops", iops) + _setter("iops", iops) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if license_model is not None: - pulumi.set(__self__, "license_model", license_model) + _setter("license_model", license_model) if option_group_name is not None: - pulumi.set(__self__, "option_group_name", option_group_name) + _setter("option_group_name", option_group_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if presigned_url is not None: - pulumi.set(__self__, "presigned_url", presigned_url) + _setter("presigned_url", presigned_url) if snapshot_type is not None: - pulumi.set(__self__, "snapshot_type", snapshot_type) + _setter("snapshot_type", snapshot_type) if source_db_snapshot_identifier is not None: - pulumi.set(__self__, "source_db_snapshot_identifier", source_db_snapshot_identifier) + _setter("source_db_snapshot_identifier", source_db_snapshot_identifier) if source_region is not None: - pulumi.set(__self__, "source_region", source_region) + _setter("source_region", source_region) if storage_type is not None: - pulumi.set(__self__, "storage_type", storage_type) + _setter("storage_type", storage_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_custom_availability_zone is not None: - pulumi.set(__self__, "target_custom_availability_zone", target_custom_availability_zone) + _setter("target_custom_availability_zone", target_custom_availability_zone) if target_db_snapshot_identifier is not None: - pulumi.set(__self__, "target_db_snapshot_identifier", target_db_snapshot_identifier) + _setter("target_db_snapshot_identifier", target_db_snapshot_identifier) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="allocatedStorage") @@ -650,6 +788,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotCopyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rds/subnet_group.py b/sdk/python/pulumi_aws/rds/subnet_group.py index ecee820b92c..33650a76b16 100644 --- a/sdk/python/pulumi_aws/rds/subnet_group.py +++ b/sdk/python/pulumi_aws/rds/subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SubnetGroupArgs', 'SubnetGroup'] @@ -27,17 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + SubnetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + description=description, + name=name, + name_prefix=name_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("subnet_ids", subnet_ids) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="subnetIds") @@ -124,29 +149,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: Provides the VPC ID of the DB subnet group. """ + _SubnetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + name_prefix=name_prefix, + subnet_ids=subnet_ids, + supported_network_types=supported_network_types, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + supported_network_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if supported_network_types is None and 'supportedNetworkTypes' in kwargs: + supported_network_types = kwargs['supportedNetworkTypes'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if supported_network_types is not None: - pulumi.set(__self__, "supported_network_types", supported_network_types) + _setter("supported_network_types", supported_network_types) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -349,6 +411,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SubnetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/_inputs.py b/sdk/python/pulumi_aws/redshift/_inputs.py index 1f6f54709ec..95ec6218408 100644 --- a/sdk/python/pulumi_aws/redshift/_inputs.py +++ b/sdk/python/pulumi_aws/redshift/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -33,12 +33,33 @@ def __init__(__self__, *, :param pulumi.Input[str] private_ip_address: The private IP address of a node within a cluster :param pulumi.Input[str] public_ip_address: The public IP address of a node within a cluster """ + ClusterClusterNodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + node_role=node_role, + private_ip_address=private_ip_address, + public_ip_address=public_ip_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + node_role: Optional[pulumi.Input[str]] = None, + private_ip_address: Optional[pulumi.Input[str]] = None, + public_ip_address: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if node_role is None and 'nodeRole' in kwargs: + node_role = kwargs['nodeRole'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if public_ip_address is None and 'publicIpAddress' in kwargs: + public_ip_address = kwargs['publicIpAddress'] + if node_role is not None: - pulumi.set(__self__, "node_role", node_role) + _setter("node_role", node_role) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if public_ip_address is not None: - pulumi.set(__self__, "public_ip_address", public_ip_address) + _setter("public_ip_address", public_ip_address) @property @pulumi.getter(name="nodeRole") @@ -93,15 +114,44 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] log_exports: The collection of exported log types. Log types include the connection log, user log and user activity log. Required when `log_destination_type` is `cloudwatch`. Valid log types are `connectionlog`, `userlog`, and `useractivitylog`. :param pulumi.Input[str] s3_key_prefix: The prefix applied to the log file names. """ - pulumi.set(__self__, "enable", enable) + ClusterLoggingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + bucket_name=bucket_name, + log_destination_type=log_destination_type, + log_exports=log_exports, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[pulumi.Input[bool]] = None, + bucket_name: Optional[pulumi.Input[str]] = None, + log_destination_type: Optional[pulumi.Input[str]] = None, + log_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_key_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if log_destination_type is None and 'logDestinationType' in kwargs: + log_destination_type = kwargs['logDestinationType'] + if log_exports is None and 'logExports' in kwargs: + log_exports = kwargs['logExports'] + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + + _setter("enable", enable) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if log_destination_type is not None: - pulumi.set(__self__, "log_destination_type", log_destination_type) + _setter("log_destination_type", log_destination_type) if log_exports is not None: - pulumi.set(__self__, "log_exports", log_exports) + _setter("log_exports", log_exports) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter @@ -176,11 +226,34 @@ def __init__(__self__, *, :param pulumi.Input[str] grant_name: The name of the snapshot copy grant to use when snapshots of an AWS KMS-encrypted cluster are copied to the destination region. :param pulumi.Input[int] retention_period: The number of days to retain automated snapshots in the destination region after they are copied from the source region. Defaults to `7`. """ - pulumi.set(__self__, "destination_region", destination_region) + ClusterSnapshotCopyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_region=destination_region, + grant_name=grant_name, + retention_period=retention_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_region: Optional[pulumi.Input[str]] = None, + grant_name: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_region is None and 'destinationRegion' in kwargs: + destination_region = kwargs['destinationRegion'] + if destination_region is None: + raise TypeError("Missing 'destination_region' argument") + if grant_name is None and 'grantName' in kwargs: + grant_name = kwargs['grantName'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + + _setter("destination_region", destination_region) if grant_name is not None: - pulumi.set(__self__, "grant_name", grant_name) + _setter("grant_name", grant_name) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) @property @pulumi.getter(name="destinationRegion") @@ -230,12 +303,33 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: The connection endpoint ID for connecting an Amazon Redshift cluster through the proxy. :param pulumi.Input[str] vpc_id: The VPC identifier that the endpoint is associated. """ + EndpointAccessVpcEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interfaces=network_interfaces, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointAccessVpcEndpointNetworkInterfaceArgs']]]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="networkInterfaces") @@ -287,14 +381,39 @@ def __init__(__self__, *, :param pulumi.Input[str] private_ip_address: The IPv4 address of the network interface within the subnet. :param pulumi.Input[str] subnet_id: The subnet identifier. """ + EndpointAccessVpcEndpointNetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + private_ip_address: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") @@ -354,8 +473,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Redshift parameter. :param pulumi.Input[str] value: The value of the Redshift parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -393,12 +529,33 @@ def __init__(__self__, *, :param pulumi.Input['ScheduledActionTargetActionResizeClusterArgs'] resize_cluster: An action that runs a `ResizeCluster` API operation. Documented below. :param pulumi.Input['ScheduledActionTargetActionResumeClusterArgs'] resume_cluster: An action that runs a `ResumeCluster` API operation. Documented below. """ + ScheduledActionTargetActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pause_cluster=pause_cluster, + resize_cluster=resize_cluster, + resume_cluster=resume_cluster, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pause_cluster: Optional[pulumi.Input['ScheduledActionTargetActionPauseClusterArgs']] = None, + resize_cluster: Optional[pulumi.Input['ScheduledActionTargetActionResizeClusterArgs']] = None, + resume_cluster: Optional[pulumi.Input['ScheduledActionTargetActionResumeClusterArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pause_cluster is None and 'pauseCluster' in kwargs: + pause_cluster = kwargs['pauseCluster'] + if resize_cluster is None and 'resizeCluster' in kwargs: + resize_cluster = kwargs['resizeCluster'] + if resume_cluster is None and 'resumeCluster' in kwargs: + resume_cluster = kwargs['resumeCluster'] + if pause_cluster is not None: - pulumi.set(__self__, "pause_cluster", pause_cluster) + _setter("pause_cluster", pause_cluster) if resize_cluster is not None: - pulumi.set(__self__, "resize_cluster", resize_cluster) + _setter("resize_cluster", resize_cluster) if resume_cluster is not None: - pulumi.set(__self__, "resume_cluster", resume_cluster) + _setter("resume_cluster", resume_cluster) @property @pulumi.getter(name="pauseCluster") @@ -444,7 +601,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cluster_identifier: The identifier of the cluster to be paused. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + ScheduledActionTargetActionPauseClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + + _setter("cluster_identifier", cluster_identifier) @property @pulumi.getter(name="clusterIdentifier") @@ -474,15 +646,44 @@ def __init__(__self__, *, :param pulumi.Input[str] node_type: The new node type for the nodes you are adding. :param pulumi.Input[int] number_of_nodes: The new number of nodes for the cluster. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + ScheduledActionTargetActionResizeClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + classic=classic, + cluster_type=cluster_type, + node_type=node_type, + number_of_nodes=number_of_nodes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + classic: Optional[pulumi.Input[bool]] = None, + cluster_type: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + number_of_nodes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if cluster_type is None and 'clusterType' in kwargs: + cluster_type = kwargs['clusterType'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if number_of_nodes is None and 'numberOfNodes' in kwargs: + number_of_nodes = kwargs['numberOfNodes'] + + _setter("cluster_identifier", cluster_identifier) if classic is not None: - pulumi.set(__self__, "classic", classic) + _setter("classic", classic) if cluster_type is not None: - pulumi.set(__self__, "cluster_type", cluster_type) + _setter("cluster_type", cluster_type) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if number_of_nodes is not None: - pulumi.set(__self__, "number_of_nodes", number_of_nodes) + _setter("number_of_nodes", number_of_nodes) @property @pulumi.getter(name="clusterIdentifier") @@ -552,7 +753,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cluster_identifier: The identifier of the cluster to be resumed. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + ScheduledActionTargetActionResumeClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + + _setter("cluster_identifier", cluster_identifier) @property @pulumi.getter(name="clusterIdentifier") diff --git a/sdk/python/pulumi_aws/redshift/authentication_profile.py b/sdk/python/pulumi_aws/redshift/authentication_profile.py index 4489ee39df7..65ba4ceaceb 100644 --- a/sdk/python/pulumi_aws/redshift/authentication_profile.py +++ b/sdk/python/pulumi_aws/redshift/authentication_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AuthenticationProfileArgs', 'AuthenticationProfile'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] authentication_profile_content: The content of the authentication profile in JSON format. The maximum length of the JSON string is determined by a quota for your account. :param pulumi.Input[str] authentication_profile_name: The name of the authentication profile. """ - pulumi.set(__self__, "authentication_profile_content", authentication_profile_content) - pulumi.set(__self__, "authentication_profile_name", authentication_profile_name) + AuthenticationProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_profile_content=authentication_profile_content, + authentication_profile_name=authentication_profile_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_profile_content: Optional[pulumi.Input[str]] = None, + authentication_profile_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_profile_content is None and 'authenticationProfileContent' in kwargs: + authentication_profile_content = kwargs['authenticationProfileContent'] + if authentication_profile_content is None: + raise TypeError("Missing 'authentication_profile_content' argument") + if authentication_profile_name is None and 'authenticationProfileName' in kwargs: + authentication_profile_name = kwargs['authenticationProfileName'] + if authentication_profile_name is None: + raise TypeError("Missing 'authentication_profile_name' argument") + + _setter("authentication_profile_content", authentication_profile_content) + _setter("authentication_profile_name", authentication_profile_name) @property @pulumi.getter(name="authenticationProfileContent") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] authentication_profile_content: The content of the authentication profile in JSON format. The maximum length of the JSON string is determined by a quota for your account. :param pulumi.Input[str] authentication_profile_name: The name of the authentication profile. """ + _AuthenticationProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + authentication_profile_content=authentication_profile_content, + authentication_profile_name=authentication_profile_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authentication_profile_content: Optional[pulumi.Input[str]] = None, + authentication_profile_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authentication_profile_content is None and 'authenticationProfileContent' in kwargs: + authentication_profile_content = kwargs['authenticationProfileContent'] + if authentication_profile_name is None and 'authenticationProfileName' in kwargs: + authentication_profile_name = kwargs['authenticationProfileName'] + if authentication_profile_content is not None: - pulumi.set(__self__, "authentication_profile_content", authentication_profile_content) + _setter("authentication_profile_content", authentication_profile_content) if authentication_profile_name is not None: - pulumi.set(__self__, "authentication_profile_name", authentication_profile_name) + _setter("authentication_profile_name", authentication_profile_name) @property @pulumi.getter(name="authenticationProfileContent") @@ -172,6 +210,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AuthenticationProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/cluster.py b/sdk/python/pulumi_aws/redshift/cluster.py index 3d675659a64..f08847055b5 100644 --- a/sdk/python/pulumi_aws/redshift/cluster.py +++ b/sdk/python/pulumi_aws/redshift/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -107,85 +107,244 @@ def __init__(__self__, *, :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[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "node_type", node_type) + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + node_type=node_type, + allow_version_upgrade=allow_version_upgrade, + apply_immediately=apply_immediately, + aqua_configuration_status=aqua_configuration_status, + automated_snapshot_retention_period=automated_snapshot_retention_period, + availability_zone=availability_zone, + availability_zone_relocation_enabled=availability_zone_relocation_enabled, + cluster_parameter_group_name=cluster_parameter_group_name, + cluster_public_key=cluster_public_key, + cluster_revision_number=cluster_revision_number, + cluster_subnet_group_name=cluster_subnet_group_name, + cluster_type=cluster_type, + cluster_version=cluster_version, + database_name=database_name, + default_iam_role_arn=default_iam_role_arn, + elastic_ip=elastic_ip, + encrypted=encrypted, + endpoint=endpoint, + enhanced_vpc_routing=enhanced_vpc_routing, + final_snapshot_identifier=final_snapshot_identifier, + iam_roles=iam_roles, + kms_key_id=kms_key_id, + logging=logging, + maintenance_track_name=maintenance_track_name, + manual_snapshot_retention_period=manual_snapshot_retention_period, + master_password=master_password, + master_username=master_username, + number_of_nodes=number_of_nodes, + owner_account=owner_account, + port=port, + preferred_maintenance_window=preferred_maintenance_window, + publicly_accessible=publicly_accessible, + skip_final_snapshot=skip_final_snapshot, + snapshot_cluster_identifier=snapshot_cluster_identifier, + snapshot_copy=snapshot_copy, + snapshot_identifier=snapshot_identifier, + tags=tags, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + allow_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + aqua_configuration_status: Optional[pulumi.Input[str]] = None, + automated_snapshot_retention_period: Optional[pulumi.Input[int]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + availability_zone_relocation_enabled: Optional[pulumi.Input[bool]] = None, + cluster_parameter_group_name: Optional[pulumi.Input[str]] = None, + cluster_public_key: Optional[pulumi.Input[str]] = None, + cluster_revision_number: Optional[pulumi.Input[str]] = None, + cluster_subnet_group_name: Optional[pulumi.Input[str]] = None, + cluster_type: Optional[pulumi.Input[str]] = None, + cluster_version: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + default_iam_role_arn: Optional[pulumi.Input[str]] = None, + elastic_ip: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + enhanced_vpc_routing: Optional[pulumi.Input[bool]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + iam_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + logging: Optional[pulumi.Input['ClusterLoggingArgs']] = None, + maintenance_track_name: Optional[pulumi.Input[str]] = None, + manual_snapshot_retention_period: Optional[pulumi.Input[int]] = None, + master_password: Optional[pulumi.Input[str]] = None, + master_username: Optional[pulumi.Input[str]] = None, + number_of_nodes: Optional[pulumi.Input[int]] = None, + owner_account: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_cluster_identifier: Optional[pulumi.Input[str]] = None, + snapshot_copy: Optional[pulumi.Input['ClusterSnapshotCopyArgs']] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if node_type is None: + raise TypeError("Missing 'node_type' argument") + if allow_version_upgrade is None and 'allowVersionUpgrade' in kwargs: + allow_version_upgrade = kwargs['allowVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if aqua_configuration_status is None and 'aquaConfigurationStatus' in kwargs: + aqua_configuration_status = kwargs['aquaConfigurationStatus'] + if automated_snapshot_retention_period is None and 'automatedSnapshotRetentionPeriod' in kwargs: + automated_snapshot_retention_period = kwargs['automatedSnapshotRetentionPeriod'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone_relocation_enabled is None and 'availabilityZoneRelocationEnabled' in kwargs: + availability_zone_relocation_enabled = kwargs['availabilityZoneRelocationEnabled'] + if cluster_parameter_group_name is None and 'clusterParameterGroupName' in kwargs: + cluster_parameter_group_name = kwargs['clusterParameterGroupName'] + if cluster_public_key is None and 'clusterPublicKey' in kwargs: + cluster_public_key = kwargs['clusterPublicKey'] + if cluster_revision_number is None and 'clusterRevisionNumber' in kwargs: + cluster_revision_number = kwargs['clusterRevisionNumber'] + if cluster_subnet_group_name is None and 'clusterSubnetGroupName' in kwargs: + cluster_subnet_group_name = kwargs['clusterSubnetGroupName'] + if cluster_type is None and 'clusterType' in kwargs: + cluster_type = kwargs['clusterType'] + if cluster_version is None and 'clusterVersion' in kwargs: + cluster_version = kwargs['clusterVersion'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if default_iam_role_arn is None and 'defaultIamRoleArn' in kwargs: + default_iam_role_arn = kwargs['defaultIamRoleArn'] + if elastic_ip is None and 'elasticIp' in kwargs: + elastic_ip = kwargs['elasticIp'] + if enhanced_vpc_routing is None and 'enhancedVpcRouting' in kwargs: + enhanced_vpc_routing = kwargs['enhancedVpcRouting'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if iam_roles is None and 'iamRoles' in kwargs: + iam_roles = kwargs['iamRoles'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if maintenance_track_name is None and 'maintenanceTrackName' in kwargs: + maintenance_track_name = kwargs['maintenanceTrackName'] + if manual_snapshot_retention_period is None and 'manualSnapshotRetentionPeriod' in kwargs: + manual_snapshot_retention_period = kwargs['manualSnapshotRetentionPeriod'] + if master_password is None and 'masterPassword' in kwargs: + master_password = kwargs['masterPassword'] + if master_username is None and 'masterUsername' in kwargs: + master_username = kwargs['masterUsername'] + if number_of_nodes is None and 'numberOfNodes' in kwargs: + number_of_nodes = kwargs['numberOfNodes'] + if owner_account is None and 'ownerAccount' in kwargs: + owner_account = kwargs['ownerAccount'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_cluster_identifier is None and 'snapshotClusterIdentifier' in kwargs: + snapshot_cluster_identifier = kwargs['snapshotClusterIdentifier'] + if snapshot_copy is None and 'snapshotCopy' in kwargs: + snapshot_copy = kwargs['snapshotCopy'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("cluster_identifier", cluster_identifier) + _setter("node_type", node_type) if allow_version_upgrade is not None: - pulumi.set(__self__, "allow_version_upgrade", allow_version_upgrade) + _setter("allow_version_upgrade", allow_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if aqua_configuration_status is not None: warnings.warn("""This parameter is no longer supported by the AWS API. It will be removed in the next major version of the provider.""", DeprecationWarning) pulumi.log.warn("""aqua_configuration_status is deprecated: This parameter is no longer supported by the AWS API. It will be removed in the next major version of the provider.""") if aqua_configuration_status is not None: - pulumi.set(__self__, "aqua_configuration_status", aqua_configuration_status) + _setter("aqua_configuration_status", aqua_configuration_status) if automated_snapshot_retention_period is not None: - pulumi.set(__self__, "automated_snapshot_retention_period", automated_snapshot_retention_period) + _setter("automated_snapshot_retention_period", automated_snapshot_retention_period) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if availability_zone_relocation_enabled is not None: - pulumi.set(__self__, "availability_zone_relocation_enabled", availability_zone_relocation_enabled) + _setter("availability_zone_relocation_enabled", availability_zone_relocation_enabled) if cluster_parameter_group_name is not None: - pulumi.set(__self__, "cluster_parameter_group_name", cluster_parameter_group_name) + _setter("cluster_parameter_group_name", cluster_parameter_group_name) if cluster_public_key is not None: - pulumi.set(__self__, "cluster_public_key", cluster_public_key) + _setter("cluster_public_key", cluster_public_key) if cluster_revision_number is not None: - pulumi.set(__self__, "cluster_revision_number", cluster_revision_number) + _setter("cluster_revision_number", cluster_revision_number) if cluster_subnet_group_name is not None: - pulumi.set(__self__, "cluster_subnet_group_name", cluster_subnet_group_name) + _setter("cluster_subnet_group_name", cluster_subnet_group_name) if cluster_type is not None: - pulumi.set(__self__, "cluster_type", cluster_type) + _setter("cluster_type", cluster_type) if cluster_version is not None: - pulumi.set(__self__, "cluster_version", cluster_version) + _setter("cluster_version", cluster_version) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if default_iam_role_arn is not None: - pulumi.set(__self__, "default_iam_role_arn", default_iam_role_arn) + _setter("default_iam_role_arn", default_iam_role_arn) if elastic_ip is not None: - pulumi.set(__self__, "elastic_ip", elastic_ip) + _setter("elastic_ip", elastic_ip) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if enhanced_vpc_routing is not None: - pulumi.set(__self__, "enhanced_vpc_routing", enhanced_vpc_routing) + _setter("enhanced_vpc_routing", enhanced_vpc_routing) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if iam_roles is not None: - pulumi.set(__self__, "iam_roles", iam_roles) + _setter("iam_roles", iam_roles) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) if maintenance_track_name is not None: - pulumi.set(__self__, "maintenance_track_name", maintenance_track_name) + _setter("maintenance_track_name", maintenance_track_name) if manual_snapshot_retention_period is not None: - pulumi.set(__self__, "manual_snapshot_retention_period", manual_snapshot_retention_period) + _setter("manual_snapshot_retention_period", manual_snapshot_retention_period) if master_password is not None: - pulumi.set(__self__, "master_password", master_password) + _setter("master_password", master_password) if master_username is not None: - pulumi.set(__self__, "master_username", master_username) + _setter("master_username", master_username) if number_of_nodes is not None: - pulumi.set(__self__, "number_of_nodes", number_of_nodes) + _setter("number_of_nodes", number_of_nodes) if owner_account is not None: - pulumi.set(__self__, "owner_account", owner_account) + _setter("owner_account", owner_account) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_cluster_identifier is not None: - pulumi.set(__self__, "snapshot_cluster_identifier", snapshot_cluster_identifier) + _setter("snapshot_cluster_identifier", snapshot_cluster_identifier) if snapshot_copy is not None: - pulumi.set(__self__, "snapshot_copy", snapshot_copy) + _setter("snapshot_copy", snapshot_copy) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="clusterIdentifier") @@ -773,100 +932,273 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster. """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_version_upgrade=allow_version_upgrade, + apply_immediately=apply_immediately, + aqua_configuration_status=aqua_configuration_status, + arn=arn, + automated_snapshot_retention_period=automated_snapshot_retention_period, + availability_zone=availability_zone, + availability_zone_relocation_enabled=availability_zone_relocation_enabled, + cluster_identifier=cluster_identifier, + cluster_namespace_arn=cluster_namespace_arn, + cluster_nodes=cluster_nodes, + cluster_parameter_group_name=cluster_parameter_group_name, + cluster_public_key=cluster_public_key, + cluster_revision_number=cluster_revision_number, + cluster_subnet_group_name=cluster_subnet_group_name, + cluster_type=cluster_type, + cluster_version=cluster_version, + database_name=database_name, + default_iam_role_arn=default_iam_role_arn, + dns_name=dns_name, + elastic_ip=elastic_ip, + encrypted=encrypted, + endpoint=endpoint, + enhanced_vpc_routing=enhanced_vpc_routing, + final_snapshot_identifier=final_snapshot_identifier, + iam_roles=iam_roles, + kms_key_id=kms_key_id, + logging=logging, + maintenance_track_name=maintenance_track_name, + manual_snapshot_retention_period=manual_snapshot_retention_period, + master_password=master_password, + master_username=master_username, + node_type=node_type, + number_of_nodes=number_of_nodes, + owner_account=owner_account, + port=port, + preferred_maintenance_window=preferred_maintenance_window, + publicly_accessible=publicly_accessible, + skip_final_snapshot=skip_final_snapshot, + snapshot_cluster_identifier=snapshot_cluster_identifier, + snapshot_copy=snapshot_copy, + snapshot_identifier=snapshot_identifier, + tags=tags, + tags_all=tags_all, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_version_upgrade: Optional[pulumi.Input[bool]] = None, + apply_immediately: Optional[pulumi.Input[bool]] = None, + aqua_configuration_status: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + automated_snapshot_retention_period: Optional[pulumi.Input[int]] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + availability_zone_relocation_enabled: Optional[pulumi.Input[bool]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + cluster_namespace_arn: Optional[pulumi.Input[str]] = None, + cluster_nodes: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterClusterNodeArgs']]]] = None, + cluster_parameter_group_name: Optional[pulumi.Input[str]] = None, + cluster_public_key: Optional[pulumi.Input[str]] = None, + cluster_revision_number: Optional[pulumi.Input[str]] = None, + cluster_subnet_group_name: Optional[pulumi.Input[str]] = None, + cluster_type: Optional[pulumi.Input[str]] = None, + cluster_version: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + default_iam_role_arn: Optional[pulumi.Input[str]] = None, + dns_name: Optional[pulumi.Input[str]] = None, + elastic_ip: Optional[pulumi.Input[str]] = None, + encrypted: Optional[pulumi.Input[bool]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + enhanced_vpc_routing: Optional[pulumi.Input[bool]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, + iam_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + logging: Optional[pulumi.Input['ClusterLoggingArgs']] = None, + maintenance_track_name: Optional[pulumi.Input[str]] = None, + manual_snapshot_retention_period: Optional[pulumi.Input[int]] = None, + master_password: Optional[pulumi.Input[str]] = None, + master_username: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + number_of_nodes: Optional[pulumi.Input[int]] = None, + owner_account: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + skip_final_snapshot: Optional[pulumi.Input[bool]] = None, + snapshot_cluster_identifier: Optional[pulumi.Input[str]] = None, + snapshot_copy: Optional[pulumi.Input['ClusterSnapshotCopyArgs']] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_version_upgrade is None and 'allowVersionUpgrade' in kwargs: + allow_version_upgrade = kwargs['allowVersionUpgrade'] + if apply_immediately is None and 'applyImmediately' in kwargs: + apply_immediately = kwargs['applyImmediately'] + if aqua_configuration_status is None and 'aquaConfigurationStatus' in kwargs: + aqua_configuration_status = kwargs['aquaConfigurationStatus'] + if automated_snapshot_retention_period is None and 'automatedSnapshotRetentionPeriod' in kwargs: + automated_snapshot_retention_period = kwargs['automatedSnapshotRetentionPeriod'] + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone_relocation_enabled is None and 'availabilityZoneRelocationEnabled' in kwargs: + availability_zone_relocation_enabled = kwargs['availabilityZoneRelocationEnabled'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_namespace_arn is None and 'clusterNamespaceArn' in kwargs: + cluster_namespace_arn = kwargs['clusterNamespaceArn'] + if cluster_nodes is None and 'clusterNodes' in kwargs: + cluster_nodes = kwargs['clusterNodes'] + if cluster_parameter_group_name is None and 'clusterParameterGroupName' in kwargs: + cluster_parameter_group_name = kwargs['clusterParameterGroupName'] + if cluster_public_key is None and 'clusterPublicKey' in kwargs: + cluster_public_key = kwargs['clusterPublicKey'] + if cluster_revision_number is None and 'clusterRevisionNumber' in kwargs: + cluster_revision_number = kwargs['clusterRevisionNumber'] + if cluster_subnet_group_name is None and 'clusterSubnetGroupName' in kwargs: + cluster_subnet_group_name = kwargs['clusterSubnetGroupName'] + if cluster_type is None and 'clusterType' in kwargs: + cluster_type = kwargs['clusterType'] + if cluster_version is None and 'clusterVersion' in kwargs: + cluster_version = kwargs['clusterVersion'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if default_iam_role_arn is None and 'defaultIamRoleArn' in kwargs: + default_iam_role_arn = kwargs['defaultIamRoleArn'] + if dns_name is None and 'dnsName' in kwargs: + dns_name = kwargs['dnsName'] + if elastic_ip is None and 'elasticIp' in kwargs: + elastic_ip = kwargs['elasticIp'] + if enhanced_vpc_routing is None and 'enhancedVpcRouting' in kwargs: + enhanced_vpc_routing = kwargs['enhancedVpcRouting'] + if final_snapshot_identifier is None and 'finalSnapshotIdentifier' in kwargs: + final_snapshot_identifier = kwargs['finalSnapshotIdentifier'] + if iam_roles is None and 'iamRoles' in kwargs: + iam_roles = kwargs['iamRoles'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if maintenance_track_name is None and 'maintenanceTrackName' in kwargs: + maintenance_track_name = kwargs['maintenanceTrackName'] + if manual_snapshot_retention_period is None and 'manualSnapshotRetentionPeriod' in kwargs: + manual_snapshot_retention_period = kwargs['manualSnapshotRetentionPeriod'] + if master_password is None and 'masterPassword' in kwargs: + master_password = kwargs['masterPassword'] + if master_username is None and 'masterUsername' in kwargs: + master_username = kwargs['masterUsername'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if number_of_nodes is None and 'numberOfNodes' in kwargs: + number_of_nodes = kwargs['numberOfNodes'] + if owner_account is None and 'ownerAccount' in kwargs: + owner_account = kwargs['ownerAccount'] + if preferred_maintenance_window is None and 'preferredMaintenanceWindow' in kwargs: + preferred_maintenance_window = kwargs['preferredMaintenanceWindow'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if skip_final_snapshot is None and 'skipFinalSnapshot' in kwargs: + skip_final_snapshot = kwargs['skipFinalSnapshot'] + if snapshot_cluster_identifier is None and 'snapshotClusterIdentifier' in kwargs: + snapshot_cluster_identifier = kwargs['snapshotClusterIdentifier'] + if snapshot_copy is None and 'snapshotCopy' in kwargs: + snapshot_copy = kwargs['snapshotCopy'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if allow_version_upgrade is not None: - pulumi.set(__self__, "allow_version_upgrade", allow_version_upgrade) + _setter("allow_version_upgrade", allow_version_upgrade) if apply_immediately is not None: - pulumi.set(__self__, "apply_immediately", apply_immediately) + _setter("apply_immediately", apply_immediately) if aqua_configuration_status is not None: warnings.warn("""This parameter is no longer supported by the AWS API. It will be removed in the next major version of the provider.""", DeprecationWarning) pulumi.log.warn("""aqua_configuration_status is deprecated: This parameter is no longer supported by the AWS API. It will be removed in the next major version of the provider.""") if aqua_configuration_status is not None: - pulumi.set(__self__, "aqua_configuration_status", aqua_configuration_status) + _setter("aqua_configuration_status", aqua_configuration_status) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if automated_snapshot_retention_period is not None: - pulumi.set(__self__, "automated_snapshot_retention_period", automated_snapshot_retention_period) + _setter("automated_snapshot_retention_period", automated_snapshot_retention_period) if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if availability_zone_relocation_enabled is not None: - pulumi.set(__self__, "availability_zone_relocation_enabled", availability_zone_relocation_enabled) + _setter("availability_zone_relocation_enabled", availability_zone_relocation_enabled) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if cluster_namespace_arn is not None: - pulumi.set(__self__, "cluster_namespace_arn", cluster_namespace_arn) + _setter("cluster_namespace_arn", cluster_namespace_arn) if cluster_nodes is not None: - pulumi.set(__self__, "cluster_nodes", cluster_nodes) + _setter("cluster_nodes", cluster_nodes) if cluster_parameter_group_name is not None: - pulumi.set(__self__, "cluster_parameter_group_name", cluster_parameter_group_name) + _setter("cluster_parameter_group_name", cluster_parameter_group_name) if cluster_public_key is not None: - pulumi.set(__self__, "cluster_public_key", cluster_public_key) + _setter("cluster_public_key", cluster_public_key) if cluster_revision_number is not None: - pulumi.set(__self__, "cluster_revision_number", cluster_revision_number) + _setter("cluster_revision_number", cluster_revision_number) if cluster_subnet_group_name is not None: - pulumi.set(__self__, "cluster_subnet_group_name", cluster_subnet_group_name) + _setter("cluster_subnet_group_name", cluster_subnet_group_name) if cluster_type is not None: - pulumi.set(__self__, "cluster_type", cluster_type) + _setter("cluster_type", cluster_type) if cluster_version is not None: - pulumi.set(__self__, "cluster_version", cluster_version) + _setter("cluster_version", cluster_version) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if default_iam_role_arn is not None: - pulumi.set(__self__, "default_iam_role_arn", default_iam_role_arn) + _setter("default_iam_role_arn", default_iam_role_arn) if dns_name is not None: - pulumi.set(__self__, "dns_name", dns_name) + _setter("dns_name", dns_name) if elastic_ip is not None: - pulumi.set(__self__, "elastic_ip", elastic_ip) + _setter("elastic_ip", elastic_ip) if encrypted is not None: - pulumi.set(__self__, "encrypted", encrypted) + _setter("encrypted", encrypted) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if enhanced_vpc_routing is not None: - pulumi.set(__self__, "enhanced_vpc_routing", enhanced_vpc_routing) + _setter("enhanced_vpc_routing", enhanced_vpc_routing) if final_snapshot_identifier is not None: - pulumi.set(__self__, "final_snapshot_identifier", final_snapshot_identifier) + _setter("final_snapshot_identifier", final_snapshot_identifier) if iam_roles is not None: - pulumi.set(__self__, "iam_roles", iam_roles) + _setter("iam_roles", iam_roles) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if logging is not None: - pulumi.set(__self__, "logging", logging) + _setter("logging", logging) if maintenance_track_name is not None: - pulumi.set(__self__, "maintenance_track_name", maintenance_track_name) + _setter("maintenance_track_name", maintenance_track_name) if manual_snapshot_retention_period is not None: - pulumi.set(__self__, "manual_snapshot_retention_period", manual_snapshot_retention_period) + _setter("manual_snapshot_retention_period", manual_snapshot_retention_period) if master_password is not None: - pulumi.set(__self__, "master_password", master_password) + _setter("master_password", master_password) if master_username is not None: - pulumi.set(__self__, "master_username", master_username) + _setter("master_username", master_username) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if number_of_nodes is not None: - pulumi.set(__self__, "number_of_nodes", number_of_nodes) + _setter("number_of_nodes", number_of_nodes) if owner_account is not None: - pulumi.set(__self__, "owner_account", owner_account) + _setter("owner_account", owner_account) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if preferred_maintenance_window is not None: - pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + _setter("preferred_maintenance_window", preferred_maintenance_window) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if skip_final_snapshot is not None: - pulumi.set(__self__, "skip_final_snapshot", skip_final_snapshot) + _setter("skip_final_snapshot", skip_final_snapshot) if snapshot_cluster_identifier is not None: - pulumi.set(__self__, "snapshot_cluster_identifier", snapshot_cluster_identifier) + _setter("snapshot_cluster_identifier", snapshot_cluster_identifier) if snapshot_copy is not None: - pulumi.set(__self__, "snapshot_copy", snapshot_copy) + _setter("snapshot_copy", snapshot_copy) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="allowVersionUpgrade") @@ -1582,6 +1914,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1637,9 +1973,6 @@ def _internal_init(__self__, __props__.__dict__["allow_version_upgrade"] = allow_version_upgrade __props__.__dict__["apply_immediately"] = apply_immediately - if aqua_configuration_status is not None and not opts.urn: - warnings.warn("""This parameter is no longer supported by the AWS API. It will be removed in the next major version of the provider.""", DeprecationWarning) - pulumi.log.warn("""aqua_configuration_status is deprecated: This parameter is no longer supported by the AWS API. It will be removed in the next major version of the provider.""") __props__.__dict__["aqua_configuration_status"] = aqua_configuration_status __props__.__dict__["automated_snapshot_retention_period"] = automated_snapshot_retention_period __props__.__dict__["availability_zone"] = availability_zone @@ -1662,6 +1995,7 @@ def _internal_init(__self__, __props__.__dict__["final_snapshot_identifier"] = final_snapshot_identifier __props__.__dict__["iam_roles"] = iam_roles __props__.__dict__["kms_key_id"] = kms_key_id + logging = _utilities.configure(logging, ClusterLoggingArgs, True) __props__.__dict__["logging"] = logging __props__.__dict__["maintenance_track_name"] = maintenance_track_name __props__.__dict__["manual_snapshot_retention_period"] = manual_snapshot_retention_period @@ -1677,6 +2011,7 @@ def _internal_init(__self__, __props__.__dict__["publicly_accessible"] = publicly_accessible __props__.__dict__["skip_final_snapshot"] = skip_final_snapshot __props__.__dict__["snapshot_cluster_identifier"] = snapshot_cluster_identifier + snapshot_copy = _utilities.configure(snapshot_copy, ClusterSnapshotCopyArgs, True) __props__.__dict__["snapshot_copy"] = snapshot_copy __props__.__dict__["snapshot_identifier"] = snapshot_identifier __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/redshift/cluster_iam_roles.py b/sdk/python/pulumi_aws/redshift/cluster_iam_roles.py index 59905287ea2..c500911f5e0 100644 --- a/sdk/python/pulumi_aws/redshift/cluster_iam_roles.py +++ b/sdk/python/pulumi_aws/redshift/cluster_iam_roles.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterIamRolesArgs', 'ClusterIamRoles'] @@ -23,11 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[str] default_iam_role_arn: The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster when the cluster was created. :param pulumi.Input[Sequence[pulumi.Input[str]]] iam_role_arns: A list of IAM Role ARNs to associate with the cluster. A Maximum of 10 can be associated to the cluster at any time. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + ClusterIamRolesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + default_iam_role_arn=default_iam_role_arn, + iam_role_arns=iam_role_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + default_iam_role_arn: Optional[pulumi.Input[str]] = None, + iam_role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if default_iam_role_arn is None and 'defaultIamRoleArn' in kwargs: + default_iam_role_arn = kwargs['defaultIamRoleArn'] + if iam_role_arns is None and 'iamRoleArns' in kwargs: + iam_role_arns = kwargs['iamRoleArns'] + + _setter("cluster_identifier", cluster_identifier) if default_iam_role_arn is not None: - pulumi.set(__self__, "default_iam_role_arn", default_iam_role_arn) + _setter("default_iam_role_arn", default_iam_role_arn) if iam_role_arns is not None: - pulumi.set(__self__, "iam_role_arns", iam_role_arns) + _setter("iam_role_arns", iam_role_arns) @property @pulumi.getter(name="clusterIdentifier") @@ -78,12 +101,33 @@ def __init__(__self__, *, :param pulumi.Input[str] default_iam_role_arn: The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster when the cluster was created. :param pulumi.Input[Sequence[pulumi.Input[str]]] iam_role_arns: A list of IAM Role ARNs to associate with the cluster. A Maximum of 10 can be associated to the cluster at any time. """ + _ClusterIamRolesState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + default_iam_role_arn=default_iam_role_arn, + iam_role_arns=iam_role_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + default_iam_role_arn: Optional[pulumi.Input[str]] = None, + iam_role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if default_iam_role_arn is None and 'defaultIamRoleArn' in kwargs: + default_iam_role_arn = kwargs['defaultIamRoleArn'] + if iam_role_arns is None and 'iamRoleArns' in kwargs: + iam_role_arns = kwargs['iamRoleArns'] + if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if default_iam_role_arn is not None: - pulumi.set(__self__, "default_iam_role_arn", default_iam_role_arn) + _setter("default_iam_role_arn", default_iam_role_arn) if iam_role_arns is not None: - pulumi.set(__self__, "iam_role_arns", iam_role_arns) + _setter("iam_role_arns", iam_role_arns) @property @pulumi.getter(name="clusterIdentifier") @@ -201,6 +245,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterIamRolesArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/cluster_snapshot.py b/sdk/python/pulumi_aws/redshift/cluster_snapshot.py index bb3f8ae825a..9125daf2230 100644 --- a/sdk/python/pulumi_aws/redshift/cluster_snapshot.py +++ b/sdk/python/pulumi_aws/redshift/cluster_snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ClusterSnapshotArgs', 'ClusterSnapshot'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[int] manual_snapshot_retention_period: The number of days that a manual snapshot is retained. If the value is `-1`, the manual snapshot is retained indefinitely. Valid values are -1 and between `1` and `3653`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + ClusterSnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + snapshot_identifier=snapshot_identifier, + manual_snapshot_retention_period=manual_snapshot_retention_period, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + manual_snapshot_retention_period: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if snapshot_identifier is None: + raise TypeError("Missing 'snapshot_identifier' argument") + if manual_snapshot_retention_period is None and 'manualSnapshotRetentionPeriod' in kwargs: + manual_snapshot_retention_period = kwargs['manualSnapshotRetentionPeriod'] + + _setter("cluster_identifier", cluster_identifier) + _setter("snapshot_identifier", snapshot_identifier) if manual_snapshot_retention_period is not None: - pulumi.set(__self__, "manual_snapshot_retention_period", manual_snapshot_retention_period) + _setter("manual_snapshot_retention_period", manual_snapshot_retention_period) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="clusterIdentifier") @@ -103,25 +130,62 @@ def __init__(__self__, *, :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. """ + _ClusterSnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cluster_identifier=cluster_identifier, + kms_key_id=kms_key_id, + manual_snapshot_retention_period=manual_snapshot_retention_period, + owner_account=owner_account, + snapshot_identifier=snapshot_identifier, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + manual_snapshot_retention_period: Optional[pulumi.Input[int]] = None, + owner_account: Optional[pulumi.Input[str]] = None, + snapshot_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if manual_snapshot_retention_period is None and 'manualSnapshotRetentionPeriod' in kwargs: + manual_snapshot_retention_period = kwargs['manualSnapshotRetentionPeriod'] + if owner_account is None and 'ownerAccount' in kwargs: + owner_account = kwargs['ownerAccount'] + if snapshot_identifier is None and 'snapshotIdentifier' in kwargs: + snapshot_identifier = kwargs['snapshotIdentifier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if manual_snapshot_retention_period is not None: - pulumi.set(__self__, "manual_snapshot_retention_period", manual_snapshot_retention_period) + _setter("manual_snapshot_retention_period", manual_snapshot_retention_period) if owner_account is not None: - pulumi.set(__self__, "owner_account", owner_account) + _setter("owner_account", owner_account) if snapshot_identifier is not None: - pulumi.set(__self__, "snapshot_identifier", snapshot_identifier) + _setter("snapshot_identifier", snapshot_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -278,6 +342,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterSnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/endpoint_access.py b/sdk/python/pulumi_aws/redshift/endpoint_access.py index 66d417000eb..4e0b591e994 100644 --- a/sdk/python/pulumi_aws/redshift/endpoint_access.py +++ b/sdk/python/pulumi_aws/redshift/endpoint_access.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,48 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_owner: The Amazon Web Services account ID of the owner of the cluster. This is only required if the cluster is in another Amazon Web Services account. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: The security group that defines the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "endpoint_name", endpoint_name) - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + EndpointAccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + endpoint_name=endpoint_name, + subnet_group_name=subnet_group_name, + resource_owner=resource_owner, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + endpoint_name: Optional[pulumi.Input[str]] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if endpoint_name is None and 'endpointName' in kwargs: + endpoint_name = kwargs['endpointName'] + if endpoint_name is None: + raise TypeError("Missing 'endpoint_name' argument") + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if subnet_group_name is None: + raise TypeError("Missing 'subnet_group_name' argument") + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("cluster_identifier", cluster_identifier) + _setter("endpoint_name", endpoint_name) + _setter("subnet_group_name", subnet_group_name) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="clusterIdentifier") @@ -120,22 +155,59 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['EndpointAccessVpcEndpointArgs']]] vpc_endpoints: The connection endpoint for connecting to an Amazon Redshift cluster through the proxy. See details below. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: The security group that defines the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint. """ + _EndpointAccessState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + cluster_identifier=cluster_identifier, + endpoint_name=endpoint_name, + port=port, + resource_owner=resource_owner, + subnet_group_name=subnet_group_name, + vpc_endpoints=vpc_endpoints, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + endpoint_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + subnet_group_name: Optional[pulumi.Input[str]] = None, + vpc_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointAccessVpcEndpointArgs']]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if endpoint_name is None and 'endpointName' in kwargs: + endpoint_name = kwargs['endpointName'] + if resource_owner is None and 'resourceOwner' in kwargs: + resource_owner = kwargs['resourceOwner'] + if subnet_group_name is None and 'subnetGroupName' in kwargs: + subnet_group_name = kwargs['subnetGroupName'] + if vpc_endpoints is None and 'vpcEndpoints' in kwargs: + vpc_endpoints = kwargs['vpcEndpoints'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if endpoint_name is not None: - pulumi.set(__self__, "endpoint_name", endpoint_name) + _setter("endpoint_name", endpoint_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if resource_owner is not None: - pulumi.set(__self__, "resource_owner", resource_owner) + _setter("resource_owner", resource_owner) if subnet_group_name is not None: - pulumi.set(__self__, "subnet_group_name", subnet_group_name) + _setter("subnet_group_name", subnet_group_name) if vpc_endpoints is not None: - pulumi.set(__self__, "vpc_endpoints", vpc_endpoints) + _setter("vpc_endpoints", vpc_endpoints) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter @@ -315,6 +387,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EndpointAccessArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/endpoint_authorization.py b/sdk/python/pulumi_aws/redshift/endpoint_authorization.py index 8796aeb35f0..6cc9f59cdc8 100644 --- a/sdk/python/pulumi_aws/redshift/endpoint_authorization.py +++ b/sdk/python/pulumi_aws/redshift/endpoint_authorization.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EndpointAuthorizationArgs', 'EndpointAuthorization'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[bool] force_delete: Indicates whether to force the revoke action. If true, the Redshift-managed VPC endpoints associated with the endpoint authorization are also deleted. Default value is `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_ids: The virtual private cloud (VPC) identifiers to grant access to. If none are specified all VPCs in shared account are allowed. """ - pulumi.set(__self__, "account", account) - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + EndpointAuthorizationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account=account, + cluster_identifier=cluster_identifier, + force_delete=force_delete, + vpc_ids=vpc_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + vpc_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account is None: + raise TypeError("Missing 'account' argument") + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if vpc_ids is None and 'vpcIds' in kwargs: + vpc_ids = kwargs['vpcIds'] + + _setter("account", account) + _setter("cluster_identifier", cluster_identifier) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if vpc_ids is not None: - pulumi.set(__self__, "vpc_ids", vpc_ids) + _setter("vpc_ids", vpc_ids) @property @pulumi.getter @@ -103,22 +130,57 @@ def __init__(__self__, *, :param pulumi.Input[str] grantor: The Amazon Web Services account ID of the cluster owner. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_ids: The virtual private cloud (VPC) identifiers to grant access to. If none are specified all VPCs in shared account are allowed. """ + _EndpointAuthorizationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account=account, + allowed_all_vpcs=allowed_all_vpcs, + cluster_identifier=cluster_identifier, + endpoint_count=endpoint_count, + force_delete=force_delete, + grantee=grantee, + grantor=grantor, + vpc_ids=vpc_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account: Optional[pulumi.Input[str]] = None, + allowed_all_vpcs: Optional[pulumi.Input[bool]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + endpoint_count: Optional[pulumi.Input[int]] = None, + force_delete: Optional[pulumi.Input[bool]] = None, + grantee: Optional[pulumi.Input[str]] = None, + grantor: Optional[pulumi.Input[str]] = None, + vpc_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_all_vpcs is None and 'allowedAllVpcs' in kwargs: + allowed_all_vpcs = kwargs['allowedAllVpcs'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if endpoint_count is None and 'endpointCount' in kwargs: + endpoint_count = kwargs['endpointCount'] + if force_delete is None and 'forceDelete' in kwargs: + force_delete = kwargs['forceDelete'] + if vpc_ids is None and 'vpcIds' in kwargs: + vpc_ids = kwargs['vpcIds'] + if account is not None: - pulumi.set(__self__, "account", account) + _setter("account", account) if allowed_all_vpcs is not None: - pulumi.set(__self__, "allowed_all_vpcs", allowed_all_vpcs) + _setter("allowed_all_vpcs", allowed_all_vpcs) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if endpoint_count is not None: - pulumi.set(__self__, "endpoint_count", endpoint_count) + _setter("endpoint_count", endpoint_count) if force_delete is not None: - pulumi.set(__self__, "force_delete", force_delete) + _setter("force_delete", force_delete) if grantee is not None: - pulumi.set(__self__, "grantee", grantee) + _setter("grantee", grantee) if grantor is not None: - pulumi.set(__self__, "grantor", grantor) + _setter("grantor", grantor) if vpc_ids is not None: - pulumi.set(__self__, "vpc_ids", vpc_ids) + _setter("vpc_ids", vpc_ids) @property @pulumi.getter @@ -294,6 +356,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EndpointAuthorizationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/event_subscription.py b/sdk/python/pulumi_aws/redshift/event_subscription.py index eb82a9af65b..01277b2efb1 100644 --- a/sdk/python/pulumi_aws/redshift/event_subscription.py +++ b/sdk/python/pulumi_aws/redshift/event_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EventSubscriptionArgs', 'EventSubscription'] @@ -33,21 +33,56 @@ def __init__(__self__, *, :param pulumi.Input[str] source_type: The type of source that will be generating the events. Valid options are `cluster`, `cluster-parameter-group`, `cluster-security-group`, `cluster-snapshot`, or `scheduled-action`. If not set, all sources will be subscribed to. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + EventSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sns_topic_arn=sns_topic_arn, + enabled=enabled, + event_categories=event_categories, + name=name, + severity=severity, + source_ids=source_ids, + source_type=source_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sns_topic_arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + severity: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if sns_topic_arn is None: + raise TypeError("Missing 'sns_topic_arn' argument") + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + + _setter("sns_topic_arn", sns_topic_arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_categories is not None: - pulumi.set(__self__, "event_categories", event_categories) + _setter("event_categories", event_categories) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if severity is not None: - pulumi.set(__self__, "severity", severity) + _setter("severity", severity) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="snsTopicArn") @@ -175,33 +210,78 @@ def __init__(__self__, *, :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. """ + _EventSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + customer_aws_id=customer_aws_id, + enabled=enabled, + event_categories=event_categories, + name=name, + severity=severity, + sns_topic_arn=sns_topic_arn, + source_ids=source_ids, + source_type=source_type, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + customer_aws_id: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + event_categories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + severity: Optional[pulumi.Input[str]] = None, + sns_topic_arn: Optional[pulumi.Input[str]] = None, + source_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_aws_id is None and 'customerAwsId' in kwargs: + customer_aws_id = kwargs['customerAwsId'] + if event_categories is None and 'eventCategories' in kwargs: + event_categories = kwargs['eventCategories'] + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if source_ids is None and 'sourceIds' in kwargs: + source_ids = kwargs['sourceIds'] + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if customer_aws_id is not None: - pulumi.set(__self__, "customer_aws_id", customer_aws_id) + _setter("customer_aws_id", customer_aws_id) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if event_categories is not None: - pulumi.set(__self__, "event_categories", event_categories) + _setter("event_categories", event_categories) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if severity is not None: - pulumi.set(__self__, "severity", severity) + _setter("severity", severity) if sns_topic_arn is not None: - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + _setter("sns_topic_arn", sns_topic_arn) if source_ids is not None: - pulumi.set(__self__, "source_ids", source_ids) + _setter("source_ids", source_ids) if source_type is not None: - pulumi.set(__self__, "source_type", source_type) + _setter("source_type", source_type) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -465,6 +545,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/get_cluster.py b/sdk/python/pulumi_aws/redshift/get_cluster.py index 7310a74ac8d..30c3d7d1f2c 100644 --- a/sdk/python/pulumi_aws/redshift/get_cluster.py +++ b/sdk/python/pulumi_aws/redshift/get_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/redshift/get_cluster_credentials.py b/sdk/python/pulumi_aws/redshift/get_cluster_credentials.py index dc93a3f55c7..1ef33c7c772 100644 --- a/sdk/python/pulumi_aws/redshift/get_cluster_credentials.py +++ b/sdk/python/pulumi_aws/redshift/get_cluster_credentials.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/redshift/get_orderable_cluster.py b/sdk/python/pulumi_aws/redshift/get_orderable_cluster.py index a5c16edf671..8bcb28491a9 100644 --- a/sdk/python/pulumi_aws/redshift/get_orderable_cluster.py +++ b/sdk/python/pulumi_aws/redshift/get_orderable_cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/redshift/get_service_account.py b/sdk/python/pulumi_aws/redshift/get_service_account.py index 0f75ff32904..a2486aa1f5e 100644 --- a/sdk/python/pulumi_aws/redshift/get_service_account.py +++ b/sdk/python/pulumi_aws/redshift/get_service_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/redshift/get_subnet_group.py b/sdk/python/pulumi_aws/redshift/get_subnet_group.py index 424ba3f072f..b4b09884973 100644 --- a/sdk/python/pulumi_aws/redshift/get_subnet_group.py +++ b/sdk/python/pulumi_aws/redshift/get_subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/redshift/hsm_client_certificate.py b/sdk/python/pulumi_aws/redshift/hsm_client_certificate.py index a495f3a86d5..db3fc3c7753 100644 --- a/sdk/python/pulumi_aws/redshift/hsm_client_certificate.py +++ b/sdk/python/pulumi_aws/redshift/hsm_client_certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HsmClientCertificateArgs', 'HsmClientCertificate'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] hsm_client_certificate_identifier: The identifier of the HSM client certificate. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "hsm_client_certificate_identifier", hsm_client_certificate_identifier) + HsmClientCertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hsm_client_certificate_identifier=hsm_client_certificate_identifier, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hsm_client_certificate_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hsm_client_certificate_identifier is None and 'hsmClientCertificateIdentifier' in kwargs: + hsm_client_certificate_identifier = kwargs['hsmClientCertificateIdentifier'] + if hsm_client_certificate_identifier is None: + raise TypeError("Missing 'hsm_client_certificate_identifier' argument") + + _setter("hsm_client_certificate_identifier", hsm_client_certificate_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="hsmClientCertificateIdentifier") @@ -66,19 +83,44 @@ def __init__(__self__, *, :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. """ + _HsmClientCertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + hsm_client_certificate_identifier=hsm_client_certificate_identifier, + hsm_client_certificate_public_key=hsm_client_certificate_public_key, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + hsm_client_certificate_identifier: Optional[pulumi.Input[str]] = None, + hsm_client_certificate_public_key: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hsm_client_certificate_identifier is None and 'hsmClientCertificateIdentifier' in kwargs: + hsm_client_certificate_identifier = kwargs['hsmClientCertificateIdentifier'] + if hsm_client_certificate_public_key is None and 'hsmClientCertificatePublicKey' in kwargs: + hsm_client_certificate_public_key = kwargs['hsmClientCertificatePublicKey'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if hsm_client_certificate_identifier is not None: - pulumi.set(__self__, "hsm_client_certificate_identifier", hsm_client_certificate_identifier) + _setter("hsm_client_certificate_identifier", hsm_client_certificate_identifier) if hsm_client_certificate_public_key is not None: - pulumi.set(__self__, "hsm_client_certificate_public_key", hsm_client_certificate_public_key) + _setter("hsm_client_certificate_public_key", hsm_client_certificate_public_key) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -213,6 +255,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HsmClientCertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/hsm_configuration.py b/sdk/python/pulumi_aws/redshift/hsm_configuration.py index cae07d06b6c..debd03ed303 100644 --- a/sdk/python/pulumi_aws/redshift/hsm_configuration.py +++ b/sdk/python/pulumi_aws/redshift/hsm_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HsmConfigurationArgs', 'HsmConfiguration'] @@ -31,14 +31,59 @@ def __init__(__self__, *, :param pulumi.Input[str] hsm_server_public_certificate: The HSMs public certificate file. When using Cloud HSM, the file name is server.pem. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "hsm_configuration_identifier", hsm_configuration_identifier) - pulumi.set(__self__, "hsm_ip_address", hsm_ip_address) - pulumi.set(__self__, "hsm_partition_name", hsm_partition_name) - pulumi.set(__self__, "hsm_partition_password", hsm_partition_password) - pulumi.set(__self__, "hsm_server_public_certificate", hsm_server_public_certificate) + HsmConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + hsm_configuration_identifier=hsm_configuration_identifier, + hsm_ip_address=hsm_ip_address, + hsm_partition_name=hsm_partition_name, + hsm_partition_password=hsm_partition_password, + hsm_server_public_certificate=hsm_server_public_certificate, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + hsm_configuration_identifier: Optional[pulumi.Input[str]] = None, + hsm_ip_address: Optional[pulumi.Input[str]] = None, + hsm_partition_name: Optional[pulumi.Input[str]] = None, + hsm_partition_password: Optional[pulumi.Input[str]] = None, + hsm_server_public_certificate: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is None: + raise TypeError("Missing 'description' argument") + if hsm_configuration_identifier is None and 'hsmConfigurationIdentifier' in kwargs: + hsm_configuration_identifier = kwargs['hsmConfigurationIdentifier'] + if hsm_configuration_identifier is None: + raise TypeError("Missing 'hsm_configuration_identifier' argument") + if hsm_ip_address is None and 'hsmIpAddress' in kwargs: + hsm_ip_address = kwargs['hsmIpAddress'] + if hsm_ip_address is None: + raise TypeError("Missing 'hsm_ip_address' argument") + if hsm_partition_name is None and 'hsmPartitionName' in kwargs: + hsm_partition_name = kwargs['hsmPartitionName'] + if hsm_partition_name is None: + raise TypeError("Missing 'hsm_partition_name' argument") + if hsm_partition_password is None and 'hsmPartitionPassword' in kwargs: + hsm_partition_password = kwargs['hsmPartitionPassword'] + if hsm_partition_password is None: + raise TypeError("Missing 'hsm_partition_password' argument") + if hsm_server_public_certificate is None and 'hsmServerPublicCertificate' in kwargs: + hsm_server_public_certificate = kwargs['hsmServerPublicCertificate'] + if hsm_server_public_certificate is None: + raise TypeError("Missing 'hsm_server_public_certificate' argument") + + _setter("description", description) + _setter("hsm_configuration_identifier", hsm_configuration_identifier) + _setter("hsm_ip_address", hsm_ip_address) + _setter("hsm_partition_name", hsm_partition_name) + _setter("hsm_partition_password", hsm_partition_password) + _setter("hsm_server_public_certificate", hsm_server_public_certificate) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -149,27 +194,66 @@ def __init__(__self__, *, :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. """ + _HsmConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + hsm_configuration_identifier=hsm_configuration_identifier, + hsm_ip_address=hsm_ip_address, + hsm_partition_name=hsm_partition_name, + hsm_partition_password=hsm_partition_password, + hsm_server_public_certificate=hsm_server_public_certificate, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + hsm_configuration_identifier: Optional[pulumi.Input[str]] = None, + hsm_ip_address: Optional[pulumi.Input[str]] = None, + hsm_partition_name: Optional[pulumi.Input[str]] = None, + hsm_partition_password: Optional[pulumi.Input[str]] = None, + hsm_server_public_certificate: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hsm_configuration_identifier is None and 'hsmConfigurationIdentifier' in kwargs: + hsm_configuration_identifier = kwargs['hsmConfigurationIdentifier'] + if hsm_ip_address is None and 'hsmIpAddress' in kwargs: + hsm_ip_address = kwargs['hsmIpAddress'] + if hsm_partition_name is None and 'hsmPartitionName' in kwargs: + hsm_partition_name = kwargs['hsmPartitionName'] + if hsm_partition_password is None and 'hsmPartitionPassword' in kwargs: + hsm_partition_password = kwargs['hsmPartitionPassword'] + if hsm_server_public_certificate is None and 'hsmServerPublicCertificate' in kwargs: + hsm_server_public_certificate = kwargs['hsmServerPublicCertificate'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if hsm_configuration_identifier is not None: - pulumi.set(__self__, "hsm_configuration_identifier", hsm_configuration_identifier) + _setter("hsm_configuration_identifier", hsm_configuration_identifier) if hsm_ip_address is not None: - pulumi.set(__self__, "hsm_ip_address", hsm_ip_address) + _setter("hsm_ip_address", hsm_ip_address) if hsm_partition_name is not None: - pulumi.set(__self__, "hsm_partition_name", hsm_partition_name) + _setter("hsm_partition_name", hsm_partition_name) if hsm_partition_password is not None: - pulumi.set(__self__, "hsm_partition_password", hsm_partition_password) + _setter("hsm_partition_password", hsm_partition_password) if hsm_server_public_certificate is not None: - pulumi.set(__self__, "hsm_server_public_certificate", hsm_server_public_certificate) + _setter("hsm_server_public_certificate", hsm_server_public_certificate) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -374,6 +458,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HsmConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/outputs.py b/sdk/python/pulumi_aws/redshift/outputs.py index eda1bee1b70..47dcac9b621 100644 --- a/sdk/python/pulumi_aws/redshift/outputs.py +++ b/sdk/python/pulumi_aws/redshift/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -56,12 +56,33 @@ def __init__(__self__, *, :param str private_ip_address: The private IP address of a node within a cluster :param str public_ip_address: The public IP address of a node within a cluster """ + ClusterClusterNode._configure( + lambda key, value: pulumi.set(__self__, key, value), + node_role=node_role, + private_ip_address=private_ip_address, + public_ip_address=public_ip_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + node_role: Optional[str] = None, + private_ip_address: Optional[str] = None, + public_ip_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if node_role is None and 'nodeRole' in kwargs: + node_role = kwargs['nodeRole'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if public_ip_address is None and 'publicIpAddress' in kwargs: + public_ip_address = kwargs['publicIpAddress'] + if node_role is not None: - pulumi.set(__self__, "node_role", node_role) + _setter("node_role", node_role) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if public_ip_address is not None: - pulumi.set(__self__, "public_ip_address", public_ip_address) + _setter("public_ip_address", public_ip_address) @property @pulumi.getter(name="nodeRole") @@ -127,15 +148,44 @@ def __init__(__self__, *, :param Sequence[str] log_exports: The collection of exported log types. Log types include the connection log, user log and user activity log. Required when `log_destination_type` is `cloudwatch`. Valid log types are `connectionlog`, `userlog`, and `useractivitylog`. :param str s3_key_prefix: The prefix applied to the log file names. """ - pulumi.set(__self__, "enable", enable) + ClusterLogging._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable=enable, + bucket_name=bucket_name, + log_destination_type=log_destination_type, + log_exports=log_exports, + s3_key_prefix=s3_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable: Optional[bool] = None, + bucket_name: Optional[str] = None, + log_destination_type: Optional[str] = None, + log_exports: Optional[Sequence[str]] = None, + s3_key_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable is None: + raise TypeError("Missing 'enable' argument") + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if log_destination_type is None and 'logDestinationType' in kwargs: + log_destination_type = kwargs['logDestinationType'] + if log_exports is None and 'logExports' in kwargs: + log_exports = kwargs['logExports'] + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + + _setter("enable", enable) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if log_destination_type is not None: - pulumi.set(__self__, "log_destination_type", log_destination_type) + _setter("log_destination_type", log_destination_type) if log_exports is not None: - pulumi.set(__self__, "log_exports", log_exports) + _setter("log_exports", log_exports) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) @property @pulumi.getter @@ -211,11 +261,34 @@ def __init__(__self__, *, :param str grant_name: The name of the snapshot copy grant to use when snapshots of an AWS KMS-encrypted cluster are copied to the destination region. :param int retention_period: The number of days to retain automated snapshots in the destination region after they are copied from the source region. Defaults to `7`. """ - pulumi.set(__self__, "destination_region", destination_region) + ClusterSnapshotCopy._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_region=destination_region, + grant_name=grant_name, + retention_period=retention_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_region: Optional[str] = None, + grant_name: Optional[str] = None, + retention_period: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_region is None and 'destinationRegion' in kwargs: + destination_region = kwargs['destinationRegion'] + if destination_region is None: + raise TypeError("Missing 'destination_region' argument") + if grant_name is None and 'grantName' in kwargs: + grant_name = kwargs['grantName'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + + _setter("destination_region", destination_region) if grant_name is not None: - pulumi.set(__self__, "grant_name", grant_name) + _setter("grant_name", grant_name) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) @property @pulumi.getter(name="destinationRegion") @@ -274,12 +347,33 @@ def __init__(__self__, *, :param str vpc_endpoint_id: The connection endpoint ID for connecting an Amazon Redshift cluster through the proxy. :param str vpc_id: The VPC identifier that the endpoint is associated. """ + EndpointAccessVpcEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interfaces=network_interfaces, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interfaces: Optional[Sequence['outputs.EndpointAccessVpcEndpointNetworkInterface']] = None, + vpc_endpoint_id: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="networkInterfaces") @@ -342,14 +436,39 @@ def __init__(__self__, *, :param str private_ip_address: The IPv4 address of the network interface within the subnet. :param str subnet_id: The subnet identifier. """ + EndpointAccessVpcEndpointNetworkInterface._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + network_interface_id: Optional[str] = None, + private_ip_address: Optional[str] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") @@ -393,8 +512,25 @@ def __init__(__self__, *, :param str name: The name of the Redshift parameter. :param str value: The value of the Redshift parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ParameterGroupParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -445,12 +581,33 @@ def __init__(__self__, *, :param 'ScheduledActionTargetActionResizeClusterArgs' resize_cluster: An action that runs a `ResizeCluster` API operation. Documented below. :param 'ScheduledActionTargetActionResumeClusterArgs' resume_cluster: An action that runs a `ResumeCluster` API operation. Documented below. """ + ScheduledActionTargetAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + pause_cluster=pause_cluster, + resize_cluster=resize_cluster, + resume_cluster=resume_cluster, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pause_cluster: Optional['outputs.ScheduledActionTargetActionPauseCluster'] = None, + resize_cluster: Optional['outputs.ScheduledActionTargetActionResizeCluster'] = None, + resume_cluster: Optional['outputs.ScheduledActionTargetActionResumeCluster'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pause_cluster is None and 'pauseCluster' in kwargs: + pause_cluster = kwargs['pauseCluster'] + if resize_cluster is None and 'resizeCluster' in kwargs: + resize_cluster = kwargs['resizeCluster'] + if resume_cluster is None and 'resumeCluster' in kwargs: + resume_cluster = kwargs['resumeCluster'] + if pause_cluster is not None: - pulumi.set(__self__, "pause_cluster", pause_cluster) + _setter("pause_cluster", pause_cluster) if resize_cluster is not None: - pulumi.set(__self__, "resize_cluster", resize_cluster) + _setter("resize_cluster", resize_cluster) if resume_cluster is not None: - pulumi.set(__self__, "resume_cluster", resume_cluster) + _setter("resume_cluster", resume_cluster) @property @pulumi.getter(name="pauseCluster") @@ -501,7 +658,22 @@ def __init__(__self__, *, """ :param str cluster_identifier: The identifier of the cluster to be paused. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + ScheduledActionTargetActionPauseCluster._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + + _setter("cluster_identifier", cluster_identifier) @property @pulumi.getter(name="clusterIdentifier") @@ -550,15 +722,44 @@ def __init__(__self__, *, :param str node_type: The new node type for the nodes you are adding. :param int number_of_nodes: The new number of nodes for the cluster. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + ScheduledActionTargetActionResizeCluster._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + classic=classic, + cluster_type=cluster_type, + node_type=node_type, + number_of_nodes=number_of_nodes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[str] = None, + classic: Optional[bool] = None, + cluster_type: Optional[str] = None, + node_type: Optional[str] = None, + number_of_nodes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if cluster_type is None and 'clusterType' in kwargs: + cluster_type = kwargs['clusterType'] + if node_type is None and 'nodeType' in kwargs: + node_type = kwargs['nodeType'] + if number_of_nodes is None and 'numberOfNodes' in kwargs: + number_of_nodes = kwargs['numberOfNodes'] + + _setter("cluster_identifier", cluster_identifier) if classic is not None: - pulumi.set(__self__, "classic", classic) + _setter("classic", classic) if cluster_type is not None: - pulumi.set(__self__, "cluster_type", cluster_type) + _setter("cluster_type", cluster_type) if node_type is not None: - pulumi.set(__self__, "node_type", node_type) + _setter("node_type", node_type) if number_of_nodes is not None: - pulumi.set(__self__, "number_of_nodes", number_of_nodes) + _setter("number_of_nodes", number_of_nodes) @property @pulumi.getter(name="clusterIdentifier") @@ -625,7 +826,22 @@ def __init__(__self__, *, """ :param str cluster_identifier: The identifier of the cluster to be resumed. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + ScheduledActionTargetActionResumeCluster._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + + _setter("cluster_identifier", cluster_identifier) @property @pulumi.getter(name="clusterIdentifier") @@ -647,9 +863,36 @@ def __init__(__self__, *, :param str private_ip_address: Private IP address of a node within a cluster :param str public_ip_address: Public IP address of a node within a cluster """ - pulumi.set(__self__, "node_role", node_role) - pulumi.set(__self__, "private_ip_address", private_ip_address) - pulumi.set(__self__, "public_ip_address", public_ip_address) + GetClusterClusterNodeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + node_role=node_role, + private_ip_address=private_ip_address, + public_ip_address=public_ip_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + node_role: Optional[str] = None, + private_ip_address: Optional[str] = None, + public_ip_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if node_role is None and 'nodeRole' in kwargs: + node_role = kwargs['nodeRole'] + if node_role is None: + raise TypeError("Missing 'node_role' argument") + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if private_ip_address is None: + raise TypeError("Missing 'private_ip_address' argument") + if public_ip_address is None and 'publicIpAddress' in kwargs: + public_ip_address = kwargs['publicIpAddress'] + if public_ip_address is None: + raise TypeError("Missing 'public_ip_address' argument") + + _setter("node_role", node_role) + _setter("private_ip_address", private_ip_address) + _setter("public_ip_address", public_ip_address) @property @pulumi.getter(name="nodeRole") diff --git a/sdk/python/pulumi_aws/redshift/parameter_group.py b/sdk/python/pulumi_aws/redshift/parameter_group.py index cf59e4840a5..d5afc3cbe80 100644 --- a/sdk/python/pulumi_aws/redshift/parameter_group.py +++ b/sdk/python/pulumi_aws/redshift/parameter_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,17 +31,38 @@ def __init__(__self__, *, You can read more about the parameters that Redshift supports in the [documentation](http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html) """ - pulumi.set(__self__, "family", family) + ParameterGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + family=family, + description=description, + name=name, + parameters=parameters, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + family: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if family is None: + raise TypeError("Missing 'family' argument") + + _setter("family", family) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -128,25 +149,50 @@ def __init__(__self__, *, You can read more about the parameters that Redshift supports in the [documentation](http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html) :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. """ + _ParameterGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + family=family, + name=name, + parameters=parameters, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + family: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ParameterGroupParameterArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if family is not None: - pulumi.set(__self__, "family", family) + _setter("family", family) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -345,6 +391,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ParameterGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/partner.py b/sdk/python/pulumi_aws/redshift/partner.py index f6d6aa07813..7c4bbe122b5 100644 --- a/sdk/python/pulumi_aws/redshift/partner.py +++ b/sdk/python/pulumi_aws/redshift/partner.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PartnerArgs', 'Partner'] @@ -25,10 +25,43 @@ def __init__(__self__, *, :param pulumi.Input[str] database_name: The name of the database that receives data from the partner. :param pulumi.Input[str] partner_name: The name of the partner that is authorized to send data. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "partner_name", partner_name) + PartnerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + cluster_identifier=cluster_identifier, + database_name=database_name, + partner_name=partner_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + partner_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if partner_name is None and 'partnerName' in kwargs: + partner_name = kwargs['partnerName'] + if partner_name is None: + raise TypeError("Missing 'partner_name' argument") + + _setter("account_id", account_id) + _setter("cluster_identifier", cluster_identifier) + _setter("database_name", database_name) + _setter("partner_name", partner_name) @property @pulumi.getter(name="accountId") @@ -97,18 +130,49 @@ def __init__(__self__, *, :param pulumi.Input[str] status: (Optional) The partner integration status. :param pulumi.Input[str] status_message: (Optional) The status message provided by the partner. """ + _PartnerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + cluster_identifier=cluster_identifier, + database_name=database_name, + partner_name=partner_name, + status=status, + status_message=status_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + partner_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + status_message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if partner_name is None and 'partnerName' in kwargs: + partner_name = kwargs['partnerName'] + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if partner_name is not None: - pulumi.set(__self__, "partner_name", partner_name) + _setter("partner_name", partner_name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_message is not None: - pulumi.set(__self__, "status_message", status_message) + _setter("status_message", status_message) @property @pulumi.getter(name="accountId") @@ -264,6 +328,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PartnerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/scheduled_action.py b/sdk/python/pulumi_aws/redshift/scheduled_action.py index fb5173e0690..d90835095d8 100644 --- a/sdk/python/pulumi_aws/redshift/scheduled_action.py +++ b/sdk/python/pulumi_aws/redshift/scheduled_action.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,19 +35,58 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The scheduled action name. :param pulumi.Input[str] start_time: The start time in UTC when the schedule is active, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). """ - pulumi.set(__self__, "iam_role", iam_role) - pulumi.set(__self__, "schedule", schedule) - pulumi.set(__self__, "target_action", target_action) + ScheduledActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam_role=iam_role, + schedule=schedule, + target_action=target_action, + description=description, + enable=enable, + end_time=end_time, + name=name, + start_time=start_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam_role: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input[str]] = None, + target_action: Optional[pulumi.Input['ScheduledActionTargetActionArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + enable: Optional[pulumi.Input[bool]] = None, + end_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + start_time: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam_role is None and 'iamRole' in kwargs: + iam_role = kwargs['iamRole'] + if iam_role is None: + raise TypeError("Missing 'iam_role' argument") + if schedule is None: + raise TypeError("Missing 'schedule' argument") + if target_action is None and 'targetAction' in kwargs: + target_action = kwargs['targetAction'] + if target_action is None: + raise TypeError("Missing 'target_action' argument") + if end_time is None and 'endTime' in kwargs: + end_time = kwargs['endTime'] + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + + _setter("iam_role", iam_role) + _setter("schedule", schedule) + _setter("target_action", target_action) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if end_time is not None: - pulumi.set(__self__, "end_time", end_time) + _setter("end_time", end_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if start_time is not None: - pulumi.set(__self__, "start_time", start_time) + _setter("start_time", start_time) @property @pulumi.getter(name="iamRole") @@ -168,22 +207,55 @@ def __init__(__self__, *, :param pulumi.Input[str] start_time: The start time in UTC when the schedule is active, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). :param pulumi.Input['ScheduledActionTargetActionArgs'] target_action: Target action. Documented below. """ + _ScheduledActionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + enable=enable, + end_time=end_time, + iam_role=iam_role, + name=name, + schedule=schedule, + start_time=start_time, + target_action=target_action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + enable: Optional[pulumi.Input[bool]] = None, + end_time: Optional[pulumi.Input[str]] = None, + iam_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input[str]] = None, + start_time: Optional[pulumi.Input[str]] = None, + target_action: Optional[pulumi.Input['ScheduledActionTargetActionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end_time is None and 'endTime' in kwargs: + end_time = kwargs['endTime'] + if iam_role is None and 'iamRole' in kwargs: + iam_role = kwargs['iamRole'] + if start_time is None and 'startTime' in kwargs: + start_time = kwargs['startTime'] + if target_action is None and 'targetAction' in kwargs: + target_action = kwargs['targetAction'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enable is not None: - pulumi.set(__self__, "enable", enable) + _setter("enable", enable) if end_time is not None: - pulumi.set(__self__, "end_time", end_time) + _setter("end_time", end_time) if iam_role is not None: - pulumi.set(__self__, "iam_role", iam_role) + _setter("iam_role", iam_role) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if start_time is not None: - pulumi.set(__self__, "start_time", start_time) + _setter("start_time", start_time) if target_action is not None: - pulumi.set(__self__, "target_action", target_action) + _setter("target_action", target_action) @property @pulumi.getter @@ -455,6 +527,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ScheduledActionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -488,6 +564,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'schedule'") __props__.__dict__["schedule"] = schedule __props__.__dict__["start_time"] = start_time + target_action = _utilities.configure(target_action, ScheduledActionTargetActionArgs, True) if target_action is None and not opts.urn: raise TypeError("Missing required property 'target_action'") __props__.__dict__["target_action"] = target_action diff --git a/sdk/python/pulumi_aws/redshift/snapshot_copy_grant.py b/sdk/python/pulumi_aws/redshift/snapshot_copy_grant.py index bf1907cf566..604b05297d3 100644 --- a/sdk/python/pulumi_aws/redshift/snapshot_copy_grant.py +++ b/sdk/python/pulumi_aws/redshift/snapshot_copy_grant.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SnapshotCopyGrantArgs', 'SnapshotCopyGrant'] @@ -23,11 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_id: The unique identifier for the customer master key (CMK) that the grant applies to. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. If not specified, the default key is used. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "snapshot_copy_grant_name", snapshot_copy_grant_name) + SnapshotCopyGrantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + snapshot_copy_grant_name=snapshot_copy_grant_name, + kms_key_id=kms_key_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + snapshot_copy_grant_name: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if snapshot_copy_grant_name is None and 'snapshotCopyGrantName' in kwargs: + snapshot_copy_grant_name = kwargs['snapshotCopyGrantName'] + if snapshot_copy_grant_name is None: + raise TypeError("Missing 'snapshot_copy_grant_name' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("snapshot_copy_grant_name", snapshot_copy_grant_name) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="snapshotCopyGrantName") @@ -82,19 +103,44 @@ def __init__(__self__, *, :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. """ + _SnapshotCopyGrantState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + kms_key_id=kms_key_id, + snapshot_copy_grant_name=snapshot_copy_grant_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + snapshot_copy_grant_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if snapshot_copy_grant_name is None and 'snapshotCopyGrantName' in kwargs: + snapshot_copy_grant_name = kwargs['snapshotCopyGrantName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if snapshot_copy_grant_name is not None: - pulumi.set(__self__, "snapshot_copy_grant_name", snapshot_copy_grant_name) + _setter("snapshot_copy_grant_name", snapshot_copy_grant_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -243,6 +289,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotCopyGrantArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/snapshot_schedule.py b/sdk/python/pulumi_aws/redshift/snapshot_schedule.py index b45ffa9bc8a..310ff7644a5 100644 --- a/sdk/python/pulumi_aws/redshift/snapshot_schedule.py +++ b/sdk/python/pulumi_aws/redshift/snapshot_schedule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SnapshotScheduleArgs', 'SnapshotSchedule'] @@ -30,17 +30,44 @@ def __init__(__self__, *, identifier beginning with the specified prefix. Conflicts with `identifier`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "definitions", definitions) + SnapshotScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + definitions=definitions, + description=description, + force_destroy=force_destroy, + identifier=identifier, + identifier_prefix=identifier_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definitions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definitions is None: + raise TypeError("Missing 'definitions' argument") + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + + _setter("definitions", definitions) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -139,25 +166,56 @@ def __init__(__self__, *, :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. """ + _SnapshotScheduleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + definitions=definitions, + description=description, + force_destroy=force_destroy, + identifier=identifier, + identifier_prefix=identifier_prefix, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + definitions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + identifier: Optional[pulumi.Input[str]] = None, + identifier_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if identifier_prefix is None and 'identifierPrefix' in kwargs: + identifier_prefix = kwargs['identifierPrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if definitions is not None: - pulumi.set(__self__, "definitions", definitions) + _setter("definitions", definitions) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if identifier_prefix is not None: - pulumi.set(__self__, "identifier_prefix", identifier_prefix) + _setter("identifier_prefix", identifier_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -338,6 +396,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotScheduleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/snapshot_schedule_association.py b/sdk/python/pulumi_aws/redshift/snapshot_schedule_association.py index a8314606058..d9c785ee91c 100644 --- a/sdk/python/pulumi_aws/redshift/snapshot_schedule_association.py +++ b/sdk/python/pulumi_aws/redshift/snapshot_schedule_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SnapshotScheduleAssociationArgs', 'SnapshotScheduleAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_identifier: The cluster identifier. :param pulumi.Input[str] schedule_identifier: The snapshot schedule identifier. """ - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "schedule_identifier", schedule_identifier) + SnapshotScheduleAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + schedule_identifier=schedule_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + schedule_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if schedule_identifier is None and 'scheduleIdentifier' in kwargs: + schedule_identifier = kwargs['scheduleIdentifier'] + if schedule_identifier is None: + raise TypeError("Missing 'schedule_identifier' argument") + + _setter("cluster_identifier", cluster_identifier) + _setter("schedule_identifier", schedule_identifier) @property @pulumi.getter(name="clusterIdentifier") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_identifier: The cluster identifier. :param pulumi.Input[str] schedule_identifier: The snapshot schedule identifier. """ + _SnapshotScheduleAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + schedule_identifier=schedule_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + schedule_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if schedule_identifier is None and 'scheduleIdentifier' in kwargs: + schedule_identifier = kwargs['scheduleIdentifier'] + if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if schedule_identifier is not None: - pulumi.set(__self__, "schedule_identifier", schedule_identifier) + _setter("schedule_identifier", schedule_identifier) @property @pulumi.getter(name="clusterIdentifier") @@ -178,6 +216,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotScheduleAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/subnet_group.py b/sdk/python/pulumi_aws/redshift/subnet_group.py index 37d9a7fe6b7..829bbd9ff0f 100644 --- a/sdk/python/pulumi_aws/redshift/subnet_group.py +++ b/sdk/python/pulumi_aws/redshift/subnet_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SubnetGroupArgs', 'SubnetGroup'] @@ -25,15 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Redshift Subnet group. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "subnet_ids", subnet_ids) + SubnetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_ids=subnet_ids, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + + _setter("subnet_ids", subnet_ids) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="subnetIds") @@ -102,23 +123,48 @@ def __init__(__self__, *, :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. """ + _SubnetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is None: description = 'Managed by Pulumi' if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -313,6 +359,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SubnetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshift/usage_limit.py b/sdk/python/pulumi_aws/redshift/usage_limit.py index ea687c91b29..8393b1e01c5 100644 --- a/sdk/python/pulumi_aws/redshift/usage_limit.py +++ b/sdk/python/pulumi_aws/redshift/usage_limit.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UsageLimitArgs', 'UsageLimit'] @@ -31,16 +31,55 @@ def __init__(__self__, *, :param pulumi.Input[str] period: The time period that the amount applies to. A weekly period begins on Sunday. The default is `monthly`. Valid values are `daily`, `weekly`, and `monthly`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "amount", amount) - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - pulumi.set(__self__, "feature_type", feature_type) - pulumi.set(__self__, "limit_type", limit_type) + UsageLimitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount=amount, + cluster_identifier=cluster_identifier, + feature_type=feature_type, + limit_type=limit_type, + breach_action=breach_action, + period=period, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount: Optional[pulumi.Input[int]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + feature_type: Optional[pulumi.Input[str]] = None, + limit_type: Optional[pulumi.Input[str]] = None, + breach_action: Optional[pulumi.Input[str]] = None, + period: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amount is None: + raise TypeError("Missing 'amount' argument") + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if cluster_identifier is None: + raise TypeError("Missing 'cluster_identifier' argument") + if feature_type is None and 'featureType' in kwargs: + feature_type = kwargs['featureType'] + if feature_type is None: + raise TypeError("Missing 'feature_type' argument") + if limit_type is None and 'limitType' in kwargs: + limit_type = kwargs['limitType'] + if limit_type is None: + raise TypeError("Missing 'limit_type' argument") + if breach_action is None and 'breachAction' in kwargs: + breach_action = kwargs['breachAction'] + + _setter("amount", amount) + _setter("cluster_identifier", cluster_identifier) + _setter("feature_type", feature_type) + _setter("limit_type", limit_type) if breach_action is not None: - pulumi.set(__self__, "breach_action", breach_action) + _setter("breach_action", breach_action) if period is not None: - pulumi.set(__self__, "period", period) + _setter("period", period) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -151,27 +190,64 @@ def __init__(__self__, *, :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. """ + _UsageLimitState._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount=amount, + arn=arn, + breach_action=breach_action, + cluster_identifier=cluster_identifier, + feature_type=feature_type, + limit_type=limit_type, + period=period, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount: Optional[pulumi.Input[int]] = None, + arn: Optional[pulumi.Input[str]] = None, + breach_action: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + feature_type: Optional[pulumi.Input[str]] = None, + limit_type: Optional[pulumi.Input[str]] = None, + period: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if breach_action is None and 'breachAction' in kwargs: + breach_action = kwargs['breachAction'] + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if feature_type is None and 'featureType' in kwargs: + feature_type = kwargs['featureType'] + if limit_type is None and 'limitType' in kwargs: + limit_type = kwargs['limitType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if amount is not None: - pulumi.set(__self__, "amount", amount) + _setter("amount", amount) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if breach_action is not None: - pulumi.set(__self__, "breach_action", breach_action) + _setter("breach_action", breach_action) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if feature_type is not None: - pulumi.set(__self__, "feature_type", feature_type) + _setter("feature_type", feature_type) if limit_type is not None: - pulumi.set(__self__, "limit_type", limit_type) + _setter("limit_type", limit_type) if period is not None: - pulumi.set(__self__, "period", period) + _setter("period", period) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -372,6 +448,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UsageLimitArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshiftdata/_inputs.py b/sdk/python/pulumi_aws/redshiftdata/_inputs.py index b4835ba2176..7f69d8dc0cb 100644 --- a/sdk/python/pulumi_aws/redshiftdata/_inputs.py +++ b/sdk/python/pulumi_aws/redshiftdata/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -18,8 +18,25 @@ class StatementParameterArgs: def __init__(__self__, *, name: pulumi.Input[str], value: pulumi.Input[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + StatementParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/redshiftdata/outputs.py b/sdk/python/pulumi_aws/redshiftdata/outputs.py index 7047d394607..f4b2bba6e21 100644 --- a/sdk/python/pulumi_aws/redshiftdata/outputs.py +++ b/sdk/python/pulumi_aws/redshiftdata/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -18,8 +18,25 @@ class StatementParameter(dict): def __init__(__self__, *, name: str, value: str): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + StatementParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/redshiftdata/statement.py b/sdk/python/pulumi_aws/redshiftdata/statement.py index 9c990227cc3..d5a779e9ad2 100644 --- a/sdk/python/pulumi_aws/redshiftdata/statement.py +++ b/sdk/python/pulumi_aws/redshiftdata/statement.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -38,22 +38,65 @@ def __init__(__self__, *, :param pulumi.Input[bool] with_event: A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statement runs. :param pulumi.Input[str] workgroup_name: The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials. """ - pulumi.set(__self__, "database", database) - pulumi.set(__self__, "sql", sql) + StatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database=database, + sql=sql, + cluster_identifier=cluster_identifier, + db_user=db_user, + parameters=parameters, + secret_arn=secret_arn, + statement_name=statement_name, + with_event=with_event, + workgroup_name=workgroup_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database: Optional[pulumi.Input[str]] = None, + sql: Optional[pulumi.Input[str]] = None, + cluster_identifier: Optional[pulumi.Input[str]] = None, + db_user: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['StatementParameterArgs']]]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + statement_name: Optional[pulumi.Input[str]] = None, + with_event: Optional[pulumi.Input[bool]] = None, + workgroup_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database is None: + raise TypeError("Missing 'database' argument") + if sql is None: + raise TypeError("Missing 'sql' argument") + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if db_user is None and 'dbUser' in kwargs: + db_user = kwargs['dbUser'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if statement_name is None and 'statementName' in kwargs: + statement_name = kwargs['statementName'] + if with_event is None and 'withEvent' in kwargs: + with_event = kwargs['withEvent'] + if workgroup_name is None and 'workgroupName' in kwargs: + workgroup_name = kwargs['workgroupName'] + + _setter("database", database) + _setter("sql", sql) if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if db_user is not None: - pulumi.set(__self__, "db_user", db_user) + _setter("db_user", db_user) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) if statement_name is not None: - pulumi.set(__self__, "statement_name", statement_name) + _setter("statement_name", statement_name) if with_event is not None: - pulumi.set(__self__, "with_event", with_event) + _setter("with_event", with_event) if workgroup_name is not None: - pulumi.set(__self__, "workgroup_name", workgroup_name) + _setter("workgroup_name", workgroup_name) @property @pulumi.getter @@ -188,24 +231,63 @@ def __init__(__self__, *, :param pulumi.Input[bool] with_event: A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statement runs. :param pulumi.Input[str] workgroup_name: The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials. """ + _StatementState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_identifier=cluster_identifier, + database=database, + db_user=db_user, + parameters=parameters, + secret_arn=secret_arn, + sql=sql, + statement_name=statement_name, + with_event=with_event, + workgroup_name=workgroup_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_identifier: Optional[pulumi.Input[str]] = None, + database: Optional[pulumi.Input[str]] = None, + db_user: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['StatementParameterArgs']]]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + sql: Optional[pulumi.Input[str]] = None, + statement_name: Optional[pulumi.Input[str]] = None, + with_event: Optional[pulumi.Input[bool]] = None, + workgroup_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_identifier is None and 'clusterIdentifier' in kwargs: + cluster_identifier = kwargs['clusterIdentifier'] + if db_user is None and 'dbUser' in kwargs: + db_user = kwargs['dbUser'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if statement_name is None and 'statementName' in kwargs: + statement_name = kwargs['statementName'] + if with_event is None and 'withEvent' in kwargs: + with_event = kwargs['withEvent'] + if workgroup_name is None and 'workgroupName' in kwargs: + workgroup_name = kwargs['workgroupName'] + if cluster_identifier is not None: - pulumi.set(__self__, "cluster_identifier", cluster_identifier) + _setter("cluster_identifier", cluster_identifier) if database is not None: - pulumi.set(__self__, "database", database) + _setter("database", database) if db_user is not None: - pulumi.set(__self__, "db_user", db_user) + _setter("db_user", db_user) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) if sql is not None: - pulumi.set(__self__, "sql", sql) + _setter("sql", sql) if statement_name is not None: - pulumi.set(__self__, "statement_name", statement_name) + _setter("statement_name", statement_name) if with_event is not None: - pulumi.set(__self__, "with_event", with_event) + _setter("with_event", with_event) if workgroup_name is not None: - pulumi.set(__self__, "workgroup_name", workgroup_name) + _setter("workgroup_name", workgroup_name) @property @pulumi.getter(name="clusterIdentifier") @@ -431,6 +513,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StatementArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshiftserverless/_inputs.py b/sdk/python/pulumi_aws/redshiftserverless/_inputs.py index 0201b3edd1c..41f391b2644 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/_inputs.py +++ b/sdk/python/pulumi_aws/redshiftserverless/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,12 +29,33 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: The DNS address of the VPC endpoint. :param pulumi.Input[str] vpc_id: The port that Amazon Redshift Serverless listens on. """ + EndpointAccessVpcEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interfaces=network_interfaces, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointAccessVpcEndpointNetworkInterfaceArgs']]]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="networkInterfaces") @@ -86,14 +107,39 @@ def __init__(__self__, *, :param pulumi.Input[str] private_ip_address: The IPv4 address of the network interface within the subnet. :param pulumi.Input[str] subnet_id: The unique identifier of the subnet. """ + EndpointAccessVpcEndpointNetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + private_ip_address: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") @@ -153,8 +199,29 @@ def __init__(__self__, *, :param pulumi.Input[str] parameter_key: The key of the parameter. The options are `auto_mv`, `datestyle`, `enable_case_sensitive_identifier`, `enable_user_activity_logging`, `query_group`, `search_path`, `require_ssl`, `use_fips_ssl`, and [query monitoring metrics](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html#cm-c-wlm-query-monitoring-metrics-serverless) that let you define performance boundaries: `max_query_cpu_time`, `max_query_blocks_read`, `max_scan_row_count`, `max_query_execution_time`, `max_query_queue_time`, `max_query_cpu_usage_percent`, `max_query_temp_blocks_to_disk`, `max_join_row_count` and `max_nested_loop_join_row_count`. :param pulumi.Input[str] parameter_value: The value of the parameter to set. """ - pulumi.set(__self__, "parameter_key", parameter_key) - pulumi.set(__self__, "parameter_value", parameter_value) + WorkgroupConfigParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_key=parameter_key, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_key: Optional[pulumi.Input[str]] = None, + parameter_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_key is None and 'parameterKey' in kwargs: + parameter_key = kwargs['parameterKey'] + if parameter_key is None: + raise TypeError("Missing 'parameter_key' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_key", parameter_key) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterKey") @@ -192,12 +259,29 @@ def __init__(__self__, *, :param pulumi.Input[int] port: The port that Amazon Redshift Serverless listens on. :param pulumi.Input[Sequence[pulumi.Input['WorkgroupEndpointVpcEndpointArgs']]] vpc_endpoints: The VPC endpoint or the Redshift Serverless workgroup. See `VPC Endpoint` below. """ + WorkgroupEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + port=port, + vpc_endpoints=vpc_endpoints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + vpc_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['WorkgroupEndpointVpcEndpointArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_endpoints is None and 'vpcEndpoints' in kwargs: + vpc_endpoints = kwargs['vpcEndpoints'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if vpc_endpoints is not None: - pulumi.set(__self__, "vpc_endpoints", vpc_endpoints) + _setter("vpc_endpoints", vpc_endpoints) @property @pulumi.getter @@ -247,12 +331,33 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: The DNS address of the VPC endpoint. :param pulumi.Input[str] vpc_id: The port that Amazon Redshift Serverless listens on. """ + WorkgroupEndpointVpcEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interfaces=network_interfaces, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['WorkgroupEndpointVpcEndpointNetworkInterfaceArgs']]]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="networkInterfaces") @@ -304,14 +409,39 @@ def __init__(__self__, *, :param pulumi.Input[str] private_ip_address: The IPv4 address of the network interface within the subnet. :param pulumi.Input[str] subnet_id: The unique identifier of the subnet. """ + WorkgroupEndpointVpcEndpointNetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + private_ip_address: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") diff --git a/sdk/python/pulumi_aws/redshiftserverless/endpoint_access.py b/sdk/python/pulumi_aws/redshiftserverless/endpoint_access.py index 2ad1fb92556..f972ed10aef 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/endpoint_access.py +++ b/sdk/python/pulumi_aws/redshiftserverless/endpoint_access.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,11 +27,42 @@ def __init__(__self__, *, :param pulumi.Input[str] workgroup_name: The name of the workgroup. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: An array of security group IDs to associate with the workgroup. """ - pulumi.set(__self__, "endpoint_name", endpoint_name) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "workgroup_name", workgroup_name) + EndpointAccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_name=endpoint_name, + subnet_ids=subnet_ids, + workgroup_name=workgroup_name, + vpc_security_group_ids=vpc_security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_name: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + workgroup_name: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_name is None and 'endpointName' in kwargs: + endpoint_name = kwargs['endpointName'] + if endpoint_name is None: + raise TypeError("Missing 'endpoint_name' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if workgroup_name is None and 'workgroupName' in kwargs: + workgroup_name = kwargs['workgroupName'] + if workgroup_name is None: + raise TypeError("Missing 'workgroup_name' argument") + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + + _setter("endpoint_name", endpoint_name) + _setter("subnet_ids", subnet_ids) + _setter("workgroup_name", workgroup_name) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) @property @pulumi.getter(name="endpointName") @@ -104,22 +135,57 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: An array of security group IDs to associate with the workgroup. :param pulumi.Input[str] workgroup_name: The name of the workgroup. """ + _EndpointAccessState._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + arn=arn, + endpoint_name=endpoint_name, + port=port, + subnet_ids=subnet_ids, + vpc_endpoints=vpc_endpoints, + vpc_security_group_ids=vpc_security_group_ids, + workgroup_name=workgroup_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + endpoint_name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointAccessVpcEndpointArgs']]]] = None, + vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + workgroup_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_name is None and 'endpointName' in kwargs: + endpoint_name = kwargs['endpointName'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_endpoints is None and 'vpcEndpoints' in kwargs: + vpc_endpoints = kwargs['vpcEndpoints'] + if vpc_security_group_ids is None and 'vpcSecurityGroupIds' in kwargs: + vpc_security_group_ids = kwargs['vpcSecurityGroupIds'] + if workgroup_name is None and 'workgroupName' in kwargs: + workgroup_name = kwargs['workgroupName'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if endpoint_name is not None: - pulumi.set(__self__, "endpoint_name", endpoint_name) + _setter("endpoint_name", endpoint_name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_endpoints is not None: - pulumi.set(__self__, "vpc_endpoints", vpc_endpoints) + _setter("vpc_endpoints", vpc_endpoints) if vpc_security_group_ids is not None: - pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + _setter("vpc_security_group_ids", vpc_security_group_ids) if workgroup_name is not None: - pulumi.set(__self__, "workgroup_name", workgroup_name) + _setter("workgroup_name", workgroup_name) @property @pulumi.getter @@ -295,6 +361,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EndpointAccessArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshiftserverless/get_credentials.py b/sdk/python/pulumi_aws/redshiftserverless/get_credentials.py index e547a495175..e0c7de93ecf 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/get_credentials.py +++ b/sdk/python/pulumi_aws/redshiftserverless/get_credentials.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/redshiftserverless/get_namespace.py b/sdk/python/pulumi_aws/redshiftserverless/get_namespace.py index c8d7c66f94e..dbc0a75bd56 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/get_namespace.py +++ b/sdk/python/pulumi_aws/redshiftserverless/get_namespace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/redshiftserverless/get_workgroup.py b/sdk/python/pulumi_aws/redshiftserverless/get_workgroup.py index 9504fceb398..072433ff080 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/get_workgroup.py +++ b/sdk/python/pulumi_aws/redshiftserverless/get_workgroup.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/redshiftserverless/namespace.py b/sdk/python/pulumi_aws/redshiftserverless/namespace.py index 554d453a73c..c9e4b460475 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/namespace.py +++ b/sdk/python/pulumi_aws/redshiftserverless/namespace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NamespaceArgs', 'Namespace'] @@ -35,23 +35,68 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] log_exports: The types of logs the namespace can export. Available export types are `userlog`, `connectionlog`, and `useractivitylog`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "namespace_name", namespace_name) + NamespaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace_name=namespace_name, + admin_user_password=admin_user_password, + admin_username=admin_username, + db_name=db_name, + default_iam_role_arn=default_iam_role_arn, + iam_roles=iam_roles, + kms_key_id=kms_key_id, + log_exports=log_exports, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace_name: Optional[pulumi.Input[str]] = None, + admin_user_password: Optional[pulumi.Input[str]] = None, + admin_username: Optional[pulumi.Input[str]] = None, + db_name: Optional[pulumi.Input[str]] = None, + default_iam_role_arn: Optional[pulumi.Input[str]] = None, + iam_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + log_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace_name is None and 'namespaceName' in kwargs: + namespace_name = kwargs['namespaceName'] + if namespace_name is None: + raise TypeError("Missing 'namespace_name' argument") + if admin_user_password is None and 'adminUserPassword' in kwargs: + admin_user_password = kwargs['adminUserPassword'] + if admin_username is None and 'adminUsername' in kwargs: + admin_username = kwargs['adminUsername'] + if db_name is None and 'dbName' in kwargs: + db_name = kwargs['dbName'] + if default_iam_role_arn is None and 'defaultIamRoleArn' in kwargs: + default_iam_role_arn = kwargs['defaultIamRoleArn'] + if iam_roles is None and 'iamRoles' in kwargs: + iam_roles = kwargs['iamRoles'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if log_exports is None and 'logExports' in kwargs: + log_exports = kwargs['logExports'] + + _setter("namespace_name", namespace_name) if admin_user_password is not None: - pulumi.set(__self__, "admin_user_password", admin_user_password) + _setter("admin_user_password", admin_user_password) if admin_username is not None: - pulumi.set(__self__, "admin_username", admin_username) + _setter("admin_username", admin_username) if db_name is not None: - pulumi.set(__self__, "db_name", db_name) + _setter("db_name", db_name) if default_iam_role_arn is not None: - pulumi.set(__self__, "default_iam_role_arn", default_iam_role_arn) + _setter("default_iam_role_arn", default_iam_role_arn) if iam_roles is not None: - pulumi.set(__self__, "iam_roles", iam_roles) + _setter("iam_roles", iam_roles) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if log_exports is not None: - pulumi.set(__self__, "log_exports", log_exports) + _setter("log_exports", log_exports) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="namespaceName") @@ -192,33 +237,86 @@ def __init__(__self__, *, :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. """ + _NamespaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_user_password=admin_user_password, + admin_username=admin_username, + arn=arn, + db_name=db_name, + default_iam_role_arn=default_iam_role_arn, + iam_roles=iam_roles, + kms_key_id=kms_key_id, + log_exports=log_exports, + namespace_id=namespace_id, + namespace_name=namespace_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_user_password: Optional[pulumi.Input[str]] = None, + admin_username: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + db_name: Optional[pulumi.Input[str]] = None, + default_iam_role_arn: Optional[pulumi.Input[str]] = None, + iam_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + log_exports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + namespace_id: Optional[pulumi.Input[str]] = None, + namespace_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_user_password is None and 'adminUserPassword' in kwargs: + admin_user_password = kwargs['adminUserPassword'] + if admin_username is None and 'adminUsername' in kwargs: + admin_username = kwargs['adminUsername'] + if db_name is None and 'dbName' in kwargs: + db_name = kwargs['dbName'] + if default_iam_role_arn is None and 'defaultIamRoleArn' in kwargs: + default_iam_role_arn = kwargs['defaultIamRoleArn'] + if iam_roles is None and 'iamRoles' in kwargs: + iam_roles = kwargs['iamRoles'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if log_exports is None and 'logExports' in kwargs: + log_exports = kwargs['logExports'] + if namespace_id is None and 'namespaceId' in kwargs: + namespace_id = kwargs['namespaceId'] + if namespace_name is None and 'namespaceName' in kwargs: + namespace_name = kwargs['namespaceName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if admin_user_password is not None: - pulumi.set(__self__, "admin_user_password", admin_user_password) + _setter("admin_user_password", admin_user_password) if admin_username is not None: - pulumi.set(__self__, "admin_username", admin_username) + _setter("admin_username", admin_username) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if db_name is not None: - pulumi.set(__self__, "db_name", db_name) + _setter("db_name", db_name) if default_iam_role_arn is not None: - pulumi.set(__self__, "default_iam_role_arn", default_iam_role_arn) + _setter("default_iam_role_arn", default_iam_role_arn) if iam_roles is not None: - pulumi.set(__self__, "iam_roles", iam_roles) + _setter("iam_roles", iam_roles) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if log_exports is not None: - pulumi.set(__self__, "log_exports", log_exports) + _setter("log_exports", log_exports) if namespace_id is not None: - pulumi.set(__self__, "namespace_id", namespace_id) + _setter("namespace_id", namespace_id) if namespace_name is not None: - pulumi.set(__self__, "namespace_name", namespace_name) + _setter("namespace_name", namespace_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="adminUserPassword") @@ -451,6 +549,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NamespaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshiftserverless/outputs.py b/sdk/python/pulumi_aws/redshiftserverless/outputs.py index c00cf0b5a1c..94b3b3c2240 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/outputs.py +++ b/sdk/python/pulumi_aws/redshiftserverless/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -54,12 +54,33 @@ def __init__(__self__, *, :param str vpc_endpoint_id: The DNS address of the VPC endpoint. :param str vpc_id: The port that Amazon Redshift Serverless listens on. """ + EndpointAccessVpcEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interfaces=network_interfaces, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interfaces: Optional[Sequence['outputs.EndpointAccessVpcEndpointNetworkInterface']] = None, + vpc_endpoint_id: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="networkInterfaces") @@ -122,14 +143,39 @@ def __init__(__self__, *, :param str private_ip_address: The IPv4 address of the network interface within the subnet. :param str subnet_id: The unique identifier of the subnet. """ + EndpointAccessVpcEndpointNetworkInterface._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + network_interface_id: Optional[str] = None, + private_ip_address: Optional[str] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") @@ -192,8 +238,29 @@ def __init__(__self__, *, :param str parameter_key: The key of the parameter. The options are `auto_mv`, `datestyle`, `enable_case_sensitive_identifier`, `enable_user_activity_logging`, `query_group`, `search_path`, `require_ssl`, `use_fips_ssl`, and [query monitoring metrics](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html#cm-c-wlm-query-monitoring-metrics-serverless) that let you define performance boundaries: `max_query_cpu_time`, `max_query_blocks_read`, `max_scan_row_count`, `max_query_execution_time`, `max_query_queue_time`, `max_query_cpu_usage_percent`, `max_query_temp_blocks_to_disk`, `max_join_row_count` and `max_nested_loop_join_row_count`. :param str parameter_value: The value of the parameter to set. """ - pulumi.set(__self__, "parameter_key", parameter_key) - pulumi.set(__self__, "parameter_value", parameter_value) + WorkgroupConfigParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameter_key=parameter_key, + parameter_value=parameter_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameter_key: Optional[str] = None, + parameter_value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameter_key is None and 'parameterKey' in kwargs: + parameter_key = kwargs['parameterKey'] + if parameter_key is None: + raise TypeError("Missing 'parameter_key' argument") + if parameter_value is None and 'parameterValue' in kwargs: + parameter_value = kwargs['parameterValue'] + if parameter_value is None: + raise TypeError("Missing 'parameter_value' argument") + + _setter("parameter_key", parameter_key) + _setter("parameter_value", parameter_value) @property @pulumi.getter(name="parameterKey") @@ -240,12 +307,29 @@ def __init__(__self__, *, :param int port: The port that Amazon Redshift Serverless listens on. :param Sequence['WorkgroupEndpointVpcEndpointArgs'] vpc_endpoints: The VPC endpoint or the Redshift Serverless workgroup. See `VPC Endpoint` below. """ + WorkgroupEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + port=port, + vpc_endpoints=vpc_endpoints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + port: Optional[int] = None, + vpc_endpoints: Optional[Sequence['outputs.WorkgroupEndpointVpcEndpoint']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_endpoints is None and 'vpcEndpoints' in kwargs: + vpc_endpoints = kwargs['vpcEndpoints'] + if address is not None: - pulumi.set(__self__, "address", address) + _setter("address", address) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if vpc_endpoints is not None: - pulumi.set(__self__, "vpc_endpoints", vpc_endpoints) + _setter("vpc_endpoints", vpc_endpoints) @property @pulumi.getter @@ -304,12 +388,33 @@ def __init__(__self__, *, :param str vpc_endpoint_id: The DNS address of the VPC endpoint. :param str vpc_id: The port that Amazon Redshift Serverless listens on. """ + WorkgroupEndpointVpcEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interfaces=network_interfaces, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interfaces: Optional[Sequence['outputs.WorkgroupEndpointVpcEndpointNetworkInterface']] = None, + vpc_endpoint_id: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="networkInterfaces") @@ -372,14 +477,39 @@ def __init__(__self__, *, :param str private_ip_address: The IPv4 address of the network interface within the subnet. :param str subnet_id: The unique identifier of the subnet. """ + WorkgroupEndpointVpcEndpointNetworkInterface._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + network_interface_id: Optional[str] = None, + private_ip_address: Optional[str] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if availability_zone is not None: - pulumi.set(__self__, "availability_zone", availability_zone) + _setter("availability_zone", availability_zone) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if private_ip_address is not None: - pulumi.set(__self__, "private_ip_address", private_ip_address) + _setter("private_ip_address", private_ip_address) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") @@ -425,9 +555,32 @@ def __init__(__self__, *, :param int port: The port that Amazon Redshift Serverless listens on. :param Sequence['GetWorkgroupEndpointVpcEndpointArgs'] vpc_endpoints: The VPC endpoint or the Redshift Serverless workgroup. See `VPC Endpoint` below. """ - pulumi.set(__self__, "address", address) - pulumi.set(__self__, "port", port) - pulumi.set(__self__, "vpc_endpoints", vpc_endpoints) + GetWorkgroupEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + address=address, + port=port, + vpc_endpoints=vpc_endpoints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address: Optional[str] = None, + port: Optional[int] = None, + vpc_endpoints: Optional[Sequence['outputs.GetWorkgroupEndpointVpcEndpointResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address is None: + raise TypeError("Missing 'address' argument") + if port is None: + raise TypeError("Missing 'port' argument") + if vpc_endpoints is None and 'vpcEndpoints' in kwargs: + vpc_endpoints = kwargs['vpcEndpoints'] + if vpc_endpoints is None: + raise TypeError("Missing 'vpc_endpoints' argument") + + _setter("address", address) + _setter("port", port) + _setter("vpc_endpoints", vpc_endpoints) @property @pulumi.getter @@ -465,9 +618,36 @@ def __init__(__self__, *, :param str vpc_endpoint_id: The DNS address of the VPC endpoint. :param str vpc_id: The port that Amazon Redshift Serverless listens on. """ - pulumi.set(__self__, "network_interfaces", network_interfaces) - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) - pulumi.set(__self__, "vpc_id", vpc_id) + GetWorkgroupEndpointVpcEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interfaces=network_interfaces, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interfaces: Optional[Sequence['outputs.GetWorkgroupEndpointVpcEndpointNetworkInterfaceResult']] = None, + vpc_endpoint_id: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if network_interfaces is None: + raise TypeError("Missing 'network_interfaces' argument") + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_endpoint_id is None: + raise TypeError("Missing 'vpc_endpoint_id' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("network_interfaces", network_interfaces) + _setter("vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="networkInterfaces") @@ -507,10 +687,43 @@ def __init__(__self__, *, :param str private_ip_address: The IPv4 address of the network interface within the subnet. :param str subnet_id: The unique identifier of the subnet. """ - pulumi.set(__self__, "availability_zone", availability_zone) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "private_ip_address", private_ip_address) - pulumi.set(__self__, "subnet_id", subnet_id) + GetWorkgroupEndpointVpcEndpointNetworkInterfaceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + availability_zone=availability_zone, + network_interface_id=network_interface_id, + private_ip_address=private_ip_address, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + availability_zone: Optional[str] = None, + network_interface_id: Optional[str] = None, + private_ip_address: Optional[str] = None, + subnet_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if availability_zone is None and 'availabilityZone' in kwargs: + availability_zone = kwargs['availabilityZone'] + if availability_zone is None: + raise TypeError("Missing 'availability_zone' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if private_ip_address is None and 'privateIpAddress' in kwargs: + private_ip_address = kwargs['privateIpAddress'] + if private_ip_address is None: + raise TypeError("Missing 'private_ip_address' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + + _setter("availability_zone", availability_zone) + _setter("network_interface_id", network_interface_id) + _setter("private_ip_address", private_ip_address) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="availabilityZone") diff --git a/sdk/python/pulumi_aws/redshiftserverless/resource_policy.py b/sdk/python/pulumi_aws/redshiftserverless/resource_policy.py index b970ead3fca..c2bd1410a29 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/resource_policy.py +++ b/sdk/python/pulumi_aws/redshiftserverless/resource_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourcePolicyArgs', 'ResourcePolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The policy to create or update. For example, the following policy grants a user authorization to restore a snapshot. :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the account to create or update a resource policy for. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "resource_arn", resource_arn) + ResourcePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("policy", policy) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The policy to create or update. For example, the following policy grants a user authorization to restore a snapshot. :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the account to create or update a resource policy for. """ + _ResourcePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -184,6 +218,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourcePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshiftserverless/snapshot.py b/sdk/python/pulumi_aws/redshiftserverless/snapshot.py index 351bb6ac43a..5ca12ac61c8 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/snapshot.py +++ b/sdk/python/pulumi_aws/redshiftserverless/snapshot.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SnapshotArgs', 'Snapshot'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] snapshot_name: The name of the snapshot. :param pulumi.Input[int] retention_period: How long to retain the created snapshot. Default value is `-1`. """ - pulumi.set(__self__, "namespace_name", namespace_name) - pulumi.set(__self__, "snapshot_name", snapshot_name) + SnapshotArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace_name=namespace_name, + snapshot_name=snapshot_name, + retention_period=retention_period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace_name: Optional[pulumi.Input[str]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace_name is None and 'namespaceName' in kwargs: + namespace_name = kwargs['namespaceName'] + if namespace_name is None: + raise TypeError("Missing 'namespace_name' argument") + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if snapshot_name is None: + raise TypeError("Missing 'snapshot_name' argument") + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + + _setter("namespace_name", namespace_name) + _setter("snapshot_name", snapshot_name) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) @property @pulumi.getter(name="namespaceName") @@ -91,26 +116,73 @@ def __init__(__self__, *, :param pulumi.Input[int] retention_period: How long to retain the created snapshot. Default value is `-1`. :param pulumi.Input[str] snapshot_name: The name of the snapshot. """ + _SnapshotState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts_with_provisioned_restore_accesses=accounts_with_provisioned_restore_accesses, + accounts_with_restore_accesses=accounts_with_restore_accesses, + admin_username=admin_username, + arn=arn, + kms_key_id=kms_key_id, + namespace_arn=namespace_arn, + namespace_name=namespace_name, + owner_account=owner_account, + retention_period=retention_period, + snapshot_name=snapshot_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts_with_provisioned_restore_accesses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + accounts_with_restore_accesses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + admin_username: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + namespace_arn: Optional[pulumi.Input[str]] = None, + namespace_name: Optional[pulumi.Input[str]] = None, + owner_account: Optional[pulumi.Input[str]] = None, + retention_period: Optional[pulumi.Input[int]] = None, + snapshot_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accounts_with_provisioned_restore_accesses is None and 'accountsWithProvisionedRestoreAccesses' in kwargs: + accounts_with_provisioned_restore_accesses = kwargs['accountsWithProvisionedRestoreAccesses'] + if accounts_with_restore_accesses is None and 'accountsWithRestoreAccesses' in kwargs: + accounts_with_restore_accesses = kwargs['accountsWithRestoreAccesses'] + if admin_username is None and 'adminUsername' in kwargs: + admin_username = kwargs['adminUsername'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if namespace_arn is None and 'namespaceArn' in kwargs: + namespace_arn = kwargs['namespaceArn'] + if namespace_name is None and 'namespaceName' in kwargs: + namespace_name = kwargs['namespaceName'] + if owner_account is None and 'ownerAccount' in kwargs: + owner_account = kwargs['ownerAccount'] + if retention_period is None and 'retentionPeriod' in kwargs: + retention_period = kwargs['retentionPeriod'] + if snapshot_name is None and 'snapshotName' in kwargs: + snapshot_name = kwargs['snapshotName'] + if accounts_with_provisioned_restore_accesses is not None: - pulumi.set(__self__, "accounts_with_provisioned_restore_accesses", accounts_with_provisioned_restore_accesses) + _setter("accounts_with_provisioned_restore_accesses", accounts_with_provisioned_restore_accesses) if accounts_with_restore_accesses is not None: - pulumi.set(__self__, "accounts_with_restore_accesses", accounts_with_restore_accesses) + _setter("accounts_with_restore_accesses", accounts_with_restore_accesses) if admin_username is not None: - pulumi.set(__self__, "admin_username", admin_username) + _setter("admin_username", admin_username) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if namespace_arn is not None: - pulumi.set(__self__, "namespace_arn", namespace_arn) + _setter("namespace_arn", namespace_arn) if namespace_name is not None: - pulumi.set(__self__, "namespace_name", namespace_name) + _setter("namespace_name", namespace_name) if owner_account is not None: - pulumi.set(__self__, "owner_account", owner_account) + _setter("owner_account", owner_account) if retention_period is not None: - pulumi.set(__self__, "retention_period", retention_period) + _setter("retention_period", retention_period) if snapshot_name is not None: - pulumi.set(__self__, "snapshot_name", snapshot_name) + _setter("snapshot_name", snapshot_name) @property @pulumi.getter(name="accountsWithProvisionedRestoreAccesses") @@ -308,6 +380,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SnapshotArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshiftserverless/usage_limit.py b/sdk/python/pulumi_aws/redshiftserverless/usage_limit.py index bc5e45ee6a3..d766a8ed376 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/usage_limit.py +++ b/sdk/python/pulumi_aws/redshiftserverless/usage_limit.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UsageLimitArgs', 'UsageLimit'] @@ -27,13 +27,44 @@ def __init__(__self__, *, :param pulumi.Input[str] breach_action: The action that Amazon Redshift Serverless takes when the limit is reached. Valid values are `log`, `emit-metric`, and `deactivate`. The default is `log`. :param pulumi.Input[str] period: The time period that the amount applies to. A weekly period begins on Sunday. Valid values are `daily`, `weekly`, and `monthly`. The default is `monthly`. """ - pulumi.set(__self__, "amount", amount) - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "usage_type", usage_type) + UsageLimitArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount=amount, + resource_arn=resource_arn, + usage_type=usage_type, + breach_action=breach_action, + period=period, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount: Optional[pulumi.Input[int]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + usage_type: Optional[pulumi.Input[str]] = None, + breach_action: Optional[pulumi.Input[str]] = None, + period: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amount is None: + raise TypeError("Missing 'amount' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if usage_type is None and 'usageType' in kwargs: + usage_type = kwargs['usageType'] + if usage_type is None: + raise TypeError("Missing 'usage_type' argument") + if breach_action is None and 'breachAction' in kwargs: + breach_action = kwargs['breachAction'] + + _setter("amount", amount) + _setter("resource_arn", resource_arn) + _setter("usage_type", usage_type) if breach_action is not None: - pulumi.set(__self__, "breach_action", breach_action) + _setter("breach_action", breach_action) if period is not None: - pulumi.set(__self__, "period", period) + _setter("period", period) @property @pulumi.getter @@ -114,18 +145,45 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the Amazon Redshift Serverless resource to create the usage limit for. :param pulumi.Input[str] usage_type: The type of Amazon Redshift Serverless usage to create a usage limit for. Valid values are `serverless-compute` or `cross-region-datasharing`. """ + _UsageLimitState._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount=amount, + arn=arn, + breach_action=breach_action, + period=period, + resource_arn=resource_arn, + usage_type=usage_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount: Optional[pulumi.Input[int]] = None, + arn: Optional[pulumi.Input[str]] = None, + breach_action: Optional[pulumi.Input[str]] = None, + period: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + usage_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if breach_action is None and 'breachAction' in kwargs: + breach_action = kwargs['breachAction'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if usage_type is None and 'usageType' in kwargs: + usage_type = kwargs['usageType'] + if amount is not None: - pulumi.set(__self__, "amount", amount) + _setter("amount", amount) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if breach_action is not None: - pulumi.set(__self__, "breach_action", breach_action) + _setter("breach_action", breach_action) if period is not None: - pulumi.set(__self__, "period", period) + _setter("period", period) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if usage_type is not None: - pulumi.set(__self__, "usage_type", usage_type) + _setter("usage_type", usage_type) @property @pulumi.getter @@ -287,6 +345,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UsageLimitArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/redshiftserverless/workgroup.py b/sdk/python/pulumi_aws/redshiftserverless/workgroup.py index 90a72201077..26706711a38 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/workgroup.py +++ b/sdk/python/pulumi_aws/redshiftserverless/workgroup.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,22 +39,69 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: An array of VPC subnet IDs to associate with the workgroup. When set, must contain at least three subnets spanning three Availability Zones. A minimum number of IP addresses is required and scales with the Base Capacity. For more information, see the following [AWS document](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-known-issues.html). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "namespace_name", namespace_name) - pulumi.set(__self__, "workgroup_name", workgroup_name) + WorkgroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace_name=namespace_name, + workgroup_name=workgroup_name, + base_capacity=base_capacity, + config_parameters=config_parameters, + enhanced_vpc_routing=enhanced_vpc_routing, + publicly_accessible=publicly_accessible, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace_name: Optional[pulumi.Input[str]] = None, + workgroup_name: Optional[pulumi.Input[str]] = None, + base_capacity: Optional[pulumi.Input[int]] = None, + config_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['WorkgroupConfigParameterArgs']]]] = None, + enhanced_vpc_routing: Optional[pulumi.Input[bool]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace_name is None and 'namespaceName' in kwargs: + namespace_name = kwargs['namespaceName'] + if namespace_name is None: + raise TypeError("Missing 'namespace_name' argument") + if workgroup_name is None and 'workgroupName' in kwargs: + workgroup_name = kwargs['workgroupName'] + if workgroup_name is None: + raise TypeError("Missing 'workgroup_name' argument") + if base_capacity is None and 'baseCapacity' in kwargs: + base_capacity = kwargs['baseCapacity'] + if config_parameters is None and 'configParameters' in kwargs: + config_parameters = kwargs['configParameters'] + if enhanced_vpc_routing is None and 'enhancedVpcRouting' in kwargs: + enhanced_vpc_routing = kwargs['enhancedVpcRouting'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + + _setter("namespace_name", namespace_name) + _setter("workgroup_name", workgroup_name) if base_capacity is not None: - pulumi.set(__self__, "base_capacity", base_capacity) + _setter("base_capacity", base_capacity) if config_parameters is not None: - pulumi.set(__self__, "config_parameters", config_parameters) + _setter("config_parameters", config_parameters) if enhanced_vpc_routing is not None: - pulumi.set(__self__, "enhanced_vpc_routing", enhanced_vpc_routing) + _setter("enhanced_vpc_routing", enhanced_vpc_routing) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="namespaceName") @@ -201,35 +248,90 @@ def __init__(__self__, *, The following arguments are optional: """ + _WorkgroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + base_capacity=base_capacity, + config_parameters=config_parameters, + endpoints=endpoints, + enhanced_vpc_routing=enhanced_vpc_routing, + namespace_name=namespace_name, + publicly_accessible=publicly_accessible, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + workgroup_id=workgroup_id, + workgroup_name=workgroup_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + base_capacity: Optional[pulumi.Input[int]] = None, + config_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['WorkgroupConfigParameterArgs']]]] = None, + endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['WorkgroupEndpointArgs']]]] = None, + enhanced_vpc_routing: Optional[pulumi.Input[bool]] = None, + namespace_name: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workgroup_id: Optional[pulumi.Input[str]] = None, + workgroup_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_capacity is None and 'baseCapacity' in kwargs: + base_capacity = kwargs['baseCapacity'] + if config_parameters is None and 'configParameters' in kwargs: + config_parameters = kwargs['configParameters'] + if enhanced_vpc_routing is None and 'enhancedVpcRouting' in kwargs: + enhanced_vpc_routing = kwargs['enhancedVpcRouting'] + if namespace_name is None and 'namespaceName' in kwargs: + namespace_name = kwargs['namespaceName'] + if publicly_accessible is None and 'publiclyAccessible' in kwargs: + publicly_accessible = kwargs['publiclyAccessible'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if workgroup_id is None and 'workgroupId' in kwargs: + workgroup_id = kwargs['workgroupId'] + if workgroup_name is None and 'workgroupName' in kwargs: + workgroup_name = kwargs['workgroupName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if base_capacity is not None: - pulumi.set(__self__, "base_capacity", base_capacity) + _setter("base_capacity", base_capacity) if config_parameters is not None: - pulumi.set(__self__, "config_parameters", config_parameters) + _setter("config_parameters", config_parameters) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if enhanced_vpc_routing is not None: - pulumi.set(__self__, "enhanced_vpc_routing", enhanced_vpc_routing) + _setter("enhanced_vpc_routing", enhanced_vpc_routing) if namespace_name is not None: - pulumi.set(__self__, "namespace_name", namespace_name) + _setter("namespace_name", namespace_name) if publicly_accessible is not None: - pulumi.set(__self__, "publicly_accessible", publicly_accessible) + _setter("publicly_accessible", publicly_accessible) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if workgroup_id is not None: - pulumi.set(__self__, "workgroup_id", workgroup_id) + _setter("workgroup_id", workgroup_id) if workgroup_name is not None: - pulumi.set(__self__, "workgroup_name", workgroup_name) + _setter("workgroup_name", workgroup_name) @property @pulumi.getter @@ -482,6 +584,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkgroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/resourceexplorer/_inputs.py b/sdk/python/pulumi_aws/resourceexplorer/_inputs.py index 81f2d735cc9..4c260153b61 100644 --- a/sdk/python/pulumi_aws/resourceexplorer/_inputs.py +++ b/sdk/python/pulumi_aws/resourceexplorer/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -21,12 +21,27 @@ def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, update: Optional[pulumi.Input[str]] = None): + IndexTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -63,7 +78,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] filter_string: The string that contains the search keywords, prefixes, and operators to control the results that can be returned by a search operation. For more details, see [Search query syntax](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). """ - pulumi.set(__self__, "filter_string", filter_string) + ViewFiltersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter_string=filter_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter_string: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter_string is None and 'filterString' in kwargs: + filter_string = kwargs['filterString'] + if filter_string is None: + raise TypeError("Missing 'filter_string' argument") + + _setter("filter_string", filter_string) @property @pulumi.getter(name="filterString") @@ -85,7 +115,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the property that is included in this view. Valid values: `tags`. """ - pulumi.set(__self__, "name", name) + ViewIncludedPropertyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/resourceexplorer/index.py b/sdk/python/pulumi_aws/resourceexplorer/index.py index 54abbc284da..e7fa0a246a0 100644 --- a/sdk/python/pulumi_aws/resourceexplorer/index.py +++ b/sdk/python/pulumi_aws/resourceexplorer/index.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -24,11 +24,28 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of the index. Valid values: `AGGREGATOR`, `LOCAL`. To understand the difference between `LOCAL` and `AGGREGATOR`, see the [_AWS Resource Explorer User Guide_](https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html). :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. """ - pulumi.set(__self__, "type", type) + IndexArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + tags=tags, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['IndexTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -79,19 +96,40 @@ def __init__(__self__, *, :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] type: The type of the index. Valid values: `AGGREGATOR`, `LOCAL`. To understand the difference between `LOCAL` and `AGGREGATOR`, see the [_AWS Resource Explorer User Guide_](https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html). """ + _IndexState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + tags=tags, + tags_all=tags_all, + timeouts=timeouts, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['IndexTimeoutsArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -224,6 +262,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IndexArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -242,6 +284,7 @@ def _internal_init(__self__, __props__ = IndexArgs.__new__(IndexArgs) __props__.__dict__["tags"] = tags + timeouts = _utilities.configure(timeouts, IndexTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts if type is None and not opts.urn: raise TypeError("Missing required property 'type'") diff --git a/sdk/python/pulumi_aws/resourceexplorer/outputs.py b/sdk/python/pulumi_aws/resourceexplorer/outputs.py index 89a7307f890..166699ffd39 100644 --- a/sdk/python/pulumi_aws/resourceexplorer/outputs.py +++ b/sdk/python/pulumi_aws/resourceexplorer/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -21,12 +21,27 @@ def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, update: Optional[str] = None): + IndexTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -68,7 +83,22 @@ def __init__(__self__, *, """ :param str filter_string: The string that contains the search keywords, prefixes, and operators to control the results that can be returned by a search operation. For more details, see [Search query syntax](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). """ - pulumi.set(__self__, "filter_string", filter_string) + ViewFilters._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter_string=filter_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter_string: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter_string is None and 'filterString' in kwargs: + filter_string = kwargs['filterString'] + if filter_string is None: + raise TypeError("Missing 'filter_string' argument") + + _setter("filter_string", filter_string) @property @pulumi.getter(name="filterString") @@ -86,7 +116,20 @@ def __init__(__self__, *, """ :param str name: The name of the property that is included in this view. Valid values: `tags`. """ - pulumi.set(__self__, "name", name) + ViewIncludedProperty._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/resourceexplorer/view.py b/sdk/python/pulumi_aws/resourceexplorer/view.py index f57a68cd0ff..4698c73b437 100644 --- a/sdk/python/pulumi_aws/resourceexplorer/view.py +++ b/sdk/python/pulumi_aws/resourceexplorer/view.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,16 +29,39 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the view. The name must be no more than 64 characters long, and can include letters, digits, and the dash (-) character. The name must be unique within its AWS Region. :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. """ + ViewArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_view=default_view, + filters=filters, + included_properties=included_properties, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_view: Optional[pulumi.Input[bool]] = None, + filters: Optional[pulumi.Input['ViewFiltersArgs']] = None, + included_properties: Optional[pulumi.Input[Sequence[pulumi.Input['ViewIncludedPropertyArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_view is None and 'defaultView' in kwargs: + default_view = kwargs['defaultView'] + if included_properties is None and 'includedProperties' in kwargs: + included_properties = kwargs['includedProperties'] + if default_view is not None: - pulumi.set(__self__, "default_view", default_view) + _setter("default_view", default_view) if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) if included_properties is not None: - pulumi.set(__self__, "included_properties", included_properties) + _setter("included_properties", included_properties) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultView") @@ -121,23 +144,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ViewState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_view=default_view, + filters=filters, + included_properties=included_properties, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_view: Optional[pulumi.Input[bool]] = None, + filters: Optional[pulumi.Input['ViewFiltersArgs']] = None, + included_properties: Optional[pulumi.Input[Sequence[pulumi.Input['ViewIncludedPropertyArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_view is None and 'defaultView' in kwargs: + default_view = kwargs['defaultView'] + if included_properties is None and 'includedProperties' in kwargs: + included_properties = kwargs['includedProperties'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_view is not None: - pulumi.set(__self__, "default_view", default_view) + _setter("default_view", default_view) if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) if included_properties is not None: - pulumi.set(__self__, "included_properties", included_properties) + _setter("included_properties", included_properties) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -318,6 +370,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ViewArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -338,6 +394,7 @@ def _internal_init(__self__, __props__ = ViewArgs.__new__(ViewArgs) __props__.__dict__["default_view"] = default_view + filters = _utilities.configure(filters, ViewFiltersArgs, True) __props__.__dict__["filters"] = filters __props__.__dict__["included_properties"] = included_properties __props__.__dict__["name"] = name diff --git a/sdk/python/pulumi_aws/resourcegroups/_inputs.py b/sdk/python/pulumi_aws/resourcegroups/_inputs.py index 175b1836845..16e4c762bb3 100644 --- a/sdk/python/pulumi_aws/resourcegroups/_inputs.py +++ b/sdk/python/pulumi_aws/resourcegroups/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,9 +24,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Specifies the type of group configuration item. :param pulumi.Input[Sequence[pulumi.Input['GroupConfigurationParameterArgs']]] parameters: A collection of parameters for this group configuration item. See below for details. """ - pulumi.set(__self__, "type", type) + GroupConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GroupConfigurationParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -62,8 +77,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the group configuration parameter. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The value or values to be used for the specified parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GroupConfigurationParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -99,9 +131,24 @@ def __init__(__self__, *, :param pulumi.Input[str] query: The resource query as a JSON string. :param pulumi.Input[str] type: The type of the resource query. Defaults to `TAG_FILTERS_1_0`. """ - pulumi.set(__self__, "query", query) + GroupResourceQueryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + query=query, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query is None: + raise TypeError("Missing 'query' argument") + + _setter("query", query) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/resourcegroups/group.py b/sdk/python/pulumi_aws/resourcegroups/group.py index 01456c2bfa9..352b6fd67f4 100644 --- a/sdk/python/pulumi_aws/resourcegroups/group.py +++ b/sdk/python/pulumi_aws/resourcegroups/group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,16 +29,37 @@ def __init__(__self__, *, :param pulumi.Input['GroupResourceQueryArgs'] resource_query: A `resource_query` block. Resource queries are documented below. :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. """ + GroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configurations=configurations, + description=description, + name=name, + resource_query=resource_query, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configurations: Optional[pulumi.Input[Sequence[pulumi.Input['GroupConfigurationArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_query: Optional[pulumi.Input['GroupResourceQueryArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_query is None and 'resourceQuery' in kwargs: + resource_query = kwargs['resourceQuery'] + if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_query is not None: - pulumi.set(__self__, "resource_query", resource_query) + _setter("resource_query", resource_query) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -121,23 +142,50 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _GroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + configurations=configurations, + description=description, + name=name, + resource_query=resource_query, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + configurations: Optional[pulumi.Input[Sequence[pulumi.Input['GroupConfigurationArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_query: Optional[pulumi.Input['GroupResourceQueryArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_query is None and 'resourceQuery' in kwargs: + resource_query = kwargs['resourceQuery'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configurations is not None: - pulumi.set(__self__, "configurations", configurations) + _setter("configurations", configurations) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_query is not None: - pulumi.set(__self__, "resource_query", resource_query) + _setter("resource_query", resource_query) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -330,6 +378,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -352,6 +404,7 @@ def _internal_init(__self__, __props__.__dict__["configurations"] = configurations __props__.__dict__["description"] = description __props__.__dict__["name"] = name + resource_query = _utilities.configure(resource_query, GroupResourceQueryArgs, True) __props__.__dict__["resource_query"] = resource_query __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/resourcegroups/outputs.py b/sdk/python/pulumi_aws/resourcegroups/outputs.py index f83ccd7aae3..748fc4b15f1 100644 --- a/sdk/python/pulumi_aws/resourcegroups/outputs.py +++ b/sdk/python/pulumi_aws/resourcegroups/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -25,9 +25,24 @@ def __init__(__self__, *, :param str type: Specifies the type of group configuration item. :param Sequence['GroupConfigurationParameterArgs'] parameters: A collection of parameters for this group configuration item. See below for details. """ - pulumi.set(__self__, "type", type) + GroupConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + parameters: Optional[Sequence['outputs.GroupConfigurationParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter @@ -55,8 +70,25 @@ def __init__(__self__, *, :param str name: The name of the group configuration parameter. :param Sequence[str] values: The value or values to be used for the specified parameter. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GroupConfigurationParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -84,9 +116,24 @@ def __init__(__self__, *, :param str query: The resource query as a JSON string. :param str type: The type of the resource query. Defaults to `TAG_FILTERS_1_0`. """ - pulumi.set(__self__, "query", query) + GroupResourceQuery._configure( + lambda key, value: pulumi.set(__self__, key, value), + query=query, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + query: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query is None: + raise TypeError("Missing 'query' argument") + + _setter("query", query) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/resourcegroups/resource.py b/sdk/python/pulumi_aws/resourcegroups/resource.py index e26e0c3ff6e..029ad7df6ec 100644 --- a/sdk/python/pulumi_aws/resourcegroups/resource.py +++ b/sdk/python/pulumi_aws/resourcegroups/resource.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourceArgs', 'Resource'] @@ -23,8 +23,29 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] resource_arn: The ARN of the resource to be added to the group. """ - pulumi.set(__self__, "group_arn", group_arn) - pulumi.set(__self__, "resource_arn", resource_arn) + ResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_arn=group_arn, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_arn: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_arn is None and 'groupArn' in kwargs: + group_arn = kwargs['groupArn'] + if group_arn is None: + raise TypeError("Missing 'group_arn' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("group_arn", group_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="groupArn") @@ -67,12 +88,33 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The ARN of the resource to be added to the group. :param pulumi.Input[str] resource_type: The resource type of a resource, such as `AWS::EC2::Instance`. """ + _ResourceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + group_arn=group_arn, + resource_arn=resource_arn, + resource_type=resource_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + group_arn: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_arn is None and 'groupArn' in kwargs: + group_arn = kwargs['groupArn'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if group_arn is not None: - pulumi.set(__self__, "group_arn", group_arn) + _setter("group_arn", group_arn) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) @property @pulumi.getter(name="groupArn") @@ -186,6 +228,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/resourcegroupstaggingapi/_inputs.py b/sdk/python/pulumi_aws/resourcegroupstaggingapi/_inputs.py index 4ec1b2e8f9f..c3f85a8ec26 100644 --- a/sdk/python/pulumi_aws/resourcegroupstaggingapi/_inputs.py +++ b/sdk/python/pulumi_aws/resourcegroupstaggingapi/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,9 +22,24 @@ def __init__(__self__, *, :param str key: One part of a key-value pair that makes up a tag. :param Sequence[str] values: Optional part of a key-value pair that make up a tag. """ - pulumi.set(__self__, "key", key) + GetResourcesTagFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/resourcegroupstaggingapi/get_resources.py b/sdk/python/pulumi_aws/resourcegroupstaggingapi/get_resources.py index e3631938304..a017a49e2d3 100644 --- a/sdk/python/pulumi_aws/resourcegroupstaggingapi/get_resources.py +++ b/sdk/python/pulumi_aws/resourcegroupstaggingapi/get_resources.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/resourcegroupstaggingapi/outputs.py b/sdk/python/pulumi_aws/resourcegroupstaggingapi/outputs.py index 7ad2877b4f7..72afaf36d7d 100644 --- a/sdk/python/pulumi_aws/resourcegroupstaggingapi/outputs.py +++ b/sdk/python/pulumi_aws/resourcegroupstaggingapi/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -27,9 +27,34 @@ def __init__(__self__, *, :param str resource_arn: ARN of the resource. :param Mapping[str, str] tags: Map of tags assigned to the resource. """ - pulumi.set(__self__, "compliance_details", compliance_details) - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "tags", tags) + GetResourcesResourceTagMappingListResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + compliance_details=compliance_details, + resource_arn=resource_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compliance_details: Optional[Sequence['outputs.GetResourcesResourceTagMappingListComplianceDetailResult']] = None, + resource_arn: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compliance_details is None and 'complianceDetails' in kwargs: + compliance_details = kwargs['complianceDetails'] + if compliance_details is None: + raise TypeError("Missing 'compliance_details' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("compliance_details", compliance_details) + _setter("resource_arn", resource_arn) + _setter("tags", tags) @property @pulumi.getter(name="complianceDetails") @@ -67,9 +92,36 @@ def __init__(__self__, *, * `keys_with_noncompliant_values ` - Set of tag keys with non-compliant tag values. * `non_compliant_keys ` - Set of non-compliant tag keys. """ - pulumi.set(__self__, "compliance_status", compliance_status) - pulumi.set(__self__, "keys_with_noncompliant_values", keys_with_noncompliant_values) - pulumi.set(__self__, "non_compliant_keys", non_compliant_keys) + GetResourcesResourceTagMappingListComplianceDetailResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + compliance_status=compliance_status, + keys_with_noncompliant_values=keys_with_noncompliant_values, + non_compliant_keys=non_compliant_keys, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compliance_status: Optional[bool] = None, + keys_with_noncompliant_values: Optional[Sequence[str]] = None, + non_compliant_keys: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compliance_status is None and 'complianceStatus' in kwargs: + compliance_status = kwargs['complianceStatus'] + if compliance_status is None: + raise TypeError("Missing 'compliance_status' argument") + if keys_with_noncompliant_values is None and 'keysWithNoncompliantValues' in kwargs: + keys_with_noncompliant_values = kwargs['keysWithNoncompliantValues'] + if keys_with_noncompliant_values is None: + raise TypeError("Missing 'keys_with_noncompliant_values' argument") + if non_compliant_keys is None and 'nonCompliantKeys' in kwargs: + non_compliant_keys = kwargs['nonCompliantKeys'] + if non_compliant_keys is None: + raise TypeError("Missing 'non_compliant_keys' argument") + + _setter("compliance_status", compliance_status) + _setter("keys_with_noncompliant_values", keys_with_noncompliant_values) + _setter("non_compliant_keys", non_compliant_keys) @property @pulumi.getter(name="complianceStatus") @@ -101,9 +153,24 @@ def __init__(__self__, *, :param str key: One part of a key-value pair that makes up a tag. :param Sequence[str] values: Optional part of a key-value pair that make up a tag. """ - pulumi.set(__self__, "key", key) + GetResourcesTagFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("key", key) if values is not None: - pulumi.set(__self__, "values", values) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/rolesanywhere/_inputs.py b/sdk/python/pulumi_aws/rolesanywhere/_inputs.py index ba21ca33cd4..b14f0b9f1ab 100644 --- a/sdk/python/pulumi_aws/rolesanywhere/_inputs.py +++ b/sdk/python/pulumi_aws/rolesanywhere/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input['TrustAnchorSourceSourceDataArgs'] source_data: The data denoting the source of trust, documented below :param pulumi.Input[str] source_type: The type of the source of trust. Must be either `AWS_ACM_PCA` or `CERTIFICATE_BUNDLE`. """ - pulumi.set(__self__, "source_data", source_data) - pulumi.set(__self__, "source_type", source_type) + TrustAnchorSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_data=source_data, + source_type=source_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_data: Optional[pulumi.Input['TrustAnchorSourceSourceDataArgs']] = None, + source_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_data is None and 'sourceData' in kwargs: + source_data = kwargs['sourceData'] + if source_data is None: + raise TypeError("Missing 'source_data' argument") + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if source_type is None: + raise TypeError("Missing 'source_type' argument") + + _setter("source_data", source_data) + _setter("source_type", source_type) @property @pulumi.getter(name="sourceData") @@ -59,10 +80,27 @@ def __init__(__self__, *, """ :param pulumi.Input[str] acm_pca_arn: The ARN of an ACM Private Certificate Authority. """ + TrustAnchorSourceSourceDataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm_pca_arn=acm_pca_arn, + x509_certificate_data=x509_certificate_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm_pca_arn: Optional[pulumi.Input[str]] = None, + x509_certificate_data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm_pca_arn is None and 'acmPcaArn' in kwargs: + acm_pca_arn = kwargs['acmPcaArn'] + if x509_certificate_data is None and 'x509CertificateData' in kwargs: + x509_certificate_data = kwargs['x509CertificateData'] + if acm_pca_arn is not None: - pulumi.set(__self__, "acm_pca_arn", acm_pca_arn) + _setter("acm_pca_arn", acm_pca_arn) if x509_certificate_data is not None: - pulumi.set(__self__, "x509_certificate_data", x509_certificate_data) + _setter("x509_certificate_data", x509_certificate_data) @property @pulumi.getter(name="acmPcaArn") diff --git a/sdk/python/pulumi_aws/rolesanywhere/outputs.py b/sdk/python/pulumi_aws/rolesanywhere/outputs.py index 03b61a204df..78fbfd7f7b2 100644 --- a/sdk/python/pulumi_aws/rolesanywhere/outputs.py +++ b/sdk/python/pulumi_aws/rolesanywhere/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -43,8 +43,29 @@ def __init__(__self__, *, :param 'TrustAnchorSourceSourceDataArgs' source_data: The data denoting the source of trust, documented below :param str source_type: The type of the source of trust. Must be either `AWS_ACM_PCA` or `CERTIFICATE_BUNDLE`. """ - pulumi.set(__self__, "source_data", source_data) - pulumi.set(__self__, "source_type", source_type) + TrustAnchorSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_data=source_data, + source_type=source_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_data: Optional['outputs.TrustAnchorSourceSourceData'] = None, + source_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_data is None and 'sourceData' in kwargs: + source_data = kwargs['sourceData'] + if source_data is None: + raise TypeError("Missing 'source_data' argument") + if source_type is None and 'sourceType' in kwargs: + source_type = kwargs['sourceType'] + if source_type is None: + raise TypeError("Missing 'source_type' argument") + + _setter("source_data", source_data) + _setter("source_type", source_type) @property @pulumi.getter(name="sourceData") @@ -90,10 +111,27 @@ def __init__(__self__, *, """ :param str acm_pca_arn: The ARN of an ACM Private Certificate Authority. """ + TrustAnchorSourceSourceData._configure( + lambda key, value: pulumi.set(__self__, key, value), + acm_pca_arn=acm_pca_arn, + x509_certificate_data=x509_certificate_data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acm_pca_arn: Optional[str] = None, + x509_certificate_data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acm_pca_arn is None and 'acmPcaArn' in kwargs: + acm_pca_arn = kwargs['acmPcaArn'] + if x509_certificate_data is None and 'x509CertificateData' in kwargs: + x509_certificate_data = kwargs['x509CertificateData'] + if acm_pca_arn is not None: - pulumi.set(__self__, "acm_pca_arn", acm_pca_arn) + _setter("acm_pca_arn", acm_pca_arn) if x509_certificate_data is not None: - pulumi.set(__self__, "x509_certificate_data", x509_certificate_data) + _setter("x509_certificate_data", x509_certificate_data) @property @pulumi.getter(name="acmPcaArn") diff --git a/sdk/python/pulumi_aws/rolesanywhere/profile.py b/sdk/python/pulumi_aws/rolesanywhere/profile.py index 0fdb2aa1d17..68558855ca1 100644 --- a/sdk/python/pulumi_aws/rolesanywhere/profile.py +++ b/sdk/python/pulumi_aws/rolesanywhere/profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProfileArgs', 'Profile'] @@ -33,21 +33,58 @@ def __init__(__self__, *, :param pulumi.Input[str] session_policy: A session policy that applies to the trust boundary of the vended session credentials. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "role_arns", role_arns) + ProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arns=role_arns, + duration_seconds=duration_seconds, + enabled=enabled, + managed_policy_arns=managed_policy_arns, + name=name, + require_instance_properties=require_instance_properties, + session_policy=session_policy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + duration_seconds: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + managed_policy_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + require_instance_properties: Optional[pulumi.Input[bool]] = None, + session_policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arns is None and 'roleArns' in kwargs: + role_arns = kwargs['roleArns'] + if role_arns is None: + raise TypeError("Missing 'role_arns' argument") + if duration_seconds is None and 'durationSeconds' in kwargs: + duration_seconds = kwargs['durationSeconds'] + if managed_policy_arns is None and 'managedPolicyArns' in kwargs: + managed_policy_arns = kwargs['managedPolicyArns'] + if require_instance_properties is None and 'requireInstanceProperties' in kwargs: + require_instance_properties = kwargs['requireInstanceProperties'] + if session_policy is None and 'sessionPolicy' in kwargs: + session_policy = kwargs['sessionPolicy'] + + _setter("role_arns", role_arns) if duration_seconds is not None: - pulumi.set(__self__, "duration_seconds", duration_seconds) + _setter("duration_seconds", duration_seconds) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if managed_policy_arns is not None: - pulumi.set(__self__, "managed_policy_arns", managed_policy_arns) + _setter("managed_policy_arns", managed_policy_arns) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if require_instance_properties is not None: - pulumi.set(__self__, "require_instance_properties", require_instance_properties) + _setter("require_instance_properties", require_instance_properties) if session_policy is not None: - pulumi.set(__self__, "session_policy", session_policy) + _setter("session_policy", session_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="roleArns") @@ -172,29 +209,70 @@ def __init__(__self__, *, :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. """ + _ProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + duration_seconds=duration_seconds, + enabled=enabled, + managed_policy_arns=managed_policy_arns, + name=name, + require_instance_properties=require_instance_properties, + role_arns=role_arns, + session_policy=session_policy, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + duration_seconds: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + managed_policy_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + require_instance_properties: Optional[pulumi.Input[bool]] = None, + role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + session_policy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration_seconds is None and 'durationSeconds' in kwargs: + duration_seconds = kwargs['durationSeconds'] + if managed_policy_arns is None and 'managedPolicyArns' in kwargs: + managed_policy_arns = kwargs['managedPolicyArns'] + if require_instance_properties is None and 'requireInstanceProperties' in kwargs: + require_instance_properties = kwargs['requireInstanceProperties'] + if role_arns is None and 'roleArns' in kwargs: + role_arns = kwargs['roleArns'] + if session_policy is None and 'sessionPolicy' in kwargs: + session_policy = kwargs['sessionPolicy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if duration_seconds is not None: - pulumi.set(__self__, "duration_seconds", duration_seconds) + _setter("duration_seconds", duration_seconds) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if managed_policy_arns is not None: - pulumi.set(__self__, "managed_policy_arns", managed_policy_arns) + _setter("managed_policy_arns", managed_policy_arns) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if require_instance_properties is not None: - pulumi.set(__self__, "require_instance_properties", require_instance_properties) + _setter("require_instance_properties", require_instance_properties) if role_arns is not None: - pulumi.set(__self__, "role_arns", role_arns) + _setter("role_arns", role_arns) if session_policy is not None: - pulumi.set(__self__, "session_policy", session_policy) + _setter("session_policy", session_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -437,6 +515,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rolesanywhere/trust_anchor.py b/sdk/python/pulumi_aws/rolesanywhere/trust_anchor.py index f78366a0bad..23b08044d6c 100644 --- a/sdk/python/pulumi_aws/rolesanywhere/trust_anchor.py +++ b/sdk/python/pulumi_aws/rolesanywhere/trust_anchor.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Trust Anchor. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "source", source) + TrustAnchorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + enabled=enabled, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[pulumi.Input['TrustAnchorSourceArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("source", source) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -102,21 +121,44 @@ def __init__(__self__, *, :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. """ + _TrustAnchorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + enabled=enabled, + name=name, + source=source, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input['TrustAnchorSourceArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -327,6 +369,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrustAnchorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -347,6 +393,7 @@ def _internal_init(__self__, __props__.__dict__["enabled"] = enabled __props__.__dict__["name"] = name + source = _utilities.configure(source, TrustAnchorSourceArgs, True) if source is None and not opts.urn: raise TypeError("Missing required property 'source'") __props__.__dict__["source"] = source diff --git a/sdk/python/pulumi_aws/route53/_inputs.py b/sdk/python/pulumi_aws/route53/_inputs.py index 6f37cd9a2e3..238e7e0a799 100644 --- a/sdk/python/pulumi_aws/route53/_inputs.py +++ b/sdk/python/pulumi_aws/route53/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -43,9 +43,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: DNS domain name for a CloudFront distribution, S3 bucket, ELB, or another resource record set in this hosted zone. :param pulumi.Input[str] zone_id: Hosted zone ID for a CloudFront distribution, S3 bucket, ELB, or Route 53 hosted zone. See `resource_elb.zone_id` for example. """ - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "zone_id", zone_id) + RecordAliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + evaluate_target_health=evaluate_target_health, + name=name, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + evaluate_target_health: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if evaluate_target_health is None: + raise TypeError("Missing 'evaluate_target_health' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if zone_id is None: + raise TypeError("Missing 'zone_id' argument") + + _setter("evaluate_target_health", evaluate_target_health) + _setter("name", name) + _setter("zone_id", zone_id) @property @pulumi.getter(name="evaluateTargetHealth") @@ -93,8 +118,29 @@ def __init__(__self__, *, :param pulumi.Input[str] collection_id: The CIDR collection ID. See the `route53.CidrCollection` resource for more details. :param pulumi.Input[str] location_name: The CIDR collection location name. See the `route53.CidrLocation` resource for more details. A `location_name` with an asterisk `"*"` can be used to create a default CIDR record. `collection_id` is still required for default record. """ - pulumi.set(__self__, "collection_id", collection_id) - pulumi.set(__self__, "location_name", location_name) + RecordCidrRoutingPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + collection_id=collection_id, + location_name=location_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + collection_id: Optional[pulumi.Input[str]] = None, + location_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if collection_id is None and 'collectionId' in kwargs: + collection_id = kwargs['collectionId'] + if collection_id is None: + raise TypeError("Missing 'collection_id' argument") + if location_name is None and 'locationName' in kwargs: + location_name = kwargs['locationName'] + if location_name is None: + raise TypeError("Missing 'location_name' argument") + + _setter("collection_id", collection_id) + _setter("location_name", location_name) @property @pulumi.getter(name="collectionId") @@ -128,7 +174,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] type: `PRIMARY` or `SECONDARY`. A `PRIMARY` record will be served if its healthcheck is passing, otherwise the `SECONDARY` will be served. See http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html#dns-failover-failover-rrsets """ - pulumi.set(__self__, "type", type) + RecordFailoverRoutingPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -154,12 +213,27 @@ def __init__(__self__, *, :param pulumi.Input[str] country: A two-character country code or `*` to indicate a default resource record set. :param pulumi.Input[str] subdivision: A subdivision code for a country. """ + RecordGeolocationRoutingPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + continent=continent, + country=country, + subdivision=subdivision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + continent: Optional[pulumi.Input[str]] = None, + country: Optional[pulumi.Input[str]] = None, + subdivision: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if continent is not None: - pulumi.set(__self__, "continent", continent) + _setter("continent", continent) if country is not None: - pulumi.set(__self__, "country", country) + _setter("country", country) if subdivision is not None: - pulumi.set(__self__, "subdivision", subdivision) + _setter("subdivision", subdivision) @property @pulumi.getter @@ -205,7 +279,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] region: An AWS region from which to measure latency. See http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-latency """ - pulumi.set(__self__, "region", region) + RecordLatencyRoutingPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("region", region) @property @pulumi.getter @@ -227,7 +314,20 @@ def __init__(__self__, *, """ :param pulumi.Input[int] weight: A numeric value indicating the relative weight of the record. See http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted. """ - pulumi.set(__self__, "weight", weight) + RecordWeightedRoutingPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("weight", weight) @property @pulumi.getter @@ -252,11 +352,32 @@ def __init__(__self__, *, :param pulumi.Input[str] subnet_id: The ID of the subnet that contains the IP address. :param pulumi.Input[str] ip: The IP address in the subnet that you want to use for DNS queries. """ - pulumi.set(__self__, "subnet_id", subnet_id) + ResolverEndpointIpAddressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + ip=ip, + ip_id=ip_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[pulumi.Input[str]] = None, + ip: Optional[pulumi.Input[str]] = None, + ip_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if ip_id is None and 'ipId' in kwargs: + ip_id = kwargs['ipId'] + + _setter("subnet_id", subnet_id) if ip is not None: - pulumi.set(__self__, "ip", ip) + _setter("ip", ip) if ip_id is not None: - pulumi.set(__self__, "ip_id", ip_id) + _setter("ip_id", ip_id) @property @pulumi.getter(name="subnetId") @@ -301,9 +422,24 @@ def __init__(__self__, *, :param pulumi.Input[str] ip: One IP address that you want to forward DNS queries to. You can specify only IPv4 addresses. :param pulumi.Input[int] port: The port at `ip` that you want to forward DNS queries to. Default value is `53` """ - pulumi.set(__self__, "ip", ip) + ResolverRuleTargetIpArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip=ip, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip is None: + raise TypeError("Missing 'ip' argument") + + _setter("ip", ip) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -339,9 +475,28 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: ID of the VPC to associate. :param pulumi.Input[str] vpc_region: Region of the VPC to associate. Defaults to AWS provider region. """ - pulumi.set(__self__, "vpc_id", vpc_id) + ZoneVpcArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + vpc_region=vpc_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + vpc_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if vpc_region is None and 'vpcRegion' in kwargs: + vpc_region = kwargs['vpcRegion'] + + _setter("vpc_id", vpc_id) if vpc_region is not None: - pulumi.set(__self__, "vpc_region", vpc_region) + _setter("vpc_region", vpc_region) @property @pulumi.getter(name="vpcId") @@ -376,8 +531,25 @@ def __init__(__self__, *, """ :param str name: The name of the query logging configuration. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetQueryLogConfigFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -406,8 +578,25 @@ class GetResolverEndpointFilterArgs: def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetResolverEndpointFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -441,13 +630,32 @@ def __init__(__self__, *, :param str type: Type of the endpoint. Valid values are `value` , `cloudfront` , `elastic-load-balancer`, `s3-website` :param str value: Value of the `type`. """ - pulumi.set(__self__, "id", id) + GetTrafficPolicyDocumentEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + region=region, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + region: Optional[str] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -519,21 +727,50 @@ def __init__(__self__, *, :param 'GetTrafficPolicyDocumentRuleSecondaryArgs' secondary: Configuration block for the rule or endpoint that you want to route traffic to whenever the primary resources are not available. Only valid for `failover` type. See below :param str type: Type of the rule. """ - pulumi.set(__self__, "id", id) + GetTrafficPolicyDocumentRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + geo_proximity_locations=geo_proximity_locations, + items=items, + locations=locations, + primary=primary, + regions=regions, + secondary=secondary, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + geo_proximity_locations: Optional[Sequence['GetTrafficPolicyDocumentRuleGeoProximityLocationArgs']] = None, + items: Optional[Sequence['GetTrafficPolicyDocumentRuleItemArgs']] = None, + locations: Optional[Sequence['GetTrafficPolicyDocumentRuleLocationArgs']] = None, + primary: Optional['GetTrafficPolicyDocumentRulePrimaryArgs'] = None, + regions: Optional[Sequence['GetTrafficPolicyDocumentRuleRegionArgs']] = None, + secondary: Optional['GetTrafficPolicyDocumentRuleSecondaryArgs'] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if geo_proximity_locations is None and 'geoProximityLocations' in kwargs: + geo_proximity_locations = kwargs['geoProximityLocations'] + + _setter("id", id) if geo_proximity_locations is not None: - pulumi.set(__self__, "geo_proximity_locations", geo_proximity_locations) + _setter("geo_proximity_locations", geo_proximity_locations) if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) if locations is not None: - pulumi.set(__self__, "locations", locations) + _setter("locations", locations) if primary is not None: - pulumi.set(__self__, "primary", primary) + _setter("primary", primary) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) if secondary is not None: - pulumi.set(__self__, "secondary", secondary) + _setter("secondary", secondary) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -653,22 +890,55 @@ def __init__(__self__, *, :param str region: If your endpoint is an AWS resource, specify the AWS Region that you created the resource in. :param str rule_reference: References to a rule. """ + GetTrafficPolicyDocumentRuleGeoProximityLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bias=bias, + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + latitude=latitude, + longitude=longitude, + region=region, + rule_reference=rule_reference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bias: Optional[str] = None, + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + latitude: Optional[str] = None, + longitude: Optional[str] = None, + region: Optional[str] = None, + rule_reference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if bias is not None: - pulumi.set(__self__, "bias", bias) + _setter("bias", bias) if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if latitude is not None: - pulumi.set(__self__, "latitude", latitude) + _setter("latitude", latitude) if longitude is not None: - pulumi.set(__self__, "longitude", longitude) + _setter("longitude", longitude) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) @property @pulumi.getter @@ -776,10 +1046,27 @@ def __init__(__self__, *, :param str endpoint_reference: References to an endpoint. :param str health_check: If you want to associate a health check with the endpoint or rule. """ + GetTrafficPolicyDocumentRuleItemArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_reference=endpoint_reference, + health_check=health_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_reference: Optional[str] = None, + health_check: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) @property @pulumi.getter(name="endpointReference") @@ -827,22 +1114,57 @@ def __init__(__self__, *, :param str rule_reference: References to a rule. :param str subdivision: Value of a subdivision. """ + GetTrafficPolicyDocumentRuleLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + continent=continent, + country=country, + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + is_default=is_default, + rule_reference=rule_reference, + subdivision=subdivision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + continent: Optional[str] = None, + country: Optional[str] = None, + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + is_default: Optional[bool] = None, + rule_reference: Optional[str] = None, + subdivision: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if is_default is None and 'isDefault' in kwargs: + is_default = kwargs['isDefault'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if continent is not None: - pulumi.set(__self__, "continent", continent) + _setter("continent", continent) if country is not None: - pulumi.set(__self__, "country", country) + _setter("country", country) if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if is_default is not None: - pulumi.set(__self__, "is_default", is_default) + _setter("is_default", is_default) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) if subdivision is not None: - pulumi.set(__self__, "subdivision", subdivision) + _setter("subdivision", subdivision) @property @pulumi.getter @@ -954,14 +1276,39 @@ def __init__(__self__, *, :param str health_check: If you want to associate a health check with the endpoint or rule. :param str rule_reference: References to a rule. """ + GetTrafficPolicyDocumentRulePrimaryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + rule_reference=rule_reference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + rule_reference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) @property @pulumi.getter(name="endpointReference") @@ -1027,16 +1374,43 @@ def __init__(__self__, *, :param str region: Region code for the AWS Region that you created the resource in. :param str rule_reference: References to a rule. """ + GetTrafficPolicyDocumentRuleRegionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + region=region, + rule_reference=rule_reference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + region: Optional[str] = None, + rule_reference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) @property @pulumi.getter(name="endpointReference") @@ -1112,14 +1486,39 @@ def __init__(__self__, *, :param str health_check: If you want to associate a health check with the endpoint or rule. :param str rule_reference: References to a rule. """ + GetTrafficPolicyDocumentRuleSecondaryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + rule_reference=rule_reference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + rule_reference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) @property @pulumi.getter(name="endpointReference") diff --git a/sdk/python/pulumi_aws/route53/cidr_collection.py b/sdk/python/pulumi_aws/route53/cidr_collection.py index af1272fb1fc..c63dbf4f89c 100644 --- a/sdk/python/pulumi_aws/route53/cidr_collection.py +++ b/sdk/python/pulumi_aws/route53/cidr_collection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CidrCollectionArgs', 'CidrCollection'] @@ -19,8 +19,19 @@ def __init__(__self__, *, The set of arguments for constructing a CidrCollection resource. :param pulumi.Input[str] name: Unique name for the CIDR collection. """ + CidrCollectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -47,12 +58,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Unique name for the CIDR collection. :param pulumi.Input[int] version: The lastest version of the CIDR collection. """ + _CidrCollectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -158,6 +184,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CidrCollectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/cidr_location.py b/sdk/python/pulumi_aws/route53/cidr_location.py index dd72d12b0ac..8052c58fb9c 100644 --- a/sdk/python/pulumi_aws/route53/cidr_location.py +++ b/sdk/python/pulumi_aws/route53/cidr_location.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CidrLocationArgs', 'CidrLocation'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] cidr_collection_id: The ID of the CIDR collection to update. :param pulumi.Input[str] name: Name for the CIDR location. """ - pulumi.set(__self__, "cidr_blocks", cidr_blocks) - pulumi.set(__self__, "cidr_collection_id", cidr_collection_id) + CidrLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_blocks=cidr_blocks, + cidr_collection_id=cidr_collection_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cidr_collection_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if cidr_blocks is None: + raise TypeError("Missing 'cidr_blocks' argument") + if cidr_collection_id is None and 'cidrCollectionId' in kwargs: + cidr_collection_id = kwargs['cidrCollectionId'] + if cidr_collection_id is None: + raise TypeError("Missing 'cidr_collection_id' argument") + + _setter("cidr_blocks", cidr_blocks) + _setter("cidr_collection_id", cidr_collection_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="cidrBlocks") @@ -77,12 +100,31 @@ def __init__(__self__, *, :param pulumi.Input[str] cidr_collection_id: The ID of the CIDR collection to update. :param pulumi.Input[str] name: Name for the CIDR location. """ + _CidrLocationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr_blocks=cidr_blocks, + cidr_collection_id=cidr_collection_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cidr_collection_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_blocks is None and 'cidrBlocks' in kwargs: + cidr_blocks = kwargs['cidrBlocks'] + if cidr_collection_id is None and 'cidrCollectionId' in kwargs: + cidr_collection_id = kwargs['cidrCollectionId'] + if cidr_blocks is not None: - pulumi.set(__self__, "cidr_blocks", cidr_blocks) + _setter("cidr_blocks", cidr_blocks) if cidr_collection_id is not None: - pulumi.set(__self__, "cidr_collection_id", cidr_collection_id) + _setter("cidr_collection_id", cidr_collection_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="cidrBlocks") @@ -204,6 +246,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CidrLocationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/delegation_set.py b/sdk/python/pulumi_aws/route53/delegation_set.py index 472231c1cba..4c4b34f28d6 100644 --- a/sdk/python/pulumi_aws/route53/delegation_set.py +++ b/sdk/python/pulumi_aws/route53/delegation_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DelegationSetArgs', 'DelegationSet'] @@ -20,8 +20,21 @@ def __init__(__self__, *, :param pulumi.Input[str] reference_name: This is a reference name used in Caller Reference (helpful for identifying single delegation set amongst others) """ + DelegationSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + reference_name=reference_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reference_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reference_name is None and 'referenceName' in kwargs: + reference_name = kwargs['referenceName'] + if reference_name is not None: - pulumi.set(__self__, "reference_name", reference_name) + _setter("reference_name", reference_name) @property @pulumi.getter(name="referenceName") @@ -51,12 +64,31 @@ def __init__(__self__, *, :param pulumi.Input[str] reference_name: This is a reference name used in Caller Reference (helpful for identifying single delegation set amongst others) """ + _DelegationSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name_servers=name_servers, + reference_name=reference_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + reference_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_servers is None and 'nameServers' in kwargs: + name_servers = kwargs['nameServers'] + if reference_name is None and 'referenceName' in kwargs: + reference_name = kwargs['referenceName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name_servers is not None: - pulumi.set(__self__, "name_servers", name_servers) + _setter("name_servers", name_servers) if reference_name is not None: - pulumi.set(__self__, "reference_name", reference_name) + _setter("reference_name", reference_name) @property @pulumi.getter @@ -169,6 +201,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DelegationSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/get_delegation_set.py b/sdk/python/pulumi_aws/route53/get_delegation_set.py index d273e2f5476..056910ef441 100644 --- a/sdk/python/pulumi_aws/route53/get_delegation_set.py +++ b/sdk/python/pulumi_aws/route53/get_delegation_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/route53/get_query_log_config.py b/sdk/python/pulumi_aws/route53/get_query_log_config.py index ce26cd0af24..9403552c7b1 100644 --- a/sdk/python/pulumi_aws/route53/get_query_log_config.py +++ b/sdk/python/pulumi_aws/route53/get_query_log_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/route53/get_resolver_endpoint.py b/sdk/python/pulumi_aws/route53/get_resolver_endpoint.py index 117cd7b0c60..0c7ecafa53b 100644 --- a/sdk/python/pulumi_aws/route53/get_resolver_endpoint.py +++ b/sdk/python/pulumi_aws/route53/get_resolver_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/route53/get_resolver_firewall_config.py b/sdk/python/pulumi_aws/route53/get_resolver_firewall_config.py index beb2009276b..f93240d2f1f 100644 --- a/sdk/python/pulumi_aws/route53/get_resolver_firewall_config.py +++ b/sdk/python/pulumi_aws/route53/get_resolver_firewall_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/route53/get_resolver_firewall_domain_list.py b/sdk/python/pulumi_aws/route53/get_resolver_firewall_domain_list.py index 0efcdd87862..8a32a528746 100644 --- a/sdk/python/pulumi_aws/route53/get_resolver_firewall_domain_list.py +++ b/sdk/python/pulumi_aws/route53/get_resolver_firewall_domain_list.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/route53/get_resolver_firewall_rule_group.py b/sdk/python/pulumi_aws/route53/get_resolver_firewall_rule_group.py index 86709195d8f..d22360b47ec 100644 --- a/sdk/python/pulumi_aws/route53/get_resolver_firewall_rule_group.py +++ b/sdk/python/pulumi_aws/route53/get_resolver_firewall_rule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/route53/get_resolver_firewall_rule_group_association.py b/sdk/python/pulumi_aws/route53/get_resolver_firewall_rule_group_association.py index a3bb1b6b31e..c3ed6b27941 100644 --- a/sdk/python/pulumi_aws/route53/get_resolver_firewall_rule_group_association.py +++ b/sdk/python/pulumi_aws/route53/get_resolver_firewall_rule_group_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/route53/get_resolver_firewall_rules.py b/sdk/python/pulumi_aws/route53/get_resolver_firewall_rules.py index 7a80218d083..d568e06f89b 100644 --- a/sdk/python/pulumi_aws/route53/get_resolver_firewall_rules.py +++ b/sdk/python/pulumi_aws/route53/get_resolver_firewall_rules.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/route53/get_resolver_rule.py b/sdk/python/pulumi_aws/route53/get_resolver_rule.py index b50cecee47a..4b141fc2b02 100644 --- a/sdk/python/pulumi_aws/route53/get_resolver_rule.py +++ b/sdk/python/pulumi_aws/route53/get_resolver_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/route53/get_resolver_rules.py b/sdk/python/pulumi_aws/route53/get_resolver_rules.py index a90207b43dc..6340328ebf7 100644 --- a/sdk/python/pulumi_aws/route53/get_resolver_rules.py +++ b/sdk/python/pulumi_aws/route53/get_resolver_rules.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/route53/get_traffic_policy_document.py b/sdk/python/pulumi_aws/route53/get_traffic_policy_document.py index cb6e3e8e242..62bbe21addd 100644 --- a/sdk/python/pulumi_aws/route53/get_traffic_policy_document.py +++ b/sdk/python/pulumi_aws/route53/get_traffic_policy_document.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/route53/get_zone.py b/sdk/python/pulumi_aws/route53/get_zone.py index a3348b3aab0..17574895d37 100644 --- a/sdk/python/pulumi_aws/route53/get_zone.py +++ b/sdk/python/pulumi_aws/route53/get_zone.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/route53/health_check.py b/sdk/python/pulumi_aws/route53/health_check.py index af1ee7b8674..a2209b205ee 100644 --- a/sdk/python/pulumi_aws/route53/health_check.py +++ b/sdk/python/pulumi_aws/route53/health_check.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HealthCheckArgs', 'HealthCheck'] @@ -65,47 +65,130 @@ def __init__(__self__, *, :param pulumi.Input[str] search_string: String searched in the first 5120 bytes of the response body for check to be considered healthy. Only valid with `HTTP_STR_MATCH` and `HTTPS_STR_MATCH`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the health check. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "type", type) + HealthCheckArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + child_health_threshold=child_health_threshold, + child_healthchecks=child_healthchecks, + cloudwatch_alarm_name=cloudwatch_alarm_name, + cloudwatch_alarm_region=cloudwatch_alarm_region, + disabled=disabled, + enable_sni=enable_sni, + failure_threshold=failure_threshold, + fqdn=fqdn, + insufficient_data_health_status=insufficient_data_health_status, + invert_healthcheck=invert_healthcheck, + ip_address=ip_address, + measure_latency=measure_latency, + port=port, + reference_name=reference_name, + regions=regions, + request_interval=request_interval, + resource_path=resource_path, + routing_control_arn=routing_control_arn, + search_string=search_string, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + child_health_threshold: Optional[pulumi.Input[int]] = None, + child_healthchecks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cloudwatch_alarm_name: Optional[pulumi.Input[str]] = None, + cloudwatch_alarm_region: Optional[pulumi.Input[str]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + enable_sni: Optional[pulumi.Input[bool]] = None, + failure_threshold: Optional[pulumi.Input[int]] = None, + fqdn: Optional[pulumi.Input[str]] = None, + insufficient_data_health_status: Optional[pulumi.Input[str]] = None, + invert_healthcheck: Optional[pulumi.Input[bool]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + measure_latency: Optional[pulumi.Input[bool]] = None, + port: Optional[pulumi.Input[int]] = None, + reference_name: Optional[pulumi.Input[str]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + request_interval: Optional[pulumi.Input[int]] = None, + resource_path: Optional[pulumi.Input[str]] = None, + routing_control_arn: Optional[pulumi.Input[str]] = None, + search_string: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if child_health_threshold is None and 'childHealthThreshold' in kwargs: + child_health_threshold = kwargs['childHealthThreshold'] + if child_healthchecks is None and 'childHealthchecks' in kwargs: + child_healthchecks = kwargs['childHealthchecks'] + if cloudwatch_alarm_name is None and 'cloudwatchAlarmName' in kwargs: + cloudwatch_alarm_name = kwargs['cloudwatchAlarmName'] + if cloudwatch_alarm_region is None and 'cloudwatchAlarmRegion' in kwargs: + cloudwatch_alarm_region = kwargs['cloudwatchAlarmRegion'] + if enable_sni is None and 'enableSni' in kwargs: + enable_sni = kwargs['enableSni'] + if failure_threshold is None and 'failureThreshold' in kwargs: + failure_threshold = kwargs['failureThreshold'] + if insufficient_data_health_status is None and 'insufficientDataHealthStatus' in kwargs: + insufficient_data_health_status = kwargs['insufficientDataHealthStatus'] + if invert_healthcheck is None and 'invertHealthcheck' in kwargs: + invert_healthcheck = kwargs['invertHealthcheck'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if measure_latency is None and 'measureLatency' in kwargs: + measure_latency = kwargs['measureLatency'] + if reference_name is None and 'referenceName' in kwargs: + reference_name = kwargs['referenceName'] + if request_interval is None and 'requestInterval' in kwargs: + request_interval = kwargs['requestInterval'] + if resource_path is None and 'resourcePath' in kwargs: + resource_path = kwargs['resourcePath'] + if routing_control_arn is None and 'routingControlArn' in kwargs: + routing_control_arn = kwargs['routingControlArn'] + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + + _setter("type", type) if child_health_threshold is not None: - pulumi.set(__self__, "child_health_threshold", child_health_threshold) + _setter("child_health_threshold", child_health_threshold) if child_healthchecks is not None: - pulumi.set(__self__, "child_healthchecks", child_healthchecks) + _setter("child_healthchecks", child_healthchecks) if cloudwatch_alarm_name is not None: - pulumi.set(__self__, "cloudwatch_alarm_name", cloudwatch_alarm_name) + _setter("cloudwatch_alarm_name", cloudwatch_alarm_name) if cloudwatch_alarm_region is not None: - pulumi.set(__self__, "cloudwatch_alarm_region", cloudwatch_alarm_region) + _setter("cloudwatch_alarm_region", cloudwatch_alarm_region) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) if enable_sni is not None: - pulumi.set(__self__, "enable_sni", enable_sni) + _setter("enable_sni", enable_sni) if failure_threshold is not None: - pulumi.set(__self__, "failure_threshold", failure_threshold) + _setter("failure_threshold", failure_threshold) if fqdn is not None: - pulumi.set(__self__, "fqdn", fqdn) + _setter("fqdn", fqdn) if insufficient_data_health_status is not None: - pulumi.set(__self__, "insufficient_data_health_status", insufficient_data_health_status) + _setter("insufficient_data_health_status", insufficient_data_health_status) if invert_healthcheck is not None: - pulumi.set(__self__, "invert_healthcheck", invert_healthcheck) + _setter("invert_healthcheck", invert_healthcheck) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if measure_latency is not None: - pulumi.set(__self__, "measure_latency", measure_latency) + _setter("measure_latency", measure_latency) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if reference_name is not None: - pulumi.set(__self__, "reference_name", reference_name) + _setter("reference_name", reference_name) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) if request_interval is not None: - pulumi.set(__self__, "request_interval", request_interval) + _setter("request_interval", request_interval) if resource_path is not None: - pulumi.set(__self__, "resource_path", resource_path) + _setter("resource_path", resource_path) if routing_control_arn is not None: - pulumi.set(__self__, "routing_control_arn", routing_control_arn) + _setter("routing_control_arn", routing_control_arn) if search_string is not None: - pulumi.set(__self__, "search_string", search_string) + _setter("search_string", search_string) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -424,55 +507,142 @@ def __init__(__self__, *, :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] type: The protocol to use when performing health checks. Valid values are `HTTP`, `HTTPS`, `HTTP_STR_MATCH`, `HTTPS_STR_MATCH`, `TCP`, `CALCULATED`, `CLOUDWATCH_METRIC` and `RECOVERY_CONTROL`. """ + _HealthCheckState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + child_health_threshold=child_health_threshold, + child_healthchecks=child_healthchecks, + cloudwatch_alarm_name=cloudwatch_alarm_name, + cloudwatch_alarm_region=cloudwatch_alarm_region, + disabled=disabled, + enable_sni=enable_sni, + failure_threshold=failure_threshold, + fqdn=fqdn, + insufficient_data_health_status=insufficient_data_health_status, + invert_healthcheck=invert_healthcheck, + ip_address=ip_address, + measure_latency=measure_latency, + port=port, + reference_name=reference_name, + regions=regions, + request_interval=request_interval, + resource_path=resource_path, + routing_control_arn=routing_control_arn, + search_string=search_string, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + child_health_threshold: Optional[pulumi.Input[int]] = None, + child_healthchecks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cloudwatch_alarm_name: Optional[pulumi.Input[str]] = None, + cloudwatch_alarm_region: Optional[pulumi.Input[str]] = None, + disabled: Optional[pulumi.Input[bool]] = None, + enable_sni: Optional[pulumi.Input[bool]] = None, + failure_threshold: Optional[pulumi.Input[int]] = None, + fqdn: Optional[pulumi.Input[str]] = None, + insufficient_data_health_status: Optional[pulumi.Input[str]] = None, + invert_healthcheck: Optional[pulumi.Input[bool]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + measure_latency: Optional[pulumi.Input[bool]] = None, + port: Optional[pulumi.Input[int]] = None, + reference_name: Optional[pulumi.Input[str]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + request_interval: Optional[pulumi.Input[int]] = None, + resource_path: Optional[pulumi.Input[str]] = None, + routing_control_arn: Optional[pulumi.Input[str]] = None, + search_string: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if child_health_threshold is None and 'childHealthThreshold' in kwargs: + child_health_threshold = kwargs['childHealthThreshold'] + if child_healthchecks is None and 'childHealthchecks' in kwargs: + child_healthchecks = kwargs['childHealthchecks'] + if cloudwatch_alarm_name is None and 'cloudwatchAlarmName' in kwargs: + cloudwatch_alarm_name = kwargs['cloudwatchAlarmName'] + if cloudwatch_alarm_region is None and 'cloudwatchAlarmRegion' in kwargs: + cloudwatch_alarm_region = kwargs['cloudwatchAlarmRegion'] + if enable_sni is None and 'enableSni' in kwargs: + enable_sni = kwargs['enableSni'] + if failure_threshold is None and 'failureThreshold' in kwargs: + failure_threshold = kwargs['failureThreshold'] + if insufficient_data_health_status is None and 'insufficientDataHealthStatus' in kwargs: + insufficient_data_health_status = kwargs['insufficientDataHealthStatus'] + if invert_healthcheck is None and 'invertHealthcheck' in kwargs: + invert_healthcheck = kwargs['invertHealthcheck'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if measure_latency is None and 'measureLatency' in kwargs: + measure_latency = kwargs['measureLatency'] + if reference_name is None and 'referenceName' in kwargs: + reference_name = kwargs['referenceName'] + if request_interval is None and 'requestInterval' in kwargs: + request_interval = kwargs['requestInterval'] + if resource_path is None and 'resourcePath' in kwargs: + resource_path = kwargs['resourcePath'] + if routing_control_arn is None and 'routingControlArn' in kwargs: + routing_control_arn = kwargs['routingControlArn'] + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if child_health_threshold is not None: - pulumi.set(__self__, "child_health_threshold", child_health_threshold) + _setter("child_health_threshold", child_health_threshold) if child_healthchecks is not None: - pulumi.set(__self__, "child_healthchecks", child_healthchecks) + _setter("child_healthchecks", child_healthchecks) if cloudwatch_alarm_name is not None: - pulumi.set(__self__, "cloudwatch_alarm_name", cloudwatch_alarm_name) + _setter("cloudwatch_alarm_name", cloudwatch_alarm_name) if cloudwatch_alarm_region is not None: - pulumi.set(__self__, "cloudwatch_alarm_region", cloudwatch_alarm_region) + _setter("cloudwatch_alarm_region", cloudwatch_alarm_region) if disabled is not None: - pulumi.set(__self__, "disabled", disabled) + _setter("disabled", disabled) if enable_sni is not None: - pulumi.set(__self__, "enable_sni", enable_sni) + _setter("enable_sni", enable_sni) if failure_threshold is not None: - pulumi.set(__self__, "failure_threshold", failure_threshold) + _setter("failure_threshold", failure_threshold) if fqdn is not None: - pulumi.set(__self__, "fqdn", fqdn) + _setter("fqdn", fqdn) if insufficient_data_health_status is not None: - pulumi.set(__self__, "insufficient_data_health_status", insufficient_data_health_status) + _setter("insufficient_data_health_status", insufficient_data_health_status) if invert_healthcheck is not None: - pulumi.set(__self__, "invert_healthcheck", invert_healthcheck) + _setter("invert_healthcheck", invert_healthcheck) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if measure_latency is not None: - pulumi.set(__self__, "measure_latency", measure_latency) + _setter("measure_latency", measure_latency) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if reference_name is not None: - pulumi.set(__self__, "reference_name", reference_name) + _setter("reference_name", reference_name) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) if request_interval is not None: - pulumi.set(__self__, "request_interval", request_interval) + _setter("request_interval", request_interval) if resource_path is not None: - pulumi.set(__self__, "resource_path", resource_path) + _setter("resource_path", resource_path) if routing_control_arn is not None: - pulumi.set(__self__, "routing_control_arn", routing_control_arn) + _setter("routing_control_arn", routing_control_arn) if search_string is not None: - pulumi.set(__self__, "search_string", search_string) + _setter("search_string", search_string) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -993,6 +1163,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HealthCheckArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/hosted_zone_dns_sec.py b/sdk/python/pulumi_aws/route53/hosted_zone_dns_sec.py index 83a1c8a8440..412a5e18498 100644 --- a/sdk/python/pulumi_aws/route53/hosted_zone_dns_sec.py +++ b/sdk/python/pulumi_aws/route53/hosted_zone_dns_sec.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HostedZoneDnsSecArgs', 'HostedZoneDnsSec'] @@ -23,9 +23,28 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] signing_status: Hosted Zone signing status. Valid values: `SIGNING`, `NOT_SIGNING`. Defaults to `SIGNING`. """ - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + HostedZoneDnsSecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hosted_zone_id=hosted_zone_id, + signing_status=signing_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hosted_zone_id: Optional[pulumi.Input[str]] = None, + signing_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if hosted_zone_id is None: + raise TypeError("Missing 'hosted_zone_id' argument") + if signing_status is None and 'signingStatus' in kwargs: + signing_status = kwargs['signingStatus'] + + _setter("hosted_zone_id", hosted_zone_id) if signing_status is not None: - pulumi.set(__self__, "signing_status", signing_status) + _setter("signing_status", signing_status) @property @pulumi.getter(name="hostedZoneId") @@ -66,10 +85,27 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] signing_status: Hosted Zone signing status. Valid values: `SIGNING`, `NOT_SIGNING`. Defaults to `SIGNING`. """ + _HostedZoneDnsSecState._configure( + lambda key, value: pulumi.set(__self__, key, value), + hosted_zone_id=hosted_zone_id, + signing_status=signing_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hosted_zone_id: Optional[pulumi.Input[str]] = None, + signing_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if signing_status is None and 'signingStatus' in kwargs: + signing_status = kwargs['signingStatus'] + if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if signing_status is not None: - pulumi.set(__self__, "signing_status", signing_status) + _setter("signing_status", signing_status) @property @pulumi.getter(name="hostedZoneId") @@ -255,6 +291,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HostedZoneDnsSecArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/key_signing_key.py b/sdk/python/pulumi_aws/route53/key_signing_key.py index e661823a04f..21bc8fdba6b 100644 --- a/sdk/python/pulumi_aws/route53/key_signing_key.py +++ b/sdk/python/pulumi_aws/route53/key_signing_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['KeySigningKeyArgs', 'KeySigningKey'] @@ -27,12 +27,37 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] status: Status of the key-signing key (KSK). Valid values: `ACTIVE`, `INACTIVE`. Defaults to `ACTIVE`. """ - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) - pulumi.set(__self__, "key_management_service_arn", key_management_service_arn) + KeySigningKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hosted_zone_id=hosted_zone_id, + key_management_service_arn=key_management_service_arn, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hosted_zone_id: Optional[pulumi.Input[str]] = None, + key_management_service_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if hosted_zone_id is None: + raise TypeError("Missing 'hosted_zone_id' argument") + if key_management_service_arn is None and 'keyManagementServiceArn' in kwargs: + key_management_service_arn = kwargs['keyManagementServiceArn'] + if key_management_service_arn is None: + raise TypeError("Missing 'key_management_service_arn' argument") + + _setter("hosted_zone_id", hosted_zone_id) + _setter("key_management_service_arn", key_management_service_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="hostedZoneId") @@ -121,34 +146,93 @@ def __init__(__self__, *, :param pulumi.Input[int] signing_algorithm_type: An integer used to represent the signing algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.1](https://tools.ietf.org/html/rfc8624#section-3.1). :param pulumi.Input[str] status: Status of the key-signing key (KSK). Valid values: `ACTIVE`, `INACTIVE`. Defaults to `ACTIVE`. """ + _KeySigningKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + digest_algorithm_mnemonic=digest_algorithm_mnemonic, + digest_algorithm_type=digest_algorithm_type, + digest_value=digest_value, + dnskey_record=dnskey_record, + ds_record=ds_record, + flag=flag, + hosted_zone_id=hosted_zone_id, + key_management_service_arn=key_management_service_arn, + key_tag=key_tag, + name=name, + public_key=public_key, + signing_algorithm_mnemonic=signing_algorithm_mnemonic, + signing_algorithm_type=signing_algorithm_type, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + digest_algorithm_mnemonic: Optional[pulumi.Input[str]] = None, + digest_algorithm_type: Optional[pulumi.Input[int]] = None, + digest_value: Optional[pulumi.Input[str]] = None, + dnskey_record: Optional[pulumi.Input[str]] = None, + ds_record: Optional[pulumi.Input[str]] = None, + flag: Optional[pulumi.Input[int]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + key_management_service_arn: Optional[pulumi.Input[str]] = None, + key_tag: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + public_key: Optional[pulumi.Input[str]] = None, + signing_algorithm_mnemonic: Optional[pulumi.Input[str]] = None, + signing_algorithm_type: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if digest_algorithm_mnemonic is None and 'digestAlgorithmMnemonic' in kwargs: + digest_algorithm_mnemonic = kwargs['digestAlgorithmMnemonic'] + if digest_algorithm_type is None and 'digestAlgorithmType' in kwargs: + digest_algorithm_type = kwargs['digestAlgorithmType'] + if digest_value is None and 'digestValue' in kwargs: + digest_value = kwargs['digestValue'] + if dnskey_record is None and 'dnskeyRecord' in kwargs: + dnskey_record = kwargs['dnskeyRecord'] + if ds_record is None and 'dsRecord' in kwargs: + ds_record = kwargs['dsRecord'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if key_management_service_arn is None and 'keyManagementServiceArn' in kwargs: + key_management_service_arn = kwargs['keyManagementServiceArn'] + if key_tag is None and 'keyTag' in kwargs: + key_tag = kwargs['keyTag'] + if public_key is None and 'publicKey' in kwargs: + public_key = kwargs['publicKey'] + if signing_algorithm_mnemonic is None and 'signingAlgorithmMnemonic' in kwargs: + signing_algorithm_mnemonic = kwargs['signingAlgorithmMnemonic'] + if signing_algorithm_type is None and 'signingAlgorithmType' in kwargs: + signing_algorithm_type = kwargs['signingAlgorithmType'] + if digest_algorithm_mnemonic is not None: - pulumi.set(__self__, "digest_algorithm_mnemonic", digest_algorithm_mnemonic) + _setter("digest_algorithm_mnemonic", digest_algorithm_mnemonic) if digest_algorithm_type is not None: - pulumi.set(__self__, "digest_algorithm_type", digest_algorithm_type) + _setter("digest_algorithm_type", digest_algorithm_type) if digest_value is not None: - pulumi.set(__self__, "digest_value", digest_value) + _setter("digest_value", digest_value) if dnskey_record is not None: - pulumi.set(__self__, "dnskey_record", dnskey_record) + _setter("dnskey_record", dnskey_record) if ds_record is not None: - pulumi.set(__self__, "ds_record", ds_record) + _setter("ds_record", ds_record) if flag is not None: - pulumi.set(__self__, "flag", flag) + _setter("flag", flag) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if key_management_service_arn is not None: - pulumi.set(__self__, "key_management_service_arn", key_management_service_arn) + _setter("key_management_service_arn", key_management_service_arn) if key_tag is not None: - pulumi.set(__self__, "key_tag", key_tag) + _setter("key_tag", key_tag) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if public_key is not None: - pulumi.set(__self__, "public_key", public_key) + _setter("public_key", public_key) if signing_algorithm_mnemonic is not None: - pulumi.set(__self__, "signing_algorithm_mnemonic", signing_algorithm_mnemonic) + _setter("signing_algorithm_mnemonic", signing_algorithm_mnemonic) if signing_algorithm_type is not None: - pulumi.set(__self__, "signing_algorithm_type", signing_algorithm_type) + _setter("signing_algorithm_type", signing_algorithm_type) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="digestAlgorithmMnemonic") @@ -516,6 +600,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + KeySigningKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/outputs.py b/sdk/python/pulumi_aws/route53/outputs.py index 28dd3d6f3b3..b4de2ecd022 100644 --- a/sdk/python/pulumi_aws/route53/outputs.py +++ b/sdk/python/pulumi_aws/route53/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -64,9 +64,34 @@ def __init__(__self__, *, :param str name: DNS domain name for a CloudFront distribution, S3 bucket, ELB, or another resource record set in this hosted zone. :param str zone_id: Hosted zone ID for a CloudFront distribution, S3 bucket, ELB, or Route 53 hosted zone. See `resource_elb.zone_id` for example. """ - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "zone_id", zone_id) + RecordAlias._configure( + lambda key, value: pulumi.set(__self__, key, value), + evaluate_target_health=evaluate_target_health, + name=name, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + evaluate_target_health: Optional[bool] = None, + name: Optional[str] = None, + zone_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if evaluate_target_health is None: + raise TypeError("Missing 'evaluate_target_health' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if zone_id is None: + raise TypeError("Missing 'zone_id' argument") + + _setter("evaluate_target_health", evaluate_target_health) + _setter("name", name) + _setter("zone_id", zone_id) @property @pulumi.getter(name="evaluateTargetHealth") @@ -121,8 +146,29 @@ def __init__(__self__, *, :param str collection_id: The CIDR collection ID. See the `route53.CidrCollection` resource for more details. :param str location_name: The CIDR collection location name. See the `route53.CidrLocation` resource for more details. A `location_name` with an asterisk `"*"` can be used to create a default CIDR record. `collection_id` is still required for default record. """ - pulumi.set(__self__, "collection_id", collection_id) - pulumi.set(__self__, "location_name", location_name) + RecordCidrRoutingPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + collection_id=collection_id, + location_name=location_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + collection_id: Optional[str] = None, + location_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if collection_id is None and 'collectionId' in kwargs: + collection_id = kwargs['collectionId'] + if collection_id is None: + raise TypeError("Missing 'collection_id' argument") + if location_name is None and 'locationName' in kwargs: + location_name = kwargs['locationName'] + if location_name is None: + raise TypeError("Missing 'location_name' argument") + + _setter("collection_id", collection_id) + _setter("location_name", location_name) @property @pulumi.getter(name="collectionId") @@ -148,7 +194,20 @@ def __init__(__self__, *, """ :param str type: `PRIMARY` or `SECONDARY`. A `PRIMARY` record will be served if its healthcheck is passing, otherwise the `SECONDARY` will be served. See http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html#dns-failover-failover-rrsets """ - pulumi.set(__self__, "type", type) + RecordFailoverRoutingPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -170,12 +229,27 @@ def __init__(__self__, *, :param str country: A two-character country code or `*` to indicate a default resource record set. :param str subdivision: A subdivision code for a country. """ + RecordGeolocationRoutingPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + continent=continent, + country=country, + subdivision=subdivision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + continent: Optional[str] = None, + country: Optional[str] = None, + subdivision: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if continent is not None: - pulumi.set(__self__, "continent", continent) + _setter("continent", continent) if country is not None: - pulumi.set(__self__, "country", country) + _setter("country", country) if subdivision is not None: - pulumi.set(__self__, "subdivision", subdivision) + _setter("subdivision", subdivision) @property @pulumi.getter @@ -209,7 +283,20 @@ def __init__(__self__, *, """ :param str region: An AWS region from which to measure latency. See http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-latency """ - pulumi.set(__self__, "region", region) + RecordLatencyRoutingPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("region", region) @property @pulumi.getter @@ -227,7 +314,20 @@ def __init__(__self__, *, """ :param int weight: A numeric value indicating the relative weight of the record. See http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted. """ - pulumi.set(__self__, "weight", weight) + RecordWeightedRoutingPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("weight", weight) @property @pulumi.getter @@ -267,11 +367,32 @@ def __init__(__self__, *, :param str subnet_id: The ID of the subnet that contains the IP address. :param str ip: The IP address in the subnet that you want to use for DNS queries. """ - pulumi.set(__self__, "subnet_id", subnet_id) + ResolverEndpointIpAddress._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnet_id=subnet_id, + ip=ip, + ip_id=ip_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnet_id: Optional[str] = None, + ip: Optional[str] = None, + ip_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if ip_id is None and 'ipId' in kwargs: + ip_id = kwargs['ipId'] + + _setter("subnet_id", subnet_id) if ip is not None: - pulumi.set(__self__, "ip", ip) + _setter("ip", ip) if ip_id is not None: - pulumi.set(__self__, "ip_id", ip_id) + _setter("ip_id", ip_id) @property @pulumi.getter(name="subnetId") @@ -304,9 +425,24 @@ def __init__(__self__, *, :param str ip: One IP address that you want to forward DNS queries to. You can specify only IPv4 addresses. :param int port: The port at `ip` that you want to forward DNS queries to. Default value is `53` """ - pulumi.set(__self__, "ip", ip) + ResolverRuleTargetIp._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip=ip, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip is None: + raise TypeError("Missing 'ip' argument") + + _setter("ip", ip) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -353,9 +489,28 @@ def __init__(__self__, *, :param str vpc_id: ID of the VPC to associate. :param str vpc_region: Region of the VPC to associate. Defaults to AWS provider region. """ - pulumi.set(__self__, "vpc_id", vpc_id) + ZoneVpc._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + vpc_region=vpc_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[str] = None, + vpc_region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if vpc_region is None and 'vpcRegion' in kwargs: + vpc_region = kwargs['vpcRegion'] + + _setter("vpc_id", vpc_id) if vpc_region is not None: - pulumi.set(__self__, "vpc_region", vpc_region) + _setter("vpc_region", vpc_region) @property @pulumi.getter(name="vpcId") @@ -382,8 +537,25 @@ def __init__(__self__, *, """ :param str name: The name of the query logging configuration. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetQueryLogConfigFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -404,8 +576,25 @@ class GetResolverEndpointFilterResult(dict): def __init__(__self__, *, name: str, values: Sequence[str]): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetResolverEndpointFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -447,18 +636,93 @@ def __init__(__self__, *, :param str name: The name of the rule. :param int priority: The setting that determines the processing order of the rules in a rule group. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "block_override_dns_type", block_override_dns_type) - pulumi.set(__self__, "block_override_domain", block_override_domain) - pulumi.set(__self__, "block_override_ttl", block_override_ttl) - pulumi.set(__self__, "block_response", block_response) - pulumi.set(__self__, "creation_time", creation_time) - pulumi.set(__self__, "creator_request_id", creator_request_id) - pulumi.set(__self__, "firewall_domain_list_id", firewall_domain_list_id) - pulumi.set(__self__, "firewall_rule_group_id", firewall_rule_group_id) - pulumi.set(__self__, "modification_time", modification_time) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "priority", priority) + GetResolverFirewallRulesFirewallRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + block_override_dns_type=block_override_dns_type, + block_override_domain=block_override_domain, + block_override_ttl=block_override_ttl, + block_response=block_response, + creation_time=creation_time, + creator_request_id=creator_request_id, + firewall_domain_list_id=firewall_domain_list_id, + firewall_rule_group_id=firewall_rule_group_id, + modification_time=modification_time, + name=name, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + block_override_dns_type: Optional[str] = None, + block_override_domain: Optional[str] = None, + block_override_ttl: Optional[int] = None, + block_response: Optional[str] = None, + creation_time: Optional[str] = None, + creator_request_id: Optional[str] = None, + firewall_domain_list_id: Optional[str] = None, + firewall_rule_group_id: Optional[str] = None, + modification_time: Optional[str] = None, + name: Optional[str] = None, + priority: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if block_override_dns_type is None and 'blockOverrideDnsType' in kwargs: + block_override_dns_type = kwargs['blockOverrideDnsType'] + if block_override_dns_type is None: + raise TypeError("Missing 'block_override_dns_type' argument") + if block_override_domain is None and 'blockOverrideDomain' in kwargs: + block_override_domain = kwargs['blockOverrideDomain'] + if block_override_domain is None: + raise TypeError("Missing 'block_override_domain' argument") + if block_override_ttl is None and 'blockOverrideTtl' in kwargs: + block_override_ttl = kwargs['blockOverrideTtl'] + if block_override_ttl is None: + raise TypeError("Missing 'block_override_ttl' argument") + if block_response is None and 'blockResponse' in kwargs: + block_response = kwargs['blockResponse'] + if block_response is None: + raise TypeError("Missing 'block_response' argument") + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if creation_time is None: + raise TypeError("Missing 'creation_time' argument") + if creator_request_id is None and 'creatorRequestId' in kwargs: + creator_request_id = kwargs['creatorRequestId'] + if creator_request_id is None: + raise TypeError("Missing 'creator_request_id' argument") + if firewall_domain_list_id is None and 'firewallDomainListId' in kwargs: + firewall_domain_list_id = kwargs['firewallDomainListId'] + if firewall_domain_list_id is None: + raise TypeError("Missing 'firewall_domain_list_id' argument") + if firewall_rule_group_id is None and 'firewallRuleGroupId' in kwargs: + firewall_rule_group_id = kwargs['firewallRuleGroupId'] + if firewall_rule_group_id is None: + raise TypeError("Missing 'firewall_rule_group_id' argument") + if modification_time is None and 'modificationTime' in kwargs: + modification_time = kwargs['modificationTime'] + if modification_time is None: + raise TypeError("Missing 'modification_time' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + + _setter("action", action) + _setter("block_override_dns_type", block_override_dns_type) + _setter("block_override_domain", block_override_domain) + _setter("block_override_ttl", block_override_ttl) + _setter("block_response", block_response) + _setter("creation_time", creation_time) + _setter("creator_request_id", creator_request_id) + _setter("firewall_domain_list_id", firewall_domain_list_id) + _setter("firewall_rule_group_id", firewall_rule_group_id) + _setter("modification_time", modification_time) + _setter("name", name) + _setter("priority", priority) @property @pulumi.getter @@ -570,13 +834,32 @@ def __init__(__self__, *, :param str type: Type of the endpoint. Valid values are `value` , `cloudfront` , `elastic-load-balancer`, `s3-website` :param str value: Value of the `type`. """ - pulumi.set(__self__, "id", id) + GetTrafficPolicyDocumentEndpointResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + region=region, + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + region: Optional[str] = None, + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -632,21 +915,50 @@ def __init__(__self__, *, :param 'GetTrafficPolicyDocumentRuleSecondaryArgs' secondary: Configuration block for the rule or endpoint that you want to route traffic to whenever the primary resources are not available. Only valid for `failover` type. See below :param str type: Type of the rule. """ - pulumi.set(__self__, "id", id) + GetTrafficPolicyDocumentRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + geo_proximity_locations=geo_proximity_locations, + items=items, + locations=locations, + primary=primary, + regions=regions, + secondary=secondary, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + geo_proximity_locations: Optional[Sequence['outputs.GetTrafficPolicyDocumentRuleGeoProximityLocationResult']] = None, + items: Optional[Sequence['outputs.GetTrafficPolicyDocumentRuleItemResult']] = None, + locations: Optional[Sequence['outputs.GetTrafficPolicyDocumentRuleLocationResult']] = None, + primary: Optional['outputs.GetTrafficPolicyDocumentRulePrimaryResult'] = None, + regions: Optional[Sequence['outputs.GetTrafficPolicyDocumentRuleRegionResult']] = None, + secondary: Optional['outputs.GetTrafficPolicyDocumentRuleSecondaryResult'] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if geo_proximity_locations is None and 'geoProximityLocations' in kwargs: + geo_proximity_locations = kwargs['geoProximityLocations'] + + _setter("id", id) if geo_proximity_locations is not None: - pulumi.set(__self__, "geo_proximity_locations", geo_proximity_locations) + _setter("geo_proximity_locations", geo_proximity_locations) if items is not None: - pulumi.set(__self__, "items", items) + _setter("items", items) if locations is not None: - pulumi.set(__self__, "locations", locations) + _setter("locations", locations) if primary is not None: - pulumi.set(__self__, "primary", primary) + _setter("primary", primary) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) if secondary is not None: - pulumi.set(__self__, "secondary", secondary) + _setter("secondary", secondary) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -734,22 +1046,55 @@ def __init__(__self__, *, :param str region: If your endpoint is an AWS resource, specify the AWS Region that you created the resource in. :param str rule_reference: References to a rule. """ + GetTrafficPolicyDocumentRuleGeoProximityLocationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bias=bias, + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + latitude=latitude, + longitude=longitude, + region=region, + rule_reference=rule_reference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bias: Optional[str] = None, + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + latitude: Optional[str] = None, + longitude: Optional[str] = None, + region: Optional[str] = None, + rule_reference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if bias is not None: - pulumi.set(__self__, "bias", bias) + _setter("bias", bias) if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if latitude is not None: - pulumi.set(__self__, "latitude", latitude) + _setter("latitude", latitude) if longitude is not None: - pulumi.set(__self__, "longitude", longitude) + _setter("longitude", longitude) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) @property @pulumi.getter @@ -825,10 +1170,27 @@ def __init__(__self__, *, :param str endpoint_reference: References to an endpoint. :param str health_check: If you want to associate a health check with the endpoint or rule. """ + GetTrafficPolicyDocumentRuleItemResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_reference=endpoint_reference, + health_check=health_check, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_reference: Optional[str] = None, + health_check: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) @property @pulumi.getter(name="endpointReference") @@ -868,22 +1230,57 @@ def __init__(__self__, *, :param str rule_reference: References to a rule. :param str subdivision: Value of a subdivision. """ + GetTrafficPolicyDocumentRuleLocationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + continent=continent, + country=country, + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + is_default=is_default, + rule_reference=rule_reference, + subdivision=subdivision, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + continent: Optional[str] = None, + country: Optional[str] = None, + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + is_default: Optional[bool] = None, + rule_reference: Optional[str] = None, + subdivision: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if is_default is None and 'isDefault' in kwargs: + is_default = kwargs['isDefault'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if continent is not None: - pulumi.set(__self__, "continent", continent) + _setter("continent", continent) if country is not None: - pulumi.set(__self__, "country", country) + _setter("country", country) if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if is_default is not None: - pulumi.set(__self__, "is_default", is_default) + _setter("is_default", is_default) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) if subdivision is not None: - pulumi.set(__self__, "subdivision", subdivision) + _setter("subdivision", subdivision) @property @pulumi.getter @@ -963,14 +1360,39 @@ def __init__(__self__, *, :param str health_check: If you want to associate a health check with the endpoint or rule. :param str rule_reference: References to a rule. """ + GetTrafficPolicyDocumentRulePrimaryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + rule_reference=rule_reference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + rule_reference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) @property @pulumi.getter(name="endpointReference") @@ -1020,16 +1442,43 @@ def __init__(__self__, *, :param str region: Region code for the AWS Region that you created the resource in. :param str rule_reference: References to a rule. """ + GetTrafficPolicyDocumentRuleRegionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + region=region, + rule_reference=rule_reference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + region: Optional[str] = None, + rule_reference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) @property @pulumi.getter(name="endpointReference") @@ -1085,14 +1534,39 @@ def __init__(__self__, *, :param str health_check: If you want to associate a health check with the endpoint or rule. :param str rule_reference: References to a rule. """ + GetTrafficPolicyDocumentRuleSecondaryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_reference=endpoint_reference, + evaluate_target_health=evaluate_target_health, + health_check=health_check, + rule_reference=rule_reference, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_reference: Optional[str] = None, + evaluate_target_health: Optional[bool] = None, + health_check: Optional[str] = None, + rule_reference: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_reference is None and 'endpointReference' in kwargs: + endpoint_reference = kwargs['endpointReference'] + if evaluate_target_health is None and 'evaluateTargetHealth' in kwargs: + evaluate_target_health = kwargs['evaluateTargetHealth'] + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if rule_reference is None and 'ruleReference' in kwargs: + rule_reference = kwargs['ruleReference'] + if endpoint_reference is not None: - pulumi.set(__self__, "endpoint_reference", endpoint_reference) + _setter("endpoint_reference", endpoint_reference) if evaluate_target_health is not None: - pulumi.set(__self__, "evaluate_target_health", evaluate_target_health) + _setter("evaluate_target_health", evaluate_target_health) if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if rule_reference is not None: - pulumi.set(__self__, "rule_reference", rule_reference) + _setter("rule_reference", rule_reference) @property @pulumi.getter(name="endpointReference") diff --git a/sdk/python/pulumi_aws/route53/query_log.py b/sdk/python/pulumi_aws/route53/query_log.py index f87b3183bd9..524afb6cbcd 100644 --- a/sdk/python/pulumi_aws/route53/query_log.py +++ b/sdk/python/pulumi_aws/route53/query_log.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['QueryLogArgs', 'QueryLog'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] cloudwatch_log_group_arn: CloudWatch log group ARN to send query logs. :param pulumi.Input[str] zone_id: Route53 hosted zone ID to enable query logs. """ - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) - pulumi.set(__self__, "zone_id", zone_id) + QueryLogArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group_arn: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if cloudwatch_log_group_arn is None: + raise TypeError("Missing 'cloudwatch_log_group_arn' argument") + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if zone_id is None: + raise TypeError("Missing 'zone_id' argument") + + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("zone_id", zone_id) @property @pulumi.getter(name="cloudwatchLogGroupArn") @@ -61,12 +82,31 @@ def __init__(__self__, *, :param pulumi.Input[str] cloudwatch_log_group_arn: CloudWatch log group ARN to send query logs. :param pulumi.Input[str] zone_id: Route53 hosted zone ID to enable query logs. """ + _QueryLogState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cloudwatch_log_group_arn: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cloudwatch_log_group_arn is not None: - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) if zone_id is not None: - pulumi.set(__self__, "zone_id", zone_id) + _setter("zone_id", zone_id) @property @pulumi.getter @@ -238,6 +278,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + QueryLogArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/record.py b/sdk/python/pulumi_aws/route53/record.py index 6c77eb8d456..a9642480f50 100644 --- a/sdk/python/pulumi_aws/route53/record.py +++ b/sdk/python/pulumi_aws/route53/record.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -53,33 +53,98 @@ def __init__(__self__, *, :param pulumi.Input[int] ttl: The TTL of the record. :param pulumi.Input[Sequence[pulumi.Input['RecordWeightedRoutingPolicyArgs']]] weighted_routing_policies: A block indicating a weighted routing policy. Conflicts with any other routing policy. Documented below. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "zone_id", zone_id) + RecordArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + type=type, + zone_id=zone_id, + aliases=aliases, + allow_overwrite=allow_overwrite, + cidr_routing_policy=cidr_routing_policy, + failover_routing_policies=failover_routing_policies, + geolocation_routing_policies=geolocation_routing_policies, + health_check_id=health_check_id, + latency_routing_policies=latency_routing_policies, + multivalue_answer_routing_policy=multivalue_answer_routing_policy, + records=records, + set_identifier=set_identifier, + ttl=ttl, + weighted_routing_policies=weighted_routing_policies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[Union[str, 'RecordType']]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + aliases: Optional[pulumi.Input[Sequence[pulumi.Input['RecordAliasArgs']]]] = None, + allow_overwrite: Optional[pulumi.Input[bool]] = None, + cidr_routing_policy: Optional[pulumi.Input['RecordCidrRoutingPolicyArgs']] = None, + failover_routing_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RecordFailoverRoutingPolicyArgs']]]] = None, + geolocation_routing_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RecordGeolocationRoutingPolicyArgs']]]] = None, + health_check_id: Optional[pulumi.Input[str]] = None, + latency_routing_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RecordLatencyRoutingPolicyArgs']]]] = None, + multivalue_answer_routing_policy: Optional[pulumi.Input[bool]] = None, + records: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + set_identifier: Optional[pulumi.Input[str]] = None, + ttl: Optional[pulumi.Input[int]] = None, + weighted_routing_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RecordWeightedRoutingPolicyArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if zone_id is None: + raise TypeError("Missing 'zone_id' argument") + if allow_overwrite is None and 'allowOverwrite' in kwargs: + allow_overwrite = kwargs['allowOverwrite'] + if cidr_routing_policy is None and 'cidrRoutingPolicy' in kwargs: + cidr_routing_policy = kwargs['cidrRoutingPolicy'] + if failover_routing_policies is None and 'failoverRoutingPolicies' in kwargs: + failover_routing_policies = kwargs['failoverRoutingPolicies'] + if geolocation_routing_policies is None and 'geolocationRoutingPolicies' in kwargs: + geolocation_routing_policies = kwargs['geolocationRoutingPolicies'] + if health_check_id is None and 'healthCheckId' in kwargs: + health_check_id = kwargs['healthCheckId'] + if latency_routing_policies is None and 'latencyRoutingPolicies' in kwargs: + latency_routing_policies = kwargs['latencyRoutingPolicies'] + if multivalue_answer_routing_policy is None and 'multivalueAnswerRoutingPolicy' in kwargs: + multivalue_answer_routing_policy = kwargs['multivalueAnswerRoutingPolicy'] + if set_identifier is None and 'setIdentifier' in kwargs: + set_identifier = kwargs['setIdentifier'] + if weighted_routing_policies is None and 'weightedRoutingPolicies' in kwargs: + weighted_routing_policies = kwargs['weightedRoutingPolicies'] + + _setter("name", name) + _setter("type", type) + _setter("zone_id", zone_id) if aliases is not None: - pulumi.set(__self__, "aliases", aliases) + _setter("aliases", aliases) if allow_overwrite is not None: - pulumi.set(__self__, "allow_overwrite", allow_overwrite) + _setter("allow_overwrite", allow_overwrite) if cidr_routing_policy is not None: - pulumi.set(__self__, "cidr_routing_policy", cidr_routing_policy) + _setter("cidr_routing_policy", cidr_routing_policy) if failover_routing_policies is not None: - pulumi.set(__self__, "failover_routing_policies", failover_routing_policies) + _setter("failover_routing_policies", failover_routing_policies) if geolocation_routing_policies is not None: - pulumi.set(__self__, "geolocation_routing_policies", geolocation_routing_policies) + _setter("geolocation_routing_policies", geolocation_routing_policies) if health_check_id is not None: - pulumi.set(__self__, "health_check_id", health_check_id) + _setter("health_check_id", health_check_id) if latency_routing_policies is not None: - pulumi.set(__self__, "latency_routing_policies", latency_routing_policies) + _setter("latency_routing_policies", latency_routing_policies) if multivalue_answer_routing_policy is not None: - pulumi.set(__self__, "multivalue_answer_routing_policy", multivalue_answer_routing_policy) + _setter("multivalue_answer_routing_policy", multivalue_answer_routing_policy) if records is not None: - pulumi.set(__self__, "records", records) + _setter("records", records) if set_identifier is not None: - pulumi.set(__self__, "set_identifier", set_identifier) + _setter("set_identifier", set_identifier) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) if weighted_routing_policies is not None: - pulumi.set(__self__, "weighted_routing_policies", weighted_routing_policies) + _setter("weighted_routing_policies", weighted_routing_policies) @property @pulumi.getter @@ -306,38 +371,99 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RecordWeightedRoutingPolicyArgs']]] weighted_routing_policies: A block indicating a weighted routing policy. Conflicts with any other routing policy. Documented below. :param pulumi.Input[str] zone_id: The ID of the hosted zone to contain this record. """ + _RecordState._configure( + lambda key, value: pulumi.set(__self__, key, value), + aliases=aliases, + allow_overwrite=allow_overwrite, + cidr_routing_policy=cidr_routing_policy, + failover_routing_policies=failover_routing_policies, + fqdn=fqdn, + geolocation_routing_policies=geolocation_routing_policies, + health_check_id=health_check_id, + latency_routing_policies=latency_routing_policies, + multivalue_answer_routing_policy=multivalue_answer_routing_policy, + name=name, + records=records, + set_identifier=set_identifier, + ttl=ttl, + type=type, + weighted_routing_policies=weighted_routing_policies, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aliases: Optional[pulumi.Input[Sequence[pulumi.Input['RecordAliasArgs']]]] = None, + allow_overwrite: Optional[pulumi.Input[bool]] = None, + cidr_routing_policy: Optional[pulumi.Input['RecordCidrRoutingPolicyArgs']] = None, + failover_routing_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RecordFailoverRoutingPolicyArgs']]]] = None, + fqdn: Optional[pulumi.Input[str]] = None, + geolocation_routing_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RecordGeolocationRoutingPolicyArgs']]]] = None, + health_check_id: Optional[pulumi.Input[str]] = None, + latency_routing_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RecordLatencyRoutingPolicyArgs']]]] = None, + multivalue_answer_routing_policy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + records: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + set_identifier: Optional[pulumi.Input[str]] = None, + ttl: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[Union[str, 'RecordType']]] = None, + weighted_routing_policies: Optional[pulumi.Input[Sequence[pulumi.Input['RecordWeightedRoutingPolicyArgs']]]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_overwrite is None and 'allowOverwrite' in kwargs: + allow_overwrite = kwargs['allowOverwrite'] + if cidr_routing_policy is None and 'cidrRoutingPolicy' in kwargs: + cidr_routing_policy = kwargs['cidrRoutingPolicy'] + if failover_routing_policies is None and 'failoverRoutingPolicies' in kwargs: + failover_routing_policies = kwargs['failoverRoutingPolicies'] + if geolocation_routing_policies is None and 'geolocationRoutingPolicies' in kwargs: + geolocation_routing_policies = kwargs['geolocationRoutingPolicies'] + if health_check_id is None and 'healthCheckId' in kwargs: + health_check_id = kwargs['healthCheckId'] + if latency_routing_policies is None and 'latencyRoutingPolicies' in kwargs: + latency_routing_policies = kwargs['latencyRoutingPolicies'] + if multivalue_answer_routing_policy is None and 'multivalueAnswerRoutingPolicy' in kwargs: + multivalue_answer_routing_policy = kwargs['multivalueAnswerRoutingPolicy'] + if set_identifier is None and 'setIdentifier' in kwargs: + set_identifier = kwargs['setIdentifier'] + if weighted_routing_policies is None and 'weightedRoutingPolicies' in kwargs: + weighted_routing_policies = kwargs['weightedRoutingPolicies'] + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if aliases is not None: - pulumi.set(__self__, "aliases", aliases) + _setter("aliases", aliases) if allow_overwrite is not None: - pulumi.set(__self__, "allow_overwrite", allow_overwrite) + _setter("allow_overwrite", allow_overwrite) if cidr_routing_policy is not None: - pulumi.set(__self__, "cidr_routing_policy", cidr_routing_policy) + _setter("cidr_routing_policy", cidr_routing_policy) if failover_routing_policies is not None: - pulumi.set(__self__, "failover_routing_policies", failover_routing_policies) + _setter("failover_routing_policies", failover_routing_policies) if fqdn is not None: - pulumi.set(__self__, "fqdn", fqdn) + _setter("fqdn", fqdn) if geolocation_routing_policies is not None: - pulumi.set(__self__, "geolocation_routing_policies", geolocation_routing_policies) + _setter("geolocation_routing_policies", geolocation_routing_policies) if health_check_id is not None: - pulumi.set(__self__, "health_check_id", health_check_id) + _setter("health_check_id", health_check_id) if latency_routing_policies is not None: - pulumi.set(__self__, "latency_routing_policies", latency_routing_policies) + _setter("latency_routing_policies", latency_routing_policies) if multivalue_answer_routing_policy is not None: - pulumi.set(__self__, "multivalue_answer_routing_policy", multivalue_answer_routing_policy) + _setter("multivalue_answer_routing_policy", multivalue_answer_routing_policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if records is not None: - pulumi.set(__self__, "records", records) + _setter("records", records) if set_identifier is not None: - pulumi.set(__self__, "set_identifier", set_identifier) + _setter("set_identifier", set_identifier) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if weighted_routing_policies is not None: - pulumi.set(__self__, "weighted_routing_policies", weighted_routing_policies) + _setter("weighted_routing_policies", weighted_routing_policies) if zone_id is not None: - pulumi.set(__self__, "zone_id", zone_id) + _setter("zone_id", zone_id) @property @pulumi.getter @@ -825,6 +951,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RecordArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -856,6 +986,7 @@ def _internal_init(__self__, __props__.__dict__["aliases"] = aliases __props__.__dict__["allow_overwrite"] = allow_overwrite + cidr_routing_policy = _utilities.configure(cidr_routing_policy, RecordCidrRoutingPolicyArgs, True) __props__.__dict__["cidr_routing_policy"] = cidr_routing_policy __props__.__dict__["failover_routing_policies"] = failover_routing_policies __props__.__dict__["geolocation_routing_policies"] = geolocation_routing_policies diff --git a/sdk/python/pulumi_aws/route53/resolver_config.py b/sdk/python/pulumi_aws/route53/resolver_config.py index 1c307241605..afee7ba217b 100644 --- a/sdk/python/pulumi_aws/route53/resolver_config.py +++ b/sdk/python/pulumi_aws/route53/resolver_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverConfigArgs', 'ResolverConfig'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] autodefined_reverse_flag: Indicates whether or not the Resolver will create autodefined rules for reverse DNS lookups. Valid values: `ENABLE`, `DISABLE`. :param pulumi.Input[str] resource_id: The ID of the VPC that the configuration is for. """ - pulumi.set(__self__, "autodefined_reverse_flag", autodefined_reverse_flag) - pulumi.set(__self__, "resource_id", resource_id) + ResolverConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + autodefined_reverse_flag=autodefined_reverse_flag, + resource_id=resource_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autodefined_reverse_flag: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autodefined_reverse_flag is None and 'autodefinedReverseFlag' in kwargs: + autodefined_reverse_flag = kwargs['autodefinedReverseFlag'] + if autodefined_reverse_flag is None: + raise TypeError("Missing 'autodefined_reverse_flag' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + + _setter("autodefined_reverse_flag", autodefined_reverse_flag) + _setter("resource_id", resource_id) @property @pulumi.getter(name="autodefinedReverseFlag") @@ -61,12 +82,33 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_id: The AWS account ID of the owner of the VPC that this resolver configuration applies to. :param pulumi.Input[str] resource_id: The ID of the VPC that the configuration is for. """ + _ResolverConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + autodefined_reverse_flag=autodefined_reverse_flag, + owner_id=owner_id, + resource_id=resource_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + autodefined_reverse_flag: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if autodefined_reverse_flag is None and 'autodefinedReverseFlag' in kwargs: + autodefined_reverse_flag = kwargs['autodefinedReverseFlag'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if autodefined_reverse_flag is not None: - pulumi.set(__self__, "autodefined_reverse_flag", autodefined_reverse_flag) + _setter("autodefined_reverse_flag", autodefined_reverse_flag) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) @property @pulumi.getter(name="autodefinedReverseFlag") @@ -186,6 +228,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_dns_sec_config.py b/sdk/python/pulumi_aws/route53/resolver_dns_sec_config.py index d980b2ae227..d766561fbad 100644 --- a/sdk/python/pulumi_aws/route53/resolver_dns_sec_config.py +++ b/sdk/python/pulumi_aws/route53/resolver_dns_sec_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverDnsSecConfigArgs', 'ResolverDnsSecConfig'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a ResolverDnsSecConfig resource. :param pulumi.Input[str] resource_id: The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. """ - pulumi.set(__self__, "resource_id", resource_id) + ResolverDnsSecConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_id=resource_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + + _setter("resource_id", resource_id) @property @pulumi.getter(name="resourceId") @@ -48,14 +63,37 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_id: The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. :param pulumi.Input[str] validation_status: The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. """ + _ResolverDnsSecConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + owner_id=owner_id, + resource_id=resource_id, + validation_status=validation_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + validation_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if validation_status is None and 'validationStatus' in kwargs: + validation_status = kwargs['validationStatus'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if validation_status is not None: - pulumi.set(__self__, "validation_status", validation_status) + _setter("validation_status", validation_status) @property @pulumi.getter @@ -185,6 +223,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverDnsSecConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_endpoint.py b/sdk/python/pulumi_aws/route53/resolver_endpoint.py index ba34ed23891..14d09eff458 100644 --- a/sdk/python/pulumi_aws/route53/resolver_endpoint.py +++ b/sdk/python/pulumi_aws/route53/resolver_endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -32,13 +32,42 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The friendly name of the Route 53 Resolver endpoint. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "direction", direction) - pulumi.set(__self__, "ip_addresses", ip_addresses) - pulumi.set(__self__, "security_group_ids", security_group_ids) + ResolverEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + direction=direction, + ip_addresses=ip_addresses, + security_group_ids=security_group_ids, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + direction: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input['ResolverEndpointIpAddressArgs']]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if direction is None: + raise TypeError("Missing 'direction' argument") + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if ip_addresses is None: + raise TypeError("Missing 'ip_addresses' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + + _setter("direction", direction) + _setter("ip_addresses", ip_addresses) + _setter("security_group_ids", security_group_ids) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -129,25 +158,58 @@ def __init__(__self__, *, :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. """ + _ResolverEndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + direction=direction, + host_vpc_id=host_vpc_id, + ip_addresses=ip_addresses, + name=name, + security_group_ids=security_group_ids, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + direction: Optional[pulumi.Input[str]] = None, + host_vpc_id: Optional[pulumi.Input[str]] = None, + ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input['ResolverEndpointIpAddressArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_vpc_id is None and 'hostVpcId' in kwargs: + host_vpc_id = kwargs['hostVpcId'] + if ip_addresses is None and 'ipAddresses' in kwargs: + ip_addresses = kwargs['ipAddresses'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if direction is not None: - pulumi.set(__self__, "direction", direction) + _setter("direction", direction) if host_vpc_id is not None: - pulumi.set(__self__, "host_vpc_id", host_vpc_id) + _setter("host_vpc_id", host_vpc_id) if ip_addresses is not None: - pulumi.set(__self__, "ip_addresses", ip_addresses) + _setter("ip_addresses", ip_addresses) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -368,6 +430,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverEndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_firewall_config.py b/sdk/python/pulumi_aws/route53/resolver_firewall_config.py index 9d65931f412..2dc320caa78 100644 --- a/sdk/python/pulumi_aws/route53/resolver_firewall_config.py +++ b/sdk/python/pulumi_aws/route53/resolver_firewall_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverFirewallConfigArgs', 'ResolverFirewallConfig'] @@ -21,9 +21,28 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_id: The ID of the VPC that the configuration is for. :param pulumi.Input[str] firewall_fail_open: Determines how Route 53 Resolver handles queries during failures, for example when all traffic that is sent to DNS Firewall fails to receive a reply. By default, fail open is disabled, which means the failure mode is closed. This approach favors security over availability. DNS Firewall blocks queries that it is unable to evaluate properly. If you enable this option, the failure mode is open. This approach favors availability over security. DNS Firewall allows queries to proceed if it is unable to properly evaluate them. Valid values: `ENABLED`, `DISABLED`. """ - pulumi.set(__self__, "resource_id", resource_id) + ResolverFirewallConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_id=resource_id, + firewall_fail_open=firewall_fail_open, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_id: Optional[pulumi.Input[str]] = None, + firewall_fail_open: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if firewall_fail_open is None and 'firewallFailOpen' in kwargs: + firewall_fail_open = kwargs['firewallFailOpen'] + + _setter("resource_id", resource_id) if firewall_fail_open is not None: - pulumi.set(__self__, "firewall_fail_open", firewall_fail_open) + _setter("firewall_fail_open", firewall_fail_open) @property @pulumi.getter(name="resourceId") @@ -62,12 +81,33 @@ def __init__(__self__, *, :param pulumi.Input[str] owner_id: The AWS account ID of the owner of the VPC that this firewall configuration applies to. :param pulumi.Input[str] resource_id: The ID of the VPC that the configuration is for. """ + _ResolverFirewallConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_fail_open=firewall_fail_open, + owner_id=owner_id, + resource_id=resource_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_fail_open: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_fail_open is None and 'firewallFailOpen' in kwargs: + firewall_fail_open = kwargs['firewallFailOpen'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if firewall_fail_open is not None: - pulumi.set(__self__, "firewall_fail_open", firewall_fail_open) + _setter("firewall_fail_open", firewall_fail_open) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) @property @pulumi.getter(name="firewallFailOpen") @@ -187,6 +227,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverFirewallConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_firewall_domain_list.py b/sdk/python/pulumi_aws/route53/resolver_firewall_domain_list.py index 2078c864151..34c778ea53f 100644 --- a/sdk/python/pulumi_aws/route53/resolver_firewall_domain_list.py +++ b/sdk/python/pulumi_aws/route53/resolver_firewall_domain_list.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverFirewallDomainListArgs', 'ResolverFirewallDomainList'] @@ -23,12 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name that lets you identify the domain list, to manage and use it. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. f configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + ResolverFirewallDomainListArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domains=domains, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domains is not None: - pulumi.set(__self__, "domains", domains) + _setter("domains", domains) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -83,19 +98,40 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. f 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. """ + _ResolverFirewallDomainListState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domains=domains, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domains is not None: - pulumi.set(__self__, "domains", domains) + _setter("domains", domains) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -236,6 +272,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverFirewallDomainListArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_firewall_rule.py b/sdk/python/pulumi_aws/route53/resolver_firewall_rule.py index 14205200d81..e2d5a0933cc 100644 --- a/sdk/python/pulumi_aws/route53/resolver_firewall_rule.py +++ b/sdk/python/pulumi_aws/route53/resolver_firewall_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverFirewallRuleArgs', 'ResolverFirewallRule'] @@ -35,20 +35,67 @@ def __init__(__self__, *, :param pulumi.Input[str] block_response: The way that you want DNS Firewall to block the request. Valid values: `NODATA`, `NXDOMAIN`, `OVERRIDE`. :param pulumi.Input[str] name: A name that lets you identify the rule, to manage and use it. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "firewall_domain_list_id", firewall_domain_list_id) - pulumi.set(__self__, "firewall_rule_group_id", firewall_rule_group_id) - pulumi.set(__self__, "priority", priority) + ResolverFirewallRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + firewall_domain_list_id=firewall_domain_list_id, + firewall_rule_group_id=firewall_rule_group_id, + priority=priority, + block_override_dns_type=block_override_dns_type, + block_override_domain=block_override_domain, + block_override_ttl=block_override_ttl, + block_response=block_response, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + firewall_domain_list_id: Optional[pulumi.Input[str]] = None, + firewall_rule_group_id: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + block_override_dns_type: Optional[pulumi.Input[str]] = None, + block_override_domain: Optional[pulumi.Input[str]] = None, + block_override_ttl: Optional[pulumi.Input[int]] = None, + block_response: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if firewall_domain_list_id is None and 'firewallDomainListId' in kwargs: + firewall_domain_list_id = kwargs['firewallDomainListId'] + if firewall_domain_list_id is None: + raise TypeError("Missing 'firewall_domain_list_id' argument") + if firewall_rule_group_id is None and 'firewallRuleGroupId' in kwargs: + firewall_rule_group_id = kwargs['firewallRuleGroupId'] + if firewall_rule_group_id is None: + raise TypeError("Missing 'firewall_rule_group_id' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if block_override_dns_type is None and 'blockOverrideDnsType' in kwargs: + block_override_dns_type = kwargs['blockOverrideDnsType'] + if block_override_domain is None and 'blockOverrideDomain' in kwargs: + block_override_domain = kwargs['blockOverrideDomain'] + if block_override_ttl is None and 'blockOverrideTtl' in kwargs: + block_override_ttl = kwargs['blockOverrideTtl'] + if block_response is None and 'blockResponse' in kwargs: + block_response = kwargs['blockResponse'] + + _setter("action", action) + _setter("firewall_domain_list_id", firewall_domain_list_id) + _setter("firewall_rule_group_id", firewall_rule_group_id) + _setter("priority", priority) if block_override_dns_type is not None: - pulumi.set(__self__, "block_override_dns_type", block_override_dns_type) + _setter("block_override_dns_type", block_override_dns_type) if block_override_domain is not None: - pulumi.set(__self__, "block_override_domain", block_override_domain) + _setter("block_override_domain", block_override_domain) if block_override_ttl is not None: - pulumi.set(__self__, "block_override_ttl", block_override_ttl) + _setter("block_override_ttl", block_override_ttl) if block_response is not None: - pulumi.set(__self__, "block_response", block_response) + _setter("block_response", block_response) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -183,24 +230,63 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name that lets you identify the rule, to manage and use it. :param pulumi.Input[int] priority: The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting. """ + _ResolverFirewallRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + block_override_dns_type=block_override_dns_type, + block_override_domain=block_override_domain, + block_override_ttl=block_override_ttl, + block_response=block_response, + firewall_domain_list_id=firewall_domain_list_id, + firewall_rule_group_id=firewall_rule_group_id, + name=name, + priority=priority, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + block_override_dns_type: Optional[pulumi.Input[str]] = None, + block_override_domain: Optional[pulumi.Input[str]] = None, + block_override_ttl: Optional[pulumi.Input[int]] = None, + block_response: Optional[pulumi.Input[str]] = None, + firewall_domain_list_id: Optional[pulumi.Input[str]] = None, + firewall_rule_group_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_override_dns_type is None and 'blockOverrideDnsType' in kwargs: + block_override_dns_type = kwargs['blockOverrideDnsType'] + if block_override_domain is None and 'blockOverrideDomain' in kwargs: + block_override_domain = kwargs['blockOverrideDomain'] + if block_override_ttl is None and 'blockOverrideTtl' in kwargs: + block_override_ttl = kwargs['blockOverrideTtl'] + if block_response is None and 'blockResponse' in kwargs: + block_response = kwargs['blockResponse'] + if firewall_domain_list_id is None and 'firewallDomainListId' in kwargs: + firewall_domain_list_id = kwargs['firewallDomainListId'] + if firewall_rule_group_id is None and 'firewallRuleGroupId' in kwargs: + firewall_rule_group_id = kwargs['firewallRuleGroupId'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if block_override_dns_type is not None: - pulumi.set(__self__, "block_override_dns_type", block_override_dns_type) + _setter("block_override_dns_type", block_override_dns_type) if block_override_domain is not None: - pulumi.set(__self__, "block_override_domain", block_override_domain) + _setter("block_override_domain", block_override_domain) if block_override_ttl is not None: - pulumi.set(__self__, "block_override_ttl", block_override_ttl) + _setter("block_override_ttl", block_override_ttl) if block_response is not None: - pulumi.set(__self__, "block_response", block_response) + _setter("block_response", block_response) if firewall_domain_list_id is not None: - pulumi.set(__self__, "firewall_domain_list_id", firewall_domain_list_id) + _setter("firewall_domain_list_id", firewall_domain_list_id) if firewall_rule_group_id is not None: - pulumi.set(__self__, "firewall_rule_group_id", firewall_rule_group_id) + _setter("firewall_rule_group_id", firewall_rule_group_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) @property @pulumi.getter @@ -422,6 +508,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverFirewallRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_firewall_rule_group.py b/sdk/python/pulumi_aws/route53/resolver_firewall_rule_group.py index 4f53c5fa836..63c9b71eb5b 100644 --- a/sdk/python/pulumi_aws/route53/resolver_firewall_rule_group.py +++ b/sdk/python/pulumi_aws/route53/resolver_firewall_rule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverFirewallRuleGroupArgs', 'ResolverFirewallRuleGroup'] @@ -21,10 +21,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name that lets you identify the rule group, to manage and use it. :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. """ + ResolverFirewallRuleGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -69,21 +82,48 @@ def __init__(__self__, *, :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. """ + _ResolverFirewallRuleGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + owner_id=owner_id, + share_status=share_status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + share_status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if share_status is None and 'shareStatus' in kwargs: + share_status = kwargs['shareStatus'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if share_status is not None: - pulumi.set(__self__, "share_status", share_status) + _setter("share_status", share_status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -234,6 +274,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverFirewallRuleGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_firewall_rule_group_association.py b/sdk/python/pulumi_aws/route53/resolver_firewall_rule_group_association.py index f4cc7327e94..baf416eb89a 100644 --- a/sdk/python/pulumi_aws/route53/resolver_firewall_rule_group_association.py +++ b/sdk/python/pulumi_aws/route53/resolver_firewall_rule_group_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverFirewallRuleGroupAssociationArgs', 'ResolverFirewallRuleGroupAssociation'] @@ -29,15 +29,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A name that lets you identify the rule group association, to manage and use it. :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. """ - pulumi.set(__self__, "firewall_rule_group_id", firewall_rule_group_id) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "vpc_id", vpc_id) + ResolverFirewallRuleGroupAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + firewall_rule_group_id=firewall_rule_group_id, + priority=priority, + vpc_id=vpc_id, + mutation_protection=mutation_protection, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + firewall_rule_group_id: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + mutation_protection: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_rule_group_id is None and 'firewallRuleGroupId' in kwargs: + firewall_rule_group_id = kwargs['firewallRuleGroupId'] + if firewall_rule_group_id is None: + raise TypeError("Missing 'firewall_rule_group_id' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if mutation_protection is None and 'mutationProtection' in kwargs: + mutation_protection = kwargs['mutationProtection'] + + _setter("firewall_rule_group_id", firewall_rule_group_id) + _setter("priority", priority) + _setter("vpc_id", vpc_id) if mutation_protection is not None: - pulumi.set(__self__, "mutation_protection", mutation_protection) + _setter("mutation_protection", mutation_protection) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="firewallRuleGroupId") @@ -134,25 +167,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_id: The unique identifier of the VPC that you want to associate with the rule group. """ + _ResolverFirewallRuleGroupAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + firewall_rule_group_id=firewall_rule_group_id, + mutation_protection=mutation_protection, + name=name, + priority=priority, + tags=tags, + tags_all=tags_all, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + firewall_rule_group_id: Optional[pulumi.Input[str]] = None, + mutation_protection: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if firewall_rule_group_id is None and 'firewallRuleGroupId' in kwargs: + firewall_rule_group_id = kwargs['firewallRuleGroupId'] + if mutation_protection is None and 'mutationProtection' in kwargs: + mutation_protection = kwargs['mutationProtection'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if firewall_rule_group_id is not None: - pulumi.set(__self__, "firewall_rule_group_id", firewall_rule_group_id) + _setter("firewall_rule_group_id", firewall_rule_group_id) if mutation_protection is not None: - pulumi.set(__self__, "mutation_protection", mutation_protection) + _setter("mutation_protection", mutation_protection) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -339,6 +405,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverFirewallRuleGroupAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_query_log_config.py b/sdk/python/pulumi_aws/route53/resolver_query_log_config.py index dabc0038a71..629b367ecb2 100644 --- a/sdk/python/pulumi_aws/route53/resolver_query_log_config.py +++ b/sdk/python/pulumi_aws/route53/resolver_query_log_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverQueryLogConfigArgs', 'ResolverQueryLogConfig'] @@ -24,11 +24,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Route 53 Resolver query logging configuration. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "destination_arn", destination_arn) + ResolverQueryLogConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + + _setter("destination_arn", destination_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="destinationArn") @@ -91,23 +110,54 @@ def __init__(__self__, *, :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. """ + _ResolverQueryLogConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + destination_arn=destination_arn, + name=name, + owner_id=owner_id, + share_status=share_status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + destination_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + share_status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if share_status is None and 'shareStatus' in kwargs: + share_status = kwargs['shareStatus'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if destination_arn is not None: - pulumi.set(__self__, "destination_arn", destination_arn) + _setter("destination_arn", destination_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if share_status is not None: - pulumi.set(__self__, "share_status", share_status) + _setter("share_status", share_status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -284,6 +334,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverQueryLogConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_query_log_config_association.py b/sdk/python/pulumi_aws/route53/resolver_query_log_config_association.py index 1df7fc44599..7cf9113f02c 100644 --- a/sdk/python/pulumi_aws/route53/resolver_query_log_config_association.py +++ b/sdk/python/pulumi_aws/route53/resolver_query_log_config_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverQueryLogConfigAssociationArgs', 'ResolverQueryLogConfigAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resolver_query_log_config_id: The ID of the Route 53 Resolver query logging configuration that you want to associate a VPC with. :param pulumi.Input[str] resource_id: The ID of a VPC that you want this query logging configuration to log queries for. """ - pulumi.set(__self__, "resolver_query_log_config_id", resolver_query_log_config_id) - pulumi.set(__self__, "resource_id", resource_id) + ResolverQueryLogConfigAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resolver_query_log_config_id=resolver_query_log_config_id, + resource_id=resource_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resolver_query_log_config_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resolver_query_log_config_id is None and 'resolverQueryLogConfigId' in kwargs: + resolver_query_log_config_id = kwargs['resolverQueryLogConfigId'] + if resolver_query_log_config_id is None: + raise TypeError("Missing 'resolver_query_log_config_id' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + + _setter("resolver_query_log_config_id", resolver_query_log_config_id) + _setter("resource_id", resource_id) @property @pulumi.getter(name="resolverQueryLogConfigId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] resolver_query_log_config_id: The ID of the Route 53 Resolver query logging configuration that you want to associate a VPC with. :param pulumi.Input[str] resource_id: The ID of a VPC that you want this query logging configuration to log queries for. """ + _ResolverQueryLogConfigAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + resolver_query_log_config_id=resolver_query_log_config_id, + resource_id=resource_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resolver_query_log_config_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resolver_query_log_config_id is None and 'resolverQueryLogConfigId' in kwargs: + resolver_query_log_config_id = kwargs['resolverQueryLogConfigId'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resolver_query_log_config_id is not None: - pulumi.set(__self__, "resolver_query_log_config_id", resolver_query_log_config_id) + _setter("resolver_query_log_config_id", resolver_query_log_config_id) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) @property @pulumi.getter(name="resolverQueryLogConfigId") @@ -166,6 +204,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverQueryLogConfigAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_rule.py b/sdk/python/pulumi_aws/route53/resolver_rule.py index fbe032fae79..2d93eef33cb 100644 --- a/sdk/python/pulumi_aws/route53/resolver_rule.py +++ b/sdk/python/pulumi_aws/route53/resolver_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,16 +33,49 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ResolverRuleTargetIpArgs']]] target_ips: Configuration block(s) indicating the IPs that you want Resolver to forward DNS queries to (documented below). This argument should only be specified for `FORWARD` type rules. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "rule_type", rule_type) + ResolverRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + rule_type=rule_type, + name=name, + resolver_endpoint_id=resolver_endpoint_id, + tags=tags, + target_ips=target_ips, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + rule_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resolver_endpoint_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_ips: Optional[pulumi.Input[Sequence[pulumi.Input['ResolverRuleTargetIpArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if rule_type is None and 'ruleType' in kwargs: + rule_type = kwargs['ruleType'] + if rule_type is None: + raise TypeError("Missing 'rule_type' argument") + if resolver_endpoint_id is None and 'resolverEndpointId' in kwargs: + resolver_endpoint_id = kwargs['resolverEndpointId'] + if target_ips is None and 'targetIps' in kwargs: + target_ips = kwargs['targetIps'] + + _setter("domain_name", domain_name) + _setter("rule_type", rule_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resolver_endpoint_id is not None: - pulumi.set(__self__, "resolver_endpoint_id", resolver_endpoint_id) + _setter("resolver_endpoint_id", resolver_endpoint_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_ips is not None: - pulumi.set(__self__, "target_ips", target_ips) + _setter("target_ips", target_ips) @property @pulumi.getter(name="domainName") @@ -148,29 +181,72 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ResolverRuleTargetIpArgs']]] target_ips: Configuration block(s) indicating the IPs that you want Resolver to forward DNS queries to (documented below). This argument should only be specified for `FORWARD` type rules. """ + _ResolverRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domain_name=domain_name, + name=name, + owner_id=owner_id, + resolver_endpoint_id=resolver_endpoint_id, + rule_type=rule_type, + share_status=share_status, + tags=tags, + tags_all=tags_all, + target_ips=target_ips, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + resolver_endpoint_id: Optional[pulumi.Input[str]] = None, + rule_type: Optional[pulumi.Input[str]] = None, + share_status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_ips: Optional[pulumi.Input[Sequence[pulumi.Input['ResolverRuleTargetIpArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if resolver_endpoint_id is None and 'resolverEndpointId' in kwargs: + resolver_endpoint_id = kwargs['resolverEndpointId'] + if rule_type is None and 'ruleType' in kwargs: + rule_type = kwargs['ruleType'] + if share_status is None and 'shareStatus' in kwargs: + share_status = kwargs['shareStatus'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_ips is None and 'targetIps' in kwargs: + target_ips = kwargs['targetIps'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if resolver_endpoint_id is not None: - pulumi.set(__self__, "resolver_endpoint_id", resolver_endpoint_id) + _setter("resolver_endpoint_id", resolver_endpoint_id) if rule_type is not None: - pulumi.set(__self__, "rule_type", rule_type) + _setter("rule_type", rule_type) if share_status is not None: - pulumi.set(__self__, "share_status", share_status) + _setter("share_status", share_status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_ips is not None: - pulumi.set(__self__, "target_ips", target_ips) + _setter("target_ips", target_ips) @property @pulumi.getter @@ -418,6 +494,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/resolver_rule_association.py b/sdk/python/pulumi_aws/route53/resolver_rule_association.py index 14a45f8e09a..b6fcac1c93e 100644 --- a/sdk/python/pulumi_aws/route53/resolver_rule_association.py +++ b/sdk/python/pulumi_aws/route53/resolver_rule_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResolverRuleAssociationArgs', 'ResolverRuleAssociation'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_id: The ID of the VPC that you want to associate the resolver rule with. :param pulumi.Input[str] name: A name for the association that you're creating between a resolver rule and a VPC. """ - pulumi.set(__self__, "resolver_rule_id", resolver_rule_id) - pulumi.set(__self__, "vpc_id", vpc_id) + ResolverRuleAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resolver_rule_id=resolver_rule_id, + vpc_id=vpc_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resolver_rule_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resolver_rule_id is None and 'resolverRuleId' in kwargs: + resolver_rule_id = kwargs['resolverRuleId'] + if resolver_rule_id is None: + raise TypeError("Missing 'resolver_rule_id' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("resolver_rule_id", resolver_rule_id) + _setter("vpc_id", vpc_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="resolverRuleId") @@ -77,12 +100,31 @@ def __init__(__self__, *, :param pulumi.Input[str] resolver_rule_id: The ID of the resolver rule that you want to associate with the VPC. :param pulumi.Input[str] vpc_id: The ID of the VPC that you want to associate the resolver rule with. """ + _ResolverRuleAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + resolver_rule_id=resolver_rule_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + resolver_rule_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resolver_rule_id is None and 'resolverRuleId' in kwargs: + resolver_rule_id = kwargs['resolverRuleId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resolver_rule_id is not None: - pulumi.set(__self__, "resolver_rule_id", resolver_rule_id) + _setter("resolver_rule_id", resolver_rule_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter @@ -196,6 +238,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResolverRuleAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/traffic_policy.py b/sdk/python/pulumi_aws/route53/traffic_policy.py index 6b4f4c2707e..c9b20a2ff57 100644 --- a/sdk/python/pulumi_aws/route53/traffic_policy.py +++ b/sdk/python/pulumi_aws/route53/traffic_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TrafficPolicyArgs', 'TrafficPolicy'] @@ -25,11 +25,28 @@ def __init__(__self__, *, :param pulumi.Input[str] comment: Comment for the traffic policy. :param pulumi.Input[str] name: Name of the traffic policy. """ - pulumi.set(__self__, "document", document) + TrafficPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + document=document, + comment=comment, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + document: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if document is None: + raise TypeError("Missing 'document' argument") + + _setter("document", document) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -88,16 +105,35 @@ def __init__(__self__, *, :param pulumi.Input[str] type: DNS type of the resource record sets that Amazon Route 53 creates when you use a traffic policy to create a traffic policy instance. :param pulumi.Input[int] version: Version number of the traffic policy. This value is automatically incremented by AWS after each update of this resource. """ + _TrafficPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + document=document, + name=name, + type=type, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + document: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if document is not None: - pulumi.set(__self__, "document", document) + _setter("document", document) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -263,6 +299,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrafficPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/traffic_policy_instance.py b/sdk/python/pulumi_aws/route53/traffic_policy_instance.py index db6d7f58a86..0d854ab8976 100644 --- a/sdk/python/pulumi_aws/route53/traffic_policy_instance.py +++ b/sdk/python/pulumi_aws/route53/traffic_policy_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TrafficPolicyInstanceArgs', 'TrafficPolicyInstance'] @@ -27,12 +27,45 @@ def __init__(__self__, *, :param pulumi.Input[int] ttl: TTL that you want Amazon Route 53 to assign to all the resource record sets that it creates in the specified hosted zone. :param pulumi.Input[str] name: Domain name for which Amazon Route 53 responds to DNS queries by using the resource record sets that Route 53 creates for this traffic policy instance. """ - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) - pulumi.set(__self__, "traffic_policy_id", traffic_policy_id) - pulumi.set(__self__, "traffic_policy_version", traffic_policy_version) - pulumi.set(__self__, "ttl", ttl) + TrafficPolicyInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hosted_zone_id=hosted_zone_id, + traffic_policy_id=traffic_policy_id, + traffic_policy_version=traffic_policy_version, + ttl=ttl, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hosted_zone_id: Optional[pulumi.Input[str]] = None, + traffic_policy_id: Optional[pulumi.Input[str]] = None, + traffic_policy_version: Optional[pulumi.Input[int]] = None, + ttl: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if hosted_zone_id is None: + raise TypeError("Missing 'hosted_zone_id' argument") + if traffic_policy_id is None and 'trafficPolicyId' in kwargs: + traffic_policy_id = kwargs['trafficPolicyId'] + if traffic_policy_id is None: + raise TypeError("Missing 'traffic_policy_id' argument") + if traffic_policy_version is None and 'trafficPolicyVersion' in kwargs: + traffic_policy_version = kwargs['trafficPolicyVersion'] + if traffic_policy_version is None: + raise TypeError("Missing 'traffic_policy_version' argument") + if ttl is None: + raise TypeError("Missing 'ttl' argument") + + _setter("hosted_zone_id", hosted_zone_id) + _setter("traffic_policy_id", traffic_policy_id) + _setter("traffic_policy_version", traffic_policy_version) + _setter("ttl", ttl) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="hostedZoneId") @@ -111,16 +144,41 @@ def __init__(__self__, *, :param pulumi.Input[int] traffic_policy_version: Version of the traffic policy :param pulumi.Input[int] ttl: TTL that you want Amazon Route 53 to assign to all the resource record sets that it creates in the specified hosted zone. """ + _TrafficPolicyInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + hosted_zone_id=hosted_zone_id, + name=name, + traffic_policy_id=traffic_policy_id, + traffic_policy_version=traffic_policy_version, + ttl=ttl, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hosted_zone_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + traffic_policy_id: Optional[pulumi.Input[str]] = None, + traffic_policy_version: Optional[pulumi.Input[int]] = None, + ttl: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if traffic_policy_id is None and 'trafficPolicyId' in kwargs: + traffic_policy_id = kwargs['trafficPolicyId'] + if traffic_policy_version is None and 'trafficPolicyVersion' in kwargs: + traffic_policy_version = kwargs['trafficPolicyVersion'] + if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if traffic_policy_id is not None: - pulumi.set(__self__, "traffic_policy_id", traffic_policy_id) + _setter("traffic_policy_id", traffic_policy_id) if traffic_policy_version is not None: - pulumi.set(__self__, "traffic_policy_version", traffic_policy_version) + _setter("traffic_policy_version", traffic_policy_version) if ttl is not None: - pulumi.set(__self__, "ttl", ttl) + _setter("ttl", ttl) @property @pulumi.getter(name="hostedZoneId") @@ -266,6 +324,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrafficPolicyInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/vpc_association_authorization.py b/sdk/python/pulumi_aws/route53/vpc_association_authorization.py index 297dd7395ef..a0938fb0df3 100644 --- a/sdk/python/pulumi_aws/route53/vpc_association_authorization.py +++ b/sdk/python/pulumi_aws/route53/vpc_association_authorization.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VpcAssociationAuthorizationArgs', 'VpcAssociationAuthorization'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] zone_id: The ID of the private hosted zone that you want to authorize associating a VPC with. :param pulumi.Input[str] vpc_region: The VPC's region. Defaults to the region of the AWS provider. """ - pulumi.set(__self__, "vpc_id", vpc_id) - pulumi.set(__self__, "zone_id", zone_id) + VpcAssociationAuthorizationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + zone_id=zone_id, + vpc_region=vpc_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + vpc_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if zone_id is None: + raise TypeError("Missing 'zone_id' argument") + if vpc_region is None and 'vpcRegion' in kwargs: + vpc_region = kwargs['vpcRegion'] + + _setter("vpc_id", vpc_id) + _setter("zone_id", zone_id) if vpc_region is not None: - pulumi.set(__self__, "vpc_region", vpc_region) + _setter("vpc_region", vpc_region) @property @pulumi.getter(name="vpcId") @@ -77,12 +102,33 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_region: The VPC's region. Defaults to the region of the AWS provider. :param pulumi.Input[str] zone_id: The ID of the private hosted zone that you want to authorize associating a VPC with. """ + _VpcAssociationAuthorizationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + vpc_region=vpc_region, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + vpc_region: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_region is None and 'vpcRegion' in kwargs: + vpc_region = kwargs['vpcRegion'] + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if vpc_region is not None: - pulumi.set(__self__, "vpc_region", vpc_region) + _setter("vpc_region", vpc_region) if zone_id is not None: - pulumi.set(__self__, "zone_id", zone_id) + _setter("zone_id", zone_id) @property @pulumi.getter(name="vpcId") @@ -230,6 +276,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VpcAssociationAuthorizationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/zone.py b/sdk/python/pulumi_aws/route53/zone.py index 95308075e8a..76de3aed4ea 100644 --- a/sdk/python/pulumi_aws/route53/zone.py +++ b/sdk/python/pulumi_aws/route53/zone.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,20 +31,45 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the zone. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['ZoneVpcArgs']]] vpcs: Configuration block(s) specifying VPC(s) to associate with a private hosted zone. Conflicts with the `delegation_set_id` argument in this resource and any `route53.ZoneAssociation` resource specifying the same zone ID. Detailed below. """ + ZoneArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comment=comment, + delegation_set_id=delegation_set_id, + force_destroy=force_destroy, + name=name, + tags=tags, + vpcs=vpcs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comment: Optional[pulumi.Input[str]] = None, + delegation_set_id: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['ZoneVpcArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delegation_set_id is None and 'delegationSetId' in kwargs: + delegation_set_id = kwargs['delegationSetId'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if comment is None: comment = 'Managed by Pulumi' if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if delegation_set_id is not None: - pulumi.set(__self__, "delegation_set_id", delegation_set_id) + _setter("delegation_set_id", delegation_set_id) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpcs is not None: - pulumi.set(__self__, "vpcs", vpcs) + _setter("vpcs", vpcs) @property @pulumi.getter @@ -148,33 +173,76 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ZoneVpcArgs']]] vpcs: Configuration block(s) specifying VPC(s) to associate with a private hosted zone. Conflicts with the `delegation_set_id` argument in this resource and any `route53.ZoneAssociation` resource specifying the same zone ID. Detailed below. :param pulumi.Input[str] zone_id: The Hosted Zone ID. This can be referenced by zone records. """ + _ZoneState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + comment=comment, + delegation_set_id=delegation_set_id, + force_destroy=force_destroy, + name=name, + name_servers=name_servers, + primary_name_server=primary_name_server, + tags=tags, + tags_all=tags_all, + vpcs=vpcs, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + comment: Optional[pulumi.Input[str]] = None, + delegation_set_id: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + name_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + primary_name_server: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['ZoneVpcArgs']]]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delegation_set_id is None and 'delegationSetId' in kwargs: + delegation_set_id = kwargs['delegationSetId'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if name_servers is None and 'nameServers' in kwargs: + name_servers = kwargs['nameServers'] + if primary_name_server is None and 'primaryNameServer' in kwargs: + primary_name_server = kwargs['primaryNameServer'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if comment is None: comment = 'Managed by Pulumi' if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if delegation_set_id is not None: - pulumi.set(__self__, "delegation_set_id", delegation_set_id) + _setter("delegation_set_id", delegation_set_id) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_servers is not None: - pulumi.set(__self__, "name_servers", name_servers) + _setter("name_servers", name_servers) if primary_name_server is not None: - pulumi.set(__self__, "primary_name_server", primary_name_server) + _setter("primary_name_server", primary_name_server) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpcs is not None: - pulumi.set(__self__, "vpcs", vpcs) + _setter("vpcs", vpcs) if zone_id is not None: - pulumi.set(__self__, "zone_id", zone_id) + _setter("zone_id", zone_id) @property @pulumi.getter @@ -462,6 +530,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ZoneArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53/zone_association.py b/sdk/python/pulumi_aws/route53/zone_association.py index 7e1f5edfb1f..cb6cd07c26a 100644 --- a/sdk/python/pulumi_aws/route53/zone_association.py +++ b/sdk/python/pulumi_aws/route53/zone_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ZoneAssociationArgs', 'ZoneAssociation'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] zone_id: The private hosted zone to associate. :param pulumi.Input[str] vpc_region: The VPC's region. Defaults to the region of the AWS provider. """ - pulumi.set(__self__, "vpc_id", vpc_id) - pulumi.set(__self__, "zone_id", zone_id) + ZoneAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + zone_id=zone_id, + vpc_region=vpc_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + vpc_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if zone_id is None: + raise TypeError("Missing 'zone_id' argument") + if vpc_region is None and 'vpcRegion' in kwargs: + vpc_region = kwargs['vpcRegion'] + + _setter("vpc_id", vpc_id) + _setter("zone_id", zone_id) if vpc_region is not None: - pulumi.set(__self__, "vpc_region", vpc_region) + _setter("vpc_region", vpc_region) @property @pulumi.getter(name="vpcId") @@ -79,14 +104,39 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_region: The VPC's region. Defaults to the region of the AWS provider. :param pulumi.Input[str] zone_id: The private hosted zone to associate. """ + _ZoneAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + owning_account=owning_account, + vpc_id=vpc_id, + vpc_region=vpc_region, + zone_id=zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owning_account: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + vpc_region: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owning_account is None and 'owningAccount' in kwargs: + owning_account = kwargs['owningAccount'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_region is None and 'vpcRegion' in kwargs: + vpc_region = kwargs['vpcRegion'] + if zone_id is None and 'zoneId' in kwargs: + zone_id = kwargs['zoneId'] + if owning_account is not None: - pulumi.set(__self__, "owning_account", owning_account) + _setter("owning_account", owning_account) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) if vpc_region is not None: - pulumi.set(__self__, "vpc_region", vpc_region) + _setter("vpc_region", vpc_region) if zone_id is not None: - pulumi.set(__self__, "zone_id", zone_id) + _setter("zone_id", zone_id) @property @pulumi.getter(name="owningAccount") @@ -260,6 +310,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ZoneAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53domains/_inputs.py b/sdk/python/pulumi_aws/route53domains/_inputs.py index fbca943cfdc..cccb0fd5d86 100644 --- a/sdk/python/pulumi_aws/route53domains/_inputs.py +++ b/sdk/python/pulumi_aws/route53domains/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -49,34 +49,91 @@ def __init__(__self__, *, :param pulumi.Input[str] state: The state or province of the contact's city. :param pulumi.Input[str] zip_code: The zip or postal code of the contact's address. """ + RegisteredDomainAdminContactArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_line1=address_line1, + address_line2=address_line2, + city=city, + contact_type=contact_type, + country_code=country_code, + email=email, + extra_params=extra_params, + fax=fax, + first_name=first_name, + last_name=last_name, + organization_name=organization_name, + phone_number=phone_number, + state=state, + zip_code=zip_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_line1: Optional[pulumi.Input[str]] = None, + address_line2: Optional[pulumi.Input[str]] = None, + city: Optional[pulumi.Input[str]] = None, + contact_type: Optional[pulumi.Input[str]] = None, + country_code: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + fax: Optional[pulumi.Input[str]] = None, + first_name: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None, + organization_name: Optional[pulumi.Input[str]] = None, + phone_number: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + zip_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_line1 is None and 'addressLine1' in kwargs: + address_line1 = kwargs['addressLine1'] + if address_line2 is None and 'addressLine2' in kwargs: + address_line2 = kwargs['addressLine2'] + if contact_type is None and 'contactType' in kwargs: + contact_type = kwargs['contactType'] + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if extra_params is None and 'extraParams' in kwargs: + extra_params = kwargs['extraParams'] + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if organization_name is None and 'organizationName' in kwargs: + organization_name = kwargs['organizationName'] + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if zip_code is None and 'zipCode' in kwargs: + zip_code = kwargs['zipCode'] + if address_line1 is not None: - pulumi.set(__self__, "address_line1", address_line1) + _setter("address_line1", address_line1) if address_line2 is not None: - pulumi.set(__self__, "address_line2", address_line2) + _setter("address_line2", address_line2) if city is not None: - pulumi.set(__self__, "city", city) + _setter("city", city) if contact_type is not None: - pulumi.set(__self__, "contact_type", contact_type) + _setter("contact_type", contact_type) if country_code is not None: - pulumi.set(__self__, "country_code", country_code) + _setter("country_code", country_code) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if extra_params is not None: - pulumi.set(__self__, "extra_params", extra_params) + _setter("extra_params", extra_params) if fax is not None: - pulumi.set(__self__, "fax", fax) + _setter("fax", fax) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if organization_name is not None: - pulumi.set(__self__, "organization_name", organization_name) + _setter("organization_name", organization_name) if phone_number is not None: - pulumi.set(__self__, "phone_number", phone_number) + _setter("phone_number", phone_number) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if zip_code is not None: - pulumi.set(__self__, "zip_code", zip_code) + _setter("zip_code", zip_code) @property @pulumi.getter(name="addressLine1") @@ -256,9 +313,26 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The fully qualified host name of the name server. :param pulumi.Input[Sequence[pulumi.Input[str]]] glue_ips: Glue IP addresses of a name server. The list can contain only one IPv4 and one IPv6 address. """ - pulumi.set(__self__, "name", name) + RegisteredDomainNameServerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + glue_ips=glue_ips, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + glue_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if glue_ips is None and 'glueIps' in kwargs: + glue_ips = kwargs['glueIps'] + + _setter("name", name) if glue_ips is not None: - pulumi.set(__self__, "glue_ips", glue_ips) + _setter("glue_ips", glue_ips) @property @pulumi.getter @@ -318,34 +392,91 @@ def __init__(__self__, *, :param pulumi.Input[str] state: The state or province of the contact's city. :param pulumi.Input[str] zip_code: The zip or postal code of the contact's address. """ + RegisteredDomainRegistrantContactArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_line1=address_line1, + address_line2=address_line2, + city=city, + contact_type=contact_type, + country_code=country_code, + email=email, + extra_params=extra_params, + fax=fax, + first_name=first_name, + last_name=last_name, + organization_name=organization_name, + phone_number=phone_number, + state=state, + zip_code=zip_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_line1: Optional[pulumi.Input[str]] = None, + address_line2: Optional[pulumi.Input[str]] = None, + city: Optional[pulumi.Input[str]] = None, + contact_type: Optional[pulumi.Input[str]] = None, + country_code: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + fax: Optional[pulumi.Input[str]] = None, + first_name: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None, + organization_name: Optional[pulumi.Input[str]] = None, + phone_number: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + zip_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_line1 is None and 'addressLine1' in kwargs: + address_line1 = kwargs['addressLine1'] + if address_line2 is None and 'addressLine2' in kwargs: + address_line2 = kwargs['addressLine2'] + if contact_type is None and 'contactType' in kwargs: + contact_type = kwargs['contactType'] + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if extra_params is None and 'extraParams' in kwargs: + extra_params = kwargs['extraParams'] + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if organization_name is None and 'organizationName' in kwargs: + organization_name = kwargs['organizationName'] + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if zip_code is None and 'zipCode' in kwargs: + zip_code = kwargs['zipCode'] + if address_line1 is not None: - pulumi.set(__self__, "address_line1", address_line1) + _setter("address_line1", address_line1) if address_line2 is not None: - pulumi.set(__self__, "address_line2", address_line2) + _setter("address_line2", address_line2) if city is not None: - pulumi.set(__self__, "city", city) + _setter("city", city) if contact_type is not None: - pulumi.set(__self__, "contact_type", contact_type) + _setter("contact_type", contact_type) if country_code is not None: - pulumi.set(__self__, "country_code", country_code) + _setter("country_code", country_code) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if extra_params is not None: - pulumi.set(__self__, "extra_params", extra_params) + _setter("extra_params", extra_params) if fax is not None: - pulumi.set(__self__, "fax", fax) + _setter("fax", fax) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if organization_name is not None: - pulumi.set(__self__, "organization_name", organization_name) + _setter("organization_name", organization_name) if phone_number is not None: - pulumi.set(__self__, "phone_number", phone_number) + _setter("phone_number", phone_number) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if zip_code is not None: - pulumi.set(__self__, "zip_code", zip_code) + _setter("zip_code", zip_code) @property @pulumi.getter(name="addressLine1") @@ -549,34 +680,91 @@ def __init__(__self__, *, :param pulumi.Input[str] state: The state or province of the contact's city. :param pulumi.Input[str] zip_code: The zip or postal code of the contact's address. """ + RegisteredDomainTechContactArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_line1=address_line1, + address_line2=address_line2, + city=city, + contact_type=contact_type, + country_code=country_code, + email=email, + extra_params=extra_params, + fax=fax, + first_name=first_name, + last_name=last_name, + organization_name=organization_name, + phone_number=phone_number, + state=state, + zip_code=zip_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_line1: Optional[pulumi.Input[str]] = None, + address_line2: Optional[pulumi.Input[str]] = None, + city: Optional[pulumi.Input[str]] = None, + contact_type: Optional[pulumi.Input[str]] = None, + country_code: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + extra_params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + fax: Optional[pulumi.Input[str]] = None, + first_name: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None, + organization_name: Optional[pulumi.Input[str]] = None, + phone_number: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + zip_code: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_line1 is None and 'addressLine1' in kwargs: + address_line1 = kwargs['addressLine1'] + if address_line2 is None and 'addressLine2' in kwargs: + address_line2 = kwargs['addressLine2'] + if contact_type is None and 'contactType' in kwargs: + contact_type = kwargs['contactType'] + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if extra_params is None and 'extraParams' in kwargs: + extra_params = kwargs['extraParams'] + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if organization_name is None and 'organizationName' in kwargs: + organization_name = kwargs['organizationName'] + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if zip_code is None and 'zipCode' in kwargs: + zip_code = kwargs['zipCode'] + if address_line1 is not None: - pulumi.set(__self__, "address_line1", address_line1) + _setter("address_line1", address_line1) if address_line2 is not None: - pulumi.set(__self__, "address_line2", address_line2) + _setter("address_line2", address_line2) if city is not None: - pulumi.set(__self__, "city", city) + _setter("city", city) if contact_type is not None: - pulumi.set(__self__, "contact_type", contact_type) + _setter("contact_type", contact_type) if country_code is not None: - pulumi.set(__self__, "country_code", country_code) + _setter("country_code", country_code) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if extra_params is not None: - pulumi.set(__self__, "extra_params", extra_params) + _setter("extra_params", extra_params) if fax is not None: - pulumi.set(__self__, "fax", fax) + _setter("fax", fax) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if organization_name is not None: - pulumi.set(__self__, "organization_name", organization_name) + _setter("organization_name", organization_name) if phone_number is not None: - pulumi.set(__self__, "phone_number", phone_number) + _setter("phone_number", phone_number) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if zip_code is not None: - pulumi.set(__self__, "zip_code", zip_code) + _setter("zip_code", zip_code) @property @pulumi.getter(name="addressLine1") diff --git a/sdk/python/pulumi_aws/route53domains/outputs.py b/sdk/python/pulumi_aws/route53domains/outputs.py index dbcdc6395a0..b4fbfe7a9a3 100644 --- a/sdk/python/pulumi_aws/route53domains/outputs.py +++ b/sdk/python/pulumi_aws/route53domains/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -84,34 +84,91 @@ def __init__(__self__, *, :param str state: The state or province of the contact's city. :param str zip_code: The zip or postal code of the contact's address. """ + RegisteredDomainAdminContact._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_line1=address_line1, + address_line2=address_line2, + city=city, + contact_type=contact_type, + country_code=country_code, + email=email, + extra_params=extra_params, + fax=fax, + first_name=first_name, + last_name=last_name, + organization_name=organization_name, + phone_number=phone_number, + state=state, + zip_code=zip_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_line1: Optional[str] = None, + address_line2: Optional[str] = None, + city: Optional[str] = None, + contact_type: Optional[str] = None, + country_code: Optional[str] = None, + email: Optional[str] = None, + extra_params: Optional[Mapping[str, str]] = None, + fax: Optional[str] = None, + first_name: Optional[str] = None, + last_name: Optional[str] = None, + organization_name: Optional[str] = None, + phone_number: Optional[str] = None, + state: Optional[str] = None, + zip_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_line1 is None and 'addressLine1' in kwargs: + address_line1 = kwargs['addressLine1'] + if address_line2 is None and 'addressLine2' in kwargs: + address_line2 = kwargs['addressLine2'] + if contact_type is None and 'contactType' in kwargs: + contact_type = kwargs['contactType'] + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if extra_params is None and 'extraParams' in kwargs: + extra_params = kwargs['extraParams'] + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if organization_name is None and 'organizationName' in kwargs: + organization_name = kwargs['organizationName'] + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if zip_code is None and 'zipCode' in kwargs: + zip_code = kwargs['zipCode'] + if address_line1 is not None: - pulumi.set(__self__, "address_line1", address_line1) + _setter("address_line1", address_line1) if address_line2 is not None: - pulumi.set(__self__, "address_line2", address_line2) + _setter("address_line2", address_line2) if city is not None: - pulumi.set(__self__, "city", city) + _setter("city", city) if contact_type is not None: - pulumi.set(__self__, "contact_type", contact_type) + _setter("contact_type", contact_type) if country_code is not None: - pulumi.set(__self__, "country_code", country_code) + _setter("country_code", country_code) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if extra_params is not None: - pulumi.set(__self__, "extra_params", extra_params) + _setter("extra_params", extra_params) if fax is not None: - pulumi.set(__self__, "fax", fax) + _setter("fax", fax) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if organization_name is not None: - pulumi.set(__self__, "organization_name", organization_name) + _setter("organization_name", organization_name) if phone_number is not None: - pulumi.set(__self__, "phone_number", phone_number) + _setter("phone_number", phone_number) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if zip_code is not None: - pulumi.set(__self__, "zip_code", zip_code) + _setter("zip_code", zip_code) @property @pulumi.getter(name="addressLine1") @@ -252,9 +309,26 @@ def __init__(__self__, *, :param str name: The fully qualified host name of the name server. :param Sequence[str] glue_ips: Glue IP addresses of a name server. The list can contain only one IPv4 and one IPv6 address. """ - pulumi.set(__self__, "name", name) + RegisteredDomainNameServer._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + glue_ips=glue_ips, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + glue_ips: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if glue_ips is None and 'glueIps' in kwargs: + glue_ips = kwargs['glueIps'] + + _setter("name", name) if glue_ips is not None: - pulumi.set(__self__, "glue_ips", glue_ips) + _setter("glue_ips", glue_ips) @property @pulumi.getter @@ -341,34 +415,91 @@ def __init__(__self__, *, :param str state: The state or province of the contact's city. :param str zip_code: The zip or postal code of the contact's address. """ + RegisteredDomainRegistrantContact._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_line1=address_line1, + address_line2=address_line2, + city=city, + contact_type=contact_type, + country_code=country_code, + email=email, + extra_params=extra_params, + fax=fax, + first_name=first_name, + last_name=last_name, + organization_name=organization_name, + phone_number=phone_number, + state=state, + zip_code=zip_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_line1: Optional[str] = None, + address_line2: Optional[str] = None, + city: Optional[str] = None, + contact_type: Optional[str] = None, + country_code: Optional[str] = None, + email: Optional[str] = None, + extra_params: Optional[Mapping[str, str]] = None, + fax: Optional[str] = None, + first_name: Optional[str] = None, + last_name: Optional[str] = None, + organization_name: Optional[str] = None, + phone_number: Optional[str] = None, + state: Optional[str] = None, + zip_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_line1 is None and 'addressLine1' in kwargs: + address_line1 = kwargs['addressLine1'] + if address_line2 is None and 'addressLine2' in kwargs: + address_line2 = kwargs['addressLine2'] + if contact_type is None and 'contactType' in kwargs: + contact_type = kwargs['contactType'] + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if extra_params is None and 'extraParams' in kwargs: + extra_params = kwargs['extraParams'] + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if organization_name is None and 'organizationName' in kwargs: + organization_name = kwargs['organizationName'] + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if zip_code is None and 'zipCode' in kwargs: + zip_code = kwargs['zipCode'] + if address_line1 is not None: - pulumi.set(__self__, "address_line1", address_line1) + _setter("address_line1", address_line1) if address_line2 is not None: - pulumi.set(__self__, "address_line2", address_line2) + _setter("address_line2", address_line2) if city is not None: - pulumi.set(__self__, "city", city) + _setter("city", city) if contact_type is not None: - pulumi.set(__self__, "contact_type", contact_type) + _setter("contact_type", contact_type) if country_code is not None: - pulumi.set(__self__, "country_code", country_code) + _setter("country_code", country_code) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if extra_params is not None: - pulumi.set(__self__, "extra_params", extra_params) + _setter("extra_params", extra_params) if fax is not None: - pulumi.set(__self__, "fax", fax) + _setter("fax", fax) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if organization_name is not None: - pulumi.set(__self__, "organization_name", organization_name) + _setter("organization_name", organization_name) if phone_number is not None: - pulumi.set(__self__, "phone_number", phone_number) + _setter("phone_number", phone_number) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if zip_code is not None: - pulumi.set(__self__, "zip_code", zip_code) + _setter("zip_code", zip_code) @property @pulumi.getter(name="addressLine1") @@ -551,34 +682,91 @@ def __init__(__self__, *, :param str state: The state or province of the contact's city. :param str zip_code: The zip or postal code of the contact's address. """ + RegisteredDomainTechContact._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_line1=address_line1, + address_line2=address_line2, + city=city, + contact_type=contact_type, + country_code=country_code, + email=email, + extra_params=extra_params, + fax=fax, + first_name=first_name, + last_name=last_name, + organization_name=organization_name, + phone_number=phone_number, + state=state, + zip_code=zip_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_line1: Optional[str] = None, + address_line2: Optional[str] = None, + city: Optional[str] = None, + contact_type: Optional[str] = None, + country_code: Optional[str] = None, + email: Optional[str] = None, + extra_params: Optional[Mapping[str, str]] = None, + fax: Optional[str] = None, + first_name: Optional[str] = None, + last_name: Optional[str] = None, + organization_name: Optional[str] = None, + phone_number: Optional[str] = None, + state: Optional[str] = None, + zip_code: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_line1 is None and 'addressLine1' in kwargs: + address_line1 = kwargs['addressLine1'] + if address_line2 is None and 'addressLine2' in kwargs: + address_line2 = kwargs['addressLine2'] + if contact_type is None and 'contactType' in kwargs: + contact_type = kwargs['contactType'] + if country_code is None and 'countryCode' in kwargs: + country_code = kwargs['countryCode'] + if extra_params is None and 'extraParams' in kwargs: + extra_params = kwargs['extraParams'] + if first_name is None and 'firstName' in kwargs: + first_name = kwargs['firstName'] + if last_name is None and 'lastName' in kwargs: + last_name = kwargs['lastName'] + if organization_name is None and 'organizationName' in kwargs: + organization_name = kwargs['organizationName'] + if phone_number is None and 'phoneNumber' in kwargs: + phone_number = kwargs['phoneNumber'] + if zip_code is None and 'zipCode' in kwargs: + zip_code = kwargs['zipCode'] + if address_line1 is not None: - pulumi.set(__self__, "address_line1", address_line1) + _setter("address_line1", address_line1) if address_line2 is not None: - pulumi.set(__self__, "address_line2", address_line2) + _setter("address_line2", address_line2) if city is not None: - pulumi.set(__self__, "city", city) + _setter("city", city) if contact_type is not None: - pulumi.set(__self__, "contact_type", contact_type) + _setter("contact_type", contact_type) if country_code is not None: - pulumi.set(__self__, "country_code", country_code) + _setter("country_code", country_code) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if extra_params is not None: - pulumi.set(__self__, "extra_params", extra_params) + _setter("extra_params", extra_params) if fax is not None: - pulumi.set(__self__, "fax", fax) + _setter("fax", fax) if first_name is not None: - pulumi.set(__self__, "first_name", first_name) + _setter("first_name", first_name) if last_name is not None: - pulumi.set(__self__, "last_name", last_name) + _setter("last_name", last_name) if organization_name is not None: - pulumi.set(__self__, "organization_name", organization_name) + _setter("organization_name", organization_name) if phone_number is not None: - pulumi.set(__self__, "phone_number", phone_number) + _setter("phone_number", phone_number) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if zip_code is not None: - pulumi.set(__self__, "zip_code", zip_code) + _setter("zip_code", zip_code) @property @pulumi.getter(name="addressLine1") diff --git a/sdk/python/pulumi_aws/route53domains/registered_domain.py b/sdk/python/pulumi_aws/route53domains/registered_domain.py index 9bf868eae07..130bb3b4bb7 100644 --- a/sdk/python/pulumi_aws/route53domains/registered_domain.py +++ b/sdk/python/pulumi_aws/route53domains/registered_domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,27 +41,80 @@ def __init__(__self__, *, :param pulumi.Input[bool] tech_privacy: Whether domain technical contact information is concealed from WHOIS queries. Default: `true`. :param pulumi.Input[bool] transfer_lock: Whether the domain is locked for transfer. Default: `true`. """ - pulumi.set(__self__, "domain_name", domain_name) + RegisteredDomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + admin_contact=admin_contact, + admin_privacy=admin_privacy, + auto_renew=auto_renew, + name_servers=name_servers, + registrant_contact=registrant_contact, + registrant_privacy=registrant_privacy, + tags=tags, + tech_contact=tech_contact, + tech_privacy=tech_privacy, + transfer_lock=transfer_lock, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + admin_contact: Optional[pulumi.Input['RegisteredDomainAdminContactArgs']] = None, + admin_privacy: Optional[pulumi.Input[bool]] = None, + auto_renew: Optional[pulumi.Input[bool]] = None, + name_servers: Optional[pulumi.Input[Sequence[pulumi.Input['RegisteredDomainNameServerArgs']]]] = None, + registrant_contact: Optional[pulumi.Input['RegisteredDomainRegistrantContactArgs']] = None, + registrant_privacy: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tech_contact: Optional[pulumi.Input['RegisteredDomainTechContactArgs']] = None, + tech_privacy: Optional[pulumi.Input[bool]] = None, + transfer_lock: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if admin_contact is None and 'adminContact' in kwargs: + admin_contact = kwargs['adminContact'] + if admin_privacy is None and 'adminPrivacy' in kwargs: + admin_privacy = kwargs['adminPrivacy'] + if auto_renew is None and 'autoRenew' in kwargs: + auto_renew = kwargs['autoRenew'] + if name_servers is None and 'nameServers' in kwargs: + name_servers = kwargs['nameServers'] + if registrant_contact is None and 'registrantContact' in kwargs: + registrant_contact = kwargs['registrantContact'] + if registrant_privacy is None and 'registrantPrivacy' in kwargs: + registrant_privacy = kwargs['registrantPrivacy'] + if tech_contact is None and 'techContact' in kwargs: + tech_contact = kwargs['techContact'] + if tech_privacy is None and 'techPrivacy' in kwargs: + tech_privacy = kwargs['techPrivacy'] + if transfer_lock is None and 'transferLock' in kwargs: + transfer_lock = kwargs['transferLock'] + + _setter("domain_name", domain_name) if admin_contact is not None: - pulumi.set(__self__, "admin_contact", admin_contact) + _setter("admin_contact", admin_contact) if admin_privacy is not None: - pulumi.set(__self__, "admin_privacy", admin_privacy) + _setter("admin_privacy", admin_privacy) if auto_renew is not None: - pulumi.set(__self__, "auto_renew", auto_renew) + _setter("auto_renew", auto_renew) if name_servers is not None: - pulumi.set(__self__, "name_servers", name_servers) + _setter("name_servers", name_servers) if registrant_contact is not None: - pulumi.set(__self__, "registrant_contact", registrant_contact) + _setter("registrant_contact", registrant_contact) if registrant_privacy is not None: - pulumi.set(__self__, "registrant_privacy", registrant_privacy) + _setter("registrant_privacy", registrant_privacy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tech_contact is not None: - pulumi.set(__self__, "tech_contact", tech_contact) + _setter("tech_contact", tech_contact) if tech_privacy is not None: - pulumi.set(__self__, "tech_privacy", tech_privacy) + _setter("tech_privacy", tech_privacy) if transfer_lock is not None: - pulumi.set(__self__, "transfer_lock", transfer_lock) + _setter("transfer_lock", transfer_lock) @property @pulumi.getter(name="domainName") @@ -246,53 +299,146 @@ def __init__(__self__, *, :param pulumi.Input[str] updated_date: The last updated date of the domain as found in the response to a WHOIS query. :param pulumi.Input[str] whois_server: The fully qualified name of the WHOIS server that can answer the WHOIS query for the domain. """ + _RegisteredDomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + abuse_contact_email=abuse_contact_email, + abuse_contact_phone=abuse_contact_phone, + admin_contact=admin_contact, + admin_privacy=admin_privacy, + auto_renew=auto_renew, + creation_date=creation_date, + domain_name=domain_name, + expiration_date=expiration_date, + name_servers=name_servers, + registrant_contact=registrant_contact, + registrant_privacy=registrant_privacy, + registrar_name=registrar_name, + registrar_url=registrar_url, + reseller=reseller, + status_lists=status_lists, + tags=tags, + tags_all=tags_all, + tech_contact=tech_contact, + tech_privacy=tech_privacy, + transfer_lock=transfer_lock, + updated_date=updated_date, + whois_server=whois_server, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + abuse_contact_email: Optional[pulumi.Input[str]] = None, + abuse_contact_phone: Optional[pulumi.Input[str]] = None, + admin_contact: Optional[pulumi.Input['RegisteredDomainAdminContactArgs']] = None, + admin_privacy: Optional[pulumi.Input[bool]] = None, + auto_renew: Optional[pulumi.Input[bool]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + expiration_date: Optional[pulumi.Input[str]] = None, + name_servers: Optional[pulumi.Input[Sequence[pulumi.Input['RegisteredDomainNameServerArgs']]]] = None, + registrant_contact: Optional[pulumi.Input['RegisteredDomainRegistrantContactArgs']] = None, + registrant_privacy: Optional[pulumi.Input[bool]] = None, + registrar_name: Optional[pulumi.Input[str]] = None, + registrar_url: Optional[pulumi.Input[str]] = None, + reseller: Optional[pulumi.Input[str]] = None, + status_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tech_contact: Optional[pulumi.Input['RegisteredDomainTechContactArgs']] = None, + tech_privacy: Optional[pulumi.Input[bool]] = None, + transfer_lock: Optional[pulumi.Input[bool]] = None, + updated_date: Optional[pulumi.Input[str]] = None, + whois_server: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if abuse_contact_email is None and 'abuseContactEmail' in kwargs: + abuse_contact_email = kwargs['abuseContactEmail'] + if abuse_contact_phone is None and 'abuseContactPhone' in kwargs: + abuse_contact_phone = kwargs['abuseContactPhone'] + if admin_contact is None and 'adminContact' in kwargs: + admin_contact = kwargs['adminContact'] + if admin_privacy is None and 'adminPrivacy' in kwargs: + admin_privacy = kwargs['adminPrivacy'] + if auto_renew is None and 'autoRenew' in kwargs: + auto_renew = kwargs['autoRenew'] + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if expiration_date is None and 'expirationDate' in kwargs: + expiration_date = kwargs['expirationDate'] + if name_servers is None and 'nameServers' in kwargs: + name_servers = kwargs['nameServers'] + if registrant_contact is None and 'registrantContact' in kwargs: + registrant_contact = kwargs['registrantContact'] + if registrant_privacy is None and 'registrantPrivacy' in kwargs: + registrant_privacy = kwargs['registrantPrivacy'] + if registrar_name is None and 'registrarName' in kwargs: + registrar_name = kwargs['registrarName'] + if registrar_url is None and 'registrarUrl' in kwargs: + registrar_url = kwargs['registrarUrl'] + if status_lists is None and 'statusLists' in kwargs: + status_lists = kwargs['statusLists'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tech_contact is None and 'techContact' in kwargs: + tech_contact = kwargs['techContact'] + if tech_privacy is None and 'techPrivacy' in kwargs: + tech_privacy = kwargs['techPrivacy'] + if transfer_lock is None and 'transferLock' in kwargs: + transfer_lock = kwargs['transferLock'] + if updated_date is None and 'updatedDate' in kwargs: + updated_date = kwargs['updatedDate'] + if whois_server is None and 'whoisServer' in kwargs: + whois_server = kwargs['whoisServer'] + if abuse_contact_email is not None: - pulumi.set(__self__, "abuse_contact_email", abuse_contact_email) + _setter("abuse_contact_email", abuse_contact_email) if abuse_contact_phone is not None: - pulumi.set(__self__, "abuse_contact_phone", abuse_contact_phone) + _setter("abuse_contact_phone", abuse_contact_phone) if admin_contact is not None: - pulumi.set(__self__, "admin_contact", admin_contact) + _setter("admin_contact", admin_contact) if admin_privacy is not None: - pulumi.set(__self__, "admin_privacy", admin_privacy) + _setter("admin_privacy", admin_privacy) if auto_renew is not None: - pulumi.set(__self__, "auto_renew", auto_renew) + _setter("auto_renew", auto_renew) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if expiration_date is not None: - pulumi.set(__self__, "expiration_date", expiration_date) + _setter("expiration_date", expiration_date) if name_servers is not None: - pulumi.set(__self__, "name_servers", name_servers) + _setter("name_servers", name_servers) if registrant_contact is not None: - pulumi.set(__self__, "registrant_contact", registrant_contact) + _setter("registrant_contact", registrant_contact) if registrant_privacy is not None: - pulumi.set(__self__, "registrant_privacy", registrant_privacy) + _setter("registrant_privacy", registrant_privacy) if registrar_name is not None: - pulumi.set(__self__, "registrar_name", registrar_name) + _setter("registrar_name", registrar_name) if registrar_url is not None: - pulumi.set(__self__, "registrar_url", registrar_url) + _setter("registrar_url", registrar_url) if reseller is not None: - pulumi.set(__self__, "reseller", reseller) + _setter("reseller", reseller) if status_lists is not None: - pulumi.set(__self__, "status_lists", status_lists) + _setter("status_lists", status_lists) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tech_contact is not None: - pulumi.set(__self__, "tech_contact", tech_contact) + _setter("tech_contact", tech_contact) if tech_privacy is not None: - pulumi.set(__self__, "tech_privacy", tech_privacy) + _setter("tech_privacy", tech_privacy) if transfer_lock is not None: - pulumi.set(__self__, "transfer_lock", transfer_lock) + _setter("transfer_lock", transfer_lock) if updated_date is not None: - pulumi.set(__self__, "updated_date", updated_date) + _setter("updated_date", updated_date) if whois_server is not None: - pulumi.set(__self__, "whois_server", whois_server) + _setter("whois_server", whois_server) @property @pulumi.getter(name="abuseContactEmail") @@ -665,6 +811,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegisteredDomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -690,6 +840,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = RegisteredDomainArgs.__new__(RegisteredDomainArgs) + admin_contact = _utilities.configure(admin_contact, RegisteredDomainAdminContactArgs, True) __props__.__dict__["admin_contact"] = admin_contact __props__.__dict__["admin_privacy"] = admin_privacy __props__.__dict__["auto_renew"] = auto_renew @@ -697,9 +848,11 @@ def _internal_init(__self__, raise TypeError("Missing required property 'domain_name'") __props__.__dict__["domain_name"] = domain_name __props__.__dict__["name_servers"] = name_servers + registrant_contact = _utilities.configure(registrant_contact, RegisteredDomainRegistrantContactArgs, True) __props__.__dict__["registrant_contact"] = registrant_contact __props__.__dict__["registrant_privacy"] = registrant_privacy __props__.__dict__["tags"] = tags + tech_contact = _utilities.configure(tech_contact, RegisteredDomainTechContactArgs, True) __props__.__dict__["tech_contact"] = tech_contact __props__.__dict__["tech_privacy"] = tech_privacy __props__.__dict__["transfer_lock"] = transfer_lock diff --git a/sdk/python/pulumi_aws/route53recoverycontrol/_inputs.py b/sdk/python/pulumi_aws/route53recoverycontrol/_inputs.py index 5425babcc67..140da148dbd 100644 --- a/sdk/python/pulumi_aws/route53recoverycontrol/_inputs.py +++ b/sdk/python/pulumi_aws/route53recoverycontrol/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,10 +23,23 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint: Cluster endpoint. :param pulumi.Input[str] region: Region of the endpoint. """ + ClusterClusterEndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -64,9 +77,30 @@ def __init__(__self__, *, :param pulumi.Input[int] threshold: Number of controls that must be set when you specify an `ATLEAST` type rule. :param pulumi.Input[str] type: Rule type. Valid values are `ATLEAST`, `AND`, and `OR`. """ - pulumi.set(__self__, "inverted", inverted) - pulumi.set(__self__, "threshold", threshold) - pulumi.set(__self__, "type", type) + SafetyRuleRuleConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + inverted=inverted, + threshold=threshold, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inverted: Optional[pulumi.Input[bool]] = None, + threshold: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inverted is None: + raise TypeError("Missing 'inverted' argument") + if threshold is None: + raise TypeError("Missing 'threshold' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("inverted", inverted) + _setter("threshold", threshold) + _setter("type", type) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/route53recoverycontrol/cluster.py b/sdk/python/pulumi_aws/route53recoverycontrol/cluster.py index 881b46815fe..da73ffb9605 100644 --- a/sdk/python/pulumi_aws/route53recoverycontrol/cluster.py +++ b/sdk/python/pulumi_aws/route53recoverycontrol/cluster.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -21,8 +21,19 @@ def __init__(__self__, *, The set of arguments for constructing a Cluster resource. :param pulumi.Input[str] name: Unique name describing the cluster. """ + ClusterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -51,14 +62,33 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Unique name describing the cluster. :param pulumi.Input[str] status: Status of cluster. `PENDING` when it is being created, `PENDING_DELETION` when it is being deleted and `DEPLOYED` otherwise. """ + _ClusterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cluster_endpoints=cluster_endpoints, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cluster_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterClusterEndpointArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_endpoints is None and 'clusterEndpoints' in kwargs: + cluster_endpoints = kwargs['clusterEndpoints'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_endpoints is not None: - pulumi.set(__self__, "cluster_endpoints", cluster_endpoints) + _setter("cluster_endpoints", cluster_endpoints) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -176,6 +206,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ClusterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53recoverycontrol/control_panel.py b/sdk/python/pulumi_aws/route53recoverycontrol/control_panel.py index 6d2f6cf4276..4f659fc4459 100644 --- a/sdk/python/pulumi_aws/route53recoverycontrol/control_panel.py +++ b/sdk/python/pulumi_aws/route53recoverycontrol/control_panel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ControlPanelArgs', 'ControlPanel'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_arn: ARN of the cluster in which this control panel will reside. :param pulumi.Input[str] name: Name describing the control panel. """ - pulumi.set(__self__, "cluster_arn", cluster_arn) + ControlPanelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_arn=cluster_arn, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_arn is None and 'clusterArn' in kwargs: + cluster_arn = kwargs['clusterArn'] + if cluster_arn is None: + raise TypeError("Missing 'cluster_arn' argument") + + _setter("cluster_arn", cluster_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="clusterArn") @@ -68,18 +85,45 @@ def __init__(__self__, *, :param pulumi.Input[int] routing_control_count: Number routing controls in a control panel. :param pulumi.Input[str] status: Status of control panel: `PENDING` when it is being created/updated, `PENDING_DELETION` when it is being deleted, and `DEPLOYED` otherwise. """ + _ControlPanelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cluster_arn=cluster_arn, + default_control_panel=default_control_panel, + name=name, + routing_control_count=routing_control_count, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cluster_arn: Optional[pulumi.Input[str]] = None, + default_control_panel: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + routing_control_count: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_arn is None and 'clusterArn' in kwargs: + cluster_arn = kwargs['clusterArn'] + if default_control_panel is None and 'defaultControlPanel' in kwargs: + default_control_panel = kwargs['defaultControlPanel'] + if routing_control_count is None and 'routingControlCount' in kwargs: + routing_control_count = kwargs['routingControlCount'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_arn is not None: - pulumi.set(__self__, "cluster_arn", cluster_arn) + _setter("cluster_arn", cluster_arn) if default_control_panel is not None: - pulumi.set(__self__, "default_control_panel", default_control_panel) + _setter("default_control_panel", default_control_panel) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if routing_control_count is not None: - pulumi.set(__self__, "routing_control_count", routing_control_count) + _setter("routing_control_count", routing_control_count) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -223,6 +267,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ControlPanelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53recoverycontrol/outputs.py b/sdk/python/pulumi_aws/route53recoverycontrol/outputs.py index daea5a788a7..12b3b87fb5f 100644 --- a/sdk/python/pulumi_aws/route53recoverycontrol/outputs.py +++ b/sdk/python/pulumi_aws/route53recoverycontrol/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,10 +23,23 @@ def __init__(__self__, *, :param str endpoint: Cluster endpoint. :param str region: Region of the endpoint. """ + ClusterClusterEndpoint._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -56,9 +69,30 @@ def __init__(__self__, *, :param int threshold: Number of controls that must be set when you specify an `ATLEAST` type rule. :param str type: Rule type. Valid values are `ATLEAST`, `AND`, and `OR`. """ - pulumi.set(__self__, "inverted", inverted) - pulumi.set(__self__, "threshold", threshold) - pulumi.set(__self__, "type", type) + SafetyRuleRuleConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + inverted=inverted, + threshold=threshold, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inverted: Optional[bool] = None, + threshold: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inverted is None: + raise TypeError("Missing 'inverted' argument") + if threshold is None: + raise TypeError("Missing 'threshold' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("inverted", inverted) + _setter("threshold", threshold) + _setter("type", type) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/route53recoverycontrol/routing_control.py b/sdk/python/pulumi_aws/route53recoverycontrol/routing_control.py index 9a8ae0f645b..d18f15820b5 100644 --- a/sdk/python/pulumi_aws/route53recoverycontrol/routing_control.py +++ b/sdk/python/pulumi_aws/route53recoverycontrol/routing_control.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RoutingControlArgs', 'RoutingControl'] @@ -25,11 +25,32 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "cluster_arn", cluster_arn) + RoutingControlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_arn=cluster_arn, + control_panel_arn=control_panel_arn, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_arn: Optional[pulumi.Input[str]] = None, + control_panel_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_arn is None and 'clusterArn' in kwargs: + cluster_arn = kwargs['clusterArn'] + if cluster_arn is None: + raise TypeError("Missing 'cluster_arn' argument") + if control_panel_arn is None and 'controlPanelArn' in kwargs: + control_panel_arn = kwargs['controlPanelArn'] + + _setter("cluster_arn", cluster_arn) if control_panel_arn is not None: - pulumi.set(__self__, "control_panel_arn", control_panel_arn) + _setter("control_panel_arn", control_panel_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="clusterArn") @@ -88,16 +109,39 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] status: Status of routing control. `PENDING` when it is being created/updated, `PENDING_DELETION` when it is being deleted, and `DEPLOYED` otherwise. """ + _RoutingControlState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cluster_arn=cluster_arn, + control_panel_arn=control_panel_arn, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cluster_arn: Optional[pulumi.Input[str]] = None, + control_panel_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_arn is None and 'clusterArn' in kwargs: + cluster_arn = kwargs['clusterArn'] + if control_panel_arn is None and 'controlPanelArn' in kwargs: + control_panel_arn = kwargs['controlPanelArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cluster_arn is not None: - pulumi.set(__self__, "cluster_arn", cluster_arn) + _setter("cluster_arn", cluster_arn) if control_panel_arn is not None: - pulumi.set(__self__, "control_panel_arn", control_panel_arn) + _setter("control_panel_arn", control_panel_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -253,6 +297,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RoutingControlArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53recoverycontrol/safety_rule.py b/sdk/python/pulumi_aws/route53recoverycontrol/safety_rule.py index 6310a541759..b46ccfc6407 100644 --- a/sdk/python/pulumi_aws/route53recoverycontrol/safety_rule.py +++ b/sdk/python/pulumi_aws/route53recoverycontrol/safety_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,17 +35,58 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name describing the safety rule. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_controls: Routing controls that can only be set or unset if the specified `rule_config` evaluates to true for the specified `gating_controls`. """ - pulumi.set(__self__, "control_panel_arn", control_panel_arn) - pulumi.set(__self__, "rule_config", rule_config) - pulumi.set(__self__, "wait_period_ms", wait_period_ms) + SafetyRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + control_panel_arn=control_panel_arn, + rule_config=rule_config, + wait_period_ms=wait_period_ms, + asserted_controls=asserted_controls, + gating_controls=gating_controls, + name=name, + target_controls=target_controls, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + control_panel_arn: Optional[pulumi.Input[str]] = None, + rule_config: Optional[pulumi.Input['SafetyRuleRuleConfigArgs']] = None, + wait_period_ms: Optional[pulumi.Input[int]] = None, + asserted_controls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + gating_controls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + target_controls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if control_panel_arn is None and 'controlPanelArn' in kwargs: + control_panel_arn = kwargs['controlPanelArn'] + if control_panel_arn is None: + raise TypeError("Missing 'control_panel_arn' argument") + if rule_config is None and 'ruleConfig' in kwargs: + rule_config = kwargs['ruleConfig'] + if rule_config is None: + raise TypeError("Missing 'rule_config' argument") + if wait_period_ms is None and 'waitPeriodMs' in kwargs: + wait_period_ms = kwargs['waitPeriodMs'] + if wait_period_ms is None: + raise TypeError("Missing 'wait_period_ms' argument") + if asserted_controls is None and 'assertedControls' in kwargs: + asserted_controls = kwargs['assertedControls'] + if gating_controls is None and 'gatingControls' in kwargs: + gating_controls = kwargs['gatingControls'] + if target_controls is None and 'targetControls' in kwargs: + target_controls = kwargs['targetControls'] + + _setter("control_panel_arn", control_panel_arn) + _setter("rule_config", rule_config) + _setter("wait_period_ms", wait_period_ms) if asserted_controls is not None: - pulumi.set(__self__, "asserted_controls", asserted_controls) + _setter("asserted_controls", asserted_controls) if gating_controls is not None: - pulumi.set(__self__, "gating_controls", gating_controls) + _setter("gating_controls", gating_controls) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if target_controls is not None: - pulumi.set(__self__, "target_controls", target_controls) + _setter("target_controls", target_controls) @property @pulumi.getter(name="controlPanelArn") @@ -160,24 +201,63 @@ def __init__(__self__, *, The following arguments are optional: """ + _SafetyRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + asserted_controls=asserted_controls, + control_panel_arn=control_panel_arn, + gating_controls=gating_controls, + name=name, + rule_config=rule_config, + status=status, + target_controls=target_controls, + wait_period_ms=wait_period_ms, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + asserted_controls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + control_panel_arn: Optional[pulumi.Input[str]] = None, + gating_controls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + rule_config: Optional[pulumi.Input['SafetyRuleRuleConfigArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + target_controls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + wait_period_ms: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if asserted_controls is None and 'assertedControls' in kwargs: + asserted_controls = kwargs['assertedControls'] + if control_panel_arn is None and 'controlPanelArn' in kwargs: + control_panel_arn = kwargs['controlPanelArn'] + if gating_controls is None and 'gatingControls' in kwargs: + gating_controls = kwargs['gatingControls'] + if rule_config is None and 'ruleConfig' in kwargs: + rule_config = kwargs['ruleConfig'] + if target_controls is None and 'targetControls' in kwargs: + target_controls = kwargs['targetControls'] + if wait_period_ms is None and 'waitPeriodMs' in kwargs: + wait_period_ms = kwargs['waitPeriodMs'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if asserted_controls is not None: - pulumi.set(__self__, "asserted_controls", asserted_controls) + _setter("asserted_controls", asserted_controls) if control_panel_arn is not None: - pulumi.set(__self__, "control_panel_arn", control_panel_arn) + _setter("control_panel_arn", control_panel_arn) if gating_controls is not None: - pulumi.set(__self__, "gating_controls", gating_controls) + _setter("gating_controls", gating_controls) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rule_config is not None: - pulumi.set(__self__, "rule_config", rule_config) + _setter("rule_config", rule_config) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if target_controls is not None: - pulumi.set(__self__, "target_controls", target_controls) + _setter("target_controls", target_controls) if wait_period_ms is not None: - pulumi.set(__self__, "wait_period_ms", wait_period_ms) + _setter("wait_period_ms", wait_period_ms) @property @pulumi.getter @@ -419,6 +499,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SafetyRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -446,6 +530,7 @@ def _internal_init(__self__, __props__.__dict__["control_panel_arn"] = control_panel_arn __props__.__dict__["gating_controls"] = gating_controls __props__.__dict__["name"] = name + rule_config = _utilities.configure(rule_config, SafetyRuleRuleConfigArgs, True) if rule_config is None and not opts.urn: raise TypeError("Missing required property 'rule_config'") __props__.__dict__["rule_config"] = rule_config diff --git a/sdk/python/pulumi_aws/route53recoveryreadiness/_inputs.py b/sdk/python/pulumi_aws/route53recoveryreadiness/_inputs.py index bad0724b42c..91d33788364 100644 --- a/sdk/python/pulumi_aws/route53recoveryreadiness/_inputs.py +++ b/sdk/python/pulumi_aws/route53recoveryreadiness/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,14 +29,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] readiness_scopes: Recovery group ARN or cell ARN that contains this resource set. :param pulumi.Input[str] resource_arn: ARN of the resource. """ + ResourceSetResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_id=component_id, + dns_target_resource=dns_target_resource, + readiness_scopes=readiness_scopes, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_id: Optional[pulumi.Input[str]] = None, + dns_target_resource: Optional[pulumi.Input['ResourceSetResourceDnsTargetResourceArgs']] = None, + readiness_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_id is None and 'componentId' in kwargs: + component_id = kwargs['componentId'] + if dns_target_resource is None and 'dnsTargetResource' in kwargs: + dns_target_resource = kwargs['dnsTargetResource'] + if readiness_scopes is None and 'readinessScopes' in kwargs: + readiness_scopes = kwargs['readinessScopes'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if component_id is not None: - pulumi.set(__self__, "component_id", component_id) + _setter("component_id", component_id) if dns_target_resource is not None: - pulumi.set(__self__, "dns_target_resource", dns_target_resource) + _setter("dns_target_resource", dns_target_resource) if readiness_scopes is not None: - pulumi.set(__self__, "readiness_scopes", readiness_scopes) + _setter("readiness_scopes", readiness_scopes) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="componentId") @@ -99,15 +124,46 @@ def __init__(__self__, *, :param pulumi.Input[str] record_type: Type of DNS Record of target resource. :param pulumi.Input['ResourceSetResourceDnsTargetResourceTargetResourceArgs'] target_resource: Target resource the R53 record specified with the above params points to. """ - pulumi.set(__self__, "domain_name", domain_name) + ResourceSetResourceDnsTargetResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + hosted_zone_arn=hosted_zone_arn, + record_set_id=record_set_id, + record_type=record_type, + target_resource=target_resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + hosted_zone_arn: Optional[pulumi.Input[str]] = None, + record_set_id: Optional[pulumi.Input[str]] = None, + record_type: Optional[pulumi.Input[str]] = None, + target_resource: Optional[pulumi.Input['ResourceSetResourceDnsTargetResourceTargetResourceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if hosted_zone_arn is None and 'hostedZoneArn' in kwargs: + hosted_zone_arn = kwargs['hostedZoneArn'] + if record_set_id is None and 'recordSetId' in kwargs: + record_set_id = kwargs['recordSetId'] + if record_type is None and 'recordType' in kwargs: + record_type = kwargs['recordType'] + if target_resource is None and 'targetResource' in kwargs: + target_resource = kwargs['targetResource'] + + _setter("domain_name", domain_name) if hosted_zone_arn is not None: - pulumi.set(__self__, "hosted_zone_arn", hosted_zone_arn) + _setter("hosted_zone_arn", hosted_zone_arn) if record_set_id is not None: - pulumi.set(__self__, "record_set_id", record_set_id) + _setter("record_set_id", record_set_id) if record_type is not None: - pulumi.set(__self__, "record_type", record_type) + _setter("record_type", record_type) if target_resource is not None: - pulumi.set(__self__, "target_resource", target_resource) + _setter("target_resource", target_resource) @property @pulumi.getter(name="domainName") @@ -179,10 +235,27 @@ def __init__(__self__, *, :param pulumi.Input['ResourceSetResourceDnsTargetResourceTargetResourceNlbResourceArgs'] nlb_resource: NLB resource a DNS Target Resource points to. Required if `r53_resource` is not set. :param pulumi.Input['ResourceSetResourceDnsTargetResourceTargetResourceR53ResourceArgs'] r53_resource: Route53 resource a DNS Target Resource record points to. """ + ResourceSetResourceDnsTargetResourceTargetResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + nlb_resource=nlb_resource, + r53_resource=r53_resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nlb_resource: Optional[pulumi.Input['ResourceSetResourceDnsTargetResourceTargetResourceNlbResourceArgs']] = None, + r53_resource: Optional[pulumi.Input['ResourceSetResourceDnsTargetResourceTargetResourceR53ResourceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nlb_resource is None and 'nlbResource' in kwargs: + nlb_resource = kwargs['nlbResource'] + if r53_resource is None and 'r53Resource' in kwargs: + r53_resource = kwargs['r53Resource'] + if nlb_resource is not None: - pulumi.set(__self__, "nlb_resource", nlb_resource) + _setter("nlb_resource", nlb_resource) if r53_resource is not None: - pulumi.set(__self__, "r53_resource", r53_resource) + _setter("r53_resource", r53_resource) @property @pulumi.getter(name="nlbResource") @@ -216,8 +289,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] arn: NLB resource ARN. """ + ResourceSetResourceDnsTargetResourceTargetResourceNlbResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) @property @pulumi.getter @@ -241,10 +325,27 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: DNS Name that acts as the ingress point to a portion of application. :param pulumi.Input[str] record_set_id: Route53 record set id to uniquely identify a record given a `domain_name` and a `record_type`. """ + ResourceSetResourceDnsTargetResourceTargetResourceR53ResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + record_set_id=record_set_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + record_set_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if record_set_id is None and 'recordSetId' in kwargs: + record_set_id = kwargs['recordSetId'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if record_set_id is not None: - pulumi.set(__self__, "record_set_id", record_set_id) + _setter("record_set_id", record_set_id) @property @pulumi.getter(name="domainName") diff --git a/sdk/python/pulumi_aws/route53recoveryreadiness/cell.py b/sdk/python/pulumi_aws/route53recoveryreadiness/cell.py index 8af4a20c14f..0dbbb21a98f 100644 --- a/sdk/python/pulumi_aws/route53recoveryreadiness/cell.py +++ b/sdk/python/pulumi_aws/route53recoveryreadiness/cell.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CellArgs', 'Cell'] @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] cells: List of cell arns to add as nested fault domains within this cell. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ - pulumi.set(__self__, "cell_name", cell_name) + CellArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cell_name=cell_name, + cells=cells, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cell_name: Optional[pulumi.Input[str]] = None, + cells: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cell_name is None and 'cellName' in kwargs: + cell_name = kwargs['cellName'] + if cell_name is None: + raise TypeError("Missing 'cell_name' argument") + + _setter("cell_name", cell_name) if cells is not None: - pulumi.set(__self__, "cells", cells) + _setter("cells", cells) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="cellName") @@ -90,21 +109,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _CellState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cell_name=cell_name, + cells=cells, + parent_readiness_scopes=parent_readiness_scopes, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cell_name: Optional[pulumi.Input[str]] = None, + cells: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + parent_readiness_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cell_name is None and 'cellName' in kwargs: + cell_name = kwargs['cellName'] + if parent_readiness_scopes is None and 'parentReadinessScopes' in kwargs: + parent_readiness_scopes = kwargs['parentReadinessScopes'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cell_name is not None: - pulumi.set(__self__, "cell_name", cell_name) + _setter("cell_name", cell_name) if cells is not None: - pulumi.set(__self__, "cells", cells) + _setter("cells", cells) if parent_readiness_scopes is not None: - pulumi.set(__self__, "parent_readiness_scopes", parent_readiness_scopes) + _setter("parent_readiness_scopes", parent_readiness_scopes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -257,6 +303,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CellArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53recoveryreadiness/outputs.py b/sdk/python/pulumi_aws/route53recoveryreadiness/outputs.py index bd5c9fe20d0..736607b4d65 100644 --- a/sdk/python/pulumi_aws/route53recoveryreadiness/outputs.py +++ b/sdk/python/pulumi_aws/route53recoveryreadiness/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -53,14 +53,39 @@ def __init__(__self__, *, :param Sequence[str] readiness_scopes: Recovery group ARN or cell ARN that contains this resource set. :param str resource_arn: ARN of the resource. """ + ResourceSetResource._configure( + lambda key, value: pulumi.set(__self__, key, value), + component_id=component_id, + dns_target_resource=dns_target_resource, + readiness_scopes=readiness_scopes, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + component_id: Optional[str] = None, + dns_target_resource: Optional['outputs.ResourceSetResourceDnsTargetResource'] = None, + readiness_scopes: Optional[Sequence[str]] = None, + resource_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if component_id is None and 'componentId' in kwargs: + component_id = kwargs['componentId'] + if dns_target_resource is None and 'dnsTargetResource' in kwargs: + dns_target_resource = kwargs['dnsTargetResource'] + if readiness_scopes is None and 'readinessScopes' in kwargs: + readiness_scopes = kwargs['readinessScopes'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if component_id is not None: - pulumi.set(__self__, "component_id", component_id) + _setter("component_id", component_id) if dns_target_resource is not None: - pulumi.set(__self__, "dns_target_resource", dns_target_resource) + _setter("dns_target_resource", dns_target_resource) if readiness_scopes is not None: - pulumi.set(__self__, "readiness_scopes", readiness_scopes) + _setter("readiness_scopes", readiness_scopes) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="componentId") @@ -132,15 +157,46 @@ def __init__(__self__, *, :param str record_type: Type of DNS Record of target resource. :param 'ResourceSetResourceDnsTargetResourceTargetResourceArgs' target_resource: Target resource the R53 record specified with the above params points to. """ - pulumi.set(__self__, "domain_name", domain_name) + ResourceSetResourceDnsTargetResource._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + hosted_zone_arn=hosted_zone_arn, + record_set_id=record_set_id, + record_type=record_type, + target_resource=target_resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + hosted_zone_arn: Optional[str] = None, + record_set_id: Optional[str] = None, + record_type: Optional[str] = None, + target_resource: Optional['outputs.ResourceSetResourceDnsTargetResourceTargetResource'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if hosted_zone_arn is None and 'hostedZoneArn' in kwargs: + hosted_zone_arn = kwargs['hostedZoneArn'] + if record_set_id is None and 'recordSetId' in kwargs: + record_set_id = kwargs['recordSetId'] + if record_type is None and 'recordType' in kwargs: + record_type = kwargs['recordType'] + if target_resource is None and 'targetResource' in kwargs: + target_resource = kwargs['targetResource'] + + _setter("domain_name", domain_name) if hosted_zone_arn is not None: - pulumi.set(__self__, "hosted_zone_arn", hosted_zone_arn) + _setter("hosted_zone_arn", hosted_zone_arn) if record_set_id is not None: - pulumi.set(__self__, "record_set_id", record_set_id) + _setter("record_set_id", record_set_id) if record_type is not None: - pulumi.set(__self__, "record_type", record_type) + _setter("record_type", record_type) if target_resource is not None: - pulumi.set(__self__, "target_resource", target_resource) + _setter("target_resource", target_resource) @property @pulumi.getter(name="domainName") @@ -211,10 +267,27 @@ def __init__(__self__, *, :param 'ResourceSetResourceDnsTargetResourceTargetResourceNlbResourceArgs' nlb_resource: NLB resource a DNS Target Resource points to. Required if `r53_resource` is not set. :param 'ResourceSetResourceDnsTargetResourceTargetResourceR53ResourceArgs' r53_resource: Route53 resource a DNS Target Resource record points to. """ + ResourceSetResourceDnsTargetResourceTargetResource._configure( + lambda key, value: pulumi.set(__self__, key, value), + nlb_resource=nlb_resource, + r53_resource=r53_resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + nlb_resource: Optional['outputs.ResourceSetResourceDnsTargetResourceTargetResourceNlbResource'] = None, + r53_resource: Optional['outputs.ResourceSetResourceDnsTargetResourceTargetResourceR53Resource'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if nlb_resource is None and 'nlbResource' in kwargs: + nlb_resource = kwargs['nlbResource'] + if r53_resource is None and 'r53Resource' in kwargs: + r53_resource = kwargs['r53Resource'] + if nlb_resource is not None: - pulumi.set(__self__, "nlb_resource", nlb_resource) + _setter("nlb_resource", nlb_resource) if r53_resource is not None: - pulumi.set(__self__, "r53_resource", r53_resource) + _setter("r53_resource", r53_resource) @property @pulumi.getter(name="nlbResource") @@ -240,8 +313,19 @@ def __init__(__self__, *, """ :param str arn: NLB resource ARN. """ + ResourceSetResourceDnsTargetResourceTargetResourceNlbResource._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) @property @pulumi.getter @@ -280,10 +364,27 @@ def __init__(__self__, *, :param str domain_name: DNS Name that acts as the ingress point to a portion of application. :param str record_set_id: Route53 record set id to uniquely identify a record given a `domain_name` and a `record_type`. """ + ResourceSetResourceDnsTargetResourceTargetResourceR53Resource._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + record_set_id=record_set_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + record_set_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if record_set_id is None and 'recordSetId' in kwargs: + record_set_id = kwargs['recordSetId'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if record_set_id is not None: - pulumi.set(__self__, "record_set_id", record_set_id) + _setter("record_set_id", record_set_id) @property @pulumi.getter(name="domainName") diff --git a/sdk/python/pulumi_aws/route53recoveryreadiness/readiness_check.py b/sdk/python/pulumi_aws/route53recoveryreadiness/readiness_check.py index 175e7af4e7c..5c583f228d9 100644 --- a/sdk/python/pulumi_aws/route53recoveryreadiness/readiness_check.py +++ b/sdk/python/pulumi_aws/route53recoveryreadiness/readiness_check.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ReadinessCheckArgs', 'ReadinessCheck'] @@ -25,10 +25,33 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ - pulumi.set(__self__, "readiness_check_name", readiness_check_name) - pulumi.set(__self__, "resource_set_name", resource_set_name) + ReadinessCheckArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + readiness_check_name=readiness_check_name, + resource_set_name=resource_set_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + readiness_check_name: Optional[pulumi.Input[str]] = None, + resource_set_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if readiness_check_name is None and 'readinessCheckName' in kwargs: + readiness_check_name = kwargs['readinessCheckName'] + if readiness_check_name is None: + raise TypeError("Missing 'readiness_check_name' argument") + if resource_set_name is None and 'resourceSetName' in kwargs: + resource_set_name = kwargs['resourceSetName'] + if resource_set_name is None: + raise TypeError("Missing 'resource_set_name' argument") + + _setter("readiness_check_name", readiness_check_name) + _setter("resource_set_name", resource_set_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="readinessCheckName") @@ -87,19 +110,44 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ReadinessCheckState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + readiness_check_name=readiness_check_name, + resource_set_name=resource_set_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + readiness_check_name: Optional[pulumi.Input[str]] = None, + resource_set_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if readiness_check_name is None and 'readinessCheckName' in kwargs: + readiness_check_name = kwargs['readinessCheckName'] + if resource_set_name is None and 'resourceSetName' in kwargs: + resource_set_name = kwargs['resourceSetName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if readiness_check_name is not None: - pulumi.set(__self__, "readiness_check_name", readiness_check_name) + _setter("readiness_check_name", readiness_check_name) if resource_set_name is not None: - pulumi.set(__self__, "resource_set_name", resource_set_name) + _setter("resource_set_name", resource_set_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -244,6 +292,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReadinessCheckArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53recoveryreadiness/recovery_group.py b/sdk/python/pulumi_aws/route53recoveryreadiness/recovery_group.py index 7693dd491bc..e24ffbfdc67 100644 --- a/sdk/python/pulumi_aws/route53recoveryreadiness/recovery_group.py +++ b/sdk/python/pulumi_aws/route53recoveryreadiness/recovery_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RecoveryGroupArgs', 'RecoveryGroup'] @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] cells: List of cell arns to add as nested fault domains within this recovery group :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ - pulumi.set(__self__, "recovery_group_name", recovery_group_name) + RecoveryGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + recovery_group_name=recovery_group_name, + cells=cells, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + recovery_group_name: Optional[pulumi.Input[str]] = None, + cells: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recovery_group_name is None and 'recoveryGroupName' in kwargs: + recovery_group_name = kwargs['recoveryGroupName'] + if recovery_group_name is None: + raise TypeError("Missing 'recovery_group_name' argument") + + _setter("recovery_group_name", recovery_group_name) if cells is not None: - pulumi.set(__self__, "cells", cells) + _setter("cells", cells) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="recoveryGroupName") @@ -88,19 +107,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RecoveryGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cells=cells, + recovery_group_name=recovery_group_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cells: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + recovery_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if recovery_group_name is None and 'recoveryGroupName' in kwargs: + recovery_group_name = kwargs['recoveryGroupName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cells is not None: - pulumi.set(__self__, "cells", cells) + _setter("cells", cells) if recovery_group_name is not None: - pulumi.set(__self__, "recovery_group_name", recovery_group_name) + _setter("recovery_group_name", recovery_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -241,6 +283,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RecoveryGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/route53recoveryreadiness/resource_set.py b/sdk/python/pulumi_aws/route53recoveryreadiness/resource_set.py index ad280907a58..b9d2ad9a11d 100644 --- a/sdk/python/pulumi_aws/route53recoveryreadiness/resource_set.py +++ b/sdk/python/pulumi_aws/route53recoveryreadiness/resource_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,11 +29,38 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ - pulumi.set(__self__, "resource_set_name", resource_set_name) - pulumi.set(__self__, "resource_set_type", resource_set_type) - pulumi.set(__self__, "resources", resources) + ResourceSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_set_name=resource_set_name, + resource_set_type=resource_set_type, + resources=resources, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_set_name: Optional[pulumi.Input[str]] = None, + resource_set_type: Optional[pulumi.Input[str]] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceSetResourceArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_set_name is None and 'resourceSetName' in kwargs: + resource_set_name = kwargs['resourceSetName'] + if resource_set_name is None: + raise TypeError("Missing 'resource_set_name' argument") + if resource_set_type is None and 'resourceSetType' in kwargs: + resource_set_type = kwargs['resourceSetType'] + if resource_set_type is None: + raise TypeError("Missing 'resource_set_type' argument") + if resources is None: + raise TypeError("Missing 'resources' argument") + + _setter("resource_set_name", resource_set_name) + _setter("resource_set_type", resource_set_type) + _setter("resources", resources) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="resourceSetName") @@ -106,21 +133,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ResourceSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + resource_set_name=resource_set_name, + resource_set_type=resource_set_type, + resources=resources, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + resource_set_name: Optional[pulumi.Input[str]] = None, + resource_set_type: Optional[pulumi.Input[str]] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceSetResourceArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_set_name is None and 'resourceSetName' in kwargs: + resource_set_name = kwargs['resourceSetName'] + if resource_set_type is None and 'resourceSetType' in kwargs: + resource_set_type = kwargs['resourceSetType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if resource_set_name is not None: - pulumi.set(__self__, "resource_set_name", resource_set_name) + _setter("resource_set_name", resource_set_name) if resource_set_type is not None: - pulumi.set(__self__, "resource_set_type", resource_set_type) + _setter("resource_set_type", resource_set_type) if resources is not None: - pulumi.set(__self__, "resources", resources) + _setter("resources", resources) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -285,6 +339,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rum/_inputs.py b/sdk/python/pulumi_aws/rum/_inputs.py index a7204253cbd..6402563057c 100644 --- a/sdk/python/pulumi_aws/rum/_inputs.py +++ b/sdk/python/pulumi_aws/rum/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -37,24 +37,67 @@ def __init__(__self__, *, :param pulumi.Input[float] session_sample_rate: Specifies the percentage of user sessions to use for RUM data collection. Choosing a higher percentage gives you more data but also incurs more costs. The number you specify is the percentage of user sessions that will be used. Default value is `0.1`. :param pulumi.Input[Sequence[pulumi.Input[str]]] telemetries: An array that lists the types of telemetry data that this app monitor is to collect. Valid values are `errors`, `performance`, and `http`. """ + AppMonitorAppMonitorConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_cookies=allow_cookies, + enable_xray=enable_xray, + excluded_pages=excluded_pages, + favorite_pages=favorite_pages, + guest_role_arn=guest_role_arn, + identity_pool_id=identity_pool_id, + included_pages=included_pages, + session_sample_rate=session_sample_rate, + telemetries=telemetries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_cookies: Optional[pulumi.Input[bool]] = None, + enable_xray: Optional[pulumi.Input[bool]] = None, + excluded_pages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + favorite_pages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + guest_role_arn: Optional[pulumi.Input[str]] = None, + identity_pool_id: Optional[pulumi.Input[str]] = None, + included_pages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + session_sample_rate: Optional[pulumi.Input[float]] = None, + telemetries: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_cookies is None and 'allowCookies' in kwargs: + allow_cookies = kwargs['allowCookies'] + if enable_xray is None and 'enableXray' in kwargs: + enable_xray = kwargs['enableXray'] + if excluded_pages is None and 'excludedPages' in kwargs: + excluded_pages = kwargs['excludedPages'] + if favorite_pages is None and 'favoritePages' in kwargs: + favorite_pages = kwargs['favoritePages'] + if guest_role_arn is None and 'guestRoleArn' in kwargs: + guest_role_arn = kwargs['guestRoleArn'] + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if included_pages is None and 'includedPages' in kwargs: + included_pages = kwargs['includedPages'] + if session_sample_rate is None and 'sessionSampleRate' in kwargs: + session_sample_rate = kwargs['sessionSampleRate'] + if allow_cookies is not None: - pulumi.set(__self__, "allow_cookies", allow_cookies) + _setter("allow_cookies", allow_cookies) if enable_xray is not None: - pulumi.set(__self__, "enable_xray", enable_xray) + _setter("enable_xray", enable_xray) if excluded_pages is not None: - pulumi.set(__self__, "excluded_pages", excluded_pages) + _setter("excluded_pages", excluded_pages) if favorite_pages is not None: - pulumi.set(__self__, "favorite_pages", favorite_pages) + _setter("favorite_pages", favorite_pages) if guest_role_arn is not None: - pulumi.set(__self__, "guest_role_arn", guest_role_arn) + _setter("guest_role_arn", guest_role_arn) if identity_pool_id is not None: - pulumi.set(__self__, "identity_pool_id", identity_pool_id) + _setter("identity_pool_id", identity_pool_id) if included_pages is not None: - pulumi.set(__self__, "included_pages", included_pages) + _setter("included_pages", included_pages) if session_sample_rate is not None: - pulumi.set(__self__, "session_sample_rate", session_sample_rate) + _setter("session_sample_rate", session_sample_rate) if telemetries is not None: - pulumi.set(__self__, "telemetries", telemetries) + _setter("telemetries", telemetries) @property @pulumi.getter(name="allowCookies") @@ -172,8 +215,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: Specifies whether this app monitor allows the web client to define and send custom events. The default is for custom events to be `DISABLED`. Valid values are `DISABLED` and `ENABLED`. """ + AppMonitorCustomEventsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/rum/app_monitor.py b/sdk/python/pulumi_aws/rum/app_monitor.py index cec5f46c35d..a8ff6681ad3 100644 --- a/sdk/python/pulumi_aws/rum/app_monitor.py +++ b/sdk/python/pulumi_aws/rum/app_monitor.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,17 +31,46 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the log stream. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "domain", domain) + AppMonitorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + app_monitor_configuration=app_monitor_configuration, + custom_events=custom_events, + cw_log_enabled=cw_log_enabled, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + app_monitor_configuration: Optional[pulumi.Input['AppMonitorAppMonitorConfigurationArgs']] = None, + custom_events: Optional[pulumi.Input['AppMonitorCustomEventsArgs']] = None, + cw_log_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + if app_monitor_configuration is None and 'appMonitorConfiguration' in kwargs: + app_monitor_configuration = kwargs['appMonitorConfiguration'] + if custom_events is None and 'customEvents' in kwargs: + custom_events = kwargs['customEvents'] + if cw_log_enabled is None and 'cwLogEnabled' in kwargs: + cw_log_enabled = kwargs['cwLogEnabled'] + + _setter("domain", domain) if app_monitor_configuration is not None: - pulumi.set(__self__, "app_monitor_configuration", app_monitor_configuration) + _setter("app_monitor_configuration", app_monitor_configuration) if custom_events is not None: - pulumi.set(__self__, "custom_events", custom_events) + _setter("custom_events", custom_events) if cw_log_enabled is not None: - pulumi.set(__self__, "cw_log_enabled", cw_log_enabled) + _setter("cw_log_enabled", cw_log_enabled) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -142,29 +171,70 @@ def __init__(__self__, *, :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. """ + _AppMonitorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_monitor_configuration=app_monitor_configuration, + app_monitor_id=app_monitor_id, + arn=arn, + custom_events=custom_events, + cw_log_enabled=cw_log_enabled, + cw_log_group=cw_log_group, + domain=domain, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_monitor_configuration: Optional[pulumi.Input['AppMonitorAppMonitorConfigurationArgs']] = None, + app_monitor_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + custom_events: Optional[pulumi.Input['AppMonitorCustomEventsArgs']] = None, + cw_log_enabled: Optional[pulumi.Input[bool]] = None, + cw_log_group: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_monitor_configuration is None and 'appMonitorConfiguration' in kwargs: + app_monitor_configuration = kwargs['appMonitorConfiguration'] + if app_monitor_id is None and 'appMonitorId' in kwargs: + app_monitor_id = kwargs['appMonitorId'] + if custom_events is None and 'customEvents' in kwargs: + custom_events = kwargs['customEvents'] + if cw_log_enabled is None and 'cwLogEnabled' in kwargs: + cw_log_enabled = kwargs['cwLogEnabled'] + if cw_log_group is None and 'cwLogGroup' in kwargs: + cw_log_group = kwargs['cwLogGroup'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if app_monitor_configuration is not None: - pulumi.set(__self__, "app_monitor_configuration", app_monitor_configuration) + _setter("app_monitor_configuration", app_monitor_configuration) if app_monitor_id is not None: - pulumi.set(__self__, "app_monitor_id", app_monitor_id) + _setter("app_monitor_id", app_monitor_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if custom_events is not None: - pulumi.set(__self__, "custom_events", custom_events) + _setter("custom_events", custom_events) if cw_log_enabled is not None: - pulumi.set(__self__, "cw_log_enabled", cw_log_enabled) + _setter("cw_log_enabled", cw_log_enabled) if cw_log_group is not None: - pulumi.set(__self__, "cw_log_group", cw_log_group) + _setter("cw_log_group", cw_log_group) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="appMonitorConfiguration") @@ -367,6 +437,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AppMonitorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -387,7 +461,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = AppMonitorArgs.__new__(AppMonitorArgs) + app_monitor_configuration = _utilities.configure(app_monitor_configuration, AppMonitorAppMonitorConfigurationArgs, True) __props__.__dict__["app_monitor_configuration"] = app_monitor_configuration + custom_events = _utilities.configure(custom_events, AppMonitorCustomEventsArgs, True) __props__.__dict__["custom_events"] = custom_events __props__.__dict__["cw_log_enabled"] = cw_log_enabled if domain is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/rum/metrics_destination.py b/sdk/python/pulumi_aws/rum/metrics_destination.py index 31a118458cb..320822b00a6 100644 --- a/sdk/python/pulumi_aws/rum/metrics_destination.py +++ b/sdk/python/pulumi_aws/rum/metrics_destination.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MetricsDestinationArgs', 'MetricsDestination'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_arn: Use this parameter only if Destination is Evidently. This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics. :param pulumi.Input[str] iam_role_arn: This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter. """ - pulumi.set(__self__, "app_monitor_name", app_monitor_name) - pulumi.set(__self__, "destination", destination) + MetricsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_monitor_name=app_monitor_name, + destination=destination, + destination_arn=destination_arn, + iam_role_arn=iam_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_monitor_name: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input[str]] = None, + destination_arn: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_monitor_name is None and 'appMonitorName' in kwargs: + app_monitor_name = kwargs['appMonitorName'] + if app_monitor_name is None: + raise TypeError("Missing 'app_monitor_name' argument") + if destination is None: + raise TypeError("Missing 'destination' argument") + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + + _setter("app_monitor_name", app_monitor_name) + _setter("destination", destination) if destination_arn is not None: - pulumi.set(__self__, "destination_arn", destination_arn) + _setter("destination_arn", destination_arn) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) @property @pulumi.getter(name="appMonitorName") @@ -95,14 +122,37 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_arn: Use this parameter only if Destination is Evidently. This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics. :param pulumi.Input[str] iam_role_arn: This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter. """ + _MetricsDestinationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_monitor_name=app_monitor_name, + destination=destination, + destination_arn=destination_arn, + iam_role_arn=iam_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_monitor_name: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input[str]] = None, + destination_arn: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_monitor_name is None and 'appMonitorName' in kwargs: + app_monitor_name = kwargs['appMonitorName'] + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if app_monitor_name is not None: - pulumi.set(__self__, "app_monitor_name", app_monitor_name) + _setter("app_monitor_name", app_monitor_name) if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if destination_arn is not None: - pulumi.set(__self__, "destination_arn", destination_arn) + _setter("destination_arn", destination_arn) if iam_role_arn is not None: - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + _setter("iam_role_arn", iam_role_arn) @property @pulumi.getter(name="appMonitorName") @@ -230,6 +280,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MetricsDestinationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/rum/outputs.py b/sdk/python/pulumi_aws/rum/outputs.py index 6962250e55e..84ec284f487 100644 --- a/sdk/python/pulumi_aws/rum/outputs.py +++ b/sdk/python/pulumi_aws/rum/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -68,24 +68,67 @@ def __init__(__self__, *, :param float session_sample_rate: Specifies the percentage of user sessions to use for RUM data collection. Choosing a higher percentage gives you more data but also incurs more costs. The number you specify is the percentage of user sessions that will be used. Default value is `0.1`. :param Sequence[str] telemetries: An array that lists the types of telemetry data that this app monitor is to collect. Valid values are `errors`, `performance`, and `http`. """ + AppMonitorAppMonitorConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_cookies=allow_cookies, + enable_xray=enable_xray, + excluded_pages=excluded_pages, + favorite_pages=favorite_pages, + guest_role_arn=guest_role_arn, + identity_pool_id=identity_pool_id, + included_pages=included_pages, + session_sample_rate=session_sample_rate, + telemetries=telemetries, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_cookies: Optional[bool] = None, + enable_xray: Optional[bool] = None, + excluded_pages: Optional[Sequence[str]] = None, + favorite_pages: Optional[Sequence[str]] = None, + guest_role_arn: Optional[str] = None, + identity_pool_id: Optional[str] = None, + included_pages: Optional[Sequence[str]] = None, + session_sample_rate: Optional[float] = None, + telemetries: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_cookies is None and 'allowCookies' in kwargs: + allow_cookies = kwargs['allowCookies'] + if enable_xray is None and 'enableXray' in kwargs: + enable_xray = kwargs['enableXray'] + if excluded_pages is None and 'excludedPages' in kwargs: + excluded_pages = kwargs['excludedPages'] + if favorite_pages is None and 'favoritePages' in kwargs: + favorite_pages = kwargs['favoritePages'] + if guest_role_arn is None and 'guestRoleArn' in kwargs: + guest_role_arn = kwargs['guestRoleArn'] + if identity_pool_id is None and 'identityPoolId' in kwargs: + identity_pool_id = kwargs['identityPoolId'] + if included_pages is None and 'includedPages' in kwargs: + included_pages = kwargs['includedPages'] + if session_sample_rate is None and 'sessionSampleRate' in kwargs: + session_sample_rate = kwargs['sessionSampleRate'] + if allow_cookies is not None: - pulumi.set(__self__, "allow_cookies", allow_cookies) + _setter("allow_cookies", allow_cookies) if enable_xray is not None: - pulumi.set(__self__, "enable_xray", enable_xray) + _setter("enable_xray", enable_xray) if excluded_pages is not None: - pulumi.set(__self__, "excluded_pages", excluded_pages) + _setter("excluded_pages", excluded_pages) if favorite_pages is not None: - pulumi.set(__self__, "favorite_pages", favorite_pages) + _setter("favorite_pages", favorite_pages) if guest_role_arn is not None: - pulumi.set(__self__, "guest_role_arn", guest_role_arn) + _setter("guest_role_arn", guest_role_arn) if identity_pool_id is not None: - pulumi.set(__self__, "identity_pool_id", identity_pool_id) + _setter("identity_pool_id", identity_pool_id) if included_pages is not None: - pulumi.set(__self__, "included_pages", included_pages) + _setter("included_pages", included_pages) if session_sample_rate is not None: - pulumi.set(__self__, "session_sample_rate", session_sample_rate) + _setter("session_sample_rate", session_sample_rate) if telemetries is not None: - pulumi.set(__self__, "telemetries", telemetries) + _setter("telemetries", telemetries) @property @pulumi.getter(name="allowCookies") @@ -167,8 +210,19 @@ def __init__(__self__, *, """ :param str status: Specifies whether this app monitor allows the web client to define and send custom events. The default is for custom events to be `DISABLED`. Valid values are `DISABLED` and `ENABLED`. """ + AppMonitorCustomEvents._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/s3/_inputs.py b/sdk/python/pulumi_aws/s3/_inputs.py index cceff766b64..caf4d2820a8 100644 --- a/sdk/python/pulumi_aws/s3/_inputs.py +++ b/sdk/python/pulumi_aws/s3/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -147,14 +147,39 @@ def __init__(__self__, *, :param pulumi.Input[bool] restrict_public_buckets: Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: * Only the bucket owner and AWS Services can access buckets with public policies. """ + AccessPointPublicAccessBlockConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_public_acls=block_public_acls, + block_public_policy=block_public_policy, + ignore_public_acls=ignore_public_acls, + restrict_public_buckets=restrict_public_buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_public_acls: Optional[pulumi.Input[bool]] = None, + block_public_policy: Optional[pulumi.Input[bool]] = None, + ignore_public_acls: Optional[pulumi.Input[bool]] = None, + restrict_public_buckets: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_public_acls is None and 'blockPublicAcls' in kwargs: + block_public_acls = kwargs['blockPublicAcls'] + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if ignore_public_acls is None and 'ignorePublicAcls' in kwargs: + ignore_public_acls = kwargs['ignorePublicAcls'] + if restrict_public_buckets is None and 'restrictPublicBuckets' in kwargs: + restrict_public_buckets = kwargs['restrictPublicBuckets'] + if block_public_acls is not None: - pulumi.set(__self__, "block_public_acls", block_public_acls) + _setter("block_public_acls", block_public_acls) if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) if ignore_public_acls is not None: - pulumi.set(__self__, "ignore_public_acls", ignore_public_acls) + _setter("ignore_public_acls", ignore_public_acls) if restrict_public_buckets is not None: - pulumi.set(__self__, "restrict_public_buckets", restrict_public_buckets) + _setter("restrict_public_buckets", restrict_public_buckets) @property @pulumi.getter(name="blockPublicAcls") @@ -218,7 +243,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] vpc_id: This access point will only allow connections from the specified VPC ID. """ - pulumi.set(__self__, "vpc_id", vpc_id) + AccessPointVpcConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="vpcId") @@ -242,10 +282,23 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: Object prefix for filtering. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Set of object tags for filtering. """ + AnalyticsConfigurationFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -279,7 +332,22 @@ def __init__(__self__, *, """ :param pulumi.Input['AnalyticsConfigurationStorageClassAnalysisDataExportArgs'] data_export: Data export configuration (documented below). """ - pulumi.set(__self__, "data_export", data_export) + AnalyticsConfigurationStorageClassAnalysisArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_export=data_export, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_export: Optional[pulumi.Input['AnalyticsConfigurationStorageClassAnalysisDataExportArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_export is None and 'dataExport' in kwargs: + data_export = kwargs['dataExport'] + if data_export is None: + raise TypeError("Missing 'data_export' argument") + + _setter("data_export", data_export) @property @pulumi.getter(name="dataExport") @@ -303,9 +371,26 @@ def __init__(__self__, *, :param pulumi.Input['AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs'] destination: Specifies the destination for the exported analytics data (documented below). :param pulumi.Input[str] output_schema_version: Schema version of exported analytics data. Allowed values: `V_1`. Default value: `V_1`. """ - pulumi.set(__self__, "destination", destination) + AnalyticsConfigurationStorageClassAnalysisDataExportArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + output_schema_version=output_schema_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs']] = None, + output_schema_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if output_schema_version is None and 'outputSchemaVersion' in kwargs: + output_schema_version = kwargs['outputSchemaVersion'] + + _setter("destination", destination) if output_schema_version is not None: - pulumi.set(__self__, "output_schema_version", output_schema_version) + _setter("output_schema_version", output_schema_version) @property @pulumi.getter @@ -341,7 +426,22 @@ def __init__(__self__, *, The `s3_bucket_destination` configuration supports the following: """ - pulumi.set(__self__, "s3_bucket_destination", s3_bucket_destination) + AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_destination=s3_bucket_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_destination: Optional[pulumi.Input['AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_destination is None and 's3BucketDestination' in kwargs: + s3_bucket_destination = kwargs['s3BucketDestination'] + if s3_bucket_destination is None: + raise TypeError("Missing 's3_bucket_destination' argument") + + _setter("s3_bucket_destination", s3_bucket_destination) @property @pulumi.getter(name="s3BucketDestination") @@ -369,15 +469,38 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_arn: ARN of the destination bucket. :param pulumi.Input[str] bucket_account_id: Account ID that owns the destination bucket. :param pulumi.Input[str] format: Output format of exported analytics data. Allowed values: `CSV`. Default value: `CSV`. - :param pulumi.Input[str] prefix: Object prefix for filtering. - """ - pulumi.set(__self__, "bucket_arn", bucket_arn) + :param pulumi.Input[str] prefix: Prefix to append to exported analytics data. + """ + AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + bucket_account_id=bucket_account_id, + format=format, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + bucket_account_id: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if bucket_account_id is None and 'bucketAccountId' in kwargs: + bucket_account_id = kwargs['bucketAccountId'] + + _setter("bucket_arn", bucket_arn) if bucket_account_id is not None: - pulumi.set(__self__, "bucket_account_id", bucket_account_id) + _setter("bucket_account_id", bucket_account_id) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -419,7 +542,7 @@ def format(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: """ - Object prefix for filtering. + Prefix to append to exported analytics data. """ return pulumi.get(self, "prefix") @@ -437,9 +560,24 @@ def __init__(__self__, *, :param pulumi.Input['BucketAclV2AccessControlPolicyOwnerArgs'] owner: Configuration block of the bucket owner's display name and ID. See below. :param pulumi.Input[Sequence[pulumi.Input['BucketAclV2AccessControlPolicyGrantArgs']]] grants: Set of `grant` configuration blocks. See below. """ - pulumi.set(__self__, "owner", owner) + BucketAclV2AccessControlPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + grants=grants, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[pulumi.Input['BucketAclV2AccessControlPolicyOwnerArgs']] = None, + grants: Optional[pulumi.Input[Sequence[pulumi.Input['BucketAclV2AccessControlPolicyGrantArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("owner", owner) if grants is not None: - pulumi.set(__self__, "grants", grants) + _setter("grants", grants) @property @pulumi.getter @@ -475,9 +613,24 @@ def __init__(__self__, *, :param pulumi.Input[str] permission: Logging permissions assigned to the grantee for the bucket. :param pulumi.Input['BucketAclV2AccessControlPolicyGrantGranteeArgs'] grantee: Configuration block for the person being granted permissions. See below. """ - pulumi.set(__self__, "permission", permission) + BucketAclV2AccessControlPolicyGrantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + permission=permission, + grantee=grantee, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permission: Optional[pulumi.Input[str]] = None, + grantee: Optional[pulumi.Input['BucketAclV2AccessControlPolicyGrantGranteeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permission is None: + raise TypeError("Missing 'permission' argument") + + _setter("permission", permission) if grantee is not None: - pulumi.set(__self__, "grantee", grantee) + _setter("grantee", grantee) @property @pulumi.getter @@ -519,15 +672,40 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Canonical user ID of the grantee. :param pulumi.Input[str] uri: URI of the grantee group. """ - pulumi.set(__self__, "type", type) + BucketAclV2AccessControlPolicyGrantGranteeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + display_name=display_name, + email_address=email_address, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + email_address: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + + _setter("type", type) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if email_address is not None: - pulumi.set(__self__, "email_address", email_address) + _setter("email_address", email_address) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -599,9 +777,26 @@ def __init__(__self__, *, :param pulumi.Input[str] id: ID of the owner. :param pulumi.Input[str] display_name: Display name of the owner. """ - pulumi.set(__self__, "id", id) + BucketAclV2AccessControlPolicyOwnerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + display_name=display_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + + _setter("id", id) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) @property @pulumi.getter @@ -645,16 +840,51 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Unique identifier for the rule. The value cannot be longer than 255 characters. :param pulumi.Input[int] max_age_seconds: Time in seconds that your browser is to cache the preflight response for the specified resource. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "allowed_origins", allowed_origins) + BucketCorsConfigurationV2CorsRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + allowed_origins=allowed_origins, + allowed_headers=allowed_headers, + expose_headers=expose_headers, + id=id, + max_age_seconds=max_age_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_origins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + expose_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + id: Optional[pulumi.Input[str]] = None, + max_age_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if allowed_origins is None and 'allowedOrigins' in kwargs: + allowed_origins = kwargs['allowedOrigins'] + if allowed_origins is None: + raise TypeError("Missing 'allowed_origins' argument") + if allowed_headers is None and 'allowedHeaders' in kwargs: + allowed_headers = kwargs['allowedHeaders'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age_seconds is None and 'maxAgeSeconds' in kwargs: + max_age_seconds = kwargs['maxAgeSeconds'] + + _setter("allowed_methods", allowed_methods) + _setter("allowed_origins", allowed_origins) if allowed_headers is not None: - pulumi.set(__self__, "allowed_headers", allowed_headers) + _setter("allowed_headers", allowed_headers) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if max_age_seconds is not None: - pulumi.set(__self__, "max_age_seconds", max_age_seconds) + _setter("max_age_seconds", max_age_seconds) @property @pulumi.getter(name="allowedMethods") @@ -744,14 +974,47 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] expose_headers: Specifies expose header in the response. :param pulumi.Input[int] max_age_seconds: Specifies time in seconds that browser can cache the response for a preflight request. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "allowed_origins", allowed_origins) + BucketCorsRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + allowed_origins=allowed_origins, + allowed_headers=allowed_headers, + expose_headers=expose_headers, + max_age_seconds=max_age_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_origins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + expose_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + max_age_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if allowed_origins is None and 'allowedOrigins' in kwargs: + allowed_origins = kwargs['allowedOrigins'] + if allowed_origins is None: + raise TypeError("Missing 'allowed_origins' argument") + if allowed_headers is None and 'allowedHeaders' in kwargs: + allowed_headers = kwargs['allowedHeaders'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age_seconds is None and 'maxAgeSeconds' in kwargs: + max_age_seconds = kwargs['maxAgeSeconds'] + + _setter("allowed_methods", allowed_methods) + _setter("allowed_origins", allowed_origins) if allowed_headers is not None: - pulumi.set(__self__, "allowed_headers", allowed_headers) + _setter("allowed_headers", allowed_headers) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if max_age_seconds is not None: - pulumi.set(__self__, "max_age_seconds", max_age_seconds) + _setter("max_age_seconds", max_age_seconds) @property @pulumi.getter(name="allowedMethods") @@ -827,12 +1090,33 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Canonical user id to grant for. Used only when `type` is `CanonicalUser`. :param pulumi.Input[str] uri: Uri address to grant for. Used only when `type` is `Group`. """ - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "type", type) + BucketGrantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + type=type, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("permissions", permissions) + _setter("type", type) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -892,10 +1176,23 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: Object key name prefix that identifies the subset of objects to which the configuration applies. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: All of these tags must exist in the object's tag set in order for the configuration to apply. """ + BucketIntelligentTieringConfigurationFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -931,8 +1228,27 @@ def __init__(__self__, *, :param pulumi.Input[str] access_tier: S3 Intelligent-Tiering access tier. Valid values: `ARCHIVE_ACCESS`, `DEEP_ARCHIVE_ACCESS`. :param pulumi.Input[int] days: Number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. """ - pulumi.set(__self__, "access_tier", access_tier) - pulumi.set(__self__, "days", days) + BucketIntelligentTieringConfigurationTieringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_tier=access_tier, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_tier: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_tier is None and 'accessTier' in kwargs: + access_tier = kwargs['accessTier'] + if access_tier is None: + raise TypeError("Missing 'access_tier' argument") + if days is None: + raise TypeError("Missing 'days' argument") + + _setter("access_tier", access_tier) + _setter("days", days) @property @pulumi.getter(name="accessTier") @@ -982,25 +1298,62 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: **DEPRECATED** Use `filter` instead. This has been deprecated by Amazon S3. Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if `filter` is not specified. :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleTransitionArgs']]] transitions: Set of configuration blocks that specify when an Amazon S3 object transitions to a specified storage class. See below. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "status", status) + BucketLifecycleConfigurationV2RuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + status=status, + abort_incomplete_multipart_upload=abort_incomplete_multipart_upload, + expiration=expiration, + filter=filter, + noncurrent_version_expiration=noncurrent_version_expiration, + noncurrent_version_transitions=noncurrent_version_transitions, + prefix=prefix, + transitions=transitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + abort_incomplete_multipart_upload: Optional[pulumi.Input['BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs']] = None, + expiration: Optional[pulumi.Input['BucketLifecycleConfigurationV2RuleExpirationArgs']] = None, + filter: Optional[pulumi.Input['BucketLifecycleConfigurationV2RuleFilterArgs']] = None, + noncurrent_version_expiration: Optional[pulumi.Input['BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs']] = None, + noncurrent_version_transitions: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs']]]] = None, + prefix: Optional[pulumi.Input[str]] = None, + transitions: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleTransitionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if abort_incomplete_multipart_upload is None and 'abortIncompleteMultipartUpload' in kwargs: + abort_incomplete_multipart_upload = kwargs['abortIncompleteMultipartUpload'] + if noncurrent_version_expiration is None and 'noncurrentVersionExpiration' in kwargs: + noncurrent_version_expiration = kwargs['noncurrentVersionExpiration'] + if noncurrent_version_transitions is None and 'noncurrentVersionTransitions' in kwargs: + noncurrent_version_transitions = kwargs['noncurrentVersionTransitions'] + + _setter("id", id) + _setter("status", status) if abort_incomplete_multipart_upload is not None: - pulumi.set(__self__, "abort_incomplete_multipart_upload", abort_incomplete_multipart_upload) + _setter("abort_incomplete_multipart_upload", abort_incomplete_multipart_upload) if expiration is not None: - pulumi.set(__self__, "expiration", expiration) + _setter("expiration", expiration) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if noncurrent_version_expiration is not None: - pulumi.set(__self__, "noncurrent_version_expiration", noncurrent_version_expiration) + _setter("noncurrent_version_expiration", noncurrent_version_expiration) if noncurrent_version_transitions is not None: - pulumi.set(__self__, "noncurrent_version_transitions", noncurrent_version_transitions) + _setter("noncurrent_version_transitions", noncurrent_version_transitions) if prefix is not None: warnings.warn("""Use filter instead""", DeprecationWarning) pulumi.log.warn("""prefix is deprecated: Use filter instead""") if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if transitions is not None: - pulumi.set(__self__, "transitions", transitions) + _setter("transitions", transitions) @property @pulumi.getter @@ -1121,8 +1474,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] days_after_initiation: Number of days after which Amazon S3 aborts an incomplete multipart upload. """ + BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + days_after_initiation=days_after_initiation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days_after_initiation: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days_after_initiation is None and 'daysAfterInitiation' in kwargs: + days_after_initiation = kwargs['daysAfterInitiation'] + if days_after_initiation is not None: - pulumi.set(__self__, "days_after_initiation", days_after_initiation) + _setter("days_after_initiation", days_after_initiation) @property @pulumi.getter(name="daysAfterInitiation") @@ -1148,12 +1514,29 @@ def __init__(__self__, *, :param pulumi.Input[int] days: Lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer. :param pulumi.Input[bool] expired_object_delete_marker: Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to `true`, the delete marker will be expired; if set to `false` the policy takes no action. """ + BucketLifecycleConfigurationV2RuleExpirationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date=date, + days=days, + expired_object_delete_marker=expired_object_delete_marker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + expired_object_delete_marker: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expired_object_delete_marker is None and 'expiredObjectDeleteMarker' in kwargs: + expired_object_delete_marker = kwargs['expiredObjectDeleteMarker'] + if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if expired_object_delete_marker is not None: - pulumi.set(__self__, "expired_object_delete_marker", expired_object_delete_marker) + _setter("expired_object_delete_marker", expired_object_delete_marker) @property @pulumi.getter @@ -1207,16 +1590,41 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if not specified. :param pulumi.Input['BucketLifecycleConfigurationV2RuleFilterTagArgs'] tag: Configuration block for specifying a tag key and value. See below. """ + BucketLifecycleConfigurationV2RuleFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_=and_, + object_size_greater_than=object_size_greater_than, + object_size_less_than=object_size_less_than, + prefix=prefix, + tag=tag, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_: Optional[pulumi.Input['BucketLifecycleConfigurationV2RuleFilterAndArgs']] = None, + object_size_greater_than: Optional[pulumi.Input[str]] = None, + object_size_less_than: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + tag: Optional[pulumi.Input['BucketLifecycleConfigurationV2RuleFilterTagArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_ is None and 'and' in kwargs: + and_ = kwargs['and'] + if object_size_greater_than is None and 'objectSizeGreaterThan' in kwargs: + object_size_greater_than = kwargs['objectSizeGreaterThan'] + if object_size_less_than is None and 'objectSizeLessThan' in kwargs: + object_size_less_than = kwargs['objectSizeLessThan'] + if and_ is not None: - pulumi.set(__self__, "and_", and_) + _setter("and_", and_) if object_size_greater_than is not None: - pulumi.set(__self__, "object_size_greater_than", object_size_greater_than) + _setter("object_size_greater_than", object_size_greater_than) if object_size_less_than is not None: - pulumi.set(__self__, "object_size_less_than", object_size_less_than) + _setter("object_size_less_than", object_size_less_than) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tag is not None: - pulumi.set(__self__, "tag", tag) + _setter("tag", tag) @property @pulumi.getter(name="and") @@ -1292,14 +1700,35 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: Prefix identifying one or more objects to which the rule applies. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. All of these tags must exist in the object's tag set in order for the rule to apply. """ + BucketLifecycleConfigurationV2RuleFilterAndArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_size_greater_than=object_size_greater_than, + object_size_less_than=object_size_less_than, + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_size_greater_than: Optional[pulumi.Input[int]] = None, + object_size_less_than: Optional[pulumi.Input[int]] = None, + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_size_greater_than is None and 'objectSizeGreaterThan' in kwargs: + object_size_greater_than = kwargs['objectSizeGreaterThan'] + if object_size_less_than is None and 'objectSizeLessThan' in kwargs: + object_size_less_than = kwargs['objectSizeLessThan'] + if object_size_greater_than is not None: - pulumi.set(__self__, "object_size_greater_than", object_size_greater_than) + _setter("object_size_greater_than", object_size_greater_than) if object_size_less_than is not None: - pulumi.set(__self__, "object_size_less_than", object_size_less_than) + _setter("object_size_less_than", object_size_less_than) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="objectSizeGreaterThan") @@ -1359,8 +1788,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Name of the object key. :param pulumi.Input[str] value: Value of the tag. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + BucketLifecycleConfigurationV2RuleFilterTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -1396,10 +1842,27 @@ def __init__(__self__, *, :param pulumi.Input[str] newer_noncurrent_versions: Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. :param pulumi.Input[int] noncurrent_days: Number of days an object is noncurrent before Amazon S3 can perform the associated action. Must be a positive integer. """ + BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + newer_noncurrent_versions=newer_noncurrent_versions, + noncurrent_days=noncurrent_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + newer_noncurrent_versions: Optional[pulumi.Input[str]] = None, + noncurrent_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if newer_noncurrent_versions is None and 'newerNoncurrentVersions' in kwargs: + newer_noncurrent_versions = kwargs['newerNoncurrentVersions'] + if noncurrent_days is None and 'noncurrentDays' in kwargs: + noncurrent_days = kwargs['noncurrentDays'] + if newer_noncurrent_versions is not None: - pulumi.set(__self__, "newer_noncurrent_versions", newer_noncurrent_versions) + _setter("newer_noncurrent_versions", newer_noncurrent_versions) if noncurrent_days is not None: - pulumi.set(__self__, "noncurrent_days", noncurrent_days) + _setter("noncurrent_days", noncurrent_days) @property @pulumi.getter(name="newerNoncurrentVersions") @@ -1437,11 +1900,34 @@ def __init__(__self__, *, :param pulumi.Input[str] newer_noncurrent_versions: Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. :param pulumi.Input[int] noncurrent_days: Number of days an object is noncurrent before Amazon S3 can perform the associated action. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + newer_noncurrent_versions=newer_noncurrent_versions, + noncurrent_days=noncurrent_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[pulumi.Input[str]] = None, + newer_noncurrent_versions: Optional[pulumi.Input[str]] = None, + noncurrent_days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + if newer_noncurrent_versions is None and 'newerNoncurrentVersions' in kwargs: + newer_noncurrent_versions = kwargs['newerNoncurrentVersions'] + if noncurrent_days is None and 'noncurrentDays' in kwargs: + noncurrent_days = kwargs['noncurrentDays'] + + _setter("storage_class", storage_class) if newer_noncurrent_versions is not None: - pulumi.set(__self__, "newer_noncurrent_versions", newer_noncurrent_versions) + _setter("newer_noncurrent_versions", newer_noncurrent_versions) if noncurrent_days is not None: - pulumi.set(__self__, "noncurrent_days", noncurrent_days) + _setter("noncurrent_days", noncurrent_days) @property @pulumi.getter(name="storageClass") @@ -1491,11 +1977,30 @@ def __init__(__self__, *, :param pulumi.Input[str] date: Date objects are transitioned to the specified storage class. The date value must be in [RFC3339 full-date format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) e.g. `2023-08-22`. :param pulumi.Input[int] days: Number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer. If both `days` and `date` are not specified, defaults to `0`. Valid values depend on `storage_class`, see [Transition objects using Amazon S3 Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html) for more details. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketLifecycleConfigurationV2RuleTransitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + date=date, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[pulumi.Input[str]] = None, + date: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -1559,23 +2064,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Specifies object tags key and value. :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleRuleTransitionArgs']]] transitions: Specifies a period in the object's transitions (documented below). """ - pulumi.set(__self__, "enabled", enabled) + BucketLifecycleRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + abort_incomplete_multipart_upload_days=abort_incomplete_multipart_upload_days, + expiration=expiration, + id=id, + noncurrent_version_expiration=noncurrent_version_expiration, + noncurrent_version_transitions=noncurrent_version_transitions, + prefix=prefix, + tags=tags, + transitions=transitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + abort_incomplete_multipart_upload_days: Optional[pulumi.Input[int]] = None, + expiration: Optional[pulumi.Input['BucketLifecycleRuleExpirationArgs']] = None, + id: Optional[pulumi.Input[str]] = None, + noncurrent_version_expiration: Optional[pulumi.Input['BucketLifecycleRuleNoncurrentVersionExpirationArgs']] = None, + noncurrent_version_transitions: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleRuleNoncurrentVersionTransitionArgs']]]] = None, + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transitions: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleRuleTransitionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if abort_incomplete_multipart_upload_days is None and 'abortIncompleteMultipartUploadDays' in kwargs: + abort_incomplete_multipart_upload_days = kwargs['abortIncompleteMultipartUploadDays'] + if noncurrent_version_expiration is None and 'noncurrentVersionExpiration' in kwargs: + noncurrent_version_expiration = kwargs['noncurrentVersionExpiration'] + if noncurrent_version_transitions is None and 'noncurrentVersionTransitions' in kwargs: + noncurrent_version_transitions = kwargs['noncurrentVersionTransitions'] + + _setter("enabled", enabled) if abort_incomplete_multipart_upload_days is not None: - pulumi.set(__self__, "abort_incomplete_multipart_upload_days", abort_incomplete_multipart_upload_days) + _setter("abort_incomplete_multipart_upload_days", abort_incomplete_multipart_upload_days) if expiration is not None: - pulumi.set(__self__, "expiration", expiration) + _setter("expiration", expiration) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if noncurrent_version_expiration is not None: - pulumi.set(__self__, "noncurrent_version_expiration", noncurrent_version_expiration) + _setter("noncurrent_version_expiration", noncurrent_version_expiration) if noncurrent_version_transitions is not None: - pulumi.set(__self__, "noncurrent_version_transitions", noncurrent_version_transitions) + _setter("noncurrent_version_transitions", noncurrent_version_transitions) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transitions is not None: - pulumi.set(__self__, "transitions", transitions) + _setter("transitions", transitions) @property @pulumi.getter @@ -1699,12 +2239,29 @@ def __init__(__self__, *, :param pulumi.Input[int] days: Specifies the number of days after object creation when the specific rule action takes effect. :param pulumi.Input[bool] expired_object_delete_marker: On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. """ + BucketLifecycleRuleExpirationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date=date, + days=days, + expired_object_delete_marker=expired_object_delete_marker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + expired_object_delete_marker: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expired_object_delete_marker is None and 'expiredObjectDeleteMarker' in kwargs: + expired_object_delete_marker = kwargs['expiredObjectDeleteMarker'] + if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if expired_object_delete_marker is not None: - pulumi.set(__self__, "expired_object_delete_marker", expired_object_delete_marker) + _setter("expired_object_delete_marker", expired_object_delete_marker) @property @pulumi.getter @@ -1750,8 +2307,19 @@ def __init__(__self__, *, """ :param pulumi.Input[int] days: Specifies the number of days noncurrent object versions expire. """ + BucketLifecycleRuleNoncurrentVersionExpirationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter @@ -1775,9 +2343,26 @@ def __init__(__self__, *, :param pulumi.Input[str] storage_class: Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. :param pulumi.Input[int] days: Specifies the number of days noncurrent object versions transition. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketLifecycleRuleNoncurrentVersionTransitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -1815,11 +2400,30 @@ def __init__(__self__, *, :param pulumi.Input[str] date: Specifies the date after which you want the corresponding action to take effect. :param pulumi.Input[int] days: Specifies the number of days after object creation when the specific rule action takes effect. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketLifecycleRuleTransitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + date=date, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[pulumi.Input[str]] = None, + date: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -1867,9 +2471,28 @@ def __init__(__self__, *, :param pulumi.Input[str] target_bucket: The name of the bucket that will receive the log objects. :param pulumi.Input[str] target_prefix: To specify a key prefix for log objects. """ - pulumi.set(__self__, "target_bucket", target_bucket) + BucketLoggingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_bucket=target_bucket, + target_prefix=target_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_bucket: Optional[pulumi.Input[str]] = None, + target_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_bucket is None and 'targetBucket' in kwargs: + target_bucket = kwargs['targetBucket'] + if target_bucket is None: + raise TypeError("Missing 'target_bucket' argument") + if target_prefix is None and 'targetPrefix' in kwargs: + target_prefix = kwargs['targetPrefix'] + + _setter("target_bucket", target_bucket) if target_prefix is not None: - pulumi.set(__self__, "target_prefix", target_prefix) + _setter("target_prefix", target_prefix) @property @pulumi.getter(name="targetBucket") @@ -1905,8 +2528,25 @@ def __init__(__self__, *, :param pulumi.Input['BucketLoggingV2TargetGrantGranteeArgs'] grantee: Configuration block for the person being granted permissions. See below. :param pulumi.Input[str] permission: Logging permissions assigned to the grantee for the bucket. Valid values: `FULL_CONTROL`, `READ`, `WRITE`. """ - pulumi.set(__self__, "grantee", grantee) - pulumi.set(__self__, "permission", permission) + BucketLoggingV2TargetGrantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + grantee=grantee, + permission=permission, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grantee: Optional[pulumi.Input['BucketLoggingV2TargetGrantGranteeArgs']] = None, + permission: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grantee is None: + raise TypeError("Missing 'grantee' argument") + if permission is None: + raise TypeError("Missing 'permission' argument") + + _setter("grantee", grantee) + _setter("permission", permission) @property @pulumi.getter @@ -1947,15 +2587,40 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Canonical user ID of the grantee. :param pulumi.Input[str] uri: URI of the grantee group. """ - pulumi.set(__self__, "type", type) + BucketLoggingV2TargetGrantGranteeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + display_name=display_name, + email_address=email_address, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + email_address: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + + _setter("type", type) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if email_address is not None: - pulumi.set(__self__, "email_address", email_address) + _setter("email_address", email_address) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -2024,10 +2689,23 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: Object prefix for filtering (singular). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Object tags for filtering (up to 10). """ + BucketMetricFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -2069,15 +2747,42 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Unique identifier for each of the notification configurations. :param pulumi.Input[str] lambda_function_arn: Lambda function ARN. """ - pulumi.set(__self__, "events", events) + BucketNotificationLambdaFunctionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + filter_prefix=filter_prefix, + filter_suffix=filter_suffix, + id=id, + lambda_function_arn=lambda_function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + filter_prefix: Optional[pulumi.Input[str]] = None, + filter_suffix: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + lambda_function_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is None: + raise TypeError("Missing 'events' argument") + if filter_prefix is None and 'filterPrefix' in kwargs: + filter_prefix = kwargs['filterPrefix'] + if filter_suffix is None and 'filterSuffix' in kwargs: + filter_suffix = kwargs['filterSuffix'] + if lambda_function_arn is None and 'lambdaFunctionArn' in kwargs: + lambda_function_arn = kwargs['lambdaFunctionArn'] + + _setter("events", events) if filter_prefix is not None: - pulumi.set(__self__, "filter_prefix", filter_prefix) + _setter("filter_prefix", filter_prefix) if filter_suffix is not None: - pulumi.set(__self__, "filter_suffix", filter_suffix) + _setter("filter_suffix", filter_suffix) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if lambda_function_arn is not None: - pulumi.set(__self__, "lambda_function_arn", lambda_function_arn) + _setter("lambda_function_arn", lambda_function_arn) @property @pulumi.getter @@ -2155,14 +2860,43 @@ def __init__(__self__, *, :param pulumi.Input[str] filter_suffix: Object key name suffix. :param pulumi.Input[str] id: Unique identifier for each of the notification configurations. """ - pulumi.set(__self__, "events", events) - pulumi.set(__self__, "queue_arn", queue_arn) + BucketNotificationQueueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + queue_arn=queue_arn, + filter_prefix=filter_prefix, + filter_suffix=filter_suffix, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + queue_arn: Optional[pulumi.Input[str]] = None, + filter_prefix: Optional[pulumi.Input[str]] = None, + filter_suffix: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is None: + raise TypeError("Missing 'events' argument") + if queue_arn is None and 'queueArn' in kwargs: + queue_arn = kwargs['queueArn'] + if queue_arn is None: + raise TypeError("Missing 'queue_arn' argument") + if filter_prefix is None and 'filterPrefix' in kwargs: + filter_prefix = kwargs['filterPrefix'] + if filter_suffix is None and 'filterSuffix' in kwargs: + filter_suffix = kwargs['filterSuffix'] + + _setter("events", events) + _setter("queue_arn", queue_arn) if filter_prefix is not None: - pulumi.set(__self__, "filter_prefix", filter_prefix) + _setter("filter_prefix", filter_prefix) if filter_suffix is not None: - pulumi.set(__self__, "filter_suffix", filter_suffix) + _setter("filter_suffix", filter_suffix) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -2240,14 +2974,43 @@ def __init__(__self__, *, :param pulumi.Input[str] filter_suffix: Object key name suffix. :param pulumi.Input[str] id: Unique identifier for each of the notification configurations. """ - pulumi.set(__self__, "events", events) - pulumi.set(__self__, "topic_arn", topic_arn) + BucketNotificationTopicArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + topic_arn=topic_arn, + filter_prefix=filter_prefix, + filter_suffix=filter_suffix, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + filter_prefix: Optional[pulumi.Input[str]] = None, + filter_suffix: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is None: + raise TypeError("Missing 'events' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + if filter_prefix is None and 'filterPrefix' in kwargs: + filter_prefix = kwargs['filterPrefix'] + if filter_suffix is None and 'filterSuffix' in kwargs: + filter_suffix = kwargs['filterSuffix'] + + _setter("events", events) + _setter("topic_arn", topic_arn) if filter_prefix is not None: - pulumi.set(__self__, "filter_prefix", filter_prefix) + _setter("filter_prefix", filter_prefix) if filter_suffix is not None: - pulumi.set(__self__, "filter_suffix", filter_suffix) + _setter("filter_suffix", filter_suffix) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -2319,9 +3082,26 @@ def __init__(__self__, *, :param pulumi.Input[str] object_lock_enabled: Indicates whether this bucket has an Object Lock configuration enabled. Valid value is `Enabled`. :param pulumi.Input['BucketObjectLockConfigurationRuleArgs'] rule: The Object Lock rule in place for this bucket. """ - pulumi.set(__self__, "object_lock_enabled", object_lock_enabled) + BucketObjectLockConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_lock_enabled=object_lock_enabled, + rule=rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_lock_enabled: Optional[pulumi.Input[str]] = None, + rule: Optional[pulumi.Input['BucketObjectLockConfigurationRuleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_lock_enabled is None and 'objectLockEnabled' in kwargs: + object_lock_enabled = kwargs['objectLockEnabled'] + if object_lock_enabled is None: + raise TypeError("Missing 'object_lock_enabled' argument") + + _setter("object_lock_enabled", object_lock_enabled) if rule is not None: - pulumi.set(__self__, "rule", rule) + _setter("rule", rule) @property @pulumi.getter(name="objectLockEnabled") @@ -2355,7 +3135,22 @@ def __init__(__self__, *, """ :param pulumi.Input['BucketObjectLockConfigurationRuleDefaultRetentionArgs'] default_retention: The default retention period that you want to apply to new objects placed in this bucket. """ - pulumi.set(__self__, "default_retention", default_retention) + BucketObjectLockConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_retention=default_retention, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_retention: Optional[pulumi.Input['BucketObjectLockConfigurationRuleDefaultRetentionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_retention is None and 'defaultRetention' in kwargs: + default_retention = kwargs['defaultRetention'] + if default_retention is None: + raise TypeError("Missing 'default_retention' argument") + + _setter("default_retention", default_retention) @property @pulumi.getter(name="defaultRetention") @@ -2387,11 +3182,28 @@ def __init__(__self__, *, When you create a bucket with S3 Object Lock enabled, Amazon S3 automatically enables versioning for the bucket. Once you create a bucket with S3 Object Lock enabled, you can't disable Object Lock or suspend versioning for the bucket. """ - pulumi.set(__self__, "mode", mode) + BucketObjectLockConfigurationRuleDefaultRetentionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + days=days, + years=years, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + years: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("mode", mode) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if years is not None: - pulumi.set(__self__, "years", years) + _setter("years", years) @property @pulumi.getter @@ -2443,7 +3255,22 @@ def __init__(__self__, *, """ :param pulumi.Input['BucketObjectLockConfigurationV2RuleDefaultRetentionArgs'] default_retention: Configuration block for specifying the default Object Lock retention settings for new objects placed in the specified bucket. See below. """ - pulumi.set(__self__, "default_retention", default_retention) + BucketObjectLockConfigurationV2RuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_retention=default_retention, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_retention: Optional[pulumi.Input['BucketObjectLockConfigurationV2RuleDefaultRetentionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_retention is None and 'defaultRetention' in kwargs: + default_retention = kwargs['defaultRetention'] + if default_retention is None: + raise TypeError("Missing 'default_retention' argument") + + _setter("default_retention", default_retention) @property @pulumi.getter(name="defaultRetention") @@ -2469,12 +3296,27 @@ def __init__(__self__, *, :param pulumi.Input[str] mode: Default Object Lock retention mode you want to apply to new objects placed in the specified bucket. Valid values: `COMPLIANCE`, `GOVERNANCE`. :param pulumi.Input[int] years: Number of years that you want to specify for the default retention period. """ + BucketObjectLockConfigurationV2RuleDefaultRetentionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + days=days, + mode=mode, + years=years, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days: Optional[pulumi.Input[int]] = None, + mode: Optional[pulumi.Input[str]] = None, + years: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if years is not None: - pulumi.set(__self__, "years", years) + _setter("years", years) @property @pulumi.getter @@ -2520,7 +3362,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] object_ownership: Object ownership. Valid values: `BucketOwnerPreferred`, `ObjectWriter` or `BucketOwnerEnforced` """ - pulumi.set(__self__, "object_ownership", object_ownership) + BucketOwnershipControlsRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_ownership=object_ownership, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_ownership: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_ownership is None and 'objectOwnership' in kwargs: + object_ownership = kwargs['objectOwnership'] + if object_ownership is None: + raise TypeError("Missing 'object_ownership' argument") + + _setter("object_ownership", object_ownership) @property @pulumi.getter(name="objectOwnership") @@ -2558,25 +3415,62 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. :param pulumi.Input['BucketReplicationConfigRuleSourceSelectionCriteriaArgs'] source_selection_criteria: Specifies special object selection criteria. See below. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + status=status, + delete_marker_replication=delete_marker_replication, + existing_object_replication=existing_object_replication, + filter=filter, + id=id, + prefix=prefix, + priority=priority, + source_selection_criteria=source_selection_criteria, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['BucketReplicationConfigRuleDestinationArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + delete_marker_replication: Optional[pulumi.Input['BucketReplicationConfigRuleDeleteMarkerReplicationArgs']] = None, + existing_object_replication: Optional[pulumi.Input['BucketReplicationConfigRuleExistingObjectReplicationArgs']] = None, + filter: Optional[pulumi.Input['BucketReplicationConfigRuleFilterArgs']] = None, + id: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + source_selection_criteria: Optional[pulumi.Input['BucketReplicationConfigRuleSourceSelectionCriteriaArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if delete_marker_replication is None and 'deleteMarkerReplication' in kwargs: + delete_marker_replication = kwargs['deleteMarkerReplication'] + if existing_object_replication is None and 'existingObjectReplication' in kwargs: + existing_object_replication = kwargs['existingObjectReplication'] + if source_selection_criteria is None and 'sourceSelectionCriteria' in kwargs: + source_selection_criteria = kwargs['sourceSelectionCriteria'] + + _setter("destination", destination) + _setter("status", status) if delete_marker_replication is not None: - pulumi.set(__self__, "delete_marker_replication", delete_marker_replication) + _setter("delete_marker_replication", delete_marker_replication) if existing_object_replication is not None: - pulumi.set(__self__, "existing_object_replication", existing_object_replication) + _setter("existing_object_replication", existing_object_replication) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if prefix is not None: warnings.warn("""Use filter instead""", DeprecationWarning) pulumi.log.warn("""prefix is deprecated: Use filter instead""") if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if source_selection_criteria is not None: - pulumi.set(__self__, "source_selection_criteria", source_selection_criteria) + _setter("source_selection_criteria", source_selection_criteria) @property @pulumi.getter @@ -2697,7 +3591,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: Whether delete markers should be replicated. Either `"Enabled"` or `"Disabled"`. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleDeleteMarkerReplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -2731,19 +3638,52 @@ def __init__(__self__, *, :param pulumi.Input['BucketReplicationConfigRuleDestinationReplicationTimeArgs'] replication_time: Configuration block that specifies S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. See below. Replication Time Control must be used in conjunction with `metrics`. :param pulumi.Input[str] storage_class: The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. """ - pulumi.set(__self__, "bucket", bucket) + BucketReplicationConfigRuleDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + access_control_translation=access_control_translation, + account=account, + encryption_configuration=encryption_configuration, + metrics=metrics, + replication_time=replication_time, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + access_control_translation: Optional[pulumi.Input['BucketReplicationConfigRuleDestinationAccessControlTranslationArgs']] = None, + account: Optional[pulumi.Input[str]] = None, + encryption_configuration: Optional[pulumi.Input['BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs']] = None, + metrics: Optional[pulumi.Input['BucketReplicationConfigRuleDestinationMetricsArgs']] = None, + replication_time: Optional[pulumi.Input['BucketReplicationConfigRuleDestinationReplicationTimeArgs']] = None, + storage_class: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if access_control_translation is None and 'accessControlTranslation' in kwargs: + access_control_translation = kwargs['accessControlTranslation'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if replication_time is None and 'replicationTime' in kwargs: + replication_time = kwargs['replicationTime'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + + _setter("bucket", bucket) if access_control_translation is not None: - pulumi.set(__self__, "access_control_translation", access_control_translation) + _setter("access_control_translation", access_control_translation) if account is not None: - pulumi.set(__self__, "account", account) + _setter("account", account) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if replication_time is not None: - pulumi.set(__self__, "replication_time", replication_time) + _setter("replication_time", replication_time) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -2837,7 +3777,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] owner: Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the Amazon S3 API Reference. Valid values: `Destination`. """ - pulumi.set(__self__, "owner", owner) + BucketReplicationConfigRuleDestinationAccessControlTranslationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("owner", owner) @property @pulumi.getter @@ -2859,7 +3812,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] replica_kms_key_id: ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. """ - pulumi.set(__self__, "replica_kms_key_id", replica_kms_key_id) + BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + replica_kms_key_id=replica_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replica_kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replica_kms_key_id is None and 'replicaKmsKeyId' in kwargs: + replica_kms_key_id = kwargs['replicaKmsKeyId'] + if replica_kms_key_id is None: + raise TypeError("Missing 'replica_kms_key_id' argument") + + _setter("replica_kms_key_id", replica_kms_key_id) @property @pulumi.getter(name="replicaKmsKeyId") @@ -2883,9 +3851,26 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Status of the Destination Metrics. Either `"Enabled"` or `"Disabled"`. :param pulumi.Input['BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs'] event_threshold: Configuration block that specifies the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event. See below. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleDestinationMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + event_threshold=event_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + event_threshold: Optional[pulumi.Input['BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + if event_threshold is None and 'eventThreshold' in kwargs: + event_threshold = kwargs['eventThreshold'] + + _setter("status", status) if event_threshold is not None: - pulumi.set(__self__, "event_threshold", event_threshold) + _setter("event_threshold", event_threshold) @property @pulumi.getter @@ -2919,7 +3904,20 @@ def __init__(__self__, *, """ :param pulumi.Input[int] minutes: Time in minutes. Valid values: `15`. """ - pulumi.set(__self__, "minutes", minutes) + BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("minutes", minutes) @property @pulumi.getter @@ -2943,8 +3941,25 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Status of the Replication Time Control. Either `"Enabled"` or `"Disabled"`. :param pulumi.Input['BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs'] time: Configuration block specifying the time by which replication should be complete for all objects and operations on objects. See below. """ - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "time", time) + BucketReplicationConfigRuleDestinationReplicationTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + time=time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + time: Optional[pulumi.Input['BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + if time is None: + raise TypeError("Missing 'time' argument") + + _setter("status", status) + _setter("time", time) @property @pulumi.getter @@ -2978,7 +3993,20 @@ def __init__(__self__, *, """ :param pulumi.Input[int] minutes: Time in minutes. Valid values: `15`. """ - pulumi.set(__self__, "minutes", minutes) + BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("minutes", minutes) @property @pulumi.getter @@ -3000,7 +4028,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleExistingObjectReplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -3026,12 +4067,29 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. :param pulumi.Input['BucketReplicationConfigRuleFilterTagArgs'] tag: Configuration block for specifying a tag key and value. See below. """ + BucketReplicationConfigRuleFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_=and_, + prefix=prefix, + tag=tag, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_: Optional[pulumi.Input['BucketReplicationConfigRuleFilterAndArgs']] = None, + prefix: Optional[pulumi.Input[str]] = None, + tag: Optional[pulumi.Input['BucketReplicationConfigRuleFilterTagArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_ is None and 'and' in kwargs: + and_ = kwargs['and'] + if and_ is not None: - pulumi.set(__self__, "and_", and_) + _setter("and_", and_) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tag is not None: - pulumi.set(__self__, "tag", tag) + _setter("tag", tag) @property @pulumi.getter(name="and") @@ -3079,10 +4137,23 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags (key and value pairs) that identifies a subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. """ + BucketReplicationConfigRuleFilterAndArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -3118,8 +4189,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Name of the object key. :param pulumi.Input[str] value: Value of the tag. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + BucketReplicationConfigRuleFilterTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -3155,10 +4243,27 @@ def __init__(__self__, *, :param pulumi.Input['BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs'] replica_modifications: Configuration block that you can specify for selections for modifications on replicas. Amazon S3 doesn't replicate replica modifications by default. In the latest version of replication configuration (when `filter` is specified), you can specify this element and set the status to `Enabled` to replicate modifications on replicas. :param pulumi.Input['BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs'] sse_kms_encrypted_objects: Configuration block for filter information for the selection of Amazon S3 objects encrypted with AWS KMS. If specified, `replica_kms_key_id` in `destination` `encryption_configuration` must be specified as well. """ + BucketReplicationConfigRuleSourceSelectionCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + replica_modifications=replica_modifications, + sse_kms_encrypted_objects=sse_kms_encrypted_objects, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replica_modifications: Optional[pulumi.Input['BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs']] = None, + sse_kms_encrypted_objects: Optional[pulumi.Input['BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replica_modifications is None and 'replicaModifications' in kwargs: + replica_modifications = kwargs['replicaModifications'] + if sse_kms_encrypted_objects is None and 'sseKmsEncryptedObjects' in kwargs: + sse_kms_encrypted_objects = kwargs['sseKmsEncryptedObjects'] + if replica_modifications is not None: - pulumi.set(__self__, "replica_modifications", replica_modifications) + _setter("replica_modifications", replica_modifications) if sse_kms_encrypted_objects is not None: - pulumi.set(__self__, "sse_kms_encrypted_objects", sse_kms_encrypted_objects) + _setter("sse_kms_encrypted_objects", sse_kms_encrypted_objects) @property @pulumi.getter(name="replicaModifications") @@ -3192,7 +4297,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -3214,7 +4332,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] status: Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -3238,8 +4369,25 @@ def __init__(__self__, *, :param pulumi.Input[str] role: The ARN of the IAM role for Amazon S3 to assume when replicating the objects. :param pulumi.Input[Sequence[pulumi.Input['BucketReplicationConfigurationRuleArgs']]] rules: Specifies the rules managing the replication (documented below). """ - pulumi.set(__self__, "role", role) - pulumi.set(__self__, "rules", rules) + BucketReplicationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role=role, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketReplicationConfigurationRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role is None: + raise TypeError("Missing 'role' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("role", role) + _setter("rules", rules) @property @pulumi.getter @@ -3289,20 +4437,53 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. :param pulumi.Input['BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs'] source_selection_criteria: Specifies special object selection criteria (documented below). """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "status", status) + BucketReplicationConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + status=status, + delete_marker_replication_status=delete_marker_replication_status, + filter=filter, + id=id, + prefix=prefix, + priority=priority, + source_selection_criteria=source_selection_criteria, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['BucketReplicationConfigurationRuleDestinationArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + delete_marker_replication_status: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input['BucketReplicationConfigurationRuleFilterArgs']] = None, + id: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + source_selection_criteria: Optional[pulumi.Input['BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if delete_marker_replication_status is None and 'deleteMarkerReplicationStatus' in kwargs: + delete_marker_replication_status = kwargs['deleteMarkerReplicationStatus'] + if source_selection_criteria is None and 'sourceSelectionCriteria' in kwargs: + source_selection_criteria = kwargs['sourceSelectionCriteria'] + + _setter("destination", destination) + _setter("status", status) if delete_marker_replication_status is not None: - pulumi.set(__self__, "delete_marker_replication_status", delete_marker_replication_status) + _setter("delete_marker_replication_status", delete_marker_replication_status) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if source_selection_criteria is not None: - pulumi.set(__self__, "source_selection_criteria", source_selection_criteria) + _setter("source_selection_criteria", source_selection_criteria) @property @pulumi.getter @@ -3423,19 +4604,54 @@ def __init__(__self__, *, :param pulumi.Input['BucketReplicationConfigurationRuleDestinationReplicationTimeArgs'] replication_time: Enables S3 Replication Time Control (S3 RTC) (documented below). :param pulumi.Input[str] storage_class: The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. """ - pulumi.set(__self__, "bucket", bucket) + BucketReplicationConfigurationRuleDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + access_control_translation=access_control_translation, + account_id=account_id, + metrics=metrics, + replica_kms_key_id=replica_kms_key_id, + replication_time=replication_time, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + access_control_translation: Optional[pulumi.Input['BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs']] = None, + account_id: Optional[pulumi.Input[str]] = None, + metrics: Optional[pulumi.Input['BucketReplicationConfigurationRuleDestinationMetricsArgs']] = None, + replica_kms_key_id: Optional[pulumi.Input[str]] = None, + replication_time: Optional[pulumi.Input['BucketReplicationConfigurationRuleDestinationReplicationTimeArgs']] = None, + storage_class: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if access_control_translation is None and 'accessControlTranslation' in kwargs: + access_control_translation = kwargs['accessControlTranslation'] + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if replica_kms_key_id is None and 'replicaKmsKeyId' in kwargs: + replica_kms_key_id = kwargs['replicaKmsKeyId'] + if replication_time is None and 'replicationTime' in kwargs: + replication_time = kwargs['replicationTime'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + + _setter("bucket", bucket) if access_control_translation is not None: - pulumi.set(__self__, "access_control_translation", access_control_translation) + _setter("access_control_translation", access_control_translation) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if replica_kms_key_id is not None: - pulumi.set(__self__, "replica_kms_key_id", replica_kms_key_id) + _setter("replica_kms_key_id", replica_kms_key_id) if replication_time is not None: - pulumi.set(__self__, "replication_time", replication_time) + _setter("replication_time", replication_time) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -3530,7 +4746,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] owner: The override value for the owner on replicated objects. Currently only `Destination` is supported. """ - pulumi.set(__self__, "owner", owner) + BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("owner", owner) @property @pulumi.getter @@ -3554,10 +4783,23 @@ def __init__(__self__, *, :param pulumi.Input[int] minutes: Threshold within which objects are to be replicated. The only valid value is `15`. :param pulumi.Input[str] status: The status of replication metrics. Either `Enabled` or `Disabled`. """ + BucketReplicationConfigurationRuleDestinationMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -3593,10 +4835,23 @@ def __init__(__self__, *, :param pulumi.Input[int] minutes: Threshold within which objects are to be replicated. The only valid value is `15`. :param pulumi.Input[str] status: The status of RTC. Either `Enabled` or `Disabled`. """ + BucketReplicationConfigurationRuleDestinationReplicationTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -3633,10 +4888,23 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags that identifies subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. """ + BucketReplicationConfigurationRuleFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -3672,8 +4940,21 @@ def __init__(__self__, *, :param pulumi.Input['BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs'] sse_kms_encrypted_objects: Match SSE-KMS encrypted objects (documented below). If specified, `replica_kms_key_id` in `destination` must be specified as well. """ + BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_kms_encrypted_objects=sse_kms_encrypted_objects, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_kms_encrypted_objects: Optional[pulumi.Input['BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_kms_encrypted_objects is None and 'sseKmsEncryptedObjects' in kwargs: + sse_kms_encrypted_objects = kwargs['sseKmsEncryptedObjects'] + if sse_kms_encrypted_objects is not None: - pulumi.set(__self__, "sse_kms_encrypted_objects", sse_kms_encrypted_objects) + _setter("sse_kms_encrypted_objects", sse_kms_encrypted_objects) @property @pulumi.getter(name="sseKmsEncryptedObjects") @@ -3696,7 +4977,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Boolean which indicates if this criteria is enabled. """ - pulumi.set(__self__, "enabled", enabled) + BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -3718,7 +5012,20 @@ def __init__(__self__, *, """ :param pulumi.Input['BucketServerSideEncryptionConfigurationRuleArgs'] rule: A single object for server-side encryption by default configuration. (documented below) """ - pulumi.set(__self__, "rule", rule) + BucketServerSideEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule=rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule: Optional[pulumi.Input['BucketServerSideEncryptionConfigurationRuleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule is None: + raise TypeError("Missing 'rule' argument") + + _setter("rule", rule) @property @pulumi.getter @@ -3742,9 +5049,28 @@ def __init__(__self__, *, :param pulumi.Input['BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs'] apply_server_side_encryption_by_default: A single object for setting server-side encryption by default. (documented below) :param pulumi.Input[bool] bucket_key_enabled: Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. """ - pulumi.set(__self__, "apply_server_side_encryption_by_default", apply_server_side_encryption_by_default) + BucketServerSideEncryptionConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_server_side_encryption_by_default=apply_server_side_encryption_by_default, + bucket_key_enabled=bucket_key_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_server_side_encryption_by_default: Optional[pulumi.Input['BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs']] = None, + bucket_key_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_server_side_encryption_by_default is None and 'applyServerSideEncryptionByDefault' in kwargs: + apply_server_side_encryption_by_default = kwargs['applyServerSideEncryptionByDefault'] + if apply_server_side_encryption_by_default is None: + raise TypeError("Missing 'apply_server_side_encryption_by_default' argument") + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + + _setter("apply_server_side_encryption_by_default", apply_server_side_encryption_by_default) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) @property @pulumi.getter(name="applyServerSideEncryptionByDefault") @@ -3780,9 +5106,28 @@ def __init__(__self__, *, :param pulumi.Input[str] sse_algorithm: The server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` :param pulumi.Input[str] kms_master_key_id: The AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sse_algorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sse_algorithm` is `aws:kms`. """ - pulumi.set(__self__, "sse_algorithm", sse_algorithm) + BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_algorithm=sse_algorithm, + kms_master_key_id=kms_master_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_algorithm: Optional[pulumi.Input[str]] = None, + kms_master_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_algorithm is None and 'sseAlgorithm' in kwargs: + sse_algorithm = kwargs['sseAlgorithm'] + if sse_algorithm is None: + raise TypeError("Missing 'sse_algorithm' argument") + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + + _setter("sse_algorithm", sse_algorithm) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) @property @pulumi.getter(name="sseAlgorithm") @@ -3818,10 +5163,27 @@ def __init__(__self__, *, :param pulumi.Input['BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs'] apply_server_side_encryption_by_default: Single object for setting server-side encryption by default. See below. :param pulumi.Input[bool] bucket_key_enabled: Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. """ + BucketServerSideEncryptionConfigurationV2RuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_server_side_encryption_by_default=apply_server_side_encryption_by_default, + bucket_key_enabled=bucket_key_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_server_side_encryption_by_default: Optional[pulumi.Input['BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs']] = None, + bucket_key_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_server_side_encryption_by_default is None and 'applyServerSideEncryptionByDefault' in kwargs: + apply_server_side_encryption_by_default = kwargs['applyServerSideEncryptionByDefault'] + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + if apply_server_side_encryption_by_default is not None: - pulumi.set(__self__, "apply_server_side_encryption_by_default", apply_server_side_encryption_by_default) + _setter("apply_server_side_encryption_by_default", apply_server_side_encryption_by_default) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) @property @pulumi.getter(name="applyServerSideEncryptionByDefault") @@ -3857,9 +5219,28 @@ def __init__(__self__, *, :param pulumi.Input[str] sse_algorithm: Server-side encryption algorithm to use. Valid values are `AES256`, `aws:kms`, and `aws:kms:dsse` :param pulumi.Input[str] kms_master_key_id: AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sse_algorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sse_algorithm` is `aws:kms`. """ - pulumi.set(__self__, "sse_algorithm", sse_algorithm) + BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_algorithm=sse_algorithm, + kms_master_key_id=kms_master_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_algorithm: Optional[pulumi.Input[str]] = None, + kms_master_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_algorithm is None and 'sseAlgorithm' in kwargs: + sse_algorithm = kwargs['sseAlgorithm'] + if sse_algorithm is None: + raise TypeError("Missing 'sse_algorithm' argument") + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + + _setter("sse_algorithm", sse_algorithm) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) @property @pulumi.getter(name="sseAlgorithm") @@ -3901,14 +5282,47 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] expose_headers: One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript `XMLHttpRequest` object). :param pulumi.Input[int] max_age_seconds: Specifies time in seconds that browser can cache the response for a preflight request. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "allowed_origins", allowed_origins) + BucketV2CorsRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + allowed_origins=allowed_origins, + allowed_headers=allowed_headers, + expose_headers=expose_headers, + max_age_seconds=max_age_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_origins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + expose_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + max_age_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if allowed_origins is None and 'allowedOrigins' in kwargs: + allowed_origins = kwargs['allowedOrigins'] + if allowed_origins is None: + raise TypeError("Missing 'allowed_origins' argument") + if allowed_headers is None and 'allowedHeaders' in kwargs: + allowed_headers = kwargs['allowedHeaders'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age_seconds is None and 'maxAgeSeconds' in kwargs: + max_age_seconds = kwargs['maxAgeSeconds'] + + _setter("allowed_methods", allowed_methods) + _setter("allowed_origins", allowed_origins) if allowed_headers is not None: - pulumi.set(__self__, "allowed_headers", allowed_headers) + _setter("allowed_headers", allowed_headers) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if max_age_seconds is not None: - pulumi.set(__self__, "max_age_seconds", max_age_seconds) + _setter("max_age_seconds", max_age_seconds) @property @pulumi.getter(name="allowedMethods") @@ -3984,12 +5398,33 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Canonical user id to grant for. Used only when `type` is `CanonicalUser`. :param pulumi.Input[str] uri: Uri address to grant for. Used only when `type` is `Group`. """ - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "type", type) + BucketV2GrantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + type=type, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("permissions", permissions) + _setter("type", type) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -4063,23 +5498,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Specifies object tags key and value. :param pulumi.Input[Sequence[pulumi.Input['BucketV2LifecycleRuleTransitionArgs']]] transitions: Specifies a period in the object's transitions. See Transition below for details. """ - pulumi.set(__self__, "enabled", enabled) + BucketV2LifecycleRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + abort_incomplete_multipart_upload_days=abort_incomplete_multipart_upload_days, + expirations=expirations, + id=id, + noncurrent_version_expirations=noncurrent_version_expirations, + noncurrent_version_transitions=noncurrent_version_transitions, + prefix=prefix, + tags=tags, + transitions=transitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + abort_incomplete_multipart_upload_days: Optional[pulumi.Input[int]] = None, + expirations: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2LifecycleRuleExpirationArgs']]]] = None, + id: Optional[pulumi.Input[str]] = None, + noncurrent_version_expirations: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2LifecycleRuleNoncurrentVersionExpirationArgs']]]] = None, + noncurrent_version_transitions: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2LifecycleRuleNoncurrentVersionTransitionArgs']]]] = None, + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + transitions: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2LifecycleRuleTransitionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if abort_incomplete_multipart_upload_days is None and 'abortIncompleteMultipartUploadDays' in kwargs: + abort_incomplete_multipart_upload_days = kwargs['abortIncompleteMultipartUploadDays'] + if noncurrent_version_expirations is None and 'noncurrentVersionExpirations' in kwargs: + noncurrent_version_expirations = kwargs['noncurrentVersionExpirations'] + if noncurrent_version_transitions is None and 'noncurrentVersionTransitions' in kwargs: + noncurrent_version_transitions = kwargs['noncurrentVersionTransitions'] + + _setter("enabled", enabled) if abort_incomplete_multipart_upload_days is not None: - pulumi.set(__self__, "abort_incomplete_multipart_upload_days", abort_incomplete_multipart_upload_days) + _setter("abort_incomplete_multipart_upload_days", abort_incomplete_multipart_upload_days) if expirations is not None: - pulumi.set(__self__, "expirations", expirations) + _setter("expirations", expirations) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if noncurrent_version_expirations is not None: - pulumi.set(__self__, "noncurrent_version_expirations", noncurrent_version_expirations) + _setter("noncurrent_version_expirations", noncurrent_version_expirations) if noncurrent_version_transitions is not None: - pulumi.set(__self__, "noncurrent_version_transitions", noncurrent_version_transitions) + _setter("noncurrent_version_transitions", noncurrent_version_transitions) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transitions is not None: - pulumi.set(__self__, "transitions", transitions) + _setter("transitions", transitions) @property @pulumi.getter @@ -4201,12 +5671,29 @@ def __init__(__self__, *, :param pulumi.Input[int] days: Specifies the number of days after object creation when the specific rule action takes effect. :param pulumi.Input[bool] expired_object_delete_marker: On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. """ + BucketV2LifecycleRuleExpirationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date=date, + days=days, + expired_object_delete_marker=expired_object_delete_marker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + expired_object_delete_marker: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expired_object_delete_marker is None and 'expiredObjectDeleteMarker' in kwargs: + expired_object_delete_marker = kwargs['expiredObjectDeleteMarker'] + if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if expired_object_delete_marker is not None: - pulumi.set(__self__, "expired_object_delete_marker", expired_object_delete_marker) + _setter("expired_object_delete_marker", expired_object_delete_marker) @property @pulumi.getter @@ -4252,8 +5739,19 @@ def __init__(__self__, *, """ :param pulumi.Input[int] days: Specifies the number of days noncurrent object versions expire. """ + BucketV2LifecycleRuleNoncurrentVersionExpirationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter @@ -4277,9 +5775,26 @@ def __init__(__self__, *, :param pulumi.Input[str] storage_class: Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. :param pulumi.Input[int] days: Specifies the number of days noncurrent object versions transition. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketV2LifecycleRuleNoncurrentVersionTransitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -4317,11 +5832,30 @@ def __init__(__self__, *, :param pulumi.Input[str] date: Specifies the date after which you want the corresponding action to take effect. :param pulumi.Input[int] days: Specifies the number of days after object creation when the specific rule action takes effect. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketV2LifecycleRuleTransitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + date=date, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[pulumi.Input[str]] = None, + date: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -4369,9 +5903,28 @@ def __init__(__self__, *, :param pulumi.Input[str] target_bucket: Name of the bucket that will receive the log objects. :param pulumi.Input[str] target_prefix: To specify a key prefix for log objects. """ - pulumi.set(__self__, "target_bucket", target_bucket) + BucketV2LoggingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_bucket=target_bucket, + target_prefix=target_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_bucket: Optional[pulumi.Input[str]] = None, + target_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_bucket is None and 'targetBucket' in kwargs: + target_bucket = kwargs['targetBucket'] + if target_bucket is None: + raise TypeError("Missing 'target_bucket' argument") + if target_prefix is None and 'targetPrefix' in kwargs: + target_prefix = kwargs['targetPrefix'] + + _setter("target_bucket", target_bucket) if target_prefix is not None: - pulumi.set(__self__, "target_prefix", target_prefix) + _setter("target_prefix", target_prefix) @property @pulumi.getter(name="targetBucket") @@ -4407,16 +5960,31 @@ def __init__(__self__, *, :param pulumi.Input[str] object_lock_enabled: Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. :param pulumi.Input[Sequence[pulumi.Input['BucketV2ObjectLockConfigurationRuleArgs']]] rules: Object Lock rule in place for this bucket (documented below). """ + BucketV2ObjectLockConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_lock_enabled=object_lock_enabled, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_lock_enabled: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ObjectLockConfigurationRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_lock_enabled is None and 'objectLockEnabled' in kwargs: + object_lock_enabled = kwargs['objectLockEnabled'] + if object_lock_enabled is not None: warnings.warn("""Use the top-level parameter object_lock_enabled instead""", DeprecationWarning) pulumi.log.warn("""object_lock_enabled is deprecated: Use the top-level parameter object_lock_enabled instead""") if object_lock_enabled is not None: - pulumi.set(__self__, "object_lock_enabled", object_lock_enabled) + _setter("object_lock_enabled", object_lock_enabled) if rules is not None: warnings.warn("""Use the aws_s3_bucket_object_lock_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""rules is deprecated: Use the aws_s3_bucket_object_lock_configuration resource instead""") if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) @property @pulumi.getter(name="objectLockEnabled") @@ -4456,7 +6024,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs']]] default_retentions: Default retention period that you want to apply to new objects placed in this bucket (documented below). """ - pulumi.set(__self__, "default_retentions", default_retentions) + BucketV2ObjectLockConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_retentions=default_retentions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_retentions: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_retentions is None and 'defaultRetentions' in kwargs: + default_retentions = kwargs['defaultRetentions'] + if default_retentions is None: + raise TypeError("Missing 'default_retentions' argument") + + _setter("default_retentions", default_retentions) @property @pulumi.getter(name="defaultRetentions") @@ -4482,11 +6065,28 @@ def __init__(__self__, *, :param pulumi.Input[int] days: Number of days that you want to specify for the default retention period. :param pulumi.Input[int] years: Number of years that you want to specify for the default retention period. """ - pulumi.set(__self__, "mode", mode) + BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + days=days, + years=years, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + years: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("mode", mode) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if years is not None: - pulumi.set(__self__, "years", years) + _setter("years", years) @property @pulumi.getter @@ -4534,8 +6134,25 @@ def __init__(__self__, *, :param pulumi.Input[str] role: ARN of the IAM role for Amazon S3 to assume when replicating the objects. :param pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleArgs']]] rules: Specifies the rules managing the replication (documented below). """ - pulumi.set(__self__, "role", role) - pulumi.set(__self__, "rules", rules) + BucketV2ReplicationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role=role, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role is None: + raise TypeError("Missing 'role' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("role", role) + _setter("rules", rules) @property @pulumi.getter @@ -4583,20 +6200,53 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. :param pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs']]] source_selection_criterias: Specifies special object selection criteria (documented below). """ - pulumi.set(__self__, "destinations", destinations) - pulumi.set(__self__, "status", status) + BucketV2ReplicationConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destinations=destinations, + status=status, + delete_marker_replication_status=delete_marker_replication_status, + filters=filters, + id=id, + prefix=prefix, + priority=priority, + source_selection_criterias=source_selection_criterias, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destinations: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleDestinationArgs']]]] = None, + status: Optional[pulumi.Input[str]] = None, + delete_marker_replication_status: Optional[pulumi.Input[str]] = None, + filters: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleFilterArgs']]]] = None, + id: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + source_selection_criterias: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destinations is None: + raise TypeError("Missing 'destinations' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if delete_marker_replication_status is None and 'deleteMarkerReplicationStatus' in kwargs: + delete_marker_replication_status = kwargs['deleteMarkerReplicationStatus'] + if source_selection_criterias is None and 'sourceSelectionCriterias' in kwargs: + source_selection_criterias = kwargs['sourceSelectionCriterias'] + + _setter("destinations", destinations) + _setter("status", status) if delete_marker_replication_status is not None: - pulumi.set(__self__, "delete_marker_replication_status", delete_marker_replication_status) + _setter("delete_marker_replication_status", delete_marker_replication_status) if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if source_selection_criterias is not None: - pulumi.set(__self__, "source_selection_criterias", source_selection_criterias) + _setter("source_selection_criterias", source_selection_criterias) @property @pulumi.getter @@ -4715,19 +6365,54 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs']]] replication_times: Enables S3 Replication Time Control (S3 RTC) (documented below). :param pulumi.Input[str] storage_class: The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. """ - pulumi.set(__self__, "bucket", bucket) + BucketV2ReplicationConfigurationRuleDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + access_control_translations=access_control_translations, + account_id=account_id, + metrics=metrics, + replica_kms_key_id=replica_kms_key_id, + replication_times=replication_times, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + access_control_translations: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs']]]] = None, + account_id: Optional[pulumi.Input[str]] = None, + metrics: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleDestinationMetricArgs']]]] = None, + replica_kms_key_id: Optional[pulumi.Input[str]] = None, + replication_times: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs']]]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if access_control_translations is None and 'accessControlTranslations' in kwargs: + access_control_translations = kwargs['accessControlTranslations'] + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if replica_kms_key_id is None and 'replicaKmsKeyId' in kwargs: + replica_kms_key_id = kwargs['replicaKmsKeyId'] + if replication_times is None and 'replicationTimes' in kwargs: + replication_times = kwargs['replicationTimes'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + + _setter("bucket", bucket) if access_control_translations is not None: - pulumi.set(__self__, "access_control_translations", access_control_translations) + _setter("access_control_translations", access_control_translations) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if replica_kms_key_id is not None: - pulumi.set(__self__, "replica_kms_key_id", replica_kms_key_id) + _setter("replica_kms_key_id", replica_kms_key_id) if replication_times is not None: - pulumi.set(__self__, "replication_times", replication_times) + _setter("replication_times", replication_times) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -4819,7 +6504,20 @@ def storage_class(self, value: Optional[pulumi.Input[str]]): class BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs: def __init__(__self__, *, owner: pulumi.Input[str]): - pulumi.set(__self__, "owner", owner) + BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("owner", owner) @property @pulumi.getter @@ -4840,10 +6538,23 @@ def __init__(__self__, *, :param pulumi.Input[int] minutes: Threshold within which objects are to be replicated. The only valid value is `15`. :param pulumi.Input[str] status: Status of replication metrics. Either `Enabled` or `Disabled`. """ + BucketV2ReplicationConfigurationRuleDestinationMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -4879,10 +6590,23 @@ def __init__(__self__, *, :param pulumi.Input[int] minutes: Threshold within which objects are to be replicated. The only valid value is `15`. :param pulumi.Input[str] status: Status of RTC. Either `Enabled` or `Disabled`. """ + BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -4919,10 +6643,23 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags that identifies subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. """ + BucketV2ReplicationConfigurationRuleFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -4958,8 +6695,21 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs']]] sse_kms_encrypted_objects: Match SSE-KMS encrypted objects (documented below). If specified, `replica_kms_key_id` in `destination` must be specified as well. """ + BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_kms_encrypted_objects=sse_kms_encrypted_objects, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_kms_encrypted_objects: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_kms_encrypted_objects is None and 'sseKmsEncryptedObjects' in kwargs: + sse_kms_encrypted_objects = kwargs['sseKmsEncryptedObjects'] + if sse_kms_encrypted_objects is not None: - pulumi.set(__self__, "sse_kms_encrypted_objects", sse_kms_encrypted_objects) + _setter("sse_kms_encrypted_objects", sse_kms_encrypted_objects) @property @pulumi.getter(name="sseKmsEncryptedObjects") @@ -4982,7 +6732,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Boolean which indicates if this criteria is enabled. """ - pulumi.set(__self__, "enabled", enabled) + BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -5004,7 +6767,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['BucketV2ServerSideEncryptionConfigurationRuleArgs']]] rules: Single object for server-side encryption by default configuration. (documented below) """ - pulumi.set(__self__, "rules", rules) + BucketV2ServerSideEncryptionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ServerSideEncryptionConfigurationRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("rules", rules) @property @pulumi.getter @@ -5028,9 +6804,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs']]] apply_server_side_encryption_by_defaults: Single object for setting server-side encryption by default. (documented below) :param pulumi.Input[bool] bucket_key_enabled: Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. """ - pulumi.set(__self__, "apply_server_side_encryption_by_defaults", apply_server_side_encryption_by_defaults) + BucketV2ServerSideEncryptionConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_server_side_encryption_by_defaults=apply_server_side_encryption_by_defaults, + bucket_key_enabled=bucket_key_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_server_side_encryption_by_defaults: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs']]]] = None, + bucket_key_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_server_side_encryption_by_defaults is None and 'applyServerSideEncryptionByDefaults' in kwargs: + apply_server_side_encryption_by_defaults = kwargs['applyServerSideEncryptionByDefaults'] + if apply_server_side_encryption_by_defaults is None: + raise TypeError("Missing 'apply_server_side_encryption_by_defaults' argument") + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + + _setter("apply_server_side_encryption_by_defaults", apply_server_side_encryption_by_defaults) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) @property @pulumi.getter(name="applyServerSideEncryptionByDefaults") @@ -5066,9 +6861,28 @@ def __init__(__self__, *, :param pulumi.Input[str] sse_algorithm: Server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` :param pulumi.Input[str] kms_master_key_id: AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sse_algorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sse_algorithm` is `aws:kms`. """ - pulumi.set(__self__, "sse_algorithm", sse_algorithm) + BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_algorithm=sse_algorithm, + kms_master_key_id=kms_master_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_algorithm: Optional[pulumi.Input[str]] = None, + kms_master_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_algorithm is None and 'sseAlgorithm' in kwargs: + sse_algorithm = kwargs['sseAlgorithm'] + if sse_algorithm is None: + raise TypeError("Missing 'sse_algorithm' argument") + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + + _setter("sse_algorithm", sse_algorithm) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) @property @pulumi.getter(name="sseAlgorithm") @@ -5104,10 +6918,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. :param pulumi.Input[bool] mfa_delete: Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS """ + BucketV2VersioningArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + mfa_delete=mfa_delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + mfa_delete: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mfa_delete is None and 'mfaDelete' in kwargs: + mfa_delete = kwargs['mfaDelete'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if mfa_delete is not None: - pulumi.set(__self__, "mfa_delete", mfa_delete) + _setter("mfa_delete", mfa_delete) @property @pulumi.getter @@ -5148,14 +6977,39 @@ def __init__(__self__, *, :param pulumi.Input[str] routing_rules: JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) describing redirect behavior and when redirects are applied. """ + BucketV2WebsiteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_document=error_document, + index_document=index_document, + redirect_all_requests_to=redirect_all_requests_to, + routing_rules=routing_rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_document: Optional[pulumi.Input[str]] = None, + index_document: Optional[pulumi.Input[str]] = None, + redirect_all_requests_to: Optional[pulumi.Input[str]] = None, + routing_rules: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_document is None and 'errorDocument' in kwargs: + error_document = kwargs['errorDocument'] + if index_document is None and 'indexDocument' in kwargs: + index_document = kwargs['indexDocument'] + if redirect_all_requests_to is None and 'redirectAllRequestsTo' in kwargs: + redirect_all_requests_to = kwargs['redirectAllRequestsTo'] + if routing_rules is None and 'routingRules' in kwargs: + routing_rules = kwargs['routingRules'] + if error_document is not None: - pulumi.set(__self__, "error_document", error_document) + _setter("error_document", error_document) if index_document is not None: - pulumi.set(__self__, "index_document", index_document) + _setter("index_document", index_document) if redirect_all_requests_to is not None: - pulumi.set(__self__, "redirect_all_requests_to", redirect_all_requests_to) + _setter("redirect_all_requests_to", redirect_all_requests_to) if routing_rules is not None: - pulumi.set(__self__, "routing_rules", routing_rules) + _setter("routing_rules", routing_rules) @property @pulumi.getter(name="errorDocument") @@ -5216,10 +7070,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. :param pulumi.Input[bool] mfa_delete: Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS """ + BucketVersioningArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + mfa_delete=mfa_delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + mfa_delete: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mfa_delete is None and 'mfaDelete' in kwargs: + mfa_delete = kwargs['mfaDelete'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if mfa_delete is not None: - pulumi.set(__self__, "mfa_delete", mfa_delete) + _setter("mfa_delete", mfa_delete) @property @pulumi.getter @@ -5255,9 +7124,26 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Versioning state of the bucket. Valid values: `Enabled`, `Suspended`, or `Disabled`. `Disabled` should only be used when creating or importing resources that correspond to unversioned S3 buckets. :param pulumi.Input[str] mfa_delete: Specifies whether MFA delete is enabled in the bucket versioning configuration. Valid values: `Enabled` or `Disabled`. """ - pulumi.set(__self__, "status", status) + BucketVersioningV2VersioningConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + mfa_delete=mfa_delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + mfa_delete: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + if mfa_delete is None and 'mfaDelete' in kwargs: + mfa_delete = kwargs['mfaDelete'] + + _setter("status", status) if mfa_delete is not None: - pulumi.set(__self__, "mfa_delete", mfa_delete) + _setter("mfa_delete", mfa_delete) @property @pulumi.getter @@ -5300,14 +7186,39 @@ def __init__(__self__, *, The `CORS` object supports the following: """ + BucketWebsiteArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_document=error_document, + index_document=index_document, + redirect_all_requests_to=redirect_all_requests_to, + routing_rules=routing_rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_document: Optional[pulumi.Input[str]] = None, + index_document: Optional[pulumi.Input[str]] = None, + redirect_all_requests_to: Optional[pulumi.Input[str]] = None, + routing_rules: Optional[pulumi.Input[Union[str, Sequence[pulumi.Input[str]]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_document is None and 'errorDocument' in kwargs: + error_document = kwargs['errorDocument'] + if index_document is None and 'indexDocument' in kwargs: + index_document = kwargs['indexDocument'] + if redirect_all_requests_to is None and 'redirectAllRequestsTo' in kwargs: + redirect_all_requests_to = kwargs['redirectAllRequestsTo'] + if routing_rules is None and 'routingRules' in kwargs: + routing_rules = kwargs['routingRules'] + if error_document is not None: - pulumi.set(__self__, "error_document", error_document) + _setter("error_document", error_document) if index_document is not None: - pulumi.set(__self__, "index_document", index_document) + _setter("index_document", index_document) if redirect_all_requests_to is not None: - pulumi.set(__self__, "redirect_all_requests_to", redirect_all_requests_to) + _setter("redirect_all_requests_to", redirect_all_requests_to) if routing_rules is not None: - pulumi.set(__self__, "routing_rules", routing_rules) + _setter("routing_rules", routing_rules) @property @pulumi.getter(name="errorDocument") @@ -5368,7 +7279,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] key: Object key name to use when a 4XX class error occurs. """ - pulumi.set(__self__, "key", key) + BucketWebsiteConfigurationV2ErrorDocumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("key", key) @property @pulumi.getter @@ -5392,7 +7316,20 @@ def __init__(__self__, *, For example, if the suffix is `index.html` and you make a request to `samplebucket/images/`, the data that is returned will be for the object with the key name `images/index.html`. The suffix must not be empty and must not include a slash character. """ - pulumi.set(__self__, "suffix", suffix) + BucketWebsiteConfigurationV2IndexDocumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + suffix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if suffix is None: + raise TypeError("Missing 'suffix' argument") + + _setter("suffix", suffix) @property @pulumi.getter @@ -5418,9 +7355,26 @@ def __init__(__self__, *, :param pulumi.Input[str] host_name: Name of the host where requests are redirected. :param pulumi.Input[str] protocol: Protocol to use when redirecting requests. The default is the protocol that is used in the original request. Valid values: `http`, `https`. """ - pulumi.set(__self__, "host_name", host_name) + BucketWebsiteConfigurationV2RedirectAllRequestsToArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + host_name=host_name, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host_name: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_name is None and 'hostName' in kwargs: + host_name = kwargs['hostName'] + if host_name is None: + raise TypeError("Missing 'host_name' argument") + + _setter("host_name", host_name) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) @property @pulumi.getter(name="hostName") @@ -5456,9 +7410,24 @@ def __init__(__self__, *, :param pulumi.Input['BucketWebsiteConfigurationV2RoutingRuleRedirectArgs'] redirect: Configuration block for redirect information. See below. :param pulumi.Input['BucketWebsiteConfigurationV2RoutingRuleConditionArgs'] condition: Configuration block for describing a condition that must be met for the specified redirect to apply. See below. """ - pulumi.set(__self__, "redirect", redirect) + BucketWebsiteConfigurationV2RoutingRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + redirect=redirect, + condition=condition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + redirect: Optional[pulumi.Input['BucketWebsiteConfigurationV2RoutingRuleRedirectArgs']] = None, + condition: Optional[pulumi.Input['BucketWebsiteConfigurationV2RoutingRuleConditionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if redirect is None: + raise TypeError("Missing 'redirect' argument") + + _setter("redirect", redirect) if condition is not None: - pulumi.set(__self__, "condition", condition) + _setter("condition", condition) @property @pulumi.getter @@ -5494,10 +7463,27 @@ def __init__(__self__, *, :param pulumi.Input[str] http_error_code_returned_equals: HTTP error code when the redirect is applied. If specified with `key_prefix_equals`, then both must be true for the redirect to be applied. :param pulumi.Input[str] key_prefix_equals: Object key name prefix when the redirect is applied. If specified with `http_error_code_returned_equals`, then both must be true for the redirect to be applied. """ + BucketWebsiteConfigurationV2RoutingRuleConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_error_code_returned_equals=http_error_code_returned_equals, + key_prefix_equals=key_prefix_equals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_error_code_returned_equals: Optional[pulumi.Input[str]] = None, + key_prefix_equals: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_error_code_returned_equals is None and 'httpErrorCodeReturnedEquals' in kwargs: + http_error_code_returned_equals = kwargs['httpErrorCodeReturnedEquals'] + if key_prefix_equals is None and 'keyPrefixEquals' in kwargs: + key_prefix_equals = kwargs['keyPrefixEquals'] + if http_error_code_returned_equals is not None: - pulumi.set(__self__, "http_error_code_returned_equals", http_error_code_returned_equals) + _setter("http_error_code_returned_equals", http_error_code_returned_equals) if key_prefix_equals is not None: - pulumi.set(__self__, "key_prefix_equals", key_prefix_equals) + _setter("key_prefix_equals", key_prefix_equals) @property @pulumi.getter(name="httpErrorCodeReturnedEquals") @@ -5539,16 +7525,43 @@ def __init__(__self__, *, :param pulumi.Input[str] replace_key_prefix_with: Object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix `docs/` (objects in the `docs/` folder) to `documents/`, you can set a `condition` block with `key_prefix_equals` set to `docs/` and in the `redirect` set `replace_key_prefix_with` to `/documents`. :param pulumi.Input[str] replace_key_with: Specific object key to use in the redirect request. For example, redirect request to `error.html`. """ + BucketWebsiteConfigurationV2RoutingRuleRedirectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + host_name=host_name, + http_redirect_code=http_redirect_code, + protocol=protocol, + replace_key_prefix_with=replace_key_prefix_with, + replace_key_with=replace_key_with, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host_name: Optional[pulumi.Input[str]] = None, + http_redirect_code: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + replace_key_prefix_with: Optional[pulumi.Input[str]] = None, + replace_key_with: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_name is None and 'hostName' in kwargs: + host_name = kwargs['hostName'] + if http_redirect_code is None and 'httpRedirectCode' in kwargs: + http_redirect_code = kwargs['httpRedirectCode'] + if replace_key_prefix_with is None and 'replaceKeyPrefixWith' in kwargs: + replace_key_prefix_with = kwargs['replaceKeyPrefixWith'] + if replace_key_with is None and 'replaceKeyWith' in kwargs: + replace_key_with = kwargs['replaceKeyWith'] + if host_name is not None: - pulumi.set(__self__, "host_name", host_name) + _setter("host_name", host_name) if http_redirect_code is not None: - pulumi.set(__self__, "http_redirect_code", http_redirect_code) + _setter("http_redirect_code", http_redirect_code) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if replace_key_prefix_with is not None: - pulumi.set(__self__, "replace_key_prefix_with", replace_key_prefix_with) + _setter("replace_key_prefix_with", replace_key_prefix_with) if replace_key_with is not None: - pulumi.set(__self__, "replace_key_with", replace_key_with) + _setter("replace_key_with", replace_key_with) @property @pulumi.getter(name="hostName") @@ -5618,7 +7631,20 @@ def __init__(__self__, *, """ :param pulumi.Input['InventoryDestinationBucketArgs'] bucket: S3 bucket configuration where inventory results are published (documented below). """ - pulumi.set(__self__, "bucket", bucket) + InventoryDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input['InventoryDestinationBucketArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) @property @pulumi.getter @@ -5648,14 +7674,41 @@ def __init__(__self__, *, :param pulumi.Input['InventoryDestinationBucketEncryptionArgs'] encryption: Contains the type of server-side encryption to use to encrypt the inventory (documented below). :param pulumi.Input[str] prefix: Prefix that is prepended to all inventory results. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "format", format) + InventoryDestinationBucketArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + format=format, + account_id=account_id, + encryption=encryption, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + encryption: Optional[pulumi.Input['InventoryDestinationBucketEncryptionArgs']] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("bucket_arn", bucket_arn) + _setter("format", format) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if encryption is not None: - pulumi.set(__self__, "encryption", encryption) + _setter("encryption", encryption) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -5727,10 +7780,27 @@ def __init__(__self__, *, :param pulumi.Input['InventoryDestinationBucketEncryptionSseKmsArgs'] sse_kms: Specifies to use server-side encryption with AWS KMS-managed keys to encrypt the inventory file (documented below). :param pulumi.Input['InventoryDestinationBucketEncryptionSseS3Args'] sse_s3: Specifies to use server-side encryption with Amazon S3-managed keys (SSE-S3) to encrypt the inventory file. """ + InventoryDestinationBucketEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_kms=sse_kms, + sse_s3=sse_s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_kms: Optional[pulumi.Input['InventoryDestinationBucketEncryptionSseKmsArgs']] = None, + sse_s3: Optional[pulumi.Input['InventoryDestinationBucketEncryptionSseS3Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_kms is None and 'sseKms' in kwargs: + sse_kms = kwargs['sseKms'] + if sse_s3 is None and 'sseS3' in kwargs: + sse_s3 = kwargs['sseS3'] + if sse_kms is not None: - pulumi.set(__self__, "sse_kms", sse_kms) + _setter("sse_kms", sse_kms) if sse_s3 is not None: - pulumi.set(__self__, "sse_s3", sse_s3) + _setter("sse_s3", sse_s3) @property @pulumi.getter(name="sseKms") @@ -5764,7 +7834,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] key_id: ARN of the KMS customer master key (CMK) used to encrypt the inventory file. """ - pulumi.set(__self__, "key_id", key_id) + InventoryDestinationBucketEncryptionSseKmsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("key_id", key_id) @property @pulumi.getter(name="keyId") @@ -5783,6 +7868,13 @@ def key_id(self, value: pulumi.Input[str]): class InventoryDestinationBucketEncryptionSseS3Args: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5792,8 +7884,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] prefix: Prefix that an object must have to be included in the inventory results. """ + InventoryFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -5815,7 +7918,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] frequency: Specifies how frequently inventory results are produced. Valid values: `Daily`, `Weekly`. """ - pulumi.set(__self__, "frequency", frequency) + InventoryScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + frequency=frequency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frequency: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frequency is None: + raise TypeError("Missing 'frequency' argument") + + _setter("frequency", frequency) @property @pulumi.getter @@ -5847,14 +7963,37 @@ def __init__(__self__, *, :param pulumi.Input[str] id: Canonical user ID of the grantee. Used only when `type` is `CanonicalUser`. :param pulumi.Input[str] uri: URI of the grantee group. Used only when `type` is `Group`. """ - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "type", type) + ObjectCopyGrantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + type=type, + email=email, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("permissions", permissions) + _setter("type", type) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/s3/access_point.py b/sdk/python/pulumi_aws/s3/access_point.py index 0cd0851a47e..0e9cbd5ae03 100644 --- a/sdk/python/pulumi_aws/s3/access_point.py +++ b/sdk/python/pulumi_aws/s3/access_point.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,19 +35,52 @@ def __init__(__self__, *, :param pulumi.Input['AccessPointPublicAccessBlockConfigurationArgs'] public_access_block_configuration: Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below. :param pulumi.Input['AccessPointVpcConfigurationArgs'] vpc_configuration: Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. """ - pulumi.set(__self__, "bucket", bucket) + AccessPointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + account_id=account_id, + bucket_account_id=bucket_account_id, + name=name, + policy=policy, + public_access_block_configuration=public_access_block_configuration, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + bucket_account_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + public_access_block_configuration: Optional[pulumi.Input['AccessPointPublicAccessBlockConfigurationArgs']] = None, + vpc_configuration: Optional[pulumi.Input['AccessPointVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if bucket_account_id is None and 'bucketAccountId' in kwargs: + bucket_account_id = kwargs['bucketAccountId'] + if public_access_block_configuration is None and 'publicAccessBlockConfiguration' in kwargs: + public_access_block_configuration = kwargs['publicAccessBlockConfiguration'] + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + + _setter("bucket", bucket) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if bucket_account_id is not None: - pulumi.set(__self__, "bucket_account_id", bucket_account_id) + _setter("bucket_account_id", bucket_account_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if public_access_block_configuration is not None: - pulumi.set(__self__, "public_access_block_configuration", public_access_block_configuration) + _setter("public_access_block_configuration", public_access_block_configuration) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter @@ -171,32 +204,81 @@ def __init__(__self__, *, :param pulumi.Input['AccessPointPublicAccessBlockConfigurationArgs'] public_access_block_configuration: Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below. :param pulumi.Input['AccessPointVpcConfigurationArgs'] vpc_configuration: Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. """ + _AccessPointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + alias=alias, + arn=arn, + bucket=bucket, + bucket_account_id=bucket_account_id, + domain_name=domain_name, + endpoints=endpoints, + has_public_access_policy=has_public_access_policy, + name=name, + network_origin=network_origin, + policy=policy, + public_access_block_configuration=public_access_block_configuration, + vpc_configuration=vpc_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + alias: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + bucket_account_id: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + endpoints: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + has_public_access_policy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + network_origin: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + public_access_block_configuration: Optional[pulumi.Input['AccessPointPublicAccessBlockConfigurationArgs']] = None, + vpc_configuration: Optional[pulumi.Input['AccessPointVpcConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if bucket_account_id is None and 'bucketAccountId' in kwargs: + bucket_account_id = kwargs['bucketAccountId'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if has_public_access_policy is None and 'hasPublicAccessPolicy' in kwargs: + has_public_access_policy = kwargs['hasPublicAccessPolicy'] + if network_origin is None and 'networkOrigin' in kwargs: + network_origin = kwargs['networkOrigin'] + if public_access_block_configuration is None and 'publicAccessBlockConfiguration' in kwargs: + public_access_block_configuration = kwargs['publicAccessBlockConfiguration'] + if vpc_configuration is None and 'vpcConfiguration' in kwargs: + vpc_configuration = kwargs['vpcConfiguration'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if bucket_account_id is not None: - pulumi.set(__self__, "bucket_account_id", bucket_account_id) + _setter("bucket_account_id", bucket_account_id) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if endpoints is not None: - pulumi.set(__self__, "endpoints", endpoints) + _setter("endpoints", endpoints) if has_public_access_policy is not None: - pulumi.set(__self__, "has_public_access_policy", has_public_access_policy) + _setter("has_public_access_policy", has_public_access_policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_origin is not None: - pulumi.set(__self__, "network_origin", network_origin) + _setter("network_origin", network_origin) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if public_access_block_configuration is not None: - pulumi.set(__self__, "public_access_block_configuration", public_access_block_configuration) + _setter("public_access_block_configuration", public_access_block_configuration) if vpc_configuration is not None: - pulumi.set(__self__, "vpc_configuration", vpc_configuration) + _setter("vpc_configuration", vpc_configuration) @property @pulumi.getter(name="accountId") @@ -497,6 +579,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccessPointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -525,7 +611,9 @@ def _internal_init(__self__, __props__.__dict__["bucket_account_id"] = bucket_account_id __props__.__dict__["name"] = name __props__.__dict__["policy"] = policy + public_access_block_configuration = _utilities.configure(public_access_block_configuration, AccessPointPublicAccessBlockConfigurationArgs, True) __props__.__dict__["public_access_block_configuration"] = public_access_block_configuration + vpc_configuration = _utilities.configure(vpc_configuration, AccessPointVpcConfigurationArgs, True) __props__.__dict__["vpc_configuration"] = vpc_configuration __props__.__dict__["alias"] = None __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/s3/account_public_access_block.py b/sdk/python/pulumi_aws/s3/account_public_access_block.py index 18e014eff6d..00cc202810b 100644 --- a/sdk/python/pulumi_aws/s3/account_public_access_block.py +++ b/sdk/python/pulumi_aws/s3/account_public_access_block.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountPublicAccessBlockArgs', 'AccountPublicAccessBlock'] @@ -32,16 +32,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] restrict_public_buckets: Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: * Only the bucket owner and AWS Services can access buckets with public policies. """ + AccountPublicAccessBlockArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + block_public_acls=block_public_acls, + block_public_policy=block_public_policy, + ignore_public_acls=ignore_public_acls, + restrict_public_buckets=restrict_public_buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + block_public_acls: Optional[pulumi.Input[bool]] = None, + block_public_policy: Optional[pulumi.Input[bool]] = None, + ignore_public_acls: Optional[pulumi.Input[bool]] = None, + restrict_public_buckets: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if block_public_acls is None and 'blockPublicAcls' in kwargs: + block_public_acls = kwargs['blockPublicAcls'] + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if ignore_public_acls is None and 'ignorePublicAcls' in kwargs: + ignore_public_acls = kwargs['ignorePublicAcls'] + if restrict_public_buckets is None and 'restrictPublicBuckets' in kwargs: + restrict_public_buckets = kwargs['restrictPublicBuckets'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if block_public_acls is not None: - pulumi.set(__self__, "block_public_acls", block_public_acls) + _setter("block_public_acls", block_public_acls) if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) if ignore_public_acls is not None: - pulumi.set(__self__, "ignore_public_acls", ignore_public_acls) + _setter("ignore_public_acls", ignore_public_acls) if restrict_public_buckets is not None: - pulumi.set(__self__, "restrict_public_buckets", restrict_public_buckets) + _setter("restrict_public_buckets", restrict_public_buckets) @property @pulumi.getter(name="accountId") @@ -130,16 +159,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] restrict_public_buckets: Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: * Only the bucket owner and AWS Services can access buckets with public policies. """ + _AccountPublicAccessBlockState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + block_public_acls=block_public_acls, + block_public_policy=block_public_policy, + ignore_public_acls=ignore_public_acls, + restrict_public_buckets=restrict_public_buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + block_public_acls: Optional[pulumi.Input[bool]] = None, + block_public_policy: Optional[pulumi.Input[bool]] = None, + ignore_public_acls: Optional[pulumi.Input[bool]] = None, + restrict_public_buckets: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if block_public_acls is None and 'blockPublicAcls' in kwargs: + block_public_acls = kwargs['blockPublicAcls'] + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if ignore_public_acls is None and 'ignorePublicAcls' in kwargs: + ignore_public_acls = kwargs['ignorePublicAcls'] + if restrict_public_buckets is None and 'restrictPublicBuckets' in kwargs: + restrict_public_buckets = kwargs['restrictPublicBuckets'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if block_public_acls is not None: - pulumi.set(__self__, "block_public_acls", block_public_acls) + _setter("block_public_acls", block_public_acls) if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) if ignore_public_acls is not None: - pulumi.set(__self__, "ignore_public_acls", ignore_public_acls) + _setter("ignore_public_acls", ignore_public_acls) if restrict_public_buckets is not None: - pulumi.set(__self__, "restrict_public_buckets", restrict_public_buckets) + _setter("restrict_public_buckets", restrict_public_buckets) @property @pulumi.getter(name="accountId") @@ -299,6 +357,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountPublicAccessBlockArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/analytics_configuration.py b/sdk/python/pulumi_aws/s3/analytics_configuration.py index 9bcbfeca707..b3ca9b84718 100644 --- a/sdk/python/pulumi_aws/s3/analytics_configuration.py +++ b/sdk/python/pulumi_aws/s3/analytics_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Unique identifier of the analytics configuration for the bucket. :param pulumi.Input['AnalyticsConfigurationStorageClassAnalysisArgs'] storage_class_analysis: Configuration for the analytics data export (documented below). """ - pulumi.set(__self__, "bucket", bucket) + AnalyticsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + filter=filter, + name=name, + storage_class_analysis=storage_class_analysis, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input['AnalyticsConfigurationFilterArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + storage_class_analysis: Optional[pulumi.Input['AnalyticsConfigurationStorageClassAnalysisArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if storage_class_analysis is None and 'storageClassAnalysis' in kwargs: + storage_class_analysis = kwargs['storageClassAnalysis'] + + _setter("bucket", bucket) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if storage_class_analysis is not None: - pulumi.set(__self__, "storage_class_analysis", storage_class_analysis) + _setter("storage_class_analysis", storage_class_analysis) @property @pulumi.getter @@ -98,14 +119,33 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Unique identifier of the analytics configuration for the bucket. :param pulumi.Input['AnalyticsConfigurationStorageClassAnalysisArgs'] storage_class_analysis: Configuration for the analytics data export (documented below). """ + _AnalyticsConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + filter=filter, + name=name, + storage_class_analysis=storage_class_analysis, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input['AnalyticsConfigurationFilterArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + storage_class_analysis: Optional[pulumi.Input['AnalyticsConfigurationStorageClassAnalysisArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class_analysis is None and 'storageClassAnalysis' in kwargs: + storage_class_analysis = kwargs['storageClassAnalysis'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if storage_class_analysis is not None: - pulumi.set(__self__, "storage_class_analysis", storage_class_analysis) + _setter("storage_class_analysis", storage_class_analysis) @property @pulumi.getter @@ -289,6 +329,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AnalyticsConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -310,8 +354,10 @@ def _internal_init(__self__, if bucket is None and not opts.urn: raise TypeError("Missing required property 'bucket'") __props__.__dict__["bucket"] = bucket + filter = _utilities.configure(filter, AnalyticsConfigurationFilterArgs, True) __props__.__dict__["filter"] = filter __props__.__dict__["name"] = name + storage_class_analysis = _utilities.configure(storage_class_analysis, AnalyticsConfigurationStorageClassAnalysisArgs, True) __props__.__dict__["storage_class_analysis"] = storage_class_analysis super(AnalyticsConfiguration, __self__).__init__( 'aws:s3/analyticsConfiguration:AnalyticsConfiguration', diff --git a/sdk/python/pulumi_aws/s3/bucket.py b/sdk/python/pulumi_aws/s3/bucket.py index 408d44acbf3..c75d5f45aea 100644 --- a/sdk/python/pulumi_aws/s3/bucket.py +++ b/sdk/python/pulumi_aws/s3/bucket.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -67,48 +67,123 @@ def __init__(__self__, *, :param pulumi.Input[str] website_domain: The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. :param pulumi.Input[str] website_endpoint: The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. """ + BucketArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + acceleration_status=acceleration_status, + acl=acl, + arn=arn, + bucket=bucket, + bucket_prefix=bucket_prefix, + cors_rules=cors_rules, + force_destroy=force_destroy, + grants=grants, + hosted_zone_id=hosted_zone_id, + lifecycle_rules=lifecycle_rules, + loggings=loggings, + object_lock_configuration=object_lock_configuration, + policy=policy, + replication_configuration=replication_configuration, + request_payer=request_payer, + server_side_encryption_configuration=server_side_encryption_configuration, + tags=tags, + versioning=versioning, + website=website, + website_domain=website_domain, + website_endpoint=website_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acceleration_status: Optional[pulumi.Input[str]] = None, + acl: Optional[pulumi.Input[Union[str, 'CannedAcl']]] = None, + arn: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketCorsRuleArgs']]]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + grants: Optional[pulumi.Input[Sequence[pulumi.Input['BucketGrantArgs']]]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleRuleArgs']]]] = None, + loggings: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLoggingArgs']]]] = None, + object_lock_configuration: Optional[pulumi.Input['BucketObjectLockConfigurationArgs']] = None, + policy: Optional[pulumi.Input[str]] = None, + replication_configuration: Optional[pulumi.Input['BucketReplicationConfigurationArgs']] = None, + request_payer: Optional[pulumi.Input[str]] = None, + server_side_encryption_configuration: Optional[pulumi.Input['BucketServerSideEncryptionConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + versioning: Optional[pulumi.Input['BucketVersioningArgs']] = None, + website: Optional[pulumi.Input['BucketWebsiteArgs']] = None, + website_domain: Optional[pulumi.Input[str]] = None, + website_endpoint: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acceleration_status is None and 'accelerationStatus' in kwargs: + acceleration_status = kwargs['accelerationStatus'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if cors_rules is None and 'corsRules' in kwargs: + cors_rules = kwargs['corsRules'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if lifecycle_rules is None and 'lifecycleRules' in kwargs: + lifecycle_rules = kwargs['lifecycleRules'] + if object_lock_configuration is None and 'objectLockConfiguration' in kwargs: + object_lock_configuration = kwargs['objectLockConfiguration'] + if replication_configuration is None and 'replicationConfiguration' in kwargs: + replication_configuration = kwargs['replicationConfiguration'] + if request_payer is None and 'requestPayer' in kwargs: + request_payer = kwargs['requestPayer'] + if server_side_encryption_configuration is None and 'serverSideEncryptionConfiguration' in kwargs: + server_side_encryption_configuration = kwargs['serverSideEncryptionConfiguration'] + if website_domain is None and 'websiteDomain' in kwargs: + website_domain = kwargs['websiteDomain'] + if website_endpoint is None and 'websiteEndpoint' in kwargs: + website_endpoint = kwargs['websiteEndpoint'] + if acceleration_status is not None: - pulumi.set(__self__, "acceleration_status", acceleration_status) + _setter("acceleration_status", acceleration_status) if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if cors_rules is not None: - pulumi.set(__self__, "cors_rules", cors_rules) + _setter("cors_rules", cors_rules) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if grants is not None: - pulumi.set(__self__, "grants", grants) + _setter("grants", grants) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if lifecycle_rules is not None: - pulumi.set(__self__, "lifecycle_rules", lifecycle_rules) + _setter("lifecycle_rules", lifecycle_rules) if loggings is not None: - pulumi.set(__self__, "loggings", loggings) + _setter("loggings", loggings) if object_lock_configuration is not None: - pulumi.set(__self__, "object_lock_configuration", object_lock_configuration) + _setter("object_lock_configuration", object_lock_configuration) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if replication_configuration is not None: - pulumi.set(__self__, "replication_configuration", replication_configuration) + _setter("replication_configuration", replication_configuration) if request_payer is not None: - pulumi.set(__self__, "request_payer", request_payer) + _setter("request_payer", request_payer) if server_side_encryption_configuration is not None: - pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) + _setter("server_side_encryption_configuration", server_side_encryption_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if versioning is not None: - pulumi.set(__self__, "versioning", versioning) + _setter("versioning", versioning) if website is not None: - pulumi.set(__self__, "website", website) + _setter("website", website) if website_domain is not None: - pulumi.set(__self__, "website_domain", website_domain) + _setter("website_domain", website_domain) if website_endpoint is not None: - pulumi.set(__self__, "website_endpoint", website_endpoint) + _setter("website_endpoint", website_endpoint) @property @pulumi.getter(name="accelerationStatus") @@ -429,59 +504,148 @@ def __init__(__self__, *, :param pulumi.Input[str] website_domain: The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. :param pulumi.Input[str] website_endpoint: The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. """ + _BucketState._configure( + lambda key, value: pulumi.set(__self__, key, value), + acceleration_status=acceleration_status, + acl=acl, + arn=arn, + bucket=bucket, + bucket_domain_name=bucket_domain_name, + bucket_prefix=bucket_prefix, + bucket_regional_domain_name=bucket_regional_domain_name, + cors_rules=cors_rules, + force_destroy=force_destroy, + grants=grants, + hosted_zone_id=hosted_zone_id, + lifecycle_rules=lifecycle_rules, + loggings=loggings, + object_lock_configuration=object_lock_configuration, + policy=policy, + region=region, + replication_configuration=replication_configuration, + request_payer=request_payer, + server_side_encryption_configuration=server_side_encryption_configuration, + tags=tags, + tags_all=tags_all, + versioning=versioning, + website=website, + website_domain=website_domain, + website_endpoint=website_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acceleration_status: Optional[pulumi.Input[str]] = None, + acl: Optional[pulumi.Input[Union[str, 'CannedAcl']]] = None, + arn: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + bucket_domain_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + bucket_regional_domain_name: Optional[pulumi.Input[str]] = None, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketCorsRuleArgs']]]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + grants: Optional[pulumi.Input[Sequence[pulumi.Input['BucketGrantArgs']]]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleRuleArgs']]]] = None, + loggings: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLoggingArgs']]]] = None, + object_lock_configuration: Optional[pulumi.Input['BucketObjectLockConfigurationArgs']] = None, + policy: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + replication_configuration: Optional[pulumi.Input['BucketReplicationConfigurationArgs']] = None, + request_payer: Optional[pulumi.Input[str]] = None, + server_side_encryption_configuration: Optional[pulumi.Input['BucketServerSideEncryptionConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + versioning: Optional[pulumi.Input['BucketVersioningArgs']] = None, + website: Optional[pulumi.Input['BucketWebsiteArgs']] = None, + website_domain: Optional[pulumi.Input[str]] = None, + website_endpoint: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acceleration_status is None and 'accelerationStatus' in kwargs: + acceleration_status = kwargs['accelerationStatus'] + if bucket_domain_name is None and 'bucketDomainName' in kwargs: + bucket_domain_name = kwargs['bucketDomainName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if bucket_regional_domain_name is None and 'bucketRegionalDomainName' in kwargs: + bucket_regional_domain_name = kwargs['bucketRegionalDomainName'] + if cors_rules is None and 'corsRules' in kwargs: + cors_rules = kwargs['corsRules'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if lifecycle_rules is None and 'lifecycleRules' in kwargs: + lifecycle_rules = kwargs['lifecycleRules'] + if object_lock_configuration is None and 'objectLockConfiguration' in kwargs: + object_lock_configuration = kwargs['objectLockConfiguration'] + if replication_configuration is None and 'replicationConfiguration' in kwargs: + replication_configuration = kwargs['replicationConfiguration'] + if request_payer is None and 'requestPayer' in kwargs: + request_payer = kwargs['requestPayer'] + if server_side_encryption_configuration is None and 'serverSideEncryptionConfiguration' in kwargs: + server_side_encryption_configuration = kwargs['serverSideEncryptionConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if website_domain is None and 'websiteDomain' in kwargs: + website_domain = kwargs['websiteDomain'] + if website_endpoint is None and 'websiteEndpoint' in kwargs: + website_endpoint = kwargs['websiteEndpoint'] + if acceleration_status is not None: - pulumi.set(__self__, "acceleration_status", acceleration_status) + _setter("acceleration_status", acceleration_status) if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if bucket_domain_name is not None: - pulumi.set(__self__, "bucket_domain_name", bucket_domain_name) + _setter("bucket_domain_name", bucket_domain_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if bucket_regional_domain_name is not None: - pulumi.set(__self__, "bucket_regional_domain_name", bucket_regional_domain_name) + _setter("bucket_regional_domain_name", bucket_regional_domain_name) if cors_rules is not None: - pulumi.set(__self__, "cors_rules", cors_rules) + _setter("cors_rules", cors_rules) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if grants is not None: - pulumi.set(__self__, "grants", grants) + _setter("grants", grants) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if lifecycle_rules is not None: - pulumi.set(__self__, "lifecycle_rules", lifecycle_rules) + _setter("lifecycle_rules", lifecycle_rules) if loggings is not None: - pulumi.set(__self__, "loggings", loggings) + _setter("loggings", loggings) if object_lock_configuration is not None: - pulumi.set(__self__, "object_lock_configuration", object_lock_configuration) + _setter("object_lock_configuration", object_lock_configuration) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if replication_configuration is not None: - pulumi.set(__self__, "replication_configuration", replication_configuration) + _setter("replication_configuration", replication_configuration) if request_payer is not None: - pulumi.set(__self__, "request_payer", request_payer) + _setter("request_payer", request_payer) if server_side_encryption_configuration is not None: - pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) + _setter("server_side_encryption_configuration", server_side_encryption_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if versioning is not None: - pulumi.set(__self__, "versioning", versioning) + _setter("versioning", versioning) if website is not None: - pulumi.set(__self__, "website", website) + _setter("website", website) if website_domain is not None: - pulumi.set(__self__, "website_domain", website_domain) + _setter("website_domain", website_domain) if website_endpoint is not None: - pulumi.set(__self__, "website_endpoint", website_endpoint) + _setter("website_endpoint", website_endpoint) @property @pulumi.getter(name="accelerationStatus") @@ -1454,6 +1618,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1500,13 +1668,18 @@ def _internal_init(__self__, __props__.__dict__["hosted_zone_id"] = hosted_zone_id __props__.__dict__["lifecycle_rules"] = lifecycle_rules __props__.__dict__["loggings"] = loggings + object_lock_configuration = _utilities.configure(object_lock_configuration, BucketObjectLockConfigurationArgs, True) __props__.__dict__["object_lock_configuration"] = object_lock_configuration __props__.__dict__["policy"] = policy + replication_configuration = _utilities.configure(replication_configuration, BucketReplicationConfigurationArgs, True) __props__.__dict__["replication_configuration"] = replication_configuration __props__.__dict__["request_payer"] = request_payer + server_side_encryption_configuration = _utilities.configure(server_side_encryption_configuration, BucketServerSideEncryptionConfigurationArgs, True) __props__.__dict__["server_side_encryption_configuration"] = server_side_encryption_configuration __props__.__dict__["tags"] = tags + versioning = _utilities.configure(versioning, BucketVersioningArgs, True) __props__.__dict__["versioning"] = versioning + website = _utilities.configure(website, BucketWebsiteArgs, True) __props__.__dict__["website"] = website __props__.__dict__["website_domain"] = website_domain __props__.__dict__["website_endpoint"] = website_endpoint diff --git a/sdk/python/pulumi_aws/s3/bucket_accelerate_configuration_v2.py b/sdk/python/pulumi_aws/s3/bucket_accelerate_configuration_v2.py index 3ebac07ae41..228201772c7 100644 --- a/sdk/python/pulumi_aws/s3/bucket_accelerate_configuration_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_accelerate_configuration_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketAccelerateConfigurationV2Args', 'BucketAccelerateConfigurationV2'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Transfer acceleration state of the bucket. Valid values: `Enabled`, `Suspended`. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "status", status) + BucketAccelerateConfigurationV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + status=status, + expected_bucket_owner=expected_bucket_owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + + _setter("bucket", bucket) + _setter("status", status) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) @property @pulumi.getter @@ -77,12 +98,29 @@ def __init__(__self__, *, :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. :param pulumi.Input[str] status: Transfer acceleration state of the bucket. Valid values: `Enabled`, `Suspended`. """ + _BucketAccelerateConfigurationV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + expected_bucket_owner=expected_bucket_owner, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -216,6 +254,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketAccelerateConfigurationV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_acl_v2.py b/sdk/python/pulumi_aws/s3/bucket_acl_v2.py index 31447720337..151bcb2929e 100644 --- a/sdk/python/pulumi_aws/s3/bucket_acl_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_acl_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,36 @@ def __init__(__self__, *, :param pulumi.Input[str] acl: Canned ACL to apply to the bucket. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. """ - pulumi.set(__self__, "bucket", bucket) + BucketAclV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + access_control_policy=access_control_policy, + acl=acl, + expected_bucket_owner=expected_bucket_owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + access_control_policy: Optional[pulumi.Input['BucketAclV2AccessControlPolicyArgs']] = None, + acl: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if access_control_policy is None and 'accessControlPolicy' in kwargs: + access_control_policy = kwargs['accessControlPolicy'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + + _setter("bucket", bucket) if access_control_policy is not None: - pulumi.set(__self__, "access_control_policy", access_control_policy) + _setter("access_control_policy", access_control_policy) if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) @property @pulumi.getter @@ -98,14 +121,35 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Name of the bucket. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. """ + _BucketAclV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_control_policy=access_control_policy, + acl=acl, + bucket=bucket, + expected_bucket_owner=expected_bucket_owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_control_policy: Optional[pulumi.Input['BucketAclV2AccessControlPolicyArgs']] = None, + acl: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_control_policy is None and 'accessControlPolicy' in kwargs: + access_control_policy = kwargs['accessControlPolicy'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if access_control_policy is not None: - pulumi.set(__self__, "access_control_policy", access_control_policy) + _setter("access_control_policy", access_control_policy) if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) @property @pulumi.getter(name="accessControlPolicy") @@ -433,6 +477,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketAclV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -451,6 +499,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = BucketAclV2Args.__new__(BucketAclV2Args) + access_control_policy = _utilities.configure(access_control_policy, BucketAclV2AccessControlPolicyArgs, True) __props__.__dict__["access_control_policy"] = access_control_policy __props__.__dict__["acl"] = acl if bucket is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/s3/bucket_cors_configuration_v2.py b/sdk/python/pulumi_aws/s3/bucket_cors_configuration_v2.py index 0b54122afcd..b3dbd3bd817 100644 --- a/sdk/python/pulumi_aws/s3/bucket_cors_configuration_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_cors_configuration_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketCorsConfigurationV2CorsRuleArgs']]] cors_rules: Set of origins and methods (cross-origin access that you want to allow). See below. You can configure up to 100 rules. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "cors_rules", cors_rules) + BucketCorsConfigurationV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + cors_rules=cors_rules, + expected_bucket_owner=expected_bucket_owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketCorsConfigurationV2CorsRuleArgs']]]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if cors_rules is None and 'corsRules' in kwargs: + cors_rules = kwargs['corsRules'] + if cors_rules is None: + raise TypeError("Missing 'cors_rules' argument") + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + + _setter("bucket", bucket) + _setter("cors_rules", cors_rules) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) @property @pulumi.getter @@ -79,12 +102,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketCorsConfigurationV2CorsRuleArgs']]] cors_rules: Set of origins and methods (cross-origin access that you want to allow). See below. You can configure up to 100 rules. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. """ + _BucketCorsConfigurationV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + cors_rules=cors_rules, + expected_bucket_owner=expected_bucket_owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketCorsConfigurationV2CorsRuleArgs']]]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cors_rules is None and 'corsRules' in kwargs: + cors_rules = kwargs['corsRules'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if cors_rules is not None: - pulumi.set(__self__, "cors_rules", cors_rules) + _setter("cors_rules", cors_rules) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) @property @pulumi.getter @@ -252,6 +294,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketCorsConfigurationV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_intelligent_tiering_configuration.py b/sdk/python/pulumi_aws/s3/bucket_intelligent_tiering_configuration.py index f7162daf78e..4faf27a7881 100644 --- a/sdk/python/pulumi_aws/s3/bucket_intelligent_tiering_configuration.py +++ b/sdk/python/pulumi_aws/s3/bucket_intelligent_tiering_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,14 +29,37 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. :param pulumi.Input[str] status: Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "tierings", tierings) + BucketIntelligentTieringConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + tierings=tierings, + filter=filter, + name=name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + tierings: Optional[pulumi.Input[Sequence[pulumi.Input['BucketIntelligentTieringConfigurationTieringArgs']]]] = None, + filter: Optional[pulumi.Input['BucketIntelligentTieringConfigurationFilterArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if tierings is None: + raise TypeError("Missing 'tierings' argument") + + _setter("bucket", bucket) + _setter("tierings", tierings) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -115,16 +138,35 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. :param pulumi.Input[Sequence[pulumi.Input['BucketIntelligentTieringConfigurationTieringArgs']]] tierings: S3 Intelligent-Tiering storage class tiers of the configuration (documented below). """ + _BucketIntelligentTieringConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + filter=filter, + name=name, + status=status, + tierings=tierings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input['BucketIntelligentTieringConfigurationFilterArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tierings: Optional[pulumi.Input[Sequence[pulumi.Input['BucketIntelligentTieringConfigurationTieringArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tierings is not None: - pulumi.set(__self__, "tierings", tierings) + _setter("tierings", tierings) @property @pulumi.getter @@ -332,6 +374,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketIntelligentTieringConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -354,6 +400,7 @@ def _internal_init(__self__, if bucket is None and not opts.urn: raise TypeError("Missing required property 'bucket'") __props__.__dict__["bucket"] = bucket + filter = _utilities.configure(filter, BucketIntelligentTieringConfigurationFilterArgs, True) __props__.__dict__["filter"] = filter __props__.__dict__["name"] = name __props__.__dict__["status"] = status diff --git a/sdk/python/pulumi_aws/s3/bucket_lifecycle_configuration_v2.py b/sdk/python/pulumi_aws/s3/bucket_lifecycle_configuration_v2.py index 322db24cdef..68e494f847d 100644 --- a/sdk/python/pulumi_aws/s3/bucket_lifecycle_configuration_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_lifecycle_configuration_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]] rules: List of configuration blocks describing the rules managing the replication. See below. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "rules", rules) + BucketLifecycleConfigurationV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + rules=rules, + expected_bucket_owner=expected_bucket_owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + + _setter("bucket", bucket) + _setter("rules", rules) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) @property @pulumi.getter @@ -79,12 +100,29 @@ def __init__(__self__, *, :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]] rules: List of configuration blocks describing the rules managing the replication. See below. """ + _BucketLifecycleConfigurationV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + expected_bucket_owner=expected_bucket_owner, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) @property @pulumi.getter @@ -764,6 +802,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketLifecycleConfigurationV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_logging_v2.py b/sdk/python/pulumi_aws/s3/bucket_logging_v2.py index adaa0c500d4..b5c79bd0c66 100644 --- a/sdk/python/pulumi_aws/s3/bucket_logging_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_logging_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,46 @@ def __init__(__self__, *, :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. :param pulumi.Input[Sequence[pulumi.Input['BucketLoggingV2TargetGrantArgs']]] target_grants: Set of configuration blocks with information for granting permissions. See below. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "target_bucket", target_bucket) - pulumi.set(__self__, "target_prefix", target_prefix) + BucketLoggingV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + target_bucket=target_bucket, + target_prefix=target_prefix, + expected_bucket_owner=expected_bucket_owner, + target_grants=target_grants, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + target_bucket: Optional[pulumi.Input[str]] = None, + target_prefix: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + target_grants: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLoggingV2TargetGrantArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if target_bucket is None and 'targetBucket' in kwargs: + target_bucket = kwargs['targetBucket'] + if target_bucket is None: + raise TypeError("Missing 'target_bucket' argument") + if target_prefix is None and 'targetPrefix' in kwargs: + target_prefix = kwargs['targetPrefix'] + if target_prefix is None: + raise TypeError("Missing 'target_prefix' argument") + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if target_grants is None and 'targetGrants' in kwargs: + target_grants = kwargs['targetGrants'] + + _setter("bucket", bucket) + _setter("target_bucket", target_bucket) + _setter("target_prefix", target_prefix) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if target_grants is not None: - pulumi.set(__self__, "target_grants", target_grants) + _setter("target_grants", target_grants) @property @pulumi.getter @@ -114,16 +147,43 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketLoggingV2TargetGrantArgs']]] target_grants: Set of configuration blocks with information for granting permissions. See below. :param pulumi.Input[str] target_prefix: Prefix for all log object keys. """ + _BucketLoggingV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + expected_bucket_owner=expected_bucket_owner, + target_bucket=target_bucket, + target_grants=target_grants, + target_prefix=target_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + target_bucket: Optional[pulumi.Input[str]] = None, + target_grants: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLoggingV2TargetGrantArgs']]]] = None, + target_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if target_bucket is None and 'targetBucket' in kwargs: + target_bucket = kwargs['targetBucket'] + if target_grants is None and 'targetGrants' in kwargs: + target_grants = kwargs['targetGrants'] + if target_prefix is None and 'targetPrefix' in kwargs: + target_prefix = kwargs['targetPrefix'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if target_bucket is not None: - pulumi.set(__self__, "target_bucket", target_bucket) + _setter("target_bucket", target_bucket) if target_grants is not None: - pulumi.set(__self__, "target_grants", target_grants) + _setter("target_grants", target_grants) if target_prefix is not None: - pulumi.set(__self__, "target_prefix", target_prefix) + _setter("target_prefix", target_prefix) @property @pulumi.getter @@ -309,6 +369,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketLoggingV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_metric.py b/sdk/python/pulumi_aws/s3/bucket_metric.py index 8dbecfdb19e..d4b753e2773 100644 --- a/sdk/python/pulumi_aws/s3/bucket_metric.py +++ b/sdk/python/pulumi_aws/s3/bucket_metric.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,28 @@ def __init__(__self__, *, :param pulumi.Input['BucketMetricFilterArgs'] filter: [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). :param pulumi.Input[str] name: Unique identifier of the metrics configuration for the bucket. Must be less than or equal to 64 characters in length. """ - pulumi.set(__self__, "bucket", bucket) + BucketMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + filter=filter, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input['BucketMetricFilterArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -80,12 +97,27 @@ def __init__(__self__, *, :param pulumi.Input['BucketMetricFilterArgs'] filter: [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). :param pulumi.Input[str] name: Unique identifier of the metrics configuration for the bucket. Must be less than or equal to 64 characters in length. """ + _BucketMetricState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + filter=filter, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input['BucketMetricFilterArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -233,6 +265,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketMetricArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -253,6 +289,7 @@ def _internal_init(__self__, if bucket is None and not opts.urn: raise TypeError("Missing required property 'bucket'") __props__.__dict__["bucket"] = bucket + filter = _utilities.configure(filter, BucketMetricFilterArgs, True) __props__.__dict__["filter"] = filter __props__.__dict__["name"] = name super(BucketMetric, __self__).__init__( diff --git a/sdk/python/pulumi_aws/s3/bucket_notification.py b/sdk/python/pulumi_aws/s3/bucket_notification.py index 2db36da8500..8d57a17e620 100644 --- a/sdk/python/pulumi_aws/s3/bucket_notification.py +++ b/sdk/python/pulumi_aws/s3/bucket_notification.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,38 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketNotificationQueueArgs']]] queues: Notification configuration to SQS Queue. See below. :param pulumi.Input[Sequence[pulumi.Input['BucketNotificationTopicArgs']]] topics: Notification configuration to SNS Topic. See below. """ - pulumi.set(__self__, "bucket", bucket) + BucketNotificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + eventbridge=eventbridge, + lambda_functions=lambda_functions, + queues=queues, + topics=topics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + eventbridge: Optional[pulumi.Input[bool]] = None, + lambda_functions: Optional[pulumi.Input[Sequence[pulumi.Input['BucketNotificationLambdaFunctionArgs']]]] = None, + queues: Optional[pulumi.Input[Sequence[pulumi.Input['BucketNotificationQueueArgs']]]] = None, + topics: Optional[pulumi.Input[Sequence[pulumi.Input['BucketNotificationTopicArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if lambda_functions is None and 'lambdaFunctions' in kwargs: + lambda_functions = kwargs['lambdaFunctions'] + + _setter("bucket", bucket) if eventbridge is not None: - pulumi.set(__self__, "eventbridge", eventbridge) + _setter("eventbridge", eventbridge) if lambda_functions is not None: - pulumi.set(__self__, "lambda_functions", lambda_functions) + _setter("lambda_functions", lambda_functions) if queues is not None: - pulumi.set(__self__, "queues", queues) + _setter("queues", queues) if topics is not None: - pulumi.set(__self__, "topics", topics) + _setter("topics", topics) @property @pulumi.getter @@ -122,16 +145,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketNotificationQueueArgs']]] queues: Notification configuration to SQS Queue. See below. :param pulumi.Input[Sequence[pulumi.Input['BucketNotificationTopicArgs']]] topics: Notification configuration to SNS Topic. See below. """ + _BucketNotificationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + eventbridge=eventbridge, + lambda_functions=lambda_functions, + queues=queues, + topics=topics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + eventbridge: Optional[pulumi.Input[bool]] = None, + lambda_functions: Optional[pulumi.Input[Sequence[pulumi.Input['BucketNotificationLambdaFunctionArgs']]]] = None, + queues: Optional[pulumi.Input[Sequence[pulumi.Input['BucketNotificationQueueArgs']]]] = None, + topics: Optional[pulumi.Input[Sequence[pulumi.Input['BucketNotificationTopicArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lambda_functions is None and 'lambdaFunctions' in kwargs: + lambda_functions = kwargs['lambdaFunctions'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if eventbridge is not None: - pulumi.set(__self__, "eventbridge", eventbridge) + _setter("eventbridge", eventbridge) if lambda_functions is not None: - pulumi.set(__self__, "lambda_functions", lambda_functions) + _setter("lambda_functions", lambda_functions) if queues is not None: - pulumi.set(__self__, "queues", queues) + _setter("queues", queues) if topics is not None: - pulumi.set(__self__, "topics", topics) + _setter("topics", topics) @property @pulumi.getter @@ -567,6 +611,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketNotificationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_object.py b/sdk/python/pulumi_aws/s3/bucket_object.py index 3d936f22adc..de95f114307 100644 --- a/sdk/python/pulumi_aws/s3/bucket_object.py +++ b/sdk/python/pulumi_aws/s3/bucket_object.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketObjectArgs', 'BucketObject'] @@ -69,53 +69,144 @@ def __init__(__self__, *, If no content is provided through `source`, `content` or `content_base64`, then the object will be empty. """ - pulumi.set(__self__, "bucket", bucket) + BucketObjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + acl=acl, + bucket_key_enabled=bucket_key_enabled, + cache_control=cache_control, + content=content, + content_base64=content_base64, + content_disposition=content_disposition, + content_encoding=content_encoding, + content_language=content_language, + content_type=content_type, + etag=etag, + force_destroy=force_destroy, + key=key, + kms_key_id=kms_key_id, + metadata=metadata, + object_lock_legal_hold_status=object_lock_legal_hold_status, + object_lock_mode=object_lock_mode, + object_lock_retain_until_date=object_lock_retain_until_date, + server_side_encryption=server_side_encryption, + source=source, + source_hash=source_hash, + storage_class=storage_class, + tags=tags, + website_redirect=website_redirect, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + acl: Optional[pulumi.Input[str]] = None, + bucket_key_enabled: Optional[pulumi.Input[bool]] = None, + cache_control: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_base64: Optional[pulumi.Input[str]] = None, + content_disposition: Optional[pulumi.Input[str]] = None, + content_encoding: Optional[pulumi.Input[str]] = None, + content_language: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + object_lock_legal_hold_status: Optional[pulumi.Input[str]] = None, + object_lock_mode: Optional[pulumi.Input[str]] = None, + object_lock_retain_until_date: Optional[pulumi.Input[str]] = None, + server_side_encryption: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[Union[pulumi.Asset, pulumi.Archive]]] = None, + source_hash: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + website_redirect: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + if cache_control is None and 'cacheControl' in kwargs: + cache_control = kwargs['cacheControl'] + if content_base64 is None and 'contentBase64' in kwargs: + content_base64 = kwargs['contentBase64'] + if content_disposition is None and 'contentDisposition' in kwargs: + content_disposition = kwargs['contentDisposition'] + if content_encoding is None and 'contentEncoding' in kwargs: + content_encoding = kwargs['contentEncoding'] + if content_language is None and 'contentLanguage' in kwargs: + content_language = kwargs['contentLanguage'] + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if object_lock_legal_hold_status is None and 'objectLockLegalHoldStatus' in kwargs: + object_lock_legal_hold_status = kwargs['objectLockLegalHoldStatus'] + if object_lock_mode is None and 'objectLockMode' in kwargs: + object_lock_mode = kwargs['objectLockMode'] + if object_lock_retain_until_date is None and 'objectLockRetainUntilDate' in kwargs: + object_lock_retain_until_date = kwargs['objectLockRetainUntilDate'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if source_hash is None and 'sourceHash' in kwargs: + source_hash = kwargs['sourceHash'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if website_redirect is None and 'websiteRedirect' in kwargs: + website_redirect = kwargs['websiteRedirect'] + + _setter("bucket", bucket) if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) if cache_control is not None: - pulumi.set(__self__, "cache_control", cache_control) + _setter("cache_control", cache_control) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_base64 is not None: - pulumi.set(__self__, "content_base64", content_base64) + _setter("content_base64", content_base64) if content_disposition is not None: - pulumi.set(__self__, "content_disposition", content_disposition) + _setter("content_disposition", content_disposition) if content_encoding is not None: - pulumi.set(__self__, "content_encoding", content_encoding) + _setter("content_encoding", content_encoding) if content_language is not None: - pulumi.set(__self__, "content_language", content_language) + _setter("content_language", content_language) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if metadata is not None: - pulumi.set(__self__, "metadata", metadata) + _setter("metadata", metadata) if object_lock_legal_hold_status is not None: - pulumi.set(__self__, "object_lock_legal_hold_status", object_lock_legal_hold_status) + _setter("object_lock_legal_hold_status", object_lock_legal_hold_status) if object_lock_mode is not None: - pulumi.set(__self__, "object_lock_mode", object_lock_mode) + _setter("object_lock_mode", object_lock_mode) if object_lock_retain_until_date is not None: - pulumi.set(__self__, "object_lock_retain_until_date", object_lock_retain_until_date) + _setter("object_lock_retain_until_date", object_lock_retain_until_date) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if source_hash is not None: - pulumi.set(__self__, "source_hash", source_hash) + _setter("source_hash", source_hash) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if website_redirect is not None: - pulumi.set(__self__, "website_redirect", website_redirect) + _setter("website_redirect", website_redirect) @property @pulumi.getter @@ -472,61 +563,158 @@ def __init__(__self__, *, If no content is provided through `source`, `content` or `content_base64`, then the object will be empty. """ + _BucketObjectState._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl=acl, + bucket=bucket, + bucket_key_enabled=bucket_key_enabled, + cache_control=cache_control, + content=content, + content_base64=content_base64, + content_disposition=content_disposition, + content_encoding=content_encoding, + content_language=content_language, + content_type=content_type, + etag=etag, + force_destroy=force_destroy, + key=key, + kms_key_id=kms_key_id, + metadata=metadata, + object_lock_legal_hold_status=object_lock_legal_hold_status, + object_lock_mode=object_lock_mode, + object_lock_retain_until_date=object_lock_retain_until_date, + server_side_encryption=server_side_encryption, + source=source, + source_hash=source_hash, + storage_class=storage_class, + tags=tags, + tags_all=tags_all, + version_id=version_id, + website_redirect=website_redirect, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + bucket_key_enabled: Optional[pulumi.Input[bool]] = None, + cache_control: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_base64: Optional[pulumi.Input[str]] = None, + content_disposition: Optional[pulumi.Input[str]] = None, + content_encoding: Optional[pulumi.Input[str]] = None, + content_language: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + object_lock_legal_hold_status: Optional[pulumi.Input[str]] = None, + object_lock_mode: Optional[pulumi.Input[str]] = None, + object_lock_retain_until_date: Optional[pulumi.Input[str]] = None, + server_side_encryption: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[Union[pulumi.Asset, pulumi.Archive]]] = None, + source_hash: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_id: Optional[pulumi.Input[str]] = None, + website_redirect: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + if cache_control is None and 'cacheControl' in kwargs: + cache_control = kwargs['cacheControl'] + if content_base64 is None and 'contentBase64' in kwargs: + content_base64 = kwargs['contentBase64'] + if content_disposition is None and 'contentDisposition' in kwargs: + content_disposition = kwargs['contentDisposition'] + if content_encoding is None and 'contentEncoding' in kwargs: + content_encoding = kwargs['contentEncoding'] + if content_language is None and 'contentLanguage' in kwargs: + content_language = kwargs['contentLanguage'] + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if object_lock_legal_hold_status is None and 'objectLockLegalHoldStatus' in kwargs: + object_lock_legal_hold_status = kwargs['objectLockLegalHoldStatus'] + if object_lock_mode is None and 'objectLockMode' in kwargs: + object_lock_mode = kwargs['objectLockMode'] + if object_lock_retain_until_date is None and 'objectLockRetainUntilDate' in kwargs: + object_lock_retain_until_date = kwargs['objectLockRetainUntilDate'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if source_hash is None and 'sourceHash' in kwargs: + source_hash = kwargs['sourceHash'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + if website_redirect is None and 'websiteRedirect' in kwargs: + website_redirect = kwargs['websiteRedirect'] + if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) if cache_control is not None: - pulumi.set(__self__, "cache_control", cache_control) + _setter("cache_control", cache_control) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_base64 is not None: - pulumi.set(__self__, "content_base64", content_base64) + _setter("content_base64", content_base64) if content_disposition is not None: - pulumi.set(__self__, "content_disposition", content_disposition) + _setter("content_disposition", content_disposition) if content_encoding is not None: - pulumi.set(__self__, "content_encoding", content_encoding) + _setter("content_encoding", content_encoding) if content_language is not None: - pulumi.set(__self__, "content_language", content_language) + _setter("content_language", content_language) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if metadata is not None: - pulumi.set(__self__, "metadata", metadata) + _setter("metadata", metadata) if object_lock_legal_hold_status is not None: - pulumi.set(__self__, "object_lock_legal_hold_status", object_lock_legal_hold_status) + _setter("object_lock_legal_hold_status", object_lock_legal_hold_status) if object_lock_mode is not None: - pulumi.set(__self__, "object_lock_mode", object_lock_mode) + _setter("object_lock_mode", object_lock_mode) if object_lock_retain_until_date is not None: - pulumi.set(__self__, "object_lock_retain_until_date", object_lock_retain_until_date) + _setter("object_lock_retain_until_date", object_lock_retain_until_date) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if source_hash is not None: - pulumi.set(__self__, "source_hash", source_hash) + _setter("source_hash", source_hash) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) if website_redirect is not None: - pulumi.set(__self__, "website_redirect", website_redirect) + _setter("website_redirect", website_redirect) @property @pulumi.getter @@ -1121,6 +1309,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketObjectArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_object_lock_configuration_v2.py b/sdk/python/pulumi_aws/s3/bucket_object_lock_configuration_v2.py index 20f0875545f..3eb81467cb8 100644 --- a/sdk/python/pulumi_aws/s3/bucket_object_lock_configuration_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_object_lock_configuration_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -30,15 +30,40 @@ def __init__(__self__, *, :param pulumi.Input[str] token: Token to allow Object Lock to be enabled for an existing bucket. You must contact AWS support for the bucket's "Object Lock token". The token is generated in the back-end when [versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html) is enabled on a bucket. For more details on versioning, see the `s3.BucketVersioningV2` resource. """ - pulumi.set(__self__, "bucket", bucket) + BucketObjectLockConfigurationV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + expected_bucket_owner=expected_bucket_owner, + object_lock_enabled=object_lock_enabled, + rule=rule, + token=token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + object_lock_enabled: Optional[pulumi.Input[str]] = None, + rule: Optional[pulumi.Input['BucketObjectLockConfigurationV2RuleArgs']] = None, + token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if object_lock_enabled is None and 'objectLockEnabled' in kwargs: + object_lock_enabled = kwargs['objectLockEnabled'] + + _setter("bucket", bucket) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if object_lock_enabled is not None: - pulumi.set(__self__, "object_lock_enabled", object_lock_enabled) + _setter("object_lock_enabled", object_lock_enabled) if rule is not None: - pulumi.set(__self__, "rule", rule) + _setter("rule", rule) if token is not None: - pulumi.set(__self__, "token", token) + _setter("token", token) @property @pulumi.getter @@ -119,16 +144,39 @@ def __init__(__self__, *, :param pulumi.Input[str] token: Token to allow Object Lock to be enabled for an existing bucket. You must contact AWS support for the bucket's "Object Lock token". The token is generated in the back-end when [versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html) is enabled on a bucket. For more details on versioning, see the `s3.BucketVersioningV2` resource. """ + _BucketObjectLockConfigurationV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + expected_bucket_owner=expected_bucket_owner, + object_lock_enabled=object_lock_enabled, + rule=rule, + token=token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + object_lock_enabled: Optional[pulumi.Input[str]] = None, + rule: Optional[pulumi.Input['BucketObjectLockConfigurationV2RuleArgs']] = None, + token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if object_lock_enabled is None and 'objectLockEnabled' in kwargs: + object_lock_enabled = kwargs['objectLockEnabled'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if object_lock_enabled is not None: - pulumi.set(__self__, "object_lock_enabled", object_lock_enabled) + _setter("object_lock_enabled", object_lock_enabled) if rule is not None: - pulumi.set(__self__, "rule", rule) + _setter("rule", rule) if token is not None: - pulumi.set(__self__, "token", token) + _setter("token", token) @property @pulumi.getter @@ -404,6 +452,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketObjectLockConfigurationV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -428,6 +480,7 @@ def _internal_init(__self__, __props__.__dict__["bucket"] = bucket __props__.__dict__["expected_bucket_owner"] = expected_bucket_owner __props__.__dict__["object_lock_enabled"] = object_lock_enabled + rule = _utilities.configure(rule, BucketObjectLockConfigurationV2RuleArgs, True) __props__.__dict__["rule"] = rule __props__.__dict__["token"] = None if token is None else pulumi.Output.secret(token) secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["token"]) diff --git a/sdk/python/pulumi_aws/s3/bucket_objectv2.py b/sdk/python/pulumi_aws/s3/bucket_objectv2.py index c073f8f9a0a..3f893b2fa04 100644 --- a/sdk/python/pulumi_aws/s3/bucket_objectv2.py +++ b/sdk/python/pulumi_aws/s3/bucket_objectv2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketObjectv2Args', 'BucketObjectv2'] @@ -73,55 +73,150 @@ def __init__(__self__, *, > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`. """ - pulumi.set(__self__, "bucket", bucket) + BucketObjectv2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + acl=acl, + bucket_key_enabled=bucket_key_enabled, + cache_control=cache_control, + checksum_algorithm=checksum_algorithm, + content=content, + content_base64=content_base64, + content_disposition=content_disposition, + content_encoding=content_encoding, + content_language=content_language, + content_type=content_type, + etag=etag, + force_destroy=force_destroy, + key=key, + kms_key_id=kms_key_id, + metadata=metadata, + object_lock_legal_hold_status=object_lock_legal_hold_status, + object_lock_mode=object_lock_mode, + object_lock_retain_until_date=object_lock_retain_until_date, + server_side_encryption=server_side_encryption, + source=source, + source_hash=source_hash, + storage_class=storage_class, + tags=tags, + website_redirect=website_redirect, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + acl: Optional[pulumi.Input[str]] = None, + bucket_key_enabled: Optional[pulumi.Input[bool]] = None, + cache_control: Optional[pulumi.Input[str]] = None, + checksum_algorithm: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_base64: Optional[pulumi.Input[str]] = None, + content_disposition: Optional[pulumi.Input[str]] = None, + content_encoding: Optional[pulumi.Input[str]] = None, + content_language: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + object_lock_legal_hold_status: Optional[pulumi.Input[str]] = None, + object_lock_mode: Optional[pulumi.Input[str]] = None, + object_lock_retain_until_date: Optional[pulumi.Input[str]] = None, + server_side_encryption: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[Union[pulumi.Asset, pulumi.Archive]]] = None, + source_hash: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + website_redirect: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + if cache_control is None and 'cacheControl' in kwargs: + cache_control = kwargs['cacheControl'] + if checksum_algorithm is None and 'checksumAlgorithm' in kwargs: + checksum_algorithm = kwargs['checksumAlgorithm'] + if content_base64 is None and 'contentBase64' in kwargs: + content_base64 = kwargs['contentBase64'] + if content_disposition is None and 'contentDisposition' in kwargs: + content_disposition = kwargs['contentDisposition'] + if content_encoding is None and 'contentEncoding' in kwargs: + content_encoding = kwargs['contentEncoding'] + if content_language is None and 'contentLanguage' in kwargs: + content_language = kwargs['contentLanguage'] + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if object_lock_legal_hold_status is None and 'objectLockLegalHoldStatus' in kwargs: + object_lock_legal_hold_status = kwargs['objectLockLegalHoldStatus'] + if object_lock_mode is None and 'objectLockMode' in kwargs: + object_lock_mode = kwargs['objectLockMode'] + if object_lock_retain_until_date is None and 'objectLockRetainUntilDate' in kwargs: + object_lock_retain_until_date = kwargs['objectLockRetainUntilDate'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if source_hash is None and 'sourceHash' in kwargs: + source_hash = kwargs['sourceHash'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if website_redirect is None and 'websiteRedirect' in kwargs: + website_redirect = kwargs['websiteRedirect'] + + _setter("bucket", bucket) if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) if cache_control is not None: - pulumi.set(__self__, "cache_control", cache_control) + _setter("cache_control", cache_control) if checksum_algorithm is not None: - pulumi.set(__self__, "checksum_algorithm", checksum_algorithm) + _setter("checksum_algorithm", checksum_algorithm) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_base64 is not None: - pulumi.set(__self__, "content_base64", content_base64) + _setter("content_base64", content_base64) if content_disposition is not None: - pulumi.set(__self__, "content_disposition", content_disposition) + _setter("content_disposition", content_disposition) if content_encoding is not None: - pulumi.set(__self__, "content_encoding", content_encoding) + _setter("content_encoding", content_encoding) if content_language is not None: - pulumi.set(__self__, "content_language", content_language) + _setter("content_language", content_language) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if metadata is not None: - pulumi.set(__self__, "metadata", metadata) + _setter("metadata", metadata) if object_lock_legal_hold_status is not None: - pulumi.set(__self__, "object_lock_legal_hold_status", object_lock_legal_hold_status) + _setter("object_lock_legal_hold_status", object_lock_legal_hold_status) if object_lock_mode is not None: - pulumi.set(__self__, "object_lock_mode", object_lock_mode) + _setter("object_lock_mode", object_lock_mode) if object_lock_retain_until_date is not None: - pulumi.set(__self__, "object_lock_retain_until_date", object_lock_retain_until_date) + _setter("object_lock_retain_until_date", object_lock_retain_until_date) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if source_hash is not None: - pulumi.set(__self__, "source_hash", source_hash) + _setter("source_hash", source_hash) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if website_redirect is not None: - pulumi.set(__self__, "website_redirect", website_redirect) + _setter("website_redirect", website_redirect) @property @pulumi.getter @@ -504,71 +599,188 @@ def __init__(__self__, *, > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`. """ + _BucketObjectv2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl=acl, + bucket=bucket, + bucket_key_enabled=bucket_key_enabled, + cache_control=cache_control, + checksum_algorithm=checksum_algorithm, + checksum_crc32=checksum_crc32, + checksum_crc32c=checksum_crc32c, + checksum_sha1=checksum_sha1, + checksum_sha256=checksum_sha256, + content=content, + content_base64=content_base64, + content_disposition=content_disposition, + content_encoding=content_encoding, + content_language=content_language, + content_type=content_type, + etag=etag, + force_destroy=force_destroy, + key=key, + kms_key_id=kms_key_id, + metadata=metadata, + object_lock_legal_hold_status=object_lock_legal_hold_status, + object_lock_mode=object_lock_mode, + object_lock_retain_until_date=object_lock_retain_until_date, + server_side_encryption=server_side_encryption, + source=source, + source_hash=source_hash, + storage_class=storage_class, + tags=tags, + tags_all=tags_all, + version_id=version_id, + website_redirect=website_redirect, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + bucket_key_enabled: Optional[pulumi.Input[bool]] = None, + cache_control: Optional[pulumi.Input[str]] = None, + checksum_algorithm: Optional[pulumi.Input[str]] = None, + checksum_crc32: Optional[pulumi.Input[str]] = None, + checksum_crc32c: Optional[pulumi.Input[str]] = None, + checksum_sha1: Optional[pulumi.Input[str]] = None, + checksum_sha256: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + content_base64: Optional[pulumi.Input[str]] = None, + content_disposition: Optional[pulumi.Input[str]] = None, + content_encoding: Optional[pulumi.Input[str]] = None, + content_language: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + object_lock_legal_hold_status: Optional[pulumi.Input[str]] = None, + object_lock_mode: Optional[pulumi.Input[str]] = None, + object_lock_retain_until_date: Optional[pulumi.Input[str]] = None, + server_side_encryption: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[Union[pulumi.Asset, pulumi.Archive]]] = None, + source_hash: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_id: Optional[pulumi.Input[str]] = None, + website_redirect: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + if cache_control is None and 'cacheControl' in kwargs: + cache_control = kwargs['cacheControl'] + if checksum_algorithm is None and 'checksumAlgorithm' in kwargs: + checksum_algorithm = kwargs['checksumAlgorithm'] + if checksum_crc32 is None and 'checksumCrc32' in kwargs: + checksum_crc32 = kwargs['checksumCrc32'] + if checksum_crc32c is None and 'checksumCrc32c' in kwargs: + checksum_crc32c = kwargs['checksumCrc32c'] + if checksum_sha1 is None and 'checksumSha1' in kwargs: + checksum_sha1 = kwargs['checksumSha1'] + if checksum_sha256 is None and 'checksumSha256' in kwargs: + checksum_sha256 = kwargs['checksumSha256'] + if content_base64 is None and 'contentBase64' in kwargs: + content_base64 = kwargs['contentBase64'] + if content_disposition is None and 'contentDisposition' in kwargs: + content_disposition = kwargs['contentDisposition'] + if content_encoding is None and 'contentEncoding' in kwargs: + content_encoding = kwargs['contentEncoding'] + if content_language is None and 'contentLanguage' in kwargs: + content_language = kwargs['contentLanguage'] + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if object_lock_legal_hold_status is None and 'objectLockLegalHoldStatus' in kwargs: + object_lock_legal_hold_status = kwargs['objectLockLegalHoldStatus'] + if object_lock_mode is None and 'objectLockMode' in kwargs: + object_lock_mode = kwargs['objectLockMode'] + if object_lock_retain_until_date is None and 'objectLockRetainUntilDate' in kwargs: + object_lock_retain_until_date = kwargs['objectLockRetainUntilDate'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if source_hash is None and 'sourceHash' in kwargs: + source_hash = kwargs['sourceHash'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + if website_redirect is None and 'websiteRedirect' in kwargs: + website_redirect = kwargs['websiteRedirect'] + if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) if cache_control is not None: - pulumi.set(__self__, "cache_control", cache_control) + _setter("cache_control", cache_control) if checksum_algorithm is not None: - pulumi.set(__self__, "checksum_algorithm", checksum_algorithm) + _setter("checksum_algorithm", checksum_algorithm) if checksum_crc32 is not None: - pulumi.set(__self__, "checksum_crc32", checksum_crc32) + _setter("checksum_crc32", checksum_crc32) if checksum_crc32c is not None: - pulumi.set(__self__, "checksum_crc32c", checksum_crc32c) + _setter("checksum_crc32c", checksum_crc32c) if checksum_sha1 is not None: - pulumi.set(__self__, "checksum_sha1", checksum_sha1) + _setter("checksum_sha1", checksum_sha1) if checksum_sha256 is not None: - pulumi.set(__self__, "checksum_sha256", checksum_sha256) + _setter("checksum_sha256", checksum_sha256) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_base64 is not None: - pulumi.set(__self__, "content_base64", content_base64) + _setter("content_base64", content_base64) if content_disposition is not None: - pulumi.set(__self__, "content_disposition", content_disposition) + _setter("content_disposition", content_disposition) if content_encoding is not None: - pulumi.set(__self__, "content_encoding", content_encoding) + _setter("content_encoding", content_encoding) if content_language is not None: - pulumi.set(__self__, "content_language", content_language) + _setter("content_language", content_language) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if metadata is not None: - pulumi.set(__self__, "metadata", metadata) + _setter("metadata", metadata) if object_lock_legal_hold_status is not None: - pulumi.set(__self__, "object_lock_legal_hold_status", object_lock_legal_hold_status) + _setter("object_lock_legal_hold_status", object_lock_legal_hold_status) if object_lock_mode is not None: - pulumi.set(__self__, "object_lock_mode", object_lock_mode) + _setter("object_lock_mode", object_lock_mode) if object_lock_retain_until_date is not None: - pulumi.set(__self__, "object_lock_retain_until_date", object_lock_retain_until_date) + _setter("object_lock_retain_until_date", object_lock_retain_until_date) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if source_hash is not None: - pulumi.set(__self__, "source_hash", source_hash) + _setter("source_hash", source_hash) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) if website_redirect is not None: - pulumi.set(__self__, "website_redirect", website_redirect) + _setter("website_redirect", website_redirect) @property @pulumi.getter @@ -1229,6 +1441,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketObjectv2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_ownership_controls.py b/sdk/python/pulumi_aws/s3/bucket_ownership_controls.py index 0338d3d49dc..733839cc130 100644 --- a/sdk/python/pulumi_aws/s3/bucket_ownership_controls.py +++ b/sdk/python/pulumi_aws/s3/bucket_ownership_controls.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Name of the bucket that you want to associate this access point with. :param pulumi.Input['BucketOwnershipControlsRuleArgs'] rule: Configuration block(s) with Ownership Controls rules. Detailed below. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "rule", rule) + BucketOwnershipControlsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + rule=rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + rule: Optional[pulumi.Input['BucketOwnershipControlsRuleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if rule is None: + raise TypeError("Missing 'rule' argument") + + _setter("bucket", bucket) + _setter("rule", rule) @property @pulumi.getter @@ -61,10 +78,23 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Name of the bucket that you want to associate this access point with. :param pulumi.Input['BucketOwnershipControlsRuleArgs'] rule: Configuration block(s) with Ownership Controls rules. Detailed below. """ + _BucketOwnershipControlsState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + rule=rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + rule: Optional[pulumi.Input['BucketOwnershipControlsRuleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if rule is not None: - pulumi.set(__self__, "rule", rule) + _setter("rule", rule) @property @pulumi.getter @@ -170,6 +200,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketOwnershipControlsArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -189,6 +223,7 @@ def _internal_init(__self__, if bucket is None and not opts.urn: raise TypeError("Missing required property 'bucket'") __props__.__dict__["bucket"] = bucket + rule = _utilities.configure(rule, BucketOwnershipControlsRuleArgs, True) if rule is None and not opts.urn: raise TypeError("Missing required property 'rule'") __props__.__dict__["rule"] = rule diff --git a/sdk/python/pulumi_aws/s3/bucket_policy.py b/sdk/python/pulumi_aws/s3/bucket_policy.py index 69af01caa12..47999877bf4 100644 --- a/sdk/python/pulumi_aws/s3/bucket_policy.py +++ b/sdk/python/pulumi_aws/s3/bucket_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketPolicyArgs', 'BucketPolicy'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Name of the bucket to which to apply the policy. :param pulumi.Input[str] policy: Text of the policy. Although this is a bucket policy rather than an IAM policy, the `iam_get_policy_document` data source may be used, so long as it specifies a principal. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide. Note: Bucket policies are limited to 20 KB in size. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "policy", policy) + BucketPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("bucket", bucket) + _setter("policy", policy) @property @pulumi.getter @@ -59,10 +76,23 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Name of the bucket to which to apply the policy. :param pulumi.Input[str] policy: Text of the policy. Although this is a bucket policy rather than an IAM policy, the `iam_get_policy_document` data source may be used, so long as it specifies a principal. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide. Note: Bucket policies are limited to 20 KB in size. """ + _BucketPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -194,6 +224,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_public_access_block.py b/sdk/python/pulumi_aws/s3/bucket_public_access_block.py index 43e5d87e6b2..63dd0f41ef8 100644 --- a/sdk/python/pulumi_aws/s3/bucket_public_access_block.py +++ b/sdk/python/pulumi_aws/s3/bucket_public_access_block.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketPublicAccessBlockArgs', 'BucketPublicAccessBlock'] @@ -32,15 +32,44 @@ def __init__(__self__, *, :param pulumi.Input[bool] restrict_public_buckets: Whether Amazon S3 should restrict public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the previously stored bucket policy, except that public and cross-account access within the public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: * Only the bucket owner and AWS Services can access this buckets if it has a public policy. """ - pulumi.set(__self__, "bucket", bucket) + BucketPublicAccessBlockArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + block_public_acls=block_public_acls, + block_public_policy=block_public_policy, + ignore_public_acls=ignore_public_acls, + restrict_public_buckets=restrict_public_buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + block_public_acls: Optional[pulumi.Input[bool]] = None, + block_public_policy: Optional[pulumi.Input[bool]] = None, + ignore_public_acls: Optional[pulumi.Input[bool]] = None, + restrict_public_buckets: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if block_public_acls is None and 'blockPublicAcls' in kwargs: + block_public_acls = kwargs['blockPublicAcls'] + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if ignore_public_acls is None and 'ignorePublicAcls' in kwargs: + ignore_public_acls = kwargs['ignorePublicAcls'] + if restrict_public_buckets is None and 'restrictPublicBuckets' in kwargs: + restrict_public_buckets = kwargs['restrictPublicBuckets'] + + _setter("bucket", bucket) if block_public_acls is not None: - pulumi.set(__self__, "block_public_acls", block_public_acls) + _setter("block_public_acls", block_public_acls) if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) if ignore_public_acls is not None: - pulumi.set(__self__, "ignore_public_acls", ignore_public_acls) + _setter("ignore_public_acls", ignore_public_acls) if restrict_public_buckets is not None: - pulumi.set(__self__, "restrict_public_buckets", restrict_public_buckets) + _setter("restrict_public_buckets", restrict_public_buckets) @property @pulumi.getter @@ -129,16 +158,43 @@ def __init__(__self__, *, :param pulumi.Input[bool] restrict_public_buckets: Whether Amazon S3 should restrict public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the previously stored bucket policy, except that public and cross-account access within the public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: * Only the bucket owner and AWS Services can access this buckets if it has a public policy. """ + _BucketPublicAccessBlockState._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_public_acls=block_public_acls, + block_public_policy=block_public_policy, + bucket=bucket, + ignore_public_acls=ignore_public_acls, + restrict_public_buckets=restrict_public_buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_public_acls: Optional[pulumi.Input[bool]] = None, + block_public_policy: Optional[pulumi.Input[bool]] = None, + bucket: Optional[pulumi.Input[str]] = None, + ignore_public_acls: Optional[pulumi.Input[bool]] = None, + restrict_public_buckets: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_public_acls is None and 'blockPublicAcls' in kwargs: + block_public_acls = kwargs['blockPublicAcls'] + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if ignore_public_acls is None and 'ignorePublicAcls' in kwargs: + ignore_public_acls = kwargs['ignorePublicAcls'] + if restrict_public_buckets is None and 'restrictPublicBuckets' in kwargs: + restrict_public_buckets = kwargs['restrictPublicBuckets'] + if block_public_acls is not None: - pulumi.set(__self__, "block_public_acls", block_public_acls) + _setter("block_public_acls", block_public_acls) if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if ignore_public_acls is not None: - pulumi.set(__self__, "ignore_public_acls", ignore_public_acls) + _setter("ignore_public_acls", ignore_public_acls) if restrict_public_buckets is not None: - pulumi.set(__self__, "restrict_public_buckets", restrict_public_buckets) + _setter("restrict_public_buckets", restrict_public_buckets) @property @pulumi.getter(name="blockPublicAcls") @@ -298,6 +354,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketPublicAccessBlockArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_replication_config.py b/sdk/python/pulumi_aws/s3/bucket_replication_config.py index 4b1ab3504ae..b65ea99d7c9 100644 --- a/sdk/python/pulumi_aws/s3/bucket_replication_config.py +++ b/sdk/python/pulumi_aws/s3/bucket_replication_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -28,11 +28,34 @@ def __init__(__self__, *, :param pulumi.Input[str] token: Token to allow replication to be enabled on an Object Lock-enabled bucket. You must contact AWS support for the bucket's "Object Lock token". For more details, see [Using S3 Object Lock with replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-replication). """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "role", role) - pulumi.set(__self__, "rules", rules) + BucketReplicationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + role=role, + rules=rules, + token=token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketReplicationConfigRuleArgs']]]] = None, + token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if role is None: + raise TypeError("Missing 'role' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("bucket", bucket) + _setter("role", role) + _setter("rules", rules) if token is not None: - pulumi.set(__self__, "token", token) + _setter("token", token) @property @pulumi.getter @@ -99,14 +122,31 @@ def __init__(__self__, *, :param pulumi.Input[str] token: Token to allow replication to be enabled on an Object Lock-enabled bucket. You must contact AWS support for the bucket's "Object Lock token". For more details, see [Using S3 Object Lock with replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-replication). """ + _BucketReplicationConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + role=role, + rules=rules, + token=token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketReplicationConfigRuleArgs']]]] = None, + token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if token is not None: - pulumi.set(__self__, "token", token) + _setter("token", token) @property @pulumi.getter @@ -490,6 +530,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketReplicationConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_request_payment_configuration_v2.py b/sdk/python/pulumi_aws/s3/bucket_request_payment_configuration_v2.py index 1dacfdb90d3..b2227ff10af 100644 --- a/sdk/python/pulumi_aws/s3/bucket_request_payment_configuration_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_request_payment_configuration_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketRequestPaymentConfigurationV2Args', 'BucketRequestPaymentConfigurationV2'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] payer: Specifies who pays for the download and request fees. Valid values: `BucketOwner`, `Requester`. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "payer", payer) + BucketRequestPaymentConfigurationV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + payer=payer, + expected_bucket_owner=expected_bucket_owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + payer: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if payer is None: + raise TypeError("Missing 'payer' argument") + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + + _setter("bucket", bucket) + _setter("payer", payer) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) @property @pulumi.getter @@ -77,12 +98,29 @@ def __init__(__self__, *, :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. :param pulumi.Input[str] payer: Specifies who pays for the download and request fees. Valid values: `BucketOwner`, `Requester`. """ + _BucketRequestPaymentConfigurationV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + expected_bucket_owner=expected_bucket_owner, + payer=payer, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + payer: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if payer is not None: - pulumi.set(__self__, "payer", payer) + _setter("payer", payer) @property @pulumi.getter @@ -218,6 +256,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketRequestPaymentConfigurationV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_server_side_encryption_configuration_v2.py b/sdk/python/pulumi_aws/s3/bucket_server_side_encryption_configuration_v2.py index 97f3867b0b4..1eaa82d4481 100644 --- a/sdk/python/pulumi_aws/s3/bucket_server_side_encryption_configuration_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_server_side_encryption_configuration_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketServerSideEncryptionConfigurationV2RuleArgs']]] rules: Set of server-side encryption configuration rules. See below. Currently, only a single rule is supported. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "rules", rules) + BucketServerSideEncryptionConfigurationV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + rules=rules, + expected_bucket_owner=expected_bucket_owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketServerSideEncryptionConfigurationV2RuleArgs']]]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + + _setter("bucket", bucket) + _setter("rules", rules) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) @property @pulumi.getter @@ -79,12 +100,29 @@ def __init__(__self__, *, :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. :param pulumi.Input[Sequence[pulumi.Input['BucketServerSideEncryptionConfigurationV2RuleArgs']]] rules: Set of server-side encryption configuration rules. See below. Currently, only a single rule is supported. """ + _BucketServerSideEncryptionConfigurationV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + expected_bucket_owner=expected_bucket_owner, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketServerSideEncryptionConfigurationV2RuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) @property @pulumi.getter @@ -238,6 +276,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketServerSideEncryptionConfigurationV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/bucket_v2.py b/sdk/python/pulumi_aws/s3/bucket_v2.py index dc49553daf4..7e7991c456a 100644 --- a/sdk/python/pulumi_aws/s3/bucket_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -72,81 +72,146 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketV2WebsiteArgs']]] websites: Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketWebsiteConfigurationV2` instead. """ + BucketV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + acceleration_status=acceleration_status, + acl=acl, + bucket=bucket, + bucket_prefix=bucket_prefix, + cors_rules=cors_rules, + force_destroy=force_destroy, + grants=grants, + lifecycle_rules=lifecycle_rules, + loggings=loggings, + object_lock_configuration=object_lock_configuration, + object_lock_enabled=object_lock_enabled, + policy=policy, + replication_configurations=replication_configurations, + request_payer=request_payer, + server_side_encryption_configurations=server_side_encryption_configurations, + tags=tags, + versionings=versionings, + websites=websites, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acceleration_status: Optional[pulumi.Input[str]] = None, + acl: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2CorsRuleArgs']]]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + grants: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2GrantArgs']]]] = None, + lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2LifecycleRuleArgs']]]] = None, + loggings: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2LoggingArgs']]]] = None, + object_lock_configuration: Optional[pulumi.Input['BucketV2ObjectLockConfigurationArgs']] = None, + object_lock_enabled: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + replication_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationArgs']]]] = None, + request_payer: Optional[pulumi.Input[str]] = None, + server_side_encryption_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ServerSideEncryptionConfigurationArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + versionings: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2VersioningArgs']]]] = None, + websites: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2WebsiteArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acceleration_status is None and 'accelerationStatus' in kwargs: + acceleration_status = kwargs['accelerationStatus'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if cors_rules is None and 'corsRules' in kwargs: + cors_rules = kwargs['corsRules'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if lifecycle_rules is None and 'lifecycleRules' in kwargs: + lifecycle_rules = kwargs['lifecycleRules'] + if object_lock_configuration is None and 'objectLockConfiguration' in kwargs: + object_lock_configuration = kwargs['objectLockConfiguration'] + if object_lock_enabled is None and 'objectLockEnabled' in kwargs: + object_lock_enabled = kwargs['objectLockEnabled'] + if replication_configurations is None and 'replicationConfigurations' in kwargs: + replication_configurations = kwargs['replicationConfigurations'] + if request_payer is None and 'requestPayer' in kwargs: + request_payer = kwargs['requestPayer'] + if server_side_encryption_configurations is None and 'serverSideEncryptionConfigurations' in kwargs: + server_side_encryption_configurations = kwargs['serverSideEncryptionConfigurations'] + if acceleration_status is not None: warnings.warn("""Use the aws_s3_bucket_accelerate_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""acceleration_status is deprecated: Use the aws_s3_bucket_accelerate_configuration resource instead""") if acceleration_status is not None: - pulumi.set(__self__, "acceleration_status", acceleration_status) + _setter("acceleration_status", acceleration_status) if acl is not None: warnings.warn("""Use the aws_s3_bucket_acl resource instead""", DeprecationWarning) pulumi.log.warn("""acl is deprecated: Use the aws_s3_bucket_acl resource instead""") if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if cors_rules is not None: warnings.warn("""Use the aws_s3_bucket_cors_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""cors_rules is deprecated: Use the aws_s3_bucket_cors_configuration resource instead""") if cors_rules is not None: - pulumi.set(__self__, "cors_rules", cors_rules) + _setter("cors_rules", cors_rules) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if grants is not None: warnings.warn("""Use the aws_s3_bucket_acl resource instead""", DeprecationWarning) pulumi.log.warn("""grants is deprecated: Use the aws_s3_bucket_acl resource instead""") if grants is not None: - pulumi.set(__self__, "grants", grants) + _setter("grants", grants) if lifecycle_rules is not None: warnings.warn("""Use the aws_s3_bucket_lifecycle_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""lifecycle_rules is deprecated: Use the aws_s3_bucket_lifecycle_configuration resource instead""") if lifecycle_rules is not None: - pulumi.set(__self__, "lifecycle_rules", lifecycle_rules) + _setter("lifecycle_rules", lifecycle_rules) if loggings is not None: warnings.warn("""Use the aws_s3_bucket_logging resource instead""", DeprecationWarning) pulumi.log.warn("""loggings is deprecated: Use the aws_s3_bucket_logging resource instead""") if loggings is not None: - pulumi.set(__self__, "loggings", loggings) + _setter("loggings", loggings) if object_lock_configuration is not None: warnings.warn("""Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""object_lock_configuration is deprecated: Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead""") if object_lock_configuration is not None: - pulumi.set(__self__, "object_lock_configuration", object_lock_configuration) + _setter("object_lock_configuration", object_lock_configuration) if object_lock_enabled is not None: - pulumi.set(__self__, "object_lock_enabled", object_lock_enabled) + _setter("object_lock_enabled", object_lock_enabled) if policy is not None: warnings.warn("""Use the aws_s3_bucket_policy resource instead""", DeprecationWarning) pulumi.log.warn("""policy is deprecated: Use the aws_s3_bucket_policy resource instead""") if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if replication_configurations is not None: warnings.warn("""Use the aws_s3_bucket_replication_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""replication_configurations is deprecated: Use the aws_s3_bucket_replication_configuration resource instead""") if replication_configurations is not None: - pulumi.set(__self__, "replication_configurations", replication_configurations) + _setter("replication_configurations", replication_configurations) if request_payer is not None: warnings.warn("""Use the aws_s3_bucket_request_payment_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""request_payer is deprecated: Use the aws_s3_bucket_request_payment_configuration resource instead""") if request_payer is not None: - pulumi.set(__self__, "request_payer", request_payer) + _setter("request_payer", request_payer) if server_side_encryption_configurations is not None: warnings.warn("""Use the aws_s3_bucket_server_side_encryption_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""server_side_encryption_configurations is deprecated: Use the aws_s3_bucket_server_side_encryption_configuration resource instead""") if server_side_encryption_configurations is not None: - pulumi.set(__self__, "server_side_encryption_configurations", server_side_encryption_configurations) + _setter("server_side_encryption_configurations", server_side_encryption_configurations) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if versionings is not None: warnings.warn("""Use the aws_s3_bucket_versioning resource instead""", DeprecationWarning) pulumi.log.warn("""versionings is deprecated: Use the aws_s3_bucket_versioning resource instead""") if versionings is not None: - pulumi.set(__self__, "versionings", versionings) + _setter("versionings", versionings) if websites is not None: warnings.warn("""Use the aws_s3_bucket_website_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""websites is deprecated: Use the aws_s3_bucket_website_configuration resource instead""") if websites is not None: - pulumi.set(__self__, "websites", websites) + _setter("websites", websites) @property @pulumi.getter(name="accelerationStatus") @@ -496,106 +561,199 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['BucketV2WebsiteArgs']]] websites: Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketWebsiteConfigurationV2` instead. """ + _BucketV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + acceleration_status=acceleration_status, + acl=acl, + arn=arn, + bucket=bucket, + bucket_domain_name=bucket_domain_name, + bucket_prefix=bucket_prefix, + bucket_regional_domain_name=bucket_regional_domain_name, + cors_rules=cors_rules, + force_destroy=force_destroy, + grants=grants, + hosted_zone_id=hosted_zone_id, + lifecycle_rules=lifecycle_rules, + loggings=loggings, + object_lock_configuration=object_lock_configuration, + object_lock_enabled=object_lock_enabled, + policy=policy, + region=region, + replication_configurations=replication_configurations, + request_payer=request_payer, + server_side_encryption_configurations=server_side_encryption_configurations, + tags=tags, + tags_all=tags_all, + versionings=versionings, + website_domain=website_domain, + website_endpoint=website_endpoint, + websites=websites, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acceleration_status: Optional[pulumi.Input[str]] = None, + acl: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + bucket_domain_name: Optional[pulumi.Input[str]] = None, + bucket_prefix: Optional[pulumi.Input[str]] = None, + bucket_regional_domain_name: Optional[pulumi.Input[str]] = None, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2CorsRuleArgs']]]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + grants: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2GrantArgs']]]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2LifecycleRuleArgs']]]] = None, + loggings: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2LoggingArgs']]]] = None, + object_lock_configuration: Optional[pulumi.Input['BucketV2ObjectLockConfigurationArgs']] = None, + object_lock_enabled: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + replication_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ReplicationConfigurationArgs']]]] = None, + request_payer: Optional[pulumi.Input[str]] = None, + server_side_encryption_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2ServerSideEncryptionConfigurationArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + versionings: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2VersioningArgs']]]] = None, + website_domain: Optional[pulumi.Input[str]] = None, + website_endpoint: Optional[pulumi.Input[str]] = None, + websites: Optional[pulumi.Input[Sequence[pulumi.Input['BucketV2WebsiteArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if acceleration_status is None and 'accelerationStatus' in kwargs: + acceleration_status = kwargs['accelerationStatus'] + if bucket_domain_name is None and 'bucketDomainName' in kwargs: + bucket_domain_name = kwargs['bucketDomainName'] + if bucket_prefix is None and 'bucketPrefix' in kwargs: + bucket_prefix = kwargs['bucketPrefix'] + if bucket_regional_domain_name is None and 'bucketRegionalDomainName' in kwargs: + bucket_regional_domain_name = kwargs['bucketRegionalDomainName'] + if cors_rules is None and 'corsRules' in kwargs: + cors_rules = kwargs['corsRules'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if lifecycle_rules is None and 'lifecycleRules' in kwargs: + lifecycle_rules = kwargs['lifecycleRules'] + if object_lock_configuration is None and 'objectLockConfiguration' in kwargs: + object_lock_configuration = kwargs['objectLockConfiguration'] + if object_lock_enabled is None and 'objectLockEnabled' in kwargs: + object_lock_enabled = kwargs['objectLockEnabled'] + if replication_configurations is None and 'replicationConfigurations' in kwargs: + replication_configurations = kwargs['replicationConfigurations'] + if request_payer is None and 'requestPayer' in kwargs: + request_payer = kwargs['requestPayer'] + if server_side_encryption_configurations is None and 'serverSideEncryptionConfigurations' in kwargs: + server_side_encryption_configurations = kwargs['serverSideEncryptionConfigurations'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if website_domain is None and 'websiteDomain' in kwargs: + website_domain = kwargs['websiteDomain'] + if website_endpoint is None and 'websiteEndpoint' in kwargs: + website_endpoint = kwargs['websiteEndpoint'] + if acceleration_status is not None: warnings.warn("""Use the aws_s3_bucket_accelerate_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""acceleration_status is deprecated: Use the aws_s3_bucket_accelerate_configuration resource instead""") if acceleration_status is not None: - pulumi.set(__self__, "acceleration_status", acceleration_status) + _setter("acceleration_status", acceleration_status) if acl is not None: warnings.warn("""Use the aws_s3_bucket_acl resource instead""", DeprecationWarning) pulumi.log.warn("""acl is deprecated: Use the aws_s3_bucket_acl resource instead""") if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if bucket_domain_name is not None: - pulumi.set(__self__, "bucket_domain_name", bucket_domain_name) + _setter("bucket_domain_name", bucket_domain_name) if bucket_prefix is not None: - pulumi.set(__self__, "bucket_prefix", bucket_prefix) + _setter("bucket_prefix", bucket_prefix) if bucket_regional_domain_name is not None: - pulumi.set(__self__, "bucket_regional_domain_name", bucket_regional_domain_name) + _setter("bucket_regional_domain_name", bucket_regional_domain_name) if cors_rules is not None: warnings.warn("""Use the aws_s3_bucket_cors_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""cors_rules is deprecated: Use the aws_s3_bucket_cors_configuration resource instead""") if cors_rules is not None: - pulumi.set(__self__, "cors_rules", cors_rules) + _setter("cors_rules", cors_rules) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if grants is not None: warnings.warn("""Use the aws_s3_bucket_acl resource instead""", DeprecationWarning) pulumi.log.warn("""grants is deprecated: Use the aws_s3_bucket_acl resource instead""") if grants is not None: - pulumi.set(__self__, "grants", grants) + _setter("grants", grants) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) if lifecycle_rules is not None: warnings.warn("""Use the aws_s3_bucket_lifecycle_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""lifecycle_rules is deprecated: Use the aws_s3_bucket_lifecycle_configuration resource instead""") if lifecycle_rules is not None: - pulumi.set(__self__, "lifecycle_rules", lifecycle_rules) + _setter("lifecycle_rules", lifecycle_rules) if loggings is not None: warnings.warn("""Use the aws_s3_bucket_logging resource instead""", DeprecationWarning) pulumi.log.warn("""loggings is deprecated: Use the aws_s3_bucket_logging resource instead""") if loggings is not None: - pulumi.set(__self__, "loggings", loggings) + _setter("loggings", loggings) if object_lock_configuration is not None: warnings.warn("""Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""object_lock_configuration is deprecated: Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead""") if object_lock_configuration is not None: - pulumi.set(__self__, "object_lock_configuration", object_lock_configuration) + _setter("object_lock_configuration", object_lock_configuration) if object_lock_enabled is not None: - pulumi.set(__self__, "object_lock_enabled", object_lock_enabled) + _setter("object_lock_enabled", object_lock_enabled) if policy is not None: warnings.warn("""Use the aws_s3_bucket_policy resource instead""", DeprecationWarning) pulumi.log.warn("""policy is deprecated: Use the aws_s3_bucket_policy resource instead""") if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if replication_configurations is not None: warnings.warn("""Use the aws_s3_bucket_replication_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""replication_configurations is deprecated: Use the aws_s3_bucket_replication_configuration resource instead""") if replication_configurations is not None: - pulumi.set(__self__, "replication_configurations", replication_configurations) + _setter("replication_configurations", replication_configurations) if request_payer is not None: warnings.warn("""Use the aws_s3_bucket_request_payment_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""request_payer is deprecated: Use the aws_s3_bucket_request_payment_configuration resource instead""") if request_payer is not None: - pulumi.set(__self__, "request_payer", request_payer) + _setter("request_payer", request_payer) if server_side_encryption_configurations is not None: warnings.warn("""Use the aws_s3_bucket_server_side_encryption_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""server_side_encryption_configurations is deprecated: Use the aws_s3_bucket_server_side_encryption_configuration resource instead""") if server_side_encryption_configurations is not None: - pulumi.set(__self__, "server_side_encryption_configurations", server_side_encryption_configurations) + _setter("server_side_encryption_configurations", server_side_encryption_configurations) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if versionings is not None: warnings.warn("""Use the aws_s3_bucket_versioning resource instead""", DeprecationWarning) pulumi.log.warn("""versionings is deprecated: Use the aws_s3_bucket_versioning resource instead""") if versionings is not None: - pulumi.set(__self__, "versionings", versionings) + _setter("versionings", versionings) if website_domain is not None: warnings.warn("""Use the aws_s3_bucket_website_configuration resource""", DeprecationWarning) pulumi.log.warn("""website_domain is deprecated: Use the aws_s3_bucket_website_configuration resource""") if website_domain is not None: - pulumi.set(__self__, "website_domain", website_domain) + _setter("website_domain", website_domain) if website_endpoint is not None: warnings.warn("""Use the aws_s3_bucket_website_configuration resource""", DeprecationWarning) pulumi.log.warn("""website_endpoint is deprecated: Use the aws_s3_bucket_website_configuration resource""") if website_endpoint is not None: - pulumi.set(__self__, "website_endpoint", website_endpoint) + _setter("website_endpoint", website_endpoint) if websites is not None: warnings.warn("""Use the aws_s3_bucket_website_configuration resource instead""", DeprecationWarning) pulumi.log.warn("""websites is deprecated: Use the aws_s3_bucket_website_configuration resource instead""") if websites is not None: - pulumi.set(__self__, "websites", websites) + _setter("websites", websites) @property @pulumi.getter(name="accelerationStatus") @@ -1197,6 +1355,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1229,62 +1391,24 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = BucketV2Args.__new__(BucketV2Args) - if acceleration_status is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_accelerate_configuration resource instead""", DeprecationWarning) - pulumi.log.warn("""acceleration_status is deprecated: Use the aws_s3_bucket_accelerate_configuration resource instead""") __props__.__dict__["acceleration_status"] = acceleration_status - if acl is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_acl resource instead""", DeprecationWarning) - pulumi.log.warn("""acl is deprecated: Use the aws_s3_bucket_acl resource instead""") __props__.__dict__["acl"] = acl __props__.__dict__["bucket"] = bucket __props__.__dict__["bucket_prefix"] = bucket_prefix - if cors_rules is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_cors_configuration resource instead""", DeprecationWarning) - pulumi.log.warn("""cors_rules is deprecated: Use the aws_s3_bucket_cors_configuration resource instead""") __props__.__dict__["cors_rules"] = cors_rules __props__.__dict__["force_destroy"] = force_destroy - if grants is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_acl resource instead""", DeprecationWarning) - pulumi.log.warn("""grants is deprecated: Use the aws_s3_bucket_acl resource instead""") __props__.__dict__["grants"] = grants - if lifecycle_rules is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_lifecycle_configuration resource instead""", DeprecationWarning) - pulumi.log.warn("""lifecycle_rules is deprecated: Use the aws_s3_bucket_lifecycle_configuration resource instead""") __props__.__dict__["lifecycle_rules"] = lifecycle_rules - if loggings is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_logging resource instead""", DeprecationWarning) - pulumi.log.warn("""loggings is deprecated: Use the aws_s3_bucket_logging resource instead""") __props__.__dict__["loggings"] = loggings - if object_lock_configuration is not None and not opts.urn: - warnings.warn("""Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead""", DeprecationWarning) - pulumi.log.warn("""object_lock_configuration is deprecated: Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead""") + object_lock_configuration = _utilities.configure(object_lock_configuration, BucketV2ObjectLockConfigurationArgs, True) __props__.__dict__["object_lock_configuration"] = object_lock_configuration __props__.__dict__["object_lock_enabled"] = object_lock_enabled - if policy is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_policy resource instead""", DeprecationWarning) - pulumi.log.warn("""policy is deprecated: Use the aws_s3_bucket_policy resource instead""") __props__.__dict__["policy"] = policy - if replication_configurations is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_replication_configuration resource instead""", DeprecationWarning) - pulumi.log.warn("""replication_configurations is deprecated: Use the aws_s3_bucket_replication_configuration resource instead""") __props__.__dict__["replication_configurations"] = replication_configurations - if request_payer is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_request_payment_configuration resource instead""", DeprecationWarning) - pulumi.log.warn("""request_payer is deprecated: Use the aws_s3_bucket_request_payment_configuration resource instead""") __props__.__dict__["request_payer"] = request_payer - if server_side_encryption_configurations is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_server_side_encryption_configuration resource instead""", DeprecationWarning) - pulumi.log.warn("""server_side_encryption_configurations is deprecated: Use the aws_s3_bucket_server_side_encryption_configuration resource instead""") __props__.__dict__["server_side_encryption_configurations"] = server_side_encryption_configurations __props__.__dict__["tags"] = tags - if versionings is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_versioning resource instead""", DeprecationWarning) - pulumi.log.warn("""versionings is deprecated: Use the aws_s3_bucket_versioning resource instead""") __props__.__dict__["versionings"] = versionings - if websites is not None and not opts.urn: - warnings.warn("""Use the aws_s3_bucket_website_configuration resource instead""", DeprecationWarning) - pulumi.log.warn("""websites is deprecated: Use the aws_s3_bucket_website_configuration resource instead""") __props__.__dict__["websites"] = websites __props__.__dict__["arn"] = None __props__.__dict__["bucket_domain_name"] = None diff --git a/sdk/python/pulumi_aws/s3/bucket_versioning_v2.py b/sdk/python/pulumi_aws/s3/bucket_versioning_v2.py index 8a7d0b45d01..87a76a54e72 100644 --- a/sdk/python/pulumi_aws/s3/bucket_versioning_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_versioning_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,37 @@ def __init__(__self__, *, :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. :param pulumi.Input[str] mfa: Concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "versioning_configuration", versioning_configuration) + BucketVersioningV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + versioning_configuration=versioning_configuration, + expected_bucket_owner=expected_bucket_owner, + mfa=mfa, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + versioning_configuration: Optional[pulumi.Input['BucketVersioningV2VersioningConfigurationArgs']] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + mfa: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if versioning_configuration is None and 'versioningConfiguration' in kwargs: + versioning_configuration = kwargs['versioningConfiguration'] + if versioning_configuration is None: + raise TypeError("Missing 'versioning_configuration' argument") + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + + _setter("bucket", bucket) + _setter("versioning_configuration", versioning_configuration) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if mfa is not None: - pulumi.set(__self__, "mfa", mfa) + _setter("mfa", mfa) @property @pulumi.getter @@ -97,14 +122,35 @@ def __init__(__self__, *, :param pulumi.Input[str] mfa: Concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. :param pulumi.Input['BucketVersioningV2VersioningConfigurationArgs'] versioning_configuration: Configuration block for the versioning parameters. See below. """ + _BucketVersioningV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + expected_bucket_owner=expected_bucket_owner, + mfa=mfa, + versioning_configuration=versioning_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + mfa: Optional[pulumi.Input[str]] = None, + versioning_configuration: Optional[pulumi.Input['BucketVersioningV2VersioningConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if versioning_configuration is None and 'versioningConfiguration' in kwargs: + versioning_configuration = kwargs['versioningConfiguration'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if mfa is not None: - pulumi.set(__self__, "mfa", mfa) + _setter("mfa", mfa) if versioning_configuration is not None: - pulumi.set(__self__, "versioning_configuration", versioning_configuration) + _setter("versioning_configuration", versioning_configuration) @property @pulumi.getter @@ -354,6 +400,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketVersioningV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -377,6 +427,7 @@ def _internal_init(__self__, __props__.__dict__["bucket"] = bucket __props__.__dict__["expected_bucket_owner"] = expected_bucket_owner __props__.__dict__["mfa"] = mfa + versioning_configuration = _utilities.configure(versioning_configuration, BucketVersioningV2VersioningConfigurationArgs, True) if versioning_configuration is None and not opts.urn: raise TypeError("Missing required property 'versioning_configuration'") __props__.__dict__["versioning_configuration"] = versioning_configuration diff --git a/sdk/python/pulumi_aws/s3/bucket_website_configuration_v2.py b/sdk/python/pulumi_aws/s3/bucket_website_configuration_v2.py index c5b798cb4c2..d1b2bd81a2c 100644 --- a/sdk/python/pulumi_aws/s3/bucket_website_configuration_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_website_configuration_v2.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -34,19 +34,56 @@ def __init__(__self__, *, describing redirect behavior and when redirects are applied. Use this parameter when your routing rules contain empty String values (`""`) as seen in the example above. :param pulumi.Input[Sequence[pulumi.Input['BucketWebsiteConfigurationV2RoutingRuleArgs']]] routing_rules: List of rules that define when a redirect is applied and the redirect behavior. See below. """ - pulumi.set(__self__, "bucket", bucket) + BucketWebsiteConfigurationV2Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + error_document=error_document, + expected_bucket_owner=expected_bucket_owner, + index_document=index_document, + redirect_all_requests_to=redirect_all_requests_to, + routing_rule_details=routing_rule_details, + routing_rules=routing_rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + error_document: Optional[pulumi.Input['BucketWebsiteConfigurationV2ErrorDocumentArgs']] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + index_document: Optional[pulumi.Input['BucketWebsiteConfigurationV2IndexDocumentArgs']] = None, + redirect_all_requests_to: Optional[pulumi.Input['BucketWebsiteConfigurationV2RedirectAllRequestsToArgs']] = None, + routing_rule_details: Optional[pulumi.Input[str]] = None, + routing_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketWebsiteConfigurationV2RoutingRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if error_document is None and 'errorDocument' in kwargs: + error_document = kwargs['errorDocument'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if index_document is None and 'indexDocument' in kwargs: + index_document = kwargs['indexDocument'] + if redirect_all_requests_to is None and 'redirectAllRequestsTo' in kwargs: + redirect_all_requests_to = kwargs['redirectAllRequestsTo'] + if routing_rule_details is None and 'routingRuleDetails' in kwargs: + routing_rule_details = kwargs['routingRuleDetails'] + if routing_rules is None and 'routingRules' in kwargs: + routing_rules = kwargs['routingRules'] + + _setter("bucket", bucket) if error_document is not None: - pulumi.set(__self__, "error_document", error_document) + _setter("error_document", error_document) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if index_document is not None: - pulumi.set(__self__, "index_document", index_document) + _setter("index_document", index_document) if redirect_all_requests_to is not None: - pulumi.set(__self__, "redirect_all_requests_to", redirect_all_requests_to) + _setter("redirect_all_requests_to", redirect_all_requests_to) if routing_rule_details is not None: - pulumi.set(__self__, "routing_rule_details", routing_rule_details) + _setter("routing_rule_details", routing_rule_details) if routing_rules is not None: - pulumi.set(__self__, "routing_rules", routing_rules) + _setter("routing_rules", routing_rules) @property @pulumi.getter @@ -159,24 +196,67 @@ def __init__(__self__, *, :param pulumi.Input[str] website_domain: Domain of the website endpoint. This is used to create Route 53 alias records. :param pulumi.Input[str] website_endpoint: Website endpoint. """ + _BucketWebsiteConfigurationV2State._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + error_document=error_document, + expected_bucket_owner=expected_bucket_owner, + index_document=index_document, + redirect_all_requests_to=redirect_all_requests_to, + routing_rule_details=routing_rule_details, + routing_rules=routing_rules, + website_domain=website_domain, + website_endpoint=website_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + error_document: Optional[pulumi.Input['BucketWebsiteConfigurationV2ErrorDocumentArgs']] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + index_document: Optional[pulumi.Input['BucketWebsiteConfigurationV2IndexDocumentArgs']] = None, + redirect_all_requests_to: Optional[pulumi.Input['BucketWebsiteConfigurationV2RedirectAllRequestsToArgs']] = None, + routing_rule_details: Optional[pulumi.Input[str]] = None, + routing_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketWebsiteConfigurationV2RoutingRuleArgs']]]] = None, + website_domain: Optional[pulumi.Input[str]] = None, + website_endpoint: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_document is None and 'errorDocument' in kwargs: + error_document = kwargs['errorDocument'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if index_document is None and 'indexDocument' in kwargs: + index_document = kwargs['indexDocument'] + if redirect_all_requests_to is None and 'redirectAllRequestsTo' in kwargs: + redirect_all_requests_to = kwargs['redirectAllRequestsTo'] + if routing_rule_details is None and 'routingRuleDetails' in kwargs: + routing_rule_details = kwargs['routingRuleDetails'] + if routing_rules is None and 'routingRules' in kwargs: + routing_rules = kwargs['routingRules'] + if website_domain is None and 'websiteDomain' in kwargs: + website_domain = kwargs['websiteDomain'] + if website_endpoint is None and 'websiteEndpoint' in kwargs: + website_endpoint = kwargs['websiteEndpoint'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if error_document is not None: - pulumi.set(__self__, "error_document", error_document) + _setter("error_document", error_document) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if index_document is not None: - pulumi.set(__self__, "index_document", index_document) + _setter("index_document", index_document) if redirect_all_requests_to is not None: - pulumi.set(__self__, "redirect_all_requests_to", redirect_all_requests_to) + _setter("redirect_all_requests_to", redirect_all_requests_to) if routing_rule_details is not None: - pulumi.set(__self__, "routing_rule_details", routing_rule_details) + _setter("routing_rule_details", routing_rule_details) if routing_rules is not None: - pulumi.set(__self__, "routing_rules", routing_rules) + _setter("routing_rules", routing_rules) if website_domain is not None: - pulumi.set(__self__, "website_domain", website_domain) + _setter("website_domain", website_domain) if website_endpoint is not None: - pulumi.set(__self__, "website_endpoint", website_endpoint) + _setter("website_endpoint", website_endpoint) @property @pulumi.getter @@ -466,6 +546,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketWebsiteConfigurationV2Args._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -490,9 +574,12 @@ def _internal_init(__self__, if bucket is None and not opts.urn: raise TypeError("Missing required property 'bucket'") __props__.__dict__["bucket"] = bucket + error_document = _utilities.configure(error_document, BucketWebsiteConfigurationV2ErrorDocumentArgs, True) __props__.__dict__["error_document"] = error_document __props__.__dict__["expected_bucket_owner"] = expected_bucket_owner + index_document = _utilities.configure(index_document, BucketWebsiteConfigurationV2IndexDocumentArgs, True) __props__.__dict__["index_document"] = index_document + redirect_all_requests_to = _utilities.configure(redirect_all_requests_to, BucketWebsiteConfigurationV2RedirectAllRequestsToArgs, True) __props__.__dict__["redirect_all_requests_to"] = redirect_all_requests_to __props__.__dict__["routing_rule_details"] = routing_rule_details __props__.__dict__["routing_rules"] = routing_rules diff --git a/sdk/python/pulumi_aws/s3/get_account_public_access_block.py b/sdk/python/pulumi_aws/s3/get_account_public_access_block.py index 0e66fa46531..01e564e4c52 100644 --- a/sdk/python/pulumi_aws/s3/get_account_public_access_block.py +++ b/sdk/python/pulumi_aws/s3/get_account_public_access_block.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/s3/get_bucket.py b/sdk/python/pulumi_aws/s3/get_bucket.py index c86dac430c1..1a8dd3eda0a 100644 --- a/sdk/python/pulumi_aws/s3/get_bucket.py +++ b/sdk/python/pulumi_aws/s3/get_bucket.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/s3/get_bucket_object.py b/sdk/python/pulumi_aws/s3/get_bucket_object.py index 0e6af73d854..4e755700620 100644 --- a/sdk/python/pulumi_aws/s3/get_bucket_object.py +++ b/sdk/python/pulumi_aws/s3/get_bucket_object.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/s3/get_bucket_objects.py b/sdk/python/pulumi_aws/s3/get_bucket_objects.py index 9b9d71cac95..2458681027f 100644 --- a/sdk/python/pulumi_aws/s3/get_bucket_objects.py +++ b/sdk/python/pulumi_aws/s3/get_bucket_objects.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/s3/get_bucket_policy.py b/sdk/python/pulumi_aws/s3/get_bucket_policy.py index db0290fc8dc..d5dc3d3b457 100644 --- a/sdk/python/pulumi_aws/s3/get_bucket_policy.py +++ b/sdk/python/pulumi_aws/s3/get_bucket_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/s3/get_canonical_user_id.py b/sdk/python/pulumi_aws/s3/get_canonical_user_id.py index a301850732f..d74845e9a7d 100644 --- a/sdk/python/pulumi_aws/s3/get_canonical_user_id.py +++ b/sdk/python/pulumi_aws/s3/get_canonical_user_id.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetCanonicalUserIdResult', 'AwaitableGetCanonicalUserIdResult', 'get_canonical_user_id', + 'get_canonical_user_id_output', ] @pulumi.output_type @@ -79,3 +80,24 @@ def get_canonical_user_id(opts: Optional[pulumi.InvokeOptions] = None) -> Awaita return AwaitableGetCanonicalUserIdResult( display_name=pulumi.get(__ret__, 'display_name'), id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_canonical_user_id) +def get_canonical_user_id_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetCanonicalUserIdResult]: + """ + The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) + for the effective account in which this provider is working. + + > **NOTE:** To use this data source, you must have the `s3:ListAllMyBuckets` permission. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + current = aws.s3.get_canonical_user_id() + pulumi.export("canonicalUserId", current.id) + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/s3/get_object.py b/sdk/python/pulumi_aws/s3/get_object.py index 63c3f14e184..f879578e22a 100644 --- a/sdk/python/pulumi_aws/s3/get_object.py +++ b/sdk/python/pulumi_aws/s3/get_object.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/s3/get_objects.py b/sdk/python/pulumi_aws/s3/get_objects.py index 6e077483628..a85c00d742c 100644 --- a/sdk/python/pulumi_aws/s3/get_objects.py +++ b/sdk/python/pulumi_aws/s3/get_objects.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/s3/inventory.py b/sdk/python/pulumi_aws/s3/inventory.py index 3f3cec9d1ef..6163e99783d 100644 --- a/sdk/python/pulumi_aws/s3/inventory.py +++ b/sdk/python/pulumi_aws/s3/inventory.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,18 +35,55 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Unique identifier of the inventory configuration for the bucket. :param pulumi.Input[Sequence[pulumi.Input[str]]] optional_fields: List of optional fields that are included in the inventory results. Please refer to the S3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#AmazonS3-Type-InventoryConfiguration-OptionalFields) for more details. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "included_object_versions", included_object_versions) - pulumi.set(__self__, "schedule", schedule) + InventoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + destination=destination, + included_object_versions=included_object_versions, + schedule=schedule, + enabled=enabled, + filter=filter, + name=name, + optional_fields=optional_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input['InventoryDestinationArgs']] = None, + included_object_versions: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input['InventoryScheduleArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + filter: Optional[pulumi.Input['InventoryFilterArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + optional_fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if destination is None: + raise TypeError("Missing 'destination' argument") + if included_object_versions is None and 'includedObjectVersions' in kwargs: + included_object_versions = kwargs['includedObjectVersions'] + if included_object_versions is None: + raise TypeError("Missing 'included_object_versions' argument") + if schedule is None: + raise TypeError("Missing 'schedule' argument") + if optional_fields is None and 'optionalFields' in kwargs: + optional_fields = kwargs['optionalFields'] + + _setter("bucket", bucket) + _setter("destination", destination) + _setter("included_object_versions", included_object_versions) + _setter("schedule", schedule) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if optional_fields is not None: - pulumi.set(__self__, "optional_fields", optional_fields) + _setter("optional_fields", optional_fields) @property @pulumi.getter @@ -167,22 +204,51 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] optional_fields: List of optional fields that are included in the inventory results. Please refer to the S3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#AmazonS3-Type-InventoryConfiguration-OptionalFields) for more details. :param pulumi.Input['InventoryScheduleArgs'] schedule: Specifies the schedule for generating inventory results (documented below). """ + _InventoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + destination=destination, + enabled=enabled, + filter=filter, + included_object_versions=included_object_versions, + name=name, + optional_fields=optional_fields, + schedule=schedule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input['InventoryDestinationArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + filter: Optional[pulumi.Input['InventoryFilterArgs']] = None, + included_object_versions: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + optional_fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + schedule: Optional[pulumi.Input['InventoryScheduleArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_object_versions is None and 'includedObjectVersions' in kwargs: + included_object_versions = kwargs['includedObjectVersions'] + if optional_fields is None and 'optionalFields' in kwargs: + optional_fields = kwargs['optionalFields'] + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if included_object_versions is not None: - pulumi.set(__self__, "included_object_versions", included_object_versions) + _setter("included_object_versions", included_object_versions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if optional_fields is not None: - pulumi.set(__self__, "optional_fields", optional_fields) + _setter("optional_fields", optional_fields) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) @property @pulumi.getter @@ -440,6 +506,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InventoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -465,16 +535,19 @@ def _internal_init(__self__, if bucket is None and not opts.urn: raise TypeError("Missing required property 'bucket'") __props__.__dict__["bucket"] = bucket + destination = _utilities.configure(destination, InventoryDestinationArgs, True) if destination is None and not opts.urn: raise TypeError("Missing required property 'destination'") __props__.__dict__["destination"] = destination __props__.__dict__["enabled"] = enabled + filter = _utilities.configure(filter, InventoryFilterArgs, True) __props__.__dict__["filter"] = filter if included_object_versions is None and not opts.urn: raise TypeError("Missing required property 'included_object_versions'") __props__.__dict__["included_object_versions"] = included_object_versions __props__.__dict__["name"] = name __props__.__dict__["optional_fields"] = optional_fields + schedule = _utilities.configure(schedule, InventoryScheduleArgs, True) if schedule is None and not opts.urn: raise TypeError("Missing required property 'schedule'") __props__.__dict__["schedule"] = schedule diff --git a/sdk/python/pulumi_aws/s3/object_copy.py b/sdk/python/pulumi_aws/s3/object_copy.py index e3e4e856f79..c794c94d228 100644 --- a/sdk/python/pulumi_aws/s3/object_copy.py +++ b/sdk/python/pulumi_aws/s3/object_copy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -98,81 +98,236 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the object. 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] website_redirect: Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "source", source) + ObjectCopyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + source=source, + acl=acl, + bucket_key_enabled=bucket_key_enabled, + cache_control=cache_control, + checksum_algorithm=checksum_algorithm, + content_disposition=content_disposition, + content_encoding=content_encoding, + content_language=content_language, + content_type=content_type, + copy_if_match=copy_if_match, + copy_if_modified_since=copy_if_modified_since, + copy_if_none_match=copy_if_none_match, + copy_if_unmodified_since=copy_if_unmodified_since, + customer_algorithm=customer_algorithm, + customer_key=customer_key, + customer_key_md5=customer_key_md5, + expected_bucket_owner=expected_bucket_owner, + expected_source_bucket_owner=expected_source_bucket_owner, + expires=expires, + force_destroy=force_destroy, + grants=grants, + kms_encryption_context=kms_encryption_context, + kms_key_id=kms_key_id, + metadata=metadata, + metadata_directive=metadata_directive, + object_lock_legal_hold_status=object_lock_legal_hold_status, + object_lock_mode=object_lock_mode, + object_lock_retain_until_date=object_lock_retain_until_date, + request_payer=request_payer, + server_side_encryption=server_side_encryption, + source_customer_algorithm=source_customer_algorithm, + source_customer_key=source_customer_key, + source_customer_key_md5=source_customer_key_md5, + storage_class=storage_class, + tagging_directive=tagging_directive, + tags=tags, + website_redirect=website_redirect, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + acl: Optional[pulumi.Input[str]] = None, + bucket_key_enabled: Optional[pulumi.Input[bool]] = None, + cache_control: Optional[pulumi.Input[str]] = None, + checksum_algorithm: Optional[pulumi.Input[str]] = None, + content_disposition: Optional[pulumi.Input[str]] = None, + content_encoding: Optional[pulumi.Input[str]] = None, + content_language: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + copy_if_match: Optional[pulumi.Input[str]] = None, + copy_if_modified_since: Optional[pulumi.Input[str]] = None, + copy_if_none_match: Optional[pulumi.Input[str]] = None, + copy_if_unmodified_since: Optional[pulumi.Input[str]] = None, + customer_algorithm: Optional[pulumi.Input[str]] = None, + customer_key: Optional[pulumi.Input[str]] = None, + customer_key_md5: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + expected_source_bucket_owner: Optional[pulumi.Input[str]] = None, + expires: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + grants: Optional[pulumi.Input[Sequence[pulumi.Input['ObjectCopyGrantArgs']]]] = None, + kms_encryption_context: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + metadata_directive: Optional[pulumi.Input[str]] = None, + object_lock_legal_hold_status: Optional[pulumi.Input[str]] = None, + object_lock_mode: Optional[pulumi.Input[str]] = None, + object_lock_retain_until_date: Optional[pulumi.Input[str]] = None, + request_payer: Optional[pulumi.Input[str]] = None, + server_side_encryption: Optional[pulumi.Input[str]] = None, + source_customer_algorithm: Optional[pulumi.Input[str]] = None, + source_customer_key: Optional[pulumi.Input[str]] = None, + source_customer_key_md5: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + tagging_directive: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + website_redirect: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + if cache_control is None and 'cacheControl' in kwargs: + cache_control = kwargs['cacheControl'] + if checksum_algorithm is None and 'checksumAlgorithm' in kwargs: + checksum_algorithm = kwargs['checksumAlgorithm'] + if content_disposition is None and 'contentDisposition' in kwargs: + content_disposition = kwargs['contentDisposition'] + if content_encoding is None and 'contentEncoding' in kwargs: + content_encoding = kwargs['contentEncoding'] + if content_language is None and 'contentLanguage' in kwargs: + content_language = kwargs['contentLanguage'] + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if copy_if_match is None and 'copyIfMatch' in kwargs: + copy_if_match = kwargs['copyIfMatch'] + if copy_if_modified_since is None and 'copyIfModifiedSince' in kwargs: + copy_if_modified_since = kwargs['copyIfModifiedSince'] + if copy_if_none_match is None and 'copyIfNoneMatch' in kwargs: + copy_if_none_match = kwargs['copyIfNoneMatch'] + if copy_if_unmodified_since is None and 'copyIfUnmodifiedSince' in kwargs: + copy_if_unmodified_since = kwargs['copyIfUnmodifiedSince'] + if customer_algorithm is None and 'customerAlgorithm' in kwargs: + customer_algorithm = kwargs['customerAlgorithm'] + if customer_key is None and 'customerKey' in kwargs: + customer_key = kwargs['customerKey'] + if customer_key_md5 is None and 'customerKeyMd5' in kwargs: + customer_key_md5 = kwargs['customerKeyMd5'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if expected_source_bucket_owner is None and 'expectedSourceBucketOwner' in kwargs: + expected_source_bucket_owner = kwargs['expectedSourceBucketOwner'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if kms_encryption_context is None and 'kmsEncryptionContext' in kwargs: + kms_encryption_context = kwargs['kmsEncryptionContext'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if metadata_directive is None and 'metadataDirective' in kwargs: + metadata_directive = kwargs['metadataDirective'] + if object_lock_legal_hold_status is None and 'objectLockLegalHoldStatus' in kwargs: + object_lock_legal_hold_status = kwargs['objectLockLegalHoldStatus'] + if object_lock_mode is None and 'objectLockMode' in kwargs: + object_lock_mode = kwargs['objectLockMode'] + if object_lock_retain_until_date is None and 'objectLockRetainUntilDate' in kwargs: + object_lock_retain_until_date = kwargs['objectLockRetainUntilDate'] + if request_payer is None and 'requestPayer' in kwargs: + request_payer = kwargs['requestPayer'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if source_customer_algorithm is None and 'sourceCustomerAlgorithm' in kwargs: + source_customer_algorithm = kwargs['sourceCustomerAlgorithm'] + if source_customer_key is None and 'sourceCustomerKey' in kwargs: + source_customer_key = kwargs['sourceCustomerKey'] + if source_customer_key_md5 is None and 'sourceCustomerKeyMd5' in kwargs: + source_customer_key_md5 = kwargs['sourceCustomerKeyMd5'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if tagging_directive is None and 'taggingDirective' in kwargs: + tagging_directive = kwargs['taggingDirective'] + if website_redirect is None and 'websiteRedirect' in kwargs: + website_redirect = kwargs['websiteRedirect'] + + _setter("bucket", bucket) + _setter("key", key) + _setter("source", source) if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) if cache_control is not None: - pulumi.set(__self__, "cache_control", cache_control) + _setter("cache_control", cache_control) if checksum_algorithm is not None: - pulumi.set(__self__, "checksum_algorithm", checksum_algorithm) + _setter("checksum_algorithm", checksum_algorithm) if content_disposition is not None: - pulumi.set(__self__, "content_disposition", content_disposition) + _setter("content_disposition", content_disposition) if content_encoding is not None: - pulumi.set(__self__, "content_encoding", content_encoding) + _setter("content_encoding", content_encoding) if content_language is not None: - pulumi.set(__self__, "content_language", content_language) + _setter("content_language", content_language) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if copy_if_match is not None: - pulumi.set(__self__, "copy_if_match", copy_if_match) + _setter("copy_if_match", copy_if_match) if copy_if_modified_since is not None: - pulumi.set(__self__, "copy_if_modified_since", copy_if_modified_since) + _setter("copy_if_modified_since", copy_if_modified_since) if copy_if_none_match is not None: - pulumi.set(__self__, "copy_if_none_match", copy_if_none_match) + _setter("copy_if_none_match", copy_if_none_match) if copy_if_unmodified_since is not None: - pulumi.set(__self__, "copy_if_unmodified_since", copy_if_unmodified_since) + _setter("copy_if_unmodified_since", copy_if_unmodified_since) if customer_algorithm is not None: - pulumi.set(__self__, "customer_algorithm", customer_algorithm) + _setter("customer_algorithm", customer_algorithm) if customer_key is not None: - pulumi.set(__self__, "customer_key", customer_key) + _setter("customer_key", customer_key) if customer_key_md5 is not None: - pulumi.set(__self__, "customer_key_md5", customer_key_md5) + _setter("customer_key_md5", customer_key_md5) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if expected_source_bucket_owner is not None: - pulumi.set(__self__, "expected_source_bucket_owner", expected_source_bucket_owner) + _setter("expected_source_bucket_owner", expected_source_bucket_owner) if expires is not None: - pulumi.set(__self__, "expires", expires) + _setter("expires", expires) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if grants is not None: - pulumi.set(__self__, "grants", grants) + _setter("grants", grants) if kms_encryption_context is not None: - pulumi.set(__self__, "kms_encryption_context", kms_encryption_context) + _setter("kms_encryption_context", kms_encryption_context) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if metadata is not None: - pulumi.set(__self__, "metadata", metadata) + _setter("metadata", metadata) if metadata_directive is not None: - pulumi.set(__self__, "metadata_directive", metadata_directive) + _setter("metadata_directive", metadata_directive) if object_lock_legal_hold_status is not None: - pulumi.set(__self__, "object_lock_legal_hold_status", object_lock_legal_hold_status) + _setter("object_lock_legal_hold_status", object_lock_legal_hold_status) if object_lock_mode is not None: - pulumi.set(__self__, "object_lock_mode", object_lock_mode) + _setter("object_lock_mode", object_lock_mode) if object_lock_retain_until_date is not None: - pulumi.set(__self__, "object_lock_retain_until_date", object_lock_retain_until_date) + _setter("object_lock_retain_until_date", object_lock_retain_until_date) if request_payer is not None: - pulumi.set(__self__, "request_payer", request_payer) + _setter("request_payer", request_payer) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if source_customer_algorithm is not None: - pulumi.set(__self__, "source_customer_algorithm", source_customer_algorithm) + _setter("source_customer_algorithm", source_customer_algorithm) if source_customer_key is not None: - pulumi.set(__self__, "source_customer_key", source_customer_key) + _setter("source_customer_key", source_customer_key) if source_customer_key_md5 is not None: - pulumi.set(__self__, "source_customer_key_md5", source_customer_key_md5) + _setter("source_customer_key_md5", source_customer_key_md5) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) if tagging_directive is not None: - pulumi.set(__self__, "tagging_directive", tagging_directive) + _setter("tagging_directive", tagging_directive) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if website_redirect is not None: - pulumi.set(__self__, "website_redirect", website_redirect) + _setter("website_redirect", website_redirect) @property @pulumi.getter @@ -749,109 +904,298 @@ def __init__(__self__, *, :param pulumi.Input[str] version_id: Version ID of the newly created copy. :param pulumi.Input[str] website_redirect: Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). """ + _ObjectCopyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + acl=acl, + bucket=bucket, + bucket_key_enabled=bucket_key_enabled, + cache_control=cache_control, + checksum_algorithm=checksum_algorithm, + checksum_crc32=checksum_crc32, + checksum_crc32c=checksum_crc32c, + checksum_sha1=checksum_sha1, + checksum_sha256=checksum_sha256, + content_disposition=content_disposition, + content_encoding=content_encoding, + content_language=content_language, + content_type=content_type, + copy_if_match=copy_if_match, + copy_if_modified_since=copy_if_modified_since, + copy_if_none_match=copy_if_none_match, + copy_if_unmodified_since=copy_if_unmodified_since, + customer_algorithm=customer_algorithm, + customer_key=customer_key, + customer_key_md5=customer_key_md5, + etag=etag, + expected_bucket_owner=expected_bucket_owner, + expected_source_bucket_owner=expected_source_bucket_owner, + expiration=expiration, + expires=expires, + force_destroy=force_destroy, + grants=grants, + key=key, + kms_encryption_context=kms_encryption_context, + kms_key_id=kms_key_id, + last_modified=last_modified, + metadata=metadata, + metadata_directive=metadata_directive, + object_lock_legal_hold_status=object_lock_legal_hold_status, + object_lock_mode=object_lock_mode, + object_lock_retain_until_date=object_lock_retain_until_date, + request_charged=request_charged, + request_payer=request_payer, + server_side_encryption=server_side_encryption, + source=source, + source_customer_algorithm=source_customer_algorithm, + source_customer_key=source_customer_key, + source_customer_key_md5=source_customer_key_md5, + source_version_id=source_version_id, + storage_class=storage_class, + tagging_directive=tagging_directive, + tags=tags, + tags_all=tags_all, + version_id=version_id, + website_redirect=website_redirect, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + acl: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + bucket_key_enabled: Optional[pulumi.Input[bool]] = None, + cache_control: Optional[pulumi.Input[str]] = None, + checksum_algorithm: Optional[pulumi.Input[str]] = None, + checksum_crc32: Optional[pulumi.Input[str]] = None, + checksum_crc32c: Optional[pulumi.Input[str]] = None, + checksum_sha1: Optional[pulumi.Input[str]] = None, + checksum_sha256: Optional[pulumi.Input[str]] = None, + content_disposition: Optional[pulumi.Input[str]] = None, + content_encoding: Optional[pulumi.Input[str]] = None, + content_language: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + copy_if_match: Optional[pulumi.Input[str]] = None, + copy_if_modified_since: Optional[pulumi.Input[str]] = None, + copy_if_none_match: Optional[pulumi.Input[str]] = None, + copy_if_unmodified_since: Optional[pulumi.Input[str]] = None, + customer_algorithm: Optional[pulumi.Input[str]] = None, + customer_key: Optional[pulumi.Input[str]] = None, + customer_key_md5: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + expected_source_bucket_owner: Optional[pulumi.Input[str]] = None, + expiration: Optional[pulumi.Input[str]] = None, + expires: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + grants: Optional[pulumi.Input[Sequence[pulumi.Input['ObjectCopyGrantArgs']]]] = None, + key: Optional[pulumi.Input[str]] = None, + kms_encryption_context: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + last_modified: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + metadata_directive: Optional[pulumi.Input[str]] = None, + object_lock_legal_hold_status: Optional[pulumi.Input[str]] = None, + object_lock_mode: Optional[pulumi.Input[str]] = None, + object_lock_retain_until_date: Optional[pulumi.Input[str]] = None, + request_charged: Optional[pulumi.Input[bool]] = None, + request_payer: Optional[pulumi.Input[str]] = None, + server_side_encryption: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + source_customer_algorithm: Optional[pulumi.Input[str]] = None, + source_customer_key: Optional[pulumi.Input[str]] = None, + source_customer_key_md5: Optional[pulumi.Input[str]] = None, + source_version_id: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + tagging_directive: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version_id: Optional[pulumi.Input[str]] = None, + website_redirect: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + if cache_control is None and 'cacheControl' in kwargs: + cache_control = kwargs['cacheControl'] + if checksum_algorithm is None and 'checksumAlgorithm' in kwargs: + checksum_algorithm = kwargs['checksumAlgorithm'] + if checksum_crc32 is None and 'checksumCrc32' in kwargs: + checksum_crc32 = kwargs['checksumCrc32'] + if checksum_crc32c is None and 'checksumCrc32c' in kwargs: + checksum_crc32c = kwargs['checksumCrc32c'] + if checksum_sha1 is None and 'checksumSha1' in kwargs: + checksum_sha1 = kwargs['checksumSha1'] + if checksum_sha256 is None and 'checksumSha256' in kwargs: + checksum_sha256 = kwargs['checksumSha256'] + if content_disposition is None and 'contentDisposition' in kwargs: + content_disposition = kwargs['contentDisposition'] + if content_encoding is None and 'contentEncoding' in kwargs: + content_encoding = kwargs['contentEncoding'] + if content_language is None and 'contentLanguage' in kwargs: + content_language = kwargs['contentLanguage'] + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if copy_if_match is None and 'copyIfMatch' in kwargs: + copy_if_match = kwargs['copyIfMatch'] + if copy_if_modified_since is None and 'copyIfModifiedSince' in kwargs: + copy_if_modified_since = kwargs['copyIfModifiedSince'] + if copy_if_none_match is None and 'copyIfNoneMatch' in kwargs: + copy_if_none_match = kwargs['copyIfNoneMatch'] + if copy_if_unmodified_since is None and 'copyIfUnmodifiedSince' in kwargs: + copy_if_unmodified_since = kwargs['copyIfUnmodifiedSince'] + if customer_algorithm is None and 'customerAlgorithm' in kwargs: + customer_algorithm = kwargs['customerAlgorithm'] + if customer_key is None and 'customerKey' in kwargs: + customer_key = kwargs['customerKey'] + if customer_key_md5 is None and 'customerKeyMd5' in kwargs: + customer_key_md5 = kwargs['customerKeyMd5'] + if expected_bucket_owner is None and 'expectedBucketOwner' in kwargs: + expected_bucket_owner = kwargs['expectedBucketOwner'] + if expected_source_bucket_owner is None and 'expectedSourceBucketOwner' in kwargs: + expected_source_bucket_owner = kwargs['expectedSourceBucketOwner'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if kms_encryption_context is None and 'kmsEncryptionContext' in kwargs: + kms_encryption_context = kwargs['kmsEncryptionContext'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if last_modified is None and 'lastModified' in kwargs: + last_modified = kwargs['lastModified'] + if metadata_directive is None and 'metadataDirective' in kwargs: + metadata_directive = kwargs['metadataDirective'] + if object_lock_legal_hold_status is None and 'objectLockLegalHoldStatus' in kwargs: + object_lock_legal_hold_status = kwargs['objectLockLegalHoldStatus'] + if object_lock_mode is None and 'objectLockMode' in kwargs: + object_lock_mode = kwargs['objectLockMode'] + if object_lock_retain_until_date is None and 'objectLockRetainUntilDate' in kwargs: + object_lock_retain_until_date = kwargs['objectLockRetainUntilDate'] + if request_charged is None and 'requestCharged' in kwargs: + request_charged = kwargs['requestCharged'] + if request_payer is None and 'requestPayer' in kwargs: + request_payer = kwargs['requestPayer'] + if server_side_encryption is None and 'serverSideEncryption' in kwargs: + server_side_encryption = kwargs['serverSideEncryption'] + if source_customer_algorithm is None and 'sourceCustomerAlgorithm' in kwargs: + source_customer_algorithm = kwargs['sourceCustomerAlgorithm'] + if source_customer_key is None and 'sourceCustomerKey' in kwargs: + source_customer_key = kwargs['sourceCustomerKey'] + if source_customer_key_md5 is None and 'sourceCustomerKeyMd5' in kwargs: + source_customer_key_md5 = kwargs['sourceCustomerKeyMd5'] + if source_version_id is None and 'sourceVersionId' in kwargs: + source_version_id = kwargs['sourceVersionId'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if tagging_directive is None and 'taggingDirective' in kwargs: + tagging_directive = kwargs['taggingDirective'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + if website_redirect is None and 'websiteRedirect' in kwargs: + website_redirect = kwargs['websiteRedirect'] + if acl is not None: - pulumi.set(__self__, "acl", acl) + _setter("acl", acl) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) if cache_control is not None: - pulumi.set(__self__, "cache_control", cache_control) + _setter("cache_control", cache_control) if checksum_algorithm is not None: - pulumi.set(__self__, "checksum_algorithm", checksum_algorithm) + _setter("checksum_algorithm", checksum_algorithm) if checksum_crc32 is not None: - pulumi.set(__self__, "checksum_crc32", checksum_crc32) + _setter("checksum_crc32", checksum_crc32) if checksum_crc32c is not None: - pulumi.set(__self__, "checksum_crc32c", checksum_crc32c) + _setter("checksum_crc32c", checksum_crc32c) if checksum_sha1 is not None: - pulumi.set(__self__, "checksum_sha1", checksum_sha1) + _setter("checksum_sha1", checksum_sha1) if checksum_sha256 is not None: - pulumi.set(__self__, "checksum_sha256", checksum_sha256) + _setter("checksum_sha256", checksum_sha256) if content_disposition is not None: - pulumi.set(__self__, "content_disposition", content_disposition) + _setter("content_disposition", content_disposition) if content_encoding is not None: - pulumi.set(__self__, "content_encoding", content_encoding) + _setter("content_encoding", content_encoding) if content_language is not None: - pulumi.set(__self__, "content_language", content_language) + _setter("content_language", content_language) if content_type is not None: - pulumi.set(__self__, "content_type", content_type) + _setter("content_type", content_type) if copy_if_match is not None: - pulumi.set(__self__, "copy_if_match", copy_if_match) + _setter("copy_if_match", copy_if_match) if copy_if_modified_since is not None: - pulumi.set(__self__, "copy_if_modified_since", copy_if_modified_since) + _setter("copy_if_modified_since", copy_if_modified_since) if copy_if_none_match is not None: - pulumi.set(__self__, "copy_if_none_match", copy_if_none_match) + _setter("copy_if_none_match", copy_if_none_match) if copy_if_unmodified_since is not None: - pulumi.set(__self__, "copy_if_unmodified_since", copy_if_unmodified_since) + _setter("copy_if_unmodified_since", copy_if_unmodified_since) if customer_algorithm is not None: - pulumi.set(__self__, "customer_algorithm", customer_algorithm) + _setter("customer_algorithm", customer_algorithm) if customer_key is not None: - pulumi.set(__self__, "customer_key", customer_key) + _setter("customer_key", customer_key) if customer_key_md5 is not None: - pulumi.set(__self__, "customer_key_md5", customer_key_md5) + _setter("customer_key_md5", customer_key_md5) if etag is not None: - pulumi.set(__self__, "etag", etag) + _setter("etag", etag) if expected_bucket_owner is not None: - pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + _setter("expected_bucket_owner", expected_bucket_owner) if expected_source_bucket_owner is not None: - pulumi.set(__self__, "expected_source_bucket_owner", expected_source_bucket_owner) + _setter("expected_source_bucket_owner", expected_source_bucket_owner) if expiration is not None: - pulumi.set(__self__, "expiration", expiration) + _setter("expiration", expiration) if expires is not None: - pulumi.set(__self__, "expires", expires) + _setter("expires", expires) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if grants is not None: - pulumi.set(__self__, "grants", grants) + _setter("grants", grants) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if kms_encryption_context is not None: - pulumi.set(__self__, "kms_encryption_context", kms_encryption_context) + _setter("kms_encryption_context", kms_encryption_context) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if last_modified is not None: - pulumi.set(__self__, "last_modified", last_modified) + _setter("last_modified", last_modified) if metadata is not None: - pulumi.set(__self__, "metadata", metadata) + _setter("metadata", metadata) if metadata_directive is not None: - pulumi.set(__self__, "metadata_directive", metadata_directive) + _setter("metadata_directive", metadata_directive) if object_lock_legal_hold_status is not None: - pulumi.set(__self__, "object_lock_legal_hold_status", object_lock_legal_hold_status) + _setter("object_lock_legal_hold_status", object_lock_legal_hold_status) if object_lock_mode is not None: - pulumi.set(__self__, "object_lock_mode", object_lock_mode) + _setter("object_lock_mode", object_lock_mode) if object_lock_retain_until_date is not None: - pulumi.set(__self__, "object_lock_retain_until_date", object_lock_retain_until_date) + _setter("object_lock_retain_until_date", object_lock_retain_until_date) if request_charged is not None: - pulumi.set(__self__, "request_charged", request_charged) + _setter("request_charged", request_charged) if request_payer is not None: - pulumi.set(__self__, "request_payer", request_payer) + _setter("request_payer", request_payer) if server_side_encryption is not None: - pulumi.set(__self__, "server_side_encryption", server_side_encryption) + _setter("server_side_encryption", server_side_encryption) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if source_customer_algorithm is not None: - pulumi.set(__self__, "source_customer_algorithm", source_customer_algorithm) + _setter("source_customer_algorithm", source_customer_algorithm) if source_customer_key is not None: - pulumi.set(__self__, "source_customer_key", source_customer_key) + _setter("source_customer_key", source_customer_key) if source_customer_key_md5 is not None: - pulumi.set(__self__, "source_customer_key_md5", source_customer_key_md5) + _setter("source_customer_key_md5", source_customer_key_md5) if source_version_id is not None: - pulumi.set(__self__, "source_version_id", source_version_id) + _setter("source_version_id", source_version_id) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) if tagging_directive is not None: - pulumi.set(__self__, "tagging_directive", tagging_directive) + _setter("tagging_directive", tagging_directive) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) if website_redirect is not None: - pulumi.set(__self__, "website_redirect", website_redirect) + _setter("website_redirect", website_redirect) @property @pulumi.getter @@ -1600,6 +1944,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ObjectCopyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3/outputs.py b/sdk/python/pulumi_aws/s3/outputs.py index 4c02708ed7e..fc5fe3dd65c 100644 --- a/sdk/python/pulumi_aws/s3/outputs.py +++ b/sdk/python/pulumi_aws/s3/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -171,14 +171,39 @@ def __init__(__self__, *, :param bool restrict_public_buckets: Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: * Only the bucket owner and AWS Services can access buckets with public policies. """ + AccessPointPublicAccessBlockConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_public_acls=block_public_acls, + block_public_policy=block_public_policy, + ignore_public_acls=ignore_public_acls, + restrict_public_buckets=restrict_public_buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_public_acls: Optional[bool] = None, + block_public_policy: Optional[bool] = None, + ignore_public_acls: Optional[bool] = None, + restrict_public_buckets: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_public_acls is None and 'blockPublicAcls' in kwargs: + block_public_acls = kwargs['blockPublicAcls'] + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if ignore_public_acls is None and 'ignorePublicAcls' in kwargs: + ignore_public_acls = kwargs['ignorePublicAcls'] + if restrict_public_buckets is None and 'restrictPublicBuckets' in kwargs: + restrict_public_buckets = kwargs['restrictPublicBuckets'] + if block_public_acls is not None: - pulumi.set(__self__, "block_public_acls", block_public_acls) + _setter("block_public_acls", block_public_acls) if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) if ignore_public_acls is not None: - pulumi.set(__self__, "ignore_public_acls", ignore_public_acls) + _setter("ignore_public_acls", ignore_public_acls) if restrict_public_buckets is not None: - pulumi.set(__self__, "restrict_public_buckets", restrict_public_buckets) + _setter("restrict_public_buckets", restrict_public_buckets) @property @pulumi.getter(name="blockPublicAcls") @@ -243,7 +268,22 @@ def __init__(__self__, *, """ :param str vpc_id: This access point will only allow connections from the specified VPC ID. """ - pulumi.set(__self__, "vpc_id", vpc_id) + AccessPointVpcConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="vpcId") @@ -263,10 +303,23 @@ def __init__(__self__, *, :param str prefix: Object prefix for filtering. :param Mapping[str, str] tags: Set of object tags for filtering. """ + AnalyticsConfigurationFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -309,7 +362,22 @@ def __init__(__self__, *, """ :param 'AnalyticsConfigurationStorageClassAnalysisDataExportArgs' data_export: Data export configuration (documented below). """ - pulumi.set(__self__, "data_export", data_export) + AnalyticsConfigurationStorageClassAnalysis._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_export=data_export, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_export: Optional['outputs.AnalyticsConfigurationStorageClassAnalysisDataExport'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_export is None and 'dataExport' in kwargs: + data_export = kwargs['dataExport'] + if data_export is None: + raise TypeError("Missing 'data_export' argument") + + _setter("data_export", data_export) @property @pulumi.getter(name="dataExport") @@ -346,9 +414,26 @@ def __init__(__self__, *, :param 'AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs' destination: Specifies the destination for the exported analytics data (documented below). :param str output_schema_version: Schema version of exported analytics data. Allowed values: `V_1`. Default value: `V_1`. """ - pulumi.set(__self__, "destination", destination) + AnalyticsConfigurationStorageClassAnalysisDataExport._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + output_schema_version=output_schema_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestination'] = None, + output_schema_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if output_schema_version is None and 'outputSchemaVersion' in kwargs: + output_schema_version = kwargs['outputSchemaVersion'] + + _setter("destination", destination) if output_schema_version is not None: - pulumi.set(__self__, "output_schema_version", output_schema_version) + _setter("output_schema_version", output_schema_version) @property @pulumi.getter @@ -393,7 +478,22 @@ def __init__(__self__, *, The `s3_bucket_destination` configuration supports the following: """ - pulumi.set(__self__, "s3_bucket_destination", s3_bucket_destination) + AnalyticsConfigurationStorageClassAnalysisDataExportDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_destination=s3_bucket_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_destination: Optional['outputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_destination is None and 's3BucketDestination' in kwargs: + s3_bucket_destination = kwargs['s3BucketDestination'] + if s3_bucket_destination is None: + raise TypeError("Missing 's3_bucket_destination' argument") + + _setter("s3_bucket_destination", s3_bucket_destination) @property @pulumi.getter(name="s3BucketDestination") @@ -436,15 +536,38 @@ def __init__(__self__, *, :param str bucket_arn: ARN of the destination bucket. :param str bucket_account_id: Account ID that owns the destination bucket. :param str format: Output format of exported analytics data. Allowed values: `CSV`. Default value: `CSV`. - :param str prefix: Object prefix for filtering. - """ - pulumi.set(__self__, "bucket_arn", bucket_arn) + :param str prefix: Prefix to append to exported analytics data. + """ + AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + bucket_account_id=bucket_account_id, + format=format, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + bucket_account_id: Optional[str] = None, + format: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if bucket_account_id is None and 'bucketAccountId' in kwargs: + bucket_account_id = kwargs['bucketAccountId'] + + _setter("bucket_arn", bucket_arn) if bucket_account_id is not None: - pulumi.set(__self__, "bucket_account_id", bucket_account_id) + _setter("bucket_account_id", bucket_account_id) if format is not None: - pulumi.set(__self__, "format", format) + _setter("format", format) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -474,7 +597,7 @@ def format(self) -> Optional[str]: @pulumi.getter def prefix(self) -> Optional[str]: """ - Object prefix for filtering. + Prefix to append to exported analytics data. """ return pulumi.get(self, "prefix") @@ -488,9 +611,24 @@ def __init__(__self__, *, :param 'BucketAclV2AccessControlPolicyOwnerArgs' owner: Configuration block of the bucket owner's display name and ID. See below. :param Sequence['BucketAclV2AccessControlPolicyGrantArgs'] grants: Set of `grant` configuration blocks. See below. """ - pulumi.set(__self__, "owner", owner) + BucketAclV2AccessControlPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + grants=grants, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional['outputs.BucketAclV2AccessControlPolicyOwner'] = None, + grants: Optional[Sequence['outputs.BucketAclV2AccessControlPolicyGrant']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("owner", owner) if grants is not None: - pulumi.set(__self__, "grants", grants) + _setter("grants", grants) @property @pulumi.getter @@ -518,9 +656,24 @@ def __init__(__self__, *, :param str permission: Logging permissions assigned to the grantee for the bucket. :param 'BucketAclV2AccessControlPolicyGrantGranteeArgs' grantee: Configuration block for the person being granted permissions. See below. """ - pulumi.set(__self__, "permission", permission) + BucketAclV2AccessControlPolicyGrant._configure( + lambda key, value: pulumi.set(__self__, key, value), + permission=permission, + grantee=grantee, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permission: Optional[str] = None, + grantee: Optional['outputs.BucketAclV2AccessControlPolicyGrantGrantee'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permission is None: + raise TypeError("Missing 'permission' argument") + + _setter("permission", permission) if grantee is not None: - pulumi.set(__self__, "grantee", grantee) + _setter("grantee", grantee) @property @pulumi.getter @@ -573,15 +726,40 @@ def __init__(__self__, *, :param str id: Canonical user ID of the grantee. :param str uri: URI of the grantee group. """ - pulumi.set(__self__, "type", type) + BucketAclV2AccessControlPolicyGrantGrantee._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + display_name=display_name, + email_address=email_address, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + display_name: Optional[str] = None, + email_address: Optional[str] = None, + id: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + + _setter("type", type) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if email_address is not None: - pulumi.set(__self__, "email_address", email_address) + _setter("email_address", email_address) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -650,9 +828,26 @@ def __init__(__self__, *, :param str id: ID of the owner. :param str display_name: Display name of the owner. """ - pulumi.set(__self__, "id", id) + BucketAclV2AccessControlPolicyOwner._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + display_name=display_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + display_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + + _setter("id", id) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) @property @pulumi.getter @@ -713,16 +908,51 @@ def __init__(__self__, *, :param str id: Unique identifier for the rule. The value cannot be longer than 255 characters. :param int max_age_seconds: Time in seconds that your browser is to cache the preflight response for the specified resource. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "allowed_origins", allowed_origins) + BucketCorsConfigurationV2CorsRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + allowed_origins=allowed_origins, + allowed_headers=allowed_headers, + expose_headers=expose_headers, + id=id, + max_age_seconds=max_age_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[Sequence[str]] = None, + allowed_origins: Optional[Sequence[str]] = None, + allowed_headers: Optional[Sequence[str]] = None, + expose_headers: Optional[Sequence[str]] = None, + id: Optional[str] = None, + max_age_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if allowed_origins is None and 'allowedOrigins' in kwargs: + allowed_origins = kwargs['allowedOrigins'] + if allowed_origins is None: + raise TypeError("Missing 'allowed_origins' argument") + if allowed_headers is None and 'allowedHeaders' in kwargs: + allowed_headers = kwargs['allowedHeaders'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age_seconds is None and 'maxAgeSeconds' in kwargs: + max_age_seconds = kwargs['maxAgeSeconds'] + + _setter("allowed_methods", allowed_methods) + _setter("allowed_origins", allowed_origins) if allowed_headers is not None: - pulumi.set(__self__, "allowed_headers", allowed_headers) + _setter("allowed_headers", allowed_headers) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if max_age_seconds is not None: - pulumi.set(__self__, "max_age_seconds", max_age_seconds) + _setter("max_age_seconds", max_age_seconds) @property @pulumi.getter(name="allowedMethods") @@ -813,14 +1043,47 @@ def __init__(__self__, *, :param Sequence[str] expose_headers: Specifies expose header in the response. :param int max_age_seconds: Specifies time in seconds that browser can cache the response for a preflight request. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "allowed_origins", allowed_origins) + BucketCorsRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + allowed_origins=allowed_origins, + allowed_headers=allowed_headers, + expose_headers=expose_headers, + max_age_seconds=max_age_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[Sequence[str]] = None, + allowed_origins: Optional[Sequence[str]] = None, + allowed_headers: Optional[Sequence[str]] = None, + expose_headers: Optional[Sequence[str]] = None, + max_age_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if allowed_origins is None and 'allowedOrigins' in kwargs: + allowed_origins = kwargs['allowedOrigins'] + if allowed_origins is None: + raise TypeError("Missing 'allowed_origins' argument") + if allowed_headers is None and 'allowedHeaders' in kwargs: + allowed_headers = kwargs['allowedHeaders'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age_seconds is None and 'maxAgeSeconds' in kwargs: + max_age_seconds = kwargs['maxAgeSeconds'] + + _setter("allowed_methods", allowed_methods) + _setter("allowed_origins", allowed_origins) if allowed_headers is not None: - pulumi.set(__self__, "allowed_headers", allowed_headers) + _setter("allowed_headers", allowed_headers) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if max_age_seconds is not None: - pulumi.set(__self__, "max_age_seconds", max_age_seconds) + _setter("max_age_seconds", max_age_seconds) @property @pulumi.getter(name="allowedMethods") @@ -876,12 +1139,33 @@ def __init__(__self__, *, :param str id: Canonical user id to grant for. Used only when `type` is `CanonicalUser`. :param str uri: Uri address to grant for. Used only when `type` is `Group`. """ - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "type", type) + BucketGrant._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + type=type, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[Sequence[str]] = None, + type: Optional[str] = None, + id: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("permissions", permissions) + _setter("type", type) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -925,10 +1209,23 @@ def __init__(__self__, *, :param str prefix: Object key name prefix that identifies the subset of objects to which the configuration applies. :param Mapping[str, str] tags: All of these tags must exist in the object's tag set in order for the configuration to apply. """ + BucketIntelligentTieringConfigurationFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -973,8 +1270,27 @@ def __init__(__self__, *, :param str access_tier: S3 Intelligent-Tiering access tier. Valid values: `ARCHIVE_ACCESS`, `DEEP_ARCHIVE_ACCESS`. :param int days: Number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. """ - pulumi.set(__self__, "access_tier", access_tier) - pulumi.set(__self__, "days", days) + BucketIntelligentTieringConfigurationTiering._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_tier=access_tier, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_tier: Optional[str] = None, + days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_tier is None and 'accessTier' in kwargs: + access_tier = kwargs['accessTier'] + if access_tier is None: + raise TypeError("Missing 'access_tier' argument") + if days is None: + raise TypeError("Missing 'days' argument") + + _setter("access_tier", access_tier) + _setter("days", days) @property @pulumi.getter(name="accessTier") @@ -1037,22 +1353,59 @@ def __init__(__self__, *, :param str prefix: **DEPRECATED** Use `filter` instead. This has been deprecated by Amazon S3. Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if `filter` is not specified. :param Sequence['BucketLifecycleConfigurationV2RuleTransitionArgs'] transitions: Set of configuration blocks that specify when an Amazon S3 object transitions to a specified storage class. See below. """ - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "status", status) + BucketLifecycleConfigurationV2Rule._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + status=status, + abort_incomplete_multipart_upload=abort_incomplete_multipart_upload, + expiration=expiration, + filter=filter, + noncurrent_version_expiration=noncurrent_version_expiration, + noncurrent_version_transitions=noncurrent_version_transitions, + prefix=prefix, + transitions=transitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + status: Optional[str] = None, + abort_incomplete_multipart_upload: Optional['outputs.BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload'] = None, + expiration: Optional['outputs.BucketLifecycleConfigurationV2RuleExpiration'] = None, + filter: Optional['outputs.BucketLifecycleConfigurationV2RuleFilter'] = None, + noncurrent_version_expiration: Optional['outputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration'] = None, + noncurrent_version_transitions: Optional[Sequence['outputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition']] = None, + prefix: Optional[str] = None, + transitions: Optional[Sequence['outputs.BucketLifecycleConfigurationV2RuleTransition']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if abort_incomplete_multipart_upload is None and 'abortIncompleteMultipartUpload' in kwargs: + abort_incomplete_multipart_upload = kwargs['abortIncompleteMultipartUpload'] + if noncurrent_version_expiration is None and 'noncurrentVersionExpiration' in kwargs: + noncurrent_version_expiration = kwargs['noncurrentVersionExpiration'] + if noncurrent_version_transitions is None and 'noncurrentVersionTransitions' in kwargs: + noncurrent_version_transitions = kwargs['noncurrentVersionTransitions'] + + _setter("id", id) + _setter("status", status) if abort_incomplete_multipart_upload is not None: - pulumi.set(__self__, "abort_incomplete_multipart_upload", abort_incomplete_multipart_upload) + _setter("abort_incomplete_multipart_upload", abort_incomplete_multipart_upload) if expiration is not None: - pulumi.set(__self__, "expiration", expiration) + _setter("expiration", expiration) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if noncurrent_version_expiration is not None: - pulumi.set(__self__, "noncurrent_version_expiration", noncurrent_version_expiration) + _setter("noncurrent_version_expiration", noncurrent_version_expiration) if noncurrent_version_transitions is not None: - pulumi.set(__self__, "noncurrent_version_transitions", noncurrent_version_transitions) + _setter("noncurrent_version_transitions", noncurrent_version_transitions) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if transitions is not None: - pulumi.set(__self__, "transitions", transitions) + _setter("transitions", transitions) @property @pulumi.getter @@ -1154,8 +1507,21 @@ def __init__(__self__, *, """ :param int days_after_initiation: Number of days after which Amazon S3 aborts an incomplete multipart upload. """ + BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload._configure( + lambda key, value: pulumi.set(__self__, key, value), + days_after_initiation=days_after_initiation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days_after_initiation: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days_after_initiation is None and 'daysAfterInitiation' in kwargs: + days_after_initiation = kwargs['daysAfterInitiation'] + if days_after_initiation is not None: - pulumi.set(__self__, "days_after_initiation", days_after_initiation) + _setter("days_after_initiation", days_after_initiation) @property @pulumi.getter(name="daysAfterInitiation") @@ -1194,12 +1560,29 @@ def __init__(__self__, *, :param int days: Lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer. :param bool expired_object_delete_marker: Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to `true`, the delete marker will be expired; if set to `false` the policy takes no action. """ + BucketLifecycleConfigurationV2RuleExpiration._configure( + lambda key, value: pulumi.set(__self__, key, value), + date=date, + days=days, + expired_object_delete_marker=expired_object_delete_marker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date: Optional[str] = None, + days: Optional[int] = None, + expired_object_delete_marker: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expired_object_delete_marker is None and 'expiredObjectDeleteMarker' in kwargs: + expired_object_delete_marker = kwargs['expiredObjectDeleteMarker'] + if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if expired_object_delete_marker is not None: - pulumi.set(__self__, "expired_object_delete_marker", expired_object_delete_marker) + _setter("expired_object_delete_marker", expired_object_delete_marker) @property @pulumi.getter @@ -1262,16 +1645,41 @@ def __init__(__self__, *, :param str prefix: Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if not specified. :param 'BucketLifecycleConfigurationV2RuleFilterTagArgs' tag: Configuration block for specifying a tag key and value. See below. """ + BucketLifecycleConfigurationV2RuleFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_=and_, + object_size_greater_than=object_size_greater_than, + object_size_less_than=object_size_less_than, + prefix=prefix, + tag=tag, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_: Optional['outputs.BucketLifecycleConfigurationV2RuleFilterAnd'] = None, + object_size_greater_than: Optional[str] = None, + object_size_less_than: Optional[str] = None, + prefix: Optional[str] = None, + tag: Optional['outputs.BucketLifecycleConfigurationV2RuleFilterTag'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_ is None and 'and' in kwargs: + and_ = kwargs['and'] + if object_size_greater_than is None and 'objectSizeGreaterThan' in kwargs: + object_size_greater_than = kwargs['objectSizeGreaterThan'] + if object_size_less_than is None and 'objectSizeLessThan' in kwargs: + object_size_less_than = kwargs['objectSizeLessThan'] + if and_ is not None: - pulumi.set(__self__, "and_", and_) + _setter("and_", and_) if object_size_greater_than is not None: - pulumi.set(__self__, "object_size_greater_than", object_size_greater_than) + _setter("object_size_greater_than", object_size_greater_than) if object_size_less_than is not None: - pulumi.set(__self__, "object_size_less_than", object_size_less_than) + _setter("object_size_less_than", object_size_less_than) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tag is not None: - pulumi.set(__self__, "tag", tag) + _setter("tag", tag) @property @pulumi.getter(name="and") @@ -1346,14 +1754,35 @@ def __init__(__self__, *, :param str prefix: Prefix identifying one or more objects to which the rule applies. :param Mapping[str, str] tags: Key-value map of resource tags. All of these tags must exist in the object's tag set in order for the rule to apply. """ + BucketLifecycleConfigurationV2RuleFilterAnd._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_size_greater_than=object_size_greater_than, + object_size_less_than=object_size_less_than, + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_size_greater_than: Optional[int] = None, + object_size_less_than: Optional[int] = None, + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_size_greater_than is None and 'objectSizeGreaterThan' in kwargs: + object_size_greater_than = kwargs['objectSizeGreaterThan'] + if object_size_less_than is None and 'objectSizeLessThan' in kwargs: + object_size_less_than = kwargs['objectSizeLessThan'] + if object_size_greater_than is not None: - pulumi.set(__self__, "object_size_greater_than", object_size_greater_than) + _setter("object_size_greater_than", object_size_greater_than) if object_size_less_than is not None: - pulumi.set(__self__, "object_size_less_than", object_size_less_than) + _setter("object_size_less_than", object_size_less_than) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="objectSizeGreaterThan") @@ -1397,8 +1826,25 @@ def __init__(__self__, *, :param str key: Name of the object key. :param str value: Value of the tag. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + BucketLifecycleConfigurationV2RuleFilterTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -1445,10 +1891,27 @@ def __init__(__self__, *, :param str newer_noncurrent_versions: Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. :param int noncurrent_days: Number of days an object is noncurrent before Amazon S3 can perform the associated action. Must be a positive integer. """ + BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration._configure( + lambda key, value: pulumi.set(__self__, key, value), + newer_noncurrent_versions=newer_noncurrent_versions, + noncurrent_days=noncurrent_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + newer_noncurrent_versions: Optional[str] = None, + noncurrent_days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if newer_noncurrent_versions is None and 'newerNoncurrentVersions' in kwargs: + newer_noncurrent_versions = kwargs['newerNoncurrentVersions'] + if noncurrent_days is None and 'noncurrentDays' in kwargs: + noncurrent_days = kwargs['noncurrentDays'] + if newer_noncurrent_versions is not None: - pulumi.set(__self__, "newer_noncurrent_versions", newer_noncurrent_versions) + _setter("newer_noncurrent_versions", newer_noncurrent_versions) if noncurrent_days is not None: - pulumi.set(__self__, "noncurrent_days", noncurrent_days) + _setter("noncurrent_days", noncurrent_days) @property @pulumi.getter(name="newerNoncurrentVersions") @@ -1499,11 +1962,34 @@ def __init__(__self__, *, :param str newer_noncurrent_versions: Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. :param int noncurrent_days: Number of days an object is noncurrent before Amazon S3 can perform the associated action. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + newer_noncurrent_versions=newer_noncurrent_versions, + noncurrent_days=noncurrent_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[str] = None, + newer_noncurrent_versions: Optional[str] = None, + noncurrent_days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + if newer_noncurrent_versions is None and 'newerNoncurrentVersions' in kwargs: + newer_noncurrent_versions = kwargs['newerNoncurrentVersions'] + if noncurrent_days is None and 'noncurrentDays' in kwargs: + noncurrent_days = kwargs['noncurrentDays'] + + _setter("storage_class", storage_class) if newer_noncurrent_versions is not None: - pulumi.set(__self__, "newer_noncurrent_versions", newer_noncurrent_versions) + _setter("newer_noncurrent_versions", newer_noncurrent_versions) if noncurrent_days is not None: - pulumi.set(__self__, "noncurrent_days", noncurrent_days) + _setter("noncurrent_days", noncurrent_days) @property @pulumi.getter(name="storageClass") @@ -1558,11 +2044,30 @@ def __init__(__self__, *, :param str date: Date objects are transitioned to the specified storage class. The date value must be in [RFC3339 full-date format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) e.g. `2023-08-22`. :param int days: Number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer. If both `days` and `date` are not specified, defaults to `0`. Valid values depend on `storage_class`, see [Transition objects using Amazon S3 Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html) for more details. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketLifecycleConfigurationV2RuleTransition._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + date=date, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[str] = None, + date: Optional[str] = None, + days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -1635,23 +2140,58 @@ def __init__(__self__, *, :param Mapping[str, str] tags: Specifies object tags key and value. :param Sequence['BucketLifecycleRuleTransitionArgs'] transitions: Specifies a period in the object's transitions (documented below). """ - pulumi.set(__self__, "enabled", enabled) + BucketLifecycleRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + abort_incomplete_multipart_upload_days=abort_incomplete_multipart_upload_days, + expiration=expiration, + id=id, + noncurrent_version_expiration=noncurrent_version_expiration, + noncurrent_version_transitions=noncurrent_version_transitions, + prefix=prefix, + tags=tags, + transitions=transitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + abort_incomplete_multipart_upload_days: Optional[int] = None, + expiration: Optional['outputs.BucketLifecycleRuleExpiration'] = None, + id: Optional[str] = None, + noncurrent_version_expiration: Optional['outputs.BucketLifecycleRuleNoncurrentVersionExpiration'] = None, + noncurrent_version_transitions: Optional[Sequence['outputs.BucketLifecycleRuleNoncurrentVersionTransition']] = None, + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + transitions: Optional[Sequence['outputs.BucketLifecycleRuleTransition']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if abort_incomplete_multipart_upload_days is None and 'abortIncompleteMultipartUploadDays' in kwargs: + abort_incomplete_multipart_upload_days = kwargs['abortIncompleteMultipartUploadDays'] + if noncurrent_version_expiration is None and 'noncurrentVersionExpiration' in kwargs: + noncurrent_version_expiration = kwargs['noncurrentVersionExpiration'] + if noncurrent_version_transitions is None and 'noncurrentVersionTransitions' in kwargs: + noncurrent_version_transitions = kwargs['noncurrentVersionTransitions'] + + _setter("enabled", enabled) if abort_incomplete_multipart_upload_days is not None: - pulumi.set(__self__, "abort_incomplete_multipart_upload_days", abort_incomplete_multipart_upload_days) + _setter("abort_incomplete_multipart_upload_days", abort_incomplete_multipart_upload_days) if expiration is not None: - pulumi.set(__self__, "expiration", expiration) + _setter("expiration", expiration) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if noncurrent_version_expiration is not None: - pulumi.set(__self__, "noncurrent_version_expiration", noncurrent_version_expiration) + _setter("noncurrent_version_expiration", noncurrent_version_expiration) if noncurrent_version_transitions is not None: - pulumi.set(__self__, "noncurrent_version_transitions", noncurrent_version_transitions) + _setter("noncurrent_version_transitions", noncurrent_version_transitions) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transitions is not None: - pulumi.set(__self__, "transitions", transitions) + _setter("transitions", transitions) @property @pulumi.getter @@ -1756,12 +2296,29 @@ def __init__(__self__, *, :param int days: Specifies the number of days after object creation when the specific rule action takes effect. :param bool expired_object_delete_marker: On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. """ + BucketLifecycleRuleExpiration._configure( + lambda key, value: pulumi.set(__self__, key, value), + date=date, + days=days, + expired_object_delete_marker=expired_object_delete_marker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date: Optional[str] = None, + days: Optional[int] = None, + expired_object_delete_marker: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expired_object_delete_marker is None and 'expiredObjectDeleteMarker' in kwargs: + expired_object_delete_marker = kwargs['expiredObjectDeleteMarker'] + if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if expired_object_delete_marker is not None: - pulumi.set(__self__, "expired_object_delete_marker", expired_object_delete_marker) + _setter("expired_object_delete_marker", expired_object_delete_marker) @property @pulumi.getter @@ -1795,8 +2352,19 @@ def __init__(__self__, *, """ :param int days: Specifies the number of days noncurrent object versions expire. """ + BucketLifecycleRuleNoncurrentVersionExpiration._configure( + lambda key, value: pulumi.set(__self__, key, value), + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter @@ -1833,9 +2401,26 @@ def __init__(__self__, *, :param str storage_class: Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. :param int days: Specifies the number of days noncurrent object versions transition. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketLifecycleRuleNoncurrentVersionTransition._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[str] = None, + days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -1882,11 +2467,30 @@ def __init__(__self__, *, :param str date: Specifies the date after which you want the corresponding action to take effect. :param int days: Specifies the number of days after object creation when the specific rule action takes effect. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketLifecycleRuleTransition._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + date=date, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[str] = None, + date: Optional[str] = None, + days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -1941,9 +2545,28 @@ def __init__(__self__, *, :param str target_bucket: The name of the bucket that will receive the log objects. :param str target_prefix: To specify a key prefix for log objects. """ - pulumi.set(__self__, "target_bucket", target_bucket) + BucketLogging._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_bucket=target_bucket, + target_prefix=target_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_bucket: Optional[str] = None, + target_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_bucket is None and 'targetBucket' in kwargs: + target_bucket = kwargs['targetBucket'] + if target_bucket is None: + raise TypeError("Missing 'target_bucket' argument") + if target_prefix is None and 'targetPrefix' in kwargs: + target_prefix = kwargs['targetPrefix'] + + _setter("target_bucket", target_bucket) if target_prefix is not None: - pulumi.set(__self__, "target_prefix", target_prefix) + _setter("target_prefix", target_prefix) @property @pulumi.getter(name="targetBucket") @@ -1971,8 +2594,25 @@ def __init__(__self__, *, :param 'BucketLoggingV2TargetGrantGranteeArgs' grantee: Configuration block for the person being granted permissions. See below. :param str permission: Logging permissions assigned to the grantee for the bucket. Valid values: `FULL_CONTROL`, `READ`, `WRITE`. """ - pulumi.set(__self__, "grantee", grantee) - pulumi.set(__self__, "permission", permission) + BucketLoggingV2TargetGrant._configure( + lambda key, value: pulumi.set(__self__, key, value), + grantee=grantee, + permission=permission, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + grantee: Optional['outputs.BucketLoggingV2TargetGrantGrantee'] = None, + permission: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if grantee is None: + raise TypeError("Missing 'grantee' argument") + if permission is None: + raise TypeError("Missing 'permission' argument") + + _setter("grantee", grantee) + _setter("permission", permission) @property @pulumi.getter @@ -2024,15 +2664,40 @@ def __init__(__self__, *, :param str id: Canonical user ID of the grantee. :param str uri: URI of the grantee group. """ - pulumi.set(__self__, "type", type) + BucketLoggingV2TargetGrantGrantee._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + display_name=display_name, + email_address=email_address, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + display_name: Optional[str] = None, + email_address: Optional[str] = None, + id: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if email_address is None and 'emailAddress' in kwargs: + email_address = kwargs['emailAddress'] + + _setter("type", type) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if email_address is not None: - pulumi.set(__self__, "email_address", email_address) + _setter("email_address", email_address) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -2081,10 +2746,23 @@ def __init__(__self__, *, :param str prefix: Object prefix for filtering (singular). :param Mapping[str, str] tags: Object tags for filtering (up to 10). """ + BucketMetricFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -2139,15 +2817,42 @@ def __init__(__self__, *, :param str id: Unique identifier for each of the notification configurations. :param str lambda_function_arn: Lambda function ARN. """ - pulumi.set(__self__, "events", events) + BucketNotificationLambdaFunction._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + filter_prefix=filter_prefix, + filter_suffix=filter_suffix, + id=id, + lambda_function_arn=lambda_function_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[Sequence[str]] = None, + filter_prefix: Optional[str] = None, + filter_suffix: Optional[str] = None, + id: Optional[str] = None, + lambda_function_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is None: + raise TypeError("Missing 'events' argument") + if filter_prefix is None and 'filterPrefix' in kwargs: + filter_prefix = kwargs['filterPrefix'] + if filter_suffix is None and 'filterSuffix' in kwargs: + filter_suffix = kwargs['filterSuffix'] + if lambda_function_arn is None and 'lambdaFunctionArn' in kwargs: + lambda_function_arn = kwargs['lambdaFunctionArn'] + + _setter("events", events) if filter_prefix is not None: - pulumi.set(__self__, "filter_prefix", filter_prefix) + _setter("filter_prefix", filter_prefix) if filter_suffix is not None: - pulumi.set(__self__, "filter_suffix", filter_suffix) + _setter("filter_suffix", filter_suffix) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if lambda_function_arn is not None: - pulumi.set(__self__, "lambda_function_arn", lambda_function_arn) + _setter("lambda_function_arn", lambda_function_arn) @property @pulumi.getter @@ -2226,14 +2931,43 @@ def __init__(__self__, *, :param str filter_suffix: Object key name suffix. :param str id: Unique identifier for each of the notification configurations. """ - pulumi.set(__self__, "events", events) - pulumi.set(__self__, "queue_arn", queue_arn) + BucketNotificationQueue._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + queue_arn=queue_arn, + filter_prefix=filter_prefix, + filter_suffix=filter_suffix, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[Sequence[str]] = None, + queue_arn: Optional[str] = None, + filter_prefix: Optional[str] = None, + filter_suffix: Optional[str] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is None: + raise TypeError("Missing 'events' argument") + if queue_arn is None and 'queueArn' in kwargs: + queue_arn = kwargs['queueArn'] + if queue_arn is None: + raise TypeError("Missing 'queue_arn' argument") + if filter_prefix is None and 'filterPrefix' in kwargs: + filter_prefix = kwargs['filterPrefix'] + if filter_suffix is None and 'filterSuffix' in kwargs: + filter_suffix = kwargs['filterSuffix'] + + _setter("events", events) + _setter("queue_arn", queue_arn) if filter_prefix is not None: - pulumi.set(__self__, "filter_prefix", filter_prefix) + _setter("filter_prefix", filter_prefix) if filter_suffix is not None: - pulumi.set(__self__, "filter_suffix", filter_suffix) + _setter("filter_suffix", filter_suffix) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -2312,14 +3046,43 @@ def __init__(__self__, *, :param str filter_suffix: Object key name suffix. :param str id: Unique identifier for each of the notification configurations. """ - pulumi.set(__self__, "events", events) - pulumi.set(__self__, "topic_arn", topic_arn) + BucketNotificationTopic._configure( + lambda key, value: pulumi.set(__self__, key, value), + events=events, + topic_arn=topic_arn, + filter_prefix=filter_prefix, + filter_suffix=filter_suffix, + id=id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + events: Optional[Sequence[str]] = None, + topic_arn: Optional[str] = None, + filter_prefix: Optional[str] = None, + filter_suffix: Optional[str] = None, + id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if events is None: + raise TypeError("Missing 'events' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + if filter_prefix is None and 'filterPrefix' in kwargs: + filter_prefix = kwargs['filterPrefix'] + if filter_suffix is None and 'filterSuffix' in kwargs: + filter_suffix = kwargs['filterSuffix'] + + _setter("events", events) + _setter("topic_arn", topic_arn) if filter_prefix is not None: - pulumi.set(__self__, "filter_prefix", filter_prefix) + _setter("filter_prefix", filter_prefix) if filter_suffix is not None: - pulumi.set(__self__, "filter_suffix", filter_suffix) + _setter("filter_suffix", filter_suffix) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) @property @pulumi.getter @@ -2388,9 +3151,26 @@ def __init__(__self__, *, :param str object_lock_enabled: Indicates whether this bucket has an Object Lock configuration enabled. Valid value is `Enabled`. :param 'BucketObjectLockConfigurationRuleArgs' rule: The Object Lock rule in place for this bucket. """ - pulumi.set(__self__, "object_lock_enabled", object_lock_enabled) + BucketObjectLockConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_lock_enabled=object_lock_enabled, + rule=rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_lock_enabled: Optional[str] = None, + rule: Optional['outputs.BucketObjectLockConfigurationRule'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_lock_enabled is None and 'objectLockEnabled' in kwargs: + object_lock_enabled = kwargs['objectLockEnabled'] + if object_lock_enabled is None: + raise TypeError("Missing 'object_lock_enabled' argument") + + _setter("object_lock_enabled", object_lock_enabled) if rule is not None: - pulumi.set(__self__, "rule", rule) + _setter("rule", rule) @property @pulumi.getter(name="objectLockEnabled") @@ -2433,7 +3213,22 @@ def __init__(__self__, *, """ :param 'BucketObjectLockConfigurationRuleDefaultRetentionArgs' default_retention: The default retention period that you want to apply to new objects placed in this bucket. """ - pulumi.set(__self__, "default_retention", default_retention) + BucketObjectLockConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_retention=default_retention, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_retention: Optional['outputs.BucketObjectLockConfigurationRuleDefaultRetention'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_retention is None and 'defaultRetention' in kwargs: + default_retention = kwargs['defaultRetention'] + if default_retention is None: + raise TypeError("Missing 'default_retention' argument") + + _setter("default_retention", default_retention) @property @pulumi.getter(name="defaultRetention") @@ -2461,11 +3256,28 @@ def __init__(__self__, *, When you create a bucket with S3 Object Lock enabled, Amazon S3 automatically enables versioning for the bucket. Once you create a bucket with S3 Object Lock enabled, you can't disable Object Lock or suspend versioning for the bucket. """ - pulumi.set(__self__, "mode", mode) + BucketObjectLockConfigurationRuleDefaultRetention._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + days=days, + years=years, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[str] = None, + days: Optional[int] = None, + years: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("mode", mode) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if years is not None: - pulumi.set(__self__, "years", years) + _setter("years", years) @property @pulumi.getter @@ -2522,7 +3334,22 @@ def __init__(__self__, *, """ :param 'BucketObjectLockConfigurationV2RuleDefaultRetentionArgs' default_retention: Configuration block for specifying the default Object Lock retention settings for new objects placed in the specified bucket. See below. """ - pulumi.set(__self__, "default_retention", default_retention) + BucketObjectLockConfigurationV2Rule._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_retention=default_retention, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_retention: Optional['outputs.BucketObjectLockConfigurationV2RuleDefaultRetention'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_retention is None and 'defaultRetention' in kwargs: + default_retention = kwargs['defaultRetention'] + if default_retention is None: + raise TypeError("Missing 'default_retention' argument") + + _setter("default_retention", default_retention) @property @pulumi.getter(name="defaultRetention") @@ -2544,12 +3371,27 @@ def __init__(__self__, *, :param str mode: Default Object Lock retention mode you want to apply to new objects placed in the specified bucket. Valid values: `COMPLIANCE`, `GOVERNANCE`. :param int years: Number of years that you want to specify for the default retention period. """ + BucketObjectLockConfigurationV2RuleDefaultRetention._configure( + lambda key, value: pulumi.set(__self__, key, value), + days=days, + mode=mode, + years=years, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days: Optional[int] = None, + mode: Optional[str] = None, + years: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if years is not None: - pulumi.set(__self__, "years", years) + _setter("years", years) @property @pulumi.getter @@ -2600,7 +3442,22 @@ def __init__(__self__, *, """ :param str object_ownership: Object ownership. Valid values: `BucketOwnerPreferred`, `ObjectWriter` or `BucketOwnerEnforced` """ - pulumi.set(__self__, "object_ownership", object_ownership) + BucketOwnershipControlsRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_ownership=object_ownership, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_ownership: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_ownership is None and 'objectOwnership' in kwargs: + object_ownership = kwargs['objectOwnership'] + if object_ownership is None: + raise TypeError("Missing 'object_ownership' argument") + + _setter("object_ownership", object_ownership) @property @pulumi.getter(name="objectOwnership") @@ -2655,22 +3512,59 @@ def __init__(__self__, *, :param int priority: Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. :param 'BucketReplicationConfigRuleSourceSelectionCriteriaArgs' source_selection_criteria: Specifies special object selection criteria. See below. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "status", status) + BucketReplicationConfigRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + status=status, + delete_marker_replication=delete_marker_replication, + existing_object_replication=existing_object_replication, + filter=filter, + id=id, + prefix=prefix, + priority=priority, + source_selection_criteria=source_selection_criteria, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.BucketReplicationConfigRuleDestination'] = None, + status: Optional[str] = None, + delete_marker_replication: Optional['outputs.BucketReplicationConfigRuleDeleteMarkerReplication'] = None, + existing_object_replication: Optional['outputs.BucketReplicationConfigRuleExistingObjectReplication'] = None, + filter: Optional['outputs.BucketReplicationConfigRuleFilter'] = None, + id: Optional[str] = None, + prefix: Optional[str] = None, + priority: Optional[int] = None, + source_selection_criteria: Optional['outputs.BucketReplicationConfigRuleSourceSelectionCriteria'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if delete_marker_replication is None and 'deleteMarkerReplication' in kwargs: + delete_marker_replication = kwargs['deleteMarkerReplication'] + if existing_object_replication is None and 'existingObjectReplication' in kwargs: + existing_object_replication = kwargs['existingObjectReplication'] + if source_selection_criteria is None and 'sourceSelectionCriteria' in kwargs: + source_selection_criteria = kwargs['sourceSelectionCriteria'] + + _setter("destination", destination) + _setter("status", status) if delete_marker_replication is not None: - pulumi.set(__self__, "delete_marker_replication", delete_marker_replication) + _setter("delete_marker_replication", delete_marker_replication) if existing_object_replication is not None: - pulumi.set(__self__, "existing_object_replication", existing_object_replication) + _setter("existing_object_replication", existing_object_replication) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if source_selection_criteria is not None: - pulumi.set(__self__, "source_selection_criteria", source_selection_criteria) + _setter("source_selection_criteria", source_selection_criteria) @property @pulumi.getter @@ -2755,7 +3649,20 @@ def __init__(__self__, *, """ :param str status: Whether delete markers should be replicated. Either `"Enabled"` or `"Disabled"`. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleDeleteMarkerReplication._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -2808,19 +3715,52 @@ def __init__(__self__, *, :param 'BucketReplicationConfigRuleDestinationReplicationTimeArgs' replication_time: Configuration block that specifies S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. See below. Replication Time Control must be used in conjunction with `metrics`. :param str storage_class: The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. """ - pulumi.set(__self__, "bucket", bucket) + BucketReplicationConfigRuleDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + access_control_translation=access_control_translation, + account=account, + encryption_configuration=encryption_configuration, + metrics=metrics, + replication_time=replication_time, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + access_control_translation: Optional['outputs.BucketReplicationConfigRuleDestinationAccessControlTranslation'] = None, + account: Optional[str] = None, + encryption_configuration: Optional['outputs.BucketReplicationConfigRuleDestinationEncryptionConfiguration'] = None, + metrics: Optional['outputs.BucketReplicationConfigRuleDestinationMetrics'] = None, + replication_time: Optional['outputs.BucketReplicationConfigRuleDestinationReplicationTime'] = None, + storage_class: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if access_control_translation is None and 'accessControlTranslation' in kwargs: + access_control_translation = kwargs['accessControlTranslation'] + if encryption_configuration is None and 'encryptionConfiguration' in kwargs: + encryption_configuration = kwargs['encryptionConfiguration'] + if replication_time is None and 'replicationTime' in kwargs: + replication_time = kwargs['replicationTime'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + + _setter("bucket", bucket) if access_control_translation is not None: - pulumi.set(__self__, "access_control_translation", access_control_translation) + _setter("access_control_translation", access_control_translation) if account is not None: - pulumi.set(__self__, "account", account) + _setter("account", account) if encryption_configuration is not None: - pulumi.set(__self__, "encryption_configuration", encryption_configuration) + _setter("encryption_configuration", encryption_configuration) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if replication_time is not None: - pulumi.set(__self__, "replication_time", replication_time) + _setter("replication_time", replication_time) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -2886,7 +3826,20 @@ def __init__(__self__, *, """ :param str owner: Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the Amazon S3 API Reference. Valid values: `Destination`. """ - pulumi.set(__self__, "owner", owner) + BucketReplicationConfigRuleDestinationAccessControlTranslation._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("owner", owner) @property @pulumi.getter @@ -2921,7 +3874,22 @@ def __init__(__self__, *, """ :param str replica_kms_key_id: ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. """ - pulumi.set(__self__, "replica_kms_key_id", replica_kms_key_id) + BucketReplicationConfigRuleDestinationEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + replica_kms_key_id=replica_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replica_kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replica_kms_key_id is None and 'replicaKmsKeyId' in kwargs: + replica_kms_key_id = kwargs['replicaKmsKeyId'] + if replica_kms_key_id is None: + raise TypeError("Missing 'replica_kms_key_id' argument") + + _setter("replica_kms_key_id", replica_kms_key_id) @property @pulumi.getter(name="replicaKmsKeyId") @@ -2958,9 +3926,26 @@ def __init__(__self__, *, :param str status: Status of the Destination Metrics. Either `"Enabled"` or `"Disabled"`. :param 'BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs' event_threshold: Configuration block that specifies the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event. See below. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleDestinationMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + event_threshold=event_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + event_threshold: Optional['outputs.BucketReplicationConfigRuleDestinationMetricsEventThreshold'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + if event_threshold is None and 'eventThreshold' in kwargs: + event_threshold = kwargs['eventThreshold'] + + _setter("status", status) if event_threshold is not None: - pulumi.set(__self__, "event_threshold", event_threshold) + _setter("event_threshold", event_threshold) @property @pulumi.getter @@ -2986,7 +3971,20 @@ def __init__(__self__, *, """ :param int minutes: Time in minutes. Valid values: `15`. """ - pulumi.set(__self__, "minutes", minutes) + BucketReplicationConfigRuleDestinationMetricsEventThreshold._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("minutes", minutes) @property @pulumi.getter @@ -3006,8 +4004,25 @@ def __init__(__self__, *, :param str status: Status of the Replication Time Control. Either `"Enabled"` or `"Disabled"`. :param 'BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs' time: Configuration block specifying the time by which replication should be complete for all objects and operations on objects. See below. """ - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "time", time) + BucketReplicationConfigRuleDestinationReplicationTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + time=time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + time: Optional['outputs.BucketReplicationConfigRuleDestinationReplicationTimeTime'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + if time is None: + raise TypeError("Missing 'time' argument") + + _setter("status", status) + _setter("time", time) @property @pulumi.getter @@ -3033,7 +4048,20 @@ def __init__(__self__, *, """ :param int minutes: Time in minutes. Valid values: `15`. """ - pulumi.set(__self__, "minutes", minutes) + BucketReplicationConfigRuleDestinationReplicationTimeTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is None: + raise TypeError("Missing 'minutes' argument") + + _setter("minutes", minutes) @property @pulumi.getter @@ -3051,7 +4079,20 @@ def __init__(__self__, *, """ :param str status: Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleExistingObjectReplication._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -3090,12 +4131,29 @@ def __init__(__self__, *, :param str prefix: Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. :param 'BucketReplicationConfigRuleFilterTagArgs' tag: Configuration block for specifying a tag key and value. See below. """ + BucketReplicationConfigRuleFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_=and_, + prefix=prefix, + tag=tag, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_: Optional['outputs.BucketReplicationConfigRuleFilterAnd'] = None, + prefix: Optional[str] = None, + tag: Optional['outputs.BucketReplicationConfigRuleFilterTag'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_ is None and 'and' in kwargs: + and_ = kwargs['and'] + if and_ is not None: - pulumi.set(__self__, "and_", and_) + _setter("and_", and_) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tag is not None: - pulumi.set(__self__, "tag", tag) + _setter("tag", tag) @property @pulumi.getter(name="and") @@ -3131,10 +4189,23 @@ def __init__(__self__, *, :param str prefix: Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. :param Mapping[str, str] tags: Map of tags (key and value pairs) that identifies a subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. """ + BucketReplicationConfigRuleFilterAnd._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -3162,8 +4233,25 @@ def __init__(__self__, *, :param str key: Name of the object key. :param str value: Value of the tag. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + BucketReplicationConfigRuleFilterTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -3210,10 +4298,27 @@ def __init__(__self__, *, :param 'BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs' replica_modifications: Configuration block that you can specify for selections for modifications on replicas. Amazon S3 doesn't replicate replica modifications by default. In the latest version of replication configuration (when `filter` is specified), you can specify this element and set the status to `Enabled` to replicate modifications on replicas. :param 'BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs' sse_kms_encrypted_objects: Configuration block for filter information for the selection of Amazon S3 objects encrypted with AWS KMS. If specified, `replica_kms_key_id` in `destination` `encryption_configuration` must be specified as well. """ + BucketReplicationConfigRuleSourceSelectionCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + replica_modifications=replica_modifications, + sse_kms_encrypted_objects=sse_kms_encrypted_objects, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + replica_modifications: Optional['outputs.BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications'] = None, + sse_kms_encrypted_objects: Optional['outputs.BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if replica_modifications is None and 'replicaModifications' in kwargs: + replica_modifications = kwargs['replicaModifications'] + if sse_kms_encrypted_objects is None and 'sseKmsEncryptedObjects' in kwargs: + sse_kms_encrypted_objects = kwargs['sseKmsEncryptedObjects'] + if replica_modifications is not None: - pulumi.set(__self__, "replica_modifications", replica_modifications) + _setter("replica_modifications", replica_modifications) if sse_kms_encrypted_objects is not None: - pulumi.set(__self__, "sse_kms_encrypted_objects", sse_kms_encrypted_objects) + _setter("sse_kms_encrypted_objects", sse_kms_encrypted_objects) @property @pulumi.getter(name="replicaModifications") @@ -3239,7 +4344,20 @@ def __init__(__self__, *, """ :param str status: Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -3257,7 +4375,20 @@ def __init__(__self__, *, """ :param str status: Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. """ - pulumi.set(__self__, "status", status) + BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -3277,8 +4408,25 @@ def __init__(__self__, *, :param str role: The ARN of the IAM role for Amazon S3 to assume when replicating the objects. :param Sequence['BucketReplicationConfigurationRuleArgs'] rules: Specifies the rules managing the replication (documented below). """ - pulumi.set(__self__, "role", role) - pulumi.set(__self__, "rules", rules) + BucketReplicationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + role=role, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role: Optional[str] = None, + rules: Optional[Sequence['outputs.BucketReplicationConfigurationRule']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role is None: + raise TypeError("Missing 'role' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("role", role) + _setter("rules", rules) @property @pulumi.getter @@ -3339,20 +4487,53 @@ def __init__(__self__, *, :param int priority: The priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. :param 'BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs' source_selection_criteria: Specifies special object selection criteria (documented below). """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "status", status) + BucketReplicationConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + status=status, + delete_marker_replication_status=delete_marker_replication_status, + filter=filter, + id=id, + prefix=prefix, + priority=priority, + source_selection_criteria=source_selection_criteria, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional['outputs.BucketReplicationConfigurationRuleDestination'] = None, + status: Optional[str] = None, + delete_marker_replication_status: Optional[str] = None, + filter: Optional['outputs.BucketReplicationConfigurationRuleFilter'] = None, + id: Optional[str] = None, + prefix: Optional[str] = None, + priority: Optional[int] = None, + source_selection_criteria: Optional['outputs.BucketReplicationConfigurationRuleSourceSelectionCriteria'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if delete_marker_replication_status is None and 'deleteMarkerReplicationStatus' in kwargs: + delete_marker_replication_status = kwargs['deleteMarkerReplicationStatus'] + if source_selection_criteria is None and 'sourceSelectionCriteria' in kwargs: + source_selection_criteria = kwargs['sourceSelectionCriteria'] + + _setter("destination", destination) + _setter("status", status) if delete_marker_replication_status is not None: - pulumi.set(__self__, "delete_marker_replication_status", delete_marker_replication_status) + _setter("delete_marker_replication_status", delete_marker_replication_status) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if source_selection_criteria is not None: - pulumi.set(__self__, "source_selection_criteria", source_selection_criteria) + _setter("source_selection_criteria", source_selection_criteria) @property @pulumi.getter @@ -3466,19 +4647,54 @@ def __init__(__self__, *, :param 'BucketReplicationConfigurationRuleDestinationReplicationTimeArgs' replication_time: Enables S3 Replication Time Control (S3 RTC) (documented below). :param str storage_class: The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. """ - pulumi.set(__self__, "bucket", bucket) + BucketReplicationConfigurationRuleDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + access_control_translation=access_control_translation, + account_id=account_id, + metrics=metrics, + replica_kms_key_id=replica_kms_key_id, + replication_time=replication_time, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + access_control_translation: Optional['outputs.BucketReplicationConfigurationRuleDestinationAccessControlTranslation'] = None, + account_id: Optional[str] = None, + metrics: Optional['outputs.BucketReplicationConfigurationRuleDestinationMetrics'] = None, + replica_kms_key_id: Optional[str] = None, + replication_time: Optional['outputs.BucketReplicationConfigurationRuleDestinationReplicationTime'] = None, + storage_class: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if access_control_translation is None and 'accessControlTranslation' in kwargs: + access_control_translation = kwargs['accessControlTranslation'] + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if replica_kms_key_id is None and 'replicaKmsKeyId' in kwargs: + replica_kms_key_id = kwargs['replicaKmsKeyId'] + if replication_time is None and 'replicationTime' in kwargs: + replication_time = kwargs['replicationTime'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + + _setter("bucket", bucket) if access_control_translation is not None: - pulumi.set(__self__, "access_control_translation", access_control_translation) + _setter("access_control_translation", access_control_translation) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if replica_kms_key_id is not None: - pulumi.set(__self__, "replica_kms_key_id", replica_kms_key_id) + _setter("replica_kms_key_id", replica_kms_key_id) if replication_time is not None: - pulumi.set(__self__, "replication_time", replication_time) + _setter("replication_time", replication_time) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -3545,7 +4761,20 @@ def __init__(__self__, *, """ :param str owner: The override value for the owner on replicated objects. Currently only `Destination` is supported. """ - pulumi.set(__self__, "owner", owner) + BucketReplicationConfigurationRuleDestinationAccessControlTranslation._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("owner", owner) @property @pulumi.getter @@ -3565,10 +4794,23 @@ def __init__(__self__, *, :param int minutes: Threshold within which objects are to be replicated. The only valid value is `15`. :param str status: The status of replication metrics. Either `Enabled` or `Disabled`. """ + BucketReplicationConfigurationRuleDestinationMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[int] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -3596,10 +4838,23 @@ def __init__(__self__, *, :param int minutes: Threshold within which objects are to be replicated. The only valid value is `15`. :param str status: The status of RTC. Either `Enabled` or `Disabled`. """ + BucketReplicationConfigurationRuleDestinationReplicationTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[int] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -3628,10 +4883,23 @@ def __init__(__self__, *, :param Mapping[str, str] tags: A map of tags that identifies subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. """ + BucketReplicationConfigurationRuleFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -3676,8 +4944,21 @@ def __init__(__self__, *, :param 'BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs' sse_kms_encrypted_objects: Match SSE-KMS encrypted objects (documented below). If specified, `replica_kms_key_id` in `destination` must be specified as well. """ + BucketReplicationConfigurationRuleSourceSelectionCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_kms_encrypted_objects=sse_kms_encrypted_objects, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_kms_encrypted_objects: Optional['outputs.BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_kms_encrypted_objects is None and 'sseKmsEncryptedObjects' in kwargs: + sse_kms_encrypted_objects = kwargs['sseKmsEncryptedObjects'] + if sse_kms_encrypted_objects is not None: - pulumi.set(__self__, "sse_kms_encrypted_objects", sse_kms_encrypted_objects) + _setter("sse_kms_encrypted_objects", sse_kms_encrypted_objects) @property @pulumi.getter(name="sseKmsEncryptedObjects") @@ -3696,7 +4977,20 @@ def __init__(__self__, *, """ :param bool enabled: Boolean which indicates if this criteria is enabled. """ - pulumi.set(__self__, "enabled", enabled) + BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -3714,7 +5008,20 @@ def __init__(__self__, *, """ :param 'BucketServerSideEncryptionConfigurationRuleArgs' rule: A single object for server-side encryption by default configuration. (documented below) """ - pulumi.set(__self__, "rule", rule) + BucketServerSideEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule=rule, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule: Optional['outputs.BucketServerSideEncryptionConfigurationRule'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule is None: + raise TypeError("Missing 'rule' argument") + + _setter("rule", rule) @property @pulumi.getter @@ -3753,9 +5060,28 @@ def __init__(__self__, *, :param 'BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs' apply_server_side_encryption_by_default: A single object for setting server-side encryption by default. (documented below) :param bool bucket_key_enabled: Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. """ - pulumi.set(__self__, "apply_server_side_encryption_by_default", apply_server_side_encryption_by_default) + BucketServerSideEncryptionConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_server_side_encryption_by_default=apply_server_side_encryption_by_default, + bucket_key_enabled=bucket_key_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_server_side_encryption_by_default: Optional['outputs.BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault'] = None, + bucket_key_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_server_side_encryption_by_default is None and 'applyServerSideEncryptionByDefault' in kwargs: + apply_server_side_encryption_by_default = kwargs['applyServerSideEncryptionByDefault'] + if apply_server_side_encryption_by_default is None: + raise TypeError("Missing 'apply_server_side_encryption_by_default' argument") + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + + _setter("apply_server_side_encryption_by_default", apply_server_side_encryption_by_default) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) @property @pulumi.getter(name="applyServerSideEncryptionByDefault") @@ -3802,9 +5128,28 @@ def __init__(__self__, *, :param str sse_algorithm: The server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` :param str kms_master_key_id: The AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sse_algorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sse_algorithm` is `aws:kms`. """ - pulumi.set(__self__, "sse_algorithm", sse_algorithm) + BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_algorithm=sse_algorithm, + kms_master_key_id=kms_master_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_algorithm: Optional[str] = None, + kms_master_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_algorithm is None and 'sseAlgorithm' in kwargs: + sse_algorithm = kwargs['sseAlgorithm'] + if sse_algorithm is None: + raise TypeError("Missing 'sse_algorithm' argument") + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + + _setter("sse_algorithm", sse_algorithm) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) @property @pulumi.getter(name="sseAlgorithm") @@ -3851,10 +5196,27 @@ def __init__(__self__, *, :param 'BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs' apply_server_side_encryption_by_default: Single object for setting server-side encryption by default. See below. :param bool bucket_key_enabled: Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. """ + BucketServerSideEncryptionConfigurationV2Rule._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_server_side_encryption_by_default=apply_server_side_encryption_by_default, + bucket_key_enabled=bucket_key_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_server_side_encryption_by_default: Optional['outputs.BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault'] = None, + bucket_key_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_server_side_encryption_by_default is None and 'applyServerSideEncryptionByDefault' in kwargs: + apply_server_side_encryption_by_default = kwargs['applyServerSideEncryptionByDefault'] + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + if apply_server_side_encryption_by_default is not None: - pulumi.set(__self__, "apply_server_side_encryption_by_default", apply_server_side_encryption_by_default) + _setter("apply_server_side_encryption_by_default", apply_server_side_encryption_by_default) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) @property @pulumi.getter(name="applyServerSideEncryptionByDefault") @@ -3901,9 +5263,28 @@ def __init__(__self__, *, :param str sse_algorithm: Server-side encryption algorithm to use. Valid values are `AES256`, `aws:kms`, and `aws:kms:dsse` :param str kms_master_key_id: AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sse_algorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sse_algorithm` is `aws:kms`. """ - pulumi.set(__self__, "sse_algorithm", sse_algorithm) + BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_algorithm=sse_algorithm, + kms_master_key_id=kms_master_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_algorithm: Optional[str] = None, + kms_master_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_algorithm is None and 'sseAlgorithm' in kwargs: + sse_algorithm = kwargs['sseAlgorithm'] + if sse_algorithm is None: + raise TypeError("Missing 'sse_algorithm' argument") + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + + _setter("sse_algorithm", sse_algorithm) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) @property @pulumi.getter(name="sseAlgorithm") @@ -3962,14 +5343,47 @@ def __init__(__self__, *, :param Sequence[str] expose_headers: One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript `XMLHttpRequest` object). :param int max_age_seconds: Specifies time in seconds that browser can cache the response for a preflight request. """ - pulumi.set(__self__, "allowed_methods", allowed_methods) - pulumi.set(__self__, "allowed_origins", allowed_origins) + BucketV2CorsRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_methods=allowed_methods, + allowed_origins=allowed_origins, + allowed_headers=allowed_headers, + expose_headers=expose_headers, + max_age_seconds=max_age_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_methods: Optional[Sequence[str]] = None, + allowed_origins: Optional[Sequence[str]] = None, + allowed_headers: Optional[Sequence[str]] = None, + expose_headers: Optional[Sequence[str]] = None, + max_age_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_methods is None and 'allowedMethods' in kwargs: + allowed_methods = kwargs['allowedMethods'] + if allowed_methods is None: + raise TypeError("Missing 'allowed_methods' argument") + if allowed_origins is None and 'allowedOrigins' in kwargs: + allowed_origins = kwargs['allowedOrigins'] + if allowed_origins is None: + raise TypeError("Missing 'allowed_origins' argument") + if allowed_headers is None and 'allowedHeaders' in kwargs: + allowed_headers = kwargs['allowedHeaders'] + if expose_headers is None and 'exposeHeaders' in kwargs: + expose_headers = kwargs['exposeHeaders'] + if max_age_seconds is None and 'maxAgeSeconds' in kwargs: + max_age_seconds = kwargs['maxAgeSeconds'] + + _setter("allowed_methods", allowed_methods) + _setter("allowed_origins", allowed_origins) if allowed_headers is not None: - pulumi.set(__self__, "allowed_headers", allowed_headers) + _setter("allowed_headers", allowed_headers) if expose_headers is not None: - pulumi.set(__self__, "expose_headers", expose_headers) + _setter("expose_headers", expose_headers) if max_age_seconds is not None: - pulumi.set(__self__, "max_age_seconds", max_age_seconds) + _setter("max_age_seconds", max_age_seconds) @property @pulumi.getter(name="allowedMethods") @@ -4025,12 +5439,33 @@ def __init__(__self__, *, :param str id: Canonical user id to grant for. Used only when `type` is `CanonicalUser`. :param str uri: Uri address to grant for. Used only when `type` is `Group`. """ - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "type", type) + BucketV2Grant._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + type=type, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[Sequence[str]] = None, + type: Optional[str] = None, + id: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("permissions", permissions) + _setter("type", type) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter @@ -4109,23 +5544,58 @@ def __init__(__self__, *, :param Mapping[str, str] tags: Specifies object tags key and value. :param Sequence['BucketV2LifecycleRuleTransitionArgs'] transitions: Specifies a period in the object's transitions. See Transition below for details. """ - pulumi.set(__self__, "enabled", enabled) + BucketV2LifecycleRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + abort_incomplete_multipart_upload_days=abort_incomplete_multipart_upload_days, + expirations=expirations, + id=id, + noncurrent_version_expirations=noncurrent_version_expirations, + noncurrent_version_transitions=noncurrent_version_transitions, + prefix=prefix, + tags=tags, + transitions=transitions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + abort_incomplete_multipart_upload_days: Optional[int] = None, + expirations: Optional[Sequence['outputs.BucketV2LifecycleRuleExpiration']] = None, + id: Optional[str] = None, + noncurrent_version_expirations: Optional[Sequence['outputs.BucketV2LifecycleRuleNoncurrentVersionExpiration']] = None, + noncurrent_version_transitions: Optional[Sequence['outputs.BucketV2LifecycleRuleNoncurrentVersionTransition']] = None, + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + transitions: Optional[Sequence['outputs.BucketV2LifecycleRuleTransition']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if abort_incomplete_multipart_upload_days is None and 'abortIncompleteMultipartUploadDays' in kwargs: + abort_incomplete_multipart_upload_days = kwargs['abortIncompleteMultipartUploadDays'] + if noncurrent_version_expirations is None and 'noncurrentVersionExpirations' in kwargs: + noncurrent_version_expirations = kwargs['noncurrentVersionExpirations'] + if noncurrent_version_transitions is None and 'noncurrentVersionTransitions' in kwargs: + noncurrent_version_transitions = kwargs['noncurrentVersionTransitions'] + + _setter("enabled", enabled) if abort_incomplete_multipart_upload_days is not None: - pulumi.set(__self__, "abort_incomplete_multipart_upload_days", abort_incomplete_multipart_upload_days) + _setter("abort_incomplete_multipart_upload_days", abort_incomplete_multipart_upload_days) if expirations is not None: - pulumi.set(__self__, "expirations", expirations) + _setter("expirations", expirations) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if noncurrent_version_expirations is not None: - pulumi.set(__self__, "noncurrent_version_expirations", noncurrent_version_expirations) + _setter("noncurrent_version_expirations", noncurrent_version_expirations) if noncurrent_version_transitions is not None: - pulumi.set(__self__, "noncurrent_version_transitions", noncurrent_version_transitions) + _setter("noncurrent_version_transitions", noncurrent_version_transitions) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if transitions is not None: - pulumi.set(__self__, "transitions", transitions) + _setter("transitions", transitions) @property @pulumi.getter @@ -4228,12 +5698,29 @@ def __init__(__self__, *, :param int days: Specifies the number of days after object creation when the specific rule action takes effect. :param bool expired_object_delete_marker: On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. """ + BucketV2LifecycleRuleExpiration._configure( + lambda key, value: pulumi.set(__self__, key, value), + date=date, + days=days, + expired_object_delete_marker=expired_object_delete_marker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date: Optional[str] = None, + days: Optional[int] = None, + expired_object_delete_marker: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expired_object_delete_marker is None and 'expiredObjectDeleteMarker' in kwargs: + expired_object_delete_marker = kwargs['expiredObjectDeleteMarker'] + if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if expired_object_delete_marker is not None: - pulumi.set(__self__, "expired_object_delete_marker", expired_object_delete_marker) + _setter("expired_object_delete_marker", expired_object_delete_marker) @property @pulumi.getter @@ -4267,8 +5754,19 @@ def __init__(__self__, *, """ :param int days: Specifies the number of days noncurrent object versions expire. """ + BucketV2LifecycleRuleNoncurrentVersionExpiration._configure( + lambda key, value: pulumi.set(__self__, key, value), + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter @@ -4305,9 +5803,26 @@ def __init__(__self__, *, :param str storage_class: Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. :param int days: Specifies the number of days noncurrent object versions transition. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketV2LifecycleRuleNoncurrentVersionTransition._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[str] = None, + days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -4354,11 +5869,30 @@ def __init__(__self__, *, :param str date: Specifies the date after which you want the corresponding action to take effect. :param int days: Specifies the number of days after object creation when the specific rule action takes effect. """ - pulumi.set(__self__, "storage_class", storage_class) + BucketV2LifecycleRuleTransition._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_class=storage_class, + date=date, + days=days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_class: Optional[str] = None, + date: Optional[str] = None, + days: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + + _setter("storage_class", storage_class) if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) @property @pulumi.getter(name="storageClass") @@ -4413,9 +5947,28 @@ def __init__(__self__, *, :param str target_bucket: Name of the bucket that will receive the log objects. :param str target_prefix: To specify a key prefix for log objects. """ - pulumi.set(__self__, "target_bucket", target_bucket) + BucketV2Logging._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_bucket=target_bucket, + target_prefix=target_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_bucket: Optional[str] = None, + target_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_bucket is None and 'targetBucket' in kwargs: + target_bucket = kwargs['targetBucket'] + if target_bucket is None: + raise TypeError("Missing 'target_bucket' argument") + if target_prefix is None and 'targetPrefix' in kwargs: + target_prefix = kwargs['targetPrefix'] + + _setter("target_bucket", target_bucket) if target_prefix is not None: - pulumi.set(__self__, "target_prefix", target_prefix) + _setter("target_prefix", target_prefix) @property @pulumi.getter(name="targetBucket") @@ -4460,10 +6013,25 @@ def __init__(__self__, *, :param str object_lock_enabled: Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. :param Sequence['BucketV2ObjectLockConfigurationRuleArgs'] rules: Object Lock rule in place for this bucket (documented below). """ + BucketV2ObjectLockConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + object_lock_enabled=object_lock_enabled, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + object_lock_enabled: Optional[str] = None, + rules: Optional[Sequence['outputs.BucketV2ObjectLockConfigurationRule']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if object_lock_enabled is None and 'objectLockEnabled' in kwargs: + object_lock_enabled = kwargs['objectLockEnabled'] + if object_lock_enabled is not None: - pulumi.set(__self__, "object_lock_enabled", object_lock_enabled) + _setter("object_lock_enabled", object_lock_enabled) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) @property @pulumi.getter(name="objectLockEnabled") @@ -4512,7 +6080,22 @@ def __init__(__self__, *, """ :param Sequence['BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs'] default_retentions: Default retention period that you want to apply to new objects placed in this bucket (documented below). """ - pulumi.set(__self__, "default_retentions", default_retentions) + BucketV2ObjectLockConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_retentions=default_retentions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_retentions: Optional[Sequence['outputs.BucketV2ObjectLockConfigurationRuleDefaultRetention']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_retentions is None and 'defaultRetentions' in kwargs: + default_retentions = kwargs['defaultRetentions'] + if default_retentions is None: + raise TypeError("Missing 'default_retentions' argument") + + _setter("default_retentions", default_retentions) @property @pulumi.getter(name="defaultRetentions") @@ -4534,11 +6117,28 @@ def __init__(__self__, *, :param int days: Number of days that you want to specify for the default retention period. :param int years: Number of years that you want to specify for the default retention period. """ - pulumi.set(__self__, "mode", mode) + BucketV2ObjectLockConfigurationRuleDefaultRetention._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + days=days, + years=years, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[str] = None, + days: Optional[int] = None, + years: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("mode", mode) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if years is not None: - pulumi.set(__self__, "years", years) + _setter("years", years) @property @pulumi.getter @@ -4574,8 +6174,25 @@ def __init__(__self__, *, :param str role: ARN of the IAM role for Amazon S3 to assume when replicating the objects. :param Sequence['BucketV2ReplicationConfigurationRuleArgs'] rules: Specifies the rules managing the replication (documented below). """ - pulumi.set(__self__, "role", role) - pulumi.set(__self__, "rules", rules) + BucketV2ReplicationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + role=role, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role: Optional[str] = None, + rules: Optional[Sequence['outputs.BucketV2ReplicationConfigurationRule']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role is None: + raise TypeError("Missing 'role' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("role", role) + _setter("rules", rules) @property @pulumi.getter @@ -4634,20 +6251,53 @@ def __init__(__self__, *, :param int priority: Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. :param Sequence['BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs'] source_selection_criterias: Specifies special object selection criteria (documented below). """ - pulumi.set(__self__, "destinations", destinations) - pulumi.set(__self__, "status", status) + BucketV2ReplicationConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + destinations=destinations, + status=status, + delete_marker_replication_status=delete_marker_replication_status, + filters=filters, + id=id, + prefix=prefix, + priority=priority, + source_selection_criterias=source_selection_criterias, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destinations: Optional[Sequence['outputs.BucketV2ReplicationConfigurationRuleDestination']] = None, + status: Optional[str] = None, + delete_marker_replication_status: Optional[str] = None, + filters: Optional[Sequence['outputs.BucketV2ReplicationConfigurationRuleFilter']] = None, + id: Optional[str] = None, + prefix: Optional[str] = None, + priority: Optional[int] = None, + source_selection_criterias: Optional[Sequence['outputs.BucketV2ReplicationConfigurationRuleSourceSelectionCriteria']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destinations is None: + raise TypeError("Missing 'destinations' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if delete_marker_replication_status is None and 'deleteMarkerReplicationStatus' in kwargs: + delete_marker_replication_status = kwargs['deleteMarkerReplicationStatus'] + if source_selection_criterias is None and 'sourceSelectionCriterias' in kwargs: + source_selection_criterias = kwargs['sourceSelectionCriterias'] + + _setter("destinations", destinations) + _setter("status", status) if delete_marker_replication_status is not None: - pulumi.set(__self__, "delete_marker_replication_status", delete_marker_replication_status) + _setter("delete_marker_replication_status", delete_marker_replication_status) if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if source_selection_criterias is not None: - pulumi.set(__self__, "source_selection_criterias", source_selection_criterias) + _setter("source_selection_criterias", source_selection_criterias) @property @pulumi.getter @@ -4759,19 +6409,54 @@ def __init__(__self__, *, :param Sequence['BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs'] replication_times: Enables S3 Replication Time Control (S3 RTC) (documented below). :param str storage_class: The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. """ - pulumi.set(__self__, "bucket", bucket) + BucketV2ReplicationConfigurationRuleDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + access_control_translations=access_control_translations, + account_id=account_id, + metrics=metrics, + replica_kms_key_id=replica_kms_key_id, + replication_times=replication_times, + storage_class=storage_class, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + access_control_translations: Optional[Sequence['outputs.BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation']] = None, + account_id: Optional[str] = None, + metrics: Optional[Sequence['outputs.BucketV2ReplicationConfigurationRuleDestinationMetric']] = None, + replica_kms_key_id: Optional[str] = None, + replication_times: Optional[Sequence['outputs.BucketV2ReplicationConfigurationRuleDestinationReplicationTime']] = None, + storage_class: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if access_control_translations is None and 'accessControlTranslations' in kwargs: + access_control_translations = kwargs['accessControlTranslations'] + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if replica_kms_key_id is None and 'replicaKmsKeyId' in kwargs: + replica_kms_key_id = kwargs['replicaKmsKeyId'] + if replication_times is None and 'replicationTimes' in kwargs: + replication_times = kwargs['replicationTimes'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + + _setter("bucket", bucket) if access_control_translations is not None: - pulumi.set(__self__, "access_control_translations", access_control_translations) + _setter("access_control_translations", access_control_translations) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if metrics is not None: - pulumi.set(__self__, "metrics", metrics) + _setter("metrics", metrics) if replica_kms_key_id is not None: - pulumi.set(__self__, "replica_kms_key_id", replica_kms_key_id) + _setter("replica_kms_key_id", replica_kms_key_id) if replication_times is not None: - pulumi.set(__self__, "replication_times", replication_times) + _setter("replication_times", replication_times) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) @property @pulumi.getter @@ -4835,7 +6520,20 @@ def storage_class(self) -> Optional[str]: class BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation(dict): def __init__(__self__, *, owner: str): - pulumi.set(__self__, "owner", owner) + BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + + _setter("owner", owner) @property @pulumi.getter @@ -4852,10 +6550,23 @@ def __init__(__self__, *, :param int minutes: Threshold within which objects are to be replicated. The only valid value is `15`. :param str status: Status of replication metrics. Either `Enabled` or `Disabled`. """ + BucketV2ReplicationConfigurationRuleDestinationMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[int] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -4883,10 +6594,23 @@ def __init__(__self__, *, :param int minutes: Threshold within which objects are to be replicated. The only valid value is `15`. :param str status: Status of RTC. Either `Enabled` or `Disabled`. """ + BucketV2ReplicationConfigurationRuleDestinationReplicationTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + minutes=minutes, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minutes: Optional[int] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minutes is not None: - pulumi.set(__self__, "minutes", minutes) + _setter("minutes", minutes) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -4915,10 +6639,23 @@ def __init__(__self__, *, :param Mapping[str, str] tags: A map of tags that identifies subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. """ + BucketV2ReplicationConfigurationRuleFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -4963,8 +6700,21 @@ def __init__(__self__, *, :param Sequence['BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs'] sse_kms_encrypted_objects: Match SSE-KMS encrypted objects (documented below). If specified, `replica_kms_key_id` in `destination` must be specified as well. """ + BucketV2ReplicationConfigurationRuleSourceSelectionCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_kms_encrypted_objects=sse_kms_encrypted_objects, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_kms_encrypted_objects: Optional[Sequence['outputs.BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_kms_encrypted_objects is None and 'sseKmsEncryptedObjects' in kwargs: + sse_kms_encrypted_objects = kwargs['sseKmsEncryptedObjects'] + if sse_kms_encrypted_objects is not None: - pulumi.set(__self__, "sse_kms_encrypted_objects", sse_kms_encrypted_objects) + _setter("sse_kms_encrypted_objects", sse_kms_encrypted_objects) @property @pulumi.getter(name="sseKmsEncryptedObjects") @@ -4983,7 +6733,20 @@ def __init__(__self__, *, """ :param bool enabled: Boolean which indicates if this criteria is enabled. """ - pulumi.set(__self__, "enabled", enabled) + BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -5001,7 +6764,20 @@ def __init__(__self__, *, """ :param Sequence['BucketV2ServerSideEncryptionConfigurationRuleArgs'] rules: Single object for server-side encryption by default configuration. (documented below) """ - pulumi.set(__self__, "rules", rules) + BucketV2ServerSideEncryptionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rules: Optional[Sequence['outputs.BucketV2ServerSideEncryptionConfigurationRule']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("rules", rules) @property @pulumi.getter @@ -5040,9 +6816,28 @@ def __init__(__self__, *, :param Sequence['BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs'] apply_server_side_encryption_by_defaults: Single object for setting server-side encryption by default. (documented below) :param bool bucket_key_enabled: Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. """ - pulumi.set(__self__, "apply_server_side_encryption_by_defaults", apply_server_side_encryption_by_defaults) + BucketV2ServerSideEncryptionConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_server_side_encryption_by_defaults=apply_server_side_encryption_by_defaults, + bucket_key_enabled=bucket_key_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_server_side_encryption_by_defaults: Optional[Sequence['outputs.BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault']] = None, + bucket_key_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_server_side_encryption_by_defaults is None and 'applyServerSideEncryptionByDefaults' in kwargs: + apply_server_side_encryption_by_defaults = kwargs['applyServerSideEncryptionByDefaults'] + if apply_server_side_encryption_by_defaults is None: + raise TypeError("Missing 'apply_server_side_encryption_by_defaults' argument") + if bucket_key_enabled is None and 'bucketKeyEnabled' in kwargs: + bucket_key_enabled = kwargs['bucketKeyEnabled'] + + _setter("apply_server_side_encryption_by_defaults", apply_server_side_encryption_by_defaults) if bucket_key_enabled is not None: - pulumi.set(__self__, "bucket_key_enabled", bucket_key_enabled) + _setter("bucket_key_enabled", bucket_key_enabled) @property @pulumi.getter(name="applyServerSideEncryptionByDefaults") @@ -5089,9 +6884,28 @@ def __init__(__self__, *, :param str sse_algorithm: Server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` :param str kms_master_key_id: AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sse_algorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sse_algorithm` is `aws:kms`. """ - pulumi.set(__self__, "sse_algorithm", sse_algorithm) + BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_algorithm=sse_algorithm, + kms_master_key_id=kms_master_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_algorithm: Optional[str] = None, + kms_master_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_algorithm is None and 'sseAlgorithm' in kwargs: + sse_algorithm = kwargs['sseAlgorithm'] + if sse_algorithm is None: + raise TypeError("Missing 'sse_algorithm' argument") + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + + _setter("sse_algorithm", sse_algorithm) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) @property @pulumi.getter(name="sseAlgorithm") @@ -5136,10 +6950,25 @@ def __init__(__self__, *, :param bool enabled: Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. :param bool mfa_delete: Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS """ + BucketV2Versioning._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + mfa_delete=mfa_delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + mfa_delete: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mfa_delete is None and 'mfaDelete' in kwargs: + mfa_delete = kwargs['mfaDelete'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if mfa_delete is not None: - pulumi.set(__self__, "mfa_delete", mfa_delete) + _setter("mfa_delete", mfa_delete) @property @pulumi.getter @@ -5195,14 +7024,39 @@ def __init__(__self__, *, :param str routing_rules: JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) describing redirect behavior and when redirects are applied. """ + BucketV2Website._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_document=error_document, + index_document=index_document, + redirect_all_requests_to=redirect_all_requests_to, + routing_rules=routing_rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_document: Optional[str] = None, + index_document: Optional[str] = None, + redirect_all_requests_to: Optional[str] = None, + routing_rules: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_document is None and 'errorDocument' in kwargs: + error_document = kwargs['errorDocument'] + if index_document is None and 'indexDocument' in kwargs: + index_document = kwargs['indexDocument'] + if redirect_all_requests_to is None and 'redirectAllRequestsTo' in kwargs: + redirect_all_requests_to = kwargs['redirectAllRequestsTo'] + if routing_rules is None and 'routingRules' in kwargs: + routing_rules = kwargs['routingRules'] + if error_document is not None: - pulumi.set(__self__, "error_document", error_document) + _setter("error_document", error_document) if index_document is not None: - pulumi.set(__self__, "index_document", index_document) + _setter("index_document", index_document) if redirect_all_requests_to is not None: - pulumi.set(__self__, "redirect_all_requests_to", redirect_all_requests_to) + _setter("redirect_all_requests_to", redirect_all_requests_to) if routing_rules is not None: - pulumi.set(__self__, "routing_rules", routing_rules) + _setter("routing_rules", routing_rules) @property @pulumi.getter(name="errorDocument") @@ -5264,10 +7118,25 @@ def __init__(__self__, *, :param bool enabled: Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. :param bool mfa_delete: Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS """ + BucketVersioning._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + mfa_delete=mfa_delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + mfa_delete: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mfa_delete is None and 'mfaDelete' in kwargs: + mfa_delete = kwargs['mfaDelete'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if mfa_delete is not None: - pulumi.set(__self__, "mfa_delete", mfa_delete) + _setter("mfa_delete", mfa_delete) @property @pulumi.getter @@ -5312,9 +7181,26 @@ def __init__(__self__, *, :param str status: Versioning state of the bucket. Valid values: `Enabled`, `Suspended`, or `Disabled`. `Disabled` should only be used when creating or importing resources that correspond to unversioned S3 buckets. :param str mfa_delete: Specifies whether MFA delete is enabled in the bucket versioning configuration. Valid values: `Enabled` or `Disabled`. """ - pulumi.set(__self__, "status", status) + BucketVersioningV2VersioningConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + mfa_delete=mfa_delete, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[str] = None, + mfa_delete: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + if mfa_delete is None and 'mfaDelete' in kwargs: + mfa_delete = kwargs['mfaDelete'] + + _setter("status", status) if mfa_delete is not None: - pulumi.set(__self__, "mfa_delete", mfa_delete) + _setter("mfa_delete", mfa_delete) @property @pulumi.getter @@ -5372,14 +7258,39 @@ def __init__(__self__, *, The `CORS` object supports the following: """ + BucketWebsite._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_document=error_document, + index_document=index_document, + redirect_all_requests_to=redirect_all_requests_to, + routing_rules=routing_rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_document: Optional[str] = None, + index_document: Optional[str] = None, + redirect_all_requests_to: Optional[str] = None, + routing_rules: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_document is None and 'errorDocument' in kwargs: + error_document = kwargs['errorDocument'] + if index_document is None and 'indexDocument' in kwargs: + index_document = kwargs['indexDocument'] + if redirect_all_requests_to is None and 'redirectAllRequestsTo' in kwargs: + redirect_all_requests_to = kwargs['redirectAllRequestsTo'] + if routing_rules is None and 'routingRules' in kwargs: + routing_rules = kwargs['routingRules'] + if error_document is not None: - pulumi.set(__self__, "error_document", error_document) + _setter("error_document", error_document) if index_document is not None: - pulumi.set(__self__, "index_document", index_document) + _setter("index_document", index_document) if redirect_all_requests_to is not None: - pulumi.set(__self__, "redirect_all_requests_to", redirect_all_requests_to) + _setter("redirect_all_requests_to", redirect_all_requests_to) if routing_rules is not None: - pulumi.set(__self__, "routing_rules", routing_rules) + _setter("routing_rules", routing_rules) @property @pulumi.getter(name="errorDocument") @@ -5424,7 +7335,20 @@ def __init__(__self__, *, """ :param str key: Object key name to use when a 4XX class error occurs. """ - pulumi.set(__self__, "key", key) + BucketWebsiteConfigurationV2ErrorDocument._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("key", key) @property @pulumi.getter @@ -5444,7 +7368,20 @@ def __init__(__self__, *, For example, if the suffix is `index.html` and you make a request to `samplebucket/images/`, the data that is returned will be for the object with the key name `images/index.html`. The suffix must not be empty and must not include a slash character. """ - pulumi.set(__self__, "suffix", suffix) + BucketWebsiteConfigurationV2IndexDocument._configure( + lambda key, value: pulumi.set(__self__, key, value), + suffix=suffix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + suffix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if suffix is None: + raise TypeError("Missing 'suffix' argument") + + _setter("suffix", suffix) @property @pulumi.getter @@ -5483,9 +7420,26 @@ def __init__(__self__, *, :param str host_name: Name of the host where requests are redirected. :param str protocol: Protocol to use when redirecting requests. The default is the protocol that is used in the original request. Valid values: `http`, `https`. """ - pulumi.set(__self__, "host_name", host_name) + BucketWebsiteConfigurationV2RedirectAllRequestsTo._configure( + lambda key, value: pulumi.set(__self__, key, value), + host_name=host_name, + protocol=protocol, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host_name: Optional[str] = None, + protocol: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_name is None and 'hostName' in kwargs: + host_name = kwargs['hostName'] + if host_name is None: + raise TypeError("Missing 'host_name' argument") + + _setter("host_name", host_name) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) @property @pulumi.getter(name="hostName") @@ -5513,9 +7467,24 @@ def __init__(__self__, *, :param 'BucketWebsiteConfigurationV2RoutingRuleRedirectArgs' redirect: Configuration block for redirect information. See below. :param 'BucketWebsiteConfigurationV2RoutingRuleConditionArgs' condition: Configuration block for describing a condition that must be met for the specified redirect to apply. See below. """ - pulumi.set(__self__, "redirect", redirect) + BucketWebsiteConfigurationV2RoutingRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + redirect=redirect, + condition=condition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + redirect: Optional['outputs.BucketWebsiteConfigurationV2RoutingRuleRedirect'] = None, + condition: Optional['outputs.BucketWebsiteConfigurationV2RoutingRuleCondition'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if redirect is None: + raise TypeError("Missing 'redirect' argument") + + _setter("redirect", redirect) if condition is not None: - pulumi.set(__self__, "condition", condition) + _setter("condition", condition) @property @pulumi.getter @@ -5562,10 +7531,27 @@ def __init__(__self__, *, :param str http_error_code_returned_equals: HTTP error code when the redirect is applied. If specified with `key_prefix_equals`, then both must be true for the redirect to be applied. :param str key_prefix_equals: Object key name prefix when the redirect is applied. If specified with `http_error_code_returned_equals`, then both must be true for the redirect to be applied. """ + BucketWebsiteConfigurationV2RoutingRuleCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_error_code_returned_equals=http_error_code_returned_equals, + key_prefix_equals=key_prefix_equals, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_error_code_returned_equals: Optional[str] = None, + key_prefix_equals: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_error_code_returned_equals is None and 'httpErrorCodeReturnedEquals' in kwargs: + http_error_code_returned_equals = kwargs['httpErrorCodeReturnedEquals'] + if key_prefix_equals is None and 'keyPrefixEquals' in kwargs: + key_prefix_equals = kwargs['keyPrefixEquals'] + if http_error_code_returned_equals is not None: - pulumi.set(__self__, "http_error_code_returned_equals", http_error_code_returned_equals) + _setter("http_error_code_returned_equals", http_error_code_returned_equals) if key_prefix_equals is not None: - pulumi.set(__self__, "key_prefix_equals", key_prefix_equals) + _setter("key_prefix_equals", key_prefix_equals) @property @pulumi.getter(name="httpErrorCodeReturnedEquals") @@ -5622,16 +7608,43 @@ def __init__(__self__, *, :param str replace_key_prefix_with: Object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix `docs/` (objects in the `docs/` folder) to `documents/`, you can set a `condition` block with `key_prefix_equals` set to `docs/` and in the `redirect` set `replace_key_prefix_with` to `/documents`. :param str replace_key_with: Specific object key to use in the redirect request. For example, redirect request to `error.html`. """ + BucketWebsiteConfigurationV2RoutingRuleRedirect._configure( + lambda key, value: pulumi.set(__self__, key, value), + host_name=host_name, + http_redirect_code=http_redirect_code, + protocol=protocol, + replace_key_prefix_with=replace_key_prefix_with, + replace_key_with=replace_key_with, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + host_name: Optional[str] = None, + http_redirect_code: Optional[str] = None, + protocol: Optional[str] = None, + replace_key_prefix_with: Optional[str] = None, + replace_key_with: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if host_name is None and 'hostName' in kwargs: + host_name = kwargs['hostName'] + if http_redirect_code is None and 'httpRedirectCode' in kwargs: + http_redirect_code = kwargs['httpRedirectCode'] + if replace_key_prefix_with is None and 'replaceKeyPrefixWith' in kwargs: + replace_key_prefix_with = kwargs['replaceKeyPrefixWith'] + if replace_key_with is None and 'replaceKeyWith' in kwargs: + replace_key_with = kwargs['replaceKeyWith'] + if host_name is not None: - pulumi.set(__self__, "host_name", host_name) + _setter("host_name", host_name) if http_redirect_code is not None: - pulumi.set(__self__, "http_redirect_code", http_redirect_code) + _setter("http_redirect_code", http_redirect_code) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if replace_key_prefix_with is not None: - pulumi.set(__self__, "replace_key_prefix_with", replace_key_prefix_with) + _setter("replace_key_prefix_with", replace_key_prefix_with) if replace_key_with is not None: - pulumi.set(__self__, "replace_key_with", replace_key_with) + _setter("replace_key_with", replace_key_with) @property @pulumi.getter(name="hostName") @@ -5681,7 +7694,20 @@ def __init__(__self__, *, """ :param 'InventoryDestinationBucketArgs' bucket: S3 bucket configuration where inventory results are published (documented below). """ - pulumi.set(__self__, "bucket", bucket) + InventoryDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional['outputs.InventoryDestinationBucket'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) @property @pulumi.getter @@ -5726,14 +7752,41 @@ def __init__(__self__, *, :param 'InventoryDestinationBucketEncryptionArgs' encryption: Contains the type of server-side encryption to use to encrypt the inventory (documented below). :param str prefix: Prefix that is prepended to all inventory results. """ - pulumi.set(__self__, "bucket_arn", bucket_arn) - pulumi.set(__self__, "format", format) + InventoryDestinationBucket._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_arn=bucket_arn, + format=format, + account_id=account_id, + encryption=encryption, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_arn: Optional[str] = None, + format: Optional[str] = None, + account_id: Optional[str] = None, + encryption: Optional['outputs.InventoryDestinationBucketEncryption'] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_arn is None and 'bucketArn' in kwargs: + bucket_arn = kwargs['bucketArn'] + if bucket_arn is None: + raise TypeError("Missing 'bucket_arn' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("bucket_arn", bucket_arn) + _setter("format", format) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if encryption is not None: - pulumi.set(__self__, "encryption", encryption) + _setter("encryption", encryption) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="bucketArn") @@ -5804,10 +7857,27 @@ def __init__(__self__, *, :param 'InventoryDestinationBucketEncryptionSseKmsArgs' sse_kms: Specifies to use server-side encryption with AWS KMS-managed keys to encrypt the inventory file (documented below). :param 'InventoryDestinationBucketEncryptionSseS3Args' sse_s3: Specifies to use server-side encryption with Amazon S3-managed keys (SSE-S3) to encrypt the inventory file. """ + InventoryDestinationBucketEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_kms=sse_kms, + sse_s3=sse_s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_kms: Optional['outputs.InventoryDestinationBucketEncryptionSseKms'] = None, + sse_s3: Optional['outputs.InventoryDestinationBucketEncryptionSseS3'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_kms is None and 'sseKms' in kwargs: + sse_kms = kwargs['sseKms'] + if sse_s3 is None and 'sseS3' in kwargs: + sse_s3 = kwargs['sseS3'] + if sse_kms is not None: - pulumi.set(__self__, "sse_kms", sse_kms) + _setter("sse_kms", sse_kms) if sse_s3 is not None: - pulumi.set(__self__, "sse_s3", sse_s3) + _setter("sse_s3", sse_s3) @property @pulumi.getter(name="sseKms") @@ -5850,7 +7920,22 @@ def __init__(__self__, *, """ :param str key_id: ARN of the KMS customer master key (CMK) used to encrypt the inventory file. """ - pulumi.set(__self__, "key_id", key_id) + InventoryDestinationBucketEncryptionSseKms._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("key_id", key_id) @property @pulumi.getter(name="keyId") @@ -5865,6 +7950,13 @@ def key_id(self) -> str: class InventoryDestinationBucketEncryptionSseS3(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -5874,8 +7966,19 @@ def __init__(__self__, *, """ :param str prefix: Prefix that an object must have to be included in the inventory results. """ + InventoryFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -5893,7 +7996,20 @@ def __init__(__self__, *, """ :param str frequency: Specifies how frequently inventory results are produced. Valid values: `Daily`, `Weekly`. """ - pulumi.set(__self__, "frequency", frequency) + InventorySchedule._configure( + lambda key, value: pulumi.set(__self__, key, value), + frequency=frequency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + frequency: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if frequency is None: + raise TypeError("Missing 'frequency' argument") + + _setter("frequency", frequency) @property @pulumi.getter @@ -5921,14 +8037,37 @@ def __init__(__self__, *, :param str id: Canonical user ID of the grantee. Used only when `type` is `CanonicalUser`. :param str uri: URI of the grantee group. Used only when `type` is `Group`. """ - pulumi.set(__self__, "permissions", permissions) - pulumi.set(__self__, "type", type) + ObjectCopyGrant._configure( + lambda key, value: pulumi.set(__self__, key, value), + permissions=permissions, + type=type, + email=email, + id=id, + uri=uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + permissions: Optional[Sequence[str]] = None, + type: Optional[str] = None, + email: Optional[str] = None, + id: Optional[str] = None, + uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if permissions is None: + raise TypeError("Missing 'permissions' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("permissions", permissions) + _setter("type", type) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if id is not None: - pulumi.set(__self__, "id", id) + _setter("id", id) if uri is not None: - pulumi.set(__self__, "uri", uri) + _setter("uri", uri) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/s3control/_inputs.py b/sdk/python/pulumi_aws/s3control/_inputs.py index c48e2061652..fe4d18b024a 100644 --- a/sdk/python/pulumi_aws/s3control/_inputs.py +++ b/sdk/python/pulumi_aws/s3control/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -62,15 +62,38 @@ def __init__(__self__, *, :param pulumi.Input['BucketLifecycleConfigurationRuleFilterArgs'] filter: Configuration block containing settings for filtering. :param pulumi.Input[str] status: Status of the rule. Valid values: `Enabled` and `Disabled`. Defaults to `Enabled`. """ - pulumi.set(__self__, "id", id) + BucketLifecycleConfigurationRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + abort_incomplete_multipart_upload=abort_incomplete_multipart_upload, + expiration=expiration, + filter=filter, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + abort_incomplete_multipart_upload: Optional[pulumi.Input['BucketLifecycleConfigurationRuleAbortIncompleteMultipartUploadArgs']] = None, + expiration: Optional[pulumi.Input['BucketLifecycleConfigurationRuleExpirationArgs']] = None, + filter: Optional[pulumi.Input['BucketLifecycleConfigurationRuleFilterArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if abort_incomplete_multipart_upload is None and 'abortIncompleteMultipartUpload' in kwargs: + abort_incomplete_multipart_upload = kwargs['abortIncompleteMultipartUpload'] + + _setter("id", id) if abort_incomplete_multipart_upload is not None: - pulumi.set(__self__, "abort_incomplete_multipart_upload", abort_incomplete_multipart_upload) + _setter("abort_incomplete_multipart_upload", abort_incomplete_multipart_upload) if expiration is not None: - pulumi.set(__self__, "expiration", expiration) + _setter("expiration", expiration) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -140,7 +163,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] days_after_initiation: Number of days after which Amazon S3 aborts an incomplete multipart upload. """ - pulumi.set(__self__, "days_after_initiation", days_after_initiation) + BucketLifecycleConfigurationRuleAbortIncompleteMultipartUploadArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + days_after_initiation=days_after_initiation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days_after_initiation: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days_after_initiation is None and 'daysAfterInitiation' in kwargs: + days_after_initiation = kwargs['daysAfterInitiation'] + if days_after_initiation is None: + raise TypeError("Missing 'days_after_initiation' argument") + + _setter("days_after_initiation", days_after_initiation) @property @pulumi.getter(name="daysAfterInitiation") @@ -166,12 +204,29 @@ def __init__(__self__, *, :param pulumi.Input[int] days: Number of days before the object is to be deleted. :param pulumi.Input[bool] expired_object_delete_marker: Enable to remove a delete marker with no noncurrent versions. Cannot be specified with `date` or `days`. """ + BucketLifecycleConfigurationRuleExpirationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date=date, + days=days, + expired_object_delete_marker=expired_object_delete_marker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date: Optional[pulumi.Input[str]] = None, + days: Optional[pulumi.Input[int]] = None, + expired_object_delete_marker: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expired_object_delete_marker is None and 'expiredObjectDeleteMarker' in kwargs: + expired_object_delete_marker = kwargs['expiredObjectDeleteMarker'] + if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if expired_object_delete_marker is not None: - pulumi.set(__self__, "expired_object_delete_marker", expired_object_delete_marker) + _setter("expired_object_delete_marker", expired_object_delete_marker) @property @pulumi.getter @@ -219,10 +274,23 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: Object prefix for rule filtering. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of object tags for rule filtering. """ + BucketLifecycleConfigurationRuleFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -255,10 +323,31 @@ def __init__(__self__, *, name: pulumi.Input[str], regions: pulumi.Input[Sequence[pulumi.Input['MultiRegionAccessPointDetailsRegionArgs']]], public_access_block: Optional[pulumi.Input['MultiRegionAccessPointDetailsPublicAccessBlockArgs']] = None): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "regions", regions) + MultiRegionAccessPointDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + regions=regions, + public_access_block=public_access_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input['MultiRegionAccessPointDetailsRegionArgs']]]] = None, + public_access_block: Optional[pulumi.Input['MultiRegionAccessPointDetailsPublicAccessBlockArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if regions is None: + raise TypeError("Missing 'regions' argument") + if public_access_block is None and 'publicAccessBlock' in kwargs: + public_access_block = kwargs['publicAccessBlock'] + + _setter("name", name) + _setter("regions", regions) if public_access_block is not None: - pulumi.set(__self__, "public_access_block", public_access_block) + _setter("public_access_block", public_access_block) @property @pulumi.getter @@ -295,14 +384,39 @@ def __init__(__self__, *, block_public_policy: Optional[pulumi.Input[bool]] = None, ignore_public_acls: Optional[pulumi.Input[bool]] = None, restrict_public_buckets: Optional[pulumi.Input[bool]] = None): + MultiRegionAccessPointDetailsPublicAccessBlockArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_public_acls=block_public_acls, + block_public_policy=block_public_policy, + ignore_public_acls=ignore_public_acls, + restrict_public_buckets=restrict_public_buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_public_acls: Optional[pulumi.Input[bool]] = None, + block_public_policy: Optional[pulumi.Input[bool]] = None, + ignore_public_acls: Optional[pulumi.Input[bool]] = None, + restrict_public_buckets: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_public_acls is None and 'blockPublicAcls' in kwargs: + block_public_acls = kwargs['blockPublicAcls'] + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if ignore_public_acls is None and 'ignorePublicAcls' in kwargs: + ignore_public_acls = kwargs['ignorePublicAcls'] + if restrict_public_buckets is None and 'restrictPublicBuckets' in kwargs: + restrict_public_buckets = kwargs['restrictPublicBuckets'] + if block_public_acls is not None: - pulumi.set(__self__, "block_public_acls", block_public_acls) + _setter("block_public_acls", block_public_acls) if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) if ignore_public_acls is not None: - pulumi.set(__self__, "ignore_public_acls", ignore_public_acls) + _setter("ignore_public_acls", ignore_public_acls) if restrict_public_buckets is not None: - pulumi.set(__self__, "restrict_public_buckets", restrict_public_buckets) + _setter("restrict_public_buckets", restrict_public_buckets) @property @pulumi.getter(name="blockPublicAcls") @@ -347,11 +461,30 @@ def __init__(__self__, *, bucket: pulumi.Input[str], bucket_account_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "bucket", bucket) + MultiRegionAccessPointDetailsRegionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + bucket_account_id=bucket_account_id, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + bucket_account_id: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_account_id is None and 'bucketAccountId' in kwargs: + bucket_account_id = kwargs['bucketAccountId'] + + _setter("bucket", bucket) if bucket_account_id is not None: - pulumi.set(__self__, "bucket_account_id", bucket_account_id) + _setter("bucket_account_id", bucket_account_id) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -392,8 +525,25 @@ def __init__(__self__, *, > **NOTE:** When you update the `policy`, the update is first listed as the proposed policy. After the update is finished and all Regions have been updated, the proposed policy is listed as the established policy. If both policies have the same version number, the proposed policy is the established policy. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "policy", policy) + MultiRegionAccessPointPolicyDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("name", name) + _setter("policy", policy) @property @pulumi.getter @@ -435,12 +585,41 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_features: Allowed features. Valid values: `GetObject-Range`, `GetObject-PartNumber`. :param pulumi.Input[bool] cloud_watch_metrics_enabled: Whether or not the CloudWatch metrics configuration is enabled. """ - pulumi.set(__self__, "supporting_access_point", supporting_access_point) - pulumi.set(__self__, "transformation_configurations", transformation_configurations) + ObjectLambdaAccessPointConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + supporting_access_point=supporting_access_point, + transformation_configurations=transformation_configurations, + allowed_features=allowed_features, + cloud_watch_metrics_enabled=cloud_watch_metrics_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + supporting_access_point: Optional[pulumi.Input[str]] = None, + transformation_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ObjectLambdaAccessPointConfigurationTransformationConfigurationArgs']]]] = None, + allowed_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cloud_watch_metrics_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if supporting_access_point is None and 'supportingAccessPoint' in kwargs: + supporting_access_point = kwargs['supportingAccessPoint'] + if supporting_access_point is None: + raise TypeError("Missing 'supporting_access_point' argument") + if transformation_configurations is None and 'transformationConfigurations' in kwargs: + transformation_configurations = kwargs['transformationConfigurations'] + if transformation_configurations is None: + raise TypeError("Missing 'transformation_configurations' argument") + if allowed_features is None and 'allowedFeatures' in kwargs: + allowed_features = kwargs['allowedFeatures'] + if cloud_watch_metrics_enabled is None and 'cloudWatchMetricsEnabled' in kwargs: + cloud_watch_metrics_enabled = kwargs['cloudWatchMetricsEnabled'] + + _setter("supporting_access_point", supporting_access_point) + _setter("transformation_configurations", transformation_configurations) if allowed_features is not None: - pulumi.set(__self__, "allowed_features", allowed_features) + _setter("allowed_features", allowed_features) if cloud_watch_metrics_enabled is not None: - pulumi.set(__self__, "cloud_watch_metrics_enabled", cloud_watch_metrics_enabled) + _setter("cloud_watch_metrics_enabled", cloud_watch_metrics_enabled) @property @pulumi.getter(name="supportingAccessPoint") @@ -500,8 +679,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] actions: The actions of an Object Lambda Access Point configuration. Valid values: `GetObject`. :param pulumi.Input['ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationArgs'] content_transformation: The content transformation of an Object Lambda Access Point configuration. See Content Transformation below for more details. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "content_transformation", content_transformation) + ObjectLambdaAccessPointConfigurationTransformationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + content_transformation=content_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + content_transformation: Optional[pulumi.Input['ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if content_transformation is None and 'contentTransformation' in kwargs: + content_transformation = kwargs['contentTransformation'] + if content_transformation is None: + raise TypeError("Missing 'content_transformation' argument") + + _setter("actions", actions) + _setter("content_transformation", content_transformation) @property @pulumi.getter @@ -535,7 +733,22 @@ def __init__(__self__, *, """ :param pulumi.Input['ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationAwsLambdaArgs'] aws_lambda: Configuration for an AWS Lambda function. See AWS Lambda below for more details. """ - pulumi.set(__self__, "aws_lambda", aws_lambda) + ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_lambda=aws_lambda, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_lambda: Optional[pulumi.Input['ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationAwsLambdaArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_lambda is None and 'awsLambda' in kwargs: + aws_lambda = kwargs['awsLambda'] + if aws_lambda is None: + raise TypeError("Missing 'aws_lambda' argument") + + _setter("aws_lambda", aws_lambda) @property @pulumi.getter(name="awsLambda") @@ -559,9 +772,28 @@ def __init__(__self__, *, :param pulumi.Input[str] function_arn: The Amazon Resource Name (ARN) of the AWS Lambda function. :param pulumi.Input[str] function_payload: Additional JSON that provides supplemental data to the Lambda function used to transform objects. """ - pulumi.set(__self__, "function_arn", function_arn) + ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationAwsLambdaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + function_payload=function_payload, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[pulumi.Input[str]] = None, + function_payload: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + if function_payload is None and 'functionPayload' in kwargs: + function_payload = kwargs['functionPayload'] + + _setter("function_arn", function_arn) if function_payload is not None: - pulumi.set(__self__, "function_payload", function_payload) + _setter("function_payload", function_payload) @property @pulumi.getter(name="functionArn") @@ -605,16 +837,47 @@ def __init__(__self__, *, :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationExcludeArgs'] exclude: What is excluded in this configuration. Conflicts with `include`. See Exclude below for more details. :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationIncludeArgs'] include: What is included in this configuration. Conflicts with `exclude`. See Include below for more details. """ - pulumi.set(__self__, "account_level", account_level) - pulumi.set(__self__, "enabled", enabled) + StorageLensConfigurationStorageLensConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_level=account_level, + enabled=enabled, + aws_org=aws_org, + data_export=data_export, + exclude=exclude, + include=include, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_level: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + aws_org: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAwsOrgArgs']] = None, + data_export: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportArgs']] = None, + exclude: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationExcludeArgs']] = None, + include: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationIncludeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_level is None and 'accountLevel' in kwargs: + account_level = kwargs['accountLevel'] + if account_level is None: + raise TypeError("Missing 'account_level' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if aws_org is None and 'awsOrg' in kwargs: + aws_org = kwargs['awsOrg'] + if data_export is None and 'dataExport' in kwargs: + data_export = kwargs['dataExport'] + + _setter("account_level", account_level) + _setter("enabled", enabled) if aws_org is not None: - pulumi.set(__self__, "aws_org", aws_org) + _setter("aws_org", aws_org) if data_export is not None: - pulumi.set(__self__, "data_export", data_export) + _setter("data_export", data_export) if exclude is not None: - pulumi.set(__self__, "exclude", exclude) + _setter("exclude", exclude) if include is not None: - pulumi.set(__self__, "include", include) + _setter("include", include) @property @pulumi.getter(name="accountLevel") @@ -704,15 +967,46 @@ def __init__(__self__, *, :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedDataProtectionMetricsArgs'] advanced_data_protection_metrics: Advanced data-protection metrics for S3 Storage Lens. See Advanced Data-Protection Metrics below for more details. :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelDetailedStatusCodeMetricsArgs'] detailed_status_code_metrics: Detailed status code metrics for S3 Storage Lens. See Detailed Status Code Metrics below for more details. """ - pulumi.set(__self__, "bucket_level", bucket_level) + StorageLensConfigurationStorageLensConfigurationAccountLevelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_level=bucket_level, + activity_metrics=activity_metrics, + advanced_cost_optimization_metrics=advanced_cost_optimization_metrics, + advanced_data_protection_metrics=advanced_data_protection_metrics, + detailed_status_code_metrics=detailed_status_code_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_level: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelArgs']] = None, + activity_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetricsArgs']] = None, + advanced_cost_optimization_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedCostOptimizationMetricsArgs']] = None, + advanced_data_protection_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedDataProtectionMetricsArgs']] = None, + detailed_status_code_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelDetailedStatusCodeMetricsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_level is None and 'bucketLevel' in kwargs: + bucket_level = kwargs['bucketLevel'] + if bucket_level is None: + raise TypeError("Missing 'bucket_level' argument") + if activity_metrics is None and 'activityMetrics' in kwargs: + activity_metrics = kwargs['activityMetrics'] + if advanced_cost_optimization_metrics is None and 'advancedCostOptimizationMetrics' in kwargs: + advanced_cost_optimization_metrics = kwargs['advancedCostOptimizationMetrics'] + if advanced_data_protection_metrics is None and 'advancedDataProtectionMetrics' in kwargs: + advanced_data_protection_metrics = kwargs['advancedDataProtectionMetrics'] + if detailed_status_code_metrics is None and 'detailedStatusCodeMetrics' in kwargs: + detailed_status_code_metrics = kwargs['detailedStatusCodeMetrics'] + + _setter("bucket_level", bucket_level) if activity_metrics is not None: - pulumi.set(__self__, "activity_metrics", activity_metrics) + _setter("activity_metrics", activity_metrics) if advanced_cost_optimization_metrics is not None: - pulumi.set(__self__, "advanced_cost_optimization_metrics", advanced_cost_optimization_metrics) + _setter("advanced_cost_optimization_metrics", advanced_cost_optimization_metrics) if advanced_data_protection_metrics is not None: - pulumi.set(__self__, "advanced_data_protection_metrics", advanced_data_protection_metrics) + _setter("advanced_data_protection_metrics", advanced_data_protection_metrics) if detailed_status_code_metrics is not None: - pulumi.set(__self__, "detailed_status_code_metrics", detailed_status_code_metrics) + _setter("detailed_status_code_metrics", detailed_status_code_metrics) @property @pulumi.getter(name="bucketLevel") @@ -782,8 +1076,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether the activity metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -805,8 +1110,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether advanced cost-optimization metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedCostOptimizationMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -828,8 +1144,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether advanced data-protection metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedDataProtectionMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -859,16 +1186,45 @@ def __init__(__self__, *, :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelDetailedStatusCodeMetricsArgs'] detailed_status_code_metrics: Detailed status code metrics for S3 Storage Lens. See Detailed Status Code Metrics above for more details. :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelArgs'] prefix_level: Prefix-level metrics for S3 Storage Lens. See Prefix Level below for more details. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + activity_metrics=activity_metrics, + advanced_cost_optimization_metrics=advanced_cost_optimization_metrics, + advanced_data_protection_metrics=advanced_data_protection_metrics, + detailed_status_code_metrics=detailed_status_code_metrics, + prefix_level=prefix_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activity_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetricsArgs']] = None, + advanced_cost_optimization_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelAdvancedCostOptimizationMetricsArgs']] = None, + advanced_data_protection_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelAdvancedDataProtectionMetricsArgs']] = None, + detailed_status_code_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelDetailedStatusCodeMetricsArgs']] = None, + prefix_level: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activity_metrics is None and 'activityMetrics' in kwargs: + activity_metrics = kwargs['activityMetrics'] + if advanced_cost_optimization_metrics is None and 'advancedCostOptimizationMetrics' in kwargs: + advanced_cost_optimization_metrics = kwargs['advancedCostOptimizationMetrics'] + if advanced_data_protection_metrics is None and 'advancedDataProtectionMetrics' in kwargs: + advanced_data_protection_metrics = kwargs['advancedDataProtectionMetrics'] + if detailed_status_code_metrics is None and 'detailedStatusCodeMetrics' in kwargs: + detailed_status_code_metrics = kwargs['detailedStatusCodeMetrics'] + if prefix_level is None and 'prefixLevel' in kwargs: + prefix_level = kwargs['prefixLevel'] + if activity_metrics is not None: - pulumi.set(__self__, "activity_metrics", activity_metrics) + _setter("activity_metrics", activity_metrics) if advanced_cost_optimization_metrics is not None: - pulumi.set(__self__, "advanced_cost_optimization_metrics", advanced_cost_optimization_metrics) + _setter("advanced_cost_optimization_metrics", advanced_cost_optimization_metrics) if advanced_data_protection_metrics is not None: - pulumi.set(__self__, "advanced_data_protection_metrics", advanced_data_protection_metrics) + _setter("advanced_data_protection_metrics", advanced_data_protection_metrics) if detailed_status_code_metrics is not None: - pulumi.set(__self__, "detailed_status_code_metrics", detailed_status_code_metrics) + _setter("detailed_status_code_metrics", detailed_status_code_metrics) if prefix_level is not None: - pulumi.set(__self__, "prefix_level", prefix_level) + _setter("prefix_level", prefix_level) @property @pulumi.getter(name="activityMetrics") @@ -938,8 +1294,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether the activity metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -961,8 +1328,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether advanced cost-optimization metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelAdvancedCostOptimizationMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -984,8 +1362,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether advanced data-protection metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelAdvancedDataProtectionMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1007,8 +1396,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether detailed status code metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelDetailedStatusCodeMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1030,7 +1430,22 @@ def __init__(__self__, *, """ :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsArgs'] storage_metrics: Prefix-level storage metrics for S3 Storage Lens. See Prefix Level Storage Metrics below for more details. """ - pulumi.set(__self__, "storage_metrics", storage_metrics) + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_metrics=storage_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_metrics is None and 'storageMetrics' in kwargs: + storage_metrics = kwargs['storageMetrics'] + if storage_metrics is None: + raise TypeError("Missing 'storage_metrics' argument") + + _setter("storage_metrics", storage_metrics) @property @pulumi.getter(name="storageMetrics") @@ -1054,10 +1469,25 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Whether prefix-level storage metrics are enabled. :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteriaArgs'] selection_criteria: Selection criteria. See Selection Criteria below for more details. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + selection_criteria=selection_criteria, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + selection_criteria: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteriaArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if selection_criteria is None and 'selectionCriteria' in kwargs: + selection_criteria = kwargs['selectionCriteria'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if selection_criteria is not None: - pulumi.set(__self__, "selection_criteria", selection_criteria) + _setter("selection_criteria", selection_criteria) @property @pulumi.getter @@ -1095,12 +1525,31 @@ def __init__(__self__, *, :param pulumi.Input[int] max_depth: The max depth of the selection criteria. :param pulumi.Input[float] min_storage_bytes_percentage: The minimum number of storage bytes percentage whose metrics will be selected. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteriaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delimiter=delimiter, + max_depth=max_depth, + min_storage_bytes_percentage=min_storage_bytes_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delimiter: Optional[pulumi.Input[str]] = None, + max_depth: Optional[pulumi.Input[int]] = None, + min_storage_bytes_percentage: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_depth is None and 'maxDepth' in kwargs: + max_depth = kwargs['maxDepth'] + if min_storage_bytes_percentage is None and 'minStorageBytesPercentage' in kwargs: + min_storage_bytes_percentage = kwargs['minStorageBytesPercentage'] + if delimiter is not None: - pulumi.set(__self__, "delimiter", delimiter) + _setter("delimiter", delimiter) if max_depth is not None: - pulumi.set(__self__, "max_depth", max_depth) + _setter("max_depth", max_depth) if min_storage_bytes_percentage is not None: - pulumi.set(__self__, "min_storage_bytes_percentage", min_storage_bytes_percentage) + _setter("min_storage_bytes_percentage", min_storage_bytes_percentage) @property @pulumi.getter @@ -1146,8 +1595,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether detailed status code metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelDetailedStatusCodeMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1169,7 +1629,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the Amazon Web Services organization. """ - pulumi.set(__self__, "arn", arn) + StorageLensConfigurationStorageLensConfigurationAwsOrgArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) @property @pulumi.getter @@ -1193,10 +1666,27 @@ def __init__(__self__, *, :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetricsArgs'] cloud_watch_metrics: Amazon CloudWatch publishing for S3 Storage Lens metrics. See Cloud Watch Metrics below for more details. :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationArgs'] s3_bucket_destination: The bucket where the S3 Storage Lens metrics export will be located. See S3 Bucket Destination below for more details. """ + StorageLensConfigurationStorageLensConfigurationDataExportArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_metrics=cloud_watch_metrics, + s3_bucket_destination=s3_bucket_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_metrics: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetricsArgs']] = None, + s3_bucket_destination: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_metrics is None and 'cloudWatchMetrics' in kwargs: + cloud_watch_metrics = kwargs['cloudWatchMetrics'] + if s3_bucket_destination is None and 's3BucketDestination' in kwargs: + s3_bucket_destination = kwargs['s3BucketDestination'] + if cloud_watch_metrics is not None: - pulumi.set(__self__, "cloud_watch_metrics", cloud_watch_metrics) + _setter("cloud_watch_metrics", cloud_watch_metrics) if s3_bucket_destination is not None: - pulumi.set(__self__, "s3_bucket_destination", s3_bucket_destination) + _setter("s3_bucket_destination", s3_bucket_destination) @property @pulumi.getter(name="cloudWatchMetrics") @@ -1230,7 +1720,20 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: Whether CloudWatch publishing for S3 Storage Lens metrics is enabled. """ - pulumi.set(__self__, "enabled", enabled) + StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetricsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -1262,14 +1765,47 @@ def __init__(__self__, *, :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionArgs'] encryption: Encryption of the metrics exports in this bucket. See Encryption below for more details. :param pulumi.Input[str] prefix: The prefix of the destination bucket where the metrics export will be delivered. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "format", format) - pulumi.set(__self__, "output_schema_version", output_schema_version) + StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + arn=arn, + format=format, + output_schema_version=output_schema_version, + encryption=encryption, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + format: Optional[pulumi.Input[str]] = None, + output_schema_version: Optional[pulumi.Input[str]] = None, + encryption: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionArgs']] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if arn is None: + raise TypeError("Missing 'arn' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if output_schema_version is None and 'outputSchemaVersion' in kwargs: + output_schema_version = kwargs['outputSchemaVersion'] + if output_schema_version is None: + raise TypeError("Missing 'output_schema_version' argument") + + _setter("account_id", account_id) + _setter("arn", arn) + _setter("format", format) + _setter("output_schema_version", output_schema_version) if encryption is not None: - pulumi.set(__self__, "encryption", encryption) + _setter("encryption", encryption) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="accountId") @@ -1353,10 +1889,27 @@ def __init__(__self__, *, :param pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKmsArgs'] sse_kms: SSE-KMS encryption. See SSE KMS below for more details. :param pulumi.Input[Sequence[pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3Args']]] sse_s3s: SSE-S3 encryption. An empty configuration block `{}` should be used. """ + StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_kms=sse_kms, + sse_s3s=sse_s3s, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_kms: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKmsArgs']] = None, + sse_s3s: Optional[pulumi.Input[Sequence[pulumi.Input['StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3Args']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_kms is None and 'sseKms' in kwargs: + sse_kms = kwargs['sseKms'] + if sse_s3s is None and 'sseS3s' in kwargs: + sse_s3s = kwargs['sseS3s'] + if sse_kms is not None: - pulumi.set(__self__, "sse_kms", sse_kms) + _setter("sse_kms", sse_kms) if sse_s3s is not None: - pulumi.set(__self__, "sse_s3s", sse_s3s) + _setter("sse_s3s", sse_s3s) @property @pulumi.getter(name="sseKms") @@ -1390,7 +1943,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] key_id: KMS key ARN. """ - pulumi.set(__self__, "key_id", key_id) + StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKmsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("key_id", key_id) @property @pulumi.getter(name="keyId") @@ -1409,6 +1977,13 @@ def key_id(self, value: pulumi.Input[str]): class StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3Args: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -1420,10 +1995,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] buckets: List of S3 bucket ARNs. :param pulumi.Input[Sequence[pulumi.Input[str]]] regions: List of AWS Regions. """ + StorageLensConfigurationStorageLensConfigurationExcludeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + buckets=buckets, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + buckets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if buckets is not None: - pulumi.set(__self__, "buckets", buckets) + _setter("buckets", buckets) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter @@ -1459,10 +2047,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] buckets: List of S3 bucket ARNs. :param pulumi.Input[Sequence[pulumi.Input[str]]] regions: List of AWS Regions. """ + StorageLensConfigurationStorageLensConfigurationIncludeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + buckets=buckets, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + buckets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if buckets is not None: - pulumi.set(__self__, "buckets", buckets) + _setter("buckets", buckets) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/s3control/access_point_policy.py b/sdk/python/pulumi_aws/s3control/access_point_policy.py index 06d971bc5f2..750d57772c7 100644 --- a/sdk/python/pulumi_aws/s3control/access_point_policy.py +++ b/sdk/python/pulumi_aws/s3control/access_point_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccessPointPolicyArgs', 'AccessPointPolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] access_point_arn: The ARN of the access point that you want to associate with the specified policy. :param pulumi.Input[str] policy: The policy that you want to apply to the specified access point. """ - pulumi.set(__self__, "access_point_arn", access_point_arn) - pulumi.set(__self__, "policy", policy) + AccessPointPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_point_arn=access_point_arn, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_point_arn: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_point_arn is None and 'accessPointArn' in kwargs: + access_point_arn = kwargs['accessPointArn'] + if access_point_arn is None: + raise TypeError("Missing 'access_point_arn' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("access_point_arn", access_point_arn) + _setter("policy", policy) @property @pulumi.getter(name="accessPointArn") @@ -61,12 +80,31 @@ def __init__(__self__, *, :param pulumi.Input[bool] has_public_access_policy: Indicates whether this access point currently has a policy that allows public access. :param pulumi.Input[str] policy: The policy that you want to apply to the specified access point. """ + _AccessPointPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_point_arn=access_point_arn, + has_public_access_policy=has_public_access_policy, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_point_arn: Optional[pulumi.Input[str]] = None, + has_public_access_policy: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_point_arn is None and 'accessPointArn' in kwargs: + access_point_arn = kwargs['accessPointArn'] + if has_public_access_policy is None and 'hasPublicAccessPolicy' in kwargs: + has_public_access_policy = kwargs['hasPublicAccessPolicy'] + if access_point_arn is not None: - pulumi.set(__self__, "access_point_arn", access_point_arn) + _setter("access_point_arn", access_point_arn) if has_public_access_policy is not None: - pulumi.set(__self__, "has_public_access_policy", has_public_access_policy) + _setter("has_public_access_policy", has_public_access_policy) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="accessPointArn") @@ -222,6 +260,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccessPointPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3control/bucket.py b/sdk/python/pulumi_aws/s3control/bucket.py index 968b431b3bf..ca31bbe7fb6 100644 --- a/sdk/python/pulumi_aws/s3control/bucket.py +++ b/sdk/python/pulumi_aws/s3control/bucket.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketArgs', 'Bucket'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] outpost_id: Identifier of the Outpost to contain this bucket. :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. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "outpost_id", outpost_id) + BucketArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + outpost_id=outpost_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + outpost_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if outpost_id is None: + raise TypeError("Missing 'outpost_id' argument") + + _setter("bucket", bucket) + _setter("outpost_id", outpost_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -85,23 +106,54 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _BucketState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + bucket=bucket, + creation_date=creation_date, + outpost_id=outpost_id, + public_access_block_enabled=public_access_block_enabled, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + bucket: Optional[pulumi.Input[str]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + outpost_id: Optional[pulumi.Input[str]] = None, + public_access_block_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if public_access_block_enabled is None and 'publicAccessBlockEnabled' in kwargs: + public_access_block_enabled = kwargs['publicAccessBlockEnabled'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if outpost_id is not None: - pulumi.set(__self__, "outpost_id", outpost_id) + _setter("outpost_id", outpost_id) if public_access_block_enabled is not None: - pulumi.set(__self__, "public_access_block_enabled", public_access_block_enabled) + _setter("public_access_block_enabled", public_access_block_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -270,6 +322,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3control/bucket_lifecycle_configuration.py b/sdk/python/pulumi_aws/s3control/bucket_lifecycle_configuration.py index 0f975a454bc..17af6d4cb35 100644 --- a/sdk/python/pulumi_aws/s3control/bucket_lifecycle_configuration.py +++ b/sdk/python/pulumi_aws/s3control/bucket_lifecycle_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Amazon Resource Name (ARN) of the bucket. :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationRuleArgs']]] rules: Configuration block(s) containing lifecycle rules for the bucket. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "rules", rules) + BucketLifecycleConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if rules is None: + raise TypeError("Missing 'rules' argument") + + _setter("bucket", bucket) + _setter("rules", rules) @property @pulumi.getter @@ -61,10 +78,23 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Amazon Resource Name (ARN) of the bucket. :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationRuleArgs']]] rules: Configuration block(s) containing lifecycle rules for the bucket. """ + _BucketLifecycleConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + rules=rules, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationRuleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) @property @pulumi.getter @@ -210,6 +240,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketLifecycleConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3control/bucket_policy.py b/sdk/python/pulumi_aws/s3control/bucket_policy.py index 5cf93d281c7..c9e4848522c 100644 --- a/sdk/python/pulumi_aws/s3control/bucket_policy.py +++ b/sdk/python/pulumi_aws/s3control/bucket_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BucketPolicyArgs', 'BucketPolicy'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Amazon Resource Name (ARN) of the bucket. :param pulumi.Input[str] policy: JSON string of the resource policy. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "policy", policy) + BucketPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("bucket", bucket) + _setter("policy", policy) @property @pulumi.getter @@ -59,10 +76,23 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Amazon Resource Name (ARN) of the bucket. :param pulumi.Input[str] policy: JSON string of the resource policy. """ + _BucketPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -192,6 +222,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BucketPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3control/get_multi_region_access_point.py b/sdk/python/pulumi_aws/s3control/get_multi_region_access_point.py index 0045ac30e59..78a14969720 100644 --- a/sdk/python/pulumi_aws/s3control/get_multi_region_access_point.py +++ b/sdk/python/pulumi_aws/s3control/get_multi_region_access_point.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/s3control/multi_region_access_point.py b/sdk/python/pulumi_aws/s3control/multi_region_access_point.py index 6593c1a2af6..c2727f45277 100644 --- a/sdk/python/pulumi_aws/s3control/multi_region_access_point.py +++ b/sdk/python/pulumi_aws/s3control/multi_region_access_point.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,26 @@ def __init__(__self__, *, :param pulumi.Input['MultiRegionAccessPointDetailsArgs'] details: A configuration block containing details about the Multi-Region Access Point. See Details Configuration Block below for more details :param pulumi.Input[str] account_id: The AWS account ID for the owner of the buckets for which you want to create a Multi-Region Access Point. Defaults to automatically determined account ID of the AWS provider. """ - pulumi.set(__self__, "details", details) + MultiRegionAccessPointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + details=details, + account_id=account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + details: Optional[pulumi.Input['MultiRegionAccessPointDetailsArgs']] = None, + account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if details is None: + raise TypeError("Missing 'details' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("details", details) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) @property @pulumi.getter @@ -70,18 +87,43 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: The DNS domain name of the S3 Multi-Region Access Point in the format _`alias`_.accesspoint.s3-global.amazonaws.com. For more information, see the documentation on [Multi-Region Access Point Requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPointRequests.html). :param pulumi.Input[str] status: The current status of the Multi-Region Access Point. One of: `READY`, `INCONSISTENT_ACROSS_REGIONS`, `CREATING`, `PARTIALLY_CREATED`, `PARTIALLY_DELETED`, `DELETING`. """ + _MultiRegionAccessPointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + alias=alias, + arn=arn, + details=details, + domain_name=domain_name, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + alias: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input['MultiRegionAccessPointDetailsArgs']] = None, + domain_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if details is not None: - pulumi.set(__self__, "details", details) + _setter("details", details) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="accountId") @@ -255,6 +297,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MultiRegionAccessPointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -272,6 +318,7 @@ def _internal_init(__self__, __props__ = MultiRegionAccessPointArgs.__new__(MultiRegionAccessPointArgs) __props__.__dict__["account_id"] = account_id + details = _utilities.configure(details, MultiRegionAccessPointDetailsArgs, True) if details is None and not opts.urn: raise TypeError("Missing required property 'details'") __props__.__dict__["details"] = details diff --git a/sdk/python/pulumi_aws/s3control/multi_region_access_point_policy.py b/sdk/python/pulumi_aws/s3control/multi_region_access_point_policy.py index fabceeddd0f..6c8b77d2ed0 100644 --- a/sdk/python/pulumi_aws/s3control/multi_region_access_point_policy.py +++ b/sdk/python/pulumi_aws/s3control/multi_region_access_point_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,26 @@ def __init__(__self__, *, :param pulumi.Input['MultiRegionAccessPointPolicyDetailsArgs'] details: A configuration block containing details about the policy for the Multi-Region Access Point. See Details Configuration Block below for more details :param pulumi.Input[str] account_id: The AWS account ID for the owner of the Multi-Region Access Point. Defaults to automatically determined account ID of the AWS provider. """ - pulumi.set(__self__, "details", details) + MultiRegionAccessPointPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + details=details, + account_id=account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + details: Optional[pulumi.Input['MultiRegionAccessPointPolicyDetailsArgs']] = None, + account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if details is None: + raise TypeError("Missing 'details' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("details", details) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) @property @pulumi.getter @@ -66,14 +83,33 @@ def __init__(__self__, *, :param pulumi.Input[str] established: The last established policy for the Multi-Region Access Point. :param pulumi.Input[str] proposed: The proposed policy for the Multi-Region Access Point. """ + _MultiRegionAccessPointPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + details=details, + established=established, + proposed=proposed, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input['MultiRegionAccessPointPolicyDetailsArgs']] = None, + established: Optional[pulumi.Input[str]] = None, + proposed: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if details is not None: - pulumi.set(__self__, "details", details) + _setter("details", details) if established is not None: - pulumi.set(__self__, "established", established) + _setter("established", established) if proposed is not None: - pulumi.set(__self__, "proposed", proposed) + _setter("proposed", proposed) @property @pulumi.getter(name="accountId") @@ -249,6 +285,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MultiRegionAccessPointPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -266,6 +306,7 @@ def _internal_init(__self__, __props__ = MultiRegionAccessPointPolicyArgs.__new__(MultiRegionAccessPointPolicyArgs) __props__.__dict__["account_id"] = account_id + details = _utilities.configure(details, MultiRegionAccessPointPolicyDetailsArgs, True) if details is None and not opts.urn: raise TypeError("Missing required property 'details'") __props__.__dict__["details"] = details diff --git a/sdk/python/pulumi_aws/s3control/object_lambda_access_point.py b/sdk/python/pulumi_aws/s3control/object_lambda_access_point.py index 7742ea4d910..7b7036b8844 100644 --- a/sdk/python/pulumi_aws/s3control/object_lambda_access_point.py +++ b/sdk/python/pulumi_aws/s3control/object_lambda_access_point.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: The AWS account ID for the owner of the bucket for which you want to create an Object Lambda Access Point. Defaults to automatically determined account ID of the AWS provider. :param pulumi.Input[str] name: The name for this Object Lambda Access Point. """ - pulumi.set(__self__, "configuration", configuration) + ObjectLambdaAccessPointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + account_id=account_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[pulumi.Input['ObjectLambdaAccessPointConfigurationArgs']] = None, + account_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration is None: + raise TypeError("Missing 'configuration' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("configuration", configuration) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -84,16 +103,37 @@ def __init__(__self__, *, :param pulumi.Input['ObjectLambdaAccessPointConfigurationArgs'] configuration: A configuration block containing details about the Object Lambda Access Point. See Configuration below for more details. :param pulumi.Input[str] name: The name for this Object Lambda Access Point. """ + _ObjectLambdaAccessPointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + alias=alias, + arn=arn, + configuration=configuration, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + alias: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + configuration: Optional[pulumi.Input['ObjectLambdaAccessPointConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration is not None: - pulumi.set(__self__, "configuration", configuration) + _setter("configuration", configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="accountId") @@ -253,6 +293,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ObjectLambdaAccessPointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -271,6 +315,7 @@ def _internal_init(__self__, __props__ = ObjectLambdaAccessPointArgs.__new__(ObjectLambdaAccessPointArgs) __props__.__dict__["account_id"] = account_id + configuration = _utilities.configure(configuration, ObjectLambdaAccessPointConfigurationArgs, True) if configuration is None and not opts.urn: raise TypeError("Missing required property 'configuration'") __props__.__dict__["configuration"] = configuration diff --git a/sdk/python/pulumi_aws/s3control/object_lambda_access_point_policy.py b/sdk/python/pulumi_aws/s3control/object_lambda_access_point_policy.py index 18af16b1750..d59bf3fd8a5 100644 --- a/sdk/python/pulumi_aws/s3control/object_lambda_access_point_policy.py +++ b/sdk/python/pulumi_aws/s3control/object_lambda_access_point_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ObjectLambdaAccessPointPolicyArgs', 'ObjectLambdaAccessPointPolicy'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: The AWS account ID for the account that owns the Object Lambda Access Point. Defaults to automatically determined account ID of the AWS provider. :param pulumi.Input[str] name: The name of the Object Lambda Access Point. """ - pulumi.set(__self__, "policy", policy) + ObjectLambdaAccessPointPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + account_id=account_id, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + account_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("policy", policy) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -80,14 +99,35 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Object Lambda Access Point. :param pulumi.Input[str] policy: The Object Lambda Access Point resource policy document. """ + _ObjectLambdaAccessPointPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + has_public_access_policy=has_public_access_policy, + name=name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + has_public_access_policy: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if has_public_access_policy is None and 'hasPublicAccessPolicy' in kwargs: + has_public_access_policy = kwargs['hasPublicAccessPolicy'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if has_public_access_policy is not None: - pulumi.set(__self__, "has_public_access_policy", has_public_access_policy) + _setter("has_public_access_policy", has_public_access_policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter(name="accountId") @@ -257,6 +297,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ObjectLambdaAccessPointPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3control/outputs.py b/sdk/python/pulumi_aws/s3control/outputs.py index c314cf3adef..2c203af85a8 100644 --- a/sdk/python/pulumi_aws/s3control/outputs.py +++ b/sdk/python/pulumi_aws/s3control/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -82,15 +82,38 @@ def __init__(__self__, *, :param 'BucketLifecycleConfigurationRuleFilterArgs' filter: Configuration block containing settings for filtering. :param str status: Status of the rule. Valid values: `Enabled` and `Disabled`. Defaults to `Enabled`. """ - pulumi.set(__self__, "id", id) + BucketLifecycleConfigurationRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + abort_incomplete_multipart_upload=abort_incomplete_multipart_upload, + expiration=expiration, + filter=filter, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + abort_incomplete_multipart_upload: Optional['outputs.BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload'] = None, + expiration: Optional['outputs.BucketLifecycleConfigurationRuleExpiration'] = None, + filter: Optional['outputs.BucketLifecycleConfigurationRuleFilter'] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + if abort_incomplete_multipart_upload is None and 'abortIncompleteMultipartUpload' in kwargs: + abort_incomplete_multipart_upload = kwargs['abortIncompleteMultipartUpload'] + + _setter("id", id) if abort_incomplete_multipart_upload is not None: - pulumi.set(__self__, "abort_incomplete_multipart_upload", abort_incomplete_multipart_upload) + _setter("abort_incomplete_multipart_upload", abort_incomplete_multipart_upload) if expiration is not None: - pulumi.set(__self__, "expiration", expiration) + _setter("expiration", expiration) if filter is not None: - pulumi.set(__self__, "filter", filter) + _setter("filter", filter) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -157,7 +180,22 @@ def __init__(__self__, *, """ :param int days_after_initiation: Number of days after which Amazon S3 aborts an incomplete multipart upload. """ - pulumi.set(__self__, "days_after_initiation", days_after_initiation) + BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload._configure( + lambda key, value: pulumi.set(__self__, key, value), + days_after_initiation=days_after_initiation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + days_after_initiation: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if days_after_initiation is None and 'daysAfterInitiation' in kwargs: + days_after_initiation = kwargs['daysAfterInitiation'] + if days_after_initiation is None: + raise TypeError("Missing 'days_after_initiation' argument") + + _setter("days_after_initiation", days_after_initiation) @property @pulumi.getter(name="daysAfterInitiation") @@ -196,12 +234,29 @@ def __init__(__self__, *, :param int days: Number of days before the object is to be deleted. :param bool expired_object_delete_marker: Enable to remove a delete marker with no noncurrent versions. Cannot be specified with `date` or `days`. """ + BucketLifecycleConfigurationRuleExpiration._configure( + lambda key, value: pulumi.set(__self__, key, value), + date=date, + days=days, + expired_object_delete_marker=expired_object_delete_marker, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date: Optional[str] = None, + days: Optional[int] = None, + expired_object_delete_marker: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expired_object_delete_marker is None and 'expiredObjectDeleteMarker' in kwargs: + expired_object_delete_marker = kwargs['expiredObjectDeleteMarker'] + if date is not None: - pulumi.set(__self__, "date", date) + _setter("date", date) if days is not None: - pulumi.set(__self__, "days", days) + _setter("days", days) if expired_object_delete_marker is not None: - pulumi.set(__self__, "expired_object_delete_marker", expired_object_delete_marker) + _setter("expired_object_delete_marker", expired_object_delete_marker) @property @pulumi.getter @@ -237,10 +292,23 @@ def __init__(__self__, *, :param str prefix: Object prefix for rule filtering. :param Mapping[str, str] tags: Key-value map of object tags for rule filtering. """ + BucketLifecycleConfigurationRuleFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + prefix=prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + prefix: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -282,10 +350,31 @@ def __init__(__self__, *, name: str, regions: Sequence['outputs.MultiRegionAccessPointDetailsRegion'], public_access_block: Optional['outputs.MultiRegionAccessPointDetailsPublicAccessBlock'] = None): - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "regions", regions) + MultiRegionAccessPointDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + regions=regions, + public_access_block=public_access_block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + regions: Optional[Sequence['outputs.MultiRegionAccessPointDetailsRegion']] = None, + public_access_block: Optional['outputs.MultiRegionAccessPointDetailsPublicAccessBlock'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if regions is None: + raise TypeError("Missing 'regions' argument") + if public_access_block is None and 'publicAccessBlock' in kwargs: + public_access_block = kwargs['publicAccessBlock'] + + _setter("name", name) + _setter("regions", regions) if public_access_block is not None: - pulumi.set(__self__, "public_access_block", public_access_block) + _setter("public_access_block", public_access_block) @property @pulumi.getter @@ -333,14 +422,39 @@ def __init__(__self__, *, block_public_policy: Optional[bool] = None, ignore_public_acls: Optional[bool] = None, restrict_public_buckets: Optional[bool] = None): + MultiRegionAccessPointDetailsPublicAccessBlock._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_public_acls=block_public_acls, + block_public_policy=block_public_policy, + ignore_public_acls=ignore_public_acls, + restrict_public_buckets=restrict_public_buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_public_acls: Optional[bool] = None, + block_public_policy: Optional[bool] = None, + ignore_public_acls: Optional[bool] = None, + restrict_public_buckets: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_public_acls is None and 'blockPublicAcls' in kwargs: + block_public_acls = kwargs['blockPublicAcls'] + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if ignore_public_acls is None and 'ignorePublicAcls' in kwargs: + ignore_public_acls = kwargs['ignorePublicAcls'] + if restrict_public_buckets is None and 'restrictPublicBuckets' in kwargs: + restrict_public_buckets = kwargs['restrictPublicBuckets'] + if block_public_acls is not None: - pulumi.set(__self__, "block_public_acls", block_public_acls) + _setter("block_public_acls", block_public_acls) if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) if ignore_public_acls is not None: - pulumi.set(__self__, "ignore_public_acls", ignore_public_acls) + _setter("ignore_public_acls", ignore_public_acls) if restrict_public_buckets is not None: - pulumi.set(__self__, "restrict_public_buckets", restrict_public_buckets) + _setter("restrict_public_buckets", restrict_public_buckets) @property @pulumi.getter(name="blockPublicAcls") @@ -386,11 +500,30 @@ def __init__(__self__, *, bucket: str, bucket_account_id: Optional[str] = None, region: Optional[str] = None): - pulumi.set(__self__, "bucket", bucket) + MultiRegionAccessPointDetailsRegion._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + bucket_account_id=bucket_account_id, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + bucket_account_id: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_account_id is None and 'bucketAccountId' in kwargs: + bucket_account_id = kwargs['bucketAccountId'] + + _setter("bucket", bucket) if bucket_account_id is not None: - pulumi.set(__self__, "bucket_account_id", bucket_account_id) + _setter("bucket_account_id", bucket_account_id) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) @property @pulumi.getter @@ -419,8 +552,25 @@ def __init__(__self__, *, > **NOTE:** When you update the `policy`, the update is first listed as the proposed policy. After the update is finished and all Regions have been updated, the proposed policy is listed as the established policy. If both policies have the same version number, the proposed policy is the established policy. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "policy", policy) + MultiRegionAccessPointPolicyDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("name", name) + _setter("policy", policy) @property @pulumi.getter @@ -477,12 +627,41 @@ def __init__(__self__, *, :param Sequence[str] allowed_features: Allowed features. Valid values: `GetObject-Range`, `GetObject-PartNumber`. :param bool cloud_watch_metrics_enabled: Whether or not the CloudWatch metrics configuration is enabled. """ - pulumi.set(__self__, "supporting_access_point", supporting_access_point) - pulumi.set(__self__, "transformation_configurations", transformation_configurations) + ObjectLambdaAccessPointConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + supporting_access_point=supporting_access_point, + transformation_configurations=transformation_configurations, + allowed_features=allowed_features, + cloud_watch_metrics_enabled=cloud_watch_metrics_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + supporting_access_point: Optional[str] = None, + transformation_configurations: Optional[Sequence['outputs.ObjectLambdaAccessPointConfigurationTransformationConfiguration']] = None, + allowed_features: Optional[Sequence[str]] = None, + cloud_watch_metrics_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if supporting_access_point is None and 'supportingAccessPoint' in kwargs: + supporting_access_point = kwargs['supportingAccessPoint'] + if supporting_access_point is None: + raise TypeError("Missing 'supporting_access_point' argument") + if transformation_configurations is None and 'transformationConfigurations' in kwargs: + transformation_configurations = kwargs['transformationConfigurations'] + if transformation_configurations is None: + raise TypeError("Missing 'transformation_configurations' argument") + if allowed_features is None and 'allowedFeatures' in kwargs: + allowed_features = kwargs['allowedFeatures'] + if cloud_watch_metrics_enabled is None and 'cloudWatchMetricsEnabled' in kwargs: + cloud_watch_metrics_enabled = kwargs['cloudWatchMetricsEnabled'] + + _setter("supporting_access_point", supporting_access_point) + _setter("transformation_configurations", transformation_configurations) if allowed_features is not None: - pulumi.set(__self__, "allowed_features", allowed_features) + _setter("allowed_features", allowed_features) if cloud_watch_metrics_enabled is not None: - pulumi.set(__self__, "cloud_watch_metrics_enabled", cloud_watch_metrics_enabled) + _setter("cloud_watch_metrics_enabled", cloud_watch_metrics_enabled) @property @pulumi.getter(name="supportingAccessPoint") @@ -543,8 +722,27 @@ def __init__(__self__, *, :param Sequence[str] actions: The actions of an Object Lambda Access Point configuration. Valid values: `GetObject`. :param 'ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationArgs' content_transformation: The content transformation of an Object Lambda Access Point configuration. See Content Transformation below for more details. """ - pulumi.set(__self__, "actions", actions) - pulumi.set(__self__, "content_transformation", content_transformation) + ObjectLambdaAccessPointConfigurationTransformationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + actions=actions, + content_transformation=content_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + actions: Optional[Sequence[str]] = None, + content_transformation: Optional['outputs.ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if actions is None: + raise TypeError("Missing 'actions' argument") + if content_transformation is None and 'contentTransformation' in kwargs: + content_transformation = kwargs['contentTransformation'] + if content_transformation is None: + raise TypeError("Missing 'content_transformation' argument") + + _setter("actions", actions) + _setter("content_transformation", content_transformation) @property @pulumi.getter @@ -587,7 +785,22 @@ def __init__(__self__, *, """ :param 'ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationAwsLambdaArgs' aws_lambda: Configuration for an AWS Lambda function. See AWS Lambda below for more details. """ - pulumi.set(__self__, "aws_lambda", aws_lambda) + ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_lambda=aws_lambda, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_lambda: Optional['outputs.ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationAwsLambda'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_lambda is None and 'awsLambda' in kwargs: + aws_lambda = kwargs['awsLambda'] + if aws_lambda is None: + raise TypeError("Missing 'aws_lambda' argument") + + _setter("aws_lambda", aws_lambda) @property @pulumi.getter(name="awsLambda") @@ -626,9 +839,28 @@ def __init__(__self__, *, :param str function_arn: The Amazon Resource Name (ARN) of the AWS Lambda function. :param str function_payload: Additional JSON that provides supplemental data to the Lambda function used to transform objects. """ - pulumi.set(__self__, "function_arn", function_arn) + ObjectLambdaAccessPointConfigurationTransformationConfigurationContentTransformationAwsLambda._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + function_payload=function_payload, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[str] = None, + function_payload: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + if function_payload is None and 'functionPayload' in kwargs: + function_payload = kwargs['functionPayload'] + + _setter("function_arn", function_arn) if function_payload is not None: - pulumi.set(__self__, "function_payload", function_payload) + _setter("function_payload", function_payload) @property @pulumi.getter(name="functionArn") @@ -685,16 +917,47 @@ def __init__(__self__, *, :param 'StorageLensConfigurationStorageLensConfigurationExcludeArgs' exclude: What is excluded in this configuration. Conflicts with `include`. See Exclude below for more details. :param 'StorageLensConfigurationStorageLensConfigurationIncludeArgs' include: What is included in this configuration. Conflicts with `exclude`. See Include below for more details. """ - pulumi.set(__self__, "account_level", account_level) - pulumi.set(__self__, "enabled", enabled) + StorageLensConfigurationStorageLensConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_level=account_level, + enabled=enabled, + aws_org=aws_org, + data_export=data_export, + exclude=exclude, + include=include, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_level: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevel'] = None, + enabled: Optional[bool] = None, + aws_org: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAwsOrg'] = None, + data_export: Optional['outputs.StorageLensConfigurationStorageLensConfigurationDataExport'] = None, + exclude: Optional['outputs.StorageLensConfigurationStorageLensConfigurationExclude'] = None, + include: Optional['outputs.StorageLensConfigurationStorageLensConfigurationInclude'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_level is None and 'accountLevel' in kwargs: + account_level = kwargs['accountLevel'] + if account_level is None: + raise TypeError("Missing 'account_level' argument") + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if aws_org is None and 'awsOrg' in kwargs: + aws_org = kwargs['awsOrg'] + if data_export is None and 'dataExport' in kwargs: + data_export = kwargs['dataExport'] + + _setter("account_level", account_level) + _setter("enabled", enabled) if aws_org is not None: - pulumi.set(__self__, "aws_org", aws_org) + _setter("aws_org", aws_org) if data_export is not None: - pulumi.set(__self__, "data_export", data_export) + _setter("data_export", data_export) if exclude is not None: - pulumi.set(__self__, "exclude", exclude) + _setter("exclude", exclude) if include is not None: - pulumi.set(__self__, "include", include) + _setter("include", include) @property @pulumi.getter(name="accountLevel") @@ -785,15 +1048,46 @@ def __init__(__self__, *, :param 'StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedDataProtectionMetricsArgs' advanced_data_protection_metrics: Advanced data-protection metrics for S3 Storage Lens. See Advanced Data-Protection Metrics below for more details. :param 'StorageLensConfigurationStorageLensConfigurationAccountLevelDetailedStatusCodeMetricsArgs' detailed_status_code_metrics: Detailed status code metrics for S3 Storage Lens. See Detailed Status Code Metrics below for more details. """ - pulumi.set(__self__, "bucket_level", bucket_level) + StorageLensConfigurationStorageLensConfigurationAccountLevel._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_level=bucket_level, + activity_metrics=activity_metrics, + advanced_cost_optimization_metrics=advanced_cost_optimization_metrics, + advanced_data_protection_metrics=advanced_data_protection_metrics, + detailed_status_code_metrics=detailed_status_code_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_level: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevel'] = None, + activity_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetrics'] = None, + advanced_cost_optimization_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedCostOptimizationMetrics'] = None, + advanced_data_protection_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedDataProtectionMetrics'] = None, + detailed_status_code_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelDetailedStatusCodeMetrics'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_level is None and 'bucketLevel' in kwargs: + bucket_level = kwargs['bucketLevel'] + if bucket_level is None: + raise TypeError("Missing 'bucket_level' argument") + if activity_metrics is None and 'activityMetrics' in kwargs: + activity_metrics = kwargs['activityMetrics'] + if advanced_cost_optimization_metrics is None and 'advancedCostOptimizationMetrics' in kwargs: + advanced_cost_optimization_metrics = kwargs['advancedCostOptimizationMetrics'] + if advanced_data_protection_metrics is None and 'advancedDataProtectionMetrics' in kwargs: + advanced_data_protection_metrics = kwargs['advancedDataProtectionMetrics'] + if detailed_status_code_metrics is None and 'detailedStatusCodeMetrics' in kwargs: + detailed_status_code_metrics = kwargs['detailedStatusCodeMetrics'] + + _setter("bucket_level", bucket_level) if activity_metrics is not None: - pulumi.set(__self__, "activity_metrics", activity_metrics) + _setter("activity_metrics", activity_metrics) if advanced_cost_optimization_metrics is not None: - pulumi.set(__self__, "advanced_cost_optimization_metrics", advanced_cost_optimization_metrics) + _setter("advanced_cost_optimization_metrics", advanced_cost_optimization_metrics) if advanced_data_protection_metrics is not None: - pulumi.set(__self__, "advanced_data_protection_metrics", advanced_data_protection_metrics) + _setter("advanced_data_protection_metrics", advanced_data_protection_metrics) if detailed_status_code_metrics is not None: - pulumi.set(__self__, "detailed_status_code_metrics", detailed_status_code_metrics) + _setter("detailed_status_code_metrics", detailed_status_code_metrics) @property @pulumi.getter(name="bucketLevel") @@ -843,8 +1137,19 @@ def __init__(__self__, *, """ :param bool enabled: Whether the activity metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -862,8 +1167,19 @@ def __init__(__self__, *, """ :param bool enabled: Whether advanced cost-optimization metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedCostOptimizationMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -881,8 +1197,19 @@ def __init__(__self__, *, """ :param bool enabled: Whether advanced data-protection metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelAdvancedDataProtectionMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -933,16 +1260,45 @@ def __init__(__self__, *, :param 'StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelDetailedStatusCodeMetricsArgs' detailed_status_code_metrics: Detailed status code metrics for S3 Storage Lens. See Detailed Status Code Metrics above for more details. :param 'StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelArgs' prefix_level: Prefix-level metrics for S3 Storage Lens. See Prefix Level below for more details. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevel._configure( + lambda key, value: pulumi.set(__self__, key, value), + activity_metrics=activity_metrics, + advanced_cost_optimization_metrics=advanced_cost_optimization_metrics, + advanced_data_protection_metrics=advanced_data_protection_metrics, + detailed_status_code_metrics=detailed_status_code_metrics, + prefix_level=prefix_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activity_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetrics'] = None, + advanced_cost_optimization_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelAdvancedCostOptimizationMetrics'] = None, + advanced_data_protection_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelAdvancedDataProtectionMetrics'] = None, + detailed_status_code_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelDetailedStatusCodeMetrics'] = None, + prefix_level: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevel'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activity_metrics is None and 'activityMetrics' in kwargs: + activity_metrics = kwargs['activityMetrics'] + if advanced_cost_optimization_metrics is None and 'advancedCostOptimizationMetrics' in kwargs: + advanced_cost_optimization_metrics = kwargs['advancedCostOptimizationMetrics'] + if advanced_data_protection_metrics is None and 'advancedDataProtectionMetrics' in kwargs: + advanced_data_protection_metrics = kwargs['advancedDataProtectionMetrics'] + if detailed_status_code_metrics is None and 'detailedStatusCodeMetrics' in kwargs: + detailed_status_code_metrics = kwargs['detailedStatusCodeMetrics'] + if prefix_level is None and 'prefixLevel' in kwargs: + prefix_level = kwargs['prefixLevel'] + if activity_metrics is not None: - pulumi.set(__self__, "activity_metrics", activity_metrics) + _setter("activity_metrics", activity_metrics) if advanced_cost_optimization_metrics is not None: - pulumi.set(__self__, "advanced_cost_optimization_metrics", advanced_cost_optimization_metrics) + _setter("advanced_cost_optimization_metrics", advanced_cost_optimization_metrics) if advanced_data_protection_metrics is not None: - pulumi.set(__self__, "advanced_data_protection_metrics", advanced_data_protection_metrics) + _setter("advanced_data_protection_metrics", advanced_data_protection_metrics) if detailed_status_code_metrics is not None: - pulumi.set(__self__, "detailed_status_code_metrics", detailed_status_code_metrics) + _setter("detailed_status_code_metrics", detailed_status_code_metrics) if prefix_level is not None: - pulumi.set(__self__, "prefix_level", prefix_level) + _setter("prefix_level", prefix_level) @property @pulumi.getter(name="activityMetrics") @@ -992,8 +1348,19 @@ def __init__(__self__, *, """ :param bool enabled: Whether the activity metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1011,8 +1378,19 @@ def __init__(__self__, *, """ :param bool enabled: Whether advanced cost-optimization metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelAdvancedCostOptimizationMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1030,8 +1408,19 @@ def __init__(__self__, *, """ :param bool enabled: Whether advanced data-protection metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelAdvancedDataProtectionMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1049,8 +1438,19 @@ def __init__(__self__, *, """ :param bool enabled: Whether detailed status code metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelDetailedStatusCodeMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1085,7 +1485,22 @@ def __init__(__self__, *, """ :param 'StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsArgs' storage_metrics: Prefix-level storage metrics for S3 Storage Lens. See Prefix Level Storage Metrics below for more details. """ - pulumi.set(__self__, "storage_metrics", storage_metrics) + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevel._configure( + lambda key, value: pulumi.set(__self__, key, value), + storage_metrics=storage_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + storage_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetrics'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if storage_metrics is None and 'storageMetrics' in kwargs: + storage_metrics = kwargs['storageMetrics'] + if storage_metrics is None: + raise TypeError("Missing 'storage_metrics' argument") + + _setter("storage_metrics", storage_metrics) @property @pulumi.getter(name="storageMetrics") @@ -1122,10 +1537,25 @@ def __init__(__self__, *, :param bool enabled: Whether prefix-level storage metrics are enabled. :param 'StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteriaArgs' selection_criteria: Selection criteria. See Selection Criteria below for more details. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + selection_criteria=selection_criteria, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + selection_criteria: Optional['outputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteria'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if selection_criteria is None and 'selectionCriteria' in kwargs: + selection_criteria = kwargs['selectionCriteria'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if selection_criteria is not None: - pulumi.set(__self__, "selection_criteria", selection_criteria) + _setter("selection_criteria", selection_criteria) @property @pulumi.getter @@ -1174,12 +1604,31 @@ def __init__(__self__, *, :param int max_depth: The max depth of the selection criteria. :param float min_storage_bytes_percentage: The minimum number of storage bytes percentage whose metrics will be selected. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteria._configure( + lambda key, value: pulumi.set(__self__, key, value), + delimiter=delimiter, + max_depth=max_depth, + min_storage_bytes_percentage=min_storage_bytes_percentage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delimiter: Optional[str] = None, + max_depth: Optional[int] = None, + min_storage_bytes_percentage: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_depth is None and 'maxDepth' in kwargs: + max_depth = kwargs['maxDepth'] + if min_storage_bytes_percentage is None and 'minStorageBytesPercentage' in kwargs: + min_storage_bytes_percentage = kwargs['minStorageBytesPercentage'] + if delimiter is not None: - pulumi.set(__self__, "delimiter", delimiter) + _setter("delimiter", delimiter) if max_depth is not None: - pulumi.set(__self__, "max_depth", max_depth) + _setter("max_depth", max_depth) if min_storage_bytes_percentage is not None: - pulumi.set(__self__, "min_storage_bytes_percentage", min_storage_bytes_percentage) + _setter("min_storage_bytes_percentage", min_storage_bytes_percentage) @property @pulumi.getter @@ -1213,8 +1662,19 @@ def __init__(__self__, *, """ :param bool enabled: Whether detailed status code metrics are enabled. """ + StorageLensConfigurationStorageLensConfigurationAccountLevelDetailedStatusCodeMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -1232,7 +1692,20 @@ def __init__(__self__, *, """ :param str arn: The Amazon Resource Name (ARN) of the Amazon Web Services organization. """ - pulumi.set(__self__, "arn", arn) + StorageLensConfigurationStorageLensConfigurationAwsOrg._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) @property @pulumi.getter @@ -1271,10 +1744,27 @@ def __init__(__self__, *, :param 'StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetricsArgs' cloud_watch_metrics: Amazon CloudWatch publishing for S3 Storage Lens metrics. See Cloud Watch Metrics below for more details. :param 'StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationArgs' s3_bucket_destination: The bucket where the S3 Storage Lens metrics export will be located. See S3 Bucket Destination below for more details. """ + StorageLensConfigurationStorageLensConfigurationDataExport._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloud_watch_metrics=cloud_watch_metrics, + s3_bucket_destination=s3_bucket_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloud_watch_metrics: Optional['outputs.StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetrics'] = None, + s3_bucket_destination: Optional['outputs.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestination'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloud_watch_metrics is None and 'cloudWatchMetrics' in kwargs: + cloud_watch_metrics = kwargs['cloudWatchMetrics'] + if s3_bucket_destination is None and 's3BucketDestination' in kwargs: + s3_bucket_destination = kwargs['s3BucketDestination'] + if cloud_watch_metrics is not None: - pulumi.set(__self__, "cloud_watch_metrics", cloud_watch_metrics) + _setter("cloud_watch_metrics", cloud_watch_metrics) if s3_bucket_destination is not None: - pulumi.set(__self__, "s3_bucket_destination", s3_bucket_destination) + _setter("s3_bucket_destination", s3_bucket_destination) @property @pulumi.getter(name="cloudWatchMetrics") @@ -1300,7 +1790,20 @@ def __init__(__self__, *, """ :param bool enabled: Whether CloudWatch publishing for S3 Storage Lens metrics is enabled. """ - pulumi.set(__self__, "enabled", enabled) + StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetrics._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -1347,14 +1850,47 @@ def __init__(__self__, *, :param 'StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionArgs' encryption: Encryption of the metrics exports in this bucket. See Encryption below for more details. :param str prefix: The prefix of the destination bucket where the metrics export will be delivered. """ - pulumi.set(__self__, "account_id", account_id) - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "format", format) - pulumi.set(__self__, "output_schema_version", output_schema_version) + StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + arn=arn, + format=format, + output_schema_version=output_schema_version, + encryption=encryption, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[str] = None, + arn: Optional[str] = None, + format: Optional[str] = None, + output_schema_version: Optional[str] = None, + encryption: Optional['outputs.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryption'] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + if arn is None: + raise TypeError("Missing 'arn' argument") + if format is None: + raise TypeError("Missing 'format' argument") + if output_schema_version is None and 'outputSchemaVersion' in kwargs: + output_schema_version = kwargs['outputSchemaVersion'] + if output_schema_version is None: + raise TypeError("Missing 'output_schema_version' argument") + + _setter("account_id", account_id) + _setter("arn", arn) + _setter("format", format) + _setter("output_schema_version", output_schema_version) if encryption is not None: - pulumi.set(__self__, "encryption", encryption) + _setter("encryption", encryption) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter(name="accountId") @@ -1433,10 +1969,27 @@ def __init__(__self__, *, :param 'StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKmsArgs' sse_kms: SSE-KMS encryption. See SSE KMS below for more details. :param Sequence['StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3Args'] sse_s3s: SSE-S3 encryption. An empty configuration block `{}` should be used. """ + StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + sse_kms=sse_kms, + sse_s3s=sse_s3s, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sse_kms: Optional['outputs.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKms'] = None, + sse_s3s: Optional[Sequence['outputs.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sse_kms is None and 'sseKms' in kwargs: + sse_kms = kwargs['sseKms'] + if sse_s3s is None and 'sseS3s' in kwargs: + sse_s3s = kwargs['sseS3s'] + if sse_kms is not None: - pulumi.set(__self__, "sse_kms", sse_kms) + _setter("sse_kms", sse_kms) if sse_s3s is not None: - pulumi.set(__self__, "sse_s3s", sse_s3s) + _setter("sse_s3s", sse_s3s) @property @pulumi.getter(name="sseKms") @@ -1479,7 +2032,22 @@ def __init__(__self__, *, """ :param str key_id: KMS key ARN. """ - pulumi.set(__self__, "key_id", key_id) + StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKms._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is None: + raise TypeError("Missing 'key_id' argument") + + _setter("key_id", key_id) @property @pulumi.getter(name="keyId") @@ -1494,6 +2062,13 @@ def key_id(self) -> str: class StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -1505,10 +2080,23 @@ def __init__(__self__, *, :param Sequence[str] buckets: List of S3 bucket ARNs. :param Sequence[str] regions: List of AWS Regions. """ + StorageLensConfigurationStorageLensConfigurationExclude._configure( + lambda key, value: pulumi.set(__self__, key, value), + buckets=buckets, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + buckets: Optional[Sequence[str]] = None, + regions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if buckets is not None: - pulumi.set(__self__, "buckets", buckets) + _setter("buckets", buckets) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter @@ -1536,10 +2124,23 @@ def __init__(__self__, *, :param Sequence[str] buckets: List of S3 bucket ARNs. :param Sequence[str] regions: List of AWS Regions. """ + StorageLensConfigurationStorageLensConfigurationInclude._configure( + lambda key, value: pulumi.set(__self__, key, value), + buckets=buckets, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + buckets: Optional[Sequence[str]] = None, + regions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if buckets is not None: - pulumi.set(__self__, "buckets", buckets) + _setter("buckets", buckets) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter @@ -1577,10 +2178,43 @@ def __init__(__self__, *, :param bool restrict_public_buckets: Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. When set to `true`: * Only the bucket owner and AWS Services can access buckets with public policies. """ - pulumi.set(__self__, "block_public_acls", block_public_acls) - pulumi.set(__self__, "block_public_policy", block_public_policy) - pulumi.set(__self__, "ignore_public_acls", ignore_public_acls) - pulumi.set(__self__, "restrict_public_buckets", restrict_public_buckets) + GetMultiRegionAccessPointPublicAccessBlockResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_public_acls=block_public_acls, + block_public_policy=block_public_policy, + ignore_public_acls=ignore_public_acls, + restrict_public_buckets=restrict_public_buckets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_public_acls: Optional[bool] = None, + block_public_policy: Optional[bool] = None, + ignore_public_acls: Optional[bool] = None, + restrict_public_buckets: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_public_acls is None and 'blockPublicAcls' in kwargs: + block_public_acls = kwargs['blockPublicAcls'] + if block_public_acls is None: + raise TypeError("Missing 'block_public_acls' argument") + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if block_public_policy is None: + raise TypeError("Missing 'block_public_policy' argument") + if ignore_public_acls is None and 'ignorePublicAcls' in kwargs: + ignore_public_acls = kwargs['ignorePublicAcls'] + if ignore_public_acls is None: + raise TypeError("Missing 'ignore_public_acls' argument") + if restrict_public_buckets is None and 'restrictPublicBuckets' in kwargs: + restrict_public_buckets = kwargs['restrictPublicBuckets'] + if restrict_public_buckets is None: + raise TypeError("Missing 'restrict_public_buckets' argument") + + _setter("block_public_acls", block_public_acls) + _setter("block_public_policy", block_public_policy) + _setter("ignore_public_acls", ignore_public_acls) + _setter("restrict_public_buckets", restrict_public_buckets) @property @pulumi.getter(name="blockPublicAcls") @@ -1632,9 +2266,32 @@ def __init__(__self__, *, :param str bucket_account_id: The AWS account ID that owns the bucket. :param str region: The name of the region. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "bucket_account_id", bucket_account_id) - pulumi.set(__self__, "region", region) + GetMultiRegionAccessPointRegionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + bucket_account_id=bucket_account_id, + region=region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + bucket_account_id: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if bucket_account_id is None and 'bucketAccountId' in kwargs: + bucket_account_id = kwargs['bucketAccountId'] + if bucket_account_id is None: + raise TypeError("Missing 'bucket_account_id' argument") + if region is None: + raise TypeError("Missing 'region' argument") + + _setter("bucket", bucket) + _setter("bucket_account_id", bucket_account_id) + _setter("region", region) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/s3control/storage_lens_configuration.py b/sdk/python/pulumi_aws/s3control/storage_lens_configuration.py index 2d6a3466314..237726fb0f9 100644 --- a/sdk/python/pulumi_aws/s3control/storage_lens_configuration.py +++ b/sdk/python/pulumi_aws/s3control/storage_lens_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[str] account_id: The AWS account ID for the S3 Storage Lens configuration. Defaults to automatically determined account ID of the AWS provider. :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. """ - pulumi.set(__self__, "config_id", config_id) - pulumi.set(__self__, "storage_lens_configuration", storage_lens_configuration) + StorageLensConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + config_id=config_id, + storage_lens_configuration=storage_lens_configuration, + account_id=account_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + config_id: Optional[pulumi.Input[str]] = None, + storage_lens_configuration: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationArgs']] = None, + account_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if config_id is None and 'configId' in kwargs: + config_id = kwargs['configId'] + if config_id is None: + raise TypeError("Missing 'config_id' argument") + if storage_lens_configuration is None and 'storageLensConfiguration' in kwargs: + storage_lens_configuration = kwargs['storageLensConfiguration'] + if storage_lens_configuration is None: + raise TypeError("Missing 'storage_lens_configuration' argument") + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + + _setter("config_id", config_id) + _setter("storage_lens_configuration", storage_lens_configuration) if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="configId") @@ -101,21 +128,50 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _StorageLensConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + arn=arn, + config_id=config_id, + storage_lens_configuration=storage_lens_configuration, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + config_id: Optional[pulumi.Input[str]] = None, + storage_lens_configuration: Optional[pulumi.Input['StorageLensConfigurationStorageLensConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if config_id is None and 'configId' in kwargs: + config_id = kwargs['configId'] + if storage_lens_configuration is None and 'storageLensConfiguration' in kwargs: + storage_lens_configuration = kwargs['storageLensConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if config_id is not None: - pulumi.set(__self__, "config_id", config_id) + _setter("config_id", config_id) if storage_lens_configuration is not None: - pulumi.set(__self__, "storage_lens_configuration", storage_lens_configuration) + _setter("storage_lens_configuration", storage_lens_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="accountId") @@ -338,6 +394,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StorageLensConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -360,6 +420,7 @@ def _internal_init(__self__, if config_id is None and not opts.urn: raise TypeError("Missing required property 'config_id'") __props__.__dict__["config_id"] = config_id + storage_lens_configuration = _utilities.configure(storage_lens_configuration, StorageLensConfigurationStorageLensConfigurationArgs, True) if storage_lens_configuration is None and not opts.urn: raise TypeError("Missing required property 'storage_lens_configuration'") __props__.__dict__["storage_lens_configuration"] = storage_lens_configuration diff --git a/sdk/python/pulumi_aws/s3outposts/_inputs.py b/sdk/python/pulumi_aws/s3outposts/_inputs.py index f9bc138ed8e..70caa81e74f 100644 --- a/sdk/python/pulumi_aws/s3outposts/_inputs.py +++ b/sdk/python/pulumi_aws/s3outposts/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -20,8 +20,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] network_interface_id: Identifier of the Elastic Network Interface (ENI). """ + EndpointNetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interface_id=network_interface_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interface_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) @property @pulumi.getter(name="networkInterfaceId") diff --git a/sdk/python/pulumi_aws/s3outposts/endpoint.py b/sdk/python/pulumi_aws/s3outposts/endpoint.py index 1c2c21118f5..c01ed7d9504 100644 --- a/sdk/python/pulumi_aws/s3outposts/endpoint.py +++ b/sdk/python/pulumi_aws/s3outposts/endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,48 @@ def __init__(__self__, *, :param pulumi.Input[str] access_type: Type of access for the network connectivity. Valid values are `Private` or `CustomerOwnedIp`. :param pulumi.Input[str] customer_owned_ipv4_pool: The ID of a Customer Owned IP Pool. For more on customer owned IP addresses see the [User Guide](https://docs.aws.amazon.com/outposts/latest/userguide/local-rack.html#local-gateway-subnet). """ - pulumi.set(__self__, "outpost_id", outpost_id) - pulumi.set(__self__, "security_group_id", security_group_id) - pulumi.set(__self__, "subnet_id", subnet_id) + EndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + outpost_id=outpost_id, + security_group_id=security_group_id, + subnet_id=subnet_id, + access_type=access_type, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + outpost_id: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + access_type: Optional[pulumi.Input[str]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if outpost_id is None: + raise TypeError("Missing 'outpost_id' argument") + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_id is None: + raise TypeError("Missing 'security_group_id' argument") + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if subnet_id is None: + raise TypeError("Missing 'subnet_id' argument") + if access_type is None and 'accessType' in kwargs: + access_type = kwargs['accessType'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + + _setter("outpost_id", outpost_id) + _setter("security_group_id", security_group_id) + _setter("subnet_id", subnet_id) if access_type is not None: - pulumi.set(__self__, "access_type", access_type) + _setter("access_type", access_type) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) @property @pulumi.getter(name="outpostId") @@ -122,24 +157,67 @@ def __init__(__self__, *, :param pulumi.Input[str] security_group_id: Identifier of the EC2 Security Group. :param pulumi.Input[str] subnet_id: Identifier of the EC2 Subnet. """ + _EndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_type=access_type, + arn=arn, + cidr_block=cidr_block, + creation_time=creation_time, + customer_owned_ipv4_pool=customer_owned_ipv4_pool, + network_interfaces=network_interfaces, + outpost_id=outpost_id, + security_group_id=security_group_id, + subnet_id=subnet_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_type: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + cidr_block: Optional[pulumi.Input[str]] = None, + creation_time: Optional[pulumi.Input[str]] = None, + customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, + network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointNetworkInterfaceArgs']]]] = None, + outpost_id: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_type is None and 'accessType' in kwargs: + access_type = kwargs['accessType'] + if cidr_block is None and 'cidrBlock' in kwargs: + cidr_block = kwargs['cidrBlock'] + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if customer_owned_ipv4_pool is None and 'customerOwnedIpv4Pool' in kwargs: + customer_owned_ipv4_pool = kwargs['customerOwnedIpv4Pool'] + if network_interfaces is None and 'networkInterfaces' in kwargs: + network_interfaces = kwargs['networkInterfaces'] + if outpost_id is None and 'outpostId' in kwargs: + outpost_id = kwargs['outpostId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if access_type is not None: - pulumi.set(__self__, "access_type", access_type) + _setter("access_type", access_type) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cidr_block is not None: - pulumi.set(__self__, "cidr_block", cidr_block) + _setter("cidr_block", cidr_block) if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if customer_owned_ipv4_pool is not None: - pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) + _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) if network_interfaces is not None: - pulumi.set(__self__, "network_interfaces", network_interfaces) + _setter("network_interfaces", network_interfaces) if outpost_id is not None: - pulumi.set(__self__, "outpost_id", outpost_id) + _setter("outpost_id", outpost_id) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) @property @pulumi.getter(name="accessType") @@ -331,6 +409,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/s3outposts/outputs.py b/sdk/python/pulumi_aws/s3outposts/outputs.py index c58545bc4c8..39622aabe13 100644 --- a/sdk/python/pulumi_aws/s3outposts/outputs.py +++ b/sdk/python/pulumi_aws/s3outposts/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -37,8 +37,21 @@ def __init__(__self__, *, """ :param str network_interface_id: Identifier of the Elastic Network Interface (ENI). """ + EndpointNetworkInterface._configure( + lambda key, value: pulumi.set(__self__, key, value), + network_interface_id=network_interface_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + network_interface_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) @property @pulumi.getter(name="networkInterfaceId") diff --git a/sdk/python/pulumi_aws/sagemaker/_inputs.py b/sdk/python/pulumi_aws/sagemaker/_inputs.py index c3ca0579fd0..0a8dd20168f 100644 --- a/sdk/python/pulumi_aws/sagemaker/_inputs.py +++ b/sdk/python/pulumi_aws/sagemaker/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -160,9 +160,28 @@ def __init__(__self__, *, :param pulumi.Input['AppImageConfigKernelGatewayImageConfigKernelSpecArgs'] kernel_spec: The default branch for the Git repository. See Kernel Spec details below. :param pulumi.Input['AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs'] file_system_config: The URL where the Git repository is located. See File System Config details below. """ - pulumi.set(__self__, "kernel_spec", kernel_spec) + AppImageConfigKernelGatewayImageConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kernel_spec=kernel_spec, + file_system_config=file_system_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kernel_spec: Optional[pulumi.Input['AppImageConfigKernelGatewayImageConfigKernelSpecArgs']] = None, + file_system_config: Optional[pulumi.Input['AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kernel_spec is None and 'kernelSpec' in kwargs: + kernel_spec = kwargs['kernelSpec'] + if kernel_spec is None: + raise TypeError("Missing 'kernel_spec' argument") + if file_system_config is None and 'fileSystemConfig' in kwargs: + file_system_config = kwargs['fileSystemConfig'] + + _setter("kernel_spec", kernel_spec) if file_system_config is not None: - pulumi.set(__self__, "file_system_config", file_system_config) + _setter("file_system_config", file_system_config) @property @pulumi.getter(name="kernelSpec") @@ -202,12 +221,33 @@ def __init__(__self__, *, > **Note:** When specifying `default_gid` and `default_uid`, Valid value pairs are [`0`, `0`] and [`100`, `1000`]. """ + AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_gid=default_gid, + default_uid=default_uid, + mount_path=mount_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_gid: Optional[pulumi.Input[int]] = None, + default_uid: Optional[pulumi.Input[int]] = None, + mount_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_gid is None and 'defaultGid' in kwargs: + default_gid = kwargs['defaultGid'] + if default_uid is None and 'defaultUid' in kwargs: + default_uid = kwargs['defaultUid'] + if mount_path is None and 'mountPath' in kwargs: + mount_path = kwargs['mountPath'] + if default_gid is not None: - pulumi.set(__self__, "default_gid", default_gid) + _setter("default_gid", default_gid) if default_uid is not None: - pulumi.set(__self__, "default_uid", default_uid) + _setter("default_uid", default_uid) if mount_path is not None: - pulumi.set(__self__, "mount_path", mount_path) + _setter("mount_path", mount_path) @property @pulumi.getter(name="defaultGid") @@ -257,9 +297,26 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the kernel. :param pulumi.Input[str] display_name: The display name of the kernel. """ - pulumi.set(__self__, "name", name) + AppImageConfigKernelGatewayImageConfigKernelSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + display_name=display_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + + _setter("name", name) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) @property @pulumi.getter @@ -299,14 +356,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + AppResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -368,11 +450,32 @@ def __init__(__self__, *, :param pulumi.Input[str] branch: The default branch for the Git repository. :param pulumi.Input[str] secret_arn: The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` """ - pulumi.set(__self__, "repository_url", repository_url) + CodeRepositoryGitConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + branch=branch, + secret_arn=secret_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[pulumi.Input[str]] = None, + branch: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + + _setter("repository_url", repository_url) if branch is not None: - pulumi.set(__self__, "branch", branch) + _setter("branch", branch) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) @property @pulumi.getter(name="repositoryUrl") @@ -424,13 +527,38 @@ def __init__(__self__, *, :param pulumi.Input[str] post_analytics_processor_source_uri: An Amazon S3 URI to a script that is called after analysis has been performed. Applicable only for the built-in (first party) containers. :param pulumi.Input[str] record_preprocessor_source_uri: An Amazon S3 URI to a script that is called per row prior to running analysis. It can base64 decode the payload and convert it into a flatted json so that the built-in container can use the converted data. Applicable only for the built-in (first party) containers. """ - pulumi.set(__self__, "image_uri", image_uri) + DataQualityJobDefinitionDataQualityAppSpecificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_uri=image_uri, + environment=environment, + post_analytics_processor_source_uri=post_analytics_processor_source_uri, + record_preprocessor_source_uri=record_preprocessor_source_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_uri: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + post_analytics_processor_source_uri: Optional[pulumi.Input[str]] = None, + record_preprocessor_source_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_uri is None and 'imageUri' in kwargs: + image_uri = kwargs['imageUri'] + if image_uri is None: + raise TypeError("Missing 'image_uri' argument") + if post_analytics_processor_source_uri is None and 'postAnalyticsProcessorSourceUri' in kwargs: + post_analytics_processor_source_uri = kwargs['postAnalyticsProcessorSourceUri'] + if record_preprocessor_source_uri is None and 'recordPreprocessorSourceUri' in kwargs: + record_preprocessor_source_uri = kwargs['recordPreprocessorSourceUri'] + + _setter("image_uri", image_uri) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if post_analytics_processor_source_uri is not None: - pulumi.set(__self__, "post_analytics_processor_source_uri", post_analytics_processor_source_uri) + _setter("post_analytics_processor_source_uri", post_analytics_processor_source_uri) if record_preprocessor_source_uri is not None: - pulumi.set(__self__, "record_preprocessor_source_uri", record_preprocessor_source_uri) + _setter("record_preprocessor_source_uri", record_preprocessor_source_uri) @property @pulumi.getter(name="imageUri") @@ -490,10 +618,27 @@ def __init__(__self__, *, :param pulumi.Input['DataQualityJobDefinitionDataQualityBaselineConfigConstraintsResourceArgs'] constraints_resource: The constraints resource for a monitoring job. Fields are documented below. :param pulumi.Input['DataQualityJobDefinitionDataQualityBaselineConfigStatisticsResourceArgs'] statistics_resource: The statistics resource for a monitoring job. Fields are documented below. """ + DataQualityJobDefinitionDataQualityBaselineConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + constraints_resource=constraints_resource, + statistics_resource=statistics_resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + constraints_resource: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityBaselineConfigConstraintsResourceArgs']] = None, + statistics_resource: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityBaselineConfigStatisticsResourceArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if constraints_resource is None and 'constraintsResource' in kwargs: + constraints_resource = kwargs['constraintsResource'] + if statistics_resource is None and 'statisticsResource' in kwargs: + statistics_resource = kwargs['statisticsResource'] + if constraints_resource is not None: - pulumi.set(__self__, "constraints_resource", constraints_resource) + _setter("constraints_resource", constraints_resource) if statistics_resource is not None: - pulumi.set(__self__, "statistics_resource", statistics_resource) + _setter("statistics_resource", statistics_resource) @property @pulumi.getter(name="constraintsResource") @@ -527,8 +672,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] s3_uri: The Amazon S3 URI for the constraints resource. """ + DataQualityJobDefinitionDataQualityBaselineConfigConstraintsResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is not None: - pulumi.set(__self__, "s3_uri", s3_uri) + _setter("s3_uri", s3_uri) @property @pulumi.getter(name="s3Uri") @@ -550,8 +708,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] s3_uri: The Amazon S3 URI for the statistics resource. """ + DataQualityJobDefinitionDataQualityBaselineConfigStatisticsResourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is not None: - pulumi.set(__self__, "s3_uri", s3_uri) + _setter("s3_uri", s3_uri) @property @pulumi.getter(name="s3Uri") @@ -575,10 +746,27 @@ def __init__(__self__, *, :param pulumi.Input['DataQualityJobDefinitionDataQualityJobInputBatchTransformInputArgs'] batch_transform_input: Input object for the batch transform job. Fields are documented below. :param pulumi.Input['DataQualityJobDefinitionDataQualityJobInputEndpointInputArgs'] endpoint_input: Input object for the endpoint. Fields are documented below. """ + DataQualityJobDefinitionDataQualityJobInputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + batch_transform_input=batch_transform_input, + endpoint_input=endpoint_input, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + batch_transform_input: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobInputBatchTransformInputArgs']] = None, + endpoint_input: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobInputEndpointInputArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if batch_transform_input is None and 'batchTransformInput' in kwargs: + batch_transform_input = kwargs['batchTransformInput'] + if endpoint_input is None and 'endpointInput' in kwargs: + endpoint_input = kwargs['endpointInput'] + if batch_transform_input is not None: - pulumi.set(__self__, "batch_transform_input", batch_transform_input) + _setter("batch_transform_input", batch_transform_input) if endpoint_input is not None: - pulumi.set(__self__, "endpoint_input", endpoint_input) + _setter("endpoint_input", endpoint_input) @property @pulumi.getter(name="batchTransformInput") @@ -620,14 +808,47 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_data_distribution_type: Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to `FullyReplicated`. Valid values are `FullyReplicated` or `ShardedByS3Key` :param pulumi.Input[str] s3_input_mode: Whether the `Pipe` or `File` is used as the input mode for transferring data for the monitoring job. `Pipe` mode is recommended for large datasets. `File` mode is useful for small files that fit in memory. Defaults to `File`. Valid values are `Pipe` or `File` """ - pulumi.set(__self__, "data_captured_destination_s3_uri", data_captured_destination_s3_uri) - pulumi.set(__self__, "dataset_format", dataset_format) + DataQualityJobDefinitionDataQualityJobInputBatchTransformInputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_captured_destination_s3_uri=data_captured_destination_s3_uri, + dataset_format=dataset_format, + local_path=local_path, + s3_data_distribution_type=s3_data_distribution_type, + s3_input_mode=s3_input_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_captured_destination_s3_uri: Optional[pulumi.Input[str]] = None, + dataset_format: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatArgs']] = None, + local_path: Optional[pulumi.Input[str]] = None, + s3_data_distribution_type: Optional[pulumi.Input[str]] = None, + s3_input_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_captured_destination_s3_uri is None and 'dataCapturedDestinationS3Uri' in kwargs: + data_captured_destination_s3_uri = kwargs['dataCapturedDestinationS3Uri'] + if data_captured_destination_s3_uri is None: + raise TypeError("Missing 'data_captured_destination_s3_uri' argument") + if dataset_format is None and 'datasetFormat' in kwargs: + dataset_format = kwargs['datasetFormat'] + if dataset_format is None: + raise TypeError("Missing 'dataset_format' argument") + if local_path is None and 'localPath' in kwargs: + local_path = kwargs['localPath'] + if s3_data_distribution_type is None and 's3DataDistributionType' in kwargs: + s3_data_distribution_type = kwargs['s3DataDistributionType'] + if s3_input_mode is None and 's3InputMode' in kwargs: + s3_input_mode = kwargs['s3InputMode'] + + _setter("data_captured_destination_s3_uri", data_captured_destination_s3_uri) + _setter("dataset_format", dataset_format) if local_path is not None: - pulumi.set(__self__, "local_path", local_path) + _setter("local_path", local_path) if s3_data_distribution_type is not None: - pulumi.set(__self__, "s3_data_distribution_type", s3_data_distribution_type) + _setter("s3_data_distribution_type", s3_data_distribution_type) if s3_input_mode is not None: - pulumi.set(__self__, "s3_input_mode", s3_input_mode) + _setter("s3_input_mode", s3_input_mode) @property @pulumi.getter(name="dataCapturedDestinationS3Uri") @@ -699,10 +920,23 @@ def __init__(__self__, *, :param pulumi.Input['DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatCsvArgs'] csv: The CSV dataset used in the monitoring job. Fields are documented below. :param pulumi.Input['DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatJsonArgs'] json: The JSON dataset used in the monitoring job. Fields are documented below. """ + DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv=csv, + json=json, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatCsvArgs']] = None, + json: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatJsonArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv is not None: - pulumi.set(__self__, "csv", csv) + _setter("csv", csv) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) @property @pulumi.getter @@ -736,8 +970,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] header: Indicates if the CSV data has a header. """ + DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatCsvArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) @property @pulumi.getter @@ -759,8 +1004,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] line: Indicates if the file should be read as a json object per line. """ + DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatJsonArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + line=line, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + line: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if line is not None: - pulumi.set(__self__, "line", line) + _setter("line", line) @property @pulumi.getter @@ -788,13 +1044,40 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_data_distribution_type: Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to `FullyReplicated`. Valid values are `FullyReplicated` or `ShardedByS3Key` :param pulumi.Input[str] s3_input_mode: Whether the `Pipe` or `File` is used as the input mode for transferring data for the monitoring job. `Pipe` mode is recommended for large datasets. `File` mode is useful for small files that fit in memory. Defaults to `File`. Valid values are `Pipe` or `File` """ - pulumi.set(__self__, "endpoint_name", endpoint_name) + DataQualityJobDefinitionDataQualityJobInputEndpointInputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_name=endpoint_name, + local_path=local_path, + s3_data_distribution_type=s3_data_distribution_type, + s3_input_mode=s3_input_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_name: Optional[pulumi.Input[str]] = None, + local_path: Optional[pulumi.Input[str]] = None, + s3_data_distribution_type: Optional[pulumi.Input[str]] = None, + s3_input_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_name is None and 'endpointName' in kwargs: + endpoint_name = kwargs['endpointName'] + if endpoint_name is None: + raise TypeError("Missing 'endpoint_name' argument") + if local_path is None and 'localPath' in kwargs: + local_path = kwargs['localPath'] + if s3_data_distribution_type is None and 's3DataDistributionType' in kwargs: + s3_data_distribution_type = kwargs['s3DataDistributionType'] + if s3_input_mode is None and 's3InputMode' in kwargs: + s3_input_mode = kwargs['s3InputMode'] + + _setter("endpoint_name", endpoint_name) if local_path is not None: - pulumi.set(__self__, "local_path", local_path) + _setter("local_path", local_path) if s3_data_distribution_type is not None: - pulumi.set(__self__, "s3_data_distribution_type", s3_data_distribution_type) + _setter("s3_data_distribution_type", s3_data_distribution_type) if s3_input_mode is not None: - pulumi.set(__self__, "s3_input_mode", s3_input_mode) + _setter("s3_input_mode", s3_input_mode) @property @pulumi.getter(name="endpointName") @@ -854,9 +1137,28 @@ def __init__(__self__, *, :param pulumi.Input['DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsArgs'] monitoring_outputs: Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded. Fields are documented below. :param pulumi.Input[str] kms_key_id: The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. """ - pulumi.set(__self__, "monitoring_outputs", monitoring_outputs) + DataQualityJobDefinitionDataQualityJobOutputConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + monitoring_outputs=monitoring_outputs, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + monitoring_outputs: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsArgs']] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if monitoring_outputs is None and 'monitoringOutputs' in kwargs: + monitoring_outputs = kwargs['monitoringOutputs'] + if monitoring_outputs is None: + raise TypeError("Missing 'monitoring_outputs' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("monitoring_outputs", monitoring_outputs) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="monitoringOutputs") @@ -890,7 +1192,22 @@ def __init__(__self__, *, """ :param pulumi.Input['DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsS3OutputArgs'] s3_output: The Amazon S3 storage location where the results of a monitoring job are saved. Fields are documented below. """ - pulumi.set(__self__, "s3_output", s3_output) + DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_output=s3_output, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_output: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsS3OutputArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_output is None and 's3Output' in kwargs: + s3_output = kwargs['s3Output'] + if s3_output is None: + raise TypeError("Missing 's3_output' argument") + + _setter("s3_output", s3_output) @property @pulumi.getter(name="s3Output") @@ -916,11 +1233,34 @@ def __init__(__self__, *, :param pulumi.Input[str] local_path: Path to the filesystem where the batch transform data is available to the container. Defaults to `/opt/ml/processing/input`. :param pulumi.Input[str] s3_upload_mode: Whether to upload the results of the monitoring job continuously or after the job completes. Valid values are `Continuous` or `EndOfJob` """ - pulumi.set(__self__, "s3_uri", s3_uri) + DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsS3OutputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + local_path=local_path, + s3_upload_mode=s3_upload_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[pulumi.Input[str]] = None, + local_path: Optional[pulumi.Input[str]] = None, + s3_upload_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if local_path is None and 'localPath' in kwargs: + local_path = kwargs['localPath'] + if s3_upload_mode is None and 's3UploadMode' in kwargs: + s3_upload_mode = kwargs['s3UploadMode'] + + _setter("s3_uri", s3_uri) if local_path is not None: - pulumi.set(__self__, "local_path", local_path) + _setter("local_path", local_path) if s3_upload_mode is not None: - pulumi.set(__self__, "s3_upload_mode", s3_upload_mode) + _setter("s3_upload_mode", s3_upload_mode) @property @pulumi.getter(name="s3Uri") @@ -966,7 +1306,22 @@ def __init__(__self__, *, """ :param pulumi.Input['DataQualityJobDefinitionJobResourcesClusterConfigArgs'] cluster_config: The configuration for the cluster resources used to run the processing job. Fields are documented below. """ - pulumi.set(__self__, "cluster_config", cluster_config) + DataQualityJobDefinitionJobResourcesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_config=cluster_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_config: Optional[pulumi.Input['DataQualityJobDefinitionJobResourcesClusterConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_config is None and 'clusterConfig' in kwargs: + cluster_config = kwargs['clusterConfig'] + if cluster_config is None: + raise TypeError("Missing 'cluster_config' argument") + + _setter("cluster_config", cluster_config) @property @pulumi.getter(name="clusterConfig") @@ -994,11 +1349,42 @@ def __init__(__self__, *, :param pulumi.Input[int] volume_size_in_gb: The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario. :param pulumi.Input[str] volume_kms_key_id: The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job. """ - pulumi.set(__self__, "instance_count", instance_count) - pulumi.set(__self__, "instance_type", instance_type) - pulumi.set(__self__, "volume_size_in_gb", volume_size_in_gb) + DataQualityJobDefinitionJobResourcesClusterConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_count=instance_count, + instance_type=instance_type, + volume_size_in_gb=volume_size_in_gb, + volume_kms_key_id=volume_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_count: Optional[pulumi.Input[int]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + volume_size_in_gb: Optional[pulumi.Input[int]] = None, + volume_kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_count is None: + raise TypeError("Missing 'instance_count' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if volume_size_in_gb is None and 'volumeSizeInGb' in kwargs: + volume_size_in_gb = kwargs['volumeSizeInGb'] + if volume_size_in_gb is None: + raise TypeError("Missing 'volume_size_in_gb' argument") + if volume_kms_key_id is None and 'volumeKmsKeyId' in kwargs: + volume_kms_key_id = kwargs['volumeKmsKeyId'] + + _setter("instance_count", instance_count) + _setter("instance_type", instance_type) + _setter("volume_size_in_gb", volume_size_in_gb) if volume_kms_key_id is not None: - pulumi.set(__self__, "volume_kms_key_id", volume_kms_key_id) + _setter("volume_kms_key_id", volume_kms_key_id) @property @pulumi.getter(name="instanceCount") @@ -1060,12 +1446,33 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_network_isolation: Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job. :param pulumi.Input['DataQualityJobDefinitionNetworkConfigVpcConfigArgs'] vpc_config: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. Fields are documented below. """ + DataQualityJobDefinitionNetworkConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_inter_container_traffic_encryption=enable_inter_container_traffic_encryption, + enable_network_isolation=enable_network_isolation, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_inter_container_traffic_encryption: Optional[pulumi.Input[bool]] = None, + enable_network_isolation: Optional[pulumi.Input[bool]] = None, + vpc_config: Optional[pulumi.Input['DataQualityJobDefinitionNetworkConfigVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_inter_container_traffic_encryption is None and 'enableInterContainerTrafficEncryption' in kwargs: + enable_inter_container_traffic_encryption = kwargs['enableInterContainerTrafficEncryption'] + if enable_network_isolation is None and 'enableNetworkIsolation' in kwargs: + enable_network_isolation = kwargs['enableNetworkIsolation'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if enable_inter_container_traffic_encryption is not None: - pulumi.set(__self__, "enable_inter_container_traffic_encryption", enable_inter_container_traffic_encryption) + _setter("enable_inter_container_traffic_encryption", enable_inter_container_traffic_encryption) if enable_network_isolation is not None: - pulumi.set(__self__, "enable_network_isolation", enable_network_isolation) + _setter("enable_network_isolation", enable_network_isolation) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="enableInterContainerTrafficEncryption") @@ -1113,8 +1520,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the `subnets` field. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: The ID of the subnets in the VPC to which you want to connect your training job or model. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) + DataQualityJobDefinitionNetworkConfigVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroupIds") @@ -1148,8 +1574,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] max_runtime_in_seconds: The maximum runtime allowed in seconds. """ + DataQualityJobDefinitionStoppingConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_runtime_in_seconds=max_runtime_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_runtime_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_runtime_in_seconds is None and 'maxRuntimeInSeconds' in kwargs: + max_runtime_in_seconds = kwargs['maxRuntimeInSeconds'] + if max_runtime_in_seconds is not None: - pulumi.set(__self__, "max_runtime_in_seconds", max_runtime_in_seconds) + _setter("max_runtime_in_seconds", max_runtime_in_seconds) @property @pulumi.getter(name="maxRuntimeInSeconds") @@ -1175,11 +1614,32 @@ def __init__(__self__, *, :param pulumi.Input[str] description: A description for the device. :param pulumi.Input[str] iot_thing_name: Amazon Web Services Internet of Things (IoT) object name. """ - pulumi.set(__self__, "device_name", device_name) + DeviceDeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + description=description, + iot_thing_name=iot_thing_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + iot_thing_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if iot_thing_name is None and 'iotThingName' in kwargs: + iot_thing_name = kwargs['iotThingName'] + + _setter("device_name", device_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if iot_thing_name is not None: - pulumi.set(__self__, "iot_thing_name", iot_thing_name) + _setter("iot_thing_name", iot_thing_name) @property @pulumi.getter(name="deviceName") @@ -1227,9 +1687,28 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_output_location: The Amazon Simple Storage (S3) bucker URI. :param pulumi.Input[str] kms_key_id: The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. """ - pulumi.set(__self__, "s3_output_location", s3_output_location) + DeviceFleetOutputConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_output_location=s3_output_location, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_output_location: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_output_location is None and 's3OutputLocation' in kwargs: + s3_output_location = kwargs['s3OutputLocation'] + if s3_output_location is None: + raise TypeError("Missing 's3_output_location' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("s3_output_location", s3_output_location) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="s3OutputLocation") @@ -1269,13 +1748,40 @@ def __init__(__self__, *, :param pulumi.Input['DomainDefaultSpaceSettingsKernelGatewayAppSettingsArgs'] kernel_gateway_app_settings: The kernel gateway app settings. See Kernel Gateway App Settings below. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: The security groups for the Amazon Virtual Private Cloud that the space uses for communication. """ - pulumi.set(__self__, "execution_role", execution_role) + DomainDefaultSpaceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + jupyter_server_app_settings=jupyter_server_app_settings, + kernel_gateway_app_settings=kernel_gateway_app_settings, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[pulumi.Input[str]] = None, + jupyter_server_app_settings: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs']] = None, + kernel_gateway_app_settings: Optional[pulumi.Input['DomainDefaultSpaceSettingsKernelGatewayAppSettingsArgs']] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if jupyter_server_app_settings is None and 'jupyterServerAppSettings' in kwargs: + jupyter_server_app_settings = kwargs['jupyterServerAppSettings'] + if kernel_gateway_app_settings is None and 'kernelGatewayAppSettings' in kwargs: + kernel_gateway_app_settings = kwargs['kernelGatewayAppSettings'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("execution_role", execution_role) if jupyter_server_app_settings is not None: - pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + _setter("jupyter_server_app_settings", jupyter_server_app_settings) if kernel_gateway_app_settings is not None: - pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + _setter("kernel_gateway_app_settings", kernel_gateway_app_settings) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter(name="executionRole") @@ -1337,12 +1843,33 @@ def __init__(__self__, *, :param pulumi.Input['DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + code_repositories=code_repositories, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs']]]] = None, + default_resource_spec: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs']] = None, + lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_repositories is None and 'codeRepositories' in kwargs: + code_repositories = kwargs['codeRepositories'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if code_repositories is not None: - pulumi.set(__self__, "code_repositories", code_repositories) + _setter("code_repositories", code_repositories) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="codeRepositories") @@ -1388,7 +1915,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] repository_url: The URL of the Git repository. """ - pulumi.set(__self__, "repository_url", repository_url) + DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + + _setter("repository_url", repository_url) @property @pulumi.getter(name="repositoryUrl") @@ -1416,14 +1958,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -1485,12 +2052,33 @@ def __init__(__self__, *, :param pulumi.Input['DomainDefaultSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + DomainDefaultSpaceSettingsKernelGatewayAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultSpaceSettingsKernelGatewayAppSettingsCustomImageArgs']]]] = None, + default_resource_spec: Optional[pulumi.Input['DomainDefaultSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs']] = None, + lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="customImages") @@ -1540,10 +2128,35 @@ def __init__(__self__, *, :param pulumi.Input[str] image_name: The name of the Custom Image. :param pulumi.Input[int] image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + DomainDefaultSpaceSettingsKernelGatewayAppSettingsCustomImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + image_version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -1595,14 +2208,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -1676,23 +2314,70 @@ def __init__(__self__, *, :param pulumi.Input['DomainDefaultUserSettingsSharingSettingsArgs'] sharing_settings: The sharing settings. See Sharing Settings below. :param pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsArgs'] tensor_board_app_settings: The TensorBoard app settings. See TensorBoard App Settings below. """ - pulumi.set(__self__, "execution_role", execution_role) + DomainDefaultUserSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + canvas_app_settings=canvas_app_settings, + jupyter_server_app_settings=jupyter_server_app_settings, + kernel_gateway_app_settings=kernel_gateway_app_settings, + r_session_app_settings=r_session_app_settings, + r_studio_server_pro_app_settings=r_studio_server_pro_app_settings, + security_groups=security_groups, + sharing_settings=sharing_settings, + tensor_board_app_settings=tensor_board_app_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[pulumi.Input[str]] = None, + canvas_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsArgs']] = None, + jupyter_server_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsArgs']] = None, + kernel_gateway_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsArgs']] = None, + r_session_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsRSessionAppSettingsArgs']] = None, + r_studio_server_pro_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsRStudioServerProAppSettingsArgs']] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sharing_settings: Optional[pulumi.Input['DomainDefaultUserSettingsSharingSettingsArgs']] = None, + tensor_board_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if canvas_app_settings is None and 'canvasAppSettings' in kwargs: + canvas_app_settings = kwargs['canvasAppSettings'] + if jupyter_server_app_settings is None and 'jupyterServerAppSettings' in kwargs: + jupyter_server_app_settings = kwargs['jupyterServerAppSettings'] + if kernel_gateway_app_settings is None and 'kernelGatewayAppSettings' in kwargs: + kernel_gateway_app_settings = kwargs['kernelGatewayAppSettings'] + if r_session_app_settings is None and 'rSessionAppSettings' in kwargs: + r_session_app_settings = kwargs['rSessionAppSettings'] + if r_studio_server_pro_app_settings is None and 'rStudioServerProAppSettings' in kwargs: + r_studio_server_pro_app_settings = kwargs['rStudioServerProAppSettings'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if sharing_settings is None and 'sharingSettings' in kwargs: + sharing_settings = kwargs['sharingSettings'] + if tensor_board_app_settings is None and 'tensorBoardAppSettings' in kwargs: + tensor_board_app_settings = kwargs['tensorBoardAppSettings'] + + _setter("execution_role", execution_role) if canvas_app_settings is not None: - pulumi.set(__self__, "canvas_app_settings", canvas_app_settings) + _setter("canvas_app_settings", canvas_app_settings) if jupyter_server_app_settings is not None: - pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + _setter("jupyter_server_app_settings", jupyter_server_app_settings) if kernel_gateway_app_settings is not None: - pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + _setter("kernel_gateway_app_settings", kernel_gateway_app_settings) if r_session_app_settings is not None: - pulumi.set(__self__, "r_session_app_settings", r_session_app_settings) + _setter("r_session_app_settings", r_session_app_settings) if r_studio_server_pro_app_settings is not None: - pulumi.set(__self__, "r_studio_server_pro_app_settings", r_studio_server_pro_app_settings) + _setter("r_studio_server_pro_app_settings", r_studio_server_pro_app_settings) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if sharing_settings is not None: - pulumi.set(__self__, "sharing_settings", sharing_settings) + _setter("sharing_settings", sharing_settings) if tensor_board_app_settings is not None: - pulumi.set(__self__, "tensor_board_app_settings", tensor_board_app_settings) + _setter("tensor_board_app_settings", tensor_board_app_settings) @property @pulumi.getter(name="executionRole") @@ -1814,12 +2499,33 @@ def __init__(__self__, *, :param pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsTimeSeriesForecastingSettingsArgs'] time_series_forecasting_settings: Time series forecast settings for the Canvas app. See Time Series Forecasting Settings below. :param pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsArgs'] workspace_settings: The workspace settings for the SageMaker Canvas application. See Workspace Settings below. """ + DomainDefaultUserSettingsCanvasAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_register_settings=model_register_settings, + time_series_forecasting_settings=time_series_forecasting_settings, + workspace_settings=workspace_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_register_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsModelRegisterSettingsArgs']] = None, + time_series_forecasting_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsTimeSeriesForecastingSettingsArgs']] = None, + workspace_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_register_settings is None and 'modelRegisterSettings' in kwargs: + model_register_settings = kwargs['modelRegisterSettings'] + if time_series_forecasting_settings is None and 'timeSeriesForecastingSettings' in kwargs: + time_series_forecasting_settings = kwargs['timeSeriesForecastingSettings'] + if workspace_settings is None and 'workspaceSettings' in kwargs: + workspace_settings = kwargs['workspaceSettings'] + if model_register_settings is not None: - pulumi.set(__self__, "model_register_settings", model_register_settings) + _setter("model_register_settings", model_register_settings) if time_series_forecasting_settings is not None: - pulumi.set(__self__, "time_series_forecasting_settings", time_series_forecasting_settings) + _setter("time_series_forecasting_settings", time_series_forecasting_settings) if workspace_settings is not None: - pulumi.set(__self__, "workspace_settings", workspace_settings) + _setter("workspace_settings", workspace_settings) @property @pulumi.getter(name="modelRegisterSettings") @@ -1867,10 +2573,25 @@ def __init__(__self__, *, :param pulumi.Input[str] cross_account_model_register_role_arn: The Amazon Resource Name (ARN) of the SageMaker model registry account. Required only to register model versions created by a different SageMaker Canvas AWS account than the AWS account in which SageMaker model registry is set up. :param pulumi.Input[str] status: Describes whether the integration to the model registry is enabled or disabled in the Canvas application. Valid values are `ENABLED` and `DISABLED`. """ + DomainDefaultUserSettingsCanvasAppSettingsModelRegisterSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cross_account_model_register_role_arn=cross_account_model_register_role_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cross_account_model_register_role_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cross_account_model_register_role_arn is None and 'crossAccountModelRegisterRoleArn' in kwargs: + cross_account_model_register_role_arn = kwargs['crossAccountModelRegisterRoleArn'] + if cross_account_model_register_role_arn is not None: - pulumi.set(__self__, "cross_account_model_register_role_arn", cross_account_model_register_role_arn) + _setter("cross_account_model_register_role_arn", cross_account_model_register_role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="crossAccountModelRegisterRoleArn") @@ -1906,10 +2627,25 @@ def __init__(__self__, *, :param pulumi.Input[str] amazon_forecast_role_arn: The IAM role that Canvas passes to Amazon Forecast for time series forecasting. By default, Canvas uses the execution role specified in the UserProfile that launches the Canvas app. If an execution role is not specified in the UserProfile, Canvas uses the execution role specified in the Domain that owns the UserProfile. To allow time series forecasting, this IAM role should have the [AmazonSageMakerCanvasForecastAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasForecastAccess) policy attached and forecast.amazonaws.com added in the trust relationship as a service principal. :param pulumi.Input[str] status: Describes whether time series forecasting is enabled or disabled in the Canvas app. Valid values are `ENABLED` and `DISABLED`. """ + DomainDefaultUserSettingsCanvasAppSettingsTimeSeriesForecastingSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_forecast_role_arn=amazon_forecast_role_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_forecast_role_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_forecast_role_arn is None and 'amazonForecastRoleArn' in kwargs: + amazon_forecast_role_arn = kwargs['amazonForecastRoleArn'] + if amazon_forecast_role_arn is not None: - pulumi.set(__self__, "amazon_forecast_role_arn", amazon_forecast_role_arn) + _setter("amazon_forecast_role_arn", amazon_forecast_role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="amazonForecastRoleArn") @@ -1945,10 +2681,27 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_artifact_path: The Amazon S3 bucket used to store artifacts generated by Canvas. Updating the Amazon S3 location impacts existing configuration settings, and Canvas users no longer have access to their artifacts. Canvas users must log out and log back in to apply the new location. :param pulumi.Input[str] s3_kms_key_id: The Amazon Web Services Key Management Service (KMS) encryption key ID that is used to encrypt artifacts generated by Canvas in the Amazon S3 bucket. """ + DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_artifact_path=s3_artifact_path, + s3_kms_key_id=s3_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_artifact_path: Optional[pulumi.Input[str]] = None, + s3_kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_artifact_path is None and 's3ArtifactPath' in kwargs: + s3_artifact_path = kwargs['s3ArtifactPath'] + if s3_kms_key_id is None and 's3KmsKeyId' in kwargs: + s3_kms_key_id = kwargs['s3KmsKeyId'] + if s3_artifact_path is not None: - pulumi.set(__self__, "s3_artifact_path", s3_artifact_path) + _setter("s3_artifact_path", s3_artifact_path) if s3_kms_key_id is not None: - pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + _setter("s3_kms_key_id", s3_kms_key_id) @property @pulumi.getter(name="s3ArtifactPath") @@ -1986,12 +2739,33 @@ def __init__(__self__, *, :param pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + DomainDefaultUserSettingsJupyterServerAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + code_repositories=code_repositories, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArgs']]]] = None, + default_resource_spec: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs']] = None, + lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_repositories is None and 'codeRepositories' in kwargs: + code_repositories = kwargs['codeRepositories'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if code_repositories is not None: - pulumi.set(__self__, "code_repositories", code_repositories) + _setter("code_repositories", code_repositories) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="codeRepositories") @@ -2037,7 +2811,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] repository_url: The URL of the Git repository. """ - pulumi.set(__self__, "repository_url", repository_url) + DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + + _setter("repository_url", repository_url) @property @pulumi.getter(name="repositoryUrl") @@ -2065,14 +2854,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -2134,12 +2948,33 @@ def __init__(__self__, *, :param pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + DomainDefaultUserSettingsKernelGatewayAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs']]]] = None, + default_resource_spec: Optional[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs']] = None, + lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="customImages") @@ -2189,10 +3024,35 @@ def __init__(__self__, *, :param pulumi.Input[str] image_name: The name of the Custom Image. :param pulumi.Input[int] image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + image_version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -2244,14 +3104,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -2311,10 +3196,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsRSessionAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. :param pulumi.Input['DomainDefaultUserSettingsRSessionAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. """ + DomainDefaultUserSettingsRSessionAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsRSessionAppSettingsCustomImageArgs']]]] = None, + default_resource_spec: Optional[pulumi.Input['DomainDefaultUserSettingsRSessionAppSettingsDefaultResourceSpecArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) @property @pulumi.getter(name="customImages") @@ -2352,10 +3254,35 @@ def __init__(__self__, *, :param pulumi.Input[str] image_name: The name of the Custom Image. :param pulumi.Input[int] image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + DomainDefaultUserSettingsRSessionAppSettingsCustomImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + image_version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -2407,14 +3334,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultUserSettingsRSessionAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -2474,10 +3426,27 @@ def __init__(__self__, *, :param pulumi.Input[str] access_status: Indicates whether the current user has access to the RStudioServerPro app. Valid values are `ENABLED` and `DISABLED`. :param pulumi.Input[str] user_group: The level of permissions that the user has within the RStudioServerPro app. This value defaults to `R_STUDIO_USER`. The `R_STUDIO_ADMIN` value allows the user access to the RStudio Administrative Dashboard. Valid values are `R_STUDIO_USER` and `R_STUDIO_ADMIN`. """ + DomainDefaultUserSettingsRStudioServerProAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_status=access_status, + user_group=user_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_status: Optional[pulumi.Input[str]] = None, + user_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_status is None and 'accessStatus' in kwargs: + access_status = kwargs['accessStatus'] + if user_group is None and 'userGroup' in kwargs: + user_group = kwargs['userGroup'] + if access_status is not None: - pulumi.set(__self__, "access_status", access_status) + _setter("access_status", access_status) if user_group is not None: - pulumi.set(__self__, "user_group", user_group) + _setter("user_group", user_group) @property @pulumi.getter(name="accessStatus") @@ -2515,12 +3484,33 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_kms_key_id: When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. :param pulumi.Input[str] s3_output_path: When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. """ + DomainDefaultUserSettingsSharingSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + notebook_output_option=notebook_output_option, + s3_kms_key_id=s3_kms_key_id, + s3_output_path=s3_output_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notebook_output_option: Optional[pulumi.Input[str]] = None, + s3_kms_key_id: Optional[pulumi.Input[str]] = None, + s3_output_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notebook_output_option is None and 'notebookOutputOption' in kwargs: + notebook_output_option = kwargs['notebookOutputOption'] + if s3_kms_key_id is None and 's3KmsKeyId' in kwargs: + s3_kms_key_id = kwargs['s3KmsKeyId'] + if s3_output_path is None and 's3OutputPath' in kwargs: + s3_output_path = kwargs['s3OutputPath'] + if notebook_output_option is not None: - pulumi.set(__self__, "notebook_output_option", notebook_output_option) + _setter("notebook_output_option", notebook_output_option) if s3_kms_key_id is not None: - pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + _setter("s3_kms_key_id", s3_kms_key_id) if s3_output_path is not None: - pulumi.set(__self__, "s3_output_path", s3_output_path) + _setter("s3_output_path", s3_output_path) @property @pulumi.getter(name="notebookOutputOption") @@ -2566,8 +3556,21 @@ def __init__(__self__, *, """ :param pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. """ + DomainDefaultUserSettingsTensorBoardAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_resource_spec=default_resource_spec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_resource_spec: Optional[pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) @property @pulumi.getter(name="defaultResourceSpec") @@ -2595,14 +3598,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -2664,12 +3692,33 @@ def __init__(__self__, *, :param pulumi.Input['DomainDomainSettingsRStudioServerProDomainSettingsArgs'] r_studio_server_pro_domain_settings: A collection of settings that configure the RStudioServerPro Domain-level app. see RStudioServerProDomainSettings below. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps. """ + DomainDomainSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role_identity_config=execution_role_identity_config, + r_studio_server_pro_domain_settings=r_studio_server_pro_domain_settings, + security_group_ids=security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role_identity_config: Optional[pulumi.Input[str]] = None, + r_studio_server_pro_domain_settings: Optional[pulumi.Input['DomainDomainSettingsRStudioServerProDomainSettingsArgs']] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role_identity_config is None and 'executionRoleIdentityConfig' in kwargs: + execution_role_identity_config = kwargs['executionRoleIdentityConfig'] + if r_studio_server_pro_domain_settings is None and 'rStudioServerProDomainSettings' in kwargs: + r_studio_server_pro_domain_settings = kwargs['rStudioServerProDomainSettings'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if execution_role_identity_config is not None: - pulumi.set(__self__, "execution_role_identity_config", execution_role_identity_config) + _setter("execution_role_identity_config", execution_role_identity_config) if r_studio_server_pro_domain_settings is not None: - pulumi.set(__self__, "r_studio_server_pro_domain_settings", r_studio_server_pro_domain_settings) + _setter("r_studio_server_pro_domain_settings", r_studio_server_pro_domain_settings) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) @property @pulumi.getter(name="executionRoleIdentityConfig") @@ -2721,13 +3770,40 @@ def __init__(__self__, *, :param pulumi.Input[str] r_studio_connect_url: A URL pointing to an RStudio Connect server. :param pulumi.Input[str] r_studio_package_manager_url: A URL pointing to an RStudio Package Manager server. """ - pulumi.set(__self__, "domain_execution_role_arn", domain_execution_role_arn) + DomainDomainSettingsRStudioServerProDomainSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_execution_role_arn=domain_execution_role_arn, + default_resource_spec=default_resource_spec, + r_studio_connect_url=r_studio_connect_url, + r_studio_package_manager_url=r_studio_package_manager_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_execution_role_arn: Optional[pulumi.Input[str]] = None, + default_resource_spec: Optional[pulumi.Input['DomainDomainSettingsRStudioServerProDomainSettingsDefaultResourceSpecArgs']] = None, + r_studio_connect_url: Optional[pulumi.Input[str]] = None, + r_studio_package_manager_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_execution_role_arn is None and 'domainExecutionRoleArn' in kwargs: + domain_execution_role_arn = kwargs['domainExecutionRoleArn'] + if domain_execution_role_arn is None: + raise TypeError("Missing 'domain_execution_role_arn' argument") + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if r_studio_connect_url is None and 'rStudioConnectUrl' in kwargs: + r_studio_connect_url = kwargs['rStudioConnectUrl'] + if r_studio_package_manager_url is None and 'rStudioPackageManagerUrl' in kwargs: + r_studio_package_manager_url = kwargs['rStudioPackageManagerUrl'] + + _setter("domain_execution_role_arn", domain_execution_role_arn) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if r_studio_connect_url is not None: - pulumi.set(__self__, "r_studio_connect_url", r_studio_connect_url) + _setter("r_studio_connect_url", r_studio_connect_url) if r_studio_package_manager_url is not None: - pulumi.set(__self__, "r_studio_package_manager_url", r_studio_package_manager_url) + _setter("r_studio_package_manager_url", r_studio_package_manager_url) @property @pulumi.getter(name="domainExecutionRoleArn") @@ -2791,14 +3867,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDomainSettingsRStudioServerProDomainSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -2856,8 +3957,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] home_efs_file_system: The retention policy for data stored on an Amazon Elastic File System (EFS) volume. Valid values are `Retain` or `Delete`. Default value is `Retain`. """ + DomainRetentionPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + home_efs_file_system=home_efs_file_system, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + home_efs_file_system: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if home_efs_file_system is None and 'homeEfsFileSystem' in kwargs: + home_efs_file_system = kwargs['homeEfsFileSystem'] + if home_efs_file_system is not None: - pulumi.set(__self__, "home_efs_file_system", home_efs_file_system) + _setter("home_efs_file_system", home_efs_file_system) @property @pulumi.getter(name="homeEfsFileSystem") @@ -2881,9 +3995,28 @@ def __init__(__self__, *, :param pulumi.Input['EndpointConfigurationAsyncInferenceConfigOutputConfigArgs'] output_config: Specifies the configuration for asynchronous inference invocation outputs. :param pulumi.Input['EndpointConfigurationAsyncInferenceConfigClientConfigArgs'] client_config: Configures the behavior of the client used by Amazon SageMaker to interact with the model container during asynchronous inference. """ - pulumi.set(__self__, "output_config", output_config) + EndpointConfigurationAsyncInferenceConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_config=output_config, + client_config=client_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_config: Optional[pulumi.Input['EndpointConfigurationAsyncInferenceConfigOutputConfigArgs']] = None, + client_config: Optional[pulumi.Input['EndpointConfigurationAsyncInferenceConfigClientConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_config is None and 'outputConfig' in kwargs: + output_config = kwargs['outputConfig'] + if output_config is None: + raise TypeError("Missing 'output_config' argument") + if client_config is None and 'clientConfig' in kwargs: + client_config = kwargs['clientConfig'] + + _setter("output_config", output_config) if client_config is not None: - pulumi.set(__self__, "client_config", client_config) + _setter("client_config", client_config) @property @pulumi.getter(name="outputConfig") @@ -2917,8 +4050,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] max_concurrent_invocations_per_instance: The maximum number of concurrent requests sent by the SageMaker client to the model container. If no value is provided, Amazon SageMaker will choose an optimal value for you. """ + EndpointConfigurationAsyncInferenceConfigClientConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_concurrent_invocations_per_instance=max_concurrent_invocations_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_concurrent_invocations_per_instance: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_concurrent_invocations_per_instance is None and 'maxConcurrentInvocationsPerInstance' in kwargs: + max_concurrent_invocations_per_instance = kwargs['maxConcurrentInvocationsPerInstance'] + if max_concurrent_invocations_per_instance is not None: - pulumi.set(__self__, "max_concurrent_invocations_per_instance", max_concurrent_invocations_per_instance) + _setter("max_concurrent_invocations_per_instance", max_concurrent_invocations_per_instance) @property @pulumi.getter(name="maxConcurrentInvocationsPerInstance") @@ -2946,13 +4092,40 @@ def __init__(__self__, *, :param pulumi.Input['EndpointConfigurationAsyncInferenceConfigOutputConfigNotificationConfigArgs'] notification_config: Specifies the configuration for notifications of inference results for asynchronous inference. :param pulumi.Input[str] s3_failure_path: The Amazon S3 location to upload failure inference responses to. """ - pulumi.set(__self__, "s3_output_path", s3_output_path) + EndpointConfigurationAsyncInferenceConfigOutputConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_output_path=s3_output_path, + kms_key_id=kms_key_id, + notification_config=notification_config, + s3_failure_path=s3_failure_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_output_path: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + notification_config: Optional[pulumi.Input['EndpointConfigurationAsyncInferenceConfigOutputConfigNotificationConfigArgs']] = None, + s3_failure_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_output_path is None and 's3OutputPath' in kwargs: + s3_output_path = kwargs['s3OutputPath'] + if s3_output_path is None: + raise TypeError("Missing 's3_output_path' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if notification_config is None and 'notificationConfig' in kwargs: + notification_config = kwargs['notificationConfig'] + if s3_failure_path is None and 's3FailurePath' in kwargs: + s3_failure_path = kwargs['s3FailurePath'] + + _setter("s3_output_path", s3_output_path) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if notification_config is not None: - pulumi.set(__self__, "notification_config", notification_config) + _setter("notification_config", notification_config) if s3_failure_path is not None: - pulumi.set(__self__, "s3_failure_path", s3_failure_path) + _setter("s3_failure_path", s3_failure_path) @property @pulumi.getter(name="s3OutputPath") @@ -3014,12 +4187,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] include_inference_response_ins: The Amazon SNS topics where you want the inference response to be included. Valid values are `SUCCESS_NOTIFICATION_TOPIC` and `ERROR_NOTIFICATION_TOPIC`. :param pulumi.Input[str] success_topic: Amazon SNS topic to post a notification to when inference completes successfully. If no topic is provided, no notification is sent on success. """ + EndpointConfigurationAsyncInferenceConfigOutputConfigNotificationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_topic=error_topic, + include_inference_response_ins=include_inference_response_ins, + success_topic=success_topic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_topic: Optional[pulumi.Input[str]] = None, + include_inference_response_ins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + success_topic: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_topic is None and 'errorTopic' in kwargs: + error_topic = kwargs['errorTopic'] + if include_inference_response_ins is None and 'includeInferenceResponseIns' in kwargs: + include_inference_response_ins = kwargs['includeInferenceResponseIns'] + if success_topic is None and 'successTopic' in kwargs: + success_topic = kwargs['successTopic'] + if error_topic is not None: - pulumi.set(__self__, "error_topic", error_topic) + _setter("error_topic", error_topic) if include_inference_response_ins is not None: - pulumi.set(__self__, "include_inference_response_ins", include_inference_response_ins) + _setter("include_inference_response_ins", include_inference_response_ins) if success_topic is not None: - pulumi.set(__self__, "success_topic", success_topic) + _setter("success_topic", success_topic) @property @pulumi.getter(name="errorTopic") @@ -3075,15 +4269,54 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_capture: Flag to enable data capture. Defaults to `false`. :param pulumi.Input[str] kms_key_id: Amazon Resource Name (ARN) of a AWS Key Management Service key that Amazon SageMaker uses to encrypt the captured data on Amazon S3. """ - pulumi.set(__self__, "capture_options", capture_options) - pulumi.set(__self__, "destination_s3_uri", destination_s3_uri) - pulumi.set(__self__, "initial_sampling_percentage", initial_sampling_percentage) + EndpointConfigurationDataCaptureConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capture_options=capture_options, + destination_s3_uri=destination_s3_uri, + initial_sampling_percentage=initial_sampling_percentage, + capture_content_type_header=capture_content_type_header, + enable_capture=enable_capture, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capture_options: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointConfigurationDataCaptureConfigCaptureOptionArgs']]]] = None, + destination_s3_uri: Optional[pulumi.Input[str]] = None, + initial_sampling_percentage: Optional[pulumi.Input[int]] = None, + capture_content_type_header: Optional[pulumi.Input['EndpointConfigurationDataCaptureConfigCaptureContentTypeHeaderArgs']] = None, + enable_capture: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capture_options is None and 'captureOptions' in kwargs: + capture_options = kwargs['captureOptions'] + if capture_options is None: + raise TypeError("Missing 'capture_options' argument") + if destination_s3_uri is None and 'destinationS3Uri' in kwargs: + destination_s3_uri = kwargs['destinationS3Uri'] + if destination_s3_uri is None: + raise TypeError("Missing 'destination_s3_uri' argument") + if initial_sampling_percentage is None and 'initialSamplingPercentage' in kwargs: + initial_sampling_percentage = kwargs['initialSamplingPercentage'] + if initial_sampling_percentage is None: + raise TypeError("Missing 'initial_sampling_percentage' argument") + if capture_content_type_header is None and 'captureContentTypeHeader' in kwargs: + capture_content_type_header = kwargs['captureContentTypeHeader'] + if enable_capture is None and 'enableCapture' in kwargs: + enable_capture = kwargs['enableCapture'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("capture_options", capture_options) + _setter("destination_s3_uri", destination_s3_uri) + _setter("initial_sampling_percentage", initial_sampling_percentage) if capture_content_type_header is not None: - pulumi.set(__self__, "capture_content_type_header", capture_content_type_header) + _setter("capture_content_type_header", capture_content_type_header) if enable_capture is not None: - pulumi.set(__self__, "enable_capture", enable_capture) + _setter("enable_capture", enable_capture) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="captureOptions") @@ -3167,10 +4400,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] csv_content_types: The CSV content type headers to capture. :param pulumi.Input[Sequence[pulumi.Input[str]]] json_content_types: The JSON content type headers to capture. """ + EndpointConfigurationDataCaptureConfigCaptureContentTypeHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv_content_types=csv_content_types, + json_content_types=json_content_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv_content_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + json_content_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv_content_types is None and 'csvContentTypes' in kwargs: + csv_content_types = kwargs['csvContentTypes'] + if json_content_types is None and 'jsonContentTypes' in kwargs: + json_content_types = kwargs['jsonContentTypes'] + if csv_content_types is not None: - pulumi.set(__self__, "csv_content_types", csv_content_types) + _setter("csv_content_types", csv_content_types) if json_content_types is not None: - pulumi.set(__self__, "json_content_types", json_content_types) + _setter("json_content_types", json_content_types) @property @pulumi.getter(name="csvContentTypes") @@ -3204,7 +4454,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] capture_mode: Specifies the data to be captured. Should be one of `Input` or `Output`. """ - pulumi.set(__self__, "capture_mode", capture_mode) + EndpointConfigurationDataCaptureConfigCaptureOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capture_mode=capture_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capture_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capture_mode is None and 'captureMode' in kwargs: + capture_mode = kwargs['captureMode'] + if capture_mode is None: + raise TypeError("Missing 'capture_mode' argument") + + _setter("capture_mode", capture_mode) @property @pulumi.getter(name="captureMode") @@ -3248,29 +4513,88 @@ def __init__(__self__, *, :param pulumi.Input[str] variant_name: The name of the variant. If omitted, this provider will assign a random, unique name. :param pulumi.Input[int] volume_size_in_gb: The size, in GB, of the ML storage volume attached to individual inference instance associated with the production variant. Valid values between `1` and `512`. """ - pulumi.set(__self__, "model_name", model_name) + EndpointConfigurationProductionVariantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_name=model_name, + accelerator_type=accelerator_type, + container_startup_health_check_timeout_in_seconds=container_startup_health_check_timeout_in_seconds, + core_dump_config=core_dump_config, + enable_ssm_access=enable_ssm_access, + initial_instance_count=initial_instance_count, + initial_variant_weight=initial_variant_weight, + instance_type=instance_type, + model_data_download_timeout_in_seconds=model_data_download_timeout_in_seconds, + serverless_config=serverless_config, + variant_name=variant_name, + volume_size_in_gb=volume_size_in_gb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_name: Optional[pulumi.Input[str]] = None, + accelerator_type: Optional[pulumi.Input[str]] = None, + container_startup_health_check_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + core_dump_config: Optional[pulumi.Input['EndpointConfigurationProductionVariantCoreDumpConfigArgs']] = None, + enable_ssm_access: Optional[pulumi.Input[bool]] = None, + initial_instance_count: Optional[pulumi.Input[int]] = None, + initial_variant_weight: Optional[pulumi.Input[float]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + model_data_download_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + serverless_config: Optional[pulumi.Input['EndpointConfigurationProductionVariantServerlessConfigArgs']] = None, + variant_name: Optional[pulumi.Input[str]] = None, + volume_size_in_gb: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_name is None and 'modelName' in kwargs: + model_name = kwargs['modelName'] + if model_name is None: + raise TypeError("Missing 'model_name' argument") + if accelerator_type is None and 'acceleratorType' in kwargs: + accelerator_type = kwargs['acceleratorType'] + if container_startup_health_check_timeout_in_seconds is None and 'containerStartupHealthCheckTimeoutInSeconds' in kwargs: + container_startup_health_check_timeout_in_seconds = kwargs['containerStartupHealthCheckTimeoutInSeconds'] + if core_dump_config is None and 'coreDumpConfig' in kwargs: + core_dump_config = kwargs['coreDumpConfig'] + if enable_ssm_access is None and 'enableSsmAccess' in kwargs: + enable_ssm_access = kwargs['enableSsmAccess'] + if initial_instance_count is None and 'initialInstanceCount' in kwargs: + initial_instance_count = kwargs['initialInstanceCount'] + if initial_variant_weight is None and 'initialVariantWeight' in kwargs: + initial_variant_weight = kwargs['initialVariantWeight'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if model_data_download_timeout_in_seconds is None and 'modelDataDownloadTimeoutInSeconds' in kwargs: + model_data_download_timeout_in_seconds = kwargs['modelDataDownloadTimeoutInSeconds'] + if serverless_config is None and 'serverlessConfig' in kwargs: + serverless_config = kwargs['serverlessConfig'] + if variant_name is None and 'variantName' in kwargs: + variant_name = kwargs['variantName'] + if volume_size_in_gb is None and 'volumeSizeInGb' in kwargs: + volume_size_in_gb = kwargs['volumeSizeInGb'] + + _setter("model_name", model_name) if accelerator_type is not None: - pulumi.set(__self__, "accelerator_type", accelerator_type) + _setter("accelerator_type", accelerator_type) if container_startup_health_check_timeout_in_seconds is not None: - pulumi.set(__self__, "container_startup_health_check_timeout_in_seconds", container_startup_health_check_timeout_in_seconds) + _setter("container_startup_health_check_timeout_in_seconds", container_startup_health_check_timeout_in_seconds) if core_dump_config is not None: - pulumi.set(__self__, "core_dump_config", core_dump_config) + _setter("core_dump_config", core_dump_config) if enable_ssm_access is not None: - pulumi.set(__self__, "enable_ssm_access", enable_ssm_access) + _setter("enable_ssm_access", enable_ssm_access) if initial_instance_count is not None: - pulumi.set(__self__, "initial_instance_count", initial_instance_count) + _setter("initial_instance_count", initial_instance_count) if initial_variant_weight is not None: - pulumi.set(__self__, "initial_variant_weight", initial_variant_weight) + _setter("initial_variant_weight", initial_variant_weight) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if model_data_download_timeout_in_seconds is not None: - pulumi.set(__self__, "model_data_download_timeout_in_seconds", model_data_download_timeout_in_seconds) + _setter("model_data_download_timeout_in_seconds", model_data_download_timeout_in_seconds) if serverless_config is not None: - pulumi.set(__self__, "serverless_config", serverless_config) + _setter("serverless_config", serverless_config) if variant_name is not None: - pulumi.set(__self__, "variant_name", variant_name) + _setter("variant_name", variant_name) if volume_size_in_gb is not None: - pulumi.set(__self__, "volume_size_in_gb", volume_size_in_gb) + _setter("volume_size_in_gb", volume_size_in_gb) @property @pulumi.getter(name="modelName") @@ -3426,9 +4750,28 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_s3_uri: The Amazon S3 bucket to send the core dump to. :param pulumi.Input[str] kms_key_id: The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that SageMaker uses to encrypt the core dump data at rest using Amazon S3 server-side encryption. """ - pulumi.set(__self__, "destination_s3_uri", destination_s3_uri) + EndpointConfigurationProductionVariantCoreDumpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_s3_uri=destination_s3_uri, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_s3_uri: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_s3_uri is None and 'destinationS3Uri' in kwargs: + destination_s3_uri = kwargs['destinationS3Uri'] + if destination_s3_uri is None: + raise TypeError("Missing 'destination_s3_uri' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("destination_s3_uri", destination_s3_uri) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="destinationS3Uri") @@ -3466,10 +4809,35 @@ def __init__(__self__, *, :param pulumi.Input[int] memory_size_in_mb: The memory size of your serverless endpoint. Valid values are in 1 GB increments: `1024` MB, `2048` MB, `3072` MB, `4096` MB, `5120` MB, or `6144` MB. :param pulumi.Input[int] provisioned_concurrency: The amount of provisioned concurrency to allocate for the serverless endpoint. Should be less than or equal to `max_concurrency`. Valid values are between `1` and `200`. """ - pulumi.set(__self__, "max_concurrency", max_concurrency) - pulumi.set(__self__, "memory_size_in_mb", memory_size_in_mb) + EndpointConfigurationProductionVariantServerlessConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_concurrency=max_concurrency, + memory_size_in_mb=memory_size_in_mb, + provisioned_concurrency=provisioned_concurrency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_concurrency: Optional[pulumi.Input[int]] = None, + memory_size_in_mb: Optional[pulumi.Input[int]] = None, + provisioned_concurrency: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_concurrency is None: + raise TypeError("Missing 'max_concurrency' argument") + if memory_size_in_mb is None and 'memorySizeInMb' in kwargs: + memory_size_in_mb = kwargs['memorySizeInMb'] + if memory_size_in_mb is None: + raise TypeError("Missing 'memory_size_in_mb' argument") + if provisioned_concurrency is None and 'provisionedConcurrency' in kwargs: + provisioned_concurrency = kwargs['provisionedConcurrency'] + + _setter("max_concurrency", max_concurrency) + _setter("memory_size_in_mb", memory_size_in_mb) if provisioned_concurrency is not None: - pulumi.set(__self__, "provisioned_concurrency", provisioned_concurrency) + _setter("provisioned_concurrency", provisioned_concurrency) @property @pulumi.getter(name="maxConcurrency") @@ -3537,29 +4905,88 @@ def __init__(__self__, *, :param pulumi.Input[str] variant_name: The name of the variant. If omitted, this provider will assign a random, unique name. :param pulumi.Input[int] volume_size_in_gb: The size, in GB, of the ML storage volume attached to individual inference instance associated with the production variant. Valid values between `1` and `512`. """ - pulumi.set(__self__, "model_name", model_name) + EndpointConfigurationShadowProductionVariantArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_name=model_name, + accelerator_type=accelerator_type, + container_startup_health_check_timeout_in_seconds=container_startup_health_check_timeout_in_seconds, + core_dump_config=core_dump_config, + enable_ssm_access=enable_ssm_access, + initial_instance_count=initial_instance_count, + initial_variant_weight=initial_variant_weight, + instance_type=instance_type, + model_data_download_timeout_in_seconds=model_data_download_timeout_in_seconds, + serverless_config=serverless_config, + variant_name=variant_name, + volume_size_in_gb=volume_size_in_gb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_name: Optional[pulumi.Input[str]] = None, + accelerator_type: Optional[pulumi.Input[str]] = None, + container_startup_health_check_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + core_dump_config: Optional[pulumi.Input['EndpointConfigurationShadowProductionVariantCoreDumpConfigArgs']] = None, + enable_ssm_access: Optional[pulumi.Input[bool]] = None, + initial_instance_count: Optional[pulumi.Input[int]] = None, + initial_variant_weight: Optional[pulumi.Input[float]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + model_data_download_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + serverless_config: Optional[pulumi.Input['EndpointConfigurationShadowProductionVariantServerlessConfigArgs']] = None, + variant_name: Optional[pulumi.Input[str]] = None, + volume_size_in_gb: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_name is None and 'modelName' in kwargs: + model_name = kwargs['modelName'] + if model_name is None: + raise TypeError("Missing 'model_name' argument") + if accelerator_type is None and 'acceleratorType' in kwargs: + accelerator_type = kwargs['acceleratorType'] + if container_startup_health_check_timeout_in_seconds is None and 'containerStartupHealthCheckTimeoutInSeconds' in kwargs: + container_startup_health_check_timeout_in_seconds = kwargs['containerStartupHealthCheckTimeoutInSeconds'] + if core_dump_config is None and 'coreDumpConfig' in kwargs: + core_dump_config = kwargs['coreDumpConfig'] + if enable_ssm_access is None and 'enableSsmAccess' in kwargs: + enable_ssm_access = kwargs['enableSsmAccess'] + if initial_instance_count is None and 'initialInstanceCount' in kwargs: + initial_instance_count = kwargs['initialInstanceCount'] + if initial_variant_weight is None and 'initialVariantWeight' in kwargs: + initial_variant_weight = kwargs['initialVariantWeight'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if model_data_download_timeout_in_seconds is None and 'modelDataDownloadTimeoutInSeconds' in kwargs: + model_data_download_timeout_in_seconds = kwargs['modelDataDownloadTimeoutInSeconds'] + if serverless_config is None and 'serverlessConfig' in kwargs: + serverless_config = kwargs['serverlessConfig'] + if variant_name is None and 'variantName' in kwargs: + variant_name = kwargs['variantName'] + if volume_size_in_gb is None and 'volumeSizeInGb' in kwargs: + volume_size_in_gb = kwargs['volumeSizeInGb'] + + _setter("model_name", model_name) if accelerator_type is not None: - pulumi.set(__self__, "accelerator_type", accelerator_type) + _setter("accelerator_type", accelerator_type) if container_startup_health_check_timeout_in_seconds is not None: - pulumi.set(__self__, "container_startup_health_check_timeout_in_seconds", container_startup_health_check_timeout_in_seconds) + _setter("container_startup_health_check_timeout_in_seconds", container_startup_health_check_timeout_in_seconds) if core_dump_config is not None: - pulumi.set(__self__, "core_dump_config", core_dump_config) + _setter("core_dump_config", core_dump_config) if enable_ssm_access is not None: - pulumi.set(__self__, "enable_ssm_access", enable_ssm_access) + _setter("enable_ssm_access", enable_ssm_access) if initial_instance_count is not None: - pulumi.set(__self__, "initial_instance_count", initial_instance_count) + _setter("initial_instance_count", initial_instance_count) if initial_variant_weight is not None: - pulumi.set(__self__, "initial_variant_weight", initial_variant_weight) + _setter("initial_variant_weight", initial_variant_weight) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if model_data_download_timeout_in_seconds is not None: - pulumi.set(__self__, "model_data_download_timeout_in_seconds", model_data_download_timeout_in_seconds) + _setter("model_data_download_timeout_in_seconds", model_data_download_timeout_in_seconds) if serverless_config is not None: - pulumi.set(__self__, "serverless_config", serverless_config) + _setter("serverless_config", serverless_config) if variant_name is not None: - pulumi.set(__self__, "variant_name", variant_name) + _setter("variant_name", variant_name) if volume_size_in_gb is not None: - pulumi.set(__self__, "volume_size_in_gb", volume_size_in_gb) + _setter("volume_size_in_gb", volume_size_in_gb) @property @pulumi.getter(name="modelName") @@ -3715,8 +5142,29 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_s3_uri: The Amazon S3 bucket to send the core dump to. :param pulumi.Input[str] kms_key_id: The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that SageMaker uses to encrypt the core dump data at rest using Amazon S3 server-side encryption. """ - pulumi.set(__self__, "destination_s3_uri", destination_s3_uri) - pulumi.set(__self__, "kms_key_id", kms_key_id) + EndpointConfigurationShadowProductionVariantCoreDumpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_s3_uri=destination_s3_uri, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_s3_uri: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_s3_uri is None and 'destinationS3Uri' in kwargs: + destination_s3_uri = kwargs['destinationS3Uri'] + if destination_s3_uri is None: + raise TypeError("Missing 'destination_s3_uri' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + + _setter("destination_s3_uri", destination_s3_uri) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="destinationS3Uri") @@ -3754,10 +5202,35 @@ def __init__(__self__, *, :param pulumi.Input[int] memory_size_in_mb: The memory size of your serverless endpoint. Valid values are in 1 GB increments: `1024` MB, `2048` MB, `3072` MB, `4096` MB, `5120` MB, or `6144` MB. :param pulumi.Input[int] provisioned_concurrency: The amount of provisioned concurrency to allocate for the serverless endpoint. Should be less than or equal to `max_concurrency`. Valid values are between `1` and `200`. """ - pulumi.set(__self__, "max_concurrency", max_concurrency) - pulumi.set(__self__, "memory_size_in_mb", memory_size_in_mb) + EndpointConfigurationShadowProductionVariantServerlessConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_concurrency=max_concurrency, + memory_size_in_mb=memory_size_in_mb, + provisioned_concurrency=provisioned_concurrency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_concurrency: Optional[pulumi.Input[int]] = None, + memory_size_in_mb: Optional[pulumi.Input[int]] = None, + provisioned_concurrency: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_concurrency is None: + raise TypeError("Missing 'max_concurrency' argument") + if memory_size_in_mb is None and 'memorySizeInMb' in kwargs: + memory_size_in_mb = kwargs['memorySizeInMb'] + if memory_size_in_mb is None: + raise TypeError("Missing 'memory_size_in_mb' argument") + if provisioned_concurrency is None and 'provisionedConcurrency' in kwargs: + provisioned_concurrency = kwargs['provisionedConcurrency'] + + _setter("max_concurrency", max_concurrency) + _setter("memory_size_in_mb", memory_size_in_mb) if provisioned_concurrency is not None: - pulumi.set(__self__, "provisioned_concurrency", provisioned_concurrency) + _setter("provisioned_concurrency", provisioned_concurrency) @property @pulumi.getter(name="maxConcurrency") @@ -3807,12 +5280,33 @@ def __init__(__self__, *, :param pulumi.Input['EndpointDeploymentConfigBlueGreenUpdatePolicyArgs'] blue_green_update_policy: Update policy for a blue/green deployment. If this update policy is specified, SageMaker creates a new fleet during the deployment while maintaining the old fleet. SageMaker flips traffic to the new fleet according to the specified traffic routing configuration. Only one update policy should be used in the deployment configuration. If no update policy is specified, SageMaker uses a blue/green deployment strategy with all at once traffic shifting by default. See Blue Green Update Config. :param pulumi.Input['EndpointDeploymentConfigRollingUpdatePolicyArgs'] rolling_update_policy: Specifies a rolling deployment strategy for updating a SageMaker endpoint. See Rolling Update Policy. """ + EndpointDeploymentConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_rollback_configuration=auto_rollback_configuration, + blue_green_update_policy=blue_green_update_policy, + rolling_update_policy=rolling_update_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_rollback_configuration: Optional[pulumi.Input['EndpointDeploymentConfigAutoRollbackConfigurationArgs']] = None, + blue_green_update_policy: Optional[pulumi.Input['EndpointDeploymentConfigBlueGreenUpdatePolicyArgs']] = None, + rolling_update_policy: Optional[pulumi.Input['EndpointDeploymentConfigRollingUpdatePolicyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_rollback_configuration is None and 'autoRollbackConfiguration' in kwargs: + auto_rollback_configuration = kwargs['autoRollbackConfiguration'] + if blue_green_update_policy is None and 'blueGreenUpdatePolicy' in kwargs: + blue_green_update_policy = kwargs['blueGreenUpdatePolicy'] + if rolling_update_policy is None and 'rollingUpdatePolicy' in kwargs: + rolling_update_policy = kwargs['rollingUpdatePolicy'] + if auto_rollback_configuration is not None: - pulumi.set(__self__, "auto_rollback_configuration", auto_rollback_configuration) + _setter("auto_rollback_configuration", auto_rollback_configuration) if blue_green_update_policy is not None: - pulumi.set(__self__, "blue_green_update_policy", blue_green_update_policy) + _setter("blue_green_update_policy", blue_green_update_policy) if rolling_update_policy is not None: - pulumi.set(__self__, "rolling_update_policy", rolling_update_policy) + _setter("rolling_update_policy", rolling_update_policy) @property @pulumi.getter(name="autoRollbackConfiguration") @@ -3858,8 +5352,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['EndpointDeploymentConfigAutoRollbackConfigurationAlarmArgs']]] alarms: List of CloudWatch alarms in your account that are configured to monitor metrics on an endpoint. If any alarms are tripped during a deployment, SageMaker rolls back the deployment. See Alarms. """ + EndpointDeploymentConfigAutoRollbackConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointDeploymentConfigAutoRollbackConfigurationAlarmArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) @property @pulumi.getter @@ -3881,7 +5386,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] alarm_name: The name of a CloudWatch alarm in your account. """ - pulumi.set(__self__, "alarm_name", alarm_name) + EndpointDeploymentConfigAutoRollbackConfigurationAlarmArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_name=alarm_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_name is None and 'alarmName' in kwargs: + alarm_name = kwargs['alarmName'] + if alarm_name is None: + raise TypeError("Missing 'alarm_name' argument") + + _setter("alarm_name", alarm_name) @property @pulumi.getter(name="alarmName") @@ -3907,11 +5427,34 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_execution_timeout_in_seconds: Maximum execution timeout for the deployment. Note that the timeout value should be larger than the total waiting time specified in `termination_wait_in_seconds` and `wait_interval_in_seconds`. Valid values are between `600` and `14400`. :param pulumi.Input[int] termination_wait_in_seconds: Additional waiting time in seconds after the completion of an endpoint deployment before terminating the old endpoint fleet. Default is `0`. Valid values are between `0` and `3600`. """ - pulumi.set(__self__, "traffic_routing_configuration", traffic_routing_configuration) + EndpointDeploymentConfigBlueGreenUpdatePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + traffic_routing_configuration=traffic_routing_configuration, + maximum_execution_timeout_in_seconds=maximum_execution_timeout_in_seconds, + termination_wait_in_seconds=termination_wait_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + traffic_routing_configuration: Optional[pulumi.Input['EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationArgs']] = None, + maximum_execution_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + termination_wait_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if traffic_routing_configuration is None and 'trafficRoutingConfiguration' in kwargs: + traffic_routing_configuration = kwargs['trafficRoutingConfiguration'] + if traffic_routing_configuration is None: + raise TypeError("Missing 'traffic_routing_configuration' argument") + if maximum_execution_timeout_in_seconds is None and 'maximumExecutionTimeoutInSeconds' in kwargs: + maximum_execution_timeout_in_seconds = kwargs['maximumExecutionTimeoutInSeconds'] + if termination_wait_in_seconds is None and 'terminationWaitInSeconds' in kwargs: + termination_wait_in_seconds = kwargs['terminationWaitInSeconds'] + + _setter("traffic_routing_configuration", traffic_routing_configuration) if maximum_execution_timeout_in_seconds is not None: - pulumi.set(__self__, "maximum_execution_timeout_in_seconds", maximum_execution_timeout_in_seconds) + _setter("maximum_execution_timeout_in_seconds", maximum_execution_timeout_in_seconds) if termination_wait_in_seconds is not None: - pulumi.set(__self__, "termination_wait_in_seconds", termination_wait_in_seconds) + _setter("termination_wait_in_seconds", termination_wait_in_seconds) @property @pulumi.getter(name="trafficRoutingConfiguration") @@ -3963,12 +5506,39 @@ def __init__(__self__, *, :param pulumi.Input['EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySizeArgs'] canary_size: Batch size for the first step to turn on traffic on the new endpoint fleet. Value must be less than or equal to 50% of the variant's total instance count. See Canary Size. :param pulumi.Input['EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationLinearStepSizeArgs'] linear_step_size: Batch size for each step to turn on traffic on the new endpoint fleet. Value must be 10-50% of the variant's total instance count. See Linear Step Size. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "wait_interval_in_seconds", wait_interval_in_seconds) + EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + wait_interval_in_seconds=wait_interval_in_seconds, + canary_size=canary_size, + linear_step_size=linear_step_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + wait_interval_in_seconds: Optional[pulumi.Input[int]] = None, + canary_size: Optional[pulumi.Input['EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySizeArgs']] = None, + linear_step_size: Optional[pulumi.Input['EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationLinearStepSizeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if wait_interval_in_seconds is None and 'waitIntervalInSeconds' in kwargs: + wait_interval_in_seconds = kwargs['waitIntervalInSeconds'] + if wait_interval_in_seconds is None: + raise TypeError("Missing 'wait_interval_in_seconds' argument") + if canary_size is None and 'canarySize' in kwargs: + canary_size = kwargs['canarySize'] + if linear_step_size is None and 'linearStepSize' in kwargs: + linear_step_size = kwargs['linearStepSize'] + + _setter("type", type) + _setter("wait_interval_in_seconds", wait_interval_in_seconds) if canary_size is not None: - pulumi.set(__self__, "canary_size", canary_size) + _setter("canary_size", canary_size) if linear_step_size is not None: - pulumi.set(__self__, "linear_step_size", linear_step_size) + _setter("linear_step_size", linear_step_size) @property @pulumi.getter @@ -4028,8 +5598,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Specifies the endpoint capacity type. Valid values are: `INSTANCE_COUNT`, or `CAPACITY_PERCENT`. :param pulumi.Input[int] value: Defines the capacity size, either as a number of instances or a capacity percentage. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySizeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -4065,8 +5652,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Specifies the endpoint capacity type. Valid values are: `INSTANCE_COUNT`, or `CAPACITY_PERCENT`. :param pulumi.Input[int] value: Defines the capacity size, either as a number of instances or a capacity percentage. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationLinearStepSizeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -4106,12 +5710,41 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_execution_timeout_in_seconds: The time limit for the total deployment. Exceeding this limit causes a timeout. Valid values are between `600` and `14400`. :param pulumi.Input['EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSizeArgs'] rollback_maximum_batch_size: Batch size for rollback to the old endpoint fleet. Each rolling step to provision capacity and turn on traffic on the old endpoint fleet, and terminate capacity on the new endpoint fleet. If this field is absent, the default value will be set to 100% of total capacity which means to bring up the whole capacity of the old fleet at once during rollback. See Rollback Maximum Batch Size. """ - pulumi.set(__self__, "maximum_batch_size", maximum_batch_size) - pulumi.set(__self__, "wait_interval_in_seconds", wait_interval_in_seconds) + EndpointDeploymentConfigRollingUpdatePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_batch_size=maximum_batch_size, + wait_interval_in_seconds=wait_interval_in_seconds, + maximum_execution_timeout_in_seconds=maximum_execution_timeout_in_seconds, + rollback_maximum_batch_size=rollback_maximum_batch_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_batch_size: Optional[pulumi.Input['EndpointDeploymentConfigRollingUpdatePolicyMaximumBatchSizeArgs']] = None, + wait_interval_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_execution_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + rollback_maximum_batch_size: Optional[pulumi.Input['EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSizeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_batch_size is None and 'maximumBatchSize' in kwargs: + maximum_batch_size = kwargs['maximumBatchSize'] + if maximum_batch_size is None: + raise TypeError("Missing 'maximum_batch_size' argument") + if wait_interval_in_seconds is None and 'waitIntervalInSeconds' in kwargs: + wait_interval_in_seconds = kwargs['waitIntervalInSeconds'] + if wait_interval_in_seconds is None: + raise TypeError("Missing 'wait_interval_in_seconds' argument") + if maximum_execution_timeout_in_seconds is None and 'maximumExecutionTimeoutInSeconds' in kwargs: + maximum_execution_timeout_in_seconds = kwargs['maximumExecutionTimeoutInSeconds'] + if rollback_maximum_batch_size is None and 'rollbackMaximumBatchSize' in kwargs: + rollback_maximum_batch_size = kwargs['rollbackMaximumBatchSize'] + + _setter("maximum_batch_size", maximum_batch_size) + _setter("wait_interval_in_seconds", wait_interval_in_seconds) if maximum_execution_timeout_in_seconds is not None: - pulumi.set(__self__, "maximum_execution_timeout_in_seconds", maximum_execution_timeout_in_seconds) + _setter("maximum_execution_timeout_in_seconds", maximum_execution_timeout_in_seconds) if rollback_maximum_batch_size is not None: - pulumi.set(__self__, "rollback_maximum_batch_size", rollback_maximum_batch_size) + _setter("rollback_maximum_batch_size", rollback_maximum_batch_size) @property @pulumi.getter(name="maximumBatchSize") @@ -4171,8 +5804,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Specifies the endpoint capacity type. Valid values are: `INSTANCE_COUNT`, or `CAPACITY_PERCENT`. :param pulumi.Input[int] value: Defines the capacity size, either as a number of instances or a capacity percentage. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EndpointDeploymentConfigRollingUpdatePolicyMaximumBatchSizeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -4208,8 +5858,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Specifies the endpoint capacity type. Valid values are: `INSTANCE_COUNT`, or `CAPACITY_PERCENT`. :param pulumi.Input[int] value: Defines the capacity size, either as a number of instances or a capacity percentage. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSizeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -4245,10 +5912,27 @@ def __init__(__self__, *, :param pulumi.Input[str] feature_name: The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. :param pulumi.Input[str] feature_type: The value type of a feature. Valid values are `Integral`, `Fractional`, or `String`. """ + FeatureGroupFeatureDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + feature_name=feature_name, + feature_type=feature_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + feature_name: Optional[pulumi.Input[str]] = None, + feature_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if feature_name is None and 'featureName' in kwargs: + feature_name = kwargs['featureName'] + if feature_type is None and 'featureType' in kwargs: + feature_type = kwargs['featureType'] + if feature_name is not None: - pulumi.set(__self__, "feature_name", feature_name) + _setter("feature_name", feature_name) if feature_type is not None: - pulumi.set(__self__, "feature_type", feature_type) + _setter("feature_type", feature_type) @property @pulumi.getter(name="featureName") @@ -4288,13 +5972,40 @@ def __init__(__self__, *, :param pulumi.Input[bool] disable_glue_table_creation: Set to `true` to turn Online Store On. :param pulumi.Input[str] table_format: Format for the offline store table. Supported formats are `Glue` (Default) and Apache `Iceberg` (https://iceberg.apache.org/). """ - pulumi.set(__self__, "s3_storage_config", s3_storage_config) + FeatureGroupOfflineStoreConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_storage_config=s3_storage_config, + data_catalog_config=data_catalog_config, + disable_glue_table_creation=disable_glue_table_creation, + table_format=table_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_storage_config: Optional[pulumi.Input['FeatureGroupOfflineStoreConfigS3StorageConfigArgs']] = None, + data_catalog_config: Optional[pulumi.Input['FeatureGroupOfflineStoreConfigDataCatalogConfigArgs']] = None, + disable_glue_table_creation: Optional[pulumi.Input[bool]] = None, + table_format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_storage_config is None and 's3StorageConfig' in kwargs: + s3_storage_config = kwargs['s3StorageConfig'] + if s3_storage_config is None: + raise TypeError("Missing 's3_storage_config' argument") + if data_catalog_config is None and 'dataCatalogConfig' in kwargs: + data_catalog_config = kwargs['dataCatalogConfig'] + if disable_glue_table_creation is None and 'disableGlueTableCreation' in kwargs: + disable_glue_table_creation = kwargs['disableGlueTableCreation'] + if table_format is None and 'tableFormat' in kwargs: + table_format = kwargs['tableFormat'] + + _setter("s3_storage_config", s3_storage_config) if data_catalog_config is not None: - pulumi.set(__self__, "data_catalog_config", data_catalog_config) + _setter("data_catalog_config", data_catalog_config) if disable_glue_table_creation is not None: - pulumi.set(__self__, "disable_glue_table_creation", disable_glue_table_creation) + _setter("disable_glue_table_creation", disable_glue_table_creation) if table_format is not None: - pulumi.set(__self__, "table_format", table_format) + _setter("table_format", table_format) @property @pulumi.getter(name="s3StorageConfig") @@ -4356,12 +6067,29 @@ def __init__(__self__, *, :param pulumi.Input[str] database: The name of the Glue table database. :param pulumi.Input[str] table_name: The name of the Glue table. """ + FeatureGroupOfflineStoreConfigDataCatalogConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog=catalog, + database=database, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog: Optional[pulumi.Input[str]] = None, + database: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if catalog is not None: - pulumi.set(__self__, "catalog", catalog) + _setter("catalog", catalog) if database is not None: - pulumi.set(__self__, "database", database) + _setter("database", database) if table_name is not None: - pulumi.set(__self__, "table_name", table_name) + _setter("table_name", table_name) @property @pulumi.getter @@ -4409,9 +6137,28 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_uri: The S3 URI, or location in Amazon S3, of OfflineStore. :param pulumi.Input[str] kms_key_id: The AWS Key Management Service (KMS) key ID of the key used to encrypt any objects written into the OfflineStore S3 location. """ - pulumi.set(__self__, "s3_uri", s3_uri) + FeatureGroupOfflineStoreConfigS3StorageConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("s3_uri", s3_uri) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="s3Uri") @@ -4447,10 +6194,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_online_store: Set to `true` to disable the automatic creation of an AWS Glue table when configuring an OfflineStore. :param pulumi.Input['FeatureGroupOnlineStoreConfigSecurityConfigArgs'] security_config: Security config for at-rest encryption of your OnlineStore. See Security Config Below. """ + FeatureGroupOnlineStoreConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_online_store=enable_online_store, + security_config=security_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_online_store: Optional[pulumi.Input[bool]] = None, + security_config: Optional[pulumi.Input['FeatureGroupOnlineStoreConfigSecurityConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_online_store is None and 'enableOnlineStore' in kwargs: + enable_online_store = kwargs['enableOnlineStore'] + if security_config is None and 'securityConfig' in kwargs: + security_config = kwargs['securityConfig'] + if enable_online_store is not None: - pulumi.set(__self__, "enable_online_store", enable_online_store) + _setter("enable_online_store", enable_online_store) if security_config is not None: - pulumi.set(__self__, "security_config", security_config) + _setter("security_config", security_config) @property @pulumi.getter(name="enableOnlineStore") @@ -4484,8 +6248,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] kms_key_id: The ID of the AWS Key Management Service (AWS KMS) key that SageMaker Feature Store uses to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption. """ + FeatureGroupOnlineStoreConfigSecurityConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="kmsKeyId") @@ -4507,8 +6284,21 @@ def __init__(__self__, *, """ :param pulumi.Input['FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfigArgs'] human_loop_activation_conditions_config: defines under what conditions SageMaker creates a human loop. See Human Loop Activation Conditions Config details below. """ + FlowDefinitionHumanLoopActivationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + human_loop_activation_conditions_config=human_loop_activation_conditions_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + human_loop_activation_conditions_config: Optional[pulumi.Input['FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if human_loop_activation_conditions_config is None and 'humanLoopActivationConditionsConfig' in kwargs: + human_loop_activation_conditions_config = kwargs['humanLoopActivationConditionsConfig'] + if human_loop_activation_conditions_config is not None: - pulumi.set(__self__, "human_loop_activation_conditions_config", human_loop_activation_conditions_config) + _setter("human_loop_activation_conditions_config", human_loop_activation_conditions_config) @property @pulumi.getter(name="humanLoopActivationConditionsConfig") @@ -4530,7 +6320,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] human_loop_activation_conditions: A JSON expressing use-case specific conditions declaratively. If any condition is matched, atomic tasks are created against the configured work team. For more information about how to structure the JSON, see [JSON Schema for Human Loop Activation Conditions in Amazon Augmented AI](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-human-fallback-conditions-json-schema.html). """ - pulumi.set(__self__, "human_loop_activation_conditions", human_loop_activation_conditions) + FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + human_loop_activation_conditions=human_loop_activation_conditions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + human_loop_activation_conditions: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if human_loop_activation_conditions is None and 'humanLoopActivationConditions' in kwargs: + human_loop_activation_conditions = kwargs['humanLoopActivationConditions'] + if human_loop_activation_conditions is None: + raise TypeError("Missing 'human_loop_activation_conditions' argument") + + _setter("human_loop_activation_conditions", human_loop_activation_conditions) @property @pulumi.getter(name="humanLoopActivationConditions") @@ -4568,19 +6373,74 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] task_keywords: An array of keywords used to describe the task so that workers can discover the task. :param pulumi.Input[int] task_time_limit_in_seconds: The amount of time that a worker has to complete a task. The default value is `3600` seconds. """ - pulumi.set(__self__, "human_task_ui_arn", human_task_ui_arn) - pulumi.set(__self__, "task_count", task_count) - pulumi.set(__self__, "task_description", task_description) - pulumi.set(__self__, "task_title", task_title) - pulumi.set(__self__, "workteam_arn", workteam_arn) + FlowDefinitionHumanLoopConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + human_task_ui_arn=human_task_ui_arn, + task_count=task_count, + task_description=task_description, + task_title=task_title, + workteam_arn=workteam_arn, + public_workforce_task_price=public_workforce_task_price, + task_availability_lifetime_in_seconds=task_availability_lifetime_in_seconds, + task_keywords=task_keywords, + task_time_limit_in_seconds=task_time_limit_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + human_task_ui_arn: Optional[pulumi.Input[str]] = None, + task_count: Optional[pulumi.Input[int]] = None, + task_description: Optional[pulumi.Input[str]] = None, + task_title: Optional[pulumi.Input[str]] = None, + workteam_arn: Optional[pulumi.Input[str]] = None, + public_workforce_task_price: Optional[pulumi.Input['FlowDefinitionHumanLoopConfigPublicWorkforceTaskPriceArgs']] = None, + task_availability_lifetime_in_seconds: Optional[pulumi.Input[int]] = None, + task_keywords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + task_time_limit_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if human_task_ui_arn is None and 'humanTaskUiArn' in kwargs: + human_task_ui_arn = kwargs['humanTaskUiArn'] + if human_task_ui_arn is None: + raise TypeError("Missing 'human_task_ui_arn' argument") + if task_count is None and 'taskCount' in kwargs: + task_count = kwargs['taskCount'] + if task_count is None: + raise TypeError("Missing 'task_count' argument") + if task_description is None and 'taskDescription' in kwargs: + task_description = kwargs['taskDescription'] + if task_description is None: + raise TypeError("Missing 'task_description' argument") + if task_title is None and 'taskTitle' in kwargs: + task_title = kwargs['taskTitle'] + if task_title is None: + raise TypeError("Missing 'task_title' argument") + if workteam_arn is None and 'workteamArn' in kwargs: + workteam_arn = kwargs['workteamArn'] + if workteam_arn is None: + raise TypeError("Missing 'workteam_arn' argument") + if public_workforce_task_price is None and 'publicWorkforceTaskPrice' in kwargs: + public_workforce_task_price = kwargs['publicWorkforceTaskPrice'] + if task_availability_lifetime_in_seconds is None and 'taskAvailabilityLifetimeInSeconds' in kwargs: + task_availability_lifetime_in_seconds = kwargs['taskAvailabilityLifetimeInSeconds'] + if task_keywords is None and 'taskKeywords' in kwargs: + task_keywords = kwargs['taskKeywords'] + if task_time_limit_in_seconds is None and 'taskTimeLimitInSeconds' in kwargs: + task_time_limit_in_seconds = kwargs['taskTimeLimitInSeconds'] + + _setter("human_task_ui_arn", human_task_ui_arn) + _setter("task_count", task_count) + _setter("task_description", task_description) + _setter("task_title", task_title) + _setter("workteam_arn", workteam_arn) if public_workforce_task_price is not None: - pulumi.set(__self__, "public_workforce_task_price", public_workforce_task_price) + _setter("public_workforce_task_price", public_workforce_task_price) if task_availability_lifetime_in_seconds is not None: - pulumi.set(__self__, "task_availability_lifetime_in_seconds", task_availability_lifetime_in_seconds) + _setter("task_availability_lifetime_in_seconds", task_availability_lifetime_in_seconds) if task_keywords is not None: - pulumi.set(__self__, "task_keywords", task_keywords) + _setter("task_keywords", task_keywords) if task_time_limit_in_seconds is not None: - pulumi.set(__self__, "task_time_limit_in_seconds", task_time_limit_in_seconds) + _setter("task_time_limit_in_seconds", task_time_limit_in_seconds) @property @pulumi.getter(name="humanTaskUiArn") @@ -4698,8 +6558,21 @@ def __init__(__self__, *, """ :param pulumi.Input['FlowDefinitionHumanLoopConfigPublicWorkforceTaskPriceAmountInUsdArgs'] amount_in_usd: Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars. See Amount In Usd details below. """ + FlowDefinitionHumanLoopConfigPublicWorkforceTaskPriceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount_in_usd=amount_in_usd, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount_in_usd: Optional[pulumi.Input['FlowDefinitionHumanLoopConfigPublicWorkforceTaskPriceAmountInUsdArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amount_in_usd is None and 'amountInUsd' in kwargs: + amount_in_usd = kwargs['amountInUsd'] + if amount_in_usd is not None: - pulumi.set(__self__, "amount_in_usd", amount_in_usd) + _setter("amount_in_usd", amount_in_usd) @property @pulumi.getter(name="amountInUsd") @@ -4725,12 +6598,29 @@ def __init__(__self__, *, :param pulumi.Input[int] dollars: The whole number of dollars in the amount. Valid value range between `0` and `2`. :param pulumi.Input[int] tenth_fractions_of_a_cent: Fractions of a cent, in tenths. Valid value range between `0` and `9`. """ + FlowDefinitionHumanLoopConfigPublicWorkforceTaskPriceAmountInUsdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cents=cents, + dollars=dollars, + tenth_fractions_of_a_cent=tenth_fractions_of_a_cent, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cents: Optional[pulumi.Input[int]] = None, + dollars: Optional[pulumi.Input[int]] = None, + tenth_fractions_of_a_cent: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tenth_fractions_of_a_cent is None and 'tenthFractionsOfACent' in kwargs: + tenth_fractions_of_a_cent = kwargs['tenthFractionsOfACent'] + if cents is not None: - pulumi.set(__self__, "cents", cents) + _setter("cents", cents) if dollars is not None: - pulumi.set(__self__, "dollars", dollars) + _setter("dollars", dollars) if tenth_fractions_of_a_cent is not None: - pulumi.set(__self__, "tenth_fractions_of_a_cent", tenth_fractions_of_a_cent) + _setter("tenth_fractions_of_a_cent", tenth_fractions_of_a_cent) @property @pulumi.getter @@ -4776,7 +6666,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] aws_managed_human_loop_request_source: Specifies whether Amazon Rekognition or Amazon Textract are used as the integration source. Valid values are: `AWS/Rekognition/DetectModerationLabels/Image/V3` and `AWS/Textract/AnalyzeDocument/Forms/V1`. """ - pulumi.set(__self__, "aws_managed_human_loop_request_source", aws_managed_human_loop_request_source) + FlowDefinitionHumanLoopRequestSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_managed_human_loop_request_source=aws_managed_human_loop_request_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_managed_human_loop_request_source: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_managed_human_loop_request_source is None and 'awsManagedHumanLoopRequestSource' in kwargs: + aws_managed_human_loop_request_source = kwargs['awsManagedHumanLoopRequestSource'] + if aws_managed_human_loop_request_source is None: + raise TypeError("Missing 'aws_managed_human_loop_request_source' argument") + + _setter("aws_managed_human_loop_request_source", aws_managed_human_loop_request_source) @property @pulumi.getter(name="awsManagedHumanLoopRequestSource") @@ -4800,9 +6705,28 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_output_path: The Amazon S3 path where the object containing human output will be made available. :param pulumi.Input[str] kms_key_id: The Amazon Key Management Service (KMS) key ARN for server-side encryption. """ - pulumi.set(__self__, "s3_output_path", s3_output_path) + FlowDefinitionOutputConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_output_path=s3_output_path, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_output_path: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_output_path is None and 's3OutputPath' in kwargs: + s3_output_path = kwargs['s3OutputPath'] + if s3_output_path is None: + raise TypeError("Missing 's3_output_path' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("s3_output_path", s3_output_path) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="s3OutputPath") @@ -4840,12 +6764,29 @@ def __init__(__self__, *, :param pulumi.Input[str] content_sha256: The SHA-256 digest of the contents of the template. :param pulumi.Input[str] url: The URL for the user interface template. """ + HumanTaskUIUiTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_sha256=content_sha256, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_sha256: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_sha256 is None and 'contentSha256' in kwargs: + content_sha256 = kwargs['contentSha256'] + if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_sha256 is not None: - pulumi.set(__self__, "content_sha256", content_sha256) + _setter("content_sha256", content_sha256) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter @@ -4904,20 +6845,51 @@ def __init__(__self__, *, :param pulumi.Input[str] model_data_url: The URL for the S3 location where model artifacts are stored. :param pulumi.Input[str] model_package_name: The Amazon Resource Name (ARN) of the model package to use to create the model. """ + ModelContainerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_hostname=container_hostname, + environment=environment, + image=image, + image_config=image_config, + mode=mode, + model_data_url=model_data_url, + model_package_name=model_package_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_hostname: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + image: Optional[pulumi.Input[str]] = None, + image_config: Optional[pulumi.Input['ModelContainerImageConfigArgs']] = None, + mode: Optional[pulumi.Input[str]] = None, + model_data_url: Optional[pulumi.Input[str]] = None, + model_package_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_hostname is None and 'containerHostname' in kwargs: + container_hostname = kwargs['containerHostname'] + if image_config is None and 'imageConfig' in kwargs: + image_config = kwargs['imageConfig'] + if model_data_url is None and 'modelDataUrl' in kwargs: + model_data_url = kwargs['modelDataUrl'] + if model_package_name is None and 'modelPackageName' in kwargs: + model_package_name = kwargs['modelPackageName'] + if container_hostname is not None: - pulumi.set(__self__, "container_hostname", container_hostname) + _setter("container_hostname", container_hostname) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if image is not None: - pulumi.set(__self__, "image", image) + _setter("image", image) if image_config is not None: - pulumi.set(__self__, "image_config", image_config) + _setter("image_config", image_config) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if model_data_url is not None: - pulumi.set(__self__, "model_data_url", model_data_url) + _setter("model_data_url", model_data_url) if model_package_name is not None: - pulumi.set(__self__, "model_package_name", model_package_name) + _setter("model_package_name", model_package_name) @property @pulumi.getter(name="containerHostname") @@ -5014,9 +6986,28 @@ def __init__(__self__, *, :param pulumi.Input[str] repository_access_mode: Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). Allowed values are: `Platform` and `Vpc`. :param pulumi.Input['ModelContainerImageConfigRepositoryAuthConfigArgs'] repository_auth_config: Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified Vpc as the value for the RepositoryAccessMode field, and the private Docker registry where the model image is hosted requires authentication. see Repository Auth Config. """ - pulumi.set(__self__, "repository_access_mode", repository_access_mode) + ModelContainerImageConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_access_mode=repository_access_mode, + repository_auth_config=repository_auth_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_access_mode: Optional[pulumi.Input[str]] = None, + repository_auth_config: Optional[pulumi.Input['ModelContainerImageConfigRepositoryAuthConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_access_mode is None and 'repositoryAccessMode' in kwargs: + repository_access_mode = kwargs['repositoryAccessMode'] + if repository_access_mode is None: + raise TypeError("Missing 'repository_access_mode' argument") + if repository_auth_config is None and 'repositoryAuthConfig' in kwargs: + repository_auth_config = kwargs['repositoryAuthConfig'] + + _setter("repository_access_mode", repository_access_mode) if repository_auth_config is not None: - pulumi.set(__self__, "repository_auth_config", repository_auth_config) + _setter("repository_auth_config", repository_auth_config) @property @pulumi.getter(name="repositoryAccessMode") @@ -5050,7 +7041,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] repository_credentials_provider_arn: The Amazon Resource Name (ARN) of an AWS Lambda function that provides credentials to authenticate to the private Docker registry where your model image is hosted. For information about how to create an AWS Lambda function, see [Create a Lambda function with the console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html) in the _AWS Lambda Developer Guide_. """ - pulumi.set(__self__, "repository_credentials_provider_arn", repository_credentials_provider_arn) + ModelContainerImageConfigRepositoryAuthConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_credentials_provider_arn=repository_credentials_provider_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_credentials_provider_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_credentials_provider_arn is None and 'repositoryCredentialsProviderArn' in kwargs: + repository_credentials_provider_arn = kwargs['repositoryCredentialsProviderArn'] + if repository_credentials_provider_arn is None: + raise TypeError("Missing 'repository_credentials_provider_arn' argument") + + _setter("repository_credentials_provider_arn", repository_credentials_provider_arn) @property @pulumi.getter(name="repositoryCredentialsProviderArn") @@ -5072,7 +7078,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] mode: The container hosts value `SingleModel/MultiModel`. The default value is `SingleModel`. """ - pulumi.set(__self__, "mode", mode) + ModelInferenceExecutionConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("mode", mode) @property @pulumi.getter @@ -5107,20 +7126,51 @@ def __init__(__self__, *, :param pulumi.Input[str] model_data_url: The URL for the S3 location where model artifacts are stored. :param pulumi.Input[str] model_package_name: The Amazon Resource Name (ARN) of the model package to use to create the model. """ + ModelPrimaryContainerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_hostname=container_hostname, + environment=environment, + image=image, + image_config=image_config, + mode=mode, + model_data_url=model_data_url, + model_package_name=model_package_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_hostname: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + image: Optional[pulumi.Input[str]] = None, + image_config: Optional[pulumi.Input['ModelPrimaryContainerImageConfigArgs']] = None, + mode: Optional[pulumi.Input[str]] = None, + model_data_url: Optional[pulumi.Input[str]] = None, + model_package_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_hostname is None and 'containerHostname' in kwargs: + container_hostname = kwargs['containerHostname'] + if image_config is None and 'imageConfig' in kwargs: + image_config = kwargs['imageConfig'] + if model_data_url is None and 'modelDataUrl' in kwargs: + model_data_url = kwargs['modelDataUrl'] + if model_package_name is None and 'modelPackageName' in kwargs: + model_package_name = kwargs['modelPackageName'] + if container_hostname is not None: - pulumi.set(__self__, "container_hostname", container_hostname) + _setter("container_hostname", container_hostname) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if image is not None: - pulumi.set(__self__, "image", image) + _setter("image", image) if image_config is not None: - pulumi.set(__self__, "image_config", image_config) + _setter("image_config", image_config) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if model_data_url is not None: - pulumi.set(__self__, "model_data_url", model_data_url) + _setter("model_data_url", model_data_url) if model_package_name is not None: - pulumi.set(__self__, "model_package_name", model_package_name) + _setter("model_package_name", model_package_name) @property @pulumi.getter(name="containerHostname") @@ -5217,9 +7267,28 @@ def __init__(__self__, *, :param pulumi.Input[str] repository_access_mode: Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). Allowed values are: `Platform` and `Vpc`. :param pulumi.Input['ModelPrimaryContainerImageConfigRepositoryAuthConfigArgs'] repository_auth_config: Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified Vpc as the value for the RepositoryAccessMode field, and the private Docker registry where the model image is hosted requires authentication. see Repository Auth Config. """ - pulumi.set(__self__, "repository_access_mode", repository_access_mode) + ModelPrimaryContainerImageConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_access_mode=repository_access_mode, + repository_auth_config=repository_auth_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_access_mode: Optional[pulumi.Input[str]] = None, + repository_auth_config: Optional[pulumi.Input['ModelPrimaryContainerImageConfigRepositoryAuthConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_access_mode is None and 'repositoryAccessMode' in kwargs: + repository_access_mode = kwargs['repositoryAccessMode'] + if repository_access_mode is None: + raise TypeError("Missing 'repository_access_mode' argument") + if repository_auth_config is None and 'repositoryAuthConfig' in kwargs: + repository_auth_config = kwargs['repositoryAuthConfig'] + + _setter("repository_access_mode", repository_access_mode) if repository_auth_config is not None: - pulumi.set(__self__, "repository_auth_config", repository_auth_config) + _setter("repository_auth_config", repository_auth_config) @property @pulumi.getter(name="repositoryAccessMode") @@ -5253,7 +7322,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] repository_credentials_provider_arn: The Amazon Resource Name (ARN) of an AWS Lambda function that provides credentials to authenticate to the private Docker registry where your model image is hosted. For information about how to create an AWS Lambda function, see [Create a Lambda function with the console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html) in the _AWS Lambda Developer Guide_. """ - pulumi.set(__self__, "repository_credentials_provider_arn", repository_credentials_provider_arn) + ModelPrimaryContainerImageConfigRepositoryAuthConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_credentials_provider_arn=repository_credentials_provider_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_credentials_provider_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_credentials_provider_arn is None and 'repositoryCredentialsProviderArn' in kwargs: + repository_credentials_provider_arn = kwargs['repositoryCredentialsProviderArn'] + if repository_credentials_provider_arn is None: + raise TypeError("Missing 'repository_credentials_provider_arn' argument") + + _setter("repository_credentials_provider_arn", repository_credentials_provider_arn) @property @pulumi.getter(name="repositoryCredentialsProviderArn") @@ -5273,8 +7357,27 @@ class ModelVpcConfigArgs: def __init__(__self__, *, security_group_ids: pulumi.Input[Sequence[pulumi.Input[str]]], subnets: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) + ModelVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroupIds") @@ -5306,10 +7409,35 @@ def __init__(__self__, *, :param pulumi.Input[str] monitoring_type: The type of the monitoring job definition to schedule. Valid values are `DataQuality`, `ModelQuality`, `ModelBias` or `ModelExplainability` :param pulumi.Input['MonitoringScheduleMonitoringScheduleConfigScheduleConfigArgs'] schedule_config: Configures the monitoring schedule. Fields are documented below. """ - pulumi.set(__self__, "monitoring_job_definition_name", monitoring_job_definition_name) - pulumi.set(__self__, "monitoring_type", monitoring_type) + MonitoringScheduleMonitoringScheduleConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + monitoring_job_definition_name=monitoring_job_definition_name, + monitoring_type=monitoring_type, + schedule_config=schedule_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + monitoring_job_definition_name: Optional[pulumi.Input[str]] = None, + monitoring_type: Optional[pulumi.Input[str]] = None, + schedule_config: Optional[pulumi.Input['MonitoringScheduleMonitoringScheduleConfigScheduleConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if monitoring_job_definition_name is None and 'monitoringJobDefinitionName' in kwargs: + monitoring_job_definition_name = kwargs['monitoringJobDefinitionName'] + if monitoring_job_definition_name is None: + raise TypeError("Missing 'monitoring_job_definition_name' argument") + if monitoring_type is None and 'monitoringType' in kwargs: + monitoring_type = kwargs['monitoringType'] + if monitoring_type is None: + raise TypeError("Missing 'monitoring_type' argument") + if schedule_config is None and 'scheduleConfig' in kwargs: + schedule_config = kwargs['scheduleConfig'] + + _setter("monitoring_job_definition_name", monitoring_job_definition_name) + _setter("monitoring_type", monitoring_type) if schedule_config is not None: - pulumi.set(__self__, "schedule_config", schedule_config) + _setter("schedule_config", schedule_config) @property @pulumi.getter(name="monitoringJobDefinitionName") @@ -5355,7 +7483,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] schedule_expression: A cron expression that describes details about the monitoring schedule. For example, and hourly schedule would be `cron(0 * ? * * *)`. """ - pulumi.set(__self__, "schedule_expression", schedule_expression) + MonitoringScheduleMonitoringScheduleConfigScheduleConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schedule_expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="scheduleExpression") @@ -5377,8 +7520,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] minimum_instance_metadata_service_version: Indicates the minimum IMDS version that the notebook instance supports. When passed "1" is passed. This means that both IMDSv1 and IMDSv2 are supported. Valid values are `1` and `2`. """ + NotebookInstanceInstanceMetadataServiceConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + minimum_instance_metadata_service_version=minimum_instance_metadata_service_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minimum_instance_metadata_service_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minimum_instance_metadata_service_version is None and 'minimumInstanceMetadataServiceVersion' in kwargs: + minimum_instance_metadata_service_version = kwargs['minimumInstanceMetadataServiceVersion'] + if minimum_instance_metadata_service_version is not None: - pulumi.set(__self__, "minimum_instance_metadata_service_version", minimum_instance_metadata_service_version) + _setter("minimum_instance_metadata_service_version", minimum_instance_metadata_service_version) @property @pulumi.getter(name="minimumInstanceMetadataServiceVersion") @@ -5400,7 +7556,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] max_parallel_execution_steps: The max number of steps that can be executed in parallel. """ - pulumi.set(__self__, "max_parallel_execution_steps", max_parallel_execution_steps) + PipelineParallelismConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_parallel_execution_steps=max_parallel_execution_steps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_parallel_execution_steps: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_parallel_execution_steps is None and 'maxParallelExecutionSteps' in kwargs: + max_parallel_execution_steps = kwargs['maxParallelExecutionSteps'] + if max_parallel_execution_steps is None: + raise TypeError("Missing 'max_parallel_execution_steps' argument") + + _setter("max_parallel_execution_steps", max_parallel_execution_steps) @property @pulumi.getter(name="maxParallelExecutionSteps") @@ -5426,10 +7597,33 @@ def __init__(__self__, *, :param pulumi.Input[str] object_key: The object key (or key name) uniquely identifies the object in an S3 bucket. :param pulumi.Input[str] version_id: Version Id of the pipeline definition file. If not specified, Amazon SageMaker will retrieve the latest version. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "object_key", object_key) + PipelinePipelineDefinitionS3LocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + object_key=object_key, + version_id=version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + object_key: Optional[pulumi.Input[str]] = None, + version_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if object_key is None and 'objectKey' in kwargs: + object_key = kwargs['objectKey'] + if object_key is None: + raise TypeError("Missing 'object_key' argument") + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + + _setter("bucket", bucket) + _setter("object_key", object_key) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) @property @pulumi.getter @@ -5481,13 +7675,40 @@ def __init__(__self__, *, :param pulumi.Input[str] provisioning_artifact_id: The ID of the provisioning artifact. :param pulumi.Input[Sequence[pulumi.Input['ProjectServiceCatalogProvisioningDetailsProvisioningParameterArgs']]] provisioning_parameters: A list of key value pairs that you specify when you provision a product. See Provisioning Parameter below. """ - pulumi.set(__self__, "product_id", product_id) + ProjectServiceCatalogProvisioningDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + product_id=product_id, + path_id=path_id, + provisioning_artifact_id=provisioning_artifact_id, + provisioning_parameters=provisioning_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + product_id: Optional[pulumi.Input[str]] = None, + path_id: Optional[pulumi.Input[str]] = None, + provisioning_artifact_id: Optional[pulumi.Input[str]] = None, + provisioning_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectServiceCatalogProvisioningDetailsProvisioningParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if product_id is None: + raise TypeError("Missing 'product_id' argument") + if path_id is None and 'pathId' in kwargs: + path_id = kwargs['pathId'] + if provisioning_artifact_id is None and 'provisioningArtifactId' in kwargs: + provisioning_artifact_id = kwargs['provisioningArtifactId'] + if provisioning_parameters is None and 'provisioningParameters' in kwargs: + provisioning_parameters = kwargs['provisioningParameters'] + + _setter("product_id", product_id) if path_id is not None: - pulumi.set(__self__, "path_id", path_id) + _setter("path_id", path_id) if provisioning_artifact_id is not None: - pulumi.set(__self__, "provisioning_artifact_id", provisioning_artifact_id) + _setter("provisioning_artifact_id", provisioning_artifact_id) if provisioning_parameters is not None: - pulumi.set(__self__, "provisioning_parameters", provisioning_parameters) + _setter("provisioning_parameters", provisioning_parameters) @property @pulumi.getter(name="productId") @@ -5547,9 +7768,24 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key that identifies a provisioning parameter. :param pulumi.Input[str] value: The value of the provisioning parameter. """ - pulumi.set(__self__, "key", key) + ProjectServiceCatalogProvisioningDetailsProvisioningParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -5585,10 +7821,27 @@ def __init__(__self__, *, :param pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsArgs'] jupyter_server_app_settings: The Jupyter server's app settings. See Jupyter Server App Settings below. :param pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsArgs'] kernel_gateway_app_settings: The kernel gateway app settings. See Kernel Gateway App Settings below. """ + SpaceSpaceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + jupyter_server_app_settings=jupyter_server_app_settings, + kernel_gateway_app_settings=kernel_gateway_app_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jupyter_server_app_settings: Optional[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsArgs']] = None, + kernel_gateway_app_settings: Optional[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jupyter_server_app_settings is None and 'jupyterServerAppSettings' in kwargs: + jupyter_server_app_settings = kwargs['jupyterServerAppSettings'] + if kernel_gateway_app_settings is None and 'kernelGatewayAppSettings' in kwargs: + kernel_gateway_app_settings = kwargs['kernelGatewayAppSettings'] + if jupyter_server_app_settings is not None: - pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + _setter("jupyter_server_app_settings", jupyter_server_app_settings) if kernel_gateway_app_settings is not None: - pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + _setter("kernel_gateway_app_settings", kernel_gateway_app_settings) @property @pulumi.getter(name="jupyterServerAppSettings") @@ -5626,11 +7879,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs']]] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + SpaceSpaceSettingsJupyterServerAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_resource_spec=default_resource_spec, + code_repositories=code_repositories, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_resource_spec: Optional[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs']] = None, + code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs']]]] = None, + lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if default_resource_spec is None: + raise TypeError("Missing 'default_resource_spec' argument") + if code_repositories is None and 'codeRepositories' in kwargs: + code_repositories = kwargs['codeRepositories'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + + _setter("default_resource_spec", default_resource_spec) if code_repositories is not None: - pulumi.set(__self__, "code_repositories", code_repositories) + _setter("code_repositories", code_repositories) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="defaultResourceSpec") @@ -5676,7 +7952,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] repository_url: The URL of the Git repository. """ - pulumi.set(__self__, "repository_url", repository_url) + SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + + _setter("repository_url", repository_url) @property @pulumi.getter(name="repositoryUrl") @@ -5704,14 +7995,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -5773,11 +8089,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + SpaceSpaceSettingsKernelGatewayAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_resource_spec=default_resource_spec, + custom_images=custom_images, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_resource_spec: Optional[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs']] = None, + custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs']]]] = None, + lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if default_resource_spec is None: + raise TypeError("Missing 'default_resource_spec' argument") + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + + _setter("default_resource_spec", default_resource_spec) if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="defaultResourceSpec") @@ -5827,10 +8166,35 @@ def __init__(__self__, *, :param pulumi.Input[str] image_name: The name of the Custom Image. :param pulumi.Input[int] image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + image_version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -5882,14 +8246,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -5963,23 +8352,70 @@ def __init__(__self__, *, :param pulumi.Input['UserProfileUserSettingsSharingSettingsArgs'] sharing_settings: The sharing settings. See Sharing Settings below. :param pulumi.Input['UserProfileUserSettingsTensorBoardAppSettingsArgs'] tensor_board_app_settings: The TensorBoard app settings. See TensorBoard App Settings below. """ - pulumi.set(__self__, "execution_role", execution_role) + UserProfileUserSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + canvas_app_settings=canvas_app_settings, + jupyter_server_app_settings=jupyter_server_app_settings, + kernel_gateway_app_settings=kernel_gateway_app_settings, + r_session_app_settings=r_session_app_settings, + r_studio_server_pro_app_settings=r_studio_server_pro_app_settings, + security_groups=security_groups, + sharing_settings=sharing_settings, + tensor_board_app_settings=tensor_board_app_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[pulumi.Input[str]] = None, + canvas_app_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsArgs']] = None, + jupyter_server_app_settings: Optional[pulumi.Input['UserProfileUserSettingsJupyterServerAppSettingsArgs']] = None, + kernel_gateway_app_settings: Optional[pulumi.Input['UserProfileUserSettingsKernelGatewayAppSettingsArgs']] = None, + r_session_app_settings: Optional[pulumi.Input['UserProfileUserSettingsRSessionAppSettingsArgs']] = None, + r_studio_server_pro_app_settings: Optional[pulumi.Input['UserProfileUserSettingsRStudioServerProAppSettingsArgs']] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sharing_settings: Optional[pulumi.Input['UserProfileUserSettingsSharingSettingsArgs']] = None, + tensor_board_app_settings: Optional[pulumi.Input['UserProfileUserSettingsTensorBoardAppSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if canvas_app_settings is None and 'canvasAppSettings' in kwargs: + canvas_app_settings = kwargs['canvasAppSettings'] + if jupyter_server_app_settings is None and 'jupyterServerAppSettings' in kwargs: + jupyter_server_app_settings = kwargs['jupyterServerAppSettings'] + if kernel_gateway_app_settings is None and 'kernelGatewayAppSettings' in kwargs: + kernel_gateway_app_settings = kwargs['kernelGatewayAppSettings'] + if r_session_app_settings is None and 'rSessionAppSettings' in kwargs: + r_session_app_settings = kwargs['rSessionAppSettings'] + if r_studio_server_pro_app_settings is None and 'rStudioServerProAppSettings' in kwargs: + r_studio_server_pro_app_settings = kwargs['rStudioServerProAppSettings'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if sharing_settings is None and 'sharingSettings' in kwargs: + sharing_settings = kwargs['sharingSettings'] + if tensor_board_app_settings is None and 'tensorBoardAppSettings' in kwargs: + tensor_board_app_settings = kwargs['tensorBoardAppSettings'] + + _setter("execution_role", execution_role) if canvas_app_settings is not None: - pulumi.set(__self__, "canvas_app_settings", canvas_app_settings) + _setter("canvas_app_settings", canvas_app_settings) if jupyter_server_app_settings is not None: - pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + _setter("jupyter_server_app_settings", jupyter_server_app_settings) if kernel_gateway_app_settings is not None: - pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + _setter("kernel_gateway_app_settings", kernel_gateway_app_settings) if r_session_app_settings is not None: - pulumi.set(__self__, "r_session_app_settings", r_session_app_settings) + _setter("r_session_app_settings", r_session_app_settings) if r_studio_server_pro_app_settings is not None: - pulumi.set(__self__, "r_studio_server_pro_app_settings", r_studio_server_pro_app_settings) + _setter("r_studio_server_pro_app_settings", r_studio_server_pro_app_settings) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if sharing_settings is not None: - pulumi.set(__self__, "sharing_settings", sharing_settings) + _setter("sharing_settings", sharing_settings) if tensor_board_app_settings is not None: - pulumi.set(__self__, "tensor_board_app_settings", tensor_board_app_settings) + _setter("tensor_board_app_settings", tensor_board_app_settings) @property @pulumi.getter(name="executionRole") @@ -6101,12 +8537,33 @@ def __init__(__self__, *, :param pulumi.Input['UserProfileUserSettingsCanvasAppSettingsTimeSeriesForecastingSettingsArgs'] time_series_forecasting_settings: Time series forecast settings for the Canvas app. see Time Series Forecasting Settings below. :param pulumi.Input['UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsArgs'] workspace_settings: The workspace settings for the SageMaker Canvas application. See Workspace Settings below. """ + UserProfileUserSettingsCanvasAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_register_settings=model_register_settings, + time_series_forecasting_settings=time_series_forecasting_settings, + workspace_settings=workspace_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_register_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsModelRegisterSettingsArgs']] = None, + time_series_forecasting_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsTimeSeriesForecastingSettingsArgs']] = None, + workspace_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_register_settings is None and 'modelRegisterSettings' in kwargs: + model_register_settings = kwargs['modelRegisterSettings'] + if time_series_forecasting_settings is None and 'timeSeriesForecastingSettings' in kwargs: + time_series_forecasting_settings = kwargs['timeSeriesForecastingSettings'] + if workspace_settings is None and 'workspaceSettings' in kwargs: + workspace_settings = kwargs['workspaceSettings'] + if model_register_settings is not None: - pulumi.set(__self__, "model_register_settings", model_register_settings) + _setter("model_register_settings", model_register_settings) if time_series_forecasting_settings is not None: - pulumi.set(__self__, "time_series_forecasting_settings", time_series_forecasting_settings) + _setter("time_series_forecasting_settings", time_series_forecasting_settings) if workspace_settings is not None: - pulumi.set(__self__, "workspace_settings", workspace_settings) + _setter("workspace_settings", workspace_settings) @property @pulumi.getter(name="modelRegisterSettings") @@ -6154,10 +8611,25 @@ def __init__(__self__, *, :param pulumi.Input[str] cross_account_model_register_role_arn: The Amazon Resource Name (ARN) of the SageMaker model registry account. Required only to register model versions created by a different SageMaker Canvas AWS account than the AWS account in which SageMaker model registry is set up. :param pulumi.Input[str] status: Describes whether the integration to the model registry is enabled or disabled in the Canvas application. Valid values are `ENABLED` and `DISABLED`. """ + UserProfileUserSettingsCanvasAppSettingsModelRegisterSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cross_account_model_register_role_arn=cross_account_model_register_role_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cross_account_model_register_role_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cross_account_model_register_role_arn is None and 'crossAccountModelRegisterRoleArn' in kwargs: + cross_account_model_register_role_arn = kwargs['crossAccountModelRegisterRoleArn'] + if cross_account_model_register_role_arn is not None: - pulumi.set(__self__, "cross_account_model_register_role_arn", cross_account_model_register_role_arn) + _setter("cross_account_model_register_role_arn", cross_account_model_register_role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="crossAccountModelRegisterRoleArn") @@ -6193,10 +8665,25 @@ def __init__(__self__, *, :param pulumi.Input[str] amazon_forecast_role_arn: The IAM role that Canvas passes to Amazon Forecast for time series forecasting. By default, Canvas uses the execution role specified in the UserProfile that launches the Canvas app. If an execution role is not specified in the UserProfile, Canvas uses the execution role specified in the Domain that owns the UserProfile. To allow time series forecasting, this IAM role should have the [AmazonSageMakerCanvasForecastAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasForecastAccess) policy attached and forecast.amazonaws.com added in the trust relationship as a service principal. :param pulumi.Input[str] status: Describes whether time series forecasting is enabled or disabled in the Canvas app. Valid values are `ENABLED` and `DISABLED`. """ + UserProfileUserSettingsCanvasAppSettingsTimeSeriesForecastingSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_forecast_role_arn=amazon_forecast_role_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_forecast_role_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_forecast_role_arn is None and 'amazonForecastRoleArn' in kwargs: + amazon_forecast_role_arn = kwargs['amazonForecastRoleArn'] + if amazon_forecast_role_arn is not None: - pulumi.set(__self__, "amazon_forecast_role_arn", amazon_forecast_role_arn) + _setter("amazon_forecast_role_arn", amazon_forecast_role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="amazonForecastRoleArn") @@ -6232,10 +8719,27 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_artifact_path: The Amazon S3 bucket used to store artifacts generated by Canvas. Updating the Amazon S3 location impacts existing configuration settings, and Canvas users no longer have access to their artifacts. Canvas users must log out and log back in to apply the new location. :param pulumi.Input[str] s3_kms_key_id: The Amazon Web Services Key Management Service (KMS) encryption key ID that is used to encrypt artifacts generated by Canvas in the Amazon S3 bucket. """ + UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_artifact_path=s3_artifact_path, + s3_kms_key_id=s3_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_artifact_path: Optional[pulumi.Input[str]] = None, + s3_kms_key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_artifact_path is None and 's3ArtifactPath' in kwargs: + s3_artifact_path = kwargs['s3ArtifactPath'] + if s3_kms_key_id is None and 's3KmsKeyId' in kwargs: + s3_kms_key_id = kwargs['s3KmsKeyId'] + if s3_artifact_path is not None: - pulumi.set(__self__, "s3_artifact_path", s3_artifact_path) + _setter("s3_artifact_path", s3_artifact_path) if s3_kms_key_id is not None: - pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + _setter("s3_kms_key_id", s3_kms_key_id) @property @pulumi.getter(name="s3ArtifactPath") @@ -6273,12 +8777,33 @@ def __init__(__self__, *, :param pulumi.Input['UserProfileUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + UserProfileUserSettingsJupyterServerAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + code_repositories=code_repositories, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsJupyterServerAppSettingsCodeRepositoryArgs']]]] = None, + default_resource_spec: Optional[pulumi.Input['UserProfileUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs']] = None, + lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_repositories is None and 'codeRepositories' in kwargs: + code_repositories = kwargs['codeRepositories'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if code_repositories is not None: - pulumi.set(__self__, "code_repositories", code_repositories) + _setter("code_repositories", code_repositories) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="codeRepositories") @@ -6324,7 +8849,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] repository_url: The URL of the Git repository. """ - pulumi.set(__self__, "repository_url", repository_url) + UserProfileUserSettingsJupyterServerAppSettingsCodeRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + + _setter("repository_url", repository_url) @property @pulumi.getter(name="repositoryUrl") @@ -6352,14 +8892,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + UserProfileUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -6421,12 +8986,33 @@ def __init__(__self__, *, :param pulumi.Input['UserProfileUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + UserProfileUserSettingsKernelGatewayAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsKernelGatewayAppSettingsCustomImageArgs']]]] = None, + default_resource_spec: Optional[pulumi.Input['UserProfileUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs']] = None, + lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="customImages") @@ -6476,10 +9062,35 @@ def __init__(__self__, *, :param pulumi.Input[str] image_name: The name of the Custom Image. :param pulumi.Input[int] image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + UserProfileUserSettingsKernelGatewayAppSettingsCustomImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + image_version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -6531,14 +9142,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + UserProfileUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -6598,10 +9234,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsRSessionAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. :param pulumi.Input['UserProfileUserSettingsRSessionAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. """ + UserProfileUserSettingsRSessionAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsRSessionAppSettingsCustomImageArgs']]]] = None, + default_resource_spec: Optional[pulumi.Input['UserProfileUserSettingsRSessionAppSettingsDefaultResourceSpecArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) @property @pulumi.getter(name="customImages") @@ -6639,10 +9292,35 @@ def __init__(__self__, *, :param pulumi.Input[str] image_name: The name of the Custom Image. :param pulumi.Input[int] image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + UserProfileUserSettingsRSessionAppSettingsCustomImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + image_version_number: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -6694,14 +9372,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + UserProfileUserSettingsRSessionAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -6761,10 +9464,27 @@ def __init__(__self__, *, :param pulumi.Input[str] access_status: Indicates whether the current user has access to the RStudioServerPro app. Valid values are `ENABLED` and `DISABLED`. :param pulumi.Input[str] user_group: The level of permissions that the user has within the RStudioServerPro app. This value defaults to `R_STUDIO_USER`. The `R_STUDIO_ADMIN` value allows the user access to the RStudio Administrative Dashboard. Valid values are `R_STUDIO_USER` and `R_STUDIO_ADMIN`. """ + UserProfileUserSettingsRStudioServerProAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_status=access_status, + user_group=user_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_status: Optional[pulumi.Input[str]] = None, + user_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_status is None and 'accessStatus' in kwargs: + access_status = kwargs['accessStatus'] + if user_group is None and 'userGroup' in kwargs: + user_group = kwargs['userGroup'] + if access_status is not None: - pulumi.set(__self__, "access_status", access_status) + _setter("access_status", access_status) if user_group is not None: - pulumi.set(__self__, "user_group", user_group) + _setter("user_group", user_group) @property @pulumi.getter(name="accessStatus") @@ -6802,12 +9522,33 @@ def __init__(__self__, *, :param pulumi.Input[str] s3_kms_key_id: When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. :param pulumi.Input[str] s3_output_path: When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. """ + UserProfileUserSettingsSharingSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + notebook_output_option=notebook_output_option, + s3_kms_key_id=s3_kms_key_id, + s3_output_path=s3_output_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notebook_output_option: Optional[pulumi.Input[str]] = None, + s3_kms_key_id: Optional[pulumi.Input[str]] = None, + s3_output_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notebook_output_option is None and 'notebookOutputOption' in kwargs: + notebook_output_option = kwargs['notebookOutputOption'] + if s3_kms_key_id is None and 's3KmsKeyId' in kwargs: + s3_kms_key_id = kwargs['s3KmsKeyId'] + if s3_output_path is None and 's3OutputPath' in kwargs: + s3_output_path = kwargs['s3OutputPath'] + if notebook_output_option is not None: - pulumi.set(__self__, "notebook_output_option", notebook_output_option) + _setter("notebook_output_option", notebook_output_option) if s3_kms_key_id is not None: - pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + _setter("s3_kms_key_id", s3_kms_key_id) if s3_output_path is not None: - pulumi.set(__self__, "s3_output_path", s3_output_path) + _setter("s3_output_path", s3_output_path) @property @pulumi.getter(name="notebookOutputOption") @@ -6853,7 +9594,22 @@ def __init__(__self__, *, """ :param pulumi.Input['UserProfileUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. """ - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + UserProfileUserSettingsTensorBoardAppSettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_resource_spec=default_resource_spec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_resource_spec: Optional[pulumi.Input['UserProfileUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if default_resource_spec is None: + raise TypeError("Missing 'default_resource_spec' argument") + + _setter("default_resource_spec", default_resource_spec) @property @pulumi.getter(name="defaultResourceSpec") @@ -6881,14 +9637,39 @@ def __init__(__self__, *, :param pulumi.Input[str] sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param pulumi.Input[str] sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + UserProfileUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + lifecycle_config_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None, + sagemaker_image_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -6948,8 +9729,29 @@ def __init__(__self__, *, :param pulumi.Input[str] client_id: The client ID for your Amazon Cognito user pool. :param pulumi.Input[str] user_pool: ID for your Amazon Cognito user pool. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "user_pool", user_pool) + WorkforceCognitoConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + user_pool=user_pool, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + user_pool: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if user_pool is None and 'userPool' in kwargs: + user_pool = kwargs['userPool'] + if user_pool is None: + raise TypeError("Missing 'user_pool' argument") + + _setter("client_id", client_id) + _setter("user_pool", user_pool) @property @pulumi.getter(name="clientId") @@ -6997,14 +9799,69 @@ def __init__(__self__, *, :param pulumi.Input[str] token_endpoint: The OIDC IdP token endpoint used to configure your private workforce. :param pulumi.Input[str] user_info_endpoint: The OIDC IdP user information endpoint used to configure your private workforce. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "jwks_uri", jwks_uri) - pulumi.set(__self__, "logout_endpoint", logout_endpoint) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + WorkforceOidcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + jwks_uri=jwks_uri, + logout_endpoint=logout_endpoint, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + issuer: Optional[pulumi.Input[str]] = None, + jwks_uri: Optional[pulumi.Input[str]] = None, + logout_endpoint: Optional[pulumi.Input[str]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_info_endpoint: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if jwks_uri is None and 'jwksUri' in kwargs: + jwks_uri = kwargs['jwksUri'] + if jwks_uri is None: + raise TypeError("Missing 'jwks_uri' argument") + if logout_endpoint is None and 'logoutEndpoint' in kwargs: + logout_endpoint = kwargs['logoutEndpoint'] + if logout_endpoint is None: + raise TypeError("Missing 'logout_endpoint' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("jwks_uri", jwks_uri) + _setter("logout_endpoint", logout_endpoint) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) @property @pulumi.getter(name="authorizationEndpoint") @@ -7110,7 +9967,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] cidrs: A list of up to 10 CIDR values. """ - pulumi.set(__self__, "cidrs", cidrs) + WorkforceSourceIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidrs=cidrs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidrs is None: + raise TypeError("Missing 'cidrs' argument") + + _setter("cidrs", cidrs) @property @pulumi.getter @@ -7137,14 +10007,37 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: The ID of the subnets in the VPC that you want to connect. :param pulumi.Input[str] vpc_id: The ID of the VPC that the workforce uses for communication. """ + WorkforceWorkforceVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") @@ -7201,10 +10094,27 @@ def __init__(__self__, *, :param pulumi.Input['WorkteamMemberDefinitionCognitoMemberDefinitionArgs'] cognito_member_definition: The Amazon Cognito user group that is part of the work team. See Cognito Member Definition details below. :param pulumi.Input['WorkteamMemberDefinitionOidcMemberDefinitionArgs'] oidc_member_definition: A list user groups that exist in your OIDC Identity Provider (IdP). One to ten groups can be used to create a single private work team. See Cognito Member Definition details below. """ + WorkteamMemberDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cognito_member_definition=cognito_member_definition, + oidc_member_definition=oidc_member_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cognito_member_definition: Optional[pulumi.Input['WorkteamMemberDefinitionCognitoMemberDefinitionArgs']] = None, + oidc_member_definition: Optional[pulumi.Input['WorkteamMemberDefinitionOidcMemberDefinitionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cognito_member_definition is None and 'cognitoMemberDefinition' in kwargs: + cognito_member_definition = kwargs['cognitoMemberDefinition'] + if oidc_member_definition is None and 'oidcMemberDefinition' in kwargs: + oidc_member_definition = kwargs['oidcMemberDefinition'] + if cognito_member_definition is not None: - pulumi.set(__self__, "cognito_member_definition", cognito_member_definition) + _setter("cognito_member_definition", cognito_member_definition) if oidc_member_definition is not None: - pulumi.set(__self__, "oidc_member_definition", oidc_member_definition) + _setter("oidc_member_definition", oidc_member_definition) @property @pulumi.getter(name="cognitoMemberDefinition") @@ -7242,9 +10152,36 @@ def __init__(__self__, *, :param pulumi.Input[str] user_group: An identifier for a user group. :param pulumi.Input[str] user_pool: An identifier for a user pool. The user pool must be in the same region as the service that you are calling. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "user_group", user_group) - pulumi.set(__self__, "user_pool", user_pool) + WorkteamMemberDefinitionCognitoMemberDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + user_group=user_group, + user_pool=user_pool, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[pulumi.Input[str]] = None, + user_group: Optional[pulumi.Input[str]] = None, + user_pool: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if user_group is None and 'userGroup' in kwargs: + user_group = kwargs['userGroup'] + if user_group is None: + raise TypeError("Missing 'user_group' argument") + if user_pool is None and 'userPool' in kwargs: + user_pool = kwargs['userPool'] + if user_pool is None: + raise TypeError("Missing 'user_pool' argument") + + _setter("client_id", client_id) + _setter("user_group", user_group) + _setter("user_pool", user_pool) @property @pulumi.getter(name="clientId") @@ -7290,7 +10227,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] groups: A list of comma separated strings that identifies user groups in your OIDC IdP. Each user group is made up of a group of private workers. """ - pulumi.set(__self__, "groups", groups) + WorkteamMemberDefinitionOidcMemberDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + groups=groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if groups is None: + raise TypeError("Missing 'groups' argument") + + _setter("groups", groups) @property @pulumi.getter @@ -7312,8 +10262,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] notification_topic_arn: The ARN for the SNS topic to which notifications should be published. """ + WorkteamNotificationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + notification_topic_arn=notification_topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notification_topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notification_topic_arn is None and 'notificationTopicArn' in kwargs: + notification_topic_arn = kwargs['notificationTopicArn'] + if notification_topic_arn is not None: - pulumi.set(__self__, "notification_topic_arn", notification_topic_arn) + _setter("notification_topic_arn", notification_topic_arn) @property @pulumi.getter(name="notificationTopicArn") diff --git a/sdk/python/pulumi_aws/sagemaker/app.py b/sdk/python/pulumi_aws/sagemaker/app.py index 7df650e92b0..58c6a8310e9 100644 --- a/sdk/python/pulumi_aws/sagemaker/app.py +++ b/sdk/python/pulumi_aws/sagemaker/app.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,17 +33,58 @@ def __init__(__self__, *, :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] user_profile_name: The user profile name. At least one of `user_profile_name` or `space_name` required. """ - pulumi.set(__self__, "app_name", app_name) - pulumi.set(__self__, "app_type", app_type) - pulumi.set(__self__, "domain_id", domain_id) + AppArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_name=app_name, + app_type=app_type, + domain_id=domain_id, + resource_spec=resource_spec, + space_name=space_name, + tags=tags, + user_profile_name=user_profile_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_name: Optional[pulumi.Input[str]] = None, + app_type: Optional[pulumi.Input[str]] = None, + domain_id: Optional[pulumi.Input[str]] = None, + resource_spec: Optional[pulumi.Input['AppResourceSpecArgs']] = None, + space_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_profile_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_name is None and 'appName' in kwargs: + app_name = kwargs['appName'] + if app_name is None: + raise TypeError("Missing 'app_name' argument") + if app_type is None and 'appType' in kwargs: + app_type = kwargs['appType'] + if app_type is None: + raise TypeError("Missing 'app_type' argument") + if domain_id is None and 'domainId' in kwargs: + domain_id = kwargs['domainId'] + if domain_id is None: + raise TypeError("Missing 'domain_id' argument") + if resource_spec is None and 'resourceSpec' in kwargs: + resource_spec = kwargs['resourceSpec'] + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if user_profile_name is None and 'userProfileName' in kwargs: + user_profile_name = kwargs['userProfileName'] + + _setter("app_name", app_name) + _setter("app_type", app_type) + _setter("domain_id", domain_id) if resource_spec is not None: - pulumi.set(__self__, "resource_spec", resource_spec) + _setter("resource_spec", resource_spec) if space_name is not None: - pulumi.set(__self__, "space_name", space_name) + _setter("space_name", space_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_profile_name is not None: - pulumi.set(__self__, "user_profile_name", user_profile_name) + _setter("user_profile_name", user_profile_name) @property @pulumi.getter(name="appName") @@ -154,27 +195,68 @@ def __init__(__self__, *, :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] user_profile_name: The user profile name. At least one of `user_profile_name` or `space_name` required. """ + _AppState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_name=app_name, + app_type=app_type, + arn=arn, + domain_id=domain_id, + resource_spec=resource_spec, + space_name=space_name, + tags=tags, + tags_all=tags_all, + user_profile_name=user_profile_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_name: Optional[pulumi.Input[str]] = None, + app_type: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + domain_id: Optional[pulumi.Input[str]] = None, + resource_spec: Optional[pulumi.Input['AppResourceSpecArgs']] = None, + space_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_profile_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_name is None and 'appName' in kwargs: + app_name = kwargs['appName'] + if app_type is None and 'appType' in kwargs: + app_type = kwargs['appType'] + if domain_id is None and 'domainId' in kwargs: + domain_id = kwargs['domainId'] + if resource_spec is None and 'resourceSpec' in kwargs: + resource_spec = kwargs['resourceSpec'] + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_profile_name is None and 'userProfileName' in kwargs: + user_profile_name = kwargs['userProfileName'] + if app_name is not None: - pulumi.set(__self__, "app_name", app_name) + _setter("app_name", app_name) if app_type is not None: - pulumi.set(__self__, "app_type", app_type) + _setter("app_type", app_type) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain_id is not None: - pulumi.set(__self__, "domain_id", domain_id) + _setter("domain_id", domain_id) if resource_spec is not None: - pulumi.set(__self__, "resource_spec", resource_spec) + _setter("resource_spec", resource_spec) if space_name is not None: - pulumi.set(__self__, "space_name", space_name) + _setter("space_name", space_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_profile_name is not None: - pulumi.set(__self__, "user_profile_name", user_profile_name) + _setter("user_profile_name", user_profile_name) @property @pulumi.getter(name="appName") @@ -377,6 +459,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AppArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -407,6 +493,7 @@ def _internal_init(__self__, if domain_id is None and not opts.urn: raise TypeError("Missing required property 'domain_id'") __props__.__dict__["domain_id"] = domain_id + resource_spec = _utilities.configure(resource_spec, AppResourceSpecArgs, True) __props__.__dict__["resource_spec"] = resource_spec __props__.__dict__["space_name"] = space_name __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/sagemaker/app_image_config.py b/sdk/python/pulumi_aws/sagemaker/app_image_config.py index efed4c7a3f4..656f210983c 100644 --- a/sdk/python/pulumi_aws/sagemaker/app_image_config.py +++ b/sdk/python/pulumi_aws/sagemaker/app_image_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,32 @@ def __init__(__self__, *, :param pulumi.Input['AppImageConfigKernelGatewayImageConfigArgs'] kernel_gateway_image_config: The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) + AppImageConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + kernel_gateway_image_config=kernel_gateway_image_config, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[pulumi.Input[str]] = None, + kernel_gateway_image_config: Optional[pulumi.Input['AppImageConfigKernelGatewayImageConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if kernel_gateway_image_config is None and 'kernelGatewayImageConfig' in kwargs: + kernel_gateway_image_config = kwargs['kernelGatewayImageConfig'] + + _setter("app_image_config_name", app_image_config_name) if kernel_gateway_image_config is not None: - pulumi.set(__self__, "kernel_gateway_image_config", kernel_gateway_image_config) + _setter("kernel_gateway_image_config", kernel_gateway_image_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="appImageConfigName") @@ -84,19 +105,44 @@ def __init__(__self__, *, :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. """ + _AppImageConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + arn=arn, + kernel_gateway_image_config=kernel_gateway_image_config, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + kernel_gateway_image_config: Optional[pulumi.Input['AppImageConfigKernelGatewayImageConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if kernel_gateway_image_config is None and 'kernelGatewayImageConfig' in kwargs: + kernel_gateway_image_config = kwargs['kernelGatewayImageConfig'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if app_image_config_name is not None: - pulumi.set(__self__, "app_image_config_name", app_image_config_name) + _setter("app_image_config_name", app_image_config_name) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if kernel_gateway_image_config is not None: - pulumi.set(__self__, "kernel_gateway_image_config", kernel_gateway_image_config) + _setter("kernel_gateway_image_config", kernel_gateway_image_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="appImageConfigName") @@ -277,6 +323,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AppImageConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -297,6 +347,7 @@ def _internal_init(__self__, if app_image_config_name is None and not opts.urn: raise TypeError("Missing required property 'app_image_config_name'") __props__.__dict__["app_image_config_name"] = app_image_config_name + kernel_gateway_image_config = _utilities.configure(kernel_gateway_image_config, AppImageConfigKernelGatewayImageConfigArgs, True) __props__.__dict__["kernel_gateway_image_config"] = kernel_gateway_image_config __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/sagemaker/code_repository.py b/sdk/python/pulumi_aws/sagemaker/code_repository.py index e58bf923497..b72a21209a6 100644 --- a/sdk/python/pulumi_aws/sagemaker/code_repository.py +++ b/sdk/python/pulumi_aws/sagemaker/code_repository.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,33 @@ def __init__(__self__, *, :param pulumi.Input['CodeRepositoryGitConfigArgs'] git_config: Specifies details about the repository. see Git Config details below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "code_repository_name", code_repository_name) - pulumi.set(__self__, "git_config", git_config) + CodeRepositoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + code_repository_name=code_repository_name, + git_config=git_config, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code_repository_name: Optional[pulumi.Input[str]] = None, + git_config: Optional[pulumi.Input['CodeRepositoryGitConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_repository_name is None and 'codeRepositoryName' in kwargs: + code_repository_name = kwargs['codeRepositoryName'] + if code_repository_name is None: + raise TypeError("Missing 'code_repository_name' argument") + if git_config is None and 'gitConfig' in kwargs: + git_config = kwargs['gitConfig'] + if git_config is None: + raise TypeError("Missing 'git_config' argument") + + _setter("code_repository_name", code_repository_name) + _setter("git_config", git_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="codeRepositoryName") @@ -83,19 +106,44 @@ def __init__(__self__, *, :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. """ + _CodeRepositoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + code_repository_name=code_repository_name, + git_config=git_config, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + code_repository_name: Optional[pulumi.Input[str]] = None, + git_config: Optional[pulumi.Input['CodeRepositoryGitConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_repository_name is None and 'codeRepositoryName' in kwargs: + code_repository_name = kwargs['codeRepositoryName'] + if git_config is None and 'gitConfig' in kwargs: + git_config = kwargs['gitConfig'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if code_repository_name is not None: - pulumi.set(__self__, "code_repository_name", code_repository_name) + _setter("code_repository_name", code_repository_name) if git_config is not None: - pulumi.set(__self__, "git_config", git_config) + _setter("git_config", git_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -286,6 +334,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CodeRepositoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -306,6 +358,7 @@ def _internal_init(__self__, if code_repository_name is None and not opts.urn: raise TypeError("Missing required property 'code_repository_name'") __props__.__dict__["code_repository_name"] = code_repository_name + git_config = _utilities.configure(git_config, CodeRepositoryGitConfigArgs, True) if git_config is None and not opts.urn: raise TypeError("Missing required property 'git_config'") __props__.__dict__["git_config"] = git_config diff --git a/sdk/python/pulumi_aws/sagemaker/data_quality_job_definition.py b/sdk/python/pulumi_aws/sagemaker/data_quality_job_definition.py index 9c01c666400..1eb56c6826e 100644 --- a/sdk/python/pulumi_aws/sagemaker/data_quality_job_definition.py +++ b/sdk/python/pulumi_aws/sagemaker/data_quality_job_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -39,21 +39,76 @@ def __init__(__self__, *, :param pulumi.Input['DataQualityJobDefinitionStoppingConditionArgs'] stopping_condition: A time limit for how long the monitoring job is allowed to run before stopping. Fields are documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "data_quality_app_specification", data_quality_app_specification) - pulumi.set(__self__, "data_quality_job_input", data_quality_job_input) - pulumi.set(__self__, "data_quality_job_output_config", data_quality_job_output_config) - pulumi.set(__self__, "job_resources", job_resources) - pulumi.set(__self__, "role_arn", role_arn) + DataQualityJobDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_quality_app_specification=data_quality_app_specification, + data_quality_job_input=data_quality_job_input, + data_quality_job_output_config=data_quality_job_output_config, + job_resources=job_resources, + role_arn=role_arn, + data_quality_baseline_config=data_quality_baseline_config, + name=name, + network_config=network_config, + stopping_condition=stopping_condition, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_quality_app_specification: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityAppSpecificationArgs']] = None, + data_quality_job_input: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobInputArgs']] = None, + data_quality_job_output_config: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobOutputConfigArgs']] = None, + job_resources: Optional[pulumi.Input['DataQualityJobDefinitionJobResourcesArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + data_quality_baseline_config: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityBaselineConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + network_config: Optional[pulumi.Input['DataQualityJobDefinitionNetworkConfigArgs']] = None, + stopping_condition: Optional[pulumi.Input['DataQualityJobDefinitionStoppingConditionArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_quality_app_specification is None and 'dataQualityAppSpecification' in kwargs: + data_quality_app_specification = kwargs['dataQualityAppSpecification'] + if data_quality_app_specification is None: + raise TypeError("Missing 'data_quality_app_specification' argument") + if data_quality_job_input is None and 'dataQualityJobInput' in kwargs: + data_quality_job_input = kwargs['dataQualityJobInput'] + if data_quality_job_input is None: + raise TypeError("Missing 'data_quality_job_input' argument") + if data_quality_job_output_config is None and 'dataQualityJobOutputConfig' in kwargs: + data_quality_job_output_config = kwargs['dataQualityJobOutputConfig'] + if data_quality_job_output_config is None: + raise TypeError("Missing 'data_quality_job_output_config' argument") + if job_resources is None and 'jobResources' in kwargs: + job_resources = kwargs['jobResources'] + if job_resources is None: + raise TypeError("Missing 'job_resources' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if data_quality_baseline_config is None and 'dataQualityBaselineConfig' in kwargs: + data_quality_baseline_config = kwargs['dataQualityBaselineConfig'] + if network_config is None and 'networkConfig' in kwargs: + network_config = kwargs['networkConfig'] + if stopping_condition is None and 'stoppingCondition' in kwargs: + stopping_condition = kwargs['stoppingCondition'] + + _setter("data_quality_app_specification", data_quality_app_specification) + _setter("data_quality_job_input", data_quality_job_input) + _setter("data_quality_job_output_config", data_quality_job_output_config) + _setter("job_resources", job_resources) + _setter("role_arn", role_arn) if data_quality_baseline_config is not None: - pulumi.set(__self__, "data_quality_baseline_config", data_quality_baseline_config) + _setter("data_quality_baseline_config", data_quality_baseline_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_config is not None: - pulumi.set(__self__, "network_config", network_config) + _setter("network_config", network_config) if stopping_condition is not None: - pulumi.set(__self__, "stopping_condition", stopping_condition) + _setter("stopping_condition", stopping_condition) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="dataQualityAppSpecification") @@ -206,33 +261,84 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping 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. """ + _DataQualityJobDefinitionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + data_quality_app_specification=data_quality_app_specification, + data_quality_baseline_config=data_quality_baseline_config, + data_quality_job_input=data_quality_job_input, + data_quality_job_output_config=data_quality_job_output_config, + job_resources=job_resources, + name=name, + network_config=network_config, + role_arn=role_arn, + stopping_condition=stopping_condition, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + data_quality_app_specification: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityAppSpecificationArgs']] = None, + data_quality_baseline_config: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityBaselineConfigArgs']] = None, + data_quality_job_input: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobInputArgs']] = None, + data_quality_job_output_config: Optional[pulumi.Input['DataQualityJobDefinitionDataQualityJobOutputConfigArgs']] = None, + job_resources: Optional[pulumi.Input['DataQualityJobDefinitionJobResourcesArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + network_config: Optional[pulumi.Input['DataQualityJobDefinitionNetworkConfigArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + stopping_condition: Optional[pulumi.Input['DataQualityJobDefinitionStoppingConditionArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_quality_app_specification is None and 'dataQualityAppSpecification' in kwargs: + data_quality_app_specification = kwargs['dataQualityAppSpecification'] + if data_quality_baseline_config is None and 'dataQualityBaselineConfig' in kwargs: + data_quality_baseline_config = kwargs['dataQualityBaselineConfig'] + if data_quality_job_input is None and 'dataQualityJobInput' in kwargs: + data_quality_job_input = kwargs['dataQualityJobInput'] + if data_quality_job_output_config is None and 'dataQualityJobOutputConfig' in kwargs: + data_quality_job_output_config = kwargs['dataQualityJobOutputConfig'] + if job_resources is None and 'jobResources' in kwargs: + job_resources = kwargs['jobResources'] + if network_config is None and 'networkConfig' in kwargs: + network_config = kwargs['networkConfig'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if stopping_condition is None and 'stoppingCondition' in kwargs: + stopping_condition = kwargs['stoppingCondition'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if data_quality_app_specification is not None: - pulumi.set(__self__, "data_quality_app_specification", data_quality_app_specification) + _setter("data_quality_app_specification", data_quality_app_specification) if data_quality_baseline_config is not None: - pulumi.set(__self__, "data_quality_baseline_config", data_quality_baseline_config) + _setter("data_quality_baseline_config", data_quality_baseline_config) if data_quality_job_input is not None: - pulumi.set(__self__, "data_quality_job_input", data_quality_job_input) + _setter("data_quality_job_input", data_quality_job_input) if data_quality_job_output_config is not None: - pulumi.set(__self__, "data_quality_job_output_config", data_quality_job_output_config) + _setter("data_quality_job_output_config", data_quality_job_output_config) if job_resources is not None: - pulumi.set(__self__, "job_resources", job_resources) + _setter("job_resources", job_resources) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_config is not None: - pulumi.set(__self__, "network_config", network_config) + _setter("network_config", network_config) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if stopping_condition is not None: - pulumi.set(__self__, "stopping_condition", stopping_condition) + _setter("stopping_condition", stopping_condition) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -517,6 +623,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataQualityJobDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -541,24 +651,31 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DataQualityJobDefinitionArgs.__new__(DataQualityJobDefinitionArgs) + data_quality_app_specification = _utilities.configure(data_quality_app_specification, DataQualityJobDefinitionDataQualityAppSpecificationArgs, True) if data_quality_app_specification is None and not opts.urn: raise TypeError("Missing required property 'data_quality_app_specification'") __props__.__dict__["data_quality_app_specification"] = data_quality_app_specification + data_quality_baseline_config = _utilities.configure(data_quality_baseline_config, DataQualityJobDefinitionDataQualityBaselineConfigArgs, True) __props__.__dict__["data_quality_baseline_config"] = data_quality_baseline_config + data_quality_job_input = _utilities.configure(data_quality_job_input, DataQualityJobDefinitionDataQualityJobInputArgs, True) if data_quality_job_input is None and not opts.urn: raise TypeError("Missing required property 'data_quality_job_input'") __props__.__dict__["data_quality_job_input"] = data_quality_job_input + data_quality_job_output_config = _utilities.configure(data_quality_job_output_config, DataQualityJobDefinitionDataQualityJobOutputConfigArgs, True) if data_quality_job_output_config is None and not opts.urn: raise TypeError("Missing required property 'data_quality_job_output_config'") __props__.__dict__["data_quality_job_output_config"] = data_quality_job_output_config + job_resources = _utilities.configure(job_resources, DataQualityJobDefinitionJobResourcesArgs, True) if job_resources is None and not opts.urn: raise TypeError("Missing required property 'job_resources'") __props__.__dict__["job_resources"] = job_resources __props__.__dict__["name"] = name + network_config = _utilities.configure(network_config, DataQualityJobDefinitionNetworkConfigArgs, True) __props__.__dict__["network_config"] = network_config if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") __props__.__dict__["role_arn"] = role_arn + stopping_condition = _utilities.configure(stopping_condition, DataQualityJobDefinitionStoppingConditionArgs, True) __props__.__dict__["stopping_condition"] = stopping_condition __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/sagemaker/device.py b/sdk/python/pulumi_aws/sagemaker/device.py index 7c8901592fc..efd7bbcfcea 100644 --- a/sdk/python/pulumi_aws/sagemaker/device.py +++ b/sdk/python/pulumi_aws/sagemaker/device.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,27 @@ def __init__(__self__, *, :param pulumi.Input['DeviceDeviceArgs'] device: The device to register with SageMaker Edge Manager. See Device details below. :param pulumi.Input[str] device_fleet_name: The name of the Device Fleet. """ - pulumi.set(__self__, "device", device) - pulumi.set(__self__, "device_fleet_name", device_fleet_name) + DeviceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device=device, + device_fleet_name=device_fleet_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device: Optional[pulumi.Input['DeviceDeviceArgs']] = None, + device_fleet_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device is None: + raise TypeError("Missing 'device' argument") + if device_fleet_name is None and 'deviceFleetName' in kwargs: + device_fleet_name = kwargs['deviceFleetName'] + if device_fleet_name is None: + raise TypeError("Missing 'device_fleet_name' argument") + + _setter("device", device) + _setter("device_fleet_name", device_fleet_name) @property @pulumi.getter @@ -64,14 +83,35 @@ def __init__(__self__, *, :param pulumi.Input['DeviceDeviceArgs'] device: The device to register with SageMaker Edge Manager. See Device details below. :param pulumi.Input[str] device_fleet_name: The name of the Device Fleet. """ + _DeviceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + agent_version=agent_version, + arn=arn, + device=device, + device_fleet_name=device_fleet_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + agent_version: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + device: Optional[pulumi.Input['DeviceDeviceArgs']] = None, + device_fleet_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if agent_version is None and 'agentVersion' in kwargs: + agent_version = kwargs['agentVersion'] + if device_fleet_name is None and 'deviceFleetName' in kwargs: + device_fleet_name = kwargs['deviceFleetName'] + if agent_version is not None: - pulumi.set(__self__, "agent_version", agent_version) + _setter("agent_version", agent_version) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if device is not None: - pulumi.set(__self__, "device", device) + _setter("device", device) if device_fleet_name is not None: - pulumi.set(__self__, "device_fleet_name", device_fleet_name) + _setter("device_fleet_name", device_fleet_name) @property @pulumi.getter(name="agentVersion") @@ -198,6 +238,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeviceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -214,6 +258,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = DeviceArgs.__new__(DeviceArgs) + device = _utilities.configure(device, DeviceDeviceArgs, True) if device is None and not opts.urn: raise TypeError("Missing required property 'device'") __props__.__dict__["device"] = device diff --git a/sdk/python/pulumi_aws/sagemaker/device_fleet.py b/sdk/python/pulumi_aws/sagemaker/device_fleet.py index f474379e843..126ca59a3ce 100644 --- a/sdk/python/pulumi_aws/sagemaker/device_fleet.py +++ b/sdk/python/pulumi_aws/sagemaker/device_fleet.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,50 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_iot_role_alias: Whether to create an AWS IoT Role Alias during device fleet creation. The name of the role alias generated will match this pattern: "SageMakerEdge-{DeviceFleetName}". :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "device_fleet_name", device_fleet_name) - pulumi.set(__self__, "output_config", output_config) - pulumi.set(__self__, "role_arn", role_arn) + DeviceFleetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_fleet_name=device_fleet_name, + output_config=output_config, + role_arn=role_arn, + description=description, + enable_iot_role_alias=enable_iot_role_alias, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_fleet_name: Optional[pulumi.Input[str]] = None, + output_config: Optional[pulumi.Input['DeviceFleetOutputConfigArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + enable_iot_role_alias: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_fleet_name is None and 'deviceFleetName' in kwargs: + device_fleet_name = kwargs['deviceFleetName'] + if device_fleet_name is None: + raise TypeError("Missing 'device_fleet_name' argument") + if output_config is None and 'outputConfig' in kwargs: + output_config = kwargs['outputConfig'] + if output_config is None: + raise TypeError("Missing 'output_config' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if enable_iot_role_alias is None and 'enableIotRoleAlias' in kwargs: + enable_iot_role_alias = kwargs['enableIotRoleAlias'] + + _setter("device_fleet_name", device_fleet_name) + _setter("output_config", output_config) + _setter("role_arn", role_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enable_iot_role_alias is not None: - pulumi.set(__self__, "enable_iot_role_alias", enable_iot_role_alias) + _setter("enable_iot_role_alias", enable_iot_role_alias) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="deviceFleetName") @@ -137,27 +172,66 @@ def __init__(__self__, *, :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. """ + _DeviceFleetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + device_fleet_name=device_fleet_name, + enable_iot_role_alias=enable_iot_role_alias, + iot_role_alias=iot_role_alias, + output_config=output_config, + role_arn=role_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + device_fleet_name: Optional[pulumi.Input[str]] = None, + enable_iot_role_alias: Optional[pulumi.Input[bool]] = None, + iot_role_alias: Optional[pulumi.Input[str]] = None, + output_config: Optional[pulumi.Input['DeviceFleetOutputConfigArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_fleet_name is None and 'deviceFleetName' in kwargs: + device_fleet_name = kwargs['deviceFleetName'] + if enable_iot_role_alias is None and 'enableIotRoleAlias' in kwargs: + enable_iot_role_alias = kwargs['enableIotRoleAlias'] + if iot_role_alias is None and 'iotRoleAlias' in kwargs: + iot_role_alias = kwargs['iotRoleAlias'] + if output_config is None and 'outputConfig' in kwargs: + output_config = kwargs['outputConfig'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if device_fleet_name is not None: - pulumi.set(__self__, "device_fleet_name", device_fleet_name) + _setter("device_fleet_name", device_fleet_name) if enable_iot_role_alias is not None: - pulumi.set(__self__, "enable_iot_role_alias", enable_iot_role_alias) + _setter("enable_iot_role_alias", enable_iot_role_alias) if iot_role_alias is not None: - pulumi.set(__self__, "iot_role_alias", iot_role_alias) + _setter("iot_role_alias", iot_role_alias) if output_config is not None: - pulumi.set(__self__, "output_config", output_config) + _setter("output_config", output_config) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -357,6 +431,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DeviceFleetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -382,6 +460,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'device_fleet_name'") __props__.__dict__["device_fleet_name"] = device_fleet_name __props__.__dict__["enable_iot_role_alias"] = enable_iot_role_alias + output_config = _utilities.configure(output_config, DeviceFleetOutputConfigArgs, True) if output_config is None and not opts.urn: raise TypeError("Missing required property 'output_config'") __props__.__dict__["output_config"] = output_config diff --git a/sdk/python/pulumi_aws/sagemaker/domain.py b/sdk/python/pulumi_aws/sagemaker/domain.py index 5ea07afbbbb..c625245b7f6 100644 --- a/sdk/python/pulumi_aws/sagemaker/domain.py +++ b/sdk/python/pulumi_aws/sagemaker/domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -44,25 +44,90 @@ def __init__(__self__, *, :param pulumi.Input['DomainRetentionPolicyArgs'] retention_policy: The retention policy for this domain, which specifies whether resources will be retained after the Domain is deleted. By default, all resources are retained. See Retention Policy below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "auth_mode", auth_mode) - pulumi.set(__self__, "default_user_settings", default_user_settings) - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + DomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_mode=auth_mode, + default_user_settings=default_user_settings, + domain_name=domain_name, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + app_network_access_type=app_network_access_type, + app_security_group_management=app_security_group_management, + default_space_settings=default_space_settings, + domain_settings=domain_settings, + kms_key_id=kms_key_id, + retention_policy=retention_policy, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_mode: Optional[pulumi.Input[str]] = None, + default_user_settings: Optional[pulumi.Input['DomainDefaultUserSettingsArgs']] = None, + domain_name: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + app_network_access_type: Optional[pulumi.Input[str]] = None, + app_security_group_management: Optional[pulumi.Input[str]] = None, + default_space_settings: Optional[pulumi.Input['DomainDefaultSpaceSettingsArgs']] = None, + domain_settings: Optional[pulumi.Input['DomainDomainSettingsArgs']] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + retention_policy: Optional[pulumi.Input['DomainRetentionPolicyArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_mode is None and 'authMode' in kwargs: + auth_mode = kwargs['authMode'] + if auth_mode is None: + raise TypeError("Missing 'auth_mode' argument") + if default_user_settings is None and 'defaultUserSettings' in kwargs: + default_user_settings = kwargs['defaultUserSettings'] + if default_user_settings is None: + raise TypeError("Missing 'default_user_settings' argument") + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + if app_network_access_type is None and 'appNetworkAccessType' in kwargs: + app_network_access_type = kwargs['appNetworkAccessType'] + if app_security_group_management is None and 'appSecurityGroupManagement' in kwargs: + app_security_group_management = kwargs['appSecurityGroupManagement'] + if default_space_settings is None and 'defaultSpaceSettings' in kwargs: + default_space_settings = kwargs['defaultSpaceSettings'] + if domain_settings is None and 'domainSettings' in kwargs: + domain_settings = kwargs['domainSettings'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if retention_policy is None and 'retentionPolicy' in kwargs: + retention_policy = kwargs['retentionPolicy'] + + _setter("auth_mode", auth_mode) + _setter("default_user_settings", default_user_settings) + _setter("domain_name", domain_name) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) if app_network_access_type is not None: - pulumi.set(__self__, "app_network_access_type", app_network_access_type) + _setter("app_network_access_type", app_network_access_type) if app_security_group_management is not None: - pulumi.set(__self__, "app_security_group_management", app_security_group_management) + _setter("app_security_group_management", app_security_group_management) if default_space_settings is not None: - pulumi.set(__self__, "default_space_settings", default_space_settings) + _setter("default_space_settings", default_space_settings) if domain_settings is not None: - pulumi.set(__self__, "domain_settings", domain_settings) + _setter("domain_settings", domain_settings) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if retention_policy is not None: - pulumi.set(__self__, "retention_policy", retention_policy) + _setter("retention_policy", retention_policy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="authMode") @@ -251,45 +316,120 @@ def __init__(__self__, *, The following arguments are optional: """ + _DomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_network_access_type=app_network_access_type, + app_security_group_management=app_security_group_management, + arn=arn, + auth_mode=auth_mode, + default_space_settings=default_space_settings, + default_user_settings=default_user_settings, + domain_name=domain_name, + domain_settings=domain_settings, + home_efs_file_system_id=home_efs_file_system_id, + kms_key_id=kms_key_id, + retention_policy=retention_policy, + security_group_id_for_domain_boundary=security_group_id_for_domain_boundary, + single_sign_on_managed_application_instance_id=single_sign_on_managed_application_instance_id, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + url=url, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_network_access_type: Optional[pulumi.Input[str]] = None, + app_security_group_management: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auth_mode: Optional[pulumi.Input[str]] = None, + default_space_settings: Optional[pulumi.Input['DomainDefaultSpaceSettingsArgs']] = None, + default_user_settings: Optional[pulumi.Input['DomainDefaultUserSettingsArgs']] = None, + domain_name: Optional[pulumi.Input[str]] = None, + domain_settings: Optional[pulumi.Input['DomainDomainSettingsArgs']] = None, + home_efs_file_system_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + retention_policy: Optional[pulumi.Input['DomainRetentionPolicyArgs']] = None, + security_group_id_for_domain_boundary: Optional[pulumi.Input[str]] = None, + single_sign_on_managed_application_instance_id: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_network_access_type is None and 'appNetworkAccessType' in kwargs: + app_network_access_type = kwargs['appNetworkAccessType'] + if app_security_group_management is None and 'appSecurityGroupManagement' in kwargs: + app_security_group_management = kwargs['appSecurityGroupManagement'] + if auth_mode is None and 'authMode' in kwargs: + auth_mode = kwargs['authMode'] + if default_space_settings is None and 'defaultSpaceSettings' in kwargs: + default_space_settings = kwargs['defaultSpaceSettings'] + if default_user_settings is None and 'defaultUserSettings' in kwargs: + default_user_settings = kwargs['defaultUserSettings'] + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_settings is None and 'domainSettings' in kwargs: + domain_settings = kwargs['domainSettings'] + if home_efs_file_system_id is None and 'homeEfsFileSystemId' in kwargs: + home_efs_file_system_id = kwargs['homeEfsFileSystemId'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if retention_policy is None and 'retentionPolicy' in kwargs: + retention_policy = kwargs['retentionPolicy'] + if security_group_id_for_domain_boundary is None and 'securityGroupIdForDomainBoundary' in kwargs: + security_group_id_for_domain_boundary = kwargs['securityGroupIdForDomainBoundary'] + if single_sign_on_managed_application_instance_id is None and 'singleSignOnManagedApplicationInstanceId' in kwargs: + single_sign_on_managed_application_instance_id = kwargs['singleSignOnManagedApplicationInstanceId'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if app_network_access_type is not None: - pulumi.set(__self__, "app_network_access_type", app_network_access_type) + _setter("app_network_access_type", app_network_access_type) if app_security_group_management is not None: - pulumi.set(__self__, "app_security_group_management", app_security_group_management) + _setter("app_security_group_management", app_security_group_management) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auth_mode is not None: - pulumi.set(__self__, "auth_mode", auth_mode) + _setter("auth_mode", auth_mode) if default_space_settings is not None: - pulumi.set(__self__, "default_space_settings", default_space_settings) + _setter("default_space_settings", default_space_settings) if default_user_settings is not None: - pulumi.set(__self__, "default_user_settings", default_user_settings) + _setter("default_user_settings", default_user_settings) if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if domain_settings is not None: - pulumi.set(__self__, "domain_settings", domain_settings) + _setter("domain_settings", domain_settings) if home_efs_file_system_id is not None: - pulumi.set(__self__, "home_efs_file_system_id", home_efs_file_system_id) + _setter("home_efs_file_system_id", home_efs_file_system_id) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if retention_policy is not None: - pulumi.set(__self__, "retention_policy", retention_policy) + _setter("retention_policy", retention_policy) if security_group_id_for_domain_boundary is not None: - pulumi.set(__self__, "security_group_id_for_domain_boundary", security_group_id_for_domain_boundary) + _setter("security_group_id_for_domain_boundary", security_group_id_for_domain_boundary) if single_sign_on_managed_application_instance_id is not None: - pulumi.set(__self__, "single_sign_on_managed_application_instance_id", single_sign_on_managed_application_instance_id) + _setter("single_sign_on_managed_application_instance_id", single_sign_on_managed_application_instance_id) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="appNetworkAccessType") @@ -704,6 +844,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -735,15 +879,19 @@ def _internal_init(__self__, if auth_mode is None and not opts.urn: raise TypeError("Missing required property 'auth_mode'") __props__.__dict__["auth_mode"] = auth_mode + default_space_settings = _utilities.configure(default_space_settings, DomainDefaultSpaceSettingsArgs, True) __props__.__dict__["default_space_settings"] = default_space_settings + default_user_settings = _utilities.configure(default_user_settings, DomainDefaultUserSettingsArgs, True) if default_user_settings is None and not opts.urn: raise TypeError("Missing required property 'default_user_settings'") __props__.__dict__["default_user_settings"] = default_user_settings if domain_name is None and not opts.urn: raise TypeError("Missing required property 'domain_name'") __props__.__dict__["domain_name"] = domain_name + domain_settings = _utilities.configure(domain_settings, DomainDomainSettingsArgs, True) __props__.__dict__["domain_settings"] = domain_settings __props__.__dict__["kms_key_id"] = kms_key_id + retention_policy = _utilities.configure(retention_policy, DomainRetentionPolicyArgs, True) __props__.__dict__["retention_policy"] = retention_policy if subnet_ids is None and not opts.urn: raise TypeError("Missing required property 'subnet_ids'") diff --git a/sdk/python/pulumi_aws/sagemaker/endpoint.py b/sdk/python/pulumi_aws/sagemaker/endpoint.py index cad9c2f4513..0ea5f1f6828 100644 --- a/sdk/python/pulumi_aws/sagemaker/endpoint.py +++ b/sdk/python/pulumi_aws/sagemaker/endpoint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,36 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the endpoint. If omitted, the provider will assign a random, unique name. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "endpoint_config_name", endpoint_config_name) + EndpointArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_config_name=endpoint_config_name, + deployment_config=deployment_config, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_config_name: Optional[pulumi.Input[str]] = None, + deployment_config: Optional[pulumi.Input['EndpointDeploymentConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_config_name is None and 'endpointConfigName' in kwargs: + endpoint_config_name = kwargs['endpointConfigName'] + if endpoint_config_name is None: + raise TypeError("Missing 'endpoint_config_name' argument") + if deployment_config is None and 'deploymentConfig' in kwargs: + deployment_config = kwargs['deploymentConfig'] + + _setter("endpoint_config_name", endpoint_config_name) if deployment_config is not None: - pulumi.set(__self__, "deployment_config", deployment_config) + _setter("deployment_config", deployment_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="endpointConfigName") @@ -102,21 +125,48 @@ def __init__(__self__, *, :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. """ + _EndpointState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + deployment_config=deployment_config, + endpoint_config_name=endpoint_config_name, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + deployment_config: Optional[pulumi.Input['EndpointDeploymentConfigArgs']] = None, + endpoint_config_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if deployment_config is None and 'deploymentConfig' in kwargs: + deployment_config = kwargs['deploymentConfig'] + if endpoint_config_name is None and 'endpointConfigName' in kwargs: + endpoint_config_name = kwargs['endpointConfigName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if deployment_config is not None: - pulumi.set(__self__, "deployment_config", deployment_config) + _setter("deployment_config", deployment_config) if endpoint_config_name is not None: - pulumi.set(__self__, "endpoint_config_name", endpoint_config_name) + _setter("endpoint_config_name", endpoint_config_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -279,6 +329,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EndpointArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -297,6 +351,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = EndpointArgs.__new__(EndpointArgs) + deployment_config = _utilities.configure(deployment_config, EndpointDeploymentConfigArgs, True) __props__.__dict__["deployment_config"] = deployment_config if endpoint_config_name is None and not opts.urn: raise TypeError("Missing required property 'endpoint_config_name'") diff --git a/sdk/python/pulumi_aws/sagemaker/endpoint_configuration.py b/sdk/python/pulumi_aws/sagemaker/endpoint_configuration.py index 27b6728880c..582d9f7ef15 100644 --- a/sdk/python/pulumi_aws/sagemaker/endpoint_configuration.py +++ b/sdk/python/pulumi_aws/sagemaker/endpoint_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,21 +35,60 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['EndpointConfigurationShadowProductionVariantArgs']]] shadow_production_variants: Array of ProductionVariant objects. There is one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on ProductionVariants.If you use this field, you can only specify one variant for ProductionVariants and one variant for ShadowProductionVariants. Fields are documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "production_variants", production_variants) + EndpointConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + production_variants=production_variants, + async_inference_config=async_inference_config, + data_capture_config=data_capture_config, + kms_key_arn=kms_key_arn, + name=name, + name_prefix=name_prefix, + shadow_production_variants=shadow_production_variants, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + production_variants: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointConfigurationProductionVariantArgs']]]] = None, + async_inference_config: Optional[pulumi.Input['EndpointConfigurationAsyncInferenceConfigArgs']] = None, + data_capture_config: Optional[pulumi.Input['EndpointConfigurationDataCaptureConfigArgs']] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + shadow_production_variants: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointConfigurationShadowProductionVariantArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if production_variants is None and 'productionVariants' in kwargs: + production_variants = kwargs['productionVariants'] + if production_variants is None: + raise TypeError("Missing 'production_variants' argument") + if async_inference_config is None and 'asyncInferenceConfig' in kwargs: + async_inference_config = kwargs['asyncInferenceConfig'] + if data_capture_config is None and 'dataCaptureConfig' in kwargs: + data_capture_config = kwargs['dataCaptureConfig'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if shadow_production_variants is None and 'shadowProductionVariants' in kwargs: + shadow_production_variants = kwargs['shadowProductionVariants'] + + _setter("production_variants", production_variants) if async_inference_config is not None: - pulumi.set(__self__, "async_inference_config", async_inference_config) + _setter("async_inference_config", async_inference_config) if data_capture_config is not None: - pulumi.set(__self__, "data_capture_config", data_capture_config) + _setter("data_capture_config", data_capture_config) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if shadow_production_variants is not None: - pulumi.set(__self__, "shadow_production_variants", shadow_production_variants) + _setter("shadow_production_variants", shadow_production_variants) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="productionVariants") @@ -174,29 +213,72 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping 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. """ + _EndpointConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + async_inference_config=async_inference_config, + data_capture_config=data_capture_config, + kms_key_arn=kms_key_arn, + name=name, + name_prefix=name_prefix, + production_variants=production_variants, + shadow_production_variants=shadow_production_variants, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + async_inference_config: Optional[pulumi.Input['EndpointConfigurationAsyncInferenceConfigArgs']] = None, + data_capture_config: Optional[pulumi.Input['EndpointConfigurationDataCaptureConfigArgs']] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + production_variants: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointConfigurationProductionVariantArgs']]]] = None, + shadow_production_variants: Optional[pulumi.Input[Sequence[pulumi.Input['EndpointConfigurationShadowProductionVariantArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if async_inference_config is None and 'asyncInferenceConfig' in kwargs: + async_inference_config = kwargs['asyncInferenceConfig'] + if data_capture_config is None and 'dataCaptureConfig' in kwargs: + data_capture_config = kwargs['dataCaptureConfig'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if production_variants is None and 'productionVariants' in kwargs: + production_variants = kwargs['productionVariants'] + if shadow_production_variants is None and 'shadowProductionVariants' in kwargs: + shadow_production_variants = kwargs['shadowProductionVariants'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if async_inference_config is not None: - pulumi.set(__self__, "async_inference_config", async_inference_config) + _setter("async_inference_config", async_inference_config) if data_capture_config is not None: - pulumi.set(__self__, "data_capture_config", data_capture_config) + _setter("data_capture_config", data_capture_config) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if production_variants is not None: - pulumi.set(__self__, "production_variants", production_variants) + _setter("production_variants", production_variants) if shadow_production_variants is not None: - pulumi.set(__self__, "shadow_production_variants", shadow_production_variants) + _setter("shadow_production_variants", shadow_production_variants) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -425,6 +507,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EndpointConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -447,7 +533,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = EndpointConfigurationArgs.__new__(EndpointConfigurationArgs) + async_inference_config = _utilities.configure(async_inference_config, EndpointConfigurationAsyncInferenceConfigArgs, True) __props__.__dict__["async_inference_config"] = async_inference_config + data_capture_config = _utilities.configure(data_capture_config, EndpointConfigurationDataCaptureConfigArgs, True) __props__.__dict__["data_capture_config"] = data_capture_config __props__.__dict__["kms_key_arn"] = kms_key_arn __props__.__dict__["name"] = name diff --git a/sdk/python/pulumi_aws/sagemaker/feature_group.py b/sdk/python/pulumi_aws/sagemaker/feature_group.py index 91fa31153f9..0f2a16716be 100644 --- a/sdk/python/pulumi_aws/sagemaker/feature_group.py +++ b/sdk/python/pulumi_aws/sagemaker/feature_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,19 +37,70 @@ def __init__(__self__, *, :param pulumi.Input['FeatureGroupOnlineStoreConfigArgs'] online_store_config: The Online Feature Store Configuration. See Online Store Config Below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "event_time_feature_name", event_time_feature_name) - pulumi.set(__self__, "feature_definitions", feature_definitions) - pulumi.set(__self__, "feature_group_name", feature_group_name) - pulumi.set(__self__, "record_identifier_feature_name", record_identifier_feature_name) - pulumi.set(__self__, "role_arn", role_arn) + FeatureGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + event_time_feature_name=event_time_feature_name, + feature_definitions=feature_definitions, + feature_group_name=feature_group_name, + record_identifier_feature_name=record_identifier_feature_name, + role_arn=role_arn, + description=description, + offline_store_config=offline_store_config, + online_store_config=online_store_config, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + event_time_feature_name: Optional[pulumi.Input[str]] = None, + feature_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['FeatureGroupFeatureDefinitionArgs']]]] = None, + feature_group_name: Optional[pulumi.Input[str]] = None, + record_identifier_feature_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + offline_store_config: Optional[pulumi.Input['FeatureGroupOfflineStoreConfigArgs']] = None, + online_store_config: Optional[pulumi.Input['FeatureGroupOnlineStoreConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_time_feature_name is None and 'eventTimeFeatureName' in kwargs: + event_time_feature_name = kwargs['eventTimeFeatureName'] + if event_time_feature_name is None: + raise TypeError("Missing 'event_time_feature_name' argument") + if feature_definitions is None and 'featureDefinitions' in kwargs: + feature_definitions = kwargs['featureDefinitions'] + if feature_definitions is None: + raise TypeError("Missing 'feature_definitions' argument") + if feature_group_name is None and 'featureGroupName' in kwargs: + feature_group_name = kwargs['featureGroupName'] + if feature_group_name is None: + raise TypeError("Missing 'feature_group_name' argument") + if record_identifier_feature_name is None and 'recordIdentifierFeatureName' in kwargs: + record_identifier_feature_name = kwargs['recordIdentifierFeatureName'] + if record_identifier_feature_name is None: + raise TypeError("Missing 'record_identifier_feature_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if offline_store_config is None and 'offlineStoreConfig' in kwargs: + offline_store_config = kwargs['offlineStoreConfig'] + if online_store_config is None and 'onlineStoreConfig' in kwargs: + online_store_config = kwargs['onlineStoreConfig'] + + _setter("event_time_feature_name", event_time_feature_name) + _setter("feature_definitions", feature_definitions) + _setter("feature_group_name", feature_group_name) + _setter("record_identifier_feature_name", record_identifier_feature_name) + _setter("role_arn", role_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if offline_store_config is not None: - pulumi.set(__self__, "offline_store_config", offline_store_config) + _setter("offline_store_config", offline_store_config) if online_store_config is not None: - pulumi.set(__self__, "online_store_config", online_store_config) + _setter("online_store_config", online_store_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="eventTimeFeatureName") @@ -188,31 +239,78 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for 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. """ + _FeatureGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + event_time_feature_name=event_time_feature_name, + feature_definitions=feature_definitions, + feature_group_name=feature_group_name, + offline_store_config=offline_store_config, + online_store_config=online_store_config, + record_identifier_feature_name=record_identifier_feature_name, + role_arn=role_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + event_time_feature_name: Optional[pulumi.Input[str]] = None, + feature_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['FeatureGroupFeatureDefinitionArgs']]]] = None, + feature_group_name: Optional[pulumi.Input[str]] = None, + offline_store_config: Optional[pulumi.Input['FeatureGroupOfflineStoreConfigArgs']] = None, + online_store_config: Optional[pulumi.Input['FeatureGroupOnlineStoreConfigArgs']] = None, + record_identifier_feature_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if event_time_feature_name is None and 'eventTimeFeatureName' in kwargs: + event_time_feature_name = kwargs['eventTimeFeatureName'] + if feature_definitions is None and 'featureDefinitions' in kwargs: + feature_definitions = kwargs['featureDefinitions'] + if feature_group_name is None and 'featureGroupName' in kwargs: + feature_group_name = kwargs['featureGroupName'] + if offline_store_config is None and 'offlineStoreConfig' in kwargs: + offline_store_config = kwargs['offlineStoreConfig'] + if online_store_config is None and 'onlineStoreConfig' in kwargs: + online_store_config = kwargs['onlineStoreConfig'] + if record_identifier_feature_name is None and 'recordIdentifierFeatureName' in kwargs: + record_identifier_feature_name = kwargs['recordIdentifierFeatureName'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if event_time_feature_name is not None: - pulumi.set(__self__, "event_time_feature_name", event_time_feature_name) + _setter("event_time_feature_name", event_time_feature_name) if feature_definitions is not None: - pulumi.set(__self__, "feature_definitions", feature_definitions) + _setter("feature_definitions", feature_definitions) if feature_group_name is not None: - pulumi.set(__self__, "feature_group_name", feature_group_name) + _setter("feature_group_name", feature_group_name) if offline_store_config is not None: - pulumi.set(__self__, "offline_store_config", offline_store_config) + _setter("offline_store_config", offline_store_config) if online_store_config is not None: - pulumi.set(__self__, "online_store_config", online_store_config) + _setter("online_store_config", online_store_config) if record_identifier_feature_name is not None: - pulumi.set(__self__, "record_identifier_feature_name", record_identifier_feature_name) + _setter("record_identifier_feature_name", record_identifier_feature_name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -459,6 +557,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FeatureGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -492,7 +594,9 @@ def _internal_init(__self__, if feature_group_name is None and not opts.urn: raise TypeError("Missing required property 'feature_group_name'") __props__.__dict__["feature_group_name"] = feature_group_name + offline_store_config = _utilities.configure(offline_store_config, FeatureGroupOfflineStoreConfigArgs, True) __props__.__dict__["offline_store_config"] = offline_store_config + online_store_config = _utilities.configure(online_store_config, FeatureGroupOnlineStoreConfigArgs, True) __props__.__dict__["online_store_config"] = online_store_config if record_identifier_feature_name is None and not opts.urn: raise TypeError("Missing required property 'record_identifier_feature_name'") diff --git a/sdk/python/pulumi_aws/sagemaker/flow_definition.py b/sdk/python/pulumi_aws/sagemaker/flow_definition.py index 3bf74bb01a8..faad0f56262 100644 --- a/sdk/python/pulumi_aws/sagemaker/flow_definition.py +++ b/sdk/python/pulumi_aws/sagemaker/flow_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,16 +33,59 @@ def __init__(__self__, *, :param pulumi.Input['FlowDefinitionHumanLoopRequestSourceArgs'] human_loop_request_source: Container for configuring the source of human task requests. Use to specify if Amazon Rekognition or Amazon Textract is used as an integration source. See Human Loop Request Source details below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "flow_definition_name", flow_definition_name) - pulumi.set(__self__, "human_loop_config", human_loop_config) - pulumi.set(__self__, "output_config", output_config) - pulumi.set(__self__, "role_arn", role_arn) + FlowDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + flow_definition_name=flow_definition_name, + human_loop_config=human_loop_config, + output_config=output_config, + role_arn=role_arn, + human_loop_activation_config=human_loop_activation_config, + human_loop_request_source=human_loop_request_source, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flow_definition_name: Optional[pulumi.Input[str]] = None, + human_loop_config: Optional[pulumi.Input['FlowDefinitionHumanLoopConfigArgs']] = None, + output_config: Optional[pulumi.Input['FlowDefinitionOutputConfigArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + human_loop_activation_config: Optional[pulumi.Input['FlowDefinitionHumanLoopActivationConfigArgs']] = None, + human_loop_request_source: Optional[pulumi.Input['FlowDefinitionHumanLoopRequestSourceArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_definition_name is None and 'flowDefinitionName' in kwargs: + flow_definition_name = kwargs['flowDefinitionName'] + if flow_definition_name is None: + raise TypeError("Missing 'flow_definition_name' argument") + if human_loop_config is None and 'humanLoopConfig' in kwargs: + human_loop_config = kwargs['humanLoopConfig'] + if human_loop_config is None: + raise TypeError("Missing 'human_loop_config' argument") + if output_config is None and 'outputConfig' in kwargs: + output_config = kwargs['outputConfig'] + if output_config is None: + raise TypeError("Missing 'output_config' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if human_loop_activation_config is None and 'humanLoopActivationConfig' in kwargs: + human_loop_activation_config = kwargs['humanLoopActivationConfig'] + if human_loop_request_source is None and 'humanLoopRequestSource' in kwargs: + human_loop_request_source = kwargs['humanLoopRequestSource'] + + _setter("flow_definition_name", flow_definition_name) + _setter("human_loop_config", human_loop_config) + _setter("output_config", output_config) + _setter("role_arn", role_arn) if human_loop_activation_config is not None: - pulumi.set(__self__, "human_loop_activation_config", human_loop_activation_config) + _setter("human_loop_activation_config", human_loop_activation_config) if human_loop_request_source is not None: - pulumi.set(__self__, "human_loop_request_source", human_loop_request_source) + _setter("human_loop_request_source", human_loop_request_source) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="flowDefinitionName") @@ -153,27 +196,68 @@ def __init__(__self__, *, :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. """ + _FlowDefinitionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + flow_definition_name=flow_definition_name, + human_loop_activation_config=human_loop_activation_config, + human_loop_config=human_loop_config, + human_loop_request_source=human_loop_request_source, + output_config=output_config, + role_arn=role_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + flow_definition_name: Optional[pulumi.Input[str]] = None, + human_loop_activation_config: Optional[pulumi.Input['FlowDefinitionHumanLoopActivationConfigArgs']] = None, + human_loop_config: Optional[pulumi.Input['FlowDefinitionHumanLoopConfigArgs']] = None, + human_loop_request_source: Optional[pulumi.Input['FlowDefinitionHumanLoopRequestSourceArgs']] = None, + output_config: Optional[pulumi.Input['FlowDefinitionOutputConfigArgs']] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flow_definition_name is None and 'flowDefinitionName' in kwargs: + flow_definition_name = kwargs['flowDefinitionName'] + if human_loop_activation_config is None and 'humanLoopActivationConfig' in kwargs: + human_loop_activation_config = kwargs['humanLoopActivationConfig'] + if human_loop_config is None and 'humanLoopConfig' in kwargs: + human_loop_config = kwargs['humanLoopConfig'] + if human_loop_request_source is None and 'humanLoopRequestSource' in kwargs: + human_loop_request_source = kwargs['humanLoopRequestSource'] + if output_config is None and 'outputConfig' in kwargs: + output_config = kwargs['outputConfig'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if flow_definition_name is not None: - pulumi.set(__self__, "flow_definition_name", flow_definition_name) + _setter("flow_definition_name", flow_definition_name) if human_loop_activation_config is not None: - pulumi.set(__self__, "human_loop_activation_config", human_loop_activation_config) + _setter("human_loop_activation_config", human_loop_activation_config) if human_loop_config is not None: - pulumi.set(__self__, "human_loop_config", human_loop_config) + _setter("human_loop_config", human_loop_config) if human_loop_request_source is not None: - pulumi.set(__self__, "human_loop_request_source", human_loop_request_source) + _setter("human_loop_request_source", human_loop_request_source) if output_config is not None: - pulumi.set(__self__, "output_config", output_config) + _setter("output_config", output_config) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -526,6 +610,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FlowDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -550,11 +638,15 @@ def _internal_init(__self__, if flow_definition_name is None and not opts.urn: raise TypeError("Missing required property 'flow_definition_name'") __props__.__dict__["flow_definition_name"] = flow_definition_name + human_loop_activation_config = _utilities.configure(human_loop_activation_config, FlowDefinitionHumanLoopActivationConfigArgs, True) __props__.__dict__["human_loop_activation_config"] = human_loop_activation_config + human_loop_config = _utilities.configure(human_loop_config, FlowDefinitionHumanLoopConfigArgs, True) if human_loop_config is None and not opts.urn: raise TypeError("Missing required property 'human_loop_config'") __props__.__dict__["human_loop_config"] = human_loop_config + human_loop_request_source = _utilities.configure(human_loop_request_source, FlowDefinitionHumanLoopRequestSourceArgs, True) __props__.__dict__["human_loop_request_source"] = human_loop_request_source + output_config = _utilities.configure(output_config, FlowDefinitionOutputConfigArgs, True) if output_config is None and not opts.urn: raise TypeError("Missing required property 'output_config'") __props__.__dict__["output_config"] = output_config diff --git a/sdk/python/pulumi_aws/sagemaker/get_prebuilt_ecr_image.py b/sdk/python/pulumi_aws/sagemaker/get_prebuilt_ecr_image.py index 11892f31326..164f7fc8396 100644 --- a/sdk/python/pulumi_aws/sagemaker/get_prebuilt_ecr_image.py +++ b/sdk/python/pulumi_aws/sagemaker/get_prebuilt_ecr_image.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/sagemaker/human_task_ui.py b/sdk/python/pulumi_aws/sagemaker/human_task_ui.py index 3dfa4f087a4..009500fec6f 100644 --- a/sdk/python/pulumi_aws/sagemaker/human_task_ui.py +++ b/sdk/python/pulumi_aws/sagemaker/human_task_ui.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,33 @@ def __init__(__self__, *, :param pulumi.Input['HumanTaskUIUiTemplateArgs'] ui_template: The Liquid template for the worker user interface. See UI Template below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "human_task_ui_name", human_task_ui_name) - pulumi.set(__self__, "ui_template", ui_template) + HumanTaskUIArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + human_task_ui_name=human_task_ui_name, + ui_template=ui_template, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + human_task_ui_name: Optional[pulumi.Input[str]] = None, + ui_template: Optional[pulumi.Input['HumanTaskUIUiTemplateArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if human_task_ui_name is None and 'humanTaskUiName' in kwargs: + human_task_ui_name = kwargs['humanTaskUiName'] + if human_task_ui_name is None: + raise TypeError("Missing 'human_task_ui_name' argument") + if ui_template is None and 'uiTemplate' in kwargs: + ui_template = kwargs['uiTemplate'] + if ui_template is None: + raise TypeError("Missing 'ui_template' argument") + + _setter("human_task_ui_name", human_task_ui_name) + _setter("ui_template", ui_template) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="humanTaskUiName") @@ -83,19 +106,44 @@ def __init__(__self__, *, :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['HumanTaskUIUiTemplateArgs'] ui_template: The Liquid template for the worker user interface. See UI Template below. """ + _HumanTaskUIState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + human_task_ui_name=human_task_ui_name, + tags=tags, + tags_all=tags_all, + ui_template=ui_template, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + human_task_ui_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + ui_template: Optional[pulumi.Input['HumanTaskUIUiTemplateArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if human_task_ui_name is None and 'humanTaskUiName' in kwargs: + human_task_ui_name = kwargs['humanTaskUiName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if ui_template is None and 'uiTemplate' in kwargs: + ui_template = kwargs['uiTemplate'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if human_task_ui_name is not None: - pulumi.set(__self__, "human_task_ui_name", human_task_ui_name) + _setter("human_task_ui_name", human_task_ui_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if ui_template is not None: - pulumi.set(__self__, "ui_template", ui_template) + _setter("ui_template", ui_template) @property @pulumi.getter @@ -240,6 +288,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HumanTaskUIArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -261,6 +313,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'human_task_ui_name'") __props__.__dict__["human_task_ui_name"] = human_task_ui_name __props__.__dict__["tags"] = tags + ui_template = _utilities.configure(ui_template, HumanTaskUIUiTemplateArgs, True) if ui_template is None and not opts.urn: raise TypeError("Missing required property 'ui_template'") __props__.__dict__["ui_template"] = ui_template diff --git a/sdk/python/pulumi_aws/sagemaker/image.py b/sdk/python/pulumi_aws/sagemaker/image.py index d7fda6794ed..dd1f4716573 100644 --- a/sdk/python/pulumi_aws/sagemaker/image.py +++ b/sdk/python/pulumi_aws/sagemaker/image.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ImageArgs', 'Image'] @@ -27,14 +27,43 @@ def __init__(__self__, *, :param pulumi.Input[str] display_name: The display name of the image. When the image is added to a domain (must be unique to the domain). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "image_name", image_name) - pulumi.set(__self__, "role_arn", role_arn) + ImageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_name=image_name, + role_arn=role_arn, + description=description, + display_name=display_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + + _setter("image_name", image_name) + _setter("role_arn", role_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="imageName") @@ -117,23 +146,54 @@ def __init__(__self__, *, :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. """ + _ImageState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + display_name=display_name, + image_name=image_name, + role_arn=role_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if image_name is not None: - pulumi.set(__self__, "image_name", image_name) + _setter("image_name", image_name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -304,6 +364,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ImageArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sagemaker/image_version.py b/sdk/python/pulumi_aws/sagemaker/image_version.py index b2ece915cc8..2ac30a5ba00 100644 --- a/sdk/python/pulumi_aws/sagemaker/image_version.py +++ b/sdk/python/pulumi_aws/sagemaker/image_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ImageVersionArgs', 'ImageVersion'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] base_image: The registry path of the container image on which this image version is based. :param pulumi.Input[str] image_name: The name of the image. Must be unique to your account. """ - pulumi.set(__self__, "base_image", base_image) - pulumi.set(__self__, "image_name", image_name) + ImageVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + base_image=base_image, + image_name=image_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + base_image: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_image is None and 'baseImage' in kwargs: + base_image = kwargs['baseImage'] + if base_image is None: + raise TypeError("Missing 'base_image' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + + _setter("base_image", base_image) + _setter("image_name", image_name) @property @pulumi.getter(name="baseImage") @@ -66,18 +87,47 @@ def __init__(__self__, *, :param pulumi.Input[str] image_arn: The Amazon Resource Name (ARN) of the image the version is based on. :param pulumi.Input[str] image_name: The name of the image. Must be unique to your account. """ + _ImageVersionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + base_image=base_image, + container_image=container_image, + image_arn=image_arn, + image_name=image_name, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + base_image: Optional[pulumi.Input[str]] = None, + container_image: Optional[pulumi.Input[str]] = None, + image_arn: Optional[pulumi.Input[str]] = None, + image_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_image is None and 'baseImage' in kwargs: + base_image = kwargs['baseImage'] + if container_image is None and 'containerImage' in kwargs: + container_image = kwargs['containerImage'] + if image_arn is None and 'imageArn' in kwargs: + image_arn = kwargs['imageArn'] + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if base_image is not None: - pulumi.set(__self__, "base_image", base_image) + _setter("base_image", base_image) if container_image is not None: - pulumi.set(__self__, "container_image", container_image) + _setter("container_image", container_image) if image_arn is not None: - pulumi.set(__self__, "image_arn", image_arn) + _setter("image_arn", image_arn) if image_name is not None: - pulumi.set(__self__, "image_name", image_name) + _setter("image_name", image_name) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -224,6 +274,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ImageVersionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sagemaker/model.py b/sdk/python/pulumi_aws/sagemaker/model.py index 0ad7cce87ce..9fae539a3a3 100644 --- a/sdk/python/pulumi_aws/sagemaker/model.py +++ b/sdk/python/pulumi_aws/sagemaker/model.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,21 +37,58 @@ def __init__(__self__, *, The `primary_container` and `container` block both support: :param pulumi.Input['ModelVpcConfigArgs'] vpc_config: Specifies the VPC that you want your model to connect to. VpcConfig is used in hosting services and in batch transform. """ - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + ModelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role_arn=execution_role_arn, + containers=containers, + enable_network_isolation=enable_network_isolation, + inference_execution_config=inference_execution_config, + name=name, + primary_container=primary_container, + tags=tags, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role_arn: Optional[pulumi.Input[str]] = None, + containers: Optional[pulumi.Input[Sequence[pulumi.Input['ModelContainerArgs']]]] = None, + enable_network_isolation: Optional[pulumi.Input[bool]] = None, + inference_execution_config: Optional[pulumi.Input['ModelInferenceExecutionConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + primary_container: Optional[pulumi.Input['ModelPrimaryContainerArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['ModelVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if execution_role_arn is None: + raise TypeError("Missing 'execution_role_arn' argument") + if enable_network_isolation is None and 'enableNetworkIsolation' in kwargs: + enable_network_isolation = kwargs['enableNetworkIsolation'] + if inference_execution_config is None and 'inferenceExecutionConfig' in kwargs: + inference_execution_config = kwargs['inferenceExecutionConfig'] + if primary_container is None and 'primaryContainer' in kwargs: + primary_container = kwargs['primaryContainer'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + + _setter("execution_role_arn", execution_role_arn) if containers is not None: - pulumi.set(__self__, "containers", containers) + _setter("containers", containers) if enable_network_isolation is not None: - pulumi.set(__self__, "enable_network_isolation", enable_network_isolation) + _setter("enable_network_isolation", enable_network_isolation) if inference_execution_config is not None: - pulumi.set(__self__, "inference_execution_config", inference_execution_config) + _setter("inference_execution_config", inference_execution_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if primary_container is not None: - pulumi.set(__self__, "primary_container", primary_container) + _setter("primary_container", primary_container) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="executionRoleArn") @@ -180,29 +217,70 @@ def __init__(__self__, *, :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['ModelVpcConfigArgs'] vpc_config: Specifies the VPC that you want your model to connect to. VpcConfig is used in hosting services and in batch transform. """ + _ModelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + containers=containers, + enable_network_isolation=enable_network_isolation, + execution_role_arn=execution_role_arn, + inference_execution_config=inference_execution_config, + name=name, + primary_container=primary_container, + tags=tags, + tags_all=tags_all, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + containers: Optional[pulumi.Input[Sequence[pulumi.Input['ModelContainerArgs']]]] = None, + enable_network_isolation: Optional[pulumi.Input[bool]] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + inference_execution_config: Optional[pulumi.Input['ModelInferenceExecutionConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + primary_container: Optional[pulumi.Input['ModelPrimaryContainerArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['ModelVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_network_isolation is None and 'enableNetworkIsolation' in kwargs: + enable_network_isolation = kwargs['enableNetworkIsolation'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if inference_execution_config is None and 'inferenceExecutionConfig' in kwargs: + inference_execution_config = kwargs['inferenceExecutionConfig'] + if primary_container is None and 'primaryContainer' in kwargs: + primary_container = kwargs['primaryContainer'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if containers is not None: - pulumi.set(__self__, "containers", containers) + _setter("containers", containers) if enable_network_isolation is not None: - pulumi.set(__self__, "enable_network_isolation", enable_network_isolation) + _setter("enable_network_isolation", enable_network_isolation) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if inference_execution_config is not None: - pulumi.set(__self__, "inference_execution_config", inference_execution_config) + _setter("inference_execution_config", inference_execution_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if primary_container is not None: - pulumi.set(__self__, "primary_container", primary_container) + _setter("primary_container", primary_container) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter @@ -449,6 +527,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ModelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -476,10 +558,13 @@ def _internal_init(__self__, if execution_role_arn is None and not opts.urn: raise TypeError("Missing required property 'execution_role_arn'") __props__.__dict__["execution_role_arn"] = execution_role_arn + inference_execution_config = _utilities.configure(inference_execution_config, ModelInferenceExecutionConfigArgs, True) __props__.__dict__["inference_execution_config"] = inference_execution_config __props__.__dict__["name"] = name + primary_container = _utilities.configure(primary_container, ModelPrimaryContainerArgs, True) __props__.__dict__["primary_container"] = primary_container __props__.__dict__["tags"] = tags + vpc_config = _utilities.configure(vpc_config, ModelVpcConfigArgs, True) __props__.__dict__["vpc_config"] = vpc_config __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/sagemaker/model_package_group.py b/sdk/python/pulumi_aws/sagemaker/model_package_group.py index 76e00ebd040..2b00cb7c113 100644 --- a/sdk/python/pulumi_aws/sagemaker/model_package_group.py +++ b/sdk/python/pulumi_aws/sagemaker/model_package_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ModelPackageGroupArgs', 'ModelPackageGroup'] @@ -23,11 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] model_package_group_description: A description for the model group. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "model_package_group_name", model_package_group_name) + ModelPackageGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_package_group_name=model_package_group_name, + model_package_group_description=model_package_group_description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_package_group_name: Optional[pulumi.Input[str]] = None, + model_package_group_description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_package_group_name is None and 'modelPackageGroupName' in kwargs: + model_package_group_name = kwargs['modelPackageGroupName'] + if model_package_group_name is None: + raise TypeError("Missing 'model_package_group_name' argument") + if model_package_group_description is None and 'modelPackageGroupDescription' in kwargs: + model_package_group_description = kwargs['modelPackageGroupDescription'] + + _setter("model_package_group_name", model_package_group_name) if model_package_group_description is not None: - pulumi.set(__self__, "model_package_group_description", model_package_group_description) + _setter("model_package_group_description", model_package_group_description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="modelPackageGroupName") @@ -82,19 +103,44 @@ def __init__(__self__, *, :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. """ + _ModelPackageGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + model_package_group_description=model_package_group_description, + model_package_group_name=model_package_group_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + model_package_group_description: Optional[pulumi.Input[str]] = None, + model_package_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_package_group_description is None and 'modelPackageGroupDescription' in kwargs: + model_package_group_description = kwargs['modelPackageGroupDescription'] + if model_package_group_name is None and 'modelPackageGroupName' in kwargs: + model_package_group_name = kwargs['modelPackageGroupName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if model_package_group_description is not None: - pulumi.set(__self__, "model_package_group_description", model_package_group_description) + _setter("model_package_group_description", model_package_group_description) if model_package_group_name is not None: - pulumi.set(__self__, "model_package_group_name", model_package_group_name) + _setter("model_package_group_name", model_package_group_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -233,6 +279,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ModelPackageGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sagemaker/model_package_group_policy.py b/sdk/python/pulumi_aws/sagemaker/model_package_group_policy.py index 3c72de36a0b..a1fb9b28379 100644 --- a/sdk/python/pulumi_aws/sagemaker/model_package_group_policy.py +++ b/sdk/python/pulumi_aws/sagemaker/model_package_group_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ModelPackageGroupPolicyArgs', 'ModelPackageGroupPolicy'] @@ -20,8 +20,29 @@ def __init__(__self__, *, The set of arguments for constructing a ModelPackageGroupPolicy resource. :param pulumi.Input[str] model_package_group_name: The name of the model package group. """ - pulumi.set(__self__, "model_package_group_name", model_package_group_name) - pulumi.set(__self__, "resource_policy", resource_policy) + ModelPackageGroupPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_package_group_name=model_package_group_name, + resource_policy=resource_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_package_group_name: Optional[pulumi.Input[str]] = None, + resource_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_package_group_name is None and 'modelPackageGroupName' in kwargs: + model_package_group_name = kwargs['modelPackageGroupName'] + if model_package_group_name is None: + raise TypeError("Missing 'model_package_group_name' argument") + if resource_policy is None and 'resourcePolicy' in kwargs: + resource_policy = kwargs['resourcePolicy'] + if resource_policy is None: + raise TypeError("Missing 'resource_policy' argument") + + _setter("model_package_group_name", model_package_group_name) + _setter("resource_policy", resource_policy) @property @pulumi.getter(name="modelPackageGroupName") @@ -54,10 +75,27 @@ def __init__(__self__, *, Input properties used for looking up and filtering ModelPackageGroupPolicy resources. :param pulumi.Input[str] model_package_group_name: The name of the model package group. """ + _ModelPackageGroupPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_package_group_name=model_package_group_name, + resource_policy=resource_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_package_group_name: Optional[pulumi.Input[str]] = None, + resource_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_package_group_name is None and 'modelPackageGroupName' in kwargs: + model_package_group_name = kwargs['modelPackageGroupName'] + if resource_policy is None and 'resourcePolicy' in kwargs: + resource_policy = kwargs['resourcePolicy'] + if model_package_group_name is not None: - pulumi.set(__self__, "model_package_group_name", model_package_group_name) + _setter("model_package_group_name", model_package_group_name) if resource_policy is not None: - pulumi.set(__self__, "resource_policy", resource_policy) + _setter("resource_policy", resource_policy) @property @pulumi.getter(name="modelPackageGroupName") @@ -135,6 +173,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ModelPackageGroupPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sagemaker/monitoring_schedule.py b/sdk/python/pulumi_aws/sagemaker/monitoring_schedule.py index 1d6ee671592..23903137ebb 100644 --- a/sdk/python/pulumi_aws/sagemaker/monitoring_schedule.py +++ b/sdk/python/pulumi_aws/sagemaker/monitoring_schedule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the monitoring schedule. The name must be unique within an AWS Region within an AWS account. If omitted, the provider will assign a random, unique name. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "monitoring_schedule_config", monitoring_schedule_config) + MonitoringScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + monitoring_schedule_config=monitoring_schedule_config, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + monitoring_schedule_config: Optional[pulumi.Input['MonitoringScheduleMonitoringScheduleConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if monitoring_schedule_config is None and 'monitoringScheduleConfig' in kwargs: + monitoring_schedule_config = kwargs['monitoringScheduleConfig'] + if monitoring_schedule_config is None: + raise TypeError("Missing 'monitoring_schedule_config' argument") + + _setter("monitoring_schedule_config", monitoring_schedule_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="monitoringScheduleConfig") @@ -84,19 +103,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping 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. """ + _MonitoringScheduleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + monitoring_schedule_config=monitoring_schedule_config, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + monitoring_schedule_config: Optional[pulumi.Input['MonitoringScheduleMonitoringScheduleConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if monitoring_schedule_config is None and 'monitoringScheduleConfig' in kwargs: + monitoring_schedule_config = kwargs['monitoringScheduleConfig'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if monitoring_schedule_config is not None: - pulumi.set(__self__, "monitoring_schedule_config", monitoring_schedule_config) + _setter("monitoring_schedule_config", monitoring_schedule_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -243,6 +285,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MonitoringScheduleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -260,6 +306,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = MonitoringScheduleArgs.__new__(MonitoringScheduleArgs) + monitoring_schedule_config = _utilities.configure(monitoring_schedule_config, MonitoringScheduleMonitoringScheduleConfigArgs, True) if monitoring_schedule_config is None and not opts.urn: raise TypeError("Missing required property 'monitoring_schedule_config'") __props__.__dict__["monitoring_schedule_config"] = monitoring_schedule_config diff --git a/sdk/python/pulumi_aws/sagemaker/notebook_instance.py b/sdk/python/pulumi_aws/sagemaker/notebook_instance.py index f1f618823b6..25363a809c3 100644 --- a/sdk/python/pulumi_aws/sagemaker/notebook_instance.py +++ b/sdk/python/pulumi_aws/sagemaker/notebook_instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -52,36 +52,109 @@ def __init__(__self__, *, :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[int] volume_size: The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. """ - pulumi.set(__self__, "instance_type", instance_type) - pulumi.set(__self__, "role_arn", role_arn) + NotebookInstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + role_arn=role_arn, + accelerator_types=accelerator_types, + additional_code_repositories=additional_code_repositories, + default_code_repository=default_code_repository, + direct_internet_access=direct_internet_access, + instance_metadata_service_configuration=instance_metadata_service_configuration, + kms_key_id=kms_key_id, + lifecycle_config_name=lifecycle_config_name, + name=name, + platform_identifier=platform_identifier, + root_access=root_access, + security_groups=security_groups, + subnet_id=subnet_id, + tags=tags, + volume_size=volume_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + accelerator_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + additional_code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_code_repository: Optional[pulumi.Input[str]] = None, + direct_internet_access: Optional[pulumi.Input[str]] = None, + instance_metadata_service_configuration: Optional[pulumi.Input['NotebookInstanceInstanceMetadataServiceConfigurationArgs']] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + lifecycle_config_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + platform_identifier: Optional[pulumi.Input[str]] = None, + root_access: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if additional_code_repositories is None and 'additionalCodeRepositories' in kwargs: + additional_code_repositories = kwargs['additionalCodeRepositories'] + if default_code_repository is None and 'defaultCodeRepository' in kwargs: + default_code_repository = kwargs['defaultCodeRepository'] + if direct_internet_access is None and 'directInternetAccess' in kwargs: + direct_internet_access = kwargs['directInternetAccess'] + if instance_metadata_service_configuration is None and 'instanceMetadataServiceConfiguration' in kwargs: + instance_metadata_service_configuration = kwargs['instanceMetadataServiceConfiguration'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if lifecycle_config_name is None and 'lifecycleConfigName' in kwargs: + lifecycle_config_name = kwargs['lifecycleConfigName'] + if platform_identifier is None and 'platformIdentifier' in kwargs: + platform_identifier = kwargs['platformIdentifier'] + if root_access is None and 'rootAccess' in kwargs: + root_access = kwargs['rootAccess'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + + _setter("instance_type", instance_type) + _setter("role_arn", role_arn) if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if additional_code_repositories is not None: - pulumi.set(__self__, "additional_code_repositories", additional_code_repositories) + _setter("additional_code_repositories", additional_code_repositories) if default_code_repository is not None: - pulumi.set(__self__, "default_code_repository", default_code_repository) + _setter("default_code_repository", default_code_repository) if direct_internet_access is not None: - pulumi.set(__self__, "direct_internet_access", direct_internet_access) + _setter("direct_internet_access", direct_internet_access) if instance_metadata_service_configuration is not None: - pulumi.set(__self__, "instance_metadata_service_configuration", instance_metadata_service_configuration) + _setter("instance_metadata_service_configuration", instance_metadata_service_configuration) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if lifecycle_config_name is not None: - pulumi.set(__self__, "lifecycle_config_name", lifecycle_config_name) + _setter("lifecycle_config_name", lifecycle_config_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if platform_identifier is not None: - pulumi.set(__self__, "platform_identifier", platform_identifier) + _setter("platform_identifier", platform_identifier) if root_access is not None: - pulumi.set(__self__, "root_access", root_access) + _setter("root_access", root_access) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) @property @pulumi.getter(name="instanceType") @@ -324,49 +397,130 @@ def __init__(__self__, *, :param pulumi.Input[str] url: The URL that you use to connect to the Jupyter notebook that is running in your notebook instance. :param pulumi.Input[int] volume_size: The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. """ + _NotebookInstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accelerator_types=accelerator_types, + additional_code_repositories=additional_code_repositories, + arn=arn, + default_code_repository=default_code_repository, + direct_internet_access=direct_internet_access, + instance_metadata_service_configuration=instance_metadata_service_configuration, + instance_type=instance_type, + kms_key_id=kms_key_id, + lifecycle_config_name=lifecycle_config_name, + name=name, + network_interface_id=network_interface_id, + platform_identifier=platform_identifier, + role_arn=role_arn, + root_access=root_access, + security_groups=security_groups, + subnet_id=subnet_id, + tags=tags, + tags_all=tags_all, + url=url, + volume_size=volume_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accelerator_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + additional_code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + default_code_repository: Optional[pulumi.Input[str]] = None, + direct_internet_access: Optional[pulumi.Input[str]] = None, + instance_metadata_service_configuration: Optional[pulumi.Input['NotebookInstanceInstanceMetadataServiceConfigurationArgs']] = None, + instance_type: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + lifecycle_config_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + platform_identifier: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + root_access: Optional[pulumi.Input[str]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + volume_size: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accelerator_types is None and 'acceleratorTypes' in kwargs: + accelerator_types = kwargs['acceleratorTypes'] + if additional_code_repositories is None and 'additionalCodeRepositories' in kwargs: + additional_code_repositories = kwargs['additionalCodeRepositories'] + if default_code_repository is None and 'defaultCodeRepository' in kwargs: + default_code_repository = kwargs['defaultCodeRepository'] + if direct_internet_access is None and 'directInternetAccess' in kwargs: + direct_internet_access = kwargs['directInternetAccess'] + if instance_metadata_service_configuration is None and 'instanceMetadataServiceConfiguration' in kwargs: + instance_metadata_service_configuration = kwargs['instanceMetadataServiceConfiguration'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if lifecycle_config_name is None and 'lifecycleConfigName' in kwargs: + lifecycle_config_name = kwargs['lifecycleConfigName'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if platform_identifier is None and 'platformIdentifier' in kwargs: + platform_identifier = kwargs['platformIdentifier'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if root_access is None and 'rootAccess' in kwargs: + root_access = kwargs['rootAccess'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if subnet_id is None and 'subnetId' in kwargs: + subnet_id = kwargs['subnetId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if volume_size is None and 'volumeSize' in kwargs: + volume_size = kwargs['volumeSize'] + if accelerator_types is not None: - pulumi.set(__self__, "accelerator_types", accelerator_types) + _setter("accelerator_types", accelerator_types) if additional_code_repositories is not None: - pulumi.set(__self__, "additional_code_repositories", additional_code_repositories) + _setter("additional_code_repositories", additional_code_repositories) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_code_repository is not None: - pulumi.set(__self__, "default_code_repository", default_code_repository) + _setter("default_code_repository", default_code_repository) if direct_internet_access is not None: - pulumi.set(__self__, "direct_internet_access", direct_internet_access) + _setter("direct_internet_access", direct_internet_access) if instance_metadata_service_configuration is not None: - pulumi.set(__self__, "instance_metadata_service_configuration", instance_metadata_service_configuration) + _setter("instance_metadata_service_configuration", instance_metadata_service_configuration) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if lifecycle_config_name is not None: - pulumi.set(__self__, "lifecycle_config_name", lifecycle_config_name) + _setter("lifecycle_config_name", lifecycle_config_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if platform_identifier is not None: - pulumi.set(__self__, "platform_identifier", platform_identifier) + _setter("platform_identifier", platform_identifier) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if root_access is not None: - pulumi.set(__self__, "root_access", root_access) + _setter("root_access", root_access) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if subnet_id is not None: - pulumi.set(__self__, "subnet_id", subnet_id) + _setter("subnet_id", subnet_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if volume_size is not None: - pulumi.set(__self__, "volume_size", volume_size) + _setter("volume_size", volume_size) @property @pulumi.getter(name="acceleratorTypes") @@ -761,6 +915,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NotebookInstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -795,6 +953,7 @@ def _internal_init(__self__, __props__.__dict__["additional_code_repositories"] = additional_code_repositories __props__.__dict__["default_code_repository"] = default_code_repository __props__.__dict__["direct_internet_access"] = direct_internet_access + instance_metadata_service_configuration = _utilities.configure(instance_metadata_service_configuration, NotebookInstanceInstanceMetadataServiceConfigurationArgs, True) __props__.__dict__["instance_metadata_service_configuration"] = instance_metadata_service_configuration if instance_type is None and not opts.urn: raise TypeError("Missing required property 'instance_type'") diff --git a/sdk/python/pulumi_aws/sagemaker/notebook_instance_lifecycle_configuration.py b/sdk/python/pulumi_aws/sagemaker/notebook_instance_lifecycle_configuration.py index 3370c8de8b5..caadf0a9ef8 100644 --- a/sdk/python/pulumi_aws/sagemaker/notebook_instance_lifecycle_configuration.py +++ b/sdk/python/pulumi_aws/sagemaker/notebook_instance_lifecycle_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['NotebookInstanceLifecycleConfigurationArgs', 'NotebookInstanceLifecycleConfiguration'] @@ -23,12 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] on_create: A shell script (base64-encoded) that runs only once when the SageMaker Notebook Instance is created. :param pulumi.Input[str] on_start: A shell script (base64-encoded) that runs every time the SageMaker Notebook Instance is started including the time it's created. """ + NotebookInstanceLifecycleConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + on_create=on_create, + on_start=on_start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + on_create: Optional[pulumi.Input[str]] = None, + on_start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_create is None and 'onCreate' in kwargs: + on_create = kwargs['onCreate'] + if on_start is None and 'onStart' in kwargs: + on_start = kwargs['onStart'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if on_create is not None: - pulumi.set(__self__, "on_create", on_create) + _setter("on_create", on_create) if on_start is not None: - pulumi.set(__self__, "on_start", on_start) + _setter("on_start", on_start) @property @pulumi.getter @@ -81,14 +100,35 @@ def __init__(__self__, *, :param pulumi.Input[str] on_create: A shell script (base64-encoded) that runs only once when the SageMaker Notebook Instance is created. :param pulumi.Input[str] on_start: A shell script (base64-encoded) that runs every time the SageMaker Notebook Instance is started including the time it's created. """ + _NotebookInstanceLifecycleConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + on_create=on_create, + on_start=on_start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + on_create: Optional[pulumi.Input[str]] = None, + on_start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_create is None and 'onCreate' in kwargs: + on_create = kwargs['onCreate'] + if on_start is None and 'onStart' in kwargs: + on_start = kwargs['onStart'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if on_create is not None: - pulumi.set(__self__, "on_create", on_create) + _setter("on_create", on_create) if on_start is not None: - pulumi.set(__self__, "on_start", on_start) + _setter("on_start", on_start) @property @pulumi.getter @@ -192,6 +232,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NotebookInstanceLifecycleConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sagemaker/outputs.py b/sdk/python/pulumi_aws/sagemaker/outputs.py index c6d34468137..407c0b41e2e 100644 --- a/sdk/python/pulumi_aws/sagemaker/outputs.py +++ b/sdk/python/pulumi_aws/sagemaker/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -180,9 +180,28 @@ def __init__(__self__, *, :param 'AppImageConfigKernelGatewayImageConfigKernelSpecArgs' kernel_spec: The default branch for the Git repository. See Kernel Spec details below. :param 'AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs' file_system_config: The URL where the Git repository is located. See File System Config details below. """ - pulumi.set(__self__, "kernel_spec", kernel_spec) + AppImageConfigKernelGatewayImageConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + kernel_spec=kernel_spec, + file_system_config=file_system_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kernel_spec: Optional['outputs.AppImageConfigKernelGatewayImageConfigKernelSpec'] = None, + file_system_config: Optional['outputs.AppImageConfigKernelGatewayImageConfigFileSystemConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kernel_spec is None and 'kernelSpec' in kwargs: + kernel_spec = kwargs['kernelSpec'] + if kernel_spec is None: + raise TypeError("Missing 'kernel_spec' argument") + if file_system_config is None and 'fileSystemConfig' in kwargs: + file_system_config = kwargs['fileSystemConfig'] + + _setter("kernel_spec", kernel_spec) if file_system_config is not None: - pulumi.set(__self__, "file_system_config", file_system_config) + _setter("file_system_config", file_system_config) @property @pulumi.getter(name="kernelSpec") @@ -235,12 +254,33 @@ def __init__(__self__, *, > **Note:** When specifying `default_gid` and `default_uid`, Valid value pairs are [`0`, `0`] and [`100`, `1000`]. """ + AppImageConfigKernelGatewayImageConfigFileSystemConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_gid=default_gid, + default_uid=default_uid, + mount_path=mount_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_gid: Optional[int] = None, + default_uid: Optional[int] = None, + mount_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_gid is None and 'defaultGid' in kwargs: + default_gid = kwargs['defaultGid'] + if default_uid is None and 'defaultUid' in kwargs: + default_uid = kwargs['defaultUid'] + if mount_path is None and 'mountPath' in kwargs: + mount_path = kwargs['mountPath'] + if default_gid is not None: - pulumi.set(__self__, "default_gid", default_gid) + _setter("default_gid", default_gid) if default_uid is not None: - pulumi.set(__self__, "default_uid", default_uid) + _setter("default_uid", default_uid) if mount_path is not None: - pulumi.set(__self__, "mount_path", mount_path) + _setter("mount_path", mount_path) @property @pulumi.getter(name="defaultGid") @@ -295,9 +335,26 @@ def __init__(__self__, *, :param str name: The name of the kernel. :param str display_name: The display name of the kernel. """ - pulumi.set(__self__, "name", name) + AppImageConfigKernelGatewayImageConfigKernelSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + display_name=display_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + display_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + + _setter("name", name) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) @property @pulumi.getter @@ -352,14 +409,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + AppResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -424,11 +506,32 @@ def __init__(__self__, *, :param str branch: The default branch for the Git repository. :param str secret_arn: The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` """ - pulumi.set(__self__, "repository_url", repository_url) + CodeRepositoryGitConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + branch=branch, + secret_arn=secret_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[str] = None, + branch: Optional[str] = None, + secret_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + + _setter("repository_url", repository_url) if branch is not None: - pulumi.set(__self__, "branch", branch) + _setter("branch", branch) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) @property @pulumi.getter(name="repositoryUrl") @@ -489,13 +592,38 @@ def __init__(__self__, *, :param str post_analytics_processor_source_uri: An Amazon S3 URI to a script that is called after analysis has been performed. Applicable only for the built-in (first party) containers. :param str record_preprocessor_source_uri: An Amazon S3 URI to a script that is called per row prior to running analysis. It can base64 decode the payload and convert it into a flatted json so that the built-in container can use the converted data. Applicable only for the built-in (first party) containers. """ - pulumi.set(__self__, "image_uri", image_uri) + DataQualityJobDefinitionDataQualityAppSpecification._configure( + lambda key, value: pulumi.set(__self__, key, value), + image_uri=image_uri, + environment=environment, + post_analytics_processor_source_uri=post_analytics_processor_source_uri, + record_preprocessor_source_uri=record_preprocessor_source_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + image_uri: Optional[str] = None, + environment: Optional[Mapping[str, str]] = None, + post_analytics_processor_source_uri: Optional[str] = None, + record_preprocessor_source_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if image_uri is None and 'imageUri' in kwargs: + image_uri = kwargs['imageUri'] + if image_uri is None: + raise TypeError("Missing 'image_uri' argument") + if post_analytics_processor_source_uri is None and 'postAnalyticsProcessorSourceUri' in kwargs: + post_analytics_processor_source_uri = kwargs['postAnalyticsProcessorSourceUri'] + if record_preprocessor_source_uri is None and 'recordPreprocessorSourceUri' in kwargs: + record_preprocessor_source_uri = kwargs['recordPreprocessorSourceUri'] + + _setter("image_uri", image_uri) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if post_analytics_processor_source_uri is not None: - pulumi.set(__self__, "post_analytics_processor_source_uri", post_analytics_processor_source_uri) + _setter("post_analytics_processor_source_uri", post_analytics_processor_source_uri) if record_preprocessor_source_uri is not None: - pulumi.set(__self__, "record_preprocessor_source_uri", record_preprocessor_source_uri) + _setter("record_preprocessor_source_uri", record_preprocessor_source_uri) @property @pulumi.getter(name="imageUri") @@ -558,10 +686,27 @@ def __init__(__self__, *, :param 'DataQualityJobDefinitionDataQualityBaselineConfigConstraintsResourceArgs' constraints_resource: The constraints resource for a monitoring job. Fields are documented below. :param 'DataQualityJobDefinitionDataQualityBaselineConfigStatisticsResourceArgs' statistics_resource: The statistics resource for a monitoring job. Fields are documented below. """ + DataQualityJobDefinitionDataQualityBaselineConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + constraints_resource=constraints_resource, + statistics_resource=statistics_resource, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + constraints_resource: Optional['outputs.DataQualityJobDefinitionDataQualityBaselineConfigConstraintsResource'] = None, + statistics_resource: Optional['outputs.DataQualityJobDefinitionDataQualityBaselineConfigStatisticsResource'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if constraints_resource is None and 'constraintsResource' in kwargs: + constraints_resource = kwargs['constraintsResource'] + if statistics_resource is None and 'statisticsResource' in kwargs: + statistics_resource = kwargs['statisticsResource'] + if constraints_resource is not None: - pulumi.set(__self__, "constraints_resource", constraints_resource) + _setter("constraints_resource", constraints_resource) if statistics_resource is not None: - pulumi.set(__self__, "statistics_resource", statistics_resource) + _setter("statistics_resource", statistics_resource) @property @pulumi.getter(name="constraintsResource") @@ -604,8 +749,21 @@ def __init__(__self__, *, """ :param str s3_uri: The Amazon S3 URI for the constraints resource. """ + DataQualityJobDefinitionDataQualityBaselineConfigConstraintsResource._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is not None: - pulumi.set(__self__, "s3_uri", s3_uri) + _setter("s3_uri", s3_uri) @property @pulumi.getter(name="s3Uri") @@ -640,8 +798,21 @@ def __init__(__self__, *, """ :param str s3_uri: The Amazon S3 URI for the statistics resource. """ + DataQualityJobDefinitionDataQualityBaselineConfigStatisticsResource._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is not None: - pulumi.set(__self__, "s3_uri", s3_uri) + _setter("s3_uri", s3_uri) @property @pulumi.getter(name="s3Uri") @@ -680,10 +851,27 @@ def __init__(__self__, *, :param 'DataQualityJobDefinitionDataQualityJobInputBatchTransformInputArgs' batch_transform_input: Input object for the batch transform job. Fields are documented below. :param 'DataQualityJobDefinitionDataQualityJobInputEndpointInputArgs' endpoint_input: Input object for the endpoint. Fields are documented below. """ + DataQualityJobDefinitionDataQualityJobInput._configure( + lambda key, value: pulumi.set(__self__, key, value), + batch_transform_input=batch_transform_input, + endpoint_input=endpoint_input, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + batch_transform_input: Optional['outputs.DataQualityJobDefinitionDataQualityJobInputBatchTransformInput'] = None, + endpoint_input: Optional['outputs.DataQualityJobDefinitionDataQualityJobInputEndpointInput'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if batch_transform_input is None and 'batchTransformInput' in kwargs: + batch_transform_input = kwargs['batchTransformInput'] + if endpoint_input is None and 'endpointInput' in kwargs: + endpoint_input = kwargs['endpointInput'] + if batch_transform_input is not None: - pulumi.set(__self__, "batch_transform_input", batch_transform_input) + _setter("batch_transform_input", batch_transform_input) if endpoint_input is not None: - pulumi.set(__self__, "endpoint_input", endpoint_input) + _setter("endpoint_input", endpoint_input) @property @pulumi.getter(name="batchTransformInput") @@ -742,14 +930,47 @@ def __init__(__self__, *, :param str s3_data_distribution_type: Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to `FullyReplicated`. Valid values are `FullyReplicated` or `ShardedByS3Key` :param str s3_input_mode: Whether the `Pipe` or `File` is used as the input mode for transferring data for the monitoring job. `Pipe` mode is recommended for large datasets. `File` mode is useful for small files that fit in memory. Defaults to `File`. Valid values are `Pipe` or `File` """ - pulumi.set(__self__, "data_captured_destination_s3_uri", data_captured_destination_s3_uri) - pulumi.set(__self__, "dataset_format", dataset_format) + DataQualityJobDefinitionDataQualityJobInputBatchTransformInput._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_captured_destination_s3_uri=data_captured_destination_s3_uri, + dataset_format=dataset_format, + local_path=local_path, + s3_data_distribution_type=s3_data_distribution_type, + s3_input_mode=s3_input_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_captured_destination_s3_uri: Optional[str] = None, + dataset_format: Optional['outputs.DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormat'] = None, + local_path: Optional[str] = None, + s3_data_distribution_type: Optional[str] = None, + s3_input_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_captured_destination_s3_uri is None and 'dataCapturedDestinationS3Uri' in kwargs: + data_captured_destination_s3_uri = kwargs['dataCapturedDestinationS3Uri'] + if data_captured_destination_s3_uri is None: + raise TypeError("Missing 'data_captured_destination_s3_uri' argument") + if dataset_format is None and 'datasetFormat' in kwargs: + dataset_format = kwargs['datasetFormat'] + if dataset_format is None: + raise TypeError("Missing 'dataset_format' argument") + if local_path is None and 'localPath' in kwargs: + local_path = kwargs['localPath'] + if s3_data_distribution_type is None and 's3DataDistributionType' in kwargs: + s3_data_distribution_type = kwargs['s3DataDistributionType'] + if s3_input_mode is None and 's3InputMode' in kwargs: + s3_input_mode = kwargs['s3InputMode'] + + _setter("data_captured_destination_s3_uri", data_captured_destination_s3_uri) + _setter("dataset_format", dataset_format) if local_path is not None: - pulumi.set(__self__, "local_path", local_path) + _setter("local_path", local_path) if s3_data_distribution_type is not None: - pulumi.set(__self__, "s3_data_distribution_type", s3_data_distribution_type) + _setter("s3_data_distribution_type", s3_data_distribution_type) if s3_input_mode is not None: - pulumi.set(__self__, "s3_input_mode", s3_input_mode) + _setter("s3_input_mode", s3_input_mode) @property @pulumi.getter(name="dataCapturedDestinationS3Uri") @@ -801,10 +1022,23 @@ def __init__(__self__, *, :param 'DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatCsvArgs' csv: The CSV dataset used in the monitoring job. Fields are documented below. :param 'DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatJsonArgs' json: The JSON dataset used in the monitoring job. Fields are documented below. """ + DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormat._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv=csv, + json=json, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv: Optional['outputs.DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatCsv'] = None, + json: Optional['outputs.DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatJson'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv is not None: - pulumi.set(__self__, "csv", csv) + _setter("csv", csv) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) @property @pulumi.getter @@ -830,8 +1064,19 @@ def __init__(__self__, *, """ :param bool header: Indicates if the CSV data has a header. """ + DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatCsv._configure( + lambda key, value: pulumi.set(__self__, key, value), + header=header, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) @property @pulumi.getter @@ -849,8 +1094,19 @@ def __init__(__self__, *, """ :param bool line: Indicates if the file should be read as a json object per line. """ + DataQualityJobDefinitionDataQualityJobInputBatchTransformInputDatasetFormatJson._configure( + lambda key, value: pulumi.set(__self__, key, value), + line=line, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + line: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if line is not None: - pulumi.set(__self__, "line", line) + _setter("line", line) @property @pulumi.getter @@ -897,13 +1153,40 @@ def __init__(__self__, *, :param str s3_data_distribution_type: Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to `FullyReplicated`. Valid values are `FullyReplicated` or `ShardedByS3Key` :param str s3_input_mode: Whether the `Pipe` or `File` is used as the input mode for transferring data for the monitoring job. `Pipe` mode is recommended for large datasets. `File` mode is useful for small files that fit in memory. Defaults to `File`. Valid values are `Pipe` or `File` """ - pulumi.set(__self__, "endpoint_name", endpoint_name) + DataQualityJobDefinitionDataQualityJobInputEndpointInput._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint_name=endpoint_name, + local_path=local_path, + s3_data_distribution_type=s3_data_distribution_type, + s3_input_mode=s3_input_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint_name: Optional[str] = None, + local_path: Optional[str] = None, + s3_data_distribution_type: Optional[str] = None, + s3_input_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint_name is None and 'endpointName' in kwargs: + endpoint_name = kwargs['endpointName'] + if endpoint_name is None: + raise TypeError("Missing 'endpoint_name' argument") + if local_path is None and 'localPath' in kwargs: + local_path = kwargs['localPath'] + if s3_data_distribution_type is None and 's3DataDistributionType' in kwargs: + s3_data_distribution_type = kwargs['s3DataDistributionType'] + if s3_input_mode is None and 's3InputMode' in kwargs: + s3_input_mode = kwargs['s3InputMode'] + + _setter("endpoint_name", endpoint_name) if local_path is not None: - pulumi.set(__self__, "local_path", local_path) + _setter("local_path", local_path) if s3_data_distribution_type is not None: - pulumi.set(__self__, "s3_data_distribution_type", s3_data_distribution_type) + _setter("s3_data_distribution_type", s3_data_distribution_type) if s3_input_mode is not None: - pulumi.set(__self__, "s3_input_mode", s3_input_mode) + _setter("s3_input_mode", s3_input_mode) @property @pulumi.getter(name="endpointName") @@ -966,9 +1249,28 @@ def __init__(__self__, *, :param 'DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsArgs' monitoring_outputs: Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded. Fields are documented below. :param str kms_key_id: The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. """ - pulumi.set(__self__, "monitoring_outputs", monitoring_outputs) + DataQualityJobDefinitionDataQualityJobOutputConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + monitoring_outputs=monitoring_outputs, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + monitoring_outputs: Optional['outputs.DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputs'] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if monitoring_outputs is None and 'monitoringOutputs' in kwargs: + monitoring_outputs = kwargs['monitoringOutputs'] + if monitoring_outputs is None: + raise TypeError("Missing 'monitoring_outputs' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("monitoring_outputs", monitoring_outputs) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="monitoringOutputs") @@ -1011,7 +1313,22 @@ def __init__(__self__, *, """ :param 'DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsS3OutputArgs' s3_output: The Amazon S3 storage location where the results of a monitoring job are saved. Fields are documented below. """ - pulumi.set(__self__, "s3_output", s3_output) + DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_output=s3_output, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_output: Optional['outputs.DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsS3Output'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_output is None and 's3Output' in kwargs: + s3_output = kwargs['s3Output'] + if s3_output is None: + raise TypeError("Missing 's3_output' argument") + + _setter("s3_output", s3_output) @property @pulumi.getter(name="s3Output") @@ -1054,11 +1371,34 @@ def __init__(__self__, *, :param str local_path: Path to the filesystem where the batch transform data is available to the container. Defaults to `/opt/ml/processing/input`. :param str s3_upload_mode: Whether to upload the results of the monitoring job continuously or after the job completes. Valid values are `Continuous` or `EndOfJob` """ - pulumi.set(__self__, "s3_uri", s3_uri) + DataQualityJobDefinitionDataQualityJobOutputConfigMonitoringOutputsS3Output._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + local_path=local_path, + s3_upload_mode=s3_upload_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[str] = None, + local_path: Optional[str] = None, + s3_upload_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if local_path is None and 'localPath' in kwargs: + local_path = kwargs['localPath'] + if s3_upload_mode is None and 's3UploadMode' in kwargs: + s3_upload_mode = kwargs['s3UploadMode'] + + _setter("s3_uri", s3_uri) if local_path is not None: - pulumi.set(__self__, "local_path", local_path) + _setter("local_path", local_path) if s3_upload_mode is not None: - pulumi.set(__self__, "s3_upload_mode", s3_upload_mode) + _setter("s3_upload_mode", s3_upload_mode) @property @pulumi.getter(name="s3Uri") @@ -1109,7 +1449,22 @@ def __init__(__self__, *, """ :param 'DataQualityJobDefinitionJobResourcesClusterConfigArgs' cluster_config: The configuration for the cluster resources used to run the processing job. Fields are documented below. """ - pulumi.set(__self__, "cluster_config", cluster_config) + DataQualityJobDefinitionJobResources._configure( + lambda key, value: pulumi.set(__self__, key, value), + cluster_config=cluster_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cluster_config: Optional['outputs.DataQualityJobDefinitionJobResourcesClusterConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cluster_config is None and 'clusterConfig' in kwargs: + cluster_config = kwargs['clusterConfig'] + if cluster_config is None: + raise TypeError("Missing 'cluster_config' argument") + + _setter("cluster_config", cluster_config) @property @pulumi.getter(name="clusterConfig") @@ -1156,11 +1511,42 @@ def __init__(__self__, *, :param int volume_size_in_gb: The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario. :param str volume_kms_key_id: The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job. """ - pulumi.set(__self__, "instance_count", instance_count) - pulumi.set(__self__, "instance_type", instance_type) - pulumi.set(__self__, "volume_size_in_gb", volume_size_in_gb) + DataQualityJobDefinitionJobResourcesClusterConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_count=instance_count, + instance_type=instance_type, + volume_size_in_gb=volume_size_in_gb, + volume_kms_key_id=volume_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_count: Optional[int] = None, + instance_type: Optional[str] = None, + volume_size_in_gb: Optional[int] = None, + volume_kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_count is None and 'instanceCount' in kwargs: + instance_count = kwargs['instanceCount'] + if instance_count is None: + raise TypeError("Missing 'instance_count' argument") + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if instance_type is None: + raise TypeError("Missing 'instance_type' argument") + if volume_size_in_gb is None and 'volumeSizeInGb' in kwargs: + volume_size_in_gb = kwargs['volumeSizeInGb'] + if volume_size_in_gb is None: + raise TypeError("Missing 'volume_size_in_gb' argument") + if volume_kms_key_id is None and 'volumeKmsKeyId' in kwargs: + volume_kms_key_id = kwargs['volumeKmsKeyId'] + + _setter("instance_count", instance_count) + _setter("instance_type", instance_type) + _setter("volume_size_in_gb", volume_size_in_gb) if volume_kms_key_id is not None: - pulumi.set(__self__, "volume_kms_key_id", volume_kms_key_id) + _setter("volume_kms_key_id", volume_kms_key_id) @property @pulumi.getter(name="instanceCount") @@ -1227,12 +1613,33 @@ def __init__(__self__, *, :param bool enable_network_isolation: Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job. :param 'DataQualityJobDefinitionNetworkConfigVpcConfigArgs' vpc_config: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. Fields are documented below. """ + DataQualityJobDefinitionNetworkConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_inter_container_traffic_encryption=enable_inter_container_traffic_encryption, + enable_network_isolation=enable_network_isolation, + vpc_config=vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_inter_container_traffic_encryption: Optional[bool] = None, + enable_network_isolation: Optional[bool] = None, + vpc_config: Optional['outputs.DataQualityJobDefinitionNetworkConfigVpcConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_inter_container_traffic_encryption is None and 'enableInterContainerTrafficEncryption' in kwargs: + enable_inter_container_traffic_encryption = kwargs['enableInterContainerTrafficEncryption'] + if enable_network_isolation is None and 'enableNetworkIsolation' in kwargs: + enable_network_isolation = kwargs['enableNetworkIsolation'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if enable_inter_container_traffic_encryption is not None: - pulumi.set(__self__, "enable_inter_container_traffic_encryption", enable_inter_container_traffic_encryption) + _setter("enable_inter_container_traffic_encryption", enable_inter_container_traffic_encryption) if enable_network_isolation is not None: - pulumi.set(__self__, "enable_network_isolation", enable_network_isolation) + _setter("enable_network_isolation", enable_network_isolation) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) @property @pulumi.getter(name="enableInterContainerTrafficEncryption") @@ -1285,8 +1692,27 @@ def __init__(__self__, *, :param Sequence[str] security_group_ids: The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the `subnets` field. :param Sequence[str] subnets: The ID of the subnets in the VPC to which you want to connect your training job or model. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) + DataQualityJobDefinitionNetworkConfigVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroupIds") @@ -1329,8 +1755,21 @@ def __init__(__self__, *, """ :param int max_runtime_in_seconds: The maximum runtime allowed in seconds. """ + DataQualityJobDefinitionStoppingCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_runtime_in_seconds=max_runtime_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_runtime_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_runtime_in_seconds is None and 'maxRuntimeInSeconds' in kwargs: + max_runtime_in_seconds = kwargs['maxRuntimeInSeconds'] + if max_runtime_in_seconds is not None: - pulumi.set(__self__, "max_runtime_in_seconds", max_runtime_in_seconds) + _setter("max_runtime_in_seconds", max_runtime_in_seconds) @property @pulumi.getter(name="maxRuntimeInSeconds") @@ -1371,11 +1810,32 @@ def __init__(__self__, *, :param str description: A description for the device. :param str iot_thing_name: Amazon Web Services Internet of Things (IoT) object name. """ - pulumi.set(__self__, "device_name", device_name) + DeviceDevice._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_name=device_name, + description=description, + iot_thing_name=iot_thing_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_name: Optional[str] = None, + description: Optional[str] = None, + iot_thing_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_name is None and 'deviceName' in kwargs: + device_name = kwargs['deviceName'] + if device_name is None: + raise TypeError("Missing 'device_name' argument") + if iot_thing_name is None and 'iotThingName' in kwargs: + iot_thing_name = kwargs['iotThingName'] + + _setter("device_name", device_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if iot_thing_name is not None: - pulumi.set(__self__, "iot_thing_name", iot_thing_name) + _setter("iot_thing_name", iot_thing_name) @property @pulumi.getter(name="deviceName") @@ -1430,9 +1890,28 @@ def __init__(__self__, *, :param str s3_output_location: The Amazon Simple Storage (S3) bucker URI. :param str kms_key_id: The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. """ - pulumi.set(__self__, "s3_output_location", s3_output_location) + DeviceFleetOutputConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_output_location=s3_output_location, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_output_location: Optional[str] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_output_location is None and 's3OutputLocation' in kwargs: + s3_output_location = kwargs['s3OutputLocation'] + if s3_output_location is None: + raise TypeError("Missing 's3_output_location' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("s3_output_location", s3_output_location) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="s3OutputLocation") @@ -1487,13 +1966,40 @@ def __init__(__self__, *, :param 'DomainDefaultSpaceSettingsKernelGatewayAppSettingsArgs' kernel_gateway_app_settings: The kernel gateway app settings. See Kernel Gateway App Settings below. :param Sequence[str] security_groups: The security groups for the Amazon Virtual Private Cloud that the space uses for communication. """ - pulumi.set(__self__, "execution_role", execution_role) + DomainDefaultSpaceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + jupyter_server_app_settings=jupyter_server_app_settings, + kernel_gateway_app_settings=kernel_gateway_app_settings, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[str] = None, + jupyter_server_app_settings: Optional['outputs.DomainDefaultSpaceSettingsJupyterServerAppSettings'] = None, + kernel_gateway_app_settings: Optional['outputs.DomainDefaultSpaceSettingsKernelGatewayAppSettings'] = None, + security_groups: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if jupyter_server_app_settings is None and 'jupyterServerAppSettings' in kwargs: + jupyter_server_app_settings = kwargs['jupyterServerAppSettings'] + if kernel_gateway_app_settings is None and 'kernelGatewayAppSettings' in kwargs: + kernel_gateway_app_settings = kwargs['kernelGatewayAppSettings'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("execution_role", execution_role) if jupyter_server_app_settings is not None: - pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + _setter("jupyter_server_app_settings", jupyter_server_app_settings) if kernel_gateway_app_settings is not None: - pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + _setter("kernel_gateway_app_settings", kernel_gateway_app_settings) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter(name="executionRole") @@ -1560,12 +2066,33 @@ def __init__(__self__, *, :param 'DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + DomainDefaultSpaceSettingsJupyterServerAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + code_repositories=code_repositories, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code_repositories: Optional[Sequence['outputs.DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepository']] = None, + default_resource_spec: Optional['outputs.DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec'] = None, + lifecycle_config_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_repositories is None and 'codeRepositories' in kwargs: + code_repositories = kwargs['codeRepositories'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if code_repositories is not None: - pulumi.set(__self__, "code_repositories", code_repositories) + _setter("code_repositories", code_repositories) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="codeRepositories") @@ -1616,7 +2143,22 @@ def __init__(__self__, *, """ :param str repository_url: The URL of the Git repository. """ - pulumi.set(__self__, "repository_url", repository_url) + DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + + _setter("repository_url", repository_url) @property @pulumi.getter(name="repositoryUrl") @@ -1663,14 +2205,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -1737,12 +2304,33 @@ def __init__(__self__, *, :param 'DomainDefaultSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + DomainDefaultSpaceSettingsKernelGatewayAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[Sequence['outputs.DomainDefaultSpaceSettingsKernelGatewayAppSettingsCustomImage']] = None, + default_resource_spec: Optional['outputs.DomainDefaultSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec'] = None, + lifecycle_config_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="customImages") @@ -1801,10 +2389,35 @@ def __init__(__self__, *, :param str image_name: The name of the Custom Image. :param int image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + DomainDefaultSpaceSettingsKernelGatewayAppSettingsCustomImage._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[str] = None, + image_name: Optional[str] = None, + image_version_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -1867,14 +2480,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -1965,23 +2603,70 @@ def __init__(__self__, *, :param 'DomainDefaultUserSettingsSharingSettingsArgs' sharing_settings: The sharing settings. See Sharing Settings below. :param 'DomainDefaultUserSettingsTensorBoardAppSettingsArgs' tensor_board_app_settings: The TensorBoard app settings. See TensorBoard App Settings below. """ - pulumi.set(__self__, "execution_role", execution_role) + DomainDefaultUserSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + canvas_app_settings=canvas_app_settings, + jupyter_server_app_settings=jupyter_server_app_settings, + kernel_gateway_app_settings=kernel_gateway_app_settings, + r_session_app_settings=r_session_app_settings, + r_studio_server_pro_app_settings=r_studio_server_pro_app_settings, + security_groups=security_groups, + sharing_settings=sharing_settings, + tensor_board_app_settings=tensor_board_app_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[str] = None, + canvas_app_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettings'] = None, + jupyter_server_app_settings: Optional['outputs.DomainDefaultUserSettingsJupyterServerAppSettings'] = None, + kernel_gateway_app_settings: Optional['outputs.DomainDefaultUserSettingsKernelGatewayAppSettings'] = None, + r_session_app_settings: Optional['outputs.DomainDefaultUserSettingsRSessionAppSettings'] = None, + r_studio_server_pro_app_settings: Optional['outputs.DomainDefaultUserSettingsRStudioServerProAppSettings'] = None, + security_groups: Optional[Sequence[str]] = None, + sharing_settings: Optional['outputs.DomainDefaultUserSettingsSharingSettings'] = None, + tensor_board_app_settings: Optional['outputs.DomainDefaultUserSettingsTensorBoardAppSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if canvas_app_settings is None and 'canvasAppSettings' in kwargs: + canvas_app_settings = kwargs['canvasAppSettings'] + if jupyter_server_app_settings is None and 'jupyterServerAppSettings' in kwargs: + jupyter_server_app_settings = kwargs['jupyterServerAppSettings'] + if kernel_gateway_app_settings is None and 'kernelGatewayAppSettings' in kwargs: + kernel_gateway_app_settings = kwargs['kernelGatewayAppSettings'] + if r_session_app_settings is None and 'rSessionAppSettings' in kwargs: + r_session_app_settings = kwargs['rSessionAppSettings'] + if r_studio_server_pro_app_settings is None and 'rStudioServerProAppSettings' in kwargs: + r_studio_server_pro_app_settings = kwargs['rStudioServerProAppSettings'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if sharing_settings is None and 'sharingSettings' in kwargs: + sharing_settings = kwargs['sharingSettings'] + if tensor_board_app_settings is None and 'tensorBoardAppSettings' in kwargs: + tensor_board_app_settings = kwargs['tensorBoardAppSettings'] + + _setter("execution_role", execution_role) if canvas_app_settings is not None: - pulumi.set(__self__, "canvas_app_settings", canvas_app_settings) + _setter("canvas_app_settings", canvas_app_settings) if jupyter_server_app_settings is not None: - pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + _setter("jupyter_server_app_settings", jupyter_server_app_settings) if kernel_gateway_app_settings is not None: - pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + _setter("kernel_gateway_app_settings", kernel_gateway_app_settings) if r_session_app_settings is not None: - pulumi.set(__self__, "r_session_app_settings", r_session_app_settings) + _setter("r_session_app_settings", r_session_app_settings) if r_studio_server_pro_app_settings is not None: - pulumi.set(__self__, "r_studio_server_pro_app_settings", r_studio_server_pro_app_settings) + _setter("r_studio_server_pro_app_settings", r_studio_server_pro_app_settings) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if sharing_settings is not None: - pulumi.set(__self__, "sharing_settings", sharing_settings) + _setter("sharing_settings", sharing_settings) if tensor_board_app_settings is not None: - pulumi.set(__self__, "tensor_board_app_settings", tensor_board_app_settings) + _setter("tensor_board_app_settings", tensor_board_app_settings) @property @pulumi.getter(name="executionRole") @@ -2088,12 +2773,33 @@ def __init__(__self__, *, :param 'DomainDefaultUserSettingsCanvasAppSettingsTimeSeriesForecastingSettingsArgs' time_series_forecasting_settings: Time series forecast settings for the Canvas app. See Time Series Forecasting Settings below. :param 'DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsArgs' workspace_settings: The workspace settings for the SageMaker Canvas application. See Workspace Settings below. """ + DomainDefaultUserSettingsCanvasAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_register_settings=model_register_settings, + time_series_forecasting_settings=time_series_forecasting_settings, + workspace_settings=workspace_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_register_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsModelRegisterSettings'] = None, + time_series_forecasting_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsTimeSeriesForecastingSettings'] = None, + workspace_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_register_settings is None and 'modelRegisterSettings' in kwargs: + model_register_settings = kwargs['modelRegisterSettings'] + if time_series_forecasting_settings is None and 'timeSeriesForecastingSettings' in kwargs: + time_series_forecasting_settings = kwargs['timeSeriesForecastingSettings'] + if workspace_settings is None and 'workspaceSettings' in kwargs: + workspace_settings = kwargs['workspaceSettings'] + if model_register_settings is not None: - pulumi.set(__self__, "model_register_settings", model_register_settings) + _setter("model_register_settings", model_register_settings) if time_series_forecasting_settings is not None: - pulumi.set(__self__, "time_series_forecasting_settings", time_series_forecasting_settings) + _setter("time_series_forecasting_settings", time_series_forecasting_settings) if workspace_settings is not None: - pulumi.set(__self__, "workspace_settings", workspace_settings) + _setter("workspace_settings", workspace_settings) @property @pulumi.getter(name="modelRegisterSettings") @@ -2146,10 +2852,25 @@ def __init__(__self__, *, :param str cross_account_model_register_role_arn: The Amazon Resource Name (ARN) of the SageMaker model registry account. Required only to register model versions created by a different SageMaker Canvas AWS account than the AWS account in which SageMaker model registry is set up. :param str status: Describes whether the integration to the model registry is enabled or disabled in the Canvas application. Valid values are `ENABLED` and `DISABLED`. """ + DomainDefaultUserSettingsCanvasAppSettingsModelRegisterSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + cross_account_model_register_role_arn=cross_account_model_register_role_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cross_account_model_register_role_arn: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cross_account_model_register_role_arn is None and 'crossAccountModelRegisterRoleArn' in kwargs: + cross_account_model_register_role_arn = kwargs['crossAccountModelRegisterRoleArn'] + if cross_account_model_register_role_arn is not None: - pulumi.set(__self__, "cross_account_model_register_role_arn", cross_account_model_register_role_arn) + _setter("cross_account_model_register_role_arn", cross_account_model_register_role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="crossAccountModelRegisterRoleArn") @@ -2194,10 +2915,25 @@ def __init__(__self__, *, :param str amazon_forecast_role_arn: The IAM role that Canvas passes to Amazon Forecast for time series forecasting. By default, Canvas uses the execution role specified in the UserProfile that launches the Canvas app. If an execution role is not specified in the UserProfile, Canvas uses the execution role specified in the Domain that owns the UserProfile. To allow time series forecasting, this IAM role should have the [AmazonSageMakerCanvasForecastAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasForecastAccess) policy attached and forecast.amazonaws.com added in the trust relationship as a service principal. :param str status: Describes whether time series forecasting is enabled or disabled in the Canvas app. Valid values are `ENABLED` and `DISABLED`. """ + DomainDefaultUserSettingsCanvasAppSettingsTimeSeriesForecastingSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_forecast_role_arn=amazon_forecast_role_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_forecast_role_arn: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_forecast_role_arn is None and 'amazonForecastRoleArn' in kwargs: + amazon_forecast_role_arn = kwargs['amazonForecastRoleArn'] + if amazon_forecast_role_arn is not None: - pulumi.set(__self__, "amazon_forecast_role_arn", amazon_forecast_role_arn) + _setter("amazon_forecast_role_arn", amazon_forecast_role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="amazonForecastRoleArn") @@ -2244,10 +2980,27 @@ def __init__(__self__, *, :param str s3_artifact_path: The Amazon S3 bucket used to store artifacts generated by Canvas. Updating the Amazon S3 location impacts existing configuration settings, and Canvas users no longer have access to their artifacts. Canvas users must log out and log back in to apply the new location. :param str s3_kms_key_id: The Amazon Web Services Key Management Service (KMS) encryption key ID that is used to encrypt artifacts generated by Canvas in the Amazon S3 bucket. """ + DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_artifact_path=s3_artifact_path, + s3_kms_key_id=s3_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_artifact_path: Optional[str] = None, + s3_kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_artifact_path is None and 's3ArtifactPath' in kwargs: + s3_artifact_path = kwargs['s3ArtifactPath'] + if s3_kms_key_id is None and 's3KmsKeyId' in kwargs: + s3_kms_key_id = kwargs['s3KmsKeyId'] + if s3_artifact_path is not None: - pulumi.set(__self__, "s3_artifact_path", s3_artifact_path) + _setter("s3_artifact_path", s3_artifact_path) if s3_kms_key_id is not None: - pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + _setter("s3_kms_key_id", s3_kms_key_id) @property @pulumi.getter(name="s3ArtifactPath") @@ -2298,12 +3051,33 @@ def __init__(__self__, *, :param 'DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + DomainDefaultUserSettingsJupyterServerAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + code_repositories=code_repositories, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code_repositories: Optional[Sequence['outputs.DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepository']] = None, + default_resource_spec: Optional['outputs.DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec'] = None, + lifecycle_config_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_repositories is None and 'codeRepositories' in kwargs: + code_repositories = kwargs['codeRepositories'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if code_repositories is not None: - pulumi.set(__self__, "code_repositories", code_repositories) + _setter("code_repositories", code_repositories) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="codeRepositories") @@ -2354,7 +3128,22 @@ def __init__(__self__, *, """ :param str repository_url: The URL of the Git repository. """ - pulumi.set(__self__, "repository_url", repository_url) + DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + + _setter("repository_url", repository_url) @property @pulumi.getter(name="repositoryUrl") @@ -2401,14 +3190,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -2475,12 +3289,33 @@ def __init__(__self__, *, :param 'DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + DomainDefaultUserSettingsKernelGatewayAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[Sequence['outputs.DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage']] = None, + default_resource_spec: Optional['outputs.DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec'] = None, + lifecycle_config_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="customImages") @@ -2539,10 +3374,35 @@ def __init__(__self__, *, :param str image_name: The name of the Custom Image. :param int image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[str] = None, + image_name: Optional[str] = None, + image_version_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -2605,14 +3465,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -2675,10 +3560,27 @@ def __init__(__self__, *, :param Sequence['DomainDefaultUserSettingsRSessionAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. :param 'DomainDefaultUserSettingsRSessionAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. """ + DomainDefaultUserSettingsRSessionAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[Sequence['outputs.DomainDefaultUserSettingsRSessionAppSettingsCustomImage']] = None, + default_resource_spec: Optional['outputs.DomainDefaultUserSettingsRSessionAppSettingsDefaultResourceSpec'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) @property @pulumi.getter(name="customImages") @@ -2729,10 +3631,35 @@ def __init__(__self__, *, :param str image_name: The name of the Custom Image. :param int image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + DomainDefaultUserSettingsRSessionAppSettingsCustomImage._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[str] = None, + image_name: Optional[str] = None, + image_version_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -2795,14 +3722,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultUserSettingsRSessionAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -2865,10 +3817,27 @@ def __init__(__self__, *, :param str access_status: Indicates whether the current user has access to the RStudioServerPro app. Valid values are `ENABLED` and `DISABLED`. :param str user_group: The level of permissions that the user has within the RStudioServerPro app. This value defaults to `R_STUDIO_USER`. The `R_STUDIO_ADMIN` value allows the user access to the RStudio Administrative Dashboard. Valid values are `R_STUDIO_USER` and `R_STUDIO_ADMIN`. """ + DomainDefaultUserSettingsRStudioServerProAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_status=access_status, + user_group=user_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_status: Optional[str] = None, + user_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_status is None and 'accessStatus' in kwargs: + access_status = kwargs['accessStatus'] + if user_group is None and 'userGroup' in kwargs: + user_group = kwargs['userGroup'] + if access_status is not None: - pulumi.set(__self__, "access_status", access_status) + _setter("access_status", access_status) if user_group is not None: - pulumi.set(__self__, "user_group", user_group) + _setter("user_group", user_group) @property @pulumi.getter(name="accessStatus") @@ -2919,12 +3888,33 @@ def __init__(__self__, *, :param str s3_kms_key_id: When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. :param str s3_output_path: When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. """ + DomainDefaultUserSettingsSharingSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + notebook_output_option=notebook_output_option, + s3_kms_key_id=s3_kms_key_id, + s3_output_path=s3_output_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notebook_output_option: Optional[str] = None, + s3_kms_key_id: Optional[str] = None, + s3_output_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notebook_output_option is None and 'notebookOutputOption' in kwargs: + notebook_output_option = kwargs['notebookOutputOption'] + if s3_kms_key_id is None and 's3KmsKeyId' in kwargs: + s3_kms_key_id = kwargs['s3KmsKeyId'] + if s3_output_path is None and 's3OutputPath' in kwargs: + s3_output_path = kwargs['s3OutputPath'] + if notebook_output_option is not None: - pulumi.set(__self__, "notebook_output_option", notebook_output_option) + _setter("notebook_output_option", notebook_output_option) if s3_kms_key_id is not None: - pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + _setter("s3_kms_key_id", s3_kms_key_id) if s3_output_path is not None: - pulumi.set(__self__, "s3_output_path", s3_output_path) + _setter("s3_output_path", s3_output_path) @property @pulumi.getter(name="notebookOutputOption") @@ -2975,8 +3965,21 @@ def __init__(__self__, *, """ :param 'DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. """ + DomainDefaultUserSettingsTensorBoardAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_resource_spec=default_resource_spec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_resource_spec: Optional['outputs.DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) @property @pulumi.getter(name="defaultResourceSpec") @@ -3023,14 +4026,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -3097,12 +4125,33 @@ def __init__(__self__, *, :param 'DomainDomainSettingsRStudioServerProDomainSettingsArgs' r_studio_server_pro_domain_settings: A collection of settings that configure the RStudioServerPro Domain-level app. see RStudioServerProDomainSettings below. :param Sequence[str] security_group_ids: The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps. """ + DomainDomainSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role_identity_config=execution_role_identity_config, + r_studio_server_pro_domain_settings=r_studio_server_pro_domain_settings, + security_group_ids=security_group_ids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role_identity_config: Optional[str] = None, + r_studio_server_pro_domain_settings: Optional['outputs.DomainDomainSettingsRStudioServerProDomainSettings'] = None, + security_group_ids: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role_identity_config is None and 'executionRoleIdentityConfig' in kwargs: + execution_role_identity_config = kwargs['executionRoleIdentityConfig'] + if r_studio_server_pro_domain_settings is None and 'rStudioServerProDomainSettings' in kwargs: + r_studio_server_pro_domain_settings = kwargs['rStudioServerProDomainSettings'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if execution_role_identity_config is not None: - pulumi.set(__self__, "execution_role_identity_config", execution_role_identity_config) + _setter("execution_role_identity_config", execution_role_identity_config) if r_studio_server_pro_domain_settings is not None: - pulumi.set(__self__, "r_studio_server_pro_domain_settings", r_studio_server_pro_domain_settings) + _setter("r_studio_server_pro_domain_settings", r_studio_server_pro_domain_settings) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) @property @pulumi.getter(name="executionRoleIdentityConfig") @@ -3165,13 +4214,40 @@ def __init__(__self__, *, :param str r_studio_connect_url: A URL pointing to an RStudio Connect server. :param str r_studio_package_manager_url: A URL pointing to an RStudio Package Manager server. """ - pulumi.set(__self__, "domain_execution_role_arn", domain_execution_role_arn) + DomainDomainSettingsRStudioServerProDomainSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_execution_role_arn=domain_execution_role_arn, + default_resource_spec=default_resource_spec, + r_studio_connect_url=r_studio_connect_url, + r_studio_package_manager_url=r_studio_package_manager_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_execution_role_arn: Optional[str] = None, + default_resource_spec: Optional['outputs.DomainDomainSettingsRStudioServerProDomainSettingsDefaultResourceSpec'] = None, + r_studio_connect_url: Optional[str] = None, + r_studio_package_manager_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_execution_role_arn is None and 'domainExecutionRoleArn' in kwargs: + domain_execution_role_arn = kwargs['domainExecutionRoleArn'] + if domain_execution_role_arn is None: + raise TypeError("Missing 'domain_execution_role_arn' argument") + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if r_studio_connect_url is None and 'rStudioConnectUrl' in kwargs: + r_studio_connect_url = kwargs['rStudioConnectUrl'] + if r_studio_package_manager_url is None and 'rStudioPackageManagerUrl' in kwargs: + r_studio_package_manager_url = kwargs['rStudioPackageManagerUrl'] + + _setter("domain_execution_role_arn", domain_execution_role_arn) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if r_studio_connect_url is not None: - pulumi.set(__self__, "r_studio_connect_url", r_studio_connect_url) + _setter("r_studio_connect_url", r_studio_connect_url) if r_studio_package_manager_url is not None: - pulumi.set(__self__, "r_studio_package_manager_url", r_studio_package_manager_url) + _setter("r_studio_package_manager_url", r_studio_package_manager_url) @property @pulumi.getter(name="domainExecutionRoleArn") @@ -3242,14 +4318,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The ARN of the SageMaker image that the image version belongs to. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + DomainDomainSettingsRStudioServerProDomainSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -3308,8 +4409,21 @@ def __init__(__self__, *, """ :param str home_efs_file_system: The retention policy for data stored on an Amazon Elastic File System (EFS) volume. Valid values are `Retain` or `Delete`. Default value is `Retain`. """ + DomainRetentionPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + home_efs_file_system=home_efs_file_system, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + home_efs_file_system: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if home_efs_file_system is None and 'homeEfsFileSystem' in kwargs: + home_efs_file_system = kwargs['homeEfsFileSystem'] + if home_efs_file_system is not None: - pulumi.set(__self__, "home_efs_file_system", home_efs_file_system) + _setter("home_efs_file_system", home_efs_file_system) @property @pulumi.getter(name="homeEfsFileSystem") @@ -3348,9 +4462,28 @@ def __init__(__self__, *, :param 'EndpointConfigurationAsyncInferenceConfigOutputConfigArgs' output_config: Specifies the configuration for asynchronous inference invocation outputs. :param 'EndpointConfigurationAsyncInferenceConfigClientConfigArgs' client_config: Configures the behavior of the client used by Amazon SageMaker to interact with the model container during asynchronous inference. """ - pulumi.set(__self__, "output_config", output_config) + EndpointConfigurationAsyncInferenceConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + output_config=output_config, + client_config=client_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + output_config: Optional['outputs.EndpointConfigurationAsyncInferenceConfigOutputConfig'] = None, + client_config: Optional['outputs.EndpointConfigurationAsyncInferenceConfigClientConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if output_config is None and 'outputConfig' in kwargs: + output_config = kwargs['outputConfig'] + if output_config is None: + raise TypeError("Missing 'output_config' argument") + if client_config is None and 'clientConfig' in kwargs: + client_config = kwargs['clientConfig'] + + _setter("output_config", output_config) if client_config is not None: - pulumi.set(__self__, "client_config", client_config) + _setter("client_config", client_config) @property @pulumi.getter(name="outputConfig") @@ -3393,8 +4526,21 @@ def __init__(__self__, *, """ :param int max_concurrent_invocations_per_instance: The maximum number of concurrent requests sent by the SageMaker client to the model container. If no value is provided, Amazon SageMaker will choose an optimal value for you. """ + EndpointConfigurationAsyncInferenceConfigClientConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_concurrent_invocations_per_instance=max_concurrent_invocations_per_instance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_concurrent_invocations_per_instance: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_concurrent_invocations_per_instance is None and 'maxConcurrentInvocationsPerInstance' in kwargs: + max_concurrent_invocations_per_instance = kwargs['maxConcurrentInvocationsPerInstance'] + if max_concurrent_invocations_per_instance is not None: - pulumi.set(__self__, "max_concurrent_invocations_per_instance", max_concurrent_invocations_per_instance) + _setter("max_concurrent_invocations_per_instance", max_concurrent_invocations_per_instance) @property @pulumi.getter(name="maxConcurrentInvocationsPerInstance") @@ -3441,13 +4587,40 @@ def __init__(__self__, *, :param 'EndpointConfigurationAsyncInferenceConfigOutputConfigNotificationConfigArgs' notification_config: Specifies the configuration for notifications of inference results for asynchronous inference. :param str s3_failure_path: The Amazon S3 location to upload failure inference responses to. """ - pulumi.set(__self__, "s3_output_path", s3_output_path) + EndpointConfigurationAsyncInferenceConfigOutputConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_output_path=s3_output_path, + kms_key_id=kms_key_id, + notification_config=notification_config, + s3_failure_path=s3_failure_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_output_path: Optional[str] = None, + kms_key_id: Optional[str] = None, + notification_config: Optional['outputs.EndpointConfigurationAsyncInferenceConfigOutputConfigNotificationConfig'] = None, + s3_failure_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_output_path is None and 's3OutputPath' in kwargs: + s3_output_path = kwargs['s3OutputPath'] + if s3_output_path is None: + raise TypeError("Missing 's3_output_path' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if notification_config is None and 'notificationConfig' in kwargs: + notification_config = kwargs['notificationConfig'] + if s3_failure_path is None and 's3FailurePath' in kwargs: + s3_failure_path = kwargs['s3FailurePath'] + + _setter("s3_output_path", s3_output_path) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if notification_config is not None: - pulumi.set(__self__, "notification_config", notification_config) + _setter("notification_config", notification_config) if s3_failure_path is not None: - pulumi.set(__self__, "s3_failure_path", s3_failure_path) + _setter("s3_failure_path", s3_failure_path) @property @pulumi.getter(name="s3OutputPath") @@ -3514,12 +4687,33 @@ def __init__(__self__, *, :param Sequence[str] include_inference_response_ins: The Amazon SNS topics where you want the inference response to be included. Valid values are `SUCCESS_NOTIFICATION_TOPIC` and `ERROR_NOTIFICATION_TOPIC`. :param str success_topic: Amazon SNS topic to post a notification to when inference completes successfully. If no topic is provided, no notification is sent on success. """ + EndpointConfigurationAsyncInferenceConfigOutputConfigNotificationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + error_topic=error_topic, + include_inference_response_ins=include_inference_response_ins, + success_topic=success_topic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + error_topic: Optional[str] = None, + include_inference_response_ins: Optional[Sequence[str]] = None, + success_topic: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if error_topic is None and 'errorTopic' in kwargs: + error_topic = kwargs['errorTopic'] + if include_inference_response_ins is None and 'includeInferenceResponseIns' in kwargs: + include_inference_response_ins = kwargs['includeInferenceResponseIns'] + if success_topic is None and 'successTopic' in kwargs: + success_topic = kwargs['successTopic'] + if error_topic is not None: - pulumi.set(__self__, "error_topic", error_topic) + _setter("error_topic", error_topic) if include_inference_response_ins is not None: - pulumi.set(__self__, "include_inference_response_ins", include_inference_response_ins) + _setter("include_inference_response_ins", include_inference_response_ins) if success_topic is not None: - pulumi.set(__self__, "success_topic", success_topic) + _setter("success_topic", success_topic) @property @pulumi.getter(name="errorTopic") @@ -3590,15 +4784,54 @@ def __init__(__self__, *, :param bool enable_capture: Flag to enable data capture. Defaults to `false`. :param str kms_key_id: Amazon Resource Name (ARN) of a AWS Key Management Service key that Amazon SageMaker uses to encrypt the captured data on Amazon S3. """ - pulumi.set(__self__, "capture_options", capture_options) - pulumi.set(__self__, "destination_s3_uri", destination_s3_uri) - pulumi.set(__self__, "initial_sampling_percentage", initial_sampling_percentage) + EndpointConfigurationDataCaptureConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + capture_options=capture_options, + destination_s3_uri=destination_s3_uri, + initial_sampling_percentage=initial_sampling_percentage, + capture_content_type_header=capture_content_type_header, + enable_capture=enable_capture, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capture_options: Optional[Sequence['outputs.EndpointConfigurationDataCaptureConfigCaptureOption']] = None, + destination_s3_uri: Optional[str] = None, + initial_sampling_percentage: Optional[int] = None, + capture_content_type_header: Optional['outputs.EndpointConfigurationDataCaptureConfigCaptureContentTypeHeader'] = None, + enable_capture: Optional[bool] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capture_options is None and 'captureOptions' in kwargs: + capture_options = kwargs['captureOptions'] + if capture_options is None: + raise TypeError("Missing 'capture_options' argument") + if destination_s3_uri is None and 'destinationS3Uri' in kwargs: + destination_s3_uri = kwargs['destinationS3Uri'] + if destination_s3_uri is None: + raise TypeError("Missing 'destination_s3_uri' argument") + if initial_sampling_percentage is None and 'initialSamplingPercentage' in kwargs: + initial_sampling_percentage = kwargs['initialSamplingPercentage'] + if initial_sampling_percentage is None: + raise TypeError("Missing 'initial_sampling_percentage' argument") + if capture_content_type_header is None and 'captureContentTypeHeader' in kwargs: + capture_content_type_header = kwargs['captureContentTypeHeader'] + if enable_capture is None and 'enableCapture' in kwargs: + enable_capture = kwargs['enableCapture'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("capture_options", capture_options) + _setter("destination_s3_uri", destination_s3_uri) + _setter("initial_sampling_percentage", initial_sampling_percentage) if capture_content_type_header is not None: - pulumi.set(__self__, "capture_content_type_header", capture_content_type_header) + _setter("capture_content_type_header", capture_content_type_header) if enable_capture is not None: - pulumi.set(__self__, "enable_capture", enable_capture) + _setter("enable_capture", enable_capture) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="captureOptions") @@ -3677,10 +4910,27 @@ def __init__(__self__, *, :param Sequence[str] csv_content_types: The CSV content type headers to capture. :param Sequence[str] json_content_types: The JSON content type headers to capture. """ + EndpointConfigurationDataCaptureConfigCaptureContentTypeHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + csv_content_types=csv_content_types, + json_content_types=json_content_types, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + csv_content_types: Optional[Sequence[str]] = None, + json_content_types: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if csv_content_types is None and 'csvContentTypes' in kwargs: + csv_content_types = kwargs['csvContentTypes'] + if json_content_types is None and 'jsonContentTypes' in kwargs: + json_content_types = kwargs['jsonContentTypes'] + if csv_content_types is not None: - pulumi.set(__self__, "csv_content_types", csv_content_types) + _setter("csv_content_types", csv_content_types) if json_content_types is not None: - pulumi.set(__self__, "json_content_types", json_content_types) + _setter("json_content_types", json_content_types) @property @pulumi.getter(name="csvContentTypes") @@ -3723,7 +4973,22 @@ def __init__(__self__, *, """ :param str capture_mode: Specifies the data to be captured. Should be one of `Input` or `Output`. """ - pulumi.set(__self__, "capture_mode", capture_mode) + EndpointConfigurationDataCaptureConfigCaptureOption._configure( + lambda key, value: pulumi.set(__self__, key, value), + capture_mode=capture_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capture_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capture_mode is None and 'captureMode' in kwargs: + capture_mode = kwargs['captureMode'] + if capture_mode is None: + raise TypeError("Missing 'capture_mode' argument") + + _setter("capture_mode", capture_mode) @property @pulumi.getter(name="captureMode") @@ -3802,29 +5067,88 @@ def __init__(__self__, *, :param str variant_name: The name of the variant. If omitted, this provider will assign a random, unique name. :param int volume_size_in_gb: The size, in GB, of the ML storage volume attached to individual inference instance associated with the production variant. Valid values between `1` and `512`. """ - pulumi.set(__self__, "model_name", model_name) + EndpointConfigurationProductionVariant._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_name=model_name, + accelerator_type=accelerator_type, + container_startup_health_check_timeout_in_seconds=container_startup_health_check_timeout_in_seconds, + core_dump_config=core_dump_config, + enable_ssm_access=enable_ssm_access, + initial_instance_count=initial_instance_count, + initial_variant_weight=initial_variant_weight, + instance_type=instance_type, + model_data_download_timeout_in_seconds=model_data_download_timeout_in_seconds, + serverless_config=serverless_config, + variant_name=variant_name, + volume_size_in_gb=volume_size_in_gb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_name: Optional[str] = None, + accelerator_type: Optional[str] = None, + container_startup_health_check_timeout_in_seconds: Optional[int] = None, + core_dump_config: Optional['outputs.EndpointConfigurationProductionVariantCoreDumpConfig'] = None, + enable_ssm_access: Optional[bool] = None, + initial_instance_count: Optional[int] = None, + initial_variant_weight: Optional[float] = None, + instance_type: Optional[str] = None, + model_data_download_timeout_in_seconds: Optional[int] = None, + serverless_config: Optional['outputs.EndpointConfigurationProductionVariantServerlessConfig'] = None, + variant_name: Optional[str] = None, + volume_size_in_gb: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_name is None and 'modelName' in kwargs: + model_name = kwargs['modelName'] + if model_name is None: + raise TypeError("Missing 'model_name' argument") + if accelerator_type is None and 'acceleratorType' in kwargs: + accelerator_type = kwargs['acceleratorType'] + if container_startup_health_check_timeout_in_seconds is None and 'containerStartupHealthCheckTimeoutInSeconds' in kwargs: + container_startup_health_check_timeout_in_seconds = kwargs['containerStartupHealthCheckTimeoutInSeconds'] + if core_dump_config is None and 'coreDumpConfig' in kwargs: + core_dump_config = kwargs['coreDumpConfig'] + if enable_ssm_access is None and 'enableSsmAccess' in kwargs: + enable_ssm_access = kwargs['enableSsmAccess'] + if initial_instance_count is None and 'initialInstanceCount' in kwargs: + initial_instance_count = kwargs['initialInstanceCount'] + if initial_variant_weight is None and 'initialVariantWeight' in kwargs: + initial_variant_weight = kwargs['initialVariantWeight'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if model_data_download_timeout_in_seconds is None and 'modelDataDownloadTimeoutInSeconds' in kwargs: + model_data_download_timeout_in_seconds = kwargs['modelDataDownloadTimeoutInSeconds'] + if serverless_config is None and 'serverlessConfig' in kwargs: + serverless_config = kwargs['serverlessConfig'] + if variant_name is None and 'variantName' in kwargs: + variant_name = kwargs['variantName'] + if volume_size_in_gb is None and 'volumeSizeInGb' in kwargs: + volume_size_in_gb = kwargs['volumeSizeInGb'] + + _setter("model_name", model_name) if accelerator_type is not None: - pulumi.set(__self__, "accelerator_type", accelerator_type) + _setter("accelerator_type", accelerator_type) if container_startup_health_check_timeout_in_seconds is not None: - pulumi.set(__self__, "container_startup_health_check_timeout_in_seconds", container_startup_health_check_timeout_in_seconds) + _setter("container_startup_health_check_timeout_in_seconds", container_startup_health_check_timeout_in_seconds) if core_dump_config is not None: - pulumi.set(__self__, "core_dump_config", core_dump_config) + _setter("core_dump_config", core_dump_config) if enable_ssm_access is not None: - pulumi.set(__self__, "enable_ssm_access", enable_ssm_access) + _setter("enable_ssm_access", enable_ssm_access) if initial_instance_count is not None: - pulumi.set(__self__, "initial_instance_count", initial_instance_count) + _setter("initial_instance_count", initial_instance_count) if initial_variant_weight is not None: - pulumi.set(__self__, "initial_variant_weight", initial_variant_weight) + _setter("initial_variant_weight", initial_variant_weight) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if model_data_download_timeout_in_seconds is not None: - pulumi.set(__self__, "model_data_download_timeout_in_seconds", model_data_download_timeout_in_seconds) + _setter("model_data_download_timeout_in_seconds", model_data_download_timeout_in_seconds) if serverless_config is not None: - pulumi.set(__self__, "serverless_config", serverless_config) + _setter("serverless_config", serverless_config) if variant_name is not None: - pulumi.set(__self__, "variant_name", variant_name) + _setter("variant_name", variant_name) if volume_size_in_gb is not None: - pulumi.set(__self__, "volume_size_in_gb", volume_size_in_gb) + _setter("volume_size_in_gb", volume_size_in_gb) @property @pulumi.getter(name="modelName") @@ -3951,9 +5275,28 @@ def __init__(__self__, *, :param str destination_s3_uri: The Amazon S3 bucket to send the core dump to. :param str kms_key_id: The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that SageMaker uses to encrypt the core dump data at rest using Amazon S3 server-side encryption. """ - pulumi.set(__self__, "destination_s3_uri", destination_s3_uri) + EndpointConfigurationProductionVariantCoreDumpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_s3_uri=destination_s3_uri, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_s3_uri: Optional[str] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_s3_uri is None and 'destinationS3Uri' in kwargs: + destination_s3_uri = kwargs['destinationS3Uri'] + if destination_s3_uri is None: + raise TypeError("Missing 'destination_s3_uri' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("destination_s3_uri", destination_s3_uri) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="destinationS3Uri") @@ -4004,10 +5347,35 @@ def __init__(__self__, *, :param int memory_size_in_mb: The memory size of your serverless endpoint. Valid values are in 1 GB increments: `1024` MB, `2048` MB, `3072` MB, `4096` MB, `5120` MB, or `6144` MB. :param int provisioned_concurrency: The amount of provisioned concurrency to allocate for the serverless endpoint. Should be less than or equal to `max_concurrency`. Valid values are between `1` and `200`. """ - pulumi.set(__self__, "max_concurrency", max_concurrency) - pulumi.set(__self__, "memory_size_in_mb", memory_size_in_mb) + EndpointConfigurationProductionVariantServerlessConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_concurrency=max_concurrency, + memory_size_in_mb=memory_size_in_mb, + provisioned_concurrency=provisioned_concurrency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_concurrency: Optional[int] = None, + memory_size_in_mb: Optional[int] = None, + provisioned_concurrency: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_concurrency is None: + raise TypeError("Missing 'max_concurrency' argument") + if memory_size_in_mb is None and 'memorySizeInMb' in kwargs: + memory_size_in_mb = kwargs['memorySizeInMb'] + if memory_size_in_mb is None: + raise TypeError("Missing 'memory_size_in_mb' argument") + if provisioned_concurrency is None and 'provisionedConcurrency' in kwargs: + provisioned_concurrency = kwargs['provisionedConcurrency'] + + _setter("max_concurrency", max_concurrency) + _setter("memory_size_in_mb", memory_size_in_mb) if provisioned_concurrency is not None: - pulumi.set(__self__, "provisioned_concurrency", provisioned_concurrency) + _setter("provisioned_concurrency", provisioned_concurrency) @property @pulumi.getter(name="maxConcurrency") @@ -4102,29 +5470,88 @@ def __init__(__self__, *, :param str variant_name: The name of the variant. If omitted, this provider will assign a random, unique name. :param int volume_size_in_gb: The size, in GB, of the ML storage volume attached to individual inference instance associated with the production variant. Valid values between `1` and `512`. """ - pulumi.set(__self__, "model_name", model_name) + EndpointConfigurationShadowProductionVariant._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_name=model_name, + accelerator_type=accelerator_type, + container_startup_health_check_timeout_in_seconds=container_startup_health_check_timeout_in_seconds, + core_dump_config=core_dump_config, + enable_ssm_access=enable_ssm_access, + initial_instance_count=initial_instance_count, + initial_variant_weight=initial_variant_weight, + instance_type=instance_type, + model_data_download_timeout_in_seconds=model_data_download_timeout_in_seconds, + serverless_config=serverless_config, + variant_name=variant_name, + volume_size_in_gb=volume_size_in_gb, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_name: Optional[str] = None, + accelerator_type: Optional[str] = None, + container_startup_health_check_timeout_in_seconds: Optional[int] = None, + core_dump_config: Optional['outputs.EndpointConfigurationShadowProductionVariantCoreDumpConfig'] = None, + enable_ssm_access: Optional[bool] = None, + initial_instance_count: Optional[int] = None, + initial_variant_weight: Optional[float] = None, + instance_type: Optional[str] = None, + model_data_download_timeout_in_seconds: Optional[int] = None, + serverless_config: Optional['outputs.EndpointConfigurationShadowProductionVariantServerlessConfig'] = None, + variant_name: Optional[str] = None, + volume_size_in_gb: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_name is None and 'modelName' in kwargs: + model_name = kwargs['modelName'] + if model_name is None: + raise TypeError("Missing 'model_name' argument") + if accelerator_type is None and 'acceleratorType' in kwargs: + accelerator_type = kwargs['acceleratorType'] + if container_startup_health_check_timeout_in_seconds is None and 'containerStartupHealthCheckTimeoutInSeconds' in kwargs: + container_startup_health_check_timeout_in_seconds = kwargs['containerStartupHealthCheckTimeoutInSeconds'] + if core_dump_config is None and 'coreDumpConfig' in kwargs: + core_dump_config = kwargs['coreDumpConfig'] + if enable_ssm_access is None and 'enableSsmAccess' in kwargs: + enable_ssm_access = kwargs['enableSsmAccess'] + if initial_instance_count is None and 'initialInstanceCount' in kwargs: + initial_instance_count = kwargs['initialInstanceCount'] + if initial_variant_weight is None and 'initialVariantWeight' in kwargs: + initial_variant_weight = kwargs['initialVariantWeight'] + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if model_data_download_timeout_in_seconds is None and 'modelDataDownloadTimeoutInSeconds' in kwargs: + model_data_download_timeout_in_seconds = kwargs['modelDataDownloadTimeoutInSeconds'] + if serverless_config is None and 'serverlessConfig' in kwargs: + serverless_config = kwargs['serverlessConfig'] + if variant_name is None and 'variantName' in kwargs: + variant_name = kwargs['variantName'] + if volume_size_in_gb is None and 'volumeSizeInGb' in kwargs: + volume_size_in_gb = kwargs['volumeSizeInGb'] + + _setter("model_name", model_name) if accelerator_type is not None: - pulumi.set(__self__, "accelerator_type", accelerator_type) + _setter("accelerator_type", accelerator_type) if container_startup_health_check_timeout_in_seconds is not None: - pulumi.set(__self__, "container_startup_health_check_timeout_in_seconds", container_startup_health_check_timeout_in_seconds) + _setter("container_startup_health_check_timeout_in_seconds", container_startup_health_check_timeout_in_seconds) if core_dump_config is not None: - pulumi.set(__self__, "core_dump_config", core_dump_config) + _setter("core_dump_config", core_dump_config) if enable_ssm_access is not None: - pulumi.set(__self__, "enable_ssm_access", enable_ssm_access) + _setter("enable_ssm_access", enable_ssm_access) if initial_instance_count is not None: - pulumi.set(__self__, "initial_instance_count", initial_instance_count) + _setter("initial_instance_count", initial_instance_count) if initial_variant_weight is not None: - pulumi.set(__self__, "initial_variant_weight", initial_variant_weight) + _setter("initial_variant_weight", initial_variant_weight) if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if model_data_download_timeout_in_seconds is not None: - pulumi.set(__self__, "model_data_download_timeout_in_seconds", model_data_download_timeout_in_seconds) + _setter("model_data_download_timeout_in_seconds", model_data_download_timeout_in_seconds) if serverless_config is not None: - pulumi.set(__self__, "serverless_config", serverless_config) + _setter("serverless_config", serverless_config) if variant_name is not None: - pulumi.set(__self__, "variant_name", variant_name) + _setter("variant_name", variant_name) if volume_size_in_gb is not None: - pulumi.set(__self__, "volume_size_in_gb", volume_size_in_gb) + _setter("volume_size_in_gb", volume_size_in_gb) @property @pulumi.getter(name="modelName") @@ -4251,8 +5678,29 @@ def __init__(__self__, *, :param str destination_s3_uri: The Amazon S3 bucket to send the core dump to. :param str kms_key_id: The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that SageMaker uses to encrypt the core dump data at rest using Amazon S3 server-side encryption. """ - pulumi.set(__self__, "destination_s3_uri", destination_s3_uri) - pulumi.set(__self__, "kms_key_id", kms_key_id) + EndpointConfigurationShadowProductionVariantCoreDumpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_s3_uri=destination_s3_uri, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_s3_uri: Optional[str] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_s3_uri is None and 'destinationS3Uri' in kwargs: + destination_s3_uri = kwargs['destinationS3Uri'] + if destination_s3_uri is None: + raise TypeError("Missing 'destination_s3_uri' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is None: + raise TypeError("Missing 'kms_key_id' argument") + + _setter("destination_s3_uri", destination_s3_uri) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="destinationS3Uri") @@ -4303,10 +5751,35 @@ def __init__(__self__, *, :param int memory_size_in_mb: The memory size of your serverless endpoint. Valid values are in 1 GB increments: `1024` MB, `2048` MB, `3072` MB, `4096` MB, `5120` MB, or `6144` MB. :param int provisioned_concurrency: The amount of provisioned concurrency to allocate for the serverless endpoint. Should be less than or equal to `max_concurrency`. Valid values are between `1` and `200`. """ - pulumi.set(__self__, "max_concurrency", max_concurrency) - pulumi.set(__self__, "memory_size_in_mb", memory_size_in_mb) + EndpointConfigurationShadowProductionVariantServerlessConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_concurrency=max_concurrency, + memory_size_in_mb=memory_size_in_mb, + provisioned_concurrency=provisioned_concurrency, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_concurrency: Optional[int] = None, + memory_size_in_mb: Optional[int] = None, + provisioned_concurrency: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_concurrency is None: + raise TypeError("Missing 'max_concurrency' argument") + if memory_size_in_mb is None and 'memorySizeInMb' in kwargs: + memory_size_in_mb = kwargs['memorySizeInMb'] + if memory_size_in_mb is None: + raise TypeError("Missing 'memory_size_in_mb' argument") + if provisioned_concurrency is None and 'provisionedConcurrency' in kwargs: + provisioned_concurrency = kwargs['provisionedConcurrency'] + + _setter("max_concurrency", max_concurrency) + _setter("memory_size_in_mb", memory_size_in_mb) if provisioned_concurrency is not None: - pulumi.set(__self__, "provisioned_concurrency", provisioned_concurrency) + _setter("provisioned_concurrency", provisioned_concurrency) @property @pulumi.getter(name="maxConcurrency") @@ -4365,12 +5838,33 @@ def __init__(__self__, *, :param 'EndpointDeploymentConfigBlueGreenUpdatePolicyArgs' blue_green_update_policy: Update policy for a blue/green deployment. If this update policy is specified, SageMaker creates a new fleet during the deployment while maintaining the old fleet. SageMaker flips traffic to the new fleet according to the specified traffic routing configuration. Only one update policy should be used in the deployment configuration. If no update policy is specified, SageMaker uses a blue/green deployment strategy with all at once traffic shifting by default. See Blue Green Update Config. :param 'EndpointDeploymentConfigRollingUpdatePolicyArgs' rolling_update_policy: Specifies a rolling deployment strategy for updating a SageMaker endpoint. See Rolling Update Policy. """ + EndpointDeploymentConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_rollback_configuration=auto_rollback_configuration, + blue_green_update_policy=blue_green_update_policy, + rolling_update_policy=rolling_update_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_rollback_configuration: Optional['outputs.EndpointDeploymentConfigAutoRollbackConfiguration'] = None, + blue_green_update_policy: Optional['outputs.EndpointDeploymentConfigBlueGreenUpdatePolicy'] = None, + rolling_update_policy: Optional['outputs.EndpointDeploymentConfigRollingUpdatePolicy'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_rollback_configuration is None and 'autoRollbackConfiguration' in kwargs: + auto_rollback_configuration = kwargs['autoRollbackConfiguration'] + if blue_green_update_policy is None and 'blueGreenUpdatePolicy' in kwargs: + blue_green_update_policy = kwargs['blueGreenUpdatePolicy'] + if rolling_update_policy is None and 'rollingUpdatePolicy' in kwargs: + rolling_update_policy = kwargs['rollingUpdatePolicy'] + if auto_rollback_configuration is not None: - pulumi.set(__self__, "auto_rollback_configuration", auto_rollback_configuration) + _setter("auto_rollback_configuration", auto_rollback_configuration) if blue_green_update_policy is not None: - pulumi.set(__self__, "blue_green_update_policy", blue_green_update_policy) + _setter("blue_green_update_policy", blue_green_update_policy) if rolling_update_policy is not None: - pulumi.set(__self__, "rolling_update_policy", rolling_update_policy) + _setter("rolling_update_policy", rolling_update_policy) @property @pulumi.getter(name="autoRollbackConfiguration") @@ -4404,8 +5898,19 @@ def __init__(__self__, *, """ :param Sequence['EndpointDeploymentConfigAutoRollbackConfigurationAlarmArgs'] alarms: List of CloudWatch alarms in your account that are configured to monitor metrics on an endpoint. If any alarms are tripped during a deployment, SageMaker rolls back the deployment. See Alarms. """ + EndpointDeploymentConfigAutoRollbackConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarms=alarms, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarms: Optional[Sequence['outputs.EndpointDeploymentConfigAutoRollbackConfigurationAlarm']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarms is not None: - pulumi.set(__self__, "alarms", alarms) + _setter("alarms", alarms) @property @pulumi.getter @@ -4440,7 +5945,22 @@ def __init__(__self__, *, """ :param str alarm_name: The name of a CloudWatch alarm in your account. """ - pulumi.set(__self__, "alarm_name", alarm_name) + EndpointDeploymentConfigAutoRollbackConfigurationAlarm._configure( + lambda key, value: pulumi.set(__self__, key, value), + alarm_name=alarm_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alarm_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alarm_name is None and 'alarmName' in kwargs: + alarm_name = kwargs['alarmName'] + if alarm_name is None: + raise TypeError("Missing 'alarm_name' argument") + + _setter("alarm_name", alarm_name) @property @pulumi.getter(name="alarmName") @@ -4483,11 +6003,34 @@ def __init__(__self__, *, :param int maximum_execution_timeout_in_seconds: Maximum execution timeout for the deployment. Note that the timeout value should be larger than the total waiting time specified in `termination_wait_in_seconds` and `wait_interval_in_seconds`. Valid values are between `600` and `14400`. :param int termination_wait_in_seconds: Additional waiting time in seconds after the completion of an endpoint deployment before terminating the old endpoint fleet. Default is `0`. Valid values are between `0` and `3600`. """ - pulumi.set(__self__, "traffic_routing_configuration", traffic_routing_configuration) + EndpointDeploymentConfigBlueGreenUpdatePolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + traffic_routing_configuration=traffic_routing_configuration, + maximum_execution_timeout_in_seconds=maximum_execution_timeout_in_seconds, + termination_wait_in_seconds=termination_wait_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + traffic_routing_configuration: Optional['outputs.EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfiguration'] = None, + maximum_execution_timeout_in_seconds: Optional[int] = None, + termination_wait_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if traffic_routing_configuration is None and 'trafficRoutingConfiguration' in kwargs: + traffic_routing_configuration = kwargs['trafficRoutingConfiguration'] + if traffic_routing_configuration is None: + raise TypeError("Missing 'traffic_routing_configuration' argument") + if maximum_execution_timeout_in_seconds is None and 'maximumExecutionTimeoutInSeconds' in kwargs: + maximum_execution_timeout_in_seconds = kwargs['maximumExecutionTimeoutInSeconds'] + if termination_wait_in_seconds is None and 'terminationWaitInSeconds' in kwargs: + termination_wait_in_seconds = kwargs['terminationWaitInSeconds'] + + _setter("traffic_routing_configuration", traffic_routing_configuration) if maximum_execution_timeout_in_seconds is not None: - pulumi.set(__self__, "maximum_execution_timeout_in_seconds", maximum_execution_timeout_in_seconds) + _setter("maximum_execution_timeout_in_seconds", maximum_execution_timeout_in_seconds) if termination_wait_in_seconds is not None: - pulumi.set(__self__, "termination_wait_in_seconds", termination_wait_in_seconds) + _setter("termination_wait_in_seconds", termination_wait_in_seconds) @property @pulumi.getter(name="trafficRoutingConfiguration") @@ -4548,12 +6091,39 @@ def __init__(__self__, *, :param 'EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySizeArgs' canary_size: Batch size for the first step to turn on traffic on the new endpoint fleet. Value must be less than or equal to 50% of the variant's total instance count. See Canary Size. :param 'EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationLinearStepSizeArgs' linear_step_size: Batch size for each step to turn on traffic on the new endpoint fleet. Value must be 10-50% of the variant's total instance count. See Linear Step Size. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "wait_interval_in_seconds", wait_interval_in_seconds) + EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + wait_interval_in_seconds=wait_interval_in_seconds, + canary_size=canary_size, + linear_step_size=linear_step_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + wait_interval_in_seconds: Optional[int] = None, + canary_size: Optional['outputs.EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySize'] = None, + linear_step_size: Optional['outputs.EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationLinearStepSize'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if wait_interval_in_seconds is None and 'waitIntervalInSeconds' in kwargs: + wait_interval_in_seconds = kwargs['waitIntervalInSeconds'] + if wait_interval_in_seconds is None: + raise TypeError("Missing 'wait_interval_in_seconds' argument") + if canary_size is None and 'canarySize' in kwargs: + canary_size = kwargs['canarySize'] + if linear_step_size is None and 'linearStepSize' in kwargs: + linear_step_size = kwargs['linearStepSize'] + + _setter("type", type) + _setter("wait_interval_in_seconds", wait_interval_in_seconds) if canary_size is not None: - pulumi.set(__self__, "canary_size", canary_size) + _setter("canary_size", canary_size) if linear_step_size is not None: - pulumi.set(__self__, "linear_step_size", linear_step_size) + _setter("linear_step_size", linear_step_size) @property @pulumi.getter @@ -4597,8 +6167,25 @@ def __init__(__self__, *, :param str type: Specifies the endpoint capacity type. Valid values are: `INSTANCE_COUNT`, or `CAPACITY_PERCENT`. :param int value: Defines the capacity size, either as a number of instances or a capacity percentage. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySize._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -4626,8 +6213,25 @@ def __init__(__self__, *, :param str type: Specifies the endpoint capacity type. Valid values are: `INSTANCE_COUNT`, or `CAPACITY_PERCENT`. :param int value: Defines the capacity size, either as a number of instances or a capacity percentage. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EndpointDeploymentConfigBlueGreenUpdatePolicyTrafficRoutingConfigurationLinearStepSize._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -4682,12 +6286,41 @@ def __init__(__self__, *, :param int maximum_execution_timeout_in_seconds: The time limit for the total deployment. Exceeding this limit causes a timeout. Valid values are between `600` and `14400`. :param 'EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSizeArgs' rollback_maximum_batch_size: Batch size for rollback to the old endpoint fleet. Each rolling step to provision capacity and turn on traffic on the old endpoint fleet, and terminate capacity on the new endpoint fleet. If this field is absent, the default value will be set to 100% of total capacity which means to bring up the whole capacity of the old fleet at once during rollback. See Rollback Maximum Batch Size. """ - pulumi.set(__self__, "maximum_batch_size", maximum_batch_size) - pulumi.set(__self__, "wait_interval_in_seconds", wait_interval_in_seconds) + EndpointDeploymentConfigRollingUpdatePolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_batch_size=maximum_batch_size, + wait_interval_in_seconds=wait_interval_in_seconds, + maximum_execution_timeout_in_seconds=maximum_execution_timeout_in_seconds, + rollback_maximum_batch_size=rollback_maximum_batch_size, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_batch_size: Optional['outputs.EndpointDeploymentConfigRollingUpdatePolicyMaximumBatchSize'] = None, + wait_interval_in_seconds: Optional[int] = None, + maximum_execution_timeout_in_seconds: Optional[int] = None, + rollback_maximum_batch_size: Optional['outputs.EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSize'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_batch_size is None and 'maximumBatchSize' in kwargs: + maximum_batch_size = kwargs['maximumBatchSize'] + if maximum_batch_size is None: + raise TypeError("Missing 'maximum_batch_size' argument") + if wait_interval_in_seconds is None and 'waitIntervalInSeconds' in kwargs: + wait_interval_in_seconds = kwargs['waitIntervalInSeconds'] + if wait_interval_in_seconds is None: + raise TypeError("Missing 'wait_interval_in_seconds' argument") + if maximum_execution_timeout_in_seconds is None and 'maximumExecutionTimeoutInSeconds' in kwargs: + maximum_execution_timeout_in_seconds = kwargs['maximumExecutionTimeoutInSeconds'] + if rollback_maximum_batch_size is None and 'rollbackMaximumBatchSize' in kwargs: + rollback_maximum_batch_size = kwargs['rollbackMaximumBatchSize'] + + _setter("maximum_batch_size", maximum_batch_size) + _setter("wait_interval_in_seconds", wait_interval_in_seconds) if maximum_execution_timeout_in_seconds is not None: - pulumi.set(__self__, "maximum_execution_timeout_in_seconds", maximum_execution_timeout_in_seconds) + _setter("maximum_execution_timeout_in_seconds", maximum_execution_timeout_in_seconds) if rollback_maximum_batch_size is not None: - pulumi.set(__self__, "rollback_maximum_batch_size", rollback_maximum_batch_size) + _setter("rollback_maximum_batch_size", rollback_maximum_batch_size) @property @pulumi.getter(name="maximumBatchSize") @@ -4731,8 +6364,25 @@ def __init__(__self__, *, :param str type: Specifies the endpoint capacity type. Valid values are: `INSTANCE_COUNT`, or `CAPACITY_PERCENT`. :param int value: Defines the capacity size, either as a number of instances or a capacity percentage. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EndpointDeploymentConfigRollingUpdatePolicyMaximumBatchSize._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -4760,8 +6410,25 @@ def __init__(__self__, *, :param str type: Specifies the endpoint capacity type. Valid values are: `INSTANCE_COUNT`, or `CAPACITY_PERCENT`. :param int value: Defines the capacity size, either as a number of instances or a capacity percentage. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSize._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -4808,10 +6475,27 @@ def __init__(__self__, *, :param str feature_name: The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. :param str feature_type: The value type of a feature. Valid values are `Integral`, `Fractional`, or `String`. """ + FeatureGroupFeatureDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + feature_name=feature_name, + feature_type=feature_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + feature_name: Optional[str] = None, + feature_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if feature_name is None and 'featureName' in kwargs: + feature_name = kwargs['featureName'] + if feature_type is None and 'featureType' in kwargs: + feature_type = kwargs['featureType'] + if feature_name is not None: - pulumi.set(__self__, "feature_name", feature_name) + _setter("feature_name", feature_name) if feature_type is not None: - pulumi.set(__self__, "feature_type", feature_type) + _setter("feature_type", feature_type) @property @pulumi.getter(name="featureName") @@ -4866,13 +6550,40 @@ def __init__(__self__, *, :param bool disable_glue_table_creation: Set to `true` to turn Online Store On. :param str table_format: Format for the offline store table. Supported formats are `Glue` (Default) and Apache `Iceberg` (https://iceberg.apache.org/). """ - pulumi.set(__self__, "s3_storage_config", s3_storage_config) + FeatureGroupOfflineStoreConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_storage_config=s3_storage_config, + data_catalog_config=data_catalog_config, + disable_glue_table_creation=disable_glue_table_creation, + table_format=table_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_storage_config: Optional['outputs.FeatureGroupOfflineStoreConfigS3StorageConfig'] = None, + data_catalog_config: Optional['outputs.FeatureGroupOfflineStoreConfigDataCatalogConfig'] = None, + disable_glue_table_creation: Optional[bool] = None, + table_format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_storage_config is None and 's3StorageConfig' in kwargs: + s3_storage_config = kwargs['s3StorageConfig'] + if s3_storage_config is None: + raise TypeError("Missing 's3_storage_config' argument") + if data_catalog_config is None and 'dataCatalogConfig' in kwargs: + data_catalog_config = kwargs['dataCatalogConfig'] + if disable_glue_table_creation is None and 'disableGlueTableCreation' in kwargs: + disable_glue_table_creation = kwargs['disableGlueTableCreation'] + if table_format is None and 'tableFormat' in kwargs: + table_format = kwargs['tableFormat'] + + _setter("s3_storage_config", s3_storage_config) if data_catalog_config is not None: - pulumi.set(__self__, "data_catalog_config", data_catalog_config) + _setter("data_catalog_config", data_catalog_config) if disable_glue_table_creation is not None: - pulumi.set(__self__, "disable_glue_table_creation", disable_glue_table_creation) + _setter("disable_glue_table_creation", disable_glue_table_creation) if table_format is not None: - pulumi.set(__self__, "table_format", table_format) + _setter("table_format", table_format) @property @pulumi.getter(name="s3StorageConfig") @@ -4935,12 +6646,29 @@ def __init__(__self__, *, :param str database: The name of the Glue table database. :param str table_name: The name of the Glue table. """ + FeatureGroupOfflineStoreConfigDataCatalogConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + catalog=catalog, + database=database, + table_name=table_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + catalog: Optional[str] = None, + database: Optional[str] = None, + table_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if catalog is not None: - pulumi.set(__self__, "catalog", catalog) + _setter("catalog", catalog) if database is not None: - pulumi.set(__self__, "database", database) + _setter("database", database) if table_name is not None: - pulumi.set(__self__, "table_name", table_name) + _setter("table_name", table_name) @property @pulumi.getter @@ -4995,9 +6723,28 @@ def __init__(__self__, *, :param str s3_uri: The S3 URI, or location in Amazon S3, of OfflineStore. :param str kms_key_id: The AWS Key Management Service (KMS) key ID of the key used to encrypt any objects written into the OfflineStore S3 location. """ - pulumi.set(__self__, "s3_uri", s3_uri) + FeatureGroupOfflineStoreConfigS3StorageConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_uri=s3_uri, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_uri: Optional[str] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("s3_uri", s3_uri) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="s3Uri") @@ -5044,10 +6791,27 @@ def __init__(__self__, *, :param bool enable_online_store: Set to `true` to disable the automatic creation of an AWS Glue table when configuring an OfflineStore. :param 'FeatureGroupOnlineStoreConfigSecurityConfigArgs' security_config: Security config for at-rest encryption of your OnlineStore. See Security Config Below. """ + FeatureGroupOnlineStoreConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_online_store=enable_online_store, + security_config=security_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_online_store: Optional[bool] = None, + security_config: Optional['outputs.FeatureGroupOnlineStoreConfigSecurityConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_online_store is None and 'enableOnlineStore' in kwargs: + enable_online_store = kwargs['enableOnlineStore'] + if security_config is None and 'securityConfig' in kwargs: + security_config = kwargs['securityConfig'] + if enable_online_store is not None: - pulumi.set(__self__, "enable_online_store", enable_online_store) + _setter("enable_online_store", enable_online_store) if security_config is not None: - pulumi.set(__self__, "security_config", security_config) + _setter("security_config", security_config) @property @pulumi.getter(name="enableOnlineStore") @@ -5090,8 +6854,21 @@ def __init__(__self__, *, """ :param str kms_key_id: The ID of the AWS Key Management Service (AWS KMS) key that SageMaker Feature Store uses to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption. """ + FeatureGroupOnlineStoreConfigSecurityConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="kmsKeyId") @@ -5126,8 +6903,21 @@ def __init__(__self__, *, """ :param 'FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfigArgs' human_loop_activation_conditions_config: defines under what conditions SageMaker creates a human loop. See Human Loop Activation Conditions Config details below. """ + FlowDefinitionHumanLoopActivationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + human_loop_activation_conditions_config=human_loop_activation_conditions_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + human_loop_activation_conditions_config: Optional['outputs.FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if human_loop_activation_conditions_config is None and 'humanLoopActivationConditionsConfig' in kwargs: + human_loop_activation_conditions_config = kwargs['humanLoopActivationConditionsConfig'] + if human_loop_activation_conditions_config is not None: - pulumi.set(__self__, "human_loop_activation_conditions_config", human_loop_activation_conditions_config) + _setter("human_loop_activation_conditions_config", human_loop_activation_conditions_config) @property @pulumi.getter(name="humanLoopActivationConditionsConfig") @@ -5162,7 +6952,22 @@ def __init__(__self__, *, """ :param str human_loop_activation_conditions: A JSON expressing use-case specific conditions declaratively. If any condition is matched, atomic tasks are created against the configured work team. For more information about how to structure the JSON, see [JSON Schema for Human Loop Activation Conditions in Amazon Augmented AI](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-human-fallback-conditions-json-schema.html). """ - pulumi.set(__self__, "human_loop_activation_conditions", human_loop_activation_conditions) + FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + human_loop_activation_conditions=human_loop_activation_conditions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + human_loop_activation_conditions: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if human_loop_activation_conditions is None and 'humanLoopActivationConditions' in kwargs: + human_loop_activation_conditions = kwargs['humanLoopActivationConditions'] + if human_loop_activation_conditions is None: + raise TypeError("Missing 'human_loop_activation_conditions' argument") + + _setter("human_loop_activation_conditions", human_loop_activation_conditions) @property @pulumi.getter(name="humanLoopActivationConditions") @@ -5229,19 +7034,74 @@ def __init__(__self__, *, :param Sequence[str] task_keywords: An array of keywords used to describe the task so that workers can discover the task. :param int task_time_limit_in_seconds: The amount of time that a worker has to complete a task. The default value is `3600` seconds. """ - pulumi.set(__self__, "human_task_ui_arn", human_task_ui_arn) - pulumi.set(__self__, "task_count", task_count) - pulumi.set(__self__, "task_description", task_description) - pulumi.set(__self__, "task_title", task_title) - pulumi.set(__self__, "workteam_arn", workteam_arn) + FlowDefinitionHumanLoopConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + human_task_ui_arn=human_task_ui_arn, + task_count=task_count, + task_description=task_description, + task_title=task_title, + workteam_arn=workteam_arn, + public_workforce_task_price=public_workforce_task_price, + task_availability_lifetime_in_seconds=task_availability_lifetime_in_seconds, + task_keywords=task_keywords, + task_time_limit_in_seconds=task_time_limit_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + human_task_ui_arn: Optional[str] = None, + task_count: Optional[int] = None, + task_description: Optional[str] = None, + task_title: Optional[str] = None, + workteam_arn: Optional[str] = None, + public_workforce_task_price: Optional['outputs.FlowDefinitionHumanLoopConfigPublicWorkforceTaskPrice'] = None, + task_availability_lifetime_in_seconds: Optional[int] = None, + task_keywords: Optional[Sequence[str]] = None, + task_time_limit_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if human_task_ui_arn is None and 'humanTaskUiArn' in kwargs: + human_task_ui_arn = kwargs['humanTaskUiArn'] + if human_task_ui_arn is None: + raise TypeError("Missing 'human_task_ui_arn' argument") + if task_count is None and 'taskCount' in kwargs: + task_count = kwargs['taskCount'] + if task_count is None: + raise TypeError("Missing 'task_count' argument") + if task_description is None and 'taskDescription' in kwargs: + task_description = kwargs['taskDescription'] + if task_description is None: + raise TypeError("Missing 'task_description' argument") + if task_title is None and 'taskTitle' in kwargs: + task_title = kwargs['taskTitle'] + if task_title is None: + raise TypeError("Missing 'task_title' argument") + if workteam_arn is None and 'workteamArn' in kwargs: + workteam_arn = kwargs['workteamArn'] + if workteam_arn is None: + raise TypeError("Missing 'workteam_arn' argument") + if public_workforce_task_price is None and 'publicWorkforceTaskPrice' in kwargs: + public_workforce_task_price = kwargs['publicWorkforceTaskPrice'] + if task_availability_lifetime_in_seconds is None and 'taskAvailabilityLifetimeInSeconds' in kwargs: + task_availability_lifetime_in_seconds = kwargs['taskAvailabilityLifetimeInSeconds'] + if task_keywords is None and 'taskKeywords' in kwargs: + task_keywords = kwargs['taskKeywords'] + if task_time_limit_in_seconds is None and 'taskTimeLimitInSeconds' in kwargs: + task_time_limit_in_seconds = kwargs['taskTimeLimitInSeconds'] + + _setter("human_task_ui_arn", human_task_ui_arn) + _setter("task_count", task_count) + _setter("task_description", task_description) + _setter("task_title", task_title) + _setter("workteam_arn", workteam_arn) if public_workforce_task_price is not None: - pulumi.set(__self__, "public_workforce_task_price", public_workforce_task_price) + _setter("public_workforce_task_price", public_workforce_task_price) if task_availability_lifetime_in_seconds is not None: - pulumi.set(__self__, "task_availability_lifetime_in_seconds", task_availability_lifetime_in_seconds) + _setter("task_availability_lifetime_in_seconds", task_availability_lifetime_in_seconds) if task_keywords is not None: - pulumi.set(__self__, "task_keywords", task_keywords) + _setter("task_keywords", task_keywords) if task_time_limit_in_seconds is not None: - pulumi.set(__self__, "task_time_limit_in_seconds", task_time_limit_in_seconds) + _setter("task_time_limit_in_seconds", task_time_limit_in_seconds) @property @pulumi.getter(name="humanTaskUiArn") @@ -5340,8 +7200,21 @@ def __init__(__self__, *, """ :param 'FlowDefinitionHumanLoopConfigPublicWorkforceTaskPriceAmountInUsdArgs' amount_in_usd: Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars. See Amount In Usd details below. """ + FlowDefinitionHumanLoopConfigPublicWorkforceTaskPrice._configure( + lambda key, value: pulumi.set(__self__, key, value), + amount_in_usd=amount_in_usd, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amount_in_usd: Optional['outputs.FlowDefinitionHumanLoopConfigPublicWorkforceTaskPriceAmountInUsd'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amount_in_usd is None and 'amountInUsd' in kwargs: + amount_in_usd = kwargs['amountInUsd'] + if amount_in_usd is not None: - pulumi.set(__self__, "amount_in_usd", amount_in_usd) + _setter("amount_in_usd", amount_in_usd) @property @pulumi.getter(name="amountInUsd") @@ -5380,12 +7253,29 @@ def __init__(__self__, *, :param int dollars: The whole number of dollars in the amount. Valid value range between `0` and `2`. :param int tenth_fractions_of_a_cent: Fractions of a cent, in tenths. Valid value range between `0` and `9`. """ + FlowDefinitionHumanLoopConfigPublicWorkforceTaskPriceAmountInUsd._configure( + lambda key, value: pulumi.set(__self__, key, value), + cents=cents, + dollars=dollars, + tenth_fractions_of_a_cent=tenth_fractions_of_a_cent, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cents: Optional[int] = None, + dollars: Optional[int] = None, + tenth_fractions_of_a_cent: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tenth_fractions_of_a_cent is None and 'tenthFractionsOfACent' in kwargs: + tenth_fractions_of_a_cent = kwargs['tenthFractionsOfACent'] + if cents is not None: - pulumi.set(__self__, "cents", cents) + _setter("cents", cents) if dollars is not None: - pulumi.set(__self__, "dollars", dollars) + _setter("dollars", dollars) if tenth_fractions_of_a_cent is not None: - pulumi.set(__self__, "tenth_fractions_of_a_cent", tenth_fractions_of_a_cent) + _setter("tenth_fractions_of_a_cent", tenth_fractions_of_a_cent) @property @pulumi.getter @@ -5436,7 +7326,22 @@ def __init__(__self__, *, """ :param str aws_managed_human_loop_request_source: Specifies whether Amazon Rekognition or Amazon Textract are used as the integration source. Valid values are: `AWS/Rekognition/DetectModerationLabels/Image/V3` and `AWS/Textract/AnalyzeDocument/Forms/V1`. """ - pulumi.set(__self__, "aws_managed_human_loop_request_source", aws_managed_human_loop_request_source) + FlowDefinitionHumanLoopRequestSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_managed_human_loop_request_source=aws_managed_human_loop_request_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_managed_human_loop_request_source: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_managed_human_loop_request_source is None and 'awsManagedHumanLoopRequestSource' in kwargs: + aws_managed_human_loop_request_source = kwargs['awsManagedHumanLoopRequestSource'] + if aws_managed_human_loop_request_source is None: + raise TypeError("Missing 'aws_managed_human_loop_request_source' argument") + + _setter("aws_managed_human_loop_request_source", aws_managed_human_loop_request_source) @property @pulumi.getter(name="awsManagedHumanLoopRequestSource") @@ -5475,9 +7380,28 @@ def __init__(__self__, *, :param str s3_output_path: The Amazon S3 path where the object containing human output will be made available. :param str kms_key_id: The Amazon Key Management Service (KMS) key ARN for server-side encryption. """ - pulumi.set(__self__, "s3_output_path", s3_output_path) + FlowDefinitionOutputConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_output_path=s3_output_path, + kms_key_id=kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_output_path: Optional[str] = None, + kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_output_path is None and 's3OutputPath' in kwargs: + s3_output_path = kwargs['s3OutputPath'] + if s3_output_path is None: + raise TypeError("Missing 's3_output_path' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("s3_output_path", s3_output_path) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) @property @pulumi.getter(name="s3OutputPath") @@ -5524,12 +7448,29 @@ def __init__(__self__, *, :param str content_sha256: The SHA-256 digest of the contents of the template. :param str url: The URL for the user interface template. """ + HumanTaskUIUiTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_sha256=content_sha256, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_sha256: Optional[str] = None, + url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_sha256 is None and 'contentSha256' in kwargs: + content_sha256 = kwargs['contentSha256'] + if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if content_sha256 is not None: - pulumi.set(__self__, "content_sha256", content_sha256) + _setter("content_sha256", content_sha256) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter @@ -5599,20 +7540,51 @@ def __init__(__self__, *, :param str model_data_url: The URL for the S3 location where model artifacts are stored. :param str model_package_name: The Amazon Resource Name (ARN) of the model package to use to create the model. """ + ModelContainer._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_hostname=container_hostname, + environment=environment, + image=image, + image_config=image_config, + mode=mode, + model_data_url=model_data_url, + model_package_name=model_package_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_hostname: Optional[str] = None, + environment: Optional[Mapping[str, str]] = None, + image: Optional[str] = None, + image_config: Optional['outputs.ModelContainerImageConfig'] = None, + mode: Optional[str] = None, + model_data_url: Optional[str] = None, + model_package_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_hostname is None and 'containerHostname' in kwargs: + container_hostname = kwargs['containerHostname'] + if image_config is None and 'imageConfig' in kwargs: + image_config = kwargs['imageConfig'] + if model_data_url is None and 'modelDataUrl' in kwargs: + model_data_url = kwargs['modelDataUrl'] + if model_package_name is None and 'modelPackageName' in kwargs: + model_package_name = kwargs['modelPackageName'] + if container_hostname is not None: - pulumi.set(__self__, "container_hostname", container_hostname) + _setter("container_hostname", container_hostname) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if image is not None: - pulumi.set(__self__, "image", image) + _setter("image", image) if image_config is not None: - pulumi.set(__self__, "image_config", image_config) + _setter("image_config", image_config) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if model_data_url is not None: - pulumi.set(__self__, "model_data_url", model_data_url) + _setter("model_data_url", model_data_url) if model_package_name is not None: - pulumi.set(__self__, "model_package_name", model_package_name) + _setter("model_package_name", model_package_name) @property @pulumi.getter(name="containerHostname") @@ -5700,9 +7672,28 @@ def __init__(__self__, *, :param str repository_access_mode: Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). Allowed values are: `Platform` and `Vpc`. :param 'ModelContainerImageConfigRepositoryAuthConfigArgs' repository_auth_config: Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified Vpc as the value for the RepositoryAccessMode field, and the private Docker registry where the model image is hosted requires authentication. see Repository Auth Config. """ - pulumi.set(__self__, "repository_access_mode", repository_access_mode) + ModelContainerImageConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_access_mode=repository_access_mode, + repository_auth_config=repository_auth_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_access_mode: Optional[str] = None, + repository_auth_config: Optional['outputs.ModelContainerImageConfigRepositoryAuthConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_access_mode is None and 'repositoryAccessMode' in kwargs: + repository_access_mode = kwargs['repositoryAccessMode'] + if repository_access_mode is None: + raise TypeError("Missing 'repository_access_mode' argument") + if repository_auth_config is None and 'repositoryAuthConfig' in kwargs: + repository_auth_config = kwargs['repositoryAuthConfig'] + + _setter("repository_access_mode", repository_access_mode) if repository_auth_config is not None: - pulumi.set(__self__, "repository_auth_config", repository_auth_config) + _setter("repository_auth_config", repository_auth_config) @property @pulumi.getter(name="repositoryAccessMode") @@ -5745,7 +7736,22 @@ def __init__(__self__, *, """ :param str repository_credentials_provider_arn: The Amazon Resource Name (ARN) of an AWS Lambda function that provides credentials to authenticate to the private Docker registry where your model image is hosted. For information about how to create an AWS Lambda function, see [Create a Lambda function with the console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html) in the _AWS Lambda Developer Guide_. """ - pulumi.set(__self__, "repository_credentials_provider_arn", repository_credentials_provider_arn) + ModelContainerImageConfigRepositoryAuthConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_credentials_provider_arn=repository_credentials_provider_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_credentials_provider_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_credentials_provider_arn is None and 'repositoryCredentialsProviderArn' in kwargs: + repository_credentials_provider_arn = kwargs['repositoryCredentialsProviderArn'] + if repository_credentials_provider_arn is None: + raise TypeError("Missing 'repository_credentials_provider_arn' argument") + + _setter("repository_credentials_provider_arn", repository_credentials_provider_arn) @property @pulumi.getter(name="repositoryCredentialsProviderArn") @@ -5763,7 +7769,20 @@ def __init__(__self__, *, """ :param str mode: The container hosts value `SingleModel/MultiModel`. The default value is `SingleModel`. """ - pulumi.set(__self__, "mode", mode) + ModelInferenceExecutionConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + + _setter("mode", mode) @property @pulumi.getter @@ -5817,20 +7836,51 @@ def __init__(__self__, *, :param str model_data_url: The URL for the S3 location where model artifacts are stored. :param str model_package_name: The Amazon Resource Name (ARN) of the model package to use to create the model. """ + ModelPrimaryContainer._configure( + lambda key, value: pulumi.set(__self__, key, value), + container_hostname=container_hostname, + environment=environment, + image=image, + image_config=image_config, + mode=mode, + model_data_url=model_data_url, + model_package_name=model_package_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + container_hostname: Optional[str] = None, + environment: Optional[Mapping[str, str]] = None, + image: Optional[str] = None, + image_config: Optional['outputs.ModelPrimaryContainerImageConfig'] = None, + mode: Optional[str] = None, + model_data_url: Optional[str] = None, + model_package_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if container_hostname is None and 'containerHostname' in kwargs: + container_hostname = kwargs['containerHostname'] + if image_config is None and 'imageConfig' in kwargs: + image_config = kwargs['imageConfig'] + if model_data_url is None and 'modelDataUrl' in kwargs: + model_data_url = kwargs['modelDataUrl'] + if model_package_name is None and 'modelPackageName' in kwargs: + model_package_name = kwargs['modelPackageName'] + if container_hostname is not None: - pulumi.set(__self__, "container_hostname", container_hostname) + _setter("container_hostname", container_hostname) if environment is not None: - pulumi.set(__self__, "environment", environment) + _setter("environment", environment) if image is not None: - pulumi.set(__self__, "image", image) + _setter("image", image) if image_config is not None: - pulumi.set(__self__, "image_config", image_config) + _setter("image_config", image_config) if mode is not None: - pulumi.set(__self__, "mode", mode) + _setter("mode", mode) if model_data_url is not None: - pulumi.set(__self__, "model_data_url", model_data_url) + _setter("model_data_url", model_data_url) if model_package_name is not None: - pulumi.set(__self__, "model_package_name", model_package_name) + _setter("model_package_name", model_package_name) @property @pulumi.getter(name="containerHostname") @@ -5918,9 +7968,28 @@ def __init__(__self__, *, :param str repository_access_mode: Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). Allowed values are: `Platform` and `Vpc`. :param 'ModelPrimaryContainerImageConfigRepositoryAuthConfigArgs' repository_auth_config: Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified Vpc as the value for the RepositoryAccessMode field, and the private Docker registry where the model image is hosted requires authentication. see Repository Auth Config. """ - pulumi.set(__self__, "repository_access_mode", repository_access_mode) + ModelPrimaryContainerImageConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_access_mode=repository_access_mode, + repository_auth_config=repository_auth_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_access_mode: Optional[str] = None, + repository_auth_config: Optional['outputs.ModelPrimaryContainerImageConfigRepositoryAuthConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_access_mode is None and 'repositoryAccessMode' in kwargs: + repository_access_mode = kwargs['repositoryAccessMode'] + if repository_access_mode is None: + raise TypeError("Missing 'repository_access_mode' argument") + if repository_auth_config is None and 'repositoryAuthConfig' in kwargs: + repository_auth_config = kwargs['repositoryAuthConfig'] + + _setter("repository_access_mode", repository_access_mode) if repository_auth_config is not None: - pulumi.set(__self__, "repository_auth_config", repository_auth_config) + _setter("repository_auth_config", repository_auth_config) @property @pulumi.getter(name="repositoryAccessMode") @@ -5963,7 +8032,22 @@ def __init__(__self__, *, """ :param str repository_credentials_provider_arn: The Amazon Resource Name (ARN) of an AWS Lambda function that provides credentials to authenticate to the private Docker registry where your model image is hosted. For information about how to create an AWS Lambda function, see [Create a Lambda function with the console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html) in the _AWS Lambda Developer Guide_. """ - pulumi.set(__self__, "repository_credentials_provider_arn", repository_credentials_provider_arn) + ModelPrimaryContainerImageConfigRepositoryAuthConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_credentials_provider_arn=repository_credentials_provider_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_credentials_provider_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_credentials_provider_arn is None and 'repositoryCredentialsProviderArn' in kwargs: + repository_credentials_provider_arn = kwargs['repositoryCredentialsProviderArn'] + if repository_credentials_provider_arn is None: + raise TypeError("Missing 'repository_credentials_provider_arn' argument") + + _setter("repository_credentials_provider_arn", repository_credentials_provider_arn) @property @pulumi.getter(name="repositoryCredentialsProviderArn") @@ -5996,8 +8080,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, security_group_ids: Sequence[str], subnets: Sequence[str]): - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnets", subnets) + ModelVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnets: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnets is None: + raise TypeError("Missing 'subnets' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnets", subnets) @property @pulumi.getter(name="securityGroupIds") @@ -6042,10 +8145,35 @@ def __init__(__self__, *, :param str monitoring_type: The type of the monitoring job definition to schedule. Valid values are `DataQuality`, `ModelQuality`, `ModelBias` or `ModelExplainability` :param 'MonitoringScheduleMonitoringScheduleConfigScheduleConfigArgs' schedule_config: Configures the monitoring schedule. Fields are documented below. """ - pulumi.set(__self__, "monitoring_job_definition_name", monitoring_job_definition_name) - pulumi.set(__self__, "monitoring_type", monitoring_type) + MonitoringScheduleMonitoringScheduleConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + monitoring_job_definition_name=monitoring_job_definition_name, + monitoring_type=monitoring_type, + schedule_config=schedule_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + monitoring_job_definition_name: Optional[str] = None, + monitoring_type: Optional[str] = None, + schedule_config: Optional['outputs.MonitoringScheduleMonitoringScheduleConfigScheduleConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if monitoring_job_definition_name is None and 'monitoringJobDefinitionName' in kwargs: + monitoring_job_definition_name = kwargs['monitoringJobDefinitionName'] + if monitoring_job_definition_name is None: + raise TypeError("Missing 'monitoring_job_definition_name' argument") + if monitoring_type is None and 'monitoringType' in kwargs: + monitoring_type = kwargs['monitoringType'] + if monitoring_type is None: + raise TypeError("Missing 'monitoring_type' argument") + if schedule_config is None and 'scheduleConfig' in kwargs: + schedule_config = kwargs['scheduleConfig'] + + _setter("monitoring_job_definition_name", monitoring_job_definition_name) + _setter("monitoring_type", monitoring_type) if schedule_config is not None: - pulumi.set(__self__, "schedule_config", schedule_config) + _setter("schedule_config", schedule_config) @property @pulumi.getter(name="monitoringJobDefinitionName") @@ -6096,7 +8224,22 @@ def __init__(__self__, *, """ :param str schedule_expression: A cron expression that describes details about the monitoring schedule. For example, and hourly schedule would be `cron(0 * ? * * *)`. """ - pulumi.set(__self__, "schedule_expression", schedule_expression) + MonitoringScheduleMonitoringScheduleConfigScheduleConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + schedule_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="scheduleExpression") @@ -6131,8 +8274,21 @@ def __init__(__self__, *, """ :param str minimum_instance_metadata_service_version: Indicates the minimum IMDS version that the notebook instance supports. When passed "1" is passed. This means that both IMDSv1 and IMDSv2 are supported. Valid values are `1` and `2`. """ + NotebookInstanceInstanceMetadataServiceConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + minimum_instance_metadata_service_version=minimum_instance_metadata_service_version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + minimum_instance_metadata_service_version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if minimum_instance_metadata_service_version is None and 'minimumInstanceMetadataServiceVersion' in kwargs: + minimum_instance_metadata_service_version = kwargs['minimumInstanceMetadataServiceVersion'] + if minimum_instance_metadata_service_version is not None: - pulumi.set(__self__, "minimum_instance_metadata_service_version", minimum_instance_metadata_service_version) + _setter("minimum_instance_metadata_service_version", minimum_instance_metadata_service_version) @property @pulumi.getter(name="minimumInstanceMetadataServiceVersion") @@ -6167,7 +8323,22 @@ def __init__(__self__, *, """ :param int max_parallel_execution_steps: The max number of steps that can be executed in parallel. """ - pulumi.set(__self__, "max_parallel_execution_steps", max_parallel_execution_steps) + PipelineParallelismConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + max_parallel_execution_steps=max_parallel_execution_steps, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + max_parallel_execution_steps: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if max_parallel_execution_steps is None and 'maxParallelExecutionSteps' in kwargs: + max_parallel_execution_steps = kwargs['maxParallelExecutionSteps'] + if max_parallel_execution_steps is None: + raise TypeError("Missing 'max_parallel_execution_steps' argument") + + _setter("max_parallel_execution_steps", max_parallel_execution_steps) @property @pulumi.getter(name="maxParallelExecutionSteps") @@ -6208,10 +8379,33 @@ def __init__(__self__, *, :param str object_key: The object key (or key name) uniquely identifies the object in an S3 bucket. :param str version_id: Version Id of the pipeline definition file. If not specified, Amazon SageMaker will retrieve the latest version. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "object_key", object_key) + PipelinePipelineDefinitionS3Location._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + object_key=object_key, + version_id=version_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + object_key: Optional[str] = None, + version_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if object_key is None and 'objectKey' in kwargs: + object_key = kwargs['objectKey'] + if object_key is None: + raise TypeError("Missing 'object_key' argument") + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + + _setter("bucket", bucket) + _setter("object_key", object_key) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) @property @pulumi.getter @@ -6274,13 +8468,40 @@ def __init__(__self__, *, :param str provisioning_artifact_id: The ID of the provisioning artifact. :param Sequence['ProjectServiceCatalogProvisioningDetailsProvisioningParameterArgs'] provisioning_parameters: A list of key value pairs that you specify when you provision a product. See Provisioning Parameter below. """ - pulumi.set(__self__, "product_id", product_id) + ProjectServiceCatalogProvisioningDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + product_id=product_id, + path_id=path_id, + provisioning_artifact_id=provisioning_artifact_id, + provisioning_parameters=provisioning_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + product_id: Optional[str] = None, + path_id: Optional[str] = None, + provisioning_artifact_id: Optional[str] = None, + provisioning_parameters: Optional[Sequence['outputs.ProjectServiceCatalogProvisioningDetailsProvisioningParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if product_id is None: + raise TypeError("Missing 'product_id' argument") + if path_id is None and 'pathId' in kwargs: + path_id = kwargs['pathId'] + if provisioning_artifact_id is None and 'provisioningArtifactId' in kwargs: + provisioning_artifact_id = kwargs['provisioningArtifactId'] + if provisioning_parameters is None and 'provisioningParameters' in kwargs: + provisioning_parameters = kwargs['provisioningParameters'] + + _setter("product_id", product_id) if path_id is not None: - pulumi.set(__self__, "path_id", path_id) + _setter("path_id", path_id) if provisioning_artifact_id is not None: - pulumi.set(__self__, "provisioning_artifact_id", provisioning_artifact_id) + _setter("provisioning_artifact_id", provisioning_artifact_id) if provisioning_parameters is not None: - pulumi.set(__self__, "provisioning_parameters", provisioning_parameters) + _setter("provisioning_parameters", provisioning_parameters) @property @pulumi.getter(name="productId") @@ -6324,9 +8545,24 @@ def __init__(__self__, *, :param str key: The key that identifies a provisioning parameter. :param str value: The value of the provisioning parameter. """ - pulumi.set(__self__, "key", key) + ProjectServiceCatalogProvisioningDetailsProvisioningParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -6373,10 +8609,27 @@ def __init__(__self__, *, :param 'SpaceSpaceSettingsJupyterServerAppSettingsArgs' jupyter_server_app_settings: The Jupyter server's app settings. See Jupyter Server App Settings below. :param 'SpaceSpaceSettingsKernelGatewayAppSettingsArgs' kernel_gateway_app_settings: The kernel gateway app settings. See Kernel Gateway App Settings below. """ + SpaceSpaceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + jupyter_server_app_settings=jupyter_server_app_settings, + kernel_gateway_app_settings=kernel_gateway_app_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + jupyter_server_app_settings: Optional['outputs.SpaceSpaceSettingsJupyterServerAppSettings'] = None, + kernel_gateway_app_settings: Optional['outputs.SpaceSpaceSettingsKernelGatewayAppSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if jupyter_server_app_settings is None and 'jupyterServerAppSettings' in kwargs: + jupyter_server_app_settings = kwargs['jupyterServerAppSettings'] + if kernel_gateway_app_settings is None and 'kernelGatewayAppSettings' in kwargs: + kernel_gateway_app_settings = kwargs['kernelGatewayAppSettings'] + if jupyter_server_app_settings is not None: - pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + _setter("jupyter_server_app_settings", jupyter_server_app_settings) if kernel_gateway_app_settings is not None: - pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + _setter("kernel_gateway_app_settings", kernel_gateway_app_settings) @property @pulumi.getter(name="jupyterServerAppSettings") @@ -6427,11 +8680,34 @@ def __init__(__self__, *, :param Sequence['SpaceSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs'] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + SpaceSpaceSettingsJupyterServerAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_resource_spec=default_resource_spec, + code_repositories=code_repositories, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_resource_spec: Optional['outputs.SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec'] = None, + code_repositories: Optional[Sequence['outputs.SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository']] = None, + lifecycle_config_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if default_resource_spec is None: + raise TypeError("Missing 'default_resource_spec' argument") + if code_repositories is None and 'codeRepositories' in kwargs: + code_repositories = kwargs['codeRepositories'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + + _setter("default_resource_spec", default_resource_spec) if code_repositories is not None: - pulumi.set(__self__, "code_repositories", code_repositories) + _setter("code_repositories", code_repositories) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="defaultResourceSpec") @@ -6482,7 +8758,22 @@ def __init__(__self__, *, """ :param str repository_url: The URL of the Git repository. """ - pulumi.set(__self__, "repository_url", repository_url) + SpaceSpaceSettingsJupyterServerAppSettingsCodeRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + + _setter("repository_url", repository_url) @property @pulumi.getter(name="repositoryUrl") @@ -6529,14 +8820,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + SpaceSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -6603,11 +8919,34 @@ def __init__(__self__, *, :param Sequence['SpaceSpaceSettingsKernelGatewayAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + SpaceSpaceSettingsKernelGatewayAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_resource_spec=default_resource_spec, + custom_images=custom_images, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_resource_spec: Optional['outputs.SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec'] = None, + custom_images: Optional[Sequence['outputs.SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage']] = None, + lifecycle_config_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if default_resource_spec is None: + raise TypeError("Missing 'default_resource_spec' argument") + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + + _setter("default_resource_spec", default_resource_spec) if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="defaultResourceSpec") @@ -6666,10 +9005,35 @@ def __init__(__self__, *, :param str image_name: The name of the Custom Image. :param int image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + SpaceSpaceSettingsKernelGatewayAppSettingsCustomImage._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[str] = None, + image_name: Optional[str] = None, + image_version_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -6732,14 +9096,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + SpaceSpaceSettingsKernelGatewayAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -6830,23 +9219,70 @@ def __init__(__self__, *, :param 'UserProfileUserSettingsSharingSettingsArgs' sharing_settings: The sharing settings. See Sharing Settings below. :param 'UserProfileUserSettingsTensorBoardAppSettingsArgs' tensor_board_app_settings: The TensorBoard app settings. See TensorBoard App Settings below. """ - pulumi.set(__self__, "execution_role", execution_role) + UserProfileUserSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + canvas_app_settings=canvas_app_settings, + jupyter_server_app_settings=jupyter_server_app_settings, + kernel_gateway_app_settings=kernel_gateway_app_settings, + r_session_app_settings=r_session_app_settings, + r_studio_server_pro_app_settings=r_studio_server_pro_app_settings, + security_groups=security_groups, + sharing_settings=sharing_settings, + tensor_board_app_settings=tensor_board_app_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[str] = None, + canvas_app_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettings'] = None, + jupyter_server_app_settings: Optional['outputs.UserProfileUserSettingsJupyterServerAppSettings'] = None, + kernel_gateway_app_settings: Optional['outputs.UserProfileUserSettingsKernelGatewayAppSettings'] = None, + r_session_app_settings: Optional['outputs.UserProfileUserSettingsRSessionAppSettings'] = None, + r_studio_server_pro_app_settings: Optional['outputs.UserProfileUserSettingsRStudioServerProAppSettings'] = None, + security_groups: Optional[Sequence[str]] = None, + sharing_settings: Optional['outputs.UserProfileUserSettingsSharingSettings'] = None, + tensor_board_app_settings: Optional['outputs.UserProfileUserSettingsTensorBoardAppSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if canvas_app_settings is None and 'canvasAppSettings' in kwargs: + canvas_app_settings = kwargs['canvasAppSettings'] + if jupyter_server_app_settings is None and 'jupyterServerAppSettings' in kwargs: + jupyter_server_app_settings = kwargs['jupyterServerAppSettings'] + if kernel_gateway_app_settings is None and 'kernelGatewayAppSettings' in kwargs: + kernel_gateway_app_settings = kwargs['kernelGatewayAppSettings'] + if r_session_app_settings is None and 'rSessionAppSettings' in kwargs: + r_session_app_settings = kwargs['rSessionAppSettings'] + if r_studio_server_pro_app_settings is None and 'rStudioServerProAppSettings' in kwargs: + r_studio_server_pro_app_settings = kwargs['rStudioServerProAppSettings'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + if sharing_settings is None and 'sharingSettings' in kwargs: + sharing_settings = kwargs['sharingSettings'] + if tensor_board_app_settings is None and 'tensorBoardAppSettings' in kwargs: + tensor_board_app_settings = kwargs['tensorBoardAppSettings'] + + _setter("execution_role", execution_role) if canvas_app_settings is not None: - pulumi.set(__self__, "canvas_app_settings", canvas_app_settings) + _setter("canvas_app_settings", canvas_app_settings) if jupyter_server_app_settings is not None: - pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + _setter("jupyter_server_app_settings", jupyter_server_app_settings) if kernel_gateway_app_settings is not None: - pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + _setter("kernel_gateway_app_settings", kernel_gateway_app_settings) if r_session_app_settings is not None: - pulumi.set(__self__, "r_session_app_settings", r_session_app_settings) + _setter("r_session_app_settings", r_session_app_settings) if r_studio_server_pro_app_settings is not None: - pulumi.set(__self__, "r_studio_server_pro_app_settings", r_studio_server_pro_app_settings) + _setter("r_studio_server_pro_app_settings", r_studio_server_pro_app_settings) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) if sharing_settings is not None: - pulumi.set(__self__, "sharing_settings", sharing_settings) + _setter("sharing_settings", sharing_settings) if tensor_board_app_settings is not None: - pulumi.set(__self__, "tensor_board_app_settings", tensor_board_app_settings) + _setter("tensor_board_app_settings", tensor_board_app_settings) @property @pulumi.getter(name="executionRole") @@ -6953,12 +9389,33 @@ def __init__(__self__, *, :param 'UserProfileUserSettingsCanvasAppSettingsTimeSeriesForecastingSettingsArgs' time_series_forecasting_settings: Time series forecast settings for the Canvas app. see Time Series Forecasting Settings below. :param 'UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsArgs' workspace_settings: The workspace settings for the SageMaker Canvas application. See Workspace Settings below. """ + UserProfileUserSettingsCanvasAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + model_register_settings=model_register_settings, + time_series_forecasting_settings=time_series_forecasting_settings, + workspace_settings=workspace_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + model_register_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettingsModelRegisterSettings'] = None, + time_series_forecasting_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettingsTimeSeriesForecastingSettings'] = None, + workspace_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettingsWorkspaceSettings'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if model_register_settings is None and 'modelRegisterSettings' in kwargs: + model_register_settings = kwargs['modelRegisterSettings'] + if time_series_forecasting_settings is None and 'timeSeriesForecastingSettings' in kwargs: + time_series_forecasting_settings = kwargs['timeSeriesForecastingSettings'] + if workspace_settings is None and 'workspaceSettings' in kwargs: + workspace_settings = kwargs['workspaceSettings'] + if model_register_settings is not None: - pulumi.set(__self__, "model_register_settings", model_register_settings) + _setter("model_register_settings", model_register_settings) if time_series_forecasting_settings is not None: - pulumi.set(__self__, "time_series_forecasting_settings", time_series_forecasting_settings) + _setter("time_series_forecasting_settings", time_series_forecasting_settings) if workspace_settings is not None: - pulumi.set(__self__, "workspace_settings", workspace_settings) + _setter("workspace_settings", workspace_settings) @property @pulumi.getter(name="modelRegisterSettings") @@ -7011,10 +9468,25 @@ def __init__(__self__, *, :param str cross_account_model_register_role_arn: The Amazon Resource Name (ARN) of the SageMaker model registry account. Required only to register model versions created by a different SageMaker Canvas AWS account than the AWS account in which SageMaker model registry is set up. :param str status: Describes whether the integration to the model registry is enabled or disabled in the Canvas application. Valid values are `ENABLED` and `DISABLED`. """ + UserProfileUserSettingsCanvasAppSettingsModelRegisterSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + cross_account_model_register_role_arn=cross_account_model_register_role_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cross_account_model_register_role_arn: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cross_account_model_register_role_arn is None and 'crossAccountModelRegisterRoleArn' in kwargs: + cross_account_model_register_role_arn = kwargs['crossAccountModelRegisterRoleArn'] + if cross_account_model_register_role_arn is not None: - pulumi.set(__self__, "cross_account_model_register_role_arn", cross_account_model_register_role_arn) + _setter("cross_account_model_register_role_arn", cross_account_model_register_role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="crossAccountModelRegisterRoleArn") @@ -7059,10 +9531,25 @@ def __init__(__self__, *, :param str amazon_forecast_role_arn: The IAM role that Canvas passes to Amazon Forecast for time series forecasting. By default, Canvas uses the execution role specified in the UserProfile that launches the Canvas app. If an execution role is not specified in the UserProfile, Canvas uses the execution role specified in the Domain that owns the UserProfile. To allow time series forecasting, this IAM role should have the [AmazonSageMakerCanvasForecastAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasForecastAccess) policy attached and forecast.amazonaws.com added in the trust relationship as a service principal. :param str status: Describes whether time series forecasting is enabled or disabled in the Canvas app. Valid values are `ENABLED` and `DISABLED`. """ + UserProfileUserSettingsCanvasAppSettingsTimeSeriesForecastingSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + amazon_forecast_role_arn=amazon_forecast_role_arn, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + amazon_forecast_role_arn: Optional[str] = None, + status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if amazon_forecast_role_arn is None and 'amazonForecastRoleArn' in kwargs: + amazon_forecast_role_arn = kwargs['amazonForecastRoleArn'] + if amazon_forecast_role_arn is not None: - pulumi.set(__self__, "amazon_forecast_role_arn", amazon_forecast_role_arn) + _setter("amazon_forecast_role_arn", amazon_forecast_role_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="amazonForecastRoleArn") @@ -7109,10 +9596,27 @@ def __init__(__self__, *, :param str s3_artifact_path: The Amazon S3 bucket used to store artifacts generated by Canvas. Updating the Amazon S3 location impacts existing configuration settings, and Canvas users no longer have access to their artifacts. Canvas users must log out and log back in to apply the new location. :param str s3_kms_key_id: The Amazon Web Services Key Management Service (KMS) encryption key ID that is used to encrypt artifacts generated by Canvas in the Amazon S3 bucket. """ + UserProfileUserSettingsCanvasAppSettingsWorkspaceSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_artifact_path=s3_artifact_path, + s3_kms_key_id=s3_kms_key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_artifact_path: Optional[str] = None, + s3_kms_key_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_artifact_path is None and 's3ArtifactPath' in kwargs: + s3_artifact_path = kwargs['s3ArtifactPath'] + if s3_kms_key_id is None and 's3KmsKeyId' in kwargs: + s3_kms_key_id = kwargs['s3KmsKeyId'] + if s3_artifact_path is not None: - pulumi.set(__self__, "s3_artifact_path", s3_artifact_path) + _setter("s3_artifact_path", s3_artifact_path) if s3_kms_key_id is not None: - pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + _setter("s3_kms_key_id", s3_kms_key_id) @property @pulumi.getter(name="s3ArtifactPath") @@ -7163,12 +9667,33 @@ def __init__(__self__, *, :param 'UserProfileUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + UserProfileUserSettingsJupyterServerAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + code_repositories=code_repositories, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + code_repositories: Optional[Sequence['outputs.UserProfileUserSettingsJupyterServerAppSettingsCodeRepository']] = None, + default_resource_spec: Optional['outputs.UserProfileUserSettingsJupyterServerAppSettingsDefaultResourceSpec'] = None, + lifecycle_config_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if code_repositories is None and 'codeRepositories' in kwargs: + code_repositories = kwargs['codeRepositories'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if code_repositories is not None: - pulumi.set(__self__, "code_repositories", code_repositories) + _setter("code_repositories", code_repositories) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="codeRepositories") @@ -7219,7 +9744,22 @@ def __init__(__self__, *, """ :param str repository_url: The URL of the Git repository. """ - pulumi.set(__self__, "repository_url", repository_url) + UserProfileUserSettingsJupyterServerAppSettingsCodeRepository._configure( + lambda key, value: pulumi.set(__self__, key, value), + repository_url=repository_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + repository_url: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if repository_url is None and 'repositoryUrl' in kwargs: + repository_url = kwargs['repositoryUrl'] + if repository_url is None: + raise TypeError("Missing 'repository_url' argument") + + _setter("repository_url", repository_url) @property @pulumi.getter(name="repositoryUrl") @@ -7266,14 +9806,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + UserProfileUserSettingsJupyterServerAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -7340,12 +9905,33 @@ def __init__(__self__, *, :param 'UserProfileUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + UserProfileUserSettingsKernelGatewayAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + lifecycle_config_arns=lifecycle_config_arns, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[Sequence['outputs.UserProfileUserSettingsKernelGatewayAppSettingsCustomImage']] = None, + default_resource_spec: Optional['outputs.UserProfileUserSettingsKernelGatewayAppSettingsDefaultResourceSpec'] = None, + lifecycle_config_arns: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if lifecycle_config_arns is None and 'lifecycleConfigArns' in kwargs: + lifecycle_config_arns = kwargs['lifecycleConfigArns'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: - pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + _setter("lifecycle_config_arns", lifecycle_config_arns) @property @pulumi.getter(name="customImages") @@ -7404,10 +9990,35 @@ def __init__(__self__, *, :param str image_name: The name of the Custom Image. :param int image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + UserProfileUserSettingsKernelGatewayAppSettingsCustomImage._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[str] = None, + image_name: Optional[str] = None, + image_version_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -7470,14 +10081,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + UserProfileUserSettingsKernelGatewayAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -7540,10 +10176,27 @@ def __init__(__self__, *, :param Sequence['UserProfileUserSettingsRSessionAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. :param 'UserProfileUserSettingsRSessionAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. """ + UserProfileUserSettingsRSessionAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_images=custom_images, + default_resource_spec=default_resource_spec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_images: Optional[Sequence['outputs.UserProfileUserSettingsRSessionAppSettingsCustomImage']] = None, + default_resource_spec: Optional['outputs.UserProfileUserSettingsRSessionAppSettingsDefaultResourceSpec'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_images is None and 'customImages' in kwargs: + custom_images = kwargs['customImages'] + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if custom_images is not None: - pulumi.set(__self__, "custom_images", custom_images) + _setter("custom_images", custom_images) if default_resource_spec is not None: - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + _setter("default_resource_spec", default_resource_spec) @property @pulumi.getter(name="customImages") @@ -7594,10 +10247,35 @@ def __init__(__self__, *, :param str image_name: The name of the Custom Image. :param int image_version_number: The version number of the Custom Image. """ - pulumi.set(__self__, "app_image_config_name", app_image_config_name) - pulumi.set(__self__, "image_name", image_name) + UserProfileUserSettingsRSessionAppSettingsCustomImage._configure( + lambda key, value: pulumi.set(__self__, key, value), + app_image_config_name=app_image_config_name, + image_name=image_name, + image_version_number=image_version_number, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + app_image_config_name: Optional[str] = None, + image_name: Optional[str] = None, + image_version_number: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if app_image_config_name is None and 'appImageConfigName' in kwargs: + app_image_config_name = kwargs['appImageConfigName'] + if app_image_config_name is None: + raise TypeError("Missing 'app_image_config_name' argument") + if image_name is None and 'imageName' in kwargs: + image_name = kwargs['imageName'] + if image_name is None: + raise TypeError("Missing 'image_name' argument") + if image_version_number is None and 'imageVersionNumber' in kwargs: + image_version_number = kwargs['imageVersionNumber'] + + _setter("app_image_config_name", app_image_config_name) + _setter("image_name", image_name) if image_version_number is not None: - pulumi.set(__self__, "image_version_number", image_version_number) + _setter("image_version_number", image_version_number) @property @pulumi.getter(name="appImageConfigName") @@ -7660,14 +10338,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + UserProfileUserSettingsRSessionAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -7730,10 +10433,27 @@ def __init__(__self__, *, :param str access_status: Indicates whether the current user has access to the RStudioServerPro app. Valid values are `ENABLED` and `DISABLED`. :param str user_group: The level of permissions that the user has within the RStudioServerPro app. This value defaults to `R_STUDIO_USER`. The `R_STUDIO_ADMIN` value allows the user access to the RStudio Administrative Dashboard. Valid values are `R_STUDIO_USER` and `R_STUDIO_ADMIN`. """ + UserProfileUserSettingsRStudioServerProAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_status=access_status, + user_group=user_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_status: Optional[str] = None, + user_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_status is None and 'accessStatus' in kwargs: + access_status = kwargs['accessStatus'] + if user_group is None and 'userGroup' in kwargs: + user_group = kwargs['userGroup'] + if access_status is not None: - pulumi.set(__self__, "access_status", access_status) + _setter("access_status", access_status) if user_group is not None: - pulumi.set(__self__, "user_group", user_group) + _setter("user_group", user_group) @property @pulumi.getter(name="accessStatus") @@ -7784,12 +10504,33 @@ def __init__(__self__, *, :param str s3_kms_key_id: When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. :param str s3_output_path: When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. """ + UserProfileUserSettingsSharingSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + notebook_output_option=notebook_output_option, + s3_kms_key_id=s3_kms_key_id, + s3_output_path=s3_output_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notebook_output_option: Optional[str] = None, + s3_kms_key_id: Optional[str] = None, + s3_output_path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notebook_output_option is None and 'notebookOutputOption' in kwargs: + notebook_output_option = kwargs['notebookOutputOption'] + if s3_kms_key_id is None and 's3KmsKeyId' in kwargs: + s3_kms_key_id = kwargs['s3KmsKeyId'] + if s3_output_path is None and 's3OutputPath' in kwargs: + s3_output_path = kwargs['s3OutputPath'] + if notebook_output_option is not None: - pulumi.set(__self__, "notebook_output_option", notebook_output_option) + _setter("notebook_output_option", notebook_output_option) if s3_kms_key_id is not None: - pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + _setter("s3_kms_key_id", s3_kms_key_id) if s3_output_path is not None: - pulumi.set(__self__, "s3_output_path", s3_output_path) + _setter("s3_output_path", s3_output_path) @property @pulumi.getter(name="notebookOutputOption") @@ -7840,7 +10581,22 @@ def __init__(__self__, *, """ :param 'UserProfileUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. """ - pulumi.set(__self__, "default_resource_spec", default_resource_spec) + UserProfileUserSettingsTensorBoardAppSettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_resource_spec=default_resource_spec, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_resource_spec: Optional['outputs.UserProfileUserSettingsTensorBoardAppSettingsDefaultResourceSpec'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_resource_spec is None and 'defaultResourceSpec' in kwargs: + default_resource_spec = kwargs['defaultResourceSpec'] + if default_resource_spec is None: + raise TypeError("Missing 'default_resource_spec' argument") + + _setter("default_resource_spec", default_resource_spec) @property @pulumi.getter(name="defaultResourceSpec") @@ -7887,14 +10643,39 @@ def __init__(__self__, *, :param str sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. :param str sagemaker_image_version_arn: The ARN of the image version created on the instance. """ + UserProfileUserSettingsTensorBoardAppSettingsDefaultResourceSpec._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_type=instance_type, + lifecycle_config_arn=lifecycle_config_arn, + sagemaker_image_arn=sagemaker_image_arn, + sagemaker_image_version_arn=sagemaker_image_version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_type: Optional[str] = None, + lifecycle_config_arn: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None, + sagemaker_image_version_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_type is None and 'instanceType' in kwargs: + instance_type = kwargs['instanceType'] + if lifecycle_config_arn is None and 'lifecycleConfigArn' in kwargs: + lifecycle_config_arn = kwargs['lifecycleConfigArn'] + if sagemaker_image_arn is None and 'sagemakerImageArn' in kwargs: + sagemaker_image_arn = kwargs['sagemakerImageArn'] + if sagemaker_image_version_arn is None and 'sagemakerImageVersionArn' in kwargs: + sagemaker_image_version_arn = kwargs['sagemakerImageVersionArn'] + if instance_type is not None: - pulumi.set(__self__, "instance_type", instance_type) + _setter("instance_type", instance_type) if lifecycle_config_arn is not None: - pulumi.set(__self__, "lifecycle_config_arn", lifecycle_config_arn) + _setter("lifecycle_config_arn", lifecycle_config_arn) if sagemaker_image_arn is not None: - pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + _setter("sagemaker_image_arn", sagemaker_image_arn) if sagemaker_image_version_arn is not None: - pulumi.set(__self__, "sagemaker_image_version_arn", sagemaker_image_version_arn) + _setter("sagemaker_image_version_arn", sagemaker_image_version_arn) @property @pulumi.getter(name="instanceType") @@ -7957,8 +10738,29 @@ def __init__(__self__, *, :param str client_id: The client ID for your Amazon Cognito user pool. :param str user_pool: ID for your Amazon Cognito user pool. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "user_pool", user_pool) + WorkforceCognitoConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + user_pool=user_pool, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + user_pool: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if user_pool is None and 'userPool' in kwargs: + user_pool = kwargs['userPool'] + if user_pool is None: + raise TypeError("Missing 'user_pool' argument") + + _setter("client_id", client_id) + _setter("user_pool", user_pool) @property @pulumi.getter(name="clientId") @@ -8027,14 +10829,69 @@ def __init__(__self__, *, :param str token_endpoint: The OIDC IdP token endpoint used to configure your private workforce. :param str user_info_endpoint: The OIDC IdP user information endpoint used to configure your private workforce. """ - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "client_secret", client_secret) - pulumi.set(__self__, "issuer", issuer) - pulumi.set(__self__, "jwks_uri", jwks_uri) - pulumi.set(__self__, "logout_endpoint", logout_endpoint) - pulumi.set(__self__, "token_endpoint", token_endpoint) - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + WorkforceOidcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + issuer=issuer, + jwks_uri=jwks_uri, + logout_endpoint=logout_endpoint, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[str] = None, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + issuer: Optional[str] = None, + jwks_uri: Optional[str] = None, + logout_endpoint: Optional[str] = None, + token_endpoint: Optional[str] = None, + user_info_endpoint: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if authorization_endpoint is None: + raise TypeError("Missing 'authorization_endpoint' argument") + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if issuer is None: + raise TypeError("Missing 'issuer' argument") + if jwks_uri is None and 'jwksUri' in kwargs: + jwks_uri = kwargs['jwksUri'] + if jwks_uri is None: + raise TypeError("Missing 'jwks_uri' argument") + if logout_endpoint is None and 'logoutEndpoint' in kwargs: + logout_endpoint = kwargs['logoutEndpoint'] + if logout_endpoint is None: + raise TypeError("Missing 'logout_endpoint' argument") + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if token_endpoint is None: + raise TypeError("Missing 'token_endpoint' argument") + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + if user_info_endpoint is None: + raise TypeError("Missing 'user_info_endpoint' argument") + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("issuer", issuer) + _setter("jwks_uri", jwks_uri) + _setter("logout_endpoint", logout_endpoint) + _setter("token_endpoint", token_endpoint) + _setter("user_info_endpoint", user_info_endpoint) @property @pulumi.getter(name="authorizationEndpoint") @@ -8108,7 +10965,20 @@ def __init__(__self__, *, """ :param Sequence[str] cidrs: A list of up to 10 CIDR values. """ - pulumi.set(__self__, "cidrs", cidrs) + WorkforceSourceIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidrs=cidrs, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidrs: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidrs is None: + raise TypeError("Missing 'cidrs' argument") + + _setter("cidrs", cidrs) @property @pulumi.getter @@ -8152,14 +11022,37 @@ def __init__(__self__, *, :param Sequence[str] subnets: The ID of the subnets in the VPC that you want to connect. :param str vpc_id: The ID of the VPC that the workforce uses for communication. """ + WorkforceWorkforceVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnets=subnets, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnets: Optional[Sequence[str]] = None, + vpc_endpoint_id: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnets is not None: - pulumi.set(__self__, "subnets", subnets) + _setter("subnets", subnets) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") @@ -8219,10 +11112,27 @@ def __init__(__self__, *, :param 'WorkteamMemberDefinitionCognitoMemberDefinitionArgs' cognito_member_definition: The Amazon Cognito user group that is part of the work team. See Cognito Member Definition details below. :param 'WorkteamMemberDefinitionOidcMemberDefinitionArgs' oidc_member_definition: A list user groups that exist in your OIDC Identity Provider (IdP). One to ten groups can be used to create a single private work team. See Cognito Member Definition details below. """ + WorkteamMemberDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + cognito_member_definition=cognito_member_definition, + oidc_member_definition=oidc_member_definition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cognito_member_definition: Optional['outputs.WorkteamMemberDefinitionCognitoMemberDefinition'] = None, + oidc_member_definition: Optional['outputs.WorkteamMemberDefinitionOidcMemberDefinition'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cognito_member_definition is None and 'cognitoMemberDefinition' in kwargs: + cognito_member_definition = kwargs['cognitoMemberDefinition'] + if oidc_member_definition is None and 'oidcMemberDefinition' in kwargs: + oidc_member_definition = kwargs['oidcMemberDefinition'] + if cognito_member_definition is not None: - pulumi.set(__self__, "cognito_member_definition", cognito_member_definition) + _setter("cognito_member_definition", cognito_member_definition) if oidc_member_definition is not None: - pulumi.set(__self__, "oidc_member_definition", oidc_member_definition) + _setter("oidc_member_definition", oidc_member_definition) @property @pulumi.getter(name="cognitoMemberDefinition") @@ -8273,9 +11183,36 @@ def __init__(__self__, *, :param str user_group: An identifier for a user group. :param str user_pool: An identifier for a user pool. The user pool must be in the same region as the service that you are calling. """ - pulumi.set(__self__, "client_id", client_id) - pulumi.set(__self__, "user_group", user_group) - pulumi.set(__self__, "user_pool", user_pool) + WorkteamMemberDefinitionCognitoMemberDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_id=client_id, + user_group=user_group, + user_pool=user_pool, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_id: Optional[str] = None, + user_group: Optional[str] = None, + user_pool: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if client_id is None: + raise TypeError("Missing 'client_id' argument") + if user_group is None and 'userGroup' in kwargs: + user_group = kwargs['userGroup'] + if user_group is None: + raise TypeError("Missing 'user_group' argument") + if user_pool is None and 'userPool' in kwargs: + user_pool = kwargs['userPool'] + if user_pool is None: + raise TypeError("Missing 'user_pool' argument") + + _setter("client_id", client_id) + _setter("user_group", user_group) + _setter("user_pool", user_pool) @property @pulumi.getter(name="clientId") @@ -8309,7 +11246,20 @@ def __init__(__self__, *, """ :param Sequence[str] groups: A list of comma separated strings that identifies user groups in your OIDC IdP. Each user group is made up of a group of private workers. """ - pulumi.set(__self__, "groups", groups) + WorkteamMemberDefinitionOidcMemberDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + groups=groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + groups: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if groups is None: + raise TypeError("Missing 'groups' argument") + + _setter("groups", groups) @property @pulumi.getter @@ -8344,8 +11294,21 @@ def __init__(__self__, *, """ :param str notification_topic_arn: The ARN for the SNS topic to which notifications should be published. """ + WorkteamNotificationConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + notification_topic_arn=notification_topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notification_topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notification_topic_arn is None and 'notificationTopicArn' in kwargs: + notification_topic_arn = kwargs['notificationTopicArn'] + if notification_topic_arn is not None: - pulumi.set(__self__, "notification_topic_arn", notification_topic_arn) + _setter("notification_topic_arn", notification_topic_arn) @property @pulumi.getter(name="notificationTopicArn") diff --git a/sdk/python/pulumi_aws/sagemaker/pipeline.py b/sdk/python/pulumi_aws/sagemaker/pipeline.py index de543ebd630..e0ac04afc87 100644 --- a/sdk/python/pulumi_aws/sagemaker/pipeline.py +++ b/sdk/python/pulumi_aws/sagemaker/pipeline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,20 +35,63 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The name of the Pipeline (must be unique). :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "pipeline_display_name", pipeline_display_name) - pulumi.set(__self__, "pipeline_name", pipeline_name) + PipelineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pipeline_display_name=pipeline_display_name, + pipeline_name=pipeline_name, + parallelism_configuration=parallelism_configuration, + pipeline_definition=pipeline_definition, + pipeline_definition_s3_location=pipeline_definition_s3_location, + pipeline_description=pipeline_description, + role_arn=role_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pipeline_display_name: Optional[pulumi.Input[str]] = None, + pipeline_name: Optional[pulumi.Input[str]] = None, + parallelism_configuration: Optional[pulumi.Input['PipelineParallelismConfigurationArgs']] = None, + pipeline_definition: Optional[pulumi.Input[str]] = None, + pipeline_definition_s3_location: Optional[pulumi.Input['PipelinePipelineDefinitionS3LocationArgs']] = None, + pipeline_description: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pipeline_display_name is None and 'pipelineDisplayName' in kwargs: + pipeline_display_name = kwargs['pipelineDisplayName'] + if pipeline_display_name is None: + raise TypeError("Missing 'pipeline_display_name' argument") + if pipeline_name is None and 'pipelineName' in kwargs: + pipeline_name = kwargs['pipelineName'] + if pipeline_name is None: + raise TypeError("Missing 'pipeline_name' argument") + if parallelism_configuration is None and 'parallelismConfiguration' in kwargs: + parallelism_configuration = kwargs['parallelismConfiguration'] + if pipeline_definition is None and 'pipelineDefinition' in kwargs: + pipeline_definition = kwargs['pipelineDefinition'] + if pipeline_definition_s3_location is None and 'pipelineDefinitionS3Location' in kwargs: + pipeline_definition_s3_location = kwargs['pipelineDefinitionS3Location'] + if pipeline_description is None and 'pipelineDescription' in kwargs: + pipeline_description = kwargs['pipelineDescription'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + + _setter("pipeline_display_name", pipeline_display_name) + _setter("pipeline_name", pipeline_name) if parallelism_configuration is not None: - pulumi.set(__self__, "parallelism_configuration", parallelism_configuration) + _setter("parallelism_configuration", parallelism_configuration) if pipeline_definition is not None: - pulumi.set(__self__, "pipeline_definition", pipeline_definition) + _setter("pipeline_definition", pipeline_definition) if pipeline_definition_s3_location is not None: - pulumi.set(__self__, "pipeline_definition_s3_location", pipeline_definition_s3_location) + _setter("pipeline_definition_s3_location", pipeline_definition_s3_location) if pipeline_description is not None: - pulumi.set(__self__, "pipeline_description", pipeline_description) + _setter("pipeline_description", pipeline_description) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="pipelineDisplayName") @@ -173,29 +216,74 @@ def __init__(__self__, *, :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. """ + _PipelineState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + parallelism_configuration=parallelism_configuration, + pipeline_definition=pipeline_definition, + pipeline_definition_s3_location=pipeline_definition_s3_location, + pipeline_description=pipeline_description, + pipeline_display_name=pipeline_display_name, + pipeline_name=pipeline_name, + role_arn=role_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + parallelism_configuration: Optional[pulumi.Input['PipelineParallelismConfigurationArgs']] = None, + pipeline_definition: Optional[pulumi.Input[str]] = None, + pipeline_definition_s3_location: Optional[pulumi.Input['PipelinePipelineDefinitionS3LocationArgs']] = None, + pipeline_description: Optional[pulumi.Input[str]] = None, + pipeline_display_name: Optional[pulumi.Input[str]] = None, + pipeline_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parallelism_configuration is None and 'parallelismConfiguration' in kwargs: + parallelism_configuration = kwargs['parallelismConfiguration'] + if pipeline_definition is None and 'pipelineDefinition' in kwargs: + pipeline_definition = kwargs['pipelineDefinition'] + if pipeline_definition_s3_location is None and 'pipelineDefinitionS3Location' in kwargs: + pipeline_definition_s3_location = kwargs['pipelineDefinitionS3Location'] + if pipeline_description is None and 'pipelineDescription' in kwargs: + pipeline_description = kwargs['pipelineDescription'] + if pipeline_display_name is None and 'pipelineDisplayName' in kwargs: + pipeline_display_name = kwargs['pipelineDisplayName'] + if pipeline_name is None and 'pipelineName' in kwargs: + pipeline_name = kwargs['pipelineName'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if parallelism_configuration is not None: - pulumi.set(__self__, "parallelism_configuration", parallelism_configuration) + _setter("parallelism_configuration", parallelism_configuration) if pipeline_definition is not None: - pulumi.set(__self__, "pipeline_definition", pipeline_definition) + _setter("pipeline_definition", pipeline_definition) if pipeline_definition_s3_location is not None: - pulumi.set(__self__, "pipeline_definition_s3_location", pipeline_definition_s3_location) + _setter("pipeline_definition_s3_location", pipeline_definition_s3_location) if pipeline_description is not None: - pulumi.set(__self__, "pipeline_description", pipeline_description) + _setter("pipeline_description", pipeline_description) if pipeline_display_name is not None: - pulumi.set(__self__, "pipeline_display_name", pipeline_display_name) + _setter("pipeline_display_name", pipeline_display_name) if pipeline_name is not None: - pulumi.set(__self__, "pipeline_name", pipeline_name) + _setter("pipeline_name", pipeline_name) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -432,6 +520,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PipelineArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -454,8 +546,10 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = PipelineArgs.__new__(PipelineArgs) + parallelism_configuration = _utilities.configure(parallelism_configuration, PipelineParallelismConfigurationArgs, True) __props__.__dict__["parallelism_configuration"] = parallelism_configuration __props__.__dict__["pipeline_definition"] = pipeline_definition + pipeline_definition_s3_location = _utilities.configure(pipeline_definition_s3_location, PipelinePipelineDefinitionS3LocationArgs, True) __props__.__dict__["pipeline_definition_s3_location"] = pipeline_definition_s3_location __props__.__dict__["pipeline_description"] = pipeline_description if pipeline_display_name is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/sagemaker/project.py b/sdk/python/pulumi_aws/sagemaker/project.py index df84501d755..6413231d69d 100644 --- a/sdk/python/pulumi_aws/sagemaker/project.py +++ b/sdk/python/pulumi_aws/sagemaker/project.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input[str] project_description: A description for the project. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "project_name", project_name) - pulumi.set(__self__, "service_catalog_provisioning_details", service_catalog_provisioning_details) + ProjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + project_name=project_name, + service_catalog_provisioning_details=service_catalog_provisioning_details, + project_description=project_description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + project_name: Optional[pulumi.Input[str]] = None, + service_catalog_provisioning_details: Optional[pulumi.Input['ProjectServiceCatalogProvisioningDetailsArgs']] = None, + project_description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if project_name is None and 'projectName' in kwargs: + project_name = kwargs['projectName'] + if project_name is None: + raise TypeError("Missing 'project_name' argument") + if service_catalog_provisioning_details is None and 'serviceCatalogProvisioningDetails' in kwargs: + service_catalog_provisioning_details = kwargs['serviceCatalogProvisioningDetails'] + if service_catalog_provisioning_details is None: + raise TypeError("Missing 'service_catalog_provisioning_details' argument") + if project_description is None and 'projectDescription' in kwargs: + project_description = kwargs['projectDescription'] + + _setter("project_name", project_name) + _setter("service_catalog_provisioning_details", service_catalog_provisioning_details) if project_description is not None: - pulumi.set(__self__, "project_description", project_description) + _setter("project_description", project_description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="projectName") @@ -103,23 +130,56 @@ def __init__(__self__, *, :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. """ + _ProjectState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + project_description=project_description, + project_id=project_id, + project_name=project_name, + service_catalog_provisioning_details=service_catalog_provisioning_details, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + project_description: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + project_name: Optional[pulumi.Input[str]] = None, + service_catalog_provisioning_details: Optional[pulumi.Input['ProjectServiceCatalogProvisioningDetailsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if project_description is None and 'projectDescription' in kwargs: + project_description = kwargs['projectDescription'] + if project_id is None and 'projectId' in kwargs: + project_id = kwargs['projectId'] + if project_name is None and 'projectName' in kwargs: + project_name = kwargs['projectName'] + if service_catalog_provisioning_details is None and 'serviceCatalogProvisioningDetails' in kwargs: + service_catalog_provisioning_details = kwargs['serviceCatalogProvisioningDetails'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if project_description is not None: - pulumi.set(__self__, "project_description", project_description) + _setter("project_description", project_description) if project_id is not None: - pulumi.set(__self__, "project_id", project_id) + _setter("project_id", project_id) if project_name is not None: - pulumi.set(__self__, "project_name", project_name) + _setter("project_name", project_name) if service_catalog_provisioning_details is not None: - pulumi.set(__self__, "service_catalog_provisioning_details", service_catalog_provisioning_details) + _setter("service_catalog_provisioning_details", service_catalog_provisioning_details) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -294,6 +354,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProjectArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -316,6 +380,7 @@ def _internal_init(__self__, if project_name is None and not opts.urn: raise TypeError("Missing required property 'project_name'") __props__.__dict__["project_name"] = project_name + service_catalog_provisioning_details = _utilities.configure(service_catalog_provisioning_details, ProjectServiceCatalogProvisioningDetailsArgs, True) if service_catalog_provisioning_details is None and not opts.urn: raise TypeError("Missing required property 'service_catalog_provisioning_details'") __props__.__dict__["service_catalog_provisioning_details"] = service_catalog_provisioning_details diff --git a/sdk/python/pulumi_aws/sagemaker/servicecatalog_portfolio_status.py b/sdk/python/pulumi_aws/sagemaker/servicecatalog_portfolio_status.py index f75aa238a66..0514ca45510 100644 --- a/sdk/python/pulumi_aws/sagemaker/servicecatalog_portfolio_status.py +++ b/sdk/python/pulumi_aws/sagemaker/servicecatalog_portfolio_status.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ServicecatalogPortfolioStatusArgs', 'ServicecatalogPortfolioStatus'] @@ -19,7 +19,20 @@ def __init__(__self__, *, The set of arguments for constructing a ServicecatalogPortfolioStatus resource. :param pulumi.Input[str] status: Whether Service Catalog is enabled or disabled in SageMaker. Valid values are `Enabled` and `Disabled`. """ - pulumi.set(__self__, "status", status) + ServicecatalogPortfolioStatusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is None: + raise TypeError("Missing 'status' argument") + + _setter("status", status) @property @pulumi.getter @@ -42,8 +55,19 @@ def __init__(__self__, *, Input properties used for looking up and filtering ServicecatalogPortfolioStatus resources. :param pulumi.Input[str] status: Whether Service Catalog is enabled or disabled in SageMaker. Valid values are `Enabled` and `Disabled`. """ + _ServicecatalogPortfolioStatusState._configure( + lambda key, value: pulumi.set(__self__, key, value), + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -129,6 +153,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServicecatalogPortfolioStatusArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sagemaker/space.py b/sdk/python/pulumi_aws/sagemaker/space.py index 71671f62e33..9f9ffee5f7a 100644 --- a/sdk/python/pulumi_aws/sagemaker/space.py +++ b/sdk/python/pulumi_aws/sagemaker/space.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input['SpaceSpaceSettingsArgs'] space_settings: A collection of space settings. See Space Settings below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "domain_id", domain_id) - pulumi.set(__self__, "space_name", space_name) + SpaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_id=domain_id, + space_name=space_name, + space_settings=space_settings, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_id: Optional[pulumi.Input[str]] = None, + space_name: Optional[pulumi.Input[str]] = None, + space_settings: Optional[pulumi.Input['SpaceSpaceSettingsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_id is None and 'domainId' in kwargs: + domain_id = kwargs['domainId'] + if domain_id is None: + raise TypeError("Missing 'domain_id' argument") + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if space_name is None: + raise TypeError("Missing 'space_name' argument") + if space_settings is None and 'spaceSettings' in kwargs: + space_settings = kwargs['spaceSettings'] + + _setter("domain_id", domain_id) + _setter("space_name", space_name) if space_settings is not None: - pulumi.set(__self__, "space_settings", space_settings) + _setter("space_settings", space_settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="domainId") @@ -103,23 +130,56 @@ def __init__(__self__, *, :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. """ + _SpaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domain_id=domain_id, + home_efs_file_system_uid=home_efs_file_system_uid, + space_name=space_name, + space_settings=space_settings, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domain_id: Optional[pulumi.Input[str]] = None, + home_efs_file_system_uid: Optional[pulumi.Input[str]] = None, + space_name: Optional[pulumi.Input[str]] = None, + space_settings: Optional[pulumi.Input['SpaceSpaceSettingsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_id is None and 'domainId' in kwargs: + domain_id = kwargs['domainId'] + if home_efs_file_system_uid is None and 'homeEfsFileSystemUid' in kwargs: + home_efs_file_system_uid = kwargs['homeEfsFileSystemUid'] + if space_name is None and 'spaceName' in kwargs: + space_name = kwargs['spaceName'] + if space_settings is None and 'spaceSettings' in kwargs: + space_settings = kwargs['spaceSettings'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain_id is not None: - pulumi.set(__self__, "domain_id", domain_id) + _setter("domain_id", domain_id) if home_efs_file_system_uid is not None: - pulumi.set(__self__, "home_efs_file_system_uid", home_efs_file_system_uid) + _setter("home_efs_file_system_uid", home_efs_file_system_uid) if space_name is not None: - pulumi.set(__self__, "space_name", space_name) + _setter("space_name", space_name) if space_settings is not None: - pulumi.set(__self__, "space_settings", space_settings) + _setter("space_settings", space_settings) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -288,6 +348,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SpaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -312,6 +376,7 @@ def _internal_init(__self__, if space_name is None and not opts.urn: raise TypeError("Missing required property 'space_name'") __props__.__dict__["space_name"] = space_name + space_settings = _utilities.configure(space_settings, SpaceSpaceSettingsArgs, True) __props__.__dict__["space_settings"] = space_settings __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/sagemaker/studio_lifecycle_config.py b/sdk/python/pulumi_aws/sagemaker/studio_lifecycle_config.py index be822622f66..f3d38e7c572 100644 --- a/sdk/python/pulumi_aws/sagemaker/studio_lifecycle_config.py +++ b/sdk/python/pulumi_aws/sagemaker/studio_lifecycle_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StudioLifecycleConfigArgs', 'StudioLifecycleConfig'] @@ -25,11 +25,40 @@ def __init__(__self__, *, :param pulumi.Input[str] studio_lifecycle_config_name: The name of the Studio Lifecycle Configuration to create. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "studio_lifecycle_config_app_type", studio_lifecycle_config_app_type) - pulumi.set(__self__, "studio_lifecycle_config_content", studio_lifecycle_config_content) - pulumi.set(__self__, "studio_lifecycle_config_name", studio_lifecycle_config_name) + StudioLifecycleConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + studio_lifecycle_config_app_type=studio_lifecycle_config_app_type, + studio_lifecycle_config_content=studio_lifecycle_config_content, + studio_lifecycle_config_name=studio_lifecycle_config_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + studio_lifecycle_config_app_type: Optional[pulumi.Input[str]] = None, + studio_lifecycle_config_content: Optional[pulumi.Input[str]] = None, + studio_lifecycle_config_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if studio_lifecycle_config_app_type is None and 'studioLifecycleConfigAppType' in kwargs: + studio_lifecycle_config_app_type = kwargs['studioLifecycleConfigAppType'] + if studio_lifecycle_config_app_type is None: + raise TypeError("Missing 'studio_lifecycle_config_app_type' argument") + if studio_lifecycle_config_content is None and 'studioLifecycleConfigContent' in kwargs: + studio_lifecycle_config_content = kwargs['studioLifecycleConfigContent'] + if studio_lifecycle_config_content is None: + raise TypeError("Missing 'studio_lifecycle_config_content' argument") + if studio_lifecycle_config_name is None and 'studioLifecycleConfigName' in kwargs: + studio_lifecycle_config_name = kwargs['studioLifecycleConfigName'] + if studio_lifecycle_config_name is None: + raise TypeError("Missing 'studio_lifecycle_config_name' argument") + + _setter("studio_lifecycle_config_app_type", studio_lifecycle_config_app_type) + _setter("studio_lifecycle_config_content", studio_lifecycle_config_content) + _setter("studio_lifecycle_config_name", studio_lifecycle_config_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="studioLifecycleConfigAppType") @@ -98,21 +127,50 @@ def __init__(__self__, *, :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. """ + _StudioLifecycleConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + studio_lifecycle_config_app_type=studio_lifecycle_config_app_type, + studio_lifecycle_config_content=studio_lifecycle_config_content, + studio_lifecycle_config_name=studio_lifecycle_config_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + studio_lifecycle_config_app_type: Optional[pulumi.Input[str]] = None, + studio_lifecycle_config_content: Optional[pulumi.Input[str]] = None, + studio_lifecycle_config_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if studio_lifecycle_config_app_type is None and 'studioLifecycleConfigAppType' in kwargs: + studio_lifecycle_config_app_type = kwargs['studioLifecycleConfigAppType'] + if studio_lifecycle_config_content is None and 'studioLifecycleConfigContent' in kwargs: + studio_lifecycle_config_content = kwargs['studioLifecycleConfigContent'] + if studio_lifecycle_config_name is None and 'studioLifecycleConfigName' in kwargs: + studio_lifecycle_config_name = kwargs['studioLifecycleConfigName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if studio_lifecycle_config_app_type is not None: - pulumi.set(__self__, "studio_lifecycle_config_app_type", studio_lifecycle_config_app_type) + _setter("studio_lifecycle_config_app_type", studio_lifecycle_config_app_type) if studio_lifecycle_config_content is not None: - pulumi.set(__self__, "studio_lifecycle_config_content", studio_lifecycle_config_content) + _setter("studio_lifecycle_config_content", studio_lifecycle_config_content) if studio_lifecycle_config_name is not None: - pulumi.set(__self__, "studio_lifecycle_config_name", studio_lifecycle_config_name) + _setter("studio_lifecycle_config_name", studio_lifecycle_config_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -249,6 +307,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StudioLifecycleConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sagemaker/user_profile.py b/sdk/python/pulumi_aws/sagemaker/user_profile.py index 9b668b9e3c6..0c6e4df74de 100644 --- a/sdk/python/pulumi_aws/sagemaker/user_profile.py +++ b/sdk/python/pulumi_aws/sagemaker/user_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,51 @@ def __init__(__self__, *, :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['UserProfileUserSettingsArgs'] user_settings: The user settings. See User Settings below. """ - pulumi.set(__self__, "domain_id", domain_id) - pulumi.set(__self__, "user_profile_name", user_profile_name) + UserProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_id=domain_id, + user_profile_name=user_profile_name, + single_sign_on_user_identifier=single_sign_on_user_identifier, + single_sign_on_user_value=single_sign_on_user_value, + tags=tags, + user_settings=user_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_id: Optional[pulumi.Input[str]] = None, + user_profile_name: Optional[pulumi.Input[str]] = None, + single_sign_on_user_identifier: Optional[pulumi.Input[str]] = None, + single_sign_on_user_value: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_settings: Optional[pulumi.Input['UserProfileUserSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_id is None and 'domainId' in kwargs: + domain_id = kwargs['domainId'] + if domain_id is None: + raise TypeError("Missing 'domain_id' argument") + if user_profile_name is None and 'userProfileName' in kwargs: + user_profile_name = kwargs['userProfileName'] + if user_profile_name is None: + raise TypeError("Missing 'user_profile_name' argument") + if single_sign_on_user_identifier is None and 'singleSignOnUserIdentifier' in kwargs: + single_sign_on_user_identifier = kwargs['singleSignOnUserIdentifier'] + if single_sign_on_user_value is None and 'singleSignOnUserValue' in kwargs: + single_sign_on_user_value = kwargs['singleSignOnUserValue'] + if user_settings is None and 'userSettings' in kwargs: + user_settings = kwargs['userSettings'] + + _setter("domain_id", domain_id) + _setter("user_profile_name", user_profile_name) if single_sign_on_user_identifier is not None: - pulumi.set(__self__, "single_sign_on_user_identifier", single_sign_on_user_identifier) + _setter("single_sign_on_user_identifier", single_sign_on_user_identifier) if single_sign_on_user_value is not None: - pulumi.set(__self__, "single_sign_on_user_value", single_sign_on_user_value) + _setter("single_sign_on_user_value", single_sign_on_user_value) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_settings is not None: - pulumi.set(__self__, "user_settings", user_settings) + _setter("user_settings", user_settings) @property @pulumi.getter(name="domainId") @@ -139,27 +174,68 @@ def __init__(__self__, *, :param pulumi.Input[str] user_profile_name: The name for the User Profile. :param pulumi.Input['UserProfileUserSettingsArgs'] user_settings: The user settings. See User Settings below. """ + _UserProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domain_id=domain_id, + home_efs_file_system_uid=home_efs_file_system_uid, + single_sign_on_user_identifier=single_sign_on_user_identifier, + single_sign_on_user_value=single_sign_on_user_value, + tags=tags, + tags_all=tags_all, + user_profile_name=user_profile_name, + user_settings=user_settings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domain_id: Optional[pulumi.Input[str]] = None, + home_efs_file_system_uid: Optional[pulumi.Input[str]] = None, + single_sign_on_user_identifier: Optional[pulumi.Input[str]] = None, + single_sign_on_user_value: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_profile_name: Optional[pulumi.Input[str]] = None, + user_settings: Optional[pulumi.Input['UserProfileUserSettingsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_id is None and 'domainId' in kwargs: + domain_id = kwargs['domainId'] + if home_efs_file_system_uid is None and 'homeEfsFileSystemUid' in kwargs: + home_efs_file_system_uid = kwargs['homeEfsFileSystemUid'] + if single_sign_on_user_identifier is None and 'singleSignOnUserIdentifier' in kwargs: + single_sign_on_user_identifier = kwargs['singleSignOnUserIdentifier'] + if single_sign_on_user_value is None and 'singleSignOnUserValue' in kwargs: + single_sign_on_user_value = kwargs['singleSignOnUserValue'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_profile_name is None and 'userProfileName' in kwargs: + user_profile_name = kwargs['userProfileName'] + if user_settings is None and 'userSettings' in kwargs: + user_settings = kwargs['userSettings'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain_id is not None: - pulumi.set(__self__, "domain_id", domain_id) + _setter("domain_id", domain_id) if home_efs_file_system_uid is not None: - pulumi.set(__self__, "home_efs_file_system_uid", home_efs_file_system_uid) + _setter("home_efs_file_system_uid", home_efs_file_system_uid) if single_sign_on_user_identifier is not None: - pulumi.set(__self__, "single_sign_on_user_identifier", single_sign_on_user_identifier) + _setter("single_sign_on_user_identifier", single_sign_on_user_identifier) if single_sign_on_user_value is not None: - pulumi.set(__self__, "single_sign_on_user_value", single_sign_on_user_value) + _setter("single_sign_on_user_value", single_sign_on_user_value) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_profile_name is not None: - pulumi.set(__self__, "user_profile_name", user_profile_name) + _setter("user_profile_name", user_profile_name) if user_settings is not None: - pulumi.set(__self__, "user_settings", user_settings) + _setter("user_settings", user_settings) @property @pulumi.getter @@ -356,6 +432,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -385,6 +465,7 @@ def _internal_init(__self__, if user_profile_name is None and not opts.urn: raise TypeError("Missing required property 'user_profile_name'") __props__.__dict__["user_profile_name"] = user_profile_name + user_settings = _utilities.configure(user_settings, UserProfileUserSettingsArgs, True) __props__.__dict__["user_settings"] = user_settings __props__.__dict__["arn"] = None __props__.__dict__["home_efs_file_system_uid"] = None diff --git a/sdk/python/pulumi_aws/sagemaker/workforce.py b/sdk/python/pulumi_aws/sagemaker/workforce.py index 76cff2f1f71..305ae029daf 100644 --- a/sdk/python/pulumi_aws/sagemaker/workforce.py +++ b/sdk/python/pulumi_aws/sagemaker/workforce.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,46 @@ def __init__(__self__, *, :param pulumi.Input['WorkforceSourceIpConfigArgs'] source_ip_config: A list of IP address ranges Used to create an allow list of IP addresses for a private workforce. By default, a workforce isn't restricted to specific IP addresses. see Source Ip Config details below. :param pulumi.Input['WorkforceWorkforceVpcConfigArgs'] workforce_vpc_config: configure a workforce using VPC. see Workforce VPC Config details below. """ - pulumi.set(__self__, "workforce_name", workforce_name) + WorkforceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + workforce_name=workforce_name, + cognito_config=cognito_config, + oidc_config=oidc_config, + source_ip_config=source_ip_config, + workforce_vpc_config=workforce_vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + workforce_name: Optional[pulumi.Input[str]] = None, + cognito_config: Optional[pulumi.Input['WorkforceCognitoConfigArgs']] = None, + oidc_config: Optional[pulumi.Input['WorkforceOidcConfigArgs']] = None, + source_ip_config: Optional[pulumi.Input['WorkforceSourceIpConfigArgs']] = None, + workforce_vpc_config: Optional[pulumi.Input['WorkforceWorkforceVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if workforce_name is None and 'workforceName' in kwargs: + workforce_name = kwargs['workforceName'] + if workforce_name is None: + raise TypeError("Missing 'workforce_name' argument") + if cognito_config is None and 'cognitoConfig' in kwargs: + cognito_config = kwargs['cognitoConfig'] + if oidc_config is None and 'oidcConfig' in kwargs: + oidc_config = kwargs['oidcConfig'] + if source_ip_config is None and 'sourceIpConfig' in kwargs: + source_ip_config = kwargs['sourceIpConfig'] + if workforce_vpc_config is None and 'workforceVpcConfig' in kwargs: + workforce_vpc_config = kwargs['workforceVpcConfig'] + + _setter("workforce_name", workforce_name) if cognito_config is not None: - pulumi.set(__self__, "cognito_config", cognito_config) + _setter("cognito_config", cognito_config) if oidc_config is not None: - pulumi.set(__self__, "oidc_config", oidc_config) + _setter("oidc_config", oidc_config) if source_ip_config is not None: - pulumi.set(__self__, "source_ip_config", source_ip_config) + _setter("source_ip_config", source_ip_config) if workforce_vpc_config is not None: - pulumi.set(__self__, "workforce_vpc_config", workforce_vpc_config) + _setter("workforce_vpc_config", workforce_vpc_config) @property @pulumi.getter(name="workforceName") @@ -121,20 +152,53 @@ def __init__(__self__, *, :param pulumi.Input[str] workforce_name: The name of the Workforce (must be unique). :param pulumi.Input['WorkforceWorkforceVpcConfigArgs'] workforce_vpc_config: configure a workforce using VPC. see Workforce VPC Config details below. """ + _WorkforceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cognito_config=cognito_config, + oidc_config=oidc_config, + source_ip_config=source_ip_config, + subdomain=subdomain, + workforce_name=workforce_name, + workforce_vpc_config=workforce_vpc_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cognito_config: Optional[pulumi.Input['WorkforceCognitoConfigArgs']] = None, + oidc_config: Optional[pulumi.Input['WorkforceOidcConfigArgs']] = None, + source_ip_config: Optional[pulumi.Input['WorkforceSourceIpConfigArgs']] = None, + subdomain: Optional[pulumi.Input[str]] = None, + workforce_name: Optional[pulumi.Input[str]] = None, + workforce_vpc_config: Optional[pulumi.Input['WorkforceWorkforceVpcConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cognito_config is None and 'cognitoConfig' in kwargs: + cognito_config = kwargs['cognitoConfig'] + if oidc_config is None and 'oidcConfig' in kwargs: + oidc_config = kwargs['oidcConfig'] + if source_ip_config is None and 'sourceIpConfig' in kwargs: + source_ip_config = kwargs['sourceIpConfig'] + if workforce_name is None and 'workforceName' in kwargs: + workforce_name = kwargs['workforceName'] + if workforce_vpc_config is None and 'workforceVpcConfig' in kwargs: + workforce_vpc_config = kwargs['workforceVpcConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cognito_config is not None: - pulumi.set(__self__, "cognito_config", cognito_config) + _setter("cognito_config", cognito_config) if oidc_config is not None: - pulumi.set(__self__, "oidc_config", oidc_config) + _setter("oidc_config", oidc_config) if source_ip_config is not None: - pulumi.set(__self__, "source_ip_config", source_ip_config) + _setter("source_ip_config", source_ip_config) if subdomain is not None: - pulumi.set(__self__, "subdomain", subdomain) + _setter("subdomain", subdomain) if workforce_name is not None: - pulumi.set(__self__, "workforce_name", workforce_name) + _setter("workforce_name", workforce_name) if workforce_vpc_config is not None: - pulumi.set(__self__, "workforce_vpc_config", workforce_vpc_config) + _setter("workforce_vpc_config", workforce_vpc_config) @property @pulumi.getter @@ -361,6 +425,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkforceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -380,12 +448,16 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = WorkforceArgs.__new__(WorkforceArgs) + cognito_config = _utilities.configure(cognito_config, WorkforceCognitoConfigArgs, True) __props__.__dict__["cognito_config"] = cognito_config + oidc_config = _utilities.configure(oidc_config, WorkforceOidcConfigArgs, True) __props__.__dict__["oidc_config"] = oidc_config + source_ip_config = _utilities.configure(source_ip_config, WorkforceSourceIpConfigArgs, True) __props__.__dict__["source_ip_config"] = source_ip_config if workforce_name is None and not opts.urn: raise TypeError("Missing required property 'workforce_name'") __props__.__dict__["workforce_name"] = workforce_name + workforce_vpc_config = _utilities.configure(workforce_vpc_config, WorkforceWorkforceVpcConfigArgs, True) __props__.__dict__["workforce_vpc_config"] = workforce_vpc_config __props__.__dict__["arn"] = None __props__.__dict__["subdomain"] = None diff --git a/sdk/python/pulumi_aws/sagemaker/workteam.py b/sdk/python/pulumi_aws/sagemaker/workteam.py index e0aea51be64..285d60026ef 100644 --- a/sdk/python/pulumi_aws/sagemaker/workteam.py +++ b/sdk/python/pulumi_aws/sagemaker/workteam.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,14 +31,51 @@ def __init__(__self__, *, :param pulumi.Input['WorkteamNotificationConfigurationArgs'] notification_configuration: Configures notification of workers regarding available or expiring work items. see Notification Configuration details below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "member_definitions", member_definitions) - pulumi.set(__self__, "workforce_name", workforce_name) - pulumi.set(__self__, "workteam_name", workteam_name) + WorkteamArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + member_definitions=member_definitions, + workforce_name=workforce_name, + workteam_name=workteam_name, + notification_configuration=notification_configuration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + member_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['WorkteamMemberDefinitionArgs']]]] = None, + workforce_name: Optional[pulumi.Input[str]] = None, + workteam_name: Optional[pulumi.Input[str]] = None, + notification_configuration: Optional[pulumi.Input['WorkteamNotificationConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is None: + raise TypeError("Missing 'description' argument") + if member_definitions is None and 'memberDefinitions' in kwargs: + member_definitions = kwargs['memberDefinitions'] + if member_definitions is None: + raise TypeError("Missing 'member_definitions' argument") + if workforce_name is None and 'workforceName' in kwargs: + workforce_name = kwargs['workforceName'] + if workforce_name is None: + raise TypeError("Missing 'workforce_name' argument") + if workteam_name is None and 'workteamName' in kwargs: + workteam_name = kwargs['workteamName'] + if workteam_name is None: + raise TypeError("Missing 'workteam_name' argument") + if notification_configuration is None and 'notificationConfiguration' in kwargs: + notification_configuration = kwargs['notificationConfiguration'] + + _setter("description", description) + _setter("member_definitions", member_definitions) + _setter("workforce_name", workforce_name) + _setter("workteam_name", workteam_name) if notification_configuration is not None: - pulumi.set(__self__, "notification_configuration", notification_configuration) + _setter("notification_configuration", notification_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -137,27 +174,64 @@ def __init__(__self__, *, :param pulumi.Input[str] workforce_name: The name of the Workteam (must be unique). :param pulumi.Input[str] workteam_name: The name of the workforce. """ + _WorkteamState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + member_definitions=member_definitions, + notification_configuration=notification_configuration, + subdomain=subdomain, + tags=tags, + tags_all=tags_all, + workforce_name=workforce_name, + workteam_name=workteam_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + member_definitions: Optional[pulumi.Input[Sequence[pulumi.Input['WorkteamMemberDefinitionArgs']]]] = None, + notification_configuration: Optional[pulumi.Input['WorkteamNotificationConfigurationArgs']] = None, + subdomain: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workforce_name: Optional[pulumi.Input[str]] = None, + workteam_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if member_definitions is None and 'memberDefinitions' in kwargs: + member_definitions = kwargs['memberDefinitions'] + if notification_configuration is None and 'notificationConfiguration' in kwargs: + notification_configuration = kwargs['notificationConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if workforce_name is None and 'workforceName' in kwargs: + workforce_name = kwargs['workforceName'] + if workteam_name is None and 'workteamName' in kwargs: + workteam_name = kwargs['workteamName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if member_definitions is not None: - pulumi.set(__self__, "member_definitions", member_definitions) + _setter("member_definitions", member_definitions) if notification_configuration is not None: - pulumi.set(__self__, "notification_configuration", notification_configuration) + _setter("notification_configuration", notification_configuration) if subdomain is not None: - pulumi.set(__self__, "subdomain", subdomain) + _setter("subdomain", subdomain) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if workforce_name is not None: - pulumi.set(__self__, "workforce_name", workforce_name) + _setter("workforce_name", workforce_name) if workteam_name is not None: - pulumi.set(__self__, "workteam_name", workteam_name) + _setter("workteam_name", workteam_name) @property @pulumi.getter @@ -402,6 +476,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkteamArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -428,6 +506,7 @@ def _internal_init(__self__, if member_definitions is None and not opts.urn: raise TypeError("Missing required property 'member_definitions'") __props__.__dict__["member_definitions"] = member_definitions + notification_configuration = _utilities.configure(notification_configuration, WorkteamNotificationConfigurationArgs, True) __props__.__dict__["notification_configuration"] = notification_configuration __props__.__dict__["tags"] = tags if workforce_name is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/scheduler/_inputs.py b/sdk/python/pulumi_aws/scheduler/_inputs.py index ebb68fdeef6..69486c9c849 100644 --- a/sdk/python/pulumi_aws/scheduler/_inputs.py +++ b/sdk/python/pulumi_aws/scheduler/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -35,9 +35,26 @@ def __init__(__self__, *, :param pulumi.Input[str] mode: Determines whether the schedule is invoked within a flexible time window. One of: `OFF`, `FLEXIBLE`. :param pulumi.Input[int] maximum_window_in_minutes: Maximum time window during which a schedule can be invoked. Ranges from `1` to `1440` minutes. """ - pulumi.set(__self__, "mode", mode) + ScheduleFlexibleTimeWindowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + maximum_window_in_minutes=maximum_window_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[pulumi.Input[str]] = None, + maximum_window_in_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + if maximum_window_in_minutes is None and 'maximumWindowInMinutes' in kwargs: + maximum_window_in_minutes = kwargs['maximumWindowInMinutes'] + + _setter("mode", mode) if maximum_window_in_minutes is not None: - pulumi.set(__self__, "maximum_window_in_minutes", maximum_window_in_minutes) + _setter("maximum_window_in_minutes", maximum_window_in_minutes) @property @pulumi.getter @@ -91,24 +108,73 @@ def __init__(__self__, *, :param pulumi.Input['ScheduleTargetSagemakerPipelineParametersArgs'] sagemaker_pipeline_parameters: Templated target type for the Amazon SageMaker [`StartPipelineExecution`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StartPipelineExecution.html) API operation. Detailed below. :param pulumi.Input['ScheduleTargetSqsParametersArgs'] sqs_parameters: The templated target type for the Amazon SQS [`SendMessage`](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) API operation. Detailed below. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "role_arn", role_arn) + ScheduleTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + role_arn=role_arn, + dead_letter_config=dead_letter_config, + ecs_parameters=ecs_parameters, + eventbridge_parameters=eventbridge_parameters, + input=input, + kinesis_parameters=kinesis_parameters, + retry_policy=retry_policy, + sagemaker_pipeline_parameters=sagemaker_pipeline_parameters, + sqs_parameters=sqs_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + dead_letter_config: Optional[pulumi.Input['ScheduleTargetDeadLetterConfigArgs']] = None, + ecs_parameters: Optional[pulumi.Input['ScheduleTargetEcsParametersArgs']] = None, + eventbridge_parameters: Optional[pulumi.Input['ScheduleTargetEventbridgeParametersArgs']] = None, + input: Optional[pulumi.Input[str]] = None, + kinesis_parameters: Optional[pulumi.Input['ScheduleTargetKinesisParametersArgs']] = None, + retry_policy: Optional[pulumi.Input['ScheduleTargetRetryPolicyArgs']] = None, + sagemaker_pipeline_parameters: Optional[pulumi.Input['ScheduleTargetSagemakerPipelineParametersArgs']] = None, + sqs_parameters: Optional[pulumi.Input['ScheduleTargetSqsParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if ecs_parameters is None and 'ecsParameters' in kwargs: + ecs_parameters = kwargs['ecsParameters'] + if eventbridge_parameters is None and 'eventbridgeParameters' in kwargs: + eventbridge_parameters = kwargs['eventbridgeParameters'] + if kinesis_parameters is None and 'kinesisParameters' in kwargs: + kinesis_parameters = kwargs['kinesisParameters'] + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + if sagemaker_pipeline_parameters is None and 'sagemakerPipelineParameters' in kwargs: + sagemaker_pipeline_parameters = kwargs['sagemakerPipelineParameters'] + if sqs_parameters is None and 'sqsParameters' in kwargs: + sqs_parameters = kwargs['sqsParameters'] + + _setter("arn", arn) + _setter("role_arn", role_arn) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if ecs_parameters is not None: - pulumi.set(__self__, "ecs_parameters", ecs_parameters) + _setter("ecs_parameters", ecs_parameters) if eventbridge_parameters is not None: - pulumi.set(__self__, "eventbridge_parameters", eventbridge_parameters) + _setter("eventbridge_parameters", eventbridge_parameters) if input is not None: - pulumi.set(__self__, "input", input) + _setter("input", input) if kinesis_parameters is not None: - pulumi.set(__self__, "kinesis_parameters", kinesis_parameters) + _setter("kinesis_parameters", kinesis_parameters) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if sagemaker_pipeline_parameters is not None: - pulumi.set(__self__, "sagemaker_pipeline_parameters", sagemaker_pipeline_parameters) + _setter("sagemaker_pipeline_parameters", sagemaker_pipeline_parameters) if sqs_parameters is not None: - pulumi.set(__self__, "sqs_parameters", sqs_parameters) + _setter("sqs_parameters", sqs_parameters) @property @pulumi.getter @@ -240,7 +306,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] arn: ARN of the SQS queue specified as the destination for the dead-letter queue. """ - pulumi.set(__self__, "arn", arn) + ScheduleTargetDeadLetterConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) @property @pulumi.getter @@ -290,33 +369,96 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: The metadata that you apply to the task. Each tag consists of a key and an optional value. For more information, see [`RunTask`](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html) in the Amazon ECS API Reference. :param pulumi.Input[int] task_count: The number of tasks to create. Ranges from `1` (default) to `10`. """ - pulumi.set(__self__, "task_definition_arn", task_definition_arn) + ScheduleTargetEcsParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + task_definition_arn=task_definition_arn, + capacity_provider_strategies=capacity_provider_strategies, + enable_ecs_managed_tags=enable_ecs_managed_tags, + enable_execute_command=enable_execute_command, + group=group, + launch_type=launch_type, + network_configuration=network_configuration, + placement_constraints=placement_constraints, + placement_strategies=placement_strategies, + platform_version=platform_version, + propagate_tags=propagate_tags, + reference_id=reference_id, + tags=tags, + task_count=task_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + task_definition_arn: Optional[pulumi.Input[str]] = None, + capacity_provider_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ScheduleTargetEcsParametersCapacityProviderStrategyArgs']]]] = None, + enable_ecs_managed_tags: Optional[pulumi.Input[bool]] = None, + enable_execute_command: Optional[pulumi.Input[bool]] = None, + group: Optional[pulumi.Input[str]] = None, + launch_type: Optional[pulumi.Input[str]] = None, + network_configuration: Optional[pulumi.Input['ScheduleTargetEcsParametersNetworkConfigurationArgs']] = None, + placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['ScheduleTargetEcsParametersPlacementConstraintArgs']]]] = None, + placement_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ScheduleTargetEcsParametersPlacementStrategyArgs']]]] = None, + platform_version: Optional[pulumi.Input[str]] = None, + propagate_tags: Optional[pulumi.Input[str]] = None, + reference_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + task_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if task_definition_arn is None and 'taskDefinitionArn' in kwargs: + task_definition_arn = kwargs['taskDefinitionArn'] + if task_definition_arn is None: + raise TypeError("Missing 'task_definition_arn' argument") + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if enable_ecs_managed_tags is None and 'enableEcsManagedTags' in kwargs: + enable_ecs_managed_tags = kwargs['enableEcsManagedTags'] + if enable_execute_command is None and 'enableExecuteCommand' in kwargs: + enable_execute_command = kwargs['enableExecuteCommand'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if placement_strategies is None and 'placementStrategies' in kwargs: + placement_strategies = kwargs['placementStrategies'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if reference_id is None and 'referenceId' in kwargs: + reference_id = kwargs['referenceId'] + if task_count is None and 'taskCount' in kwargs: + task_count = kwargs['taskCount'] + + _setter("task_definition_arn", task_definition_arn) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if enable_ecs_managed_tags is not None: - pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) + _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - pulumi.set(__self__, "enable_execute_command", enable_execute_command) + _setter("enable_execute_command", enable_execute_command) if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if placement_strategies is not None: - pulumi.set(__self__, "placement_strategies", placement_strategies) + _setter("placement_strategies", placement_strategies) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if reference_id is not None: - pulumi.set(__self__, "reference_id", reference_id) + _setter("reference_id", reference_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if task_count is not None: - pulumi.set(__self__, "task_count", task_count) + _setter("task_count", task_count) @property @pulumi.getter(name="taskDefinitionArn") @@ -500,11 +642,30 @@ def __init__(__self__, *, :param pulumi.Input[int] base: How many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Ranges from `0` (default) to `100000`. :param pulumi.Input[int] weight: Designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied. Ranges from from `0` to `1000`. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + ScheduleTargetEcsParametersCapacityProviderStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[pulumi.Input[str]] = None, + base: Optional[pulumi.Input[int]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -554,11 +715,32 @@ def __init__(__self__, *, :param pulumi.Input[bool] assign_public_ip: Specifies whether the task's elastic network interface receives a public IP address. This attribute is a boolean type, where `true` maps to `ENABLED` and `false` to `DISABLED`. You can specify `true` only when the `launch_type` is set to `FARGATE`. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: Set of 1 to 5 Security Group ID-s to be associated with the task. These security groups must all be in the same VPC. """ - pulumi.set(__self__, "subnets", subnets) + ScheduleTargetEcsParametersNetworkConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + assign_public_ip: Optional[pulumi.Input[bool]] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -606,9 +788,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of constraint. One of: `distinctInstance`, `memberOf`. :param pulumi.Input[str] expression: A cluster query language expression to apply to the constraint. You cannot specify an expression if the constraint type is `distinctInstance`. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the Amazon ECS Developer Guide. """ - pulumi.set(__self__, "type", type) + ScheduleTargetEcsParametersPlacementConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -644,9 +841,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of placement strategy. One of: `random`, `spread`, `binpack`. :param pulumi.Input[str] field: The field to apply the placement strategy against. """ - pulumi.set(__self__, "type", type) + ScheduleTargetEcsParametersPlacementStrategyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + field=field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + field: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) @property @pulumi.getter @@ -682,8 +894,27 @@ def __init__(__self__, *, :param pulumi.Input[str] detail_type: Free-form string used to decide what fields to expect in the event detail. Up to 128 characters. :param pulumi.Input[str] source: Source of the event. """ - pulumi.set(__self__, "detail_type", detail_type) - pulumi.set(__self__, "source", source) + ScheduleTargetEventbridgeParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + detail_type=detail_type, + source=source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + detail_type: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detail_type is None and 'detailType' in kwargs: + detail_type = kwargs['detailType'] + if detail_type is None: + raise TypeError("Missing 'detail_type' argument") + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("detail_type", detail_type) + _setter("source", source) @property @pulumi.getter(name="detailType") @@ -717,7 +948,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] partition_key: Specifies the shard to which EventBridge Scheduler sends the event. Up to 256 characters. """ - pulumi.set(__self__, "partition_key", partition_key) + ScheduleTargetKinesisParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + partition_key=partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + partition_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if partition_key is None and 'partitionKey' in kwargs: + partition_key = kwargs['partitionKey'] + if partition_key is None: + raise TypeError("Missing 'partition_key' argument") + + _setter("partition_key", partition_key) @property @pulumi.getter(name="partitionKey") @@ -741,10 +987,27 @@ def __init__(__self__, *, :param pulumi.Input[int] maximum_event_age_in_seconds: Maximum amount of time, in seconds, to continue to make retry attempts. Ranges from `60` to `86400` (default). :param pulumi.Input[int] maximum_retry_attempts: Maximum number of retry attempts to make before the request fails. Ranges from `0` to `185` (default). """ + ScheduleTargetRetryPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_event_age_in_seconds=maximum_event_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_event_age_in_seconds: Optional[pulumi.Input[int]] = None, + maximum_retry_attempts: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_event_age_in_seconds is None and 'maximumEventAgeInSeconds' in kwargs: + maximum_event_age_in_seconds = kwargs['maximumEventAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if maximum_event_age_in_seconds is not None: - pulumi.set(__self__, "maximum_event_age_in_seconds", maximum_event_age_in_seconds) + _setter("maximum_event_age_in_seconds", maximum_event_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) @property @pulumi.getter(name="maximumEventAgeInSeconds") @@ -778,8 +1041,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ScheduleTargetSagemakerPipelineParametersPipelineParameterArgs']]] pipeline_parameters: Set of up to 200 parameter names and values to use when executing the SageMaker Model Building Pipeline. Detailed below. """ + ScheduleTargetSagemakerPipelineParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pipeline_parameters=pipeline_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pipeline_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ScheduleTargetSagemakerPipelineParametersPipelineParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pipeline_parameters is None and 'pipelineParameters' in kwargs: + pipeline_parameters = kwargs['pipelineParameters'] + if pipeline_parameters is not None: - pulumi.set(__self__, "pipeline_parameters", pipeline_parameters) + _setter("pipeline_parameters", pipeline_parameters) @property @pulumi.getter(name="pipelineParameters") @@ -803,8 +1079,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of parameter to start execution of a SageMaker Model Building Pipeline. :param pulumi.Input[str] value: Value of parameter to start execution of a SageMaker Model Building Pipeline. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ScheduleTargetSagemakerPipelineParametersPipelineParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -838,8 +1131,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] message_group_id: FIFO message group ID to use as the target. """ + ScheduleTargetSqsParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_group_id=message_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_group_id is None and 'messageGroupId' in kwargs: + message_group_id = kwargs['messageGroupId'] + if message_group_id is not None: - pulumi.set(__self__, "message_group_id", message_group_id) + _setter("message_group_id", message_group_id) @property @pulumi.getter(name="messageGroupId") diff --git a/sdk/python/pulumi_aws/scheduler/outputs.py b/sdk/python/pulumi_aws/scheduler/outputs.py index b769dd63940..1f0cc75104f 100644 --- a/sdk/python/pulumi_aws/scheduler/outputs.py +++ b/sdk/python/pulumi_aws/scheduler/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -53,9 +53,26 @@ def __init__(__self__, *, :param str mode: Determines whether the schedule is invoked within a flexible time window. One of: `OFF`, `FLEXIBLE`. :param int maximum_window_in_minutes: Maximum time window during which a schedule can be invoked. Ranges from `1` to `1440` minutes. """ - pulumi.set(__self__, "mode", mode) + ScheduleFlexibleTimeWindow._configure( + lambda key, value: pulumi.set(__self__, key, value), + mode=mode, + maximum_window_in_minutes=maximum_window_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + mode: Optional[str] = None, + maximum_window_in_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if mode is None: + raise TypeError("Missing 'mode' argument") + if maximum_window_in_minutes is None and 'maximumWindowInMinutes' in kwargs: + maximum_window_in_minutes = kwargs['maximumWindowInMinutes'] + + _setter("mode", mode) if maximum_window_in_minutes is not None: - pulumi.set(__self__, "maximum_window_in_minutes", maximum_window_in_minutes) + _setter("maximum_window_in_minutes", maximum_window_in_minutes) @property @pulumi.getter @@ -132,24 +149,73 @@ def __init__(__self__, *, :param 'ScheduleTargetSagemakerPipelineParametersArgs' sagemaker_pipeline_parameters: Templated target type for the Amazon SageMaker [`StartPipelineExecution`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StartPipelineExecution.html) API operation. Detailed below. :param 'ScheduleTargetSqsParametersArgs' sqs_parameters: The templated target type for the Amazon SQS [`SendMessage`](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) API operation. Detailed below. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "role_arn", role_arn) + ScheduleTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + role_arn=role_arn, + dead_letter_config=dead_letter_config, + ecs_parameters=ecs_parameters, + eventbridge_parameters=eventbridge_parameters, + input=input, + kinesis_parameters=kinesis_parameters, + retry_policy=retry_policy, + sagemaker_pipeline_parameters=sagemaker_pipeline_parameters, + sqs_parameters=sqs_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + role_arn: Optional[str] = None, + dead_letter_config: Optional['outputs.ScheduleTargetDeadLetterConfig'] = None, + ecs_parameters: Optional['outputs.ScheduleTargetEcsParameters'] = None, + eventbridge_parameters: Optional['outputs.ScheduleTargetEventbridgeParameters'] = None, + input: Optional[str] = None, + kinesis_parameters: Optional['outputs.ScheduleTargetKinesisParameters'] = None, + retry_policy: Optional['outputs.ScheduleTargetRetryPolicy'] = None, + sagemaker_pipeline_parameters: Optional['outputs.ScheduleTargetSagemakerPipelineParameters'] = None, + sqs_parameters: Optional['outputs.ScheduleTargetSqsParameters'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if dead_letter_config is None and 'deadLetterConfig' in kwargs: + dead_letter_config = kwargs['deadLetterConfig'] + if ecs_parameters is None and 'ecsParameters' in kwargs: + ecs_parameters = kwargs['ecsParameters'] + if eventbridge_parameters is None and 'eventbridgeParameters' in kwargs: + eventbridge_parameters = kwargs['eventbridgeParameters'] + if kinesis_parameters is None and 'kinesisParameters' in kwargs: + kinesis_parameters = kwargs['kinesisParameters'] + if retry_policy is None and 'retryPolicy' in kwargs: + retry_policy = kwargs['retryPolicy'] + if sagemaker_pipeline_parameters is None and 'sagemakerPipelineParameters' in kwargs: + sagemaker_pipeline_parameters = kwargs['sagemakerPipelineParameters'] + if sqs_parameters is None and 'sqsParameters' in kwargs: + sqs_parameters = kwargs['sqsParameters'] + + _setter("arn", arn) + _setter("role_arn", role_arn) if dead_letter_config is not None: - pulumi.set(__self__, "dead_letter_config", dead_letter_config) + _setter("dead_letter_config", dead_letter_config) if ecs_parameters is not None: - pulumi.set(__self__, "ecs_parameters", ecs_parameters) + _setter("ecs_parameters", ecs_parameters) if eventbridge_parameters is not None: - pulumi.set(__self__, "eventbridge_parameters", eventbridge_parameters) + _setter("eventbridge_parameters", eventbridge_parameters) if input is not None: - pulumi.set(__self__, "input", input) + _setter("input", input) if kinesis_parameters is not None: - pulumi.set(__self__, "kinesis_parameters", kinesis_parameters) + _setter("kinesis_parameters", kinesis_parameters) if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) + _setter("retry_policy", retry_policy) if sagemaker_pipeline_parameters is not None: - pulumi.set(__self__, "sagemaker_pipeline_parameters", sagemaker_pipeline_parameters) + _setter("sagemaker_pipeline_parameters", sagemaker_pipeline_parameters) if sqs_parameters is not None: - pulumi.set(__self__, "sqs_parameters", sqs_parameters) + _setter("sqs_parameters", sqs_parameters) @property @pulumi.getter @@ -241,7 +307,20 @@ def __init__(__self__, *, """ :param str arn: ARN of the SQS queue specified as the destination for the dead-letter queue. """ - pulumi.set(__self__, "arn", arn) + ScheduleTargetDeadLetterConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + + _setter("arn", arn) @property @pulumi.getter @@ -326,33 +405,96 @@ def __init__(__self__, *, :param Mapping[str, str] tags: The metadata that you apply to the task. Each tag consists of a key and an optional value. For more information, see [`RunTask`](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html) in the Amazon ECS API Reference. :param int task_count: The number of tasks to create. Ranges from `1` (default) to `10`. """ - pulumi.set(__self__, "task_definition_arn", task_definition_arn) + ScheduleTargetEcsParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + task_definition_arn=task_definition_arn, + capacity_provider_strategies=capacity_provider_strategies, + enable_ecs_managed_tags=enable_ecs_managed_tags, + enable_execute_command=enable_execute_command, + group=group, + launch_type=launch_type, + network_configuration=network_configuration, + placement_constraints=placement_constraints, + placement_strategies=placement_strategies, + platform_version=platform_version, + propagate_tags=propagate_tags, + reference_id=reference_id, + tags=tags, + task_count=task_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + task_definition_arn: Optional[str] = None, + capacity_provider_strategies: Optional[Sequence['outputs.ScheduleTargetEcsParametersCapacityProviderStrategy']] = None, + enable_ecs_managed_tags: Optional[bool] = None, + enable_execute_command: Optional[bool] = None, + group: Optional[str] = None, + launch_type: Optional[str] = None, + network_configuration: Optional['outputs.ScheduleTargetEcsParametersNetworkConfiguration'] = None, + placement_constraints: Optional[Sequence['outputs.ScheduleTargetEcsParametersPlacementConstraint']] = None, + placement_strategies: Optional[Sequence['outputs.ScheduleTargetEcsParametersPlacementStrategy']] = None, + platform_version: Optional[str] = None, + propagate_tags: Optional[str] = None, + reference_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + task_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if task_definition_arn is None and 'taskDefinitionArn' in kwargs: + task_definition_arn = kwargs['taskDefinitionArn'] + if task_definition_arn is None: + raise TypeError("Missing 'task_definition_arn' argument") + if capacity_provider_strategies is None and 'capacityProviderStrategies' in kwargs: + capacity_provider_strategies = kwargs['capacityProviderStrategies'] + if enable_ecs_managed_tags is None and 'enableEcsManagedTags' in kwargs: + enable_ecs_managed_tags = kwargs['enableEcsManagedTags'] + if enable_execute_command is None and 'enableExecuteCommand' in kwargs: + enable_execute_command = kwargs['enableExecuteCommand'] + if launch_type is None and 'launchType' in kwargs: + launch_type = kwargs['launchType'] + if network_configuration is None and 'networkConfiguration' in kwargs: + network_configuration = kwargs['networkConfiguration'] + if placement_constraints is None and 'placementConstraints' in kwargs: + placement_constraints = kwargs['placementConstraints'] + if placement_strategies is None and 'placementStrategies' in kwargs: + placement_strategies = kwargs['placementStrategies'] + if platform_version is None and 'platformVersion' in kwargs: + platform_version = kwargs['platformVersion'] + if propagate_tags is None and 'propagateTags' in kwargs: + propagate_tags = kwargs['propagateTags'] + if reference_id is None and 'referenceId' in kwargs: + reference_id = kwargs['referenceId'] + if task_count is None and 'taskCount' in kwargs: + task_count = kwargs['taskCount'] + + _setter("task_definition_arn", task_definition_arn) if capacity_provider_strategies is not None: - pulumi.set(__self__, "capacity_provider_strategies", capacity_provider_strategies) + _setter("capacity_provider_strategies", capacity_provider_strategies) if enable_ecs_managed_tags is not None: - pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) + _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - pulumi.set(__self__, "enable_execute_command", enable_execute_command) + _setter("enable_execute_command", enable_execute_command) if group is not None: - pulumi.set(__self__, "group", group) + _setter("group", group) if launch_type is not None: - pulumi.set(__self__, "launch_type", launch_type) + _setter("launch_type", launch_type) if network_configuration is not None: - pulumi.set(__self__, "network_configuration", network_configuration) + _setter("network_configuration", network_configuration) if placement_constraints is not None: - pulumi.set(__self__, "placement_constraints", placement_constraints) + _setter("placement_constraints", placement_constraints) if placement_strategies is not None: - pulumi.set(__self__, "placement_strategies", placement_strategies) + _setter("placement_strategies", placement_strategies) if platform_version is not None: - pulumi.set(__self__, "platform_version", platform_version) + _setter("platform_version", platform_version) if propagate_tags is not None: - pulumi.set(__self__, "propagate_tags", propagate_tags) + _setter("propagate_tags", propagate_tags) if reference_id is not None: - pulumi.set(__self__, "reference_id", reference_id) + _setter("reference_id", reference_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if task_count is not None: - pulumi.set(__self__, "task_count", task_count) + _setter("task_count", task_count) @property @pulumi.getter(name="taskDefinitionArn") @@ -497,11 +639,30 @@ def __init__(__self__, *, :param int base: How many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Ranges from `0` (default) to `100000`. :param int weight: Designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied. Ranges from from `0` to `1000`. """ - pulumi.set(__self__, "capacity_provider", capacity_provider) + ScheduleTargetEcsParametersCapacityProviderStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity_provider=capacity_provider, + base=base, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity_provider: Optional[str] = None, + base: Optional[int] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity_provider is None and 'capacityProvider' in kwargs: + capacity_provider = kwargs['capacityProvider'] + if capacity_provider is None: + raise TypeError("Missing 'capacity_provider' argument") + + _setter("capacity_provider", capacity_provider) if base is not None: - pulumi.set(__self__, "base", base) + _setter("base", base) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="capacityProvider") @@ -558,11 +719,32 @@ def __init__(__self__, *, :param bool assign_public_ip: Specifies whether the task's elastic network interface receives a public IP address. This attribute is a boolean type, where `true` maps to `ENABLED` and `false` to `DISABLED`. You can specify `true` only when the `launch_type` is set to `FARGATE`. :param Sequence[str] security_groups: Set of 1 to 5 Security Group ID-s to be associated with the task. These security groups must all be in the same VPC. """ - pulumi.set(__self__, "subnets", subnets) + ScheduleTargetEcsParametersNetworkConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + subnets=subnets, + assign_public_ip=assign_public_ip, + security_groups=security_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + subnets: Optional[Sequence[str]] = None, + assign_public_ip: Optional[bool] = None, + security_groups: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if subnets is None: + raise TypeError("Missing 'subnets' argument") + if assign_public_ip is None and 'assignPublicIp' in kwargs: + assign_public_ip = kwargs['assignPublicIp'] + if security_groups is None and 'securityGroups' in kwargs: + security_groups = kwargs['securityGroups'] + + _setter("subnets", subnets) if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) + _setter("assign_public_ip", assign_public_ip) if security_groups is not None: - pulumi.set(__self__, "security_groups", security_groups) + _setter("security_groups", security_groups) @property @pulumi.getter @@ -598,9 +780,24 @@ def __init__(__self__, *, :param str type: The type of constraint. One of: `distinctInstance`, `memberOf`. :param str expression: A cluster query language expression to apply to the constraint. You cannot specify an expression if the constraint type is `distinctInstance`. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the Amazon ECS Developer Guide. """ - pulumi.set(__self__, "type", type) + ScheduleTargetEcsParametersPlacementConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + expression=expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if expression is not None: - pulumi.set(__self__, "expression", expression) + _setter("expression", expression) @property @pulumi.getter @@ -628,9 +825,24 @@ def __init__(__self__, *, :param str type: The type of placement strategy. One of: `random`, `spread`, `binpack`. :param str field: The field to apply the placement strategy against. """ - pulumi.set(__self__, "type", type) + ScheduleTargetEcsParametersPlacementStrategy._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + field=field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + field: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if field is not None: - pulumi.set(__self__, "field", field) + _setter("field", field) @property @pulumi.getter @@ -675,8 +887,27 @@ def __init__(__self__, *, :param str detail_type: Free-form string used to decide what fields to expect in the event detail. Up to 128 characters. :param str source: Source of the event. """ - pulumi.set(__self__, "detail_type", detail_type) - pulumi.set(__self__, "source", source) + ScheduleTargetEventbridgeParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + detail_type=detail_type, + source=source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + detail_type: Optional[str] = None, + source: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if detail_type is None and 'detailType' in kwargs: + detail_type = kwargs['detailType'] + if detail_type is None: + raise TypeError("Missing 'detail_type' argument") + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("detail_type", detail_type) + _setter("source", source) @property @pulumi.getter(name="detailType") @@ -719,7 +950,22 @@ def __init__(__self__, *, """ :param str partition_key: Specifies the shard to which EventBridge Scheduler sends the event. Up to 256 characters. """ - pulumi.set(__self__, "partition_key", partition_key) + ScheduleTargetKinesisParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + partition_key=partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + partition_key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if partition_key is None and 'partitionKey' in kwargs: + partition_key = kwargs['partitionKey'] + if partition_key is None: + raise TypeError("Missing 'partition_key' argument") + + _setter("partition_key", partition_key) @property @pulumi.getter(name="partitionKey") @@ -758,10 +1004,27 @@ def __init__(__self__, *, :param int maximum_event_age_in_seconds: Maximum amount of time, in seconds, to continue to make retry attempts. Ranges from `60` to `86400` (default). :param int maximum_retry_attempts: Maximum number of retry attempts to make before the request fails. Ranges from `0` to `185` (default). """ + ScheduleTargetRetryPolicy._configure( + lambda key, value: pulumi.set(__self__, key, value), + maximum_event_age_in_seconds=maximum_event_age_in_seconds, + maximum_retry_attempts=maximum_retry_attempts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + maximum_event_age_in_seconds: Optional[int] = None, + maximum_retry_attempts: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if maximum_event_age_in_seconds is None and 'maximumEventAgeInSeconds' in kwargs: + maximum_event_age_in_seconds = kwargs['maximumEventAgeInSeconds'] + if maximum_retry_attempts is None and 'maximumRetryAttempts' in kwargs: + maximum_retry_attempts = kwargs['maximumRetryAttempts'] + if maximum_event_age_in_seconds is not None: - pulumi.set(__self__, "maximum_event_age_in_seconds", maximum_event_age_in_seconds) + _setter("maximum_event_age_in_seconds", maximum_event_age_in_seconds) if maximum_retry_attempts is not None: - pulumi.set(__self__, "maximum_retry_attempts", maximum_retry_attempts) + _setter("maximum_retry_attempts", maximum_retry_attempts) @property @pulumi.getter(name="maximumEventAgeInSeconds") @@ -804,8 +1067,21 @@ def __init__(__self__, *, """ :param Sequence['ScheduleTargetSagemakerPipelineParametersPipelineParameterArgs'] pipeline_parameters: Set of up to 200 parameter names and values to use when executing the SageMaker Model Building Pipeline. Detailed below. """ + ScheduleTargetSagemakerPipelineParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + pipeline_parameters=pipeline_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pipeline_parameters: Optional[Sequence['outputs.ScheduleTargetSagemakerPipelineParametersPipelineParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pipeline_parameters is None and 'pipelineParameters' in kwargs: + pipeline_parameters = kwargs['pipelineParameters'] + if pipeline_parameters is not None: - pulumi.set(__self__, "pipeline_parameters", pipeline_parameters) + _setter("pipeline_parameters", pipeline_parameters) @property @pulumi.getter(name="pipelineParameters") @@ -825,8 +1101,25 @@ def __init__(__self__, *, :param str name: Name of parameter to start execution of a SageMaker Model Building Pipeline. :param str value: Value of parameter to start execution of a SageMaker Model Building Pipeline. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + ScheduleTargetSagemakerPipelineParametersPipelineParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -869,8 +1162,21 @@ def __init__(__self__, *, """ :param str message_group_id: FIFO message group ID to use as the target. """ + ScheduleTargetSqsParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + message_group_id=message_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message_group_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message_group_id is None and 'messageGroupId' in kwargs: + message_group_id = kwargs['messageGroupId'] + if message_group_id is not None: - pulumi.set(__self__, "message_group_id", message_group_id) + _setter("message_group_id", message_group_id) @property @pulumi.getter(name="messageGroupId") diff --git a/sdk/python/pulumi_aws/scheduler/schedule.py b/sdk/python/pulumi_aws/scheduler/schedule.py index 6006c6063bd..e72476554fb 100644 --- a/sdk/python/pulumi_aws/scheduler/schedule.py +++ b/sdk/python/pulumi_aws/scheduler/schedule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -45,27 +45,82 @@ def __init__(__self__, *, :param pulumi.Input[str] start_date: The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the start date you specify. EventBridge Scheduler ignores the start date for one-time schedules. Example: `2030-01-01T01:00:00Z`. :param pulumi.Input[str] state: Specifies whether the schedule is enabled or disabled. One of: `ENABLED` (default), `DISABLED`. """ - pulumi.set(__self__, "flexible_time_window", flexible_time_window) - pulumi.set(__self__, "schedule_expression", schedule_expression) - pulumi.set(__self__, "target", target) + ScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + flexible_time_window=flexible_time_window, + schedule_expression=schedule_expression, + target=target, + description=description, + end_date=end_date, + group_name=group_name, + kms_key_arn=kms_key_arn, + name=name, + name_prefix=name_prefix, + schedule_expression_timezone=schedule_expression_timezone, + start_date=start_date, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + flexible_time_window: Optional[pulumi.Input['ScheduleFlexibleTimeWindowArgs']] = None, + schedule_expression: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input['ScheduleTargetArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + end_date: Optional[pulumi.Input[str]] = None, + group_name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + schedule_expression_timezone: Optional[pulumi.Input[str]] = None, + start_date: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if flexible_time_window is None and 'flexibleTimeWindow' in kwargs: + flexible_time_window = kwargs['flexibleTimeWindow'] + if flexible_time_window is None: + raise TypeError("Missing 'flexible_time_window' argument") + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + if target is None: + raise TypeError("Missing 'target' argument") + if end_date is None and 'endDate' in kwargs: + end_date = kwargs['endDate'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if schedule_expression_timezone is None and 'scheduleExpressionTimezone' in kwargs: + schedule_expression_timezone = kwargs['scheduleExpressionTimezone'] + if start_date is None and 'startDate' in kwargs: + start_date = kwargs['startDate'] + + _setter("flexible_time_window", flexible_time_window) + _setter("schedule_expression", schedule_expression) + _setter("target", target) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if end_date is not None: - pulumi.set(__self__, "end_date", end_date) + _setter("end_date", end_date) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if schedule_expression_timezone is not None: - pulumi.set(__self__, "schedule_expression_timezone", schedule_expression_timezone) + _setter("schedule_expression_timezone", schedule_expression_timezone) if start_date is not None: - pulumi.set(__self__, "start_date", start_date) + _setter("start_date", start_date) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter(name="flexibleTimeWindow") @@ -232,7 +287,7 @@ def __init__(__self__, *, target: Optional[pulumi.Input['ScheduleTargetArgs']] = None): """ Input properties used for looking up and filtering Schedule resources. - :param pulumi.Input[str] arn: ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + :param pulumi.Input[str] arn: ARN of the SQS queue specified as the destination for the dead-letter queue. :param pulumi.Input[str] description: Brief description of the schedule. :param pulumi.Input[str] end_date: The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the end date you specify. EventBridge Scheduler ignores the end date for one-time schedules. Example: `2030-01-01T01:00:00Z`. :param pulumi.Input['ScheduleFlexibleTimeWindowArgs'] flexible_time_window: Configures a time window during which EventBridge Scheduler invokes the schedule. Detailed below. @@ -248,38 +303,89 @@ def __init__(__self__, *, The following arguments are optional: """ + _ScheduleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + end_date=end_date, + flexible_time_window=flexible_time_window, + group_name=group_name, + kms_key_arn=kms_key_arn, + name=name, + name_prefix=name_prefix, + schedule_expression=schedule_expression, + schedule_expression_timezone=schedule_expression_timezone, + start_date=start_date, + state=state, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + end_date: Optional[pulumi.Input[str]] = None, + flexible_time_window: Optional[pulumi.Input['ScheduleFlexibleTimeWindowArgs']] = None, + group_name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + schedule_expression: Optional[pulumi.Input[str]] = None, + schedule_expression_timezone: Optional[pulumi.Input[str]] = None, + start_date: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input['ScheduleTargetArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if end_date is None and 'endDate' in kwargs: + end_date = kwargs['endDate'] + if flexible_time_window is None and 'flexibleTimeWindow' in kwargs: + flexible_time_window = kwargs['flexibleTimeWindow'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression_timezone is None and 'scheduleExpressionTimezone' in kwargs: + schedule_expression_timezone = kwargs['scheduleExpressionTimezone'] + if start_date is None and 'startDate' in kwargs: + start_date = kwargs['startDate'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if end_date is not None: - pulumi.set(__self__, "end_date", end_date) + _setter("end_date", end_date) if flexible_time_window is not None: - pulumi.set(__self__, "flexible_time_window", flexible_time_window) + _setter("flexible_time_window", flexible_time_window) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if schedule_expression is not None: - pulumi.set(__self__, "schedule_expression", schedule_expression) + _setter("schedule_expression", schedule_expression) if schedule_expression_timezone is not None: - pulumi.set(__self__, "schedule_expression_timezone", schedule_expression_timezone) + _setter("schedule_expression_timezone", schedule_expression_timezone) if start_date is not None: - pulumi.set(__self__, "start_date", start_date) + _setter("start_date", start_date) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) @property @pulumi.getter def arn(self) -> Optional[pulumi.Input[str]]: """ - ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + ARN of the SQS queue specified as the destination for the dead-letter queue. """ return pulumi.get(self, "arn") @@ -597,6 +703,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ScheduleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -625,6 +735,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["end_date"] = end_date + flexible_time_window = _utilities.configure(flexible_time_window, ScheduleFlexibleTimeWindowArgs, True) if flexible_time_window is None and not opts.urn: raise TypeError("Missing required property 'flexible_time_window'") __props__.__dict__["flexible_time_window"] = flexible_time_window @@ -638,6 +749,7 @@ def _internal_init(__self__, __props__.__dict__["schedule_expression_timezone"] = schedule_expression_timezone __props__.__dict__["start_date"] = start_date __props__.__dict__["state"] = state + target = _utilities.configure(target, ScheduleTargetArgs, True) if target is None and not opts.urn: raise TypeError("Missing required property 'target'") __props__.__dict__["target"] = target @@ -672,7 +784,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] arn: ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + :param pulumi.Input[str] arn: ARN of the SQS queue specified as the destination for the dead-letter queue. :param pulumi.Input[str] description: Brief description of the schedule. :param pulumi.Input[str] end_date: The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the end date you specify. EventBridge Scheduler ignores the end date for one-time schedules. Example: `2030-01-01T01:00:00Z`. :param pulumi.Input[pulumi.InputType['ScheduleFlexibleTimeWindowArgs']] flexible_time_window: Configures a time window during which EventBridge Scheduler invokes the schedule. Detailed below. @@ -711,7 +823,7 @@ def get(resource_name: str, @pulumi.getter def arn(self) -> pulumi.Output[str]: """ - ARN of the target of this schedule, such as a SQS queue or ECS cluster. For universal targets, this is a [Service ARN specific to the target service](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html#supported-universal-targets). + ARN of the SQS queue specified as the destination for the dead-letter queue. """ return pulumi.get(self, "arn") diff --git a/sdk/python/pulumi_aws/scheduler/schedule_group.py b/sdk/python/pulumi_aws/scheduler/schedule_group.py index 35960749b6b..49d4e856dc7 100644 --- a/sdk/python/pulumi_aws/scheduler/schedule_group.py +++ b/sdk/python/pulumi_aws/scheduler/schedule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ScheduleGroupArgs', 'ScheduleGroup'] @@ -23,12 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ + ScheduleGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + name_prefix=name_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -89,25 +106,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ScheduleGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_date=creation_date, + last_modification_date=last_modification_date, + name=name, + name_prefix=name_prefix, + state=state, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + last_modification_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if last_modification_date is None and 'lastModificationDate' in kwargs: + last_modification_date = kwargs['lastModificationDate'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if last_modification_date is not None: - pulumi.set(__self__, "last_modification_date", last_modification_date) + _setter("last_modification_date", last_modification_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -288,6 +338,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ScheduleGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/schemas/discoverer.py b/sdk/python/pulumi_aws/schemas/discoverer.py index f7284e49e50..ededeb8c852 100644 --- a/sdk/python/pulumi_aws/schemas/discoverer.py +++ b/sdk/python/pulumi_aws/schemas/discoverer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DiscovererArgs', 'Discoverer'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The description of the discoverer. Maximum of 256 characters. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "source_arn", source_arn) + DiscovererArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source_arn=source_arn, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if source_arn is None: + raise TypeError("Missing 'source_arn' argument") + + _setter("source_arn", source_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="sourceArn") @@ -82,19 +101,42 @@ def __init__(__self__, *, :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. """ + _DiscovererState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + source_arn=source_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + source_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_arn is None and 'sourceArn' in kwargs: + source_arn = kwargs['sourceArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if source_arn is not None: - pulumi.set(__self__, "source_arn", source_arn) + _setter("source_arn", source_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -241,6 +283,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DiscovererArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/schemas/registry.py b/sdk/python/pulumi_aws/schemas/registry.py index d39752d206b..48f5fe78bb4 100644 --- a/sdk/python/pulumi_aws/schemas/registry.py +++ b/sdk/python/pulumi_aws/schemas/registry.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RegistryArgs', 'Registry'] @@ -23,12 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the custom event schema registry. Maximum of 64 characters consisting of lower case letters, upper case letters, 0-9, ., -, _. :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. """ + RegistryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -83,19 +98,40 @@ def __init__(__self__, *, :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. """ + _RegistryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -236,6 +272,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegistryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/schemas/registry_policy.py b/sdk/python/pulumi_aws/schemas/registry_policy.py index ab71279b620..8f200db05f5 100644 --- a/sdk/python/pulumi_aws/schemas/registry_policy.py +++ b/sdk/python/pulumi_aws/schemas/registry_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RegistryPolicyArgs', 'RegistryPolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: Resource Policy for EventBridge Schema Registry :param pulumi.Input[str] registry_name: Name of EventBridge Schema Registry """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "registry_name", registry_name) + RegistryPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + registry_name=registry_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + registry_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if registry_name is None: + raise TypeError("Missing 'registry_name' argument") + + _setter("policy", policy) + _setter("registry_name", registry_name) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: Resource Policy for EventBridge Schema Registry :param pulumi.Input[str] registry_name: Name of EventBridge Schema Registry """ + _RegistryPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + registry_name=registry_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + registry_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if registry_name is not None: - pulumi.set(__self__, "registry_name", registry_name) + _setter("registry_name", registry_name) @property @pulumi.getter @@ -190,6 +224,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegistryPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/schemas/schema.py b/sdk/python/pulumi_aws/schemas/schema.py index 489dc3678e3..2302b74a868 100644 --- a/sdk/python/pulumi_aws/schemas/schema.py +++ b/sdk/python/pulumi_aws/schemas/schema.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SchemaArgs', 'Schema'] @@ -29,15 +29,44 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the schema. Maximum of 385 characters consisting of lower case letters, upper case letters, ., -, _, @. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "registry_name", registry_name) - pulumi.set(__self__, "type", type) + SchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + registry_name=registry_name, + type=type, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + registry_name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if registry_name is None: + raise TypeError("Missing 'registry_name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("content", content) + _setter("registry_name", registry_name) + _setter("type", type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -140,31 +169,70 @@ def __init__(__self__, *, :param pulumi.Input[str] version: The version of the schema. :param pulumi.Input[str] version_created_date: The created date of the version of the schema. """ + _SchemaState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + content=content, + description=description, + last_modified=last_modified, + name=name, + registry_name=registry_name, + tags=tags, + tags_all=tags_all, + type=type, + version=version, + version_created_date=version_created_date, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + content: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + last_modified: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + registry_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + version_created_date: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if last_modified is None and 'lastModified' in kwargs: + last_modified = kwargs['lastModified'] + if registry_name is None and 'registryName' in kwargs: + registry_name = kwargs['registryName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if version_created_date is None and 'versionCreatedDate' in kwargs: + version_created_date = kwargs['versionCreatedDate'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if last_modified is not None: - pulumi.set(__self__, "last_modified", last_modified) + _setter("last_modified", last_modified) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if registry_name is not None: - pulumi.set(__self__, "registry_name", registry_name) + _setter("registry_name", registry_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if version_created_date is not None: - pulumi.set(__self__, "version_created_date", version_created_date) + _setter("version_created_date", version_created_date) @property @pulumi.getter @@ -433,6 +501,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SchemaArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/secretsmanager/_inputs.py b/sdk/python/pulumi_aws/secretsmanager/_inputs.py index c8a3556f347..630cff70ad3 100644 --- a/sdk/python/pulumi_aws/secretsmanager/_inputs.py +++ b/sdk/python/pulumi_aws/secretsmanager/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -30,15 +30,42 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Status can be `InProgress`, `Failed`, or `InSync`. :param pulumi.Input[str] status_message: Message such as `Replication succeeded` or `Secret with this name already exists in this region`. """ - pulumi.set(__self__, "region", region) + SecretReplicaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + region=region, + kms_key_id=kms_key_id, + last_accessed_date=last_accessed_date, + status=status, + status_message=status_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + last_accessed_date: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + status_message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region is None: + raise TypeError("Missing 'region' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if last_accessed_date is None and 'lastAccessedDate' in kwargs: + last_accessed_date = kwargs['lastAccessedDate'] + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + + _setter("region", region) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if last_accessed_date is not None: - pulumi.set(__self__, "last_accessed_date", last_accessed_date) + _setter("last_accessed_date", last_accessed_date) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_message is not None: - pulumi.set(__self__, "status_message", status_message) + _setter("status_message", status_message) @property @pulumi.getter @@ -112,12 +139,31 @@ def __init__(__self__, *, :param pulumi.Input[str] duration: The length of the rotation window in hours. For example, `3h` for a three hour window. :param pulumi.Input[str] schedule_expression: A `cron()` or `rate()` expression that defines the schedule for rotating your secret. Either `automatically_after_days` or `schedule_expression` must be specified. """ + SecretRotationRotationRulesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + automatically_after_days=automatically_after_days, + duration=duration, + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automatically_after_days: Optional[pulumi.Input[int]] = None, + duration: Optional[pulumi.Input[str]] = None, + schedule_expression: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automatically_after_days is None and 'automaticallyAfterDays' in kwargs: + automatically_after_days = kwargs['automaticallyAfterDays'] + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if automatically_after_days is not None: - pulumi.set(__self__, "automatically_after_days", automatically_after_days) + _setter("automatically_after_days", automatically_after_days) if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if schedule_expression is not None: - pulumi.set(__self__, "schedule_expression", schedule_expression) + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="automaticallyAfterDays") @@ -165,8 +211,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Secrets Manager ListSecrets API Reference](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ListSecrets.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecretsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/secretsmanager/get_random_password.py b/sdk/python/pulumi_aws/secretsmanager/get_random_password.py index a24d483fc09..b518e998c6b 100644 --- a/sdk/python/pulumi_aws/secretsmanager/get_random_password.py +++ b/sdk/python/pulumi_aws/secretsmanager/get_random_password.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/secretsmanager/get_secret.py b/sdk/python/pulumi_aws/secretsmanager/get_secret.py index 24e73e8dd96..7c1ac67b44d 100644 --- a/sdk/python/pulumi_aws/secretsmanager/get_secret.py +++ b/sdk/python/pulumi_aws/secretsmanager/get_secret.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/secretsmanager/get_secret_rotation.py b/sdk/python/pulumi_aws/secretsmanager/get_secret_rotation.py index d22b18dfd2a..f4d948d458b 100644 --- a/sdk/python/pulumi_aws/secretsmanager/get_secret_rotation.py +++ b/sdk/python/pulumi_aws/secretsmanager/get_secret_rotation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/secretsmanager/get_secret_version.py b/sdk/python/pulumi_aws/secretsmanager/get_secret_version.py index 67776e6bb90..d8efb420851 100644 --- a/sdk/python/pulumi_aws/secretsmanager/get_secret_version.py +++ b/sdk/python/pulumi_aws/secretsmanager/get_secret_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/secretsmanager/get_secrets.py b/sdk/python/pulumi_aws/secretsmanager/get_secrets.py index dca78a38751..7f1f0fbde51 100644 --- a/sdk/python/pulumi_aws/secretsmanager/get_secrets.py +++ b/sdk/python/pulumi_aws/secretsmanager/get_secrets.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/secretsmanager/outputs.py b/sdk/python/pulumi_aws/secretsmanager/outputs.py index fa50ecff0d7..1c8b9c9a32d 100644 --- a/sdk/python/pulumi_aws/secretsmanager/outputs.py +++ b/sdk/python/pulumi_aws/secretsmanager/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -52,15 +52,42 @@ def __init__(__self__, *, :param str status: Status can be `InProgress`, `Failed`, or `InSync`. :param str status_message: Message such as `Replication succeeded` or `Secret with this name already exists in this region`. """ - pulumi.set(__self__, "region", region) + SecretReplica._configure( + lambda key, value: pulumi.set(__self__, key, value), + region=region, + kms_key_id=kms_key_id, + last_accessed_date=last_accessed_date, + status=status, + status_message=status_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + region: Optional[str] = None, + kms_key_id: Optional[str] = None, + last_accessed_date: Optional[str] = None, + status: Optional[str] = None, + status_message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if region is None: + raise TypeError("Missing 'region' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if last_accessed_date is None and 'lastAccessedDate' in kwargs: + last_accessed_date = kwargs['lastAccessedDate'] + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + + _setter("region", region) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if last_accessed_date is not None: - pulumi.set(__self__, "last_accessed_date", last_accessed_date) + _setter("last_accessed_date", last_accessed_date) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_message is not None: - pulumi.set(__self__, "status_message", status_message) + _setter("status_message", status_message) @property @pulumi.getter @@ -133,12 +160,31 @@ def __init__(__self__, *, :param str duration: The length of the rotation window in hours. For example, `3h` for a three hour window. :param str schedule_expression: A `cron()` or `rate()` expression that defines the schedule for rotating your secret. Either `automatically_after_days` or `schedule_expression` must be specified. """ + SecretRotationRotationRules._configure( + lambda key, value: pulumi.set(__self__, key, value), + automatically_after_days=automatically_after_days, + duration=duration, + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automatically_after_days: Optional[int] = None, + duration: Optional[str] = None, + schedule_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automatically_after_days is None and 'automaticallyAfterDays' in kwargs: + automatically_after_days = kwargs['automaticallyAfterDays'] + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if automatically_after_days is not None: - pulumi.set(__self__, "automatically_after_days", automatically_after_days) + _setter("automatically_after_days", automatically_after_days) if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if schedule_expression is not None: - pulumi.set(__self__, "schedule_expression", schedule_expression) + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="automaticallyAfterDays") @@ -171,9 +217,34 @@ def __init__(__self__, *, automatically_after_days: int, duration: str, schedule_expression: str): - pulumi.set(__self__, "automatically_after_days", automatically_after_days) - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "schedule_expression", schedule_expression) + GetSecretRotationRotationRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + automatically_after_days=automatically_after_days, + duration=duration, + schedule_expression=schedule_expression, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automatically_after_days: Optional[int] = None, + duration: Optional[str] = None, + schedule_expression: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automatically_after_days is None and 'automaticallyAfterDays' in kwargs: + automatically_after_days = kwargs['automaticallyAfterDays'] + if automatically_after_days is None: + raise TypeError("Missing 'automatically_after_days' argument") + if duration is None: + raise TypeError("Missing 'duration' argument") + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if schedule_expression is None: + raise TypeError("Missing 'schedule_expression' argument") + + _setter("automatically_after_days", automatically_after_days) + _setter("duration", duration) + _setter("schedule_expression", schedule_expression) @property @pulumi.getter(name="automaticallyAfterDays") @@ -200,8 +271,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [Secrets Manager ListSecrets API Reference](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ListSecrets.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecretsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/secretsmanager/secret.py b/sdk/python/pulumi_aws/secretsmanager/secret.py index 7f4903b1c17..cbe1f240cd4 100644 --- a/sdk/python/pulumi_aws/secretsmanager/secret.py +++ b/sdk/python/pulumi_aws/secretsmanager/secret.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,24 +37,59 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['SecretReplicaArgs']]] replicas: Configuration block to support secret replication. See details below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of user-defined tags that are attached to the secret. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + SecretArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + force_overwrite_replica_secret=force_overwrite_replica_secret, + kms_key_id=kms_key_id, + name=name, + name_prefix=name_prefix, + policy=policy, + recovery_window_in_days=recovery_window_in_days, + replicas=replicas, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + force_overwrite_replica_secret: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + recovery_window_in_days: Optional[pulumi.Input[int]] = None, + replicas: Optional[pulumi.Input[Sequence[pulumi.Input['SecretReplicaArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_overwrite_replica_secret is None and 'forceOverwriteReplicaSecret' in kwargs: + force_overwrite_replica_secret = kwargs['forceOverwriteReplicaSecret'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if recovery_window_in_days is None and 'recoveryWindowInDays' in kwargs: + recovery_window_in_days = kwargs['recoveryWindowInDays'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_overwrite_replica_secret is not None: - pulumi.set(__self__, "force_overwrite_replica_secret", force_overwrite_replica_secret) + _setter("force_overwrite_replica_secret", force_overwrite_replica_secret) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if recovery_window_in_days is not None: - pulumi.set(__self__, "recovery_window_in_days", recovery_window_in_days) + _setter("recovery_window_in_days", recovery_window_in_days) if replicas is not None: - pulumi.set(__self__, "replicas", replicas) + _setter("replicas", replicas) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -193,31 +228,72 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of user-defined tags that are attached to the secret. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _SecretState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + force_overwrite_replica_secret=force_overwrite_replica_secret, + kms_key_id=kms_key_id, + name=name, + name_prefix=name_prefix, + policy=policy, + recovery_window_in_days=recovery_window_in_days, + replicas=replicas, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + force_overwrite_replica_secret: Optional[pulumi.Input[bool]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + recovery_window_in_days: Optional[pulumi.Input[int]] = None, + replicas: Optional[pulumi.Input[Sequence[pulumi.Input['SecretReplicaArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if force_overwrite_replica_secret is None and 'forceOverwriteReplicaSecret' in kwargs: + force_overwrite_replica_secret = kwargs['forceOverwriteReplicaSecret'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if recovery_window_in_days is None and 'recoveryWindowInDays' in kwargs: + recovery_window_in_days = kwargs['recoveryWindowInDays'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if force_overwrite_replica_secret is not None: - pulumi.set(__self__, "force_overwrite_replica_secret", force_overwrite_replica_secret) + _setter("force_overwrite_replica_secret", force_overwrite_replica_secret) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if recovery_window_in_days is not None: - pulumi.set(__self__, "recovery_window_in_days", recovery_window_in_days) + _setter("recovery_window_in_days", recovery_window_in_days) if replicas is not None: - pulumi.set(__self__, "replicas", replicas) + _setter("replicas", replicas) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -440,6 +516,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecretArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/secretsmanager/secret_policy.py b/sdk/python/pulumi_aws/secretsmanager/secret_policy.py index e3b2503e3bf..9cc0b709c8e 100644 --- a/sdk/python/pulumi_aws/secretsmanager/secret_policy.py +++ b/sdk/python/pulumi_aws/secretsmanager/secret_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SecretPolicyArgs', 'SecretPolicy'] @@ -25,10 +25,33 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] block_public_policy: Makes an optional API call to Zelkova to validate the Resource Policy to prevent broad access to your secret. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "secret_arn", secret_arn) + SecretPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + secret_arn=secret_arn, + block_public_policy=block_public_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + block_public_policy: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if secret_arn is None: + raise TypeError("Missing 'secret_arn' argument") + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + + _setter("policy", policy) + _setter("secret_arn", secret_arn) if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) @property @pulumi.getter @@ -83,12 +106,31 @@ def __init__(__self__, *, The following arguments are optional: """ + _SecretPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + block_public_policy=block_public_policy, + policy=policy, + secret_arn=secret_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + block_public_policy: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + secret_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if block_public_policy is None and 'blockPublicPolicy' in kwargs: + block_public_policy = kwargs['blockPublicPolicy'] + if secret_arn is None and 'secretArn' in kwargs: + secret_arn = kwargs['secretArn'] + if block_public_policy is not None: - pulumi.set(__self__, "block_public_policy", block_public_policy) + _setter("block_public_policy", block_public_policy) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if secret_arn is not None: - pulumi.set(__self__, "secret_arn", secret_arn) + _setter("secret_arn", secret_arn) @property @pulumi.getter(name="blockPublicPolicy") @@ -230,6 +272,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecretPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/secretsmanager/secret_rotation.py b/sdk/python/pulumi_aws/secretsmanager/secret_rotation.py index 76bc6ef10c2..5962519f4af 100644 --- a/sdk/python/pulumi_aws/secretsmanager/secret_rotation.py +++ b/sdk/python/pulumi_aws/secretsmanager/secret_rotation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,36 @@ def __init__(__self__, *, :param pulumi.Input['SecretRotationRotationRulesArgs'] rotation_rules: A structure that defines the rotation configuration for this secret. Defined below. :param pulumi.Input[str] secret_id: Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. """ - pulumi.set(__self__, "rotation_lambda_arn", rotation_lambda_arn) - pulumi.set(__self__, "rotation_rules", rotation_rules) - pulumi.set(__self__, "secret_id", secret_id) + SecretRotationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rotation_lambda_arn=rotation_lambda_arn, + rotation_rules=rotation_rules, + secret_id=secret_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rotation_lambda_arn: Optional[pulumi.Input[str]] = None, + rotation_rules: Optional[pulumi.Input['SecretRotationRotationRulesArgs']] = None, + secret_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rotation_lambda_arn is None and 'rotationLambdaArn' in kwargs: + rotation_lambda_arn = kwargs['rotationLambdaArn'] + if rotation_lambda_arn is None: + raise TypeError("Missing 'rotation_lambda_arn' argument") + if rotation_rules is None and 'rotationRules' in kwargs: + rotation_rules = kwargs['rotationRules'] + if rotation_rules is None: + raise TypeError("Missing 'rotation_rules' argument") + if secret_id is None and 'secretId' in kwargs: + secret_id = kwargs['secretId'] + if secret_id is None: + raise TypeError("Missing 'secret_id' argument") + + _setter("rotation_lambda_arn", rotation_lambda_arn) + _setter("rotation_rules", rotation_rules) + _setter("secret_id", secret_id) @property @pulumi.getter(name="rotationLambdaArn") @@ -80,14 +107,39 @@ def __init__(__self__, *, :param pulumi.Input['SecretRotationRotationRulesArgs'] rotation_rules: A structure that defines the rotation configuration for this secret. Defined below. :param pulumi.Input[str] secret_id: Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. """ + _SecretRotationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + rotation_enabled=rotation_enabled, + rotation_lambda_arn=rotation_lambda_arn, + rotation_rules=rotation_rules, + secret_id=secret_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rotation_enabled: Optional[pulumi.Input[bool]] = None, + rotation_lambda_arn: Optional[pulumi.Input[str]] = None, + rotation_rules: Optional[pulumi.Input['SecretRotationRotationRulesArgs']] = None, + secret_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rotation_enabled is None and 'rotationEnabled' in kwargs: + rotation_enabled = kwargs['rotationEnabled'] + if rotation_lambda_arn is None and 'rotationLambdaArn' in kwargs: + rotation_lambda_arn = kwargs['rotationLambdaArn'] + if rotation_rules is None and 'rotationRules' in kwargs: + rotation_rules = kwargs['rotationRules'] + if secret_id is None and 'secretId' in kwargs: + secret_id = kwargs['secretId'] + if rotation_enabled is not None: - pulumi.set(__self__, "rotation_enabled", rotation_enabled) + _setter("rotation_enabled", rotation_enabled) if rotation_lambda_arn is not None: - pulumi.set(__self__, "rotation_lambda_arn", rotation_lambda_arn) + _setter("rotation_lambda_arn", rotation_lambda_arn) if rotation_rules is not None: - pulumi.set(__self__, "rotation_rules", rotation_rules) + _setter("rotation_rules", rotation_rules) if secret_id is not None: - pulumi.set(__self__, "secret_id", secret_id) + _setter("secret_id", secret_id) @property @pulumi.getter(name="rotationEnabled") @@ -235,6 +287,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecretRotationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -255,6 +311,7 @@ def _internal_init(__self__, if rotation_lambda_arn is None and not opts.urn: raise TypeError("Missing required property 'rotation_lambda_arn'") __props__.__dict__["rotation_lambda_arn"] = rotation_lambda_arn + rotation_rules = _utilities.configure(rotation_rules, SecretRotationRotationRulesArgs, True) if rotation_rules is None and not opts.urn: raise TypeError("Missing required property 'rotation_rules'") __props__.__dict__["rotation_rules"] = rotation_rules diff --git a/sdk/python/pulumi_aws/secretsmanager/secret_version.py b/sdk/python/pulumi_aws/secretsmanager/secret_version.py index 63196c17eee..79286fcf2ab 100644 --- a/sdk/python/pulumi_aws/secretsmanager/secret_version.py +++ b/sdk/python/pulumi_aws/secretsmanager/secret_version.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SecretVersionArgs', 'SecretVersion'] @@ -27,13 +27,40 @@ def __init__(__self__, *, > **NOTE:** If `version_stages` is configured, you must include the `AWSCURRENT` staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference. """ - pulumi.set(__self__, "secret_id", secret_id) + SecretVersionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + secret_id=secret_id, + secret_binary=secret_binary, + secret_string=secret_string, + version_stages=version_stages, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + secret_id: Optional[pulumi.Input[str]] = None, + secret_binary: Optional[pulumi.Input[str]] = None, + secret_string: Optional[pulumi.Input[str]] = None, + version_stages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_id is None and 'secretId' in kwargs: + secret_id = kwargs['secretId'] + if secret_id is None: + raise TypeError("Missing 'secret_id' argument") + if secret_binary is None and 'secretBinary' in kwargs: + secret_binary = kwargs['secretBinary'] + if secret_string is None and 'secretString' in kwargs: + secret_string = kwargs['secretString'] + if version_stages is None and 'versionStages' in kwargs: + version_stages = kwargs['versionStages'] + + _setter("secret_id", secret_id) if secret_binary is not None: - pulumi.set(__self__, "secret_binary", secret_binary) + _setter("secret_binary", secret_binary) if secret_string is not None: - pulumi.set(__self__, "secret_string", secret_string) + _setter("secret_string", secret_string) if version_stages is not None: - pulumi.set(__self__, "version_stages", version_stages) + _setter("version_stages", version_stages) @property @pulumi.getter(name="secretId") @@ -106,18 +133,49 @@ def __init__(__self__, *, > **NOTE:** If `version_stages` is configured, you must include the `AWSCURRENT` staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference. """ + _SecretVersionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + secret_binary=secret_binary, + secret_id=secret_id, + secret_string=secret_string, + version_id=version_id, + version_stages=version_stages, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + secret_binary: Optional[pulumi.Input[str]] = None, + secret_id: Optional[pulumi.Input[str]] = None, + secret_string: Optional[pulumi.Input[str]] = None, + version_id: Optional[pulumi.Input[str]] = None, + version_stages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if secret_binary is None and 'secretBinary' in kwargs: + secret_binary = kwargs['secretBinary'] + if secret_id is None and 'secretId' in kwargs: + secret_id = kwargs['secretId'] + if secret_string is None and 'secretString' in kwargs: + secret_string = kwargs['secretString'] + if version_id is None and 'versionId' in kwargs: + version_id = kwargs['versionId'] + if version_stages is None and 'versionStages' in kwargs: + version_stages = kwargs['versionStages'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if secret_binary is not None: - pulumi.set(__self__, "secret_binary", secret_binary) + _setter("secret_binary", secret_binary) if secret_id is not None: - pulumi.set(__self__, "secret_id", secret_id) + _setter("secret_id", secret_id) if secret_string is not None: - pulumi.set(__self__, "secret_string", secret_string) + _setter("secret_string", secret_string) if version_id is not None: - pulumi.set(__self__, "version_id", version_id) + _setter("version_id", version_id) if version_stages is not None: - pulumi.set(__self__, "version_stages", version_stages) + _setter("version_stages", version_stages) @property @pulumi.getter @@ -279,6 +337,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecretVersionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/_inputs.py b/sdk/python/pulumi_aws/securityhub/_inputs.py index e06284c300e..79eeec9ddbf 100644 --- a/sdk/python/pulumi_aws/securityhub/_inputs.py +++ b/sdk/python/pulumi_aws/securityhub/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -293,182 +293,529 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['InsightFiltersVerificationStateArgs']]] verification_states: The veracity of a finding. See String Filter below for more details. :param pulumi.Input[Sequence[pulumi.Input['InsightFiltersWorkflowStatusArgs']]] workflow_statuses: The status of the investigation into a finding. See Workflow Status Filter below for more details. """ + InsightFiltersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_account_ids=aws_account_ids, + company_names=company_names, + compliance_statuses=compliance_statuses, + confidences=confidences, + created_ats=created_ats, + criticalities=criticalities, + descriptions=descriptions, + finding_provider_fields_confidences=finding_provider_fields_confidences, + finding_provider_fields_criticalities=finding_provider_fields_criticalities, + finding_provider_fields_related_findings_ids=finding_provider_fields_related_findings_ids, + finding_provider_fields_related_findings_product_arns=finding_provider_fields_related_findings_product_arns, + finding_provider_fields_severity_labels=finding_provider_fields_severity_labels, + finding_provider_fields_severity_originals=finding_provider_fields_severity_originals, + finding_provider_fields_types=finding_provider_fields_types, + first_observed_ats=first_observed_ats, + generator_ids=generator_ids, + ids=ids, + keywords=keywords, + last_observed_ats=last_observed_ats, + malware_names=malware_names, + malware_paths=malware_paths, + malware_states=malware_states, + malware_types=malware_types, + network_destination_domains=network_destination_domains, + network_destination_ipv4s=network_destination_ipv4s, + network_destination_ipv6s=network_destination_ipv6s, + network_destination_ports=network_destination_ports, + network_directions=network_directions, + network_protocols=network_protocols, + network_source_domains=network_source_domains, + network_source_ipv4s=network_source_ipv4s, + network_source_ipv6s=network_source_ipv6s, + network_source_macs=network_source_macs, + network_source_ports=network_source_ports, + note_texts=note_texts, + note_updated_ats=note_updated_ats, + note_updated_bies=note_updated_bies, + process_launched_ats=process_launched_ats, + process_names=process_names, + process_parent_pids=process_parent_pids, + process_paths=process_paths, + process_pids=process_pids, + process_terminated_ats=process_terminated_ats, + product_arns=product_arns, + product_fields=product_fields, + product_names=product_names, + recommendation_texts=recommendation_texts, + record_states=record_states, + related_findings_ids=related_findings_ids, + related_findings_product_arns=related_findings_product_arns, + resource_aws_ec2_instance_iam_instance_profile_arns=resource_aws_ec2_instance_iam_instance_profile_arns, + resource_aws_ec2_instance_image_ids=resource_aws_ec2_instance_image_ids, + resource_aws_ec2_instance_ipv4_addresses=resource_aws_ec2_instance_ipv4_addresses, + resource_aws_ec2_instance_ipv6_addresses=resource_aws_ec2_instance_ipv6_addresses, + resource_aws_ec2_instance_key_names=resource_aws_ec2_instance_key_names, + resource_aws_ec2_instance_launched_ats=resource_aws_ec2_instance_launched_ats, + resource_aws_ec2_instance_subnet_ids=resource_aws_ec2_instance_subnet_ids, + resource_aws_ec2_instance_types=resource_aws_ec2_instance_types, + resource_aws_ec2_instance_vpc_ids=resource_aws_ec2_instance_vpc_ids, + resource_aws_iam_access_key_created_ats=resource_aws_iam_access_key_created_ats, + resource_aws_iam_access_key_statuses=resource_aws_iam_access_key_statuses, + resource_aws_iam_access_key_user_names=resource_aws_iam_access_key_user_names, + resource_aws_s3_bucket_owner_ids=resource_aws_s3_bucket_owner_ids, + resource_aws_s3_bucket_owner_names=resource_aws_s3_bucket_owner_names, + resource_container_image_ids=resource_container_image_ids, + resource_container_image_names=resource_container_image_names, + resource_container_launched_ats=resource_container_launched_ats, + resource_container_names=resource_container_names, + resource_details_others=resource_details_others, + resource_ids=resource_ids, + resource_partitions=resource_partitions, + resource_regions=resource_regions, + resource_tags=resource_tags, + resource_types=resource_types, + severity_labels=severity_labels, + source_urls=source_urls, + threat_intel_indicator_categories=threat_intel_indicator_categories, + threat_intel_indicator_last_observed_ats=threat_intel_indicator_last_observed_ats, + threat_intel_indicator_source_urls=threat_intel_indicator_source_urls, + threat_intel_indicator_sources=threat_intel_indicator_sources, + threat_intel_indicator_types=threat_intel_indicator_types, + threat_intel_indicator_values=threat_intel_indicator_values, + titles=titles, + types=types, + updated_ats=updated_ats, + user_defined_values=user_defined_values, + verification_states=verification_states, + workflow_statuses=workflow_statuses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_account_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersAwsAccountIdArgs']]]] = None, + company_names: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersCompanyNameArgs']]]] = None, + compliance_statuses: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersComplianceStatusArgs']]]] = None, + confidences: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersConfidenceArgs']]]] = None, + created_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersCreatedAtArgs']]]] = None, + criticalities: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersCriticalityArgs']]]] = None, + descriptions: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersDescriptionArgs']]]] = None, + finding_provider_fields_confidences: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersFindingProviderFieldsConfidenceArgs']]]] = None, + finding_provider_fields_criticalities: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersFindingProviderFieldsCriticalityArgs']]]] = None, + finding_provider_fields_related_findings_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersFindingProviderFieldsRelatedFindingsIdArgs']]]] = None, + finding_provider_fields_related_findings_product_arns: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersFindingProviderFieldsRelatedFindingsProductArnArgs']]]] = None, + finding_provider_fields_severity_labels: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersFindingProviderFieldsSeverityLabelArgs']]]] = None, + finding_provider_fields_severity_originals: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersFindingProviderFieldsSeverityOriginalArgs']]]] = None, + finding_provider_fields_types: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersFindingProviderFieldsTypeArgs']]]] = None, + first_observed_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersFirstObservedAtArgs']]]] = None, + generator_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersGeneratorIdArgs']]]] = None, + ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersIdArgs']]]] = None, + keywords: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersKeywordArgs']]]] = None, + last_observed_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersLastObservedAtArgs']]]] = None, + malware_names: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersMalwareNameArgs']]]] = None, + malware_paths: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersMalwarePathArgs']]]] = None, + malware_states: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersMalwareStateArgs']]]] = None, + malware_types: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersMalwareTypeArgs']]]] = None, + network_destination_domains: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkDestinationDomainArgs']]]] = None, + network_destination_ipv4s: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkDestinationIpv4Args']]]] = None, + network_destination_ipv6s: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkDestinationIpv6Args']]]] = None, + network_destination_ports: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkDestinationPortArgs']]]] = None, + network_directions: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkDirectionArgs']]]] = None, + network_protocols: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkProtocolArgs']]]] = None, + network_source_domains: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkSourceDomainArgs']]]] = None, + network_source_ipv4s: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkSourceIpv4Args']]]] = None, + network_source_ipv6s: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkSourceIpv6Args']]]] = None, + network_source_macs: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkSourceMacArgs']]]] = None, + network_source_ports: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNetworkSourcePortArgs']]]] = None, + note_texts: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNoteTextArgs']]]] = None, + note_updated_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNoteUpdatedAtArgs']]]] = None, + note_updated_bies: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersNoteUpdatedByArgs']]]] = None, + process_launched_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersProcessLaunchedAtArgs']]]] = None, + process_names: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersProcessNameArgs']]]] = None, + process_parent_pids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersProcessParentPidArgs']]]] = None, + process_paths: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersProcessPathArgs']]]] = None, + process_pids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersProcessPidArgs']]]] = None, + process_terminated_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersProcessTerminatedAtArgs']]]] = None, + product_arns: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersProductArnArgs']]]] = None, + product_fields: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersProductFieldArgs']]]] = None, + product_names: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersProductNameArgs']]]] = None, + recommendation_texts: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersRecommendationTextArgs']]]] = None, + record_states: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersRecordStateArgs']]]] = None, + related_findings_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersRelatedFindingsIdArgs']]]] = None, + related_findings_product_arns: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersRelatedFindingsProductArnArgs']]]] = None, + resource_aws_ec2_instance_iam_instance_profile_arns: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArnArgs']]]] = None, + resource_aws_ec2_instance_image_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsEc2InstanceImageIdArgs']]]] = None, + resource_aws_ec2_instance_ipv4_addresses: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsEc2InstanceIpv4AddressArgs']]]] = None, + resource_aws_ec2_instance_ipv6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsEc2InstanceIpv6AddressArgs']]]] = None, + resource_aws_ec2_instance_key_names: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsEc2InstanceKeyNameArgs']]]] = None, + resource_aws_ec2_instance_launched_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsEc2InstanceLaunchedAtArgs']]]] = None, + resource_aws_ec2_instance_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsEc2InstanceSubnetIdArgs']]]] = None, + resource_aws_ec2_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsEc2InstanceTypeArgs']]]] = None, + resource_aws_ec2_instance_vpc_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsEc2InstanceVpcIdArgs']]]] = None, + resource_aws_iam_access_key_created_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsIamAccessKeyCreatedAtArgs']]]] = None, + resource_aws_iam_access_key_statuses: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsIamAccessKeyStatusArgs']]]] = None, + resource_aws_iam_access_key_user_names: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsIamAccessKeyUserNameArgs']]]] = None, + resource_aws_s3_bucket_owner_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsS3BucketOwnerIdArgs']]]] = None, + resource_aws_s3_bucket_owner_names: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceAwsS3BucketOwnerNameArgs']]]] = None, + resource_container_image_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceContainerImageIdArgs']]]] = None, + resource_container_image_names: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceContainerImageNameArgs']]]] = None, + resource_container_launched_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceContainerLaunchedAtArgs']]]] = None, + resource_container_names: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceContainerNameArgs']]]] = None, + resource_details_others: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceDetailsOtherArgs']]]] = None, + resource_ids: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceIdArgs']]]] = None, + resource_partitions: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourcePartitionArgs']]]] = None, + resource_regions: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceRegionArgs']]]] = None, + resource_tags: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceTagArgs']]]] = None, + resource_types: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersResourceTypeArgs']]]] = None, + severity_labels: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersSeverityLabelArgs']]]] = None, + source_urls: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersSourceUrlArgs']]]] = None, + threat_intel_indicator_categories: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersThreatIntelIndicatorCategoryArgs']]]] = None, + threat_intel_indicator_last_observed_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersThreatIntelIndicatorLastObservedAtArgs']]]] = None, + threat_intel_indicator_source_urls: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersThreatIntelIndicatorSourceUrlArgs']]]] = None, + threat_intel_indicator_sources: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersThreatIntelIndicatorSourceArgs']]]] = None, + threat_intel_indicator_types: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersThreatIntelIndicatorTypeArgs']]]] = None, + threat_intel_indicator_values: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersThreatIntelIndicatorValueArgs']]]] = None, + titles: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersTitleArgs']]]] = None, + types: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersTypeArgs']]]] = None, + updated_ats: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersUpdatedAtArgs']]]] = None, + user_defined_values: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersUserDefinedValueArgs']]]] = None, + verification_states: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersVerificationStateArgs']]]] = None, + workflow_statuses: Optional[pulumi.Input[Sequence[pulumi.Input['InsightFiltersWorkflowStatusArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_ids is None and 'awsAccountIds' in kwargs: + aws_account_ids = kwargs['awsAccountIds'] + if company_names is None and 'companyNames' in kwargs: + company_names = kwargs['companyNames'] + if compliance_statuses is None and 'complianceStatuses' in kwargs: + compliance_statuses = kwargs['complianceStatuses'] + if created_ats is None and 'createdAts' in kwargs: + created_ats = kwargs['createdAts'] + if finding_provider_fields_confidences is None and 'findingProviderFieldsConfidences' in kwargs: + finding_provider_fields_confidences = kwargs['findingProviderFieldsConfidences'] + if finding_provider_fields_criticalities is None and 'findingProviderFieldsCriticalities' in kwargs: + finding_provider_fields_criticalities = kwargs['findingProviderFieldsCriticalities'] + if finding_provider_fields_related_findings_ids is None and 'findingProviderFieldsRelatedFindingsIds' in kwargs: + finding_provider_fields_related_findings_ids = kwargs['findingProviderFieldsRelatedFindingsIds'] + if finding_provider_fields_related_findings_product_arns is None and 'findingProviderFieldsRelatedFindingsProductArns' in kwargs: + finding_provider_fields_related_findings_product_arns = kwargs['findingProviderFieldsRelatedFindingsProductArns'] + if finding_provider_fields_severity_labels is None and 'findingProviderFieldsSeverityLabels' in kwargs: + finding_provider_fields_severity_labels = kwargs['findingProviderFieldsSeverityLabels'] + if finding_provider_fields_severity_originals is None and 'findingProviderFieldsSeverityOriginals' in kwargs: + finding_provider_fields_severity_originals = kwargs['findingProviderFieldsSeverityOriginals'] + if finding_provider_fields_types is None and 'findingProviderFieldsTypes' in kwargs: + finding_provider_fields_types = kwargs['findingProviderFieldsTypes'] + if first_observed_ats is None and 'firstObservedAts' in kwargs: + first_observed_ats = kwargs['firstObservedAts'] + if generator_ids is None and 'generatorIds' in kwargs: + generator_ids = kwargs['generatorIds'] + if last_observed_ats is None and 'lastObservedAts' in kwargs: + last_observed_ats = kwargs['lastObservedAts'] + if malware_names is None and 'malwareNames' in kwargs: + malware_names = kwargs['malwareNames'] + if malware_paths is None and 'malwarePaths' in kwargs: + malware_paths = kwargs['malwarePaths'] + if malware_states is None and 'malwareStates' in kwargs: + malware_states = kwargs['malwareStates'] + if malware_types is None and 'malwareTypes' in kwargs: + malware_types = kwargs['malwareTypes'] + if network_destination_domains is None and 'networkDestinationDomains' in kwargs: + network_destination_domains = kwargs['networkDestinationDomains'] + if network_destination_ipv4s is None and 'networkDestinationIpv4s' in kwargs: + network_destination_ipv4s = kwargs['networkDestinationIpv4s'] + if network_destination_ipv6s is None and 'networkDestinationIpv6s' in kwargs: + network_destination_ipv6s = kwargs['networkDestinationIpv6s'] + if network_destination_ports is None and 'networkDestinationPorts' in kwargs: + network_destination_ports = kwargs['networkDestinationPorts'] + if network_directions is None and 'networkDirections' in kwargs: + network_directions = kwargs['networkDirections'] + if network_protocols is None and 'networkProtocols' in kwargs: + network_protocols = kwargs['networkProtocols'] + if network_source_domains is None and 'networkSourceDomains' in kwargs: + network_source_domains = kwargs['networkSourceDomains'] + if network_source_ipv4s is None and 'networkSourceIpv4s' in kwargs: + network_source_ipv4s = kwargs['networkSourceIpv4s'] + if network_source_ipv6s is None and 'networkSourceIpv6s' in kwargs: + network_source_ipv6s = kwargs['networkSourceIpv6s'] + if network_source_macs is None and 'networkSourceMacs' in kwargs: + network_source_macs = kwargs['networkSourceMacs'] + if network_source_ports is None and 'networkSourcePorts' in kwargs: + network_source_ports = kwargs['networkSourcePorts'] + if note_texts is None and 'noteTexts' in kwargs: + note_texts = kwargs['noteTexts'] + if note_updated_ats is None and 'noteUpdatedAts' in kwargs: + note_updated_ats = kwargs['noteUpdatedAts'] + if note_updated_bies is None and 'noteUpdatedBies' in kwargs: + note_updated_bies = kwargs['noteUpdatedBies'] + if process_launched_ats is None and 'processLaunchedAts' in kwargs: + process_launched_ats = kwargs['processLaunchedAts'] + if process_names is None and 'processNames' in kwargs: + process_names = kwargs['processNames'] + if process_parent_pids is None and 'processParentPids' in kwargs: + process_parent_pids = kwargs['processParentPids'] + if process_paths is None and 'processPaths' in kwargs: + process_paths = kwargs['processPaths'] + if process_pids is None and 'processPids' in kwargs: + process_pids = kwargs['processPids'] + if process_terminated_ats is None and 'processTerminatedAts' in kwargs: + process_terminated_ats = kwargs['processTerminatedAts'] + if product_arns is None and 'productArns' in kwargs: + product_arns = kwargs['productArns'] + if product_fields is None and 'productFields' in kwargs: + product_fields = kwargs['productFields'] + if product_names is None and 'productNames' in kwargs: + product_names = kwargs['productNames'] + if recommendation_texts is None and 'recommendationTexts' in kwargs: + recommendation_texts = kwargs['recommendationTexts'] + if record_states is None and 'recordStates' in kwargs: + record_states = kwargs['recordStates'] + if related_findings_ids is None and 'relatedFindingsIds' in kwargs: + related_findings_ids = kwargs['relatedFindingsIds'] + if related_findings_product_arns is None and 'relatedFindingsProductArns' in kwargs: + related_findings_product_arns = kwargs['relatedFindingsProductArns'] + if resource_aws_ec2_instance_iam_instance_profile_arns is None and 'resourceAwsEc2InstanceIamInstanceProfileArns' in kwargs: + resource_aws_ec2_instance_iam_instance_profile_arns = kwargs['resourceAwsEc2InstanceIamInstanceProfileArns'] + if resource_aws_ec2_instance_image_ids is None and 'resourceAwsEc2InstanceImageIds' in kwargs: + resource_aws_ec2_instance_image_ids = kwargs['resourceAwsEc2InstanceImageIds'] + if resource_aws_ec2_instance_ipv4_addresses is None and 'resourceAwsEc2InstanceIpv4Addresses' in kwargs: + resource_aws_ec2_instance_ipv4_addresses = kwargs['resourceAwsEc2InstanceIpv4Addresses'] + if resource_aws_ec2_instance_ipv6_addresses is None and 'resourceAwsEc2InstanceIpv6Addresses' in kwargs: + resource_aws_ec2_instance_ipv6_addresses = kwargs['resourceAwsEc2InstanceIpv6Addresses'] + if resource_aws_ec2_instance_key_names is None and 'resourceAwsEc2InstanceKeyNames' in kwargs: + resource_aws_ec2_instance_key_names = kwargs['resourceAwsEc2InstanceKeyNames'] + if resource_aws_ec2_instance_launched_ats is None and 'resourceAwsEc2InstanceLaunchedAts' in kwargs: + resource_aws_ec2_instance_launched_ats = kwargs['resourceAwsEc2InstanceLaunchedAts'] + if resource_aws_ec2_instance_subnet_ids is None and 'resourceAwsEc2InstanceSubnetIds' in kwargs: + resource_aws_ec2_instance_subnet_ids = kwargs['resourceAwsEc2InstanceSubnetIds'] + if resource_aws_ec2_instance_types is None and 'resourceAwsEc2InstanceTypes' in kwargs: + resource_aws_ec2_instance_types = kwargs['resourceAwsEc2InstanceTypes'] + if resource_aws_ec2_instance_vpc_ids is None and 'resourceAwsEc2InstanceVpcIds' in kwargs: + resource_aws_ec2_instance_vpc_ids = kwargs['resourceAwsEc2InstanceVpcIds'] + if resource_aws_iam_access_key_created_ats is None and 'resourceAwsIamAccessKeyCreatedAts' in kwargs: + resource_aws_iam_access_key_created_ats = kwargs['resourceAwsIamAccessKeyCreatedAts'] + if resource_aws_iam_access_key_statuses is None and 'resourceAwsIamAccessKeyStatuses' in kwargs: + resource_aws_iam_access_key_statuses = kwargs['resourceAwsIamAccessKeyStatuses'] + if resource_aws_iam_access_key_user_names is None and 'resourceAwsIamAccessKeyUserNames' in kwargs: + resource_aws_iam_access_key_user_names = kwargs['resourceAwsIamAccessKeyUserNames'] + if resource_aws_s3_bucket_owner_ids is None and 'resourceAwsS3BucketOwnerIds' in kwargs: + resource_aws_s3_bucket_owner_ids = kwargs['resourceAwsS3BucketOwnerIds'] + if resource_aws_s3_bucket_owner_names is None and 'resourceAwsS3BucketOwnerNames' in kwargs: + resource_aws_s3_bucket_owner_names = kwargs['resourceAwsS3BucketOwnerNames'] + if resource_container_image_ids is None and 'resourceContainerImageIds' in kwargs: + resource_container_image_ids = kwargs['resourceContainerImageIds'] + if resource_container_image_names is None and 'resourceContainerImageNames' in kwargs: + resource_container_image_names = kwargs['resourceContainerImageNames'] + if resource_container_launched_ats is None and 'resourceContainerLaunchedAts' in kwargs: + resource_container_launched_ats = kwargs['resourceContainerLaunchedAts'] + if resource_container_names is None and 'resourceContainerNames' in kwargs: + resource_container_names = kwargs['resourceContainerNames'] + if resource_details_others is None and 'resourceDetailsOthers' in kwargs: + resource_details_others = kwargs['resourceDetailsOthers'] + if resource_ids is None and 'resourceIds' in kwargs: + resource_ids = kwargs['resourceIds'] + if resource_partitions is None and 'resourcePartitions' in kwargs: + resource_partitions = kwargs['resourcePartitions'] + if resource_regions is None and 'resourceRegions' in kwargs: + resource_regions = kwargs['resourceRegions'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if severity_labels is None and 'severityLabels' in kwargs: + severity_labels = kwargs['severityLabels'] + if source_urls is None and 'sourceUrls' in kwargs: + source_urls = kwargs['sourceUrls'] + if threat_intel_indicator_categories is None and 'threatIntelIndicatorCategories' in kwargs: + threat_intel_indicator_categories = kwargs['threatIntelIndicatorCategories'] + if threat_intel_indicator_last_observed_ats is None and 'threatIntelIndicatorLastObservedAts' in kwargs: + threat_intel_indicator_last_observed_ats = kwargs['threatIntelIndicatorLastObservedAts'] + if threat_intel_indicator_source_urls is None and 'threatIntelIndicatorSourceUrls' in kwargs: + threat_intel_indicator_source_urls = kwargs['threatIntelIndicatorSourceUrls'] + if threat_intel_indicator_sources is None and 'threatIntelIndicatorSources' in kwargs: + threat_intel_indicator_sources = kwargs['threatIntelIndicatorSources'] + if threat_intel_indicator_types is None and 'threatIntelIndicatorTypes' in kwargs: + threat_intel_indicator_types = kwargs['threatIntelIndicatorTypes'] + if threat_intel_indicator_values is None and 'threatIntelIndicatorValues' in kwargs: + threat_intel_indicator_values = kwargs['threatIntelIndicatorValues'] + if updated_ats is None and 'updatedAts' in kwargs: + updated_ats = kwargs['updatedAts'] + if user_defined_values is None and 'userDefinedValues' in kwargs: + user_defined_values = kwargs['userDefinedValues'] + if verification_states is None and 'verificationStates' in kwargs: + verification_states = kwargs['verificationStates'] + if workflow_statuses is None and 'workflowStatuses' in kwargs: + workflow_statuses = kwargs['workflowStatuses'] + if aws_account_ids is not None: - pulumi.set(__self__, "aws_account_ids", aws_account_ids) + _setter("aws_account_ids", aws_account_ids) if company_names is not None: - pulumi.set(__self__, "company_names", company_names) + _setter("company_names", company_names) if compliance_statuses is not None: - pulumi.set(__self__, "compliance_statuses", compliance_statuses) + _setter("compliance_statuses", compliance_statuses) if confidences is not None: - pulumi.set(__self__, "confidences", confidences) + _setter("confidences", confidences) if created_ats is not None: - pulumi.set(__self__, "created_ats", created_ats) + _setter("created_ats", created_ats) if criticalities is not None: - pulumi.set(__self__, "criticalities", criticalities) + _setter("criticalities", criticalities) if descriptions is not None: - pulumi.set(__self__, "descriptions", descriptions) + _setter("descriptions", descriptions) if finding_provider_fields_confidences is not None: - pulumi.set(__self__, "finding_provider_fields_confidences", finding_provider_fields_confidences) + _setter("finding_provider_fields_confidences", finding_provider_fields_confidences) if finding_provider_fields_criticalities is not None: - pulumi.set(__self__, "finding_provider_fields_criticalities", finding_provider_fields_criticalities) + _setter("finding_provider_fields_criticalities", finding_provider_fields_criticalities) if finding_provider_fields_related_findings_ids is not None: - pulumi.set(__self__, "finding_provider_fields_related_findings_ids", finding_provider_fields_related_findings_ids) + _setter("finding_provider_fields_related_findings_ids", finding_provider_fields_related_findings_ids) if finding_provider_fields_related_findings_product_arns is not None: - pulumi.set(__self__, "finding_provider_fields_related_findings_product_arns", finding_provider_fields_related_findings_product_arns) + _setter("finding_provider_fields_related_findings_product_arns", finding_provider_fields_related_findings_product_arns) if finding_provider_fields_severity_labels is not None: - pulumi.set(__self__, "finding_provider_fields_severity_labels", finding_provider_fields_severity_labels) + _setter("finding_provider_fields_severity_labels", finding_provider_fields_severity_labels) if finding_provider_fields_severity_originals is not None: - pulumi.set(__self__, "finding_provider_fields_severity_originals", finding_provider_fields_severity_originals) + _setter("finding_provider_fields_severity_originals", finding_provider_fields_severity_originals) if finding_provider_fields_types is not None: - pulumi.set(__self__, "finding_provider_fields_types", finding_provider_fields_types) + _setter("finding_provider_fields_types", finding_provider_fields_types) if first_observed_ats is not None: - pulumi.set(__self__, "first_observed_ats", first_observed_ats) + _setter("first_observed_ats", first_observed_ats) if generator_ids is not None: - pulumi.set(__self__, "generator_ids", generator_ids) + _setter("generator_ids", generator_ids) if ids is not None: - pulumi.set(__self__, "ids", ids) + _setter("ids", ids) if keywords is not None: - pulumi.set(__self__, "keywords", keywords) + _setter("keywords", keywords) if last_observed_ats is not None: - pulumi.set(__self__, "last_observed_ats", last_observed_ats) + _setter("last_observed_ats", last_observed_ats) if malware_names is not None: - pulumi.set(__self__, "malware_names", malware_names) + _setter("malware_names", malware_names) if malware_paths is not None: - pulumi.set(__self__, "malware_paths", malware_paths) + _setter("malware_paths", malware_paths) if malware_states is not None: - pulumi.set(__self__, "malware_states", malware_states) + _setter("malware_states", malware_states) if malware_types is not None: - pulumi.set(__self__, "malware_types", malware_types) + _setter("malware_types", malware_types) if network_destination_domains is not None: - pulumi.set(__self__, "network_destination_domains", network_destination_domains) + _setter("network_destination_domains", network_destination_domains) if network_destination_ipv4s is not None: - pulumi.set(__self__, "network_destination_ipv4s", network_destination_ipv4s) + _setter("network_destination_ipv4s", network_destination_ipv4s) if network_destination_ipv6s is not None: - pulumi.set(__self__, "network_destination_ipv6s", network_destination_ipv6s) + _setter("network_destination_ipv6s", network_destination_ipv6s) if network_destination_ports is not None: - pulumi.set(__self__, "network_destination_ports", network_destination_ports) + _setter("network_destination_ports", network_destination_ports) if network_directions is not None: - pulumi.set(__self__, "network_directions", network_directions) + _setter("network_directions", network_directions) if network_protocols is not None: - pulumi.set(__self__, "network_protocols", network_protocols) + _setter("network_protocols", network_protocols) if network_source_domains is not None: - pulumi.set(__self__, "network_source_domains", network_source_domains) + _setter("network_source_domains", network_source_domains) if network_source_ipv4s is not None: - pulumi.set(__self__, "network_source_ipv4s", network_source_ipv4s) + _setter("network_source_ipv4s", network_source_ipv4s) if network_source_ipv6s is not None: - pulumi.set(__self__, "network_source_ipv6s", network_source_ipv6s) + _setter("network_source_ipv6s", network_source_ipv6s) if network_source_macs is not None: - pulumi.set(__self__, "network_source_macs", network_source_macs) + _setter("network_source_macs", network_source_macs) if network_source_ports is not None: - pulumi.set(__self__, "network_source_ports", network_source_ports) + _setter("network_source_ports", network_source_ports) if note_texts is not None: - pulumi.set(__self__, "note_texts", note_texts) + _setter("note_texts", note_texts) if note_updated_ats is not None: - pulumi.set(__self__, "note_updated_ats", note_updated_ats) + _setter("note_updated_ats", note_updated_ats) if note_updated_bies is not None: - pulumi.set(__self__, "note_updated_bies", note_updated_bies) + _setter("note_updated_bies", note_updated_bies) if process_launched_ats is not None: - pulumi.set(__self__, "process_launched_ats", process_launched_ats) + _setter("process_launched_ats", process_launched_ats) if process_names is not None: - pulumi.set(__self__, "process_names", process_names) + _setter("process_names", process_names) if process_parent_pids is not None: - pulumi.set(__self__, "process_parent_pids", process_parent_pids) + _setter("process_parent_pids", process_parent_pids) if process_paths is not None: - pulumi.set(__self__, "process_paths", process_paths) + _setter("process_paths", process_paths) if process_pids is not None: - pulumi.set(__self__, "process_pids", process_pids) + _setter("process_pids", process_pids) if process_terminated_ats is not None: - pulumi.set(__self__, "process_terminated_ats", process_terminated_ats) + _setter("process_terminated_ats", process_terminated_ats) if product_arns is not None: - pulumi.set(__self__, "product_arns", product_arns) + _setter("product_arns", product_arns) if product_fields is not None: - pulumi.set(__self__, "product_fields", product_fields) + _setter("product_fields", product_fields) if product_names is not None: - pulumi.set(__self__, "product_names", product_names) + _setter("product_names", product_names) if recommendation_texts is not None: - pulumi.set(__self__, "recommendation_texts", recommendation_texts) + _setter("recommendation_texts", recommendation_texts) if record_states is not None: - pulumi.set(__self__, "record_states", record_states) + _setter("record_states", record_states) if related_findings_ids is not None: - pulumi.set(__self__, "related_findings_ids", related_findings_ids) + _setter("related_findings_ids", related_findings_ids) if related_findings_product_arns is not None: - pulumi.set(__self__, "related_findings_product_arns", related_findings_product_arns) + _setter("related_findings_product_arns", related_findings_product_arns) if resource_aws_ec2_instance_iam_instance_profile_arns is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_iam_instance_profile_arns", resource_aws_ec2_instance_iam_instance_profile_arns) + _setter("resource_aws_ec2_instance_iam_instance_profile_arns", resource_aws_ec2_instance_iam_instance_profile_arns) if resource_aws_ec2_instance_image_ids is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_image_ids", resource_aws_ec2_instance_image_ids) + _setter("resource_aws_ec2_instance_image_ids", resource_aws_ec2_instance_image_ids) if resource_aws_ec2_instance_ipv4_addresses is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_ipv4_addresses", resource_aws_ec2_instance_ipv4_addresses) + _setter("resource_aws_ec2_instance_ipv4_addresses", resource_aws_ec2_instance_ipv4_addresses) if resource_aws_ec2_instance_ipv6_addresses is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_ipv6_addresses", resource_aws_ec2_instance_ipv6_addresses) + _setter("resource_aws_ec2_instance_ipv6_addresses", resource_aws_ec2_instance_ipv6_addresses) if resource_aws_ec2_instance_key_names is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_key_names", resource_aws_ec2_instance_key_names) + _setter("resource_aws_ec2_instance_key_names", resource_aws_ec2_instance_key_names) if resource_aws_ec2_instance_launched_ats is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_launched_ats", resource_aws_ec2_instance_launched_ats) + _setter("resource_aws_ec2_instance_launched_ats", resource_aws_ec2_instance_launched_ats) if resource_aws_ec2_instance_subnet_ids is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_subnet_ids", resource_aws_ec2_instance_subnet_ids) + _setter("resource_aws_ec2_instance_subnet_ids", resource_aws_ec2_instance_subnet_ids) if resource_aws_ec2_instance_types is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_types", resource_aws_ec2_instance_types) + _setter("resource_aws_ec2_instance_types", resource_aws_ec2_instance_types) if resource_aws_ec2_instance_vpc_ids is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_vpc_ids", resource_aws_ec2_instance_vpc_ids) + _setter("resource_aws_ec2_instance_vpc_ids", resource_aws_ec2_instance_vpc_ids) if resource_aws_iam_access_key_created_ats is not None: - pulumi.set(__self__, "resource_aws_iam_access_key_created_ats", resource_aws_iam_access_key_created_ats) + _setter("resource_aws_iam_access_key_created_ats", resource_aws_iam_access_key_created_ats) if resource_aws_iam_access_key_statuses is not None: - pulumi.set(__self__, "resource_aws_iam_access_key_statuses", resource_aws_iam_access_key_statuses) + _setter("resource_aws_iam_access_key_statuses", resource_aws_iam_access_key_statuses) if resource_aws_iam_access_key_user_names is not None: - pulumi.set(__self__, "resource_aws_iam_access_key_user_names", resource_aws_iam_access_key_user_names) + _setter("resource_aws_iam_access_key_user_names", resource_aws_iam_access_key_user_names) if resource_aws_s3_bucket_owner_ids is not None: - pulumi.set(__self__, "resource_aws_s3_bucket_owner_ids", resource_aws_s3_bucket_owner_ids) + _setter("resource_aws_s3_bucket_owner_ids", resource_aws_s3_bucket_owner_ids) if resource_aws_s3_bucket_owner_names is not None: - pulumi.set(__self__, "resource_aws_s3_bucket_owner_names", resource_aws_s3_bucket_owner_names) + _setter("resource_aws_s3_bucket_owner_names", resource_aws_s3_bucket_owner_names) if resource_container_image_ids is not None: - pulumi.set(__self__, "resource_container_image_ids", resource_container_image_ids) + _setter("resource_container_image_ids", resource_container_image_ids) if resource_container_image_names is not None: - pulumi.set(__self__, "resource_container_image_names", resource_container_image_names) + _setter("resource_container_image_names", resource_container_image_names) if resource_container_launched_ats is not None: - pulumi.set(__self__, "resource_container_launched_ats", resource_container_launched_ats) + _setter("resource_container_launched_ats", resource_container_launched_ats) if resource_container_names is not None: - pulumi.set(__self__, "resource_container_names", resource_container_names) + _setter("resource_container_names", resource_container_names) if resource_details_others is not None: - pulumi.set(__self__, "resource_details_others", resource_details_others) + _setter("resource_details_others", resource_details_others) if resource_ids is not None: - pulumi.set(__self__, "resource_ids", resource_ids) + _setter("resource_ids", resource_ids) if resource_partitions is not None: - pulumi.set(__self__, "resource_partitions", resource_partitions) + _setter("resource_partitions", resource_partitions) if resource_regions is not None: - pulumi.set(__self__, "resource_regions", resource_regions) + _setter("resource_regions", resource_regions) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) if severity_labels is not None: - pulumi.set(__self__, "severity_labels", severity_labels) + _setter("severity_labels", severity_labels) if source_urls is not None: - pulumi.set(__self__, "source_urls", source_urls) + _setter("source_urls", source_urls) if threat_intel_indicator_categories is not None: - pulumi.set(__self__, "threat_intel_indicator_categories", threat_intel_indicator_categories) + _setter("threat_intel_indicator_categories", threat_intel_indicator_categories) if threat_intel_indicator_last_observed_ats is not None: - pulumi.set(__self__, "threat_intel_indicator_last_observed_ats", threat_intel_indicator_last_observed_ats) + _setter("threat_intel_indicator_last_observed_ats", threat_intel_indicator_last_observed_ats) if threat_intel_indicator_source_urls is not None: - pulumi.set(__self__, "threat_intel_indicator_source_urls", threat_intel_indicator_source_urls) + _setter("threat_intel_indicator_source_urls", threat_intel_indicator_source_urls) if threat_intel_indicator_sources is not None: - pulumi.set(__self__, "threat_intel_indicator_sources", threat_intel_indicator_sources) + _setter("threat_intel_indicator_sources", threat_intel_indicator_sources) if threat_intel_indicator_types is not None: - pulumi.set(__self__, "threat_intel_indicator_types", threat_intel_indicator_types) + _setter("threat_intel_indicator_types", threat_intel_indicator_types) if threat_intel_indicator_values is not None: - pulumi.set(__self__, "threat_intel_indicator_values", threat_intel_indicator_values) + _setter("threat_intel_indicator_values", threat_intel_indicator_values) if titles is not None: - pulumi.set(__self__, "titles", titles) + _setter("titles", titles) if types is not None: - pulumi.set(__self__, "types", types) + _setter("types", types) if updated_ats is not None: - pulumi.set(__self__, "updated_ats", updated_ats) + _setter("updated_ats", updated_ats) if user_defined_values is not None: - pulumi.set(__self__, "user_defined_values", user_defined_values) + _setter("user_defined_values", user_defined_values) if verification_states is not None: - pulumi.set(__self__, "verification_states", verification_states) + _setter("verification_states", verification_states) if workflow_statuses is not None: - pulumi.set(__self__, "workflow_statuses", workflow_statuses) + _setter("workflow_statuses", workflow_statuses) @property @pulumi.getter(name="awsAccountIds") @@ -1536,8 +1883,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersAwsAccountIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1573,8 +1937,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersCompanyNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1610,8 +1991,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersComplianceStatusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1649,12 +2047,27 @@ def __init__(__self__, *, :param pulumi.Input[str] gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param pulumi.Input[str] lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersConfidenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[pulumi.Input[str]] = None, + gte: Optional[pulumi.Input[str]] = None, + lte: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -1704,12 +2117,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersCreatedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersCreatedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -1757,8 +2187,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersCreatedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -1796,12 +2243,27 @@ def __init__(__self__, *, :param pulumi.Input[str] gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param pulumi.Input[str] lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersCriticalityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[pulumi.Input[str]] = None, + gte: Optional[pulumi.Input[str]] = None, + lte: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -1849,8 +2311,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersDescriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1888,12 +2367,27 @@ def __init__(__self__, *, :param pulumi.Input[str] gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param pulumi.Input[str] lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersFindingProviderFieldsConfidenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[pulumi.Input[str]] = None, + gte: Optional[pulumi.Input[str]] = None, + lte: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -1943,12 +2437,27 @@ def __init__(__self__, *, :param pulumi.Input[str] gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param pulumi.Input[str] lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersFindingProviderFieldsCriticalityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[pulumi.Input[str]] = None, + gte: Optional[pulumi.Input[str]] = None, + lte: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -1996,8 +2505,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsRelatedFindingsIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2033,8 +2559,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsRelatedFindingsProductArnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2070,8 +2613,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsSeverityLabelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2107,8 +2667,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsSeverityOriginalArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2144,8 +2721,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2183,12 +2777,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersFirstObservedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersFirstObservedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -2236,8 +2847,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersFirstObservedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2273,8 +2901,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersGeneratorIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2310,8 +2955,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2345,7 +3007,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] value: A value for the keyword. """ - pulumi.set(__self__, "value", value) + InsightFiltersKeywordArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) @property @pulumi.getter @@ -2371,12 +3046,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersLastObservedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersLastObservedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -2424,8 +3116,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersLastObservedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2461,8 +3170,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersMalwareNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2498,8 +3224,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersMalwarePathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2535,8 +3278,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersMalwareStateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2572,8 +3332,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersMalwareTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2609,8 +3386,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkDestinationDomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2644,7 +3438,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersNetworkDestinationIpv4Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -2666,7 +3473,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersNetworkDestinationIpv6Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -2692,12 +3512,27 @@ def __init__(__self__, *, :param pulumi.Input[str] gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param pulumi.Input[str] lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersNetworkDestinationPortArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[pulumi.Input[str]] = None, + gte: Optional[pulumi.Input[str]] = None, + lte: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -2745,8 +3580,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkDirectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2782,8 +3634,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkProtocolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2819,8 +3688,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkSourceDomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2854,7 +3740,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersNetworkSourceIpv4Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -2876,7 +3775,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersNetworkSourceIpv6Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -2900,8 +3812,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkSourceMacArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2939,12 +3868,27 @@ def __init__(__self__, *, :param pulumi.Input[str] gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param pulumi.Input[str] lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersNetworkSourcePortArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[pulumi.Input[str]] = None, + gte: Optional[pulumi.Input[str]] = None, + lte: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -2992,8 +3936,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNoteTextArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3031,12 +3992,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersNoteUpdatedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersNoteUpdatedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -3084,8 +4062,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersNoteUpdatedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3121,8 +4116,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNoteUpdatedByArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3160,12 +4172,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersProcessLaunchedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersProcessLaunchedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -3213,8 +4242,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersProcessLaunchedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3250,8 +4296,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersProcessNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3289,12 +4352,27 @@ def __init__(__self__, *, :param pulumi.Input[str] gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param pulumi.Input[str] lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersProcessParentPidArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[pulumi.Input[str]] = None, + gte: Optional[pulumi.Input[str]] = None, + lte: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -3342,8 +4420,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersProcessPathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3381,12 +4476,27 @@ def __init__(__self__, *, :param pulumi.Input[str] gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param pulumi.Input[str] lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersProcessPidArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[pulumi.Input[str]] = None, + gte: Optional[pulumi.Input[str]] = None, + lte: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -3436,12 +4546,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersProcessTerminatedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersProcessTerminatedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -3489,8 +4616,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersProcessTerminatedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3526,8 +4670,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersProductArnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3565,9 +4726,30 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key of the map filter. For example, for `ResourceTags`, `Key` identifies the name of the tag. For `UserDefinedFields`, `Key` is the name of the field. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + InsightFiltersProductFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -3615,8 +4797,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersProductNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3652,8 +4851,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersRecommendationTextArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3689,8 +4905,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersRecordStateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3726,8 +4959,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersRelatedFindingsIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3763,8 +5013,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersRelatedFindingsProductArnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3800,8 +5067,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArnArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3837,8 +5121,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceImageIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3872,7 +5173,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersResourceAwsEc2InstanceIpv4AddressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -3894,7 +5208,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersResourceAwsEc2InstanceIpv6AddressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -3918,8 +5245,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceKeyNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3957,12 +5301,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersResourceAwsEc2InstanceLaunchedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersResourceAwsEc2InstanceLaunchedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -4010,8 +5371,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceLaunchedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4047,8 +5425,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceSubnetIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4084,8 +5479,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4121,8 +5533,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceVpcIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4160,12 +5589,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersResourceAwsIamAccessKeyCreatedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersResourceAwsIamAccessKeyCreatedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -4213,8 +5659,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsIamAccessKeyCreatedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4250,8 +5713,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsIamAccessKeyStatusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4287,8 +5767,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsIamAccessKeyUserNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4324,8 +5821,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsS3BucketOwnerIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4361,8 +5875,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsS3BucketOwnerNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4398,8 +5929,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceContainerImageIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4435,8 +5983,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceContainerImageNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4474,12 +6039,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersResourceContainerLaunchedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersResourceContainerLaunchedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -4527,8 +6109,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersResourceContainerLaunchedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4564,8 +6163,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceContainerNameArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4603,9 +6219,30 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key of the map filter. For example, for `ResourceTags`, `Key` identifies the name of the tag. For `UserDefinedFields`, `Key` is the name of the field. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + InsightFiltersResourceDetailsOtherArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -4653,8 +6290,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceIdArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4690,8 +6344,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourcePartitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4727,8 +6398,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceRegionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4766,9 +6454,30 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key of the map filter. For example, for `ResourceTags`, `Key` identifies the name of the tag. For `UserDefinedFields`, `Key` is the name of the field. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + InsightFiltersResourceTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -4816,8 +6525,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4853,8 +6579,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersSeverityLabelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4890,8 +6633,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersSourceUrlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4927,8 +6687,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorCategoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4966,12 +6743,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersThreatIntelIndicatorLastObservedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersThreatIntelIndicatorLastObservedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -5019,8 +6813,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorLastObservedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -5056,8 +6867,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -5093,8 +6921,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorSourceUrlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -5130,8 +6975,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -5167,8 +7029,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -5204,8 +7083,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersTitleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -5241,8 +7137,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersTypeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -5280,12 +7193,29 @@ def __init__(__self__, *, :param pulumi.Input[str] end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param pulumi.Input[str] start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersUpdatedAtArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional[pulumi.Input['InsightFiltersUpdatedAtDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -5333,8 +7263,25 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: A date range unit for the date filter. Valid values: `DAYS`. :param pulumi.Input[int] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersUpdatedAtDateRangeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -5372,9 +7319,30 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The key of the map filter. For example, for `ResourceTags`, `Key` identifies the name of the tag. For `UserDefinedFields`, `Key` is the name of the field. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + InsightFiltersUserDefinedValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -5422,8 +7390,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersVerificationStateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -5459,8 +7444,25 @@ def __init__(__self__, *, :param pulumi.Input[str] comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param pulumi.Input[str] value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersWorkflowStatusArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/securityhub/account.py b/sdk/python/pulumi_aws/securityhub/account.py index 8e6d60dbba8..d0811d09ae0 100644 --- a/sdk/python/pulumi_aws/securityhub/account.py +++ b/sdk/python/pulumi_aws/securityhub/account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountArgs', 'Account'] @@ -23,12 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] control_finding_generator: Updates whether the calling account has consolidated control findings turned on. If the value for this field is set to `SECURITY_CONTROL`, Security Hub generates a single finding for a control check even when the check applies to multiple enabled standards. If the value for this field is set to `STANDARD_CONTROL`, Security Hub generates separate findings for a control check when the check applies to multiple enabled standards. For accounts that are part of an organization, this value can only be updated in the administrator account. :param pulumi.Input[bool] enable_default_standards: Whether to enable the security standards that Security Hub has designated as automatically enabled including: ` AWS Foundational Security Best Practices v1.0.0` and `CIS AWS Foundations Benchmark v1.2.0`. Defaults to `true`. """ + AccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable_controls=auto_enable_controls, + control_finding_generator=control_finding_generator, + enable_default_standards=enable_default_standards, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable_controls: Optional[pulumi.Input[bool]] = None, + control_finding_generator: Optional[pulumi.Input[str]] = None, + enable_default_standards: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable_controls is None and 'autoEnableControls' in kwargs: + auto_enable_controls = kwargs['autoEnableControls'] + if control_finding_generator is None and 'controlFindingGenerator' in kwargs: + control_finding_generator = kwargs['controlFindingGenerator'] + if enable_default_standards is None and 'enableDefaultStandards' in kwargs: + enable_default_standards = kwargs['enableDefaultStandards'] + if auto_enable_controls is not None: - pulumi.set(__self__, "auto_enable_controls", auto_enable_controls) + _setter("auto_enable_controls", auto_enable_controls) if control_finding_generator is not None: - pulumi.set(__self__, "control_finding_generator", control_finding_generator) + _setter("control_finding_generator", control_finding_generator) if enable_default_standards is not None: - pulumi.set(__self__, "enable_default_standards", enable_default_standards) + _setter("enable_default_standards", enable_default_standards) @property @pulumi.getter(name="autoEnableControls") @@ -81,14 +102,37 @@ def __init__(__self__, *, :param pulumi.Input[str] control_finding_generator: Updates whether the calling account has consolidated control findings turned on. If the value for this field is set to `SECURITY_CONTROL`, Security Hub generates a single finding for a control check even when the check applies to multiple enabled standards. If the value for this field is set to `STANDARD_CONTROL`, Security Hub generates separate findings for a control check when the check applies to multiple enabled standards. For accounts that are part of an organization, this value can only be updated in the administrator account. :param pulumi.Input[bool] enable_default_standards: Whether to enable the security standards that Security Hub has designated as automatically enabled including: ` AWS Foundational Security Best Practices v1.0.0` and `CIS AWS Foundations Benchmark v1.2.0`. Defaults to `true`. """ + _AccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auto_enable_controls=auto_enable_controls, + control_finding_generator=control_finding_generator, + enable_default_standards=enable_default_standards, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auto_enable_controls: Optional[pulumi.Input[bool]] = None, + control_finding_generator: Optional[pulumi.Input[str]] = None, + enable_default_standards: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable_controls is None and 'autoEnableControls' in kwargs: + auto_enable_controls = kwargs['autoEnableControls'] + if control_finding_generator is None and 'controlFindingGenerator' in kwargs: + control_finding_generator = kwargs['controlFindingGenerator'] + if enable_default_standards is None and 'enableDefaultStandards' in kwargs: + enable_default_standards = kwargs['enableDefaultStandards'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auto_enable_controls is not None: - pulumi.set(__self__, "auto_enable_controls", auto_enable_controls) + _setter("auto_enable_controls", auto_enable_controls) if control_finding_generator is not None: - pulumi.set(__self__, "control_finding_generator", control_finding_generator) + _setter("control_finding_generator", control_finding_generator) if enable_default_standards is not None: - pulumi.set(__self__, "enable_default_standards", enable_default_standards) + _setter("enable_default_standards", enable_default_standards) @property @pulumi.getter @@ -214,6 +258,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/action_target.py b/sdk/python/pulumi_aws/securityhub/action_target.py index f9f23d0a486..6f60a4849f0 100644 --- a/sdk/python/pulumi_aws/securityhub/action_target.py +++ b/sdk/python/pulumi_aws/securityhub/action_target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ActionTargetArgs', 'ActionTarget'] @@ -23,10 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] identifier: The ID for the custom action target. :param pulumi.Input[str] name: The description for the custom action target. """ - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "identifier", identifier) + ActionTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + identifier=identifier, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + identifier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is None: + raise TypeError("Missing 'description' argument") + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("description", description) + _setter("identifier", identifier) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -79,14 +98,31 @@ def __init__(__self__, *, :param pulumi.Input[str] identifier: The ID for the custom action target. :param pulumi.Input[str] name: The description for the custom action target. """ + _ActionTargetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + identifier=identifier, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + identifier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if identifier is not None: - pulumi.set(__self__, "identifier", identifier) + _setter("identifier", identifier) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -216,6 +252,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ActionTargetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/finding_aggregator.py b/sdk/python/pulumi_aws/securityhub/finding_aggregator.py index fd24f54e938..24def570f1f 100644 --- a/sdk/python/pulumi_aws/securityhub/finding_aggregator.py +++ b/sdk/python/pulumi_aws/securityhub/finding_aggregator.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['FindingAggregatorArgs', 'FindingAggregator'] @@ -21,9 +21,28 @@ def __init__(__self__, *, :param pulumi.Input[str] linking_mode: Indicates whether to aggregate findings from all of the available Regions or from a specified list. The options are `ALL_REGIONS`, `ALL_REGIONS_EXCEPT_SPECIFIED` or `SPECIFIED_REGIONS`. When `ALL_REGIONS` or `ALL_REGIONS_EXCEPT_SPECIFIED` are used, Security Hub will automatically aggregate findings from new Regions as Security Hub supports them and you opt into them. :param pulumi.Input[Sequence[pulumi.Input[str]]] specified_regions: List of regions to include or exclude (required if `linking_mode` is set to `ALL_REGIONS_EXCEPT_SPECIFIED` or `SPECIFIED_REGIONS`) """ - pulumi.set(__self__, "linking_mode", linking_mode) + FindingAggregatorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + linking_mode=linking_mode, + specified_regions=specified_regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + linking_mode: Optional[pulumi.Input[str]] = None, + specified_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if linking_mode is None and 'linkingMode' in kwargs: + linking_mode = kwargs['linkingMode'] + if linking_mode is None: + raise TypeError("Missing 'linking_mode' argument") + if specified_regions is None and 'specifiedRegions' in kwargs: + specified_regions = kwargs['specifiedRegions'] + + _setter("linking_mode", linking_mode) if specified_regions is not None: - pulumi.set(__self__, "specified_regions", specified_regions) + _setter("specified_regions", specified_regions) @property @pulumi.getter(name="linkingMode") @@ -60,10 +79,27 @@ def __init__(__self__, *, :param pulumi.Input[str] linking_mode: Indicates whether to aggregate findings from all of the available Regions or from a specified list. The options are `ALL_REGIONS`, `ALL_REGIONS_EXCEPT_SPECIFIED` or `SPECIFIED_REGIONS`. When `ALL_REGIONS` or `ALL_REGIONS_EXCEPT_SPECIFIED` are used, Security Hub will automatically aggregate findings from new Regions as Security Hub supports them and you opt into them. :param pulumi.Input[Sequence[pulumi.Input[str]]] specified_regions: List of regions to include or exclude (required if `linking_mode` is set to `ALL_REGIONS_EXCEPT_SPECIFIED` or `SPECIFIED_REGIONS`) """ + _FindingAggregatorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + linking_mode=linking_mode, + specified_regions=specified_regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + linking_mode: Optional[pulumi.Input[str]] = None, + specified_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if linking_mode is None and 'linkingMode' in kwargs: + linking_mode = kwargs['linkingMode'] + if specified_regions is None and 'specifiedRegions' in kwargs: + specified_regions = kwargs['specifiedRegions'] + if linking_mode is not None: - pulumi.set(__self__, "linking_mode", linking_mode) + _setter("linking_mode", linking_mode) if specified_regions is not None: - pulumi.set(__self__, "specified_regions", specified_regions) + _setter("specified_regions", specified_regions) @property @pulumi.getter(name="linkingMode") @@ -237,6 +273,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FindingAggregatorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/insight.py b/sdk/python/pulumi_aws/securityhub/insight.py index 2c937c185d2..4f5b1372db2 100644 --- a/sdk/python/pulumi_aws/securityhub/insight.py +++ b/sdk/python/pulumi_aws/securityhub/insight.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,31 @@ def __init__(__self__, *, :param pulumi.Input[str] group_by_attribute: The attribute used to group the findings for the insight e.g., if an insight is grouped by `ResourceId`, then the insight produces a list of resource identifiers. :param pulumi.Input[str] name: The name of the custom insight. """ - pulumi.set(__self__, "filters", filters) - pulumi.set(__self__, "group_by_attribute", group_by_attribute) + InsightArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filters=filters, + group_by_attribute=group_by_attribute, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filters: Optional[pulumi.Input['InsightFiltersArgs']] = None, + group_by_attribute: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filters is None: + raise TypeError("Missing 'filters' argument") + if group_by_attribute is None and 'groupByAttribute' in kwargs: + group_by_attribute = kwargs['groupByAttribute'] + if group_by_attribute is None: + raise TypeError("Missing 'group_by_attribute' argument") + + _setter("filters", filters) + _setter("group_by_attribute", group_by_attribute) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -81,14 +102,33 @@ def __init__(__self__, *, :param pulumi.Input[str] group_by_attribute: The attribute used to group the findings for the insight e.g., if an insight is grouped by `ResourceId`, then the insight produces a list of resource identifiers. :param pulumi.Input[str] name: The name of the custom insight. """ + _InsightState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + filters=filters, + group_by_attribute=group_by_attribute, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + filters: Optional[pulumi.Input['InsightFiltersArgs']] = None, + group_by_attribute: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_by_attribute is None and 'groupByAttribute' in kwargs: + group_by_attribute = kwargs['groupByAttribute'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if filters is not None: - pulumi.set(__self__, "filters", filters) + _setter("filters", filters) if group_by_attribute is not None: - pulumi.set(__self__, "group_by_attribute", group_by_attribute) + _setter("group_by_attribute", group_by_attribute) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -380,6 +420,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InsightArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -397,6 +441,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = InsightArgs.__new__(InsightArgs) + filters = _utilities.configure(filters, InsightFiltersArgs, True) if filters is None and not opts.urn: raise TypeError("Missing required property 'filters'") __props__.__dict__["filters"] = filters diff --git a/sdk/python/pulumi_aws/securityhub/invite_accepter.py b/sdk/python/pulumi_aws/securityhub/invite_accepter.py index c4d1249ce7a..8b313621848 100644 --- a/sdk/python/pulumi_aws/securityhub/invite_accepter.py +++ b/sdk/python/pulumi_aws/securityhub/invite_accepter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InviteAccepterArgs', 'InviteAccepter'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a InviteAccepter resource. :param pulumi.Input[str] master_id: The account ID of the master Security Hub account whose invitation you're accepting. """ - pulumi.set(__self__, "master_id", master_id) + InviteAccepterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + master_id=master_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + master_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if master_id is None and 'masterId' in kwargs: + master_id = kwargs['masterId'] + if master_id is None: + raise TypeError("Missing 'master_id' argument") + + _setter("master_id", master_id) @property @pulumi.getter(name="masterId") @@ -44,10 +59,27 @@ def __init__(__self__, *, :param pulumi.Input[str] invitation_id: The ID of the invitation. :param pulumi.Input[str] master_id: The account ID of the master Security Hub account whose invitation you're accepting. """ + _InviteAccepterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + invitation_id=invitation_id, + master_id=master_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + invitation_id: Optional[pulumi.Input[str]] = None, + master_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if invitation_id is None and 'invitationId' in kwargs: + invitation_id = kwargs['invitationId'] + if master_id is None and 'masterId' in kwargs: + master_id = kwargs['masterId'] + if invitation_id is not None: - pulumi.set(__self__, "invitation_id", invitation_id) + _setter("invitation_id", invitation_id) if master_id is not None: - pulumi.set(__self__, "master_id", master_id) + _setter("master_id", master_id) @property @pulumi.getter(name="invitationId") @@ -161,6 +193,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InviteAccepterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/member.py b/sdk/python/pulumi_aws/securityhub/member.py index d2361776640..8a49dff0964 100644 --- a/sdk/python/pulumi_aws/securityhub/member.py +++ b/sdk/python/pulumi_aws/securityhub/member.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MemberArgs', 'Member'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] email: The email of the member AWS account. :param pulumi.Input[bool] invite: Boolean whether to invite the account to Security Hub as a member. Defaults to `false`. """ - pulumi.set(__self__, "account_id", account_id) + MemberArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + email=email, + invite=invite, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + invite: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if account_id is None: + raise TypeError("Missing 'account_id' argument") + + _setter("account_id", account_id) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if invite is not None: - pulumi.set(__self__, "invite", invite) + _setter("invite", invite) @property @pulumi.getter(name="accountId") @@ -82,16 +101,41 @@ def __init__(__self__, *, :param pulumi.Input[str] master_id: The ID of the master Security Hub AWS account. :param pulumi.Input[str] member_status: The status of the member account relationship. """ + _MemberState._configure( + lambda key, value: pulumi.set(__self__, key, value), + account_id=account_id, + email=email, + invite=invite, + master_id=master_id, + member_status=member_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + account_id: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + invite: Optional[pulumi.Input[bool]] = None, + master_id: Optional[pulumi.Input[str]] = None, + member_status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if account_id is None and 'accountId' in kwargs: + account_id = kwargs['accountId'] + if master_id is None and 'masterId' in kwargs: + master_id = kwargs['masterId'] + if member_status is None and 'memberStatus' in kwargs: + member_status = kwargs['memberStatus'] + if account_id is not None: - pulumi.set(__self__, "account_id", account_id) + _setter("account_id", account_id) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) if invite is not None: - pulumi.set(__self__, "invite", invite) + _setter("invite", invite) if master_id is not None: - pulumi.set(__self__, "master_id", master_id) + _setter("master_id", master_id) if member_status is not None: - pulumi.set(__self__, "member_status", member_status) + _setter("member_status", member_status) @property @pulumi.getter(name="accountId") @@ -235,6 +279,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MemberArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/organization_admin_account.py b/sdk/python/pulumi_aws/securityhub/organization_admin_account.py index 12800a8435b..b1c83c133bb 100644 --- a/sdk/python/pulumi_aws/securityhub/organization_admin_account.py +++ b/sdk/python/pulumi_aws/securityhub/organization_admin_account.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OrganizationAdminAccountArgs', 'OrganizationAdminAccount'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a OrganizationAdminAccount resource. :param pulumi.Input[str] admin_account_id: The AWS account identifier of the account to designate as the Security Hub administrator account. """ - pulumi.set(__self__, "admin_account_id", admin_account_id) + OrganizationAdminAccountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_account_id=admin_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_account_id is None and 'adminAccountId' in kwargs: + admin_account_id = kwargs['adminAccountId'] + if admin_account_id is None: + raise TypeError("Missing 'admin_account_id' argument") + + _setter("admin_account_id", admin_account_id) @property @pulumi.getter(name="adminAccountId") @@ -42,8 +57,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering OrganizationAdminAccount resources. :param pulumi.Input[str] admin_account_id: The AWS account identifier of the account to designate as the Security Hub administrator account. """ + _OrganizationAdminAccountState._configure( + lambda key, value: pulumi.set(__self__, key, value), + admin_account_id=admin_account_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + admin_account_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if admin_account_id is None and 'adminAccountId' in kwargs: + admin_account_id = kwargs['adminAccountId'] + if admin_account_id is not None: - pulumi.set(__self__, "admin_account_id", admin_account_id) + _setter("admin_account_id", admin_account_id) @property @pulumi.getter(name="adminAccountId") @@ -139,6 +167,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationAdminAccountArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/organization_configuration.py b/sdk/python/pulumi_aws/securityhub/organization_configuration.py index f0e6eb6260c..055cee7ebbe 100644 --- a/sdk/python/pulumi_aws/securityhub/organization_configuration.py +++ b/sdk/python/pulumi_aws/securityhub/organization_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OrganizationConfigurationArgs', 'OrganizationConfiguration'] @@ -21,9 +21,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] auto_enable: Whether to automatically enable Security Hub for new accounts in the organization. :param pulumi.Input[str] auto_enable_standards: Whether to automatically enable Security Hub default standards for new member accounts in the organization. By default, this parameter is equal to `DEFAULT`, and new member accounts are automatically enabled with default Security Hub standards. To opt out of enabling default standards for new member accounts, set this parameter equal to `NONE`. """ - pulumi.set(__self__, "auto_enable", auto_enable) + OrganizationConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + auto_enable_standards=auto_enable_standards, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[pulumi.Input[bool]] = None, + auto_enable_standards: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable is None: + raise TypeError("Missing 'auto_enable' argument") + if auto_enable_standards is None and 'autoEnableStandards' in kwargs: + auto_enable_standards = kwargs['autoEnableStandards'] + + _setter("auto_enable", auto_enable) if auto_enable_standards is not None: - pulumi.set(__self__, "auto_enable_standards", auto_enable_standards) + _setter("auto_enable_standards", auto_enable_standards) @property @pulumi.getter(name="autoEnable") @@ -60,10 +79,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] auto_enable: Whether to automatically enable Security Hub for new accounts in the organization. :param pulumi.Input[str] auto_enable_standards: Whether to automatically enable Security Hub default standards for new member accounts in the organization. By default, this parameter is equal to `DEFAULT`, and new member accounts are automatically enabled with default Security Hub standards. To opt out of enabling default standards for new member accounts, set this parameter equal to `NONE`. """ + _OrganizationConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + auto_enable=auto_enable, + auto_enable_standards=auto_enable_standards, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auto_enable: Optional[pulumi.Input[bool]] = None, + auto_enable_standards: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auto_enable is None and 'autoEnable' in kwargs: + auto_enable = kwargs['autoEnable'] + if auto_enable_standards is None and 'autoEnableStandards' in kwargs: + auto_enable_standards = kwargs['autoEnableStandards'] + if auto_enable is not None: - pulumi.set(__self__, "auto_enable", auto_enable) + _setter("auto_enable", auto_enable) if auto_enable_standards is not None: - pulumi.set(__self__, "auto_enable_standards", auto_enable_standards) + _setter("auto_enable_standards", auto_enable_standards) @property @pulumi.getter(name="autoEnable") @@ -177,6 +213,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/outputs.py b/sdk/python/pulumi_aws/securityhub/outputs.py index ea0838b70fb..3a45a7b8509 100644 --- a/sdk/python/pulumi_aws/securityhub/outputs.py +++ b/sdk/python/pulumi_aws/securityhub/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -471,182 +471,529 @@ def __init__(__self__, *, :param Sequence['InsightFiltersVerificationStateArgs'] verification_states: The veracity of a finding. See String Filter below for more details. :param Sequence['InsightFiltersWorkflowStatusArgs'] workflow_statuses: The status of the investigation into a finding. See Workflow Status Filter below for more details. """ + InsightFilters._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_account_ids=aws_account_ids, + company_names=company_names, + compliance_statuses=compliance_statuses, + confidences=confidences, + created_ats=created_ats, + criticalities=criticalities, + descriptions=descriptions, + finding_provider_fields_confidences=finding_provider_fields_confidences, + finding_provider_fields_criticalities=finding_provider_fields_criticalities, + finding_provider_fields_related_findings_ids=finding_provider_fields_related_findings_ids, + finding_provider_fields_related_findings_product_arns=finding_provider_fields_related_findings_product_arns, + finding_provider_fields_severity_labels=finding_provider_fields_severity_labels, + finding_provider_fields_severity_originals=finding_provider_fields_severity_originals, + finding_provider_fields_types=finding_provider_fields_types, + first_observed_ats=first_observed_ats, + generator_ids=generator_ids, + ids=ids, + keywords=keywords, + last_observed_ats=last_observed_ats, + malware_names=malware_names, + malware_paths=malware_paths, + malware_states=malware_states, + malware_types=malware_types, + network_destination_domains=network_destination_domains, + network_destination_ipv4s=network_destination_ipv4s, + network_destination_ipv6s=network_destination_ipv6s, + network_destination_ports=network_destination_ports, + network_directions=network_directions, + network_protocols=network_protocols, + network_source_domains=network_source_domains, + network_source_ipv4s=network_source_ipv4s, + network_source_ipv6s=network_source_ipv6s, + network_source_macs=network_source_macs, + network_source_ports=network_source_ports, + note_texts=note_texts, + note_updated_ats=note_updated_ats, + note_updated_bies=note_updated_bies, + process_launched_ats=process_launched_ats, + process_names=process_names, + process_parent_pids=process_parent_pids, + process_paths=process_paths, + process_pids=process_pids, + process_terminated_ats=process_terminated_ats, + product_arns=product_arns, + product_fields=product_fields, + product_names=product_names, + recommendation_texts=recommendation_texts, + record_states=record_states, + related_findings_ids=related_findings_ids, + related_findings_product_arns=related_findings_product_arns, + resource_aws_ec2_instance_iam_instance_profile_arns=resource_aws_ec2_instance_iam_instance_profile_arns, + resource_aws_ec2_instance_image_ids=resource_aws_ec2_instance_image_ids, + resource_aws_ec2_instance_ipv4_addresses=resource_aws_ec2_instance_ipv4_addresses, + resource_aws_ec2_instance_ipv6_addresses=resource_aws_ec2_instance_ipv6_addresses, + resource_aws_ec2_instance_key_names=resource_aws_ec2_instance_key_names, + resource_aws_ec2_instance_launched_ats=resource_aws_ec2_instance_launched_ats, + resource_aws_ec2_instance_subnet_ids=resource_aws_ec2_instance_subnet_ids, + resource_aws_ec2_instance_types=resource_aws_ec2_instance_types, + resource_aws_ec2_instance_vpc_ids=resource_aws_ec2_instance_vpc_ids, + resource_aws_iam_access_key_created_ats=resource_aws_iam_access_key_created_ats, + resource_aws_iam_access_key_statuses=resource_aws_iam_access_key_statuses, + resource_aws_iam_access_key_user_names=resource_aws_iam_access_key_user_names, + resource_aws_s3_bucket_owner_ids=resource_aws_s3_bucket_owner_ids, + resource_aws_s3_bucket_owner_names=resource_aws_s3_bucket_owner_names, + resource_container_image_ids=resource_container_image_ids, + resource_container_image_names=resource_container_image_names, + resource_container_launched_ats=resource_container_launched_ats, + resource_container_names=resource_container_names, + resource_details_others=resource_details_others, + resource_ids=resource_ids, + resource_partitions=resource_partitions, + resource_regions=resource_regions, + resource_tags=resource_tags, + resource_types=resource_types, + severity_labels=severity_labels, + source_urls=source_urls, + threat_intel_indicator_categories=threat_intel_indicator_categories, + threat_intel_indicator_last_observed_ats=threat_intel_indicator_last_observed_ats, + threat_intel_indicator_source_urls=threat_intel_indicator_source_urls, + threat_intel_indicator_sources=threat_intel_indicator_sources, + threat_intel_indicator_types=threat_intel_indicator_types, + threat_intel_indicator_values=threat_intel_indicator_values, + titles=titles, + types=types, + updated_ats=updated_ats, + user_defined_values=user_defined_values, + verification_states=verification_states, + workflow_statuses=workflow_statuses, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_account_ids: Optional[Sequence['outputs.InsightFiltersAwsAccountId']] = None, + company_names: Optional[Sequence['outputs.InsightFiltersCompanyName']] = None, + compliance_statuses: Optional[Sequence['outputs.InsightFiltersComplianceStatus']] = None, + confidences: Optional[Sequence['outputs.InsightFiltersConfidence']] = None, + created_ats: Optional[Sequence['outputs.InsightFiltersCreatedAt']] = None, + criticalities: Optional[Sequence['outputs.InsightFiltersCriticality']] = None, + descriptions: Optional[Sequence['outputs.InsightFiltersDescription']] = None, + finding_provider_fields_confidences: Optional[Sequence['outputs.InsightFiltersFindingProviderFieldsConfidence']] = None, + finding_provider_fields_criticalities: Optional[Sequence['outputs.InsightFiltersFindingProviderFieldsCriticality']] = None, + finding_provider_fields_related_findings_ids: Optional[Sequence['outputs.InsightFiltersFindingProviderFieldsRelatedFindingsId']] = None, + finding_provider_fields_related_findings_product_arns: Optional[Sequence['outputs.InsightFiltersFindingProviderFieldsRelatedFindingsProductArn']] = None, + finding_provider_fields_severity_labels: Optional[Sequence['outputs.InsightFiltersFindingProviderFieldsSeverityLabel']] = None, + finding_provider_fields_severity_originals: Optional[Sequence['outputs.InsightFiltersFindingProviderFieldsSeverityOriginal']] = None, + finding_provider_fields_types: Optional[Sequence['outputs.InsightFiltersFindingProviderFieldsType']] = None, + first_observed_ats: Optional[Sequence['outputs.InsightFiltersFirstObservedAt']] = None, + generator_ids: Optional[Sequence['outputs.InsightFiltersGeneratorId']] = None, + ids: Optional[Sequence['outputs.InsightFiltersId']] = None, + keywords: Optional[Sequence['outputs.InsightFiltersKeyword']] = None, + last_observed_ats: Optional[Sequence['outputs.InsightFiltersLastObservedAt']] = None, + malware_names: Optional[Sequence['outputs.InsightFiltersMalwareName']] = None, + malware_paths: Optional[Sequence['outputs.InsightFiltersMalwarePath']] = None, + malware_states: Optional[Sequence['outputs.InsightFiltersMalwareState']] = None, + malware_types: Optional[Sequence['outputs.InsightFiltersMalwareType']] = None, + network_destination_domains: Optional[Sequence['outputs.InsightFiltersNetworkDestinationDomain']] = None, + network_destination_ipv4s: Optional[Sequence['outputs.InsightFiltersNetworkDestinationIpv4']] = None, + network_destination_ipv6s: Optional[Sequence['outputs.InsightFiltersNetworkDestinationIpv6']] = None, + network_destination_ports: Optional[Sequence['outputs.InsightFiltersNetworkDestinationPort']] = None, + network_directions: Optional[Sequence['outputs.InsightFiltersNetworkDirection']] = None, + network_protocols: Optional[Sequence['outputs.InsightFiltersNetworkProtocol']] = None, + network_source_domains: Optional[Sequence['outputs.InsightFiltersNetworkSourceDomain']] = None, + network_source_ipv4s: Optional[Sequence['outputs.InsightFiltersNetworkSourceIpv4']] = None, + network_source_ipv6s: Optional[Sequence['outputs.InsightFiltersNetworkSourceIpv6']] = None, + network_source_macs: Optional[Sequence['outputs.InsightFiltersNetworkSourceMac']] = None, + network_source_ports: Optional[Sequence['outputs.InsightFiltersNetworkSourcePort']] = None, + note_texts: Optional[Sequence['outputs.InsightFiltersNoteText']] = None, + note_updated_ats: Optional[Sequence['outputs.InsightFiltersNoteUpdatedAt']] = None, + note_updated_bies: Optional[Sequence['outputs.InsightFiltersNoteUpdatedBy']] = None, + process_launched_ats: Optional[Sequence['outputs.InsightFiltersProcessLaunchedAt']] = None, + process_names: Optional[Sequence['outputs.InsightFiltersProcessName']] = None, + process_parent_pids: Optional[Sequence['outputs.InsightFiltersProcessParentPid']] = None, + process_paths: Optional[Sequence['outputs.InsightFiltersProcessPath']] = None, + process_pids: Optional[Sequence['outputs.InsightFiltersProcessPid']] = None, + process_terminated_ats: Optional[Sequence['outputs.InsightFiltersProcessTerminatedAt']] = None, + product_arns: Optional[Sequence['outputs.InsightFiltersProductArn']] = None, + product_fields: Optional[Sequence['outputs.InsightFiltersProductField']] = None, + product_names: Optional[Sequence['outputs.InsightFiltersProductName']] = None, + recommendation_texts: Optional[Sequence['outputs.InsightFiltersRecommendationText']] = None, + record_states: Optional[Sequence['outputs.InsightFiltersRecordState']] = None, + related_findings_ids: Optional[Sequence['outputs.InsightFiltersRelatedFindingsId']] = None, + related_findings_product_arns: Optional[Sequence['outputs.InsightFiltersRelatedFindingsProductArn']] = None, + resource_aws_ec2_instance_iam_instance_profile_arns: Optional[Sequence['outputs.InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArn']] = None, + resource_aws_ec2_instance_image_ids: Optional[Sequence['outputs.InsightFiltersResourceAwsEc2InstanceImageId']] = None, + resource_aws_ec2_instance_ipv4_addresses: Optional[Sequence['outputs.InsightFiltersResourceAwsEc2InstanceIpv4Address']] = None, + resource_aws_ec2_instance_ipv6_addresses: Optional[Sequence['outputs.InsightFiltersResourceAwsEc2InstanceIpv6Address']] = None, + resource_aws_ec2_instance_key_names: Optional[Sequence['outputs.InsightFiltersResourceAwsEc2InstanceKeyName']] = None, + resource_aws_ec2_instance_launched_ats: Optional[Sequence['outputs.InsightFiltersResourceAwsEc2InstanceLaunchedAt']] = None, + resource_aws_ec2_instance_subnet_ids: Optional[Sequence['outputs.InsightFiltersResourceAwsEc2InstanceSubnetId']] = None, + resource_aws_ec2_instance_types: Optional[Sequence['outputs.InsightFiltersResourceAwsEc2InstanceType']] = None, + resource_aws_ec2_instance_vpc_ids: Optional[Sequence['outputs.InsightFiltersResourceAwsEc2InstanceVpcId']] = None, + resource_aws_iam_access_key_created_ats: Optional[Sequence['outputs.InsightFiltersResourceAwsIamAccessKeyCreatedAt']] = None, + resource_aws_iam_access_key_statuses: Optional[Sequence['outputs.InsightFiltersResourceAwsIamAccessKeyStatus']] = None, + resource_aws_iam_access_key_user_names: Optional[Sequence['outputs.InsightFiltersResourceAwsIamAccessKeyUserName']] = None, + resource_aws_s3_bucket_owner_ids: Optional[Sequence['outputs.InsightFiltersResourceAwsS3BucketOwnerId']] = None, + resource_aws_s3_bucket_owner_names: Optional[Sequence['outputs.InsightFiltersResourceAwsS3BucketOwnerName']] = None, + resource_container_image_ids: Optional[Sequence['outputs.InsightFiltersResourceContainerImageId']] = None, + resource_container_image_names: Optional[Sequence['outputs.InsightFiltersResourceContainerImageName']] = None, + resource_container_launched_ats: Optional[Sequence['outputs.InsightFiltersResourceContainerLaunchedAt']] = None, + resource_container_names: Optional[Sequence['outputs.InsightFiltersResourceContainerName']] = None, + resource_details_others: Optional[Sequence['outputs.InsightFiltersResourceDetailsOther']] = None, + resource_ids: Optional[Sequence['outputs.InsightFiltersResourceId']] = None, + resource_partitions: Optional[Sequence['outputs.InsightFiltersResourcePartition']] = None, + resource_regions: Optional[Sequence['outputs.InsightFiltersResourceRegion']] = None, + resource_tags: Optional[Sequence['outputs.InsightFiltersResourceTag']] = None, + resource_types: Optional[Sequence['outputs.InsightFiltersResourceType']] = None, + severity_labels: Optional[Sequence['outputs.InsightFiltersSeverityLabel']] = None, + source_urls: Optional[Sequence['outputs.InsightFiltersSourceUrl']] = None, + threat_intel_indicator_categories: Optional[Sequence['outputs.InsightFiltersThreatIntelIndicatorCategory']] = None, + threat_intel_indicator_last_observed_ats: Optional[Sequence['outputs.InsightFiltersThreatIntelIndicatorLastObservedAt']] = None, + threat_intel_indicator_source_urls: Optional[Sequence['outputs.InsightFiltersThreatIntelIndicatorSourceUrl']] = None, + threat_intel_indicator_sources: Optional[Sequence['outputs.InsightFiltersThreatIntelIndicatorSource']] = None, + threat_intel_indicator_types: Optional[Sequence['outputs.InsightFiltersThreatIntelIndicatorType']] = None, + threat_intel_indicator_values: Optional[Sequence['outputs.InsightFiltersThreatIntelIndicatorValue']] = None, + titles: Optional[Sequence['outputs.InsightFiltersTitle']] = None, + types: Optional[Sequence['outputs.InsightFiltersType']] = None, + updated_ats: Optional[Sequence['outputs.InsightFiltersUpdatedAt']] = None, + user_defined_values: Optional[Sequence['outputs.InsightFiltersUserDefinedValue']] = None, + verification_states: Optional[Sequence['outputs.InsightFiltersVerificationState']] = None, + workflow_statuses: Optional[Sequence['outputs.InsightFiltersWorkflowStatus']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_account_ids is None and 'awsAccountIds' in kwargs: + aws_account_ids = kwargs['awsAccountIds'] + if company_names is None and 'companyNames' in kwargs: + company_names = kwargs['companyNames'] + if compliance_statuses is None and 'complianceStatuses' in kwargs: + compliance_statuses = kwargs['complianceStatuses'] + if created_ats is None and 'createdAts' in kwargs: + created_ats = kwargs['createdAts'] + if finding_provider_fields_confidences is None and 'findingProviderFieldsConfidences' in kwargs: + finding_provider_fields_confidences = kwargs['findingProviderFieldsConfidences'] + if finding_provider_fields_criticalities is None and 'findingProviderFieldsCriticalities' in kwargs: + finding_provider_fields_criticalities = kwargs['findingProviderFieldsCriticalities'] + if finding_provider_fields_related_findings_ids is None and 'findingProviderFieldsRelatedFindingsIds' in kwargs: + finding_provider_fields_related_findings_ids = kwargs['findingProviderFieldsRelatedFindingsIds'] + if finding_provider_fields_related_findings_product_arns is None and 'findingProviderFieldsRelatedFindingsProductArns' in kwargs: + finding_provider_fields_related_findings_product_arns = kwargs['findingProviderFieldsRelatedFindingsProductArns'] + if finding_provider_fields_severity_labels is None and 'findingProviderFieldsSeverityLabels' in kwargs: + finding_provider_fields_severity_labels = kwargs['findingProviderFieldsSeverityLabels'] + if finding_provider_fields_severity_originals is None and 'findingProviderFieldsSeverityOriginals' in kwargs: + finding_provider_fields_severity_originals = kwargs['findingProviderFieldsSeverityOriginals'] + if finding_provider_fields_types is None and 'findingProviderFieldsTypes' in kwargs: + finding_provider_fields_types = kwargs['findingProviderFieldsTypes'] + if first_observed_ats is None and 'firstObservedAts' in kwargs: + first_observed_ats = kwargs['firstObservedAts'] + if generator_ids is None and 'generatorIds' in kwargs: + generator_ids = kwargs['generatorIds'] + if last_observed_ats is None and 'lastObservedAts' in kwargs: + last_observed_ats = kwargs['lastObservedAts'] + if malware_names is None and 'malwareNames' in kwargs: + malware_names = kwargs['malwareNames'] + if malware_paths is None and 'malwarePaths' in kwargs: + malware_paths = kwargs['malwarePaths'] + if malware_states is None and 'malwareStates' in kwargs: + malware_states = kwargs['malwareStates'] + if malware_types is None and 'malwareTypes' in kwargs: + malware_types = kwargs['malwareTypes'] + if network_destination_domains is None and 'networkDestinationDomains' in kwargs: + network_destination_domains = kwargs['networkDestinationDomains'] + if network_destination_ipv4s is None and 'networkDestinationIpv4s' in kwargs: + network_destination_ipv4s = kwargs['networkDestinationIpv4s'] + if network_destination_ipv6s is None and 'networkDestinationIpv6s' in kwargs: + network_destination_ipv6s = kwargs['networkDestinationIpv6s'] + if network_destination_ports is None and 'networkDestinationPorts' in kwargs: + network_destination_ports = kwargs['networkDestinationPorts'] + if network_directions is None and 'networkDirections' in kwargs: + network_directions = kwargs['networkDirections'] + if network_protocols is None and 'networkProtocols' in kwargs: + network_protocols = kwargs['networkProtocols'] + if network_source_domains is None and 'networkSourceDomains' in kwargs: + network_source_domains = kwargs['networkSourceDomains'] + if network_source_ipv4s is None and 'networkSourceIpv4s' in kwargs: + network_source_ipv4s = kwargs['networkSourceIpv4s'] + if network_source_ipv6s is None and 'networkSourceIpv6s' in kwargs: + network_source_ipv6s = kwargs['networkSourceIpv6s'] + if network_source_macs is None and 'networkSourceMacs' in kwargs: + network_source_macs = kwargs['networkSourceMacs'] + if network_source_ports is None and 'networkSourcePorts' in kwargs: + network_source_ports = kwargs['networkSourcePorts'] + if note_texts is None and 'noteTexts' in kwargs: + note_texts = kwargs['noteTexts'] + if note_updated_ats is None and 'noteUpdatedAts' in kwargs: + note_updated_ats = kwargs['noteUpdatedAts'] + if note_updated_bies is None and 'noteUpdatedBies' in kwargs: + note_updated_bies = kwargs['noteUpdatedBies'] + if process_launched_ats is None and 'processLaunchedAts' in kwargs: + process_launched_ats = kwargs['processLaunchedAts'] + if process_names is None and 'processNames' in kwargs: + process_names = kwargs['processNames'] + if process_parent_pids is None and 'processParentPids' in kwargs: + process_parent_pids = kwargs['processParentPids'] + if process_paths is None and 'processPaths' in kwargs: + process_paths = kwargs['processPaths'] + if process_pids is None and 'processPids' in kwargs: + process_pids = kwargs['processPids'] + if process_terminated_ats is None and 'processTerminatedAts' in kwargs: + process_terminated_ats = kwargs['processTerminatedAts'] + if product_arns is None and 'productArns' in kwargs: + product_arns = kwargs['productArns'] + if product_fields is None and 'productFields' in kwargs: + product_fields = kwargs['productFields'] + if product_names is None and 'productNames' in kwargs: + product_names = kwargs['productNames'] + if recommendation_texts is None and 'recommendationTexts' in kwargs: + recommendation_texts = kwargs['recommendationTexts'] + if record_states is None and 'recordStates' in kwargs: + record_states = kwargs['recordStates'] + if related_findings_ids is None and 'relatedFindingsIds' in kwargs: + related_findings_ids = kwargs['relatedFindingsIds'] + if related_findings_product_arns is None and 'relatedFindingsProductArns' in kwargs: + related_findings_product_arns = kwargs['relatedFindingsProductArns'] + if resource_aws_ec2_instance_iam_instance_profile_arns is None and 'resourceAwsEc2InstanceIamInstanceProfileArns' in kwargs: + resource_aws_ec2_instance_iam_instance_profile_arns = kwargs['resourceAwsEc2InstanceIamInstanceProfileArns'] + if resource_aws_ec2_instance_image_ids is None and 'resourceAwsEc2InstanceImageIds' in kwargs: + resource_aws_ec2_instance_image_ids = kwargs['resourceAwsEc2InstanceImageIds'] + if resource_aws_ec2_instance_ipv4_addresses is None and 'resourceAwsEc2InstanceIpv4Addresses' in kwargs: + resource_aws_ec2_instance_ipv4_addresses = kwargs['resourceAwsEc2InstanceIpv4Addresses'] + if resource_aws_ec2_instance_ipv6_addresses is None and 'resourceAwsEc2InstanceIpv6Addresses' in kwargs: + resource_aws_ec2_instance_ipv6_addresses = kwargs['resourceAwsEc2InstanceIpv6Addresses'] + if resource_aws_ec2_instance_key_names is None and 'resourceAwsEc2InstanceKeyNames' in kwargs: + resource_aws_ec2_instance_key_names = kwargs['resourceAwsEc2InstanceKeyNames'] + if resource_aws_ec2_instance_launched_ats is None and 'resourceAwsEc2InstanceLaunchedAts' in kwargs: + resource_aws_ec2_instance_launched_ats = kwargs['resourceAwsEc2InstanceLaunchedAts'] + if resource_aws_ec2_instance_subnet_ids is None and 'resourceAwsEc2InstanceSubnetIds' in kwargs: + resource_aws_ec2_instance_subnet_ids = kwargs['resourceAwsEc2InstanceSubnetIds'] + if resource_aws_ec2_instance_types is None and 'resourceAwsEc2InstanceTypes' in kwargs: + resource_aws_ec2_instance_types = kwargs['resourceAwsEc2InstanceTypes'] + if resource_aws_ec2_instance_vpc_ids is None and 'resourceAwsEc2InstanceVpcIds' in kwargs: + resource_aws_ec2_instance_vpc_ids = kwargs['resourceAwsEc2InstanceVpcIds'] + if resource_aws_iam_access_key_created_ats is None and 'resourceAwsIamAccessKeyCreatedAts' in kwargs: + resource_aws_iam_access_key_created_ats = kwargs['resourceAwsIamAccessKeyCreatedAts'] + if resource_aws_iam_access_key_statuses is None and 'resourceAwsIamAccessKeyStatuses' in kwargs: + resource_aws_iam_access_key_statuses = kwargs['resourceAwsIamAccessKeyStatuses'] + if resource_aws_iam_access_key_user_names is None and 'resourceAwsIamAccessKeyUserNames' in kwargs: + resource_aws_iam_access_key_user_names = kwargs['resourceAwsIamAccessKeyUserNames'] + if resource_aws_s3_bucket_owner_ids is None and 'resourceAwsS3BucketOwnerIds' in kwargs: + resource_aws_s3_bucket_owner_ids = kwargs['resourceAwsS3BucketOwnerIds'] + if resource_aws_s3_bucket_owner_names is None and 'resourceAwsS3BucketOwnerNames' in kwargs: + resource_aws_s3_bucket_owner_names = kwargs['resourceAwsS3BucketOwnerNames'] + if resource_container_image_ids is None and 'resourceContainerImageIds' in kwargs: + resource_container_image_ids = kwargs['resourceContainerImageIds'] + if resource_container_image_names is None and 'resourceContainerImageNames' in kwargs: + resource_container_image_names = kwargs['resourceContainerImageNames'] + if resource_container_launched_ats is None and 'resourceContainerLaunchedAts' in kwargs: + resource_container_launched_ats = kwargs['resourceContainerLaunchedAts'] + if resource_container_names is None and 'resourceContainerNames' in kwargs: + resource_container_names = kwargs['resourceContainerNames'] + if resource_details_others is None and 'resourceDetailsOthers' in kwargs: + resource_details_others = kwargs['resourceDetailsOthers'] + if resource_ids is None and 'resourceIds' in kwargs: + resource_ids = kwargs['resourceIds'] + if resource_partitions is None and 'resourcePartitions' in kwargs: + resource_partitions = kwargs['resourcePartitions'] + if resource_regions is None and 'resourceRegions' in kwargs: + resource_regions = kwargs['resourceRegions'] + if resource_tags is None and 'resourceTags' in kwargs: + resource_tags = kwargs['resourceTags'] + if resource_types is None and 'resourceTypes' in kwargs: + resource_types = kwargs['resourceTypes'] + if severity_labels is None and 'severityLabels' in kwargs: + severity_labels = kwargs['severityLabels'] + if source_urls is None and 'sourceUrls' in kwargs: + source_urls = kwargs['sourceUrls'] + if threat_intel_indicator_categories is None and 'threatIntelIndicatorCategories' in kwargs: + threat_intel_indicator_categories = kwargs['threatIntelIndicatorCategories'] + if threat_intel_indicator_last_observed_ats is None and 'threatIntelIndicatorLastObservedAts' in kwargs: + threat_intel_indicator_last_observed_ats = kwargs['threatIntelIndicatorLastObservedAts'] + if threat_intel_indicator_source_urls is None and 'threatIntelIndicatorSourceUrls' in kwargs: + threat_intel_indicator_source_urls = kwargs['threatIntelIndicatorSourceUrls'] + if threat_intel_indicator_sources is None and 'threatIntelIndicatorSources' in kwargs: + threat_intel_indicator_sources = kwargs['threatIntelIndicatorSources'] + if threat_intel_indicator_types is None and 'threatIntelIndicatorTypes' in kwargs: + threat_intel_indicator_types = kwargs['threatIntelIndicatorTypes'] + if threat_intel_indicator_values is None and 'threatIntelIndicatorValues' in kwargs: + threat_intel_indicator_values = kwargs['threatIntelIndicatorValues'] + if updated_ats is None and 'updatedAts' in kwargs: + updated_ats = kwargs['updatedAts'] + if user_defined_values is None and 'userDefinedValues' in kwargs: + user_defined_values = kwargs['userDefinedValues'] + if verification_states is None and 'verificationStates' in kwargs: + verification_states = kwargs['verificationStates'] + if workflow_statuses is None and 'workflowStatuses' in kwargs: + workflow_statuses = kwargs['workflowStatuses'] + if aws_account_ids is not None: - pulumi.set(__self__, "aws_account_ids", aws_account_ids) + _setter("aws_account_ids", aws_account_ids) if company_names is not None: - pulumi.set(__self__, "company_names", company_names) + _setter("company_names", company_names) if compliance_statuses is not None: - pulumi.set(__self__, "compliance_statuses", compliance_statuses) + _setter("compliance_statuses", compliance_statuses) if confidences is not None: - pulumi.set(__self__, "confidences", confidences) + _setter("confidences", confidences) if created_ats is not None: - pulumi.set(__self__, "created_ats", created_ats) + _setter("created_ats", created_ats) if criticalities is not None: - pulumi.set(__self__, "criticalities", criticalities) + _setter("criticalities", criticalities) if descriptions is not None: - pulumi.set(__self__, "descriptions", descriptions) + _setter("descriptions", descriptions) if finding_provider_fields_confidences is not None: - pulumi.set(__self__, "finding_provider_fields_confidences", finding_provider_fields_confidences) + _setter("finding_provider_fields_confidences", finding_provider_fields_confidences) if finding_provider_fields_criticalities is not None: - pulumi.set(__self__, "finding_provider_fields_criticalities", finding_provider_fields_criticalities) + _setter("finding_provider_fields_criticalities", finding_provider_fields_criticalities) if finding_provider_fields_related_findings_ids is not None: - pulumi.set(__self__, "finding_provider_fields_related_findings_ids", finding_provider_fields_related_findings_ids) + _setter("finding_provider_fields_related_findings_ids", finding_provider_fields_related_findings_ids) if finding_provider_fields_related_findings_product_arns is not None: - pulumi.set(__self__, "finding_provider_fields_related_findings_product_arns", finding_provider_fields_related_findings_product_arns) + _setter("finding_provider_fields_related_findings_product_arns", finding_provider_fields_related_findings_product_arns) if finding_provider_fields_severity_labels is not None: - pulumi.set(__self__, "finding_provider_fields_severity_labels", finding_provider_fields_severity_labels) + _setter("finding_provider_fields_severity_labels", finding_provider_fields_severity_labels) if finding_provider_fields_severity_originals is not None: - pulumi.set(__self__, "finding_provider_fields_severity_originals", finding_provider_fields_severity_originals) + _setter("finding_provider_fields_severity_originals", finding_provider_fields_severity_originals) if finding_provider_fields_types is not None: - pulumi.set(__self__, "finding_provider_fields_types", finding_provider_fields_types) + _setter("finding_provider_fields_types", finding_provider_fields_types) if first_observed_ats is not None: - pulumi.set(__self__, "first_observed_ats", first_observed_ats) + _setter("first_observed_ats", first_observed_ats) if generator_ids is not None: - pulumi.set(__self__, "generator_ids", generator_ids) + _setter("generator_ids", generator_ids) if ids is not None: - pulumi.set(__self__, "ids", ids) + _setter("ids", ids) if keywords is not None: - pulumi.set(__self__, "keywords", keywords) + _setter("keywords", keywords) if last_observed_ats is not None: - pulumi.set(__self__, "last_observed_ats", last_observed_ats) + _setter("last_observed_ats", last_observed_ats) if malware_names is not None: - pulumi.set(__self__, "malware_names", malware_names) + _setter("malware_names", malware_names) if malware_paths is not None: - pulumi.set(__self__, "malware_paths", malware_paths) + _setter("malware_paths", malware_paths) if malware_states is not None: - pulumi.set(__self__, "malware_states", malware_states) + _setter("malware_states", malware_states) if malware_types is not None: - pulumi.set(__self__, "malware_types", malware_types) + _setter("malware_types", malware_types) if network_destination_domains is not None: - pulumi.set(__self__, "network_destination_domains", network_destination_domains) + _setter("network_destination_domains", network_destination_domains) if network_destination_ipv4s is not None: - pulumi.set(__self__, "network_destination_ipv4s", network_destination_ipv4s) + _setter("network_destination_ipv4s", network_destination_ipv4s) if network_destination_ipv6s is not None: - pulumi.set(__self__, "network_destination_ipv6s", network_destination_ipv6s) + _setter("network_destination_ipv6s", network_destination_ipv6s) if network_destination_ports is not None: - pulumi.set(__self__, "network_destination_ports", network_destination_ports) + _setter("network_destination_ports", network_destination_ports) if network_directions is not None: - pulumi.set(__self__, "network_directions", network_directions) + _setter("network_directions", network_directions) if network_protocols is not None: - pulumi.set(__self__, "network_protocols", network_protocols) + _setter("network_protocols", network_protocols) if network_source_domains is not None: - pulumi.set(__self__, "network_source_domains", network_source_domains) + _setter("network_source_domains", network_source_domains) if network_source_ipv4s is not None: - pulumi.set(__self__, "network_source_ipv4s", network_source_ipv4s) + _setter("network_source_ipv4s", network_source_ipv4s) if network_source_ipv6s is not None: - pulumi.set(__self__, "network_source_ipv6s", network_source_ipv6s) + _setter("network_source_ipv6s", network_source_ipv6s) if network_source_macs is not None: - pulumi.set(__self__, "network_source_macs", network_source_macs) + _setter("network_source_macs", network_source_macs) if network_source_ports is not None: - pulumi.set(__self__, "network_source_ports", network_source_ports) + _setter("network_source_ports", network_source_ports) if note_texts is not None: - pulumi.set(__self__, "note_texts", note_texts) + _setter("note_texts", note_texts) if note_updated_ats is not None: - pulumi.set(__self__, "note_updated_ats", note_updated_ats) + _setter("note_updated_ats", note_updated_ats) if note_updated_bies is not None: - pulumi.set(__self__, "note_updated_bies", note_updated_bies) + _setter("note_updated_bies", note_updated_bies) if process_launched_ats is not None: - pulumi.set(__self__, "process_launched_ats", process_launched_ats) + _setter("process_launched_ats", process_launched_ats) if process_names is not None: - pulumi.set(__self__, "process_names", process_names) + _setter("process_names", process_names) if process_parent_pids is not None: - pulumi.set(__self__, "process_parent_pids", process_parent_pids) + _setter("process_parent_pids", process_parent_pids) if process_paths is not None: - pulumi.set(__self__, "process_paths", process_paths) + _setter("process_paths", process_paths) if process_pids is not None: - pulumi.set(__self__, "process_pids", process_pids) + _setter("process_pids", process_pids) if process_terminated_ats is not None: - pulumi.set(__self__, "process_terminated_ats", process_terminated_ats) + _setter("process_terminated_ats", process_terminated_ats) if product_arns is not None: - pulumi.set(__self__, "product_arns", product_arns) + _setter("product_arns", product_arns) if product_fields is not None: - pulumi.set(__self__, "product_fields", product_fields) + _setter("product_fields", product_fields) if product_names is not None: - pulumi.set(__self__, "product_names", product_names) + _setter("product_names", product_names) if recommendation_texts is not None: - pulumi.set(__self__, "recommendation_texts", recommendation_texts) + _setter("recommendation_texts", recommendation_texts) if record_states is not None: - pulumi.set(__self__, "record_states", record_states) + _setter("record_states", record_states) if related_findings_ids is not None: - pulumi.set(__self__, "related_findings_ids", related_findings_ids) + _setter("related_findings_ids", related_findings_ids) if related_findings_product_arns is not None: - pulumi.set(__self__, "related_findings_product_arns", related_findings_product_arns) + _setter("related_findings_product_arns", related_findings_product_arns) if resource_aws_ec2_instance_iam_instance_profile_arns is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_iam_instance_profile_arns", resource_aws_ec2_instance_iam_instance_profile_arns) + _setter("resource_aws_ec2_instance_iam_instance_profile_arns", resource_aws_ec2_instance_iam_instance_profile_arns) if resource_aws_ec2_instance_image_ids is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_image_ids", resource_aws_ec2_instance_image_ids) + _setter("resource_aws_ec2_instance_image_ids", resource_aws_ec2_instance_image_ids) if resource_aws_ec2_instance_ipv4_addresses is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_ipv4_addresses", resource_aws_ec2_instance_ipv4_addresses) + _setter("resource_aws_ec2_instance_ipv4_addresses", resource_aws_ec2_instance_ipv4_addresses) if resource_aws_ec2_instance_ipv6_addresses is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_ipv6_addresses", resource_aws_ec2_instance_ipv6_addresses) + _setter("resource_aws_ec2_instance_ipv6_addresses", resource_aws_ec2_instance_ipv6_addresses) if resource_aws_ec2_instance_key_names is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_key_names", resource_aws_ec2_instance_key_names) + _setter("resource_aws_ec2_instance_key_names", resource_aws_ec2_instance_key_names) if resource_aws_ec2_instance_launched_ats is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_launched_ats", resource_aws_ec2_instance_launched_ats) + _setter("resource_aws_ec2_instance_launched_ats", resource_aws_ec2_instance_launched_ats) if resource_aws_ec2_instance_subnet_ids is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_subnet_ids", resource_aws_ec2_instance_subnet_ids) + _setter("resource_aws_ec2_instance_subnet_ids", resource_aws_ec2_instance_subnet_ids) if resource_aws_ec2_instance_types is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_types", resource_aws_ec2_instance_types) + _setter("resource_aws_ec2_instance_types", resource_aws_ec2_instance_types) if resource_aws_ec2_instance_vpc_ids is not None: - pulumi.set(__self__, "resource_aws_ec2_instance_vpc_ids", resource_aws_ec2_instance_vpc_ids) + _setter("resource_aws_ec2_instance_vpc_ids", resource_aws_ec2_instance_vpc_ids) if resource_aws_iam_access_key_created_ats is not None: - pulumi.set(__self__, "resource_aws_iam_access_key_created_ats", resource_aws_iam_access_key_created_ats) + _setter("resource_aws_iam_access_key_created_ats", resource_aws_iam_access_key_created_ats) if resource_aws_iam_access_key_statuses is not None: - pulumi.set(__self__, "resource_aws_iam_access_key_statuses", resource_aws_iam_access_key_statuses) + _setter("resource_aws_iam_access_key_statuses", resource_aws_iam_access_key_statuses) if resource_aws_iam_access_key_user_names is not None: - pulumi.set(__self__, "resource_aws_iam_access_key_user_names", resource_aws_iam_access_key_user_names) + _setter("resource_aws_iam_access_key_user_names", resource_aws_iam_access_key_user_names) if resource_aws_s3_bucket_owner_ids is not None: - pulumi.set(__self__, "resource_aws_s3_bucket_owner_ids", resource_aws_s3_bucket_owner_ids) + _setter("resource_aws_s3_bucket_owner_ids", resource_aws_s3_bucket_owner_ids) if resource_aws_s3_bucket_owner_names is not None: - pulumi.set(__self__, "resource_aws_s3_bucket_owner_names", resource_aws_s3_bucket_owner_names) + _setter("resource_aws_s3_bucket_owner_names", resource_aws_s3_bucket_owner_names) if resource_container_image_ids is not None: - pulumi.set(__self__, "resource_container_image_ids", resource_container_image_ids) + _setter("resource_container_image_ids", resource_container_image_ids) if resource_container_image_names is not None: - pulumi.set(__self__, "resource_container_image_names", resource_container_image_names) + _setter("resource_container_image_names", resource_container_image_names) if resource_container_launched_ats is not None: - pulumi.set(__self__, "resource_container_launched_ats", resource_container_launched_ats) + _setter("resource_container_launched_ats", resource_container_launched_ats) if resource_container_names is not None: - pulumi.set(__self__, "resource_container_names", resource_container_names) + _setter("resource_container_names", resource_container_names) if resource_details_others is not None: - pulumi.set(__self__, "resource_details_others", resource_details_others) + _setter("resource_details_others", resource_details_others) if resource_ids is not None: - pulumi.set(__self__, "resource_ids", resource_ids) + _setter("resource_ids", resource_ids) if resource_partitions is not None: - pulumi.set(__self__, "resource_partitions", resource_partitions) + _setter("resource_partitions", resource_partitions) if resource_regions is not None: - pulumi.set(__self__, "resource_regions", resource_regions) + _setter("resource_regions", resource_regions) if resource_tags is not None: - pulumi.set(__self__, "resource_tags", resource_tags) + _setter("resource_tags", resource_tags) if resource_types is not None: - pulumi.set(__self__, "resource_types", resource_types) + _setter("resource_types", resource_types) if severity_labels is not None: - pulumi.set(__self__, "severity_labels", severity_labels) + _setter("severity_labels", severity_labels) if source_urls is not None: - pulumi.set(__self__, "source_urls", source_urls) + _setter("source_urls", source_urls) if threat_intel_indicator_categories is not None: - pulumi.set(__self__, "threat_intel_indicator_categories", threat_intel_indicator_categories) + _setter("threat_intel_indicator_categories", threat_intel_indicator_categories) if threat_intel_indicator_last_observed_ats is not None: - pulumi.set(__self__, "threat_intel_indicator_last_observed_ats", threat_intel_indicator_last_observed_ats) + _setter("threat_intel_indicator_last_observed_ats", threat_intel_indicator_last_observed_ats) if threat_intel_indicator_source_urls is not None: - pulumi.set(__self__, "threat_intel_indicator_source_urls", threat_intel_indicator_source_urls) + _setter("threat_intel_indicator_source_urls", threat_intel_indicator_source_urls) if threat_intel_indicator_sources is not None: - pulumi.set(__self__, "threat_intel_indicator_sources", threat_intel_indicator_sources) + _setter("threat_intel_indicator_sources", threat_intel_indicator_sources) if threat_intel_indicator_types is not None: - pulumi.set(__self__, "threat_intel_indicator_types", threat_intel_indicator_types) + _setter("threat_intel_indicator_types", threat_intel_indicator_types) if threat_intel_indicator_values is not None: - pulumi.set(__self__, "threat_intel_indicator_values", threat_intel_indicator_values) + _setter("threat_intel_indicator_values", threat_intel_indicator_values) if titles is not None: - pulumi.set(__self__, "titles", titles) + _setter("titles", titles) if types is not None: - pulumi.set(__self__, "types", types) + _setter("types", types) if updated_ats is not None: - pulumi.set(__self__, "updated_ats", updated_ats) + _setter("updated_ats", updated_ats) if user_defined_values is not None: - pulumi.set(__self__, "user_defined_values", user_defined_values) + _setter("user_defined_values", user_defined_values) if verification_states is not None: - pulumi.set(__self__, "verification_states", verification_states) + _setter("verification_states", verification_states) if workflow_statuses is not None: - pulumi.set(__self__, "workflow_statuses", workflow_statuses) + _setter("workflow_statuses", workflow_statuses) @property @pulumi.getter(name="awsAccountIds") @@ -1362,8 +1709,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersAwsAccountId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1391,8 +1755,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersCompanyName._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1420,8 +1801,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersComplianceStatus._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1451,12 +1849,27 @@ def __init__(__self__, *, :param str gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param str lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersConfidence._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[str] = None, + gte: Optional[str] = None, + lte: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -1511,12 +1924,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersCreatedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersCreatedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -1552,8 +1982,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersCreatedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -1583,12 +2030,27 @@ def __init__(__self__, *, :param str gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param str lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersCriticality._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[str] = None, + gte: Optional[str] = None, + lte: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -1624,8 +2086,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersDescription._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1655,12 +2134,27 @@ def __init__(__self__, *, :param str gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param str lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersFindingProviderFieldsConfidence._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[str] = None, + gte: Optional[str] = None, + lte: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -1698,12 +2192,27 @@ def __init__(__self__, *, :param str gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param str lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersFindingProviderFieldsCriticality._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[str] = None, + gte: Optional[str] = None, + lte: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -1739,8 +2248,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsRelatedFindingsId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1768,8 +2294,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsRelatedFindingsProductArn._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1797,8 +2340,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsSeverityLabel._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1826,8 +2386,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsSeverityOriginal._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1855,8 +2432,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersFindingProviderFieldsType._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -1903,12 +2497,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersFirstObservedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersFirstObservedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -1944,8 +2555,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersFirstObservedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -1973,8 +2601,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersGeneratorId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2002,8 +2647,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2029,7 +2691,20 @@ def __init__(__self__, *, """ :param str value: A value for the keyword. """ - pulumi.set(__self__, "value", value) + InsightFiltersKeyword._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("value", value) @property @pulumi.getter @@ -2068,12 +2743,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersLastObservedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersLastObservedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -2109,8 +2801,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersLastObservedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2138,8 +2847,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersMalwareName._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2167,8 +2893,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersMalwarePath._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2196,8 +2939,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersMalwareState._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2225,8 +2985,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersMalwareType._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2254,8 +3031,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkDestinationDomain._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2281,7 +3075,20 @@ def __init__(__self__, *, """ :param str cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersNetworkDestinationIpv4._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -2299,7 +3106,20 @@ def __init__(__self__, *, """ :param str cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersNetworkDestinationIpv6._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -2321,12 +3141,27 @@ def __init__(__self__, *, :param str gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param str lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersNetworkDestinationPort._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[str] = None, + gte: Optional[str] = None, + lte: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -2362,8 +3197,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkDirection._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2391,8 +3243,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkProtocol._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2420,8 +3289,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkSourceDomain._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2447,7 +3333,20 @@ def __init__(__self__, *, """ :param str cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersNetworkSourceIpv4._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -2465,7 +3364,20 @@ def __init__(__self__, *, """ :param str cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersNetworkSourceIpv6._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -2485,8 +3397,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNetworkSourceMac._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2516,12 +3445,27 @@ def __init__(__self__, *, :param str gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param str lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersNetworkSourcePort._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[str] = None, + gte: Optional[str] = None, + lte: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -2557,8 +3501,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNoteText._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2605,12 +3566,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersNoteUpdatedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersNoteUpdatedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -2646,8 +3624,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersNoteUpdatedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2675,8 +3670,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersNoteUpdatedBy._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2723,12 +3735,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersProcessLaunchedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersProcessLaunchedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -2764,8 +3793,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersProcessLaunchedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -2793,8 +3839,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersProcessName._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2824,12 +3887,27 @@ def __init__(__self__, *, :param str gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param str lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersProcessParentPid._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[str] = None, + gte: Optional[str] = None, + lte: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -2865,8 +3943,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersProcessPath._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -2896,12 +3991,27 @@ def __init__(__self__, *, :param str gte: The greater-than-equal condition to be applied to a single field when querying for findings, provided as a String. :param str lte: The less-than-equal condition to be applied to a single field when querying for findings, provided as a String. """ + InsightFiltersProcessPid._configure( + lambda key, value: pulumi.set(__self__, key, value), + eq=eq, + gte=gte, + lte=lte, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + eq: Optional[str] = None, + gte: Optional[str] = None, + lte: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if eq is not None: - pulumi.set(__self__, "eq", eq) + _setter("eq", eq) if gte is not None: - pulumi.set(__self__, "gte", gte) + _setter("gte", gte) if lte is not None: - pulumi.set(__self__, "lte", lte) + _setter("lte", lte) @property @pulumi.getter @@ -2956,12 +4066,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersProcessTerminatedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersProcessTerminatedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -2997,8 +4124,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersProcessTerminatedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3026,8 +4170,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersProductArn._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3057,9 +4218,30 @@ def __init__(__self__, *, :param str key: The key of the map filter. For example, for `ResourceTags`, `Key` identifies the name of the tag. For `UserDefinedFields`, `Key` is the name of the field. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + InsightFiltersProductField._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -3095,8 +4277,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersProductName._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3124,8 +4323,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersRecommendationText._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3153,8 +4369,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersRecordState._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3182,8 +4415,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersRelatedFindingsId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3211,8 +4461,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersRelatedFindingsProductArn._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3240,8 +4507,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArn._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3269,8 +4553,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceImageId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3296,7 +4597,20 @@ def __init__(__self__, *, """ :param str cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersResourceAwsEc2InstanceIpv4Address._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -3314,7 +4628,20 @@ def __init__(__self__, *, """ :param str cidr: A finding's CIDR value. """ - pulumi.set(__self__, "cidr", cidr) + InsightFiltersResourceAwsEc2InstanceIpv6Address._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + + _setter("cidr", cidr) @property @pulumi.getter @@ -3334,8 +4661,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceKeyName._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3382,12 +4726,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersResourceAwsEc2InstanceLaunchedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersResourceAwsEc2InstanceLaunchedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -3423,8 +4784,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceLaunchedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3452,8 +4830,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceSubnetId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3481,8 +4876,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceType._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3510,8 +4922,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsEc2InstanceVpcId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3558,12 +4987,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersResourceAwsIamAccessKeyCreatedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersResourceAwsIamAccessKeyCreatedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -3599,8 +5045,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsIamAccessKeyCreatedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3628,8 +5091,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsIamAccessKeyStatus._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3657,8 +5137,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsIamAccessKeyUserName._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3686,8 +5183,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsS3BucketOwnerId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3715,8 +5229,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceAwsS3BucketOwnerName._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3744,8 +5275,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceContainerImageId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3773,8 +5321,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceContainerImageName._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3821,12 +5386,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersResourceContainerLaunchedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersResourceContainerLaunchedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -3862,8 +5444,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersResourceContainerLaunchedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -3891,8 +5490,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceContainerName._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3922,9 +5538,30 @@ def __init__(__self__, *, :param str key: The key of the map filter. For example, for `ResourceTags`, `Key` identifies the name of the tag. For `UserDefinedFields`, `Key` is the name of the field. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + InsightFiltersResourceDetailsOther._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -3960,8 +5597,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceId._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -3989,8 +5643,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourcePartition._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4018,8 +5689,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceRegion._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4049,9 +5737,30 @@ def __init__(__self__, *, :param str key: The key of the map filter. For example, for `ResourceTags`, `Key` identifies the name of the tag. For `UserDefinedFields`, `Key` is the name of the field. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + InsightFiltersResourceTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -4087,8 +5796,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersResourceType._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4116,8 +5842,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersSeverityLabel._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4145,8 +5888,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersSourceUrl._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4174,8 +5934,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorCategory._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4222,12 +5999,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersThreatIntelIndicatorLastObservedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersThreatIntelIndicatorLastObservedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -4263,8 +6057,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorLastObservedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4292,8 +6103,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4321,8 +6149,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorSourceUrl._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4350,8 +6195,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorType._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4379,8 +6241,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersThreatIntelIndicatorValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4408,8 +6287,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersTitle._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4437,8 +6333,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersType._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4485,12 +6398,29 @@ def __init__(__self__, *, :param str end: An end date for the date filter. Required with `start` if `date_range` is not specified. :param str start: A start date for the date filter. Required with `end` if `date_range` is not specified. """ + InsightFiltersUpdatedAt._configure( + lambda key, value: pulumi.set(__self__, key, value), + date_range=date_range, + end=end, + start=start, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + date_range: Optional['outputs.InsightFiltersUpdatedAtDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if date_range is None and 'dateRange' in kwargs: + date_range = kwargs['dateRange'] + if date_range is not None: - pulumi.set(__self__, "date_range", date_range) + _setter("date_range", date_range) if end is not None: - pulumi.set(__self__, "end", end) + _setter("end", end) if start is not None: - pulumi.set(__self__, "start", start) + _setter("start", start) @property @pulumi.getter(name="dateRange") @@ -4526,8 +6456,25 @@ def __init__(__self__, *, :param str unit: A date range unit for the date filter. Valid values: `DAYS`. :param int value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + InsightFiltersUpdatedAtDateRange._configure( + lambda key, value: pulumi.set(__self__, key, value), + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + unit: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter @@ -4557,9 +6504,30 @@ def __init__(__self__, *, :param str key: The key of the map filter. For example, for `ResourceTags`, `Key` identifies the name of the tag. For `UserDefinedFields`, `Key` is the name of the field. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + InsightFiltersUserDefinedValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("key", key) + _setter("value", value) @property @pulumi.getter @@ -4595,8 +6563,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersVerificationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter @@ -4624,8 +6609,25 @@ def __init__(__self__, *, :param str comparison: The condition to apply to a string value when querying for findings. Valid values include: `EQUALS` and `NOT_EQUALS`. :param str value: A date range value for the date filter, provided as an Integer. """ - pulumi.set(__self__, "comparison", comparison) - pulumi.set(__self__, "value", value) + InsightFiltersWorkflowStatus._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison=comparison, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison is None: + raise TypeError("Missing 'comparison' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("comparison", comparison) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/securityhub/product_subscription.py b/sdk/python/pulumi_aws/securityhub/product_subscription.py index 0d409c95dc4..cc39ad44958 100644 --- a/sdk/python/pulumi_aws/securityhub/product_subscription.py +++ b/sdk/python/pulumi_aws/securityhub/product_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProductSubscriptionArgs', 'ProductSubscription'] @@ -57,7 +57,22 @@ def __init__(__self__, *, * `arn:aws:securityhub:${var.region}::product/turbot/turbot` * `arn:aws:securityhub:${var.region}::product/twistlock/twistlock-enterprise` """ - pulumi.set(__self__, "product_arn", product_arn) + ProductSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + product_arn=product_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + product_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if product_arn is None and 'productArn' in kwargs: + product_arn = kwargs['productArn'] + if product_arn is None: + raise TypeError("Missing 'product_arn' argument") + + _setter("product_arn", product_arn) @property @pulumi.getter(name="productArn") @@ -158,10 +173,25 @@ def __init__(__self__, *, * `arn:aws:securityhub:${var.region}::product/turbot/turbot` * `arn:aws:securityhub:${var.region}::product/twistlock/twistlock-enterprise` """ + _ProductSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + product_arn=product_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + product_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if product_arn is None and 'productArn' in kwargs: + product_arn = kwargs['productArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if product_arn is not None: - pulumi.set(__self__, "product_arn", product_arn) + _setter("product_arn", product_arn) @property @pulumi.getter @@ -337,6 +367,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProductSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/standards_control.py b/sdk/python/pulumi_aws/securityhub/standards_control.py index 899cc5a7649..ac44f663240 100644 --- a/sdk/python/pulumi_aws/securityhub/standards_control.py +++ b/sdk/python/pulumi_aws/securityhub/standards_control.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StandardsControlArgs', 'StandardsControl'] @@ -23,10 +23,35 @@ def __init__(__self__, *, :param pulumi.Input[str] standards_control_arn: The standards control ARN. See the AWS documentation for how to list existing controls using [`get-enabled-standards`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securityhub/get-enabled-standards.html) and [`describe-standards-controls`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securityhub/describe-standards-controls.html). :param pulumi.Input[str] disabled_reason: A description of the reason why you are disabling a security standard control. If you specify this attribute, `control_status` will be set to `DISABLED` automatically. """ - pulumi.set(__self__, "control_status", control_status) - pulumi.set(__self__, "standards_control_arn", standards_control_arn) + StandardsControlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + control_status=control_status, + standards_control_arn=standards_control_arn, + disabled_reason=disabled_reason, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + control_status: Optional[pulumi.Input[str]] = None, + standards_control_arn: Optional[pulumi.Input[str]] = None, + disabled_reason: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if control_status is None and 'controlStatus' in kwargs: + control_status = kwargs['controlStatus'] + if control_status is None: + raise TypeError("Missing 'control_status' argument") + if standards_control_arn is None and 'standardsControlArn' in kwargs: + standards_control_arn = kwargs['standardsControlArn'] + if standards_control_arn is None: + raise TypeError("Missing 'standards_control_arn' argument") + if disabled_reason is None and 'disabledReason' in kwargs: + disabled_reason = kwargs['disabledReason'] + + _setter("control_status", control_status) + _setter("standards_control_arn", standards_control_arn) if disabled_reason is not None: - pulumi.set(__self__, "disabled_reason", disabled_reason) + _setter("disabled_reason", disabled_reason) @property @pulumi.getter(name="controlStatus") @@ -91,26 +116,71 @@ def __init__(__self__, *, :param pulumi.Input[str] standards_control_arn: The standards control ARN. See the AWS documentation for how to list existing controls using [`get-enabled-standards`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securityhub/get-enabled-standards.html) and [`describe-standards-controls`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securityhub/describe-standards-controls.html). :param pulumi.Input[str] title: The standard control title. """ + _StandardsControlState._configure( + lambda key, value: pulumi.set(__self__, key, value), + control_id=control_id, + control_status=control_status, + control_status_updated_at=control_status_updated_at, + description=description, + disabled_reason=disabled_reason, + related_requirements=related_requirements, + remediation_url=remediation_url, + severity_rating=severity_rating, + standards_control_arn=standards_control_arn, + title=title, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + control_id: Optional[pulumi.Input[str]] = None, + control_status: Optional[pulumi.Input[str]] = None, + control_status_updated_at: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disabled_reason: Optional[pulumi.Input[str]] = None, + related_requirements: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + remediation_url: Optional[pulumi.Input[str]] = None, + severity_rating: Optional[pulumi.Input[str]] = None, + standards_control_arn: Optional[pulumi.Input[str]] = None, + title: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if control_id is None and 'controlId' in kwargs: + control_id = kwargs['controlId'] + if control_status is None and 'controlStatus' in kwargs: + control_status = kwargs['controlStatus'] + if control_status_updated_at is None and 'controlStatusUpdatedAt' in kwargs: + control_status_updated_at = kwargs['controlStatusUpdatedAt'] + if disabled_reason is None and 'disabledReason' in kwargs: + disabled_reason = kwargs['disabledReason'] + if related_requirements is None and 'relatedRequirements' in kwargs: + related_requirements = kwargs['relatedRequirements'] + if remediation_url is None and 'remediationUrl' in kwargs: + remediation_url = kwargs['remediationUrl'] + if severity_rating is None and 'severityRating' in kwargs: + severity_rating = kwargs['severityRating'] + if standards_control_arn is None and 'standardsControlArn' in kwargs: + standards_control_arn = kwargs['standardsControlArn'] + if control_id is not None: - pulumi.set(__self__, "control_id", control_id) + _setter("control_id", control_id) if control_status is not None: - pulumi.set(__self__, "control_status", control_status) + _setter("control_status", control_status) if control_status_updated_at is not None: - pulumi.set(__self__, "control_status_updated_at", control_status_updated_at) + _setter("control_status_updated_at", control_status_updated_at) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disabled_reason is not None: - pulumi.set(__self__, "disabled_reason", disabled_reason) + _setter("disabled_reason", disabled_reason) if related_requirements is not None: - pulumi.set(__self__, "related_requirements", related_requirements) + _setter("related_requirements", related_requirements) if remediation_url is not None: - pulumi.set(__self__, "remediation_url", remediation_url) + _setter("remediation_url", remediation_url) if severity_rating is not None: - pulumi.set(__self__, "severity_rating", severity_rating) + _setter("severity_rating", severity_rating) if standards_control_arn is not None: - pulumi.set(__self__, "standards_control_arn", standards_control_arn) + _setter("standards_control_arn", standards_control_arn) if title is not None: - pulumi.set(__self__, "title", title) + _setter("title", title) @property @pulumi.getter(name="controlId") @@ -310,6 +380,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StandardsControlArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/securityhub/standards_subscription.py b/sdk/python/pulumi_aws/securityhub/standards_subscription.py index bb059ad0daa..2ee7861cedd 100644 --- a/sdk/python/pulumi_aws/securityhub/standards_subscription.py +++ b/sdk/python/pulumi_aws/securityhub/standards_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StandardsSubscriptionArgs', 'StandardsSubscription'] @@ -29,7 +29,22 @@ def __init__(__self__, *, | NIST SP 800-53 Rev. 5 | `arn:aws:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | | PCI DSS | `arn:aws:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | """ - pulumi.set(__self__, "standards_arn", standards_arn) + StandardsSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + standards_arn=standards_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + standards_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if standards_arn is None and 'standardsArn' in kwargs: + standards_arn = kwargs['standardsArn'] + if standards_arn is None: + raise TypeError("Missing 'standards_arn' argument") + + _setter("standards_arn", standards_arn) @property @pulumi.getter(name="standardsArn") @@ -72,8 +87,21 @@ def __init__(__self__, *, | NIST SP 800-53 Rev. 5 | `arn:aws:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | | PCI DSS | `arn:aws:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | """ + _StandardsSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + standards_arn=standards_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + standards_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if standards_arn is None and 'standardsArn' in kwargs: + standards_arn = kwargs['standardsArn'] + if standards_arn is not None: - pulumi.set(__self__, "standards_arn", standards_arn) + _setter("standards_arn", standards_arn) @property @pulumi.getter(name="standardsArn") @@ -197,6 +225,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StandardsSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/serverlessrepository/cloud_formation_stack.py b/sdk/python/pulumi_aws/serverlessrepository/cloud_formation_stack.py index 938f4e9c366..23ff534bd58 100644 --- a/sdk/python/pulumi_aws/serverlessrepository/cloud_formation_stack.py +++ b/sdk/python/pulumi_aws/serverlessrepository/cloud_formation_stack.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CloudFormationStackArgs', 'CloudFormationStack'] @@ -29,16 +29,45 @@ def __init__(__self__, *, :param pulumi.Input[str] semantic_version: The version of the application to deploy. If not supplied, deploys the latest version. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A list of tags to associate with this stack. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "application_id", application_id) - pulumi.set(__self__, "capabilities", capabilities) + CloudFormationStackArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + capabilities=capabilities, + name=name, + parameters=parameters, + semantic_version=semantic_version, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + capabilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + semantic_version: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if application_id is None: + raise TypeError("Missing 'application_id' argument") + if capabilities is None: + raise TypeError("Missing 'capabilities' argument") + if semantic_version is None and 'semanticVersion' in kwargs: + semantic_version = kwargs['semanticVersion'] + + _setter("application_id", application_id) + _setter("capabilities", capabilities) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if semantic_version is not None: - pulumi.set(__self__, "semantic_version", semantic_version) + _setter("semantic_version", semantic_version) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="applicationId") @@ -135,25 +164,56 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A list of tags to associate with this stack. .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. """ + _CloudFormationStackState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_id=application_id, + capabilities=capabilities, + name=name, + outputs=outputs, + parameters=parameters, + semantic_version=semantic_version, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_id: Optional[pulumi.Input[str]] = None, + capabilities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + outputs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + semantic_version: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_id is None and 'applicationId' in kwargs: + application_id = kwargs['applicationId'] + if semantic_version is None and 'semanticVersion' in kwargs: + semantic_version = kwargs['semanticVersion'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if application_id is not None: - pulumi.set(__self__, "application_id", application_id) + _setter("application_id", application_id) if capabilities is not None: - pulumi.set(__self__, "capabilities", capabilities) + _setter("capabilities", capabilities) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if outputs is not None: - pulumi.set(__self__, "outputs", outputs) + _setter("outputs", outputs) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if semantic_version is not None: - pulumi.set(__self__, "semantic_version", semantic_version) + _setter("semantic_version", semantic_version) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="applicationId") @@ -354,6 +414,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CloudFormationStackArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/serverlessrepository/get_application.py b/sdk/python/pulumi_aws/serverlessrepository/get_application.py index 6f0d455b99a..6f610870f35 100644 --- a/sdk/python/pulumi_aws/serverlessrepository/get_application.py +++ b/sdk/python/pulumi_aws/serverlessrepository/get_application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/servicecatalog/_inputs.py b/sdk/python/pulumi_aws/servicecatalog/_inputs.py index 5dd6f58e3c4..de2a4d3beec 100644 --- a/sdk/python/pulumi_aws/servicecatalog/_inputs.py +++ b/sdk/python/pulumi_aws/servicecatalog/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -34,18 +34,45 @@ def __init__(__self__, *, :param pulumi.Input[str] template_url: Template source as URL of the CloudFormation template in Amazon S3. :param pulumi.Input[str] type: Type of provisioning artifact. See [AWS Docs](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ProvisioningArtifactProperties.html) for valid list of values. """ + ProductProvisioningArtifactParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + disable_template_validation=disable_template_validation, + name=name, + template_physical_id=template_physical_id, + template_url=template_url, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + disable_template_validation: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + template_physical_id: Optional[pulumi.Input[str]] = None, + template_url: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disable_template_validation is None and 'disableTemplateValidation' in kwargs: + disable_template_validation = kwargs['disableTemplateValidation'] + if template_physical_id is None and 'templatePhysicalId' in kwargs: + template_physical_id = kwargs['templatePhysicalId'] + if template_url is None and 'templateUrl' in kwargs: + template_url = kwargs['templateUrl'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_template_validation is not None: - pulumi.set(__self__, "disable_template_validation", disable_template_validation) + _setter("disable_template_validation", disable_template_validation) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if template_physical_id is not None: - pulumi.set(__self__, "template_physical_id", template_physical_id) + _setter("template_physical_id", template_physical_id) if template_url is not None: - pulumi.set(__self__, "template_url", template_url) + _setter("template_url", template_url) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -131,12 +158,27 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Parameter key. :param pulumi.Input[str] value: Parameter value. """ + ProvisionedProductOutputArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -186,11 +228,30 @@ def __init__(__self__, *, :param pulumi.Input[bool] use_previous_value: Whether to ignore `value` and keep the previous parameter value. Ignored when initially provisioning a product. :param pulumi.Input[str] value: Parameter value. """ - pulumi.set(__self__, "key", key) + ProvisionedProductProvisioningParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + use_previous_value=use_previous_value, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + use_previous_value: Optional[pulumi.Input[bool]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if use_previous_value is None and 'usePreviousValue' in kwargs: + use_previous_value = kwargs['usePreviousValue'] + + _setter("key", key) if use_previous_value is not None: - pulumi.set(__self__, "use_previous_value", use_previous_value) + _setter("use_previous_value", use_previous_value) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -246,18 +307,47 @@ def __init__(__self__, *, :param pulumi.Input[int] max_concurrency_percentage: Maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, AWS Service Catalog sets the number as 1 instead. Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. You must specify either `max_concurrency_count` or `max_concurrency_percentage`, but not both. :param pulumi.Input[Sequence[pulumi.Input[str]]] regions: One or more AWS Regions where the provisioned product will be available. The specified regions should be within the list of regions from the STACKSET constraint. To get the list of regions in the STACKSET constraint, use the `aws_servicecatalog_provisioning_parameters` data source. If no values are specified, the default value is all regions from the STACKSET constraint. """ + ProvisionedProductStackSetProvisioningPreferencesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts=accounts, + failure_tolerance_count=failure_tolerance_count, + failure_tolerance_percentage=failure_tolerance_percentage, + max_concurrency_count=max_concurrency_count, + max_concurrency_percentage=max_concurrency_percentage, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + failure_tolerance_count: Optional[pulumi.Input[int]] = None, + failure_tolerance_percentage: Optional[pulumi.Input[int]] = None, + max_concurrency_count: Optional[pulumi.Input[int]] = None, + max_concurrency_percentage: Optional[pulumi.Input[int]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_tolerance_count is None and 'failureToleranceCount' in kwargs: + failure_tolerance_count = kwargs['failureToleranceCount'] + if failure_tolerance_percentage is None and 'failureTolerancePercentage' in kwargs: + failure_tolerance_percentage = kwargs['failureTolerancePercentage'] + if max_concurrency_count is None and 'maxConcurrencyCount' in kwargs: + max_concurrency_count = kwargs['maxConcurrencyCount'] + if max_concurrency_percentage is None and 'maxConcurrencyPercentage' in kwargs: + max_concurrency_percentage = kwargs['maxConcurrencyPercentage'] + if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if failure_tolerance_count is not None: - pulumi.set(__self__, "failure_tolerance_count", failure_tolerance_count) + _setter("failure_tolerance_count", failure_tolerance_count) if failure_tolerance_percentage is not None: - pulumi.set(__self__, "failure_tolerance_percentage", failure_tolerance_percentage) + _setter("failure_tolerance_percentage", failure_tolerance_percentage) if max_concurrency_count is not None: - pulumi.set(__self__, "max_concurrency_count", max_concurrency_count) + _setter("max_concurrency_count", max_concurrency_count) if max_concurrency_percentage is not None: - pulumi.set(__self__, "max_concurrency_percentage", max_concurrency_percentage) + _setter("max_concurrency_percentage", max_concurrency_percentage) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter @@ -347,14 +437,39 @@ def __init__(__self__, *, :param pulumi.Input[str] parameters: List of parameters in JSON format. For example: `[{\\"Name\\":\\"InstanceId\\",\\"Type\\":\\"TARGET\\"}]` or `[{\\"Name\\":\\"InstanceId\\",\\"Type\\":\\"TEXT_VALUE\\"}]`. :param pulumi.Input[str] type: Service action definition type. Valid value is `SSM_AUTOMATION`. Default is `SSM_AUTOMATION`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "version", version) + ServiceActionDefinitionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + version=version, + assume_role=assume_role, + parameters=parameters, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + assume_role: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if version is None: + raise TypeError("Missing 'version' argument") + if assume_role is None and 'assumeRole' in kwargs: + assume_role = kwargs['assumeRole'] + + _setter("name", name) + _setter("version", version) if assume_role is not None: - pulumi.set(__self__, "assume_role", assume_role) + _setter("assume_role", assume_role) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/servicecatalog/budget_resource_association.py b/sdk/python/pulumi_aws/servicecatalog/budget_resource_association.py index 714ac5fb7f9..f03c4316799 100644 --- a/sdk/python/pulumi_aws/servicecatalog/budget_resource_association.py +++ b/sdk/python/pulumi_aws/servicecatalog/budget_resource_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['BudgetResourceAssociationArgs', 'BudgetResourceAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] budget_name: Budget name. :param pulumi.Input[str] resource_id: Resource identifier. """ - pulumi.set(__self__, "budget_name", budget_name) - pulumi.set(__self__, "resource_id", resource_id) + BudgetResourceAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + budget_name=budget_name, + resource_id=resource_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + budget_name: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if budget_name is None and 'budgetName' in kwargs: + budget_name = kwargs['budgetName'] + if budget_name is None: + raise TypeError("Missing 'budget_name' argument") + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + + _setter("budget_name", budget_name) + _setter("resource_id", resource_id) @property @pulumi.getter(name="budgetName") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] budget_name: Budget name. :param pulumi.Input[str] resource_id: Resource identifier. """ + _BudgetResourceAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + budget_name=budget_name, + resource_id=resource_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + budget_name: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if budget_name is None and 'budgetName' in kwargs: + budget_name = kwargs['budgetName'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if budget_name is not None: - pulumi.set(__self__, "budget_name", budget_name) + _setter("budget_name", budget_name) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) @property @pulumi.getter(name="budgetName") @@ -168,6 +206,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + BudgetResourceAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicecatalog/constraint.py b/sdk/python/pulumi_aws/servicecatalog/constraint.py index c8589b1a053..db0864ccfc2 100644 --- a/sdk/python/pulumi_aws/servicecatalog/constraint.py +++ b/sdk/python/pulumi_aws/servicecatalog/constraint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ConstraintArgs', 'Constraint'] @@ -31,14 +31,49 @@ def __init__(__self__, *, :param pulumi.Input[str] accept_language: Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`. :param pulumi.Input[str] description: Description of the constraint. """ - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "portfolio_id", portfolio_id) - pulumi.set(__self__, "product_id", product_id) - pulumi.set(__self__, "type", type) + ConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + parameters=parameters, + portfolio_id=portfolio_id, + product_id=product_id, + type=type, + accept_language=accept_language, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + parameters: Optional[pulumi.Input[str]] = None, + portfolio_id: Optional[pulumi.Input[str]] = None, + product_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + accept_language: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if portfolio_id is None and 'portfolioId' in kwargs: + portfolio_id = kwargs['portfolioId'] + if portfolio_id is None: + raise TypeError("Missing 'portfolio_id' argument") + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if product_id is None: + raise TypeError("Missing 'product_id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + + _setter("parameters", parameters) + _setter("portfolio_id", portfolio_id) + _setter("product_id", product_id) + _setter("type", type) if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -138,22 +173,53 @@ def __init__(__self__, *, The following arguments are optional: """ + _ConstraintState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_language=accept_language, + description=description, + owner=owner, + parameters=parameters, + portfolio_id=portfolio_id, + product_id=product_id, + status=status, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_language: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[str]] = None, + portfolio_id: Optional[pulumi.Input[str]] = None, + product_id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if portfolio_id is None and 'portfolioId' in kwargs: + portfolio_id = kwargs['portfolioId'] + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if portfolio_id is not None: - pulumi.set(__self__, "portfolio_id", portfolio_id) + _setter("portfolio_id", portfolio_id) if product_id is not None: - pulumi.set(__self__, "product_id", product_id) + _setter("product_id", product_id) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="acceptLanguage") @@ -352,6 +418,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConstraintArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicecatalog/get_constraint.py b/sdk/python/pulumi_aws/servicecatalog/get_constraint.py index aa0d4538802..3d780e9ba43 100644 --- a/sdk/python/pulumi_aws/servicecatalog/get_constraint.py +++ b/sdk/python/pulumi_aws/servicecatalog/get_constraint.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/servicecatalog/get_launch_paths.py b/sdk/python/pulumi_aws/servicecatalog/get_launch_paths.py index 842cde7a111..8b9cc0ba6b4 100644 --- a/sdk/python/pulumi_aws/servicecatalog/get_launch_paths.py +++ b/sdk/python/pulumi_aws/servicecatalog/get_launch_paths.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/servicecatalog/get_portfolio.py b/sdk/python/pulumi_aws/servicecatalog/get_portfolio.py index 5dc60e53e33..d82e2775be9 100644 --- a/sdk/python/pulumi_aws/servicecatalog/get_portfolio.py +++ b/sdk/python/pulumi_aws/servicecatalog/get_portfolio.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/servicecatalog/get_portfolio_constraints.py b/sdk/python/pulumi_aws/servicecatalog/get_portfolio_constraints.py index f707151f983..2326960b2dc 100644 --- a/sdk/python/pulumi_aws/servicecatalog/get_portfolio_constraints.py +++ b/sdk/python/pulumi_aws/servicecatalog/get_portfolio_constraints.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/servicecatalog/get_product.py b/sdk/python/pulumi_aws/servicecatalog/get_product.py index 01db26a231a..96488f35da5 100644 --- a/sdk/python/pulumi_aws/servicecatalog/get_product.py +++ b/sdk/python/pulumi_aws/servicecatalog/get_product.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/servicecatalog/get_provisioning_artifacts.py b/sdk/python/pulumi_aws/servicecatalog/get_provisioning_artifacts.py index bd4a7fcddcc..7fad383af7b 100644 --- a/sdk/python/pulumi_aws/servicecatalog/get_provisioning_artifacts.py +++ b/sdk/python/pulumi_aws/servicecatalog/get_provisioning_artifacts.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/servicecatalog/organizations_access.py b/sdk/python/pulumi_aws/servicecatalog/organizations_access.py index 16e308a73aa..d743cb65aa9 100644 --- a/sdk/python/pulumi_aws/servicecatalog/organizations_access.py +++ b/sdk/python/pulumi_aws/servicecatalog/organizations_access.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['OrganizationsAccessArgs', 'OrganizationsAccess'] @@ -19,7 +19,20 @@ def __init__(__self__, *, The set of arguments for constructing a OrganizationsAccess resource. :param pulumi.Input[bool] enabled: Whether to enable AWS Organizations access. """ - pulumi.set(__self__, "enabled", enabled) + OrganizationsAccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + + _setter("enabled", enabled) @property @pulumi.getter @@ -42,8 +55,19 @@ def __init__(__self__, *, Input properties used for looking up and filtering OrganizationsAccess resources. :param pulumi.Input[bool] enabled: Whether to enable AWS Organizations access. """ + _OrganizationsAccessState._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -115,6 +139,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrganizationsAccessArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicecatalog/outputs.py b/sdk/python/pulumi_aws/servicecatalog/outputs.py index 3329d2c9519..5ea44e79916 100644 --- a/sdk/python/pulumi_aws/servicecatalog/outputs.py +++ b/sdk/python/pulumi_aws/servicecatalog/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -60,18 +60,45 @@ def __init__(__self__, *, :param str template_url: Template source as URL of the CloudFormation template in Amazon S3. :param str type: Type of provisioning artifact. See [AWS Docs](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ProvisioningArtifactProperties.html) for valid list of values. """ + ProductProvisioningArtifactParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + disable_template_validation=disable_template_validation, + name=name, + template_physical_id=template_physical_id, + template_url=template_url, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[str] = None, + disable_template_validation: Optional[bool] = None, + name: Optional[str] = None, + template_physical_id: Optional[str] = None, + template_url: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disable_template_validation is None and 'disableTemplateValidation' in kwargs: + disable_template_validation = kwargs['disableTemplateValidation'] + if template_physical_id is None and 'templatePhysicalId' in kwargs: + template_physical_id = kwargs['templatePhysicalId'] + if template_url is None and 'templateUrl' in kwargs: + template_url = kwargs['templateUrl'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_template_validation is not None: - pulumi.set(__self__, "disable_template_validation", disable_template_validation) + _setter("disable_template_validation", disable_template_validation) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if template_physical_id is not None: - pulumi.set(__self__, "template_physical_id", template_physical_id) + _setter("template_physical_id", template_physical_id) if template_url is not None: - pulumi.set(__self__, "template_url", template_url) + _setter("template_url", template_url) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -133,12 +160,27 @@ def __init__(__self__, *, :param str key: Parameter key. :param str value: Parameter value. """ + ProvisionedProductOutput._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[str] = None, + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -193,11 +235,30 @@ def __init__(__self__, *, :param bool use_previous_value: Whether to ignore `value` and keep the previous parameter value. Ignored when initially provisioning a product. :param str value: Parameter value. """ - pulumi.set(__self__, "key", key) + ProvisionedProductProvisioningParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + use_previous_value=use_previous_value, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + use_previous_value: Optional[bool] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if use_previous_value is None and 'usePreviousValue' in kwargs: + use_previous_value = kwargs['usePreviousValue'] + + _setter("key", key) if use_previous_value is not None: - pulumi.set(__self__, "use_previous_value", use_previous_value) + _setter("use_previous_value", use_previous_value) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -264,18 +325,47 @@ def __init__(__self__, *, :param int max_concurrency_percentage: Maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, AWS Service Catalog sets the number as 1 instead. Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. You must specify either `max_concurrency_count` or `max_concurrency_percentage`, but not both. :param Sequence[str] regions: One or more AWS Regions where the provisioned product will be available. The specified regions should be within the list of regions from the STACKSET constraint. To get the list of regions in the STACKSET constraint, use the `aws_servicecatalog_provisioning_parameters` data source. If no values are specified, the default value is all regions from the STACKSET constraint. """ + ProvisionedProductStackSetProvisioningPreferences._configure( + lambda key, value: pulumi.set(__self__, key, value), + accounts=accounts, + failure_tolerance_count=failure_tolerance_count, + failure_tolerance_percentage=failure_tolerance_percentage, + max_concurrency_count=max_concurrency_count, + max_concurrency_percentage=max_concurrency_percentage, + regions=regions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accounts: Optional[Sequence[str]] = None, + failure_tolerance_count: Optional[int] = None, + failure_tolerance_percentage: Optional[int] = None, + max_concurrency_count: Optional[int] = None, + max_concurrency_percentage: Optional[int] = None, + regions: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_tolerance_count is None and 'failureToleranceCount' in kwargs: + failure_tolerance_count = kwargs['failureToleranceCount'] + if failure_tolerance_percentage is None and 'failureTolerancePercentage' in kwargs: + failure_tolerance_percentage = kwargs['failureTolerancePercentage'] + if max_concurrency_count is None and 'maxConcurrencyCount' in kwargs: + max_concurrency_count = kwargs['maxConcurrencyCount'] + if max_concurrency_percentage is None and 'maxConcurrencyPercentage' in kwargs: + max_concurrency_percentage = kwargs['maxConcurrencyPercentage'] + if accounts is not None: - pulumi.set(__self__, "accounts", accounts) + _setter("accounts", accounts) if failure_tolerance_count is not None: - pulumi.set(__self__, "failure_tolerance_count", failure_tolerance_count) + _setter("failure_tolerance_count", failure_tolerance_count) if failure_tolerance_percentage is not None: - pulumi.set(__self__, "failure_tolerance_percentage", failure_tolerance_percentage) + _setter("failure_tolerance_percentage", failure_tolerance_percentage) if max_concurrency_count is not None: - pulumi.set(__self__, "max_concurrency_count", max_concurrency_count) + _setter("max_concurrency_count", max_concurrency_count) if max_concurrency_percentage is not None: - pulumi.set(__self__, "max_concurrency_percentage", max_concurrency_percentage) + _setter("max_concurrency_percentage", max_concurrency_percentage) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) @property @pulumi.getter @@ -358,14 +448,39 @@ def __init__(__self__, *, :param str parameters: List of parameters in JSON format. For example: `[{\\"Name\\":\\"InstanceId\\",\\"Type\\":\\"TARGET\\"}]` or `[{\\"Name\\":\\"InstanceId\\",\\"Type\\":\\"TEXT_VALUE\\"}]`. :param str type: Service action definition type. Valid value is `SSM_AUTOMATION`. Default is `SSM_AUTOMATION`. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "version", version) + ServiceActionDefinition._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + version=version, + assume_role=assume_role, + parameters=parameters, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + version: Optional[str] = None, + assume_role: Optional[str] = None, + parameters: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if version is None: + raise TypeError("Missing 'version' argument") + if assume_role is None and 'assumeRole' in kwargs: + assume_role = kwargs['assumeRole'] + + _setter("name", name) + _setter("version", version) if assume_role is not None: - pulumi.set(__self__, "assume_role", assume_role) + _setter("assume_role", assume_role) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -421,10 +536,39 @@ def __init__(__self__, *, :param str path_id: Identifier of the product path. :param Mapping[str, str] tags: Tags associated with this product path. """ - pulumi.set(__self__, "constraint_summaries", constraint_summaries) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "path_id", path_id) - pulumi.set(__self__, "tags", tags) + GetLaunchPathsSummaryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + constraint_summaries=constraint_summaries, + name=name, + path_id=path_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + constraint_summaries: Optional[Sequence['outputs.GetLaunchPathsSummaryConstraintSummaryResult']] = None, + name: Optional[str] = None, + path_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if constraint_summaries is None and 'constraintSummaries' in kwargs: + constraint_summaries = kwargs['constraintSummaries'] + if constraint_summaries is None: + raise TypeError("Missing 'constraint_summaries' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if path_id is None and 'pathId' in kwargs: + path_id = kwargs['pathId'] + if path_id is None: + raise TypeError("Missing 'path_id' argument") + if tags is None: + raise TypeError("Missing 'tags' argument") + + _setter("constraint_summaries", constraint_summaries) + _setter("name", name) + _setter("path_id", path_id) + _setter("tags", tags) @property @pulumi.getter(name="constraintSummaries") @@ -468,8 +612,25 @@ def __init__(__self__, *, :param str description: Description of the constraint. :param str type: Type of constraint. Valid values are `LAUNCH`, `NOTIFICATION`, `STACKSET`, and `TEMPLATE`. """ - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "type", type) + GetLaunchPathsSummaryConstraintSummaryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is None: + raise TypeError("Missing 'description' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("description", description) + _setter("type", type) @property @pulumi.getter @@ -506,12 +667,51 @@ def __init__(__self__, *, :param str product_id: Product identifier. :param str type: Type of constraint. Valid values are `LAUNCH`, `NOTIFICATION`, `STACKSET`, and `TEMPLATE`. """ - pulumi.set(__self__, "constraint_id", constraint_id) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "owner", owner) - pulumi.set(__self__, "portfolio_id", portfolio_id) - pulumi.set(__self__, "product_id", product_id) - pulumi.set(__self__, "type", type) + GetPortfolioConstraintsDetailResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + constraint_id=constraint_id, + description=description, + owner=owner, + portfolio_id=portfolio_id, + product_id=product_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + constraint_id: Optional[str] = None, + description: Optional[str] = None, + owner: Optional[str] = None, + portfolio_id: Optional[str] = None, + product_id: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if constraint_id is None and 'constraintId' in kwargs: + constraint_id = kwargs['constraintId'] + if constraint_id is None: + raise TypeError("Missing 'constraint_id' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if owner is None: + raise TypeError("Missing 'owner' argument") + if portfolio_id is None and 'portfolioId' in kwargs: + portfolio_id = kwargs['portfolioId'] + if portfolio_id is None: + raise TypeError("Missing 'portfolio_id' argument") + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if product_id is None: + raise TypeError("Missing 'product_id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("constraint_id", constraint_id) + _setter("description", description) + _setter("owner", owner) + _setter("portfolio_id", portfolio_id) + _setter("product_id", product_id) + _setter("type", type) @property @pulumi.getter(name="constraintId") @@ -580,13 +780,52 @@ def __init__(__self__, *, :param str name: The name of the provisioning artifact. :param str type: The type of provisioning artifact. """ - pulumi.set(__self__, "active", active) - pulumi.set(__self__, "created_time", created_time) - pulumi.set(__self__, "description", description) - pulumi.set(__self__, "guidance", guidance) - pulumi.set(__self__, "id", id) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "type", type) + GetProvisioningArtifactsProvisioningArtifactDetailResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + active=active, + created_time=created_time, + description=description, + guidance=guidance, + id=id, + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active: Optional[bool] = None, + created_time: Optional[str] = None, + description: Optional[str] = None, + guidance: Optional[str] = None, + id: Optional[str] = None, + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active is None: + raise TypeError("Missing 'active' argument") + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if created_time is None: + raise TypeError("Missing 'created_time' argument") + if description is None: + raise TypeError("Missing 'description' argument") + if guidance is None: + raise TypeError("Missing 'guidance' argument") + if id is None: + raise TypeError("Missing 'id' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("active", active) + _setter("created_time", created_time) + _setter("description", description) + _setter("guidance", guidance) + _setter("id", id) + _setter("name", name) + _setter("type", type) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/servicecatalog/portfolio.py b/sdk/python/pulumi_aws/servicecatalog/portfolio.py index 93c488f7728..1c54c8cbc6c 100644 --- a/sdk/python/pulumi_aws/servicecatalog/portfolio.py +++ b/sdk/python/pulumi_aws/servicecatalog/portfolio.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PortfolioArgs', 'Portfolio'] @@ -25,13 +25,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the portfolio. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the connection. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "provider_name", provider_name) + PortfolioArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + provider_name=provider_name, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + provider_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if provider_name is None: + raise TypeError("Missing 'provider_name' argument") + + _setter("provider_name", provider_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="providerName") @@ -100,23 +121,52 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the connection. 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. """ + _PortfolioState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_time=created_time, + description=description, + name=name, + provider_name=provider_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + provider_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if provider_name is None and 'providerName' in kwargs: + provider_name = kwargs['providerName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if provider_name is not None: - pulumi.set(__self__, "provider_name", provider_name) + _setter("provider_name", provider_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -277,6 +327,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PortfolioArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicecatalog/portfolio_share.py b/sdk/python/pulumi_aws/servicecatalog/portfolio_share.py index 91afda1c885..afe6ef9c2c0 100644 --- a/sdk/python/pulumi_aws/servicecatalog/portfolio_share.py +++ b/sdk/python/pulumi_aws/servicecatalog/portfolio_share.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PortfolioShareArgs', 'PortfolioShare'] @@ -33,17 +33,58 @@ def __init__(__self__, *, :param pulumi.Input[bool] share_tag_options: Whether to enable sharing of `servicecatalog.TagOption` resources when creating the portfolio share. :param pulumi.Input[bool] wait_for_acceptance: Whether to wait (up to the timeout) for the share to be accepted. Organizational shares are automatically accepted. """ - pulumi.set(__self__, "portfolio_id", portfolio_id) - pulumi.set(__self__, "principal_id", principal_id) - pulumi.set(__self__, "type", type) + PortfolioShareArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + portfolio_id=portfolio_id, + principal_id=principal_id, + type=type, + accept_language=accept_language, + share_principals=share_principals, + share_tag_options=share_tag_options, + wait_for_acceptance=wait_for_acceptance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + portfolio_id: Optional[pulumi.Input[str]] = None, + principal_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + accept_language: Optional[pulumi.Input[str]] = None, + share_principals: Optional[pulumi.Input[bool]] = None, + share_tag_options: Optional[pulumi.Input[bool]] = None, + wait_for_acceptance: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if portfolio_id is None and 'portfolioId' in kwargs: + portfolio_id = kwargs['portfolioId'] + if portfolio_id is None: + raise TypeError("Missing 'portfolio_id' argument") + if principal_id is None and 'principalId' in kwargs: + principal_id = kwargs['principalId'] + if principal_id is None: + raise TypeError("Missing 'principal_id' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if share_principals is None and 'sharePrincipals' in kwargs: + share_principals = kwargs['sharePrincipals'] + if share_tag_options is None and 'shareTagOptions' in kwargs: + share_tag_options = kwargs['shareTagOptions'] + if wait_for_acceptance is None and 'waitForAcceptance' in kwargs: + wait_for_acceptance = kwargs['waitForAcceptance'] + + _setter("portfolio_id", portfolio_id) + _setter("principal_id", principal_id) + _setter("type", type) if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if share_principals is not None: - pulumi.set(__self__, "share_principals", share_principals) + _setter("share_principals", share_principals) if share_tag_options is not None: - pulumi.set(__self__, "share_tag_options", share_tag_options) + _setter("share_tag_options", share_tag_options) if wait_for_acceptance is not None: - pulumi.set(__self__, "wait_for_acceptance", wait_for_acceptance) + _setter("wait_for_acceptance", wait_for_acceptance) @property @pulumi.getter(name="portfolioId") @@ -156,22 +197,59 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] wait_for_acceptance: Whether to wait (up to the timeout) for the share to be accepted. Organizational shares are automatically accepted. """ + _PortfolioShareState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_language=accept_language, + accepted=accepted, + portfolio_id=portfolio_id, + principal_id=principal_id, + share_principals=share_principals, + share_tag_options=share_tag_options, + type=type, + wait_for_acceptance=wait_for_acceptance, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_language: Optional[pulumi.Input[str]] = None, + accepted: Optional[pulumi.Input[bool]] = None, + portfolio_id: Optional[pulumi.Input[str]] = None, + principal_id: Optional[pulumi.Input[str]] = None, + share_principals: Optional[pulumi.Input[bool]] = None, + share_tag_options: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + wait_for_acceptance: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if portfolio_id is None and 'portfolioId' in kwargs: + portfolio_id = kwargs['portfolioId'] + if principal_id is None and 'principalId' in kwargs: + principal_id = kwargs['principalId'] + if share_principals is None and 'sharePrincipals' in kwargs: + share_principals = kwargs['sharePrincipals'] + if share_tag_options is None and 'shareTagOptions' in kwargs: + share_tag_options = kwargs['shareTagOptions'] + if wait_for_acceptance is None and 'waitForAcceptance' in kwargs: + wait_for_acceptance = kwargs['waitForAcceptance'] + if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if accepted is not None: - pulumi.set(__self__, "accepted", accepted) + _setter("accepted", accepted) if portfolio_id is not None: - pulumi.set(__self__, "portfolio_id", portfolio_id) + _setter("portfolio_id", portfolio_id) if principal_id is not None: - pulumi.set(__self__, "principal_id", principal_id) + _setter("principal_id", principal_id) if share_principals is not None: - pulumi.set(__self__, "share_principals", share_principals) + _setter("share_principals", share_principals) if share_tag_options is not None: - pulumi.set(__self__, "share_tag_options", share_tag_options) + _setter("share_tag_options", share_tag_options) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if wait_for_acceptance is not None: - pulumi.set(__self__, "wait_for_acceptance", wait_for_acceptance) + _setter("wait_for_acceptance", wait_for_acceptance) @property @pulumi.getter(name="acceptLanguage") @@ -377,6 +455,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PortfolioShareArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicecatalog/principal_portfolio_association.py b/sdk/python/pulumi_aws/servicecatalog/principal_portfolio_association.py index 2556d511c4b..966b1b21581 100644 --- a/sdk/python/pulumi_aws/servicecatalog/principal_portfolio_association.py +++ b/sdk/python/pulumi_aws/servicecatalog/principal_portfolio_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PrincipalPortfolioAssociationArgs', 'PrincipalPortfolioAssociation'] @@ -27,12 +27,41 @@ def __init__(__self__, *, :param pulumi.Input[str] accept_language: Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`. :param pulumi.Input[str] principal_type: Principal type. Setting this argument empty (e.g., `principal_type = ""`) will result in an error. Valid values are `IAM` and `IAM_PATTERN`. Default is `IAM`. """ - pulumi.set(__self__, "portfolio_id", portfolio_id) - pulumi.set(__self__, "principal_arn", principal_arn) + PrincipalPortfolioAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + portfolio_id=portfolio_id, + principal_arn=principal_arn, + accept_language=accept_language, + principal_type=principal_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + portfolio_id: Optional[pulumi.Input[str]] = None, + principal_arn: Optional[pulumi.Input[str]] = None, + accept_language: Optional[pulumi.Input[str]] = None, + principal_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if portfolio_id is None and 'portfolioId' in kwargs: + portfolio_id = kwargs['portfolioId'] + if portfolio_id is None: + raise TypeError("Missing 'portfolio_id' argument") + if principal_arn is None and 'principalArn' in kwargs: + principal_arn = kwargs['principalArn'] + if principal_arn is None: + raise TypeError("Missing 'principal_arn' argument") + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if principal_type is None and 'principalType' in kwargs: + principal_type = kwargs['principalType'] + + _setter("portfolio_id", portfolio_id) + _setter("principal_arn", principal_arn) if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if principal_type is not None: - pulumi.set(__self__, "principal_type", principal_type) + _setter("principal_type", principal_type) @property @pulumi.getter(name="portfolioId") @@ -101,14 +130,39 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] principal_type: Principal type. Setting this argument empty (e.g., `principal_type = ""`) will result in an error. Valid values are `IAM` and `IAM_PATTERN`. Default is `IAM`. """ + _PrincipalPortfolioAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_language=accept_language, + portfolio_id=portfolio_id, + principal_arn=principal_arn, + principal_type=principal_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_language: Optional[pulumi.Input[str]] = None, + portfolio_id: Optional[pulumi.Input[str]] = None, + principal_arn: Optional[pulumi.Input[str]] = None, + principal_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if portfolio_id is None and 'portfolioId' in kwargs: + portfolio_id = kwargs['portfolioId'] + if principal_arn is None and 'principalArn' in kwargs: + principal_arn = kwargs['principalArn'] + if principal_type is None and 'principalType' in kwargs: + principal_type = kwargs['principalType'] + if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if portfolio_id is not None: - pulumi.set(__self__, "portfolio_id", portfolio_id) + _setter("portfolio_id", portfolio_id) if principal_arn is not None: - pulumi.set(__self__, "principal_arn", principal_arn) + _setter("principal_arn", principal_arn) if principal_type is not None: - pulumi.set(__self__, "principal_type", principal_type) + _setter("principal_type", principal_type) @property @pulumi.getter(name="acceptLanguage") @@ -242,6 +296,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PrincipalPortfolioAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicecatalog/product.py b/sdk/python/pulumi_aws/servicecatalog/product.py index 8b3392500e2..b58800a51a9 100644 --- a/sdk/python/pulumi_aws/servicecatalog/product.py +++ b/sdk/python/pulumi_aws/servicecatalog/product.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -43,25 +43,72 @@ def __init__(__self__, *, :param pulumi.Input[str] support_url: Contact URL for product support. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the product. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "owner", owner) - pulumi.set(__self__, "provisioning_artifact_parameters", provisioning_artifact_parameters) - pulumi.set(__self__, "type", type) + ProductArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + owner=owner, + provisioning_artifact_parameters=provisioning_artifact_parameters, + type=type, + accept_language=accept_language, + description=description, + distributor=distributor, + name=name, + support_description=support_description, + support_email=support_email, + support_url=support_url, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + owner: Optional[pulumi.Input[str]] = None, + provisioning_artifact_parameters: Optional[pulumi.Input['ProductProvisioningArtifactParametersArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + accept_language: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + distributor: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + support_description: Optional[pulumi.Input[str]] = None, + support_email: Optional[pulumi.Input[str]] = None, + support_url: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner is None: + raise TypeError("Missing 'owner' argument") + if provisioning_artifact_parameters is None and 'provisioningArtifactParameters' in kwargs: + provisioning_artifact_parameters = kwargs['provisioningArtifactParameters'] + if provisioning_artifact_parameters is None: + raise TypeError("Missing 'provisioning_artifact_parameters' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if support_description is None and 'supportDescription' in kwargs: + support_description = kwargs['supportDescription'] + if support_email is None and 'supportEmail' in kwargs: + support_email = kwargs['supportEmail'] + if support_url is None and 'supportUrl' in kwargs: + support_url = kwargs['supportUrl'] + + _setter("owner", owner) + _setter("provisioning_artifact_parameters", provisioning_artifact_parameters) + _setter("type", type) if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if distributor is not None: - pulumi.set(__self__, "distributor", distributor) + _setter("distributor", distributor) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if support_description is not None: - pulumi.set(__self__, "support_description", support_description) + _setter("support_description", support_description) if support_email is not None: - pulumi.set(__self__, "support_email", support_email) + _setter("support_email", support_email) if support_url is not None: - pulumi.set(__self__, "support_url", support_url) + _setter("support_url", support_url) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -238,41 +285,98 @@ def __init__(__self__, *, The following arguments are optional: """ + _ProductState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_language=accept_language, + arn=arn, + created_time=created_time, + description=description, + distributor=distributor, + has_default_path=has_default_path, + name=name, + owner=owner, + provisioning_artifact_parameters=provisioning_artifact_parameters, + status=status, + support_description=support_description, + support_email=support_email, + support_url=support_url, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_language: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + distributor: Optional[pulumi.Input[str]] = None, + has_default_path: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + provisioning_artifact_parameters: Optional[pulumi.Input['ProductProvisioningArtifactParametersArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + support_description: Optional[pulumi.Input[str]] = None, + support_email: Optional[pulumi.Input[str]] = None, + support_url: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if has_default_path is None and 'hasDefaultPath' in kwargs: + has_default_path = kwargs['hasDefaultPath'] + if provisioning_artifact_parameters is None and 'provisioningArtifactParameters' in kwargs: + provisioning_artifact_parameters = kwargs['provisioningArtifactParameters'] + if support_description is None and 'supportDescription' in kwargs: + support_description = kwargs['supportDescription'] + if support_email is None and 'supportEmail' in kwargs: + support_email = kwargs['supportEmail'] + if support_url is None and 'supportUrl' in kwargs: + support_url = kwargs['supportUrl'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if distributor is not None: - pulumi.set(__self__, "distributor", distributor) + _setter("distributor", distributor) if has_default_path is not None: - pulumi.set(__self__, "has_default_path", has_default_path) + _setter("has_default_path", has_default_path) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if provisioning_artifact_parameters is not None: - pulumi.set(__self__, "provisioning_artifact_parameters", provisioning_artifact_parameters) + _setter("provisioning_artifact_parameters", provisioning_artifact_parameters) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if support_description is not None: - pulumi.set(__self__, "support_description", support_description) + _setter("support_description", support_description) if support_email is not None: - pulumi.set(__self__, "support_email", support_email) + _setter("support_email", support_email) if support_url is not None: - pulumi.set(__self__, "support_url", support_url) + _setter("support_url", support_url) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="acceptLanguage") @@ -587,6 +691,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProductArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -619,6 +727,7 @@ def _internal_init(__self__, if owner is None and not opts.urn: raise TypeError("Missing required property 'owner'") __props__.__dict__["owner"] = owner + provisioning_artifact_parameters = _utilities.configure(provisioning_artifact_parameters, ProductProvisioningArtifactParametersArgs, True) if provisioning_artifact_parameters is None and not opts.urn: raise TypeError("Missing required property 'provisioning_artifact_parameters'") __props__.__dict__["provisioning_artifact_parameters"] = provisioning_artifact_parameters diff --git a/sdk/python/pulumi_aws/servicecatalog/product_portfolio_association.py b/sdk/python/pulumi_aws/servicecatalog/product_portfolio_association.py index 654f9e3c08b..2310f864946 100644 --- a/sdk/python/pulumi_aws/servicecatalog/product_portfolio_association.py +++ b/sdk/python/pulumi_aws/servicecatalog/product_portfolio_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProductPortfolioAssociationArgs', 'ProductPortfolioAssociation'] @@ -27,12 +27,41 @@ def __init__(__self__, *, :param pulumi.Input[str] accept_language: Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`. :param pulumi.Input[str] source_portfolio_id: Identifier of the source portfolio. """ - pulumi.set(__self__, "portfolio_id", portfolio_id) - pulumi.set(__self__, "product_id", product_id) + ProductPortfolioAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + portfolio_id=portfolio_id, + product_id=product_id, + accept_language=accept_language, + source_portfolio_id=source_portfolio_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + portfolio_id: Optional[pulumi.Input[str]] = None, + product_id: Optional[pulumi.Input[str]] = None, + accept_language: Optional[pulumi.Input[str]] = None, + source_portfolio_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if portfolio_id is None and 'portfolioId' in kwargs: + portfolio_id = kwargs['portfolioId'] + if portfolio_id is None: + raise TypeError("Missing 'portfolio_id' argument") + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if product_id is None: + raise TypeError("Missing 'product_id' argument") + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if source_portfolio_id is None and 'sourcePortfolioId' in kwargs: + source_portfolio_id = kwargs['sourcePortfolioId'] + + _setter("portfolio_id", portfolio_id) + _setter("product_id", product_id) if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if source_portfolio_id is not None: - pulumi.set(__self__, "source_portfolio_id", source_portfolio_id) + _setter("source_portfolio_id", source_portfolio_id) @property @pulumi.getter(name="portfolioId") @@ -101,14 +130,39 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] source_portfolio_id: Identifier of the source portfolio. """ + _ProductPortfolioAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_language=accept_language, + portfolio_id=portfolio_id, + product_id=product_id, + source_portfolio_id=source_portfolio_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_language: Optional[pulumi.Input[str]] = None, + portfolio_id: Optional[pulumi.Input[str]] = None, + product_id: Optional[pulumi.Input[str]] = None, + source_portfolio_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if portfolio_id is None and 'portfolioId' in kwargs: + portfolio_id = kwargs['portfolioId'] + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if source_portfolio_id is None and 'sourcePortfolioId' in kwargs: + source_portfolio_id = kwargs['sourcePortfolioId'] + if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if portfolio_id is not None: - pulumi.set(__self__, "portfolio_id", portfolio_id) + _setter("portfolio_id", portfolio_id) if product_id is not None: - pulumi.set(__self__, "product_id", product_id) + _setter("product_id", product_id) if source_portfolio_id is not None: - pulumi.set(__self__, "source_portfolio_id", source_portfolio_id) + _setter("source_portfolio_id", source_portfolio_id) @property @pulumi.getter(name="acceptLanguage") @@ -242,6 +296,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProductPortfolioAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicecatalog/provisioned_product.py b/sdk/python/pulumi_aws/servicecatalog/provisioned_product.py index 8f9f09f1394..5420d276e3a 100644 --- a/sdk/python/pulumi_aws/servicecatalog/provisioned_product.py +++ b/sdk/python/pulumi_aws/servicecatalog/provisioned_product.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -49,34 +49,95 @@ def __init__(__self__, *, :param pulumi.Input['ProvisionedProductStackSetProvisioningPreferencesArgs'] stack_set_provisioning_preferences: Configuration block with information about the provisioning preferences for a stack set. See details below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the provisioned product. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + ProvisionedProductArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_language=accept_language, + ignore_errors=ignore_errors, + name=name, + notification_arns=notification_arns, + path_id=path_id, + path_name=path_name, + product_id=product_id, + product_name=product_name, + provisioning_artifact_id=provisioning_artifact_id, + provisioning_artifact_name=provisioning_artifact_name, + provisioning_parameters=provisioning_parameters, + retain_physical_resources=retain_physical_resources, + stack_set_provisioning_preferences=stack_set_provisioning_preferences, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_language: Optional[pulumi.Input[str]] = None, + ignore_errors: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + path_id: Optional[pulumi.Input[str]] = None, + path_name: Optional[pulumi.Input[str]] = None, + product_id: Optional[pulumi.Input[str]] = None, + product_name: Optional[pulumi.Input[str]] = None, + provisioning_artifact_id: Optional[pulumi.Input[str]] = None, + provisioning_artifact_name: Optional[pulumi.Input[str]] = None, + provisioning_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ProvisionedProductProvisioningParameterArgs']]]] = None, + retain_physical_resources: Optional[pulumi.Input[bool]] = None, + stack_set_provisioning_preferences: Optional[pulumi.Input['ProvisionedProductStackSetProvisioningPreferencesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if ignore_errors is None and 'ignoreErrors' in kwargs: + ignore_errors = kwargs['ignoreErrors'] + if notification_arns is None and 'notificationArns' in kwargs: + notification_arns = kwargs['notificationArns'] + if path_id is None and 'pathId' in kwargs: + path_id = kwargs['pathId'] + if path_name is None and 'pathName' in kwargs: + path_name = kwargs['pathName'] + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if product_name is None and 'productName' in kwargs: + product_name = kwargs['productName'] + if provisioning_artifact_id is None and 'provisioningArtifactId' in kwargs: + provisioning_artifact_id = kwargs['provisioningArtifactId'] + if provisioning_artifact_name is None and 'provisioningArtifactName' in kwargs: + provisioning_artifact_name = kwargs['provisioningArtifactName'] + if provisioning_parameters is None and 'provisioningParameters' in kwargs: + provisioning_parameters = kwargs['provisioningParameters'] + if retain_physical_resources is None and 'retainPhysicalResources' in kwargs: + retain_physical_resources = kwargs['retainPhysicalResources'] + if stack_set_provisioning_preferences is None and 'stackSetProvisioningPreferences' in kwargs: + stack_set_provisioning_preferences = kwargs['stackSetProvisioningPreferences'] + if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if ignore_errors is not None: - pulumi.set(__self__, "ignore_errors", ignore_errors) + _setter("ignore_errors", ignore_errors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_arns is not None: - pulumi.set(__self__, "notification_arns", notification_arns) + _setter("notification_arns", notification_arns) if path_id is not None: - pulumi.set(__self__, "path_id", path_id) + _setter("path_id", path_id) if path_name is not None: - pulumi.set(__self__, "path_name", path_name) + _setter("path_name", path_name) if product_id is not None: - pulumi.set(__self__, "product_id", product_id) + _setter("product_id", product_id) if product_name is not None: - pulumi.set(__self__, "product_name", product_name) + _setter("product_name", product_name) if provisioning_artifact_id is not None: - pulumi.set(__self__, "provisioning_artifact_id", provisioning_artifact_id) + _setter("provisioning_artifact_id", provisioning_artifact_id) if provisioning_artifact_name is not None: - pulumi.set(__self__, "provisioning_artifact_name", provisioning_artifact_name) + _setter("provisioning_artifact_name", provisioning_artifact_name) if provisioning_parameters is not None: - pulumi.set(__self__, "provisioning_parameters", provisioning_parameters) + _setter("provisioning_parameters", provisioning_parameters) if retain_physical_resources is not None: - pulumi.set(__self__, "retain_physical_resources", retain_physical_resources) + _setter("retain_physical_resources", retain_physical_resources) if stack_set_provisioning_preferences is not None: - pulumi.set(__self__, "stack_set_provisioning_preferences", stack_set_provisioning_preferences) + _setter("stack_set_provisioning_preferences", stack_set_provisioning_preferences) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="acceptLanguage") @@ -309,61 +370,162 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] type: Type of provisioned product. Valid values are `CFN_STACK` and `CFN_STACKSET`. """ + _ProvisionedProductState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_language=accept_language, + arn=arn, + cloudwatch_dashboard_names=cloudwatch_dashboard_names, + created_time=created_time, + ignore_errors=ignore_errors, + last_provisioning_record_id=last_provisioning_record_id, + last_record_id=last_record_id, + last_successful_provisioning_record_id=last_successful_provisioning_record_id, + launch_role_arn=launch_role_arn, + name=name, + notification_arns=notification_arns, + outputs=outputs, + path_id=path_id, + path_name=path_name, + product_id=product_id, + product_name=product_name, + provisioning_artifact_id=provisioning_artifact_id, + provisioning_artifact_name=provisioning_artifact_name, + provisioning_parameters=provisioning_parameters, + retain_physical_resources=retain_physical_resources, + stack_set_provisioning_preferences=stack_set_provisioning_preferences, + status=status, + status_message=status_message, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_language: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + cloudwatch_dashboard_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + created_time: Optional[pulumi.Input[str]] = None, + ignore_errors: Optional[pulumi.Input[bool]] = None, + last_provisioning_record_id: Optional[pulumi.Input[str]] = None, + last_record_id: Optional[pulumi.Input[str]] = None, + last_successful_provisioning_record_id: Optional[pulumi.Input[str]] = None, + launch_role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + notification_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + outputs: Optional[pulumi.Input[Sequence[pulumi.Input['ProvisionedProductOutputArgs']]]] = None, + path_id: Optional[pulumi.Input[str]] = None, + path_name: Optional[pulumi.Input[str]] = None, + product_id: Optional[pulumi.Input[str]] = None, + product_name: Optional[pulumi.Input[str]] = None, + provisioning_artifact_id: Optional[pulumi.Input[str]] = None, + provisioning_artifact_name: Optional[pulumi.Input[str]] = None, + provisioning_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ProvisionedProductProvisioningParameterArgs']]]] = None, + retain_physical_resources: Optional[pulumi.Input[bool]] = None, + stack_set_provisioning_preferences: Optional[pulumi.Input['ProvisionedProductStackSetProvisioningPreferencesArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + status_message: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if cloudwatch_dashboard_names is None and 'cloudwatchDashboardNames' in kwargs: + cloudwatch_dashboard_names = kwargs['cloudwatchDashboardNames'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if ignore_errors is None and 'ignoreErrors' in kwargs: + ignore_errors = kwargs['ignoreErrors'] + if last_provisioning_record_id is None and 'lastProvisioningRecordId' in kwargs: + last_provisioning_record_id = kwargs['lastProvisioningRecordId'] + if last_record_id is None and 'lastRecordId' in kwargs: + last_record_id = kwargs['lastRecordId'] + if last_successful_provisioning_record_id is None and 'lastSuccessfulProvisioningRecordId' in kwargs: + last_successful_provisioning_record_id = kwargs['lastSuccessfulProvisioningRecordId'] + if launch_role_arn is None and 'launchRoleArn' in kwargs: + launch_role_arn = kwargs['launchRoleArn'] + if notification_arns is None and 'notificationArns' in kwargs: + notification_arns = kwargs['notificationArns'] + if path_id is None and 'pathId' in kwargs: + path_id = kwargs['pathId'] + if path_name is None and 'pathName' in kwargs: + path_name = kwargs['pathName'] + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if product_name is None and 'productName' in kwargs: + product_name = kwargs['productName'] + if provisioning_artifact_id is None and 'provisioningArtifactId' in kwargs: + provisioning_artifact_id = kwargs['provisioningArtifactId'] + if provisioning_artifact_name is None and 'provisioningArtifactName' in kwargs: + provisioning_artifact_name = kwargs['provisioningArtifactName'] + if provisioning_parameters is None and 'provisioningParameters' in kwargs: + provisioning_parameters = kwargs['provisioningParameters'] + if retain_physical_resources is None and 'retainPhysicalResources' in kwargs: + retain_physical_resources = kwargs['retainPhysicalResources'] + if stack_set_provisioning_preferences is None and 'stackSetProvisioningPreferences' in kwargs: + stack_set_provisioning_preferences = kwargs['stackSetProvisioningPreferences'] + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cloudwatch_dashboard_names is not None: - pulumi.set(__self__, "cloudwatch_dashboard_names", cloudwatch_dashboard_names) + _setter("cloudwatch_dashboard_names", cloudwatch_dashboard_names) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if ignore_errors is not None: - pulumi.set(__self__, "ignore_errors", ignore_errors) + _setter("ignore_errors", ignore_errors) if last_provisioning_record_id is not None: - pulumi.set(__self__, "last_provisioning_record_id", last_provisioning_record_id) + _setter("last_provisioning_record_id", last_provisioning_record_id) if last_record_id is not None: - pulumi.set(__self__, "last_record_id", last_record_id) + _setter("last_record_id", last_record_id) if last_successful_provisioning_record_id is not None: - pulumi.set(__self__, "last_successful_provisioning_record_id", last_successful_provisioning_record_id) + _setter("last_successful_provisioning_record_id", last_successful_provisioning_record_id) if launch_role_arn is not None: - pulumi.set(__self__, "launch_role_arn", launch_role_arn) + _setter("launch_role_arn", launch_role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if notification_arns is not None: - pulumi.set(__self__, "notification_arns", notification_arns) + _setter("notification_arns", notification_arns) if outputs is not None: - pulumi.set(__self__, "outputs", outputs) + _setter("outputs", outputs) if path_id is not None: - pulumi.set(__self__, "path_id", path_id) + _setter("path_id", path_id) if path_name is not None: - pulumi.set(__self__, "path_name", path_name) + _setter("path_name", path_name) if product_id is not None: - pulumi.set(__self__, "product_id", product_id) + _setter("product_id", product_id) if product_name is not None: - pulumi.set(__self__, "product_name", product_name) + _setter("product_name", product_name) if provisioning_artifact_id is not None: - pulumi.set(__self__, "provisioning_artifact_id", provisioning_artifact_id) + _setter("provisioning_artifact_id", provisioning_artifact_id) if provisioning_artifact_name is not None: - pulumi.set(__self__, "provisioning_artifact_name", provisioning_artifact_name) + _setter("provisioning_artifact_name", provisioning_artifact_name) if provisioning_parameters is not None: - pulumi.set(__self__, "provisioning_parameters", provisioning_parameters) + _setter("provisioning_parameters", provisioning_parameters) if retain_physical_resources is not None: - pulumi.set(__self__, "retain_physical_resources", retain_physical_resources) + _setter("retain_physical_resources", retain_physical_resources) if stack_set_provisioning_preferences is not None: - pulumi.set(__self__, "stack_set_provisioning_preferences", stack_set_provisioning_preferences) + _setter("stack_set_provisioning_preferences", stack_set_provisioning_preferences) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_message is not None: - pulumi.set(__self__, "status_message", status_message) + _setter("status_message", status_message) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="acceptLanguage") @@ -814,6 +976,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProvisionedProductArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -854,6 +1020,7 @@ def _internal_init(__self__, __props__.__dict__["provisioning_artifact_name"] = provisioning_artifact_name __props__.__dict__["provisioning_parameters"] = provisioning_parameters __props__.__dict__["retain_physical_resources"] = retain_physical_resources + stack_set_provisioning_preferences = _utilities.configure(stack_set_provisioning_preferences, ProvisionedProductStackSetProvisioningPreferencesArgs, True) __props__.__dict__["stack_set_provisioning_preferences"] = stack_set_provisioning_preferences __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/servicecatalog/provisioning_artifact.py b/sdk/python/pulumi_aws/servicecatalog/provisioning_artifact.py index 9f2aa629601..331c97a6f78 100644 --- a/sdk/python/pulumi_aws/servicecatalog/provisioning_artifact.py +++ b/sdk/python/pulumi_aws/servicecatalog/provisioning_artifact.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProvisioningArtifactArgs', 'ProvisioningArtifact'] @@ -39,25 +39,66 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] type: Type of provisioning artifact. See [AWS Docs](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ProvisioningArtifactProperties.html) for valid list of values. """ - pulumi.set(__self__, "product_id", product_id) + ProvisioningArtifactArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + product_id=product_id, + accept_language=accept_language, + active=active, + description=description, + disable_template_validation=disable_template_validation, + guidance=guidance, + name=name, + template_physical_id=template_physical_id, + template_url=template_url, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + product_id: Optional[pulumi.Input[str]] = None, + accept_language: Optional[pulumi.Input[str]] = None, + active: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + disable_template_validation: Optional[pulumi.Input[bool]] = None, + guidance: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + template_physical_id: Optional[pulumi.Input[str]] = None, + template_url: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if product_id is None: + raise TypeError("Missing 'product_id' argument") + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if disable_template_validation is None and 'disableTemplateValidation' in kwargs: + disable_template_validation = kwargs['disableTemplateValidation'] + if template_physical_id is None and 'templatePhysicalId' in kwargs: + template_physical_id = kwargs['templatePhysicalId'] + if template_url is None and 'templateUrl' in kwargs: + template_url = kwargs['templateUrl'] + + _setter("product_id", product_id) if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if active is not None: - pulumi.set(__self__, "active", active) + _setter("active", active) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_template_validation is not None: - pulumi.set(__self__, "disable_template_validation", disable_template_validation) + _setter("disable_template_validation", disable_template_validation) if guidance is not None: - pulumi.set(__self__, "guidance", guidance) + _setter("guidance", guidance) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if template_physical_id is not None: - pulumi.set(__self__, "template_physical_id", template_physical_id) + _setter("template_physical_id", template_physical_id) if template_url is not None: - pulumi.set(__self__, "template_url", template_url) + _setter("template_url", template_url) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="productId") @@ -214,30 +255,77 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] type: Type of provisioning artifact. See [AWS Docs](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ProvisioningArtifactProperties.html) for valid list of values. """ + _ProvisioningArtifactState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_language=accept_language, + active=active, + created_time=created_time, + description=description, + disable_template_validation=disable_template_validation, + guidance=guidance, + name=name, + product_id=product_id, + provisioning_artifact_id=provisioning_artifact_id, + template_physical_id=template_physical_id, + template_url=template_url, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_language: Optional[pulumi.Input[str]] = None, + active: Optional[pulumi.Input[bool]] = None, + created_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + disable_template_validation: Optional[pulumi.Input[bool]] = None, + guidance: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + product_id: Optional[pulumi.Input[str]] = None, + provisioning_artifact_id: Optional[pulumi.Input[str]] = None, + template_physical_id: Optional[pulumi.Input[str]] = None, + template_url: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if disable_template_validation is None and 'disableTemplateValidation' in kwargs: + disable_template_validation = kwargs['disableTemplateValidation'] + if product_id is None and 'productId' in kwargs: + product_id = kwargs['productId'] + if provisioning_artifact_id is None and 'provisioningArtifactId' in kwargs: + provisioning_artifact_id = kwargs['provisioningArtifactId'] + if template_physical_id is None and 'templatePhysicalId' in kwargs: + template_physical_id = kwargs['templatePhysicalId'] + if template_url is None and 'templateUrl' in kwargs: + template_url = kwargs['templateUrl'] + if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if active is not None: - pulumi.set(__self__, "active", active) + _setter("active", active) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if disable_template_validation is not None: - pulumi.set(__self__, "disable_template_validation", disable_template_validation) + _setter("disable_template_validation", disable_template_validation) if guidance is not None: - pulumi.set(__self__, "guidance", guidance) + _setter("guidance", guidance) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if product_id is not None: - pulumi.set(__self__, "product_id", product_id) + _setter("product_id", product_id) if provisioning_artifact_id is not None: - pulumi.set(__self__, "provisioning_artifact_id", provisioning_artifact_id) + _setter("provisioning_artifact_id", provisioning_artifact_id) if template_physical_id is not None: - pulumi.set(__self__, "template_physical_id", template_physical_id) + _setter("template_physical_id", template_physical_id) if template_url is not None: - pulumi.set(__self__, "template_url", template_url) + _setter("template_url", template_url) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="acceptLanguage") @@ -493,6 +581,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProvisioningArtifactArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicecatalog/service_action.py b/sdk/python/pulumi_aws/servicecatalog/service_action.py index cbc3214aa70..0a29b999045 100644 --- a/sdk/python/pulumi_aws/servicecatalog/service_action.py +++ b/sdk/python/pulumi_aws/servicecatalog/service_action.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,34 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "definition", definition) + ServiceActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + definition=definition, + accept_language=accept_language, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definition: Optional[pulumi.Input['ServiceActionDefinitionArgs']] = None, + accept_language: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definition is None: + raise TypeError("Missing 'definition' argument") + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + + _setter("definition", definition) if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -104,14 +125,33 @@ def __init__(__self__, *, The following arguments are optional: """ + _ServiceActionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + accept_language=accept_language, + definition=definition, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + accept_language: Optional[pulumi.Input[str]] = None, + definition: Optional[pulumi.Input['ServiceActionDefinitionArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if accept_language is None and 'acceptLanguage' in kwargs: + accept_language = kwargs['acceptLanguage'] + if accept_language is not None: - pulumi.set(__self__, "accept_language", accept_language) + _setter("accept_language", accept_language) if definition is not None: - pulumi.set(__self__, "definition", definition) + _setter("definition", definition) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="acceptLanguage") @@ -249,6 +289,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceActionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -268,6 +312,7 @@ def _internal_init(__self__, __props__ = ServiceActionArgs.__new__(ServiceActionArgs) __props__.__dict__["accept_language"] = accept_language + definition = _utilities.configure(definition, ServiceActionDefinitionArgs, True) if definition is None and not opts.urn: raise TypeError("Missing required property 'definition'") __props__.__dict__["definition"] = definition diff --git a/sdk/python/pulumi_aws/servicecatalog/tag_option.py b/sdk/python/pulumi_aws/servicecatalog/tag_option.py index f74f533a625..61402dc7c84 100644 --- a/sdk/python/pulumi_aws/servicecatalog/tag_option.py +++ b/sdk/python/pulumi_aws/servicecatalog/tag_option.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TagOptionArgs', 'TagOption'] @@ -25,10 +25,29 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[bool] active: Whether tag option is active. Default is `true`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + TagOptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + active=active, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + active: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) if active is not None: - pulumi.set(__self__, "active", active) + _setter("active", active) @property @pulumi.getter @@ -84,14 +103,31 @@ def __init__(__self__, *, The following arguments are optional: """ + _TagOptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + active=active, + key=key, + owner=owner, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active: Optional[pulumi.Input[bool]] = None, + key: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active is not None: - pulumi.set(__self__, "active", active) + _setter("active", active) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -220,6 +256,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TagOptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicecatalog/tag_option_resource_association.py b/sdk/python/pulumi_aws/servicecatalog/tag_option_resource_association.py index 70136a4b40f..4e127d5b53e 100644 --- a/sdk/python/pulumi_aws/servicecatalog/tag_option_resource_association.py +++ b/sdk/python/pulumi_aws/servicecatalog/tag_option_resource_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TagOptionResourceAssociationArgs', 'TagOptionResourceAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_id: Resource identifier. :param pulumi.Input[str] tag_option_id: Tag Option identifier. """ - pulumi.set(__self__, "resource_id", resource_id) - pulumi.set(__self__, "tag_option_id", tag_option_id) + TagOptionResourceAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_id=resource_id, + tag_option_id=tag_option_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_id: Optional[pulumi.Input[str]] = None, + tag_option_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_id is None: + raise TypeError("Missing 'resource_id' argument") + if tag_option_id is None and 'tagOptionId' in kwargs: + tag_option_id = kwargs['tagOptionId'] + if tag_option_id is None: + raise TypeError("Missing 'tag_option_id' argument") + + _setter("resource_id", resource_id) + _setter("tag_option_id", tag_option_id) @property @pulumi.getter(name="resourceId") @@ -67,18 +88,51 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_name: Description of the resource. :param pulumi.Input[str] tag_option_id: Tag Option identifier. """ + _TagOptionResourceAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + resource_created_time=resource_created_time, + resource_description=resource_description, + resource_id=resource_id, + resource_name=resource_name, + tag_option_id=tag_option_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + resource_created_time: Optional[pulumi.Input[str]] = None, + resource_description: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + resource_name: Optional[pulumi.Input[str]] = None, + tag_option_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_created_time is None and 'resourceCreatedTime' in kwargs: + resource_created_time = kwargs['resourceCreatedTime'] + if resource_description is None and 'resourceDescription' in kwargs: + resource_description = kwargs['resourceDescription'] + if resource_id is None and 'resourceId' in kwargs: + resource_id = kwargs['resourceId'] + if resource_name is None and 'resourceName' in kwargs: + resource_name = kwargs['resourceName'] + if tag_option_id is None and 'tagOptionId' in kwargs: + tag_option_id = kwargs['tagOptionId'] + if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if resource_created_time is not None: - pulumi.set(__self__, "resource_created_time", resource_created_time) + _setter("resource_created_time", resource_created_time) if resource_description is not None: - pulumi.set(__self__, "resource_description", resource_description) + _setter("resource_description", resource_description) if resource_id is not None: - pulumi.set(__self__, "resource_id", resource_id) + _setter("resource_id", resource_id) if resource_name is not None: - pulumi.set(__self__, "resource_name", resource_name) + _setter("resource_name", resource_name) if tag_option_id is not None: - pulumi.set(__self__, "tag_option_id", tag_option_id) + _setter("tag_option_id", tag_option_id) @property @pulumi.getter(name="resourceArn") @@ -232,6 +286,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TagOptionResourceAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicediscovery/_inputs.py b/sdk/python/pulumi_aws/servicediscovery/_inputs.py index f4cb4fb45d2..0b26b81833f 100644 --- a/sdk/python/pulumi_aws/servicediscovery/_inputs.py +++ b/sdk/python/pulumi_aws/servicediscovery/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -27,10 +27,35 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace_id: The ID of the namespace to use for DNS configuration. :param pulumi.Input[str] routing_policy: The routing policy that you want to apply to all records that Route 53 creates when you register an instance and specify the service. Valid Values: MULTIVALUE, WEIGHTED """ - pulumi.set(__self__, "dns_records", dns_records) - pulumi.set(__self__, "namespace_id", namespace_id) + ServiceDnsConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_records=dns_records, + namespace_id=namespace_id, + routing_policy=routing_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_records: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceDnsConfigDnsRecordArgs']]]] = None, + namespace_id: Optional[pulumi.Input[str]] = None, + routing_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_records is None and 'dnsRecords' in kwargs: + dns_records = kwargs['dnsRecords'] + if dns_records is None: + raise TypeError("Missing 'dns_records' argument") + if namespace_id is None and 'namespaceId' in kwargs: + namespace_id = kwargs['namespaceId'] + if namespace_id is None: + raise TypeError("Missing 'namespace_id' argument") + if routing_policy is None and 'routingPolicy' in kwargs: + routing_policy = kwargs['routingPolicy'] + + _setter("dns_records", dns_records) + _setter("namespace_id", namespace_id) if routing_policy is not None: - pulumi.set(__self__, "routing_policy", routing_policy) + _setter("routing_policy", routing_policy) @property @pulumi.getter(name="dnsRecords") @@ -78,8 +103,25 @@ def __init__(__self__, *, :param pulumi.Input[int] ttl: The amount of time, in seconds, that you want DNS resolvers to cache the settings for this resource record set. :param pulumi.Input[str] type: The type of the resource, which indicates the value that Amazon Route 53 returns in response to DNS queries. Valid Values: A, AAAA, SRV, CNAME """ - pulumi.set(__self__, "ttl", ttl) - pulumi.set(__self__, "type", type) + ServiceDnsConfigDnsRecordArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ttl=ttl, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ttl: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ttl is None: + raise TypeError("Missing 'ttl' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("ttl", ttl) + _setter("type", type) @property @pulumi.getter @@ -117,12 +159,31 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_path: The path that you want Route 53 to request when performing health checks. Route 53 automatically adds the DNS name for the service. If you don't specify a value, the default value is /. :param pulumi.Input[str] type: The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. Valid Values: HTTP, HTTPS, TCP """ + ServiceHealthCheckConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_threshold=failure_threshold, + resource_path=resource_path, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_threshold: Optional[pulumi.Input[int]] = None, + resource_path: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_threshold is None and 'failureThreshold' in kwargs: + failure_threshold = kwargs['failureThreshold'] + if resource_path is None and 'resourcePath' in kwargs: + resource_path = kwargs['resourcePath'] + if failure_threshold is not None: - pulumi.set(__self__, "failure_threshold", failure_threshold) + _setter("failure_threshold", failure_threshold) if resource_path is not None: - pulumi.set(__self__, "resource_path", resource_path) + _setter("resource_path", resource_path) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="failureThreshold") @@ -168,8 +229,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] failure_threshold: The number of 30-second intervals that you want service discovery to wait before it changes the health status of a service instance. Maximum value of 10. """ + ServiceHealthCheckCustomConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_threshold=failure_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_threshold: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_threshold is None and 'failureThreshold' in kwargs: + failure_threshold = kwargs['failureThreshold'] + if failure_threshold is not None: - pulumi.set(__self__, "failure_threshold", failure_threshold) + _setter("failure_threshold", failure_threshold) @property @pulumi.getter(name="failureThreshold") diff --git a/sdk/python/pulumi_aws/servicediscovery/get_dns_namespace.py b/sdk/python/pulumi_aws/servicediscovery/get_dns_namespace.py index 6b9904535fd..da66539dfe9 100644 --- a/sdk/python/pulumi_aws/servicediscovery/get_dns_namespace.py +++ b/sdk/python/pulumi_aws/servicediscovery/get_dns_namespace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/servicediscovery/get_http_namespace.py b/sdk/python/pulumi_aws/servicediscovery/get_http_namespace.py index 69ae054e5e0..6e10ffa061f 100644 --- a/sdk/python/pulumi_aws/servicediscovery/get_http_namespace.py +++ b/sdk/python/pulumi_aws/servicediscovery/get_http_namespace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/servicediscovery/get_service.py b/sdk/python/pulumi_aws/servicediscovery/get_service.py index e069e6b224a..bf480609340 100644 --- a/sdk/python/pulumi_aws/servicediscovery/get_service.py +++ b/sdk/python/pulumi_aws/servicediscovery/get_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/servicediscovery/http_namespace.py b/sdk/python/pulumi_aws/servicediscovery/http_namespace.py index aaa420f376e..0c75ed1f7d6 100644 --- a/sdk/python/pulumi_aws/servicediscovery/http_namespace.py +++ b/sdk/python/pulumi_aws/servicediscovery/http_namespace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['HttpNamespaceArgs', 'HttpNamespace'] @@ -23,12 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the http namespace. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the namespace. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + HttpNamespaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -85,21 +100,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the namespace. 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. """ + _HttpNamespaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + http_name=http_name, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + http_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_name is None and 'httpName' in kwargs: + http_name = kwargs['httpName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if http_name is not None: - pulumi.set(__self__, "http_name", http_name) + _setter("http_name", http_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -244,6 +284,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + HttpNamespaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicediscovery/instance.py b/sdk/python/pulumi_aws/servicediscovery/instance.py index 55a2c630872..be9d731646f 100644 --- a/sdk/python/pulumi_aws/servicediscovery/instance.py +++ b/sdk/python/pulumi_aws/servicediscovery/instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InstanceArgs', 'Instance'] @@ -23,9 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_id: The ID of the service instance. :param pulumi.Input[str] service_id: The ID of the service that you want to use to create the instance. """ - pulumi.set(__self__, "attributes", attributes) - pulumi.set(__self__, "instance_id", instance_id) - pulumi.set(__self__, "service_id", service_id) + InstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + instance_id=instance_id, + service_id=service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + service_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attributes is None: + raise TypeError("Missing 'attributes' argument") + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if instance_id is None: + raise TypeError("Missing 'instance_id' argument") + if service_id is None and 'serviceId' in kwargs: + service_id = kwargs['serviceId'] + if service_id is None: + raise TypeError("Missing 'service_id' argument") + + _setter("attributes", attributes) + _setter("instance_id", instance_id) + _setter("service_id", service_id) @property @pulumi.getter @@ -76,12 +101,31 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_id: The ID of the service instance. :param pulumi.Input[str] service_id: The ID of the service that you want to use to create the instance. """ + _InstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + instance_id=instance_id, + service_id=service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + service_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if service_id is None and 'serviceId' in kwargs: + service_id = kwargs['serviceId'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if service_id is not None: - pulumi.set(__self__, "service_id", service_id) + _setter("service_id", service_id) @property @pulumi.getter @@ -269,6 +313,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicediscovery/outputs.py b/sdk/python/pulumi_aws/servicediscovery/outputs.py index f4e64225181..7d414a6d03f 100644 --- a/sdk/python/pulumi_aws/servicediscovery/outputs.py +++ b/sdk/python/pulumi_aws/servicediscovery/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -53,10 +53,35 @@ def __init__(__self__, *, :param str namespace_id: The ID of the namespace to use for DNS configuration. :param str routing_policy: The routing policy that you want to apply to all records that Route 53 creates when you register an instance and specify the service. Valid Values: MULTIVALUE, WEIGHTED """ - pulumi.set(__self__, "dns_records", dns_records) - pulumi.set(__self__, "namespace_id", namespace_id) + ServiceDnsConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_records=dns_records, + namespace_id=namespace_id, + routing_policy=routing_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_records: Optional[Sequence['outputs.ServiceDnsConfigDnsRecord']] = None, + namespace_id: Optional[str] = None, + routing_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_records is None and 'dnsRecords' in kwargs: + dns_records = kwargs['dnsRecords'] + if dns_records is None: + raise TypeError("Missing 'dns_records' argument") + if namespace_id is None and 'namespaceId' in kwargs: + namespace_id = kwargs['namespaceId'] + if namespace_id is None: + raise TypeError("Missing 'namespace_id' argument") + if routing_policy is None and 'routingPolicy' in kwargs: + routing_policy = kwargs['routingPolicy'] + + _setter("dns_records", dns_records) + _setter("namespace_id", namespace_id) if routing_policy is not None: - pulumi.set(__self__, "routing_policy", routing_policy) + _setter("routing_policy", routing_policy) @property @pulumi.getter(name="dnsRecords") @@ -92,8 +117,25 @@ def __init__(__self__, *, :param int ttl: The amount of time, in seconds, that you want DNS resolvers to cache the settings for this resource record set. :param str type: The type of the resource, which indicates the value that Amazon Route 53 returns in response to DNS queries. Valid Values: A, AAAA, SRV, CNAME """ - pulumi.set(__self__, "ttl", ttl) - pulumi.set(__self__, "type", type) + ServiceDnsConfigDnsRecord._configure( + lambda key, value: pulumi.set(__self__, key, value), + ttl=ttl, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ttl: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ttl is None: + raise TypeError("Missing 'ttl' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("ttl", ttl) + _setter("type", type) @property @pulumi.getter @@ -142,12 +184,31 @@ def __init__(__self__, *, :param str resource_path: The path that you want Route 53 to request when performing health checks. Route 53 automatically adds the DNS name for the service. If you don't specify a value, the default value is /. :param str type: The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. Valid Values: HTTP, HTTPS, TCP """ + ServiceHealthCheckConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_threshold=failure_threshold, + resource_path=resource_path, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_threshold: Optional[int] = None, + resource_path: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_threshold is None and 'failureThreshold' in kwargs: + failure_threshold = kwargs['failureThreshold'] + if resource_path is None and 'resourcePath' in kwargs: + resource_path = kwargs['resourcePath'] + if failure_threshold is not None: - pulumi.set(__self__, "failure_threshold", failure_threshold) + _setter("failure_threshold", failure_threshold) if resource_path is not None: - pulumi.set(__self__, "resource_path", resource_path) + _setter("resource_path", resource_path) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="failureThreshold") @@ -198,8 +259,21 @@ def __init__(__self__, *, """ :param int failure_threshold: The number of 30-second intervals that you want service discovery to wait before it changes the health status of a service instance. Maximum value of 10. """ + ServiceHealthCheckCustomConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_threshold=failure_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_threshold is None and 'failureThreshold' in kwargs: + failure_threshold = kwargs['failureThreshold'] + if failure_threshold is not None: - pulumi.set(__self__, "failure_threshold", failure_threshold) + _setter("failure_threshold", failure_threshold) @property @pulumi.getter(name="failureThreshold") @@ -221,9 +295,36 @@ def __init__(__self__, *, :param str namespace_id: ID of the namespace that the service belongs to. :param str routing_policy: Routing policy that you want to apply to all records that Route 53 creates when you register an instance and specify the service. Valid Values: MULTIVALUE, WEIGHTED """ - pulumi.set(__self__, "dns_records", dns_records) - pulumi.set(__self__, "namespace_id", namespace_id) - pulumi.set(__self__, "routing_policy", routing_policy) + GetServiceDnsConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dns_records=dns_records, + namespace_id=namespace_id, + routing_policy=routing_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dns_records: Optional[Sequence['outputs.GetServiceDnsConfigDnsRecordResult']] = None, + namespace_id: Optional[str] = None, + routing_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_records is None and 'dnsRecords' in kwargs: + dns_records = kwargs['dnsRecords'] + if dns_records is None: + raise TypeError("Missing 'dns_records' argument") + if namespace_id is None and 'namespaceId' in kwargs: + namespace_id = kwargs['namespaceId'] + if namespace_id is None: + raise TypeError("Missing 'namespace_id' argument") + if routing_policy is None and 'routingPolicy' in kwargs: + routing_policy = kwargs['routingPolicy'] + if routing_policy is None: + raise TypeError("Missing 'routing_policy' argument") + + _setter("dns_records", dns_records) + _setter("namespace_id", namespace_id) + _setter("routing_policy", routing_policy) @property @pulumi.getter(name="dnsRecords") @@ -259,8 +360,25 @@ def __init__(__self__, *, :param int ttl: Amount of time, in seconds, that you want DNS resolvers to cache the settings for this resource record set. :param str type: The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. Valid Values: HTTP, HTTPS, TCP """ - pulumi.set(__self__, "ttl", ttl) - pulumi.set(__self__, "type", type) + GetServiceDnsConfigDnsRecordResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ttl=ttl, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ttl: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ttl is None: + raise TypeError("Missing 'ttl' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("ttl", ttl) + _setter("type", type) @property @pulumi.getter @@ -290,9 +408,34 @@ def __init__(__self__, *, :param str resource_path: Path that you want Route 53 to request when performing health checks. Route 53 automatically adds the DNS name for the service. If you don't specify a value, the default value is /. :param str type: The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. Valid Values: HTTP, HTTPS, TCP """ - pulumi.set(__self__, "failure_threshold", failure_threshold) - pulumi.set(__self__, "resource_path", resource_path) - pulumi.set(__self__, "type", type) + GetServiceHealthCheckConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_threshold=failure_threshold, + resource_path=resource_path, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_threshold: Optional[int] = None, + resource_path: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_threshold is None and 'failureThreshold' in kwargs: + failure_threshold = kwargs['failureThreshold'] + if failure_threshold is None: + raise TypeError("Missing 'failure_threshold' argument") + if resource_path is None and 'resourcePath' in kwargs: + resource_path = kwargs['resourcePath'] + if resource_path is None: + raise TypeError("Missing 'resource_path' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("failure_threshold", failure_threshold) + _setter("resource_path", resource_path) + _setter("type", type) @property @pulumi.getter(name="failureThreshold") @@ -326,7 +469,22 @@ def __init__(__self__, *, """ :param int failure_threshold: The number of 30-second intervals that you want service discovery to wait before it changes the health status of a service instance. Maximum value of 10. """ - pulumi.set(__self__, "failure_threshold", failure_threshold) + GetServiceHealthCheckCustomConfigResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_threshold=failure_threshold, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_threshold: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_threshold is None and 'failureThreshold' in kwargs: + failure_threshold = kwargs['failureThreshold'] + if failure_threshold is None: + raise TypeError("Missing 'failure_threshold' argument") + + _setter("failure_threshold", failure_threshold) @property @pulumi.getter(name="failureThreshold") diff --git a/sdk/python/pulumi_aws/servicediscovery/private_dns_namespace.py b/sdk/python/pulumi_aws/servicediscovery/private_dns_namespace.py index c3838f9274b..b80ee97b128 100644 --- a/sdk/python/pulumi_aws/servicediscovery/private_dns_namespace.py +++ b/sdk/python/pulumi_aws/servicediscovery/private_dns_namespace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PrivateDnsNamespaceArgs', 'PrivateDnsNamespace'] @@ -25,13 +25,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the namespace. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the namespace. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "vpc", vpc) + PrivateDnsNamespaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vpc=vpc, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vpc: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vpc is None: + raise TypeError("Missing 'vpc' argument") + + _setter("vpc", vpc) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -102,23 +121,50 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc: The ID of VPC that you want to associate the namespace with. """ + _PrivateDnsNamespaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + hosted_zone=hosted_zone, + name=name, + tags=tags, + tags_all=tags_all, + vpc=vpc, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + hosted_zone: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosted_zone is None and 'hostedZone' in kwargs: + hosted_zone = kwargs['hostedZone'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if hosted_zone is not None: - pulumi.set(__self__, "hosted_zone", hosted_zone) + _setter("hosted_zone", hosted_zone) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc is not None: - pulumi.set(__self__, "vpc", vpc) + _setter("vpc", vpc) @property @pulumi.getter @@ -287,6 +333,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PrivateDnsNamespaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicediscovery/public_dns_namespace.py b/sdk/python/pulumi_aws/servicediscovery/public_dns_namespace.py index 6be51635593..784e24c90c4 100644 --- a/sdk/python/pulumi_aws/servicediscovery/public_dns_namespace.py +++ b/sdk/python/pulumi_aws/servicediscovery/public_dns_namespace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PublicDnsNamespaceArgs', 'PublicDnsNamespace'] @@ -23,12 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the namespace. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the namespace. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + PublicDnsNamespaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -85,21 +100,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the namespace. 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. """ + _PublicDnsNamespaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + hosted_zone=hosted_zone, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + hosted_zone: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hosted_zone is None and 'hostedZone' in kwargs: + hosted_zone = kwargs['hostedZone'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if hosted_zone is not None: - pulumi.set(__self__, "hosted_zone", hosted_zone) + _setter("hosted_zone", hosted_zone) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -248,6 +288,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PublicDnsNamespaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicediscovery/service.py b/sdk/python/pulumi_aws/servicediscovery/service.py index a763945feb6..11f0e306c00 100644 --- a/sdk/python/pulumi_aws/servicediscovery/service.py +++ b/sdk/python/pulumi_aws/servicediscovery/service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,24 +37,61 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the service. 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] type: If present, specifies that the service instances are only discoverable using the `DiscoverInstances` API operation. No DNS records is registered for the service instances. The only valid value is `HTTP`. """ + ServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + dns_config=dns_config, + force_destroy=force_destroy, + health_check_config=health_check_config, + health_check_custom_config=health_check_custom_config, + name=name, + namespace_id=namespace_id, + tags=tags, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + dns_config: Optional[pulumi.Input['ServiceDnsConfigArgs']] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + health_check_config: Optional[pulumi.Input['ServiceHealthCheckConfigArgs']] = None, + health_check_custom_config: Optional[pulumi.Input['ServiceHealthCheckCustomConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + namespace_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_config is None and 'dnsConfig' in kwargs: + dns_config = kwargs['dnsConfig'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if health_check_config is None and 'healthCheckConfig' in kwargs: + health_check_config = kwargs['healthCheckConfig'] + if health_check_custom_config is None and 'healthCheckCustomConfig' in kwargs: + health_check_custom_config = kwargs['healthCheckCustomConfig'] + if namespace_id is None and 'namespaceId' in kwargs: + namespace_id = kwargs['namespaceId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dns_config is not None: - pulumi.set(__self__, "dns_config", dns_config) + _setter("dns_config", dns_config) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if health_check_config is not None: - pulumi.set(__self__, "health_check_config", health_check_config) + _setter("health_check_config", health_check_config) if health_check_custom_config is not None: - pulumi.set(__self__, "health_check_custom_config", health_check_custom_config) + _setter("health_check_custom_config", health_check_custom_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if namespace_id is not None: - pulumi.set(__self__, "namespace_id", namespace_id) + _setter("namespace_id", namespace_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -193,31 +230,74 @@ def __init__(__self__, *, :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] type: If present, specifies that the service instances are only discoverable using the `DiscoverInstances` API operation. No DNS records is registered for the service instances. The only valid value is `HTTP`. """ + _ServiceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + dns_config=dns_config, + force_destroy=force_destroy, + health_check_config=health_check_config, + health_check_custom_config=health_check_custom_config, + name=name, + namespace_id=namespace_id, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + dns_config: Optional[pulumi.Input['ServiceDnsConfigArgs']] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + health_check_config: Optional[pulumi.Input['ServiceHealthCheckConfigArgs']] = None, + health_check_custom_config: Optional[pulumi.Input['ServiceHealthCheckCustomConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + namespace_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dns_config is None and 'dnsConfig' in kwargs: + dns_config = kwargs['dnsConfig'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if health_check_config is None and 'healthCheckConfig' in kwargs: + health_check_config = kwargs['healthCheckConfig'] + if health_check_custom_config is None and 'healthCheckCustomConfig' in kwargs: + health_check_custom_config = kwargs['healthCheckCustomConfig'] + if namespace_id is None and 'namespaceId' in kwargs: + namespace_id = kwargs['namespaceId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if dns_config is not None: - pulumi.set(__self__, "dns_config", dns_config) + _setter("dns_config", dns_config) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if health_check_config is not None: - pulumi.set(__self__, "health_check_config", health_check_config) + _setter("health_check_config", health_check_config) if health_check_custom_config is not None: - pulumi.set(__self__, "health_check_custom_config", health_check_custom_config) + _setter("health_check_custom_config", health_check_custom_config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if namespace_id is not None: - pulumi.set(__self__, "namespace_id", namespace_id) + _setter("namespace_id", namespace_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -514,6 +594,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -538,9 +622,12 @@ def _internal_init(__self__, __props__ = ServiceArgs.__new__(ServiceArgs) __props__.__dict__["description"] = description + dns_config = _utilities.configure(dns_config, ServiceDnsConfigArgs, True) __props__.__dict__["dns_config"] = dns_config __props__.__dict__["force_destroy"] = force_destroy + health_check_config = _utilities.configure(health_check_config, ServiceHealthCheckConfigArgs, True) __props__.__dict__["health_check_config"] = health_check_config + health_check_custom_config = _utilities.configure(health_check_custom_config, ServiceHealthCheckCustomConfigArgs, True) __props__.__dict__["health_check_custom_config"] = health_check_custom_config __props__.__dict__["name"] = name __props__.__dict__["namespace_id"] = namespace_id diff --git a/sdk/python/pulumi_aws/servicequotas/_inputs.py b/sdk/python/pulumi_aws/servicequotas/_inputs.py index c790756d1b7..81333813646 100644 --- a/sdk/python/pulumi_aws/servicequotas/_inputs.py +++ b/sdk/python/pulumi_aws/servicequotas/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,14 +28,39 @@ def __init__(__self__, *, :param pulumi.Input[str] metric_namespace: The namespace of the metric. :param pulumi.Input[str] metric_statistic_recommendation: The metric statistic that AWS recommend you use when determining quota usage. """ + ServiceQuotaUsageMetricArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_dimensions=metric_dimensions, + metric_name=metric_name, + metric_namespace=metric_namespace, + metric_statistic_recommendation=metric_statistic_recommendation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceQuotaUsageMetricMetricDimensionArgs']]]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + metric_namespace: Optional[pulumi.Input[str]] = None, + metric_statistic_recommendation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_dimensions is None and 'metricDimensions' in kwargs: + metric_dimensions = kwargs['metricDimensions'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_namespace is None and 'metricNamespace' in kwargs: + metric_namespace = kwargs['metricNamespace'] + if metric_statistic_recommendation is None and 'metricStatisticRecommendation' in kwargs: + metric_statistic_recommendation = kwargs['metricStatisticRecommendation'] + if metric_dimensions is not None: - pulumi.set(__self__, "metric_dimensions", metric_dimensions) + _setter("metric_dimensions", metric_dimensions) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if metric_namespace is not None: - pulumi.set(__self__, "metric_namespace", metric_namespace) + _setter("metric_namespace", metric_namespace) if metric_statistic_recommendation is not None: - pulumi.set(__self__, "metric_statistic_recommendation", metric_statistic_recommendation) + _setter("metric_statistic_recommendation", metric_statistic_recommendation) @property @pulumi.getter(name="metricDimensions") @@ -93,14 +118,33 @@ def __init__(__self__, *, resource: Optional[pulumi.Input[str]] = None, service: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None): + ServiceQuotaUsageMetricMetricDimensionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + class_=class_, + resource=resource, + service=service, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + class_: Optional[pulumi.Input[str]] = None, + resource: Optional[pulumi.Input[str]] = None, + service: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if class_ is None and 'class' in kwargs: + class_ = kwargs['class'] + if class_ is not None: - pulumi.set(__self__, "class_", class_) + _setter("class_", class_) if resource is not None: - pulumi.set(__self__, "resource", resource) + _setter("resource", resource) if service is not None: - pulumi.set(__self__, "service", service) + _setter("service", service) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="class") @@ -160,14 +204,65 @@ def __init__(__self__, *, :param str unit: Unit of measurement. :param float value: (Required) The new, increased value for the quota. """ - pulumi.set(__self__, "global_quota", global_quota) - pulumi.set(__self__, "quota_code", quota_code) - pulumi.set(__self__, "quota_name", quota_name) - pulumi.set(__self__, "region", region) - pulumi.set(__self__, "service_code", service_code) - pulumi.set(__self__, "service_name", service_name) - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetTemplatesTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_quota=global_quota, + quota_code=quota_code, + quota_name=quota_name, + region=region, + service_code=service_code, + service_name=service_name, + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_quota: Optional[bool] = None, + quota_code: Optional[str] = None, + quota_name: Optional[str] = None, + region: Optional[str] = None, + service_code: Optional[str] = None, + service_name: Optional[str] = None, + unit: Optional[str] = None, + value: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_quota is None and 'globalQuota' in kwargs: + global_quota = kwargs['globalQuota'] + if global_quota is None: + raise TypeError("Missing 'global_quota' argument") + if quota_code is None and 'quotaCode' in kwargs: + quota_code = kwargs['quotaCode'] + if quota_code is None: + raise TypeError("Missing 'quota_code' argument") + if quota_name is None and 'quotaName' in kwargs: + quota_name = kwargs['quotaName'] + if quota_name is None: + raise TypeError("Missing 'quota_name' argument") + if region is None: + raise TypeError("Missing 'region' argument") + if service_code is None and 'serviceCode' in kwargs: + service_code = kwargs['serviceCode'] + if service_code is None: + raise TypeError("Missing 'service_code' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("global_quota", global_quota) + _setter("quota_code", quota_code) + _setter("quota_name", quota_name) + _setter("region", region) + _setter("service_code", service_code) + _setter("service_name", service_name) + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter(name="globalQuota") diff --git a/sdk/python/pulumi_aws/servicequotas/get_service.py b/sdk/python/pulumi_aws/servicequotas/get_service.py index 382f58146cd..217fec0cd7e 100644 --- a/sdk/python/pulumi_aws/servicequotas/get_service.py +++ b/sdk/python/pulumi_aws/servicequotas/get_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/servicequotas/get_service_quota.py b/sdk/python/pulumi_aws/servicequotas/get_service_quota.py index fe7c2c6552e..edb204c7036 100644 --- a/sdk/python/pulumi_aws/servicequotas/get_service_quota.py +++ b/sdk/python/pulumi_aws/servicequotas/get_service_quota.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/servicequotas/get_templates.py b/sdk/python/pulumi_aws/servicequotas/get_templates.py index 48cf3871de0..dc6e3122905 100644 --- a/sdk/python/pulumi_aws/servicequotas/get_templates.py +++ b/sdk/python/pulumi_aws/servicequotas/get_templates.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/servicequotas/outputs.py b/sdk/python/pulumi_aws/servicequotas/outputs.py index 37770d1a142..abbb2356e68 100644 --- a/sdk/python/pulumi_aws/servicequotas/outputs.py +++ b/sdk/python/pulumi_aws/servicequotas/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -54,14 +54,39 @@ def __init__(__self__, *, :param str metric_namespace: The namespace of the metric. :param str metric_statistic_recommendation: The metric statistic that AWS recommend you use when determining quota usage. """ + ServiceQuotaUsageMetric._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_dimensions=metric_dimensions, + metric_name=metric_name, + metric_namespace=metric_namespace, + metric_statistic_recommendation=metric_statistic_recommendation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_dimensions: Optional[Sequence['outputs.ServiceQuotaUsageMetricMetricDimension']] = None, + metric_name: Optional[str] = None, + metric_namespace: Optional[str] = None, + metric_statistic_recommendation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_dimensions is None and 'metricDimensions' in kwargs: + metric_dimensions = kwargs['metricDimensions'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_namespace is None and 'metricNamespace' in kwargs: + metric_namespace = kwargs['metricNamespace'] + if metric_statistic_recommendation is None and 'metricStatisticRecommendation' in kwargs: + metric_statistic_recommendation = kwargs['metricStatisticRecommendation'] + if metric_dimensions is not None: - pulumi.set(__self__, "metric_dimensions", metric_dimensions) + _setter("metric_dimensions", metric_dimensions) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if metric_namespace is not None: - pulumi.set(__self__, "metric_namespace", metric_namespace) + _setter("metric_namespace", metric_namespace) if metric_statistic_recommendation is not None: - pulumi.set(__self__, "metric_statistic_recommendation", metric_statistic_recommendation) + _setter("metric_statistic_recommendation", metric_statistic_recommendation) @property @pulumi.getter(name="metricDimensions") @@ -120,14 +145,33 @@ def __init__(__self__, *, resource: Optional[str] = None, service: Optional[str] = None, type: Optional[str] = None): + ServiceQuotaUsageMetricMetricDimension._configure( + lambda key, value: pulumi.set(__self__, key, value), + class_=class_, + resource=resource, + service=service, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + class_: Optional[str] = None, + resource: Optional[str] = None, + service: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if class_ is None and 'class' in kwargs: + class_ = kwargs['class'] + if class_ is not None: - pulumi.set(__self__, "class_", class_) + _setter("class_", class_) if resource is not None: - pulumi.set(__self__, "resource", resource) + _setter("resource", resource) if service is not None: - pulumi.set(__self__, "service", service) + _setter("service", service) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="class") @@ -163,10 +207,43 @@ def __init__(__self__, *, :param str metric_namespace: The namespace of the metric. :param str metric_statistic_recommendation: The metric statistic that AWS recommend you use when determining quota usage. """ - pulumi.set(__self__, "metric_dimensions", metric_dimensions) - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "metric_namespace", metric_namespace) - pulumi.set(__self__, "metric_statistic_recommendation", metric_statistic_recommendation) + GetServiceQuotaUsageMetricResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_dimensions=metric_dimensions, + metric_name=metric_name, + metric_namespace=metric_namespace, + metric_statistic_recommendation=metric_statistic_recommendation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_dimensions: Optional[Sequence['outputs.GetServiceQuotaUsageMetricMetricDimensionResult']] = None, + metric_name: Optional[str] = None, + metric_namespace: Optional[str] = None, + metric_statistic_recommendation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_dimensions is None and 'metricDimensions' in kwargs: + metric_dimensions = kwargs['metricDimensions'] + if metric_dimensions is None: + raise TypeError("Missing 'metric_dimensions' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if metric_namespace is None and 'metricNamespace' in kwargs: + metric_namespace = kwargs['metricNamespace'] + if metric_namespace is None: + raise TypeError("Missing 'metric_namespace' argument") + if metric_statistic_recommendation is None and 'metricStatisticRecommendation' in kwargs: + metric_statistic_recommendation = kwargs['metricStatisticRecommendation'] + if metric_statistic_recommendation is None: + raise TypeError("Missing 'metric_statistic_recommendation' argument") + + _setter("metric_dimensions", metric_dimensions) + _setter("metric_name", metric_name) + _setter("metric_namespace", metric_namespace) + _setter("metric_statistic_recommendation", metric_statistic_recommendation) @property @pulumi.getter(name="metricDimensions") @@ -208,10 +285,37 @@ def __init__(__self__, *, resource: str, service: str, type: str): - pulumi.set(__self__, "class_", class_) - pulumi.set(__self__, "resource", resource) - pulumi.set(__self__, "service", service) - pulumi.set(__self__, "type", type) + GetServiceQuotaUsageMetricMetricDimensionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + class_=class_, + resource=resource, + service=service, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + class_: Optional[str] = None, + resource: Optional[str] = None, + service: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if class_ is None and 'class' in kwargs: + class_ = kwargs['class'] + if class_ is None: + raise TypeError("Missing 'class_' argument") + if resource is None: + raise TypeError("Missing 'resource' argument") + if service is None: + raise TypeError("Missing 'service' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("class_", class_) + _setter("resource", resource) + _setter("service", service) + _setter("type", type) @property @pulumi.getter(name="class") @@ -255,14 +359,65 @@ def __init__(__self__, *, :param str unit: Unit of measurement. :param float value: (Required) The new, increased value for the quota. """ - pulumi.set(__self__, "global_quota", global_quota) - pulumi.set(__self__, "quota_code", quota_code) - pulumi.set(__self__, "quota_name", quota_name) - pulumi.set(__self__, "region", region) - pulumi.set(__self__, "service_code", service_code) - pulumi.set(__self__, "service_name", service_name) - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + GetTemplatesTemplateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_quota=global_quota, + quota_code=quota_code, + quota_name=quota_name, + region=region, + service_code=service_code, + service_name=service_name, + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + global_quota: Optional[bool] = None, + quota_code: Optional[str] = None, + quota_name: Optional[str] = None, + region: Optional[str] = None, + service_code: Optional[str] = None, + service_name: Optional[str] = None, + unit: Optional[str] = None, + value: Optional[float] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_quota is None and 'globalQuota' in kwargs: + global_quota = kwargs['globalQuota'] + if global_quota is None: + raise TypeError("Missing 'global_quota' argument") + if quota_code is None and 'quotaCode' in kwargs: + quota_code = kwargs['quotaCode'] + if quota_code is None: + raise TypeError("Missing 'quota_code' argument") + if quota_name is None and 'quotaName' in kwargs: + quota_name = kwargs['quotaName'] + if quota_name is None: + raise TypeError("Missing 'quota_name' argument") + if region is None: + raise TypeError("Missing 'region' argument") + if service_code is None and 'serviceCode' in kwargs: + service_code = kwargs['serviceCode'] + if service_code is None: + raise TypeError("Missing 'service_code' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + if unit is None: + raise TypeError("Missing 'unit' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("global_quota", global_quota) + _setter("quota_code", quota_code) + _setter("quota_name", quota_name) + _setter("region", region) + _setter("service_code", service_code) + _setter("service_name", service_name) + _setter("unit", unit) + _setter("value", value) @property @pulumi.getter(name="globalQuota") diff --git a/sdk/python/pulumi_aws/servicequotas/service_quota.py b/sdk/python/pulumi_aws/servicequotas/service_quota.py index 2f491d7756b..13af725d145 100644 --- a/sdk/python/pulumi_aws/servicequotas/service_quota.py +++ b/sdk/python/pulumi_aws/servicequotas/service_quota.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,34 @@ def __init__(__self__, *, :param pulumi.Input[str] service_code: Code of the service to track. For example: `vpc`. Available values can be found with the [AWS CLI service-quotas list-services command](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/list-services.html). :param pulumi.Input[float] value: Float specifying the desired value for the service quota. If the desired value is higher than the current value, a quota increase request is submitted. When a known request is submitted and pending, the value reflects the desired value of the pending request. """ - pulumi.set(__self__, "quota_code", quota_code) - pulumi.set(__self__, "service_code", service_code) - pulumi.set(__self__, "value", value) + ServiceQuotaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + quota_code=quota_code, + service_code=service_code, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + quota_code: Optional[pulumi.Input[str]] = None, + service_code: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if quota_code is None and 'quotaCode' in kwargs: + quota_code = kwargs['quotaCode'] + if quota_code is None: + raise TypeError("Missing 'quota_code' argument") + if service_code is None and 'serviceCode' in kwargs: + service_code = kwargs['serviceCode'] + if service_code is None: + raise TypeError("Missing 'service_code' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("quota_code", quota_code) + _setter("service_code", service_code) + _setter("value", value) @property @pulumi.getter(name="quotaCode") @@ -92,28 +117,75 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ServiceQuotaUsageMetricArgs']]] usage_metrics: Information about the measurement. :param pulumi.Input[float] value: Float specifying the desired value for the service quota. If the desired value is higher than the current value, a quota increase request is submitted. When a known request is submitted and pending, the value reflects the desired value of the pending request. """ + _ServiceQuotaState._configure( + lambda key, value: pulumi.set(__self__, key, value), + adjustable=adjustable, + arn=arn, + default_value=default_value, + quota_code=quota_code, + quota_name=quota_name, + request_id=request_id, + request_status=request_status, + service_code=service_code, + service_name=service_name, + usage_metrics=usage_metrics, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + adjustable: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + default_value: Optional[pulumi.Input[float]] = None, + quota_code: Optional[pulumi.Input[str]] = None, + quota_name: Optional[pulumi.Input[str]] = None, + request_id: Optional[pulumi.Input[str]] = None, + request_status: Optional[pulumi.Input[str]] = None, + service_code: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + usage_metrics: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceQuotaUsageMetricArgs']]]] = None, + value: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + if quota_code is None and 'quotaCode' in kwargs: + quota_code = kwargs['quotaCode'] + if quota_name is None and 'quotaName' in kwargs: + quota_name = kwargs['quotaName'] + if request_id is None and 'requestId' in kwargs: + request_id = kwargs['requestId'] + if request_status is None and 'requestStatus' in kwargs: + request_status = kwargs['requestStatus'] + if service_code is None and 'serviceCode' in kwargs: + service_code = kwargs['serviceCode'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if usage_metrics is None and 'usageMetrics' in kwargs: + usage_metrics = kwargs['usageMetrics'] + if adjustable is not None: - pulumi.set(__self__, "adjustable", adjustable) + _setter("adjustable", adjustable) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_value is not None: - pulumi.set(__self__, "default_value", default_value) + _setter("default_value", default_value) if quota_code is not None: - pulumi.set(__self__, "quota_code", quota_code) + _setter("quota_code", quota_code) if quota_name is not None: - pulumi.set(__self__, "quota_name", quota_name) + _setter("quota_name", quota_name) if request_id is not None: - pulumi.set(__self__, "request_id", request_id) + _setter("request_id", request_id) if request_status is not None: - pulumi.set(__self__, "request_status", request_status) + _setter("request_status", request_status) if service_code is not None: - pulumi.set(__self__, "service_code", service_code) + _setter("service_code", service_code) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if usage_metrics is not None: - pulumi.set(__self__, "usage_metrics", usage_metrics) + _setter("usage_metrics", usage_metrics) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -327,6 +399,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceQuotaArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicequotas/template.py b/sdk/python/pulumi_aws/servicequotas/template.py index 6f09a7bc0f5..34cb2f9dc4e 100644 --- a/sdk/python/pulumi_aws/servicequotas/template.py +++ b/sdk/python/pulumi_aws/servicequotas/template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TemplateArgs', 'Template'] @@ -25,10 +25,39 @@ def __init__(__self__, *, :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) + TemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + quota_code=quota_code, + region=region, + service_code=service_code, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if quota_code is None and 'quotaCode' in kwargs: + quota_code = kwargs['quotaCode'] + if quota_code is None: + raise TypeError("Missing 'quota_code' argument") + if region is None: + raise TypeError("Missing 'region' argument") + if service_code is None and 'serviceCode' in kwargs: + service_code = kwargs['serviceCode'] + if service_code is None: + raise TypeError("Missing 'service_code' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("quota_code", quota_code) + _setter("region", region) + _setter("service_code", service_code) + _setter("value", value) @property @pulumi.getter(name="quotaCode") @@ -101,22 +130,57 @@ def __init__(__self__, *, :param pulumi.Input[str] unit: Unit of measurement. :param pulumi.Input[float] value: The new, increased value for the quota. """ + _TemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + global_quota=global_quota, + quota_code=quota_code, + quota_name=quota_name, + region=region, + service_code=service_code, + service_name=service_name, + unit=unit, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], 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, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if global_quota is None and 'globalQuota' in kwargs: + global_quota = kwargs['globalQuota'] + if quota_code is None and 'quotaCode' in kwargs: + quota_code = kwargs['quotaCode'] + if quota_name is None and 'quotaName' in kwargs: + quota_name = kwargs['quotaName'] + if service_code is None and 'serviceCode' in kwargs: + service_code = kwargs['serviceCode'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if global_quota is not None: - pulumi.set(__self__, "global_quota", global_quota) + _setter("global_quota", global_quota) if quota_code is not None: - pulumi.set(__self__, "quota_code", quota_code) + _setter("quota_code", quota_code) if quota_name is not None: - pulumi.set(__self__, "quota_name", quota_name) + _setter("quota_name", quota_name) if region is not None: - pulumi.set(__self__, "region", region) + _setter("region", region) if service_code is not None: - pulumi.set(__self__, "service_code", service_code) + _setter("service_code", service_code) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if unit is not None: - pulumi.set(__self__, "unit", unit) + _setter("unit", unit) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter(name="globalQuota") @@ -302,6 +366,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/servicequotas/template_association.py b/sdk/python/pulumi_aws/servicequotas/template_association.py index 39d741504f5..6405600daf4 100644 --- a/sdk/python/pulumi_aws/servicequotas/template_association.py +++ b/sdk/python/pulumi_aws/servicequotas/template_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TemplateAssociationArgs', 'TemplateAssociation'] @@ -18,8 +18,21 @@ def __init__(__self__, *, """ The set of arguments for constructing a TemplateAssociation resource. """ + TemplateAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + skip_destroy=skip_destroy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + skip_destroy: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) @property @pulumi.getter(name="skipDestroy") @@ -40,10 +53,25 @@ def __init__(__self__, *, Input properties used for looking up and filtering TemplateAssociation resources. :param pulumi.Input[str] status: Association status. Creating this resource will result in an `ASSOCIATED` status, and quota increase requests in the template are automatically applied to new AWS accounts in the organization. """ + _TemplateAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + skip_destroy=skip_destroy, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + skip_destroy: Optional[pulumi.Input[bool]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if skip_destroy is None and 'skipDestroy' in kwargs: + skip_destroy = kwargs['skipDestroy'] + if skip_destroy is not None: - pulumi.set(__self__, "skip_destroy", skip_destroy) + _setter("skip_destroy", skip_destroy) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter(name="skipDestroy") @@ -139,6 +167,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TemplateAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/_inputs.py b/sdk/python/pulumi_aws/ses/_inputs.py index c9ee34ede08..9aead9516a5 100644 --- a/sdk/python/pulumi_aws/ses/_inputs.py +++ b/sdk/python/pulumi_aws/ses/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -31,8 +31,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] tls_policy: Whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is `Require`, messages are only delivered if a TLS connection can be established. If the value is `Optional`, messages can be delivered in plain text if a TLS connection can't be established. Valid values: `Require` or `Optional`. Defaults to `Optional`. """ + ConfigurationSetDeliveryOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls_policy=tls_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls_policy is None and 'tlsPolicy' in kwargs: + tls_policy = kwargs['tlsPolicy'] + if tls_policy is not None: - pulumi.set(__self__, "tls_policy", tls_policy) + _setter("tls_policy", tls_policy) @property @pulumi.getter(name="tlsPolicy") @@ -54,8 +67,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] custom_redirect_domain: Custom subdomain that is used to redirect email recipients to the Amazon SES event tracking domain. """ + ConfigurationSetTrackingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_redirect_domain=custom_redirect_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_redirect_domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_redirect_domain is None and 'customRedirectDomain' in kwargs: + custom_redirect_domain = kwargs['customRedirectDomain'] + if custom_redirect_domain is not None: - pulumi.set(__self__, "custom_redirect_domain", custom_redirect_domain) + _setter("custom_redirect_domain", custom_redirect_domain) @property @pulumi.getter(name="customRedirectDomain") @@ -81,9 +107,36 @@ def __init__(__self__, *, :param pulumi.Input[str] dimension_name: The name for the dimension :param pulumi.Input[str] value_source: The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. """ - pulumi.set(__self__, "default_value", default_value) - pulumi.set(__self__, "dimension_name", dimension_name) - pulumi.set(__self__, "value_source", value_source) + EventDestinationCloudwatchDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_value=default_value, + dimension_name=dimension_name, + value_source=value_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_value: Optional[pulumi.Input[str]] = None, + dimension_name: Optional[pulumi.Input[str]] = None, + value_source: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + if default_value is None: + raise TypeError("Missing 'default_value' argument") + if dimension_name is None and 'dimensionName' in kwargs: + dimension_name = kwargs['dimensionName'] + if dimension_name is None: + raise TypeError("Missing 'dimension_name' argument") + if value_source is None and 'valueSource' in kwargs: + value_source = kwargs['valueSource'] + if value_source is None: + raise TypeError("Missing 'value_source' argument") + + _setter("default_value", default_value) + _setter("dimension_name", dimension_name) + _setter("value_source", value_source) @property @pulumi.getter(name="defaultValue") @@ -131,8 +184,29 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: The ARN of the role that has permissions to access the Kinesis Stream :param pulumi.Input[str] stream_arn: The ARN of the Kinesis Stream """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_arn", stream_arn) + EventDestinationKinesisDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + stream_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("role_arn", role_arn) + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="roleArn") @@ -166,7 +240,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] topic_arn: The ARN of the SNS topic """ - pulumi.set(__self__, "topic_arn", topic_arn) + EventDestinationSnsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="topicArn") @@ -192,9 +281,34 @@ def __init__(__self__, *, :param pulumi.Input[str] header_value: The value of the header to add :param pulumi.Input[int] position: The position of the action in the receipt rule """ - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "header_value", header_value) - pulumi.set(__self__, "position", position) + ReceiptRuleAddHeaderActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_name=header_name, + header_value=header_value, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_name: Optional[pulumi.Input[str]] = None, + header_value: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if header_value is None and 'headerValue' in kwargs: + header_value = kwargs['headerValue'] + if header_value is None: + raise TypeError("Missing 'header_value' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("header_name", header_name) + _setter("header_value", header_value) + _setter("position", position) @property @pulumi.getter(name="headerName") @@ -250,14 +364,49 @@ def __init__(__self__, *, :param pulumi.Input[str] status_code: The RFC 3463 SMTP enhanced status code :param pulumi.Input[str] topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "message", message) - pulumi.set(__self__, "position", position) - pulumi.set(__self__, "sender", sender) - pulumi.set(__self__, "smtp_reply_code", smtp_reply_code) + ReceiptRuleBounceActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + message=message, + position=position, + sender=sender, + smtp_reply_code=smtp_reply_code, + status_code=status_code, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[int]] = None, + sender: Optional[pulumi.Input[str]] = None, + smtp_reply_code: Optional[pulumi.Input[str]] = None, + status_code: Optional[pulumi.Input[str]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message is None: + raise TypeError("Missing 'message' argument") + if position is None: + raise TypeError("Missing 'position' argument") + if sender is None: + raise TypeError("Missing 'sender' argument") + if smtp_reply_code is None and 'smtpReplyCode' in kwargs: + smtp_reply_code = kwargs['smtpReplyCode'] + if smtp_reply_code is None: + raise TypeError("Missing 'smtp_reply_code' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("message", message) + _setter("position", position) + _setter("sender", sender) + _setter("smtp_reply_code", smtp_reply_code) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter @@ -345,12 +494,39 @@ def __init__(__self__, *, :param pulumi.Input[str] invocation_type: `Event` or `RequestResponse` :param pulumi.Input[str] topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "function_arn", function_arn) - pulumi.set(__self__, "position", position) + ReceiptRuleLambdaActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + position=position, + invocation_type=invocation_type, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[int]] = None, + invocation_type: Optional[pulumi.Input[str]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + if position is None: + raise TypeError("Missing 'position' argument") + if invocation_type is None and 'invocationType' in kwargs: + invocation_type = kwargs['invocationType'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("function_arn", function_arn) + _setter("position", position) if invocation_type is not None: - pulumi.set(__self__, "invocation_type", invocation_type) + _setter("invocation_type", invocation_type) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="functionArn") @@ -416,14 +592,45 @@ def __init__(__self__, *, :param pulumi.Input[str] object_key_prefix: The key prefix of the S3 bucket :param pulumi.Input[str] topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "position", position) + ReceiptRuleS3ActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + position=position, + kms_key_arn=kms_key_arn, + object_key_prefix=object_key_prefix, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[int]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + object_key_prefix: Optional[pulumi.Input[str]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if object_key_prefix is None and 'objectKeyPrefix' in kwargs: + object_key_prefix = kwargs['objectKeyPrefix'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("bucket_name", bucket_name) + _setter("position", position) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if object_key_prefix is not None: - pulumi.set(__self__, "object_key_prefix", object_key_prefix) + _setter("object_key_prefix", object_key_prefix) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="bucketName") @@ -497,10 +704,31 @@ def __init__(__self__, *, :param pulumi.Input[str] topic_arn: The ARN of an SNS topic to notify :param pulumi.Input[str] encoding: The encoding to use for the email within the Amazon SNS notification. Default value is `UTF-8`. """ - pulumi.set(__self__, "position", position) - pulumi.set(__self__, "topic_arn", topic_arn) + ReceiptRuleSnsActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + position=position, + topic_arn=topic_arn, + encoding=encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + position: Optional[pulumi.Input[int]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if position is None: + raise TypeError("Missing 'position' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + + _setter("position", position) + _setter("topic_arn", topic_arn) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) @property @pulumi.getter @@ -550,10 +778,31 @@ def __init__(__self__, *, :param pulumi.Input[str] scope: The scope to apply. The only acceptable value is `RuleSet`. :param pulumi.Input[str] topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "position", position) - pulumi.set(__self__, "scope", scope) + ReceiptRuleStopActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + position=position, + scope=scope, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + position: Optional[pulumi.Input[int]] = None, + scope: Optional[pulumi.Input[str]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if position is None: + raise TypeError("Missing 'position' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("position", position) + _setter("scope", scope) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter @@ -603,10 +852,33 @@ def __init__(__self__, *, :param pulumi.Input[int] position: The position of the action in the receipt rule :param pulumi.Input[str] topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "organization_arn", organization_arn) - pulumi.set(__self__, "position", position) + ReceiptRuleWorkmailActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + organization_arn=organization_arn, + position=position, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + organization_arn: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[int]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if organization_arn is None and 'organizationArn' in kwargs: + organization_arn = kwargs['organizationArn'] + if organization_arn is None: + raise TypeError("Missing 'organization_arn' argument") + if position is None: + raise TypeError("Missing 'position' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("organization_arn", organization_arn) + _setter("position", position) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="organizationArn") diff --git a/sdk/python/pulumi_aws/ses/active_receipt_rule_set.py b/sdk/python/pulumi_aws/ses/active_receipt_rule_set.py index aacb450a599..0fc15861939 100644 --- a/sdk/python/pulumi_aws/ses/active_receipt_rule_set.py +++ b/sdk/python/pulumi_aws/ses/active_receipt_rule_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ActiveReceiptRuleSetArgs', 'ActiveReceiptRuleSet'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a ActiveReceiptRuleSet resource. :param pulumi.Input[str] rule_set_name: The name of the rule set """ - pulumi.set(__self__, "rule_set_name", rule_set_name) + ActiveReceiptRuleSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_set_name=rule_set_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_set_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_set_name is None and 'ruleSetName' in kwargs: + rule_set_name = kwargs['ruleSetName'] + if rule_set_name is None: + raise TypeError("Missing 'rule_set_name' argument") + + _setter("rule_set_name", rule_set_name) @property @pulumi.getter(name="ruleSetName") @@ -44,10 +59,25 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The SES receipt rule set ARN. :param pulumi.Input[str] rule_set_name: The name of the rule set """ + _ActiveReceiptRuleSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + rule_set_name=rule_set_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + rule_set_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_set_name is None and 'ruleSetName' in kwargs: + rule_set_name = kwargs['ruleSetName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if rule_set_name is not None: - pulumi.set(__self__, "rule_set_name", rule_set_name) + _setter("rule_set_name", rule_set_name) @property @pulumi.getter @@ -141,6 +171,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ActiveReceiptRuleSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/configuration_set.py b/sdk/python/pulumi_aws/ses/configuration_set.py index dfe33e7948c..13d15778d8b 100644 --- a/sdk/python/pulumi_aws/ses/configuration_set.py +++ b/sdk/python/pulumi_aws/ses/configuration_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,43 @@ def __init__(__self__, *, :param pulumi.Input[bool] sending_enabled: Whether email sending is enabled or disabled for the configuration set. The default value is `true`. :param pulumi.Input['ConfigurationSetTrackingOptionsArgs'] tracking_options: Domain that is used to redirect email recipients to an Amazon SES-operated domain. See below. **NOTE:** This functionality is best effort. """ + ConfigurationSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_options=delivery_options, + name=name, + reputation_metrics_enabled=reputation_metrics_enabled, + sending_enabled=sending_enabled, + tracking_options=tracking_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_options: Optional[pulumi.Input['ConfigurationSetDeliveryOptionsArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + reputation_metrics_enabled: Optional[pulumi.Input[bool]] = None, + sending_enabled: Optional[pulumi.Input[bool]] = None, + tracking_options: Optional[pulumi.Input['ConfigurationSetTrackingOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_options is None and 'deliveryOptions' in kwargs: + delivery_options = kwargs['deliveryOptions'] + if reputation_metrics_enabled is None and 'reputationMetricsEnabled' in kwargs: + reputation_metrics_enabled = kwargs['reputationMetricsEnabled'] + if sending_enabled is None and 'sendingEnabled' in kwargs: + sending_enabled = kwargs['sendingEnabled'] + if tracking_options is None and 'trackingOptions' in kwargs: + tracking_options = kwargs['trackingOptions'] + if delivery_options is not None: - pulumi.set(__self__, "delivery_options", delivery_options) + _setter("delivery_options", delivery_options) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if reputation_metrics_enabled is not None: - pulumi.set(__self__, "reputation_metrics_enabled", reputation_metrics_enabled) + _setter("reputation_metrics_enabled", reputation_metrics_enabled) if sending_enabled is not None: - pulumi.set(__self__, "sending_enabled", sending_enabled) + _setter("sending_enabled", sending_enabled) if tracking_options is not None: - pulumi.set(__self__, "tracking_options", tracking_options) + _setter("tracking_options", tracking_options) @property @pulumi.getter(name="deliveryOptions") @@ -127,20 +154,53 @@ def __init__(__self__, *, :param pulumi.Input[bool] sending_enabled: Whether email sending is enabled or disabled for the configuration set. The default value is `true`. :param pulumi.Input['ConfigurationSetTrackingOptionsArgs'] tracking_options: Domain that is used to redirect email recipients to an Amazon SES-operated domain. See below. **NOTE:** This functionality is best effort. """ + _ConfigurationSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + delivery_options=delivery_options, + last_fresh_start=last_fresh_start, + name=name, + reputation_metrics_enabled=reputation_metrics_enabled, + sending_enabled=sending_enabled, + tracking_options=tracking_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + delivery_options: Optional[pulumi.Input['ConfigurationSetDeliveryOptionsArgs']] = None, + last_fresh_start: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + reputation_metrics_enabled: Optional[pulumi.Input[bool]] = None, + sending_enabled: Optional[pulumi.Input[bool]] = None, + tracking_options: Optional[pulumi.Input['ConfigurationSetTrackingOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_options is None and 'deliveryOptions' in kwargs: + delivery_options = kwargs['deliveryOptions'] + if last_fresh_start is None and 'lastFreshStart' in kwargs: + last_fresh_start = kwargs['lastFreshStart'] + if reputation_metrics_enabled is None and 'reputationMetricsEnabled' in kwargs: + reputation_metrics_enabled = kwargs['reputationMetricsEnabled'] + if sending_enabled is None and 'sendingEnabled' in kwargs: + sending_enabled = kwargs['sendingEnabled'] + if tracking_options is None and 'trackingOptions' in kwargs: + tracking_options = kwargs['trackingOptions'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if delivery_options is not None: - pulumi.set(__self__, "delivery_options", delivery_options) + _setter("delivery_options", delivery_options) if last_fresh_start is not None: - pulumi.set(__self__, "last_fresh_start", last_fresh_start) + _setter("last_fresh_start", last_fresh_start) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if reputation_metrics_enabled is not None: - pulumi.set(__self__, "reputation_metrics_enabled", reputation_metrics_enabled) + _setter("reputation_metrics_enabled", reputation_metrics_enabled) if sending_enabled is not None: - pulumi.set(__self__, "sending_enabled", sending_enabled) + _setter("sending_enabled", sending_enabled) if tracking_options is not None: - pulumi.set(__self__, "tracking_options", tracking_options) + _setter("tracking_options", tracking_options) @property @pulumi.getter @@ -326,6 +386,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConfigurationSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -345,10 +409,12 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ConfigurationSetArgs.__new__(ConfigurationSetArgs) + delivery_options = _utilities.configure(delivery_options, ConfigurationSetDeliveryOptionsArgs, True) __props__.__dict__["delivery_options"] = delivery_options __props__.__dict__["name"] = name __props__.__dict__["reputation_metrics_enabled"] = reputation_metrics_enabled __props__.__dict__["sending_enabled"] = sending_enabled + tracking_options = _utilities.configure(tracking_options, ConfigurationSetTrackingOptionsArgs, True) __props__.__dict__["tracking_options"] = tracking_options __props__.__dict__["arn"] = None __props__.__dict__["last_fresh_start"] = None diff --git a/sdk/python/pulumi_aws/ses/domain_dkim.py b/sdk/python/pulumi_aws/ses/domain_dkim.py index 6e5bf0a166f..c1c66fe343c 100644 --- a/sdk/python/pulumi_aws/ses/domain_dkim.py +++ b/sdk/python/pulumi_aws/ses/domain_dkim.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainDkimArgs', 'DomainDkim'] @@ -19,7 +19,20 @@ def __init__(__self__, *, The set of arguments for constructing a DomainDkim resource. :param pulumi.Input[str] domain: Verified domain name to generate DKIM tokens for. """ - pulumi.set(__self__, "domain", domain) + DomainDkimArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + + _setter("domain", domain) @property @pulumi.getter @@ -49,10 +62,25 @@ def __init__(__self__, *, in the [AWS SES docs](http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim-dns-records.html). :param pulumi.Input[str] domain: Verified domain name to generate DKIM tokens for. """ + _DomainDkimState._configure( + lambda key, value: pulumi.set(__self__, key, value), + dkim_tokens=dkim_tokens, + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dkim_tokens: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dkim_tokens is None and 'dkimTokens' in kwargs: + dkim_tokens = kwargs['dkimTokens'] + if dkim_tokens is not None: - pulumi.set(__self__, "dkim_tokens", dkim_tokens) + _setter("dkim_tokens", dkim_tokens) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) @property @pulumi.getter(name="dkimTokens") @@ -173,6 +201,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainDkimArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/domain_identity.py b/sdk/python/pulumi_aws/ses/domain_identity.py index b47687f660d..de9570a51e6 100644 --- a/sdk/python/pulumi_aws/ses/domain_identity.py +++ b/sdk/python/pulumi_aws/ses/domain_identity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainIdentityArgs', 'DomainIdentity'] @@ -19,7 +19,20 @@ def __init__(__self__, *, The set of arguments for constructing a DomainIdentity resource. :param pulumi.Input[str] domain: The domain name to assign to SES """ - pulumi.set(__self__, "domain", domain) + DomainIdentityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + + _setter("domain", domain) @property @pulumi.getter @@ -53,12 +66,29 @@ def __init__(__self__, *, SES in the [AWS SES docs](http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html). """ + _DomainIdentityState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domain=domain, + verification_token=verification_token, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + verification_token: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if verification_token is None and 'verificationToken' in kwargs: + verification_token = kwargs['verificationToken'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if verification_token is not None: - pulumi.set(__self__, "verification_token", verification_token) + _setter("verification_token", verification_token) @property @pulumi.getter @@ -201,6 +231,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainIdentityArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/domain_identity_verification.py b/sdk/python/pulumi_aws/ses/domain_identity_verification.py index 6fbacd31986..7dff486ea72 100644 --- a/sdk/python/pulumi_aws/ses/domain_identity_verification.py +++ b/sdk/python/pulumi_aws/ses/domain_identity_verification.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainIdentityVerificationArgs', 'DomainIdentityVerification'] @@ -19,7 +19,20 @@ def __init__(__self__, *, The set of arguments for constructing a DomainIdentityVerification resource. :param pulumi.Input[str] domain: The domain name of the SES domain identity to verify. """ - pulumi.set(__self__, "domain", domain) + DomainIdentityVerificationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + + _setter("domain", domain) @property @pulumi.getter @@ -44,10 +57,23 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The ARN of the domain identity. :param pulumi.Input[str] domain: The domain name of the SES domain identity to verify. """ + _DomainIdentityVerificationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + domain=domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) @property @pulumi.getter @@ -153,6 +179,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainIdentityVerificationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/email_identity.py b/sdk/python/pulumi_aws/ses/email_identity.py index cbfa6ca584a..e35aafa5655 100644 --- a/sdk/python/pulumi_aws/ses/email_identity.py +++ b/sdk/python/pulumi_aws/ses/email_identity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EmailIdentityArgs', 'EmailIdentity'] @@ -19,7 +19,20 @@ def __init__(__self__, *, The set of arguments for constructing a EmailIdentity resource. :param pulumi.Input[str] email: The email address to assign to SES. """ - pulumi.set(__self__, "email", email) + EmailIdentityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + email=email, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email is None: + raise TypeError("Missing 'email' argument") + + _setter("email", email) @property @pulumi.getter @@ -44,10 +57,23 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The ARN of the email identity. :param pulumi.Input[str] email: The email address to assign to SES. """ + _EmailIdentityState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + email=email, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if email is not None: - pulumi.set(__self__, "email", email) + _setter("email", email) @property @pulumi.getter @@ -141,6 +167,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EmailIdentityArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/event_destination.py b/sdk/python/pulumi_aws/ses/event_destination.py index ce18eb4e9d4..2e9e374e971 100644 --- a/sdk/python/pulumi_aws/ses/event_destination.py +++ b/sdk/python/pulumi_aws/ses/event_destination.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,18 +35,55 @@ def __init__(__self__, *, > **NOTE:** You can specify `"cloudwatch_destination"` or `"kinesis_destination"` but not both """ - pulumi.set(__self__, "configuration_set_name", configuration_set_name) - pulumi.set(__self__, "matching_types", matching_types) + EventDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_set_name=configuration_set_name, + matching_types=matching_types, + cloudwatch_destinations=cloudwatch_destinations, + enabled=enabled, + kinesis_destination=kinesis_destination, + name=name, + sns_destination=sns_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_set_name: Optional[pulumi.Input[str]] = None, + matching_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cloudwatch_destinations: Optional[pulumi.Input[Sequence[pulumi.Input['EventDestinationCloudwatchDestinationArgs']]]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + kinesis_destination: Optional[pulumi.Input['EventDestinationKinesisDestinationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + sns_destination: Optional[pulumi.Input['EventDestinationSnsDestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_set_name is None and 'configurationSetName' in kwargs: + configuration_set_name = kwargs['configurationSetName'] + if configuration_set_name is None: + raise TypeError("Missing 'configuration_set_name' argument") + if matching_types is None and 'matchingTypes' in kwargs: + matching_types = kwargs['matchingTypes'] + if matching_types is None: + raise TypeError("Missing 'matching_types' argument") + if cloudwatch_destinations is None and 'cloudwatchDestinations' in kwargs: + cloudwatch_destinations = kwargs['cloudwatchDestinations'] + if kinesis_destination is None and 'kinesisDestination' in kwargs: + kinesis_destination = kwargs['kinesisDestination'] + if sns_destination is None and 'snsDestination' in kwargs: + sns_destination = kwargs['snsDestination'] + + _setter("configuration_set_name", configuration_set_name) + _setter("matching_types", matching_types) if cloudwatch_destinations is not None: - pulumi.set(__self__, "cloudwatch_destinations", cloudwatch_destinations) + _setter("cloudwatch_destinations", cloudwatch_destinations) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if kinesis_destination is not None: - pulumi.set(__self__, "kinesis_destination", kinesis_destination) + _setter("kinesis_destination", kinesis_destination) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sns_destination is not None: - pulumi.set(__self__, "sns_destination", sns_destination) + _setter("sns_destination", sns_destination) @property @pulumi.getter(name="configurationSetName") @@ -159,22 +196,57 @@ def __init__(__self__, *, > **NOTE:** You can specify `"cloudwatch_destination"` or `"kinesis_destination"` but not both """ + _EventDestinationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cloudwatch_destinations=cloudwatch_destinations, + configuration_set_name=configuration_set_name, + enabled=enabled, + kinesis_destination=kinesis_destination, + matching_types=matching_types, + name=name, + sns_destination=sns_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cloudwatch_destinations: Optional[pulumi.Input[Sequence[pulumi.Input['EventDestinationCloudwatchDestinationArgs']]]] = None, + configuration_set_name: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + kinesis_destination: Optional[pulumi.Input['EventDestinationKinesisDestinationArgs']] = None, + matching_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + sns_destination: Optional[pulumi.Input['EventDestinationSnsDestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_destinations is None and 'cloudwatchDestinations' in kwargs: + cloudwatch_destinations = kwargs['cloudwatchDestinations'] + if configuration_set_name is None and 'configurationSetName' in kwargs: + configuration_set_name = kwargs['configurationSetName'] + if kinesis_destination is None and 'kinesisDestination' in kwargs: + kinesis_destination = kwargs['kinesisDestination'] + if matching_types is None and 'matchingTypes' in kwargs: + matching_types = kwargs['matchingTypes'] + if sns_destination is None and 'snsDestination' in kwargs: + sns_destination = kwargs['snsDestination'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cloudwatch_destinations is not None: - pulumi.set(__self__, "cloudwatch_destinations", cloudwatch_destinations) + _setter("cloudwatch_destinations", cloudwatch_destinations) if configuration_set_name is not None: - pulumi.set(__self__, "configuration_set_name", configuration_set_name) + _setter("configuration_set_name", configuration_set_name) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if kinesis_destination is not None: - pulumi.set(__self__, "kinesis_destination", kinesis_destination) + _setter("kinesis_destination", kinesis_destination) if matching_types is not None: - pulumi.set(__self__, "matching_types", matching_types) + _setter("matching_types", matching_types) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sns_destination is not None: - pulumi.set(__self__, "sns_destination", sns_destination) + _setter("sns_destination", sns_destination) @property @pulumi.getter @@ -450,6 +522,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EventDestinationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -476,11 +552,13 @@ def _internal_init(__self__, raise TypeError("Missing required property 'configuration_set_name'") __props__.__dict__["configuration_set_name"] = configuration_set_name __props__.__dict__["enabled"] = enabled + kinesis_destination = _utilities.configure(kinesis_destination, EventDestinationKinesisDestinationArgs, True) __props__.__dict__["kinesis_destination"] = kinesis_destination if matching_types is None and not opts.urn: raise TypeError("Missing required property 'matching_types'") __props__.__dict__["matching_types"] = matching_types __props__.__dict__["name"] = name + sns_destination = _utilities.configure(sns_destination, EventDestinationSnsDestinationArgs, True) __props__.__dict__["sns_destination"] = sns_destination __props__.__dict__["arn"] = None super(EventDestination, __self__).__init__( diff --git a/sdk/python/pulumi_aws/ses/get_active_receipt_rule_set.py b/sdk/python/pulumi_aws/ses/get_active_receipt_rule_set.py index ae712eb0261..764d4aa91f7 100644 --- a/sdk/python/pulumi_aws/ses/get_active_receipt_rule_set.py +++ b/sdk/python/pulumi_aws/ses/get_active_receipt_rule_set.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetActiveReceiptRuleSetResult', 'AwaitableGetActiveReceiptRuleSetResult', 'get_active_receipt_rule_set', + 'get_active_receipt_rule_set_output', ] @pulumi.output_type @@ -88,3 +89,20 @@ def get_active_receipt_rule_set(opts: Optional[pulumi.InvokeOptions] = None) -> arn=pulumi.get(__ret__, 'arn'), id=pulumi.get(__ret__, 'id'), rule_set_name=pulumi.get(__ret__, 'rule_set_name')) + + +@_utilities.lift_output_func(get_active_receipt_rule_set) +def get_active_receipt_rule_set_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetActiveReceiptRuleSetResult]: + """ + Retrieve the active SES receipt rule set + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + main = aws.ses.get_active_receipt_rule_set() + ``` + """ + ... diff --git a/sdk/python/pulumi_aws/ses/get_domain_identity.py b/sdk/python/pulumi_aws/ses/get_domain_identity.py index f7c41601569..68a7c017c71 100644 --- a/sdk/python/pulumi_aws/ses/get_domain_identity.py +++ b/sdk/python/pulumi_aws/ses/get_domain_identity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ses/get_email_identity.py b/sdk/python/pulumi_aws/ses/get_email_identity.py index 4ad40614ea2..0a007bc5aa7 100644 --- a/sdk/python/pulumi_aws/ses/get_email_identity.py +++ b/sdk/python/pulumi_aws/ses/get_email_identity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ses/identity_notification_topic.py b/sdk/python/pulumi_aws/ses/identity_notification_topic.py index 39e7801cf95..9fa32798395 100644 --- a/sdk/python/pulumi_aws/ses/identity_notification_topic.py +++ b/sdk/python/pulumi_aws/ses/identity_notification_topic.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['IdentityNotificationTopicArgs', 'IdentityNotificationTopic'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[bool] include_original_headers: Whether SES should include original email headers in SNS notifications of this type. `false` by default. :param pulumi.Input[str] topic_arn: The Amazon Resource Name (ARN) of the Amazon SNS topic. Can be set to `""` (an empty string) to disable publishing. """ - pulumi.set(__self__, "identity", identity) - pulumi.set(__self__, "notification_type", notification_type) + IdentityNotificationTopicArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity=identity, + notification_type=notification_type, + include_original_headers=include_original_headers, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity: Optional[pulumi.Input[str]] = None, + notification_type: Optional[pulumi.Input[str]] = None, + include_original_headers: Optional[pulumi.Input[bool]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity is None: + raise TypeError("Missing 'identity' argument") + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if notification_type is None: + raise TypeError("Missing 'notification_type' argument") + if include_original_headers is None and 'includeOriginalHeaders' in kwargs: + include_original_headers = kwargs['includeOriginalHeaders'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("identity", identity) + _setter("notification_type", notification_type) if include_original_headers is not None: - pulumi.set(__self__, "include_original_headers", include_original_headers) + _setter("include_original_headers", include_original_headers) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter @@ -95,14 +122,37 @@ def __init__(__self__, *, :param pulumi.Input[str] notification_type: The type of notifications that will be published to the specified Amazon SNS topic. Valid Values: `Bounce`, `Complaint` or `Delivery`. :param pulumi.Input[str] topic_arn: The Amazon Resource Name (ARN) of the Amazon SNS topic. Can be set to `""` (an empty string) to disable publishing. """ + _IdentityNotificationTopicState._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity=identity, + include_original_headers=include_original_headers, + notification_type=notification_type, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity: Optional[pulumi.Input[str]] = None, + include_original_headers: Optional[pulumi.Input[bool]] = None, + notification_type: Optional[pulumi.Input[str]] = None, + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if include_original_headers is None and 'includeOriginalHeaders' in kwargs: + include_original_headers = kwargs['includeOriginalHeaders'] + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if identity is not None: - pulumi.set(__self__, "identity", identity) + _setter("identity", identity) if include_original_headers is not None: - pulumi.set(__self__, "include_original_headers", include_original_headers) + _setter("include_original_headers", include_original_headers) if notification_type is not None: - pulumi.set(__self__, "notification_type", notification_type) + _setter("notification_type", notification_type) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter @@ -234,6 +284,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IdentityNotificationTopicArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/identity_policy.py b/sdk/python/pulumi_aws/ses/identity_policy.py index f8a92ca7374..c0a12c175f5 100644 --- a/sdk/python/pulumi_aws/ses/identity_policy.py +++ b/sdk/python/pulumi_aws/ses/identity_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['IdentityPolicyArgs', 'IdentityPolicy'] @@ -23,10 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: JSON string of the policy. :param pulumi.Input[str] name: Name of the policy. """ - pulumi.set(__self__, "identity", identity) - pulumi.set(__self__, "policy", policy) + IdentityPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity=identity, + policy=policy, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity is None: + raise TypeError("Missing 'identity' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("identity", identity) + _setter("policy", policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -77,12 +96,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the policy. :param pulumi.Input[str] policy: JSON string of the policy. """ + _IdentityPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + identity=identity, + name=name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identity: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identity is not None: - pulumi.set(__self__, "identity", identity) + _setter("identity", identity) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -220,6 +254,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IdentityPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/mail_from.py b/sdk/python/pulumi_aws/ses/mail_from.py index 040b098f20e..656ffa26317 100644 --- a/sdk/python/pulumi_aws/ses/mail_from.py +++ b/sdk/python/pulumi_aws/ses/mail_from.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MailFromArgs', 'MailFrom'] @@ -25,10 +25,33 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] behavior_on_mx_failure: The action that you want Amazon SES to take if it cannot successfully read the required MX record when you send an email. Defaults to `UseDefaultValue`. See the [SES API documentation](https://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityMailFromDomain.html) for more information. """ - pulumi.set(__self__, "domain", domain) - pulumi.set(__self__, "mail_from_domain", mail_from_domain) + MailFromArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain=domain, + mail_from_domain=mail_from_domain, + behavior_on_mx_failure=behavior_on_mx_failure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain: Optional[pulumi.Input[str]] = None, + mail_from_domain: Optional[pulumi.Input[str]] = None, + behavior_on_mx_failure: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain is None: + raise TypeError("Missing 'domain' argument") + if mail_from_domain is None and 'mailFromDomain' in kwargs: + mail_from_domain = kwargs['mailFromDomain'] + if mail_from_domain is None: + raise TypeError("Missing 'mail_from_domain' argument") + if behavior_on_mx_failure is None and 'behaviorOnMxFailure' in kwargs: + behavior_on_mx_failure = kwargs['behaviorOnMxFailure'] + + _setter("domain", domain) + _setter("mail_from_domain", mail_from_domain) if behavior_on_mx_failure is not None: - pulumi.set(__self__, "behavior_on_mx_failure", behavior_on_mx_failure) + _setter("behavior_on_mx_failure", behavior_on_mx_failure) @property @pulumi.getter @@ -83,12 +106,31 @@ def __init__(__self__, *, The following arguments are optional: """ + _MailFromState._configure( + lambda key, value: pulumi.set(__self__, key, value), + behavior_on_mx_failure=behavior_on_mx_failure, + domain=domain, + mail_from_domain=mail_from_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + behavior_on_mx_failure: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + mail_from_domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if behavior_on_mx_failure is None and 'behaviorOnMxFailure' in kwargs: + behavior_on_mx_failure = kwargs['behaviorOnMxFailure'] + if mail_from_domain is None and 'mailFromDomain' in kwargs: + mail_from_domain = kwargs['mailFromDomain'] + if behavior_on_mx_failure is not None: - pulumi.set(__self__, "behavior_on_mx_failure", behavior_on_mx_failure) + _setter("behavior_on_mx_failure", behavior_on_mx_failure) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if mail_from_domain is not None: - pulumi.set(__self__, "mail_from_domain", mail_from_domain) + _setter("mail_from_domain", mail_from_domain) @property @pulumi.getter(name="behaviorOnMxFailure") @@ -270,6 +312,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MailFromArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/outputs.py b/sdk/python/pulumi_aws/ses/outputs.py index 5e7aa08f03c..405b9d355dd 100644 --- a/sdk/python/pulumi_aws/ses/outputs.py +++ b/sdk/python/pulumi_aws/ses/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -48,8 +48,21 @@ def __init__(__self__, *, """ :param str tls_policy: Whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is `Require`, messages are only delivered if a TLS connection can be established. If the value is `Optional`, messages can be delivered in plain text if a TLS connection can't be established. Valid values: `Require` or `Optional`. Defaults to `Optional`. """ + ConfigurationSetDeliveryOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + tls_policy=tls_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tls_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tls_policy is None and 'tlsPolicy' in kwargs: + tls_policy = kwargs['tlsPolicy'] + if tls_policy is not None: - pulumi.set(__self__, "tls_policy", tls_policy) + _setter("tls_policy", tls_policy) @property @pulumi.getter(name="tlsPolicy") @@ -84,8 +97,21 @@ def __init__(__self__, *, """ :param str custom_redirect_domain: Custom subdomain that is used to redirect email recipients to the Amazon SES event tracking domain. """ + ConfigurationSetTrackingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_redirect_domain=custom_redirect_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_redirect_domain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_redirect_domain is None and 'customRedirectDomain' in kwargs: + custom_redirect_domain = kwargs['customRedirectDomain'] + if custom_redirect_domain is not None: - pulumi.set(__self__, "custom_redirect_domain", custom_redirect_domain) + _setter("custom_redirect_domain", custom_redirect_domain) @property @pulumi.getter(name="customRedirectDomain") @@ -128,9 +154,36 @@ def __init__(__self__, *, :param str dimension_name: The name for the dimension :param str value_source: The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. """ - pulumi.set(__self__, "default_value", default_value) - pulumi.set(__self__, "dimension_name", dimension_name) - pulumi.set(__self__, "value_source", value_source) + EventDestinationCloudwatchDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_value=default_value, + dimension_name=dimension_name, + value_source=value_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_value: Optional[str] = None, + dimension_name: Optional[str] = None, + value_source: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + if default_value is None: + raise TypeError("Missing 'default_value' argument") + if dimension_name is None and 'dimensionName' in kwargs: + dimension_name = kwargs['dimensionName'] + if dimension_name is None: + raise TypeError("Missing 'dimension_name' argument") + if value_source is None and 'valueSource' in kwargs: + value_source = kwargs['valueSource'] + if value_source is None: + raise TypeError("Missing 'value_source' argument") + + _setter("default_value", default_value) + _setter("dimension_name", dimension_name) + _setter("value_source", value_source) @property @pulumi.getter(name="defaultValue") @@ -185,8 +238,29 @@ def __init__(__self__, *, :param str role_arn: The ARN of the role that has permissions to access the Kinesis Stream :param str stream_arn: The ARN of the Kinesis Stream """ - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "stream_arn", stream_arn) + EventDestinationKinesisDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + stream_arn=stream_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[str] = None, + stream_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if stream_arn is None and 'streamArn' in kwargs: + stream_arn = kwargs['streamArn'] + if stream_arn is None: + raise TypeError("Missing 'stream_arn' argument") + + _setter("role_arn", role_arn) + _setter("stream_arn", stream_arn) @property @pulumi.getter(name="roleArn") @@ -229,7 +303,22 @@ def __init__(__self__, *, """ :param str topic_arn: The ARN of the SNS topic """ - pulumi.set(__self__, "topic_arn", topic_arn) + EventDestinationSnsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="topicArn") @@ -270,9 +359,34 @@ def __init__(__self__, *, :param str header_value: The value of the header to add :param int position: The position of the action in the receipt rule """ - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "header_value", header_value) - pulumi.set(__self__, "position", position) + ReceiptRuleAddHeaderAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_name=header_name, + header_value=header_value, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_name: Optional[str] = None, + header_value: Optional[str] = None, + position: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if header_value is None and 'headerValue' in kwargs: + header_value = kwargs['headerValue'] + if header_value is None: + raise TypeError("Missing 'header_value' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("header_name", header_name) + _setter("header_value", header_value) + _setter("position", position) @property @pulumi.getter(name="headerName") @@ -337,14 +451,49 @@ def __init__(__self__, *, :param str status_code: The RFC 3463 SMTP enhanced status code :param str topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "message", message) - pulumi.set(__self__, "position", position) - pulumi.set(__self__, "sender", sender) - pulumi.set(__self__, "smtp_reply_code", smtp_reply_code) + ReceiptRuleBounceAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + message=message, + position=position, + sender=sender, + smtp_reply_code=smtp_reply_code, + status_code=status_code, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + message: Optional[str] = None, + position: Optional[int] = None, + sender: Optional[str] = None, + smtp_reply_code: Optional[str] = None, + status_code: Optional[str] = None, + topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if message is None: + raise TypeError("Missing 'message' argument") + if position is None: + raise TypeError("Missing 'position' argument") + if sender is None: + raise TypeError("Missing 'sender' argument") + if smtp_reply_code is None and 'smtpReplyCode' in kwargs: + smtp_reply_code = kwargs['smtpReplyCode'] + if smtp_reply_code is None: + raise TypeError("Missing 'smtp_reply_code' argument") + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("message", message) + _setter("position", position) + _setter("sender", sender) + _setter("smtp_reply_code", smtp_reply_code) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter @@ -429,12 +578,39 @@ def __init__(__self__, *, :param str invocation_type: `Event` or `RequestResponse` :param str topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "function_arn", function_arn) - pulumi.set(__self__, "position", position) + ReceiptRuleLambdaAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + function_arn=function_arn, + position=position, + invocation_type=invocation_type, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + function_arn: Optional[str] = None, + position: Optional[int] = None, + invocation_type: Optional[str] = None, + topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if function_arn is None and 'functionArn' in kwargs: + function_arn = kwargs['functionArn'] + if function_arn is None: + raise TypeError("Missing 'function_arn' argument") + if position is None: + raise TypeError("Missing 'position' argument") + if invocation_type is None and 'invocationType' in kwargs: + invocation_type = kwargs['invocationType'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("function_arn", function_arn) + _setter("position", position) if invocation_type is not None: - pulumi.set(__self__, "invocation_type", invocation_type) + _setter("invocation_type", invocation_type) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="functionArn") @@ -507,14 +683,45 @@ def __init__(__self__, *, :param str object_key_prefix: The key prefix of the S3 bucket :param str topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "position", position) + ReceiptRuleS3Action._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + position=position, + kms_key_arn=kms_key_arn, + object_key_prefix=object_key_prefix, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + position: Optional[int] = None, + kms_key_arn: Optional[str] = None, + object_key_prefix: Optional[str] = None, + topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if object_key_prefix is None and 'objectKeyPrefix' in kwargs: + object_key_prefix = kwargs['objectKeyPrefix'] + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("bucket_name", bucket_name) + _setter("position", position) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if object_key_prefix is not None: - pulumi.set(__self__, "object_key_prefix", object_key_prefix) + _setter("object_key_prefix", object_key_prefix) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="bucketName") @@ -585,10 +792,31 @@ def __init__(__self__, *, :param str topic_arn: The ARN of an SNS topic to notify :param str encoding: The encoding to use for the email within the Amazon SNS notification. Default value is `UTF-8`. """ - pulumi.set(__self__, "position", position) - pulumi.set(__self__, "topic_arn", topic_arn) + ReceiptRuleSnsAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + position=position, + topic_arn=topic_arn, + encoding=encoding, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + position: Optional[int] = None, + topic_arn: Optional[str] = None, + encoding: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if position is None: + raise TypeError("Missing 'position' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + + _setter("position", position) + _setter("topic_arn", topic_arn) if encoding is not None: - pulumi.set(__self__, "encoding", encoding) + _setter("encoding", encoding) @property @pulumi.getter @@ -643,10 +871,31 @@ def __init__(__self__, *, :param str scope: The scope to apply. The only acceptable value is `RuleSet`. :param str topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "position", position) - pulumi.set(__self__, "scope", scope) + ReceiptRuleStopAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + position=position, + scope=scope, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + position: Optional[int] = None, + scope: Optional[str] = None, + topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if position is None: + raise TypeError("Missing 'position' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("position", position) + _setter("scope", scope) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter @@ -703,10 +952,33 @@ def __init__(__self__, *, :param int position: The position of the action in the receipt rule :param str topic_arn: The ARN of an SNS topic to notify """ - pulumi.set(__self__, "organization_arn", organization_arn) - pulumi.set(__self__, "position", position) + ReceiptRuleWorkmailAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + organization_arn=organization_arn, + position=position, + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + organization_arn: Optional[str] = None, + position: Optional[int] = None, + topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if organization_arn is None and 'organizationArn' in kwargs: + organization_arn = kwargs['organizationArn'] + if organization_arn is None: + raise TypeError("Missing 'organization_arn' argument") + if position is None: + raise TypeError("Missing 'position' argument") + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + + _setter("organization_arn", organization_arn) + _setter("position", position) if topic_arn is not None: - pulumi.set(__self__, "topic_arn", topic_arn) + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="organizationArn") diff --git a/sdk/python/pulumi_aws/ses/receipt_filter.py b/sdk/python/pulumi_aws/ses/receipt_filter.py index e76cd631c86..1197a18697a 100644 --- a/sdk/python/pulumi_aws/ses/receipt_filter.py +++ b/sdk/python/pulumi_aws/ses/receipt_filter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ReceiptFilterArgs', 'ReceiptFilter'] @@ -23,10 +23,29 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: Block or Allow :param pulumi.Input[str] name: The name of the filter """ - pulumi.set(__self__, "cidr", cidr) - pulumi.set(__self__, "policy", policy) + ReceiptFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cidr=cidr, + policy=policy, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cidr: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr is None: + raise TypeError("Missing 'cidr' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("cidr", cidr) + _setter("policy", policy) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -79,14 +98,31 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the filter :param pulumi.Input[str] policy: Block or Allow """ + _ReceiptFilterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cidr=cidr, + name=name, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cidr: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cidr is not None: - pulumi.set(__self__, "cidr", cidr) + _setter("cidr", cidr) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -212,6 +248,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReceiptFilterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/receipt_rule.py b/sdk/python/pulumi_aws/ses/receipt_rule.py index a3756031f57..addab731a47 100644 --- a/sdk/python/pulumi_aws/ses/receipt_rule.py +++ b/sdk/python/pulumi_aws/ses/receipt_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -47,33 +47,92 @@ def __init__(__self__, *, :param pulumi.Input[str] tls_policy: `Require` or `Optional` :param pulumi.Input[Sequence[pulumi.Input['ReceiptRuleWorkmailActionArgs']]] workmail_actions: A list of WorkMail Action blocks. Documented below. """ - pulumi.set(__self__, "rule_set_name", rule_set_name) + ReceiptRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_set_name=rule_set_name, + add_header_actions=add_header_actions, + after=after, + bounce_actions=bounce_actions, + enabled=enabled, + lambda_actions=lambda_actions, + name=name, + recipients=recipients, + s3_actions=s3_actions, + scan_enabled=scan_enabled, + sns_actions=sns_actions, + stop_actions=stop_actions, + tls_policy=tls_policy, + workmail_actions=workmail_actions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_set_name: Optional[pulumi.Input[str]] = None, + add_header_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleAddHeaderActionArgs']]]] = None, + after: Optional[pulumi.Input[str]] = None, + bounce_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleBounceActionArgs']]]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + lambda_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleLambdaActionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + recipients: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleS3ActionArgs']]]] = None, + scan_enabled: Optional[pulumi.Input[bool]] = None, + sns_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleSnsActionArgs']]]] = None, + stop_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleStopActionArgs']]]] = None, + tls_policy: Optional[pulumi.Input[str]] = None, + workmail_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleWorkmailActionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_set_name is None and 'ruleSetName' in kwargs: + rule_set_name = kwargs['ruleSetName'] + if rule_set_name is None: + raise TypeError("Missing 'rule_set_name' argument") + if add_header_actions is None and 'addHeaderActions' in kwargs: + add_header_actions = kwargs['addHeaderActions'] + if bounce_actions is None and 'bounceActions' in kwargs: + bounce_actions = kwargs['bounceActions'] + if lambda_actions is None and 'lambdaActions' in kwargs: + lambda_actions = kwargs['lambdaActions'] + if s3_actions is None and 's3Actions' in kwargs: + s3_actions = kwargs['s3Actions'] + if scan_enabled is None and 'scanEnabled' in kwargs: + scan_enabled = kwargs['scanEnabled'] + if sns_actions is None and 'snsActions' in kwargs: + sns_actions = kwargs['snsActions'] + if stop_actions is None and 'stopActions' in kwargs: + stop_actions = kwargs['stopActions'] + if tls_policy is None and 'tlsPolicy' in kwargs: + tls_policy = kwargs['tlsPolicy'] + if workmail_actions is None and 'workmailActions' in kwargs: + workmail_actions = kwargs['workmailActions'] + + _setter("rule_set_name", rule_set_name) if add_header_actions is not None: - pulumi.set(__self__, "add_header_actions", add_header_actions) + _setter("add_header_actions", add_header_actions) if after is not None: - pulumi.set(__self__, "after", after) + _setter("after", after) if bounce_actions is not None: - pulumi.set(__self__, "bounce_actions", bounce_actions) + _setter("bounce_actions", bounce_actions) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if lambda_actions is not None: - pulumi.set(__self__, "lambda_actions", lambda_actions) + _setter("lambda_actions", lambda_actions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recipients is not None: - pulumi.set(__self__, "recipients", recipients) + _setter("recipients", recipients) if s3_actions is not None: - pulumi.set(__self__, "s3_actions", s3_actions) + _setter("s3_actions", s3_actions) if scan_enabled is not None: - pulumi.set(__self__, "scan_enabled", scan_enabled) + _setter("scan_enabled", scan_enabled) if sns_actions is not None: - pulumi.set(__self__, "sns_actions", sns_actions) + _setter("sns_actions", sns_actions) if stop_actions is not None: - pulumi.set(__self__, "stop_actions", stop_actions) + _setter("stop_actions", stop_actions) if tls_policy is not None: - pulumi.set(__self__, "tls_policy", tls_policy) + _setter("tls_policy", tls_policy) if workmail_actions is not None: - pulumi.set(__self__, "workmail_actions", workmail_actions) + _setter("workmail_actions", workmail_actions) @property @pulumi.getter(name="ruleSetName") @@ -280,36 +339,95 @@ def __init__(__self__, *, :param pulumi.Input[str] tls_policy: `Require` or `Optional` :param pulumi.Input[Sequence[pulumi.Input['ReceiptRuleWorkmailActionArgs']]] workmail_actions: A list of WorkMail Action blocks. Documented below. """ + _ReceiptRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + add_header_actions=add_header_actions, + after=after, + arn=arn, + bounce_actions=bounce_actions, + enabled=enabled, + lambda_actions=lambda_actions, + name=name, + recipients=recipients, + rule_set_name=rule_set_name, + s3_actions=s3_actions, + scan_enabled=scan_enabled, + sns_actions=sns_actions, + stop_actions=stop_actions, + tls_policy=tls_policy, + workmail_actions=workmail_actions, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + add_header_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleAddHeaderActionArgs']]]] = None, + after: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + bounce_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleBounceActionArgs']]]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + lambda_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleLambdaActionArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + recipients: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + rule_set_name: Optional[pulumi.Input[str]] = None, + s3_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleS3ActionArgs']]]] = None, + scan_enabled: Optional[pulumi.Input[bool]] = None, + sns_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleSnsActionArgs']]]] = None, + stop_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleStopActionArgs']]]] = None, + tls_policy: Optional[pulumi.Input[str]] = None, + workmail_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ReceiptRuleWorkmailActionArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if add_header_actions is None and 'addHeaderActions' in kwargs: + add_header_actions = kwargs['addHeaderActions'] + if bounce_actions is None and 'bounceActions' in kwargs: + bounce_actions = kwargs['bounceActions'] + if lambda_actions is None and 'lambdaActions' in kwargs: + lambda_actions = kwargs['lambdaActions'] + if rule_set_name is None and 'ruleSetName' in kwargs: + rule_set_name = kwargs['ruleSetName'] + if s3_actions is None and 's3Actions' in kwargs: + s3_actions = kwargs['s3Actions'] + if scan_enabled is None and 'scanEnabled' in kwargs: + scan_enabled = kwargs['scanEnabled'] + if sns_actions is None and 'snsActions' in kwargs: + sns_actions = kwargs['snsActions'] + if stop_actions is None and 'stopActions' in kwargs: + stop_actions = kwargs['stopActions'] + if tls_policy is None and 'tlsPolicy' in kwargs: + tls_policy = kwargs['tlsPolicy'] + if workmail_actions is None and 'workmailActions' in kwargs: + workmail_actions = kwargs['workmailActions'] + if add_header_actions is not None: - pulumi.set(__self__, "add_header_actions", add_header_actions) + _setter("add_header_actions", add_header_actions) if after is not None: - pulumi.set(__self__, "after", after) + _setter("after", after) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if bounce_actions is not None: - pulumi.set(__self__, "bounce_actions", bounce_actions) + _setter("bounce_actions", bounce_actions) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if lambda_actions is not None: - pulumi.set(__self__, "lambda_actions", lambda_actions) + _setter("lambda_actions", lambda_actions) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if recipients is not None: - pulumi.set(__self__, "recipients", recipients) + _setter("recipients", recipients) if rule_set_name is not None: - pulumi.set(__self__, "rule_set_name", rule_set_name) + _setter("rule_set_name", rule_set_name) if s3_actions is not None: - pulumi.set(__self__, "s3_actions", s3_actions) + _setter("s3_actions", s3_actions) if scan_enabled is not None: - pulumi.set(__self__, "scan_enabled", scan_enabled) + _setter("scan_enabled", scan_enabled) if sns_actions is not None: - pulumi.set(__self__, "sns_actions", sns_actions) + _setter("sns_actions", sns_actions) if stop_actions is not None: - pulumi.set(__self__, "stop_actions", stop_actions) + _setter("stop_actions", stop_actions) if tls_policy is not None: - pulumi.set(__self__, "tls_policy", tls_policy) + _setter("tls_policy", tls_policy) if workmail_actions is not None: - pulumi.set(__self__, "workmail_actions", workmail_actions) + _setter("workmail_actions", workmail_actions) @property @pulumi.getter(name="addHeaderActions") @@ -613,6 +731,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReceiptRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/receipt_rule_set.py b/sdk/python/pulumi_aws/ses/receipt_rule_set.py index c9203d0e562..be849ce68f5 100644 --- a/sdk/python/pulumi_aws/ses/receipt_rule_set.py +++ b/sdk/python/pulumi_aws/ses/receipt_rule_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ReceiptRuleSetArgs', 'ReceiptRuleSet'] @@ -19,7 +19,22 @@ def __init__(__self__, *, The set of arguments for constructing a ReceiptRuleSet resource. :param pulumi.Input[str] rule_set_name: Name of the rule set. """ - pulumi.set(__self__, "rule_set_name", rule_set_name) + ReceiptRuleSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + rule_set_name=rule_set_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + rule_set_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_set_name is None and 'ruleSetName' in kwargs: + rule_set_name = kwargs['ruleSetName'] + if rule_set_name is None: + raise TypeError("Missing 'rule_set_name' argument") + + _setter("rule_set_name", rule_set_name) @property @pulumi.getter(name="ruleSetName") @@ -44,10 +59,25 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: SES receipt rule set ARN. :param pulumi.Input[str] rule_set_name: Name of the rule set. """ + _ReceiptRuleSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + rule_set_name=rule_set_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + rule_set_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if rule_set_name is None and 'ruleSetName' in kwargs: + rule_set_name = kwargs['ruleSetName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if rule_set_name is not None: - pulumi.set(__self__, "rule_set_name", rule_set_name) + _setter("rule_set_name", rule_set_name) @property @pulumi.getter @@ -141,6 +171,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReceiptRuleSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ses/template.py b/sdk/python/pulumi_aws/ses/template.py index 5d78548f9fc..65d419c4285 100644 --- a/sdk/python/pulumi_aws/ses/template.py +++ b/sdk/python/pulumi_aws/ses/template.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TemplateArgs', 'Template'] @@ -25,14 +25,31 @@ def __init__(__self__, *, :param pulumi.Input[str] subject: The subject line of the email. :param pulumi.Input[str] text: The email body that will be visible to recipients whose email clients do not display HTML. Must be less than 500KB in size, including both the text and HTML parts. """ + TemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + html=html, + name=name, + subject=subject, + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + html: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + subject: Optional[pulumi.Input[str]] = None, + text: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if html is not None: - pulumi.set(__self__, "html", html) + _setter("html", html) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subject is not None: - pulumi.set(__self__, "subject", subject) + _setter("subject", subject) if text is not None: - pulumi.set(__self__, "text", text) + _setter("text", text) @property @pulumi.getter @@ -99,16 +116,35 @@ def __init__(__self__, *, :param pulumi.Input[str] subject: The subject line of the email. :param pulumi.Input[str] text: The email body that will be visible to recipients whose email clients do not display HTML. Must be less than 500KB in size, including both the text and HTML parts. """ + _TemplateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + html=html, + name=name, + subject=subject, + text=text, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + html: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + subject: Optional[pulumi.Input[str]] = None, + text: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if html is not None: - pulumi.set(__self__, "html", html) + _setter("html", html) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if subject is not None: - pulumi.set(__self__, "subject", subject) + _setter("subject", subject) if text is not None: - pulumi.set(__self__, "text", text) + _setter("text", text) @property @pulumi.getter @@ -254,6 +290,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TemplateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sesv2/_inputs.py b/sdk/python/pulumi_aws/sesv2/_inputs.py index 7e8a8828ac4..6b894e4cfd0 100644 --- a/sdk/python/pulumi_aws/sesv2/_inputs.py +++ b/sdk/python/pulumi_aws/sesv2/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -37,8 +37,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] engagement_metrics: Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. """ + AccountVdmAttributesDashboardAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + engagement_metrics=engagement_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engagement_metrics: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engagement_metrics is None and 'engagementMetrics' in kwargs: + engagement_metrics = kwargs['engagementMetrics'] + if engagement_metrics is not None: - pulumi.set(__self__, "engagement_metrics", engagement_metrics) + _setter("engagement_metrics", engagement_metrics) @property @pulumi.getter(name="engagementMetrics") @@ -60,8 +73,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] optimized_shared_delivery: Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. """ + AccountVdmAttributesGuardianAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + optimized_shared_delivery=optimized_shared_delivery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + optimized_shared_delivery: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if optimized_shared_delivery is None and 'optimizedSharedDelivery' in kwargs: + optimized_shared_delivery = kwargs['optimizedSharedDelivery'] + if optimized_shared_delivery is not None: - pulumi.set(__self__, "optimized_shared_delivery", optimized_shared_delivery) + _setter("optimized_shared_delivery", optimized_shared_delivery) @property @pulumi.getter(name="optimizedSharedDelivery") @@ -85,10 +111,27 @@ def __init__(__self__, *, :param pulumi.Input[str] sending_pool_name: The name of the dedicated IP pool to associate with the configuration set. :param pulumi.Input[str] tls_policy: Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). Valid values: `REQUIRE`, `OPTIONAL`. """ + ConfigurationSetDeliveryOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sending_pool_name=sending_pool_name, + tls_policy=tls_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sending_pool_name: Optional[pulumi.Input[str]] = None, + tls_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sending_pool_name is None and 'sendingPoolName' in kwargs: + sending_pool_name = kwargs['sendingPoolName'] + if tls_policy is None and 'tlsPolicy' in kwargs: + tls_policy = kwargs['tlsPolicy'] + if sending_pool_name is not None: - pulumi.set(__self__, "sending_pool_name", sending_pool_name) + _setter("sending_pool_name", sending_pool_name) if tls_policy is not None: - pulumi.set(__self__, "tls_policy", tls_policy) + _setter("tls_policy", tls_policy) @property @pulumi.getter(name="sendingPoolName") @@ -134,17 +177,50 @@ def __init__(__self__, *, :param pulumi.Input['ConfigurationSetEventDestinationEventDestinationPinpointDestinationArgs'] pinpoint_destination: An object that defines an Amazon Pinpoint project destination for email events. See pinpoint_destination below. :param pulumi.Input['ConfigurationSetEventDestinationEventDestinationSnsDestinationArgs'] sns_destination: An object that defines an Amazon SNS destination for email events. See sns_destination below. """ - pulumi.set(__self__, "matching_event_types", matching_event_types) + ConfigurationSetEventDestinationEventDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + matching_event_types=matching_event_types, + cloud_watch_destination=cloud_watch_destination, + enabled=enabled, + kinesis_firehose_destination=kinesis_firehose_destination, + pinpoint_destination=pinpoint_destination, + sns_destination=sns_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matching_event_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + cloud_watch_destination: Optional[pulumi.Input['ConfigurationSetEventDestinationEventDestinationCloudWatchDestinationArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + kinesis_firehose_destination: Optional[pulumi.Input['ConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestinationArgs']] = None, + pinpoint_destination: Optional[pulumi.Input['ConfigurationSetEventDestinationEventDestinationPinpointDestinationArgs']] = None, + sns_destination: Optional[pulumi.Input['ConfigurationSetEventDestinationEventDestinationSnsDestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matching_event_types is None and 'matchingEventTypes' in kwargs: + matching_event_types = kwargs['matchingEventTypes'] + if matching_event_types is None: + raise TypeError("Missing 'matching_event_types' argument") + if cloud_watch_destination is None and 'cloudWatchDestination' in kwargs: + cloud_watch_destination = kwargs['cloudWatchDestination'] + if kinesis_firehose_destination is None and 'kinesisFirehoseDestination' in kwargs: + kinesis_firehose_destination = kwargs['kinesisFirehoseDestination'] + if pinpoint_destination is None and 'pinpointDestination' in kwargs: + pinpoint_destination = kwargs['pinpointDestination'] + if sns_destination is None and 'snsDestination' in kwargs: + sns_destination = kwargs['snsDestination'] + + _setter("matching_event_types", matching_event_types) if cloud_watch_destination is not None: - pulumi.set(__self__, "cloud_watch_destination", cloud_watch_destination) + _setter("cloud_watch_destination", cloud_watch_destination) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if kinesis_firehose_destination is not None: - pulumi.set(__self__, "kinesis_firehose_destination", kinesis_firehose_destination) + _setter("kinesis_firehose_destination", kinesis_firehose_destination) if pinpoint_destination is not None: - pulumi.set(__self__, "pinpoint_destination", pinpoint_destination) + _setter("pinpoint_destination", pinpoint_destination) if sns_destination is not None: - pulumi.set(__self__, "sns_destination", sns_destination) + _setter("sns_destination", sns_destination) @property @pulumi.getter(name="matchingEventTypes") @@ -228,7 +304,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ConfigurationSetEventDestinationEventDestinationCloudWatchDestinationDimensionConfigurationArgs']]] dimension_configurations: An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch. See dimension_configuration below. """ - pulumi.set(__self__, "dimension_configurations", dimension_configurations) + ConfigurationSetEventDestinationEventDestinationCloudWatchDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimension_configurations=dimension_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimension_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ConfigurationSetEventDestinationEventDestinationCloudWatchDestinationDimensionConfigurationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimension_configurations is None and 'dimensionConfigurations' in kwargs: + dimension_configurations = kwargs['dimensionConfigurations'] + if dimension_configurations is None: + raise TypeError("Missing 'dimension_configurations' argument") + + _setter("dimension_configurations", dimension_configurations) @property @pulumi.getter(name="dimensionConfigurations") @@ -254,9 +345,36 @@ def __init__(__self__, *, :param pulumi.Input[str] dimension_name: The name of an Amazon CloudWatch dimension associated with an email sending metric. :param pulumi.Input[str] dimension_value_source: The location where the Amazon SES API v2 finds the value of a dimension to publish to Amazon CloudWatch. Valid values: `MESSAGE_TAG`, `EMAIL_HEADER`, `LINK_TAG`. """ - pulumi.set(__self__, "default_dimension_value", default_dimension_value) - pulumi.set(__self__, "dimension_name", dimension_name) - pulumi.set(__self__, "dimension_value_source", dimension_value_source) + ConfigurationSetEventDestinationEventDestinationCloudWatchDestinationDimensionConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_dimension_value=default_dimension_value, + dimension_name=dimension_name, + dimension_value_source=dimension_value_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_dimension_value: Optional[pulumi.Input[str]] = None, + dimension_name: Optional[pulumi.Input[str]] = None, + dimension_value_source: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_dimension_value is None and 'defaultDimensionValue' in kwargs: + default_dimension_value = kwargs['defaultDimensionValue'] + if default_dimension_value is None: + raise TypeError("Missing 'default_dimension_value' argument") + if dimension_name is None and 'dimensionName' in kwargs: + dimension_name = kwargs['dimensionName'] + if dimension_name is None: + raise TypeError("Missing 'dimension_name' argument") + if dimension_value_source is None and 'dimensionValueSource' in kwargs: + dimension_value_source = kwargs['dimensionValueSource'] + if dimension_value_source is None: + raise TypeError("Missing 'dimension_value_source' argument") + + _setter("default_dimension_value", default_dimension_value) + _setter("dimension_name", dimension_name) + _setter("dimension_value_source", dimension_value_source) @property @pulumi.getter(name="defaultDimensionValue") @@ -304,8 +422,29 @@ def __init__(__self__, *, :param pulumi.Input[str] delivery_stream_arn: The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream that the Amazon SES API v2 sends email events to. :param pulumi.Input[str] iam_role_arn: The Amazon Resource Name (ARN) of the IAM role that the Amazon SES API v2 uses to send email events to the Amazon Kinesis Data Firehose stream. """ - pulumi.set(__self__, "delivery_stream_arn", delivery_stream_arn) - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + ConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream_arn=delivery_stream_arn, + iam_role_arn=iam_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream_arn: Optional[pulumi.Input[str]] = None, + iam_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream_arn is None and 'deliveryStreamArn' in kwargs: + delivery_stream_arn = kwargs['deliveryStreamArn'] + if delivery_stream_arn is None: + raise TypeError("Missing 'delivery_stream_arn' argument") + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if iam_role_arn is None: + raise TypeError("Missing 'iam_role_arn' argument") + + _setter("delivery_stream_arn", delivery_stream_arn) + _setter("iam_role_arn", iam_role_arn) @property @pulumi.getter(name="deliveryStreamArn") @@ -336,7 +475,22 @@ def iam_role_arn(self, value: pulumi.Input[str]): class ConfigurationSetEventDestinationEventDestinationPinpointDestinationArgs: def __init__(__self__, *, application_arn: pulumi.Input[str]): - pulumi.set(__self__, "application_arn", application_arn) + ConfigurationSetEventDestinationEventDestinationPinpointDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_arn=application_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_arn is None and 'applicationArn' in kwargs: + application_arn = kwargs['applicationArn'] + if application_arn is None: + raise TypeError("Missing 'application_arn' argument") + + _setter("application_arn", application_arn) @property @pulumi.getter(name="applicationArn") @@ -355,7 +509,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] topic_arn: The Amazon Resource Name (ARN) of the Amazon SNS topic to publish email events to. """ - pulumi.set(__self__, "topic_arn", topic_arn) + ConfigurationSetEventDestinationEventDestinationSnsDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="topicArn") @@ -379,10 +548,27 @@ def __init__(__self__, *, :param pulumi.Input[str] last_fresh_start: The date and time (in Unix time) when the reputation metrics were last given a fresh start. When your account is given a fresh start, your reputation metrics are calculated starting from the date of the fresh start. :param pulumi.Input[bool] reputation_metrics_enabled: If `true`, tracking of reputation metrics is enabled for the configuration set. If `false`, tracking of reputation metrics is disabled for the configuration set. """ + ConfigurationSetReputationOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + last_fresh_start=last_fresh_start, + reputation_metrics_enabled=reputation_metrics_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + last_fresh_start: Optional[pulumi.Input[str]] = None, + reputation_metrics_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if last_fresh_start is None and 'lastFreshStart' in kwargs: + last_fresh_start = kwargs['lastFreshStart'] + if reputation_metrics_enabled is None and 'reputationMetricsEnabled' in kwargs: + reputation_metrics_enabled = kwargs['reputationMetricsEnabled'] + if last_fresh_start is not None: - pulumi.set(__self__, "last_fresh_start", last_fresh_start) + _setter("last_fresh_start", last_fresh_start) if reputation_metrics_enabled is not None: - pulumi.set(__self__, "reputation_metrics_enabled", reputation_metrics_enabled) + _setter("reputation_metrics_enabled", reputation_metrics_enabled) @property @pulumi.getter(name="lastFreshStart") @@ -416,8 +602,21 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] sending_enabled: If `true`, email sending is enabled for the configuration set. If `false`, email sending is disabled for the configuration set. """ + ConfigurationSetSendingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sending_enabled=sending_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sending_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sending_enabled is None and 'sendingEnabled' in kwargs: + sending_enabled = kwargs['sendingEnabled'] + if sending_enabled is not None: - pulumi.set(__self__, "sending_enabled", sending_enabled) + _setter("sending_enabled", sending_enabled) @property @pulumi.getter(name="sendingEnabled") @@ -439,8 +638,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] suppressed_reasons: A list that contains the reasons that email addresses are automatically added to the suppression list for your account. Valid values: `BOUNCE`, `COMPLAINT`. """ + ConfigurationSetSuppressionOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + suppressed_reasons=suppressed_reasons, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + suppressed_reasons: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if suppressed_reasons is None and 'suppressedReasons' in kwargs: + suppressed_reasons = kwargs['suppressedReasons'] + if suppressed_reasons is not None: - pulumi.set(__self__, "suppressed_reasons", suppressed_reasons) + _setter("suppressed_reasons", suppressed_reasons) @property @pulumi.getter(name="suppressedReasons") @@ -462,7 +674,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] custom_redirect_domain: The domain to use for tracking open and click events. """ - pulumi.set(__self__, "custom_redirect_domain", custom_redirect_domain) + ConfigurationSetTrackingOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_redirect_domain=custom_redirect_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_redirect_domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_redirect_domain is None and 'customRedirectDomain' in kwargs: + custom_redirect_domain = kwargs['customRedirectDomain'] + if custom_redirect_domain is None: + raise TypeError("Missing 'custom_redirect_domain' argument") + + _setter("custom_redirect_domain", custom_redirect_domain) @property @pulumi.getter(name="customRedirectDomain") @@ -486,10 +713,27 @@ def __init__(__self__, *, :param pulumi.Input['ConfigurationSetVdmOptionsDashboardOptionsArgs'] dashboard_options: Specifies additional settings for your VDM configuration as applicable to the Dashboard. :param pulumi.Input['ConfigurationSetVdmOptionsGuardianOptionsArgs'] guardian_options: Specifies additional settings for your VDM configuration as applicable to the Guardian. """ + ConfigurationSetVdmOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + dashboard_options=dashboard_options, + guardian_options=guardian_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dashboard_options: Optional[pulumi.Input['ConfigurationSetVdmOptionsDashboardOptionsArgs']] = None, + guardian_options: Optional[pulumi.Input['ConfigurationSetVdmOptionsGuardianOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dashboard_options is None and 'dashboardOptions' in kwargs: + dashboard_options = kwargs['dashboardOptions'] + if guardian_options is None and 'guardianOptions' in kwargs: + guardian_options = kwargs['guardianOptions'] + if dashboard_options is not None: - pulumi.set(__self__, "dashboard_options", dashboard_options) + _setter("dashboard_options", dashboard_options) if guardian_options is not None: - pulumi.set(__self__, "guardian_options", guardian_options) + _setter("guardian_options", guardian_options) @property @pulumi.getter(name="dashboardOptions") @@ -523,8 +767,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] engagement_metrics: Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. """ + ConfigurationSetVdmOptionsDashboardOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + engagement_metrics=engagement_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engagement_metrics: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engagement_metrics is None and 'engagementMetrics' in kwargs: + engagement_metrics = kwargs['engagementMetrics'] + if engagement_metrics is not None: - pulumi.set(__self__, "engagement_metrics", engagement_metrics) + _setter("engagement_metrics", engagement_metrics) @property @pulumi.getter(name="engagementMetrics") @@ -546,8 +803,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] optimized_shared_delivery: Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. """ + ConfigurationSetVdmOptionsGuardianOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + optimized_shared_delivery=optimized_shared_delivery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + optimized_shared_delivery: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if optimized_shared_delivery is None and 'optimizedSharedDelivery' in kwargs: + optimized_shared_delivery = kwargs['optimizedSharedDelivery'] + if optimized_shared_delivery is not None: - pulumi.set(__self__, "optimized_shared_delivery", optimized_shared_delivery) + _setter("optimized_shared_delivery", optimized_shared_delivery) @property @pulumi.getter(name="optimizedSharedDelivery") @@ -577,11 +847,40 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] description: A description of what the topic is about, which the contact will see. """ - pulumi.set(__self__, "default_subscription_status", default_subscription_status) - pulumi.set(__self__, "display_name", display_name) - pulumi.set(__self__, "topic_name", topic_name) + ContactListTopicArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_subscription_status=default_subscription_status, + display_name=display_name, + topic_name=topic_name, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_subscription_status: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + topic_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_subscription_status is None and 'defaultSubscriptionStatus' in kwargs: + default_subscription_status = kwargs['defaultSubscriptionStatus'] + if default_subscription_status is None: + raise TypeError("Missing 'default_subscription_status' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if display_name is None: + raise TypeError("Missing 'display_name' argument") + if topic_name is None and 'topicName' in kwargs: + topic_name = kwargs['topicName'] + if topic_name is None: + raise TypeError("Missing 'topic_name' argument") + + _setter("default_subscription_status", default_subscription_status) + _setter("display_name", display_name) + _setter("topic_name", topic_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="defaultSubscriptionStatus") @@ -657,22 +956,59 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Describes whether or not Amazon SES has successfully located the DKIM records in the DNS records for the domain. See the [AWS SES API v2 Reference](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_DkimAttributes.html#SES-Type-DkimAttributes-Status) for supported statuses. :param pulumi.Input[Sequence[pulumi.Input[str]]] tokens: If you used Easy DKIM to configure DKIM authentication for the domain, then this object contains a set of unique strings that you use to create a set of CNAME records that you add to the DNS configuration for your domain. When Amazon SES detects these records in the DNS configuration for your domain, the DKIM authentication process is complete. If you configured DKIM authentication for the domain by providing your own public-private key pair, then this object contains the selector for the public key. """ + EmailIdentityDkimSigningAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + current_signing_key_length=current_signing_key_length, + domain_signing_private_key=domain_signing_private_key, + domain_signing_selector=domain_signing_selector, + last_key_generation_timestamp=last_key_generation_timestamp, + next_signing_key_length=next_signing_key_length, + signing_attributes_origin=signing_attributes_origin, + status=status, + tokens=tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + current_signing_key_length: Optional[pulumi.Input[str]] = None, + domain_signing_private_key: Optional[pulumi.Input[str]] = None, + domain_signing_selector: Optional[pulumi.Input[str]] = None, + last_key_generation_timestamp: Optional[pulumi.Input[str]] = None, + next_signing_key_length: Optional[pulumi.Input[str]] = None, + signing_attributes_origin: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tokens: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if current_signing_key_length is None and 'currentSigningKeyLength' in kwargs: + current_signing_key_length = kwargs['currentSigningKeyLength'] + if domain_signing_private_key is None and 'domainSigningPrivateKey' in kwargs: + domain_signing_private_key = kwargs['domainSigningPrivateKey'] + if domain_signing_selector is None and 'domainSigningSelector' in kwargs: + domain_signing_selector = kwargs['domainSigningSelector'] + if last_key_generation_timestamp is None and 'lastKeyGenerationTimestamp' in kwargs: + last_key_generation_timestamp = kwargs['lastKeyGenerationTimestamp'] + if next_signing_key_length is None and 'nextSigningKeyLength' in kwargs: + next_signing_key_length = kwargs['nextSigningKeyLength'] + if signing_attributes_origin is None and 'signingAttributesOrigin' in kwargs: + signing_attributes_origin = kwargs['signingAttributesOrigin'] + if current_signing_key_length is not None: - pulumi.set(__self__, "current_signing_key_length", current_signing_key_length) + _setter("current_signing_key_length", current_signing_key_length) if domain_signing_private_key is not None: - pulumi.set(__self__, "domain_signing_private_key", domain_signing_private_key) + _setter("domain_signing_private_key", domain_signing_private_key) if domain_signing_selector is not None: - pulumi.set(__self__, "domain_signing_selector", domain_signing_selector) + _setter("domain_signing_selector", domain_signing_selector) if last_key_generation_timestamp is not None: - pulumi.set(__self__, "last_key_generation_timestamp", last_key_generation_timestamp) + _setter("last_key_generation_timestamp", last_key_generation_timestamp) if next_signing_key_length is not None: - pulumi.set(__self__, "next_signing_key_length", next_signing_key_length) + _setter("next_signing_key_length", next_signing_key_length) if signing_attributes_origin is not None: - pulumi.set(__self__, "signing_attributes_origin", signing_attributes_origin) + _setter("signing_attributes_origin", signing_attributes_origin) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tokens is not None: - pulumi.set(__self__, "tokens", tokens) + _setter("tokens", tokens) @property @pulumi.getter(name="currentSigningKeyLength") diff --git a/sdk/python/pulumi_aws/sesv2/account_vdm_attributes.py b/sdk/python/pulumi_aws/sesv2/account_vdm_attributes.py index e7c9be25c44..fbc032b273d 100644 --- a/sdk/python/pulumi_aws/sesv2/account_vdm_attributes.py +++ b/sdk/python/pulumi_aws/sesv2/account_vdm_attributes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,11 +27,34 @@ def __init__(__self__, *, :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) + AccountVdmAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + vdm_enabled=vdm_enabled, + dashboard_attributes=dashboard_attributes, + guardian_attributes=guardian_attributes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + vdm_enabled: Optional[pulumi.Input[str]] = None, + dashboard_attributes: Optional[pulumi.Input['AccountVdmAttributesDashboardAttributesArgs']] = None, + guardian_attributes: Optional[pulumi.Input['AccountVdmAttributesGuardianAttributesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if vdm_enabled is None and 'vdmEnabled' in kwargs: + vdm_enabled = kwargs['vdmEnabled'] + if vdm_enabled is None: + raise TypeError("Missing 'vdm_enabled' argument") + if dashboard_attributes is None and 'dashboardAttributes' in kwargs: + dashboard_attributes = kwargs['dashboardAttributes'] + if guardian_attributes is None and 'guardianAttributes' in kwargs: + guardian_attributes = kwargs['guardianAttributes'] + + _setter("vdm_enabled", vdm_enabled) if dashboard_attributes is not None: - pulumi.set(__self__, "dashboard_attributes", dashboard_attributes) + _setter("dashboard_attributes", dashboard_attributes) if guardian_attributes is not None: - pulumi.set(__self__, "guardian_attributes", guardian_attributes) + _setter("guardian_attributes", guardian_attributes) @property @pulumi.getter(name="vdmEnabled") @@ -86,12 +109,33 @@ def __init__(__self__, *, The following arguments are optional: """ + _AccountVdmAttributesState._configure( + lambda key, value: pulumi.set(__self__, key, value), + dashboard_attributes=dashboard_attributes, + guardian_attributes=guardian_attributes, + vdm_enabled=vdm_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dashboard_attributes: Optional[pulumi.Input['AccountVdmAttributesDashboardAttributesArgs']] = None, + guardian_attributes: Optional[pulumi.Input['AccountVdmAttributesGuardianAttributesArgs']] = None, + vdm_enabled: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dashboard_attributes is None and 'dashboardAttributes' in kwargs: + dashboard_attributes = kwargs['dashboardAttributes'] + if guardian_attributes is None and 'guardianAttributes' in kwargs: + guardian_attributes = kwargs['guardianAttributes'] + if vdm_enabled is None and 'vdmEnabled' in kwargs: + vdm_enabled = kwargs['vdmEnabled'] + if dashboard_attributes is not None: - pulumi.set(__self__, "dashboard_attributes", dashboard_attributes) + _setter("dashboard_attributes", dashboard_attributes) if guardian_attributes is not None: - pulumi.set(__self__, "guardian_attributes", guardian_attributes) + _setter("guardian_attributes", guardian_attributes) if vdm_enabled is not None: - pulumi.set(__self__, "vdm_enabled", vdm_enabled) + _setter("vdm_enabled", vdm_enabled) @property @pulumi.getter(name="dashboardAttributes") @@ -221,6 +265,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountVdmAttributesArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -238,7 +286,9 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = AccountVdmAttributesArgs.__new__(AccountVdmAttributesArgs) + dashboard_attributes = _utilities.configure(dashboard_attributes, AccountVdmAttributesDashboardAttributesArgs, True) __props__.__dict__["dashboard_attributes"] = dashboard_attributes + guardian_attributes = _utilities.configure(guardian_attributes, AccountVdmAttributesGuardianAttributesArgs, True) __props__.__dict__["guardian_attributes"] = guardian_attributes if vdm_enabled is None and not opts.urn: raise TypeError("Missing required property 'vdm_enabled'") diff --git a/sdk/python/pulumi_aws/sesv2/configuration_set.py b/sdk/python/pulumi_aws/sesv2/configuration_set.py index 9e9713ec0fe..93a211d279b 100644 --- a/sdk/python/pulumi_aws/sesv2/configuration_set.py +++ b/sdk/python/pulumi_aws/sesv2/configuration_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,21 +35,62 @@ def __init__(__self__, *, :param pulumi.Input['ConfigurationSetTrackingOptionsArgs'] tracking_options: An object that defines the open and click tracking options for emails that you send using the configuration set. :param pulumi.Input['ConfigurationSetVdmOptionsArgs'] vdm_options: An object that defines the VDM settings that apply to emails that you send using the configuration set. """ - pulumi.set(__self__, "configuration_set_name", configuration_set_name) + ConfigurationSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_set_name=configuration_set_name, + delivery_options=delivery_options, + reputation_options=reputation_options, + sending_options=sending_options, + suppression_options=suppression_options, + tags=tags, + tracking_options=tracking_options, + vdm_options=vdm_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_set_name: Optional[pulumi.Input[str]] = None, + delivery_options: Optional[pulumi.Input['ConfigurationSetDeliveryOptionsArgs']] = None, + reputation_options: Optional[pulumi.Input['ConfigurationSetReputationOptionsArgs']] = None, + sending_options: Optional[pulumi.Input['ConfigurationSetSendingOptionsArgs']] = None, + suppression_options: Optional[pulumi.Input['ConfigurationSetSuppressionOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracking_options: Optional[pulumi.Input['ConfigurationSetTrackingOptionsArgs']] = None, + vdm_options: Optional[pulumi.Input['ConfigurationSetVdmOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_set_name is None and 'configurationSetName' in kwargs: + configuration_set_name = kwargs['configurationSetName'] + if configuration_set_name is None: + raise TypeError("Missing 'configuration_set_name' argument") + if delivery_options is None and 'deliveryOptions' in kwargs: + delivery_options = kwargs['deliveryOptions'] + if reputation_options is None and 'reputationOptions' in kwargs: + reputation_options = kwargs['reputationOptions'] + if sending_options is None and 'sendingOptions' in kwargs: + sending_options = kwargs['sendingOptions'] + if suppression_options is None and 'suppressionOptions' in kwargs: + suppression_options = kwargs['suppressionOptions'] + if tracking_options is None and 'trackingOptions' in kwargs: + tracking_options = kwargs['trackingOptions'] + if vdm_options is None and 'vdmOptions' in kwargs: + vdm_options = kwargs['vdmOptions'] + + _setter("configuration_set_name", configuration_set_name) if delivery_options is not None: - pulumi.set(__self__, "delivery_options", delivery_options) + _setter("delivery_options", delivery_options) if reputation_options is not None: - pulumi.set(__self__, "reputation_options", reputation_options) + _setter("reputation_options", reputation_options) if sending_options is not None: - pulumi.set(__self__, "sending_options", sending_options) + _setter("sending_options", sending_options) if suppression_options is not None: - pulumi.set(__self__, "suppression_options", suppression_options) + _setter("suppression_options", suppression_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tracking_options is not None: - pulumi.set(__self__, "tracking_options", tracking_options) + _setter("tracking_options", tracking_options) if vdm_options is not None: - pulumi.set(__self__, "vdm_options", vdm_options) + _setter("vdm_options", vdm_options) @property @pulumi.getter(name="configurationSetName") @@ -173,29 +214,74 @@ def __init__(__self__, *, :param pulumi.Input['ConfigurationSetTrackingOptionsArgs'] tracking_options: An object that defines the open and click tracking options for emails that you send using the configuration set. :param pulumi.Input['ConfigurationSetVdmOptionsArgs'] vdm_options: An object that defines the VDM settings that apply to emails that you send using the configuration set. """ + _ConfigurationSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + configuration_set_name=configuration_set_name, + delivery_options=delivery_options, + reputation_options=reputation_options, + sending_options=sending_options, + suppression_options=suppression_options, + tags=tags, + tags_all=tags_all, + tracking_options=tracking_options, + vdm_options=vdm_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + configuration_set_name: Optional[pulumi.Input[str]] = None, + delivery_options: Optional[pulumi.Input['ConfigurationSetDeliveryOptionsArgs']] = None, + reputation_options: Optional[pulumi.Input['ConfigurationSetReputationOptionsArgs']] = None, + sending_options: Optional[pulumi.Input['ConfigurationSetSendingOptionsArgs']] = None, + suppression_options: Optional[pulumi.Input['ConfigurationSetSuppressionOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracking_options: Optional[pulumi.Input['ConfigurationSetTrackingOptionsArgs']] = None, + vdm_options: Optional[pulumi.Input['ConfigurationSetVdmOptionsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_set_name is None and 'configurationSetName' in kwargs: + configuration_set_name = kwargs['configurationSetName'] + if delivery_options is None and 'deliveryOptions' in kwargs: + delivery_options = kwargs['deliveryOptions'] + if reputation_options is None and 'reputationOptions' in kwargs: + reputation_options = kwargs['reputationOptions'] + if sending_options is None and 'sendingOptions' in kwargs: + sending_options = kwargs['sendingOptions'] + if suppression_options is None and 'suppressionOptions' in kwargs: + suppression_options = kwargs['suppressionOptions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tracking_options is None and 'trackingOptions' in kwargs: + tracking_options = kwargs['trackingOptions'] + if vdm_options is None and 'vdmOptions' in kwargs: + vdm_options = kwargs['vdmOptions'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration_set_name is not None: - pulumi.set(__self__, "configuration_set_name", configuration_set_name) + _setter("configuration_set_name", configuration_set_name) if delivery_options is not None: - pulumi.set(__self__, "delivery_options", delivery_options) + _setter("delivery_options", delivery_options) if reputation_options is not None: - pulumi.set(__self__, "reputation_options", reputation_options) + _setter("reputation_options", reputation_options) if sending_options is not None: - pulumi.set(__self__, "sending_options", sending_options) + _setter("sending_options", sending_options) if suppression_options is not None: - pulumi.set(__self__, "suppression_options", suppression_options) + _setter("suppression_options", suppression_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tracking_options is not None: - pulumi.set(__self__, "tracking_options", tracking_options) + _setter("tracking_options", tracking_options) if vdm_options is not None: - pulumi.set(__self__, "vdm_options", vdm_options) + _setter("vdm_options", vdm_options) @property @pulumi.getter @@ -439,6 +525,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConfigurationSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -464,12 +554,18 @@ def _internal_init(__self__, if configuration_set_name is None and not opts.urn: raise TypeError("Missing required property 'configuration_set_name'") __props__.__dict__["configuration_set_name"] = configuration_set_name + delivery_options = _utilities.configure(delivery_options, ConfigurationSetDeliveryOptionsArgs, True) __props__.__dict__["delivery_options"] = delivery_options + reputation_options = _utilities.configure(reputation_options, ConfigurationSetReputationOptionsArgs, True) __props__.__dict__["reputation_options"] = reputation_options + sending_options = _utilities.configure(sending_options, ConfigurationSetSendingOptionsArgs, True) __props__.__dict__["sending_options"] = sending_options + suppression_options = _utilities.configure(suppression_options, ConfigurationSetSuppressionOptionsArgs, True) __props__.__dict__["suppression_options"] = suppression_options __props__.__dict__["tags"] = tags + tracking_options = _utilities.configure(tracking_options, ConfigurationSetTrackingOptionsArgs, True) __props__.__dict__["tracking_options"] = tracking_options + vdm_options = _utilities.configure(vdm_options, ConfigurationSetVdmOptionsArgs, True) __props__.__dict__["vdm_options"] = vdm_options __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None diff --git a/sdk/python/pulumi_aws/sesv2/configuration_set_event_destination.py b/sdk/python/pulumi_aws/sesv2/configuration_set_event_destination.py index 14c68b8f3aa..5d512cbe018 100644 --- a/sdk/python/pulumi_aws/sesv2/configuration_set_event_destination.py +++ b/sdk/python/pulumi_aws/sesv2/configuration_set_event_destination.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,36 @@ def __init__(__self__, *, :param pulumi.Input['ConfigurationSetEventDestinationEventDestinationArgs'] event_destination: A name that identifies the event destination within the configuration set. :param pulumi.Input[str] event_destination_name: An object that defines the event destination. See event_destination below. """ - pulumi.set(__self__, "configuration_set_name", configuration_set_name) - pulumi.set(__self__, "event_destination", event_destination) - pulumi.set(__self__, "event_destination_name", event_destination_name) + ConfigurationSetEventDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_set_name=configuration_set_name, + event_destination=event_destination, + event_destination_name=event_destination_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_set_name: Optional[pulumi.Input[str]] = None, + event_destination: Optional[pulumi.Input['ConfigurationSetEventDestinationEventDestinationArgs']] = None, + event_destination_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_set_name is None and 'configurationSetName' in kwargs: + configuration_set_name = kwargs['configurationSetName'] + if configuration_set_name is None: + raise TypeError("Missing 'configuration_set_name' argument") + if event_destination is None and 'eventDestination' in kwargs: + event_destination = kwargs['eventDestination'] + if event_destination is None: + raise TypeError("Missing 'event_destination' argument") + if event_destination_name is None and 'eventDestinationName' in kwargs: + event_destination_name = kwargs['eventDestinationName'] + if event_destination_name is None: + raise TypeError("Missing 'event_destination_name' argument") + + _setter("configuration_set_name", configuration_set_name) + _setter("event_destination", event_destination) + _setter("event_destination_name", event_destination_name) @property @pulumi.getter(name="configurationSetName") @@ -78,12 +105,33 @@ def __init__(__self__, *, :param pulumi.Input['ConfigurationSetEventDestinationEventDestinationArgs'] event_destination: A name that identifies the event destination within the configuration set. :param pulumi.Input[str] event_destination_name: An object that defines the event destination. See event_destination below. """ + _ConfigurationSetEventDestinationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration_set_name=configuration_set_name, + event_destination=event_destination, + event_destination_name=event_destination_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration_set_name: Optional[pulumi.Input[str]] = None, + event_destination: Optional[pulumi.Input['ConfigurationSetEventDestinationEventDestinationArgs']] = None, + event_destination_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_set_name is None and 'configurationSetName' in kwargs: + configuration_set_name = kwargs['configurationSetName'] + if event_destination is None and 'eventDestination' in kwargs: + event_destination = kwargs['eventDestination'] + if event_destination_name is None and 'eventDestinationName' in kwargs: + event_destination_name = kwargs['eventDestinationName'] + if configuration_set_name is not None: - pulumi.set(__self__, "configuration_set_name", configuration_set_name) + _setter("configuration_set_name", configuration_set_name) if event_destination is not None: - pulumi.set(__self__, "event_destination", event_destination) + _setter("event_destination", event_destination) if event_destination_name is not None: - pulumi.set(__self__, "event_destination_name", event_destination_name) + _setter("event_destination_name", event_destination_name) @property @pulumi.getter(name="configurationSetName") @@ -333,6 +381,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConfigurationSetEventDestinationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -353,6 +405,7 @@ def _internal_init(__self__, if configuration_set_name is None and not opts.urn: raise TypeError("Missing required property 'configuration_set_name'") __props__.__dict__["configuration_set_name"] = configuration_set_name + event_destination = _utilities.configure(event_destination, ConfigurationSetEventDestinationEventDestinationArgs, True) if event_destination is None and not opts.urn: raise TypeError("Missing required property 'event_destination'") __props__.__dict__["event_destination"] = event_destination diff --git a/sdk/python/pulumi_aws/sesv2/contact_list.py b/sdk/python/pulumi_aws/sesv2/contact_list.py index e99e8f3b8cb..37dc75472c8 100644 --- a/sdk/python/pulumi_aws/sesv2/contact_list.py +++ b/sdk/python/pulumi_aws/sesv2/contact_list.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,34 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the contact list. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['ContactListTopicArgs']]] topics: Configuration block(s) with topic for the contact list. Detailed below. """ - pulumi.set(__self__, "contact_list_name", contact_list_name) + ContactListArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_list_name=contact_list_name, + description=description, + tags=tags, + topics=topics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_list_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + topics: Optional[pulumi.Input[Sequence[pulumi.Input['ContactListTopicArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_list_name is None and 'contactListName' in kwargs: + contact_list_name = kwargs['contactListName'] + if contact_list_name is None: + raise TypeError("Missing 'contact_list_name' argument") + + _setter("contact_list_name", contact_list_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if topics is not None: - pulumi.set(__self__, "topics", topics) + _setter("topics", topics) @property @pulumi.getter(name="contactListName") @@ -110,25 +131,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the contact list. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['ContactListTopicArgs']]] topics: Configuration block(s) with topic for the contact list. Detailed below. """ + _ContactListState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + contact_list_name=contact_list_name, + created_timestamp=created_timestamp, + description=description, + last_updated_timestamp=last_updated_timestamp, + tags=tags, + tags_all=tags_all, + topics=topics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + contact_list_name: Optional[pulumi.Input[str]] = None, + created_timestamp: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + last_updated_timestamp: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + topics: Optional[pulumi.Input[Sequence[pulumi.Input['ContactListTopicArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_list_name is None and 'contactListName' in kwargs: + contact_list_name = kwargs['contactListName'] + if created_timestamp is None and 'createdTimestamp' in kwargs: + created_timestamp = kwargs['createdTimestamp'] + if last_updated_timestamp is None and 'lastUpdatedTimestamp' in kwargs: + last_updated_timestamp = kwargs['lastUpdatedTimestamp'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if contact_list_name is not None: - pulumi.set(__self__, "contact_list_name", contact_list_name) + _setter("contact_list_name", contact_list_name) if created_timestamp is not None: - pulumi.set(__self__, "created_timestamp", created_timestamp) + _setter("created_timestamp", created_timestamp) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if last_updated_timestamp is not None: - pulumi.set(__self__, "last_updated_timestamp", last_updated_timestamp) + _setter("last_updated_timestamp", last_updated_timestamp) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if topics is not None: - pulumi.set(__self__, "topics", topics) + _setter("topics", topics) @property @pulumi.getter @@ -335,6 +389,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContactListArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sesv2/dedicated_ip_assignment.py b/sdk/python/pulumi_aws/sesv2/dedicated_ip_assignment.py index a135e304bf4..ad8a02bf9d3 100644 --- a/sdk/python/pulumi_aws/sesv2/dedicated_ip_assignment.py +++ b/sdk/python/pulumi_aws/sesv2/dedicated_ip_assignment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DedicatedIpAssignmentArgs', 'DedicatedIpAssignment'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_pool_name: Dedicated IP address. :param pulumi.Input[str] ip: Dedicated IP address. """ - pulumi.set(__self__, "destination_pool_name", destination_pool_name) - pulumi.set(__self__, "ip", ip) + DedicatedIpAssignmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_pool_name=destination_pool_name, + ip=ip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_pool_name: Optional[pulumi.Input[str]] = None, + ip: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_pool_name is None and 'destinationPoolName' in kwargs: + destination_pool_name = kwargs['destinationPoolName'] + if destination_pool_name is None: + raise TypeError("Missing 'destination_pool_name' argument") + if ip is None: + raise TypeError("Missing 'ip' argument") + + _setter("destination_pool_name", destination_pool_name) + _setter("ip", ip) @property @pulumi.getter(name="destinationPoolName") @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_pool_name: Dedicated IP address. :param pulumi.Input[str] ip: Dedicated IP address. """ + _DedicatedIpAssignmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_pool_name=destination_pool_name, + ip=ip, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_pool_name: Optional[pulumi.Input[str]] = None, + ip: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_pool_name is None and 'destinationPoolName' in kwargs: + destination_pool_name = kwargs['destinationPoolName'] + if destination_pool_name is not None: - pulumi.set(__self__, "destination_pool_name", destination_pool_name) + _setter("destination_pool_name", destination_pool_name) if ip is not None: - pulumi.set(__self__, "ip", ip) + _setter("ip", ip) @property @pulumi.getter(name="destinationPoolName") @@ -168,6 +202,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DedicatedIpAssignmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sesv2/dedicated_ip_pool.py b/sdk/python/pulumi_aws/sesv2/dedicated_ip_pool.py index 409338abbe8..11bf8776783 100644 --- a/sdk/python/pulumi_aws/sesv2/dedicated_ip_pool.py +++ b/sdk/python/pulumi_aws/sesv2/dedicated_ip_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DedicatedIpPoolArgs', 'DedicatedIpPool'] @@ -25,11 +25,32 @@ def __init__(__self__, *, :param pulumi.Input[str] scaling_mode: IP pool scaling mode. Valid values: `STANDARD`, `MANAGED`. If omitted, the AWS API will default to a standard pool. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the pool. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "pool_name", pool_name) + DedicatedIpPoolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pool_name=pool_name, + scaling_mode=scaling_mode, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pool_name: Optional[pulumi.Input[str]] = None, + scaling_mode: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pool_name is None and 'poolName' in kwargs: + pool_name = kwargs['poolName'] + if pool_name is None: + raise TypeError("Missing 'pool_name' argument") + if scaling_mode is None and 'scalingMode' in kwargs: + scaling_mode = kwargs['scalingMode'] + + _setter("pool_name", pool_name) if scaling_mode is not None: - pulumi.set(__self__, "scaling_mode", scaling_mode) + _setter("scaling_mode", scaling_mode) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="poolName") @@ -87,19 +108,44 @@ def __init__(__self__, *, :param pulumi.Input[str] scaling_mode: IP pool scaling mode. Valid values: `STANDARD`, `MANAGED`. If omitted, the AWS API will default to a standard pool. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the pool. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + _DedicatedIpPoolState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + pool_name=pool_name, + scaling_mode=scaling_mode, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + pool_name: Optional[pulumi.Input[str]] = None, + scaling_mode: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pool_name is None and 'poolName' in kwargs: + pool_name = kwargs['poolName'] + if scaling_mode is None and 'scalingMode' in kwargs: + scaling_mode = kwargs['scalingMode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if pool_name is not None: - pulumi.set(__self__, "pool_name", pool_name) + _setter("pool_name", pool_name) if scaling_mode is not None: - pulumi.set(__self__, "scaling_mode", scaling_mode) + _setter("scaling_mode", scaling_mode) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -259,6 +305,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DedicatedIpPoolArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sesv2/email_identity.py b/sdk/python/pulumi_aws/sesv2/email_identity.py index ee3e30f6181..04611f7e56f 100644 --- a/sdk/python/pulumi_aws/sesv2/email_identity.py +++ b/sdk/python/pulumi_aws/sesv2/email_identity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,38 @@ def __init__(__self__, *, :param pulumi.Input['EmailIdentityDkimSigningAttributesArgs'] dkim_signing_attributes: The configuration of the DKIM authentication settings for an email domain identity. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "email_identity", email_identity) + EmailIdentityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + email_identity=email_identity, + configuration_set_name=configuration_set_name, + dkim_signing_attributes=dkim_signing_attributes, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email_identity: Optional[pulumi.Input[str]] = None, + configuration_set_name: Optional[pulumi.Input[str]] = None, + dkim_signing_attributes: Optional[pulumi.Input['EmailIdentityDkimSigningAttributesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email_identity is None and 'emailIdentity' in kwargs: + email_identity = kwargs['emailIdentity'] + if email_identity is None: + raise TypeError("Missing 'email_identity' argument") + if configuration_set_name is None and 'configurationSetName' in kwargs: + configuration_set_name = kwargs['configurationSetName'] + if dkim_signing_attributes is None and 'dkimSigningAttributes' in kwargs: + dkim_signing_attributes = kwargs['dkimSigningAttributes'] + + _setter("email_identity", email_identity) if configuration_set_name is not None: - pulumi.set(__self__, "configuration_set_name", configuration_set_name) + _setter("configuration_set_name", configuration_set_name) if dkim_signing_attributes is not None: - pulumi.set(__self__, "dkim_signing_attributes", dkim_signing_attributes) + _setter("dkim_signing_attributes", dkim_signing_attributes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="emailIdentity") @@ -112,25 +137,62 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[bool] verified_for_sending_status: Specifies whether or not the identity is verified. """ + _EmailIdentityState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + configuration_set_name=configuration_set_name, + dkim_signing_attributes=dkim_signing_attributes, + email_identity=email_identity, + identity_type=identity_type, + tags=tags, + tags_all=tags_all, + verified_for_sending_status=verified_for_sending_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + configuration_set_name: Optional[pulumi.Input[str]] = None, + dkim_signing_attributes: Optional[pulumi.Input['EmailIdentityDkimSigningAttributesArgs']] = None, + email_identity: Optional[pulumi.Input[str]] = None, + identity_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + verified_for_sending_status: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration_set_name is None and 'configurationSetName' in kwargs: + configuration_set_name = kwargs['configurationSetName'] + if dkim_signing_attributes is None and 'dkimSigningAttributes' in kwargs: + dkim_signing_attributes = kwargs['dkimSigningAttributes'] + if email_identity is None and 'emailIdentity' in kwargs: + email_identity = kwargs['emailIdentity'] + if identity_type is None and 'identityType' in kwargs: + identity_type = kwargs['identityType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if verified_for_sending_status is None and 'verifiedForSendingStatus' in kwargs: + verified_for_sending_status = kwargs['verifiedForSendingStatus'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if configuration_set_name is not None: - pulumi.set(__self__, "configuration_set_name", configuration_set_name) + _setter("configuration_set_name", configuration_set_name) if dkim_signing_attributes is not None: - pulumi.set(__self__, "dkim_signing_attributes", dkim_signing_attributes) + _setter("dkim_signing_attributes", dkim_signing_attributes) if email_identity is not None: - pulumi.set(__self__, "email_identity", email_identity) + _setter("email_identity", email_identity) if identity_type is not None: - pulumi.set(__self__, "identity_type", identity_type) + _setter("identity_type", identity_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if verified_for_sending_status is not None: - pulumi.set(__self__, "verified_for_sending_status", verified_for_sending_status) + _setter("verified_for_sending_status", verified_for_sending_status) @property @pulumi.getter @@ -379,6 +441,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EmailIdentityArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -398,6 +464,7 @@ def _internal_init(__self__, __props__ = EmailIdentityArgs.__new__(EmailIdentityArgs) __props__.__dict__["configuration_set_name"] = configuration_set_name + dkim_signing_attributes = _utilities.configure(dkim_signing_attributes, EmailIdentityDkimSigningAttributesArgs, True) __props__.__dict__["dkim_signing_attributes"] = dkim_signing_attributes if email_identity is None and not opts.urn: raise TypeError("Missing required property 'email_identity'") diff --git a/sdk/python/pulumi_aws/sesv2/email_identity_feedback_attributes.py b/sdk/python/pulumi_aws/sesv2/email_identity_feedback_attributes.py index e7dccbf5822..cafc61ac3e9 100644 --- a/sdk/python/pulumi_aws/sesv2/email_identity_feedback_attributes.py +++ b/sdk/python/pulumi_aws/sesv2/email_identity_feedback_attributes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EmailIdentityFeedbackAttributesArgs', 'EmailIdentityFeedbackAttributes'] @@ -21,9 +21,28 @@ def __init__(__self__, *, :param pulumi.Input[str] email_identity: The email identity. :param pulumi.Input[bool] email_forwarding_enabled: Sets the feedback forwarding configuration for the identity. """ - pulumi.set(__self__, "email_identity", email_identity) + EmailIdentityFeedbackAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + email_identity=email_identity, + email_forwarding_enabled=email_forwarding_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email_identity: Optional[pulumi.Input[str]] = None, + email_forwarding_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email_identity is None and 'emailIdentity' in kwargs: + email_identity = kwargs['emailIdentity'] + if email_identity is None: + raise TypeError("Missing 'email_identity' argument") + if email_forwarding_enabled is None and 'emailForwardingEnabled' in kwargs: + email_forwarding_enabled = kwargs['emailForwardingEnabled'] + + _setter("email_identity", email_identity) if email_forwarding_enabled is not None: - pulumi.set(__self__, "email_forwarding_enabled", email_forwarding_enabled) + _setter("email_forwarding_enabled", email_forwarding_enabled) @property @pulumi.getter(name="emailIdentity") @@ -60,10 +79,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] email_forwarding_enabled: Sets the feedback forwarding configuration for the identity. :param pulumi.Input[str] email_identity: The email identity. """ + _EmailIdentityFeedbackAttributesState._configure( + lambda key, value: pulumi.set(__self__, key, value), + email_forwarding_enabled=email_forwarding_enabled, + email_identity=email_identity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email_forwarding_enabled: Optional[pulumi.Input[bool]] = None, + email_identity: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email_forwarding_enabled is None and 'emailForwardingEnabled' in kwargs: + email_forwarding_enabled = kwargs['emailForwardingEnabled'] + if email_identity is None and 'emailIdentity' in kwargs: + email_identity = kwargs['emailIdentity'] + if email_forwarding_enabled is not None: - pulumi.set(__self__, "email_forwarding_enabled", email_forwarding_enabled) + _setter("email_forwarding_enabled", email_forwarding_enabled) if email_identity is not None: - pulumi.set(__self__, "email_identity", email_identity) + _setter("email_identity", email_identity) @property @pulumi.getter(name="emailForwardingEnabled") @@ -167,6 +203,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EmailIdentityFeedbackAttributesArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sesv2/email_identity_mail_from_attributes.py b/sdk/python/pulumi_aws/sesv2/email_identity_mail_from_attributes.py index 07ba0269353..02f4acbd826 100644 --- a/sdk/python/pulumi_aws/sesv2/email_identity_mail_from_attributes.py +++ b/sdk/python/pulumi_aws/sesv2/email_identity_mail_from_attributes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EmailIdentityMailFromAttributesArgs', 'EmailIdentityMailFromAttributes'] @@ -23,11 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[str] behavior_on_mx_failure: The action to take if the required MX record isn't found when you send an email. Valid values: `USE_DEFAULT_VALUE`, `REJECT_MESSAGE`. :param pulumi.Input[str] mail_from_domain: The custom MAIL FROM domain that you want the verified identity to use. Required if `behavior_on_mx_failure` is `REJECT_MESSAGE`. """ - pulumi.set(__self__, "email_identity", email_identity) + EmailIdentityMailFromAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + email_identity=email_identity, + behavior_on_mx_failure=behavior_on_mx_failure, + mail_from_domain=mail_from_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + email_identity: Optional[pulumi.Input[str]] = None, + behavior_on_mx_failure: Optional[pulumi.Input[str]] = None, + mail_from_domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if email_identity is None and 'emailIdentity' in kwargs: + email_identity = kwargs['emailIdentity'] + if email_identity is None: + raise TypeError("Missing 'email_identity' argument") + if behavior_on_mx_failure is None and 'behaviorOnMxFailure' in kwargs: + behavior_on_mx_failure = kwargs['behaviorOnMxFailure'] + if mail_from_domain is None and 'mailFromDomain' in kwargs: + mail_from_domain = kwargs['mailFromDomain'] + + _setter("email_identity", email_identity) if behavior_on_mx_failure is not None: - pulumi.set(__self__, "behavior_on_mx_failure", behavior_on_mx_failure) + _setter("behavior_on_mx_failure", behavior_on_mx_failure) if mail_from_domain is not None: - pulumi.set(__self__, "mail_from_domain", mail_from_domain) + _setter("mail_from_domain", mail_from_domain) @property @pulumi.getter(name="emailIdentity") @@ -78,12 +101,33 @@ def __init__(__self__, *, :param pulumi.Input[str] email_identity: The verified email identity. :param pulumi.Input[str] mail_from_domain: The custom MAIL FROM domain that you want the verified identity to use. Required if `behavior_on_mx_failure` is `REJECT_MESSAGE`. """ + _EmailIdentityMailFromAttributesState._configure( + lambda key, value: pulumi.set(__self__, key, value), + behavior_on_mx_failure=behavior_on_mx_failure, + email_identity=email_identity, + mail_from_domain=mail_from_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + behavior_on_mx_failure: Optional[pulumi.Input[str]] = None, + email_identity: Optional[pulumi.Input[str]] = None, + mail_from_domain: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if behavior_on_mx_failure is None and 'behaviorOnMxFailure' in kwargs: + behavior_on_mx_failure = kwargs['behaviorOnMxFailure'] + if email_identity is None and 'emailIdentity' in kwargs: + email_identity = kwargs['emailIdentity'] + if mail_from_domain is None and 'mailFromDomain' in kwargs: + mail_from_domain = kwargs['mailFromDomain'] + if behavior_on_mx_failure is not None: - pulumi.set(__self__, "behavior_on_mx_failure", behavior_on_mx_failure) + _setter("behavior_on_mx_failure", behavior_on_mx_failure) if email_identity is not None: - pulumi.set(__self__, "email_identity", email_identity) + _setter("email_identity", email_identity) if mail_from_domain is not None: - pulumi.set(__self__, "mail_from_domain", mail_from_domain) + _setter("mail_from_domain", mail_from_domain) @property @pulumi.getter(name="behaviorOnMxFailure") @@ -203,6 +247,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EmailIdentityMailFromAttributesArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sesv2/get_configuration_set.py b/sdk/python/pulumi_aws/sesv2/get_configuration_set.py index c3d38caf050..9f0df77cda4 100644 --- a/sdk/python/pulumi_aws/sesv2/get_configuration_set.py +++ b/sdk/python/pulumi_aws/sesv2/get_configuration_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/sesv2/get_dedicated_ip_pool.py b/sdk/python/pulumi_aws/sesv2/get_dedicated_ip_pool.py index 9f1d156139c..147a467cedf 100644 --- a/sdk/python/pulumi_aws/sesv2/get_dedicated_ip_pool.py +++ b/sdk/python/pulumi_aws/sesv2/get_dedicated_ip_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/sesv2/get_email_identity.py b/sdk/python/pulumi_aws/sesv2/get_email_identity.py index 8b7bb11134a..ee2b05ddb5a 100644 --- a/sdk/python/pulumi_aws/sesv2/get_email_identity.py +++ b/sdk/python/pulumi_aws/sesv2/get_email_identity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/sesv2/get_email_identity_mail_from_attributes.py b/sdk/python/pulumi_aws/sesv2/get_email_identity_mail_from_attributes.py index 82329304c11..12c48b6272b 100644 --- a/sdk/python/pulumi_aws/sesv2/get_email_identity_mail_from_attributes.py +++ b/sdk/python/pulumi_aws/sesv2/get_email_identity_mail_from_attributes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/sesv2/outputs.py b/sdk/python/pulumi_aws/sesv2/outputs.py index c87dc3d9114..db09369484e 100644 --- a/sdk/python/pulumi_aws/sesv2/outputs.py +++ b/sdk/python/pulumi_aws/sesv2/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -65,8 +65,21 @@ def __init__(__self__, *, """ :param str engagement_metrics: Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. """ + AccountVdmAttributesDashboardAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + engagement_metrics=engagement_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engagement_metrics: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engagement_metrics is None and 'engagementMetrics' in kwargs: + engagement_metrics = kwargs['engagementMetrics'] + if engagement_metrics is not None: - pulumi.set(__self__, "engagement_metrics", engagement_metrics) + _setter("engagement_metrics", engagement_metrics) @property @pulumi.getter(name="engagementMetrics") @@ -101,8 +114,21 @@ def __init__(__self__, *, """ :param str optimized_shared_delivery: Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. """ + AccountVdmAttributesGuardianAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + optimized_shared_delivery=optimized_shared_delivery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + optimized_shared_delivery: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if optimized_shared_delivery is None and 'optimizedSharedDelivery' in kwargs: + optimized_shared_delivery = kwargs['optimizedSharedDelivery'] + if optimized_shared_delivery is not None: - pulumi.set(__self__, "optimized_shared_delivery", optimized_shared_delivery) + _setter("optimized_shared_delivery", optimized_shared_delivery) @property @pulumi.getter(name="optimizedSharedDelivery") @@ -141,10 +167,27 @@ def __init__(__self__, *, :param str sending_pool_name: The name of the dedicated IP pool to associate with the configuration set. :param str tls_policy: Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). Valid values: `REQUIRE`, `OPTIONAL`. """ + ConfigurationSetDeliveryOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + sending_pool_name=sending_pool_name, + tls_policy=tls_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sending_pool_name: Optional[str] = None, + tls_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sending_pool_name is None and 'sendingPoolName' in kwargs: + sending_pool_name = kwargs['sendingPoolName'] + if tls_policy is None and 'tlsPolicy' in kwargs: + tls_policy = kwargs['tlsPolicy'] + if sending_pool_name is not None: - pulumi.set(__self__, "sending_pool_name", sending_pool_name) + _setter("sending_pool_name", sending_pool_name) if tls_policy is not None: - pulumi.set(__self__, "tls_policy", tls_policy) + _setter("tls_policy", tls_policy) @property @pulumi.getter(name="sendingPoolName") @@ -207,17 +250,50 @@ def __init__(__self__, *, :param 'ConfigurationSetEventDestinationEventDestinationPinpointDestinationArgs' pinpoint_destination: An object that defines an Amazon Pinpoint project destination for email events. See pinpoint_destination below. :param 'ConfigurationSetEventDestinationEventDestinationSnsDestinationArgs' sns_destination: An object that defines an Amazon SNS destination for email events. See sns_destination below. """ - pulumi.set(__self__, "matching_event_types", matching_event_types) + ConfigurationSetEventDestinationEventDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + matching_event_types=matching_event_types, + cloud_watch_destination=cloud_watch_destination, + enabled=enabled, + kinesis_firehose_destination=kinesis_firehose_destination, + pinpoint_destination=pinpoint_destination, + sns_destination=sns_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + matching_event_types: Optional[Sequence[str]] = None, + cloud_watch_destination: Optional['outputs.ConfigurationSetEventDestinationEventDestinationCloudWatchDestination'] = None, + enabled: Optional[bool] = None, + kinesis_firehose_destination: Optional['outputs.ConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination'] = None, + pinpoint_destination: Optional['outputs.ConfigurationSetEventDestinationEventDestinationPinpointDestination'] = None, + sns_destination: Optional['outputs.ConfigurationSetEventDestinationEventDestinationSnsDestination'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if matching_event_types is None and 'matchingEventTypes' in kwargs: + matching_event_types = kwargs['matchingEventTypes'] + if matching_event_types is None: + raise TypeError("Missing 'matching_event_types' argument") + if cloud_watch_destination is None and 'cloudWatchDestination' in kwargs: + cloud_watch_destination = kwargs['cloudWatchDestination'] + if kinesis_firehose_destination is None and 'kinesisFirehoseDestination' in kwargs: + kinesis_firehose_destination = kwargs['kinesisFirehoseDestination'] + if pinpoint_destination is None and 'pinpointDestination' in kwargs: + pinpoint_destination = kwargs['pinpointDestination'] + if sns_destination is None and 'snsDestination' in kwargs: + sns_destination = kwargs['snsDestination'] + + _setter("matching_event_types", matching_event_types) if cloud_watch_destination is not None: - pulumi.set(__self__, "cloud_watch_destination", cloud_watch_destination) + _setter("cloud_watch_destination", cloud_watch_destination) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if kinesis_firehose_destination is not None: - pulumi.set(__self__, "kinesis_firehose_destination", kinesis_firehose_destination) + _setter("kinesis_firehose_destination", kinesis_firehose_destination) if pinpoint_destination is not None: - pulumi.set(__self__, "pinpoint_destination", pinpoint_destination) + _setter("pinpoint_destination", pinpoint_destination) if sns_destination is not None: - pulumi.set(__self__, "sns_destination", sns_destination) + _setter("sns_destination", sns_destination) @property @pulumi.getter(name="matchingEventTypes") @@ -294,7 +370,22 @@ def __init__(__self__, *, """ :param Sequence['ConfigurationSetEventDestinationEventDestinationCloudWatchDestinationDimensionConfigurationArgs'] dimension_configurations: An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch. See dimension_configuration below. """ - pulumi.set(__self__, "dimension_configurations", dimension_configurations) + ConfigurationSetEventDestinationEventDestinationCloudWatchDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + dimension_configurations=dimension_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dimension_configurations: Optional[Sequence['outputs.ConfigurationSetEventDestinationEventDestinationCloudWatchDestinationDimensionConfiguration']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dimension_configurations is None and 'dimensionConfigurations' in kwargs: + dimension_configurations = kwargs['dimensionConfigurations'] + if dimension_configurations is None: + raise TypeError("Missing 'dimension_configurations' argument") + + _setter("dimension_configurations", dimension_configurations) @property @pulumi.getter(name="dimensionConfigurations") @@ -337,9 +428,36 @@ def __init__(__self__, *, :param str dimension_name: The name of an Amazon CloudWatch dimension associated with an email sending metric. :param str dimension_value_source: The location where the Amazon SES API v2 finds the value of a dimension to publish to Amazon CloudWatch. Valid values: `MESSAGE_TAG`, `EMAIL_HEADER`, `LINK_TAG`. """ - pulumi.set(__self__, "default_dimension_value", default_dimension_value) - pulumi.set(__self__, "dimension_name", dimension_name) - pulumi.set(__self__, "dimension_value_source", dimension_value_source) + ConfigurationSetEventDestinationEventDestinationCloudWatchDestinationDimensionConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_dimension_value=default_dimension_value, + dimension_name=dimension_name, + dimension_value_source=dimension_value_source, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_dimension_value: Optional[str] = None, + dimension_name: Optional[str] = None, + dimension_value_source: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_dimension_value is None and 'defaultDimensionValue' in kwargs: + default_dimension_value = kwargs['defaultDimensionValue'] + if default_dimension_value is None: + raise TypeError("Missing 'default_dimension_value' argument") + if dimension_name is None and 'dimensionName' in kwargs: + dimension_name = kwargs['dimensionName'] + if dimension_name is None: + raise TypeError("Missing 'dimension_name' argument") + if dimension_value_source is None and 'dimensionValueSource' in kwargs: + dimension_value_source = kwargs['dimensionValueSource'] + if dimension_value_source is None: + raise TypeError("Missing 'dimension_value_source' argument") + + _setter("default_dimension_value", default_dimension_value) + _setter("dimension_name", dimension_name) + _setter("dimension_value_source", dimension_value_source) @property @pulumi.getter(name="defaultDimensionValue") @@ -394,8 +512,29 @@ def __init__(__self__, *, :param str delivery_stream_arn: The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream that the Amazon SES API v2 sends email events to. :param str iam_role_arn: The Amazon Resource Name (ARN) of the IAM role that the Amazon SES API v2 uses to send email events to the Amazon Kinesis Data Firehose stream. """ - pulumi.set(__self__, "delivery_stream_arn", delivery_stream_arn) - pulumi.set(__self__, "iam_role_arn", iam_role_arn) + ConfigurationSetEventDestinationEventDestinationKinesisFirehoseDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + delivery_stream_arn=delivery_stream_arn, + iam_role_arn=iam_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + delivery_stream_arn: Optional[str] = None, + iam_role_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if delivery_stream_arn is None and 'deliveryStreamArn' in kwargs: + delivery_stream_arn = kwargs['deliveryStreamArn'] + if delivery_stream_arn is None: + raise TypeError("Missing 'delivery_stream_arn' argument") + if iam_role_arn is None and 'iamRoleArn' in kwargs: + iam_role_arn = kwargs['iamRoleArn'] + if iam_role_arn is None: + raise TypeError("Missing 'iam_role_arn' argument") + + _setter("delivery_stream_arn", delivery_stream_arn) + _setter("iam_role_arn", iam_role_arn) @property @pulumi.getter(name="deliveryStreamArn") @@ -435,7 +574,22 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, application_arn: str): - pulumi.set(__self__, "application_arn", application_arn) + ConfigurationSetEventDestinationEventDestinationPinpointDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_arn=application_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_arn is None and 'applicationArn' in kwargs: + application_arn = kwargs['applicationArn'] + if application_arn is None: + raise TypeError("Missing 'application_arn' argument") + + _setter("application_arn", application_arn) @property @pulumi.getter(name="applicationArn") @@ -467,7 +621,22 @@ def __init__(__self__, *, """ :param str topic_arn: The Amazon Resource Name (ARN) of the Amazon SNS topic to publish email events to. """ - pulumi.set(__self__, "topic_arn", topic_arn) + ConfigurationSetEventDestinationEventDestinationSnsDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + topic_arn=topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if topic_arn is None and 'topicArn' in kwargs: + topic_arn = kwargs['topicArn'] + if topic_arn is None: + raise TypeError("Missing 'topic_arn' argument") + + _setter("topic_arn", topic_arn) @property @pulumi.getter(name="topicArn") @@ -506,10 +675,27 @@ def __init__(__self__, *, :param str last_fresh_start: The date and time (in Unix time) when the reputation metrics were last given a fresh start. When your account is given a fresh start, your reputation metrics are calculated starting from the date of the fresh start. :param bool reputation_metrics_enabled: If `true`, tracking of reputation metrics is enabled for the configuration set. If `false`, tracking of reputation metrics is disabled for the configuration set. """ + ConfigurationSetReputationOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + last_fresh_start=last_fresh_start, + reputation_metrics_enabled=reputation_metrics_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + last_fresh_start: Optional[str] = None, + reputation_metrics_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if last_fresh_start is None and 'lastFreshStart' in kwargs: + last_fresh_start = kwargs['lastFreshStart'] + if reputation_metrics_enabled is None and 'reputationMetricsEnabled' in kwargs: + reputation_metrics_enabled = kwargs['reputationMetricsEnabled'] + if last_fresh_start is not None: - pulumi.set(__self__, "last_fresh_start", last_fresh_start) + _setter("last_fresh_start", last_fresh_start) if reputation_metrics_enabled is not None: - pulumi.set(__self__, "reputation_metrics_enabled", reputation_metrics_enabled) + _setter("reputation_metrics_enabled", reputation_metrics_enabled) @property @pulumi.getter(name="lastFreshStart") @@ -552,8 +738,21 @@ def __init__(__self__, *, """ :param bool sending_enabled: If `true`, email sending is enabled for the configuration set. If `false`, email sending is disabled for the configuration set. """ + ConfigurationSetSendingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + sending_enabled=sending_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sending_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sending_enabled is None and 'sendingEnabled' in kwargs: + sending_enabled = kwargs['sendingEnabled'] + if sending_enabled is not None: - pulumi.set(__self__, "sending_enabled", sending_enabled) + _setter("sending_enabled", sending_enabled) @property @pulumi.getter(name="sendingEnabled") @@ -588,8 +787,21 @@ def __init__(__self__, *, """ :param Sequence[str] suppressed_reasons: A list that contains the reasons that email addresses are automatically added to the suppression list for your account. Valid values: `BOUNCE`, `COMPLAINT`. """ + ConfigurationSetSuppressionOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + suppressed_reasons=suppressed_reasons, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + suppressed_reasons: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if suppressed_reasons is None and 'suppressedReasons' in kwargs: + suppressed_reasons = kwargs['suppressedReasons'] + if suppressed_reasons is not None: - pulumi.set(__self__, "suppressed_reasons", suppressed_reasons) + _setter("suppressed_reasons", suppressed_reasons) @property @pulumi.getter(name="suppressedReasons") @@ -624,7 +836,22 @@ def __init__(__self__, *, """ :param str custom_redirect_domain: The domain to use for tracking open and click events. """ - pulumi.set(__self__, "custom_redirect_domain", custom_redirect_domain) + ConfigurationSetTrackingOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_redirect_domain=custom_redirect_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_redirect_domain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_redirect_domain is None and 'customRedirectDomain' in kwargs: + custom_redirect_domain = kwargs['customRedirectDomain'] + if custom_redirect_domain is None: + raise TypeError("Missing 'custom_redirect_domain' argument") + + _setter("custom_redirect_domain", custom_redirect_domain) @property @pulumi.getter(name="customRedirectDomain") @@ -663,10 +890,27 @@ def __init__(__self__, *, :param 'ConfigurationSetVdmOptionsDashboardOptionsArgs' dashboard_options: Specifies additional settings for your VDM configuration as applicable to the Dashboard. :param 'ConfigurationSetVdmOptionsGuardianOptionsArgs' guardian_options: Specifies additional settings for your VDM configuration as applicable to the Guardian. """ + ConfigurationSetVdmOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + dashboard_options=dashboard_options, + guardian_options=guardian_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dashboard_options: Optional['outputs.ConfigurationSetVdmOptionsDashboardOptions'] = None, + guardian_options: Optional['outputs.ConfigurationSetVdmOptionsGuardianOptions'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dashboard_options is None and 'dashboardOptions' in kwargs: + dashboard_options = kwargs['dashboardOptions'] + if guardian_options is None and 'guardianOptions' in kwargs: + guardian_options = kwargs['guardianOptions'] + if dashboard_options is not None: - pulumi.set(__self__, "dashboard_options", dashboard_options) + _setter("dashboard_options", dashboard_options) if guardian_options is not None: - pulumi.set(__self__, "guardian_options", guardian_options) + _setter("guardian_options", guardian_options) @property @pulumi.getter(name="dashboardOptions") @@ -709,8 +953,21 @@ def __init__(__self__, *, """ :param str engagement_metrics: Specifies the status of your VDM engagement metrics collection. Valid values: `ENABLED`, `DISABLED`. """ + ConfigurationSetVdmOptionsDashboardOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + engagement_metrics=engagement_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engagement_metrics: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engagement_metrics is None and 'engagementMetrics' in kwargs: + engagement_metrics = kwargs['engagementMetrics'] + if engagement_metrics is not None: - pulumi.set(__self__, "engagement_metrics", engagement_metrics) + _setter("engagement_metrics", engagement_metrics) @property @pulumi.getter(name="engagementMetrics") @@ -745,8 +1002,21 @@ def __init__(__self__, *, """ :param str optimized_shared_delivery: Specifies the status of your VDM optimized shared delivery. Valid values: `ENABLED`, `DISABLED`. """ + ConfigurationSetVdmOptionsGuardianOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + optimized_shared_delivery=optimized_shared_delivery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + optimized_shared_delivery: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if optimized_shared_delivery is None and 'optimizedSharedDelivery' in kwargs: + optimized_shared_delivery = kwargs['optimizedSharedDelivery'] + if optimized_shared_delivery is not None: - pulumi.set(__self__, "optimized_shared_delivery", optimized_shared_delivery) + _setter("optimized_shared_delivery", optimized_shared_delivery) @property @pulumi.getter(name="optimizedSharedDelivery") @@ -793,11 +1063,40 @@ def __init__(__self__, *, The following arguments are optional: :param str description: A description of what the topic is about, which the contact will see. """ - pulumi.set(__self__, "default_subscription_status", default_subscription_status) - pulumi.set(__self__, "display_name", display_name) - pulumi.set(__self__, "topic_name", topic_name) + ContactListTopic._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_subscription_status=default_subscription_status, + display_name=display_name, + topic_name=topic_name, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_subscription_status: Optional[str] = None, + display_name: Optional[str] = None, + topic_name: Optional[str] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_subscription_status is None and 'defaultSubscriptionStatus' in kwargs: + default_subscription_status = kwargs['defaultSubscriptionStatus'] + if default_subscription_status is None: + raise TypeError("Missing 'default_subscription_status' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if display_name is None: + raise TypeError("Missing 'display_name' argument") + if topic_name is None and 'topicName' in kwargs: + topic_name = kwargs['topicName'] + if topic_name is None: + raise TypeError("Missing 'topic_name' argument") + + _setter("default_subscription_status", default_subscription_status) + _setter("display_name", display_name) + _setter("topic_name", topic_name) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter(name="defaultSubscriptionStatus") @@ -884,22 +1183,59 @@ def __init__(__self__, *, :param str status: Describes whether or not Amazon SES has successfully located the DKIM records in the DNS records for the domain. See the [AWS SES API v2 Reference](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_DkimAttributes.html#SES-Type-DkimAttributes-Status) for supported statuses. :param Sequence[str] tokens: If you used Easy DKIM to configure DKIM authentication for the domain, then this object contains a set of unique strings that you use to create a set of CNAME records that you add to the DNS configuration for your domain. When Amazon SES detects these records in the DNS configuration for your domain, the DKIM authentication process is complete. If you configured DKIM authentication for the domain by providing your own public-private key pair, then this object contains the selector for the public key. """ + EmailIdentityDkimSigningAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + current_signing_key_length=current_signing_key_length, + domain_signing_private_key=domain_signing_private_key, + domain_signing_selector=domain_signing_selector, + last_key_generation_timestamp=last_key_generation_timestamp, + next_signing_key_length=next_signing_key_length, + signing_attributes_origin=signing_attributes_origin, + status=status, + tokens=tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + current_signing_key_length: Optional[str] = None, + domain_signing_private_key: Optional[str] = None, + domain_signing_selector: Optional[str] = None, + last_key_generation_timestamp: Optional[str] = None, + next_signing_key_length: Optional[str] = None, + signing_attributes_origin: Optional[str] = None, + status: Optional[str] = None, + tokens: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if current_signing_key_length is None and 'currentSigningKeyLength' in kwargs: + current_signing_key_length = kwargs['currentSigningKeyLength'] + if domain_signing_private_key is None and 'domainSigningPrivateKey' in kwargs: + domain_signing_private_key = kwargs['domainSigningPrivateKey'] + if domain_signing_selector is None and 'domainSigningSelector' in kwargs: + domain_signing_selector = kwargs['domainSigningSelector'] + if last_key_generation_timestamp is None and 'lastKeyGenerationTimestamp' in kwargs: + last_key_generation_timestamp = kwargs['lastKeyGenerationTimestamp'] + if next_signing_key_length is None and 'nextSigningKeyLength' in kwargs: + next_signing_key_length = kwargs['nextSigningKeyLength'] + if signing_attributes_origin is None and 'signingAttributesOrigin' in kwargs: + signing_attributes_origin = kwargs['signingAttributesOrigin'] + if current_signing_key_length is not None: - pulumi.set(__self__, "current_signing_key_length", current_signing_key_length) + _setter("current_signing_key_length", current_signing_key_length) if domain_signing_private_key is not None: - pulumi.set(__self__, "domain_signing_private_key", domain_signing_private_key) + _setter("domain_signing_private_key", domain_signing_private_key) if domain_signing_selector is not None: - pulumi.set(__self__, "domain_signing_selector", domain_signing_selector) + _setter("domain_signing_selector", domain_signing_selector) if last_key_generation_timestamp is not None: - pulumi.set(__self__, "last_key_generation_timestamp", last_key_generation_timestamp) + _setter("last_key_generation_timestamp", last_key_generation_timestamp) if next_signing_key_length is not None: - pulumi.set(__self__, "next_signing_key_length", next_signing_key_length) + _setter("next_signing_key_length", next_signing_key_length) if signing_attributes_origin is not None: - pulumi.set(__self__, "signing_attributes_origin", signing_attributes_origin) + _setter("signing_attributes_origin", signing_attributes_origin) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tokens is not None: - pulumi.set(__self__, "tokens", tokens) + _setter("tokens", tokens) @property @pulumi.getter(name="currentSigningKeyLength") @@ -977,8 +1313,29 @@ def __init__(__self__, *, :param str sending_pool_name: The name of the dedicated IP pool to associate with the configuration set. :param str tls_policy: Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). """ - pulumi.set(__self__, "sending_pool_name", sending_pool_name) - pulumi.set(__self__, "tls_policy", tls_policy) + GetConfigurationSetDeliveryOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + sending_pool_name=sending_pool_name, + tls_policy=tls_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sending_pool_name: Optional[str] = None, + tls_policy: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sending_pool_name is None and 'sendingPoolName' in kwargs: + sending_pool_name = kwargs['sendingPoolName'] + if sending_pool_name is None: + raise TypeError("Missing 'sending_pool_name' argument") + if tls_policy is None and 'tlsPolicy' in kwargs: + tls_policy = kwargs['tlsPolicy'] + if tls_policy is None: + raise TypeError("Missing 'tls_policy' argument") + + _setter("sending_pool_name", sending_pool_name) + _setter("tls_policy", tls_policy) @property @pulumi.getter(name="sendingPoolName") @@ -1006,8 +1363,29 @@ def __init__(__self__, *, :param str last_fresh_start: The date and time (in Unix time) when the reputation metrics were last given a fresh start. :param bool reputation_metrics_enabled: Specifies whether tracking of reputation metrics is enabled. """ - pulumi.set(__self__, "last_fresh_start", last_fresh_start) - pulumi.set(__self__, "reputation_metrics_enabled", reputation_metrics_enabled) + GetConfigurationSetReputationOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + last_fresh_start=last_fresh_start, + reputation_metrics_enabled=reputation_metrics_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + last_fresh_start: Optional[str] = None, + reputation_metrics_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if last_fresh_start is None and 'lastFreshStart' in kwargs: + last_fresh_start = kwargs['lastFreshStart'] + if last_fresh_start is None: + raise TypeError("Missing 'last_fresh_start' argument") + if reputation_metrics_enabled is None and 'reputationMetricsEnabled' in kwargs: + reputation_metrics_enabled = kwargs['reputationMetricsEnabled'] + if reputation_metrics_enabled is None: + raise TypeError("Missing 'reputation_metrics_enabled' argument") + + _setter("last_fresh_start", last_fresh_start) + _setter("reputation_metrics_enabled", reputation_metrics_enabled) @property @pulumi.getter(name="lastFreshStart") @@ -1033,7 +1411,22 @@ def __init__(__self__, *, """ :param bool sending_enabled: Specifies whether email sending is enabled. """ - pulumi.set(__self__, "sending_enabled", sending_enabled) + GetConfigurationSetSendingOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + sending_enabled=sending_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sending_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sending_enabled is None and 'sendingEnabled' in kwargs: + sending_enabled = kwargs['sendingEnabled'] + if sending_enabled is None: + raise TypeError("Missing 'sending_enabled' argument") + + _setter("sending_enabled", sending_enabled) @property @pulumi.getter(name="sendingEnabled") @@ -1051,7 +1444,22 @@ def __init__(__self__, *, """ :param Sequence[str] suppressed_reasons: A list that contains the reasons that email addresses are automatically added to the suppression list for your account. """ - pulumi.set(__self__, "suppressed_reasons", suppressed_reasons) + GetConfigurationSetSuppressionOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + suppressed_reasons=suppressed_reasons, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + suppressed_reasons: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if suppressed_reasons is None and 'suppressedReasons' in kwargs: + suppressed_reasons = kwargs['suppressedReasons'] + if suppressed_reasons is None: + raise TypeError("Missing 'suppressed_reasons' argument") + + _setter("suppressed_reasons", suppressed_reasons) @property @pulumi.getter(name="suppressedReasons") @@ -1069,7 +1477,22 @@ def __init__(__self__, *, """ :param str custom_redirect_domain: The domain to use for tracking open and click events. """ - pulumi.set(__self__, "custom_redirect_domain", custom_redirect_domain) + GetConfigurationSetTrackingOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_redirect_domain=custom_redirect_domain, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_redirect_domain: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_redirect_domain is None and 'customRedirectDomain' in kwargs: + custom_redirect_domain = kwargs['customRedirectDomain'] + if custom_redirect_domain is None: + raise TypeError("Missing 'custom_redirect_domain' argument") + + _setter("custom_redirect_domain", custom_redirect_domain) @property @pulumi.getter(name="customRedirectDomain") @@ -1089,8 +1512,29 @@ def __init__(__self__, *, :param Sequence['GetConfigurationSetVdmOptionDashboardOptionArgs'] dashboard_options: Specifies additional settings for your VDM configuration as applicable to the Dashboard. :param Sequence['GetConfigurationSetVdmOptionGuardianOptionArgs'] guardian_options: Specifies additional settings for your VDM configuration as applicable to the Guardian. """ - pulumi.set(__self__, "dashboard_options", dashboard_options) - pulumi.set(__self__, "guardian_options", guardian_options) + GetConfigurationSetVdmOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dashboard_options=dashboard_options, + guardian_options=guardian_options, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dashboard_options: Optional[Sequence['outputs.GetConfigurationSetVdmOptionDashboardOptionResult']] = None, + guardian_options: Optional[Sequence['outputs.GetConfigurationSetVdmOptionGuardianOptionResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dashboard_options is None and 'dashboardOptions' in kwargs: + dashboard_options = kwargs['dashboardOptions'] + if dashboard_options is None: + raise TypeError("Missing 'dashboard_options' argument") + if guardian_options is None and 'guardianOptions' in kwargs: + guardian_options = kwargs['guardianOptions'] + if guardian_options is None: + raise TypeError("Missing 'guardian_options' argument") + + _setter("dashboard_options", dashboard_options) + _setter("guardian_options", guardian_options) @property @pulumi.getter(name="dashboardOptions") @@ -1116,7 +1560,22 @@ def __init__(__self__, *, """ :param str engagement_metrics: Specifies the status of your VDM engagement metrics collection. """ - pulumi.set(__self__, "engagement_metrics", engagement_metrics) + GetConfigurationSetVdmOptionDashboardOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + engagement_metrics=engagement_metrics, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + engagement_metrics: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if engagement_metrics is None and 'engagementMetrics' in kwargs: + engagement_metrics = kwargs['engagementMetrics'] + if engagement_metrics is None: + raise TypeError("Missing 'engagement_metrics' argument") + + _setter("engagement_metrics", engagement_metrics) @property @pulumi.getter(name="engagementMetrics") @@ -1134,7 +1593,22 @@ def __init__(__self__, *, """ :param str optimized_shared_delivery: Specifies the status of your VDM optimized shared delivery. """ - pulumi.set(__self__, "optimized_shared_delivery", optimized_shared_delivery) + GetConfigurationSetVdmOptionGuardianOptionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + optimized_shared_delivery=optimized_shared_delivery, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + optimized_shared_delivery: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if optimized_shared_delivery is None and 'optimizedSharedDelivery' in kwargs: + optimized_shared_delivery = kwargs['optimizedSharedDelivery'] + if optimized_shared_delivery is None: + raise TypeError("Missing 'optimized_shared_delivery' argument") + + _setter("optimized_shared_delivery", optimized_shared_delivery) @property @pulumi.getter(name="optimizedSharedDelivery") @@ -1156,9 +1630,34 @@ def __init__(__self__, *, :param int warmup_percentage: Indicates how complete the dedicated IP warm-up process is. When this value equals `1`, the address has completed the warm-up process and is ready for use. :param str warmup_status: The warm-up status of a dedicated IP address. Valid values: `IN_PROGRESS`, `DONE`. """ - pulumi.set(__self__, "ip", ip) - pulumi.set(__self__, "warmup_percentage", warmup_percentage) - pulumi.set(__self__, "warmup_status", warmup_status) + GetDedicatedIpPoolDedicatedIpResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip=ip, + warmup_percentage=warmup_percentage, + warmup_status=warmup_status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip: Optional[str] = None, + warmup_percentage: Optional[int] = None, + warmup_status: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip is None: + raise TypeError("Missing 'ip' argument") + if warmup_percentage is None and 'warmupPercentage' in kwargs: + warmup_percentage = kwargs['warmupPercentage'] + if warmup_percentage is None: + raise TypeError("Missing 'warmup_percentage' argument") + if warmup_status is None and 'warmupStatus' in kwargs: + warmup_status = kwargs['warmupStatus'] + if warmup_status is None: + raise TypeError("Missing 'warmup_status' argument") + + _setter("ip", ip) + _setter("warmup_percentage", warmup_percentage) + _setter("warmup_status", warmup_status) @property @pulumi.getter @@ -1204,14 +1703,67 @@ def __init__(__self__, *, :param str status: Describes whether or not Amazon SES has successfully located the DKIM records in the DNS records for the domain. See the [AWS SES API v2 Reference](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_DkimAttributes.html#SES-Type-DkimAttributes-Status) for supported statuses. :param Sequence[str] tokens: If you used Easy DKIM to configure DKIM authentication for the domain, then this object contains a set of unique strings that you use to create a set of CNAME records that you add to the DNS configuration for your domain. When Amazon SES detects these records in the DNS configuration for your domain, the DKIM authentication process is complete. If you configured DKIM authentication for the domain by providing your own public-private key pair, then this object contains the selector for the public key. """ - pulumi.set(__self__, "current_signing_key_length", current_signing_key_length) - pulumi.set(__self__, "domain_signing_private_key", domain_signing_private_key) - pulumi.set(__self__, "domain_signing_selector", domain_signing_selector) - pulumi.set(__self__, "last_key_generation_timestamp", last_key_generation_timestamp) - pulumi.set(__self__, "next_signing_key_length", next_signing_key_length) - pulumi.set(__self__, "signing_attributes_origin", signing_attributes_origin) - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "tokens", tokens) + GetEmailIdentityDkimSigningAttributeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + current_signing_key_length=current_signing_key_length, + domain_signing_private_key=domain_signing_private_key, + domain_signing_selector=domain_signing_selector, + last_key_generation_timestamp=last_key_generation_timestamp, + next_signing_key_length=next_signing_key_length, + signing_attributes_origin=signing_attributes_origin, + status=status, + tokens=tokens, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + current_signing_key_length: Optional[str] = None, + domain_signing_private_key: Optional[str] = None, + domain_signing_selector: Optional[str] = None, + last_key_generation_timestamp: Optional[str] = None, + next_signing_key_length: Optional[str] = None, + signing_attributes_origin: Optional[str] = None, + status: Optional[str] = None, + tokens: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if current_signing_key_length is None and 'currentSigningKeyLength' in kwargs: + current_signing_key_length = kwargs['currentSigningKeyLength'] + if current_signing_key_length is None: + raise TypeError("Missing 'current_signing_key_length' argument") + if domain_signing_private_key is None and 'domainSigningPrivateKey' in kwargs: + domain_signing_private_key = kwargs['domainSigningPrivateKey'] + if domain_signing_private_key is None: + raise TypeError("Missing 'domain_signing_private_key' argument") + if domain_signing_selector is None and 'domainSigningSelector' in kwargs: + domain_signing_selector = kwargs['domainSigningSelector'] + if domain_signing_selector is None: + raise TypeError("Missing 'domain_signing_selector' argument") + if last_key_generation_timestamp is None and 'lastKeyGenerationTimestamp' in kwargs: + last_key_generation_timestamp = kwargs['lastKeyGenerationTimestamp'] + if last_key_generation_timestamp is None: + raise TypeError("Missing 'last_key_generation_timestamp' argument") + if next_signing_key_length is None and 'nextSigningKeyLength' in kwargs: + next_signing_key_length = kwargs['nextSigningKeyLength'] + if next_signing_key_length is None: + raise TypeError("Missing 'next_signing_key_length' argument") + if signing_attributes_origin is None and 'signingAttributesOrigin' in kwargs: + signing_attributes_origin = kwargs['signingAttributesOrigin'] + if signing_attributes_origin is None: + raise TypeError("Missing 'signing_attributes_origin' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if tokens is None: + raise TypeError("Missing 'tokens' argument") + + _setter("current_signing_key_length", current_signing_key_length) + _setter("domain_signing_private_key", domain_signing_private_key) + _setter("domain_signing_selector", domain_signing_selector) + _setter("last_key_generation_timestamp", last_key_generation_timestamp) + _setter("next_signing_key_length", next_signing_key_length) + _setter("signing_attributes_origin", signing_attributes_origin) + _setter("status", status) + _setter("tokens", tokens) @property @pulumi.getter(name="currentSigningKeyLength") diff --git a/sdk/python/pulumi_aws/sfn/_inputs.py b/sdk/python/pulumi_aws/sfn/_inputs.py index b84b8ac3de7..5cf01f1439a 100644 --- a/sdk/python/pulumi_aws/sfn/_inputs.py +++ b/sdk/python/pulumi_aws/sfn/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,8 +24,27 @@ def __init__(__self__, *, :param pulumi.Input[str] state_machine_version_arn: The Amazon Resource Name (ARN) of the state machine version. :param pulumi.Input[int] weight: Percentage of traffic routed to the state machine version. """ - pulumi.set(__self__, "state_machine_version_arn", state_machine_version_arn) - pulumi.set(__self__, "weight", weight) + AliasRoutingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + state_machine_version_arn=state_machine_version_arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + state_machine_version_arn: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if state_machine_version_arn is None and 'stateMachineVersionArn' in kwargs: + state_machine_version_arn = kwargs['stateMachineVersionArn'] + if state_machine_version_arn is None: + raise TypeError("Missing 'state_machine_version_arn' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("state_machine_version_arn", state_machine_version_arn) + _setter("weight", weight) @property @pulumi.getter(name="stateMachineVersionArn") @@ -63,12 +82,31 @@ def __init__(__self__, *, :param pulumi.Input[str] level: Defines which category of execution history events are logged. Valid values: `ALL`, `ERROR`, `FATAL`, `OFF` :param pulumi.Input[str] log_destination: Amazon Resource Name (ARN) of a CloudWatch log group. Make sure the State Machine has the correct IAM policies for logging. The ARN must end with `:*` """ + StateMachineLoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + include_execution_data=include_execution_data, + level=level, + log_destination=log_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + include_execution_data: Optional[pulumi.Input[bool]] = None, + level: Optional[pulumi.Input[str]] = None, + log_destination: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if include_execution_data is None and 'includeExecutionData' in kwargs: + include_execution_data = kwargs['includeExecutionData'] + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if include_execution_data is not None: - pulumi.set(__self__, "include_execution_data", include_execution_data) + _setter("include_execution_data", include_execution_data) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) if log_destination is not None: - pulumi.set(__self__, "log_destination", log_destination) + _setter("log_destination", log_destination) @property @pulumi.getter(name="includeExecutionData") @@ -114,8 +152,19 @@ def __init__(__self__, *, """ :param pulumi.Input[bool] enabled: When set to `true`, AWS X-Ray tracing is enabled. Make sure the State Machine has the correct IAM policies for logging. See the [AWS Step Functions Developer Guide](https://docs.aws.amazon.com/step-functions/latest/dg/xray-iam.html) for details. """ + StateMachineTracingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/sfn/activity.py b/sdk/python/pulumi_aws/sfn/activity.py index a4effa2a98a..568a9310c4d 100644 --- a/sdk/python/pulumi_aws/sfn/activity.py +++ b/sdk/python/pulumi_aws/sfn/activity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ActivityArgs', 'Activity'] @@ -21,10 +21,23 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the activity to create. :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. """ + ActivityArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -65,17 +78,38 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ActivityState._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_date=creation_date, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="creationDate") @@ -198,6 +232,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ActivityArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sfn/alias.py b/sdk/python/pulumi_aws/sfn/alias.py index 631cbe76a28..2d029d58f50 100644 --- a/sdk/python/pulumi_aws/sfn/alias.py +++ b/sdk/python/pulumi_aws/sfn/alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,11 +25,30 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the alias. :param pulumi.Input[str] name: Name for the alias you are creating. """ - pulumi.set(__self__, "routing_configurations", routing_configurations) + AliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + routing_configurations=routing_configurations, + description=description, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + routing_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['AliasRoutingConfigurationArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if routing_configurations is None and 'routingConfigurations' in kwargs: + routing_configurations = kwargs['routingConfigurations'] + if routing_configurations is None: + raise TypeError("Missing 'routing_configurations' argument") + + _setter("routing_configurations", routing_configurations) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="routingConfigurations") @@ -84,16 +103,39 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the alias you are creating. :param pulumi.Input[Sequence[pulumi.Input['AliasRoutingConfigurationArgs']]] routing_configurations: The StateMachine alias' route configuration settings. Fields documented below """ + _AliasState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_date=creation_date, + description=description, + name=name, + routing_configurations=routing_configurations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + routing_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['AliasRoutingConfigurationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if routing_configurations is None and 'routingConfigurations' in kwargs: + routing_configurations = kwargs['routingConfigurations'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if routing_configurations is not None: - pulumi.set(__self__, "routing_configurations", routing_configurations) + _setter("routing_configurations", routing_configurations) @property @pulumi.getter @@ -255,6 +297,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AliasArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sfn/get_activity.py b/sdk/python/pulumi_aws/sfn/get_activity.py index b09cd875385..62cd33731e9 100644 --- a/sdk/python/pulumi_aws/sfn/get_activity.py +++ b/sdk/python/pulumi_aws/sfn/get_activity.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/sfn/get_alias.py b/sdk/python/pulumi_aws/sfn/get_alias.py index 7ea64179def..db1cec807cc 100644 --- a/sdk/python/pulumi_aws/sfn/get_alias.py +++ b/sdk/python/pulumi_aws/sfn/get_alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/sfn/get_state_machine.py b/sdk/python/pulumi_aws/sfn/get_state_machine.py index 683cb9fbd34..62ffedac435 100644 --- a/sdk/python/pulumi_aws/sfn/get_state_machine.py +++ b/sdk/python/pulumi_aws/sfn/get_state_machine.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/sfn/get_state_machine_versions.py b/sdk/python/pulumi_aws/sfn/get_state_machine_versions.py index 0d972ecb401..90068b5293a 100644 --- a/sdk/python/pulumi_aws/sfn/get_state_machine_versions.py +++ b/sdk/python/pulumi_aws/sfn/get_state_machine_versions.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/sfn/outputs.py b/sdk/python/pulumi_aws/sfn/outputs.py index 4911adfded5..c5720281a56 100644 --- a/sdk/python/pulumi_aws/sfn/outputs.py +++ b/sdk/python/pulumi_aws/sfn/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -42,8 +42,27 @@ def __init__(__self__, *, :param str state_machine_version_arn: The Amazon Resource Name (ARN) of the state machine version. :param int weight: Percentage of traffic routed to the state machine version. """ - pulumi.set(__self__, "state_machine_version_arn", state_machine_version_arn) - pulumi.set(__self__, "weight", weight) + AliasRoutingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + state_machine_version_arn=state_machine_version_arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + state_machine_version_arn: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if state_machine_version_arn is None and 'stateMachineVersionArn' in kwargs: + state_machine_version_arn = kwargs['stateMachineVersionArn'] + if state_machine_version_arn is None: + raise TypeError("Missing 'state_machine_version_arn' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("state_machine_version_arn", state_machine_version_arn) + _setter("weight", weight) @property @pulumi.getter(name="stateMachineVersionArn") @@ -92,12 +111,31 @@ def __init__(__self__, *, :param str level: Defines which category of execution history events are logged. Valid values: `ALL`, `ERROR`, `FATAL`, `OFF` :param str log_destination: Amazon Resource Name (ARN) of a CloudWatch log group. Make sure the State Machine has the correct IAM policies for logging. The ARN must end with `:*` """ + StateMachineLoggingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + include_execution_data=include_execution_data, + level=level, + log_destination=log_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + include_execution_data: Optional[bool] = None, + level: Optional[str] = None, + log_destination: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if include_execution_data is None and 'includeExecutionData' in kwargs: + include_execution_data = kwargs['includeExecutionData'] + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if include_execution_data is not None: - pulumi.set(__self__, "include_execution_data", include_execution_data) + _setter("include_execution_data", include_execution_data) if level is not None: - pulumi.set(__self__, "level", level) + _setter("level", level) if log_destination is not None: - pulumi.set(__self__, "log_destination", log_destination) + _setter("log_destination", log_destination) @property @pulumi.getter(name="includeExecutionData") @@ -131,8 +169,19 @@ def __init__(__self__, *, """ :param bool enabled: When set to `true`, AWS X-Ray tracing is enabled. Make sure the State Machine has the correct IAM policies for logging. See the [AWS Step Functions Developer Guide](https://docs.aws.amazon.com/step-functions/latest/dg/xray-iam.html) for details. """ + StateMachineTracingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) @property @pulumi.getter @@ -148,8 +197,27 @@ class GetAliasRoutingConfigurationResult(dict): def __init__(__self__, *, state_machine_version_arn: str, weight: int): - pulumi.set(__self__, "state_machine_version_arn", state_machine_version_arn) - pulumi.set(__self__, "weight", weight) + GetAliasRoutingConfigurationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + state_machine_version_arn=state_machine_version_arn, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + state_machine_version_arn: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if state_machine_version_arn is None and 'stateMachineVersionArn' in kwargs: + state_machine_version_arn = kwargs['stateMachineVersionArn'] + if state_machine_version_arn is None: + raise TypeError("Missing 'state_machine_version_arn' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("state_machine_version_arn", state_machine_version_arn) + _setter("weight", weight) @property @pulumi.getter(name="stateMachineVersionArn") diff --git a/sdk/python/pulumi_aws/sfn/state_machine.py b/sdk/python/pulumi_aws/sfn/state_machine.py index 248e93478ab..09a20c944d2 100644 --- a/sdk/python/pulumi_aws/sfn/state_machine.py +++ b/sdk/python/pulumi_aws/sfn/state_machine.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,22 +37,61 @@ def __init__(__self__, *, :param pulumi.Input['StateMachineTracingConfigurationArgs'] tracing_configuration: Selects whether AWS X-Ray tracing is enabled. :param pulumi.Input[str] type: Determines whether a Standard or Express state machine is created. The default is `STANDARD`. You cannot update the type of a state machine once it has been created. Valid values: `STANDARD`, `EXPRESS`. """ - pulumi.set(__self__, "definition", definition) - pulumi.set(__self__, "role_arn", role_arn) + StateMachineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + definition=definition, + role_arn=role_arn, + logging_configuration=logging_configuration, + name=name, + name_prefix=name_prefix, + publish=publish, + tags=tags, + tracing_configuration=tracing_configuration, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + definition: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + logging_configuration: Optional[pulumi.Input['StateMachineLoggingConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + publish: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracing_configuration: Optional[pulumi.Input['StateMachineTracingConfigurationArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if definition is None: + raise TypeError("Missing 'definition' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tracing_configuration is None and 'tracingConfiguration' in kwargs: + tracing_configuration = kwargs['tracingConfiguration'] + + _setter("definition", definition) + _setter("role_arn", role_arn) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if publish is not None: - pulumi.set(__self__, "publish", publish) + _setter("publish", publish) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tracing_configuration is not None: - pulumi.set(__self__, "tracing_configuration", tracing_configuration) + _setter("tracing_configuration", tracing_configuration) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -199,43 +238,104 @@ def __init__(__self__, *, :param pulumi.Input['StateMachineTracingConfigurationArgs'] tracing_configuration: Selects whether AWS X-Ray tracing is enabled. :param pulumi.Input[str] type: Determines whether a Standard or Express state machine is created. The default is `STANDARD`. You cannot update the type of a state machine once it has been created. Valid values: `STANDARD`, `EXPRESS`. """ + _StateMachineState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + creation_date=creation_date, + definition=definition, + description=description, + logging_configuration=logging_configuration, + name=name, + name_prefix=name_prefix, + publish=publish, + revision_id=revision_id, + role_arn=role_arn, + state_machine_version_arn=state_machine_version_arn, + status=status, + tags=tags, + tags_all=tags_all, + tracing_configuration=tracing_configuration, + type=type, + version_description=version_description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + creation_date: Optional[pulumi.Input[str]] = None, + definition: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + logging_configuration: Optional[pulumi.Input['StateMachineLoggingConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + publish: Optional[pulumi.Input[bool]] = None, + revision_id: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + state_machine_version_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracing_configuration: Optional[pulumi.Input['StateMachineTracingConfigurationArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + version_description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_date is None and 'creationDate' in kwargs: + creation_date = kwargs['creationDate'] + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if revision_id is None and 'revisionId' in kwargs: + revision_id = kwargs['revisionId'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if state_machine_version_arn is None and 'stateMachineVersionArn' in kwargs: + state_machine_version_arn = kwargs['stateMachineVersionArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tracing_configuration is None and 'tracingConfiguration' in kwargs: + tracing_configuration = kwargs['tracingConfiguration'] + if version_description is None and 'versionDescription' in kwargs: + version_description = kwargs['versionDescription'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if creation_date is not None: - pulumi.set(__self__, "creation_date", creation_date) + _setter("creation_date", creation_date) if definition is not None: - pulumi.set(__self__, "definition", definition) + _setter("definition", definition) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if publish is not None: - pulumi.set(__self__, "publish", publish) + _setter("publish", publish) if revision_id is not None: - pulumi.set(__self__, "revision_id", revision_id) + _setter("revision_id", revision_id) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if state_machine_version_arn is not None: - pulumi.set(__self__, "state_machine_version_arn", state_machine_version_arn) + _setter("state_machine_version_arn", state_machine_version_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tracing_configuration is not None: - pulumi.set(__self__, "tracing_configuration", tracing_configuration) + _setter("tracing_configuration", tracing_configuration) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if version_description is not None: - pulumi.set(__self__, "version_description", version_description) + _setter("version_description", version_description) @property @pulumi.getter @@ -698,6 +798,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StateMachineArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -724,6 +828,7 @@ def _internal_init(__self__, if definition is None and not opts.urn: raise TypeError("Missing required property 'definition'") __props__.__dict__["definition"] = definition + logging_configuration = _utilities.configure(logging_configuration, StateMachineLoggingConfigurationArgs, True) __props__.__dict__["logging_configuration"] = logging_configuration __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix @@ -732,6 +837,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'role_arn'") __props__.__dict__["role_arn"] = role_arn __props__.__dict__["tags"] = tags + tracing_configuration = _utilities.configure(tracing_configuration, StateMachineTracingConfigurationArgs, True) __props__.__dict__["tracing_configuration"] = tracing_configuration __props__.__dict__["type"] = type __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/shield/_inputs.py b/sdk/python/pulumi_aws/shield/_inputs.py index 74bf39f6e02..cc6a977c680 100644 --- a/sdk/python/pulumi_aws/shield/_inputs.py +++ b/sdk/python/pulumi_aws/shield/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -21,12 +21,27 @@ def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, update: Optional[pulumi.Input[str]] = None): + ApplicationLayerAutomaticResponseTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -62,12 +77,27 @@ def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, read: Optional[pulumi.Input[str]] = None): + DrtAccessLogBucketAssociationTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + read=read, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + read: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if read is not None: - pulumi.set(__self__, "read", read) + _setter("read", read) @property @pulumi.getter @@ -103,12 +133,27 @@ def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, read: Optional[pulumi.Input[str]] = None): + DrtAccessRoleArnAssociationTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + read=read, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + read: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if read is not None: - pulumi.set(__self__, "read", read) + _setter("read", read) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/shield/application_layer_automatic_response.py b/sdk/python/pulumi_aws/shield/application_layer_automatic_response.py index 6035236c8a5..da797359a39 100644 --- a/sdk/python/pulumi_aws/shield/application_layer_automatic_response.py +++ b/sdk/python/pulumi_aws/shield/application_layer_automatic_response.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -24,10 +24,31 @@ def __init__(__self__, *, :param pulumi.Input[str] action: One of `COUNT` or `BLOCK` :param pulumi.Input[str] resource_arn: ARN of the resource to protect (Cloudfront Distributions and ALBs only at this time). """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "resource_arn", resource_arn) + ApplicationLayerAutomaticResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + resource_arn=resource_arn, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['ApplicationLayerAutomaticResponseTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("action", action) + _setter("resource_arn", resource_arn) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -74,12 +95,29 @@ def __init__(__self__, *, :param pulumi.Input[str] action: One of `COUNT` or `BLOCK` :param pulumi.Input[str] resource_arn: ARN of the resource to protect (Cloudfront Distributions and ALBs only at this time). """ + _ApplicationLayerAutomaticResponseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + resource_arn=resource_arn, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['ApplicationLayerAutomaticResponseTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter @@ -181,6 +219,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ApplicationLayerAutomaticResponseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -204,6 +246,7 @@ def _internal_init(__self__, if resource_arn is None and not opts.urn: raise TypeError("Missing required property 'resource_arn'") __props__.__dict__["resource_arn"] = resource_arn + timeouts = _utilities.configure(timeouts, ApplicationLayerAutomaticResponseTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts super(ApplicationLayerAutomaticResponse, __self__).__init__( 'aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse', diff --git a/sdk/python/pulumi_aws/shield/drt_access_log_bucket_association.py b/sdk/python/pulumi_aws/shield/drt_access_log_bucket_association.py index 99e64de2cca..76f6b6a44ec 100644 --- a/sdk/python/pulumi_aws/shield/drt_access_log_bucket_association.py +++ b/sdk/python/pulumi_aws/shield/drt_access_log_bucket_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -24,10 +24,33 @@ def __init__(__self__, *, :param pulumi.Input[str] log_bucket: The Amazon S3 bucket that contains the logs that you want to share. :param pulumi.Input[str] role_arn_association_id: The ID of the Role Arn association used for allowing Shield DRT Access. """ - pulumi.set(__self__, "log_bucket", log_bucket) - pulumi.set(__self__, "role_arn_association_id", role_arn_association_id) + DrtAccessLogBucketAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_bucket=log_bucket, + role_arn_association_id=role_arn_association_id, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_bucket: Optional[pulumi.Input[str]] = None, + role_arn_association_id: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['DrtAccessLogBucketAssociationTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_bucket is None and 'logBucket' in kwargs: + log_bucket = kwargs['logBucket'] + if log_bucket is None: + raise TypeError("Missing 'log_bucket' argument") + if role_arn_association_id is None and 'roleArnAssociationId' in kwargs: + role_arn_association_id = kwargs['roleArnAssociationId'] + if role_arn_association_id is None: + raise TypeError("Missing 'role_arn_association_id' argument") + + _setter("log_bucket", log_bucket) + _setter("role_arn_association_id", role_arn_association_id) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="logBucket") @@ -74,12 +97,31 @@ def __init__(__self__, *, :param pulumi.Input[str] log_bucket: The Amazon S3 bucket that contains the logs that you want to share. :param pulumi.Input[str] role_arn_association_id: The ID of the Role Arn association used for allowing Shield DRT Access. """ + _DrtAccessLogBucketAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_bucket=log_bucket, + role_arn_association_id=role_arn_association_id, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_bucket: Optional[pulumi.Input[str]] = None, + role_arn_association_id: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['DrtAccessLogBucketAssociationTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_bucket is None and 'logBucket' in kwargs: + log_bucket = kwargs['logBucket'] + if role_arn_association_id is None and 'roleArnAssociationId' in kwargs: + role_arn_association_id = kwargs['roleArnAssociationId'] + if log_bucket is not None: - pulumi.set(__self__, "log_bucket", log_bucket) + _setter("log_bucket", log_bucket) if role_arn_association_id is not None: - pulumi.set(__self__, "role_arn_association_id", role_arn_association_id) + _setter("role_arn_association_id", role_arn_association_id) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="logBucket") @@ -177,6 +219,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DrtAccessLogBucketAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -200,6 +246,7 @@ def _internal_init(__self__, if role_arn_association_id is None and not opts.urn: raise TypeError("Missing required property 'role_arn_association_id'") __props__.__dict__["role_arn_association_id"] = role_arn_association_id + timeouts = _utilities.configure(timeouts, DrtAccessLogBucketAssociationTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts super(DrtAccessLogBucketAssociation, __self__).__init__( 'aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation', diff --git a/sdk/python/pulumi_aws/shield/drt_access_role_arn_association.py b/sdk/python/pulumi_aws/shield/drt_access_role_arn_association.py index 8273fa3ee99..db0755324d0 100644 --- a/sdk/python/pulumi_aws/shield/drt_access_role_arn_association.py +++ b/sdk/python/pulumi_aws/shield/drt_access_role_arn_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -22,9 +22,26 @@ def __init__(__self__, *, The set of arguments for constructing a DrtAccessRoleArnAssociation resource. :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) of the role the SRT will use to access your AWS account. Prior to making the AssociateDRTRole request, you must attach the `AWSShieldDRTAccessPolicy` managed policy to this role. """ - pulumi.set(__self__, "role_arn", role_arn) + DrtAccessRoleArnAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['DrtAccessRoleArnAssociationTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + + _setter("role_arn", role_arn) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="roleArn") @@ -57,10 +74,25 @@ def __init__(__self__, *, Input properties used for looking up and filtering DrtAccessRoleArnAssociation resources. :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) of the role the SRT will use to access your AWS account. Prior to making the AssociateDRTRole request, you must attach the `AWSShieldDRTAccessPolicy` managed policy to this role. """ + _DrtAccessRoleArnAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + role_arn=role_arn, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role_arn: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['DrtAccessRoleArnAssociationTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="roleArn") @@ -168,6 +200,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DrtAccessRoleArnAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -187,6 +223,7 @@ def _internal_init(__self__, if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") __props__.__dict__["role_arn"] = role_arn + timeouts = _utilities.configure(timeouts, DrtAccessRoleArnAssociationTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts super(DrtAccessRoleArnAssociation, __self__).__init__( 'aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation', diff --git a/sdk/python/pulumi_aws/shield/outputs.py b/sdk/python/pulumi_aws/shield/outputs.py index 77e89dccc58..6181ca753ad 100644 --- a/sdk/python/pulumi_aws/shield/outputs.py +++ b/sdk/python/pulumi_aws/shield/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -21,12 +21,27 @@ def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, update: Optional[str] = None): + ApplicationLayerAutomaticResponseTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -50,12 +65,27 @@ def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, read: Optional[str] = None): + DrtAccessLogBucketAssociationTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + read=read, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + read: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if read is not None: - pulumi.set(__self__, "read", read) + _setter("read", read) @property @pulumi.getter @@ -79,12 +109,27 @@ def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, read: Optional[str] = None): + DrtAccessRoleArnAssociationTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + read=read, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + read: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if read is not None: - pulumi.set(__self__, "read", read) + _setter("read", read) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/shield/protection.py b/sdk/python/pulumi_aws/shield/protection.py index 5f97c2abf64..d70921b8371 100644 --- a/sdk/python/pulumi_aws/shield/protection.py +++ b/sdk/python/pulumi_aws/shield/protection.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProtectionArgs', 'Protection'] @@ -23,11 +23,30 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A friendly name for the Protection you are creating. :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. """ - pulumi.set(__self__, "resource_arn", resource_arn) + ProtectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("resource_arn", resource_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="resourceArn") @@ -82,19 +101,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ProtectionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + resource_arn=resource_arn, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -251,6 +293,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProtectionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/shield/protection_group.py b/sdk/python/pulumi_aws/shield/protection_group.py index 1c0afe6836f..a59e86c1c4f 100644 --- a/sdk/python/pulumi_aws/shield/protection_group.py +++ b/sdk/python/pulumi_aws/shield/protection_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProtectionGroupArgs', 'ProtectionGroup'] @@ -29,15 +29,46 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_type: The resource type to include in the protection group. You must set this when you set `pattern` to BY_RESOURCE_TYPE and you must not set it for any other `pattern` setting. :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. """ - pulumi.set(__self__, "aggregation", aggregation) - pulumi.set(__self__, "pattern", pattern) - pulumi.set(__self__, "protection_group_id", protection_group_id) + ProtectionGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aggregation=aggregation, + pattern=pattern, + protection_group_id=protection_group_id, + members=members, + resource_type=resource_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aggregation: Optional[pulumi.Input[str]] = None, + pattern: Optional[pulumi.Input[str]] = None, + protection_group_id: Optional[pulumi.Input[str]] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aggregation is None: + raise TypeError("Missing 'aggregation' argument") + if pattern is None: + raise TypeError("Missing 'pattern' argument") + if protection_group_id is None and 'protectionGroupId' in kwargs: + protection_group_id = kwargs['protectionGroupId'] + if protection_group_id is None: + raise TypeError("Missing 'protection_group_id' argument") + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + + _setter("aggregation", aggregation) + _setter("pattern", pattern) + _setter("protection_group_id", protection_group_id) if members is not None: - pulumi.set(__self__, "members", members) + _setter("members", members) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -134,25 +165,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ProtectionGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + aggregation=aggregation, + members=members, + pattern=pattern, + protection_group_arn=protection_group_arn, + protection_group_id=protection_group_id, + resource_type=resource_type, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aggregation: Optional[pulumi.Input[str]] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + pattern: Optional[pulumi.Input[str]] = None, + protection_group_arn: Optional[pulumi.Input[str]] = None, + protection_group_id: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if protection_group_arn is None and 'protectionGroupArn' in kwargs: + protection_group_arn = kwargs['protectionGroupArn'] + if protection_group_id is None and 'protectionGroupId' in kwargs: + protection_group_id = kwargs['protectionGroupId'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if aggregation is not None: - pulumi.set(__self__, "aggregation", aggregation) + _setter("aggregation", aggregation) if members is not None: - pulumi.set(__self__, "members", members) + _setter("members", members) if pattern is not None: - pulumi.set(__self__, "pattern", pattern) + _setter("pattern", pattern) if protection_group_arn is not None: - pulumi.set(__self__, "protection_group_arn", protection_group_arn) + _setter("protection_group_arn", protection_group_arn) if protection_group_id is not None: - pulumi.set(__self__, "protection_group_id", protection_group_id) + _setter("protection_group_id", protection_group_id) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -401,6 +465,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProtectionGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/shield/protection_health_check_association.py b/sdk/python/pulumi_aws/shield/protection_health_check_association.py index 3870952a3b9..d4ccb0d6737 100644 --- a/sdk/python/pulumi_aws/shield/protection_health_check_association.py +++ b/sdk/python/pulumi_aws/shield/protection_health_check_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProtectionHealthCheckAssociationArgs', 'ProtectionHealthCheckAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] health_check_arn: The ARN (Amazon Resource Name) of the Route53 Health Check resource which will be associated to the protected resource. :param pulumi.Input[str] shield_protection_id: The ID of the protected resource. """ - pulumi.set(__self__, "health_check_arn", health_check_arn) - pulumi.set(__self__, "shield_protection_id", shield_protection_id) + ProtectionHealthCheckAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + health_check_arn=health_check_arn, + shield_protection_id=shield_protection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + health_check_arn: Optional[pulumi.Input[str]] = None, + shield_protection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if health_check_arn is None and 'healthCheckArn' in kwargs: + health_check_arn = kwargs['healthCheckArn'] + if health_check_arn is None: + raise TypeError("Missing 'health_check_arn' argument") + if shield_protection_id is None and 'shieldProtectionId' in kwargs: + shield_protection_id = kwargs['shieldProtectionId'] + if shield_protection_id is None: + raise TypeError("Missing 'shield_protection_id' argument") + + _setter("health_check_arn", health_check_arn) + _setter("shield_protection_id", shield_protection_id) @property @pulumi.getter(name="healthCheckArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] health_check_arn: The ARN (Amazon Resource Name) of the Route53 Health Check resource which will be associated to the protected resource. :param pulumi.Input[str] shield_protection_id: The ID of the protected resource. """ + _ProtectionHealthCheckAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + health_check_arn=health_check_arn, + shield_protection_id=shield_protection_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + health_check_arn: Optional[pulumi.Input[str]] = None, + shield_protection_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if health_check_arn is None and 'healthCheckArn' in kwargs: + health_check_arn = kwargs['healthCheckArn'] + if shield_protection_id is None and 'shieldProtectionId' in kwargs: + shield_protection_id = kwargs['shieldProtectionId'] + if health_check_arn is not None: - pulumi.set(__self__, "health_check_arn", health_check_arn) + _setter("health_check_arn", health_check_arn) if shield_protection_id is not None: - pulumi.set(__self__, "shield_protection_id", shield_protection_id) + _setter("shield_protection_id", shield_protection_id) @property @pulumi.getter(name="healthCheckArn") @@ -208,6 +246,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProtectionHealthCheckAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/signer/_inputs.py b/sdk/python/pulumi_aws/signer/_inputs.py index 62dcdc944eb..7ee71c93166 100644 --- a/sdk/python/pulumi_aws/signer/_inputs.py +++ b/sdk/python/pulumi_aws/signer/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -29,7 +29,20 @@ def __init__(__self__, *, """ :param pulumi.Input['SigningJobDestinationS3Args'] s3: A configuration block describing the S3 Destination object: See S3 Destination below for details. """ - pulumi.set(__self__, "s3", s3) + SigningJobDestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional[pulumi.Input['SigningJobDestinationS3Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + + _setter("s3", s3) @property @pulumi.getter @@ -53,9 +66,24 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Name of the S3 bucket. :param pulumi.Input[str] prefix: An Amazon S3 object key prefix that you can use to limit signed objects keys to begin with the specified prefix. """ - pulumi.set(__self__, "bucket", bucket) + SigningJobDestinationS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -88,12 +116,31 @@ def __init__(__self__, *, reason: Optional[pulumi.Input[str]] = None, revoked_at: Optional[pulumi.Input[str]] = None, revoked_by: Optional[pulumi.Input[str]] = None): + SigningJobRevocationRecordArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + reason=reason, + revoked_at=revoked_at, + revoked_by=revoked_by, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reason: Optional[pulumi.Input[str]] = None, + revoked_at: Optional[pulumi.Input[str]] = None, + revoked_by: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if revoked_at is None and 'revokedAt' in kwargs: + revoked_at = kwargs['revokedAt'] + if revoked_by is None and 'revokedBy' in kwargs: + revoked_by = kwargs['revokedBy'] + if reason is not None: - pulumi.set(__self__, "reason", reason) + _setter("reason", reason) if revoked_at is not None: - pulumi.set(__self__, "revoked_at", revoked_at) + _setter("revoked_at", revoked_at) if revoked_by is not None: - pulumi.set(__self__, "revoked_by", revoked_by) + _setter("revoked_by", revoked_by) @property @pulumi.getter @@ -128,16 +175,27 @@ class SigningJobSignedObjectArgs: def __init__(__self__, *, s3s: Optional[pulumi.Input[Sequence[pulumi.Input['SigningJobSignedObjectS3Args']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input['SigningJobSignedObjectS3Args']]] s3s: A configuration block describing the S3 Source object: See S3 Source below for details. + :param pulumi.Input[Sequence[pulumi.Input['SigningJobSignedObjectS3Args']]] s3s: A configuration block describing the S3 Destination object: See S3 Destination below for details. """ + SigningJobSignedObjectArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3s=s3s, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3s: Optional[pulumi.Input[Sequence[pulumi.Input['SigningJobSignedObjectS3Args']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3s is not None: - pulumi.set(__self__, "s3s", s3s) + _setter("s3s", s3s) @property @pulumi.getter def s3s(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SigningJobSignedObjectS3Args']]]]: """ - A configuration block describing the S3 Source object: See S3 Source below for details. + A configuration block describing the S3 Destination object: See S3 Destination below for details. """ return pulumi.get(self, "s3s") @@ -155,10 +213,23 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket: Name of the S3 bucket. :param pulumi.Input[str] key: Key name of the object that contains your unsigned code. """ + SigningJobSignedObjectS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -192,7 +263,20 @@ def __init__(__self__, *, """ :param pulumi.Input['SigningJobSourceS3Args'] s3: A configuration block describing the S3 Source object: See S3 Source below for details. """ - pulumi.set(__self__, "s3", s3) + SigningJobSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional[pulumi.Input['SigningJobSourceS3Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + + _setter("s3", s3) @property @pulumi.getter @@ -218,9 +302,30 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Key name of the object that contains your unsigned code. :param pulumi.Input[str] version: Version of your source image in your version enabled S3 bucket. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "version", version) + SigningJobSourceS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("bucket", bucket) + _setter("key", key) + _setter("version", version) @property @pulumi.getter @@ -265,12 +370,33 @@ def __init__(__self__, *, revocation_effective_from: Optional[pulumi.Input[str]] = None, revoked_at: Optional[pulumi.Input[str]] = None, revoked_by: Optional[pulumi.Input[str]] = None): + SigningProfileRevocationRecordArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + revocation_effective_from=revocation_effective_from, + revoked_at=revoked_at, + revoked_by=revoked_by, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + revocation_effective_from: Optional[pulumi.Input[str]] = None, + revoked_at: Optional[pulumi.Input[str]] = None, + revoked_by: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if revocation_effective_from is None and 'revocationEffectiveFrom' in kwargs: + revocation_effective_from = kwargs['revocationEffectiveFrom'] + if revoked_at is None and 'revokedAt' in kwargs: + revoked_at = kwargs['revokedAt'] + if revoked_by is None and 'revokedBy' in kwargs: + revoked_by = kwargs['revokedBy'] + if revocation_effective_from is not None: - pulumi.set(__self__, "revocation_effective_from", revocation_effective_from) + _setter("revocation_effective_from", revocation_effective_from) if revoked_at is not None: - pulumi.set(__self__, "revoked_at", revoked_at) + _setter("revoked_at", revoked_at) if revoked_by is not None: - pulumi.set(__self__, "revoked_by", revoked_by) + _setter("revoked_by", revoked_by) @property @pulumi.getter(name="revocationEffectiveFrom") @@ -305,8 +431,25 @@ class SigningProfileSignatureValidityPeriodArgs: def __init__(__self__, *, type: pulumi.Input[str], value: pulumi.Input[int]): - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + SigningProfileSignatureValidityPeriodArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -331,7 +474,22 @@ def value(self, value: pulumi.Input[int]): class SigningProfileSigningMaterialArgs: def __init__(__self__, *, certificate_arn: pulumi.Input[str]): - pulumi.set(__self__, "certificate_arn", certificate_arn) + SigningProfileSigningMaterialArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + + _setter("certificate_arn", certificate_arn) @property @pulumi.getter(name="certificateArn") diff --git a/sdk/python/pulumi_aws/signer/get_signing_job.py b/sdk/python/pulumi_aws/signer/get_signing_job.py index ec4859ae564..5682ee5e3fa 100644 --- a/sdk/python/pulumi_aws/signer/get_signing_job.py +++ b/sdk/python/pulumi_aws/signer/get_signing_job.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/signer/get_signing_profile.py b/sdk/python/pulumi_aws/signer/get_signing_profile.py index 24df55ba60c..527f68bbce7 100644 --- a/sdk/python/pulumi_aws/signer/get_signing_profile.py +++ b/sdk/python/pulumi_aws/signer/get_signing_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/signer/outputs.py b/sdk/python/pulumi_aws/signer/outputs.py index 1a18085ca10..0c43bb3d362 100644 --- a/sdk/python/pulumi_aws/signer/outputs.py +++ b/sdk/python/pulumi_aws/signer/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -37,7 +37,20 @@ def __init__(__self__, *, """ :param 'SigningJobDestinationS3Args' s3: A configuration block describing the S3 Destination object: See S3 Destination below for details. """ - pulumi.set(__self__, "s3", s3) + SigningJobDestination._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional['outputs.SigningJobDestinationS3'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + + _setter("s3", s3) @property @pulumi.getter @@ -57,9 +70,24 @@ def __init__(__self__, *, :param str bucket: Name of the S3 bucket. :param str prefix: An Amazon S3 object key prefix that you can use to limit signed objects keys to begin with the specified prefix. """ - pulumi.set(__self__, "bucket", bucket) + SigningJobDestinationS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + + _setter("bucket", bucket) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -103,12 +131,31 @@ def __init__(__self__, *, reason: Optional[str] = None, revoked_at: Optional[str] = None, revoked_by: Optional[str] = None): + SigningJobRevocationRecord._configure( + lambda key, value: pulumi.set(__self__, key, value), + reason=reason, + revoked_at=revoked_at, + revoked_by=revoked_by, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reason: Optional[str] = None, + revoked_at: Optional[str] = None, + revoked_by: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if revoked_at is None and 'revokedAt' in kwargs: + revoked_at = kwargs['revokedAt'] + if revoked_by is None and 'revokedBy' in kwargs: + revoked_by = kwargs['revokedBy'] + if reason is not None: - pulumi.set(__self__, "reason", reason) + _setter("reason", reason) if revoked_at is not None: - pulumi.set(__self__, "revoked_at", revoked_at) + _setter("revoked_at", revoked_at) if revoked_by is not None: - pulumi.set(__self__, "revoked_by", revoked_by) + _setter("revoked_by", revoked_by) @property @pulumi.getter @@ -131,16 +178,27 @@ class SigningJobSignedObject(dict): def __init__(__self__, *, s3s: Optional[Sequence['outputs.SigningJobSignedObjectS3']] = None): """ - :param Sequence['SigningJobSignedObjectS3Args'] s3s: A configuration block describing the S3 Source object: See S3 Source below for details. + :param Sequence['SigningJobSignedObjectS3Args'] s3s: A configuration block describing the S3 Destination object: See S3 Destination below for details. """ + SigningJobSignedObject._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3s=s3s, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3s: Optional[Sequence['outputs.SigningJobSignedObjectS3']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3s is not None: - pulumi.set(__self__, "s3s", s3s) + _setter("s3s", s3s) @property @pulumi.getter def s3s(self) -> Optional[Sequence['outputs.SigningJobSignedObjectS3']]: """ - A configuration block describing the S3 Source object: See S3 Source below for details. + A configuration block describing the S3 Destination object: See S3 Destination below for details. """ return pulumi.get(self, "s3s") @@ -154,10 +212,23 @@ def __init__(__self__, *, :param str bucket: Name of the S3 bucket. :param str key: Key name of the object that contains your unsigned code. """ + SigningJobSignedObjectS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -183,7 +254,20 @@ def __init__(__self__, *, """ :param 'SigningJobSourceS3Args' s3: A configuration block describing the S3 Source object: See S3 Source below for details. """ - pulumi.set(__self__, "s3", s3) + SigningJobSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3: Optional['outputs.SigningJobSourceS3'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3 is None: + raise TypeError("Missing 's3' argument") + + _setter("s3", s3) @property @pulumi.getter @@ -205,9 +289,30 @@ def __init__(__self__, *, :param str key: Key name of the object that contains your unsigned code. :param str version: Version of your source image in your version enabled S3 bucket. """ - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "version", version) + SigningJobSourceS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("bucket", bucket) + _setter("key", key) + _setter("version", version) @property @pulumi.getter @@ -261,12 +366,33 @@ def __init__(__self__, *, revocation_effective_from: Optional[str] = None, revoked_at: Optional[str] = None, revoked_by: Optional[str] = None): + SigningProfileRevocationRecord._configure( + lambda key, value: pulumi.set(__self__, key, value), + revocation_effective_from=revocation_effective_from, + revoked_at=revoked_at, + revoked_by=revoked_by, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + revocation_effective_from: Optional[str] = None, + revoked_at: Optional[str] = None, + revoked_by: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if revocation_effective_from is None and 'revocationEffectiveFrom' in kwargs: + revocation_effective_from = kwargs['revocationEffectiveFrom'] + if revoked_at is None and 'revokedAt' in kwargs: + revoked_at = kwargs['revokedAt'] + if revoked_by is None and 'revokedBy' in kwargs: + revoked_by = kwargs['revokedBy'] + if revocation_effective_from is not None: - pulumi.set(__self__, "revocation_effective_from", revocation_effective_from) + _setter("revocation_effective_from", revocation_effective_from) if revoked_at is not None: - pulumi.set(__self__, "revoked_at", revoked_at) + _setter("revoked_at", revoked_at) if revoked_by is not None: - pulumi.set(__self__, "revoked_by", revoked_by) + _setter("revoked_by", revoked_by) @property @pulumi.getter(name="revocationEffectiveFrom") @@ -289,8 +415,25 @@ class SigningProfileSignatureValidityPeriod(dict): def __init__(__self__, *, type: str, value: int): - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + SigningProfileSignatureValidityPeriod._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -324,7 +467,22 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, certificate_arn: str): - pulumi.set(__self__, "certificate_arn", certificate_arn) + SigningProfileSigningMaterial._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate_arn=certificate_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if certificate_arn is None: + raise TypeError("Missing 'certificate_arn' argument") + + _setter("certificate_arn", certificate_arn) @property @pulumi.getter(name="certificateArn") @@ -338,9 +496,34 @@ def __init__(__self__, *, reason: str, revoked_at: str, revoked_by: str): - pulumi.set(__self__, "reason", reason) - pulumi.set(__self__, "revoked_at", revoked_at) - pulumi.set(__self__, "revoked_by", revoked_by) + GetSigningJobRevocationRecordResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + reason=reason, + revoked_at=revoked_at, + revoked_by=revoked_by, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + reason: Optional[str] = None, + revoked_at: Optional[str] = None, + revoked_by: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if reason is None: + raise TypeError("Missing 'reason' argument") + if revoked_at is None and 'revokedAt' in kwargs: + revoked_at = kwargs['revokedAt'] + if revoked_at is None: + raise TypeError("Missing 'revoked_at' argument") + if revoked_by is None and 'revokedBy' in kwargs: + revoked_by = kwargs['revokedBy'] + if revoked_by is None: + raise TypeError("Missing 'revoked_by' argument") + + _setter("reason", reason) + _setter("revoked_at", revoked_at) + _setter("revoked_by", revoked_by) @property @pulumi.getter @@ -362,7 +545,20 @@ def revoked_by(self) -> str: class GetSigningJobSignedObjectResult(dict): def __init__(__self__, *, s3s: Sequence['outputs.GetSigningJobSignedObjectS3Result']): - pulumi.set(__self__, "s3s", s3s) + GetSigningJobSignedObjectResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3s=s3s, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3s: Optional[Sequence['outputs.GetSigningJobSignedObjectS3Result']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3s is None: + raise TypeError("Missing 's3s' argument") + + _setter("s3s", s3s) @property @pulumi.getter @@ -375,8 +571,25 @@ class GetSigningJobSignedObjectS3Result(dict): def __init__(__self__, *, bucket: str, key: str): - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) + GetSigningJobSignedObjectS3Result._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("bucket", bucket) + _setter("key", key) @property @pulumi.getter @@ -393,7 +606,20 @@ def key(self) -> str: class GetSigningJobSourceResult(dict): def __init__(__self__, *, s3s: Sequence['outputs.GetSigningJobSourceS3Result']): - pulumi.set(__self__, "s3s", s3s) + GetSigningJobSourceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3s=s3s, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3s: Optional[Sequence['outputs.GetSigningJobSourceS3Result']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3s is None: + raise TypeError("Missing 's3s' argument") + + _setter("s3s", s3s) @property @pulumi.getter @@ -407,9 +633,30 @@ def __init__(__self__, *, bucket: str, key: str, version: str): - pulumi.set(__self__, "bucket", bucket) - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "version", version) + GetSigningJobSourceS3Result._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is None: + raise TypeError("Missing 'bucket' argument") + if key is None: + raise TypeError("Missing 'key' argument") + if version is None: + raise TypeError("Missing 'version' argument") + + _setter("bucket", bucket) + _setter("key", key) + _setter("version", version) @property @pulumi.getter @@ -433,9 +680,36 @@ def __init__(__self__, *, revocation_effective_from: str, revoked_at: str, revoked_by: str): - pulumi.set(__self__, "revocation_effective_from", revocation_effective_from) - pulumi.set(__self__, "revoked_at", revoked_at) - pulumi.set(__self__, "revoked_by", revoked_by) + GetSigningProfileRevocationRecordResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + revocation_effective_from=revocation_effective_from, + revoked_at=revoked_at, + revoked_by=revoked_by, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + revocation_effective_from: Optional[str] = None, + revoked_at: Optional[str] = None, + revoked_by: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if revocation_effective_from is None and 'revocationEffectiveFrom' in kwargs: + revocation_effective_from = kwargs['revocationEffectiveFrom'] + if revocation_effective_from is None: + raise TypeError("Missing 'revocation_effective_from' argument") + if revoked_at is None and 'revokedAt' in kwargs: + revoked_at = kwargs['revokedAt'] + if revoked_at is None: + raise TypeError("Missing 'revoked_at' argument") + if revoked_by is None and 'revokedBy' in kwargs: + revoked_by = kwargs['revokedBy'] + if revoked_by is None: + raise TypeError("Missing 'revoked_by' argument") + + _setter("revocation_effective_from", revocation_effective_from) + _setter("revoked_at", revoked_at) + _setter("revoked_by", revoked_by) @property @pulumi.getter(name="revocationEffectiveFrom") @@ -458,8 +732,25 @@ class GetSigningProfileSignatureValidityPeriodResult(dict): def __init__(__self__, *, type: str, value: int): - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GetSigningProfileSignatureValidityPeriodResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/signer/signing_job.py b/sdk/python/pulumi_aws/signer/signing_job.py index cd94e835e86..b26c14cfeb5 100644 --- a/sdk/python/pulumi_aws/signer/signing_job.py +++ b/sdk/python/pulumi_aws/signer/signing_job.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,11 +27,38 @@ def __init__(__self__, *, :param pulumi.Input['SigningJobSourceArgs'] source: The S3 bucket that contains the object to sign. See Source below for details. :param pulumi.Input[bool] ignore_signing_job_failure: Set this argument to `true` to ignore signing job failures and retrieve failed status and reason. Default `false`. """ - pulumi.set(__self__, "destination", destination) - pulumi.set(__self__, "profile_name", profile_name) - pulumi.set(__self__, "source", source) + SigningJobArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination=destination, + profile_name=profile_name, + source=source, + ignore_signing_job_failure=ignore_signing_job_failure, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination: Optional[pulumi.Input['SigningJobDestinationArgs']] = None, + profile_name: Optional[pulumi.Input[str]] = None, + source: Optional[pulumi.Input['SigningJobSourceArgs']] = None, + ignore_signing_job_failure: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination is None: + raise TypeError("Missing 'destination' argument") + if profile_name is None and 'profileName' in kwargs: + profile_name = kwargs['profileName'] + if profile_name is None: + raise TypeError("Missing 'profile_name' argument") + if source is None: + raise TypeError("Missing 'source' argument") + if ignore_signing_job_failure is None and 'ignoreSigningJobFailure' in kwargs: + ignore_signing_job_failure = kwargs['ignoreSigningJobFailure'] + + _setter("destination", destination) + _setter("profile_name", profile_name) + _setter("source", source) if ignore_signing_job_failure is not None: - pulumi.set(__self__, "ignore_signing_job_failure", ignore_signing_job_failure) + _setter("ignore_signing_job_failure", ignore_signing_job_failure) @property @pulumi.getter @@ -124,42 +151,117 @@ def __init__(__self__, *, :param pulumi.Input[str] status: Status of the signing job. :param pulumi.Input[str] status_reason: String value that contains the status reason. """ + _SigningJobState._configure( + lambda key, value: pulumi.set(__self__, key, value), + completed_at=completed_at, + created_at=created_at, + destination=destination, + ignore_signing_job_failure=ignore_signing_job_failure, + job_id=job_id, + job_invoker=job_invoker, + job_owner=job_owner, + platform_display_name=platform_display_name, + platform_id=platform_id, + profile_name=profile_name, + profile_version=profile_version, + requested_by=requested_by, + revocation_records=revocation_records, + signature_expires_at=signature_expires_at, + signed_objects=signed_objects, + source=source, + status=status, + status_reason=status_reason, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + completed_at: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input['SigningJobDestinationArgs']] = None, + ignore_signing_job_failure: Optional[pulumi.Input[bool]] = None, + job_id: Optional[pulumi.Input[str]] = None, + job_invoker: Optional[pulumi.Input[str]] = None, + job_owner: Optional[pulumi.Input[str]] = None, + platform_display_name: Optional[pulumi.Input[str]] = None, + platform_id: Optional[pulumi.Input[str]] = None, + profile_name: Optional[pulumi.Input[str]] = None, + profile_version: Optional[pulumi.Input[str]] = None, + requested_by: Optional[pulumi.Input[str]] = None, + revocation_records: Optional[pulumi.Input[Sequence[pulumi.Input['SigningJobRevocationRecordArgs']]]] = None, + signature_expires_at: Optional[pulumi.Input[str]] = None, + signed_objects: Optional[pulumi.Input[Sequence[pulumi.Input['SigningJobSignedObjectArgs']]]] = None, + source: Optional[pulumi.Input['SigningJobSourceArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + status_reason: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if completed_at is None and 'completedAt' in kwargs: + completed_at = kwargs['completedAt'] + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if ignore_signing_job_failure is None and 'ignoreSigningJobFailure' in kwargs: + ignore_signing_job_failure = kwargs['ignoreSigningJobFailure'] + if job_id is None and 'jobId' in kwargs: + job_id = kwargs['jobId'] + if job_invoker is None and 'jobInvoker' in kwargs: + job_invoker = kwargs['jobInvoker'] + if job_owner is None and 'jobOwner' in kwargs: + job_owner = kwargs['jobOwner'] + if platform_display_name is None and 'platformDisplayName' in kwargs: + platform_display_name = kwargs['platformDisplayName'] + if platform_id is None and 'platformId' in kwargs: + platform_id = kwargs['platformId'] + if profile_name is None and 'profileName' in kwargs: + profile_name = kwargs['profileName'] + if profile_version is None and 'profileVersion' in kwargs: + profile_version = kwargs['profileVersion'] + if requested_by is None and 'requestedBy' in kwargs: + requested_by = kwargs['requestedBy'] + if revocation_records is None and 'revocationRecords' in kwargs: + revocation_records = kwargs['revocationRecords'] + if signature_expires_at is None and 'signatureExpiresAt' in kwargs: + signature_expires_at = kwargs['signatureExpiresAt'] + if signed_objects is None and 'signedObjects' in kwargs: + signed_objects = kwargs['signedObjects'] + if status_reason is None and 'statusReason' in kwargs: + status_reason = kwargs['statusReason'] + if completed_at is not None: - pulumi.set(__self__, "completed_at", completed_at) + _setter("completed_at", completed_at) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if destination is not None: - pulumi.set(__self__, "destination", destination) + _setter("destination", destination) if ignore_signing_job_failure is not None: - pulumi.set(__self__, "ignore_signing_job_failure", ignore_signing_job_failure) + _setter("ignore_signing_job_failure", ignore_signing_job_failure) if job_id is not None: - pulumi.set(__self__, "job_id", job_id) + _setter("job_id", job_id) if job_invoker is not None: - pulumi.set(__self__, "job_invoker", job_invoker) + _setter("job_invoker", job_invoker) if job_owner is not None: - pulumi.set(__self__, "job_owner", job_owner) + _setter("job_owner", job_owner) if platform_display_name is not None: - pulumi.set(__self__, "platform_display_name", platform_display_name) + _setter("platform_display_name", platform_display_name) if platform_id is not None: - pulumi.set(__self__, "platform_id", platform_id) + _setter("platform_id", platform_id) if profile_name is not None: - pulumi.set(__self__, "profile_name", profile_name) + _setter("profile_name", profile_name) if profile_version is not None: - pulumi.set(__self__, "profile_version", profile_version) + _setter("profile_version", profile_version) if requested_by is not None: - pulumi.set(__self__, "requested_by", requested_by) + _setter("requested_by", requested_by) if revocation_records is not None: - pulumi.set(__self__, "revocation_records", revocation_records) + _setter("revocation_records", revocation_records) if signature_expires_at is not None: - pulumi.set(__self__, "signature_expires_at", signature_expires_at) + _setter("signature_expires_at", signature_expires_at) if signed_objects is not None: - pulumi.set(__self__, "signed_objects", signed_objects) + _setter("signed_objects", signed_objects) if source is not None: - pulumi.set(__self__, "source", source) + _setter("source", source) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_reason is not None: - pulumi.set(__self__, "status_reason", status_reason) + _setter("status_reason", status_reason) @property @pulumi.getter(name="completedAt") @@ -483,6 +585,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SigningJobArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -501,6 +607,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = SigningJobArgs.__new__(SigningJobArgs) + destination = _utilities.configure(destination, SigningJobDestinationArgs, True) if destination is None and not opts.urn: raise TypeError("Missing required property 'destination'") __props__.__dict__["destination"] = destination @@ -508,6 +615,7 @@ def _internal_init(__self__, if profile_name is None and not opts.urn: raise TypeError("Missing required property 'profile_name'") __props__.__dict__["profile_name"] = profile_name + source = _utilities.configure(source, SigningJobSourceArgs, True) if source is None and not opts.urn: raise TypeError("Missing required property 'source'") __props__.__dict__["source"] = source diff --git a/sdk/python/pulumi_aws/signer/signing_profile.py b/sdk/python/pulumi_aws/signer/signing_profile.py index a1361799de6..f0ff93ae06b 100644 --- a/sdk/python/pulumi_aws/signer/signing_profile.py +++ b/sdk/python/pulumi_aws/signer/signing_profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -30,17 +30,48 @@ def __init__(__self__, *, :param pulumi.Input['SigningProfileSignatureValidityPeriodArgs'] signature_validity_period: The validity period for a signing job. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A list of tags associated with the signing profile. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "platform_id", platform_id) + SigningProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + platform_id=platform_id, + name=name, + name_prefix=name_prefix, + signature_validity_period=signature_validity_period, + signing_material=signing_material, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + platform_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + signature_validity_period: Optional[pulumi.Input['SigningProfileSignatureValidityPeriodArgs']] = None, + signing_material: Optional[pulumi.Input['SigningProfileSigningMaterialArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if platform_id is None and 'platformId' in kwargs: + platform_id = kwargs['platformId'] + if platform_id is None: + raise TypeError("Missing 'platform_id' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if signature_validity_period is None and 'signatureValidityPeriod' in kwargs: + signature_validity_period = kwargs['signatureValidityPeriod'] + if signing_material is None and 'signingMaterial' in kwargs: + signing_material = kwargs['signingMaterial'] + + _setter("platform_id", platform_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if signature_validity_period is not None: - pulumi.set(__self__, "signature_validity_period", signature_validity_period) + _setter("signature_validity_period", signature_validity_period) if signing_material is not None: - pulumi.set(__self__, "signing_material", signing_material) + _setter("signing_material", signing_material) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="platformId") @@ -143,35 +174,86 @@ def __init__(__self__, *, :param pulumi.Input[str] version: The current version of the signing profile. :param pulumi.Input[str] version_arn: The signing profile ARN, including the profile version. """ + _SigningProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + name_prefix=name_prefix, + platform_display_name=platform_display_name, + platform_id=platform_id, + revocation_records=revocation_records, + signature_validity_period=signature_validity_period, + signing_material=signing_material, + status=status, + tags=tags, + tags_all=tags_all, + version=version, + version_arn=version_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + platform_display_name: Optional[pulumi.Input[str]] = None, + platform_id: Optional[pulumi.Input[str]] = None, + revocation_records: Optional[pulumi.Input[Sequence[pulumi.Input['SigningProfileRevocationRecordArgs']]]] = None, + signature_validity_period: Optional[pulumi.Input['SigningProfileSignatureValidityPeriodArgs']] = None, + signing_material: Optional[pulumi.Input['SigningProfileSigningMaterialArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if platform_display_name is None and 'platformDisplayName' in kwargs: + platform_display_name = kwargs['platformDisplayName'] + if platform_id is None and 'platformId' in kwargs: + platform_id = kwargs['platformId'] + if revocation_records is None and 'revocationRecords' in kwargs: + revocation_records = kwargs['revocationRecords'] + if signature_validity_period is None and 'signatureValidityPeriod' in kwargs: + signature_validity_period = kwargs['signatureValidityPeriod'] + if signing_material is None and 'signingMaterial' in kwargs: + signing_material = kwargs['signingMaterial'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if version_arn is None and 'versionArn' in kwargs: + version_arn = kwargs['versionArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if platform_display_name is not None: - pulumi.set(__self__, "platform_display_name", platform_display_name) + _setter("platform_display_name", platform_display_name) if platform_id is not None: - pulumi.set(__self__, "platform_id", platform_id) + _setter("platform_id", platform_id) if revocation_records is not None: - pulumi.set(__self__, "revocation_records", revocation_records) + _setter("revocation_records", revocation_records) if signature_validity_period is not None: - pulumi.set(__self__, "signature_validity_period", signature_validity_period) + _setter("signature_validity_period", signature_validity_period) if signing_material is not None: - pulumi.set(__self__, "signing_material", signing_material) + _setter("signing_material", signing_material) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) if version_arn is not None: - pulumi.set(__self__, "version_arn", version_arn) + _setter("version_arn", version_arn) @property @pulumi.getter @@ -428,6 +510,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SigningProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -453,7 +539,9 @@ def _internal_init(__self__, if platform_id is None and not opts.urn: raise TypeError("Missing required property 'platform_id'") __props__.__dict__["platform_id"] = platform_id + signature_validity_period = _utilities.configure(signature_validity_period, SigningProfileSignatureValidityPeriodArgs, True) __props__.__dict__["signature_validity_period"] = signature_validity_period + signing_material = _utilities.configure(signing_material, SigningProfileSigningMaterialArgs, True) __props__.__dict__["signing_material"] = signing_material __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/signer/signing_profile_permission.py b/sdk/python/pulumi_aws/signer/signing_profile_permission.py index fedde00e743..8ac202e32bf 100644 --- a/sdk/python/pulumi_aws/signer/signing_profile_permission.py +++ b/sdk/python/pulumi_aws/signer/signing_profile_permission.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SigningProfilePermissionArgs', 'SigningProfilePermission'] @@ -29,15 +29,50 @@ def __init__(__self__, *, :param pulumi.Input[str] statement_id: A unique statement identifier. By default generated by the provider. :param pulumi.Input[str] statement_id_prefix: A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statement_id`. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "principal", principal) - pulumi.set(__self__, "profile_name", profile_name) + SigningProfilePermissionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + principal=principal, + profile_name=profile_name, + profile_version=profile_version, + statement_id=statement_id, + statement_id_prefix=statement_id_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + profile_name: Optional[pulumi.Input[str]] = None, + profile_version: Optional[pulumi.Input[str]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + statement_id_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if principal is None: + raise TypeError("Missing 'principal' argument") + if profile_name is None and 'profileName' in kwargs: + profile_name = kwargs['profileName'] + if profile_name is None: + raise TypeError("Missing 'profile_name' argument") + if profile_version is None and 'profileVersion' in kwargs: + profile_version = kwargs['profileVersion'] + if statement_id is None and 'statementId' in kwargs: + statement_id = kwargs['statementId'] + if statement_id_prefix is None and 'statementIdPrefix' in kwargs: + statement_id_prefix = kwargs['statementIdPrefix'] + + _setter("action", action) + _setter("principal", principal) + _setter("profile_name", profile_name) if profile_version is not None: - pulumi.set(__self__, "profile_version", profile_version) + _setter("profile_version", profile_version) if statement_id is not None: - pulumi.set(__self__, "statement_id", statement_id) + _setter("statement_id", statement_id) if statement_id_prefix is not None: - pulumi.set(__self__, "statement_id_prefix", statement_id_prefix) + _setter("statement_id_prefix", statement_id_prefix) @property @pulumi.getter @@ -130,18 +165,47 @@ def __init__(__self__, *, :param pulumi.Input[str] statement_id: A unique statement identifier. By default generated by the provider. :param pulumi.Input[str] statement_id_prefix: A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statement_id`. """ + _SigningProfilePermissionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + principal=principal, + profile_name=profile_name, + profile_version=profile_version, + statement_id=statement_id, + statement_id_prefix=statement_id_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + principal: Optional[pulumi.Input[str]] = None, + profile_name: Optional[pulumi.Input[str]] = None, + profile_version: Optional[pulumi.Input[str]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + statement_id_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if profile_name is None and 'profileName' in kwargs: + profile_name = kwargs['profileName'] + if profile_version is None and 'profileVersion' in kwargs: + profile_version = kwargs['profileVersion'] + if statement_id is None and 'statementId' in kwargs: + statement_id = kwargs['statementId'] + if statement_id_prefix is None and 'statementIdPrefix' in kwargs: + statement_id_prefix = kwargs['statementIdPrefix'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if principal is not None: - pulumi.set(__self__, "principal", principal) + _setter("principal", principal) if profile_name is not None: - pulumi.set(__self__, "profile_name", profile_name) + _setter("profile_name", profile_name) if profile_version is not None: - pulumi.set(__self__, "profile_version", profile_version) + _setter("profile_version", profile_version) if statement_id is not None: - pulumi.set(__self__, "statement_id", statement_id) + _setter("statement_id", statement_id) if statement_id_prefix is not None: - pulumi.set(__self__, "statement_id_prefix", statement_id_prefix) + _setter("statement_id_prefix", statement_id_prefix) @property @pulumi.getter @@ -343,6 +407,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SigningProfilePermissionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/simpledb/domain.py b/sdk/python/pulumi_aws/simpledb/domain.py index 775a9d8c13e..36b98f85142 100644 --- a/sdk/python/pulumi_aws/simpledb/domain.py +++ b/sdk/python/pulumi_aws/simpledb/domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainArgs', 'Domain'] @@ -19,8 +19,19 @@ def __init__(__self__, *, The set of arguments for constructing a Domain resource. :param pulumi.Input[str] name: The name of the SimpleDB domain """ + DomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -43,8 +54,19 @@ def __init__(__self__, *, Input properties used for looking up and filtering Domain resources. :param pulumi.Input[str] name: The name of the SimpleDB domain """ + _DomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -126,6 +148,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sns/data_protection_policy.py b/sdk/python/pulumi_aws/sns/data_protection_policy.py index ff2cc2fff65..2805930fdd7 100644 --- a/sdk/python/pulumi_aws/sns/data_protection_policy.py +++ b/sdk/python/pulumi_aws/sns/data_protection_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DataProtectionPolicyArgs', 'DataProtectionPolicy'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The ARN of the SNS topic :param pulumi.Input[str] policy: The fully-formed AWS policy as JSON. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "policy", policy) + DataProtectionPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("arn", arn) + _setter("policy", policy) @property @pulumi.getter @@ -59,10 +76,23 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The ARN of the SNS topic :param pulumi.Input[str] policy: The fully-formed AWS policy as JSON. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. """ + _DataProtectionPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -192,6 +222,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DataProtectionPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sns/get_topic.py b/sdk/python/pulumi_aws/sns/get_topic.py index dca19afa37e..672d9e35acc 100644 --- a/sdk/python/pulumi_aws/sns/get_topic.py +++ b/sdk/python/pulumi_aws/sns/get_topic.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/sns/platform_application.py b/sdk/python/pulumi_aws/sns/platform_application.py index ccbbc2884aa..5019638a605 100644 --- a/sdk/python/pulumi_aws/sns/platform_application.py +++ b/sdk/python/pulumi_aws/sns/platform_application.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PlatformApplicationArgs', 'PlatformApplication'] @@ -45,30 +45,91 @@ def __init__(__self__, *, The following attributes are needed only when using APNS token credentials: """ - pulumi.set(__self__, "platform", platform) - pulumi.set(__self__, "platform_credential", platform_credential) + PlatformApplicationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + platform=platform, + platform_credential=platform_credential, + apple_platform_bundle_id=apple_platform_bundle_id, + apple_platform_team_id=apple_platform_team_id, + event_delivery_failure_topic_arn=event_delivery_failure_topic_arn, + event_endpoint_created_topic_arn=event_endpoint_created_topic_arn, + event_endpoint_deleted_topic_arn=event_endpoint_deleted_topic_arn, + event_endpoint_updated_topic_arn=event_endpoint_updated_topic_arn, + failure_feedback_role_arn=failure_feedback_role_arn, + name=name, + platform_principal=platform_principal, + success_feedback_role_arn=success_feedback_role_arn, + success_feedback_sample_rate=success_feedback_sample_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + platform: Optional[pulumi.Input[str]] = None, + platform_credential: Optional[pulumi.Input[str]] = None, + apple_platform_bundle_id: Optional[pulumi.Input[str]] = None, + apple_platform_team_id: Optional[pulumi.Input[str]] = None, + event_delivery_failure_topic_arn: Optional[pulumi.Input[str]] = None, + event_endpoint_created_topic_arn: Optional[pulumi.Input[str]] = None, + event_endpoint_deleted_topic_arn: Optional[pulumi.Input[str]] = None, + event_endpoint_updated_topic_arn: Optional[pulumi.Input[str]] = None, + failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + platform_principal: Optional[pulumi.Input[str]] = None, + success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + success_feedback_sample_rate: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if platform is None: + raise TypeError("Missing 'platform' argument") + if platform_credential is None and 'platformCredential' in kwargs: + platform_credential = kwargs['platformCredential'] + if platform_credential is None: + raise TypeError("Missing 'platform_credential' argument") + if apple_platform_bundle_id is None and 'applePlatformBundleId' in kwargs: + apple_platform_bundle_id = kwargs['applePlatformBundleId'] + if apple_platform_team_id is None and 'applePlatformTeamId' in kwargs: + apple_platform_team_id = kwargs['applePlatformTeamId'] + if event_delivery_failure_topic_arn is None and 'eventDeliveryFailureTopicArn' in kwargs: + event_delivery_failure_topic_arn = kwargs['eventDeliveryFailureTopicArn'] + if event_endpoint_created_topic_arn is None and 'eventEndpointCreatedTopicArn' in kwargs: + event_endpoint_created_topic_arn = kwargs['eventEndpointCreatedTopicArn'] + if event_endpoint_deleted_topic_arn is None and 'eventEndpointDeletedTopicArn' in kwargs: + event_endpoint_deleted_topic_arn = kwargs['eventEndpointDeletedTopicArn'] + if event_endpoint_updated_topic_arn is None and 'eventEndpointUpdatedTopicArn' in kwargs: + event_endpoint_updated_topic_arn = kwargs['eventEndpointUpdatedTopicArn'] + if failure_feedback_role_arn is None and 'failureFeedbackRoleArn' in kwargs: + failure_feedback_role_arn = kwargs['failureFeedbackRoleArn'] + if platform_principal is None and 'platformPrincipal' in kwargs: + platform_principal = kwargs['platformPrincipal'] + if success_feedback_role_arn is None and 'successFeedbackRoleArn' in kwargs: + success_feedback_role_arn = kwargs['successFeedbackRoleArn'] + if success_feedback_sample_rate is None and 'successFeedbackSampleRate' in kwargs: + success_feedback_sample_rate = kwargs['successFeedbackSampleRate'] + + _setter("platform", platform) + _setter("platform_credential", platform_credential) if apple_platform_bundle_id is not None: - pulumi.set(__self__, "apple_platform_bundle_id", apple_platform_bundle_id) + _setter("apple_platform_bundle_id", apple_platform_bundle_id) if apple_platform_team_id is not None: - pulumi.set(__self__, "apple_platform_team_id", apple_platform_team_id) + _setter("apple_platform_team_id", apple_platform_team_id) if event_delivery_failure_topic_arn is not None: - pulumi.set(__self__, "event_delivery_failure_topic_arn", event_delivery_failure_topic_arn) + _setter("event_delivery_failure_topic_arn", event_delivery_failure_topic_arn) if event_endpoint_created_topic_arn is not None: - pulumi.set(__self__, "event_endpoint_created_topic_arn", event_endpoint_created_topic_arn) + _setter("event_endpoint_created_topic_arn", event_endpoint_created_topic_arn) if event_endpoint_deleted_topic_arn is not None: - pulumi.set(__self__, "event_endpoint_deleted_topic_arn", event_endpoint_deleted_topic_arn) + _setter("event_endpoint_deleted_topic_arn", event_endpoint_deleted_topic_arn) if event_endpoint_updated_topic_arn is not None: - pulumi.set(__self__, "event_endpoint_updated_topic_arn", event_endpoint_updated_topic_arn) + _setter("event_endpoint_updated_topic_arn", event_endpoint_updated_topic_arn) if failure_feedback_role_arn is not None: - pulumi.set(__self__, "failure_feedback_role_arn", failure_feedback_role_arn) + _setter("failure_feedback_role_arn", failure_feedback_role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if platform_principal is not None: - pulumi.set(__self__, "platform_principal", platform_principal) + _setter("platform_principal", platform_principal) if success_feedback_role_arn is not None: - pulumi.set(__self__, "success_feedback_role_arn", success_feedback_role_arn) + _setter("success_feedback_role_arn", success_feedback_role_arn) if success_feedback_sample_rate is not None: - pulumi.set(__self__, "success_feedback_sample_rate", success_feedback_sample_rate) + _setter("success_feedback_sample_rate", success_feedback_sample_rate) @property @pulumi.getter @@ -265,34 +326,93 @@ def __init__(__self__, *, The following attributes are needed only when using APNS token credentials: """ + _PlatformApplicationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + apple_platform_bundle_id=apple_platform_bundle_id, + apple_platform_team_id=apple_platform_team_id, + arn=arn, + event_delivery_failure_topic_arn=event_delivery_failure_topic_arn, + event_endpoint_created_topic_arn=event_endpoint_created_topic_arn, + event_endpoint_deleted_topic_arn=event_endpoint_deleted_topic_arn, + event_endpoint_updated_topic_arn=event_endpoint_updated_topic_arn, + failure_feedback_role_arn=failure_feedback_role_arn, + name=name, + platform=platform, + platform_credential=platform_credential, + platform_principal=platform_principal, + success_feedback_role_arn=success_feedback_role_arn, + success_feedback_sample_rate=success_feedback_sample_rate, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apple_platform_bundle_id: Optional[pulumi.Input[str]] = None, + apple_platform_team_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + event_delivery_failure_topic_arn: Optional[pulumi.Input[str]] = None, + event_endpoint_created_topic_arn: Optional[pulumi.Input[str]] = None, + event_endpoint_deleted_topic_arn: Optional[pulumi.Input[str]] = None, + event_endpoint_updated_topic_arn: Optional[pulumi.Input[str]] = None, + failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + platform: Optional[pulumi.Input[str]] = None, + platform_credential: Optional[pulumi.Input[str]] = None, + platform_principal: Optional[pulumi.Input[str]] = None, + success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + success_feedback_sample_rate: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apple_platform_bundle_id is None and 'applePlatformBundleId' in kwargs: + apple_platform_bundle_id = kwargs['applePlatformBundleId'] + if apple_platform_team_id is None and 'applePlatformTeamId' in kwargs: + apple_platform_team_id = kwargs['applePlatformTeamId'] + if event_delivery_failure_topic_arn is None and 'eventDeliveryFailureTopicArn' in kwargs: + event_delivery_failure_topic_arn = kwargs['eventDeliveryFailureTopicArn'] + if event_endpoint_created_topic_arn is None and 'eventEndpointCreatedTopicArn' in kwargs: + event_endpoint_created_topic_arn = kwargs['eventEndpointCreatedTopicArn'] + if event_endpoint_deleted_topic_arn is None and 'eventEndpointDeletedTopicArn' in kwargs: + event_endpoint_deleted_topic_arn = kwargs['eventEndpointDeletedTopicArn'] + if event_endpoint_updated_topic_arn is None and 'eventEndpointUpdatedTopicArn' in kwargs: + event_endpoint_updated_topic_arn = kwargs['eventEndpointUpdatedTopicArn'] + if failure_feedback_role_arn is None and 'failureFeedbackRoleArn' in kwargs: + failure_feedback_role_arn = kwargs['failureFeedbackRoleArn'] + if platform_credential is None and 'platformCredential' in kwargs: + platform_credential = kwargs['platformCredential'] + if platform_principal is None and 'platformPrincipal' in kwargs: + platform_principal = kwargs['platformPrincipal'] + if success_feedback_role_arn is None and 'successFeedbackRoleArn' in kwargs: + success_feedback_role_arn = kwargs['successFeedbackRoleArn'] + if success_feedback_sample_rate is None and 'successFeedbackSampleRate' in kwargs: + success_feedback_sample_rate = kwargs['successFeedbackSampleRate'] + if apple_platform_bundle_id is not None: - pulumi.set(__self__, "apple_platform_bundle_id", apple_platform_bundle_id) + _setter("apple_platform_bundle_id", apple_platform_bundle_id) if apple_platform_team_id is not None: - pulumi.set(__self__, "apple_platform_team_id", apple_platform_team_id) + _setter("apple_platform_team_id", apple_platform_team_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if event_delivery_failure_topic_arn is not None: - pulumi.set(__self__, "event_delivery_failure_topic_arn", event_delivery_failure_topic_arn) + _setter("event_delivery_failure_topic_arn", event_delivery_failure_topic_arn) if event_endpoint_created_topic_arn is not None: - pulumi.set(__self__, "event_endpoint_created_topic_arn", event_endpoint_created_topic_arn) + _setter("event_endpoint_created_topic_arn", event_endpoint_created_topic_arn) if event_endpoint_deleted_topic_arn is not None: - pulumi.set(__self__, "event_endpoint_deleted_topic_arn", event_endpoint_deleted_topic_arn) + _setter("event_endpoint_deleted_topic_arn", event_endpoint_deleted_topic_arn) if event_endpoint_updated_topic_arn is not None: - pulumi.set(__self__, "event_endpoint_updated_topic_arn", event_endpoint_updated_topic_arn) + _setter("event_endpoint_updated_topic_arn", event_endpoint_updated_topic_arn) if failure_feedback_role_arn is not None: - pulumi.set(__self__, "failure_feedback_role_arn", failure_feedback_role_arn) + _setter("failure_feedback_role_arn", failure_feedback_role_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if platform is not None: - pulumi.set(__self__, "platform", platform) + _setter("platform", platform) if platform_credential is not None: - pulumi.set(__self__, "platform_credential", platform_credential) + _setter("platform_credential", platform_credential) if platform_principal is not None: - pulumi.set(__self__, "platform_principal", platform_principal) + _setter("platform_principal", platform_principal) if success_feedback_role_arn is not None: - pulumi.set(__self__, "success_feedback_role_arn", success_feedback_role_arn) + _setter("success_feedback_role_arn", success_feedback_role_arn) if success_feedback_sample_rate is not None: - pulumi.set(__self__, "success_feedback_sample_rate", success_feedback_sample_rate) + _setter("success_feedback_sample_rate", success_feedback_sample_rate) @property @pulumi.getter(name="applePlatformBundleId") @@ -612,6 +732,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PlatformApplicationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sns/sms_preferences.py b/sdk/python/pulumi_aws/sns/sms_preferences.py index a94df793912..c70489f081d 100644 --- a/sdk/python/pulumi_aws/sns/sms_preferences.py +++ b/sdk/python/pulumi_aws/sns/sms_preferences.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SmsPreferencesArgs', 'SmsPreferences'] @@ -29,18 +29,51 @@ def __init__(__self__, *, :param pulumi.Input[int] monthly_spend_limit: The maximum amount in USD that you are willing to spend each month to send SMS messages. :param pulumi.Input[str] usage_report_s3_bucket: The name of the Amazon S3 bucket to receive daily SMS usage reports from Amazon SNS. """ + SmsPreferencesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_sender_id=default_sender_id, + default_sms_type=default_sms_type, + delivery_status_iam_role_arn=delivery_status_iam_role_arn, + delivery_status_success_sampling_rate=delivery_status_success_sampling_rate, + monthly_spend_limit=monthly_spend_limit, + usage_report_s3_bucket=usage_report_s3_bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_sender_id: Optional[pulumi.Input[str]] = None, + default_sms_type: Optional[pulumi.Input[str]] = None, + delivery_status_iam_role_arn: Optional[pulumi.Input[str]] = None, + delivery_status_success_sampling_rate: Optional[pulumi.Input[str]] = None, + monthly_spend_limit: Optional[pulumi.Input[int]] = None, + usage_report_s3_bucket: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_sender_id is None and 'defaultSenderId' in kwargs: + default_sender_id = kwargs['defaultSenderId'] + if default_sms_type is None and 'defaultSmsType' in kwargs: + default_sms_type = kwargs['defaultSmsType'] + if delivery_status_iam_role_arn is None and 'deliveryStatusIamRoleArn' in kwargs: + delivery_status_iam_role_arn = kwargs['deliveryStatusIamRoleArn'] + if delivery_status_success_sampling_rate is None and 'deliveryStatusSuccessSamplingRate' in kwargs: + delivery_status_success_sampling_rate = kwargs['deliveryStatusSuccessSamplingRate'] + if monthly_spend_limit is None and 'monthlySpendLimit' in kwargs: + monthly_spend_limit = kwargs['monthlySpendLimit'] + if usage_report_s3_bucket is None and 'usageReportS3Bucket' in kwargs: + usage_report_s3_bucket = kwargs['usageReportS3Bucket'] + if default_sender_id is not None: - pulumi.set(__self__, "default_sender_id", default_sender_id) + _setter("default_sender_id", default_sender_id) if default_sms_type is not None: - pulumi.set(__self__, "default_sms_type", default_sms_type) + _setter("default_sms_type", default_sms_type) if delivery_status_iam_role_arn is not None: - pulumi.set(__self__, "delivery_status_iam_role_arn", delivery_status_iam_role_arn) + _setter("delivery_status_iam_role_arn", delivery_status_iam_role_arn) if delivery_status_success_sampling_rate is not None: - pulumi.set(__self__, "delivery_status_success_sampling_rate", delivery_status_success_sampling_rate) + _setter("delivery_status_success_sampling_rate", delivery_status_success_sampling_rate) if monthly_spend_limit is not None: - pulumi.set(__self__, "monthly_spend_limit", monthly_spend_limit) + _setter("monthly_spend_limit", monthly_spend_limit) if usage_report_s3_bucket is not None: - pulumi.set(__self__, "usage_report_s3_bucket", usage_report_s3_bucket) + _setter("usage_report_s3_bucket", usage_report_s3_bucket) @property @pulumi.getter(name="defaultSenderId") @@ -133,18 +166,51 @@ def __init__(__self__, *, :param pulumi.Input[int] monthly_spend_limit: The maximum amount in USD that you are willing to spend each month to send SMS messages. :param pulumi.Input[str] usage_report_s3_bucket: The name of the Amazon S3 bucket to receive daily SMS usage reports from Amazon SNS. """ + _SmsPreferencesState._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_sender_id=default_sender_id, + default_sms_type=default_sms_type, + delivery_status_iam_role_arn=delivery_status_iam_role_arn, + delivery_status_success_sampling_rate=delivery_status_success_sampling_rate, + monthly_spend_limit=monthly_spend_limit, + usage_report_s3_bucket=usage_report_s3_bucket, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_sender_id: Optional[pulumi.Input[str]] = None, + default_sms_type: Optional[pulumi.Input[str]] = None, + delivery_status_iam_role_arn: Optional[pulumi.Input[str]] = None, + delivery_status_success_sampling_rate: Optional[pulumi.Input[str]] = None, + monthly_spend_limit: Optional[pulumi.Input[int]] = None, + usage_report_s3_bucket: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_sender_id is None and 'defaultSenderId' in kwargs: + default_sender_id = kwargs['defaultSenderId'] + if default_sms_type is None and 'defaultSmsType' in kwargs: + default_sms_type = kwargs['defaultSmsType'] + if delivery_status_iam_role_arn is None and 'deliveryStatusIamRoleArn' in kwargs: + delivery_status_iam_role_arn = kwargs['deliveryStatusIamRoleArn'] + if delivery_status_success_sampling_rate is None and 'deliveryStatusSuccessSamplingRate' in kwargs: + delivery_status_success_sampling_rate = kwargs['deliveryStatusSuccessSamplingRate'] + if monthly_spend_limit is None and 'monthlySpendLimit' in kwargs: + monthly_spend_limit = kwargs['monthlySpendLimit'] + if usage_report_s3_bucket is None and 'usageReportS3Bucket' in kwargs: + usage_report_s3_bucket = kwargs['usageReportS3Bucket'] + if default_sender_id is not None: - pulumi.set(__self__, "default_sender_id", default_sender_id) + _setter("default_sender_id", default_sender_id) if default_sms_type is not None: - pulumi.set(__self__, "default_sms_type", default_sms_type) + _setter("default_sms_type", default_sms_type) if delivery_status_iam_role_arn is not None: - pulumi.set(__self__, "delivery_status_iam_role_arn", delivery_status_iam_role_arn) + _setter("delivery_status_iam_role_arn", delivery_status_iam_role_arn) if delivery_status_success_sampling_rate is not None: - pulumi.set(__self__, "delivery_status_success_sampling_rate", delivery_status_success_sampling_rate) + _setter("delivery_status_success_sampling_rate", delivery_status_success_sampling_rate) if monthly_spend_limit is not None: - pulumi.set(__self__, "monthly_spend_limit", monthly_spend_limit) + _setter("monthly_spend_limit", monthly_spend_limit) if usage_report_s3_bucket is not None: - pulumi.set(__self__, "usage_report_s3_bucket", usage_report_s3_bucket) + _setter("usage_report_s3_bucket", usage_report_s3_bucket) @property @pulumi.getter(name="defaultSenderId") @@ -280,6 +346,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SmsPreferencesArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sns/topic.py b/sdk/python/pulumi_aws/sns/topic.py index 4126cb6a119..04e5abaeaea 100644 --- a/sdk/python/pulumi_aws/sns/topic.py +++ b/sdk/python/pulumi_aws/sns/topic.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TopicArgs', 'Topic'] @@ -69,58 +69,165 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] tracing_config: Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`. """ + TopicArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_failure_feedback_role_arn=application_failure_feedback_role_arn, + application_success_feedback_role_arn=application_success_feedback_role_arn, + application_success_feedback_sample_rate=application_success_feedback_sample_rate, + content_based_deduplication=content_based_deduplication, + delivery_policy=delivery_policy, + display_name=display_name, + fifo_topic=fifo_topic, + firehose_failure_feedback_role_arn=firehose_failure_feedback_role_arn, + firehose_success_feedback_role_arn=firehose_success_feedback_role_arn, + firehose_success_feedback_sample_rate=firehose_success_feedback_sample_rate, + http_failure_feedback_role_arn=http_failure_feedback_role_arn, + http_success_feedback_role_arn=http_success_feedback_role_arn, + http_success_feedback_sample_rate=http_success_feedback_sample_rate, + kms_master_key_id=kms_master_key_id, + lambda_failure_feedback_role_arn=lambda_failure_feedback_role_arn, + lambda_success_feedback_role_arn=lambda_success_feedback_role_arn, + lambda_success_feedback_sample_rate=lambda_success_feedback_sample_rate, + name=name, + name_prefix=name_prefix, + policy=policy, + signature_version=signature_version, + sqs_failure_feedback_role_arn=sqs_failure_feedback_role_arn, + sqs_success_feedback_role_arn=sqs_success_feedback_role_arn, + sqs_success_feedback_sample_rate=sqs_success_feedback_sample_rate, + tags=tags, + tracing_config=tracing_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + application_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + application_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + content_based_deduplication: Optional[pulumi.Input[bool]] = None, + delivery_policy: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + fifo_topic: Optional[pulumi.Input[bool]] = None, + firehose_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + firehose_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + firehose_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + http_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + http_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + http_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + kms_master_key_id: Optional[pulumi.Input[str]] = None, + lambda_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + lambda_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + lambda_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + signature_version: Optional[pulumi.Input[int]] = None, + sqs_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + sqs_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + sqs_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracing_config: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_failure_feedback_role_arn is None and 'applicationFailureFeedbackRoleArn' in kwargs: + application_failure_feedback_role_arn = kwargs['applicationFailureFeedbackRoleArn'] + if application_success_feedback_role_arn is None and 'applicationSuccessFeedbackRoleArn' in kwargs: + application_success_feedback_role_arn = kwargs['applicationSuccessFeedbackRoleArn'] + if application_success_feedback_sample_rate is None and 'applicationSuccessFeedbackSampleRate' in kwargs: + application_success_feedback_sample_rate = kwargs['applicationSuccessFeedbackSampleRate'] + if content_based_deduplication is None and 'contentBasedDeduplication' in kwargs: + content_based_deduplication = kwargs['contentBasedDeduplication'] + if delivery_policy is None and 'deliveryPolicy' in kwargs: + delivery_policy = kwargs['deliveryPolicy'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if fifo_topic is None and 'fifoTopic' in kwargs: + fifo_topic = kwargs['fifoTopic'] + if firehose_failure_feedback_role_arn is None and 'firehoseFailureFeedbackRoleArn' in kwargs: + firehose_failure_feedback_role_arn = kwargs['firehoseFailureFeedbackRoleArn'] + if firehose_success_feedback_role_arn is None and 'firehoseSuccessFeedbackRoleArn' in kwargs: + firehose_success_feedback_role_arn = kwargs['firehoseSuccessFeedbackRoleArn'] + if firehose_success_feedback_sample_rate is None and 'firehoseSuccessFeedbackSampleRate' in kwargs: + firehose_success_feedback_sample_rate = kwargs['firehoseSuccessFeedbackSampleRate'] + if http_failure_feedback_role_arn is None and 'httpFailureFeedbackRoleArn' in kwargs: + http_failure_feedback_role_arn = kwargs['httpFailureFeedbackRoleArn'] + if http_success_feedback_role_arn is None and 'httpSuccessFeedbackRoleArn' in kwargs: + http_success_feedback_role_arn = kwargs['httpSuccessFeedbackRoleArn'] + if http_success_feedback_sample_rate is None and 'httpSuccessFeedbackSampleRate' in kwargs: + http_success_feedback_sample_rate = kwargs['httpSuccessFeedbackSampleRate'] + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + if lambda_failure_feedback_role_arn is None and 'lambdaFailureFeedbackRoleArn' in kwargs: + lambda_failure_feedback_role_arn = kwargs['lambdaFailureFeedbackRoleArn'] + if lambda_success_feedback_role_arn is None and 'lambdaSuccessFeedbackRoleArn' in kwargs: + lambda_success_feedback_role_arn = kwargs['lambdaSuccessFeedbackRoleArn'] + if lambda_success_feedback_sample_rate is None and 'lambdaSuccessFeedbackSampleRate' in kwargs: + lambda_success_feedback_sample_rate = kwargs['lambdaSuccessFeedbackSampleRate'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if signature_version is None and 'signatureVersion' in kwargs: + signature_version = kwargs['signatureVersion'] + if sqs_failure_feedback_role_arn is None and 'sqsFailureFeedbackRoleArn' in kwargs: + sqs_failure_feedback_role_arn = kwargs['sqsFailureFeedbackRoleArn'] + if sqs_success_feedback_role_arn is None and 'sqsSuccessFeedbackRoleArn' in kwargs: + sqs_success_feedback_role_arn = kwargs['sqsSuccessFeedbackRoleArn'] + if sqs_success_feedback_sample_rate is None and 'sqsSuccessFeedbackSampleRate' in kwargs: + sqs_success_feedback_sample_rate = kwargs['sqsSuccessFeedbackSampleRate'] + if tracing_config is None and 'tracingConfig' in kwargs: + tracing_config = kwargs['tracingConfig'] + if application_failure_feedback_role_arn is not None: - pulumi.set(__self__, "application_failure_feedback_role_arn", application_failure_feedback_role_arn) + _setter("application_failure_feedback_role_arn", application_failure_feedback_role_arn) if application_success_feedback_role_arn is not None: - pulumi.set(__self__, "application_success_feedback_role_arn", application_success_feedback_role_arn) + _setter("application_success_feedback_role_arn", application_success_feedback_role_arn) if application_success_feedback_sample_rate is not None: - pulumi.set(__self__, "application_success_feedback_sample_rate", application_success_feedback_sample_rate) + _setter("application_success_feedback_sample_rate", application_success_feedback_sample_rate) if content_based_deduplication is not None: - pulumi.set(__self__, "content_based_deduplication", content_based_deduplication) + _setter("content_based_deduplication", content_based_deduplication) if delivery_policy is not None: - pulumi.set(__self__, "delivery_policy", delivery_policy) + _setter("delivery_policy", delivery_policy) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if fifo_topic is not None: - pulumi.set(__self__, "fifo_topic", fifo_topic) + _setter("fifo_topic", fifo_topic) if firehose_failure_feedback_role_arn is not None: - pulumi.set(__self__, "firehose_failure_feedback_role_arn", firehose_failure_feedback_role_arn) + _setter("firehose_failure_feedback_role_arn", firehose_failure_feedback_role_arn) if firehose_success_feedback_role_arn is not None: - pulumi.set(__self__, "firehose_success_feedback_role_arn", firehose_success_feedback_role_arn) + _setter("firehose_success_feedback_role_arn", firehose_success_feedback_role_arn) if firehose_success_feedback_sample_rate is not None: - pulumi.set(__self__, "firehose_success_feedback_sample_rate", firehose_success_feedback_sample_rate) + _setter("firehose_success_feedback_sample_rate", firehose_success_feedback_sample_rate) if http_failure_feedback_role_arn is not None: - pulumi.set(__self__, "http_failure_feedback_role_arn", http_failure_feedback_role_arn) + _setter("http_failure_feedback_role_arn", http_failure_feedback_role_arn) if http_success_feedback_role_arn is not None: - pulumi.set(__self__, "http_success_feedback_role_arn", http_success_feedback_role_arn) + _setter("http_success_feedback_role_arn", http_success_feedback_role_arn) if http_success_feedback_sample_rate is not None: - pulumi.set(__self__, "http_success_feedback_sample_rate", http_success_feedback_sample_rate) + _setter("http_success_feedback_sample_rate", http_success_feedback_sample_rate) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) if lambda_failure_feedback_role_arn is not None: - pulumi.set(__self__, "lambda_failure_feedback_role_arn", lambda_failure_feedback_role_arn) + _setter("lambda_failure_feedback_role_arn", lambda_failure_feedback_role_arn) if lambda_success_feedback_role_arn is not None: - pulumi.set(__self__, "lambda_success_feedback_role_arn", lambda_success_feedback_role_arn) + _setter("lambda_success_feedback_role_arn", lambda_success_feedback_role_arn) if lambda_success_feedback_sample_rate is not None: - pulumi.set(__self__, "lambda_success_feedback_sample_rate", lambda_success_feedback_sample_rate) + _setter("lambda_success_feedback_sample_rate", lambda_success_feedback_sample_rate) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if signature_version is not None: - pulumi.set(__self__, "signature_version", signature_version) + _setter("signature_version", signature_version) if sqs_failure_feedback_role_arn is not None: - pulumi.set(__self__, "sqs_failure_feedback_role_arn", sqs_failure_feedback_role_arn) + _setter("sqs_failure_feedback_role_arn", sqs_failure_feedback_role_arn) if sqs_success_feedback_role_arn is not None: - pulumi.set(__self__, "sqs_success_feedback_role_arn", sqs_success_feedback_role_arn) + _setter("sqs_success_feedback_role_arn", sqs_success_feedback_role_arn) if sqs_success_feedback_sample_rate is not None: - pulumi.set(__self__, "sqs_success_feedback_sample_rate", sqs_success_feedback_sample_rate) + _setter("sqs_success_feedback_sample_rate", sqs_success_feedback_sample_rate) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tracing_config is not None: - pulumi.set(__self__, "tracing_config", tracing_config) + _setter("tracing_config", tracing_config) @property @pulumi.getter(name="applicationFailureFeedbackRoleArn") @@ -499,67 +606,182 @@ def __init__(__self__, *, :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] tracing_config: Tracing mode of an Amazon SNS topic. Valid values: `"PassThrough"`, `"Active"`. """ + _TopicState._configure( + lambda key, value: pulumi.set(__self__, key, value), + application_failure_feedback_role_arn=application_failure_feedback_role_arn, + application_success_feedback_role_arn=application_success_feedback_role_arn, + application_success_feedback_sample_rate=application_success_feedback_sample_rate, + arn=arn, + content_based_deduplication=content_based_deduplication, + delivery_policy=delivery_policy, + display_name=display_name, + fifo_topic=fifo_topic, + firehose_failure_feedback_role_arn=firehose_failure_feedback_role_arn, + firehose_success_feedback_role_arn=firehose_success_feedback_role_arn, + firehose_success_feedback_sample_rate=firehose_success_feedback_sample_rate, + http_failure_feedback_role_arn=http_failure_feedback_role_arn, + http_success_feedback_role_arn=http_success_feedback_role_arn, + http_success_feedback_sample_rate=http_success_feedback_sample_rate, + kms_master_key_id=kms_master_key_id, + lambda_failure_feedback_role_arn=lambda_failure_feedback_role_arn, + lambda_success_feedback_role_arn=lambda_success_feedback_role_arn, + lambda_success_feedback_sample_rate=lambda_success_feedback_sample_rate, + name=name, + name_prefix=name_prefix, + owner=owner, + policy=policy, + signature_version=signature_version, + sqs_failure_feedback_role_arn=sqs_failure_feedback_role_arn, + sqs_success_feedback_role_arn=sqs_success_feedback_role_arn, + sqs_success_feedback_sample_rate=sqs_success_feedback_sample_rate, + tags=tags, + tags_all=tags_all, + tracing_config=tracing_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + application_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + application_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + application_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + arn: Optional[pulumi.Input[str]] = None, + content_based_deduplication: Optional[pulumi.Input[bool]] = None, + delivery_policy: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + fifo_topic: Optional[pulumi.Input[bool]] = None, + firehose_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + firehose_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + firehose_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + http_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + http_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + http_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + kms_master_key_id: Optional[pulumi.Input[str]] = None, + lambda_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + lambda_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + lambda_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + signature_version: Optional[pulumi.Input[int]] = None, + sqs_failure_feedback_role_arn: Optional[pulumi.Input[str]] = None, + sqs_success_feedback_role_arn: Optional[pulumi.Input[str]] = None, + sqs_success_feedback_sample_rate: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracing_config: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if application_failure_feedback_role_arn is None and 'applicationFailureFeedbackRoleArn' in kwargs: + application_failure_feedback_role_arn = kwargs['applicationFailureFeedbackRoleArn'] + if application_success_feedback_role_arn is None and 'applicationSuccessFeedbackRoleArn' in kwargs: + application_success_feedback_role_arn = kwargs['applicationSuccessFeedbackRoleArn'] + if application_success_feedback_sample_rate is None and 'applicationSuccessFeedbackSampleRate' in kwargs: + application_success_feedback_sample_rate = kwargs['applicationSuccessFeedbackSampleRate'] + if content_based_deduplication is None and 'contentBasedDeduplication' in kwargs: + content_based_deduplication = kwargs['contentBasedDeduplication'] + if delivery_policy is None and 'deliveryPolicy' in kwargs: + delivery_policy = kwargs['deliveryPolicy'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if fifo_topic is None and 'fifoTopic' in kwargs: + fifo_topic = kwargs['fifoTopic'] + if firehose_failure_feedback_role_arn is None and 'firehoseFailureFeedbackRoleArn' in kwargs: + firehose_failure_feedback_role_arn = kwargs['firehoseFailureFeedbackRoleArn'] + if firehose_success_feedback_role_arn is None and 'firehoseSuccessFeedbackRoleArn' in kwargs: + firehose_success_feedback_role_arn = kwargs['firehoseSuccessFeedbackRoleArn'] + if firehose_success_feedback_sample_rate is None and 'firehoseSuccessFeedbackSampleRate' in kwargs: + firehose_success_feedback_sample_rate = kwargs['firehoseSuccessFeedbackSampleRate'] + if http_failure_feedback_role_arn is None and 'httpFailureFeedbackRoleArn' in kwargs: + http_failure_feedback_role_arn = kwargs['httpFailureFeedbackRoleArn'] + if http_success_feedback_role_arn is None and 'httpSuccessFeedbackRoleArn' in kwargs: + http_success_feedback_role_arn = kwargs['httpSuccessFeedbackRoleArn'] + if http_success_feedback_sample_rate is None and 'httpSuccessFeedbackSampleRate' in kwargs: + http_success_feedback_sample_rate = kwargs['httpSuccessFeedbackSampleRate'] + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + if lambda_failure_feedback_role_arn is None and 'lambdaFailureFeedbackRoleArn' in kwargs: + lambda_failure_feedback_role_arn = kwargs['lambdaFailureFeedbackRoleArn'] + if lambda_success_feedback_role_arn is None and 'lambdaSuccessFeedbackRoleArn' in kwargs: + lambda_success_feedback_role_arn = kwargs['lambdaSuccessFeedbackRoleArn'] + if lambda_success_feedback_sample_rate is None and 'lambdaSuccessFeedbackSampleRate' in kwargs: + lambda_success_feedback_sample_rate = kwargs['lambdaSuccessFeedbackSampleRate'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if signature_version is None and 'signatureVersion' in kwargs: + signature_version = kwargs['signatureVersion'] + if sqs_failure_feedback_role_arn is None and 'sqsFailureFeedbackRoleArn' in kwargs: + sqs_failure_feedback_role_arn = kwargs['sqsFailureFeedbackRoleArn'] + if sqs_success_feedback_role_arn is None and 'sqsSuccessFeedbackRoleArn' in kwargs: + sqs_success_feedback_role_arn = kwargs['sqsSuccessFeedbackRoleArn'] + if sqs_success_feedback_sample_rate is None and 'sqsSuccessFeedbackSampleRate' in kwargs: + sqs_success_feedback_sample_rate = kwargs['sqsSuccessFeedbackSampleRate'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tracing_config is None and 'tracingConfig' in kwargs: + tracing_config = kwargs['tracingConfig'] + if application_failure_feedback_role_arn is not None: - pulumi.set(__self__, "application_failure_feedback_role_arn", application_failure_feedback_role_arn) + _setter("application_failure_feedback_role_arn", application_failure_feedback_role_arn) if application_success_feedback_role_arn is not None: - pulumi.set(__self__, "application_success_feedback_role_arn", application_success_feedback_role_arn) + _setter("application_success_feedback_role_arn", application_success_feedback_role_arn) if application_success_feedback_sample_rate is not None: - pulumi.set(__self__, "application_success_feedback_sample_rate", application_success_feedback_sample_rate) + _setter("application_success_feedback_sample_rate", application_success_feedback_sample_rate) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if content_based_deduplication is not None: - pulumi.set(__self__, "content_based_deduplication", content_based_deduplication) + _setter("content_based_deduplication", content_based_deduplication) if delivery_policy is not None: - pulumi.set(__self__, "delivery_policy", delivery_policy) + _setter("delivery_policy", delivery_policy) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if fifo_topic is not None: - pulumi.set(__self__, "fifo_topic", fifo_topic) + _setter("fifo_topic", fifo_topic) if firehose_failure_feedback_role_arn is not None: - pulumi.set(__self__, "firehose_failure_feedback_role_arn", firehose_failure_feedback_role_arn) + _setter("firehose_failure_feedback_role_arn", firehose_failure_feedback_role_arn) if firehose_success_feedback_role_arn is not None: - pulumi.set(__self__, "firehose_success_feedback_role_arn", firehose_success_feedback_role_arn) + _setter("firehose_success_feedback_role_arn", firehose_success_feedback_role_arn) if firehose_success_feedback_sample_rate is not None: - pulumi.set(__self__, "firehose_success_feedback_sample_rate", firehose_success_feedback_sample_rate) + _setter("firehose_success_feedback_sample_rate", firehose_success_feedback_sample_rate) if http_failure_feedback_role_arn is not None: - pulumi.set(__self__, "http_failure_feedback_role_arn", http_failure_feedback_role_arn) + _setter("http_failure_feedback_role_arn", http_failure_feedback_role_arn) if http_success_feedback_role_arn is not None: - pulumi.set(__self__, "http_success_feedback_role_arn", http_success_feedback_role_arn) + _setter("http_success_feedback_role_arn", http_success_feedback_role_arn) if http_success_feedback_sample_rate is not None: - pulumi.set(__self__, "http_success_feedback_sample_rate", http_success_feedback_sample_rate) + _setter("http_success_feedback_sample_rate", http_success_feedback_sample_rate) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) if lambda_failure_feedback_role_arn is not None: - pulumi.set(__self__, "lambda_failure_feedback_role_arn", lambda_failure_feedback_role_arn) + _setter("lambda_failure_feedback_role_arn", lambda_failure_feedback_role_arn) if lambda_success_feedback_role_arn is not None: - pulumi.set(__self__, "lambda_success_feedback_role_arn", lambda_success_feedback_role_arn) + _setter("lambda_success_feedback_role_arn", lambda_success_feedback_role_arn) if lambda_success_feedback_sample_rate is not None: - pulumi.set(__self__, "lambda_success_feedback_sample_rate", lambda_success_feedback_sample_rate) + _setter("lambda_success_feedback_sample_rate", lambda_success_feedback_sample_rate) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if signature_version is not None: - pulumi.set(__self__, "signature_version", signature_version) + _setter("signature_version", signature_version) if sqs_failure_feedback_role_arn is not None: - pulumi.set(__self__, "sqs_failure_feedback_role_arn", sqs_failure_feedback_role_arn) + _setter("sqs_failure_feedback_role_arn", sqs_failure_feedback_role_arn) if sqs_success_feedback_role_arn is not None: - pulumi.set(__self__, "sqs_success_feedback_role_arn", sqs_success_feedback_role_arn) + _setter("sqs_success_feedback_role_arn", sqs_success_feedback_role_arn) if sqs_success_feedback_sample_rate is not None: - pulumi.set(__self__, "sqs_success_feedback_sample_rate", sqs_success_feedback_sample_rate) + _setter("sqs_success_feedback_sample_rate", sqs_success_feedback_sample_rate) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tracing_config is not None: - pulumi.set(__self__, "tracing_config", tracing_config) + _setter("tracing_config", tracing_config) @property @pulumi.getter(name="applicationFailureFeedbackRoleArn") @@ -1130,6 +1352,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TopicArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sns/topic_policy.py b/sdk/python/pulumi_aws/sns/topic_policy.py index 7f15a4eecfb..3d80aeaa78f 100644 --- a/sdk/python/pulumi_aws/sns/topic_policy.py +++ b/sdk/python/pulumi_aws/sns/topic_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TopicPolicyArgs', 'TopicPolicy'] @@ -21,8 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The ARN of the SNS topic :param pulumi.Input[str] policy: The fully-formed AWS policy as JSON. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "policy", policy) + TopicPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if policy is None: + raise TypeError("Missing 'policy' argument") + + _setter("arn", arn) + _setter("policy", policy) @property @pulumi.getter @@ -61,12 +78,27 @@ def __init__(__self__, *, :param pulumi.Input[str] owner: The AWS Account ID of the SNS topic owner :param pulumi.Input[str] policy: The fully-formed AWS policy as JSON. """ + _TopicPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + owner=owner, + policy=policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) @property @pulumi.getter @@ -236,6 +268,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TopicPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sns/topic_subscription.py b/sdk/python/pulumi_aws/sns/topic_subscription.py index f0169128601..09aed0916ff 100644 --- a/sdk/python/pulumi_aws/sns/topic_subscription.py +++ b/sdk/python/pulumi_aws/sns/topic_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TopicSubscriptionArgs', 'TopicSubscription'] @@ -41,25 +41,78 @@ def __init__(__self__, *, :param pulumi.Input[str] redrive_policy: JSON String with the redrive policy that will be used in the subscription. Refer to the [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-dead-letter-queues.html#how-messages-moved-into-dead-letter-queue) for more details. :param pulumi.Input[str] subscription_role_arn: ARN of the IAM role to publish to Kinesis Data Firehose delivery stream. Refer to [SNS docs](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html). """ - pulumi.set(__self__, "endpoint", endpoint) - pulumi.set(__self__, "protocol", protocol) - pulumi.set(__self__, "topic", topic) + TopicSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + endpoint=endpoint, + protocol=protocol, + topic=topic, + confirmation_timeout_in_minutes=confirmation_timeout_in_minutes, + delivery_policy=delivery_policy, + endpoint_auto_confirms=endpoint_auto_confirms, + filter_policy=filter_policy, + filter_policy_scope=filter_policy_scope, + raw_message_delivery=raw_message_delivery, + redrive_policy=redrive_policy, + subscription_role_arn=subscription_role_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + endpoint: Optional[pulumi.Input[str]] = None, + protocol: Optional[pulumi.Input[str]] = None, + topic: Optional[pulumi.Input[str]] = None, + confirmation_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + delivery_policy: Optional[pulumi.Input[str]] = None, + endpoint_auto_confirms: Optional[pulumi.Input[bool]] = None, + filter_policy: Optional[pulumi.Input[str]] = None, + filter_policy_scope: Optional[pulumi.Input[str]] = None, + raw_message_delivery: Optional[pulumi.Input[bool]] = None, + redrive_policy: Optional[pulumi.Input[str]] = None, + subscription_role_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if endpoint is None: + raise TypeError("Missing 'endpoint' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if topic is None: + raise TypeError("Missing 'topic' argument") + if confirmation_timeout_in_minutes is None and 'confirmationTimeoutInMinutes' in kwargs: + confirmation_timeout_in_minutes = kwargs['confirmationTimeoutInMinutes'] + if delivery_policy is None and 'deliveryPolicy' in kwargs: + delivery_policy = kwargs['deliveryPolicy'] + if endpoint_auto_confirms is None and 'endpointAutoConfirms' in kwargs: + endpoint_auto_confirms = kwargs['endpointAutoConfirms'] + if filter_policy is None and 'filterPolicy' in kwargs: + filter_policy = kwargs['filterPolicy'] + if filter_policy_scope is None and 'filterPolicyScope' in kwargs: + filter_policy_scope = kwargs['filterPolicyScope'] + if raw_message_delivery is None and 'rawMessageDelivery' in kwargs: + raw_message_delivery = kwargs['rawMessageDelivery'] + if redrive_policy is None and 'redrivePolicy' in kwargs: + redrive_policy = kwargs['redrivePolicy'] + if subscription_role_arn is None and 'subscriptionRoleArn' in kwargs: + subscription_role_arn = kwargs['subscriptionRoleArn'] + + _setter("endpoint", endpoint) + _setter("protocol", protocol) + _setter("topic", topic) if confirmation_timeout_in_minutes is not None: - pulumi.set(__self__, "confirmation_timeout_in_minutes", confirmation_timeout_in_minutes) + _setter("confirmation_timeout_in_minutes", confirmation_timeout_in_minutes) if delivery_policy is not None: - pulumi.set(__self__, "delivery_policy", delivery_policy) + _setter("delivery_policy", delivery_policy) if endpoint_auto_confirms is not None: - pulumi.set(__self__, "endpoint_auto_confirms", endpoint_auto_confirms) + _setter("endpoint_auto_confirms", endpoint_auto_confirms) if filter_policy is not None: - pulumi.set(__self__, "filter_policy", filter_policy) + _setter("filter_policy", filter_policy) if filter_policy_scope is not None: - pulumi.set(__self__, "filter_policy_scope", filter_policy_scope) + _setter("filter_policy_scope", filter_policy_scope) if raw_message_delivery is not None: - pulumi.set(__self__, "raw_message_delivery", raw_message_delivery) + _setter("raw_message_delivery", raw_message_delivery) if redrive_policy is not None: - pulumi.set(__self__, "redrive_policy", redrive_policy) + _setter("redrive_policy", redrive_policy) if subscription_role_arn is not None: - pulumi.set(__self__, "subscription_role_arn", subscription_role_arn) + _setter("subscription_role_arn", subscription_role_arn) @property @pulumi.getter @@ -234,36 +287,97 @@ def __init__(__self__, *, The following arguments are optional: """ + _TopicSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + confirmation_timeout_in_minutes=confirmation_timeout_in_minutes, + confirmation_was_authenticated=confirmation_was_authenticated, + delivery_policy=delivery_policy, + endpoint=endpoint, + endpoint_auto_confirms=endpoint_auto_confirms, + filter_policy=filter_policy, + filter_policy_scope=filter_policy_scope, + owner_id=owner_id, + pending_confirmation=pending_confirmation, + protocol=protocol, + raw_message_delivery=raw_message_delivery, + redrive_policy=redrive_policy, + subscription_role_arn=subscription_role_arn, + topic=topic, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + confirmation_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + confirmation_was_authenticated: Optional[pulumi.Input[bool]] = None, + delivery_policy: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + endpoint_auto_confirms: Optional[pulumi.Input[bool]] = None, + filter_policy: Optional[pulumi.Input[str]] = None, + filter_policy_scope: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + pending_confirmation: Optional[pulumi.Input[bool]] = None, + protocol: Optional[pulumi.Input[str]] = None, + raw_message_delivery: Optional[pulumi.Input[bool]] = None, + redrive_policy: Optional[pulumi.Input[str]] = None, + subscription_role_arn: Optional[pulumi.Input[str]] = None, + topic: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if confirmation_timeout_in_minutes is None and 'confirmationTimeoutInMinutes' in kwargs: + confirmation_timeout_in_minutes = kwargs['confirmationTimeoutInMinutes'] + if confirmation_was_authenticated is None and 'confirmationWasAuthenticated' in kwargs: + confirmation_was_authenticated = kwargs['confirmationWasAuthenticated'] + if delivery_policy is None and 'deliveryPolicy' in kwargs: + delivery_policy = kwargs['deliveryPolicy'] + if endpoint_auto_confirms is None and 'endpointAutoConfirms' in kwargs: + endpoint_auto_confirms = kwargs['endpointAutoConfirms'] + if filter_policy is None and 'filterPolicy' in kwargs: + filter_policy = kwargs['filterPolicy'] + if filter_policy_scope is None and 'filterPolicyScope' in kwargs: + filter_policy_scope = kwargs['filterPolicyScope'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if pending_confirmation is None and 'pendingConfirmation' in kwargs: + pending_confirmation = kwargs['pendingConfirmation'] + if raw_message_delivery is None and 'rawMessageDelivery' in kwargs: + raw_message_delivery = kwargs['rawMessageDelivery'] + if redrive_policy is None and 'redrivePolicy' in kwargs: + redrive_policy = kwargs['redrivePolicy'] + if subscription_role_arn is None and 'subscriptionRoleArn' in kwargs: + subscription_role_arn = kwargs['subscriptionRoleArn'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if confirmation_timeout_in_minutes is not None: - pulumi.set(__self__, "confirmation_timeout_in_minutes", confirmation_timeout_in_minutes) + _setter("confirmation_timeout_in_minutes", confirmation_timeout_in_minutes) if confirmation_was_authenticated is not None: - pulumi.set(__self__, "confirmation_was_authenticated", confirmation_was_authenticated) + _setter("confirmation_was_authenticated", confirmation_was_authenticated) if delivery_policy is not None: - pulumi.set(__self__, "delivery_policy", delivery_policy) + _setter("delivery_policy", delivery_policy) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if endpoint_auto_confirms is not None: - pulumi.set(__self__, "endpoint_auto_confirms", endpoint_auto_confirms) + _setter("endpoint_auto_confirms", endpoint_auto_confirms) if filter_policy is not None: - pulumi.set(__self__, "filter_policy", filter_policy) + _setter("filter_policy", filter_policy) if filter_policy_scope is not None: - pulumi.set(__self__, "filter_policy_scope", filter_policy_scope) + _setter("filter_policy_scope", filter_policy_scope) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) if pending_confirmation is not None: - pulumi.set(__self__, "pending_confirmation", pending_confirmation) + _setter("pending_confirmation", pending_confirmation) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if raw_message_delivery is not None: - pulumi.set(__self__, "raw_message_delivery", raw_message_delivery) + _setter("raw_message_delivery", raw_message_delivery) if redrive_policy is not None: - pulumi.set(__self__, "redrive_policy", redrive_policy) + _setter("redrive_policy", redrive_policy) if subscription_role_arn is not None: - pulumi.set(__self__, "subscription_role_arn", subscription_role_arn) + _setter("subscription_role_arn", subscription_role_arn) if topic is not None: - pulumi.set(__self__, "topic", topic) + _setter("topic", topic) @property @pulumi.getter @@ -833,6 +947,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TopicSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sqs/get_queue.py b/sdk/python/pulumi_aws/sqs/get_queue.py index 3f0ee703523..8970d8e8e5b 100644 --- a/sdk/python/pulumi_aws/sqs/get_queue.py +++ b/sdk/python/pulumi_aws/sqs/get_queue.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/sqs/get_queues.py b/sdk/python/pulumi_aws/sqs/get_queues.py index 542e55911b9..e22437b1671 100644 --- a/sdk/python/pulumi_aws/sqs/get_queues.py +++ b/sdk/python/pulumi_aws/sqs/get_queues.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/sqs/queue.py b/sdk/python/pulumi_aws/sqs/queue.py index 1958e00840d..4bc39024570 100644 --- a/sdk/python/pulumi_aws/sqs/queue.py +++ b/sdk/python/pulumi_aws/sqs/queue.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['QueueArgs', 'Queue'] @@ -53,42 +53,117 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the queue. If configured with a provider `default_tags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[int] visibility_timeout_seconds: The visibility timeout for the queue. An integer from 0 to 43200 (12 hours). The default for this attribute is 30. For more information about visibility timeout, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html). """ + QueueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content_based_deduplication=content_based_deduplication, + deduplication_scope=deduplication_scope, + delay_seconds=delay_seconds, + fifo_queue=fifo_queue, + fifo_throughput_limit=fifo_throughput_limit, + kms_data_key_reuse_period_seconds=kms_data_key_reuse_period_seconds, + kms_master_key_id=kms_master_key_id, + max_message_size=max_message_size, + message_retention_seconds=message_retention_seconds, + name=name, + name_prefix=name_prefix, + policy=policy, + receive_wait_time_seconds=receive_wait_time_seconds, + redrive_allow_policy=redrive_allow_policy, + redrive_policy=redrive_policy, + sqs_managed_sse_enabled=sqs_managed_sse_enabled, + tags=tags, + visibility_timeout_seconds=visibility_timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content_based_deduplication: Optional[pulumi.Input[bool]] = None, + deduplication_scope: Optional[pulumi.Input[str]] = None, + delay_seconds: Optional[pulumi.Input[int]] = None, + fifo_queue: Optional[pulumi.Input[bool]] = None, + fifo_throughput_limit: Optional[pulumi.Input[str]] = None, + kms_data_key_reuse_period_seconds: Optional[pulumi.Input[int]] = None, + kms_master_key_id: Optional[pulumi.Input[str]] = None, + max_message_size: Optional[pulumi.Input[int]] = None, + message_retention_seconds: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + receive_wait_time_seconds: Optional[pulumi.Input[int]] = None, + redrive_allow_policy: Optional[pulumi.Input[str]] = None, + redrive_policy: Optional[pulumi.Input[str]] = None, + sqs_managed_sse_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + visibility_timeout_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_based_deduplication is None and 'contentBasedDeduplication' in kwargs: + content_based_deduplication = kwargs['contentBasedDeduplication'] + if deduplication_scope is None and 'deduplicationScope' in kwargs: + deduplication_scope = kwargs['deduplicationScope'] + if delay_seconds is None and 'delaySeconds' in kwargs: + delay_seconds = kwargs['delaySeconds'] + if fifo_queue is None and 'fifoQueue' in kwargs: + fifo_queue = kwargs['fifoQueue'] + if fifo_throughput_limit is None and 'fifoThroughputLimit' in kwargs: + fifo_throughput_limit = kwargs['fifoThroughputLimit'] + if kms_data_key_reuse_period_seconds is None and 'kmsDataKeyReusePeriodSeconds' in kwargs: + kms_data_key_reuse_period_seconds = kwargs['kmsDataKeyReusePeriodSeconds'] + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + if max_message_size is None and 'maxMessageSize' in kwargs: + max_message_size = kwargs['maxMessageSize'] + if message_retention_seconds is None and 'messageRetentionSeconds' in kwargs: + message_retention_seconds = kwargs['messageRetentionSeconds'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if receive_wait_time_seconds is None and 'receiveWaitTimeSeconds' in kwargs: + receive_wait_time_seconds = kwargs['receiveWaitTimeSeconds'] + if redrive_allow_policy is None and 'redriveAllowPolicy' in kwargs: + redrive_allow_policy = kwargs['redriveAllowPolicy'] + if redrive_policy is None and 'redrivePolicy' in kwargs: + redrive_policy = kwargs['redrivePolicy'] + if sqs_managed_sse_enabled is None and 'sqsManagedSseEnabled' in kwargs: + sqs_managed_sse_enabled = kwargs['sqsManagedSseEnabled'] + if visibility_timeout_seconds is None and 'visibilityTimeoutSeconds' in kwargs: + visibility_timeout_seconds = kwargs['visibilityTimeoutSeconds'] + if content_based_deduplication is not None: - pulumi.set(__self__, "content_based_deduplication", content_based_deduplication) + _setter("content_based_deduplication", content_based_deduplication) if deduplication_scope is not None: - pulumi.set(__self__, "deduplication_scope", deduplication_scope) + _setter("deduplication_scope", deduplication_scope) if delay_seconds is not None: - pulumi.set(__self__, "delay_seconds", delay_seconds) + _setter("delay_seconds", delay_seconds) if fifo_queue is not None: - pulumi.set(__self__, "fifo_queue", fifo_queue) + _setter("fifo_queue", fifo_queue) if fifo_throughput_limit is not None: - pulumi.set(__self__, "fifo_throughput_limit", fifo_throughput_limit) + _setter("fifo_throughput_limit", fifo_throughput_limit) if kms_data_key_reuse_period_seconds is not None: - pulumi.set(__self__, "kms_data_key_reuse_period_seconds", kms_data_key_reuse_period_seconds) + _setter("kms_data_key_reuse_period_seconds", kms_data_key_reuse_period_seconds) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) if max_message_size is not None: - pulumi.set(__self__, "max_message_size", max_message_size) + _setter("max_message_size", max_message_size) if message_retention_seconds is not None: - pulumi.set(__self__, "message_retention_seconds", message_retention_seconds) + _setter("message_retention_seconds", message_retention_seconds) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if receive_wait_time_seconds is not None: - pulumi.set(__self__, "receive_wait_time_seconds", receive_wait_time_seconds) + _setter("receive_wait_time_seconds", receive_wait_time_seconds) if redrive_allow_policy is not None: - pulumi.set(__self__, "redrive_allow_policy", redrive_allow_policy) + _setter("redrive_allow_policy", redrive_allow_policy) if redrive_policy is not None: - pulumi.set(__self__, "redrive_policy", redrive_policy) + _setter("redrive_policy", redrive_policy) if sqs_managed_sse_enabled is not None: - pulumi.set(__self__, "sqs_managed_sse_enabled", sqs_managed_sse_enabled) + _setter("sqs_managed_sse_enabled", sqs_managed_sse_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if visibility_timeout_seconds is not None: - pulumi.set(__self__, "visibility_timeout_seconds", visibility_timeout_seconds) + _setter("visibility_timeout_seconds", visibility_timeout_seconds) @property @pulumi.getter(name="contentBasedDeduplication") @@ -355,51 +430,134 @@ def __init__(__self__, *, :param pulumi.Input[str] url: Same as `id`: The URL for the created Amazon SQS queue. :param pulumi.Input[int] visibility_timeout_seconds: The visibility timeout for the queue. An integer from 0 to 43200 (12 hours). The default for this attribute is 30. For more information about visibility timeout, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html). """ + _QueueState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + content_based_deduplication=content_based_deduplication, + deduplication_scope=deduplication_scope, + delay_seconds=delay_seconds, + fifo_queue=fifo_queue, + fifo_throughput_limit=fifo_throughput_limit, + kms_data_key_reuse_period_seconds=kms_data_key_reuse_period_seconds, + kms_master_key_id=kms_master_key_id, + max_message_size=max_message_size, + message_retention_seconds=message_retention_seconds, + name=name, + name_prefix=name_prefix, + policy=policy, + receive_wait_time_seconds=receive_wait_time_seconds, + redrive_allow_policy=redrive_allow_policy, + redrive_policy=redrive_policy, + sqs_managed_sse_enabled=sqs_managed_sse_enabled, + tags=tags, + tags_all=tags_all, + url=url, + visibility_timeout_seconds=visibility_timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + content_based_deduplication: Optional[pulumi.Input[bool]] = None, + deduplication_scope: Optional[pulumi.Input[str]] = None, + delay_seconds: Optional[pulumi.Input[int]] = None, + fifo_queue: Optional[pulumi.Input[bool]] = None, + fifo_throughput_limit: Optional[pulumi.Input[str]] = None, + kms_data_key_reuse_period_seconds: Optional[pulumi.Input[int]] = None, + kms_master_key_id: Optional[pulumi.Input[str]] = None, + max_message_size: Optional[pulumi.Input[int]] = None, + message_retention_seconds: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + receive_wait_time_seconds: Optional[pulumi.Input[int]] = None, + redrive_allow_policy: Optional[pulumi.Input[str]] = None, + redrive_policy: Optional[pulumi.Input[str]] = None, + sqs_managed_sse_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + visibility_timeout_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content_based_deduplication is None and 'contentBasedDeduplication' in kwargs: + content_based_deduplication = kwargs['contentBasedDeduplication'] + if deduplication_scope is None and 'deduplicationScope' in kwargs: + deduplication_scope = kwargs['deduplicationScope'] + if delay_seconds is None and 'delaySeconds' in kwargs: + delay_seconds = kwargs['delaySeconds'] + if fifo_queue is None and 'fifoQueue' in kwargs: + fifo_queue = kwargs['fifoQueue'] + if fifo_throughput_limit is None and 'fifoThroughputLimit' in kwargs: + fifo_throughput_limit = kwargs['fifoThroughputLimit'] + if kms_data_key_reuse_period_seconds is None and 'kmsDataKeyReusePeriodSeconds' in kwargs: + kms_data_key_reuse_period_seconds = kwargs['kmsDataKeyReusePeriodSeconds'] + if kms_master_key_id is None and 'kmsMasterKeyId' in kwargs: + kms_master_key_id = kwargs['kmsMasterKeyId'] + if max_message_size is None and 'maxMessageSize' in kwargs: + max_message_size = kwargs['maxMessageSize'] + if message_retention_seconds is None and 'messageRetentionSeconds' in kwargs: + message_retention_seconds = kwargs['messageRetentionSeconds'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if receive_wait_time_seconds is None and 'receiveWaitTimeSeconds' in kwargs: + receive_wait_time_seconds = kwargs['receiveWaitTimeSeconds'] + if redrive_allow_policy is None and 'redriveAllowPolicy' in kwargs: + redrive_allow_policy = kwargs['redriveAllowPolicy'] + if redrive_policy is None and 'redrivePolicy' in kwargs: + redrive_policy = kwargs['redrivePolicy'] + if sqs_managed_sse_enabled is None and 'sqsManagedSseEnabled' in kwargs: + sqs_managed_sse_enabled = kwargs['sqsManagedSseEnabled'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if visibility_timeout_seconds is None and 'visibilityTimeoutSeconds' in kwargs: + visibility_timeout_seconds = kwargs['visibilityTimeoutSeconds'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if content_based_deduplication is not None: - pulumi.set(__self__, "content_based_deduplication", content_based_deduplication) + _setter("content_based_deduplication", content_based_deduplication) if deduplication_scope is not None: - pulumi.set(__self__, "deduplication_scope", deduplication_scope) + _setter("deduplication_scope", deduplication_scope) if delay_seconds is not None: - pulumi.set(__self__, "delay_seconds", delay_seconds) + _setter("delay_seconds", delay_seconds) if fifo_queue is not None: - pulumi.set(__self__, "fifo_queue", fifo_queue) + _setter("fifo_queue", fifo_queue) if fifo_throughput_limit is not None: - pulumi.set(__self__, "fifo_throughput_limit", fifo_throughput_limit) + _setter("fifo_throughput_limit", fifo_throughput_limit) if kms_data_key_reuse_period_seconds is not None: - pulumi.set(__self__, "kms_data_key_reuse_period_seconds", kms_data_key_reuse_period_seconds) + _setter("kms_data_key_reuse_period_seconds", kms_data_key_reuse_period_seconds) if kms_master_key_id is not None: - pulumi.set(__self__, "kms_master_key_id", kms_master_key_id) + _setter("kms_master_key_id", kms_master_key_id) if max_message_size is not None: - pulumi.set(__self__, "max_message_size", max_message_size) + _setter("max_message_size", max_message_size) if message_retention_seconds is not None: - pulumi.set(__self__, "message_retention_seconds", message_retention_seconds) + _setter("message_retention_seconds", message_retention_seconds) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if receive_wait_time_seconds is not None: - pulumi.set(__self__, "receive_wait_time_seconds", receive_wait_time_seconds) + _setter("receive_wait_time_seconds", receive_wait_time_seconds) if redrive_allow_policy is not None: - pulumi.set(__self__, "redrive_allow_policy", redrive_allow_policy) + _setter("redrive_allow_policy", redrive_allow_policy) if redrive_policy is not None: - pulumi.set(__self__, "redrive_policy", redrive_policy) + _setter("redrive_policy", redrive_policy) if sqs_managed_sse_enabled is not None: - pulumi.set(__self__, "sqs_managed_sse_enabled", sqs_managed_sse_enabled) + _setter("sqs_managed_sse_enabled", sqs_managed_sse_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if visibility_timeout_seconds is not None: - pulumi.set(__self__, "visibility_timeout_seconds", visibility_timeout_seconds) + _setter("visibility_timeout_seconds", visibility_timeout_seconds) @property @pulumi.getter @@ -892,6 +1050,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + QueueArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sqs/queue_policy.py b/sdk/python/pulumi_aws/sqs/queue_policy.py index baa3982856f..ac597acdc17 100644 --- a/sdk/python/pulumi_aws/sqs/queue_policy.py +++ b/sdk/python/pulumi_aws/sqs/queue_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['QueuePolicyArgs', 'QueuePolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The JSON policy for the SQS queue. :param pulumi.Input[str] queue_url: The URL of the SQS Queue to which to attach the policy """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "queue_url", queue_url) + QueuePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + queue_url=queue_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + queue_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if queue_url is None: + raise TypeError("Missing 'queue_url' argument") + + _setter("policy", policy) + _setter("queue_url", queue_url) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: The JSON policy for the SQS queue. :param pulumi.Input[str] queue_url: The URL of the SQS Queue to which to attach the policy """ + _QueuePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + queue_url=queue_url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + queue_url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if queue_url is not None: - pulumi.set(__self__, "queue_url", queue_url) + _setter("queue_url", queue_url) @property @pulumi.getter @@ -196,6 +230,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + QueuePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sqs/redrive_allow_policy.py b/sdk/python/pulumi_aws/sqs/redrive_allow_policy.py index 64f421387db..a80b13be468 100644 --- a/sdk/python/pulumi_aws/sqs/redrive_allow_policy.py +++ b/sdk/python/pulumi_aws/sqs/redrive_allow_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RedriveAllowPolicyArgs', 'RedriveAllowPolicy'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] queue_url: The URL of the SQS Queue to which to attach the policy :param pulumi.Input[str] redrive_allow_policy: The JSON redrive allow policy for the SQS queue. Learn more in the [Amazon SQS dead-letter queues documentation](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html). """ - pulumi.set(__self__, "queue_url", queue_url) - pulumi.set(__self__, "redrive_allow_policy", redrive_allow_policy) + RedriveAllowPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + queue_url=queue_url, + redrive_allow_policy=redrive_allow_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + queue_url: Optional[pulumi.Input[str]] = None, + redrive_allow_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if queue_url is None: + raise TypeError("Missing 'queue_url' argument") + if redrive_allow_policy is None and 'redriveAllowPolicy' in kwargs: + redrive_allow_policy = kwargs['redriveAllowPolicy'] + if redrive_allow_policy is None: + raise TypeError("Missing 'redrive_allow_policy' argument") + + _setter("queue_url", queue_url) + _setter("redrive_allow_policy", redrive_allow_policy) @property @pulumi.getter(name="queueUrl") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] queue_url: The URL of the SQS Queue to which to attach the policy :param pulumi.Input[str] redrive_allow_policy: The JSON redrive allow policy for the SQS queue. Learn more in the [Amazon SQS dead-letter queues documentation](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html). """ + _RedriveAllowPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + queue_url=queue_url, + redrive_allow_policy=redrive_allow_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + queue_url: Optional[pulumi.Input[str]] = None, + redrive_allow_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if redrive_allow_policy is None and 'redriveAllowPolicy' in kwargs: + redrive_allow_policy = kwargs['redriveAllowPolicy'] + if queue_url is not None: - pulumi.set(__self__, "queue_url", queue_url) + _setter("queue_url", queue_url) if redrive_allow_policy is not None: - pulumi.set(__self__, "redrive_allow_policy", redrive_allow_policy) + _setter("redrive_allow_policy", redrive_allow_policy) @property @pulumi.getter(name="queueUrl") @@ -180,6 +218,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RedriveAllowPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/sqs/redrive_policy.py b/sdk/python/pulumi_aws/sqs/redrive_policy.py index 8e9c836e053..b069c948fb9 100644 --- a/sdk/python/pulumi_aws/sqs/redrive_policy.py +++ b/sdk/python/pulumi_aws/sqs/redrive_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RedrivePolicyArgs', 'RedrivePolicy'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] queue_url: The URL of the SQS Queue to which to attach the policy :param pulumi.Input[str] redrive_policy: The JSON redrive policy for the SQS queue. Accepts two key/val pairs: `deadLetterTargetArn` and `maxReceiveCount`. Learn more in the [Amazon SQS dead-letter queues documentation](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html). """ - pulumi.set(__self__, "queue_url", queue_url) - pulumi.set(__self__, "redrive_policy", redrive_policy) + RedrivePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + queue_url=queue_url, + redrive_policy=redrive_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + queue_url: Optional[pulumi.Input[str]] = None, + redrive_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if queue_url is None: + raise TypeError("Missing 'queue_url' argument") + if redrive_policy is None and 'redrivePolicy' in kwargs: + redrive_policy = kwargs['redrivePolicy'] + if redrive_policy is None: + raise TypeError("Missing 'redrive_policy' argument") + + _setter("queue_url", queue_url) + _setter("redrive_policy", redrive_policy) @property @pulumi.getter(name="queueUrl") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] queue_url: The URL of the SQS Queue to which to attach the policy :param pulumi.Input[str] redrive_policy: The JSON redrive policy for the SQS queue. Accepts two key/val pairs: `deadLetterTargetArn` and `maxReceiveCount`. Learn more in the [Amazon SQS dead-letter queues documentation](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html). """ + _RedrivePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + queue_url=queue_url, + redrive_policy=redrive_policy, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + queue_url: Optional[pulumi.Input[str]] = None, + redrive_policy: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if queue_url is None and 'queueUrl' in kwargs: + queue_url = kwargs['queueUrl'] + if redrive_policy is None and 'redrivePolicy' in kwargs: + redrive_policy = kwargs['redrivePolicy'] + if queue_url is not None: - pulumi.set(__self__, "queue_url", queue_url) + _setter("queue_url", queue_url) if redrive_policy is not None: - pulumi.set(__self__, "redrive_policy", redrive_policy) + _setter("redrive_policy", redrive_policy) @property @pulumi.getter(name="queueUrl") @@ -190,6 +228,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RedrivePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssm/_inputs.py b/sdk/python/pulumi_aws/ssm/_inputs.py index 0c188ee0004..0ea85ab1b68 100644 --- a/sdk/python/pulumi_aws/ssm/_inputs.py +++ b/sdk/python/pulumi_aws/ssm/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -48,11 +48,34 @@ def __init__(__self__, *, Targets specify what instance IDs or tags to apply the document to and has these keys: """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + AssociationOutputLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + s3_region=s3_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[pulumi.Input[str]] = None, + s3_key_prefix: Optional[pulumi.Input[str]] = None, + s3_region: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if s3_region is None and 's3Region' in kwargs: + s3_region = kwargs['s3Region'] + + _setter("s3_bucket_name", s3_bucket_name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) if s3_region is not None: - pulumi.set(__self__, "s3_region", s3_region) + _setter("s3_region", s3_region) @property @pulumi.getter(name="s3BucketName") @@ -102,8 +125,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: Either `InstanceIds` or `tag:Tag Name` to specify an EC2 tag. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: A list of instance IDs or tag values. AWS currently limits this list size to one value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + AssociationTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -141,10 +181,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The value describing the location of an attachment to a document :param pulumi.Input[str] name: The name of the document attachment file """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + DocumentAttachmentsSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -194,14 +253,33 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The description of the document. :param pulumi.Input[str] name: The name of the document. """ + DocumentParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_value=default_value, + description=description, + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_value: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + if default_value is not None: - pulumi.set(__self__, "default_value", default_value) + _setter("default_value", default_value) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="defaultValue") @@ -251,8 +329,25 @@ class MaintenanceWindowTargetTargetArgs: def __init__(__self__, *, key: pulumi.Input[str], values: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + MaintenanceWindowTargetTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -281,8 +376,25 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The array of strings. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + MaintenanceWindowTaskTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -319,14 +431,39 @@ def __init__(__self__, *, :param pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersArgs'] run_command_parameters: The parameters for a RUN_COMMAND task type. Documented below. :param pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersStepFunctionsParametersArgs'] step_functions_parameters: The parameters for a STEP_FUNCTIONS task type. Documented below. """ + MaintenanceWindowTaskTaskInvocationParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + automation_parameters=automation_parameters, + lambda_parameters=lambda_parameters, + run_command_parameters=run_command_parameters, + step_functions_parameters=step_functions_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automation_parameters: Optional[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersAutomationParametersArgs']] = None, + lambda_parameters: Optional[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersLambdaParametersArgs']] = None, + run_command_parameters: Optional[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersArgs']] = None, + step_functions_parameters: Optional[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersStepFunctionsParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automation_parameters is None and 'automationParameters' in kwargs: + automation_parameters = kwargs['automationParameters'] + if lambda_parameters is None and 'lambdaParameters' in kwargs: + lambda_parameters = kwargs['lambdaParameters'] + if run_command_parameters is None and 'runCommandParameters' in kwargs: + run_command_parameters = kwargs['runCommandParameters'] + if step_functions_parameters is None and 'stepFunctionsParameters' in kwargs: + step_functions_parameters = kwargs['stepFunctionsParameters'] + if automation_parameters is not None: - pulumi.set(__self__, "automation_parameters", automation_parameters) + _setter("automation_parameters", automation_parameters) if lambda_parameters is not None: - pulumi.set(__self__, "lambda_parameters", lambda_parameters) + _setter("lambda_parameters", lambda_parameters) if run_command_parameters is not None: - pulumi.set(__self__, "run_command_parameters", run_command_parameters) + _setter("run_command_parameters", run_command_parameters) if step_functions_parameters is not None: - pulumi.set(__self__, "step_functions_parameters", step_functions_parameters) + _setter("step_functions_parameters", step_functions_parameters) @property @pulumi.getter(name="automationParameters") @@ -386,10 +523,25 @@ def __init__(__self__, *, :param pulumi.Input[str] document_version: The version of an Automation document to use during task execution. :param pulumi.Input[Sequence[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersAutomationParametersParameterArgs']]] parameters: The parameters for the RUN_COMMAND task execution. Documented below. """ + MaintenanceWindowTaskTaskInvocationParametersAutomationParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + document_version=document_version, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + document_version: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersAutomationParametersParameterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if document_version is not None: - pulumi.set(__self__, "document_version", document_version) + _setter("document_version", document_version) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter(name="documentVersion") @@ -425,8 +577,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The parameter name. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The array of strings. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + MaintenanceWindowTaskTaskInvocationParametersAutomationParametersParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -464,12 +633,29 @@ def __init__(__self__, *, :param pulumi.Input[str] payload: JSON to provide to your Lambda function as input. :param pulumi.Input[str] qualifier: Specify a Lambda function version or alias name. """ + MaintenanceWindowTaskTaskInvocationParametersLambdaParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_context=client_context, + payload=payload, + qualifier=qualifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_context: Optional[pulumi.Input[str]] = None, + payload: Optional[pulumi.Input[str]] = None, + qualifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_context is None and 'clientContext' in kwargs: + client_context = kwargs['clientContext'] + if client_context is not None: - pulumi.set(__self__, "client_context", client_context) + _setter("client_context", client_context) if payload is not None: - pulumi.set(__self__, "payload", payload) + _setter("payload", payload) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) @property @pulumi.getter(name="clientContext") @@ -535,28 +721,77 @@ def __init__(__self__, *, :param pulumi.Input[str] service_role_arn: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for maintenance window Run Command tasks. :param pulumi.Input[int] timeout_seconds: If this time is reached and the command has not already started executing, it doesn't run. """ + MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_config=cloudwatch_config, + comment=comment, + document_hash=document_hash, + document_hash_type=document_hash_type, + document_version=document_version, + notification_config=notification_config, + output_s3_bucket=output_s3_bucket, + output_s3_key_prefix=output_s3_key_prefix, + parameters=parameters, + service_role_arn=service_role_arn, + timeout_seconds=timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_config: Optional[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersCloudwatchConfigArgs']] = None, + comment: Optional[pulumi.Input[str]] = None, + document_hash: Optional[pulumi.Input[str]] = None, + document_hash_type: Optional[pulumi.Input[str]] = None, + document_version: Optional[pulumi.Input[str]] = None, + notification_config: Optional[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersNotificationConfigArgs']] = None, + output_s3_bucket: Optional[pulumi.Input[str]] = None, + output_s3_key_prefix: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersParameterArgs']]]] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + timeout_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_config is None and 'cloudwatchConfig' in kwargs: + cloudwatch_config = kwargs['cloudwatchConfig'] + if document_hash is None and 'documentHash' in kwargs: + document_hash = kwargs['documentHash'] + if document_hash_type is None and 'documentHashType' in kwargs: + document_hash_type = kwargs['documentHashType'] + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if notification_config is None and 'notificationConfig' in kwargs: + notification_config = kwargs['notificationConfig'] + if output_s3_bucket is None and 'outputS3Bucket' in kwargs: + output_s3_bucket = kwargs['outputS3Bucket'] + if output_s3_key_prefix is None and 'outputS3KeyPrefix' in kwargs: + output_s3_key_prefix = kwargs['outputS3KeyPrefix'] + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if timeout_seconds is None and 'timeoutSeconds' in kwargs: + timeout_seconds = kwargs['timeoutSeconds'] + if cloudwatch_config is not None: - pulumi.set(__self__, "cloudwatch_config", cloudwatch_config) + _setter("cloudwatch_config", cloudwatch_config) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if document_hash is not None: - pulumi.set(__self__, "document_hash", document_hash) + _setter("document_hash", document_hash) if document_hash_type is not None: - pulumi.set(__self__, "document_hash_type", document_hash_type) + _setter("document_hash_type", document_hash_type) if document_version is not None: - pulumi.set(__self__, "document_version", document_version) + _setter("document_version", document_version) if notification_config is not None: - pulumi.set(__self__, "notification_config", notification_config) + _setter("notification_config", notification_config) if output_s3_bucket is not None: - pulumi.set(__self__, "output_s3_bucket", output_s3_bucket) + _setter("output_s3_bucket", output_s3_bucket) if output_s3_key_prefix is not None: - pulumi.set(__self__, "output_s3_key_prefix", output_s3_key_prefix) + _setter("output_s3_key_prefix", output_s3_key_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if service_role_arn is not None: - pulumi.set(__self__, "service_role_arn", service_role_arn) + _setter("service_role_arn", service_role_arn) if timeout_seconds is not None: - pulumi.set(__self__, "timeout_seconds", timeout_seconds) + _setter("timeout_seconds", timeout_seconds) @property @pulumi.getter(name="cloudwatchConfig") @@ -700,10 +935,27 @@ def __init__(__self__, *, :param pulumi.Input[str] cloudwatch_log_group_name: The name of the CloudWatch log group where you want to send command output. If you don't specify a group name, Systems Manager automatically creates a log group for you. The log group uses the following naming format: aws/ssm/SystemsManagerDocumentName. :param pulumi.Input[bool] cloudwatch_output_enabled: Enables Systems Manager to send command output to CloudWatch Logs. """ + MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersCloudwatchConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group_name=cloudwatch_log_group_name, + cloudwatch_output_enabled=cloudwatch_output_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group_name: Optional[pulumi.Input[str]] = None, + cloudwatch_output_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_name is None and 'cloudwatchLogGroupName' in kwargs: + cloudwatch_log_group_name = kwargs['cloudwatchLogGroupName'] + if cloudwatch_output_enabled is None and 'cloudwatchOutputEnabled' in kwargs: + cloudwatch_output_enabled = kwargs['cloudwatchOutputEnabled'] + if cloudwatch_log_group_name is not None: - pulumi.set(__self__, "cloudwatch_log_group_name", cloudwatch_log_group_name) + _setter("cloudwatch_log_group_name", cloudwatch_log_group_name) if cloudwatch_output_enabled is not None: - pulumi.set(__self__, "cloudwatch_output_enabled", cloudwatch_output_enabled) + _setter("cloudwatch_output_enabled", cloudwatch_output_enabled) @property @pulumi.getter(name="cloudwatchLogGroupName") @@ -741,12 +993,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] notification_events: The different events for which you can receive notifications. Valid values: `All`, `InProgress`, `Success`, `TimedOut`, `Cancelled`, and `Failed` :param pulumi.Input[str] notification_type: When specified with `Command`, receive notification when the status of a command changes. When specified with `Invocation`, for commands sent to multiple instances, receive notification on a per-instance basis when the status of a command changes. Valid values: `Command` and `Invocation` """ + MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersNotificationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + notification_arn=notification_arn, + notification_events=notification_events, + notification_type=notification_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notification_arn: Optional[pulumi.Input[str]] = None, + notification_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + notification_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notification_arn is None and 'notificationArn' in kwargs: + notification_arn = kwargs['notificationArn'] + if notification_events is None and 'notificationEvents' in kwargs: + notification_events = kwargs['notificationEvents'] + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if notification_arn is not None: - pulumi.set(__self__, "notification_arn", notification_arn) + _setter("notification_arn", notification_arn) if notification_events is not None: - pulumi.set(__self__, "notification_events", notification_events) + _setter("notification_events", notification_events) if notification_type is not None: - pulumi.set(__self__, "notification_type", notification_type) + _setter("notification_type", notification_type) @property @pulumi.getter(name="notificationArn") @@ -794,8 +1067,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The parameter name. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The array of strings. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -831,10 +1121,23 @@ def __init__(__self__, *, :param pulumi.Input[str] input: The inputs for the STEP_FUNCTION task. :param pulumi.Input[str] name: The name of the STEP_FUNCTION task. """ + MaintenanceWindowTaskTaskInvocationParametersStepFunctionsParametersArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + input=input, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input is not None: - pulumi.set(__self__, "input", input) + _setter("input", input) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -888,15 +1191,46 @@ def __init__(__self__, *, The default value is `false`. Valid for Linux instances only. """ - pulumi.set(__self__, "patch_filters", patch_filters) + PatchBaselineApprovalRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + patch_filters=patch_filters, + approve_after_days=approve_after_days, + approve_until_date=approve_until_date, + compliance_level=compliance_level, + enable_non_security=enable_non_security, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + patch_filters: Optional[pulumi.Input[Sequence[pulumi.Input['PatchBaselineApprovalRulePatchFilterArgs']]]] = None, + approve_after_days: Optional[pulumi.Input[int]] = None, + approve_until_date: Optional[pulumi.Input[str]] = None, + compliance_level: Optional[pulumi.Input[str]] = None, + enable_non_security: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if patch_filters is None and 'patchFilters' in kwargs: + patch_filters = kwargs['patchFilters'] + if patch_filters is None: + raise TypeError("Missing 'patch_filters' argument") + if approve_after_days is None and 'approveAfterDays' in kwargs: + approve_after_days = kwargs['approveAfterDays'] + if approve_until_date is None and 'approveUntilDate' in kwargs: + approve_until_date = kwargs['approveUntilDate'] + if compliance_level is None and 'complianceLevel' in kwargs: + compliance_level = kwargs['complianceLevel'] + if enable_non_security is None and 'enableNonSecurity' in kwargs: + enable_non_security = kwargs['enableNonSecurity'] + + _setter("patch_filters", patch_filters) if approve_after_days is not None: - pulumi.set(__self__, "approve_after_days", approve_after_days) + _setter("approve_after_days", approve_after_days) if approve_until_date is not None: - pulumi.set(__self__, "approve_until_date", approve_until_date) + _setter("approve_until_date", approve_until_date) if compliance_level is not None: - pulumi.set(__self__, "compliance_level", compliance_level) + _setter("compliance_level", compliance_level) if enable_non_security is not None: - pulumi.set(__self__, "enable_non_security", enable_non_security) + _setter("enable_non_security", enable_non_security) @property @pulumi.getter(name="patchFilters") @@ -976,8 +1310,25 @@ class PatchBaselineApprovalRulePatchFilterArgs: def __init__(__self__, *, key: pulumi.Input[str], values: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + PatchBaselineApprovalRulePatchFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -1003,8 +1354,25 @@ class PatchBaselineGlobalFilterArgs: def __init__(__self__, *, key: pulumi.Input[str], values: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + PatchBaselineGlobalFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -1038,9 +1406,30 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] products: The specific operating system versions a patch repository applies to, such as `"Ubuntu16.04"`, `"AmazonLinux2016.09"`, `"RedhatEnterpriseLinux7.2"` or `"Suse12.7"`. For lists of supported product values, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html). """ - pulumi.set(__self__, "configuration", configuration) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "products", products) + PatchBaselineSourceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + name=name, + products=products, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + products: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration is None: + raise TypeError("Missing 'configuration' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if products is None: + raise TypeError("Missing 'products' argument") + + _setter("configuration", configuration) + _setter("name", name) + _setter("products", products) @property @pulumi.getter @@ -1096,14 +1485,43 @@ def __init__(__self__, *, :param pulumi.Input[str] prefix: Prefix for the bucket. :param pulumi.Input[str] sync_format: A supported sync format. Only JsonSerDe is currently supported. Defaults to JsonSerDe. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "region", region) + ResourceDataSyncS3DestinationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + region=region, + kms_key_arn=kms_key_arn, + prefix=prefix, + sync_format=sync_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + sync_format: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if region is None: + raise TypeError("Missing 'region' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if sync_format is None and 'syncFormat' in kwargs: + sync_format = kwargs['syncFormat'] + + _setter("bucket_name", bucket_name) + _setter("region", region) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if sync_format is not None: - pulumi.set(__self__, "sync_format", sync_format) + _setter("sync_format", sync_format) @property @pulumi.getter(name="bucketName") @@ -1175,8 +1593,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [SSM InstanceInformationStringFilter API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_InstanceInformationStringFilter.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstancesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1212,8 +1647,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [SSM DescribeMaintenanceWindows API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeMaintenanceWindows.html#API_DescribeMaintenanceWindows_RequestSyntax). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetMaintenanceWindowsFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ssm/activation.py b/sdk/python/pulumi_aws/ssm/activation.py index 4dae5c4a80a..182ca95d938 100644 --- a/sdk/python/pulumi_aws/ssm/activation.py +++ b/sdk/python/pulumi_aws/ssm/activation.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ActivationArgs', 'Activation'] @@ -29,17 +29,46 @@ def __init__(__self__, *, :param pulumi.Input[int] registration_limit: The maximum number of managed instances you want to register. The default value is 1 instance. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the object. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "iam_role", iam_role) + ActivationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + iam_role=iam_role, + description=description, + expiration_date=expiration_date, + name=name, + registration_limit=registration_limit, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + iam_role: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + expiration_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + registration_limit: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if iam_role is None and 'iamRole' in kwargs: + iam_role = kwargs['iamRole'] + if iam_role is None: + raise TypeError("Missing 'iam_role' argument") + if expiration_date is None and 'expirationDate' in kwargs: + expiration_date = kwargs['expirationDate'] + if registration_limit is None and 'registrationLimit' in kwargs: + registration_limit = kwargs['registrationLimit'] + + _setter("iam_role", iam_role) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if expiration_date is not None: - pulumi.set(__self__, "expiration_date", expiration_date) + _setter("expiration_date", expiration_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if registration_limit is not None: - pulumi.set(__self__, "registration_limit", registration_limit) + _setter("registration_limit", registration_limit) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="iamRole") @@ -140,29 +169,70 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the object. .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. """ + _ActivationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + activation_code=activation_code, + description=description, + expiration_date=expiration_date, + expired=expired, + iam_role=iam_role, + name=name, + registration_count=registration_count, + registration_limit=registration_limit, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activation_code: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + expiration_date: Optional[pulumi.Input[str]] = None, + expired: Optional[pulumi.Input[bool]] = None, + iam_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + registration_count: Optional[pulumi.Input[int]] = None, + registration_limit: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activation_code is None and 'activationCode' in kwargs: + activation_code = kwargs['activationCode'] + if expiration_date is None and 'expirationDate' in kwargs: + expiration_date = kwargs['expirationDate'] + if iam_role is None and 'iamRole' in kwargs: + iam_role = kwargs['iamRole'] + if registration_count is None and 'registrationCount' in kwargs: + registration_count = kwargs['registrationCount'] + if registration_limit is None and 'registrationLimit' in kwargs: + registration_limit = kwargs['registrationLimit'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if activation_code is not None: - pulumi.set(__self__, "activation_code", activation_code) + _setter("activation_code", activation_code) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if expiration_date is not None: - pulumi.set(__self__, "expiration_date", expiration_date) + _setter("expiration_date", expiration_date) if expired is not None: - pulumi.set(__self__, "expired", expired) + _setter("expired", expired) if iam_role is not None: - pulumi.set(__self__, "iam_role", iam_role) + _setter("iam_role", iam_role) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if registration_count is not None: - pulumi.set(__self__, "registration_count", registration_count) + _setter("registration_count", registration_count) if registration_limit is not None: - pulumi.set(__self__, "registration_limit", registration_limit) + _setter("registration_limit", registration_limit) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="activationCode") @@ -399,6 +469,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ActivationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssm/association.py b/sdk/python/pulumi_aws/ssm/association.py index 594208569c1..ffe821ddfb0 100644 --- a/sdk/python/pulumi_aws/ssm/association.py +++ b/sdk/python/pulumi_aws/ssm/association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -51,39 +51,102 @@ def __init__(__self__, *, Output Location (`output_location`) is an S3 bucket where you want to store the results of this association: """ + AssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_only_at_cron_interval=apply_only_at_cron_interval, + association_name=association_name, + automation_target_parameter_name=automation_target_parameter_name, + compliance_severity=compliance_severity, + document_version=document_version, + instance_id=instance_id, + max_concurrency=max_concurrency, + max_errors=max_errors, + name=name, + output_location=output_location, + parameters=parameters, + schedule_expression=schedule_expression, + sync_compliance=sync_compliance, + targets=targets, + wait_for_success_timeout_seconds=wait_for_success_timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_only_at_cron_interval: Optional[pulumi.Input[bool]] = None, + association_name: Optional[pulumi.Input[str]] = None, + automation_target_parameter_name: Optional[pulumi.Input[str]] = None, + compliance_severity: Optional[pulumi.Input[str]] = None, + document_version: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + max_concurrency: Optional[pulumi.Input[str]] = None, + max_errors: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + output_location: Optional[pulumi.Input['AssociationOutputLocationArgs']] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + schedule_expression: Optional[pulumi.Input[str]] = None, + sync_compliance: Optional[pulumi.Input[str]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['AssociationTargetArgs']]]] = None, + wait_for_success_timeout_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_only_at_cron_interval is None and 'applyOnlyAtCronInterval' in kwargs: + apply_only_at_cron_interval = kwargs['applyOnlyAtCronInterval'] + if association_name is None and 'associationName' in kwargs: + association_name = kwargs['associationName'] + if automation_target_parameter_name is None and 'automationTargetParameterName' in kwargs: + automation_target_parameter_name = kwargs['automationTargetParameterName'] + if compliance_severity is None and 'complianceSeverity' in kwargs: + compliance_severity = kwargs['complianceSeverity'] + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_errors is None and 'maxErrors' in kwargs: + max_errors = kwargs['maxErrors'] + if output_location is None and 'outputLocation' in kwargs: + output_location = kwargs['outputLocation'] + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if sync_compliance is None and 'syncCompliance' in kwargs: + sync_compliance = kwargs['syncCompliance'] + if wait_for_success_timeout_seconds is None and 'waitForSuccessTimeoutSeconds' in kwargs: + wait_for_success_timeout_seconds = kwargs['waitForSuccessTimeoutSeconds'] + if apply_only_at_cron_interval is not None: - pulumi.set(__self__, "apply_only_at_cron_interval", apply_only_at_cron_interval) + _setter("apply_only_at_cron_interval", apply_only_at_cron_interval) if association_name is not None: - pulumi.set(__self__, "association_name", association_name) + _setter("association_name", association_name) if automation_target_parameter_name is not None: - pulumi.set(__self__, "automation_target_parameter_name", automation_target_parameter_name) + _setter("automation_target_parameter_name", automation_target_parameter_name) if compliance_severity is not None: - pulumi.set(__self__, "compliance_severity", compliance_severity) + _setter("compliance_severity", compliance_severity) if document_version is not None: - pulumi.set(__self__, "document_version", document_version) + _setter("document_version", document_version) if instance_id is not None: warnings.warn("""use 'targets' argument instead. https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html#systemsmanager-CreateAssociation-request-InstanceId""", DeprecationWarning) pulumi.log.warn("""instance_id is deprecated: use 'targets' argument instead. https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html#systemsmanager-CreateAssociation-request-InstanceId""") if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if max_concurrency is not None: - pulumi.set(__self__, "max_concurrency", max_concurrency) + _setter("max_concurrency", max_concurrency) if max_errors is not None: - pulumi.set(__self__, "max_errors", max_errors) + _setter("max_errors", max_errors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if output_location is not None: - pulumi.set(__self__, "output_location", output_location) + _setter("output_location", output_location) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if schedule_expression is not None: - pulumi.set(__self__, "schedule_expression", schedule_expression) + _setter("schedule_expression", schedule_expression) if sync_compliance is not None: - pulumi.set(__self__, "sync_compliance", sync_compliance) + _setter("sync_compliance", sync_compliance) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) if wait_for_success_timeout_seconds is not None: - pulumi.set(__self__, "wait_for_success_timeout_seconds", wait_for_success_timeout_seconds) + _setter("wait_for_success_timeout_seconds", wait_for_success_timeout_seconds) @property @pulumi.getter(name="applyOnlyAtCronInterval") @@ -313,43 +376,112 @@ def __init__(__self__, *, Output Location (`output_location`) is an S3 bucket where you want to store the results of this association: """ + _AssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + apply_only_at_cron_interval=apply_only_at_cron_interval, + arn=arn, + association_id=association_id, + association_name=association_name, + automation_target_parameter_name=automation_target_parameter_name, + compliance_severity=compliance_severity, + document_version=document_version, + instance_id=instance_id, + max_concurrency=max_concurrency, + max_errors=max_errors, + name=name, + output_location=output_location, + parameters=parameters, + schedule_expression=schedule_expression, + sync_compliance=sync_compliance, + targets=targets, + wait_for_success_timeout_seconds=wait_for_success_timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + apply_only_at_cron_interval: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + association_id: Optional[pulumi.Input[str]] = None, + association_name: Optional[pulumi.Input[str]] = None, + automation_target_parameter_name: Optional[pulumi.Input[str]] = None, + compliance_severity: Optional[pulumi.Input[str]] = None, + document_version: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + max_concurrency: Optional[pulumi.Input[str]] = None, + max_errors: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + output_location: Optional[pulumi.Input['AssociationOutputLocationArgs']] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + schedule_expression: Optional[pulumi.Input[str]] = None, + sync_compliance: Optional[pulumi.Input[str]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['AssociationTargetArgs']]]] = None, + wait_for_success_timeout_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if apply_only_at_cron_interval is None and 'applyOnlyAtCronInterval' in kwargs: + apply_only_at_cron_interval = kwargs['applyOnlyAtCronInterval'] + if association_id is None and 'associationId' in kwargs: + association_id = kwargs['associationId'] + if association_name is None and 'associationName' in kwargs: + association_name = kwargs['associationName'] + if automation_target_parameter_name is None and 'automationTargetParameterName' in kwargs: + automation_target_parameter_name = kwargs['automationTargetParameterName'] + if compliance_severity is None and 'complianceSeverity' in kwargs: + compliance_severity = kwargs['complianceSeverity'] + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if instance_id is None and 'instanceId' in kwargs: + instance_id = kwargs['instanceId'] + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_errors is None and 'maxErrors' in kwargs: + max_errors = kwargs['maxErrors'] + if output_location is None and 'outputLocation' in kwargs: + output_location = kwargs['outputLocation'] + if schedule_expression is None and 'scheduleExpression' in kwargs: + schedule_expression = kwargs['scheduleExpression'] + if sync_compliance is None and 'syncCompliance' in kwargs: + sync_compliance = kwargs['syncCompliance'] + if wait_for_success_timeout_seconds is None and 'waitForSuccessTimeoutSeconds' in kwargs: + wait_for_success_timeout_seconds = kwargs['waitForSuccessTimeoutSeconds'] + if apply_only_at_cron_interval is not None: - pulumi.set(__self__, "apply_only_at_cron_interval", apply_only_at_cron_interval) + _setter("apply_only_at_cron_interval", apply_only_at_cron_interval) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if association_id is not None: - pulumi.set(__self__, "association_id", association_id) + _setter("association_id", association_id) if association_name is not None: - pulumi.set(__self__, "association_name", association_name) + _setter("association_name", association_name) if automation_target_parameter_name is not None: - pulumi.set(__self__, "automation_target_parameter_name", automation_target_parameter_name) + _setter("automation_target_parameter_name", automation_target_parameter_name) if compliance_severity is not None: - pulumi.set(__self__, "compliance_severity", compliance_severity) + _setter("compliance_severity", compliance_severity) if document_version is not None: - pulumi.set(__self__, "document_version", document_version) + _setter("document_version", document_version) if instance_id is not None: warnings.warn("""use 'targets' argument instead. https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html#systemsmanager-CreateAssociation-request-InstanceId""", DeprecationWarning) pulumi.log.warn("""instance_id is deprecated: use 'targets' argument instead. https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html#systemsmanager-CreateAssociation-request-InstanceId""") if instance_id is not None: - pulumi.set(__self__, "instance_id", instance_id) + _setter("instance_id", instance_id) if max_concurrency is not None: - pulumi.set(__self__, "max_concurrency", max_concurrency) + _setter("max_concurrency", max_concurrency) if max_errors is not None: - pulumi.set(__self__, "max_errors", max_errors) + _setter("max_errors", max_errors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if output_location is not None: - pulumi.set(__self__, "output_location", output_location) + _setter("output_location", output_location) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if schedule_expression is not None: - pulumi.set(__self__, "schedule_expression", schedule_expression) + _setter("schedule_expression", schedule_expression) if sync_compliance is not None: - pulumi.set(__self__, "sync_compliance", sync_compliance) + _setter("sync_compliance", sync_compliance) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) if wait_for_success_timeout_seconds is not None: - pulumi.set(__self__, "wait_for_success_timeout_seconds", wait_for_success_timeout_seconds) + _setter("wait_for_success_timeout_seconds", wait_for_success_timeout_seconds) @property @pulumi.getter(name="applyOnlyAtCronInterval") @@ -748,6 +880,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -782,13 +918,11 @@ def _internal_init(__self__, __props__.__dict__["automation_target_parameter_name"] = automation_target_parameter_name __props__.__dict__["compliance_severity"] = compliance_severity __props__.__dict__["document_version"] = document_version - if instance_id is not None and not opts.urn: - warnings.warn("""use 'targets' argument instead. https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html#systemsmanager-CreateAssociation-request-InstanceId""", DeprecationWarning) - pulumi.log.warn("""instance_id is deprecated: use 'targets' argument instead. https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html#systemsmanager-CreateAssociation-request-InstanceId""") __props__.__dict__["instance_id"] = instance_id __props__.__dict__["max_concurrency"] = max_concurrency __props__.__dict__["max_errors"] = max_errors __props__.__dict__["name"] = name + output_location = _utilities.configure(output_location, AssociationOutputLocationArgs, True) __props__.__dict__["output_location"] = output_location __props__.__dict__["parameters"] = parameters __props__.__dict__["schedule_expression"] = schedule_expression diff --git a/sdk/python/pulumi_aws/ssm/default_patch_baseline.py b/sdk/python/pulumi_aws/ssm/default_patch_baseline.py index 5893a1c7ae8..af57da8cfdb 100644 --- a/sdk/python/pulumi_aws/ssm/default_patch_baseline.py +++ b/sdk/python/pulumi_aws/ssm/default_patch_baseline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DefaultPatchBaselineArgs', 'DefaultPatchBaseline'] @@ -37,8 +37,29 @@ def __init__(__self__, *, `UBUNTU`, and `WINDOWS`. """ - pulumi.set(__self__, "baseline_id", baseline_id) - pulumi.set(__self__, "operating_system", operating_system) + DefaultPatchBaselineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + baseline_id=baseline_id, + operating_system=operating_system, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + baseline_id: Optional[pulumi.Input[str]] = None, + operating_system: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if baseline_id is None and 'baselineId' in kwargs: + baseline_id = kwargs['baselineId'] + if baseline_id is None: + raise TypeError("Missing 'baseline_id' argument") + if operating_system is None and 'operatingSystem' in kwargs: + operating_system = kwargs['operatingSystem'] + if operating_system is None: + raise TypeError("Missing 'operating_system' argument") + + _setter("baseline_id", baseline_id) + _setter("operating_system", operating_system) @property @pulumi.getter(name="baselineId") @@ -107,10 +128,27 @@ def __init__(__self__, *, `UBUNTU`, and `WINDOWS`. """ + _DefaultPatchBaselineState._configure( + lambda key, value: pulumi.set(__self__, key, value), + baseline_id=baseline_id, + operating_system=operating_system, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + baseline_id: Optional[pulumi.Input[str]] = None, + operating_system: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if baseline_id is None and 'baselineId' in kwargs: + baseline_id = kwargs['baselineId'] + if operating_system is None and 'operatingSystem' in kwargs: + operating_system = kwargs['operatingSystem'] + if baseline_id is not None: - pulumi.set(__self__, "baseline_id", baseline_id) + _setter("baseline_id", baseline_id) if operating_system is not None: - pulumi.set(__self__, "operating_system", operating_system) + _setter("operating_system", operating_system) @property @pulumi.getter(name="baselineId") @@ -278,6 +316,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DefaultPatchBaselineArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssm/document.py b/sdk/python/pulumi_aws/ssm/document.py index 81cdde20491..00a859ea55b 100644 --- a/sdk/python/pulumi_aws/ssm/document.py +++ b/sdk/python/pulumi_aws/ssm/document.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,22 +37,63 @@ def __init__(__self__, *, :param pulumi.Input[str] target_type: The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see AWS Resource Types Reference (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) :param pulumi.Input[str] version_name: A field specifying the version of the artifact you are creating with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document and cannot be changed for an existing document version. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "document_type", document_type) + DocumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + document_type=document_type, + attachments_sources=attachments_sources, + document_format=document_format, + name=name, + permissions=permissions, + tags=tags, + target_type=target_type, + version_name=version_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + document_type: Optional[pulumi.Input[str]] = None, + attachments_sources: Optional[pulumi.Input[Sequence[pulumi.Input['DocumentAttachmentsSourceArgs']]]] = None, + document_format: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_type: Optional[pulumi.Input[str]] = None, + version_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if document_type is None and 'documentType' in kwargs: + document_type = kwargs['documentType'] + if document_type is None: + raise TypeError("Missing 'document_type' argument") + if attachments_sources is None and 'attachmentsSources' in kwargs: + attachments_sources = kwargs['attachmentsSources'] + if document_format is None and 'documentFormat' in kwargs: + document_format = kwargs['documentFormat'] + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + if version_name is None and 'versionName' in kwargs: + version_name = kwargs['versionName'] + + _setter("content", content) + _setter("document_type", document_type) if attachments_sources is not None: - pulumi.set(__self__, "attachments_sources", attachments_sources) + _setter("attachments_sources", attachments_sources) if document_format is not None: - pulumi.set(__self__, "document_format", document_format) + _setter("document_format", document_format) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if target_type is not None: - pulumi.set(__self__, "target_type", target_type) + _setter("target_type", target_type) if version_name is not None: - pulumi.set(__self__, "version_name", version_name) + _setter("version_name", version_name) @property @pulumi.getter @@ -214,55 +255,136 @@ def __init__(__self__, *, :param pulumi.Input[str] target_type: The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see AWS Resource Types Reference (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) :param pulumi.Input[str] version_name: A field specifying the version of the artifact you are creating with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document and cannot be changed for an existing document version. """ + _DocumentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attachments_sources=attachments_sources, + content=content, + created_date=created_date, + default_version=default_version, + description=description, + document_format=document_format, + document_type=document_type, + document_version=document_version, + hash=hash, + hash_type=hash_type, + latest_version=latest_version, + name=name, + owner=owner, + parameters=parameters, + permissions=permissions, + platform_types=platform_types, + schema_version=schema_version, + status=status, + tags=tags, + tags_all=tags_all, + target_type=target_type, + version_name=version_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attachments_sources: Optional[pulumi.Input[Sequence[pulumi.Input['DocumentAttachmentsSourceArgs']]]] = None, + content: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + default_version: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + document_format: Optional[pulumi.Input[str]] = None, + document_type: Optional[pulumi.Input[str]] = None, + document_version: Optional[pulumi.Input[str]] = None, + hash: Optional[pulumi.Input[str]] = None, + hash_type: Optional[pulumi.Input[str]] = None, + latest_version: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['DocumentParameterArgs']]]] = None, + permissions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + platform_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + schema_version: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_type: Optional[pulumi.Input[str]] = None, + version_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attachments_sources is None and 'attachmentsSources' in kwargs: + attachments_sources = kwargs['attachmentsSources'] + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if default_version is None and 'defaultVersion' in kwargs: + default_version = kwargs['defaultVersion'] + if document_format is None and 'documentFormat' in kwargs: + document_format = kwargs['documentFormat'] + if document_type is None and 'documentType' in kwargs: + document_type = kwargs['documentType'] + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if hash_type is None and 'hashType' in kwargs: + hash_type = kwargs['hashType'] + if latest_version is None and 'latestVersion' in kwargs: + latest_version = kwargs['latestVersion'] + if platform_types is None and 'platformTypes' in kwargs: + platform_types = kwargs['platformTypes'] + if schema_version is None and 'schemaVersion' in kwargs: + schema_version = kwargs['schemaVersion'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + if version_name is None and 'versionName' in kwargs: + version_name = kwargs['versionName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attachments_sources is not None: - pulumi.set(__self__, "attachments_sources", attachments_sources) + _setter("attachments_sources", attachments_sources) if content is not None: - pulumi.set(__self__, "content", content) + _setter("content", content) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if default_version is not None: - pulumi.set(__self__, "default_version", default_version) + _setter("default_version", default_version) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if document_format is not None: - pulumi.set(__self__, "document_format", document_format) + _setter("document_format", document_format) if document_type is not None: - pulumi.set(__self__, "document_type", document_type) + _setter("document_type", document_type) if document_version is not None: - pulumi.set(__self__, "document_version", document_version) + _setter("document_version", document_version) if hash is not None: - pulumi.set(__self__, "hash", hash) + _setter("hash", hash) if hash_type is not None: - pulumi.set(__self__, "hash_type", hash_type) + _setter("hash_type", hash_type) if latest_version is not None: - pulumi.set(__self__, "latest_version", latest_version) + _setter("latest_version", latest_version) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if permissions is not None: - pulumi.set(__self__, "permissions", permissions) + _setter("permissions", permissions) if platform_types is not None: - pulumi.set(__self__, "platform_types", platform_types) + _setter("platform_types", platform_types) if schema_version is not None: - pulumi.set(__self__, "schema_version", schema_version) + _setter("schema_version", schema_version) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_type is not None: - pulumi.set(__self__, "target_type", target_type) + _setter("target_type", target_type) if version_name is not None: - pulumi.set(__self__, "version_name", version_name) + _setter("version_name", version_name) @property @pulumi.getter @@ -736,6 +858,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DocumentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssm/get_document.py b/sdk/python/pulumi_aws/ssm/get_document.py index b67bc0efcc6..5cfecabf1d3 100644 --- a/sdk/python/pulumi_aws/ssm/get_document.py +++ b/sdk/python/pulumi_aws/ssm/get_document.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ssm/get_instances.py b/sdk/python/pulumi_aws/ssm/get_instances.py index 4db9ab98382..bd02005166f 100644 --- a/sdk/python/pulumi_aws/ssm/get_instances.py +++ b/sdk/python/pulumi_aws/ssm/get_instances.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ssm/get_maintenance_windows.py b/sdk/python/pulumi_aws/ssm/get_maintenance_windows.py index 75b3a209740..bf0595ee112 100644 --- a/sdk/python/pulumi_aws/ssm/get_maintenance_windows.py +++ b/sdk/python/pulumi_aws/ssm/get_maintenance_windows.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/ssm/get_parameter.py b/sdk/python/pulumi_aws/ssm/get_parameter.py index 01fedc449c5..2326150c081 100644 --- a/sdk/python/pulumi_aws/ssm/get_parameter.py +++ b/sdk/python/pulumi_aws/ssm/get_parameter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ssm/get_parameters_by_path.py b/sdk/python/pulumi_aws/ssm/get_parameters_by_path.py index 7948215cf14..f6450cdf3a2 100644 --- a/sdk/python/pulumi_aws/ssm/get_parameters_by_path.py +++ b/sdk/python/pulumi_aws/ssm/get_parameters_by_path.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ssm/get_patch_baseline.py b/sdk/python/pulumi_aws/ssm/get_patch_baseline.py index 920b1c3caca..911f2ef62cd 100644 --- a/sdk/python/pulumi_aws/ssm/get_patch_baseline.py +++ b/sdk/python/pulumi_aws/ssm/get_patch_baseline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ssm/maintenance_window.py b/sdk/python/pulumi_aws/ssm/maintenance_window.py index b37736a7470..14263290b9b 100644 --- a/sdk/python/pulumi_aws/ssm/maintenance_window.py +++ b/sdk/python/pulumi_aws/ssm/maintenance_window.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MaintenanceWindowArgs', 'MaintenanceWindow'] @@ -41,27 +41,76 @@ def __init__(__self__, *, :param pulumi.Input[str] start_date: Timestamp in [ISO-8601 extended format](https://www.iso.org/iso-8601-date-and-time-format.html) when to begin the maintenance window. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "cutoff", cutoff) - pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "schedule", schedule) + MaintenanceWindowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cutoff=cutoff, + duration=duration, + schedule=schedule, + allow_unassociated_targets=allow_unassociated_targets, + description=description, + enabled=enabled, + end_date=end_date, + name=name, + schedule_offset=schedule_offset, + schedule_timezone=schedule_timezone, + start_date=start_date, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cutoff: Optional[pulumi.Input[int]] = None, + duration: Optional[pulumi.Input[int]] = None, + schedule: Optional[pulumi.Input[str]] = None, + allow_unassociated_targets: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + end_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + schedule_offset: Optional[pulumi.Input[int]] = None, + schedule_timezone: Optional[pulumi.Input[str]] = None, + start_date: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cutoff is None: + raise TypeError("Missing 'cutoff' argument") + if duration is None: + raise TypeError("Missing 'duration' argument") + if schedule is None: + raise TypeError("Missing 'schedule' argument") + if allow_unassociated_targets is None and 'allowUnassociatedTargets' in kwargs: + allow_unassociated_targets = kwargs['allowUnassociatedTargets'] + if end_date is None and 'endDate' in kwargs: + end_date = kwargs['endDate'] + if schedule_offset is None and 'scheduleOffset' in kwargs: + schedule_offset = kwargs['scheduleOffset'] + if schedule_timezone is None and 'scheduleTimezone' in kwargs: + schedule_timezone = kwargs['scheduleTimezone'] + if start_date is None and 'startDate' in kwargs: + start_date = kwargs['startDate'] + + _setter("cutoff", cutoff) + _setter("duration", duration) + _setter("schedule", schedule) if allow_unassociated_targets is not None: - pulumi.set(__self__, "allow_unassociated_targets", allow_unassociated_targets) + _setter("allow_unassociated_targets", allow_unassociated_targets) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if end_date is not None: - pulumi.set(__self__, "end_date", end_date) + _setter("end_date", end_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if schedule_offset is not None: - pulumi.set(__self__, "schedule_offset", schedule_offset) + _setter("schedule_offset", schedule_offset) if schedule_timezone is not None: - pulumi.set(__self__, "schedule_timezone", schedule_timezone) + _setter("schedule_timezone", schedule_timezone) if start_date is not None: - pulumi.set(__self__, "start_date", start_date) + _setter("start_date", start_date) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -240,35 +289,82 @@ def __init__(__self__, *, :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. """ + _MaintenanceWindowState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow_unassociated_targets=allow_unassociated_targets, + cutoff=cutoff, + description=description, + duration=duration, + enabled=enabled, + end_date=end_date, + name=name, + schedule=schedule, + schedule_offset=schedule_offset, + schedule_timezone=schedule_timezone, + start_date=start_date, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow_unassociated_targets: Optional[pulumi.Input[bool]] = None, + cutoff: Optional[pulumi.Input[int]] = None, + description: Optional[pulumi.Input[str]] = None, + duration: Optional[pulumi.Input[int]] = None, + enabled: Optional[pulumi.Input[bool]] = None, + end_date: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input[str]] = None, + schedule_offset: Optional[pulumi.Input[int]] = None, + schedule_timezone: Optional[pulumi.Input[str]] = None, + start_date: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow_unassociated_targets is None and 'allowUnassociatedTargets' in kwargs: + allow_unassociated_targets = kwargs['allowUnassociatedTargets'] + if end_date is None and 'endDate' in kwargs: + end_date = kwargs['endDate'] + if schedule_offset is None and 'scheduleOffset' in kwargs: + schedule_offset = kwargs['scheduleOffset'] + if schedule_timezone is None and 'scheduleTimezone' in kwargs: + schedule_timezone = kwargs['scheduleTimezone'] + if start_date is None and 'startDate' in kwargs: + start_date = kwargs['startDate'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if allow_unassociated_targets is not None: - pulumi.set(__self__, "allow_unassociated_targets", allow_unassociated_targets) + _setter("allow_unassociated_targets", allow_unassociated_targets) if cutoff is not None: - pulumi.set(__self__, "cutoff", cutoff) + _setter("cutoff", cutoff) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if duration is not None: - pulumi.set(__self__, "duration", duration) + _setter("duration", duration) if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if end_date is not None: - pulumi.set(__self__, "end_date", end_date) + _setter("end_date", end_date) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if schedule_offset is not None: - pulumi.set(__self__, "schedule_offset", schedule_offset) + _setter("schedule_offset", schedule_offset) if schedule_timezone is not None: - pulumi.set(__self__, "schedule_timezone", schedule_timezone) + _setter("schedule_timezone", schedule_timezone) if start_date is not None: - pulumi.set(__self__, "start_date", start_date) + _setter("start_date", start_date) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="allowUnassociatedTargets") @@ -529,6 +625,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MaintenanceWindowArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssm/maintenance_window_target.py b/sdk/python/pulumi_aws/ssm/maintenance_window_target.py index 7b46ef05909..9f4b5270026 100644 --- a/sdk/python/pulumi_aws/ssm/maintenance_window_target.py +++ b/sdk/python/pulumi_aws/ssm/maintenance_window_target.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -32,15 +32,48 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the maintenance window target. :param pulumi.Input[str] owner_information: User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window. """ - pulumi.set(__self__, "resource_type", resource_type) - pulumi.set(__self__, "targets", targets) - pulumi.set(__self__, "window_id", window_id) + MaintenanceWindowTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_type=resource_type, + targets=targets, + window_id=window_id, + description=description, + name=name, + owner_information=owner_information, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_type: Optional[pulumi.Input[str]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['MaintenanceWindowTargetTargetArgs']]]] = None, + window_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_information: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if resource_type is None: + raise TypeError("Missing 'resource_type' argument") + if targets is None: + raise TypeError("Missing 'targets' argument") + if window_id is None and 'windowId' in kwargs: + window_id = kwargs['windowId'] + if window_id is None: + raise TypeError("Missing 'window_id' argument") + if owner_information is None and 'ownerInformation' in kwargs: + owner_information = kwargs['ownerInformation'] + + _setter("resource_type", resource_type) + _setter("targets", targets) + _setter("window_id", window_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_information is not None: - pulumi.set(__self__, "owner_information", owner_information) + _setter("owner_information", owner_information) @property @pulumi.getter(name="resourceType") @@ -135,18 +168,45 @@ def __init__(__self__, *, (https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html) :param pulumi.Input[str] window_id: The Id of the maintenance window to register the target with. """ + _MaintenanceWindowTargetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + owner_information=owner_information, + resource_type=resource_type, + targets=targets, + window_id=window_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_information: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['MaintenanceWindowTargetTargetArgs']]]] = None, + window_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if owner_information is None and 'ownerInformation' in kwargs: + owner_information = kwargs['ownerInformation'] + if resource_type is None and 'resourceType' in kwargs: + resource_type = kwargs['resourceType'] + if window_id is None and 'windowId' in kwargs: + window_id = kwargs['windowId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if owner_information is not None: - pulumi.set(__self__, "owner_information", owner_information) + _setter("owner_information", owner_information) if resource_type is not None: - pulumi.set(__self__, "resource_type", resource_type) + _setter("resource_type", resource_type) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) if window_id is not None: - pulumi.set(__self__, "window_id", window_id) + _setter("window_id", window_id) @property @pulumi.getter @@ -362,6 +422,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MaintenanceWindowTargetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssm/maintenance_window_task.py b/sdk/python/pulumi_aws/ssm/maintenance_window_task.py index 7016d4bad85..d5a8aba9334 100644 --- a/sdk/python/pulumi_aws/ssm/maintenance_window_task.py +++ b/sdk/python/pulumi_aws/ssm/maintenance_window_task.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -43,27 +43,82 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['MaintenanceWindowTaskTargetArgs']]] targets: The targets (either instances or window target ids). Instances are specified using Key=InstanceIds,Values=instanceid1,instanceid2. Window target ids are specified using Key=WindowTargetIds,Values=window target id1, window target id2. :param pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersArgs'] task_invocation_parameters: Configuration block with parameters for task execution. """ - pulumi.set(__self__, "task_arn", task_arn) - pulumi.set(__self__, "task_type", task_type) - pulumi.set(__self__, "window_id", window_id) + MaintenanceWindowTaskArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + task_arn=task_arn, + task_type=task_type, + window_id=window_id, + cutoff_behavior=cutoff_behavior, + description=description, + max_concurrency=max_concurrency, + max_errors=max_errors, + name=name, + priority=priority, + service_role_arn=service_role_arn, + targets=targets, + task_invocation_parameters=task_invocation_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + task_arn: Optional[pulumi.Input[str]] = None, + task_type: Optional[pulumi.Input[str]] = None, + window_id: Optional[pulumi.Input[str]] = None, + cutoff_behavior: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + max_concurrency: Optional[pulumi.Input[str]] = None, + max_errors: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['MaintenanceWindowTaskTargetArgs']]]] = None, + task_invocation_parameters: Optional[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if task_arn is None and 'taskArn' in kwargs: + task_arn = kwargs['taskArn'] + if task_arn is None: + raise TypeError("Missing 'task_arn' argument") + if task_type is None and 'taskType' in kwargs: + task_type = kwargs['taskType'] + if task_type is None: + raise TypeError("Missing 'task_type' argument") + if window_id is None and 'windowId' in kwargs: + window_id = kwargs['windowId'] + if window_id is None: + raise TypeError("Missing 'window_id' argument") + if cutoff_behavior is None and 'cutoffBehavior' in kwargs: + cutoff_behavior = kwargs['cutoffBehavior'] + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_errors is None and 'maxErrors' in kwargs: + max_errors = kwargs['maxErrors'] + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if task_invocation_parameters is None and 'taskInvocationParameters' in kwargs: + task_invocation_parameters = kwargs['taskInvocationParameters'] + + _setter("task_arn", task_arn) + _setter("task_type", task_type) + _setter("window_id", window_id) if cutoff_behavior is not None: - pulumi.set(__self__, "cutoff_behavior", cutoff_behavior) + _setter("cutoff_behavior", cutoff_behavior) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if max_concurrency is not None: - pulumi.set(__self__, "max_concurrency", max_concurrency) + _setter("max_concurrency", max_concurrency) if max_errors is not None: - pulumi.set(__self__, "max_errors", max_errors) + _setter("max_errors", max_errors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if service_role_arn is not None: - pulumi.set(__self__, "service_role_arn", service_role_arn) + _setter("service_role_arn", service_role_arn) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) if task_invocation_parameters is not None: - pulumi.set(__self__, "task_invocation_parameters", task_invocation_parameters) + _setter("task_invocation_parameters", task_invocation_parameters) @property @pulumi.getter(name="taskArn") @@ -244,34 +299,89 @@ def __init__(__self__, *, :param pulumi.Input[str] window_id: The Id of the maintenance window to register the task with. :param pulumi.Input[str] window_task_id: The ID of the maintenance window task. """ + _MaintenanceWindowTaskState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cutoff_behavior=cutoff_behavior, + description=description, + max_concurrency=max_concurrency, + max_errors=max_errors, + name=name, + priority=priority, + service_role_arn=service_role_arn, + targets=targets, + task_arn=task_arn, + task_invocation_parameters=task_invocation_parameters, + task_type=task_type, + window_id=window_id, + window_task_id=window_task_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cutoff_behavior: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + max_concurrency: Optional[pulumi.Input[str]] = None, + max_errors: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + service_role_arn: Optional[pulumi.Input[str]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['MaintenanceWindowTaskTargetArgs']]]] = None, + task_arn: Optional[pulumi.Input[str]] = None, + task_invocation_parameters: Optional[pulumi.Input['MaintenanceWindowTaskTaskInvocationParametersArgs']] = None, + task_type: Optional[pulumi.Input[str]] = None, + window_id: Optional[pulumi.Input[str]] = None, + window_task_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cutoff_behavior is None and 'cutoffBehavior' in kwargs: + cutoff_behavior = kwargs['cutoffBehavior'] + if max_concurrency is None and 'maxConcurrency' in kwargs: + max_concurrency = kwargs['maxConcurrency'] + if max_errors is None and 'maxErrors' in kwargs: + max_errors = kwargs['maxErrors'] + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if task_arn is None and 'taskArn' in kwargs: + task_arn = kwargs['taskArn'] + if task_invocation_parameters is None and 'taskInvocationParameters' in kwargs: + task_invocation_parameters = kwargs['taskInvocationParameters'] + if task_type is None and 'taskType' in kwargs: + task_type = kwargs['taskType'] + if window_id is None and 'windowId' in kwargs: + window_id = kwargs['windowId'] + if window_task_id is None and 'windowTaskId' in kwargs: + window_task_id = kwargs['windowTaskId'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cutoff_behavior is not None: - pulumi.set(__self__, "cutoff_behavior", cutoff_behavior) + _setter("cutoff_behavior", cutoff_behavior) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if max_concurrency is not None: - pulumi.set(__self__, "max_concurrency", max_concurrency) + _setter("max_concurrency", max_concurrency) if max_errors is not None: - pulumi.set(__self__, "max_errors", max_errors) + _setter("max_errors", max_errors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if service_role_arn is not None: - pulumi.set(__self__, "service_role_arn", service_role_arn) + _setter("service_role_arn", service_role_arn) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) if task_arn is not None: - pulumi.set(__self__, "task_arn", task_arn) + _setter("task_arn", task_arn) if task_invocation_parameters is not None: - pulumi.set(__self__, "task_invocation_parameters", task_invocation_parameters) + _setter("task_invocation_parameters", task_invocation_parameters) if task_type is not None: - pulumi.set(__self__, "task_type", task_type) + _setter("task_type", task_type) if window_id is not None: - pulumi.set(__self__, "window_id", window_id) + _setter("window_id", window_id) if window_task_id is not None: - pulumi.set(__self__, "window_task_id", window_task_id) + _setter("window_task_id", window_task_id) @property @pulumi.getter @@ -689,6 +799,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MaintenanceWindowTaskArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -726,6 +840,7 @@ def _internal_init(__self__, if task_arn is None and not opts.urn: raise TypeError("Missing required property 'task_arn'") __props__.__dict__["task_arn"] = task_arn + task_invocation_parameters = _utilities.configure(task_invocation_parameters, MaintenanceWindowTaskTaskInvocationParametersArgs, True) __props__.__dict__["task_invocation_parameters"] = task_invocation_parameters if task_type is None and not opts.urn: raise TypeError("Missing required property 'task_type'") diff --git a/sdk/python/pulumi_aws/ssm/outputs.py b/sdk/python/pulumi_aws/ssm/outputs.py index e98ca27ef2f..7106ca8fdf8 100644 --- a/sdk/python/pulumi_aws/ssm/outputs.py +++ b/sdk/python/pulumi_aws/ssm/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._enums import * @@ -74,11 +74,34 @@ def __init__(__self__, *, Targets specify what instance IDs or tags to apply the document to and has these keys: """ - pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + AssociationOutputLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_bucket_name=s3_bucket_name, + s3_key_prefix=s3_key_prefix, + s3_region=s3_region, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_bucket_name: Optional[str] = None, + s3_key_prefix: Optional[str] = None, + s3_region: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_bucket_name is None and 's3BucketName' in kwargs: + s3_bucket_name = kwargs['s3BucketName'] + if s3_bucket_name is None: + raise TypeError("Missing 's3_bucket_name' argument") + if s3_key_prefix is None and 's3KeyPrefix' in kwargs: + s3_key_prefix = kwargs['s3KeyPrefix'] + if s3_region is None and 's3Region' in kwargs: + s3_region = kwargs['s3Region'] + + _setter("s3_bucket_name", s3_bucket_name) if s3_key_prefix is not None: - pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) + _setter("s3_key_prefix", s3_key_prefix) if s3_region is not None: - pulumi.set(__self__, "s3_region", s3_region) + _setter("s3_region", s3_region) @property @pulumi.getter(name="s3BucketName") @@ -116,8 +139,25 @@ def __init__(__self__, *, :param str key: Either `InstanceIds` or `tag:Tag Name` to specify an EC2 tag. :param Sequence[str] values: A list of instance IDs or tag values. AWS currently limits this list size to one value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + AssociationTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -147,10 +187,29 @@ def __init__(__self__, *, :param Sequence[str] values: The value describing the location of an attachment to a document :param str name: The name of the document attachment file """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + DocumentAttachmentsSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -205,14 +264,33 @@ def __init__(__self__, *, :param str description: The description of the document. :param str name: The name of the document. """ + DocumentParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_value=default_value, + description=description, + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_value: Optional[str] = None, + description: Optional[str] = None, + name: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_value is None and 'defaultValue' in kwargs: + default_value = kwargs['defaultValue'] + if default_value is not None: - pulumi.set(__self__, "default_value", default_value) + _setter("default_value", default_value) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="defaultValue") @@ -246,8 +324,25 @@ class MaintenanceWindowTargetTarget(dict): def __init__(__self__, *, key: str, values: Sequence[str]): - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + MaintenanceWindowTargetTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -268,8 +363,25 @@ def __init__(__self__, *, """ :param Sequence[str] values: The array of strings. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + MaintenanceWindowTaskTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -321,14 +433,39 @@ def __init__(__self__, *, :param 'MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersArgs' run_command_parameters: The parameters for a RUN_COMMAND task type. Documented below. :param 'MaintenanceWindowTaskTaskInvocationParametersStepFunctionsParametersArgs' step_functions_parameters: The parameters for a STEP_FUNCTIONS task type. Documented below. """ + MaintenanceWindowTaskTaskInvocationParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + automation_parameters=automation_parameters, + lambda_parameters=lambda_parameters, + run_command_parameters=run_command_parameters, + step_functions_parameters=step_functions_parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + automation_parameters: Optional['outputs.MaintenanceWindowTaskTaskInvocationParametersAutomationParameters'] = None, + lambda_parameters: Optional['outputs.MaintenanceWindowTaskTaskInvocationParametersLambdaParameters'] = None, + run_command_parameters: Optional['outputs.MaintenanceWindowTaskTaskInvocationParametersRunCommandParameters'] = None, + step_functions_parameters: Optional['outputs.MaintenanceWindowTaskTaskInvocationParametersStepFunctionsParameters'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if automation_parameters is None and 'automationParameters' in kwargs: + automation_parameters = kwargs['automationParameters'] + if lambda_parameters is None and 'lambdaParameters' in kwargs: + lambda_parameters = kwargs['lambdaParameters'] + if run_command_parameters is None and 'runCommandParameters' in kwargs: + run_command_parameters = kwargs['runCommandParameters'] + if step_functions_parameters is None and 'stepFunctionsParameters' in kwargs: + step_functions_parameters = kwargs['stepFunctionsParameters'] + if automation_parameters is not None: - pulumi.set(__self__, "automation_parameters", automation_parameters) + _setter("automation_parameters", automation_parameters) if lambda_parameters is not None: - pulumi.set(__self__, "lambda_parameters", lambda_parameters) + _setter("lambda_parameters", lambda_parameters) if run_command_parameters is not None: - pulumi.set(__self__, "run_command_parameters", run_command_parameters) + _setter("run_command_parameters", run_command_parameters) if step_functions_parameters is not None: - pulumi.set(__self__, "step_functions_parameters", step_functions_parameters) + _setter("step_functions_parameters", step_functions_parameters) @property @pulumi.getter(name="automationParameters") @@ -389,10 +526,25 @@ def __init__(__self__, *, :param str document_version: The version of an Automation document to use during task execution. :param Sequence['MaintenanceWindowTaskTaskInvocationParametersAutomationParametersParameterArgs'] parameters: The parameters for the RUN_COMMAND task execution. Documented below. """ + MaintenanceWindowTaskTaskInvocationParametersAutomationParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + document_version=document_version, + parameters=parameters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + document_version: Optional[str] = None, + parameters: Optional[Sequence['outputs.MaintenanceWindowTaskTaskInvocationParametersAutomationParametersParameter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if document_version is not None: - pulumi.set(__self__, "document_version", document_version) + _setter("document_version", document_version) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) @property @pulumi.getter(name="documentVersion") @@ -420,8 +572,25 @@ def __init__(__self__, *, :param str name: The parameter name. :param Sequence[str] values: The array of strings. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + MaintenanceWindowTaskTaskInvocationParametersAutomationParametersParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -468,12 +637,29 @@ def __init__(__self__, *, :param str payload: JSON to provide to your Lambda function as input. :param str qualifier: Specify a Lambda function version or alias name. """ + MaintenanceWindowTaskTaskInvocationParametersLambdaParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_context=client_context, + payload=payload, + qualifier=qualifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_context: Optional[str] = None, + payload: Optional[str] = None, + qualifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_context is None and 'clientContext' in kwargs: + client_context = kwargs['clientContext'] + if client_context is not None: - pulumi.set(__self__, "client_context", client_context) + _setter("client_context", client_context) if payload is not None: - pulumi.set(__self__, "payload", payload) + _setter("payload", payload) if qualifier is not None: - pulumi.set(__self__, "qualifier", qualifier) + _setter("qualifier", qualifier) @property @pulumi.getter(name="clientContext") @@ -560,28 +746,77 @@ def __init__(__self__, *, :param str service_role_arn: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for maintenance window Run Command tasks. :param int timeout_seconds: If this time is reached and the command has not already started executing, it doesn't run. """ + MaintenanceWindowTaskTaskInvocationParametersRunCommandParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_config=cloudwatch_config, + comment=comment, + document_hash=document_hash, + document_hash_type=document_hash_type, + document_version=document_version, + notification_config=notification_config, + output_s3_bucket=output_s3_bucket, + output_s3_key_prefix=output_s3_key_prefix, + parameters=parameters, + service_role_arn=service_role_arn, + timeout_seconds=timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_config: Optional['outputs.MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersCloudwatchConfig'] = None, + comment: Optional[str] = None, + document_hash: Optional[str] = None, + document_hash_type: Optional[str] = None, + document_version: Optional[str] = None, + notification_config: Optional['outputs.MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersNotificationConfig'] = None, + output_s3_bucket: Optional[str] = None, + output_s3_key_prefix: Optional[str] = None, + parameters: Optional[Sequence['outputs.MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersParameter']] = None, + service_role_arn: Optional[str] = None, + timeout_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_config is None and 'cloudwatchConfig' in kwargs: + cloudwatch_config = kwargs['cloudwatchConfig'] + if document_hash is None and 'documentHash' in kwargs: + document_hash = kwargs['documentHash'] + if document_hash_type is None and 'documentHashType' in kwargs: + document_hash_type = kwargs['documentHashType'] + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if notification_config is None and 'notificationConfig' in kwargs: + notification_config = kwargs['notificationConfig'] + if output_s3_bucket is None and 'outputS3Bucket' in kwargs: + output_s3_bucket = kwargs['outputS3Bucket'] + if output_s3_key_prefix is None and 'outputS3KeyPrefix' in kwargs: + output_s3_key_prefix = kwargs['outputS3KeyPrefix'] + if service_role_arn is None and 'serviceRoleArn' in kwargs: + service_role_arn = kwargs['serviceRoleArn'] + if timeout_seconds is None and 'timeoutSeconds' in kwargs: + timeout_seconds = kwargs['timeoutSeconds'] + if cloudwatch_config is not None: - pulumi.set(__self__, "cloudwatch_config", cloudwatch_config) + _setter("cloudwatch_config", cloudwatch_config) if comment is not None: - pulumi.set(__self__, "comment", comment) + _setter("comment", comment) if document_hash is not None: - pulumi.set(__self__, "document_hash", document_hash) + _setter("document_hash", document_hash) if document_hash_type is not None: - pulumi.set(__self__, "document_hash_type", document_hash_type) + _setter("document_hash_type", document_hash_type) if document_version is not None: - pulumi.set(__self__, "document_version", document_version) + _setter("document_version", document_version) if notification_config is not None: - pulumi.set(__self__, "notification_config", notification_config) + _setter("notification_config", notification_config) if output_s3_bucket is not None: - pulumi.set(__self__, "output_s3_bucket", output_s3_bucket) + _setter("output_s3_bucket", output_s3_bucket) if output_s3_key_prefix is not None: - pulumi.set(__self__, "output_s3_key_prefix", output_s3_key_prefix) + _setter("output_s3_key_prefix", output_s3_key_prefix) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if service_role_arn is not None: - pulumi.set(__self__, "service_role_arn", service_role_arn) + _setter("service_role_arn", service_role_arn) if timeout_seconds is not None: - pulumi.set(__self__, "timeout_seconds", timeout_seconds) + _setter("timeout_seconds", timeout_seconds) @property @pulumi.getter(name="cloudwatchConfig") @@ -700,10 +935,27 @@ def __init__(__self__, *, :param str cloudwatch_log_group_name: The name of the CloudWatch log group where you want to send command output. If you don't specify a group name, Systems Manager automatically creates a log group for you. The log group uses the following naming format: aws/ssm/SystemsManagerDocumentName. :param bool cloudwatch_output_enabled: Enables Systems Manager to send command output to CloudWatch Logs. """ + MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersCloudwatchConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_log_group_name=cloudwatch_log_group_name, + cloudwatch_output_enabled=cloudwatch_output_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_log_group_name: Optional[str] = None, + cloudwatch_output_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_log_group_name is None and 'cloudwatchLogGroupName' in kwargs: + cloudwatch_log_group_name = kwargs['cloudwatchLogGroupName'] + if cloudwatch_output_enabled is None and 'cloudwatchOutputEnabled' in kwargs: + cloudwatch_output_enabled = kwargs['cloudwatchOutputEnabled'] + if cloudwatch_log_group_name is not None: - pulumi.set(__self__, "cloudwatch_log_group_name", cloudwatch_log_group_name) + _setter("cloudwatch_log_group_name", cloudwatch_log_group_name) if cloudwatch_output_enabled is not None: - pulumi.set(__self__, "cloudwatch_output_enabled", cloudwatch_output_enabled) + _setter("cloudwatch_output_enabled", cloudwatch_output_enabled) @property @pulumi.getter(name="cloudwatchLogGroupName") @@ -754,12 +1006,33 @@ def __init__(__self__, *, :param Sequence[str] notification_events: The different events for which you can receive notifications. Valid values: `All`, `InProgress`, `Success`, `TimedOut`, `Cancelled`, and `Failed` :param str notification_type: When specified with `Command`, receive notification when the status of a command changes. When specified with `Invocation`, for commands sent to multiple instances, receive notification on a per-instance basis when the status of a command changes. Valid values: `Command` and `Invocation` """ + MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersNotificationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + notification_arn=notification_arn, + notification_events=notification_events, + notification_type=notification_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + notification_arn: Optional[str] = None, + notification_events: Optional[Sequence[str]] = None, + notification_type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if notification_arn is None and 'notificationArn' in kwargs: + notification_arn = kwargs['notificationArn'] + if notification_events is None and 'notificationEvents' in kwargs: + notification_events = kwargs['notificationEvents'] + if notification_type is None and 'notificationType' in kwargs: + notification_type = kwargs['notificationType'] + if notification_arn is not None: - pulumi.set(__self__, "notification_arn", notification_arn) + _setter("notification_arn", notification_arn) if notification_events is not None: - pulumi.set(__self__, "notification_events", notification_events) + _setter("notification_events", notification_events) if notification_type is not None: - pulumi.set(__self__, "notification_type", notification_type) + _setter("notification_type", notification_type) @property @pulumi.getter(name="notificationArn") @@ -795,8 +1068,25 @@ def __init__(__self__, *, :param str name: The parameter name. :param Sequence[str] values: The array of strings. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -824,10 +1114,23 @@ def __init__(__self__, *, :param str input: The inputs for the STEP_FUNCTION task. :param str name: The name of the STEP_FUNCTION task. """ + MaintenanceWindowTaskTaskInvocationParametersStepFunctionsParameters._configure( + lambda key, value: pulumi.set(__self__, key, value), + input=input, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + input: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if input is not None: - pulumi.set(__self__, "input", input) + _setter("input", input) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -898,15 +1201,46 @@ def __init__(__self__, *, The default value is `false`. Valid for Linux instances only. """ - pulumi.set(__self__, "patch_filters", patch_filters) + PatchBaselineApprovalRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + patch_filters=patch_filters, + approve_after_days=approve_after_days, + approve_until_date=approve_until_date, + compliance_level=compliance_level, + enable_non_security=enable_non_security, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + patch_filters: Optional[Sequence['outputs.PatchBaselineApprovalRulePatchFilter']] = None, + approve_after_days: Optional[int] = None, + approve_until_date: Optional[str] = None, + compliance_level: Optional[str] = None, + enable_non_security: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if patch_filters is None and 'patchFilters' in kwargs: + patch_filters = kwargs['patchFilters'] + if patch_filters is None: + raise TypeError("Missing 'patch_filters' argument") + if approve_after_days is None and 'approveAfterDays' in kwargs: + approve_after_days = kwargs['approveAfterDays'] + if approve_until_date is None and 'approveUntilDate' in kwargs: + approve_until_date = kwargs['approveUntilDate'] + if compliance_level is None and 'complianceLevel' in kwargs: + compliance_level = kwargs['complianceLevel'] + if enable_non_security is None and 'enableNonSecurity' in kwargs: + enable_non_security = kwargs['enableNonSecurity'] + + _setter("patch_filters", patch_filters) if approve_after_days is not None: - pulumi.set(__self__, "approve_after_days", approve_after_days) + _setter("approve_after_days", approve_after_days) if approve_until_date is not None: - pulumi.set(__self__, "approve_until_date", approve_until_date) + _setter("approve_until_date", approve_until_date) if compliance_level is not None: - pulumi.set(__self__, "compliance_level", compliance_level) + _setter("compliance_level", compliance_level) if enable_non_security is not None: - pulumi.set(__self__, "enable_non_security", enable_non_security) + _setter("enable_non_security", enable_non_security) @property @pulumi.getter(name="patchFilters") @@ -966,8 +1300,25 @@ class PatchBaselineApprovalRulePatchFilter(dict): def __init__(__self__, *, key: str, values: Sequence[str]): - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + PatchBaselineApprovalRulePatchFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -985,8 +1336,25 @@ class PatchBaselineGlobalFilter(dict): def __init__(__self__, *, key: str, values: Sequence[str]): - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + PatchBaselineGlobalFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -1012,9 +1380,30 @@ def __init__(__self__, *, :param Sequence[str] products: The specific operating system versions a patch repository applies to, such as `"Ubuntu16.04"`, `"AmazonLinux2016.09"`, `"RedhatEnterpriseLinux7.2"` or `"Suse12.7"`. For lists of supported product values, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html). """ - pulumi.set(__self__, "configuration", configuration) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "products", products) + PatchBaselineSource._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + name=name, + products=products, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[str] = None, + name: Optional[str] = None, + products: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration is None: + raise TypeError("Missing 'configuration' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if products is None: + raise TypeError("Missing 'products' argument") + + _setter("configuration", configuration) + _setter("name", name) + _setter("products", products) @property @pulumi.getter @@ -1079,14 +1468,43 @@ def __init__(__self__, *, :param str prefix: Prefix for the bucket. :param str sync_format: A supported sync format. Only JsonSerDe is currently supported. Defaults to JsonSerDe. """ - pulumi.set(__self__, "bucket_name", bucket_name) - pulumi.set(__self__, "region", region) + ResourceDataSyncS3Destination._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + region=region, + kms_key_arn=kms_key_arn, + prefix=prefix, + sync_format=sync_format, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + region: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None, + sync_format: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_name is None: + raise TypeError("Missing 'bucket_name' argument") + if region is None: + raise TypeError("Missing 'region' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if sync_format is None and 'syncFormat' in kwargs: + sync_format = kwargs['syncFormat'] + + _setter("bucket_name", bucket_name) + _setter("region", region) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) if sync_format is not None: - pulumi.set(__self__, "sync_format", sync_format) + _setter("sync_format", sync_format) @property @pulumi.getter(name="bucketName") @@ -1138,8 +1556,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [SSM InstanceInformationStringFilter API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_InstanceInformationStringFilter.html). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetInstancesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1167,8 +1602,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the [SSM DescribeMaintenanceWindows API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeMaintenanceWindows.html#API_DescribeMaintenanceWindows_RequestSyntax). :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetMaintenanceWindowsFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -1202,11 +1654,50 @@ def __init__(__self__, *, :param bool enable_non_security: Boolean enabling the application of non-security updates. :param Sequence['GetPatchBaselineApprovalRulePatchFilterArgs'] patch_filters: The patch filter group that defines the criteria for the rule. """ - pulumi.set(__self__, "approve_after_days", approve_after_days) - pulumi.set(__self__, "approve_until_date", approve_until_date) - pulumi.set(__self__, "compliance_level", compliance_level) - pulumi.set(__self__, "enable_non_security", enable_non_security) - pulumi.set(__self__, "patch_filters", patch_filters) + GetPatchBaselineApprovalRuleResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + approve_after_days=approve_after_days, + approve_until_date=approve_until_date, + compliance_level=compliance_level, + enable_non_security=enable_non_security, + patch_filters=patch_filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + approve_after_days: Optional[int] = None, + approve_until_date: Optional[str] = None, + compliance_level: Optional[str] = None, + enable_non_security: Optional[bool] = None, + patch_filters: Optional[Sequence['outputs.GetPatchBaselineApprovalRulePatchFilterResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if approve_after_days is None and 'approveAfterDays' in kwargs: + approve_after_days = kwargs['approveAfterDays'] + if approve_after_days is None: + raise TypeError("Missing 'approve_after_days' argument") + if approve_until_date is None and 'approveUntilDate' in kwargs: + approve_until_date = kwargs['approveUntilDate'] + if approve_until_date is None: + raise TypeError("Missing 'approve_until_date' argument") + if compliance_level is None and 'complianceLevel' in kwargs: + compliance_level = kwargs['complianceLevel'] + if compliance_level is None: + raise TypeError("Missing 'compliance_level' argument") + if enable_non_security is None and 'enableNonSecurity' in kwargs: + enable_non_security = kwargs['enableNonSecurity'] + if enable_non_security is None: + raise TypeError("Missing 'enable_non_security' argument") + if patch_filters is None and 'patchFilters' in kwargs: + patch_filters = kwargs['patchFilters'] + if patch_filters is None: + raise TypeError("Missing 'patch_filters' argument") + + _setter("approve_after_days", approve_after_days) + _setter("approve_until_date", approve_until_date) + _setter("compliance_level", compliance_level) + _setter("enable_non_security", enable_non_security) + _setter("patch_filters", patch_filters) @property @pulumi.getter(name="approveAfterDays") @@ -1258,8 +1749,25 @@ def __init__(__self__, *, :param str key: The key for the filter. :param Sequence[str] values: The value for the filter. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + GetPatchBaselineApprovalRulePatchFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -1287,8 +1795,25 @@ def __init__(__self__, *, :param str key: The key for the filter. :param Sequence[str] values: The value for the filter. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + GetPatchBaselineGlobalFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -1318,9 +1843,30 @@ def __init__(__self__, *, :param str name: The name specified to identify the patch source. :param Sequence[str] products: The specific operating system versions a patch repository applies to. """ - pulumi.set(__self__, "configuration", configuration) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "products", products) + GetPatchBaselineSourceResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + configuration=configuration, + name=name, + products=products, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + configuration: Optional[str] = None, + name: Optional[str] = None, + products: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if configuration is None: + raise TypeError("Missing 'configuration' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if products is None: + raise TypeError("Missing 'products' argument") + + _setter("configuration", configuration) + _setter("name", name) + _setter("products", products) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ssm/parameter.py b/sdk/python/pulumi_aws/ssm/parameter.py index c478b91e178..120f3038568 100644 --- a/sdk/python/pulumi_aws/ssm/parameter.py +++ b/sdk/python/pulumi_aws/ssm/parameter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -46,32 +46,75 @@ def __init__(__self__, *, > **NOTE:** `aws:ssm:integration` data_type parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters. """ - pulumi.set(__self__, "type", type) + ParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + allowed_pattern=allowed_pattern, + arn=arn, + data_type=data_type, + description=description, + insecure_value=insecure_value, + key_id=key_id, + name=name, + overwrite=overwrite, + tags=tags, + tier=tier, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[Union[str, 'ParameterType']]] = None, + allowed_pattern: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + data_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + insecure_value: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + overwrite: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if allowed_pattern is None and 'allowedPattern' in kwargs: + allowed_pattern = kwargs['allowedPattern'] + if data_type is None and 'dataType' in kwargs: + data_type = kwargs['dataType'] + if insecure_value is None and 'insecureValue' in kwargs: + insecure_value = kwargs['insecureValue'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("type", type) if allowed_pattern is not None: - pulumi.set(__self__, "allowed_pattern", allowed_pattern) + _setter("allowed_pattern", allowed_pattern) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if data_type is not None: - pulumi.set(__self__, "data_type", data_type) + _setter("data_type", data_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if insecure_value is not None: - pulumi.set(__self__, "insecure_value", insecure_value) + _setter("insecure_value", insecure_value) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite is not None: warnings.warn("""this attribute has been deprecated""", DeprecationWarning) pulumi.log.warn("""overwrite is deprecated: this attribute has been deprecated""") if overwrite is not None: - pulumi.set(__self__, "overwrite", overwrite) + _setter("overwrite", overwrite) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tier is not None: - pulumi.set(__self__, "tier", tier) + _setter("tier", tier) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -263,40 +306,87 @@ def __init__(__self__, *, > **NOTE:** `aws:ssm:integration` data_type parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters. :param pulumi.Input[int] version: Version of the parameter. """ + _ParameterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + allowed_pattern=allowed_pattern, + arn=arn, + data_type=data_type, + description=description, + insecure_value=insecure_value, + key_id=key_id, + name=name, + overwrite=overwrite, + tags=tags, + tags_all=tags_all, + tier=tier, + type=type, + value=value, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allowed_pattern: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + data_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + insecure_value: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + overwrite: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[Union[str, 'ParameterType']]] = None, + value: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allowed_pattern is None and 'allowedPattern' in kwargs: + allowed_pattern = kwargs['allowedPattern'] + if data_type is None and 'dataType' in kwargs: + data_type = kwargs['dataType'] + if insecure_value is None and 'insecureValue' in kwargs: + insecure_value = kwargs['insecureValue'] + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if allowed_pattern is not None: - pulumi.set(__self__, "allowed_pattern", allowed_pattern) + _setter("allowed_pattern", allowed_pattern) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if data_type is not None: - pulumi.set(__self__, "data_type", data_type) + _setter("data_type", data_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if insecure_value is not None: - pulumi.set(__self__, "insecure_value", insecure_value) + _setter("insecure_value", insecure_value) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite is not None: warnings.warn("""this attribute has been deprecated""", DeprecationWarning) pulumi.log.warn("""overwrite is deprecated: this attribute has been deprecated""") if overwrite is not None: - pulumi.set(__self__, "overwrite", overwrite) + _setter("overwrite", overwrite) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tier is not None: - pulumi.set(__self__, "tier", tier) + _setter("tier", tier) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter(name="allowedPattern") @@ -630,6 +720,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ParameterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -663,9 +757,6 @@ def _internal_init(__self__, __props__.__dict__["insecure_value"] = insecure_value __props__.__dict__["key_id"] = key_id __props__.__dict__["name"] = name - if overwrite is not None and not opts.urn: - warnings.warn("""this attribute has been deprecated""", DeprecationWarning) - pulumi.log.warn("""overwrite is deprecated: this attribute has been deprecated""") __props__.__dict__["overwrite"] = overwrite __props__.__dict__["tags"] = tags __props__.__dict__["tier"] = tier diff --git a/sdk/python/pulumi_aws/ssm/patch_baseline.py b/sdk/python/pulumi_aws/ssm/patch_baseline.py index 6fb3e2e7c48..417da7df1f0 100644 --- a/sdk/python/pulumi_aws/ssm/patch_baseline.py +++ b/sdk/python/pulumi_aws/ssm/patch_baseline.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -72,30 +72,79 @@ def __init__(__self__, *, See `source` 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. """ + PatchBaselineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + approval_rules=approval_rules, + approved_patches=approved_patches, + approved_patches_compliance_level=approved_patches_compliance_level, + approved_patches_enable_non_security=approved_patches_enable_non_security, + description=description, + global_filters=global_filters, + name=name, + operating_system=operating_system, + rejected_patches=rejected_patches, + rejected_patches_action=rejected_patches_action, + sources=sources, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + approval_rules: Optional[pulumi.Input[Sequence[pulumi.Input['PatchBaselineApprovalRuleArgs']]]] = None, + approved_patches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + approved_patches_compliance_level: Optional[pulumi.Input[str]] = None, + approved_patches_enable_non_security: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + global_filters: Optional[pulumi.Input[Sequence[pulumi.Input['PatchBaselineGlobalFilterArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + operating_system: Optional[pulumi.Input[str]] = None, + rejected_patches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + rejected_patches_action: Optional[pulumi.Input[str]] = None, + sources: Optional[pulumi.Input[Sequence[pulumi.Input['PatchBaselineSourceArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if approval_rules is None and 'approvalRules' in kwargs: + approval_rules = kwargs['approvalRules'] + if approved_patches is None and 'approvedPatches' in kwargs: + approved_patches = kwargs['approvedPatches'] + if approved_patches_compliance_level is None and 'approvedPatchesComplianceLevel' in kwargs: + approved_patches_compliance_level = kwargs['approvedPatchesComplianceLevel'] + if approved_patches_enable_non_security is None and 'approvedPatchesEnableNonSecurity' in kwargs: + approved_patches_enable_non_security = kwargs['approvedPatchesEnableNonSecurity'] + if global_filters is None and 'globalFilters' in kwargs: + global_filters = kwargs['globalFilters'] + if operating_system is None and 'operatingSystem' in kwargs: + operating_system = kwargs['operatingSystem'] + if rejected_patches is None and 'rejectedPatches' in kwargs: + rejected_patches = kwargs['rejectedPatches'] + if rejected_patches_action is None and 'rejectedPatchesAction' in kwargs: + rejected_patches_action = kwargs['rejectedPatchesAction'] + if approval_rules is not None: - pulumi.set(__self__, "approval_rules", approval_rules) + _setter("approval_rules", approval_rules) if approved_patches is not None: - pulumi.set(__self__, "approved_patches", approved_patches) + _setter("approved_patches", approved_patches) if approved_patches_compliance_level is not None: - pulumi.set(__self__, "approved_patches_compliance_level", approved_patches_compliance_level) + _setter("approved_patches_compliance_level", approved_patches_compliance_level) if approved_patches_enable_non_security is not None: - pulumi.set(__self__, "approved_patches_enable_non_security", approved_patches_enable_non_security) + _setter("approved_patches_enable_non_security", approved_patches_enable_non_security) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if global_filters is not None: - pulumi.set(__self__, "global_filters", global_filters) + _setter("global_filters", global_filters) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if operating_system is not None: - pulumi.set(__self__, "operating_system", operating_system) + _setter("operating_system", operating_system) if rejected_patches is not None: - pulumi.set(__self__, "rejected_patches", rejected_patches) + _setter("rejected_patches", rejected_patches) if rejected_patches_action is not None: - pulumi.set(__self__, "rejected_patches_action", rejected_patches_action) + _setter("rejected_patches_action", rejected_patches_action) if sources is not None: - pulumi.set(__self__, "sources", sources) + _setter("sources", sources) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="approvalRules") @@ -334,37 +383,92 @@ def __init__(__self__, *, :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. """ + _PatchBaselineState._configure( + lambda key, value: pulumi.set(__self__, key, value), + approval_rules=approval_rules, + approved_patches=approved_patches, + approved_patches_compliance_level=approved_patches_compliance_level, + approved_patches_enable_non_security=approved_patches_enable_non_security, + arn=arn, + description=description, + global_filters=global_filters, + name=name, + operating_system=operating_system, + rejected_patches=rejected_patches, + rejected_patches_action=rejected_patches_action, + sources=sources, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + approval_rules: Optional[pulumi.Input[Sequence[pulumi.Input['PatchBaselineApprovalRuleArgs']]]] = None, + approved_patches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + approved_patches_compliance_level: Optional[pulumi.Input[str]] = None, + approved_patches_enable_non_security: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + global_filters: Optional[pulumi.Input[Sequence[pulumi.Input['PatchBaselineGlobalFilterArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + operating_system: Optional[pulumi.Input[str]] = None, + rejected_patches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + rejected_patches_action: Optional[pulumi.Input[str]] = None, + sources: Optional[pulumi.Input[Sequence[pulumi.Input['PatchBaselineSourceArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if approval_rules is None and 'approvalRules' in kwargs: + approval_rules = kwargs['approvalRules'] + if approved_patches is None and 'approvedPatches' in kwargs: + approved_patches = kwargs['approvedPatches'] + if approved_patches_compliance_level is None and 'approvedPatchesComplianceLevel' in kwargs: + approved_patches_compliance_level = kwargs['approvedPatchesComplianceLevel'] + if approved_patches_enable_non_security is None and 'approvedPatchesEnableNonSecurity' in kwargs: + approved_patches_enable_non_security = kwargs['approvedPatchesEnableNonSecurity'] + if global_filters is None and 'globalFilters' in kwargs: + global_filters = kwargs['globalFilters'] + if operating_system is None and 'operatingSystem' in kwargs: + operating_system = kwargs['operatingSystem'] + if rejected_patches is None and 'rejectedPatches' in kwargs: + rejected_patches = kwargs['rejectedPatches'] + if rejected_patches_action is None and 'rejectedPatchesAction' in kwargs: + rejected_patches_action = kwargs['rejectedPatchesAction'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if approval_rules is not None: - pulumi.set(__self__, "approval_rules", approval_rules) + _setter("approval_rules", approval_rules) if approved_patches is not None: - pulumi.set(__self__, "approved_patches", approved_patches) + _setter("approved_patches", approved_patches) if approved_patches_compliance_level is not None: - pulumi.set(__self__, "approved_patches_compliance_level", approved_patches_compliance_level) + _setter("approved_patches_compliance_level", approved_patches_compliance_level) if approved_patches_enable_non_security is not None: - pulumi.set(__self__, "approved_patches_enable_non_security", approved_patches_enable_non_security) + _setter("approved_patches_enable_non_security", approved_patches_enable_non_security) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if global_filters is not None: - pulumi.set(__self__, "global_filters", global_filters) + _setter("global_filters", global_filters) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if operating_system is not None: - pulumi.set(__self__, "operating_system", operating_system) + _setter("operating_system", operating_system) if rejected_patches is not None: - pulumi.set(__self__, "rejected_patches", rejected_patches) + _setter("rejected_patches", rejected_patches) if rejected_patches_action is not None: - pulumi.set(__self__, "rejected_patches_action", rejected_patches_action) + _setter("rejected_patches_action", rejected_patches_action) if sources is not None: - pulumi.set(__self__, "sources", sources) + _setter("sources", sources) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="approvalRules") @@ -981,6 +1085,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PatchBaselineArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssm/patch_group.py b/sdk/python/pulumi_aws/ssm/patch_group.py index 397b12f325c..8cdca6ea284 100644 --- a/sdk/python/pulumi_aws/ssm/patch_group.py +++ b/sdk/python/pulumi_aws/ssm/patch_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PatchGroupArgs', 'PatchGroup'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] baseline_id: The ID of the patch baseline to register the patch group with. :param pulumi.Input[str] patch_group: The name of the patch group that should be registered with the patch baseline. """ - pulumi.set(__self__, "baseline_id", baseline_id) - pulumi.set(__self__, "patch_group", patch_group) + PatchGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + baseline_id=baseline_id, + patch_group=patch_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + baseline_id: Optional[pulumi.Input[str]] = None, + patch_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if baseline_id is None and 'baselineId' in kwargs: + baseline_id = kwargs['baselineId'] + if baseline_id is None: + raise TypeError("Missing 'baseline_id' argument") + if patch_group is None and 'patchGroup' in kwargs: + patch_group = kwargs['patchGroup'] + if patch_group is None: + raise TypeError("Missing 'patch_group' argument") + + _setter("baseline_id", baseline_id) + _setter("patch_group", patch_group) @property @pulumi.getter(name="baselineId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] baseline_id: The ID of the patch baseline to register the patch group with. :param pulumi.Input[str] patch_group: The name of the patch group that should be registered with the patch baseline. """ + _PatchGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + baseline_id=baseline_id, + patch_group=patch_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + baseline_id: Optional[pulumi.Input[str]] = None, + patch_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if baseline_id is None and 'baselineId' in kwargs: + baseline_id = kwargs['baselineId'] + if patch_group is None and 'patchGroup' in kwargs: + patch_group = kwargs['patchGroup'] + if baseline_id is not None: - pulumi.set(__self__, "baseline_id", baseline_id) + _setter("baseline_id", baseline_id) if patch_group is not None: - pulumi.set(__self__, "patch_group", patch_group) + _setter("patch_group", patch_group) @property @pulumi.getter(name="baselineId") @@ -148,6 +186,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PatchGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssm/resource_data_sync.py b/sdk/python/pulumi_aws/ssm/resource_data_sync.py index 6fd2627f670..39fbabac995 100644 --- a/sdk/python/pulumi_aws/ssm/resource_data_sync.py +++ b/sdk/python/pulumi_aws/ssm/resource_data_sync.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,9 +23,26 @@ def __init__(__self__, *, :param pulumi.Input['ResourceDataSyncS3DestinationArgs'] s3_destination: Amazon S3 configuration details for the sync. :param pulumi.Input[str] name: Name for the configuration. """ - pulumi.set(__self__, "s3_destination", s3_destination) + ResourceDataSyncArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_destination=s3_destination, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_destination: Optional[pulumi.Input['ResourceDataSyncS3DestinationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_destination is None and 's3Destination' in kwargs: + s3_destination = kwargs['s3Destination'] + if s3_destination is None: + raise TypeError("Missing 's3_destination' argument") + + _setter("s3_destination", s3_destination) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="s3Destination") @@ -62,10 +79,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name for the configuration. :param pulumi.Input['ResourceDataSyncS3DestinationArgs'] s3_destination: Amazon S3 configuration details for the sync. """ + _ResourceDataSyncState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + s3_destination=s3_destination, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + s3_destination: Optional[pulumi.Input['ResourceDataSyncS3DestinationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_destination is None and 's3Destination' in kwargs: + s3_destination = kwargs['s3Destination'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if s3_destination is not None: - pulumi.set(__self__, "s3_destination", s3_destination) + _setter("s3_destination", s3_destination) @property @pulumi.getter @@ -229,6 +261,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourceDataSyncArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -246,6 +282,7 @@ def _internal_init(__self__, __props__ = ResourceDataSyncArgs.__new__(ResourceDataSyncArgs) __props__.__dict__["name"] = name + s3_destination = _utilities.configure(s3_destination, ResourceDataSyncS3DestinationArgs, True) if s3_destination is None and not opts.urn: raise TypeError("Missing required property 's3_destination'") __props__.__dict__["s3_destination"] = s3_destination diff --git a/sdk/python/pulumi_aws/ssm/service_setting.py b/sdk/python/pulumi_aws/ssm/service_setting.py index 713527192e9..268c8dfaf72 100644 --- a/sdk/python/pulumi_aws/ssm/service_setting.py +++ b/sdk/python/pulumi_aws/ssm/service_setting.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ServiceSettingArgs', 'ServiceSetting'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] setting_id: ID of the service setting. :param pulumi.Input[str] setting_value: Value of the service setting. """ - pulumi.set(__self__, "setting_id", setting_id) - pulumi.set(__self__, "setting_value", setting_value) + ServiceSettingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + setting_id=setting_id, + setting_value=setting_value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + setting_id: Optional[pulumi.Input[str]] = None, + setting_value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if setting_id is None and 'settingId' in kwargs: + setting_id = kwargs['settingId'] + if setting_id is None: + raise TypeError("Missing 'setting_id' argument") + if setting_value is None and 'settingValue' in kwargs: + setting_value = kwargs['settingValue'] + if setting_value is None: + raise TypeError("Missing 'setting_value' argument") + + _setter("setting_id", setting_id) + _setter("setting_value", setting_value) @property @pulumi.getter(name="settingId") @@ -63,14 +84,35 @@ def __init__(__self__, *, :param pulumi.Input[str] setting_value: Value of the service setting. :param pulumi.Input[str] status: Status of the service setting. Value can be `Default`, `Customized` or `PendingUpdate`. """ + _ServiceSettingState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + setting_id=setting_id, + setting_value=setting_value, + status=status, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + setting_id: Optional[pulumi.Input[str]] = None, + setting_value: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if setting_id is None and 'settingId' in kwargs: + setting_id = kwargs['settingId'] + if setting_value is None and 'settingValue' in kwargs: + setting_value = kwargs['settingValue'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if setting_id is not None: - pulumi.set(__self__, "setting_id", setting_id) + _setter("setting_id", setting_id) if setting_value is not None: - pulumi.set(__self__, "setting_value", setting_value) + _setter("setting_value", setting_value) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) @property @pulumi.getter @@ -194,6 +236,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceSettingArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssmcontacts/_inputs.py b/sdk/python/pulumi_aws/ssmcontacts/_inputs.py index 40f45a17dd8..ce6d37d93f8 100644 --- a/sdk/python/pulumi_aws/ssmcontacts/_inputs.py +++ b/sdk/python/pulumi_aws/ssmcontacts/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,7 +24,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] simple_address: Details to engage this contact channel. The expected format depends on the contact channel type and is described in the [`ContactChannelAddress` section of the SSM Contacts API Reference](https://docs.aws.amazon.com/incident-manager/latest/APIReference/API_SSMContacts_ContactChannelAddress.html). """ - pulumi.set(__self__, "simple_address", simple_address) + ContactChannelDeliveryAddressArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_address=simple_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_address: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_address is None and 'simpleAddress' in kwargs: + simple_address = kwargs['simpleAddress'] + if simple_address is None: + raise TypeError("Missing 'simple_address' argument") + + _setter("simple_address", simple_address) @property @pulumi.getter(name="simpleAddress") @@ -44,9 +59,26 @@ class PlanStageArgs: def __init__(__self__, *, duration_in_minutes: pulumi.Input[int], targets: Optional[pulumi.Input[Sequence[pulumi.Input['PlanStageTargetArgs']]]] = None): - pulumi.set(__self__, "duration_in_minutes", duration_in_minutes) + PlanStageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration_in_minutes=duration_in_minutes, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration_in_minutes: Optional[pulumi.Input[int]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input['PlanStageTargetArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration_in_minutes is None and 'durationInMinutes' in kwargs: + duration_in_minutes = kwargs['durationInMinutes'] + if duration_in_minutes is None: + raise TypeError("Missing 'duration_in_minutes' argument") + + _setter("duration_in_minutes", duration_in_minutes) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) @property @pulumi.getter(name="durationInMinutes") @@ -72,10 +104,27 @@ class PlanStageTargetArgs: def __init__(__self__, *, channel_target_info: Optional[pulumi.Input['PlanStageTargetChannelTargetInfoArgs']] = None, contact_target_info: Optional[pulumi.Input['PlanStageTargetContactTargetInfoArgs']] = None): + PlanStageTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_target_info=channel_target_info, + contact_target_info=contact_target_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_target_info: Optional[pulumi.Input['PlanStageTargetChannelTargetInfoArgs']] = None, + contact_target_info: Optional[pulumi.Input['PlanStageTargetContactTargetInfoArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_target_info is None and 'channelTargetInfo' in kwargs: + channel_target_info = kwargs['channelTargetInfo'] + if contact_target_info is None and 'contactTargetInfo' in kwargs: + contact_target_info = kwargs['contactTargetInfo'] + if channel_target_info is not None: - pulumi.set(__self__, "channel_target_info", channel_target_info) + _setter("channel_target_info", channel_target_info) if contact_target_info is not None: - pulumi.set(__self__, "contact_target_info", contact_target_info) + _setter("contact_target_info", contact_target_info) @property @pulumi.getter(name="channelTargetInfo") @@ -101,9 +150,28 @@ class PlanStageTargetChannelTargetInfoArgs: def __init__(__self__, *, contact_channel_id: pulumi.Input[str], retry_interval_in_minutes: Optional[pulumi.Input[int]] = None): - pulumi.set(__self__, "contact_channel_id", contact_channel_id) + PlanStageTargetChannelTargetInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_channel_id=contact_channel_id, + retry_interval_in_minutes=retry_interval_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_channel_id: Optional[pulumi.Input[str]] = None, + retry_interval_in_minutes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_channel_id is None and 'contactChannelId' in kwargs: + contact_channel_id = kwargs['contactChannelId'] + if contact_channel_id is None: + raise TypeError("Missing 'contact_channel_id' argument") + if retry_interval_in_minutes is None and 'retryIntervalInMinutes' in kwargs: + retry_interval_in_minutes = kwargs['retryIntervalInMinutes'] + + _setter("contact_channel_id", contact_channel_id) if retry_interval_in_minutes is not None: - pulumi.set(__self__, "retry_interval_in_minutes", retry_interval_in_minutes) + _setter("retry_interval_in_minutes", retry_interval_in_minutes) @property @pulumi.getter(name="contactChannelId") @@ -132,9 +200,28 @@ def __init__(__self__, *, """ :param pulumi.Input[str] contact_id: The Amazon Resource Name (ARN) of the contact or escalation plan. """ - pulumi.set(__self__, "is_essential", is_essential) + PlanStageTargetContactTargetInfoArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_essential=is_essential, + contact_id=contact_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_essential: Optional[pulumi.Input[bool]] = None, + contact_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_essential is None and 'isEssential' in kwargs: + is_essential = kwargs['isEssential'] + if is_essential is None: + raise TypeError("Missing 'is_essential' argument") + if contact_id is None and 'contactId' in kwargs: + contact_id = kwargs['contactId'] + + _setter("is_essential", is_essential) if contact_id is not None: - pulumi.set(__self__, "contact_id", contact_id) + _setter("contact_id", contact_id) @property @pulumi.getter(name="isEssential") diff --git a/sdk/python/pulumi_aws/ssmcontacts/contact.py b/sdk/python/pulumi_aws/ssmcontacts/contact.py index 18e893eb7eb..ef6adb6c9f8 100644 --- a/sdk/python/pulumi_aws/ssmcontacts/contact.py +++ b/sdk/python/pulumi_aws/ssmcontacts/contact.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ContactArgs', 'Contact'] @@ -28,12 +28,35 @@ def __init__(__self__, *, :param pulumi.Input[str] display_name: Full friendly name of the contact or escalation plan. If set, must be between 1 and 255 characters, and may contain alphanumerics, underscores (`_`), hyphens (`-`), periods (`.`), and spaces. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. """ - pulumi.set(__self__, "alias", alias) - pulumi.set(__self__, "type", type) + ContactArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + type=type, + display_name=display_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if alias is None: + raise TypeError("Missing 'alias' argument") + if type is None: + raise TypeError("Missing 'type' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + + _setter("alias", alias) + _setter("type", type) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -108,21 +131,46 @@ def __init__(__self__, *, The following arguments are optional: """ + _ContactState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + arn=arn, + display_name=display_name, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -317,6 +365,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContactArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssmcontacts/contact_channel.py b/sdk/python/pulumi_aws/ssmcontacts/contact_channel.py index b9b32ef00e6..1af12e39b2d 100644 --- a/sdk/python/pulumi_aws/ssmcontacts/contact_channel.py +++ b/sdk/python/pulumi_aws/ssmcontacts/contact_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,11 +27,38 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of the contact channel. One of `SMS`, `VOICE` or `EMAIL`. :param pulumi.Input[str] name: Name of the contact channel. Must be between 1 and 255 characters, and may contain alphanumerics, underscores (`_`), hyphens (`-`), periods (`.`), and spaces. """ - pulumi.set(__self__, "contact_id", contact_id) - pulumi.set(__self__, "delivery_address", delivery_address) - pulumi.set(__self__, "type", type) + ContactChannelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_id=contact_id, + delivery_address=delivery_address, + type=type, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_id: Optional[pulumi.Input[str]] = None, + delivery_address: Optional[pulumi.Input['ContactChannelDeliveryAddressArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_id is None and 'contactId' in kwargs: + contact_id = kwargs['contactId'] + if contact_id is None: + raise TypeError("Missing 'contact_id' argument") + if delivery_address is None and 'deliveryAddress' in kwargs: + delivery_address = kwargs['deliveryAddress'] + if delivery_address is None: + raise TypeError("Missing 'delivery_address' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("contact_id", contact_id) + _setter("delivery_address", delivery_address) + _setter("type", type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="contactId") @@ -100,18 +127,45 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the contact channel. Must be between 1 and 255 characters, and may contain alphanumerics, underscores (`_`), hyphens (`-`), periods (`.`), and spaces. :param pulumi.Input[str] type: Type of the contact channel. One of `SMS`, `VOICE` or `EMAIL`. """ + _ContactChannelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + activation_status=activation_status, + arn=arn, + contact_id=contact_id, + delivery_address=delivery_address, + name=name, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activation_status: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + contact_id: Optional[pulumi.Input[str]] = None, + delivery_address: Optional[pulumi.Input['ContactChannelDeliveryAddressArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activation_status is None and 'activationStatus' in kwargs: + activation_status = kwargs['activationStatus'] + if contact_id is None and 'contactId' in kwargs: + contact_id = kwargs['contactId'] + if delivery_address is None and 'deliveryAddress' in kwargs: + delivery_address = kwargs['deliveryAddress'] + if activation_status is not None: - pulumi.set(__self__, "activation_status", activation_status) + _setter("activation_status", activation_status) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if contact_id is not None: - pulumi.set(__self__, "contact_id", contact_id) + _setter("contact_id", contact_id) if delivery_address is not None: - pulumi.set(__self__, "delivery_address", delivery_address) + _setter("delivery_address", delivery_address) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="activationStatus") @@ -303,6 +357,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ContactChannelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -324,6 +382,7 @@ def _internal_init(__self__, if contact_id is None and not opts.urn: raise TypeError("Missing required property 'contact_id'") __props__.__dict__["contact_id"] = contact_id + delivery_address = _utilities.configure(delivery_address, ContactChannelDeliveryAddressArgs, True) if delivery_address is None and not opts.urn: raise TypeError("Missing required property 'delivery_address'") __props__.__dict__["delivery_address"] = delivery_address diff --git a/sdk/python/pulumi_aws/ssmcontacts/get_contact.py b/sdk/python/pulumi_aws/ssmcontacts/get_contact.py index 195f8507c46..487a1216fa4 100644 --- a/sdk/python/pulumi_aws/ssmcontacts/get_contact.py +++ b/sdk/python/pulumi_aws/ssmcontacts/get_contact.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ssmcontacts/get_contact_channel.py b/sdk/python/pulumi_aws/ssmcontacts/get_contact_channel.py index 9f6b6e8f31b..66c894ea8d3 100644 --- a/sdk/python/pulumi_aws/ssmcontacts/get_contact_channel.py +++ b/sdk/python/pulumi_aws/ssmcontacts/get_contact_channel.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ssmcontacts/get_plan.py b/sdk/python/pulumi_aws/ssmcontacts/get_plan.py index e4bf1039288..c860223b0df 100644 --- a/sdk/python/pulumi_aws/ssmcontacts/get_plan.py +++ b/sdk/python/pulumi_aws/ssmcontacts/get_plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ssmcontacts/outputs.py b/sdk/python/pulumi_aws/ssmcontacts/outputs.py index a54d264fa7c..e39a34fbfcf 100644 --- a/sdk/python/pulumi_aws/ssmcontacts/outputs.py +++ b/sdk/python/pulumi_aws/ssmcontacts/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -47,7 +47,22 @@ def __init__(__self__, *, """ :param str simple_address: Details to engage this contact channel. The expected format depends on the contact channel type and is described in the [`ContactChannelAddress` section of the SSM Contacts API Reference](https://docs.aws.amazon.com/incident-manager/latest/APIReference/API_SSMContacts_ContactChannelAddress.html). """ - pulumi.set(__self__, "simple_address", simple_address) + ContactChannelDeliveryAddress._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_address=simple_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_address is None and 'simpleAddress' in kwargs: + simple_address = kwargs['simpleAddress'] + if simple_address is None: + raise TypeError("Missing 'simple_address' argument") + + _setter("simple_address", simple_address) @property @pulumi.getter(name="simpleAddress") @@ -80,9 +95,26 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, duration_in_minutes: int, targets: Optional[Sequence['outputs.PlanStageTarget']] = None): - pulumi.set(__self__, "duration_in_minutes", duration_in_minutes) + PlanStage._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration_in_minutes=duration_in_minutes, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration_in_minutes: Optional[int] = None, + targets: Optional[Sequence['outputs.PlanStageTarget']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration_in_minutes is None and 'durationInMinutes' in kwargs: + duration_in_minutes = kwargs['durationInMinutes'] + if duration_in_minutes is None: + raise TypeError("Missing 'duration_in_minutes' argument") + + _setter("duration_in_minutes", duration_in_minutes) if targets is not None: - pulumi.set(__self__, "targets", targets) + _setter("targets", targets) @property @pulumi.getter(name="durationInMinutes") @@ -119,10 +151,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, channel_target_info: Optional['outputs.PlanStageTargetChannelTargetInfo'] = None, contact_target_info: Optional['outputs.PlanStageTargetContactTargetInfo'] = None): + PlanStageTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_target_info=channel_target_info, + contact_target_info=contact_target_info, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_target_info: Optional['outputs.PlanStageTargetChannelTargetInfo'] = None, + contact_target_info: Optional['outputs.PlanStageTargetContactTargetInfo'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_target_info is None and 'channelTargetInfo' in kwargs: + channel_target_info = kwargs['channelTargetInfo'] + if contact_target_info is None and 'contactTargetInfo' in kwargs: + contact_target_info = kwargs['contactTargetInfo'] + if channel_target_info is not None: - pulumi.set(__self__, "channel_target_info", channel_target_info) + _setter("channel_target_info", channel_target_info) if contact_target_info is not None: - pulumi.set(__self__, "contact_target_info", contact_target_info) + _setter("contact_target_info", contact_target_info) @property @pulumi.getter(name="channelTargetInfo") @@ -159,9 +208,28 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, contact_channel_id: str, retry_interval_in_minutes: Optional[int] = None): - pulumi.set(__self__, "contact_channel_id", contact_channel_id) + PlanStageTargetChannelTargetInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_channel_id=contact_channel_id, + retry_interval_in_minutes=retry_interval_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_channel_id: Optional[str] = None, + retry_interval_in_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_channel_id is None and 'contactChannelId' in kwargs: + contact_channel_id = kwargs['contactChannelId'] + if contact_channel_id is None: + raise TypeError("Missing 'contact_channel_id' argument") + if retry_interval_in_minutes is None and 'retryIntervalInMinutes' in kwargs: + retry_interval_in_minutes = kwargs['retryIntervalInMinutes'] + + _setter("contact_channel_id", contact_channel_id) if retry_interval_in_minutes is not None: - pulumi.set(__self__, "retry_interval_in_minutes", retry_interval_in_minutes) + _setter("retry_interval_in_minutes", retry_interval_in_minutes) @property @pulumi.getter(name="contactChannelId") @@ -201,9 +269,28 @@ def __init__(__self__, *, """ :param str contact_id: The Amazon Resource Name (ARN) of the contact or escalation plan. """ - pulumi.set(__self__, "is_essential", is_essential) + PlanStageTargetContactTargetInfo._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_essential=is_essential, + contact_id=contact_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_essential: Optional[bool] = None, + contact_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if is_essential is None and 'isEssential' in kwargs: + is_essential = kwargs['isEssential'] + if is_essential is None: + raise TypeError("Missing 'is_essential' argument") + if contact_id is None and 'contactId' in kwargs: + contact_id = kwargs['contactId'] + + _setter("is_essential", is_essential) if contact_id is not None: - pulumi.set(__self__, "contact_id", contact_id) + _setter("contact_id", contact_id) @property @pulumi.getter(name="isEssential") @@ -223,7 +310,22 @@ def contact_id(self) -> Optional[str]: class GetContactChannelDeliveryAddressResult(dict): def __init__(__self__, *, simple_address: str): - pulumi.set(__self__, "simple_address", simple_address) + GetContactChannelDeliveryAddressResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + simple_address=simple_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + simple_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if simple_address is None and 'simpleAddress' in kwargs: + simple_address = kwargs['simpleAddress'] + if simple_address is None: + raise TypeError("Missing 'simple_address' argument") + + _setter("simple_address", simple_address) @property @pulumi.getter(name="simpleAddress") @@ -236,8 +338,27 @@ class GetPlanStageResult(dict): def __init__(__self__, *, duration_in_minutes: int, targets: Sequence['outputs.GetPlanStageTargetResult']): - pulumi.set(__self__, "duration_in_minutes", duration_in_minutes) - pulumi.set(__self__, "targets", targets) + GetPlanStageResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + duration_in_minutes=duration_in_minutes, + targets=targets, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + duration_in_minutes: Optional[int] = None, + targets: Optional[Sequence['outputs.GetPlanStageTargetResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if duration_in_minutes is None and 'durationInMinutes' in kwargs: + duration_in_minutes = kwargs['durationInMinutes'] + if duration_in_minutes is None: + raise TypeError("Missing 'duration_in_minutes' argument") + if targets is None: + raise TypeError("Missing 'targets' argument") + + _setter("duration_in_minutes", duration_in_minutes) + _setter("targets", targets) @property @pulumi.getter(name="durationInMinutes") @@ -255,8 +376,29 @@ class GetPlanStageTargetResult(dict): def __init__(__self__, *, channel_target_infos: Sequence['outputs.GetPlanStageTargetChannelTargetInfoResult'], contact_target_infos: Sequence['outputs.GetPlanStageTargetContactTargetInfoResult']): - pulumi.set(__self__, "channel_target_infos", channel_target_infos) - pulumi.set(__self__, "contact_target_infos", contact_target_infos) + GetPlanStageTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + channel_target_infos=channel_target_infos, + contact_target_infos=contact_target_infos, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + channel_target_infos: Optional[Sequence['outputs.GetPlanStageTargetChannelTargetInfoResult']] = None, + contact_target_infos: Optional[Sequence['outputs.GetPlanStageTargetContactTargetInfoResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if channel_target_infos is None and 'channelTargetInfos' in kwargs: + channel_target_infos = kwargs['channelTargetInfos'] + if channel_target_infos is None: + raise TypeError("Missing 'channel_target_infos' argument") + if contact_target_infos is None and 'contactTargetInfos' in kwargs: + contact_target_infos = kwargs['contactTargetInfos'] + if contact_target_infos is None: + raise TypeError("Missing 'contact_target_infos' argument") + + _setter("channel_target_infos", channel_target_infos) + _setter("contact_target_infos", contact_target_infos) @property @pulumi.getter(name="channelTargetInfos") @@ -274,8 +416,29 @@ class GetPlanStageTargetChannelTargetInfoResult(dict): def __init__(__self__, *, contact_channel_id: str, retry_interval_in_minutes: int): - pulumi.set(__self__, "contact_channel_id", contact_channel_id) - pulumi.set(__self__, "retry_interval_in_minutes", retry_interval_in_minutes) + GetPlanStageTargetChannelTargetInfoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_channel_id=contact_channel_id, + retry_interval_in_minutes=retry_interval_in_minutes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_channel_id: Optional[str] = None, + retry_interval_in_minutes: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_channel_id is None and 'contactChannelId' in kwargs: + contact_channel_id = kwargs['contactChannelId'] + if contact_channel_id is None: + raise TypeError("Missing 'contact_channel_id' argument") + if retry_interval_in_minutes is None and 'retryIntervalInMinutes' in kwargs: + retry_interval_in_minutes = kwargs['retryIntervalInMinutes'] + if retry_interval_in_minutes is None: + raise TypeError("Missing 'retry_interval_in_minutes' argument") + + _setter("contact_channel_id", contact_channel_id) + _setter("retry_interval_in_minutes", retry_interval_in_minutes) @property @pulumi.getter(name="contactChannelId") @@ -296,8 +459,29 @@ def __init__(__self__, *, """ :param str contact_id: The Amazon Resource Name (ARN) of the contact or escalation plan. """ - pulumi.set(__self__, "contact_id", contact_id) - pulumi.set(__self__, "is_essential", is_essential) + GetPlanStageTargetContactTargetInfoResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_id=contact_id, + is_essential=is_essential, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_id: Optional[str] = None, + is_essential: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_id is None and 'contactId' in kwargs: + contact_id = kwargs['contactId'] + if contact_id is None: + raise TypeError("Missing 'contact_id' argument") + if is_essential is None and 'isEssential' in kwargs: + is_essential = kwargs['isEssential'] + if is_essential is None: + raise TypeError("Missing 'is_essential' argument") + + _setter("contact_id", contact_id) + _setter("is_essential", is_essential) @property @pulumi.getter(name="contactId") diff --git a/sdk/python/pulumi_aws/ssmcontacts/plan.py b/sdk/python/pulumi_aws/ssmcontacts/plan.py index a1a73424fb7..1d94a97b143 100644 --- a/sdk/python/pulumi_aws/ssmcontacts/plan.py +++ b/sdk/python/pulumi_aws/ssmcontacts/plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[str] contact_id: The Amazon Resource Name (ARN) of the contact or escalation plan. :param pulumi.Input[Sequence[pulumi.Input['PlanStageArgs']]] stages: List of stages. A contact has an engagement plan with stages that contact specified contact channels. An escalation plan uses stages that contact specified contacts. """ - pulumi.set(__self__, "contact_id", contact_id) - pulumi.set(__self__, "stages", stages) + PlanArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_id=contact_id, + stages=stages, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_id: Optional[pulumi.Input[str]] = None, + stages: Optional[pulumi.Input[Sequence[pulumi.Input['PlanStageArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_id is None and 'contactId' in kwargs: + contact_id = kwargs['contactId'] + if contact_id is None: + raise TypeError("Missing 'contact_id' argument") + if stages is None: + raise TypeError("Missing 'stages' argument") + + _setter("contact_id", contact_id) + _setter("stages", stages) @property @pulumi.getter(name="contactId") @@ -61,10 +80,25 @@ def __init__(__self__, *, :param pulumi.Input[str] contact_id: The Amazon Resource Name (ARN) of the contact or escalation plan. :param pulumi.Input[Sequence[pulumi.Input['PlanStageArgs']]] stages: List of stages. A contact has an engagement plan with stages that contact specified contact channels. An escalation plan uses stages that contact specified contacts. """ + _PlanState._configure( + lambda key, value: pulumi.set(__self__, key, value), + contact_id=contact_id, + stages=stages, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contact_id: Optional[pulumi.Input[str]] = None, + stages: Optional[pulumi.Input[Sequence[pulumi.Input['PlanStageArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contact_id is None and 'contactId' in kwargs: + contact_id = kwargs['contactId'] + if contact_id is not None: - pulumi.set(__self__, "contact_id", contact_id) + _setter("contact_id", contact_id) if stages is not None: - pulumi.set(__self__, "stages", stages) + _setter("stages", stages) @property @pulumi.getter(name="contactId") @@ -270,6 +304,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PlanArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssmincidents/_inputs.py b/sdk/python/pulumi_aws/ssmincidents/_inputs.py index 2141b77be82..6366ec782c1 100644 --- a/sdk/python/pulumi_aws/ssmincidents/_inputs.py +++ b/sdk/python/pulumi_aws/ssmincidents/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -36,13 +36,36 @@ def __init__(__self__, *, * Valid Values: `ACTIVE` | `CREATING` | `UPDATING` | `DELETING` | `FAILED` :param pulumi.Input[str] status_message: More information about the status of a Region. """ - pulumi.set(__self__, "name", name) + ReplicationSetRegionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + kms_key_arn=kms_key_arn, + status=status, + status_message=status_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + status_message: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + + _setter("name", name) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_message is not None: - pulumi.set(__self__, "status_message", status_message) + _setter("status_message", status_message) @property @pulumi.getter @@ -103,8 +126,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ResponsePlanActionSsmAutomationArgs']]] ssm_automations: The Systems Manager automation document to start as the runbook at the beginning of the incident. The following values are supported: """ + ResponsePlanActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ssm_automations=ssm_automations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ssm_automations: Optional[pulumi.Input[Sequence[pulumi.Input['ResponsePlanActionSsmAutomationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ssm_automations is None and 'ssmAutomations' in kwargs: + ssm_automations = kwargs['ssmAutomations'] + if ssm_automations is not None: - pulumi.set(__self__, "ssm_automations", ssm_automations) + _setter("ssm_automations", ssm_automations) @property @pulumi.getter(name="ssmAutomations") @@ -136,16 +172,51 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ResponsePlanActionSsmAutomationParameterArgs']]] parameters: The key-value pair parameters to use when the automation document runs. The following values are supported: :param pulumi.Input[str] target_account: The account that the automation document runs in. This can be in either the management account or an application account. """ - pulumi.set(__self__, "document_name", document_name) - pulumi.set(__self__, "role_arn", role_arn) + ResponsePlanActionSsmAutomationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + document_name=document_name, + role_arn=role_arn, + document_version=document_version, + dynamic_parameters=dynamic_parameters, + parameters=parameters, + target_account=target_account, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + document_name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + document_version: Optional[pulumi.Input[str]] = None, + dynamic_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['ResponsePlanActionSsmAutomationParameterArgs']]]] = None, + target_account: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if document_name is None and 'documentName' in kwargs: + document_name = kwargs['documentName'] + if document_name is None: + raise TypeError("Missing 'document_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if dynamic_parameters is None and 'dynamicParameters' in kwargs: + dynamic_parameters = kwargs['dynamicParameters'] + if target_account is None and 'targetAccount' in kwargs: + target_account = kwargs['targetAccount'] + + _setter("document_name", document_name) + _setter("role_arn", role_arn) if document_version is not None: - pulumi.set(__self__, "document_version", document_version) + _setter("document_version", document_version) if dynamic_parameters is not None: - pulumi.set(__self__, "dynamic_parameters", dynamic_parameters) + _setter("dynamic_parameters", dynamic_parameters) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if target_account is not None: - pulumi.set(__self__, "target_account", target_account) + _setter("target_account", target_account) @property @pulumi.getter(name="documentName") @@ -229,8 +300,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the response plan. :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The values for the associated parameter name. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + ResponsePlanActionSsmAutomationParameterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -274,16 +362,47 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ResponsePlanIncidentTemplateNotificationTargetArgs']]] notification_targets: The Amazon Simple Notification Service (Amazon SNS) targets that this incident notifies when it is updated. The `notification_target` configuration block supports the following argument: :param pulumi.Input[str] summary: The summary of an incident. """ - pulumi.set(__self__, "impact", impact) - pulumi.set(__self__, "title", title) + ResponsePlanIncidentTemplateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + impact=impact, + title=title, + dedupe_string=dedupe_string, + incident_tags=incident_tags, + notification_targets=notification_targets, + summary=summary, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + impact: Optional[pulumi.Input[int]] = None, + title: Optional[pulumi.Input[str]] = None, + dedupe_string: Optional[pulumi.Input[str]] = None, + incident_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + notification_targets: Optional[pulumi.Input[Sequence[pulumi.Input['ResponsePlanIncidentTemplateNotificationTargetArgs']]]] = None, + summary: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if impact is None: + raise TypeError("Missing 'impact' argument") + if title is None: + raise TypeError("Missing 'title' argument") + if dedupe_string is None and 'dedupeString' in kwargs: + dedupe_string = kwargs['dedupeString'] + if incident_tags is None and 'incidentTags' in kwargs: + incident_tags = kwargs['incidentTags'] + if notification_targets is None and 'notificationTargets' in kwargs: + notification_targets = kwargs['notificationTargets'] + + _setter("impact", impact) + _setter("title", title) if dedupe_string is not None: - pulumi.set(__self__, "dedupe_string", dedupe_string) + _setter("dedupe_string", dedupe_string) if incident_tags is not None: - pulumi.set(__self__, "incident_tags", incident_tags) + _setter("incident_tags", incident_tags) if notification_targets is not None: - pulumi.set(__self__, "notification_targets", notification_targets) + _setter("notification_targets", notification_targets) if summary is not None: - pulumi.set(__self__, "summary", summary) + _setter("summary", summary) @property @pulumi.getter @@ -367,7 +486,22 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + ResponsePlanIncidentTemplateNotificationTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sns_topic_arn=sns_topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sns_topic_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if sns_topic_arn is None: + raise TypeError("Missing 'sns_topic_arn' argument") + + _setter("sns_topic_arn", sns_topic_arn) @property @pulumi.getter(name="snsTopicArn") @@ -391,8 +525,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ResponsePlanIntegrationPagerdutyArgs']]] pagerduties: Details about the PagerDuty configuration for a response plan. The following values are supported: """ + ResponsePlanIntegrationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pagerduties=pagerduties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pagerduties: Optional[pulumi.Input[Sequence[pulumi.Input['ResponsePlanIntegrationPagerdutyArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pagerduties is not None: - pulumi.set(__self__, "pagerduties", pagerduties) + _setter("pagerduties", pagerduties) @property @pulumi.getter @@ -420,9 +565,34 @@ def __init__(__self__, *, For more information about the constraints for each field, see [CreateResponsePlan](https://docs.aws.amazon.com/incident-manager/latest/APIReference/API_CreateResponsePlan.html) in the *AWS Systems Manager Incident Manager API Reference*. :param pulumi.Input[str] service_id: The ID of the PagerDuty service that the response plan associated with the incident at launch. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "secret_id", secret_id) - pulumi.set(__self__, "service_id", service_id) + ResponsePlanIntegrationPagerdutyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + secret_id=secret_id, + service_id=service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + secret_id: Optional[pulumi.Input[str]] = None, + service_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if secret_id is None and 'secretId' in kwargs: + secret_id = kwargs['secretId'] + if secret_id is None: + raise TypeError("Missing 'secret_id' argument") + if service_id is None and 'serviceId' in kwargs: + service_id = kwargs['serviceId'] + if service_id is None: + raise TypeError("Missing 'service_id' argument") + + _setter("name", name) + _setter("secret_id", secret_id) + _setter("service_id", service_id) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ssmincidents/get_replication_set.py b/sdk/python/pulumi_aws/ssmincidents/get_replication_set.py index 357e8e87eba..8c4045aabc0 100644 --- a/sdk/python/pulumi_aws/ssmincidents/get_replication_set.py +++ b/sdk/python/pulumi_aws/ssmincidents/get_replication_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ssmincidents/get_response_plan.py b/sdk/python/pulumi_aws/ssmincidents/get_response_plan.py index 3ed95747f0e..32bc842f40e 100644 --- a/sdk/python/pulumi_aws/ssmincidents/get_response_plan.py +++ b/sdk/python/pulumi_aws/ssmincidents/get_response_plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/ssmincidents/outputs.py b/sdk/python/pulumi_aws/ssmincidents/outputs.py index b48563dac77..4a3840e1adb 100644 --- a/sdk/python/pulumi_aws/ssmincidents/outputs.py +++ b/sdk/python/pulumi_aws/ssmincidents/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -64,13 +64,36 @@ def __init__(__self__, *, * Valid Values: `ACTIVE` | `CREATING` | `UPDATING` | `DELETING` | `FAILED` :param str status_message: More information about the status of a Region. """ - pulumi.set(__self__, "name", name) + ReplicationSetRegion._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + kms_key_arn=kms_key_arn, + status=status, + status_message=status_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + kms_key_arn: Optional[str] = None, + status: Optional[str] = None, + status_message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + + _setter("name", name) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_message is not None: - pulumi.set(__self__, "status_message", status_message) + _setter("status_message", status_message) @property @pulumi.getter @@ -132,8 +155,21 @@ def __init__(__self__, *, """ :param Sequence['ResponsePlanActionSsmAutomationArgs'] ssm_automations: The Systems Manager automation document to start as the runbook at the beginning of the incident. The following values are supported: """ + ResponsePlanAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + ssm_automations=ssm_automations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ssm_automations: Optional[Sequence['outputs.ResponsePlanActionSsmAutomation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ssm_automations is None and 'ssmAutomations' in kwargs: + ssm_automations = kwargs['ssmAutomations'] + if ssm_automations is not None: - pulumi.set(__self__, "ssm_automations", ssm_automations) + _setter("ssm_automations", ssm_automations) @property @pulumi.getter(name="ssmAutomations") @@ -186,16 +222,51 @@ def __init__(__self__, *, :param Sequence['ResponsePlanActionSsmAutomationParameterArgs'] parameters: The key-value pair parameters to use when the automation document runs. The following values are supported: :param str target_account: The account that the automation document runs in. This can be in either the management account or an application account. """ - pulumi.set(__self__, "document_name", document_name) - pulumi.set(__self__, "role_arn", role_arn) + ResponsePlanActionSsmAutomation._configure( + lambda key, value: pulumi.set(__self__, key, value), + document_name=document_name, + role_arn=role_arn, + document_version=document_version, + dynamic_parameters=dynamic_parameters, + parameters=parameters, + target_account=target_account, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + document_name: Optional[str] = None, + role_arn: Optional[str] = None, + document_version: Optional[str] = None, + dynamic_parameters: Optional[Mapping[str, str]] = None, + parameters: Optional[Sequence['outputs.ResponsePlanActionSsmAutomationParameter']] = None, + target_account: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if document_name is None and 'documentName' in kwargs: + document_name = kwargs['documentName'] + if document_name is None: + raise TypeError("Missing 'document_name' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if dynamic_parameters is None and 'dynamicParameters' in kwargs: + dynamic_parameters = kwargs['dynamicParameters'] + if target_account is None and 'targetAccount' in kwargs: + target_account = kwargs['targetAccount'] + + _setter("document_name", document_name) + _setter("role_arn", role_arn) if document_version is not None: - pulumi.set(__self__, "document_version", document_version) + _setter("document_version", document_version) if dynamic_parameters is not None: - pulumi.set(__self__, "dynamic_parameters", dynamic_parameters) + _setter("dynamic_parameters", dynamic_parameters) if parameters is not None: - pulumi.set(__self__, "parameters", parameters) + _setter("parameters", parameters) if target_account is not None: - pulumi.set(__self__, "target_account", target_account) + _setter("target_account", target_account) @property @pulumi.getter(name="documentName") @@ -255,8 +326,25 @@ def __init__(__self__, *, :param str name: The name of the response plan. :param Sequence[str] values: The values for the associated parameter name. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + ResponsePlanActionSsmAutomationParameter._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -313,16 +401,47 @@ def __init__(__self__, *, :param Sequence['ResponsePlanIncidentTemplateNotificationTargetArgs'] notification_targets: The Amazon Simple Notification Service (Amazon SNS) targets that this incident notifies when it is updated. The `notification_target` configuration block supports the following argument: :param str summary: The summary of an incident. """ - pulumi.set(__self__, "impact", impact) - pulumi.set(__self__, "title", title) + ResponsePlanIncidentTemplate._configure( + lambda key, value: pulumi.set(__self__, key, value), + impact=impact, + title=title, + dedupe_string=dedupe_string, + incident_tags=incident_tags, + notification_targets=notification_targets, + summary=summary, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + impact: Optional[int] = None, + title: Optional[str] = None, + dedupe_string: Optional[str] = None, + incident_tags: Optional[Mapping[str, str]] = None, + notification_targets: Optional[Sequence['outputs.ResponsePlanIncidentTemplateNotificationTarget']] = None, + summary: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if impact is None: + raise TypeError("Missing 'impact' argument") + if title is None: + raise TypeError("Missing 'title' argument") + if dedupe_string is None and 'dedupeString' in kwargs: + dedupe_string = kwargs['dedupeString'] + if incident_tags is None and 'incidentTags' in kwargs: + incident_tags = kwargs['incidentTags'] + if notification_targets is None and 'notificationTargets' in kwargs: + notification_targets = kwargs['notificationTargets'] + + _setter("impact", impact) + _setter("title", title) if dedupe_string is not None: - pulumi.set(__self__, "dedupe_string", dedupe_string) + _setter("dedupe_string", dedupe_string) if incident_tags is not None: - pulumi.set(__self__, "incident_tags", incident_tags) + _setter("incident_tags", incident_tags) if notification_targets is not None: - pulumi.set(__self__, "notification_targets", notification_targets) + _setter("notification_targets", notification_targets) if summary is not None: - pulumi.set(__self__, "summary", summary) + _setter("summary", summary) @property @pulumi.getter @@ -399,7 +518,22 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + ResponsePlanIncidentTemplateNotificationTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + sns_topic_arn=sns_topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sns_topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if sns_topic_arn is None: + raise TypeError("Missing 'sns_topic_arn' argument") + + _setter("sns_topic_arn", sns_topic_arn) @property @pulumi.getter(name="snsTopicArn") @@ -419,8 +553,19 @@ def __init__(__self__, *, """ :param Sequence['ResponsePlanIntegrationPagerdutyArgs'] pagerduties: Details about the PagerDuty configuration for a response plan. The following values are supported: """ + ResponsePlanIntegration._configure( + lambda key, value: pulumi.set(__self__, key, value), + pagerduties=pagerduties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pagerduties: Optional[Sequence['outputs.ResponsePlanIntegrationPagerduty']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pagerduties is not None: - pulumi.set(__self__, "pagerduties", pagerduties) + _setter("pagerduties", pagerduties) @property @pulumi.getter @@ -463,9 +608,34 @@ def __init__(__self__, *, For more information about the constraints for each field, see [CreateResponsePlan](https://docs.aws.amazon.com/incident-manager/latest/APIReference/API_CreateResponsePlan.html) in the *AWS Systems Manager Incident Manager API Reference*. :param str service_id: The ID of the PagerDuty service that the response plan associated with the incident at launch. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "secret_id", secret_id) - pulumi.set(__self__, "service_id", service_id) + ResponsePlanIntegrationPagerduty._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + secret_id=secret_id, + service_id=service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + secret_id: Optional[str] = None, + service_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if secret_id is None and 'secretId' in kwargs: + secret_id = kwargs['secretId'] + if secret_id is None: + raise TypeError("Missing 'secret_id' argument") + if service_id is None and 'serviceId' in kwargs: + service_id = kwargs['serviceId'] + if service_id is None: + raise TypeError("Missing 'service_id' argument") + + _setter("name", name) + _setter("secret_id", secret_id) + _setter("service_id", service_id) @property @pulumi.getter @@ -508,10 +678,39 @@ def __init__(__self__, *, * Valid Values: `ACTIVE` | `CREATING` | `UPDATING` | `DELETING` | `FAILED` :param str status_message: More information about the status of a Region. """ - pulumi.set(__self__, "kms_key_arn", kms_key_arn) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "status", status) - pulumi.set(__self__, "status_message", status_message) + GetReplicationSetRegionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + kms_key_arn=kms_key_arn, + name=name, + status=status, + status_message=status_message, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + kms_key_arn: Optional[str] = None, + name: Optional[str] = None, + status: Optional[str] = None, + status_message: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if kms_key_arn is None: + raise TypeError("Missing 'kms_key_arn' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if status is None: + raise TypeError("Missing 'status' argument") + if status_message is None and 'statusMessage' in kwargs: + status_message = kwargs['statusMessage'] + if status_message is None: + raise TypeError("Missing 'status_message' argument") + + _setter("kms_key_arn", kms_key_arn) + _setter("name", name) + _setter("status", status) + _setter("status_message", status_message) @property @pulumi.getter(name="kmsKeyArn") @@ -554,7 +753,22 @@ def __init__(__self__, *, """ :param Sequence['GetResponsePlanActionSsmAutomationArgs'] ssm_automations: The Systems Manager automation document to start as the runbook at the beginning of the incident. The following values are supported: """ - pulumi.set(__self__, "ssm_automations", ssm_automations) + GetResponsePlanActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + ssm_automations=ssm_automations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ssm_automations: Optional[Sequence['outputs.GetResponsePlanActionSsmAutomationResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ssm_automations is None and 'ssmAutomations' in kwargs: + ssm_automations = kwargs['ssmAutomations'] + if ssm_automations is None: + raise TypeError("Missing 'ssm_automations' argument") + + _setter("ssm_automations", ssm_automations) @property @pulumi.getter(name="ssmAutomations") @@ -582,12 +796,55 @@ def __init__(__self__, *, :param str role_arn: The Amazon Resource Name (ARN) of the role that the automation document assumes when it runs commands. :param str target_account: The account that runs the automation document. This can be in either the management account or an application account. """ - pulumi.set(__self__, "document_name", document_name) - pulumi.set(__self__, "document_version", document_version) - pulumi.set(__self__, "dynamic_parameters", dynamic_parameters) - pulumi.set(__self__, "parameters", parameters) - pulumi.set(__self__, "role_arn", role_arn) - pulumi.set(__self__, "target_account", target_account) + GetResponsePlanActionSsmAutomationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + document_name=document_name, + document_version=document_version, + dynamic_parameters=dynamic_parameters, + parameters=parameters, + role_arn=role_arn, + target_account=target_account, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + document_name: Optional[str] = None, + document_version: Optional[str] = None, + dynamic_parameters: Optional[Mapping[str, str]] = None, + parameters: Optional[Sequence['outputs.GetResponsePlanActionSsmAutomationParameterResult']] = None, + role_arn: Optional[str] = None, + target_account: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if document_name is None and 'documentName' in kwargs: + document_name = kwargs['documentName'] + if document_name is None: + raise TypeError("Missing 'document_name' argument") + if document_version is None and 'documentVersion' in kwargs: + document_version = kwargs['documentVersion'] + if document_version is None: + raise TypeError("Missing 'document_version' argument") + if dynamic_parameters is None and 'dynamicParameters' in kwargs: + dynamic_parameters = kwargs['dynamicParameters'] + if dynamic_parameters is None: + raise TypeError("Missing 'dynamic_parameters' argument") + if parameters is None: + raise TypeError("Missing 'parameters' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if target_account is None and 'targetAccount' in kwargs: + target_account = kwargs['targetAccount'] + if target_account is None: + raise TypeError("Missing 'target_account' argument") + + _setter("document_name", document_name) + _setter("document_version", document_version) + _setter("dynamic_parameters", dynamic_parameters) + _setter("parameters", parameters) + _setter("role_arn", role_arn) + _setter("target_account", target_account) @property @pulumi.getter(name="documentName") @@ -647,8 +904,25 @@ def __init__(__self__, *, :param str name: The name of the PagerDuty configuration. :param Sequence[str] values: The values for the associated parameter name. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetResponsePlanActionSsmAutomationParameterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -684,12 +958,51 @@ def __init__(__self__, *, :param str summary: The summary of an incident. :param str title: The title of a generated incident. """ - pulumi.set(__self__, "dedupe_string", dedupe_string) - pulumi.set(__self__, "impact", impact) - pulumi.set(__self__, "incident_tags", incident_tags) - pulumi.set(__self__, "notification_targets", notification_targets) - pulumi.set(__self__, "summary", summary) - pulumi.set(__self__, "title", title) + GetResponsePlanIncidentTemplateResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + dedupe_string=dedupe_string, + impact=impact, + incident_tags=incident_tags, + notification_targets=notification_targets, + summary=summary, + title=title, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + dedupe_string: Optional[str] = None, + impact: Optional[int] = None, + incident_tags: Optional[Mapping[str, str]] = None, + notification_targets: Optional[Sequence['outputs.GetResponsePlanIncidentTemplateNotificationTargetResult']] = None, + summary: Optional[str] = None, + title: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if dedupe_string is None and 'dedupeString' in kwargs: + dedupe_string = kwargs['dedupeString'] + if dedupe_string is None: + raise TypeError("Missing 'dedupe_string' argument") + if impact is None: + raise TypeError("Missing 'impact' argument") + if incident_tags is None and 'incidentTags' in kwargs: + incident_tags = kwargs['incidentTags'] + if incident_tags is None: + raise TypeError("Missing 'incident_tags' argument") + if notification_targets is None and 'notificationTargets' in kwargs: + notification_targets = kwargs['notificationTargets'] + if notification_targets is None: + raise TypeError("Missing 'notification_targets' argument") + if summary is None: + raise TypeError("Missing 'summary' argument") + if title is None: + raise TypeError("Missing 'title' argument") + + _setter("dedupe_string", dedupe_string) + _setter("impact", impact) + _setter("incident_tags", incident_tags) + _setter("notification_targets", notification_targets) + _setter("summary", summary) + _setter("title", title) @property @pulumi.getter(name="dedupeString") @@ -747,7 +1060,22 @@ def __init__(__self__, *, """ :param str sns_topic_arn: The ARN of the Amazon SNS topic. """ - pulumi.set(__self__, "sns_topic_arn", sns_topic_arn) + GetResponsePlanIncidentTemplateNotificationTargetResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + sns_topic_arn=sns_topic_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sns_topic_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sns_topic_arn is None and 'snsTopicArn' in kwargs: + sns_topic_arn = kwargs['snsTopicArn'] + if sns_topic_arn is None: + raise TypeError("Missing 'sns_topic_arn' argument") + + _setter("sns_topic_arn", sns_topic_arn) @property @pulumi.getter(name="snsTopicArn") @@ -765,7 +1093,20 @@ def __init__(__self__, *, """ :param Sequence['GetResponsePlanIntegrationPagerdutyArgs'] pagerduties: Details about the PagerDuty configuration for a response plan. The following values are supported: """ - pulumi.set(__self__, "pagerduties", pagerduties) + GetResponsePlanIntegrationResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + pagerduties=pagerduties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pagerduties: Optional[Sequence['outputs.GetResponsePlanIntegrationPagerdutyResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pagerduties is None: + raise TypeError("Missing 'pagerduties' argument") + + _setter("pagerduties", pagerduties) @property @pulumi.getter @@ -787,9 +1128,34 @@ def __init__(__self__, *, :param str secret_id: The ID of the AWS Secrets Manager secret that stores your PagerDuty key — either a General Access REST API Key or User Token REST API Key — and other user credentials. :param str service_id: The ID of the PagerDuty service that the response plan associates with an incident when it launches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "secret_id", secret_id) - pulumi.set(__self__, "service_id", service_id) + GetResponsePlanIntegrationPagerdutyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + secret_id=secret_id, + service_id=service_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + secret_id: Optional[str] = None, + service_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if secret_id is None and 'secretId' in kwargs: + secret_id = kwargs['secretId'] + if secret_id is None: + raise TypeError("Missing 'secret_id' argument") + if service_id is None and 'serviceId' in kwargs: + service_id = kwargs['serviceId'] + if service_id is None: + raise TypeError("Missing 'service_id' argument") + + _setter("name", name) + _setter("secret_id", secret_id) + _setter("service_id", service_id) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ssmincidents/replication_set.py b/sdk/python/pulumi_aws/ssmincidents/replication_set.py index 59c27a3cf75..3703ea00de6 100644 --- a/sdk/python/pulumi_aws/ssmincidents/replication_set.py +++ b/sdk/python/pulumi_aws/ssmincidents/replication_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -24,9 +24,24 @@ def __init__(__self__, *, For information about the maximum allowed number of Regions and tag value constraints, see [CreateReplicationSet in the *AWS Systems Manager Incident Manager API Reference*](https://docs.aws.amazon.com/incident-manager/latest/APIReference/API_CreateReplicationSet.html). """ - pulumi.set(__self__, "regions", regions) + ReplicationSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + regions=regions, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regions: Optional[pulumi.Input[Sequence[pulumi.Input['ReplicationSetRegionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regions is None: + raise TypeError("Missing 'regions' argument") + + _setter("regions", regions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -76,25 +91,58 @@ def __init__(__self__, *, For information about the maximum allowed number of Regions and tag value constraints, see [CreateReplicationSet in the *AWS Systems Manager Incident Manager API Reference*](https://docs.aws.amazon.com/incident-manager/latest/APIReference/API_CreateReplicationSet.html). :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. """ + _ReplicationSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_by=created_by, + deletion_protected=deletion_protected, + last_modified_by=last_modified_by, + regions=regions, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + deletion_protected: Optional[pulumi.Input[bool]] = None, + last_modified_by: Optional[pulumi.Input[str]] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input['ReplicationSetRegionArgs']]]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_by is None and 'createdBy' in kwargs: + created_by = kwargs['createdBy'] + if deletion_protected is None and 'deletionProtected' in kwargs: + deletion_protected = kwargs['deletionProtected'] + if last_modified_by is None and 'lastModifiedBy' in kwargs: + last_modified_by = kwargs['lastModifiedBy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_by is not None: - pulumi.set(__self__, "created_by", created_by) + _setter("created_by", created_by) if deletion_protected is not None: - pulumi.set(__self__, "deletion_protected", deletion_protected) + _setter("deletion_protected", deletion_protected) if last_modified_by is not None: - pulumi.set(__self__, "last_modified_by", last_modified_by) + _setter("last_modified_by", last_modified_by) if regions is not None: - pulumi.set(__self__, "regions", regions) + _setter("regions", regions) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -378,6 +426,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ReplicationSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssmincidents/response_plan.py b/sdk/python/pulumi_aws/ssmincidents/response_plan.py index 61cebb2f9f3..10db0a65d48 100644 --- a/sdk/python/pulumi_aws/ssmincidents/response_plan.py +++ b/sdk/python/pulumi_aws/ssmincidents/response_plan.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -34,21 +34,54 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the response plan. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: The tags applied to the response plan. """ - pulumi.set(__self__, "incident_template", incident_template) + ResponsePlanArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + incident_template=incident_template, + action=action, + chat_channels=chat_channels, + display_name=display_name, + engagements=engagements, + integration=integration, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + incident_template: Optional[pulumi.Input['ResponsePlanIncidentTemplateArgs']] = None, + action: Optional[pulumi.Input['ResponsePlanActionArgs']] = None, + chat_channels: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + display_name: Optional[pulumi.Input[str]] = None, + engagements: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + integration: Optional[pulumi.Input['ResponsePlanIntegrationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if incident_template is None and 'incidentTemplate' in kwargs: + incident_template = kwargs['incidentTemplate'] + if incident_template is None: + raise TypeError("Missing 'incident_template' argument") + if chat_channels is None and 'chatChannels' in kwargs: + chat_channels = kwargs['chatChannels'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + + _setter("incident_template", incident_template) if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if chat_channels is not None: - pulumi.set(__self__, "chat_channels", chat_channels) + _setter("chat_channels", chat_channels) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if engagements is not None: - pulumi.set(__self__, "engagements", engagements) + _setter("engagements", engagements) if integration is not None: - pulumi.set(__self__, "integration", integration) + _setter("integration", integration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="incidentTemplate") @@ -169,29 +202,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: The tags applied to the response plan. :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. """ + _ResponsePlanState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + arn=arn, + chat_channels=chat_channels, + display_name=display_name, + engagements=engagements, + incident_template=incident_template, + integration=integration, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['ResponsePlanActionArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + chat_channels: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + display_name: Optional[pulumi.Input[str]] = None, + engagements: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + incident_template: Optional[pulumi.Input['ResponsePlanIncidentTemplateArgs']] = None, + integration: Optional[pulumi.Input['ResponsePlanIntegrationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if chat_channels is None and 'chatChannels' in kwargs: + chat_channels = kwargs['chatChannels'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if incident_template is None and 'incidentTemplate' in kwargs: + incident_template = kwargs['incidentTemplate'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if chat_channels is not None: - pulumi.set(__self__, "chat_channels", chat_channels) + _setter("chat_channels", chat_channels) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if engagements is not None: - pulumi.set(__self__, "engagements", engagements) + _setter("engagements", engagements) if incident_template is not None: - pulumi.set(__self__, "incident_template", incident_template) + _setter("incident_template", incident_template) if integration is not None: - pulumi.set(__self__, "integration", integration) + _setter("integration", integration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -540,6 +610,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResponsePlanArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -562,13 +636,16 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ResponsePlanArgs.__new__(ResponsePlanArgs) + action = _utilities.configure(action, ResponsePlanActionArgs, True) __props__.__dict__["action"] = action __props__.__dict__["chat_channels"] = chat_channels __props__.__dict__["display_name"] = display_name __props__.__dict__["engagements"] = engagements + incident_template = _utilities.configure(incident_template, ResponsePlanIncidentTemplateArgs, True) if incident_template is None and not opts.urn: raise TypeError("Missing required property 'incident_template'") __props__.__dict__["incident_template"] = incident_template + integration = _utilities.configure(integration, ResponsePlanIntegrationArgs, True) __props__.__dict__["integration"] = integration __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/ssoadmin/_inputs.py b/sdk/python/pulumi_aws/ssoadmin/_inputs.py index 146adb24301..0f3548dd2ac 100644 --- a/sdk/python/pulumi_aws/ssoadmin/_inputs.py +++ b/sdk/python/pulumi_aws/ssoadmin/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -26,9 +26,24 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the customer managed IAM Policy to be attached. :param pulumi.Input[str] path: The path to the IAM policy to be attached. The default is `/`. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) for more information. """ - pulumi.set(__self__, "name", name) + CustomerManagedPolicyAttachmentCustomerManagedPolicyReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter @@ -64,8 +79,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The name of the attribute associated with your identities in your identity source. This is used to map a specified attribute in your identity source with an attribute in AWS SSO. :param pulumi.Input[Sequence[pulumi.Input['InstanceAccessControlAttributesAttributeValueArgs']]] values: The value used for mapping a specified attribute to an identity source. See AccessControlAttributeValue """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + InstanceAccessControlAttributesAttributeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + values: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceAccessControlAttributesAttributeValueArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -99,7 +131,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] sources: The identity source to use when mapping a specified attribute to AWS SSO. """ - pulumi.set(__self__, "sources", sources) + InstanceAccessControlAttributesAttributeValueArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + sources=sources, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sources is None: + raise TypeError("Missing 'sources' argument") + + _setter("sources", sources) @property @pulumi.getter @@ -123,10 +168,27 @@ def __init__(__self__, *, :param pulumi.Input['PermissionsBoundaryAttachmentPermissionsBoundaryCustomerManagedPolicyReferenceArgs'] customer_managed_policy_reference: Specifies the name and path of a customer managed policy. See below. :param pulumi.Input[str] managed_policy_arn: AWS-managed IAM policy ARN to use as the permissions boundary. """ + PermissionsBoundaryAttachmentPermissionsBoundaryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_managed_policy_reference=customer_managed_policy_reference, + managed_policy_arn=managed_policy_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_managed_policy_reference: Optional[pulumi.Input['PermissionsBoundaryAttachmentPermissionsBoundaryCustomerManagedPolicyReferenceArgs']] = None, + managed_policy_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_managed_policy_reference is None and 'customerManagedPolicyReference' in kwargs: + customer_managed_policy_reference = kwargs['customerManagedPolicyReference'] + if managed_policy_arn is None and 'managedPolicyArn' in kwargs: + managed_policy_arn = kwargs['managedPolicyArn'] + if customer_managed_policy_reference is not None: - pulumi.set(__self__, "customer_managed_policy_reference", customer_managed_policy_reference) + _setter("customer_managed_policy_reference", customer_managed_policy_reference) if managed_policy_arn is not None: - pulumi.set(__self__, "managed_policy_arn", managed_policy_arn) + _setter("managed_policy_arn", managed_policy_arn) @property @pulumi.getter(name="customerManagedPolicyReference") @@ -162,9 +224,24 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the customer managed IAM Policy to be attached. :param pulumi.Input[str] path: The path to the IAM policy to be attached. The default is `/`. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) for more information. """ - pulumi.set(__self__, "name", name) + PermissionsBoundaryAttachmentPermissionsBoundaryCustomerManagedPolicyReferenceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ssoadmin/account_assignment.py b/sdk/python/pulumi_aws/ssoadmin/account_assignment.py index 43f885c69bd..1e97ca49ea1 100644 --- a/sdk/python/pulumi_aws/ssoadmin/account_assignment.py +++ b/sdk/python/pulumi_aws/ssoadmin/account_assignment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccountAssignmentArgs', 'AccountAssignment'] @@ -29,13 +29,56 @@ def __init__(__self__, *, :param pulumi.Input[str] target_id: An AWS account identifier, typically a 10-12 digit string. :param pulumi.Input[str] target_type: The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. """ - pulumi.set(__self__, "instance_arn", instance_arn) - pulumi.set(__self__, "permission_set_arn", permission_set_arn) - pulumi.set(__self__, "principal_id", principal_id) - pulumi.set(__self__, "principal_type", principal_type) - pulumi.set(__self__, "target_id", target_id) + AccountAssignmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_arn=instance_arn, + permission_set_arn=permission_set_arn, + principal_id=principal_id, + principal_type=principal_type, + target_id=target_id, + target_type=target_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + principal_id: Optional[pulumi.Input[str]] = None, + principal_type: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + target_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if instance_arn is None: + raise TypeError("Missing 'instance_arn' argument") + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if permission_set_arn is None: + raise TypeError("Missing 'permission_set_arn' argument") + if principal_id is None and 'principalId' in kwargs: + principal_id = kwargs['principalId'] + if principal_id is None: + raise TypeError("Missing 'principal_id' argument") + if principal_type is None and 'principalType' in kwargs: + principal_type = kwargs['principalType'] + if principal_type is None: + raise TypeError("Missing 'principal_type' argument") + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if target_id is None: + raise TypeError("Missing 'target_id' argument") + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + + _setter("instance_arn", instance_arn) + _setter("permission_set_arn", permission_set_arn) + _setter("principal_id", principal_id) + _setter("principal_type", principal_type) + _setter("target_id", target_id) if target_type is not None: - pulumi.set(__self__, "target_type", target_type) + _setter("target_type", target_type) @property @pulumi.getter(name="instanceArn") @@ -128,18 +171,51 @@ def __init__(__self__, *, :param pulumi.Input[str] target_id: An AWS account identifier, typically a 10-12 digit string. :param pulumi.Input[str] target_type: The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. """ + _AccountAssignmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_arn=instance_arn, + permission_set_arn=permission_set_arn, + principal_id=principal_id, + principal_type=principal_type, + target_id=target_id, + target_type=target_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + principal_id: Optional[pulumi.Input[str]] = None, + principal_type: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + target_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if principal_id is None and 'principalId' in kwargs: + principal_id = kwargs['principalId'] + if principal_type is None and 'principalType' in kwargs: + principal_type = kwargs['principalType'] + if target_id is None and 'targetId' in kwargs: + target_id = kwargs['targetId'] + if target_type is None and 'targetType' in kwargs: + target_type = kwargs['targetType'] + if instance_arn is not None: - pulumi.set(__self__, "instance_arn", instance_arn) + _setter("instance_arn", instance_arn) if permission_set_arn is not None: - pulumi.set(__self__, "permission_set_arn", permission_set_arn) + _setter("permission_set_arn", permission_set_arn) if principal_id is not None: - pulumi.set(__self__, "principal_id", principal_id) + _setter("principal_id", principal_id) if principal_type is not None: - pulumi.set(__self__, "principal_type", principal_type) + _setter("principal_type", principal_type) if target_id is not None: - pulumi.set(__self__, "target_id", target_id) + _setter("target_id", target_id) if target_type is not None: - pulumi.set(__self__, "target_type", target_type) + _setter("target_type", target_type) @property @pulumi.getter(name="instanceArn") @@ -273,6 +349,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccountAssignmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssoadmin/customer_managed_policy_attachment.py b/sdk/python/pulumi_aws/ssoadmin/customer_managed_policy_attachment.py index 359865009d7..66b4626fb3d 100644 --- a/sdk/python/pulumi_aws/ssoadmin/customer_managed_policy_attachment.py +++ b/sdk/python/pulumi_aws/ssoadmin/customer_managed_policy_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_arn: The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed. :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set. """ - pulumi.set(__self__, "customer_managed_policy_reference", customer_managed_policy_reference) - pulumi.set(__self__, "instance_arn", instance_arn) - pulumi.set(__self__, "permission_set_arn", permission_set_arn) + CustomerManagedPolicyAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_managed_policy_reference=customer_managed_policy_reference, + instance_arn=instance_arn, + permission_set_arn=permission_set_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_managed_policy_reference: Optional[pulumi.Input['CustomerManagedPolicyAttachmentCustomerManagedPolicyReferenceArgs']] = None, + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_managed_policy_reference is None and 'customerManagedPolicyReference' in kwargs: + customer_managed_policy_reference = kwargs['customerManagedPolicyReference'] + if customer_managed_policy_reference is None: + raise TypeError("Missing 'customer_managed_policy_reference' argument") + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if instance_arn is None: + raise TypeError("Missing 'instance_arn' argument") + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if permission_set_arn is None: + raise TypeError("Missing 'permission_set_arn' argument") + + _setter("customer_managed_policy_reference", customer_managed_policy_reference) + _setter("instance_arn", instance_arn) + _setter("permission_set_arn", permission_set_arn) @property @pulumi.getter(name="customerManagedPolicyReference") @@ -78,12 +105,33 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_arn: The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed. :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set. """ + _CustomerManagedPolicyAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_managed_policy_reference=customer_managed_policy_reference, + instance_arn=instance_arn, + permission_set_arn=permission_set_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_managed_policy_reference: Optional[pulumi.Input['CustomerManagedPolicyAttachmentCustomerManagedPolicyReferenceArgs']] = None, + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_managed_policy_reference is None and 'customerManagedPolicyReference' in kwargs: + customer_managed_policy_reference = kwargs['customerManagedPolicyReference'] + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if customer_managed_policy_reference is not None: - pulumi.set(__self__, "customer_managed_policy_reference", customer_managed_policy_reference) + _setter("customer_managed_policy_reference", customer_managed_policy_reference) if instance_arn is not None: - pulumi.set(__self__, "instance_arn", instance_arn) + _setter("instance_arn", instance_arn) if permission_set_arn is not None: - pulumi.set(__self__, "permission_set_arn", permission_set_arn) + _setter("permission_set_arn", permission_set_arn) @property @pulumi.getter(name="customerManagedPolicyReference") @@ -179,6 +227,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CustomerManagedPolicyAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -196,6 +248,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = CustomerManagedPolicyAttachmentArgs.__new__(CustomerManagedPolicyAttachmentArgs) + customer_managed_policy_reference = _utilities.configure(customer_managed_policy_reference, CustomerManagedPolicyAttachmentCustomerManagedPolicyReferenceArgs, True) if customer_managed_policy_reference is None and not opts.urn: raise TypeError("Missing required property 'customer_managed_policy_reference'") __props__.__dict__["customer_managed_policy_reference"] = customer_managed_policy_reference diff --git a/sdk/python/pulumi_aws/ssoadmin/get_instances.py b/sdk/python/pulumi_aws/ssoadmin/get_instances.py index 21f1fbcd516..75cd6f4f1ad 100644 --- a/sdk/python/pulumi_aws/ssoadmin/get_instances.py +++ b/sdk/python/pulumi_aws/ssoadmin/get_instances.py @@ -6,13 +6,14 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ 'GetInstancesResult', 'AwaitableGetInstancesResult', 'get_instances', + 'get_instances_output', ] @pulumi.output_type @@ -79,3 +80,11 @@ def get_instances(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIn arns=pulumi.get(__ret__, 'arns'), id=pulumi.get(__ret__, 'id'), identity_store_ids=pulumi.get(__ret__, 'identity_store_ids')) + + +@_utilities.lift_output_func(get_instances) +def get_instances_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetInstancesResult]: + """ + Use this data source to get ARNs and Identity Store IDs of Single Sign-On (SSO) Instances. + """ + ... diff --git a/sdk/python/pulumi_aws/ssoadmin/get_permission_set.py b/sdk/python/pulumi_aws/ssoadmin/get_permission_set.py index 3de1c1181fc..f5595c34381 100644 --- a/sdk/python/pulumi_aws/ssoadmin/get_permission_set.py +++ b/sdk/python/pulumi_aws/ssoadmin/get_permission_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/ssoadmin/instance_access_control_attributes.py b/sdk/python/pulumi_aws/ssoadmin/instance_access_control_attributes.py index f7dc3b57a3d..473d930bc27 100644 --- a/sdk/python/pulumi_aws/ssoadmin/instance_access_control_attributes.py +++ b/sdk/python/pulumi_aws/ssoadmin/instance_access_control_attributes.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['InstanceAccessControlAttributesAttributeArgs']]] attributes: See AccessControlAttribute for more details. :param pulumi.Input[str] instance_arn: The Amazon Resource Name (ARN) of the SSO Instance. """ - pulumi.set(__self__, "attributes", attributes) - pulumi.set(__self__, "instance_arn", instance_arn) + InstanceAccessControlAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + instance_arn=instance_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceAccessControlAttributesAttributeArgs']]]] = None, + instance_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if attributes is None: + raise TypeError("Missing 'attributes' argument") + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if instance_arn is None: + raise TypeError("Missing 'instance_arn' argument") + + _setter("attributes", attributes) + _setter("instance_arn", instance_arn) @property @pulumi.getter @@ -63,14 +82,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['InstanceAccessControlAttributesAttributeArgs']]] attributes: See AccessControlAttribute for more details. :param pulumi.Input[str] instance_arn: The Amazon Resource Name (ARN) of the SSO Instance. """ + _InstanceAccessControlAttributesState._configure( + lambda key, value: pulumi.set(__self__, key, value), + attributes=attributes, + instance_arn=instance_arn, + status=status, + status_reason=status_reason, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + attributes: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceAccessControlAttributesAttributeArgs']]]] = None, + instance_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + status_reason: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if status_reason is None and 'statusReason' in kwargs: + status_reason = kwargs['statusReason'] + if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if instance_arn is not None: - pulumi.set(__self__, "instance_arn", instance_arn) + _setter("instance_arn", instance_arn) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if status_reason is not None: - pulumi.set(__self__, "status_reason", status_reason) + _setter("status_reason", status_reason) @property @pulumi.getter @@ -166,6 +206,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceAccessControlAttributesArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssoadmin/managed_policy_attachment.py b/sdk/python/pulumi_aws/ssoadmin/managed_policy_attachment.py index 5bac718eaa4..0f4b731ed77 100644 --- a/sdk/python/pulumi_aws/ssoadmin/managed_policy_attachment.py +++ b/sdk/python/pulumi_aws/ssoadmin/managed_policy_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ManagedPolicyAttachmentArgs', 'ManagedPolicyAttachment'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] managed_policy_arn: The IAM managed policy Amazon Resource Name (ARN) to be attached to the Permission Set. :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set. """ - pulumi.set(__self__, "instance_arn", instance_arn) - pulumi.set(__self__, "managed_policy_arn", managed_policy_arn) - pulumi.set(__self__, "permission_set_arn", permission_set_arn) + ManagedPolicyAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_arn=instance_arn, + managed_policy_arn=managed_policy_arn, + permission_set_arn=permission_set_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_arn: Optional[pulumi.Input[str]] = None, + managed_policy_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if instance_arn is None: + raise TypeError("Missing 'instance_arn' argument") + if managed_policy_arn is None and 'managedPolicyArn' in kwargs: + managed_policy_arn = kwargs['managedPolicyArn'] + if managed_policy_arn is None: + raise TypeError("Missing 'managed_policy_arn' argument") + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if permission_set_arn is None: + raise TypeError("Missing 'permission_set_arn' argument") + + _setter("instance_arn", instance_arn) + _setter("managed_policy_arn", managed_policy_arn) + _setter("permission_set_arn", permission_set_arn) @property @pulumi.getter(name="instanceArn") @@ -78,14 +105,39 @@ def __init__(__self__, *, :param pulumi.Input[str] managed_policy_name: The name of the IAM Managed Policy. :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set. """ + _ManagedPolicyAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_arn=instance_arn, + managed_policy_arn=managed_policy_arn, + managed_policy_name=managed_policy_name, + permission_set_arn=permission_set_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_arn: Optional[pulumi.Input[str]] = None, + managed_policy_arn: Optional[pulumi.Input[str]] = None, + managed_policy_name: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if managed_policy_arn is None and 'managedPolicyArn' in kwargs: + managed_policy_arn = kwargs['managedPolicyArn'] + if managed_policy_name is None and 'managedPolicyName' in kwargs: + managed_policy_name = kwargs['managedPolicyName'] + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if instance_arn is not None: - pulumi.set(__self__, "instance_arn", instance_arn) + _setter("instance_arn", instance_arn) if managed_policy_arn is not None: - pulumi.set(__self__, "managed_policy_arn", managed_policy_arn) + _setter("managed_policy_arn", managed_policy_arn) if managed_policy_name is not None: - pulumi.set(__self__, "managed_policy_name", managed_policy_name) + _setter("managed_policy_name", managed_policy_name) if permission_set_arn is not None: - pulumi.set(__self__, "permission_set_arn", permission_set_arn) + _setter("permission_set_arn", permission_set_arn) @property @pulumi.getter(name="instanceArn") @@ -193,6 +245,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ManagedPolicyAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssoadmin/outputs.py b/sdk/python/pulumi_aws/ssoadmin/outputs.py index c59d0107a1d..a63ea47c6f7 100644 --- a/sdk/python/pulumi_aws/ssoadmin/outputs.py +++ b/sdk/python/pulumi_aws/ssoadmin/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -27,9 +27,24 @@ def __init__(__self__, *, :param str name: Name of the customer managed IAM Policy to be attached. :param str path: The path to the IAM policy to be attached. The default is `/`. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) for more information. """ - pulumi.set(__self__, "name", name) + CustomerManagedPolicyAttachmentCustomerManagedPolicyReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter @@ -57,8 +72,25 @@ def __init__(__self__, *, :param str key: The name of the attribute associated with your identities in your identity source. This is used to map a specified attribute in your identity source with an attribute in AWS SSO. :param Sequence['InstanceAccessControlAttributesAttributeValueArgs'] values: The value used for mapping a specified attribute to an identity source. See AccessControlAttributeValue """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "values", values) + InstanceAccessControlAttributesAttribute._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + values: Optional[Sequence['outputs.InstanceAccessControlAttributesAttributeValue']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("key", key) + _setter("values", values) @property @pulumi.getter @@ -84,7 +116,20 @@ def __init__(__self__, *, """ :param Sequence[str] sources: The identity source to use when mapping a specified attribute to AWS SSO. """ - pulumi.set(__self__, "sources", sources) + InstanceAccessControlAttributesAttributeValue._configure( + lambda key, value: pulumi.set(__self__, key, value), + sources=sources, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + sources: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sources is None: + raise TypeError("Missing 'sources' argument") + + _setter("sources", sources) @property @pulumi.getter @@ -123,10 +168,27 @@ def __init__(__self__, *, :param 'PermissionsBoundaryAttachmentPermissionsBoundaryCustomerManagedPolicyReferenceArgs' customer_managed_policy_reference: Specifies the name and path of a customer managed policy. See below. :param str managed_policy_arn: AWS-managed IAM policy ARN to use as the permissions boundary. """ + PermissionsBoundaryAttachmentPermissionsBoundary._configure( + lambda key, value: pulumi.set(__self__, key, value), + customer_managed_policy_reference=customer_managed_policy_reference, + managed_policy_arn=managed_policy_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + customer_managed_policy_reference: Optional['outputs.PermissionsBoundaryAttachmentPermissionsBoundaryCustomerManagedPolicyReference'] = None, + managed_policy_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_managed_policy_reference is None and 'customerManagedPolicyReference' in kwargs: + customer_managed_policy_reference = kwargs['customerManagedPolicyReference'] + if managed_policy_arn is None and 'managedPolicyArn' in kwargs: + managed_policy_arn = kwargs['managedPolicyArn'] + if customer_managed_policy_reference is not None: - pulumi.set(__self__, "customer_managed_policy_reference", customer_managed_policy_reference) + _setter("customer_managed_policy_reference", customer_managed_policy_reference) if managed_policy_arn is not None: - pulumi.set(__self__, "managed_policy_arn", managed_policy_arn) + _setter("managed_policy_arn", managed_policy_arn) @property @pulumi.getter(name="customerManagedPolicyReference") @@ -154,9 +216,24 @@ def __init__(__self__, *, :param str name: Name of the customer managed IAM Policy to be attached. :param str path: The path to the IAM policy to be attached. The default is `/`. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) for more information. """ - pulumi.set(__self__, "name", name) + PermissionsBoundaryAttachmentPermissionsBoundaryCustomerManagedPolicyReference._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/ssoadmin/permission_set.py b/sdk/python/pulumi_aws/ssoadmin/permission_set.py index efc0725c498..dd09d9d28bb 100644 --- a/sdk/python/pulumi_aws/ssoadmin/permission_set.py +++ b/sdk/python/pulumi_aws/ssoadmin/permission_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PermissionSetArgs', 'PermissionSet'] @@ -29,17 +29,46 @@ def __init__(__self__, *, :param pulumi.Input[str] session_duration: The length of time that the application user sessions are valid in the ISO-8601 standard. Default: `PT1H`. :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. """ - pulumi.set(__self__, "instance_arn", instance_arn) + PermissionSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_arn=instance_arn, + description=description, + name=name, + relay_state=relay_state, + session_duration=session_duration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + relay_state: Optional[pulumi.Input[str]] = None, + session_duration: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if instance_arn is None: + raise TypeError("Missing 'instance_arn' argument") + if relay_state is None and 'relayState' in kwargs: + relay_state = kwargs['relayState'] + if session_duration is None and 'sessionDuration' in kwargs: + session_duration = kwargs['sessionDuration'] + + _setter("instance_arn", instance_arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if relay_state is not None: - pulumi.set(__self__, "relay_state", relay_state) + _setter("relay_state", relay_state) if session_duration is not None: - pulumi.set(__self__, "session_duration", session_duration) + _setter("session_duration", session_duration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="instanceArn") @@ -138,27 +167,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _PermissionSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_date=created_date, + description=description, + instance_arn=instance_arn, + name=name, + relay_state=relay_state, + session_duration=session_duration, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + relay_state: Optional[pulumi.Input[str]] = None, + session_duration: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_date is None and 'createdDate' in kwargs: + created_date = kwargs['createdDate'] + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if relay_state is None and 'relayState' in kwargs: + relay_state = kwargs['relayState'] + if session_duration is None and 'sessionDuration' in kwargs: + session_duration = kwargs['sessionDuration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_date is not None: - pulumi.set(__self__, "created_date", created_date) + _setter("created_date", created_date) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if instance_arn is not None: - pulumi.set(__self__, "instance_arn", instance_arn) + _setter("instance_arn", instance_arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if relay_state is not None: - pulumi.set(__self__, "relay_state", relay_state) + _setter("relay_state", relay_state) if session_duration is not None: - pulumi.set(__self__, "session_duration", session_duration) + _setter("session_duration", session_duration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -335,6 +401,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PermissionSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssoadmin/permission_set_inline_policy.py b/sdk/python/pulumi_aws/ssoadmin/permission_set_inline_policy.py index 85428cacc99..1698adf3610 100644 --- a/sdk/python/pulumi_aws/ssoadmin/permission_set_inline_policy.py +++ b/sdk/python/pulumi_aws/ssoadmin/permission_set_inline_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['PermissionSetInlinePolicyArgs', 'PermissionSetInlinePolicy'] @@ -23,9 +23,36 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_arn: The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed. :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set. """ - pulumi.set(__self__, "inline_policy", inline_policy) - pulumi.set(__self__, "instance_arn", instance_arn) - pulumi.set(__self__, "permission_set_arn", permission_set_arn) + PermissionSetInlinePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + inline_policy=inline_policy, + instance_arn=instance_arn, + permission_set_arn=permission_set_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inline_policy: Optional[pulumi.Input[str]] = None, + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inline_policy is None and 'inlinePolicy' in kwargs: + inline_policy = kwargs['inlinePolicy'] + if inline_policy is None: + raise TypeError("Missing 'inline_policy' argument") + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if instance_arn is None: + raise TypeError("Missing 'instance_arn' argument") + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if permission_set_arn is None: + raise TypeError("Missing 'permission_set_arn' argument") + + _setter("inline_policy", inline_policy) + _setter("instance_arn", instance_arn) + _setter("permission_set_arn", permission_set_arn) @property @pulumi.getter(name="inlinePolicy") @@ -76,12 +103,33 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_arn: The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed. :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set. """ + _PermissionSetInlinePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + inline_policy=inline_policy, + instance_arn=instance_arn, + permission_set_arn=permission_set_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inline_policy: Optional[pulumi.Input[str]] = None, + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inline_policy is None and 'inlinePolicy' in kwargs: + inline_policy = kwargs['inlinePolicy'] + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if inline_policy is not None: - pulumi.set(__self__, "inline_policy", inline_policy) + _setter("inline_policy", inline_policy) if instance_arn is not None: - pulumi.set(__self__, "instance_arn", instance_arn) + _setter("instance_arn", instance_arn) if permission_set_arn is not None: - pulumi.set(__self__, "permission_set_arn", permission_set_arn) + _setter("permission_set_arn", permission_set_arn) @property @pulumi.getter(name="inlinePolicy") @@ -179,6 +227,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PermissionSetInlinePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/ssoadmin/permissions_boundary_attachment.py b/sdk/python/pulumi_aws/ssoadmin/permissions_boundary_attachment.py index a5aa8b68354..de7df08fb51 100644 --- a/sdk/python/pulumi_aws/ssoadmin/permissions_boundary_attachment.py +++ b/sdk/python/pulumi_aws/ssoadmin/permissions_boundary_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,9 +25,36 @@ def __init__(__self__, *, :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set. :param pulumi.Input['PermissionsBoundaryAttachmentPermissionsBoundaryArgs'] permissions_boundary: The permissions boundary policy. See below. """ - pulumi.set(__self__, "instance_arn", instance_arn) - pulumi.set(__self__, "permission_set_arn", permission_set_arn) - pulumi.set(__self__, "permissions_boundary", permissions_boundary) + PermissionsBoundaryAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_arn=instance_arn, + permission_set_arn=permission_set_arn, + permissions_boundary=permissions_boundary, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + permissions_boundary: Optional[pulumi.Input['PermissionsBoundaryAttachmentPermissionsBoundaryArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if instance_arn is None: + raise TypeError("Missing 'instance_arn' argument") + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if permission_set_arn is None: + raise TypeError("Missing 'permission_set_arn' argument") + if permissions_boundary is None and 'permissionsBoundary' in kwargs: + permissions_boundary = kwargs['permissionsBoundary'] + if permissions_boundary is None: + raise TypeError("Missing 'permissions_boundary' argument") + + _setter("instance_arn", instance_arn) + _setter("permission_set_arn", permission_set_arn) + _setter("permissions_boundary", permissions_boundary) @property @pulumi.getter(name="instanceArn") @@ -78,12 +105,33 @@ def __init__(__self__, *, :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set. :param pulumi.Input['PermissionsBoundaryAttachmentPermissionsBoundaryArgs'] permissions_boundary: The permissions boundary policy. See below. """ + _PermissionsBoundaryAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + instance_arn=instance_arn, + permission_set_arn=permission_set_arn, + permissions_boundary=permissions_boundary, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + permissions_boundary: Optional[pulumi.Input['PermissionsBoundaryAttachmentPermissionsBoundaryArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if instance_arn is None and 'instanceArn' in kwargs: + instance_arn = kwargs['instanceArn'] + if permission_set_arn is None and 'permissionSetArn' in kwargs: + permission_set_arn = kwargs['permissionSetArn'] + if permissions_boundary is None and 'permissionsBoundary' in kwargs: + permissions_boundary = kwargs['permissionsBoundary'] + if instance_arn is not None: - pulumi.set(__self__, "instance_arn", instance_arn) + _setter("instance_arn", instance_arn) if permission_set_arn is not None: - pulumi.set(__self__, "permission_set_arn", permission_set_arn) + _setter("permission_set_arn", permission_set_arn) if permissions_boundary is not None: - pulumi.set(__self__, "permissions_boundary", permissions_boundary) + _setter("permissions_boundary", permissions_boundary) @property @pulumi.getter(name="instanceArn") @@ -209,6 +257,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + PermissionsBoundaryAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -232,6 +284,7 @@ def _internal_init(__self__, if permission_set_arn is None and not opts.urn: raise TypeError("Missing required property 'permission_set_arn'") __props__.__dict__["permission_set_arn"] = permission_set_arn + permissions_boundary = _utilities.configure(permissions_boundary, PermissionsBoundaryAttachmentPermissionsBoundaryArgs, True) if permissions_boundary is None and not opts.urn: raise TypeError("Missing required property 'permissions_boundary'") __props__.__dict__["permissions_boundary"] = permissions_boundary diff --git a/sdk/python/pulumi_aws/storagegateway/_inputs.py b/sdk/python/pulumi_aws/storagegateway/_inputs.py index 386e68d5d97..57e898ff58d 100644 --- a/sdk/python/pulumi_aws/storagegateway/_inputs.py +++ b/sdk/python/pulumi_aws/storagegateway/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -28,8 +28,21 @@ def __init__(__self__, *, TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket. Valid Values: `0` or `300` to `2592000` seconds (5 minutes to 30 days). Defaults to `0` """ + FileSystemAssociationCacheAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_stale_timeout_in_seconds=cache_stale_timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_stale_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_stale_timeout_in_seconds is None and 'cacheStaleTimeoutInSeconds' in kwargs: + cache_stale_timeout_in_seconds = kwargs['cacheStaleTimeoutInSeconds'] + if cache_stale_timeout_in_seconds is not None: - pulumi.set(__self__, "cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) + _setter("cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) @property @pulumi.getter(name="cacheStaleTimeoutInSeconds") @@ -53,8 +66,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] ipv4_address: The Internet Protocol version 4 (IPv4) address of the interface. """ + GatewayGatewayNetworkInterfaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ipv4_address=ipv4_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ipv4_address: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipv4_address is None and 'ipv4Address' in kwargs: + ipv4_address = kwargs['ipv4Address'] + if ipv4_address is not None: - pulumi.set(__self__, "ipv4_address", ipv4_address) + _setter("ipv4_address", ipv4_address) @property @pulumi.getter(name="ipv4Address") @@ -82,13 +108,40 @@ def __init__(__self__, *, :param pulumi.Input[str] day_of_week: The day of the week component of the maintenance start time week represented as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday. :param pulumi.Input[int] minute_of_hour: The minute component of the maintenance start time represented as _mm_, where _mm_ is the minute (00 to 59). The minute of the hour is in the time zone of the gateway. """ - pulumi.set(__self__, "hour_of_day", hour_of_day) + GatewayMaintenanceStartTimeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + hour_of_day=hour_of_day, + day_of_month=day_of_month, + day_of_week=day_of_week, + minute_of_hour=minute_of_hour, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hour_of_day: Optional[pulumi.Input[int]] = None, + day_of_month: Optional[pulumi.Input[str]] = None, + day_of_week: Optional[pulumi.Input[str]] = None, + minute_of_hour: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hour_of_day is None and 'hourOfDay' in kwargs: + hour_of_day = kwargs['hourOfDay'] + if hour_of_day is None: + raise TypeError("Missing 'hour_of_day' argument") + if day_of_month is None and 'dayOfMonth' in kwargs: + day_of_month = kwargs['dayOfMonth'] + if day_of_week is None and 'dayOfWeek' in kwargs: + day_of_week = kwargs['dayOfWeek'] + if minute_of_hour is None and 'minuteOfHour' in kwargs: + minute_of_hour = kwargs['minuteOfHour'] + + _setter("hour_of_day", hour_of_day) if day_of_month is not None: - pulumi.set(__self__, "day_of_month", day_of_month) + _setter("day_of_month", day_of_month) if day_of_week is not None: - pulumi.set(__self__, "day_of_week", day_of_week) + _setter("day_of_week", day_of_week) if minute_of_hour is not None: - pulumi.set(__self__, "minute_of_hour", minute_of_hour) + _setter("minute_of_hour", minute_of_hour) @property @pulumi.getter(name="hourOfDay") @@ -159,17 +212,56 @@ def __init__(__self__, *, computers, and other OUs and this parameter specifies the OU that the gateway will join within the AD domain. :param pulumi.Input[int] timeout_in_seconds: Specifies the time in seconds, in which the JoinDomain operation must complete. The default is `20` seconds. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + GatewaySmbActiveDirectorySettingsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + password=password, + username=username, + active_directory_status=active_directory_status, + domain_controllers=domain_controllers, + organizational_unit=organizational_unit, + timeout_in_seconds=timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + active_directory_status: Optional[pulumi.Input[str]] = None, + domain_controllers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + organizational_unit: Optional[pulumi.Input[str]] = None, + timeout_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if active_directory_status is None and 'activeDirectoryStatus' in kwargs: + active_directory_status = kwargs['activeDirectoryStatus'] + if domain_controllers is None and 'domainControllers' in kwargs: + domain_controllers = kwargs['domainControllers'] + if organizational_unit is None and 'organizationalUnit' in kwargs: + organizational_unit = kwargs['organizationalUnit'] + if timeout_in_seconds is None and 'timeoutInSeconds' in kwargs: + timeout_in_seconds = kwargs['timeoutInSeconds'] + + _setter("domain_name", domain_name) + _setter("password", password) + _setter("username", username) if active_directory_status is not None: - pulumi.set(__self__, "active_directory_status", active_directory_status) + _setter("active_directory_status", active_directory_status) if domain_controllers is not None: - pulumi.set(__self__, "domain_controllers", domain_controllers) + _setter("domain_controllers", domain_controllers) if organizational_unit is not None: - pulumi.set(__self__, "organizational_unit", organizational_unit) + _setter("organizational_unit", organizational_unit) if timeout_in_seconds is not None: - pulumi.set(__self__, "timeout_in_seconds", timeout_in_seconds) + _setter("timeout_in_seconds", timeout_in_seconds) @property @pulumi.getter(name="domainName") @@ -264,8 +356,21 @@ def __init__(__self__, *, TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket. Valid Values: 300 to 2,592,000 seconds (5 minutes to 30 days) """ + NfsFileShareCacheAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_stale_timeout_in_seconds=cache_stale_timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_stale_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_stale_timeout_in_seconds is None and 'cacheStaleTimeoutInSeconds' in kwargs: + cache_stale_timeout_in_seconds = kwargs['cacheStaleTimeoutInSeconds'] + if cache_stale_timeout_in_seconds is not None: - pulumi.set(__self__, "cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) + _setter("cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) @property @pulumi.getter(name="cacheStaleTimeoutInSeconds") @@ -295,14 +400,39 @@ def __init__(__self__, *, :param pulumi.Input[str] group_id: The default group ID for the file share (unless the files have another group ID specified). Defaults to `65534` (`nfsnobody`). Valid values: `0` through `4294967294`. :param pulumi.Input[str] owner_id: The default owner ID for the file share (unless the files have another owner ID specified). Defaults to `65534` (`nfsnobody`). Valid values: `0` through `4294967294`. """ + NfsFileShareNfsFileShareDefaultsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_mode=directory_mode, + file_mode=file_mode, + group_id=group_id, + owner_id=owner_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_mode: Optional[pulumi.Input[str]] = None, + file_mode: Optional[pulumi.Input[str]] = None, + group_id: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_mode is None and 'directoryMode' in kwargs: + directory_mode = kwargs['directoryMode'] + if file_mode is None and 'fileMode' in kwargs: + file_mode = kwargs['fileMode'] + if group_id is None and 'groupId' in kwargs: + group_id = kwargs['groupId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if directory_mode is not None: - pulumi.set(__self__, "directory_mode", directory_mode) + _setter("directory_mode", directory_mode) if file_mode is not None: - pulumi.set(__self__, "file_mode", file_mode) + _setter("file_mode", file_mode) if group_id is not None: - pulumi.set(__self__, "group_id", group_id) + _setter("group_id", group_id) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) @property @pulumi.getter(name="directoryMode") @@ -362,8 +492,21 @@ def __init__(__self__, *, TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket. Valid Values: 300 to 2,592,000 seconds (5 minutes to 30 days) """ + SmbFileShareCacheAttributesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_stale_timeout_in_seconds=cache_stale_timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_stale_timeout_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_stale_timeout_in_seconds is None and 'cacheStaleTimeoutInSeconds' in kwargs: + cache_stale_timeout_in_seconds = kwargs['cacheStaleTimeoutInSeconds'] + if cache_stale_timeout_in_seconds is not None: - pulumi.set(__self__, "cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) + _setter("cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) @property @pulumi.getter(name="cacheStaleTimeoutInSeconds") diff --git a/sdk/python/pulumi_aws/storagegateway/cache.py b/sdk/python/pulumi_aws/storagegateway/cache.py index 7b85cb3c3ad..7ed2daa552b 100644 --- a/sdk/python/pulumi_aws/storagegateway/cache.py +++ b/sdk/python/pulumi_aws/storagegateway/cache.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CacheArgs', 'Cache'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] disk_id: Local disk identifier. For example, `pci-0000:03:00.0-scsi-0:0:0:0`. :param pulumi.Input[str] gateway_arn: The Amazon Resource Name (ARN) of the gateway. """ - pulumi.set(__self__, "disk_id", disk_id) - pulumi.set(__self__, "gateway_arn", gateway_arn) + CacheArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + disk_id=disk_id, + gateway_arn=gateway_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disk_id: Optional[pulumi.Input[str]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disk_id is None and 'diskId' in kwargs: + disk_id = kwargs['diskId'] + if disk_id is None: + raise TypeError("Missing 'disk_id' argument") + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if gateway_arn is None: + raise TypeError("Missing 'gateway_arn' argument") + + _setter("disk_id", disk_id) + _setter("gateway_arn", gateway_arn) @property @pulumi.getter(name="diskId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] disk_id: Local disk identifier. For example, `pci-0000:03:00.0-scsi-0:0:0:0`. :param pulumi.Input[str] gateway_arn: The Amazon Resource Name (ARN) of the gateway. """ + _CacheState._configure( + lambda key, value: pulumi.set(__self__, key, value), + disk_id=disk_id, + gateway_arn=gateway_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disk_id: Optional[pulumi.Input[str]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disk_id is None and 'diskId' in kwargs: + disk_id = kwargs['diskId'] + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if disk_id is not None: - pulumi.set(__self__, "disk_id", disk_id) + _setter("disk_id", disk_id) if gateway_arn is not None: - pulumi.set(__self__, "gateway_arn", gateway_arn) + _setter("gateway_arn", gateway_arn) @property @pulumi.getter(name="diskId") @@ -166,6 +204,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CacheArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/storagegateway/caches_iscsi_volume.py b/sdk/python/pulumi_aws/storagegateway/caches_iscsi_volume.py index 88c6b6fc75d..c2ba6f608e2 100644 --- a/sdk/python/pulumi_aws/storagegateway/caches_iscsi_volume.py +++ b/sdk/python/pulumi_aws/storagegateway/caches_iscsi_volume.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CachesIscsiVolumeArgs', 'CachesIscsiVolume'] @@ -35,20 +35,71 @@ def __init__(__self__, *, :param pulumi.Input[str] source_volume_arn: The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The `volume_size_in_bytes` value for this new volume must be equal to or larger than the size of the existing volume, in bytes. :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. """ - pulumi.set(__self__, "gateway_arn", gateway_arn) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "target_name", target_name) - pulumi.set(__self__, "volume_size_in_bytes", volume_size_in_bytes) + CachesIscsiVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gateway_arn=gateway_arn, + network_interface_id=network_interface_id, + target_name=target_name, + volume_size_in_bytes=volume_size_in_bytes, + kms_encrypted=kms_encrypted, + kms_key=kms_key, + snapshot_id=snapshot_id, + source_volume_arn=source_volume_arn, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gateway_arn: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + target_name: Optional[pulumi.Input[str]] = None, + volume_size_in_bytes: Optional[pulumi.Input[int]] = None, + kms_encrypted: Optional[pulumi.Input[bool]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + source_volume_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if gateway_arn is None: + raise TypeError("Missing 'gateway_arn' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if target_name is None and 'targetName' in kwargs: + target_name = kwargs['targetName'] + if target_name is None: + raise TypeError("Missing 'target_name' argument") + if volume_size_in_bytes is None and 'volumeSizeInBytes' in kwargs: + volume_size_in_bytes = kwargs['volumeSizeInBytes'] + if volume_size_in_bytes is None: + raise TypeError("Missing 'volume_size_in_bytes' argument") + if kms_encrypted is None and 'kmsEncrypted' in kwargs: + kms_encrypted = kwargs['kmsEncrypted'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if source_volume_arn is None and 'sourceVolumeArn' in kwargs: + source_volume_arn = kwargs['sourceVolumeArn'] + + _setter("gateway_arn", gateway_arn) + _setter("network_interface_id", network_interface_id) + _setter("target_name", target_name) + _setter("volume_size_in_bytes", volume_size_in_bytes) if kms_encrypted is not None: - pulumi.set(__self__, "kms_encrypted", kms_encrypted) + _setter("kms_encrypted", kms_encrypted) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if source_volume_arn is not None: - pulumi.set(__self__, "source_volume_arn", source_volume_arn) + _setter("source_volume_arn", source_volume_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="gatewayArn") @@ -199,43 +250,116 @@ def __init__(__self__, *, :param pulumi.Input[str] volume_id: Volume ID, e.g., `vol-12345678`. :param pulumi.Input[int] volume_size_in_bytes: The size of the volume in bytes. """ + _CachesIscsiVolumeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + chap_enabled=chap_enabled, + gateway_arn=gateway_arn, + kms_encrypted=kms_encrypted, + kms_key=kms_key, + lun_number=lun_number, + network_interface_id=network_interface_id, + network_interface_port=network_interface_port, + snapshot_id=snapshot_id, + source_volume_arn=source_volume_arn, + tags=tags, + tags_all=tags_all, + target_arn=target_arn, + target_name=target_name, + volume_arn=volume_arn, + volume_id=volume_id, + volume_size_in_bytes=volume_size_in_bytes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + chap_enabled: Optional[pulumi.Input[bool]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + kms_encrypted: Optional[pulumi.Input[bool]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + lun_number: Optional[pulumi.Input[int]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + network_interface_port: Optional[pulumi.Input[int]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + source_volume_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + target_name: Optional[pulumi.Input[str]] = None, + volume_arn: Optional[pulumi.Input[str]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + volume_size_in_bytes: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if chap_enabled is None and 'chapEnabled' in kwargs: + chap_enabled = kwargs['chapEnabled'] + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if kms_encrypted is None and 'kmsEncrypted' in kwargs: + kms_encrypted = kwargs['kmsEncrypted'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if lun_number is None and 'lunNumber' in kwargs: + lun_number = kwargs['lunNumber'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_port is None and 'networkInterfacePort' in kwargs: + network_interface_port = kwargs['networkInterfacePort'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if source_volume_arn is None and 'sourceVolumeArn' in kwargs: + source_volume_arn = kwargs['sourceVolumeArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_name is None and 'targetName' in kwargs: + target_name = kwargs['targetName'] + if volume_arn is None and 'volumeArn' in kwargs: + volume_arn = kwargs['volumeArn'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size_in_bytes is None and 'volumeSizeInBytes' in kwargs: + volume_size_in_bytes = kwargs['volumeSizeInBytes'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if chap_enabled is not None: - pulumi.set(__self__, "chap_enabled", chap_enabled) + _setter("chap_enabled", chap_enabled) if gateway_arn is not None: - pulumi.set(__self__, "gateway_arn", gateway_arn) + _setter("gateway_arn", gateway_arn) if kms_encrypted is not None: - pulumi.set(__self__, "kms_encrypted", kms_encrypted) + _setter("kms_encrypted", kms_encrypted) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if lun_number is not None: - pulumi.set(__self__, "lun_number", lun_number) + _setter("lun_number", lun_number) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if network_interface_port is not None: - pulumi.set(__self__, "network_interface_port", network_interface_port) + _setter("network_interface_port", network_interface_port) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if source_volume_arn is not None: - pulumi.set(__self__, "source_volume_arn", source_volume_arn) + _setter("source_volume_arn", source_volume_arn) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_arn is not None: - pulumi.set(__self__, "target_arn", target_arn) + _setter("target_arn", target_arn) if target_name is not None: - pulumi.set(__self__, "target_name", target_name) + _setter("target_name", target_name) if volume_arn is not None: - pulumi.set(__self__, "volume_arn", volume_arn) + _setter("volume_arn", volume_arn) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size_in_bytes is not None: - pulumi.set(__self__, "volume_size_in_bytes", volume_size_in_bytes) + _setter("volume_size_in_bytes", volume_size_in_bytes) @property @pulumi.getter @@ -604,6 +728,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CachesIscsiVolumeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/storagegateway/file_system_association.py b/sdk/python/pulumi_aws/storagegateway/file_system_association.py index a04a331d4e4..43494b1f150 100644 --- a/sdk/python/pulumi_aws/storagegateway/file_system_association.py +++ b/sdk/python/pulumi_aws/storagegateway/file_system_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,16 +33,55 @@ def __init__(__self__, *, :param pulumi.Input['FileSystemAssociationCacheAttributesArgs'] cache_attributes: Refresh cache information. see Cache Attributes for more details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "gateway_arn", gateway_arn) - pulumi.set(__self__, "location_arn", location_arn) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + FileSystemAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gateway_arn=gateway_arn, + location_arn=location_arn, + password=password, + username=username, + audit_destination_arn=audit_destination_arn, + cache_attributes=cache_attributes, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gateway_arn: Optional[pulumi.Input[str]] = None, + location_arn: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None, + audit_destination_arn: Optional[pulumi.Input[str]] = None, + cache_attributes: Optional[pulumi.Input['FileSystemAssociationCacheAttributesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if gateway_arn is None: + raise TypeError("Missing 'gateway_arn' argument") + if location_arn is None and 'locationArn' in kwargs: + location_arn = kwargs['locationArn'] + if location_arn is None: + raise TypeError("Missing 'location_arn' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if audit_destination_arn is None and 'auditDestinationArn' in kwargs: + audit_destination_arn = kwargs['auditDestinationArn'] + if cache_attributes is None and 'cacheAttributes' in kwargs: + cache_attributes = kwargs['cacheAttributes'] + + _setter("gateway_arn", gateway_arn) + _setter("location_arn", location_arn) + _setter("password", password) + _setter("username", username) if audit_destination_arn is not None: - pulumi.set(__self__, "audit_destination_arn", audit_destination_arn) + _setter("audit_destination_arn", audit_destination_arn) if cache_attributes is not None: - pulumi.set(__self__, "cache_attributes", cache_attributes) + _setter("cache_attributes", cache_attributes) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="gatewayArn") @@ -153,27 +192,64 @@ def __init__(__self__, *, :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] username: The user name of the user credential that has permission to access the root share of the Amazon FSx file system. The user account must belong to the Amazon FSx delegated admin user group. """ + _FileSystemAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + audit_destination_arn=audit_destination_arn, + cache_attributes=cache_attributes, + gateway_arn=gateway_arn, + location_arn=location_arn, + password=password, + tags=tags, + tags_all=tags_all, + username=username, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + audit_destination_arn: Optional[pulumi.Input[str]] = None, + cache_attributes: Optional[pulumi.Input['FileSystemAssociationCacheAttributesArgs']] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + location_arn: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + username: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_destination_arn is None and 'auditDestinationArn' in kwargs: + audit_destination_arn = kwargs['auditDestinationArn'] + if cache_attributes is None and 'cacheAttributes' in kwargs: + cache_attributes = kwargs['cacheAttributes'] + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if location_arn is None and 'locationArn' in kwargs: + location_arn = kwargs['locationArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if audit_destination_arn is not None: - pulumi.set(__self__, "audit_destination_arn", audit_destination_arn) + _setter("audit_destination_arn", audit_destination_arn) if cache_attributes is not None: - pulumi.set(__self__, "cache_attributes", cache_attributes) + _setter("cache_attributes", cache_attributes) if gateway_arn is not None: - pulumi.set(__self__, "gateway_arn", gateway_arn) + _setter("gateway_arn", gateway_arn) if location_arn is not None: - pulumi.set(__self__, "location_arn", location_arn) + _setter("location_arn", location_arn) if password is not None: - pulumi.set(__self__, "password", password) + _setter("password", password) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if username is not None: - pulumi.set(__self__, "username", username) + _setter("username", username) @property @pulumi.getter @@ -468,6 +544,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FileSystemAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -490,6 +570,7 @@ def _internal_init(__self__, __props__ = FileSystemAssociationArgs.__new__(FileSystemAssociationArgs) __props__.__dict__["audit_destination_arn"] = audit_destination_arn + cache_attributes = _utilities.configure(cache_attributes, FileSystemAssociationCacheAttributesArgs, True) __props__.__dict__["cache_attributes"] = cache_attributes if gateway_arn is None and not opts.urn: raise TypeError("Missing required property 'gateway_arn'") diff --git a/sdk/python/pulumi_aws/storagegateway/gateway.py b/sdk/python/pulumi_aws/storagegateway/gateway.py index c15c1b2a4de..aa8a513d95d 100644 --- a/sdk/python/pulumi_aws/storagegateway/gateway.py +++ b/sdk/python/pulumi_aws/storagegateway/gateway.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -53,38 +53,117 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] tape_drive_type: Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`. """ - pulumi.set(__self__, "gateway_name", gateway_name) - pulumi.set(__self__, "gateway_timezone", gateway_timezone) + GatewayArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gateway_name=gateway_name, + gateway_timezone=gateway_timezone, + activation_key=activation_key, + average_download_rate_limit_in_bits_per_sec=average_download_rate_limit_in_bits_per_sec, + average_upload_rate_limit_in_bits_per_sec=average_upload_rate_limit_in_bits_per_sec, + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + gateway_ip_address=gateway_ip_address, + gateway_type=gateway_type, + gateway_vpc_endpoint=gateway_vpc_endpoint, + maintenance_start_time=maintenance_start_time, + medium_changer_type=medium_changer_type, + smb_active_directory_settings=smb_active_directory_settings, + smb_file_share_visibility=smb_file_share_visibility, + smb_guest_password=smb_guest_password, + smb_security_strategy=smb_security_strategy, + tags=tags, + tape_drive_type=tape_drive_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gateway_name: Optional[pulumi.Input[str]] = None, + gateway_timezone: Optional[pulumi.Input[str]] = None, + activation_key: Optional[pulumi.Input[str]] = None, + average_download_rate_limit_in_bits_per_sec: Optional[pulumi.Input[int]] = None, + average_upload_rate_limit_in_bits_per_sec: Optional[pulumi.Input[int]] = None, + cloudwatch_log_group_arn: Optional[pulumi.Input[str]] = None, + gateway_ip_address: Optional[pulumi.Input[str]] = None, + gateway_type: Optional[pulumi.Input[str]] = None, + gateway_vpc_endpoint: Optional[pulumi.Input[str]] = None, + maintenance_start_time: Optional[pulumi.Input['GatewayMaintenanceStartTimeArgs']] = None, + medium_changer_type: Optional[pulumi.Input[str]] = None, + smb_active_directory_settings: Optional[pulumi.Input['GatewaySmbActiveDirectorySettingsArgs']] = None, + smb_file_share_visibility: Optional[pulumi.Input[bool]] = None, + smb_guest_password: Optional[pulumi.Input[str]] = None, + smb_security_strategy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tape_drive_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gateway_name is None and 'gatewayName' in kwargs: + gateway_name = kwargs['gatewayName'] + if gateway_name is None: + raise TypeError("Missing 'gateway_name' argument") + if gateway_timezone is None and 'gatewayTimezone' in kwargs: + gateway_timezone = kwargs['gatewayTimezone'] + if gateway_timezone is None: + raise TypeError("Missing 'gateway_timezone' argument") + if activation_key is None and 'activationKey' in kwargs: + activation_key = kwargs['activationKey'] + if average_download_rate_limit_in_bits_per_sec is None and 'averageDownloadRateLimitInBitsPerSec' in kwargs: + average_download_rate_limit_in_bits_per_sec = kwargs['averageDownloadRateLimitInBitsPerSec'] + if average_upload_rate_limit_in_bits_per_sec is None and 'averageUploadRateLimitInBitsPerSec' in kwargs: + average_upload_rate_limit_in_bits_per_sec = kwargs['averageUploadRateLimitInBitsPerSec'] + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if gateway_ip_address is None and 'gatewayIpAddress' in kwargs: + gateway_ip_address = kwargs['gatewayIpAddress'] + if gateway_type is None and 'gatewayType' in kwargs: + gateway_type = kwargs['gatewayType'] + if gateway_vpc_endpoint is None and 'gatewayVpcEndpoint' in kwargs: + gateway_vpc_endpoint = kwargs['gatewayVpcEndpoint'] + if maintenance_start_time is None and 'maintenanceStartTime' in kwargs: + maintenance_start_time = kwargs['maintenanceStartTime'] + if medium_changer_type is None and 'mediumChangerType' in kwargs: + medium_changer_type = kwargs['mediumChangerType'] + if smb_active_directory_settings is None and 'smbActiveDirectorySettings' in kwargs: + smb_active_directory_settings = kwargs['smbActiveDirectorySettings'] + if smb_file_share_visibility is None and 'smbFileShareVisibility' in kwargs: + smb_file_share_visibility = kwargs['smbFileShareVisibility'] + if smb_guest_password is None and 'smbGuestPassword' in kwargs: + smb_guest_password = kwargs['smbGuestPassword'] + if smb_security_strategy is None and 'smbSecurityStrategy' in kwargs: + smb_security_strategy = kwargs['smbSecurityStrategy'] + if tape_drive_type is None and 'tapeDriveType' in kwargs: + tape_drive_type = kwargs['tapeDriveType'] + + _setter("gateway_name", gateway_name) + _setter("gateway_timezone", gateway_timezone) if activation_key is not None: - pulumi.set(__self__, "activation_key", activation_key) + _setter("activation_key", activation_key) if average_download_rate_limit_in_bits_per_sec is not None: - pulumi.set(__self__, "average_download_rate_limit_in_bits_per_sec", average_download_rate_limit_in_bits_per_sec) + _setter("average_download_rate_limit_in_bits_per_sec", average_download_rate_limit_in_bits_per_sec) if average_upload_rate_limit_in_bits_per_sec is not None: - pulumi.set(__self__, "average_upload_rate_limit_in_bits_per_sec", average_upload_rate_limit_in_bits_per_sec) + _setter("average_upload_rate_limit_in_bits_per_sec", average_upload_rate_limit_in_bits_per_sec) if cloudwatch_log_group_arn is not None: - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) if gateway_ip_address is not None: - pulumi.set(__self__, "gateway_ip_address", gateway_ip_address) + _setter("gateway_ip_address", gateway_ip_address) if gateway_type is not None: - pulumi.set(__self__, "gateway_type", gateway_type) + _setter("gateway_type", gateway_type) if gateway_vpc_endpoint is not None: - pulumi.set(__self__, "gateway_vpc_endpoint", gateway_vpc_endpoint) + _setter("gateway_vpc_endpoint", gateway_vpc_endpoint) if maintenance_start_time is not None: - pulumi.set(__self__, "maintenance_start_time", maintenance_start_time) + _setter("maintenance_start_time", maintenance_start_time) if medium_changer_type is not None: - pulumi.set(__self__, "medium_changer_type", medium_changer_type) + _setter("medium_changer_type", medium_changer_type) if smb_active_directory_settings is not None: - pulumi.set(__self__, "smb_active_directory_settings", smb_active_directory_settings) + _setter("smb_active_directory_settings", smb_active_directory_settings) if smb_file_share_visibility is not None: - pulumi.set(__self__, "smb_file_share_visibility", smb_file_share_visibility) + _setter("smb_file_share_visibility", smb_file_share_visibility) if smb_guest_password is not None: - pulumi.set(__self__, "smb_guest_password", smb_guest_password) + _setter("smb_guest_password", smb_guest_password) if smb_security_strategy is not None: - pulumi.set(__self__, "smb_security_strategy", smb_security_strategy) + _setter("smb_security_strategy", smb_security_strategy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tape_drive_type is not None: - pulumi.set(__self__, "tape_drive_type", tape_drive_type) + _setter("tape_drive_type", tape_drive_type) @property @pulumi.getter(name="gatewayName") @@ -345,57 +424,158 @@ def __init__(__self__, *, :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] tape_drive_type: Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`. """ + _GatewayState._configure( + lambda key, value: pulumi.set(__self__, key, value), + activation_key=activation_key, + arn=arn, + average_download_rate_limit_in_bits_per_sec=average_download_rate_limit_in_bits_per_sec, + average_upload_rate_limit_in_bits_per_sec=average_upload_rate_limit_in_bits_per_sec, + cloudwatch_log_group_arn=cloudwatch_log_group_arn, + ec2_instance_id=ec2_instance_id, + endpoint_type=endpoint_type, + gateway_id=gateway_id, + gateway_ip_address=gateway_ip_address, + gateway_name=gateway_name, + gateway_network_interfaces=gateway_network_interfaces, + gateway_timezone=gateway_timezone, + gateway_type=gateway_type, + gateway_vpc_endpoint=gateway_vpc_endpoint, + host_environment=host_environment, + maintenance_start_time=maintenance_start_time, + medium_changer_type=medium_changer_type, + smb_active_directory_settings=smb_active_directory_settings, + smb_file_share_visibility=smb_file_share_visibility, + smb_guest_password=smb_guest_password, + smb_security_strategy=smb_security_strategy, + tags=tags, + tags_all=tags_all, + tape_drive_type=tape_drive_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activation_key: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + average_download_rate_limit_in_bits_per_sec: Optional[pulumi.Input[int]] = None, + average_upload_rate_limit_in_bits_per_sec: Optional[pulumi.Input[int]] = None, + cloudwatch_log_group_arn: Optional[pulumi.Input[str]] = None, + ec2_instance_id: Optional[pulumi.Input[str]] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + gateway_id: Optional[pulumi.Input[str]] = None, + gateway_ip_address: Optional[pulumi.Input[str]] = None, + gateway_name: Optional[pulumi.Input[str]] = None, + gateway_network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayGatewayNetworkInterfaceArgs']]]] = None, + gateway_timezone: Optional[pulumi.Input[str]] = None, + gateway_type: Optional[pulumi.Input[str]] = None, + gateway_vpc_endpoint: Optional[pulumi.Input[str]] = None, + host_environment: Optional[pulumi.Input[str]] = None, + maintenance_start_time: Optional[pulumi.Input['GatewayMaintenanceStartTimeArgs']] = None, + medium_changer_type: Optional[pulumi.Input[str]] = None, + smb_active_directory_settings: Optional[pulumi.Input['GatewaySmbActiveDirectorySettingsArgs']] = None, + smb_file_share_visibility: Optional[pulumi.Input[bool]] = None, + smb_guest_password: Optional[pulumi.Input[str]] = None, + smb_security_strategy: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tape_drive_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activation_key is None and 'activationKey' in kwargs: + activation_key = kwargs['activationKey'] + if average_download_rate_limit_in_bits_per_sec is None and 'averageDownloadRateLimitInBitsPerSec' in kwargs: + average_download_rate_limit_in_bits_per_sec = kwargs['averageDownloadRateLimitInBitsPerSec'] + if average_upload_rate_limit_in_bits_per_sec is None and 'averageUploadRateLimitInBitsPerSec' in kwargs: + average_upload_rate_limit_in_bits_per_sec = kwargs['averageUploadRateLimitInBitsPerSec'] + if cloudwatch_log_group_arn is None and 'cloudwatchLogGroupArn' in kwargs: + cloudwatch_log_group_arn = kwargs['cloudwatchLogGroupArn'] + if ec2_instance_id is None and 'ec2InstanceId' in kwargs: + ec2_instance_id = kwargs['ec2InstanceId'] + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if gateway_id is None and 'gatewayId' in kwargs: + gateway_id = kwargs['gatewayId'] + if gateway_ip_address is None and 'gatewayIpAddress' in kwargs: + gateway_ip_address = kwargs['gatewayIpAddress'] + if gateway_name is None and 'gatewayName' in kwargs: + gateway_name = kwargs['gatewayName'] + if gateway_network_interfaces is None and 'gatewayNetworkInterfaces' in kwargs: + gateway_network_interfaces = kwargs['gatewayNetworkInterfaces'] + if gateway_timezone is None and 'gatewayTimezone' in kwargs: + gateway_timezone = kwargs['gatewayTimezone'] + if gateway_type is None and 'gatewayType' in kwargs: + gateway_type = kwargs['gatewayType'] + if gateway_vpc_endpoint is None and 'gatewayVpcEndpoint' in kwargs: + gateway_vpc_endpoint = kwargs['gatewayVpcEndpoint'] + if host_environment is None and 'hostEnvironment' in kwargs: + host_environment = kwargs['hostEnvironment'] + if maintenance_start_time is None and 'maintenanceStartTime' in kwargs: + maintenance_start_time = kwargs['maintenanceStartTime'] + if medium_changer_type is None and 'mediumChangerType' in kwargs: + medium_changer_type = kwargs['mediumChangerType'] + if smb_active_directory_settings is None and 'smbActiveDirectorySettings' in kwargs: + smb_active_directory_settings = kwargs['smbActiveDirectorySettings'] + if smb_file_share_visibility is None and 'smbFileShareVisibility' in kwargs: + smb_file_share_visibility = kwargs['smbFileShareVisibility'] + if smb_guest_password is None and 'smbGuestPassword' in kwargs: + smb_guest_password = kwargs['smbGuestPassword'] + if smb_security_strategy is None and 'smbSecurityStrategy' in kwargs: + smb_security_strategy = kwargs['smbSecurityStrategy'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if tape_drive_type is None and 'tapeDriveType' in kwargs: + tape_drive_type = kwargs['tapeDriveType'] + if activation_key is not None: - pulumi.set(__self__, "activation_key", activation_key) + _setter("activation_key", activation_key) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if average_download_rate_limit_in_bits_per_sec is not None: - pulumi.set(__self__, "average_download_rate_limit_in_bits_per_sec", average_download_rate_limit_in_bits_per_sec) + _setter("average_download_rate_limit_in_bits_per_sec", average_download_rate_limit_in_bits_per_sec) if average_upload_rate_limit_in_bits_per_sec is not None: - pulumi.set(__self__, "average_upload_rate_limit_in_bits_per_sec", average_upload_rate_limit_in_bits_per_sec) + _setter("average_upload_rate_limit_in_bits_per_sec", average_upload_rate_limit_in_bits_per_sec) if cloudwatch_log_group_arn is not None: - pulumi.set(__self__, "cloudwatch_log_group_arn", cloudwatch_log_group_arn) + _setter("cloudwatch_log_group_arn", cloudwatch_log_group_arn) if ec2_instance_id is not None: - pulumi.set(__self__, "ec2_instance_id", ec2_instance_id) + _setter("ec2_instance_id", ec2_instance_id) if endpoint_type is not None: - pulumi.set(__self__, "endpoint_type", endpoint_type) + _setter("endpoint_type", endpoint_type) if gateway_id is not None: - pulumi.set(__self__, "gateway_id", gateway_id) + _setter("gateway_id", gateway_id) if gateway_ip_address is not None: - pulumi.set(__self__, "gateway_ip_address", gateway_ip_address) + _setter("gateway_ip_address", gateway_ip_address) if gateway_name is not None: - pulumi.set(__self__, "gateway_name", gateway_name) + _setter("gateway_name", gateway_name) if gateway_network_interfaces is not None: - pulumi.set(__self__, "gateway_network_interfaces", gateway_network_interfaces) + _setter("gateway_network_interfaces", gateway_network_interfaces) if gateway_timezone is not None: - pulumi.set(__self__, "gateway_timezone", gateway_timezone) + _setter("gateway_timezone", gateway_timezone) if gateway_type is not None: - pulumi.set(__self__, "gateway_type", gateway_type) + _setter("gateway_type", gateway_type) if gateway_vpc_endpoint is not None: - pulumi.set(__self__, "gateway_vpc_endpoint", gateway_vpc_endpoint) + _setter("gateway_vpc_endpoint", gateway_vpc_endpoint) if host_environment is not None: - pulumi.set(__self__, "host_environment", host_environment) + _setter("host_environment", host_environment) if maintenance_start_time is not None: - pulumi.set(__self__, "maintenance_start_time", maintenance_start_time) + _setter("maintenance_start_time", maintenance_start_time) if medium_changer_type is not None: - pulumi.set(__self__, "medium_changer_type", medium_changer_type) + _setter("medium_changer_type", medium_changer_type) if smb_active_directory_settings is not None: - pulumi.set(__self__, "smb_active_directory_settings", smb_active_directory_settings) + _setter("smb_active_directory_settings", smb_active_directory_settings) if smb_file_share_visibility is not None: - pulumi.set(__self__, "smb_file_share_visibility", smb_file_share_visibility) + _setter("smb_file_share_visibility", smb_file_share_visibility) if smb_guest_password is not None: - pulumi.set(__self__, "smb_guest_password", smb_guest_password) + _setter("smb_guest_password", smb_guest_password) if smb_security_strategy is not None: - pulumi.set(__self__, "smb_security_strategy", smb_security_strategy) + _setter("smb_security_strategy", smb_security_strategy) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if tape_drive_type is not None: - pulumi.set(__self__, "tape_drive_type", tape_drive_type) + _setter("tape_drive_type", tape_drive_type) @property @pulumi.getter(name="activationKey") @@ -946,6 +1126,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GatewayArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -990,8 +1174,10 @@ def _internal_init(__self__, __props__.__dict__["gateway_timezone"] = gateway_timezone __props__.__dict__["gateway_type"] = gateway_type __props__.__dict__["gateway_vpc_endpoint"] = gateway_vpc_endpoint + maintenance_start_time = _utilities.configure(maintenance_start_time, GatewayMaintenanceStartTimeArgs, True) __props__.__dict__["maintenance_start_time"] = maintenance_start_time __props__.__dict__["medium_changer_type"] = medium_changer_type + smb_active_directory_settings = _utilities.configure(smb_active_directory_settings, GatewaySmbActiveDirectorySettingsArgs, True) __props__.__dict__["smb_active_directory_settings"] = smb_active_directory_settings __props__.__dict__["smb_file_share_visibility"] = smb_file_share_visibility __props__.__dict__["smb_guest_password"] = None if smb_guest_password is None else pulumi.Output.secret(smb_guest_password) diff --git a/sdk/python/pulumi_aws/storagegateway/get_local_disk.py b/sdk/python/pulumi_aws/storagegateway/get_local_disk.py index 66c2f6bd5cd..0fa90372dc4 100644 --- a/sdk/python/pulumi_aws/storagegateway/get_local_disk.py +++ b/sdk/python/pulumi_aws/storagegateway/get_local_disk.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/storagegateway/nfs_file_share.py b/sdk/python/pulumi_aws/storagegateway/nfs_file_share.py index 98096d13535..2e0e49a68ec 100644 --- a/sdk/python/pulumi_aws/storagegateway/nfs_file_share.py +++ b/sdk/python/pulumi_aws/storagegateway/nfs_file_share.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -59,42 +59,135 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] vpc_endpoint_dns_name: The DNS name of the VPC endpoint for S3 PrivateLink. """ - pulumi.set(__self__, "client_lists", client_lists) - pulumi.set(__self__, "gateway_arn", gateway_arn) - pulumi.set(__self__, "location_arn", location_arn) - pulumi.set(__self__, "role_arn", role_arn) + NfsFileShareArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_lists=client_lists, + gateway_arn=gateway_arn, + location_arn=location_arn, + role_arn=role_arn, + audit_destination_arn=audit_destination_arn, + bucket_region=bucket_region, + cache_attributes=cache_attributes, + default_storage_class=default_storage_class, + file_share_name=file_share_name, + guess_mime_type_enabled=guess_mime_type_enabled, + kms_encrypted=kms_encrypted, + kms_key_arn=kms_key_arn, + nfs_file_share_defaults=nfs_file_share_defaults, + notification_policy=notification_policy, + object_acl=object_acl, + read_only=read_only, + requester_pays=requester_pays, + squash=squash, + tags=tags, + vpc_endpoint_dns_name=vpc_endpoint_dns_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + location_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + audit_destination_arn: Optional[pulumi.Input[str]] = None, + bucket_region: Optional[pulumi.Input[str]] = None, + cache_attributes: Optional[pulumi.Input['NfsFileShareCacheAttributesArgs']] = None, + default_storage_class: Optional[pulumi.Input[str]] = None, + file_share_name: Optional[pulumi.Input[str]] = None, + guess_mime_type_enabled: Optional[pulumi.Input[bool]] = None, + kms_encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + nfs_file_share_defaults: Optional[pulumi.Input['NfsFileShareNfsFileShareDefaultsArgs']] = None, + notification_policy: Optional[pulumi.Input[str]] = None, + object_acl: Optional[pulumi.Input[str]] = None, + read_only: Optional[pulumi.Input[bool]] = None, + requester_pays: Optional[pulumi.Input[bool]] = None, + squash: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_endpoint_dns_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_lists is None and 'clientLists' in kwargs: + client_lists = kwargs['clientLists'] + if client_lists is None: + raise TypeError("Missing 'client_lists' argument") + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if gateway_arn is None: + raise TypeError("Missing 'gateway_arn' argument") + if location_arn is None and 'locationArn' in kwargs: + location_arn = kwargs['locationArn'] + if location_arn is None: + raise TypeError("Missing 'location_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if audit_destination_arn is None and 'auditDestinationArn' in kwargs: + audit_destination_arn = kwargs['auditDestinationArn'] + if bucket_region is None and 'bucketRegion' in kwargs: + bucket_region = kwargs['bucketRegion'] + if cache_attributes is None and 'cacheAttributes' in kwargs: + cache_attributes = kwargs['cacheAttributes'] + if default_storage_class is None and 'defaultStorageClass' in kwargs: + default_storage_class = kwargs['defaultStorageClass'] + if file_share_name is None and 'fileShareName' in kwargs: + file_share_name = kwargs['fileShareName'] + if guess_mime_type_enabled is None and 'guessMimeTypeEnabled' in kwargs: + guess_mime_type_enabled = kwargs['guessMimeTypeEnabled'] + if kms_encrypted is None and 'kmsEncrypted' in kwargs: + kms_encrypted = kwargs['kmsEncrypted'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if nfs_file_share_defaults is None and 'nfsFileShareDefaults' in kwargs: + nfs_file_share_defaults = kwargs['nfsFileShareDefaults'] + if notification_policy is None and 'notificationPolicy' in kwargs: + notification_policy = kwargs['notificationPolicy'] + if object_acl is None and 'objectAcl' in kwargs: + object_acl = kwargs['objectAcl'] + if read_only is None and 'readOnly' in kwargs: + read_only = kwargs['readOnly'] + if requester_pays is None and 'requesterPays' in kwargs: + requester_pays = kwargs['requesterPays'] + if vpc_endpoint_dns_name is None and 'vpcEndpointDnsName' in kwargs: + vpc_endpoint_dns_name = kwargs['vpcEndpointDnsName'] + + _setter("client_lists", client_lists) + _setter("gateway_arn", gateway_arn) + _setter("location_arn", location_arn) + _setter("role_arn", role_arn) if audit_destination_arn is not None: - pulumi.set(__self__, "audit_destination_arn", audit_destination_arn) + _setter("audit_destination_arn", audit_destination_arn) if bucket_region is not None: - pulumi.set(__self__, "bucket_region", bucket_region) + _setter("bucket_region", bucket_region) if cache_attributes is not None: - pulumi.set(__self__, "cache_attributes", cache_attributes) + _setter("cache_attributes", cache_attributes) if default_storage_class is not None: - pulumi.set(__self__, "default_storage_class", default_storage_class) + _setter("default_storage_class", default_storage_class) if file_share_name is not None: - pulumi.set(__self__, "file_share_name", file_share_name) + _setter("file_share_name", file_share_name) if guess_mime_type_enabled is not None: - pulumi.set(__self__, "guess_mime_type_enabled", guess_mime_type_enabled) + _setter("guess_mime_type_enabled", guess_mime_type_enabled) if kms_encrypted is not None: - pulumi.set(__self__, "kms_encrypted", kms_encrypted) + _setter("kms_encrypted", kms_encrypted) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if nfs_file_share_defaults is not None: - pulumi.set(__self__, "nfs_file_share_defaults", nfs_file_share_defaults) + _setter("nfs_file_share_defaults", nfs_file_share_defaults) if notification_policy is not None: - pulumi.set(__self__, "notification_policy", notification_policy) + _setter("notification_policy", notification_policy) if object_acl is not None: - pulumi.set(__self__, "object_acl", object_acl) + _setter("object_acl", object_acl) if read_only is not None: - pulumi.set(__self__, "read_only", read_only) + _setter("read_only", read_only) if requester_pays is not None: - pulumi.set(__self__, "requester_pays", requester_pays) + _setter("requester_pays", requester_pays) if squash is not None: - pulumi.set(__self__, "squash", squash) + _setter("squash", squash) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_endpoint_dns_name is not None: - pulumi.set(__self__, "vpc_endpoint_dns_name", vpc_endpoint_dns_name) + _setter("vpc_endpoint_dns_name", vpc_endpoint_dns_name) @property @pulumi.getter(name="clientLists") @@ -391,57 +484,154 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_endpoint_dns_name: The DNS name of the VPC endpoint for S3 PrivateLink. """ + _NfsFileShareState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + audit_destination_arn=audit_destination_arn, + bucket_region=bucket_region, + cache_attributes=cache_attributes, + client_lists=client_lists, + default_storage_class=default_storage_class, + file_share_name=file_share_name, + fileshare_id=fileshare_id, + gateway_arn=gateway_arn, + guess_mime_type_enabled=guess_mime_type_enabled, + kms_encrypted=kms_encrypted, + kms_key_arn=kms_key_arn, + location_arn=location_arn, + nfs_file_share_defaults=nfs_file_share_defaults, + notification_policy=notification_policy, + object_acl=object_acl, + path=path, + read_only=read_only, + requester_pays=requester_pays, + role_arn=role_arn, + squash=squash, + tags=tags, + tags_all=tags_all, + vpc_endpoint_dns_name=vpc_endpoint_dns_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + audit_destination_arn: Optional[pulumi.Input[str]] = None, + bucket_region: Optional[pulumi.Input[str]] = None, + cache_attributes: Optional[pulumi.Input['NfsFileShareCacheAttributesArgs']] = None, + client_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_storage_class: Optional[pulumi.Input[str]] = None, + file_share_name: Optional[pulumi.Input[str]] = None, + fileshare_id: Optional[pulumi.Input[str]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + guess_mime_type_enabled: Optional[pulumi.Input[bool]] = None, + kms_encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + location_arn: Optional[pulumi.Input[str]] = None, + nfs_file_share_defaults: Optional[pulumi.Input['NfsFileShareNfsFileShareDefaultsArgs']] = None, + notification_policy: Optional[pulumi.Input[str]] = None, + object_acl: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + read_only: Optional[pulumi.Input[bool]] = None, + requester_pays: Optional[pulumi.Input[bool]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + squash: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_endpoint_dns_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_destination_arn is None and 'auditDestinationArn' in kwargs: + audit_destination_arn = kwargs['auditDestinationArn'] + if bucket_region is None and 'bucketRegion' in kwargs: + bucket_region = kwargs['bucketRegion'] + if cache_attributes is None and 'cacheAttributes' in kwargs: + cache_attributes = kwargs['cacheAttributes'] + if client_lists is None and 'clientLists' in kwargs: + client_lists = kwargs['clientLists'] + if default_storage_class is None and 'defaultStorageClass' in kwargs: + default_storage_class = kwargs['defaultStorageClass'] + if file_share_name is None and 'fileShareName' in kwargs: + file_share_name = kwargs['fileShareName'] + if fileshare_id is None and 'fileshareId' in kwargs: + fileshare_id = kwargs['fileshareId'] + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if guess_mime_type_enabled is None and 'guessMimeTypeEnabled' in kwargs: + guess_mime_type_enabled = kwargs['guessMimeTypeEnabled'] + if kms_encrypted is None and 'kmsEncrypted' in kwargs: + kms_encrypted = kwargs['kmsEncrypted'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if location_arn is None and 'locationArn' in kwargs: + location_arn = kwargs['locationArn'] + if nfs_file_share_defaults is None and 'nfsFileShareDefaults' in kwargs: + nfs_file_share_defaults = kwargs['nfsFileShareDefaults'] + if notification_policy is None and 'notificationPolicy' in kwargs: + notification_policy = kwargs['notificationPolicy'] + if object_acl is None and 'objectAcl' in kwargs: + object_acl = kwargs['objectAcl'] + if read_only is None and 'readOnly' in kwargs: + read_only = kwargs['readOnly'] + if requester_pays is None and 'requesterPays' in kwargs: + requester_pays = kwargs['requesterPays'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_endpoint_dns_name is None and 'vpcEndpointDnsName' in kwargs: + vpc_endpoint_dns_name = kwargs['vpcEndpointDnsName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if audit_destination_arn is not None: - pulumi.set(__self__, "audit_destination_arn", audit_destination_arn) + _setter("audit_destination_arn", audit_destination_arn) if bucket_region is not None: - pulumi.set(__self__, "bucket_region", bucket_region) + _setter("bucket_region", bucket_region) if cache_attributes is not None: - pulumi.set(__self__, "cache_attributes", cache_attributes) + _setter("cache_attributes", cache_attributes) if client_lists is not None: - pulumi.set(__self__, "client_lists", client_lists) + _setter("client_lists", client_lists) if default_storage_class is not None: - pulumi.set(__self__, "default_storage_class", default_storage_class) + _setter("default_storage_class", default_storage_class) if file_share_name is not None: - pulumi.set(__self__, "file_share_name", file_share_name) + _setter("file_share_name", file_share_name) if fileshare_id is not None: - pulumi.set(__self__, "fileshare_id", fileshare_id) + _setter("fileshare_id", fileshare_id) if gateway_arn is not None: - pulumi.set(__self__, "gateway_arn", gateway_arn) + _setter("gateway_arn", gateway_arn) if guess_mime_type_enabled is not None: - pulumi.set(__self__, "guess_mime_type_enabled", guess_mime_type_enabled) + _setter("guess_mime_type_enabled", guess_mime_type_enabled) if kms_encrypted is not None: - pulumi.set(__self__, "kms_encrypted", kms_encrypted) + _setter("kms_encrypted", kms_encrypted) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if location_arn is not None: - pulumi.set(__self__, "location_arn", location_arn) + _setter("location_arn", location_arn) if nfs_file_share_defaults is not None: - pulumi.set(__self__, "nfs_file_share_defaults", nfs_file_share_defaults) + _setter("nfs_file_share_defaults", nfs_file_share_defaults) if notification_policy is not None: - pulumi.set(__self__, "notification_policy", notification_policy) + _setter("notification_policy", notification_policy) if object_acl is not None: - pulumi.set(__self__, "object_acl", object_acl) + _setter("object_acl", object_acl) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if read_only is not None: - pulumi.set(__self__, "read_only", read_only) + _setter("read_only", read_only) if requester_pays is not None: - pulumi.set(__self__, "requester_pays", requester_pays) + _setter("requester_pays", requester_pays) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if squash is not None: - pulumi.set(__self__, "squash", squash) + _setter("squash", squash) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_endpoint_dns_name is not None: - pulumi.set(__self__, "vpc_endpoint_dns_name", vpc_endpoint_dns_name) + _setter("vpc_endpoint_dns_name", vpc_endpoint_dns_name) @property @pulumi.getter @@ -848,6 +1038,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + NfsFileShareArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -884,6 +1078,7 @@ def _internal_init(__self__, __props__.__dict__["audit_destination_arn"] = audit_destination_arn __props__.__dict__["bucket_region"] = bucket_region + cache_attributes = _utilities.configure(cache_attributes, NfsFileShareCacheAttributesArgs, True) __props__.__dict__["cache_attributes"] = cache_attributes if client_lists is None and not opts.urn: raise TypeError("Missing required property 'client_lists'") @@ -899,6 +1094,7 @@ def _internal_init(__self__, if location_arn is None and not opts.urn: raise TypeError("Missing required property 'location_arn'") __props__.__dict__["location_arn"] = location_arn + nfs_file_share_defaults = _utilities.configure(nfs_file_share_defaults, NfsFileShareNfsFileShareDefaultsArgs, True) __props__.__dict__["nfs_file_share_defaults"] = nfs_file_share_defaults __props__.__dict__["notification_policy"] = notification_policy __props__.__dict__["object_acl"] = object_acl diff --git a/sdk/python/pulumi_aws/storagegateway/outputs.py b/sdk/python/pulumi_aws/storagegateway/outputs.py index fcd669b431b..499e0044d77 100644 --- a/sdk/python/pulumi_aws/storagegateway/outputs.py +++ b/sdk/python/pulumi_aws/storagegateway/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -45,8 +45,21 @@ def __init__(__self__, *, TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket. Valid Values: `0` or `300` to `2592000` seconds (5 minutes to 30 days). Defaults to `0` """ + FileSystemAssociationCacheAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_stale_timeout_in_seconds=cache_stale_timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_stale_timeout_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_stale_timeout_in_seconds is None and 'cacheStaleTimeoutInSeconds' in kwargs: + cache_stale_timeout_in_seconds = kwargs['cacheStaleTimeoutInSeconds'] + if cache_stale_timeout_in_seconds is not None: - pulumi.set(__self__, "cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) + _setter("cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) @property @pulumi.getter(name="cacheStaleTimeoutInSeconds") @@ -83,8 +96,21 @@ def __init__(__self__, *, """ :param str ipv4_address: The Internet Protocol version 4 (IPv4) address of the interface. """ + GatewayGatewayNetworkInterface._configure( + lambda key, value: pulumi.set(__self__, key, value), + ipv4_address=ipv4_address, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ipv4_address: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ipv4_address is None and 'ipv4Address' in kwargs: + ipv4_address = kwargs['ipv4Address'] + if ipv4_address is not None: - pulumi.set(__self__, "ipv4_address", ipv4_address) + _setter("ipv4_address", ipv4_address) @property @pulumi.getter(name="ipv4Address") @@ -131,13 +157,40 @@ def __init__(__self__, *, :param str day_of_week: The day of the week component of the maintenance start time week represented as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday. :param int minute_of_hour: The minute component of the maintenance start time represented as _mm_, where _mm_ is the minute (00 to 59). The minute of the hour is in the time zone of the gateway. """ - pulumi.set(__self__, "hour_of_day", hour_of_day) + GatewayMaintenanceStartTime._configure( + lambda key, value: pulumi.set(__self__, key, value), + hour_of_day=hour_of_day, + day_of_month=day_of_month, + day_of_week=day_of_week, + minute_of_hour=minute_of_hour, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + hour_of_day: Optional[int] = None, + day_of_month: Optional[str] = None, + day_of_week: Optional[str] = None, + minute_of_hour: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if hour_of_day is None and 'hourOfDay' in kwargs: + hour_of_day = kwargs['hourOfDay'] + if hour_of_day is None: + raise TypeError("Missing 'hour_of_day' argument") + if day_of_month is None and 'dayOfMonth' in kwargs: + day_of_month = kwargs['dayOfMonth'] + if day_of_week is None and 'dayOfWeek' in kwargs: + day_of_week = kwargs['dayOfWeek'] + if minute_of_hour is None and 'minuteOfHour' in kwargs: + minute_of_hour = kwargs['minuteOfHour'] + + _setter("hour_of_day", hour_of_day) if day_of_month is not None: - pulumi.set(__self__, "day_of_month", day_of_month) + _setter("day_of_month", day_of_month) if day_of_week is not None: - pulumi.set(__self__, "day_of_week", day_of_week) + _setter("day_of_week", day_of_week) if minute_of_hour is not None: - pulumi.set(__self__, "minute_of_hour", minute_of_hour) + _setter("minute_of_hour", minute_of_hour) @property @pulumi.getter(name="hourOfDay") @@ -217,17 +270,56 @@ def __init__(__self__, *, computers, and other OUs and this parameter specifies the OU that the gateway will join within the AD domain. :param int timeout_in_seconds: Specifies the time in seconds, in which the JoinDomain operation must complete. The default is `20` seconds. """ - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "password", password) - pulumi.set(__self__, "username", username) + GatewaySmbActiveDirectorySettings._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + password=password, + username=username, + active_directory_status=active_directory_status, + domain_controllers=domain_controllers, + organizational_unit=organizational_unit, + timeout_in_seconds=timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + password: Optional[str] = None, + username: Optional[str] = None, + active_directory_status: Optional[str] = None, + domain_controllers: Optional[Sequence[str]] = None, + organizational_unit: Optional[str] = None, + timeout_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if password is None: + raise TypeError("Missing 'password' argument") + if username is None: + raise TypeError("Missing 'username' argument") + if active_directory_status is None and 'activeDirectoryStatus' in kwargs: + active_directory_status = kwargs['activeDirectoryStatus'] + if domain_controllers is None and 'domainControllers' in kwargs: + domain_controllers = kwargs['domainControllers'] + if organizational_unit is None and 'organizationalUnit' in kwargs: + organizational_unit = kwargs['organizationalUnit'] + if timeout_in_seconds is None and 'timeoutInSeconds' in kwargs: + timeout_in_seconds = kwargs['timeoutInSeconds'] + + _setter("domain_name", domain_name) + _setter("password", password) + _setter("username", username) if active_directory_status is not None: - pulumi.set(__self__, "active_directory_status", active_directory_status) + _setter("active_directory_status", active_directory_status) if domain_controllers is not None: - pulumi.set(__self__, "domain_controllers", domain_controllers) + _setter("domain_controllers", domain_controllers) if organizational_unit is not None: - pulumi.set(__self__, "organizational_unit", organizational_unit) + _setter("organizational_unit", organizational_unit) if timeout_in_seconds is not None: - pulumi.set(__self__, "timeout_in_seconds", timeout_in_seconds) + _setter("timeout_in_seconds", timeout_in_seconds) @property @pulumi.getter(name="domainName") @@ -311,8 +403,21 @@ def __init__(__self__, *, TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket. Valid Values: 300 to 2,592,000 seconds (5 minutes to 30 days) """ + NfsFileShareCacheAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_stale_timeout_in_seconds=cache_stale_timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_stale_timeout_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_stale_timeout_in_seconds is None and 'cacheStaleTimeoutInSeconds' in kwargs: + cache_stale_timeout_in_seconds = kwargs['cacheStaleTimeoutInSeconds'] + if cache_stale_timeout_in_seconds is not None: - pulumi.set(__self__, "cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) + _setter("cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) @property @pulumi.getter(name="cacheStaleTimeoutInSeconds") @@ -361,14 +466,39 @@ def __init__(__self__, *, :param str group_id: The default group ID for the file share (unless the files have another group ID specified). Defaults to `65534` (`nfsnobody`). Valid values: `0` through `4294967294`. :param str owner_id: The default owner ID for the file share (unless the files have another owner ID specified). Defaults to `65534` (`nfsnobody`). Valid values: `0` through `4294967294`. """ + NfsFileShareNfsFileShareDefaults._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_mode=directory_mode, + file_mode=file_mode, + group_id=group_id, + owner_id=owner_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_mode: Optional[str] = None, + file_mode: Optional[str] = None, + group_id: Optional[str] = None, + owner_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_mode is None and 'directoryMode' in kwargs: + directory_mode = kwargs['directoryMode'] + if file_mode is None and 'fileMode' in kwargs: + file_mode = kwargs['fileMode'] + if group_id is None and 'groupId' in kwargs: + group_id = kwargs['groupId'] + if owner_id is None and 'ownerId' in kwargs: + owner_id = kwargs['ownerId'] + if directory_mode is not None: - pulumi.set(__self__, "directory_mode", directory_mode) + _setter("directory_mode", directory_mode) if file_mode is not None: - pulumi.set(__self__, "file_mode", file_mode) + _setter("file_mode", file_mode) if group_id is not None: - pulumi.set(__self__, "group_id", group_id) + _setter("group_id", group_id) if owner_id is not None: - pulumi.set(__self__, "owner_id", owner_id) + _setter("owner_id", owner_id) @property @pulumi.getter(name="directoryMode") @@ -429,8 +559,21 @@ def __init__(__self__, *, TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket. Valid Values: 300 to 2,592,000 seconds (5 minutes to 30 days) """ + SmbFileShareCacheAttributes._configure( + lambda key, value: pulumi.set(__self__, key, value), + cache_stale_timeout_in_seconds=cache_stale_timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cache_stale_timeout_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cache_stale_timeout_in_seconds is None and 'cacheStaleTimeoutInSeconds' in kwargs: + cache_stale_timeout_in_seconds = kwargs['cacheStaleTimeoutInSeconds'] + if cache_stale_timeout_in_seconds is not None: - pulumi.set(__self__, "cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) + _setter("cache_stale_timeout_in_seconds", cache_stale_timeout_in_seconds) @property @pulumi.getter(name="cacheStaleTimeoutInSeconds") diff --git a/sdk/python/pulumi_aws/storagegateway/smb_file_share.py b/sdk/python/pulumi_aws/storagegateway/smb_file_share.py index abf6e1a3238..558a332e453 100644 --- a/sdk/python/pulumi_aws/storagegateway/smb_file_share.py +++ b/sdk/python/pulumi_aws/storagegateway/smb_file_share.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -69,53 +69,164 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] valid_user_lists: A list of users in the Active Directory that are allowed to access the file share. If you need to specify an Active directory group, add '@' before the name of the group. It will be set on Allowed group in AWS console. Only valid if `authentication` is set to `ActiveDirectory`. :param pulumi.Input[str] vpc_endpoint_dns_name: The DNS name of the VPC endpoint for S3 private link. """ - pulumi.set(__self__, "gateway_arn", gateway_arn) - pulumi.set(__self__, "location_arn", location_arn) - pulumi.set(__self__, "role_arn", role_arn) + SmbFileShareArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gateway_arn=gateway_arn, + location_arn=location_arn, + role_arn=role_arn, + access_based_enumeration=access_based_enumeration, + admin_user_lists=admin_user_lists, + audit_destination_arn=audit_destination_arn, + authentication=authentication, + bucket_region=bucket_region, + cache_attributes=cache_attributes, + case_sensitivity=case_sensitivity, + default_storage_class=default_storage_class, + file_share_name=file_share_name, + guess_mime_type_enabled=guess_mime_type_enabled, + invalid_user_lists=invalid_user_lists, + kms_encrypted=kms_encrypted, + kms_key_arn=kms_key_arn, + notification_policy=notification_policy, + object_acl=object_acl, + oplocks_enabled=oplocks_enabled, + read_only=read_only, + requester_pays=requester_pays, + smb_acl_enabled=smb_acl_enabled, + tags=tags, + valid_user_lists=valid_user_lists, + vpc_endpoint_dns_name=vpc_endpoint_dns_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gateway_arn: Optional[pulumi.Input[str]] = None, + location_arn: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + access_based_enumeration: Optional[pulumi.Input[bool]] = None, + admin_user_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + audit_destination_arn: Optional[pulumi.Input[str]] = None, + authentication: Optional[pulumi.Input[str]] = None, + bucket_region: Optional[pulumi.Input[str]] = None, + cache_attributes: Optional[pulumi.Input['SmbFileShareCacheAttributesArgs']] = None, + case_sensitivity: Optional[pulumi.Input[str]] = None, + default_storage_class: Optional[pulumi.Input[str]] = None, + file_share_name: Optional[pulumi.Input[str]] = None, + guess_mime_type_enabled: Optional[pulumi.Input[bool]] = None, + invalid_user_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + kms_encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + notification_policy: Optional[pulumi.Input[str]] = None, + object_acl: Optional[pulumi.Input[str]] = None, + oplocks_enabled: Optional[pulumi.Input[bool]] = None, + read_only: Optional[pulumi.Input[bool]] = None, + requester_pays: Optional[pulumi.Input[bool]] = None, + smb_acl_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + valid_user_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_endpoint_dns_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if gateway_arn is None: + raise TypeError("Missing 'gateway_arn' argument") + if location_arn is None and 'locationArn' in kwargs: + location_arn = kwargs['locationArn'] + if location_arn is None: + raise TypeError("Missing 'location_arn' argument") + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if role_arn is None: + raise TypeError("Missing 'role_arn' argument") + if access_based_enumeration is None and 'accessBasedEnumeration' in kwargs: + access_based_enumeration = kwargs['accessBasedEnumeration'] + if admin_user_lists is None and 'adminUserLists' in kwargs: + admin_user_lists = kwargs['adminUserLists'] + if audit_destination_arn is None and 'auditDestinationArn' in kwargs: + audit_destination_arn = kwargs['auditDestinationArn'] + if bucket_region is None and 'bucketRegion' in kwargs: + bucket_region = kwargs['bucketRegion'] + if cache_attributes is None and 'cacheAttributes' in kwargs: + cache_attributes = kwargs['cacheAttributes'] + if case_sensitivity is None and 'caseSensitivity' in kwargs: + case_sensitivity = kwargs['caseSensitivity'] + if default_storage_class is None and 'defaultStorageClass' in kwargs: + default_storage_class = kwargs['defaultStorageClass'] + if file_share_name is None and 'fileShareName' in kwargs: + file_share_name = kwargs['fileShareName'] + if guess_mime_type_enabled is None and 'guessMimeTypeEnabled' in kwargs: + guess_mime_type_enabled = kwargs['guessMimeTypeEnabled'] + if invalid_user_lists is None and 'invalidUserLists' in kwargs: + invalid_user_lists = kwargs['invalidUserLists'] + if kms_encrypted is None and 'kmsEncrypted' in kwargs: + kms_encrypted = kwargs['kmsEncrypted'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if notification_policy is None and 'notificationPolicy' in kwargs: + notification_policy = kwargs['notificationPolicy'] + if object_acl is None and 'objectAcl' in kwargs: + object_acl = kwargs['objectAcl'] + if oplocks_enabled is None and 'oplocksEnabled' in kwargs: + oplocks_enabled = kwargs['oplocksEnabled'] + if read_only is None and 'readOnly' in kwargs: + read_only = kwargs['readOnly'] + if requester_pays is None and 'requesterPays' in kwargs: + requester_pays = kwargs['requesterPays'] + if smb_acl_enabled is None and 'smbAclEnabled' in kwargs: + smb_acl_enabled = kwargs['smbAclEnabled'] + if valid_user_lists is None and 'validUserLists' in kwargs: + valid_user_lists = kwargs['validUserLists'] + if vpc_endpoint_dns_name is None and 'vpcEndpointDnsName' in kwargs: + vpc_endpoint_dns_name = kwargs['vpcEndpointDnsName'] + + _setter("gateway_arn", gateway_arn) + _setter("location_arn", location_arn) + _setter("role_arn", role_arn) if access_based_enumeration is not None: - pulumi.set(__self__, "access_based_enumeration", access_based_enumeration) + _setter("access_based_enumeration", access_based_enumeration) if admin_user_lists is not None: - pulumi.set(__self__, "admin_user_lists", admin_user_lists) + _setter("admin_user_lists", admin_user_lists) if audit_destination_arn is not None: - pulumi.set(__self__, "audit_destination_arn", audit_destination_arn) + _setter("audit_destination_arn", audit_destination_arn) if authentication is not None: - pulumi.set(__self__, "authentication", authentication) + _setter("authentication", authentication) if bucket_region is not None: - pulumi.set(__self__, "bucket_region", bucket_region) + _setter("bucket_region", bucket_region) if cache_attributes is not None: - pulumi.set(__self__, "cache_attributes", cache_attributes) + _setter("cache_attributes", cache_attributes) if case_sensitivity is not None: - pulumi.set(__self__, "case_sensitivity", case_sensitivity) + _setter("case_sensitivity", case_sensitivity) if default_storage_class is not None: - pulumi.set(__self__, "default_storage_class", default_storage_class) + _setter("default_storage_class", default_storage_class) if file_share_name is not None: - pulumi.set(__self__, "file_share_name", file_share_name) + _setter("file_share_name", file_share_name) if guess_mime_type_enabled is not None: - pulumi.set(__self__, "guess_mime_type_enabled", guess_mime_type_enabled) + _setter("guess_mime_type_enabled", guess_mime_type_enabled) if invalid_user_lists is not None: - pulumi.set(__self__, "invalid_user_lists", invalid_user_lists) + _setter("invalid_user_lists", invalid_user_lists) if kms_encrypted is not None: - pulumi.set(__self__, "kms_encrypted", kms_encrypted) + _setter("kms_encrypted", kms_encrypted) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if notification_policy is not None: - pulumi.set(__self__, "notification_policy", notification_policy) + _setter("notification_policy", notification_policy) if object_acl is not None: - pulumi.set(__self__, "object_acl", object_acl) + _setter("object_acl", object_acl) if oplocks_enabled is not None: - pulumi.set(__self__, "oplocks_enabled", oplocks_enabled) + _setter("oplocks_enabled", oplocks_enabled) if read_only is not None: - pulumi.set(__self__, "read_only", read_only) + _setter("read_only", read_only) if requester_pays is not None: - pulumi.set(__self__, "requester_pays", requester_pays) + _setter("requester_pays", requester_pays) if smb_acl_enabled is not None: - pulumi.set(__self__, "smb_acl_enabled", smb_acl_enabled) + _setter("smb_acl_enabled", smb_acl_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if valid_user_lists is not None: - pulumi.set(__self__, "valid_user_lists", valid_user_lists) + _setter("valid_user_lists", valid_user_lists) if vpc_endpoint_dns_name is not None: - pulumi.set(__self__, "vpc_endpoint_dns_name", vpc_endpoint_dns_name) + _setter("vpc_endpoint_dns_name", vpc_endpoint_dns_name) @property @pulumi.getter(name="gatewayArn") @@ -482,67 +593,184 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] valid_user_lists: A list of users in the Active Directory that are allowed to access the file share. If you need to specify an Active directory group, add '@' before the name of the group. It will be set on Allowed group in AWS console. Only valid if `authentication` is set to `ActiveDirectory`. :param pulumi.Input[str] vpc_endpoint_dns_name: The DNS name of the VPC endpoint for S3 private link. """ + _SmbFileShareState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_based_enumeration=access_based_enumeration, + admin_user_lists=admin_user_lists, + arn=arn, + audit_destination_arn=audit_destination_arn, + authentication=authentication, + bucket_region=bucket_region, + cache_attributes=cache_attributes, + case_sensitivity=case_sensitivity, + default_storage_class=default_storage_class, + file_share_name=file_share_name, + fileshare_id=fileshare_id, + gateway_arn=gateway_arn, + guess_mime_type_enabled=guess_mime_type_enabled, + invalid_user_lists=invalid_user_lists, + kms_encrypted=kms_encrypted, + kms_key_arn=kms_key_arn, + location_arn=location_arn, + notification_policy=notification_policy, + object_acl=object_acl, + oplocks_enabled=oplocks_enabled, + path=path, + read_only=read_only, + requester_pays=requester_pays, + role_arn=role_arn, + smb_acl_enabled=smb_acl_enabled, + tags=tags, + tags_all=tags_all, + valid_user_lists=valid_user_lists, + vpc_endpoint_dns_name=vpc_endpoint_dns_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_based_enumeration: Optional[pulumi.Input[bool]] = None, + admin_user_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + audit_destination_arn: Optional[pulumi.Input[str]] = None, + authentication: Optional[pulumi.Input[str]] = None, + bucket_region: Optional[pulumi.Input[str]] = None, + cache_attributes: Optional[pulumi.Input['SmbFileShareCacheAttributesArgs']] = None, + case_sensitivity: Optional[pulumi.Input[str]] = None, + default_storage_class: Optional[pulumi.Input[str]] = None, + file_share_name: Optional[pulumi.Input[str]] = None, + fileshare_id: Optional[pulumi.Input[str]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + guess_mime_type_enabled: Optional[pulumi.Input[bool]] = None, + invalid_user_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + kms_encrypted: Optional[pulumi.Input[bool]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + location_arn: Optional[pulumi.Input[str]] = None, + notification_policy: Optional[pulumi.Input[str]] = None, + object_acl: Optional[pulumi.Input[str]] = None, + oplocks_enabled: Optional[pulumi.Input[bool]] = None, + path: Optional[pulumi.Input[str]] = None, + read_only: Optional[pulumi.Input[bool]] = None, + requester_pays: Optional[pulumi.Input[bool]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + smb_acl_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + valid_user_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_endpoint_dns_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_based_enumeration is None and 'accessBasedEnumeration' in kwargs: + access_based_enumeration = kwargs['accessBasedEnumeration'] + if admin_user_lists is None and 'adminUserLists' in kwargs: + admin_user_lists = kwargs['adminUserLists'] + if audit_destination_arn is None and 'auditDestinationArn' in kwargs: + audit_destination_arn = kwargs['auditDestinationArn'] + if bucket_region is None and 'bucketRegion' in kwargs: + bucket_region = kwargs['bucketRegion'] + if cache_attributes is None and 'cacheAttributes' in kwargs: + cache_attributes = kwargs['cacheAttributes'] + if case_sensitivity is None and 'caseSensitivity' in kwargs: + case_sensitivity = kwargs['caseSensitivity'] + if default_storage_class is None and 'defaultStorageClass' in kwargs: + default_storage_class = kwargs['defaultStorageClass'] + if file_share_name is None and 'fileShareName' in kwargs: + file_share_name = kwargs['fileShareName'] + if fileshare_id is None and 'fileshareId' in kwargs: + fileshare_id = kwargs['fileshareId'] + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if guess_mime_type_enabled is None and 'guessMimeTypeEnabled' in kwargs: + guess_mime_type_enabled = kwargs['guessMimeTypeEnabled'] + if invalid_user_lists is None and 'invalidUserLists' in kwargs: + invalid_user_lists = kwargs['invalidUserLists'] + if kms_encrypted is None and 'kmsEncrypted' in kwargs: + kms_encrypted = kwargs['kmsEncrypted'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if location_arn is None and 'locationArn' in kwargs: + location_arn = kwargs['locationArn'] + if notification_policy is None and 'notificationPolicy' in kwargs: + notification_policy = kwargs['notificationPolicy'] + if object_acl is None and 'objectAcl' in kwargs: + object_acl = kwargs['objectAcl'] + if oplocks_enabled is None and 'oplocksEnabled' in kwargs: + oplocks_enabled = kwargs['oplocksEnabled'] + if read_only is None and 'readOnly' in kwargs: + read_only = kwargs['readOnly'] + if requester_pays is None and 'requesterPays' in kwargs: + requester_pays = kwargs['requesterPays'] + if role_arn is None and 'roleArn' in kwargs: + role_arn = kwargs['roleArn'] + if smb_acl_enabled is None and 'smbAclEnabled' in kwargs: + smb_acl_enabled = kwargs['smbAclEnabled'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if valid_user_lists is None and 'validUserLists' in kwargs: + valid_user_lists = kwargs['validUserLists'] + if vpc_endpoint_dns_name is None and 'vpcEndpointDnsName' in kwargs: + vpc_endpoint_dns_name = kwargs['vpcEndpointDnsName'] + if access_based_enumeration is not None: - pulumi.set(__self__, "access_based_enumeration", access_based_enumeration) + _setter("access_based_enumeration", access_based_enumeration) if admin_user_lists is not None: - pulumi.set(__self__, "admin_user_lists", admin_user_lists) + _setter("admin_user_lists", admin_user_lists) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if audit_destination_arn is not None: - pulumi.set(__self__, "audit_destination_arn", audit_destination_arn) + _setter("audit_destination_arn", audit_destination_arn) if authentication is not None: - pulumi.set(__self__, "authentication", authentication) + _setter("authentication", authentication) if bucket_region is not None: - pulumi.set(__self__, "bucket_region", bucket_region) + _setter("bucket_region", bucket_region) if cache_attributes is not None: - pulumi.set(__self__, "cache_attributes", cache_attributes) + _setter("cache_attributes", cache_attributes) if case_sensitivity is not None: - pulumi.set(__self__, "case_sensitivity", case_sensitivity) + _setter("case_sensitivity", case_sensitivity) if default_storage_class is not None: - pulumi.set(__self__, "default_storage_class", default_storage_class) + _setter("default_storage_class", default_storage_class) if file_share_name is not None: - pulumi.set(__self__, "file_share_name", file_share_name) + _setter("file_share_name", file_share_name) if fileshare_id is not None: - pulumi.set(__self__, "fileshare_id", fileshare_id) + _setter("fileshare_id", fileshare_id) if gateway_arn is not None: - pulumi.set(__self__, "gateway_arn", gateway_arn) + _setter("gateway_arn", gateway_arn) if guess_mime_type_enabled is not None: - pulumi.set(__self__, "guess_mime_type_enabled", guess_mime_type_enabled) + _setter("guess_mime_type_enabled", guess_mime_type_enabled) if invalid_user_lists is not None: - pulumi.set(__self__, "invalid_user_lists", invalid_user_lists) + _setter("invalid_user_lists", invalid_user_lists) if kms_encrypted is not None: - pulumi.set(__self__, "kms_encrypted", kms_encrypted) + _setter("kms_encrypted", kms_encrypted) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) if location_arn is not None: - pulumi.set(__self__, "location_arn", location_arn) + _setter("location_arn", location_arn) if notification_policy is not None: - pulumi.set(__self__, "notification_policy", notification_policy) + _setter("notification_policy", notification_policy) if object_acl is not None: - pulumi.set(__self__, "object_acl", object_acl) + _setter("object_acl", object_acl) if oplocks_enabled is not None: - pulumi.set(__self__, "oplocks_enabled", oplocks_enabled) + _setter("oplocks_enabled", oplocks_enabled) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if read_only is not None: - pulumi.set(__self__, "read_only", read_only) + _setter("read_only", read_only) if requester_pays is not None: - pulumi.set(__self__, "requester_pays", requester_pays) + _setter("requester_pays", requester_pays) if role_arn is not None: - pulumi.set(__self__, "role_arn", role_arn) + _setter("role_arn", role_arn) if smb_acl_enabled is not None: - pulumi.set(__self__, "smb_acl_enabled", smb_acl_enabled) + _setter("smb_acl_enabled", smb_acl_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if valid_user_lists is not None: - pulumi.set(__self__, "valid_user_lists", valid_user_lists) + _setter("valid_user_lists", valid_user_lists) if vpc_endpoint_dns_name is not None: - pulumi.set(__self__, "vpc_endpoint_dns_name", vpc_endpoint_dns_name) + _setter("vpc_endpoint_dns_name", vpc_endpoint_dns_name) @property @pulumi.getter(name="accessBasedEnumeration") @@ -1053,6 +1281,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SmbFileShareArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1097,6 +1329,7 @@ def _internal_init(__self__, __props__.__dict__["audit_destination_arn"] = audit_destination_arn __props__.__dict__["authentication"] = authentication __props__.__dict__["bucket_region"] = bucket_region + cache_attributes = _utilities.configure(cache_attributes, SmbFileShareCacheAttributesArgs, True) __props__.__dict__["cache_attributes"] = cache_attributes __props__.__dict__["case_sensitivity"] = case_sensitivity __props__.__dict__["default_storage_class"] = default_storage_class diff --git a/sdk/python/pulumi_aws/storagegateway/stored_iscsi_volume.py b/sdk/python/pulumi_aws/storagegateway/stored_iscsi_volume.py index c29063e1b53..fbb672d8399 100644 --- a/sdk/python/pulumi_aws/storagegateway/stored_iscsi_volume.py +++ b/sdk/python/pulumi_aws/storagegateway/stored_iscsi_volume.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['StoredIscsiVolumeArgs', 'StoredIscsiVolume'] @@ -35,19 +35,72 @@ def __init__(__self__, *, :param pulumi.Input[str] snapshot_id: The snapshot ID of the snapshot to restore as the new stored volumeE.g., `snap-1122aabb`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "disk_id", disk_id) - pulumi.set(__self__, "gateway_arn", gateway_arn) - pulumi.set(__self__, "network_interface_id", network_interface_id) - pulumi.set(__self__, "preserve_existing_data", preserve_existing_data) - pulumi.set(__self__, "target_name", target_name) + StoredIscsiVolumeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + disk_id=disk_id, + gateway_arn=gateway_arn, + network_interface_id=network_interface_id, + preserve_existing_data=preserve_existing_data, + target_name=target_name, + kms_encrypted=kms_encrypted, + kms_key=kms_key, + snapshot_id=snapshot_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disk_id: Optional[pulumi.Input[str]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + preserve_existing_data: Optional[pulumi.Input[bool]] = None, + target_name: Optional[pulumi.Input[str]] = None, + kms_encrypted: Optional[pulumi.Input[bool]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disk_id is None and 'diskId' in kwargs: + disk_id = kwargs['diskId'] + if disk_id is None: + raise TypeError("Missing 'disk_id' argument") + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if gateway_arn is None: + raise TypeError("Missing 'gateway_arn' argument") + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_id is None: + raise TypeError("Missing 'network_interface_id' argument") + if preserve_existing_data is None and 'preserveExistingData' in kwargs: + preserve_existing_data = kwargs['preserveExistingData'] + if preserve_existing_data is None: + raise TypeError("Missing 'preserve_existing_data' argument") + if target_name is None and 'targetName' in kwargs: + target_name = kwargs['targetName'] + if target_name is None: + raise TypeError("Missing 'target_name' argument") + if kms_encrypted is None and 'kmsEncrypted' in kwargs: + kms_encrypted = kwargs['kmsEncrypted'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + + _setter("disk_id", disk_id) + _setter("gateway_arn", gateway_arn) + _setter("network_interface_id", network_interface_id) + _setter("preserve_existing_data", preserve_existing_data) + _setter("target_name", target_name) if kms_encrypted is not None: - pulumi.set(__self__, "kms_encrypted", kms_encrypted) + _setter("kms_encrypted", kms_encrypted) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="diskId") @@ -204,49 +257,134 @@ def __init__(__self__, *, :param pulumi.Input[str] volume_status: indicates the state of the storage volume. :param pulumi.Input[str] volume_type: indicates the type of the volume. """ + _StoredIscsiVolumeState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + chap_enabled=chap_enabled, + disk_id=disk_id, + gateway_arn=gateway_arn, + kms_encrypted=kms_encrypted, + kms_key=kms_key, + lun_number=lun_number, + network_interface_id=network_interface_id, + network_interface_port=network_interface_port, + preserve_existing_data=preserve_existing_data, + snapshot_id=snapshot_id, + tags=tags, + tags_all=tags_all, + target_arn=target_arn, + target_name=target_name, + volume_attachment_status=volume_attachment_status, + volume_id=volume_id, + volume_size_in_bytes=volume_size_in_bytes, + volume_status=volume_status, + volume_type=volume_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + chap_enabled: Optional[pulumi.Input[bool]] = None, + disk_id: Optional[pulumi.Input[str]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + kms_encrypted: Optional[pulumi.Input[bool]] = None, + kms_key: Optional[pulumi.Input[str]] = None, + lun_number: Optional[pulumi.Input[int]] = None, + network_interface_id: Optional[pulumi.Input[str]] = None, + network_interface_port: Optional[pulumi.Input[int]] = None, + preserve_existing_data: Optional[pulumi.Input[bool]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_arn: Optional[pulumi.Input[str]] = None, + target_name: Optional[pulumi.Input[str]] = None, + volume_attachment_status: Optional[pulumi.Input[str]] = None, + volume_id: Optional[pulumi.Input[str]] = None, + volume_size_in_bytes: Optional[pulumi.Input[int]] = None, + volume_status: Optional[pulumi.Input[str]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if chap_enabled is None and 'chapEnabled' in kwargs: + chap_enabled = kwargs['chapEnabled'] + if disk_id is None and 'diskId' in kwargs: + disk_id = kwargs['diskId'] + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if kms_encrypted is None and 'kmsEncrypted' in kwargs: + kms_encrypted = kwargs['kmsEncrypted'] + if kms_key is None and 'kmsKey' in kwargs: + kms_key = kwargs['kmsKey'] + if lun_number is None and 'lunNumber' in kwargs: + lun_number = kwargs['lunNumber'] + if network_interface_id is None and 'networkInterfaceId' in kwargs: + network_interface_id = kwargs['networkInterfaceId'] + if network_interface_port is None and 'networkInterfacePort' in kwargs: + network_interface_port = kwargs['networkInterfacePort'] + if preserve_existing_data is None and 'preserveExistingData' in kwargs: + preserve_existing_data = kwargs['preserveExistingData'] + if snapshot_id is None and 'snapshotId' in kwargs: + snapshot_id = kwargs['snapshotId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if target_arn is None and 'targetArn' in kwargs: + target_arn = kwargs['targetArn'] + if target_name is None and 'targetName' in kwargs: + target_name = kwargs['targetName'] + if volume_attachment_status is None and 'volumeAttachmentStatus' in kwargs: + volume_attachment_status = kwargs['volumeAttachmentStatus'] + if volume_id is None and 'volumeId' in kwargs: + volume_id = kwargs['volumeId'] + if volume_size_in_bytes is None and 'volumeSizeInBytes' in kwargs: + volume_size_in_bytes = kwargs['volumeSizeInBytes'] + if volume_status is None and 'volumeStatus' in kwargs: + volume_status = kwargs['volumeStatus'] + if volume_type is None and 'volumeType' in kwargs: + volume_type = kwargs['volumeType'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if chap_enabled is not None: - pulumi.set(__self__, "chap_enabled", chap_enabled) + _setter("chap_enabled", chap_enabled) if disk_id is not None: - pulumi.set(__self__, "disk_id", disk_id) + _setter("disk_id", disk_id) if gateway_arn is not None: - pulumi.set(__self__, "gateway_arn", gateway_arn) + _setter("gateway_arn", gateway_arn) if kms_encrypted is not None: - pulumi.set(__self__, "kms_encrypted", kms_encrypted) + _setter("kms_encrypted", kms_encrypted) if kms_key is not None: - pulumi.set(__self__, "kms_key", kms_key) + _setter("kms_key", kms_key) if lun_number is not None: - pulumi.set(__self__, "lun_number", lun_number) + _setter("lun_number", lun_number) if network_interface_id is not None: - pulumi.set(__self__, "network_interface_id", network_interface_id) + _setter("network_interface_id", network_interface_id) if network_interface_port is not None: - pulumi.set(__self__, "network_interface_port", network_interface_port) + _setter("network_interface_port", network_interface_port) if preserve_existing_data is not None: - pulumi.set(__self__, "preserve_existing_data", preserve_existing_data) + _setter("preserve_existing_data", preserve_existing_data) if snapshot_id is not None: - pulumi.set(__self__, "snapshot_id", snapshot_id) + _setter("snapshot_id", snapshot_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if target_arn is not None: - pulumi.set(__self__, "target_arn", target_arn) + _setter("target_arn", target_arn) if target_name is not None: - pulumi.set(__self__, "target_name", target_name) + _setter("target_name", target_name) if volume_attachment_status is not None: - pulumi.set(__self__, "volume_attachment_status", volume_attachment_status) + _setter("volume_attachment_status", volume_attachment_status) if volume_id is not None: - pulumi.set(__self__, "volume_id", volume_id) + _setter("volume_id", volume_id) if volume_size_in_bytes is not None: - pulumi.set(__self__, "volume_size_in_bytes", volume_size_in_bytes) + _setter("volume_size_in_bytes", volume_size_in_bytes) if volume_status is not None: - pulumi.set(__self__, "volume_status", volume_status) + _setter("volume_status", volume_status) if volume_type is not None: - pulumi.set(__self__, "volume_type", volume_type) + _setter("volume_type", volume_type) @property @pulumi.getter @@ -619,6 +757,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + StoredIscsiVolumeArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/storagegateway/tape_pool.py b/sdk/python/pulumi_aws/storagegateway/tape_pool.py index f7290d11f4a..15cdcb5587e 100644 --- a/sdk/python/pulumi_aws/storagegateway/tape_pool.py +++ b/sdk/python/pulumi_aws/storagegateway/tape_pool.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TapePoolArgs', 'TapePool'] @@ -27,14 +27,45 @@ def __init__(__self__, *, :param pulumi.Input[str] retention_lock_type: Tape retention lock can be configured in two modes. When configured in governance mode, AWS accounts with specific IAM permissions are authorized to remove the tape retention lock from archived virtual tapes. When configured in compliance mode, the tape retention lock cannot be removed by any user, including the root AWS account. Possible values are `COMPLIANCE`, `GOVERNANCE`, and `NONE`. Default value is `NONE`. :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. """ - pulumi.set(__self__, "pool_name", pool_name) - pulumi.set(__self__, "storage_class", storage_class) + TapePoolArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + pool_name=pool_name, + storage_class=storage_class, + retention_lock_time_in_days=retention_lock_time_in_days, + retention_lock_type=retention_lock_type, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + pool_name: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + retention_lock_time_in_days: Optional[pulumi.Input[int]] = None, + retention_lock_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pool_name is None and 'poolName' in kwargs: + pool_name = kwargs['poolName'] + if pool_name is None: + raise TypeError("Missing 'pool_name' argument") + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if storage_class is None: + raise TypeError("Missing 'storage_class' argument") + if retention_lock_time_in_days is None and 'retentionLockTimeInDays' in kwargs: + retention_lock_time_in_days = kwargs['retentionLockTimeInDays'] + if retention_lock_type is None and 'retentionLockType' in kwargs: + retention_lock_type = kwargs['retentionLockType'] + + _setter("pool_name", pool_name) + _setter("storage_class", storage_class) if retention_lock_time_in_days is not None: - pulumi.set(__self__, "retention_lock_time_in_days", retention_lock_time_in_days) + _setter("retention_lock_time_in_days", retention_lock_time_in_days) if retention_lock_type is not None: - pulumi.set(__self__, "retention_lock_type", retention_lock_type) + _setter("retention_lock_type", retention_lock_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="poolName") @@ -117,23 +148,56 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _TapePoolState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + pool_name=pool_name, + retention_lock_time_in_days=retention_lock_time_in_days, + retention_lock_type=retention_lock_type, + storage_class=storage_class, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + pool_name: Optional[pulumi.Input[str]] = None, + retention_lock_time_in_days: Optional[pulumi.Input[int]] = None, + retention_lock_type: Optional[pulumi.Input[str]] = None, + storage_class: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if pool_name is None and 'poolName' in kwargs: + pool_name = kwargs['poolName'] + if retention_lock_time_in_days is None and 'retentionLockTimeInDays' in kwargs: + retention_lock_time_in_days = kwargs['retentionLockTimeInDays'] + if retention_lock_type is None and 'retentionLockType' in kwargs: + retention_lock_type = kwargs['retentionLockType'] + if storage_class is None and 'storageClass' in kwargs: + storage_class = kwargs['storageClass'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if pool_name is not None: - pulumi.set(__self__, "pool_name", pool_name) + _setter("pool_name", pool_name) if retention_lock_time_in_days is not None: - pulumi.set(__self__, "retention_lock_time_in_days", retention_lock_time_in_days) + _setter("retention_lock_time_in_days", retention_lock_time_in_days) if retention_lock_type is not None: - pulumi.set(__self__, "retention_lock_type", retention_lock_type) + _setter("retention_lock_type", retention_lock_type) if storage_class is not None: - pulumi.set(__self__, "storage_class", storage_class) + _setter("storage_class", storage_class) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -302,6 +366,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TapePoolArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/storagegateway/upload_buffer.py b/sdk/python/pulumi_aws/storagegateway/upload_buffer.py index 2f9a05a234a..6e5229908c8 100644 --- a/sdk/python/pulumi_aws/storagegateway/upload_buffer.py +++ b/sdk/python/pulumi_aws/storagegateway/upload_buffer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['UploadBufferArgs', 'UploadBuffer'] @@ -23,11 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[str] disk_id: Local disk identifier. For example, `pci-0000:03:00.0-scsi-0:0:0:0`. :param pulumi.Input[str] disk_path: Local disk path. For example, `/dev/nvme1n1`. """ - pulumi.set(__self__, "gateway_arn", gateway_arn) + UploadBufferArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gateway_arn=gateway_arn, + disk_id=disk_id, + disk_path=disk_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gateway_arn: Optional[pulumi.Input[str]] = None, + disk_id: Optional[pulumi.Input[str]] = None, + disk_path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if gateway_arn is None: + raise TypeError("Missing 'gateway_arn' argument") + if disk_id is None and 'diskId' in kwargs: + disk_id = kwargs['diskId'] + if disk_path is None and 'diskPath' in kwargs: + disk_path = kwargs['diskPath'] + + _setter("gateway_arn", gateway_arn) if disk_id is not None: - pulumi.set(__self__, "disk_id", disk_id) + _setter("disk_id", disk_id) if disk_path is not None: - pulumi.set(__self__, "disk_path", disk_path) + _setter("disk_path", disk_path) @property @pulumi.getter(name="gatewayArn") @@ -78,12 +101,33 @@ def __init__(__self__, *, :param pulumi.Input[str] disk_path: Local disk path. For example, `/dev/nvme1n1`. :param pulumi.Input[str] gateway_arn: The Amazon Resource Name (ARN) of the gateway. """ + _UploadBufferState._configure( + lambda key, value: pulumi.set(__self__, key, value), + disk_id=disk_id, + disk_path=disk_path, + gateway_arn=gateway_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disk_id: Optional[pulumi.Input[str]] = None, + disk_path: Optional[pulumi.Input[str]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disk_id is None and 'diskId' in kwargs: + disk_id = kwargs['diskId'] + if disk_path is None and 'diskPath' in kwargs: + disk_path = kwargs['diskPath'] + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if disk_id is not None: - pulumi.set(__self__, "disk_id", disk_id) + _setter("disk_id", disk_id) if disk_path is not None: - pulumi.set(__self__, "disk_path", disk_path) + _setter("disk_path", disk_path) if gateway_arn is not None: - pulumi.set(__self__, "gateway_arn", gateway_arn) + _setter("gateway_arn", gateway_arn) @property @pulumi.getter(name="diskId") @@ -231,6 +275,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UploadBufferArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/storagegateway/working_storage.py b/sdk/python/pulumi_aws/storagegateway/working_storage.py index 2169cc3abcd..31e4a954899 100644 --- a/sdk/python/pulumi_aws/storagegateway/working_storage.py +++ b/sdk/python/pulumi_aws/storagegateway/working_storage.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['WorkingStorageArgs', 'WorkingStorage'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] disk_id: Local disk identifier. For example, `pci-0000:03:00.0-scsi-0:0:0:0`. :param pulumi.Input[str] gateway_arn: The Amazon Resource Name (ARN) of the gateway. """ - pulumi.set(__self__, "disk_id", disk_id) - pulumi.set(__self__, "gateway_arn", gateway_arn) + WorkingStorageArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + disk_id=disk_id, + gateway_arn=gateway_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disk_id: Optional[pulumi.Input[str]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disk_id is None and 'diskId' in kwargs: + disk_id = kwargs['diskId'] + if disk_id is None: + raise TypeError("Missing 'disk_id' argument") + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if gateway_arn is None: + raise TypeError("Missing 'gateway_arn' argument") + + _setter("disk_id", disk_id) + _setter("gateway_arn", gateway_arn) @property @pulumi.getter(name="diskId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] disk_id: Local disk identifier. For example, `pci-0000:03:00.0-scsi-0:0:0:0`. :param pulumi.Input[str] gateway_arn: The Amazon Resource Name (ARN) of the gateway. """ + _WorkingStorageState._configure( + lambda key, value: pulumi.set(__self__, key, value), + disk_id=disk_id, + gateway_arn=gateway_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + disk_id: Optional[pulumi.Input[str]] = None, + gateway_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if disk_id is None and 'diskId' in kwargs: + disk_id = kwargs['diskId'] + if gateway_arn is None and 'gatewayArn' in kwargs: + gateway_arn = kwargs['gatewayArn'] + if disk_id is not None: - pulumi.set(__self__, "disk_id", disk_id) + _setter("disk_id", disk_id) if gateway_arn is not None: - pulumi.set(__self__, "gateway_arn", gateway_arn) + _setter("gateway_arn", gateway_arn) @property @pulumi.getter(name="diskId") @@ -166,6 +204,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkingStorageArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/swf/domain.py b/sdk/python/pulumi_aws/swf/domain.py index b4f3f3bc396..ed11bcea664 100644 --- a/sdk/python/pulumi_aws/swf/domain.py +++ b/sdk/python/pulumi_aws/swf/domain.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DomainArgs', 'Domain'] @@ -27,15 +27,40 @@ def __init__(__self__, *, :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :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. """ - pulumi.set(__self__, "workflow_execution_retention_period_in_days", workflow_execution_retention_period_in_days) + DomainArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + workflow_execution_retention_period_in_days=workflow_execution_retention_period_in_days, + description=description, + name=name, + name_prefix=name_prefix, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + workflow_execution_retention_period_in_days: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if workflow_execution_retention_period_in_days is None and 'workflowExecutionRetentionPeriodInDays' in kwargs: + workflow_execution_retention_period_in_days = kwargs['workflowExecutionRetentionPeriodInDays'] + if workflow_execution_retention_period_in_days is None: + raise TypeError("Missing 'workflow_execution_retention_period_in_days' argument") + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("workflow_execution_retention_period_in_days", workflow_execution_retention_period_in_days) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="workflowExecutionRetentionPeriodInDays") @@ -118,23 +143,52 @@ def __init__(__self__, *, :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] workflow_execution_retention_period_in_days: Length of time that SWF will continue to retain information about the workflow execution after the workflow execution is complete, must be between 0 and 90 days. """ + _DomainState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + name=name, + name_prefix=name_prefix, + tags=tags, + tags_all=tags_all, + workflow_execution_retention_period_in_days=workflow_execution_retention_period_in_days, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workflow_execution_retention_period_in_days: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if workflow_execution_retention_period_in_days is None and 'workflowExecutionRetentionPeriodInDays' in kwargs: + workflow_execution_retention_period_in_days = kwargs['workflowExecutionRetentionPeriodInDays'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if workflow_execution_retention_period_in_days is not None: - pulumi.set(__self__, "workflow_execution_retention_period_in_days", workflow_execution_retention_period_in_days) + _setter("workflow_execution_retention_period_in_days", workflow_execution_retention_period_in_days) @property @pulumi.getter @@ -307,6 +361,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DomainArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/synthetics/_inputs.py b/sdk/python/pulumi_aws/synthetics/_inputs.py index 2e7b7755fe2..77ee405faf8 100644 --- a/sdk/python/pulumi_aws/synthetics/_inputs.py +++ b/sdk/python/pulumi_aws/synthetics/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -25,8 +25,21 @@ def __init__(__self__, *, """ :param pulumi.Input['CanaryArtifactConfigS3EncryptionArgs'] s3_encryption: Configuration of the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3. See S3 Encryption. """ + CanaryArtifactConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_encryption=s3_encryption, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_encryption: Optional[pulumi.Input['CanaryArtifactConfigS3EncryptionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_encryption is None and 's3Encryption' in kwargs: + s3_encryption = kwargs['s3Encryption'] + if s3_encryption is not None: - pulumi.set(__self__, "s3_encryption", s3_encryption) + _setter("s3_encryption", s3_encryption) @property @pulumi.getter(name="s3Encryption") @@ -50,10 +63,27 @@ def __init__(__self__, *, :param pulumi.Input[str] encryption_mode: The encryption method to use for artifacts created by this canary. Valid values are: `SSE_S3` and `SSE_KMS`. :param pulumi.Input[str] kms_key_arn: The ARN of the customer-managed KMS key to use, if you specify `SSE_KMS` for `encryption_mode`. """ + CanaryArtifactConfigS3EncryptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_mode=encryption_mode, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_mode: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="encryptionMode") @@ -93,14 +123,39 @@ def __init__(__self__, *, :param pulumi.Input[int] memory_in_mb: Maximum amount of memory available to the canary while it is running, in MB. The value you specify must be a multiple of 64. :param pulumi.Input[int] timeout_in_seconds: Number of seconds the canary is allowed to run before it must stop. If you omit this field, the frequency of the canary is used, up to a maximum of 840 (14 minutes). """ + CanaryRunConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + active_tracing=active_tracing, + environment_variables=environment_variables, + memory_in_mb=memory_in_mb, + timeout_in_seconds=timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active_tracing: Optional[pulumi.Input[bool]] = None, + environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + memory_in_mb: Optional[pulumi.Input[int]] = None, + timeout_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active_tracing is None and 'activeTracing' in kwargs: + active_tracing = kwargs['activeTracing'] + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if memory_in_mb is None and 'memoryInMb' in kwargs: + memory_in_mb = kwargs['memoryInMb'] + if timeout_in_seconds is None and 'timeoutInSeconds' in kwargs: + timeout_in_seconds = kwargs['timeoutInSeconds'] + if active_tracing is not None: - pulumi.set(__self__, "active_tracing", active_tracing) + _setter("active_tracing", active_tracing) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if memory_in_mb is not None: - pulumi.set(__self__, "memory_in_mb", memory_in_mb) + _setter("memory_in_mb", memory_in_mb) if timeout_in_seconds is not None: - pulumi.set(__self__, "timeout_in_seconds", timeout_in_seconds) + _setter("timeout_in_seconds", timeout_in_seconds) @property @pulumi.getter(name="activeTracing") @@ -160,9 +215,26 @@ def __init__(__self__, *, :param pulumi.Input[str] expression: Rate expression or cron expression that defines how often the canary is to run. For rate expression, the syntax is `rate(number unit)`. _unit_ can be `minute`, `minutes`, or `hour`. For cron expression, the syntax is `cron(expression)`. For more information about the syntax for cron expressions, see [Scheduling canary runs using cron](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_cron.html). :param pulumi.Input[int] duration_in_seconds: Duration in seconds, for the canary to continue making regular runs according to the schedule in the Expression value. """ - pulumi.set(__self__, "expression", expression) + CanaryScheduleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + expression=expression, + duration_in_seconds=duration_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + expression: Optional[pulumi.Input[str]] = None, + duration_in_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expression is None: + raise TypeError("Missing 'expression' argument") + if duration_in_seconds is None and 'durationInSeconds' in kwargs: + duration_in_seconds = kwargs['durationInSeconds'] + + _setter("expression", expression) if duration_in_seconds is not None: - pulumi.set(__self__, "duration_in_seconds", duration_in_seconds) + _setter("duration_in_seconds", duration_in_seconds) @property @pulumi.getter @@ -202,14 +274,37 @@ def __init__(__self__, *, :param pulumi.Input[str] last_started: Date and time that the canary's most recent run started. :param pulumi.Input[str] last_stopped: Date and time that the canary's most recent run ended. """ + CanaryTimelineArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + created=created, + last_modified=last_modified, + last_started=last_started, + last_stopped=last_stopped, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + created: Optional[pulumi.Input[str]] = None, + last_modified: Optional[pulumi.Input[str]] = None, + last_started: Optional[pulumi.Input[str]] = None, + last_stopped: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if last_modified is None and 'lastModified' in kwargs: + last_modified = kwargs['lastModified'] + if last_started is None and 'lastStarted' in kwargs: + last_started = kwargs['lastStarted'] + if last_stopped is None and 'lastStopped' in kwargs: + last_stopped = kwargs['lastStopped'] + if created is not None: - pulumi.set(__self__, "created", created) + _setter("created", created) if last_modified is not None: - pulumi.set(__self__, "last_modified", last_modified) + _setter("last_modified", last_modified) if last_started is not None: - pulumi.set(__self__, "last_started", last_started) + _setter("last_started", last_started) if last_stopped is not None: - pulumi.set(__self__, "last_stopped", last_stopped) + _setter("last_stopped", last_stopped) @property @pulumi.getter @@ -271,12 +366,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: IDs of the subnets where this canary is to run. :param pulumi.Input[str] vpc_id: ID of the VPC where this canary is to run. """ + CanaryVpcConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/synthetics/canary.py b/sdk/python/pulumi_aws/synthetics/canary.py index d40ea27da3c..46bc726a7e5 100644 --- a/sdk/python/pulumi_aws/synthetics/canary.py +++ b/sdk/python/pulumi_aws/synthetics/canary.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -57,37 +57,120 @@ def __init__(__self__, *, :param pulumi.Input['CanaryVpcConfigArgs'] vpc_config: Configuration block. Detailed below. :param pulumi.Input[str] zip_file: ZIP file that contains the script, if you input your canary script directly into the canary instead of referring to an S3 location. It can be up to 225KB. **Conflicts with `s3_bucket`, `s3_key`, and `s3_version`.** """ - pulumi.set(__self__, "artifact_s3_location", artifact_s3_location) - pulumi.set(__self__, "execution_role_arn", execution_role_arn) - pulumi.set(__self__, "handler", handler) - pulumi.set(__self__, "runtime_version", runtime_version) - pulumi.set(__self__, "schedule", schedule) + CanaryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + artifact_s3_location=artifact_s3_location, + execution_role_arn=execution_role_arn, + handler=handler, + runtime_version=runtime_version, + schedule=schedule, + artifact_config=artifact_config, + delete_lambda=delete_lambda, + failure_retention_period=failure_retention_period, + name=name, + run_config=run_config, + s3_bucket=s3_bucket, + s3_key=s3_key, + s3_version=s3_version, + start_canary=start_canary, + success_retention_period=success_retention_period, + tags=tags, + vpc_config=vpc_config, + zip_file=zip_file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + artifact_s3_location: Optional[pulumi.Input[str]] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + handler: Optional[pulumi.Input[str]] = None, + runtime_version: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input['CanaryScheduleArgs']] = None, + artifact_config: Optional[pulumi.Input['CanaryArtifactConfigArgs']] = None, + delete_lambda: Optional[pulumi.Input[bool]] = None, + failure_retention_period: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + run_config: Optional[pulumi.Input['CanaryRunConfigArgs']] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_key: Optional[pulumi.Input[str]] = None, + s3_version: Optional[pulumi.Input[str]] = None, + start_canary: Optional[pulumi.Input[bool]] = None, + success_retention_period: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_config: Optional[pulumi.Input['CanaryVpcConfigArgs']] = None, + zip_file: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if artifact_s3_location is None and 'artifactS3Location' in kwargs: + artifact_s3_location = kwargs['artifactS3Location'] + if artifact_s3_location is None: + raise TypeError("Missing 'artifact_s3_location' argument") + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if execution_role_arn is None: + raise TypeError("Missing 'execution_role_arn' argument") + if handler is None: + raise TypeError("Missing 'handler' argument") + if runtime_version is None and 'runtimeVersion' in kwargs: + runtime_version = kwargs['runtimeVersion'] + if runtime_version is None: + raise TypeError("Missing 'runtime_version' argument") + if schedule is None: + raise TypeError("Missing 'schedule' argument") + if artifact_config is None and 'artifactConfig' in kwargs: + artifact_config = kwargs['artifactConfig'] + if delete_lambda is None and 'deleteLambda' in kwargs: + delete_lambda = kwargs['deleteLambda'] + if failure_retention_period is None and 'failureRetentionPeriod' in kwargs: + failure_retention_period = kwargs['failureRetentionPeriod'] + if run_config is None and 'runConfig' in kwargs: + run_config = kwargs['runConfig'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_version is None and 's3Version' in kwargs: + s3_version = kwargs['s3Version'] + if start_canary is None and 'startCanary' in kwargs: + start_canary = kwargs['startCanary'] + if success_retention_period is None and 'successRetentionPeriod' in kwargs: + success_retention_period = kwargs['successRetentionPeriod'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if zip_file is None and 'zipFile' in kwargs: + zip_file = kwargs['zipFile'] + + _setter("artifact_s3_location", artifact_s3_location) + _setter("execution_role_arn", execution_role_arn) + _setter("handler", handler) + _setter("runtime_version", runtime_version) + _setter("schedule", schedule) if artifact_config is not None: - pulumi.set(__self__, "artifact_config", artifact_config) + _setter("artifact_config", artifact_config) if delete_lambda is not None: - pulumi.set(__self__, "delete_lambda", delete_lambda) + _setter("delete_lambda", delete_lambda) if failure_retention_period is not None: - pulumi.set(__self__, "failure_retention_period", failure_retention_period) + _setter("failure_retention_period", failure_retention_period) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if run_config is not None: - pulumi.set(__self__, "run_config", run_config) + _setter("run_config", run_config) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) if s3_key is not None: - pulumi.set(__self__, "s3_key", s3_key) + _setter("s3_key", s3_key) if s3_version is not None: - pulumi.set(__self__, "s3_version", s3_version) + _setter("s3_version", s3_version) if start_canary is not None: - pulumi.set(__self__, "start_canary", start_canary) + _setter("start_canary", start_canary) if success_retention_period is not None: - pulumi.set(__self__, "success_retention_period", success_retention_period) + _setter("success_retention_period", success_retention_period) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) if zip_file is not None: - pulumi.set(__self__, "zip_file", zip_file) + _setter("zip_file", zip_file) @property @pulumi.getter(name="artifactS3Location") @@ -364,57 +447,148 @@ def __init__(__self__, *, :param pulumi.Input['CanaryVpcConfigArgs'] vpc_config: Configuration block. Detailed below. :param pulumi.Input[str] zip_file: ZIP file that contains the script, if you input your canary script directly into the canary instead of referring to an S3 location. It can be up to 225KB. **Conflicts with `s3_bucket`, `s3_key`, and `s3_version`.** """ + _CanaryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + artifact_config=artifact_config, + artifact_s3_location=artifact_s3_location, + delete_lambda=delete_lambda, + engine_arn=engine_arn, + execution_role_arn=execution_role_arn, + failure_retention_period=failure_retention_period, + handler=handler, + name=name, + run_config=run_config, + runtime_version=runtime_version, + s3_bucket=s3_bucket, + s3_key=s3_key, + s3_version=s3_version, + schedule=schedule, + source_location_arn=source_location_arn, + start_canary=start_canary, + status=status, + success_retention_period=success_retention_period, + tags=tags, + tags_all=tags_all, + timelines=timelines, + vpc_config=vpc_config, + zip_file=zip_file, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + artifact_config: Optional[pulumi.Input['CanaryArtifactConfigArgs']] = None, + artifact_s3_location: Optional[pulumi.Input[str]] = None, + delete_lambda: Optional[pulumi.Input[bool]] = None, + engine_arn: Optional[pulumi.Input[str]] = None, + execution_role_arn: Optional[pulumi.Input[str]] = None, + failure_retention_period: Optional[pulumi.Input[int]] = None, + handler: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + run_config: Optional[pulumi.Input['CanaryRunConfigArgs']] = None, + runtime_version: Optional[pulumi.Input[str]] = None, + s3_bucket: Optional[pulumi.Input[str]] = None, + s3_key: Optional[pulumi.Input[str]] = None, + s3_version: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input['CanaryScheduleArgs']] = None, + source_location_arn: Optional[pulumi.Input[str]] = None, + start_canary: Optional[pulumi.Input[bool]] = None, + status: Optional[pulumi.Input[str]] = None, + success_retention_period: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timelines: Optional[pulumi.Input[Sequence[pulumi.Input['CanaryTimelineArgs']]]] = None, + vpc_config: Optional[pulumi.Input['CanaryVpcConfigArgs']] = None, + zip_file: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if artifact_config is None and 'artifactConfig' in kwargs: + artifact_config = kwargs['artifactConfig'] + if artifact_s3_location is None and 'artifactS3Location' in kwargs: + artifact_s3_location = kwargs['artifactS3Location'] + if delete_lambda is None and 'deleteLambda' in kwargs: + delete_lambda = kwargs['deleteLambda'] + if engine_arn is None and 'engineArn' in kwargs: + engine_arn = kwargs['engineArn'] + if execution_role_arn is None and 'executionRoleArn' in kwargs: + execution_role_arn = kwargs['executionRoleArn'] + if failure_retention_period is None and 'failureRetentionPeriod' in kwargs: + failure_retention_period = kwargs['failureRetentionPeriod'] + if run_config is None and 'runConfig' in kwargs: + run_config = kwargs['runConfig'] + if runtime_version is None and 'runtimeVersion' in kwargs: + runtime_version = kwargs['runtimeVersion'] + if s3_bucket is None and 's3Bucket' in kwargs: + s3_bucket = kwargs['s3Bucket'] + if s3_key is None and 's3Key' in kwargs: + s3_key = kwargs['s3Key'] + if s3_version is None and 's3Version' in kwargs: + s3_version = kwargs['s3Version'] + if source_location_arn is None and 'sourceLocationArn' in kwargs: + source_location_arn = kwargs['sourceLocationArn'] + if start_canary is None and 'startCanary' in kwargs: + start_canary = kwargs['startCanary'] + if success_retention_period is None and 'successRetentionPeriod' in kwargs: + success_retention_period = kwargs['successRetentionPeriod'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_config is None and 'vpcConfig' in kwargs: + vpc_config = kwargs['vpcConfig'] + if zip_file is None and 'zipFile' in kwargs: + zip_file = kwargs['zipFile'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if artifact_config is not None: - pulumi.set(__self__, "artifact_config", artifact_config) + _setter("artifact_config", artifact_config) if artifact_s3_location is not None: - pulumi.set(__self__, "artifact_s3_location", artifact_s3_location) + _setter("artifact_s3_location", artifact_s3_location) if delete_lambda is not None: - pulumi.set(__self__, "delete_lambda", delete_lambda) + _setter("delete_lambda", delete_lambda) if engine_arn is not None: - pulumi.set(__self__, "engine_arn", engine_arn) + _setter("engine_arn", engine_arn) if execution_role_arn is not None: - pulumi.set(__self__, "execution_role_arn", execution_role_arn) + _setter("execution_role_arn", execution_role_arn) if failure_retention_period is not None: - pulumi.set(__self__, "failure_retention_period", failure_retention_period) + _setter("failure_retention_period", failure_retention_period) if handler is not None: - pulumi.set(__self__, "handler", handler) + _setter("handler", handler) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if run_config is not None: - pulumi.set(__self__, "run_config", run_config) + _setter("run_config", run_config) if runtime_version is not None: - pulumi.set(__self__, "runtime_version", runtime_version) + _setter("runtime_version", runtime_version) if s3_bucket is not None: - pulumi.set(__self__, "s3_bucket", s3_bucket) + _setter("s3_bucket", s3_bucket) if s3_key is not None: - pulumi.set(__self__, "s3_key", s3_key) + _setter("s3_key", s3_key) if s3_version is not None: - pulumi.set(__self__, "s3_version", s3_version) + _setter("s3_version", s3_version) if schedule is not None: - pulumi.set(__self__, "schedule", schedule) + _setter("schedule", schedule) if source_location_arn is not None: - pulumi.set(__self__, "source_location_arn", source_location_arn) + _setter("source_location_arn", source_location_arn) if start_canary is not None: - pulumi.set(__self__, "start_canary", start_canary) + _setter("start_canary", start_canary) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if success_retention_period is not None: - pulumi.set(__self__, "success_retention_period", success_retention_period) + _setter("success_retention_period", success_retention_period) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timelines is not None: - pulumi.set(__self__, "timelines", timelines) + _setter("timelines", timelines) if vpc_config is not None: - pulumi.set(__self__, "vpc_config", vpc_config) + _setter("vpc_config", vpc_config) if zip_file is not None: - pulumi.set(__self__, "zip_file", zip_file) + _setter("zip_file", zip_file) @property @pulumi.getter @@ -833,6 +1007,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CanaryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -865,6 +1043,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = CanaryArgs.__new__(CanaryArgs) + artifact_config = _utilities.configure(artifact_config, CanaryArtifactConfigArgs, True) __props__.__dict__["artifact_config"] = artifact_config if artifact_s3_location is None and not opts.urn: raise TypeError("Missing required property 'artifact_s3_location'") @@ -878,6 +1057,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'handler'") __props__.__dict__["handler"] = handler __props__.__dict__["name"] = name + run_config = _utilities.configure(run_config, CanaryRunConfigArgs, True) __props__.__dict__["run_config"] = run_config if runtime_version is None and not opts.urn: raise TypeError("Missing required property 'runtime_version'") @@ -885,12 +1065,14 @@ def _internal_init(__self__, __props__.__dict__["s3_bucket"] = s3_bucket __props__.__dict__["s3_key"] = s3_key __props__.__dict__["s3_version"] = s3_version + schedule = _utilities.configure(schedule, CanaryScheduleArgs, True) if schedule is None and not opts.urn: raise TypeError("Missing required property 'schedule'") __props__.__dict__["schedule"] = schedule __props__.__dict__["start_canary"] = start_canary __props__.__dict__["success_retention_period"] = success_retention_period __props__.__dict__["tags"] = tags + vpc_config = _utilities.configure(vpc_config, CanaryVpcConfigArgs, True) __props__.__dict__["vpc_config"] = vpc_config __props__.__dict__["zip_file"] = zip_file __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/synthetics/group.py b/sdk/python/pulumi_aws/synthetics/group.py index 12ad74667dc..34f22141e92 100644 --- a/sdk/python/pulumi_aws/synthetics/group.py +++ b/sdk/python/pulumi_aws/synthetics/group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupArgs', 'Group'] @@ -23,10 +23,23 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ + GroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -73,19 +86,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _GroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + group_id=group_id, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + group_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if group_id is None and 'groupId' in kwargs: + group_id = kwargs['groupId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if group_id is not None: - pulumi.set(__self__, "group_id", group_id) + _setter("group_id", group_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -226,6 +262,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/synthetics/group_association.py b/sdk/python/pulumi_aws/synthetics/group_association.py index 8b4d2a71ecc..d841dc515b2 100644 --- a/sdk/python/pulumi_aws/synthetics/group_association.py +++ b/sdk/python/pulumi_aws/synthetics/group_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupAssociationArgs', 'GroupAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] canary_arn: ARN of the canary. :param pulumi.Input[str] group_name: Name of the group that the canary will be associated with. """ - pulumi.set(__self__, "canary_arn", canary_arn) - pulumi.set(__self__, "group_name", group_name) + GroupAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + canary_arn=canary_arn, + group_name=group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + canary_arn: Optional[pulumi.Input[str]] = None, + group_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if canary_arn is None and 'canaryArn' in kwargs: + canary_arn = kwargs['canaryArn'] + if canary_arn is None: + raise TypeError("Missing 'canary_arn' argument") + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + + _setter("canary_arn", canary_arn) + _setter("group_name", group_name) @property @pulumi.getter(name="canaryArn") @@ -62,14 +83,39 @@ def __init__(__self__, *, :param pulumi.Input[str] group_id: ID of the Group. :param pulumi.Input[str] group_name: Name of the group that the canary will be associated with. """ + _GroupAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + canary_arn=canary_arn, + group_arn=group_arn, + group_id=group_id, + group_name=group_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + canary_arn: Optional[pulumi.Input[str]] = None, + group_arn: Optional[pulumi.Input[str]] = None, + group_id: Optional[pulumi.Input[str]] = None, + group_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if canary_arn is None and 'canaryArn' in kwargs: + canary_arn = kwargs['canaryArn'] + if group_arn is None and 'groupArn' in kwargs: + group_arn = kwargs['groupArn'] + if group_id is None and 'groupId' in kwargs: + group_id = kwargs['groupId'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if canary_arn is not None: - pulumi.set(__self__, "canary_arn", canary_arn) + _setter("canary_arn", canary_arn) if group_arn is not None: - pulumi.set(__self__, "group_arn", group_arn) + _setter("group_arn", group_arn) if group_id is not None: - pulumi.set(__self__, "group_id", group_id) + _setter("group_id", group_id) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) @property @pulumi.getter(name="canaryArn") @@ -192,6 +238,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/synthetics/outputs.py b/sdk/python/pulumi_aws/synthetics/outputs.py index 9e26134168c..77dd44c1e45 100644 --- a/sdk/python/pulumi_aws/synthetics/outputs.py +++ b/sdk/python/pulumi_aws/synthetics/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -43,8 +43,21 @@ def __init__(__self__, *, """ :param 'CanaryArtifactConfigS3EncryptionArgs' s3_encryption: Configuration of the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3. See S3 Encryption. """ + CanaryArtifactConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_encryption=s3_encryption, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_encryption: Optional['outputs.CanaryArtifactConfigS3Encryption'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_encryption is None and 's3Encryption' in kwargs: + s3_encryption = kwargs['s3Encryption'] + if s3_encryption is not None: - pulumi.set(__self__, "s3_encryption", s3_encryption) + _setter("s3_encryption", s3_encryption) @property @pulumi.getter(name="s3Encryption") @@ -83,10 +96,27 @@ def __init__(__self__, *, :param str encryption_mode: The encryption method to use for artifacts created by this canary. Valid values are: `SSE_S3` and `SSE_KMS`. :param str kms_key_arn: The ARN of the customer-managed KMS key to use, if you specify `SSE_KMS` for `encryption_mode`. """ + CanaryArtifactConfigS3Encryption._configure( + lambda key, value: pulumi.set(__self__, key, value), + encryption_mode=encryption_mode, + kms_key_arn=kms_key_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + encryption_mode: Optional[str] = None, + kms_key_arn: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if encryption_mode is None and 'encryptionMode' in kwargs: + encryption_mode = kwargs['encryptionMode'] + if kms_key_arn is None and 'kmsKeyArn' in kwargs: + kms_key_arn = kwargs['kmsKeyArn'] + if encryption_mode is not None: - pulumi.set(__self__, "encryption_mode", encryption_mode) + _setter("encryption_mode", encryption_mode) if kms_key_arn is not None: - pulumi.set(__self__, "kms_key_arn", kms_key_arn) + _setter("kms_key_arn", kms_key_arn) @property @pulumi.getter(name="encryptionMode") @@ -141,14 +171,39 @@ def __init__(__self__, *, :param int memory_in_mb: Maximum amount of memory available to the canary while it is running, in MB. The value you specify must be a multiple of 64. :param int timeout_in_seconds: Number of seconds the canary is allowed to run before it must stop. If you omit this field, the frequency of the canary is used, up to a maximum of 840 (14 minutes). """ + CanaryRunConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + active_tracing=active_tracing, + environment_variables=environment_variables, + memory_in_mb=memory_in_mb, + timeout_in_seconds=timeout_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active_tracing: Optional[bool] = None, + environment_variables: Optional[Mapping[str, str]] = None, + memory_in_mb: Optional[int] = None, + timeout_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active_tracing is None and 'activeTracing' in kwargs: + active_tracing = kwargs['activeTracing'] + if environment_variables is None and 'environmentVariables' in kwargs: + environment_variables = kwargs['environmentVariables'] + if memory_in_mb is None and 'memoryInMb' in kwargs: + memory_in_mb = kwargs['memoryInMb'] + if timeout_in_seconds is None and 'timeoutInSeconds' in kwargs: + timeout_in_seconds = kwargs['timeoutInSeconds'] + if active_tracing is not None: - pulumi.set(__self__, "active_tracing", active_tracing) + _setter("active_tracing", active_tracing) if environment_variables is not None: - pulumi.set(__self__, "environment_variables", environment_variables) + _setter("environment_variables", environment_variables) if memory_in_mb is not None: - pulumi.set(__self__, "memory_in_mb", memory_in_mb) + _setter("memory_in_mb", memory_in_mb) if timeout_in_seconds is not None: - pulumi.set(__self__, "timeout_in_seconds", timeout_in_seconds) + _setter("timeout_in_seconds", timeout_in_seconds) @property @pulumi.getter(name="activeTracing") @@ -209,9 +264,26 @@ def __init__(__self__, *, :param str expression: Rate expression or cron expression that defines how often the canary is to run. For rate expression, the syntax is `rate(number unit)`. _unit_ can be `minute`, `minutes`, or `hour`. For cron expression, the syntax is `cron(expression)`. For more information about the syntax for cron expressions, see [Scheduling canary runs using cron](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_cron.html). :param int duration_in_seconds: Duration in seconds, for the canary to continue making regular runs according to the schedule in the Expression value. """ - pulumi.set(__self__, "expression", expression) + CanarySchedule._configure( + lambda key, value: pulumi.set(__self__, key, value), + expression=expression, + duration_in_seconds=duration_in_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + expression: Optional[str] = None, + duration_in_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if expression is None: + raise TypeError("Missing 'expression' argument") + if duration_in_seconds is None and 'durationInSeconds' in kwargs: + duration_in_seconds = kwargs['durationInSeconds'] + + _setter("expression", expression) if duration_in_seconds is not None: - pulumi.set(__self__, "duration_in_seconds", duration_in_seconds) + _setter("duration_in_seconds", duration_in_seconds) @property @pulumi.getter @@ -264,14 +336,37 @@ def __init__(__self__, *, :param str last_started: Date and time that the canary's most recent run started. :param str last_stopped: Date and time that the canary's most recent run ended. """ + CanaryTimeline._configure( + lambda key, value: pulumi.set(__self__, key, value), + created=created, + last_modified=last_modified, + last_started=last_started, + last_stopped=last_stopped, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + created: Optional[str] = None, + last_modified: Optional[str] = None, + last_started: Optional[str] = None, + last_stopped: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if last_modified is None and 'lastModified' in kwargs: + last_modified = kwargs['lastModified'] + if last_started is None and 'lastStarted' in kwargs: + last_started = kwargs['lastStarted'] + if last_stopped is None and 'lastStopped' in kwargs: + last_stopped = kwargs['lastStopped'] + if created is not None: - pulumi.set(__self__, "created", created) + _setter("created", created) if last_modified is not None: - pulumi.set(__self__, "last_modified", last_modified) + _setter("last_modified", last_modified) if last_started is not None: - pulumi.set(__self__, "last_started", last_started) + _setter("last_started", last_started) if last_stopped is not None: - pulumi.set(__self__, "last_stopped", last_stopped) + _setter("last_stopped", last_stopped) @property @pulumi.getter @@ -338,12 +433,33 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: IDs of the subnets where this canary is to run. :param str vpc_id: ID of the VPC where this canary is to run. """ + CanaryVpcConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/timestreamwrite/_inputs.py b/sdk/python/pulumi_aws/timestreamwrite/_inputs.py index 5a4de057a25..e5e51d149e2 100644 --- a/sdk/python/pulumi_aws/timestreamwrite/_inputs.py +++ b/sdk/python/pulumi_aws/timestreamwrite/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -27,10 +27,27 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_magnetic_store_writes: A flag to enable magnetic store writes. :param pulumi.Input['TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationArgs'] magnetic_store_rejected_data_location: The location to write error reports for records rejected asynchronously during magnetic store writes. See Magnetic Store Rejected Data Location below for more details. """ + TableMagneticStoreWritePropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_magnetic_store_writes=enable_magnetic_store_writes, + magnetic_store_rejected_data_location=magnetic_store_rejected_data_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_magnetic_store_writes: Optional[pulumi.Input[bool]] = None, + magnetic_store_rejected_data_location: Optional[pulumi.Input['TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_magnetic_store_writes is None and 'enableMagneticStoreWrites' in kwargs: + enable_magnetic_store_writes = kwargs['enableMagneticStoreWrites'] + if magnetic_store_rejected_data_location is None and 'magneticStoreRejectedDataLocation' in kwargs: + magnetic_store_rejected_data_location = kwargs['magneticStoreRejectedDataLocation'] + if enable_magnetic_store_writes is not None: - pulumi.set(__self__, "enable_magnetic_store_writes", enable_magnetic_store_writes) + _setter("enable_magnetic_store_writes", enable_magnetic_store_writes) if magnetic_store_rejected_data_location is not None: - pulumi.set(__self__, "magnetic_store_rejected_data_location", magnetic_store_rejected_data_location) + _setter("magnetic_store_rejected_data_location", magnetic_store_rejected_data_location) @property @pulumi.getter(name="enableMagneticStoreWrites") @@ -64,8 +81,21 @@ def __init__(__self__, *, """ :param pulumi.Input['TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationS3ConfigurationArgs'] s3_configuration: Configuration of an S3 location to write error reports for records rejected, asynchronously, during magnetic store writes. See S3 Configuration below for more details. """ + TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_configuration=s3_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_configuration: Optional[pulumi.Input['TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationS3ConfigurationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is not None: - pulumi.set(__self__, "s3_configuration", s3_configuration) + _setter("s3_configuration", s3_configuration) @property @pulumi.getter(name="s3Configuration") @@ -93,14 +123,39 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_id: KMS key arn for the customer s3 location when encrypting with a KMS managed key. :param pulumi.Input[str] object_key_prefix: Object key prefix for the customer S3 location. """ + TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationS3ConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + encryption_option=encryption_option, + kms_key_id=kms_key_id, + object_key_prefix=object_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[pulumi.Input[str]] = None, + encryption_option: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + object_key_prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if encryption_option is None and 'encryptionOption' in kwargs: + encryption_option = kwargs['encryptionOption'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if object_key_prefix is None and 'objectKeyPrefix' in kwargs: + object_key_prefix = kwargs['objectKeyPrefix'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if encryption_option is not None: - pulumi.set(__self__, "encryption_option", encryption_option) + _setter("encryption_option", encryption_option) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if object_key_prefix is not None: - pulumi.set(__self__, "object_key_prefix", object_key_prefix) + _setter("object_key_prefix", object_key_prefix) @property @pulumi.getter(name="bucketName") @@ -160,8 +215,29 @@ def __init__(__self__, *, :param pulumi.Input[int] magnetic_store_retention_period_in_days: The duration for which data must be stored in the magnetic store. Minimum value of 1. Maximum value of 73000. :param pulumi.Input[int] memory_store_retention_period_in_hours: The duration for which data must be stored in the memory store. Minimum value of 1. Maximum value of 8766. """ - pulumi.set(__self__, "magnetic_store_retention_period_in_days", magnetic_store_retention_period_in_days) - pulumi.set(__self__, "memory_store_retention_period_in_hours", memory_store_retention_period_in_hours) + TableRetentionPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + magnetic_store_retention_period_in_days=magnetic_store_retention_period_in_days, + memory_store_retention_period_in_hours=memory_store_retention_period_in_hours, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + magnetic_store_retention_period_in_days: Optional[pulumi.Input[int]] = None, + memory_store_retention_period_in_hours: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if magnetic_store_retention_period_in_days is None and 'magneticStoreRetentionPeriodInDays' in kwargs: + magnetic_store_retention_period_in_days = kwargs['magneticStoreRetentionPeriodInDays'] + if magnetic_store_retention_period_in_days is None: + raise TypeError("Missing 'magnetic_store_retention_period_in_days' argument") + if memory_store_retention_period_in_hours is None and 'memoryStoreRetentionPeriodInHours' in kwargs: + memory_store_retention_period_in_hours = kwargs['memoryStoreRetentionPeriodInHours'] + if memory_store_retention_period_in_hours is None: + raise TypeError("Missing 'memory_store_retention_period_in_hours' argument") + + _setter("magnetic_store_retention_period_in_days", magnetic_store_retention_period_in_days) + _setter("memory_store_retention_period_in_hours", memory_store_retention_period_in_hours) @property @pulumi.getter(name="magneticStoreRetentionPeriodInDays") @@ -195,8 +271,21 @@ def __init__(__self__, *, """ :param pulumi.Input['TableSchemaCompositePartitionKeyArgs'] composite_partition_key: A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed. See Composite Partition Key below for more details. """ + TableSchemaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + composite_partition_key=composite_partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + composite_partition_key: Optional[pulumi.Input['TableSchemaCompositePartitionKeyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if composite_partition_key is None and 'compositePartitionKey' in kwargs: + composite_partition_key = kwargs['compositePartitionKey'] + if composite_partition_key is not None: - pulumi.set(__self__, "composite_partition_key", composite_partition_key) + _setter("composite_partition_key", composite_partition_key) @property @pulumi.getter(name="compositePartitionKey") @@ -222,11 +311,30 @@ def __init__(__self__, *, :param pulumi.Input[str] enforcement_in_record: The level of enforcement for the specification of a dimension key in ingested records. Valid values: `REQUIRED`, `OPTIONAL`. :param pulumi.Input[str] name: The name of the attribute used for a dimension key. """ - pulumi.set(__self__, "type", type) + TableSchemaCompositePartitionKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + enforcement_in_record=enforcement_in_record, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + enforcement_in_record: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if enforcement_in_record is None and 'enforcementInRecord' in kwargs: + enforcement_in_record = kwargs['enforcementInRecord'] + + _setter("type", type) if enforcement_in_record is not None: - pulumi.set(__self__, "enforcement_in_record", enforcement_in_record) + _setter("enforcement_in_record", enforcement_in_record) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/timestreamwrite/database.py b/sdk/python/pulumi_aws/timestreamwrite/database.py index 942da4cd71b..56c9aacd05b 100644 --- a/sdk/python/pulumi_aws/timestreamwrite/database.py +++ b/sdk/python/pulumi_aws/timestreamwrite/database.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DatabaseArgs', 'Database'] @@ -23,11 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_id: The ARN (not Alias ARN) of the KMS key to be used to encrypt the data stored in the database. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. Refer to [AWS managed KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) for more info. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "database_name", database_name) + DatabaseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + kms_key_id=kms_key_id, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + + _setter("database_name", database_name) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="databaseName") @@ -84,21 +105,50 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this 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. """ + _DatabaseState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + database_name=database_name, + kms_key_id=kms_key_id, + table_count=table_count, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + table_count: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if table_count is None and 'tableCount' in kwargs: + table_count = kwargs['tableCount'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if table_count is not None: - pulumi.set(__self__, "table_count", table_count) + _setter("table_count", table_count) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -275,6 +325,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DatabaseArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/timestreamwrite/outputs.py b/sdk/python/pulumi_aws/timestreamwrite/outputs.py index 32c331f10fd..80b328fcdec 100644 --- a/sdk/python/pulumi_aws/timestreamwrite/outputs.py +++ b/sdk/python/pulumi_aws/timestreamwrite/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -47,10 +47,27 @@ def __init__(__self__, *, :param bool enable_magnetic_store_writes: A flag to enable magnetic store writes. :param 'TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationArgs' magnetic_store_rejected_data_location: The location to write error reports for records rejected asynchronously during magnetic store writes. See Magnetic Store Rejected Data Location below for more details. """ + TableMagneticStoreWriteProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + enable_magnetic_store_writes=enable_magnetic_store_writes, + magnetic_store_rejected_data_location=magnetic_store_rejected_data_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enable_magnetic_store_writes: Optional[bool] = None, + magnetic_store_rejected_data_location: Optional['outputs.TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enable_magnetic_store_writes is None and 'enableMagneticStoreWrites' in kwargs: + enable_magnetic_store_writes = kwargs['enableMagneticStoreWrites'] + if magnetic_store_rejected_data_location is None and 'magneticStoreRejectedDataLocation' in kwargs: + magnetic_store_rejected_data_location = kwargs['magneticStoreRejectedDataLocation'] + if enable_magnetic_store_writes is not None: - pulumi.set(__self__, "enable_magnetic_store_writes", enable_magnetic_store_writes) + _setter("enable_magnetic_store_writes", enable_magnetic_store_writes) if magnetic_store_rejected_data_location is not None: - pulumi.set(__self__, "magnetic_store_rejected_data_location", magnetic_store_rejected_data_location) + _setter("magnetic_store_rejected_data_location", magnetic_store_rejected_data_location) @property @pulumi.getter(name="enableMagneticStoreWrites") @@ -93,8 +110,21 @@ def __init__(__self__, *, """ :param 'TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationS3ConfigurationArgs' s3_configuration: Configuration of an S3 location to write error reports for records rejected, asynchronously, during magnetic store writes. See S3 Configuration below for more details. """ + TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + s3_configuration=s3_configuration, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + s3_configuration: Optional['outputs.TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationS3Configuration'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if s3_configuration is None and 's3Configuration' in kwargs: + s3_configuration = kwargs['s3Configuration'] + if s3_configuration is not None: - pulumi.set(__self__, "s3_configuration", s3_configuration) + _setter("s3_configuration", s3_configuration) @property @pulumi.getter(name="s3Configuration") @@ -141,14 +171,39 @@ def __init__(__self__, *, :param str kms_key_id: KMS key arn for the customer s3 location when encrypting with a KMS managed key. :param str object_key_prefix: Object key prefix for the customer S3 location. """ + TableMagneticStoreWritePropertiesMagneticStoreRejectedDataLocationS3Configuration._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket_name=bucket_name, + encryption_option=encryption_option, + kms_key_id=kms_key_id, + object_key_prefix=object_key_prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket_name: Optional[str] = None, + encryption_option: Optional[str] = None, + kms_key_id: Optional[str] = None, + object_key_prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if encryption_option is None and 'encryptionOption' in kwargs: + encryption_option = kwargs['encryptionOption'] + if kms_key_id is None and 'kmsKeyId' in kwargs: + kms_key_id = kwargs['kmsKeyId'] + if object_key_prefix is None and 'objectKeyPrefix' in kwargs: + object_key_prefix = kwargs['objectKeyPrefix'] + if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if encryption_option is not None: - pulumi.set(__self__, "encryption_option", encryption_option) + _setter("encryption_option", encryption_option) if kms_key_id is not None: - pulumi.set(__self__, "kms_key_id", kms_key_id) + _setter("kms_key_id", kms_key_id) if object_key_prefix is not None: - pulumi.set(__self__, "object_key_prefix", object_key_prefix) + _setter("object_key_prefix", object_key_prefix) @property @pulumi.getter(name="bucketName") @@ -211,8 +266,29 @@ def __init__(__self__, *, :param int magnetic_store_retention_period_in_days: The duration for which data must be stored in the magnetic store. Minimum value of 1. Maximum value of 73000. :param int memory_store_retention_period_in_hours: The duration for which data must be stored in the memory store. Minimum value of 1. Maximum value of 8766. """ - pulumi.set(__self__, "magnetic_store_retention_period_in_days", magnetic_store_retention_period_in_days) - pulumi.set(__self__, "memory_store_retention_period_in_hours", memory_store_retention_period_in_hours) + TableRetentionProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + magnetic_store_retention_period_in_days=magnetic_store_retention_period_in_days, + memory_store_retention_period_in_hours=memory_store_retention_period_in_hours, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + magnetic_store_retention_period_in_days: Optional[int] = None, + memory_store_retention_period_in_hours: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if magnetic_store_retention_period_in_days is None and 'magneticStoreRetentionPeriodInDays' in kwargs: + magnetic_store_retention_period_in_days = kwargs['magneticStoreRetentionPeriodInDays'] + if magnetic_store_retention_period_in_days is None: + raise TypeError("Missing 'magnetic_store_retention_period_in_days' argument") + if memory_store_retention_period_in_hours is None and 'memoryStoreRetentionPeriodInHours' in kwargs: + memory_store_retention_period_in_hours = kwargs['memoryStoreRetentionPeriodInHours'] + if memory_store_retention_period_in_hours is None: + raise TypeError("Missing 'memory_store_retention_period_in_hours' argument") + + _setter("magnetic_store_retention_period_in_days", magnetic_store_retention_period_in_days) + _setter("memory_store_retention_period_in_hours", memory_store_retention_period_in_hours) @property @pulumi.getter(name="magneticStoreRetentionPeriodInDays") @@ -255,8 +331,21 @@ def __init__(__self__, *, """ :param 'TableSchemaCompositePartitionKeyArgs' composite_partition_key: A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well as the partition key order cannot be changed after the table is created. However, the enforcement level of each partition key can be changed. See Composite Partition Key below for more details. """ + TableSchema._configure( + lambda key, value: pulumi.set(__self__, key, value), + composite_partition_key=composite_partition_key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + composite_partition_key: Optional['outputs.TableSchemaCompositePartitionKey'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if composite_partition_key is None and 'compositePartitionKey' in kwargs: + composite_partition_key = kwargs['compositePartitionKey'] + if composite_partition_key is not None: - pulumi.set(__self__, "composite_partition_key", composite_partition_key) + _setter("composite_partition_key", composite_partition_key) @property @pulumi.getter(name="compositePartitionKey") @@ -295,11 +384,30 @@ def __init__(__self__, *, :param str enforcement_in_record: The level of enforcement for the specification of a dimension key in ingested records. Valid values: `REQUIRED`, `OPTIONAL`. :param str name: The name of the attribute used for a dimension key. """ - pulumi.set(__self__, "type", type) + TableSchemaCompositePartitionKey._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + enforcement_in_record=enforcement_in_record, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + enforcement_in_record: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if enforcement_in_record is None and 'enforcementInRecord' in kwargs: + enforcement_in_record = kwargs['enforcementInRecord'] + + _setter("type", type) if enforcement_in_record is not None: - pulumi.set(__self__, "enforcement_in_record", enforcement_in_record) + _setter("enforcement_in_record", enforcement_in_record) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/timestreamwrite/table.py b/sdk/python/pulumi_aws/timestreamwrite/table.py index d3ae7af930c..3920a0b9d5b 100644 --- a/sdk/python/pulumi_aws/timestreamwrite/table.py +++ b/sdk/python/pulumi_aws/timestreamwrite/table.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,49 @@ def __init__(__self__, *, :param pulumi.Input['TableSchemaArgs'] schema: The schema of the table. See Schema below for more details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "database_name", database_name) - pulumi.set(__self__, "table_name", table_name) + TableArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + database_name=database_name, + table_name=table_name, + magnetic_store_write_properties=magnetic_store_write_properties, + retention_properties=retention_properties, + schema=schema, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + database_name: Optional[pulumi.Input[str]] = None, + table_name: Optional[pulumi.Input[str]] = None, + magnetic_store_write_properties: Optional[pulumi.Input['TableMagneticStoreWritePropertiesArgs']] = None, + retention_properties: Optional[pulumi.Input['TableRetentionPropertiesArgs']] = None, + schema: Optional[pulumi.Input['TableSchemaArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if database_name is None: + raise TypeError("Missing 'database_name' argument") + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if table_name is None: + raise TypeError("Missing 'table_name' argument") + if magnetic_store_write_properties is None and 'magneticStoreWriteProperties' in kwargs: + magnetic_store_write_properties = kwargs['magneticStoreWriteProperties'] + if retention_properties is None and 'retentionProperties' in kwargs: + retention_properties = kwargs['retentionProperties'] + + _setter("database_name", database_name) + _setter("table_name", table_name) if magnetic_store_write_properties is not None: - pulumi.set(__self__, "magnetic_store_write_properties", magnetic_store_write_properties) + _setter("magnetic_store_write_properties", magnetic_store_write_properties) if retention_properties is not None: - pulumi.set(__self__, "retention_properties", retention_properties) + _setter("retention_properties", retention_properties) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="databaseName") @@ -137,25 +170,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to this 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. """ + _TableState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + database_name=database_name, + magnetic_store_write_properties=magnetic_store_write_properties, + retention_properties=retention_properties, + schema=schema, + table_name=table_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + database_name: Optional[pulumi.Input[str]] = None, + magnetic_store_write_properties: Optional[pulumi.Input['TableMagneticStoreWritePropertiesArgs']] = None, + retention_properties: Optional[pulumi.Input['TableRetentionPropertiesArgs']] = None, + schema: Optional[pulumi.Input['TableSchemaArgs']] = None, + table_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if database_name is None and 'databaseName' in kwargs: + database_name = kwargs['databaseName'] + if magnetic_store_write_properties is None and 'magneticStoreWriteProperties' in kwargs: + magnetic_store_write_properties = kwargs['magneticStoreWriteProperties'] + if retention_properties is None and 'retentionProperties' in kwargs: + retention_properties = kwargs['retentionProperties'] + if table_name is None and 'tableName' in kwargs: + table_name = kwargs['tableName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if database_name is not None: - pulumi.set(__self__, "database_name", database_name) + _setter("database_name", database_name) if magnetic_store_write_properties is not None: - pulumi.set(__self__, "magnetic_store_write_properties", magnetic_store_write_properties) + _setter("magnetic_store_write_properties", magnetic_store_write_properties) if retention_properties is not None: - pulumi.set(__self__, "retention_properties", retention_properties) + _setter("retention_properties", retention_properties) if schema is not None: - pulumi.set(__self__, "schema", schema) + _setter("schema", schema) if table_name is not None: - pulumi.set(__self__, "table_name", table_name) + _setter("table_name", table_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -408,6 +476,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TableArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -431,8 +503,11 @@ def _internal_init(__self__, if database_name is None and not opts.urn: raise TypeError("Missing required property 'database_name'") __props__.__dict__["database_name"] = database_name + magnetic_store_write_properties = _utilities.configure(magnetic_store_write_properties, TableMagneticStoreWritePropertiesArgs, True) __props__.__dict__["magnetic_store_write_properties"] = magnetic_store_write_properties + retention_properties = _utilities.configure(retention_properties, TableRetentionPropertiesArgs, True) __props__.__dict__["retention_properties"] = retention_properties + schema = _utilities.configure(schema, TableSchemaArgs, True) __props__.__dict__["schema"] = schema if table_name is None and not opts.urn: raise TypeError("Missing required property 'table_name'") diff --git a/sdk/python/pulumi_aws/transcribe/_inputs.py b/sdk/python/pulumi_aws/transcribe/_inputs.py index 02ebf20ebd6..6bfbc93a12c 100644 --- a/sdk/python/pulumi_aws/transcribe/_inputs.py +++ b/sdk/python/pulumi_aws/transcribe/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -26,10 +26,35 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "data_access_role_arn", data_access_role_arn) - pulumi.set(__self__, "s3_uri", s3_uri) + LanguageModelInputDataConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_access_role_arn=data_access_role_arn, + s3_uri=s3_uri, + tuning_data_s3_uri=tuning_data_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_access_role_arn: Optional[pulumi.Input[str]] = None, + s3_uri: Optional[pulumi.Input[str]] = None, + tuning_data_s3_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_access_role_arn is None and 'dataAccessRoleArn' in kwargs: + data_access_role_arn = kwargs['dataAccessRoleArn'] + if data_access_role_arn is None: + raise TypeError("Missing 'data_access_role_arn' argument") + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if tuning_data_s3_uri is None and 'tuningDataS3Uri' in kwargs: + tuning_data_s3_uri = kwargs['tuningDataS3Uri'] + + _setter("data_access_role_arn", data_access_role_arn) + _setter("s3_uri", s3_uri) if tuning_data_s3_uri is not None: - pulumi.set(__self__, "tuning_data_s3_uri", tuning_data_s3_uri) + _setter("tuning_data_s3_uri", tuning_data_s3_uri) @property @pulumi.getter(name="dataAccessRoleArn") diff --git a/sdk/python/pulumi_aws/transcribe/language_model.py b/sdk/python/pulumi_aws/transcribe/language_model.py index fead7c76445..6ead8540c94 100644 --- a/sdk/python/pulumi_aws/transcribe/language_model.py +++ b/sdk/python/pulumi_aws/transcribe/language_model.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,12 +29,47 @@ def __init__(__self__, *, :param pulumi.Input[str] model_name: The model name. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the LanguageModel. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "base_model_name", base_model_name) - pulumi.set(__self__, "input_data_config", input_data_config) - pulumi.set(__self__, "language_code", language_code) - pulumi.set(__self__, "model_name", model_name) + LanguageModelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + base_model_name=base_model_name, + input_data_config=input_data_config, + language_code=language_code, + model_name=model_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + base_model_name: Optional[pulumi.Input[str]] = None, + input_data_config: Optional[pulumi.Input['LanguageModelInputDataConfigArgs']] = None, + language_code: Optional[pulumi.Input[str]] = None, + model_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_model_name is None and 'baseModelName' in kwargs: + base_model_name = kwargs['baseModelName'] + if base_model_name is None: + raise TypeError("Missing 'base_model_name' argument") + if input_data_config is None and 'inputDataConfig' in kwargs: + input_data_config = kwargs['inputDataConfig'] + if input_data_config is None: + raise TypeError("Missing 'input_data_config' argument") + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if model_name is None and 'modelName' in kwargs: + model_name = kwargs['modelName'] + if model_name is None: + raise TypeError("Missing 'model_name' argument") + + _setter("base_model_name", base_model_name) + _setter("input_data_config", input_data_config) + _setter("language_code", language_code) + _setter("model_name", model_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="baseModelName") @@ -116,23 +151,56 @@ def __init__(__self__, *, :param pulumi.Input[str] model_name: The model name. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the LanguageModel. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + _LanguageModelState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + base_model_name=base_model_name, + input_data_config=input_data_config, + language_code=language_code, + model_name=model_name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + base_model_name: Optional[pulumi.Input[str]] = None, + input_data_config: Optional[pulumi.Input['LanguageModelInputDataConfigArgs']] = None, + language_code: Optional[pulumi.Input[str]] = None, + model_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if base_model_name is None and 'baseModelName' in kwargs: + base_model_name = kwargs['baseModelName'] + if input_data_config is None and 'inputDataConfig' in kwargs: + input_data_config = kwargs['inputDataConfig'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if model_name is None and 'modelName' in kwargs: + model_name = kwargs['modelName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if base_model_name is not None: - pulumi.set(__self__, "base_model_name", base_model_name) + _setter("base_model_name", base_model_name) if input_data_config is not None: - pulumi.set(__self__, "input_data_config", input_data_config) + _setter("input_data_config", input_data_config) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if model_name is not None: - pulumi.set(__self__, "model_name", model_name) + _setter("model_name", model_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -374,6 +442,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + LanguageModelArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -396,6 +468,7 @@ def _internal_init(__self__, if base_model_name is None and not opts.urn: raise TypeError("Missing required property 'base_model_name'") __props__.__dict__["base_model_name"] = base_model_name + input_data_config = _utilities.configure(input_data_config, LanguageModelInputDataConfigArgs, True) if input_data_config is None and not opts.urn: raise TypeError("Missing required property 'input_data_config'") __props__.__dict__["input_data_config"] = input_data_config diff --git a/sdk/python/pulumi_aws/transcribe/medical_vocabulary.py b/sdk/python/pulumi_aws/transcribe/medical_vocabulary.py index abc0af9907d..4ef9ce8a8a6 100644 --- a/sdk/python/pulumi_aws/transcribe/medical_vocabulary.py +++ b/sdk/python/pulumi_aws/transcribe/medical_vocabulary.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['MedicalVocabularyArgs', 'MedicalVocabulary'] @@ -27,11 +27,40 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the MedicalVocabulary. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "language_code", language_code) - pulumi.set(__self__, "vocabulary_file_uri", vocabulary_file_uri) - pulumi.set(__self__, "vocabulary_name", vocabulary_name) + MedicalVocabularyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + language_code=language_code, + vocabulary_file_uri=vocabulary_file_uri, + vocabulary_name=vocabulary_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + language_code: Optional[pulumi.Input[str]] = None, + vocabulary_file_uri: Optional[pulumi.Input[str]] = None, + vocabulary_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if vocabulary_file_uri is None and 'vocabularyFileUri' in kwargs: + vocabulary_file_uri = kwargs['vocabularyFileUri'] + if vocabulary_file_uri is None: + raise TypeError("Missing 'vocabulary_file_uri' argument") + if vocabulary_name is None and 'vocabularyName' in kwargs: + vocabulary_name = kwargs['vocabularyName'] + if vocabulary_name is None: + raise TypeError("Missing 'vocabulary_name' argument") + + _setter("language_code", language_code) + _setter("vocabulary_file_uri", vocabulary_file_uri) + _setter("vocabulary_name", vocabulary_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="languageCode") @@ -105,23 +134,56 @@ def __init__(__self__, *, The following arguments are optional: """ + _MedicalVocabularyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + download_uri=download_uri, + language_code=language_code, + tags=tags, + tags_all=tags_all, + vocabulary_file_uri=vocabulary_file_uri, + vocabulary_name=vocabulary_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + download_uri: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vocabulary_file_uri: Optional[pulumi.Input[str]] = None, + vocabulary_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if download_uri is None and 'downloadUri' in kwargs: + download_uri = kwargs['downloadUri'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vocabulary_file_uri is None and 'vocabularyFileUri' in kwargs: + vocabulary_file_uri = kwargs['vocabularyFileUri'] + if vocabulary_name is None and 'vocabularyName' in kwargs: + vocabulary_name = kwargs['vocabularyName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if download_uri is not None: - pulumi.set(__self__, "download_uri", download_uri) + _setter("download_uri", download_uri) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vocabulary_file_uri is not None: - pulumi.set(__self__, "vocabulary_file_uri", vocabulary_file_uri) + _setter("vocabulary_file_uri", vocabulary_file_uri) if vocabulary_name is not None: - pulumi.set(__self__, "vocabulary_name", vocabulary_name) + _setter("vocabulary_name", vocabulary_name) @property @pulumi.getter @@ -313,6 +375,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + MedicalVocabularyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/transcribe/outputs.py b/sdk/python/pulumi_aws/transcribe/outputs.py index 09a4a17db44..799056c42a4 100644 --- a/sdk/python/pulumi_aws/transcribe/outputs.py +++ b/sdk/python/pulumi_aws/transcribe/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -47,10 +47,35 @@ def __init__(__self__, *, The following arguments are optional: """ - pulumi.set(__self__, "data_access_role_arn", data_access_role_arn) - pulumi.set(__self__, "s3_uri", s3_uri) + LanguageModelInputDataConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_access_role_arn=data_access_role_arn, + s3_uri=s3_uri, + tuning_data_s3_uri=tuning_data_s3_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_access_role_arn: Optional[str] = None, + s3_uri: Optional[str] = None, + tuning_data_s3_uri: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_access_role_arn is None and 'dataAccessRoleArn' in kwargs: + data_access_role_arn = kwargs['dataAccessRoleArn'] + if data_access_role_arn is None: + raise TypeError("Missing 'data_access_role_arn' argument") + if s3_uri is None and 's3Uri' in kwargs: + s3_uri = kwargs['s3Uri'] + if s3_uri is None: + raise TypeError("Missing 's3_uri' argument") + if tuning_data_s3_uri is None and 'tuningDataS3Uri' in kwargs: + tuning_data_s3_uri = kwargs['tuningDataS3Uri'] + + _setter("data_access_role_arn", data_access_role_arn) + _setter("s3_uri", s3_uri) if tuning_data_s3_uri is not None: - pulumi.set(__self__, "tuning_data_s3_uri", tuning_data_s3_uri) + _setter("tuning_data_s3_uri", tuning_data_s3_uri) @property @pulumi.getter(name="dataAccessRoleArn") diff --git a/sdk/python/pulumi_aws/transcribe/vocabulary.py b/sdk/python/pulumi_aws/transcribe/vocabulary.py index 9dea9e16fab..61ee7d14a23 100644 --- a/sdk/python/pulumi_aws/transcribe/vocabulary.py +++ b/sdk/python/pulumi_aws/transcribe/vocabulary.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VocabularyArgs', 'Vocabulary'] @@ -29,14 +29,43 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the Vocabulary. 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] vocabulary_file_uri: The Amazon S3 location (URI) of the text file that contains your custom vocabulary. Conflicts wth `phrases`. """ - pulumi.set(__self__, "language_code", language_code) - pulumi.set(__self__, "vocabulary_name", vocabulary_name) + VocabularyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + language_code=language_code, + vocabulary_name=vocabulary_name, + phrases=phrases, + tags=tags, + vocabulary_file_uri=vocabulary_file_uri, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + language_code: Optional[pulumi.Input[str]] = None, + vocabulary_name: Optional[pulumi.Input[str]] = None, + phrases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vocabulary_file_uri: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if vocabulary_name is None and 'vocabularyName' in kwargs: + vocabulary_name = kwargs['vocabularyName'] + if vocabulary_name is None: + raise TypeError("Missing 'vocabulary_name' argument") + if vocabulary_file_uri is None and 'vocabularyFileUri' in kwargs: + vocabulary_file_uri = kwargs['vocabularyFileUri'] + + _setter("language_code", language_code) + _setter("vocabulary_name", vocabulary_name) if phrases is not None: - pulumi.set(__self__, "phrases", phrases) + _setter("phrases", phrases) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vocabulary_file_uri is not None: - pulumi.set(__self__, "vocabulary_file_uri", vocabulary_file_uri) + _setter("vocabulary_file_uri", vocabulary_file_uri) @property @pulumi.getter(name="languageCode") @@ -124,25 +153,60 @@ def __init__(__self__, *, The following arguments are optional: """ + _VocabularyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + download_uri=download_uri, + language_code=language_code, + phrases=phrases, + tags=tags, + tags_all=tags_all, + vocabulary_file_uri=vocabulary_file_uri, + vocabulary_name=vocabulary_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + download_uri: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + phrases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vocabulary_file_uri: Optional[pulumi.Input[str]] = None, + vocabulary_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if download_uri is None and 'downloadUri' in kwargs: + download_uri = kwargs['downloadUri'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vocabulary_file_uri is None and 'vocabularyFileUri' in kwargs: + vocabulary_file_uri = kwargs['vocabularyFileUri'] + if vocabulary_name is None and 'vocabularyName' in kwargs: + vocabulary_name = kwargs['vocabularyName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if download_uri is not None: - pulumi.set(__self__, "download_uri", download_uri) + _setter("download_uri", download_uri) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if phrases is not None: - pulumi.set(__self__, "phrases", phrases) + _setter("phrases", phrases) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vocabulary_file_uri is not None: - pulumi.set(__self__, "vocabulary_file_uri", vocabulary_file_uri) + _setter("vocabulary_file_uri", vocabulary_file_uri) if vocabulary_name is not None: - pulumi.set(__self__, "vocabulary_name", vocabulary_name) + _setter("vocabulary_name", vocabulary_name) @property @pulumi.getter @@ -348,6 +412,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VocabularyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/transcribe/vocabulary_filter.py b/sdk/python/pulumi_aws/transcribe/vocabulary_filter.py index 5b785399569..b07bdb9de61 100644 --- a/sdk/python/pulumi_aws/transcribe/vocabulary_filter.py +++ b/sdk/python/pulumi_aws/transcribe/vocabulary_filter.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['VocabularyFilterArgs', 'VocabularyFilter'] @@ -29,14 +29,43 @@ def __init__(__self__, *, :param pulumi.Input[str] vocabulary_filter_file_uri: The Amazon S3 location (URI) of the text file that contains your custom VocabularyFilter. Conflicts with `words` argument. :param pulumi.Input[Sequence[pulumi.Input[str]]] words: A list of terms to include in the vocabulary. Conflicts with `vocabulary_filter_file_uri` argument. """ - pulumi.set(__self__, "language_code", language_code) - pulumi.set(__self__, "vocabulary_filter_name", vocabulary_filter_name) + VocabularyFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + language_code=language_code, + vocabulary_filter_name=vocabulary_filter_name, + tags=tags, + vocabulary_filter_file_uri=vocabulary_filter_file_uri, + words=words, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + language_code: Optional[pulumi.Input[str]] = None, + vocabulary_filter_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vocabulary_filter_file_uri: Optional[pulumi.Input[str]] = None, + words: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if language_code is None: + raise TypeError("Missing 'language_code' argument") + if vocabulary_filter_name is None and 'vocabularyFilterName' in kwargs: + vocabulary_filter_name = kwargs['vocabularyFilterName'] + if vocabulary_filter_name is None: + raise TypeError("Missing 'vocabulary_filter_name' argument") + if vocabulary_filter_file_uri is None and 'vocabularyFilterFileUri' in kwargs: + vocabulary_filter_file_uri = kwargs['vocabularyFilterFileUri'] + + _setter("language_code", language_code) + _setter("vocabulary_filter_name", vocabulary_filter_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if vocabulary_filter_file_uri is not None: - pulumi.set(__self__, "vocabulary_filter_file_uri", vocabulary_filter_file_uri) + _setter("vocabulary_filter_file_uri", vocabulary_filter_file_uri) if words is not None: - pulumi.set(__self__, "words", words) + _setter("words", words) @property @pulumi.getter(name="languageCode") @@ -124,25 +153,60 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Sequence[pulumi.Input[str]]] words: A list of terms to include in the vocabulary. Conflicts with `vocabulary_filter_file_uri` argument. """ + _VocabularyFilterState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + download_uri=download_uri, + language_code=language_code, + tags=tags, + tags_all=tags_all, + vocabulary_filter_file_uri=vocabulary_filter_file_uri, + vocabulary_filter_name=vocabulary_filter_name, + words=words, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + download_uri: Optional[pulumi.Input[str]] = None, + language_code: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vocabulary_filter_file_uri: Optional[pulumi.Input[str]] = None, + vocabulary_filter_name: Optional[pulumi.Input[str]] = None, + words: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if download_uri is None and 'downloadUri' in kwargs: + download_uri = kwargs['downloadUri'] + if language_code is None and 'languageCode' in kwargs: + language_code = kwargs['languageCode'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vocabulary_filter_file_uri is None and 'vocabularyFilterFileUri' in kwargs: + vocabulary_filter_file_uri = kwargs['vocabularyFilterFileUri'] + if vocabulary_filter_name is None and 'vocabularyFilterName' in kwargs: + vocabulary_filter_name = kwargs['vocabularyFilterName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if download_uri is not None: - pulumi.set(__self__, "download_uri", download_uri) + _setter("download_uri", download_uri) if language_code is not None: - pulumi.set(__self__, "language_code", language_code) + _setter("language_code", language_code) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vocabulary_filter_file_uri is not None: - pulumi.set(__self__, "vocabulary_filter_file_uri", vocabulary_filter_file_uri) + _setter("vocabulary_filter_file_uri", vocabulary_filter_file_uri) if vocabulary_filter_name is not None: - pulumi.set(__self__, "vocabulary_filter_name", vocabulary_filter_name) + _setter("vocabulary_filter_name", vocabulary_filter_name) if words is not None: - pulumi.set(__self__, "words", words) + _setter("words", words) @property @pulumi.getter @@ -342,6 +406,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + VocabularyFilterArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/transfer/_inputs.py b/sdk/python/pulumi_aws/transfer/_inputs.py index aa36f9a6163..4aa48361f67 100644 --- a/sdk/python/pulumi_aws/transfer/_inputs.py +++ b/sdk/python/pulumi_aws/transfer/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -58,8 +58,25 @@ def __init__(__self__, *, :param pulumi.Input[str] entry: Represents an entry and a target. :param pulumi.Input[str] target: Represents the map target. """ - pulumi.set(__self__, "entry", entry) - pulumi.set(__self__, "target", target) + AccessHomeDirectoryMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entry=entry, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entry: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry is None: + raise TypeError("Missing 'entry' argument") + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("entry", entry) + _setter("target", target) @property @pulumi.getter @@ -97,10 +114,31 @@ def __init__(__self__, *, :param pulumi.Input[int] uid: The POSIX user ID used for all EFS operations by this user. :param pulumi.Input[Sequence[pulumi.Input[int]]] secondary_gids: The secondary POSIX group IDs used for all EFS operations by this user. """ - pulumi.set(__self__, "gid", gid) - pulumi.set(__self__, "uid", uid) + AccessPosixProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gid=gid, + uid=uid, + secondary_gids=secondary_gids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gid: Optional[pulumi.Input[int]] = None, + uid: Optional[pulumi.Input[int]] = None, + secondary_gids: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gid is None: + raise TypeError("Missing 'gid' argument") + if uid is None: + raise TypeError("Missing 'uid' argument") + if secondary_gids is None and 'secondaryGids' in kwargs: + secondary_gids = kwargs['secondaryGids'] + + _setter("gid", gid) + _setter("uid", uid) if secondary_gids is not None: - pulumi.set(__self__, "secondary_gids", secondary_gids) + _setter("secondary_gids", secondary_gids) @property @pulumi.getter @@ -160,16 +198,67 @@ def __init__(__self__, *, :param pulumi.Input[str] mdn_signing_algorithm: The signing algorithm for the Mdn response. The valid values are SHA256 | SHA384 | SHA512 | SHA1 | NONE | DEFAULT. :param pulumi.Input[str] message_subject: Used as the subject HTTP header attribute in AS2 messages that are being sent with the connector. """ - pulumi.set(__self__, "compression", compression) - pulumi.set(__self__, "encryption_algorithm", encryption_algorithm) - pulumi.set(__self__, "local_profile_id", local_profile_id) - pulumi.set(__self__, "mdn_response", mdn_response) - pulumi.set(__self__, "partner_profile_id", partner_profile_id) - pulumi.set(__self__, "signing_algorithm", signing_algorithm) + ConnectorAs2ConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compression=compression, + encryption_algorithm=encryption_algorithm, + local_profile_id=local_profile_id, + mdn_response=mdn_response, + partner_profile_id=partner_profile_id, + signing_algorithm=signing_algorithm, + mdn_signing_algorithm=mdn_signing_algorithm, + message_subject=message_subject, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compression: Optional[pulumi.Input[str]] = None, + encryption_algorithm: Optional[pulumi.Input[str]] = None, + local_profile_id: Optional[pulumi.Input[str]] = None, + mdn_response: Optional[pulumi.Input[str]] = None, + partner_profile_id: Optional[pulumi.Input[str]] = None, + signing_algorithm: Optional[pulumi.Input[str]] = None, + mdn_signing_algorithm: Optional[pulumi.Input[str]] = None, + message_subject: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compression is None: + raise TypeError("Missing 'compression' argument") + if encryption_algorithm is None and 'encryptionAlgorithm' in kwargs: + encryption_algorithm = kwargs['encryptionAlgorithm'] + if encryption_algorithm is None: + raise TypeError("Missing 'encryption_algorithm' argument") + if local_profile_id is None and 'localProfileId' in kwargs: + local_profile_id = kwargs['localProfileId'] + if local_profile_id is None: + raise TypeError("Missing 'local_profile_id' argument") + if mdn_response is None and 'mdnResponse' in kwargs: + mdn_response = kwargs['mdnResponse'] + if mdn_response is None: + raise TypeError("Missing 'mdn_response' argument") + if partner_profile_id is None and 'partnerProfileId' in kwargs: + partner_profile_id = kwargs['partnerProfileId'] + if partner_profile_id is None: + raise TypeError("Missing 'partner_profile_id' argument") + if signing_algorithm is None and 'signingAlgorithm' in kwargs: + signing_algorithm = kwargs['signingAlgorithm'] + if signing_algorithm is None: + raise TypeError("Missing 'signing_algorithm' argument") + if mdn_signing_algorithm is None and 'mdnSigningAlgorithm' in kwargs: + mdn_signing_algorithm = kwargs['mdnSigningAlgorithm'] + if message_subject is None and 'messageSubject' in kwargs: + message_subject = kwargs['messageSubject'] + + _setter("compression", compression) + _setter("encryption_algorithm", encryption_algorithm) + _setter("local_profile_id", local_profile_id) + _setter("mdn_response", mdn_response) + _setter("partner_profile_id", partner_profile_id) + _setter("signing_algorithm", signing_algorithm) if mdn_signing_algorithm is not None: - pulumi.set(__self__, "mdn_signing_algorithm", mdn_signing_algorithm) + _setter("mdn_signing_algorithm", mdn_signing_algorithm) if message_subject is not None: - pulumi.set(__self__, "message_subject", message_subject) + _setter("message_subject", message_subject) @property @pulumi.getter @@ -277,10 +366,27 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_host_keys: A list of public portion of the host key, or keys, that are used to authenticate the user to the external server to which you are connecting.(https://docs.aws.amazon.com/transfer/latest/userguide/API_SftpConnectorConfig.html) :param pulumi.Input[str] user_secret_id: The identifier for the secret (in AWS Secrets Manager) that contains the SFTP user's private key, password, or both. The identifier can be either the Amazon Resource Name (ARN) or the name of the secret. """ + ConnectorSftpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + trusted_host_keys=trusted_host_keys, + user_secret_id=user_secret_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trusted_host_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_secret_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trusted_host_keys is None and 'trustedHostKeys' in kwargs: + trusted_host_keys = kwargs['trustedHostKeys'] + if user_secret_id is None and 'userSecretId' in kwargs: + user_secret_id = kwargs['userSecretId'] + if trusted_host_keys is not None: - pulumi.set(__self__, "trusted_host_keys", trusted_host_keys) + _setter("trusted_host_keys", trusted_host_keys) if user_secret_id is not None: - pulumi.set(__self__, "user_secret_id", user_secret_id) + _setter("user_secret_id", user_secret_id) @property @pulumi.getter(name="trustedHostKeys") @@ -322,16 +428,45 @@ def __init__(__self__, *, :param pulumi.Input[str] vpc_endpoint_id: The ID of the VPC endpoint. This property can only be used when `endpoint_type` is set to `VPC_ENDPOINT` :param pulumi.Input[str] vpc_id: The VPC ID of the virtual private cloud in which the SFTP server's endpoint will be hosted. This property can only be used when `endpoint_type` is set to `VPC`. """ + ServerEndpointDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_allocation_ids=address_allocation_ids, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_allocation_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_endpoint_id: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_allocation_ids is None and 'addressAllocationIds' in kwargs: + address_allocation_ids = kwargs['addressAllocationIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if address_allocation_ids is not None: - pulumi.set(__self__, "address_allocation_ids", address_allocation_ids) + _setter("address_allocation_ids", address_allocation_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="addressAllocationIds") @@ -407,14 +542,39 @@ def __init__(__self__, *, :param pulumi.Input[str] set_stat_option: Use to ignore the error that is generated when the client attempts to use `SETSTAT` on a file you are uploading to an S3 bucket. Valid values: `DEFAULT`, `ENABLE_NO_OP`. :param pulumi.Input[str] tls_session_resumption_mode: A property used with Transfer Family servers that use the FTPS protocol. Provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. Valid values: `DISABLED`, `ENABLED`, `ENFORCED`. """ + ServerProtocolDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + as2_transports=as2_transports, + passive_ip=passive_ip, + set_stat_option=set_stat_option, + tls_session_resumption_mode=tls_session_resumption_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + as2_transports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + passive_ip: Optional[pulumi.Input[str]] = None, + set_stat_option: Optional[pulumi.Input[str]] = None, + tls_session_resumption_mode: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if as2_transports is None and 'as2Transports' in kwargs: + as2_transports = kwargs['as2Transports'] + if passive_ip is None and 'passiveIp' in kwargs: + passive_ip = kwargs['passiveIp'] + if set_stat_option is None and 'setStatOption' in kwargs: + set_stat_option = kwargs['setStatOption'] + if tls_session_resumption_mode is None and 'tlsSessionResumptionMode' in kwargs: + tls_session_resumption_mode = kwargs['tlsSessionResumptionMode'] + if as2_transports is not None: - pulumi.set(__self__, "as2_transports", as2_transports) + _setter("as2_transports", as2_transports) if passive_ip is not None: - pulumi.set(__self__, "passive_ip", passive_ip) + _setter("passive_ip", passive_ip) if set_stat_option is not None: - pulumi.set(__self__, "set_stat_option", set_stat_option) + _setter("set_stat_option", set_stat_option) if tls_session_resumption_mode is not None: - pulumi.set(__self__, "tls_session_resumption_mode", tls_session_resumption_mode) + _setter("tls_session_resumption_mode", tls_session_resumption_mode) @property @pulumi.getter(name="as2Transports") @@ -474,10 +634,27 @@ def __init__(__self__, *, :param pulumi.Input['ServerWorkflowDetailsOnPartialUploadArgs'] on_partial_upload: A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. :param pulumi.Input['ServerWorkflowDetailsOnUploadArgs'] on_upload: A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See Workflow Detail below. """ + ServerWorkflowDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_partial_upload=on_partial_upload, + on_upload=on_upload, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_partial_upload: Optional[pulumi.Input['ServerWorkflowDetailsOnPartialUploadArgs']] = None, + on_upload: Optional[pulumi.Input['ServerWorkflowDetailsOnUploadArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_partial_upload is None and 'onPartialUpload' in kwargs: + on_partial_upload = kwargs['onPartialUpload'] + if on_upload is None and 'onUpload' in kwargs: + on_upload = kwargs['onUpload'] + if on_partial_upload is not None: - pulumi.set(__self__, "on_partial_upload", on_partial_upload) + _setter("on_partial_upload", on_partial_upload) if on_upload is not None: - pulumi.set(__self__, "on_upload", on_upload) + _setter("on_upload", on_upload) @property @pulumi.getter(name="onPartialUpload") @@ -513,8 +690,29 @@ def __init__(__self__, *, :param pulumi.Input[str] execution_role: Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources. :param pulumi.Input[str] workflow_id: A unique identifier for the workflow. """ - pulumi.set(__self__, "execution_role", execution_role) - pulumi.set(__self__, "workflow_id", workflow_id) + ServerWorkflowDetailsOnPartialUploadArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + workflow_id=workflow_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[pulumi.Input[str]] = None, + workflow_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if workflow_id is None and 'workflowId' in kwargs: + workflow_id = kwargs['workflowId'] + if workflow_id is None: + raise TypeError("Missing 'workflow_id' argument") + + _setter("execution_role", execution_role) + _setter("workflow_id", workflow_id) @property @pulumi.getter(name="executionRole") @@ -550,8 +748,29 @@ def __init__(__self__, *, :param pulumi.Input[str] execution_role: Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources. :param pulumi.Input[str] workflow_id: A unique identifier for the workflow. """ - pulumi.set(__self__, "execution_role", execution_role) - pulumi.set(__self__, "workflow_id", workflow_id) + ServerWorkflowDetailsOnUploadArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + workflow_id=workflow_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[pulumi.Input[str]] = None, + workflow_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if workflow_id is None and 'workflowId' in kwargs: + workflow_id = kwargs['workflowId'] + if workflow_id is None: + raise TypeError("Missing 'workflow_id' argument") + + _setter("execution_role", execution_role) + _setter("workflow_id", workflow_id) @property @pulumi.getter(name="executionRole") @@ -593,8 +812,25 @@ def __init__(__self__, *, import pulumi ``` """ - pulumi.set(__self__, "entry", entry) - pulumi.set(__self__, "target", target) + UserHomeDirectoryMappingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + entry=entry, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entry: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry is None: + raise TypeError("Missing 'entry' argument") + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("entry", entry) + _setter("target", target) @property @pulumi.getter @@ -638,10 +874,31 @@ def __init__(__self__, *, :param pulumi.Input[int] uid: The POSIX user ID used for all EFS operations by this user. :param pulumi.Input[Sequence[pulumi.Input[int]]] secondary_gids: The secondary POSIX group IDs used for all EFS operations by this user. """ - pulumi.set(__self__, "gid", gid) - pulumi.set(__self__, "uid", uid) + UserPosixProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + gid=gid, + uid=uid, + secondary_gids=secondary_gids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gid: Optional[pulumi.Input[int]] = None, + uid: Optional[pulumi.Input[int]] = None, + secondary_gids: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gid is None: + raise TypeError("Missing 'gid' argument") + if uid is None: + raise TypeError("Missing 'uid' argument") + if secondary_gids is None and 'secondaryGids' in kwargs: + secondary_gids = kwargs['secondaryGids'] + + _setter("gid", gid) + _setter("uid", uid) if secondary_gids is not None: - pulumi.set(__self__, "secondary_gids", secondary_gids) + _setter("secondary_gids", secondary_gids) @property @pulumi.getter @@ -690,30 +947,63 @@ def __init__(__self__, *, delete_step_details: Optional[pulumi.Input['WorkflowOnExceptionStepDeleteStepDetailsArgs']] = None, tag_step_details: Optional[pulumi.Input['WorkflowOnExceptionStepTagStepDetailsArgs']] = None): """ - :param pulumi.Input[str] type: One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + :param pulumi.Input[str] type: The type of encryption used. Currently, this value must be `"PGP"`. :param pulumi.Input['WorkflowOnExceptionStepCopyStepDetailsArgs'] copy_step_details: Details for a step that performs a file copy. See Copy Step Details below. :param pulumi.Input['WorkflowOnExceptionStepCustomStepDetailsArgs'] custom_step_details: Details for a step that invokes a lambda function. :param pulumi.Input['WorkflowOnExceptionStepDecryptStepDetailsArgs'] decrypt_step_details: Details for a step that decrypts the file. :param pulumi.Input['WorkflowOnExceptionStepDeleteStepDetailsArgs'] delete_step_details: Details for a step that deletes the file. :param pulumi.Input['WorkflowOnExceptionStepTagStepDetailsArgs'] tag_step_details: Details for a step that creates one or more tags. """ - pulumi.set(__self__, "type", type) + WorkflowOnExceptionStepArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + copy_step_details=copy_step_details, + custom_step_details=custom_step_details, + decrypt_step_details=decrypt_step_details, + delete_step_details=delete_step_details, + tag_step_details=tag_step_details, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + copy_step_details: Optional[pulumi.Input['WorkflowOnExceptionStepCopyStepDetailsArgs']] = None, + custom_step_details: Optional[pulumi.Input['WorkflowOnExceptionStepCustomStepDetailsArgs']] = None, + decrypt_step_details: Optional[pulumi.Input['WorkflowOnExceptionStepDecryptStepDetailsArgs']] = None, + delete_step_details: Optional[pulumi.Input['WorkflowOnExceptionStepDeleteStepDetailsArgs']] = None, + tag_step_details: Optional[pulumi.Input['WorkflowOnExceptionStepTagStepDetailsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if copy_step_details is None and 'copyStepDetails' in kwargs: + copy_step_details = kwargs['copyStepDetails'] + if custom_step_details is None and 'customStepDetails' in kwargs: + custom_step_details = kwargs['customStepDetails'] + if decrypt_step_details is None and 'decryptStepDetails' in kwargs: + decrypt_step_details = kwargs['decryptStepDetails'] + if delete_step_details is None and 'deleteStepDetails' in kwargs: + delete_step_details = kwargs['deleteStepDetails'] + if tag_step_details is None and 'tagStepDetails' in kwargs: + tag_step_details = kwargs['tagStepDetails'] + + _setter("type", type) if copy_step_details is not None: - pulumi.set(__self__, "copy_step_details", copy_step_details) + _setter("copy_step_details", copy_step_details) if custom_step_details is not None: - pulumi.set(__self__, "custom_step_details", custom_step_details) + _setter("custom_step_details", custom_step_details) if decrypt_step_details is not None: - pulumi.set(__self__, "decrypt_step_details", decrypt_step_details) + _setter("decrypt_step_details", decrypt_step_details) if delete_step_details is not None: - pulumi.set(__self__, "delete_step_details", delete_step_details) + _setter("delete_step_details", delete_step_details) if tag_step_details is not None: - pulumi.set(__self__, "tag_step_details", tag_step_details) + _setter("tag_step_details", tag_step_details) @property @pulumi.getter def type(self) -> pulumi.Input[str]: """ - One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + The type of encryption used. Currently, this value must be `"PGP"`. """ return pulumi.get(self, "type") @@ -795,14 +1085,37 @@ def __init__(__self__, *, :param pulumi.Input[str] overwrite_existing: A flag that indicates whether or not to overwrite an existing file of the same name. The default is `FALSE`. Valid values are `TRUE` and `FALSE`. :param pulumi.Input[str] source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ + WorkflowOnExceptionStepCopyStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_file_location=destination_file_location, + name=name, + overwrite_existing=overwrite_existing, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_file_location: Optional[pulumi.Input['WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + overwrite_existing: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_file_location is None and 'destinationFileLocation' in kwargs: + destination_file_location = kwargs['destinationFileLocation'] + if overwrite_existing is None and 'overwriteExisting' in kwargs: + overwrite_existing = kwargs['overwriteExisting'] + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if destination_file_location is not None: - pulumi.set(__self__, "destination_file_location", destination_file_location) + _setter("destination_file_location", destination_file_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite_existing is not None: - pulumi.set(__self__, "overwrite_existing", overwrite_existing) + _setter("overwrite_existing", overwrite_existing) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter(name="destinationFileLocation") @@ -862,10 +1175,27 @@ def __init__(__self__, *, :param pulumi.Input['WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationEfsFileLocationArgs'] efs_file_location: Specifies the details for the EFS file being copied. :param pulumi.Input['WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs'] s3_file_location: Specifies the details for the S3 file being copied. """ + WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + efs_file_location=efs_file_location, + s3_file_location=s3_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + efs_file_location: Optional[pulumi.Input['WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationEfsFileLocationArgs']] = None, + s3_file_location: Optional[pulumi.Input['WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if efs_file_location is None and 'efsFileLocation' in kwargs: + efs_file_location = kwargs['efsFileLocation'] + if s3_file_location is None and 's3FileLocation' in kwargs: + s3_file_location = kwargs['s3FileLocation'] + if efs_file_location is not None: - pulumi.set(__self__, "efs_file_location", efs_file_location) + _setter("efs_file_location", efs_file_location) if s3_file_location is not None: - pulumi.set(__self__, "s3_file_location", s3_file_location) + _setter("s3_file_location", s3_file_location) @property @pulumi.getter(name="efsFileLocation") @@ -901,10 +1231,25 @@ def __init__(__self__, *, :param pulumi.Input[str] file_system_id: The ID of the file system, assigned by Amazon EFS. :param pulumi.Input[str] path: The pathname for the folder being used by a workflow. """ + WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationEfsFileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="fileSystemId") @@ -938,12 +1283,25 @@ def __init__(__self__, *, key: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] bucket: Specifies the S3 bucket for the customer input file. - :param pulumi.Input[str] key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. - """ + :param pulumi.Input[str] key: The name assigned to the tag that you create. + """ + WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -961,7 +1319,7 @@ def bucket(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def key(self) -> Optional[pulumi.Input[str]]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -983,14 +1341,35 @@ def __init__(__self__, *, :param pulumi.Input[str] target: The ARN for the lambda function that is being called. :param pulumi.Input[int] timeout_seconds: Timeout, in seconds, for the step. """ + WorkflowOnExceptionStepCustomStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + target=target, + timeout_seconds=timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + timeout_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if timeout_seconds is None and 'timeoutSeconds' in kwargs: + timeout_seconds = kwargs['timeoutSeconds'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if timeout_seconds is not None: - pulumi.set(__self__, "timeout_seconds", timeout_seconds) + _setter("timeout_seconds", timeout_seconds) @property @pulumi.getter @@ -1056,15 +1435,42 @@ def __init__(__self__, *, :param pulumi.Input[str] overwrite_existing: A flag that indicates whether or not to overwrite an existing file of the same name. The default is `FALSE`. Valid values are `TRUE` and `FALSE`. :param pulumi.Input[str] source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ - pulumi.set(__self__, "type", type) + WorkflowOnExceptionStepDecryptStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + destination_file_location=destination_file_location, + name=name, + overwrite_existing=overwrite_existing, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + destination_file_location: Optional[pulumi.Input['WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + overwrite_existing: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if destination_file_location is None and 'destinationFileLocation' in kwargs: + destination_file_location = kwargs['destinationFileLocation'] + if overwrite_existing is None and 'overwriteExisting' in kwargs: + overwrite_existing = kwargs['overwriteExisting'] + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + + _setter("type", type) if destination_file_location is not None: - pulumi.set(__self__, "destination_file_location", destination_file_location) + _setter("destination_file_location", destination_file_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite_existing is not None: - pulumi.set(__self__, "overwrite_existing", overwrite_existing) + _setter("overwrite_existing", overwrite_existing) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter @@ -1136,10 +1542,27 @@ def __init__(__self__, *, :param pulumi.Input['WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationEfsFileLocationArgs'] efs_file_location: Specifies the details for the EFS file being copied. :param pulumi.Input['WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs'] s3_file_location: Specifies the details for the S3 file being copied. """ + WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + efs_file_location=efs_file_location, + s3_file_location=s3_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + efs_file_location: Optional[pulumi.Input['WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationEfsFileLocationArgs']] = None, + s3_file_location: Optional[pulumi.Input['WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if efs_file_location is None and 'efsFileLocation' in kwargs: + efs_file_location = kwargs['efsFileLocation'] + if s3_file_location is None and 's3FileLocation' in kwargs: + s3_file_location = kwargs['s3FileLocation'] + if efs_file_location is not None: - pulumi.set(__self__, "efs_file_location", efs_file_location) + _setter("efs_file_location", efs_file_location) if s3_file_location is not None: - pulumi.set(__self__, "s3_file_location", s3_file_location) + _setter("s3_file_location", s3_file_location) @property @pulumi.getter(name="efsFileLocation") @@ -1175,10 +1598,25 @@ def __init__(__self__, *, :param pulumi.Input[str] file_system_id: The ID of the file system, assigned by Amazon EFS. :param pulumi.Input[str] path: The pathname for the folder being used by a workflow. """ + WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationEfsFileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="fileSystemId") @@ -1212,12 +1650,25 @@ def __init__(__self__, *, key: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] bucket: Specifies the S3 bucket for the customer input file. - :param pulumi.Input[str] key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. - """ + :param pulumi.Input[str] key: The name assigned to the tag that you create. + """ + WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1235,7 +1686,7 @@ def bucket(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def key(self) -> Optional[pulumi.Input[str]]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -1253,10 +1704,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the step, used as an identifier. :param pulumi.Input[str] source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ + WorkflowOnExceptionStepDeleteStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter @@ -1294,12 +1760,29 @@ def __init__(__self__, *, :param pulumi.Input[str] source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. :param pulumi.Input[Sequence[pulumi.Input['WorkflowOnExceptionStepTagStepDetailsTagArgs']]] tags: Array that contains from 1 to 10 key/value pairs. See S3 Tags below. """ + WorkflowOnExceptionStepTagStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowOnExceptionStepTagStepDetailsTagArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -1344,17 +1827,34 @@ def __init__(__self__, *, key: pulumi.Input[str], value: pulumi.Input[str]): """ - :param pulumi.Input[str] key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + :param pulumi.Input[str] key: The name assigned to the tag that you create. :param pulumi.Input[str] value: The value that corresponds to the key. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + WorkflowOnExceptionStepTagStepDetailsTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter def key(self) -> pulumi.Input[str]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -1385,30 +1885,63 @@ def __init__(__self__, *, delete_step_details: Optional[pulumi.Input['WorkflowStepDeleteStepDetailsArgs']] = None, tag_step_details: Optional[pulumi.Input['WorkflowStepTagStepDetailsArgs']] = None): """ - :param pulumi.Input[str] type: One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + :param pulumi.Input[str] type: The type of encryption used. Currently, this value must be `"PGP"`. :param pulumi.Input['WorkflowStepCopyStepDetailsArgs'] copy_step_details: Details for a step that performs a file copy. See Copy Step Details below. :param pulumi.Input['WorkflowStepCustomStepDetailsArgs'] custom_step_details: Details for a step that invokes a lambda function. :param pulumi.Input['WorkflowStepDecryptStepDetailsArgs'] decrypt_step_details: Details for a step that decrypts the file. :param pulumi.Input['WorkflowStepDeleteStepDetailsArgs'] delete_step_details: Details for a step that deletes the file. :param pulumi.Input['WorkflowStepTagStepDetailsArgs'] tag_step_details: Details for a step that creates one or more tags. """ - pulumi.set(__self__, "type", type) + WorkflowStepArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + copy_step_details=copy_step_details, + custom_step_details=custom_step_details, + decrypt_step_details=decrypt_step_details, + delete_step_details=delete_step_details, + tag_step_details=tag_step_details, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + copy_step_details: Optional[pulumi.Input['WorkflowStepCopyStepDetailsArgs']] = None, + custom_step_details: Optional[pulumi.Input['WorkflowStepCustomStepDetailsArgs']] = None, + decrypt_step_details: Optional[pulumi.Input['WorkflowStepDecryptStepDetailsArgs']] = None, + delete_step_details: Optional[pulumi.Input['WorkflowStepDeleteStepDetailsArgs']] = None, + tag_step_details: Optional[pulumi.Input['WorkflowStepTagStepDetailsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if copy_step_details is None and 'copyStepDetails' in kwargs: + copy_step_details = kwargs['copyStepDetails'] + if custom_step_details is None and 'customStepDetails' in kwargs: + custom_step_details = kwargs['customStepDetails'] + if decrypt_step_details is None and 'decryptStepDetails' in kwargs: + decrypt_step_details = kwargs['decryptStepDetails'] + if delete_step_details is None and 'deleteStepDetails' in kwargs: + delete_step_details = kwargs['deleteStepDetails'] + if tag_step_details is None and 'tagStepDetails' in kwargs: + tag_step_details = kwargs['tagStepDetails'] + + _setter("type", type) if copy_step_details is not None: - pulumi.set(__self__, "copy_step_details", copy_step_details) + _setter("copy_step_details", copy_step_details) if custom_step_details is not None: - pulumi.set(__self__, "custom_step_details", custom_step_details) + _setter("custom_step_details", custom_step_details) if decrypt_step_details is not None: - pulumi.set(__self__, "decrypt_step_details", decrypt_step_details) + _setter("decrypt_step_details", decrypt_step_details) if delete_step_details is not None: - pulumi.set(__self__, "delete_step_details", delete_step_details) + _setter("delete_step_details", delete_step_details) if tag_step_details is not None: - pulumi.set(__self__, "tag_step_details", tag_step_details) + _setter("tag_step_details", tag_step_details) @property @pulumi.getter def type(self) -> pulumi.Input[str]: """ - One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + The type of encryption used. Currently, this value must be `"PGP"`. """ return pulumi.get(self, "type") @@ -1490,14 +2023,37 @@ def __init__(__self__, *, :param pulumi.Input[str] overwrite_existing: A flag that indicates whether or not to overwrite an existing file of the same name. The default is `FALSE`. Valid values are `TRUE` and `FALSE`. :param pulumi.Input[str] source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ + WorkflowStepCopyStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_file_location=destination_file_location, + name=name, + overwrite_existing=overwrite_existing, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_file_location: Optional[pulumi.Input['WorkflowStepCopyStepDetailsDestinationFileLocationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + overwrite_existing: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_file_location is None and 'destinationFileLocation' in kwargs: + destination_file_location = kwargs['destinationFileLocation'] + if overwrite_existing is None and 'overwriteExisting' in kwargs: + overwrite_existing = kwargs['overwriteExisting'] + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if destination_file_location is not None: - pulumi.set(__self__, "destination_file_location", destination_file_location) + _setter("destination_file_location", destination_file_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite_existing is not None: - pulumi.set(__self__, "overwrite_existing", overwrite_existing) + _setter("overwrite_existing", overwrite_existing) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter(name="destinationFileLocation") @@ -1557,10 +2113,27 @@ def __init__(__self__, *, :param pulumi.Input['WorkflowStepCopyStepDetailsDestinationFileLocationEfsFileLocationArgs'] efs_file_location: Specifies the details for the EFS file being copied. :param pulumi.Input['WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs'] s3_file_location: Specifies the details for the S3 file being copied. """ + WorkflowStepCopyStepDetailsDestinationFileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + efs_file_location=efs_file_location, + s3_file_location=s3_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + efs_file_location: Optional[pulumi.Input['WorkflowStepCopyStepDetailsDestinationFileLocationEfsFileLocationArgs']] = None, + s3_file_location: Optional[pulumi.Input['WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if efs_file_location is None and 'efsFileLocation' in kwargs: + efs_file_location = kwargs['efsFileLocation'] + if s3_file_location is None and 's3FileLocation' in kwargs: + s3_file_location = kwargs['s3FileLocation'] + if efs_file_location is not None: - pulumi.set(__self__, "efs_file_location", efs_file_location) + _setter("efs_file_location", efs_file_location) if s3_file_location is not None: - pulumi.set(__self__, "s3_file_location", s3_file_location) + _setter("s3_file_location", s3_file_location) @property @pulumi.getter(name="efsFileLocation") @@ -1596,10 +2169,25 @@ def __init__(__self__, *, :param pulumi.Input[str] file_system_id: The ID of the file system, assigned by Amazon EFS. :param pulumi.Input[str] path: The pathname for the folder being used by a workflow. """ + WorkflowStepCopyStepDetailsDestinationFileLocationEfsFileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="fileSystemId") @@ -1633,12 +2221,25 @@ def __init__(__self__, *, key: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] bucket: Specifies the S3 bucket for the customer input file. - :param pulumi.Input[str] key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. - """ + :param pulumi.Input[str] key: The name assigned to the tag that you create. + """ + WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1656,7 +2257,7 @@ def bucket(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def key(self) -> Optional[pulumi.Input[str]]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -1678,14 +2279,35 @@ def __init__(__self__, *, :param pulumi.Input[str] target: The ARN for the lambda function that is being called. :param pulumi.Input[int] timeout_seconds: Timeout, in seconds, for the step. """ + WorkflowStepCustomStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + target=target, + timeout_seconds=timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + target: Optional[pulumi.Input[str]] = None, + timeout_seconds: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if timeout_seconds is None and 'timeoutSeconds' in kwargs: + timeout_seconds = kwargs['timeoutSeconds'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if timeout_seconds is not None: - pulumi.set(__self__, "timeout_seconds", timeout_seconds) + _setter("timeout_seconds", timeout_seconds) @property @pulumi.getter @@ -1751,15 +2373,42 @@ def __init__(__self__, *, :param pulumi.Input[str] overwrite_existing: A flag that indicates whether or not to overwrite an existing file of the same name. The default is `FALSE`. Valid values are `TRUE` and `FALSE`. :param pulumi.Input[str] source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ - pulumi.set(__self__, "type", type) + WorkflowStepDecryptStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + destination_file_location=destination_file_location, + name=name, + overwrite_existing=overwrite_existing, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + destination_file_location: Optional[pulumi.Input['WorkflowStepDecryptStepDetailsDestinationFileLocationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + overwrite_existing: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if destination_file_location is None and 'destinationFileLocation' in kwargs: + destination_file_location = kwargs['destinationFileLocation'] + if overwrite_existing is None and 'overwriteExisting' in kwargs: + overwrite_existing = kwargs['overwriteExisting'] + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + + _setter("type", type) if destination_file_location is not None: - pulumi.set(__self__, "destination_file_location", destination_file_location) + _setter("destination_file_location", destination_file_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite_existing is not None: - pulumi.set(__self__, "overwrite_existing", overwrite_existing) + _setter("overwrite_existing", overwrite_existing) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter @@ -1831,10 +2480,27 @@ def __init__(__self__, *, :param pulumi.Input['WorkflowStepDecryptStepDetailsDestinationFileLocationEfsFileLocationArgs'] efs_file_location: Specifies the details for the EFS file being copied. :param pulumi.Input['WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs'] s3_file_location: Specifies the details for the S3 file being copied. """ + WorkflowStepDecryptStepDetailsDestinationFileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + efs_file_location=efs_file_location, + s3_file_location=s3_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + efs_file_location: Optional[pulumi.Input['WorkflowStepDecryptStepDetailsDestinationFileLocationEfsFileLocationArgs']] = None, + s3_file_location: Optional[pulumi.Input['WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if efs_file_location is None and 'efsFileLocation' in kwargs: + efs_file_location = kwargs['efsFileLocation'] + if s3_file_location is None and 's3FileLocation' in kwargs: + s3_file_location = kwargs['s3FileLocation'] + if efs_file_location is not None: - pulumi.set(__self__, "efs_file_location", efs_file_location) + _setter("efs_file_location", efs_file_location) if s3_file_location is not None: - pulumi.set(__self__, "s3_file_location", s3_file_location) + _setter("s3_file_location", s3_file_location) @property @pulumi.getter(name="efsFileLocation") @@ -1870,10 +2536,25 @@ def __init__(__self__, *, :param pulumi.Input[str] file_system_id: The ID of the file system, assigned by Amazon EFS. :param pulumi.Input[str] path: The pathname for the folder being used by a workflow. """ + WorkflowStepDecryptStepDetailsDestinationFileLocationEfsFileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[pulumi.Input[str]] = None, + path: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="fileSystemId") @@ -1907,12 +2588,25 @@ def __init__(__self__, *, key: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] bucket: Specifies the S3 bucket for the customer input file. - :param pulumi.Input[str] key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. - """ + :param pulumi.Input[str] key: The name assigned to the tag that you create. + """ + WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1930,7 +2624,7 @@ def bucket(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def key(self) -> Optional[pulumi.Input[str]]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -1948,10 +2642,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the step, used as an identifier. :param pulumi.Input[str] source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ + WorkflowStepDeleteStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter @@ -1989,12 +2698,29 @@ def __init__(__self__, *, :param pulumi.Input[str] source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. :param pulumi.Input[Sequence[pulumi.Input['WorkflowStepTagStepDetailsTagArgs']]] tags: Array that contains from 1 to 10 key/value pairs. See S3 Tags below. """ + WorkflowStepTagStepDetailsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + source_file_location: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowStepTagStepDetailsTagArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -2039,17 +2765,34 @@ def __init__(__self__, *, key: pulumi.Input[str], value: pulumi.Input[str]): """ - :param pulumi.Input[str] key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + :param pulumi.Input[str] key: The name assigned to the tag that you create. :param pulumi.Input[str] value: The value that corresponds to the key. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + WorkflowStepTagStepDetailsTagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter def key(self) -> pulumi.Input[str]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") diff --git a/sdk/python/pulumi_aws/transfer/access.py b/sdk/python/pulumi_aws/transfer/access.py index 714db9d2c77..8aea1aec16c 100644 --- a/sdk/python/pulumi_aws/transfer/access.py +++ b/sdk/python/pulumi_aws/transfer/access.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,20 +35,61 @@ def __init__(__self__, *, :param pulumi.Input['AccessPosixProfileArgs'] posix_profile: Specifies the full POSIX identity, including user ID (Uid), group ID (Gid), and any secondary groups IDs (SecondaryGids), that controls your users' access to your Amazon EFS file systems. See Posix Profile below. :param pulumi.Input[str] role: Amazon Resource Name (ARN) of an IAM role that allows the service to controls your user’s access to your Amazon S3 bucket. """ - pulumi.set(__self__, "external_id", external_id) - pulumi.set(__self__, "server_id", server_id) + AccessArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_id=external_id, + server_id=server_id, + home_directory=home_directory, + home_directory_mappings=home_directory_mappings, + home_directory_type=home_directory_type, + policy=policy, + posix_profile=posix_profile, + role=role, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_id: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + home_directory: Optional[pulumi.Input[str]] = None, + home_directory_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['AccessHomeDirectoryMappingArgs']]]] = None, + home_directory_type: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + posix_profile: Optional[pulumi.Input['AccessPosixProfileArgs']] = None, + role: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if external_id is None: + raise TypeError("Missing 'external_id' argument") + if server_id is None and 'serverId' in kwargs: + server_id = kwargs['serverId'] + if server_id is None: + raise TypeError("Missing 'server_id' argument") + if home_directory is None and 'homeDirectory' in kwargs: + home_directory = kwargs['homeDirectory'] + if home_directory_mappings is None and 'homeDirectoryMappings' in kwargs: + home_directory_mappings = kwargs['homeDirectoryMappings'] + if home_directory_type is None and 'homeDirectoryType' in kwargs: + home_directory_type = kwargs['homeDirectoryType'] + if posix_profile is None and 'posixProfile' in kwargs: + posix_profile = kwargs['posixProfile'] + + _setter("external_id", external_id) + _setter("server_id", server_id) if home_directory is not None: - pulumi.set(__self__, "home_directory", home_directory) + _setter("home_directory", home_directory) if home_directory_mappings is not None: - pulumi.set(__self__, "home_directory_mappings", home_directory_mappings) + _setter("home_directory_mappings", home_directory_mappings) if home_directory_type is not None: - pulumi.set(__self__, "home_directory_type", home_directory_type) + _setter("home_directory_type", home_directory_type) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if posix_profile is not None: - pulumi.set(__self__, "posix_profile", posix_profile) + _setter("posix_profile", posix_profile) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) @property @pulumi.getter(name="externalId") @@ -169,22 +210,59 @@ def __init__(__self__, *, :param pulumi.Input[str] role: Amazon Resource Name (ARN) of an IAM role that allows the service to controls your user’s access to your Amazon S3 bucket. :param pulumi.Input[str] server_id: The Server ID of the Transfer Server (e.g., `s-12345678`) """ + _AccessState._configure( + lambda key, value: pulumi.set(__self__, key, value), + external_id=external_id, + home_directory=home_directory, + home_directory_mappings=home_directory_mappings, + home_directory_type=home_directory_type, + policy=policy, + posix_profile=posix_profile, + role=role, + server_id=server_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + external_id: Optional[pulumi.Input[str]] = None, + home_directory: Optional[pulumi.Input[str]] = None, + home_directory_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['AccessHomeDirectoryMappingArgs']]]] = None, + home_directory_type: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + posix_profile: Optional[pulumi.Input['AccessPosixProfileArgs']] = None, + role: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if external_id is None and 'externalId' in kwargs: + external_id = kwargs['externalId'] + if home_directory is None and 'homeDirectory' in kwargs: + home_directory = kwargs['homeDirectory'] + if home_directory_mappings is None and 'homeDirectoryMappings' in kwargs: + home_directory_mappings = kwargs['homeDirectoryMappings'] + if home_directory_type is None and 'homeDirectoryType' in kwargs: + home_directory_type = kwargs['homeDirectoryType'] + if posix_profile is None and 'posixProfile' in kwargs: + posix_profile = kwargs['posixProfile'] + if server_id is None and 'serverId' in kwargs: + server_id = kwargs['serverId'] + if external_id is not None: - pulumi.set(__self__, "external_id", external_id) + _setter("external_id", external_id) if home_directory is not None: - pulumi.set(__self__, "home_directory", home_directory) + _setter("home_directory", home_directory) if home_directory_mappings is not None: - pulumi.set(__self__, "home_directory_mappings", home_directory_mappings) + _setter("home_directory_mappings", home_directory_mappings) if home_directory_type is not None: - pulumi.set(__self__, "home_directory_type", home_directory_type) + _setter("home_directory_type", home_directory_type) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if posix_profile is not None: - pulumi.set(__self__, "posix_profile", posix_profile) + _setter("posix_profile", posix_profile) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) if server_id is not None: - pulumi.set(__self__, "server_id", server_id) + _setter("server_id", server_id) @property @pulumi.getter(name="externalId") @@ -406,6 +484,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccessArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -435,6 +517,7 @@ def _internal_init(__self__, __props__.__dict__["home_directory_mappings"] = home_directory_mappings __props__.__dict__["home_directory_type"] = home_directory_type __props__.__dict__["policy"] = policy + posix_profile = _utilities.configure(posix_profile, AccessPosixProfileArgs, True) __props__.__dict__["posix_profile"] = posix_profile __props__.__dict__["role"] = role if server_id is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/transfer/agreement.py b/sdk/python/pulumi_aws/transfer/agreement.py index 2b28c05af59..0d99fa1a21e 100644 --- a/sdk/python/pulumi_aws/transfer/agreement.py +++ b/sdk/python/pulumi_aws/transfer/agreement.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AgreementArgs', 'Agreement'] @@ -31,15 +31,58 @@ def __init__(__self__, *, :param pulumi.Input[str] description: The Optional description of the transdfer. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "access_role", access_role) - pulumi.set(__self__, "base_directory", base_directory) - pulumi.set(__self__, "local_profile_id", local_profile_id) - pulumi.set(__self__, "partner_profile_id", partner_profile_id) - pulumi.set(__self__, "server_id", server_id) + AgreementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_role=access_role, + base_directory=base_directory, + local_profile_id=local_profile_id, + partner_profile_id=partner_profile_id, + server_id=server_id, + description=description, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_role: Optional[pulumi.Input[str]] = None, + base_directory: Optional[pulumi.Input[str]] = None, + local_profile_id: Optional[pulumi.Input[str]] = None, + partner_profile_id: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_role is None and 'accessRole' in kwargs: + access_role = kwargs['accessRole'] + if access_role is None: + raise TypeError("Missing 'access_role' argument") + if base_directory is None and 'baseDirectory' in kwargs: + base_directory = kwargs['baseDirectory'] + if base_directory is None: + raise TypeError("Missing 'base_directory' argument") + if local_profile_id is None and 'localProfileId' in kwargs: + local_profile_id = kwargs['localProfileId'] + if local_profile_id is None: + raise TypeError("Missing 'local_profile_id' argument") + if partner_profile_id is None and 'partnerProfileId' in kwargs: + partner_profile_id = kwargs['partnerProfileId'] + if partner_profile_id is None: + raise TypeError("Missing 'partner_profile_id' argument") + if server_id is None and 'serverId' in kwargs: + server_id = kwargs['serverId'] + if server_id is None: + raise TypeError("Missing 'server_id' argument") + + _setter("access_role", access_role) + _setter("base_directory", base_directory) + _setter("local_profile_id", local_profile_id) + _setter("partner_profile_id", partner_profile_id) + _setter("server_id", server_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="accessRole") @@ -152,31 +195,76 @@ def __init__(__self__, *, :param pulumi.Input[str] server_id: The unique server identifier for the server instance. This is the specific server the agreement uses. :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. """ + _AgreementState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_role=access_role, + agreement_id=agreement_id, + arn=arn, + base_directory=base_directory, + description=description, + local_profile_id=local_profile_id, + partner_profile_id=partner_profile_id, + server_id=server_id, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_role: Optional[pulumi.Input[str]] = None, + agreement_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + base_directory: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + local_profile_id: Optional[pulumi.Input[str]] = None, + partner_profile_id: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_role is None and 'accessRole' in kwargs: + access_role = kwargs['accessRole'] + if agreement_id is None and 'agreementId' in kwargs: + agreement_id = kwargs['agreementId'] + if base_directory is None and 'baseDirectory' in kwargs: + base_directory = kwargs['baseDirectory'] + if local_profile_id is None and 'localProfileId' in kwargs: + local_profile_id = kwargs['localProfileId'] + if partner_profile_id is None and 'partnerProfileId' in kwargs: + partner_profile_id = kwargs['partnerProfileId'] + if server_id is None and 'serverId' in kwargs: + server_id = kwargs['serverId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if access_role is not None: - pulumi.set(__self__, "access_role", access_role) + _setter("access_role", access_role) if agreement_id is not None: - pulumi.set(__self__, "agreement_id", agreement_id) + _setter("agreement_id", agreement_id) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if base_directory is not None: - pulumi.set(__self__, "base_directory", base_directory) + _setter("base_directory", base_directory) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if local_profile_id is not None: - pulumi.set(__self__, "local_profile_id", local_profile_id) + _setter("local_profile_id", local_profile_id) if partner_profile_id is not None: - pulumi.set(__self__, "partner_profile_id", partner_profile_id) + _setter("partner_profile_id", partner_profile_id) if server_id is not None: - pulumi.set(__self__, "server_id", server_id) + _setter("server_id", server_id) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="accessRole") @@ -401,6 +489,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AgreementArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/transfer/certificate.py b/sdk/python/pulumi_aws/transfer/certificate.py index 94c6f823b04..125e15e1b7f 100644 --- a/sdk/python/pulumi_aws/transfer/certificate.py +++ b/sdk/python/pulumi_aws/transfer/certificate.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['CertificateArgs', 'Certificate'] @@ -29,16 +29,45 @@ def __init__(__self__, *, :param pulumi.Input[str] private_key: The private key associated with the certificate being imported. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "certificate", certificate) - pulumi.set(__self__, "usage", usage) + CertificateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + usage=usage, + certificate_chain=certificate_chain, + description=description, + private_key=private_key, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[pulumi.Input[str]] = None, + usage: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate is None: + raise TypeError("Missing 'certificate' argument") + if usage is None: + raise TypeError("Missing 'usage' argument") + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + + _setter("certificate", certificate) + _setter("usage", usage) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -140,31 +169,74 @@ def __init__(__self__, *, :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] usage: Specifies if a certificate is being used for signing or encryption. The valid values are SIGNING and ENCRYPTION. """ + _CertificateState._configure( + lambda key, value: pulumi.set(__self__, key, value), + active_date=active_date, + arn=arn, + certificate=certificate, + certificate_chain=certificate_chain, + certificate_id=certificate_id, + description=description, + inactive_date=inactive_date, + private_key=private_key, + tags=tags, + tags_all=tags_all, + usage=usage, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + active_date: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + certificate_chain: Optional[pulumi.Input[str]] = None, + certificate_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + inactive_date: Optional[pulumi.Input[str]] = None, + private_key: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + usage: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if active_date is None and 'activeDate' in kwargs: + active_date = kwargs['activeDate'] + if certificate_chain is None and 'certificateChain' in kwargs: + certificate_chain = kwargs['certificateChain'] + if certificate_id is None and 'certificateId' in kwargs: + certificate_id = kwargs['certificateId'] + if inactive_date is None and 'inactiveDate' in kwargs: + inactive_date = kwargs['inactiveDate'] + if private_key is None and 'privateKey' in kwargs: + private_key = kwargs['privateKey'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if active_date is not None: - pulumi.set(__self__, "active_date", active_date) + _setter("active_date", active_date) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if certificate_chain is not None: - pulumi.set(__self__, "certificate_chain", certificate_chain) + _setter("certificate_chain", certificate_chain) if certificate_id is not None: - pulumi.set(__self__, "certificate_id", certificate_id) + _setter("certificate_id", certificate_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if inactive_date is not None: - pulumi.set(__self__, "inactive_date", inactive_date) + _setter("inactive_date", inactive_date) if private_key is not None: - pulumi.set(__self__, "private_key", private_key) + _setter("private_key", private_key) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if usage is not None: - pulumi.set(__self__, "usage", usage) + _setter("usage", usage) @property @pulumi.getter(name="activeDate") @@ -388,6 +460,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + CertificateArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/transfer/connector.py b/sdk/python/pulumi_aws/transfer/connector.py index 212643b1f73..8f61d3d58e0 100644 --- a/sdk/python/pulumi_aws/transfer/connector.py +++ b/sdk/python/pulumi_aws/transfer/connector.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,49 @@ def __init__(__self__, *, :param pulumi.Input['ConnectorSftpConfigArgs'] sftp_config: Either SFTP or AS2 is configured.The parameters to configure for the connector object. Fields documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "access_role", access_role) - pulumi.set(__self__, "url", url) + ConnectorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_role=access_role, + url=url, + as2_config=as2_config, + logging_role=logging_role, + sftp_config=sftp_config, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_role: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None, + as2_config: Optional[pulumi.Input['ConnectorAs2ConfigArgs']] = None, + logging_role: Optional[pulumi.Input[str]] = None, + sftp_config: Optional[pulumi.Input['ConnectorSftpConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_role is None and 'accessRole' in kwargs: + access_role = kwargs['accessRole'] + if access_role is None: + raise TypeError("Missing 'access_role' argument") + if url is None: + raise TypeError("Missing 'url' argument") + if as2_config is None and 'as2Config' in kwargs: + as2_config = kwargs['as2Config'] + if logging_role is None and 'loggingRole' in kwargs: + logging_role = kwargs['loggingRole'] + if sftp_config is None and 'sftpConfig' in kwargs: + sftp_config = kwargs['sftpConfig'] + + _setter("access_role", access_role) + _setter("url", url) if as2_config is not None: - pulumi.set(__self__, "as2_config", as2_config) + _setter("as2_config", as2_config) if logging_role is not None: - pulumi.set(__self__, "logging_role", logging_role) + _setter("logging_role", logging_role) if sftp_config is not None: - pulumi.set(__self__, "sftp_config", sftp_config) + _setter("sftp_config", sftp_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="accessRole") @@ -138,27 +171,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] url: The URL of the partners AS2 endpoint or SFTP endpoint. """ + _ConnectorState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_role=access_role, + arn=arn, + as2_config=as2_config, + connector_id=connector_id, + logging_role=logging_role, + sftp_config=sftp_config, + tags=tags, + tags_all=tags_all, + url=url, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_role: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + as2_config: Optional[pulumi.Input['ConnectorAs2ConfigArgs']] = None, + connector_id: Optional[pulumi.Input[str]] = None, + logging_role: Optional[pulumi.Input[str]] = None, + sftp_config: Optional[pulumi.Input['ConnectorSftpConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_role is None and 'accessRole' in kwargs: + access_role = kwargs['accessRole'] + if as2_config is None and 'as2Config' in kwargs: + as2_config = kwargs['as2Config'] + if connector_id is None and 'connectorId' in kwargs: + connector_id = kwargs['connectorId'] + if logging_role is None and 'loggingRole' in kwargs: + logging_role = kwargs['loggingRole'] + if sftp_config is None and 'sftpConfig' in kwargs: + sftp_config = kwargs['sftpConfig'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if access_role is not None: - pulumi.set(__self__, "access_role", access_role) + _setter("access_role", access_role) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if as2_config is not None: - pulumi.set(__self__, "as2_config", as2_config) + _setter("as2_config", as2_config) if connector_id is not None: - pulumi.set(__self__, "connector_id", connector_id) + _setter("connector_id", connector_id) if logging_role is not None: - pulumi.set(__self__, "logging_role", logging_role) + _setter("logging_role", logging_role) if sftp_config is not None: - pulumi.set(__self__, "sftp_config", sftp_config) + _setter("sftp_config", sftp_config) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) @property @pulumi.getter(name="accessRole") @@ -400,6 +472,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectorArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -423,8 +499,10 @@ def _internal_init(__self__, if access_role is None and not opts.urn: raise TypeError("Missing required property 'access_role'") __props__.__dict__["access_role"] = access_role + as2_config = _utilities.configure(as2_config, ConnectorAs2ConfigArgs, True) __props__.__dict__["as2_config"] = as2_config __props__.__dict__["logging_role"] = logging_role + sftp_config = _utilities.configure(sftp_config, ConnectorSftpConfigArgs, True) __props__.__dict__["sftp_config"] = sftp_config __props__.__dict__["tags"] = tags if url is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/transfer/get_server.py b/sdk/python/pulumi_aws/transfer/get_server.py index 4dc4fe0372b..df3114cfb79 100644 --- a/sdk/python/pulumi_aws/transfer/get_server.py +++ b/sdk/python/pulumi_aws/transfer/get_server.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/transfer/outputs.py b/sdk/python/pulumi_aws/transfer/outputs.py index ce5e1e7775d..81807d5542b 100644 --- a/sdk/python/pulumi_aws/transfer/outputs.py +++ b/sdk/python/pulumi_aws/transfer/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -59,8 +59,25 @@ def __init__(__self__, *, :param str entry: Represents an entry and a target. :param str target: Represents the map target. """ - pulumi.set(__self__, "entry", entry) - pulumi.set(__self__, "target", target) + AccessHomeDirectoryMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + entry=entry, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entry: Optional[str] = None, + target: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry is None: + raise TypeError("Missing 'entry' argument") + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("entry", entry) + _setter("target", target) @property @pulumi.getter @@ -107,10 +124,31 @@ def __init__(__self__, *, :param int uid: The POSIX user ID used for all EFS operations by this user. :param Sequence[int] secondary_gids: The secondary POSIX group IDs used for all EFS operations by this user. """ - pulumi.set(__self__, "gid", gid) - pulumi.set(__self__, "uid", uid) + AccessPosixProfile._configure( + lambda key, value: pulumi.set(__self__, key, value), + gid=gid, + uid=uid, + secondary_gids=secondary_gids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gid: Optional[int] = None, + uid: Optional[int] = None, + secondary_gids: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gid is None: + raise TypeError("Missing 'gid' argument") + if uid is None: + raise TypeError("Missing 'uid' argument") + if secondary_gids is None and 'secondaryGids' in kwargs: + secondary_gids = kwargs['secondaryGids'] + + _setter("gid", gid) + _setter("uid", uid) if secondary_gids is not None: - pulumi.set(__self__, "secondary_gids", secondary_gids) + _setter("secondary_gids", secondary_gids) @property @pulumi.getter @@ -187,16 +225,67 @@ def __init__(__self__, *, :param str mdn_signing_algorithm: The signing algorithm for the Mdn response. The valid values are SHA256 | SHA384 | SHA512 | SHA1 | NONE | DEFAULT. :param str message_subject: Used as the subject HTTP header attribute in AS2 messages that are being sent with the connector. """ - pulumi.set(__self__, "compression", compression) - pulumi.set(__self__, "encryption_algorithm", encryption_algorithm) - pulumi.set(__self__, "local_profile_id", local_profile_id) - pulumi.set(__self__, "mdn_response", mdn_response) - pulumi.set(__self__, "partner_profile_id", partner_profile_id) - pulumi.set(__self__, "signing_algorithm", signing_algorithm) + ConnectorAs2Config._configure( + lambda key, value: pulumi.set(__self__, key, value), + compression=compression, + encryption_algorithm=encryption_algorithm, + local_profile_id=local_profile_id, + mdn_response=mdn_response, + partner_profile_id=partner_profile_id, + signing_algorithm=signing_algorithm, + mdn_signing_algorithm=mdn_signing_algorithm, + message_subject=message_subject, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compression: Optional[str] = None, + encryption_algorithm: Optional[str] = None, + local_profile_id: Optional[str] = None, + mdn_response: Optional[str] = None, + partner_profile_id: Optional[str] = None, + signing_algorithm: Optional[str] = None, + mdn_signing_algorithm: Optional[str] = None, + message_subject: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compression is None: + raise TypeError("Missing 'compression' argument") + if encryption_algorithm is None and 'encryptionAlgorithm' in kwargs: + encryption_algorithm = kwargs['encryptionAlgorithm'] + if encryption_algorithm is None: + raise TypeError("Missing 'encryption_algorithm' argument") + if local_profile_id is None and 'localProfileId' in kwargs: + local_profile_id = kwargs['localProfileId'] + if local_profile_id is None: + raise TypeError("Missing 'local_profile_id' argument") + if mdn_response is None and 'mdnResponse' in kwargs: + mdn_response = kwargs['mdnResponse'] + if mdn_response is None: + raise TypeError("Missing 'mdn_response' argument") + if partner_profile_id is None and 'partnerProfileId' in kwargs: + partner_profile_id = kwargs['partnerProfileId'] + if partner_profile_id is None: + raise TypeError("Missing 'partner_profile_id' argument") + if signing_algorithm is None and 'signingAlgorithm' in kwargs: + signing_algorithm = kwargs['signingAlgorithm'] + if signing_algorithm is None: + raise TypeError("Missing 'signing_algorithm' argument") + if mdn_signing_algorithm is None and 'mdnSigningAlgorithm' in kwargs: + mdn_signing_algorithm = kwargs['mdnSigningAlgorithm'] + if message_subject is None and 'messageSubject' in kwargs: + message_subject = kwargs['messageSubject'] + + _setter("compression", compression) + _setter("encryption_algorithm", encryption_algorithm) + _setter("local_profile_id", local_profile_id) + _setter("mdn_response", mdn_response) + _setter("partner_profile_id", partner_profile_id) + _setter("signing_algorithm", signing_algorithm) if mdn_signing_algorithm is not None: - pulumi.set(__self__, "mdn_signing_algorithm", mdn_signing_algorithm) + _setter("mdn_signing_algorithm", mdn_signing_algorithm) if message_subject is not None: - pulumi.set(__self__, "message_subject", message_subject) + _setter("message_subject", message_subject) @property @pulumi.getter @@ -291,10 +380,27 @@ def __init__(__self__, *, :param Sequence[str] trusted_host_keys: A list of public portion of the host key, or keys, that are used to authenticate the user to the external server to which you are connecting.(https://docs.aws.amazon.com/transfer/latest/userguide/API_SftpConnectorConfig.html) :param str user_secret_id: The identifier for the secret (in AWS Secrets Manager) that contains the SFTP user's private key, password, or both. The identifier can be either the Amazon Resource Name (ARN) or the name of the secret. """ + ConnectorSftpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + trusted_host_keys=trusted_host_keys, + user_secret_id=user_secret_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + trusted_host_keys: Optional[Sequence[str]] = None, + user_secret_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if trusted_host_keys is None and 'trustedHostKeys' in kwargs: + trusted_host_keys = kwargs['trustedHostKeys'] + if user_secret_id is None and 'userSecretId' in kwargs: + user_secret_id = kwargs['userSecretId'] + if trusted_host_keys is not None: - pulumi.set(__self__, "trusted_host_keys", trusted_host_keys) + _setter("trusted_host_keys", trusted_host_keys) if user_secret_id is not None: - pulumi.set(__self__, "user_secret_id", user_secret_id) + _setter("user_secret_id", user_secret_id) @property @pulumi.getter(name="trustedHostKeys") @@ -353,16 +459,45 @@ def __init__(__self__, *, :param str vpc_endpoint_id: The ID of the VPC endpoint. This property can only be used when `endpoint_type` is set to `VPC_ENDPOINT` :param str vpc_id: The VPC ID of the virtual private cloud in which the SFTP server's endpoint will be hosted. This property can only be used when `endpoint_type` is set to `VPC`. """ + ServerEndpointDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + address_allocation_ids=address_allocation_ids, + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_endpoint_id=vpc_endpoint_id, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + address_allocation_ids: Optional[Sequence[str]] = None, + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_endpoint_id: Optional[str] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if address_allocation_ids is None and 'addressAllocationIds' in kwargs: + address_allocation_ids = kwargs['addressAllocationIds'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if vpc_endpoint_id is None and 'vpcEndpointId' in kwargs: + vpc_endpoint_id = kwargs['vpcEndpointId'] + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if address_allocation_ids is not None: - pulumi.set(__self__, "address_allocation_ids", address_allocation_ids) + _setter("address_allocation_ids", address_allocation_ids) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if vpc_endpoint_id is not None: - pulumi.set(__self__, "vpc_endpoint_id", vpc_endpoint_id) + _setter("vpc_endpoint_id", vpc_endpoint_id) if vpc_id is not None: - pulumi.set(__self__, "vpc_id", vpc_id) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="addressAllocationIds") @@ -441,14 +576,39 @@ def __init__(__self__, *, :param str set_stat_option: Use to ignore the error that is generated when the client attempts to use `SETSTAT` on a file you are uploading to an S3 bucket. Valid values: `DEFAULT`, `ENABLE_NO_OP`. :param str tls_session_resumption_mode: A property used with Transfer Family servers that use the FTPS protocol. Provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. Valid values: `DISABLED`, `ENABLED`, `ENFORCED`. """ + ServerProtocolDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + as2_transports=as2_transports, + passive_ip=passive_ip, + set_stat_option=set_stat_option, + tls_session_resumption_mode=tls_session_resumption_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + as2_transports: Optional[Sequence[str]] = None, + passive_ip: Optional[str] = None, + set_stat_option: Optional[str] = None, + tls_session_resumption_mode: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if as2_transports is None and 'as2Transports' in kwargs: + as2_transports = kwargs['as2Transports'] + if passive_ip is None and 'passiveIp' in kwargs: + passive_ip = kwargs['passiveIp'] + if set_stat_option is None and 'setStatOption' in kwargs: + set_stat_option = kwargs['setStatOption'] + if tls_session_resumption_mode is None and 'tlsSessionResumptionMode' in kwargs: + tls_session_resumption_mode = kwargs['tlsSessionResumptionMode'] + if as2_transports is not None: - pulumi.set(__self__, "as2_transports", as2_transports) + _setter("as2_transports", as2_transports) if passive_ip is not None: - pulumi.set(__self__, "passive_ip", passive_ip) + _setter("passive_ip", passive_ip) if set_stat_option is not None: - pulumi.set(__self__, "set_stat_option", set_stat_option) + _setter("set_stat_option", set_stat_option) if tls_session_resumption_mode is not None: - pulumi.set(__self__, "tls_session_resumption_mode", tls_session_resumption_mode) + _setter("tls_session_resumption_mode", tls_session_resumption_mode) @property @pulumi.getter(name="as2Transports") @@ -511,10 +671,27 @@ def __init__(__self__, *, :param 'ServerWorkflowDetailsOnPartialUploadArgs' on_partial_upload: A trigger that starts a workflow if a file is only partially uploaded. See Workflow Detail below. :param 'ServerWorkflowDetailsOnUploadArgs' on_upload: A trigger that starts a workflow: the workflow begins to execute after a file is uploaded. See Workflow Detail below. """ + ServerWorkflowDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + on_partial_upload=on_partial_upload, + on_upload=on_upload, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + on_partial_upload: Optional['outputs.ServerWorkflowDetailsOnPartialUpload'] = None, + on_upload: Optional['outputs.ServerWorkflowDetailsOnUpload'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_partial_upload is None and 'onPartialUpload' in kwargs: + on_partial_upload = kwargs['onPartialUpload'] + if on_upload is None and 'onUpload' in kwargs: + on_upload = kwargs['onUpload'] + if on_partial_upload is not None: - pulumi.set(__self__, "on_partial_upload", on_partial_upload) + _setter("on_partial_upload", on_partial_upload) if on_upload is not None: - pulumi.set(__self__, "on_upload", on_upload) + _setter("on_upload", on_upload) @property @pulumi.getter(name="onPartialUpload") @@ -561,8 +738,29 @@ def __init__(__self__, *, :param str execution_role: Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources. :param str workflow_id: A unique identifier for the workflow. """ - pulumi.set(__self__, "execution_role", execution_role) - pulumi.set(__self__, "workflow_id", workflow_id) + ServerWorkflowDetailsOnPartialUpload._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + workflow_id=workflow_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[str] = None, + workflow_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if workflow_id is None and 'workflowId' in kwargs: + workflow_id = kwargs['workflowId'] + if workflow_id is None: + raise TypeError("Missing 'workflow_id' argument") + + _setter("execution_role", execution_role) + _setter("workflow_id", workflow_id) @property @pulumi.getter(name="executionRole") @@ -609,8 +807,29 @@ def __init__(__self__, *, :param str execution_role: Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources. :param str workflow_id: A unique identifier for the workflow. """ - pulumi.set(__self__, "execution_role", execution_role) - pulumi.set(__self__, "workflow_id", workflow_id) + ServerWorkflowDetailsOnUpload._configure( + lambda key, value: pulumi.set(__self__, key, value), + execution_role=execution_role, + workflow_id=workflow_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + execution_role: Optional[str] = None, + workflow_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if execution_role is None and 'executionRole' in kwargs: + execution_role = kwargs['executionRole'] + if execution_role is None: + raise TypeError("Missing 'execution_role' argument") + if workflow_id is None and 'workflowId' in kwargs: + workflow_id = kwargs['workflowId'] + if workflow_id is None: + raise TypeError("Missing 'workflow_id' argument") + + _setter("execution_role", execution_role) + _setter("workflow_id", workflow_id) @property @pulumi.getter(name="executionRole") @@ -644,8 +863,25 @@ def __init__(__self__, *, import pulumi ``` """ - pulumi.set(__self__, "entry", entry) - pulumi.set(__self__, "target", target) + UserHomeDirectoryMapping._configure( + lambda key, value: pulumi.set(__self__, key, value), + entry=entry, + target=target, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + entry: Optional[str] = None, + target: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if entry is None: + raise TypeError("Missing 'entry' argument") + if target is None: + raise TypeError("Missing 'target' argument") + + _setter("entry", entry) + _setter("target", target) @property @pulumi.getter @@ -698,10 +934,31 @@ def __init__(__self__, *, :param int uid: The POSIX user ID used for all EFS operations by this user. :param Sequence[int] secondary_gids: The secondary POSIX group IDs used for all EFS operations by this user. """ - pulumi.set(__self__, "gid", gid) - pulumi.set(__self__, "uid", uid) + UserPosixProfile._configure( + lambda key, value: pulumi.set(__self__, key, value), + gid=gid, + uid=uid, + secondary_gids=secondary_gids, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + gid: Optional[int] = None, + uid: Optional[int] = None, + secondary_gids: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if gid is None: + raise TypeError("Missing 'gid' argument") + if uid is None: + raise TypeError("Missing 'uid' argument") + if secondary_gids is None and 'secondaryGids' in kwargs: + secondary_gids = kwargs['secondaryGids'] + + _setter("gid", gid) + _setter("uid", uid) if secondary_gids is not None: - pulumi.set(__self__, "secondary_gids", secondary_gids) + _setter("secondary_gids", secondary_gids) @property @pulumi.getter @@ -763,30 +1020,63 @@ def __init__(__self__, *, delete_step_details: Optional['outputs.WorkflowOnExceptionStepDeleteStepDetails'] = None, tag_step_details: Optional['outputs.WorkflowOnExceptionStepTagStepDetails'] = None): """ - :param str type: One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + :param str type: The type of encryption used. Currently, this value must be `"PGP"`. :param 'WorkflowOnExceptionStepCopyStepDetailsArgs' copy_step_details: Details for a step that performs a file copy. See Copy Step Details below. :param 'WorkflowOnExceptionStepCustomStepDetailsArgs' custom_step_details: Details for a step that invokes a lambda function. :param 'WorkflowOnExceptionStepDecryptStepDetailsArgs' decrypt_step_details: Details for a step that decrypts the file. :param 'WorkflowOnExceptionStepDeleteStepDetailsArgs' delete_step_details: Details for a step that deletes the file. :param 'WorkflowOnExceptionStepTagStepDetailsArgs' tag_step_details: Details for a step that creates one or more tags. """ - pulumi.set(__self__, "type", type) + WorkflowOnExceptionStep._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + copy_step_details=copy_step_details, + custom_step_details=custom_step_details, + decrypt_step_details=decrypt_step_details, + delete_step_details=delete_step_details, + tag_step_details=tag_step_details, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + copy_step_details: Optional['outputs.WorkflowOnExceptionStepCopyStepDetails'] = None, + custom_step_details: Optional['outputs.WorkflowOnExceptionStepCustomStepDetails'] = None, + decrypt_step_details: Optional['outputs.WorkflowOnExceptionStepDecryptStepDetails'] = None, + delete_step_details: Optional['outputs.WorkflowOnExceptionStepDeleteStepDetails'] = None, + tag_step_details: Optional['outputs.WorkflowOnExceptionStepTagStepDetails'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if copy_step_details is None and 'copyStepDetails' in kwargs: + copy_step_details = kwargs['copyStepDetails'] + if custom_step_details is None and 'customStepDetails' in kwargs: + custom_step_details = kwargs['customStepDetails'] + if decrypt_step_details is None and 'decryptStepDetails' in kwargs: + decrypt_step_details = kwargs['decryptStepDetails'] + if delete_step_details is None and 'deleteStepDetails' in kwargs: + delete_step_details = kwargs['deleteStepDetails'] + if tag_step_details is None and 'tagStepDetails' in kwargs: + tag_step_details = kwargs['tagStepDetails'] + + _setter("type", type) if copy_step_details is not None: - pulumi.set(__self__, "copy_step_details", copy_step_details) + _setter("copy_step_details", copy_step_details) if custom_step_details is not None: - pulumi.set(__self__, "custom_step_details", custom_step_details) + _setter("custom_step_details", custom_step_details) if decrypt_step_details is not None: - pulumi.set(__self__, "decrypt_step_details", decrypt_step_details) + _setter("decrypt_step_details", decrypt_step_details) if delete_step_details is not None: - pulumi.set(__self__, "delete_step_details", delete_step_details) + _setter("delete_step_details", delete_step_details) if tag_step_details is not None: - pulumi.set(__self__, "tag_step_details", tag_step_details) + _setter("tag_step_details", tag_step_details) @property @pulumi.getter def type(self) -> str: """ - One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + The type of encryption used. Currently, this value must be `"PGP"`. """ return pulumi.get(self, "type") @@ -865,14 +1155,37 @@ def __init__(__self__, *, :param str overwrite_existing: A flag that indicates whether or not to overwrite an existing file of the same name. The default is `FALSE`. Valid values are `TRUE` and `FALSE`. :param str source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ + WorkflowOnExceptionStepCopyStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_file_location=destination_file_location, + name=name, + overwrite_existing=overwrite_existing, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_file_location: Optional['outputs.WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocation'] = None, + name: Optional[str] = None, + overwrite_existing: Optional[str] = None, + source_file_location: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_file_location is None and 'destinationFileLocation' in kwargs: + destination_file_location = kwargs['destinationFileLocation'] + if overwrite_existing is None and 'overwriteExisting' in kwargs: + overwrite_existing = kwargs['overwriteExisting'] + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if destination_file_location is not None: - pulumi.set(__self__, "destination_file_location", destination_file_location) + _setter("destination_file_location", destination_file_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite_existing is not None: - pulumi.set(__self__, "overwrite_existing", overwrite_existing) + _setter("overwrite_existing", overwrite_existing) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter(name="destinationFileLocation") @@ -935,10 +1248,27 @@ def __init__(__self__, *, :param 'WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationEfsFileLocationArgs' efs_file_location: Specifies the details for the EFS file being copied. :param 'WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs' s3_file_location: Specifies the details for the S3 file being copied. """ + WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + efs_file_location=efs_file_location, + s3_file_location=s3_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + efs_file_location: Optional['outputs.WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationEfsFileLocation'] = None, + s3_file_location: Optional['outputs.WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if efs_file_location is None and 'efsFileLocation' in kwargs: + efs_file_location = kwargs['efsFileLocation'] + if s3_file_location is None and 's3FileLocation' in kwargs: + s3_file_location = kwargs['s3FileLocation'] + if efs_file_location is not None: - pulumi.set(__self__, "efs_file_location", efs_file_location) + _setter("efs_file_location", efs_file_location) if s3_file_location is not None: - pulumi.set(__self__, "s3_file_location", s3_file_location) + _setter("s3_file_location", s3_file_location) @property @pulumi.getter(name="efsFileLocation") @@ -983,10 +1313,25 @@ def __init__(__self__, *, :param str file_system_id: The ID of the file system, assigned by Amazon EFS. :param str path: The pathname for the folder being used by a workflow. """ + WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationEfsFileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="fileSystemId") @@ -1012,12 +1357,25 @@ def __init__(__self__, *, key: Optional[str] = None): """ :param str bucket: Specifies the S3 bucket for the customer input file. - :param str key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + :param str key: The name assigned to the tag that you create. """ + WorkflowOnExceptionStepCopyStepDetailsDestinationFileLocationS3FileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1031,7 +1389,7 @@ def bucket(self) -> Optional[str]: @pulumi.getter def key(self) -> Optional[str]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -1068,14 +1426,35 @@ def __init__(__self__, *, :param str target: The ARN for the lambda function that is being called. :param int timeout_seconds: Timeout, in seconds, for the step. """ + WorkflowOnExceptionStepCustomStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + target=target, + timeout_seconds=timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + source_file_location: Optional[str] = None, + target: Optional[str] = None, + timeout_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if timeout_seconds is None and 'timeoutSeconds' in kwargs: + timeout_seconds = kwargs['timeoutSeconds'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if timeout_seconds is not None: - pulumi.set(__self__, "timeout_seconds", timeout_seconds) + _setter("timeout_seconds", timeout_seconds) @property @pulumi.getter @@ -1146,15 +1525,42 @@ def __init__(__self__, *, :param str overwrite_existing: A flag that indicates whether or not to overwrite an existing file of the same name. The default is `FALSE`. Valid values are `TRUE` and `FALSE`. :param str source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ - pulumi.set(__self__, "type", type) + WorkflowOnExceptionStepDecryptStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + destination_file_location=destination_file_location, + name=name, + overwrite_existing=overwrite_existing, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + destination_file_location: Optional['outputs.WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocation'] = None, + name: Optional[str] = None, + overwrite_existing: Optional[str] = None, + source_file_location: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if destination_file_location is None and 'destinationFileLocation' in kwargs: + destination_file_location = kwargs['destinationFileLocation'] + if overwrite_existing is None and 'overwriteExisting' in kwargs: + overwrite_existing = kwargs['overwriteExisting'] + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + + _setter("type", type) if destination_file_location is not None: - pulumi.set(__self__, "destination_file_location", destination_file_location) + _setter("destination_file_location", destination_file_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite_existing is not None: - pulumi.set(__self__, "overwrite_existing", overwrite_existing) + _setter("overwrite_existing", overwrite_existing) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter @@ -1225,10 +1631,27 @@ def __init__(__self__, *, :param 'WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationEfsFileLocationArgs' efs_file_location: Specifies the details for the EFS file being copied. :param 'WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs' s3_file_location: Specifies the details for the S3 file being copied. """ + WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + efs_file_location=efs_file_location, + s3_file_location=s3_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + efs_file_location: Optional['outputs.WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationEfsFileLocation'] = None, + s3_file_location: Optional['outputs.WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if efs_file_location is None and 'efsFileLocation' in kwargs: + efs_file_location = kwargs['efsFileLocation'] + if s3_file_location is None and 's3FileLocation' in kwargs: + s3_file_location = kwargs['s3FileLocation'] + if efs_file_location is not None: - pulumi.set(__self__, "efs_file_location", efs_file_location) + _setter("efs_file_location", efs_file_location) if s3_file_location is not None: - pulumi.set(__self__, "s3_file_location", s3_file_location) + _setter("s3_file_location", s3_file_location) @property @pulumi.getter(name="efsFileLocation") @@ -1273,10 +1696,25 @@ def __init__(__self__, *, :param str file_system_id: The ID of the file system, assigned by Amazon EFS. :param str path: The pathname for the folder being used by a workflow. """ + WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationEfsFileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="fileSystemId") @@ -1302,12 +1740,25 @@ def __init__(__self__, *, key: Optional[str] = None): """ :param str bucket: Specifies the S3 bucket for the customer input file. - :param str key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + :param str key: The name assigned to the tag that you create. """ + WorkflowOnExceptionStepDecryptStepDetailsDestinationFileLocationS3FileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1321,7 +1772,7 @@ def bucket(self) -> Optional[str]: @pulumi.getter def key(self) -> Optional[str]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -1352,10 +1803,25 @@ def __init__(__self__, *, :param str name: The name of the step, used as an identifier. :param str source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ + WorkflowOnExceptionStepDeleteStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + source_file_location: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter @@ -1402,12 +1868,29 @@ def __init__(__self__, *, :param str source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. :param Sequence['WorkflowOnExceptionStepTagStepDetailsTagArgs'] tags: Array that contains from 1 to 10 key/value pairs. See S3 Tags below. """ + WorkflowOnExceptionStepTagStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + source_file_location: Optional[str] = None, + tags: Optional[Sequence['outputs.WorkflowOnExceptionStepTagStepDetailsTag']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -1440,17 +1923,34 @@ def __init__(__self__, *, key: str, value: str): """ - :param str key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + :param str key: The name assigned to the tag that you create. :param str value: The value that corresponds to the key. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + WorkflowOnExceptionStepTagStepDetailsTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter def key(self) -> str: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -1498,30 +1998,63 @@ def __init__(__self__, *, delete_step_details: Optional['outputs.WorkflowStepDeleteStepDetails'] = None, tag_step_details: Optional['outputs.WorkflowStepTagStepDetails'] = None): """ - :param str type: One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + :param str type: The type of encryption used. Currently, this value must be `"PGP"`. :param 'WorkflowStepCopyStepDetailsArgs' copy_step_details: Details for a step that performs a file copy. See Copy Step Details below. :param 'WorkflowStepCustomStepDetailsArgs' custom_step_details: Details for a step that invokes a lambda function. :param 'WorkflowStepDecryptStepDetailsArgs' decrypt_step_details: Details for a step that decrypts the file. :param 'WorkflowStepDeleteStepDetailsArgs' delete_step_details: Details for a step that deletes the file. :param 'WorkflowStepTagStepDetailsArgs' tag_step_details: Details for a step that creates one or more tags. """ - pulumi.set(__self__, "type", type) + WorkflowStep._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + copy_step_details=copy_step_details, + custom_step_details=custom_step_details, + decrypt_step_details=decrypt_step_details, + delete_step_details=delete_step_details, + tag_step_details=tag_step_details, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + copy_step_details: Optional['outputs.WorkflowStepCopyStepDetails'] = None, + custom_step_details: Optional['outputs.WorkflowStepCustomStepDetails'] = None, + decrypt_step_details: Optional['outputs.WorkflowStepDecryptStepDetails'] = None, + delete_step_details: Optional['outputs.WorkflowStepDeleteStepDetails'] = None, + tag_step_details: Optional['outputs.WorkflowStepTagStepDetails'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if copy_step_details is None and 'copyStepDetails' in kwargs: + copy_step_details = kwargs['copyStepDetails'] + if custom_step_details is None and 'customStepDetails' in kwargs: + custom_step_details = kwargs['customStepDetails'] + if decrypt_step_details is None and 'decryptStepDetails' in kwargs: + decrypt_step_details = kwargs['decryptStepDetails'] + if delete_step_details is None and 'deleteStepDetails' in kwargs: + delete_step_details = kwargs['deleteStepDetails'] + if tag_step_details is None and 'tagStepDetails' in kwargs: + tag_step_details = kwargs['tagStepDetails'] + + _setter("type", type) if copy_step_details is not None: - pulumi.set(__self__, "copy_step_details", copy_step_details) + _setter("copy_step_details", copy_step_details) if custom_step_details is not None: - pulumi.set(__self__, "custom_step_details", custom_step_details) + _setter("custom_step_details", custom_step_details) if decrypt_step_details is not None: - pulumi.set(__self__, "decrypt_step_details", decrypt_step_details) + _setter("decrypt_step_details", decrypt_step_details) if delete_step_details is not None: - pulumi.set(__self__, "delete_step_details", delete_step_details) + _setter("delete_step_details", delete_step_details) if tag_step_details is not None: - pulumi.set(__self__, "tag_step_details", tag_step_details) + _setter("tag_step_details", tag_step_details) @property @pulumi.getter def type(self) -> str: """ - One of the following step types are supported. `COPY`, `CUSTOM`, `DECRYPT`, `DELETE`, and `TAG`. + The type of encryption used. Currently, this value must be `"PGP"`. """ return pulumi.get(self, "type") @@ -1600,14 +2133,37 @@ def __init__(__self__, *, :param str overwrite_existing: A flag that indicates whether or not to overwrite an existing file of the same name. The default is `FALSE`. Valid values are `TRUE` and `FALSE`. :param str source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ + WorkflowStepCopyStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_file_location=destination_file_location, + name=name, + overwrite_existing=overwrite_existing, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_file_location: Optional['outputs.WorkflowStepCopyStepDetailsDestinationFileLocation'] = None, + name: Optional[str] = None, + overwrite_existing: Optional[str] = None, + source_file_location: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_file_location is None and 'destinationFileLocation' in kwargs: + destination_file_location = kwargs['destinationFileLocation'] + if overwrite_existing is None and 'overwriteExisting' in kwargs: + overwrite_existing = kwargs['overwriteExisting'] + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if destination_file_location is not None: - pulumi.set(__self__, "destination_file_location", destination_file_location) + _setter("destination_file_location", destination_file_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite_existing is not None: - pulumi.set(__self__, "overwrite_existing", overwrite_existing) + _setter("overwrite_existing", overwrite_existing) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter(name="destinationFileLocation") @@ -1670,10 +2226,27 @@ def __init__(__self__, *, :param 'WorkflowStepCopyStepDetailsDestinationFileLocationEfsFileLocationArgs' efs_file_location: Specifies the details for the EFS file being copied. :param 'WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocationArgs' s3_file_location: Specifies the details for the S3 file being copied. """ + WorkflowStepCopyStepDetailsDestinationFileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + efs_file_location=efs_file_location, + s3_file_location=s3_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + efs_file_location: Optional['outputs.WorkflowStepCopyStepDetailsDestinationFileLocationEfsFileLocation'] = None, + s3_file_location: Optional['outputs.WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if efs_file_location is None and 'efsFileLocation' in kwargs: + efs_file_location = kwargs['efsFileLocation'] + if s3_file_location is None and 's3FileLocation' in kwargs: + s3_file_location = kwargs['s3FileLocation'] + if efs_file_location is not None: - pulumi.set(__self__, "efs_file_location", efs_file_location) + _setter("efs_file_location", efs_file_location) if s3_file_location is not None: - pulumi.set(__self__, "s3_file_location", s3_file_location) + _setter("s3_file_location", s3_file_location) @property @pulumi.getter(name="efsFileLocation") @@ -1718,10 +2291,25 @@ def __init__(__self__, *, :param str file_system_id: The ID of the file system, assigned by Amazon EFS. :param str path: The pathname for the folder being used by a workflow. """ + WorkflowStepCopyStepDetailsDestinationFileLocationEfsFileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="fileSystemId") @@ -1747,12 +2335,25 @@ def __init__(__self__, *, key: Optional[str] = None): """ :param str bucket: Specifies the S3 bucket for the customer input file. - :param str key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + :param str key: The name assigned to the tag that you create. """ + WorkflowStepCopyStepDetailsDestinationFileLocationS3FileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -1766,7 +2367,7 @@ def bucket(self) -> Optional[str]: @pulumi.getter def key(self) -> Optional[str]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -1803,14 +2404,35 @@ def __init__(__self__, *, :param str target: The ARN for the lambda function that is being called. :param int timeout_seconds: Timeout, in seconds, for the step. """ + WorkflowStepCustomStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + target=target, + timeout_seconds=timeout_seconds, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + source_file_location: Optional[str] = None, + target: Optional[str] = None, + timeout_seconds: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if timeout_seconds is None and 'timeoutSeconds' in kwargs: + timeout_seconds = kwargs['timeoutSeconds'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if timeout_seconds is not None: - pulumi.set(__self__, "timeout_seconds", timeout_seconds) + _setter("timeout_seconds", timeout_seconds) @property @pulumi.getter @@ -1881,15 +2503,42 @@ def __init__(__self__, *, :param str overwrite_existing: A flag that indicates whether or not to overwrite an existing file of the same name. The default is `FALSE`. Valid values are `TRUE` and `FALSE`. :param str source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ - pulumi.set(__self__, "type", type) + WorkflowStepDecryptStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + destination_file_location=destination_file_location, + name=name, + overwrite_existing=overwrite_existing, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + destination_file_location: Optional['outputs.WorkflowStepDecryptStepDetailsDestinationFileLocation'] = None, + name: Optional[str] = None, + overwrite_existing: Optional[str] = None, + source_file_location: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if destination_file_location is None and 'destinationFileLocation' in kwargs: + destination_file_location = kwargs['destinationFileLocation'] + if overwrite_existing is None and 'overwriteExisting' in kwargs: + overwrite_existing = kwargs['overwriteExisting'] + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + + _setter("type", type) if destination_file_location is not None: - pulumi.set(__self__, "destination_file_location", destination_file_location) + _setter("destination_file_location", destination_file_location) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if overwrite_existing is not None: - pulumi.set(__self__, "overwrite_existing", overwrite_existing) + _setter("overwrite_existing", overwrite_existing) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter @@ -1960,10 +2609,27 @@ def __init__(__self__, *, :param 'WorkflowStepDecryptStepDetailsDestinationFileLocationEfsFileLocationArgs' efs_file_location: Specifies the details for the EFS file being copied. :param 'WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocationArgs' s3_file_location: Specifies the details for the S3 file being copied. """ + WorkflowStepDecryptStepDetailsDestinationFileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + efs_file_location=efs_file_location, + s3_file_location=s3_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + efs_file_location: Optional['outputs.WorkflowStepDecryptStepDetailsDestinationFileLocationEfsFileLocation'] = None, + s3_file_location: Optional['outputs.WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if efs_file_location is None and 'efsFileLocation' in kwargs: + efs_file_location = kwargs['efsFileLocation'] + if s3_file_location is None and 's3FileLocation' in kwargs: + s3_file_location = kwargs['s3FileLocation'] + if efs_file_location is not None: - pulumi.set(__self__, "efs_file_location", efs_file_location) + _setter("efs_file_location", efs_file_location) if s3_file_location is not None: - pulumi.set(__self__, "s3_file_location", s3_file_location) + _setter("s3_file_location", s3_file_location) @property @pulumi.getter(name="efsFileLocation") @@ -2008,10 +2674,25 @@ def __init__(__self__, *, :param str file_system_id: The ID of the file system, assigned by Amazon EFS. :param str path: The pathname for the folder being used by a workflow. """ + WorkflowStepDecryptStepDetailsDestinationFileLocationEfsFileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + file_system_id=file_system_id, + path=path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + file_system_id: Optional[str] = None, + path: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if file_system_id is None and 'fileSystemId' in kwargs: + file_system_id = kwargs['fileSystemId'] + if file_system_id is not None: - pulumi.set(__self__, "file_system_id", file_system_id) + _setter("file_system_id", file_system_id) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) @property @pulumi.getter(name="fileSystemId") @@ -2037,12 +2718,25 @@ def __init__(__self__, *, key: Optional[str] = None): """ :param str bucket: Specifies the S3 bucket for the customer input file. - :param str key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + :param str key: The name assigned to the tag that you create. """ + WorkflowStepDecryptStepDetailsDestinationFileLocationS3FileLocation._configure( + lambda key, value: pulumi.set(__self__, key, value), + bucket=bucket, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bucket: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bucket is not None: - pulumi.set(__self__, "bucket", bucket) + _setter("bucket", bucket) if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) @property @pulumi.getter @@ -2056,7 +2750,7 @@ def bucket(self) -> Optional[str]: @pulumi.getter def key(self) -> Optional[str]: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") @@ -2087,10 +2781,25 @@ def __init__(__self__, *, :param str name: The name of the step, used as an identifier. :param str source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. """ + WorkflowStepDeleteStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + source_file_location: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) @property @pulumi.getter @@ -2137,12 +2846,29 @@ def __init__(__self__, *, :param str source_file_location: Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow. Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value. Enter ${original.file} to use the originally-uploaded file location as input for this step. :param Sequence['WorkflowStepTagStepDetailsTagArgs'] tags: Array that contains from 1 to 10 key/value pairs. See S3 Tags below. """ + WorkflowStepTagStepDetails._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + source_file_location=source_file_location, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + source_file_location: Optional[str] = None, + tags: Optional[Sequence['outputs.WorkflowStepTagStepDetailsTag']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source_file_location is None and 'sourceFileLocation' in kwargs: + source_file_location = kwargs['sourceFileLocation'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if source_file_location is not None: - pulumi.set(__self__, "source_file_location", source_file_location) + _setter("source_file_location", source_file_location) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -2175,17 +2901,34 @@ def __init__(__self__, *, key: str, value: str): """ - :param str key: The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + :param str key: The name assigned to the tag that you create. :param str value: The value that corresponds to the key. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "value", value) + WorkflowStepTagStepDetailsTag._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("value", value) @property @pulumi.getter def key(self) -> str: """ - The name assigned to the file when it was created in S3. You use the object key to retrieve the object. + The name assigned to the tag that you create. """ return pulumi.get(self, "key") diff --git a/sdk/python/pulumi_aws/transfer/profile.py b/sdk/python/pulumi_aws/transfer/profile.py index b480a18e8a3..1c7bcf6cf86 100644 --- a/sdk/python/pulumi_aws/transfer/profile.py +++ b/sdk/python/pulumi_aws/transfer/profile.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ProfileArgs', 'Profile'] @@ -25,12 +25,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_ids: The list of certificate Ids from the imported certificate operation. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "as2_id", as2_id) - pulumi.set(__self__, "profile_type", profile_type) + ProfileArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + as2_id=as2_id, + profile_type=profile_type, + certificate_ids=certificate_ids, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + as2_id: Optional[pulumi.Input[str]] = None, + profile_type: Optional[pulumi.Input[str]] = None, + certificate_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if as2_id is None and 'as2Id' in kwargs: + as2_id = kwargs['as2Id'] + if as2_id is None: + raise TypeError("Missing 'as2_id' argument") + if profile_type is None and 'profileType' in kwargs: + profile_type = kwargs['profileType'] + if profile_type is None: + raise TypeError("Missing 'profile_type' argument") + if certificate_ids is None and 'certificateIds' in kwargs: + certificate_ids = kwargs['certificateIds'] + + _setter("as2_id", as2_id) + _setter("profile_type", profile_type) if certificate_ids is not None: - pulumi.set(__self__, "certificate_ids", certificate_ids) + _setter("certificate_ids", certificate_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="as2Id") @@ -100,23 +127,56 @@ def __init__(__self__, *, :param pulumi.Input[str] profile_type: The profile type should be LOCAL or PARTNER. :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. """ + _ProfileState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + as2_id=as2_id, + certificate_ids=certificate_ids, + profile_id=profile_id, + profile_type=profile_type, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + as2_id: Optional[pulumi.Input[str]] = None, + certificate_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + profile_id: Optional[pulumi.Input[str]] = None, + profile_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if as2_id is None and 'as2Id' in kwargs: + as2_id = kwargs['as2Id'] + if certificate_ids is None and 'certificateIds' in kwargs: + certificate_ids = kwargs['certificateIds'] + if profile_id is None and 'profileId' in kwargs: + profile_id = kwargs['profileId'] + if profile_type is None and 'profileType' in kwargs: + profile_type = kwargs['profileType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if as2_id is not None: - pulumi.set(__self__, "as2_id", as2_id) + _setter("as2_id", as2_id) if certificate_ids is not None: - pulumi.set(__self__, "certificate_ids", certificate_ids) + _setter("certificate_ids", certificate_ids) if profile_id is not None: - pulumi.set(__self__, "profile_id", profile_id) + _setter("profile_id", profile_id) if profile_type is not None: - pulumi.set(__self__, "profile_type", profile_type) + _setter("profile_type", profile_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -262,6 +322,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ProfileArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/transfer/server.py b/sdk/python/pulumi_aws/transfer/server.py index 356b99520a3..4fc22a8bbfd 100644 --- a/sdk/python/pulumi_aws/transfer/server.py +++ b/sdk/python/pulumi_aws/transfer/server.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -59,46 +59,123 @@ def __init__(__self__, *, :param pulumi.Input[str] url: URL of the service endpoint used to authenticate users with an `identity_provider_type` of `API_GATEWAY`. :param pulumi.Input['ServerWorkflowDetailsArgs'] workflow_details: Specifies the workflow details. See Workflow Details below. """ + ServerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + directory_id=directory_id, + domain=domain, + endpoint_details=endpoint_details, + endpoint_type=endpoint_type, + force_destroy=force_destroy, + function=function, + host_key=host_key, + identity_provider_type=identity_provider_type, + invocation_role=invocation_role, + logging_role=logging_role, + post_authentication_login_banner=post_authentication_login_banner, + pre_authentication_login_banner=pre_authentication_login_banner, + protocol_details=protocol_details, + protocols=protocols, + security_policy_name=security_policy_name, + structured_log_destinations=structured_log_destinations, + tags=tags, + url=url, + workflow_details=workflow_details, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + endpoint_details: Optional[pulumi.Input['ServerEndpointDetailsArgs']] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + function: Optional[pulumi.Input[str]] = None, + host_key: Optional[pulumi.Input[str]] = None, + identity_provider_type: Optional[pulumi.Input[str]] = None, + invocation_role: Optional[pulumi.Input[str]] = None, + logging_role: Optional[pulumi.Input[str]] = None, + post_authentication_login_banner: Optional[pulumi.Input[str]] = None, + pre_authentication_login_banner: Optional[pulumi.Input[str]] = None, + protocol_details: Optional[pulumi.Input['ServerProtocolDetailsArgs']] = None, + protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_policy_name: Optional[pulumi.Input[str]] = None, + structured_log_destinations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + workflow_details: Optional[pulumi.Input['ServerWorkflowDetailsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if endpoint_details is None and 'endpointDetails' in kwargs: + endpoint_details = kwargs['endpointDetails'] + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if host_key is None and 'hostKey' in kwargs: + host_key = kwargs['hostKey'] + if identity_provider_type is None and 'identityProviderType' in kwargs: + identity_provider_type = kwargs['identityProviderType'] + if invocation_role is None and 'invocationRole' in kwargs: + invocation_role = kwargs['invocationRole'] + if logging_role is None and 'loggingRole' in kwargs: + logging_role = kwargs['loggingRole'] + if post_authentication_login_banner is None and 'postAuthenticationLoginBanner' in kwargs: + post_authentication_login_banner = kwargs['postAuthenticationLoginBanner'] + if pre_authentication_login_banner is None and 'preAuthenticationLoginBanner' in kwargs: + pre_authentication_login_banner = kwargs['preAuthenticationLoginBanner'] + if protocol_details is None and 'protocolDetails' in kwargs: + protocol_details = kwargs['protocolDetails'] + if security_policy_name is None and 'securityPolicyName' in kwargs: + security_policy_name = kwargs['securityPolicyName'] + if structured_log_destinations is None and 'structuredLogDestinations' in kwargs: + structured_log_destinations = kwargs['structuredLogDestinations'] + if workflow_details is None and 'workflowDetails' in kwargs: + workflow_details = kwargs['workflowDetails'] + if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if endpoint_details is not None: - pulumi.set(__self__, "endpoint_details", endpoint_details) + _setter("endpoint_details", endpoint_details) if endpoint_type is not None: - pulumi.set(__self__, "endpoint_type", endpoint_type) + _setter("endpoint_type", endpoint_type) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if function is not None: - pulumi.set(__self__, "function", function) + _setter("function", function) if host_key is not None: - pulumi.set(__self__, "host_key", host_key) + _setter("host_key", host_key) if identity_provider_type is not None: - pulumi.set(__self__, "identity_provider_type", identity_provider_type) + _setter("identity_provider_type", identity_provider_type) if invocation_role is not None: - pulumi.set(__self__, "invocation_role", invocation_role) + _setter("invocation_role", invocation_role) if logging_role is not None: - pulumi.set(__self__, "logging_role", logging_role) + _setter("logging_role", logging_role) if post_authentication_login_banner is not None: - pulumi.set(__self__, "post_authentication_login_banner", post_authentication_login_banner) + _setter("post_authentication_login_banner", post_authentication_login_banner) if pre_authentication_login_banner is not None: - pulumi.set(__self__, "pre_authentication_login_banner", pre_authentication_login_banner) + _setter("pre_authentication_login_banner", pre_authentication_login_banner) if protocol_details is not None: - pulumi.set(__self__, "protocol_details", protocol_details) + _setter("protocol_details", protocol_details) if protocols is not None: - pulumi.set(__self__, "protocols", protocols) + _setter("protocols", protocols) if security_policy_name is not None: - pulumi.set(__self__, "security_policy_name", security_policy_name) + _setter("security_policy_name", security_policy_name) if structured_log_destinations is not None: - pulumi.set(__self__, "structured_log_destinations", structured_log_destinations) + _setter("structured_log_destinations", structured_log_destinations) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if workflow_details is not None: - pulumi.set(__self__, "workflow_details", workflow_details) + _setter("workflow_details", workflow_details) @property @pulumi.getter @@ -395,57 +472,146 @@ def __init__(__self__, *, :param pulumi.Input[str] url: URL of the service endpoint used to authenticate users with an `identity_provider_type` of `API_GATEWAY`. :param pulumi.Input['ServerWorkflowDetailsArgs'] workflow_details: Specifies the workflow details. See Workflow Details below. """ + _ServerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + certificate=certificate, + directory_id=directory_id, + domain=domain, + endpoint=endpoint, + endpoint_details=endpoint_details, + endpoint_type=endpoint_type, + force_destroy=force_destroy, + function=function, + host_key=host_key, + host_key_fingerprint=host_key_fingerprint, + identity_provider_type=identity_provider_type, + invocation_role=invocation_role, + logging_role=logging_role, + post_authentication_login_banner=post_authentication_login_banner, + pre_authentication_login_banner=pre_authentication_login_banner, + protocol_details=protocol_details, + protocols=protocols, + security_policy_name=security_policy_name, + structured_log_destinations=structured_log_destinations, + tags=tags, + tags_all=tags_all, + url=url, + workflow_details=workflow_details, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + certificate: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + endpoint_details: Optional[pulumi.Input['ServerEndpointDetailsArgs']] = None, + endpoint_type: Optional[pulumi.Input[str]] = None, + force_destroy: Optional[pulumi.Input[bool]] = None, + function: Optional[pulumi.Input[str]] = None, + host_key: Optional[pulumi.Input[str]] = None, + host_key_fingerprint: Optional[pulumi.Input[str]] = None, + identity_provider_type: Optional[pulumi.Input[str]] = None, + invocation_role: Optional[pulumi.Input[str]] = None, + logging_role: Optional[pulumi.Input[str]] = None, + post_authentication_login_banner: Optional[pulumi.Input[str]] = None, + pre_authentication_login_banner: Optional[pulumi.Input[str]] = None, + protocol_details: Optional[pulumi.Input['ServerProtocolDetailsArgs']] = None, + protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_policy_name: Optional[pulumi.Input[str]] = None, + structured_log_destinations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + workflow_details: Optional[pulumi.Input['ServerWorkflowDetailsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if endpoint_details is None and 'endpointDetails' in kwargs: + endpoint_details = kwargs['endpointDetails'] + if endpoint_type is None and 'endpointType' in kwargs: + endpoint_type = kwargs['endpointType'] + if force_destroy is None and 'forceDestroy' in kwargs: + force_destroy = kwargs['forceDestroy'] + if host_key is None and 'hostKey' in kwargs: + host_key = kwargs['hostKey'] + if host_key_fingerprint is None and 'hostKeyFingerprint' in kwargs: + host_key_fingerprint = kwargs['hostKeyFingerprint'] + if identity_provider_type is None and 'identityProviderType' in kwargs: + identity_provider_type = kwargs['identityProviderType'] + if invocation_role is None and 'invocationRole' in kwargs: + invocation_role = kwargs['invocationRole'] + if logging_role is None and 'loggingRole' in kwargs: + logging_role = kwargs['loggingRole'] + if post_authentication_login_banner is None and 'postAuthenticationLoginBanner' in kwargs: + post_authentication_login_banner = kwargs['postAuthenticationLoginBanner'] + if pre_authentication_login_banner is None and 'preAuthenticationLoginBanner' in kwargs: + pre_authentication_login_banner = kwargs['preAuthenticationLoginBanner'] + if protocol_details is None and 'protocolDetails' in kwargs: + protocol_details = kwargs['protocolDetails'] + if security_policy_name is None and 'securityPolicyName' in kwargs: + security_policy_name = kwargs['securityPolicyName'] + if structured_log_destinations is None and 'structuredLogDestinations' in kwargs: + structured_log_destinations = kwargs['structuredLogDestinations'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if workflow_details is None and 'workflowDetails' in kwargs: + workflow_details = kwargs['workflowDetails'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if domain is not None: - pulumi.set(__self__, "domain", domain) + _setter("domain", domain) if endpoint is not None: - pulumi.set(__self__, "endpoint", endpoint) + _setter("endpoint", endpoint) if endpoint_details is not None: - pulumi.set(__self__, "endpoint_details", endpoint_details) + _setter("endpoint_details", endpoint_details) if endpoint_type is not None: - pulumi.set(__self__, "endpoint_type", endpoint_type) + _setter("endpoint_type", endpoint_type) if force_destroy is not None: - pulumi.set(__self__, "force_destroy", force_destroy) + _setter("force_destroy", force_destroy) if function is not None: - pulumi.set(__self__, "function", function) + _setter("function", function) if host_key is not None: - pulumi.set(__self__, "host_key", host_key) + _setter("host_key", host_key) if host_key_fingerprint is not None: - pulumi.set(__self__, "host_key_fingerprint", host_key_fingerprint) + _setter("host_key_fingerprint", host_key_fingerprint) if identity_provider_type is not None: - pulumi.set(__self__, "identity_provider_type", identity_provider_type) + _setter("identity_provider_type", identity_provider_type) if invocation_role is not None: - pulumi.set(__self__, "invocation_role", invocation_role) + _setter("invocation_role", invocation_role) if logging_role is not None: - pulumi.set(__self__, "logging_role", logging_role) + _setter("logging_role", logging_role) if post_authentication_login_banner is not None: - pulumi.set(__self__, "post_authentication_login_banner", post_authentication_login_banner) + _setter("post_authentication_login_banner", post_authentication_login_banner) if pre_authentication_login_banner is not None: - pulumi.set(__self__, "pre_authentication_login_banner", pre_authentication_login_banner) + _setter("pre_authentication_login_banner", pre_authentication_login_banner) if protocol_details is not None: - pulumi.set(__self__, "protocol_details", protocol_details) + _setter("protocol_details", protocol_details) if protocols is not None: - pulumi.set(__self__, "protocols", protocols) + _setter("protocols", protocols) if security_policy_name is not None: - pulumi.set(__self__, "security_policy_name", security_policy_name) + _setter("security_policy_name", security_policy_name) if structured_log_destinations is not None: - pulumi.set(__self__, "structured_log_destinations", structured_log_destinations) + _setter("structured_log_destinations", structured_log_destinations) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url is not None: - pulumi.set(__self__, "url", url) + _setter("url", url) if workflow_details is not None: - pulumi.set(__self__, "workflow_details", workflow_details) + _setter("workflow_details", workflow_details) @property @pulumi.getter @@ -1034,6 +1200,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -1071,6 +1241,7 @@ def _internal_init(__self__, __props__.__dict__["certificate"] = certificate __props__.__dict__["directory_id"] = directory_id __props__.__dict__["domain"] = domain + endpoint_details = _utilities.configure(endpoint_details, ServerEndpointDetailsArgs, True) __props__.__dict__["endpoint_details"] = endpoint_details __props__.__dict__["endpoint_type"] = endpoint_type __props__.__dict__["force_destroy"] = force_destroy @@ -1081,12 +1252,14 @@ def _internal_init(__self__, __props__.__dict__["logging_role"] = logging_role __props__.__dict__["post_authentication_login_banner"] = None if post_authentication_login_banner is None else pulumi.Output.secret(post_authentication_login_banner) __props__.__dict__["pre_authentication_login_banner"] = None if pre_authentication_login_banner is None else pulumi.Output.secret(pre_authentication_login_banner) + protocol_details = _utilities.configure(protocol_details, ServerProtocolDetailsArgs, True) __props__.__dict__["protocol_details"] = protocol_details __props__.__dict__["protocols"] = protocols __props__.__dict__["security_policy_name"] = security_policy_name __props__.__dict__["structured_log_destinations"] = structured_log_destinations __props__.__dict__["tags"] = tags __props__.__dict__["url"] = url + workflow_details = _utilities.configure(workflow_details, ServerWorkflowDetailsArgs, True) __props__.__dict__["workflow_details"] = workflow_details __props__.__dict__["arn"] = None __props__.__dict__["endpoint"] = None diff --git a/sdk/python/pulumi_aws/transfer/ssh_key.py b/sdk/python/pulumi_aws/transfer/ssh_key.py index 8ad4c368f7b..be3fb90cf2b 100644 --- a/sdk/python/pulumi_aws/transfer/ssh_key.py +++ b/sdk/python/pulumi_aws/transfer/ssh_key.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SshKeyArgs', 'SshKey'] @@ -23,9 +23,34 @@ def __init__(__self__, *, :param pulumi.Input[str] server_id: The Server ID of the Transfer Server (e.g., `s-12345678`) :param pulumi.Input[str] user_name: The name of the user account that is assigned to one or more servers. """ - pulumi.set(__self__, "body", body) - pulumi.set(__self__, "server_id", server_id) - pulumi.set(__self__, "user_name", user_name) + SshKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + body=body, + server_id=server_id, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + body: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if body is None: + raise TypeError("Missing 'body' argument") + if server_id is None and 'serverId' in kwargs: + server_id = kwargs['serverId'] + if server_id is None: + raise TypeError("Missing 'server_id' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + + _setter("body", body) + _setter("server_id", server_id) + _setter("user_name", user_name) @property @pulumi.getter @@ -76,12 +101,31 @@ def __init__(__self__, *, :param pulumi.Input[str] server_id: The Server ID of the Transfer Server (e.g., `s-12345678`) :param pulumi.Input[str] user_name: The name of the user account that is assigned to one or more servers. """ + _SshKeyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + body=body, + server_id=server_id, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + body: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if server_id is None and 'serverId' in kwargs: + server_id = kwargs['serverId'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if server_id is not None: - pulumi.set(__self__, "server_id", server_id) + _setter("server_id", server_id) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter @@ -257,6 +301,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SshKeyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/transfer/tag.py b/sdk/python/pulumi_aws/transfer/tag.py index db5faec5d11..a63a1f9588a 100644 --- a/sdk/python/pulumi_aws/transfer/tag.py +++ b/sdk/python/pulumi_aws/transfer/tag.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['TagArgs', 'Tag'] @@ -23,9 +23,32 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the Transfer Family resource to tag. :param pulumi.Input[str] value: Tag value. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "value", value) + TagArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + resource_arn=resource_arn, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("key", key) + _setter("resource_arn", resource_arn) + _setter("value", value) @property @pulumi.getter @@ -76,12 +99,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the Transfer Family resource to tag. :param pulumi.Input[str] value: Tag value. """ + _TagState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + resource_arn=resource_arn, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if key is not None: - pulumi.set(__self__, "key", key) + _setter("key", key) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -215,6 +255,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TagArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/transfer/user.py b/sdk/python/pulumi_aws/transfer/user.py index e716ef255ea..e76d74adef1 100644 --- a/sdk/python/pulumi_aws/transfer/user.py +++ b/sdk/python/pulumi_aws/transfer/user.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,21 +37,66 @@ def __init__(__self__, *, :param pulumi.Input['UserPosixProfileArgs'] posix_profile: Specifies the full POSIX identity, including user ID (Uid), group ID (Gid), and any secondary groups IDs (SecondaryGids), that controls your users' access to your Amazon EFS file systems. See Posix Profile 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, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "role", role) - pulumi.set(__self__, "server_id", server_id) - pulumi.set(__self__, "user_name", user_name) + UserArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + role=role, + server_id=server_id, + user_name=user_name, + home_directory=home_directory, + home_directory_mappings=home_directory_mappings, + home_directory_type=home_directory_type, + policy=policy, + posix_profile=posix_profile, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + role: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + home_directory: Optional[pulumi.Input[str]] = None, + home_directory_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['UserHomeDirectoryMappingArgs']]]] = None, + home_directory_type: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + posix_profile: Optional[pulumi.Input['UserPosixProfileArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if role is None: + raise TypeError("Missing 'role' argument") + if server_id is None and 'serverId' in kwargs: + server_id = kwargs['serverId'] + if server_id is None: + raise TypeError("Missing 'server_id' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + if home_directory is None and 'homeDirectory' in kwargs: + home_directory = kwargs['homeDirectory'] + if home_directory_mappings is None and 'homeDirectoryMappings' in kwargs: + home_directory_mappings = kwargs['homeDirectoryMappings'] + if home_directory_type is None and 'homeDirectoryType' in kwargs: + home_directory_type = kwargs['homeDirectoryType'] + if posix_profile is None and 'posixProfile' in kwargs: + posix_profile = kwargs['posixProfile'] + + _setter("role", role) + _setter("server_id", server_id) + _setter("user_name", user_name) if home_directory is not None: - pulumi.set(__self__, "home_directory", home_directory) + _setter("home_directory", home_directory) if home_directory_mappings is not None: - pulumi.set(__self__, "home_directory_mappings", home_directory_mappings) + _setter("home_directory_mappings", home_directory_mappings) if home_directory_type is not None: - pulumi.set(__self__, "home_directory_type", home_directory_type) + _setter("home_directory_type", home_directory_type) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if posix_profile is not None: - pulumi.set(__self__, "posix_profile", posix_profile) + _setter("posix_profile", posix_profile) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -190,31 +235,76 @@ def __init__(__self__, *, :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] user_name: The name used for log in to your SFTP server. """ + _UserState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + home_directory=home_directory, + home_directory_mappings=home_directory_mappings, + home_directory_type=home_directory_type, + policy=policy, + posix_profile=posix_profile, + role=role, + server_id=server_id, + tags=tags, + tags_all=tags_all, + user_name=user_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + home_directory: Optional[pulumi.Input[str]] = None, + home_directory_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['UserHomeDirectoryMappingArgs']]]] = None, + home_directory_type: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[str]] = None, + posix_profile: Optional[pulumi.Input['UserPosixProfileArgs']] = None, + role: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if home_directory is None and 'homeDirectory' in kwargs: + home_directory = kwargs['homeDirectory'] + if home_directory_mappings is None and 'homeDirectoryMappings' in kwargs: + home_directory_mappings = kwargs['homeDirectoryMappings'] + if home_directory_type is None and 'homeDirectoryType' in kwargs: + home_directory_type = kwargs['homeDirectoryType'] + if posix_profile is None and 'posixProfile' in kwargs: + posix_profile = kwargs['posixProfile'] + if server_id is None and 'serverId' in kwargs: + server_id = kwargs['serverId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if home_directory is not None: - pulumi.set(__self__, "home_directory", home_directory) + _setter("home_directory", home_directory) if home_directory_mappings is not None: - pulumi.set(__self__, "home_directory_mappings", home_directory_mappings) + _setter("home_directory_mappings", home_directory_mappings) if home_directory_type is not None: - pulumi.set(__self__, "home_directory_type", home_directory_type) + _setter("home_directory_type", home_directory_type) if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if posix_profile is not None: - pulumi.set(__self__, "posix_profile", posix_profile) + _setter("posix_profile", posix_profile) if role is not None: - pulumi.set(__self__, "role", role) + _setter("role", role) if server_id is not None: - pulumi.set(__self__, "server_id", server_id) + _setter("server_id", server_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) @property @pulumi.getter @@ -497,6 +587,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -524,6 +618,7 @@ def _internal_init(__self__, __props__.__dict__["home_directory_mappings"] = home_directory_mappings __props__.__dict__["home_directory_type"] = home_directory_type __props__.__dict__["policy"] = policy + posix_profile = _utilities.configure(posix_profile, UserPosixProfileArgs, True) __props__.__dict__["posix_profile"] = posix_profile if role is None and not opts.urn: raise TypeError("Missing required property 'role'") diff --git a/sdk/python/pulumi_aws/transfer/workflow.py b/sdk/python/pulumi_aws/transfer/workflow.py index 2ed62e98e9b..3172d095e72 100644 --- a/sdk/python/pulumi_aws/transfer/workflow.py +++ b/sdk/python/pulumi_aws/transfer/workflow.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WorkflowOnExceptionStepArgs']]] on_exception_steps: Specifies the steps (actions) to take if errors are encountered during execution of the workflow. See Workflow Steps below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "steps", steps) + WorkflowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + steps=steps, + description=description, + on_exception_steps=on_exception_steps, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + steps: Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowStepArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + on_exception_steps: Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowOnExceptionStepArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if steps is None: + raise TypeError("Missing 'steps' argument") + if on_exception_steps is None and 'onExceptionSteps' in kwargs: + on_exception_steps = kwargs['onExceptionSteps'] + + _setter("steps", steps) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if on_exception_steps is not None: - pulumi.set(__self__, "on_exception_steps", on_exception_steps) + _setter("on_exception_steps", on_exception_steps) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -102,21 +123,46 @@ def __init__(__self__, *, :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. """ + _WorkflowState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + on_exception_steps=on_exception_steps, + steps=steps, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + on_exception_steps: Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowOnExceptionStepArgs']]]] = None, + steps: Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowStepArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if on_exception_steps is None and 'onExceptionSteps' in kwargs: + on_exception_steps = kwargs['onExceptionSteps'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if on_exception_steps is not None: - pulumi.set(__self__, "on_exception_steps", on_exception_steps) + _setter("on_exception_steps", on_exception_steps) if steps is not None: - pulumi.set(__self__, "steps", steps) + _setter("steps", steps) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -339,6 +385,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkflowArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/verifiedaccess/_inputs.py b/sdk/python/pulumi_aws/verifiedaccess/_inputs.py index c652bd2eeb8..7bdedbd296d 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/_inputs.py +++ b/sdk/python/pulumi_aws/verifiedaccess/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -34,16 +34,43 @@ def __init__(__self__, *, :param pulumi.Input[str] log_version: The logging version to use. Refer to [VerifiedAccessLogOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_VerifiedAccessLogOptions.html) for the allowed values. :param pulumi.Input['InstanceLoggingConfigurationAccessLogsS3Args'] s3: A block that specifies configures sending Verified Access logs to S3. Detailed below. """ + InstanceLoggingConfigurationAccessLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + include_trust_context=include_trust_context, + kinesis_data_firehose=kinesis_data_firehose, + log_version=log_version, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional[pulumi.Input['InstanceLoggingConfigurationAccessLogsCloudwatchLogsArgs']] = None, + include_trust_context: Optional[pulumi.Input[bool]] = None, + kinesis_data_firehose: Optional[pulumi.Input['InstanceLoggingConfigurationAccessLogsKinesisDataFirehoseArgs']] = None, + log_version: Optional[pulumi.Input[str]] = None, + s3: Optional[pulumi.Input['InstanceLoggingConfigurationAccessLogsS3Args']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if include_trust_context is None and 'includeTrustContext' in kwargs: + include_trust_context = kwargs['includeTrustContext'] + if kinesis_data_firehose is None and 'kinesisDataFirehose' in kwargs: + kinesis_data_firehose = kwargs['kinesisDataFirehose'] + if log_version is None and 'logVersion' in kwargs: + log_version = kwargs['logVersion'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if include_trust_context is not None: - pulumi.set(__self__, "include_trust_context", include_trust_context) + _setter("include_trust_context", include_trust_context) if kinesis_data_firehose is not None: - pulumi.set(__self__, "kinesis_data_firehose", kinesis_data_firehose) + _setter("kinesis_data_firehose", kinesis_data_firehose) if log_version is not None: - pulumi.set(__self__, "log_version", log_version) + _setter("log_version", log_version) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -115,9 +142,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Indicates whether logging is enabled. :param pulumi.Input[str] log_group: The name of the CloudWatch Logs Log Group. """ - pulumi.set(__self__, "enabled", enabled) + InstanceLoggingConfigurationAccessLogsCloudwatchLogsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + log_group: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + + _setter("enabled", enabled) if log_group is not None: - pulumi.set(__self__, "log_group", log_group) + _setter("log_group", log_group) @property @pulumi.getter @@ -153,9 +197,26 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Indicates whether logging is enabled. :param pulumi.Input[str] delivery_stream: The name of the delivery stream. """ - pulumi.set(__self__, "enabled", enabled) + InstanceLoggingConfigurationAccessLogsKinesisDataFirehoseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + delivery_stream=delivery_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + delivery_stream: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if delivery_stream is None and 'deliveryStream' in kwargs: + delivery_stream = kwargs['deliveryStream'] + + _setter("enabled", enabled) if delivery_stream is not None: - pulumi.set(__self__, "delivery_stream", delivery_stream) + _setter("delivery_stream", delivery_stream) @property @pulumi.getter @@ -195,13 +256,36 @@ def __init__(__self__, *, :param pulumi.Input[str] bucket_owner: The ID of the AWS account that owns the Amazon S3 bucket. :param pulumi.Input[str] prefix: The bucket prefix. """ - pulumi.set(__self__, "enabled", enabled) + InstanceLoggingConfigurationAccessLogsS3Args._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + bucket_name=bucket_name, + bucket_owner=bucket_owner, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + bucket_name: Optional[pulumi.Input[str]] = None, + bucket_owner: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_owner is None and 'bucketOwner' in kwargs: + bucket_owner = kwargs['bucketOwner'] + + _setter("enabled", enabled) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_owner is not None: - pulumi.set(__self__, "bucket_owner", bucket_owner) + _setter("bucket_owner", bucket_owner) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -267,16 +351,43 @@ def __init__(__self__, *, :param pulumi.Input[str] user_trust_provider_type: The type of user-based trust provider. :param pulumi.Input[str] verified_access_trust_provider_id: The ID of the trust provider. """ + InstanceVerifiedAccessTrustProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + device_trust_provider_type=device_trust_provider_type, + trust_provider_type=trust_provider_type, + user_trust_provider_type=user_trust_provider_type, + verified_access_trust_provider_id=verified_access_trust_provider_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + device_trust_provider_type: Optional[pulumi.Input[str]] = None, + trust_provider_type: Optional[pulumi.Input[str]] = None, + user_trust_provider_type: Optional[pulumi.Input[str]] = None, + verified_access_trust_provider_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_trust_provider_type is None and 'deviceTrustProviderType' in kwargs: + device_trust_provider_type = kwargs['deviceTrustProviderType'] + if trust_provider_type is None and 'trustProviderType' in kwargs: + trust_provider_type = kwargs['trustProviderType'] + if user_trust_provider_type is None and 'userTrustProviderType' in kwargs: + user_trust_provider_type = kwargs['userTrustProviderType'] + if verified_access_trust_provider_id is None and 'verifiedAccessTrustProviderId' in kwargs: + verified_access_trust_provider_id = kwargs['verifiedAccessTrustProviderId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if device_trust_provider_type is not None: - pulumi.set(__self__, "device_trust_provider_type", device_trust_provider_type) + _setter("device_trust_provider_type", device_trust_provider_type) if trust_provider_type is not None: - pulumi.set(__self__, "trust_provider_type", trust_provider_type) + _setter("trust_provider_type", trust_provider_type) if user_trust_provider_type is not None: - pulumi.set(__self__, "user_trust_provider_type", user_trust_provider_type) + _setter("user_trust_provider_type", user_trust_provider_type) if verified_access_trust_provider_id is not None: - pulumi.set(__self__, "verified_access_trust_provider_id", verified_access_trust_provider_id) + _setter("verified_access_trust_provider_id", verified_access_trust_provider_id) @property @pulumi.getter @@ -343,8 +454,21 @@ def verified_access_trust_provider_id(self, value: Optional[pulumi.Input[str]]): class TrustProviderDeviceOptionsArgs: def __init__(__self__, *, tenant_id: Optional[pulumi.Input[str]] = None): + TrustProviderDeviceOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + tenant_id=tenant_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tenant_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tenant_id is None and 'tenantId' in kwargs: + tenant_id = kwargs['tenantId'] + if tenant_id is not None: - pulumi.set(__self__, "tenant_id", tenant_id) + _setter("tenant_id", tenant_id) @property @pulumi.getter(name="tenantId") @@ -366,19 +490,54 @@ def __init__(__self__, *, scope: Optional[pulumi.Input[str]] = None, token_endpoint: Optional[pulumi.Input[str]] = None, user_info_endpoint: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "client_secret", client_secret) + TrustProviderOidcOptionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_secret=client_secret, + authorization_endpoint=authorization_endpoint, + client_id=client_id, + issuer=issuer, + scope=scope, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_secret: Optional[pulumi.Input[str]] = None, + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + issuer: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_info_endpoint: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + + _setter("client_secret", client_secret) if authorization_endpoint is not None: - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) + _setter("authorization_endpoint", authorization_endpoint) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if token_endpoint is not None: - pulumi.set(__self__, "token_endpoint", token_endpoint) + _setter("token_endpoint", token_endpoint) if user_info_endpoint is not None: - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + _setter("user_info_endpoint", user_info_endpoint) @property @pulumi.getter(name="clientSecret") diff --git a/sdk/python/pulumi_aws/verifiedaccess/group.py b/sdk/python/pulumi_aws/verifiedaccess/group.py index 8b04ea28b49..dd82afc2099 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/group.py +++ b/sdk/python/pulumi_aws/verifiedaccess/group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['GroupArgs', 'Group'] @@ -26,13 +26,36 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Description of the verified access group. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "verifiedaccess_instance_id", verifiedaccess_instance_id) + GroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + verifiedaccess_instance_id=verifiedaccess_instance_id, + description=description, + policy_document=policy_document, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if verifiedaccess_instance_id is None and 'verifiedaccessInstanceId' in kwargs: + verifiedaccess_instance_id = kwargs['verifiedaccessInstanceId'] + if verifiedaccess_instance_id is None: + raise TypeError("Missing 'verifiedaccess_instance_id' argument") + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + + _setter("verifiedaccess_instance_id", verifiedaccess_instance_id) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if policy_document is not None: - pulumi.set(__self__, "policy_document", policy_document) + _setter("policy_document", policy_document) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="verifiedaccessInstanceId") @@ -110,31 +133,78 @@ def __init__(__self__, *, The following arguments are optional: """ + _GroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_time=creation_time, + deletion_time=deletion_time, + description=description, + last_updated_time=last_updated_time, + owner=owner, + policy_document=policy_document, + tags=tags, + tags_all=tags_all, + verifiedaccess_group_arn=verifiedaccess_group_arn, + verifiedaccess_group_id=verifiedaccess_group_id, + verifiedaccess_instance_id=verifiedaccess_instance_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_time: Optional[pulumi.Input[str]] = None, + deletion_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + owner: Optional[pulumi.Input[str]] = None, + policy_document: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + verifiedaccess_group_arn: Optional[pulumi.Input[str]] = None, + verifiedaccess_group_id: Optional[pulumi.Input[str]] = None, + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if deletion_time is None and 'deletionTime' in kwargs: + deletion_time = kwargs['deletionTime'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if policy_document is None and 'policyDocument' in kwargs: + policy_document = kwargs['policyDocument'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if verifiedaccess_group_arn is None and 'verifiedaccessGroupArn' in kwargs: + verifiedaccess_group_arn = kwargs['verifiedaccessGroupArn'] + if verifiedaccess_group_id is None and 'verifiedaccessGroupId' in kwargs: + verifiedaccess_group_id = kwargs['verifiedaccessGroupId'] + if verifiedaccess_instance_id is None and 'verifiedaccessInstanceId' in kwargs: + verifiedaccess_instance_id = kwargs['verifiedaccessInstanceId'] + if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if deletion_time is not None: - pulumi.set(__self__, "deletion_time", deletion_time) + _setter("deletion_time", deletion_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if owner is not None: - pulumi.set(__self__, "owner", owner) + _setter("owner", owner) if policy_document is not None: - pulumi.set(__self__, "policy_document", policy_document) + _setter("policy_document", policy_document) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if verifiedaccess_group_arn is not None: - pulumi.set(__self__, "verifiedaccess_group_arn", verifiedaccess_group_arn) + _setter("verifiedaccess_group_arn", verifiedaccess_group_arn) if verifiedaccess_group_id is not None: - pulumi.set(__self__, "verifiedaccess_group_id", verifiedaccess_group_id) + _setter("verifiedaccess_group_id", verifiedaccess_group_id) if verifiedaccess_instance_id is not None: - pulumi.set(__self__, "verifiedaccess_instance_id", verifiedaccess_instance_id) + _setter("verifiedaccess_instance_id", verifiedaccess_instance_id) @property @pulumi.getter(name="creationTime") @@ -328,6 +398,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/verifiedaccess/instance.py b/sdk/python/pulumi_aws/verifiedaccess/instance.py index 838afc9c532..41fe16fc1df 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/instance.py +++ b/sdk/python/pulumi_aws/verifiedaccess/instance.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,12 +25,29 @@ def __init__(__self__, *, :param pulumi.Input[bool] fips_enabled: Enable or disable support for Federal Information Processing Standards (FIPS) on the AWS Verified Access Instance. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ + InstanceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + fips_enabled=fips_enabled, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + fips_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fips_enabled is None and 'fipsEnabled' in kwargs: + fips_enabled = kwargs['fipsEnabled'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if fips_enabled is not None: - pulumi.set(__self__, "fips_enabled", fips_enabled) + _setter("fips_enabled", fips_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -88,23 +105,56 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['InstanceVerifiedAccessTrustProviderArgs']]] verified_access_trust_providers: One or more blocks of providing information about the AWS Verified Access Trust Providers. See verified_access_trust_providers below for details.One or more blocks """ + _InstanceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_time=creation_time, + description=description, + fips_enabled=fips_enabled, + last_updated_time=last_updated_time, + tags=tags, + tags_all=tags_all, + verified_access_trust_providers=verified_access_trust_providers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + fips_enabled: Optional[pulumi.Input[bool]] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + verified_access_trust_providers: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceVerifiedAccessTrustProviderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_time is None and 'creationTime' in kwargs: + creation_time = kwargs['creationTime'] + if fips_enabled is None and 'fipsEnabled' in kwargs: + fips_enabled = kwargs['fipsEnabled'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if verified_access_trust_providers is None and 'verifiedAccessTrustProviders' in kwargs: + verified_access_trust_providers = kwargs['verifiedAccessTrustProviders'] + if creation_time is not None: - pulumi.set(__self__, "creation_time", creation_time) + _setter("creation_time", creation_time) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if fips_enabled is not None: - pulumi.set(__self__, "fips_enabled", fips_enabled) + _setter("fips_enabled", fips_enabled) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if verified_access_trust_providers is not None: - pulumi.set(__self__, "verified_access_trust_providers", verified_access_trust_providers) + _setter("verified_access_trust_providers", verified_access_trust_providers) @property @pulumi.getter(name="creationTime") @@ -292,6 +342,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/verifiedaccess/instance_logging_configuration.py b/sdk/python/pulumi_aws/verifiedaccess/instance_logging_configuration.py index 83534e718e4..0af1c2b6b14 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/instance_logging_configuration.py +++ b/sdk/python/pulumi_aws/verifiedaccess/instance_logging_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,29 @@ def __init__(__self__, *, :param pulumi.Input['InstanceLoggingConfigurationAccessLogsArgs'] access_logs: A block that specifies the configuration options for Verified Access instances. Detailed below. :param pulumi.Input[str] verifiedaccess_instance_id: The ID of the Verified Access instance. """ - pulumi.set(__self__, "access_logs", access_logs) - pulumi.set(__self__, "verifiedaccess_instance_id", verifiedaccess_instance_id) + InstanceLoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_logs=access_logs, + verifiedaccess_instance_id=verifiedaccess_instance_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_logs: Optional[pulumi.Input['InstanceLoggingConfigurationAccessLogsArgs']] = None, + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if access_logs is None: + raise TypeError("Missing 'access_logs' argument") + if verifiedaccess_instance_id is None and 'verifiedaccessInstanceId' in kwargs: + verifiedaccess_instance_id = kwargs['verifiedaccessInstanceId'] + if verifiedaccess_instance_id is None: + raise TypeError("Missing 'verifiedaccess_instance_id' argument") + + _setter("access_logs", access_logs) + _setter("verifiedaccess_instance_id", verifiedaccess_instance_id) @property @pulumi.getter(name="accessLogs") @@ -61,10 +82,27 @@ def __init__(__self__, *, :param pulumi.Input['InstanceLoggingConfigurationAccessLogsArgs'] access_logs: A block that specifies the configuration options for Verified Access instances. Detailed below. :param pulumi.Input[str] verifiedaccess_instance_id: The ID of the Verified Access instance. """ + _InstanceLoggingConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + access_logs=access_logs, + verifiedaccess_instance_id=verifiedaccess_instance_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + access_logs: Optional[pulumi.Input['InstanceLoggingConfigurationAccessLogsArgs']] = None, + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if access_logs is None and 'accessLogs' in kwargs: + access_logs = kwargs['accessLogs'] + if verifiedaccess_instance_id is None and 'verifiedaccessInstanceId' in kwargs: + verifiedaccess_instance_id = kwargs['verifiedaccessInstanceId'] + if access_logs is not None: - pulumi.set(__self__, "access_logs", access_logs) + _setter("access_logs", access_logs) if verifiedaccess_instance_id is not None: - pulumi.set(__self__, "verifiedaccess_instance_id", verifiedaccess_instance_id) + _setter("verifiedaccess_instance_id", verifiedaccess_instance_id) @property @pulumi.getter(name="accessLogs") @@ -332,6 +370,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceLoggingConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -348,6 +390,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = InstanceLoggingConfigurationArgs.__new__(InstanceLoggingConfigurationArgs) + access_logs = _utilities.configure(access_logs, InstanceLoggingConfigurationAccessLogsArgs, True) if access_logs is None and not opts.urn: raise TypeError("Missing required property 'access_logs'") __props__.__dict__["access_logs"] = access_logs diff --git a/sdk/python/pulumi_aws/verifiedaccess/instance_trust_provider_attachment.py b/sdk/python/pulumi_aws/verifiedaccess/instance_trust_provider_attachment.py index bd8f86a6e1d..bf9e1f6bf8b 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/instance_trust_provider_attachment.py +++ b/sdk/python/pulumi_aws/verifiedaccess/instance_trust_provider_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['InstanceTrustProviderAttachmentArgs', 'InstanceTrustProviderAttachment'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :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) + InstanceTrustProviderAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + verifiedaccess_instance_id=verifiedaccess_instance_id, + verifiedaccess_trust_provider_id=verifiedaccess_trust_provider_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + verifiedaccess_trust_provider_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if verifiedaccess_instance_id is None and 'verifiedaccessInstanceId' in kwargs: + verifiedaccess_instance_id = kwargs['verifiedaccessInstanceId'] + if verifiedaccess_instance_id is None: + raise TypeError("Missing 'verifiedaccess_instance_id' argument") + if verifiedaccess_trust_provider_id is None and 'verifiedaccessTrustProviderId' in kwargs: + verifiedaccess_trust_provider_id = kwargs['verifiedaccessTrustProviderId'] + if verifiedaccess_trust_provider_id is None: + raise TypeError("Missing 'verifiedaccess_trust_provider_id' argument") + + _setter("verifiedaccess_instance_id", verifiedaccess_instance_id) + _setter("verifiedaccess_trust_provider_id", verifiedaccess_trust_provider_id) @property @pulumi.getter(name="verifiedaccessInstanceId") @@ -59,10 +80,27 @@ def __init__(__self__, *, :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. """ + _InstanceTrustProviderAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + verifiedaccess_instance_id=verifiedaccess_instance_id, + verifiedaccess_trust_provider_id=verifiedaccess_trust_provider_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + verifiedaccess_instance_id: Optional[pulumi.Input[str]] = None, + verifiedaccess_trust_provider_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if verifiedaccess_instance_id is None and 'verifiedaccessInstanceId' in kwargs: + verifiedaccess_instance_id = kwargs['verifiedaccessInstanceId'] + if verifiedaccess_trust_provider_id is None and 'verifiedaccessTrustProviderId' in kwargs: + verifiedaccess_trust_provider_id = kwargs['verifiedaccessTrustProviderId'] + if verifiedaccess_instance_id is not None: - pulumi.set(__self__, "verifiedaccess_instance_id", verifiedaccess_instance_id) + _setter("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) + _setter("verifiedaccess_trust_provider_id", verifiedaccess_trust_provider_id) @property @pulumi.getter(name="verifiedaccessInstanceId") @@ -178,6 +216,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + InstanceTrustProviderAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/verifiedaccess/outputs.py b/sdk/python/pulumi_aws/verifiedaccess/outputs.py index 7b5fa8beb7f..8e73bd1407a 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/outputs.py +++ b/sdk/python/pulumi_aws/verifiedaccess/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -58,16 +58,43 @@ def __init__(__self__, *, :param str log_version: The logging version to use. Refer to [VerifiedAccessLogOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_VerifiedAccessLogOptions.html) for the allowed values. :param 'InstanceLoggingConfigurationAccessLogsS3Args' s3: A block that specifies configures sending Verified Access logs to S3. Detailed below. """ + InstanceLoggingConfigurationAccessLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_logs=cloudwatch_logs, + include_trust_context=include_trust_context, + kinesis_data_firehose=kinesis_data_firehose, + log_version=log_version, + s3=s3, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_logs: Optional['outputs.InstanceLoggingConfigurationAccessLogsCloudwatchLogs'] = None, + include_trust_context: Optional[bool] = None, + kinesis_data_firehose: Optional['outputs.InstanceLoggingConfigurationAccessLogsKinesisDataFirehose'] = None, + log_version: Optional[str] = None, + s3: Optional['outputs.InstanceLoggingConfigurationAccessLogsS3'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_logs is None and 'cloudwatchLogs' in kwargs: + cloudwatch_logs = kwargs['cloudwatchLogs'] + if include_trust_context is None and 'includeTrustContext' in kwargs: + include_trust_context = kwargs['includeTrustContext'] + if kinesis_data_firehose is None and 'kinesisDataFirehose' in kwargs: + kinesis_data_firehose = kwargs['kinesisDataFirehose'] + if log_version is None and 'logVersion' in kwargs: + log_version = kwargs['logVersion'] + if cloudwatch_logs is not None: - pulumi.set(__self__, "cloudwatch_logs", cloudwatch_logs) + _setter("cloudwatch_logs", cloudwatch_logs) if include_trust_context is not None: - pulumi.set(__self__, "include_trust_context", include_trust_context) + _setter("include_trust_context", include_trust_context) if kinesis_data_firehose is not None: - pulumi.set(__self__, "kinesis_data_firehose", kinesis_data_firehose) + _setter("kinesis_data_firehose", kinesis_data_firehose) if log_version is not None: - pulumi.set(__self__, "log_version", log_version) + _setter("log_version", log_version) if s3 is not None: - pulumi.set(__self__, "s3", s3) + _setter("s3", s3) @property @pulumi.getter(name="cloudwatchLogs") @@ -136,9 +163,26 @@ def __init__(__self__, *, :param bool enabled: Indicates whether logging is enabled. :param str log_group: The name of the CloudWatch Logs Log Group. """ - pulumi.set(__self__, "enabled", enabled) + InstanceLoggingConfigurationAccessLogsCloudwatchLogs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + log_group=log_group, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + log_group: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if log_group is None and 'logGroup' in kwargs: + log_group = kwargs['logGroup'] + + _setter("enabled", enabled) if log_group is not None: - pulumi.set(__self__, "log_group", log_group) + _setter("log_group", log_group) @property @pulumi.getter @@ -183,9 +227,26 @@ def __init__(__self__, *, :param bool enabled: Indicates whether logging is enabled. :param str delivery_stream: The name of the delivery stream. """ - pulumi.set(__self__, "enabled", enabled) + InstanceLoggingConfigurationAccessLogsKinesisDataFirehose._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + delivery_stream=delivery_stream, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + delivery_stream: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if delivery_stream is None and 'deliveryStream' in kwargs: + delivery_stream = kwargs['deliveryStream'] + + _setter("enabled", enabled) if delivery_stream is not None: - pulumi.set(__self__, "delivery_stream", delivery_stream) + _setter("delivery_stream", delivery_stream) @property @pulumi.getter @@ -236,13 +297,36 @@ def __init__(__self__, *, :param str bucket_owner: The ID of the AWS account that owns the Amazon S3 bucket. :param str prefix: The bucket prefix. """ - pulumi.set(__self__, "enabled", enabled) + InstanceLoggingConfigurationAccessLogsS3._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + bucket_name=bucket_name, + bucket_owner=bucket_owner, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + bucket_name: Optional[str] = None, + bucket_owner: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if enabled is None: + raise TypeError("Missing 'enabled' argument") + if bucket_name is None and 'bucketName' in kwargs: + bucket_name = kwargs['bucketName'] + if bucket_owner is None and 'bucketOwner' in kwargs: + bucket_owner = kwargs['bucketOwner'] + + _setter("enabled", enabled) if bucket_name is not None: - pulumi.set(__self__, "bucket_name", bucket_name) + _setter("bucket_name", bucket_name) if bucket_owner is not None: - pulumi.set(__self__, "bucket_owner", bucket_owner) + _setter("bucket_owner", bucket_owner) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -315,16 +399,43 @@ def __init__(__self__, *, :param str user_trust_provider_type: The type of user-based trust provider. :param str verified_access_trust_provider_id: The ID of the trust provider. """ + InstanceVerifiedAccessTrustProvider._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + device_trust_provider_type=device_trust_provider_type, + trust_provider_type=trust_provider_type, + user_trust_provider_type=user_trust_provider_type, + verified_access_trust_provider_id=verified_access_trust_provider_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[str] = None, + device_trust_provider_type: Optional[str] = None, + trust_provider_type: Optional[str] = None, + user_trust_provider_type: Optional[str] = None, + verified_access_trust_provider_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_trust_provider_type is None and 'deviceTrustProviderType' in kwargs: + device_trust_provider_type = kwargs['deviceTrustProviderType'] + if trust_provider_type is None and 'trustProviderType' in kwargs: + trust_provider_type = kwargs['trustProviderType'] + if user_trust_provider_type is None and 'userTrustProviderType' in kwargs: + user_trust_provider_type = kwargs['userTrustProviderType'] + if verified_access_trust_provider_id is None and 'verifiedAccessTrustProviderId' in kwargs: + verified_access_trust_provider_id = kwargs['verifiedAccessTrustProviderId'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if device_trust_provider_type is not None: - pulumi.set(__self__, "device_trust_provider_type", device_trust_provider_type) + _setter("device_trust_provider_type", device_trust_provider_type) if trust_provider_type is not None: - pulumi.set(__self__, "trust_provider_type", trust_provider_type) + _setter("trust_provider_type", trust_provider_type) if user_trust_provider_type is not None: - pulumi.set(__self__, "user_trust_provider_type", user_trust_provider_type) + _setter("user_trust_provider_type", user_trust_provider_type) if verified_access_trust_provider_id is not None: - pulumi.set(__self__, "verified_access_trust_provider_id", verified_access_trust_provider_id) + _setter("verified_access_trust_provider_id", verified_access_trust_provider_id) @property @pulumi.getter @@ -388,8 +499,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, tenant_id: Optional[str] = None): + TrustProviderDeviceOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + tenant_id=tenant_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + tenant_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tenant_id is None and 'tenantId' in kwargs: + tenant_id = kwargs['tenantId'] + if tenant_id is not None: - pulumi.set(__self__, "tenant_id", tenant_id) + _setter("tenant_id", tenant_id) @property @pulumi.getter(name="tenantId") @@ -432,19 +556,54 @@ def __init__(__self__, *, scope: Optional[str] = None, token_endpoint: Optional[str] = None, user_info_endpoint: Optional[str] = None): - pulumi.set(__self__, "client_secret", client_secret) + TrustProviderOidcOptions._configure( + lambda key, value: pulumi.set(__self__, key, value), + client_secret=client_secret, + authorization_endpoint=authorization_endpoint, + client_id=client_id, + issuer=issuer, + scope=scope, + token_endpoint=token_endpoint, + user_info_endpoint=user_info_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + client_secret: Optional[str] = None, + authorization_endpoint: Optional[str] = None, + client_id: Optional[str] = None, + issuer: Optional[str] = None, + scope: Optional[str] = None, + token_endpoint: Optional[str] = None, + user_info_endpoint: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if client_secret is None and 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if client_secret is None: + raise TypeError("Missing 'client_secret' argument") + if authorization_endpoint is None and 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if client_id is None and 'clientId' in kwargs: + client_id = kwargs['clientId'] + if token_endpoint is None and 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if user_info_endpoint is None and 'userInfoEndpoint' in kwargs: + user_info_endpoint = kwargs['userInfoEndpoint'] + + _setter("client_secret", client_secret) if authorization_endpoint is not None: - pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) + _setter("authorization_endpoint", authorization_endpoint) if client_id is not None: - pulumi.set(__self__, "client_id", client_id) + _setter("client_id", client_id) if issuer is not None: - pulumi.set(__self__, "issuer", issuer) + _setter("issuer", issuer) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if token_endpoint is not None: - pulumi.set(__self__, "token_endpoint", token_endpoint) + _setter("token_endpoint", token_endpoint) if user_info_endpoint is not None: - pulumi.set(__self__, "user_info_endpoint", user_info_endpoint) + _setter("user_info_endpoint", user_info_endpoint) @property @pulumi.getter(name="clientSecret") diff --git a/sdk/python/pulumi_aws/verifiedaccess/trust_provider.py b/sdk/python/pulumi_aws/verifiedaccess/trust_provider.py index 35b8ba46633..f37420b5345 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/trust_provider.py +++ b/sdk/python/pulumi_aws/verifiedaccess/trust_provider.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,20 +37,61 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] user_trust_provider_type: The type of user-based trust provider. """ - pulumi.set(__self__, "policy_reference_name", policy_reference_name) - pulumi.set(__self__, "trust_provider_type", trust_provider_type) + TrustProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy_reference_name=policy_reference_name, + trust_provider_type=trust_provider_type, + description=description, + device_options=device_options, + device_trust_provider_type=device_trust_provider_type, + oidc_options=oidc_options, + tags=tags, + user_trust_provider_type=user_trust_provider_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy_reference_name: Optional[pulumi.Input[str]] = None, + trust_provider_type: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + device_options: Optional[pulumi.Input['TrustProviderDeviceOptionsArgs']] = None, + device_trust_provider_type: Optional[pulumi.Input[str]] = None, + oidc_options: Optional[pulumi.Input['TrustProviderOidcOptionsArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_trust_provider_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy_reference_name is None and 'policyReferenceName' in kwargs: + policy_reference_name = kwargs['policyReferenceName'] + if policy_reference_name is None: + raise TypeError("Missing 'policy_reference_name' argument") + if trust_provider_type is None and 'trustProviderType' in kwargs: + trust_provider_type = kwargs['trustProviderType'] + if trust_provider_type is None: + raise TypeError("Missing 'trust_provider_type' argument") + if device_options is None and 'deviceOptions' in kwargs: + device_options = kwargs['deviceOptions'] + if device_trust_provider_type is None and 'deviceTrustProviderType' in kwargs: + device_trust_provider_type = kwargs['deviceTrustProviderType'] + if oidc_options is None and 'oidcOptions' in kwargs: + oidc_options = kwargs['oidcOptions'] + if user_trust_provider_type is None and 'userTrustProviderType' in kwargs: + user_trust_provider_type = kwargs['userTrustProviderType'] + + _setter("policy_reference_name", policy_reference_name) + _setter("trust_provider_type", trust_provider_type) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if device_options is not None: - pulumi.set(__self__, "device_options", device_options) + _setter("device_options", device_options) if device_trust_provider_type is not None: - pulumi.set(__self__, "device_trust_provider_type", device_trust_provider_type) + _setter("device_trust_provider_type", device_trust_provider_type) if oidc_options is not None: - pulumi.set(__self__, "oidc_options", oidc_options) + _setter("oidc_options", oidc_options) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_trust_provider_type is not None: - pulumi.set(__self__, "user_trust_provider_type", user_trust_provider_type) + _setter("user_trust_provider_type", user_trust_provider_type) @property @pulumi.getter(name="policyReferenceName") @@ -176,27 +217,68 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] user_trust_provider_type: The type of user-based trust provider. """ + _TrustProviderState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + device_options=device_options, + device_trust_provider_type=device_trust_provider_type, + oidc_options=oidc_options, + policy_reference_name=policy_reference_name, + tags=tags, + tags_all=tags_all, + trust_provider_type=trust_provider_type, + user_trust_provider_type=user_trust_provider_type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + device_options: Optional[pulumi.Input['TrustProviderDeviceOptionsArgs']] = None, + device_trust_provider_type: Optional[pulumi.Input[str]] = None, + oidc_options: Optional[pulumi.Input['TrustProviderOidcOptionsArgs']] = None, + policy_reference_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + trust_provider_type: Optional[pulumi.Input[str]] = None, + user_trust_provider_type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_options is None and 'deviceOptions' in kwargs: + device_options = kwargs['deviceOptions'] + if device_trust_provider_type is None and 'deviceTrustProviderType' in kwargs: + device_trust_provider_type = kwargs['deviceTrustProviderType'] + if oidc_options is None and 'oidcOptions' in kwargs: + oidc_options = kwargs['oidcOptions'] + if policy_reference_name is None and 'policyReferenceName' in kwargs: + policy_reference_name = kwargs['policyReferenceName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if trust_provider_type is None and 'trustProviderType' in kwargs: + trust_provider_type = kwargs['trustProviderType'] + if user_trust_provider_type is None and 'userTrustProviderType' in kwargs: + user_trust_provider_type = kwargs['userTrustProviderType'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if device_options is not None: - pulumi.set(__self__, "device_options", device_options) + _setter("device_options", device_options) if device_trust_provider_type is not None: - pulumi.set(__self__, "device_trust_provider_type", device_trust_provider_type) + _setter("device_trust_provider_type", device_trust_provider_type) if oidc_options is not None: - pulumi.set(__self__, "oidc_options", oidc_options) + _setter("oidc_options", oidc_options) if policy_reference_name is not None: - pulumi.set(__self__, "policy_reference_name", policy_reference_name) + _setter("policy_reference_name", policy_reference_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if trust_provider_type is not None: - pulumi.set(__self__, "trust_provider_type", trust_provider_type) + _setter("trust_provider_type", trust_provider_type) if user_trust_provider_type is not None: - pulumi.set(__self__, "user_trust_provider_type", user_trust_provider_type) + _setter("user_trust_provider_type", user_trust_provider_type) @property @pulumi.getter @@ -402,6 +484,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TrustProviderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -425,8 +511,10 @@ def _internal_init(__self__, __props__ = TrustProviderArgs.__new__(TrustProviderArgs) __props__.__dict__["description"] = description + device_options = _utilities.configure(device_options, TrustProviderDeviceOptionsArgs, True) __props__.__dict__["device_options"] = device_options __props__.__dict__["device_trust_provider_type"] = device_trust_provider_type + oidc_options = _utilities.configure(oidc_options, TrustProviderOidcOptionsArgs, True) __props__.__dict__["oidc_options"] = oidc_options if policy_reference_name is None and not opts.urn: raise TypeError("Missing required property 'policy_reference_name'") diff --git a/sdk/python/pulumi_aws/vpc/_inputs.py b/sdk/python/pulumi_aws/vpc/_inputs.py index 172663bd332..ad38894cf7d 100644 --- a/sdk/python/pulumi_aws/vpc/_inputs.py +++ b/sdk/python/pulumi_aws/vpc/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,8 +23,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeSecurityGroupRules`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroupRules.html) API Reference. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecurityGroupRuleFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -62,8 +79,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. Security group rule IDs will be selected if any one of the given values match. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecurityGroupRulesFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/vpc/get_security_group_rule.py b/sdk/python/pulumi_aws/vpc/get_security_group_rule.py index 190e9f88a96..d94aaa676c9 100644 --- a/sdk/python/pulumi_aws/vpc/get_security_group_rule.py +++ b/sdk/python/pulumi_aws/vpc/get_security_group_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/vpc/get_security_group_rules.py b/sdk/python/pulumi_aws/vpc/get_security_group_rules.py index 6a3414c0246..32e2ea3e448 100644 --- a/sdk/python/pulumi_aws/vpc/get_security_group_rules.py +++ b/sdk/python/pulumi_aws/vpc/get_security_group_rules.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * diff --git a/sdk/python/pulumi_aws/vpc/outputs.py b/sdk/python/pulumi_aws/vpc/outputs.py index 9089f25e9b4..d7090e68836 100644 --- a/sdk/python/pulumi_aws/vpc/outputs.py +++ b/sdk/python/pulumi_aws/vpc/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,8 +23,25 @@ def __init__(__self__, *, :param str name: Name of the filter field. Valid values can be found in the EC2 [`DescribeSecurityGroupRules`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroupRules.html) API Reference. :param Sequence[str] values: Set of values that are accepted for the given filter field. Results will be selected if any given value matches. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecurityGroupRuleFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter @@ -54,8 +71,25 @@ def __init__(__self__, *, :param Sequence[str] values: Set of values that are accepted for the given field. Security group rule IDs will be selected if any one of the given values match. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "values", values) + GetSecurityGroupRulesFilterResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + values=values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if values is None: + raise TypeError("Missing 'values' argument") + + _setter("name", name) + _setter("values", values) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/vpc/security_group_egress_rule.py b/sdk/python/pulumi_aws/vpc/security_group_egress_rule.py index deff4059c27..7fb89756c22 100644 --- a/sdk/python/pulumi_aws/vpc/security_group_egress_rule.py +++ b/sdk/python/pulumi_aws/vpc/security_group_egress_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SecurityGroupEgressRuleArgs', 'SecurityGroupEgressRule'] @@ -37,24 +37,73 @@ def __init__(__self__, *, :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[int] to_port: The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. """ - pulumi.set(__self__, "ip_protocol", ip_protocol) - pulumi.set(__self__, "security_group_id", security_group_id) + SecurityGroupEgressRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_protocol=ip_protocol, + security_group_id=security_group_id, + cidr_ipv4=cidr_ipv4, + cidr_ipv6=cidr_ipv6, + description=description, + from_port=from_port, + prefix_list_id=prefix_list_id, + referenced_security_group_id=referenced_security_group_id, + tags=tags, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_protocol: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + cidr_ipv4: Optional[pulumi.Input[str]] = None, + cidr_ipv6: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + from_port: Optional[pulumi.Input[int]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + referenced_security_group_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_protocol is None and 'ipProtocol' in kwargs: + ip_protocol = kwargs['ipProtocol'] + if ip_protocol is None: + raise TypeError("Missing 'ip_protocol' argument") + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_id is None: + raise TypeError("Missing 'security_group_id' argument") + if cidr_ipv4 is None and 'cidrIpv4' in kwargs: + cidr_ipv4 = kwargs['cidrIpv4'] + if cidr_ipv6 is None and 'cidrIpv6' in kwargs: + cidr_ipv6 = kwargs['cidrIpv6'] + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if referenced_security_group_id is None and 'referencedSecurityGroupId' in kwargs: + referenced_security_group_id = kwargs['referencedSecurityGroupId'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + + _setter("ip_protocol", ip_protocol) + _setter("security_group_id", security_group_id) if cidr_ipv4 is not None: - pulumi.set(__self__, "cidr_ipv4", cidr_ipv4) + _setter("cidr_ipv4", cidr_ipv4) if cidr_ipv6 is not None: - pulumi.set(__self__, "cidr_ipv6", cidr_ipv6) + _setter("cidr_ipv6", cidr_ipv6) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if referenced_security_group_id is not None: - pulumi.set(__self__, "referenced_security_group_id", referenced_security_group_id) + _setter("referenced_security_group_id", referenced_security_group_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="ipProtocol") @@ -209,35 +258,90 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] to_port: The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. """ + _SecurityGroupEgressRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cidr_ipv4=cidr_ipv4, + cidr_ipv6=cidr_ipv6, + description=description, + from_port=from_port, + ip_protocol=ip_protocol, + prefix_list_id=prefix_list_id, + referenced_security_group_id=referenced_security_group_id, + security_group_id=security_group_id, + security_group_rule_id=security_group_rule_id, + tags=tags, + tags_all=tags_all, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cidr_ipv4: Optional[pulumi.Input[str]] = None, + cidr_ipv6: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + from_port: Optional[pulumi.Input[int]] = None, + ip_protocol: Optional[pulumi.Input[str]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + referenced_security_group_id: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + security_group_rule_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_ipv4 is None and 'cidrIpv4' in kwargs: + cidr_ipv4 = kwargs['cidrIpv4'] + if cidr_ipv6 is None and 'cidrIpv6' in kwargs: + cidr_ipv6 = kwargs['cidrIpv6'] + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if ip_protocol is None and 'ipProtocol' in kwargs: + ip_protocol = kwargs['ipProtocol'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if referenced_security_group_id is None and 'referencedSecurityGroupId' in kwargs: + referenced_security_group_id = kwargs['referencedSecurityGroupId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_rule_id is None and 'securityGroupRuleId' in kwargs: + security_group_rule_id = kwargs['securityGroupRuleId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cidr_ipv4 is not None: - pulumi.set(__self__, "cidr_ipv4", cidr_ipv4) + _setter("cidr_ipv4", cidr_ipv4) if cidr_ipv6 is not None: - pulumi.set(__self__, "cidr_ipv6", cidr_ipv6) + _setter("cidr_ipv6", cidr_ipv6) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if ip_protocol is not None: - pulumi.set(__self__, "ip_protocol", ip_protocol) + _setter("ip_protocol", ip_protocol) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if referenced_security_group_id is not None: - pulumi.set(__self__, "referenced_security_group_id", referenced_security_group_id) + _setter("referenced_security_group_id", referenced_security_group_id) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) if security_group_rule_id is not None: - pulumi.set(__self__, "security_group_rule_id", security_group_rule_id) + _setter("security_group_rule_id", security_group_rule_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter @@ -508,6 +612,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecurityGroupEgressRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/vpc/security_group_ingress_rule.py b/sdk/python/pulumi_aws/vpc/security_group_ingress_rule.py index e342d96087b..08043c8a797 100644 --- a/sdk/python/pulumi_aws/vpc/security_group_ingress_rule.py +++ b/sdk/python/pulumi_aws/vpc/security_group_ingress_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SecurityGroupIngressRuleArgs', 'SecurityGroupIngressRule'] @@ -37,24 +37,73 @@ def __init__(__self__, *, :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[int] to_port: The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. """ - pulumi.set(__self__, "ip_protocol", ip_protocol) - pulumi.set(__self__, "security_group_id", security_group_id) + SecurityGroupIngressRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_protocol=ip_protocol, + security_group_id=security_group_id, + cidr_ipv4=cidr_ipv4, + cidr_ipv6=cidr_ipv6, + description=description, + from_port=from_port, + prefix_list_id=prefix_list_id, + referenced_security_group_id=referenced_security_group_id, + tags=tags, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_protocol: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + cidr_ipv4: Optional[pulumi.Input[str]] = None, + cidr_ipv6: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + from_port: Optional[pulumi.Input[int]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + referenced_security_group_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_protocol is None and 'ipProtocol' in kwargs: + ip_protocol = kwargs['ipProtocol'] + if ip_protocol is None: + raise TypeError("Missing 'ip_protocol' argument") + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_id is None: + raise TypeError("Missing 'security_group_id' argument") + if cidr_ipv4 is None and 'cidrIpv4' in kwargs: + cidr_ipv4 = kwargs['cidrIpv4'] + if cidr_ipv6 is None and 'cidrIpv6' in kwargs: + cidr_ipv6 = kwargs['cidrIpv6'] + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if referenced_security_group_id is None and 'referencedSecurityGroupId' in kwargs: + referenced_security_group_id = kwargs['referencedSecurityGroupId'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + + _setter("ip_protocol", ip_protocol) + _setter("security_group_id", security_group_id) if cidr_ipv4 is not None: - pulumi.set(__self__, "cidr_ipv4", cidr_ipv4) + _setter("cidr_ipv4", cidr_ipv4) if cidr_ipv6 is not None: - pulumi.set(__self__, "cidr_ipv6", cidr_ipv6) + _setter("cidr_ipv6", cidr_ipv6) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if referenced_security_group_id is not None: - pulumi.set(__self__, "referenced_security_group_id", referenced_security_group_id) + _setter("referenced_security_group_id", referenced_security_group_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter(name="ipProtocol") @@ -209,35 +258,90 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[int] to_port: The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. """ + _SecurityGroupIngressRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + cidr_ipv4=cidr_ipv4, + cidr_ipv6=cidr_ipv6, + description=description, + from_port=from_port, + ip_protocol=ip_protocol, + prefix_list_id=prefix_list_id, + referenced_security_group_id=referenced_security_group_id, + security_group_id=security_group_id, + security_group_rule_id=security_group_rule_id, + tags=tags, + tags_all=tags_all, + to_port=to_port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + cidr_ipv4: Optional[pulumi.Input[str]] = None, + cidr_ipv6: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + from_port: Optional[pulumi.Input[int]] = None, + ip_protocol: Optional[pulumi.Input[str]] = None, + prefix_list_id: Optional[pulumi.Input[str]] = None, + referenced_security_group_id: Optional[pulumi.Input[str]] = None, + security_group_id: Optional[pulumi.Input[str]] = None, + security_group_rule_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + to_port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cidr_ipv4 is None and 'cidrIpv4' in kwargs: + cidr_ipv4 = kwargs['cidrIpv4'] + if cidr_ipv6 is None and 'cidrIpv6' in kwargs: + cidr_ipv6 = kwargs['cidrIpv6'] + if from_port is None and 'fromPort' in kwargs: + from_port = kwargs['fromPort'] + if ip_protocol is None and 'ipProtocol' in kwargs: + ip_protocol = kwargs['ipProtocol'] + if prefix_list_id is None and 'prefixListId' in kwargs: + prefix_list_id = kwargs['prefixListId'] + if referenced_security_group_id is None and 'referencedSecurityGroupId' in kwargs: + referenced_security_group_id = kwargs['referencedSecurityGroupId'] + if security_group_id is None and 'securityGroupId' in kwargs: + security_group_id = kwargs['securityGroupId'] + if security_group_rule_id is None and 'securityGroupRuleId' in kwargs: + security_group_rule_id = kwargs['securityGroupRuleId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if to_port is None and 'toPort' in kwargs: + to_port = kwargs['toPort'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if cidr_ipv4 is not None: - pulumi.set(__self__, "cidr_ipv4", cidr_ipv4) + _setter("cidr_ipv4", cidr_ipv4) if cidr_ipv6 is not None: - pulumi.set(__self__, "cidr_ipv6", cidr_ipv6) + _setter("cidr_ipv6", cidr_ipv6) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if from_port is not None: - pulumi.set(__self__, "from_port", from_port) + _setter("from_port", from_port) if ip_protocol is not None: - pulumi.set(__self__, "ip_protocol", ip_protocol) + _setter("ip_protocol", ip_protocol) if prefix_list_id is not None: - pulumi.set(__self__, "prefix_list_id", prefix_list_id) + _setter("prefix_list_id", prefix_list_id) if referenced_security_group_id is not None: - pulumi.set(__self__, "referenced_security_group_id", referenced_security_group_id) + _setter("referenced_security_group_id", referenced_security_group_id) if security_group_id is not None: - pulumi.set(__self__, "security_group_id", security_group_id) + _setter("security_group_id", security_group_id) if security_group_rule_id is not None: - pulumi.set(__self__, "security_group_rule_id", security_group_rule_id) + _setter("security_group_rule_id", security_group_rule_id) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if to_port is not None: - pulumi.set(__self__, "to_port", to_port) + _setter("to_port", to_port) @property @pulumi.getter @@ -508,6 +612,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SecurityGroupIngressRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/vpclattice/_inputs.py b/sdk/python/pulumi_aws/vpclattice/_inputs.py index 76929eb8347..11746232914 100644 --- a/sdk/python/pulumi_aws/vpclattice/_inputs.py +++ b/sdk/python/pulumi_aws/vpclattice/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -42,10 +42,25 @@ def __init__(__self__, *, > **NOTE:** You must specify exactly one of the following argument blocks: `fixed_response` or `forward`. """ + ListenerDefaultActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fixed_response=fixed_response, + forwards=forwards, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fixed_response: Optional[pulumi.Input['ListenerDefaultActionFixedResponseArgs']] = None, + forwards: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionForwardArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forwards is not None: - pulumi.set(__self__, "forwards", forwards) + _setter("forwards", forwards) @property @pulumi.getter(name="fixedResponse") @@ -78,7 +93,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] status_code: Custom HTTP status code to return, e.g. a 404 response code. See [Listeners](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html) in the AWS documentation for a list of supported codes. """ - pulumi.set(__self__, "status_code", status_code) + ListenerDefaultActionFixedResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) @property @pulumi.getter(name="statusCode") @@ -100,8 +130,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionForwardTargetGroupArgs']]] target_groups: One or more target group blocks. """ + ListenerDefaultActionForwardArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionForwardTargetGroupArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is not None: - pulumi.set(__self__, "target_groups", target_groups) + _setter("target_groups", target_groups) @property @pulumi.getter(name="targetGroups") @@ -126,10 +169,25 @@ def __init__(__self__, *, :param pulumi.Input[int] weight: Determines how requests are distributed to the target group. Only required if you specify multiple target groups for a forward action. For example, if you specify two target groups, one with a weight of 10 and the other with a weight of 20, the target group with a weight of 20 receives twice as many requests as the other target group. See [Listener rules](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html#listener-rules) in the AWS documentation for additional examples. Default: `100`. """ + ListenerDefaultActionForwardTargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_group_identifier=target_group_identifier, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_group_identifier: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_group_identifier is None and 'targetGroupIdentifier' in kwargs: + target_group_identifier = kwargs['targetGroupIdentifier'] + if target_group_identifier is not None: - pulumi.set(__self__, "target_group_identifier", target_group_identifier) + _setter("target_group_identifier", target_group_identifier) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="targetGroupIdentifier") @@ -166,10 +224,25 @@ def __init__(__self__, *, :param pulumi.Input['ListenerRuleActionFixedResponseArgs'] fixed_response: Describes the rule action that returns a custom HTTP response. :param pulumi.Input['ListenerRuleActionForwardArgs'] forward: The forward action. Traffic that matches the rule is forwarded to the specified target groups. """ + ListenerRuleActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fixed_response=fixed_response, + forward=forward, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fixed_response: Optional[pulumi.Input['ListenerRuleActionFixedResponseArgs']] = None, + forward: Optional[pulumi.Input['ListenerRuleActionForwardArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) @property @pulumi.getter(name="fixedResponse") @@ -203,7 +276,22 @@ def __init__(__self__, *, """ :param pulumi.Input[int] status_code: The HTTP response code. """ - pulumi.set(__self__, "status_code", status_code) + ListenerRuleActionFixedResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) @property @pulumi.getter(name="statusCode") @@ -227,7 +315,22 @@ def __init__(__self__, *, The default value is 1 with maximum number of 2. If only one target group is provided, there is no need to set the weight; 100% of traffic will go to that target group. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerRuleActionForwardArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleActionForwardTargetGroupArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) @property @pulumi.getter(name="targetGroups") @@ -249,9 +352,26 @@ class ListenerRuleActionForwardTargetGroupArgs: def __init__(__self__, *, target_group_identifier: pulumi.Input[str], weight: Optional[pulumi.Input[int]] = None): - pulumi.set(__self__, "target_group_identifier", target_group_identifier) + ListenerRuleActionForwardTargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_group_identifier=target_group_identifier, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_group_identifier: Optional[pulumi.Input[str]] = None, + weight: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_group_identifier is None and 'targetGroupIdentifier' in kwargs: + target_group_identifier = kwargs['targetGroupIdentifier'] + if target_group_identifier is None: + raise TypeError("Missing 'target_group_identifier' argument") + + _setter("target_group_identifier", target_group_identifier) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="targetGroupIdentifier") @@ -279,8 +399,21 @@ def __init__(__self__, *, """ :param pulumi.Input['ListenerRuleMatchHttpMatchArgs'] http_match: The HTTP criteria that a rule must match. """ + ListenerRuleMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_match=http_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_match: Optional[pulumi.Input['ListenerRuleMatchHttpMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_match is None and 'httpMatch' in kwargs: + http_match = kwargs['httpMatch'] + if http_match is not None: - pulumi.set(__self__, "http_match", http_match) + _setter("http_match", http_match) @property @pulumi.getter(name="httpMatch") @@ -306,12 +439,31 @@ def __init__(__self__, *, :param pulumi.Input[str] method: The HTTP method type. :param pulumi.Input['ListenerRuleMatchHttpMatchPathMatchArgs'] path_match: The path match. """ + ListenerRuleMatchHttpMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_matches=header_matches, + method=method, + path_match=path_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_matches: Optional[pulumi.Input[Sequence[pulumi.Input['ListenerRuleMatchHttpMatchHeaderMatchArgs']]]] = None, + method: Optional[pulumi.Input[str]] = None, + path_match: Optional[pulumi.Input['ListenerRuleMatchHttpMatchPathMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_matches is None and 'headerMatches' in kwargs: + header_matches = kwargs['headerMatches'] + if path_match is None and 'pathMatch' in kwargs: + path_match = kwargs['pathMatch'] + if header_matches is not None: - pulumi.set(__self__, "header_matches", header_matches) + _setter("header_matches", header_matches) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if path_match is not None: - pulumi.set(__self__, "path_match", path_match) + _setter("path_match", path_match) @property @pulumi.getter(name="headerMatches") @@ -361,10 +513,31 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the header. :param pulumi.Input[bool] case_sensitive: Indicates whether the match is case sensitive. Defaults to false. """ - pulumi.set(__self__, "match", match) - pulumi.set(__self__, "name", name) + ListenerRuleMatchHttpMatchHeaderMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + name=name, + case_sensitive=case_sensitive, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional[pulumi.Input['ListenerRuleMatchHttpMatchHeaderMatchMatchArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + case_sensitive: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if case_sensitive is None and 'caseSensitive' in kwargs: + case_sensitive = kwargs['caseSensitive'] + + _setter("match", match) + _setter("name", name) if case_sensitive is not None: - pulumi.set(__self__, "case_sensitive", case_sensitive) + _setter("case_sensitive", case_sensitive) @property @pulumi.getter @@ -414,12 +587,27 @@ def __init__(__self__, *, :param pulumi.Input[str] exact: Specifies an exact type match. :param pulumi.Input[str] prefix: Specifies a prefix type match. Matches the value with the prefix. """ + ListenerRuleMatchHttpMatchHeaderMatchMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + contains=contains, + exact=exact, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contains: Optional[pulumi.Input[str]] = None, + exact: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contains is not None: - pulumi.set(__self__, "contains", contains) + _setter("contains", contains) if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -467,9 +655,26 @@ def __init__(__self__, *, :param pulumi.Input['ListenerRuleMatchHttpMatchPathMatchMatchArgs'] match: The header match type. :param pulumi.Input[bool] case_sensitive: Indicates whether the match is case sensitive. Defaults to false. """ - pulumi.set(__self__, "match", match) + ListenerRuleMatchHttpMatchPathMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + case_sensitive=case_sensitive, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional[pulumi.Input['ListenerRuleMatchHttpMatchPathMatchMatchArgs']] = None, + case_sensitive: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + if case_sensitive is None and 'caseSensitive' in kwargs: + case_sensitive = kwargs['caseSensitive'] + + _setter("match", match) if case_sensitive is not None: - pulumi.set(__self__, "case_sensitive", case_sensitive) + _setter("case_sensitive", case_sensitive) @property @pulumi.getter @@ -505,10 +710,23 @@ def __init__(__self__, *, :param pulumi.Input[str] exact: Specifies an exact type match. :param pulumi.Input[str] prefix: Specifies a prefix type match. Matches the value with the prefix. """ + ListenerRuleMatchHttpMatchPathMatchMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -540,10 +758,27 @@ class ServiceDnsEntryArgs: def __init__(__self__, *, domain_name: Optional[pulumi.Input[str]] = None, hosted_zone_id: Optional[pulumi.Input[str]] = None): + ServiceDnsEntryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + hosted_zone_id=hosted_zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) @property @pulumi.getter(name="domainName") @@ -573,10 +808,27 @@ def __init__(__self__, *, :param pulumi.Input[str] domain_name: The domain name of the service. :param pulumi.Input[str] hosted_zone_id: The ID of the hosted zone. """ + ServiceNetworkServiceAssociationDnsEntryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + hosted_zone_id=hosted_zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[pulumi.Input[str]] = None, + hosted_zone_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) @property @pulumi.getter(name="domainName") @@ -612,9 +864,24 @@ def __init__(__self__, *, :param pulumi.Input[str] id: The ID of the target. If the target type of the target group is INSTANCE, this is an instance ID. If the target type is IP , this is an IP address. If the target type is LAMBDA, this is the ARN of the Lambda function. If the target type is ALB, this is the ARN of the Application Load Balancer. :param pulumi.Input[int] port: This port is used for routing traffic to the target, and defaults to the target group port. However, you can override the default and specify a custom port. """ - pulumi.set(__self__, "id", id) + TargetGroupAttachmentTargetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -660,20 +927,53 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol_version: The protocol version. Valid Values are `HTTP1` | `HTTP2` | `GRPC`. Default value is `HTTP1`. :param pulumi.Input[str] vpc_identifier: The ID of the VPC. """ + TargetGroupConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + health_check=health_check, + ip_address_type=ip_address_type, + lambda_event_structure_version=lambda_event_structure_version, + port=port, + protocol=protocol, + protocol_version=protocol_version, + vpc_identifier=vpc_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + health_check: Optional[pulumi.Input['TargetGroupConfigHealthCheckArgs']] = None, + ip_address_type: Optional[pulumi.Input[str]] = None, + lambda_event_structure_version: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + protocol_version: Optional[pulumi.Input[str]] = None, + vpc_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if lambda_event_structure_version is None and 'lambdaEventStructureVersion' in kwargs: + lambda_event_structure_version = kwargs['lambdaEventStructureVersion'] + if protocol_version is None and 'protocolVersion' in kwargs: + protocol_version = kwargs['protocolVersion'] + if vpc_identifier is None and 'vpcIdentifier' in kwargs: + vpc_identifier = kwargs['vpcIdentifier'] + if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if lambda_event_structure_version is not None: - pulumi.set(__self__, "lambda_event_structure_version", lambda_event_structure_version) + _setter("lambda_event_structure_version", lambda_event_structure_version) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if protocol_version is not None: - pulumi.set(__self__, "protocol_version", protocol_version) + _setter("protocol_version", protocol_version) if vpc_identifier is not None: - pulumi.set(__self__, "vpc_identifier", vpc_identifier) + _setter("vpc_identifier", vpc_identifier) @property @pulumi.getter(name="healthCheck") @@ -785,26 +1085,65 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol_version: The protocol version used when performing health checks on targets. The possible protocol versions are `HTTP1` and `HTTP2`. The default is `HTTP1`. :param pulumi.Input[int] unhealthy_threshold_count: The number of consecutive failed health checks required before considering a target unhealthy. The range is 2–10. The default is 2. """ + TargetGroupConfigHealthCheckArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + health_check_interval_seconds=health_check_interval_seconds, + health_check_timeout_seconds=health_check_timeout_seconds, + healthy_threshold_count=healthy_threshold_count, + matcher=matcher, + path=path, + port=port, + protocol=protocol, + protocol_version=protocol_version, + unhealthy_threshold_count=unhealthy_threshold_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[pulumi.Input[bool]] = None, + health_check_interval_seconds: Optional[pulumi.Input[int]] = None, + health_check_timeout_seconds: Optional[pulumi.Input[int]] = None, + healthy_threshold_count: Optional[pulumi.Input[int]] = None, + matcher: Optional[pulumi.Input['TargetGroupConfigHealthCheckMatcherArgs']] = None, + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + protocol_version: Optional[pulumi.Input[str]] = None, + unhealthy_threshold_count: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if health_check_interval_seconds is None and 'healthCheckIntervalSeconds' in kwargs: + health_check_interval_seconds = kwargs['healthCheckIntervalSeconds'] + if health_check_timeout_seconds is None and 'healthCheckTimeoutSeconds' in kwargs: + health_check_timeout_seconds = kwargs['healthCheckTimeoutSeconds'] + if healthy_threshold_count is None and 'healthyThresholdCount' in kwargs: + healthy_threshold_count = kwargs['healthyThresholdCount'] + if protocol_version is None and 'protocolVersion' in kwargs: + protocol_version = kwargs['protocolVersion'] + if unhealthy_threshold_count is None and 'unhealthyThresholdCount' in kwargs: + unhealthy_threshold_count = kwargs['unhealthyThresholdCount'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if health_check_interval_seconds is not None: - pulumi.set(__self__, "health_check_interval_seconds", health_check_interval_seconds) + _setter("health_check_interval_seconds", health_check_interval_seconds) if health_check_timeout_seconds is not None: - pulumi.set(__self__, "health_check_timeout_seconds", health_check_timeout_seconds) + _setter("health_check_timeout_seconds", health_check_timeout_seconds) if healthy_threshold_count is not None: - pulumi.set(__self__, "healthy_threshold_count", healthy_threshold_count) + _setter("healthy_threshold_count", healthy_threshold_count) if matcher is not None: - pulumi.set(__self__, "matcher", matcher) + _setter("matcher", matcher) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if protocol_version is not None: - pulumi.set(__self__, "protocol_version", protocol_version) + _setter("protocol_version", protocol_version) if unhealthy_threshold_count is not None: - pulumi.set(__self__, "unhealthy_threshold_count", unhealthy_threshold_count) + _setter("unhealthy_threshold_count", unhealthy_threshold_count) @property @pulumi.getter @@ -932,8 +1271,19 @@ def __init__(__self__, *, """ :param pulumi.Input[str] value: The HTTP codes to use when checking for a successful response from a target. """ + TargetGroupConfigHealthCheckMatcherArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/vpclattice/access_log_subscription.py b/sdk/python/pulumi_aws/vpclattice/access_log_subscription.py index 217500f2d59..8b29604d1b3 100644 --- a/sdk/python/pulumi_aws/vpclattice/access_log_subscription.py +++ b/sdk/python/pulumi_aws/vpclattice/access_log_subscription.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AccessLogSubscriptionArgs', 'AccessLogSubscription'] @@ -22,10 +22,33 @@ def __init__(__self__, *, :param pulumi.Input[str] destination_arn: Amazon Resource Name (ARN) of the log destination. :param pulumi.Input[str] resource_identifier: The ID or Amazon Resource Identifier (ARN) of the service network or service. You must use the ARN if the resources specified in the operation are in different accounts. """ - pulumi.set(__self__, "destination_arn", destination_arn) - pulumi.set(__self__, "resource_identifier", resource_identifier) + AccessLogSubscriptionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + destination_arn=destination_arn, + resource_identifier=resource_identifier, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + destination_arn: Optional[pulumi.Input[str]] = None, + resource_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if destination_arn is None: + raise TypeError("Missing 'destination_arn' argument") + if resource_identifier is None and 'resourceIdentifier' in kwargs: + resource_identifier = kwargs['resourceIdentifier'] + if resource_identifier is None: + raise TypeError("Missing 'resource_identifier' argument") + + _setter("destination_arn", destination_arn) + _setter("resource_identifier", resource_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="destinationArn") @@ -77,21 +100,50 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the service network or service. :param pulumi.Input[str] resource_identifier: The ID or Amazon Resource Identifier (ARN) of the service network or service. You must use the ARN if the resources specified in the operation are in different accounts. """ + _AccessLogSubscriptionState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + destination_arn=destination_arn, + resource_arn=resource_arn, + resource_identifier=resource_identifier, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + destination_arn: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + resource_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if destination_arn is None and 'destinationArn' in kwargs: + destination_arn = kwargs['destinationArn'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_identifier is None and 'resourceIdentifier' in kwargs: + resource_identifier = kwargs['resourceIdentifier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if destination_arn is not None: - pulumi.set(__self__, "destination_arn", destination_arn) + _setter("destination_arn", destination_arn) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if resource_identifier is not None: - pulumi.set(__self__, "resource_identifier", resource_identifier) + _setter("resource_identifier", resource_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -239,6 +291,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AccessLogSubscriptionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/vpclattice/auth_policy.py b/sdk/python/pulumi_aws/vpclattice/auth_policy.py index 5576921bc37..a8f81149390 100644 --- a/sdk/python/pulumi_aws/vpclattice/auth_policy.py +++ b/sdk/python/pulumi_aws/vpclattice/auth_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['AuthPolicyArgs', 'AuthPolicy'] @@ -23,10 +23,31 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_identifier: The ID or Amazon Resource Name (ARN) of the service network or service for which the policy is created. :param pulumi.Input[str] state: The state of the auth policy. The auth policy is only active when the auth type is set to AWS_IAM. If you provide a policy, then authentication and authorization decisions are made based on this policy and the client's IAM policy. If the Auth type is NONE, then, any auth policy you provide will remain inactive. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "resource_identifier", resource_identifier) + AuthPolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_identifier=resource_identifier, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_identifier: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if resource_identifier is None and 'resourceIdentifier' in kwargs: + resource_identifier = kwargs['resourceIdentifier'] + if resource_identifier is None: + raise TypeError("Missing 'resource_identifier' argument") + + _setter("policy", policy) + _setter("resource_identifier", resource_identifier) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter @@ -77,12 +98,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_identifier: The ID or Amazon Resource Name (ARN) of the service network or service for which the policy is created. :param pulumi.Input[str] state: The state of the auth policy. The auth policy is only active when the auth type is set to AWS_IAM. If you provide a policy, then authentication and authorization decisions are made based on this policy and the client's IAM policy. If the Auth type is NONE, then, any auth policy you provide will remain inactive. """ + _AuthPolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_identifier=resource_identifier, + state=state, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_identifier: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_identifier is None and 'resourceIdentifier' in kwargs: + resource_identifier = kwargs['resourceIdentifier'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if resource_identifier is not None: - pulumi.set(__self__, "resource_identifier", resource_identifier) + _setter("resource_identifier", resource_identifier) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) @property @pulumi.getter @@ -232,6 +270,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + AuthPolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/vpclattice/get_auth_policy.py b/sdk/python/pulumi_aws/vpclattice/get_auth_policy.py index 15de60f8528..6ab4c342624 100644 --- a/sdk/python/pulumi_aws/vpclattice/get_auth_policy.py +++ b/sdk/python/pulumi_aws/vpclattice/get_auth_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/vpclattice/get_listener.py b/sdk/python/pulumi_aws/vpclattice/get_listener.py index 00bcf0a444c..b31e047092e 100644 --- a/sdk/python/pulumi_aws/vpclattice/get_listener.py +++ b/sdk/python/pulumi_aws/vpclattice/get_listener.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/vpclattice/get_resource_policy.py b/sdk/python/pulumi_aws/vpclattice/get_resource_policy.py index df9905a2bde..6614f675657 100644 --- a/sdk/python/pulumi_aws/vpclattice/get_resource_policy.py +++ b/sdk/python/pulumi_aws/vpclattice/get_resource_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/vpclattice/get_service.py b/sdk/python/pulumi_aws/vpclattice/get_service.py index b0201dbaa72..96bf0ce0451 100644 --- a/sdk/python/pulumi_aws/vpclattice/get_service.py +++ b/sdk/python/pulumi_aws/vpclattice/get_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/vpclattice/get_service_network.py b/sdk/python/pulumi_aws/vpclattice/get_service_network.py index 50e58e4ae69..f58b476331e 100644 --- a/sdk/python/pulumi_aws/vpclattice/get_service_network.py +++ b/sdk/python/pulumi_aws/vpclattice/get_service_network.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/vpclattice/listener.py b/sdk/python/pulumi_aws/vpclattice/listener.py index 8cebe4145ae..8fbf609effa 100644 --- a/sdk/python/pulumi_aws/vpclattice/listener.py +++ b/sdk/python/pulumi_aws/vpclattice/listener.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -34,18 +34,51 @@ def __init__(__self__, *, > **NOTE:** You must specify one of the following arguments: `service_arn` or `service_identifier`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "default_action", default_action) - pulumi.set(__self__, "protocol", protocol) + ListenerArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_action=default_action, + protocol=protocol, + name=name, + port=port, + service_arn=service_arn, + service_identifier=service_identifier, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_action: Optional[pulumi.Input['ListenerDefaultActionArgs']] = None, + protocol: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + service_arn: Optional[pulumi.Input[str]] = None, + service_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if default_action is None: + raise TypeError("Missing 'default_action' argument") + if protocol is None: + raise TypeError("Missing 'protocol' argument") + if service_arn is None and 'serviceArn' in kwargs: + service_arn = kwargs['serviceArn'] + if service_identifier is None and 'serviceIdentifier' in kwargs: + service_identifier = kwargs['serviceIdentifier'] + + _setter("default_action", default_action) + _setter("protocol", protocol) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if service_arn is not None: - pulumi.set(__self__, "service_arn", service_arn) + _setter("service_arn", service_arn) if service_identifier is not None: - pulumi.set(__self__, "service_identifier", service_identifier) + _setter("service_identifier", service_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultAction") @@ -162,33 +195,80 @@ def __init__(__self__, *, > **NOTE:** You must specify one of the following arguments: `service_arn` or `service_identifier`. :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. """ + _ListenerState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_at=created_at, + default_action=default_action, + last_updated_at=last_updated_at, + listener_id=listener_id, + name=name, + port=port, + protocol=protocol, + service_arn=service_arn, + service_identifier=service_identifier, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + default_action: Optional[pulumi.Input['ListenerDefaultActionArgs']] = None, + last_updated_at: Optional[pulumi.Input[str]] = None, + listener_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + protocol: Optional[pulumi.Input[str]] = None, + service_arn: Optional[pulumi.Input[str]] = None, + service_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_at is None and 'createdAt' in kwargs: + created_at = kwargs['createdAt'] + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if last_updated_at is None and 'lastUpdatedAt' in kwargs: + last_updated_at = kwargs['lastUpdatedAt'] + if listener_id is None and 'listenerId' in kwargs: + listener_id = kwargs['listenerId'] + if service_arn is None and 'serviceArn' in kwargs: + service_arn = kwargs['serviceArn'] + if service_identifier is None and 'serviceIdentifier' in kwargs: + service_identifier = kwargs['serviceIdentifier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_at is not None: - pulumi.set(__self__, "created_at", created_at) + _setter("created_at", created_at) if default_action is not None: - pulumi.set(__self__, "default_action", default_action) + _setter("default_action", default_action) if last_updated_at is not None: - pulumi.set(__self__, "last_updated_at", last_updated_at) + _setter("last_updated_at", last_updated_at) if listener_id is not None: - pulumi.set(__self__, "listener_id", listener_id) + _setter("listener_id", listener_id) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if service_arn is not None: - pulumi.set(__self__, "service_arn", service_arn) + _setter("service_arn", service_arn) if service_identifier is not None: - pulumi.set(__self__, "service_identifier", service_identifier) + _setter("service_identifier", service_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -527,6 +607,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -548,6 +632,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ListenerArgs.__new__(ListenerArgs) + default_action = _utilities.configure(default_action, ListenerDefaultActionArgs, True) if default_action is None and not opts.urn: raise TypeError("Missing required property 'default_action'") __props__.__dict__["default_action"] = default_action diff --git a/sdk/python/pulumi_aws/vpclattice/listener_rule.py b/sdk/python/pulumi_aws/vpclattice/listener_rule.py index b83ac7bd8b0..ba38163dba1 100644 --- a/sdk/python/pulumi_aws/vpclattice/listener_rule.py +++ b/sdk/python/pulumi_aws/vpclattice/listener_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,15 +35,52 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the rule. The name must be unique within the listener. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "listener_identifier", listener_identifier) - pulumi.set(__self__, "match", match) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "service_identifier", service_identifier) + ListenerRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + listener_identifier=listener_identifier, + match=match, + priority=priority, + service_identifier=service_identifier, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['ListenerRuleActionArgs']] = None, + listener_identifier: Optional[pulumi.Input[str]] = None, + match: Optional[pulumi.Input['ListenerRuleMatchArgs']] = None, + priority: Optional[pulumi.Input[int]] = None, + service_identifier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if listener_identifier is None and 'listenerIdentifier' in kwargs: + listener_identifier = kwargs['listenerIdentifier'] + if listener_identifier is None: + raise TypeError("Missing 'listener_identifier' argument") + if match is None: + raise TypeError("Missing 'match' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if service_identifier is None and 'serviceIdentifier' in kwargs: + service_identifier = kwargs['serviceIdentifier'] + if service_identifier is None: + raise TypeError("Missing 'service_identifier' argument") + + _setter("action", action) + _setter("listener_identifier", listener_identifier) + _setter("match", match) + _setter("priority", priority) + _setter("service_identifier", service_identifier) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -160,29 +197,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ListenerRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + arn=arn, + listener_identifier=listener_identifier, + match=match, + name=name, + priority=priority, + rule_id=rule_id, + service_identifier=service_identifier, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['ListenerRuleActionArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, + listener_identifier: Optional[pulumi.Input[str]] = None, + match: Optional[pulumi.Input['ListenerRuleMatchArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + rule_id: Optional[pulumi.Input[str]] = None, + service_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if listener_identifier is None and 'listenerIdentifier' in kwargs: + listener_identifier = kwargs['listenerIdentifier'] + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if service_identifier is None and 'serviceIdentifier' in kwargs: + service_identifier = kwargs['serviceIdentifier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if listener_identifier is not None: - pulumi.set(__self__, "listener_identifier", listener_identifier) + _setter("listener_identifier", listener_identifier) if match is not None: - pulumi.set(__self__, "match", match) + _setter("match", match) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if rule_id is not None: - pulumi.set(__self__, "rule_id", rule_id) + _setter("rule_id", rule_id) if service_identifier is not None: - pulumi.set(__self__, "service_identifier", service_identifier) + _setter("service_identifier", service_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -511,6 +585,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ListenerRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -532,12 +610,14 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ListenerRuleArgs.__new__(ListenerRuleArgs) + action = _utilities.configure(action, ListenerRuleActionArgs, True) if action is None and not opts.urn: raise TypeError("Missing required property 'action'") __props__.__dict__["action"] = action if listener_identifier is None and not opts.urn: raise TypeError("Missing required property 'listener_identifier'") __props__.__dict__["listener_identifier"] = listener_identifier + match = _utilities.configure(match, ListenerRuleMatchArgs, True) if match is None and not opts.urn: raise TypeError("Missing required property 'match'") __props__.__dict__["match"] = match diff --git a/sdk/python/pulumi_aws/vpclattice/outputs.py b/sdk/python/pulumi_aws/vpclattice/outputs.py index 41fe004e988..ed50c041c64 100644 --- a/sdk/python/pulumi_aws/vpclattice/outputs.py +++ b/sdk/python/pulumi_aws/vpclattice/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -65,10 +65,25 @@ def __init__(__self__, *, > **NOTE:** You must specify exactly one of the following argument blocks: `fixed_response` or `forward`. """ + ListenerDefaultAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + fixed_response=fixed_response, + forwards=forwards, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fixed_response: Optional['outputs.ListenerDefaultActionFixedResponse'] = None, + forwards: Optional[Sequence['outputs.ListenerDefaultActionForward']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forwards is not None: - pulumi.set(__self__, "forwards", forwards) + _setter("forwards", forwards) @property @pulumi.getter(name="fixedResponse") @@ -110,7 +125,22 @@ def __init__(__self__, *, """ :param int status_code: Custom HTTP status code to return, e.g. a 404 response code. See [Listeners](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html) in the AWS documentation for a list of supported codes. """ - pulumi.set(__self__, "status_code", status_code) + ListenerDefaultActionFixedResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) @property @pulumi.getter(name="statusCode") @@ -145,8 +175,21 @@ def __init__(__self__, *, """ :param Sequence['ListenerDefaultActionForwardTargetGroupArgs'] target_groups: One or more target group blocks. """ + ListenerDefaultActionForward._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[Sequence['outputs.ListenerDefaultActionForwardTargetGroup']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is not None: - pulumi.set(__self__, "target_groups", target_groups) + _setter("target_groups", target_groups) @property @pulumi.getter(name="targetGroups") @@ -184,10 +227,25 @@ def __init__(__self__, *, :param int weight: Determines how requests are distributed to the target group. Only required if you specify multiple target groups for a forward action. For example, if you specify two target groups, one with a weight of 10 and the other with a weight of 20, the target group with a weight of 20 receives twice as many requests as the other target group. See [Listener rules](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html#listener-rules) in the AWS documentation for additional examples. Default: `100`. """ + ListenerDefaultActionForwardTargetGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_group_identifier=target_group_identifier, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_group_identifier: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_group_identifier is None and 'targetGroupIdentifier' in kwargs: + target_group_identifier = kwargs['targetGroupIdentifier'] + if target_group_identifier is not None: - pulumi.set(__self__, "target_group_identifier", target_group_identifier) + _setter("target_group_identifier", target_group_identifier) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="targetGroupIdentifier") @@ -233,10 +291,25 @@ def __init__(__self__, *, :param 'ListenerRuleActionFixedResponseArgs' fixed_response: Describes the rule action that returns a custom HTTP response. :param 'ListenerRuleActionForwardArgs' forward: The forward action. Traffic that matches the rule is forwarded to the specified target groups. """ + ListenerRuleAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + fixed_response=fixed_response, + forward=forward, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fixed_response: Optional['outputs.ListenerRuleActionFixedResponse'] = None, + forward: Optional['outputs.ListenerRuleActionForward'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fixed_response is None and 'fixedResponse' in kwargs: + fixed_response = kwargs['fixedResponse'] + if fixed_response is not None: - pulumi.set(__self__, "fixed_response", fixed_response) + _setter("fixed_response", fixed_response) if forward is not None: - pulumi.set(__self__, "forward", forward) + _setter("forward", forward) @property @pulumi.getter(name="fixedResponse") @@ -279,7 +352,22 @@ def __init__(__self__, *, """ :param int status_code: The HTTP response code. """ - pulumi.set(__self__, "status_code", status_code) + ListenerRuleActionFixedResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) @property @pulumi.getter(name="statusCode") @@ -316,7 +404,22 @@ def __init__(__self__, *, The default value is 1 with maximum number of 2. If only one target group is provided, there is no need to set the weight; 100% of traffic will go to that target group. """ - pulumi.set(__self__, "target_groups", target_groups) + ListenerRuleActionForward._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[Sequence['outputs.ListenerRuleActionForwardTargetGroup']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) @property @pulumi.getter(name="targetGroups") @@ -351,9 +454,26 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, target_group_identifier: str, weight: Optional[int] = None): - pulumi.set(__self__, "target_group_identifier", target_group_identifier) + ListenerRuleActionForwardTargetGroup._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_group_identifier=target_group_identifier, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_group_identifier: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_group_identifier is None and 'targetGroupIdentifier' in kwargs: + target_group_identifier = kwargs['targetGroupIdentifier'] + if target_group_identifier is None: + raise TypeError("Missing 'target_group_identifier' argument") + + _setter("target_group_identifier", target_group_identifier) if weight is not None: - pulumi.set(__self__, "weight", weight) + _setter("weight", weight) @property @pulumi.getter(name="targetGroupIdentifier") @@ -390,8 +510,21 @@ def __init__(__self__, *, """ :param 'ListenerRuleMatchHttpMatchArgs' http_match: The HTTP criteria that a rule must match. """ + ListenerRuleMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + http_match=http_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + http_match: Optional['outputs.ListenerRuleMatchHttpMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if http_match is None and 'httpMatch' in kwargs: + http_match = kwargs['httpMatch'] + if http_match is not None: - pulumi.set(__self__, "http_match", http_match) + _setter("http_match", http_match) @property @pulumi.getter(name="httpMatch") @@ -432,12 +565,31 @@ def __init__(__self__, *, :param str method: The HTTP method type. :param 'ListenerRuleMatchHttpMatchPathMatchArgs' path_match: The path match. """ + ListenerRuleMatchHttpMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + header_matches=header_matches, + method=method, + path_match=path_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + header_matches: Optional[Sequence['outputs.ListenerRuleMatchHttpMatchHeaderMatch']] = None, + method: Optional[str] = None, + path_match: Optional['outputs.ListenerRuleMatchHttpMatchPathMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if header_matches is None and 'headerMatches' in kwargs: + header_matches = kwargs['headerMatches'] + if path_match is None and 'pathMatch' in kwargs: + path_match = kwargs['pathMatch'] + if header_matches is not None: - pulumi.set(__self__, "header_matches", header_matches) + _setter("header_matches", header_matches) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if path_match is not None: - pulumi.set(__self__, "path_match", path_match) + _setter("path_match", path_match) @property @pulumi.getter(name="headerMatches") @@ -492,10 +644,31 @@ def __init__(__self__, *, :param str name: The name of the header. :param bool case_sensitive: Indicates whether the match is case sensitive. Defaults to false. """ - pulumi.set(__self__, "match", match) - pulumi.set(__self__, "name", name) + ListenerRuleMatchHttpMatchHeaderMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + name=name, + case_sensitive=case_sensitive, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional['outputs.ListenerRuleMatchHttpMatchHeaderMatchMatch'] = None, + name: Optional[str] = None, + case_sensitive: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if case_sensitive is None and 'caseSensitive' in kwargs: + case_sensitive = kwargs['caseSensitive'] + + _setter("match", match) + _setter("name", name) if case_sensitive is not None: - pulumi.set(__self__, "case_sensitive", case_sensitive) + _setter("case_sensitive", case_sensitive) @property @pulumi.getter @@ -533,12 +706,27 @@ def __init__(__self__, *, :param str exact: Specifies an exact type match. :param str prefix: Specifies a prefix type match. Matches the value with the prefix. """ + ListenerRuleMatchHttpMatchHeaderMatchMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + contains=contains, + exact=exact, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + contains: Optional[str] = None, + exact: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if contains is not None: - pulumi.set(__self__, "contains", contains) + _setter("contains", contains) if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -591,9 +779,26 @@ def __init__(__self__, *, :param 'ListenerRuleMatchHttpMatchPathMatchMatchArgs' match: The header match type. :param bool case_sensitive: Indicates whether the match is case sensitive. Defaults to false. """ - pulumi.set(__self__, "match", match) + ListenerRuleMatchHttpMatchPathMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + match=match, + case_sensitive=case_sensitive, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match: Optional['outputs.ListenerRuleMatchHttpMatchPathMatchMatch'] = None, + case_sensitive: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match is None: + raise TypeError("Missing 'match' argument") + if case_sensitive is None and 'caseSensitive' in kwargs: + case_sensitive = kwargs['caseSensitive'] + + _setter("match", match) if case_sensitive is not None: - pulumi.set(__self__, "case_sensitive", case_sensitive) + _setter("case_sensitive", case_sensitive) @property @pulumi.getter @@ -621,10 +826,23 @@ def __init__(__self__, *, :param str exact: Specifies an exact type match. :param str prefix: Specifies a prefix type match. Matches the value with the prefix. """ + ListenerRuleMatchHttpMatchPathMatchMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + exact=exact, + prefix=prefix, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + exact: Optional[str] = None, + prefix: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if exact is not None: - pulumi.set(__self__, "exact", exact) + _setter("exact", exact) if prefix is not None: - pulumi.set(__self__, "prefix", prefix) + _setter("prefix", prefix) @property @pulumi.getter @@ -667,10 +885,27 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, domain_name: Optional[str] = None, hosted_zone_id: Optional[str] = None): + ServiceDnsEntry._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + hosted_zone_id=hosted_zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + hosted_zone_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) @property @pulumi.getter(name="domainName") @@ -711,10 +946,27 @@ def __init__(__self__, *, :param str domain_name: The domain name of the service. :param str hosted_zone_id: The ID of the hosted zone. """ + ServiceNetworkServiceAssociationDnsEntry._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + hosted_zone_id=hosted_zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + hosted_zone_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if domain_name is not None: - pulumi.set(__self__, "domain_name", domain_name) + _setter("domain_name", domain_name) if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + _setter("hosted_zone_id", hosted_zone_id) @property @pulumi.getter(name="domainName") @@ -742,9 +994,24 @@ def __init__(__self__, *, :param str id: The ID of the target. If the target type of the target group is INSTANCE, this is an instance ID. If the target type is IP , this is an IP address. If the target type is LAMBDA, this is the ARN of the Lambda function. If the target type is ALB, this is the ARN of the Application Load Balancer. :param int port: This port is used for routing traffic to the target, and defaults to the target group port. However, you can override the default and specify a custom port. """ - pulumi.set(__self__, "id", id) + TargetGroupAttachmentTarget._configure( + lambda key, value: pulumi.set(__self__, key, value), + id=id, + port=port, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + id: Optional[str] = None, + port: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if id is None: + raise TypeError("Missing 'id' argument") + + _setter("id", id) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) @property @pulumi.getter @@ -807,20 +1074,53 @@ def __init__(__self__, *, :param str protocol_version: The protocol version. Valid Values are `HTTP1` | `HTTP2` | `GRPC`. Default value is `HTTP1`. :param str vpc_identifier: The ID of the VPC. """ + TargetGroupConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + health_check=health_check, + ip_address_type=ip_address_type, + lambda_event_structure_version=lambda_event_structure_version, + port=port, + protocol=protocol, + protocol_version=protocol_version, + vpc_identifier=vpc_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + health_check: Optional['outputs.TargetGroupConfigHealthCheck'] = None, + ip_address_type: Optional[str] = None, + lambda_event_structure_version: Optional[str] = None, + port: Optional[int] = None, + protocol: Optional[str] = None, + protocol_version: Optional[str] = None, + vpc_identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if health_check is None and 'healthCheck' in kwargs: + health_check = kwargs['healthCheck'] + if ip_address_type is None and 'ipAddressType' in kwargs: + ip_address_type = kwargs['ipAddressType'] + if lambda_event_structure_version is None and 'lambdaEventStructureVersion' in kwargs: + lambda_event_structure_version = kwargs['lambdaEventStructureVersion'] + if protocol_version is None and 'protocolVersion' in kwargs: + protocol_version = kwargs['protocolVersion'] + if vpc_identifier is None and 'vpcIdentifier' in kwargs: + vpc_identifier = kwargs['vpcIdentifier'] + if health_check is not None: - pulumi.set(__self__, "health_check", health_check) + _setter("health_check", health_check) if ip_address_type is not None: - pulumi.set(__self__, "ip_address_type", ip_address_type) + _setter("ip_address_type", ip_address_type) if lambda_event_structure_version is not None: - pulumi.set(__self__, "lambda_event_structure_version", lambda_event_structure_version) + _setter("lambda_event_structure_version", lambda_event_structure_version) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if protocol_version is not None: - pulumi.set(__self__, "protocol_version", protocol_version) + _setter("protocol_version", protocol_version) if vpc_identifier is not None: - pulumi.set(__self__, "vpc_identifier", vpc_identifier) + _setter("vpc_identifier", vpc_identifier) @property @pulumi.getter(name="healthCheck") @@ -929,26 +1229,65 @@ def __init__(__self__, *, :param str protocol_version: The protocol version used when performing health checks on targets. The possible protocol versions are `HTTP1` and `HTTP2`. The default is `HTTP1`. :param int unhealthy_threshold_count: The number of consecutive failed health checks required before considering a target unhealthy. The range is 2–10. The default is 2. """ + TargetGroupConfigHealthCheck._configure( + lambda key, value: pulumi.set(__self__, key, value), + enabled=enabled, + health_check_interval_seconds=health_check_interval_seconds, + health_check_timeout_seconds=health_check_timeout_seconds, + healthy_threshold_count=healthy_threshold_count, + matcher=matcher, + path=path, + port=port, + protocol=protocol, + protocol_version=protocol_version, + unhealthy_threshold_count=unhealthy_threshold_count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + enabled: Optional[bool] = None, + health_check_interval_seconds: Optional[int] = None, + health_check_timeout_seconds: Optional[int] = None, + healthy_threshold_count: Optional[int] = None, + matcher: Optional['outputs.TargetGroupConfigHealthCheckMatcher'] = None, + path: Optional[str] = None, + port: Optional[int] = None, + protocol: Optional[str] = None, + protocol_version: Optional[str] = None, + unhealthy_threshold_count: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if health_check_interval_seconds is None and 'healthCheckIntervalSeconds' in kwargs: + health_check_interval_seconds = kwargs['healthCheckIntervalSeconds'] + if health_check_timeout_seconds is None and 'healthCheckTimeoutSeconds' in kwargs: + health_check_timeout_seconds = kwargs['healthCheckTimeoutSeconds'] + if healthy_threshold_count is None and 'healthyThresholdCount' in kwargs: + healthy_threshold_count = kwargs['healthyThresholdCount'] + if protocol_version is None and 'protocolVersion' in kwargs: + protocol_version = kwargs['protocolVersion'] + if unhealthy_threshold_count is None and 'unhealthyThresholdCount' in kwargs: + unhealthy_threshold_count = kwargs['unhealthyThresholdCount'] + if enabled is not None: - pulumi.set(__self__, "enabled", enabled) + _setter("enabled", enabled) if health_check_interval_seconds is not None: - pulumi.set(__self__, "health_check_interval_seconds", health_check_interval_seconds) + _setter("health_check_interval_seconds", health_check_interval_seconds) if health_check_timeout_seconds is not None: - pulumi.set(__self__, "health_check_timeout_seconds", health_check_timeout_seconds) + _setter("health_check_timeout_seconds", health_check_timeout_seconds) if healthy_threshold_count is not None: - pulumi.set(__self__, "healthy_threshold_count", healthy_threshold_count) + _setter("healthy_threshold_count", healthy_threshold_count) if matcher is not None: - pulumi.set(__self__, "matcher", matcher) + _setter("matcher", matcher) if path is not None: - pulumi.set(__self__, "path", path) + _setter("path", path) if port is not None: - pulumi.set(__self__, "port", port) + _setter("port", port) if protocol is not None: - pulumi.set(__self__, "protocol", protocol) + _setter("protocol", protocol) if protocol_version is not None: - pulumi.set(__self__, "protocol_version", protocol_version) + _setter("protocol_version", protocol_version) if unhealthy_threshold_count is not None: - pulumi.set(__self__, "unhealthy_threshold_count", unhealthy_threshold_count) + _setter("unhealthy_threshold_count", unhealthy_threshold_count) @property @pulumi.getter @@ -1036,8 +1375,19 @@ def __init__(__self__, *, """ :param str value: The HTTP codes to use when checking for a successful response from a target. """ + TargetGroupConfigHealthCheckMatcher._configure( + lambda key, value: pulumi.set(__self__, key, value), + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if value is not None: - pulumi.set(__self__, "value", value) + _setter("value", value) @property @pulumi.getter @@ -1053,8 +1403,27 @@ class GetListenerDefaultActionResult(dict): def __init__(__self__, *, fixed_responses: Sequence['outputs.GetListenerDefaultActionFixedResponseResult'], forwards: Sequence['outputs.GetListenerDefaultActionForwardResult']): - pulumi.set(__self__, "fixed_responses", fixed_responses) - pulumi.set(__self__, "forwards", forwards) + GetListenerDefaultActionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + fixed_responses=fixed_responses, + forwards=forwards, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fixed_responses: Optional[Sequence['outputs.GetListenerDefaultActionFixedResponseResult']] = None, + forwards: Optional[Sequence['outputs.GetListenerDefaultActionForwardResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fixed_responses is None and 'fixedResponses' in kwargs: + fixed_responses = kwargs['fixedResponses'] + if fixed_responses is None: + raise TypeError("Missing 'fixed_responses' argument") + if forwards is None: + raise TypeError("Missing 'forwards' argument") + + _setter("fixed_responses", fixed_responses) + _setter("forwards", forwards) @property @pulumi.getter(name="fixedResponses") @@ -1071,7 +1440,22 @@ def forwards(self) -> Sequence['outputs.GetListenerDefaultActionForwardResult']: class GetListenerDefaultActionFixedResponseResult(dict): def __init__(__self__, *, status_code: int): - pulumi.set(__self__, "status_code", status_code) + GetListenerDefaultActionFixedResponseResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + status_code: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if status_code is None: + raise TypeError("Missing 'status_code' argument") + + _setter("status_code", status_code) @property @pulumi.getter(name="statusCode") @@ -1083,7 +1467,22 @@ def status_code(self) -> int: class GetListenerDefaultActionForwardResult(dict): def __init__(__self__, *, target_groups: Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']): - pulumi.set(__self__, "target_groups", target_groups) + GetListenerDefaultActionForwardResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_groups=target_groups, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_groups: Optional[Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_groups is None and 'targetGroups' in kwargs: + target_groups = kwargs['targetGroups'] + if target_groups is None: + raise TypeError("Missing 'target_groups' argument") + + _setter("target_groups", target_groups) @property @pulumi.getter(name="targetGroups") @@ -1096,8 +1495,27 @@ class GetListenerDefaultActionForwardTargetGroupResult(dict): def __init__(__self__, *, target_group_identifier: str, weight: int): - pulumi.set(__self__, "target_group_identifier", target_group_identifier) - pulumi.set(__self__, "weight", weight) + GetListenerDefaultActionForwardTargetGroupResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + target_group_identifier=target_group_identifier, + weight=weight, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target_group_identifier: Optional[str] = None, + weight: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_group_identifier is None and 'targetGroupIdentifier' in kwargs: + target_group_identifier = kwargs['targetGroupIdentifier'] + if target_group_identifier is None: + raise TypeError("Missing 'target_group_identifier' argument") + if weight is None: + raise TypeError("Missing 'weight' argument") + + _setter("target_group_identifier", target_group_identifier) + _setter("weight", weight) @property @pulumi.getter(name="targetGroupIdentifier") @@ -1115,8 +1533,29 @@ class GetServiceDnsEntryResult(dict): def __init__(__self__, *, domain_name: str, hosted_zone_id: str): - pulumi.set(__self__, "domain_name", domain_name) - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + GetServiceDnsEntryResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + domain_name=domain_name, + hosted_zone_id=hosted_zone_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + domain_name: Optional[str] = None, + hosted_zone_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if domain_name is None and 'domainName' in kwargs: + domain_name = kwargs['domainName'] + if domain_name is None: + raise TypeError("Missing 'domain_name' argument") + if hosted_zone_id is None and 'hostedZoneId' in kwargs: + hosted_zone_id = kwargs['hostedZoneId'] + if hosted_zone_id is None: + raise TypeError("Missing 'hosted_zone_id' argument") + + _setter("domain_name", domain_name) + _setter("hosted_zone_id", hosted_zone_id) @property @pulumi.getter(name="domainName") diff --git a/sdk/python/pulumi_aws/vpclattice/resource_policy.py b/sdk/python/pulumi_aws/vpclattice/resource_policy.py index a3f432b4041..a3667d5412c 100644 --- a/sdk/python/pulumi_aws/vpclattice/resource_policy.py +++ b/sdk/python/pulumi_aws/vpclattice/resource_policy.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ResourcePolicyArgs', 'ResourcePolicy'] @@ -21,8 +21,27 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: An IAM policy. The policy string in JSON must not contain newlines or blank lines. :param pulumi.Input[str] resource_arn: The ID or Amazon Resource Name (ARN) of the service network or service for which the policy is created. """ - pulumi.set(__self__, "policy", policy) - pulumi.set(__self__, "resource_arn", resource_arn) + ResourcePolicyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if policy is None: + raise TypeError("Missing 'policy' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + + _setter("policy", policy) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -59,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] policy: An IAM policy. The policy string in JSON must not contain newlines or blank lines. :param pulumi.Input[str] resource_arn: The ID or Amazon Resource Name (ARN) of the service network or service for which the policy is created. """ + _ResourcePolicyState._configure( + lambda key, value: pulumi.set(__self__, key, value), + policy=policy, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if policy is not None: - pulumi.set(__self__, "policy", policy) + _setter("policy", policy) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter @@ -202,6 +236,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ResourcePolicyArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/vpclattice/service.py b/sdk/python/pulumi_aws/vpclattice/service.py index 1d10798dcb6..38c0a6e8759 100644 --- a/sdk/python/pulumi_aws/vpclattice/service.py +++ b/sdk/python/pulumi_aws/vpclattice/service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,41 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ + ServiceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_type=auth_type, + certificate_arn=certificate_arn, + custom_domain_name=custom_domain_name, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_type: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + custom_domain_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if custom_domain_name is None and 'customDomainName' in kwargs: + custom_domain_name = kwargs['customDomainName'] + if auth_type is not None: - pulumi.set(__self__, "auth_type", auth_type) + _setter("auth_type", auth_type) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if custom_domain_name is not None: - pulumi.set(__self__, "custom_domain_name", custom_domain_name) + _setter("custom_domain_name", custom_domain_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="authType") @@ -131,27 +156,64 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ServiceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auth_type=auth_type, + certificate_arn=certificate_arn, + custom_domain_name=custom_domain_name, + dns_entries=dns_entries, + name=name, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auth_type: Optional[pulumi.Input[str]] = None, + certificate_arn: Optional[pulumi.Input[str]] = None, + custom_domain_name: Optional[pulumi.Input[str]] = None, + dns_entries: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceDnsEntryArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if certificate_arn is None and 'certificateArn' in kwargs: + certificate_arn = kwargs['certificateArn'] + if custom_domain_name is None and 'customDomainName' in kwargs: + custom_domain_name = kwargs['customDomainName'] + if dns_entries is None and 'dnsEntries' in kwargs: + dns_entries = kwargs['dnsEntries'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auth_type is not None: - pulumi.set(__self__, "auth_type", auth_type) + _setter("auth_type", auth_type) if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) + _setter("certificate_arn", certificate_arn) if custom_domain_name is not None: - pulumi.set(__self__, "custom_domain_name", custom_domain_name) + _setter("custom_domain_name", custom_domain_name) if dns_entries is not None: - pulumi.set(__self__, "dns_entries", dns_entries) + _setter("dns_entries", dns_entries) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -350,6 +412,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/vpclattice/service_network.py b/sdk/python/pulumi_aws/vpclattice/service_network.py index 47bcda943e5..1d7ff6185e4 100644 --- a/sdk/python/pulumi_aws/vpclattice/service_network.py +++ b/sdk/python/pulumi_aws/vpclattice/service_network.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ServiceNetworkArgs', 'ServiceNetwork'] @@ -25,12 +25,29 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ + ServiceNetworkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + auth_type=auth_type, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + auth_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if auth_type is not None: - pulumi.set(__self__, "auth_type", auth_type) + _setter("auth_type", auth_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="authType") @@ -89,19 +106,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ServiceNetworkState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + auth_type=auth_type, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + auth_type: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if auth_type is None and 'authType' in kwargs: + auth_type = kwargs['authType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if auth_type is not None: - pulumi.set(__self__, "auth_type", auth_type) + _setter("auth_type", auth_type) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -244,6 +284,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceNetworkArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/vpclattice/service_network_service_association.py b/sdk/python/pulumi_aws/vpclattice/service_network_service_association.py index a28447530eb..a34e79a22fe 100644 --- a/sdk/python/pulumi_aws/vpclattice/service_network_service_association.py +++ b/sdk/python/pulumi_aws/vpclattice/service_network_service_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -26,10 +26,33 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "service_identifier", service_identifier) - pulumi.set(__self__, "service_network_identifier", service_network_identifier) + ServiceNetworkServiceAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_identifier=service_identifier, + service_network_identifier=service_network_identifier, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_identifier: Optional[pulumi.Input[str]] = None, + service_network_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_identifier is None and 'serviceIdentifier' in kwargs: + service_identifier = kwargs['serviceIdentifier'] + if service_identifier is None: + raise TypeError("Missing 'service_identifier' argument") + if service_network_identifier is None and 'serviceNetworkIdentifier' in kwargs: + service_network_identifier = kwargs['serviceNetworkIdentifier'] + if service_network_identifier is None: + raise TypeError("Missing 'service_network_identifier' argument") + + _setter("service_identifier", service_identifier) + _setter("service_network_identifier", service_network_identifier) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="serviceIdentifier") @@ -94,27 +117,66 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _ServiceNetworkServiceAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_by=created_by, + custom_domain_name=custom_domain_name, + dns_entries=dns_entries, + service_identifier=service_identifier, + service_network_identifier=service_network_identifier, + status=status, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + custom_domain_name: Optional[pulumi.Input[str]] = None, + dns_entries: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceNetworkServiceAssociationDnsEntryArgs']]]] = None, + service_identifier: Optional[pulumi.Input[str]] = None, + service_network_identifier: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_by is None and 'createdBy' in kwargs: + created_by = kwargs['createdBy'] + if custom_domain_name is None and 'customDomainName' in kwargs: + custom_domain_name = kwargs['customDomainName'] + if dns_entries is None and 'dnsEntries' in kwargs: + dns_entries = kwargs['dnsEntries'] + if service_identifier is None and 'serviceIdentifier' in kwargs: + service_identifier = kwargs['serviceIdentifier'] + if service_network_identifier is None and 'serviceNetworkIdentifier' in kwargs: + service_network_identifier = kwargs['serviceNetworkIdentifier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_by is not None: - pulumi.set(__self__, "created_by", created_by) + _setter("created_by", created_by) if custom_domain_name is not None: - pulumi.set(__self__, "custom_domain_name", custom_domain_name) + _setter("custom_domain_name", custom_domain_name) if dns_entries is not None: - pulumi.set(__self__, "dns_entries", dns_entries) + _setter("dns_entries", dns_entries) if service_identifier is not None: - pulumi.set(__self__, "service_identifier", service_identifier) + _setter("service_identifier", service_identifier) if service_network_identifier is not None: - pulumi.set(__self__, "service_network_identifier", service_network_identifier) + _setter("service_network_identifier", service_network_identifier) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -307,6 +369,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceNetworkServiceAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/vpclattice/service_network_vpc_association.py b/sdk/python/pulumi_aws/vpclattice/service_network_vpc_association.py index e51e3cbb701..532654dda43 100644 --- a/sdk/python/pulumi_aws/vpclattice/service_network_vpc_association.py +++ b/sdk/python/pulumi_aws/vpclattice/service_network_vpc_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['ServiceNetworkVpcAssociationArgs', 'ServiceNetworkVpcAssociation'] @@ -26,12 +26,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The IDs of the security groups. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "service_network_identifier", service_network_identifier) - pulumi.set(__self__, "vpc_identifier", vpc_identifier) + ServiceNetworkVpcAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + service_network_identifier=service_network_identifier, + vpc_identifier=vpc_identifier, + security_group_ids=security_group_ids, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + service_network_identifier: Optional[pulumi.Input[str]] = None, + vpc_identifier: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if service_network_identifier is None and 'serviceNetworkIdentifier' in kwargs: + service_network_identifier = kwargs['serviceNetworkIdentifier'] + if service_network_identifier is None: + raise TypeError("Missing 'service_network_identifier' argument") + if vpc_identifier is None and 'vpcIdentifier' in kwargs: + vpc_identifier = kwargs['vpcIdentifier'] + if vpc_identifier is None: + raise TypeError("Missing 'vpc_identifier' argument") + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + + _setter("service_network_identifier", service_network_identifier) + _setter("vpc_identifier", vpc_identifier) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="serviceNetworkIdentifier") @@ -106,25 +133,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] vpc_identifier: The ID of the VPC. """ + _ServiceNetworkVpcAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + created_by=created_by, + security_group_ids=security_group_ids, + service_network_identifier=service_network_identifier, + status=status, + tags=tags, + tags_all=tags_all, + vpc_identifier=vpc_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + service_network_identifier: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if created_by is None and 'createdBy' in kwargs: + created_by = kwargs['createdBy'] + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if service_network_identifier is None and 'serviceNetworkIdentifier' in kwargs: + service_network_identifier = kwargs['serviceNetworkIdentifier'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if vpc_identifier is None and 'vpcIdentifier' in kwargs: + vpc_identifier = kwargs['vpcIdentifier'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if created_by is not None: - pulumi.set(__self__, "created_by", created_by) + _setter("created_by", created_by) if security_group_ids is not None: - pulumi.set(__self__, "security_group_ids", security_group_ids) + _setter("security_group_ids", security_group_ids) if service_network_identifier is not None: - pulumi.set(__self__, "service_network_identifier", service_network_identifier) + _setter("service_network_identifier", service_network_identifier) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if vpc_identifier is not None: - pulumi.set(__self__, "vpc_identifier", vpc_identifier) + _setter("vpc_identifier", vpc_identifier) @property @pulumi.getter @@ -309,6 +371,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ServiceNetworkVpcAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/vpclattice/target_group.py b/sdk/python/pulumi_aws/vpclattice/target_group.py index 76574bf2058..b1ad272a279 100644 --- a/sdk/python/pulumi_aws/vpclattice/target_group.py +++ b/sdk/python/pulumi_aws/vpclattice/target_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,13 +29,32 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the target group. The name must be unique within the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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. """ - pulumi.set(__self__, "type", type) + TargetGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + config=config, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + config: Optional[pulumi.Input['TargetGroupConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if config is not None: - pulumi.set(__self__, "config", config) + _setter("config", config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -110,23 +129,48 @@ def __init__(__self__, *, The following arguments are optional: """ + _TargetGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + config=config, + name=name, + status=status, + tags=tags, + tags_all=tags_all, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + config: Optional[pulumi.Input['TargetGroupConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if config is not None: - pulumi.set(__self__, "config", config) + _setter("config", config) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if status is not None: - pulumi.set(__self__, "status", status) + _setter("status", status) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -421,6 +465,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TargetGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -439,6 +487,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = TargetGroupArgs.__new__(TargetGroupArgs) + config = _utilities.configure(config, TargetGroupConfigArgs, True) __props__.__dict__["config"] = config __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_aws/vpclattice/target_group_attachment.py b/sdk/python/pulumi_aws/vpclattice/target_group_attachment.py index 074b47df1db..528cdd47e65 100644 --- a/sdk/python/pulumi_aws/vpclattice/target_group_attachment.py +++ b/sdk/python/pulumi_aws/vpclattice/target_group_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,8 +23,27 @@ def __init__(__self__, *, :param pulumi.Input['TargetGroupAttachmentTargetArgs'] target: The target. :param pulumi.Input[str] target_group_identifier: The ID or Amazon Resource Name (ARN) of the target group. """ - pulumi.set(__self__, "target", target) - pulumi.set(__self__, "target_group_identifier", target_group_identifier) + TargetGroupAttachmentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + target=target, + target_group_identifier=target_group_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target: Optional[pulumi.Input['TargetGroupAttachmentTargetArgs']] = None, + target_group_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target is None: + raise TypeError("Missing 'target' argument") + if target_group_identifier is None and 'targetGroupIdentifier' in kwargs: + target_group_identifier = kwargs['targetGroupIdentifier'] + if target_group_identifier is None: + raise TypeError("Missing 'target_group_identifier' argument") + + _setter("target", target) + _setter("target_group_identifier", target_group_identifier) @property @pulumi.getter @@ -61,10 +80,25 @@ def __init__(__self__, *, :param pulumi.Input['TargetGroupAttachmentTargetArgs'] target: The target. :param pulumi.Input[str] target_group_identifier: The ID or Amazon Resource Name (ARN) of the target group. """ + _TargetGroupAttachmentState._configure( + lambda key, value: pulumi.set(__self__, key, value), + target=target, + target_group_identifier=target_group_identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + target: Optional[pulumi.Input['TargetGroupAttachmentTargetArgs']] = None, + target_group_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if target_group_identifier is None and 'targetGroupIdentifier' in kwargs: + target_group_identifier = kwargs['targetGroupIdentifier'] + if target is not None: - pulumi.set(__self__, "target", target) + _setter("target", target) if target_group_identifier is not None: - pulumi.set(__self__, "target_group_identifier", target_group_identifier) + _setter("target_group_identifier", target_group_identifier) @property @pulumi.getter @@ -156,6 +190,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + TargetGroupAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -172,6 +210,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = TargetGroupAttachmentArgs.__new__(TargetGroupAttachmentArgs) + target = _utilities.configure(target, TargetGroupAttachmentTargetArgs, True) if target is None and not opts.urn: raise TypeError("Missing required property 'target'") __props__.__dict__["target"] = target diff --git a/sdk/python/pulumi_aws/waf/_inputs.py b/sdk/python/pulumi_aws/waf/_inputs.py index e70120875bc..4cc96a86059 100644 --- a/sdk/python/pulumi_aws/waf/_inputs.py +++ b/sdk/python/pulumi_aws/waf/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -58,11 +58,42 @@ def __init__(__self__, *, See [docs](https://docs.aws.amazon.com/waf/latest/APIReference/API_waf_ByteMatchTuple.html) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "text_transformation", text_transformation) + ByteMatchSetByteMatchTupleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + positional_constraint=positional_constraint, + text_transformation=text_transformation, + target_string=target_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional[pulumi.Input['ByteMatchSetByteMatchTupleFieldToMatchArgs']] = None, + positional_constraint: Optional[pulumi.Input[str]] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + target_string: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + if target_string is None and 'targetString' in kwargs: + target_string = kwargs['targetString'] + + _setter("field_to_match", field_to_match) + _setter("positional_constraint", positional_constraint) + _setter("text_transformation", text_transformation) if target_string is not None: - pulumi.set(__self__, "target_string", target_string) + _setter("target_string", target_string) @property @pulumi.getter(name="fieldToMatch") @@ -136,9 +167,24 @@ def __init__(__self__, *, :param pulumi.Input[str] data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + ByteMatchSetByteMatchTupleFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -180,8 +226,25 @@ def __init__(__self__, *, This is the two-letter country code, e.g., `US`, `CA`, `RU`, `CN`, etc. See [docs](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchConstraint.html) for all supported values. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GeoMatchSetGeoMatchConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -219,8 +282,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Type of the IP address - `IPV4` or `IPV6`. :param pulumi.Input[str] value: An IPv4 or IPv6 address specified via CIDR notationE.g., `192.0.2.44/32` or `1111:0000:0000:0000:0000:0000:0000:0000/64` """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + IpSetIpSetDescriptorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -261,9 +341,32 @@ def __init__(__self__, *, If set to `true`, AWS WAF will allow, block, or count requests based on all IP addresses _except_ `192.0.2.44`. :param pulumi.Input[str] type: The type of predicate in a rule. Valid values: `ByteMatch`, `GeoMatch`, `IPMatch`, `RegexMatch`, `SizeConstraint`, `SqlInjectionMatch`, or `XssMatch`. """ - pulumi.set(__self__, "data_id", data_id) - pulumi.set(__self__, "negated", negated) - pulumi.set(__self__, "type", type) + RateBasedRulePredicateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_id=data_id, + negated=negated, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_id: Optional[pulumi.Input[str]] = None, + negated: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_id is None and 'dataId' in kwargs: + data_id = kwargs['dataId'] + if data_id is None: + raise TypeError("Missing 'data_id' argument") + if negated is None: + raise TypeError("Missing 'negated' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("data_id", data_id) + _setter("negated", negated) + _setter("type", type) @property @pulumi.getter(name="dataId") @@ -319,9 +422,36 @@ def __init__(__self__, *, See [docs](http://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchTuple.html#WAF-Type-ByteMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "regex_pattern_set_id", regex_pattern_set_id) - pulumi.set(__self__, "text_transformation", text_transformation) + RegexMatchSetRegexMatchTupleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + regex_pattern_set_id=regex_pattern_set_id, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional[pulumi.Input['RegexMatchSetRegexMatchTupleFieldToMatchArgs']] = None, + regex_pattern_set_id: Optional[pulumi.Input[str]] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if regex_pattern_set_id is None and 'regexPatternSetId' in kwargs: + regex_pattern_set_id = kwargs['regexPatternSetId'] + if regex_pattern_set_id is None: + raise TypeError("Missing 'regex_pattern_set_id' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("regex_pattern_set_id", regex_pattern_set_id) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -376,9 +506,24 @@ def __init__(__self__, *, :param pulumi.Input[str] data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + RegexMatchSetRegexMatchTupleFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -420,13 +565,38 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupActivatedRuleActionArgs'] action: Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the rule. :param pulumi.Input[int] priority: Specifies the order in which the rules are evaluated. Rules with a lower value are evaluated before rules with a higher value. :param pulumi.Input[str] rule_id: The ID of a rule - :param pulumi.Input[str] type: e.g., `BLOCK`, `ALLOW`, or `COUNT` - """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_id", rule_id) + :param pulumi.Input[str] type: The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. + """ + RuleGroupActivatedRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + priority=priority, + rule_id=rule_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['RuleGroupActivatedRuleActionArgs']] = None, + priority: Optional[pulumi.Input[int]] = None, + rule_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if rule_id is None: + raise TypeError("Missing 'rule_id' argument") + + _setter("action", action) + _setter("priority", priority) + _setter("rule_id", rule_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -468,7 +638,7 @@ def rule_id(self, value: pulumi.Input[str]): @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - e.g., `BLOCK`, `ALLOW`, or `COUNT` + The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ return pulumi.get(self, "type") @@ -482,15 +652,28 @@ class RuleGroupActivatedRuleActionArgs: def __init__(__self__, *, type: pulumi.Input[str]): """ - :param pulumi.Input[str] type: e.g., `BLOCK`, `ALLOW`, or `COUNT` + :param pulumi.Input[str] type: The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ - pulumi.set(__self__, "type", type) + RuleGroupActivatedRuleActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter def type(self) -> pulumi.Input[str]: """ - e.g., `BLOCK`, `ALLOW`, or `COUNT` + The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ return pulumi.get(self, "type") @@ -513,9 +696,32 @@ def __init__(__self__, *, If set to `true`, AWS WAF will allow, block, or count requests based on all IP addresses except `192.0.2.44`. :param pulumi.Input[str] type: The type of predicate in a rule. Valid values: `ByteMatch`, `GeoMatch`, `IPMatch`, `RegexMatch`, `SizeConstraint`, `SqlInjectionMatch`, or `XssMatch`. """ - pulumi.set(__self__, "data_id", data_id) - pulumi.set(__self__, "negated", negated) - pulumi.set(__self__, "type", type) + RulePredicateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_id=data_id, + negated=negated, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_id: Optional[pulumi.Input[str]] = None, + negated: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_id is None and 'dataId' in kwargs: + data_id = kwargs['dataId'] + if data_id is None: + raise TypeError("Missing 'data_id' argument") + if negated is None: + raise TypeError("Missing 'negated' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("data_id", data_id) + _setter("negated", negated) + _setter("type", type) @property @pulumi.getter(name="dataId") @@ -578,10 +784,41 @@ def __init__(__self__, *, for all supported values. **Note:** if you choose `BODY` as `type`, you must choose `NONE` because CloudFront forwards only the first 8192 bytes for inspection. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformation", text_transformation) + SizeConstraintSetSizeConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + field_to_match=field_to_match, + size=size, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[pulumi.Input[str]] = None, + field_to_match: Optional[pulumi.Input['SizeConstraintSetSizeConstraintFieldToMatchArgs']] = None, + size: Optional[pulumi.Input[int]] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("comparison_operator", comparison_operator) + _setter("field_to_match", field_to_match) + _setter("size", size) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="comparisonOperator") @@ -653,9 +890,24 @@ def __init__(__self__, *, :param pulumi.Input[str] data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + SizeConstraintSetSizeConstraintFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -699,8 +951,29 @@ def __init__(__self__, *, See [docs](http://docs.aws.amazon.com/waf/latest/APIReference/API_SqlInjectionMatchTuple.html#WAF-Type-SqlInjectionMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "text_transformation", text_transformation) + SqlInjectionMatchSetSqlInjectionMatchTupleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatchArgs']] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -744,9 +1017,24 @@ def __init__(__self__, *, :param pulumi.Input[str] data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + SqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -785,7 +1073,20 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Specifies how you want AWS WAF to respond to requests that don't match the criteria in any of the `rules`. e.g., `ALLOW` or `BLOCK` """ - pulumi.set(__self__, "type", type) + WebAclDefaultActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -810,9 +1111,28 @@ def __init__(__self__, *, :param pulumi.Input[str] log_destination: Amazon Resource Name (ARN) of Kinesis Firehose Delivery Stream :param pulumi.Input['WebAclLoggingConfigurationRedactedFieldsArgs'] redacted_fields: Configuration block containing parts of the request that you want redacted from the logs. Detailed below. """ - pulumi.set(__self__, "log_destination", log_destination) + WebAclLoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination=log_destination, + redacted_fields=redacted_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination: Optional[pulumi.Input[str]] = None, + redacted_fields: Optional[pulumi.Input['WebAclLoggingConfigurationRedactedFieldsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if log_destination is None: + raise TypeError("Missing 'log_destination' argument") + if redacted_fields is None and 'redactedFields' in kwargs: + redacted_fields = kwargs['redactedFields'] + + _setter("log_destination", log_destination) if redacted_fields is not None: - pulumi.set(__self__, "redacted_fields", redacted_fields) + _setter("redacted_fields", redacted_fields) @property @pulumi.getter(name="logDestination") @@ -846,7 +1166,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationRedactedFieldsFieldToMatchArgs']]] field_to_matches: Set of configuration blocks for fields to redact. Detailed below. """ - pulumi.set(__self__, "field_to_matches", field_to_matches) + WebAclLoggingConfigurationRedactedFieldsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_matches=field_to_matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_matches: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationRedactedFieldsFieldToMatchArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_matches is None and 'fieldToMatches' in kwargs: + field_to_matches = kwargs['fieldToMatches'] + if field_to_matches is None: + raise TypeError("Missing 'field_to_matches' argument") + + _setter("field_to_matches", field_to_matches) @property @pulumi.getter(name="fieldToMatches") @@ -870,9 +1205,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The part of the web request that you want AWS WAF to search for a specified stringE.g., `HEADER` or `METHOD` :param pulumi.Input[str] data: When the value of `type` is `HEADER`, enter the name of the header that you want the WAF to search, for example, `User-Agent` or `Referer`. If the value of `type` is any other value, omit `data`. """ - pulumi.set(__self__, "type", type) + WebAclLoggingConfigurationRedactedFieldsFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -915,14 +1265,41 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleOverrideActionArgs'] override_action: Override the action that a group requests CloudFront or AWS WAF takes when a web request matches the conditions in the rule. Only used if `type` is `GROUP`. :param pulumi.Input[str] type: The rule type, either `REGULAR`, as defined by [Rule](http://docs.aws.amazon.com/waf/latest/APIReference/API_Rule.html), `RATE_BASED`, as defined by [RateBasedRule](http://docs.aws.amazon.com/waf/latest/APIReference/API_RateBasedRule.html), or `GROUP`, as defined by [RuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleGroup.html). The default is REGULAR. If you add a RATE_BASED rule, you need to set `type` as `RATE_BASED`. If you add a GROUP rule, you need to set `type` as `GROUP`. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_id", rule_id) + WebAclRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + rule_id=rule_id, + action=action, + override_action=override_action, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + rule_id: Optional[pulumi.Input[str]] = None, + action: Optional[pulumi.Input['WebAclRuleActionArgs']] = None, + override_action: Optional[pulumi.Input['WebAclRuleOverrideActionArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if rule_id is None: + raise TypeError("Missing 'rule_id' argument") + if override_action is None and 'overrideAction' in kwargs: + override_action = kwargs['overrideAction'] + + _setter("priority", priority) + _setter("rule_id", rule_id) if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if override_action is not None: - pulumi.set(__self__, "override_action", override_action) + _setter("override_action", override_action) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -994,7 +1371,20 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Specifies how you want AWS WAF to respond to requests that don't match the criteria in any of the `rules`. e.g., `ALLOW` or `BLOCK` """ - pulumi.set(__self__, "type", type) + WebAclRuleActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -1018,7 +1408,20 @@ def __init__(__self__, *, :param pulumi.Input[str] type: Specifies how you want AWS WAF to respond to requests that don't match the criteria in any of the `rules`. e.g., `ALLOW` or `BLOCK` """ - pulumi.set(__self__, "type", type) + WebAclRuleOverrideActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -1047,8 +1450,29 @@ def __init__(__self__, *, See [docs](http://docs.aws.amazon.com/waf/latest/APIReference/API_XssMatchTuple.html#WAF-Type-XssMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "text_transformation", text_transformation) + XssMatchSetXssMatchTupleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional[pulumi.Input['XssMatchSetXssMatchTupleFieldToMatchArgs']] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -1092,9 +1516,24 @@ def __init__(__self__, *, :param pulumi.Input[str] data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + XssMatchSetXssMatchTupleFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/waf/byte_match_set.py b/sdk/python/pulumi_aws/waf/byte_match_set.py index db289903bd5..b367c8de974 100644 --- a/sdk/python/pulumi_aws/waf/byte_match_set.py +++ b/sdk/python/pulumi_aws/waf/byte_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -25,10 +25,25 @@ def __init__(__self__, *, the location in requests that you want to search, and other settings. :param pulumi.Input[str] name: The name or description of the Byte Match Set. """ + ByteMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + byte_match_tuples=byte_match_tuples, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + byte_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['ByteMatchSetByteMatchTupleArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if byte_match_tuples is None and 'byteMatchTuples' in kwargs: + byte_match_tuples = kwargs['byteMatchTuples'] + if byte_match_tuples is not None: - pulumi.set(__self__, "byte_match_tuples", byte_match_tuples) + _setter("byte_match_tuples", byte_match_tuples) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="byteMatchTuples") @@ -69,10 +84,25 @@ def __init__(__self__, *, the location in requests that you want to search, and other settings. :param pulumi.Input[str] name: The name or description of the Byte Match Set. """ + _ByteMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + byte_match_tuples=byte_match_tuples, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + byte_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['ByteMatchSetByteMatchTupleArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if byte_match_tuples is None and 'byteMatchTuples' in kwargs: + byte_match_tuples = kwargs['byteMatchTuples'] + if byte_match_tuples is not None: - pulumi.set(__self__, "byte_match_tuples", byte_match_tuples) + _setter("byte_match_tuples", byte_match_tuples) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="byteMatchTuples") @@ -188,6 +218,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ByteMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/geo_match_set.py b/sdk/python/pulumi_aws/waf/geo_match_set.py index c72f264e3bb..138360f7eef 100644 --- a/sdk/python/pulumi_aws/waf/geo_match_set.py +++ b/sdk/python/pulumi_aws/waf/geo_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['GeoMatchSetGeoMatchConstraintArgs']]] geo_match_constraints: The GeoMatchConstraint objects which contain the country that you want AWS WAF to search for. :param pulumi.Input[str] name: The name or description of the GeoMatchSet. """ + GeoMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + geo_match_constraints=geo_match_constraints, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + geo_match_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['GeoMatchSetGeoMatchConstraintArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if geo_match_constraints is None and 'geoMatchConstraints' in kwargs: + geo_match_constraints = kwargs['geoMatchConstraints'] + if geo_match_constraints is not None: - pulumi.set(__self__, "geo_match_constraints", geo_match_constraints) + _setter("geo_match_constraints", geo_match_constraints) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="geoMatchConstraints") @@ -65,12 +80,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['GeoMatchSetGeoMatchConstraintArgs']]] geo_match_constraints: The GeoMatchConstraint objects which contain the country that you want AWS WAF to search for. :param pulumi.Input[str] name: The name or description of the GeoMatchSet. """ + _GeoMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + geo_match_constraints=geo_match_constraints, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + geo_match_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['GeoMatchSetGeoMatchConstraintArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if geo_match_constraints is None and 'geoMatchConstraints' in kwargs: + geo_match_constraints = kwargs['geoMatchConstraints'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if geo_match_constraints is not None: - pulumi.set(__self__, "geo_match_constraints", geo_match_constraints) + _setter("geo_match_constraints", geo_match_constraints) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -196,6 +228,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GeoMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/get_ipset.py b/sdk/python/pulumi_aws/waf/get_ipset.py index c1bb9838040..ee1d2f8b1b9 100644 --- a/sdk/python/pulumi_aws/waf/get_ipset.py +++ b/sdk/python/pulumi_aws/waf/get_ipset.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/waf/get_rate_based_rule.py b/sdk/python/pulumi_aws/waf/get_rate_based_rule.py index 6461680d772..9088fadc92a 100644 --- a/sdk/python/pulumi_aws/waf/get_rate_based_rule.py +++ b/sdk/python/pulumi_aws/waf/get_rate_based_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/waf/get_rule.py b/sdk/python/pulumi_aws/waf/get_rule.py index 9edb42c4ccd..6a90359b557 100644 --- a/sdk/python/pulumi_aws/waf/get_rule.py +++ b/sdk/python/pulumi_aws/waf/get_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/waf/get_subscribed_rule_group.py b/sdk/python/pulumi_aws/waf/get_subscribed_rule_group.py index 9e692d5d3e0..c46c9be607f 100644 --- a/sdk/python/pulumi_aws/waf/get_subscribed_rule_group.py +++ b/sdk/python/pulumi_aws/waf/get_subscribed_rule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/waf/get_web_acl.py b/sdk/python/pulumi_aws/waf/get_web_acl.py index 5f161da1baa..19dff2ea6a0 100644 --- a/sdk/python/pulumi_aws/waf/get_web_acl.py +++ b/sdk/python/pulumi_aws/waf/get_web_acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/waf/ip_set.py b/sdk/python/pulumi_aws/waf/ip_set.py index adbfb7d8b86..6b2b0140ec2 100644 --- a/sdk/python/pulumi_aws/waf/ip_set.py +++ b/sdk/python/pulumi_aws/waf/ip_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['IpSetIpSetDescriptorArgs']]] ip_set_descriptors: One or more pairs specifying the IP address type (IPV4 or IPV6) and the IP address range (in CIDR format) from which web requests originate. :param pulumi.Input[str] name: The name or description of the IPSet. """ + IpSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set_descriptors=ip_set_descriptors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set_descriptors: Optional[pulumi.Input[Sequence[pulumi.Input['IpSetIpSetDescriptorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set_descriptors is None and 'ipSetDescriptors' in kwargs: + ip_set_descriptors = kwargs['ipSetDescriptors'] + if ip_set_descriptors is not None: - pulumi.set(__self__, "ip_set_descriptors", ip_set_descriptors) + _setter("ip_set_descriptors", ip_set_descriptors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="ipSetDescriptors") @@ -65,12 +80,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['IpSetIpSetDescriptorArgs']]] ip_set_descriptors: One or more pairs specifying the IP address type (IPV4 or IPV6) and the IP address range (in CIDR format) from which web requests originate. :param pulumi.Input[str] name: The name or description of the IPSet. """ + _IpSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_descriptors=ip_set_descriptors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + ip_set_descriptors: Optional[pulumi.Input[Sequence[pulumi.Input['IpSetIpSetDescriptorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set_descriptors is None and 'ipSetDescriptors' in kwargs: + ip_set_descriptors = kwargs['ipSetDescriptors'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if ip_set_descriptors is not None: - pulumi.set(__self__, "ip_set_descriptors", ip_set_descriptors) + _setter("ip_set_descriptors", ip_set_descriptors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -196,6 +228,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IpSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/outputs.py b/sdk/python/pulumi_aws/waf/outputs.py index 610f9cda8d6..4e16e7bfa87 100644 --- a/sdk/python/pulumi_aws/waf/outputs.py +++ b/sdk/python/pulumi_aws/waf/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -82,11 +82,42 @@ def __init__(__self__, *, See [docs](https://docs.aws.amazon.com/waf/latest/APIReference/API_waf_ByteMatchTuple.html) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "text_transformation", text_transformation) + ByteMatchSetByteMatchTuple._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + positional_constraint=positional_constraint, + text_transformation=text_transformation, + target_string=target_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional['outputs.ByteMatchSetByteMatchTupleFieldToMatch'] = None, + positional_constraint: Optional[str] = None, + text_transformation: Optional[str] = None, + target_string: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + if target_string is None and 'targetString' in kwargs: + target_string = kwargs['targetString'] + + _setter("field_to_match", field_to_match) + _setter("positional_constraint", positional_constraint) + _setter("text_transformation", text_transformation) if target_string is not None: - pulumi.set(__self__, "target_string", target_string) + _setter("target_string", target_string) @property @pulumi.getter(name="fieldToMatch") @@ -144,9 +175,24 @@ def __init__(__self__, *, :param str data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + ByteMatchSetByteMatchTupleFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -180,8 +226,25 @@ def __init__(__self__, *, This is the two-letter country code, e.g., `US`, `CA`, `RU`, `CN`, etc. See [docs](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchConstraint.html) for all supported values. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GeoMatchSetGeoMatchConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -211,8 +274,25 @@ def __init__(__self__, *, :param str type: Type of the IP address - `IPV4` or `IPV6`. :param str value: An IPv4 or IPv6 address specified via CIDR notationE.g., `192.0.2.44/32` or `1111:0000:0000:0000:0000:0000:0000:0000/64` """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + IpSetIpSetDescriptor._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -262,9 +342,32 @@ def __init__(__self__, *, If set to `true`, AWS WAF will allow, block, or count requests based on all IP addresses _except_ `192.0.2.44`. :param str type: The type of predicate in a rule. Valid values: `ByteMatch`, `GeoMatch`, `IPMatch`, `RegexMatch`, `SizeConstraint`, `SqlInjectionMatch`, or `XssMatch`. """ - pulumi.set(__self__, "data_id", data_id) - pulumi.set(__self__, "negated", negated) - pulumi.set(__self__, "type", type) + RateBasedRulePredicate._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_id=data_id, + negated=negated, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_id: Optional[str] = None, + negated: Optional[bool] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_id is None and 'dataId' in kwargs: + data_id = kwargs['dataId'] + if data_id is None: + raise TypeError("Missing 'data_id' argument") + if negated is None: + raise TypeError("Missing 'negated' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("data_id", data_id) + _setter("negated", negated) + _setter("type", type) @property @pulumi.getter(name="dataId") @@ -329,9 +432,36 @@ def __init__(__self__, *, See [docs](http://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchTuple.html#WAF-Type-ByteMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "regex_pattern_set_id", regex_pattern_set_id) - pulumi.set(__self__, "text_transformation", text_transformation) + RegexMatchSetRegexMatchTuple._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + regex_pattern_set_id=regex_pattern_set_id, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional['outputs.RegexMatchSetRegexMatchTupleFieldToMatch'] = None, + regex_pattern_set_id: Optional[str] = None, + text_transformation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if regex_pattern_set_id is None and 'regexPatternSetId' in kwargs: + regex_pattern_set_id = kwargs['regexPatternSetId'] + if regex_pattern_set_id is None: + raise TypeError("Missing 'regex_pattern_set_id' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("regex_pattern_set_id", regex_pattern_set_id) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -374,9 +504,24 @@ def __init__(__self__, *, :param str data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + RegexMatchSetRegexMatchTupleFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -427,13 +572,38 @@ def __init__(__self__, *, :param 'RuleGroupActivatedRuleActionArgs' action: Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the rule. :param int priority: Specifies the order in which the rules are evaluated. Rules with a lower value are evaluated before rules with a higher value. :param str rule_id: The ID of a rule - :param str type: e.g., `BLOCK`, `ALLOW`, or `COUNT` - """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_id", rule_id) + :param str type: The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. + """ + RuleGroupActivatedRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + priority=priority, + rule_id=rule_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.RuleGroupActivatedRuleAction'] = None, + priority: Optional[int] = None, + rule_id: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if rule_id is None: + raise TypeError("Missing 'rule_id' argument") + + _setter("action", action) + _setter("priority", priority) + _setter("rule_id", rule_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -463,7 +633,7 @@ def rule_id(self) -> str: @pulumi.getter def type(self) -> Optional[str]: """ - e.g., `BLOCK`, `ALLOW`, or `COUNT` + The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ return pulumi.get(self, "type") @@ -473,15 +643,28 @@ class RuleGroupActivatedRuleAction(dict): def __init__(__self__, *, type: str): """ - :param str type: e.g., `BLOCK`, `ALLOW`, or `COUNT` + :param str type: The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ - pulumi.set(__self__, "type", type) + RuleGroupActivatedRuleAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter def type(self) -> str: """ - e.g., `BLOCK`, `ALLOW`, or `COUNT` + The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ return pulumi.get(self, "type") @@ -517,9 +700,32 @@ def __init__(__self__, *, If set to `true`, AWS WAF will allow, block, or count requests based on all IP addresses except `192.0.2.44`. :param str type: The type of predicate in a rule. Valid values: `ByteMatch`, `GeoMatch`, `IPMatch`, `RegexMatch`, `SizeConstraint`, `SqlInjectionMatch`, or `XssMatch`. """ - pulumi.set(__self__, "data_id", data_id) - pulumi.set(__self__, "negated", negated) - pulumi.set(__self__, "type", type) + RulePredicate._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_id=data_id, + negated=negated, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_id: Optional[str] = None, + negated: Optional[bool] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_id is None and 'dataId' in kwargs: + data_id = kwargs['dataId'] + if data_id is None: + raise TypeError("Missing 'data_id' argument") + if negated is None: + raise TypeError("Missing 'negated' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("data_id", data_id) + _setter("negated", negated) + _setter("type", type) @property @pulumi.getter(name="dataId") @@ -591,10 +797,41 @@ def __init__(__self__, *, for all supported values. **Note:** if you choose `BODY` as `type`, you must choose `NONE` because CloudFront forwards only the first 8192 bytes for inspection. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformation", text_transformation) + SizeConstraintSetSizeConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + field_to_match=field_to_match, + size=size, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[str] = None, + field_to_match: Optional['outputs.SizeConstraintSetSizeConstraintFieldToMatch'] = None, + size: Optional[int] = None, + text_transformation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("comparison_operator", comparison_operator) + _setter("field_to_match", field_to_match) + _setter("size", size) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="comparisonOperator") @@ -650,9 +887,24 @@ def __init__(__self__, *, :param str data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + SizeConstraintSetSizeConstraintFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -707,8 +959,29 @@ def __init__(__self__, *, See [docs](http://docs.aws.amazon.com/waf/latest/APIReference/API_SqlInjectionMatchTuple.html#WAF-Type-SqlInjectionMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "text_transformation", text_transformation) + SqlInjectionMatchSetSqlInjectionMatchTuple._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional['outputs.SqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatch'] = None, + text_transformation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -744,9 +1017,24 @@ def __init__(__self__, *, :param str data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + SqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -777,7 +1065,20 @@ def __init__(__self__, *, :param str type: Specifies how you want AWS WAF to respond to requests that don't match the criteria in any of the `rules`. e.g., `ALLOW` or `BLOCK` """ - pulumi.set(__self__, "type", type) + WebAclDefaultAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -817,9 +1118,28 @@ def __init__(__self__, *, :param str log_destination: Amazon Resource Name (ARN) of Kinesis Firehose Delivery Stream :param 'WebAclLoggingConfigurationRedactedFieldsArgs' redacted_fields: Configuration block containing parts of the request that you want redacted from the logs. Detailed below. """ - pulumi.set(__self__, "log_destination", log_destination) + WebAclLoggingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination=log_destination, + redacted_fields=redacted_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination: Optional[str] = None, + redacted_fields: Optional['outputs.WebAclLoggingConfigurationRedactedFields'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if log_destination is None: + raise TypeError("Missing 'log_destination' argument") + if redacted_fields is None and 'redactedFields' in kwargs: + redacted_fields = kwargs['redactedFields'] + + _setter("log_destination", log_destination) if redacted_fields is not None: - pulumi.set(__self__, "redacted_fields", redacted_fields) + _setter("redacted_fields", redacted_fields) @property @pulumi.getter(name="logDestination") @@ -862,7 +1182,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclLoggingConfigurationRedactedFieldsFieldToMatchArgs'] field_to_matches: Set of configuration blocks for fields to redact. Detailed below. """ - pulumi.set(__self__, "field_to_matches", field_to_matches) + WebAclLoggingConfigurationRedactedFields._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_matches=field_to_matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_matches: Optional[Sequence['outputs.WebAclLoggingConfigurationRedactedFieldsFieldToMatch']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_matches is None and 'fieldToMatches' in kwargs: + field_to_matches = kwargs['fieldToMatches'] + if field_to_matches is None: + raise TypeError("Missing 'field_to_matches' argument") + + _setter("field_to_matches", field_to_matches) @property @pulumi.getter(name="fieldToMatches") @@ -882,9 +1217,24 @@ def __init__(__self__, *, :param str type: The part of the web request that you want AWS WAF to search for a specified stringE.g., `HEADER` or `METHOD` :param str data: When the value of `type` is `HEADER`, enter the name of the header that you want the WAF to search, for example, `User-Agent` or `Referer`. If the value of `type` is any other value, omit `data`. """ - pulumi.set(__self__, "type", type) + WebAclLoggingConfigurationRedactedFieldsFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -938,14 +1288,41 @@ def __init__(__self__, *, :param 'WebAclRuleOverrideActionArgs' override_action: Override the action that a group requests CloudFront or AWS WAF takes when a web request matches the conditions in the rule. Only used if `type` is `GROUP`. :param str type: The rule type, either `REGULAR`, as defined by [Rule](http://docs.aws.amazon.com/waf/latest/APIReference/API_Rule.html), `RATE_BASED`, as defined by [RateBasedRule](http://docs.aws.amazon.com/waf/latest/APIReference/API_RateBasedRule.html), or `GROUP`, as defined by [RuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleGroup.html). The default is REGULAR. If you add a RATE_BASED rule, you need to set `type` as `RATE_BASED`. If you add a GROUP rule, you need to set `type` as `GROUP`. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_id", rule_id) + WebAclRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + rule_id=rule_id, + action=action, + override_action=override_action, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + rule_id: Optional[str] = None, + action: Optional['outputs.WebAclRuleAction'] = None, + override_action: Optional['outputs.WebAclRuleOverrideAction'] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if rule_id is None: + raise TypeError("Missing 'rule_id' argument") + if override_action is None and 'overrideAction' in kwargs: + override_action = kwargs['overrideAction'] + + _setter("priority", priority) + _setter("rule_id", rule_id) if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if override_action is not None: - pulumi.set(__self__, "override_action", override_action) + _setter("override_action", override_action) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -997,7 +1374,20 @@ def __init__(__self__, *, :param str type: Specifies how you want AWS WAF to respond to requests that don't match the criteria in any of the `rules`. e.g., `ALLOW` or `BLOCK` """ - pulumi.set(__self__, "type", type) + WebAclRuleAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -1017,7 +1407,20 @@ def __init__(__self__, *, :param str type: Specifies how you want AWS WAF to respond to requests that don't match the criteria in any of the `rules`. e.g., `ALLOW` or `BLOCK` """ - pulumi.set(__self__, "type", type) + WebAclRuleOverrideAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -1061,8 +1464,29 @@ def __init__(__self__, *, See [docs](http://docs.aws.amazon.com/waf/latest/APIReference/API_XssMatchTuple.html#WAF-Type-XssMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "text_transformation", text_transformation) + XssMatchSetXssMatchTuple._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional['outputs.XssMatchSetXssMatchTupleFieldToMatch'] = None, + text_transformation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -1098,9 +1522,24 @@ def __init__(__self__, *, :param str data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + XssMatchSetXssMatchTupleFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/waf/rate_based_rule.py b/sdk/python/pulumi_aws/waf/rate_based_rule.py index 51cdc722248..3f9ccc722fc 100644 --- a/sdk/python/pulumi_aws/waf/rate_based_rule.py +++ b/sdk/python/pulumi_aws/waf/rate_based_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,48 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RateBasedRulePredicateArgs']]] predicates: The objects to include in a rule (documented below). :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. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "rate_key", rate_key) - pulumi.set(__self__, "rate_limit", rate_limit) + RateBasedRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + rate_key=rate_key, + rate_limit=rate_limit, + name=name, + predicates=predicates, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + rate_key: Optional[pulumi.Input[str]] = None, + rate_limit: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + predicates: Optional[pulumi.Input[Sequence[pulumi.Input['RateBasedRulePredicateArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if rate_key is None and 'rateKey' in kwargs: + rate_key = kwargs['rateKey'] + if rate_key is None: + raise TypeError("Missing 'rate_key' argument") + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + if rate_limit is None: + raise TypeError("Missing 'rate_limit' argument") + + _setter("metric_name", metric_name) + _setter("rate_key", rate_key) + _setter("rate_limit", rate_limit) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicates is not None: - pulumi.set(__self__, "predicates", predicates) + _setter("predicates", predicates) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="metricName") @@ -136,25 +169,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RateBasedRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + metric_name=metric_name, + name=name, + predicates=predicates, + rate_key=rate_key, + rate_limit=rate_limit, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + predicates: Optional[pulumi.Input[Sequence[pulumi.Input['RateBasedRulePredicateArgs']]]] = None, + rate_key: Optional[pulumi.Input[str]] = None, + rate_limit: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if rate_key is None and 'rateKey' in kwargs: + rate_key = kwargs['rateKey'] + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicates is not None: - pulumi.set(__self__, "predicates", predicates) + _setter("predicates", predicates) if rate_key is not None: - pulumi.set(__self__, "rate_key", rate_key) + _setter("rate_key", rate_key) if rate_limit is not None: - pulumi.set(__self__, "rate_limit", rate_limit) + _setter("rate_limit", rate_limit) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -359,6 +425,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RateBasedRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/regex_match_set.py b/sdk/python/pulumi_aws/waf/regex_match_set.py index ef51971e1db..284f256ac83 100644 --- a/sdk/python/pulumi_aws/waf/regex_match_set.py +++ b/sdk/python/pulumi_aws/waf/regex_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Regex Match Set. :param pulumi.Input[Sequence[pulumi.Input['RegexMatchSetRegexMatchTupleArgs']]] regex_match_tuples: The regular expression pattern that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings. See below. """ + RegexMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + regex_match_tuples=regex_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + regex_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['RegexMatchSetRegexMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_match_tuples is None and 'regexMatchTuples' in kwargs: + regex_match_tuples = kwargs['regexMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regex_match_tuples is not None: - pulumi.set(__self__, "regex_match_tuples", regex_match_tuples) + _setter("regex_match_tuples", regex_match_tuples) @property @pulumi.getter @@ -65,12 +80,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Regex Match Set. :param pulumi.Input[Sequence[pulumi.Input['RegexMatchSetRegexMatchTupleArgs']]] regex_match_tuples: The regular expression pattern that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings. See below. """ + _RegexMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + regex_match_tuples=regex_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + regex_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['RegexMatchSetRegexMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_match_tuples is None and 'regexMatchTuples' in kwargs: + regex_match_tuples = kwargs['regexMatchTuples'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regex_match_tuples is not None: - pulumi.set(__self__, "regex_match_tuples", regex_match_tuples) + _setter("regex_match_tuples", regex_match_tuples) @property @pulumi.getter @@ -200,6 +232,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegexMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/regex_pattern_set.py b/sdk/python/pulumi_aws/waf/regex_pattern_set.py index 653b7a9c73b..6dd72cf02a9 100644 --- a/sdk/python/pulumi_aws/waf/regex_pattern_set.py +++ b/sdk/python/pulumi_aws/waf/regex_pattern_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RegexPatternSetArgs', 'RegexPatternSet'] @@ -21,10 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Regex Pattern Set. :param pulumi.Input[Sequence[pulumi.Input[str]]] regex_pattern_strings: A list of regular expression (regex) patterns that you want AWS WAF to search for, such as `B[a@]dB[o0]t`. """ + RegexPatternSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + regex_pattern_strings=regex_pattern_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + regex_pattern_strings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_pattern_strings is None and 'regexPatternStrings' in kwargs: + regex_pattern_strings = kwargs['regexPatternStrings'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regex_pattern_strings is not None: - pulumi.set(__self__, "regex_pattern_strings", regex_pattern_strings) + _setter("regex_pattern_strings", regex_pattern_strings) @property @pulumi.getter @@ -63,12 +78,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Regex Pattern Set. :param pulumi.Input[Sequence[pulumi.Input[str]]] regex_pattern_strings: A list of regular expression (regex) patterns that you want AWS WAF to search for, such as `B[a@]dB[o0]t`. """ + _RegexPatternSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + regex_pattern_strings=regex_pattern_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + regex_pattern_strings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_pattern_strings is None and 'regexPatternStrings' in kwargs: + regex_pattern_strings = kwargs['regexPatternStrings'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regex_pattern_strings is not None: - pulumi.set(__self__, "regex_pattern_strings", regex_pattern_strings) + _setter("regex_pattern_strings", regex_pattern_strings) @property @pulumi.getter @@ -182,6 +214,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegexPatternSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/rule.py b/sdk/python/pulumi_aws/waf/rule.py index 1e3bab2d4d9..ad0a920ad20 100644 --- a/sdk/python/pulumi_aws/waf/rule.py +++ b/sdk/python/pulumi_aws/waf/rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RulePredicateArgs']]] predicates: The objects to include in a rule (documented below). :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. """ - pulumi.set(__self__, "metric_name", metric_name) + RuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + name=name, + predicates=predicates, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + predicates: Optional[pulumi.Input[Sequence[pulumi.Input['RulePredicateArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicates is not None: - pulumi.set(__self__, "predicates", predicates) + _setter("predicates", predicates) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="metricName") @@ -102,21 +123,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + metric_name=metric_name, + name=name, + predicates=predicates, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + predicates: Optional[pulumi.Input[Sequence[pulumi.Input['RulePredicateArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicates is not None: - pulumi.set(__self__, "predicates", predicates) + _setter("predicates", predicates) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -289,6 +335,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/rule_group.py b/sdk/python/pulumi_aws/waf/rule_group.py index c2f44b637d0..a5473628d5a 100644 --- a/sdk/python/pulumi_aws/waf/rule_group.py +++ b/sdk/python/pulumi_aws/waf/rule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,36 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the rule group. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. :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. """ - pulumi.set(__self__, "metric_name", metric_name) + RuleGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + activated_rules=activated_rules, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + activated_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupActivatedRuleArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if activated_rules is None and 'activatedRules' in kwargs: + activated_rules = kwargs['activatedRules'] + + _setter("metric_name", metric_name) if activated_rules is not None: - pulumi.set(__self__, "activated_rules", activated_rules) + _setter("activated_rules", activated_rules) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="metricName") @@ -102,21 +125,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RuleGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + activated_rules=activated_rules, + arn=arn, + metric_name=metric_name, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activated_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupActivatedRuleArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activated_rules is None and 'activatedRules' in kwargs: + activated_rules = kwargs['activatedRules'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if activated_rules is not None: - pulumi.set(__self__, "activated_rules", activated_rules) + _setter("activated_rules", activated_rules) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="activatedRules") @@ -285,6 +335,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RuleGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/size_constraint_set.py b/sdk/python/pulumi_aws/waf/size_constraint_set.py index 6e92a5ef720..ee5f516894e 100644 --- a/sdk/python/pulumi_aws/waf/size_constraint_set.py +++ b/sdk/python/pulumi_aws/waf/size_constraint_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Size Constraint Set. :param pulumi.Input[Sequence[pulumi.Input['SizeConstraintSetSizeConstraintArgs']]] size_constraints: Specifies the parts of web requests that you want to inspect the size of. """ + SizeConstraintSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + size_constraints=size_constraints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + size_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['SizeConstraintSetSizeConstraintArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size_constraints is None and 'sizeConstraints' in kwargs: + size_constraints = kwargs['sizeConstraints'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if size_constraints is not None: - pulumi.set(__self__, "size_constraints", size_constraints) + _setter("size_constraints", size_constraints) @property @pulumi.getter @@ -65,12 +80,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Size Constraint Set. :param pulumi.Input[Sequence[pulumi.Input['SizeConstraintSetSizeConstraintArgs']]] size_constraints: Specifies the parts of web requests that you want to inspect the size of. """ + _SizeConstraintSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + size_constraints=size_constraints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + size_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['SizeConstraintSetSizeConstraintArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size_constraints is None and 'sizeConstraints' in kwargs: + size_constraints = kwargs['sizeConstraints'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if size_constraints is not None: - pulumi.set(__self__, "size_constraints", size_constraints) + _setter("size_constraints", size_constraints) @property @pulumi.getter @@ -192,6 +224,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SizeConstraintSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/sql_injection_match_set.py b/sdk/python/pulumi_aws/waf/sql_injection_match_set.py index 5216b7fa24f..f0feb705a54 100644 --- a/sdk/python/pulumi_aws/waf/sql_injection_match_set.py +++ b/sdk/python/pulumi_aws/waf/sql_injection_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the SQL Injection Match Set. :param pulumi.Input[Sequence[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleArgs']]] sql_injection_match_tuples: The parts of web requests that you want AWS WAF to inspect for malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header. """ + SqlInjectionMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_injection_match_tuples=sql_injection_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + sql_injection_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sql_injection_match_tuples is None and 'sqlInjectionMatchTuples' in kwargs: + sql_injection_match_tuples = kwargs['sqlInjectionMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sql_injection_match_tuples is not None: - pulumi.set(__self__, "sql_injection_match_tuples", sql_injection_match_tuples) + _setter("sql_injection_match_tuples", sql_injection_match_tuples) @property @pulumi.getter @@ -63,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the SQL Injection Match Set. :param pulumi.Input[Sequence[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleArgs']]] sql_injection_match_tuples: The parts of web requests that you want AWS WAF to inspect for malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header. """ + _SqlInjectionMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_injection_match_tuples=sql_injection_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + sql_injection_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sql_injection_match_tuples is None and 'sqlInjectionMatchTuples' in kwargs: + sql_injection_match_tuples = kwargs['sqlInjectionMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sql_injection_match_tuples is not None: - pulumi.set(__self__, "sql_injection_match_tuples", sql_injection_match_tuples) + _setter("sql_injection_match_tuples", sql_injection_match_tuples) @property @pulumi.getter @@ -172,6 +202,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SqlInjectionMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/waf/web_acl.py b/sdk/python/pulumi_aws/waf/web_acl.py index eef1c5291f2..ce63ccdbea7 100644 --- a/sdk/python/pulumi_aws/waf/web_acl.py +++ b/sdk/python/pulumi_aws/waf/web_acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,47 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleArgs']]] rules: Configuration blocks containing rules to associate with the web ACL and the settings for each rule. Detailed below. :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. """ - pulumi.set(__self__, "default_action", default_action) - pulumi.set(__self__, "metric_name", metric_name) + WebAclArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_action=default_action, + metric_name=metric_name, + logging_configuration=logging_configuration, + name=name, + rules=rules, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_action: Optional[pulumi.Input['WebAclDefaultActionArgs']] = None, + metric_name: Optional[pulumi.Input[str]] = None, + logging_configuration: Optional[pulumi.Input['WebAclLoggingConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if default_action is None: + raise TypeError("Missing 'default_action' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + + _setter("default_action", default_action) + _setter("metric_name", metric_name) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultAction") @@ -137,25 +168,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _WebAclState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_action=default_action, + logging_configuration=logging_configuration, + metric_name=metric_name, + name=name, + rules=rules, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_action: Optional[pulumi.Input['WebAclDefaultActionArgs']] = None, + logging_configuration: Optional[pulumi.Input['WebAclLoggingConfigurationArgs']] = None, + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_action is not None: - pulumi.set(__self__, "default_action", default_action) + _setter("default_action", default_action) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -440,6 +504,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebAclArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -460,9 +528,11 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = WebAclArgs.__new__(WebAclArgs) + default_action = _utilities.configure(default_action, WebAclDefaultActionArgs, True) if default_action is None and not opts.urn: raise TypeError("Missing required property 'default_action'") __props__.__dict__["default_action"] = default_action + logging_configuration = _utilities.configure(logging_configuration, WebAclLoggingConfigurationArgs, True) __props__.__dict__["logging_configuration"] = logging_configuration if metric_name is None and not opts.urn: raise TypeError("Missing required property 'metric_name'") diff --git a/sdk/python/pulumi_aws/waf/xss_match_set.py b/sdk/python/pulumi_aws/waf/xss_match_set.py index f61c53d1590..f54a6549967 100644 --- a/sdk/python/pulumi_aws/waf/xss_match_set.py +++ b/sdk/python/pulumi_aws/waf/xss_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the SizeConstraintSet. :param pulumi.Input[Sequence[pulumi.Input['XssMatchSetXssMatchTupleArgs']]] xss_match_tuples: The parts of web requests that you want to inspect for cross-site scripting attacks. """ + XssMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + xss_match_tuples=xss_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + xss_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['XssMatchSetXssMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if xss_match_tuples is None and 'xssMatchTuples' in kwargs: + xss_match_tuples = kwargs['xssMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if xss_match_tuples is not None: - pulumi.set(__self__, "xss_match_tuples", xss_match_tuples) + _setter("xss_match_tuples", xss_match_tuples) @property @pulumi.getter @@ -65,12 +80,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the SizeConstraintSet. :param pulumi.Input[Sequence[pulumi.Input['XssMatchSetXssMatchTupleArgs']]] xss_match_tuples: The parts of web requests that you want to inspect for cross-site scripting attacks. """ + _XssMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + xss_match_tuples=xss_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + xss_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['XssMatchSetXssMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if xss_match_tuples is None and 'xssMatchTuples' in kwargs: + xss_match_tuples = kwargs['xssMatchTuples'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if xss_match_tuples is not None: - pulumi.set(__self__, "xss_match_tuples", xss_match_tuples) + _setter("xss_match_tuples", xss_match_tuples) @property @pulumi.getter @@ -204,6 +236,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + XssMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/_inputs.py b/sdk/python/pulumi_aws/wafregional/_inputs.py index 9f9c4cf9cc0..1ad7275b869 100644 --- a/sdk/python/pulumi_aws/wafregional/_inputs.py +++ b/sdk/python/pulumi_aws/wafregional/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -50,11 +50,42 @@ def __init__(__self__, *, FieldToMatch(field_to_match) support following: :param pulumi.Input[str] target_string: The value that you want AWS WAF to search for. The maximum length of the value is 50 bytes. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "text_transformation", text_transformation) + ByteMatchSetByteMatchTupleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + positional_constraint=positional_constraint, + text_transformation=text_transformation, + target_string=target_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional[pulumi.Input['ByteMatchSetByteMatchTupleFieldToMatchArgs']] = None, + positional_constraint: Optional[pulumi.Input[str]] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + target_string: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + if target_string is None and 'targetString' in kwargs: + target_string = kwargs['targetString'] + + _setter("field_to_match", field_to_match) + _setter("positional_constraint", positional_constraint) + _setter("text_transformation", text_transformation) if target_string is not None: - pulumi.set(__self__, "target_string", target_string) + _setter("target_string", target_string) @property @pulumi.getter(name="fieldToMatch") @@ -116,9 +147,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The part of the web request that you want AWS WAF to search for a specified string. :param pulumi.Input[str] data: When the value of Type is HEADER, enter the name of the header that you want AWS WAF to search, for example, User-Agent or Referer. If the value of Type is any other value, omit Data. """ - pulumi.set(__self__, "type", type) + ByteMatchSetByteMatchTupleFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -156,8 +202,25 @@ def __init__(__self__, *, This is the two-letter country code, e.g., `US`, `CA`, `RU`, `CN`, etc. See [docs](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchConstraint.html) for all supported values. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GeoMatchSetGeoMatchConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -195,8 +258,25 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The string like IPV4 or IPV6. :param pulumi.Input[str] value: The CIDR notation. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + IpSetIpSetDescriptorArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -237,9 +317,32 @@ def __init__(__self__, *, If set to `true`, AWS WAF will allow, block, or count requests based on all IP addresses _except_ `192.0.2.44`. :param pulumi.Input[str] type: The type of predicate in a rule. Valid values: `ByteMatch`, `GeoMatch`, `IPMatch`, `RegexMatch`, `SizeConstraint`, `SqlInjectionMatch`, or `XssMatch`. """ - pulumi.set(__self__, "data_id", data_id) - pulumi.set(__self__, "negated", negated) - pulumi.set(__self__, "type", type) + RateBasedRulePredicateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_id=data_id, + negated=negated, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_id: Optional[pulumi.Input[str]] = None, + negated: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_id is None and 'dataId' in kwargs: + data_id = kwargs['dataId'] + if data_id is None: + raise TypeError("Missing 'data_id' argument") + if negated is None: + raise TypeError("Missing 'negated' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("data_id", data_id) + _setter("negated", negated) + _setter("type", type) @property @pulumi.getter(name="dataId") @@ -295,9 +398,36 @@ def __init__(__self__, *, See [docs](http://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchTuple.html#WAF-Type-ByteMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "regex_pattern_set_id", regex_pattern_set_id) - pulumi.set(__self__, "text_transformation", text_transformation) + RegexMatchSetRegexMatchTupleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + regex_pattern_set_id=regex_pattern_set_id, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional[pulumi.Input['RegexMatchSetRegexMatchTupleFieldToMatchArgs']] = None, + regex_pattern_set_id: Optional[pulumi.Input[str]] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if regex_pattern_set_id is None and 'regexPatternSetId' in kwargs: + regex_pattern_set_id = kwargs['regexPatternSetId'] + if regex_pattern_set_id is None: + raise TypeError("Missing 'regex_pattern_set_id' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("regex_pattern_set_id", regex_pattern_set_id) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -352,9 +482,24 @@ def __init__(__self__, *, :param pulumi.Input[str] data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + RegexMatchSetRegexMatchTupleFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -396,13 +541,38 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupActivatedRuleActionArgs'] action: Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the rule. :param pulumi.Input[int] priority: Specifies the order in which the rules are evaluated. Rules with a lower value are evaluated before rules with a higher value. :param pulumi.Input[str] rule_id: The ID of a rule - :param pulumi.Input[str] type: e.g., `BLOCK`, `ALLOW`, or `COUNT` - """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_id", rule_id) + :param pulumi.Input[str] type: The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. + """ + RuleGroupActivatedRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + priority=priority, + rule_id=rule_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['RuleGroupActivatedRuleActionArgs']] = None, + priority: Optional[pulumi.Input[int]] = None, + rule_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if rule_id is None: + raise TypeError("Missing 'rule_id' argument") + + _setter("action", action) + _setter("priority", priority) + _setter("rule_id", rule_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -444,7 +614,7 @@ def rule_id(self, value: pulumi.Input[str]): @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - e.g., `BLOCK`, `ALLOW`, or `COUNT` + The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ return pulumi.get(self, "type") @@ -458,15 +628,28 @@ class RuleGroupActivatedRuleActionArgs: def __init__(__self__, *, type: pulumi.Input[str]): """ - :param pulumi.Input[str] type: e.g., `BLOCK`, `ALLOW`, or `COUNT` + :param pulumi.Input[str] type: The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ - pulumi.set(__self__, "type", type) + RuleGroupActivatedRuleActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter def type(self) -> pulumi.Input[str]: """ - e.g., `BLOCK`, `ALLOW`, or `COUNT` + The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ return pulumi.get(self, "type") @@ -481,9 +664,32 @@ def __init__(__self__, *, data_id: pulumi.Input[str], negated: pulumi.Input[bool], type: pulumi.Input[str]): - pulumi.set(__self__, "data_id", data_id) - pulumi.set(__self__, "negated", negated) - pulumi.set(__self__, "type", type) + RulePredicateArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_id=data_id, + negated=negated, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_id: Optional[pulumi.Input[str]] = None, + negated: Optional[pulumi.Input[bool]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_id is None and 'dataId' in kwargs: + data_id = kwargs['dataId'] + if data_id is None: + raise TypeError("Missing 'data_id' argument") + if negated is None: + raise TypeError("Missing 'negated' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("data_id", data_id) + _setter("negated", negated) + _setter("type", type) @property @pulumi.getter(name="dataId") @@ -534,10 +740,41 @@ def __init__(__self__, *, for all supported values. **Note:** if you choose `BODY` as `type`, you must choose `NONE` because CloudFront forwards only the first 8192 bytes for inspection. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformation", text_transformation) + SizeConstraintSetSizeConstraintArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + field_to_match=field_to_match, + size=size, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[pulumi.Input[str]] = None, + field_to_match: Optional[pulumi.Input['SizeConstraintSetSizeConstraintFieldToMatchArgs']] = None, + size: Optional[pulumi.Input[int]] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("comparison_operator", comparison_operator) + _setter("field_to_match", field_to_match) + _setter("size", size) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="comparisonOperator") @@ -609,9 +846,24 @@ def __init__(__self__, *, :param pulumi.Input[str] data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + SizeConstraintSetSizeConstraintFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -655,8 +907,29 @@ def __init__(__self__, *, See [docs](https://docs.aws.amazon.com/waf/latest/APIReference/API_regional_SqlInjectionMatchTuple.html#WAF-Type-regional_SqlInjectionMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "text_transformation", text_transformation) + SqlInjectionMatchSetSqlInjectionMatchTupleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatchArgs']] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -700,9 +973,24 @@ def __init__(__self__, *, :param pulumi.Input[str] data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + SqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -740,7 +1028,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] type: Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` """ - pulumi.set(__self__, "type", type) + WebAclDefaultActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -764,9 +1065,28 @@ def __init__(__self__, *, :param pulumi.Input[str] log_destination: Amazon Resource Name (ARN) of Kinesis Firehose Delivery Stream :param pulumi.Input['WebAclLoggingConfigurationRedactedFieldsArgs'] redacted_fields: Configuration block containing parts of the request that you want redacted from the logs. Detailed below. """ - pulumi.set(__self__, "log_destination", log_destination) + WebAclLoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination=log_destination, + redacted_fields=redacted_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination: Optional[pulumi.Input[str]] = None, + redacted_fields: Optional[pulumi.Input['WebAclLoggingConfigurationRedactedFieldsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if log_destination is None: + raise TypeError("Missing 'log_destination' argument") + if redacted_fields is None and 'redactedFields' in kwargs: + redacted_fields = kwargs['redactedFields'] + + _setter("log_destination", log_destination) if redacted_fields is not None: - pulumi.set(__self__, "redacted_fields", redacted_fields) + _setter("redacted_fields", redacted_fields) @property @pulumi.getter(name="logDestination") @@ -800,7 +1120,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationRedactedFieldsFieldToMatchArgs']]] field_to_matches: Set of configuration blocks for fields to redact. Detailed below. """ - pulumi.set(__self__, "field_to_matches", field_to_matches) + WebAclLoggingConfigurationRedactedFieldsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_matches=field_to_matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_matches: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationRedactedFieldsFieldToMatchArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_matches is None and 'fieldToMatches' in kwargs: + field_to_matches = kwargs['fieldToMatches'] + if field_to_matches is None: + raise TypeError("Missing 'field_to_matches' argument") + + _setter("field_to_matches", field_to_matches) @property @pulumi.getter(name="fieldToMatches") @@ -824,9 +1159,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The part of the web request that you want AWS WAF to search for a specified stringE.g., `HEADER` or `METHOD` :param pulumi.Input[str] data: When the value of `type` is `HEADER`, enter the name of the header that you want the WAF to search, for example, `User-Agent` or `Referer`. If the value of `type` is any other value, omit `data`. """ - pulumi.set(__self__, "type", type) + WebAclLoggingConfigurationRedactedFieldsFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -869,14 +1219,41 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleOverrideActionArgs'] override_action: Configuration block of the override the action that a group requests CloudFront or AWS WAF takes when a web request matches the conditions in the rule. Only used if `type` is `GROUP`. Detailed below. :param pulumi.Input[str] type: The rule type, either `REGULAR`, as defined by [Rule](http://docs.aws.amazon.com/waf/latest/APIReference/API_Rule.html), `RATE_BASED`, as defined by [RateBasedRule](http://docs.aws.amazon.com/waf/latest/APIReference/API_RateBasedRule.html), or `GROUP`, as defined by [RuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleGroup.html). The default is REGULAR. If you add a RATE_BASED rule, you need to set `type` as `RATE_BASED`. If you add a GROUP rule, you need to set `type` as `GROUP`. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_id", rule_id) + WebAclRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + rule_id=rule_id, + action=action, + override_action=override_action, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + rule_id: Optional[pulumi.Input[str]] = None, + action: Optional[pulumi.Input['WebAclRuleActionArgs']] = None, + override_action: Optional[pulumi.Input['WebAclRuleOverrideActionArgs']] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if rule_id is None: + raise TypeError("Missing 'rule_id' argument") + if override_action is None and 'overrideAction' in kwargs: + override_action = kwargs['overrideAction'] + + _setter("priority", priority) + _setter("rule_id", rule_id) if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if override_action is not None: - pulumi.set(__self__, "override_action", override_action) + _setter("override_action", override_action) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -947,7 +1324,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] type: Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. """ - pulumi.set(__self__, "type", type) + WebAclRuleActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -967,15 +1357,28 @@ class WebAclRuleOverrideActionArgs: def __init__(__self__, *, type: pulumi.Input[str]): """ - :param pulumi.Input[str] type: Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + :param pulumi.Input[str] type: Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. """ - pulumi.set(__self__, "type", type) + WebAclRuleOverrideActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter def type(self) -> pulumi.Input[str]: """ - Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. """ return pulumi.get(self, "type") @@ -993,8 +1396,29 @@ def __init__(__self__, *, :param pulumi.Input['XssMatchSetXssMatchTupleFieldToMatchArgs'] field_to_match: Specifies where in a web request to look for cross-site scripting attacks. :param pulumi.Input[str] text_transformation: Which text transformation, if any, to perform on the web request before inspecting the request for cross-site scripting attacks. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "text_transformation", text_transformation) + XssMatchSetXssMatchTupleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional[pulumi.Input['XssMatchSetXssMatchTupleFieldToMatchArgs']] = None, + text_transformation: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -1030,9 +1454,24 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The part of the web request that you want AWS WAF to search for a specified stringE.g., `HEADER` or `METHOD` :param pulumi.Input[str] data: When the value of `type` is `HEADER`, enter the name of the header that you want the WAF to search, for example, `User-Agent` or `Referer`. If the value of `type` is any other value, omit `data`. """ - pulumi.set(__self__, "type", type) + XssMatchSetXssMatchTupleFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + data: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/wafregional/byte_match_set.py b/sdk/python/pulumi_aws/wafregional/byte_match_set.py index 746fb329ed9..55009a3f0c7 100644 --- a/sdk/python/pulumi_aws/wafregional/byte_match_set.py +++ b/sdk/python/pulumi_aws/wafregional/byte_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ByteMatchSetByteMatchTupleArgs']]] byte_match_tuples: Settings for the ByteMatchSet, such as the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests. ByteMatchTuple documented below. :param pulumi.Input[str] name: The name or description of the ByteMatchSet. """ + ByteMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + byte_match_tuples=byte_match_tuples, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + byte_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['ByteMatchSetByteMatchTupleArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if byte_match_tuples is None and 'byteMatchTuples' in kwargs: + byte_match_tuples = kwargs['byteMatchTuples'] + if byte_match_tuples is not None: - pulumi.set(__self__, "byte_match_tuples", byte_match_tuples) + _setter("byte_match_tuples", byte_match_tuples) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="byteMatchTuples") @@ -63,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ByteMatchSetByteMatchTupleArgs']]] byte_match_tuples: Settings for the ByteMatchSet, such as the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests. ByteMatchTuple documented below. :param pulumi.Input[str] name: The name or description of the ByteMatchSet. """ + _ByteMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + byte_match_tuples=byte_match_tuples, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + byte_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['ByteMatchSetByteMatchTupleArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if byte_match_tuples is None and 'byteMatchTuples' in kwargs: + byte_match_tuples = kwargs['byteMatchTuples'] + if byte_match_tuples is not None: - pulumi.set(__self__, "byte_match_tuples", byte_match_tuples) + _setter("byte_match_tuples", byte_match_tuples) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="byteMatchTuples") @@ -178,6 +208,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ByteMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/geo_match_set.py b/sdk/python/pulumi_aws/wafregional/geo_match_set.py index 4b2719a8e7b..f76bcc12054 100644 --- a/sdk/python/pulumi_aws/wafregional/geo_match_set.py +++ b/sdk/python/pulumi_aws/wafregional/geo_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['GeoMatchSetGeoMatchConstraintArgs']]] geo_match_constraints: The Geo Match Constraint objects which contain the country that you want AWS WAF to search for. :param pulumi.Input[str] name: The name or description of the Geo Match Set. """ + GeoMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + geo_match_constraints=geo_match_constraints, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + geo_match_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['GeoMatchSetGeoMatchConstraintArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if geo_match_constraints is None and 'geoMatchConstraints' in kwargs: + geo_match_constraints = kwargs['geoMatchConstraints'] + if geo_match_constraints is not None: - pulumi.set(__self__, "geo_match_constraints", geo_match_constraints) + _setter("geo_match_constraints", geo_match_constraints) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="geoMatchConstraints") @@ -63,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['GeoMatchSetGeoMatchConstraintArgs']]] geo_match_constraints: The Geo Match Constraint objects which contain the country that you want AWS WAF to search for. :param pulumi.Input[str] name: The name or description of the Geo Match Set. """ + _GeoMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + geo_match_constraints=geo_match_constraints, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + geo_match_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['GeoMatchSetGeoMatchConstraintArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if geo_match_constraints is None and 'geoMatchConstraints' in kwargs: + geo_match_constraints = kwargs['geoMatchConstraints'] + if geo_match_constraints is not None: - pulumi.set(__self__, "geo_match_constraints", geo_match_constraints) + _setter("geo_match_constraints", geo_match_constraints) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="geoMatchConstraints") @@ -180,6 +210,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GeoMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/get_ipset.py b/sdk/python/pulumi_aws/wafregional/get_ipset.py index 302e31963d9..3ec2dffe6ae 100644 --- a/sdk/python/pulumi_aws/wafregional/get_ipset.py +++ b/sdk/python/pulumi_aws/wafregional/get_ipset.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/wafregional/get_rate_based_mod.py b/sdk/python/pulumi_aws/wafregional/get_rate_based_mod.py index 14d7e9ba3e6..ce61a450191 100644 --- a/sdk/python/pulumi_aws/wafregional/get_rate_based_mod.py +++ b/sdk/python/pulumi_aws/wafregional/get_rate_based_mod.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/wafregional/get_rule.py b/sdk/python/pulumi_aws/wafregional/get_rule.py index eb5450c4b74..60d084c0b8b 100644 --- a/sdk/python/pulumi_aws/wafregional/get_rule.py +++ b/sdk/python/pulumi_aws/wafregional/get_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/wafregional/get_subscribed_rule_group.py b/sdk/python/pulumi_aws/wafregional/get_subscribed_rule_group.py index efcb83a38f0..561fa0e8341 100644 --- a/sdk/python/pulumi_aws/wafregional/get_subscribed_rule_group.py +++ b/sdk/python/pulumi_aws/wafregional/get_subscribed_rule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/wafregional/get_web_acl.py b/sdk/python/pulumi_aws/wafregional/get_web_acl.py index 895c512a2a2..1fd53ad798b 100644 --- a/sdk/python/pulumi_aws/wafregional/get_web_acl.py +++ b/sdk/python/pulumi_aws/wafregional/get_web_acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/wafregional/ip_set.py b/sdk/python/pulumi_aws/wafregional/ip_set.py index bfecb4e2480..b4a6f2b8248 100644 --- a/sdk/python/pulumi_aws/wafregional/ip_set.py +++ b/sdk/python/pulumi_aws/wafregional/ip_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['IpSetIpSetDescriptorArgs']]] ip_set_descriptors: One or more pairs specifying the IP address type (IPV4 or IPV6) and the IP address range (in CIDR notation) from which web requests originate. :param pulumi.Input[str] name: The name or description of the IPSet. """ + IpSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_set_descriptors=ip_set_descriptors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_set_descriptors: Optional[pulumi.Input[Sequence[pulumi.Input['IpSetIpSetDescriptorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set_descriptors is None and 'ipSetDescriptors' in kwargs: + ip_set_descriptors = kwargs['ipSetDescriptors'] + if ip_set_descriptors is not None: - pulumi.set(__self__, "ip_set_descriptors", ip_set_descriptors) + _setter("ip_set_descriptors", ip_set_descriptors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter(name="ipSetDescriptors") @@ -65,12 +80,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['IpSetIpSetDescriptorArgs']]] ip_set_descriptors: One or more pairs specifying the IP address type (IPV4 or IPV6) and the IP address range (in CIDR notation) from which web requests originate. :param pulumi.Input[str] name: The name or description of the IPSet. """ + _IpSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_descriptors=ip_set_descriptors, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + ip_set_descriptors: Optional[pulumi.Input[Sequence[pulumi.Input['IpSetIpSetDescriptorArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_set_descriptors is None and 'ipSetDescriptors' in kwargs: + ip_set_descriptors = kwargs['ipSetDescriptors'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if ip_set_descriptors is not None: - pulumi.set(__self__, "ip_set_descriptors", ip_set_descriptors) + _setter("ip_set_descriptors", ip_set_descriptors) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) @property @pulumi.getter @@ -196,6 +228,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IpSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/outputs.py b/sdk/python/pulumi_aws/wafregional/outputs.py index 6fdda44483e..dfa86349978 100644 --- a/sdk/python/pulumi_aws/wafregional/outputs.py +++ b/sdk/python/pulumi_aws/wafregional/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -74,11 +74,42 @@ def __init__(__self__, *, FieldToMatch(field_to_match) support following: :param str target_string: The value that you want AWS WAF to search for. The maximum length of the value is 50 bytes. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "text_transformation", text_transformation) + ByteMatchSetByteMatchTuple._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + positional_constraint=positional_constraint, + text_transformation=text_transformation, + target_string=target_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional['outputs.ByteMatchSetByteMatchTupleFieldToMatch'] = None, + positional_constraint: Optional[str] = None, + text_transformation: Optional[str] = None, + target_string: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + if target_string is None and 'targetString' in kwargs: + target_string = kwargs['targetString'] + + _setter("field_to_match", field_to_match) + _setter("positional_constraint", positional_constraint) + _setter("text_transformation", text_transformation) if target_string is not None: - pulumi.set(__self__, "target_string", target_string) + _setter("target_string", target_string) @property @pulumi.getter(name="fieldToMatch") @@ -124,9 +155,24 @@ def __init__(__self__, *, :param str type: The part of the web request that you want AWS WAF to search for a specified string. :param str data: When the value of Type is HEADER, enter the name of the header that you want AWS WAF to search, for example, User-Agent or Referer. If the value of Type is any other value, omit Data. """ - pulumi.set(__self__, "type", type) + ByteMatchSetByteMatchTupleFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -156,8 +202,25 @@ def __init__(__self__, *, This is the two-letter country code, e.g., `US`, `CA`, `RU`, `CN`, etc. See [docs](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchConstraint.html) for all supported values. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + GeoMatchSetGeoMatchConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -187,8 +250,25 @@ def __init__(__self__, *, :param str type: The string like IPV4 or IPV6. :param str value: The CIDR notation. """ - pulumi.set(__self__, "type", type) - pulumi.set(__self__, "value", value) + IpSetIpSetDescriptor._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("type", type) + _setter("value", value) @property @pulumi.getter @@ -238,9 +318,32 @@ def __init__(__self__, *, If set to `true`, AWS WAF will allow, block, or count requests based on all IP addresses _except_ `192.0.2.44`. :param str type: The type of predicate in a rule. Valid values: `ByteMatch`, `GeoMatch`, `IPMatch`, `RegexMatch`, `SizeConstraint`, `SqlInjectionMatch`, or `XssMatch`. """ - pulumi.set(__self__, "data_id", data_id) - pulumi.set(__self__, "negated", negated) - pulumi.set(__self__, "type", type) + RateBasedRulePredicate._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_id=data_id, + negated=negated, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_id: Optional[str] = None, + negated: Optional[bool] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_id is None and 'dataId' in kwargs: + data_id = kwargs['dataId'] + if data_id is None: + raise TypeError("Missing 'data_id' argument") + if negated is None: + raise TypeError("Missing 'negated' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("data_id", data_id) + _setter("negated", negated) + _setter("type", type) @property @pulumi.getter(name="dataId") @@ -305,9 +408,36 @@ def __init__(__self__, *, See [docs](http://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchTuple.html#WAF-Type-ByteMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "regex_pattern_set_id", regex_pattern_set_id) - pulumi.set(__self__, "text_transformation", text_transformation) + RegexMatchSetRegexMatchTuple._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + regex_pattern_set_id=regex_pattern_set_id, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional['outputs.RegexMatchSetRegexMatchTupleFieldToMatch'] = None, + regex_pattern_set_id: Optional[str] = None, + text_transformation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if regex_pattern_set_id is None and 'regexPatternSetId' in kwargs: + regex_pattern_set_id = kwargs['regexPatternSetId'] + if regex_pattern_set_id is None: + raise TypeError("Missing 'regex_pattern_set_id' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("regex_pattern_set_id", regex_pattern_set_id) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -350,9 +480,24 @@ def __init__(__self__, *, :param str data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + RegexMatchSetRegexMatchTupleFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -403,13 +548,38 @@ def __init__(__self__, *, :param 'RuleGroupActivatedRuleActionArgs' action: Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the rule. :param int priority: Specifies the order in which the rules are evaluated. Rules with a lower value are evaluated before rules with a higher value. :param str rule_id: The ID of a rule - :param str type: e.g., `BLOCK`, `ALLOW`, or `COUNT` - """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_id", rule_id) + :param str type: The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. + """ + RuleGroupActivatedRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + priority=priority, + rule_id=rule_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.RuleGroupActivatedRuleAction'] = None, + priority: Optional[int] = None, + rule_id: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if rule_id is None: + raise TypeError("Missing 'rule_id' argument") + + _setter("action", action) + _setter("priority", priority) + _setter("rule_id", rule_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -439,7 +609,7 @@ def rule_id(self) -> str: @pulumi.getter def type(self) -> Optional[str]: """ - e.g., `BLOCK`, `ALLOW`, or `COUNT` + The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ return pulumi.get(self, "type") @@ -449,15 +619,28 @@ class RuleGroupActivatedRuleAction(dict): def __init__(__self__, *, type: str): """ - :param str type: e.g., `BLOCK`, `ALLOW`, or `COUNT` + :param str type: The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ - pulumi.set(__self__, "type", type) + RuleGroupActivatedRuleAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter def type(self) -> str: """ - e.g., `BLOCK`, `ALLOW`, or `COUNT` + The rule type, either `REGULAR`, `RATE_BASED`, or `GROUP`. Defaults to `REGULAR`. """ return pulumi.get(self, "type") @@ -485,9 +668,32 @@ def __init__(__self__, *, data_id: str, negated: bool, type: str): - pulumi.set(__self__, "data_id", data_id) - pulumi.set(__self__, "negated", negated) - pulumi.set(__self__, "type", type) + RulePredicate._configure( + lambda key, value: pulumi.set(__self__, key, value), + data_id=data_id, + negated=negated, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + data_id: Optional[str] = None, + negated: Optional[bool] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if data_id is None and 'dataId' in kwargs: + data_id = kwargs['dataId'] + if data_id is None: + raise TypeError("Missing 'data_id' argument") + if negated is None: + raise TypeError("Missing 'negated' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("data_id", data_id) + _setter("negated", negated) + _setter("type", type) @property @pulumi.getter(name="dataId") @@ -547,10 +753,41 @@ def __init__(__self__, *, for all supported values. **Note:** if you choose `BODY` as `type`, you must choose `NONE` because CloudFront forwards only the first 8192 bytes for inspection. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformation", text_transformation) + SizeConstraintSetSizeConstraint._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + field_to_match=field_to_match, + size=size, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[str] = None, + field_to_match: Optional['outputs.SizeConstraintSetSizeConstraintFieldToMatch'] = None, + size: Optional[int] = None, + text_transformation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("comparison_operator", comparison_operator) + _setter("field_to_match", field_to_match) + _setter("size", size) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="comparisonOperator") @@ -606,9 +843,24 @@ def __init__(__self__, *, :param str data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + SizeConstraintSetSizeConstraintFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -663,8 +915,29 @@ def __init__(__self__, *, See [docs](https://docs.aws.amazon.com/waf/latest/APIReference/API_regional_SqlInjectionMatchTuple.html#WAF-Type-regional_SqlInjectionMatchTuple-TextTransformation) for all supported values. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "text_transformation", text_transformation) + SqlInjectionMatchSetSqlInjectionMatchTuple._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional['outputs.SqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatch'] = None, + text_transformation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -700,9 +973,24 @@ def __init__(__self__, *, :param str data: When `type` is `HEADER`, enter the name of the header that you want to search, e.g., `User-Agent` or `Referer`. If `type` is any other value, omit this field. """ - pulumi.set(__self__, "type", type) + SqlInjectionMatchSetSqlInjectionMatchTupleFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -732,7 +1020,20 @@ def __init__(__self__, *, """ :param str type: Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` """ - pulumi.set(__self__, "type", type) + WebAclDefaultAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -771,9 +1072,28 @@ def __init__(__self__, *, :param str log_destination: Amazon Resource Name (ARN) of Kinesis Firehose Delivery Stream :param 'WebAclLoggingConfigurationRedactedFieldsArgs' redacted_fields: Configuration block containing parts of the request that you want redacted from the logs. Detailed below. """ - pulumi.set(__self__, "log_destination", log_destination) + WebAclLoggingConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination=log_destination, + redacted_fields=redacted_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination: Optional[str] = None, + redacted_fields: Optional['outputs.WebAclLoggingConfigurationRedactedFields'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination is None and 'logDestination' in kwargs: + log_destination = kwargs['logDestination'] + if log_destination is None: + raise TypeError("Missing 'log_destination' argument") + if redacted_fields is None and 'redactedFields' in kwargs: + redacted_fields = kwargs['redactedFields'] + + _setter("log_destination", log_destination) if redacted_fields is not None: - pulumi.set(__self__, "redacted_fields", redacted_fields) + _setter("redacted_fields", redacted_fields) @property @pulumi.getter(name="logDestination") @@ -816,7 +1136,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclLoggingConfigurationRedactedFieldsFieldToMatchArgs'] field_to_matches: Set of configuration blocks for fields to redact. Detailed below. """ - pulumi.set(__self__, "field_to_matches", field_to_matches) + WebAclLoggingConfigurationRedactedFields._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_matches=field_to_matches, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_matches: Optional[Sequence['outputs.WebAclLoggingConfigurationRedactedFieldsFieldToMatch']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_matches is None and 'fieldToMatches' in kwargs: + field_to_matches = kwargs['fieldToMatches'] + if field_to_matches is None: + raise TypeError("Missing 'field_to_matches' argument") + + _setter("field_to_matches", field_to_matches) @property @pulumi.getter(name="fieldToMatches") @@ -836,9 +1171,24 @@ def __init__(__self__, *, :param str type: The part of the web request that you want AWS WAF to search for a specified stringE.g., `HEADER` or `METHOD` :param str data: When the value of `type` is `HEADER`, enter the name of the header that you want the WAF to search, for example, `User-Agent` or `Referer`. If the value of `type` is any other value, omit `data`. """ - pulumi.set(__self__, "type", type) + WebAclLoggingConfigurationRedactedFieldsFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter @@ -892,14 +1242,41 @@ def __init__(__self__, *, :param 'WebAclRuleOverrideActionArgs' override_action: Configuration block of the override the action that a group requests CloudFront or AWS WAF takes when a web request matches the conditions in the rule. Only used if `type` is `GROUP`. Detailed below. :param str type: The rule type, either `REGULAR`, as defined by [Rule](http://docs.aws.amazon.com/waf/latest/APIReference/API_Rule.html), `RATE_BASED`, as defined by [RateBasedRule](http://docs.aws.amazon.com/waf/latest/APIReference/API_RateBasedRule.html), or `GROUP`, as defined by [RuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleGroup.html). The default is REGULAR. If you add a RATE_BASED rule, you need to set `type` as `RATE_BASED`. If you add a GROUP rule, you need to set `type` as `GROUP`. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "rule_id", rule_id) + WebAclRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + rule_id=rule_id, + action=action, + override_action=override_action, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + rule_id: Optional[str] = None, + action: Optional['outputs.WebAclRuleAction'] = None, + override_action: Optional['outputs.WebAclRuleOverrideAction'] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if rule_id is None and 'ruleId' in kwargs: + rule_id = kwargs['ruleId'] + if rule_id is None: + raise TypeError("Missing 'rule_id' argument") + if override_action is None and 'overrideAction' in kwargs: + override_action = kwargs['overrideAction'] + + _setter("priority", priority) + _setter("rule_id", rule_id) if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if override_action is not None: - pulumi.set(__self__, "override_action", override_action) + _setter("override_action", override_action) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter @@ -950,7 +1327,20 @@ def __init__(__self__, *, """ :param str type: Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. """ - pulumi.set(__self__, "type", type) + WebAclRuleAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter @@ -966,15 +1356,28 @@ class WebAclRuleOverrideAction(dict): def __init__(__self__, *, type: str): """ - :param str type: Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + :param str type: Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. """ - pulumi.set(__self__, "type", type) + WebAclRuleOverrideAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) @property @pulumi.getter def type(self) -> str: """ - Specifies how you want AWS WAF Regional to respond to requests that match the settings in a ruleE.g., `ALLOW`, `BLOCK` or `COUNT` + Specifies how you want AWS WAF Regional to respond to requests that match the settings in a rule. Valid values for `action` are `ALLOW`, `BLOCK` or `COUNT`. Valid values for `override_action` are `COUNT` and `NONE`. """ return pulumi.get(self, "type") @@ -1007,8 +1410,29 @@ def __init__(__self__, *, :param 'XssMatchSetXssMatchTupleFieldToMatchArgs' field_to_match: Specifies where in a web request to look for cross-site scripting attacks. :param str text_transformation: Which text transformation, if any, to perform on the web request before inspecting the request for cross-site scripting attacks. """ - pulumi.set(__self__, "field_to_match", field_to_match) - pulumi.set(__self__, "text_transformation", text_transformation) + XssMatchSetXssMatchTuple._configure( + lambda key, value: pulumi.set(__self__, key, value), + field_to_match=field_to_match, + text_transformation=text_transformation, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + field_to_match: Optional['outputs.XssMatchSetXssMatchTupleFieldToMatch'] = None, + text_transformation: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + if field_to_match is None: + raise TypeError("Missing 'field_to_match' argument") + if text_transformation is None and 'textTransformation' in kwargs: + text_transformation = kwargs['textTransformation'] + if text_transformation is None: + raise TypeError("Missing 'text_transformation' argument") + + _setter("field_to_match", field_to_match) + _setter("text_transformation", text_transformation) @property @pulumi.getter(name="fieldToMatch") @@ -1036,9 +1460,24 @@ def __init__(__self__, *, :param str type: The part of the web request that you want AWS WAF to search for a specified stringE.g., `HEADER` or `METHOD` :param str data: When the value of `type` is `HEADER`, enter the name of the header that you want the WAF to search, for example, `User-Agent` or `Referer`. If the value of `type` is any other value, omit `data`. """ - pulumi.set(__self__, "type", type) + XssMatchSetXssMatchTupleFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + data=data, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[str] = None, + data: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("type", type) if data is not None: - pulumi.set(__self__, "data", data) + _setter("data", data) @property @pulumi.getter diff --git a/sdk/python/pulumi_aws/wafregional/rate_based_rule.py b/sdk/python/pulumi_aws/wafregional/rate_based_rule.py index 09344dfaad1..c1a10e6c1dc 100644 --- a/sdk/python/pulumi_aws/wafregional/rate_based_rule.py +++ b/sdk/python/pulumi_aws/wafregional/rate_based_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,15 +31,48 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RateBasedRulePredicateArgs']]] predicates: The objects to include in a rule (documented below). :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. """ - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "rate_key", rate_key) - pulumi.set(__self__, "rate_limit", rate_limit) + RateBasedRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + rate_key=rate_key, + rate_limit=rate_limit, + name=name, + predicates=predicates, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + rate_key: Optional[pulumi.Input[str]] = None, + rate_limit: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + predicates: Optional[pulumi.Input[Sequence[pulumi.Input['RateBasedRulePredicateArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if rate_key is None and 'rateKey' in kwargs: + rate_key = kwargs['rateKey'] + if rate_key is None: + raise TypeError("Missing 'rate_key' argument") + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + if rate_limit is None: + raise TypeError("Missing 'rate_limit' argument") + + _setter("metric_name", metric_name) + _setter("rate_key", rate_key) + _setter("rate_limit", rate_limit) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicates is not None: - pulumi.set(__self__, "predicates", predicates) + _setter("predicates", predicates) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="metricName") @@ -136,25 +169,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RateBasedRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + metric_name=metric_name, + name=name, + predicates=predicates, + rate_key=rate_key, + rate_limit=rate_limit, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + predicates: Optional[pulumi.Input[Sequence[pulumi.Input['RateBasedRulePredicateArgs']]]] = None, + rate_key: Optional[pulumi.Input[str]] = None, + rate_limit: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if rate_key is None and 'rateKey' in kwargs: + rate_key = kwargs['rateKey'] + if rate_limit is None and 'rateLimit' in kwargs: + rate_limit = kwargs['rateLimit'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicates is not None: - pulumi.set(__self__, "predicates", predicates) + _setter("predicates", predicates) if rate_key is not None: - pulumi.set(__self__, "rate_key", rate_key) + _setter("rate_key", rate_key) if rate_limit is not None: - pulumi.set(__self__, "rate_limit", rate_limit) + _setter("rate_limit", rate_limit) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -359,6 +425,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RateBasedRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/regex_match_set.py b/sdk/python/pulumi_aws/wafregional/regex_match_set.py index d7af07d1ccf..78c88b0c2ca 100644 --- a/sdk/python/pulumi_aws/wafregional/regex_match_set.py +++ b/sdk/python/pulumi_aws/wafregional/regex_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Regex Match Set. :param pulumi.Input[Sequence[pulumi.Input['RegexMatchSetRegexMatchTupleArgs']]] regex_match_tuples: The regular expression pattern that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings. See below. """ + RegexMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + regex_match_tuples=regex_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + regex_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['RegexMatchSetRegexMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_match_tuples is None and 'regexMatchTuples' in kwargs: + regex_match_tuples = kwargs['regexMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regex_match_tuples is not None: - pulumi.set(__self__, "regex_match_tuples", regex_match_tuples) + _setter("regex_match_tuples", regex_match_tuples) @property @pulumi.getter @@ -63,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Regex Match Set. :param pulumi.Input[Sequence[pulumi.Input['RegexMatchSetRegexMatchTupleArgs']]] regex_match_tuples: The regular expression pattern that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings. See below. """ + _RegexMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + regex_match_tuples=regex_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + regex_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['RegexMatchSetRegexMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_match_tuples is None and 'regexMatchTuples' in kwargs: + regex_match_tuples = kwargs['regexMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regex_match_tuples is not None: - pulumi.set(__self__, "regex_match_tuples", regex_match_tuples) + _setter("regex_match_tuples", regex_match_tuples) @property @pulumi.getter @@ -184,6 +214,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegexMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/regex_pattern_set.py b/sdk/python/pulumi_aws/wafregional/regex_pattern_set.py index 627a5372f4e..406938ec113 100644 --- a/sdk/python/pulumi_aws/wafregional/regex_pattern_set.py +++ b/sdk/python/pulumi_aws/wafregional/regex_pattern_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['RegexPatternSetArgs', 'RegexPatternSet'] @@ -21,10 +21,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Regex Pattern Set. :param pulumi.Input[Sequence[pulumi.Input[str]]] regex_pattern_strings: A list of regular expression (regex) patterns that you want AWS WAF to search for, such as `B[a@]dB[o0]t`. """ + RegexPatternSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + regex_pattern_strings=regex_pattern_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + regex_pattern_strings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_pattern_strings is None and 'regexPatternStrings' in kwargs: + regex_pattern_strings = kwargs['regexPatternStrings'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regex_pattern_strings is not None: - pulumi.set(__self__, "regex_pattern_strings", regex_pattern_strings) + _setter("regex_pattern_strings", regex_pattern_strings) @property @pulumi.getter @@ -61,10 +76,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Regex Pattern Set. :param pulumi.Input[Sequence[pulumi.Input[str]]] regex_pattern_strings: A list of regular expression (regex) patterns that you want AWS WAF to search for, such as `B[a@]dB[o0]t`. """ + _RegexPatternSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + regex_pattern_strings=regex_pattern_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + regex_pattern_strings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_pattern_strings is None and 'regexPatternStrings' in kwargs: + regex_pattern_strings = kwargs['regexPatternStrings'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regex_pattern_strings is not None: - pulumi.set(__self__, "regex_pattern_strings", regex_pattern_strings) + _setter("regex_pattern_strings", regex_pattern_strings) @property @pulumi.getter @@ -166,6 +196,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegexPatternSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/rule.py b/sdk/python/pulumi_aws/wafregional/rule.py index 8b355c1baac..180f48fa63b 100644 --- a/sdk/python/pulumi_aws/wafregional/rule.py +++ b/sdk/python/pulumi_aws/wafregional/rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,34 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RulePredicateArgs']]] predicates: The objects to include in a rule (documented below). :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. """ - pulumi.set(__self__, "metric_name", metric_name) + RuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + name=name, + predicates=predicates, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + predicates: Optional[pulumi.Input[Sequence[pulumi.Input['RulePredicateArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicates is not None: - pulumi.set(__self__, "predicates", predicates) + _setter("predicates", predicates) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="metricName") @@ -102,21 +123,46 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + metric_name=metric_name, + name=name, + predicates=predicates, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + predicates: Optional[pulumi.Input[Sequence[pulumi.Input['RulePredicateArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if predicates is not None: - pulumi.set(__self__, "predicates", predicates) + _setter("predicates", predicates) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -309,6 +355,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/rule_group.py b/sdk/python/pulumi_aws/wafregional/rule_group.py index c0b0193a7fd..313b863b4d5 100644 --- a/sdk/python/pulumi_aws/wafregional/rule_group.py +++ b/sdk/python/pulumi_aws/wafregional/rule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,13 +27,36 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A friendly name of the rule group :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. """ - pulumi.set(__self__, "metric_name", metric_name) + RuleGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + metric_name=metric_name, + activated_rules=activated_rules, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + metric_name: Optional[pulumi.Input[str]] = None, + activated_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupActivatedRuleArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if activated_rules is None and 'activatedRules' in kwargs: + activated_rules = kwargs['activatedRules'] + + _setter("metric_name", metric_name) if activated_rules is not None: - pulumi.set(__self__, "activated_rules", activated_rules) + _setter("activated_rules", activated_rules) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="metricName") @@ -102,21 +125,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _RuleGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + activated_rules=activated_rules, + arn=arn, + metric_name=metric_name, + name=name, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + activated_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupActivatedRuleArgs']]]] = None, + arn: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if activated_rules is None and 'activatedRules' in kwargs: + activated_rules = kwargs['activatedRules'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if activated_rules is not None: - pulumi.set(__self__, "activated_rules", activated_rules) + _setter("activated_rules", activated_rules) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter(name="activatedRules") @@ -285,6 +335,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RuleGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/size_constraint_set.py b/sdk/python/pulumi_aws/wafregional/size_constraint_set.py index e0a3139d276..a5129ad72b7 100644 --- a/sdk/python/pulumi_aws/wafregional/size_constraint_set.py +++ b/sdk/python/pulumi_aws/wafregional/size_constraint_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Size Constraint Set. :param pulumi.Input[Sequence[pulumi.Input['SizeConstraintSetSizeConstraintArgs']]] size_constraints: Specifies the parts of web requests that you want to inspect the size of. """ + SizeConstraintSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + size_constraints=size_constraints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + size_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['SizeConstraintSetSizeConstraintArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size_constraints is None and 'sizeConstraints' in kwargs: + size_constraints = kwargs['sizeConstraints'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if size_constraints is not None: - pulumi.set(__self__, "size_constraints", size_constraints) + _setter("size_constraints", size_constraints) @property @pulumi.getter @@ -64,12 +79,29 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the Size Constraint Set. :param pulumi.Input[Sequence[pulumi.Input['SizeConstraintSetSizeConstraintArgs']]] size_constraints: Specifies the parts of web requests that you want to inspect the size of. """ + _SizeConstraintSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + name=name, + size_constraints=size_constraints, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + size_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['SizeConstraintSetSizeConstraintArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if size_constraints is None and 'sizeConstraints' in kwargs: + size_constraints = kwargs['sizeConstraints'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if size_constraints is not None: - pulumi.set(__self__, "size_constraints", size_constraints) + _setter("size_constraints", size_constraints) @property @pulumi.getter @@ -188,6 +220,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SizeConstraintSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/sql_injection_match_set.py b/sdk/python/pulumi_aws/wafregional/sql_injection_match_set.py index af9c9a8bf95..5445677fe01 100644 --- a/sdk/python/pulumi_aws/wafregional/sql_injection_match_set.py +++ b/sdk/python/pulumi_aws/wafregional/sql_injection_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the SizeConstraintSet. :param pulumi.Input[Sequence[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleArgs']]] sql_injection_match_tuples: The parts of web requests that you want AWS WAF to inspect for malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header. """ + SqlInjectionMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_injection_match_tuples=sql_injection_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + sql_injection_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sql_injection_match_tuples is None and 'sqlInjectionMatchTuples' in kwargs: + sql_injection_match_tuples = kwargs['sqlInjectionMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sql_injection_match_tuples is not None: - pulumi.set(__self__, "sql_injection_match_tuples", sql_injection_match_tuples) + _setter("sql_injection_match_tuples", sql_injection_match_tuples) @property @pulumi.getter @@ -63,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name or description of the SizeConstraintSet. :param pulumi.Input[Sequence[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleArgs']]] sql_injection_match_tuples: The parts of web requests that you want AWS WAF to inspect for malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header. """ + _SqlInjectionMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + sql_injection_match_tuples=sql_injection_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + sql_injection_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['SqlInjectionMatchSetSqlInjectionMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if sql_injection_match_tuples is None and 'sqlInjectionMatchTuples' in kwargs: + sql_injection_match_tuples = kwargs['sqlInjectionMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if sql_injection_match_tuples is not None: - pulumi.set(__self__, "sql_injection_match_tuples", sql_injection_match_tuples) + _setter("sql_injection_match_tuples", sql_injection_match_tuples) @property @pulumi.getter @@ -172,6 +202,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SqlInjectionMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/web_acl.py b/sdk/python/pulumi_aws/wafregional/web_acl.py index 702ba1722ec..8f4feb95749 100644 --- a/sdk/python/pulumi_aws/wafregional/web_acl.py +++ b/sdk/python/pulumi_aws/wafregional/web_acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -31,16 +31,47 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleArgs']]] rules: Set of configuration blocks containing rules for the web ACL. Detailed below. :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. """ - pulumi.set(__self__, "default_action", default_action) - pulumi.set(__self__, "metric_name", metric_name) + WebAclArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_action=default_action, + metric_name=metric_name, + logging_configuration=logging_configuration, + name=name, + rules=rules, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_action: Optional[pulumi.Input['WebAclDefaultActionArgs']] = None, + metric_name: Optional[pulumi.Input[str]] = None, + logging_configuration: Optional[pulumi.Input['WebAclLoggingConfigurationArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if default_action is None: + raise TypeError("Missing 'default_action' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + + _setter("default_action", default_action) + _setter("metric_name", metric_name) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="defaultAction") @@ -137,25 +168,58 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _WebAclState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + default_action=default_action, + logging_configuration=logging_configuration, + metric_name=metric_name, + name=name, + rules=rules, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + default_action: Optional[pulumi.Input['WebAclDefaultActionArgs']] = None, + logging_configuration: Optional[pulumi.Input['WebAclLoggingConfigurationArgs']] = None, + metric_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if logging_configuration is None and 'loggingConfiguration' in kwargs: + logging_configuration = kwargs['loggingConfiguration'] + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if default_action is not None: - pulumi.set(__self__, "default_action", default_action) + _setter("default_action", default_action) if logging_configuration is not None: - pulumi.set(__self__, "logging_configuration", logging_configuration) + _setter("logging_configuration", logging_configuration) if metric_name is not None: - pulumi.set(__self__, "metric_name", metric_name) + _setter("metric_name", metric_name) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -470,6 +534,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebAclArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -490,9 +558,11 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = WebAclArgs.__new__(WebAclArgs) + default_action = _utilities.configure(default_action, WebAclDefaultActionArgs, True) if default_action is None and not opts.urn: raise TypeError("Missing required property 'default_action'") __props__.__dict__["default_action"] = default_action + logging_configuration = _utilities.configure(logging_configuration, WebAclLoggingConfigurationArgs, True) __props__.__dict__["logging_configuration"] = logging_configuration if metric_name is None and not opts.urn: raise TypeError("Missing required property 'metric_name'") diff --git a/sdk/python/pulumi_aws/wafregional/web_acl_association.py b/sdk/python/pulumi_aws/wafregional/web_acl_association.py index e86f026109f..dfb9cd88428 100644 --- a/sdk/python/pulumi_aws/wafregional/web_acl_association.py +++ b/sdk/python/pulumi_aws/wafregional/web_acl_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['WebAclAssociationArgs', 'WebAclAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: ARN of the resource to associate with. For example, an Application Load Balancer or API Gateway Stage. :param pulumi.Input[str] web_acl_id: The ID of the WAF Regional WebACL to create an association. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "web_acl_id", web_acl_id) + WebAclAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + web_acl_id=web_acl_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + web_acl_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if web_acl_id is None and 'webAclId' in kwargs: + web_acl_id = kwargs['webAclId'] + if web_acl_id is None: + raise TypeError("Missing 'web_acl_id' argument") + + _setter("resource_arn", resource_arn) + _setter("web_acl_id", web_acl_id) @property @pulumi.getter(name="resourceArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: ARN of the resource to associate with. For example, an Application Load Balancer or API Gateway Stage. :param pulumi.Input[str] web_acl_id: The ID of the WAF Regional WebACL to create an association. """ + _WebAclAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + web_acl_id=web_acl_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + web_acl_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if web_acl_id is None and 'webAclId' in kwargs: + web_acl_id = kwargs['webAclId'] + if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if web_acl_id is not None: - pulumi.set(__self__, "web_acl_id", web_acl_id) + _setter("web_acl_id", web_acl_id) @property @pulumi.getter(name="resourceArn") @@ -372,6 +410,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebAclAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafregional/xss_match_set.py b/sdk/python/pulumi_aws/wafregional/xss_match_set.py index 7a82ea773d7..365a4b29c3d 100644 --- a/sdk/python/pulumi_aws/wafregional/xss_match_set.py +++ b/sdk/python/pulumi_aws/wafregional/xss_match_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -23,10 +23,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the set :param pulumi.Input[Sequence[pulumi.Input['XssMatchSetXssMatchTupleArgs']]] xss_match_tuples: The parts of web requests that you want to inspect for cross-site scripting attacks. """ + XssMatchSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + xss_match_tuples=xss_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + xss_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['XssMatchSetXssMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if xss_match_tuples is None and 'xssMatchTuples' in kwargs: + xss_match_tuples = kwargs['xssMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if xss_match_tuples is not None: - pulumi.set(__self__, "xss_match_tuples", xss_match_tuples) + _setter("xss_match_tuples", xss_match_tuples) @property @pulumi.getter @@ -63,10 +78,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the set :param pulumi.Input[Sequence[pulumi.Input['XssMatchSetXssMatchTupleArgs']]] xss_match_tuples: The parts of web requests that you want to inspect for cross-site scripting attacks. """ + _XssMatchSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + xss_match_tuples=xss_match_tuples, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + xss_match_tuples: Optional[pulumi.Input[Sequence[pulumi.Input['XssMatchSetXssMatchTupleArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if xss_match_tuples is None and 'xssMatchTuples' in kwargs: + xss_match_tuples = kwargs['xssMatchTuples'] + if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if xss_match_tuples is not None: - pulumi.set(__self__, "xss_match_tuples", xss_match_tuples) + _setter("xss_match_tuples", xss_match_tuples) @property @pulumi.getter @@ -188,6 +218,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + XssMatchSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafv2/_inputs.py b/sdk/python/pulumi_aws/wafv2/_inputs.py index f8e9ec9cac9..9b8407e5da2 100644 --- a/sdk/python/pulumi_aws/wafv2/_inputs.py +++ b/sdk/python/pulumi_aws/wafv2/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -799,7 +799,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] regex_string: The string representing the regular expression, see the AWS WAF [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-regex-pattern-set-creating.html) for more information. """ - pulumi.set(__self__, "regex_string", regex_string) + RegexPatternSetRegularExpressionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + + _setter("regex_string", regex_string) @property @pulumi.getter(name="regexString") @@ -825,9 +840,32 @@ def __init__(__self__, *, :param pulumi.Input[str] content_type: The type of content in the payload that you are defining in the `content` argument. Valid values are `TEXT_PLAIN`, `TEXT_HTML`, or `APPLICATION_JSON`. :param pulumi.Input[str] key: A unique key identifying the custom response body. This is referenced by the `custom_response_body_key` argument in the Custom Response block. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "key", key) + RuleGroupCustomResponseBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("content", content) + _setter("content_type", content_type) + _setter("key", key) @property @pulumi.getter @@ -885,15 +923,54 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleCaptchaConfigArgs'] captcha_config: Specifies how AWS WAF should handle CAPTCHA evaluations. See Captcha Configuration below for details. :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleRuleLabelArgs']]] rule_labels: Labels to apply to web requests that match the rule match statement. See Rule Label below for details. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "statement", statement) - pulumi.set(__self__, "visibility_config", visibility_config) + RuleGroupRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + name=name, + priority=priority, + statement=statement, + visibility_config=visibility_config, + captcha_config=captcha_config, + rule_labels=rule_labels, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input['RuleGroupRuleActionArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + statement: Optional[pulumi.Input['RuleGroupRuleStatementArgs']] = None, + visibility_config: Optional[pulumi.Input['RuleGroupRuleVisibilityConfigArgs']] = None, + captcha_config: Optional[pulumi.Input['RuleGroupRuleCaptchaConfigArgs']] = None, + rule_labels: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleRuleLabelArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if statement is None: + raise TypeError("Missing 'statement' argument") + if visibility_config is None and 'visibilityConfig' in kwargs: + visibility_config = kwargs['visibilityConfig'] + if visibility_config is None: + raise TypeError("Missing 'visibility_config' argument") + if captcha_config is None and 'captchaConfig' in kwargs: + captcha_config = kwargs['captchaConfig'] + if rule_labels is None and 'ruleLabels' in kwargs: + rule_labels = kwargs['ruleLabels'] + + _setter("action", action) + _setter("name", name) + _setter("priority", priority) + _setter("statement", statement) + _setter("visibility_config", visibility_config) if captcha_config is not None: - pulumi.set(__self__, "captcha_config", captcha_config) + _setter("captcha_config", captcha_config) if rule_labels is not None: - pulumi.set(__self__, "rule_labels", rule_labels) + _setter("rule_labels", rule_labels) @property @pulumi.getter @@ -995,16 +1072,35 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleActionChallengeArgs'] challenge: Instructs AWS WAF to run a check against the request to verify that the request is coming from a legitimate client session. See Challenge below for details. :param pulumi.Input['RuleGroupRuleActionCountArgs'] count: Instructs AWS WAF to count the web request and allow it. See Count below for details. """ + RuleGroupRuleActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + captcha=captcha, + challenge=challenge, + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional[pulumi.Input['RuleGroupRuleActionAllowArgs']] = None, + block: Optional[pulumi.Input['RuleGroupRuleActionBlockArgs']] = None, + captcha: Optional[pulumi.Input['RuleGroupRuleActionCaptchaArgs']] = None, + challenge: Optional[pulumi.Input['RuleGroupRuleActionChallengeArgs']] = None, + count: Optional[pulumi.Input['RuleGroupRuleActionCountArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) if captcha is not None: - pulumi.set(__self__, "captcha", captcha) + _setter("captcha", captcha) if challenge is not None: - pulumi.set(__self__, "challenge", challenge) + _setter("challenge", challenge) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter @@ -1074,8 +1170,21 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleActionAllowCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See Custom Request Handling below for details. """ + RuleGroupRuleActionAllowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['RuleGroupRuleActionAllowCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -1097,7 +1206,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionAllowCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + RuleGroupRuleActionAllowCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionAllowCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -1121,8 +1245,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A friendly name of the rule group. :param pulumi.Input[str] value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionAllowCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1156,8 +1297,21 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleActionBlockCustomResponseArgs'] custom_response: Defines a custom response for the web request. See Custom Response below for details. """ + RuleGroupRuleActionBlockArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional[pulumi.Input['RuleGroupRuleActionBlockCustomResponseArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -1183,11 +1337,34 @@ def __init__(__self__, *, :param pulumi.Input[str] custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionBlockCustomResponseResponseHeaderArgs']]] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "response_code", response_code) + RuleGroupRuleActionBlockCustomResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[pulumi.Input[int]] = None, + custom_response_body_key: Optional[pulumi.Input[str]] = None, + response_headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionBlockCustomResponseResponseHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -1235,8 +1412,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A friendly name of the rule group. :param pulumi.Input[str] value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionBlockCustomResponseResponseHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1270,8 +1464,21 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleActionCaptchaCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See Custom Request Handling below for details. """ + RuleGroupRuleActionCaptchaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['RuleGroupRuleActionCaptchaCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -1293,7 +1500,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + RuleGroupRuleActionCaptchaCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -1317,8 +1539,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A friendly name of the rule group. :param pulumi.Input[str] value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1352,8 +1591,21 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleActionChallengeCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See Custom Request Handling below for details. """ + RuleGroupRuleActionChallengeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['RuleGroupRuleActionChallengeCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -1375,7 +1627,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionChallengeCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + RuleGroupRuleActionChallengeCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionChallengeCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -1399,8 +1666,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A friendly name of the rule group. :param pulumi.Input[str] value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionChallengeCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1434,8 +1718,21 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleActionCountCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See Custom Request Handling below for details. """ + RuleGroupRuleActionCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['RuleGroupRuleActionCountCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -1457,7 +1754,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionCountCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + RuleGroupRuleActionCountCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleActionCountCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -1481,8 +1793,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A friendly name of the rule group. :param pulumi.Input[str] value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionCountCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1516,8 +1845,21 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleCaptchaConfigImmunityTimePropertyArgs'] immunity_time_property: Defines custom immunity time. See Immunity Time Property below for details. """ + RuleGroupRuleCaptchaConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time_property=immunity_time_property, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time_property: Optional[pulumi.Input['RuleGroupRuleCaptchaConfigImmunityTimePropertyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time_property is None and 'immunityTimeProperty' in kwargs: + immunity_time_property = kwargs['immunityTimeProperty'] + if immunity_time_property is not None: - pulumi.set(__self__, "immunity_time_property", immunity_time_property) + _setter("immunity_time_property", immunity_time_property) @property @pulumi.getter(name="immunityTimeProperty") @@ -1539,8 +1881,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] immunity_time: The amount of time, in seconds, that a CAPTCHA or challenge timestamp is considered valid by AWS WAF. The default setting is 300. """ + RuleGroupRuleCaptchaConfigImmunityTimePropertyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time=immunity_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time is None and 'immunityTime' in kwargs: + immunity_time = kwargs['immunityTime'] + if immunity_time is not None: - pulumi.set(__self__, "immunity_time", immunity_time) + _setter("immunity_time", immunity_time) @property @pulumi.getter(name="immunityTime") @@ -1562,7 +1917,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The label string. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleRuleLabelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -1608,32 +1976,93 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementSqliMatchStatementArgs'] sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details. :param pulumi.Input['RuleGroupRuleStatementXssMatchStatementArgs'] xss_match_statement: A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details. """ + RuleGroupRuleStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + not_statement=not_statement, + or_statement=or_statement, + rate_based_statement=rate_based_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional[pulumi.Input['RuleGroupRuleStatementAndStatementArgs']] = None, + byte_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementArgs']] = None, + geo_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementGeoMatchStatementArgs']] = None, + ip_set_reference_statement: Optional[pulumi.Input['RuleGroupRuleStatementIpSetReferenceStatementArgs']] = None, + label_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementLabelMatchStatementArgs']] = None, + not_statement: Optional[pulumi.Input['RuleGroupRuleStatementNotStatementArgs']] = None, + or_statement: Optional[pulumi.Input['RuleGroupRuleStatementOrStatementArgs']] = None, + rate_based_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementArgs']] = None, + regex_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementArgs']] = None, + regex_pattern_set_reference_statement: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementArgs']] = None, + size_constraint_statement: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementArgs']] = None, + sqli_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementArgs']] = None, + xss_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if rate_based_statement is None and 'rateBasedStatement' in kwargs: + rate_based_statement = kwargs['rateBasedStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if rate_based_statement is not None: - pulumi.set(__self__, "rate_based_statement", rate_based_statement) + _setter("rate_based_statement", rate_based_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -1799,7 +2228,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementAndStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -1829,11 +2271,42 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementByteMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[pulumi.Input[str]] = None, + search_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementByteMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -1911,26 +2384,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementByteMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -2057,6 +2571,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementByteMatch class RuleGroupRuleStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2064,16 +2585,29 @@ class RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs: def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementByteMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -2093,9 +2627,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -2143,12 +2704,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -2185,6 +2765,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2198,9 +2785,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -2250,12 +2864,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -2298,6 +2931,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2313,12 +2953,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -2377,10 +3046,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -2408,18 +3092,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementByteMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementByteMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2429,7 +3134,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -2451,7 +3169,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -2470,6 +3201,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementByteMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -2481,8 +3219,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementByteMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -2518,9 +3273,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] country_codes: An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param pulumi.Input['RuleGroupRuleStatementGeoMatchStatementForwardedIpConfigArgs'] forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See Forwarded IP Config below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + RuleGroupRuleStatementGeoMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + forwarded_ip_config: Optional[pulumi.Input['RuleGroupRuleStatementGeoMatchStatementForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -2556,8 +3330,29 @@ def __init__(__self__, *, :param pulumi.Input[str] fallback_behavior: The match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param pulumi.Input[str] header_name: The name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + RuleGroupRuleStatementGeoMatchStatementForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -2593,9 +3388,26 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param pulumi.Input['RuleGroupRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs'] ip_set_forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See IPSet Forwarded IP Config below for more details. """ - pulumi.set(__self__, "arn", arn) + RuleGroupRuleStatementIpSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + ip_set_forwarded_ip_config: Optional[pulumi.Input['RuleGroupRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -2633,9 +3445,34 @@ def __init__(__self__, *, :param pulumi.Input[str] header_name: The name of the HTTP header to use for the IP address. :param pulumi.Input[str] position: The position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + RuleGroupRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -2683,8 +3520,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The string to match against. :param pulumi.Input[str] scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + RuleGroupRuleStatementLabelMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -2718,7 +3572,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementNotStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -2740,7 +3607,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementOrStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -2770,15 +3650,44 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementForwardedIpConfigArgs'] forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. If `aggregate_key_type` is set to `FORWARDED_IP`, this block is required. See Forwarded IP Config below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementArgs'] scope_down_statement: An optional nested statement that narrows the scope of the rate-based statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See Statement above for details. If `aggregate_key_type` is set to `CONSTANT`, this block is required. """ - pulumi.set(__self__, "limit", limit) + RuleGroupRuleStatementRateBasedStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + limit=limit, + aggregate_key_type=aggregate_key_type, + custom_keys=custom_keys, + forwarded_ip_config=forwarded_ip_config, + scope_down_statement=scope_down_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + limit: Optional[pulumi.Input[int]] = None, + aggregate_key_type: Optional[pulumi.Input[str]] = None, + custom_keys: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyArgs']]]] = None, + forwarded_ip_config: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementForwardedIpConfigArgs']] = None, + scope_down_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if limit is None: + raise TypeError("Missing 'limit' argument") + if aggregate_key_type is None and 'aggregateKeyType' in kwargs: + aggregate_key_type = kwargs['aggregateKeyType'] + if custom_keys is None and 'customKeys' in kwargs: + custom_keys = kwargs['customKeys'] + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + if scope_down_statement is None and 'scopeDownStatement' in kwargs: + scope_down_statement = kwargs['scopeDownStatement'] + + _setter("limit", limit) if aggregate_key_type is not None: - pulumi.set(__self__, "aggregate_key_type", aggregate_key_type) + _setter("aggregate_key_type", aggregate_key_type) if custom_keys is not None: - pulumi.set(__self__, "custom_keys", custom_keys) + _setter("custom_keys", custom_keys) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) if scope_down_statement is not None: - pulumi.set(__self__, "scope_down_statement", scope_down_statement) + _setter("scope_down_statement", scope_down_statement) @property @pulumi.getter @@ -2864,24 +3773,63 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs'] query_string: Inspect the query string. This is the part of a URL that appears after a `?` character, if any. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementCustomKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie=cookie, + forwarded_ip=forwarded_ip, + header=header, + http_method=http_method, + ip=ip, + label_namespace=label_namespace, + query_argument=query_argument, + query_string=query_string, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs']] = None, + forwarded_ip: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyForwardedIpArgs']] = None, + header: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderArgs']] = None, + http_method: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyHttpMethodArgs']] = None, + ip: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyIpArgs']] = None, + label_namespace: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgs']] = None, + query_argument: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forwarded_ip is None and 'forwardedIp' in kwargs: + forwarded_ip = kwargs['forwardedIp'] + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if label_namespace is None and 'labelNamespace' in kwargs: + label_namespace = kwargs['labelNamespace'] + if query_argument is None and 'queryArgument' in kwargs: + query_argument = kwargs['queryArgument'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if cookie is not None: - pulumi.set(__self__, "cookie", cookie) + _setter("cookie", cookie) if forwarded_ip is not None: - pulumi.set(__self__, "forwarded_ip", forwarded_ip) + _setter("forwarded_ip", forwarded_ip) if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if ip is not None: - pulumi.set(__self__, "ip", ip) + _setter("ip", ip) if label_namespace is not None: - pulumi.set(__self__, "label_namespace", label_namespace) + _setter("label_namespace", label_namespace) if query_argument is not None: - pulumi.set(__self__, "query_argument", query_argument) + _setter("query_argument", query_argument) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter @@ -3002,19 +3950,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyCookieArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -3035,16 +3992,6 @@ def text_transformations(self) -> pulumi.Input[Sequence[pulumi.Input['RuleGroupR Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3062,8 +4009,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3094,6 +4058,13 @@ def type(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRateBasedStatementCustomKeyForwardedIpArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -3106,19 +4077,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -3139,16 +4119,6 @@ def text_transformations(self) -> pulumi.Input[Sequence[pulumi.Input['RuleGroupR Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3166,8 +4136,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3198,12 +4185,26 @@ def type(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRateBasedStatementCustomKeyHttpMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementCustomKeyIpArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -3213,7 +4214,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] namespace: The namespace to use for aggregation """ - pulumi.set(__self__, "namespace", namespace) + RuleGroupRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) @property @pulumi.getter @@ -3238,19 +4252,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -3271,16 +4294,6 @@ def text_transformations(self) -> pulumi.Input[Sequence[pulumi.Input['RuleGroupR Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3298,8 +4311,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3334,18 +4364,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("text_transformations", text_transformations) @property @pulumi.getter(name="textTransformations") @@ -3354,16 +4389,6 @@ def text_transformations(self) -> pulumi.Input[Sequence[pulumi.Input['RuleGroupR Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3381,8 +4406,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3417,18 +4459,23 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("text_transformations", text_transformations) @property @pulumi.getter(name="textTransformations") @@ -3437,16 +4484,6 @@ def text_transformations(self) -> pulumi.Input[Sequence[pulumi.Input['RuleGroupR Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3464,8 +4501,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3501,8 +4555,29 @@ def __init__(__self__, *, :param pulumi.Input[str] fallback_behavior: The match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param pulumi.Input[str] header_name: The name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + RuleGroupRuleStatementRateBasedStatementForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -3558,30 +4633,87 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs'] sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs'] xss_match_statement: A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + not_statement=not_statement, + or_statement=or_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementAndStatementArgs']] = None, + byte_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs']] = None, + geo_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs']] = None, + ip_set_reference_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs']] = None, + label_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs']] = None, + not_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementNotStatementArgs']] = None, + or_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementOrStatementArgs']] = None, + regex_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs']] = None, + regex_pattern_set_reference_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs']] = None, + size_constraint_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs']] = None, + sqli_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs']] = None, + xss_match_statement: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -3735,7 +4867,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementAndStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -3765,11 +4910,42 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[pulumi.Input[str]] = None, + search_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -3847,26 +5023,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -3993,6 +5210,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementRateBased class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -4000,16 +5224,29 @@ class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStateme def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -4029,9 +5266,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -4079,12 +5343,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -4121,6 +5404,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -4134,9 +5424,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -4186,12 +5503,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -4234,6 +5570,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -4249,12 +5592,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -4313,10 +5685,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -4344,18 +5731,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -4365,7 +5773,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -4387,7 +5808,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -4406,6 +5840,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -4417,8 +5858,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -4454,9 +5912,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] country_codes: An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs'] forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See Forwarded IP Config below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + forwarded_ip_config: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -4492,8 +5969,29 @@ def __init__(__self__, *, :param pulumi.Input[str] fallback_behavior: The match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param pulumi.Input[str] header_name: The name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -4529,9 +6027,26 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs'] ip_set_forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See IPSet Forwarded IP Config below for more details. """ - pulumi.set(__self__, "arn", arn) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + ip_set_forwarded_ip_config: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -4569,9 +6084,34 @@ def __init__(__self__, *, :param pulumi.Input[str] header_name: The name of the HTTP header to use for the IP address. :param pulumi.Input[str] position: The position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -4619,8 +6159,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The string to match against. :param pulumi.Input[str] scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -4654,7 +6211,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementNotStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -4676,7 +6246,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementOrStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -4704,10 +6287,35 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -4773,26 +6381,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -4919,6 +6568,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementRateBased class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -4926,16 +6582,29 @@ class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatem def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -4955,9 +6624,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -5005,12 +6701,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -5047,6 +6762,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5060,9 +6782,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -5112,12 +6861,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -5160,6 +6928,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5175,12 +6950,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -5239,10 +7043,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -5270,18 +7089,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5291,7 +7131,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -5313,7 +7166,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -5332,6 +7198,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5343,8 +7216,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -5384,10 +7274,33 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -5453,26 +7366,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -5599,6 +7553,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementRateBased class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5606,16 +7567,29 @@ class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetR def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -5635,9 +7609,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -5685,12 +7686,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -5727,6 +7747,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5740,9 +7767,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -5792,12 +7846,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -5840,6 +7913,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5855,12 +7935,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -5919,10 +8028,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -5950,18 +8074,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -5971,7 +8116,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -5993,7 +8151,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -6012,6 +8183,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -6023,8 +8201,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -6066,11 +8261,40 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -6148,26 +8372,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -6294,6 +8559,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementRateBased class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -6301,16 +8573,29 @@ class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintSt def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -6330,9 +8615,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -6380,12 +8692,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -6422,6 +8753,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -6435,9 +8773,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -6487,12 +8852,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -6535,6 +8919,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -6550,12 +8941,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -6614,10 +9034,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -6645,18 +9080,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -6666,7 +9122,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -6688,7 +9157,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -6707,6 +9189,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -6718,8 +9207,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -6757,9 +9263,28 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -6813,26 +9338,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -6959,6 +9525,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementRateBased class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -6966,16 +9539,29 @@ class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStateme def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -6995,9 +9581,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -7045,12 +9658,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -7087,6 +9719,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -7100,9 +9739,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -7152,12 +9818,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -7200,6 +9885,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -7215,12 +9907,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -7279,10 +10000,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -7310,18 +10046,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -7331,7 +10088,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -7353,7 +10123,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -7372,6 +10155,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -7383,8 +10173,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -7422,9 +10229,28 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -7478,26 +10304,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -7624,6 +10491,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementRateBased class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -7631,16 +10505,29 @@ class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatemen def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -7660,9 +10547,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -7710,12 +10624,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -7752,6 +10685,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -7765,9 +10705,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -7817,12 +10784,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -7865,6 +10851,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -7880,12 +10873,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -7944,10 +10966,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -7975,18 +11012,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -7996,7 +11054,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -8018,7 +11089,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -8037,6 +11121,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -8048,8 +11139,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -8089,10 +11197,35 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRegexMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -8158,26 +11291,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -8304,6 +11478,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatc class RuleGroupRuleStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -8311,16 +11492,29 @@ class RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs: def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -8340,9 +11534,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -8390,12 +11611,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -8432,6 +11672,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -8445,9 +11692,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -8497,12 +11771,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -8545,6 +11838,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -8560,12 +11860,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -8624,10 +11953,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -8655,18 +11999,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRegexMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRegexMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -8676,7 +12041,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -8698,7 +12076,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -8717,6 +12108,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRegexMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -8728,8 +12126,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRegexMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -8769,10 +12184,33 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRegexPatternSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -8838,26 +12276,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -8984,6 +12463,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatt class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -8991,16 +12477,29 @@ class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArg def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -9020,9 +12519,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -9070,12 +12596,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -9112,6 +12657,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -9125,9 +12677,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -9177,12 +12756,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -9225,6 +12823,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -9240,12 +12845,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -9304,10 +12938,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -9335,18 +12984,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -9356,7 +13026,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -9378,7 +13061,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -9397,6 +13093,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -9408,8 +13111,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRegexPatternSetReferenceStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -9451,11 +13171,40 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementSizeConstraintStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -9533,26 +13282,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -9679,6 +13469,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementSizeConst class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -9686,16 +13483,29 @@ class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs: def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -9715,9 +13525,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -9765,12 +13602,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -9807,6 +13663,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -9820,9 +13683,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -9872,12 +13762,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -9920,6 +13829,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -9935,12 +13851,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -9999,10 +13944,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -10030,18 +13990,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -10051,7 +14032,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -10073,7 +14067,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -10092,6 +14099,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -10103,8 +14117,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementSizeConstraintStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -10142,9 +14173,28 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementSqliMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -10198,26 +14248,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -10344,6 +14435,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatch class RuleGroupRuleStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -10351,16 +14449,29 @@ class RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs: def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -10380,9 +14491,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -10430,12 +14568,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -10472,6 +14629,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -10485,9 +14649,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -10537,12 +14728,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -10585,6 +14795,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -10600,12 +14817,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -10664,10 +14910,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -10695,18 +14956,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementSqliMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementSqliMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -10716,7 +14998,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -10738,7 +15033,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -10757,6 +15065,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementSqliMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -10768,8 +15083,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementSqliMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -10807,9 +15139,28 @@ def __init__(__self__, *, See Text Transformation below for details. :param pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementXssMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementXssMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -10863,26 +15214,67 @@ def __init__(__self__, *, :param pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementXssMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -11009,6 +15401,13 @@ def uri_path(self, value: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchS class RuleGroupRuleStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -11016,16 +15415,29 @@ class RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs: def __init__(__self__, *, oversize_handling: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementXssMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[pulumi.Input[str]]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -11045,9 +15457,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -11095,12 +15534,31 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -11137,6 +15595,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -11150,9 +15615,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -11202,12 +15694,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -11250,6 +15761,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -11265,12 +15783,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -11329,10 +15876,25 @@ def __init__(__self__, *, """ :param pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -11360,18 +15922,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementXssMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class RuleGroupRuleStatementXssMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -11381,7 +15964,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -11403,7 +15999,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -11422,6 +16031,13 @@ def name(self, value: pulumi.Input[str]): class RuleGroupRuleStatementXssMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -11433,8 +16049,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementXssMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -11472,9 +16105,36 @@ def __init__(__self__, *, :param pulumi.Input[str] metric_name: A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`. :param pulumi.Input[bool] sampled_requests_enabled: A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. """ - pulumi.set(__self__, "cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "sampled_requests_enabled", sampled_requests_enabled) + RuleGroupRuleVisibilityConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_metrics_enabled=cloudwatch_metrics_enabled, + metric_name=metric_name, + sampled_requests_enabled=sampled_requests_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_metrics_enabled: Optional[pulumi.Input[bool]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + sampled_requests_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_metrics_enabled is None and 'cloudwatchMetricsEnabled' in kwargs: + cloudwatch_metrics_enabled = kwargs['cloudwatchMetricsEnabled'] + if cloudwatch_metrics_enabled is None: + raise TypeError("Missing 'cloudwatch_metrics_enabled' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if sampled_requests_enabled is None and 'sampledRequestsEnabled' in kwargs: + sampled_requests_enabled = kwargs['sampledRequestsEnabled'] + if sampled_requests_enabled is None: + raise TypeError("Missing 'sampled_requests_enabled' argument") + + _setter("cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) + _setter("metric_name", metric_name) + _setter("sampled_requests_enabled", sampled_requests_enabled) @property @pulumi.getter(name="cloudwatchMetricsEnabled") @@ -11524,9 +16184,36 @@ def __init__(__self__, *, :param pulumi.Input[str] metric_name: A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`. :param pulumi.Input[bool] sampled_requests_enabled: A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. """ - pulumi.set(__self__, "cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "sampled_requests_enabled", sampled_requests_enabled) + RuleGroupVisibilityConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_metrics_enabled=cloudwatch_metrics_enabled, + metric_name=metric_name, + sampled_requests_enabled=sampled_requests_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_metrics_enabled: Optional[pulumi.Input[bool]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + sampled_requests_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_metrics_enabled is None and 'cloudwatchMetricsEnabled' in kwargs: + cloudwatch_metrics_enabled = kwargs['cloudwatchMetricsEnabled'] + if cloudwatch_metrics_enabled is None: + raise TypeError("Missing 'cloudwatch_metrics_enabled' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if sampled_requests_enabled is None and 'sampledRequestsEnabled' in kwargs: + sampled_requests_enabled = kwargs['sampledRequestsEnabled'] + if sampled_requests_enabled is None: + raise TypeError("Missing 'sampled_requests_enabled' argument") + + _setter("cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) + _setter("metric_name", metric_name) + _setter("sampled_requests_enabled", sampled_requests_enabled) @property @pulumi.getter(name="cloudwatchMetricsEnabled") @@ -11572,8 +16259,21 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclAssociationConfigRequestBodyArgs']]] request_bodies: Customizes the request body that your protected resource forward to AWS WAF for inspection. See `request_body` below for details. """ + WebAclAssociationConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + request_bodies=request_bodies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + request_bodies: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclAssociationConfigRequestBodyArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if request_bodies is None and 'requestBodies' in kwargs: + request_bodies = kwargs['requestBodies'] + if request_bodies is not None: - pulumi.set(__self__, "request_bodies", request_bodies) + _setter("request_bodies", request_bodies) @property @pulumi.getter(name="requestBodies") @@ -11595,8 +16295,19 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclAssociationConfigRequestBodyCloudfrontArgs']]] cloudfronts: Customizes the request body that your protected CloudFront distributions forward to AWS WAF for inspection. See `cloudfront` below for details. """ + WebAclAssociationConfigRequestBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudfronts=cloudfronts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudfronts: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclAssociationConfigRequestBodyCloudfrontArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudfronts is not None: - pulumi.set(__self__, "cloudfronts", cloudfronts) + _setter("cloudfronts", cloudfronts) @property @pulumi.getter @@ -11618,7 +16329,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] default_size_inspection_limit: Specifies the maximum size of the web request body component that an associated CloudFront distribution should send to AWS WAF for inspection. This applies to statements in the web ACL that inspect the body or JSON body. Valid values are `KB_16`, `KB_32`, `KB_48` and `KB_64`. """ - pulumi.set(__self__, "default_size_inspection_limit", default_size_inspection_limit) + WebAclAssociationConfigRequestBodyCloudfrontArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_size_inspection_limit=default_size_inspection_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_size_inspection_limit: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_size_inspection_limit is None and 'defaultSizeInspectionLimit' in kwargs: + default_size_inspection_limit = kwargs['defaultSizeInspectionLimit'] + if default_size_inspection_limit is None: + raise TypeError("Missing 'default_size_inspection_limit' argument") + + _setter("default_size_inspection_limit", default_size_inspection_limit) @property @pulumi.getter(name="defaultSizeInspectionLimit") @@ -11640,8 +16366,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclCaptchaConfigImmunityTimePropertyArgs'] immunity_time_property: Defines custom immunity time. See `immunity_time_property` below for details. """ + WebAclCaptchaConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time_property=immunity_time_property, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time_property: Optional[pulumi.Input['WebAclCaptchaConfigImmunityTimePropertyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time_property is None and 'immunityTimeProperty' in kwargs: + immunity_time_property = kwargs['immunityTimeProperty'] + if immunity_time_property is not None: - pulumi.set(__self__, "immunity_time_property", immunity_time_property) + _setter("immunity_time_property", immunity_time_property) @property @pulumi.getter(name="immunityTimeProperty") @@ -11663,8 +16402,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] immunity_time: The amount of time, in seconds, that a CAPTCHA or challenge timestamp is considered valid by AWS WAF. The default setting is 300. """ + WebAclCaptchaConfigImmunityTimePropertyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time=immunity_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time is None and 'immunityTime' in kwargs: + immunity_time = kwargs['immunityTime'] + if immunity_time is not None: - pulumi.set(__self__, "immunity_time", immunity_time) + _setter("immunity_time", immunity_time) @property @pulumi.getter(name="immunityTime") @@ -11690,9 +16442,32 @@ def __init__(__self__, *, :param pulumi.Input[str] content_type: Type of content in the payload that you are defining in the `content` argument. Valid values are `TEXT_PLAIN`, `TEXT_HTML`, or `APPLICATION_JSON`. :param pulumi.Input[str] key: Unique key identifying the custom response body. This is referenced by the `custom_response_body_key` argument in the `custom_response` block. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "key", key) + WebAclCustomResponseBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[pulumi.Input[str]] = None, + content_type: Optional[pulumi.Input[str]] = None, + key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("content", content) + _setter("content_type", content_type) + _setter("key", key) @property @pulumi.getter @@ -11740,10 +16515,23 @@ def __init__(__self__, *, :param pulumi.Input['WebAclDefaultActionAllowArgs'] allow: Specifies that AWS WAF should allow requests by default. See `allow` below for details. :param pulumi.Input['WebAclDefaultActionBlockArgs'] block: Specifies that AWS WAF should block requests by default. See `block` below for details. """ + WebAclDefaultActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional[pulumi.Input['WebAclDefaultActionAllowArgs']] = None, + block: Optional[pulumi.Input['WebAclDefaultActionBlockArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) @property @pulumi.getter @@ -11777,8 +16565,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclDefaultActionAllowCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclDefaultActionAllowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclDefaultActionAllowCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -11800,7 +16601,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclDefaultActionAllowCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclDefaultActionAllowCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclDefaultActionAllowCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -11824,8 +16640,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclDefaultActionAllowCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -11859,8 +16692,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclDefaultActionBlockCustomResponseArgs'] custom_response: Defines a custom response for the web request. See `custom_response` below for details. """ + WebAclDefaultActionBlockArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional[pulumi.Input['WebAclDefaultActionBlockCustomResponseArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -11886,11 +16732,34 @@ def __init__(__self__, *, :param pulumi.Input[str] custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param pulumi.Input[Sequence[pulumi.Input['WebAclDefaultActionBlockCustomResponseResponseHeaderArgs']]] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See `response_header` below for details. """ - pulumi.set(__self__, "response_code", response_code) + WebAclDefaultActionBlockCustomResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[pulumi.Input[int]] = None, + custom_response_body_key: Optional[pulumi.Input[str]] = None, + response_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclDefaultActionBlockCustomResponseResponseHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -11938,8 +16807,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclDefaultActionBlockCustomResponseResponseHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -11975,8 +16861,27 @@ def __init__(__self__, *, :param pulumi.Input[str] default_behavior: Default handling for logs that don't match any of the specified filtering conditions. Valid values for `default_behavior` are `KEEP` or `DROP`. :param pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationLoggingFilterFilterArgs']]] filters: Filter(s) that you want to apply to the logs. See Filter below for more details. """ - pulumi.set(__self__, "default_behavior", default_behavior) - pulumi.set(__self__, "filters", filters) + WebAclLoggingConfigurationLoggingFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_behavior=default_behavior, + filters=filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_behavior: Optional[pulumi.Input[str]] = None, + filters: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationLoggingFilterFilterArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_behavior is None and 'defaultBehavior' in kwargs: + default_behavior = kwargs['defaultBehavior'] + if default_behavior is None: + raise TypeError("Missing 'default_behavior' argument") + if filters is None: + raise TypeError("Missing 'filters' argument") + + _setter("default_behavior", default_behavior) + _setter("filters", filters) @property @pulumi.getter(name="defaultBehavior") @@ -12014,9 +16919,30 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationLoggingFilterFilterConditionArgs']]] conditions: Match condition(s) for the filter. See Condition below for more details. :param pulumi.Input[str] requirement: Logic to apply to the filtering conditions. You can specify that a log must match all conditions or at least one condition in order to satisfy the filter. Valid values for `requirement` are `MEETS_ALL` or `MEETS_ANY`. """ - pulumi.set(__self__, "behavior", behavior) - pulumi.set(__self__, "conditions", conditions) - pulumi.set(__self__, "requirement", requirement) + WebAclLoggingConfigurationLoggingFilterFilterArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + behavior=behavior, + conditions=conditions, + requirement=requirement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + behavior: Optional[pulumi.Input[str]] = None, + conditions: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationLoggingFilterFilterConditionArgs']]]] = None, + requirement: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if behavior is None: + raise TypeError("Missing 'behavior' argument") + if conditions is None: + raise TypeError("Missing 'conditions' argument") + if requirement is None: + raise TypeError("Missing 'requirement' argument") + + _setter("behavior", behavior) + _setter("conditions", conditions) + _setter("requirement", requirement) @property @pulumi.getter @@ -12064,10 +16990,27 @@ def __init__(__self__, *, :param pulumi.Input['WebAclLoggingConfigurationLoggingFilterFilterConditionActionConditionArgs'] action_condition: Configuration for a single action condition. See Action Condition below for more details. :param pulumi.Input['WebAclLoggingConfigurationLoggingFilterFilterConditionLabelNameConditionArgs'] label_name_condition: Condition for a single label name. See Label Name Condition below for more details. """ + WebAclLoggingConfigurationLoggingFilterFilterConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_condition=action_condition, + label_name_condition=label_name_condition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_condition: Optional[pulumi.Input['WebAclLoggingConfigurationLoggingFilterFilterConditionActionConditionArgs']] = None, + label_name_condition: Optional[pulumi.Input['WebAclLoggingConfigurationLoggingFilterFilterConditionLabelNameConditionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_condition is None and 'actionCondition' in kwargs: + action_condition = kwargs['actionCondition'] + if label_name_condition is None and 'labelNameCondition' in kwargs: + label_name_condition = kwargs['labelNameCondition'] + if action_condition is not None: - pulumi.set(__self__, "action_condition", action_condition) + _setter("action_condition", action_condition) if label_name_condition is not None: - pulumi.set(__self__, "label_name_condition", label_name_condition) + _setter("label_name_condition", label_name_condition) @property @pulumi.getter(name="actionCondition") @@ -12101,7 +17044,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] action: Action setting that a log record must contain in order to meet the condition. Valid values for `action` are `ALLOW`, `BLOCK`, and `COUNT`. """ - pulumi.set(__self__, "action", action) + WebAclLoggingConfigurationLoggingFilterFilterConditionActionConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + + _setter("action", action) @property @pulumi.getter @@ -12123,7 +17079,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] label_name: Name of the label that a log record must contain in order to meet the condition. It must be a fully qualified label name, which includes a prefix, optional namespaces, and the label name itself. The prefix identifies the rule group or web ACL context of the rule that added the label. """ - pulumi.set(__self__, "label_name", label_name) + WebAclLoggingConfigurationLoggingFilterFilterConditionLabelNameConditionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + label_name=label_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + label_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if label_name is None and 'labelName' in kwargs: + label_name = kwargs['labelName'] + if label_name is None: + raise TypeError("Missing 'label_name' argument") + + _setter("label_name", label_name) @property @pulumi.getter(name="labelName") @@ -12151,14 +17122,37 @@ def __init__(__self__, *, :param pulumi.Input['WebAclLoggingConfigurationRedactedFieldSingleHeaderArgs'] single_header: "single_header" refers to the redaction of a single header. For more information, please see the details below under Single Header. :param pulumi.Input['WebAclLoggingConfigurationRedactedFieldUriPathArgs'] uri_path: Configuration block that redacts the request URI path. It should be specified as an empty configuration block `{}`. The URI path is the part of a web request that identifies a resource, such as `/images/daily-ad.jpg`. """ + WebAclLoggingConfigurationRedactedFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + method=method, + query_string=query_string, + single_header=single_header, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + method: Optional[pulumi.Input['WebAclLoggingConfigurationRedactedFieldMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclLoggingConfigurationRedactedFieldQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclLoggingConfigurationRedactedFieldSingleHeaderArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclLoggingConfigurationRedactedFieldUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter @@ -12213,12 +17207,26 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclLoggingConfigurationRedac class WebAclLoggingConfigurationRedactedFieldMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclLoggingConfigurationRedactedFieldQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -12228,7 +17236,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to redact. This setting must be provided in lowercase characters. """ - pulumi.set(__self__, "name", name) + WebAclLoggingConfigurationRedactedFieldSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -12247,6 +17268,13 @@ def name(self, value: pulumi.Input[str]): class WebAclLoggingConfigurationRedactedFieldUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -12270,18 +17298,59 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleOverrideActionArgs'] override_action: Override action to apply to the rules in a rule group. Used only for rule **statements that reference a rule group**, like `rule_group_reference_statement` and `managed_rule_group_statement`. See `override_action` below for details. :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleRuleLabelArgs']]] rule_labels: Labels to apply to web requests that match the rule match statement. See `rule_label` below for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "statement", statement) - pulumi.set(__self__, "visibility_config", visibility_config) + WebAclRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + priority=priority, + statement=statement, + visibility_config=visibility_config, + action=action, + captcha_config=captcha_config, + override_action=override_action, + rule_labels=rule_labels, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + statement: Optional[pulumi.Input['WebAclRuleStatementArgs']] = None, + visibility_config: Optional[pulumi.Input['WebAclRuleVisibilityConfigArgs']] = None, + action: Optional[pulumi.Input['WebAclRuleActionArgs']] = None, + captcha_config: Optional[pulumi.Input['WebAclRuleCaptchaConfigArgs']] = None, + override_action: Optional[pulumi.Input['WebAclRuleOverrideActionArgs']] = None, + rule_labels: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleRuleLabelArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if statement is None: + raise TypeError("Missing 'statement' argument") + if visibility_config is None and 'visibilityConfig' in kwargs: + visibility_config = kwargs['visibilityConfig'] + if visibility_config is None: + raise TypeError("Missing 'visibility_config' argument") + if captcha_config is None and 'captchaConfig' in kwargs: + captcha_config = kwargs['captchaConfig'] + if override_action is None and 'overrideAction' in kwargs: + override_action = kwargs['overrideAction'] + if rule_labels is None and 'ruleLabels' in kwargs: + rule_labels = kwargs['ruleLabels'] + + _setter("name", name) + _setter("priority", priority) + _setter("statement", statement) + _setter("visibility_config", visibility_config) if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if captcha_config is not None: - pulumi.set(__self__, "captcha_config", captcha_config) + _setter("captcha_config", captcha_config) if override_action is not None: - pulumi.set(__self__, "override_action", override_action) + _setter("override_action", override_action) if rule_labels is not None: - pulumi.set(__self__, "rule_labels", rule_labels) + _setter("rule_labels", rule_labels) @property @pulumi.getter @@ -12395,16 +17464,35 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleActionChallengeArgs'] challenge: Instructs AWS WAF to run a check against the request to verify that the request is coming from a legitimate client session. See `challenge` below for details. :param pulumi.Input['WebAclRuleActionCountArgs'] count: Instructs AWS WAF to count the web request and allow it. See `count` below for details. """ + WebAclRuleActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + captcha=captcha, + challenge=challenge, + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional[pulumi.Input['WebAclRuleActionAllowArgs']] = None, + block: Optional[pulumi.Input['WebAclRuleActionBlockArgs']] = None, + captcha: Optional[pulumi.Input['WebAclRuleActionCaptchaArgs']] = None, + challenge: Optional[pulumi.Input['WebAclRuleActionChallengeArgs']] = None, + count: Optional[pulumi.Input['WebAclRuleActionCountArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) if captcha is not None: - pulumi.set(__self__, "captcha", captcha) + _setter("captcha", captcha) if challenge is not None: - pulumi.set(__self__, "challenge", challenge) + _setter("challenge", challenge) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter @@ -12474,8 +17562,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleActionAllowCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleActionAllowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleActionAllowCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -12497,7 +17598,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionAllowCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleActionAllowCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionAllowCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -12521,8 +17637,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionAllowCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -12556,8 +17689,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleActionBlockCustomResponseArgs'] custom_response: Defines a custom response for the web request. See `custom_response` below for details. """ + WebAclRuleActionBlockArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional[pulumi.Input['WebAclRuleActionBlockCustomResponseArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -12583,11 +17729,34 @@ def __init__(__self__, *, :param pulumi.Input[str] custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionBlockCustomResponseResponseHeaderArgs']]] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See `response_header` below for details. """ - pulumi.set(__self__, "response_code", response_code) + WebAclRuleActionBlockCustomResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[pulumi.Input[int]] = None, + custom_response_body_key: Optional[pulumi.Input[str]] = None, + response_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionBlockCustomResponseResponseHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -12635,8 +17804,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionBlockCustomResponseResponseHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -12670,8 +17856,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleActionCaptchaCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleActionCaptchaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleActionCaptchaCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -12693,7 +17892,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleActionCaptchaCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -12717,8 +17931,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -12752,8 +17983,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleActionChallengeCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleActionChallengeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleActionChallengeCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -12775,7 +18019,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionChallengeCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleActionChallengeCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionChallengeCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -12799,8 +18058,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionChallengeCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -12834,8 +18110,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleActionCountCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleActionCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleActionCountCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -12857,7 +18146,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionCountCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleActionCountCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleActionCountCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -12881,8 +18185,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionCountCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -12916,8 +18237,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleCaptchaConfigImmunityTimePropertyArgs'] immunity_time_property: Defines custom immunity time. See `immunity_time_property` below for details. """ + WebAclRuleCaptchaConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time_property=immunity_time_property, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time_property: Optional[pulumi.Input['WebAclRuleCaptchaConfigImmunityTimePropertyArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time_property is None and 'immunityTimeProperty' in kwargs: + immunity_time_property = kwargs['immunityTimeProperty'] + if immunity_time_property is not None: - pulumi.set(__self__, "immunity_time_property", immunity_time_property) + _setter("immunity_time_property", immunity_time_property) @property @pulumi.getter(name="immunityTimeProperty") @@ -12939,8 +18273,21 @@ def __init__(__self__, *, """ :param pulumi.Input[int] immunity_time: The amount of time, in seconds, that a CAPTCHA or challenge timestamp is considered valid by AWS WAF. The default setting is 300. """ + WebAclRuleCaptchaConfigImmunityTimePropertyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time=immunity_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time is None and 'immunityTime' in kwargs: + immunity_time = kwargs['immunityTime'] + if immunity_time is not None: - pulumi.set(__self__, "immunity_time", immunity_time) + _setter("immunity_time", immunity_time) @property @pulumi.getter(name="immunityTime") @@ -12964,10 +18311,23 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleOverrideActionCountArgs'] count: Override the rule action setting to count (i.e., only count matches). Configured as an empty block `{}`. :param pulumi.Input['WebAclRuleOverrideActionNoneArgs'] none: Don't override the rule action setting. Configured as an empty block `{}`. """ + WebAclRuleOverrideActionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + none=none, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional[pulumi.Input['WebAclRuleOverrideActionCountArgs']] = None, + none: Optional[pulumi.Input['WebAclRuleOverrideActionNoneArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) if none is not None: - pulumi.set(__self__, "none", none) + _setter("none", none) @property @pulumi.getter @@ -12998,12 +18358,26 @@ def none(self, value: Optional[pulumi.Input['WebAclRuleOverrideActionNoneArgs']] class WebAclRuleOverrideActionCountArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleOverrideActionNoneArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -13013,7 +18387,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Label string. """ - pulumi.set(__self__, "name", name) + WebAclRuleRuleLabelArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -13063,36 +18450,105 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementSqliMatchStatementArgs'] sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See `sqli_match_statement` below for details. :param pulumi.Input['WebAclRuleStatementXssMatchStatementArgs'] xss_match_statement: Rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See `xss_match_statement` below for details. """ + WebAclRuleStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + managed_rule_group_statement=managed_rule_group_statement, + not_statement=not_statement, + or_statement=or_statement, + rate_based_statement=rate_based_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + rule_group_reference_statement=rule_group_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional[pulumi.Input['WebAclRuleStatementAndStatementArgs']] = None, + byte_match_statement: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementArgs']] = None, + geo_match_statement: Optional[pulumi.Input['WebAclRuleStatementGeoMatchStatementArgs']] = None, + ip_set_reference_statement: Optional[pulumi.Input['WebAclRuleStatementIpSetReferenceStatementArgs']] = None, + label_match_statement: Optional[pulumi.Input['WebAclRuleStatementLabelMatchStatementArgs']] = None, + managed_rule_group_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementArgs']] = None, + not_statement: Optional[pulumi.Input['WebAclRuleStatementNotStatementArgs']] = None, + or_statement: Optional[pulumi.Input['WebAclRuleStatementOrStatementArgs']] = None, + rate_based_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementArgs']] = None, + regex_match_statement: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementArgs']] = None, + regex_pattern_set_reference_statement: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementArgs']] = None, + rule_group_reference_statement: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementArgs']] = None, + size_constraint_statement: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementArgs']] = None, + sqli_match_statement: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementArgs']] = None, + xss_match_statement: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if managed_rule_group_statement is None and 'managedRuleGroupStatement' in kwargs: + managed_rule_group_statement = kwargs['managedRuleGroupStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if rate_based_statement is None and 'rateBasedStatement' in kwargs: + rate_based_statement = kwargs['rateBasedStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if rule_group_reference_statement is None and 'ruleGroupReferenceStatement' in kwargs: + rule_group_reference_statement = kwargs['ruleGroupReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if managed_rule_group_statement is not None: - pulumi.set(__self__, "managed_rule_group_statement", managed_rule_group_statement) + _setter("managed_rule_group_statement", managed_rule_group_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if rate_based_statement is not None: - pulumi.set(__self__, "rate_based_statement", rate_based_statement) + _setter("rate_based_statement", rate_based_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if rule_group_reference_statement is not None: - pulumi.set(__self__, "rule_group_reference_statement", rule_group_reference_statement) + _setter("rule_group_reference_statement", rule_group_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -13282,7 +18738,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementAndStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -13310,11 +18779,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementByteMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementByteMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[pulumi.Input[str]] = None, + search_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementByteMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -13390,26 +18890,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementByteMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -13536,6 +19077,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementByteMatchSta class WebAclRuleStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -13545,8 +19093,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementByteMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -13572,9 +19133,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementByteMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -13622,12 +19210,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -13664,6 +19271,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -13677,9 +19291,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementByteMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -13729,12 +19370,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -13777,6 +19437,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -13792,12 +19459,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -13856,10 +19552,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -13887,18 +19598,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementByteMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementByteMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -13908,7 +19640,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementByteMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -13930,7 +19675,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -13949,6 +19707,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -13960,8 +19725,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementByteMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -13997,9 +19779,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] country_codes: Array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param pulumi.Input['WebAclRuleStatementGeoMatchStatementForwardedIpConfigArgs'] forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `forwarded_ip_config` below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + WebAclRuleStatementGeoMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + forwarded_ip_config: Optional[pulumi.Input['WebAclRuleStatementGeoMatchStatementForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -14035,8 +19836,29 @@ def __init__(__self__, *, :param pulumi.Input[str] fallback_behavior: Match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param pulumi.Input[str] header_name: Name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + WebAclRuleStatementGeoMatchStatementForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -14072,9 +19894,26 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param pulumi.Input['WebAclRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs'] ip_set_forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `ip_set_forwarded_ip_config` below for more details. """ - pulumi.set(__self__, "arn", arn) + WebAclRuleStatementIpSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + ip_set_forwarded_ip_config: Optional[pulumi.Input['WebAclRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -14112,9 +19951,34 @@ def __init__(__self__, *, :param pulumi.Input[str] header_name: Name of the HTTP header to use for the IP address. :param pulumi.Input[str] position: Position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + WebAclRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -14162,8 +20026,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: String to match against. :param pulumi.Input[str] scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + WebAclRuleStatementLabelMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -14207,16 +20088,49 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs'] scope_down_statement: Narrows the scope of the statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See `statement` above for details. :param pulumi.Input[str] version: Version of the managed rule group. You can set `Version_1.0` or `Version_1.1` etc. If you want to use the default version, do not set anything. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "vendor_name", vendor_name) + WebAclRuleStatementManagedRuleGroupStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + vendor_name=vendor_name, + managed_rule_group_configs=managed_rule_group_configs, + rule_action_overrides=rule_action_overrides, + scope_down_statement=scope_down_statement, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + vendor_name: Optional[pulumi.Input[str]] = None, + managed_rule_group_configs: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs']]]] = None, + rule_action_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgs']]]] = None, + scope_down_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs']] = None, + version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if vendor_name is None and 'vendorName' in kwargs: + vendor_name = kwargs['vendorName'] + if vendor_name is None: + raise TypeError("Missing 'vendor_name' argument") + if managed_rule_group_configs is None and 'managedRuleGroupConfigs' in kwargs: + managed_rule_group_configs = kwargs['managedRuleGroupConfigs'] + if rule_action_overrides is None and 'ruleActionOverrides' in kwargs: + rule_action_overrides = kwargs['ruleActionOverrides'] + if scope_down_statement is None and 'scopeDownStatement' in kwargs: + scope_down_statement = kwargs['scopeDownStatement'] + + _setter("name", name) + _setter("vendor_name", vendor_name) if managed_rule_group_configs is not None: - pulumi.set(__self__, "managed_rule_group_configs", managed_rule_group_configs) + _setter("managed_rule_group_configs", managed_rule_group_configs) if rule_action_overrides is not None: - pulumi.set(__self__, "rule_action_overrides", rule_action_overrides) + _setter("rule_action_overrides", rule_action_overrides) if scope_down_statement is not None: - pulumi.set(__self__, "scope_down_statement", scope_down_statement) + _setter("scope_down_statement", scope_down_statement) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -14310,20 +20224,57 @@ def __init__(__self__, *, :param pulumi.Input[str] payload_type: The payload type for your login endpoint, either JSON or form encoded. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigUsernameFieldArgs'] username_field: Details about your login page username field. See `username_field` for more details. """ + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_managed_rules_acfp_rule_set=aws_managed_rules_acfp_rule_set, + aws_managed_rules_atp_rule_set=aws_managed_rules_atp_rule_set, + aws_managed_rules_bot_control_rule_set=aws_managed_rules_bot_control_rule_set, + login_path=login_path, + password_field=password_field, + payload_type=payload_type, + username_field=username_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_managed_rules_acfp_rule_set: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs']] = None, + aws_managed_rules_atp_rule_set: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs']] = None, + aws_managed_rules_bot_control_rule_set: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs']] = None, + login_path: Optional[pulumi.Input[str]] = None, + password_field: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigPasswordFieldArgs']] = None, + payload_type: Optional[pulumi.Input[str]] = None, + username_field: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigUsernameFieldArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_managed_rules_acfp_rule_set is None and 'awsManagedRulesAcfpRuleSet' in kwargs: + aws_managed_rules_acfp_rule_set = kwargs['awsManagedRulesAcfpRuleSet'] + if aws_managed_rules_atp_rule_set is None and 'awsManagedRulesAtpRuleSet' in kwargs: + aws_managed_rules_atp_rule_set = kwargs['awsManagedRulesAtpRuleSet'] + if aws_managed_rules_bot_control_rule_set is None and 'awsManagedRulesBotControlRuleSet' in kwargs: + aws_managed_rules_bot_control_rule_set = kwargs['awsManagedRulesBotControlRuleSet'] + if login_path is None and 'loginPath' in kwargs: + login_path = kwargs['loginPath'] + if password_field is None and 'passwordField' in kwargs: + password_field = kwargs['passwordField'] + if payload_type is None and 'payloadType' in kwargs: + payload_type = kwargs['payloadType'] + if username_field is None and 'usernameField' in kwargs: + username_field = kwargs['usernameField'] + if aws_managed_rules_acfp_rule_set is not None: - pulumi.set(__self__, "aws_managed_rules_acfp_rule_set", aws_managed_rules_acfp_rule_set) + _setter("aws_managed_rules_acfp_rule_set", aws_managed_rules_acfp_rule_set) if aws_managed_rules_atp_rule_set is not None: - pulumi.set(__self__, "aws_managed_rules_atp_rule_set", aws_managed_rules_atp_rule_set) + _setter("aws_managed_rules_atp_rule_set", aws_managed_rules_atp_rule_set) if aws_managed_rules_bot_control_rule_set is not None: - pulumi.set(__self__, "aws_managed_rules_bot_control_rule_set", aws_managed_rules_bot_control_rule_set) + _setter("aws_managed_rules_bot_control_rule_set", aws_managed_rules_bot_control_rule_set) if login_path is not None: - pulumi.set(__self__, "login_path", login_path) + _setter("login_path", login_path) if password_field is not None: - pulumi.set(__self__, "password_field", password_field) + _setter("password_field", password_field) if payload_type is not None: - pulumi.set(__self__, "payload_type", payload_type) + _setter("payload_type", payload_type) if username_field is not None: - pulumi.set(__self__, "username_field", username_field) + _setter("username_field", username_field) @property @pulumi.getter(name="awsManagedRulesAcfpRuleSet") @@ -14425,13 +20376,48 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_regex_in_path: Whether or not to allow the use of regular expressions in the login page path. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs'] response_inspection: The criteria for inspecting responses to login requests, used by the ATP rule group to track login failure rates. Note that Response Inspection is available only on web ACLs that protect CloudFront distributions. See `response_inspection` for more details. """ - pulumi.set(__self__, "creation_path", creation_path) - pulumi.set(__self__, "registration_page_path", registration_page_path) - pulumi.set(__self__, "request_inspection", request_inspection) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_path=creation_path, + registration_page_path=registration_page_path, + request_inspection=request_inspection, + enable_regex_in_path=enable_regex_in_path, + response_inspection=response_inspection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_path: Optional[pulumi.Input[str]] = None, + registration_page_path: Optional[pulumi.Input[str]] = None, + request_inspection: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs']] = None, + enable_regex_in_path: Optional[pulumi.Input[bool]] = None, + response_inspection: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_path is None and 'creationPath' in kwargs: + creation_path = kwargs['creationPath'] + if creation_path is None: + raise TypeError("Missing 'creation_path' argument") + if registration_page_path is None and 'registrationPagePath' in kwargs: + registration_page_path = kwargs['registrationPagePath'] + if registration_page_path is None: + raise TypeError("Missing 'registration_page_path' argument") + if request_inspection is None and 'requestInspection' in kwargs: + request_inspection = kwargs['requestInspection'] + if request_inspection is None: + raise TypeError("Missing 'request_inspection' argument") + if enable_regex_in_path is None and 'enableRegexInPath' in kwargs: + enable_regex_in_path = kwargs['enableRegexInPath'] + if response_inspection is None and 'responseInspection' in kwargs: + response_inspection = kwargs['responseInspection'] + + _setter("creation_path", creation_path) + _setter("registration_page_path", registration_page_path) + _setter("request_inspection", request_inspection) if enable_regex_in_path is not None: - pulumi.set(__self__, "enable_regex_in_path", enable_regex_in_path) + _setter("enable_regex_in_path", enable_regex_in_path) if response_inspection is not None: - pulumi.set(__self__, "response_inspection", response_inspection) + _setter("response_inspection", response_inspection) @property @pulumi.getter(name="creationPath") @@ -14506,13 +20492,40 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs'] password_field: Details about your login page password field. See `password_field` for more details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs'] username_field: Details about your login page username field. See `username_field` for more details. """ - pulumi.set(__self__, "payload_type", payload_type) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + payload_type=payload_type, + email_field=email_field, + password_field=password_field, + username_field=username_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + payload_type: Optional[pulumi.Input[str]] = None, + email_field: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs']] = None, + password_field: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs']] = None, + username_field: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if payload_type is None and 'payloadType' in kwargs: + payload_type = kwargs['payloadType'] + if payload_type is None: + raise TypeError("Missing 'payload_type' argument") + if email_field is None and 'emailField' in kwargs: + email_field = kwargs['emailField'] + if password_field is None and 'passwordField' in kwargs: + password_field = kwargs['passwordField'] + if username_field is None and 'usernameField' in kwargs: + username_field = kwargs['usernameField'] + + _setter("payload_type", payload_type) if email_field is not None: - pulumi.set(__self__, "email_field", email_field) + _setter("email_field", email_field) if password_field is not None: - pulumi.set(__self__, "password_field", password_field) + _setter("password_field", password_field) if username_field is not None: - pulumi.set(__self__, "username_field", username_field) + _setter("username_field", username_field) @property @pulumi.getter(name="payloadType") @@ -14565,15 +20578,28 @@ class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManag def __init__(__self__, *, identifier: pulumi.Input[str]): """ - :param pulumi.Input[str] identifier: The name of the password field. + :param pulumi.Input[str] identifier: The identifier for the value to match against in the JSON. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter def identifier(self) -> pulumi.Input[str]: """ - The name of the password field. + The identifier for the value to match against in the JSON. """ return pulumi.get(self, "identifier") @@ -14589,7 +20615,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] identifier: The name of the password field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -14611,7 +20650,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] identifier: The name of the username field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -14639,14 +20691,35 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs'] json: Configures inspection of the response JSON. See `json` for more details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs'] status_code: Configures inspection of the response status code.See `status_code` for more details. """ + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + body_contains=body_contains, + header=header, + json=json, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + body_contains: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs']] = None, + header: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs']] = None, + json: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs']] = None, + status_code: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if body_contains is None and 'bodyContains' in kwargs: + body_contains = kwargs['bodyContains'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if body_contains is not None: - pulumi.set(__self__, "body_contains", body_contains) + _setter("body_contains", body_contains) if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="bodyContains") @@ -14706,8 +20779,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] failure_strings: Strings in the body of the response that indicate a failed login attempt. :param pulumi.Input[Sequence[pulumi.Input[str]]] success_strings: Strings in the body of the response that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_strings", failure_strings) - pulumi.set(__self__, "success_strings", success_strings) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_strings=failure_strings, + success_strings=success_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_strings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + success_strings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_strings is None and 'failureStrings' in kwargs: + failure_strings = kwargs['failureStrings'] + if failure_strings is None: + raise TypeError("Missing 'failure_strings' argument") + if success_strings is None and 'successStrings' in kwargs: + success_strings = kwargs['successStrings'] + if success_strings is None: + raise TypeError("Missing 'success_strings' argument") + + _setter("failure_strings", failure_strings) + _setter("success_strings", success_strings) @property @pulumi.getter(name="failureStrings") @@ -14745,9 +20839,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the header to use. :param pulumi.Input[Sequence[pulumi.Input[str]]] success_values: Values in the response header with the specified name that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_values", failure_values) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "success_values", success_values) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_values=failure_values, + name=name, + success_values=success_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + success_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_values is None and 'failureValues' in kwargs: + failure_values = kwargs['failureValues'] + if failure_values is None: + raise TypeError("Missing 'failure_values' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if success_values is None and 'successValues' in kwargs: + success_values = kwargs['successValues'] + if success_values is None: + raise TypeError("Missing 'success_values' argument") + + _setter("failure_values", failure_values) + _setter("name", name) + _setter("success_values", success_values) @property @pulumi.getter(name="failureValues") @@ -14797,9 +20916,34 @@ def __init__(__self__, *, :param pulumi.Input[str] identifier: The identifier for the value to match against in the JSON. :param pulumi.Input[Sequence[pulumi.Input[str]]] success_values: Values in the response header with the specified name that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_values", failure_values) - pulumi.set(__self__, "identifier", identifier) - pulumi.set(__self__, "success_values", success_values) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_values=failure_values, + identifier=identifier, + success_values=success_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + identifier: Optional[pulumi.Input[str]] = None, + success_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_values is None and 'failureValues' in kwargs: + failure_values = kwargs['failureValues'] + if failure_values is None: + raise TypeError("Missing 'failure_values' argument") + if identifier is None: + raise TypeError("Missing 'identifier' argument") + if success_values is None and 'successValues' in kwargs: + success_values = kwargs['successValues'] + if success_values is None: + raise TypeError("Missing 'success_values' argument") + + _setter("failure_values", failure_values) + _setter("identifier", identifier) + _setter("success_values", success_values) @property @pulumi.getter(name="failureValues") @@ -14847,8 +20991,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[int]]] failure_codes: Status codes in the response that indicate a failed login attempt. :param pulumi.Input[Sequence[pulumi.Input[int]]] success_codes: Status codes in the response that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_codes", failure_codes) - pulumi.set(__self__, "success_codes", success_codes) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_codes=failure_codes, + success_codes=success_codes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_codes: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + success_codes: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_codes is None and 'failureCodes' in kwargs: + failure_codes = kwargs['failureCodes'] + if failure_codes is None: + raise TypeError("Missing 'failure_codes' argument") + if success_codes is None and 'successCodes' in kwargs: + success_codes = kwargs['successCodes'] + if success_codes is None: + raise TypeError("Missing 'success_codes' argument") + + _setter("failure_codes", failure_codes) + _setter("success_codes", success_codes) @property @pulumi.getter(name="failureCodes") @@ -14888,13 +21053,40 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs'] request_inspection: The criteria for inspecting login requests, used by the ATP rule group to validate credentials usage. See `request_inspection` for more details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs'] response_inspection: The criteria for inspecting responses to login requests, used by the ATP rule group to track login failure rates. Note that Response Inspection is available only on web ACLs that protect CloudFront distributions. See `response_inspection` for more details. """ - pulumi.set(__self__, "login_path", login_path) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + login_path=login_path, + enable_regex_in_path=enable_regex_in_path, + request_inspection=request_inspection, + response_inspection=response_inspection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + login_path: Optional[pulumi.Input[str]] = None, + enable_regex_in_path: Optional[pulumi.Input[bool]] = None, + request_inspection: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs']] = None, + response_inspection: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if login_path is None and 'loginPath' in kwargs: + login_path = kwargs['loginPath'] + if login_path is None: + raise TypeError("Missing 'login_path' argument") + if enable_regex_in_path is None and 'enableRegexInPath' in kwargs: + enable_regex_in_path = kwargs['enableRegexInPath'] + if request_inspection is None and 'requestInspection' in kwargs: + request_inspection = kwargs['requestInspection'] + if response_inspection is None and 'responseInspection' in kwargs: + response_inspection = kwargs['responseInspection'] + + _setter("login_path", login_path) if enable_regex_in_path is not None: - pulumi.set(__self__, "enable_regex_in_path", enable_regex_in_path) + _setter("enable_regex_in_path", enable_regex_in_path) if request_inspection is not None: - pulumi.set(__self__, "request_inspection", request_inspection) + _setter("request_inspection", request_inspection) if response_inspection is not None: - pulumi.set(__self__, "response_inspection", response_inspection) + _setter("response_inspection", response_inspection) @property @pulumi.getter(name="loginPath") @@ -14956,9 +21148,36 @@ def __init__(__self__, *, :param pulumi.Input[str] payload_type: The payload type for your login endpoint, either JSON or form encoded. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs'] username_field: Details about your login page username field. See `username_field` for more details. """ - pulumi.set(__self__, "password_field", password_field) - pulumi.set(__self__, "payload_type", payload_type) - pulumi.set(__self__, "username_field", username_field) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + password_field=password_field, + payload_type=payload_type, + username_field=username_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password_field: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs']] = None, + payload_type: Optional[pulumi.Input[str]] = None, + username_field: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password_field is None and 'passwordField' in kwargs: + password_field = kwargs['passwordField'] + if password_field is None: + raise TypeError("Missing 'password_field' argument") + if payload_type is None and 'payloadType' in kwargs: + payload_type = kwargs['payloadType'] + if payload_type is None: + raise TypeError("Missing 'payload_type' argument") + if username_field is None and 'usernameField' in kwargs: + username_field = kwargs['usernameField'] + if username_field is None: + raise TypeError("Missing 'username_field' argument") + + _setter("password_field", password_field) + _setter("payload_type", payload_type) + _setter("username_field", username_field) @property @pulumi.getter(name="passwordField") @@ -15004,7 +21223,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] identifier: The name of the password field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -15026,7 +21258,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] identifier: The name of the username field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -15054,14 +21299,35 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs'] json: Configures inspection of the response JSON. See `json` for more details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs'] status_code: Configures inspection of the response status code.See `status_code` for more details. """ + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + body_contains=body_contains, + header=header, + json=json, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + body_contains: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs']] = None, + header: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs']] = None, + json: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs']] = None, + status_code: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if body_contains is None and 'bodyContains' in kwargs: + body_contains = kwargs['bodyContains'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if body_contains is not None: - pulumi.set(__self__, "body_contains", body_contains) + _setter("body_contains", body_contains) if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="bodyContains") @@ -15121,8 +21387,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] failure_strings: Strings in the body of the response that indicate a failed login attempt. :param pulumi.Input[Sequence[pulumi.Input[str]]] success_strings: Strings in the body of the response that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_strings", failure_strings) - pulumi.set(__self__, "success_strings", success_strings) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_strings=failure_strings, + success_strings=success_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_strings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + success_strings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_strings is None and 'failureStrings' in kwargs: + failure_strings = kwargs['failureStrings'] + if failure_strings is None: + raise TypeError("Missing 'failure_strings' argument") + if success_strings is None and 'successStrings' in kwargs: + success_strings = kwargs['successStrings'] + if success_strings is None: + raise TypeError("Missing 'success_strings' argument") + + _setter("failure_strings", failure_strings) + _setter("success_strings", success_strings) @property @pulumi.getter(name="failureStrings") @@ -15160,9 +21447,34 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the header to use. :param pulumi.Input[Sequence[pulumi.Input[str]]] success_values: Values in the response header with the specified name that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_values", failure_values) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "success_values", success_values) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_values=failure_values, + name=name, + success_values=success_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + success_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_values is None and 'failureValues' in kwargs: + failure_values = kwargs['failureValues'] + if failure_values is None: + raise TypeError("Missing 'failure_values' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if success_values is None and 'successValues' in kwargs: + success_values = kwargs['successValues'] + if success_values is None: + raise TypeError("Missing 'success_values' argument") + + _setter("failure_values", failure_values) + _setter("name", name) + _setter("success_values", success_values) @property @pulumi.getter(name="failureValues") @@ -15212,9 +21524,34 @@ def __init__(__self__, *, :param pulumi.Input[str] identifier: The identifier for the value to match against in the JSON. :param pulumi.Input[Sequence[pulumi.Input[str]]] success_values: Values in the response header with the specified name that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_values", failure_values) - pulumi.set(__self__, "identifier", identifier) - pulumi.set(__self__, "success_values", success_values) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_values=failure_values, + identifier=identifier, + success_values=success_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + identifier: Optional[pulumi.Input[str]] = None, + success_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_values is None and 'failureValues' in kwargs: + failure_values = kwargs['failureValues'] + if failure_values is None: + raise TypeError("Missing 'failure_values' argument") + if identifier is None: + raise TypeError("Missing 'identifier' argument") + if success_values is None and 'successValues' in kwargs: + success_values = kwargs['successValues'] + if success_values is None: + raise TypeError("Missing 'success_values' argument") + + _setter("failure_values", failure_values) + _setter("identifier", identifier) + _setter("success_values", success_values) @property @pulumi.getter(name="failureValues") @@ -15262,8 +21599,29 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[int]]] failure_codes: Status codes in the response that indicate a failed login attempt. :param pulumi.Input[Sequence[pulumi.Input[int]]] success_codes: Status codes in the response that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_codes", failure_codes) - pulumi.set(__self__, "success_codes", success_codes) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_codes=failure_codes, + success_codes=success_codes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_codes: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + success_codes: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_codes is None and 'failureCodes' in kwargs: + failure_codes = kwargs['failureCodes'] + if failure_codes is None: + raise TypeError("Missing 'failure_codes' argument") + if success_codes is None and 'successCodes' in kwargs: + success_codes = kwargs['successCodes'] + if success_codes is None: + raise TypeError("Missing 'success_codes' argument") + + _setter("failure_codes", failure_codes) + _setter("success_codes", success_codes) @property @pulumi.getter(name="failureCodes") @@ -15297,7 +21655,22 @@ def __init__(__self__, *, """ :param pulumi.Input[str] inspection_level: The inspection level to use for the Bot Control rule group. """ - pulumi.set(__self__, "inspection_level", inspection_level) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + inspection_level=inspection_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inspection_level: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inspection_level is None and 'inspectionLevel' in kwargs: + inspection_level = kwargs['inspectionLevel'] + if inspection_level is None: + raise TypeError("Missing 'inspection_level' argument") + + _setter("inspection_level", inspection_level) @property @pulumi.getter(name="inspectionLevel") @@ -15319,7 +21692,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] identifier: The name of the password field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigPasswordFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -15341,7 +21727,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] identifier: The name of the username field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigUsernameFieldArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -15365,8 +21764,27 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs'] action_to_use: Override action to use, in place of the configured action of the rule in the rule group. See `action` for details. :param pulumi.Input[str] name: Name of the rule to override. See the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ - pulumi.set(__self__, "action_to_use", action_to_use) - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_to_use=action_to_use, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_to_use: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_to_use is None and 'actionToUse' in kwargs: + action_to_use = kwargs['actionToUse'] + if action_to_use is None: + raise TypeError("Missing 'action_to_use' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("action_to_use", action_to_use) + _setter("name", name) @property @pulumi.getter(name="actionToUse") @@ -15402,28 +21820,47 @@ def __init__(__self__, *, challenge: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs']] = None, count: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs']] = None): """ - :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs'] allow: Specifies that AWS WAF should allow requests by default. See `allow` below for details. - :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs'] block: Specifies that AWS WAF should block requests by default. See `block` below for details. + :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs'] allow: Instructs AWS WAF to allow the web request. See `allow` below for details. + :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs'] block: Instructs AWS WAF to block the web request. See `block` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs'] captcha: Instructs AWS WAF to run a Captcha check against the web request. See `captcha` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs'] challenge: Instructs AWS WAF to run a check against the request to verify that the request is coming from a legitimate client session. See `challenge` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs'] count: Instructs AWS WAF to count the web request and allow it. See `count` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + captcha=captcha, + challenge=challenge, + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs']] = None, + block: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs']] = None, + captcha: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs']] = None, + challenge: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs']] = None, + count: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) if captcha is not None: - pulumi.set(__self__, "captcha", captcha) + _setter("captcha", captcha) if challenge is not None: - pulumi.set(__self__, "challenge", challenge) + _setter("challenge", challenge) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter def allow(self) -> Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs']]: """ - Specifies that AWS WAF should allow requests by default. See `allow` below for details. + Instructs AWS WAF to allow the web request. See `allow` below for details. """ return pulumi.get(self, "allow") @@ -15435,7 +21872,7 @@ def allow(self, value: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGrou @pulumi.getter def block(self) -> Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs']]: """ - Specifies that AWS WAF should block requests by default. See `block` below for details. + Instructs AWS WAF to block the web request. See `block` below for details. """ return pulumi.get(self, "block") @@ -15487,8 +21924,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -15510,7 +21960,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -15534,8 +21999,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -15569,8 +22051,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs'] custom_response: Defines a custom response for the web request. See `custom_response` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -15596,11 +22091,34 @@ def __init__(__self__, *, :param pulumi.Input[str] custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs']]] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See `response_header` below for details. """ - pulumi.set(__self__, "response_code", response_code) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[pulumi.Input[int]] = None, + custom_response_body_key: Optional[pulumi.Input[str]] = None, + response_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -15648,8 +22166,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -15683,8 +22218,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -15706,7 +22254,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -15730,8 +22293,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -15765,8 +22345,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -15788,7 +22381,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -15812,8 +22420,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -15847,8 +22472,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -15870,7 +22508,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -15894,8 +22547,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -15951,30 +22621,87 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs'] sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See `sqli_match_statement` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs'] xss_match_statement: Rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See `xss_match_statement` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + not_statement=not_statement, + or_statement=or_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAndStatementArgs']] = None, + byte_match_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs']] = None, + geo_match_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs']] = None, + ip_set_reference_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs']] = None, + label_match_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs']] = None, + not_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementNotStatementArgs']] = None, + or_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementOrStatementArgs']] = None, + regex_match_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs']] = None, + regex_pattern_set_reference_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs']] = None, + size_constraint_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs']] = None, + sqli_match_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs']] = None, + xss_match_statement: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -16128,7 +22855,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAndStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -16156,11 +22896,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[pulumi.Input[str]] = None, + search_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -16236,26 +23007,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -16382,6 +23194,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementManagedRuleG class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -16391,8 +23210,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -16418,9 +23250,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -16468,12 +23327,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -16510,6 +23388,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -16523,9 +23408,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -16575,12 +23487,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -16623,6 +23554,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -16638,12 +23576,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -16702,10 +23669,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -16733,18 +23715,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -16754,7 +23757,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -16776,7 +23792,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -16795,6 +23824,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -16806,8 +23842,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -16843,9 +23896,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] country_codes: Array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs'] forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `forwarded_ip_config` below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + forwarded_ip_config: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -16881,8 +23953,29 @@ def __init__(__self__, *, :param pulumi.Input[str] fallback_behavior: Match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param pulumi.Input[str] header_name: Name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -16918,9 +24011,26 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs'] ip_set_forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `ip_set_forwarded_ip_config` below for more details. """ - pulumi.set(__self__, "arn", arn) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + ip_set_forwarded_ip_config: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -16958,9 +24068,34 @@ def __init__(__self__, *, :param pulumi.Input[str] header_name: Name of the HTTP header to use for the IP address. :param pulumi.Input[str] position: Position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -17008,8 +24143,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: String to match against. :param pulumi.Input[str] scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -17043,7 +24195,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementNotStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -17065,7 +24230,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementOrStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -17091,10 +24269,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -17158,26 +24361,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -17304,6 +24548,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementManagedRuleG class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -17313,8 +24564,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -17340,9 +24604,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -17390,12 +24681,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -17432,6 +24742,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -17445,9 +24762,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -17497,12 +24841,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -17545,6 +24908,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -17560,12 +24930,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -17624,10 +25023,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -17655,18 +25069,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -17676,7 +25111,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -17698,7 +25146,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -17717,6 +25178,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -17728,8 +25196,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -17767,10 +25252,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -17834,26 +25342,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -17980,6 +25529,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementManagedRuleG class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -17989,8 +25545,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -18016,9 +25585,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -18066,12 +25662,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -18108,6 +25723,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -18121,9 +25743,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -18173,12 +25822,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -18221,6 +25889,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -18236,12 +25911,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -18300,10 +26004,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -18331,18 +26050,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -18352,7 +26092,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -18374,7 +26127,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -18393,6 +26159,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -18404,8 +26177,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -18445,11 +26235,40 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -18525,26 +26344,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -18671,6 +26531,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementManagedRuleG class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -18680,8 +26547,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -18707,9 +26587,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -18757,12 +26664,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -18799,6 +26725,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -18812,9 +26745,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -18864,12 +26824,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -18912,6 +26891,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -18927,12 +26913,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -18991,10 +27006,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -19022,18 +27052,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -19043,7 +27094,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -19065,7 +27129,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -19084,6 +27161,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -19095,8 +27179,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -19132,9 +27233,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -19186,26 +27306,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -19332,6 +27493,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementManagedRuleG class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -19341,8 +27509,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -19368,9 +27549,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -19418,12 +27626,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -19460,6 +27687,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -19473,9 +27707,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -19525,12 +27786,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -19573,6 +27853,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -19588,12 +27875,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -19652,10 +27968,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -19683,18 +28014,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -19704,7 +28056,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -19726,7 +28091,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -19745,6 +28123,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -19756,8 +28141,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -19793,9 +28195,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -19847,26 +28268,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -19993,6 +28455,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementManagedRuleG class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -20002,8 +28471,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -20029,9 +28511,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -20079,12 +28588,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -20121,6 +28649,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -20134,9 +28669,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -20186,12 +28748,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -20234,6 +28815,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -20249,12 +28837,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -20313,10 +28930,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -20344,18 +28976,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -20365,7 +29018,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -20387,7 +29053,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -20406,6 +29085,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -20417,8 +29103,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -20452,7 +29155,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementNotStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -20474,7 +29190,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementOrStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -20504,15 +29233,44 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRateBasedStatementForwardedIpConfigArgs'] forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. If `aggregate_key_type` is set to `FORWARDED_IP`, this block is required. See `forwarded_ip_config` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementArgs'] scope_down_statement: Optional nested statement that narrows the scope of the rate-based statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See `statement` above for details. If `aggregate_key_type` is set to `CONSTANT`, this block is required. """ - pulumi.set(__self__, "limit", limit) + WebAclRuleStatementRateBasedStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + limit=limit, + aggregate_key_type=aggregate_key_type, + custom_keys=custom_keys, + forwarded_ip_config=forwarded_ip_config, + scope_down_statement=scope_down_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + limit: Optional[pulumi.Input[int]] = None, + aggregate_key_type: Optional[pulumi.Input[str]] = None, + custom_keys: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyArgs']]]] = None, + forwarded_ip_config: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementForwardedIpConfigArgs']] = None, + scope_down_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if limit is None: + raise TypeError("Missing 'limit' argument") + if aggregate_key_type is None and 'aggregateKeyType' in kwargs: + aggregate_key_type = kwargs['aggregateKeyType'] + if custom_keys is None and 'customKeys' in kwargs: + custom_keys = kwargs['customKeys'] + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + if scope_down_statement is None and 'scopeDownStatement' in kwargs: + scope_down_statement = kwargs['scopeDownStatement'] + + _setter("limit", limit) if aggregate_key_type is not None: - pulumi.set(__self__, "aggregate_key_type", aggregate_key_type) + _setter("aggregate_key_type", aggregate_key_type) if custom_keys is not None: - pulumi.set(__self__, "custom_keys", custom_keys) + _setter("custom_keys", custom_keys) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) if scope_down_statement is not None: - pulumi.set(__self__, "scope_down_statement", scope_down_statement) + _setter("scope_down_statement", scope_down_statement) @property @pulumi.getter @@ -20598,24 +29356,63 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgs'] query_string: Use the request's query string as an aggregate key. See RateLimit `query_string` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgs'] uri_path: Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details. """ + WebAclRuleStatementRateBasedStatementCustomKeyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie=cookie, + forwarded_ip=forwarded_ip, + header=header, + http_method=http_method, + ip=ip, + label_namespace=label_namespace, + query_argument=query_argument, + query_string=query_string, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyCookieArgs']] = None, + forwarded_ip: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyForwardedIpArgs']] = None, + header: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyHeaderArgs']] = None, + http_method: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyHttpMethodArgs']] = None, + ip: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyIpArgs']] = None, + label_namespace: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgs']] = None, + query_argument: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forwarded_ip is None and 'forwardedIp' in kwargs: + forwarded_ip = kwargs['forwardedIp'] + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if label_namespace is None and 'labelNamespace' in kwargs: + label_namespace = kwargs['labelNamespace'] + if query_argument is None and 'queryArgument' in kwargs: + query_argument = kwargs['queryArgument'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if cookie is not None: - pulumi.set(__self__, "cookie", cookie) + _setter("cookie", cookie) if forwarded_ip is not None: - pulumi.set(__self__, "forwarded_ip", forwarded_ip) + _setter("forwarded_ip", forwarded_ip) if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if ip is not None: - pulumi.set(__self__, "ip", ip) + _setter("ip", ip) if label_namespace is not None: - pulumi.set(__self__, "label_namespace", label_namespace) + _setter("label_namespace", label_namespace) if query_argument is not None: - pulumi.set(__self__, "query_argument", query_argument) + _setter("query_argument", query_argument) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter @@ -20735,8 +29532,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the cookie to use. :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyCookieArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -20772,8 +29588,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -20804,6 +29637,13 @@ def type(self, value: pulumi.Input[str]): class WebAclRuleStatementRateBasedStatementCustomKeyForwardedIpArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -20815,8 +29655,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the header to use. :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -20852,8 +29711,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -20884,12 +29760,26 @@ def type(self, value: pulumi.Input[str]): class WebAclRuleStatementRateBasedStatementCustomKeyHttpMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementCustomKeyIpArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -20899,7 +29789,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] namespace: The namespace to use for aggregation """ - pulumi.set(__self__, "namespace", namespace) + WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) @property @pulumi.getter @@ -20923,8 +29826,27 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the query argument to use. :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -20960,8 +29882,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -20995,7 +29934,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("text_transformations", text_transformations) @property @pulumi.getter(name="textTransformations") @@ -21019,8 +29973,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -21054,7 +30025,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("text_transformations", text_transformations) @property @pulumi.getter(name="textTransformations") @@ -21078,8 +30064,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -21115,8 +30118,29 @@ def __init__(__self__, *, :param pulumi.Input[str] fallback_behavior: Match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param pulumi.Input[str] header_name: Name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + WebAclRuleStatementRateBasedStatementForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -21172,30 +30196,87 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs'] sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See `sqli_match_statement` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs'] xss_match_statement: Rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See `xss_match_statement` below for details. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + not_statement=not_statement, + or_statement=or_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementAndStatementArgs']] = None, + byte_match_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs']] = None, + geo_match_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs']] = None, + ip_set_reference_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs']] = None, + label_match_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs']] = None, + not_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementNotStatementArgs']] = None, + or_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementOrStatementArgs']] = None, + regex_match_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs']] = None, + regex_pattern_set_reference_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs']] = None, + size_constraint_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs']] = None, + sqli_match_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs']] = None, + xss_match_statement: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -21349,7 +30430,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementRateBasedStatementScopeDownStatementAndStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -21377,11 +30471,42 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[pulumi.Input[str]] = None, + search_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -21457,26 +30582,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -21603,6 +30769,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementRateBasedSta class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -21612,8 +30785,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -21639,9 +30825,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -21689,12 +30902,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -21731,6 +30963,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -21744,9 +30983,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -21796,12 +31062,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -21844,6 +31129,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -21859,12 +31151,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -21923,10 +31244,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -21954,18 +31290,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -21975,7 +31332,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -21997,7 +31367,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -22016,6 +31399,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -22027,8 +31417,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -22064,9 +31471,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] country_codes: Array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs'] forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `forwarded_ip_config` below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + forwarded_ip_config: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -22102,8 +31528,29 @@ def __init__(__self__, *, :param pulumi.Input[str] fallback_behavior: Match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param pulumi.Input[str] header_name: Name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -22139,9 +31586,26 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs'] ip_set_forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `ip_set_forwarded_ip_config` below for more details. """ - pulumi.set(__self__, "arn", arn) + WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + ip_set_forwarded_ip_config: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -22179,9 +31643,34 @@ def __init__(__self__, *, :param pulumi.Input[str] header_name: Name of the HTTP header to use for the IP address. :param pulumi.Input[str] position: Position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[pulumi.Input[str]] = None, + header_name: Optional[pulumi.Input[str]] = None, + position: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -22229,8 +31718,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key: String to match against. :param pulumi.Input[str] scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -22264,7 +31770,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementRateBasedStatementScopeDownStatementNotStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -22286,7 +31805,20 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementRateBasedStatementScopeDownStatementOrStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -22312,10 +31844,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -22379,26 +31936,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -22525,6 +32123,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementRateBasedSta class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -22534,8 +32139,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -22561,9 +32179,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -22611,12 +32256,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -22653,6 +32317,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -22666,9 +32337,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -22718,12 +32416,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -22766,6 +32483,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -22781,12 +32505,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -22845,10 +32598,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -22876,18 +32644,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -22897,7 +32686,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -22919,7 +32721,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -22938,6 +32753,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -22949,8 +32771,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -22988,10 +32827,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -23055,26 +32917,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -23201,6 +33104,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementRateBasedSta class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -23210,8 +33120,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -23237,9 +33160,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -23287,12 +33237,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -23329,6 +33298,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -23342,9 +33318,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -23394,12 +33397,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -23442,6 +33464,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -23457,12 +33486,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -23521,10 +33579,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -23552,18 +33625,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -23573,7 +33667,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -23595,7 +33702,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -23614,6 +33734,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -23625,8 +33752,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -23666,11 +33810,40 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -23746,26 +33919,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -23892,6 +34106,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementRateBasedSta class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -23901,8 +34122,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -23928,9 +34162,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -23978,12 +34239,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -24020,6 +34300,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -24033,9 +34320,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -24085,12 +34399,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -24133,6 +34466,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -24148,12 +34488,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -24212,10 +34581,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -24243,18 +34627,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -24264,7 +34669,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -24286,7 +34704,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -24305,6 +34736,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -24316,8 +34754,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -24353,9 +34808,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -24407,26 +34881,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -24553,6 +35068,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementRateBasedSta class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -24562,8 +35084,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -24589,9 +35124,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -24639,12 +35201,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -24681,6 +35262,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -24694,9 +35282,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -24746,12 +35361,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -24794,6 +35428,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -24809,12 +35450,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -24873,10 +35543,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -24904,18 +35589,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -24925,7 +35631,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -24947,7 +35666,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -24966,6 +35698,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -24977,8 +35716,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -25014,9 +35770,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -25068,26 +35843,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -25214,6 +36030,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementRateBasedSta class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -25223,8 +36046,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -25250,9 +36086,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -25300,12 +36163,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -25342,6 +36224,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -25355,9 +36244,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -25407,12 +36323,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -25455,6 +36390,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -25470,12 +36412,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -25534,10 +36505,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -25565,18 +36551,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -25586,7 +36593,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -25608,7 +36628,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -25627,6 +36660,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -25638,8 +36678,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -25677,10 +36734,35 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRegexMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchArgs'] field_to_match: The part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRegexMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRegexMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -25744,26 +36826,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRegexMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -25890,6 +37013,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementRegexMatchSt class WebAclRuleStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -25899,8 +37029,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRegexMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -25926,9 +37069,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -25976,12 +37146,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -26018,6 +37207,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -26031,9 +37227,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -26083,12 +37306,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -26131,6 +37373,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -26146,12 +37395,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -26210,10 +37488,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -26241,18 +37534,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRegexMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRegexMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -26262,7 +37576,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRegexMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -26284,7 +37611,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -26303,6 +37643,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementRegexMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -26314,8 +37661,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRegexMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -26353,10 +37717,33 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRegexPatternSetReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -26420,26 +37807,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -26566,6 +37994,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementRegexPattern class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -26575,8 +38010,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -26602,9 +38050,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -26652,12 +38127,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -26694,6 +38188,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -26707,9 +38208,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -26759,12 +38287,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -26807,6 +38354,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -26822,12 +38376,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -26886,10 +38469,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -26917,18 +38515,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -26938,7 +38557,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -26960,7 +38592,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -26979,6 +38624,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -26990,8 +38642,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRegexPatternSetReferenceStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -27027,9 +38696,26 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the `wafv2.RuleGroup` resource. :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideArgs']]] rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details. """ - pulumi.set(__self__, "arn", arn) + WebAclRuleStatementRuleGroupReferenceStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + rule_action_overrides=rule_action_overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + rule_action_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if rule_action_overrides is None and 'ruleActionOverrides' in kwargs: + rule_action_overrides = kwargs['ruleActionOverrides'] + + _setter("arn", arn) if rule_action_overrides is not None: - pulumi.set(__self__, "rule_action_overrides", rule_action_overrides) + _setter("rule_action_overrides", rule_action_overrides) @property @pulumi.getter @@ -27065,8 +38751,27 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs'] action_to_use: Override action to use, in place of the configured action of the rule in the rule group. See `action` for details. :param pulumi.Input[str] name: Name of the rule to override. See the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ - pulumi.set(__self__, "action_to_use", action_to_use) - pulumi.set(__self__, "name", name) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_to_use=action_to_use, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_to_use: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_to_use is None and 'actionToUse' in kwargs: + action_to_use = kwargs['actionToUse'] + if action_to_use is None: + raise TypeError("Missing 'action_to_use' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("action_to_use", action_to_use) + _setter("name", name) @property @pulumi.getter(name="actionToUse") @@ -27102,28 +38807,47 @@ def __init__(__self__, *, challenge: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs']] = None, count: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs']] = None): """ - :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs'] allow: Specifies that AWS WAF should allow requests by default. See `allow` below for details. - :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs'] block: Specifies that AWS WAF should block requests by default. See `block` below for details. + :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs'] allow: Instructs AWS WAF to allow the web request. See `allow` below for details. + :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs'] block: Instructs AWS WAF to block the web request. See `block` below for details. :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs'] captcha: Instructs AWS WAF to run a Captcha check against the web request. See `captcha` below for details. :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs'] challenge: Instructs AWS WAF to run a check against the request to verify that the request is coming from a legitimate client session. See `challenge` below for details. :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs'] count: Instructs AWS WAF to count the web request and allow it. See `count` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + captcha=captcha, + challenge=challenge, + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs']] = None, + block: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs']] = None, + captcha: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs']] = None, + challenge: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs']] = None, + count: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) if captcha is not None: - pulumi.set(__self__, "captcha", captcha) + _setter("captcha", captcha) if challenge is not None: - pulumi.set(__self__, "challenge", challenge) + _setter("challenge", challenge) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter def allow(self) -> Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs']]: """ - Specifies that AWS WAF should allow requests by default. See `allow` below for details. + Instructs AWS WAF to allow the web request. See `allow` below for details. """ return pulumi.get(self, "allow") @@ -27135,7 +38859,7 @@ def allow(self, value: Optional[pulumi.Input['WebAclRuleStatementRuleGroupRefere @pulumi.getter def block(self) -> Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs']]: """ - Specifies that AWS WAF should block requests by default. See `block` below for details. + Instructs AWS WAF to block the web request. See `block` below for details. """ return pulumi.get(self, "block") @@ -27187,8 +38911,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -27210,7 +38947,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -27234,8 +38986,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -27269,8 +39038,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs'] custom_response: Defines a custom response for the web request. See `custom_response` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -27296,11 +39078,34 @@ def __init__(__self__, *, :param pulumi.Input[str] custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs']]] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See `response_header` below for details. """ - pulumi.set(__self__, "response_code", response_code) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[pulumi.Input[int]] = None, + custom_response_body_key: Optional[pulumi.Input[str]] = None, + response_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -27348,8 +39153,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -27383,8 +39205,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -27406,7 +39241,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -27430,8 +39280,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -27465,8 +39332,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -27488,7 +39368,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -27512,8 +39407,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -27547,8 +39459,21 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs'] custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -27570,7 +39495,22 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs']]] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -27594,8 +39534,25 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param pulumi.Input[str] value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -27635,11 +39592,40 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementSizeConstraintStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementSizeConstraintStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementSizeConstraintStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -27715,26 +39701,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -27861,6 +39888,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementSizeConstrai class WebAclRuleStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -27870,8 +39904,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -27897,9 +39944,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -27947,12 +40021,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -27989,6 +40082,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -28002,9 +40102,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -28054,12 +40181,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -28102,6 +40248,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -28117,12 +40270,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -28181,10 +40363,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -28212,18 +40409,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementSizeConstraintStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementSizeConstraintStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -28233,7 +40451,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -28255,7 +40486,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -28274,6 +40518,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementSizeConstraintStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -28285,8 +40536,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementSizeConstraintStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -28322,9 +40590,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementSqliMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementSqliMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementSqliMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -28376,26 +40663,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementSqliMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -28522,6 +40850,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementSqliMatchSta class WebAclRuleStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -28531,8 +40866,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementSqliMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -28558,9 +40906,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -28608,12 +40983,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -28650,6 +41044,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -28663,9 +41064,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -28715,12 +41143,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -28763,6 +41210,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -28778,12 +41232,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -28842,10 +41325,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -28873,18 +41371,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementSqliMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementSqliMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -28894,7 +41413,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementSqliMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -28916,7 +41448,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -28935,6 +41480,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementSqliMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -28946,8 +41498,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementSqliMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -28983,9 +41552,28 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementXssMatchStatementTextTransformationArgs']]] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchArgs'] field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementXssMatchStatementArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementXssMatchStatementTextTransformationArgs']]]] = None, + field_to_match: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -29037,26 +41625,67 @@ def __init__(__self__, *, :param pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs'] single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchUriPathArgs'] uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementXssMatchStatementFieldToMatchArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs']] = None, + body: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchBodyArgs']] = None, + cookies: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchCookiesArgs']] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchHeaderArgs']]]] = None, + json_body: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyArgs']] = None, + method: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchMethodArgs']] = None, + query_string: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchQueryStringArgs']] = None, + single_header: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchSingleHeaderArgs']] = None, + single_query_argument: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs']] = None, + uri_path: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchUriPathArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -29183,6 +41812,13 @@ def uri_path(self, value: Optional[pulumi.Input['WebAclRuleStatementXssMatchStat class WebAclRuleStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -29192,8 +41828,21 @@ def __init__(__self__, *, """ :param pulumi.Input[str] oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementXssMatchStatementFieldToMatchBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -29219,9 +41868,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param pulumi.Input[str] oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementXssMatchStatementFieldToMatchCookiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs']]]] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -29269,12 +41945,31 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs']] = None, + excluded_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_cookies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -29311,6 +42006,13 @@ def included_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -29324,9 +42026,36 @@ def __init__(__self__, *, :param pulumi.Input[str] match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param pulumi.Input[str] oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementXssMatchStatementFieldToMatchHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -29376,12 +42105,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param pulumi.Input[Sequence[pulumi.Input[str]]] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs']] = None, + excluded_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -29424,6 +42172,13 @@ def included_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st class WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -29439,12 +42194,41 @@ def __init__(__self__, *, :param pulumi.Input[str] invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param pulumi.Input[str] oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs']] = None, + match_scope: Optional[pulumi.Input[str]] = None, + invalid_fallback_behavior: Optional[pulumi.Input[str]] = None, + oversize_handling: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -29503,10 +42287,25 @@ def __init__(__self__, *, """ :param pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs'] all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional[pulumi.Input['WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs']] = None, + included_paths: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -29534,18 +42333,39 @@ def included_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] class WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementXssMatchStatementFieldToMatchMethodArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type class WebAclRuleStatementXssMatchStatementFieldToMatchQueryStringArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -29555,7 +42375,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementXssMatchStatementFieldToMatchSingleHeaderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -29577,7 +42410,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -29596,6 +42442,13 @@ def name(self, value: pulumi.Input[str]): class WebAclRuleStatementXssMatchStatementFieldToMatchUriPathArgs: def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.input_type @@ -29607,8 +42460,25 @@ def __init__(__self__, *, :param pulumi.Input[int] priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param pulumi.Input[str] type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementXssMatchStatementTextTransformationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[pulumi.Input[int]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -29646,9 +42516,36 @@ def __init__(__self__, *, :param pulumi.Input[str] metric_name: A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`. :param pulumi.Input[bool] sampled_requests_enabled: Whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. """ - pulumi.set(__self__, "cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "sampled_requests_enabled", sampled_requests_enabled) + WebAclRuleVisibilityConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_metrics_enabled=cloudwatch_metrics_enabled, + metric_name=metric_name, + sampled_requests_enabled=sampled_requests_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_metrics_enabled: Optional[pulumi.Input[bool]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + sampled_requests_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_metrics_enabled is None and 'cloudwatchMetricsEnabled' in kwargs: + cloudwatch_metrics_enabled = kwargs['cloudwatchMetricsEnabled'] + if cloudwatch_metrics_enabled is None: + raise TypeError("Missing 'cloudwatch_metrics_enabled' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if sampled_requests_enabled is None and 'sampledRequestsEnabled' in kwargs: + sampled_requests_enabled = kwargs['sampledRequestsEnabled'] + if sampled_requests_enabled is None: + raise TypeError("Missing 'sampled_requests_enabled' argument") + + _setter("cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) + _setter("metric_name", metric_name) + _setter("sampled_requests_enabled", sampled_requests_enabled) @property @pulumi.getter(name="cloudwatchMetricsEnabled") @@ -29698,9 +42595,36 @@ def __init__(__self__, *, :param pulumi.Input[str] metric_name: A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`. :param pulumi.Input[bool] sampled_requests_enabled: Whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. """ - pulumi.set(__self__, "cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "sampled_requests_enabled", sampled_requests_enabled) + WebAclVisibilityConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_metrics_enabled=cloudwatch_metrics_enabled, + metric_name=metric_name, + sampled_requests_enabled=sampled_requests_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_metrics_enabled: Optional[pulumi.Input[bool]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + sampled_requests_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_metrics_enabled is None and 'cloudwatchMetricsEnabled' in kwargs: + cloudwatch_metrics_enabled = kwargs['cloudwatchMetricsEnabled'] + if cloudwatch_metrics_enabled is None: + raise TypeError("Missing 'cloudwatch_metrics_enabled' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if sampled_requests_enabled is None and 'sampledRequestsEnabled' in kwargs: + sampled_requests_enabled = kwargs['sampledRequestsEnabled'] + if sampled_requests_enabled is None: + raise TypeError("Missing 'sampled_requests_enabled' argument") + + _setter("cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) + _setter("metric_name", metric_name) + _setter("sampled_requests_enabled", sampled_requests_enabled) @property @pulumi.getter(name="cloudwatchMetricsEnabled") diff --git a/sdk/python/pulumi_aws/wafv2/get_ip_set.py b/sdk/python/pulumi_aws/wafv2/get_ip_set.py index 8df09a2244d..b58084d5190 100644 --- a/sdk/python/pulumi_aws/wafv2/get_ip_set.py +++ b/sdk/python/pulumi_aws/wafv2/get_ip_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/wafv2/get_regex_pattern_set.py b/sdk/python/pulumi_aws/wafv2/get_regex_pattern_set.py index 61f7971ae2c..51e5a0d9f9c 100644 --- a/sdk/python/pulumi_aws/wafv2/get_regex_pattern_set.py +++ b/sdk/python/pulumi_aws/wafv2/get_regex_pattern_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/wafv2/get_rule_group.py b/sdk/python/pulumi_aws/wafv2/get_rule_group.py index 11b353efccc..1cf5a8fd9fd 100644 --- a/sdk/python/pulumi_aws/wafv2/get_rule_group.py +++ b/sdk/python/pulumi_aws/wafv2/get_rule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/wafv2/get_web_acl.py b/sdk/python/pulumi_aws/wafv2/get_web_acl.py index 9554f8be2ca..95324f62b42 100644 --- a/sdk/python/pulumi_aws/wafv2/get_web_acl.py +++ b/sdk/python/pulumi_aws/wafv2/get_web_acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/wafv2/ip_set.py b/sdk/python/pulumi_aws/wafv2/ip_set.py index 182bb8055f5..fae0e33d815 100644 --- a/sdk/python/pulumi_aws/wafv2/ip_set.py +++ b/sdk/python/pulumi_aws/wafv2/ip_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['IpSetArgs', 'IpSet'] @@ -29,16 +29,43 @@ def __init__(__self__, *, :param pulumi.Input[str] name: A friendly name of the IP set. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: An array of key:value pairs to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "ip_address_version", ip_address_version) - pulumi.set(__self__, "scope", scope) + IpSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + ip_address_version=ip_address_version, + scope=scope, + addresses=addresses, + description=description, + name=name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + ip_address_version: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_address_version is None and 'ipAddressVersion' in kwargs: + ip_address_version = kwargs['ipAddressVersion'] + if ip_address_version is None: + raise TypeError("Missing 'ip_address_version' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("ip_address_version", ip_address_version) + _setter("scope", scope) if addresses is not None: - pulumi.set(__self__, "addresses", addresses) + _setter("addresses", addresses) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="ipAddressVersion") @@ -136,27 +163,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: An array of key:value pairs to associate with 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. """ + _IpSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + addresses=addresses, + arn=arn, + description=description, + ip_address_version=ip_address_version, + lock_token=lock_token, + name=name, + scope=scope, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + ip_address_version: Optional[pulumi.Input[str]] = None, + lock_token: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + scope: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if ip_address_version is None and 'ipAddressVersion' in kwargs: + ip_address_version = kwargs['ipAddressVersion'] + if lock_token is None and 'lockToken' in kwargs: + lock_token = kwargs['lockToken'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if addresses is not None: - pulumi.set(__self__, "addresses", addresses) + _setter("addresses", addresses) if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if ip_address_version is not None: - pulumi.set(__self__, "ip_address_version", ip_address_version) + _setter("ip_address_version", ip_address_version) if lock_token is not None: - pulumi.set(__self__, "lock_token", lock_token) + _setter("lock_token", lock_token) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -366,6 +426,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IpSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafv2/outputs.py b/sdk/python/pulumi_aws/wafv2/outputs.py index ddae8af2d48..f8fd0f60832 100644 --- a/sdk/python/pulumi_aws/wafv2/outputs.py +++ b/sdk/python/pulumi_aws/wafv2/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs @@ -818,7 +818,22 @@ def __init__(__self__, *, """ :param str regex_string: The string representing the regular expression, see the AWS WAF [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-regex-pattern-set-creating.html) for more information. """ - pulumi.set(__self__, "regex_string", regex_string) + RegexPatternSetRegularExpression._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + + _setter("regex_string", regex_string) @property @pulumi.getter(name="regexString") @@ -857,9 +872,32 @@ def __init__(__self__, *, :param str content_type: The type of content in the payload that you are defining in the `content` argument. Valid values are `TEXT_PLAIN`, `TEXT_HTML`, or `APPLICATION_JSON`. :param str key: A unique key identifying the custom response body. This is referenced by the `custom_response_body_key` argument in the Custom Response block. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "key", key) + RuleGroupCustomResponseBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("content", content) + _setter("content_type", content_type) + _setter("key", key) @property @pulumi.getter @@ -926,15 +964,54 @@ def __init__(__self__, *, :param 'RuleGroupRuleCaptchaConfigArgs' captcha_config: Specifies how AWS WAF should handle CAPTCHA evaluations. See Captcha Configuration below for details. :param Sequence['RuleGroupRuleRuleLabelArgs'] rule_labels: Labels to apply to web requests that match the rule match statement. See Rule Label below for details. """ - pulumi.set(__self__, "action", action) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "statement", statement) - pulumi.set(__self__, "visibility_config", visibility_config) + RuleGroupRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + name=name, + priority=priority, + statement=statement, + visibility_config=visibility_config, + captcha_config=captcha_config, + rule_labels=rule_labels, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional['outputs.RuleGroupRuleAction'] = None, + name: Optional[str] = None, + priority: Optional[int] = None, + statement: Optional['outputs.RuleGroupRuleStatement'] = None, + visibility_config: Optional['outputs.RuleGroupRuleVisibilityConfig'] = None, + captcha_config: Optional['outputs.RuleGroupRuleCaptchaConfig'] = None, + rule_labels: Optional[Sequence['outputs.RuleGroupRuleRuleLabel']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if statement is None: + raise TypeError("Missing 'statement' argument") + if visibility_config is None and 'visibilityConfig' in kwargs: + visibility_config = kwargs['visibilityConfig'] + if visibility_config is None: + raise TypeError("Missing 'visibility_config' argument") + if captcha_config is None and 'captchaConfig' in kwargs: + captcha_config = kwargs['captchaConfig'] + if rule_labels is None and 'ruleLabels' in kwargs: + rule_labels = kwargs['ruleLabels'] + + _setter("action", action) + _setter("name", name) + _setter("priority", priority) + _setter("statement", statement) + _setter("visibility_config", visibility_config) if captcha_config is not None: - pulumi.set(__self__, "captcha_config", captcha_config) + _setter("captcha_config", captcha_config) if rule_labels is not None: - pulumi.set(__self__, "rule_labels", rule_labels) + _setter("rule_labels", rule_labels) @property @pulumi.getter @@ -1008,16 +1085,35 @@ def __init__(__self__, *, :param 'RuleGroupRuleActionChallengeArgs' challenge: Instructs AWS WAF to run a check against the request to verify that the request is coming from a legitimate client session. See Challenge below for details. :param 'RuleGroupRuleActionCountArgs' count: Instructs AWS WAF to count the web request and allow it. See Count below for details. """ + RuleGroupRuleAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + captcha=captcha, + challenge=challenge, + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional['outputs.RuleGroupRuleActionAllow'] = None, + block: Optional['outputs.RuleGroupRuleActionBlock'] = None, + captcha: Optional['outputs.RuleGroupRuleActionCaptcha'] = None, + challenge: Optional['outputs.RuleGroupRuleActionChallenge'] = None, + count: Optional['outputs.RuleGroupRuleActionCount'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) if captcha is not None: - pulumi.set(__self__, "captcha", captcha) + _setter("captcha", captcha) if challenge is not None: - pulumi.set(__self__, "challenge", challenge) + _setter("challenge", challenge) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter @@ -1084,8 +1180,21 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleActionAllowCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See Custom Request Handling below for details. """ + RuleGroupRuleActionAllow._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.RuleGroupRuleActionAllowCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -1120,7 +1229,22 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleActionAllowCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + RuleGroupRuleActionAllowCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.RuleGroupRuleActionAllowCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -1140,8 +1264,25 @@ def __init__(__self__, *, :param str name: A friendly name of the rule group. :param str value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionAllowCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1184,8 +1325,21 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleActionBlockCustomResponseArgs' custom_response: Defines a custom response for the web request. See Custom Response below for details. """ + RuleGroupRuleActionBlock._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional['outputs.RuleGroupRuleActionBlockCustomResponse'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -1228,11 +1382,34 @@ def __init__(__self__, *, :param str custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param Sequence['RuleGroupRuleActionBlockCustomResponseResponseHeaderArgs'] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "response_code", response_code) + RuleGroupRuleActionBlockCustomResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[int] = None, + custom_response_body_key: Optional[str] = None, + response_headers: Optional[Sequence['outputs.RuleGroupRuleActionBlockCustomResponseResponseHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -1268,8 +1445,25 @@ def __init__(__self__, *, :param str name: A friendly name of the rule group. :param str value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionBlockCustomResponseResponseHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1312,8 +1506,21 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleActionCaptchaCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See Custom Request Handling below for details. """ + RuleGroupRuleActionCaptcha._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.RuleGroupRuleActionCaptchaCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -1348,7 +1555,22 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + RuleGroupRuleActionCaptchaCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.RuleGroupRuleActionCaptchaCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -1368,8 +1590,25 @@ def __init__(__self__, *, :param str name: A friendly name of the rule group. :param str value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionCaptchaCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1412,8 +1651,21 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleActionChallengeCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See Custom Request Handling below for details. """ + RuleGroupRuleActionChallenge._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.RuleGroupRuleActionChallengeCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -1448,7 +1700,22 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleActionChallengeCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + RuleGroupRuleActionChallengeCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.RuleGroupRuleActionChallengeCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -1468,8 +1735,25 @@ def __init__(__self__, *, :param str name: A friendly name of the rule group. :param str value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionChallengeCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1512,8 +1796,21 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleActionCountCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See Custom Request Handling below for details. """ + RuleGroupRuleActionCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.RuleGroupRuleActionCountCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -1548,7 +1845,22 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleActionCountCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See Custom HTTP Header below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + RuleGroupRuleActionCountCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.RuleGroupRuleActionCountCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -1568,8 +1880,25 @@ def __init__(__self__, *, :param str name: A friendly name of the rule group. :param str value: The value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + RuleGroupRuleActionCountCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -1612,8 +1941,21 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleCaptchaConfigImmunityTimePropertyArgs' immunity_time_property: Defines custom immunity time. See Immunity Time Property below for details. """ + RuleGroupRuleCaptchaConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time_property=immunity_time_property, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time_property: Optional['outputs.RuleGroupRuleCaptchaConfigImmunityTimeProperty'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time_property is None and 'immunityTimeProperty' in kwargs: + immunity_time_property = kwargs['immunityTimeProperty'] + if immunity_time_property is not None: - pulumi.set(__self__, "immunity_time_property", immunity_time_property) + _setter("immunity_time_property", immunity_time_property) @property @pulumi.getter(name="immunityTimeProperty") @@ -1648,8 +1990,21 @@ def __init__(__self__, *, """ :param int immunity_time: The amount of time, in seconds, that a CAPTCHA or challenge timestamp is considered valid by AWS WAF. The default setting is 300. """ + RuleGroupRuleCaptchaConfigImmunityTimeProperty._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time=immunity_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time is None and 'immunityTime' in kwargs: + immunity_time = kwargs['immunityTime'] + if immunity_time is not None: - pulumi.set(__self__, "immunity_time", immunity_time) + _setter("immunity_time", immunity_time) @property @pulumi.getter(name="immunityTime") @@ -1667,7 +2022,20 @@ def __init__(__self__, *, """ :param str name: The label string. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleRuleLabel._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -1750,32 +2118,93 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementSqliMatchStatementArgs' sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details. :param 'RuleGroupRuleStatementXssMatchStatementArgs' xss_match_statement: A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details. """ + RuleGroupRuleStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + not_statement=not_statement, + or_statement=or_statement, + rate_based_statement=rate_based_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional['outputs.RuleGroupRuleStatementAndStatement'] = None, + byte_match_statement: Optional['outputs.RuleGroupRuleStatementByteMatchStatement'] = None, + geo_match_statement: Optional['outputs.RuleGroupRuleStatementGeoMatchStatement'] = None, + ip_set_reference_statement: Optional['outputs.RuleGroupRuleStatementIpSetReferenceStatement'] = None, + label_match_statement: Optional['outputs.RuleGroupRuleStatementLabelMatchStatement'] = None, + not_statement: Optional['outputs.RuleGroupRuleStatementNotStatement'] = None, + or_statement: Optional['outputs.RuleGroupRuleStatementOrStatement'] = None, + rate_based_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatement'] = None, + regex_match_statement: Optional['outputs.RuleGroupRuleStatementRegexMatchStatement'] = None, + regex_pattern_set_reference_statement: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatement'] = None, + size_constraint_statement: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatement'] = None, + sqli_match_statement: Optional['outputs.RuleGroupRuleStatementSqliMatchStatement'] = None, + xss_match_statement: Optional['outputs.RuleGroupRuleStatementXssMatchStatement'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if rate_based_statement is None and 'rateBasedStatement' in kwargs: + rate_based_statement = kwargs['rateBasedStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if rate_based_statement is not None: - pulumi.set(__self__, "rate_based_statement", rate_based_statement) + _setter("rate_based_statement", rate_based_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -1889,7 +2318,20 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementAndStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.RuleGroupRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -1938,11 +2380,42 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementByteMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementByteMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[str] = None, + search_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementByteMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -2031,26 +2504,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementByteMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementByteMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -2137,6 +2651,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementByteMatchStatement class RuleGroupRuleStatementByteMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -2161,16 +2682,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementByteMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -2207,9 +2741,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementByteMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -2264,12 +2825,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -2294,6 +2874,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -2328,9 +2915,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementByteMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -2387,12 +3001,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -2423,6 +3056,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -2461,12 +3101,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -2526,10 +3195,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -2549,18 +3233,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementByteMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementByteMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -2570,7 +3275,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -2588,7 +3306,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementByteMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -2603,6 +3334,13 @@ def name(self) -> str: class RuleGroupRuleStatementByteMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -2614,8 +3352,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementByteMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -2662,9 +3417,28 @@ def __init__(__self__, *, :param Sequence[str] country_codes: An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param 'RuleGroupRuleStatementGeoMatchStatementForwardedIpConfigArgs' forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See Forwarded IP Config below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + RuleGroupRuleStatementGeoMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[Sequence[str]] = None, + forwarded_ip_config: Optional['outputs.RuleGroupRuleStatementGeoMatchStatementForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -2711,8 +3485,29 @@ def __init__(__self__, *, :param str fallback_behavior: The match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param str header_name: The name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + RuleGroupRuleStatementGeoMatchStatementForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -2757,9 +3552,26 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param 'RuleGroupRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs' ip_set_forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See IPSet Forwarded IP Config below for more details. """ - pulumi.set(__self__, "arn", arn) + RuleGroupRuleStatementIpSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + ip_set_forwarded_ip_config: Optional['outputs.RuleGroupRuleStatementIpSetReferenceStatementIpSetForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -2808,9 +3620,34 @@ def __init__(__self__, *, :param str header_name: The name of the HTTP header to use for the IP address. :param str position: The position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + RuleGroupRuleStatementIpSetReferenceStatementIpSetForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + position: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -2846,8 +3683,25 @@ def __init__(__self__, *, :param str key: The string to match against. :param str scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + RuleGroupRuleStatementLabelMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + scope: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -2873,7 +3727,20 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementNotStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.RuleGroupRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -2891,7 +3758,20 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementOrStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.RuleGroupRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -2940,15 +3820,44 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRateBasedStatementForwardedIpConfigArgs' forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. If `aggregate_key_type` is set to `FORWARDED_IP`, this block is required. See Forwarded IP Config below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementArgs' scope_down_statement: An optional nested statement that narrows the scope of the rate-based statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See Statement above for details. If `aggregate_key_type` is set to `CONSTANT`, this block is required. """ - pulumi.set(__self__, "limit", limit) + RuleGroupRuleStatementRateBasedStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + limit=limit, + aggregate_key_type=aggregate_key_type, + custom_keys=custom_keys, + forwarded_ip_config=forwarded_ip_config, + scope_down_statement=scope_down_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + limit: Optional[int] = None, + aggregate_key_type: Optional[str] = None, + custom_keys: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementCustomKey']] = None, + forwarded_ip_config: Optional['outputs.RuleGroupRuleStatementRateBasedStatementForwardedIpConfig'] = None, + scope_down_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatement'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if limit is None: + raise TypeError("Missing 'limit' argument") + if aggregate_key_type is None and 'aggregateKeyType' in kwargs: + aggregate_key_type = kwargs['aggregateKeyType'] + if custom_keys is None and 'customKeys' in kwargs: + custom_keys = kwargs['customKeys'] + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + if scope_down_statement is None and 'scopeDownStatement' in kwargs: + scope_down_statement = kwargs['scopeDownStatement'] + + _setter("limit", limit) if aggregate_key_type is not None: - pulumi.set(__self__, "aggregate_key_type", aggregate_key_type) + _setter("aggregate_key_type", aggregate_key_type) if custom_keys is not None: - pulumi.set(__self__, "custom_keys", custom_keys) + _setter("custom_keys", custom_keys) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) if scope_down_statement is not None: - pulumi.set(__self__, "scope_down_statement", scope_down_statement) + _setter("scope_down_statement", scope_down_statement) @property @pulumi.getter @@ -3041,24 +3950,63 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringArgs' query_string: Inspect the query string. This is the part of a URL that appears after a `?` character, if any. :param 'RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementCustomKey._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie=cookie, + forwarded_ip=forwarded_ip, + header=header, + http_method=http_method, + ip=ip, + label_namespace=label_namespace, + query_argument=query_argument, + query_string=query_string, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie: Optional['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyCookie'] = None, + forwarded_ip: Optional['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyForwardedIp'] = None, + header: Optional['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyHeader'] = None, + http_method: Optional['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyHttpMethod'] = None, + ip: Optional['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyIp'] = None, + label_namespace: Optional['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyLabelNamespace'] = None, + query_argument: Optional['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forwarded_ip is None and 'forwardedIp' in kwargs: + forwarded_ip = kwargs['forwardedIp'] + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if label_namespace is None and 'labelNamespace' in kwargs: + label_namespace = kwargs['labelNamespace'] + if query_argument is None and 'queryArgument' in kwargs: + query_argument = kwargs['queryArgument'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if cookie is not None: - pulumi.set(__self__, "cookie", cookie) + _setter("cookie", cookie) if forwarded_ip is not None: - pulumi.set(__self__, "forwarded_ip", forwarded_ip) + _setter("forwarded_ip", forwarded_ip) if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if ip is not None: - pulumi.set(__self__, "ip", ip) + _setter("ip", ip) if label_namespace is not None: - pulumi.set(__self__, "label_namespace", label_namespace) + _setter("label_namespace", label_namespace) if query_argument is not None: - pulumi.set(__self__, "query_argument", query_argument) + _setter("query_argument", query_argument) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter @@ -3160,19 +4108,28 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyCookie._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -3189,16 +4146,6 @@ def text_transformations(self) -> Sequence['outputs.RuleGroupRuleStatementRateBa Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3212,8 +4159,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyCookieTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3236,6 +4200,13 @@ def type(self) -> str: class RuleGroupRuleStatementRateBasedStatementCustomKeyForwardedIp(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -3265,19 +4236,28 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -3294,16 +4274,6 @@ def text_transformations(self) -> Sequence['outputs.RuleGroupRuleStatementRateBa Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3317,8 +4287,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3341,12 +4328,26 @@ def type(self) -> str: class RuleGroupRuleStatementRateBasedStatementCustomKeyHttpMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementCustomKeyIp(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -3356,7 +4357,20 @@ def __init__(__self__, *, """ :param str namespace: The namespace to use for aggregation """ - pulumi.set(__self__, "namespace", namespace) + RuleGroupRuleStatementRateBasedStatementCustomKeyLabelNamespace._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) @property @pulumi.getter @@ -3394,19 +4408,28 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -3423,16 +4446,6 @@ def text_transformations(self) -> Sequence['outputs.RuleGroupRuleStatementRateBa Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3446,8 +4459,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3491,18 +4521,23 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyQueryString._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("text_transformations", text_transformations) @property @pulumi.getter(name="textTransformations") @@ -3511,16 +4546,6 @@ def text_transformations(self) -> Sequence['outputs.RuleGroupRuleStatementRateBa Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3534,8 +4559,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3579,18 +4621,23 @@ def __init__(__self__, *, :param Sequence['RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementCustomKeyUriPath._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("text_transformations", text_transformations) @property @pulumi.getter(name="textTransformations") @@ -3599,16 +4646,6 @@ def text_transformations(self) -> Sequence['outputs.RuleGroupRuleStatementRateBa Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one required. See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. - At least one required. - See Text Transformation below for details. """ return pulumi.get(self, "text_transformations") @@ -3622,8 +4659,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -3670,8 +4724,29 @@ def __init__(__self__, *, :param str fallback_behavior: The match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param str header_name: The name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + RuleGroupRuleStatementRateBasedStatementForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -3758,30 +4833,87 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs' sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs' xss_match_statement: A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + not_statement=not_statement, + or_statement=or_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementAndStatement'] = None, + byte_match_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatement'] = None, + geo_match_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatement'] = None, + ip_set_reference_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatement'] = None, + label_match_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatement'] = None, + not_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementNotStatement'] = None, + or_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementOrStatement'] = None, + regex_match_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatement'] = None, + regex_pattern_set_reference_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatement'] = None, + size_constraint_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatement'] = None, + sqli_match_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatement'] = None, + xss_match_statement: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatement'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -3887,7 +5019,20 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementAndStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.RuleGroupRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -3936,11 +5081,42 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[str] = None, + search_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -4029,26 +5205,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -4135,6 +5352,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementRateBasedStatement class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -4159,16 +5383,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -4205,9 +5442,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -4262,12 +5526,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -4292,6 +5575,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -4326,9 +5616,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -4385,12 +5702,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -4421,6 +5757,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -4459,12 +5802,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -4524,10 +5896,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -4547,18 +5934,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -4568,7 +5976,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -4586,7 +6007,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -4601,6 +6035,13 @@ def name(self) -> str: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -4612,8 +6053,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -4660,9 +6118,28 @@ def __init__(__self__, *, :param Sequence[str] country_codes: An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs' forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See Forwarded IP Config below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[Sequence[str]] = None, + forwarded_ip_config: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -4709,8 +6186,29 @@ def __init__(__self__, *, :param str fallback_behavior: The match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param str header_name: The name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -4755,9 +6253,26 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs' ip_set_forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See IPSet Forwarded IP Config below for more details. """ - pulumi.set(__self__, "arn", arn) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + ip_set_forwarded_ip_config: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -4806,9 +6321,34 @@ def __init__(__self__, *, :param str header_name: The name of the HTTP header to use for the IP address. :param str position: The position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + position: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -4844,8 +6384,25 @@ def __init__(__self__, *, :param str key: The string to match against. :param str scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + scope: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -4871,7 +6428,20 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementNotStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.RuleGroupRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -4889,7 +6459,20 @@ def __init__(__self__, *, """ :param Sequence['RuleGroupRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementOrStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.RuleGroupRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -4934,10 +6517,35 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -5018,26 +6626,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -5124,6 +6773,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementRateBasedStatement class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -5148,16 +6804,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -5194,9 +6863,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -5251,12 +6947,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -5281,6 +6996,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -5315,9 +7037,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -5374,12 +7123,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -5410,6 +7178,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -5448,12 +7223,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -5513,10 +7317,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -5536,18 +7355,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -5557,7 +7397,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -5575,7 +7428,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -5590,6 +7456,13 @@ def name(self) -> str: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -5601,8 +7474,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -5653,10 +7543,33 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -5737,26 +7650,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -5843,6 +7797,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementRateBasedStatement class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -5867,16 +7828,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -5913,9 +7887,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -5970,12 +7971,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -6000,6 +8020,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -6034,9 +8061,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -6093,12 +8147,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -6129,6 +8202,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -6167,12 +8247,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -6232,10 +8341,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -6255,18 +8379,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -6276,7 +8421,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -6294,7 +8452,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -6309,6 +8480,13 @@ def name(self) -> str: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -6320,8 +8498,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -6376,11 +8571,40 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[str] = None, + size: Optional[int] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -6469,26 +8693,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -6575,6 +8840,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementRateBasedStatement class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -6599,16 +8871,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -6645,9 +8930,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -6702,12 +9014,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -6732,6 +9063,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -6766,9 +9104,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -6825,12 +9190,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -6861,6 +9245,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -6899,12 +9290,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -6964,10 +9384,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -6987,18 +9422,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -7008,7 +9464,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -7026,7 +9495,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -7041,6 +9523,13 @@ def name(self) -> str: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -7052,8 +9541,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -7102,9 +9608,28 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -7177,26 +9702,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -7283,6 +9849,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementRateBasedStatement class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -7307,16 +9880,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -7353,9 +9939,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -7410,12 +10023,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -7440,6 +10072,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -7474,9 +10113,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -7533,12 +10199,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -7569,6 +10254,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -7607,12 +10299,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -7672,10 +10393,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -7695,18 +10431,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -7716,7 +10473,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -7734,7 +10504,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -7749,6 +10532,13 @@ def name(self) -> str: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -7760,8 +10550,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -7810,9 +10617,28 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -7885,26 +10711,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -7991,6 +10858,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementRateBasedStatement class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -8015,16 +10889,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -8061,9 +10948,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -8118,12 +11032,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -8148,6 +11081,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -8182,9 +11122,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -8241,12 +11208,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -8277,6 +11263,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -8315,12 +11308,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -8380,10 +11402,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -8403,18 +11440,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -8424,7 +11482,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -8442,7 +11513,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -8457,6 +11541,13 @@ def name(self) -> str: class RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -8468,8 +11559,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -8522,10 +11630,35 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementRegexMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRegexMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRegexMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -8606,26 +11739,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementRegexMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -8712,6 +11886,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementRegexMatchStatemen class RuleGroupRuleStatementRegexMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -8736,16 +11917,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -8782,9 +11976,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -8839,12 +12060,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -8869,6 +12109,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -8903,9 +12150,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -8962,12 +12236,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -8998,6 +12291,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9036,12 +12336,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -9101,10 +12430,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -9124,18 +12468,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRegexMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRegexMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9145,7 +12510,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -9163,7 +12541,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -9178,6 +12569,13 @@ def name(self) -> str: class RuleGroupRuleStatementRegexMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9189,8 +12587,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRegexMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -9241,10 +12656,33 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementRegexPatternSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -9325,26 +12763,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -9431,6 +12910,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementRegexPatternSetRef class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9455,16 +12941,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -9501,9 +13000,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -9558,12 +13084,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -9588,6 +13133,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9622,9 +13174,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -9681,12 +13260,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -9717,6 +13315,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9755,12 +13360,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -9820,10 +13454,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -9843,18 +13492,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9864,7 +13534,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -9882,7 +13565,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -9897,6 +13593,13 @@ def name(self) -> str: class RuleGroupRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -9908,8 +13611,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementRegexPatternSetReferenceStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -9964,11 +13684,40 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementSizeConstraintStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementSizeConstraintStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[str] = None, + size: Optional[int] = None, + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementSizeConstraintStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -10057,26 +13806,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementSizeConstraintStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -10163,6 +13953,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementSizeConstraintStat class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -10187,16 +13984,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -10233,9 +14043,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -10290,12 +14127,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -10320,6 +14176,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -10354,9 +14217,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -10413,12 +14303,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -10449,6 +14358,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -10487,12 +14403,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -10552,10 +14497,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -10575,18 +14535,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -10596,7 +14577,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -10614,7 +14608,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -10629,6 +14636,13 @@ def name(self) -> str: class RuleGroupRuleStatementSizeConstraintStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -10640,8 +14654,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementSizeConstraintStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -10690,9 +14721,28 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementSqliMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementSqliMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementSqliMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -10765,26 +14815,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementSqliMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -10871,6 +14962,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementSqliMatchStatement class RuleGroupRuleStatementSqliMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -10895,16 +14993,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -10941,9 +15052,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -10998,12 +15136,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -11028,6 +15185,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -11062,9 +15226,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -11121,12 +15312,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -11157,6 +15367,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -11195,12 +15412,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -11260,10 +15506,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -11283,18 +15544,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementSqliMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementSqliMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -11304,7 +15586,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -11322,7 +15617,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -11337,6 +15645,13 @@ def name(self) -> str: class RuleGroupRuleStatementSqliMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -11348,8 +15663,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementSqliMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -11398,9 +15730,28 @@ def __init__(__self__, *, See Text Transformation below for details. :param 'RuleGroupRuleStatementXssMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See Field to Match below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + RuleGroupRuleStatementXssMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.RuleGroupRuleStatementXssMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -11473,26 +15824,67 @@ def __init__(__self__, *, :param 'RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See Single Query Argument below for details. :param 'RuleGroupRuleStatementXssMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + RuleGroupRuleStatementXssMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -11579,6 +15971,13 @@ def uri_path(self) -> Optional['outputs.RuleGroupRuleStatementXssMatchStatementF class RuleGroupRuleStatementXssMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -11603,16 +16002,29 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, oversize_handling: Optional[str] = None): """ - :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ + RuleGroupRuleStatementXssMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") def oversize_handling(self) -> Optional[str]: """ - Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. + What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ return pulumi.get(self, "oversize_handling") @@ -11649,9 +16061,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH` """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementXssMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -11706,12 +16145,31 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -11736,6 +16194,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -11770,9 +16235,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + RuleGroupRuleStatementXssMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -11829,12 +16321,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -11865,6 +16376,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -11903,12 +16421,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -11968,10 +16515,25 @@ def __init__(__self__, *, """ :param 'RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -11991,18 +16553,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class RuleGroupRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementXssMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class RuleGroupRuleStatementXssMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -12012,7 +16595,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -12030,7 +16626,20 @@ def __init__(__self__, *, """ :param str name: The name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + RuleGroupRuleStatementXssMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -12045,6 +16654,13 @@ def name(self) -> str: class RuleGroupRuleStatementXssMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -12056,8 +16672,25 @@ def __init__(__self__, *, :param int priority: The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: The transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + RuleGroupRuleStatementXssMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -12108,9 +16741,36 @@ def __init__(__self__, *, :param str metric_name: A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`. :param bool sampled_requests_enabled: A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. """ - pulumi.set(__self__, "cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "sampled_requests_enabled", sampled_requests_enabled) + RuleGroupRuleVisibilityConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_metrics_enabled=cloudwatch_metrics_enabled, + metric_name=metric_name, + sampled_requests_enabled=sampled_requests_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_metrics_enabled: Optional[bool] = None, + metric_name: Optional[str] = None, + sampled_requests_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_metrics_enabled is None and 'cloudwatchMetricsEnabled' in kwargs: + cloudwatch_metrics_enabled = kwargs['cloudwatchMetricsEnabled'] + if cloudwatch_metrics_enabled is None: + raise TypeError("Missing 'cloudwatch_metrics_enabled' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if sampled_requests_enabled is None and 'sampledRequestsEnabled' in kwargs: + sampled_requests_enabled = kwargs['sampledRequestsEnabled'] + if sampled_requests_enabled is None: + raise TypeError("Missing 'sampled_requests_enabled' argument") + + _setter("cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) + _setter("metric_name", metric_name) + _setter("sampled_requests_enabled", sampled_requests_enabled) @property @pulumi.getter(name="cloudwatchMetricsEnabled") @@ -12169,9 +16829,36 @@ def __init__(__self__, *, :param str metric_name: A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`. :param bool sampled_requests_enabled: A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. """ - pulumi.set(__self__, "cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "sampled_requests_enabled", sampled_requests_enabled) + RuleGroupVisibilityConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_metrics_enabled=cloudwatch_metrics_enabled, + metric_name=metric_name, + sampled_requests_enabled=sampled_requests_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_metrics_enabled: Optional[bool] = None, + metric_name: Optional[str] = None, + sampled_requests_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_metrics_enabled is None and 'cloudwatchMetricsEnabled' in kwargs: + cloudwatch_metrics_enabled = kwargs['cloudwatchMetricsEnabled'] + if cloudwatch_metrics_enabled is None: + raise TypeError("Missing 'cloudwatch_metrics_enabled' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if sampled_requests_enabled is None and 'sampledRequestsEnabled' in kwargs: + sampled_requests_enabled = kwargs['sampledRequestsEnabled'] + if sampled_requests_enabled is None: + raise TypeError("Missing 'sampled_requests_enabled' argument") + + _setter("cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) + _setter("metric_name", metric_name) + _setter("sampled_requests_enabled", sampled_requests_enabled) @property @pulumi.getter(name="cloudwatchMetricsEnabled") @@ -12222,8 +16909,21 @@ def __init__(__self__, *, """ :param Sequence['WebAclAssociationConfigRequestBodyArgs'] request_bodies: Customizes the request body that your protected resource forward to AWS WAF for inspection. See `request_body` below for details. """ + WebAclAssociationConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + request_bodies=request_bodies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + request_bodies: Optional[Sequence['outputs.WebAclAssociationConfigRequestBody']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if request_bodies is None and 'requestBodies' in kwargs: + request_bodies = kwargs['requestBodies'] + if request_bodies is not None: - pulumi.set(__self__, "request_bodies", request_bodies) + _setter("request_bodies", request_bodies) @property @pulumi.getter(name="requestBodies") @@ -12241,8 +16941,19 @@ def __init__(__self__, *, """ :param Sequence['WebAclAssociationConfigRequestBodyCloudfrontArgs'] cloudfronts: Customizes the request body that your protected CloudFront distributions forward to AWS WAF for inspection. See `cloudfront` below for details. """ + WebAclAssociationConfigRequestBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudfronts=cloudfronts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudfronts: Optional[Sequence['outputs.WebAclAssociationConfigRequestBodyCloudfront']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudfronts is not None: - pulumi.set(__self__, "cloudfronts", cloudfronts) + _setter("cloudfronts", cloudfronts) @property @pulumi.getter @@ -12277,7 +16988,22 @@ def __init__(__self__, *, """ :param str default_size_inspection_limit: Specifies the maximum size of the web request body component that an associated CloudFront distribution should send to AWS WAF for inspection. This applies to statements in the web ACL that inspect the body or JSON body. Valid values are `KB_16`, `KB_32`, `KB_48` and `KB_64`. """ - pulumi.set(__self__, "default_size_inspection_limit", default_size_inspection_limit) + WebAclAssociationConfigRequestBodyCloudfront._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_size_inspection_limit=default_size_inspection_limit, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_size_inspection_limit: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_size_inspection_limit is None and 'defaultSizeInspectionLimit' in kwargs: + default_size_inspection_limit = kwargs['defaultSizeInspectionLimit'] + if default_size_inspection_limit is None: + raise TypeError("Missing 'default_size_inspection_limit' argument") + + _setter("default_size_inspection_limit", default_size_inspection_limit) @property @pulumi.getter(name="defaultSizeInspectionLimit") @@ -12312,8 +17038,21 @@ def __init__(__self__, *, """ :param 'WebAclCaptchaConfigImmunityTimePropertyArgs' immunity_time_property: Defines custom immunity time. See `immunity_time_property` below for details. """ + WebAclCaptchaConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time_property=immunity_time_property, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time_property: Optional['outputs.WebAclCaptchaConfigImmunityTimeProperty'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time_property is None and 'immunityTimeProperty' in kwargs: + immunity_time_property = kwargs['immunityTimeProperty'] + if immunity_time_property is not None: - pulumi.set(__self__, "immunity_time_property", immunity_time_property) + _setter("immunity_time_property", immunity_time_property) @property @pulumi.getter(name="immunityTimeProperty") @@ -12348,8 +17087,21 @@ def __init__(__self__, *, """ :param int immunity_time: The amount of time, in seconds, that a CAPTCHA or challenge timestamp is considered valid by AWS WAF. The default setting is 300. """ + WebAclCaptchaConfigImmunityTimeProperty._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time=immunity_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time is None and 'immunityTime' in kwargs: + immunity_time = kwargs['immunityTime'] + if immunity_time is not None: - pulumi.set(__self__, "immunity_time", immunity_time) + _setter("immunity_time", immunity_time) @property @pulumi.getter(name="immunityTime") @@ -12388,9 +17140,32 @@ def __init__(__self__, *, :param str content_type: Type of content in the payload that you are defining in the `content` argument. Valid values are `TEXT_PLAIN`, `TEXT_HTML`, or `APPLICATION_JSON`. :param str key: Unique key identifying the custom response body. This is referenced by the `custom_response_body_key` argument in the `custom_response` block. """ - pulumi.set(__self__, "content", content) - pulumi.set(__self__, "content_type", content_type) - pulumi.set(__self__, "key", key) + WebAclCustomResponseBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + content=content, + content_type=content_type, + key=key, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + content: Optional[str] = None, + content_type: Optional[str] = None, + key: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if content is None: + raise TypeError("Missing 'content' argument") + if content_type is None and 'contentType' in kwargs: + content_type = kwargs['contentType'] + if content_type is None: + raise TypeError("Missing 'content_type' argument") + if key is None: + raise TypeError("Missing 'key' argument") + + _setter("content", content) + _setter("content_type", content_type) + _setter("key", key) @property @pulumi.getter @@ -12426,10 +17201,23 @@ def __init__(__self__, *, :param 'WebAclDefaultActionAllowArgs' allow: Specifies that AWS WAF should allow requests by default. See `allow` below for details. :param 'WebAclDefaultActionBlockArgs' block: Specifies that AWS WAF should block requests by default. See `block` below for details. """ + WebAclDefaultAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional['outputs.WebAclDefaultActionAllow'] = None, + block: Optional['outputs.WebAclDefaultActionBlock'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) @property @pulumi.getter @@ -12472,8 +17260,21 @@ def __init__(__self__, *, """ :param 'WebAclDefaultActionAllowCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclDefaultActionAllow._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclDefaultActionAllowCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -12508,7 +17309,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclDefaultActionAllowCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclDefaultActionAllowCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclDefaultActionAllowCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -12528,8 +17344,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclDefaultActionAllowCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -12572,8 +17405,21 @@ def __init__(__self__, *, """ :param 'WebAclDefaultActionBlockCustomResponseArgs' custom_response: Defines a custom response for the web request. See `custom_response` below for details. """ + WebAclDefaultActionBlock._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional['outputs.WebAclDefaultActionBlockCustomResponse'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -12616,11 +17462,34 @@ def __init__(__self__, *, :param str custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param Sequence['WebAclDefaultActionBlockCustomResponseResponseHeaderArgs'] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See `response_header` below for details. """ - pulumi.set(__self__, "response_code", response_code) + WebAclDefaultActionBlockCustomResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[int] = None, + custom_response_body_key: Optional[str] = None, + response_headers: Optional[Sequence['outputs.WebAclDefaultActionBlockCustomResponseResponseHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -12656,8 +17525,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclDefaultActionBlockCustomResponseResponseHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -12702,8 +17588,27 @@ def __init__(__self__, *, :param str default_behavior: Default handling for logs that don't match any of the specified filtering conditions. Valid values for `default_behavior` are `KEEP` or `DROP`. :param Sequence['WebAclLoggingConfigurationLoggingFilterFilterArgs'] filters: Filter(s) that you want to apply to the logs. See Filter below for more details. """ - pulumi.set(__self__, "default_behavior", default_behavior) - pulumi.set(__self__, "filters", filters) + WebAclLoggingConfigurationLoggingFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_behavior=default_behavior, + filters=filters, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_behavior: Optional[str] = None, + filters: Optional[Sequence['outputs.WebAclLoggingConfigurationLoggingFilterFilter']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_behavior is None and 'defaultBehavior' in kwargs: + default_behavior = kwargs['defaultBehavior'] + if default_behavior is None: + raise TypeError("Missing 'default_behavior' argument") + if filters is None: + raise TypeError("Missing 'filters' argument") + + _setter("default_behavior", default_behavior) + _setter("filters", filters) @property @pulumi.getter(name="defaultBehavior") @@ -12733,9 +17638,30 @@ def __init__(__self__, *, :param Sequence['WebAclLoggingConfigurationLoggingFilterFilterConditionArgs'] conditions: Match condition(s) for the filter. See Condition below for more details. :param str requirement: Logic to apply to the filtering conditions. You can specify that a log must match all conditions or at least one condition in order to satisfy the filter. Valid values for `requirement` are `MEETS_ALL` or `MEETS_ANY`. """ - pulumi.set(__self__, "behavior", behavior) - pulumi.set(__self__, "conditions", conditions) - pulumi.set(__self__, "requirement", requirement) + WebAclLoggingConfigurationLoggingFilterFilter._configure( + lambda key, value: pulumi.set(__self__, key, value), + behavior=behavior, + conditions=conditions, + requirement=requirement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + behavior: Optional[str] = None, + conditions: Optional[Sequence['outputs.WebAclLoggingConfigurationLoggingFilterFilterCondition']] = None, + requirement: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if behavior is None: + raise TypeError("Missing 'behavior' argument") + if conditions is None: + raise TypeError("Missing 'conditions' argument") + if requirement is None: + raise TypeError("Missing 'requirement' argument") + + _setter("behavior", behavior) + _setter("conditions", conditions) + _setter("requirement", requirement) @property @pulumi.getter @@ -12790,10 +17716,27 @@ def __init__(__self__, *, :param 'WebAclLoggingConfigurationLoggingFilterFilterConditionActionConditionArgs' action_condition: Configuration for a single action condition. See Action Condition below for more details. :param 'WebAclLoggingConfigurationLoggingFilterFilterConditionLabelNameConditionArgs' label_name_condition: Condition for a single label name. See Label Name Condition below for more details. """ + WebAclLoggingConfigurationLoggingFilterFilterCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_condition=action_condition, + label_name_condition=label_name_condition, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_condition: Optional['outputs.WebAclLoggingConfigurationLoggingFilterFilterConditionActionCondition'] = None, + label_name_condition: Optional['outputs.WebAclLoggingConfigurationLoggingFilterFilterConditionLabelNameCondition'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_condition is None and 'actionCondition' in kwargs: + action_condition = kwargs['actionCondition'] + if label_name_condition is None and 'labelNameCondition' in kwargs: + label_name_condition = kwargs['labelNameCondition'] + if action_condition is not None: - pulumi.set(__self__, "action_condition", action_condition) + _setter("action_condition", action_condition) if label_name_condition is not None: - pulumi.set(__self__, "label_name_condition", label_name_condition) + _setter("label_name_condition", label_name_condition) @property @pulumi.getter(name="actionCondition") @@ -12819,7 +17762,20 @@ def __init__(__self__, *, """ :param str action: Action setting that a log record must contain in order to meet the condition. Valid values for `action` are `ALLOW`, `BLOCK`, and `COUNT`. """ - pulumi.set(__self__, "action", action) + WebAclLoggingConfigurationLoggingFilterFilterConditionActionCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + action=action, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action is None: + raise TypeError("Missing 'action' argument") + + _setter("action", action) @property @pulumi.getter @@ -12854,7 +17810,22 @@ def __init__(__self__, *, """ :param str label_name: Name of the label that a log record must contain in order to meet the condition. It must be a fully qualified label name, which includes a prefix, optional namespaces, and the label name itself. The prefix identifies the rule group or web ACL context of the rule that added the label. """ - pulumi.set(__self__, "label_name", label_name) + WebAclLoggingConfigurationLoggingFilterFilterConditionLabelNameCondition._configure( + lambda key, value: pulumi.set(__self__, key, value), + label_name=label_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + label_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if label_name is None and 'labelName' in kwargs: + label_name = kwargs['labelName'] + if label_name is None: + raise TypeError("Missing 'label_name' argument") + + _setter("label_name", label_name) @property @pulumi.getter(name="labelName") @@ -12899,14 +17870,37 @@ def __init__(__self__, *, :param 'WebAclLoggingConfigurationRedactedFieldSingleHeaderArgs' single_header: "single_header" refers to the redaction of a single header. For more information, please see the details below under Single Header. :param 'WebAclLoggingConfigurationRedactedFieldUriPathArgs' uri_path: Configuration block that redacts the request URI path. It should be specified as an empty configuration block `{}`. The URI path is the part of a web request that identifies a resource, such as `/images/daily-ad.jpg`. """ + WebAclLoggingConfigurationRedactedField._configure( + lambda key, value: pulumi.set(__self__, key, value), + method=method, + query_string=query_string, + single_header=single_header, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + method: Optional['outputs.WebAclLoggingConfigurationRedactedFieldMethod'] = None, + query_string: Optional['outputs.WebAclLoggingConfigurationRedactedFieldQueryString'] = None, + single_header: Optional['outputs.WebAclLoggingConfigurationRedactedFieldSingleHeader'] = None, + uri_path: Optional['outputs.WebAclLoggingConfigurationRedactedFieldUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter @@ -12945,12 +17939,26 @@ def uri_path(self) -> Optional['outputs.WebAclLoggingConfigurationRedactedFieldU class WebAclLoggingConfigurationRedactedFieldMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclLoggingConfigurationRedactedFieldQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -12960,7 +17968,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to redact. This setting must be provided in lowercase characters. """ - pulumi.set(__self__, "name", name) + WebAclLoggingConfigurationRedactedFieldSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -12975,6 +17996,13 @@ def name(self) -> str: class WebAclLoggingConfigurationRedactedFieldUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -13021,18 +18049,59 @@ def __init__(__self__, *, :param 'WebAclRuleOverrideActionArgs' override_action: Override action to apply to the rules in a rule group. Used only for rule **statements that reference a rule group**, like `rule_group_reference_statement` and `managed_rule_group_statement`. See `override_action` below for details. :param Sequence['WebAclRuleRuleLabelArgs'] rule_labels: Labels to apply to web requests that match the rule match statement. See `rule_label` below for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "statement", statement) - pulumi.set(__self__, "visibility_config", visibility_config) + WebAclRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + priority=priority, + statement=statement, + visibility_config=visibility_config, + action=action, + captcha_config=captcha_config, + override_action=override_action, + rule_labels=rule_labels, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + priority: Optional[int] = None, + statement: Optional['outputs.WebAclRuleStatement'] = None, + visibility_config: Optional['outputs.WebAclRuleVisibilityConfig'] = None, + action: Optional['outputs.WebAclRuleAction'] = None, + captcha_config: Optional['outputs.WebAclRuleCaptchaConfig'] = None, + override_action: Optional['outputs.WebAclRuleOverrideAction'] = None, + rule_labels: Optional[Sequence['outputs.WebAclRuleRuleLabel']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if statement is None: + raise TypeError("Missing 'statement' argument") + if visibility_config is None and 'visibilityConfig' in kwargs: + visibility_config = kwargs['visibilityConfig'] + if visibility_config is None: + raise TypeError("Missing 'visibility_config' argument") + if captcha_config is None and 'captchaConfig' in kwargs: + captcha_config = kwargs['captchaConfig'] + if override_action is None and 'overrideAction' in kwargs: + override_action = kwargs['overrideAction'] + if rule_labels is None and 'ruleLabels' in kwargs: + rule_labels = kwargs['ruleLabels'] + + _setter("name", name) + _setter("priority", priority) + _setter("statement", statement) + _setter("visibility_config", visibility_config) if action is not None: - pulumi.set(__self__, "action", action) + _setter("action", action) if captcha_config is not None: - pulumi.set(__self__, "captcha_config", captcha_config) + _setter("captcha_config", captcha_config) if override_action is not None: - pulumi.set(__self__, "override_action", override_action) + _setter("override_action", override_action) if rule_labels is not None: - pulumi.set(__self__, "rule_labels", rule_labels) + _setter("rule_labels", rule_labels) @property @pulumi.getter @@ -13114,16 +18183,35 @@ def __init__(__self__, *, :param 'WebAclRuleActionChallengeArgs' challenge: Instructs AWS WAF to run a check against the request to verify that the request is coming from a legitimate client session. See `challenge` below for details. :param 'WebAclRuleActionCountArgs' count: Instructs AWS WAF to count the web request and allow it. See `count` below for details. """ + WebAclRuleAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + captcha=captcha, + challenge=challenge, + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional['outputs.WebAclRuleActionAllow'] = None, + block: Optional['outputs.WebAclRuleActionBlock'] = None, + captcha: Optional['outputs.WebAclRuleActionCaptcha'] = None, + challenge: Optional['outputs.WebAclRuleActionChallenge'] = None, + count: Optional['outputs.WebAclRuleActionCount'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) if captcha is not None: - pulumi.set(__self__, "captcha", captcha) + _setter("captcha", captcha) if challenge is not None: - pulumi.set(__self__, "challenge", challenge) + _setter("challenge", challenge) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter @@ -13190,8 +18278,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleActionAllowCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleActionAllow._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleActionAllowCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -13226,7 +18327,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleActionAllowCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleActionAllowCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleActionAllowCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -13246,8 +18362,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionAllowCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -13290,8 +18423,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleActionBlockCustomResponseArgs' custom_response: Defines a custom response for the web request. See `custom_response` below for details. """ + WebAclRuleActionBlock._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional['outputs.WebAclRuleActionBlockCustomResponse'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -13334,11 +18480,34 @@ def __init__(__self__, *, :param str custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param Sequence['WebAclRuleActionBlockCustomResponseResponseHeaderArgs'] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See `response_header` below for details. """ - pulumi.set(__self__, "response_code", response_code) + WebAclRuleActionBlockCustomResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[int] = None, + custom_response_body_key: Optional[str] = None, + response_headers: Optional[Sequence['outputs.WebAclRuleActionBlockCustomResponseResponseHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -13374,8 +18543,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionBlockCustomResponseResponseHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -13418,8 +18604,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleActionCaptchaCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleActionCaptcha._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleActionCaptchaCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -13454,7 +18653,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleActionCaptchaCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleActionCaptchaCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -13474,8 +18688,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionCaptchaCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -13518,8 +18749,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleActionChallengeCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleActionChallenge._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleActionChallengeCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -13554,7 +18798,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleActionChallengeCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleActionChallengeCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleActionChallengeCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -13574,8 +18833,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionChallengeCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -13618,8 +18894,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleActionCountCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleActionCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleActionCountCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -13654,7 +18943,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleActionCountCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleActionCountCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleActionCountCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -13674,8 +18978,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleActionCountCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -13718,8 +19039,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleCaptchaConfigImmunityTimePropertyArgs' immunity_time_property: Defines custom immunity time. See `immunity_time_property` below for details. """ + WebAclRuleCaptchaConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time_property=immunity_time_property, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time_property: Optional['outputs.WebAclRuleCaptchaConfigImmunityTimeProperty'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time_property is None and 'immunityTimeProperty' in kwargs: + immunity_time_property = kwargs['immunityTimeProperty'] + if immunity_time_property is not None: - pulumi.set(__self__, "immunity_time_property", immunity_time_property) + _setter("immunity_time_property", immunity_time_property) @property @pulumi.getter(name="immunityTimeProperty") @@ -13754,8 +19088,21 @@ def __init__(__self__, *, """ :param int immunity_time: The amount of time, in seconds, that a CAPTCHA or challenge timestamp is considered valid by AWS WAF. The default setting is 300. """ + WebAclRuleCaptchaConfigImmunityTimeProperty._configure( + lambda key, value: pulumi.set(__self__, key, value), + immunity_time=immunity_time, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + immunity_time: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if immunity_time is None and 'immunityTime' in kwargs: + immunity_time = kwargs['immunityTime'] + if immunity_time is not None: - pulumi.set(__self__, "immunity_time", immunity_time) + _setter("immunity_time", immunity_time) @property @pulumi.getter(name="immunityTime") @@ -13775,10 +19122,23 @@ def __init__(__self__, *, :param 'WebAclRuleOverrideActionCountArgs' count: Override the rule action setting to count (i.e., only count matches). Configured as an empty block `{}`. :param 'WebAclRuleOverrideActionNoneArgs' none: Don't override the rule action setting. Configured as an empty block `{}`. """ + WebAclRuleOverrideAction._configure( + lambda key, value: pulumi.set(__self__, key, value), + count=count, + none=none, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + count: Optional['outputs.WebAclRuleOverrideActionCount'] = None, + none: Optional['outputs.WebAclRuleOverrideActionNone'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) if none is not None: - pulumi.set(__self__, "none", none) + _setter("none", none) @property @pulumi.getter @@ -13801,12 +19161,26 @@ def none(self) -> Optional['outputs.WebAclRuleOverrideActionNone']: class WebAclRuleOverrideActionCount(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleOverrideActionNone(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -13816,7 +19190,20 @@ def __init__(__self__, *, """ :param str name: Label string. """ - pulumi.set(__self__, "name", name) + WebAclRuleRuleLabel._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -13907,36 +19294,105 @@ def __init__(__self__, *, :param 'WebAclRuleStatementSqliMatchStatementArgs' sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See `sqli_match_statement` below for details. :param 'WebAclRuleStatementXssMatchStatementArgs' xss_match_statement: Rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See `xss_match_statement` below for details. """ + WebAclRuleStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + managed_rule_group_statement=managed_rule_group_statement, + not_statement=not_statement, + or_statement=or_statement, + rate_based_statement=rate_based_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + rule_group_reference_statement=rule_group_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional['outputs.WebAclRuleStatementAndStatement'] = None, + byte_match_statement: Optional['outputs.WebAclRuleStatementByteMatchStatement'] = None, + geo_match_statement: Optional['outputs.WebAclRuleStatementGeoMatchStatement'] = None, + ip_set_reference_statement: Optional['outputs.WebAclRuleStatementIpSetReferenceStatement'] = None, + label_match_statement: Optional['outputs.WebAclRuleStatementLabelMatchStatement'] = None, + managed_rule_group_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatement'] = None, + not_statement: Optional['outputs.WebAclRuleStatementNotStatement'] = None, + or_statement: Optional['outputs.WebAclRuleStatementOrStatement'] = None, + rate_based_statement: Optional['outputs.WebAclRuleStatementRateBasedStatement'] = None, + regex_match_statement: Optional['outputs.WebAclRuleStatementRegexMatchStatement'] = None, + regex_pattern_set_reference_statement: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatement'] = None, + rule_group_reference_statement: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatement'] = None, + size_constraint_statement: Optional['outputs.WebAclRuleStatementSizeConstraintStatement'] = None, + sqli_match_statement: Optional['outputs.WebAclRuleStatementSqliMatchStatement'] = None, + xss_match_statement: Optional['outputs.WebAclRuleStatementXssMatchStatement'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if managed_rule_group_statement is None and 'managedRuleGroupStatement' in kwargs: + managed_rule_group_statement = kwargs['managedRuleGroupStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if rate_based_statement is None and 'rateBasedStatement' in kwargs: + rate_based_statement = kwargs['rateBasedStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if rule_group_reference_statement is None and 'ruleGroupReferenceStatement' in kwargs: + rule_group_reference_statement = kwargs['ruleGroupReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if managed_rule_group_statement is not None: - pulumi.set(__self__, "managed_rule_group_statement", managed_rule_group_statement) + _setter("managed_rule_group_statement", managed_rule_group_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if rate_based_statement is not None: - pulumi.set(__self__, "rate_based_statement", rate_based_statement) + _setter("rate_based_statement", rate_based_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if rule_group_reference_statement is not None: - pulumi.set(__self__, "rule_group_reference_statement", rule_group_reference_statement) + _setter("rule_group_reference_statement", rule_group_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -14066,7 +19522,20 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementAndStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.WebAclRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -14113,11 +19582,42 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementByteMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementByteMatchStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementByteMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[str] = None, + search_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementByteMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -14204,26 +19704,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementByteMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -14310,6 +19851,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementByteMatchStatementFie class WebAclRuleStatementByteMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -14336,8 +19884,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementByteMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -14380,9 +19941,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementByteMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -14437,12 +20025,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -14467,6 +20074,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -14501,9 +20115,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementByteMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -14560,12 +20201,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -14596,6 +20256,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -14634,12 +20301,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementByteMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -14699,10 +20395,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -14722,18 +20433,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementByteMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementByteMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -14743,7 +20475,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementByteMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -14761,7 +20506,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementByteMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -14776,6 +20534,13 @@ def name(self) -> str: class WebAclRuleStatementByteMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -14787,8 +20552,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementByteMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -14835,9 +20617,28 @@ def __init__(__self__, *, :param Sequence[str] country_codes: Array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param 'WebAclRuleStatementGeoMatchStatementForwardedIpConfigArgs' forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `forwarded_ip_config` below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + WebAclRuleStatementGeoMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[Sequence[str]] = None, + forwarded_ip_config: Optional['outputs.WebAclRuleStatementGeoMatchStatementForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -14884,8 +20685,29 @@ def __init__(__self__, *, :param str fallback_behavior: Match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param str header_name: Name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + WebAclRuleStatementGeoMatchStatementForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -14930,9 +20752,26 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param 'WebAclRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs' ip_set_forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `ip_set_forwarded_ip_config` below for more details. """ - pulumi.set(__self__, "arn", arn) + WebAclRuleStatementIpSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + ip_set_forwarded_ip_config: Optional['outputs.WebAclRuleStatementIpSetReferenceStatementIpSetForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -14981,9 +20820,34 @@ def __init__(__self__, *, :param str header_name: Name of the HTTP header to use for the IP address. :param str position: Position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + WebAclRuleStatementIpSetReferenceStatementIpSetForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + position: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -15019,8 +20883,25 @@ def __init__(__self__, *, :param str key: String to match against. :param str scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + WebAclRuleStatementLabelMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + scope: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -15079,16 +20960,49 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs' scope_down_statement: Narrows the scope of the statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See `statement` above for details. :param str version: Version of the managed rule group. You can set `Version_1.0` or `Version_1.1` etc. If you want to use the default version, do not set anything. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "vendor_name", vendor_name) + WebAclRuleStatementManagedRuleGroupStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + vendor_name=vendor_name, + managed_rule_group_configs=managed_rule_group_configs, + rule_action_overrides=rule_action_overrides, + scope_down_statement=scope_down_statement, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + vendor_name: Optional[str] = None, + managed_rule_group_configs: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfig']] = None, + rule_action_overrides: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverride']] = None, + scope_down_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatement'] = None, + version: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if vendor_name is None and 'vendorName' in kwargs: + vendor_name = kwargs['vendorName'] + if vendor_name is None: + raise TypeError("Missing 'vendor_name' argument") + if managed_rule_group_configs is None and 'managedRuleGroupConfigs' in kwargs: + managed_rule_group_configs = kwargs['managedRuleGroupConfigs'] + if rule_action_overrides is None and 'ruleActionOverrides' in kwargs: + rule_action_overrides = kwargs['ruleActionOverrides'] + if scope_down_statement is None and 'scopeDownStatement' in kwargs: + scope_down_statement = kwargs['scopeDownStatement'] + + _setter("name", name) + _setter("vendor_name", vendor_name) if managed_rule_group_configs is not None: - pulumi.set(__self__, "managed_rule_group_configs", managed_rule_group_configs) + _setter("managed_rule_group_configs", managed_rule_group_configs) if rule_action_overrides is not None: - pulumi.set(__self__, "rule_action_overrides", rule_action_overrides) + _setter("rule_action_overrides", rule_action_overrides) if scope_down_statement is not None: - pulumi.set(__self__, "scope_down_statement", scope_down_statement) + _setter("scope_down_statement", scope_down_statement) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -15187,20 +21101,57 @@ def __init__(__self__, *, :param str payload_type: The payload type for your login endpoint, either JSON or form encoded. :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigUsernameFieldArgs' username_field: Details about your login page username field. See `username_field` for more details. """ + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + aws_managed_rules_acfp_rule_set=aws_managed_rules_acfp_rule_set, + aws_managed_rules_atp_rule_set=aws_managed_rules_atp_rule_set, + aws_managed_rules_bot_control_rule_set=aws_managed_rules_bot_control_rule_set, + login_path=login_path, + password_field=password_field, + payload_type=payload_type, + username_field=username_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + aws_managed_rules_acfp_rule_set: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSet'] = None, + aws_managed_rules_atp_rule_set: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSet'] = None, + aws_managed_rules_bot_control_rule_set: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet'] = None, + login_path: Optional[str] = None, + password_field: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigPasswordField'] = None, + payload_type: Optional[str] = None, + username_field: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigUsernameField'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if aws_managed_rules_acfp_rule_set is None and 'awsManagedRulesAcfpRuleSet' in kwargs: + aws_managed_rules_acfp_rule_set = kwargs['awsManagedRulesAcfpRuleSet'] + if aws_managed_rules_atp_rule_set is None and 'awsManagedRulesAtpRuleSet' in kwargs: + aws_managed_rules_atp_rule_set = kwargs['awsManagedRulesAtpRuleSet'] + if aws_managed_rules_bot_control_rule_set is None and 'awsManagedRulesBotControlRuleSet' in kwargs: + aws_managed_rules_bot_control_rule_set = kwargs['awsManagedRulesBotControlRuleSet'] + if login_path is None and 'loginPath' in kwargs: + login_path = kwargs['loginPath'] + if password_field is None and 'passwordField' in kwargs: + password_field = kwargs['passwordField'] + if payload_type is None and 'payloadType' in kwargs: + payload_type = kwargs['payloadType'] + if username_field is None and 'usernameField' in kwargs: + username_field = kwargs['usernameField'] + if aws_managed_rules_acfp_rule_set is not None: - pulumi.set(__self__, "aws_managed_rules_acfp_rule_set", aws_managed_rules_acfp_rule_set) + _setter("aws_managed_rules_acfp_rule_set", aws_managed_rules_acfp_rule_set) if aws_managed_rules_atp_rule_set is not None: - pulumi.set(__self__, "aws_managed_rules_atp_rule_set", aws_managed_rules_atp_rule_set) + _setter("aws_managed_rules_atp_rule_set", aws_managed_rules_atp_rule_set) if aws_managed_rules_bot_control_rule_set is not None: - pulumi.set(__self__, "aws_managed_rules_bot_control_rule_set", aws_managed_rules_bot_control_rule_set) + _setter("aws_managed_rules_bot_control_rule_set", aws_managed_rules_bot_control_rule_set) if login_path is not None: - pulumi.set(__self__, "login_path", login_path) + _setter("login_path", login_path) if password_field is not None: - pulumi.set(__self__, "password_field", password_field) + _setter("password_field", password_field) if payload_type is not None: - pulumi.set(__self__, "payload_type", payload_type) + _setter("payload_type", payload_type) if username_field is not None: - pulumi.set(__self__, "username_field", username_field) + _setter("username_field", username_field) @property @pulumi.getter(name="awsManagedRulesAcfpRuleSet") @@ -15299,13 +21250,48 @@ def __init__(__self__, *, :param bool enable_regex_in_path: Whether or not to allow the use of regular expressions in the login page path. :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs' response_inspection: The criteria for inspecting responses to login requests, used by the ATP rule group to track login failure rates. Note that Response Inspection is available only on web ACLs that protect CloudFront distributions. See `response_inspection` for more details. """ - pulumi.set(__self__, "creation_path", creation_path) - pulumi.set(__self__, "registration_page_path", registration_page_path) - pulumi.set(__self__, "request_inspection", request_inspection) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + creation_path=creation_path, + registration_page_path=registration_page_path, + request_inspection=request_inspection, + enable_regex_in_path=enable_regex_in_path, + response_inspection=response_inspection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + creation_path: Optional[str] = None, + registration_page_path: Optional[str] = None, + request_inspection: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspection'] = None, + enable_regex_in_path: Optional[bool] = None, + response_inspection: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspection'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if creation_path is None and 'creationPath' in kwargs: + creation_path = kwargs['creationPath'] + if creation_path is None: + raise TypeError("Missing 'creation_path' argument") + if registration_page_path is None and 'registrationPagePath' in kwargs: + registration_page_path = kwargs['registrationPagePath'] + if registration_page_path is None: + raise TypeError("Missing 'registration_page_path' argument") + if request_inspection is None and 'requestInspection' in kwargs: + request_inspection = kwargs['requestInspection'] + if request_inspection is None: + raise TypeError("Missing 'request_inspection' argument") + if enable_regex_in_path is None and 'enableRegexInPath' in kwargs: + enable_regex_in_path = kwargs['enableRegexInPath'] + if response_inspection is None and 'responseInspection' in kwargs: + response_inspection = kwargs['responseInspection'] + + _setter("creation_path", creation_path) + _setter("registration_page_path", registration_page_path) + _setter("request_inspection", request_inspection) if enable_regex_in_path is not None: - pulumi.set(__self__, "enable_regex_in_path", enable_regex_in_path) + _setter("enable_regex_in_path", enable_regex_in_path) if response_inspection is not None: - pulumi.set(__self__, "response_inspection", response_inspection) + _setter("response_inspection", response_inspection) @property @pulumi.getter(name="creationPath") @@ -15383,13 +21369,40 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs' password_field: Details about your login page password field. See `password_field` for more details. :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs' username_field: Details about your login page username field. See `username_field` for more details. """ - pulumi.set(__self__, "payload_type", payload_type) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspection._configure( + lambda key, value: pulumi.set(__self__, key, value), + payload_type=payload_type, + email_field=email_field, + password_field=password_field, + username_field=username_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + payload_type: Optional[str] = None, + email_field: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField'] = None, + password_field: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordField'] = None, + username_field: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameField'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if payload_type is None and 'payloadType' in kwargs: + payload_type = kwargs['payloadType'] + if payload_type is None: + raise TypeError("Missing 'payload_type' argument") + if email_field is None and 'emailField' in kwargs: + email_field = kwargs['emailField'] + if password_field is None and 'passwordField' in kwargs: + password_field = kwargs['passwordField'] + if username_field is None and 'usernameField' in kwargs: + username_field = kwargs['usernameField'] + + _setter("payload_type", payload_type) if email_field is not None: - pulumi.set(__self__, "email_field", email_field) + _setter("email_field", email_field) if password_field is not None: - pulumi.set(__self__, "password_field", password_field) + _setter("password_field", password_field) if username_field is not None: - pulumi.set(__self__, "username_field", username_field) + _setter("username_field", username_field) @property @pulumi.getter(name="payloadType") @@ -15426,15 +21439,28 @@ class WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManag def __init__(__self__, *, identifier: str): """ - :param str identifier: The name of the password field. + :param str identifier: The identifier for the value to match against in the JSON. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailField._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter def identifier(self) -> str: """ - The name of the password field. + The identifier for the value to match against in the JSON. """ return pulumi.get(self, "identifier") @@ -15446,7 +21472,20 @@ def __init__(__self__, *, """ :param str identifier: The name of the password field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordField._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -15464,7 +21503,20 @@ def __init__(__self__, *, """ :param str identifier: The name of the username field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameField._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -15507,14 +21559,35 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs' json: Configures inspection of the response JSON. See `json` for more details. :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs' status_code: Configures inspection of the response status code.See `status_code` for more details. """ + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspection._configure( + lambda key, value: pulumi.set(__self__, key, value), + body_contains=body_contains, + header=header, + json=json, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + body_contains: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContains'] = None, + header: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeader'] = None, + json: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJson'] = None, + status_code: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCode'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if body_contains is None and 'bodyContains' in kwargs: + body_contains = kwargs['bodyContains'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if body_contains is not None: - pulumi.set(__self__, "body_contains", body_contains) + _setter("body_contains", body_contains) if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="bodyContains") @@ -15577,8 +21650,29 @@ def __init__(__self__, *, :param Sequence[str] failure_strings: Strings in the body of the response that indicate a failed login attempt. :param Sequence[str] success_strings: Strings in the body of the response that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_strings", failure_strings) - pulumi.set(__self__, "success_strings", success_strings) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContains._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_strings=failure_strings, + success_strings=success_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_strings: Optional[Sequence[str]] = None, + success_strings: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_strings is None and 'failureStrings' in kwargs: + failure_strings = kwargs['failureStrings'] + if failure_strings is None: + raise TypeError("Missing 'failure_strings' argument") + if success_strings is None and 'successStrings' in kwargs: + success_strings = kwargs['successStrings'] + if success_strings is None: + raise TypeError("Missing 'success_strings' argument") + + _setter("failure_strings", failure_strings) + _setter("success_strings", success_strings) @property @pulumi.getter(name="failureStrings") @@ -15627,9 +21721,34 @@ def __init__(__self__, *, :param str name: The name of the header to use. :param Sequence[str] success_values: Values in the response header with the specified name that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_values", failure_values) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "success_values", success_values) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_values=failure_values, + name=name, + success_values=success_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_values: Optional[Sequence[str]] = None, + name: Optional[str] = None, + success_values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_values is None and 'failureValues' in kwargs: + failure_values = kwargs['failureValues'] + if failure_values is None: + raise TypeError("Missing 'failure_values' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if success_values is None and 'successValues' in kwargs: + success_values = kwargs['successValues'] + if success_values is None: + raise TypeError("Missing 'success_values' argument") + + _setter("failure_values", failure_values) + _setter("name", name) + _setter("success_values", success_values) @property @pulumi.getter(name="failureValues") @@ -15686,9 +21805,34 @@ def __init__(__self__, *, :param str identifier: The identifier for the value to match against in the JSON. :param Sequence[str] success_values: Values in the response header with the specified name that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_values", failure_values) - pulumi.set(__self__, "identifier", identifier) - pulumi.set(__self__, "success_values", success_values) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJson._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_values=failure_values, + identifier=identifier, + success_values=success_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_values: Optional[Sequence[str]] = None, + identifier: Optional[str] = None, + success_values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_values is None and 'failureValues' in kwargs: + failure_values = kwargs['failureValues'] + if failure_values is None: + raise TypeError("Missing 'failure_values' argument") + if identifier is None: + raise TypeError("Missing 'identifier' argument") + if success_values is None and 'successValues' in kwargs: + success_values = kwargs['successValues'] + if success_values is None: + raise TypeError("Missing 'success_values' argument") + + _setter("failure_values", failure_values) + _setter("identifier", identifier) + _setter("success_values", success_values) @property @pulumi.getter(name="failureValues") @@ -15743,8 +21887,29 @@ def __init__(__self__, *, :param Sequence[int] failure_codes: Status codes in the response that indicate a failed login attempt. :param Sequence[int] success_codes: Status codes in the response that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_codes", failure_codes) - pulumi.set(__self__, "success_codes", success_codes) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCode._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_codes=failure_codes, + success_codes=success_codes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_codes: Optional[Sequence[int]] = None, + success_codes: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_codes is None and 'failureCodes' in kwargs: + failure_codes = kwargs['failureCodes'] + if failure_codes is None: + raise TypeError("Missing 'failure_codes' argument") + if success_codes is None and 'successCodes' in kwargs: + success_codes = kwargs['successCodes'] + if success_codes is None: + raise TypeError("Missing 'success_codes' argument") + + _setter("failure_codes", failure_codes) + _setter("success_codes", success_codes) @property @pulumi.getter(name="failureCodes") @@ -15799,13 +21964,40 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs' request_inspection: The criteria for inspecting login requests, used by the ATP rule group to validate credentials usage. See `request_inspection` for more details. :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs' response_inspection: The criteria for inspecting responses to login requests, used by the ATP rule group to track login failure rates. Note that Response Inspection is available only on web ACLs that protect CloudFront distributions. See `response_inspection` for more details. """ - pulumi.set(__self__, "login_path", login_path) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + login_path=login_path, + enable_regex_in_path=enable_regex_in_path, + request_inspection=request_inspection, + response_inspection=response_inspection, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + login_path: Optional[str] = None, + enable_regex_in_path: Optional[bool] = None, + request_inspection: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspection'] = None, + response_inspection: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspection'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if login_path is None and 'loginPath' in kwargs: + login_path = kwargs['loginPath'] + if login_path is None: + raise TypeError("Missing 'login_path' argument") + if enable_regex_in_path is None and 'enableRegexInPath' in kwargs: + enable_regex_in_path = kwargs['enableRegexInPath'] + if request_inspection is None and 'requestInspection' in kwargs: + request_inspection = kwargs['requestInspection'] + if response_inspection is None and 'responseInspection' in kwargs: + response_inspection = kwargs['responseInspection'] + + _setter("login_path", login_path) if enable_regex_in_path is not None: - pulumi.set(__self__, "enable_regex_in_path", enable_regex_in_path) + _setter("enable_regex_in_path", enable_regex_in_path) if request_inspection is not None: - pulumi.set(__self__, "request_inspection", request_inspection) + _setter("request_inspection", request_inspection) if response_inspection is not None: - pulumi.set(__self__, "response_inspection", response_inspection) + _setter("response_inspection", response_inspection) @property @pulumi.getter(name="loginPath") @@ -15872,9 +22064,36 @@ def __init__(__self__, *, :param str payload_type: The payload type for your login endpoint, either JSON or form encoded. :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs' username_field: Details about your login page username field. See `username_field` for more details. """ - pulumi.set(__self__, "password_field", password_field) - pulumi.set(__self__, "payload_type", payload_type) - pulumi.set(__self__, "username_field", username_field) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspection._configure( + lambda key, value: pulumi.set(__self__, key, value), + password_field=password_field, + payload_type=payload_type, + username_field=username_field, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + password_field: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordField'] = None, + payload_type: Optional[str] = None, + username_field: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameField'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if password_field is None and 'passwordField' in kwargs: + password_field = kwargs['passwordField'] + if password_field is None: + raise TypeError("Missing 'password_field' argument") + if payload_type is None and 'payloadType' in kwargs: + payload_type = kwargs['payloadType'] + if payload_type is None: + raise TypeError("Missing 'payload_type' argument") + if username_field is None and 'usernameField' in kwargs: + username_field = kwargs['usernameField'] + if username_field is None: + raise TypeError("Missing 'username_field' argument") + + _setter("password_field", password_field) + _setter("payload_type", payload_type) + _setter("username_field", username_field) @property @pulumi.getter(name="passwordField") @@ -15908,7 +22127,20 @@ def __init__(__self__, *, """ :param str identifier: The name of the password field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordField._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -15926,7 +22158,20 @@ def __init__(__self__, *, """ :param str identifier: The name of the username field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameField._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -15969,14 +22214,35 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs' json: Configures inspection of the response JSON. See `json` for more details. :param 'WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs' status_code: Configures inspection of the response status code.See `status_code` for more details. """ + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspection._configure( + lambda key, value: pulumi.set(__self__, key, value), + body_contains=body_contains, + header=header, + json=json, + status_code=status_code, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + body_contains: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContains'] = None, + header: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeader'] = None, + json: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJson'] = None, + status_code: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCode'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if body_contains is None and 'bodyContains' in kwargs: + body_contains = kwargs['bodyContains'] + if status_code is None and 'statusCode' in kwargs: + status_code = kwargs['statusCode'] + if body_contains is not None: - pulumi.set(__self__, "body_contains", body_contains) + _setter("body_contains", body_contains) if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) if json is not None: - pulumi.set(__self__, "json", json) + _setter("json", json) if status_code is not None: - pulumi.set(__self__, "status_code", status_code) + _setter("status_code", status_code) @property @pulumi.getter(name="bodyContains") @@ -16039,8 +22305,29 @@ def __init__(__self__, *, :param Sequence[str] failure_strings: Strings in the body of the response that indicate a failed login attempt. :param Sequence[str] success_strings: Strings in the body of the response that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_strings", failure_strings) - pulumi.set(__self__, "success_strings", success_strings) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContains._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_strings=failure_strings, + success_strings=success_strings, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_strings: Optional[Sequence[str]] = None, + success_strings: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_strings is None and 'failureStrings' in kwargs: + failure_strings = kwargs['failureStrings'] + if failure_strings is None: + raise TypeError("Missing 'failure_strings' argument") + if success_strings is None and 'successStrings' in kwargs: + success_strings = kwargs['successStrings'] + if success_strings is None: + raise TypeError("Missing 'success_strings' argument") + + _setter("failure_strings", failure_strings) + _setter("success_strings", success_strings) @property @pulumi.getter(name="failureStrings") @@ -16089,9 +22376,34 @@ def __init__(__self__, *, :param str name: The name of the header to use. :param Sequence[str] success_values: Values in the response header with the specified name that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_values", failure_values) - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "success_values", success_values) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_values=failure_values, + name=name, + success_values=success_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_values: Optional[Sequence[str]] = None, + name: Optional[str] = None, + success_values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_values is None and 'failureValues' in kwargs: + failure_values = kwargs['failureValues'] + if failure_values is None: + raise TypeError("Missing 'failure_values' argument") + if name is None: + raise TypeError("Missing 'name' argument") + if success_values is None and 'successValues' in kwargs: + success_values = kwargs['successValues'] + if success_values is None: + raise TypeError("Missing 'success_values' argument") + + _setter("failure_values", failure_values) + _setter("name", name) + _setter("success_values", success_values) @property @pulumi.getter(name="failureValues") @@ -16148,9 +22460,34 @@ def __init__(__self__, *, :param str identifier: The identifier for the value to match against in the JSON. :param Sequence[str] success_values: Values in the response header with the specified name that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_values", failure_values) - pulumi.set(__self__, "identifier", identifier) - pulumi.set(__self__, "success_values", success_values) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJson._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_values=failure_values, + identifier=identifier, + success_values=success_values, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_values: Optional[Sequence[str]] = None, + identifier: Optional[str] = None, + success_values: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_values is None and 'failureValues' in kwargs: + failure_values = kwargs['failureValues'] + if failure_values is None: + raise TypeError("Missing 'failure_values' argument") + if identifier is None: + raise TypeError("Missing 'identifier' argument") + if success_values is None and 'successValues' in kwargs: + success_values = kwargs['successValues'] + if success_values is None: + raise TypeError("Missing 'success_values' argument") + + _setter("failure_values", failure_values) + _setter("identifier", identifier) + _setter("success_values", success_values) @property @pulumi.getter(name="failureValues") @@ -16205,8 +22542,29 @@ def __init__(__self__, *, :param Sequence[int] failure_codes: Status codes in the response that indicate a failed login attempt. :param Sequence[int] success_codes: Status codes in the response that indicate a successful login attempt. """ - pulumi.set(__self__, "failure_codes", failure_codes) - pulumi.set(__self__, "success_codes", success_codes) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCode._configure( + lambda key, value: pulumi.set(__self__, key, value), + failure_codes=failure_codes, + success_codes=success_codes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + failure_codes: Optional[Sequence[int]] = None, + success_codes: Optional[Sequence[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if failure_codes is None and 'failureCodes' in kwargs: + failure_codes = kwargs['failureCodes'] + if failure_codes is None: + raise TypeError("Missing 'failure_codes' argument") + if success_codes is None and 'successCodes' in kwargs: + success_codes = kwargs['successCodes'] + if success_codes is None: + raise TypeError("Missing 'success_codes' argument") + + _setter("failure_codes", failure_codes) + _setter("success_codes", success_codes) @property @pulumi.getter(name="failureCodes") @@ -16249,7 +22607,22 @@ def __init__(__self__, *, """ :param str inspection_level: The inspection level to use for the Bot Control rule group. """ - pulumi.set(__self__, "inspection_level", inspection_level) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSet._configure( + lambda key, value: pulumi.set(__self__, key, value), + inspection_level=inspection_level, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + inspection_level: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if inspection_level is None and 'inspectionLevel' in kwargs: + inspection_level = kwargs['inspectionLevel'] + if inspection_level is None: + raise TypeError("Missing 'inspection_level' argument") + + _setter("inspection_level", inspection_level) @property @pulumi.getter(name="inspectionLevel") @@ -16267,7 +22640,20 @@ def __init__(__self__, *, """ :param str identifier: The name of the password field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigPasswordField._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -16285,7 +22671,20 @@ def __init__(__self__, *, """ :param str identifier: The name of the username field. """ - pulumi.set(__self__, "identifier", identifier) + WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigUsernameField._configure( + lambda key, value: pulumi.set(__self__, key, value), + identifier=identifier, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + identifier: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if identifier is None: + raise TypeError("Missing 'identifier' argument") + + _setter("identifier", identifier) @property @pulumi.getter @@ -16322,8 +22721,27 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs' action_to_use: Override action to use, in place of the configured action of the rule in the rule group. See `action` for details. :param str name: Name of the rule to override. See the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ - pulumi.set(__self__, "action_to_use", action_to_use) - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_to_use=action_to_use, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_to_use: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse'] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_to_use is None and 'actionToUse' in kwargs: + action_to_use = kwargs['actionToUse'] + if action_to_use is None: + raise TypeError("Missing 'action_to_use' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("action_to_use", action_to_use) + _setter("name", name) @property @pulumi.getter(name="actionToUse") @@ -16351,28 +22769,47 @@ def __init__(__self__, *, challenge: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallenge'] = None, count: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCount'] = None): """ - :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs' allow: Specifies that AWS WAF should allow requests by default. See `allow` below for details. - :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs' block: Specifies that AWS WAF should block requests by default. See `block` below for details. + :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs' allow: Instructs AWS WAF to allow the web request. See `allow` below for details. + :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs' block: Instructs AWS WAF to block the web request. See `block` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs' captcha: Instructs AWS WAF to run a Captcha check against the web request. See `captcha` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs' challenge: Instructs AWS WAF to run a check against the request to verify that the request is coming from a legitimate client session. See `challenge` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs' count: Instructs AWS WAF to count the web request and allow it. See `count` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUse._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + captcha=captcha, + challenge=challenge, + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow'] = None, + block: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock'] = None, + captcha: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptcha'] = None, + challenge: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallenge'] = None, + count: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCount'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) if captcha is not None: - pulumi.set(__self__, "captcha", captcha) + _setter("captcha", captcha) if challenge is not None: - pulumi.set(__self__, "challenge", challenge) + _setter("challenge", challenge) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter def allow(self) -> Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow']: """ - Specifies that AWS WAF should allow requests by default. See `allow` below for details. + Instructs AWS WAF to allow the web request. See `allow` below for details. """ return pulumi.get(self, "allow") @@ -16380,7 +22817,7 @@ def allow(self) -> Optional['outputs.WebAclRuleStatementManagedRuleGroupStatemen @pulumi.getter def block(self) -> Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock']: """ - Specifies that AWS WAF should block requests by default. See `block` below for details. + Instructs AWS WAF to block the web request. See `block` below for details. """ return pulumi.get(self, "block") @@ -16433,8 +22870,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllow._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -16469,7 +22919,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -16489,8 +22954,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -16533,8 +23015,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs' custom_response: Defines a custom response for the web request. See `custom_response` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlock._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponse'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -16577,11 +23072,34 @@ def __init__(__self__, *, :param str custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param Sequence['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs'] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See `response_header` below for details. """ - pulumi.set(__self__, "response_code", response_code) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[int] = None, + custom_response_body_key: Optional[str] = None, + response_headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -16617,8 +23135,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -16661,8 +23196,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptcha._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -16697,7 +23245,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -16717,8 +23280,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -16761,8 +23341,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallenge._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -16797,7 +23390,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -16817,8 +23425,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -16861,8 +23486,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -16897,7 +23535,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -16917,8 +23570,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -17005,30 +23675,87 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs' sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See `sqli_match_statement` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs' xss_match_statement: Rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See `xss_match_statement` below for details. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + not_statement=not_statement, + or_statement=or_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAndStatement'] = None, + byte_match_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatement'] = None, + geo_match_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatement'] = None, + ip_set_reference_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatement'] = None, + label_match_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatement'] = None, + not_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementNotStatement'] = None, + or_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementOrStatement'] = None, + regex_match_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatement'] = None, + regex_pattern_set_reference_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatement'] = None, + size_constraint_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatement'] = None, + sqli_match_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatement'] = None, + xss_match_statement: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatement'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -17134,7 +23861,20 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAndStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.WebAclRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -17181,11 +23921,42 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[str] = None, + search_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -17272,26 +24043,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -17378,6 +24190,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementManagedRuleGroupState class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -17404,8 +24223,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -17448,9 +24280,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -17505,12 +24364,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -17535,6 +24413,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -17569,9 +24454,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -17628,12 +24540,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -17664,6 +24595,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -17702,12 +24640,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -17767,10 +24734,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -17790,18 +24772,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -17811,7 +24814,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -17829,7 +24845,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -17844,6 +24873,13 @@ def name(self) -> str: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -17855,8 +24891,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -17903,9 +24956,28 @@ def __init__(__self__, *, :param Sequence[str] country_codes: Array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs' forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `forwarded_ip_config` below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[Sequence[str]] = None, + forwarded_ip_config: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -17952,8 +25024,29 @@ def __init__(__self__, *, :param str fallback_behavior: Match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param str header_name: Name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -17998,9 +25091,26 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs' ip_set_forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `ip_set_forwarded_ip_config` below for more details. """ - pulumi.set(__self__, "arn", arn) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + ip_set_forwarded_ip_config: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -18049,9 +25159,34 @@ def __init__(__self__, *, :param str header_name: Name of the HTTP header to use for the IP address. :param str position: Position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + position: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -18087,8 +25222,25 @@ def __init__(__self__, *, :param str key: String to match against. :param str scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + scope: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -18114,7 +25266,20 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementNotStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.WebAclRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -18132,7 +25297,20 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementOrStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.WebAclRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -18175,10 +25353,35 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -18257,26 +25460,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -18363,6 +25607,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementManagedRuleGroupState class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -18389,8 +25640,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -18433,9 +25697,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -18490,12 +25781,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -18520,6 +25830,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -18554,9 +25871,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -18613,12 +25957,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -18649,6 +26012,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -18687,12 +26057,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -18752,10 +26151,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -18775,18 +26189,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -18796,7 +26231,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -18814,7 +26262,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -18829,6 +26290,13 @@ def name(self) -> str: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -18840,8 +26308,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -18890,10 +26375,33 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -18972,26 +26480,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -19078,6 +26627,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementManagedRuleGroupState class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -19104,8 +26660,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -19148,9 +26717,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -19205,12 +26801,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -19235,6 +26850,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -19269,9 +26891,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -19328,12 +26977,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -19364,6 +27032,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -19402,12 +27077,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -19467,10 +27171,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -19490,18 +27209,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -19511,7 +27251,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -19529,7 +27282,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -19544,6 +27310,13 @@ def name(self) -> str: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -19555,8 +27328,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -19609,11 +27399,40 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[str] = None, + size: Optional[int] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -19700,26 +27519,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -19806,6 +27666,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementManagedRuleGroupState class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -19832,8 +27699,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -19876,9 +27756,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -19933,12 +27840,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -19963,6 +27889,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -19997,9 +27930,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -20056,12 +28016,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -20092,6 +28071,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -20130,12 +28116,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -20195,10 +28210,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -20218,18 +28248,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -20239,7 +28290,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -20257,7 +28321,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -20272,6 +28349,13 @@ def name(self) -> str: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -20283,8 +28367,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -20331,9 +28432,28 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -20404,26 +28524,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -20510,6 +28671,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementManagedRuleGroupState class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -20536,8 +28704,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -20580,9 +28761,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -20637,12 +28845,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -20667,6 +28894,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -20701,9 +28935,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -20760,12 +29021,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -20796,6 +29076,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -20834,12 +29121,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -20899,10 +29215,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -20922,18 +29253,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -20943,7 +29295,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -20961,7 +29326,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -20976,6 +29354,13 @@ def name(self) -> str: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -20987,8 +29372,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -21035,9 +29437,28 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -21108,26 +29529,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -21214,6 +29676,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementManagedRuleGroupState class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -21240,8 +29709,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -21284,9 +29766,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -21341,12 +29850,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -21371,6 +29899,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -21405,9 +29940,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -21464,12 +30026,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -21500,6 +30081,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -21538,12 +30126,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -21603,10 +30220,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -21626,18 +30258,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -21647,7 +30300,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -21665,7 +30331,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -21680,6 +30359,13 @@ def name(self) -> str: class WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -21691,8 +30377,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -21718,7 +30421,20 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementNotStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.WebAclRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -21736,7 +30452,20 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementOrStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.WebAclRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -21785,15 +30514,44 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRateBasedStatementForwardedIpConfigArgs' forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. If `aggregate_key_type` is set to `FORWARDED_IP`, this block is required. See `forwarded_ip_config` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementArgs' scope_down_statement: Optional nested statement that narrows the scope of the rate-based statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See `statement` above for details. If `aggregate_key_type` is set to `CONSTANT`, this block is required. """ - pulumi.set(__self__, "limit", limit) + WebAclRuleStatementRateBasedStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + limit=limit, + aggregate_key_type=aggregate_key_type, + custom_keys=custom_keys, + forwarded_ip_config=forwarded_ip_config, + scope_down_statement=scope_down_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + limit: Optional[int] = None, + aggregate_key_type: Optional[str] = None, + custom_keys: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementCustomKey']] = None, + forwarded_ip_config: Optional['outputs.WebAclRuleStatementRateBasedStatementForwardedIpConfig'] = None, + scope_down_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatement'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if limit is None: + raise TypeError("Missing 'limit' argument") + if aggregate_key_type is None and 'aggregateKeyType' in kwargs: + aggregate_key_type = kwargs['aggregateKeyType'] + if custom_keys is None and 'customKeys' in kwargs: + custom_keys = kwargs['customKeys'] + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + if scope_down_statement is None and 'scopeDownStatement' in kwargs: + scope_down_statement = kwargs['scopeDownStatement'] + + _setter("limit", limit) if aggregate_key_type is not None: - pulumi.set(__self__, "aggregate_key_type", aggregate_key_type) + _setter("aggregate_key_type", aggregate_key_type) if custom_keys is not None: - pulumi.set(__self__, "custom_keys", custom_keys) + _setter("custom_keys", custom_keys) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) if scope_down_statement is not None: - pulumi.set(__self__, "scope_down_statement", scope_down_statement) + _setter("scope_down_statement", scope_down_statement) @property @pulumi.getter @@ -21886,24 +30644,63 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgs' query_string: Use the request's query string as an aggregate key. See RateLimit `query_string` below for details. :param 'WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgs' uri_path: Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details. """ + WebAclRuleStatementRateBasedStatementCustomKey._configure( + lambda key, value: pulumi.set(__self__, key, value), + cookie=cookie, + forwarded_ip=forwarded_ip, + header=header, + http_method=http_method, + ip=ip, + label_namespace=label_namespace, + query_argument=query_argument, + query_string=query_string, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cookie: Optional['outputs.WebAclRuleStatementRateBasedStatementCustomKeyCookie'] = None, + forwarded_ip: Optional['outputs.WebAclRuleStatementRateBasedStatementCustomKeyForwardedIp'] = None, + header: Optional['outputs.WebAclRuleStatementRateBasedStatementCustomKeyHeader'] = None, + http_method: Optional['outputs.WebAclRuleStatementRateBasedStatementCustomKeyHttpMethod'] = None, + ip: Optional['outputs.WebAclRuleStatementRateBasedStatementCustomKeyIp'] = None, + label_namespace: Optional['outputs.WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespace'] = None, + query_argument: Optional['outputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryArgument'] = None, + query_string: Optional['outputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryString'] = None, + uri_path: Optional['outputs.WebAclRuleStatementRateBasedStatementCustomKeyUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if forwarded_ip is None and 'forwardedIp' in kwargs: + forwarded_ip = kwargs['forwardedIp'] + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if label_namespace is None and 'labelNamespace' in kwargs: + label_namespace = kwargs['labelNamespace'] + if query_argument is None and 'queryArgument' in kwargs: + query_argument = kwargs['queryArgument'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if cookie is not None: - pulumi.set(__self__, "cookie", cookie) + _setter("cookie", cookie) if forwarded_ip is not None: - pulumi.set(__self__, "forwarded_ip", forwarded_ip) + _setter("forwarded_ip", forwarded_ip) if header is not None: - pulumi.set(__self__, "header", header) + _setter("header", header) if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if ip is not None: - pulumi.set(__self__, "ip", ip) + _setter("ip", ip) if label_namespace is not None: - pulumi.set(__self__, "label_namespace", label_namespace) + _setter("label_namespace", label_namespace) if query_argument is not None: - pulumi.set(__self__, "query_argument", query_argument) + _setter("query_argument", query_argument) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter @@ -22004,8 +30801,27 @@ def __init__(__self__, *, :param str name: The name of the cookie to use. :param Sequence['WebAclRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyCookie._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementCustomKeyCookieTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -22033,8 +30849,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyCookieTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -22057,6 +30890,13 @@ def type(self) -> str: class WebAclRuleStatementRateBasedStatementCustomKeyForwardedIp(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -22085,8 +30925,27 @@ def __init__(__self__, *, :param str name: The name of the header to use. :param Sequence['WebAclRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -22114,8 +30973,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyHeaderTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -22138,12 +31014,26 @@ def type(self) -> str: class WebAclRuleStatementRateBasedStatementCustomKeyHttpMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementCustomKeyIp(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -22153,7 +31043,20 @@ def __init__(__self__, *, """ :param str namespace: The namespace to use for aggregation """ - pulumi.set(__self__, "namespace", namespace) + WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespace._configure( + lambda key, value: pulumi.set(__self__, key, value), + namespace=namespace, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + namespace: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if namespace is None: + raise TypeError("Missing 'namespace' argument") + + _setter("namespace", namespace) @property @pulumi.getter @@ -22190,8 +31093,27 @@ def __init__(__self__, *, :param str name: The name of the query argument to use. :param Sequence['WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("name", name) + _setter("text_transformations", text_transformations) @property @pulumi.getter @@ -22219,8 +31141,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -22263,7 +31202,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyQueryString._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("text_transformations", text_transformations) @property @pulumi.getter(name="textTransformations") @@ -22283,8 +31237,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -22327,7 +31298,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. They are used in rate-based rule statements, to transform request components before using them as custom aggregation keys. Atleast one transformation is required. See `text_transformation` above for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementCustomKeyUriPath._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + + _setter("text_transformations", text_transformations) @property @pulumi.getter(name="textTransformations") @@ -22347,8 +31333,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementCustomKeyUriPathTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -22395,8 +31398,29 @@ def __init__(__self__, *, :param str fallback_behavior: Match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param str header_name: Name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + WebAclRuleStatementRateBasedStatementForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -22483,30 +31507,87 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs' sqli_match_statement: An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See `sqli_match_statement` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs' xss_match_statement: Rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See `xss_match_statement` below for details. """ + WebAclRuleStatementRateBasedStatementScopeDownStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + and_statement=and_statement, + byte_match_statement=byte_match_statement, + geo_match_statement=geo_match_statement, + ip_set_reference_statement=ip_set_reference_statement, + label_match_statement=label_match_statement, + not_statement=not_statement, + or_statement=or_statement, + regex_match_statement=regex_match_statement, + regex_pattern_set_reference_statement=regex_pattern_set_reference_statement, + size_constraint_statement=size_constraint_statement, + sqli_match_statement=sqli_match_statement, + xss_match_statement=xss_match_statement, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + and_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementAndStatement'] = None, + byte_match_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatement'] = None, + geo_match_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatement'] = None, + ip_set_reference_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatement'] = None, + label_match_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatement'] = None, + not_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementNotStatement'] = None, + or_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementOrStatement'] = None, + regex_match_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatement'] = None, + regex_pattern_set_reference_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatement'] = None, + size_constraint_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatement'] = None, + sqli_match_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatement'] = None, + xss_match_statement: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatement'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if and_statement is None and 'andStatement' in kwargs: + and_statement = kwargs['andStatement'] + if byte_match_statement is None and 'byteMatchStatement' in kwargs: + byte_match_statement = kwargs['byteMatchStatement'] + if geo_match_statement is None and 'geoMatchStatement' in kwargs: + geo_match_statement = kwargs['geoMatchStatement'] + if ip_set_reference_statement is None and 'ipSetReferenceStatement' in kwargs: + ip_set_reference_statement = kwargs['ipSetReferenceStatement'] + if label_match_statement is None and 'labelMatchStatement' in kwargs: + label_match_statement = kwargs['labelMatchStatement'] + if not_statement is None and 'notStatement' in kwargs: + not_statement = kwargs['notStatement'] + if or_statement is None and 'orStatement' in kwargs: + or_statement = kwargs['orStatement'] + if regex_match_statement is None and 'regexMatchStatement' in kwargs: + regex_match_statement = kwargs['regexMatchStatement'] + if regex_pattern_set_reference_statement is None and 'regexPatternSetReferenceStatement' in kwargs: + regex_pattern_set_reference_statement = kwargs['regexPatternSetReferenceStatement'] + if size_constraint_statement is None and 'sizeConstraintStatement' in kwargs: + size_constraint_statement = kwargs['sizeConstraintStatement'] + if sqli_match_statement is None and 'sqliMatchStatement' in kwargs: + sqli_match_statement = kwargs['sqliMatchStatement'] + if xss_match_statement is None and 'xssMatchStatement' in kwargs: + xss_match_statement = kwargs['xssMatchStatement'] + if and_statement is not None: - pulumi.set(__self__, "and_statement", and_statement) + _setter("and_statement", and_statement) if byte_match_statement is not None: - pulumi.set(__self__, "byte_match_statement", byte_match_statement) + _setter("byte_match_statement", byte_match_statement) if geo_match_statement is not None: - pulumi.set(__self__, "geo_match_statement", geo_match_statement) + _setter("geo_match_statement", geo_match_statement) if ip_set_reference_statement is not None: - pulumi.set(__self__, "ip_set_reference_statement", ip_set_reference_statement) + _setter("ip_set_reference_statement", ip_set_reference_statement) if label_match_statement is not None: - pulumi.set(__self__, "label_match_statement", label_match_statement) + _setter("label_match_statement", label_match_statement) if not_statement is not None: - pulumi.set(__self__, "not_statement", not_statement) + _setter("not_statement", not_statement) if or_statement is not None: - pulumi.set(__self__, "or_statement", or_statement) + _setter("or_statement", or_statement) if regex_match_statement is not None: - pulumi.set(__self__, "regex_match_statement", regex_match_statement) + _setter("regex_match_statement", regex_match_statement) if regex_pattern_set_reference_statement is not None: - pulumi.set(__self__, "regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) + _setter("regex_pattern_set_reference_statement", regex_pattern_set_reference_statement) if size_constraint_statement is not None: - pulumi.set(__self__, "size_constraint_statement", size_constraint_statement) + _setter("size_constraint_statement", size_constraint_statement) if sqli_match_statement is not None: - pulumi.set(__self__, "sqli_match_statement", sqli_match_statement) + _setter("sqli_match_statement", sqli_match_statement) if xss_match_statement is not None: - pulumi.set(__self__, "xss_match_statement", xss_match_statement) + _setter("xss_match_statement", xss_match_statement) @property @pulumi.getter(name="andStatement") @@ -22612,7 +31693,20 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementRateBasedStatementScopeDownStatementAndStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.WebAclRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -22659,11 +31753,42 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "positional_constraint", positional_constraint) - pulumi.set(__self__, "search_string", search_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + positional_constraint=positional_constraint, + search_string=search_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + positional_constraint: Optional[str] = None, + search_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if positional_constraint is None and 'positionalConstraint' in kwargs: + positional_constraint = kwargs['positionalConstraint'] + if positional_constraint is None: + raise TypeError("Missing 'positional_constraint' argument") + if search_string is None and 'searchString' in kwargs: + search_string = kwargs['searchString'] + if search_string is None: + raise TypeError("Missing 'search_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("positional_constraint", positional_constraint) + _setter("search_string", search_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="positionalConstraint") @@ -22750,26 +31875,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -22856,6 +32022,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementRateBasedStatementSco class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -22882,8 +32055,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -22926,9 +32112,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -22983,12 +32196,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -23013,6 +32245,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -23047,9 +32286,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -23106,12 +32372,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -23142,6 +32427,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -23180,12 +32472,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -23245,10 +32566,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -23268,18 +32604,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -23289,7 +32646,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -23307,7 +32677,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -23322,6 +32705,13 @@ def name(self) -> str: class WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -23333,8 +32723,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -23381,9 +32788,28 @@ def __init__(__self__, *, :param Sequence[str] country_codes: Array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs' forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `forwarded_ip_config` below for details. """ - pulumi.set(__self__, "country_codes", country_codes) + WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + country_codes=country_codes, + forwarded_ip_config=forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + country_codes: Optional[Sequence[str]] = None, + forwarded_ip_config: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if country_codes is None and 'countryCodes' in kwargs: + country_codes = kwargs['countryCodes'] + if country_codes is None: + raise TypeError("Missing 'country_codes' argument") + if forwarded_ip_config is None and 'forwardedIpConfig' in kwargs: + forwarded_ip_config = kwargs['forwardedIpConfig'] + + _setter("country_codes", country_codes) if forwarded_ip_config is not None: - pulumi.set(__self__, "forwarded_ip_config", forwarded_ip_config) + _setter("forwarded_ip_config", forwarded_ip_config) @property @pulumi.getter(name="countryCodes") @@ -23430,8 +32856,29 @@ def __init__(__self__, *, :param str fallback_behavior: Match status to assign to the web request if the request doesn't have a valid IP address in the specified position. Valid values include: `MATCH` or `NO_MATCH`. :param str header_name: Name of the HTTP header to use for the IP address. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) + WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) @property @pulumi.getter(name="fallbackBehavior") @@ -23476,9 +32923,26 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the IP Set that this statement references. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs' ip_set_forwarded_ip_config: Configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See `ip_set_forwarded_ip_config` below for more details. """ - pulumi.set(__self__, "arn", arn) + WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + ip_set_forwarded_ip_config=ip_set_forwarded_ip_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + ip_set_forwarded_ip_config: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfig'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if ip_set_forwarded_ip_config is None and 'ipSetForwardedIpConfig' in kwargs: + ip_set_forwarded_ip_config = kwargs['ipSetForwardedIpConfig'] + + _setter("arn", arn) if ip_set_forwarded_ip_config is not None: - pulumi.set(__self__, "ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) + _setter("ip_set_forwarded_ip_config", ip_set_forwarded_ip_config) @property @pulumi.getter @@ -23527,9 +32991,34 @@ def __init__(__self__, *, :param str header_name: Name of the HTTP header to use for the IP address. :param str position: Position in the header to search for the IP address. Valid values include: `FIRST`, `LAST`, or `ANY`. If `ANY` is specified and the header contains more than 10 IP addresses, AWS WAFv2 inspects the last 10. """ - pulumi.set(__self__, "fallback_behavior", fallback_behavior) - pulumi.set(__self__, "header_name", header_name) - pulumi.set(__self__, "position", position) + WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + fallback_behavior=fallback_behavior, + header_name=header_name, + position=position, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fallback_behavior: Optional[str] = None, + header_name: Optional[str] = None, + position: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fallback_behavior is None and 'fallbackBehavior' in kwargs: + fallback_behavior = kwargs['fallbackBehavior'] + if fallback_behavior is None: + raise TypeError("Missing 'fallback_behavior' argument") + if header_name is None and 'headerName' in kwargs: + header_name = kwargs['headerName'] + if header_name is None: + raise TypeError("Missing 'header_name' argument") + if position is None: + raise TypeError("Missing 'position' argument") + + _setter("fallback_behavior", fallback_behavior) + _setter("header_name", header_name) + _setter("position", position) @property @pulumi.getter(name="fallbackBehavior") @@ -23565,8 +33054,25 @@ def __init__(__self__, *, :param str key: String to match against. :param str scope: Specify whether you want to match using the label name or just the namespace. Valid values are `LABEL` or `NAMESPACE`. """ - pulumi.set(__self__, "key", key) - pulumi.set(__self__, "scope", scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + scope=scope, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[str] = None, + scope: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key is None: + raise TypeError("Missing 'key' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + + _setter("key", key) + _setter("scope", scope) @property @pulumi.getter @@ -23592,7 +33098,20 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementRateBasedStatementScopeDownStatementNotStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.WebAclRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -23610,7 +33129,20 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementArgs'] statements: The statements to combine. """ - pulumi.set(__self__, "statements", statements) + WebAclRuleStatementRateBasedStatementScopeDownStatementOrStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + statements=statements, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + statements: Optional[Sequence['outputs.WebAclRuleStatement']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if statements is None: + raise TypeError("Missing 'statements' argument") + + _setter("statements", statements) @property @pulumi.getter @@ -23653,10 +33185,35 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -23735,26 +33292,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -23841,6 +33439,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementRateBasedStatementSco class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -23867,8 +33472,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -23911,9 +33529,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -23968,12 +33613,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -23998,6 +33662,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -24032,9 +33703,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -24091,12 +33789,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -24127,6 +33844,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -24165,12 +33889,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -24230,10 +33983,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -24253,18 +34021,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -24274,7 +34063,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -24292,7 +34094,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -24307,6 +34122,13 @@ def name(self) -> str: class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -24318,8 +34140,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -24368,10 +34207,33 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -24450,26 +34312,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -24556,6 +34459,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementRateBasedStatementSco class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -24582,8 +34492,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -24626,9 +34549,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -24683,12 +34633,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -24713,6 +34682,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -24747,9 +34723,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -24806,12 +34809,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -24842,6 +34864,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -24880,12 +34909,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -24945,10 +35003,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -24968,18 +35041,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -24989,7 +35083,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -25007,7 +35114,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -25022,6 +35142,13 @@ def name(self) -> str: class WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -25033,8 +35160,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -25087,11 +35231,40 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[str] = None, + size: Optional[int] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -25178,26 +35351,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -25284,6 +35498,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementRateBasedStatementSco class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -25310,8 +35531,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -25354,9 +35588,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -25411,12 +35672,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -25441,6 +35721,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -25475,9 +35762,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -25534,12 +35848,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -25570,6 +35903,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -25608,12 +35948,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -25673,10 +36042,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -25696,18 +36080,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -25717,7 +36122,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -25735,7 +36153,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -25750,6 +36181,13 @@ def name(self) -> str: class WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -25761,8 +36199,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -25809,9 +36264,28 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -25882,26 +36356,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -25988,6 +36503,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementRateBasedStatementSco class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -26014,8 +36536,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -26058,9 +36593,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -26115,12 +36677,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -26145,6 +36726,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -26179,9 +36767,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -26238,12 +36853,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -26274,6 +36908,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -26312,12 +36953,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -26377,10 +37047,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -26400,18 +37085,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -26421,7 +37127,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -26439,7 +37158,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -26454,6 +37186,13 @@ def name(self) -> str: class WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -26465,8 +37204,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -26513,9 +37269,28 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -26586,26 +37361,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -26692,6 +37508,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementRateBasedStatementSco class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -26718,8 +37541,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -26762,9 +37598,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -26819,12 +37682,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -26849,6 +37731,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -26883,9 +37772,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -26942,12 +37858,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -26978,6 +37913,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -27016,12 +37958,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -27081,10 +38052,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -27104,18 +38090,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -27125,7 +38132,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -27143,7 +38163,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -27158,6 +38191,13 @@ def name(self) -> str: class WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -27169,8 +38209,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -27221,10 +38278,35 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementRegexMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementRegexMatchStatementFieldToMatchArgs' field_to_match: The part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "regex_string", regex_string) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRegexMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRegexMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("regex_string", regex_string) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="regexString") @@ -27303,26 +38385,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementRegexMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRegexMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -27409,6 +38532,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementRegexMatchStatementFi class WebAclRuleStatementRegexMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -27435,8 +38565,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRegexMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -27479,9 +38622,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRegexMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -27536,12 +38706,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -27566,6 +38755,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -27600,9 +38796,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRegexMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -27659,12 +38882,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -27695,6 +38937,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -27733,12 +38982,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -27798,10 +39076,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -27821,18 +39114,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRegexMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRegexMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -27842,7 +39156,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRegexMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -27860,7 +39187,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -27875,6 +39215,13 @@ def name(self) -> str: class WebAclRuleStatementRegexMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -27886,8 +39233,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRegexMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -27936,10 +39300,33 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementRegexPatternSetReferenceStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "arn", arn) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementRegexPatternSetReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("arn", arn) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter @@ -28018,26 +39405,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -28124,6 +39552,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementRegexPatternSetRefere class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -28150,8 +39585,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -28194,9 +39642,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -28251,12 +39726,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -28281,6 +39775,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -28315,9 +39816,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -28374,12 +39902,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -28410,6 +39957,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -28448,12 +40002,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -28513,10 +40096,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -28536,18 +40134,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -28557,7 +40176,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -28575,7 +40207,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -28590,6 +40235,13 @@ def name(self) -> str: class WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -28601,8 +40253,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementRegexPatternSetReferenceStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -28647,9 +40316,26 @@ def __init__(__self__, *, :param str arn: The Amazon Resource Name (ARN) of the `wafv2.RuleGroup` resource. :param Sequence['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideArgs'] rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details. """ - pulumi.set(__self__, "arn", arn) + WebAclRuleStatementRuleGroupReferenceStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + rule_action_overrides=rule_action_overrides, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[str] = None, + rule_action_overrides: Optional[Sequence['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverride']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if arn is None: + raise TypeError("Missing 'arn' argument") + if rule_action_overrides is None and 'ruleActionOverrides' in kwargs: + rule_action_overrides = kwargs['ruleActionOverrides'] + + _setter("arn", arn) if rule_action_overrides is not None: - pulumi.set(__self__, "rule_action_overrides", rule_action_overrides) + _setter("rule_action_overrides", rule_action_overrides) @property @pulumi.getter @@ -28694,8 +40380,27 @@ def __init__(__self__, *, :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs' action_to_use: Override action to use, in place of the configured action of the rule in the rule group. See `action` for details. :param str name: Name of the rule to override. See the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ - pulumi.set(__self__, "action_to_use", action_to_use) - pulumi.set(__self__, "name", name) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverride._configure( + lambda key, value: pulumi.set(__self__, key, value), + action_to_use=action_to_use, + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + action_to_use: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse'] = None, + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if action_to_use is None and 'actionToUse' in kwargs: + action_to_use = kwargs['actionToUse'] + if action_to_use is None: + raise TypeError("Missing 'action_to_use' argument") + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("action_to_use", action_to_use) + _setter("name", name) @property @pulumi.getter(name="actionToUse") @@ -28723,28 +40428,47 @@ def __init__(__self__, *, challenge: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallenge'] = None, count: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCount'] = None): """ - :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs' allow: Specifies that AWS WAF should allow requests by default. See `allow` below for details. - :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs' block: Specifies that AWS WAF should block requests by default. See `block` below for details. + :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs' allow: Instructs AWS WAF to allow the web request. See `allow` below for details. + :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs' block: Instructs AWS WAF to block the web request. See `block` below for details. :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs' captcha: Instructs AWS WAF to run a Captcha check against the web request. See `captcha` below for details. :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs' challenge: Instructs AWS WAF to run a check against the request to verify that the request is coming from a legitimate client session. See `challenge` below for details. :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs' count: Instructs AWS WAF to count the web request and allow it. See `count` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUse._configure( + lambda key, value: pulumi.set(__self__, key, value), + allow=allow, + block=block, + captcha=captcha, + challenge=challenge, + count=count, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + allow: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow'] = None, + block: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock'] = None, + captcha: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptcha'] = None, + challenge: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallenge'] = None, + count: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCount'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if allow is not None: - pulumi.set(__self__, "allow", allow) + _setter("allow", allow) if block is not None: - pulumi.set(__self__, "block", block) + _setter("block", block) if captcha is not None: - pulumi.set(__self__, "captcha", captcha) + _setter("captcha", captcha) if challenge is not None: - pulumi.set(__self__, "challenge", challenge) + _setter("challenge", challenge) if count is not None: - pulumi.set(__self__, "count", count) + _setter("count", count) @property @pulumi.getter def allow(self) -> Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow']: """ - Specifies that AWS WAF should allow requests by default. See `allow` below for details. + Instructs AWS WAF to allow the web request. See `allow` below for details. """ return pulumi.get(self, "allow") @@ -28752,7 +40476,7 @@ def allow(self) -> Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatem @pulumi.getter def block(self) -> Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock']: """ - Specifies that AWS WAF should block requests by default. See `block` below for details. + Instructs AWS WAF to block the web request. See `block` below for details. """ return pulumi.get(self, "block") @@ -28805,8 +40529,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllow._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -28841,7 +40578,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -28861,8 +40613,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -28905,8 +40674,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs' custom_response: Defines a custom response for the web request. See `custom_response` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlock._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_response=custom_response, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_response: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponse'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response is None and 'customResponse' in kwargs: + custom_response = kwargs['customResponse'] + if custom_response is not None: - pulumi.set(__self__, "custom_response", custom_response) + _setter("custom_response", custom_response) @property @pulumi.getter(name="customResponse") @@ -28949,11 +40731,34 @@ def __init__(__self__, *, :param str custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. This must reference a `key` defined in a `custom_response_body` block of this resource. :param Sequence['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs'] response_headers: The `response_header` blocks used to define the HTTP response headers added to the response. See `response_header` below for details. """ - pulumi.set(__self__, "response_code", response_code) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponse._configure( + lambda key, value: pulumi.set(__self__, key, value), + response_code=response_code, + custom_response_body_key=custom_response_body_key, + response_headers=response_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + response_code: Optional[int] = None, + custom_response_body_key: Optional[str] = None, + response_headers: Optional[Sequence['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if response_code is None and 'responseCode' in kwargs: + response_code = kwargs['responseCode'] + if response_code is None: + raise TypeError("Missing 'response_code' argument") + if custom_response_body_key is None and 'customResponseBodyKey' in kwargs: + custom_response_body_key = kwargs['customResponseBodyKey'] + if response_headers is None and 'responseHeaders' in kwargs: + response_headers = kwargs['responseHeaders'] + + _setter("response_code", response_code) if custom_response_body_key is not None: - pulumi.set(__self__, "custom_response_body_key", custom_response_body_key) + _setter("custom_response_body_key", custom_response_body_key) if response_headers is not None: - pulumi.set(__self__, "response_headers", response_headers) + _setter("response_headers", response_headers) @property @pulumi.getter(name="responseCode") @@ -28989,8 +40794,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -29033,8 +40855,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptcha._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -29069,7 +40904,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -29089,8 +40939,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -29133,8 +41000,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallenge._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -29169,7 +41049,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -29189,8 +41084,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -29233,8 +41145,21 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs' custom_request_handling: Defines custom handling for the web request. See `custom_request_handling` below for details. """ + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCount._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_request_handling=custom_request_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_request_handling: Optional['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandling'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_request_handling is None and 'customRequestHandling' in kwargs: + custom_request_handling = kwargs['customRequestHandling'] + if custom_request_handling is not None: - pulumi.set(__self__, "custom_request_handling", custom_request_handling) + _setter("custom_request_handling", custom_request_handling) @property @pulumi.getter(name="customRequestHandling") @@ -29269,7 +41194,22 @@ def __init__(__self__, *, """ :param Sequence['WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs'] insert_headers: The `insert_header` blocks used to define HTTP headers added to the request. See `insert_header` below for details. """ - pulumi.set(__self__, "insert_headers", insert_headers) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandling._configure( + lambda key, value: pulumi.set(__self__, key, value), + insert_headers=insert_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insert_headers: Optional[Sequence['outputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeader']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insert_headers is None and 'insertHeaders' in kwargs: + insert_headers = kwargs['insertHeaders'] + if insert_headers is None: + raise TypeError("Missing 'insert_headers' argument") + + _setter("insert_headers", insert_headers) @property @pulumi.getter(name="insertHeaders") @@ -29289,8 +41229,25 @@ def __init__(__self__, *, :param str name: Name of the custom header. For custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`. :param str value: Value of the custom header. """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + value: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + if value is None: + raise TypeError("Missing 'value' argument") + + _setter("name", name) + _setter("value", value) @property @pulumi.getter @@ -29343,11 +41300,40 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementSizeConstraintStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementSizeConstraintStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "comparison_operator", comparison_operator) - pulumi.set(__self__, "size", size) - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementSizeConstraintStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + comparison_operator=comparison_operator, + size=size, + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + comparison_operator: Optional[str] = None, + size: Optional[int] = None, + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementSizeConstraintStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if comparison_operator is None and 'comparisonOperator' in kwargs: + comparison_operator = kwargs['comparisonOperator'] + if comparison_operator is None: + raise TypeError("Missing 'comparison_operator' argument") + if size is None: + raise TypeError("Missing 'size' argument") + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("comparison_operator", comparison_operator) + _setter("size", size) + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="comparisonOperator") @@ -29434,26 +41420,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementSizeConstraintStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -29540,6 +41567,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementSizeConstraintStateme class WebAclRuleStatementSizeConstraintStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -29566,8 +41600,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -29610,9 +41657,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementSizeConstraintStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -29667,12 +41741,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -29697,6 +41790,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -29731,9 +41831,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementSizeConstraintStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -29790,12 +41917,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -29826,6 +41972,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -29864,12 +42017,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -29929,10 +42111,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -29952,18 +42149,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementSizeConstraintStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementSizeConstraintStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -29973,7 +42191,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -29991,7 +42222,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -30006,6 +42250,13 @@ def name(self) -> str: class WebAclRuleStatementSizeConstraintStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -30017,8 +42268,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementSizeConstraintStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -30065,9 +42333,28 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementSqliMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementSqliMatchStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementSqliMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementSqliMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -30138,26 +42425,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementSqliMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementSqliMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -30244,6 +42572,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementSqliMatchStatementFie class WebAclRuleStatementSqliMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -30270,8 +42605,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementSqliMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -30314,9 +42662,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementSqliMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -30371,12 +42746,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -30401,6 +42795,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -30435,9 +42836,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementSqliMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -30494,12 +42922,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -30530,6 +42977,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -30568,12 +43022,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -30633,10 +43116,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -30656,18 +43154,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementSqliMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementSqliMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -30677,7 +43196,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementSqliMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -30695,7 +43227,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -30710,6 +43255,13 @@ def name(self) -> str: class WebAclRuleStatementSqliMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -30721,8 +43273,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementSqliMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -30769,9 +43338,28 @@ def __init__(__self__, *, :param Sequence['WebAclRuleStatementXssMatchStatementTextTransformationArgs'] text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. At least one transformation is required. See `text_transformation` below for details. :param 'WebAclRuleStatementXssMatchStatementFieldToMatchArgs' field_to_match: Part of a web request that you want AWS WAF to inspect. See `field_to_match` below for details. """ - pulumi.set(__self__, "text_transformations", text_transformations) + WebAclRuleStatementXssMatchStatement._configure( + lambda key, value: pulumi.set(__self__, key, value), + text_transformations=text_transformations, + field_to_match=field_to_match, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + text_transformations: Optional[Sequence['outputs.WebAclRuleStatementXssMatchStatementTextTransformation']] = None, + field_to_match: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatch'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if text_transformations is None and 'textTransformations' in kwargs: + text_transformations = kwargs['textTransformations'] + if text_transformations is None: + raise TypeError("Missing 'text_transformations' argument") + if field_to_match is None and 'fieldToMatch' in kwargs: + field_to_match = kwargs['fieldToMatch'] + + _setter("text_transformations", text_transformations) if field_to_match is not None: - pulumi.set(__self__, "field_to_match", field_to_match) + _setter("field_to_match", field_to_match) @property @pulumi.getter(name="textTransformations") @@ -30842,26 +43430,67 @@ def __init__(__self__, *, :param 'WebAclRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs' single_query_argument: Inspect a single query argument. See `single_query_argument` below for details. :param 'WebAclRuleStatementXssMatchStatementFieldToMatchUriPathArgs' uri_path: Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`. """ + WebAclRuleStatementXssMatchStatementFieldToMatch._configure( + lambda key, value: pulumi.set(__self__, key, value), + all_query_arguments=all_query_arguments, + body=body, + cookies=cookies, + headers=headers, + json_body=json_body, + method=method, + query_string=query_string, + single_header=single_header, + single_query_argument=single_query_argument, + uri_path=uri_path, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all_query_arguments: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchAllQueryArguments'] = None, + body: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchBody'] = None, + cookies: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchCookies'] = None, + headers: Optional[Sequence['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchHeader']] = None, + json_body: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchJsonBody'] = None, + method: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchMethod'] = None, + query_string: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchQueryString'] = None, + single_header: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchSingleHeader'] = None, + single_query_argument: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchSingleQueryArgument'] = None, + uri_path: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchUriPath'] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if all_query_arguments is None and 'allQueryArguments' in kwargs: + all_query_arguments = kwargs['allQueryArguments'] + if json_body is None and 'jsonBody' in kwargs: + json_body = kwargs['jsonBody'] + if query_string is None and 'queryString' in kwargs: + query_string = kwargs['queryString'] + if single_header is None and 'singleHeader' in kwargs: + single_header = kwargs['singleHeader'] + if single_query_argument is None and 'singleQueryArgument' in kwargs: + single_query_argument = kwargs['singleQueryArgument'] + if uri_path is None and 'uriPath' in kwargs: + uri_path = kwargs['uriPath'] + if all_query_arguments is not None: - pulumi.set(__self__, "all_query_arguments", all_query_arguments) + _setter("all_query_arguments", all_query_arguments) if body is not None: - pulumi.set(__self__, "body", body) + _setter("body", body) if cookies is not None: - pulumi.set(__self__, "cookies", cookies) + _setter("cookies", cookies) if headers is not None: - pulumi.set(__self__, "headers", headers) + _setter("headers", headers) if json_body is not None: - pulumi.set(__self__, "json_body", json_body) + _setter("json_body", json_body) if method is not None: - pulumi.set(__self__, "method", method) + _setter("method", method) if query_string is not None: - pulumi.set(__self__, "query_string", query_string) + _setter("query_string", query_string) if single_header is not None: - pulumi.set(__self__, "single_header", single_header) + _setter("single_header", single_header) if single_query_argument is not None: - pulumi.set(__self__, "single_query_argument", single_query_argument) + _setter("single_query_argument", single_query_argument) if uri_path is not None: - pulumi.set(__self__, "uri_path", uri_path) + _setter("uri_path", uri_path) @property @pulumi.getter(name="allQueryArguments") @@ -30948,6 +43577,13 @@ def uri_path(self) -> Optional['outputs.WebAclRuleStatementXssMatchStatementFiel class WebAclRuleStatementXssMatchStatementFieldToMatchAllQueryArguments(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -30974,8 +43610,21 @@ def __init__(__self__, *, """ :param str oversize_handling: What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ + WebAclRuleStatementXssMatchStatementFieldToMatchBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="oversizeHandling") @@ -31018,9 +43667,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the cookies to inspect with the rule inspection criteria. If you specify All, AWS WAF inspects both keys and values. Valid values: `ALL`, `KEY`, `VALUE` :param str oversize_handling: What AWS WAF should do if the cookies of the request are larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to AWS WAF. Valid values: `CONTINUE`, `MATCH`, `NO_MATCH`. """ - pulumi.set(__self__, "match_patterns", match_patterns) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementXssMatchStatementFieldToMatchCookies._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_patterns=match_patterns, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_patterns: Optional[Sequence['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPattern']] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_patterns is None and 'matchPatterns' in kwargs: + match_patterns = kwargs['matchPatterns'] + if match_patterns is None: + raise TypeError("Missing 'match_patterns' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_patterns", match_patterns) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPatterns") @@ -31075,12 +43751,31 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_cookies=excluded_cookies, + included_cookies=included_cookies, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll'] = None, + excluded_cookies: Optional[Sequence[str]] = None, + included_cookies: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_cookies is None and 'excludedCookies' in kwargs: + excluded_cookies = kwargs['excludedCookies'] + if included_cookies is None and 'includedCookies' in kwargs: + included_cookies = kwargs['includedCookies'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_cookies is not None: - pulumi.set(__self__, "excluded_cookies", excluded_cookies) + _setter("excluded_cookies", excluded_cookies) if included_cookies is not None: - pulumi.set(__self__, "included_cookies", included_cookies) + _setter("included_cookies", included_cookies) @property @pulumi.getter @@ -31105,6 +43800,13 @@ def included_cookies(self) -> Optional[Sequence[str]]: class WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -31139,9 +43841,36 @@ def __init__(__self__, *, :param str match_scope: The parts of the headers to inspect with the rule inspection criteria. If you specify `All`, AWS WAF inspects both keys and values. Valid values include the following: `ALL`, `Key`, `Value`. :param str oversize_handling: Oversize handling tells AWS WAF what to do with a web request when the request component that the rule inspects is over the limits. Valid values include the following: `CONTINUE`, `MATCH`, `NO_MATCH`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) for more information. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) - pulumi.set(__self__, "oversize_handling", oversize_handling) + WebAclRuleStatementXssMatchStatementFieldToMatchHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPattern'] = None, + match_scope: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + if oversize_handling is None: + raise TypeError("Missing 'oversize_handling' argument") + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -31198,12 +43927,31 @@ def __init__(__self__, *, :param Sequence[str] excluded_headers: An array of strings that will be used for inspecting headers that do not have a key that matches one of the provided values. :param Sequence[str] included_headers: An array of strings that will be used for inspecting headers that have a key that matches one of the provided values. """ + WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + excluded_headers=excluded_headers, + included_headers=included_headers, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll'] = None, + excluded_headers: Optional[Sequence[str]] = None, + included_headers: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if excluded_headers is None and 'excludedHeaders' in kwargs: + excluded_headers = kwargs['excludedHeaders'] + if included_headers is None and 'includedHeaders' in kwargs: + included_headers = kwargs['includedHeaders'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if excluded_headers is not None: - pulumi.set(__self__, "excluded_headers", excluded_headers) + _setter("excluded_headers", excluded_headers) if included_headers is not None: - pulumi.set(__self__, "included_headers", included_headers) + _setter("included_headers", included_headers) @property @pulumi.getter @@ -31234,6 +43982,13 @@ def included_headers(self) -> Optional[Sequence[str]]: class WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -31272,12 +44027,41 @@ def __init__(__self__, *, :param str invalid_fallback_behavior: What to do when JSON parsing fails. Defaults to evaluating up to the first parsing failure. Valid values are `EVALUATE_AS_STRING`, `MATCH` and `NO_MATCH`. :param str oversize_handling: What to do if the body is larger than can be inspected. Valid values are `CONTINUE` (default), `MATCH` and `NO_MATCH`. """ - pulumi.set(__self__, "match_pattern", match_pattern) - pulumi.set(__self__, "match_scope", match_scope) + WebAclRuleStatementXssMatchStatementFieldToMatchJsonBody._configure( + lambda key, value: pulumi.set(__self__, key, value), + match_pattern=match_pattern, + match_scope=match_scope, + invalid_fallback_behavior=invalid_fallback_behavior, + oversize_handling=oversize_handling, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + match_pattern: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern'] = None, + match_scope: Optional[str] = None, + invalid_fallback_behavior: Optional[str] = None, + oversize_handling: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if match_pattern is None and 'matchPattern' in kwargs: + match_pattern = kwargs['matchPattern'] + if match_pattern is None: + raise TypeError("Missing 'match_pattern' argument") + if match_scope is None and 'matchScope' in kwargs: + match_scope = kwargs['matchScope'] + if match_scope is None: + raise TypeError("Missing 'match_scope' argument") + if invalid_fallback_behavior is None and 'invalidFallbackBehavior' in kwargs: + invalid_fallback_behavior = kwargs['invalidFallbackBehavior'] + if oversize_handling is None and 'oversizeHandling' in kwargs: + oversize_handling = kwargs['oversizeHandling'] + + _setter("match_pattern", match_pattern) + _setter("match_scope", match_scope) if invalid_fallback_behavior is not None: - pulumi.set(__self__, "invalid_fallback_behavior", invalid_fallback_behavior) + _setter("invalid_fallback_behavior", invalid_fallback_behavior) if oversize_handling is not None: - pulumi.set(__self__, "oversize_handling", oversize_handling) + _setter("oversize_handling", oversize_handling) @property @pulumi.getter(name="matchPattern") @@ -31337,10 +44121,25 @@ def __init__(__self__, *, """ :param 'WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs' all: An empty configuration block that is used for inspecting all headers. """ + WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPattern._configure( + lambda key, value: pulumi.set(__self__, key, value), + all=all, + included_paths=included_paths, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + all: Optional['outputs.WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll'] = None, + included_paths: Optional[Sequence[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if included_paths is None and 'includedPaths' in kwargs: + included_paths = kwargs['includedPaths'] + if all is not None: - pulumi.set(__self__, "all", all) + _setter("all", all) if included_paths is not None: - pulumi.set(__self__, "included_paths", included_paths) + _setter("included_paths", included_paths) @property @pulumi.getter @@ -31360,18 +44159,39 @@ def included_paths(self) -> Optional[Sequence[str]]: class WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAll(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementXssMatchStatementFieldToMatchMethod(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type class WebAclRuleStatementXssMatchStatementFieldToMatchQueryString(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -31381,7 +44201,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementXssMatchStatementFieldToMatchSingleHeader._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -31399,7 +44232,20 @@ def __init__(__self__, *, """ :param str name: Name of the query header to inspect. This setting must be provided as lower case characters. """ - pulumi.set(__self__, "name", name) + WebAclRuleStatementXssMatchStatementFieldToMatchSingleQueryArgument._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -31414,6 +44260,13 @@ def name(self) -> str: class WebAclRuleStatementXssMatchStatementFieldToMatchUriPath(dict): def __init__(__self__): pass + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + pass + @pulumi.output_type @@ -31425,8 +44278,25 @@ def __init__(__self__, *, :param int priority: Relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. :param str type: Transformation to apply, please refer to the Text Transformation [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details. """ - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "type", type) + WebAclRuleStatementXssMatchStatementTextTransformation._configure( + lambda key, value: pulumi.set(__self__, key, value), + priority=priority, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + priority: Optional[int] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if priority is None: + raise TypeError("Missing 'priority' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("priority", priority) + _setter("type", type) @property @pulumi.getter @@ -31477,9 +44347,36 @@ def __init__(__self__, *, :param str metric_name: A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`. :param bool sampled_requests_enabled: Whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. """ - pulumi.set(__self__, "cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "sampled_requests_enabled", sampled_requests_enabled) + WebAclRuleVisibilityConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_metrics_enabled=cloudwatch_metrics_enabled, + metric_name=metric_name, + sampled_requests_enabled=sampled_requests_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_metrics_enabled: Optional[bool] = None, + metric_name: Optional[str] = None, + sampled_requests_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_metrics_enabled is None and 'cloudwatchMetricsEnabled' in kwargs: + cloudwatch_metrics_enabled = kwargs['cloudwatchMetricsEnabled'] + if cloudwatch_metrics_enabled is None: + raise TypeError("Missing 'cloudwatch_metrics_enabled' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if sampled_requests_enabled is None and 'sampledRequestsEnabled' in kwargs: + sampled_requests_enabled = kwargs['sampledRequestsEnabled'] + if sampled_requests_enabled is None: + raise TypeError("Missing 'sampled_requests_enabled' argument") + + _setter("cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) + _setter("metric_name", metric_name) + _setter("sampled_requests_enabled", sampled_requests_enabled) @property @pulumi.getter(name="cloudwatchMetricsEnabled") @@ -31538,9 +44435,36 @@ def __init__(__self__, *, :param str metric_name: A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`. :param bool sampled_requests_enabled: Whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. """ - pulumi.set(__self__, "cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "sampled_requests_enabled", sampled_requests_enabled) + WebAclVisibilityConfig._configure( + lambda key, value: pulumi.set(__self__, key, value), + cloudwatch_metrics_enabled=cloudwatch_metrics_enabled, + metric_name=metric_name, + sampled_requests_enabled=sampled_requests_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + cloudwatch_metrics_enabled: Optional[bool] = None, + metric_name: Optional[str] = None, + sampled_requests_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if cloudwatch_metrics_enabled is None and 'cloudwatchMetricsEnabled' in kwargs: + cloudwatch_metrics_enabled = kwargs['cloudwatchMetricsEnabled'] + if cloudwatch_metrics_enabled is None: + raise TypeError("Missing 'cloudwatch_metrics_enabled' argument") + if metric_name is None and 'metricName' in kwargs: + metric_name = kwargs['metricName'] + if metric_name is None: + raise TypeError("Missing 'metric_name' argument") + if sampled_requests_enabled is None and 'sampledRequestsEnabled' in kwargs: + sampled_requests_enabled = kwargs['sampledRequestsEnabled'] + if sampled_requests_enabled is None: + raise TypeError("Missing 'sampled_requests_enabled' argument") + + _setter("cloudwatch_metrics_enabled", cloudwatch_metrics_enabled) + _setter("metric_name", metric_name) + _setter("sampled_requests_enabled", sampled_requests_enabled) @property @pulumi.getter(name="cloudwatchMetricsEnabled") @@ -31574,7 +44498,22 @@ def __init__(__self__, *, """ :param str regex_string: (Required) String representing the regular expression, see the AWS WAF [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-regex-pattern-set-creating.html) for more information. """ - pulumi.set(__self__, "regex_string", regex_string) + GetRegexPatternSetRegularExpressionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + regex_string=regex_string, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + regex_string: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if regex_string is None and 'regexString' in kwargs: + regex_string = kwargs['regexString'] + if regex_string is None: + raise TypeError("Missing 'regex_string' argument") + + _setter("regex_string", regex_string) @property @pulumi.getter(name="regexString") diff --git a/sdk/python/pulumi_aws/wafv2/regex_pattern_set.py b/sdk/python/pulumi_aws/wafv2/regex_pattern_set.py index 34db47b3058..f50a72b127b 100644 --- a/sdk/python/pulumi_aws/wafv2/regex_pattern_set.py +++ b/sdk/python/pulumi_aws/wafv2/regex_pattern_set.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -29,15 +29,38 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RegexPatternSetRegularExpressionArgs']]] regular_expressions: One or more blocks of regular expression patterns that you want AWS WAF to search for, such as `B[a@]dB[o0]t`. See Regular Expression below for details. A maximum of 10 `regular_expression` blocks may be specified. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: An array of key:value pairs to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "scope", scope) + RegexPatternSetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + scope=scope, + description=description, + name=name, + regular_expressions=regular_expressions, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + scope: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + regular_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['RegexPatternSetRegularExpressionArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if scope is None: + raise TypeError("Missing 'scope' argument") + if regular_expressions is None and 'regularExpressions' in kwargs: + regular_expressions = kwargs['regularExpressions'] + + _setter("scope", scope) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regular_expressions is not None: - pulumi.set(__self__, "regular_expressions", regular_expressions) + _setter("regular_expressions", regular_expressions) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -121,25 +144,56 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: An array of key:value pairs to associate with 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. """ + _RegexPatternSetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + description=description, + lock_token=lock_token, + name=name, + regular_expressions=regular_expressions, + scope=scope, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + lock_token: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + regular_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['RegexPatternSetRegularExpressionArgs']]]] = None, + scope: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if lock_token is None and 'lockToken' in kwargs: + lock_token = kwargs['lockToken'] + if regular_expressions is None and 'regularExpressions' in kwargs: + regular_expressions = kwargs['regularExpressions'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if lock_token is not None: - pulumi.set(__self__, "lock_token", lock_token) + _setter("lock_token", lock_token) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if regular_expressions is not None: - pulumi.set(__self__, "regular_expressions", regular_expressions) + _setter("regular_expressions", regular_expressions) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -341,6 +395,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RegexPatternSetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafv2/rule_group.py b/sdk/python/pulumi_aws/wafv2/rule_group.py index c2f4fd8005f..5a341ab2864 100644 --- a/sdk/python/pulumi_aws/wafv2/rule_group.py +++ b/sdk/python/pulumi_aws/wafv2/rule_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -36,21 +36,60 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleArgs']]] rules: The rule blocks used to identify the web requests that you want to `allow`, `block`, or `count`. See Rules below for details. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: An array of key:value pairs to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "capacity", capacity) - pulumi.set(__self__, "scope", scope) - pulumi.set(__self__, "visibility_config", visibility_config) + RuleGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity=capacity, + scope=scope, + visibility_config=visibility_config, + custom_response_bodies=custom_response_bodies, + description=description, + name=name, + name_prefix=name_prefix, + rules=rules, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity: Optional[pulumi.Input[int]] = None, + scope: Optional[pulumi.Input[str]] = None, + visibility_config: Optional[pulumi.Input['RuleGroupVisibilityConfigArgs']] = None, + custom_response_bodies: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupCustomResponseBodyArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity is None: + raise TypeError("Missing 'capacity' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + if visibility_config is None and 'visibilityConfig' in kwargs: + visibility_config = kwargs['visibilityConfig'] + if visibility_config is None: + raise TypeError("Missing 'visibility_config' argument") + if custom_response_bodies is None and 'customResponseBodies' in kwargs: + custom_response_bodies = kwargs['customResponseBodies'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + + _setter("capacity", capacity) + _setter("scope", scope) + _setter("visibility_config", visibility_config) if custom_response_bodies is not None: - pulumi.set(__self__, "custom_response_bodies", custom_response_bodies) + _setter("custom_response_bodies", custom_response_bodies) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -186,33 +225,76 @@ def __init__(__self__, *, :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['RuleGroupVisibilityConfigArgs'] visibility_config: Defines and enables Amazon CloudWatch metrics and web request sample collection. See Visibility Configuration below for details. """ + _RuleGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + capacity=capacity, + custom_response_bodies=custom_response_bodies, + description=description, + lock_token=lock_token, + name=name, + name_prefix=name_prefix, + rules=rules, + scope=scope, + tags=tags, + tags_all=tags_all, + visibility_config=visibility_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + capacity: Optional[pulumi.Input[int]] = None, + custom_response_bodies: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupCustomResponseBodyArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + lock_token: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + name_prefix: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['RuleGroupRuleArgs']]]] = None, + scope: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + visibility_config: Optional[pulumi.Input['RuleGroupVisibilityConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_response_bodies is None and 'customResponseBodies' in kwargs: + custom_response_bodies = kwargs['customResponseBodies'] + if lock_token is None and 'lockToken' in kwargs: + lock_token = kwargs['lockToken'] + if name_prefix is None and 'namePrefix' in kwargs: + name_prefix = kwargs['namePrefix'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if visibility_config is None and 'visibilityConfig' in kwargs: + visibility_config = kwargs['visibilityConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if capacity is not None: - pulumi.set(__self__, "capacity", capacity) + _setter("capacity", capacity) if custom_response_bodies is not None: - pulumi.set(__self__, "custom_response_bodies", custom_response_bodies) + _setter("custom_response_bodies", custom_response_bodies) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if lock_token is not None: - pulumi.set(__self__, "lock_token", lock_token) + _setter("lock_token", lock_token) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if name_prefix is not None: - pulumi.set(__self__, "name_prefix", name_prefix) + _setter("name_prefix", name_prefix) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if visibility_config is not None: - pulumi.set(__self__, "visibility_config", visibility_config) + _setter("visibility_config", visibility_config) @property @pulumi.getter @@ -402,6 +484,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + RuleGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -437,6 +523,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'scope'") __props__.__dict__["scope"] = scope __props__.__dict__["tags"] = tags + visibility_config = _utilities.configure(visibility_config, RuleGroupVisibilityConfigArgs, True) if visibility_config is None and not opts.urn: raise TypeError("Missing required property 'visibility_config'") __props__.__dict__["visibility_config"] = visibility_config diff --git a/sdk/python/pulumi_aws/wafv2/web_acl.py b/sdk/python/pulumi_aws/wafv2/web_acl.py index 5798e118b08..4380409f18b 100644 --- a/sdk/python/pulumi_aws/wafv2/web_acl.py +++ b/sdk/python/pulumi_aws/wafv2/web_acl.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -41,25 +41,74 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of key-value pairs to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input[str]]] token_domains: Specifies the domains that AWS WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When AWS WAF provides a token, it uses the domain of the AWS resource that the web ACL is protecting. If you don't specify a list of token domains, AWS WAF accepts tokens only for the domain of the protected resource. With a token domain list, AWS WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains. """ - pulumi.set(__self__, "default_action", default_action) - pulumi.set(__self__, "scope", scope) - pulumi.set(__self__, "visibility_config", visibility_config) + WebAclArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + default_action=default_action, + scope=scope, + visibility_config=visibility_config, + association_config=association_config, + captcha_config=captcha_config, + custom_response_bodies=custom_response_bodies, + description=description, + name=name, + rules=rules, + tags=tags, + token_domains=token_domains, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + default_action: Optional[pulumi.Input['WebAclDefaultActionArgs']] = None, + scope: Optional[pulumi.Input[str]] = None, + visibility_config: Optional[pulumi.Input['WebAclVisibilityConfigArgs']] = None, + association_config: Optional[pulumi.Input['WebAclAssociationConfigArgs']] = None, + captcha_config: Optional[pulumi.Input['WebAclCaptchaConfigArgs']] = None, + custom_response_bodies: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclCustomResponseBodyArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + token_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if default_action is None: + raise TypeError("Missing 'default_action' argument") + if scope is None: + raise TypeError("Missing 'scope' argument") + if visibility_config is None and 'visibilityConfig' in kwargs: + visibility_config = kwargs['visibilityConfig'] + if visibility_config is None: + raise TypeError("Missing 'visibility_config' argument") + if association_config is None and 'associationConfig' in kwargs: + association_config = kwargs['associationConfig'] + if captcha_config is None and 'captchaConfig' in kwargs: + captcha_config = kwargs['captchaConfig'] + if custom_response_bodies is None and 'customResponseBodies' in kwargs: + custom_response_bodies = kwargs['customResponseBodies'] + if token_domains is None and 'tokenDomains' in kwargs: + token_domains = kwargs['tokenDomains'] + + _setter("default_action", default_action) + _setter("scope", scope) + _setter("visibility_config", visibility_config) if association_config is not None: - pulumi.set(__self__, "association_config", association_config) + _setter("association_config", association_config) if captcha_config is not None: - pulumi.set(__self__, "captcha_config", captcha_config) + _setter("captcha_config", captcha_config) if custom_response_bodies is not None: - pulumi.set(__self__, "custom_response_bodies", custom_response_bodies) + _setter("custom_response_bodies", custom_response_bodies) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if token_domains is not None: - pulumi.set(__self__, "token_domains", token_domains) + _setter("token_domains", token_domains) @property @pulumi.getter(name="defaultAction") @@ -229,39 +278,94 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] token_domains: Specifies the domains that AWS WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When AWS WAF provides a token, it uses the domain of the AWS resource that the web ACL is protecting. If you don't specify a list of token domains, AWS WAF accepts tokens only for the domain of the protected resource. With a token domain list, AWS WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains. :param pulumi.Input['WebAclVisibilityConfigArgs'] visibility_config: Defines and enables Amazon CloudWatch metrics and web request sample collection. See `visibility_config` below for details. """ + _WebAclState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + association_config=association_config, + capacity=capacity, + captcha_config=captcha_config, + custom_response_bodies=custom_response_bodies, + default_action=default_action, + description=description, + lock_token=lock_token, + name=name, + rules=rules, + scope=scope, + tags=tags, + tags_all=tags_all, + token_domains=token_domains, + visibility_config=visibility_config, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + association_config: Optional[pulumi.Input['WebAclAssociationConfigArgs']] = None, + capacity: Optional[pulumi.Input[int]] = None, + captcha_config: Optional[pulumi.Input['WebAclCaptchaConfigArgs']] = None, + custom_response_bodies: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclCustomResponseBodyArgs']]]] = None, + default_action: Optional[pulumi.Input['WebAclDefaultActionArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + lock_token: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclRuleArgs']]]] = None, + scope: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + token_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + visibility_config: Optional[pulumi.Input['WebAclVisibilityConfigArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if association_config is None and 'associationConfig' in kwargs: + association_config = kwargs['associationConfig'] + if captcha_config is None and 'captchaConfig' in kwargs: + captcha_config = kwargs['captchaConfig'] + if custom_response_bodies is None and 'customResponseBodies' in kwargs: + custom_response_bodies = kwargs['customResponseBodies'] + if default_action is None and 'defaultAction' in kwargs: + default_action = kwargs['defaultAction'] + if lock_token is None and 'lockToken' in kwargs: + lock_token = kwargs['lockToken'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if token_domains is None and 'tokenDomains' in kwargs: + token_domains = kwargs['tokenDomains'] + if visibility_config is None and 'visibilityConfig' in kwargs: + visibility_config = kwargs['visibilityConfig'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if association_config is not None: - pulumi.set(__self__, "association_config", association_config) + _setter("association_config", association_config) if capacity is not None: - pulumi.set(__self__, "capacity", capacity) + _setter("capacity", capacity) if captcha_config is not None: - pulumi.set(__self__, "captcha_config", captcha_config) + _setter("captcha_config", captcha_config) if custom_response_bodies is not None: - pulumi.set(__self__, "custom_response_bodies", custom_response_bodies) + _setter("custom_response_bodies", custom_response_bodies) if default_action is not None: - pulumi.set(__self__, "default_action", default_action) + _setter("default_action", default_action) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if lock_token is not None: - pulumi.set(__self__, "lock_token", lock_token) + _setter("lock_token", lock_token) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if scope is not None: - pulumi.set(__self__, "scope", scope) + _setter("scope", scope) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if token_domains is not None: - pulumi.set(__self__, "token_domains", token_domains) + _setter("token_domains", token_domains) if visibility_config is not None: - pulumi.set(__self__, "visibility_config", visibility_config) + _setter("visibility_config", visibility_config) @property @pulumi.getter @@ -495,6 +599,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebAclArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -520,9 +628,12 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = WebAclArgs.__new__(WebAclArgs) + association_config = _utilities.configure(association_config, WebAclAssociationConfigArgs, True) __props__.__dict__["association_config"] = association_config + captcha_config = _utilities.configure(captcha_config, WebAclCaptchaConfigArgs, True) __props__.__dict__["captcha_config"] = captcha_config __props__.__dict__["custom_response_bodies"] = custom_response_bodies + default_action = _utilities.configure(default_action, WebAclDefaultActionArgs, True) if default_action is None and not opts.urn: raise TypeError("Missing required property 'default_action'") __props__.__dict__["default_action"] = default_action @@ -534,6 +645,7 @@ def _internal_init(__self__, __props__.__dict__["scope"] = scope __props__.__dict__["tags"] = tags __props__.__dict__["token_domains"] = token_domains + visibility_config = _utilities.configure(visibility_config, WebAclVisibilityConfigArgs, True) if visibility_config is None and not opts.urn: raise TypeError("Missing required property 'visibility_config'") __props__.__dict__["visibility_config"] = visibility_config diff --git a/sdk/python/pulumi_aws/wafv2/web_acl_association.py b/sdk/python/pulumi_aws/wafv2/web_acl_association.py index 57fe06be6c4..a93091e70cc 100644 --- a/sdk/python/pulumi_aws/wafv2/web_acl_association.py +++ b/sdk/python/pulumi_aws/wafv2/web_acl_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['WebAclAssociationArgs', 'WebAclAssociation'] @@ -21,8 +21,29 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the resource to associate with the web ACL. This must be an ARN of an Application Load Balancer, an Amazon API Gateway stage, an Amazon Cognito User Pool, an Amazon AppSync GraphQL API, an Amazon App Runner service, or an Amazon Verified Access instance. :param pulumi.Input[str] web_acl_arn: The Amazon Resource Name (ARN) of the Web ACL that you want to associate with the resource. """ - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "web_acl_arn", web_acl_arn) + WebAclAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + web_acl_arn=web_acl_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + web_acl_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if web_acl_arn is None and 'webAclArn' in kwargs: + web_acl_arn = kwargs['webAclArn'] + if web_acl_arn is None: + raise TypeError("Missing 'web_acl_arn' argument") + + _setter("resource_arn", resource_arn) + _setter("web_acl_arn", web_acl_arn) @property @pulumi.getter(name="resourceArn") @@ -59,10 +80,27 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the resource to associate with the web ACL. This must be an ARN of an Application Load Balancer, an Amazon API Gateway stage, an Amazon Cognito User Pool, an Amazon AppSync GraphQL API, an Amazon App Runner service, or an Amazon Verified Access instance. :param pulumi.Input[str] web_acl_arn: The Amazon Resource Name (ARN) of the Web ACL that you want to associate with the resource. """ + _WebAclAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + resource_arn=resource_arn, + web_acl_arn=web_acl_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + resource_arn: Optional[pulumi.Input[str]] = None, + web_acl_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if web_acl_arn is None and 'webAclArn' in kwargs: + web_acl_arn = kwargs['webAclArn'] + if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if web_acl_arn is not None: - pulumi.set(__self__, "web_acl_arn", web_acl_arn) + _setter("web_acl_arn", web_acl_arn) @property @pulumi.getter(name="resourceArn") @@ -250,6 +288,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebAclAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/wafv2/web_acl_logging_configuration.py b/sdk/python/pulumi_aws/wafv2/web_acl_logging_configuration.py index f7adc1ee015..5c2f55781bc 100644 --- a/sdk/python/pulumi_aws/wafv2/web_acl_logging_configuration.py +++ b/sdk/python/pulumi_aws/wafv2/web_acl_logging_configuration.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,41 @@ def __init__(__self__, *, :param pulumi.Input['WebAclLoggingConfigurationLoggingFilterArgs'] logging_filter: Configuration block that specifies which web requests are kept in the logs and which are dropped. It allows filtering based on the rule action and the web request labels applied by matching rules during web ACL evaluation. For more details, refer to the Logging Filter section below. :param pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationRedactedFieldArgs']]] redacted_fields: Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redacted_fields` blocks are supported. See Redacted Fields below for more details. """ - pulumi.set(__self__, "log_destination_configs", log_destination_configs) - pulumi.set(__self__, "resource_arn", resource_arn) + WebAclLoggingConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination_configs=log_destination_configs, + resource_arn=resource_arn, + logging_filter=logging_filter, + redacted_fields=redacted_fields, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination_configs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + logging_filter: Optional[pulumi.Input['WebAclLoggingConfigurationLoggingFilterArgs']] = None, + redacted_fields: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationRedactedFieldArgs']]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination_configs is None and 'logDestinationConfigs' in kwargs: + log_destination_configs = kwargs['logDestinationConfigs'] + if log_destination_configs is None: + raise TypeError("Missing 'log_destination_configs' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if logging_filter is None and 'loggingFilter' in kwargs: + logging_filter = kwargs['loggingFilter'] + if redacted_fields is None and 'redactedFields' in kwargs: + redacted_fields = kwargs['redactedFields'] + + _setter("log_destination_configs", log_destination_configs) + _setter("resource_arn", resource_arn) if logging_filter is not None: - pulumi.set(__self__, "logging_filter", logging_filter) + _setter("logging_filter", logging_filter) if redacted_fields is not None: - pulumi.set(__self__, "redacted_fields", redacted_fields) + _setter("redacted_fields", redacted_fields) @property @pulumi.getter(name="logDestinationConfigs") @@ -97,14 +126,39 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationRedactedFieldArgs']]] redacted_fields: Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redacted_fields` blocks are supported. See Redacted Fields below for more details. :param pulumi.Input[str] resource_arn: Amazon Resource Name (ARN) of the web ACL that you want to associate with `log_destination_configs`. """ + _WebAclLoggingConfigurationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + log_destination_configs=log_destination_configs, + logging_filter=logging_filter, + redacted_fields=redacted_fields, + resource_arn=resource_arn, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + log_destination_configs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + logging_filter: Optional[pulumi.Input['WebAclLoggingConfigurationLoggingFilterArgs']] = None, + redacted_fields: Optional[pulumi.Input[Sequence[pulumi.Input['WebAclLoggingConfigurationRedactedFieldArgs']]]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if log_destination_configs is None and 'logDestinationConfigs' in kwargs: + log_destination_configs = kwargs['logDestinationConfigs'] + if logging_filter is None and 'loggingFilter' in kwargs: + logging_filter = kwargs['loggingFilter'] + if redacted_fields is None and 'redactedFields' in kwargs: + redacted_fields = kwargs['redactedFields'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if log_destination_configs is not None: - pulumi.set(__self__, "log_destination_configs", log_destination_configs) + _setter("log_destination_configs", log_destination_configs) if logging_filter is not None: - pulumi.set(__self__, "logging_filter", logging_filter) + _setter("logging_filter", logging_filter) if redacted_fields is not None: - pulumi.set(__self__, "redacted_fields", redacted_fields) + _setter("redacted_fields", redacted_fields) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) @property @pulumi.getter(name="logDestinationConfigs") @@ -328,6 +382,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebAclLoggingConfigurationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -349,6 +407,7 @@ def _internal_init(__self__, if log_destination_configs is None and not opts.urn: raise TypeError("Missing required property 'log_destination_configs'") __props__.__dict__["log_destination_configs"] = log_destination_configs + logging_filter = _utilities.configure(logging_filter, WebAclLoggingConfigurationLoggingFilterArgs, True) __props__.__dict__["logging_filter"] = logging_filter __props__.__dict__["redacted_fields"] = redacted_fields if resource_arn is None and not opts.urn: diff --git a/sdk/python/pulumi_aws/worklink/_inputs.py b/sdk/python/pulumi_aws/worklink/_inputs.py index 8a1ca9a23fe..0d6f8e84e1c 100644 --- a/sdk/python/pulumi_aws/worklink/_inputs.py +++ b/sdk/python/pulumi_aws/worklink/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -23,8 +23,27 @@ def __init__(__self__, *, :param pulumi.Input[str] saml_metadata: The SAML metadata document provided by the customer’s identity provider. :param pulumi.Input[str] type: The type of identity provider. """ - pulumi.set(__self__, "saml_metadata", saml_metadata) - pulumi.set(__self__, "type", type) + FleetIdentityProviderArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + saml_metadata=saml_metadata, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + saml_metadata: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if saml_metadata is None and 'samlMetadata' in kwargs: + saml_metadata = kwargs['samlMetadata'] + if saml_metadata is None: + raise TypeError("Missing 'saml_metadata' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("saml_metadata", saml_metadata) + _setter("type", type) @property @pulumi.getter(name="samlMetadata") @@ -66,9 +85,36 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A list of subnet IDs used for X-ENI connections from Amazon WorkLink rendering containers. :param pulumi.Input[str] vpc_id: The VPC ID with connectivity to associated websites. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + FleetNetworkArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/worklink/fleet.py b/sdk/python/pulumi_aws/worklink/fleet.py index 01991f5757d..42655ccce76 100644 --- a/sdk/python/pulumi_aws/worklink/fleet.py +++ b/sdk/python/pulumi_aws/worklink/fleet.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -37,20 +37,53 @@ def __init__(__self__, *, > **NOTE:** `network` is cannot removed without force recreating. """ + FleetArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + audit_stream_arn=audit_stream_arn, + device_ca_certificate=device_ca_certificate, + display_name=display_name, + identity_provider=identity_provider, + name=name, + network=network, + optimize_for_end_user_location=optimize_for_end_user_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + audit_stream_arn: Optional[pulumi.Input[str]] = None, + device_ca_certificate: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + identity_provider: Optional[pulumi.Input['FleetIdentityProviderArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + network: Optional[pulumi.Input['FleetNetworkArgs']] = None, + optimize_for_end_user_location: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_stream_arn is None and 'auditStreamArn' in kwargs: + audit_stream_arn = kwargs['auditStreamArn'] + if device_ca_certificate is None and 'deviceCaCertificate' in kwargs: + device_ca_certificate = kwargs['deviceCaCertificate'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if identity_provider is None and 'identityProvider' in kwargs: + identity_provider = kwargs['identityProvider'] + if optimize_for_end_user_location is None and 'optimizeForEndUserLocation' in kwargs: + optimize_for_end_user_location = kwargs['optimizeForEndUserLocation'] + if audit_stream_arn is not None: - pulumi.set(__self__, "audit_stream_arn", audit_stream_arn) + _setter("audit_stream_arn", audit_stream_arn) if device_ca_certificate is not None: - pulumi.set(__self__, "device_ca_certificate", device_ca_certificate) + _setter("device_ca_certificate", device_ca_certificate) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if identity_provider is not None: - pulumi.set(__self__, "identity_provider", identity_provider) + _setter("identity_provider", identity_provider) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network is not None: - pulumi.set(__self__, "network", network) + _setter("network", network) if optimize_for_end_user_location is not None: - pulumi.set(__self__, "optimize_for_end_user_location", optimize_for_end_user_location) + _setter("optimize_for_end_user_location", optimize_for_end_user_location) @property @pulumi.getter(name="auditStreamArn") @@ -173,28 +206,75 @@ def __init__(__self__, *, > **NOTE:** `network` is cannot removed without force recreating. """ + _FleetState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + audit_stream_arn=audit_stream_arn, + company_code=company_code, + created_time=created_time, + device_ca_certificate=device_ca_certificate, + display_name=display_name, + identity_provider=identity_provider, + last_updated_time=last_updated_time, + name=name, + network=network, + optimize_for_end_user_location=optimize_for_end_user_location, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + audit_stream_arn: Optional[pulumi.Input[str]] = None, + company_code: Optional[pulumi.Input[str]] = None, + created_time: Optional[pulumi.Input[str]] = None, + device_ca_certificate: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + identity_provider: Optional[pulumi.Input['FleetIdentityProviderArgs']] = None, + last_updated_time: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + network: Optional[pulumi.Input['FleetNetworkArgs']] = None, + optimize_for_end_user_location: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if audit_stream_arn is None and 'auditStreamArn' in kwargs: + audit_stream_arn = kwargs['auditStreamArn'] + if company_code is None and 'companyCode' in kwargs: + company_code = kwargs['companyCode'] + if created_time is None and 'createdTime' in kwargs: + created_time = kwargs['createdTime'] + if device_ca_certificate is None and 'deviceCaCertificate' in kwargs: + device_ca_certificate = kwargs['deviceCaCertificate'] + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if identity_provider is None and 'identityProvider' in kwargs: + identity_provider = kwargs['identityProvider'] + if last_updated_time is None and 'lastUpdatedTime' in kwargs: + last_updated_time = kwargs['lastUpdatedTime'] + if optimize_for_end_user_location is None and 'optimizeForEndUserLocation' in kwargs: + optimize_for_end_user_location = kwargs['optimizeForEndUserLocation'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if audit_stream_arn is not None: - pulumi.set(__self__, "audit_stream_arn", audit_stream_arn) + _setter("audit_stream_arn", audit_stream_arn) if company_code is not None: - pulumi.set(__self__, "company_code", company_code) + _setter("company_code", company_code) if created_time is not None: - pulumi.set(__self__, "created_time", created_time) + _setter("created_time", created_time) if device_ca_certificate is not None: - pulumi.set(__self__, "device_ca_certificate", device_ca_certificate) + _setter("device_ca_certificate", device_ca_certificate) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if identity_provider is not None: - pulumi.set(__self__, "identity_provider", identity_provider) + _setter("identity_provider", identity_provider) if last_updated_time is not None: - pulumi.set(__self__, "last_updated_time", last_updated_time) + _setter("last_updated_time", last_updated_time) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if network is not None: - pulumi.set(__self__, "network", network) + _setter("network", network) if optimize_for_end_user_location is not None: - pulumi.set(__self__, "optimize_for_end_user_location", optimize_for_end_user_location) + _setter("optimize_for_end_user_location", optimize_for_end_user_location) @property @pulumi.getter @@ -466,6 +546,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + FleetArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -490,8 +574,10 @@ def _internal_init(__self__, __props__.__dict__["audit_stream_arn"] = audit_stream_arn __props__.__dict__["device_ca_certificate"] = device_ca_certificate __props__.__dict__["display_name"] = display_name + identity_provider = _utilities.configure(identity_provider, FleetIdentityProviderArgs, True) __props__.__dict__["identity_provider"] = identity_provider __props__.__dict__["name"] = name + network = _utilities.configure(network, FleetNetworkArgs, True) __props__.__dict__["network"] = network __props__.__dict__["optimize_for_end_user_location"] = optimize_for_end_user_location __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/worklink/outputs.py b/sdk/python/pulumi_aws/worklink/outputs.py index 96f513a3a5c..3ba8c10cd6d 100644 --- a/sdk/python/pulumi_aws/worklink/outputs.py +++ b/sdk/python/pulumi_aws/worklink/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -40,8 +40,27 @@ def __init__(__self__, *, :param str saml_metadata: The SAML metadata document provided by the customer’s identity provider. :param str type: The type of identity provider. """ - pulumi.set(__self__, "saml_metadata", saml_metadata) - pulumi.set(__self__, "type", type) + FleetIdentityProvider._configure( + lambda key, value: pulumi.set(__self__, key, value), + saml_metadata=saml_metadata, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + saml_metadata: Optional[str] = None, + type: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if saml_metadata is None and 'samlMetadata' in kwargs: + saml_metadata = kwargs['samlMetadata'] + if saml_metadata is None: + raise TypeError("Missing 'saml_metadata' argument") + if type is None: + raise TypeError("Missing 'type' argument") + + _setter("saml_metadata", saml_metadata) + _setter("type", type) @property @pulumi.getter(name="samlMetadata") @@ -96,9 +115,36 @@ def __init__(__self__, *, :param Sequence[str] subnet_ids: A list of subnet IDs used for X-ENI connections from Amazon WorkLink rendering containers. :param str vpc_id: The VPC ID with connectivity to associated websites. """ - pulumi.set(__self__, "security_group_ids", security_group_ids) - pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "vpc_id", vpc_id) + FleetNetwork._configure( + lambda key, value: pulumi.set(__self__, key, value), + security_group_ids=security_group_ids, + subnet_ids=subnet_ids, + vpc_id=vpc_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + security_group_ids: Optional[Sequence[str]] = None, + subnet_ids: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if security_group_ids is None and 'securityGroupIds' in kwargs: + security_group_ids = kwargs['securityGroupIds'] + if security_group_ids is None: + raise TypeError("Missing 'security_group_ids' argument") + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if subnet_ids is None: + raise TypeError("Missing 'subnet_ids' argument") + if vpc_id is None and 'vpcId' in kwargs: + vpc_id = kwargs['vpcId'] + if vpc_id is None: + raise TypeError("Missing 'vpc_id' argument") + + _setter("security_group_ids", security_group_ids) + _setter("subnet_ids", subnet_ids) + _setter("vpc_id", vpc_id) @property @pulumi.getter(name="securityGroupIds") diff --git a/sdk/python/pulumi_aws/worklink/website_certificate_authority_association.py b/sdk/python/pulumi_aws/worklink/website_certificate_authority_association.py index 9199d96329f..f3658051955 100644 --- a/sdk/python/pulumi_aws/worklink/website_certificate_authority_association.py +++ b/sdk/python/pulumi_aws/worklink/website_certificate_authority_association.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['WebsiteCertificateAuthorityAssociationArgs', 'WebsiteCertificateAuthorityAssociation'] @@ -23,10 +23,33 @@ def __init__(__self__, *, :param pulumi.Input[str] fleet_arn: The ARN of the fleet. :param pulumi.Input[str] display_name: The certificate name to display. """ - pulumi.set(__self__, "certificate", certificate) - pulumi.set(__self__, "fleet_arn", fleet_arn) + WebsiteCertificateAuthorityAssociationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + fleet_arn=fleet_arn, + display_name=display_name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[pulumi.Input[str]] = None, + fleet_arn: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if certificate is None: + raise TypeError("Missing 'certificate' argument") + if fleet_arn is None and 'fleetArn' in kwargs: + fleet_arn = kwargs['fleetArn'] + if fleet_arn is None: + raise TypeError("Missing 'fleet_arn' argument") + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + + _setter("certificate", certificate) + _setter("fleet_arn", fleet_arn) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) @property @pulumi.getter @@ -79,14 +102,37 @@ def __init__(__self__, *, :param pulumi.Input[str] fleet_arn: The ARN of the fleet. :param pulumi.Input[str] website_ca_id: A unique identifier for the Certificate Authority. """ + _WebsiteCertificateAuthorityAssociationState._configure( + lambda key, value: pulumi.set(__self__, key, value), + certificate=certificate, + display_name=display_name, + fleet_arn=fleet_arn, + website_ca_id=website_ca_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + certificate: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + fleet_arn: Optional[pulumi.Input[str]] = None, + website_ca_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if display_name is None and 'displayName' in kwargs: + display_name = kwargs['displayName'] + if fleet_arn is None and 'fleetArn' in kwargs: + fleet_arn = kwargs['fleetArn'] + if website_ca_id is None and 'websiteCaId' in kwargs: + website_ca_id = kwargs['websiteCaId'] + if certificate is not None: - pulumi.set(__self__, "certificate", certificate) + _setter("certificate", certificate) if display_name is not None: - pulumi.set(__self__, "display_name", display_name) + _setter("display_name", display_name) if fleet_arn is not None: - pulumi.set(__self__, "fleet_arn", fleet_arn) + _setter("fleet_arn", fleet_arn) if website_ca_id is not None: - pulumi.set(__self__, "website_ca_id", website_ca_id) + _setter("website_ca_id", website_ca_id) @property @pulumi.getter @@ -210,6 +256,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WebsiteCertificateAuthorityAssociationArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/workspaces/_inputs.py b/sdk/python/pulumi_aws/workspaces/_inputs.py index 5748b838c4d..778f7e35ed0 100644 --- a/sdk/python/pulumi_aws/workspaces/_inputs.py +++ b/sdk/python/pulumi_aws/workspaces/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -24,12 +24,27 @@ def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, update: Optional[pulumi.Input[str]] = None): + ConnectionAliasTimeoutsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -74,16 +89,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] restart_workspace: Whether WorkSpaces directory users can restart their workspace. Default `true`. :param pulumi.Input[bool] switch_running_mode: Whether WorkSpaces directory users can switch the running mode of their workspace. Default `false`. """ + DirectorySelfServicePermissionsArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + change_compute_type=change_compute_type, + increase_volume_size=increase_volume_size, + rebuild_workspace=rebuild_workspace, + restart_workspace=restart_workspace, + switch_running_mode=switch_running_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + change_compute_type: Optional[pulumi.Input[bool]] = None, + increase_volume_size: Optional[pulumi.Input[bool]] = None, + rebuild_workspace: Optional[pulumi.Input[bool]] = None, + restart_workspace: Optional[pulumi.Input[bool]] = None, + switch_running_mode: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if change_compute_type is None and 'changeComputeType' in kwargs: + change_compute_type = kwargs['changeComputeType'] + if increase_volume_size is None and 'increaseVolumeSize' in kwargs: + increase_volume_size = kwargs['increaseVolumeSize'] + if rebuild_workspace is None and 'rebuildWorkspace' in kwargs: + rebuild_workspace = kwargs['rebuildWorkspace'] + if restart_workspace is None and 'restartWorkspace' in kwargs: + restart_workspace = kwargs['restartWorkspace'] + if switch_running_mode is None and 'switchRunningMode' in kwargs: + switch_running_mode = kwargs['switchRunningMode'] + if change_compute_type is not None: - pulumi.set(__self__, "change_compute_type", change_compute_type) + _setter("change_compute_type", change_compute_type) if increase_volume_size is not None: - pulumi.set(__self__, "increase_volume_size", increase_volume_size) + _setter("increase_volume_size", increase_volume_size) if rebuild_workspace is not None: - pulumi.set(__self__, "rebuild_workspace", rebuild_workspace) + _setter("rebuild_workspace", rebuild_workspace) if restart_workspace is not None: - pulumi.set(__self__, "restart_workspace", restart_workspace) + _setter("restart_workspace", restart_workspace) if switch_running_mode is not None: - pulumi.set(__self__, "switch_running_mode", switch_running_mode) + _setter("switch_running_mode", switch_running_mode) @property @pulumi.getter(name="changeComputeType") @@ -167,22 +211,63 @@ def __init__(__self__, *, :param pulumi.Input[str] device_type_windows: Indicates whether users can use Windows clients to access their WorkSpaces. :param pulumi.Input[str] device_type_zeroclient: Indicates whether users can use zero client devices to access their WorkSpaces. """ + DirectoryWorkspaceAccessPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_type_android=device_type_android, + device_type_chromeos=device_type_chromeos, + device_type_ios=device_type_ios, + device_type_linux=device_type_linux, + device_type_osx=device_type_osx, + device_type_web=device_type_web, + device_type_windows=device_type_windows, + device_type_zeroclient=device_type_zeroclient, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_type_android: Optional[pulumi.Input[str]] = None, + device_type_chromeos: Optional[pulumi.Input[str]] = None, + device_type_ios: Optional[pulumi.Input[str]] = None, + device_type_linux: Optional[pulumi.Input[str]] = None, + device_type_osx: Optional[pulumi.Input[str]] = None, + device_type_web: Optional[pulumi.Input[str]] = None, + device_type_windows: Optional[pulumi.Input[str]] = None, + device_type_zeroclient: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_type_android is None and 'deviceTypeAndroid' in kwargs: + device_type_android = kwargs['deviceTypeAndroid'] + if device_type_chromeos is None and 'deviceTypeChromeos' in kwargs: + device_type_chromeos = kwargs['deviceTypeChromeos'] + if device_type_ios is None and 'deviceTypeIos' in kwargs: + device_type_ios = kwargs['deviceTypeIos'] + if device_type_linux is None and 'deviceTypeLinux' in kwargs: + device_type_linux = kwargs['deviceTypeLinux'] + if device_type_osx is None and 'deviceTypeOsx' in kwargs: + device_type_osx = kwargs['deviceTypeOsx'] + if device_type_web is None and 'deviceTypeWeb' in kwargs: + device_type_web = kwargs['deviceTypeWeb'] + if device_type_windows is None and 'deviceTypeWindows' in kwargs: + device_type_windows = kwargs['deviceTypeWindows'] + if device_type_zeroclient is None and 'deviceTypeZeroclient' in kwargs: + device_type_zeroclient = kwargs['deviceTypeZeroclient'] + if device_type_android is not None: - pulumi.set(__self__, "device_type_android", device_type_android) + _setter("device_type_android", device_type_android) if device_type_chromeos is not None: - pulumi.set(__self__, "device_type_chromeos", device_type_chromeos) + _setter("device_type_chromeos", device_type_chromeos) if device_type_ios is not None: - pulumi.set(__self__, "device_type_ios", device_type_ios) + _setter("device_type_ios", device_type_ios) if device_type_linux is not None: - pulumi.set(__self__, "device_type_linux", device_type_linux) + _setter("device_type_linux", device_type_linux) if device_type_osx is not None: - pulumi.set(__self__, "device_type_osx", device_type_osx) + _setter("device_type_osx", device_type_osx) if device_type_web is not None: - pulumi.set(__self__, "device_type_web", device_type_web) + _setter("device_type_web", device_type_web) if device_type_windows is not None: - pulumi.set(__self__, "device_type_windows", device_type_windows) + _setter("device_type_windows", device_type_windows) if device_type_zeroclient is not None: - pulumi.set(__self__, "device_type_zeroclient", device_type_zeroclient) + _setter("device_type_zeroclient", device_type_zeroclient) @property @pulumi.getter(name="deviceTypeAndroid") @@ -296,16 +381,45 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_maintenance_mode: Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. :param pulumi.Input[bool] user_enabled_as_local_administrator: Indicates whether users are local administrators of their WorkSpaces. """ + DirectoryWorkspaceCreationPropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_security_group_id=custom_security_group_id, + default_ou=default_ou, + enable_internet_access=enable_internet_access, + enable_maintenance_mode=enable_maintenance_mode, + user_enabled_as_local_administrator=user_enabled_as_local_administrator, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_security_group_id: Optional[pulumi.Input[str]] = None, + default_ou: Optional[pulumi.Input[str]] = None, + enable_internet_access: Optional[pulumi.Input[bool]] = None, + enable_maintenance_mode: Optional[pulumi.Input[bool]] = None, + user_enabled_as_local_administrator: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_security_group_id is None and 'customSecurityGroupId' in kwargs: + custom_security_group_id = kwargs['customSecurityGroupId'] + if default_ou is None and 'defaultOu' in kwargs: + default_ou = kwargs['defaultOu'] + if enable_internet_access is None and 'enableInternetAccess' in kwargs: + enable_internet_access = kwargs['enableInternetAccess'] + if enable_maintenance_mode is None and 'enableMaintenanceMode' in kwargs: + enable_maintenance_mode = kwargs['enableMaintenanceMode'] + if user_enabled_as_local_administrator is None and 'userEnabledAsLocalAdministrator' in kwargs: + user_enabled_as_local_administrator = kwargs['userEnabledAsLocalAdministrator'] + if custom_security_group_id is not None: - pulumi.set(__self__, "custom_security_group_id", custom_security_group_id) + _setter("custom_security_group_id", custom_security_group_id) if default_ou is not None: - pulumi.set(__self__, "default_ou", default_ou) + _setter("default_ou", default_ou) if enable_internet_access is not None: - pulumi.set(__self__, "enable_internet_access", enable_internet_access) + _setter("enable_internet_access", enable_internet_access) if enable_maintenance_mode is not None: - pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) + _setter("enable_maintenance_mode", enable_maintenance_mode) if user_enabled_as_local_administrator is not None: - pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) + _setter("user_enabled_as_local_administrator", user_enabled_as_local_administrator) @property @pulumi.getter(name="customSecurityGroupId") @@ -377,9 +491,24 @@ def __init__(__self__, *, :param pulumi.Input[str] source: The IP address range, in CIDR notation, e.g., `10.0.0.0/16` :param pulumi.Input[str] description: The description of the IP group. """ - pulumi.set(__self__, "source", source) + IpGroupRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("source", source) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -421,16 +550,45 @@ def __init__(__self__, *, :param pulumi.Input[int] running_mode_auto_stop_timeout_in_minutes: The time after a user logs off when WorkSpaces are automatically stopped. Configured in 60-minute intervals. :param pulumi.Input[int] user_volume_size_gib: The size of the user storage. """ + WorkspaceWorkspacePropertiesArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_type_name=compute_type_name, + root_volume_size_gib=root_volume_size_gib, + running_mode=running_mode, + running_mode_auto_stop_timeout_in_minutes=running_mode_auto_stop_timeout_in_minutes, + user_volume_size_gib=user_volume_size_gib, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_type_name: Optional[pulumi.Input[str]] = None, + root_volume_size_gib: Optional[pulumi.Input[int]] = None, + running_mode: Optional[pulumi.Input[str]] = None, + running_mode_auto_stop_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + user_volume_size_gib: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_type_name is None and 'computeTypeName' in kwargs: + compute_type_name = kwargs['computeTypeName'] + if root_volume_size_gib is None and 'rootVolumeSizeGib' in kwargs: + root_volume_size_gib = kwargs['rootVolumeSizeGib'] + if running_mode is None and 'runningMode' in kwargs: + running_mode = kwargs['runningMode'] + if running_mode_auto_stop_timeout_in_minutes is None and 'runningModeAutoStopTimeoutInMinutes' in kwargs: + running_mode_auto_stop_timeout_in_minutes = kwargs['runningModeAutoStopTimeoutInMinutes'] + if user_volume_size_gib is None and 'userVolumeSizeGib' in kwargs: + user_volume_size_gib = kwargs['userVolumeSizeGib'] + if compute_type_name is not None: - pulumi.set(__self__, "compute_type_name", compute_type_name) + _setter("compute_type_name", compute_type_name) if root_volume_size_gib is not None: - pulumi.set(__self__, "root_volume_size_gib", root_volume_size_gib) + _setter("root_volume_size_gib", root_volume_size_gib) if running_mode is not None: - pulumi.set(__self__, "running_mode", running_mode) + _setter("running_mode", running_mode) if running_mode_auto_stop_timeout_in_minutes is not None: - pulumi.set(__self__, "running_mode_auto_stop_timeout_in_minutes", running_mode_auto_stop_timeout_in_minutes) + _setter("running_mode_auto_stop_timeout_in_minutes", running_mode_auto_stop_timeout_in_minutes) if user_volume_size_gib is not None: - pulumi.set(__self__, "user_volume_size_gib", user_volume_size_gib) + _setter("user_volume_size_gib", user_volume_size_gib) @property @pulumi.getter(name="computeTypeName") diff --git a/sdk/python/pulumi_aws/workspaces/connection_alias.py b/sdk/python/pulumi_aws/workspaces/connection_alias.py index 06ff85ca695..02db942599c 100644 --- a/sdk/python/pulumi_aws/workspaces/connection_alias.py +++ b/sdk/python/pulumi_aws/workspaces/connection_alias.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -24,11 +24,30 @@ def __init__(__self__, *, :param pulumi.Input[str] connection_string: The connection string specified for the connection alias. The connection string must be in the form of a fully qualified domain name (FQDN), such as www.example.com. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces Connection Alias. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - pulumi.set(__self__, "connection_string", connection_string) + ConnectionAliasArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_string=connection_string, + tags=tags, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_string: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['ConnectionAliasTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_string is None and 'connectionString' in kwargs: + connection_string = kwargs['connectionString'] + if connection_string is None: + raise TypeError("Missing 'connection_string' argument") + + _setter("connection_string", connection_string) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="connectionString") @@ -81,21 +100,48 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces Connection Alias. 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. """ + _ConnectionAliasState._configure( + lambda key, value: pulumi.set(__self__, key, value), + connection_string=connection_string, + owner_account_id=owner_account_id, + state=state, + tags=tags, + tags_all=tags_all, + timeouts=timeouts, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + connection_string: Optional[pulumi.Input[str]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['ConnectionAliasTimeoutsArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if connection_string is None and 'connectionString' in kwargs: + connection_string = kwargs['connectionString'] + if owner_account_id is None and 'ownerAccountId' in kwargs: + owner_account_id = kwargs['ownerAccountId'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if connection_string is not None: - pulumi.set(__self__, "connection_string", connection_string) + _setter("connection_string", connection_string) if owner_account_id is not None: - pulumi.set(__self__, "owner_account_id", owner_account_id) + _setter("owner_account_id", owner_account_id) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if timeouts is not None: - pulumi.set(__self__, "timeouts", timeouts) + _setter("timeouts", timeouts) @property @pulumi.getter(name="connectionString") @@ -242,6 +288,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + ConnectionAliasArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -263,6 +313,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'connection_string'") __props__.__dict__["connection_string"] = connection_string __props__.__dict__["tags"] = tags + timeouts = _utilities.configure(timeouts, ConnectionAliasTimeoutsArgs, True) __props__.__dict__["timeouts"] = timeouts __props__.__dict__["owner_account_id"] = None __props__.__dict__["state"] = None diff --git a/sdk/python/pulumi_aws/workspaces/directory.py b/sdk/python/pulumi_aws/workspaces/directory.py index 9641213b09a..6c7f9174250 100644 --- a/sdk/python/pulumi_aws/workspaces/directory.py +++ b/sdk/python/pulumi_aws/workspaces/directory.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -33,19 +33,56 @@ def __init__(__self__, *, :param pulumi.Input['DirectoryWorkspaceAccessPropertiesArgs'] workspace_access_properties: Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. :param pulumi.Input['DirectoryWorkspaceCreationPropertiesArgs'] workspace_creation_properties: Default properties that are used for creating WorkSpaces. Defined below. """ - pulumi.set(__self__, "directory_id", directory_id) + DirectoryArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + directory_id=directory_id, + ip_group_ids=ip_group_ids, + self_service_permissions=self_service_permissions, + subnet_ids=subnet_ids, + tags=tags, + workspace_access_properties=workspace_access_properties, + workspace_creation_properties=workspace_creation_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + directory_id: Optional[pulumi.Input[str]] = None, + ip_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + self_service_permissions: Optional[pulumi.Input['DirectorySelfServicePermissionsArgs']] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workspace_access_properties: Optional[pulumi.Input['DirectoryWorkspaceAccessPropertiesArgs']] = None, + workspace_creation_properties: Optional[pulumi.Input['DirectoryWorkspaceCreationPropertiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if directory_id is None: + raise TypeError("Missing 'directory_id' argument") + if ip_group_ids is None and 'ipGroupIds' in kwargs: + ip_group_ids = kwargs['ipGroupIds'] + if self_service_permissions is None and 'selfServicePermissions' in kwargs: + self_service_permissions = kwargs['selfServicePermissions'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if workspace_access_properties is None and 'workspaceAccessProperties' in kwargs: + workspace_access_properties = kwargs['workspaceAccessProperties'] + if workspace_creation_properties is None and 'workspaceCreationProperties' in kwargs: + workspace_creation_properties = kwargs['workspaceCreationProperties'] + + _setter("directory_id", directory_id) if ip_group_ids is not None: - pulumi.set(__self__, "ip_group_ids", ip_group_ids) + _setter("ip_group_ids", ip_group_ids) if self_service_permissions is not None: - pulumi.set(__self__, "self_service_permissions", self_service_permissions) + _setter("self_service_permissions", self_service_permissions) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if workspace_access_properties is not None: - pulumi.set(__self__, "workspace_access_properties", workspace_access_properties) + _setter("workspace_access_properties", workspace_access_properties) if workspace_creation_properties is not None: - pulumi.set(__self__, "workspace_creation_properties", workspace_creation_properties) + _setter("workspace_creation_properties", workspace_creation_properties) @property @pulumi.getter(name="directoryId") @@ -170,41 +207,110 @@ def __init__(__self__, *, :param pulumi.Input['DirectoryWorkspaceCreationPropertiesArgs'] workspace_creation_properties: Default properties that are used for creating WorkSpaces. Defined below. :param pulumi.Input[str] workspace_security_group_id: The identifier of the security group that is assigned to new WorkSpaces. """ + _DirectoryState._configure( + lambda key, value: pulumi.set(__self__, key, value), + alias=alias, + customer_user_name=customer_user_name, + directory_id=directory_id, + directory_name=directory_name, + directory_type=directory_type, + dns_ip_addresses=dns_ip_addresses, + iam_role_id=iam_role_id, + ip_group_ids=ip_group_ids, + registration_code=registration_code, + self_service_permissions=self_service_permissions, + subnet_ids=subnet_ids, + tags=tags, + tags_all=tags_all, + workspace_access_properties=workspace_access_properties, + workspace_creation_properties=workspace_creation_properties, + workspace_security_group_id=workspace_security_group_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + alias: Optional[pulumi.Input[str]] = None, + customer_user_name: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + directory_name: Optional[pulumi.Input[str]] = None, + directory_type: Optional[pulumi.Input[str]] = None, + dns_ip_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + iam_role_id: Optional[pulumi.Input[str]] = None, + ip_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + registration_code: Optional[pulumi.Input[str]] = None, + self_service_permissions: Optional[pulumi.Input['DirectorySelfServicePermissionsArgs']] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workspace_access_properties: Optional[pulumi.Input['DirectoryWorkspaceAccessPropertiesArgs']] = None, + workspace_creation_properties: Optional[pulumi.Input['DirectoryWorkspaceCreationPropertiesArgs']] = None, + workspace_security_group_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if customer_user_name is None and 'customerUserName' in kwargs: + customer_user_name = kwargs['customerUserName'] + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if directory_name is None and 'directoryName' in kwargs: + directory_name = kwargs['directoryName'] + if directory_type is None and 'directoryType' in kwargs: + directory_type = kwargs['directoryType'] + if dns_ip_addresses is None and 'dnsIpAddresses' in kwargs: + dns_ip_addresses = kwargs['dnsIpAddresses'] + if iam_role_id is None and 'iamRoleId' in kwargs: + iam_role_id = kwargs['iamRoleId'] + if ip_group_ids is None and 'ipGroupIds' in kwargs: + ip_group_ids = kwargs['ipGroupIds'] + if registration_code is None and 'registrationCode' in kwargs: + registration_code = kwargs['registrationCode'] + if self_service_permissions is None and 'selfServicePermissions' in kwargs: + self_service_permissions = kwargs['selfServicePermissions'] + if subnet_ids is None and 'subnetIds' in kwargs: + subnet_ids = kwargs['subnetIds'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if workspace_access_properties is None and 'workspaceAccessProperties' in kwargs: + workspace_access_properties = kwargs['workspaceAccessProperties'] + if workspace_creation_properties is None and 'workspaceCreationProperties' in kwargs: + workspace_creation_properties = kwargs['workspaceCreationProperties'] + if workspace_security_group_id is None and 'workspaceSecurityGroupId' in kwargs: + workspace_security_group_id = kwargs['workspaceSecurityGroupId'] + if alias is not None: - pulumi.set(__self__, "alias", alias) + _setter("alias", alias) if customer_user_name is not None: - pulumi.set(__self__, "customer_user_name", customer_user_name) + _setter("customer_user_name", customer_user_name) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if directory_name is not None: - pulumi.set(__self__, "directory_name", directory_name) + _setter("directory_name", directory_name) if directory_type is not None: - pulumi.set(__self__, "directory_type", directory_type) + _setter("directory_type", directory_type) if dns_ip_addresses is not None: - pulumi.set(__self__, "dns_ip_addresses", dns_ip_addresses) + _setter("dns_ip_addresses", dns_ip_addresses) if iam_role_id is not None: - pulumi.set(__self__, "iam_role_id", iam_role_id) + _setter("iam_role_id", iam_role_id) if ip_group_ids is not None: - pulumi.set(__self__, "ip_group_ids", ip_group_ids) + _setter("ip_group_ids", ip_group_ids) if registration_code is not None: - pulumi.set(__self__, "registration_code", registration_code) + _setter("registration_code", registration_code) if self_service_permissions is not None: - pulumi.set(__self__, "self_service_permissions", self_service_permissions) + _setter("self_service_permissions", self_service_permissions) if subnet_ids is not None: - pulumi.set(__self__, "subnet_ids", subnet_ids) + _setter("subnet_ids", subnet_ids) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if workspace_access_properties is not None: - pulumi.set(__self__, "workspace_access_properties", workspace_access_properties) + _setter("workspace_access_properties", workspace_access_properties) if workspace_creation_properties is not None: - pulumi.set(__self__, "workspace_creation_properties", workspace_creation_properties) + _setter("workspace_creation_properties", workspace_creation_properties) if workspace_security_group_id is not None: - pulumi.set(__self__, "workspace_security_group_id", workspace_security_group_id) + _setter("workspace_security_group_id", workspace_security_group_id) @property @pulumi.getter @@ -663,6 +769,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + DirectoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -688,10 +798,13 @@ def _internal_init(__self__, raise TypeError("Missing required property 'directory_id'") __props__.__dict__["directory_id"] = directory_id __props__.__dict__["ip_group_ids"] = ip_group_ids + self_service_permissions = _utilities.configure(self_service_permissions, DirectorySelfServicePermissionsArgs, True) __props__.__dict__["self_service_permissions"] = self_service_permissions __props__.__dict__["subnet_ids"] = subnet_ids __props__.__dict__["tags"] = tags + workspace_access_properties = _utilities.configure(workspace_access_properties, DirectoryWorkspaceAccessPropertiesArgs, True) __props__.__dict__["workspace_access_properties"] = workspace_access_properties + workspace_creation_properties = _utilities.configure(workspace_creation_properties, DirectoryWorkspaceCreationPropertiesArgs, True) __props__.__dict__["workspace_creation_properties"] = workspace_creation_properties __props__.__dict__["alias"] = None __props__.__dict__["customer_user_name"] = None diff --git a/sdk/python/pulumi_aws/workspaces/get_bundle.py b/sdk/python/pulumi_aws/workspaces/get_bundle.py index 937f00f986b..e3e770d673d 100644 --- a/sdk/python/pulumi_aws/workspaces/get_bundle.py +++ b/sdk/python/pulumi_aws/workspaces/get_bundle.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/workspaces/get_directory.py b/sdk/python/pulumi_aws/workspaces/get_directory.py index 4f5f53a52fc..9ed35c04ef6 100644 --- a/sdk/python/pulumi_aws/workspaces/get_directory.py +++ b/sdk/python/pulumi_aws/workspaces/get_directory.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/workspaces/get_image.py b/sdk/python/pulumi_aws/workspaces/get_image.py index 5ed9021e6ae..9524519059b 100644 --- a/sdk/python/pulumi_aws/workspaces/get_image.py +++ b/sdk/python/pulumi_aws/workspaces/get_image.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_aws/workspaces/get_workspace.py b/sdk/python/pulumi_aws/workspaces/get_workspace.py index 770fa4d2a61..06dd8386ca2 100644 --- a/sdk/python/pulumi_aws/workspaces/get_workspace.py +++ b/sdk/python/pulumi_aws/workspaces/get_workspace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs diff --git a/sdk/python/pulumi_aws/workspaces/ip_group.py b/sdk/python/pulumi_aws/workspaces/ip_group.py index 2b9b33eb86b..0a98baad4ca 100644 --- a/sdk/python/pulumi_aws/workspaces/ip_group.py +++ b/sdk/python/pulumi_aws/workspaces/ip_group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,14 +27,31 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['IpGroupRuleArgs']]] rules: One or more pairs specifying the IP group rule (in CIDR format) from which web requests originate. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces directory. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ + IpGroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + rules=rules, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['IpGroupRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter @@ -101,19 +118,40 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces directory. 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. """ + _IpGroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + description=description, + name=name, + rules=rules, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['IpGroupRuleArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) if name is not None: - pulumi.set(__self__, "name", name) + _setter("name", name) if rules is not None: - pulumi.set(__self__, "rules", rules) + _setter("rules", rules) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -282,6 +320,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IpGroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/workspaces/outputs.py b/sdk/python/pulumi_aws/workspaces/outputs.py index b291c4576f1..811f64a0c03 100644 --- a/sdk/python/pulumi_aws/workspaces/outputs.py +++ b/sdk/python/pulumi_aws/workspaces/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -31,12 +31,27 @@ def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, update: Optional[str] = None): + ConnectionAliasTimeouts._configure( + lambda key, value: pulumi.set(__self__, key, value), + create=create, + delete=delete, + update=update, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if create is not None: - pulumi.set(__self__, "create", create) + _setter("create", create) if delete is not None: - pulumi.set(__self__, "delete", delete) + _setter("delete", delete) if update is not None: - pulumi.set(__self__, "update", update) + _setter("update", update) @property @pulumi.getter @@ -94,16 +109,45 @@ def __init__(__self__, *, :param bool restart_workspace: Whether WorkSpaces directory users can restart their workspace. Default `true`. :param bool switch_running_mode: Whether WorkSpaces directory users can switch the running mode of their workspace. Default `false`. """ + DirectorySelfServicePermissions._configure( + lambda key, value: pulumi.set(__self__, key, value), + change_compute_type=change_compute_type, + increase_volume_size=increase_volume_size, + rebuild_workspace=rebuild_workspace, + restart_workspace=restart_workspace, + switch_running_mode=switch_running_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + change_compute_type: Optional[bool] = None, + increase_volume_size: Optional[bool] = None, + rebuild_workspace: Optional[bool] = None, + restart_workspace: Optional[bool] = None, + switch_running_mode: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if change_compute_type is None and 'changeComputeType' in kwargs: + change_compute_type = kwargs['changeComputeType'] + if increase_volume_size is None and 'increaseVolumeSize' in kwargs: + increase_volume_size = kwargs['increaseVolumeSize'] + if rebuild_workspace is None and 'rebuildWorkspace' in kwargs: + rebuild_workspace = kwargs['rebuildWorkspace'] + if restart_workspace is None and 'restartWorkspace' in kwargs: + restart_workspace = kwargs['restartWorkspace'] + if switch_running_mode is None and 'switchRunningMode' in kwargs: + switch_running_mode = kwargs['switchRunningMode'] + if change_compute_type is not None: - pulumi.set(__self__, "change_compute_type", change_compute_type) + _setter("change_compute_type", change_compute_type) if increase_volume_size is not None: - pulumi.set(__self__, "increase_volume_size", increase_volume_size) + _setter("increase_volume_size", increase_volume_size) if rebuild_workspace is not None: - pulumi.set(__self__, "rebuild_workspace", rebuild_workspace) + _setter("rebuild_workspace", rebuild_workspace) if restart_workspace is not None: - pulumi.set(__self__, "restart_workspace", restart_workspace) + _setter("restart_workspace", restart_workspace) if switch_running_mode is not None: - pulumi.set(__self__, "switch_running_mode", switch_running_mode) + _setter("switch_running_mode", switch_running_mode) @property @pulumi.getter(name="changeComputeType") @@ -198,22 +242,63 @@ def __init__(__self__, *, :param str device_type_windows: Indicates whether users can use Windows clients to access their WorkSpaces. :param str device_type_zeroclient: Indicates whether users can use zero client devices to access their WorkSpaces. """ + DirectoryWorkspaceAccessProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_type_android=device_type_android, + device_type_chromeos=device_type_chromeos, + device_type_ios=device_type_ios, + device_type_linux=device_type_linux, + device_type_osx=device_type_osx, + device_type_web=device_type_web, + device_type_windows=device_type_windows, + device_type_zeroclient=device_type_zeroclient, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_type_android: Optional[str] = None, + device_type_chromeos: Optional[str] = None, + device_type_ios: Optional[str] = None, + device_type_linux: Optional[str] = None, + device_type_osx: Optional[str] = None, + device_type_web: Optional[str] = None, + device_type_windows: Optional[str] = None, + device_type_zeroclient: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_type_android is None and 'deviceTypeAndroid' in kwargs: + device_type_android = kwargs['deviceTypeAndroid'] + if device_type_chromeos is None and 'deviceTypeChromeos' in kwargs: + device_type_chromeos = kwargs['deviceTypeChromeos'] + if device_type_ios is None and 'deviceTypeIos' in kwargs: + device_type_ios = kwargs['deviceTypeIos'] + if device_type_linux is None and 'deviceTypeLinux' in kwargs: + device_type_linux = kwargs['deviceTypeLinux'] + if device_type_osx is None and 'deviceTypeOsx' in kwargs: + device_type_osx = kwargs['deviceTypeOsx'] + if device_type_web is None and 'deviceTypeWeb' in kwargs: + device_type_web = kwargs['deviceTypeWeb'] + if device_type_windows is None and 'deviceTypeWindows' in kwargs: + device_type_windows = kwargs['deviceTypeWindows'] + if device_type_zeroclient is None and 'deviceTypeZeroclient' in kwargs: + device_type_zeroclient = kwargs['deviceTypeZeroclient'] + if device_type_android is not None: - pulumi.set(__self__, "device_type_android", device_type_android) + _setter("device_type_android", device_type_android) if device_type_chromeos is not None: - pulumi.set(__self__, "device_type_chromeos", device_type_chromeos) + _setter("device_type_chromeos", device_type_chromeos) if device_type_ios is not None: - pulumi.set(__self__, "device_type_ios", device_type_ios) + _setter("device_type_ios", device_type_ios) if device_type_linux is not None: - pulumi.set(__self__, "device_type_linux", device_type_linux) + _setter("device_type_linux", device_type_linux) if device_type_osx is not None: - pulumi.set(__self__, "device_type_osx", device_type_osx) + _setter("device_type_osx", device_type_osx) if device_type_web is not None: - pulumi.set(__self__, "device_type_web", device_type_web) + _setter("device_type_web", device_type_web) if device_type_windows is not None: - pulumi.set(__self__, "device_type_windows", device_type_windows) + _setter("device_type_windows", device_type_windows) if device_type_zeroclient is not None: - pulumi.set(__self__, "device_type_zeroclient", device_type_zeroclient) + _setter("device_type_zeroclient", device_type_zeroclient) @property @pulumi.getter(name="deviceTypeAndroid") @@ -320,16 +405,45 @@ def __init__(__self__, *, :param bool enable_maintenance_mode: Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. :param bool user_enabled_as_local_administrator: Indicates whether users are local administrators of their WorkSpaces. """ + DirectoryWorkspaceCreationProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_security_group_id=custom_security_group_id, + default_ou=default_ou, + enable_internet_access=enable_internet_access, + enable_maintenance_mode=enable_maintenance_mode, + user_enabled_as_local_administrator=user_enabled_as_local_administrator, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_security_group_id: Optional[str] = None, + default_ou: Optional[str] = None, + enable_internet_access: Optional[bool] = None, + enable_maintenance_mode: Optional[bool] = None, + user_enabled_as_local_administrator: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_security_group_id is None and 'customSecurityGroupId' in kwargs: + custom_security_group_id = kwargs['customSecurityGroupId'] + if default_ou is None and 'defaultOu' in kwargs: + default_ou = kwargs['defaultOu'] + if enable_internet_access is None and 'enableInternetAccess' in kwargs: + enable_internet_access = kwargs['enableInternetAccess'] + if enable_maintenance_mode is None and 'enableMaintenanceMode' in kwargs: + enable_maintenance_mode = kwargs['enableMaintenanceMode'] + if user_enabled_as_local_administrator is None and 'userEnabledAsLocalAdministrator' in kwargs: + user_enabled_as_local_administrator = kwargs['userEnabledAsLocalAdministrator'] + if custom_security_group_id is not None: - pulumi.set(__self__, "custom_security_group_id", custom_security_group_id) + _setter("custom_security_group_id", custom_security_group_id) if default_ou is not None: - pulumi.set(__self__, "default_ou", default_ou) + _setter("default_ou", default_ou) if enable_internet_access is not None: - pulumi.set(__self__, "enable_internet_access", enable_internet_access) + _setter("enable_internet_access", enable_internet_access) if enable_maintenance_mode is not None: - pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) + _setter("enable_maintenance_mode", enable_maintenance_mode) if user_enabled_as_local_administrator is not None: - pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) + _setter("user_enabled_as_local_administrator", user_enabled_as_local_administrator) @property @pulumi.getter(name="customSecurityGroupId") @@ -381,9 +495,24 @@ def __init__(__self__, *, :param str source: The IP address range, in CIDR notation, e.g., `10.0.0.0/16` :param str description: The description of the IP group. """ - pulumi.set(__self__, "source", source) + IpGroupRule._configure( + lambda key, value: pulumi.set(__self__, key, value), + source=source, + description=description, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + source: Optional[str] = None, + description: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if source is None: + raise TypeError("Missing 'source' argument") + + _setter("source", source) if description is not None: - pulumi.set(__self__, "description", description) + _setter("description", description) @property @pulumi.getter @@ -442,16 +571,45 @@ def __init__(__self__, *, :param int running_mode_auto_stop_timeout_in_minutes: The time after a user logs off when WorkSpaces are automatically stopped. Configured in 60-minute intervals. :param int user_volume_size_gib: The size of the user storage. """ + WorkspaceWorkspaceProperties._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_type_name=compute_type_name, + root_volume_size_gib=root_volume_size_gib, + running_mode=running_mode, + running_mode_auto_stop_timeout_in_minutes=running_mode_auto_stop_timeout_in_minutes, + user_volume_size_gib=user_volume_size_gib, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_type_name: Optional[str] = None, + root_volume_size_gib: Optional[int] = None, + running_mode: Optional[str] = None, + running_mode_auto_stop_timeout_in_minutes: Optional[int] = None, + user_volume_size_gib: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_type_name is None and 'computeTypeName' in kwargs: + compute_type_name = kwargs['computeTypeName'] + if root_volume_size_gib is None and 'rootVolumeSizeGib' in kwargs: + root_volume_size_gib = kwargs['rootVolumeSizeGib'] + if running_mode is None and 'runningMode' in kwargs: + running_mode = kwargs['runningMode'] + if running_mode_auto_stop_timeout_in_minutes is None and 'runningModeAutoStopTimeoutInMinutes' in kwargs: + running_mode_auto_stop_timeout_in_minutes = kwargs['runningModeAutoStopTimeoutInMinutes'] + if user_volume_size_gib is None and 'userVolumeSizeGib' in kwargs: + user_volume_size_gib = kwargs['userVolumeSizeGib'] + if compute_type_name is not None: - pulumi.set(__self__, "compute_type_name", compute_type_name) + _setter("compute_type_name", compute_type_name) if root_volume_size_gib is not None: - pulumi.set(__self__, "root_volume_size_gib", root_volume_size_gib) + _setter("root_volume_size_gib", root_volume_size_gib) if running_mode is not None: - pulumi.set(__self__, "running_mode", running_mode) + _setter("running_mode", running_mode) if running_mode_auto_stop_timeout_in_minutes is not None: - pulumi.set(__self__, "running_mode_auto_stop_timeout_in_minutes", running_mode_auto_stop_timeout_in_minutes) + _setter("running_mode_auto_stop_timeout_in_minutes", running_mode_auto_stop_timeout_in_minutes) if user_volume_size_gib is not None: - pulumi.set(__self__, "user_volume_size_gib", user_volume_size_gib) + _setter("user_volume_size_gib", user_volume_size_gib) @property @pulumi.getter(name="computeTypeName") @@ -501,7 +659,20 @@ def __init__(__self__, *, """ :param str name: Name of the bundle. You cannot combine this parameter with `bundle_id`. """ - pulumi.set(__self__, "name", name) + GetBundleComputeTypeResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + name=name, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + name: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if name is None: + raise TypeError("Missing 'name' argument") + + _setter("name", name) @property @pulumi.getter @@ -519,7 +690,20 @@ def __init__(__self__, *, """ :param str capacity: Size of the user storage. """ - pulumi.set(__self__, "capacity", capacity) + GetBundleRootStorageResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity=capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity is None: + raise TypeError("Missing 'capacity' argument") + + _setter("capacity", capacity) @property @pulumi.getter @@ -537,7 +721,20 @@ def __init__(__self__, *, """ :param str capacity: Size of the user storage. """ - pulumi.set(__self__, "capacity", capacity) + GetBundleUserStorageResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + capacity=capacity, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + capacity: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if capacity is None: + raise TypeError("Missing 'capacity' argument") + + _setter("capacity", capacity) @property @pulumi.getter @@ -563,11 +760,50 @@ def __init__(__self__, *, :param bool restart_workspace: Whether WorkSpaces directory users can restart their workspace. :param bool switch_running_mode: Whether WorkSpaces directory users can switch the running mode of their workspace. """ - pulumi.set(__self__, "change_compute_type", change_compute_type) - pulumi.set(__self__, "increase_volume_size", increase_volume_size) - pulumi.set(__self__, "rebuild_workspace", rebuild_workspace) - pulumi.set(__self__, "restart_workspace", restart_workspace) - pulumi.set(__self__, "switch_running_mode", switch_running_mode) + GetDirectorySelfServicePermissionResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + change_compute_type=change_compute_type, + increase_volume_size=increase_volume_size, + rebuild_workspace=rebuild_workspace, + restart_workspace=restart_workspace, + switch_running_mode=switch_running_mode, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + change_compute_type: Optional[bool] = None, + increase_volume_size: Optional[bool] = None, + rebuild_workspace: Optional[bool] = None, + restart_workspace: Optional[bool] = None, + switch_running_mode: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if change_compute_type is None and 'changeComputeType' in kwargs: + change_compute_type = kwargs['changeComputeType'] + if change_compute_type is None: + raise TypeError("Missing 'change_compute_type' argument") + if increase_volume_size is None and 'increaseVolumeSize' in kwargs: + increase_volume_size = kwargs['increaseVolumeSize'] + if increase_volume_size is None: + raise TypeError("Missing 'increase_volume_size' argument") + if rebuild_workspace is None and 'rebuildWorkspace' in kwargs: + rebuild_workspace = kwargs['rebuildWorkspace'] + if rebuild_workspace is None: + raise TypeError("Missing 'rebuild_workspace' argument") + if restart_workspace is None and 'restartWorkspace' in kwargs: + restart_workspace = kwargs['restartWorkspace'] + if restart_workspace is None: + raise TypeError("Missing 'restart_workspace' argument") + if switch_running_mode is None and 'switchRunningMode' in kwargs: + switch_running_mode = kwargs['switchRunningMode'] + if switch_running_mode is None: + raise TypeError("Missing 'switch_running_mode' argument") + + _setter("change_compute_type", change_compute_type) + _setter("increase_volume_size", increase_volume_size) + _setter("rebuild_workspace", rebuild_workspace) + _setter("restart_workspace", restart_workspace) + _setter("switch_running_mode", switch_running_mode) @property @pulumi.getter(name="changeComputeType") @@ -631,14 +867,71 @@ def __init__(__self__, *, :param str device_type_windows: (Optional) Indicates whether users can use Windows clients to access their WorkSpaces. :param str device_type_zeroclient: (Optional) Indicates whether users can use zero client devices to access their WorkSpaces. """ - pulumi.set(__self__, "device_type_android", device_type_android) - pulumi.set(__self__, "device_type_chromeos", device_type_chromeos) - pulumi.set(__self__, "device_type_ios", device_type_ios) - pulumi.set(__self__, "device_type_linux", device_type_linux) - pulumi.set(__self__, "device_type_osx", device_type_osx) - pulumi.set(__self__, "device_type_web", device_type_web) - pulumi.set(__self__, "device_type_windows", device_type_windows) - pulumi.set(__self__, "device_type_zeroclient", device_type_zeroclient) + GetDirectoryWorkspaceAccessPropertyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + device_type_android=device_type_android, + device_type_chromeos=device_type_chromeos, + device_type_ios=device_type_ios, + device_type_linux=device_type_linux, + device_type_osx=device_type_osx, + device_type_web=device_type_web, + device_type_windows=device_type_windows, + device_type_zeroclient=device_type_zeroclient, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + device_type_android: Optional[str] = None, + device_type_chromeos: Optional[str] = None, + device_type_ios: Optional[str] = None, + device_type_linux: Optional[str] = None, + device_type_osx: Optional[str] = None, + device_type_web: Optional[str] = None, + device_type_windows: Optional[str] = None, + device_type_zeroclient: Optional[str] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if device_type_android is None and 'deviceTypeAndroid' in kwargs: + device_type_android = kwargs['deviceTypeAndroid'] + if device_type_android is None: + raise TypeError("Missing 'device_type_android' argument") + if device_type_chromeos is None and 'deviceTypeChromeos' in kwargs: + device_type_chromeos = kwargs['deviceTypeChromeos'] + if device_type_chromeos is None: + raise TypeError("Missing 'device_type_chromeos' argument") + if device_type_ios is None and 'deviceTypeIos' in kwargs: + device_type_ios = kwargs['deviceTypeIos'] + if device_type_ios is None: + raise TypeError("Missing 'device_type_ios' argument") + if device_type_linux is None and 'deviceTypeLinux' in kwargs: + device_type_linux = kwargs['deviceTypeLinux'] + if device_type_linux is None: + raise TypeError("Missing 'device_type_linux' argument") + if device_type_osx is None and 'deviceTypeOsx' in kwargs: + device_type_osx = kwargs['deviceTypeOsx'] + if device_type_osx is None: + raise TypeError("Missing 'device_type_osx' argument") + if device_type_web is None and 'deviceTypeWeb' in kwargs: + device_type_web = kwargs['deviceTypeWeb'] + if device_type_web is None: + raise TypeError("Missing 'device_type_web' argument") + if device_type_windows is None and 'deviceTypeWindows' in kwargs: + device_type_windows = kwargs['deviceTypeWindows'] + if device_type_windows is None: + raise TypeError("Missing 'device_type_windows' argument") + if device_type_zeroclient is None and 'deviceTypeZeroclient' in kwargs: + device_type_zeroclient = kwargs['deviceTypeZeroclient'] + if device_type_zeroclient is None: + raise TypeError("Missing 'device_type_zeroclient' argument") + + _setter("device_type_android", device_type_android) + _setter("device_type_chromeos", device_type_chromeos) + _setter("device_type_ios", device_type_ios) + _setter("device_type_linux", device_type_linux) + _setter("device_type_osx", device_type_osx) + _setter("device_type_web", device_type_web) + _setter("device_type_windows", device_type_windows) + _setter("device_type_zeroclient", device_type_zeroclient) @property @pulumi.getter(name="deviceTypeAndroid") @@ -720,11 +1013,50 @@ def __init__(__self__, *, :param bool enable_maintenance_mode: Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). :param bool user_enabled_as_local_administrator: Indicates whether users are local administrators of their WorkSpaces. """ - pulumi.set(__self__, "custom_security_group_id", custom_security_group_id) - pulumi.set(__self__, "default_ou", default_ou) - pulumi.set(__self__, "enable_internet_access", enable_internet_access) - pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) - pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) + GetDirectoryWorkspaceCreationPropertyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + custom_security_group_id=custom_security_group_id, + default_ou=default_ou, + enable_internet_access=enable_internet_access, + enable_maintenance_mode=enable_maintenance_mode, + user_enabled_as_local_administrator=user_enabled_as_local_administrator, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + custom_security_group_id: Optional[str] = None, + default_ou: Optional[str] = None, + enable_internet_access: Optional[bool] = None, + enable_maintenance_mode: Optional[bool] = None, + user_enabled_as_local_administrator: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if custom_security_group_id is None and 'customSecurityGroupId' in kwargs: + custom_security_group_id = kwargs['customSecurityGroupId'] + if custom_security_group_id is None: + raise TypeError("Missing 'custom_security_group_id' argument") + if default_ou is None and 'defaultOu' in kwargs: + default_ou = kwargs['defaultOu'] + if default_ou is None: + raise TypeError("Missing 'default_ou' argument") + if enable_internet_access is None and 'enableInternetAccess' in kwargs: + enable_internet_access = kwargs['enableInternetAccess'] + if enable_internet_access is None: + raise TypeError("Missing 'enable_internet_access' argument") + if enable_maintenance_mode is None and 'enableMaintenanceMode' in kwargs: + enable_maintenance_mode = kwargs['enableMaintenanceMode'] + if enable_maintenance_mode is None: + raise TypeError("Missing 'enable_maintenance_mode' argument") + if user_enabled_as_local_administrator is None and 'userEnabledAsLocalAdministrator' in kwargs: + user_enabled_as_local_administrator = kwargs['userEnabledAsLocalAdministrator'] + if user_enabled_as_local_administrator is None: + raise TypeError("Missing 'user_enabled_as_local_administrator' argument") + + _setter("custom_security_group_id", custom_security_group_id) + _setter("default_ou", default_ou) + _setter("enable_internet_access", enable_internet_access) + _setter("enable_maintenance_mode", enable_maintenance_mode) + _setter("user_enabled_as_local_administrator", user_enabled_as_local_administrator) @property @pulumi.getter(name="customSecurityGroupId") @@ -782,11 +1114,50 @@ def __init__(__self__, *, :param int running_mode_auto_stop_timeout_in_minutes: Time after a user logs off when WorkSpaces are automatically stopped. Configured in 60-minute intervals. :param int user_volume_size_gib: Size of the user storage. """ - pulumi.set(__self__, "compute_type_name", compute_type_name) - pulumi.set(__self__, "root_volume_size_gib", root_volume_size_gib) - pulumi.set(__self__, "running_mode", running_mode) - pulumi.set(__self__, "running_mode_auto_stop_timeout_in_minutes", running_mode_auto_stop_timeout_in_minutes) - pulumi.set(__self__, "user_volume_size_gib", user_volume_size_gib) + GetWorkspaceWorkspacePropertyResult._configure( + lambda key, value: pulumi.set(__self__, key, value), + compute_type_name=compute_type_name, + root_volume_size_gib=root_volume_size_gib, + running_mode=running_mode, + running_mode_auto_stop_timeout_in_minutes=running_mode_auto_stop_timeout_in_minutes, + user_volume_size_gib=user_volume_size_gib, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + compute_type_name: Optional[str] = None, + root_volume_size_gib: Optional[int] = None, + running_mode: Optional[str] = None, + running_mode_auto_stop_timeout_in_minutes: Optional[int] = None, + user_volume_size_gib: Optional[int] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if compute_type_name is None and 'computeTypeName' in kwargs: + compute_type_name = kwargs['computeTypeName'] + if compute_type_name is None: + raise TypeError("Missing 'compute_type_name' argument") + if root_volume_size_gib is None and 'rootVolumeSizeGib' in kwargs: + root_volume_size_gib = kwargs['rootVolumeSizeGib'] + if root_volume_size_gib is None: + raise TypeError("Missing 'root_volume_size_gib' argument") + if running_mode is None and 'runningMode' in kwargs: + running_mode = kwargs['runningMode'] + if running_mode is None: + raise TypeError("Missing 'running_mode' argument") + if running_mode_auto_stop_timeout_in_minutes is None and 'runningModeAutoStopTimeoutInMinutes' in kwargs: + running_mode_auto_stop_timeout_in_minutes = kwargs['runningModeAutoStopTimeoutInMinutes'] + if running_mode_auto_stop_timeout_in_minutes is None: + raise TypeError("Missing 'running_mode_auto_stop_timeout_in_minutes' argument") + if user_volume_size_gib is None and 'userVolumeSizeGib' in kwargs: + user_volume_size_gib = kwargs['userVolumeSizeGib'] + if user_volume_size_gib is None: + raise TypeError("Missing 'user_volume_size_gib' argument") + + _setter("compute_type_name", compute_type_name) + _setter("root_volume_size_gib", root_volume_size_gib) + _setter("running_mode", running_mode) + _setter("running_mode_auto_stop_timeout_in_minutes", running_mode_auto_stop_timeout_in_minutes) + _setter("user_volume_size_gib", user_volume_size_gib) @property @pulumi.getter(name="computeTypeName") diff --git a/sdk/python/pulumi_aws/workspaces/workspace.py b/sdk/python/pulumi_aws/workspaces/workspace.py index a556e8747b4..65ae44bcfc1 100644 --- a/sdk/python/pulumi_aws/workspaces/workspace.py +++ b/sdk/python/pulumi_aws/workspaces/workspace.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -35,19 +35,64 @@ def __init__(__self__, *, :param pulumi.Input[str] volume_encryption_key: The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs. :param pulumi.Input['WorkspaceWorkspacePropertiesArgs'] workspace_properties: The WorkSpace properties. """ - pulumi.set(__self__, "bundle_id", bundle_id) - pulumi.set(__self__, "directory_id", directory_id) - pulumi.set(__self__, "user_name", user_name) + WorkspaceArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + bundle_id=bundle_id, + directory_id=directory_id, + user_name=user_name, + root_volume_encryption_enabled=root_volume_encryption_enabled, + tags=tags, + user_volume_encryption_enabled=user_volume_encryption_enabled, + volume_encryption_key=volume_encryption_key, + workspace_properties=workspace_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bundle_id: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + root_volume_encryption_enabled: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_volume_encryption_enabled: Optional[pulumi.Input[bool]] = None, + volume_encryption_key: Optional[pulumi.Input[str]] = None, + workspace_properties: Optional[pulumi.Input['WorkspaceWorkspacePropertiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if bundle_id is None: + raise TypeError("Missing 'bundle_id' argument") + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if directory_id is None: + raise TypeError("Missing 'directory_id' argument") + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_name is None: + raise TypeError("Missing 'user_name' argument") + if root_volume_encryption_enabled is None and 'rootVolumeEncryptionEnabled' in kwargs: + root_volume_encryption_enabled = kwargs['rootVolumeEncryptionEnabled'] + if user_volume_encryption_enabled is None and 'userVolumeEncryptionEnabled' in kwargs: + user_volume_encryption_enabled = kwargs['userVolumeEncryptionEnabled'] + if volume_encryption_key is None and 'volumeEncryptionKey' in kwargs: + volume_encryption_key = kwargs['volumeEncryptionKey'] + if workspace_properties is None and 'workspaceProperties' in kwargs: + workspace_properties = kwargs['workspaceProperties'] + + _setter("bundle_id", bundle_id) + _setter("directory_id", directory_id) + _setter("user_name", user_name) if root_volume_encryption_enabled is not None: - pulumi.set(__self__, "root_volume_encryption_enabled", root_volume_encryption_enabled) + _setter("root_volume_encryption_enabled", root_volume_encryption_enabled) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if user_volume_encryption_enabled is not None: - pulumi.set(__self__, "user_volume_encryption_enabled", user_volume_encryption_enabled) + _setter("user_volume_encryption_enabled", user_volume_encryption_enabled) if volume_encryption_key is not None: - pulumi.set(__self__, "volume_encryption_key", volume_encryption_key) + _setter("volume_encryption_key", volume_encryption_key) if workspace_properties is not None: - pulumi.set(__self__, "workspace_properties", workspace_properties) + _setter("workspace_properties", workspace_properties) @property @pulumi.getter(name="bundleId") @@ -176,33 +221,86 @@ def __init__(__self__, *, :param pulumi.Input[str] volume_encryption_key: The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs. :param pulumi.Input['WorkspaceWorkspacePropertiesArgs'] workspace_properties: The WorkSpace properties. """ + _WorkspaceState._configure( + lambda key, value: pulumi.set(__self__, key, value), + bundle_id=bundle_id, + computer_name=computer_name, + directory_id=directory_id, + ip_address=ip_address, + root_volume_encryption_enabled=root_volume_encryption_enabled, + state=state, + tags=tags, + tags_all=tags_all, + user_name=user_name, + user_volume_encryption_enabled=user_volume_encryption_enabled, + volume_encryption_key=volume_encryption_key, + workspace_properties=workspace_properties, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + bundle_id: Optional[pulumi.Input[str]] = None, + computer_name: Optional[pulumi.Input[str]] = None, + directory_id: Optional[pulumi.Input[str]] = None, + ip_address: Optional[pulumi.Input[str]] = None, + root_volume_encryption_enabled: Optional[pulumi.Input[bool]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None, + user_volume_encryption_enabled: Optional[pulumi.Input[bool]] = None, + volume_encryption_key: Optional[pulumi.Input[str]] = None, + workspace_properties: Optional[pulumi.Input['WorkspaceWorkspacePropertiesArgs']] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if bundle_id is None and 'bundleId' in kwargs: + bundle_id = kwargs['bundleId'] + if computer_name is None and 'computerName' in kwargs: + computer_name = kwargs['computerName'] + if directory_id is None and 'directoryId' in kwargs: + directory_id = kwargs['directoryId'] + if ip_address is None and 'ipAddress' in kwargs: + ip_address = kwargs['ipAddress'] + if root_volume_encryption_enabled is None and 'rootVolumeEncryptionEnabled' in kwargs: + root_volume_encryption_enabled = kwargs['rootVolumeEncryptionEnabled'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if user_name is None and 'userName' in kwargs: + user_name = kwargs['userName'] + if user_volume_encryption_enabled is None and 'userVolumeEncryptionEnabled' in kwargs: + user_volume_encryption_enabled = kwargs['userVolumeEncryptionEnabled'] + if volume_encryption_key is None and 'volumeEncryptionKey' in kwargs: + volume_encryption_key = kwargs['volumeEncryptionKey'] + if workspace_properties is None and 'workspaceProperties' in kwargs: + workspace_properties = kwargs['workspaceProperties'] + if bundle_id is not None: - pulumi.set(__self__, "bundle_id", bundle_id) + _setter("bundle_id", bundle_id) if computer_name is not None: - pulumi.set(__self__, "computer_name", computer_name) + _setter("computer_name", computer_name) if directory_id is not None: - pulumi.set(__self__, "directory_id", directory_id) + _setter("directory_id", directory_id) if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + _setter("ip_address", ip_address) if root_volume_encryption_enabled is not None: - pulumi.set(__self__, "root_volume_encryption_enabled", root_volume_encryption_enabled) + _setter("root_volume_encryption_enabled", root_volume_encryption_enabled) if state is not None: - pulumi.set(__self__, "state", state) + _setter("state", state) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if user_name is not None: - pulumi.set(__self__, "user_name", user_name) + _setter("user_name", user_name) if user_volume_encryption_enabled is not None: - pulumi.set(__self__, "user_volume_encryption_enabled", user_volume_encryption_enabled) + _setter("user_volume_encryption_enabled", user_volume_encryption_enabled) if volume_encryption_key is not None: - pulumi.set(__self__, "volume_encryption_key", volume_encryption_key) + _setter("volume_encryption_key", volume_encryption_key) if workspace_properties is not None: - pulumi.set(__self__, "workspace_properties", workspace_properties) + _setter("workspace_properties", workspace_properties) @property @pulumi.getter(name="bundleId") @@ -471,6 +569,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + WorkspaceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -506,6 +608,7 @@ def _internal_init(__self__, __props__.__dict__["user_name"] = user_name __props__.__dict__["user_volume_encryption_enabled"] = user_volume_encryption_enabled __props__.__dict__["volume_encryption_key"] = volume_encryption_key + workspace_properties = _utilities.configure(workspace_properties, WorkspaceWorkspacePropertiesArgs, True) __props__.__dict__["workspace_properties"] = workspace_properties __props__.__dict__["computer_name"] = None __props__.__dict__["ip_address"] = None diff --git a/sdk/python/pulumi_aws/xray/_inputs.py b/sdk/python/pulumi_aws/xray/_inputs.py index 5ac33e8237d..ac4c4d56147 100644 --- a/sdk/python/pulumi_aws/xray/_inputs.py +++ b/sdk/python/pulumi_aws/xray/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -22,9 +22,28 @@ def __init__(__self__, *, :param pulumi.Input[bool] insights_enabled: Specifies whether insights are enabled. :param pulumi.Input[bool] notifications_enabled: Specifies whether insight notifications are enabled. """ - pulumi.set(__self__, "insights_enabled", insights_enabled) + GroupInsightsConfigurationArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_enabled=insights_enabled, + notifications_enabled=notifications_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_enabled: Optional[pulumi.Input[bool]] = None, + notifications_enabled: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_enabled is None and 'insightsEnabled' in kwargs: + insights_enabled = kwargs['insightsEnabled'] + if insights_enabled is None: + raise TypeError("Missing 'insights_enabled' argument") + if notifications_enabled is None and 'notificationsEnabled' in kwargs: + notifications_enabled = kwargs['notificationsEnabled'] + + _setter("insights_enabled", insights_enabled) if notifications_enabled is not None: - pulumi.set(__self__, "notifications_enabled", notifications_enabled) + _setter("notifications_enabled", notifications_enabled) @property @pulumi.getter(name="insightsEnabled") diff --git a/sdk/python/pulumi_aws/xray/encryption_config.py b/sdk/python/pulumi_aws/xray/encryption_config.py index 1d5f023e3ed..d924da71ec4 100644 --- a/sdk/python/pulumi_aws/xray/encryption_config.py +++ b/sdk/python/pulumi_aws/xray/encryption_config.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['EncryptionConfigArgs', 'EncryptionConfig'] @@ -21,9 +21,26 @@ def __init__(__self__, *, :param pulumi.Input[str] type: The type of encryption. Set to `KMS` to use your own key for encryption. Set to `NONE` for default encryption. :param pulumi.Input[str] key_id: An AWS KMS customer master key (CMK) ARN. """ - pulumi.set(__self__, "type", type) + EncryptionConfigArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + type=type, + key_id=key_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + type: Optional[pulumi.Input[str]] = None, + key_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if type is None: + raise TypeError("Missing 'type' argument") + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + + _setter("type", type) if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) @property @pulumi.getter @@ -60,10 +77,25 @@ def __init__(__self__, *, :param pulumi.Input[str] key_id: An AWS KMS customer master key (CMK) ARN. :param pulumi.Input[str] type: The type of encryption. Set to `KMS` to use your own key for encryption. Set to `NONE` for default encryption. """ + _EncryptionConfigState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key_id=key_id, + type=type, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key_id: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if key_id is None and 'keyId' in kwargs: + key_id = kwargs['keyId'] + if key_id is not None: - pulumi.set(__self__, "key_id", key_id) + _setter("key_id", key_id) if type is not None: - pulumi.set(__self__, "type", type) + _setter("type", type) @property @pulumi.getter(name="keyId") @@ -213,6 +245,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + EncryptionConfigArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_aws/xray/group.py b/sdk/python/pulumi_aws/xray/group.py index a95d3d479fe..0160bb5e5fa 100644 --- a/sdk/python/pulumi_aws/xray/group.py +++ b/sdk/python/pulumi_aws/xray/group.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs from ._inputs import * @@ -27,12 +27,39 @@ def __init__(__self__, *, :param pulumi.Input['GroupInsightsConfigurationArgs'] insights_configuration: Configuration options for enabling insights. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ - pulumi.set(__self__, "filter_expression", filter_expression) - pulumi.set(__self__, "group_name", group_name) + GroupArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + filter_expression=filter_expression, + group_name=group_name, + insights_configuration=insights_configuration, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + filter_expression: Optional[pulumi.Input[str]] = None, + group_name: Optional[pulumi.Input[str]] = None, + insights_configuration: Optional[pulumi.Input['GroupInsightsConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter_expression is None and 'filterExpression' in kwargs: + filter_expression = kwargs['filterExpression'] + if filter_expression is None: + raise TypeError("Missing 'filter_expression' argument") + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if group_name is None: + raise TypeError("Missing 'group_name' argument") + if insights_configuration is None and 'insightsConfiguration' in kwargs: + insights_configuration = kwargs['insightsConfiguration'] + + _setter("filter_expression", filter_expression) + _setter("group_name", group_name) if insights_configuration is not None: - pulumi.set(__self__, "insights_configuration", insights_configuration) + _setter("insights_configuration", insights_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="filterExpression") @@ -101,21 +128,50 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ + _GroupState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + filter_expression=filter_expression, + group_name=group_name, + insights_configuration=insights_configuration, + tags=tags, + tags_all=tags_all, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + filter_expression: Optional[pulumi.Input[str]] = None, + group_name: Optional[pulumi.Input[str]] = None, + insights_configuration: Optional[pulumi.Input['GroupInsightsConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if filter_expression is None and 'filterExpression' in kwargs: + filter_expression = kwargs['filterExpression'] + if group_name is None and 'groupName' in kwargs: + group_name = kwargs['groupName'] + if insights_configuration is None and 'insightsConfiguration' in kwargs: + insights_configuration = kwargs['insightsConfiguration'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if filter_expression is not None: - pulumi.set(__self__, "filter_expression", filter_expression) + _setter("filter_expression", filter_expression) if group_name is not None: - pulumi.set(__self__, "group_name", group_name) + _setter("group_name", group_name) if insights_configuration is not None: - pulumi.set(__self__, "insights_configuration", insights_configuration) + _setter("insights_configuration", insights_configuration) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) @property @pulumi.getter @@ -278,6 +334,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + GroupArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -302,6 +362,7 @@ def _internal_init(__self__, if group_name is None and not opts.urn: raise TypeError("Missing required property 'group_name'") __props__.__dict__["group_name"] = group_name + insights_configuration = _utilities.configure(insights_configuration, GroupInsightsConfigurationArgs, True) __props__.__dict__["insights_configuration"] = insights_configuration __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None diff --git a/sdk/python/pulumi_aws/xray/outputs.py b/sdk/python/pulumi_aws/xray/outputs.py index 747b1ac7ec4..883a3af7f31 100644 --- a/sdk/python/pulumi_aws/xray/outputs.py +++ b/sdk/python/pulumi_aws/xray/outputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ @@ -41,9 +41,28 @@ def __init__(__self__, *, :param bool insights_enabled: Specifies whether insights are enabled. :param bool notifications_enabled: Specifies whether insight notifications are enabled. """ - pulumi.set(__self__, "insights_enabled", insights_enabled) + GroupInsightsConfiguration._configure( + lambda key, value: pulumi.set(__self__, key, value), + insights_enabled=insights_enabled, + notifications_enabled=notifications_enabled, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + insights_enabled: Optional[bool] = None, + notifications_enabled: Optional[bool] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if insights_enabled is None and 'insightsEnabled' in kwargs: + insights_enabled = kwargs['insightsEnabled'] + if insights_enabled is None: + raise TypeError("Missing 'insights_enabled' argument") + if notifications_enabled is None and 'notificationsEnabled' in kwargs: + notifications_enabled = kwargs['notificationsEnabled'] + + _setter("insights_enabled", insights_enabled) if notifications_enabled is not None: - pulumi.set(__self__, "notifications_enabled", notifications_enabled) + _setter("notifications_enabled", notifications_enabled) @property @pulumi.getter(name="insightsEnabled") diff --git a/sdk/python/pulumi_aws/xray/sampling_rule.py b/sdk/python/pulumi_aws/xray/sampling_rule.py index cf08c0ee1e5..2a7e7607cc2 100644 --- a/sdk/python/pulumi_aws/xray/sampling_rule.py +++ b/sdk/python/pulumi_aws/xray/sampling_rule.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['SamplingRuleArgs', 'SamplingRule'] @@ -43,22 +43,93 @@ def __init__(__self__, *, :param pulumi.Input[str] rule_name: The name of the sampling rule. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping 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 """ - pulumi.set(__self__, "fixed_rate", fixed_rate) - pulumi.set(__self__, "host", host) - pulumi.set(__self__, "http_method", http_method) - pulumi.set(__self__, "priority", priority) - pulumi.set(__self__, "reservoir_size", reservoir_size) - pulumi.set(__self__, "resource_arn", resource_arn) - pulumi.set(__self__, "service_name", service_name) - pulumi.set(__self__, "service_type", service_type) - pulumi.set(__self__, "url_path", url_path) - pulumi.set(__self__, "version", version) + SamplingRuleArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + fixed_rate=fixed_rate, + host=host, + http_method=http_method, + priority=priority, + reservoir_size=reservoir_size, + resource_arn=resource_arn, + service_name=service_name, + service_type=service_type, + url_path=url_path, + version=version, + attributes=attributes, + rule_name=rule_name, + tags=tags, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + fixed_rate: Optional[pulumi.Input[float]] = None, + host: Optional[pulumi.Input[str]] = None, + http_method: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + reservoir_size: Optional[pulumi.Input[int]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + service_type: Optional[pulumi.Input[str]] = None, + url_path: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[int]] = None, + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + rule_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fixed_rate is None and 'fixedRate' in kwargs: + fixed_rate = kwargs['fixedRate'] + if fixed_rate is None: + raise TypeError("Missing 'fixed_rate' argument") + if host is None: + raise TypeError("Missing 'host' argument") + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if http_method is None: + raise TypeError("Missing 'http_method' argument") + if priority is None: + raise TypeError("Missing 'priority' argument") + if reservoir_size is None and 'reservoirSize' in kwargs: + reservoir_size = kwargs['reservoirSize'] + if reservoir_size is None: + raise TypeError("Missing 'reservoir_size' argument") + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if resource_arn is None: + raise TypeError("Missing 'resource_arn' argument") + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_name is None: + raise TypeError("Missing 'service_name' argument") + if service_type is None and 'serviceType' in kwargs: + service_type = kwargs['serviceType'] + if service_type is None: + raise TypeError("Missing 'service_type' argument") + if url_path is None and 'urlPath' in kwargs: + url_path = kwargs['urlPath'] + if url_path is None: + raise TypeError("Missing 'url_path' argument") + if version is None: + raise TypeError("Missing 'version' argument") + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + + _setter("fixed_rate", fixed_rate) + _setter("host", host) + _setter("http_method", http_method) + _setter("priority", priority) + _setter("reservoir_size", reservoir_size) + _setter("resource_arn", resource_arn) + _setter("service_name", service_name) + _setter("service_type", service_type) + _setter("url_path", url_path) + _setter("version", version) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if rule_name is not None: - pulumi.set(__self__, "rule_name", rule_name) + _setter("rule_name", rule_name) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) @property @pulumi.getter(name="fixedRate") @@ -253,39 +324,96 @@ def __init__(__self__, *, :param pulumi.Input[str] url_path: Matches the path from a request URL. :param pulumi.Input[int] version: The version of the sampling rule format (`1` ) """ + _SamplingRuleState._configure( + lambda key, value: pulumi.set(__self__, key, value), + arn=arn, + attributes=attributes, + fixed_rate=fixed_rate, + host=host, + http_method=http_method, + priority=priority, + reservoir_size=reservoir_size, + resource_arn=resource_arn, + rule_name=rule_name, + service_name=service_name, + service_type=service_type, + tags=tags, + tags_all=tags_all, + url_path=url_path, + version=version, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + arn: Optional[pulumi.Input[str]] = None, + attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + fixed_rate: Optional[pulumi.Input[float]] = None, + host: Optional[pulumi.Input[str]] = None, + http_method: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + reservoir_size: Optional[pulumi.Input[int]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + rule_name: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None, + service_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url_path: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[int]] = None, + opts: Optional[pulumi.ResourceOptions] = None, + **kwargs): + if fixed_rate is None and 'fixedRate' in kwargs: + fixed_rate = kwargs['fixedRate'] + if http_method is None and 'httpMethod' in kwargs: + http_method = kwargs['httpMethod'] + if reservoir_size is None and 'reservoirSize' in kwargs: + reservoir_size = kwargs['reservoirSize'] + if resource_arn is None and 'resourceArn' in kwargs: + resource_arn = kwargs['resourceArn'] + if rule_name is None and 'ruleName' in kwargs: + rule_name = kwargs['ruleName'] + if service_name is None and 'serviceName' in kwargs: + service_name = kwargs['serviceName'] + if service_type is None and 'serviceType' in kwargs: + service_type = kwargs['serviceType'] + if tags_all is None and 'tagsAll' in kwargs: + tags_all = kwargs['tagsAll'] + if url_path is None and 'urlPath' in kwargs: + url_path = kwargs['urlPath'] + if arn is not None: - pulumi.set(__self__, "arn", arn) + _setter("arn", arn) if attributes is not None: - pulumi.set(__self__, "attributes", attributes) + _setter("attributes", attributes) if fixed_rate is not None: - pulumi.set(__self__, "fixed_rate", fixed_rate) + _setter("fixed_rate", fixed_rate) if host is not None: - pulumi.set(__self__, "host", host) + _setter("host", host) if http_method is not None: - pulumi.set(__self__, "http_method", http_method) + _setter("http_method", http_method) if priority is not None: - pulumi.set(__self__, "priority", priority) + _setter("priority", priority) if reservoir_size is not None: - pulumi.set(__self__, "reservoir_size", reservoir_size) + _setter("reservoir_size", reservoir_size) if resource_arn is not None: - pulumi.set(__self__, "resource_arn", resource_arn) + _setter("resource_arn", resource_arn) if rule_name is not None: - pulumi.set(__self__, "rule_name", rule_name) + _setter("rule_name", rule_name) if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + _setter("service_name", service_name) if service_type is not None: - pulumi.set(__self__, "service_type", service_type) + _setter("service_type", service_type) if tags is not None: - pulumi.set(__self__, "tags", tags) + _setter("tags", tags) if tags_all is not None: warnings.warn("""Please use `tags` instead.""", DeprecationWarning) pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") if tags_all is not None: - pulumi.set(__self__, "tags_all", tags_all) + _setter("tags_all", tags_all) if url_path is not None: - pulumi.set(__self__, "url_path", url_path) + _setter("url_path", url_path) if version is not None: - pulumi.set(__self__, "version", version) + _setter("version", version) @property @pulumi.getter @@ -590,6 +718,10 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + SamplingRuleArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__,